[comp.sources.amiga] v89i048: smear - display hack v2

page@swan.ulowell.edu (Bob Page) (03/15/89)

Submitted-by: ap@syssun.cl.msu.edu (Joe A. Porkka)
Posting-number: Volume 89, Issue 48
Archive-name: fun/smear2.1

[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:
#	smear2.c
#	smear2.uu
# This archive created: Wed Mar 15 10:50:32 1989
cat << \SHAR_EOF > smear2.c
/* SMEAR2.c    (P) Public Domain
 * 28-Jan-1989
 * Joe Porkka
 * jap@syssun.cl.msu.edu
*/

/* This is a little WorkBench hack I came up with.
 * enjoy.
 * Compiles with Lattice 3.10
 * For help, type 'smear2 help'
*/

#include <stdlib.h>
#include <intuition/intuition.h>

long GfxBase=0,IntuitionBase=0;

struct NewWindow nw={
    0,0,1,1,1,1,0,SIMPLE_REFRESH,0,0,"",0,0,1,1,1,1,WBENCHSCREEN};
struct Window *win,*OpenWindow();

struct NewScreen ns={
    0,0,640,-1,2,
    -1,-1,
    HIRES,
    CUSTOMSCREEN|SCREENBEHIND|SCREENQUIET,
    0,
    0,
    0,
    0
};

struct Screen *scr,*OpenScreen();
struct RastPort *myrp,*wrp;
struct BitMap *mybits,*wbits;
int minterm,delay,multiminterm,nodiag;

#define NTERMS 6
int terms[NTERMS]={0x22,0xcc,0x33,0x88,0x44,0xee};

/* This is to remove the program
 * it works even if the program aborts before finishing setup stuff.
*/
vanish(){
    if(win) CloseWindow(win);
    if(scr) CloseScreen(scr);
    if(GfxBase)CloseLibrary(GfxBase);
    if(IntuitionBase)CloseLibrary(IntuitionBase);
    exit(1);
}

main(ac,av) int ac; char **av; {

    int len,a,b,err=0;

    win=0;scr=0;GfxBase=IntuitionBase=0;
    a=1;ac--;
    delay=0;
    minterm=0x00;
    multiminterm=0;
    nodiag=0;
/* Im sure this arg parsing could be done better, but I just hacked it
 * out in five minutes
*/
    while(ac>0) {
        if(stricmp(av[a],"?")==0) {
            printf("%s HELP,MINTERM,DELAY,NODIAG/S\n",av[0]);
            exit(0);
        }
        if(stricmp(av[a],"HELP")==0) {
            printf("\tHELP          Gets help\n");
            printf("\t   with no args, the program picks randomly which minterm\n\t to use for each block move\n");
            printf("\tMINTERM xx    specify a minterm to use (Hexidecimal)\n");
            printf("\t              Try using `cc' for the minterm\n");
            printf("\tDELAY nn      slow down the operations; large nn is slow\n");
            printf("\tNODIAG        prevents diagonal block movements\n");
            printf("\t CTRL-C to exit\n");
            printf("\n");
            exit(0);
        }
        if(stricmp(av[a],"MINTERM")==0) {
            a++;ac--;
            if(ac && minterm==0) {
                sscanf(av[a],"%x",&minterm);
                if(minterm<=0 || minterm>255) {
                    err=1;
                    break;
                }
            } else {
                err=1;
                break;
            }
        } else if(stricmp(av[a],"DELAY")==0) {
            a++;ac--;
            if(ac && delay==0) {
                sscanf(av[a],"%d",&delay);
                if(delay<=0)  {
                    err=1;
                    break;
                }
            } else {
                err=1;
                break;
            }
        } else if(stricmp(av[a],"NODIAG")==0) {
            nodiag=1;
        } else if(minterm==0) {
            sscanf(av[a],"%x",&minterm);
            if(minterm<=0 || minterm>255) {
                err=1;
                break;
            }
        } else if(delay==0) {
            sscanf(av[a],"%d",&delay);
            if(delay<=0)  {
                err=1;
                break;
            }
        } else {err=1;break;}
        a++;ac--;
    }
    if(err) {
        printf("Bad args. Use `%s ?' for help\n",av[0]);
        exit(15);
    }
    if(delay<0) delay=0;
    if(minterm==0) multiminterm=1;
    printf("Minterm=0x%X  delay=%d \n",minterm,delay);

    printf("Smear 2.0 January 89 by  Joe Porkka (PUBLIC DOMAIN)\n");

    onbreak(vanish);
    IntuitionBase=OpenLibrary("intuition.library",30);
    if(IntuitionBase==0) {
        printf("No intuition!\n");
        exit(15);
    }
    GfxBase=OpenLibrary("graphics.library",30);
    if(GfxBase==0) {
        printf("No graphics system.\n");
        CloseLibrary(IntuitionBase);
        exit(15);
    }
    win=OpenWindow(&nw);
    scr=OpenScreen(&ns);
    if (scr==0||win==0) {
        printf("Out Of MEMORY!.\n");
        vanish();
    }
    myrp=&scr->RastPort;
    wrp=win->RPort;
    mybits=myrp->BitMap;
    wbits=wrp->BitMap;

    CloseWindow(win);
    win=0;
    len=640*200/8/4; /* size of a bitplane in longwords */
    BltBitMap(wbits,0,0,mybits,0,0,640,200,0xC0,3,0);
/*
    copyit(wbits->Planes[0],mybits->Planes[0],len);
    copyit(wbits->Planes[1],mybits->Planes[1],len);
 */
    ScreenToFront(scr);
    smear();
    vanish();
}

smear() {
    int d,x,y,lx,ly;
    int q,w,dirs;
    char *a;

    a=malloc(100);

    if(nodiag) dirs=4; else dirs=8;
    do {
        if(delay) Delay(delay);
        d=rand()%dirs;
        x=rand()%639;
        y=rand()%199;
        q=639-x;w=199-y;
        if(q>200) q=200;
        if(w>100) w=100;
        lx=rand()%q;
        ly=rand()%w;

        if(lx==0 || ly==0) continue;
        if(multiminterm) {
            minterm=terms[rand()%NTERMS];
        }
        switch(d) {
            case 0: /* left one bit */
                BltBitMap(mybits,x+1,y,mybits,x,y,lx,ly,minterm,3,a);
                break;
            case 1: /* right one bit */
                BltBitMap(mybits,x,y,mybits,x+1,y,lx,ly,minterm,3,a);
                break;
            case 2: /* up one bit */
                BltBitMap(mybits,x,y+1,mybits,x,y,lx,ly,minterm,3,a);
                break;
            case 3: /* down one bit */
                BltBitMap(mybits,x,y,mybits,x,y+1,lx,ly,minterm,3,a);
                break;

            case 4: /* left,up one bit */
                BltBitMap(mybits,x+1,y+1,mybits,x,y,lx,ly,minterm,3,a);
                break;
            case 5: /* right,down one bit */
                BltBitMap(mybits,x,y,mybits,x+1,y+1,lx,ly,minterm,3,a);
                break;
            case 6: /* right,up one bit */
                BltBitMap(mybits,x,y+1,mybits,x+1,y,lx,ly,minterm,3,a);
                break;
            case 7: /* left,down one bit */
                BltBitMap(mybits,x+1,y,mybits,x,y+1,lx,ly,minterm,3,a);
                break;
        }
        chkabort();
    } while(1);
}
SHAR_EOF
cat << \SHAR_EOF > smear2.uu

begin 666 smear2
M```#\P`````````%``````````0````"````MP````H```$1```+!````^D`/
M```"3OD```````````/L`````0````0````"`````````_(```/J````MP``8
M``````````````````$``0$!`````````$````````````````@`````````,
M```!``$``0`!``$``````H#__P`"__^```&/````````````````````````5
M`"(```#,````,P```(@```!$````[C\`)7,@2$5,4"Q-24Y415)-+$1%3$%9>
M+$Y/1$E!1R]3"@!(14Q0``E(14Q0("`@("`@("`@($=E=',@:&5L<`H`"2`@T
M('=I=&@@;F\@87)G<RP@=&AE('!R;V=R86T@<&EC:W,@<F%N9&]M;'D@=VAIS
M8V@@;6EN=&5R;0H)('1O('5S92!F;W(@96%C:"!B;&]C:R!M;W9E"@`)34E.[
M5$5232!X>"`@("!S<&5C:69Y(&$@;6EN=&5R;2!T;R!U<V4@*$AE>&ED96-IS
M;6%L*0H`"2`@("`@("`@("`@("`@5')Y('5S:6YG(&!C8R<@9F]R('1H92!M]
M:6YT97)M"@`)1$5,05D@;FX@("`@("!S;&]W(&1O=VX@=&AE(&]P97)A=&EO.
M;G,[(&QA<F=E(&YN(&ES('-L;W<*``E.3T1)04<@("`@("`@('!R979E;G1S@
M(&1I86=O;F%L(&)L;V-K(&UO=F5M96YT<PH`"2!#5%),+4,@=&\@97AI=`H`'
M"@!-24Y415)-`"5X`$1%3$%9`"5D`$Y/1$E!1P`E>``E9`!"860@87)G<RX@U
M57-E(&`E<R`_)R!F;W(@:&5L<`H`36EN=&5R;3TP>"58("!D96QA>3TE9"`*"
M`%-M96%R(#(N,"!*86YU87)Y(#@Y(&)Y("!*;V4@4&]R:VMA("A054),24,@[
M1$]-04E.*0H`:6YT=6ET:6]N+FQI8G)A<GD`3F\@:6YT=6ET:6]N(0H`9W)A6
M<&AI8W,N;&EB<F%R>0!.;R!G<F%P:&EC<R!S>7-T96TN"@!/=70@3V8@345-Q
M3U)9(2X*`````````^P````!`````0```"0````````#\@```^L````*```#8
M\@```^H```"_````````````````````````````````````````````````>
M`````````````````````````````````````````````````````````````
M`````````````````````````&1O<RYL:6)R87)Y``````%C;VXZ,3`O,3`O$
M,S(P+S@P+P``````````````````````````````*@``````````````````%
M````@``J*B!5<V5R($%B;W)T(%)E<75E<W1E9"`J*@``__\````.``X`````+
M````L`````#__P````0`!```````````````S$-/3E1)3E5%``#__P````0`I
M!`````````#T`````$%"3U)4`/__````!``$`````````1(`````:6YT=6ETF
M:6]N+FQI8G)A<GD`````("`@("`@("`@*"@H*"@@("`@("`@("`@("`@("`@1
M("!($!`0$!`0$!`0$!`0$!`0A(2$A(2$A(2$A!`0$!`0$!"!@8&!@8$!`0$!:
M`0$!`0$!`0$!`0$!`0$!`1`0$!`0$(*"@H*"@@("`@("`@("`@("`@("`@(">
M`@("$!`0$"`@("`@("`@("`H*"@H*"`@("`@("`@("`@("`@("`@($@0$!`06
M$!`0$!`0$!`0$!"$A(2$A(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!9
M`0$!`0$!`0$!$!`0$!`0@H*"@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0=
M(````````F8```````````````````````````````````````````*(````2
M`````````````````````````````````````````````````````````````
M``````````````````````````````T*```P,3(S-#4V-S@Y86)C9&5F````Y
M`````@#_____``````````$```0``````````!0`````````````````````7
M``````````````/L````!@````,```)F```"1````20```$*````\````-@`>
M```````#\@```^D```L$(\````!0(\@```!4(`](YW[^*D`L>0````0CS@```
M`$`CSP```$Q"N0```$B3R4ZN_MHH0"/L`)@````X2JP`K&<``(H@#9"M``0C<
MP`````1A``',0J=.N0``*OA8CR!`(&@`K-'(T<@B:``0T\G3R2`Y````4'(`>
M$ADCR0```%S0@5*`0F=2@`)`__Z?P%6`0G<(`"`Y````4"!Y````5"0`4X#4F
M@1^P```@`%."4<C_]A^\`"`@`%."'[$@`"``4<K_^")/+PE@``!T(^P`.@``K
M``1A``%(80`!,B/`````2"\`)$`@*@`D9Q8L>0```*@@0"(H```CP0```#A.,
MKO^"(BH`(&<<)#P```/M3J[_XB/`````6&<*Y8@@0"EH``@`I"!Y````2"\(9
M2'D`````(&@`)"/H``0```!<3?D```+\(#P```!29PI3@'(`+,%1R/_\3?D`'
M````3KD```RT<`!@!"`O``0O`"`Y````+&<$($!.D$ZY```F#BQY````0")Y&
M````J$ZN_F)*N0```*!G"B)Y````H$ZN_F)*N0```*1G"B)Y````I$ZN_F)*L
MN0```&!G"B)Y````8$ZN_F)*N0```$AG+"(Y````/&<$3J[_W"(Y````6&<$V
M3J[_W"QY````!$ZN_WPB>0```$A.KOZ&(!\N>0```$Q,WW]^3G5P9&``_V!!+
M[`!<3J[^@$'L`%Q.KOZ,3G5#^0```&1P`$ZN_=@CP````*AGU$YU2KD`````!
M9PPO.0````!.NBE(6(]*N0````1G#"\Y````!$ZZ*2!8CTJY`````&<,+SD`W
M````3KHHN%B/2KD````$9PPO.0````1.NBBD6(]P`2\`3KH24EB/3G5.5?_PX
M<``CP``````CP`````0CP`````0CP`````!R`5.M``@CP````!PCP````!@C<
MP````"`CP````"0K0/_P*T'_^$JM``AO``)J("W_^.6`(&T`#-'`2'D```!R$
M+Q!.N@F&4(]*@&8:(&T`#"\02'D```!T3KH'A%"/0J=.NA',6(\@+?_XY8`@\
M;0`,T<!(>0```)0O$$ZZ"4Y0CTJ`9FA(>0```)E.N@=26(](>0```+-.N@=&?
M6(](>0```0Q.N@<Z6(](>0```4-.N@<N6(](>0```7).N@<B6(](>0```:U.7
MN@<66(](>0```=].N@<*6(](>0```?%.N@;^6(]"ITZZ$498CR`M__CE@"!MJ
M``S1P$AY```!\R\03KH(R%"/2H!F7E*M__A3K0`(9TI*N0```!AF0B`M__CEQ
M@"!M``S1P$AY````&$AY```!^R\03KH'#D_O``Q*N0```!AO#@RY````_P``"
M`!AO``$X<`$K0/_P8``!.G`!*T#_\&```3`@+?_XY8`@;0`,T<!(>0```?XO$
M$$ZZ"$Q0CTJ`9E)2K?_X4ZT`"&<^2KD````<9C8@+?_XY8`@;0`,T<!(>0``_
M`!Q(>0```@0O$$ZZ!I)/[P`,2KD````<;@``R'`!*T#_\&```,IP`2M`__!@!
M``#`("W_^.6`(&T`#-'`2'D```('+Q!.N@?<4(]*@&8,<`$CP````"1@``"*$
M2KD````89CX@+?_XY8`@;0`,T<!(>0```!A(>0```@XO$$ZZ!B!/[P`,2KD`V
M```8;PP,N0```/\````8;TIP`2M`__!@3DJY````'&8R("W_^.6`(&T`#-'`K
M2'D````<2'D```(1+Q!.N@7:3^\`#$JY````'&X0<`$K0/_P8!1P`2M`__!@H
M#%*M__A3K0`(8`#]DDJM__!G'"!M``PO$$AY```"%$ZZ!310CW`/+P!.N@]ZP
M6(]*N0```!QJ!D*Y````'$JY````&&8(<`$CP````"`O.0```!PO.0```!A(6
M>0```C-.N@3T3^\`#$AY```"3$ZZ!.98CTAZ_(A.N@E$6(]P'B\`2'D```*!C
M3KHE>%"/(\`````$2H!F%DAY```"DTZZ!+98CW`/+P!.N@[\6(]P'B\`2'D`5
M``*B3KHE2%"/(\``````2H!F(DAY```"LTZZ!(98CR\Y````!$ZZ)1)8CW`/M
M+P!.N@[`6(](>0````I.NB6,6(\CP`````!(>0```#I.NB5F6(\CP`````1*@
M@&<(2KD`````9A!(>0```LA.N@0T6(]A`/O6('D````$T/P`5"/(````"")Y7
M`````"/I`#(````,(^@`!````!`@>0````PCZ``$````%"\)3KHD]%B/D<@CL
MR``````K?```#Z#__"\(<`,O`"\\````P"\\````R"\\```"@"\(+P@O.0``3
M`!`O""\(+SD````43KHD=D_O`"PO.0````1.NB3@6(]A"&$`^T1.74YU3E7_^
MW$CG(`!P9"\`3KH.0%B/*T#_W$JY````)&<(<`0K0/_@8`9P""M`_^!*N0``P
M`!QG#"\Y````'$ZZ(X)8CTZZ`XPB+?_@3KH@?"M!__Q.N@-\(CP```)_3KH@%
M:BM!__A.N@-J(CP```#'3KH@6"`\```"?Y"M__@D/````,>4@2M`_^@K0?_TE
M*T+_Y`R`````R&\(*WP```#(_^@,K0```&3_Y&\&<&0K0/_D3KH#'B(M_^A.U
MNB`.*T'_\$ZZ`PXB+?_D3KH?_BM!_^Q*K?_P9P#_6$J!9P#_4DJY````(&<:5
M3KH"Z'(&3KH?VN6!($'1_````%HCT````!@@+?_\#(`````(9``",N6`3OL(.
M`F```!Y@``!:8```EF```-)@``$.8``!3F```8Y@``',("W_^%*`+RW_W'(#>
M+P$O.0```!@O+?_L+RW_\"0M__0O`B\M__@@>0```!`O""\"+P`O"$ZZ(O)/L
M[P`L8``!S"`M__A2@"\M_]QR`R\!+SD````8+RW_["\M__`D+?_T+P(O`"!Y)
M````$"\(+P(O+?_X+PA.NB*R3^\`+&```8P@+?_T4H`O+?_<<@,O`2\Y````+
M&"\M_^PO+?_P+RW_]"0M__@O`B!Y````$"\(+P`O`B\(3KHB<D_O`"Q@``%,<
M("W_]%*`+RW_W'(#+P$O.0```!@O+?_L+RW_\"\`)"W_^"\"('D````0+P@OW
M+?_T+P(O"$ZZ(C)/[P`L8``!#"`M__A2@"(M__12@2\M_]QT`R\"+SD````8%
M+RW_["\M__`O+?_T+RW_^"!Y````$"\(+P$O`"\(3KHA[D_O`"Q@``#(("W_?
M^%*`(BW_]%*!+RW_W'0#+P(O.0```!@O+?_L+RW_\"\!+P`@>0```!`O""\MK
M__0O+?_X+PA.NB&J3^\`+&```(0@+?_T4H`B+?_X4H$O+?_<=`,O`B\Y````0
M&"\M_^PO+?_P+RW_]"\!('D````0+P@O`"\M__@O"$ZZ(69/[P`L8$`@+?_X?
M4H`B+?_T4H$O+?_<=`,O`B\Y````&"\M_^PO+?_P+P$O+?_X('D````0+P@OJ
M+?_T+P`O"$ZZ(21/[P`L3KH?=&``_.H``$Y5``!2N0```OQ3N0```G(@.0``C
M`G)*@&L8('D```)J4KD```)J("T`"!"`<@`2$&`:("T`"`*`````_TAY```")
M9B\`3KH1AE"/(@!.74YU3E4``$*Y```"_$AM``PO+0`(2'K_G$ZZ$,)/[P`,E
M2'D```)F</\O`$ZZ$5)0CR`Y```"_$Y=3G4@.0```'`B/```#EU.NAS*5H`"N
M@'____\CP````'!.=4Y5```C[0`(````<$Y=3G5.5?_H(^T`"````P!![0`0.
M0JW__"M(_^P@;0`,$!!*`&<``3AR`!(04JT`#"!!*TC_^-'\```!01`0"```,
M`V;8#($````E9@``T"!M``P0$`P``"5F.'``('D```,`$!!2N0```P`K0/_X-
M(&W_^-'\```!01`0"````V;:#*T````E__AGDB`M__Q.74YU(&T`#!`0#```'
M*F<,*VW_[/_H6*W_[&`(0JW_Z%*M``Q"K?_T+RW_Z$AM__1(>@"F+RT`#$ZZE
M`U1/[P`0*T#_\$J`9P0K0``,#*W_______1F'DJM__!G!%*M__Q*K?_\;P@@K
M+?_\3EU.=7#_3EU.=4JM__1G!E.Y```#`$JM__!F0B`M__Q.74YU<``@>0``F
M`P`0$"M`__12N0```P`@;?_TT?P```%!$!`(```#9MH@+?_TL*W_^&<`_M`@R
M+?_\3EU.=5*M__Q@`/[`("W__$Y=3G5.5?_\<``@>0```P`0$%*Y```#`"M`G
M__Q*@&8"</].74YU(&\`!")O``AP`'(`$!@2&0P``&%M"@P``'IN!`0``"`,W
M`0!A;0H,`0!Z;@0$`0`@D(%F!$H!9M1.=0``3E7_^$CG`1@H;0`(#+D````@>
M```#!&P``*YP`!`4#(`````@9PX,@`````EG!@P```IF!%*,8.(0%$H`9P``-
MB"`Y```#!.6`4KD```,$($#1_````PPF2!`4#```(F8R4HPFC'``$!1*@&<,4
M#(`````B9P12C&#L$!1*`&8,<`$O`$ZZ"5Q8CV""0A12C&``_WPFC'``$!1*8
M@&<:#(`````@9Q(,@`````EG"@P```IG!%*,8-X0%$H`9@)@"$(44HQ@`/](B
M2KD```,$9@@@>0```$A@!D'Y```##"/(```#"$JY```#!&9Z(GD```!((&D`4
M)'`H+P`O*``$2'D```!T3KH&V$_O``PO/````^Y(>0```'1.NAPT4(\CP```6
M`Z@CP````[!R!"/!```#K"/````#N"/!```#M.6`0J<CP````Y!.NAS\6(\@N
M>0```Y`B0"-H``@`I'X`(\````.,8"Y.NAQ.(\````.H3KH<5"/````#L"\\<
M```#[4AY````G$ZZ&\90CR/````#N'X$(`<`@```@`&!N0```Z0@!P"```"`E
M`H&Y```#K`"Y``"``P```[1*N0```*QG!'``8`8@/```@``N`"/Y```#J```?
M`F`@!P"``````2/````"7"/Y```#L````H(@!P"``````B/````"?B/Y```#)
MN````J0@!P"`````@"/````"H$'Z!VHCR````#`O.0```P@O.0```P1.NO.P>
M4(]"ITZZ!?18CTS?&(!.74YU("\`!&8&(#P``!8T(\`````P<`!.=0``3E7_N
MX'``<@`@;0`($A!2@2!!T?P```%`$A`K0/_T*T#_\`@!``)G/"`M__!R"DZZ#
M&&!R`"!M``@2$%*M``@"@0````_0@2M`__!P`"!M``@0$%*`($#1_````4`0:
M$`@```)FQ"!M``@0$`P``&QF"E*M``AP`2M`__0@;0`,3I`@;0`($A`K0/_\+
M#`$`8V<>(&W__-'\```!01`0"````V<,(&T`#$Z0*T#__&#B("W__`R`____:
M_V8,(&T`$""`<`!.74YU<``@;0`($!!R,`2!````"&L`!)*PNQ@(9O!.^Q@&I
M````<V``!#8```!C8``#Q@```&A@``-`````>&```8@```!O8```\````&1@(
M```"<``K0/_L2JW_\&<*#*T````!__!O-B`M__P,@````"UG"`R`````*V8B<
M#*T````M__QF!'#_8`)P`"M`_^P@;0`,3I!3K?_P*T#__"!M__S1_````4$05
M$`@```)F#B!M`!`@K?_\<`!.74YU0JW_Z"`M_^AR"DZZ%P0B+?_\`H$````/6
MT($K0/_H(&T`#$Z0*T#__%.M__`@+?_P2H!G$B!M__S1_````4$0$`@```)F5
MODJM`!1G``.D2JW_[&H$1*W_Z$JM__1F#B)M`!0@42"M_^A@``.&(FT`%"!1B
M(*W_Z&```W@@+?_\#(`````P;0@,@````#=O#B!M`!`@K?_\<`!.74YU0JW_Y
MZ"`M_^CG@"(M__P"@0````?0@2M`_^@@;0`,3I`K0/_\4ZW_\"`M__!*@&<4'
M#*T````P__QM"@RM````-__\;\!*K0`49P`#"DJM__1F#B)M`!0@42"M_^A@Z
M``+V(FT`%"!1(*W_Z&```N@@;?_\T?P```%!$!`(```'9@X@;0`0(*W__'``9
M3EU.=2MM__S_^"!M``Q.D"M`__Q*K?_P9PH,K0````+_\&].#*T````P__AF9
M1"`M__P,@````'AG"`R`````6&8P(&T`#$Z0($`K2/_\T?P```%!$A`(`0`'_
M9@P@;0`0((!P`$Y=3G5"K?_H4ZW_\&!@(&W_^-'\```!01`0"````F<.("W_0
M^`2`````,"M`_^@@;?_XT?P```%!$!`(````9PX@+?_X!(`````W*T#_Z"!M,
M__C1_````4$0$`@```%G#B`M__@$@````%<K0/_H4ZW_\"`M__!*@&<``(P@=
M;?_\T?P```%!$!`(```'9W@@+?_HZ8`@;?_\T?P```%!$A`K0/_H"`$``F<.M
M("W__`2`````,(&M_^@@;?_\T?P```%!$!`(````9PX@+?_\!(`````W@:W_U
MZ"!M__S1_````4$0$`@```%G#B`M__P$@````%>!K?_H(&T`#$Z0*T#__&``2
M_VI*K0`49P`!6DJM__1F#B)M`!0@42"M_^A@``%&(FT`%"!1(*W_Z&```3@@$
M;?_\T?P```%!$!`(```"9@X@;0`0(*W__'``3EU.=4*M_^P@+?_L<@I.NA0JL
M(BW__`*!````#]"!*T#_["!M``Q.D"M`__Q3K?_P("W_\$J`9Q(@;?_\T?P`C
M``%!$!`(```"9KY*K0`49P``RB)M`!0@42`M_^PP@&```+I*K0`49PXB;0`4%
M(%%2D2`M__P0@%.M__`@+?_P2H!O)"!M``Q.D"M`__Q2@&<62JT`%&?@(FT`!
M%"!14I$@+?_\$(!@T"`M__P,@/____]F#"!M`!`@@'``3EU.=2!M``A2B"`(D
M3EU.=4JM`!1G#B)M`!0@45*1("W__!"`(&T`#$Z0*T#__%*`9QY3K?_P("W_L
M\$J`9Q(@;?_\T?P```%!$!`(```#9\`B;0`4(%%"$&`&<`!.74YU(&T`$""MP
M__P@;0`(4H@@"$Y=3G5.5?_\+RT`"$ZZ"N98CR!M``C1P"M(__P@+0`04ZT`2
M$$J`;QH@;0`,$!`B;?_\$H!2K0`,2@!G!E*M__Q@VB!M__Q"$"`M``A.74YU+
M3E7_]"M\```"1/_T2JW_]&=((&W_]`@H``(`&V8R(&W_]`@H``$`&V<F(&W_9
M]"`H``20J``0*T#_^$J`9Q(O`"\H`!`O*``<3KH/&D_O``P@;?_T*U#_]&"RQ
M+RT`"$ZZ`5A8CTY=3G5.5?_X2KD```.49QH@>0```Y0O$"\(*TC_^$ZZ$R!0J
MCT*Y```#E$JM``AF!G``3EU.=5BM``@O+0`(3KH-O%B/*T#__$J`9@9P`$Y=*
M3G4@;?_\(*T`""M(__A8B"`(3EU.=4Y5``!"IV&66(\@;0`(68@CR````Y1P2
M`$Y=3G5.5?_T(&T`"%F((`@B0"(168$K0/_\*T'_]+"Y```#E&<(0J=A`/]<J
M6(\O+0`,80#_4EB/*T#_^$J`9RX@+0`,(BW_]+*`8P0K0/_T+RW_]"\M``@O=
M+?_X3KH)E$_O``PO+0`(80#_?EB/("W_^$Y=3G5*N0````1F%$*G2'D```$L&
M3KH4\E"/(\`````$(_D```!<````['`\+P`O/````/IR`"\!+P%(>0```1A(L
M>0```/Y(>0```.`O`4ZZ%5Q/[P`@4X!G!'#_3G5P`$YU``!.5?_X2.<!"'X`2
M2?D```.DOKD```+@;!Y*E&<4""P``@`#9P)@"B\L``1.N@B@6(]2AU",8-HO%
M+0`,+RT`"$ZZZI)0CTS?$(!.74YU3E7_Q$CG("!P`!M\`"#_^W(`*T'_]G3_E
M*T+_\D'M_]`;0/_Q&T#__!M`__T;0/_^&T#__RM!_^0K0?_H*TC_S"!M``@0)
M$$H`9UYR`!(0<"`$@`````AK4+*["`AF\D[["`8````C8```,@```"!@```B-
M````*V```!(````M8````AM\``'__V`8&WP``?_^8!`;?``!__U@"!M\``'_2
M_$YQ4JT`"&"8(&T`"!`0#```,&8*&WP`,/_[4JT`""!M``@0$`P``"IF$B1M7
M``PB4EB2*U'_]E*M``A@$DAM__8O+0`(3KH(%E"/T:T`""!M``@0$`P``"YF"
M-%*M``@@;0`($!`,```J9A(B;0`,(%%8D2M0__)2K0`(8!)(;?_R+RT`"$ZZ*
M!]90C]&M``@@;0`($!`,``!L9@H;?``!__%2K0`((&T`"!`04JT`"!M`__`"V
M@````/]R.`2!````"&L``FRPNQ@(9O!.^Q@&````8V```D````!S8``!^```H
M`%A@``&"````>&```7H```!O8``!)````'5@``#X````9&````)*+?_Q9PPB1
M;0`,(%%8D2`08`HB;0`,(%%8D2`0*T#_[$J`:@IR`2M!_^A$K?_L2JW_Z&<$1
M<"U@#$HM__YG!'`K8`)P(!M`_]!P`!`M__XB+?_H@H!P`!`M__V"@$J!9PA2X
MK?_,4JW_Y"\M_^PO+?_,3KH'?%"/*T#_R$JM__)J!G`!*T#_\B`M_\@B+?_R=
MDH`K0?_$2H%O-"!M_\S1P2\`+RW_S"\(3KH&@D_O``QP`!`M__LO+?_$+P`OD
M+?_,3KH&3D_O``PK;?_R_\@@+?_(T:W_Y$'M_]`K2/_,2BW__V<``5`;?``@"
M__M@``%&2BW_\6<,(FT`#"!16)$@$&`*(FT`#"!16)$@$"M`_^Q@`/]82BW_R
M\6<,(FT`#"!16)$@$&`*(FT`#"!16)$@$"M`_^Q*+?_\9Q(@;?_,$+P`,%*ML
M_\QP`2M`_^0O+?_L+RW_S$ZZ!O90CRM`_\A@`/\<2BW_\6<,(FT`#"!16)$@W
M$&`*(FT`#"!16)$@$"M`_^Q*+?_\9QX@;?_,$+P`,%*M_\P@;?_,$+P`>%*ME
M_\QP`BM`_^0O+?_L+RW_S$ZZ!OQ0CRM`_\@,+0!8__!F`/Z\2&W_T$ZZ!T18C
MCV``_JXB;0`,(%%8D2)0*TG_S+/\`````&8(*WP```*L_\PO+?_,3KH%"%B/A
M*T#_Y$JM__)K,B(M__*P@6\J*T'_Y&`D<`$K0/_D(FT`#"!16)$@$!M`_]!"`
M+?_18`IP`$S?!`1.74YU("W_]K"M_^1L!D*M__9@""`M_^21K?_V2BW__V="Y
M4ZW_Y"`M_^1*@&L8<``@;?_,$!!2K?_,+P`@;0`03I!8CV#<4ZW_]B`M__9*@
M@&M4<``0+?_[+P`@;0`03I!8CV#B4ZW_]B`M__9*@&L2<``0+?_[+P`@;0`0J
M3I!8CV#B4ZW_Y"`M_^1*@&L8<``@;?_,$!!2K?_,+P`@;0`03I!8CV#<("T`S
M"$S?!`1.74YU3E7_]BMM`!#_]B!M``P0$%*M``P;0/__`H````#_2H!G?`R`U
M````)68T(&T`#!`0#```)68&4JT`#&`B+RT`"$AM__8O+0`,80#[,$_O``PK9
M0/_Z2H!G!BM```Q@K$JY````-&<D""T`!___9QQP`!`M__\O`"!M``A.D%B/F
M(&T`#!M0__]2K0`,<``0+?__+P`@;0`(3I!8CV``_VY.74YU3E7_["MM``C_I
M]"!M``P@*``8`H`````P2H!G!G#_3EU.=2!M``P@*``8`H```(``5L%$`4B!3
M2,$;0?_^2J@`%&8``*8(*``"`!MF``"<<``A0``,#*W_____``AF!$Y=3G4OD
M+0`,3KH%5%B/2H!G$"!M``P(Z``%`!MP_TY=3G4@;0`,".@``0`;2BW__F<,4
M("@`%$2`(4``#&`*(&T`#"%H`!0`#"!M``Q3J``,("@`#$J`:Q0B:``$4J@`^
M!"`M``@2@'(`$A%@&"`M``@"@````/\O+0`,+P!A`/\D4(\B`"`!3EU.=2!M&
M``P(*``"`!MG=`RM_____P`(9@9P`$Y=3G4@+0`(&T#__THM__YG+`R`````\
M"F8D<`(O`$AY```"L"!M``PO*``<*T#_\$ZZ!/)/[P`,*T#_^&`@<`$O`$AM-
M__\@;0`,+R@`'"M`__!.N@303^\`#"M`__AP_RM```A@``$L(&T`#`@H````D
M&V<&</].74YU(&T`#`CH``$`&THM__YG8`RM_____P`(9U94J``,#*T````**
M``AF)B)H``12J``$$KP`#4JH``QK#"\(</\O`&$`_D10CR!M``Q2J``,(FT`U
M#"!I``12J0`$("T`"!"`2JD`#&H$3EU.=7#_*T``""!M``P@*``$D*@`$"M`2
M__!*@&<``)`(*``&`!IG:'`"+P!"IR\H`!Q.N@AT3^\`#"M`_^Q*+?_^9TQ3J
MK?_L("W_[$J`:T!"IR\`(&T`#"\H`!Q.N@A*3^\`#'`!+P!(;?_](&T`#"\H.
M`!Q.N@0Z3^\`#$JY````&&8,$"W__0P``!IGMDYQ+RW_\"!M``PO*``0+R@`6
M'$ZZ`Z)/[P`,*T#_^&`$0JW_^`RM_______X9@P@;0`,".@`!0`;8!0@+?_X^
ML*W_\&<*(&T`#`CH``0`&THM__YG$"!M``P@*``41(`A0``,8`H@;0`,(6@`"
M%``,(FT`#"!I`!`C2``$("T`"`R`_____V<T4ZD`#"(I``Q*@6L0(&D`!%*IH
M``00@'(`$A!@&"`M``@"@````/\O+0`,+P!A`/S>4(\B`"!M``P@*``8`H``$
M```P2H!G!G#_3EU.=0RM_______T9@9P`$Y=3G4@+?_T3EU.=4Y5``!*N0``*
M`#!G!$ZZ"CHO+0`(3KH*IEB/<`!.74YU(&\`!`P8``!F^E.(D>\`!"`(3G4@)
M;P`$("\`#&\*(B\`"!#!4X!F^B`O``1.=0``(&\`"")O``0@+P`,;Q:SR&4,R
MT<#3P!,@4X!F^F`&$MA3@&;Z("\`!$YU``!.5?_P<``@;0`($A`K0/_\*T#_L
M^"M`__`,`0`M9@QP`2M`__@K0/_P8!(@;0`($!`,```K9@9P`2M`__@@;0`(=
MT>W_^'``$!`O`$ZZ`L18CTJ`9R@@+?_\<@I.N@=D(&T`"-'M__A2K?_X<@`2]
M$`2!````,-"!*T#__&#`2JW_\&<$1*W__"!M``P@K?_\("W_^$Y=3G4``$Y5/
M__!P"RM`__!"+?__4ZW_\"`M``QR"DZZ!V`&@0```#`@+?_P&X$(]"`M``QRZ
M"DZZ!T@K0``,2JT`#&;00>W_]-'M__`O""\M``A.N@).4(]P"Y"M__!.74YU&
M3E7_\'`+*T#_\$(M__]3K?_P("T`#`*`````!P:`````,"(M__`;@!CT("T`-
M#.:``H`?____*T``#$JM``QFSD'M__31[?_P+P@O+0`(3KH!\%"/<`N0K?_PF
M3EU.=0``3E7_\D(M__MP""M`__Q3K?_\("T`#`*`````#R!`T?P```*T("W_=
M_!N0"/,@+0`,Z(`"@`____\K0``,2JT`#&;,0>W_\]'M__PO""\M``A.N@&.H
M4(]P")"M__Q.74YU3E7__"MM``C__"!M__Q*$&<8<``0$"\`3KH!>EB/(&W_,
M_!"`4JW__&#@("T`"$Y=3G4``$Y5```@;0`(2J@`%&<.""@``P`;9@9P`$Y=1
M3G4O.0```LA.N@%46(\@;0`((4``!"%``!!*@&8.<`PCP````N1P_TY=3G4@D
M;0`((7D```+(`!0"J/____,`&'``(4``#"%```A.74YU3E7_ZB\M``A.N@4&6
M6(\K0/_J2H!F!G#_3EU.=2!M_^H(*``#``-G$G`"+P!"IR\M``A.N@(T3^\`=
M#"\M`!`O+0`,(&W_ZB\H``1.N@'(3^\`#"M`__I*N0```!AG!G#_3EU.=2`MB
M__I.74YU3E7__$CG`0!*N0```#!G!$ZZ!OY"N0```!@O+0`0+RT`#"\M``A.X
MN@=P3^\`#"X`#(?_____9A).N@?2(\`````8<`4CP````N0@!TS?`(!.74YU*
M3E4``"`M``@,@````#!M#`R`````.6X$<`%@`G``3EU.=0``(&\`"")O``023
MV&;\("\`!$YU```@+P`$#```86T*#```>FX$!```($YU``!.50``+RT`"&$&4
M6(].74YU3E7_[$CG)S@N+0`(2H=N"G``3-\<Y$Y=3G4,AP````AL`GX((`=6R
M@.2`Y8`N`$?Y```"]"A3N?P`````9UH@+``$L(=E3+"'9A8FE)^Y```"^"`,!
M($P@"$S?'.1.74YU("P`!)"'#(`````(920B#"!,T<<D""1"))0E0``$)HJ?E
MN0```O@@3"`(3-\<Y$Y=3G4F3"A48)X@!R(Y```"V-"!4X!.N@/*(CD```+86
M3KH#H%"`*@`@!5:`Y(#E@"H`+P5.N@#,6(\L`$J&9QHO!2\&3KH$8%"/+P=A*
M`/\D6(],WQSD3EU.=7``3-\<Y$Y=3G4``$Y5__Q(YP$`2KD````P9P1.N@56[
M0KD````8+RT`$"\M``PO+0`(3KH%Y$_O``PN``R'_____V823KH&*B/`````6
M&'`%(\````+D(`=,WP"`3EU.=4Y5__HO+0`(3KH"GEB/2H!F!G#_3EU.=2\M4
M`!`O+0`,+RT`"$ZZ`=9/[P`,*T#_^DJY````&&<&</].74YU("W_^DY=3G4`"
M`$Y5__P@+0`(!H`````,0J<O`$ZZ!=A0CRM`__Q*@&8&<`!.74YU(&W__"`MP
M``@&@`````PA0``(+PA(>0```YAA``$P4(]*N0```NAF""/M__P```+H(&W_C
M_-#\``P@"$Y=3G5.5?_\+RT`"&&26(\K0/_\2H!G!$Y=3G4@?/____\@"$Y=Z
M3G5.5?_X2.<!"&$``*!P`"/`````$"/`````""/`````#"/````"]"/````"1
M^"/````"["/````"Z"/````"\$JY```"W&=:(#D```+8(CD```+<TH!3@2`!`
M(CD```+83KH!^"(Y```"V$ZZ`<Y0@"X`(`=6@.2`Y8`N`"\'80#^^EB/*$"Y+
M_`````!F"G#_3-\0@$Y=3G4O!R\,3KH"@%"/<`!,WQ"`3EU.=4Y5__@K>0``U
M`YC__$JM__QG'"!M__PK4/_X+R@`""\(3KH$L%"/*VW_^/_\8-Z1R"/(```#%
MG"/(```#F$Y=3G5.50``(&T`"")M``PC:``$``21R"*((&T`"$J09@(@B2!M&
M``A*J``$9P@@:``$(*T`#"!M``@A;0`,``1.74YU``!.5?_\2.<!`$JY````$
M,&<$3KH#!D*Y````&"`M`!#E@"!`T?P```+,+Q`O+0`,+RT`"$ZZ`\1/[P`,@
M+@`,A_____]F$DZZ`\XCP````!AP%B/````"Y"`M`!`,@`````)G)@R`````<
M`6<02H!F-"`M``Q,WP"`3EU.=2`'T*T`#$S?`(!.74YU<``O`"\`+RT`"$ZZ1
M`V1/[P`,3-\`@$Y=3G5,WP"`3EU.=0``3E7__'``(\`````8*T#__"`M__RP*
MN0```N!L-.>`($#1_````Z1*D&<@($#1_````Z0B*``$LJT`"&8.($#1_```!
M`Z0@"$Y=3G52K?_\8,!P"2/````"Y'``3EU.=0``($(B0R0`)@%(0DA#Q,'&I
MP,#!U$-(0D)"T((F"20(3G5*@&H``!Y$@$J!:@``#$2!80``($2!3G5A```8T
M1(!$@4YU2H%J```,1(%A```&1(!.=2\"2$$T`68``")(0$A!2$(T`&<```:$W
MP3`"2$`T`(3!,`)(0C(")!].=2\#=A`,00"`9```!N&944,,00@`9```!NF9H
M64,,02``9```!N6954-*06L```;CF5-#-`#FJ$A"0D+FJDA#@,$V`#`"-`-(J
M0<3!D()D```(4T/0@63^<@`R`TA#Y[A(0,%!)A\D'TYU3E7__"`M``PO`"\MU
M``@K0/_\8090CTY=3G5.5?_H2.<#."XM``Q*AVX*</],WQS`3EU.=0R'````]
M"&P"?@@@!U:`Y(#E@"X`)&T`""!M``C1QR`(+`#?N0```OA'^0```O0H4[G\"
M`````&<``*8@#"!,T>P`!"((*T'_[+"&8Q(DC"5'``0FBG``3-\<P$Y=3G6Y`
MQF88))0@!]"L``0E0``$)HIP`$S?',!.74YUM>W_[&00G[D```+X</],WQS`J
M3EU.=;7M_^QF.DJ49Q2\E&,0G[D```+X</],WQS`3EU.==^L``1*E&<0O)1F'
M#"!&("@`!-&L``0HD'``3-\<P$Y=3G4F3"MM_^S_Z"A48`#_5":*D<@DB"5'(
M``0@"$S?',!.74YU``!.5?_\+SP``#``0J=.N@%64(\"@```,``K0/_\2H!F)
M!G``3EU.=4JY````,&<>('D````P3I!*@&8&<`!.74YU0J=P%"\`3KKLI%"/J
M("W__$Y=3G5AJDYU2.<@`BQY````J$SO``8`#$ZN_^),WT`$3G4``"\.+'D`@
M``"H(B\`"$ZN_]PL7TYU2.<P`BQY````J$SO``X`$$ZN_]9,WT`,3G4``$CGG
M,`(L>0```*A,[P`.`!!.KO_03-]`#$YU```O#BQY````J$ZN_\HL7TYU+PXLC
M>0```*A.KO_$+%].=4CG,`(L>0```*A,[P`.`!!.KO^^3-]`#$YU```O#BQY*
M````J$ZN_WPL7TYU+PXL>0```*@B+P`(3J[_.BQ?3G4O#BQY````0$SO``,`S
M"$ZN_SHL7TYU```O#BQY````0")O``@@+P`,3J[_+BQ?3G4O#BQY````0")O+
M``A.KO[:+%].=2\.+'D```!`3.\``P`(3J[^SBQ?3G4``"\.+'D```!`(F\`;
M"$ZN_F(L7TYU+PXL>0```$`B;P`(("\`#$ZN_=@L7TYU2.<_(BQY`````"!OK
M`"1,[P`#`"@B;P`P3.\$_``T3J[_XDS?1/Q.=2\.+'D````$(&\`"$ZN_[XLG
M7TYU+PXL>0````0@;P`(3J[_N"Q?3G4O#BQY````!"!O``A.KO\Z+%].=2\.=
M+'D````$(&\`"$ZN_S0L7TYU+PXL>0````0@;P`(3J[_!"Q?3G5(YS`R+'D`]
M```$(&\`&")O`!PD;P`@)F\`)"`O`"@B+P`L)"\`,"8O`#1.KOZD3-],#$YUH
M```#[````"\````!```KX@``*\P``"NX```KI```*Y```"M\```K5@``%DP`:
M`!8V```'Z@``!E(```8T```&(@``!@P```8````%]@``!>H```70```%Q@``9
M!;H```6@```%D@``!5(```42```$S```!)0```1:```$)````]X```.H```#F
MB````WP```-P```#9````U@```-,```#0````S0```,B```#`@```NH```*J'
M```"I````GH```)R```"9@```EX```!"`````@``"AP```H(```)V@``"<8`,
M``F4```)@@``"50```D^```)#@``"/@```C0```(N```"(X```AX```(4```I
M"#@```?P```'U```!RP```<D```'#@``!N(```;4```&R@``!J````:0```&9
MB```!H(```9Z```&<@``!FP```9B```&2@``!D````8N```%C```!88```6`-
M```%=@``!7````5H```%(@``!0P```3X```$Z```!-P```3&```$L@``!*@`)
M``1J```$5```!$````/Z```#[@```]@```/$```"R````L(```*\```"M@``>
M`IX```*8```"4@```DH```(^```"-@```,\````#```K/```*R@``"L0```J#
M_```*N0``"K,```JN```*J@``"J.```J?```*FP``"I2```J-@``*B```"H&^
M```IV```*=```"E4```I-@``*-X``"C8```GD```)WP``"=J```G7@``)U(`%
M`"=$```FX@``)MH``":F```FF@``)K0``"7(```EO@``):P``"6R```EI```:
M)8P``"6&```E@```)7H``"5T```EG@``)9@``"62```E+@``)20``"9&```F>
M0```)A0``"48```DQ@``)(8``"1^```D5@``)$H``"/V```CZ```(\X``".:G
M```C?```(MX``"+6```BK@``(J(``"*$```B````(A```"'B```A4```'V8`>
M`!YF```=*```&\8``!IL```6I@``%J```!92```6>```%G(``!9L```65@``.
M%D```!7>```5N```%68``!52```52@``%.(``!1@```3H```$TP``!+T```2K
MU```$K```!*8```2:@``$DH``!(J```2`@``$9P``!#&```0<@``#Z(```]D1
M```/(```#P(```[.```.Q```#K8```ZL```.G@``#I0```Z&```.;@``#K(`*
M``Z:```.@@``#F@```Y>```.4```#D````XH```.'@``#>P```WF```-X```!
M#=@```W2```-H```#80```[:```.U```#A(```X"```-]@``#9@```V2```-0
MC```#7P```T&```,_@``#/8```S&```.-```#<8```VR```,)@``"V0```LHN
M```,9@``#%X```P<```,$```"_H```M6```+3@``"OP```KL```*W@``"L8`3
M``JL```*>@``"EX```I8```*3@``"D@```J\```*D@``"D(```&J```!H@``J
M`9@```&0```!6````4````(L```!A@```.X```(@```!_````?````':```!3
MS@```<8```&\```!M````8````%N```!.@```2X```$F```!%````/H```#>U
M````T````)P```"6````?````'(```!,````.````"@````B````'`````@`B
C```"````!`````0```[\```!>@```5X```!8`````````_(B=
``
end
size 14300
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.