Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (03/04/90)
Submitted-by: davids@ucscb.UCSC.EDU (60116000) Posting-number: Volume 90, Issue 096 Archive-name: util/encrypt-1.0 [ uuencoded executable included. ...tad ] Encrypt secures your files against prying eyes. It will take any file (a program, IFF picture, text, whatever) and convert it into an unusable form using a password that you specify. When you want to access the file, it will convert the file back to its original form, assuming you give it the correct password. #!/bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 1)." # Contents: Encrypt.c Encrypt.doc Encrypt.uu # Wrapped by tadguy@xanth on Sat Mar 3 22:17:20 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'Encrypt.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Encrypt.c'\" else echo shar: Extracting \"'Encrypt.c'\" \(8281 characters\) sed "s/^X//" >'Encrypt.c' <<'END_OF_FILE' X/*-----------------------------Encrypt V1.00-----------------------------*/ X/*---------------------------by Dave Schreiber---------------------------*/ X/* */ X/*Encrypt V1.00 is Copyright (c)1990 by Dave Schreiber. All Rights Reserved*/ X/*Encrypt must by freely distributed, except for costs associated with */ X/*shipping, copying, media, labels, taxes, and other necessary costs. */ X/*************************************************************************/ X/*Compiled under Lattice C V5.02. To compile, use this command line: */ X/* 1> lc -Lm Encrypt */ X/*************************************************************************/ X/*Encrypt is a file encryptor/decryptor. It will take any file (binary, */ X/*text, IFF, whatever) and encrypts it using a user specified password. */ X/*This renders the file unusable until it is decrypted with the same */ X/*password. */ X/*************************************************************************/ X/*The algorithm goes something like this: */ X/* Multiply the ASCII values of the user supplied password together */ X/* Use as a seed for the drand48() function (Lattice's pseudo-random */ X/* number generator) */ X/* To encrypt, for each byte of the file: */ X/* Read in the byte */ X/* Add it to the value returned by drand48() (which is btw 0 & 255) */ X/* Write the byte out */ X/* To decrypt, follow the same procedure, but subtract the value */ X/* returned by drand48() from the byte. */ X/*-----------------------------------------------------------------------*/ X/*-----------------------------------------------------------------------*/ X X X/*System #include files*/ X#include <math.h> X#include <exec/types.h> X#include <exec/exec.h> X#include <libraries/dos.h> X#include <libraries/dosextens.h> X#include <ctype.h> X Xvoid InterpretCommandLine(); Xvoid PutByte(); X Xmain(argc,argv) Xint argc; Xchar *argv[]; X{ X ULONG seedvalue; X double value; X UBYTE final; X char filename[200],outfn[201]; X struct FileHandle *outfile,*infile; X BYTE buffer[2],encrypt,replace; X X if(argv[1][0]=='?') /*If the user requests help*/ X { X puts("Encrypt V1.00 (c)1990 by Dave Schreiber"); X puts(""); X puts("Usage:"); X puts(" 1> Encrypt [options] -p<passwd> <infile> [<outfile>]"); X puts("Where the options are:"); X puts(" -e -- Encrypt <infile> and store as <outfile> (default)"); X puts(" -d -- Decrypt <infile> and store as <outfile>"); X puts(" -r -- Replace: encrypt/decrypt <infile> and store"); X puts(" as <infile> (<outfile> is not needed with this"); X puts(" option)"); X puts(""); X puts(" -p<paswd> -- Use <passwd> as the password"); X exit(0); X } X X /*Process the command line arguments*/ X InterpretCommandLine(argc,argv,filename,outfn,&encrypt,&replace, X &seedvalue); X X /*Open the input file*/ X if((infile=(struct FileHandle *)Open(filename,MODE_OLDFILE))==NULL) X { X puts("Couldn't open the read file!"); X exit(500); X } X X /*Open the output file*/ X if((outfile=(struct FileHandle *)Open(outfn,MODE_NEWFILE))==NULL) X { X puts("Couldn't open the write file!"); X Close(infile); /*Clean up*/ X exit(600); X } X X if(encrypt) /*Encrypt...*/ X { X printf("Encrypting...\n"); X while(!GetByte(infile,buffer)) X { X value=drand48(); /*Get a random number*/ X final=(value*256); /*Reduce it to >=0 and <=255*/ X buffer[0]+=final; /*Add it to the read byte*/ X X PutByte(outfile,buffer,FALSE); /*Write to disk*/ X } X } X else /*Decrypt...*/ X { X printf("Decrypting...\n"); X while(!GetByte(infile,buffer)) X { X value=drand48(); X final=(value*256); X buffer[0]-=final; X X PutByte(outfile,buffer,FALSE); X } X } X PutByte(outfile,buffer,TRUE); /*End of file...*/ X X Close(outfile); /*Close the files*/ X Close(infile); X if(replace) /*If the -r switch was used, delete the .tmp file*/ X DeleteFile(filename); X X exit(0); X} X X/*These next two routines are buffers for the AmigaDOS Write() and */ X/*Read() commands. Instead of writing out each byte at a time, bytes */ X/*are written out in packets of 128. This can lead to tremendous */ X/*speed increases (one program I wrote got a speedup of 400% by using */ X/*GetByte alone). Use to your heart's content... */ X X/*P.S. The important thing with these routines is that I/O is buffered*/ X/*not the amount of buffer. I tried increasing the buffer size to 8K */ X/*and got no noticable speed increase... */ X Xvoid PutByte(outfile,buffer,EOF) Xchar *buffer; Xstruct FileHandle *outfile; XBYTE EOF; X{ X static char chip Buffer[128]; X static curpos=0; /*Next space for byte*/ X X if(EOF) /*If its the end of the file*/ X { X Write(outfile,Buffer,curpos); /*Flush the buffer*/ X return; X } X X Buffer[curpos++]=buffer[0]; /*Add a byte to the buffer*/ X if(curpos==sizeof(Buffer)) /*If the buffer is full*/ X { X curpos = 0; X Write(outfile,Buffer,sizeof(Buffer)); /*Write to disk*/ X } X} X XGetByte(infile,buffer) Xchar *buffer; Xstruct FileHandle *infile; X{ X static char chip Buffer[128]; X static curpos=0; /*Next byte to be returned*/ X static end = 0; /*Last byte in buffer*/ X X if(curpos == end) /*If we've sent every byte*/ X { /*Get another 8K chunk*/ X curpos = 0; X end=Read(infile,Buffer,sizeof(Buffer)); X } X X buffer[0]=Buffer[curpos++]; X return(!end); /*Returns whether or not EOF*/ X} X X/*Interpets the command line arguments given to Encrypt*/ Xvoid InterpretCommandLine(argc,argv,in,out,encr,repl) Xint argc; Xchar *argv[],*in,*out; XBYTE *encr,*repl; X{ X ULONG seed; X BYTE seedhasvalue=FALSE; X BYTE c,i; X X *encr=TRUE; /*Encrypt is the default*/ X *repl=FALSE; /*Default is not to replace the original file*/ X in[0]=out[0]=NULL; X X for(c=1;(argv[c][0]=='-') ;c++) X { X switch(argv[c][1]) X { X case 'e': /*Encrypt*/ X case 'E': X *encr=TRUE; X break; X case 'd': /*Decrypt*/ X case 'D': X *encr=FALSE; X break; X case 'p': /*Password*/ X case 'P': X if(argv[c][2]==NULL) X break; X /*Multiply characters of the password together*/ X for(i=2,seed=1;i < strlen(argv[c]);seed*=argv[c][i++]); X srand48(seed); /*Use the result and the random number seed*/ X seedhasvalue=TRUE; /*We've got the seed*/ X break; X case 'r': X case 'R': /*Replace un-encrypted version with*/ X *repl=TRUE; /*encrypted version*/ X break; X } X } X X if(argc-c < 2 && !*repl) /*-r not set and filename(s) not given*/ X { X puts("Please specify the input and output filenames!"); X exit(310); X } X X if(argc-c < 1 && *repl) /*-r set and filename not given*/ X { X puts("Please specify the input filename!"); X exit(320); X } X X if(!seedhasvalue) /*If a password wasn't given*/ X { X puts("Please specify a password!"); X exit(100); X } X X strcpy(in,argv[c]); X if(!*repl) /*If -r was used, use the filenames given*/ X strcpy(out,argv[++c]); X else /*Otherwise add a .tmp to the original version's filename*/ X { /*and use the originals version's old filename as the output*/ X strcpy(out,in); /*filename*/ X strcat(in,".tmp"); /*The original, .tmp version, will be deleted*/ X if(!Rename(out,in)) /*when the encrypted file has been written*/ X { /*sucessfully*/ X puts("Couldn't access the file!"); X exit(200); X } X } X} X X/*End of Encrypt.c*/ END_OF_FILE if test 8281 -ne `wc -c <'Encrypt.c'`; then echo shar: \"'Encrypt.c'\" unpacked with wrong size! fi # end of 'Encrypt.c' fi if test -f 'Encrypt.doc' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Encrypt.doc'\" else echo shar: Extracting \"'Encrypt.doc'\" \(2662 characters\) sed "s/^X//" >'Encrypt.doc' <<'END_OF_FILE' X-----------------------------Encrypt V1.00----------------------------- X---------------------------by Dave Schreiber--------------------------- X XEncrypt V1.00 is Copyright (c)1990 by Dave Schreiber. All Rights Reserved. XEncrypt must by freely distributed, except for costs associated with Xshipping, copying, media, labels, taxes, and other necessary costs. X XFiles in this release: X Encrypt (the binary program) X Encrypt.c (the source code to Encrypt) X Encrypt.doc (the documentation, this file) XPlease keep all three files of this release together, if you can. X X Encrypt secures your files against prying eyes. It will take any Xfile (a program, IFF picture, text, whatever) and convert it into an Xunusable form using a password that you specify. When you want to Xaccess the file, it will convert the file back to its original form, Xassuming you give it the correct password. X XEncrypt is called using the form: X 1> Encrypt [options] -p<Password> <infile> [<outfile>] Xwhere <infile> is the file you want to encrypt/decrypt, <outfile> is the Xfilename of the encrypted/decrypted file, and <Password> is the password Xthat you want to use. The options are: X X -e -- Encrypt the file X -d -- Decrypt the file X -r -- Process <infile> and replace <infile> with the processed file. X This option will leave you without the original version of X the file, so use it with care. Note that the original file X is not deleted until the processed version has been created X sucessfully, so you won't end up with a half-processed version X and no original version (the original file is stored as X <infile> with a .tmp after it until the encrypted version is X completed). The -r flags works with both encryption and X decryption. X XIf a '?' is the only command line option, the options information is Xdisplayed. X X How secure is the encrypted file? Data encryption isn't really Xmy field, so I don't know (I got the algorithm idea from a program for Xthe Apple ][, published in Compute! magazine (1987?), that does the same Xthing as Encrypt). The algorithm is layed out in the source code X(Encrypt.c, included with this release) if you want to take a look. You Xcan encrypt a file more than once, in which case you'll have to decrypt Xit the same number of times. Decrypting an unencrypted file is another Xway of securing it; encrypting it will then give you the original file Xback. X XEnjoy. X X-Dave Schreiber X Xdavids@slugmail.ucsc.edu (preferred, but flakey. If it doesn't work, try Xdavids@ucscb.ucsc.edu (school) or Xdavids@cup.portal.com (summer, vacations, etc)). X END_OF_FILE if test 2662 -ne `wc -c <'Encrypt.doc'`; then echo shar: \"'Encrypt.doc'\" unpacked with wrong size! fi # end of 'Encrypt.doc' fi if test -f 'Encrypt.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Encrypt.uu'\" else echo shar: Extracting \"'Encrypt.uu'\" \(20763 characters\) sed "s/^X//" >'Encrypt.uu' <<'END_OF_FILE' Xbegin 664 Encrypt XM```#\P`````````%``````````0```L=```!34```$````',````)@```^D`4 XM``L=)$@D`$GY`````$?Y```$Q'(`(#P```";8`(FP5'(__PL>``$*4X$_"E/? XM!01"K`4`)FX!%'``(CP``#``3J[^SBEK`)@$^$JK`*QG``!P(`^0KP`$!H``# XM``"`*4`$R&$``2X@:P"LT<C1R")H`!#3R=/)(`)R`!(9*4D%#-"!4H!"9U*`@ XM`D#__I_`58!"=P@`(`)3@-2!'[(``"``4X)1R/_V'[P`("``4X(?L2``(`!1C XMRO_X(D\O"6```'@I:P`Z!,AP?U*`T:P$R&$``,)!ZP!<3J[^@$'K`%Q.KOZ,9 XM*4`%`"\`)$`@*@`D9Q(L;`<@($`B*```*4$$^$ZN_X(B*@`@9QHD/````^U._ XMKO_B*4`%"&<*Y8@@0"=H``@`I"!L!0`O"$AL!,0@:``D*6@`!`4,3KH#>$ZZ? XM&V1P`&`$("\`!"\`("P$\&<$($!.D$ZZ*H0L>``$(FP'($ZN_F).N@-.2JP%! XM`&<:(BP%"&<$3J[_W"QX``1.KO]\(FP%`$ZN_H8@'RYL!01.=7!D8+1#^@`0J XM<`!.KOW8*4`'(&?L3G5D;W,N;&EB<F%R>0!.5?_P+PLF;P`<<``P$TZZ!WQ(3 XM[P`#``1P`#`K``).N@=L2.\``P`,<``P*P`$3KH'7"0\0/```'8`3KH+V$SOJ XM``P`#$ZZ#I(D/$#P``!V`$ZZ"\),[P`,``1.N@Y\)#Q`\```=@!.N@NL)E].0 XM74YU3E7_^B\'+B\`$B`'2$!(P"(\``#__\"!.T#_^B`'`H```/__.T#__#M\] XM,P[__G``+P`O`"\`2'@`!6$``$IP`"Z`+P!(;?_Z2'@``F$``#@N+?_V3EU.* XM=2\+)F\`"'``+P`O`"\`2'@`!6$``!IP`"Z`+P`O"TAX``1A```*3^\`'"9?> XM3G5.50``2.<!,!XO`!<F;P`8)&\`''``$`<,0``&9```N.5`3OL``F```!9@! XM```T8```6F```$)@``!@8```@C;L`IHV[`*<-JP"GC3L`J`T[`*B-*P"I"!M+ XM`!0PK`*F8'8T[`*@-.P"HC2L`J0@;0`4,*P"IF!@.5H"H#E:`J(Y4@*D(&T`) XM%#E0`J8Y6P*:.5L"G#E3`IY@/CEL`IH"E#EL`IP"ECEL`IX"F#E;`IHY6P*<D XM.5,"GD'L`I0@"&`8.7P`!0*@.7S>[`*B.7SF;0*D.7P`"P*F3-\,@$Y=3G5.7 XM5?_P2.<_,B9O`#PD;P!`+B\`1#`J``0B`#0K``3"PM*'*`$B!$A!2,$F/```L XM___"@\B#,"H``L#"T($J`"`%2$!(P,"#RH/$TM2`+`("A@`/__\R*@`$)`$K) XM0/_P,"L``L3`VH(D!4A"2,+$@\J#P.H``B(&TH#2@BP!S(,P$\#J``0B!M*`> XM+`',@P*&``#__R`&(&T`%#"`(@4Q00`")@0Q0P`$3-],_$Y=3G4``"\'+B\`J XM"%*L!1!3K`+N;18@;`+F0^@``2E)`N8@!Q"`<@`2`&`4(`=R`!(`2&P"XB\!I XM3KH:K%!/(@`N'TYU3E4``"\+)F\`#$*L!1!(;0`,+PM(>O^L3KH73$AL`N)(3 XM>/__3KH:?"`L!1`F;?_\3EU.=0``````````<&%.=4YU3E7_[$AM__)(;?_TD XM2&W_^D*G3KK]WG``,"W_\DAM_^PO`$AM__1(;?_Z3KK^I'``+H`O`$AM_^Q(\ XM>``"3KK]M$AM_^Q.NORV3EU.=4Y0_^).40``2.=_,"1H``@@&B(23KH'ID)I9 XM``A":0`&+P"#GV8.)&@`'"8H``Q3@V```/120C-"``1(0C-"``A"1C0I``1G. XM7&H25D)K&`I"``/5:0`$80``_&!(80`!+%)I``9@$G0$U6D`!&$``.9A``#L8 XM4VD`!DJ`:\13:0`$XXGCD&#R0D)"1B\`@Y]G%&$``,Q*1F8,#$(``68&4VD`J XM!F#L!@8`,!.&(`I20@Q"`!1KU'8!)"@`#$JH`!!G"G@!U&D`!E-":SIX%`Q"8 XM`!)L,C@"&C$@"P8%``4,!0`Y;R(3O``P(`M2,2`*&C$H"E-":NA2:0`&4T-Z7 XM`+JH`!!G`E*$)&@`'$?Q,`H@!&<>4T0V!`1#`!1K`G@3%-M1S/_\2D-K"!3\O XM`#!1R__Z)&@`&$*22FD`"&<"4Y(D:``40H$R*0`&2,$D@4S?#/Y.64Y83G7B? XMB.*14T)F^$YU?`!(YS``)``F`>.)XY#CEN.)XY#CEM*#T8)D```$4H;CB>.0. XMXY9,WP`,3G4O`G0`/SP`0..)XY#CD@Q"``IM"`2"````"E*!4U=FZ$_O``(DS XM'TYU3E#_]$Y1``!(YWXP<`!R`#-````S0``",T``!#-```9A``%T#`8`,&8(O XM`&D@```$8.X,!@`M9@H`:8````1A``%6#`8`,&T^#`8`.6XX`&D@```$,T8`3 XM"CPI``:=:0`"+P`"G_````!G!E)I``)@SF$`_SH\*0`*`H8````/TH9"AM&&L XM8+@,!@`N9@Q*:0`&9F)2:0`&8*8,!@!%9P8,!@!E9E!A``#P#`8`*V<,#`8`6 XM+68*`&D0```$80``V@P&`#!M,`P&`#EN*CHI``#CZ0``X^D``-MI``#CZ0``B XM`D8`#]UI```,:0__``!MS.+I``!@\C\I``0"7R``9@HD:``40I)@``"`-"D`$ XM`#\I``0"7Q``9P)$0M5I``(O`(.?9U(S?``_``!*@&L*XXGCD%-I``!@\DIIC XM``)G(&L4=`35:0``80#^7&$`_F)3:0`"8-9A`/Z$4FD``F#,=``T*0``/RD`S XM!`)?@`!G!`C"`!].N@3.)&@`&"3`)($D:``4)+P````!<``P*0`(3-\$?DY9F XM3EA.=2PH``AG"B%\```````(3G5(Y_S@)&@`$$Z2/`!,WP<_,T8`"%.H``QF` XM"`!I"```!$YU/RD`!`)?"`!G`GS_3G5(YS``=O\D`&H``#@,@+_P``!E``!>4 XM2.?`P$AY`````DZZ!.983TS?`P-@``!&2.<P`"8\?____R0`:@``!E*#MX!(' XM0#0``D)_\+5`!$(_\&T``"`*0``02$#H0@1"`!1N```P1$+DJ$J":P``/F``) XM`#QP`&```#9(Y\#`2'D````"3KH$A%A/3-\#`R`#8```'`Q"``MNX+.`Y;CE7 XMJ;.`L(-BU$J":@``!$2`3-\`#$YU``!(YSQ`>`!R`&```!I(YSQ`>`!R`$J`K XM9P``-&H```@X/(``1(`,@``@``!D```0.CQ!($ZZ`1A,WP(\3G4R`$)`2$!(- XM03H\0B!.N@$"3-\"/$YU``!P`"(`N4!(0$YU2.?`P$AY`````4ZZ`^I83TS?> XM`P-P`'(`N4!(0$YU2.?`P$AY`````DZZ`\Q83TS?`P,@/```?_"Y0'(`2$!.9 XM=4CGP,!(>0````1.N@.J6$],WP,#(#Q_\0``<@!.=0@```-G```>2.?`P$AYW XM````!$ZZ`X183TS?`P,(@``#",```0!`?_!(0$YU2$!(1'H0#(`````@;```O XM%DA`2$$P`4)!!$4!``R`````(&WL0D0,@```(`!L```&X8A01$A`2D!F```&) XMZ9A81'P`0_H`/APQ``#MN-A&2$`L`>FIZ;ZS1KU`Z4R:1$A`2$1.=0R`````^ XM(&P``#9(0$A!,`%"001%`0!L`/_H8```9@4$`P,"`@("`0$!`0$!`0$`````) XM````````````````=@`,@```(`!L```&X8A00TA`2D!F```&Z9A80W0`%#L`M XMP.6XUD)(0"0!YZGGNK-"M4#I2YI#;0``#$A`T$6`1$A`3G5$1>A-)`#JJ.JZ+ XMZJFQ@K6!2$"Y0$A`3G4``$CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(^ XM1KE`S$*]0KU$L$=M``!.L$)M```L#(```'_P9@``"$J!9P``!D[Z_I"T1VT`I XM`!H,@@``?_!F```(2H-G```*(`(B`T[Z_G)*@F8```Q*@V8```9.^OY$3OK^) XM,K1';0``+@R"``!_\&8```A*@V<```H@`B(#3OK^0$J`9@``#$J!9@``!D[ZY XM_A).^OX`.@#*1V8``!I*@&8```Q*@68```9.^OVL3KK^/&````B[0`I``!#.2 XM0F8``"9*@F8```Q*@V8```9.^OV(P4+#0\M'3KK^$L%"PT/+1V````B_0@!"+ XM`!`$13_PVD=H```&3OK]B$A`+@'AB.&)X9^S1[]`2$(N`^&*X8OAG[='OT(NF XM`$A'SL,L`DA&S,'>AD)'WT=(1TA!+`',PD)&2$;>ADA#+`/,P$)&2$;>ADA`1 XM2$(L`,S"QL#>@W8`W8/"PMZ!W8,B`$A!)@)(0\##Q,'1@B0`0D#10$A`2$)"( XM0MZ"T8;"P]*'=`#1@D[Z`TP``"0``H!_____9@AP`'(`=`!@(DA"2,+H0@*"? XM@``'_P1"`_\O`G0*XXGCD%'*__H(P``?)!].=2\#+P"#GV=D!$(`"TJ`9@@@4 XM`4*!!$(`("\``I__X```9R120N*(XI'BDR\``I__X```9NY*@VH.4H%D"E*`E XM8-A30N.)XY`(```49_0&0@/_;QX,0@?_;"8"@``/___I2C\"0D)(0H1?2$*`> XM@B8?3G4O/`````%.N@`F<`!@%B\\`````DZZ`!@P/'_P2$*`0DA`0D!/[P`$* XM<@!@T```+P<N+P`(*4<$X$JL!.1G%#!\``$B;`3DL\AG"$AX``A.D5A/+A].@ XM=0```````````````$CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(1KE`J XMS$*]0KU$L$=M``!PL$)M```L#(```'_P9@``"$J!9P``!D[Z^_"T1VT``!X,3 XM@@``?_!F```(2H-G```*(`(B`T[Z^]).^ONP2H)F```J2H-F```D2.?`P$AY/ XM`````TZZ_TQ83TS?`P,@/```?_"Y0'(`2$!.=4[Z^W"T1VT``!X,@@``?_!F+ XM```(2H-G```*(`(B`T[Z^WY.^OL2.@#*1V8``"I*@&8``!Q*@68``!9*@F8`# XM``Q*@V8```9.^OLX3OKZZDZZ^WI@```(NT`*0``0SD)F```F2H)F```,2H-FS XM```&8`#_;L%"PT/+1TZZ^U#!0L-#RT=@```(OT(*0@`0!$<_X)I':```!D[ZB XM^L9(0"X!Z8CIB>F?LT>_0$A"+@-\"^VJ[:OMO[='OT)(1#@%(D1(0H#".`!(R XM03`!0D%(0CH"RL1(0SP#S,1(0SX#SL1(1]Y&2$="1DA&W862AY&&9```"%-$N XMTH/1@D)#2$0L`$A"@,)H```80D0@!I*#2$*1@DA`2$$P`4)!8```*C@`2$$P/ XM`4)!2$(\`LS$+@-(1\[$2$?<1TA&0D?=1TA&DH>1AF0``!)31-*#T8)E```([ XM4T32@]&"+`!(0H#":```%$)%(`9(0I!"2$!(03`!8```%#H`2$$P`4A"/`+,Z XMQ9"&9```#E-%T()E```&4T70@DA%2$*`PF@```1P_SH`(`0B!2@).@1(1$[Z( XM``0```R``@```&T``!#BB.*12D5L``!,8```"@1%`!!L``!`1$7H35A%#$4`. XM.6\```Y.^OEF,@!"0$A`2$$$10`0;O(&10`0)`#JJ.JZZJFQ@K6!=`#3@M&"H XM2$"Y0$A`3G4D`.B(Z)KHB;&"M8%T`-."T8)(0-!%#$!_\&4$3OKY.+E`2$!.A XM=4CG/T!A```:3-\"_$YU2.<_0&$```A,WP+\3G4(0@`?2$!(0CP\@``^/'_PI XM.`#(1KE`.@#*1[M`S$*]0LY"OT*Z1V8``.`,17_P9@``*K!";0``$BX`CH%F. XM```.+@*.@V<```H@`B(#3OKY!KQ$9P``?D[Z^-Y*168``$1(0&8``"A*@68`1 XM`")(0F8```Y*@V8```C(1D[Z^'`@`B(#2$"]0+]`2$!.=4A"9@``'DJ#9@``P XM&$A`N4"[0$A`3G5^$)I'OT"_0DA`2$*\1&<``"22@V8```J1@F8```9.=9&"% XM:@``"$2!0(`X!D[Z^11.^OA4TH/1@@R``"```&T``!3BB.*1?@#3A]&'!D4`+ XM$`Q%?^!E```&3OKX&$A`T$6`1$A`3G5N```*P4+#0\E&RT<,17_P9P``,$I'Y XM9@``/DA"9@``$$J#9@``"KE`NT!(0$YUUH/5@DI%9@``)DA`TH'1@&```")*C XM@&8```Q*@68```9.^O?03OKW^`I"`!!(0@I``!!(0)Y%1D?H1P1%`"`,1P`T& XM;@``'M*!T8`,1P`@;P``("8"=``$1P`@[JMT`&```#0&10`02$#018!$2$!.L XM=0Q'`!!O```.-@)(0T)"2$($1P`0(D8L`NZJ[K[NJ[6&O8,L";Q$9@``/-*#; XMT8(&10`0XHCBD0R``"```&T```H&10`0XHCBD7X`TX?1ATA`T$4,17_P9```7 XM"(!$2$!.=4[Z]PR?AY.#D8(,@``@``!M`/ZV1(?2AWX`T8?BB.*1!D4`$$A`X XMT$6`1$A`3G5.5?^@2.<X,"9O`'PD;P"`<``;?``@__MR`"M!__9T_RM"__(K1 XM0?_H0>W_T!M`__$;0/_\&T#__1M`__X;0/__*T'_H"M!_^0K0O^P*TC_S$H3? XM9TYP`!`3<AA=06M$L'L0"&;V3OL0!``C8```+``@8```'@`K8```$``M8```0 XM`AM\``'__V`6&WP``?_^8`X;?``!__U@!AM\``'__%*+8*X0$W(PL`%F!E*+( XM&T'_^W`JL!-F$"!20^@`!"2)*U#_]E*+8`Y(;?_V+PM.N@^:4$_7P!`3<BZPP XM`68F4HMP*K`39A`@4D/H``0DB2M0__)2BV`.2&W_\B\+3KH/;%!/U\`0$W)L< XML`%F"AM\``'_\5*+8`AR:+`!9@)2BQ`;<@`2`!M`__!P3EU`:P`"EK)[``AFP XM]$[[``0`9F```GX`16```G(`96```FP`1V```E@`9V```E(`8V```C(`<V``Y XM`?``6&```88`>&```8``<&```68`;V```10`=6```.H`9&````)*+?_Q9PP@C XM4D/H``0DB2`08`H@4D/H``0DB2`0*T#_[&P*<@$K0?_H1*W_[$JM_^AG!'`M: XM8`Q*+?_^9P1P*V`"<"`;0/_0<``0+?_^(BW_Z(*`<``0+?_]@H!G"%*M_\Q2: XMK?_D+RW_["\M_\Q.N@W84$\K0/_(("W_\DJ`:@9R`2M!__(@+?_((BW_\I*`J XM2.T``O_$;RX@;?_,(DC3P6`"$MA3@&3Z<``0+?_[(BW_Q"!M_\Q@`A#`4X%DE XM^B`M__(K0/_(T:W_Y$'M_]`K2/_,2BW__V<``6P;?``@__M@``%B2BW_\6<,= XM(%)#Z``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q@`/]@2BW_\6<,(%)#Z``$)(D@# XM$&`*(%)#Z``$)(D@$"M`_^Q*+?_\9Q(@;?_,$/P`,'(!*T'_Y"M(_\PO`"\M8 XM_\Q.N@TP4$\K0/_(8`#_)AM\`##_^R`M__)*@&H&<`@K0/_R2BW_\6<,(%)#" XMZ``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q*+?_\9Q8@;?_,$/P`,!#\`'AR`BM!N XM_^0K2/_,+P`O+?_,3KH-#%!/*T#_R'!8L"W_\&8`_KQ(;?_03KH+K%A/8`#^E XMKB!20^@`!"2)(E`K2?_,9@A!^@6<*TC_S"!M_\Q*&&;\4XB1[?_,*TC_Y"`M8 XM__)*@&M&L<!O0BM`_^1@/'`!*T#_Y"!20^@`!"2)(!`;0/_00BW_T6`B<`(K] XM0/^P<`$K0/^@8!1"K?^P8`YP`2M`_[!@!G``8``%,"`M_[!*@&H``)(@+?_D2 XM(BW_]K*`;`AT`"M"__9@!)&M__9*+?__9S93K?_D;1AP`"!M_\P0&"\`*TC_B XMS"!M`!!.D%A/8.)3K?_V;4AP`!`M__LO`"!M`!!.D%A/8.A3K?_V;1)P`!`M[ XM__LO`"!M`!!.D%A/8.A3K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/8.(@< XM"V``!)9P_["M__)F!G`&*T#_\B`M__)R%+"!;01R$V`"(@`K0?^X*T'_Y%*!T XM2&W_T$AM_^A(;?^T+RW_L"\!+Q).NNV(3^\`&"(M_[1([0`!_^1([0`"_[QL0 XM!$2M_[QP`K"M_[!F0DJM_^1G#@RM````!/^\;01P`&`"<`$K0/^P2H!F)"(M. XM_[A2@4AM_]!(;?_H2&W_M"\`+P$O$DZZ[2Q/[P`8*T#_Y%"20>W_T"M(_\Q*> XMK?_D9P13K?^T<`!R`!(M__XD+?_HA(%R`!(M__V$@2M`_[Q*@F<$4JW_O$JM) XM_[!G``"B(BW_M$J!:P33K?^\=``4+?_\)BW_\H:"*"W_H(:$9P12K?^\2H1G# XM:$H"9F1*K?_D9@8K0/_R8$Y2@20M_^24@4CM``+_J$CM``3_I&P&*T#_\F`R$ XM("W_\K"";P0K0O_RT<%3B"M(_ZQ*K?_R9Q@@;?_R<#`B;?^L(@BP,1@`9@93M XMK?_R8.)*K?_R9@13K?^\("W_\B(`4H'3K?^\8```HB`M__(B`%J!TZW_O$JM* XM_Z!G"%.M__)3K?^\("W_M$J`:@8B`$2!8`(B`"M!_[AP8[*`;P12K?^\#($`! XM``/G;P12K?^\<``0+?_\(BW_\B0`A($F+?^@A(-G!%*M_[Q*@V<^2@!F.B`MO XM_^2R@&T&4X`K0/_R2JW_\F<<(&W_\G`P(FW_S"((L#$8`&8*4ZW_\E.M_[Q@Y XMWDJM__)F!%.M_[Q*+?__9BP@+?^\(BW_]K*`;R"1K?_V4ZW_]FT6<``0+?_[1 XM+P`@;0`03I!83U*M_[Q@Y$JM_^AG#DAX`"T@;0`03I!83V`J2BW__F<.2'@`D XM*R!M`!!.D%A/8!9*+?_]9Q!P`!`M__LO`"!M`!!.D%A/2JW_L&<``,@@+?^TZ XM2H!J5$AX`#`@;0`03I!(>``N(&T`$$Z04$]3K?_R;0`!H%*M_[1L#DAX`#`@V XM;0`03I!83V#D4ZW_Y&T.<``@;?_,$!@K2/_,8`)P,"\`(&T`$$Z06$]@PB`M4 XM_[13K?^T2H!K(E.M_^1M#G``(&W_S!`8*TC_S&`"<#`O`"!M`!!.D%A/8-)*8 XMK?_R9PQ(>``N(&T`$$Z06$]3K?_R;0`!(E.M_^1M#G``(&W_S!`8*TC_S&`"0 XM<#`O`"!M`!!.D%A/8-93K?_D;0YP`"!M_\P0&"M(_\Q@`G`P+P`@;0`03I!8W XM3TJM__)G#$AX`"X@;0`03I!83U.M__)M(E.M_^1M#G``(&W_S!`8*TC_S&`"H XM<#`O`"!M`!!.D%A/8-@0+?_P<F6P`6<&<F>P`68$<&5@`G!%+P`@;0`03I!8L XM3R`M_[1*@&H22'@`+2!M`!!.D%A/1*W_M&`,2'@`*R!M`!!.D%A/<`LK0/_`F XM4ZW_P"`M_[1R"DZZ#7QP,-*`("W_P!N!"-`@+?^T<@I.N@UF*T#_M`RM````, XM"?_`;LY*K?^T9L@@+?_`<@NP@6P64JW_P'(`$C4(T"\!(&T`$$Z06$]@X'`!J XML"W__V8L("W_O"(M__:R@&\@D:W_]E.M__9M%G``$"W_^R\`(&T`$$Z06$]2O XMK?^\8.0@"TS?#!Q.74YU``!.5?_V2.<`,"9O`!HD;P`>*VT`$/_V$!H;0/__/ XM2@!G-G(EL`%F(K(29@12BF`:+PM(;?_V+PIA`/;(3^\`#"M`__IG!"1`8,YP2 XM`!`M__\O`$Z36$]@P$S?#`!.74YU``!(YP<P+B\`&"9O`!PL+P`@+P=.N@YLV XM6$\D0"`*9@1P_V`V""H``P`#9Q!(>``"0J<O!TZZ"-A/[P`,+P8O"R\J``1.` XMN@I$3^\`#"H`2JP$W&<$</]@`B`%3-\,X$YU``````````!P84Y5__!(YR$RR XM)F\`+`RL````(`:.;```AA`3<B"P`6<,<@FP`6<&<@JP`68$4HM@Z$H39V@@9 XM+`:.Y8!2K`:.0>P&EM'`)$AP(K`39B92BR2+2A-G"G`BL!-G!%*+8/)*$V8,V XM2'@``4ZZ#GQ83V">0AM@FB2+2A-G&!`3<B"P`6<0<@FP`6<*<@JP`6<$4HM@I XMY$H39@)@!D(;8`#_<DJL!HYF!B!L!0!@!$'L!I8I2`:22JP&CF9\0?H!)$/LU XM!E0BV"+8(M@BV#*0(FP%`"!I`"1(>``H+R@`!$AL!E1.N@223^\`#$'L!E0BF XM""0\```#[BQL!R!.KO_B*4`%&"E`!2!R!"E!!1PI0`4H*4$%).6`D\DL>``$< XM*T#_\$ZN_MH@;?_P(D`C:``(`*1^`"M`__1@*BQL!R!.KO_**4`%&$ZN_\0I; XM0`4@0?H`IB(()#P```/M3J[_XBE`!2A^!"`'`$"``8&L!10@!P!`@`*!K`4<: XM`*P``(`#!21*K`,H9P1P`&`&(#P``(``+@!"K`+<(`<`0``!*4`"V'`!*4`"7 XM_B`'`$```BE``OIP`BE``R`@!P!``(`I0`,<0?H+,BE(!/0O+`:2+RP&CDZZ$ XM`#)"ETZZ!_Q,[4R$_]Q.74YU8V]N.C$P+S$P+S,R,"\X,"\`*@``````````' XM``````!.^0`````````````````````````````O"R9O``A*JP`49PP(*P`#0 XM`!MF!'``8#8O+`3`3KH'AEA/)T``!"=``!!*@&8*<`PI0`<<</]@%B=L!,``& XM%'#SP:L`&'``)T``#"=```@F7TYU``````````````````!.5?_L2.<O$"XON XM`#0F;P`X*`=P,<"K`!AG!G#_8``"<`@K``<`&E;`1`!(@$C`+`!*JP`49@``; XMA`@K``(`&V9Z<``G0``,<O^^@6<``D(O"TZZ_TY83TJ`9PP(ZP`%`!MP_V``' XM`BH(ZP`!`!M*!F<.("L`%"(`1($G00`,8`@@*P`4)T``#%.K``QM%B!K``1#3 XMZ``!)TD`!"`'$(!R`!(`8!(@!W(`$@`O"R\!80#_4E!/(@`@`6```=8(*P`"? XM`!MG6'#_OH!F!G``8``!PB`'&T#__TH&9R)R"KZ!9AQR`B\!2'H!LB\K`!PK6 XM0?_P3KK\-$_O``PJ`&`:<@$O`4AM__\O*P`<*T'_\$ZZ_!A/[P`,*@!^_V``J XM`.`(ZP`!`!M*!F=2</^^@&=,5*L`#'(*OH%F)B!K``1#Z``!)TD`!!"\``TB4 XM*P`,2H%K"B\++P!A`/ZN4$]2JP`,(&L`!$/H``$G20`$(`<0@"(K``Q*@6L`* XM`1Q^_R`K``20JP`0*T#_\&=R""L`!@`:9U)(>``"0J<O*P`<3KH$F$_O``PKM XM0/_L2@9G.%.M_^QM,D*G+RW_["\K`!Q.N@1X2'@``4AM__TO*P`<3KH#J$_OG XM`!A*K`3<9@H0+?_]<AJP`6?(+RW_\"\K`!`O*P`<3KK[.$_O``PJ`&`">@!PI XM_[J`9@@(ZP`%`!M@#+JM__!G!@CK``0`&TH&9PXB*P`4)`%$@B="``Q@&`@KL XM``(`&V<(<@`G00`,8`@B*P`4)T$`#"!K`!`G2``$OH!G+E.K``QM%B!K``1#O XMZ``!)TD`!"`'$(!R`!(`8!(@!W(`$@`O"R\!80#]D%!/(@!P,,"K`!AG!'#_+ XM8`QP_[B`9@1P`&`"(`1,WPCT3EU.=0T*`````"YL!01.N@8^2'D````43KH$O XMK```````````<&%(YR`P)F\`$"1+2A)G)'``$!)![`.]"#```0@`9PIR`!(`L XM=""2@F`$<@`2`!2!4HI@V"`+3-\,!$YU``````````!P84Y5__A(YP,P)F\`$ XM("1O`"0N+P`H($I*&&;\4XB1RBP(($M*&&;\4XB1RR`((DO3P"M)__B\AV,"5 XM+`<@!B!*8`(2V%.`9/H@;?_X0C!H`"`+3-\,P$Y=3G4@;P`$(`A*&&;\4TB19 XMP"`(3G4``"!O``@B;P`$(`D2V&;\3G4B;P`((&\`!"`(2AAF_%.($-EF_$YU0 XM```@+P`((&\`!$Y5__0B3W(*3KH&1`9!`#`2P4J`9O`@"1#AO\EF^D(0D(].J XM74YU```@+P`((&\`!$Y5__0B3R(``D$`!P9!`#`2P>:(9O`@"1#AO\EF^D(0? XMD(].74YU```P,3(S-#4V-S@Y86)C9&5F("\`""!O``1#[P`$,@`"00`/$OL0P XMW.B(9O(@"2(/6($0X;*)9OI"$)"!3G4@;P`$(DAR`'``+P(,$``K9P8,$``M6 XM9@)22!`8!```,&T2#```"6X,)`'E@=*"TH'2@&#F#!$`+68"1($D'R`(4X`@+ XM;P`(((&0B4YU3E7_Z$CG`3(N+P`T2H=N!G#_8```TG`(OH!D`BX`(`=6@"X`, XM`D?__"1M``@@;0`(T<??K`*\0^P"N"91*TC_\"M)__0@"V<``)`@2R`K``31I XMP"M(_^PB;?_PM\EC$"2+)4<`!"QM__0LBG``8'BWR68:+%,DCB`K``0B`-*'S XM)4$`!"QM__0LBG``8%JUR&0(GZP"O'#_8$ZUR&8L2I-G#B!3L\AC")^L`KQP8 XM_V`XWZL`!$J39PZSTV8*("D`!-&K``0FD7``8!XK2__T*VW_[/_H)E-@`/]NX XM(&W_]""*0I(E1P`$<`!,WTR`3EU.=0``````````<&%(YP<P+B\`&"9O`!PL, XM+P`@+P=.N@8@6$\D0"`*9@1P_V`>+P8O"R\J``1.N@+83^\`#"H`2JP$W&<$B XM</]@`B`%3-\,X$YU``!(YP$0)F\`#'X`'AM*AV<R4ZP"[FT6(&P"YD/H``$I- XM20+F(`<0@'(`$@!@W"`'<@`2`$AL`N(O`4ZZ^@Y03R(`8,93K`+N;18@;`+FX XM0^@``2E)`N9P"A"`<@`2`&`02&P"XDAX``I.NOG@4$\B`"`!3-\(@$YU``!(G XMYP\0+B\`&"PO`!PJ+P`@+P=.N@5@6$\F0"`+9@1P_V`>+P4O!B\K``1.N@&<) XM3^\`#"@`2JP$W&<$</]@`B`$3-\(\$YU``````````!P84CG`S`N+P`42H=NQ XM!G``8```I'`(OH!D`BX`(`=6@"X``D?__$7L`K@F4B`+9T`@*P`$L(=M,K"'$ XM9@P@4R2(GZP"O"`+8&X@*P`$D(=R"+"!918@2]'')(@D2"23)4``!)^L`KP@# XM"V!,)$LF4V"\(`<B+`,LT(%3@$ZZ`KHB+`,L3KH"DBP`4(8@!E:`+``"1O_\- XM+P9.N@7>6$\F0"`+9Q(O!B\+3KK]4BZ'80#_5%!/8`)P`$S?#,!.=0``````K XM````<&$O!RXO``@O!TZZ_S)83RX?3G4``$CG`Q`N+P`01^P"P"`+9S0(*P`"Q XM`!MF*`@K``$`&V<@("L`!)"K`!`L`$J&9Q(O!B\K`!`O*P`<3KKUDD_O``PFB XM4V#(+P=.N@306$],WPC`3G4``$CG-Q`N+P`<)F\`("PO`"1*K`3T9P1.N@0H: XM0JP$W"(')`LF!BQL!R!.KO_0*@!P_[J`9@Y.KO]\*4`$W'`%*4`''"`%3-\(\ XM[$YU``!(YS\`+B\`'"PO`"`J+P`D2JP$]&<$3KH#W$*L!-P@!5.`(@<D!B8`- XM+&P'($ZN_[XH`'#_N(!F#DZN_WPI0`3<<!8I0`<<(`4,@`````)G%@R`````) XM`6<(2H!F&"`&8!0@!-"&8`XB!W0`=@`L;`<@3J[_ODS?`/Q.=0``2.<W$"XO" XM`!PF;P`@+"\`)$JL!/1G!$ZZ`V!"K`3<(@<D"R8&+&P'($ZN_]8J`'#_NH!FO XM#DZN_WPI0`3<<`4I0`<<(`5,WPCL3G4``"\'+B\`"$JL!/1G!$ZZ`QXB!RQLT XM!R!.KO_<<``N'TYU3E7_L"\.2JP'&&820_H`B'``+'@`!$ZN_=@I0`<8<``@@ XM;`4,$"C__T/M_[!@`A+84X!D^G``(&P%#!`H__]"-0BP0>W_L"E(`SQ(>``HV XM2'@`^G``+P`O`$AL`UAR`"\!2&P#1"\!3KH"]$AX`!1.N@,@+&W_K$Y=3G4J] XM*B!3=&%C:R!/=F5R9FQO=R`J*@``15A)5```:6YT=6ET:6]N+FQI8G)A<GD`H XM````````````````2.<P`"0`)@%(0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5*& XM@&H``!Y$@$J!:@``#$2!80``($2!3G5A```81(!$@4YU2H%J```,1(%A```&- XM1(!.=2\"2$$T`68``")(0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C(")!].S XM=2\#=A`,00"`9```!N&944,,00@`9```!NF964,,02``9```!N6954-*06L`R XM``;CF5-#-`#FJ$A"0D+FJDA#@,$V`#`"-`-(0<3!D()D```(4T/0@63^<@`R< XM`TA#Y[A(0,%!)A\D'TYU3E7_GDCG,S)^`"!L!0P>*/__<$^^@&\"+@`@!T/MH XM_Z]@`A+84X!D^D(U>*^3R2QX``1.KO[:)D!*JP"L9TP@*P"LY8`D0"PJ`#A*S XMAF8$+"L`H$J&9S0B!D'Z`+(D"'8++&P'($ZN_]`@1U*'(`@;O``*"*\B!D'MT XM_Z\D""8'+&P'($ZN_]!P_V!.2JP'&&820_H`AG``+'@`!$ZN_=@I0`<80>W_< XMKRE(`XQ(>``\2'@`^G``+P`O`$AL`ZA(;`.42&P#@$*G3KH`_$_O`"!3@&<$= XM</]@`G``3-],S$Y=3G4J*B!5<V5R($%B;W)T(%)E<75E<W1E9"`J*@``0T].# XM5$E.544``$%"3U)4`"HJ*B!"<F5A:SH@`&EN='5I=&EO;BYL:6)R87)Y````@ XM+P<N+P`(<``I0`3<2H=K(KZL`JAL'"`'YX!![`442K`(`&<.(`?G@$'L!131^ XMP"`(8`AP"2E`!QQP`"X?3G4``````````'!A2.<!`G``(CP``#``+'@`!$ZNZ XM_LXN``*'```P`$J'9@1P`&`@2JP$]&<8(&P$]$Z02H!F!'``8`Q(>``43KH`9 XM1EA/(`=,WT"`3G5AM$YU``!(YS`R+&P'&"!O`!@B;P`<)&\`("9O`"0@+P`H9 XM(B\`+"0O`#`F+P`T3J[^I$S?3`Q.=0``2.<'`"XO`!`@+`*H4X`L`$I&:S`@0 XM!DC`YX!![`44*C`(`$H%9QH(!0`"9A0@!DC`YX!![`44+S`(!$ZZ_!183U-&4 XM8,PO!TZZU7983TS?`.!.=0``2.<`,B9L!R0@"V<4)%,B2R`K``@L>``$3J[_( XM+B9*8.B1R"E(!R@I2`<D3-],`$YU2.<!,BXO`!1P#-Z`(`=R`"QX``1.KO\Z8 XM)D`@"V8$<`!@.B='``A%[`<D(&H`!"=(``21R":(2I)F`B2+2JH`!&<&(FH`# XM!"*+)4L`!$JL`JQF!"E+`JQ!ZP`,(`A,WTR`3G4`````````````````````O XM`^P````!`````0``'IH````"`````P````P````&`````````_(```/I```!B XM34Y5_E2_[`3(90`$ODCG,Q`N+0`()FT`#"!K``1P/[`09FI(;```3KH$N$AL. XM`"9.N@2P2&P`*$ZZ!*A(;``P3KH$H$AL`&A.N@282&P`@$ZZ!)!(;`"\3KH$. XMB$AL`.Y.N@2`2&P!)$ZZ!'A(;`%<3KH$<$AL`6Y.N@1H2&P!<$ZZ!&!"ETZZI XM!(1/[P`P2&W__$AM_E9(;?Y72&W^8DAM_RLO"R\'80`"%DAX`^U(;?\K3KH$Q XM'$_O`"0K0/Y:2H!F$DAL`9Q.N@0:2'@!]$ZZ!#Q03TAX`^Y(;?YB3KH#\E!/X XM*T#^7DJ`9AI(;`&Z3KH#\BZM_EI.N@/P2'@"6$ZZ!`Q03THM_E=G6$AL`=A.B XMN@0.6$](;?Y8+RW^6F$``4103TJ`9@``DDZZ`\HD/$!P``!V`$CM``/_]$ZZ' XM`Z!.N@/D+``0+?Y8T`8;0/Y80J=(;?Y8+RW^7F$``*)/[P`,8+)(;`'H3KH#+ XMMEA/2&W^6"\M_EIA``#L4$]*@&8Z3KH#="0\0'```'8`2.T``__T3KH#2DZZ_ XM`XXL`!`M_EB0!AM`_EA"ITAM_E@O+?Y>80``3$_O``Q@M$AX``%(;?Y8+RW^T XM7F$``#8NK?Y>3KH#&BZM_EI.N@,23^\`#$HM_E9G"DAM_RM.N@,J6$]"ITZZ3 XM`QQ,[0C,_D!.74YUO^P$R&4``LA(YP$P)F\`$"1O`!0>+P`;2@=G%B\L`?A(\ XM>0`````O"TZZ`M1/[P`,8"Y!^0`````B2-/L`?A2K`'X$I)P0-"`L*P!^&82M XM0JP!^"\`+P@O"TZZ`J1/[P`,3-\,@$YUO^P$R&4``F)(YP`P)F\`#"1O`!`@\ XM+`'\L*P"`&8<0JP!_$AX`(!(>0```(`O"TZZ`IA/[P`,*4`"`$'Y````@-'L] XM`?Q2K`'\%)!*K`(`5\!$`$B`2,!,WPP`3G5.5?_XO^P$R&4``@)(YR\P+BT`< XM""9M``PD;0`0>@!P`2!M`!@0@'(`(&T`'!"!(&T`%!"!%($H`!`$2(`B`$C!* XMY8$@<Q@`<"VP$&8``-P0!$B`(@!(P>6!(',8`%*($!!(@`1``$1G-E-`9R8$3 XM0``+9S150&<``*0$0``29R!30&<0!$``"V<>54!G``".8```DB!M`!@0O``!O XM8```AB!M`!A"$&!\$`1(@"(`2,'E@2!S&`!4B$H09V@;?``"__E\`1`$2(`BB XM`$C!Y8$O,Q@`3KH!1EA/$BW_^4B!2,&R@&PL$`1(@"(`2,'E@1`M__E2+?_Y+ XM%`!(@B!S&`#0PA`02(!(P"(&3KH!0"P`8+0O!DZZ`1Y83WH!8`@@;0`<$+P`7 XM`5($8`#_$B`$2(!(P"('DH!P`K*`;!H@;0`<2A!F$DAL`@1.N@#>2'@!-DZZ[ XM`0!03R`$2(!(P"('DH!P`;*`;!H@;0`<2A!G$DAL`C1.N@"T2'@!0$ZZ`-90) XM3TH%9A)(;`)83KH`GDAX`&1.N@#`4$\0!$B`(@!(P>6!+S,8`"\*3KH`SE!/J XM(&T`'$H09AQ2!!`$2(`B`$C!Y8$O,Q@`+RT`%$ZZ`*Q03V`X+PHO+0`43KH`. XMGDAL`G0O"DZZ`&0NBB\M`!1.N@!R3^\`%$J`9A)(;`)Z3KH`+$AX`,A.N@!.E XM4$],WPST3EU.=4[Y```AK$[Y`````$[Y```B9$[Y```+($[Y```DR$[Y````, XM'$[Y```"'$[Y```$L$[Y````3$[Y```BB$[Y```HI$[Y```F:$[Y````:$[Y> XM````?$[Y```$;D[Y```(A$[Y````,$[Y```B>````^P````,````````!0``@ XM``4P```$[@``!08```36```%)```!-P```3T```%'@``!0P```3B```$R@``U XM``0````"```"G````H@```(N```"'`````8````$```%&```!2H```3Z```%5 XM$@``!.@```30`````````_)```/J````0```````````````````````````T XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM``````````````````/R```#Z@```3%%;F-R>7!T(%8Q+C`P(*DQ.3DP(&)Y% XM($1A=F4@4V-H<F5I8F5R````57-A9V4Z```@(#$^($5N8W)Y<'0@6V]P=&EO@ XM;G-=("UP/'!A<W-W9#X@/&EN9FEL93X@6SQO=71F:6QE/ET``%=H97)E('1H9 XM92!O<'1I;VYS(&%R93H``"`@+64@("TM($5N8W)Y<'0@/&EN9FEL93X@86YDX XM('-T;W)E(&%S(#QO=71F:6QE/B`H9&5F875L="D``"`@+60@("TM($1E8W)YK XM<'0@/&EN9FEL93X@86YD('-T;W)E(&%S(#QO=71F:6QE/@``("`M<B`@+2T@T XM4F5P;&%C93H@(&5N8W)Y<'0O9&5C<GEP="`\:6YF:6QE/B!A;F0@<W1O<F4`6 XM("`@("`@("`@87,@/&EN9FEL93X@*#QO=71F:6QE/B!I<R!N;W0@;F5E9&5DQ XM('=I=&@@=&AI<P`@("`@("`@("!O<'1I;VXI`````"`@+7`\<&%S=V0^("TM& XM(%5S92`\<&%S<W=D/B!A<R!T:&4@<&%S<W=O<F0`0V]U;&1N)W0@;W!E;B!T' XM:&4@<F5A9"!F:6QE(0``0V]U;&1N)W0@;W!E;B!T:&4@=W)I=&4@9FEL92$`) XM16YC<GEP=&EN9RXN+@H``$1E8W)Y<'1I;F<N+BX*``````````````````!0T XM;&5A<V4@<W!E8VEF>2!T:&4@:6YP=70@86YD(&]U='!U="!F:6QE;F%M97,AG XM``!0;&5A<V4@<W!E8VEF>2!T:&4@:6YP=70@9FEL96YA;64A``!0;&5A<V4@: XM<W!E8VEF>2!A('!A<W-W;W)D(0``+G1M<```0V]U;&1N)W0@86-C97-S('1HU XM92!F:6QE(0``````````````````!=[LYFT`"P```"@`````````````````; XM`````````````N(```````````````````````````````````````````,$K XM````````````````````````````````````````````````````````````` XM``````````````````````````````"`````!`#__P````X`#@``````````> XM`````/__````!``$````````*&H```,P__\````$``0````````H@`````#_X XM_P````X`#@```````"IH`````/__````!``$``````````````-L__\````$D XM``0````````JA`````#__P````0`!````````"J.```````@("`@("`@("`HX XM*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0$!`0$!`0$!"$A(2$A(2$T XMA(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!$!`0$!`0@H*"\ XM@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0("`@("`@("`@("@H*"@H("`@6 XM("`@("`@("`@("`@("`@2!`0$!`0$!`0$!`0$!`0$(2$A(2$A(2$A(00$!`0` XM$!`0@8&!@8&!`0$!`0$!`0$!`0$!`0$!`0$!`0$0$!`0$!""@H*"@H("`@("^ XM`@("`@("`@("`@("`@("`A`0$!`@```````"`````^P````%`````````[0`M XM``.@```#>````V0```-0````!`````,```.0```#5````N(```+`````````O XM`_(```/I````)DCG(`(L>0``!R!,[P`&``Q.KO_B3-]`!$YU```O#BQY```'I XM("(O``A.KO_<+%].=4CG,`(L>0``!R!,[P`.`!!.KO_63-]`#$YU``!(YS`"0 XM+'D```<@3.\`#@`03J[_T$S?0`Q.=0``+PXL>0``!R`B+P`(3J[_N"Q?3G5(5 XMYR`"+'D```<@3.\`!@`,3J[_LDS?0`1.=0`````#[`````8````#````@@``[ XM`&P```!2````-@```"`````&`````````_`````"7U)E;F%M90````!\````" XM`U]$96QE=&5&:6QE`````&@````"7U=R:71E``````!,`````E]296%D````R XL````,`````)?0VQO<V4``````!P````"7T]P96X``````````````````_(`+ X`` Xend Xsize 14804 END_OF_FILE if test 20763 -ne `wc -c <'Encrypt.uu'`; then echo shar: \"'Encrypt.uu'\" unpacked with wrong size! fi # end of 'Encrypt.uu' fi echo shar: End of archive 1 \(of 1\). cp /dev/null ark1isdone MISSING="" for I in 1 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have the archive. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Mail submissions (sources or binaries) to <amiga@cs.odu.edu>. Mail comments to the moderator at <amiga-request@cs.odu.edu>. Post requests for sources, and general discussion to comp.sys.amiga.