[comp.binaries.ibm.pc] v02i047: sortf, Vernon Buerg's sort pgm v2.32

w8sdz@WSMR-SIMTEL20.ARMY.MIL (Keith Petersen) (04/08/89)

Checksum: 1083319908  (Verify with "brik -cv")
Posting-number: Volume 02, Issue 047
Originally-from: Keith Petersen <w8sdz@WSMR-SIMTEL20.ARMY.MIL>
Submitted-by: Keith Petersen <w8sdz@WSMR-SIMTEL20.ARMY.MIL>
Archive-name: sortf/sortf232.uue

Vernon Buerg's utilities for MS-DOS have always been of outstanding
quality.  Probably the best known of these programs are Arce and List.
But he has written dozens of small, fast utilities over the years.
These are usually tightly coded in assembly language (and mostly
released without source, unfortunately).

This one is his Sortf program.  It is fast and will handle very large
files.  It includes many different sorting options both for lines of
text and for fixed-length fields.  It will sort on multiple keys too.
It's surprising how much functionality can be packed into a 3175-byte
program.

Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command.

checksum     size (bytes)  file (between BEGIN--cut and END--cut lines)
   59422        15691      sortf232.uue

checksum     size (bytes)  file
   63563        11366      sortf232.arc

-- R.D.
]

