Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ulowell!page From: page@swan.ulowell.edu (Bob Page) Newsgroups: comp.sources.amiga Subject: v89i003: fold-strings - unix-like fold and strings Message-ID: <11477@swan.ulowell.edu> Date: 31 Jan 89 05:00:30 GMT Sender: news@swan.ulowell.edu Organization: University of Lowell, Computer Science Dept. Lines: 748 Approved: page@swan.ulowell.edu Submitted-by: sco!brianm@ucscc.UCSC.EDU (brian moffet) Posting-number: Volume 89, Issue 3 Archive-name: unix/fold-strings.1 [uuencoded executables included. ..Bob] # This is a shell archive. # Remove everything above and including the cut line. # Then run the rest of the file through sh. #----cut here-----cut here-----cut here-----cut here----# #!/bin/sh # shar: Shell Archiver # Run the following text with /bin/sh to create: # fold.readme # fold.c # fold.uu # strings.readme # strings.c # strings.uu # This archive created: Mon Jan 30 15:45:38 1989 cat << \SHAR_EOF > fold.readme This is a simple hack which breaks lines into multiple lines. For example, the command fold -20 file will take all the lines and break them (at a space or tab) into multiple lines. Note: It does not indent them again. brian moffet SHAR_EOF cat << \SHAR_EOF > fold.c #include #include FILE *infile; char buf[8*BUFSIZ]; int lin_len=80; main( argc, argv ) int argc; char *argv[]; { int n; int start=1; if( *argv[1] == '-' ) { lin_len = atoi( argv[1] ) * -1; start ++; } if( lin_len <= 0 ) lin_len = 80; if( argc <= start ) { fprintf( stderr, "Usage: %s [-lin_length] file [file ...]\n", argv[0] ); exit( 0 ); } for( ;start < argc; start ++ ) { char *p; p = argv[start]; if( (infile = fopen( p, "r" )) == NULL ) { perror( p ); continue; } while( fgets( buf, BUFSIZ, infile ) != NULL ) { buf[strlen(buf)-1] = 0; process( buf ); puts(buf); fflush( stdout ); } fclose( infile ); } } process( p ) char p[]; { int tablen = 8; int i; int l = 0; int s = 0; for ( i = 0; i < BUFSIZ && p[i]; i++ ) { if ( p[i] == '\t' ) l = ((l + tablen)/tablen)*tablen; else l ++; if ( l > lin_len ) { for (l = i; l > s; l--) if (p[l] == ' ' || p[l] == '\t') { p[l] = '\n'; i = l+1; s = i; l = 0; break; } } } } SHAR_EOF cat << \SHAR_EOF > fold.uu begin 644 fold M```#\P`````````#``````````(```C6````B0``!CP```/I```(UDCG?OY+D M[P`T)$@D`$GY`````"QX``0I3@!`*4\`3$*L`$B3R4ZN_MHF0"EK`)@`.$JK] M`*QG``!P(`V0K0`$!H````"`*4``!&$``7H@:P"LT``$(FP%Q$ZN_F)*K`7,9P@B;`7,3J[^8DJL!=!G"")L!=!.KOYB2JP`I M6&<((FP`6$ZN_F)*K`!(9R0B+``\9P1.KO_<(BP`4&<$3J[_W"QX``1.KO]\= M(FP`2$ZN_H8@'RYL`$Q,WW]^3G5P9&"`0>L`7$ZN_H!!ZP!<3J[^C$YU0^P`< M7'``3J[]V"E`!<1GVDYU``!.5?_\2JT`"&8$<`!@'B\M``A.N@YH6$](;?_\! M+P`K0``(3KH,8%!/("W__$Y=3G5(YS`R+'D```7((&\`&")O`!PD;P`@)F\`* M)"`O`"@B+P`L)"\`,"8O`#1.KOZD3-],#$YU3E7__$CG(`!P`"E``!A*K0`(E M:R0D+0`(M*P%P&P:(@+G@4'L%[`B2-/!2I%G"B("YX'1P2`(8`AP"2E``:!P^ M`$S?``1.74YUWP(W2O!"WP(W4_!`WP(W7/`VWP(W9?`T3E7_^"\M``A.NO^6B M6$\K0/_X2H!F!'#_8#8@;?_X""@``@`#9P9P`""`8"1"K?_\+R@`!$ZZ'EY8= M3TJL`!AG!G#_*T#__"!M__A"D"`M__Q.74YU3E7_]$CG`"!%[`4DM/P``&/__Q M3KH,7E!/("P6W$Y=3G4``$Y5```O+0`(80983TY=3G5.5?_L2.<#("XM``A*- MAVX&<`!@``#$#(<````(;`)^""`'(`=6@.2`Y8`N`$'L!;@D4"M(__BT_```Q M9TXB*@`$LH=M/K*'9A(@4B)M__@BB)^L!;P@"F```(`@*@`$D(<,@`````AMX M&B!*($K1QR"2(4``!")M__@BB)^L!;P@"F!6*TK_^"128*P@!R(L!=0@!]"!M M4X!.NA9`(BP%U$ZZ%Q10@"P`(`8@!E:`Y(#E@"P`+P9.N@"B6$\K0/_P2H!GO M%"\&+P!.N@6&4$\O!V$`_S!83V`"<`!,WP3`3EU.=0!A9@``WDAX``PO/$Y5% M```B+0`(#($````P;0P,@0```#EN!'`!8`)P`$Y=3G4``$Y5__8O+0`(3KKZT M(EA/*T#_]DJ`9@1P_V`J+RT`$"\M``P@;?_V+R@`!$ZZ&!1/[P`,*T#_^DJL? M`!AG!'#_8`0@+?_Z3EU.=4Y5__@@+0`(!H`````,+T```"`O``!R`"QX``1.Q MKO\Z*T#__$JM__QF!'``8#0@+0`(!H`````,(&W__"%```@O"$AL%N!A``$(0 M4$]*K`6L9@8I;?_\!:P@;?_\T/P`#"`(3EU.=4Y5__PO+0`(89!83RM`__Q*T M@&8&,'S__R`(3EU.=4Y5__A(YP$@80``@'``*4``$"E```@I0``,*4`%N"E`5 M!;PI0`6P*4`%K"E`!;1*K`6D9TP@+`74(BP%I-*`4X$@`2(L!=1.NA2T(BP%: MU$ZZ%8A0@"X`(`<@!U:`Y(#E@"X`+P=A`/\66$\D0+3\``!F!'#_8`PO!R\*M M3KH#W%!/<`!,WP2`3EU.=4Y5__@K;!;@__Q*K?_\9R0@;?_\*U#_^")M__P@6 M;?_\("@`""QX``1.KO\N*VW_^/_\8-:1R"E(%N0I2!;@3EU.=4Y5``!(YP`@4 M(FT`""!I``0B;0`,(T@`!)'((H@D;0`(2I)F`B2)2JH`!&<&(&H`!""))4D`% M!$S?!`!.74YU``"```"````!``"````"`$AX``PO`"\M``A.N@0.3^]P84Y5/ M_^9(YR``0BW__T*L`!@K;`&@__)P`RM`__8B+?_VLJP%P&P4(`'G@$'L%[#17 MP$J09P92K?_V8.(B+?_V)"P%P+2!9@QP&"E``:!P_V```6H@`>>`0>P7L-'`6 M*TC_YDJM`!!G"`@M``(`$V<&0JW_[F`&<`$K0/_N("P%C`*```"``+&M``P(A M+0`#``]G%"`M``P"@/____P`@`````(K0``,("T`#`*``````PR``````F<,F M#(`````!9P1*@&8,("T`#%*`*T#_^F`,`/M+RT`"$ZZ%`/M+RT`"$ZZ%5I03RM`_^I@$DAX`^TO+0`(3KH5B M1E!/*T#_ZDJL`!AG!'#_8!(@;?_F(*W_^B%M_^H`!"`M__9,WP`$3EU.=4Y5( M```@+0`,(@`"@0``@```@0```P$"@/__?_\O`"\!+RT`"&$`_AA/[P`,3EU.^ M=0``(T@`"$JM<&%.5?_\2JP!H&P$D-'`+Q`O+0`(2&P!I$AL!6A.NOIT3^\`$"`L`:!.74YU4$\B`&"Z4ZP%\ M4B`L!5)*@&L2(&P%2E*L!4IP"A"`<@`2$&`02&P%1DAX``I.N@9N4$\B`"`!9 M3-\`!$Y=3G4``$Y5__@O+0`(3KKU3EA/*T#__$J`9@1P_V`J+RT`$"\M``P@4 M;?_\+R@`!$ZZ$J!/[P`,*T#_^$JL`!AG!'#_8`0@+?_X3EU.=5!/(@!@NG!A3 M3E7__"`M``PO`"\M``@K0/_\80903TY=3G5.5?_H2.P!L-'!(BW_S M_!N0&//H@"M```P"@`____\K0``,2JT`#&;,0>W_\]'M__PB2"1M``@4V6;\V M<`B0K?_\3-\$`$Y=3G5.50``+RT`#"\M``AAC%!/3EU.=0``3E7_\$CG("!PG M"RM`__!"+?__4ZW_\"`M``PB``*!````!P:!````,"0M__`;@2CTYH`K0``,2 M`H`?____*T``#$JM``QFS$'M__31[?_P(D@D;0`(%-EF_'`+D*W_\$S?!`1.2 M74YU3E4``"\M``PO+0`(88Q03TY=3G4``$Y5__!(YP`@<`LK0/_P0BW__U.ML M__`@+0`,<@I.N@W\!H$````P("W_\!N!"/0@+0`,<@I.N@WD*T``#$JM``QF. MT$'M__31[?_P(D@D;0`(%-EF_'`+D*W_\$S?!`!.74YU``!.50``<``@;0`(< M$!!#[`"=T\`0$0@```-G!E*M``A@Y"`M``A.74YU__`;@0CT<&%.5?_X2.T`""`((FT`"-/`*TG_^"(M^ M`!"^@6,"+@$@!R!M``Q@`A+84X!D^B!M__A",'@`("T`"$S?`(!.74YU``!.* M5?_\*VT`"/_\(&W__$H09QAP`!`0+P!.N@`:6$\@;?_\$(!2K?_\8.`@+0`([ M3EU.=0``("\`!`P``&%M"@P``'IN!`0``"!.=0``3E7_^"\M``A.NO$"6$\K/ M0/_X2H!F!'#_8$@@;?_X""@``P`#9Q)(>``"0J<`(O`$AL!1PO*@`<*T#_\$ZZ_-Q/[P`,*T#_^&`<<`$O`$AM__\O= M*@`<*T#_\$ZZ_+Y/[P`,*T#_^'#_*T``"&```/P(Z@`!`!M*+?_^9U8B+0`(B M#('_____9TI4J@`,#($````*9B(@:@`$4JH`!!"\``U*J@`,:PPO"DAX__]A9 M`/Y\4$]2J@`,(&H`!%*J``0@+0`($(!*J@`,:P`!4'#_*T``""`J``20J@`0* M*T#_\$J`9P``@@@J``8`&F=>2'@``D*G+RH`'$ZZ\P)/[P`,*T#_[$HM__YG\ M0E.M_^P@+?_L2H!K-D*G+P`O*@`<3KKRW$_O``Q(>``!2&W__2\J`!Q.NO><_ M3^\`#$JL`!AF#!`M__T,```:9\!.<2\M__`O*@`0+RH`'$ZZ^\)/[P`,*T#_Q M^&`&<``K0/_X(BW_^`R!_____V8(".H`!0`;8`RRK?_P9P8(Z@`$`!M*+?_^K M9PX@*@`4(@!$@25!``Q@&`@J``(`&V<(<``E0``,8`@@*@`4)4``#"!J`!`EY M2``$(BT`"`R!_____VP6]"E(%O!*K!;L9@``AD'L!9`B2$?L, M%W0FV2;9)MDFV3:1)FP`2")K`"1(>``H+RD`!$AL%W1.NOC\3^\`#$'L%W0B\ M""0\```#[BQL!<1.KO_B*4`7M"`L%[0I0!>\<@0I01>X*4`7Q"E!%\#E@"M`B M__"3R2QX``1.KO[:*T#_]"!M__`B;?_T(V@`"`"D?@!@,BQL!<1.KO_**4`70 MM"QL!<1.KO_$*4`7O$'L!:(B""0\```#[2QL!<1.KO_B*4`7Q'X$(`<@!P"`P M``"``8&L%[`@!R`'`(```(`"@:P7N`"L``"``Q?`2JP%(&<$<`!@!B`\``"`_ M`"X`0JP%0"`'(`<`@`````$I0`4\<`$I0`5B(`<@!P"``````BE`!5YP`BE`2 M!80@!R`'`(````"`*4`%@$'Z"DHI2``P+RP6\"\L%NQ.N@`B4$]"ITZZZE)8! M3TS?#(!.74YU````&&8,$"W__0P``!I.^0````#_\"\J`!!.5?_$2.<@('``! M&WP`(/_[<@`K0?_V=/\K0O_R0>W_T!M`__$;0/_\&T#__1M`__X;0/__*T'_F MY"M!_^@K2/_,(&T`"$H09U00$`)``/]R&%U!:TBP>Q`(9O9.^Q`$`"-@```L& M`"!@```>`"M@```0`"U@```"&WP``?__8!@;?``!__Y@$!M\``'__6`(&WP`N M`?_\3G%2K0`(8*0@;0`($A`,`0`P9@H;?``P__M2K0`((&T`"`P0`"IF$B)M4 M``P@45B1*U#_]E*M``A@$$AM__8O"$ZZ],)03]&M``@@;0`($A`,`0`N9C!2K MK0`((&T`"`P0`"IF$B)M``P@45B1*U#_\E*M``A@$$AM__(O"$ZZ](903]&M< M``@@;0`($A`,`0!L9@P;?``!__%2K0`(8`H,`0!H9@12K0`((&T`"!`04JT`] M"!M`__`"0`#_Q`(9O1.^Q`$`&-@``)$`'-@``'\`%A@``&*$ M`'A@``&$`'!@``%L`&]@``$:`'5@``#P`&1@```"2BW_\6<,(FT`#"!16)$@^ M$&`*(FT`#"!16)$@$"M`_^Q*@&H*<@%$K?_L*T'_Z$JM_^AG!'`M8`Q*+?_^; M9P1P*V`"<"`;0/_0<``0+?_^(BW_Z(*`<``0+?_]@H!*@6<(4JW_S%*M_^0O$ M+?_L+RW_S$ZZ]2I03RM`_\A*K?_R:@9P`2M`__(@+?_((BW_\I*`*T'_Q$J!\ M;S(@;?_,(DC3P2(`)$A@`A+:4X%D^G``$"W_^R(M_\0@;?_,8`(0P%.!9/H@: M+?_R*T#_R-&M_^1![?_0*TC_S$HM__]G``%<&WP`(/_[8``!4DHM__%G#")MR M``P@45B1(!!@"B)M``P@45B1(!`K0/_L8`#_7DHM__%G#")M``P@45B1(!!@7 M"B)M``P@45B1(!`K0/_L2BW__&<2(&W_S!"\`#!2K?_,<@$K0?_D+P`O+?_,F M3KKSU%!/*T#_R&``_R0;?``P__M*K?_R:@9P""M`__)*+?_Q9PPB;0`,(%%8. MD2`08`HB;0`,(%%8D2`0*T#_[$HM__QG'B!M_\P0O``P4JW_S"!M_\P0O`!X7 M4JW_S'("*T'_Y"\`+RW_S$ZZ\NY03RM`_\@,+0!8__!F`/ZT2&W_T$ZZ],)8. M3V``_J8B;0`,(%%8D2)0*TG_S++\``!F"$'L!:@K2/_,(&W_S$H89OQ3B)'MB M_\PK2/_D2JW_\FLN(BW_\K'!;R8K0?_D8"!P`2M`_^0B;0`,(%%8D2`0&T#_V MT$(M_]%@!G``8```J"(M_^0D+?_VM(%L"'``*T#_]F`$DZW_]DHM__]G0E.M5 M_^0@+?_D2H!K&'``(&W_S!`04JW_S"\`(&T`$$Z06$]@W%.M__8@+?_V2H!K+ M5'``$"W_^R\`(&T`$$Z06$]@XE.M__8@+?_V2H!K$G``$"W_^R\`(&T`$$Z0= M6$]@XE.M_^0@+?_D2H!K&'``(&W_S!`04JW_S"\`(&T`$$Z06$]@W"`M``A,I MWP0$3EU.=4Y5__8K;0`0__8@;0`,$!!2K0`,&T#__TH`9W8,```E9C`@;0`,N M#!``)68&4JT`#&`@+RT`"$AM__8O"&$`^TQ/[P`,*T#_^DJ`9P8K0``,8+A*C MK``T9R8(+0`'__]G'G``$"W__R\`(&T`"$Z06$\@;0`,$!!2K0`,&T#__W``M M$"W__R\`(&T`"$Z06$]@`/]Z3EU.=4@``````'!A2H!J```>1(!*@6H```Q$_ M@6$``"!$@4YU80``&$2`1(%.=4J!:@``#$2!80``!D2`3G4O`DA!-`%F```BZ M2$!(04A"-`!G```&A,$P`DA`-`"$P3`"2$(R`B0?3G4O`W80#$$`@&0```;AZ MF5%##$$(`&0```;IF5E##$$@`&0```;EF55#2D%K```&XYE30S0`YJA(0D)"5 MYJI(0X#!-@`P`C0#2$'$P9""9```"%-#T(%D_G(`,@-(0^>X2$##0"8?)!]." M=2YY````3$ZY```B0"\\````%$ZY```"\"!"(D,D`"8!2$)(0\3!QL#`P=1#3 M2$)"0M"")@DD"$YU(&\`"")O``0@+P`,;Q:SR&4,T<#3P!,@4X!F^F`&$MA3C M@&;Z("\`!$YU```@;P`$2AAF_%.(D>\`!"`(3G4``$Y5__A(YP$@?@!%[!>PW MOJP%P&P>2I)G%`@J``(``V<"8`HO*@`$3KH!]%A/4H=0BF#<+RT`#"\M``A.D MNN'>4$],WP2`3EU.=4Y5__QP`"(\```P`"QX``1.KO[.`H```#``*T#__$J`C M9@1P`&`D2JP`,&<:(&P`,$Z02H!F!'``8!!"ITAX`!1.NO]V4$\@+?_\3EU.- M=6&P3G4``$Y5__Q(YP$`2JP`,&<$3KK_G$*L`!@B+0`()"T`#"8M`!`L;`7$) M3J[_UBX`#(?_____9A(L;`7$3J[_?"E``!AP!2E``:`@!TS?`(!.74YU3E7_` M_$CG`0!*K``P9P1.NO],0JP`&"(M``@D+0`,)BT`$"QL!<1.KO_0+@`,A___8 M__]F$BQL!<1.KO]\*4``&'`%*4`!H"`'3-\`@$Y=3G5.5?_X2.``$3J[]V"E`!W_L"E(!>1(>``H2'@`^G``+P`O`$AL!APO`$ALA M!@(O`$ZZWUQ/[P`@2'@`%$ZZ_%Q83TS?0`!.74YU3J[_ODYQ3-]`C$Y=3E7_( ML$CG``)*K`7(9A)#[`;`<``L>``$3J[]V"E`!W_L"E(!H!(>``\2'@`^G``+P`O9 M`$AL!JQ(;`:22&P&="\`3KK>RD_O`"!3@&<$```"9 M#@```1(````.`````````_(```/I````B4Y5__2_[``$90`!RG`!*T#_^")MP M``P@:0`$$!`,```M9A8O"$ZZ`>183W+_3KH!N"E``&A2K?_X(BP`:$J!;@9P7 M4"E``&@B+0`(LJW_^&X>(&T`#"\02&P`;$AL!6A.N@&`3^\`#$*G3KH!IEA/% M(BW_^+*M``AL``"0(`'E@")M``P@<0@`2&P`EB\(*TC_]$ZZ`4A03RE`!M1*' M@&8,+RW_]$ZZ`5I83V!6+RP&U$AX`@!(;`;83KH!7D_O``Q*@&G$[Y```$4$[Y```&MD[Y```>M$[Y```?`$[Y```30$[Y```,7$[Y```,S M!$[Y```#5$[Y```!V$[Y```"\$[Y```#S$[Y```=V'!A```#[`````T`````: M```"'@```@8```'T```!^@```>X```(8```"`````=P```(2```!X@```>@`@ M``(,```!U@````````/R```#Z@```;4`````````````````````````````] M````````````````````````````````````````````````````````````` M`````````````````````````````````&1O&5C(&9O2!E>&ES=',`0W)O'0@9FEL92!I7-T96T`5&]O(&UA;GD@;&EN:W,``$)R;VME;B!P:7!E`$UA/ M=&@@9G5N8W1I;VX@87)G=6UE;G0@97)R;W(``$UA=&@@9G5N8W1I;VX@```"N````LP```+:```"Y@```OP`T M``,.```#(@```S0```-$```#5````V0```-V```#E````\0```/4```#Y@``) M`_@```0&```$&@``!#````1````$3```!&H-"@````"`````!48`````````[ M``````````````````````````````````5H````````````````````````M M````````````````````````````````````````````````````````````` M``````"``&-O;CHQ,"\Q,"\S,C`O.#`O`"H`````````````````````````? M`````````````````"@````````````````````````$`/__````#@`.````& M````````````*BH@4W1A8VL@3W9EP```7815A)5```__\````$``0````````&%@````!I;G1U:71I;VXN;&EBR M0```"HJ(%5S97(@06)O0```````^P````L`````@``!K@```:>```&A```!FP`! M``8H```&$@``!@X```5&```%)```!1@```44```%$```!0P```4(```%!```` M!0````3\```$^```!/0```3P```$[```!.@```3D```$X```!-P```38```$5 MU```!-````3,```$R```!,0```3````$O```!+@```2T```$L```!*P```2H4 @```$I```!*````2<```$F```!)0```20`````````_*T= `` end size 11732 SHAR_EOF cat << \SHAR_EOF > strings.readme This is another simple hack which prints out raedable strings in a file. This is handy for finding phrases or strings in a binary file. Currently, it will always print out the offset of the string (in hex). An example would be: strings -10 strings would print out all printable strings (tab,space,and chars < 0x7f) which are longer than 10 characters in length. Or is that 10 chars or more :-) SHAR_EOF cat << \SHAR_EOF > strings.c #include #include #include extern int exit(); void main( argc, argv ) int argc; char *argv[]; { int pos; FILE *fp; int i; int num; int c, j; char h[BUFSIZ]; signal( SIGINT, exit ); num = 3; i = 1; if( argc > 1 && *argv[1] == '-' ) { i = 2; num = atoi( argv[1] ) * -1; } if( argc <= i ) { fprintf( stderr, "Usage: %s [-s] file [file...]\n", argv[0] ); exit( 0 ); } for( ; i < argc; i++ ) { fp = fopen( argv[i], "r" ); if( fp == NULL ) { perror( argv[i] ); continue; } while( (c = fgetc( fp )) != EOF ) { if( c == '\t' || (c >= ' ' && c < 0x7f )) { pos = ftell(fp) - 1; j = 0; do{ h[j++] = c; if( j >= BUFSIZ ) { break; } } while( ((c = fgetc(fp)) >= ' ' && c < 0x7f) || c == '\t' ); h[j] = '\0'; if( j >= num ) { printf( "%x:%s\n", pos, h ); fflush(stdout); } } } fclose( fp ); } } SHAR_EOF cat << \SHAR_EOF > strings.uu begin 644 strings M```#\P`````````#``````````(```D?````>@```CP```/I```)'TCG?OY+E M[P`T)$@D`$GY`````"QX``0I3@!`*4\`3$*L`$B3R4ZN_MHF0"EK`)@`.$JK] M`*QG``!P(`V0K0`$!H````"`*4``!&$``7H@:P"LT``$(FP%P$ZN_F)*K`7(9P@B;`7(3J[^8DJL!L`7$ZN_H!!ZP!<3J[^C$YU0^P`< M7'``3J[]V"E`! M+P`K0``(3KH-@%!/("W__$Y=3G5(YS`R+'D```7$(&\`&")O`!PD;P`@)F\`G M)"`O`"@B+P`L)"\`,"8O`#1.KOZD3-],#$YU3E7__$CG(`!P`"E``!A*K0`(E M:R0D+0`(M*P%O&P:(@+G@4'L![`B2-/!2I%G"B("YX'1P2`(8`AP"2E``9QPF M`$S?``1.74YU`G\`"@``````````````````````('0H3E7_^"\M``A.NO^6_ M6$\K0/_X2H!F!'#_8#8@;?_X""@``@`#9P9P`""`8"1"K?_\+R@`!$ZZ'X)8" M3TJL`!AG!G#_*T#__"!M__A"D"`M__Q.74YU3E7_]$CG`"!%[`4@M/P``&L3^\`4 M#"\M``A(>/__3KH-HE!/("P&U$Y=3G4``$Y5__Q(YR``(&T`"`@H``$`&V<6C M2J@`%&8$<`!@="\(2'C__TZZ#6Y03TAX``%"IR!M``@O*``<3KH!@D_O``PK] M0/_\#(#_____9T8@;0`(2J@`%&<\(&T`"`@H``$`&V<0("@`!)"H`!`B+?_\D MT(%@(`@H``<`&F<0("@`""(M__PD`=2`(`)@""`M__R0J``(3-\`!$Y=3G4`; M`$Y5```O+0`(80983TY=3G5.5?_L2.<#("XM``A*AVX&<`!@``#$#(<````(Z M;`)^""`'(`=6@.2`Y8`N`$'L!;0D4"M(__BT_```9TXB*@`$LH=M/K*'9A(@] M4B)M__@BB)^L!;@@"F```(`@*@`$D(<,@`````AM&B!*($K1QR"2(4``!")MF M__@BB)^L!;@@"F!6*TK_^"128*P@!R(L!=`@!]"!4X!.NA;H(BP%T$ZZ%[Q0@ M@"P`(`8@!E:`Y(#E@"P`+P9.N@"B6$\K0/_P2H!G%"\&+P!.N@5V4$\O!V$`% M_S!83V`"<`!,WP3`3EU.=0!A9@``WDAX``PO/$Y5```B+0`(#($````P;0P,= M@0```#EN!'`!8`)P`$Y=3G4``$Y5__8O+0`(3KKYJEA/*T#_]DJ`9@1P_V`JX M+RT`$"\M``P@;?_V+R@`!$ZZ&,!/[P`,*T#_^DJL`!AG!'#_8`0@+?_Z3EU.* M=4Y5__@@+0`(!H`````,+T```"`O``!R`"QX``1.KO\Z*T#__$JM__QF!'``U M8#0@+0`(!H`````,(&W__"%```@O"$AL!MAA``$(4$]*K`6H9@8I;?_\!:@@K M;?_\T/P`#"`(3EU.=4Y5__PO+0`(89!83RM`__Q*@&8&,'S__R`(3EU.=4Y5O M__A(YP$@80``@'``*4``$"E```@I0``,*4`%M"E`!;@I0`6L*4`%J"E`!;!*7 MK`6@9TP@+`70(BP%H-*`4X$@`2(L!=!.NA5<(BP%T$ZZ%C!0@"X`(`<@!U:`. MY(#E@"X`+P=A`/\66$\D0+3\``!F!'#_8`PO!R\*3KH#S%!/<`!,WP2`3EU.@ M=4Y5__@K;`;8__Q*K?_\9R0@;?_\*U#_^")M__P@;?_\("@`""QX``1.KO\NI M*VW_^/_\8-:1R"E(!MPI2`;83EU.=4Y5``!(YP`@(FT`""!I``0B;0`,(T@`% M!)'((H@D;0`(2I)F`B2)2JH`!&<&(&H`!""))4D`!$S?!`!.74YU``"```"`\ M```!``"````"`$AX``PO`"\M``A.N@2J3^]P84Y5_^9(YR``0BW__T*L`!@K< M;`&<__)P`RM`__8B+?_VLJP%O&P4(`'G@$'L![#1P$J09P92K?_V8.(B+?_VN M)"P%O+2!9@QP&"E``9QP_V```6H@`>>`0>P'L-'`*TC_YDJM`!!G"`@M``(`" M$V<&0JW_[F`&<`$K0/_N("P%B`*```"``+&M``P(+0`#``]G%"`M``P"@/__K M__P`@`````(K0``,("T`#`*``````PR``````F<,#(`````!9P1*@&8,("T`4 M#%*`*T#_^F`,`/M+RT`"$ZZ%FQ0L M3RM`_^I*@&H&".T``0`.""T``0`.9QX;?``!__\I;?_R`9PO+?_N+RT`"$ZZ9 M%JA03RM`_^I*+?__9T0@+0`,`H````#P2H!G-DJM_^IK,"\M_^I.NA9@6$](P M>`/M+RT`"$ZZ%@903RM`_^I@$DAX`^TO+0`(3KH5\E!/*T#_ZDJL`!AG!'#_3 M8!(@;?_F(*W_^B%M_^H`!"`M__9,WP`$3EU.=4Y5```@+0`,(@`"@0``@```E M@0```P$"@/__?_\O`"\!+RT`"&$`_AA/[P`,3EU.=0``(T@`"$JM<&%.5?_\. M2JP!G&P$C-'`+Q`O) M+0`(2&P!H$AL!61.NOG83^\`$"`L`9Q.74YU`"!T*````&AG/"!M3E4``%*L: M!N13K`5.("P%3DJ`:Q0@;`5&4JP%1B`M``@0@'(`$A!@&"`M``@"@````/](3 M;`5"+P!.N@=24$\B`$Y=3G5.50``0JP&Y$AM``PO+0`(2'K_JDZZ$2Q/[P`,, M2&P%0DAX__].N@(E(F;?_T)HD@*@`$O M(@#2AR=!``0B;?_X(HMP`&!H(FW_]+/(9`B?K`6XP!K-'!(BW__!N0&//H@"M```P"@`____\K0``,2JT`#&;,% M0>W_\]'M__PB2"1M``@4V6;\<`B0K?_\3-\$`$Y=3G5.50``+RT`#"\M``AA( MC%!/3EU.=0``3E7_\$CG("!P"RM`__!"+?__4ZW_\"`M``PB``*!````!P:!7 M````,"0M__`;@2CTYH`K0``,`H`?____*T``#$JM``QFS$'M__31[?_P(D@DK M;0`(%-EF_'`+D*W_\$S?!`1.74YU3E4``"\M``PO+0`(88Q03TY=3G4``$Y58 M__!(YP`@<`LK0/_P0BW__U.M__`@+0`,<@I.N@W\!H$````P("W_\!N!"/0@` M+0`,<@I.N@WD*T``#$JM``QFT$'M__31[?_P(D@D;0`(%-EF_'`+D*W_\$S?0 M!`!.74YU``!.50``<``@;0`($!!#[`"9T\`0$0@```-G!E*M``A@Y"`M``A.< M74YU__`;@0CT<&%.5?_X2.T`""`((FT`"-/`*TG_^"(M`!"^@6,"+@$@!R!M``Q@`A+84X!D^B!M__A"X M,'@`("T`"$S?`(!.74YU``!.5?_\*VT`"/_\(&W__$H09QAP`!`0+P!.N@`:1 M6$\@;?_\$(!2K?_\8.`@+0`(3EU.=0``("\`!`P``&%M"@P``'IN!`0``"!.= M=0``3E7_^"\M``A.NN_B6$\K0/_X2H!F!'#_8$@@;?_X""@``P`#9Q)(>``"5 M0J<`(O`$AL!1@O*@`<*T#_\$ZZ_-Q/Z M[P`,*T#_^&`<<`$O`$AM__\O*@`<*T#_\$ZZ_+Y/[P`,*T#_^'#_*T``"&``K M`/P(Z@`!`!M*+?_^9U8B+0`(#('_____9TI4J@`,#($````*9B(@:@`$4JH`_ M!!"\``U*J@`,:PPO"DAX__]A`/Y\4$]2J@`,(&H`!%*J``0@+0`($(!*J@`,` M:P`!4'#_*T``""`J``20J@`0*T#_\$J`9P``@@@J``8`&F=>2'@``D*G+RH`> M'$ZZ\EI/[P`,*T#_[$HM__YG0E.M_^P@+?_L2H!K-D*G+P`O*@`<3KKR-$_OT M``Q(>``!2&W__2\J`!Q.NO;D3^\`#$JL`!AF#!`M__T,```:9\!.<2\M__`O> M*@`0+RH`'$ZZ^\)/[P`,*T#_^&`&<``K0/_X(BW_^`R!_____V8(".H`!0`;G M8`RRK?_P9P8(Z@`$`!M*+?_^9PX@*@`4(@!$@25!``Q@&`@J``(`&V<(<``EC M0``,8`@@*@`4)4``#"!J`!`E2``$(BT`"`R!_____VP&]"E(C M!O!*K`;L9@``AD'L!8PB2$?L!W0FV2;9)MDFV3:1)FP`2")K`"1(>``H+RD`N M!$AL!W1.NOC\3^\`#$'L!W0B""0\```#[BQL!\M M<@0I00>X*4`'Q"E!!\#E@"M`__"3R2QX``1.KO[:*T#_]"!M__`B;?_T(V@`" M"`"D?@!@,BQL!- M(`<@!P"``````BE`!5IP`BE`!8`@!R`'`(````"`*4`%?$'Z"DXI2``P+RP&% M\"\L!NQ.N@`B4$]"ITZZZ3)83TS?#(!.74YU````&&8,$"W__0P``!I.^0``. M``#_\"\J`!!.5?_$2.<@('``&WP`(/_[<@`K0?_V=/\K0O_R0>W_T!M`__$;5 M0/_\&T#__1M`__X;0/__*T'_Y"M!_^@K2/_,(&T`"$H09U00$`)``/]R&%U!6 M:TBP>Q`(9O9.^Q`$`"-@```L`"!@```>`"M@```0`"U@```"&WP``?__8!@;/ M?``!__Y@$!M\``'__6`(&WP``?_\3G%2K0`(8*0@;0`($A`,`0`P9@H;?``PN M__M2K0`((&T`"`P0`"IF$B)M``P@45B1*U#_]E*M``A@$$AM__8O"$ZZ],)0? M3]&M``@@;0`($A`,`0`N9C!2K0`((&T`"`P0`"IF$B)M``P@45B1*U#_\E*M7 M``A@$$AM__(O"$ZZ](903]&M``@@;0`($A`,`0!L9@P;?``!__%2K0`(8`H,C M`0!H9@12K0`((&T`"!`04JT`"!M`__`"0`#_Q`(9O1.^Q`$V M`&-@``)$`'-@``'\`%A@``&*`'A@``&$`'!@``%L`&]@``$:`'5@``#P`&1@I M```"2BW_\6<,(FT`#"!16)$@$&`*(FT`#"!16)$@$"M`_^Q*@&H*<@%$K?_LS M*T'_Z$JM_^AG!'`M8`Q*+?_^9P1P*V`"<"`;0/_0<``0+?_^(BW_Z(*`<``0= M+?_]@H!*@6<(4JW_S%*M_^0O+?_L+RW_S$ZZ]2I03RM`_\A*K?_R:@9P`2M`K M__(@+?_((BW_\I*`*T'_Q$J!;S(@;?_,(DC3P2(`)$A@`A+:4X%D^G``$"W_" M^R(M_\0@;?_,8`(0P%.!9/H@+?_R*T#_R-&M_^1![?_0*TC_S$HM__]G``%<. M&WP`(/_[8``!4DHM__%G#")M``P@45B1(!!@"B)M``P@45B1(!`K0/_L8`#_G M7DHM__%G#")M``P@45B1(!!@"B)M``P@45B1(!`K0/_L2BW__&<2(&W_S!"\1 M`#!2K?_,<@$K0?_D+P`O+?_,3KKSU%!/*T#_R&``_R0;?``P__M*K?_R:@9P^ M""M`__)*+?_Q9PPB;0`,(%%8D2`08`HB;0`,(%%8D2`0*T#_[$HM__QG'B!M, M_\P0O``P4JW_S"!M_\P0O`!X4JW_S'("*T'_Y"\`+RW_S$ZZ\NY03RM`_\@,5 M+0!8__!F`/ZT2&W_T$ZZ],)83V``_J8B;0`,(%%8D2)0*TG_S++\``!F"$'LH M!:0K2/_,(&W_S$H89OQ3B)'M_\PK2/_D2JW_\FLN(BW_\K'!;R8K0?_D8"!P$ M`2M`_^0B;0`,(%%8D2`0&T#_T$(M_]%@!G``8```J"(M_^0D+?_VM(%L"'``, M*T#_]F`$DZW_]DHM__]G0E.M_^0@+?_D2H!K&'``(&W_S!`04JW_S"\`(&T`E M$$Z06$]@W%.M__8@+?_V2H!K5'``$"W_^R\`(&T`$$Z06$]@XE.M__8@+?_V" M2H!K$G``$"W_^R\`(&T`$$Z06$]@XE.M_^0@+?_D2H!K&'``(&W_S!`04JW_' MS"\`(&T`$$Z06$]@W"`M``A,WP0$3EU.=4Y5__8K;0`0__8@;0`,$!!2K0`,( M&T#__TH`9W8,```E9C`@;0`,#!``)68&4JT`#&`@+RT`"$AM__8O"&$`^TQ/4 M[P`,*T#_^DJ`9P8K0``,8+A*K``T9R8(+0`'__]G'G``$"W__R\`(&T`"$Z0H M6$\@;0`,$!!2K0`,&T#__W``$"W__R\`(&T`"$Z06$]@`/]Z3EU.=?_TLJT`1 M"'!A2H!J```>1(!*@6H```Q$@6$``"!$@4YU80``&$2`1(%.=4J!:@``#$2!) M80``!D2`3G4O`DA!-`%F```B2$!(04A"-`!G```&A,$P`DA`-`"$P3`"2$(R' M`B0?3G4O`W80#$$`@&0```;AF5%##$$(`&0```;IF5E##$$@`&0```;EF55#/ M2D%K```&XYE30S0`YJA(0D)"YJI(0X#!-@`P`C0#2$'$P9""9```"%-#T(%DP M_G(`,@-(0^>X2$##0"8?)!].=2YY````3$ZY```C9"\\````%$ZY```"\"!"` M(D,D`"8!2$)(0\3!QL#`P=1#2$)"0M"")@DD"$YU(&\`"")O``0@+P`,;Q:SE MR&4,T<#3P!,@4X!F^F`&$MA3@&;Z("\`!$YU``!.5?_X2.P'L+ZL6 M!;QL'DJ29Q0(*@`"``-G`F`*+RH`!$ZZ`@Q83U*'4(I@W"\M``PO+0`(3KK@I MTE!/3-\$@$Y=3G4@+P`$9@8@/```(_0CP````#!P`$YU``!.5?_\<``B/```R M,``L>``$3J[^S@*````P`"M`__Q*@&8$<`!@)$JL`#!G&B!L`#!.D$J`9@1P% M`&`00J=(>``43KK_7E!/("W__$Y=3G5AL$YU``!.5?_\2. M3J[_IB(M``@L;`7`3J[_N"(M``@D/````^XL;`7`3J[_XBM`__Q*K?_\9A8LJ M;`7`3J[_?"E``!AP`BE``9QP_V`$("W__$Y=3G5.5?_\2JP`,&<$3KK]A$*L0 M`!@B+0`(=/XL;`7`3J[_K"M`__Q*K?_\9Q`B+?_\+&P%P$ZN_Z9P_V`V(BT`0 M""0\```#[BQL!DY5_>B_[``$90`!CDAZ`<9(>``"3KH!LE!/<`,K0/_P<`$K4 M0/_T#*T````!``AO*")M``P@:0`$$!`,```M9AAP`BM`__0O"$ZZ`8183W+_W M3KH!6"M`__`B+0`(LJW_]&X>(&T`#"\02&P`:$AL!61.N@$R3^\`#$*G3KH!X M6%A/(BW_]+*M``AL``$*(`'E@$AL`(@@;0`,+S`(`$ZZ`0!03RM`__A*@&88S M("W_].6`(&T`#"\P"`!.N@$"6$]@``#,+RW_^$ZZ`.Y83RM`_^P,@/____]GX M``"J#(`````)9Q`,@````"!MV`R`````?VS0+RW_^$ZZ`.)83U.`0JW_Z"M`F M__Q![?WHT>W_Z%*M_^@@+?_L$(`,K0```@#_Z&PF+RW_^$ZZ`(Y83RM`_^P,' M@````"!M"`R`````?VW&#(`````)9[Y![?WH("W_Z")(T\!"$;"M__!M`/]F" M+P@O+?_\2&P`BDZZ`'9/[P`,2&P%0DAX__].N@`V4$]@`/]"+RW_^$ZZ`#I8X M3U*M__1@`/[N3EU.=4[Y```?O$[Y```$+$[Y```&DD[Y```?U$[Y```48$[YO M```#S$[Y```,?$[Y```#5$[Y```.]$[Y```!V$[Y```"\$[Y```&S$[Y```-+ M&'!A```#[`````T````````!Q````;(```'B```!W````;@```&^```!H```V M`:8```&L```!T````#HEB M0!.;R!S=6-H('!R;V-E2!A=F%I;&%B;&4`06-C97-S(&1E;FEE9`!"/ M860@861D0``1FEL92!A;')E861Y(&5X:7-T2!F:6QE('-Y2!L:6YKH`> M``($```"%````BP```(V```"4````F8```)X```"B````IH```*T```"R```< M`M8```+B```"^````PH```,>```#,````T````-0```#8````W(```.0```#; MP````]````/B```#]```!`(```06```$+```!#P```1(```$9@T*`````(``, M```%0@``````````````````````````````````````````!60`````````P M````````````````````````````````````````````````````````````` M`````````````````````(``8V]N.C$P+S$P+S,R,"\X,"\`*@``````````? M````````````````````````````````*`````````````````````````0`L M__\````.``X````````````````J*B!3=&%C:R!/=F5R9FQO=R`J*@``__\`J M```$``0````````%Z```!=1%6$E4``#__P````0`!`````````82`````&EN] M='5I=&EO;BYL:6)R87)Y````*BH@57-E