evan@blake.acs.washington.edu (Not Evan) (01/16/89)
Does anybody have a public domain (or shareware) C beautifier that runs under MS-DOS? I have about 500K of some of the least readable C source I've ever seen... Pointer to an executable would be wonderful. Source code would be even better. How about source code for a C syntax checker, e.g. lint? I'm sure that I could adapt it within the next millenium... Any help would be greatly appreciated. And yes, if you're looking for the same thing, you can send me mail and I'll route a copy to you when (if) I get something. --erw; } } } }
matthew@sunpix.UUCP ( Sun NCAA) (01/18/89)
In article <563@blake.acs.washington.edu>, evan@blake.acs.washington.edu (Not Evan) writes: > Does anybody have a public domain (or shareware) C beautifier that runs > under MS-DOS? I have about 500K of some of the least readable C source > I've ever seen... > Excuse the direct posting but the e-mail is bouncing and what I have is small anyway. Included are the source to one cb, and the docs and executable for another. Enjoy; ---- Cut Here and unpack ---- #!/bin/sh # shar: Shell Archiver (v1.22) # Packed Tue Jan 17 17:20:17 EST 1989 by friar-taac!matthew # from directory /home/matthew/cb # # Run the following text with /bin/sh to create: # cb.c # cb.arc # echo "x - extracting cb.c (Text)" sed 's/^X//' << 'SHAR_EOF' > cb.c && X/* X Modified by Matthew Lee Stier 1/17/89 X (outvect defined as 'char *outvect;', X vice 'int outvect;' ) X X Compiled on Manx C86 by Allen Morris 3/22/86 X X Modified for DeSmet C by S. Lekach 3/20/86 X X Modified for Lattice C Ver 1.01 X by: John W. Kindschi Jr. (10-30-83) X X Swiped from CPIG'S UNIX system and modified to X run under BDS C by William C. Colley, III X X X To use the program type the following command line: X X A>cb input.fil [output.fil] X X Where input.fil is the file to be pretty printed and [output.fil] X is the destination file. If no output file is specified, then X the output goes to the console: X*/ X#include <stdio.h> X XFILE *f1,*f2; X Xint slevel[10]; Xint clevel; Xint spflg[20][10]; Xint sind[20][10]; Xint siflev[10]; Xint sifflg[10]; Xint iflev; Xint ifflg; Xint level; Xint eflg; Xint paren; Xint aflg; Xint ct; Xint stabs[20][10]; Xint qflg; Xint j; Xint sflg; Xint bflg; Xint peek; Xint tabs; X Xstatic int ind[10] = { X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; Xstatic int pflg[10] = { X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; X Xchar lchar; Xchar pchar; Xchar *wif[2]; Xchar *welse[2]; Xchar *wfor[2]; Xchar *wds[3]; Xchar cc; Xchar string[200]; Xint lastchar; Xint c; Xint outvect; X X Xmain(argc,argv) Xint argc; Xchar *argv[]; X{ X int k; X /* Initialize everything here */ X outvect = 1; X if (argc < 2 || argc > 3){ X printf("Usage: A>Cpretty input.fil [output.fil]\n"); X exit(); X } X if ((f1 = fopen(*++argv,"r")) == NULL){ X printf("File not found\n\n"); X exit(); X } X if (argc == 3){ X if ((f2 = fopen(*++argv,"w")) == NULL){ X print("Couldn't create output file\n"); X exit(); X } X outvect = 0; X } X clevel = iflev = level = eflg = paren = 0; X aflg = qflg = j = bflg = tabs = 0; X ifflg = peek = -1; X sflg = 1; X wif[0] = "if"; X welse[0] = "else"; X wfor[0] = "for"; X wds[0] = "case"; X wds[1] = "default"; X wif[1] = welse[1] = wfor[1] = wds[2] = 0; X X /* End of Initialization */ X X while ((c = getchr()) != EOF){ X switch(c){ X default: X string[j++] = c; X if (c != ',') lchar = c; X break; X case ' ': X case '\t': X if (lookup(welse) == 1){ X gotelse(); X if(sflg == 0 || j > 0)string[j++] = c; X putsx(); X sflg = 0; X break; X } X if(sflg == 0 || j > 0) string[j++] = c; X break; X case '\n': X if (eflg = lookup(welse) == 1) gotelse(); X putsx(); X print("\n"); X sflg = 1; X if (eflg == 1){ X pflg[level]++; X tabs++; X } X else X if(pchar == lchar) X aflg = 1; X break; X case '{': X if (lookup(welse) == 1) gotelse(); X siflev[clevel] = iflev; X sifflg[clevel] = ifflg; X iflev = ifflg = 0; X clevel++; X if (sflg == 1 && pflg[level] != 0){ X pflg[level]--; X tabs--; X } X string[j++] = c; X putsx(); X getnl(); X putsx(); X print("\n"); X tabs++; X sflg = 1; X if (pflg[level] > 0){ X ind[level] = 1; X level++; X slevel[level] = clevel; X } X break; X case '}': X clevel--; X if ((iflev = siflev[clevel]-1) < 0) iflev = 0; X ifflg = sifflg[clevel]; X putsx(); X tabs--; X ptabs(); X if ((peek = getchr()) == ';'){ X print("%c;",c); X peek = -1; X } X else print("%c",c); X getnl(); X putsx(); X print("\n"); X sflg = 1; X if (clevel < slevel[level]) if (level > 0) level--; X if (ind[level] != 0){ X tabs -= pflg[level]; X pflg[level] = 0; X ind[level] = 0; X } X break; X case '"': X case '\'': X string[j++] = c; X while((cc = getchr()) != c){ X string[j++] = cc; X if(cc == '\\'){ X string[j++] = getchr(); X } X if(cc == '\n'){ X putsx(); X sflg = 1; X } X } X string[j++] = cc; X if(getnl() == 1){ X lchar = cc; X peek = '\n'; X } X break; X case ';': X string[j++] = c; X putsx(); X if(pflg[level] > 0 && ind[level] == 0){ X tabs -= pflg[level]; X pflg[level] = 0; X } X getnl(); X putsx(); X print("\n"); X sflg = 1; X if(iflev > 0) X if(ifflg == 1){ X iflev--; X ifflg = 0; X } X else iflev = 0; X break; X case '\\': X string[j++] = c; X string[j++] = getchr(); X break; X case '?': X qflg = 1; X string[j++] = c; X break; X case ':': X string[j++] = c; X if(qflg == 1){ X qflg = 0; X break; X } X if(lookup(wds) == 0){ X sflg = 0; X putsx(); X } X else { X tabs--; X putsx(); X tabs++; X } X if((peek = getchr()) == ';'){ X print(";"); X peek = -1; X } X getnl(); X putsx(); X print("\n"); X sflg = 1; X break; X case '/': X string[j++] = c; X if((peek = getchr()) != '*') break; X string[j++] = peek; X peek = -1; X comment(); X break; X case ')': X paren--; X string[j++] = c; X putsx(); X if(getnl() == 1){ X peek = '\n'; X if(paren != 0) aflg = 1; X else if(tabs > 0){ X pflg[level]++; X tabs++; X ind[level] = 0; X } X } X break; X case '#': X string[j++] = c; X while((cc = getchr()) != '\n') string[j++] = cc; X string[j++] = cc; X sflg = 0; X putsx(); X sflg = 1; X break; X case '(': X string[j++] = c; X paren++; X if(lookup(wfor) == 1){ X while((c = getsx()) != ';'); X ct = 0; Xcont: X while((c = getsx()) != ')'){ X if(c == '(') ct++; X } X if(ct != 0){ X ct--; X goto cont; X } X paren--; X putsx(); X if(getnl() == 1){ X peek = '\n'; X pflg[level]++; X tabs++; X ind[level] = 0; X } X break; X } X if(lookup(wif) == 1){ X putsx(); X stabs[clevel][iflev] = tabs; X spflg[clevel][iflev] = pflg[level]; X sind[clevel][iflev] = ind[level]; X iflev++; X ifflg = 1; X } X } X } X fclose(f1); X fclose(f2); X} X X Xptabs(){ X int i; X for (i=0; i < tabs; i++) print("\t"); X} Xgetchr(){ X if(peek<0 && lastchar != ' ' && lastchar != '\t')pchar = lastchar; X lastchar = (peek < 0) ? getc(f1) : peek; X peek = -1; X return(lastchar == '\r' ? getchr() : lastchar); X} Xputsx(){ X if (j > 0) X { X if (sflg != 0) X { X ptabs(); X sflg = 0; X if (aflg == 1) X { X aflg = 0; X if (tabs > 0) print (" "); X } X } X string[j] = '\0'; X print("%s",string); X j = 0; X } X else { X if (sflg != 0) { X sflg = 0; X aflg = 0; X } X } X} Xlookup(tab) Xchar *tab[]; X{ X char r; X int i,kk,k,l; X if(j < 1) return(0); X kk = 0; X while (string[kk] == ' ') kk++; X for (i = 0; tab[i] != 0; i++) X { X l = 0; X for(k=kk;(r = tab[i][l++]) == string[k] && r != '\0';k++); X if(r == '\0' && (string[k] < 'a' || string[k] > 'z'))return(1); X } X return(0); X} Xgetsx(){ X char ch; Xbeg: X if((ch = string[j++] = getchr()) == '\\') X { X string[j++] = getchr(); X goto beg; X } X if(ch == '\'' || ch == '"') X { X while((cc = string[j++] = getchr()) != ch) X if(cc == '\\') string[j++] = getchr(); X goto beg; X } X if(ch == '\n'){ X putsx(); X aflg = 1; X goto beg; X } X else return(ch); X} Xgotelse(){ X tabs = stabs[clevel][iflev]; X pflg[level] = spflg[clevel][iflev]; X ind[level] = sind[clevel][iflev]; X ifflg = 1; X} Xgetnl(){ X while ((peek = getchr()) == '\t' || peek == ' '){ X string[j++] = peek; X peek = -1; X } X if((peek = getchr()) == '/'){ X peek = -1; X if ((peek = getchr()) == '*'){ X string[j++] = '/'; X string[j++] = '*'; X peek = -1; X comment(); X } X else string[j++] = '/'; X } X if((peek = getchr()) == '\n'){ X peek = -1; X return(1); X } X return(0); X} Xcomment(){ Xrep: X while ((c = string[j++] = getchr()) != '*') X if (c == '\n'){ X putsx(); X sflg = 1; X } Xgotstar: X if ((c = string[j++] = getchr()) != '/'){ X if (c == '*') goto gotstar; X goto rep; X } X} Xprint(fmt,args) Xchar *fmt; Xunsigned args; X{ X if (outvect == 1) printf(fmt,args); X else if (outvect == 0) fprintf(f2,fmt,args); X} X SHAR_EOF chmod 0644 cb.c || echo "restore of cb.c fails" echo "x - extracting cb.arc (Binary)" sed 's/^X//' << 'SHAR_EOF' > s2_temp_.tmp && Xbegin 600 cb.arc XM&@A#0BY#3TT```,```2^F#$``'$,1EA,90`\```,G*I88=1L4#$(C6RU&F#% XMUPD`5I8U*=+DB90L)*P`,!&*!8!18@#X`K11$0,9[<95,&)"$0$>/>A`X`&" XMSLL$=0HD^=-N1K)U1"`!F+$M"1T7+%W2I&."1P(Z(EC`X(/"Z1\2`[;)`;%H XM6E8Y&KY:&*!-C@09Y`9@D\-@W;,%V^@82.0!1-M=NL@`2&<*P**Z#**MRQIH XM'P`!=P[L.DS7KHE%%@0`8(1M!;1[P@#`J[,@FCC/H,6M(R!4%[Q_H20`&#!, XM#H$=T.X8T#4)P#HR0A-9@`!`'V5'T!:)V[<H6NJ/6#YJ\>N!]XK*@.5<H\L% XM@($9P*`L8K=(VR)E@X81"#3.W[\5XQ;QLV&LP)@CXQZP+P#B2$L"-A`5,')$ XMG+WY?A$#A0<'H"/(![@`P$0S(="2`(.X!+!@"*'PU@(!?H&C2RH`.`BAA`QN XMMX@1`M`R816#L(/`#B8L=\<`Z5CSSW:X2'``%.@4(L$BY8S(0`^2\5%`#QCZ XM@00N-MR(SAL[EH.+%4J:T20NCRC9Q93**$G%E`(@@.,24]K@)3I"3.G#F#E, XM.08`.&83`8^+V.'`/W0(D*`!.-;B`8^XN,#FG3AJT`"/A0`S"@,'T$$#+F=X XM^8\-B*(#RP>$`D-'!+BPX2BD!7Y":3F%UB$!+G&,*<Z;3JZ)HR"HXE*)EW'. XM62<Z*#A0Z2@.'%`'!K'2:><E8]+2JJKH4-'J*F/:H@&?LGB)"[(XSC,HJ(9" XMH.NHM8Q9R+!LHE,"JL<88`(!&`[B!P,#U+%"KS:AH\"T@^P3`%WC"ADO`GZ, XM2LZ83G"+HSL0\(C=+O_\$VX`!P0`0"X9)*`+!PF,8@4!HZA3P"C^7#S``:,< XMP+$U'X%`,0D4\T"Q#P3@$D+$]!2`2PD1X^.R"A'K4P!VH[ASL3P7VW,Q/P4D XMX@`[05L`3]`>B$``7044*,@!HBQP``SD]*`!`(D8`4`=,,H%!-?IN&$`*%)3 XMG<X3!H22\3\&9+P(/&0?@`@AUE'=@T=T(!.W*%00L`XPN!R-8Q@(\(A$'2R@ XM0TT"@_B`,`!T'-!XQ@#X`8':!;#M-MQ2SVT=.I\<</`!`-B&2../TZ'`Y`4` XM\`>,=Z"V=ML%O!VWYP:D0\8_@1>`8P&%EX.$3=@-AAT0HYA<*!T#H*-&`NA, XM<0`N,B0`Q:/6%KNGDPHW;G(`HR`L:B@D1P/.V_\0`@0!;'N<#@;_@-(WU8IX XM4`4!,/RS`S;,IV.`P0:8F,+2T0]_]`Y'GCB`X;B&C@@D(!0@,]_;_B*R1'`" XM'P,(A=(200@&$(`H;`,9ZA+6F*4EC0!UZ`#Y""!!>`R"%^N#W`-6V,)_,&)] XM_\C5`3"GN=IQ3FYT,P`Z1"%$!4"/$P:@GO6P5Z!.=(!'[9N>POY2OG$,XA<Q XM#-\!$N$%U\%H#/Y(Q"%00(`5(J]\YX,'!+%&B,RD0PG^6",21A'!-"Z"$!B< XMH\CZ8(!PB:QT:VSA'3TX"J6AHP7_TR$Z8%``=&1B2#OX2-/JL(&X40T*N*#! XM$FV0/0L\L1SA:EK!UC$!2Y(#DSC89/;VP0$>H:,*"$#'.5Q6O>MQLD#H:"7W XMF%/%13@`9#MX1&:TV(<%K+!0?F"?`TA&PS2^D(Q8TQK8+-&/17!B?2D@T`&( XM8L'U69",Z0A$/WA(.]MU+HCHF`<!ZE>V?X@"`%,CQ_ZR)@`Z".$O&>,B`880 XMIW4Z`)Z(8(1U>E`=NF2L#A'H(1<!@(Y=$"!.`,`=*.!I-P5LC1;HB$$!1J>P XM=:2"G)N;*!`_%X@##`]&`>B'2$-Y`(ORC0#ID`<_0.K#VZ'3'65$X]M>&,.L XM58X#S\10'2K0S`E>DP#9]-@QU(<AAJ:@0`Y5HBVSQXL-\&F*=2%`(;:AQ=>E XMPQ'\:)S2`E"'!N109.%26NG2H0=^^+&IZ8C#3/.I-2!`E)URXX1U?(JQ`MC5 XM#A_))V#1$8T!0!1WZ1`"/R+$G-EE3!$.Z-PCK%.Q`J0C!7/-7#E_B+O&68RL XM"0B7Q=::@,7*#$>J>"BU.#.ZTJ%#`'Y;0`X]AHY\#""*Z$##`'H0R5%,<@*X XMV($J"[2.98'2`*+\!SI^(,3"2I6)Z)"&<3FZ%U;L@Z;F'*D0/;!;%4@R43!R XMQ'4=Z\-0-`UW+"V8+',GAWWD$&78Y2PZU=`\:13@I.F0PCY8:M'&H0QRH0T@ XM`0;(@^MZK%!>E0%Q/%#%?QP"AP90ZACANH'Q:C:DY_Q<(P3PSGCVP*)TD$!\ XM18J[=81CQ``-8FL9*@X!4#<=RM#'B#/\/P.@#!<MP]$5#"N\.J0!'0T@0-0\ XM',DZS"-<6&@J.O0Q@"';+071A-P">H""K:V#;4E>1SE"D>3E)3++V'@O`=!Q XM!P&@XQL$P.\7],%?`!3U-$R-XE*AN9<@Z`,71,-1BPW7/QGH`QT^L!,%`'`/ XM%X#L;:$0F?D&H$:/<5`+*1MTH0^M1D6#@]%%Q<<B"N%-0F##S2#;A:37@6A+ XM8UJGFBX$&3F(!@&P#:T&&.M>F)&/*@,!`2,`P#L.`&5,'.`%`/#"`70`@'`8 XMX`<`0(8!JI,)`T02`P9X2"(*(`*L%:`/```&`?8`@"!;U!0#2```E#``$(Q[ XM`+[``0!<L`-"^``G!7#!/T@!!,;A-`_O2(<F\H&+'@P7'8G@53F@&XK@/2I7 XMZ,!$\-AE)^O@J!@6X).?,.EP=*B@=M0ZE*X>D"EG5?P!`E]'`SINRTA5(N). XMJC@#)L`GAS,<'2S`.,.?-:8.8!P[.-I#`G@T"&(@H`O#0)&*6.0B&!G@'ML) XMA<<*/2YZ[@(!`,C$/?81BP%DC0#3`$<*2'0,(QB@="-RMA$(T(=1_>#?P;@` XM%+V^#G-T_>M^\?H.2%1V7`3AWZ)0^\#9;HZ>_SSH*1(`T0'P(GW;(^E-*U0> XM*-"X!!R@)@UH_`&>DC;'B^)^YCV`XEFP"!OD:A%$$``2$A'Z0N&!`8M@WT/Q XMH8@.Y&\=LO5\@7;0I$5@@RZ.7T?:FC8*QTO^'W7HHP$<?[7T_D/R#<@).@#Q XMC\&$PO?$$`#0A2[X%A$>1A`X/#M85[DWC!!R1FB<QRI7@8D:P&[<IL,"&B?` XM.K`OP@5RAC^P(W[2:=$/Y:];U=*_?A^T7YE*)6!@9P,98PQ!!`"`@@M#\&^1 XM@'+A0CFV\0#?1P<(@#,3HT4])WV`QPX0,'B%=P?UL!VL$P!]L$W`T',0`'1= XM)VY^80<)H`A!9#?FEA/_8`0)L`[MT'4-`'9&T``29`<4P&B#P`.0XP9=1SIQ XMEP!9LP`CXH/G`X2,-B('4(,*Q`,#P'JU8P<+H`AZ=7[_@`A>1S7S1")UD`#+ XMDSE&L`#KP`R*$(;D$"HA$"=;&(-5$P8`P`=SJ'\]H`>5@P",A8)`5X,-L`Z# XM0'_$D((;N"+65WBY0`])1UYODPB#%0#^<%A!!(;G5S75L2OQ)8D,%0[5!%@E XMA@QMF(D](&U:0P=#4FUU0`2=.%BW$(H1%42*X`5>V&%B>'LD0@>/0%!;0PVO XMR%"+((LEQ@NE6%%;PP#H\`_]$"X"M!=<\`_'2`Y^-WTIP@`>""/\,`])%VJC XM-D%9%0WCX(D#P(V,`&F043[BL`CRL`@8M`]"XS&+T`B?E@@WM'H#0!R%T&H< XM1$9I-6``T',,8(WL\!J+"".EP(WL4%O\X&_?I8H],(,8$%^9AU[(-87-APV$ XMU9#`YENZL@3&AP[`T)#>Y9&(@SD^]5<`8(#6\0)\E3$JR9(&H`+&UU?HP&WK XMX`#Q)9,O<),-:5$FZ0#&]X?$0`!`9XA&N8'55W3I@`_MN'T^0#E^``,3"#W2 XML%\&\#A^08`%(),(Z'`*^&^VP'+'!8$92)`&R92M\)3!B`[U0!RB&$1.5C7> XMY5.J\V%;HY%[T'S3T);(`)>S:!USV0/`9I<4T`/>10?88$IX60>A@`Y$T'R< XMT'-)*73.=I#I4`-/&2<*(`A$2`>48@PI68L,D#\F`0/ML`/+D#4*4`?B,'I& XML#K$8`!'>8*S29`8D(U-&0_;T746904CTDI>X`&-X`0"$`59`P%<1`'HD`YD XM.2((T`A>(`!3()T*,`53L`LA``!30$_HH`H\U@,#$$T6<)>M`Y$1L#5^6#`] XMAP&UV9X$Z0"Z:0F\R1UV(`$N(8-1!I'B1H-&(`'K<`Y=QP!@=Y_Y634ML#6B XM8P0,T%$/$"?XB3]5LP*0<UM.(`$U*`&^63I=!W4M&*%V`P-1Q@<ST`,YX#HN XM,"(*L`A>4(')H`L6E7`"`*$9>IKM,`CI``,S(`V%D`QY$`#DE@T3(`RLR44( XML`Z^8"X$JCKW8`4*<`\M.@A>H``S$ILLB@`]YP`$>9E,V0WP0",V2$^X,*4L XM*GC8,`</H`A'@`!4XV6#0"(.$*`C(@`],*5U8((]1YO#\`]VX&IVP`!\J@#H XM0#H\=YL;B(V8V0A?:I\4H`A$@`"$8"D?0#4E(!FJ8P6X4#`XX@;3$B>-2@0) XM<$GH<`U,V",&2@0!8#<42CS;8#S;,`0'B@A3F@[LX&:&T``-`'4^)0A^`&(N XM(QF#P5@L"@`+@`V!L`P`$`"X0`H!``53P*<0@`XUH%I98P!?@Z?$,)##@`N2 XM`04X1Q3/:@=")`\K6@Z\ZJNX0!+!*AE7EPZC``#G"CF_:AL"@!U_<:O%&J[1 XM:@X\5JW7:HC:&J^JF*ZV,0",=77K<`8".Z_!BE7X:JS(&@#'>AC+VJSZB@Z= XMT*]>]Z^V&;"]*J\$NZ[1Y#<>`+!`UP-W`#FKT`-RL#4P<@;_T`-V"#;_X`_K XML(Y>9SXM)`B\\`4@-@&!X`3D$G<44``$ZJFD9P#K4#A`>`Q$`'=AYZF(`*J@ XM-Q<?!`RDMS2A1WHK.G936SC&()!HJ9OCX`XB8@<(X*AL2@Z5"CD*@*F:B@[( XM4*IQDK:/2JD$BE"#P`<@)ENJ0R=")`NZ9*]HF[1<:PR/"@".&JJG-*CE2IEH XMN1T^M0##0`=?D`C&N0#*0`=4,")^89QO4PCVD`<'<`^7L0T=4#`S$`^>V*.D XM>P_1<`_:,`C9\`^^8&Z26*_V,`/_$`WN$`W?$`W8$`W;,`<$,`#Z,`'Q\`_& XM60?M$`V$M0T0);IYT`"F>P^H.TI72Q20>Z@BX@400![_L!K;D!7880".``R/ XML45>]QA'(`#LBP#&8`0%H`GSJP#+,+\$P`F,8`4"T`ACYU,LNB-_L*)W4#A7 XM8`"+\`0/I4!?(``>8`!3P*(6H!U'@+X'X`C8@`5;\`]==``?,,%>0`&)L$4, XMG`@)G`@'G`@%G`6)\`0"(+8;F);7EPZ2T`Z]22(\2*>#U@<3L`O_=`_KL!_6 XM@PZ'4(E[)P!:UG62$9!^(``4T`=FU:?197`D@H.!RJ>Q]`4!4P[=6P6!P($! XMH)LZ@,/LT`B&8`'S8@2V8@L4$``'&BHP`@]^(9IUI0@<D#_Q4@*)8`AO;*3] XMLPI^`0]XK,?[4`)U0`/_X,=P+*%_@04)L`1;E34(0!>0C`>V8@-4D`!LL\F( XM(*'K<`JXL,G7@[;HH`P[5P[KD`D`K`!0`,`.\,I&``'7X\8!H#A=7"A9PP!@ XMHP<&XW6ET\=O'+53NC]>M3N/',F3[`&7S'*:S,D&L,GNJ`A#``&?3#7KL"/B XMJ@A"``%4LPN;/`6#D\HUJ+2\P&4)@`2%,@J7O"//W,D[9P0(<,WDD`X0P#ND XMK,7H,`.IG`X!\`^!<(@!0)!+6<,?P!W<X76F9P$]T,,1H+-I!(-32JDD45;A XM8@8,(&Z&J(%A!]$%,*5GN8$*H)O70&KLT'5--2($T-``T`<5`-%O(]$*T*:6 XM@H9^8T7)1`%U()0&@-$8@(#L20P*`'0J[=%DJD9JT``E``"`P*(0,`/#D)Q+ XM#0B2B``#RQOK4*_`T``D4;>?/"(04`+CN0Y/4+<'V@!`$%%^(P5@70)0-[!0 XME]78T0#F9M9Y_`_%B@@<L`XS8-82V@!@H-;K4`)U:PP8<M$,8`%`?7Q"?;*6 XMF@T]H#!T4`L]4#IT(`KK(+UR$L?`4`</BK:(&P`!H-(]-]3#\'8\:``]\--] XM<`.[8%%"7`"NH`!`4,H.@`XW4*JATDI>]]J$1FJ$3`BSO0A^,,]%,-IC5]J! XMR';!4-BH&G=A?1@4R*>W[06=.LMBS2;4C0Z\@'JF6LFAUSADL*0TT-:K<2DX XMM]V"X-UU2WHQ[`/C#3D^@-B24=@8DJF,;=KF/20`4`!U0"EHZROH\`?>C=CI XM:=^+K=S#0-J-O8%<6L,"H`XBPJ!3W0`!8%A>P`#B^P?B'*CH0`!(G*<$20&Z XM20WI,.$<H'@\C=&*C=\]1P&!:`<8@`[#6"E9(P%UL)Z,#>,+?JJI6L^@,*-& XMP`&1[47I8`@`T`,DX0<NHZZ&->2[X`D+,`6B(.4950$\@MH`T*&2`0I23C4L XMZFS#X`=&`)TU6#C!+>5@**$]L(-E5<YQ$A;S8-@*L`XCT(9L?C5WJN79''9P XM;@=A0<A>ZS>N@`L6A2.<P-Y>]^)`]R0DL`N^0`)9XP!<!`'KP`"X8`Z//@!\ XMS,:5#J$'6@*\00<MH.5A-W<<T`>\XG5P[@5A<7M=]`]68"NBZ#?GL^C$P..F XM+G=#S@<P`C*R[@!K;C:U@(`[>#U6T,6&KMW)#B=>EY)Q/@"`1>?5RNC#8"Y? XM1P>Z@`M0A^S*;F[>SB?=+NM=O`Z=@`O'3NY\<NCJ7@Z&R.-^[G71+N@$0,\1 XMV=(:,*;,WL5X3C5^M>\\D@[/VN^GU.[I4`3_<#7G@`%01PP8L(.:@`$6%?&^ XM0*#L1@@_D`$Y(6^D$`09,`CW]@[KL`EA9^WO'N,<P*?+<I\"S@'E6NWPO:0Z XM;NV@+J&B#CF%@^L\CAV4S)K0&>;[XP=5<.;S[A+#3@[K@`/0N0)>AP1$H7@! XML`2YH#!1T.$RC@XDXNRRR>/K\`LJ6H,K"NB,AN>?O`ZMT.:0@PI6`SF^<+/F XM8E%EB.T5*O!5NO6-'M0\3@<9L`D7T`89H`,8X/<[E3%S<`#18`X<'P,:L`[> XM('0=B)G>8`X3C@$JCM@M'M2(R*?,60GZ8.-LG.,N?HA$O=FH:C:-H*R1CK`. XM@`LKT.E^DT2<?G6[KL!>D)O8X`<V\.=C0<CU3B+(.%2Q$NJ\48;HSNRJU88" XM<$FRKEI_4_*BW^,.$.IO/2K=^JW;$*[,Z0&C;:K1;_.CC@)\"C]V8`$"3@G! XM`_/Q38&ACXC.CXCS.YX\_^SR[//R7OM!#P>Z/_:]G_Q5`_<1T(8#8#<[&#GS XM*P!FY00*//]U=5?3B0B<(.5*'DWS[`4#P`>U@$E2KAUR(N`0</X,*MXRW_Y$ XMS:`!$)L=6CKK8`CF\M8AH,6X(.7:(2<"G@T*5`Z[+-Y+NE$,FMJ`N.!&@`&` XM>-H]O7()_OSTH`&1H`&9H`&AH`'^8%4N1/B&C_CS1@%[C0U"-]*8N0_DL!W; XM?0R:1BV4S!GX33#Y/?IV^^/+DP#8P;T-KOE\BJ%V$#`!/BM?H$#E4*WZ)-Y+ XM&@&6O]@$D]]$7?\$H."6J9N`0`[;X>%,H&G4<G6@']1Z2KCKQ`6I^@^33(84 XM(.!$Q',Q+Z],7##]9-AQ%\.&6@7;P:=C9@\*[,4Q#[(%4YL$J8A,R0#D<+8, XMH+:4*J+J']1_%R<,L+=PSP%J2ZE")0%6@`Z],*/4HOY!_7=QP@!J2ZD8$CEO XMUU$I$"<,H+:4:JDS[W.CSP!J2S46'E&/"GH*4*UQP@"+2S5\^C]R@2.@D`^> XM3P!Y0.L,H+940]<1]:CF(E2TS@!J2S4-P!M?J]+(Q(1_ZMY5FP@/]:=J2ZDB XMJOY!_7=Q@GJA-WJE!PRGEWK_L'JM]WI4^J?H8`](;'N+<.T^1Y"(RI3WL(X) XM'3`&R@5L"M#C(*)9DR@SGZVC+P%["_=;H+:4*E118`7H$`K;OSPSGZVCCY]W XM2PX-(!E?"WH*D+6C1P1:!0QX\*"JY]3NB`BNUWQ3C*%V$*U\,",]@@V+<.W9 XM.OKX>;=LBR%T@`/F<L]W:K(+/LN@S@6A^LL)H#!\F@#%20!5O^;HH%]9/LL% XMDS66-0@?JK:4*MDSGZVCCY]W2PX-(!E?:R[W3`<RL+=%PGE$D&99:WH/JGI. XM[8Z(X'K--\48:@?1J@U(;'M==\\S<I^IMP)/FS5/80&+2S5\RLER@2/.T/GE XMD#4%,,1=USI.G#EU$#"GNK9T'5&/N@X11[]S]Q2TCI]W2PX-P!M?"Z&@IP!9 XM6[6)\%"SW`,%0P=<P04$L`2)P`5:M0UXL*(I7^_Q!'M\BJ%V$*U)@,2@?K=L XM*Z+J']3::BY3>*<FN^!&(#G92M"Z20'A<+8&L+<@]O]WR[90=Z<;'8@V0`@- XM@`ZRT*GBF@A::P"ALN(,0*"AKX&A0`B#(JY<J[:4.@]?^*@\3P1:&\/1-[:8 XM>0KG8Y\(0/2]"O:*4`"?'*EUL'U%N:6Z^0?G<]*Q1J`!Z0,BP``@T`=NP)D' XM:E>LMX^ER;9OC89U+OEVH`"<30=)H$&`&FN!84>QR4$D@'IVH`"<;9<38%>L XMMX^ER;90YY]U_@V<Z1)@;]@1-78T70>-L`XK:0!/(&ZP$`"S(`#&8`#/8P#& XM8`!3"@SA0@8*H#"Q``KA@@8*(!FZH#!2(`I=D`"BX`0)@`@.8`8*@`@.(`8* XM@`@>L`8)@`@>P`704PPS6@XE0!+J!PI<P+A!!@"BP`4)@`LDP`"V)`+*2`S? XM(##9@0X`T(Y>;*A"1\.%MPC?<+8*<*!VG3_[4P<7P-EWBI3+C0!@OP[7P)D' XM:M?Y\QR+<.U%.;:8R0/?<+9I*Z%G>.;K\*4!+L_$3:6QJ0@%\,F16@?;5Y33 XM%\8.,,:8.0#?L!UHK,:[O`BVS-E@0\>+8,<```2%?'R'+,SS8HO]<PJ#7,C' XM=\AU(`.+_,8'N@BV(`&CS04$L`2)P`5:M0W5B@<KFO+U'D\>]0^V(`'_+*[H XM4`G$H<J;`,!>`L`,(,NQ_`^V##HS2BVL"39\\,M-)<S(_5`M:LPP8@8S8@L2 XM,-I<0`!+D`A<H%7;@`</FO*K1\W"'D]];@?K)`0.0#7_8`L2T*SHX`+$L7=^ XMXPN+8`L2,-I$D&99:WH!HWIA[HZ(X'K_D`X8^@^V(`'_+*[HX`^=WR/8X,\` XM30P.,-!!][T$P`@'P`@PS`A70`",\`5Z6@6]:0#Q[1<3LPA.8`"TP`,,,@<# XM,`KC/7V]:0#Q[1<3$W:TT`,,,@<#,`KC/7V]:0#Q[1=>0`"TX`,,,@<#,`KC XM/7V]:0#Q[1=>\%!.4#A68`"T\`,,,@<7,][8,7V]:0#Q[1=>\%!.4#A68`"T XM``0,,@<7,][8,7V]:0#Q'7<*0`OWY`4/Y02%8P4&P"!S,`"C,-ZVMPC",'V] XM:0#Q[1<30PM!P"!S,`"C,-[3UYL&$-]^,3%A1PO\Y`0(P"!S,`"C,-Z+$`S3 XM][TI`P!$$"+",'W;P:?_8P=CA@_<P"-CBYG3P`TTTNWH(`;>#88"$*F10S7= XMR^W=L@3>_<4I0L.%]PG<0",*@R,NX-U@*`"1&CE4T[V,A2,7X-U?''BZN0;< XML!W3B$G=B@[T4*K3&-+4IYM#P`TT,IXX(@VE&M+4IYLFP`W;,8V8A"$X\@JE XM.HTA37VZZ0_2RP[3B$FM@R.'4*K3&-)"9P.Z:0W2RP[8T748^LL44-=VH`.% XM?'S[T`*[G#46,.G)2?P*4X,ZL,MQH@,'"NW!C0:ER;880@=*8"X```,YT744 XM(*)QH@,UJ`.A_@#D&2<Z<*!VQ7K[6)ILBR%TL"Q&8`&^+<0UJ`.%#-#QL1I1 XM;006L`[1$"<Z<*`]X"=U<`,UJ`-=IQHMJ`,':E>LMX^ER;880@?+\I^^+<0U XMJ`.%#-#QL1I1_9_K$`UQH@,'V@-LL#4)P%@UJ`.3WG4<4*`Z<*#ID`HQ[`?_ XM1`=J9P<^D'J#0"X3Q`4SR@"8ZP%<!`+KD`%QX@.I-P@$,*-?R@$^L54_F@28 XM"P)<M"=&``**)P1-"@)0Z@%2"@*_#`$=%0/F\D]TH'9VX`.I-PCD,D%<,*,, XM@+D>P$4@L`X4$"<^D'J#0``S^J4<$/\@P$4>\'8+$'<&@`21*.]&P!7#Z1,P XMBC6#Y0BK(PQ4&0TM&%%2(`(CPA7#Z1,PRE"JDS4@P$5[8@0@L`!&X`%UD*26 XM0U:#TO1O8PQ"(`(M4*T`+`)AKA:XL```P/1S$9M<Q`'I\`P!8"[_1`=J9P<^ XMD'J#0"X3Q`4SR@"8ZP%<!`+K0`%QX@.I-P@$,*-?R@'Q#P)<Y`%O!W5AAP03 XMY`5<X00ENPV!$`X/X!?YH`B=P`8-@`A:(`*Y@"$LRA56X`'1L`_1H`WBH`]< XM!`+B^P#5F@A6X`%<Q!5&``(+8`0>4`>^`,`B$.9JP>T`P/1S$9M<Q`'I``0! XM8"[_1`=J9P<^D'J#0"X3Q`4SR@"8ZP%<!`+K0`%QX@.I-P@$,*-?R@'Q#P)< XMY`%OMP!Q9P!(,$%>P!5.4++;$`CA0#J#$`Q4.0T1I00BD`OCR:)<804>$`W[ XM$`W:(`[ZP$4@(+X?4*V)8`4>P$5<800@L`!&X`%UX`L`+`)AKA:XL```P/1S XM$9M<Q`'I$`M.C*$YT742@`Q;'IL\N*)>(`%!'W%^X`.+4`.+8(582-.J"/;K XM\(0^D'J#0``S^J4<P$5[#0<`+`*^.45VX`.+`%0$,*,/D#4<@`A.(`+K8`5= XMIP'`^@1==S6V@01=IP$=%02&:`-`9P8`\`PH4`;)A@)G``#!@`)K<@HH,`<` XM8`8H\`8`<`TG@`<`@`0G4`<`8`HFH!=88`*WNV[MU@THL/'S]@TH`/($@&]= XM;RX<X++I(`MQ9P%G.'<*P$<JFC41%YM;9P%:KJ20\P,JJLY8&YMXH':L+N]V XM8(5?Z@<I/^2*4`!E[PTC8@'JC+5&8`%X$`7QKL!V8(5?:@044/;I8006H,Y8 XM:P06@`<[PNKR;@=6^*5&0`%EGQZQJ<Y8&YMXH':L+N]V8(5?Z@<I/^2*4`!E XM[PU1:P=`D`@/900Z``0]9P-`9RX8FA-=)P%?9RX20`%"@@L34+`C(@&L"032 XM*0+5";[56?OAJ@':80<^\`\TL$@+9P<^,`@$$)U>(`*+X`24GPQ%Z@1SX04< XMD`<#`*4&8"X:(`!U8`%O[[;8;@!\<+7&`PQ`D#4:\/85RKP8$/\&8"ZC?EN+ XM[@=70P=Q^)]V98NLP:*4OPW5B@<#$`"V:"ZJ00<Q4,[KP'G_60!?%P#R;@24 XM#PQY0`#W@`V#,2(8T`-K0LE^<%M>%PC%?0X#X`>WM>CGLC4I,"(6,'<&X`=Q XMZ'5;%W%&8`'JC+5&8`%X$#!VP`,UR`,C0@&?7,Y:9BZCOG-VP`,UR`.&W0+F XMHN<P(@YQ1_G`D`=D$"<\L`AV#`!`8-@P$(E&P`-`8-@ND#4\,"(2H,Y8^Y]Y XM`"./@-P8``2Z;`08D`=,:`<\4(,\8-@PL`[<H*+JC+6QB0?:S`,UR`/$G?)# XMK@@%4/9>;P<\4(,\8-@PL`ZT,"+PXP24#PQX@`(JJLY8&YMXH,T\4(,\0-PI XM/^2*4`!EGPUQP@,UR`.�/KX`SFHAITL'-VP`,UR`.&G:+_J<Y8^Y]Y`"," XM@-P*H,Y8&YMXH,T\4(,\0-PI/^2*4`!E7PUQP@,UR`.�/KH`PJJLY8&YMX XMH,T\4(,\0-PI/^2*4`!EOW-VP`,UR`.�-QP@,UR`.&G:+_J<Y8^Y]X@`(J XMJLY8&YMXH,T\4(,\0-PI/^2*4`!ECPUQP@,UR`.�/KT`QQP@.+8,<```2& XM700L2OG;D#4\4+WH8P0\8-@M`*48L`X[9P<\4(,\8-@KX)L+$'<*@`21:*5& XM@`&^+77[,`C"``.((`4B,"(8('7P:`08\/8)\`?98"X_70?3H*(]L``MK<T\ XM4(,\`/;3/`0B4/9]=RYDE0(C8@%S9P!^$(=>MW419P06H,Y8:P06@`<!8P<\ XM4(,\,"(4\,GEK&51:P=`D`@/900Z``0]9P/3)R(30PL*P"`$K9LO0`U)QP># XMX@%^T`!;-0J`T`!T(0C)-_/11]0V``@-P/-E)`@-X-X;3="Z&0_3L!TX-ZA^ XMX<71MZ6Z60W3,.$*H'@S;ZCAP@<[N.4&X`<[N.5CEZPXMQ@$,`71PV.Z3(8S XM;ZASRJ(4PP<-0!=^,"BQ"9L*L#P9@'.+00!3@`X@P&/+$\\#9@!^,(C<0"O_ XM8(AZ*G0T7'A0,`U))PA.:#Y$,0E?G"**R)0R,`T3S@#@"@57QT5"1*A>[',$ XM^?A,R0#3,.$1-\(^L:/H8``(\`?8ROY&4+080L&#,`T`T`+=LPU1M@@+WD4^ XMH0L8@@X@@&Z`,"@,,.F8.Q<97M5R3P=B$"<*''K<I#6+$-73.:R+X`2V8@7* XMB`H'P`<UL`/!4`>"IPUEF'KM[3=8SJ!QHL!<(`#/D0A<(`#B*(X!8(L^D@(& XM(`B#@NOL+^]?R@$];XOK@`FY4-]LS**!,0[1``WBH`_.B@[OL/VLN3PYT#A^ XMX.:HE^&CP`<-0!=^,(@>$`I^X(02Y`%\T`!JH:([$-6V>*<^$@`&X`>#$IN` XM.`R&B(A"IXA,^0[1,.$.`*ZES`!7QT5"1*A>[',CKIO&$`THSJ(:X!,[*I(& XM\`<SG^M$;02\XNKA\5!.`%31$)#K$`"T&TVH%PP^H0L8@@[9,"_@*X[BN`A. XM@"[+X-0!X`&"T``C,2@<<..82^E>L#1HJ])RG`[:,,B+P`4"(([BJ!:+X`3R XMB0Q<9`!SD`%QP@")\%"S[-Z+8`SM?;4T/W9SYP!UD`(3U$KGD@A/%'I$L0A. XM``$#@`R+8`42,`'3D`A-,*/'T-Y72_,,.G<&@*9@G0(&(`@CA_=$S:!S9P!U XM4.9V\%!:92D1YP7RB0UV\*"SG`(&(`@CA_=$/<O]%`"AEWK+\R9>()_84`<K XM^KX!$'J+L$572_-C%^83Q``]+[1<I`#ID/(^TMX?)+WPD`B\K9RAMPC7GNO3 XMMQV*8`;K),^+8`4&P""T``!CBYE)$!P)O:(MZDM=!!G5L5P%X`?8FI2AL!Q7 XM&@`>L!S95!V+X`0*D`$.T$7T],4IHHA,.0#!D=`,`*XX$@HS4@[5>H;5N*U! XM_7="1\.%1PW/D'3)\1?+\1P^L54_F@0!X`'5$0$.T$6CL!Q?G"(/Q0Z82ZS* XM<*?8013Z%DT"0+EWZA,[F@X"M0A.$'<S"@_4*P'7F[W_D`<)@!T^L:/K\`9" XML;J>.`/VX+JE&[NS6[LI5`C2@`<9\`OF)H[1``W18`T[(`]R,``K(`]#\`1U XM``\^L0C6L`XA\`N\(8[1``W18`T[$`]RL`#NMP/"(`<%L`+"L`'Q,`1/4`<T XM[@R+``W8<0]:P]21<[W9^P_WH,.`$#FP*[NTR]B5F2(HD,,```D#,*`%RGE/ XMJW@%$+2E`P@E\`]_4`<LAP\+P`<HQ``+P`<"<*<+P`-<LPY](!2Q@'6'Y`]6 XMQ\:+@'I<,*-$\%!RL:._T#J^*[S$&PW9$`W:\`1&MH-4'<"VB+F5[*0#6J"V XMX@RB2P=ID`<0,`C&,`!X,`&^H#`9=5MLK&7H$.0UV!8/X`L8$@!R@@X;T#SZ XMX&I.P`#W,'9,70?'P+RW/0M*'`\S8`]!6SI`X!/WH#4`\#5Q.'8+X'4Y#IT+ XM$)N7@@[%(``]6@>KXP]DE3E.T!;O``C!``.(H`04$'[^0`%\H`Q=!P%39`0P XM$"<NL#P+,/5QQP!(P&AXT`*Y,&B#X`\2T`>$[0S<7`$$4``\H`-\H`'&(`05 XM``/^(`2-*@04X`3X5H.`Z@008"XB2@<!$`3$;0-Q\M3;P,T4H!]#<`0[D`U] XM$`'AYP\4P`?O``LPH!]',`0[X`4NP`?W@!WWH#5,38'WH#4`\#4!@`1Q0@.) XM\%`,&B<RD`@$<`]:`P!`4"<^L0C!T',H0)`HL!WQ'TT,0$^3?G75VO.QF5$" XMP`,P<*=!6SH@L`[RP`,MD.-!6SJ`@`X:(``\,!4XP`,Y\`<T$+2E`P+).:=; XMQP#W,'::H8HUV!;;@`ZS@-QA_0#)&IN#8`50-PA6\'6#,#&V$0P\X`)U@'HD XM$BI"4(-*'`L\4`0VP0-E4`<U@`[#$``\L`)TD``\T`(Y'K2E$ZVS$``\,!4> XMP`,Y\`<:0`(/D)PC<MM(<.&S/.D]\`\/(`?!BP[K0`_WH#4```*>3;@RD`@/ XM]9\]AP)$S<;WH#4```%U<@_8$``,JM(+X'4+(,\+$)M@0Q)=YP`H<P]CQ]0Y XMC@[3``#,&Z>\R:#+LP%X$`&^@"$!("<-=,MTS+QM<0WH@&TUV!;/,"(.8'I! XMT`/_<`!_<`.Q@'7@,.DJ'>:+X`2%XZ2*8`V*$`^*T`R*L`Z*\`V*P'K$\`OC XM";W$&PW9$`W:\`1U4`\E\`#$RL8B%SA_(-?`0!0^L:-Q0@/WH#5,S3P[2-5/ XMFPA<L#1,(`")0`'":@<RD`@/]9\]AP)`YPMI;:]>\%!.H,!64#B]&@WG$`W2 XM$`V0,`#3$`W0@)>NT0(6=01.4`?JH$^8.Q=64,F]NN"Q:3[TCP#1``V4W-'0 XM4*U%#0U7M^#8X!,Z"PD#``[14%C7'@T`H+/1,`P^\0M?MPA#L#1+,&;<,"-; XM<+S7'@U8,P0$\`1/D`?HL.!C%^:+X`2%XZ302[S1D`W1H`U.4`?U<'5<-!=. XM4,E.>NU^@#?QS`)=YQ$`L*=6``,WSKPN$'Q!6SH(,`SWH#4`8-4&6S##X*W! XM@`50@`</L`+!L-/8L0/:0($O@@2#859_4"A8,`P`H`%,$`9T0`=I,`9E``)# XM``(RX`(P``,XD`H!D`1N8`=AP`9I0`8@,`=T$`9CL`8@,`=IH`=ET``*0`)) XMX`9V$`9LD`9D``))\`)/``)R4`9DD`9R4`9C0`=I\`:<J@`DD`1N,`=U8`9F XMD`9CD`9EX`9T``)M4`9M\`9R4+T*0`(J``GE-@54$`1#L`0@\`164`128`1, XM\`17``(J``D#T``*0`*\$`"AD`%#(`0@``(Q(`,O(`,W\`(X,`,@``)64`9R XM,`<@(`,N``,@8`9OL!5)(`1-T`)0,`0*8%%5,`=A<`9EH`,@``)#(`0@D`9N XM``=U<!1FD`9L``);D`9N0`9EX`9TT`4*8%%IX`9P4`='809IP`8@``(M``(G XM,`0G``)IX`9P4`=T``)S\`9U(`=C4`8@8`9IP`9E``)IX`8@,`9U(`=R4`9N XM0`<@0`9I(`=E,`9T\`9RD`<6E09N0`9EX`9T``*04``M``)W@`9E(`=E``(G XMD`9N0`9EX`9T<`(@D`9S``)A``)N4`=M(`9EL!5F(`=OT`8@$`,U\08@@`,@ XM4`9Q4`=AP`86!0*0T`!T\`8@X`9UT`9B4`9;\09F``)S``=A,`9E,`<@8`9O XML!5E$`9C@`8@D`9N0`9EX`9T``)L4`9V4`9L8%$@``D-0`1E8`9A4`=L0`<@ XM0`,@D`9F``)N\`9T``)S4`=P``=LD`9E0`8@\`9N``)CT`9D``)LD`9N4`86 XMY01/0`5%,`4Z8%$@``D$T`(@\`1RD`9GD`9OX`9AP`8@,`=O4`=R,`9E``)I XM,`<@D`9N``)IX`9P4`='(01!L`0*8%$N(`9AL`;K)@1!L`0`D`1N``=U0`<@ XM8`9IP`9E``)C$`9N``)N\`9T``)B4`8@$`8@X`)"$`1+``)FD`9L4`8A8%$M XM:P1IP`9E``)N\`9T``)F\`9UX`9DH`,@4`)S8%%#(`0N0`*0,)YWT+)#\`9U XMP`9D``)N\`9T``)C(`=E$`9T4`8@,`1"X`(D``D#P`(U@09E4!-ET`9P``)O XM4`=T``=U0`<@8`9IP`9E8%%)X`9D4`9N0`<@\`9P0`=I\`9N``)V$`9L4`=E XM``)O4`=T``)O8`8@(`=AX`9G4`8L``)V$`9LD`9D``)F(`=OT`8@$`,U\08@ XM@`-^D@9F``!EP`9S4`8`8`9OT+)C$`9S4`8`0`9E8`9A4`=L0`<`8%$E,`:1 XM5`)K$DE7(V[F5@)S8`8),`T%$`!C\`9NH`,4H,9#\`1.H`,4$!EP(`=NH`,4 XM$!E0(`5.H`,4$!EL,`=TH`,4$!E,,`54H`,4$!EL``=TH`,4$!E,``54H`,4 XM$!EL``=T$`.`+P$"P`100`4Q`/@2,`!A4`=XH`,4,!9!4`58H`,4,!9C\`9M XMH`,4,!9#\`1-H`,4,!9C\`9M$`.`+P$#,`1/T`0Q`/@2,`!R0`9RH`,4,!92 XM0`12H`,4,!9P4`=NH`,4,!904`5.H`,48`$$X`9UP`8Z0`$60`!.4`5,H`,4 XM8`$$X`9UP`9L`/@20`!.4`5,P`2`_P`#@``$\`@!``*0D``H``GT`0D2@`00 XM``D/0`B0H``0``D'$`B0D)600`$0``D&(`B08``"``D4``&00``@``D*@`*0 XM0!^0(`%(``&0\`"$``D*``&0<`"!``E9"0D4``&08`""``D&(`"00`$0``D$ XM8&X%X``P$`,R,`,T4`,V<`,XD`-!(`1#0`1%8`1`8`)-3*"]@=\:C-_`P0O) XMN@^X(!0-,`JJP0A?9P8#T%0_0`#B=@51X`*C0`(!,%.2L0+%P`C7P`C>L`-" XMO'/$T`+E``"Q@'7HT`,,/`>8@@`3X@$KD!VZ(`$!X"$AL`P>X`L8X@`?X`C% XML`+_P#``,`^D\`$N$``ND`(!X`(!X`(<$`!"(11"(11"(11"(11"@<8_0`". XM4`Q9\`5>T`6=`!R\D*R<,`51(`56<`55X`$>P`C%D`N2,0X?X`L=```.\`&L XMH`C@H`+`,`#%D+X+40R7T`J7\!@5L`J+H`]"4`?W(`[FX`O@```.\`$6<``K XM\`^YL`0`,`^D@,:EH\&^,`TZ@,:ED[Z_<`Y#T`\6$`7+$`WG(`<'P`C`D*`( XMD+Z'+P<'0!D)B@`:G`_1X`WY`+RL``WH,`<#H`CHP`J*@`S1D`_&"PL`,`^J XM,`^D4`?.`,)=\`5>H`59L`7G_@,$`!R\D*R9)`'J(!F0@``:"$-"+D1/0P`` XM`P``!+X#!0``<0Q$6%.U@`D```P@(#40,40$B"EOZL@94P:$D3=RVH2A0Z>, XMG(`#3D"14X9B'A`;T[BI*.=$`P4G3Q(I,F6(E"10J"1YXD3'R8`%J*!),P<$ XM'#EOSL@)TP8$G3!KRO0,TU,DG#IT0(0!0=#@G(0+&_H$*I0H"!!FTK#1&L8- XM&1`W(14P`U$BG9X@TD2](Q>-430-?[Z!8S&NV3(C>[*]6";,&+MSCE9L`YB. XMBZ\Z&Z8M`#'-&9%AV/A]&C7LV+@].;HA6N:L5+A30;@0$F3)5\]E6'PM:YH. XM7K0*<`YV6]%T0CJ<O_+TR<9P:;]2P8IM2-?VW89S2(,8S?@T;IRV&U:^/%JS XM4ZB/000!,>9-&XEF0;`1J1T.G31OW$AEP^;-G9[9_9)I?%WM6#ME:$;'&R"( XM`1U?8Z01UG%,@05443$812`.7\T!AW%SA*?3<%L%-511D]%%'PCQL?&1''7( XME^)^%Q'QQ!0@R.`"#%*E5QQ)CZ6D0!).6/'$$$'(1)--N4'RP!!";`:59R!L XM(=)^(W6A(T[?T<$D)`<DX49P5!4$PE4*,=1A5VT\!LD`&PJVW)=H),3&66E1 XM8.!LRGUFVT0@H-%@>6W`L=Q9%@%UD8-EQ#9;3W'FM]M$)($VW1M1S2&1'%$! XMEM`9=@WH4QICK/%5'7#T1\$<>8P4!AX@!`I1AE.J]21_D"20IG!+35='&P9> XM9,:#($2H*86:6EA&@F9\])RH;MR:*XEF?'DA0X)!E*IA=KTZDGIE`,B&F6C> XM%N=^9H11!QN1/BO2&8[2X(*.2!3!!!1$XD1%'GZZ@2Z2(#1GEQL$PC:==&3P XM!$=Q>=0Z1YN4YAE@J!RU\:H<ZZ*D0!%8!-$$%$P4$:]:4J0(`K[QU=E018G) XM=E12((`K+KGZ\?=&L^JV>F225+!$1:L%J'`F"#P,$5]%@3$+0LU34%%@&8,U XMA*(;LHE&VEE$4[%::P5^A*0/(.@\`,XCB#0&&W7L1U5B`;_A`AHB3$9&0F)\ XM-I0;**0PV0LJX'0$8!9-U-!4;Z]=5+*X]F4@'7<4*A\,,]9X5@R)0X*`"B], XMMH?:;+N]PV2)3<0I""G.89D;QXD4::%G]0`"#)<764!B*(X1%4=GV)$9"'OT XM5X#H4N'!@ABZCZ$[&;I[SD+`P\_!@E([V-Y'ZCBQ7H?K(,`NNV:PSY'Z9`J" XM@,(<I/?0`PPIT#Y9]2Z<"H+I,.`APQ`PH!Z0`G0?U!'GH2J:HNOPR0<YY@7C XMCD+Z,H@!"TQ0O0%6+P7,4POWCF,Z\@$O@07HP_C.]R72@>`%(+!!#6HP`QNX XM`((++)WV9%"#&-Q@!EFKX'%6T*L9X(`&.0A?"3*XP0XF;WP=40C<Y(#`R4A0 XM`2ZXT&2TQC.?C:0Q/7F9R(9F,ZF8H5'Y61K6M,8UKX%-;"(@&WS.EC;5K:T. XM;5-:6>(VM[JIY6Z@&TI%DM,W\]@J<!<97.$`<[K$T:97C7M<Y%0WN2(EX(MA XMC%X"$Y"Y]XR!<V[PW!E`=Q;<A9""J$L+(>G0NM>5(7:SJUU:(("[4^VN=[\+ XM7AJ&-THR&`]Y_4G`\B3I/.A);W;5NYX?L[>][GTO?'T,"`3(9S[TJ8]][L-2 XM_*8P/U`=RPSW>T_(]E<D")#*<]?ZG_H$2,!+&J^:9YA##YOYR`9:TP4/E.0/ XM`Y*`BYCND1C4(`<].,ANCK"$)TSA(UD8`Q?"4(8TY&!:#/##DP``$CP`&@`: XM&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:`!H````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` X:```````````````````````````````````` X` Xend SHAR_EOF echo "uudecoding file cb.arc" uudecode < s2_temp_.tmp && rm -f s2_temp_.tmp && chmod 0644 cb.arc || echo "restore of cb.arc fails" exit 0 -- Matthew Lee Stier (919) 469-8300| Sun Microsystems --- RTP, NC 27560| "Wisconsin Escapee" uucp: {sun, rti}!sunpix!matthew |
marcl@vax.3Com.Com (Marc Lavine) (01/26/89)
In article <366@greens.UUCP> matthew@sunpix.UUCP ( Sun NCAA) writes: >X Swiped from CPIG'S UNIX system and modified to >X run under BDS C by William C. Colley, III Note the above comment in the code! This is based on Unix source code (it looks VERY similar to the version that comes with 4.3bsd) and thus is not public domain. To the author of the posting, I recommend cancelling this article unless you can prove me wrong. -- Marc Lavine Internet: marcl%vax.3Com.Com@Sun.Com Smart mailer: marcl@vax.3Com.Com UUCP: ...{oliveb|sun}!3comvax!marcl
matthew@sunpix.UUCP ( Sun NCAA) (01/28/89)
In article <2275@3comvax.3Com.Com>, marcl@vax.3Com.Com (Marc Lavine) writes: > In article <366@greens.UUCP> matthew@sunpix.UUCP ( Sun NCAA) writes: > >X Swiped from CPIG'S UNIX system and modified to > >X run under BDS C by William C. Colley, III > > Note the above comment in the code! This is based on Unix source code > (it looks VERY similar to the version that comes with 4.3bsd) and thus > is not public domain. To the author of the posting, I recommend > cancelling this article unless you can prove me wrong. > -- > Marc Lavine Internet: marcl%vax.3Com.Com@Sun.Com > Smart mailer: marcl@vax.3Com.Com UUCP: ...{oliveb|sun}!3comvax!marcl I received two or there comments like this since I reposted source code for cb.c recently, and thats right 'REPOSTED'. The cb.c source code I reposted recently was taken from a posting to this group (comp.sys.ibm.pc) last September by one: Alan Strassberg UUCP: ..!{pyramid,leadsv}!oetl!alan. I work for Sun Microsystems, and I have access to the source code for the version of 'cb' for SunOS 4.0. Although the output looks near Identical, I couldn't find even a passing similarity between the cb.c files. No one has yet told me what the acronymn 'CPIG' stands for. Probably Mr William C. Colley, III can tell us, but I don't even know who this gentleman is. With the first modification date listed as (10-30-83), this version of 'cb' has been on the loose for quite some time. Lets see if we can compile a correct history of it origins before scorch the net from another wave of flames. [Here is a sinippit for the beginning of the 'cb' source in question] /* Compiled on Manx C86 by Allen Morris 3/22/86 Modified for DeSmet C by S. Lekach 3/20/86 Modified for Lattice C Ver 1.01 by: John W. Kindschi Jr. (10-30-83) Swiped from CPIG'S UNIX system and modified to run under BDS C by William C. Colley, III To use the program type the following command line: A>cb input.fil [output.fil] Where input.fil is the file to be pretty printed and [output.fil] is the destination file. If no output file is specified, then the output goes to the console: */ If anybody can bring us upto date on the history of this version of 'cb.c' please write to me at the below address. Thanks in Advance: -- Matthew Lee Stier (919) 469-8300| Sun Microsystems --- RTP, NC 27560| "Wisconsin Escapee" uucp: {sun, rti}!sunpix!matthew |