sortf part01/01
BEGIN--cut here--cut here
begin 644 sortf232.arc
M&@A33U)41BY#3TT`7EY>L`H``%(2`!0`M&<,```,51:QXV5FPA4K'@RX8.2!
MB@!&R!QA<P0LD0DG#PTP>6@!BH!$+J0(^-5%0"Y#`%8`FZ<*5R@!H\()P+4`
MP*A1`HX9>!D`@#$#@`3X-#!&0`"(.PQXI,/B9]!_M*(T"Y'(PT9'PWX!`N"H
MH8!%=@PL8K"(C@!%P53-(P6K@2J($BFB@S(`W;VZP0B@LU+750%T#PR@"W$`
M79/"7PH/28`N2@)=`PBL8^#B9QBC+@"9\"/@'MR)P!9=%(".3X)07P0L`$;'
M`$5:2:8"\A$4`!T*!SYX^<+/A6B1+D)Y=`2MBS*AH"[38C*U@8(I3Z10,0)"
MAHL9,D`,>0,GCYPT9]#0`8%B3`H0,7+@J-$"1PX08O*`L%)&CILW;D`0<0%"
M2)WZ9SA7A1MAU$$'&F]\IT<99(!`1AUPL)'&&&'0D09^(,`AQQMHI"%&&G0P
MZ()S)&@``"0+``$`$!``H,")!O0$20\]U33C2RWV5```-3E7A!LAR@%"$DY`
M4045()B1!AME@$!@&TU"``()`A(H!I,@T/$&"-R5D1^11B(I)0@G-D&E`C\&
M"<(31X:9Y))-/AGEE%6&<6636G()AY=KMGDD"&.6>>83!G)I!@A0MI%@'B3\
MV.`;ATZ1(!TD-A$&'FFT44<;('0*`R0&@"!'&6,D2,8<9Q8AQX9R2%%&&&2D
MX<89G9(@J1P6SMHI")^&.FJI<IR:ZJH)@G#%=[G2.F4><V2YY9DPP*!#M-/"
MX$*TM3I'Q!-35,>ED&Q46)^H9<111QJCDG'F`99BJBFGOYK:;!EXC%$&@PR&
ML&X2;L!1J))8HA%&L_>1"^RI^M("PU0\"#"'`;KT04`ZQ?`SC"\XY=+B"M*T
M`@@Y?PP`S2#&""!./8E8D(X`@PA30,L/Q$+`-.JD7(X`TXB3\C@".**1`+/5
M5L<#NQ@1`"U*3/6P+O,,D,X?_.SR#U1(3"6'/J.D5E5)@>Q#!P%W0-QT.F/P
M@]I7'I0TRB$P-2)``2T.L@X$.Q(0R#H`$#"*&@*$PK/,!3P`P#3HC'+S(L-P
MO!H=R-QCP\VCL"'`,!YTM9$O6ZV0C`(,T%'%+R`,8`0K/(!0!P'AY#,.$CPT
M0`<0/+Q`AP*ETX&!*JR(`\\Z,N`"``FK./$+&0VLU58L$+"T#@F^`_]+*0.0
M;CKJJE/0.AT,Q$Z'-;5+@[ONS:_R&46SA0Y`'0G\LHX`OGA05PP`S`;]^>F[
M,0#&=84`P"`^F#*`#G7`0"Z8`(!?G.)^H9M-"/Y7!Z"LC&0"6,L'AG$08Q"`
M"8NX!CH44(!%6(,6"IC*"K8A`"X$@`[N.`80A$*"8Q"@4[L9QA2B8(41YJ(F
MOB`>Z5QG`.T5X&3I$`4`2!<&.0B`!2#@@13J4("?%`4`/!@"$P'A`,X0@`=+
MJ,,"J,B9G!B`#`180AEX@`4M<E$`$M`)&,6HF3\(X`\\6`$=4L"#%M3A`%1T
M(R#6X0$>1.&.9T3`.CC!`R;4`1/H>`(`Y#")4?`!:%4TRCH2@0X5R8$03EB$
M#V02B'_(1`Y.L\,_5I&(3:)M9:1CP1U;9X>Z;```F32E`DS@1E*:,AU0^(<N
MVA$`=,"``%[(PA9D2#H8R*$$/,C!'4*@`G(H`AM[A$$QY0"!9-Z!`2R``28F
M80\3<$$``\"&.-:!#\0-,Q_KR$<H),<Q7VQ`+\(@@"Y"Y[L>*`UB!G":$[`6
MB*]@0W,<PX4`A#"5!4BC#@I830-U08N)R4`?T5!&-+`1T8E6E*(2Q88*[#$*
M,WS$`F@0@"XBH)=/#`"@TEB$!_KI.X*&8!BZB(%>%C&`>=;%$0-89V=,<+,5
M&.!F`S``WT9AEA&B8Q`#D,,">*"!.C#`'@;@3`"8B`XJ`&`=0T#$(<S0@"%T
M+6]SF`%4I4H'!.S``X^4PS3H0(+6U:$9<QD`#Q1P&Z;2H0*B$`-I1@``4.AU
MA.O0!3IP,`"M<G4(Z(C`54VA4Y^Z8:>0(\/DIN`:`Q3U'XMP`,]4PI)?````
MB%L%*/`@`%6$0@\"6,4BIA$`"Z!V$!8@+0!V\9)?[&@`U_!%&1HP@!LLX@E`
M*\<?QI$"5HQ5``1H#0^*>$00[$`?<Y``5)]8!P38XP@#`(19[`$-58B#&X,8
MAF24<8`M#,(`CPV`'"X0"K.,P@X"\"GDS*+3'*!7`'(X`!9T<8F)Q0,?PS``
MQT+Q6%\402](J.D.],*W4,"7(HKP05%FT4&5]6VSF'7`8]&AB`$<`*;0TQPM
M>'!/770X';#`QR@2,3E=<$$O,A`I]-!1`P$<5P!?0X<3`C`,G1CQLZ&0+/]"
M"H"P)<6C<W!:)@`0"!]X-&\H52E+`>#24`R5;3H9A%``@(Y]J#<!OB-```S`
MMG6PP\HP89N#P6D`(U)D!?_8J`D480&AF"`4`^`1,$YGT*\Y3@ML9MLBT+$(
M>9@@LY\=1#X$8(</:'(11G$`I'WFMLIU0X*9A?0.'(`%_-9E!'TS8E`A9\1_
M:%@`=;A$.BX!@""_+6_W,`&@^SP`7$RM!0`00"P40+AI@&,4G5YS4-T,##C?
M^;,-LT,51F$%`=0"`'-V@)T788$\2WDF5)[*M3/;;&I#.@"2?H@WNN(V6OQ@
M*H[PAAP8L(-@T,$!B[O`(I"Q#HBI8&)KN$>F!;#I3H.2T`$(A:A_"I-2G]HL
MZS`$.MK`XT6X`+Z9?6P4/*!2%G,LLRMSP7$AT)J6O2P=+PM&`1S1C178@W2,
MC@`Z4```6@!A*A^0`P':_;5T?"$`']CX['89@%P(Q>53R<(`7'`S<<!"AE&0
M`FW9MR/?`%<1]0"$<,<A`>,:0[L%X"XBB/`/<<PCO)(9AQ:$.8R*"X`6/M#V
M2L^>]I="(>G'14`=5$`+%DQ%X>@H@4W>0`!#(`,=';")S`T!#W14P":G,P0T
MT-$`F^!!GFW0R^''CH5A4$,!#8B6(<`Q#"F@@Q?_T`(Z>C*,N)^.%@F8"M*M
MP#\MTP\=9)H#/6"A@7588!$V*$3?V,:(;$B$%8[(1B)R+P!3:SF8PZ3AMAW0
M;0OP?MS:X)BYT>T-G>C^LZ/0<GX5F@!T'D`7]TX'`.R!CV`.(PI7D()8?`!I
M:KO-$<)012G;SVE^YR.Z!]#"%[)0]G`O(!D``<(7LE#V<"\@&0!U`@R+<D6*
M`2A5IBSRD$C`HG2++#02P.B;(VTKI-$"TBR$HV_'#"P2``"`'`([T-$QH(L*
M@72DZFWI@N6`EB]9AD&Q,H6@E$7><AD`8(P`""/B].4B`&#%OT7S%@"K0V"!
MM)7W:I%A0$U!`Q@P#(%#0``1F0!&!AUS*"RC.&]=OX8%9S9`K@(`H`+B`:..
M@:)'Q=6[F66+%RS#()Q`-X`,``4`/!BH8N]8`#H%C!EPT&".BG^)'#P2$#H2
M:0_G2%M()R`6@6GH1I6C"&S4)P&#?)@.\&=`.E\`0IF.AJ]!``"C3(<:O<*`
MZ5&7!(2L1!+`/P/40U'?82#Z'V?W3,P>-4G`J$P"A`L(/SN``?2ARC>?/<#`
M;4>U-SGTD3H4^OD"U'?;*)TX9$-JBSC`F@>.8#./*1_8P<I"^D54("/(X/<+
M&0TD.(X`CFRS@CWSD.+(,!<Y-:(+'@I0(H8-^L*A(VT]Y<"')<9G'GRFL2=`
M"@:4]X<@Z73Q3Q<'?#`,)"5!,@`:"%-/4E1&+D1/0P!>7EX%$P``4A(`%"EJ
MEB8```P-%`0<*+`@P8`)$B8`,>6)%"I&0`QYTZ9-&#=D""H$`<)*&3ESTKQQ
M`T*&BQDR0+0`8:2,&!`Q<+"`F0-'CH,&"RI<R)%C$HQE\"#<V%-EBZ,M<"8$
M`:6.'#AOYI3AZ`+2")A#.1IY(\<B':I6L2I8"D)*&8MRULP!.R*&QH5/X-`1
MZ6;MG#H5P\C)`W9#R:P_[;Q9D\;-&1!FY%`$$:5.FC%K0`@)$W),U0E_=2XL
M@B=,&SALRJP%454$B!EO.WX,.1($FC1SZ'#E2QJ27QJIJ\P)<V:J'-%TY#R>
M.W)T50P@:N!<GI.Y\YP\)\+)(_P,FJ\HQJ10+<=-:R(N)-?Y>#A&S1HM;(8/
MPH1)V21'D%"94K;(E")2K!0!3Y`!P88/13117A@E`(D!''D$$ETEG21#`E#P
M-I5;"K0`20,&(LB22S#)1)--.#7U5%1EZ-`3%6A,!2!$((Q!D448@?!;&&2L
M]9N+<I`!`AEAT!$&8HJU`<*/9J01VDP@S,$5'6O1D2)"/=W(58TS7:3C'<+1
M(1H(3D[%HX]<OC&D=UW*@9B19;A`T%9=]:@#E!RM&-$69.C0Q19P](A&%V:X
MX5D96[@0%!U=@$"GG7CJR:>?;0`J*!Z$9K7%"RNX8>D6+(3F1A>%ML#52I.V
M8*D;+&RA*:>2OL#$J%VD*D6ADPX!ZPM1M*H`'TM-ND2A7!GZ`A:V!F066FJ9
MR)%9.-8XY&\RED$CD(MU"4)A<-3Q59%'<J2D'%J2@:25(&"9!AU:N@%GF%RF
M",(;UE9[+9IJZG3B'6+2D0<<6[YA1K/)KF417V),M6VW;\K+40S;@<#&&V<\
M%@8;"4B9XQSA<51$&&.@P9'$.H)0!D:CW3&NQC^.H9=P$D()R0&_T>$42>"R
M4=A49I11AK=C=OPO"`&#4`<<Z,8`@PPTM(B&7AAK"9+*!Q2F\,=G.!GON3(D
M7"0>-S]MF),;E]%OQ1=GS.^4',&V[KZ:1JTQ".Y1QC09913IQLT)B$&;M""<
MH.JH)W"4IQQ_*ETQ""CZYO64_H:1!],NNN&CTQ?11EB,^G+T91@S%38&&W60
M4=AA+9Z<AH3-NMP="TS+/#=B-N,,[L=D>&I&"]A.);*3['X5=\UCS&58NH8G
MFSK44A.NKD5XI-$&7F/G..U:0A/-<QY:4JS4B>H.S-&4'SU?-LQSC`'[YQP%
M,<40221A--*]=R]5'..Y(7Z\/(&0!;L@['P7'*#Q)>T+4O`;TAJE-'3]Q@ZK
MF8JTM+>N''WD7&;HU</8<*8RL(%*#4S2S_H'@A>LY&^!6PUB>N4LL:VA#+0I
MD@4S,I:>R(8C/4O2DK(V+9(T"X$@*4,"N"<'%RRD<!PY80K3L,+1Z*4,YX*#
M8L0W!ZGH*#&+>9H9OO)"&:7!.E^AC+8V*+.L.0UX+7J1E<ZENC1I!'M3><$0
MUB47!NVL9S2"FXY>:+(Z2(4A#F'1"X/C+"JJ"P1"A"`1+VC$T9CLCC642EW&
ME08$6JY'81@<BGJ4`-C,9&%WZ-XAD=A"CH2&7")TFK2$6,$++DN!,^K6D-:R
M04U29BJ?5)KU#&8__.U,@_QC`U]^QI$7A@12-K,A*?5E!JDP*0$Q(QX:UF*W
M<]F1?/];008]"`(0$O`C,QD)S4B(,8V1$BHA(0[,,'*N<:TE;5);2!+V12ED
MQLB#R&061<;5+22-$H7>\]$)S=5):`E)6D4"R5<RQKX"@I.1K8F@F7Z$3HU5
M+@8QF%H_@7A0<>:-;_E3',^F\B,[/&P\_ES7ZEXH@QK40*+U`R(I&YHW3?7M
MC5,9$@@\RCF:!0DFZ,I!#B2I+DJ=ZPWX`ER,DH2O,:1!A:-Q4H]Z^<<Y%/6H
M1.P8*;TW,"_RLWZ4$1]&R,?#B@&1FD[U&E2W!#=%>NYWVN/A".5P+J5^18@H
M[8EN%-C3*+#1HK[<X&^:"$;/.94-&JU<#17J%;H\[%R-:J*$*&8Q.2C&3(G=
M36_68C*2D&FCN%2B:)P8+_\41$X2$6.!#I2@U3#()"B!$.ED$!`+88BT&WI)
M3&9B'A!I)@%Q$>=:IH`7M"QN+`FQT`.NQQ$U:NNI2&4J)?$F1"/^)@&;_)XB
MP]G(,NR@;&9@VOY`$]4JL8&"F'0E(@D*N/:!I(9@%&("5$A(IAV1(XW#H2K1
MY3/^=2]T4EEOK\!83:>`<TMGT^Z2/A?7X@90AMRJ8<3*@,,[\G`'.\1A"X13
MUC'E(0'4!*IN<\8T/O:H22D2T@17V4%I:I@NLSP7K;;(O[VNI3"$[9%A*1C9
MQ4I4Q4N`;RJW=)%UM<M:9PI-NI;:N)#$9BV5JZJ.2'DYIMWA-6+3'.<J_"/T
MV$U+@^5*85NCV:M)%%<]^94GTW#"#BYA)D$1GUR&[,>I6)EZ4X&QEF7,Y=]<
M[7D!`?/*Y@E*U\6H9')X`1OVE1W1D:YE+\N9PF;&NINE(,\+69G9XIBU%Y90
M8QR[<3]5=5RQ)G>!`_Y=Y:Z6-99R;`YG+*XT=Q2WF8$8EF\PF445S5+!_HB4
M[.W8"P,F8&Y9=95:/>MA>)CJ#JZ$U7+;DK06)FL&T5J99^/(K?&9ZUZ*B=<M
M7)F2T5O68'/5@6QMSFT#,QCR05%(C7E,9"93F:$DP$(9T`@5Q%08P909M.>6
M:;HA(QG*/*::BCD#X-HPDSS@K[(^NV,91O;`L4AK"D@H0GLR.`3VN"<V/3K+
MQYA4L;E&&^(2=X_98@.X*UY'H7?0"QGHY_'*57SBOX%?&O;*9A`8O`XUW%SG
M5)1'([C@"4)00KA21)*;LRT)3E@"0FYNIB@(`>`,&WB58N16F^//CG1-XQ"@
M</2DWY5!EJZ+4SB9@*HWJ@VS\5X8/&JD,(A!R`K%8X#"PR:/=>8SH2D80D2I
M+J=#7>">`8&)7NX>T*)`!-6C@PNP!8*YW6'Q1BIQ#%@0`QF(X-'`+8I*/M43
MD$]<!`/;5^(A3T''DU[RE+>\1N).>!W4K^LYCH,8E!CUP$L3M&J$@@YJ`(/>
M[T#>/=WZ[GL/@Z^W1F3?770;Q@5&O],>\/\4$PY@D&/0V!%X"`F)'J92.7.&
M$6XSN9RB,0Z9\%SA:%K"H?=",\70D:1G6&=AW?A"^*P]?^",G606T5X'QX7+
M2!0$1V*0.S`A`]3W-'RE5%<E+43P!/2Q=F'0=F\W%6<W&YK6'__1<Z%%(&20
M(:6U(*V!6@\2(;UQ&JUU(1X86QU"6S5Q$[?%&9X!&J+A;A:"`&<D)F&2``ST
M(T$64U_4;>,C:N#V?UQS3WGP8E?5$Q7%($*C=\`%6E1@'U3@`D00!%1`.%+H
M`E/P$!TD!90B-#=H;0C69DGR)SV8<.337$2H,=)#7DFS&DZ8$%"8A55XA5$X
M!5.XA5<(0%\(`RQ`-&&(+MI#)&@2;:2F(PTU$V)0&'K!%Z=V7=)"+=8B2$+6
M.(]3%\VC+`^%`]-3/1[33?;T1Z1D-EQ"+^=R90"V5-44%0CE!@D0`S?P/0EP
M:5V3+-]C.:+A;8;Q4^`V=3H"49W(8U\!3A85`^B554$X;.`6APD`6GI8<?/A
M`E+@!$3`$`\!C5/@`DA7C:H2$\8&BW^(>I47B+ZT)"*U(T=5,[_A?\VEB$`V
M!JE$/CW68[GC+CUX+K>C,4:(9&Z@2\PXAWA(A5:(A0&Y!$60!?3A04(3CI1B
M@"Q0-`II`RPP`V96;$[P!E@F+5@7;1[D0TGP%6%E5)^&?F`44+&A:.DR<_+7
M$VIX2MHR0QWS@[F8C-O3BV`D%8VS9/@$&^>R;9`3/C395<4&1#'V%96SCY[2
MCWQ1.VCX.R^08[`1ASWQ!&903&7P%6P#;1PQ$8ZS<:C63Q:B(6'9$Q:B`N?"
M$3#P>B7Q>DP`;94C?AQC=SHG;!(10.#"!$9PEFNI>3/P>E1IE50D)G'I-)+X
M+J'A;IJW`L7G&FG0`J@8;3/@F'`V)&1`!BYV-H")F$6Q`L:H,&]P!^%"-I43
M1Y=)3,:DES6@EJY8%%:@%Z,S@8"$3Y<3?F6`+R!SCDS6:F[0BE\):6BT5EX1
M;4@Y$KITAL_DE%CP/`7#![[)$7]I3!S1EENS-J'5E8[SE6#&$6.I$K#%G69Y
M*VJ9EIJWFCW1FB@#FTP&2;1IFYI($KDI-[S9G#U!GCWQ($4Q!(96@HC6';3&
M:#5S,\7V$V`4%#$H9&[W!@@T$]+B4><I9.D))D6IG,7&$:FI>?;9$T0`2>AU
M:D-BE%4)G6#83QQQ`VI)`Z^7H6#B-!RZ5*9YE24!`V<)46K9ET6!HC^BHH<S
M,1V*F2!J`S%JHIHGGCU1!)2S+Z24:4.I+K6V+Y]H0B@T!TE9G''I/35039R3
M5-G#//K25NI2&)YC!VE`!G7P,+')%PU%,0D`1'!C!F%0!VQ`!YFS+]Y18M.T
M$CS93R$Y5CAC-C%@`\&X%I?661D8(!L((QT(6PK"&B0A@JI5@KA1(2@(6RTA
M6QY26R[H;HG*($@`&[*Q%S0("<-5$`WBAR"@!&[*%Q#%@CAP4EO)%3?")'6I
M*A%!>Q/8!A+5(),'`D%0!V=@1U\Q`ZK*JA/A6%X#JS]"JZ$A)`-C;FAR3GK1
M&V:B@"!@`S2P!+=J$C%0`S-!!%Y3$C<0K!4SK*^Z%LAZ%FN1CV<B4)EHB/"2
M%0<2!)6Y%L9U8JVQ1ZE4IFNA1=%5&-/%2([49)EW("J%3RP%4T3E:5%UCM+B
M(ARX:'-#$+CZK2I84JIZ`^'JJL4*=;4Z=!^34<FS/$+"H6G6.@`:L`;`E?*%
M+D/P!$WP=P,'L2;AD*7:?U,A`Y5:$Q:KJY79079%KR215RVV65G6)N)$IC4V
M6>YZLD=C&`HD)A/TF?45-'Z*:X.D(WE:),U6'##K`C(`K+K*J]-:L8,#KSHB
M`BU@&CXKB.;HI8T4IF-*0;F&A#>40`T$-^&V%.^ZLT]I?#\K)K0GIN+C8W1@
MCTR)KFI(G+\5$`U"-#,Q!;4)$]KZ(3FKLSJR-Y;"MVLUALR*-8@(;:>VM13+
M$(]K'F+;JL3:.PP2=YQFF4`%!^0#6"=)7NQJH#$206[Z.4E[:M?*M1()`MPZ
M!C#1N[4UN1,Q!P3T;P3%M+VI`(LKL9,*$ZJ*`X-C!&F`!^@(IG"S+CAD!IAT
MCH`E!R58.W,`B1^Q?'Z"9?F8M$<[%2+0!&'PL<PCLG@@/C=S,R(`NCDP$^XK
M!V(3N;4EO65A0<YR1V>`D>62/V<Q&TE+MG+'(ANW%ZM8&-?2*X074ONV;OXV
M!EL[`Z3JOGS1M=$;KDM;@LBC//&;HU:;!ML74B55I2\4/:AALD,PPEX2-VWZ
MIF6J-6H34I47-!229ZB5J\_;IZJZ4^6CM\F9MC)39GO[0N*"984[,O@J4KJ$
M.N`9:08`+H`F:/NR5-(".]%&BTA:$'P@@C,QQ#>K'J;[JAJ;K+!'/NCJ=S3@
M`LJA`)X5$*`U((::@ID:@@[2J&YV@J^E(6A<Q&^1`&9!<L.!8I]ZQ_W$K>S)
M53^K+I[!+OXG6!4(P1`H@=D2M55$`\0'H_W$H0:K9%YU/.]KPD+"E$FBPG1%
M20B';?6S;7##GJ-1KW]4PB#;>'@1,&82;1RJ:%UR+FOW$8>&PIZD3!53=W97
MH&40BCK$RMKG@U]9/S*S?*KT0C/`M?GS$G%'B)58')S*5?LR?9*)9;I+7,;#
M463@48ZS6-%VG*`#6HFD)<]RE.JR(D&F-`437#WHK.#;/=)J`S.08Z4,DT.Q
M$J&1@,H39S92!C+W&_+W;F-8MZ[T?E,A!J^D(ZW!2R_LIW&;T&?"N3K,->+K
M?IBE9,7&)G4#'%US%V\Z!RR0`*"!,5GW/81;B`K[1VP:&\!!S&P'6+!IF=6%
M9BYP!N$A!4'0LGZU!A?83U>0)0=L-Q_H'20A!.,!OAP1=WB3!$+0LE"P1DUY
M&`U('R91?%Q!1AG70QQQ/SBW,WX5'&D@!M;"<X3:,`@TR:)A.(J,NL4AE=O#
M5%-Q?X$W!T>3?#VS75VD(X0)JUQQ18S(!C/1?VCG.2JTD@="6#/Q9(^A,5*V
M<R!F-F00:WBQ<73F!K]'2S@XI__I/>35&V20VC^UU9]">T7R%1N9CP3(4(_Q
M,7=D-K3W&HO8+;+=3S@H+80M)#MS69CUV7*4369"UQ@1&CB#KNM2)BIC``7\
M!LJ204GR$6#*1(/#&6JV81E%&S$$>%W9,3\S$MG]Q`?<+/`#'#NDE.&!(J3X
M,$HR)+E$1$V"@SHG!D9$3MEF`'$M''3=J2E&2W6WD52-(U`!.!L&+AB9(F;"
MKW/A,KHU$Y:8-!S1*!`D08NF52'Q.[SQ&QKG.`4&`NMD=3@G-SH"6EAG!FY:
M<.QB)@W3?I5#`MDZTQ+D!GQ1R?T'I_C(+J;4,P+71\49!D%K5!FW<DJ1``IB
MU;X;'EA-'D,1`S.0`R!P?N,R%4\0!I$Q!#.W.60'(5?Y418Q$Q7'$3E``SE0
M`ZRE&39J(BAP`S!P`]MQ`S>``^GQYC0P$T33`FAPXY(A!%,P%`-2+8XK!PAD
M(GC>>]]:>>-8$)ZE`1H(4T]25$8N3T)*`%Y>7E@.``!2$@`4>@I\#P``#(`<
M`&`PY8D4*D9DS)#A(LB4)C(L"01@8,@3(D6F'"%@9$J1(W@P'0"`YDR#`0("
M_`&5*D````&J+&+'R\R$*U8\&'#!R`,5`8R0.<+F"%@B$TZ`&F`"U`(4`8E<
M2!'PJXN`7(8`K``V3Q6N4`)&A1.`:P&`4:,$'#,`]J4Q`X`$`'@[)F70'0:>
MTF'Q-NX_6E&:A4CD@:FC8;\``7#D4\`B.P86,5A$1X"B8*KFD8+50%70H471
M01F`[A[I8`3062'MJ@"Z!P;0A3B`K@GM+[2')$`7)8&N`036,7#Q-DQ*%X!,
M^!%P[S-18(N0"D#')T&H+P(6`*-CH"BM)((!^8@+@`Z%`Q^\?.'G(OI4%Z&>
M.H+619E<4,9I,1'<0$'!@T:`P-!"(`SQ!AQYR)'&&6C0`0(*8Z0`0@PYX%!#
M"SCD`((8>8!@11ERN/&&&R`0X0((0M0!HDD*5.%&&'70@<8;"NI1!AD@D%$'
M'&RD,488=*0Q(@APR/$&&FF(D08=-[K0'PD:``#)`D````0$`"@@I0$O0=+#
M2V9AP4D4``P0`#$$/$%,`VI>H.8&:GZ@Y@AJFJ`F#&K.H&8.:O:@ID7$(*'F
M$VI6H:87:IZA9BAJHJ*F*VKFHN8O:C:CIC9J>J/F.4\X(XI9`90B@`<`E"H7
M`(N`,@1,8X&%Y4L%`&!6?T6XP:0<("3A!!154`&"&6FP408(+[8Q+`0@D-"?
MBV&((2P(=+P!PH%ED*@KK[XB"X*8!`!`#`!/-"&*!3"!,``3I<*D;JDOO<0N
M":^`L@-,;@Q`JZT@@O!$K]C^&NRPQ1Z;[+(O.CMLM-/"4:V^_/8*@K;4C`M3
M*>>FVZ[%Z\)$@@J@$$!``//8J\`3,4YK!@C&MD%C'B34BN,;)T]!(QU/-A$&
M'FFT44<;(/0,`R0&@"!'&6/02,8<RBI0A!Q&RB%%&6&0D88;9_1,@LQR!$EU
MSR#\'/301<MQ=-)+-PW"%0IJ776R><P!K;1)PP"##G+3#8,+<EO='Q%/3"'@
MM+BR`62^0\=11QI#DY'T`3;CK#//8!OM=AEXC%'&C3>&L'@2;L!1,K#/HA&&
MVR(*3;3DFM,"@V`\"#"'`;KT04`ZQ?`SC"]IY8+E"M*T`@@Y?PP`S2#&""!.
M/8E8D(X`@PA30/,/Q$+`-.HD7XX`TXB3_#@".+*4`.*15\<#NQ@1`"U*"/:Z
M+B&G\P<_N_SS%Q*"R:'/*-@19E4@^]!!P!VP:]\8^'$=QWC`*J,X1%@:(8`"
M8&D0ZX!`K`@0B'4`@`"C4(,`0L$]Z17@`0"8!CI&<;U%#(-WVJ$#,NYA@^N-
M@@T"&(8'&,,47RAF!<E0``/H4(5?F,L(K.`!".I`@'#D8QQ(X$$#Z``$'KR`
M#@H0(ATPH`I6B`,>ZY`!+@!`@E4XX1=D:(!F.!,+"'1E'2388A=_0;$@#K&(
M1Z2`$NG``"?2P1I2E$85KZC&53BG*.(Q%P#JD(!?K$,`OO``:6(``/%0;)"%
MK!?N2!,"``S"!Z88@`[J@(%<H.L7IQB`+\PEGA!HL@YP61[Q!*"9#PP#)\8@
M`!,6<0UT**``B[`&+10@F!5L0P!<"``=W'$,(,B%!,<@0,_4,XPI1,$*OLR%
M67P1QB`NT0!V+,#QTB$*``0Q#'(0``M`P`,IU*$`=)$+#X9PSH`LAP`\6$(=
M%N!.`:C%`&0@P!+*P`,LS+.>$EA+/O>9G#\(X`\\6`$=4L"#%M3A``$Q*"#6
MX0$>1.&A]43`.CC!`R;4`1/H>`(`Y#")4?`!?`Y83@#6D0AT5$D.A'#"(GPP
MED#\8RQR&$`Z[/"/522"I@9<7A!9\%`EVH$T&P"`3(&J`!,8U*=`30<4_J&+
M=@0`'3`@@!>RL(5F!A$&<B@!#W)PAQ"H@!R*P,9$8?!5.4!@K'=@``M@@(E)
MV,,$7!#``+`ACG7@PX1=S<<Z\A$*&/+.%QM(C3`(H`MS;;$'ZH.=`73JA/L%
MPC'8P"'O<"$`(0AF`=*H@P*T@TI=T&)V,M!'-)01#6RLMK6O=2UKL:$">XS"
M#%"Q`!H$H(L(I.83`]"L-!;A@<MNT;,A&(8N8I":10R@L:1QQ``*RQP37&\%
M!KC>``R@P5%4QI?H&,0`Y+``'FB@#@RPAP%4>DYT4`$`ZQ@"(@YAA@8,@7\7
MG,,,U*M2.B!@!QXXJ1RF00<2*+$.S=`&)\KAK9`2XQU/*,8`(AR!"+NI&'`J
MAIR*X8((^ZD808BP$B(,A0A3(<)7B+`6(JR&"+<APG>(\"`B;(@(,R+"F(@P
M+R)LJ6+0(\+ZB'`_GA!+(H_,&&PR!@6(W`$BZ\L8)"#R%XC,!R(7@LB.(/(D
MB-P)(HN"R(XR1BV(#`PB/X/(TR`R.(A,#B*[@\CR>,(Q)GR,`\B9`7*6@)QW
M(.<1'X-0QS#4,:9\C#+(>0]RWO(Q+B%G3<BY%'*&U#%H(6==R-D7<A:&G(TA
MYV3(&1MR;O,Q('P,>SP!"QW[V#QH,QH>*,`\YJ5#!40AANF,``"@J+4OUZ$+
M=.!@`/.M[Q#0$0'XFH*ZV'5#=5U(AAA.H3L&^.X_%N$`[FVE*[\HE0E7`0H\
M"$`5H="#`%:QB&D$P`+B'H0%O`V`78#E%[$:P#5\48:3W&`13P!?.?XPCA2P
M@K\"(`!W>`!.<8)@!_J8@P346Y=!(L`>1Q@`("IC#VBH0AS<&,0P@J.,`VQA
M$`90=@#D<(%05&84=A``=EU8&>KF(.0"D,,!L*"+2\PN'O@8A@%X%PIE^Z((
MJ4'"<W>0&@V&(N5%480/ZC(+7"IO@]:>M@.4C0Y%#.``RJ48#FG!@\CJPNKI
M@`4^1I&(&.J""ZF1`6\IAHX:"`#@`O`?.IP0@&&L)9RE"D6S+[E;```0+[B=
M@TXS`8!`^`"W%Q0N<8T+`.2&HKL*7,L@3H6.?8P\`5O\F`$4N`YV/#XL"CRZ
M7@T0SJ*LX!^U-8$B+"`7$X1B`+("!A%!ZS\6:F'T"EP$.A8A#Q-0NU2#R(<`
M[/"!F2XB)0XXOO<8.,-NM)+:Q]^!`[`0<]*,8(/AW*X+P_F/J0N@#I=(QR4`
MH/<&7O`>)K@][0>`"_FU```"B(4"1#@-<(R"^J+?;NF!<7K7EZIU``%NZ8%Q
M>M>7JG4!=JJ,LB*@%@`3BAP(.+C(P@``BSP$$H`+@)!F(2).7.2`8,-%`@(X
M`,G(FR,/C030^H'1D3<Y#'8$H^-@`3`Z%Q8A6V=`EPH"Z=;<XPARAP,L`N0,
M0+<H0"@Y`@88*"=@%-1_#MP(H"-@G2%T;0(,6^3"C@".6J-XB)A(P`II'-,)
M<&'/@!\!$.@8&"2LP*!T?H,5<-1MA3U6/`38B8`.!0!:0#!^D$-`)AV@7P)\
MJ'LWKP)=[0+D6@@98Y8!+JB*@S5L2A0INT()\%4`@(M%3P0HJ@>HW)]Q$EC9
M,P:(3@%[T!`1^2=NWJ!A!-:-TY)ERU@/;6GYP*A1Y?80PZ"\YBP`01T5M%A@
M_(JN!(!1;P@80H:NPWO*AN"AJ_"^CGQHZ#3P'AX$Z-(&`?L!0!T6PU"C0`,P
MP&`(.,-(@0XO_VB!3@``#$.>>030D@!&K45AQ2`^#+)0'0F@`P(`<]`#BP;K
M6+"(#84($,HA`C"2C2/8L.)(-HG@*`!6*GI1W3`F=L>11Q;P6)(CVKRU4DO>
M'&-`C@"\IZ(<!]C$8C[K'.`34`#8@X^23%XAA0&+^`!20RDY(HPJB<AYUE$"
M[)#/'!(<H,4768PUD@`+)%.'6%&X:0`454S!UEGIT-GC-U1:&5D(CGRC)4AS
M<))&`,0P\`0Q$IS:P:DFG*K"J2Z<&L.I.)SJPZE+G/K$J5:<JL6I7IQJQJEU
MG&K(J9^<6LJIJ)S*RJFOG"K+J;:<RLNIQIR:S*G/G%K-J=N<&LZIY)RJSJGR
MG-K/$\4,P.X![#;`+@7L?L`N">RBP.X+[-9:C!#L*L%N$^Q&P>X7[)+![AGL
MJL&N&^PFPFXC["9;S"CLGL)N+.S6PFXO[`;#+C'L(L,N-.Q>P^ZYQ;3#;CQ/
M&`-`S!#$G$',JQH30LPEQ+Q"S``;DT3,!!M31<Q9Q,Q%S&#$S$;,<,1L1\Q\
MQ!Q(S,\:,ZTQOL1\3,SOQ'S/$\>X>TRJQVA`M@ADOWI,"V0/?0P69*-!]AID
M3WV,'F030C8B9#-"-B=DAT)V*V1?>PPP9']]S#)D8T,V.F2[0[8_3T`"`"AX
M!!#`/`MT2=D.Z.BE"Q5`D5+/%EU@(2BAX5GAFIN+>).+`0`80P`(1HBC3RX$
M`+#"/XN`#HQ_"TBCUSVUD,&`@Q!*"`X"!"!"1@!&#'+,6<*\)8XWT$<XH?6B
MU58\(#S`4(<!NO,N3CV#5N<%@Q"<@,X`9`"@```>&%"%/<<(@'&,80`'-&`.
M*OA'(ASP"`$L,!(.],`Y'&@!N<2"`--`QRBHP@A@C.(3`D`1!`/PAP&DPQ<`
M"`4$HX&/!G!H%!`,10-78``(CN(2`M!2)18"@'\88(>AV.$.#(##/SCC'B:@
MRB@F495,Z`B"2*1*``S@Q%`PD894D0H('>'!39S%!Q,,A1.Q&!4#@'`4G3B+
M#288%P%X`$CS,,4'[,"*B'BQ(6ED!#*X^`LR-(`CXQ"`([9AF'F0PA'#R-0_
M#',;!P32D'H$DB_\:*?A`5(`AK1B$Y\H@"@*(`4&8.(?!)&.+ORC"P?XP#`T
MUR4`[(,3D0``,1)`JU,-XE2*.)4C3B6)4UGB5)TXE2A.90IHG>H6I]+%J;I&
M#)$1HQBG@APQG'$J:9Q*<L0(%S&\(:Y3E>-4Z3@5.TX%CU/1XU3Y4!>[9E8,
M`K`+`>Q:`+L>P*X)U(M=(V#7JXH1JV($(6#LD@*[KL"N7Q6C"^P*`[O*\(1W
::(X!70I``:;P!"E0P0@`X-`S%+&0`,P!&@#L
`
end
END--cut here--cut here