From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from euclid.skiles.gatech.edu (list@euclid.skiles.gatech.edu [130.207.146.50]) by melb.werple.net.au (8.7.5/8.7.3) with ESMTP id WAA20441 for ; Sat, 18 May 1996 22:20:32 +1000 (EST) Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id HAA04946; Sat, 18 May 1996 07:52:09 -0400 (EDT) Resent-Date: Sat, 18 May 1996 07:52:09 -0400 (EDT) From: Zefram Message-Id: <29384.199605181151@stone.dcs.warwick.ac.uk> Subject: 8-bit patch for zle_tricky.c To: zsh-workers@math.gatech.edu (Z Shell workers mailing list) Date: Sat, 18 May 1996 12:51:33 +0100 (BST) X-Patch: 95 X-Loop: zefram@dcs.warwick.ac.uk X-Stardate: [-31]7522.47 X-US-Congress: Moronic fuckers MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"WJQE_.0.9D1.fdRdn"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/1092 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- Here's my attempt at making zle_tricky.c 8-bit clean. The patch is from 2.6-beta18-test1. Zoltan's start at the task, metafying and unmetafying the line around completion, is pretty much what I had in mind anyway, so I've worked from that. The changes needed to make the completion listing unmetafy everything are impressively easy. The bulk of the patch is actually comment reformatting throughout the file, to match the style used elsewhere. I rewrote several of the comments and added more. The patches to utils.c add a niceztrlen(), and fix a couple of minor bugs. Although nicefputs() is no longer used, and nicestrlen() won't be quite soon, I think it would be unwise to try renaming nicezputs() and niceztrlen() to them. It would cause confusion. I think it would also be reasonable to leave them in, even when they're not used, as nicefputs() is very convenient for producing debugging output. There are several bits of zsh remaining to be made 8-bit clean. In particular there are a lot of outputs that need to be unmetafied, including the prompt code. I'll fix these in another patch. There is also a very serious problem in tokenisation: the metafied line is tokenised as if it were literal text. For example: % echo foo^@bar foo bar Note the double space. What happens is that foo^@bar is encoded as "foo\203 bar", and the tokeniser splits this into "foo\203" and "bar". The former of these strings is illegal as a metafied string, but if it happens to be terminated by two NULs then it unmetafies to "foo ". I think the lexer will need significant changes to support metafication. It's probably best to make the hgetc/hungetc history interface binary, but leave ingetc/inungetc metafied. I'll leave it to others that know that area of the code better. -zefram begin 644 completion_8bit_patch.gz M'XL("!^FG3$``V-O;7!L971I;VY?.&)I=%]P871C:`#E?7E_V\:UZ-_*IQCY M]EJD!,G<*5I5\E,_KS0'@]Z31O=)D^[K:>= MQDISJ]G\;G-SL_*FP5.XK]/%0>P/#=H$749J(="S2 M)!3!L9_Y01%F6V+]"3P+(SQ9A]^$^)Q&(_B11$$(0P6U*"E$X(F?]U\\%^OC M^H(I#[Q6HV.FW&HTX<*V/>4QC);7<%A\=RVH>V)ZUFRYIV$Z;=U-->*1]B;Q/?;WJ?MV07[]\_FZO]"S# M[V58^/7Y>\9I)FI%0^P*)+DZW_LFG26C^HZ`ZW]TOG@UB_WLB+[9V*@CKN0[ MB@8/_>XUK8'?0+@%\"",^C91?F,8E891$\:?!V^>/]O?>_%0(%A%=>U&M^^U M&SV+@>"O-ES:WJX05HU;8)@)K'P1S`5Y'EZ;"4:XQ]B=U<0$O`2WA;`&.L; M&[GXAVBW\/&5,,Y#Y]N<+N<;&_0S%AN[0K)VA7RIJ_E\D3\E#&.\_D4)"_%K M0@`Y%WXR$JDK/3WQ:986`"J8O3'3%%"EQEZ$9RF-KZ MM$YDB0\H3_&^;8+WPYL'3]N!IJXLW5^M2 M;:!:2Y."/SM:C_JO43B.0!7Z?R^>XU]1$L2S42@>7>3'6\>/M)QZ!]B:`.>( MJ9\5*(7@?KK`[$3R"X<9AHC0B!7X("9Y,07J4G MH&3CEJ`Y%R!3DNC3+!2S'*5`#O(`Y@92;S*-PZ>@!9JQ0,C"5(%N<+#P;.HG M.8C<)T&*MY+TS<_S(IQX^%8IAC_"%#H(24I92$1 M\]SH&B@VO+;$#3]*L?VO:`S<)G[9^\OSPU?[!WA%2(9;^6,V#9Z`[A'F6\?? MSW\#_^'U*N[NMKQ!P]J1%$<#7Q8@LVI_JZM?<9N%/[VFM]FL\\WA&3!>(EBO M/HK3X>$4&9-_S=FP`GGXA#@-478Z%,=IS`P7)J,GPQ"(!DE-3-,\4CH*?GN: M9B-Z"I"@R`*%/8K7=;AIG",AXIW!+,M!\NL!4`;(':)(3\($-)01WI0!A_*P M_ABF+>EZE>EGDG[&X1-2Z/+KXHQU@%40]J!O!:0(G:*@&GHT8P\I;A(F,_H% M@60`M`<+(#FF1(B:L5Y7I!@XF6W:;)]E_CGHK,=(M2'O/D3AIR!`49F1S\$C M$T0!L4#LYT7=Z"QROHS'=7P#O-W,#5F*9H>Z[]Q@=2F(JR;'6W2.6.29`2V% M&7"25Z&TROU<3U[=2[/U%,WP."ZY`"7(AZL6B[\4IZD8Q_Y1_I2?QXF>DBQ+ MTF3S(LQ2W'TM\0914@9`2J]6P\!KH#C(=; MH&&#/@EK."8-911E80#2*@IS,(%Q;@1O!9^@/!1&<@*P@ED1?0[-`BU,Y*)F/Z5>`YA+;/9BSOCXAS61XH]_K?%@.,O< M/\_Q?MI.\W02VMI/?IS.@*U!2J.:@SB3JDU\3OMTHN`$\Y\RV<0#,3@G?G9"L]9`/(&\D7 M1P?*\>@7(#[^!?#K28+P)#(\/1&7"^(H)_V%MF!$[UC^9FP#8@-Y$4AB'&7P M2'24I(H%AF'@`_!QF#%?GYOKBR@Y>8&OFGO/I=,1N&_3E@;DXTO10*I,E#N4 ME68%8+9#5G2#XQ2,=*7]*PF-_PU1 MI8K#SS[,)S\.86`6$MJJ=F9\YWNH6L"RN^AR6L'][+(:^C??:&T%Z?K;K;73 MZM%NMN7JW59Q@6_MN6=7VG-MH2A'N^ZN2R-:.)=SN_$&3+/5<[O)%FP9+, MV>PKXUN-AM=L]2Q3T\)QE$_]`K=F:]T@0N1%FU=&*5(9RGUKZM)=PUA+V4^5%DM&@HY@FXG8(0)$ MC_*2'?#H34C\R;R*]PQ>C.O#"7AT&_YFEO]7%--*!HW3.$Y/R4Q�@,BR?* MPI#V3`Q?/(GA(FA7L$R_6,N5QP>%,M^4X4V9O"F'6>%D]9,>N=;(@P0\RRH! M?+:VM@@TP/OS,,-Y`]46:?I4/S#%`:?R+3@!6.4Q3_R,IWTFT8(WCN6-SO<* MR/@D0H]>"0A)"GN_0&*7AL44ET8KF@EP+W07JHKL.]7![N=CQQL61FQ MU&!+R(_E9W8K,D;/[#I29M',;N3=!;![F\&@ MK*M3/`GM'U]\?+)6W^+G/]%]1*(\99(7*"$XHKW%>J4V"Z-"DCH^.$5K/*G& MH!YW5[SZ]<4+0-BGTJ42P,V`\T`/(P(+411P3/AI!F0F;?>Y&&O9RR)=BMDY MV;*IPAN*;]@WJ8(AO>(YOR!=XK"+7;L@MU\\D2J+);$*&+LAO M5Y`H[JH!;4U\CG:!`)`Z@30B^,=H_M4((W\(_`;$/\9?QGZH/6;-3M]K]G2Z MS8,A>2TK5`CM1F2OW`)(HM2>Y>X[0&\P<3UQC MXUN2BRHWDF[3:W:WK42_TD"C$>IJ9NVD[T[,XEG_)8N7O`68'^:A!R8KPKQP MO0KJ*HL#5'7+4/FJB&#"XTD`O:D1X=>QOCA65XWLZ,%VV>]9663WL$KM7%IJ MG5?#\=7!4(G\7@/`LCWOA^#A/R&#S3-JA1-5K=@%T`UV`1J1)#C],C^)DO:% M(H"M-'_>HTT6EGJ,5%HU$T1J@+E*+!AH`U`>'BE:M8O4'A+MKA"]ZR#Q>:S1 M+&1A%55LJ41B.,:"C6=X+K>#-%-BBX6(BGVR=NY&6=P@,HA(3/JI4:J(CL!R M#"1$D8Y)&UGUU/BF0WAJ5VPV#=/TM[WFH#=O/-\-==R>1+Q_>C)SOPV*4J/= M/TV5(R9+4]522*B@L^KDT`YF0BJIE(6?PXSC7&HA-4S0QU#HOUB84[;@*MTQ MF6*:X*I8<>ZO[ZP\0:]UP:H#+`&SR<0X#*=K%"V=AA.>\0IG?*DW+M,`6UZ[I3,W;V?"UYA+)3";.+>NGM,P0(2']/-7A"$TT)';RG@6.(V&U^ZT[73S*X*+\ZLYJ?$0'5N,RX4PY/ME%J']A`;MM:"J./D:<#51:WKO ME6!;#=E*PNP`EW>="I-Y#C`P*$CE1K%,L52,_U'0MR MT:5R(LK""A`13$#'@Y]TJ]X6VSW@J)Y3/G79Q-]=>^+S`>>JJ5]U)ZQ<5R6" MN@-8YX(@%4;'_N:`,XRKK,*"G'M!/,LQSOSZ+=(>O4GN7[_L'1RNJY<-PS@] MK43NL9]K?9]PVN][[>UN=9S@]M@B!<9\R".\B+;L=_\C'QF,B4&MRB5V*,L#/*/40D7.9S"0E8X M1))B]-7O5"HI6N%@L+<]*)6=\7:/]:0/M2?OP#2'C^F.U?T+;O.+1P9 MP;N(]+I]K]/3:30/!')$0K#8]:O!KD0W]P/%2GKL=@"J#8<>D5U7OBCPR(L` MH5=IL0@B>4I+UD7"FI-Q?9M"#6*CBHKX;4SA6JP_#P"\\#>M35W[D2X9W,[0 MHROO6PS-UO)=H"8P'W36A$BR#CM=M]#58 M5B2VM!E6Y^)DF?LN=D53&F825L]IZQ&P1U%$-0O'H!8D09BKHDZB'K?&TJB" M"E:CE+C MG!S6<8)$R\,@V6+@ML[D)^.\&-GEC+INL^EU6UHUOB_L()S]Y)QD`V\=Q,"J M:-83HQ2+T2?7R$2^#N)+SKK56R0(>W4W)`EAC[60*JX+IZM23Q6O,S49$;A^ M/$7Q(K"E">T5J+?X,>@AH,F70DO\1K47PE]"=\#@KP@Q*R0\3\F:::EHBAH% MQ24Z-\_%$,B(P_R)'EC\B(X4UON0S,GH.DVIF)O,(4.SH0]HU&/`6X:`DEDF MZZMYWF>D^>%`0&$Y%G(SG4G79@5#U%CMHEJ&"="&G<),$Y*.P1Q[FZ2955_$ M)?^DB8/]J:-'*[HM!*_1Z@UA[Q+4%H+ZG-35FGA'A*4*/8@!['02J41Q$7@F%F@EO"XV5'$EHU;X]Q,$;Z@)#+LGA M.>"2TZ(BCF/Z4RV#4C!EH\2/>65*T"@LKW^RB0.P#?9!3;:AJN,3GDACC?>? M<:#X7$4:9>N9)#S%.W-Z,P`,6T-0Y+;\/2J$DDE@'XJ"-*:(!UOJ,M.:]Y*( M$(E)8?`V:8#(V&TTED/8/OD\1"7,PI-Y)SH?_*"8R:&2A)V_UEQ`@XNF(6W,/"X0, MMLR@S910HV5&C@V/@)!I5K$E0&S`Z,C;%Q997:!M$[GYG=*V%FIH]%R?NM4P MJN[PBO2MM0(YC$OODM+KRY*ZF8VA^6MGPOUG,HD&T7)LL@@V5V:'[`DPH7!]>Q+N&-WYKZ4$W&%8G(9P"3.- MPG)S5_Y(V@;8.F:[UH?R+9'Q!/F3T-,`M"S_IE*`\'V&&$%08B>:U;)P8[93,>; MG$Q#7F>W)-MT?$G')"2;P#5?XG@JSR,QU+5 M2%`QD@.R@21S??CMJO`[&HUB]O`F0L]1][J!I!_[OG>HM@ZZ"`0S= M5_'^PV<#=W4WY`5[-(LOKLD1CBE=P1U7XPM[-)='KO59S%@719;/AH1@L4'- M-DB\SW/;@AL?$`M6;D3]-K&DLE9@=]LTNQO0N/U7J/^2C1#A^S^*!A(YD7M# M:P;5>7?C+`R/0W_*'A^YN`.526F!Q"-3%&LVJG2=61[FY@FS9V%>!_>UL%)' MIUD:H)^7$E%E=%!LYI1+5'=!C\X?`W?JGYA@&@I MN367'AO\/<[IF6>O7[XY?/ZW-WNO?CK$WU\\?_>\[CBE=43)X(;HY`($OK$B_BA+!5^7\1Q=:*HD@F]5L_KM3LF?N#$4U:L5X!4!KC0/RWI MW)7?JYB4%8^JBKW(-H[F.2%D:(HC4M;CTM?D1*29^#UNI8K_\X!)2-V*XK"EP=5Z;[MAD>(0;/$3-A*_J&;0GT`8@56&74$W41/>L2G^*_PF`ZC[ M2B'*"^Q%A<&$(`[1)TK\)_OA8,<6F_]4Z'FNMB'D6D%?-=_QR6U:1,C0B=;+ M//4\93K9O.T&J#_)-L0VT%V&?H_]]"?M(W)&6C)L"K?VZ=9*ND(I"OUV^VG;P'UY"F M2S(.BZ#`IN$Q5C>F]"]K*8:H=>R9%1>3\^#8V[QM26`#=9>KHV3[M\_IB>RI M3&Y+C8U1-`);SV)TRXZT>[Y1*+I:L4&8II=PG]IM5M&#/)G"O9[CPJQ+#4O% M53D0UP=]I]_N.LDYMPG..X.E0[7+0O,K)'N[X*VDWC:`N].Q?9_3=*HL`;YP MD:-U4*,*27U1MMG;M>N&W`R]GU+NG%>5EE(N5.IWM[U^OV$[HVXRC26JD'ZR M$>')#$*5&.AS`YB2%V5^.9@JK:H;4Z0![CF?ZG1=>&BNL:SJ-E=PTR`_!GD[ M0G]72*WBS7@A!BU`Y_Q,'<\E'>7\5FK2*7L,R(QAVQJ#UZ2R/XU3`RDJ:J=N MEIZXL"*JW^UX?94/1CC>;GA]<_;)BB[Z$W:'.9)%EU3N/;%Z$O&2<%]/=#Z( M83;9&Y:IY';JU^CU363-,^D!LELS4%H,N2!=I^Q1+=TIE0&EXB3! M!)+C\Q^0!..8/)=NET&8$9;9:EN?E"69(3R9%N=.XR]7,AJO`7D2I(^3:JKC M$]!K"3DU6H07L/-@10J.P)2FA1=9E_3@KS&$1 M*1<[FZFHU/84[U*'4B!V:JK,FW*>=&'(1!4>S'=%RV?!L;0)T=8[H#Q'+$]( M,S^+,+K`#4_.9&=N>,.YU2$$[4JH=@@U3<6B&TXC)_Y_IL.YBU2T7]%@' M->OC>DD)0_).(ZT0YXIL*UI%"E"HI3:>ZNS567@'P7J6% M3%8P9]@@;9D#853G\_7)+"_6B6-T5^HXYBP%4ENHA:0?9:!R^1EEHBMZKSPJ M"%ERR^:^9RKHYUGV\3@%Q8A&?8HO4LEX>D1/JZ>^.6"H5(6K`<@=_U(^C(C2 M`Z788-T6HYGE_AVF8Z!&0HUFM\95492OB"/ITNVO^"^7)L7FP-MV&SR0VR.W M\E\$)\#DXH^EQ)8-P.9.7?GV(Z24VGJ^L6&._XK#!,LV."J!)]R1@H0?8ER"P\=2_PU>O]UZ\>/U,/T79)[(7&'Z"G)37PK?34>0@ M05YG["WMAUSEU\5[6>]]KK<1UNPWRP!$[@GA+HNY_XE%J_3TMO]CDU0MP74K^PV55S_G>QA M>CM(T*T);XX&9WX2)]='QP(I)]%22?N=GK?=<_J%H');-&`7P'\B3_S3$R?` M/5-/H!<9NT"F@3&1^JX'T<^1H!!@H&::8P`_"2I^G97EG8J M3];>B_V]@^<'?(+B)MU<:;`KS5\Y\JQD':50&C/"*,]D17R4AR8#9+>`YF"H M"%:S!NB#2X_@QR//K.8C_/V1/"BU&B*X[A8;D8".8!;_A/].<#:>0/C.YVA. M+9$M)3:@4*=M6BF;'RD*MUH[$8]A(^)&3-M]4,L&CE/L]T<3A'-XM:H1?L4@P%4,[;&+YX M-)O*K,"Y?-N5+U:&L&6]4`(XM:W"E_P5A/P/:`@?GY/`_T$;Q9;I" MV="3]>*A"A^PM\\YPS8WAK=ES.E5P(V3ZQ=#/%JC&)Y,^EZ3B=PF>1N%R*`Q M\`:MMA-/N5/$+D/P,O?[VLC7^?7,D5=%OYF!0PA+DX`U0!4U+$4&NM)@GAR6 ME!IR`-5B1`T2LVU\FJ74HTGV#QZEK%U%&')P!TB#P$>;DF8'DGT\BSV+6"DC M-,$8"`,"]2S0"*4VA@.<4Q/(\U/_6IT.[H#NJP0<\4&S;RM<&%Z"1:>!I6+` M$`4=$A_@:-EH?ML@>,=I.I7'[?@42\%*%U5L(ZL^J+/^Q#^*@BVC6NQ+)91\ M;9-SV2_%SR:X/MQ^4BK(P5M@NXS1ND==EC8D+)PC6C/#-1L-(>M9CN4YU>3F MP%Q>&,#773CX]E'*,4&=&$<_IVF^(Z]2#S6Z+KNID0CIM+Q!USFT_J:@PYY& M?+"'3:VR8]^(:R/9,CA*R<&4I;.CXU+6LHZ-P2`3/\]]/&_8^,Q;>Y=43Y?"A!4::Q#?$X%,\= MBW)<9#:X`9`\\@:%YDO_?$@LWMYJ8G2S4E!>CX$K96&K[0U*K6-,U@\*6B!9 MZI*Q]Q:)5?ZU]_+-\[F_?]Q[]2?K&CP!EV6^$8Y;4V/]Y`[V$SU-&3BKL(@T M&7$:ORTJ9`LF2?ZF$5FA^\\!G;XC=:M8!FOT6EZ&N6A50]@3G'1Q$J=%9%81W[A M`^YTQN%"HGS''^MG^>R\H-*>R(Z10]FS`& M:$6Z.,("A@TF))%RUZ]28SQZ3"9M<,YQ>UV-6+ M."0.(Y(!H)27R01#>1/Z4$1>N)2+)@SCQ$?5\HC:[+F3;HZK_A["ETC:E/+PN9SJC ME'ES^<__,BZV@58&ZN5\O`AL#YVKORTO5VZYW:X'_*VW7`,`.0,-0U#NHF06 MJOKJOYI`NBE8<]B"SLX8:E]5#6`(36PFQ5H2=[%A/YFJ;,RMX_DZ= M]6PJLOP^JQ MNT#P18EN?VL)+\FO"=L&SC[:V,"EL3PS4SJ>!2>UQWIFM-CWM9JL MQ\`_Z^)[@'Q<%S]H(JDQ5%"V.G=^T"6&7^1/"5;<_@`>+Y[_[?G;MVH_Q*JD M5S_MOWKSZSN$*Z]"W7KP7*H^M;EMI&[7[+J=FY+99`C8QXISHGB7\TK9H-/!RNT3-[#QZ8 M(\NC[9@BJZC3D!SV[.+<%"M51=4R?4VIC@1=$\N;&]-X0NUR8EELH$Y[%_EL MB'EL4R`M/+$8_7:@(>3Y;,)^,.-7LAXV3[FC4L_2$'L./)/]DO(TGJ&!8+G- MW#(2NP5ZD" M^^7>NU]4F37F[&JHDK.?E/%\1VQLP&].:=].75?>`EFJ\ MN"TZKH*:.=PX3LUY[&BSZ-,L0F,[3G/9ANTH),>BZ6#MN%H!BX?2U5XCMVJ2 MBC_4M8T^/V%/1K4BU3A0CN0K=S@G02[2.R^5@;=--]4LWT>6-S46;+')7@'J MA>7.&'/]!-2LY-[!:PXGV)'>CZVZ<$]V:^9@GMNJ&0R%$$N,[#9\Y[)JB/P@ M7$<*`!T#@E1F]\2D-*L@I336?56\QV>B6Z&T4RJ'`C!%=):Z:H<#8A&&V=BH M&WC"UL!W;F["K["5-*B+COW8$!ZKRWX4F$E(W`D?X,[FP/%4?5.HNNW?K@57 M80PN#6*17*-SVWVAHIK@MSL>2D\[SJDPH/PINA<;!:_UH:!*\R1E",_+Y4Y] M>/BYM3-3^9U1/_.ZT_HIHBSP*![)_=T:@P_UC?.4,_+$;#H73;%>DX['.4&$ MV5M>U:%B](`AK7WB$NN(&VRIF#%^B?]&5B[,/NX&M?5I775?:39;`*IFV\FO M^C:@.GK(L*HDLV9S&V!G\K0MA76ZN5G7/C[%^%Q[_>HUNJ5_V3]X5W<8GP&E MNKKJPX5A>_VXNE:G?4D"!\9*4KP1,^)-IP(:7@G!3^1MQ=+>@)6"%C7G(*N( MBT=ULK?)/>#C/W72@7&++.X]RT3414#T7*?]-P"$$5X2%DR_JO,J%OU@!@&& M+/49>HJ*<1@:5S4M(P-G%H>YRH7APB%=VXJJ(:@\E2XZ*D*$T-.3&JT MZK&<\[69`OLM6.9E1Q"H6PPD5E:Q!C@!XJA1TW/Z[3.8SWS<`W>1P%/%98UY M+4VRR'\^7TEOE M\RRTBNS<*9%32E1EI3X7Z'A\?A6&;3P^'W4(-H3M]KJLY!KT7`-H!N1<(>`KZ3]5@ND0*LU*"M$ MIMIAWU3&NP='51>5(_38]V..6?9DF`1E?ZGQ+0IA/M6!_$DQ!^S8"><<*\TO MA5=R`:LL`M:](3>;GOU41!!G/\N(TAKGJT)TX1ULU`,`0J]?5G5N&0C6$8XW M!(,NS=#PN"(HYC>C[[Y>?`8:(1)+U^G`N*$+G0RT_CQ+E0N4YZOZ7',U(R7_ MY6RJ(Z^Y4(JL,]MUR\Z"?\VY$0>SIZFGJ&> M$R^?'L(\N;!RDI=5.S5;?:3L[8'=1/&.,"8,5=X.VM1H-T6<1)JJ#K\%W%G\ M=QOXNTIA%+!?'S'J9.J2#OD9_AO.QDIGFZF.BMK8`9UQMB-F6F?$K89\U.LA M;C39B`NKNE&W!&LF"\MCZK6\&*VJHN M.4%?^2I7J%@:OW2K4QQU?5:ASEII.N@R4?4K\&X3`<.O^.&U/W`V]$S5>I@_ M_OYHK4ZCK5:-UB30S'02M4GT(45[IEK)TS(N?5`V&C+VS=MG?_[U];OG!_HK M@N;GC0W!CQ`,YUZ%B=P$&'WGWZT[Y45`\>(1OUCGN.GYU^?N?X2!'/5L8OWQ MJ++CO7F+Y[X2[S#I`V*NN**\#F<)MMVQ_EG'I_@"]2EEC0Y('FA/EH0U6YC7 MT':=%M?@C@UYFE&`(18&U4LP/3#(LKZQ,1/_$.V6>$HSW1#WR4O!M5DIN`$G M!18C!18?!U"WLL+D74BN M.^I:(/ZQ"Q1+?W^Q."VX%J-5;DN='JB&G9XY2BA$7\7CL<]+R?FO_#C-"N[8 M/)[0%3+`)N6,!].8=D@/^L,=,Z8SI!J1N+_;Z'C-;M,<4W6]25SC]=4PZ?<` M)ML=QPNX3J,485XXL;>*$^5&*3=^QN)2V]0\#:U\B-/C-`Z--6)*7\@"H'.G M37HF9?3+5'QYB/*86ZUP.RY9-#*.SLPXJI\?UD!$9]PB%$/4EH/5'XW`[#DA MDST&]J46E[04UO(>.[9Z1=\]D\F(08,L9Z9KD M^?VLTH=5@B.8`]C@L`PBS&$F2:2+8&0*DN[]+FW&5/;2SD,_XP8[W%5;>P"T MSP4/>SX6!85HZ+0H?"`W$E.T/:.RV(]5V4]TE%"V"H\F MRSOM)C(;9F.;L!?NE"4Y:^[CKE(D8"6M#(`6NDWM'E[MUAPCVV_ M`1[42`8?U\6%'FD.)\MC0[$DCW0I;BRT?$V.S6.LFH\&'<1@RQ%-L'#<7(/@ M<#2;3,Y-`KV\L`62-S`R3PA;4W."Z,]>O_K)39G_:TBN6ZZ<#F(Z)`:=8D]Y MF?0=+ZFZ_GLG'H*9W)ZW`_"RN[""Y0B^%0\>C0/M8F?8\L$Y0M_ MM)D^0HT.NU<_.WS]YMW^ZU<'XBF[UVOLM#_IPYV:_ M#=96O^-6SS],Y`FWQ.8F"'1K=:Z$PBI&>2@8K63/?@.VN7YSVPUD+X=)C#[, M$P7B!>LQ5W5R;ZFP%1N$Z&;HW#]121^$)_<<8LFD4GPX>EN6474Y$@R@>A*=JLV!1KC<8HCQGVJP;^HGU MMB+SHYC[XQ7'=!,!)X$]1W&[!J>N7263'6W)U1J71ZNE^=9T*]DTPV0:5'M_5ITRPS@D99O6-QJ1K<>F@-T9 M3S87I58*9057/DD*A$Y,(ZMGWK0SL=]!!Q300;==T7;U+I8TUSGT9JOZSC00 M#)0%0,6@W-HC#_P$9TN3K>D#>CD[.O1SMH`G,VM>5)878BYU=%495**Y[Y:( M*`^PY@";I\P3E$H+E-4[I2Z[6"&--AGO)-C\E:`W&G'4G%)!S,&#SA$#TOA] M=VQER^98-RP[*_.SQJ*BNI/+*`A,F%:CT:R@H-M?@T:37,OMK*,:-SW0!@;] MGHT;4*;S]YC^B.?$8-40*)F'!\_?6;E8G(:6S\9.0DUAS@/"G4ZZR#SN4B); MXCDG;()6OD[G!GVLKPF=S8V@P)8O-47$RE8>X>HGF$$V=V(1^@6'S)LF[0XG M*#94LAU/5U;.K"0HW5=KZC`@/S-'`;V>%0!K3JK!@`V?EWV"V*G)(K96`W:, M5J/EQ*"^`=R48L'PNQ;DC'9BP?":TN`.H5Y-O0.4+`.WM`%A2OX1\7&+.XU_ MW-I:*Y>K)[!ODZFT1:82_*T.`V]PI$I?X!L2,*'4]W5Y1))3-NV^FOG22'AR M&N%\9HEL824[/I"VB2VS+8TFK>K7'^?2%96K\]A'H"(##2"U_?3ZW8%[:)F5 M#*P)+Z'#[K8X/#Z>9J%:'_S-<44UEA.,P[6@@FBB8MHU+ZD1J!;H*]':MFIH MQ!3L$9U)WRMS3[L+W--I.3;([Q1O(DT<]>UZF&-\/42$53$>[(3;@,"FR7V7 M;07"O#`O=>*VNO2S=A80XH\B"Z7GMDR>X`_B*K;C+HP[PF%?G(8Z1^D5M MZHG'0Q1I=+HP4S/H-_"/.=7G_H"Q;D`A\Y26`XK/&3 MXC=\[OG?GC^K&Q0(RH[`&]X^_Y-]1[V$!F85:KZ)/2Y8)EB<@L8!Y\OILV(E M1!%!V+RL!"2]Y>-%V6!#H1C)A/C0V?S-L;&8OY::FO9I':M5E!;20RVD9U'> M?PI0[Q&2U>3:07W?-">7+3^XD`-L+SQ^IA9+5J&O9$'Y3+E4XKKZ5J9WJ"0= MX713H@1Q*74C2T0'`6TWJ99WBL3X]`[["%R:U"H_@:SX\^'K_U&%$W#+]'UJ M2O\9$++CDS.C$T]UYL4(E;,IN.:),QMMHM@34G9PS:3N)P!L5(TMX6*#A1'I M$@<).@*/FI`U&3V)N0E\_>5?U![[17+1=L]K-9T36+\%KMWSD)5WB,]J6?SY M%H3@SK1L>7]EDG=*'&IF&GZ73,J=VI7(IEID]%%DF+8^WZGD@B!@2;3C>@;< M$+D=M=[\Q%Y!X]&N61DGVMAG%P?G/XRX,YC/_4B$;,?$FBH5P9-G&\L-0*Z. MZ/A#JU@")2.,8TUSL^P]$)S0C`7),]7?"(2Q5(&:360AD]USQVN7_I%A>*/5 M&_Q7@F#)]5?3`KJ+FHWFXHH;U;Y@#@Y<-(++YY7-IC)2"6L_Y20H(XB%?=1W MSIY*8))3_QQS88II!E^6$4UG/B.,&=&$/K3'FL8>NX/IFCS_I29\.;]6KJ02 M$KNXTZ]\B$ MT70@0KD1`0U^H>,('M(CM7AZF[9S*Q.]\2<7`MS+(TPU@" ML0*?DB=SN%0^68+-"GP:P1]BE&B(.:05AU+R)H0HA?$XNX7Y9]Y?#V!G[@4[ MQ&NUFD[?^;LCP(KS\ZY)ANJ4R0IJO`(M"J<$ZVM4>0E)V@-=G3@5:4I9I&%T M33H5[D`VV5Z=:*V!%M.O6(Y\S5FHRY%QF8CG-VF+G*OEZS9N3MM.8;(\JAUV MC1RCU'PN4^Y_IH.:\&H3_VG!/ZDZUDD7_+@'N*2QJ#K,22:5V_V7I8["K?_- M<>/H$)F9JC\+[NJ@K/PDFAKBU*U,^(!+I\631C.Y3B3T5Q/KU&_)\2WD^+83 M:'S0(+&;:^G#-B^%R^(M_@K`JJ2G%KJEX5^;GN1#\Q$E_GI\R?=E`#D=E93! M,@+QDW!M*!X"DV:6FUVG)H$T,]46(%W"9"2;X;*<]:BC"+!H37K$Z'SZ%)4G MK(?5QQTJ`*T&`=5F!9O?HRV#4`HP;PM&.0SD6VM!X"EV]X1I%&!6M6[E(]-+ MJU*0+76/TXYEH-&LIS+]V)HPZ&P;N_IE"O!YU45<6XUZ^6R:+]FM+%L6M5K= M!N"XY]@J#P''=N,[W+RNA^4Y5G@`F':/=JG$]9*?VR>):C'0:J$8&%0UN93" M1+?/_"+[SKC]'V39C\J+$YMOZN2R`WW"/0>1R@8!-_R`U;:/2CT;>!ZA\3A; M-UH"OX<"OZ\%_N63A:7P*22&;$D4KT]H_`J6P;MNON%UB.(,'C:W% MY9CB2'UCK5);W3\&YN[A*C:$?G(36\S:G<*E7TMOIX3+=@,(K]UPX7YPF:D6H2A>S^L8IU>MBP160#\9YX!K.=RU()J((!UH8MC[&T'G,? M0MD06^5OZ*>QXC^S\SC^%+H245F69$S)-CZZ=\5'?33M*:;(^?D)NN_30I[?5JH&]OCT''1KZ),H#1,S$/SBY:]"5!GGI:$CY4"HY10.Z^3XGT(F)GT<.D,)NERMAB8L@DD]:/D MDUN-S+W"S$FKPGMB4[Q]`J=JUU@K6F;CPQRL>MUD-XXI&V$#UE7V1<,62#?O MV)Q=6RVH??_T/?RDDJ]53H/D#G@XFK["]-9M`72[;5,V_PV@6\YNNRI\'RJ` M*\FYVP`&[S8'CL1:4G:42JK"?^]YH$U>@+7XA%Y`DVJ-P`\ MTP6$JJH-_A[IW/#(#;]$@>Z(J*NNG+%KIO&?,`_(G=H)V\Q/='?-T^15'@4$)WQ7^4-B'E[-O"/^`;\J;&*R]>J-Q+-=3F]T!' M,1:ST"-IB;:610I.4A0.SXY2.AW/38XZ"I-#Z8\Z MI%266M,33=7Q8H4["K.?=\D^2(&E//TICN?UUV&EK5RB[= M+*ZRX$K$]AH-`$"C;R'6SGKU%0V[:Y7E2K^^4@5+UKI-X'Y<40:DL=S!17:L MWM+WMDB#7'2\7+;,*N1>:\G5>&XA"-K]4HJR[0&06KQ[@IK,%56>QR/'.WFD M,UG5CK]^9/00\D0<&45&B4`%0O7"8S))T?.49JY#39Z=J#U0"F[<3YLCBO@+ M6B?.$ZHUK5K#BFP$7GM\9,GEE5)7K44+LYMDTGK6GJC&F^6UT.XRGL4QB_<: M5?*HTB`S/QQ`"WW@]5DBLP>L*2\Y.7MS(5\P'V0O3Z_G>?&KJ+J#6O.F+K1H MJL8_.!?$MR:ES"D?K*P4U,BO@Q*XRX&EY$@,!?3Z_5(6]0,F1Z%8><4.;%U& MD=;]5*F@VB5_3:)_>V*U9DYV^B7DZL[\3FFV!,_[I=IJH=KI>DC*EE#E8BU0 M'[3$7H88564-?`S2-(0(1#^7N,*GDT2XXO#??%JI?!D9>$B[3[!'D=0JF?JH MBZ%]+Y<+XWDEYSHN?BK;FB!@K5LEB$N@55M4;=JRO#5VK4-=W:G@`"">CL]J MI(QZ`B"E[S!Y]5,\,6\:.RGU#GW;L#$U$S+099&'M0`L@^,@NW1LNX[=^=5, MVV)73ZUR:1K'1I>FHF6P/5"G;E--:0Z:==L80-M`,_U&PY)\WXIFC$BCJO"O MD8US]]<(QQW;H9W+A=]#)RAG78M):O&2;INJJB73-NZO;D]XZZBN7U%ARO"4 M[5H=CXLH0G^$YO3H/.%K\M2B"YDZNC:2>86E($@4F-8$K])3^TP4.Y)(^[5N M7(%$8\4DDM^],AS M76SB!_'HWX^PH]HN?)6QHYBXM8]J<[\U=P[(`X0C0E`Y(*\/27$GL*RDT3Y& M?OM6Y+>JK.HB#H/)*']?-#YL4?T8'OH(F))"I)8QM3,[>;=G7E;P94FNC^8&W]F/8B&7^@72)6?D)N']S M>#,!62LS,]V2)#PD$,2TG3I%&L]WLD:=#$#=H8.*_4AW^H-N0<))41EHJU3&!PGG2H(>M$&9&+0=I:RB M&,W4H:6Q?:0A)UWA02"R"HY MQ/S(NTON'/0@-23=GX);!838))R3Y(RRF_OGN=UT@_/M8FI?1$V%^;>%I9CM MY@"@WVI8F5AWL039Z_%CG*_I@_:NO@:Q3Z;!"7NORP<(**M6M1$=4FTA&@$^ M1K[##(Q076"HE4?XTHQD((ZJZG2*QJBUJCIMMD.JT=15Q6"=SF!DO=?+$M&X MKF=]S<^2U8;MYG87B'!@CB$@`UDGHC=*V]'J)$QFP2QS=AZ,_\HSH_$X:&Y2 M[0N\==/.V\RYUI,<2.:$2N0<%>#7N0WX+*!$)U6KP\#8[V0GS5.M>BA%;JO= M!'ILF]Y/=[@:W09[?E7V>N:0[3N%#+F:TO20GIZ6_=0R869[!=V<`,.A:TO^^8.!VF5.)#O84UZ5@(&4JY/`G&.F5)5-%1O(SO-*^)+HY`.I-DV2>2EW MN]0H@ZK+]2F_L.Y+HER*<2V^E?RCF*K,/G+5BEYZ#0",U1ONG@%CI:E79;4O M"QEKF-+QRU?ZW!2DU;37096@V[:M/Y*U->`&"IT\%K_L'1P>_/KSS_M_4U$` M.V\-CS&0S7XYZHPI)VB&IB8D5S7BR_V#9Z35UI1]1)4ZE)RY]^N[UV_VWNZ] M/'BQ=_!+O>XFCUH-7.C\,[63Y[*J51UO,'):'3\X$&J7W1PL72!:XO1>05E) MG>U!WVMW&J:\3!9,-ZIM,=4-?9I%\L0&,&UB/^'V)_JD[OU"]U)Q:N5Q)\*] M)^DWRD%V^2LFJ_MQ,(NQSQ+(\Z/BF'KDS/<@XM8X M1.+X=M9ADC$5VE,C[Q]$$@6A7?7$=*[NI%)\JE=R[Z1Z*/O.F,:,Y\:,Y\:, M:*+L*)[Q'=:^1K-*)V6*%-E_A$Y=!NPNW2; M<['XNP+WQ=+@OE@:W!=+@_OB&X*[FMK[;:1VI_W2,!V/G1)6=,CB&C#6(G]! M@69K2C6E*HG?2&O"0@;XKX[BVSD&0BZ:P+/4BU:7?Y%%T--J"%-',-G_C*)7 M[-A*,Z6+J=*-T]`FYQ8(4>N0X]\]0"^^'4`K*;;; M0``WG%UJCG=X_Q"GT0CK9$KM;GAOT:Y/ M=X0_Q3RM538::@%E[1OZ@ULP+75,!Y\P7C:41F=7[/X@&GQP([]H@?7Q`PNR M#9923UD$;9!\0:/C>X$-\]19`SB._!N->7EH>AM+)=M=]P"L!P2WBP<(MVKZ M0V]3US086P&XY!?X!-7YK\QPN7P-WY2`C;7IMJE=N10L.`T88V-7U+Y"3PAQ M`LY*%6!6K@<3K7MIWY`*&C$5H7;4[9D4_[M=_254<<^KKZ:%?@N@L=VS,YK8 MN*9D"G_ZOO'A?3`K9)H%?F.N.0D6)+YAP>/IK,C->CT*V.#!\.HFJI2O)(P% M[X"IF&^FV*P#(4Y7G'B@.X,Q9=V67^[,\+*O46E:-'<)?V<)=8F1TDQ5HH#0 MC0(H'=C:`C.E<^$(;4D0E&/KZ-6ZF8!\EZU*6X#+26$:UZ9#3SSZ[YS_]\AC MTN\U!UZ[UV[;"5TW0_;%TLB>XX-;0O;%5Y!]<3FR+ZZ`[(O?"[(K.;W7Z`'R M6YW?!:=;U4*54K#^\%C^$E$4WVQ>\27SBA?-*];SHG]IRRH::FO;$?`[JM2X M=16-S4V/-S#C_L)QI-3`M(>>Z>WWH*7&50GG`8B/2\3:8L)9:E[+$<[%'1!. MM01JT?;C=L*#B0:UM;\G:V:B4F^Q8B1:_:K+L/]+-+9(W>>C&TQ7,#Y\@?M& MTHD,AW@DPR%?EC$'J:9QWY"8G&_FE";*`)^*/[(I8,72BF`RBPN88NW=LU_? M>.+=LY>_OGB'O\VF5F,?/C&"_'CE7W5(GKG!O0U_K+Y-R^W;.)I)Y M5LJZ'X9T#@@.0S7PP27.X'X3C-)^JV,;I7O^.1-7T4:90%ND)]6-\]=/^JS>_ MOD.)(B^]>/ZWYV_?:D[(BW1ZS,324M?D&*N8V0]?D^E[?!06@7F=VR4,\_^% MS'JEQOD^'PVYABUGD!>B!,L0X/ZYMRZ;:U`N-24.I:*I1J-6 MQ-DLE"?)9"'=A0=O#],,\]GH@&,SU"3T*>+AZP")3V5ZLE<#4D4RR_GT`>6" M@%?!ZN4+M:.,YX1]%LPEU01))S2WMS'G:-NTM;D>[GY'6!-VKL6-$6T'1I/2F9)`PC.9424K4[')[<*<=NI3KD.[>$S\ MYTA0E!:(BH'OM&#=3,>;$35R1DDU33%XEZE^#ILZ#6"N[[9,@N'3M,)PDE,M M5P'D)_(HQMK>2"7O>-8XJ).$9SZZ9SV)"!ST$39#$JNKC^S@\RRA"-KY(;ZK MYC;:^QS!I&E2XGM*!1NF<4T&=ZWO=LUW^O$I$'CH3]51VNWM5@L8S3WQX%;0 EL&@9&[>!GG4UC`R97P]!SC`26TO@J)H_;ADY_Q\4]\LESD@!```` ` end -----BEGIN PGP SIGNATURE----- Version: 2.6.2 iQCVAwUBMZ2mUXD/+HJTpU/hAQGj3wP/Q7EFyKl0D7eEdh75Gvn3n/TmZbLrIR3z RfEINi6R5k0FjtzmJukljfjTdYL9FTzz8hcksBl02A2n5S3d1HP6hcxCW+kjPVvB 1tdLaU6T/yg9URqP2NIpfqHgcwVKDQgS61UyOnSp/bKZwtOU/vFRcqy8gIwr4/k6 8DB2sZZjrI0= =61Bf -----END PGP SIGNATURE-----