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

Updated Integers module



I've attached an updated Integers module with a small
bug fix (10*0 wouldn't work) ;-).  I've also included
a small test program along with some expected output.

One other point: would anyone object to using the Integers
module in place of the LongInts module in LONGREAL
conversion routines?  LongInts was a stop-gap measure
until a real multi-precision integer module was available.
If Integers were used, LongInts could be removed from the
OOC library.

Michael G.

begin 644 Integers.tar.bz2
M0EIH.3%!629366?^8G0`)Y+_C/__;\)]____O^__^_____^0````@`A@+%X>
M>AWM]>J#ZN^KWV\]WGN4I/EJHB>;NYS47;[*ON^?/?8>C3IT]&3M]]]R,SZZ
M[N)``#3>GNPK><W:L^>]W=ZPE$J(KL6,&FS7WDL][%`7WBYRV>YI55=[CJB>
MK#>ABO33;"*[>[((H2FD(`AIA`*>0:GH%)M1L4GZ93U,AZHTT`-M%&U``>H`
M!AIH!$"34;4Q4V30U/0C(-!H`!H!HT`!H````&F@BF1E,D::>B&0R&AHR9&F
M(--'J#3:30````,@`2:4(@@(R:34]J,H]3":)^BFAD>IH:'J9``-&0#0&AH`
M!$H13$R"85/VIM5/])E3V13VF)E,:DR9ZD&`GZ@-$VDT:8:&HT>DP]4$B(F@
M)H$`"-)XE/1BF:4\4]1ZFTR:)Z0!H&@:`T``&^YZOEI.XW%6PAI7@@9E!C$+
M^3EJ*E9:"BD(HR"D8"#`&XHA4@D""Q((`1DZ)"4&$`2($8,X^^%%HQ&L3N0X
M/CP#R'/=Q%:E858VC22WEE:L#[+LN+(+44*G4RL#"L#=P,RAGYK`P?=8&P^&
M`L=FPJ2B_BVO"E%NZ7`%UIFW0HVV5*-\%D:-I065-HI>F5\GQ"^XC9C6LYPC
M!9IG1,$HB,?PG?@AB&^+@=-RRM4M:BT?3JX_MIIBS#$-HPH%!P6XJ5AAL'!9
M++2HK=\'Z.+F;B7&V,F:S!_O\5,9I*MUM93Z%DROWMML[,`UP=+AH6V@)?9N
M^,[L43$S.D]:-";M-4("E5O:(2H+""R=B=E12+1V)<WT5)),E`?@M[W$(WDR
M[]2M#D6:QJ5JOS'Y[<N;+HQ?)U:F!D[;K%$SB\5$#U>MQ`WOWSE=7C^MAX40
M6!*'#GIWQ6(=%>X8H+LHQ5(:0*P19UBJ/RGA^+&?[E44A1,B9='^_UR7$$&-
M)1ZG3=4R2O&*Z%Q7+@H3!9A%]K.AF1DY\%04%B01BI/HXW-WE3<#%9PI'`U]
MC2OS$231.Q[UU#B34UUD6A6\8/0U;6!'+EW-PK(LD\(A";3!+)(2!Q5?@MW/
M'V8TS0)Q/:V3=/A^6UW3=6TGXV$W9`P($(3QC($`Q-%H<&'T3Z=RD%D%(@Q"
M$A!!"313=BA"P8-VQ`PD(H"P/A8$"%.TER@885HSS9**KNVK6Z'/$$L[\3O%
M5N*KJ:-$J=JA?:A?;AFKYJ<_8&C#O$9(%L&M+UCC!CJM;++6.`X<N?HS?LTO
MCP@([<`'4("GB0'1]/>Z^AV\4C]BHOAZO@_V+<RYQH$-[GFT6=&R8[)(=(77
M!G'<=+JS;X$1"4!QP/-V_V7?P?#=EC*A<T1I?STT[@B[)Q]-9KSMXEQ-2TCA
MUI=P8'^=_R9E!+%>F=+CXG0O.['%--].7V=-=!3]W7"$^C.1/]U=CHX$TB"0
ME/YIL]@W!H$<;+SFH9\,2X5(LU%\"F.)96H"Q;FK4>B`T;<-7?T(/C[.NJ,G
MIWMQAAI/!:_4IQ*:*F=HW716\%FAX:U/XZ<YG^N"K+=U59J1&=M&?.I196(M
MC-WJ,R7T=-W)7Z?%X/-KG<3R@6YEZ]CG94)W:/,>OH6BOSW7LA+2\<)R?-@&
M1`OOF7P4+(=^%U2Q1K@(-TKI/DL#&-D^7S.'#A'CYX]S1V^W@M2EL=GAK.^%
M^U90$T:Q4<X"Q@S+X=),&.:,&$E2"22J^7O^JJ\D1$R>/CX\/*%5FF*\#?@;
ME+*9NOG9A=+HAKP=%%@8PB6>\E"C0O+>(H-,V+JZ6\W,8B44.&95-539:BL5
MN*C<4*(">5%W"[3/\_^WNY;L,KV1LA-QY'IXGT_C&"2!B/JZ5$1^;OFJIX\V
MOI5!M#:RV%J(^FP`M`?-ZTVI-N&!@7U&QKNP":[,^_LF6VVW9(BI@!*>IS><
MTP]@&$?.M<SM-WQ8^0B\5PA`-7Z*GBFWIS:F#BY(LZS:BU=:\>+;]T?*9-V3
MSR/9*KWL@ZP!-5'4;9#46<'=2%X4PFK"L09S#93Z"+NI7:<-LREU9_\N$I).
M,[T6-"#GW-UG(`NHSH,DF$JD+L96!C3&T(VXX;--+(#E8A#QMT]_`CMOOPAY
MN&,KU"QV&SDP@I24)+R6SP,\HSC#>''N-KC68.]VZU)'6X>ZW5EFS*UWV#NX
M.H8Q>.+KYOD0DS=:?L'8;R69#3Y6";%D>^VW#&\*&&9B=,!--\_";$`GUK=Z
MJ"QB"C&;[X(%OKY3&%7XPVAZNP^+J:%B,=T7-*"-4;J6@N"#N3I5"[383C9Y
MZ.6?LZ[*U.[N[KY'>)5""3YD;M?@,:]_NH24&R.7U9%9)@)'=:LJOS1%F0B2
M2>$SN.(^CA"37=K?\=._EGKH'44Q#]/#9EJ%N?:H?BPAHC%>U3U8]>1UC0)M
ML&A@QIC\(2.=X4+;/7H_HS\^F3Y^_-/7SH05Q<\BNI4/7-OZ3FV?G.U=5^9L
M/-;G\\J]#Z;EP;\<HL]8+9;R5/68R7%\571`?`:Z6-U16S&F1NS*-D9DS$G-
MS8=JOLK>F/'9S/5EMFF"@^KCQY"]8?@^J0V&09H,D3'$H&F5J759RE"K$PRZ
M9!M(MJGX2*>1AOV859DMR?"^M*Z0C6X4RSIIK4SX,0+)\9@<F0665\(6'-)^
M[E?"DV8FA:X@3%7R_F$C-EJQGM:]H8ABH"=`[N[N,"7W!JJ[FE1G6^66CRH5
MG;79U9ZU5AU]G9C6N[DYMB)&]QF<`H$B)I$C*WGF:X#WZ':=Y<8"UUP4Y,=B
M&P(#$?&KL%8=KXV0U@>Y7K5@+T6P@Y%@NL$=4Q2,^TC1&/G^#`V]:,[..QW9
M/-/RS?,RP&:ZY[NGH3<SZN`]B-ZYRBM7$9]6ZHI\N9867YJPN*?*><U;+#<+
MMWV31WO-A/K8T2DT;VQ-K$SNK9PTE3:8/1]OLY>:FN$:]2J?-7WN%$<3IF3I
MN4&&,%>%#/7@$V2WC?#@IQ&B2E*&(TUW#)ZDWDIYV.A%D6%`5455Y\N9<[@!
M5-TZ#3/;.:IPR>@4M%-%$[RMSX,"<D<U`QXFV05CN9Q],RC",TT$.[I2'(PV
ME^N14N];EE5V5.3IU'L)H!HMD[:,)M)$>$T0AC5+7(WH2IF-6_8GM3ZRQ#?3
M!#R\34N_OUWO?Y;YQ+\H1ZVFR&](&X3RZC@[ZR4U;E\:ZVBZTA@[MDSEL3&>
MK_O5PUG%9N-VFY;JX9N'0E,I%<#$<E:*(&6(D6[=4J5IBQJ!FW<83%H.IRY9
MQQ#@VS"X;0/`=&Y,TLKY('P.CIUW/H.A[8>EK;=JV%GH-M)O83C72JS(`F,G
M+#0*Z45B%*29XY'5IOVQK.7WE]*2..C^_X+0U\_MW_.45-P">[T;Y7Y\G&3#
M4/]F$*?LP(OQOK0%26?DW;_C"%2$_S-(/A."QV>.#W(7G"*L8AW?0=G1*9Z$
MG5[=";4_M_&O3<_#_F7UD^2*AHMI^ZFV+$&I,#?\+E//;_?;M+/P(8'5S@M+
MS33E%3@Z'#%)J_U,,8Z<!_3MT.V9KR4,<;1KY*7Z=-63YO)43*'`S]==WT*^
M.YZ(U8NYW*%C(L]8B<<;9R-2?=UZQ?F]L_5'F*+;;QL*U(C>4Q<</W?WDD.B
M7HW&WCQEK3RA:*9`LZ!Q3V93V@9))]'Q+<NQA)GYF%,)6;,*B31PJE3`#)@V
MVVC\#$'Q!3H1-_,C`:K>SZKII!%2#*G@>QW2@`>/9Z@H^N.P+IN@KO%!KG=F
M1!.\6O1FI"*/K_Q/-G3*8LN@$%T#/>5BCLM^=KE$4@=@\SC2M&YV,2T#-[.W
M32TF8-"63E(^88L;872R1:?G_4()0KO*F-5$8!73*?##B,QVH_Y1_,(LA_U_
M#]&VJ7/[#$8CQQ`<18*"O9STW.W2WP8+RRF"*[49-6.VF6!^$6"2>[WO\G;U
M'?M^QTMDA;W8,(4Z:<<Y1E-7TGKW+*#BG.!5#RAC7^DU>2D>&8X;63)NUT..
M;W9TDFTMF_'XP;[4R3P<C^[=^KLV'"_&&S3TK#A,X33O0*GILYYHOSGA10YP
M7.R%DRK;EWTTEN>V->W-XQ>W5LXGVEU3L=ZA"F;?^\=_]"7O.X,)8%::K\K@
MZ+=M\'SU8J>LE*G'2(>>D;=GUBK2[;+OP#'\J]]D<A$#)?OE1]M?W(F)?;+P
M\/&?5TZMMNV'/B"HLB^'*;9L<+6YQZ7>.>O"N?13Y/@59..@0[6M@U-%]4;Y
MGAN0_\[I'@\B&'WN$U]MM7'@SHJF->BNV&%5V?-JU',(VF35PH3H2221!W9G
MTCI-3:2&P=IET)LK"YU"'F]7B9/')>SJK#3`(UX1LU7*@ZOM.=.NHT"KNA;V
M%TTX=;'@>O5ZWLA'RA7",M^OVSF-6N%7HB]K%0A"!"!T,?0(&83-8^V>U$]?
M_?O>Q912Z*B>[`,*^BNU%A,@[LT3S=N1X7T>QD<3V4%?Q5!Z;25<IIN\M/3[
MO'MCW9XE`_7XED3$/+W>(2"NKSG=3\(XGR_?-\Y*CSD?BSGO/%-Z%E>_9[O:
M]Q>;KB)C4-1@4J-X3L185/O/YY.*+['Q[MEWU>GU%*#JALA@RP;HP'4RE1XK
M7-%>LAG5B:-BKHB=Q3+3^X]U7=CE"WOXT`%?MS$WUW'G1E(@)'CVURDV/F^`
M..<#?2N@\';Y'?(?3JY7SS/DQTXV\M;]RT8QRL+RYT"9':B4*CND48N\U3.E
M4<N?8%:6\GCA7JU'OS7^1/HJ4&A$YT.;,'QVN?7^<2$6,59;WAG*(7G;VXFU
M4HY3K9X5[\VGNJ"E%:K>>%;+ELU4$_GYO1LV[7!)#:'()!0H`4J>CCL5CJ.H
M8SU^MRO054^/VAJ%`HI:#S'A'E697=[HNK4\HC;-<_E<.'&5RXM`0T>;"O@>
MHHIB?`B1C%W?IX;='9;T1_Y^2]I&C\/$?NV^%F7COZ_!6&)I-PU^8#8RQ+EH
MMSO>N'J/P%&][-'1DD'Y?E'/PKVO9U0\RIO0H`D`2`.H4!WF"E41@&^G<5C6
M[Y=-IM]^V/QKERQ[%C@"1URPCTR0?:-0,J>$(V'AW<J_-,6:;)>=5<FG:!3#
MD[EGB%@B4K`H`ZX'SO-HX85PT-76,.(XT[Z'IAQ'^S,FB\*W`<(R!E#+9"GR
M*PAU3=6)`XX^$SC`R1OD9K,54!#3-F[9\>FH)'6WK[(E/*6I:>@W`0"1#4J>
M6MR"5":4""X@E\2A)8FQPFJ2BK(Q'E*.U``#%FOFRT)_9>N]-=#8=Y)B(&'`
M664YA75G6A.?;@7:138A88+J^70QB)&8A(F["TJU>'PE6M1*B1WT3K54Y%%*
M`=?"CH"'%W2&9HV#,L,GVY"2G,9D0S]EVSO,B9;-4EX,[TAH?FT:IDMZ#60'
MPVWXO#/U]MM7N<2)Q$,2C*%2N5KB39EU=5V`>A]S'LVVM0+BZWM;9K,5TE>N
M?G&R4JI@?G^E]4]K#FZ^R6^SNB7MNS90(,88)38!U8P@"O:R[/REIN+HTQ1*
M=3B&MMK*,H)K>`&DMMC;;&-_IO32#'/S;,C77"TP+%`8F]5/CLE<%7:GS2M>
M<IHJ@%F/?C.+F\QE3'%14F]4NIE%;I*S>;.X[>Z0\SVJ'":!@F(IM&=_?@]0
M91=D!$4B/7GKM/$XU]Y'_0J(6D"[8:(.99J(-<1)-0IH:J>;82J2J<,#`0()
M)8(V>RNS/9L50LX7HSQ5VQQ'87X7`;P:KK@W/DVS&*E75$3NRJ`(A):#N-GU
MR1$R)G+SL[&V0N5QL[$4N3-N:TMLHKL;L#*8<.YE)@B9E392$-&B:%M=4;".
M.*,7NR7L$^L#=8@UZ-"4Y1&8AHM@LNSJ)HY8%#/?A$JE,\Y*`3ZWF2=#QN;+
M53CP@UVYUV.T[`E`D&)6F5`$3(M9:VV<K$!VJC-])"S=OD%D8WC+Q#)F\!E2
MH+0)?69:GLB('0%J1U#'F0C#502@XW9I3`'3I69QKM>[QFK3E0>4Y"[?$T1F
M[9<B/:9YR,8@,EF&B#&<J9#2<OA:=`$1B*>EFHQ,P,.).^%&0+,X<*<KD"E+
M!\3625&#D<3>GCA<]0QI>K:5"TIV62YVMAJRB`R@K*XE:M71<`L6=4H8J)Q2
MR4`+%0`$Q="J9W%T9NYLIB5<-"U#AEN@U9NAI!6PF"(.<,-$;2&=(G%%5+L]
M*[()<A740Q!NDB?&SF,UJ'3-AG=5`BA(I60PHY5E-5S)D88XUB#5J%``2L@.
MK$*1SYZ]6F^%UW!7M1%&@XWJMGXHO++QGCCAISG":E'W+KEZ;:%9FIJUDN@M
MS=,3$HK$4T`&N&O.!#NN6K``#%``,JU4M4Z[;;=@&B6"=[(UR-AII[>E\<LX
MUPFC:O!.KEX9.%9N4DI<3:%;5P#I%U`9KQ(J2]9$R5&(M[:6K.$BA:J\L@`2
MK:*1I`H=REY'GIF);T'91,FF9YM#FFP')J`&ISJQH)$MKM<XH79EF#7BEQ>$
M1<8#`MAPK3;8B1-*MQ3V<#`:[PXB4C!#0X1`U6)4Q;PS2%)QS)+0RS7N.]$`
MS^OV>_U]9]_T>[Y_!O70U='1YDB"<TPJ3FTW>$X<YU:<79V^EL7)A+500H"8
M(R*0@&"*TO3YY`\\DTQ9#X0LW_@QN'5-(IXTCZ&L]QA?-Z*-?H,MN.V%RF%:
M;*`DM;Y5WX5:X:*]=;,SU503"!,A)`AIKO\:A]>1`$=S^S73CTP5G;'TZ$%P
MUD77:X6K?SX7'SO84."#V!8Z^YH![=Y<:(FGKTGR8`C(D<-QK89>WC]'6U$;
M-=U!/IU+/CYS5Q&XLF!P8Q#\CPPZU4*&(C5#>:\\T9A"GRH([OV>["BYZ;7L
MP:K$"\303#;2C=YN&N^5!V\3MS$VHTZG*4V=F.FRP@Z;18$(WR)1'3+CQKJZ
MK)2HH6=]Y4%@B`^1"!6K>[9-/+#B\$?M7)(UA:7PE6HVO,'ME1BG[W=Z3:,!
MUY5B%]/Q,%*!]=UN^]^,[SN9M&!6:\AR;%ZH.4L@2="$2=RE"'J2I3_(1ON*
M6((*2(>6^42Q%%P8KAAEG+PZKB#JPN+I&VM&9P5X>/><V9L2G:U1D4\DQG`E
M*T;G%.O.`7'[UDLY]N,YI!Y2F-YA2=3U;BDX>H$:RJA25)PO:8-*BB-%]I<L
M-RG44$ER"0I"GW)22*,:SU/,=;#5@'W+\KB"I#8?!X0%^4NN)6S#VKW>SY.^
MNOJ/L>8J(!F3!4\H.A%0^?KCU*369E]4=P9<'$[)&W(+401VN-&]+`5[P+%<
M51@\6O&C(GF:(M2BLE^(AY$XMR)852,PI<EGKC/8Z>3D'0@5,(,1-%6%?*ZS
MF/3R&\U8B/UM=Z:BDRQ3T!#;OX_63P?4!'<>K`U<I\'K/*>.R[UR19V?P<([
M&.N`6OSU227XF(1]C&1$(&T[W<33\,0PY=PXVL^(&DO'B8'Q,PGT3<->++WN
M;`:\*QTL";!!:C!=J%L=`.'5Z:F6"5CKPPPV..C6#"*@6B2"T.G3J(FM%B>Z
M@=[V/)X,K:4FQ$A/)]E]W$DTNWO8AV9,+?5F_PC/PTIAV&UTO2R-"#\QQ&T2
MLR.I6I$?V$W):KIQC0?E7`M>4DIVF%^6F)S^.4F&9S<ZK%#'PZ/S[_8'11_G
MO>'UK<5U#>/.[:\)]30/#RZ'UG@@(%D/'94/<_+K)P`[H<9(&0];UT1NS%^_
M&B'Q/YH)/-6]EW+^Q]+N860C@H]B&A'(0J)!SA113!02'*)]P2_<L.5A9#SG
M:)!$01!BBD)CR62_)7,>93U@1UM`2\,60J'L3W)`WP-GO?:-Q(7)!B1,)`(P
MUL2+C",$@I(K(#&$3&O80Z*$-6LT#U>^T,"MT537@)HS0Q-YHS?,WBM5L"I<
M901\XJ<^QRPD4*C0OQ^A?/"VVXRZSGPWG,4Z+Z9['X40'T!.Y`P(!B$0BE+%
M&VM25B0(?/\14Z_N^$,!;<P&%8&(#<4,X(\8">J2$[.UG:^.+,1&IC$*8'QH
M4Q+DO,#ZTAT$221A)-&SL7?>516(P2`L\PT9%A!!5$$$9%5#41BJI)%+B*'!
MA`T=_@`3NU_%-=#8CH*"4#"P-LS:=++CG><B]E$(D(H<<$3M72X>EJ=P'<HD
M>ZXYQ*F4F(S#/I2=74JZF3X"*FHBM#0HM&V[XAAK\.<3:00Y5"R(4Q#E`Z_*
M0\)T14419644B(+2TJBS)0H000QL9T>14HB&;5.%&E<TLME'%QZ<A@4F,V#'
M#L![L@>]Y3.*.+.P,$&1Q4"@6`<$1"@"9ITNKM]C=43$7^:'ON<0B!T<-;:\
M\\B.>)2()2(5F6>&/5U4-F!U$>T!S[L7BJA""4,H7#]&/1:M%@*'ZS*R?8:?
M5T5^QD^^DQIURI081%(21ZSIF/NI(($B[+<&P`D#3'2:`(8TD7`08O9IG,-`
MO>_+J2&">MH':!;2B9DGR#"3F*BB,&%("1")%$$8D@Q8B*"#!&,42(#"(M2H
MV6$D[`Q@"8)`AY)]/<L2`@;%422LQ"+N($^"=VQM"?9V9^<'(!!(Q()!D`DH
MJ/``WL(J'-I!1>R"!F'MA1+)=<\"IM[;(5+'[40G)3'9XR1@@FT$6)(0B,C$
M'$-"GP><"G8;T`T@C(H0GK],&K(%C)]3/CC)@I1/0<S_U[W'0U(L`9`8L"'7
M#640PR::.*58"Q$DZ`(.T#Q"$\9.(',Z.FAC"0+$41`4HEHPI%)"ZD"&\/*$
M(WD!#B&$&*,4!-CB.FQJO4O4*"0^U<%[>"*>?RC9$=J!$Z19!GX'6Y"D0W9*
MP5VD[.R!Z29.N)#K""!O](R?PZ554)"P8-8ZU'(,WPSI$,>7?99U)1%,:F2!
M($P[66A9%T2(+1!!A:4#B4D4LD")KY5J_U4V_TL34)6Z(#F;;&-%&1."@O89
M^/D=NW$4@A=B0([;Q]U_0#RR$+Y6<!))Z1(LMJ11D6]X4%`#-R\#H1_)<NX"
M4D')JL,%R/H%$>;7\6Z4P-W6=55Q8&I$$Q?D2#R-4L8&-D,,BFU:L!2B5"F3
MSI?L=,[3]MFT%G.^6XQ1-$/N2C$`PJ*P9@I`^UME\B)1-:@:`HXP2MMIBX`4
M&,%15.Q*C!P(4M.@NDD*!1&)@ZW7:^16ML5KN"&2,HB\Y10#1`ONS,&0.R*2
M%$-W%%EUPI#QRF@8).:`FP"[6H:68$J533(C$8"!E4RH55`U=3C,*7:0HV/U
MW;*:5M4MSE()1$!`RY*A-/FY.?;TPB4UF$)>F2:%*T#AS=4NJ?96271S$E(H
MII$E*Q,@DCK:9(0A&/8=QV8/:)O'6Q^^'Q9[]1">BGGEGEM9DH?>-M$'7FVB
M>CH,L8_*XEXZX`P9"W=\&%V\C(J9W8C!4K\10).>E8)6P+`O!NF]W*`(]!.7
MV4R$;MFD+(5[XFC0?J7RJ+G[$C93'&P1#%`YI?R5)>_>W8HP/F26NEZ#:;?3
M_$XV%[:"(HLGYFT`^DA@^V.D4.C\%'YOTBJ]-4&>80JC"K^$8>8:S]Q94[RH
M<(5ZG*!8C)3#6!D=4A>T&^"`@(%HL;XJ6!L87@&,7#A#`N>.*ZU5/E$;0V%(
MJ=<@R\UDA25'>HVD4"^^-@S#;"-6DL:P8A>AHHQ<_5D7!TR.X,S@1"FP3*>L
M3)',XJTX4-063;&9X*8A#'C&5U$?$PU86+QP%X6(J#.+5X;RJ:.@9J3H1<;+
M()&.M$HB<:'>SVC[@D'%1[3RV7J_FN#!W\YU9J1@G1&8Q+0('U?_W<=^OM>,
M/-#:ZL[&E1U_"IJH@OF<T$1GFJEKEXL&CU:HJJM:RT"EE%4%#;J%(;SRJ8(S
MWW9'(4)2A=%1R$?:&&@]%ZK:*R%#1C\;S+[SN^N(L)GL>07?`/&0*WQ7/.*?
MK*`#SM98G4)*E249RDI;L"'>UC4#LX#MU3.74F25ED9ZJ(O)XXE(ODL??S9G
M((Q0)'+PW]A!N1D)L0TWMRB:$ASL>4&VU)07&^T_4N@""A3,&N"Y6&9^/=3(
MX?'S\A,"-M=BWK3(C,YS<^@.=8;AL)N0+<8L,1@EN&P`PD-D[I#>!P#Y#4@P
M#]XZ08V/)[<!5HH;$<B$L1Z;X-H?49KCLKG^:5]DB(TX-O,EKR9K8$C;>_XK
MT`>!X>'HYMP--<)6'T_DLG'U4\_MB'I@BP&G/C/7M#E=.!#,O7@X2<!0S`,@
M\177OFH*LALTM71*RD5%L#4**,5UKDC,&O0"R"B?3>"2*%H22]XP*4"[MZ^M
M=1B>8(;@FLE(I#9!3W`HP2E-]K0D3:`[C;=.-4=H#"EVN`I+3%CHD.&P:R.Y
M+WP53X@J0\3:4E-TR!U-+I;3%]<P%[54%D(-^X:7(L7T`][KZ@]Q,KO5_W"F
M"3:4YI>)TAXH#/RB[%C-@T`P!B2(()`8('G[0@B!SMT>_U)4TN:,_O+O)Y"\
M1$BW&U9O/O@U"Z$(#/R7CR2&3E%%$5%)/JH'=D.@5$G9WG</0[D7/@$0$';,
MI!+38@:8M@8;S?)'7Q0-S>,18,$BP11&,1/`#KD1>Y+RR7$Z\_D!GF[N&P:1
MY6%['[R[SX48I3BT%\RQ&V+-&D%1&,.H/.?09QFM@<7V)@@'2+9U]7S]])14
M'MDN.!%C<)FGV:9LJ<IYIH5DH:,NF&A[BQ`<3UT+6;J!UI88$D.4&_A*,R'O
M=5RX!^"`X,2T5NB8^;-=ZP96^EP++-0M.Q(XJ[X!X?=;M=-V&`".<H:6@E[8
MZ*#*$NFH=-*:A#/>?.&1O&#,>F8"\NFM\7,J-T:F7))E"@=N6G8Z,76I$\?<
MIP2'01O-BS>$.,[)=4,*A:6+RM8K?IC*6)=N2;62#*D&W/ZZUO0:#]GI.(@B
MBB)HYCI,1.KAK*YQ=.PZSJ<HCR)F3SV0>?E!88A`FT)C12Y0%(B@:3*)5U:L
MI0==Z2FK)4V.W40#:+]2Q=U1NQR1J7L6HOGY5J3PADM23"3<DH;%"N(!L2<N
MQDZ@&(F\AHHD-,"1`@PB,9(,P:#C31'.C2VFDF0^?EK$XH)$J`DV2E(TOJ5N
M2*"5I1DZ%H6;\6K$3JX`3/,/J>"06B2_"R&)VYC"B^V4C)$-T7%`YEV;TCAN
M0,FXE.4QX=L".$_KV`XZAOSAC2O]*1RB,TTJ,(*]A'L;ST0`7)'4!@(,+70+
M20S=;D,00:*[XX`V4"+1PYA=I4/B%[X&@D9/U(+_6"60K&74E[?QTP6]Y^PN
M\J8;#1.1I:`;!#.0Z3Q^ZV&XZ/094/PC40,:@$48%MM2[%HJBGN>I<0/#R=0
M4^Q!&EBVBUJ$Q'P$@60Q,#^7>/24/M<@`T#L:8*'OOUTYIH-3ZV$0]\%S5]C
MQ=WH\\8!>(S6!$4<EI&H=6*JBF&4$4DH6^Q(#`T<5P3A,5%'$O3B;@;&2&$1
MF2EASLA-($P",W9N(S>328U/81VTIDTN#0>Z_1J2(J1!,P*.X00N3'T9QT#7
MH/"`YN$/?"#,98:2A&0;$;C3?UV*`D'W?OJQ)ERW&E1&8'$8&D0"XHU>Y&]*
MF',O_%OI0H'(QS`L"A)X(8A!4@=@9T*I%=E)12((AD,9$(^5E%=7G[JA>+I@
M\'YL/+M76<I$.I3BG'MOHK-`=D&VXBQ[@H<D;^)T9``\]KDCGTXP7VKF#1:6
MJ2H;'S"4(:NQH(VYBH'N%8[<<)F2$,40XO+J'(\QFFX9/9=0HP.[;1X;GI]A
MJ=7983J3WD57JI!(=-`ZMD8Y()63`*1%=D]:0R'L3M*@EJ02:N)5WO9HHE@,
M"X%5065FLJ5YD=5ZC=$TK-4XNN@G`&H7OH#K2J`6''3?T=9O0:B7+IP7?<[>
M97=CJ$B\0>HTIB7.7D/%,S8T-(68I3,!DE0Y0T`T9M#@B^U)V[O:R)>-^&.%
MMRO-TD26E8#-UQ+-FJ0`VA">6`E8:)!+`C!\A7\GC)$3B6,;8#V;M\FFF[CO
M,*7&AHS$+.]@-O!+-(,5@FI2+&PIEA'W"<1J38&+26BI.52$A31K'+B1ITJC
MTZR/J>&">AD(<7OU>39OT[;2<Y.)@VY53U,PR&X%JR998,7C#=(*'5J"$Z3U
M#'.^3L020!Q#?JT&V864PDYBC$!E"HJ9V78=4(;P>TZ$BCI11$053%EP6&%\
MMN4H(+.['H,8<F>R'-J[FZSTIBPMH*:N#P36I"[Q$5+2X^A_6=AMK8T5_(;4
M>Y@Q`RR!\0^@W1DL]-E*XH1VZ'<M5AY%_H,6!0ZT"W;U&-7V0_)NWLU#E!0*
ME33R;^H1C_PAY"VT9>Y"I]JE-&;Z<E"L/`!UI4EP^XFE("H+P>+/6T$'C5O1
MC2116"3+#*I1B@CKN[)FE)P9BU$#24J7(X'Z"E1MV0R&#&KC,J>^:+U_'>F)
MKB7W#W)>)RA#\>)*Q&>^]KU\:3MM3%%EM`[F9'T3-T/*D+;"X;=S!*8X)B&]
ME9%`7!G`;95;@+,ZH95D8DTT+VV;;)80TAQ`W"S!DN#;!B1$RIVW!@U@68$I
M:LL0V(8Q-H?+4A69Y<4`4DOMP)K<,:\NKSZ]=@D,OHJ45(@SUC?$MR'8[+$Q
MZZ'/)>903=4)`-QA8Q<H:D(T.!Y7A2H3*%D'&G+'`X\M98,Z_N[(WGH[.G1@
GF8@JB*N<R&N7,>5VAI9+&8Q:2H<XE"7C+@V@+]`NY(IPH2#/_,3H
`
end