page@swan.ulowell.edu (Bob Page) (03/16/89)
Submitted-by: jonasf@kuling.UUCP (Jonas Flygare) Posting-number: Volume 89, Issue 66 Archive-name: applications/sorts.1 This is a small program I wrote as part of an assignment.. It is kind of neat, except for the code, which is a mess, as I haven't had ANY ambitions except making this thing work before I fell asleep.. ;-) The program: Sort [interval] [method] interval is a number from 0 to 700 and method a number from 0 to 2. Basic sort is quicksort, although for large values of interval it turns into the method chosen. 0 = straight insertion (DUMB implementation) 1 = bubblesort, no sentinel. 2 = heapsort, some bugs here, partly due to the fact that the code was written as part of an assignment at 3 in the morning.... ;-) Manifests in that some elements near the upper limit of each interval doesn't get sorted. If You find it, mail me what it is. (I have MORE than enough job, as it is, and the only reason I mail this program as-is, is that it might give someone some ideas on how to improve it (colors, more data in the display, etc..)) Have fun. [uuencoded executable 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: # display.c # main.c # qsort.c # sorts.uu # This archive created: Wed Mar 15 17:02:22 1989 cat << \SHAR_EOF > display.c #include <stdio.h> #include <stdlib.h> #include <exec/types.h> #include <intuition/intuition.h> struct IntuitionBase *IntuitionBase; struct GfxBase *GfxBase; struct Window *OurWindow; #define REVISION 33 struct NewWindow NewWindowStructure1 = { 0,0, /* window XY origin relative to TopLeft of screen */ 640,512, /* window width and height */ 0,1, /* detail and block pens */ NULL, /* IDCMP flags */ ACTIVATE|WINDOWCLOSE|WINDOWDRAG|WINDOWSIZING|SMART_REFRESH|WINDOWDEPTH|GIMMEZEROZERO, /* other window flags */ NULL, /* first gadget in gadget list */ NULL, /* custom CHECKMARK imagery */ "Quicksort window", /* window title */ NULL, /* custom screen pointer */ NULL, /* custom bitmap */ 5,5, /* minimum width and height */ 640,512, /* maximum width and height */ CUSTOMSCREEN /* destination screen type */ }; struct NewScreen NewScreenStructure = { 0,0, /* screen XY origin relative to View */ 640,512, /* screen width and height */ 2, /* screen depth (number of bitplanes) */ 0,1, /* detail and block pens */ LACE+HIRES, /* display modes for this screen */ CUSTOMSCREEN, /* screen type */ NULL, /* pointer to default screen font */ "Hires Screen", /* screen title */ NULL, /* first in list of custom screen gadgets */ NULL /* pointer to custom BitMap structure */ }; void OpenAll() { IntuitionBase=(struct IntuitionBase *)OpenLibrary("intuition.library", REVISION); if (IntuitionBase==NULL) exit(0); GfxBase=(struct GfxBase *)OpenLibrary("graphics.library",REVISION); if (GfxBase==NULL) exit(0); } struct Window *makewindow(struct screen *screen) { struct Window *tmp; extern struct NewWindow NewWindowStructure1; NewWindowStructure1.Screen=screen; tmp=(struct Window *)OpenWindow(&NewWindowStructure1); if (tmp==NULL) { CloseScreen(screen); exit(0); /* exit closes all libraries */ } else return(tmp); } struct Screen *makescreen() { struct Screen *tmp; extern struct NewScreen NewScreenStructure; tmp=(struct Screen *)OpenScreen(&NewScreenStructure); if (tmp==NULL) exit(0); else return(tmp); } SHAR_EOF cat << \SHAR_EOF > main.c #include <stdio.h> #include <stdlib.h> #include <exec/types.h> #include <intuition/intuition.h> #define ARRAYMAX 480 struct RastPort *rp; /* global so qsort()can see it.. */ void main(int argc, char **argv) { int array[ARRAYMAX]; float sec,getelapsed(); int loop; int abort=0, test=0; void insertion_sort(), bubble_sort(), heap_sort(); extern struct IntuitionBase *IntuitionBase; extern struct GfxBase *GfxBase; unsigned int time1[2], time2[2]; void quicksort(), clearscreen(), putpos(),*sortfun; void init(); void display(); void permute(), OpenAll(); struct Window *makewindow(), *mywindow; struct Screen *myscreen, *makescreen(); if (argc>1) abort=atoi(argv[1]); if (argc>2) test=atoi(argv[2]); switch (test) { case 0 : sortfun=insertion_sort; break; case 1 : sortfun=bubble_sort; break; case 2 : sortfun=heap_sort; break; default : sortfun=insertion_sort; break; } OpenAll(); myscreen=makescreen(); mywindow=makewindow(myscreen); rp=mywindow->RPort; init(array); permute(array); timer(time1); SetAPen(rp,1); for (loop=0;loop<ARRAYMAX;loop++) { WritePixel(rp,loop,array[loop]); } quicksort(array,0,(ARRAYMAX-1),abort,sortfun); timer(time2); sec=getelapsed(time1,time2); printf("Time elapsed: %2.4f\n", sec); Delay(250L); CloseWindow(mywindow); CloseScreen(myscreen); CloseLibrary(GfxBase); CloseLibrary(IntuitionBase); } void init(int *array) { int loop; for (loop=0;loop<ARRAYMAX;loop++) array[loop]=loop; } void display(int *array) { int loop; for (loop=0;loop<ARRAYMAX;loop++) printf("[%03d]", array[loop]); printf("\n"); } void permute(int *array) { int index; int tmp; int swap; for (index=0;index<ARRAYMAX;index++) { swap=rand()%ARRAYMAX; tmp=array[index]; array[index]=array[swap]; array[swap]=tmp; } } void clearscreen() { printf("\033[H\033[J"); } void putpos(int x, int y) { printf("\033[%d;%dHX",y,x); } void clearpos(int x, int y) { printf("\033[%d;%dH ",y,x); } float getelapsed(unsigned int start[2], unsigned int elapsed[2]) { float t1; unsigned int begin; float micros; begin=elapsed[0]-start[0]; micros=((float)elapsed[1]/1000000.0)-((float)start[1]/1000000.0); t1 = (float)begin+micros; #ifdef DEBUGGING printf("sec: %d Micros: %f Sum: %f\n", begin, micros, t1); #endif return((float)(t1)); } SHAR_EOF cat << \SHAR_EOF > qsort.c #include <stdio.h> #include <math.h> void quicksort(int *array, int left, int right,int abort, void (*sortfun)()) { register int i,j; int x,y; void clearpos(); void setpos(); extern struct RastPort *rp; void insertion_sort(); i=left; j=right; if ((right-left)<=abort) { (*sortfun)(array, left, right); } else { x=array[(left+right)/2]; do { while(array[i]<x && i<right) i++; while(x<array[j] && j>left) j--; if (i<=j) { SetAPen(rp, 0); WritePixel(rp,i,array[i]); WritePixel(rp,j,array[j]); y=array[i]; array[i]=array[j]; array[j]=y; Delay(1L); SetAPen(rp, 1); WritePixel(rp,i,array[i]); WritePixel(rp,j,array[j]); i++; j--; } } while (i<=j); if (left<j) quicksort(array, left, j, abort, sortfun); if (i<right) quicksort(array,i,right, abort, sortfun); } } void insertion_sort(int *array, int left, int right) { extern struct RastPort *rp; static int tmp[1000]; int i,j,k,l,length, start=0; length=right-left; tmp[start++]=array[left]; for (i=left+1;i<(right+1);i++) { for (j=0;((j<start)&&(array[i]>tmp[j]));j++); SetAPen(rp,0); WritePixel(rp,i,array[i]); for (k=start;k>j;k--) { SetAPen(rp,0); WritePixel(rp,k+left-1,tmp[k-1]); tmp[k]=tmp[k-1]; SetAPen(rp,1); WritePixel(rp,k+left,tmp[k]); } SetAPen(rp,0); WritePixel(rp,j+left,tmp[j]); tmp[j]=array[i]; SetAPen(rp,1); WritePixel(rp,j+left,tmp[j]); start++; } for (j=left,k=0;j<right+1;j++,k++) { array[j]=tmp[k]; } } void bubble_sort(int *array, int left, int right) { int loop1,loop2, sentinel=1, tmp; extern struct RastPort *rp; for (loop1=left;loop1<right;loop1++) { for (loop2=right;(loop2>loop1);loop2--) { if (array[loop1]>array[loop2]) { SetAPen(rp,0); WritePixel(rp,loop1,array[loop1]); WritePixel(rp,loop2,array[loop2]); tmp=array[loop1]; array[loop1]=array[loop2]; array[loop2]=tmp; SetAPen(rp,1); WritePixel(rp,loop1,array[loop1]); WritePixel(rp,loop2,array[loop2]); } } } } void heap_sort(int *array,int left, int right) { extern struct RastPort *rp; int l,r,R,N,K,i,j; int temp[1000]; for (l=left;l<=right;l++) temp[l-left+1]=array[l]; N=(right-left)+1; H1: l=N/2; r=N; H2: if (l>1) {l--; R=K=temp[l];} else { SetAPen(rp,0); WritePixel(rp,r+left-1,temp[r]); R=K=temp[r]; temp[r]=temp[1]; SetAPen(rp,1); WritePixel(rp,r+left-1,temp[r]); r--; if (r==1) { SetAPen(rp,0); WritePixel(rp,left,temp[1]); temp[1]=R; SetAPen(rp,1); WritePixel(rp,left,temp[1]); goto end; } } H3: j=l; H4: i=j; j=(2*j); if (j<r) goto H5; if (j==r) goto H6; if (j>r) goto H8; H5: if (temp[j]<temp[j+1]) j=j+1; H6: if (K>=temp[j]) goto H8; H7: SetAPen(rp,0); WritePixel(rp,i+left-1,temp[i]); temp[i]=temp[j]; SetAPen(rp,1); WritePixel(rp,i+left-1,temp[i]); chkabort(); goto H4; H8: SetAPen(rp,0); WritePixel(rp,i+left-1,temp[i]); temp[i]=R; SetAPen(rp,1); WritePixel(rp,i+left-1,temp[i]); chkabort(); goto H2; end: for (l=left;l<=right;l++) array[l]=temp[l-left+1]; } SHAR_EOF cat << \SHAR_EOF > sorts.uu begin 664 Sorts M```#\P`````````)``````````@```M(````U````#,```%>```%0@````4`, M```+````#0```!0```/I```+2"1()`!)^0````!'^0```O!R`"`\```$AF`"I M)L%1R/_\+'@`!"E.`R@I3P,P0JP#+"9N`11P`"(\```P`$ZN_LXI:P"8`R1*9 MJP"L9P``<"`/D*\`!`:`````@"E``O1A``$N(&L`K-'(T<@B:``0T\G3R2`"R M<@`2&2E)`SC0@5*`0F=2@`)`__Z?P%6`0G<(`"`"4X#4@1^R```@`%."4<C_$ M]A^\`"`@`%."'[$@`"``4<K_^")/+PE@``!X*6L`.@+T<']2@-&L`O1A``#"D M0>L`7$ZN_H!!ZP!<3J[^C"E``RPO`"1`("H`)&<2+&P4^"!`(B@``"E!`R1./ MKO^"(BH`(&<:)#P```/M3J[_XBE``S1G"N6(($`G:``(`*0@;`,L+PA(;`+PZ M(&@`)"EH``0#.$ZZ`/1.NAHX<`!@!"`O``0O`"`L`QQG!"!`3I!.NBJX+'@`* M!")L%/A.KOYB3KH`RDJL`RQG&B(L`S1G!$ZN_]PL>``$3J[_?")L`RQ.KOZ&5 M(!\N;`,P3G5P9&"T0_H`$'``3J[]V"E`%/AG[$YU9&]S+FQI8G)A<GD`+P<N= M+P`(4JP2[%.L`19M%B!L`0Y#Z``!*4D!#B`'$(!R`!(`8!0@!W(`$@!(;`$*M M+P%.NAP$4$\B`"X?3G5.50``+PLF;P`,0JP2[$AM``PO"TAZ_ZQ.NA;P2&P!^ M"DAX__].NAO4("P2["9M__Q.74YU``````````!P84YU3G5.4/_B3E$``$CGI M?S`D:``((!HB$DZZ!Y9":0`(0FD`!B\`@Y]F#B1H`!PF*``,4X-@``#T4D(SR M0@`$2$(S0@`(0D8T*0`$9UQJ$E9":Q@*0@`#U6D`!&$``/Q@2&$``2Q2:0`&U M8!)T!-5I``1A``#F80``[%-I``9*@&O$4VD`!..)XY!@\D)"0D8O`(.?9Q1AE M``#,2D9F#`Q"``%F!E-I``9@[`8&`#`3AB`*4D(,0@`4:]1V`20H``Q*J``0< M9PIX`=1I``930FLZ>!0,0@`2;#(X`AHQ(`L&!0`%#`4`.6\B$[P`,"`+4C$@9 M"AHQ*`I30FKH4FD`!E-#>@"ZJ``09P)2A"1H`!Q'\3`*(`1G'E-$-@0$0P`4? M:P)X$Q3;4<S__$I#:P@4_``P4<O_^B1H`!A"DDII``AG`E.2)&@`%$*!,BD`3 M!DC!)(%,WPS^3EE.6$YUXHCBD5-"9OA.=7P`2.<P`"0`)@'CB>.0XY;CB>.0I MXY;2@]&"9```!%*&XXGCD..63-\`#$YU+P)T`#\\`$#CB>.0XY(,0@`*;0@$X M@@````I2@5-79NA/[P`")!].=4Y0__1.40``2.=^,'``<@`S0```,T```C-`G M``0S0``&80`!=`P&`#!F"`!I(```!&#N#`8`+68*`&F````$80`!5@P&`#!MA M/@P&`#EN.`!I(```!#-&``H\*0`&G6D``B\``I_P````9P92:0`"8,YA`/\ZD M/"D`"@*&````#]*&0H;1AF"X#`8`+F8,2FD`!F9B4FD`!F"F#`8`16<&#`8`E M969080``\`P&`"MG#`P&`"UF"@!I$```!&$``-H,!@`P;3`,!@`Y;BHZ*0``H MX^D``./I``#;:0``X^D```)&``_=:0``#&D/_P``;<SBZ0``8/(_*0`$`E\@+ M`&8*)&@`%$*28```@#0I```_*0`$`E\0`&<"1$+5:0`"+P"#GV=2,WP`/P``E M2H!K"N.)XY!3:0``8/)*:0`"9R!K%'0$U6D``&$`_EQA`/YB4VD``F#680#^L MA%)I``)@S'0`-"D``#\I``0"7X``9P0(P@`?3KH$OB1H`!@DP"2!)&@`%"2\6 M`````7``,"D`"$S?!'Y.64Y83G4L*``(9PHA?```````"$YU2.?\X"1H`!!.Y MDCP`3-\'/S-&``A3J``,9@@`:0@```1.=3\I``0"7P@`9P)\_TYU2.<`P"!$\ M2$`X``)$@`"Y0`1`.``,0``0;0``:@Q`#^]M``#,#$!'\&T``!I(0.>(YYD"T M@0````>S@$A``$!_@&```+P,0`_P;```%@R`__\/[V8``)H,@?````!E``"0E M2.?`P$AY`````DZZ!(Q83TS?`P,@/```?X"Y0$A`<@!@``"`#$#^D&P``"8&" M0#@`@(%G``!J2.?`P$AY`````4ZZ!%983TS?`P-P`&```%`B13H``D``#PI`1 M`!!(0.A%5$5L```.1$7JJ'H`T85@```20D'KJ%)%Z[$"@0````_1@2H)2$"Y6 M0$A`8```%DA`YXCID0*!````!]&!2$"Y0$A`*`A,WP,`3G4``"(`2$$"07__A M#$$`@&T``"0,07^`;```/N:``H"/____!H`X````2$$"@0````?FF4YU2H%G- M^DCG/`!(0#@``D2``#H\.=!P`$A!3KH!K$S?`#Q.=>:``(!_\```2$$"@0``C M``?FF4YU+P9*@&<``(Q\`&```!0@+P`$+P8L`&<``'IJ```$1(`,@`$```!ED M``!B/#Q*@`R`@````&4```H&A@``!`#@B`R`"````&4```H&A@```@#HB`R`D M`@```&4```H&A@```0#DB`R``0```&4```@&1@"`XHAR`-&!2$#01DA&`D:`2 M`+U`2$!@```*/#Q+`$ZZ`9PL'TYU``!P`"(`N4!(0$YU2.?`P$AY`````4ZZT M`M983TS?`P-P`'(`N4!(0$YU2.?`P$AY`````DZZ`KA83TS?`P,@/```?_"YF M0'(`2$!.=4CGP,!(>0````1.N@*66$],WP,#(#Q_\0``<@!.=0@```-G```>Z M2.?`P$AY````!$ZZ`G!83TS?`P,(@``#",```0!`?_!(0$YU2$!(1'H0#(``^ M```@;```%DA`2$$P`4)!!$4!``R`````(&WL0D0,@```(`!L```&X8A01$A`? M2D!F```&Z9A81'P`0_H`/APQ``#MN-A&2$`L`>FIZ;ZS1KU`Z4R:1$A`2$1.S M=0R`````(&P``#9(0$A!,`%"001%`0!L`/_H8```9@4$`P,"`@("`0$!`0$!( M`0$`````````````````````=@`,@```(`!L```&X8A00TA`2D!F```&Z9A8I M0W0`%#L`P.6XUD)(0"0!YZGGNK-"M4#I2YI#;0``#$A`T$6`1$A`3G5$1>A-W M)`#JJ.JZZJFQ@K6!2$"Y0$A`3G4```R````!`&P```H$1@@`8```$$A`2D!F? M```(X9@$1@0`#$``$&P```CIF`1&`@`,0`!`;```".68!$8!`$H`:P``"..8L M!$8`@$A`2D9L```21$;N3NRHW(;BD'(`T8%.=4I&9P``%DA`"D``@+U`2$8"! M1H``O4!(0$YU4H#<AN*03G4``"0``H!_____9@AP`'(`=`!@(DA"2,+H0@*"A M@``'_P1"`_\O`G0*XXGCD%'*__H(P``?)!].=2\#+P"#GV=D!$(`"TJ`9@@@4 M`4*!!$(`("\``I__X```9R120N*(XI'BDR\``I__X```9NY*@VH.4H%D"E*`E M8-A30N.)XY`(```49_0&0@/_;QX,0@?_;"8"@``/___I2C\"0D)(0H1?2$*`> M@B8?3G4O/`````%.N@`F<`!@%B\\`````DZZ`!@P/'_P2$*`0DA`0D!/[P`$* M<@!@T```+P<N+P`(*4<##$JL`Q!G%#!\``$B;`,0L\AG"$AX``A.D5A/+A].A M=0```````````````$CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(1KE`J MS$*]0KU$L$=M``!PL$)M```L#(```'_P9@``"$J!9P``!D[Z_02T1VT``!X,I M@@``?_!F```(2H-G```*(`(B`T[Z_.9.^OS$2H)F```J2H-F```D2.?`P$AYY M`````TZZ_TQ83TS?`P,@/```?_"Y0'(`2$!.=4[Z_(2T1VT``!X,@@``?_!F@ M```(2H-G```*(`(B`T[Z_)).^OPF.@#*1V8``"I*@&8``!Q*@68``!9*@F8`M M``Q*@V8```9.^OQ,3OK[_DZZ_(Y@```(NT`*0``0SD)F```F2H)F```,2H-FR M```&8`#_;L%"PT/+1TZZ_&3!0L-#RT=@```(OT(*0@`0!$<_X)I':```!D[ZW M^]I(0"X!Z8CIB>F?LT>_0$A"+@-\"^VJ[:OMO[='OT)(1#@%(D1(0H#".`!(' M03`!0D%(0CH"RL1(0SP#S,1(0SX#SL1(1]Y&2$="1DA&W862AY&&9```"%-$N MTH/1@D)#2$0L`$A"@,)H```80D0@!I*#2$*1@DA`2$$P`4)!8```*C@`2$$P/ M`4)!2$(\`LS$+@-(1\[$2$?<1TA&0D?=1TA&DH>1AF0``!)31-*#T8)E```([ M4T32@]&"+`!(0H#":```%$)%(`9(0I!"2$!(03`!8```%#H`2$$P`4A"/`+,Z MQ9"&9```#E-%T()E```&4T70@DA%2$*`PF@```1P_SH`(`0B!2@).@1(1$[Z( M``0```R``@```&T``!#BB.*12D5L``!,8```"@1%`!!L``!`1$7H35A%#$4`. M.6\```Y.^OIZ,@!"0$A`2$$$10`0;O(&10`0)`#JJ.JZZJFQ@K6!=`#3@M&"] M2$"Y0$A`3G4D`.B(Z)KHB;&"M8%T`-."T8)(0-!%#$!_\&4$3OKZ3+E`2$!.V M=4CG/T!A```:3-\"_$YU2.<_0&$```A,WP+\3G4(0@`?2$!(0CP\@``^/'_PI M.`#(1KE`.@#*1[M`S$*]0LY"OT*Z1V8``.`,17_P9@``*K!";0``$BX`CH%F. M```.+@*.@V<```H@`B(#3OKZ&KQ$9P``?D[Z^?)*168``$1(0&8``"A*@68`[ M`")(0F8```Y*@V8```C(1D[Z^80@`B(#2$"]0+]`2$!.=4A"9@``'DJ#9@``% M&$A`N4"[0$A`3G5^$)I'OT"_0DA`2$*\1&<``"22@V8```J1@F8```9.=9&"% M:@``"$2!0(`X!D[Z^BA.^OEHTH/1@@R``"```&T``!3BB.*1?@#3A]&'!D4`U M$`Q%?^!E```&3OKY+$A`T$6`1$A`3G5N```*P4+#0\E&RT<,17_P9P``,$I'. M9@``/DA"9@``$$J#9@``"KE`NT!(0$YUUH/5@DI%9@``)DA`TH'1@&```")*C M@&8```Q*@68```9.^OCD3OKY#`I"`!!(0@I``!!(0)Y%1D?H1P1%`"`,1P`TQ M;@``'M*!T8`,1P`@;P``("8"=``$1P`@[JMT`&```#0&10`02$#018!$2$!.L M=0Q'`!!O```.-@)(0T)"2$($1P`0(D8L`NZJ[K[NJ[6&O8,L";Q$9@``/-*#; MT8(&10`0XHCBD0R``"```&T```H&10`0XHCBD7X`TX?1ATA`T$4,17_P9```7 M"(!$2$!.=4[Z^""?AY.#D8(,@``@``!M`/ZV1(?2AWX`T8?BB.*1!D4`$$A`- MT$6`1$A`3G5.5?^@2.<X,"9O`'PD;P"`<``;?``@__MR`"M!__9T_RM"__(K1 M0?_H0>W_T!M`__$;0/_\&T#__1M`__X;0/__*T'_H"M!_^0K0O^P*TC_S$H3? M9TYP`!`3<AA=06M$L'L0"&;V3OL0!``C8```+``@8```'@`K8```$``M8```0 M`AM\``'__V`6&WP``?_^8`X;?``!__U@!AM\``'__%*+8*X0$W(PL`%F!E*+( M&T'_^W`JL!-F$"!20^@`!"2)*U#_]E*+8`Y(;?_V+PM.NA%J4$_7P!`3<BZP" M`68F4HMP*K`39A`@4D/H``0DB2M0__)2BV`.2&W_\B\+3KH1/%!/U\`0$W)LN ML`%F"AM\``'_\5*+8`AR:+`!9@)2BQ`;<@`2`!M`__!P3EU`:P`"EK)[``AFP M]$[[``0`9F```GX`16```G(`96```FP`1V```E@`9V```E(`8V```C(`<V``Y M`?``6&```88`>&```8``<&```68`;V```10`=6```.H`9&````)*+?_Q9PP@C M4D/H``0DB2`08`H@4D/H``0DB2`0*T#_[&P*<@$K0?_H1*W_[$JM_^AG!'`M: M8`Q*+?_^9P1P*V`"<"`;0/_0<``0+?_^(BW_Z(*`<``0+?_]@H!G"%*M_\Q2: MK?_D+RW_["\M_\Q.N@]P4$\K0/_(("W_\DJ`:@9R`2M!__(@+?_((BW_\I*`$ M2.T``O_$;RX@;?_,(DC3P6`"$MA3@&3Z<``0+?_[(BW_Q"!M_\Q@`A#`4X%DE M^B`M__(K0/_(T:W_Y$'M_]`K2/_,2BW__V<``6P;?``@__M@``%B2BW_\6<,= M(%)#Z``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q@`/]@2BW_\6<,(%)#Z``$)(D@# M$&`*(%)#Z``$)(D@$"M`_^Q*+?_\9Q(@;?_,$/P`,'(!*T'_Y"M(_\PO`"\M8 M_\Q.N@[(4$\K0/_(8`#_)AM\`##_^R`M__)*@&H&<`@K0/_R2BW_\6<,(%)#; MZ``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q*+?_\9Q8@;?_,$/P`,!#\`'AR`BM!N M_^0K2/_,+P`O+?_,3KH.I%!/*T#_R'!8L"W_\&8`_KQ(;?_03KH-8%A/8`#^T MKB!20^@`!"2)(E`K2?_,9@A!^@6<*TC_S"!M_\Q*&&;\4XB1[?_,*TC_Y"`M8 M__)*@&M&L<!O0BM`_^1@/'`!*T#_Y"!20^@`!"2)(!`;0/_00BW_T6`B<`(K] M0/^P<`$K0/^@8!1"K?^P8`YP`2M`_[!@!G``8``%,"`M_[!*@&H``)(@+?_D2 M(BW_]K*`;`AT`"M"__9@!)&M__9*+?__9S93K?_D;1AP`"!M_\P0&"\`*TC_B MS"!M`!!.D%A/8.)3K?_V;4AP`!`M__LO`"!M`!!.D%A/8.A3K?_V;1)P`!`M[ M__LO`"!M`!!.D%A/8.A3K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/8.(@< M"V``!)9P_["M__)F!G`&*T#_\B`M__)R%+"!;01R$V`"(@`K0?^X*T'_Y%*!T M2&W_T$AM_^A(;?^T+RW_L"\!+Q).NNV83^\`&"(M_[1([0`!_^1([0`"_[QL@ M!$2M_[QP`K"M_[!F0DJM_^1G#@RM````!/^\;01P`&`"<`$K0/^P2H!F)"(M. M_[A2@4AM_]!(;?_H2&W_M"\`+P$O$DZZ[3Q/[P`8*T#_Y%"20>W_T"M(_\Q*N MK?_D9P13K?^T<`!R`!(M__XD+?_HA(%R`!(M__V$@2M`_[Q*@F<$4JW_O$JM) M_[!G``"B(BW_M$J!:P33K?^\=``4+?_\)BW_\H:"*"W_H(:$9P12K?^\2H1G# M:$H"9F1*K?_D9@8K0/_R8$Y2@20M_^24@4CM``+_J$CM``3_I&P&*T#_\F`R$ M("W_\K"";P0K0O_RT<%3B"M(_ZQ*K?_R9Q@@;?_R<#`B;?^L(@BP,1@`9@93M MK?_R8.)*K?_R9@13K?^\("W_\B(`4H'3K?^\8```HB`M__(B`%J!TZW_O$JM* M_Z!G"%.M__)3K?^\("W_M$J`:@8B`$2!8`(B`"M!_[AP8[*`;P12K?^\#($`! M``/G;P12K?^\<``0+?_\(BW_\B0`A($F+?^@A(-G!%*M_[Q*@V<^2@!F.B`MO M_^2R@&T&4X`K0/_R2JW_\F<<(&W_\G`P(FW_S"((L#$8`&8*4ZW_\E.M_[Q@Y MWDJM__)F!%.M_[Q*+?__9BP@+?^\(BW_]K*`;R"1K?_V4ZW_]FT6<``0+?_[1 M+P`@;0`03I!83U*M_[Q@Y$JM_^AG#DAX`"T@;0`03I!83V`J2BW__F<.2'@`D M*R!M`!!.D%A/8!9*+?_]9Q!P`!`M__LO`"!M`!!.D%A/2JW_L&<``,@@+?^TZ M2H!J5$AX`#`@;0`03I!(>``N(&T`$$Z04$]3K?_R;0`!H%*M_[1L#DAX`#`@V M;0`03I!83V#D4ZW_Y&T.<``@;?_,$!@K2/_,8`)P,"\`(&T`$$Z06$]@PB`M4 M_[13K?^T2H!K(E.M_^1M#G``(&W_S!`8*TC_S&`"<#`O`"!M`!!.D%A/8-)*8 MK?_R9PQ(>``N(&T`$$Z06$]3K?_R;0`!(E.M_^1M#G``(&W_S!`8*TC_S&`"0 M<#`O`"!M`!!.D%A/8-93K?_D;0YP`"!M_\P0&"M(_\Q@`G`P+P`@;0`03I!8W M3TJM__)G#$AX`"X@;0`03I!83U.M__)M(E.M_^1M#G``(&W_S!`8*TC_S&`"H M<#`O`"!M`!!.D%A/8-@0+?_P<F6P`6<&<F>P`68$<&5@`G!%+P`@;0`03I!8L M3R`M_[1*@&H22'@`+2!M`!!.D%A/1*W_M&`,2'@`*R!M`!!.D%A/<`LK0/_`F M4ZW_P"`M_[1R"DZZ#T!P,-*`("W_P!N!"-`@+?^T<@I.N@\J*T#_M`RM````8 M"?_`;LY*K?^T9L@@+?_`<@NP@6P64JW_P'(`$C4(T"\!(&T`$$Z06$]@X'`!J ML"W__V8L("W_O"(M__:R@&\@D:W_]E.M__9M%G``$"W_^R\`(&T`$$Z06$]2O MK?^\8.0@"TS?#!Q.74YU``!.5?_V2.<`,"9O`!HD;P`>*VT`$/_V$!H;0/__/ M2@!G-G(EL`%F(K(29@12BF`:+PM(;?_V+PIA`/;(3^\`#"M`__IG!"1`8,YP2 M`!`M__\O`$Z36$]@P$S?#`!.74YU``!(YP<P+B\`&"9O`!PL+P`@+P=.NA#`, M6$\D0"`*9@1P_V`V""H``P`#9Q!(>``"0J<O!TZZ"EQ/[P`,+P8O"R\J``1.& MN@O(3^\`#"H`2JP#"&<$</]@`B`%3-\,X$YU``````````!P84CG`Q`F;P`0U M($M*&&;\4XB1RRP(?@`>&TJ'9S)3K`$6;18@;`$.0^@``2E)`0X@!Q"`<@`27 M`&#<(`=R`!(`2&P!"B\!3KH#XE!/(@!@QDAL`0I(>/__3KH#T%!/(`9,WPC`Z M3G5.5?_<2.</,"9O`$1\`$'M``PK2/_R'AM*!V<``0IP);X`9@``S!X;<``0< M!W(874%K``"(L'L0"&;T3OL0!`!D8```4`!X8```&@!P8```%`!S8````B!MH M__(D6"M(__)@2B!M__(H&"M(__)%[?_L>@=*A6L6(`1R#\"!0?H`P-'`%)!3T MBNB$4X5@YD(M_^U@&B!M__(H&"M(__(O!$AM_^5.N@<P4$]%[?_E+PI.NO[LV M6$_<@&``_UY2AE.L`19M&"!L`0Y#Z``!*4D!#B`'$(!R`!(`8`#_/G``$`=(B M;`$*+P!.N@+>4$\B`&``_RA2AE.L`19M&"!L`0Y#Z``!*4D!#B`'$(!R`!(`, M8`#_"'``$`=(;`$*+P!.N@*H4$\B`&``_O)(;`$*2'C__TZZ`I0@!DSM#/#_4 MQ$Y=3G4P,3(S-#4V-S@Y04-$148```!.5?_P2.<A,B9O`"P,K````"`4:FP`I M`(80$W(@L`%G#'()L`%G!G(*L`%F!%*+8.A*$V=H("P4:N6`4JP4:D'L%'+1/ MP"1(<"*P$V8F4HLDBTH39PIP(K`39P12BV#R2A-F#$AX``%.N@],6$]@GD(;+ M8)HDBTH39Q@0$W(@L`%G$'()L`%G"G(*L`%G!%*+8.1*$V8"8`9"&V``_W)*; MK!1J9@8@;`,L8`1![!1R*4@4;DJL%&IF?$'Z`21#[!0P(M@BV"+8(M@RD")L\ M`RP@:0`D2'@`*"\H``1(;!0P3KH$DD_O``Q![!0P(@@D/````^XL;!3X3J[_* MXBE`$O0I0!+\<@0I01+X*4`3!"E!$P#E@)/)+'@`!"M`__!.KO[:(&W_\")`D M(V@`"`"D?@`K0/_T8"HL;!3X3J[_RBE`$O1.KO_$*4`2_$'Z`*8B""0\```#9 M[4ZN_^(I0!,$?@0@!P!`@`&!K!+P(`<`0(`"@:P2^`"L``"``Q,`2JP!4&<$W M<`!@!B`\``"``"X`0JP!!"`'`$```2E``0!P`2E``28@!P!```(I0`$B<`(IV M0`%((`<`0`"`*4`!1$'Z"T(I2`,@+RP4;B\L%&I.N@`R0I=.N@?,3.U,A/_<" M3EU.=6-O;CHQ,"\Q,"\S,C`O.#`O`"H`````````````````3OD`````````4 M````````````````````+PLF;P`(2JL`%&<,""L``P`;9@1P`&`V+RP"[$ZZE M!U983R=```0G0``02H!F"G`,*4`4]'#_8!8G;`+L`!1P\\&K`!AP`"=```PGX M0``()E].=0``````````````````3E7_[$CG+Q`N+P`T)F\`."@'<#'`JP`8] M9P9P_V```G`(*P`'`!I6P$0`2(!(P"P`2JL`%&8``(0(*P`"`!MF>G``)T``2 M#'+_OH%G``)"+PM.NO].6$]*@&<,".L`!0`;</]@``(J".L``0`;2@9G#B`K' M`!0B`$2!)T$`#&`(("L`%"=```Q3JP`,;18@:P`$0^@``2=)``0@!Q"`<@`2@ M`&`2(`=R`!(`+PLO`6$`_U)03R(`(`%@``'6""L``@`;9UAP_[Z`9@9P`&``* M`<(@!QM`__]*!F<B<@J^@68<<@(O`4AZ`;(O*P`<*T'_\$ZZ^H!/[P`,*@!@9 M&G(!+P%(;?__+RL`'"M!__!.NOID3^\`#"H`?O]@``#@".L``0`;2@9G4G#_? MOH!G3%2K``QR"KZ!9B8@:P`$0^@``2=)``00O``-(BL`#$J!:PHO"R\`80#^L MKE!/4JL`#"!K``1#Z``!)TD`!"`'$(`B*P`,2H%K``$<?O\@*P`$D*L`$"M`J M__!G<@@K``8`&F=22'@``D*G+RL`'$ZZ!&A/[P`,*T#_[$H&9SA3K?_L;3)"$ MIR\M_^PO*P`<3KH$2$AX``%(;?_]+RL`'$ZZ`\1/[P`82JP#"&8*$"W__7(:[ ML`%GR"\M__`O*P`0+RL`'$ZZ^81/[P`,*@!@`GH`</^Z@&8(".L`!0`;8`RZP MK?_P9P8(ZP`$`!M*!F<.(BL`%"0!1((G0@`,8!@(*P`"`!MG"'(`)T$`#&`(F M(BL`%"=!``P@:P`0)T@`!+Z`9RY3JP`,;18@:P`$0^@``2=)``0@!Q"`<@`2M M`&`2(`=R`!(`+PLO`6$`_9!03R(`<##`JP`89P1P_V`,</^X@&8$<`!@`B`$F M3-\(]$Y=3G4-"@`````N;`,P3KH&3DAY````%$ZZ!'P``````````'!A2.<@2 M,"9O`!`D2TH29R1P`!`20>P!Z0@P``$(`&<*<@`2`'0@DH)@!'(`$@`4@5**+ M8-@@"TS?#`1.=0``````````<&%.5?_X2.<#,"9O`"`D;P`D+B\`*"!*2AAF1 M_%.(D<HL""!+2AAF_%.(D<L@"")+T\`K2?_XO(=C`BP'(`8@2F`"$MA3@&3Z' M(&W_^$(P:``@"TS?#,!.74YU+PLF;P`(<``0$T'L`>D(,``#"`!G!%*+8.P@F M"R9?3G4@+P`((&\`!$Y5__0B3W(*3KH&<`9!`#`2P4J`9O`@"1#AO\EF^D(0\ MD(].74YU```@+P`((&\`!$Y5__0B3R(``D$`!P9!`#`2P>:(9O`@"1#AO\EF` M^D(0D(].74YU```P,3(S-#4V-S@Y86)C9&5F("\`""!O``1#[P`$,@`"00`/? M$OL0W.B(9O(@"2(/6($0X;*)9OI"$)"!3G4@+P`((&\`!$Y5__0B3VP&$/P`5 M+42`<@I.N@7,!D$`,!+!2H!F\!#AO\EF^D(0(`A.79"O``1.=2!O``0B2'(`C M<``O`@P0`"MG!@P0`"UF`E)($!@$```P;1(,```);@PD`>6!TH+2@=*`8.8,@ M$0`M9@)$@20?(`A3@"!O``@@@9")3G5.5?_H2.<!,BXO`#1*AVX&</]@``#2@ M<`B^@&0"+@`@!U:`+@`"1__\)&T`""!M``C1Q]^L`.1#[`#@)E$K2/_P*TG_) M]"`+9P``D"!+("L`!-'`*TC_[")M__"WR6,0)(LE1P`$+&W_]"R*<`!@>+?)9 M9AHL4R2.("L`!"(`TH<E00`$+&W_]"R*<`!@6K7(9`B?K`#D</]@3K7(9BQ*? MDV<.(%.SR&,(GZP`Y'#_8#C?JP`$2I-G#K/39@H@*0`$T:L`!":1<`!@'BM+5 M__0K;?_L_^@F4V``_VX@;?_T((I"DB5'``1P`$S?3(!.74YU``````````!P6 M84CG!S`N+P`8)F\`'"PO`"`O!TZZ!J183R1`(`IF!'#_8!XO!B\++RH`!$ZZP M`HQ/[P`,*@!*K`,(9P1P_V`"(`5,WPS@3G4``"`L`50B/```#EU.N@/$5H`"/ M@'____\I0`%43G4O!RXO``@I1P%4+A].=0``2.</$"XO`!@L+P`<*B\`("\'6 M3KH&,%A/)D`@"V8$</]@'B\%+P8O*P`$3KH!G$_O``PH`$JL`PAG!'#_8`(@( M!$S?"/!.=0``````````<&%(YP,P+B\`%$J';@9P`&```*1P"+Z`9`(N`"`'X M5H`N``)'__Q%[`#@)E(@"V=`("L`!+"';3*PAV8,(%,DB)^L`.0@"V!N("L`# M!)"'<@BP@646($O1QR2()$@DDR5```2?K`#D(`M@3"1+)E-@O"`'(BP!6-"!E M4X!.N@+Z(BP!6$ZZ`M(L`%"&(`96@"P``D;__"\&3KH';EA/)D`@"V<2+P8O. M"TZZ_9XNAV$`_U103V`"<`!,WPS`3G4``````````'!A+P<N+P`(+P=.NO\R= M6$\N'TYU``!(YP,0+B\`$$?L`.@@"V<T""L``@`;9B@(*P`!`!MG("`K``20: MJP`0+`!*AF<2+P8O*P`0+RL`'$ZZ]`Y/[P`,)E-@R"\'3KH%T%A/3-\(P$YUJ M``!(YS<0+B\`'"9O`"`L+P`D2JP#(&<$3KH$^$*L`P@B!R0+)@8L;!3X3J[_' MT"H`</^Z@&8.3J[_?"E``PAP!2E`%/0@!4S?".Q.=0``2.<_`"XO`!PL+P`@1 M*B\`)$JL`R!G!$ZZ!*Q"K`,((`53@"(')`8F`"QL%/A.KO^^*`!P_[B`9@Y.1 MKO]\*4`#"'`6*4`4]"`%#(`````"9Q8,@`````%G"$J`9A@@!F`4(`30AF`.* M(@=T`'8`+&P4^$ZN_[Y,WP#\3G4``$CG-Q`N+P`<)F\`("PO`"1*K`,@9P1./ MN@0P0JP#""(')`LF!BQL%/A.KO_6*@!P_[J`9@Y.KO]\*4`#"'`%*4`4]"`%= M3-\([$YU``!(YP`2)F\`#$JK``IG"B)++'@`!$ZN_I@7?`#_``AP_R=``!1P/ M`!`K``\L>``$3J[^L")+<").KO\N3-](`$YU+P<N+P`(2JP#(&<$3KH#KB('[ M+&P4^$ZN_]QP`"X?3G5.5?^P+PY*K`-`9A)#^@"(<``L>``$3J[]V"E``T!P% M`"!L`S@0*/__0^W_L&`"$MA3@&3Z<``@;`,X$"C__T(U"+!![?^P*4@!:$AXL M`"A(>`#Z<``O`"\`2&P!A'(`+P%(;`%P+P%.N@.$2'@`%$ZZ`^`L;?^L3EU.K M=2HJ(%-T86-K($]V97)F;&]W("HJ``!%6$E4``!I;G1U:71I;VXN;&EB<F%R. M>0````````````````!(YS``)``F`4A"2$/$P<;`P,'40TA"0D+0@DS?``Q.` M=4J`:@``'D2`2H%J```,1(%A```@1(%.=6$``!A$@$2!3G5*@6H```Q$@6$`& M``9$@$YU+P)(030!9@``(DA`2$%(0C0`9P``!H3!,`)(0#0`A,$P`DA",@(D, M'TYU+P-V$`Q!`(!D```&X9E10PQ!"`!D```&Z9E90PQ!(`!D```&Y9E50TI!T M:P``!N.94T,T`.:H2$)"0N:J2$.`P38`,`(T`TA!Q,&0@F0```A30]"!9/YR5 M`#(#2$/GN$A`P4$F'R0?3G5.5?^>2.<S,GX`(&P#.!XH__]P3[Z`;P(N`"`'4 M0^W_KV`"$MA3@&3Z0C5XKY/)+'@`!$ZN_MHF0$JK`*QG3"`K`*SE@"1`+"H`A M.$J&9@0L*P"@2H9G-"(&0?H`LB0(=@LL;!3X3J[_T"!'4H<@"!N\``H(KR(&M M0>W_KR0()@<L;!3X3J[_T'#_8$Y*K`-`9A)#^@"&<``L>``$3J[]V"E``T!!+ M[?^O*4@!N$AX`#Q(>`#Z<``O`"\`2&P!U$AL`<!(;`&L0J=.N@&,3^\`(%.`7 M9P1P_V`"<`!,WTS,3EU.=2HJ(%5S97(@06)O<G0@4F5Q=65S=&5D("HJ``!#1 M3TY424Y510``04)/4E0`*BHJ($)R96%K.B``:6YT=6ET:6]N+FQI8G)A<GD`] M``!(YP,R)F\`&"XO`!QP_RQX``1.KOZV+``,!@#_9@1P`&!F<"(B/``!``%.N MKO\Z)$`@"F8*<``0!DZN_K!@2"5+``H@!Q5```D5?``$``A"*@`.%48`#Y/)9 M3J[^VB5``!`@"V<((DI.KOZ>8!I!Z@`8)4@`%$'J`!0E2``<0JH`&!5\``(`$ M("`*3-],P$YU```O!RXO``AP`"E``PA*AVLBOJP`T&P<(`?G@$'L$O!*L`@`B M9PX@!^>`0>P2\-'`(`A@"'`)*4`4]'``+A].=0``````````<&%(YP$"<``B2 M/```,``L>``$3J[^SBX``H<``#``2H=F!'``8"!*K`,@9Q@@;`,@3I!*@&8$' M<`!@#$AX`!1.N@!V6$\@!TS?0(!.=6&T3G4``$CG,#(L;`-`(&\`&")O`!PDF M;P`@)F\`)"`O`"@B+P`L)"\`,"8O`#1.KOZD3-],#$YU``!.5?_\+PLF;P`0I M(`MF!'``8!8O"TZZ]BXF0$AM__PO"TZZ]Q8@+?_\)FW_^$Y=3G5(YP<`+B\`9 M$"`L`-!3@"P`2D9K,"`&2,#G@$'L$O`J,`@`2@5G&@@%``)F%"`&2,#G@$'L7 M$O`O,`@$3KK[5%A/4T9@S"\'3KK5TEA/3-\`X$YU``!.5?_T2.<!,B9O`"1^Y M_T*G0J=.NOX,4$\K0/_X2H!G5DAX`"@O`$ZZ`3A03R1`(`IG.D'Z`$QP`")*T M<@`L>``$3J[^1$J`9APU?``*`!PB2DZN_C@FZ@`@)JH`)'X`(DI.KOX^+PI.F MN@#(6$\O*@`.3KKZBEA/(`=,WTR`3EU.=71I;65R+F1E=FEC90````!(YP`RO M)FP4_"`+9Q0D4R)+("L`""QX``1.KO\N)DI@Z)'(*4@5`"E(%/Q,WTP`3G5(J MYP$R+B\`%'`,WH`@!W(`+'@`!$ZN_SHF0"`+9@1P`&`Z)T<`"$7L%/P@:@`$E M)T@`!)'()HA*DF8")(M*J@`$9P8B:@`$(HLE2P`$2JP`U&8$*4L`U$'K``P@7 M"$S?3(!.=0``````````````````2.<`$B9O``P7?`#_``@P?/__)T@`%"=(: M`!AP`#`K`!(B2RQX``1.KO\N3-](`$YU2.<!,B9O`!0N+P`8(`MF!'``8"P@: M!R(\``$``2QX``1.KO\Z)$`@"F<4%7P`!0`(0BH`"25+``X@!S5``!(@"DS?A M3(!.=0`````#[`````$````!```=;@````(````$````#`````8````````#F M\@```^D```#43E7X7+_L`O1E``+.2.<',"XO!\`F;P?$?`!Z`'`!OH!O#"\KC M``1.N@+L6$\L`'`"OH!O#"\K``A.N@+:6$\J`"`%#(`````"9QP,@`````%GY M#$J`9AA%^0```2I@%D7Y```"@F`.1?D```,N8`9%^0```2I.N0````!.N0``O M`'XO`"]``!Q.N0```$(@0"EH`#(#/$AM^'0O0``<80``KDAM^'1A``$&2&WX4 M;$ZZ`GA(>``!+RP#/$ZZ`C9/[P`8>@!'[?AT8!(O&R\%+RP#/$ZZ`EI/[P`,Q M4H4,A0```>!MYB\*+P9(>`'?0J=(;?AT3KD`````2&WX9$ZZ`BI(;?AD2&WX^ M;&$``4).N@'2+H$O`$AL``!.N@(:2'@`^DZZ`>(NKP!`3KH"%BZO`$1.N@(4" M+JP#1$ZZ`A(NK`-`3KH""DSM#.#X2$Y=3G6_[`+T90`!ADCG`1`F;P`,?@!@- M!";'4H<,AP```>!M]$S?"(!.=;_L`O1E``%@2.<`,"9O``P@2R9(1>@'@&`,U M+QM(;``63KH!GE!/M\IE\$AL`!Y.N@%F6$],WPP`3G5.5?_PO^P"]&4``2)(5 MYP`P)FT`"$7K!X!@)$ZZ`2XB$R]!``PB/````>!.N@$,Y8$@;0`()O`8`"&OB M``P8`+?*9=A,WPP`3EU.=;_L`O1E``#<2&P`($ZZ`0183TYU3E4``+_L`O1E= M``#$+RT`""\M``Q(;``H3KH!%$Y=3G5.50``O^P"]&4``*0O+0`(+RT`#$AL$ M`#).N@#T3EU.=4Y5__2_[`+T90``A$CG,``@;0`,(!`@;0`(D)`O0``(("@`8 M!$ZZ`)Y.N@!J)#Q!+H2`=@!.N@":2.\``P`,(&T`#"`H``1.N@!\3KH`2$ZZ. M`(!,[P`,``Q.N@!&3KH`5$ZZ`#)([P`#``P@+P`(3KH`5$ZZ`"!,[P`,``Q.Y MN@!83KH`,$S?``Q.74YU``!.^0``((!.^0``!L!.^0``)ZA.^0``#;).^0``& M`!Q.^0``([A.^0``!;1.^0````!.^0``&;Q.^0``!RA.^0``*O1.^0``"N!.[ M^0``#:1.^0``*WA.^0````!.^0```>I.^0``&B!.^0```!1.^0````!.^0``W M``````/L````#@````````,B```"_@```NP```,<```#$````SH```+F```"I M^````PH```,T```"X````R@```,6```"V@````,````"````B````'P```!V] M````!0````,```#R````:````&````!P````6`````$````%```#!`````$`8 M```&```#3`````(````'```#+@```O(````"````"````T8```-`````````9 M`_(```/I````,[_L`O1E``"B2'@`(4AL`*Q.N@"H4$\I0`-`9@A"ITZZ`*!8/ M3TAX`"%(;`"^3KH`C%!/*4`#1&8(0J=.N@"$6$].=;_L`O1E``!@2.<`,"9OL M``PI2P!L2&P`3DZZ`%A83R1`(`IF$"\+3KH`7$*73KH`4%A/8`(@"DS?#`!.` M=;_L`O1E```D+PM(;`",3KH`(%A/)D`@"V8*0J=.N@`D6$]@`B`+)E].=4[Y! M```@@$[Y````*$[Y````/$[Y````%$[Y```E#$[Y`````````^P````"````= M`````,(```"J`````0````8```"\`````P````@```"P````R````+8`````H M```#\@```^D```%>3E7_[+_L`O1E``5.2.</,"XO`#@J!R@M`!`L!"`&D(4F1 M;0`(L*T`%&X4+P0O!R\+(&T`&$Z03^\`#&```.8@!]"$2H!J`E*`XH#E@"!+3 M*#`(`"`%Y8#7P"`&Y8#1P"1(8`12A5B+(!.PA&P,NJT`$&WP8`13AEF*N))LP M!+R';O2ZAFY>0J<O+`,\3KH$TBZ3+P4O+`,\3KH$V"Z2+P8O+`,\3KH$S"`3C M)I(D@$AX``%.N@2X2'@``2\L`SQ.N@2@+ILO!2\L`SQ.N@2F+I(O!B\L`SQ.. MN@2:3^\`-%*%4X99BKJ&;X`H+0`4)&T`""9M`!B^AFP2+PLO!"\&+P<O"F$`M M_OY/[P`4+"T`$+J&;!(O"R\$+P8O!2\*80#^Y$_O`!1,WPSP3EU.=4Y5_]B_G M[`+T90`$)$CG#S`F;P!(+B\`4'H!("T`#"(`Y8$@2]'!*5`#3"@`4H12AR`'& M(@3E@=?!+T``&"](`!Q@``#N?`!%[`-,8`12AEB*O(5L!B`3L))N\D*G+RP#U M/$ZZ`](NDR\$+RP#/$ZZ`]A/[P`0+@4@!>6`0>P#3-'`)DA@5D*G+RP#/$ZZ1 M`Z@@!]"M``PB`%.!0>O__"Z0+P$O+`,\+T``,"](`#A.N@.8(&\`.":02'@`N M`2\L`SQ.N@-T+I,O+P`X+RP#/$ZZ`WA/[P`@4X<F;P`HOH9NID*G+RP#/$ZZF M`TX@!M"M``PNDB\`+RP#/"]``#!.N@-*(&W_["202'@``2\L`SQ.N@,F+I(OD M+P`X+RP#/$ZZ`RI/[P`@4H52A"9M_^Q8BRXO`!@K2__LN(=M`/\,+"T`#"9OI M`!Q%[`-,8`0FVE*&O(=M^$S?#/!.74YU3E7_\+_L`O1E``+,2.<',"XO`#`L: M+P`T<`$K0/_P(`<N`.6`(&T`"-'`)$A@<BH&(`7E@"!M``C1P"9(8%H@$K"3) M;U!"IR\L`SQ.N@*0+I(O!R\L`SQ.N@*6+I,O!2\L`SQ.N@**(!(DDR:`2'@`^ M`2\L`SQ.N@)F+I(O!R\L`SQ.N@)L+I,O!2\L`SQ.N@)@3^\`,%.%68NZAVZB% M4H=8BKZ&;8I,WPS@3EU.=4Y5\#"_[`+T90`"($CG#S`F;P_P+"T`#"X&(`>0X MA^6`0>WP3-'`)$@@!^6`(DO3P"9)*BT`$"](`"`O20`<8`0DVU*'OH5O^"`%K MD(92@"(`2H%J`E*!XH$H`2P`(`13@.6`0>WP2")(T\`@!N6`T<`K2/!`*TGPN M1'`!N(!O%%.$(&WP1"H0*T7_Z%FM\$1@``"F0J<O+`,\3KH!EBXM``P@!M"'? M4X`@;?!`+I`O`"\L`SPO0``H3KH!BB!M\$`J$"M%_^@@K?!,2'@``2\L`SQ.! MN@%>(&WP0"Z0+R\`,"\L`SQ.N@%>3^\`(%.&6:WP0'`!O(!F0$*G+RP#/$ZZN M`3(NK?!,+P<O+`,\3KH!-BMM_^CP3$AX``$O+`,\3KH!$BZM\$PO!R\L`SQ._ MN@$63^\`(&```-@N!"`'WH<O0``DY8!![?!(T<`F2"`O`"30K0`,4X!([P`!) M`!B^AFT(OH9G&+Z&;F0@!^6`0>WP2-'`(!"PJ``$;`)2AR`'Y8!![?!(T<`DG M2+J2;$!"IR\L`SQ.N@">+I,O+P`@+RP#/$ZZ`*(FDDAX``$O+`,\3KH`@BZ3* M+R\`,"\L`SQ.N@"&3KH`=D_O`"!@`/]P0J<O+`,\3KH`7BZ3+R\`("\L`SQ.Q MN@!B)JW_Z$AX``$O+`,\3KH`0"Z3+R\`,"\L`SQ.N@!$3KH`-$_O`"!@`/YN4 M)&\`'"9O`"`L+0`08`0DVU*'OH9O^$S?#/!.74YU3OD``""`3OD````<3OD`: M`"IP3OD`````3OD`````<&$```/L`````@````````5F```%6@````$````%Z M```%;`````(````'```%<@``!6`````````#\@```^H```"\5&EM92!E;&%P% M<V5D.B`E,BXT9@H``%LE,#-D70``"@`;6T@;6TH``!M;)60[)61(6``;6R5D- M.R5D2"``475I8VMS;W)T('=I;F1O=P````````*``@```0```````!0/````1 M```````````\````````````!0`%`H`"```/2&ER97,@4V-R965N````````4 M`H`"```"``&`!``/`````````'X``````````&EN='5I=&EO;BYL:6)R87)Y> M`&=R87!H:6-S+FQI8G)A<GD``````"@`````````````````````````````< M`0H```````````````````````````````````````````$L````````````X M````````````````````````````````````````````````````````````` M``````````````````"```````$```0`__\````.``X```````````````#_> M_P````0`!````````"=.```!7/__````!``$````````)V0`````__\````.V M``X````````I3`````#__P````0`!``````````````!F/__````!``$````H M````*6@`````__\````$``0````````I<@``````("`@("`@("`@*"@H*"@@Z M("`@("`@("`@("`@("`@("!($!`0$!`0$!`0$!`0$!`0A(2$A(2$A(2$A!`0@ M$!`0$!"!@8&!@8$!`0$!`0$!`0$!`0$!`0$!`0$!`1`0$!`0$(*"@H*"@@(": M`@("`@("`@("`@("`@("`@("$!`0$"`@("`@("`@("`H*"@H*"`@("`@("`@L M("`@("`@("`@($@0$!`0$!`0$!`0$!`0$!"$A(2$A(2$A(2$$!`0$!`0$(&!2 M@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!$!`0$!`0@H*"@H*"`@("`@("`@("6 M`@("`@("`@("`@(0$!`0(````````@````/L````!0````````'@```!S```: M`:0```&0```!?`````8````$```!O````8````$*````Z````*````!H````V M`````_(```/I````!2\.+'D``!3X(B\`"$ZN_SHL7TYU```#[`````$````$D M````!`````````/P`````E]$96QA>0````````````````/R```#Z0````LOB M#BQY```#*")O``A.KOYB+%].=2\.+'D```,H(F\`""`O``Q.KOW8+%].=0``! M`^P````"````!````!@````$`````````_`````#7T]P96Y,:6)R87)Y````- M%`````1?0VQO<V5,:6)R87)Y``````````````````/R```#Z0````TO#BQY2 M```#1")O``A,[P`#``Q.KOZ\+%].=0``+PXL>0```T0B;P`(("\`#$ZN_JHL; M7TYU```#[`````(````$````(`````0````````#\`````)?4V5T05!E;@``? M`!P````#7U=R:71E4&EX96P```````````````/R```#Z0```!0O#BQY```#E M0"!O``A.KO^^+%].=2\.+'D```-`(&\`"$ZN_[@L7TYU+PXL>0```T`@;P`(7 M3J[_.BQ?3G4O#BQY```#0"!O``A.KO\T+%].=0```^P````$````!````$``S M```L````&`````0````````#\`````-?3W!E;E=I;F1O=P`````\`````U]/4 M<&5N4V-R965N`````"@````#7T-L;W-E5VEN9&]W````%`````-?0VQO<V53: 18W)E96X``````````````_(#% `` end size 15812 SHAR_EOF # End of shell archive exit 0 -- Bob Page, U of Lowell CS Dept. page@swan.ulowell.edu ulowell!page Have five nice days.