Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!linus!philabs!cmcl2!seismo!brl-tgr!tgr!Info-Unix-Request@BRL.ARPA From: Info-Unix-Request@BRL.ARPA (Mike Muuss) Newsgroups: net.unix-wizards Subject: INFO-UNIX Digest V1#108 Message-ID: <120@brl-tgr.ARPA> Date: Wed, 24-Jul-85 04:02:49 EDT Article-I.D.: brl-tgr.120 Posted: Wed Jul 24 04:02:49 1985 Date-Received: Thu, 25-Jul-85 23:12:32 EDT Sender: news@brl-tgr.ARPA Lines: 2386 INFO-UNIX Digest Fri, 19 Jul 1985 V1#108 Today's Topics: Re: Looking for Report Writer STRATUS compatibility Re: Idle time logout mechanism (daemon) CAI software Re: COBOL Re: System V vs. BSD UNIX* on IBM machines running VM Bugs in troff? Portablity using structures and malloc - Help Wanted: Ultra-fast fortran compiler for UNIX (execution time, mainly) Ken Arnold Curses "primer" ----------------------------------------------------------------- From: scott@whuts.UUCP (Steve Scott) Subject: Re: Looking for Report Writer Date: 16 Jul 85 21:28:40 GMT To: info-unix@brl-tgr.arpa > I'm looking for a good Report Writer package that runs under Sys V. > Please don't suggest 'awk' (or C) - I want something friendlier. > Something like EASYTRIEVE, FOCUS, or NOMAD. It would be especially nice > if it interfaced to INGRES. > > Thanks, > > steve roush > attis - denver > 303-538-4860 > ..!ihnp4!druxw!csr Try INGRES from ATTIS Steve Scott ATTBL Whippany whuts!scott ----------------------------- From: johno@rruxo.UUCP (J OBrien) Subject: STRATUS compatibility Date: 16 Jul 85 17:41:30 GMT To: info-unix@brl-tgr.arpa I am looking at various fault tolerant vendors and am starting to look seriously at STRATUS. I was wondering if anyone out there in net-land has had any experience with any of the STRATUS/32 family or with their IBM clone the System 88? In particular, I am wondering: 1) How "standard" their version of "C" is 2) How close their VOS/USF (Virtual Operating System/ UNIX System Facility) is in reality to AT&T UNIX system V. Naturally they make their claims about these items, but I am interested in any real life experiences anyone may have had. All responses are appreciated. Thanks in advance. John O'B (...!ihnp4!rruxo!johno ) ----------------------------- From: rbp@investor.UUCP (Bob Peirce) Subject: Re: Idle time logout mechanism (daemon) Date: 17 Jul 85 17:44:57 GMT To: info-unix@brl-tgr.arpa > Does anyone have (or know of) a daemon which will monitor users idle time, > and logout any user idle longer than a given amount of time. > Please respond via mail and as usual, I will summarize for the net. Sorry, I don't have a path to you, but this works on SYS III. I use it as part of my el-cheapo, one modem both ways set-up. Stick it in cron to run every once in a while. You may want to modify this to handle several lines. # -- ckmod # Robert B. Peirce; Cookson, Peirce & Co., Inc. # If anyone is inactive on a modem > $GRACE minutes log them off # This version gives no quarter. # Have to look for hung outgoing uucp stuff too. if [ $# -ne 1 ] then echo "usage: ckmod tty#" exit 1 fi MODEM=$1 GRACE=15 # minutes of no activity HM=/usr/lib/uucp LOG=/u/rbp/kill.log SPOOL=/usr/spool/uucp cd $HM # If set doesn't produce anything, force it. set `who | grep tty$MODEM || echo XXX` U=$1 if [ $U = XXX ] then U="" fi # Get current time set `date | tr ":" " "` M=$2 D=$3 HC=$4 MC=$5 # Get time device last accessed set `/usr/ucb/ls -l /dev/tty$MODEM | tr ":" " "` HL=$8 ML=$9 # Check for midnight crossover if [ $HL -gt $HC ] then HL=`expr $HL + 24` fi # Calculate time since last access of device TIME=`expr \( 60 "*" $HC + $MC \) - \( 60 "*" $HL + $ML \)` if [ $U ] then if [ $TIME -ge 1 ] then echo "$U tty$MODEM ($M $D $HC:$MC $HL:$ML) $TIME minutes.\c"\ >> $LOG if [ $TIME -lt $GRACE ] then echo >> $LOG fi fi if [ $TIME -ge $GRACE ] then # Let him have it P=`ps -ft$MODEM | awk 'BEGIN{FS=" "}/'$U'/{print $2;exit}'` if [ $P ] then kill -9 $P echo " Killed after $TIME minutes." >> $LOG else echo >> $LOG fi fi else # Nobody logged on from outside LCK=`ls $SPOOL | egrep "LCK\.\..|.lock"` # locks placed in uucp if [ "$LCK" -a $TIME -ge $GRACE ] # uucp has hung then cd $SPOOL rm -f $LCK fi fi -- Bob Peirce uucp: ...!{allegra, bellcore, cadre, idis} !pitt!darth!investor!rbp ----------------------------- From: rbp@investor.UUCP (Bob Peirce) Subject: Re: Idle time logout mechanism (daemon) Date: 17 Jul 85 18:49:39 GMT To: info-unix@brl-tgr.arpa > # -- ckmod > # Check for midnight crossover > if [ $HL -gt $HC ] > then > HL=`expr $HL + 24` > fi Peirce, you're an idiot. If HL is already greater than HC, adding 24 hours isn't going to help! Change that to HC=`expr $HC + 24`. Then, in the next calculation you have a shot at finding a time difference when midnight is overlapped. -- Bob Peirce uucp: ...!{allegra, bellcore, cadre, idis} !pitt!darth!investor!rbp ----------------------------- From: schoff@rpics.UUCP (Martin Lee Schoffstall) Subject: CAI software Date: 17 Jul 85 13:15:49 GMT To: info-unix@brl-tgr.arpa RPI is installing a classroom of SUN workstations for the fall semester, I am interested to know of anyone who has developed Computer Aided Instruction Software for the university framework. thanks, -- marty schoff%rpi@csnet-relay ARPA schoff@rpi CSNET seismo!rpics!schoff UUCP ----------------------------- From: ignatz@aicchi.UUCP (Ihnat) Subject: Re: COBOL Date: 16 Jul 85 03:45:34 GMT Keywords: COBOL Unix(Tm) 'C' To: info-unix@brl-tgr.arpa . Line-eater bug? Ridiculous! I refuse to include useless lines for it! In article 522@leadsv.UUCP, Peter da Silva (apparently posted for him by Terry Morse?) writes: "Has anybody any anecdotes I could use to convince someone to convert from COBOL on an IBM mini to anything else on UNIX? They're not doing accounting stuff and are very conservative." Well, I certainly don't know all the issues in this situation. Also, I want you all to know that COBOL is one of the few languages of the many I've picked up that I'm quite happy to totally forget. Nevertheless, it's necessary that I point out that you may not really want them to always convert to, say, 'C'. Obviously, I cannot/will not divulge the name of the company involved; but a situation arose wherein individuals working for a company which was heavily committed to COBOL decided that, on a certain micro-computer, their applications would run much more efficiently if done in 'C'. The trouble was that they were quite adequately staffed for COBOL programming teams, and had a good COBOL training program and staff. Against our recommendations, however, they decided to go ahead and use 'C'. The application did, indeed, show significant improvement in performance and efficiency. BUT--they didn't have an adequate 'C' development environment; they discovered that good 'C' programmers are commanding top dollar--much more than they were used to paying for COBOL programmers--and, of course, their training setup wasn't geared to bringing new programmers up to speed in 'C'. In the end, they decided that--for their purposes--they'd stay with COBOL and look for a better compiler. The point? Simply that you have to approach changes with caution, and a good understanding of the possibility that there may be factors affecting such decisions which go beyond the simple fact of efficiency or machine performance. Cautious planning avoids bad experiences that could sour them on 'C' forever, even in extremely desirable circumstances. Cheers, -- Dave Ihnat Analysts International Corporation (312) 882-4673 ihnp4!aicchi!ignatz ----------------------------- From: larry@kitty.UUCP (Larry Lippman) Subject: Re: System V vs. BSD Date: 18 Jul 85 04:18:10 GMT To: info-unix@brl-tgr.arpa > I am curious about the number of sites using BSD as opposed > to the number of sites using System V. > > Send me mail. I love mail. > -- > > Alan Fargusson. > > { ihnp4, amdahl, mot }!drivax!alan We are strictly System V. Our Usenet site is an AT&T 3B2 (which was a real trip installing the Usenet software). We also use Unisoft System V on 68010-based VME-bus machines. ----------------------------- From: root@sunybcs.UUCP (User) Subject: UNIX* on IBM machines running VM Date: 18 Jul 85 15:27:37 GMT To: info-unix@brl-tgr.arpa I am interested in information about UNIX running on IBM machines. I am particularly interested in the new AT&T product SYSTEM V-VM and how it compares with the Amdol implementation. Areas of comparison could include performance and completeness. In fact, any information available would be appreciated. Thanks in advance, Gretchen CSNet : phillips@buffalo UUCP : {watmath,dual,decvax,rocksanne}!sunybcs!phillips ----------------------------- From: toni@erix.UUCP (Toni Roth) Subject: Bugs in troff? Date: 18 Jul 85 19:02:10 GMT To: info-unix@brl-tgr.arpa I recently started to use troff in order to write a macro package. As troff is new to me, I'm not sure it's really bugs that I've found, or if I use troff incorrect. However, I tried to write a macro that would print a header on each new page. The problem is : If it's the first page, I want to write something on a certain line on a certain distance from the edge. After that I always want to write something else further to the right, on the same line. So I had to split the in-line-commands in smaller parts, which made one piece each. I tried several variations, but none seemed to work. When I tried to find out why, I discovered that troff does not ignore comments and handles \c, \\c and \ at end of lines strangely. After a lot of trial-and error, this worked correctly: .de hd . . . \v'|1c'\ \h'|11.4c'\ \\*(ko \h'|18c.7c'\\n% .br or \v'|1c'\c \h'|11.4c'\ \\*(ko \h'|18c.7c'\\n% .br The things that didn't work was: \v'|1c'\ \h'|11.4c'\c \\*(ty\ \h'|18c.7c'\\n% .br \v'|1c'\ \h'|11.4c'\\c \\*(ty\ \h'|18c.7c'\\n% .br \v'|1c'\c\"comment \h'|11.4c'\ \\*(ty\ \h'|18c.7c'\\n% .br Which made breaks before the string ty was printed. There were many other strange things, but I can't list them all. My questions are: How do I split the in-line-commands (what do I put on the end of the macro lines) if I want to continue on the same line? How do I use \, \c and \\c ? How do I put comments on the end of in-line-command - lines? ----------------------------- From: vlv@drux1.UUCP (Vaughn Vernon) Subject: Portablity using structures and malloc - Help Date: 17 Jul 85 21:18:06 GMT To: info-unix@brl-tgr.arpa No first time guessers please! I need help. I've really been wondering about the way in which the UNIX 'C' compiler handles structures and memory allocation across processors. I recently ported a large program from a VAX to a 3B2 and had some real problems with it. I would like to propose an example and some questions about the simple concept that was used. I will also give my (probably wrong) proposed answer. struct line { char n[81]; double abc; /* no alignment by me! */ int x, /* here either */ y, z; char *xyz; } *lines[MAXLINES]; ... if((lines[i] = (struct line *)malloc(sizeof(struct line)))\ ==(struct line *)NULL) ... if((lines[i]->xyz = malloc(sizeof(lines[i]->xyz)))==(char *)NULL) ... Look closely. I'm allocating memory for the structure and getting a pointer back. The pointer returned on a 3B or 68K may or may not be on a word boundary. Right? In either case, what will this do to the xyz character pointer and the int's? Malloc() does not know it's dealing with a structure pointer so will xyz be aligned? What about the address being returned to the xyz pointer? I would think that as long as xyz is on a word boundary then the pointer returned to the character array would not have to be aligned since they are only characters. Right? The 'C' programmers (K&R) manual says (speaking of bit fields): " ... an unnamed field with a width of 0 specifies alignment of the next field at word boundary. The "next field" presumably is a field, not an ordinary structure member, (***) because in the latter case the alignment would have been automatic (***)." I would not think that this would apply to malloc's since a character pointer can point to a an odd address and not matter since characters are contiguous. Does malloc() know the object that it's working on? Do I need to know what processor I'm on and how much extra memory I need to allocate so I can sloppily adjust the struct pointer forward to the even address I need? How do I get xyz into an even word address? Can someone please tell me a set of rules to follow for each processor (ie. 3B && 68K etc.) ?! I would hate to think that I would have to take the (*) out from in front of the lines array and let the compiler handle it! There's a whole lot of memory that I would not be used at any one time. Proposed partial answer: use unions to get alignment. union aln_int { char c; int x; }; union aln_ptr { char c; char *xyz; }; union aln_dbl { char c; double d; }; struct line { char n[81]; union aln_dbl abc; union aln_int x, y, z; union aln_ptr xyz; } *lines[MAXLINES]; Does this help at all? Or is malloc still going to give me a problem? Thanks in advance, Vaughn Vernon AT&T ISL Denver, CO ihnp4!drutx!drux1!vlv I will post answers to the net. Unix is AT&T's Trademark VAX is Digital's Trademark All that disclaimer stuff. Besides, my intelligence is artificial! ----------------------------- From: richmon@astrovax.UUCP (Michael Richmond) Subject: Wanted: Ultra-fast fortran compiler for UNIX (execution time, mainly) Date: 17 Jul 85 20:23:47 GMT To: info-unix@brl-tgr.arpa Can anyone point to a company that supplies a UNIX Fortran compiler which executes much faster than f77 (say, on par with the VMS compilers or better)? Please reply via mail and I will post a summary to the net if one is warranted. We run 4.2BSD on an 11/750 if it makes any difference. -- Michael Richmond Princeton University, Astrophysics {allegra,akgua,burl,cbosgd,decvax,ihnp4,noao,princeton,vax135}!astrovax!richmon ----------------------------- From: ttorgers@udenva.UUCP (Troy Torgerson) Subject: Ken Arnold Curses "primer" Date: 17 Jul 85 15:43:45 GMT To: info-unix@brl-tgr.arpa *** REPLACE THIS LINE WITH YOUR PRIMER *** Here is the Curses documentation that I promised to post if enough people requested it. I hope it helps. I used uuencode to decode it since I found the easiest way to post it was just the nroffed version. There were far too many macros and files for me to sort out what was what. To decode this puppie, type "uudecode file" where file is what you saved it under. uudecode will ignore the mail headers so you don't have to worry about them. Any problems, let me know. Troy P.S. I might have a signature at the end (I haven't tested it) and I'm not sure whether uudecode will ignore that part. I used uuencode so that all the control characters would be preserved. _____________________________CUT___HERE________________________________________ begin 644 doc M"B @(" @(" @(" @(" @(%-C2!086-K86=E"@H@(" @(" @(" @(" @(" @(" @ M(" @(" @(" @7PA+7PAE7PAN7PAN7PAE7PAT7PAH(%\(0RX@7PA2+B!?"$,N M(%\(05\(2!D97-C M2 @:6YT86-T+B @($1O=6<@365R M2!A<'!R96-I871E9"X*"@H*"@H*"@H*"@H*"@H*"@H*+@H@(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @("!38W)E96X@4&%C:V%G90H*"B @ M(" @(" @("!?"#$N("!?"$]?"'9?"&5?"')?"'9?"&E?"&5?"'<*"B @(" @ M(" @(" @(" @($EN(&UA:VEN9R!A=F%I;&%B;&4@=&AE(&=E;F5R86QI>F5D M("!T97)M:6YA;" @9&5S8W)I<"T*(" @(" @(" @('1I;VYS("!I;B @+U\( M95\(=%\(8R]?"'1?"&5?"')?"&U?"&-?"&%?"' L(&UU8V@@:6YF;W)M871I M;VX@=V%S(&UA9&4@879A:6QA8FQE"B @(" @(" @("!T;R!T:&4@<')O9W)A M;6UE2!O9B!T:&4@9&ER='D@=V]R M:RP@86YD("AH;W!E9G5L+0H@(" @(" @(" @;'DI('=I=&@@;F5A2 @7PAT7PAO M("!?"%-?"&]?"'5?"&Y?"&0@(%\(0E\(2!L;V]K2!S=&%R="!A="!T:&4@=7!P97(@;&5F= H@(" @(" @(" @ M(" @("!H86YD(&-O2 @9F]R("!T:&4@(')O=71I;F5S("!T;R @:VYO=R!W:&%T M('1H92!S8W)E96X@8W5R'0N(" @1F]R('1H:7,@<'5R<&]S92P@82!D871A M('1Y<&4@*'-T2 @;&]O:W,@(&QI:V4N"B @(" @(" @("!!;F]T M:&5R("!S8W)E96X@*&-A;&QE9"!?"'-?"'1?"&1?"'-?"&-?"'(L(&9O2!D969A=6QT('1O(&UA:V4@8VAA M;F=E2 @2!B>2!C86QL M:6YG("!?"')?"&5?""T*(" @(" @(" @(%\(9E\(2!S87D@(FUA:V4@:70*(" @(" @(" @ M(&QO;VL@;&EK92!T:&ES+"(@86YD(&QE="!T:&4@<&%C:V%G92!W;W)R>2 @ M86)O=70@('1H92 @8F5S= H@(" @(" @(" @=V%Y('1O(&1O('1H:7,N"@H@ M(" @(" @(" @7P@Q+E\(-"X@(%\(3E\(85\(;5\(:5\(;E\(9R!?"$-?"&]? M"&Y?"'9?"&5?"&Y?"'1?"&E?"&]?"&Y?"',*"B @(" @(" @(" @(" @($%S M(&AI;G1E9"!A8F]V92P@=&AE(')O=71I;F5S(&-A;B!U2P@('-O(" \7PAC7PAU7PAR7PAS7PAE M7PAS+E\(:#X@(&EN8VQU9&5S(#Q?"'-?"'1?"&1?"&E?"&\N7PAH/BX@($ET M(&ES(')E9'5N9&%N= H@(" @(" @(" @*&)U="!H87)M;&5S'0N(" @5&AE("!U2!A8V-E2!F=6YC=&EO;G,@87)E('-E="!U<"!T;R!D96%L('=I M=&@@7PAS7PAT7PAD7PAS7PAC7PAR(&%S(&$@(&1E+0H@(" @(" @(" @9F%U M;'0@('-C2P@>"D["B @(" @(" @(" @(" @861D8V@H8V@I.PH* M(" @(" @(" @(&-A;B!B92!R97!L86-E9"!B>0H*(" @(" @(" @(" @("!M M=F%D9&-H*'DL('@L(&-H*3L*"B @(" @(" @("!A;F0*"B @(" @(" @(" @ M(" @=VUO=F4H=VEN+"!Y+"!X*3L*(" @(" @(" @(" @("!W861D8V@H=VEN M+"!C:"D["@H@(" @(" @(" @8V%N(&)E(')E<&QA8V5D(&)Y"@H@(" @(" @ M(" @(" @(&UV=V%D9&-H*'=I;BP@>2P@>"P@8V@I.PH*(" @(" @(" @($YO M=&4@=&AA="!T:&4@=VEN9&]W(&1E7,@=&AE(&9I2!V87)I86)L97,@=VAI M8V@@87)E('5S960@=&\@9&5S8W)I8F4@=&AE("!T97)M:6YA; H@(" @(" @ M(" @96YV:7)O;FUE;G0@87)E(&%V86EL86)L92!T;R!T:&4@<')O9W)A;6UE M2!A7!E(&EF('1Y<&4@8V%N;F]T(&)E(&1E=&5R;6EN960*(" @(" @(" @ M(&)O;VP@(" @37E?=&5R;0H*(" @(" @(" @(" @(" @(" @(" @(" @("!U M7!E"B @(" @ M(" @("!C:&%R("H@('1T>71Y<&4*"B @(" @(" @(" @(" @(" @(" @(" @ M(" @9G5L;"!N86UE(&]F('1H92!C=7)R96YT('1E2 @5\(6]U('=I;&P@;F5E9"!I="P@;&EK92!A9G1E6]U('=A;G0L(&%N9"!T:&5N(&-A;&P@7PAI7PAN7PAI7PAT7PAS M7PAC7PAR*"DN("!4:&ES(&ES("!B97-T("!D;VYE"B @(" @(" @("!B969O M2P@>"D@8V\M;W)D M:6YA=&5S+"!R971U6]U('=A;G0@=&AE;2!T;R!B92X@($ET(')E='5R;G,@ M15)2(&EF('EO=2!T6]U(&-A;B!C;VUB:6YE('1H92!T M=V\@:6YT;R!?"&U?"'9?"&%?"&1?"&1?"&-?"&@H*2 @=&\@(&1O"B @(" @ M(" @("!B;W1H('1H:6YG6]U("!W86YT("!T:&4@ M('!OF4@9FEN9&EN9R!C:&%N9V5S+"!?"')?"&5? M"&9?"')?"&5?"'-?"&@H*2!A2!P M87)T(&]F('1H92!W:6YD;W<@;F]T(&-H86YG960@6]U(&AA=F4@;F]T(')E9G)E2 @9G5N8W1I;VX@=&\@ M7PAA7PAD7PAD7PAC7PAH*"D@:7,@7PAG7PAE7PAT7PAC7PAH*"D@=VAI8V@L M(&EF(&5C:&\*"@H@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @+2 U("T*"@H*"@H*"BX*(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @4V-R965N(%!A8VMA9V4*"@H@(" @(" @(" @:7,@2!?"&E?"&Y?"&E?"'1?"'-?"&-?"'(H*2X*(" @ M(" @(" @($EN(&]R9&5R("!T;R @8VQE86X@('5P("!A9G1E2 @=VET:" @<')O9W)A;6UI;F<@<')O8FQE;7,@86YD('-O;64@9FEN97(@ M<&]I;G1S(&]F"B @(" @(" @("!#+B @3F]N92!O9B!I="!I2 @9&EF9FEC=6QT+" @8G5T("!Y;W4@('-H;W5L9" @8F4*(" @(" @(" @ M(&9O5\(92!A8W1U86QL>2!U2P@8G5T("!T:&5Y("!C;VUE("!A;F0*(" @(" @ M(" @(&=O+" @2 @87)E6S5=+@H@(" @(" @(" @5&AE(" O7PAE7PAT7PAC M+U\(=%\(95\(7,@;V8@2@R*2!A;F0@7PAS7PAT7PAT7PAY*#(I(%1H92!S96-O;F0L(%\(2!?"&E?"&Y?"&E?"'1?"'-?"&-?"'(H*3H* M"@H@(" @(" @(" @(" @(" @("!?"&E?"&8@*&ES871T>2@P*2D@>PH@(" @ M(" @(" @(" @(" @(" @(" @(" @9V5T=&UO9&4H*3L*(" @(" @(" @(" @ M(" @(" @(" @(" @(%\(:5\(9B H2!S M=7)P6]U+" @=&AE2=R92!T:&EN:VEN9R!O9B!J=6YK:6YG('1H M870@22!C86X@;&5T"B @(" @(" @("!Y;W4@:&%V92!F;W(@82!S;VYG+@H@ M(" @(" @(" @(" @6S9=(%1H97-E(&YA;65S(&%R92!I9&5N=&EC86P@=&\@ M=&AO2X@(%-E90H@(" @(" @(" @07!P96YD:7@@ M02!F;W(@82!C;VUP;&5T92!L:7-T(&]F('1H;W-E(')E860L(&%N9"!?"'1? M"&5?"')?"&U?"&-?"&%?"' H-2D*(" @(" @(" @(&9O2@R*2!O;B!T:&4@(&1E2!D:69F97)E;G0@(&9E871U M2P@20H@(" @(" @(" @=V%S(&%B M;&4@=&\@;&EB97)A=&4@=&AE;2!W:71H('1H92!A=71H;W(G6]U(&%R92!N;W<@86YD"B @(" @(" @("!W:&5R92!Y;W4@=V%N="!T M;R!G;RX@($9O&%M<&QE"@H@(" @(" @(" @(" @(&UV8W5R*# L(# L M($Q)3D53+S(L($-/3%,O,BD*"@H@(" @(" @(" @=V]U;&0@;6]V92!T:&4@ M8W5R2!F87(@ M87=A>2P@;&EK92!#;&5V96QA;F0N("!&;W(@97AA;7!L92P@=&\@(&%B7!E(&]F(&5A8V@N("!4:&5I2 @9G5L9FEL;&EN9R @:G5S=" @ M=&\*(" @(" @(" @(&=E="!T:&4@:6YF;W)M871I;VXN("!4:&ES(&ES('5S M=6%L;'D@;VYL>2!T6]U(&AA M=F4@=&AE('-O8VEA;"!L:69E(&]F(&$@:W5M<75A="X*"@H*"B @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" M(#@@+0H*"@H*"@H*+@H@ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("!38W)E96X@4&%C:V%G M90H*"B @(" @(" @("!N;W0@;6%N9&%T;W)Y+"!J=7-T('-U9V=E'0@;&EN92!I9B!N97=L:6YE(&UA<'!I;F<@:7,@;VXL("!O<@H@(" @ M(" @(" @(" @("!T;R @=&AE("!N97AT("!L:6YE("!A="!T:&4@2P@>"D@(&-O+6]R9&EN871EF]N=&%L(&QI;F5S+B @268@'0@7PAR7PAE7PAF7PAR7PAE7PAS7PAH*"DL(&]R('-T;W @:70@9G)O M;2!D;VEN9R!S;R @:68@(%\(8E\(;U\(;U\(;%\(9@H@(" @(" @(" @(" @ M("!I2 @=V]R:W,@(&]N('-C&-E<'0@ M=&AA="!I= H@(" @(" @(" @(" @("!N979E2X*"@H*(" @(" @(" @(%\( M:5\(;E\(2X*"@H*(" @ M(" @(" @(%\(;5\(;U\(=E\(92A?"'DL(%\(>"D@6RI="B @(" @(" @("!? M"&E?"&Y?"'0@(" @(" @(%\(>2P@7PAX.PH*(" @(" @(" @(%\(=U\(;5\( M;U\(=E\(92A?"'=?"&E?"&XL(%\(>2P@7PAX*0H@(" @(" @(" @7PA77PA) M7PA.7PA$7PA/7PA7(" @(" J7PAW7PAI7PAN.PH@(" @(" @(" @7PAI7PAN M7PAT(" @(" @("!?"'DL(%\(>#L*"B @(" @(" @(" @(" @($-H86YG92!T M:&4@8W5R2P@>"D@8V\M;W)D:6YA=&5S(&]F('1H92!W:6YD;W<@ M=&\*(" @(" @(" @(" @(" @*%\(>2P@7PAX*2X@("!4:&ES(')E='5R;G,@ M15)2(&EF(&ET('=O=6QD(&-A=7-E('1H92!S8W)E96X*(" @(" @(" @(" @ M(" @=&\@2X*"@H*(" @(" @(" @(%\(;U\(=E\( M95\(2A?"'=?"&E?"&Y?"#$L(%\(=U\(:5\(;E\(,BD*(" @ M(" @(" @(%\(5U\(25\(3E\(1%\(3U\(5R @(" @*E\(=U\(:5\(;E\(,2P@ M*E\(=U\(:5\(;E\(,CL*"B @(" @(" @(" @(" @($]V97)L87D@7PAW7PAI M7PAN7P@Q(&]N(%\(=U\(:5\(;E\(,BX@(%1H92!C;VYT96YT2 @9FET M+" @87)E('!L86-E9"!O;B!?"'=?"&E?"&Y?"#(@870@=&AE:7(@2 @9FET M+" @87)E("!P;&%C960@(&]N("!?"'=?"&E?"&Y?"#(@870@=&AE:7(@2X*"@H*(" @(" @(" @(%\(6YC:')O;FEZ92!T:&4@=&5R M;6EN86P@2!T:&%T('!A2!I M="!I"!!*2X*"B @(" @(" @("!?"#4N7P@R+B @7PA) M7PAN7PAP7PAU7PAT(%\(1E\(=5\(;E\(8U\(=%\(:5\(;U\(;E\(2X@("!/=&AE&ES=&5N M8V4N("!!;&P@(')E#L*"B @(" @(" @(" @(" @(%!U=',@=&AE M(&-U6]U(&1O(&YO="!P87-S('1H92!A9&1R97-S(&]F M(%\(>2!A;F0@7PAX+@H*"@H@(" @(" @(" @7PAI7PAN7PAC7PAH*"D@6RI= M"@H@(" @(" @(" @7PAW7PAI7PAN7PAC7PAH*%\(=U\(:5\(;BD@6RI="@H* M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("T@,34@+0H* M"@H*"@H*+@H@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("!38W)E M96X@4&%C:V%G90H*"B @(" @(" @("!?"%=?"$E?"$Y?"$1?"$]?"%<@(" @ M("I?"'=?"&E?"&X["@H@(" @(" @(" @(" @("!2971UF4@ M=&AE('-C5]?"'1?"&5?"')?"&T@:7,@=')U92P@(%\(1%\(95\(9E]? M"'1?"&5?"')?"&T@(&ES"B @(" @(" @(" @(" @(&%L=V%Y2X@($EF(&ET(&ES($9!3%-%+"!I M="!W:6QL(&)E(&UO=F5D("!T;R @=&AE("!C=7)R96YT"B @(" @(" @(" @ M(" @("AY+"!X*2 @8V\M;W)D:6YA=&5S+B @(%1H:7,@(&9L86<@*&EN:71I M86QY($9!3%-%*2!R92T*(" @(" @(" @(" @(" @=&%I;G,@:71S('9A;'5E M('5N=&EL(&-H86YG960@8GD@=&AE('5S97(N"@H*"B @(" @(" @("!?"&Q? M"&]?"&Y?"&=?"&Y?"&%?"&U?"&4H7PAT7PAE7PAR7PAM7PAB7PAU7PAF+"!? M"&Y?"&%?"&U?"&4I"B @(" @(" @("!?"&-?"&A?"&%?"'(@(" @(" @*E\( M=%\(95\("D*(" @(" @(" @(%\(5U\(25\(3E\(1%\(3U\( M5R @(" @*E\(=U\(:5\(;CL*(" @(" @(" @(%\(:5\(;E\(=" @(" @(" @ M7PAY+"!?"'@["@H*"B @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" M(#$V("T*"@H*"@H*"BX*(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @4V-R965N(%!A8VMA9V4*"@H@(" @(" @(" @(" @("!-;W9E M('1H92!H;VUE('!O"DN("!)9B!T:&%T('=O=6QD"B @ M(" @(" @(" @(" @('!U="!P87)T(&]R(&%L;"!O9B!T:&4@=VEN9&]W(&]F M9B!T:&4@961G92!O9B!T:&4@('1E2P@7PAB7PAE7PAG7PAI7PAN7U\(>"DN(" @ M268@96ET:&5R"B @(" @(" @(" @(" @(%\(;%\(:5\(;E\(95\(F5R;RDL('1H870@9&EM96YS:6]N('=I;&P@ M(&)E("!S970*(" @(" @(" @(" @(" @=&\@("A?"$Q?"$E?"$Y?"$5?"%,@ M+2!?"&)?"&5?"&=?"&E?"&Y?7PAY*2!O"D@F%T:6]N+" @2!O;FQY(&YE961E9"!F M;W(@2!C:&%N9V4@;6%D92 @=&\*(" @(" @ M(" @(" @(" @96ET:&5R('=I;F1O=R!I;B!T:&4@87)E82!C;W9E"D@2!A(&1E8G5G(&9U;F-T:6]N(&9O2P@(&)U= H@(" @(" @(" @(" @("!I="!I2!A6]U2!S=&%T2 @8V%L;&5D M("!B>2 @7PAI7PAN7P@M"B @(" @(" @(" @(" @(%\(:5\(=%\(2P@7PAL7PAA7PAS7PAT7PAX+"!?"&Y?"&5?"'=?"'DL(%\(;E\(95\( M=U\(>"D*(" @(" @(" @(%\(:5\(;E\(=" @(" @(" @7PAL7PAA7PAS7PAT M7PAY+"!?"&Q?"&%?"'-?"'1?"'@L(%\(;E\(95\(=U\(>2P@7PAN7PAE7PAW M7PAX.PH*(" @(" @(" @(" @(" @36]V97,@=&AE("!T97)M:6YA;"=S("!C M=7)S;W(@(&9R;VT@("A?"&Q?"&%?"'-?"'1?"'DL(%\(;%\(85\("D@('1O"B @(" @(" @(" @(" @("A?"&Y?"&5?"'=?"'DL(%\(;E\(95\( M=U\(>"D@(&EN("!A;B @87!P0H@ M(" @(" @(" @(" @("!N;W0@=7-E9"!B>2!T:&4@=7-E2@I(%LJ70H*(" @(" @(" @(%\( M2@I(%LJ70H*(" @(" @(" @(" @(" @7PAS M7PAA7PAV7PAE7PAT7PAT7PAY*"D@2@I("!R97-T;W)E2@I("!S=&]R960N"B @(" @(" @(" @(" @ M(%1H97-E(&9U;F-T:6]N2!?"&E?"&Y?""T*(" @(" @(" @(" @(" @7PAI7PAT7PAS7PAC7PAR*"DN M"@H*"B @(" @(" @("!?"'1?"'-?"'1?"' H*0H*(" @(" @(" @(" @(" @ M268@=&AE(&YE=R!?"'1?"'1?"'DH-"D@9')I=F5R(&ES(&EN('5S92P@=&AI M2!S=&%T92!A;F0@=&AE;B!C86QL2!A(&YU;6)E2P@(&%N9"!H87,@;65A;FEN M9R!F;W(@=&AE(&-A<&%B:6QI=&EE2!S96YD:6YG"B @(" @(" @("!A("!S97%U M96YC92 @;V8@('!A9" @8VAA2!?"%!? M"$,I*2X@("!);B @2P@97AC97!T('=H96X@=&5R;6EN86QS(&AA=F4@:6YS M97)T(&UO9&5S('=H:6-H('=I;&P@2!A;'=A>7,@(&QI;F4I+B @($-A<&%B:6QI=&EE2!S970L M('1O;RD*(" @(" @(" @(&-H87(@*B @($E0(" @("!0*B @("!0860@869T M97(@8VAAF%T:6]N M"B @(" @(" @("!C:&%R("H@("!50R @(" @(" @(" @56YD97)L:6YE(&$@ M2!?"&=? M"&5?"'1?"'1?"&U?"&]?"&1?"&4H*0H*(" @(" @(" @('1Y<&4@("!N86UE M(" @(" @("!D97-C2!I;F1I8V%T97,@5&%B#L*(" @(" @(" @(" @(" @(" @(" @(" @(%\('DL(%]M87AX.PH@(" @(" @(" @(" @(" @(" @(" @ M(" @7PAS7PAH7PAO7PAR7PAT(" @("!?8F5G>2P@7V)E9W@["B @(" @(" @ M(" @(" @(" @(" @(" @("!?"'-?"&A?"&]?"')?"'0@(" @(%]F;&%G2!A;F0@7U\(8U\(=5\("!A2P@>"D*(" @(" @(" @(&-O+6]R9&EN871E%\( M>"!A2!I;FET:6%L;'D@7,@9V5N97)A=&5S("!A("!C;&5A2!I5MI75MJ70H*"@H@(" @(" @(" @:7,@=&AE(%\(:G1H(&-H87)A8W1E M7,@ M=&AA="!T:&4@96YD(&]F('1H92!L:6YE(&9O&%M<&QE2 @(&%T=&5M<'0@('1O("!B92 @2!S:6UP;&4@<')O9W)A;2!W:&EC:"!PF%T:6]N+"!A5\(<%\(95\( M9%\(95\(9B!?"'-?"'1?"')?"'5?"&-?"'0@;&]C6]U=#L*(" @(" @(" @(" @(" @(" @(" @(" @(%\(9E\(;U\(2 ](# [('D@/"!.3$E.15,[('DK*RD*(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @("!?"&9?"&]?"'(@*'@@/2 P.R!X(#P@3D-/3%,[('@K M*RD*(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @7PAI7PAF("AI2 ]('D[ M"B @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @("!L<"LK+3YX(#T@>#L*(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @?0H@(" @(" @(" @(" @(" @(" @ M(" @(" @3G5M6]U=#L*(" @(" @(" @(" @("!] M"@H@(" @(" @(" @(" @("\J"B @(" @(" @(" @(" @("H@7PA27PAE7PAT M7PAU7PAR7PAN(%\(5%\(4E\(55\(12!?"&E?"&8@*%\(>2P@7PAX*2!?"&E? M"',@7PAO7PAN(%\(=%\(:%\(92!?"&-?"'5?"')?"')?"&5?"&Y?"'0@7PAP M7PAA7PAT7PAT7PAE7PAR7PAN+@H@(" @(" @(" @(" @(" J+PH@(" @(" @ M(" @(" @(&ES;VYI2 ^/2 Y("8F('D@/#T@,34I.PH@(" @(" @(" @ M(" @(" @(" @(" @(" @?0H*(" @(" @(" @(" @(" @(" @(" @(" @("\J M(%\(3E\(3U\(5%\(4E\(15\(05\(0U\(2%\(15\(1" J+PH@(" @(" @(" @ M(" @('T*"B @(" @(" @(" @(" @<'5T;VYP=71O;BAC:"D*(" @(" @(" @ M(" @("!R96<@7PAC7PAH7PAA7PAR(" @(" @(" @(" @(&-H.R!["@H@(" @ M(" @(" @(" @(" @(" @(" @(" @6]U=%M.=6US=&%RPH@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @('(@/2!R M86YD*"D@)2!.=6US=&%R6]U=%MR73L*(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @("!,87EO=71;2P@ M;' M/G@L(&-H*3L*(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M("!R969R97-H*"D["B @(" @(" @(" @(" @(" @(" @(" @("!]"B @(" @ M(" @(" @(" @?0H*"B @(" @(" @("!?"#(N7P@R+B @7PA,7PAI7PAF7PAE M"@H@(" @(" @(" @(" @("!4:&ES('!R;V=R86T@<&QA>7,@=&AE(&9A;6]U M6]U(&1O M;B=T"B @(" @(" @("!H879E('1O+B @270@86QS;R!D96UO;G-TR @(" @(" @(" @(" @(" @(" @ M(" @(" @+RH@7PAL7PAI7PAN7PAK7PAE7PAD(%\(;%\(:5\(2P@>#L@(" @(" @(" @(" @ M(" O*B H7PAY+"!?"'@I(%\(<%\(;U\(5\(<%\(95\(9%\(95\(9B!?"'-?"'1?"')?"'5?"&-?"'0@;'-T7W-T(" @ M(" @(" @($Q)4U0["@H@(" @(" @(" @(" @($Q)4U0@(" @(" @*DAE860[ M(" @(" @(" @(" @(" @(" @(" @(" @+RH@7PAH7PAE7PAA7PAD(%\(;U\( M9B!?"&Q?"&E?"&Y?"&M?"&5?"&0@7PAL7PAI7PAS7PAT("HO"@H@(" @(" @ M(" @(" @(&UA:6YM86EN*&%C+"!A=BD*(" @(" @(" @(" @("!?"&E?"&Y? M"'0@(" @(" @(&%C.PH@(" @(" @(" @(" @(%\(8U\(:%\(85\(PH*(" @(" @(" @(" @(" @(" @(" @(" @(%\(:5\(;E\( M=" @(" @("!D:64H*3L*"B @(" @(" @(" @(" @(" @(" @(" @("!E=F%L M87)G2!?"'-? M"'1?"&%?"'1?"',@*B\*"@H@(" @(" @(" @(" @(" @(" @(" @(" @8W)M M;V1E*"D[(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("\J(%\(2U?"&-?"&A?"&%? M"'(@*B\*(" @(" @(" @(" @(" @(" @(" @(" @(&YO96-H;R@I.R @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" O*B @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("!? M"&E?"&Y?"'!?"'5?"'0@*B\*(" @(" @(" @(" @(" @(" @(" @(" @(&YO M;FPH*3L@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" O*B!?"&9? M"&]?"'(@7PAO7PAP7PAT7PAI7PAM7PAI7PAZ7PAA7PAT7PAI7PAO7PAN("HO M"@H@(" @(" @(" @(" @(" @(" @(" @(" @9V5T2!?"&]?"&8@7PAL7PAE M7PAA7PAV7PAI7PAN7PAG(%\(=%\(:%\(92!?"'!?"')?"&]?"&=?"')?"&%? M"&TN"B @(" @(" @(" @(" @("HO"B @(" @(" @(" @(" @9&EE9&EE*"D@ M>PH*(" @(" @(" @(" @(" @(" @(" @(" @('-I9VYA;"A324=)3E0L(%-) M1U])1TXI.R @(" @(" @(" @(" @(" O*B!?"&E?"&=?"&Y?"&]?"')?"&4@ M7PAR7PAU7PAB7PAO7PAU7PAT7PAS("HO"B @(" @(" @(" @(" @(" @(" @ M(" @("!M=F-U2!?"&M?"&5?"'E?"',@7PAU+"!?"&DL(%\(;RP@ M7PAJ+"!?"&PL"B @(" @(" @(" @(" @("H@7PAM+" L+"!?"&%?"&Y?"&0@ M+B!?"&%?"')?"&4@7PAU7PAS7PAE7PAD(%\(9E\(;U\("!?"&E?"&X@7PAT7PAH7PAE(%\(PH@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(')E9G)E"AC*3L*(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @7PAB7PAR7PAE7PAA7PAK.PH@(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @7PAC7PAA7PAS7PAE("=F)SH* M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M;79A9&1S='(H,"P@,"P@(D9I;&4@;F%M93H@(BD["B @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(&=E='-T" \($-/3%,@+2 Q M.R!X*RLI('L*(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @;6]V92AY+"!X*3L*(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @7PAI7PAF("AI;F-H*"D@/3T@)W@G*0H@ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @861D;&ES="AY+"!X*3L*(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @("!]"B @(" @(" @(" @(" @?0H*(" @(" @(" @(" @ M(" O*@H@(" @(" @(" @(" @(" J(%\(4%\(PH*(" @(" @(" @(" @(" @(" @(" @(" @(')E9R!,25-4(" @(" @(" @ M(" @*FAP.PH*(" @(" @(" @(" @(" @(" @(" @(" @(&5R87-E*"D[(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" O*B!?"&-?"&Q?"&5?"&%? M"'(@7PAO7PAU7PAT(%\(;%\(85\("AS=&1S8W(L M("=\)RP@)U\G*3L@(" @(" @(" @(" @(" @(" O*B!?"&)?"&]?"'@@7PAI M7PAN(%\(=%\(:%\(92!?"'-?"&-?"')?"&5?"&5?"&X@*B\*"B @(" @(" @ M(" @(" @(" @(" @(" @(" O*@H@(" @(" @(" @(" @(" @(" @(" @(" @ M("H@7PAG7PAO(%\(=%\(:%\("P@)U@G*3L*"B @(" @ M(" @(" @(" @(" @(" @(" @("!R969R97-H*"D["B @(" @(" @(" @(" @ M?0H*"B @(" @(" @("!?"#,N("!?"$U?"&]?"'1?"&E?"&]?"&X@7PAO7PAP M7PAT7PAI7PAM7PAI7PAZ7PAA7PAT7PAI7PAO7PAN"@H@(" @(" @(" @(" @ M("!4:&4@9F]L;&]W:6YG(&5X86UP;&4@2!T:&5R92!UPH*(" @(" @(" @(" @(" @(" @(" @(" @(')E9R!? M"&-?"&A?"&%?"'(@(" @(" @(" @(" J2@P*2D@>PH@(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(&=E='1M;V1E*"D["B @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @7PAI7PAF("AS<#UG971E;G8H M(E1%4DTB*2D*(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @#L*(" @(" @ M(" @(" @(" @(" @(" @(" @(')E9R!,3T-3(" @(" @(" @(" @*FQP.PH@ M(" @(" @(" @(" @(" @(" @(" @(" @6]U=#L@;' @/"!E;F0[(&QP*RLI M('L*(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("!R(#T@2 \($Y,24Y%4R M(#$@?'P@;' M/G@@/"!.0T],4R M M(#$I*2!["B @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(&UV8W5R*&QA"P@;' M/GDL(&QP+3YX*3L*(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @<'5T M8VAA" ](# ["B @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @;&%S='DK*SL*(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @('T*(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(%\(95\(;%\(2!S971T97)M*"D@+BXN+BXN+BXN+BXN+BXN+BXN M+BXN(" @,C *(" @(" @(" @(" @(#$N-"!687)I86)L97,@4V5T($)Y(&=E M='1M;V1E*"D@+BXN+BXN+BXN+BXN+BXN+BXN+BX@(" R,0H@(" @(" @(" @ M7PA!7PAP7PAP7PAE7PAN7PAD7PAI7PAX(%\(0B N+BXN+BXN+BXN+BXN+BXN M+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+B @(#(S"B @(" @(" @(" Q M(%1H92!724Y$3U<@"!?"$,@+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXN M+BXN+BXN+BX@(" R-0H@(" @(" @(" @,2!%>&%M<&QE