Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-lcc!ames!ucbcad!ucbvax!decvax!decwrl!sun!imagen!turner From: turner@imagen.UUCP (D'arc Angel) Newsgroups: comp.ai Subject: AI Expert Magazine source code posting for April (Part 04/05) Message-ID: <1004@imagen.UUCP> Date: Tue, 17-Mar-87 20:01:16 EST Article-I.D.: imagen.1004 Posted: Tue Mar 17 20:01:16 1987 Date-Received: Thu, 19-Mar-87 04:52:42 EST Organization: The Houses of the Holy Lines: 606 Keywords: source in(yhma92, uppereast). in(stn86, uppereast). in(kennedy, queens). in(village, nyc). in(midtown,nyc). in(uppereast,nyc). in(queens, nyc). in(widener, harvard). in(harvardcoop, harvard). in(harvardsq, harvard). in(finearts, fenway). in(fenwaypk, fenway). in(harvard, boston). in(fenway,boston). in(soutstn, boston). in(nyc, northeast). in(boston, northeast). in(sanfrancisco, bayarea). in(sfairport, bayarea). in(berkeley, bayarea). in(marincounty, bayarea). in(bayarea,usa). in(northeast,usa). /* Definition for satisfy: GOAL is satisfied if GOAL contains the STATE. */ satisfy(STATE, GOAL) :- contains(GOAL, STATE). /* "contains" is the transitive closure of "in". */ contains(A, A). contains(A, B) :- in(B,C), contains(A,C). /* The major difference between START and GOAL is two regions or places STREG and GOALREG, containing START and GOAL respectively, which are both in COMMONCONTAINER. */ majordiff(START, GOAL, [STREG, GOALREG, COMMONCONTAINER]) :- contains(STREG, START), contains(GOALREG, GOAL), in(STREG, COMMONCONTAINER), in(GOALREG, COMMONCONTAINER), !. /* The kind of act necessary to cross an object CONT depends on the size of CONT. The act must start and end from recognized terminals (for instance, a subway ride must start and end at a subway station). */ suitableact([STREG, ENDREG, CONTAINER], [ACT, STPL, ENDPL]) :- crossact(CONTAINER, ACT), terminal(ACT, STREG, STPL), terminal(ACT, ENDREG, ENDPL). /* How to cross different regions. */ crossact(usa,fly). crossact(northeast, train). crossact(bayarea, subway). crossact(nyc, subway). crossact(boston,subway). crossact(village, walk). crossact(uppereast, walk). crossact(harvard,walk). crossact(fenway,walk). /* Transportation terminals. */ terminal(walk, X, X). terminal(subway, village, astorpl). terminal(subway, midtown, pennstn). terminal(subway, queens, kennedy). terminal(subway, harvard, harvardsq). terminal(subway, fenway, finearts). terminal(subway, southstn, southstn). terminal(subway, X, X) :- in(X, bayarea). terminal(train, nyc, pennstn). terminal(train, boston, southstn). terminal(fly, northeast, kennedy). terminal(fly, bayarea, sfairport). /* Definitions for prereqs and result. */ prereqs([MOVE, A,B], [A]). result(A, [MOVE, A, B], B). SHAR_EOF if test 5504 -ne "`wc -c < 'expert.apr'`" then echo shar: "error transmitting 'expert.apr'" '(should have been 5504 characters)' fi fi echo shar: "extracting 'files.apr'" '(820 characters)' if test -f 'files.apr' then echo shar: "will not over-write existing file 'files.apr'" else cat << \SHAR_EOF > 'files.apr' Articles and Departments that have Additional On-Line Files AI EXPERT March 1987 "Intelligent Data Bases" (Note: Contents page is in file CONTNT.MAR) ARTICLES RELEVANT FILES -------- -------------- April Table of Contents CONTNT.APR AI & Ada ADA.APR by Louis Baker DEPARTMENTS Expert's Toolbox EXPERT.APR by Marc Rettig AI Apprentice AIAPP.APR VTLISP.COM VTLISP.DOC SHAR_EOF if test 820 -ne "`wc -c < 'files.apr'`" then echo shar: "error transmitting 'files.apr'" '(should have been 820 characters)' fi fi echo shar: "extracting 'vtlisp.doc'" '(3802 characters)' if test -f 'vtlisp.doc' then echo shar: "will not over-write existing file 'vtlisp.doc'" else cat << \SHAR_EOF > 'vtlisp.doc' VT-LISP - Very Tiny LISP VT-LISP is a simple functional LISP interpreter provided with full source code to encourage experimentation with LISP and functional languages. Startup 1. Boot the system. 2. Insert the disk containing VTLISP.COM in Drive A: 3. If the DOS prompt is not A>, type A: and press the ENTER key to switch to drive A:. 4. Type VTLISP and press RETURN. VTLISP should respond with its heading and a '-> ' prompt. Entering S-expressions. VT-LISP accepts S-expressions, evaluates them and prints the result of the evaluation. You enter an S-expression by typing it directly from the keyboard. As you enter S-expressions, the prompt may change to a number followed by '>'. The number represents the number of unmatched parentheses. For example: VT-LISP - Copyright 1987 [c] Knowledge Garden Inc. -> (cons 'a '(b c)) (a b c ) -> (letrec (append '(a b c) '(d e f)) 1> (append (lambda (x y) 3> (if (eq x nil) y 4> (cons (car x) (append (cdr x) y)))))) (a b c d e f ) ->(read 'b:append) ; read and evaluate the file b:append.lsp Terminating VT-LISP 1. To exit VT-LISP, type : (exit) . at the '-> ' prompt. Don't forget the period. VT-LISP Grammar The following BNF describes the syntax of S-expressions S-expression ::- atom | '(' expression-list ')' atom ::- text-string | number expression-list ::- S-expression | S-expression '.' S-expression | S-expression expression-list VT-LISP expressions Variable x - upper or lower case identifier Constants (QUOTE s) 's Arithmetic expressions (ADD expr1 expr2) (+ expr1 expr2) (SUB expr1 expr2) (- expr1 expr2) (MUL expr1 expr2) (* expr1 expr2) (DIV expr1 expr2) (/ expr1 expr2) (MOD expr1 expr2) Comparisons (EQ expr1 expr2) - returns T if expr1 evaluates to the same thing as expr2 (LT expr1 expr2) - returns T if expr1 < expr2 (GT expr1 expr2) - returns T if expr1 > expr2 (NEQ expr1 expr2) - returns T if expr1 <> expr2 S-expression operations (CONS expr1 expr2) - returns dottted pair (expr1.expr2) (CAR expr) - returns first element of expr (CDR expr) - returne list formed by removing 1st element from expr (ATOM expr) - returns T if expr evaluates to an atom Conditional expression (IF expr1 expr2 expr3) - If expr1 returns T, evaluate expr2, otherwise evaluate expr3 Return to DOS (EXIT) Read an expression from a file (read expr) - read an expression from file expr. expr must evaluate to an atom which is represents a file name. File names must end in ".LSP". Example: (read 'b:append) Definition expressions (LAMBDA (x1 x2 x3 ....) expr) - define a lambda expression (LET expr (x1.expr1) (x2.expr2) .......) - define a block. x1 etc. are local variables. expr1, expr2 etc are their deinitions (LETREC expr (x1.expr1) (x2.expr2) ......) - define a recursive block Function Call (expr expr1 expr2 expr3 ...) - evaluate the function expr, using parameters expr1 etc. Parameters are evaluated before applying the function. Comments ; - comments begin with ";". Anything following ";" on a line is ignored by the evaluator Good luck with VT-LISP. We would be very interested in hearing of your experiments, enhancements or even (gasp) bugs that you may find. Please write to us with your comments or questions. Bill and Bev Thompson C/O AI Expert Magazine 500 Howard St. San Francisco, CA 94105 or on the AI Expert BBS on Compuserv. Our id is BillandBev Thompson, [76703,4324]. You can also contact us on BIX, our id is bbt. Bill and Bev Thompson SHAR_EOF if test 3802 -ne "`wc -c < 'vtlisp.doc'`" then echo shar: "error transmitting 'vtlisp.doc'" '(should have been 3802 characters)' fi fi echo shar: "extracting 'vtlisp.uue'" '(39353 characters)' if test -f 'vtlisp.uue' then echo shar: "will not over-write existing file 'vtlisp.uue'" else cat << \SHAR_EOF > 'vtlisp.uue' begin 664 vtlisp.com MZ7DLD)#-JT-O<'ER:6=H="`H0RD@,3DX-2!"3U),04Y$($EN8P($`+%7`#PS M`````````````````````````````````````````````````````!1$969A M=6QT(&1I@6`+0'Z]-0H`$` MH@@`6,-0H```H@@`6,.T`S+_S1##4U%25>CR_[@`!HH^"`"+RBZ*%FH!_LK- M$%U:65O#Z/@"+J!M`3S_=095M`_-$%W&!@0``,8&!0``Q@8)`/\\![=0LP"^ M;P%T(+YW`3P"=!8\!'("L`.S_SP#=`VW*#P!=`(`"T"\T0_L>T"\T07O'Q@8)``7K],8&"0`&N'\"Z+7_ MN`\`ZT8D#XHF(`"`Y!`*Q*(@`%4R_XH>(`"T"\T07<-5BAX@`(#C[[0"@#X) M``1T`K0!.L1R!2K$@,L0B!X@`+O(58O8M`O-$%W#6[E_`H`^ M"0`&=`.Y/P$]QP!W`Z,0`%@[P7<#HPP`6#L&$`!S`Z,.`%@[!@P`!P##@H`.PX,`'<2"])X#@,6#@`[%A``=P15S1!=P[0,HQ0` M7UA:6XD>'`#HE`")#A@`Z.,+DEM7B1X:`.B#`(D.%@#HT@N+V#O:?CN+P@/` M*\.C'@"+RT'H`(O*0>@X`*$>``O`?A0#PP/#*\(KPJ,>`*$6 M``$&&@#K!P/#`\.C'@"A&``!!AP`XM+#,\DKPW0%>`)!PTG#45*A%`"+#AH` MBQ8<`.@?_UI9PXO8N-TTNA(`.]-S&O?SB]CD8:@#=0@,`^9AL+;F0XK#YD** MQ^9"P^1A)/SF8<.16U_K*5!1L033Z`/865@E#P##.]IU`CO!PP/!`]KKY2:+ M100FBUT&4`O#6,-;!U.)/B8`C`8H`(O!!0<`NP`0<@(SVR3XZ+S_B\B+T\<& M+@`B`(P>,`#$/B(`Z,+_="7HL/]S#8D^+@",!C``)L0]Z^GHM4Z&``B\>,P^B+_Z.*`8D>C`%14HO(B].+Q(S3@^L.Z%__,\#H M:/]:67<#Z6\),\`SVU-0)O]U`B;_-8O'C,/H5/^+^([#)H\%)H]%`B:/100F MCT4&!@;$-BX`)HD\)H]$`@?#!@;$-B8`)HD\)H]$`@?#D5M?ZP%;!U.+P2:+ M#2:+50(%!P"[`!!R`C/;)/CH[OZC*@")'BP`Q#XB`(O'C,/HZOYS5R:+!2:+ M70+HWOYS!HOXCL/K[@:+\8["_S8L`/\V*@`FB00FB5P")H]$!":/1`8')HD- M)HE5`B:+100FBUT&Z#P`=`,FQ#TFBT4$)HM=!B:+#2:+50+K)HD.(@")%B0` MB_F.PB:)!2:)70*+R(O3H2H`BQXL`":)100FB5T&HS(`B1XT``/'C,,#'C0` MZ$O^Z%;^=5&AB@&+'HP!Z$K^=#$&B_&.PB:+!":+7`(FBTP$)HM4!@"`#- M$%K^PBXZ%FH!*%@0`_L8N.C9K`7(:_LY2N`$&BCX(`(L.!``NBQ9J`?[. M_LK-$%JT`C+_S1!=@#Z4`0%U$DSH)O]T#$SH.?\\$W4$3.@Q_UC#6%I0M`7K M$Y!86E"T!.L+D+0#Z`4`,N3"`0"`_#UT%(#\/'0/@/P^=#*`_(!T1U7-(5W# M5E&+-GH!BPY\`8,\`'0+1D;B]UE>N`0`^<-9'@8?Z-K_'W("B01>PU%6BS9Z M`8L.?`$Y''4$QP0``$9&XO1>6>NYBS9Z`8L.?`&+'`O;=`FT/NBF_\<$``!& M1N+MPS/`HW(!OT`"B3YZ`8D.?`$SP!X'_/.KCL`FQP:,`&(*)HP.C@#HH_?& M!I0!`+XF"K\V`1X'#A^Y'@#\\Z4&'S/`HY(!HH`!HX(!HX0!Q@:!`7[&!C8` M#<-3"&P(GP@]"44)30F?"&P(___!`/__@@#__T,`___$`/__Q0#__\$````` M``````#__\$```````````#/4U%25U8RY%#_%CH!7E]:65O#4U%25U9,_Q8X M`>ON58OLAUX"+HH'0PK`=`7HT?_K\X=>`EW#Z.7_#0H`PSQA<@8\>G<"+"## M4(K$Z`$`6%#0R-#(T,C0R.@!`%@D#P20)Q1`)^N:"N1T"/FX``!X`O[(P^A. M`5Z,R"X#1`8N`T0(+@-$"BX[!@(`=@/I1`&,RRX#7`:.VRX#7`@NBQ8"`"O3 M+CM4#'($+HM4#(OZN/[_@>H`$',+B\(%`!"Q!-/@,](#TX[2B^"C=`$SP*.* M`8D>C`&C(@")'B0`5\0^(@"Y!`#\\ZM?+O<$`0!U#8S(CL`#WRO8M$KH^?TN MBT0"HW8!+HM$!*-X`2Z+!"Z+3`Y15NA8_EY9OT`"`_D#^8D^7@$NBT00HV`! M`_@+P'0+QP9:`0``Q@9<`0")/FH!+HM$$J-L`0O`=`O'!F8!`0#&!F@!`(/& M%%8SP([`)J$``*..`2:A`@"CD`$FQP8``#(0)HP.`@#W!G(!"`!T#";'!@P` M\`\FC`X.`/<&<@$$`'0%Q@:4`0''!GX!T!`SP*.(`:*6`8L.8`$>OUH!Z!<7 MBPYL`1Z_9@'H$!?&!OH!`.BB]L.T,.@K_0K`=`'#NE\,ZP.Z30P.'[0)Z!?] MNG4,M`GH#_VT`.@*_4YO="!E;F]U9V@@;65M;W)Y)$EN8V]ROUH!Z,(7'K]F`>B[%S/` MCL"AC@$FHP``H9`!)J,"`%CW!G(!`0!U!;1,Z)_\M(#HFOS_-G8!N`(]4!X' MCAYX`+CL4=06#Q@__YE!25K^6`3+` MBN"*!0K`=`-'Z_57"N1T#H#\.G0)@/Q<=`3&!5Q'1D8NB@2(!49'"L!U];@` M/;J6`1X'Z`#\B]A?7EK&!0!R*2Z)%+@`0C+MBLZ*\C+2Z.7[67(5M#^-5`\> M#A_HU_L?<@>T/NC/^^N*LO!6Z:@"6^A2`5.^M@"_E@$>![D@`/SSI<-,_Q8V M`<-;65.*T(KQ_LK^SNF+]8O0"])T!.@6`)-;*^!,B_P>#A\6!_RJD?.D'__C M,]*_@``NB@TR[4OOB_?C#RZ*!3P@=`@\"70$ M1TGK[XO'*\9T!$-*==*3PX@.Y@&)/N@!6X\&Z@%96%-1N[8`Z/("ZR.(#N8! MB3[H`5N/!NH!6EB_]`&/!8]%`H]%!%-0D;NV`.CW$%G$/N@!5XH6Y@$R]I,M MM@`KR'8-1R;&!2#^QCKR=!7B\Y&[M@"*!T-')H@%_L8Z\G0"XO%?)H@UPS+` MZP*P`:+G`8D^\`%;CP;R`8\&[`&/!NX!Z$<`4S/`N[8`.`=T,#@&YP%U#NCP M`G(AQ#[L`2:)!>L2O_0!Z`42MHD(O$*\%R%#T``G(/L033Z(S1`\$[!HP!<@'#LO_K29!; M6)U3@`Z4`0),Z%;X=`1,Z&GX@":4`0$\`W0!PX\&A@&#!H8!`KH!`.LC,\"& M!H`!PX`^@`$`=0'#BA:``;8!ZPQ;6)U3L@2/!H8!M@)2Z+3Y6J&&`2T#`(<& MB`$+P'4+4E+_-H@!_Q9^`5J`_@%S%.@=^EY##0I5FY^\($ M``O`>0+WV,-0Z`@`6]'HF??SDL.+'OX!BP[\`5-1BL>*^XK=BNDRR=#8T=O1 MV5@#R%@3V+CI8@/(N!DV$]B)'OX!B0[\`8O#PPO`>0;WV,8'+4,R[;H0)^@5 M`+KH`^@/`+ID`.@)`+(*Z`0`BLCK%#+)_L$KPG/Z`\+^Q?[)=03^S70&@,$P MB`]#PS/`@#\DN@H`=0.R$$-0B@?H,/F*R%B`Z3!R)8#Y"G(2@/H0=1N`Z0>` M^0IR$X#Y$',.4O?B6G(1,NT#P7/.ZPF`^A!T!(O(`\G#B@^`^2UU`4-1Z*K_ M67()@/DM=0+WV/C#/0"`=0:`^2UU`+HH,,NU!*^&+_!X.'Q8'_/.D'__F6HK!B]PVB@\R[0/90S;$/XOT M.LAV!8K(-H@$01X6'_SSI!^-9P3_XEL'B_3D^+RD']\Z0?1XOG_R:&`;(0Z?W\CP:&`>B#]XO( M6.AR`4B+]#:*%#+VB_P#^BO0=A4#\#O1=A,#\8O1'A8'%A_]\Z0?ZP(STH?W M-H@4B^;_)H8!6XO\-HH%,N0#X$3_XX\&A@&+_#:*%3+V1XOW`_(VB@PR[4:+ MW@/9,\`KT7(>0`O)=!E"'A8'%A_\45=6\Z9>7UET!T!'2G7Q,\`?B^/_)H8! MB`X``J,"`EN/!@8"CP8(`HDF"@*,%@P"4\0^!@(&5P;HVOVX`0!0H0("2.A" M_\0^"@(&Z,?]Z/7^Q#X&`@;HO/W_-@("N/\`Z"7_Z.#^B@X``NC7_>E7_Z,$ M`EN/!@("CP8&`H\&"`)3Q#X&`@97!NB*_;@!`%"A`@)(Z/+^H0("`P8$`@KD M=1+$/@8"!NAL_5"X_P#HV/[HD_ZQ_^B,_<-;6/[(=02&Q/_CB1Z&`;(0Z;G[ MB_0VBEP",O\VBT`#BN"P`3:)0`/#6P/BB_0VB@0ZP708,N0#\(O\,NT#^9%! M'A8?%@?]\Z0?1XOG_^,*Y'4%"L!T`<.R$>EP^UM:B_>#[""+_%$6!_P*[70' M,L"J_LUU^QZ.VO.D'UFT("KE*N%T!S+`JO[,=?O_XUN#[""+_!8'N1``,\#\ M\ZO_X^CO`#8(!\.16UA3*LAR%C+M08KAZ-L`BLPV"`?0X',#0[`!XO3#B_1& M1C:+?"`VCD0BBM4R]@/R,NT>%A_\\Z0?PB0`6XK5,O8R[8OT`_(#\8O\@\<@ M._=T#DY/'A8'%A_]\Z0?1XOG_^.X`0#K`C/`Z)4`\Z>.VG0#-0$`"\#"0``S MP.L#N`$`Z'T`2'4"A_ZM"P6O=0?B^+@!`.L",\".V@O`PD``Z%\`K0L%J^+Z MCMK"(`#H40"M]]`C!:OB^([:PB``Z$$`K2,%J^+ZCMK"(`"+W#:+1R(*Y'0$ M,\#K#.@.`#8B![@``'0!0`O`PB(`BM@R_[$#T^N#PP0#W(K(@.$'L`'2X,.+ M](/&!(O\@\ MA]>(#B0"*LB`^2AR!HH.)`+KWXD^(`*`)B$"@(D^(@(P-B,"@<\`@(#.@(#Y M$'(+BN>+VC/2@.D0Z_"`^0AR#8KCBM^*^HK6,O:`Z0@*R70*T>K1V]#<_LEU M]J`D`O8&(P*`=10"Y1/>$]=S7M':T=O0W/[`=53YPX;EA]Z'URKE&]X;UW,4 M@#8A`H#VU/?3]]*`Q`&#TP"#T@"Q!0KV=12*\HK7BON*W#+D+`AR%?[)=>KK M#_;&@'41T.31T]'2_LAU\3/`,]LSTL.`YG\R-B$"PPK)=&\*P'1Q`L'H!`&C M#@*)'A`"B182`C+D,]LSTK\4`K$%1XHM"NUU#(KCBM^*^HK6,O;K'+X(`-#= M?^R77-D9_VQH!U#9[0U='3T=(*R70" M_LF1,C8A`@K`=08SP#/;,]+#"L!T^RK!]>B-`*(.`K\3`K$%O@@`.Q88`G4* M.QX6`G4$.B85`G(,*B85`AL>%@(;%A@"]=#53G4*B"W^R70;3[X(`-#DT=/1 MTG/**B85`AL>%@(;%A@"^.O9T.31T]'2@/_UE>7\-2,]=:>052 MT=):P_;&@'0'Z`0`=!3UPSK!=0X*P'0*.]=U!CO>=0(ZY<,+P'4%,]LSTL.* M_(O0"])Y`O?:N)``"O9U!+"(AM8+TG@&_LC1XGGZ"O]X`X#F?S/;PSRH+VKK__X#I$.OO@/D(<@V*XXK?BOJ* MUK;_@.D("LET"_G1VM';T-S^R77U(]E[]H\&A@%97E]8 M6UKH?/SKXX\&A@%97E]86UKH:/WKU(\&A@%97E]86UH*R70%Z,_]Z\&R`NE% M]HO<-H!_`@!T!3:`=P>`PXO<-H!G!W_#CP:&`5E>7UA;6NB9_O\VA@&X`0!T M`4@+P,./!H8!65Y?6%M:Z'_^_S:&`;@!`'4!2`O`PX\&A@%97E]86UKH9?[_ M-H8!N`$`7UA;6NA+_O\VA@&X`0!V`4@+P,./!H8!65Y? M6%M:Z#'^_S:&`;@!`''^Z`_V MNH``L"#VQX!U#-'AT=/^RO[(=?$RTH#G?UA345+_X+7_ZP(R[5M86EI3DK&/ M*LIR(H#Y#W<:_L&*_(#,@-/H`=`+WV,,SP,.RDND)]>BL M_5E24U#_X8\&A@%97E]8Z)O]4E-05U91_R:&`8\&A@%86UJ+R(OSB_H*P'1! M]L:`=4.C&@*)'AP"B18>`H#!@-#Y@,&`BL$L%*(E`J$:`HL>'`*+%AX"Z!_] MZ/[\_LA24U#HM/HZ!B4"65Y?<]Y75E'_)H8!L@/ID?2/!H8!65Y?N($ANZ+: MN@])Z(SZZP>/!H8!6%M:/&QR6[F#(;ZBVK\/25*`YG_HV?Q:<@_HR?Q75E'H M>OU97E_HL_SVQH!T`^B7_/[)Z+K\G'(#Z);\_LGHK_QR"/[!@,Z`Z$/Z/&QR M";\I'+D'`.C&`IUR!PK`=`.`]H#IC/U8G3F?/]=@0YTPDC!GJC\H,M=NMBH= M[SAT#=``#=!ZB(B(B`A^JZJJJJJ/!H8!6%M:"L!T!?;&@'0%L@3IU/.*[+&! M*L&84)&Y@/N^,_._!#7HR/J+R(OSB_JX@0`SVS/2Z/_[4E-0N($`,]NZ`(#H MM_E97E_H'ON_WQRY!@#H.`+^P+E_TK[W%[]R,>B:^5E24U"1Z![\N8#2OO<7 MOW(QZ'GZ65Y?Z(#Y/&=S!C/`,]LSTNG6_'V*G=B)'7WIHHLN.GV.XSB.8WY) MDB1)$G[-S,S,3'^KJJJJ*H\&A@%86UKVQH"<@.9_N8#2OO<7OW(QZ*+Z/(AS M55)34/[`M?_HUOU97E]0Z*S["L!T`O[(D8?>A]?H"OF_?!VY"`#HL@%9T>ES M#E&Y@?N^,_._!#7HZOE9`L%R%IUT$(O(B_.+^KB!`#/;,]+H3/KI/_Q8L@'I MP/)M+AT18#%P1BS^Y7]T-GR)A"%W4SS_PRYZTGU;E1U\);A&6&-^%OSO_76` MTO<7`N@'^;F!`#/V,__H"OB+R(OSB_I86UKH:_GHA0!?@\<& M+HL-+HMU`BZ+?03HZ?=9]L$"=!11B\B+\XOZN($ANZ+:N@])Z,CW6?;!`70# M@,Z`Z2?[?^?/S!-4?_;THC`)?VK!D0H&@+6>BF]$@((L.LT3@&K!D0H&@0`` M````@"&BV@])?>BBBRZZ?8[C.(YC?DF2)$F2?LW,S,Q,?ZNJJJJJO[X>N04` M4E-045>+R(OSB_KH5?A?6>@&`%E>7^E*^*,:`HD>'`*)%AX"+HL%+HM=`BZ+ M50115^L045`N@1^%]9@\<&XMJY M@0`S]C/_Z0WW4X/Z&7(AB\'H>>NR!_9%!8!T`O["*L)S`C+`/`ER`K`)_L"* MT(KP4NB9`%J*PO[`"O9U$0+!>0?&!B8"`.L)/`QR`K`+Z!8!6[XF`O;%@'0% ML"WH:@"*Z0KV=`*U``KM>07H60#K!^A+`/[->?D*TG09L"[H20#^Q70'Z$`` M_LIU]?[*>`7H+`#K]PKV=0'#L$7H*P"P*PK)>03VV;`MZ!X`L"_^P(#I"G/Y MZ!(`@,$ZBL'K"XH$"L!T`T;K`K`PB`=#PXL%BUT"BU4$"L!U$[XF`L<$,#!& M1H'^,@)U]+D``,.*[H#F?U!2+("8NDT`]^H%!0"*S%I8@/G9=0+^P5'VV>AV M`5D\@7,%Z/4!_LE1@,Z`L80JR+``=`K1ZM';T=C^R77VOB8"BNZQ!-+M@,4P MB"R`Y@]24U#1X-'3T=+1X-'3T=)9`\%9$]E9$]'1X-'3T=)&@?XR`G7-6<,R MY+LF`@/8@#\UQ@<`G<#@.D@Z*4`60+VV8K9@./\BOO0ZP+?,O^-OPPB M+HL%+HM=`BZ+502`X0-T!^A6`/[)=?F+R(OSB_I86UKV!B0"@'4#Z3SUZ;/U M@0``````C@```$`K1V]#K1V]#<60+E61/9 M61/167,,T=K1V]#<_L!U`OG#@.9_!`/#7E]:65M75O;'@'4>@,^`L*`JPG(: M/"!S$0K`=`C1Z]'9_LCK](O!B]/#,\`STL.X__^Z___#B]J+R`O"=!.ZH`#V MQX!U"-'AT=/^RNOS@.=_6%-14O_@L`&B.`);Z`CL7P=3C,",VCO"=0:!_V8! M=C57OK8`C7T,N2``_/.E7^B+`7,%L`"[__\FB1V`/C@"`'0,)HA%`HU%3":) M103#)L=%`@``P\8&@`$BPS+`ZP:P`>L"L`*B.`*/!H8!!_\VA@$FBD4")`]T M!B:`90+?PR:)30;H!P&`/H`!`'7QZ)8!@#Z``0!UY_<&<@$"`'05N`!$)HL= MZ.#E]\*``'0&)L=%!@$`@#XX`@%S$B;&10*`)HM=!":)70@FB5T*PW19N`)" M)HL=,\DSTNBLY2:+30:!^8``<@.Y@``KP8/:`',(`\&+R#/`,])1B\J+T+@` M0B:+'>B"Y>@0`UKWVB:+=0@F@#P:=`9&0G7VZPRX`D(FBQVY___H8.4FQD4" M0":+100FB44()@-%!B:)10K#CP:&`0?_-H8!)H!]`H!U[R:+50@F*U4*=`RX M`4(FBQVY___H).6T0":+'3/)Z!KEZ[B/!H8!!_\VA@$F@'T"0'4#Z2$$PX\& MA@$'_S:&`2:*10(D#W4FZ.'_)L9%`@`FBQV#^P)V%H/[_W01)L<%__^T/NC4 MY',%Q@:``?_#N0D`N[\D45.^M@"Y`P"*!.@"YBXZ!W0)6UF#PP;BY_G#1D/B MZ5E9@#PZ=?,NB@-`*`)EP!WP974.@.`%@*P'0#Z.OD7P?_)H8!,O:*+H$!@/U^ M<@*U?L8&@0%^NS8`B1Z"`3+)Z*/DL@$\"'0Y/']T-3P$=$/^RCP8="L\&W0G M/!)T-3P:=$,\#71%/"!RU3K-=-&*)X@'_L%#@/P@L;/`)U!TS_%C@!ZQ`\!'4'3/\6 M0`'K!4S_%D0!7PJXN;#7P>P(/.J MP^A;_CP:=!DF@&4"WSP*=!`\#77LZ$?^/`IU!2:`90+?P\0^,@*`/H`!`'4_ M)HI-`H#A#W43)HM="":(!T,FB5T()CM="G0EPU"`^0%T#X#Y`W0/@/D$=`__ M%D(!P_\6.@'#_Q8\`(\`78+D4FP(%'H>/]9XO=;6%/I;_^1 M6UA34;NV`.A7Z%CH`>*!Z[8`*\-V#)%3L"!1Z%#_6>+W6XO+N[8`B@=34>A` M_UE;0^+TPY);6;\Z`H\%CT4"CT4$4U&[M@#H0?;KOEM94[\;*0O)=0._("D. MZ+7HZ`P`PP144E5%!49!3%-%Z*#AB]Q#0S8J!W8/BL@R[5.P(%'HZ_Y9XO=; M-HH/,NU#"\ET#3:*!U-1Z-7^65M#XO-:B^/_XELNB@\R[4/C#2Z*!U-1Z+K^ M65M#XO/_X[`-Z*[^L`KIJ?ZZ#0'K#;H-`.L(NAH!ZP.Z&@"/!H8!!_\VA@$F M]D4"@'0@4NC$_%HZPG03/!IT#SP@=P\*]G0+)H!E`M_KY#/`0,,SP,,RP.D. M^3+`ZP*P`:(X`H\&A@$'_S:&`5'H.`!9@#Z``0!U$%'H"OM9@#Z``0!U!":) M30+#CP:&`0?_-H8!M$`FBQTSR>E,W\("`(\&A@$'_S:&`2;'10(``.E,^H\& MA@$'B3XR`HP&-`(F@WT"`'4%Q@:``03_)H8!QP8X`C^9ZP;'!C@"0/!;7E.` M/H`!`'5!B]?$/C("BB8X`B:+'2:+30(>CM[HZ]X?WEE;<@@[P74$.]-T!<8&@`&1P^BP]^O)6P=3N`9$ M)HL=Z'O>"L"X``!U`4`+P,-;!U.X`4(FBQTSR3/2Z&#>)HM-`NM/D%L'4^CF M_^FM]UL'4[@!0B:+'3/),]+H0-Y04K@"0B:+'3/),]+H,=Y96U!2B].X`$(F MBQWH(MY:6":+30))`\&#T@#KM%L'4^C!_^EH]X/Y`707B_$SV[DA`-'3&]YS M`P/>^?71T-'2XO##B]B+PO?AD_?A`]/#D5M?4^E-_I%;7U/I2O['!C@"/YGK M!L<&.`)`\(\&A@%:7E\'4.@^`%F`/H`!`'4*.\%T!J`Y`J*``?\FA@''!C@" M/YGK!L<&.`)`\(\&A@&+SUM86EY?!U-1Z`D`7P_M@`> M!A\'Z.;<'@8?!U]RUKZV`(U]#+D@`/SSI<./!H8!Z%KB_S:&`:&V``K`="B` M_#IU&>@!WBQ!+_-H8!BN?KXH\&A@$'6/\VA@$*P'4'M!GH;]S^P(K0!$"BM@#' M!K<`.ERT1[ZY`.A8W',#Q@0`OK8`,]N*!`K`=`E&0R:(`?[)=?$FB!W#NWPL MZP(SVX\&A@$'_S:&`?<&<@$!`'5"4[@`/8U5#.@9W%IR,(O8N`!",\GH#-QR M)!X.'[0_N?__NGPMZ/S;'[0^Z/;;BR9T`>B3W,<&?@'0$.DB`+(!Z:7WQ@:` M`2'#Z%?=!@`9--D]"`=0```$`*`0``````"+[.@TWP``G"WI5D)5B^Q5Z0`` MQ'Y5!E>-?@06Z!KDZ"#UZ&KBQ'Y5!KF``.AH]>A6XCT``+@!`'0!2+D``+H! M`.CLX8A&6>D``(I&63+D"\"+Y5W"5@!5B^Q5Z0``@^P%Q'X$!EJ7B4;ZB5;\ MQ'[Z)HI%`C+D)0<`N0``NO\`Z*[AB$;YBD;Y,N0]`0"X`0!T`4A0BD;Y,N0] M`@"X`0!T`4A9"\&Y``"Z`0#H@N&(1@CI``"*1@@RY`O`B^5=P@4`58OL5>D` M`,1^!`;H:N/H&>4]``!_`^E,`,1^!":*10$RY#T@`+@!`'0!2%#$?@0FBD4! M,N0]"0"X`0!T`4A9"\$+P'4#Z1T`Q'X$!E>X`0!0N`$`Z'SEN0H`Z"#AQ'X$ M!E?HF__I``"+Y5W"!`!5B^Q5Z0``Q'X$!NC\XNBKY#T``'\#Z7T`Q'X$!E?$ M?@0&Z.7BZ)3D7P>Y40#HQ^`#^":*!3+D/2``N`$`=`%(4,1^!`97Q'X$!NB] MXNALY%\'N5$`Z)_@`_@FB@4RY#T)`+@!`'0!2%D+P0O`=0/I)`#$?@0&5\1^ M!`;HC.+H.^10N`$`Z-WDN0H`Z('@Q'X$!E?H:O_I``"+Y5W"!`!5B^Q5Z0`` M3(U^!!;H7.+H"^0]``!_`^E4`+@!`%"-?@06Z$;BZ/7C69$KR'T#Z3T`08A& M_5&*1OTRY+E1`.@7X)=7BD;],N2Y40#H"N"7BD,$,N3HMM-?N0``NO\`Z`'@ MB$,$64ET!OY&_>G'_XU^5197C7X$%NCQX;%0Z!OBZ0``NE$`L5"+Y5WIJN15 MB^Q5Z0``@^P(N0H`Z-/?C7X$%E?HO/ZY"@#HQ=^-?@065^A`_HU^!!;HL>'H MQ^$`Z%CB=0/I"0"X__^)1O;I7P"-?@06Z)7AZ$3C/0$`=`/I.@"*1@4RY%#H ML>2X,`!0N#D`Z,#DZ(GE=0/I%@"-?@06Z&CAC7[X%E>-?O86Z!O>Z08`N/__ MB4;VZ1,`C7X$%NA)X8U^^!97C7[V%NC\W8M&]CT``'0#Z1,`C;X$`197C7[X M%NC,Z.CIZ.D/`(V^!`$65[@``.AVZNC7Z.D``(OE7<(``56+[%7I``"#[`BY M"@#H_-Z-?@065^CE_;D*`.CNWHU^!!97Z&G]C7X$%NC:X(U^^!97C7[V%NB- MW8M&]CT``'0#Z4H`C7[X%NACZ.AOZ)``````@.ATZ5"-?O@6Z$_HZ%OHCP`` M`/Y_Z$;I60O!"\!U`^D)`+@``(E&5>D-`(U^^!;H*>CHK>F)1E7I!@"X``") M1E7I``"+1E6+Y5W"4P!5B^Q5Z0``@^P(N0H`Z%S>C7X$%E?H1?VY"@#H3MZ- M?@065^C)_(U^!!;H.N#H4.``Z.'@=0/I"0"X__^)1O;I4@"-?@06Z![@Z,WA M/0$`=`/I+0"*1@4RY%#H.N.X,`!0N#D`Z$GCZ!+D=0/I"0"X``")1O;I!@"X M__^)1O;I$P"-?@06Z-_?C7[X%E>-?O86Z)+D``(J&!`$RY`O`B^5=P@$!58OL5>D``(/L!HU^^!97BT8$Z/?H MZ%CGC7[X%N@QY[@``.CGZ.A%Z'4#Z1L`C7[X%E>-?O@6Z!?GZ"/GD0`````` MZ#[GZ"CGC7X&%E>-?O@6Z/SFZ!GGZ0``B^5=P@(`58OL5>D``,1&!(S"4E`S MP#/26UGHDN-U`^D2`+@#`+D``+H#`.@8W8A&".D5`,1^!":*10$RY+D``+H# M`.@`W8A&".D``(I&"#+DB^5=P@4`58OL5>D``,1&!(S"4E`SP#/26UGH0>-U M`^D-`#/`,]*)1@B)5@KI-0"Y"P#HSMQ,Q$8$C,)24.AU_ST``'0#Z1(`Q'X$ M)L1%`HS"B48(B58*Z0H`,\`STHE&"(E6"ND``,1&"(S"B^5=P@@`58OL5>D` M`,1&!(S"4E`SP#/26UGHU>)U`^D-`#/`,]*)1@B)5@KI3P"Y"P#H8MQ,Q$8$ MC,)24.@)_ST``'0#Z1(`Q'X$)L1%!HS"B48(B58*Z20`/0,`=`/I$@#$?@0F MQ$4"C,*)1@B)5@KI"@`SP#/2B48(B58*Z0``Q$8(C,*+Y5W""`!5B^Q5Z0`` MQ$8$C,)24#/`,]);6>A/XG4#Z1(`N```N0``N@$`Z-7;B$8(Z4H`N0L`Z-?; M3,1&!(S"4E#H?OY0Z//@N`(`Z/_@N`$`Z/G@Z,GA=0/I$@"X`0"Y``"Z`0#H MFMN(1@CI#P"X``"Y``"Z`0#HB-N(1@CI``"*1@@RY`O`B^5=P@4`58OL5>D` M`(M&!"T!`+D#`-/H!0$`N0,`T^")1@;I``"+1@:+Y5W"!`!5B^Q5Z0``N`(` M4+@$`+@$`%GWZ5"X`0"X`0!9`\%0N`$`N`$`60/!N0``NO]_Z!O;B48$Z0`` MBT8$B^5=P@(`58OL5>D``(/L!,1^!(S`4,1^!)>Y$`"9]_E9`\&)1OS$?@27 MN1``F??YDHE&^HM&_%"+1OI:B48(B58*Z0``Q$8(C,*+Y5W""`!5B^Q5Z7(` M58O$_W;^B^A5Z0``Q'X$!NBQW.C'W`#H9-UU`^E*`,1^!`97Q'X$!NB9W.A( MWE\'N5$`Z'O:`_@FB@4RY#TP`'0#Z20`Q'X$!E?$?@0&Z'/4+@!`.C$ MWKD,`.AHVL1^!`97Z)?_Z0``B^5=P@0`@^Q7Q$8$C,)24#/`,]);6>B?X'4# MZ1$`C7X(%E?H2]P`L5#H6]SI"`'$?@0FBD4!,N0]`0!T`^D7`(U^"!97Q'X$ M@\<"!N@)W+%0Z#/``Q'X$)HI%`3+D/0(`=`/IP0#$?@0&5XU^IQ97Q'ZC M@\<"!NB#X^C4Y.@0Y.B:XXI&IS+D/0``=`/I'@#$?J.#QP(&Z&/CN!0`4+@` M`%"-?JT6L5#H"MCI5`"*1JG?W56+[%7I``#$1@2,PE)0,\`S MTEM9Z%S?=0/I%`"-?@@65^BEX@```````.BMXNEN`,1^!":*10$RY#T"`'0# MZ14`C7X(%E?$?@2#QP(&Z&KBZ(?BZ4@`Q'X$)HI%`3+D/0$`=`/I)@"-?@@6 M5[D4`>BFV(/L!L1^!(/'`@;HE-JQ_^@`V^BN^.A0XND1`(U^"!97Z#3B```` M````Z#SBZ0``B^5=P@0`58OL5>E/`56+Q/]V_HOH5>D``,1^!";$!8S"4E`S MP#/26UGHM=YU`^DB`<1^!";$/2:+1090BU[^-HM'_"T!`%F1.\%]`^GP`(M> M_C;$?P8&5[D2`.@9V(/L!,1^!";$/8S`4,1^!";$/9=0Q'X$)L0])HM%!HM> M_C8K1_P%`0"Y"`#WZ5D#P5I24.C)_%\')HD%)HE5`L1^!";$/2:+1090BU[^ M-HM'_"T!`%F1.\%T`^D=`,1^!`97Q'X$)L0])L1%`HS"7P_C:(1_N_8`(>5[]@`A[H^N"+7OXVBT?\4.C^X(0``````.BK MXNA`X>@NX>C]X.D4`+D,`.@RU\1^!";$/8/'`@97Z+K^Z0``B^5=P@0`@^P# MBT8$+0$`N0@`F??Y!0$`N0``NO]_Z/+6B4;\N```N0``N@$`Z./6B$;[N0P` MZ.C6OVX"'E?H=OZ*1OLRY#0!=0/I$`#$?@8&5XM&_+D(`/?IZ+W,Z0``B^5= MP@8`58OL5>D``(/L!+D/`.BKUHU^^A97N0H`Z*#63$RX`0"X`0!0N`$`N`$` M60/!4(U^!!;H@=CH,-I9`\$%`0!0Z/;ZN0``NO]_Z&+64.C[_<1^^K@!`+D` M`+H#`.A/UB:(10'$?OJ#QP(&5XU^!!;H1=BQ4.AOV,1&^HS"B495B597Z0`` MQ$95C,*+Y5W"50!5B^Q5Z0``@^P$N0\`Z!S6C7[Z%E>Y"@#H$=9,3+@!`+@! M`%"X`0"X`0!9`\%0N`8`N`8`60/!4.AN^KD``+K_?^C:U5#H<_W$?OJX`@"Y M``"Z`P#HQ]4FB$4!Q'[Z@\<"!E>-?@06Z&3?Z('?Q$;ZC,*)1@J)5@SI``#$ M1@J,PHOE7<(*`%6+[%7I``"#[`2Y#P#HEM6-?OH65[D*`.B+U4Q,N0@`Z(/5 M3$SH)/I0Z/?YN0``NO]_Z&/54.C\_,1^^K@``+D``+H#`.A0U2:(10'$?OH& M5\1&"(S"7PB@"U[D``+H!`.A"U(A&#.D/`+@` -- --------------- C'est la vie, C'est la guerre, C'est la pomme de terre Mail: Imagen Corp. 2650 San Tomas Expressway Santa Clara, CA 95052-8101 UUCP: ...{decvax,ucbvax}!decwrl!imagen!turner AT&T: (408) 986-9400