From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13646 invoked from network); 12 Nov 1999 14:55:26 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 12 Nov 1999 14:55:26 -0000 Received: (qmail 14667 invoked by alias); 12 Nov 1999 14:55:14 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 8630 Received: (qmail 14660 invoked from network); 12 Nov 1999 14:55:13 -0000 Date: Fri, 12 Nov 1999 15:55:07 +0100 (MET) Message-Id: <199911121455.PAA30019@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk Subject: PATCH: tags This is a rather big step towards the tagification of the completion system. It's based on Bart's and my last mails, so... `_tags' calls the function `_sort_tags' with the tags offered tags as arguments and that function calls `comptry' as often as it wants to say which tags are to be tried first, second, etc. Currently this is all in shell code, but I hope to find enough time over the weekend to turn most of this into C. Also, the styles are now maintained completely separate from the tags. I didn't even implement the suggested syntax for `_sort_tags' where one could give local styles to tags. I for now I don't think I'll ever implement it. To use styles, `compinit' contains the function `compstyle'. without arguments it lists the current settings, with arguments they have to look like: _style -style1 -style2 ... -style3 ... I.e. here the styles begin with a hyphen (to make the easily distinguishable form the s). The s say for which context(s) the styles given after them should be used. They are compared with strings of the form: `,,'. is the command name (or one of the `-contexts-'), is the sub-context and is the tag name. The format with the separating commas is used throughout. E.g. the `_sort_tags' functions gets (from `_tags') a parameter `contexts' (yes, plural) which contains all the names for the current context the completion system knows of. In this case (because the tag is not yet selected) these contexts are of the form `,'. The context names are either given by the user as the first argument to `_tags' or `_alternative' (i.e. the first argument of these functions is always used as the context name), or build automatically by functions like `_arguments' or `_values'. I haven't had a look at all the helper functions of this type, but those two at least are changed. For example, `_arguments' uses context names like `-option-n' and `argument-n' where the `n' gives the number of the argument. With that one could do in `_sort_tags': case "$contexts" in *:dvips,-o*) comptry files; return ;; ... esac To immediatly complete all file names after the `-o' option of `dvips'. And one example for `rpm'. Normally (due to the default value for styles) you always get the descriptions. If you don't want them for the values after the `-b' option you can set the style: compstyle 'rpm,-b*,*' -description=no Ok. Having done that for `_arguments' and `_values' already gives us lots of things to play with to see how we can improve it. I have also changed the functions in `Core', `Base', `Builtins' and some of the functions in the other directories to use tags and styles. Of the other directories I only changed the ones using `->actions', though, because that has changed: `_arguments' and `_values' now also set the parameter `context' for such actions (and hence it should be made local in the calling function) -- and since I had to change that anyway, I just tagified the whole functions. The other functions in `User', `X', `Linux', and `Debian' are not yet changed. Also, I don't have docs for the tags and styles used yet. For the tags I'm still wondering how we are to document them -- some kind of list I guess, but we probably also say which functions use them. And that would require naming lots of functions that are otherwise not mentioned in the docs. A bit ugly I think. Maybe I'll just try to build a function that starts completion and as a result only displays (on-screen) the context-names (ah, I forgot to say: plural, because there may be more than one sensible name for such a context) and tags used there. Anyway, we only use very few styles yet, namely: `description' for the more verbose output, `prefix-needed' in places like, e.g., options where one wants to decide if the prefix character has to on the line, and `prefix-hidden' to say if such a prefix should be shown in the list. I've already changed several other functions to use these styles. E.g. jobs, processes and dir-stack entries can be listed witout the texts if `description' is set to `no' for them and for jobs one can use the other two styles to say if the `%' has to be there and if it should be listed. Misc. remarks: - You'll also notice that I made the style- and tag-names longish and used the plural forms for tags. I think this is better readable. - There may be a better name than `_sort_tags'. Also, we could give the return value of this function some meaning. I don't know which, though. - `_requested' now understands only one argument. Ths may change again, I just wanted to wait until we find out how multiple arguments are most useful. - Maybe we can already start thinking about good defaults for `_sort_tags' and the styles. - The style stuff, however, will become more user-friendly once I have put that into `computil'. The `compstyle' already tries to `sort' the patterns it gets so that, e.g. `"foo,*,*" -description=no'' overrides the setting for `"*,*,*" -description=yes' (because `foo,*,*' is more special as a pattern than `*,*,*') even though they are not store in any particular order internally. But we can't easily change the value for one style for a pattern that is already defined. I hope to be able to allow such things (suggestions welcome). However, this will not affect the way styles are handled by the completion functions, so thinking about defaults can be done in parallel to improving the user interface. - I haven't changed more `compconfig' keys to styles/tags. This will definitely happen. I'm still thinking about supporting different types for style-values. Even more than before now that I effectively turned the existing styles into boolean ones. But all this is probably easier to write in C, so... When using different types it may also be useful to allow users of `_style' to say as what kind of type they want to interpret the value of a style. E.g. the current uses coudl say that they will use the value as a boolean and `_style' would then guarantee that the result is always `yes' or `no' -- defaulting to one of them when the style is not set at all for the current contexts. Ok. I'm slightly fed up now after wading through all these completion functions (some of them were very messy, several forgotten calls to `_description', incorrectly set return values and all kinds of stuff), so this will (almost) be all from me for this week. Bye Sven P.S.: Quite big again... begin 600 patch-tags.gz M'XL("/@E+#@"`W!A=&-H+71A9W,`U#QI=]M&DI_%7]&A)9,4"(FG#FCHR",G M\_*>K[43S[Y(&AHBFA1B$&``4+*L<'[[5%4?:(#@H6SFPV;6(MBHKJZKZ^KF M>OYXS.PYLV,6!5X2CPY_#?CA*)K.YJD?'(S8QZ6ABFW;Y<`[;Z*0O8WN&#MA M[:[3.77Z+=8^/3VM6)95@FGGQ]@G^':'M7M.N^6TCP3\^3FSN_WCYA&S\..8 MG9]7&/XWNG5CMN^.4C\*S\20'Z8L?9CQ,Q."A]Y9QN7'"AR/\4D_WPU8S:F=L9EE@2!V_#&K(TLP>G550YC99?NZ02P=]=!0K:-^2UF1U#!] MXLP1371J#93HSHZ0YWX$?U%*S_$A.:O8.SNH$U>H)^9)BF95'&NRR!6'Y)(O*D342>*#O;V=E!=!H/T,29!I"L.!?X!M.FNR6O>:K=1W+OIZ-;5D>DEZUKW)C*=8UI9UI2X_S]W`V/89W;9RO'8) MX=:.818Y2P<\C]KYH5!%(`>F)D`"?,GSYY$:A2*D(]*M@/"(&%BUVU7)`]D; M,^U@U:XB7KNM(Z&U;EMI3:S+"O;@P792.1/&BG?#'_[GEY>OV??&#%8EK5:9 MPZIH*6"4^%@5(OF_:_D-:;ED)TG)Y@FV7TQ=6;")!(EET>;DJ"4D<7JL?+2B&22)J2%\D)N5E52)`U<09@5? MYK-'H\-?DEKHAR4-R\!"Q5TM#JM6R M#)QKM;2=3M?I=[-6RS*F8JNE[_1.LE;+R3&XEQZSY"=*'.IZ%G#7\T,P)JB[ MT]CU`_P"$ACQ1(RY-PDH?AK=<:_![GV83(+H!I9'< M>,ICEJ9U,LB&P`$@XWDHZGPAM`10I;?,E5\KJ*,Y9]&8=5LM*!\BV(!?./-3 MYH'5`$US/[EU;Z#<'Q]B!INU"K6VGFC*$RQ`JTU-Z#)V`?))8Q,TK\!*=WP(+JG&+ MN>$#-E'""8A[ZGH0IH!UI""9\9%ORC1AR1S"`&"&9=]_^.''G_Y72C>MWT>Q MES0.0/DIA]ENBFKQ`2-W0=(X`)+6&AB!WHG1M#Y4B6C2D`I)T2)@[T8AT"); M,R@"UP_),H@&8MU^T;AS8]`SI-<3$,DMDA8!WZ/`C7'R;!9'D'N#&;`@&N5Y M`5@_!*=1L?E7=SH+>%V`D-4P%'+%RK^1>C`AJ!H%23+[)=.*P*WY,S)/MLK# M9!X+F13Y]2*0>1BE;`0.'E#.PWD"VA*JIRUSVJ%&"G[`EL(=DU=YD\T393'" M\5,J0-Q]X0^),GX_9GI=>"?VC+#:`_8CE,MBLM34K7O'V3025(>H"#T;)R;X M%7B?^'<\Q)400"BA"3:,,D[1Z,"NH@"0'K"702"?0>:"V-B?^"%P:1MTP8)0 MI(^XQX6ALAMW]"6!V`)K'L`FV1(2A,\-3Y#;0A5+.Q#0FK1T=YY&4^R!@ED^ M2&5X6MTHT`.A4/@_[N/&!V(DQ^@PR+M$\91]1G.T,9"A=9)QAF"7V(\0`J?O M:.1*G!5+SI?:TPB:(")6ODA*19ZHWO0:%6O-*G5\1XVB3(89*+(%WRJ67`P7 MH`97K7&`MOP65B7)+%L9F@AX2;(";/GZ-M;%L&E![A($#-"M,/0/PG$B$MP[ MN"J(./$]CHX<5"$W.9@3K(4V)=>J1[&(V*WC+FX#"QX@@O1I/P"M8,=B.R"2 MF,^B.)6V76K^4%JGPGW?^PDG-U61(F`)T$P.#I[-C09C203>D.BA37KS4"EL MYX8T$C=((M/OY6*/Z?EDU``/E(!/#CSEN-3J9OPRN5QV8M8Z!$VF@@8]J:VP MA)>:^/\U[Y@M`SCO;WDH/1?X%^GCBS9>\.[@`/[4-/9/]`^D94NK00I(RR+S M%B7N`0U9+E.Q1)9P?QLEAE/T*>[`+$R%`L#CP<8!3OV43^NHZIA/^%?35NHR M1&B*T'!HNA]@]A*Q"0\Y.E(Y#%@13,$?,/1RA6PO@SO\.V3%A]F"[&+E*Y7] MK9Y[(.*9CD^'P(I&2:!&B)0K;A<@T8:.I-ZCN4B(#M4E5 MX(.-G$PJUE9@D)K<@,=(T&D.I2=A#96 M8A9^=ENRZ*9=8[/J;CJ=$99S6*JZ^U@_?]]`>UQ4*VSL8\\'T%Y>PJMV%:ON M=]_OL^MKB1VJ-TG2H*XFMR^[3;M]O:B"?>+[6W^`WT6L8VFE>G!]@$-#L'N&_N32XR^*E4=RCR$F#VO2A)`'D(!X70@II*3 MN0RI.\,16CH#JO,(J_F%HD M>#S0QC\=K/P%$M*Q97YC0^![J#P@GEJ/@-!'-F+756 M!+S(+2-`S!%./+!L=2(O5@BQY(GU4L$O5LMIDPA=%:&FG[@B6B*`#&I M.\EVG`S?@D[U,B,1ZHZJN=&%X@5JT=4K0[H=-GG4ZE<4KA6'`W%9Q9%K;$Z5L`7@P'+#9?=9>&JDH: MV1K576'MY&RN7A@^"U71:1TWVUUF=3HM_$159`C(/K!!*Y:J2Q9,GPH-T?NBK\Q1G[C5C^ZJ^ M?]7(^"YP^(R]#!\@7$&P\"E'9I_K!P<'D.ACHN!AW2-L+W@X*')+)NMYL!IJ M@2*'S78?!U),G:;=N5[D^EUE"7DL[W0>?\\IN<:&S;W(^+B9$AAUYLW<#Z`2NHGN^$&1 M+D$_1+I=R2W$N9QP(0#RAA0$A%%31O3JWYF0VD4I+\]=(>TR3`8>X=B*S_"4 M=P'?"OOX^7-S'\OBZOESD[]']AV$E/0AT,47E-EC_ROZ`-*O:/N@?B]MZQKW M+5NP4B^RS>H)+F^M63Z1Z]LAIUH?7"F0DI?J1KKR5I[Y\C\4P$HD9F! MZ9Z.Z`I.ARZY9":9:<+PHZC=*O).\L"\)!,*\)ZSO7`*Q\;\_97PP$H.1=A,2=)8V\QDT@IU5S:1'U_[>&+DF4I$36IDOK MLB5&ZX>I'\[YBMVWH1@C)S?,*LV+#0`K"[,"W!/+LS6S6Z=.I^-TC"*-KL_A M'RK2D!*/`X^$P]8X;(Q`0Z-[8$,M(/.V\,'L5Z`3R,,Q_-\S*M*Q+XU>^[/- M:W+_-]&MWU-O8YYP6>@'072/@:.><#D$>=`FZJK2!:8V"0/`ZIY4(H19N+?^6C>2H.*$`>B>I&B?[; M,Y!J376VQGYLM`)E[RM49RQ9FT[O-:-4AA*LK`+#S'?0%FD?[3D!3=48F$R" MQUWX.:CC=JPIRITB+X[*1##AJ)]_:2C(18TF9ESBW!S'V#`5.5$4/SA@9NGM MD"3![,,)N]J_JL,_[`!3@SY?[_(L40$GB\Y!)NVB/K:+];&1UV@8+'=5&9P' M1;,70"!&H]7Q6W1##7$?OOLC2%S&XA3L9E*QC2B*UR`0A8IRY.X&K+I7S5$] M1'3X`/,VA1)UZ&71@;*H[/&!4E?RES7$YC@":TV.4>8$^:@C'U9J30$NU$S5 M=$F.]MASU2V$3UI:SNL2K$;<>94O!UNK7<3.>;/ M2AVX?_CO*_;/6OVL@*P*ZVM/) MZ9UNNE[\\N'##V]_AJ*H:CIRA"&'&^5ZER(-L7%8E11FGX::8$/=<Z))U\L: M0R(]HMH_$W\+6^-9"EJJG>7=2XDD6]Z<6<"D]:;NQ!]1Y0$U`F92F)&:1PV! M_X6SO\'"-HC'3E(HE5X,_GTXCB*ZGQ`A$O(.=+0$R[AA@D2(:R"8>@T.H*H* MQ0$BWG!J,C^M)0`/5(`!I82"UC5/AP#Y+00%Y7OD"2PA12D(DJ&@G80'.O!$ M2^R(#(%\'YY"O&=M5ML?U`RW5Q20\$P5ZTGXJ!A8PK31)F4_[F+5FS56*0"> M;)8ET_I.J^/T#+OLX!78CBR343>4?(_<$$\%Z<`8=(,Q23DAB`ORC)JZ5;G# M*SQ,%^'&2+Q'4YHL##4%6>(?#_],Q=]$YN#);73OL2&$L%O?XVHZ'L4.:$65 MF_])A!1P%(X,*YUZ%<[&9!NA37=8VJI;4I&-ZPE/Z>RD%HT??^YY@KI:\MX?ZNN5..M- M>0+E#OM,/%.S%6W6'Q?;B0F31^YX5`RPXC11!@6C58RT5?..IP@D8OJ*:A;/?E&HED.S"*GX+NDIE)V53=!(2I'M=,:43:HO)D3D1J ME#?J1%BV,+5-SD8*J6H9$5B";T.0*H6+]8ZW)9Z]D1:=[!9M;!'K.MC7C M!@.@`OVB;'2E^O'E$[6_-*7K=/M.O[_4AI/'DL_PQ#R(7"^O=KRG.A,]!?C# M?O,][:97O&:S\==!;:]&+H-TH1,F@LOG2\K/T*OEMCSLR%PG_KL!V]O/=1O( M^2WCR.]J(JF6!RQZ-(:`.*BV?[XY$^>Z,\BHNKGPI8'XL*!++NL?&O$\Q"NE M^^(V!`GZE`)#7V67*#.\RT!TT`/>I$/Y^=C=1]QHZNK\58!C)08/^LI&X'0A M^W:77^"]CMU'>,+.YI M$VI=_"/"K#Y;>11/>WN7_W+M;R_M7UOVZ?!Z7U_Z,9OM6W7:-PEDS:G$YO.( M/WL2L>X,XFCC&<1?=?KP5YP]T/VUV&0I(4=!=ZAY&/B3VY2'6!LV#C:I`FLF M\G;+`M.O5JI"0SQ1%:7SEE71I9^'==6O-XR4PW#"V5&LLU_2,I&_-XCM4>`F M26G/9+FKEMTJIEFURHIK#C.'V1]9S;FN08Z#/\-U@]FMRVX"-_S"1F$:8QB< M^"F;Q.[L%M(%MO$_4#@L2[_@93/L=(K?IK#Y;`;C7PE=UC@"S_L^;>P^9IU# M;1+7BP7(A"X2KY*+<KV2DJIHQ';HQU>R>YB],+6.]W@ZM/%/=7ISXD^#]7(4H[VKBS[]\ M]EMV44^-R*H60PUF-:;\_=#C7\$D3>^*$,7K5Y8\Y3<.V.74_"%\3EOV)Z4P MI%E,J.E+$Z$'!ZHS`+&2EFN8!-4,`F!]F3_9'H%H7"JY M,),L_5($V_)=9RK1?K("[4P7]DHMV-O*WUXC>;QF4:6$L$=9:,-I^`OV9T6_ MR;%8ZRZAD7,Q$E@[X]\G]?M>9:H'7DD[EH97YBGT]HDY2MF<%N0G'?/B1*^%%R?Z77EQ`C?60S3';JOH MX<5<_&@IPC8U>'SQ^X)IDZ"FL*/OW9!^^#%/**W[K'L'OW\\)#&.8Y^'HNRK M(=XD`FNABYK4]<>.O=&U]5B"YW^)4`/^*@:[JG?BP<_5Y\E\O`:4+(]BEI%J M"2^`1K9_F(_N/ZE:XE#YBF?[AXM=.5PMKS8.L<+`2P^#.MFCN.(_'^NOVOP0 M`@1B`-`WZ3!E^2>OE.&%O'R`1HX&=<@4__F*KM/B=11W])_JOK6];>-8^+/] M*S:D?'B%*%*2+:-A$E=)&C^U'1_;/>VII"@0"4FH2((F2-NRQ?SV=V=FK\#B M0MINS^LV(HF]8'9V=W9VKC>`TA;1TF5XQ9FK2.^HINK.@VWY#>@9YJOD>CR- M9JN$P8[DE$[7ZJ#-7:J.O0LE;L'8DY`L3#TQ?%"3HQS=\"/V+2>]=:S!?_&5 M"=X;VMX:"X!.9-R#^()> M)*@2&GM2(QV%2:+5TQ[.`A`[![]C$$SJ"6@E?4-;0*W$-DFOS2-E7FX>&HXS M%NN;ZO-.VE;Y,FTY:^CY?[A!3YDQ+"_%6:IS5V#LP0/67K>DT8#03S5@R38R M!_^8-10L#'&5LC:@HP?(+VQC#PC&9"QVLO??")9Q+LLEH+#X0TVL=[X<=NK: M28BF4PM-K>63AC"+L^P\I&9<8H'+U]VD,>6\[X.M-C M2[-Z#M*BKF&9O=S)8:M,0J.9S=1^5E1/T9DT7>#=V-H5DSIYA$`WA]E!3)?P M84*;?.Q^GLN)4?&&K)BCT:&_]Y"W,\5V:*BAC%@-I87@>J2[9.<+.3%^;1=& M@6&A_U2&]$KDH)P/R[6%I$.!SI3)#^)X,Y&6&7HML^$F88\I]R3B#* M#K;\62\&^<_IRB#B%4E/!N^>".Y\!E^"[:C@K:-L'$Z M)BCH%H5*L(?*#?*^.NK(!$K3>TVIO]Z2,<4PMG]I:MV6.)AF%E6AOR+&*T(U M8*>_=Y#V0JSN?Z@-EE)N@XV%?W=R[IT-VXQ_&[8;*9EAA19NC\--?`VW\S+< MR+]P:\_"37P**WH3]O>.:$8'C\SP=E_6C[#`@W`[W\'/]QJDS2]]B;5[0(XO M_=F9MC6][VGID!$:KEPL]"Y8.)F111$KLMB<$5FX?&D>F2(A=*41VD.,T(.Q M?53X@6_?//GS=XU=QGZ)WX?OPD670A3QU<-_)#)8R`F;KI(ENT"A$.V,BULT MMMQ-&=]X4CPC+D0@G#D]L:4S5)V#,I2,[8,'O,Y:EX43))-46&^?`A,MQ#2G M9U+]\A#H-)C"'JJUS$$;3>(D))'-6:-U7\V_TJ@L7T*$E!QE%#.U>M9QK163 MY6JJRHHJ)S79D:,@BYT;@E?KAL2]66NF+26.(Q%-!MSVNH>N"@LQ*NHLP5:72WW(6;HGK%@^VAYW=^S M_7O2)B1D03Y`-T>O??+CDQ=G;4"KPP4(:SQWN>8\AT-F&LPK65%0U3RS$OY# M]$6%Q06+PKZ MMLVB<+3$16&*BC`#C[RU2V[3WG`FKF40,.7^7,5*)N,WR3;RFZR*ZE$.31L5 M4[/1-G1LE*%@AZH14K`!FFO!APR=L@CGH/KXX^7??^RI7=9KK_\`75S3Z[UH M(<-8YYV^%_[@&*,78[!QS$%`D&!!<=F@B0JNJT>52/_Q*#'>"`+L>1T%]@\> MJ#>WU^L'^*S>5L_6I([)3B'O8,(O=A@%RD-1Z3=LI\Z?"G&IBY%.?`:USLEUDHS'XF\)=J$O75PR8RZ\O_%2* MX]Y%L.CQ6SUHM?\P?T>7U`>IQ2,(1:M5,]`RY8.&?:,]))H(R*`$U`E_>X1> MK^AT!CDEEG"%O@X6X\DM2\)PFH"#+HBD0+R,X%?0F MOX`]9-^U-^$C62&@9G#0_)NU9BK]WNZZ=]Z\:Y_\]L=9B_A+*1^NL&+&48*[ M_;B@L'#%B#I;K!A72\Y/]&T^DRQ3I6A$F8U+T)3,)L^UW`AH(O55N56EHU7& M=[P=M$OB!0A/K"WC(8"B,?O2R[*7?L$H#VX(%J40?,F@#?;[OP$`_GU1-$`1 M0CYM+>'1F)I]95T!6WW8K.J;EA95L&SWEZ[N:SOP!:'?*NB*XSV+LO=L&7,E M]2HY<2R#L0XZ&?&8&?O^P_!02:L@^3I(KMVCAY)"U$*%+;"::<81>N`? M6*$D^=D#H22E`8M;Q#ZV]=/"X,T(UW.JXO\8]U:/>6./;,ARPE_9XV*4&#:SQDQ*2M*=:P0 M<0T=)\P"%)'5!EP5J!LVD6E(H5EEQ&PN2+J!["G'>26%6P`J;+$%,LTPHMQA MW]H"Z!34W]-;P)I:SS2-%+8.T=4L%='?C"7GBW+ZJ&1;1E5S<+\C.CKI@PF9 M8>)@4GV(R*D"WVM&$OYN2'0)1JXSPU0<#0O6[6=)M9JU=9HZUX% MIS`![E%#22$^H<(6V,PTPW@S^]G3*L+':S;XKC<.W_5FJ\FDM29C M/[]^PNZ=U967\,F>]QA^"E=A*&SO?/H#A[5&)QGMD:,1E.N+\W]Y((RB`37) ME02]N^69205DRL\*@O9.E*?LZ?U.7BVRR!62=!1WP,;G"'C>DOL?L.`:J370 MFAJI,9!ZG=4W(!N@4SS.*RDF&[S"-F0CVVSOL66*=MC=?\@ZAS(:1)V]#V[9 M(E[Q_,?>2L-O1.H0V7X6P3OERX+.CSX?2_U"%>;Y6WL@E2X%WMUB,TH$C5" M(M9+9C+DTBHZ6H"F.9Y%Z,NRFEY`B*`Z600`;#+1(X0XA^"7,[(JZY)=@^G:<*/P6>P2(=O5F[U$/8\D+. M<1;>Q'FWFFM?O4[D[N0>.ZN3+R_YV6WA/KG]/&+CSY[)3F57336;:@D7SJ?R MBTFUJ."S:;B3%KIO;N8\N=W<=DPO2GT=WO[54X@^U+>9.JR#"N MF[9V"I>NXGG.I!ZE!C#\-*#.F1E263\=XBZWV\[,MOP8#Q>.UN+YD-^+5H8C M:TH"6<6)5D4URN6S((Q&OAMM%UF'UWXJ M1BL!E>839F&2.H^-$]AA/#(H$-!Y3M$4[>3[EEZ7@*F2-930-63(/1]$E/S\-XQN%\2HKFN_"G&7'2XK7,Z^PS7). M-]OG;:STO(==9.5)J6P+C5/6UR=/?CFS%J?TBBB26X:3,.N6F2-JEJ]-H;)"O%*5+3#K:,AQR]OV'5K]`YO0"[@4I;^< M#$T]2U:7GZJ0UN!?3K+*&:^:]L-CA;X[AL8C1TDMW_U9M@-9/S+YP+8C.+53 M;-IQ`FWW,;.#4IL#.8@O97&@QF,:&M1<^N@BB!R:?SLYG1<6*NVM9:$4SB*N M>B.C0/-3BR.C>=:+0:NUK>E/O\-0/9N!'[`9O6MZ='KV+% M^UFD-LJUZIK\;:9>?Q]$.0(_N$Y#'8M,T#%\LJYQ7R79H.P/7*M1R2^/A@@1Q6YE#5S#BVLK* MN'K2BK0O<\4\E^:T2H?F:I9#YJS)EM5LJ*Q9::1\KQTDW,"YK%W=@,I$;"6* M\/%RF<-30TDA/8`*6Y"#3+-]_S#EN[J/D>CWE:6MB*@@\QWQ$Q/!3EW4H4K. M3=ZXL)?[!SE9[]6%9YAU.+F6>![.*"A"@J$;V22^@A`7G&"Q(!E%$;N(9L'B MEN%U:+Y::D->_H/?3$%"QO_CWX(Y[VLL/OCO"4:/5$GMIJ#-F=[`H\44_IZ2 M9OY1=P`6RH]E+#!T)H,H)AQ:%B&>VLW1^&Z2W/%6Y(+(S+2WHFN#JR&.\>/E M:'Q.2E^I)A$Q4>TX4_2JFB7^YKN[H#E"\*<_D35'N\F'W[P+EJV[J]'\CKR- M[@BH?&@I\Y^`DW>P":`J*6!1RQ2,?+((QOEH[H!*7#DT4"(U8?'[9?Y"^U6P MI.Y`9W!'Z\KQNNLX628^DVFRQC$;32"\"E]_F`^/U`^X'D7.980#F[EAPB*$ MB2JEIRA>QG?38''C`.8BCF^@*-EE[&=,?CP.1Q#NB&_/V0CV+*[]*&%7\:[[ M[:H+6_OFWI:R\GTC!J6ZZ"%C/4L'XU=9XR_9'[U=!*JGWZGJXMT>,V(\/%"V M+GSXG"Q#K)KLT$5!TN60C2:K<5I;$\_"G!'+EE4&W."+`=Q(V<]O7LJ&Q5YH M.TVDE1)NO[[S3][V_/5/KU\__?7%6LTN#O@Q.HCK?&36"%-I%Z''O@_+MH_? M!_A]8$V%CLSC9^?!Z!JS*$:D`",+&`&O"M;EW#<9A$G'4&AMA/SQVVL,Z(=/ MS>&;4BP4V\S9#CHP0U7687TF%[E,&;2#)238-Q%+!>1ECS*AH[Z!1;LUZ,[X M=P&1LS-1EHTE5V9A\+'$O^;B5;\G'C&/)X;YUN0/;+,C#TJ\:1.,%S*7)A>R[4Y"4^:&Z MYX$B4K",A?6V;H6;!MC8(KS&UL$T/O*C(C]VC2PM7A2BTC8KP]64+X\#?[!G MY>D9X/HX--9'2MJ87BY2Y-,,VJN[53MHB8@KABC(7$)7(3LH6T+R9E)A!7UF M>`YKZ:1'M&J7`6$7MA3!_"R95O\QQA3.382( M:$87.TQY:$96Y4PF+YM-ARKLX>C&"'NH\NS*L*6?VZ&*;VR(],G.]/A[6_YK MQ$55D8T_*R8RDS&1/;T;Q*MS7CS`/'L;15`>6*]B`Y)5NZ,H,R;20\N^FW=> M2W`8!"FG1(A/M,Q0F72/,48E13FF][;X_GE'@7.EB1[VJ0O)V$U44;EA=3(# M86'#YQ1_(KT\)()YE`YYNTFHUVV"O7Y.N%>V<;C7;0.^;ACR]3."OFX6]K5R MX-?#AV"X??C88GV_;-C7PL"OVX9^_1+!7[6Y!7T6QY(G@JQ8]^.\DMQ30%;8 M\`AP->HL8*3)9HX@*!2"*``[KI#-8\[S@\.5\%;C^Y]/\'UQ MUQ.FVA*&Q9F.(6HF8.?%**M0"=3E`R0N1G1K\V=-$3YM;R6*SE`7*`5_G!$P M^?.^H([Z;JY?X)G9NF1G/N<.>UYO[=4HJ^732UC3UP%H;%#.XB6K^7P2840; M"B8/L'3BTD^(QDNK1;F&A7<;#1CSPJRD&QH*1RLQ8&MPN MC(=S9KM%"<%IE1++=NQ\G+LCL'3#[9!IX^"%]LD,85]R0S(F$DI796)U".P' MG;4$!XH2#?WO3W^Z#[KBEF10,?J8K@/%[9:^J*,=O:[#BSMFYYC"::*['+E-= MFA(CT\.UMJ-HLW=I&H)1TAZ[-VAGIOBQ2V%@&HYTVYPD2MDN%&YL(5<>T+TK MM71TWNX]0][C;=6^4](J^S+*H9(>=C%2;]][6@G`;1K."TM(IS M"815:T-"D=^V#\KLODDP'F'HU4?Z^$3B"F1?2#@I9C*?$@8YZ$ M>G:%3(]U*'**OA3F342+;Z(YQ_DBBL]GJ^FP;QV8996MLXY762WDCT3W0X4$ M/[H.\CE%/RLXX,])XPX3B\+3O['S^/(R7(1C(AOG8-,JOU\&?%7('_R`4%]G MZL=]3W7U1$**-B4('-;HY-7`[Q)^W<`:)*:PMT#$2Y`!)OPN6XG"(O4XIR!_ M]5'YINO.V:I_Y!_NEP0FN@2.;6DYY3+16T;I277A7FRP::+R.16"9Z%1:+#L ML@+=`HV4]/3<2$I?@EK!8QZ[G^M[1 M33A?=LMFC6!S<&NB('?>1/F&$^=NU7]L6>5"'HK.05FD+G!A]"3XY?[IO+:8 MB**8)L]9XYE_=S)[<782_WHV9,_]<_CSZ8GWS_7P4^!]7#>D3ZLRNQ0P%$4_ MR:2]/\XOR\6XKK(ATG,;E+X^+A"^LB60 M%TY,8">31!2%$9RDU-DK)`RF.E!L:KP!XI8/KB17CG?F3^K$/-GYA%VO0>P& MBEO^.[A:-_V[TY/VZ9G?$O:@FHWS1`94DX.`H\0Z>D]VL%&`=&^M_`R#_U/@#?68&Y777/MV!.H<&`OK]&W7/9>N`8RR=E1F'NFC#J M;+@J\EMRLG9X:#H;'(*SP:,O2M9@J7Q)TK8SM-!5AO9XL23(CW.+\E$N:VR* M\+QV>U9<][WN'BI!D)QU]#[LD-O=F:#*YY3,1`(ADG<:[XU0I7BU]7@LJMN!#@`5.XEWJZFKM_T&,0!'`I__"Z:)UTO-L&H,T`+9_.B MD;XN\!5U<0ON20(YA;V+>[OU)@@VU&VW[';*Y-EL9PLNZA3>0!0)/HB8("&6 MHC@I=D\D[I""K@R>S`(+90(=',+:/]PK5``"?ZJ2JX-4'QX`[XLI8?D2)Z.T]Z&<$EBKN%.^ MST:%N;(LA'A/PUNRB!.**Y7S'"QT/G6*J;^5U1FO=N4'ADX57=Q@7S<`35R= M_86/&D:/B$U(+!N.!6\=)=;I*\<,O>HCBLY64_/(^R.='N\D`K8=>,5DU]]M M60?MNB9]U+%!;8=_")(->CJZ&R!8)\V_MG8^1>LNO$^D=*63&UK6.!C-?T'W MT"YN\6=^?5VO?__]VJ^1W%@B!1F"I"X!7S]X<'K6-A6IO*T>MM/U#/L\&#%?!+54J=`48KB@X2GA\;16DX6:*]'9,^OL[TJ*[A"9 M(WJ4%LZ:G.9=N]N"-S7O.#D2"?M,42.]P!K.?CH00MYPF.*^'*]KG@[ONBU\ M9S9OK#FD99S96[LFDO/PF%Z'ZMVGPW8NRO<1Y7(%&$WX(NBVUS`/5CYPO1:Z MF:X[EN;7[)RWJ=/BP8Y]JV,[];;1MM&H&4FR,X+4=$TG)I?`BQIX[.0-Q\\? M#O&FKE%`RYU/?^R#BM4]'-ZVTYF36>+FY4KY.*V8.`R30[]_D/+,JO?/4*WK*.# M;%9LG')@!J0DA$(JD"21@JI-5Q"F98F+8A9&5]<7,2J_E14=K`V9+";O)D8G M'-J36L>1D!Y-Q\I.#%RK.65*.*5?(@;A(@1R)!DU+(H5=\492]K?I&&YP@A, M"6N,_&,?P\3I$!]RU?*'L`1&F7U-,/SZ\LV35W\1)-3<,UK3:E6A-8=GAR>M M4GB%IR]^]/HI>BLY0%]>[R"]Y7S.^6]^/LK\G^IX[.B-B`RC(>8XD\Z MIDV%Z"2WBX'9%)*BZQU>;+SC,474E;V.##,B)JNWHU7B@(B_2%F`H8V6NF!8 M=-+2Z#E:]?AU$*S\R[_S6W_$[\+%(AJ'Q`(U7[6:=YQ11L2W1&JHG3JN6TKV MA()Y#PUL+I7?JG$,6@&C@=^ M4$FOY_L]?\T_>F85X')TAGME28@L&*'Q53@-(6`-$PH$7,W","6E5("AFD_T M'1KMN,XG0;+4^@<]#RK4593>PV`O_LF>CIV(<[F0S,KU'-->G=QU3D]:V=-< M)JAUM$OGT%5V-4"":*%$:[\]=#2N=^2R2).15&M8:^]:O^'5"-?54[ZNVCXR MI\T['Q98S33IP56&))#RCZ4Z4_T$L]M42ZQ9H]"!\/VDN:!7G;:')[_Y9W5D MN\4[ZW51)`[K#<>.P0FA)F88/K4@D8>TB93/0,EV")%`J"TO-RE&5^?(@:\M M3=F1Y9>+5*Y+NHC(EGJ5\GJ`Z,A$'32`,\R\NT2<)5H;[339Y4>1IFC()_&V M')?#]CIO.?)>>9UZF_-7_)7W1)SX*"9K9(,L1K-5"':3O)).#D#UVCA9QAON M,3ITH7=S1O$5QHO-YXH;Q?E5/30:N@BP?\^UZ_A?W'>_=(I5*!EVJ+WFE4YK MISM+04U/>1UQNAW+M(E*I87B'A#Q)9KIP'AZ_'A*Q&$/;(62`OJ>_KXF0BV) M_IMK5)LER$HL0LVXH!%4TD4EO@B8P^;@JD030\YW=VPD/;A[!1=!##P;QNX15"'!B"'S_]9J>^),TXO.OU,EX06XM` M>QF"%4%X@9.K=GB,!Z`B%&$P6; M9$2:H/EG%^$D?H\Q$#FX6D/2DLA)J1640@'-66L2?QE%`^I9C:8U?8XCYF;Q MS/L8+F(T2ENR21@DZ*2'3$Q\*7A5DE]=X'5!3I>!>KK8T!6I0ZN%W//`S=%G MR?L(`RW'..R9E(V*WHTK!.`9!N=`>(VZ+E#I=#;0O8`*P+#$(%;%>"#.`\VA MT(+K*+1!W=6"'#II1X$;;A#-T&"%=X_"N>;+%AY0D&&CE.X0*`DJF2"^EJ5JC9L8ISKZA6K0WOJD5M0>JZ_Y7U._C^ M+ZWAL=%6/`7P&V1N&=3(@CRTR_+-$.YLA2K6`S-CU-X19.OMP.=C(WB7,E%> M@*"?[T=@ILZ&#?&`[V6_(19YQVG2O#:RY&8*A]I(##AOM87]OKP%MS+XL M!L2PPN)%AHB93%<04'!,!6"%5(63/.WG2$8I"Q2N7(0B]C0++CF&0(H-?0CG M'I(B7(3\!G\5SL*%]C38?W34'1SP"=Q_=-!]>"AF$`CQFE#[LV('D$PQL7O& M3"`X@CNP1X%*>%FSQ3YIV4P$>X6"^8(DYAU8'V5%+K7)LUJAP&62X5PI.B+% MX907=XQ\>BL]\\T[`I9,XME5!;F+)T2^67&3>8?$(:6!2MTXC2LB5N?CX"#8 M+')J/>'=D60`'+T0UDD4L9UHV-@QZS6`C[9OATPTLNKQ6I+[U&.VT>.`6]]# MFA#%^ZX%]P=X(Y]"N@GR&TCS#LIXT9J8:.5-0WK:B*RY[[4[O'$+AVO(,#2, MP(77;+0P9A?#*_F;K5L93I?`+043#X! M^YF@>5\$:R2R,9_V>@*^4[J[U]=U^9O?*1^D"VNB:^428KX>[I>BJ=B$=$K6 M4A73@[0-^N7W-HU8%^I>8"7"$L0Q1>JJFFIO-38@$><'WPW91JAASFP/:K>BM34-D<9M^HX)O]=` MSNHBA$BRNKH2+@.FU>(L?,\(0:M%0,D,.+N[N`Q&(9Z7_Q-"L.0(CEM=@BTY M?L&^6JAK?7[>P,M^(AL,7QL=T!$K;RL>58>$[JE'C#\3G:`$\K(/D1;K3`3, M(R.F(3.>DCTF_P=/T0U.>2>J.L+F$^H,4G7@&+L&IT)56;F2#-F^?HH>)!'T MT6B/WT7MA@V%FC7U`UZEBM$)10*IGOY+/.1/9Q!GALY0/F;[!)4*##AMS;-3 M'T_C6$HKB&CWQ8H0(M@Z^SL&N3#,46,R$@.S8M!<>+Q_?[3\L,0OO!/XW!4V M,\B$O(BX(_-@J;TY+5T`GP6'%"L0+L'>/>7;Z]Q+O%ZCW9`R+NP0Y\W4#>CMU'%( MWWZX,6T!M-6`WJH>N=4OX%+B,[_%&Z\I++QI1+##'Y^!58`9Y%X-6X`6DH"=@.+RS(DGJ[/3H:,S66,`-6;-^`Z6;U+=U+51;39VER9`R:.4X`Z)3AJ>*9_\DWV6PU!7S<2R$#MWGJ;*1UJ>LT MH=(=)P$T!-A&]TSLUZ10#U7N-5V:'H]] M\QG?9@F06WFS\1GN]7OJWNJE>ZK$.&0/VWRV!M;R4(@2,S)/&^YL=^[&'3?% M@"[`O6;/N0L3O^NW^O;N4Q+I`.\,IRZ;`OX.WBGK`'5OM;3M0*HM"`>*&@_R M&W\SI&_^VUIN%R1B-N;=N-7(Q1G-[@"?=Z=#:;HB!,KW64:0;`HR]]2A_SKD M)'^\U:GOV0>Y9QS)QKD&W>'A'A(,S7IAE>,*JWTA]'8WM-J7= M$"C*O#,-CV(>`";!#V0Y`7QBLP,.\%1?-CS$B=B=VC6<[[5'`.:::=AG,;(* M%QCF4&-$)&TK@E36@;'Q+B2#,;`9#,E<(*=!-I(=?:;V+=4\R^$_J$HX'^Y@ M/(OFT];);]Y9^TP>519MAI&FJ8\^P!TT-G4V-7%?!)/WP6W2$-M9Q]_BM<8X[NG5\N^B5="CH:#64?8/3F?^'8IE,MG@]1PRP4;G\V: M&&NB*E]BCLZTX^N@7-1<'X!/$W_\UO2C"-H@KKK8PD(:&0SKRW&CW>7_:S#/ MT#N`+)-Y5JX]ZQ'I(X>S6-\(#*B0REI`_1).0+-JL0&_HR"ZL>$SU&1:/Z9LI5$OZZ..;$W"[[\MHPE( M[R\-\3/&NPF,I(N7$/TF_!`EH(_.59[\&%Y$P:QW'LPMU8GQV*$X,4HKJTW, M-F^N5]2FS_:._,%#?_#(<*L<[&%@&/R0`7YZ.XW5;!HN3_<:/79Z)UT;^>/1 M=3BZR3Y.PF`QNM;//?G\.GZOGW;23_GWD]].]\[J^,MOG(_#B_-Y,+I!A^;@ M71!-A$)+/879:K#3NOW^<0A1E9,T8+63LQKT:RO'SD6D'YCW:[X0(7@3Z")& M`>HG`+KYS15ZR"=LO)K.\0]!@VAAB`5&@\;Z3`#0*%)>/HMFJP^]\\5\:LZ4 M?NJ8>EU8>>9SFO0A3['I>':`B8H/]I5JDB]TU-W?\IVHC#P;738-QC(",DAO MC*@^(H:`#B60$V3`J,`,9W\9=P!>CE7@X$%%WM$C4N3!YV.U*JF.6`@8D4)$ MNL7,1>)YRP[(J\R/U*JJ%!N\\>KE<]FD(!8O11KS=)@Q")0*\^N]#5I&7$49 M;5E!B="W5%Q=(Q_9Y7+N]WHIIC`]&`KG[!B)C`+-O->]U/M-J_1,A]EXBIV" MT+$&&C@P@PG[``=E+9P<6W< M3SD>9#!B!@%*Y?O.F>!>=IWG4D!.8!;\3.)4,[*\XLSG#BIH%E>F@[F-D!+N M[V=B0CRT\Y0(:-+$+I_*02@5,NS(H7&:JC(OD?']T;V>_Q6!982^$KM$G27# MO!`+V-6XS'W0OSQI$73G5)CX0\JCW12H]9ZU_#I]WVVOUV9*IAV[I6&MQFK* MHGKM4[&;TG3<4$'@,A%C\B(!F,N0911,P]E,ND79=#`U"/PH>EE8WX2S&8Q]APD23B] MF(`7P&HY7RW/[&,*UN8DNE@$B]N6/[LZ9]? M/7GUO^]7BL] MBK)U,U_$EXZYAL?Y:P=*-UT]F39]4"?W2RDR@?*U-YCW*>A>=$?='[O7W:@[ MZ3[K)MTWW7?=]]T/W=ONQ[4@W/U'".,C*\NGD#D@[38=GY5W&#^%HX4R_W,N M)G?L^([*W"FZ'U)7=*^&K^19;>3-P>RKG`%;8CQ,(P?&`<:G/#@R+GS%_(,$ MR79/5$F*B`L^-[E@?K7&V<*T?HF=E[E3S$U7[L<"VXP#7A2O6RS!1;R:)XZE MB<_S5SL6;[K.'S7FZTF$S/.GV`LJ`]@*%"WQ7S.55`[+-F]N`7KOQ8YU*PIJA7$N0/? MRQ=/7Y=BWH7U`HQOC.TD35F._+X1_P,6?<=<^:F%H^3E>31&.S/F41F61V?X MUOI@T)H4`Z@/)REYI50GY-$RS.9:T8F4D]MD&4['T6AI^L*C&JA1X?)'YIQ5 MKT'NEZ'SY88WH^R5Z,>GK__Z\Z\OWKQF+WX]?G+\RT_\\\]/7_S(/WC1RV=/ M_I=_>_GD;Z]_8OS'&ZKZ^LG//[T2V-Q'1KJS_T@FF'7>"X<-&Y."Z7XJ$1ZI MDO://_W/T^.?3H)P>FCQ:>G24PXE#A)*8C94I\BG)C]63I?PC7^_;-5VFM_V MPN6HAQ5;-8@Y4F^OZ_43_V(2S&[\L_K);^K[67V]1G%\=OZ@?1EN)[<&/S"B#D&1`QN4T8G"I8);824/%YL0T%!$Z9(,!Q!P<"=``%#=S0IV$PA.- M=P"A(8*+B4-\K2^6&`3W,L%H/Y?),$KBQP\?[HG$)(A4<$]L<$P.FPW6`#^W MY+PAC;!^V_DD<7KB87#;3S@/G'(T2&W4:"'DV)Y1:XYK([82+Q'>JH`(BO\& ME\*NC0,!'Z05X2WLT>%\'?2[@T,^7P>'W8%D1(0C1T?#&)Q9O+K!TM5FL3C; M&:YSD7^<%.3">N?T=R]HU.Y;-A[9N:->[!N;,6-X%6@;>8"U>Z:!JY5(R5@/IYH_:4B6ASY5JEP:Y@Y MW`V8?`&+U[-E/!1<"!;EBG<3+R#`_K]AR@PK8][RG"\E-IV?(Z&ASN5"%3J" M;QD>F%-.R%HZ",#&<^X9J@=8\0\>,&`89_$LM%)"?_FE4`$8SM2N$:":O30$ M@I1GN1MXP<@2%C-U==^LI30@VR\YC^T(J/A(2A:>T8:`PR;N-5A%$CY=+5U' M-W^:?W+SPDT/[G03?FX_M,YM-T.#<+C.62A8C(:U/WJ[]+56*KO+;0(W:HO= MX3/E^QS]T3SB3WSO.\C<`MQA0]^U^X>D;2&`6PS":_R+[IA]2U,$V\::M6D%9K:,%\P_A@N%&5*AJ%B_"M7<5QM-PN;A%D[5$UH,Q\:JS MI7<1++KXB^.G&XZC91=.]G!VQ7\"%>B.HV2T$@FA.6E(UF3GU&C[,&3`+9"< MQ81TGX['A@A*[1<)5T'GHM%=O5S'',`2(+96-P@Y+M>8+GYY2E-8.%45&9J\$[QXG-BHTC@S+$-5+LHQPO1*:>L@ M<8(6_[=25)SE[N2W:'C6;.1OFITT$;:8QGMZZV$OKS&(;>6^.L('OI./75DW MC6!YF!BC/,M.PF<,U(%]X@?OF01GBU$;'=]SSJ=28*BPY\XC6XXV>ZQ*+D$+ M(.J2M3/.<*BE[0"$B3XD75TM_=0=Q:`F5&X+#8+5\CKF*QB%\`SMH]DX'HD< MW#&P:B+QV34GW2R:E%.^*5YEH`-\57,IAQGG`FC2M/X8S29!&P^ M6?$-E.@\?.G%0I*XE#6GPP8-QL#>7P=+M0^S(^S8*^BSQFBLR,JC3*T_6A]% M(KR&:0Z;*]3!M2HF>1J/K@.?_2MX%U!?8E[/86F(8'AYJ*8754"V"56G0&-6 M#)?L7T'F1,]6EZIDPKFHU=QQ^1$E^9]?=,XSA(#-OI/U;* M#@HOQS&S"$:8.PFS"D[B]_`4>%#^$GB.:<(@\X3T/S%#)$)'ORL(\&QM9'0= M.'&DJD@HX)'[ON:H!S;Z]'78A!EI0%("BC(@H]?1)CV3TI9#5"(>:BTB3B<' M%T#GG3,-K53JZ`L-S"\S;91!)Z((;34;?E&]P'Y?6*NRB?AA"0I+!JRK(,.4GE:>'E(Z*#CX/)( M8[B;F%ZI:;.1FMG_+,9T%WS-D6I-SLCI[ZKGAF)#%0QH48.)V8Z.C$$+S90& MB0PJFG>3%B':XABC?[`,#8P MX^_320V3[X8S=RX<<.(2,FPA,LJ0+'ADW]^W[/MEC#%E6YA>-QKN]NC980Y--8BRJTNSFS),ZUD_[^(-+]8E0)CNY4@7#P MP9`'9U-D!K9M:NQ$Y)%A?(\>'4(,3?H@$B.D&Z7#S(S$]$MR`.5P6W*.ZC.Z MJ:3=F6.DXV/GX_RE!:6;+JY,FWV_?VAI>"J:`A'(;E,@+!,FI<\S]C]`;4"] MUJJM_3J:`+5[R]%\_>#!";MWULXS^X%.R_"XH(OYL?MY+B:I>$-4.AKQ?;IO M)_5%7UO+U1:45FDQB2\Z(]+;,*G[(KF^X]63:R$4R#=3K6*H6F"JRISN2@<4 M814^3!ZGV/K=);GR&^D[?37#PWLYAH08F*-`AU3=C?*>A7Q^?_%!R)!]'TI) MTM!XJC5GIG)ZT'5(/`0"(;-MY%'#(6O_D%KA MY>#4\`2Y=I>(-Z:JCT0"R>A_NF=:#0)4.I=%WG?,VV(I&)\Y-AL&(()X[ M1LVGD,6PJ0(0RLR#!>=7?X<&/M1ON`T%\>#;SO]3I`G<.?[;JU<_O7@C\N3Q MI=R$+8'LO1$@E"R&SDG`<@;\!=0JK`)^`M\8N93:JI'V)/!`WW1FBACUZI%6 M=T)SD@.K($\5X.U(/^=-858-\^!V\G[4]?VL9]+)N7>FG8JL^[\''JC8BE,U M"H9H/]F%!T?G&9Z^?8PR6G*7B-V6%:2ZN*(]#YW5!M`/7D'`F;U_4@\VC M&^8+E2,#.%Z(,B('^:Z`PJ,"3'/(\4AO`\6XR:B\NY#O]^ZNPG#>3#AK-K=/$@2 M(&B@6>#%$5F!W*&-6-*\6R1!*UV4!*DG./!KWNGB(ES$21.+5>GR:LG/*[!G M:$'-^2)Z!^D^KL(Q+..6'7Q:TT.(V#2+3365Y2":MU,TL?C_#E76))B&E*!?*+#1G1S-' M[(&)JZ;=.B/0J(!4;%,9I\70I-N7P5,!:]`SW+$K8&H1!A-]*<>C.;[">&1I M/''BF;5FJ("K'$N*+>!)MZX"405L\=7+:=+RMN+:>OWZ%R:;:!'?4'0EN6N(TT.8[S(A7)0I)5_*PN\^9I<<'W8,#Z_A"N&;Q8LIGN#*5 M39:+:+2$6>;G.(8DXP="">T/DAL;']6I/S0M`PF.K8TI$C3ZOT*/BF#Y"NL( M7E<50VJ_\YEP$:",L='708X-AHONE`%2`2\?@-^1]K,5$(3U(A,'BR63R,U$^3I02=HP,$]YN!$>=[<$H?!:^"R?L%SCKCNEN MQQ\^62[#*21I^@GMG(ZO@T6VDY\YG_YGSJ>_B5]Q-DN`\`1O/.+'/_K];+._ M(!_R5]CN\-8$+8[AVPLX:I^*`P6?_I4S^D^`T<_V\E?!KC^QF'GU^,W5\F5` M@9>?P?DA`,KV\V(%68E_O7PI;A(O,659PN3O5/\OX1JBZ.)O7GZNJPAO_.^U+<9 M'!A<@_%/:G;X(YCB3!?_@'<\B]UOR$K9-[T:5-]F`&[]`4:J[>\_MM2FA5I%^]15@7)07CC#&6]8QVGJ M`+4N4*2_RQ.6*#.P;`O&G,,T8VW9X)'DU[.@1`SLH]M_IW]X8,;#M7$FO1!; M^4*QK+O`I@X#E6Z6&]UT-_4:J`1!!MU?;\">M1HS\NY)UE=Z4U_,/*XZK3>V MD_ETTG#E047K&MVE6_A#&<-+_W.A)=;@^09`I"MN2;3#1YG>6BFHLW8/"M<- MH[8CR$()_4#VF*+TB92PCX_,B%"VO9],ZK&5_8*7%^&HBM?0QK8,7@Y]JO#6 M/$+EMFS(&U4I`)YCT;I=7KZ`>8,%@\NLP8)A8Y.&P6"`-@T#T`>:1@VZV_^P M18-&P/]5-1L4;:M+/<[^.B#%4)(`)U<`R-AABNA-]R@3?NP MMM,4V/=.OV??ZJB0;/#=?_5;-<-C]XFXTTR#N=3YHL'%`*(2$5&E[#[DV(31 M1R44F'STFR';4Z8.K*JU`]O2X"%E.P"9@>4($6VL-*AH)24;[94Y$9Z-W_SFA79+C14'G=5>A$R+Y:!8RR@#"6UM[[? M09QGK/40!]9*P!.4S/@>8K2]AX=*9Y^-)451V38QNRZR,+#H2=Z>DO$@S3!. MDS._(RF-]?3M6D;B?80."/RO-)<'/N`^*?3=`\@Q,<@Q,/CJ`SA""XJC]`"P ME7L`]+8J`T"BL\4`I&E$QV4LL2Z/+;>$XF/7TWR:S@LWI>CI)@/_<.!S1B_/ MV4K:+Y]',VPL@B9_Z8C2+@<8@@;7*GR8<2XEXRJEN@7V/4([4]D!2@F#DM%U M."W*94)JZ*L#S.QQ$2W3?*D[W!N_Z++)Q_?L8S1G_YJ'5^QJ7[IJ[1J!PPS62:8(6[O!%9<(Y!.ZNI<4=J313[K`:G;3KC<_; M%X?O$.T*76ERO)`2_D' MI=P^RUT^A5?2F.T`AM'-HGL8*EOX*4^Z`4X)V!0?6'DQ M0(H(+(7X/1\(5?Z3[YE?;%]1%:<'(^!;T-<`$I%,X#?CLCKTAIE`0.[H0& M8CR32Y(,$K$#G1GB[!L@=+I'^9=O](-)'(PU#X@;=#8=UHQ84C./DH`W4=R32X=BI2\`YW5JOE\ MT*VD1DTR%MY"BB-)7EI>5>'N@1(B!&T3@*18.P,)97;EF)]-&;]S,\?T\'FH MLE`3]PI*"I=FLL6:S/"=C_Q#2]8$AO.EGI5.A&?1#=6@&Z0-GYI+M"U*UB@E M01%56W!E53!T'L]RAL1+BO'$*VR#JG0SCJVC;?Q0G=C"+"C1Z%J4?N=(@))S M=P9*?'45CID0SN1RLVRG21=V*RI?":[?7[EDG_`T%\=0N"%^,TWPEER>`0_A M^#)AZ:G!*,L!$^E1'X,:N`.?@\,,3(8^P$LM6&$, MDQ/1"CRD=K6CE*S,=C[)T5+&O@?^]VN#F"`IGQ,/'J,5!LVEXT]Z$/0\<^]SMZ07HY95Y>\Z(3A\_+L;S4#9%8UV9R'& MSP91-OF"__/KZC>D"3JLP M'4T'S(=G5]G_OH`_S\O05$(E;QVA MK6[S@UK=;AK.*M5@W]_;JQ`=F)*%W.?Z`TUYE_H!+Y%KA;^+M[Q#\X1 M0ME\E6#=>#+A'Q\N%VP<3X-HAI[,Z^??/DS]\UR+]1W!GY]]\)H2(16V.7NLDQ+YSXNW<7M\.+6P;? MX-.FKRD[WMJ.C8^,T85P8;:3`8!S,&KW%&:^0=3$L\EM*MZ@*Y)3-+K!6T*C M,&&!!@P:N%(*9F3E.*.J^U3<;U?E^T9N9+Y:^<&.U?[$%Z..E[<(WZ["9,E9 M0FAB"Z<^?S([!0'W],KI%-J45IGT3CH7=='$=TR;(AL'"KVEX0*->>X49H,H MGVD"A33.TGC'V)6"02@0@$"JFY)E*6-@>692];>9Z+05;=T*7M"Q\[9G7V$$ MB$R=$T0C==*R(G_E?_3./_`K^"1>F(1>/W4<&[JP\L&1TX0?'9RO-M(P#A[C MJ?]8J<%(]8XM:?*EP,YX-&SR3#%9A?Q7&,Y:0I'2 M,4,&3N(JM^<&H2:9AZ/H4AC+, M0:$:OV365HO$-6WX.'?>L'3#B+A MX-'&HAW56P89>&4JS.0(:(PPS/;;9R?]KCD<;+RG9686S M0XVF^BF=.HE?@R4'>`C=@`O4)$-04WS>";^LM@&VJ;9/.Y03QY$R">'!,0+=E; M2--IF-3/-H1=BET\T7'V.74]S M<$N%&Z'6T0395C-[N%OB(4'Y\G9DCJ1(1QB@ZLBPO!7J:XAZC\J>&TY`A*Z' M:3K)[T>KR]1]OBSPO`@"71ASGO\/H@^`6Z)XTPB\$R$_#^;T>1>F?`/R^AGR I_S!7'B=<.76M&)`0#R ` end -- Sven Wischnowsky wischnow@informatik.hu-berlin.de