Path: utzoo!attcan!uunet!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!crdgw1!sixhub!crdgw1.crd.ge.com!ibmbin-request From: ibmbin-request@crdgw1.crd.ge.com Newsgroups: comp.binaries.ibm.pc Subject: v09i107: setenv, set DOS environment values (part 01/03) Summary: with validity checking and other utils and source Keywords: util, source Message-ID: <2571@sixhub.UUCP> Date: 11 Dec 90 10:05:45 GMT Sender: davidsen@sixhub.UUCP Followup-To: comp.binaries.ibm.pc.d Lines: 731 Approved: davidsen@sixhub.UUCP X-Submissions-to: ibmbin@crdgw1.crd.ge.com X-Questions-to: ibmbin-request@crdgw1.crd.ge.com Checksum: 3796244776 (Verify with "brik -cv") Posting-number: Volume 09, Issue 107 Submitted-by: richard@calvin.spp.cornell.edu Archive-name: setenv/part01 Here are a bunch of utilities, including another program to diddle the environment variables. The submitter says: [ thanks for the complete description!! ] Here is yet another version of "setenv" for msdos. I think it is useful because it performs wildcard expansion, variable expansion and command substitution via simulated pipes. It also does more error checking on the actual environment modification than other setenv-type programs whose sources I've been able to find. It can make humongous PATH strings also, if that it important to you. These are a couple of small utilities designed to add some flexibility in preparing arguments to commands and setting of environment variables in the MSDOS command.com shell. They are also useful under 4DOS, although they are not so neccessary there. Eval runs any named command, after wildcard filename expansion, command substitution, and environment variable substitution. Since the named command is a sub-process of "eval", setting of environment variables will not be useful. Setenv sets an environment variable into the parent environment, after performing the same substitutions as above. It can be used to capture the output of any program which writes to stdout. Setenv can produce environment variables longer than the MSDOS 127 character command line limit, since the expansion is performed internally. As examples of using setenv in collaboration with simple programs that write to stdout, the following are included: addpath: add a specified directory to the end of the current path inspath: insert a specified directory into the current path delpath: delete a specified directory from the current path chgpath: change a specified directory into something else. e.g. setenv PATH `addpath \new\directory` As examples of using the environment setting routines directly, the following are included: incr: increment an integer valued environment variable directly uprompt: set the variable PROMPT to the current directory, (with forward slashes instead of backslashes) Notes: Command.com 4.01 SET command does not work properly when the strings get too long. The environment is correct, and is displayed correctly by other programs which read it. It seems that COMMAND assumes the strings cannot be more than 127 characters. I don't know about earlier versions. ms_sh (bourne shell clone) does not really need this utility, but if you use it, it changes what DOS considers to be the environment. However this is NOT what sh passes on to child processes so it will not do you much good. Temporary files used for command substitution are all placed in a directory pointed to by %TMP (if set). Considerable speed increase can be gained by making this a RAMdisk. Also, copying the shell there and pointing %COMSPEC at it will speed things up. These programs (source code and binaries) are placed in the public domain. R. Brittain 10/19/90 [ Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 4356 39887 part01 38542 39928 part02 28779 39468 part03 checksum size (bytes) file 25122 86556 setenv.zoo -- bill ] setenv part01/03 BEGIN--cut here--cut here begin 644 setenv.zoo M6D]/(#(N,#`@07)C:&EV92X:``#%!*&3IUY+@I0P;$'#H-Z\S103$!C`1/EH!`D<;- UR+0\`V),F#EE0-Q! M4T9.3C=O',X$L9'C'!!TWH`0DY/,FXTI2L9(("8A0CEGZK0IXX;.'(H47Q`< MT?)ES)P\TKQQ@<;'V+(PR:#]*&5:Z9ESCMUZ929LYE%&LHZ4Y=A MR6).;3IRV'#=G"+%#M%MPK1T3.?JF3$L:J()(\<@\S-VMG2)JF`/P00MB^MV M\UM!@C'+FZM@Z#"YBHUW9,HQ#Z?[]31F4!@?`R)$#Q`R4B2P[CT!:L:KH2!" M%7.$<489.B"D$'EH@,"@&V%LQ84;(K"07W<)))!98S'X=ET?()3!!DZ579<` M>NJ!`4`1!!1(B_&CB?ZJQQB`+'=8(WTHH$+DB M;G1%VA`:+(S96YH@.%$%$TQ0QE^&"00)5'$M.7@I0FSXE%`>(+2@8$>,&=0E MJ8@&"&6%C9KHGVRLCKKX_*!\*Z*$3**8.4\<''2D3:IZI#()A@@D&1SLGI MFFU21VH"^>Z+0IAPQ.D&G6JR"8*\_":\'<,@G&!GFR"(ZFNI!X7K*AFPIJHG ME[X:.V).R2I[4*UWW)2D&&]D=12YYLJ:4$<._53&'45N=&Y_&>;*VJ[#UA@T ML&+NK%[1)8M6[(?7^8211BC`\&-H"HBF04#_/R8"]/P M>2R04=L*=8M\*%H0Z!\``7,._/J;2"_?8\`6R$$QP`S5/EX)\%6@O0)1"`+AY"`,TT M%'S0T4$$E!9P+?AGXU\"^OWNV]B7`!TR`%"@@PL`T'EP$#I;`-"=!;8LL`@[ MM#"AB!$"+)2+`P!`HLLO":1S"``>#%C#0AZMDX!&[22`"P$CAN#1.R<:$(^* M!;3HT3PQUJ.B`39Z<$^,^:@(0`D"5:2+#16&\,$P(0Y9C`4F+O1!B`24\"2, M4H98@)46X)@E+@9P^:.4PY1T$@``+#,,+4#L\M!"P^3B08:Z-)-`@0>F\P\N M`P"(CA)^`5#%@__800`Z/_R311?##,K.(.P08,45@_A!@`!TB(`+`PL$B$@! M64"Q::>X/!3@/0,,0HP!N*05(#**IF,*1%X8\,\=Y`UA0!:+P&,%.EV`FH@1 M_"SBS0!>\`/('__L4$<"QB++CS%'^(5+"9TB".HB^%R!S@V@0G%%JWZFDNJJ MDZ(S"JA9#.O/`L#0T<(B1OBSPS%T0$"OO?A^L(@7_BS;;!T6_.N/M(#\L`,= M,QB,\`^=H8"+"MFB0T"H$Y/J*CI7G&O`K]1<#(45Y`9HA,?.?>'%(N4PZJ@5 MBQBZ@#U\4#"(/UC8,8`O5P"0B`TL+*`((2XL@(DEZS1PCS'R'-(-HL,LP@T M0Z"3`0"HR0$$.A(0GP\/(-"!``\-T$$`#PG4@4[DZY`#KV="J*(`,'4$,(0A MX$2>SS@5L)($"R+0\0`!(O#`11T'`,*#"'4(H/[,PZ23`%0#&(@CU#8`C_!G M"`/8QB+H\:`5K$,.YF!9(ER0GW$X(!%V`,`@BB$`&[#B>^#0!QW@X9QA$>@? M)C#;(LRB@"B@(P0!X!4^MD<"#WC@``,$R0SLP8_9^0L?MK(!7=`Q@`"H2@`T M.<`H[`.O.K2&$_UPCDW^D8@?M$4`5ME*5^B1B`,TZD&36H2E%E$$`XR"%PNX M5QT04!(THFD=^I)*1-"8B#L0(!1T)((!5.8R,%Y!C`2@EP%24(!%U&``]Q`D M$!)!@$3P00"AJ(X:#?"SZJP#`8T;@!\HF3^J%8```-@:'[_(#I@9@0`SD$8) M4A((<:!)"@&B!P"RP"MXW.P?4G'..C`0R04D@@A(/.4B&VF#ZO3RDZ'D6A]+ M22]4JI*5K@0`+-%QBUG6\I:Y!,8Z*O`S7_BRF`X2)B,]"/S7A3-`?P5B@4M0XA]`V-5-M>#!81R&L,0A@HV($PY)"` M*_RJ`8K*PCI(0-![R<$!OXH&5/X12&,@$XZ+H(,!=F`#--;A&=X2`3\!,$I' M-7,1U`B$.EZCT,",H@(*T.4"2G(U!``@:__8VC)?:@4##,``.!V$-"""C$`$ MXS5*!<`"I%$'!>R`&7,PP"&0JH!U[-0`/?VIU@"PS$(=ZA,K'>HI,S%-68BN M'$(E92#8H0@`A-$("`!"#QXRAP(X)QWVH!4!HC&.>QR"$?$$!!TD4"@$%,I6 MAD+'.#2XJG1<0["$#<0I$/N/?@@R$8;@@^CP"EH\_*,1MO!#4-OP#T>8=A&> M$.T_0OL/11P`$8;8PS]XH`"I&(,`#3""(G+[#T00P`B-,(1J%V&-%4`C$/J( M&Q]\D-SE^J-T5ZCN/Z!@5G3L@;*4-(0=FH6O#0S"%^,%0%^!FC1Z(6`%AC#M M`,3[CQ4<8QU/0*UJSVO:SK0F$:=5KNBNBP^9P,L.+LBN@+D;V1:`%[3CO1<= M+G#>]*Y7:]#"ZWS':]]U%!*OHEQ9RTCYK\$6]K#Q1$"^2@4@YT"!P8="`43* MP:82+\()F"SJ0N3P`"B4.+./0"P`(("%=1@@0'#81UQ=Z@43:Y:S_:"%$"84 MDR;?.,<&V+$`UG$`D^TC$TOVXPV+9:G(3=$JBPC&/:"!A!`O,W/I),`-YT,' M#<`"`(HHP13Y895[1",)='"0#YA(13_XHPX+T"4+!E$O)!IZ$3V@\SL409=X MI4,'X*A#.A:1#4#DP"CBB!D!YF&*0RRC#MDX@DQ"S+)EAK%6"1.-`9JYCB5` M8LR`C(T44]+G:!Q"&6*<]3MV_0^K!,'/BZ@'*PZQCU^C^1M2V8$R^KJ+M"3M MU^.`5C!D9XI%(*,.W>A=FUEZSI<5RU#,]2H+PL"##-SADT%`!!'^P0H1@`\> MBQ#&.<7&[WZ+C0IUD(,8WM""(8"@!2`8PAO@D`!O"P`80P('F9Y!#&-K0/)FW(0UN"`,=TO`&-YS)WU"/NM3YG9BJQW/J6,^Z MUK?.]:Y[_>M@#[O8QQ[V*LPA#&#S^.>]#:400$`"@(5 MD`"`'8AM`@(0``$*8``$&)X"%2C`!+Q3@`@(("60CWSD"U``R5M>\@_XQP@> MGWG(+_X?@2_``QZ?DL];?@211_WBQ0:!`(!``*\'`0%`(0!07/[VN+<\+`2P M^UL(("#(,!A!I#$3\TT=C"OEE('#)LP8CF+R4*QY$TW.G3)\N``! M(HF;GV[R@"ACIXP;.BM3ABD+HNK5,C*$?MW8MN%#BE.EE*%31XZ;,AGGT&E8 M9XX.B@E@)'BR!`2*BV/8U"%S\0S","U!W$%31BD(-V\<5OY(/N-=5YP9%W%T1TETE#&'?BRD,9]F");Q&`MS4$B''"FYH5\**>P08!MA M7-0>'3_)<<88*R5$DD&WV;%%%[`IL`=!"5Q$8H8>*I"`BC2I4-5*/MKU5@Q` MNJ437$!&ER.-0Z%0XHD@A-`#"#.DD,",.B9PX'H*HB!"%7.$<489.L@U1U5< M5?4%'6]\H1133G%$VAU?5,6%&R*P($.'-":`'WLQ\*EC'V.QT=*5?68(PI31 M98A"BUO$`&.."=1H!@HJ/&JBBY*ND&$+@2XZY0D[G#!?II!V^FFHHW(!`ZF) MFK7H>QB:I>D9+LHP:9]-HKKI%KIZ:A:H\_4P:JFGWLII%\*Z0>RL)[@*:Y9& M[A3#K-'5`8<NQ&^@E%;:9`@+ M(YIEI0+5A=.1UX)&HDQ'9=0""&H41N)@EO$;EVL:<3964+_U6>F6"2[X(\8Z M:QGA@B+LD&>@0?/58IM$U6^RQ)X#`!Q\& M42R'UZ*"$.VK#`<=,LI!K0?"RN5FUQ!49T"@"W^BK50G/ILUU- M^[OST`2'BU7BA"N]8-<90AZT&%%/K;/56'OL<`)O&Q444'*-,9-28Y`((ATP MK;Q&:7"`P,8;;ZPQ6LY/`[S"E#ANWB>`@]*H%%]^H0"#H,`3I$%`W*?$_0(! MCQD``$`0``!3%56"&]Y<"P``3PD```$```````````!C:&=P871H+F-O;0`` M"@!_@'@`````````````0"DC*```&2ESDE*>JW%AAIC`4:".-4#-`-W+EL@! MS%P!`$P;-V@8@D'C\'FLE%';"G6+?+!@$.@?``%S#OSZFT@OWV-B&,A!,<"' M"L4B8A&8]N[(CG=R,@PR#(#.@.#!S\Q85!KL0KGLU3Y>"? M!2L,T&D2@$[0`%H`FFDH^*FC@U`H+6AA\,_&(Y0V&N%?I``=,@!0H(,+`-!Y M[9&1`7TH M@`L!(X;@T1\G!J)B`2UZ-,B)A:AH0(T>'')B(BH"4()`%>EB0X4A?#!,B$(6 M8X&)"WT0(@$E.`ECE"$64*4%-V*)BP%;^ACE,"6=!```RPQ#"Q"[/+30,+EX MD*$N72A0X('I_(/+``"BHX1?`%3QX#]V$(#.#_]DT<4P@K(S"#L&6''%('X0 M,``=(N#"R0(!9F!`%E!HRBDN#P6("`&#$&,`+FD%B$RBZ=P`FQ<&_','>?44 MD,4B\"Q"ZR)?"#"`-X#\\<\.=3CX:[##&G.$7[[6>H>AS^C*:[3`6DJLL<@J M:P"PPGKC++2TVDH>(I\F8@0_T=IJZ![I&N$/+L=PBHXKNJJK#Z'\H'.(M?`0 MJ@\Z77RZ"#[IJ`(`OU>@\XZNN^*SP#]U#"$P.F/H"H7`K/8YS0"IKLJ,O4UH MC,O(H;:*#B\@JTJH/^C,SA\XOXR./@2`2K/*:N`LTP#&!#A.U5!LW;734>"\3@(#^#,Q':T] M\8]S7WBQ2#F+-FK%(H4N8`\?%`SB#Q9V#.#+%0`D8H,S"RA""#0+8&+).@W< MXXW?(]RA3DF(I[2(,:-LHF)*ZP#@11?"/'3FZ00^8H`C!+C`B`>0$,!/=!SY M`@@`,I!C`BM`,%+,(=9,LH@-,`UBC`!H`0"(#Q@-($<$T8&TB#^Q_"$#,%:- M8P<@\?SQJ``=#S#,`,&4X,\_B_"S`CYR@+$<(\`X@@TCT/P611+SD'*]*HYT M-(`.!.!!`NJ`CNNM M@QP+`(9GA*`*!0"C#@$8@B'`<;U\C*,"K$@""T1`AP<00`0\X$(=#@`('HB@ M#@*(H=Z&D0X\]",+`QB((V!'`(_P9P@#V,8BZ/&@%:Q##N:86R)LPK`$0JUC&6I10AOJ$71TKSTQX5!;H*T?H+!H(=B@"`*DT`@*`T(.'S*$` MSDF'/2#B!0)$8QSW.(0+&*`\.DB`4`@@5*T*A8YQB%%5Z;@&\CJ> M*=QVRHUN[_05>:,[70`@@`X0(!6`G`.%+*,#!1`IQYKDO`@GC!.R"Y'#`\+6 MW.<&XA%UA@`6UF&``,%A'[N-U[Z](,60IA03)I;Z$,;(-$"6,0B9OG9M%4T@H0/Q#-M^2YCB5`8M;)C(TF4\+L:!Q" M&:K\UCL6_@^K!*'9BZ@'*PZQCX?C^AM2V8$RCKN+M$#NX>,PQO"P`80P&'P9Y!# M&-HPP<"W(0UN"`,=TO`&-Q2^Z:`/O>B9GIC24W?TJ$^]ZE?/^M:[_O6PC[WL M9Q_[*LPA#&H?J@#`0$``@+@@"!``*`@ M`*!@?Q9X@?4'"P*@@;<@``$!W*?$_0(!8"4``-89``!2%2V:-I'8%0``B@L` M``$```````````!C;VUS=6(N8P!O;0``"@!_)/4`````````````0"DC*``` M7ZAHH`"$"A!CWK294T>,BS$@6H"0\Z8.G31NRLP!0><-"#AEY)AY(Z<-0H5M MPK@A`X*AF#D7Z5A,\\8-")4LR[BQDX:BFS8ZZ8"P$T9.FC!BV)0A:#"!4Q`? MB\[!>.;F2A!E\,!1.;4FTX$%#P:QB(:DC@127(`08I0.G3`80=!X$2/&BQPP MOCI-0`5-FHT)R93YR";,F#(LX])!,QA.0S9I())1"-?-UZ\O"([`.(9-'<$@ M>,`TZN:,"S0^-'/V#)K'&#IY0)Y.K6"SF\Z?!XNF0P:R0]0$5=]F/5A$PH4- M3XL(KH`@1J%RRHBIDX8-F2]%S]A!\=Q@]C$L$*(I:E"%BNQV4A#<0U#@U[74 MK=\$D?'.33G:[\L)DR>\F#P@I$%'2&%<9$<9;``(DD@DM4$5"&(8MD8<=;PQ M(%9:<46396%9E=-./=4$E!M"$6444DIAN)4;7=E4!XG5T>=1&R0-]M=';\PQ M55)EN/#>%8.%P<8=_&T4'1R%'7:?=EMT<9-02H4!$P@U'>9?&6.$4<<<@RTV M&$4S9<112`ZZ4:!&`=+QWAT"HF$5AG3L1U\=;+`1WAU^C>'FC5N680:=(!0V MH!P@C$1H5EBBD`)5/G8H11DRR<$B1XS-V888(5%I1DL-P23@3#5MM*"A0)&! M&4$)=)=&>`F]*%0/(,`0GDLP[TW; M:;542%'%MO$Z)49T8:S![%Y]Q!NRM/.&2^V[N0K%JXHX?1'LL!9J=&RZR1J\ M+*I]@(!G=8.AS>.29)[5VZBD0 MK7L=0A$2J2>UD=)5U'YZ44T!;JK2DG6,*!2F9V"T$9N+@7`"&">$ZV\461L$ M@M<,EH05B#ZY/5111_'(,HL;IOUF=FT'!6$9<4]*MYLGE)`W"@M;T?=!CPJ] MD9>68DKH&YN6+=/9DX[:(&*G-JMGU2I$R&5X*APW-AFXPX%[=`RQ0M?#Y16`@2BL\&,YT#SB0Z%-"(4<.D.)YQZ24Q`91,5 M9$:#,"G0EMKU,:><\"KEN]K!]+4K$,2@AJFB5^Y0@D)^@:`(6"A"!B/&)3I\ M`0YO`(D;OH`H]QDM8C&IP6I)X819U\80Z,J9.B@#BRO430 M7G`@W^#(`(!(BH6"BU+(8$LNN$$$+.`C&S,&/#I5JPUF.`.DC%6]5\*A,SDJ M0R7A8+2,<=`-;[#/5N3P11X44W@^*!1)=.:78FU%22B,4QD*=).-U(=M;MN( M"S,FR);$J2-K0,$WZ<`"$8"`"W3X)!!WEB(4Q#$$_?L?$TCIE.QMKWO?"]_^ MY$@_]*D@!1QCG_O$QP(4J&$%,DB!"J82O_G-SJ+V>Q<0$^!0[GD/?.+;PD=7 ML"][RH$,=8"#0>^WTIBJH:85-4@*1!G`C"6@GJ/!)PJ(VL]_!O252)-6%]GP MQ3=.<(<).R+#&,K!.W@P#"`,PT3*,,(I@4LG/"F&F;O893G#MS)R&"=)5U,E.*=&G#/:!7#S=2D\Y M)O4-^=QG4P$JT(P1M&<'3>@HP1BQED(4IA,MWTG+@]%U:E2BM_,H2$5*4OF9 M(:CIXZE13?M2V)9!INVJZ6APJE-JJM2H/@7J:B]*U)4B]9Z87:I"-_O4839' MJEBAZF`@YA0.GF$_8J"2F&@4'1P])R3)(@-+.@*AB19E/_WQT$G@`*#%W$BR MDING!GD;4?%1=+D7S2@;VN?;CGXTI".%GVUQ>U'=:M"GP:6H#OFJ+R`F][_G M$VIS188S5.E0CN++WW?DJ`:@0:H.DO*9\K9DM*@29+DZH:,=J?GB#`>261#[ M;+@"^2XXS#4!04.Q3:Q'$!6MY*0-%5)"(F"PCQH,14$ARY@#&8@@SY\;+5G_NVB9="%ZS4K@F98,)3# M(.5W!5E2B%;HQW1<224;*](LJ.W\(IV"5#-6RB!`:*A'RUVKQKB.,5QC4.QJJH,`$@AX0B>;``E2/1BE#8_45V_CI MH46;T"X00XN94^.J+?(Z>5WN'*;.[! MI55$DC-1XI2R$<>.Y$6FSB>0(].G.F@GA*:`-:'#TZP)9(\9T03WW&6[BT6LT M>LHUM?5MP:>3DFM/.0@V[4MG]DXF7I255K=]MNWL?I&[:$^`W[P*@@]^7"&# M,='H/,+6"TEDFU4ED4?N0!(RI!E`A]4(F^%^$'[C@=,8&)V19`T<\Z&;J7XUO\V28R*\[G M0Z_D%&T4,1R4$/1%)0<"<94B<"@2>$)2!V40'B6#33;A!G3"!L+G1I1$*+"B M9'DU&CF5:^8G;O6)2%O9!.DMG)D"A,XXU*&5R)BQ!?AZX8Z:G5?0'?_?'9A(T!RO`1_>S>[PW M5CBU$BHA%'&B2P\2?!(Q!VN0!G'T!@W8@7#U8Q%S@`;(17:W74;%06JP)4*A M@`!R4C47$O+T5GO!7^#C?S-X!C6(=<(C@"OP?%#%87*W<$/#=>+V,2,351)76"9^Y4!GN6<'X3.D)6<.8U M:!#G$:030W(@%*CC<2Y'9](%0(ZS-HO4(KG$,V3P.6\502E3=C"`,A6A*[!R M;3H1@^EH:4$4+AK1`CX01Q*QCSX07BMP$JX"`C[0*W/`C]A&2A$$D*%E=JGG M@WQ7%)HW<0_BA"K@D,=62,FF00`97JIE8ZT%9P3VD>$!D-C60RF!!YS(CYS! M*O%(!UD(?1G3D`D9D&6'6T.E4)XFB>&R@D"DD;VR$KC6D@'Y2BBI$[N"D"YY M&S4D?7:H05T5).65$FE(9Q@A($?!@20I9XWCA$*)%3<)DN&R7"F@C'&&`BMI ME"^9,C/Y?$!DD_P(DB%9-3LY6MWVDSP9E#>9DDSI`YSQE!W6+*-Q&_1EE+YS M$^H%DZYR11JY,BF3/V%)2(9D8D)CE)589!H0$-RGQ/T"`92X*4,&Q!PZ M#>O,T4$Q`8P$3Y:`0)'&S1@V=>,"C0^R M9F$F!,'CHYR9;=\J*.M2;MJ/9-BD$9.7($$[;])T+(,G#1V67CV"Q#@G!8@] M(+XP=HSB8\C*.T#T,;PWH9F6.>_ULZ1)5P1Z""5H>Y^TFN(($8YS+,U!.&8(+1`5%"2.HF44DX9U&6F`=+F M6GHL>%BCAF+X%,8:QX8X8D[RK12F77.Z8>>:;5Z::@)!A@''E5@=U1`(;2@6 M6$ZV"LA:D74.H)H(;J$DBLL=L&[!JUW*T0 M0[&C4J4LLZDZRP:)T:(PK6[57KMOO]K^R^U!WH+;*7+'==61K;K5X5)#.7&) M[Z=RU+DHOWD>&^R`PX[)L,W)EK%LLR).7`:J'@=IUAMR^#3&<*KJ`?=\V:.-IW9R?@$T8:H0##CV=K$!#_/R8"]/P>2R04=L*=8M\(%H0Z!\``7,._/J;2"_?8[X6R$$Q MP(S5/E MX)\%60O061"`SA]"`,TT%'S0T4$$E!9L+?AGXU\"^OWNV]B7`!TR`%"@@PL` MT'EP$#I;`-"=!;0LL`@[M#"AB!$"+)2+`P!`HLLO":1S"``>#%C#0AZMDX!& M[22`"P$CAN#1.R<:$(^*!;3HT3PQUJ.B`39Z<$^,^:@(0`D"5:2+#16&\,$P M(0Y9C`4F+O1!B`24\"2,4H98@)46X)@E+@9P^:.4PY1T$@``+#,,+4#L\M!" MP^3B08:Z-)-`@0>F\P\N`P"(CA)^`5#%@__800`Z/_R311?##,K.(.P08,45 M@_A!@`!TB(`+`PL$6$D!64"Q::>X/!0@`00,0HP!N*05(#**IC,+1%X8\,\= MY$%A0!:)&.%/H?Z@+E,.HHU8L8BB\?%`PB#]8V#&`+U<`D(@- M*BR@""$L+("))>LT<(\W/X]PASHE)9T2PJ,LH``N*:T#@!=="/,0FF@3^(@! M"A#@`B,>,$``/]%QY`L@`,A`C@FL`,%(,8=8,\DB-L`TB#$"H`4`(#Y@-(`< M$40'TB+^Q/*'#,!8-8X=@,3S!Z0""#S`,`,$4\*OB_"S`CYR@+$<(\`X@@TC MT/P611+SD(*Y*HYT#AG%X1Z!\F:-LBS**`**`C!`%P%S["1P<2 M>,`#!U@@2&9@#W[D[@/%LI4-Z(*.`01`50*@R0%&89_PU:$UC^B'+L`++#$#404@#(L@(1#!>8U4`+$`:=5#`#I@Q M!P,<@JH*6,=1#9#4I88-`/(LU*$^<=.GRC(3WI3%/\OAU%<&@AV*`(`:C8`` M(/3@(7,H@'/280]:$2`:X[C'(13!3T#000*%0D"A;&4H=(Q#A*M*QS4<"]E` MG(*R_^A')1-A"#[\D["LQ<,_&F$+/S2U#?]PA&P7X0G7_J.U_U#$`1!AB#W\ M@P<*D$J^&F`$113W'X@@@!$:80C;+L(:*X!&(/2!-S[X@+K6]?P"L MLWL`+2@-80=G'8,.&QB$+]H+@,0R-6J-1,`*#"';`;#W'RLXQCJ>0%O;RE>V MG6E-(F9;W7^*UUC'")\=7$#>!I_W4"U0+VO;.TT`#"2R6)^C4:"D@SH<.&H`%`!11`B[RPRKWB$82 MZ.`@'U2QBW[P1QT64$P6#,)748ST(GKPYWK#B$/M8]IR_(94=*".QNTA+U)8]CF@%`W>F6`0RZM"- MX>'YUKE^LZ&NJU86A($'&;C#*H.`B(^Q0@3G@\T((A M@*`%(!C"&^"0!SFDX0QHH`,(4#"&%(`@!CG``0Y`((0WR($-87`#&4"0!#?0 M@0TN```1TF"'-)"A#"`H@QSD8/*3!$$,;C!Y&\+`!A#`@>=GD$,8VC`]G;>ML1XG9]<#[O8QT[VLIO][&A/N]K7SO:VA[T* MA#`H`4!"H@(2T34```B!``0R`@,93H`(% MF(!W"A`!`:3D\IC'?`$*D/G.9_X!_QB!Y4%_>(#E4V+ZSH\`\Z^7 M?-H@$``0",#V("``*`0`"L_[_O>=AX4`A'\+`00$W*?$_0(!K#0``/=-FS(@Y)0)T]`-B"0@T(2Q`]'- M&SH@S*0Y4T[+O M7Q<@4)B1^.:OQ3N,YZ`TBU9MX,$8Q_R\&K',685E#H/0&U4OFI0@A1)-D4(V MDC(2?0;G*"%$@$(441LS4U'U5O M]5:0"B\0-():8[!1!UP@\$#&&W.X@(8/$E)H(88\`">'1QZ"J`!!0F66($AF MG.3@'@0))-L082BV77=F')744A;10=T88NWEDU5EW!'25!!I!-1R%!TI%!MI MJ&;D&V;(5@8>:9REUAD9@;5J2HIWCBT2B=6I7D!@HMQ)#IG'V`4`8;M9_9!D+(K*J!;9H^B%"-+T;H1(P@SUCC0@R#@J*-_/2*E%%/F MX:03E58V*69'US(EI*Y<>ND&F$Z2L1R69)0Y9YKDLNGFI7'.2>B=>2KJ)PTV M-,HJHHI:RZC``!?JPAB)\HFOIFY`.H>DE%J*J::<$AOQIZ&.6NJ2Z:Z\@_`JKL">B``/-S#*K04#N&E#DJ!!EP>#U*&#YHT<'0D22'$!0HB<-'3HA$GC)J?1 M!#1>Q(CQ(@<,F#"/)J"")LT<$&/>D/D(A^.8,F1`$`5!DVL=,6S22"3SQB)1 MJ`55O"`X@N@8-G6V@N`QA\Y/-V=O3S&T,D#IXQ@P@KJ.CS\D0=; MB(,+3\Y;N2^9M&(>:[[+>6^:-Z(5T-UJANC')D6:#$%29,@2%'A2Y$QC!@0* MW"E`].@!PDD5)DR"F^D8A@T*$4]F@GC3FV4;FWE$L(B1@F!A,ZQ!5'&2!,N0 M)TV@!*'B<@1KUR#ZRJD#1PYPH_<3"`1!QFH8M!_1UY@<+8P1QAQ$G6&2'2W8 M(=)5*?`?O6]08>&C)4!X5RJ*4!420F`<$89='R1D!U?$+45'BB, M@89(!CDH!PM8S2B'02JL^(6-*>Q`T(@@@%#BB1XI-$<99Z#0$()GN`&602LN M>4:0!#V91I13(JFB0C^*Y*0;4$H9EH]AD$'&C3G2J,*;/MJ((Y$J9-40'5@J M8,<;:815HD8IQBFFEER>"6:::^)(J)GQ,1)4!AX>R>$&"(M.^04<<\!QZ9"GFHCBERRZ M^&J,.M8H4J3%PEFI2-TIL`=!`L$$@A$NDH7&1\+B(=:I;UC[D:`[BB1'&'E, MUUM9(-B8QG^/[F6C#SR!D$1O;F@HK1EO-$0&CB/148>L5Z&;K;G>DE6&'&T0 MU5&"(+BQ$1LF^94'3"`F,-(95L6Z;4EI7)H`J`9YU(:N!"4`FVRTV8:"R'`( MYQO(*J1@$1MLO#$&"O(]Z@8*0*X@0PK!>2S?&'#D@8+!(^-H:XVN?6"[#L,."81(>(J\E(5DEDV.6 M.26E=EBI-D%L1QL7"%3(4>Z&(-1LH$<%AS12KRNBI!)+O5X45FLT;UNPE;27 MA.A(<\PAK12-`VQD#$7RMJ#L*Y'$:;YND!%53C`DWUOL*37?:[TEX:LOQ277 M2D8"<.!*+H2A+7$PP`,1:$`# M(NQ`*OHY"`TN$Y\MN4%5(TE7<^KPD0CECTD0X9\8_@<"KY5L1#BP`0H"*`,C MX,@$\3MA_()TE/U080I2J,A&Z)"11VEK1`>3`Z`,4K'RY:I(+M,?_\:`AP-* M!4,_I(Y8VL"2_G2$*R)QWARNE3L+?O!M(!!B__X'0#P04$T@,($)0&(^X1!' M!9ESX)26$ZH4-&$)7S`"%%!PJURQ((`QL$%P@L.VG.SG#&_0"H[N\)$H9K$A M&`$,"!;XAJM0)`A.(()8.':5?.W(=*4F]P(1SFBP(=P MN",>9#"$Q?4!(6Q8$@CZF$"RF(XLW6I-]%H7Q5X9KBVM^Z$FR5?&,X*246PT M""GC.,O18`CC)))=]4GRB;.,;F7E*\ZF2E:XLV7[L<##>G&Y&)4'7 M&^X@I1TI$5V74Y!%Z"`C#[6NC(0TD89`\)\WD).'5_3--233.>70/!UQ"X'QVTX&C#K-^JB@3`P<%2EK04Z55< MAKS!E:Q?CH.;JEAU*`M65UGFG M78-V0%"#5K7M.N0D`W/F=BB?X@@&./H"$::@6O&EP`3LW0(,[-:H,^AL<:(K MT4$LLH;<2@DD!PH8&E)2AS.@(5+0HZ$BU=58U_)SE\U178)SE=B/-+@L)3/( M9<,EAW'E(5Y!./`=GKR]H8I9?&WV MF[/]3`4(TD,9J`-K'@$M:"6K4Y!=UC$+U;)F:?(K7`&+2X0D%@VBO59\_)*@ MJXP%796EZ[+$UH7>)@#0)4U`I0O=MD/34F_3.V$MI,S@718M+@$+!E8*Z MN8S=E9;FN!N=NH2L(-,6W72G/XTX-.+;W<\U==OFO>UZD\UE^V6"$?UX$#LK MC'5W``JT+X*0O=)VSQ#3)$P[.U\7U[>F%B)(IL("*&"%;:>&8M'O%'5<1EW7 M#AM4T[31%WX7W9I/J=+* MA918ZJZYL.@Z)>1.H)Q!,(0\W"7-.\Z7CZ?CD#0+UD/=LXF#D6Y8=B9IO9`M.V@#>MF^KE_CH]H&C MZ>N&%OS,2/OQY\$^O^5A)N"_$'M.$8[^^LZ//_,3:=@^KT.AU'/!#=JA03C; M%F,I.V&=_*08=9!DY9(502=M\E%MLEK=IR5=]RS=MRT<<$$5+M403ID=FY1);5P%R\3<':Y`1 MD^1M.?&!'E1]'Z,20D9!TB0Y.2%WOW-OVV:!%H5A8+%A(D9BOF%B1NAA8#-S M$(@BO;=_M=07=>!N;/9WW?)ES(6!=(`CN;9K;V-BD4,0&A`0W*?$_0(!M4H``",_``!2%9.: M4,R\%```D@L```$```````````!E=F%L+F,`.F#ET2M:)^<:-R#)N[*214[,-3CH@%,I)$T8,FS($ M#298VO)E3#HST]04^9',R#1LR(P)(\=J&3QP/LZ1ZB;IP(('@\Q$\T:.CJ52 M7(`0,I0.G3!IW"S=FX#&BQ@Q7N2`8=9L`BAOX.!$D0)$FCD8R82!8]&J&9YM M4)*Y^$;,W;QE+&-FF::-138R"*,%`4)*F8T=<6ZV2C+KUJX(P8HEJ_DBG3<@ MZLRY2-(D")./'4.N+5G.&3L-08C)8Y:U=2-R/JX!<07-PC)Y,*Z$PR;,F-". MW1Q''X00)+8121U5AY%P=/NUGX!D(_@2" M"Q!"6-AJ1)0QQQA#44:6?ZN!0`5["S:X'V2_120@5Q>9L1-,5]G&E5>Z@80> M"LS=1@9D7X4EHU5Y_58=1FS`X9T89<2T%1MLA#='6Y6!`!],D(4!65[!N9$& M'HT5:!).Z5F474QVE)$D2UNYX49H/YK15E!<$67414W!)!--;D"&0@D2@;`F M"7FF808(>;Q1!PAPR%&&&67(D>5*L*E$QH]Q/A55378V6A6.;HS!QAO#\:@> M&!&Z`$8*/P9AAI?K793C;E.E"H**9W!ZQSL(0G"G5,@40033.@IQX\E#/%$ M$U-`4<00C94H1QWJ/?NLI2#)!4(2U(((*XMC>)?=&*A.F^J/&-<*P@E`G.!J MRLKE]MH)Z.%K*,ECHM!&'2&_*B6J)GVD$;OY0IH'3&6T(9(8,^GIQIBSRK'& M&8O"=V>VW!WD(HD=GQ*>1R.9Y"5D)+(!!U4I`&`AG MD=*)^<8=TH4WPF8J&HXX7PE\F-Q&FQ%:WGF>NNJ>48[/YU%>B+/&,:""RK$W MVD.;^090WH%TU+[%]1PR5Y$GJN>6O@>MW@LBC7XH:"!,<4425`R!Q(]"A$=Z M&'6P08=(S\;)-]7^[GKD459EF_#"#3\,P@\.P0P1L(E>]`.Q)`+1&.H@!T,I M:`[)$YG&0%"ATN4K>]OK'A)>U9;S0$8XG/G3"\RR006,("^:JD/K>`"3H9#- M!6CP`4$^F*F)C)!D>5`,"E7H01"Z\"(\F$^W4KA"&XH0AS`A`WS$,,,>MO"' M("`A'?#UAB+6\(@C+-0;++A#&AHQA*T3`6R:@D(1$&2%I,->$XK0!.\];`DH MP-)2_/2O-#:F!ST`@1.J0+#&F*$B"T&!")[0-)/YI`UMR8,(6!`#4BF`(`(A M%$]^0X<86L@@'22('=Z0!JLDP&=W80,*EN<[%;1A#F<028]8HS"$%.R`( M)T%P215L)%,5V:3(#"*25:H`E03YBI?4<\E1GJ%(""Q)R%`PR4KB4@&ZA!LK MN\028"90EEPY)D%NYP84C)(K9QA#+6>I`A5@TPZ&W`-!$K!*X83AEUOH`@CB M*`)S_E(')DH;S+`I(J#0