[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Would you compile a list of all interfaces Mach



Hello Brian,

> From: "Christensen, Brian C" <brian.christensen@eds.com>
> Date: Thu, 27 Jul 2000 15:42:41 -0400
> 
> Hello Farid,
> 
> Would you be willing to take a few hours ( or less) to draft a list
> of all of the Mach routines that are called by the Hurd (directly 
> or via other library calls)?
> 
> We have three initiatives that need this information:
> 
> 1) We are trying to put together the Hurd Torture Test to make
> sure we have a repeatable test script that we can use to be
> sure that all aspects of the Debian Gnu/Hurd system are working.
> With this list we can focus on testing those part of Mach
> that the Hurd relies on.
> 
> 2) We are trying to define the kernel requirements for the Hurd
> more exactly so we can simplify ports to other kernels.
> 
> 3) We would like to prioritize the effort to update/create the 
> gnu/mach interface documentation.
> 
> The most immediate need is for a draft list of all of the routines
> grouped by Mach functional area (by source file?). Later it would 
> be helpful to have a cross reference to the Hurd or library 
> routine that makes the call, but that is not important yet.
> 
> Once you have a first draft, please post the list and the 
> script that created it to: "debian-hurd@lists.debian.org" for
> comments and feed back.
> 
> If you can't do this please let me know soon so I can ask
> someone else.

the following script (mach-crossref.pl) generates a cross reference
of gnumach functions called from glibc and the Hurd. This is only a
first draft, but is already very instructive. The main lesson is
that the Hurd and glibc together rely heavily on Mach and porting
the Hurd to L4 or other microkernels may not be that easy. The main
problem with mach-crossref.pl is with weak_alias() (CAVEAT #3).

------------- if you cut here, you'll ruin your monitor -------------------
#!/usr/bin/perl -w
# mach-crossref.pl -- determines the interface of the Hurd to GNUmach.
# Farid Hajji <farid.hajji@ob.kamp.net>
# $Id: mach-crossref.pl,v 1.1 2000/07/29 19:01:17 farid Exp $

# Instructions for using this script:

# -1. get and install global(1) and friends if it's not already
#     present on your system.
#     global is present on FreeBSD by default.
#     global home page: http://wafu.netgate.net/tama/unix/global.html
# 0.  cd to a directory of your choice (let's call it <topdir>)
# 1.  get via cvs the current sources of glibc, hurd, gnumach, mig and grub
#     from subversions.gnu.org like this:
#       cd <topdir>
#       cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs checkout grub
#       cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs checkout mig
#       cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs checkout gnumach
#       cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs checkout hurd
#       cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs checkout glibc
#     this creates the directories <topdir>/glibc, <topdir>/hurd, ...
# 1'. alternatively update your cvs sources like this:
#       cd <topdir>
#       cd glibc;   cvs update; cd ..
#       cd gnumach; cvs update; cd ..
#       cd hurd;    cvs update; cd ..
#       cd mig;     cvs update; cd ..
#       cd grub;    cvs update; cd ..
# 2.  call gtags to generate the cross reference indexes.
#     important: call gtags in <topdir>!
#       cd <topdir>; gtags
#     note that the generated files <topdir>/{GPATH,GRTAGS,GSYMS,GTAGS}
#     can get quite large:
#       -rw-r--r--   2 farid    users     1777664 Jul 29 16:46 GPATH
#       -rw-r--r--   2 farid    users    25378816 Jul 29 16:55 GRTAGS
#       -rw-r--r--   1 farid    users    32382976 Jul 29 17:17 GSYMS
#       -rw-r--r--   2 farid    users     5529600 Jul 29 16:46 GTAGS
# 3.  [optional step] If you like browsing HTMLized sources, generate
#     <topdir>/HTML subtree with a call to htags:
#       cd <topdir>; htags -fhvat 'GNU/Hurd Project Sources'
#     Here again, the HTML subdirectory can get very large.
#       farid@bsdevil:~/Devel/GNU-HURD> du -s -k HTML
#       181182  HTML
# 4.  now, call this script in <topdir>.
#     debug messages go to stderr, normal output to stdout.
#     You may wish to read the cross-reference in a large xterm window,
#     or cut(1) the output to the number of columns of your terminal ;-)

# CAVEATS:
# 1. This script relies to 100% upon the tags generated by gtags(1),
#    and gtags(1) may well generate incomplete tags. This is a gtags(1)
#    issue, not an issue of this script.
# 2. This script doesn't run mig(1) on the .defs files. Therefore,
#    some calls to Mach functions generated by MiG when translating
#    .defs into .c and .h will be missing. You could try to run MiG
#    to generate .c and .h files _before_ running gtags (Step 2 above).
# 3. weak_alias() not dealt with correctly. The glibc often defines
#    function names starting with (1 or 2) underscores and then defines
#    in weak_alias() directives underscore-less aliases for those
#    functions. Following weak_alias() can be a trivial enhancement
#    to this script, but its not done yet.
# 4. Certain mach symbols don't belong to Mach's external interface.
#    If such symbols ever appear outside of gnumach (say glibc, hurd),
#    they will be referenced! This is also true for simple functions
#    like strlen(), memcpy() and the like. To avoid this, filter
#    the list of Mach symbols returned by get_mach_symbols().
#    This is not yet implemented, though trivial.
# 5. Hardcoded is the gnumach subdirectory. This script will break
#    if this name is ever changed or if a gnumach subdirectory is
#    added somewhere outside of gnumach (say in glibc or hurd;
#    fortunately, only 'mach' is used for now!).
# 6. All-caps SYMBOLS are a bit bogus. The most interesting part are
#    lower case function names which appear in the listing after all
#    uppercase symbols.

%SYMBOLS = get_mach_symbols();
# Optionally filter out symbols, that are trivial and that don't
# belong to the mach interface. (not yet implemented).

foreach my $symbol (sort keys %SYMBOLS) {
    @REFS = get_references($symbol);
    next unless @REFS;   # Skip symbols that were never used.

    print "-" x 70, "\n";

    # first print locations in gnumach, where symbol is defined
    print "$symbol:\n";
    foreach my $def (sort {
                             $a->[0] cmp $b->[0]     # by filename
                                      or             # then
                             $a->[1] <=> $b->[1]     # by linenr
                            } @{$SYMBOLS{$symbol}}) {
	($file, $linenr, $line) = @{$def};
	print "\t$file\t$linenr\t$line\n";
    }

    print "\n";
    
    # now print every reference to $symbol outside of gnumach.
    foreach my $usage (sort {
                               $a->[0] cmp $b->[0]   # by filename
                                        or           # then
                               $a->[1] <=> $b->[1]   # by linenr
                              } @REFS) {
	($file, $linenr, $line) = @{$usage};
	print "\t$file\t$linenr\t$line\n";
    }
}

# gets a list of mach symbols (functions and #defines).
# returns a hash indexed by mach symbols,
# where each value is a pointer [ [ $file1, $linenr1, $declaration_line1 ],
#                                 ...
#                                 [ $fileN, $linenrN, $declaration_lineN ] ]
sub get_mach_symbols {
    my %mach_symbols = ();

    print STDERR "Getting mach symbols...\n";

    open (SYMBOLS, "btreeop GTAGS | grep 'gnumach' |")
	or die "can't call btreeop(1) or GTAGS not available: $!\n";

    while (defined ($line = <SYMBOLS>)) {
	chomp $line;
	($symbol, $linenr, $file, @rest) = split(/\s+/, $line);

	if (exists $mach_symbols{$symbol}) {
	    push(@{$mach_symbols{$symbol}},
		 [ $file, $linenr, join(' ', @rest) ]);

	} else {
	    $mach_symbols{$symbol} = [ [ $file, $linenr, join(' ', @rest) ] ];
	}

    }

    close (SYMBOLS)
	or die "problems occured while getting mach symbols: $!\n";

    return %mach_symbols;
}

# returns a list of references, where SYMBOL is being used.
# each entry in the list a pointer: [ $file, $linenr, $useage_line ]
sub get_references {
    my $symbol = shift;
    my @refs = ();

    print STDERR "Getting references for $symbol...\n";

    open (REFS, "global -rx '^$symbol\$' | grep -v gnumach |")
	or die "can't call global for symbol $symbol: $!\n";

    while (defined ($line = <REFS>)) {
	chomp $line;
	($symbol, $linenr, $file, @rest) = split(/\s+/, $line);

	push(@refs, [ $file, $linenr, join(' ', @rest) ]);
    }


    close (REFS);    # don't check for return code here, because this will
                     # be the return code of grep missing output, not the
                     # return code of global!
    return @refs;
}


# Looking for interesting Mach symbols in the output listing:
#  dev_*, device_*, host_*, mach_*, memory_object_*, mig_*, mutex_*,
#  spin_*, syscall, task_*, thread_*, vm_*
------------- if you cut here, you'll ruin your monitor -------------------

I've filtered the output of mach-crossref.pl and included only functions
which are clearly related to Mach. If you need the full list, you'll have
to run the script yourself.

-Farid.

------------- if you cut here, you'll ruin your monitor -------------------
begin 644 mach-xref.out.bz2
M0EIH.3%!62936>WE5I<`]5??@``P>?___[_O__Z_____8)X(\>5.X`#Z````
M````!?/E+Y@-*H`I8W?'MY`[BWKSS&J1%D!Z-=["O=9M[+-.NGWF7IKS,0/6
M=5GG8*!T@;,`.BM\]P:![VS```#Y```"JH``%.Y5#Z-M]4<KWP-L``NY]WV[
MON[N!.[C=G;`UUW=W5L#)[L```'0!0`````-`!0SXZ^:Z`"C.Z[M=G.1]=SW
M.G3Z.H17K/HQ52?7%R]CW6Q5YAPXD-$"NM<IK&JPC0MJ?7R]N*'`Y542]LD^
MF3N8KH*MLL:7<+:IUJNP:HMF8P#H9LW*QVRC````%!K=QJ5U=NHEK3K+M+?=
MCJ(O1JL)K("@&%<FXM%0YL*I=C5PM25`0#B;O-GSIJ=XBI5%K$$E4/$73#SK
MDIWJ2.\&^1YWN'10!(H3LR];K,)30(((2`331-&B:GJ#3-1H#0&@9'J,@`)4
M\@%*5/54,`!,``````````)-(DA$(!/%3])-HU#U/4>IB#1HT-`R::`R&3:@
MD]4I(4TH'J>IY0T&@````````!H!24DF@(`""`D]0FC(T``-`T::&@`!42)-
M!-!`1H$1HIM$Q&@,@-`-#0-`>I\?;W?*/G\J^A\C$R_SQ.:P.D^/I:NS0ZB'
MU@QJEEX=,Q4[;R9X9!)(AFA`R"@1PB1E%G%B(*)-./4:"&::,W8W7.3;BYKQ
ME\U*.NWKX=5'&L?=<5BEI2UL2=?CY^6\3/'OX'&<]95?]G_3)-I*;1L-JV&R
M0VJ-DJ;2DMJBV(V56U;39-JK8C:1:BJB#:T;;!MJ*VQM15&QJV*HVBUHK&C4
MMELEM"S%6P;*S4V5BC45M8VBVT6,:K6-)-I1;5&P-DFU5;16TE-HELH-BIM"
M?[F02;6M=.._/(N3H@LC-48,EYS#KI6^M*C6;WHN:O)MYD-3#OE.W40)Z1QR
MRR+60B2NA,HEZN2O)CKRZ5YV8K@)$9FG6,DDL1A!8CBRAAA@C"BRC#A".&4(
MTDHT1/D4(L@F#0X$0[)V%46U%WQ!H,17<6,TLLP99COGAL"=X0)/DNTRBWQ!
ME%.OT>`/51VYJ-^^X\>\'O'ONG-CL[Z78\4145+NCYJO%F/1EYZBL60PQ""%
M?)$[Z\)YQRKGUW$Q+>=U;R=G3*WK&8A4HF.41-5%5?I.W4:45ZQ(H.,$2<)2
M:62:&G%AA!QAI9QII1Q`B#B##"RSC"#`HL.*$(HDHD$(H]1I!I(BR#@HD@D@
M#A",-.*--*.+-*"!E",)+.&0<2='"ML8ZJ=&E5V<*TTI557+!#+(,((**&42
M(PX1P0<60:<802(HL18C330(&8(DP.+-$<8(.*$"&822%FC(*,)(-&"$8$`R
MA&D@Q&FFDC)-"BS#B2"""RRC!EB/%#-#@P.$802,1)QP,9QI1PRRP1@QF"(/
M8(H,.,(*+"""RS2BBBR32SVFD#,+#223BC22Q"$,19QA9HQ$B&8<0%&%FC+)
M,),$2:4<06'$%EEA9A1(2#-,(.+,,((..(**(*$006(D0R"1F$&FF#&,@@X-
M.-$6,D191))`<4:0(DPLXT&8(LLD(-*.)]/J"2RCA#$8(D@DHP9`A`Q2SHUA
M:916"\:,L0B#U'&S9@0,(*)+&<0:$B+,&8<4(XX9I`C#"[,+-)###CCB!"#2
MGQ0C2!8D@GS(+B+O:KKV'"S.W(F5O/>VVHB^*W<5:2MZ(UQ&U.971Z+=FYN\
MSH6$5GM2B9)V(I(I[Z)P1G;V5DWG=U3LH5J;SV*ILKD[GM2Y3/$1O3-YBB%&
MU&;'2/<YQE)Q-=A7HZ]W+M;9-YC1NNF[9DEULV;&1=LJLQ3.U6INU1%9=9U/
MKR<ZU$(WN<.'C57"F\V;C.54;#4C,G)A9.52B7TSKE#RYQQ&=PHDRHNL@JKM
M;64LWKGU.8Q^A.ZZ7#,RJ,Y\=G=IV[412GNR5EK%AT+RKLFX;V,J-B13CA=$
M98K7=YSG21V2=Z^SLLY)D5;NEA1T=/=RLJIUT2,64[AUE9$=JCJNZJ;<TU+9
MVSD#C%5\H>RXG;'"3DQ3ZF^['8HO>WILB\PW>ENKGJ@G%RZ9,OLW)*RU4PUE
M9K>\ZY1"ERCJR\W(B\*+N>[>VLID9LN4ZM[=]SO)WIW5EV^SNS-[BXFL:(.@
MV1KEG6BO87%-1MU#W9[-W5/5.6I=5T74)36P\4NGU;N[673'T53'%;V6MB8<
M)Y<7V/*CIRNZ[@G4;?0LCNUK2XEU'/O=DW51G5SJYY1LUTP_0MXGN@KHZ+>:
MR!]'1'1/1;3Z7E56-5IE\JR*AKNY;ES$NIF*N86X);LSPL,=5&J\?4K<I3E2
M\M[M3N5;>K-C=N<P41&1D=D+LV3(MW)U1EYO5!D].]/F+$;==.^P6[3>8ET7
M>U$'7L74-.C,EWV\R)W,?G)U<-Y'4^JJDR>KJKE51FP0J<[=7D2Z-*I]J3NA
MWF:13SK).'Z5O9?J,,.G'21MP0<22%GMY/=OL>:;37$.XF]Z9NQWL$#F;TW*
MJ=Q:LCL;[(UO8GMK:JE:J(K=ESV3$J:ZXV.2LPE9"(A0IF%5]+BMBG*EN;I1
M5/U1W567-SOIO>S%ZZW;ODURRJ<4L=8LX52Z'&^*JS4E"J+U1G(33U.=A9&2
M/)K)F[[:>YM,;F[K.(VH=Q<\89$L[M>W[)F>R<59[IK=R8+P6U6=?/>I],3N
M1,T7CG=N:YI>AO998BSB!#,`@1A8C1EF%'")-*V=5P[;]OK2)W(B\*[:YS+C
MH,E[1GK+?5AW88L=U%WI!I!@(8S<F\+..$(XXLXHTP@+F-+()*(+,-+&63CC
M3%F1O1U7C[JU*J'=[<QO]B'VJ0^[\,2S,2K85#U:(I_7;]HG%W-'8$U("D"H
M9<<"XF&"A/M,D)6+B:,@5E9B47$ARRGG)<NN7.[CL[N7.<,*9RWC[3T]9S;&
ML>MY=%RKS.7"+&XY%!RB(7;NM-+<0*A)0SW[I@*115);$/)QJ-5TZ636K_9>
MRKR&]#I7BI*D6"D6!"HN,N%SJP,&:R@P<U<S,&:+&5N9P>.YE2QE6PLR&8,R
M6QLB:1J-\(N;1M(_<[<U*9+6L5L6I2HUO@5S16Y8VW*YN5IW>PV\I25%C24I
MJF9)YVN;24E7C;735!)F%I0B\][JW->'1T[JJ#NXFEI+)412;1M]IM<I/%;L
MS)1I1%D-HA-36:DACV:-X4-H[@&(B#FX6O&))+'*URRF+&V*R4B\[6MN:L5L
MN[.=S4SF\=,+$K2VBEY<2+,0M*<85HAO).[6O=M=-1(6YJIU=:2"XP+6R;A5
M628PF)`HPQD*Y)\=Z\Z0H2-)[#`&/*:DKS>W3MNSG>+B,2\6YC1&C47-M=**
M:E*+?'71A*44Q2:F8DR%F,B:]/'*WB0D1Z5U%*D9L)DH<Y%LD:VYM1=$DVM)
M&UJ+;1DM:R2FM14E62R:V*C%%!HQ2;1MK>W<W=VR(VQXFDYYTMX8%1@C,0S*
MIC<*VM%;BE'CQ6\BI@WK?,UR])7KN<KA&8E#LXMZF]-XM)NZJQ142_2!"?:H
M?G?=?4?DN_HGOG@)\"?I.>S_?YXF\(MHC-*S1M9BC,3-+_T?Z(_T/=>PQI$V
MMBFT;0CMCF2JV!M;_QY<Q-&HF*-:QK6*+:QMMRG=7-M$;XBZS6]Z20,JK$A:
M2(%5,DDV#!_"D#?2#,`=5MC7]1QR@H_D#;.>RK_W\-TMLF1AL'`3_8F(N]2[
MO/K5,Q&2U_%),M_9B#GUTW!X#Y\F@DR<!@Y@+#@<9_`)"=F08C.VN8()C:M"
M"32EQCIH81)3955M7HTPJ4J-**JJ'3LXJ8R73*<QLIC"=&(S'2Z</<S,Z,JS
M).F*8E2)5!I4@Q1-NC#2IPX852*HQ391BDC@TQ#B95KBV:,*4J31AHT).-2;
M4S,NVURVL&C9AC:MN(FTJHF*AP*FU8QALKA3:HD54-*1M0>S;:G^;HG_TOX\
M^>SFM=LC5[WNR\*9I4`4^#L+<,M^__LY8F1S['L9GGEW]/JM9"KPQPB@OB.]
MDI3T9G!T7,SJ3T'1AQFO&VX]7P8H5B&SM/'P\,(3O((7N>JG;.^/MO#).2_K
MR26/\\G.$\'B]#*09)9AR6D<:`1"!!8<R0?_-_^"Z-,S9/TL#]'\U?Y]R2'[
M5^M05_GR>A[3WSZ9]?V'O&GW&]LVNZZFE-IC:\>=VMHVVGT/BNFMOQ-WC?_S
MPSCG(JD?FL3*FZ;-E.^YJK1[,G9>BXXV-*S56;V7/0^WO+^+;6Q?'/GJXT?6
M\-RD<'ZVH5GAZ0X1+\I31/"!#N/!@,CK[`^BV8'X<@>SYK!20\T."0049%F2
M1]?=@U2#NJ2<6(GQZ?'+<2K`<+"3^ZG^BP^[OT?)MJ&E*9,QK9MJ%0V2EA]*
MG%35#K<54&OSQ5ZV/KJ>]KS5I>UD^C*O/5=FD.]R?&90V,WC+HK3"=E&6/+[
M&<FRV5W>%X?ZJ\'BKNU#L?\['!*6!5DAJ2^"I_;H1VXM6UO1[W5%5)>_%MO]
MWYN=;;]FM=',DC2PA^2U']/HY)>!H=E8EWTIUBM>+<%YZI=J9*]G9P/IDO!U
MQC68OSB&2:O6UW[<JZU#PPZ,\?3D?G8^MFYS^+ENO-([6.RB=>/&A\1.LY:'
MX+:DDR'6K2=[UNK%K.BXFEBV+Q!]?+C0WPM55XN0%MZ2LV1:7GI.L[3:*QBN
M;<J;=JO<Q88AQ`J"D6(\9*EF:=GZ_S4@<D_R#\LI/CGX_:(`@(GW_J\R'R'(
M3GXZ(0^X?>Z9:.U&Q2Q9;1&,PTRS0-2S:'NUP/5B,R<L-:-95;%&T9HV6-2-
MBS4%K6:K6FQFJ&CG!PQC09:(,-3:JLT3C0G):QIK4:T6C)-K4R9:K#+-#1A&
M:L9F$>3\C9^:#Z?"H^2N?[T>)EW(@I73_MP8Q_?3:EW:QZO\.CRQ?OS6<D6Y
MRF)S&T<JW-)S:9IK$W-R%DU*.<<IK*M6+)S+,N5)<U/[Y\Q0W455A809*@!8
M87,:6!&943<U=:N:.C5S.55I<XXM%*F9$Q(**JDB7*:S-(XK?0WD]WJ8U%MH
MHK*-`R&T:HUL;8K!F9C#*K++,LQF!FDF93&%C5-FT&1EE@5F5,PIF)9@K&@L
MQ##4&E;:2VDJVRUH!-J6]N=<M<SZ9J:KR^]RGRU?+3OC_H\7%ZZ\WQ9PL1W[
MO77(XX2G3,#\P[$;,*B(L$99.]XE'%B-JOLQR^[$91URR/B:CGPLI_?(2R&W
MK9*2_MT1A3Y8D<AV8_E.D,X[KC&<T>NVJDS550S`]''AF;6XPGQR6Q.,G3Y/
MLZ5?,PJFTKE'JQS\9PZ=(XBM6?%>&]ITEE)KTE,^*&;LV)DG9B<.,UL@(3-G
M#_#\]7<UPK\,4*7QX,@AA23Q@WT>87@GZ6"?%2-2I.F.=)7RF/OGSOX;DDTK
MQT,4J2<+5358KB>K)/OV6_40FBKZ=M^W^*^M-TW?@/L_+#T,DOJIO@NB?<]G
MZ\["BH;V97^'Z3X&O!7PB?*^U_/[>^,'U>U)#D[]H/>_$?"9A3UN23*S[&R/
M!!G"G[,R"SKG!?VK_1)H66678T63TMES$.?NK3YSTZ\<<SF03-ONL^[V\/')
MH3/'7:=\2RM.^X=X/:>=ZDK@R\_.!Z7VYT(6^-?+:M*O10+;\`F#A,V4\1]_
MSH8828JNVH'KDG=JJ]M4)>WPVW(!B3]V(/@8^`7Y6W"N-U?7ECI<##>R&`C_
M@/P>T^$[3\"J(L9)!%//P?;]?X[D[<['ZCO\0Q;X*QP7ZSXD>OP_F5RJ<5NF
MO+-!/*^)U]T.;C#-]#YE0Q\_?P2$B'TF'12*3%!.9?QZG+F3!&C8CQ)@@_>&
M=E<O5@+]T&DFUQ`BPQJJX6NEK]'9T:;.$?-3_A606R+;UYT#I2V+9/+>&*FZ
MO+;U-R>S048DSIV61RZ5_BYP<!T?5_`GQ`FV='8XV^3Y&C!`PO9V#LT'<4Z&
M<7*;)#6+(X2OJXS7->SGA8Z*VLE5*L15%6M3,3/-R<6>S2V>O.+LTLTRJNU*
MK%."IBS/9OO5>'Z.AK>25>*=J)<TTB59(NL9*6/AV>=]./!"PX_=S7JPR4VZ
MF.0T10[;=Z)'$S(0=%%624K%)5@PL5>>+IHC198$5!B86`<&0;*ZGHPAK"3Y
M+U<D\,/@0-$;?0,#'V#+$A1/0,!D(@3B8,PZ2'>5"&.'(1VJ[=O7@]'HLI;/
M$ED%'X!`BFQ@H0AU$6*"1?*G)974K.BXK16*^^Y/:Q.M?H_#(M23:S\K:*LB
M>[]'*>EWW^VFM4R^A9ERRT6Q'R[S7XS=J9IT4T^&M7255,7\'OU3-U\7!F84
M60,DP-2K#;X>09!@5_O?M&C(YSD^]53?D2*&3($']#E\'V->!`=^*7+,S77@
MHEH382IV8#J7$)ON/J:\T?QCMQB1?B.'X('(-<S[H>U@06N7>(<BB#N1R620
MZ^&XFR3V<4MK3I*.\.BNCF&D0#?P>EU>OQXR-]Z,"IP=DE")XHR26,%Q,#2-
MRB*9)Y#0T-$?_L2?GX,)AM75)Z\22\V[+&H92Y_7,8[OA`&5X3)/ZX.#H0@D
M_@XY<>[JO]G#-_957HO5==\S,D'M9$.*VL(REVWSK3>+/.,<NC/V8JJS:5M>
MA3(!]FBF`AB@Q$A]@RBF2(R-XM?A3>.-.^&.7%<Q*I_4L1\6%0%6C9MUT>&S
M3N:8"84H41#@PJJ4JE5RKP^732JXKI:S&=G6U[ESGO[>ZCV\$&OBO'?<'1^&
M_-]>^#+-S7SCX1[H.?8E>EQ]/IYUG0S:/Q=M>7()'8[E?L"1)D%LJUQQ&_Q?
M]*LU\W(=95S5\##EB?['.5JS,E_-[G]Y[>77D]F/I_S?VZ>*;3M\?5W[9LN%
M$Y3QGC?AZ)HYE%4M98>[<Q_U%?MNCBT/2/F9':M?/^63S-P%\)MR\CY?N/OI
MCJCYW.VS4R6F_5F%2Y?PBVPO8=X-NXF#E$B#T:*]\^VY(31V_YH0O<2[1Z;B
M!N['%U1"UF1_-,.LM$RFEV'W_=@L-5$!;'Z/+4_<\W[UDQ0U7,":2_XL!X/V
MG8CY8T?K3<..91^K#EH]"+)TQ$J=(6V8BP/L)J3IAJ"(A!28B+AUF_A,X_;[
MV40CMWNPTH^&W/42_0OC_<LZU@]B71\D1]_TLLA.?/Z>IS[I[]_MS<#OKSKX
M_3:^<UCCNUS1CL;W-^)NVV!X=PL02@8<0S`Z&.!SU^`%`_'K^CLPW[,_NCJN
M0^/)W^#F(]_UP1+9\J3)1)LD]$'E,=V9819KPX8/T-,'Y2QIN<V:%@?@:6:G
M(H]Q@O_ID;Y_/YM]?L?!K$CI*\T>;$RLK'CZ#0?9_CZ?R_+L9G]?'=T?_KLZ
M6@;\P1^?\Q_756-9\P\M1]R*/"/AQDF21(73C?DC8/7WIF/CO1J6Z:8!<A"=
M!"1],XTXE9,JTJS%3[2DEE)IRV^CZJ[/YN^8OVU]>>SX_DQM^GVC^3EPLE*>
ME)_.I^B_T?+Y&L<OK]K]8V?*B^;5^<ZS<ZV7Y?T2Z2/SIM754)U*=%.JM\'U
M[;0QQANNZ&\3)43<4?V[P<4A\E',J%5-9_5R^-_TZ'=XQ-XF'?,3VTQ[]F/%
M"(I!PI(=A(!W!"=)SKY?B,TGY]_/^9_IH`;A'G>]\4,WD\CC!;N#-(AF_=^_
M+;DH$'DRQ.T'Q^0^18.&._=\I#4"L\_*@"I'/NSH:0RCM-/]5RW3?XQ-_KB2
M>ZAPJU'PIY*Z[86GR\ZLL_3-H<J.L[_SZ<[;G:%=7*&)3JZ23@R;L;1T<,&U
M2?G0_P\S))'/3"U)JC/AZ:3MO!:28IVL=*NL32C6VFC=)QMN-1(U-&'PVPC^
MW8U-#MF(Y>58I75K#;KS^+J<R+&VJT9K),NF8I[?EYZ/Q_$UV]/`[?CJS3^A
ML[Z/?3$OGUZ[0_64RLI5?K4>5">%=JB=*FZC:OFWAV^&!GS-LSV5IU::_O;\
M\I,^3I/>M;1Z,_QJ?Z!+_,$N/\O^]?)]G#W3W^L_1_QG;I?YD5DXW.7N_+IT
MVG]<^)_?PH;(8_DJOFST5ZQZNZ<?[M_KE6_!^'#Y>D2/?4\EIJ/2UD[7X-*L
M=[UKL:Y7,FK$D50JPUF:FVU-:A^,ZUL7O/]DXK:(X^5R26K*%MJ2J,K!/=VU
MW\^=>Y@]\]283)=9=$9.`-\89"AX3:)'8.T>*OG#UF>N.(K+AU)3)$LR2:29
MMW7TIJ^=?3\24U>-J5HC']Q/IK9)DG9G@\R9\QXDGF"0>5DB].+CF9)MM]O@
MX)M#@G>C^JML[OFK:=[[O;U:>B$<OF^2/J]9"SQ)[$ZCV56.JM*@J1+/1\S3
MZO8>CPQ.H>C[*.#GNGNJJ_?;W'E2;=&RCP\%)=C9^9S9)Z<>DV^RGE-NQ^HE
MN^]GJP?;Z7T6^+JZ7H$VV]0*K&6VK]4[)ZI[/"?R>#CK:LGV=]:DUX>)@W&'
M=.YS)U;(_!/I(]555631.DEDTZ,F1(T.IB^]1L<+$W--$:%DDG;37L:<R."5
MX&,@XDVGMG*<R3"/0[-R2M,OK<K,'456\JK<+UM[1RG9U)Q:9DQ668G28J/!
M?2.4NQKT>3'@J=X_-/`98\%^?*$8B(<2($@.V`U:$NZ[$Z9)Y<3XUH\2=S:R
M.#3%1,=6FV6WV0GG%/!DV*?!W9GB78[4X_/+:MK:UK6?%H7G'Q=YW8?<\EW_
MD]?_#P^W/K_OQF9M^.L])Y.UZ7M!Y8\'17MQJ[AQY*'#WY(((-NUF7&D@]^_
M=1":1(R?=UO&\&.J@LS</W>'4E.?`@S?U*9^M7NO!W/"<?SCC#2FLV2ILENS
M."S)1%%$#J$FW!9LW>[R9:B@N!YR<.9^0J,'!>/&SBN&6>2#&[1!0DMBGJGD
MDZ1H<6"-8<*Y1)(J*(5L*$XBC"EH17)BB@FGMV=B$''E.QDT:;..9JVWM2:B
M"1S7-BEGV5Q>N#G-\KHY/1S>+-ODV/!OG&,QV34E^29QC6[)8KIU@O#^2A_-
M-`H$^Q:Q4>>=E'OZ'-Y<OR1I8G)W0ZY37[%0QH1*-B,OE>?8HJ\]20C`K63=
M0>A&NASGU.Y$8$+O<$<=.6RPBS543ZG@L<K!;^WMYB>!S(L2<$+;UYJ^2(_3
M[:-G9O'AY]><OX]<V8.XTO#FY*.J]Q)W3Y[<U[3Z%!**UN,B[1B"C'F(G-G1
M?&<F,D/E[WS@;8C)9-\>;-;WXQI3G![8YTFGMY;1.N3=BDMXAS@V^>.(SYSY
MQ):M+S/"G)#TD9H0_$')JK1.1#XX6BW<>6VYZ'."0XUG!+(>1\LI)KM[J8VH
M(I623+V0=1F+@QP.E3*FS42R5B+>:FDLIQ)DAS&)]48P2023&!SHF81IG'H<
M@?R+ONRR29B=91!:F(0V"=Q/BR=Q`Y>L$D-OIPF4)RQR)Z.;),F[(,V<DS*,
MCE9QJ#$FEQ&T76?IDQF80TX<J8];''Q9]I5WKG;BTJZ+L^#:6J_;WE,'QA(7
M+&,W]./AG-SOK),\S)@JO&(HQ1&L">SDF)?U8[3+E9')">NB2"S=[4"Z,F"9
M,PZN!S+9.ZSC@J?Q,AA0W9LX.,\%FQ9.8;F-&)RWAW[BSJUG&\S?(L,[.?/!
MF''S%Y*.3B#DKHS1$<'DP3;]<4I,',6AW($/RY!Q%<$F"2K+]<<';KJXY-:C
M0]&R)<KGS!7&LED5C-V0XYB(5<Q(XK#%YDB71GB<U7E091@TT8W1`CM6:=_1
M1#+@GS/'4\P^DY1XXDZG@(<Z=`XH$@@O,TB>C6*DI=5YB%DE<1AU)*7&#$CX
MO0_6^BI&P[R(LAQT]D5713G`&.>^:G/3[T_/+U?!!:,U3RV4DIJ%P]JT27*A
M08$<<5Q6#4N8EUA<<>(XY6';)`^B1$CF2'(4Q3YX)++Y'*G&'X,%A1MNX?5:
M=W3//&=X-#[,D.=/4UEW[N0]R)OF#K.#???/1OO@UCCDW3A[&P?1;(C)#B9$
M'!XJ.WZZTW)LP)G+HY<3L^N"N)$8?<QKQN+.'K#\4<<7EYN%FUD@DX,@A,/O
MB^\O5\Z@IP1.!Z)')4!!R..(A#B-E'/#MKF=YJ,>,%;.K.*>A9BSDII.!*LS
M.,E<=8.'O9)QM$#RXX_@Y@B=(N-IH<AM$XYQM=QOF,WDXZ.`>%J.(!]CT0*9
M*%?,1P_"T92$VBX48C0[RB779DLS"%R9ZF<1DV1L=AQ#IR8U0YB>)@ZUUK>C
M\A0_?,DG?#Y_DW!;?W#D7+2[*.1OYALR(X'WG"C42*&Q'!`\D[\T"H<1CAR"
M#607AQ^"/R$GAB/V,E[!K'ZY@3XTXOSWBIY[YW)Q,N03B(9"%'K$FC!1GGS.
MZ\<&A%#/?@C1$=6$DF0X^<%W1"DCI*%+BEW;T)_@H4)SDLR1W#]KD?$B+%U`
M[((.!SS%$%0X<0/HT1BM0<%CYA5[N31>Q<8U$I\P<S4N2=E&A%RL1JXH=$XN
M#6O%&2!!D2CL61)++G18W*S&+Y$3E/I8(+,30\TC2IL0I(Y$NX?+I<9SC*PF
M<APEL'!P<:U%7ELFI.#@A7UB3"$I0J!5J.XMK38=]WV<TL;HDSDA.Y0BA4]R
M1:+M/EVDR;$6]OR[6K')$.?'GFYM&\&:=47!T;,^+,&'='9!J&@<XO/C?7&N
MN"!.[<MTT=F><\:ZUOQ&CP(R7>%CEIS@\')XY(UU@?/8M\N9.J6)Q,CRCI&9
MY4!@F[::T-5Y*'0*"KX'"BEE9$0QE$BE8AR52H<Z(.$LT43N0L18E,UCM-,9
M<<DT9,'//=#F<ZZXXDFN"XC@HQ#B?W"R229<>;')E^]D$AP(<H<[Y?F4+0F]
M_>?.^LM@H<TW=UL3.(DYS,9,V9(')B!S<D+1?)V9.>,^9X,[:M@G);PL08ZU
M6MV6M%`L1<.)&Z;F7J_@08I"&7K/N[?KIS&%P[/HL<\\]>K?QLQH6[W4(I"*
MT&#!ZKHSI%I!#8X499!^C\-,RI9!I)4GOUQ%E58G]-U$A9R/S-1GB-,24.:V
M.7UQ'H6%K,#:C%8-CEPQ,].'H]8L20A)))##=\9E8I8\-]OCQ_DZJZQ\U&ZD
MM)=<Z=GUJOE_!#T=WKGKQ?\,/[H>C_':7F^CZ=K\U/.I\9XU>LP'K4G9%:/!
M:6I6U%4WJU061.'&#$X,B.='YJQ>:CR!RJI_D;:MYUY4?KZ<'=S)`X=)&S</
MRI'B2/\V).H\_DGCDV4UU64I\'@.+WTQQI[*Z4F9;#U07$73BH\*.J3R=HAW
M3IRJ\)A,8L%G<[G(U[_#]%?RE5Q>3#/$KQEZ6XOW8HI8E9ZCSDLD.%D#DW`6
M'ED`G"<.KE71'D*N\JN5%Q-5'SH?%[UXAZ1R7=5[O(GD=5=XGMSY_/^'C543
MLB\.]3>6.1[I#L#Q'K.[UL[%DXP=`TZF9DO307"9.%<HL*%LE^&4H,#15FT3
M2E8*&3N<H'(XN%T[#BIV7A4:XT62U;Y-OHJ:U\:O7VPC8@-MLATEZ*)Y\VJN
M[3LT=$WPO&5U;>\K6]6EO(E8!FJODH[5%\6B7B>-5VAR9BW$]'':2M=8KU@Q
M\6JIZL>$E3YG=SHFP=GG5VTGH-FEU':FCDQ'2(=QW[=]<]$\(\))WC?#4AQ!
MZZC"DNVCT6K;:[SH1$Z>S9.LFSJ32)J&HG@G)>3H>@AY?3I(DZG6#RX0Z(ZI
MV0X3VMLMN>_^7]_[?^7RR7_,/>1_'_(/C`I,F+C\Y5W,ZJ]&A"!Z9RK33:)[
MT3BOH$82<4<,P*(.!"++,&:46(L9!)11!1)IQ0026<:<82%F%6_919PC!W[9
M:AZ4@U>B*S<R:6E]-O"W,3"V],1';BRY\G>+-F.B%2VLB*:4[$FT$/(>1&#J
M;[KV=*YW1`JL=EF4JS9S&XB81%X^FW+0S2^*[&V:=G)ISP_7\[_BKQ8[V`RD
M]]3MV8=WEG/DB^8A3RAX$@+('$(EIN'FE3SA729P3_4!@04(*"9WIJ?7MX2C
MRM]GF>P@P@LLF2^50W5FTB>H=JSPUS&P0*H42O)%0R%Z5,""2`@LDBVYMF6X
M<]=>,4Y)I)Z4&B;.R81*/,6J<,+&64:/$1=]$\F2QH&PPJ&:4<6066,5$:F5
M=.>50$HFV3ZDS#3$HM>NYM2D0+Q_[$XW>'UG$C)^6S6DD'Q2G8MR0;NFDZA%
MD\3THHTB#C2N*-&26"$44,1)(ADG&$"*.(&,]Q9A)!1QAQ(0280<,T0RB:6U
M3$PGF;4Q&\XZEFY!)2T3I-"7AWKA3<N2&E(E<W&&7=1%7W=+:KD9G9GE3]*O
MB]FB,Y9.+5E5':HJ),'@_/+Q.SCG=1%7'3-VJV:=JAYQ,E)*BAE&RL(RKJNR
M#1[^SWF_<)@.^7#\Q]8QGH@HH1T(=%4ZY50:7[1>>5QE7,1S!X:IF/75ST=K
MS[\-N['?.-Y<]>,ZF+':DMD0RPDX8[>*[MMF.N=;-;MWW=0CBC=/%3%,2LJ>
M#F:>"E$/`,XU.@AHRLE1TS#,D'!<8IH'+,6_>Y,$\:?&P"!,,>*Z45HVQL5N
M6\\WR>\TFRZ+>O&FYPS`>%[2+("G&$Q(I)B#5+KG-N[;%+.>^<;PO)E6A5B$
MFA,!$.),QC>Z-%FBC)%/B&F72%D9J0'B!>\!`Y-JOJ(*&:(PX^N29+=]CO.H
MK"*$BDBR(P@^'G>SAW*7OUVWS>;F>G:-62:60;UD1BJI:M>CV:.;S'0CDDZ:
M'6PP6=/>&FHPTF"2U#W)C)6U)^ISNJ-999@RB"@8@1!A)1H<,TL8CAE$G&$D
M"&'"#AB,.$<,D+.)&8,]A8B2CAB&:9[MN(J<BDWSY="41W3N364=%0P3F*IU
MNQBJGZJGE22WJ.X1CN*?5:RJG>69T%WU=,[8N@H1WLOKFNLF7NW$D3I44-0K
MJ].3V:+M089R344LN/*R2.T%T<!KL]['S&#G!IN2!='6IID3=SY\VF$A@E`#
MH9F5YM#AE*(G',W-?24]Z\SE[0`K).A%&5)AO3+/9MPZ\YQSGC>G1Q1:=;$M
MDC7O*##325-P/N;C++WT^0D>0O"$>0@2\)>M>#\R/9FB*,I3/HC'EN)$>$CQ
MY+WFWX,9N9`0*&5-GUEQEN4A$PV3LBR:RLE:R2GEXTPYUF'1I9?'-5JB"F9B
M$0F2`H@*,ECT6(LL<*<F\,B6/ZV2D+#R0EX/)`8_2(@\T_)V-B]!%QX"%Z%[
MQF/T#$/WG(UJ^43NFN>W342;Z9#_9\/FA/8_LP(_B0OKU]O'MCKJD_F";Q%^
M!YQB20LDJ%E>;>C-ZQIW=Z<ZRR21E&DDE%G"+-(***$(&>HP9II)8S33BR#"
M2QEDCKR)-/4,HJZZRG1*!KV-*NEPGRO(VG5I)7!&(AZ.#V]S4O:.C7,DEIXX
MZG1:]5'=<89SISN>C-B1-)7*FT*2[VE43M#[9G8GEDJ*W-Z[<0IVT9Q1ON()
MU&G?M(N2;>?M#N:55[Z&[.BZXWKBHMZV8J2T;L->(*4>($2(90O>7S]D/QBH
MY#UCI.W*.#,DA1@8P\S,TU$[E-,%\<H:BN?JM^Q?&Q)()>!(/8@\9]92DDVY
M$(1H2H8M`D#7=JL[LK&%B3-U1\*:1E2JDZ>,6L5T=79J.BFK)E[]L=VF8&(8
MK`604@YWG-U$X)V*</,KP1FY/F+WGP_6^^D]2/'CD!GD!R"22@LDVF&TBU&[
MG5#&DQ"9(0C-N4(FQ#$V.'X[F1+\D#,AQYH#Q!,T&2F-J4L.+5/%J]DP#'@8
M$PV31C9,V.4X)2#EF[XSNE>#6RG1D;9BW'"$_8Y8RS[-(K\0YC5]Z&:20=IJ
MHZ19?.%B*GN9FD`:682%G%%@P1YEA19AQ1HB2C@LHPPDD9ALFD$<EA0B2AD&
MHP2];G?39IR;3G-[.G;SJ%5NR)J9NIHHZE>S[(9BI+;QK94ZGA@T(1E)U&P3
MV7"@CG(G5*$JOH<U&]'!"6*A8UJM/BL&%J,Y)A3,'6?D,S?C9T')P(<9MH9Y
M?94/'%:+'*IF(AQH3,Q5#CF*@&4,PL9EJX/-&*_TPGS?JAGD+P)>)]HQ#@DT
MHD@96/5[5YB\2E&P-$TNQO39EL1HHI.7QY>][7O=>V6U)6'.2Q$@H=)1(=NC
M.PFF%!EKQF&P%.8\$"!2_>*P7Z-O;:-J"`HD@X@GTR_<(G>R;1#SG&NA^=0>
M!KWMM'Z,(DO[""`9L$&,)0CZW4IW$(\0O"7EQ,02+PQ!T&Q,)(:#6/8&8O2C
MR$4O`Q&P^)@@8(\J?KVE'J%'.[A.9][R0->"A'AMGLDAT,DHH@CWLF%)E$(G
M9?UT6O`2O#9K.-.)&448GM>5B?OG5+UED'PB.(2'HQ8J]A4[I1QCG;GL)$8<
M2%$F`AC$(@@DT@L1PS3`@HL108,9I9II10R"QEA9A0ADDAR*+$<:,].VMME0
MYX6]OI9CV.V%9D1E;U7MO#=@JW69KU(OGE:75WLR)V.JGKB[OLK%<,K=4%TJ
MR"J>6G[SL79M4['`^VB*CUJIFY<-]=45K.<3JALHG+9U:\KS.&3UU'ZJY_.S
M2`D./HVGJ#$8A)QJA3`B/`.6'I)R!ROQP4CFR-?XC9KI"$"0>HF8]4#*$2(X
ML0-.H^7M49:L<I$)+QC?FOMK.TA%FB*!'(:IMWS(5LI>\T2GS*1`AGF,1UG5
M3;\B&37Y`>>LI>L9)HSB@TX82(S%JF4Y0E4GH1Z%X)B("#X0A^,5&.:8UF9`
M,P3>/V*%"`E`D=9D$H99!!Y!-W5>I6[CQ>O<$[2AK2E<0Q)0X4(-W.9IYLHH
M:DQ$O8BX8BQ^]/SKGJ+PB,AJ'[W='V1XX0XWY1]6P:/[T7</;N+LD.$&E$$5
M1QQUUI&Q,5(F=I`2,@P\B33CCBRS!D%E'`SA!IPA$DD$D#*+(*)+L(]Q0DZW
M5D7C=9E&Q>RW%QBSIBJH4$96O?+<@F</8A=/5>:3N7"*V+REW7G#O+9.&3,V
MKFMZLZH4''36SD76X*"VE>SM&WG3,T%&Q>2:@@;_(/>L[\$DV:(_!C(!+[\C
MIE?G41S>#&@2!(2QJ2/0"$CC;MI&Q-9"0^!W`A,Q51C%ED#($V<HU,E?B\0*
M<%C<%E#)8U4Q[KFB?$B:2]:\VSBX)Q"*+/R)FT-*A1!JI3?YU4D%"]HO7;[\
MO[*^UDNXR\AMA"X4+R$T#$?"&(^*JYH;<YG5RN(-VCY>+0D>T83!YF#"YDJ?
M5D_/NOWB^'Y)M^OG[-B20(%Y+VV:.BBO&I6\$F2ZGTRFT/O'WW<Q"*$9&Q#K
MFK#481]U)Y4GK!E25W5!&^:\LLH@0S2"2#C@0B2B"Q%EG'K$<886((+*-$6<
M48(P,(-&<8444&%$]E#-(*&61(-PW[=(A/'65E6DZDM[RI*<Y^FW$OC3!3<5
ML1&Q3B9;]O3-8G+IO+AJ8FYV#-%Q!SB[6S%S=^PY5JC>V\]O2G5X57.-RN6N
MK.6;$]JGHOH..'E%>Z!C,JA1>27\,1[4>NR8Q728A&+WR\0)&,8(:\Q>H0TB
M#1F'QUDKUH3P4"^N#TH*;"UYNPF<,FZ*\0KA/U*)K'-KN9-L2\DVYWXJ2QC,
M$^8<MASPQI0WY'M\FH7D<,T0\R)/G>.T`T>\D)),H&>L1Q\65E_8T42TPI0V
M_>22]A97LHHP37SV\BKE^\1T04Y(&,HL1)*\W*6KY5%"CT'M.-@^*9EC+$$B
M]PZCSB!Q'T^<R)"27E#)E@3K]<WEQ->]"+9RMGP0P7;1Q>?5A].[AP(D28SI
MO*A5DV\((,()"BS`TP9)QQ@0:0%&$%$$E"--*,(&(LXDDL@9IPC1'%EE1MQH
M3,F.:Y$%=<(PE/JVRJB+-DUQ--[=BS:?IZ>(F3HP799&9K757$YT9V9E4JWA
MS+=;,V$5KIY-7G:QYBDTF9Q]FBW-[+R8UFW5CLX1PUL$D<043+.&?7N\()!6
M^1L3N34RAI`D2AKR5"W$1TGL+-M*)+[B/8-^$O01T7K+$$"&(8@H7R&ME^B*
M9'DDDA"Y]]9!8B_?.H&N4]\J4HY0$)"$M&HX1`A$D#]53$C?+(^HVB4D,9H@
M9`,$,7S@Z=^>T_)`(3Y#"R3+GT'C:<A'066';9P32<*4[/"WIE9Q!(7JDY2B
M2B#1!%[$"\6D@5U,A-P]HHL18A]D)9$1V$4^J5[W.AHN^DP1!7U_;.K=O=^<
M:9=%&FF@BO/K3FAJ;Y9O",+)$,XD@L.)-&(XT8,HX*-,-,(+)*-)))$,H9AP
MB<[-7I.?G<TSL=Y=X<M<Y#DE.,UUJ[/7$K(3,I].T1.M558\Z.HRGNK2>)R)
MVHY452GUP36"G(KF*=N^R(S<?;M<]YY:F1QL7%8HQ08=LV%"'13Y3Z_MHFS"
MBZ?E\F2V"$)>!(H6Y!88Z/E@JYD+WL3+$/P:X5\40*&-+R21R,A"$3B(<_)B
ML8Q>/EE.PG803#</)/+:(QB"1Y(L7F8SV$#'2Z;0]=M#7A+RW7`+32`0O<_5
M2O-FKS=J!>0($&TSUD@P:*53D;L*\HM8O.ZB$(0%KUB'Y%O*F%/2$"\O)!B%
M-#C[2R`?DZ^?E;YLL:%]O;Z_+X0?A2^OR?[AVQ3F3`?K3D*5\OR_3_:L<26Q
M97Z5OJ3?3[=V>RX=%?E$?F1G97?.='@]._;OQSV[?'7_A_=?Y%%/#10G^[H0
M;1274_[F_SSDW.:E+CAG)M;-HK--JH]&JIV[?V1*GY=O^8JO]H)]8G]J$_8G
M_D)/_9+^H_+-_%OZ8%`.ON^1YGJ`ER/I::\G/1I7?_\NTI_W^U\+R?_<KW:J
M1I';XE3KXDV?W:_X(7Y8ZC"5.8Z%ZI_I5_K[O^QTY=[>T,<__%6HQ*86,/)\
M'O'E^7N;\CS)8%12_L)V&!/K@C24AT+HW-O_)V2>RQ.^,B1T^S_4WZ_>)'G1
MTB/MT\5\#(W](=M/+)L,UFQW&?Y:&7)GT(=F^$G22=8G9V;'S?D@=73MRZIN
M&H=4"MQ)Q03KD*]$#<^34GFK4?]`]63UVZ/H^W\=TG53V'6)%>D//*SQ[39J
M6SU@GQG][.8DLAS_*=>SF=!T_DV\>:?E$G63^%M2"J3P^W=6E?3:'YPWC_U[
M1'[I].)UDD]FW,F-3HUP_JL9#TO+K.?>2?36GUU#1\1\D]W1])^4\?5^2"?K
M#UGB;=_>;[L?+M`EH^;A;KEC['#;TG+4.:/%E%/*I(\^K$#\R=D;%GCQ8$\0
M>TNO^ST^=-UD=_4L^<E2-T?.)CK#V;ELR.GI)J)VGI#)OG/J/'3[P]GM7U>#
M+-?6S'#"9B&.A#(PR<YYM),.>4;,[$UL!J_69J2=T\R3EZ.LE9Z/HWCLIQ(H
MW)B:R)&(&\)DG$FID'N^G@COX=G2?7GT3W]7/6>S'M$CUR%3M)X]>Q/WD[.D
MR3F3J]/F>9X(>B2<@?2']"?5(?>$HT*)1$D1!$)]((88>9)]*?A/\(??!D/D
M!/[S3ZCH?%B_9D_TM/#5\J_?7^+6WW]?*5_+L_3K\>4GV,?ALT(_8,ME&4M.
M.@_2-9%[;(8HH0FR[+:GK\?7]^QVIC$-7GCTLZK^;K)JR<9)(G[KKSA.D+)Y
MJ7<9B=YXZ=?],/M]PGMA\_USZ:T_>^]/Y)^"?B/H`L^C\A"9*2B)%BFEBQ6;
M8VQ_>JLKO_@<MW&'[Y_23^J=!`."<-"]!_`3Q9T;/R?V^CBJB7_%K+;L&+Z;
M`F+O_3&B#E@.@2$OZF_U!)GL]EFC_-?!Q9C#&3*,Q+&4A;9K3:-6%,9C+,66
MCOYX1&A'_3U_TR-GEHXY29$]G5]3A-)/;(?J>OS6/)N=B\]Q_A^>S<3HH])_
M&=BEMMMMM6EMMM*4I2E*4MI;2E&4I0ML2QL1&4M;(4H6U:JRE9C@[O;.?/SG
M=T#HW+;0.TY2?.9DVGB0PR>7<SIN=_CNXYC-)/@WW=U<OL].'9V+9,/G/$<6
M73,S&9]!]?E7F>FB2V[MU%,S)93G=[:DG_G,\I`[)GYS@TC3UG@I3[^[;[]C
MXO.]H"^6B,RC6JN=N=;VX=GKH?!\08?'*)?;!$G9KT8U]XFE?(BX/%-![`9G
M%M@]8_'A-"95LV2$?5+%@S?(V2QJG.;B(&AD"ETB,>"V9TH3CLQPEC2>UOI#
M7#U9P]#Q)Z+/6)N8Q.E5PI1$?G%L<S?C+E:YWZ\'Z/?W^.R'/7%RWW/K?GY<
M>5=]X^:K8V-M7W;-;>]?)U.=D/AI5530V^D_$T$/2#=*GS5W[.SLYC&;W-QO
M;EI)\XB6!H>F$G(R>F=SN$$2)YEKY:7L**JJZ'I-&0T>8<0;._S6)![I9(>?
M:(PBI.'7RC7>`MN%I\-+C;V+!C+&/UEV8-T%#&5,C@*ET*`1Q<Q5::F731?<
M..C<YW)!U*DA(>M6*-I>[B=3HXGW$C1]O+Z2KJ1Y]L>RP]W%D/SPT]U?7I)&
M'T'3N>OAWANEH<^OVZZQY3Q:<:M)>-<QK(BVV);N1\SLFY\TU#Z?%QNUF=9P
M]'DW>#G*>DVV?:AV)7O>YXJR:\33]?B[QY7G;+,VVB<R@XXY4,92JS1(XT$X
MRI.3;G?AU)-H+"M.NE&YT\/5U9['5Z',X3V%-'8V:CM)N&E7:-9DU^>FVC?T
M0PQK-K7?#E53XXT[*\+);QZNHR=&T91X2E,]SB1QLQCJ>OP[5Y&#:MMGK/O/
MQYKZ+V]6F;;1SCX=*\6%#S)MP/#ALDN*\S&]2D*V^)+-`FRS<CP&QK','O/C
M*8H3D./B,YZ8X5TVZ)PS9I\XD03CRA:MOLX?Z=3V=Z;O7L?#?.]/B'9?'3ZS
MO5\-'S>^[NYMLPK5:96MJV56BQ4I&VE3,E%LJUFF4F9:C6:IBLI&:8U35C6Q
ML:5K:8,&JM-&:#31JQ98QH8,K2UI:47?.-+TAU?0^4]O4Y?;Y=5JVWWCQ,16
M5D??,[O#0T\R/R60_6O$DE,J=[.B.AB;4/22WUS*Y.3-4/G/X_TG*?$6FO15
M07V(M\W8O),T,61P?J<G5[1I.\L>T)'XEMJELJUM;3,S+::HK6JZ3_4XN]_3
M_3^%J=':3/1^^31]WAM[.?ICW3K)ULVQ,3YS.FCVSB7OE^Y90GC7QO2OXY/L
MU^(TZM4G!JHFTJ=%[OQ/A:=24V^(=S_)L-=?]\^3MI#%DL(GT`F-CQ3)M(_)
M+])!7:/"]?M+AE593W:)&7/?TEMA69;)CF6`M88R"C5QJZL;U=I!Q/G*HJTJ
MK%*$F&EDLK2MI;6DJVJS9M+2J6:+145%1)9+&EJ256,Q-M`WU?+;:_)I@GH>
M#UU)J)(?3A:_-TX0[H:TKWG(^Y]?G*AW\FE.&,*;&F,6&TR,^T81Y=1];'4R
MCD=^5>9[21WAXGOW.4X.L;DDZ0/N*80OHQ[J?0WP"M?V3<LW99X$?7,!1@;`
M@S/I[G"6345E8IX'57RC.2GPJG:IZLE6U$E?2'D/(?3P%>KT>-+ZJ7/L=T3@
M9**YS*,8@)79A9C;@W`DDHDDF")&&$LBC&G:J:3Q;3C,;L-V-V8(FT4PQ&E-
M&E#A3-PMPF3D%>%.@=-G1U5->GYF7?I2_J(OG_K^)T**^!Z.SRJ?.15)K2M*
MM7%*U)'ARY6=)$^3#YJ<3U3/D3W?>AB?8D_G*L//Z::UMM>7K%?N!,1X-T_#
M9\5N7@/&HDUX'E0>=><3Z.9S!'7K)`Z0.L=IQQ%$AI.L^#M>39GGP\(5>Y!-
MA-#4\.5>U+>KI$TDDQBFTDDR*))D1,B3*NUO:^:K':;?%-G[O$DD']GO*,D#
M@]?&A$FI8B2G[GH^I-/V/]!D17)7LT-BH9%DVE87W',AL]7;NGW(A$G3TGR)
M-F(U'3('[/Z)6V/#]T\&`['('N[T[OB&`V$+,2CB2R5QD4D,126RB1;AB840
M60RR4%9;'!M&>UT5CMQBDKCB8X*",$8HB#`$87<,TIC@(+#"A4WD[=<;&S^_
MW<4>&3D:E796N5/9=5<4G8.1VUF:6,81TJ-1=I++D.1QR&TK.C7;Q+,,F1)D
MP&6'OD]^>D^*LM*VK65K;8L5)*S$#MEE<GJA$^</5/$)">L"^/#>*MVZ$4>2
M^-QDV1AH/-=X_2=%X9M3XFH=+#-C:S#;:M0UD+,-?!'977]A[_-C1V3O_1:-
M#RZK,=11UH=9()(]IZ)Y>[8)7LPQZK(V>RF]]CX*]B@G9BK6A;)+&5,:"%QH
M.-8TF:LTJT83#9JOT3#&&LUF9<)98LX'$1:I;7>OEZ>>DDX[]NI-(]8GIPGK
M,68O/ET]=?QK?,S^<1/\[S/PS%CP:25YB?'I2W;EWDXZ,<-2R=K554R<'Q&3
MDLDY>*M6K/ZH5U(V2^S_!TU/VF"=5CFS;,&U=''A[<QPEK:\J^.\>;"JA4K]
M5*S`;=',Y/XX-.K<]W91=/3^CPCYTF/"4\4M5[HXZ.IU'A_6V@XF&B=8<_E^
MLZI#ZDJRMBJ(M.ZN61-7*OGTS:^Q(L)H5)&+$_!9FWEY6H\,0<%WE>$]QNO.
M+O7#T>#O^K8QK68\2I9&!C$X'XS<W;!MJ[R/O822P>'"GR-!#032R883#X93
M":)\XS`P/(YIKMDD"^(C2E>)WBO@?8E#6HK7#K&,D@P<DU53U8\'";JK6AHR
M"1/GU%/(R8E&L1SJI9S!$74^094%B,!>R6V7L67,*7.C=/%[=XA]D-41C%%+
M-`))P$D)(/;I+6/`L(3S"TAD5XLDNFAI'+C#@6<.#U')AMA]DST)$LG3J_/4
M1';;7.Y#2=9@YLGTDX?+V?6?3^M?QS(=&BBV'E/>;\R!X)EA5[$I^9:E.OT:
M\UYI(.K.>PV]<]-R<0XD@8GZ?E#*24_V+4.7$>8Q\S[J_"GPGA/=#WA[J3UU
M1V+GG\7U6LCOCCA\V\:VI+%EQQ/5J:LG<D)WAA_U;;*5AT=2Q?S,UBD<E+R`
MTR.-$S)5+92ID>Z"A6=T%A@DN$Q0!L[DB@=3KJ2@,J6T.09#!".7J0T1-,"L
MAJ9;2I"XU;IEUKB$54>B/:/,R2>7W=SND\)/G9/U.JKD)F9#N1#3]Y?R:NM9
MI;:S6!R^JG+F;3TFT_I`B5X.,3V9(=YW^#[C'QCTWP7C5>?Y*[.?P%A5V=B8
MF&C]CE-R8EM6JMPZS@Y<OAX.S]&^O7$^<1^ZB2U(>T_0VGQ*.+S.Z3$B#U1M
MA7([^9OU>9M\DQZJU(>49Q.7,AU3T3E[W][<^)?U7+KJTT4D_DQ).S=-M;=W
M3COEVTVVKC1G&I!VF_HOSR&!IIST3VLT^&4CXD*GXL]-0YOB,MO?-ZVUAEC*
M1U9O>XD@9<ER&C(>>;YSV9K[-J(>L0I,FBKCLTYPX;9#*PO&\X7^XQC@8\8Z
M0VK:M,1G,JZG`Q&60;-N##&(9!X:&(N$E5N?`1X1";6?C6>B1SCWQISCVIQ+
M'1CG7=4:4>?$F&G9K3,(9D,D#Y;!%,6[[<V&#)%4V3(T[*<1P9;@C1BS3!)(
MFF"3ODRQZ&]Y'X#LTC0]A*A4\2B973T0X<O+R5ADARK,Y>)PG"R:F1SVKY\)
MQX#MB1"'+`@L!FZ$:DSYQ)T(B'F2B$C],JK]0T,NJ]-NE-Y$P58*QL@PK#";
M@DUF>N<3QX4+VE>@GJ$O8$,3IHKUP4"0F,'K&@+F/,1),$3.P-#2IRQ22N+>
M72?/B,$$D%'+EJ9H@V1.W#"&+G)!A__$GQP94P6DFABG2)EL<'Y,=1)B;'<8
MK(^+@T@:*_0HC5@RY_!`UXUL^X<SW;)3HIC)(C\JQ(I3!N$$DU[]_?AE20#D
MG:KR"I4#P8ZE5Z(\W/AOHQO=;K.-+P^'Z5X'KS75](YB)L4,ZQ,D8*Z0BHU(
M>GQSQX8M572M\9JL)VDYG8]VVTER1U<G$AL0?4O2'M#&C).9Q-TZRPT0[3PU
M(G>[3J<:4IT6.:8XWJ$ZMQ$Z3@W).T<J3:-,(W)U=7R<.L.(ZZ'D>U0]<:T=
MUJ0S2#DPXQ"?P.%(.$RU5W5?5RE.A_9.WNR!(VI4/=)V:>=R<M.Q8VC^TILA
MD\KIW?>>.?:ZGH:0_*^4.PL]'2\<3YZ=#:<'RF'*PDGH>N2#V2+5+2;5,E7U
MHF8NOP:B=HT]?0V<2!1'=#DUX-S:9=FS;;Q;M/$WL.Y7K45+]-,GE=@U]KU3
MHT84_#X/'V:>W43TPGZUBG$_3\='[5]H/,F:F4=ZKV+(2O32/VDF\5/1PTT:
MRPP9"GJYFAC4^AW3"+858^IR=Y$Q)^]ZQXX]S]Z\_QZ1Z-57FI\QR0\_Q[N:
M>LDC3,]]Q#9[@P0M*,A:"EA\!C=?OFES<C:]YO9+JP>$@J>9.[%<2<3M@V-E
MVRG-5LIMV9?KD\\Z:7-%VQS*YJ\\&97,JF.O?6Y3;=/GD&DL;=M0Q7#C&,F+
MC#99(9&3/'$W):;*M3I'5V<1%3OVO(Y.DY&ET4\W8<JJO%/UJCB6.]7R\Y.S
M^'=[/Z'[#[936C\"E;<BUHVDVZE+N-7*EB\S575NM;7Z7Y.'^&?SHZOW;LKQ
M]T'S]P+YVVF9F;*O?)UVGT.U229]9\KD5[S3J,?7I7&/RT;X&8M3B4XU59KE
M7.EQG21'*_H_2?I"E1.A[GJ[1_&*^'>/*4]JXB])I_G>%7D5F=,G[#+JN,PX
M<CAG)M6U!B",H>\C((@F8XX&6F(,3!=:UKPJ\RULD0&5<J[/)5U66``;,$2"
M,MK#A?PHZG3QK/`*?Q?J?JK=_!K)8;&>=!PKW4]/-[E/!F:@K&3T(O=$<:4$
M^$?U>N]H3?8F23)DMI-DDVWV;,DQIJ8S',;;FSB1>`_0^,S\1KLX0'&J<DP[
MC^))ZD@D4>N3R:.-%^'#ZGO=+O^<E=_CRI5G.._T=W,G2NAJ:5F:F'7.CF;-
MIR>'[T_G=QZCJ3+N[]D<JJO(Z3YK^#Q->W5\J9/:C\+Z4>I\;9E:>#JDY+W/
M$NGL%OHUM9F9M;*JA2_.1\1U>JFBBE#@BO/#\5G9V\'!=:-J%TNF8URUOQ$?
MK)"<(\2:]^'W5UO5[.T$GP]NZ/75N4Q)6+,F421%B,9M:F[^*MY'@]*:3W>U
M5Y)WG7:BHY>16O8G:,'5"2S::8\QY/[OAEOZY<4Q3O-.P<6/1S$TCT1)[2=(
M_C+74=F3T96>3,LY6XW@W3&-$5I-63)M\5[4I7O5TDZF\MZ]K>KR\LTK*DLS
M6"$"4VIM,F7K>KI>>\O,HN,N5AA3&T=)TDV1PLDI4R:OSKI-V:ZZXO6]%-)(
MVDJ@!%&:^*S+N.G$FF`7A:ZN)FXUT'&6K)9.4R$LW&HD#HYTY*H,%@8`N2#6
MO1"PLH=BR[QY.\='@'@[O")EG:KYTG@<GBM;2QVIFSAM&-XB>$OL@^8/D]X_
MMJW'S7S<9EV5/9BKO$^]>F;)^YN<L,XL_#KIEV:0LE0*9C:YAEI<+F9;@-!$
M1RRI<3H+#C<FV#H<OS$=)0/>R3T-)2^U7B_%Y&-&IU$<L+XEA-E-[KHJ)G9W
MCQ`3L3T1X/K78Y+W?N@O:]D9HD\/57GQ3DI)X\GHB')]SENVN\_A)%G5#RG"
M._F/Y$'W_'EF%0[5J/2-R-"H4T44TEHINF73G5W=M+LE^69"W16L9"-(#%1/
MMID0TH43^1I='."H71?'E.3U>\K^#\D6N'/21Y?/O#@$U/'[3TNSB;'@.C\P
M\XOI:)G]?&#'SCE78KO2?!-C$<25Y^_,<P;;[-OG'K/RX#V@]1(:NS]WA!8M
MN'$6&A8Z:@TK>RO"]6CL]2'JSTI$?,"\ZBKO1D25C**LU*H\CE'B[KEZJ>'X
MN'@]O7C.I+NKI_BO\Y5['N&/"OZ_1@JGX&%)>R\#M\36'UX\';9;$Y!_44N3
MN/O)X95)\_?WON_1_)PGYK',DAY>`_E6SA^9.\5C\GR3Z'D^<?+\C_ZP?)DG
ML?=>^H_::ZDD\GXGO^UXD]83K#R*D5[OX[JLYR7W[(+I+^K^E_7^`>=-YRJ/
MX:72H9>$_Q.E3SS?QGI>ZGS?X?(?J?PX1M393C;G*X8'\OD:0G3YT/H=HGX?
MUI\1''S^"?/K.)(2AKV?MV:\UX=W!,2M15#M+\7U`7OBJ053W23WYY]H\AI#
MU<(_EDFRV9A:S96S-".KJ]JC[R7NH/*=P?K?OS'6))BKC]U*4:V2.\3-.D2>
M#R'B!'1&Y`>_)?DQCS,3=EQDK+J6%0-S+==SY,.9S,X2+S=UMYE;2UI2@/!<
M$*E+F*5%*&90I<*EMK8);:E*M%;*3!*D8XC8-J-V5?I72_>?5TSR86MS3DU<
M:S.,<YR7&J>J?X$?,RGK,;WXGP/FXGA`8?CQCBK[40_1GZ57MH=NGZ)]#D>5
M9"KL3[!\#3^D'Z/WFXA[JW*VSKZKB9D?+1?#1*\,W?K>^:AS\S3CT'WZXKQO
M/P73,6J8_"Q,6G$':6U1\Z*?W.Z3-4GYR^)VOZ554DJ6EK:HRPJI,FDIEC34
MEJO):.4;,:I,Q$W,XAFI58T&R#:JAHU2&30\<;%'*C33&U&J/E:I<H/-CBU;
M-V<S,6Q911`HR1OF8%2LGG6@9$$9%(J@IJEF93"YE3&(RUC0>NDI#)-MNVTE
M:HI:RUHR5"UJM&LTIJ\JOVZ!\GZ>OSGI'\69EYCE7G$^5_"ACL5.=5B^[QPA
MYR!"2SG@RP\'B23LG#AR)D2/#WB,])7ICK-V;C:MEDBK,9*P8JT]L8:K%LJG
MX*;*C)0L!DZ)>1^914#HZZQ.#+5/EZUPZR8WO'"IRJJR4D3Y:YYW!A8)&I#'
M&.;EJ\#X?K-_?O6?"?:-#]B\Z?*J>"\^LLFRWTX>6/AG%R@SF:C+UQ<C\3BN
M8W'"<AMLSDVR:MNV:K>Z]=3NWJ;ISN<#<8TDLB#XQ=8SQ$<0X.]F*[OK'U]'
M#GUXZZ_'3AC7T]_E7M6>E2J7P?E]XU4FE:&E<25>>*2S1$3H?'^6-OS3]#E5
MQC*PRF5F&*SG,SQ1=M4>YI#A^(UZW[OM?H5\3*.P9%*?JPOF'F#ROD!=4EWU
M;)M5'WA6HE'O\-J4;!&`@`,``1($D$```1"15`!M@*"$@``@`@``,1L*2R`"
M@`H*2J@LB&(HE(`"-(:2D@,1%)J`*31M@(Q$44$`!($A@`!``""`"(B*``"`
MHV(@`-11&@(-M)B0"#$B4F2VS9B,S!$A2;1$D!B@"`@"*229!I#!2)1"$200
M$``@!0!!$2$``&(B(J*8```$H!L3+&B@0`C)#+$))$8L1HB`C5```````(``
M!8()"/N,NB$`!@@2B$-`;"$&L&#!L9&40)(!C!:RI`6P1;$&H`06^K?7W5^1
M\GCWZKFO7R]PO-7T3UFITW5%():E(699,WMW;)BADDI[4Y[C$?M@VD=LDYJ[
M<N%S(VJS3-Z7`1)!)5\7;JY1;;7`UZM8JA7WZHN;>);:2C:^;#;;G=PDC862
M2QD`C*"60FEC-5\V)U,R9#)FID-"*U%ZE8LF?N8I--9676$VL1BP%C69*6NM
MR+615W7577<'&L9;--',1.*V:8OG79"@RYY&FL,&)T1CHEKBC&2=.,KYNQ,?
M`^AGZ?%.C:U6O%9;;:=)1Z-<KQB)[I2TT=&^L^0:I9-'1V@>=MIK%Q4RI*HQ
M'Z/82/J?HJ''#\*I=+5X2Z^ZOP_:0^0_$44Y?I;F?4U92=X[)XOGK(C^!41-
M5+MDH]WVXDS)'H>:Y(Z^-79,&@LLC?7KW4^G\?\')S733G6M.@4VJE5*JHJI
M45-)DWKG,73"#IDE&6&9G7%>&5N9YKNZZ.3UUY*E*DDK*W%PZZK@S,9DSICB
M98&C;J7GFVW5RZYW+K))4F(K%,F!<LA;2I,A`%($@HQ(69+F2$[:J%UE(S*S
M)*:WFDNFN/92</Q9Q=$3V62.GQ))D=5CVGGP?OEF6ULFQ-BS(-<3(>(>]D'M
M]KSJ/SX?F_9ZEOI9YDYKPM+CY1Y=HY?!Q,ZUQ75)9M."?JPYY8<,8EDJF,.<
M,QAT>TZ1#Z*_JE?>'SK\3R=S\-3\\XY<YQQDFS-+-<-1G@9RET9C,:FXXY@_
MK>4D[5/+Y.R:512E:OJC0^![=]M++92HT4MMJ:>LGRIZ/3""1!CNZ.R2.9V=
MMYEVGO(-_C4D.S^<6JOJG=?4L>E\1.Q?S=%+TKH?`>^[U)[)Z3DAI-/X/H?X
MOL]Y9+(^3R_@[R8J._H^VOQOU?Q9'=P=(ZL2E45M"?:3FOIU?7K\S?EWK;UM
M\_R^>^R$-@!1)0J>7OZ#CV:B3OK)E,/QB)#*0K-$;*Z&G,N!D<W7=UU2+:!,
MU)=E:<U7)-4YNWZ/NZBL6RRVN',/H]?,61Q9I)+)K(T/6P"ACIDS),@L8>CI
MPF`K6"RIK:\-R67U?E][OX+T?5</&K+T-X\H5(>'V"6EE16ED,]`?/<P[;I<
M<NF[FY>4HB9.7LZ;N#V31%%)QA4[3<T=HFG.FW]CJJ];=.YWO1=I78:D'DL@
MS1(A760=D/VXA.&)GW4(^AX]?(\_.SZA84)R!T'U_-/4GR((AH%]8FN#+[9`
M],@?+!%),T2DEH>L?F]>'TD'Q^(PV=5-3NJ?;=2;1]Y'2)O=D2JC29C@L?9<
M%APJ3<++B8:<3215I]Y.O)]D<NA-MHM6,,<!P65:J/?UT?U%'N!V.E,P\T8J
M57M^1B&E;I5>D.T1.5$W&IM-LVE9+WW.7K9'73B2GOEBIM0:0E_V-"G&VS5\
M!W'H[J<>^O.->U_9\V>XR?!V8TTK!VC5/L,PLEBE2+UA/,CZ5<R6Q:+5NY#B
M9.3I$3<-L@=$W&E=&D>+BL5\SKUD?HL5]JN.&-6?I9JX.0]#`S34U-F2DVR7
M47;I;-*4F5&&-&9:LQ3,O">A[NGJ]*_>KKKHS1\I?:HS--M)E9:M0F>4JXOK
M7P.53M5.':+.U\^N.:13%8N,%RPRKNHT#2Q&1UVE+RG5#OE>!5X2')9Y'5?6
M22=W61$=$Y=B1[$X/Z6<Y[WZ\'HD^67;?R3647LD^\:(](P=M3-3-%E*-%W7
M&+RFX6O&VN5!XNETW>=7,1J!-B,ADC$41K)$%I&D9-D#(6LFJ2J:6IKN\R<I
MEQ,QX4/HP%Z4_L=,C/-P=W1P9^#7Z,T^E77VQMM:D;5+2G#U[=[Y,*P3%DLB
M252T#4K.:Y9(DU-4JK7FMIM8&C&$V*8D2E(8Q$B;9%92BM3&6&2RGNW3/<.%
M+C3P7=*OKOA;G!-R<*KC2IRCNO)?6O2]GNG$]UZ]R>U?JO=/X(5_$Q]*OK"\
MI#O=J?W>J/Y,?9[\XS-F;3W2GE)FK'UCW4/!]_\O4N]I;3YAMOA8/$G3Y'(Q
M'3BFQ93[5R%^,(RL^#PE/DGFQFS-8JUI,D24I),B+*D;6F9K6TVU;"58C2S4
M%^TY7V!^^=+I/FTV6737LGY.1<1E+CY5T/5=Z'VO#:#FV/9HY[OI'%>#?Q'B
M=T:>.ILEF3;B:5A-FS98Q3^+YI]`GRPV@ILJI+U/H4Y]$^#T2'YC[[7OPV7!
MG&-.*DG@P/V:787D>%4[*':(NY#H]'O.^-,65GP=Y\#N^G4GURP[(CI#A)ZU
MX4Z/H,-/".T2/WDA5CI^OG7X*L]7CX-P_=9%EB>U))]\SEIFUCBC%BK]7PV]
MS0*?(D9DTME4A;4JJS9FFVTR4NHR3ZSIS,/`\TKC49#5596'^%-(ZIS_#NQ]
M_R:57QH4RL>E9A1E/>!JP3C!RP7=+,.BG!#&?$]1B=D$6A1O$[8%NF,SFM67
M=+PR96;UZ=F20<I'+IR5J-17YHK&-T:W:^%<1(<*5PDSZ4^RO>89TY7-=[+\
MS'2LED?.ZOT-J^OB]5ZU7X5KR(2"DR,K0QFD86,B9(L)K%8VL8C#";WG=>UY
M;IXFS;[W:?I2S##(8[.[&>U>3I+/E@C%B/-=LAB-*/I##PZHVKN.[N]P?*J\
M-.0OZTN`->"OT/O$<J\URG4[7'FGI3Q['51>K4EXGU2N'5UOI/>KB>;^#E.;
M9X?%#/*01YECT.'JZVVVVL1[---(GM5?.)Y_DON>L^E-B7J>5[D,RDKD9F,5
M/=H[Q99D^CUD(XI/DR<M-/R<,LK3-O=IBJZ--,*_=M\-F%4V?=CHX;5U8Z+.
MCLJE96&*PHP:TQCE6216VFELTIC&%.,,9,/.'P2"'K)JSX![EM+$@8BDQ"GR
ME)F%(B6K@)19A948!`^,9$TT5/[E7HK&<I>CBCL?[5V]V.YJ?9(1T,2IRK)$
MC2FAP3+^_T)]R:1YG63%>4G*8L?"JJV;7\&DT>DVX'\/Y/T:;4^S'L:ZP2=(
MW#3$A*FI>^;?)?2<8D6VXYV#W.]^\%^WT/WFL9I=KR>1M;6Q?HK('TD^I[Z/
M)]'Z,;^T)YAGJT/>G^"//9F9LMF9M-GCZEWGP&3IU3ITDCYOLX@93WD]:\I)
MVX6.\PJQ3</PI5J7)VGFY"2CXF=+[EZRH;/>^`]O!3P-)^SXSB7^%8EJ(J-'
MIJQ%117S2\;7G5ZM0:59JQ61DK"EJUD7Y<=T16[)VQG>5^SX,32JLGM4O]6%
MVQJM67&FHJ2ILKNLRV2Q*/7^#':;N298V7@T<6F6NN<=G>NM1>IV72:63E(R
M3PT;2B3V?&23A*CRPCO!E73)JQ++3/%R/'\=KPQMY,E2M8/5EZ*B0K/8DF"C
MQD)1"(@B(D@L#RY28A&TDJ1M+EIE&G60KK15572TIM`Q1F6D;:`B3;[[B$Z3
M6>EA`^5)"8R=F?&?+S.DG[[T:O@O1QN]P[-5[5,>>I+"C?9C0>TPDSP#A.OC
M0D2=X_+S/D?.4])WF/HC25/N5\J5\(\%.O'EIGJ.$B1(FQ9-.[$?AT9/+X98
MZ=5EB,*4M*@_BBJQG,N&*F8[I^WJC,C5?KDYC:?OJL8MIQB&-2^>DKH]\J:'
MYZ3<(A>(VD\D:?PV_(:5*^U?-%Z$>%=J:M>A]>?`]_C(<N'#[HG:22*XG26T
MGR[K[YEQEOB(G+7AT/+B"3VI*OP2.TG-553WA7/"/622N$%I.7IPD?M.D#[]
M(;<ISC$5\LDK)/-FI4LRMGVILKUVG,C7C2#@_.09P-;B-(>HK(TL)FTL@\F'
ME$9/=)Z_".@'4I*?FPPPJL1D>JF2%67+;BH["8\/F]'Y^]7$OO'K'K([IVD]
MU2U._O=XXR+LQ4ZPAZS4.R9/,&JC4,E[-1[TWW'G4AYR'"O$[GO/GX/34S:V
M,S6M9KI7V8S,S,\%]*])/62]178\"\93V>Z_+9GDTZO7YS9LUVPN1>X>\[50
M^N*GJ>2/+=2@S'1\D3HRJLL+:EMLK&K6K&)$4F6S4LRLJS6I1220HE(I:265
M:9&:DTRE*-)L41F(WWC:CC%2CL59%L<T348*-48O:IV]WM74?"#UGDE%X/$^
MWIZD=1-DCS[?/)-L2/*A-*15)\/FF22TIF44>9KN[0R$YLSU^WT0[S:YK?Z*
M&^\P+(T&'$@H#0CEJYN&C>GA_62"V'8GUC1<C9K;#[;"`TUMD@^)\!0-1@;P
MTB=H*\.TV:,*8W,.T<CW[5Z^LK$[&YBE?N4,SP7FZ(BF>#,'*=C+)TX-PN6Q
M3:M5"FLZMG,IB*5-.;%HO2+U(:\"P?+Q.,$J7HA^:!MF+TV,'0_!**10OE/W
MJ<3),^8/SF4HN/QGQ-%DO"A[FHG(RKHE]-14:>C:>Q.,\COB(&8B!_L8^)Q$
ML@$60$U&_$#K]5-46BY0RH]%")%#7F)`M=/S2(-ZN*+1N65,,H(IM:V:U17H
MY%(.H<"N%DN)0C]0R1`TIR&7$>JFE.(56FM#(Y<,QEPRW;>N@/(8"J,1@^%.
MH<!BB`B1D2\-DAS!PFD28ZY)M)8:'`R)DU,G$EC1THNI3E7(.CAG:P4TU<75
MQVDQ*R=ARP[.$NG(TO`ZO!J\#5=C&>%'"K2M%79;FFHX."9(U#A,X45"9)D)
MM(W)A)5C#6IH@:%0R%<590W)A=FFR+"BR.(38EB898-)KC:[%U71.RU+PJ\%
M[WGV9QTS;ML;U<9ABJ4K]F&+;:KU<OR8\M[E:B];OT>=[M=^UY7B?&ZJ3O-U
M)?UX\ATKU'[/G+TFE]9CYO$7X>NED1^<.XCA(V^Y\GU88D>['W=9^#2A3]76
MR-,-JS#3E5"TM]#XX<6'J=GO(@>D23A^17[L=WR?I>=U?NR]TE3Y'9=/N_5P
MY<-&7V3N?%1GA%[LAVO"=M=&-JKWK^4JOB[3Y53C\E[\>5/-!X2GI^]!MZ*=
M#Z33O&YZ2>PSK.\GWG!>'SY_;F98A\Q99B=&'I/;\2Y-.`42)W*2Q5%EB^OQ
M'70_APF)^334FDNZ,57PKB?(/&^E2K]UJVMK9V-2G%H"7A?MA\2_F=W3O1*[
MSZU3\?S??V>7KOX;F/<?H-*_2.^U38VFV-IK+ANS;#0FG'LS;R1Z$CUUT]ST
MAW/7N<QRX\0^C8Q.DDX[(7_!U9EG^-I9FMQ$3-X(9KI'LY]$TMJ6V550?<GO
M/G#+;2&YB3'UL+@_$U?E,P-89#RF910M6Q6+\S4D4F0.4QJ'U7L/-/JOA\W%
MSW9_"/*_;NV7IG@:.C*YS7/W><CY9;;:DVVI+/7CG](R32N(G"Q]6K3UOD_D
MZOWCD9Z!Q%'OMV-'108J<=9A;%D\/F*]:^A\NVY:/`=+'V*O@4\'@^E)([1_
M23Y1$\]SNQF6'XFY.XWSI"4N96ZH^CARZG[#7"ZN;YG3XN)\:#J<1/%CQE_'
M6$^?-Y_?%_G_)]('M,D?38823\BL#A0_5AITWIPWPK5:C;Y1PJK;#^?$]+Z1
MKM=%@NFG0G6'(8_O8TL:^C6E+HL+ADG%DCOOKE'SPS#0W,,T.[.Q0V1V93!0
MBC*+&L13..YB?L03$$FUL"V0SI@W:4D!^O%VU&HPWNC@L)&2'+(Y,0QD$WEQ
MG"Q4"$%52NAK%\MM*YG6]FG;ABFW4QI6CAKI9YQC&3=TFJ['..*C%555RZ5B
M:4Q5%57U-[5K*?D[LD3AQ,AJVC1)H*!K(*$<DL%*R7N3]!YDZ>>&"^$Z/"6^
M)CE+%92)#6Q8@F6&>4S2"D$0I1X.R(%8<8DE&,)PM!X3-6!QJ$!9@<E4Z<'$
MV(V0U".8:;Z;2<K%<L.1=JMMOOCI3TZ'["Z170<)4]'<5Z*K4UTC#>K%5BNL
M1BJDQN28+;K+C).42;0XD:DC<"BE:VO--M<755O6>6<Z<.4(D?H,9_''L2(2
M(?F(=L)4D0QN9(&S]S,4-@I&H$(:&41[<*B!DB]<L<40<*=NQAR2FB4XX5PF
M3F'!/+0KX<EHO#A+U.2"8@4^OT&3,"$0U`H&P0XX@>`3JE9@D?IGH\51(YRY
M@C#M<&SC<%%[,EB8@1J=P2U9?1)B2($BBJ^FD)",&&&='C?F@ED^MDNR_5)1
M?VX$C&,1;(&ARP:"A@P&-DMD@P(:Q"9,[1J0G[:',./M2ND-1%PA`O?L0*=T
MF$"U734^-.'XPH<H["BE)'Q`,1/B.F@T_99U#.;L\A^0F6/,Q7+6\N.]->?3
M#N=)$DY!9(%5H5W%7!.5:BT&IA,C(LF$G7VD!O)Z,PN_75TZ=<[?9HWTE#F7
M(3W^%RU752*X,)O!<CAC'?D.YU:G)5J\.[D>,':9E8P.JQP=>:.`AJ+'"3I`
MW$2.&B-2-%-2R7HR&S1TC48KO:R)NG-I5NT=E<NCM;I<4O3H<UEW:VX8V&KP
M]5+VO%;-\WO;ZE\WV=Y7QQ<KT+E$O#Z]O$[:O7^4JW+''^,PXF1+LF:RT5MW
MI42@EA#H*"995:B43L4)-W+ANT<W3FKA5L,1BF-C%[)N'67EL9SF$4S8(<S(
M"&`B7VR3?<(B32E]S%)@F$00(,S*5,K2W!#&.=0D(!,,F,:5O)<)G"XL!&(C
MB18=)X/,*O<?*C>G*Z7U%GQ7>7SO%E`$I*R628S8HU6T62@HM>^6VW2QJ+8V
MQ8J)NYPTKK[M9=3['V[_=MZ56YG%.3713V'R)+W*?O3.UY69K3,U1XSWF9Y5
ME))X.P>QZLJ3M(?B622/;T?-322<1'SV:3M.'3>,S7X;,1I/;S5I;:GQ,]UR
M:N4[\_2Y7+7W#A"&S.7GT&TR70MZD,EWR,#F;=4BPI3R[@,REY4V39\9++2I
M`L1$9B(D;VGO/-#Z_S6IJ@UF,-2T9&+3P\3T?*>0^IJ7VMOP*=4[*AXO]K7[
MSXEST^M?5CJ]OGKS5[/W6\?-[`^0YF<FCC1TKH_6OT\5?)7C*]Z]?IJ&T)Z*
MF5TBO2>G!D,3H]2=OL[W!V,O5Z^ZJ>:5>F?1_)*S[V?*[/*Z'?W_KE--Z1>S
MW_@Y/L3^#]JKZ3J1.&6JGNJ%R3X*KN7V>R\!VJ7H^L0>Z)L@^D[)LG@G!]*O
M=\].-.K.L_BUWRIV:4:U)VR,V]'%4XQ?2/K2IZ3S>1>SV?5\7M'Z^M1X^U!E
M+A?!/DU9JSX0>Z//+:VC'3](?=3UZ'T4\?.I^DO8K5:G^P0\*H[X/C1-.^'$
MW[5]2';ZGJI\A%X5U;4#HKV/"OJ^5R/(_89ZR]OS'>4JLSZ'E\V:\:G\4?%3
MP/*G]]F#-8P?S<,V9S9L;9?7'1\2^$'_+Z?J=^'[I%2=.=R!^;B=-20]-##/
M*9&6/#P_9ZY:L$]U'Q#"J4K(^#Z+336H^B=,(?J^;GK\ZN?"^X^3NOBORI)/
MTI1XO(:_,PX-0M9<>9>;HY3]$7BZS,R9LV9R+C,FEJR0<_H^H],R?:I:U9HJ
M?C&*N9DD;7.6<Y+NF5=,KV9/55UX=2.6@\=)M/M>=]>?I=U7O2:'\?RI%\A\
MGA'1XG>I>@I;1/@=T?A+\,_4N&9:;9?T,9TX9TY3I_3JJ:C=)M0JDT5,5$85
MI6])F:,2:55*IB\;U-2&TL8L:J%,^@L,0Q+I9>0-,F-%2%\CY`WOS=X=U^[U
M>=X-'E6E%T<I]%_D'N>]/!/BRIBR^+/O[_LO;?*[GKXK^YGX?8]?/^SN]YJK
MBGI)\T*^9MJ2>L>'JD=QE130K@5.K\E3M&A1/1*XIRVK4S2K_*UP[OM<.'.O
M[(MJV-H5ZG(T7U+6FIJ$G;I=MIE5#Z1DB&R_F7F/AV=E([Q!2^75RL"K_.7&
M8UGU^S&,KAI*8F7N?9SKX@E.B'<.J0Q5$8/1:*K;UG&G.NB1IS(VDL2-Q(YC
M^)&=55W@^I/$O/B.E7]+'*#BL894XS]6'RE1\?R<4W8I\A]:^M_J2R/]Q]T,
1)V?U)^T?_B[DBG"A(=O*K2[B
`
end
------------- if you cut here, you'll ruin your monitor -------------------

-- 
Farid Hajji -- Unix Systems and Network Administrator | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany          | farid.hajji@ob.kamp.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Fermat: ...I've found a remarkable proof for this: Let x,y @#$!@$!2@ NO CARRIER



Reply to: