[comp.os.minix] Software floating point for 386 Minix with GCC

evans@syd.dit.CSIRO.AU (Bruce.Evans) (09/25/90)

In article <3433@skye.ed.ac.uk> richard@aiai.UUCP (Richard Tobin) writes:
>Unfortunately, the gcc machine description for the 386 uses floating-
>point instructions even if -msoft-float is used, so it's not enough
>to find the usual floating-point routines.  I suspect it wouldn't be
>hard to change the machine description to fix this (it may be just
>that it expects to receive floating function return values in an fp
>register).

-msoft-float doesn't actually work in gcc 1.37 for the 386. Partial
fixes are enclosed. The main thing wrong was indeed returning soft
floating point values in a hard FP register! There are a few other
things wrong. I fixed one of them by editing one of the files built
by gcc (this should really be done in the md file). This works well
enough to compile gcc and other gnu utilities that use FP (e.g. awk).
The movdf and movsf descriptions still get used occasionally. I have
only this when optimization produces pessimal code by copying things
through the FP registers.

Files:
gcc-config.dif. Apply this patch to gcc-1.37/config/tm-i386gas.h. The
patch should work for all 386 versions of tm.h.
gcc-out.dif. Build gcc-1.37/insn-output.c, then apply the patch. Sorry
abou the kludge.

>Of course, this shouldn't crash the machine.  The reason it does is
>that Minix doesn't set the EM bit to indicate that 387 instructions
>should be trapped.  If it did, you would just get a core dump.  This
>is easily fixed - perhaps someone more familiar with the kernel code
>could decide just where it should be done.

I've know about this for a while but only just fixed it. For some reason,
FP instructions are treated as no-ops on one 286 system but hang my 386
system. Neither system has an FPU. Could some hardware person please
explain this.

>The 387 programmer's
>reference provides a routine for detecting whether a 387 is present.

I've got it hard-coded to no FPU. There are bits in the CMOS RAM to tell
about FPUs. The setting of these bits is said to often be wrong, probably
due to the use of 8088+epsilon BIOS's. The BIOS should be responsible for
setting the EM bit. Not setting it makes it easier to crash DOS too.

There's a lot more to supporting multi-user FP than setting the EM bit so
it's safest to set the EM bit and use software FP even if you have an FPU.

>More ambitiously, has anyone written 387 emulation routines for
>Minix so that programs can just pretend the 387 is present?

Emulation is difficult and slow, so I use library routines. The ones enclosed
are straightforward translations of Peter Housel's 8086 routines, with a few
rounding bugs fixed. The packaging is very rough - not even a makefile. Sorry.
Just run bcc -c *.s, and for use with gnu ld, translate the objects using my
gld. (There is a bug in the released gld. I don't think it affects these
objects.) The .s files contain untested support for being run through cpp so
they can still generate 8086 code (same as the original + fixes).

C routines from Peter's original posting are not enclosed (things like pow
and sqrt, and stdio support. Use estdio for the latter). The outputs from
"ar t gnulib" and "ar t libm.a" are enclosed, to show where everything goes.
Most of the standard math routines in my libm.a are from the "pml" library
posted ages ago for gcc under ST-minix.

#! /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 shell archive."
# Contents:  gcc-config.dif gcc-out.dif gnulib.t klib386.dif libm.a.t
#   fp386.uue
# Wrapped by src@besplex on Tue Sep 25 14:49:00 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'gcc-config.dif' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'gcc-config.dif'\"
else
echo shar: Extracting \"'gcc-config.dif'\" \(1211 characters\)
sed "s/^X//" >'gcc-config.dif' <<'END_OF_FILE'
X*** tm-i386gas.h~	Thu Sep 28 02:55:07 1989
X--- tm-i386gas.h	Sat May 19 21:49:49 1990
X***************
X*** 99,99 ****
X--- 99,135 ----
X    fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name);
X+ 
X+ /*--------------*/
X+ /* Local stuff. */
X+ /*--------------*/
X+ 
X+ #define CC1_SPEC \
X+ 	"-fcombine-regs\
X+ 	 -fstrength-reduce\
X+ 	 -msoft-float"
X+ 
X+ /*------------*/
X+ /* Bug fixes. */
X+ /*------------*/
X+ 
X+ /* Fix -msoft-float.  There is also something to be fixed in i386.md.  It is
X+    zapped in insn-output.c for the moment.  */
X+ 
X+ #undef VALUE_REGNO
X+ #define VALUE_REGNO(MODE) \
X+   (((MODE)==SFmode || (MODE)==DFmode) && TARGET_80387 ? FIRST_FLOAT_REG : 0)
X+ #undef FUNCTION_VALUE_REGNO_P
X+ #define FUNCTION_VALUE_REGNO_P(N) \
X+   ((N) == 0 || TARGET_80387 && (N)== FIRST_FLOAT_REG)
X+ 
X+ /* When using gas, .align N aligns to a 2**N-byte boundary.  Fix up previous
X+    wrong comment and redefinition.  */
X+ 
X+ #undef ASM_OUTPUT_ALIGN
X+ #define ASM_OUTPUT_ALIGN(FILE,LOG) \
X+      if ((LOG)!=0) fprintf ((FILE), "\t.align %d\n", (LOG))
X+ 
X+ /* Align labels, etc. at 4-byte boundaries.  */
X+ 
X+ #undef ASM_OUTPUT_ALIGN_CODE
X+ #define ASM_OUTPUT_ALIGN_CODE(FILE) \
X+      fprintf ((FILE), "\t.align 2\n");
END_OF_FILE
if test 1211 -ne `wc -c <'gcc-config.dif'`; then
    echo shar: \"'gcc-config.dif'\" unpacked with wrong size!
fi
# end of 'gcc-config.dif'
fi
if test -f 'gcc-out.dif' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'gcc-out.dif'\"
else
echo shar: Extracting \"'gcc-out.dif'\" \(446 characters\)
sed "s/^X//" >'gcc-out.dif' <<'END_OF_FILE'
X*** insn-output.c~	Thu Apr 19 02:24:32 1990
X--- insn-output.c	Fri Feb 16 22:56:29 1990
X***************
X*** 1156,1158 ****
X  
X!   if (FP_REG_P (operands[0]))
X      {
X--- 1156,1159 ----
X  
X!   if (GET_MODE (operands[0]) == DFmode
X!       || GET_MODE (operands[0]) == SFmode)
X      {
X***************
X*** 1160,1161 ****
X--- 1161,1164 ----
X        /* pop if reg dead */
X+       if (!FP_REG_P (operands[0]))
X+ 	abort ();
X        if (top_dead_p (insn))
END_OF_FILE
if test 446 -ne `wc -c <'gcc-out.dif'`; then
    echo shar: \"'gcc-out.dif'\" unpacked with wrong size!
fi
# end of 'gcc-out.dif'
fi
if test -f 'gnulib.t' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'gnulib.t'\"
else
echo shar: Extracting \"'gnulib.t'\" \(395 characters\)
sed "s/^X//" >'gnulib.t' <<'END_OF_FILE'
X__.SYMDEF
Xdivsi3.o
X_adddi3.o
X_anddi3.o
X_ashldi3.o
X_ashrdi3.o
X_bdiv.o
X_cmpdi2.o
X_divdi3.o
X_fixdfdi.o
X_fixunsdfdi.o
X_floatdidf.o
X_iordi3.o
X_lshldi3.o
X_lshrdi3.o
X_moddi3.o
X_muldi3.o
X_negdi2.o
X_one_cmpldi2.o
X_subdi3.o
X_ucmpdi2.o
X_udivdi3.o
X_umoddi3.o
X_varargs.o
X_xordi3.o
X_mult.o
X_poly.o
Xaddsub.o
Xcff.o
Xcfi.o
Xcfu.o
Xcif.o
Xcmf8.o
Xdvf8.o
Xlib.o
Xloi.o
Xmlf8.o
Xnorm4.o
Xnorm8.o
Xret8.o
Xreturn.o
Xsti.o
Xzrf8.o
END_OF_FILE
if test 395 -ne `wc -c <'gnulib.t'`; then
    echo shar: \"'gnulib.t'\" unpacked with wrong size!
fi
# end of 'gnulib.t'
fi
if test -f 'klib386.dif' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'klib386.dif'\"
else
echo shar: Extracting \"'klib386.dif'\" \(439 characters\)
sed "s/^X//" >'klib386.dif' <<'END_OF_FILE'
X*** klib386.x~	Mon Aug  6 00:44:58 1990
X--- klib386.x	Tue Sep 25 14:29:49 1990
X***************
X*** 43,44 ****
X--- 43,47 ----
X  
X+ /* Floating point non-support. */
X+ #define CR0_EM			0x00000004
X+ 
X  /* Paging constants. */
X***************
X*** 302,303 ****
X--- 305,312 ----
X  
X+ #if !FLOATING_POINT_SUPPORTED		/* force all FP instructions to trap */
X+ 	smsw	ax
X+ 	or	ax,#CR0_EM
X+ 	lmsw	ax
X+ #endif
X+ 
X  #if UNPORTABLE_SHADOW_MEMORY_CONTROL
END_OF_FILE
if test 439 -ne `wc -c <'klib386.dif'`; then
    echo shar: \"'klib386.dif'\" unpacked with wrong size!
fi
# end of 'klib386.dif'
fi
if test -f 'libm.a.t' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'libm.a.t'\"
else
echo shar: Extracting \"'libm.a.t'\" \(540 characters\)
sed "s/^X//" >'libm.a.t' <<'END_OF_FILE'
X__.SYMDEF
X_f_vprintf.o
X_f_vfprintf.o
X_f_sscanf.o
X_f_sprintf.o
X_f_scanf.o
X_f_printf.o
X_f_fscanf.o
X_f_fprintf.o
Xatan2.o
Xexp.o
Xlog.o
Xsqrt.o
Xpow.o
Xatan.o
Xmatherr.o
Xpoly.o
Xsign.o
X_f_cvt.o
X_f_guard.o
X_f_pow10.o
X_f_tvc.o
X_f_vsprintf.o
Xacos.o
Xacosh.o
Xasin.o
Xasinh.o
Xatanh.o
Xcabs.o
Xcacos.o
Xcadd.o
Xcasin.o
Xcatan.o
Xccos.o
Xccosh.o
Xcdiv.o
Xcexp.o
Xclog.o
Xcmult.o
Xcos.o
Xcosh.o
Xcrcp.o
Xcsin.o
Xcsinh.o
Xcsqrt.o
Xcsubt.o
Xctan.o
Xctanh.o
Xdabs.o
Xlog10.o
Xmax.o
Xmin.o
Xmod.o
Xsin.o
Xsinh.o
Xtan.o
Xtanh.o
Xatof.o
Xceil.o
Xfloor.o
Xfrexp.o
Xldexp.o
Xmodf.o
Xstrtod.o
Xstrtod_aux.o
END_OF_FILE
if test 540 -ne `wc -c <'libm.a.t'`; then
    echo shar: \"'libm.a.t'\" unpacked with wrong size!
fi
# end of 'libm.a.t'
fi
if test -f 'fp386.uue' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fp386.uue'\"
else
echo shar: Extracting \"'fp386.uue'\" \(35739 characters\)
sed "s/^X//" >'fp386.uue' <<'END_OF_FILE'
Xtable
X !"#$%&'()*+,-./0123456789:;<=>?
X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
Xbegin 644 fp386.tar.Z
XM'YV-8<B0F5-'C(LY !(J7,BPH<.'$"-*G$@1 (B+-FC0 &'Q(H@8,#AZO#A#z
XMY,B+-V3,J'&11@T9-F+,D.GR(L@;*2W"J,BSI\^?0 '4F4,GC)R+ ,3(J3.Fy
XM3%"'2IDZ?4JUJM6K6+-JI>B"3!DS:=R4 7%0C!D<+%P$/*N #XBV(,RP>1.&x
XM3M@S(."\"4L'1$ R+PB*H2,GS)B^<M[4L2MV#MPPB]&\D:,#!)0R=,H<G>("w
XM!!+%<\JP 9'CA8P8+W"@A8$ZQHW4.5C F/$B1FD<L6N8I@&[K0(%(]*8\6H&v
XM1!H<,%0#)QYV;)$@6/SB6?ZU.8@B0J*+F3Z"N=CK0Z*/X>[=.9'H9,A7_UZ$u
XM2!(09-)0!\M^ROLY\KNO=RX$"@@Q<,QG71%3^#='@/K1-Y80140!@AIE"/B=t
XM$$<4\> 9$29H'8547"CA@DY8J(98"B3A!!%2%'&$?5H4D4!H="0@@P(I4A$$s
XMBBRZ"*.,'X)PQ1-2$ &<:*'U^%QT982AGH+790="&=L9&=Z3XQEYWI/I6?E>r
XM&?$9:=^3^!G9WY, >NE?&0?VR*"#8I01AYH5_H<AG!V*<08=:H;X'XDFHJABq
XMCB]BE@ --!9A(XY)M!AHC(1J^-V/08)PQV1D#.E&?&;\9D4"/<@(@@H@])GBp
XMBHE:N ((-=XH!:!N$678&B"\8889,,9:G!T*5,%I E: <"H."230:E%CP"HKo
XMK9C9"D(=OR7@0F9XX.EL><[.819::I'!EK-E1*N9&V2Y,5D;."A0UEDZ*)  n
XM'$.AD0"!203;:AAVC"5'&6>D091F(-AA5!IAB,$&FNJR.X>[[26A;AMOV/&Nm
XM>RP0"(6\\*4!0@\^]*ON7P\GP<((5JB+QV1B)' #"@FGP((*,<@ K%MBG5'7l
XM6*&-\<:E?LEQ1AUME.&&M,$*&U<8;(Q&!QJ)U7$&&B#0\89?VI:;@!IMP.$Lk
XM:YEFBV[![;YK'\5ST&LOOOIF=I2_<@ L,,'K=IWPP@UW''&!&PLD-\@4QW=Qj
XMQKBZ@+4."3#L,+QS0U$W&5Y[/(*N0N.W][+-"I[ =BS8@+)]*0C=+6&&]56'i
XM"]T&&'C#)9.!!@MBN*MYM(4=MNQ!:9SAAKH'RS$Y'BO'0#O2M^>^N^V4L_Q[h
XM[\(G$,:EO8\@ PPTW"#T&FD4#0)^LO^7!IYP.SQ>Y2B[E[E;F[?>EQV@XR&Zg
XMX*6SP<(8JH//>N?]PB[[\-L77WL"]>O^(N_YTX][\<=#W/:4QSSGN05ZTJ,>f
XMN,1PO<C%34G<@]?W0' OP8TE=#?S65_,D)@VO*X-Q[/+',*V,>1!< 0PP ,,e
XMC*"NS!"E=]NA&/O*4*RX3 8$>M#,TS HEI^!H 4@$!<(!A:0NX! !#$0@;K4d
XMH(>KF8%B9KBA5\0E!Q"R(0TY)$,0>=8F.3@F 9,Q'NY0B >0".U>1)G,6-)0c
XMM2MR:8A)BH\;\()$)?K-#("3G.4DR (E.=!A$-RC]\Y8!@L^R7P9]"$'W^!!b
XM\H'P9_HBH?%,.,84KK"%:(K1]L8C0S30$%91/$H.$W-(O?2P+T 4(A'E2,<Da
XM+K&)?H/!$X462OCX;%Q$P^(;W<!%S7PQC"=,H1G=@D:GW<LX;4S#&U=IQ#J:z
XM"P:RS&/<!)D$E?DQ>V)$W71>5)!L<E)H2KK8ZT+WP_B%+GLE&X/Z5  #BJ& y
XM77T)R_4 -II1/BUIES(B ^DP!^. 2YTI6&(9G$6#6;K/E!KLIU$N&(<Z$*V<x
XM0CR8<!B#%[$T981&R<,2S^"L&!@TB&_HBYL<.AHQ+ :DAV3?\3 41!JB*6QRw
XMT&@"\, ^CA(N813KEDKG.)8Z^ 5GN)II34MW.C*P@7;=I)R2*+8=<7Z.G$!$v
XMP5/-5T[RA2X%XK2J^=05,S&:RZ/IPE_5LCF"&M2 8OI:UO2>U@:F,(V!9\#0u
XM48Y6EWX9IY_BDA:%7.2"&WQ4@<))PQA"^(,_IO-T(S!CX] P4;4.S R>@T/3t
XMG@82Z_%SLB!H@SPUF\,AOF&$YI*!&,)Z,#8D %)$  $,+E=-WR5 #NH\+9!2s
XM*P/6JJQXL#4M:D%  ]NZ-K>RC=0>,>=:KXSA=GFC804U6,I$2LNX7IT:+ N:r
XMMPQ.C[&0-2+1G(:AHVE&7<8][!+= $O1@LTNTALLN"0*V0^&,+-J--<,1CN\q
XMW5+SMC%8;&,=^=ZT+:TOWJ5@)I45X#N$0::PM=UN>YNRW G-:4.TSO66)=D[p
XM7(]IGWNDM!(<7-IVK[6X'8."9ZO:#^-770E.YSKSJ]_V\N6>BLGG'"W[Q1$=o
XM-Y:R5!?)\+=BBH%P#6,A(E&F%SO+'I$H@EU#'NP(S6@F +I+%=I<WB"Z$0W4n
XM!?,U5T'#BC[CJ<]T%%MHTSQ)9-GU<Z1$*^Q,=TPT%AAUO'-PE@T^F@<TL0!Jm
XME>(JOE1,L0R_MP?N]6%4^>O#4^&3E0$='2!QM]J4T4X,)6LT<?VHZ&S6UM$Ol
XM@K2,?$MIR4&0P=Y[=,D8/.EM>AIW]Q5U H;;6DK;V%E^I5@50. #0/<J+)D-k
XM@^RN5P>O<#6D?!9:S&9&P1BSDL8_U:*??W8X%;LVKQTNL03K=MS=2KJU*/QUj
XMC'9[:<Q1.]K=QC8,M!UM4E?SVPOV;;83 &W[VA;=)&:URM8],CD0=64I1 XXi
XMR:"&H7A.?K.;VEC[FK4Y<_F!C#:QT);=%T SW%?QT_#A$G!M:YH:X2RX=*B-h
XM1X;CAMOBV/RTB;]M;I!7.I CY_AQY=W'Z1#\X'9(W_I,*S1X%KL.,L;+/ON)g
XM:Z/:\"@NH"*YL)FPPH$M65Y!LAOJDH:;.77B15\<-M%:G#O0S,!P@ .7[FQ(f
XM.\3J9T^KPPZF+C3A2&HL\2&#&T[0ESE@G>L-Z^G7(7R]T+ A4XK.7L&HW#&*e
XM%5.- L[7OL[VKX -[(MZL1J\]J[X\,@0#^*\%QWJ( =P_06-7^28Q#X&+$)Vd
XM/2X='#/-B+4&KAWL78ZO^4D#+'G*6UX@F/_/JY8X<*&7:RNXS[WN=\_[WOO^c
XM]\ /RAAF=9#@&[\G'LG(1CIBDY PGR0F.<E+;A"#EKPD!BZAP0QL((/FP\0&b
XM.CF^^'WB;Z,@)2I-R0KZIS+^]KO__;CORG[(,OQ,N04N<J$+1?.R%Q_R &-Qa
XM,1=,-V-ZP1<@8#-N4"]>U'3@DC2,03!N 1E',QF5<1EF P*<X1F@(1JJ90,Oz
XM,!N]P0>_$1S#\17&@1S*X2C. 1W2(2;:L20#,B55HH+7<2590H,)4S%><A_Yy
XM41Y-XA]E@H,%,CT(XH-K\B 98H1QH@9S0H,<XB%.J"=65B(G,BJ LB,SDBJ(x
XMHBA8V".H-21L4"0XR()) H/LX2108H;.,24TI(8UB"0WZ(,YR"4].'_P B9Uw
XMR"38<29!*(=#B"9%.']'V"9OXH1Q8B=)*(A'4"=WDB<6(@9\4H5_4BJ+,BB%v
XM<BBK0HD[TB@^N%N3(@>5,@(^@RF_(01)$ 130 .[DD(W8 3EI#NFB(K TBDIu
XM- -&X(I I#OJ\BR;LXMG,!<"XRSUYQMNX70:%%/P@0<], >* 5LTHTMW-AX]t
XMD'1TT!GXD4.^X0+U%U9C,%;I\3&$,C5B@3^S4B[U1P/<.%8#%(Y61HYF0 -?s
XM8(ZS H_H&#2$1 8X1P;O10,M( 9YD!D!J'^8Q8_^")#Y5Q<HAAD*<([Q"#A!r
XMXQ8$^8]C<9  ]C0XT(\2"1^*L3;JTHU6,T!2TX[10W-N,9+X\E!%T 2Q$B",q
XMAWI8\'B1AQFNAV>8)S+ A#M1%H%9-XH@, /=MW/*8D]L8S#N0FE$&5U'602Ip
XMYQ8VUWJ51Y,O)7O%8GH(8Q]$9Q^% QS"<2DF>!S)(36:AY4C("J3V"(MT'VGo
XMHH69:)8S(HKYE"G81#DTL +RMCJ<XSH\I$'H]&2GDSHY]3ZNHT![J4XK<P/#n
XM0SGJ9)/V-CE]V3X@@$"CH4!&A@)YZ4-IA0,T%E AASMS69?$5$AQUURG!'J,m
XME&N0A%$EA#C!A >MB$DO1#DQ)#0S5$.U9$^BR5RI]#3,-&/.)%U7(TM0)$6Wl
XM5$6YE$5;U 9=]$NVLYKZ]IEI=$QL! =NI$6[V4I,YF22TYF<-AT31SDC$(M3k
XM<)'@R8\SL&_]-F0,% 9S<&>&83,XMT$WQ%[24F\R]V8M"2]^ETF %R8"9S5!j
XM-RZ=!S.X=$6=%4 "-GF5]QLC&5:)=SMOT9_.0AAP$#UA\1OUAP/I:#7?. (Ai
XM.8XCB59%<Y*CD9(KV2P>B3]CQ([C>*'QN)#E^ 7U^) @<)$%B78;.3 #B9$&h
XM*8#2DI1666DW13<DR)7%X97*P7&(0SAC*8FDPI80IY8Y<I:60HIQR9ET:5MVg
XM*3ZEM)>F@SJ.&3[P(YC[ SS_HS_W$SQFRCMH>IAEFIK)LSS-\SPC668+U$";f
XMR0+:*4&>%YJ5N4&A1V@B)$D!1%:6Q$()X$(Q IMXT$F?]',XI$.W*6@H59U'e
XMY$J^>4?!>113-*"ZI$6\A)R^I&/+64EEU$[.:4QKE$S+%$?-Y$IW)$T.DZ>Ed
XMUBP<XYWCV0+@^3)0<YY]D9Z.@4T#5)XM%EF8=2^Y5#T:%DEAX*@4Z1@N$ .Cc
XMM3^Z16)S67&_%5L+M@(?=ZW3&BES67+<6FY7RD?%,V7^":V&]63J,Y<S@*6Mb
XMDBR'ID]U=Z?5ZJX'Z$DU!&&AL4;%@63%D@=&=C"*P09:U";3HY!@M)AM-I<?a
XM)ZK9Y&KEA7<[9E0.UCC)XJ]*9EF_X0(R@$?KPG?X24C/^8SWN90'"'F YI2Oz
XM1P8UB:1> P7@F)^&-!=6=Q0^26-4Z9(4TY0R^927%Y5B,'L0^I]51"@LBJ$=y
XMJ8YC)#5"$"()\*%E%Z(R,Z(J264)&2/YB8^7$D(* ']>^[5@&[9BBWO#EP;%x
XM-[;'EWP:$7T?X7PG41+/UWP^67V\]1(R4 ,S4$ ;T;9Y&P/AA[;N5WY'P1'Kw
XMIWY+D7Z F[B*>WSRQR3:"!9P@7\\:D0%Z$, R!?XPB\(J(#XX70.V!R.$8&1v
XM08&6@1G\DH&?,10<Z($M QN54QN\@1N^H94E6*0H6"YC&!U^A(-.$B4X*(-Nu
XMV![H$;SNH8-"R(-B H2!J(=#F"9.V"!(""<BTH1*V"%,Z(@/$HE^TJ0Z(BA9t
XM:"BJ<H7>ZX6S!89B*(=DN+MRB(:^*X=L.(-R>"5<0KQ;TB7'BX?)2R;+.R!_s
XMZ+Q&"+V$*+URDHA,\H1V@B=1^(C::X6:*"B$ J4-S"CD&RF?&(JC*!RE>(JIr
XMN(JLB8L?H0"YRL&VZ,&Z&*&]."W[(8R0*X+%""['"+#IL8S-V!1$ED/1J(S4q
XM:(VZE(UERZ!N\S6-(S:!5S;\@C9J,S!7Z3$20[M$>H)?"75B29;<>Y9/"KY;p
XM6 12ZI94*E8:FJ+C-5!E*X]I@(Y5BJ?::J]@BI=;I6CWYI=9&J:Q$W"E13PLo
XMUBK81:P9=&?>!2YD\ 9W "Y2TV4"XZ6*63*I0\CT>L9Z^IF&U*>DZ4')BIJ3n
XMI)JDVIJ'FDDPM*BRB:^@=$.VZ<BY"4=%Q)N6RD1.E*FV)'3%N4N]Y$4.RYRFm
XM*F CBTS2J4S4R:JDS&0>FYV*/*M):S6VJL&JZ!:S"2M]ND2F-4JJV#B$(5ATl
XMP 8 RT&=PX!MAE*8*U=Y811TH&8G&LRHR*XR4'8\5Y%/ U>8!1;Q9'D]*0/]k
XM.&'7K!EJQB&'^@9O %<;"ZV T\UC-)[:.LS7-5%O1#1&0V8&!L-^#"YUMLT;j
XM=64=*P;U1:V]#&+Y9<>-U<=_C%G'VH!%!'F52P=C]UHB)J[6RC)OC&QF(-"Vi
XM4AP!QI,H($3Q.D>)%A;'%25#BZZA90;1JL\?P\\RX,]]?'8@@ 9"K*]W3&%Jh
XMI@8#XRPS@'=SG*TC/='_W%YU(%D0EM$4M-'\QQ<HAJT0O:W% UTT337^V= *g
XMH,QA56\/J\EN\6-C46"2@:-'8T3VA$U.O9UTW=5V+5\>*];D>!PE TX@I =Wf
XM <UW9G4'>#S7)6:L-V"R(GH'^ :^YJ+'D:%/MK3JTK0N K4E*;4H6;4L66ERe
XM.:Z8\\9J?#ZDPY=>^I=WV79QS*:N=:9M.J9T[-H A#S>":<&])AS*IG[]$?9d
XM)*O5M*?U$JE^6IJ1+*B4]#&%ZIJ)BCNQ2<R<[*B?C$BC&<J4VINF'$L?54N;c
XM2IP$RLJ@ZLH)2ZBE*K*H2LO3*<K'YDS:#:N#(MJMQIU<G#PA#-V->LQ3D\R:b
XM$:#3T\R' <V@-\TW4\U"],Y' 0?:S,UCY<WAN0(^*<[&0<[6@Q<0AL[^Y!?Ka
XMW,[IG!ER%<^+.,_U'#OWC,_SS> XL )X.ZP!+3T%=F :>=$)?=08TM<XX-"Rz
XMG:TL1](4W5X6#2Y5?4754QCQP=']Y]%;/6+>N@+@JN.'Q#DFC=+'XM@L[=+&y
XM=A>)QF'9ZM7Z@^40_=3J(M.W0WOGBJZCA+1K-JHMYV-A &2.?0=OW=:,-6-Sx
XM76EUS4>=%C=9;M=T#M'@>N<.@^-Y'<8YK;0?,R/B",9@@0,P*MF*+@,.23$Tw
XMFI$4B5GL7*/^Q.'?=7)6VK#C#4&N1EX@#E<4XS3E7&05[LY@A^$Q8 ,:?NF9v
XM*P=J=FIF7'&_3-[( 4U"TP(^>0,V@)EIM:Q+1Q0 6P9V$#U$2$/T=-A%(HZPu
XMU&1XAZCWEE@N,^J,U4]"7;"8<8$&J^LRP.N8::!YM<[>_DJA+N)#.P-+_4S0t
XMY+&(FM84$U*>) <6%AIWQML3!B,_  (H8+9ET!FD/N$_D&AJ$&>D;L^73!3Ws
XM!F;"5@9O!&'#EAE'[09QAF7ISF[XXE44[[$-&K*GNI_R\;&*EQU@(\1PD!AGr
XM4!@>Y)X_D^GTB=H*[Q8^AV3I=3-%$1;]Q(R41\/7F"%;21Q.?*2"HP>+.K]Nq
XMQAT7C'=A";/"2S'=14%IH$6-C?/.V"]$4P<1TC:GEY-Y<5(J2_5L8/5?U]]"p
XMFY0BKWJ]^BH'.I,_"UJOI9!A#*./+C21OJ,""6$1"9 &7NOK^,5/6S2)7'%Fo
XM[^K8_&)#/'A?)#G;P[#O-M\#E&]-ENNGT3PT@ /;-_EWA>'!3@?#7NR1J75Cn
XMD.R#M>PC DMSQMQI/5Y-5/#F#NVH+>W\'=?6'A#_D>W\LNTRX 4SD6P@U1>Wm
XM/Q/DKOIG(.;.@@,%Q^Z8O$EJ3:<!BQGYON^@X^_T/.$"3_#T;/"LWZ4O?_D3l
XM]O!I4"\1/_'$KV<<5246SU%:__!7;RWI5$GF0OP,"K) W/''Q)\;7_;S,MPEk
XM_P8G'P8I'V-F4\@NSS'%//0R&A!0S9-X:R7G/2-L-*1\GI$*9 U#Z"4 HG>#j
XMCAX44WKG@>G!JZ>G+*0>#?,77^_J':5OPI2X7L\"%R 0[#D=5S&5L%Y1VB9Di
XM[R4%OJ!50[K>VOLBDD<!+*B6U%2$W[.0 Q/JBLP.!:"4GH 3V!2= B3LHLWQh
XM+9S%2<,3P _FD)4B> 1SEJL9.$^P:RVN+<@%NZ 73 C#YW,@A"^8>]36\AD)g
XME25NP:V3@!+074BH6Y&O!F@$[".W6,/?(H.\1W"=G\/%?JQ"X<*#@# 02H3&f
XM91T>%[.X/VZ!(E&N(O<X<(X">2.;RY<PH)OS@$*77QA=E*%T72#4M8%& ^N2e
XM :Z+=<6N'#"[2) #O%U&@@6I+SO4NX(7\+(2PTM+&"\_A+QXE_(R$T1(34 Od
XM""' F! !VQ"+" H9(2FTP,I2]XH1WPL3B2]D.,&$A"@*0[^0/:2OX,6^7"&2c
XM@%]V2'[%H6Q8O_(0_]H28<(6ZB]<"(AT(9MP$P(,$=$).8' AJ$"BQ!2;!E:b
XM(@C&A1Q8,Y04E&)*83 0)LPX6"MZ1?Q0%HFP6P00=Q&TD!:$<!P90F(4]EY8a
XM,I)A"K"&E8$;-HTRB0[#1B+($/JPT\/QIH<0NQ>"YP(9,<-S]21'D#(<#; Kz
XMH4*7I:3B8:F@8FG)BJTE+-:6+&"MVU J"M'5 7E4!\@8:-MT: PPB90UUF6Zy
XME!MS'ZN-3NT.TX*FP$91FVI?9R**'CYVT&;47AIDJ0, 'K*LF,@^CG"[(-2-x
XMN2P22!9"E)6;6DV6K-TI*D9%FSP9I )EDPJ762=RAZEHB7!29=_-4[4RY63Kw
XM8MG?@4ZJZI:-LKGXJBJ-XK-S\DVG?:=^:-]J"'Y#:@E F9V7M/'?HIGXH&;Jv
XMPYJM/&R&X.2 0BMQ^TR8.;AP5I+&V60I=13N:5@X7+.L?%*K,W >C@J4N^#Wu
XM508=, N-WZR?J3@M@M):G$&#<<QOH3D+LG;C\!JY@FKRZ<7YN*=AU81<&B!Rt
XM?.&C<;DD]]1*&E Z:=(CRJTTG-'28$P^LG)?S@W,M&W"UYZ50[MIMI&^B<:>s
XM)C1^FF$3:L.-J#66J7;4DAJ686IHH%NEEGIU'(<5A<%H0$ZC#;FLQFQ FG[Dr
XM+1'MQ#P9&A+FAA99,VN*R=T)#;;6YM[<F)%K.@2;\,=991@39,O96$L-</"Uq
XM,%CCPDQ@&VQYH+"-!?62V([)8ALRC2W V(S(1B(IVX9B6DY+LQD'SD:U2E09p
XM VX3)(T-1=,6<U#;46QR6DI,P;;7IJ9BVY*T'TW2M0RJVU9 Y%0"B6,:*Y%Yo
XM)@'3R,*B(@D]QRT,G$52=4D.7G/3)FRQDXF2M^@E44E<'(R52HE<JG6'RKJ;n
XM%>E4QRDYO3)2-4QDV7F+3NGMNKFJ=>?>@.2'K'4F;I/=MS:)S"+C?IN,S@S m
XM2;/#@!GO3(';C/RB,WY&Q9BK1B.$FS#_SIR=NG2&X5SC/A%\\.RR?3C@-^+2l
XMHXE#<>5IQV4&WLCB")J+ZW$@(,8)1Q)IX^X'H.N/LE(Y D@LZ1RAX\^0CB$Mk
XM6RTYJ :FGEQVG!52CCM2N>\(TXZ<N-)RUK+.$9?B >;"VL") 61NOYVUFY3Fj
XM)N2:@W-CP<V] ;@6Y_#"G),<VC*^W;4DMZW\G+CJ<Q?GST$TEG-->&4^(W3*i
XM@^^1R$4W,!V=/7(+<V\B\2A*IZ/6"*:4 UUQ\9'+3Y?ZJE_L&'713U2J1E17h
XMU3X"JSN5L/'O+;[K5U0<4UK9?B?)+GB_)4+]0ESP WF)(S_-,OH'LNR?1\1_g
XM)@_E/;;WQ/(F5LG,&Y&) #ZVGQ$&;%X"G'H[CXF=PB>F:"0@!31Z;^D"1HP,f
XM*#2:7MJ >OUJAHV%%"@"NX;6XUD("@56O;&P DE/SL(.,K $GKT:> *A$MO+e
XM@0,S1D&ZAAF0ZHK=HYMYC_%YL4/7]XZ*IIMU]LKF&+A+=T_(AN$#5D!QVIC)d
XMA&<R32/W6YE3HV4:O(T7__RDQ[M/-C-LX$S]IS-5WO\[<XP3:/:W.64 BR8"c
XM]( +D.>9@2;V +.'T_Q&%3!JLL0",373)@BPFAPPZFE-KV?U<A8)W'J(H6URb
XMS;#' DN/"T1*;L-FVAP:""ML(.QY*5=+!Q:-]W<;'U1YE% 4:@A20228 )0@a
XMM_ 6E<<)(J0H>*=&P/:T@N01"R(D0<@^VZ?[_ F?SPR<K??Y%,P@VTJ#;XMMz
XM>00:H!*Z#QS$/G(0;_E/D  3:, =I)]600\2+CYHN*0" GV@73 AC@5MA,$0y
XM8=W</QT-!/R?C#$X(^$"\ER*H1(^!DQ8@4S79N@,J<ON]"33@ -"T @2#DLSx
XM!:$OW44-7Y"4$ _$*Q;BH.)EOV@AD<E??<@.-:_]-2%V831<$$N(>BDBZQ7\w
XM$ECV@H=,2AXFP_ 5P7@$#?I"S_!\V:%IZ(+(A#6D$CD42] O+.$-ZP,X+*/\v
XM@0\14>?0O]8H"!A$Z- 0/2(E6L""X0'#7I (BFXO>?C 9"(?O8<53!_"I?'Du
XM#TE80 Q/ ]&0&L03)D&%406%"\;H9R"C&(8Z)2)%S&$2D8<)!^KY+C+G1VR;t
XM-_ FCA%#UX[BI]$2#HZN)5&:=N?IDE\Q4WZ-S=7,N&?U4<2%&WB<5Z^K:+VBs
XMP.8"!C/Z>@"):W*IT\$RIIW%8FW50R[H&LR"2[^*QO.:V^1$[3V^&3]E0(NJr
XMIG#O8(* 2I>1!N?=M'04*4*V4O2YLV1?,5$685)27)A'E1B&4O*TG7]Q;(1-q
XMMWGXX@:#FTNKK@7HJF))(/L"K_(+D(5?,(PA0STZ0R %G>K*S9"D@X48JMR,p
XM 33C9F@)G5-J!JPIAM*FW!3O/4S,DC U4D% 8GJ3\_ ]'6F2IM9U\&SB%"?!o
XM0&A:3K7(.6ULZ=3"' UV^@;<:=9;J3<U 9Q-FQE/TY[/>IYL3W*\RGP*+L\(n
XM5LN@_S0,!-2C,%"1J4'-APB58AD5O^-0\0)$]8&VQT()!Y]XHG#B2"T:(&I@m
XMF%029;5@IE'B.UG"3%:VHI<F86EQ^%1=1#AR++P#;<Y?RLRE(:6RA<?C0FD"l
XMPG'94!'U**75HDA,6T9(&CCI;JX"#L'J<D+D\:0TTG1OEM*M>DTIJ]P4&G>Ok
XMITB\.-;PGD9FO: [%9[JIV/B/%D6]/R).TTTNL9]>E0985T910!0JB[4EV95j
XM58N^,SMZ 3^H3*EH.OP"&S!69 !@P0"!5WO&!46%1V8NLHI4ODE2>>1)+5%Gi
XM[O0]UN1G3UH 6) >+[4XA$GT&5IEYGDKK2U+J.+&!N<:BRHQ::T&**DNU;B0h
XM!KQ(7[A9.R>V?IG96E7%24C8=\4AM\Z3>G%G>BO1 *["E;CZIZPJ/=D )VTJg
XM%.,'*%@?B#V%H!:$H! VPDK8]].-SL+\G+ 2P7X^'_PY$M8@&_1)-N -NH0Xf
XMZ!)>@MSB/@<4P_($!9H4&"A6^(,J-L:.'PE*?]H 6["@BI  ,4*;437$S.<Be
XM$:)K F5""W2Z4&@G! $>B#;(+A%$NV(H[IJA+8AWV=#?A4-A83*2A3U4B-;"d
XM]74+A9"!<*-'B!?*T0MQ1-]H,+Q>3G0*N<1ZR SIX3&THIVH?&71,GLDGL0Jc
XMU$/5\(:"42L[OV0A'=I!^$L<0@DW*C' !)@%8'%4"<W1,FO &I$3S:-4:(]6b
XMT3ZJ#"<M(,V'6FP?<L\U:RI0A1^E1,5H5M2*J$=#;@;4TSJ%X5+DBEW1*W[%a
XMNQ.UR:*Q@07WNI(T0P!I%KPH6O@B8&1:M)&-+1>^=FL<S\4#I+#2$KM3-F %z
XM5(&1B<E::5NU=])B1$P\CT)NK(VRQ5(+3V9DAHEC;9<M'TDLU9;$R(!KJSC]y
XM*K@AM\0%W+*;O)JMO*VW43GBRMUB&_W1;N(-NCTW\-:^W-MYHS]:W@W8M[ECx
XMVKD%[O*+GE'UZ&VT5 H&DA5@!9CM"W&VBK*&0%LX,QSI*KLE,3" X6);F'%7w
XMN2W&U;C?EMY>W$@Q;AMNN>TXY];DIEN1NVT@FLK%M^8V6[U<?AMNA0O(?;<Qv
XMU][.W(_1;W?,O]VYQ517$5P<-7$5*[+=M[5NX<[<C9( &E%^2P!L0%K(NKDDu
XM;Q/-B?HT-Q??JH$PT'2C;<F(NG=JW%;=I(L[2N[BV[I==XE\7:F+<3+NV)UOt
XM$"3C+MVIP76=KAI8NPK 38Q+-'<%_5,.R!115^&.D1:@/\KCWU4 =T+P\MR-s
XM]7<7*_R+%^8-\(!$(D9XT@9)Q)RVLZFD+% *5#./W=@\B<4&R*S09!1V1L_Xr
XM&8B'I08^98H7RN;8>Z?>5?)R7M/Z-A62C+V]N!?#D@$[8&''8.YE"!H6#;JMq
XM#JL_,<+VH5LC-L32 !AP VH W0(),X#7I=C?ZQ!8+(SU@RZ6^FK?K4!CNP+Op
XM+1<X=G+I6 ,4'XJ=5Z"$S6&$"MD2N@F-K.H:#;$K%)H&^2L37&B358E/+'=%o
XMV?4U9=U7E=VA.C1^O8<LR[RV+"OLLG[HRYK#Z#5F?>$Z1+/N\(E&6@;&9GF$n
XMFZU$;2G.!@GS16>YJ)3UHGJV#?'9;:B'BM>?O5]H HW^H''H90WM @Y@8U8=m
XM&B)&U X%D9Z M)RV$E%:*EJ!.='\\428UB9RS^X#*CAM%:NTBB+4(HN^T-C*l
XMK[Z8#*NV4[3:&?5JE["R<,)3I%*$,%J$!T98031ANM99_*)ZUFMW+UOPOL+6k
XM1T'>^S<V0F(1*SQK(_5R1/?@VT[BSF*$54UG\(R$XMLH1[*MNJ3MWYP3-F8Dj
XMOY10?!U*,DI"23+%)!GQ(IYMD^Q-5<D#LMNP9&]#G)4CZP;)0ZQ5B*3,81^Ji
XM34N1CT1L._J';#/%]P,5\X_8-J@&"&ZSDI')$MNIO_F'[54%X5-M\I$%FD Eh
XM)B/Q:BJ3:M&YN=+H5IO8)$*15*I$+L9)NIAC.AV?](NC-575LE4%)]D;=IHFg
XM )?2D$NJ*S'1G-CMQMG$[2Z^-='VZ$ 3:8_=[^EAR,3@VY2N+09-P\V1C<6(f
XM4Q8EV:#ZQ8:JW2&_MEJ,20E<3,;5N)0UNV9,+LE(G^RI@-*6J;=6=9UV&3;>e
XMN=H8S<VEN4LNS:[B))=R=QPWB"?3_<XQS$O'Q\8?T=1FT?*PWT*M-\KO.MX0d
XM-%('HNY[49))!7?\3L&0%/O4>NI.X_4B@<L5 -7^@O503U()5H0%]C0&/*>Cc
XMDD\D>6)25T@58!I*2%$F!?(H&25HREVG*]&!&!(C;U@, .24[8)>NE,9>9'Yb
XMDWGR4&CR9;P92"729.-\:6DTL:KYQH@QD<U=]??>JNZ'I,5N.=.4C%H<ES'Qa
XM",@(%,-<A3V4%E_/W5^!'I)EUA+4HM;8NC)4QA,<B[Y(JVC3:+R'@PF6CEDOz
XM&4AP8V+"5;II,"'F0-X7WW$?24M^I,P E\DE1RP,6S<SMTG-6XZK)3F[')JCy
XM#5_>EB5,#=P8ZE)VBL-@D0/("$:P)X'0CAF-)M8<T'!Z%(35EI8ISEH.NWF9x
XM+L-E#CEUH[.FX<9Q&2_/94USF^6EJ(HTG5DU)XM3:9L:<QUXRE\9ZM*SL6;Cw
XMRF,-R!I;!BP?YP@D$/1=/$TT'$,<9V=99Y%Q+LJ=SO+R;T[DQ6=NL3-UQCC)v
XM=NZ:V^X,<MJ">N8[D3DPKV?PPB"5$A90%WET.)['3 N77,![5KR5.;@1LW4Yu
XM,%P';<59SCCCI)QMO*+17*KI=.HC#* !;$*QB :M^KQBB7&TBJV<,>I ?^71t
XM(" S%TB:@@9LBK%U#_F)<TVD&V)("%\=. ']9"X,%KN EO..E18<>F=VPBP.s
XM-7J'&TL&NRX@!T2KC8>D(R]I-9PB$0X?GOOTHS:>R=*<\E3M=5ZIR:6_HL88r
XMMB:KIX)7Z+D#HNI\I1BVZ407YO)(8"6/'@ <:$U114C8F3[][GG\GF;##8A/q
XM/%$$C(![L ):8%<8IO)[J,MGI;[46J J#Q:PZ@*RX/8]U;_WI F$"ZM]@Z]'p
XMX+ >P<.BP>4! UC"_^0^I\'Y-A_MLQ-4"ZJNOJYB<+58!_IBL^^O/M8_ 84Io
XMB 3P!9KU7] 6,V 7635"T:R_P+,V S- "I8A/$69#D2BD1Q$#P=T:SCPK>-&n
XM&F(!+6-<EVN'T8;0M>4 1%97H"4 5:TM\( 90# *:1=1BVHM&*"UM Z0O$4!m
XM\.N" *VUM<B!U]@D7*OKA$TYTC7"KC3M>M4M;/PAKVE%03 #]AI?8P]EW1R8l
XM=;-N*P0+6_]K+$FM/W9++M@)^V![ZX3]C<3UPP;7#;NVO&QSO3TD]L,>U:;%k
XM#(!LC'VOHZ<"L-AF(6.'%2P )%S2QR !MZ[)X+H=\-C:2"%A+M#VSF#'T4#Xj
XM?/*/C1#TFF?G@; "!:K %$ "G=1P)("N_;4[AKH@VV";V#:!)[ IBHZ%#A9,i
XMFX,P/! P!)C 4;YC7V1MM^TC+0.9-NS+-6%!4MX0!(0?]H4/63J:98ZHBR!Ph
XM(A+'T6Y%MRAR&X$$P+3CPQSXS5I$,C&CIMT9GS"X2"OXP6DO[L8==4@ Y);<g
XM+$1=#($F,#%N"AU. $H@""0 +&"*CH"Z4 )"( %,@2L0!,3VZF[=T"%B9(?;f
XM'01<!.U. K9[=_?NH3T$D, 1>!A8(&*$!W6!!9KW\W;="F-V6^]W$;S1I@(Xe
XMWD<@K#!N(N"X1P ):#*HFW)7C,MM%+0(?AO?=^-\0Q/4K2Z*MI*2WR!!::MOd
XMO+C#$H#]AACF&YKD[R;3++ZV%##:(\ UHH 8P)-C0*(QX-#[8RAP!@XN,X>Zc
XMT-MA6WKW[;QP+SIC6WL:/-:#TZE^@@(,C ]A+$L#V0Q7=3$%JD#N#@\L@&HRb
XM[::'*<R 9O 9-"SJQ3&> RZF=P(($<\[]3#MU/+6!H+R,U".K+&) 7@W9I+&a
XMT@BA"F!0M6LR KE5-^M. #!\!*" C$!X';BV(MXN@@H\@2] !(Q@$<@O3!ORz
XM]+'$/3/ZB4PAV@>\/\3P"YT X+<<#^"W3GWO*^/0KW9XSJ 9_._J*0$GD*G%y
XM^!=HX4* "DB!(# $9"/3)A+VPMA$.9"X@M/*N+'B$Z-N2W!#%[O#^!B_$43@x
XM"]3NKYT$C  58.%(($AD<+3) NHV*E?EK+SHN'+=G<KEQBP'Y=P[>GOO.DX$w
XMAH#C?ANZVX5W4ET^O!4 T_[2?>$\+/ &G@)T@'W0 =!!!_0'::X=3HI8X!)Xv
XMA5/I ::#EA6 $P 232 (,(%2$58P. P_#Z.;?&?Q\UW%$P 5(!"R\7Y#$UI-u
XMP&%WIO[F4B"<C_,6P<FO.!-@VT5 "AB!?WX%?H,A+^,A(@:$%25PQ1'Z&3?Ht
XM8QR1*W)&3@46^A67Z(N\D4/T+P#*13GR)N6FW*)/C(X^RI% *3_E"L"0X_,Fs
XM,,ZI !5@ D5 I/]P<-[27WH1^ W''$VTY&2.!19X,P\/"]R!._,D ,VQ@#2'r
XM M3\-ZQT<5XJ4BDMA^5862R55_T1-/PVE?D(U0<H-;8[M ;$Q44+"09*"$P!q
XM*7#YYL"4\6.7;:S+#9RBOL."5X \C8U297545X/>0UH!ERX RU0?7/.ZE4 Ap
XM'^,KO:;#=/5]A]**;4(!K%=2)(89@VN2P,H;#4W@>)"4!R[, ;CO^^$J(@&\o
XM;K2-Q3?XR;O@;+NSQW#(>\PA)BUG N3[I@3O6?ZU47LN%]XPB[4C =>^AX1Wn
XM]);M3&"8MW(F<+:?0";?X,"9A0OS<YZ]E8 OKP(G(J /]"=P!70JC7@"R)T(m
XMA)7?G<'-=]+6WWY[P!R:28ZF,UWL3@!2 +J?B"H@MG&W9C?C<!NET%9U\<ZGl
XM0#S/#K;]=A-R\"[>B0!Y9^_PO(XS 9Z;WOD?7#G/0T'92<5#@UF(G<^XW9G:k
XMH:=W ^\&+*5WS#G//;J3=_%-!%)[\%:W-\*7*ZF(BLA7>7\0[KD[E@]O=Y[?j
XMY3D,H.?01+YGZG]N!90[05??)QJ$ *S!HKIBA0+*/W<@!/P&ARZ^&_=Y.-K)i
XM86DC23A6/>)ZZ1TP!@J9U^\#_N.%N#]1)[T&+![COB!3F89@<N@*'97G=N&Uh
XMR5O ,J_@Z;Q\R^\5(KG5M^7&W"#%NV$1;EZGI,7_UN5?H[>W[A\%!7R[V1[;g
XM=GX/J8L:\1NBNXMG[G&/:0NLDQW4A)AF2 Q,]:7HFK$0[R($X][= 1T&A)4.f
XMS^6%%VAOV]T;G>/Y.9^]ZWSKWNQY_L.#=T/Q&UC\G[\"CXYI_V9D="K;"GJRe
XM%[$##="!%B"?W@CS]">OO'SK#RDP! [XD5B\X+W75_==+^Q9N;HU$;[<AU/Wd
XM=1[D(^H@S]3A/;K_!H NT EZJK\N TN+P,<+ IR9M*)G*8W^TD=P\WV+BH#2c
XM;B=,^U2$!?IP/60*I>_>T$'.)PYY#\P]?=C>\Z1> 9#TCV[20SJ(Q^+[/8$;b
XM.@.>VN4X*Y?ML!R^RW+>_M1M.</'Y;\>F&?X\AU1J[?S]O!TG*%/C*6^SV^Za
XM-Z?I2<"EP_1)/]M3N[&]\!.<F6MY"T_,MW3*!_.GO> K/?@N\+T\!7?@6EZWz
XM$Y!_K\EK_I?'^;#[N"?W:L_<;_<5Y_A-_3=@=(H^Z85Y;=]#Z;U60,7M#BTGy
XM[^#!Y !_DX/Q8)[(,SH5\.@KHM^?\J<N\VW[;G_E!5^70PR$[_#5!1"_][I;x
XM"(3X[CWBIX#<_^6OF](K_!%OSJ.WIH??S+Z=:_R9GL^9.C]7^BY\HC=RL _2w
XM*SK/#_@^">UC_+-/]G7[PL_UEQ^S7^\1__;U?-P/\32?P]_]B)_W1[]8JOC;v
XM^^GS_=!^SNDXX(_> 5SP'WUP;OB+P(Q(Z9_<"4!Z*2#IC?Y(U_U7(-)O=&J_u
XMW%&][W?G8YSX$_2-[N>)OO&'W5>\^1?_WZ"S6[+6YMI>.VV+>LY>[[/_O$\ t
XM&-QU;W"Y/1:N1"T!V7:AEDUI!I2W0[O;=O)_&X0$[F@VN&]&X<X,AYO_W07,s
XM_^-]_LU_X+7<0G?YGV_!P7]HE^.:'HXG #GNP^WXEC[?>?R1'V(Q!;_[/SN_r
XM1>H[=*  /)!H_#KRY^C 7_C7\<8=^&^1^@X=*" /)!J_COPY.O 7_KQ<G?M]q
XM.M[AF?WR=?:YVY!+_^6/Q:]XX+]%Q!OY?P'ES]S5=_X+6@(#8(6[AG(]8/U_p
XM:1;PV\23^<AMYO4%FI=,2)Q1UG'2#<#'//WVW[Y>+.'O<[^_M?G5^]^* W^?o
XM>YQ.W+1?#X_>R@_7R/%:FVJ-.*Z!%SJ@SAJHA*$#6#D(N!)IA?P;<PX.V9A"n
XM1;J=3P/7P L=<"1TP![2 =X[NU>1L+ N]=_6!@&0!U0 +$"# KJPHU,A6 54m
XMH( \X)-T0!X8KN*D"\N /'"S3D47E@%Y("2<"A62!V[6"E A>>"2CVWO[\,Yl
XMNZ@/_S#\2%SP*K#ERUX:AP%Y(**&?X,OPT& "LD#,, %H'"F@6L\O\7?_+H<k
XM.J1W%9('8( +H%D7#FWJ._I -%1&K@P)N.9(7/ JL.6!6!KW27D@HG)_Z)#>j
XMN[ ,R ,PP 70+.)I-L>V]U]ZZKL+RX \  -<  IG&JZW!8;_[OVCFD 5V/)Ei
XM.HW[I#P0^<&_^^?;Z;T+RX \X)-<  IG&KCF#B'VL/!0=$H9@ -]8=4KDSF0h
XM:"S^]8;A1R*]=V$9D =\D@N@61?.0M\9%7+ACL0%KP);ODRG<1B0!R+_XJ[Pg
XMJQPZI'<5D@=@@ M X4SC5*B0/."37 #-HO?0(;UW81F0!V" "T#A,YJ7:_A,f
XMO\&[L S( S# !:!PIG$J5$@>\$DN (7/:%ZNX4\_O9?A(* +RX \  -< ,U:e
XMW!5^E<MP?:="\@ ,< $HG&F<"A62!WR2"Z!96.54=&$9D =@@ N@68N[E[_Vd
XMMZV^44 7E@%Y  :X !3.-$Z%"LD#/LD%H' T@%5.11>6 7G )[D FK6X>SG%c
XME_<R7"EN^LZ^X!DE+U?GL%\FI/?,4#78*QZ8:L<?Z1]^9(VLD36R1M9906Z;b
XM#U;]>UUU\]&?LKK#S@;D6P-L /6I 3B!#K8M&U #;L#T_=76UUA7A>N+K)%Ua
XM1:"Q7T!N;Y5#.HLH3A>&EKGHA=:NG_=DMR@-[:+MRPZ]0@!\97?H %;!=R@<z
XM<MG_0&B'Z (6LXJ6S#[@)AJ!U6P4K:)3](IA8 4P!8) BY>T%7C<7%$Y"\E3y
XM(9*XLP,BSU+9/0N Q:B?)<#?,-!R61:<@%WP\SJ'A4C1#K!U>$<?;3'D7CKXx
XM$O'@-TLHID 0:/&2M@=?6E D2''M0138<MM\;$2$(>I-HL$74CT/_QZI&"A(w
XM=2K431*ZG=.N #>+,OK#ND91G$>&4!F -3QIWM,HGAU)7KN N2 ?,/%9:@%3v
XM( BT>$G;(E!&?]C$29%KE@\BB=I <2#FG?V.%*.H1HRB&C&*:L0H2DHB#U<\u
XMB77;E3RXLUC6G:46, 6"0(N7M"T"9?2'"7*+XW$NGL=<TP5L5U],)O/Q\9/)t
XMP[A1]>,=DHNMFS+&;LUNN]U%;0[>]&2*-LC0>)8E9&J\W@:E0W889ZD%3($@s
XMT.(E;8M &?VA07.3]9=:!2(C"TV^JEF0RQ; CZ9 $&CQDK9%H(S^,$%>:3]^r
XM WN2!;0 5C<%@D"+E[0M F7TAT1#+O5I"Y@"0:#%2]H6@3+Z@\ #=;0T0N[Cq
XMWDQ3[XPC,^P9,N$2'?C.:5> FUT!XGH/39!9=LQ2HNUBFH)C#BPJ"[T^H"8Ip
XMJC0H(SNH# O=AW/R,?W)_:26=#UA&EUE*U6EEK4UHN)L9Y%5*3:IECRXJ^?Ao
XMWR-5_RXTA_:!(L;V(FMDC:R1-;)N" 0K=+#JW^NJFX_^E-4=-B/<@)808IOOn
XM\K !-> -@@0;4 -Z]4Y U@K!^AKKJG!]D36RK@BF$/_*T"U*0[MH^[)#KQ  m
XM7]D=.H!5\!T*AUSV/Q#:(;J Q:RB);,/N(E&8#4;1:OH%+UB&%@!3($@T.(El
XM;04>-U=4SD+R5(@D[NR R+-4=L\"8#'J9PGP-PRT7)8%)V 7_+S.82%2M -Lk
XM'=[11UL,N9<.OD0\^,T2BBD0!%J\I.W!EQ84"5)<ZX.^ ,$:Q+D63WP!@A4Zj
XM-B+"$/4FT> +J9Z'?X]4#!2D.A7J)@G=SFE7@)M%&?UA@A EWDDV4UV *9Y^i
XM66K@;&<Q%SY>&3M++6 *!($6+VE;!,KH#YLX*7+-\N&)"W$HAA]<$^#0MC3Eh
XMB-.4(TY3CEA_3,E1.HEUVY4\N+-8UIVE%C %@D"+E[0M F7TAPERB^-Q+I['g
XM7-,%;%=?3";S,29;BQ%73=)4X@91=),RQF[-;KO=16T.WO1DBC;(T'B6)61Jf
XMO-X&I4-V&&>I!4R!(-#B)6V+0!G]H4&[+,K!:5> FUT!XGH/31"?C&OPFV*,e
XMJ)#14/N=E<+M$7TYR4>: <<CRE%:0(1CJI4KML.H\I0GT>V/ A").W( QR?Ed
XMQ21; 36D$M3SJB/):Z)%+B@&_\9&M3&?R6L7('EP5\_#OT>J_EUH#NT#14R^c
XM#NB,NT+LBAFPS!)AZ.$!AUY<N  TX -^@Z&6@E_@T(N+CQ'0&7>%.*9/ CB+b
XM"SK-WV[Q<-NN%)M4ZP$Y<!;RTSR=<^417:5:N4(9L,D7./3BXF,$=,9=(8[Ia
XMDP#.XJ)\II R_YFDDV$8"^E4)".!*E AOH 5$.?Z;H_S !!R-%P &O !ZSH!z
XMZ-,6, 6"0(N7M"T"9?0'BP-.[,!>T"(XVXBX@+F0!NX,J"P,!P--P(<976E:y
XM *N; D&@Q4O:%H$R^H/)D1PM@!]-@2#0XB5MBT 9_<'DR#HJ;@0JM;G$ VR$x
XM9_ ?W=K]I+QSV:;,PP:DIGL3=#4@@"$ST); D)G2NX=_!@OXSL;C9QY3QR:9w
XM&AL2J (5X@M8 7&.3<Y2"Y@"0:#%2]H6@3+Z@\DICS9M6M2%7EP^(C6S/O3Bv
XMXL'BWBMB$'SOJ7;5S4=_RNJ1P'UL0$FH6S: ^G0[ 5H'P8^O1M8*P?H:ZZIPu
XM?9$ULJX(''L<5>MK':V=Q;06V,Y:(*#LXYF&<A8^?=<K^WCBTW>]LH\G/GW7t
XM*_MXXM-WO;*Y2<EHUR*88I/JM2 U&E09:DE]%F:F(9_-L<=1M?X+<T!D.XMIs
XM+;"=M4"8 ]AZ([J+-)2SYI++7MF5QJM";)#4D>3UX\([1PF?RNR576F\*L0&r
XM21U)7C\NO(.S/;:U%@C^VF4!(IYK W)6GSV>98A&6S:(/4UQM@K#.PVJ#+6Dq
XM-.2S.?8XJM8>25L8.K4 L$OV%_!(VL*I'Z4TE+/FDLM>V<=S+KGLE7T\&59Op
XM>=A'B6'UEH<M&";@]A#!%)M45UBIT: @ZQWP-3 S#?ELCCV.JK5'F@,5=617o
XMCY+]!3S2'*BH&]%=I*&<-9=<]LJN-%X58H.DCB2O'Q?>.4KX5&:O[$KC52$Vn
XM2.I(\OIQX1V<[;&_@$?2%H:.8P BGFL#6E(:\MD<>QQ5Z_+KKYW%M!;8S;K\m
XMHNSCF89RUEQRV2O[>,XEE[VRCR?#ZBT/^R@QK-[RL 7#!-P>(IABDVHS+#4:l
XM5!EJ27T69J8AG\VQQU&U+K]S0&0[BVDML)MU^9T#V'HCNHLTE+/FDLM>V97&k
XMJT)LD-21Y/7CPCM'"9_*[)5=:;PJQ 9)'4E>/RZ\@[,]]A<HO_[:90$BGFL#j
XM<E:?/9YEB$9;-H@]37&V"L,[#:H,M:0TY+,Y]CBJUDSP4LR!X5!1]74*J]9,i
XM\%+,@>%044>V[+!$U9H)7HHY,!PJZD9T%VDH9WVKB2TYO"K$!DD=25X_+KS3h
XMH,I02^JS,#,-^6R./8ZJ-5C  ]J"/ZD%@%VROP!8P /: C]L1'>1AG+67'+9g
XM*_MXSB67O;(KS8U,V-,49ZNPC]>@RE!+2D,^FV./HVH-%O" (]06_$DM .R2f
XM_07  AYPA-H"/VQ$=Y&&<M9<<MDK^WC.)9>]LBO-C4S8TQ1GJS!F 3/+4$M*e
XM0SZ;8X^C:MVLGA[>40L NV1_@6;U]/!(SDI#.>M;36S)X54A-DCJ2/*:@N*=d
XM!E6&6E*?A9EIR&=S['%4K4&VOW86TUI@F^R0G:US5AK*6?CT7:_LXXE/W_7*c
XM/I[X]%VO[..)3]_URN8F):-=BV"*3:K;P-V1&@VJ#+6D/@LSTY#/YMCCJ%J#b
XM[#D@LIW%M!;8)CL,8>N-Z"[24,Z:2RY[95<:KPJQ05)'DM>/"^\<)7PJLU=Va
XMI?&J$!LD=21Y_;CP#L[VV%\ 9/MKEP6(>*X-R%E]]GB6(1IMV2#V-,79*@SOz
XM-*@RU)+2D,_FV..H6L<,;6'HU$* M$35.F9H"Z<.KE4VN6;9N,-EKVR(O3W*y
XMD,-JUWW6-\4=.? %8H:V,'1HC>B1D>M.P...'/@",4-;./4<J*]36+6.&7.@x
XMHHYLV6&)JG7,F ,5U6!SIHG=[K9U&2)W<4<.?(&8,0<J:H3<UF3DNA/PN",'w
XMOD#,F ,5-:SD0'V=P@:V&/#7SF):"^QFW:^Q]49T%VDH9\TEE[VRC^=<<MDKv
XM^W@RK-[RL(\2P^HM#ULP3,#M(8(I-JFV%MNB096AEM1G868:\MD<>QP-;#$Pu
XM!T2VLYC6 KM9"X8Y@*TWHKM(0SEK+KGLE5UIO"K$!DD=25X_+KQSE/"IS%[9t
XME<:K0FR0U)'D]>/".SC;8W^!?BVR718@XKDV(&?UV>-9AFBT98/8TQ1GJS"\s
XMTZ#*4$M*0SZ;8X^C:DT8<,X8T!9SH**.;-EAB:HU8< Y8T!;S(&*NA'=11K*r
XM67/)9:_LXSF77/;*KC0W,F%/4YRMPO!.@RI#+2D-^6R.K1"SH+/(:):H5->%q
XMC>@NRE!SWM9E"+QTOPD(0<I02RI#/IMC*\0&6Z&<14:S1#\P"(:%C>@NRE!Sp
XMWM9E"+QTOPD(0<I02RI#T1-9(VMD[7[F@MGRO:?:53<?_2FKT>#R%;'7QR6Do
XMA+M5!V7 ]/W5UM=85X7KBZR1=44PA?A7AFY1&MI%VY<=>H4 ^,KNT &L@N]0n
XM..2R_X'0#M$%+&85+9E]P$TT JO9*%I%I^@5P\#-D .G0B1Q9P=$GJ6R>Q8 m
XMBU$_2X"_8:#ELBPX ;O@YW4."Y&B'6#K\(X^VF+(O73P)>+!;]8',PD@#(H$l
XMZ<;R02Y@+LB'7(L]7,!<2 /I(O%<A".A  3'&YH;"D-P7 =C.[P%1Y/0Y?$^k
XM)=JN)Q;T((^%7A]0DQ0)CHL0\:<W3 $/L%]WC @Q0!:H+7VZ"#*ZC\SHN4 &j
XM')K@N Y\6P$0I8O@1\3:1?#>"5<!"(:+L'F.A (0'-<ATRL,P7$1W#;=Z. *i
XM $L+CNO MQ6 X*CK$2/>B[6+X+V1-;(F@VW@[N  5DU]777ST9^R^E73 !NPh
XM$JQ/',0)/6U7=[OI^ZNMK[&N"M<762/KBM!]V\#= ;]O(1&*7[R00=%_&I!.g
XM .MJJU_),&1-* 9RORJ4-Z"&)?M":]?/>[);E(9VT?9EAUXA +ZR.W0 J^ [f
XM% ZY['\@M$-T 8M914MF'W 3C<!J-HI6T2EZQ3!P,^3 J1!)W-D!D6>I[)X%e
XMP&+4SQ+@;QAHN2P+3L N^'F=PT*D: ?8.KRCC[88<B\=?(EX\)OUP4P""(,Bd
XM0:HI=@41#A51M%3$1"3L(I3PJ-6N.ST-J/];JRND,,3A;\=BU&K7G9X&IC'$c
XM/*2SB.)T88*8BW#M0=RU9-A9M(&[ VS;P-TQ<VKX;+YNDVAL"\0=-D!YV/3Rb
XMX3+&H /Q."&*I\TH&N*D* 9;FVQ;4[)M3<FV-27;UE0DII)QBA)?R8,[BQ$?a
XMJIG/0]YU=&(NI3Y <2".'Z08135B%-6(450C1E%2$GFXXDFLVZ[DP9W%LHY!z
XMVVEY''H8CEGTQ60R'V.RM1AQU21-)6X013<I8^S6["06FC/(T'B6)61JO-X&y
XMI4-V& SZ+F]CI)NB 72BP<A(-P&08T/M8W9Z&I!.>4"? *RY=G1GKIV6QW_*x
XM!6Q77TPF\_'QD\G#N%'UXQV2BZV;,L9N UEBH3F##(UG64*FQNMM4%YCAY&@w
XM]=PVSLL5.2]CY+Q,C@UU.)N0.ST-2*<\H$\ UER+K47E),<G67Q9:@DR?\FMv
XMS64AIN3GDVTR"VC.K_*L,#)<?%'ZB:\BRD8YE*@+&=7!/\L\N1G[7Z=&5XA;u
XMDMP 6?YN'\%EM+K\AX]<!X29<U(9I[[ JBR5<>H+K,I2&:>^P*NLQ J$5GX<t
XM2OYXIH>1-]S$U%%Z;C=3RCN7W_"NQL(2X"5'X\Y,@4(2%O8P97PH08 -G(')s
XM<&':P'HZ6)32Z=  +-,9B,89F P7QH,T@=\ 5R3]W]3/H\TMP)4),X_1?QJ8r
XMQJ:=E:I4<@=7ZIA&6CM] ?VG >D$L$3RNXP;VT/K%?$+-QZ*%9>0"ID%-"$Cq
XMX'KX6C)JGKN2(T1;'&8&> B?DD>MZ6'D#3<1L.J7S(1K(#KU;_[.GHK^T\ Tp
XM/@IPI8$$CI:<<M\-'W!9$$3CB&@\<^'@RKU3C4;!09M;P#IQ(,ASPS,7;M4#o
XM++C20. M8,4F&B>^,3/ 0_B4/&K-$G?J=_94])\&IO%1@"L-)'"T9'&U=/F n
XMRQ(Y*6/?:!%< U?NG6HT"@[:W +6B0-!GAN>N7"K'F#!E08";P&KANS,2V58m
XM !["I^11:Y:X4[^SIZ+_-#"-CP)<:2"!HR7;9K?,!UP6RDD9^T:+X!JX<N]4l
XMHU%PT.86L$X<"/+<\,R%6_4 "ZXT$'@+6+'):%XJPP+P$#XE7VG$=8-)#\P,k
XM\*QZC<('6D +4 !P1:'_30 ]0>#*A)G'Z#\-3&/3SDI5*KF#*^&L/=X,MI-9j
XM=GH:D$X 2R2_R[BQ/;1>$;]PXZ%8<0FID%E $S("KH>O):-F!6TW((C&$=%Xi
XMYL+!E7NG&HV"3H6W@!6;:)SXQLP #^%3\J@U/8R\X28"5OV2F7 -1*?^S=_9h
XM4]%_&IC&1P&N-)# T9)3+H&V&R(G9>P;+8)KX,J]4XU&X=L UHD#09X;GKEPg
XMJQY@P94& F\!JX;LS$ME6  >PJ?D46N6N%._LZ>B_S0PC8\"7&D@@:,EBRL%f
XM;3=03LK8-UH$U\"5>Z<:C<*W :P3!X(\-SQSX58]P((K#03> E9L,IJ7RK  e
XM/(1/R:/6+'&G?F=/1?]I8!H?!;C20 )'2[;->9EC0!!QG3+VC1;!-7#EWJE&d
XMH_!M .O$@2#/#<]<N%4/L.!* X&W@!6;B.L&LU2&!> A?$J^TH"$SIP>F!G@c
XM6?4:A0^T@!:@ ."*P:S.@-@MP)4),X_1?QJ8QJ:=E:I4<@=7A!7,NQEL)[/Lb
XM]#0@G0"62'Z7<6-[:+TB?N'&0['B$E(ALX F9 1<#U]+1LT*VFZ(G)2Q;[0(a
XMKH$K]TXU&@6="F\!JX;LS$ME6  >PJ?D46MZ&'G#302L^B4SX1J(3OV;O[.Gz
XMHO\T,(V/ EQI((&C):=< FTW4$[*V#=:!-? E7NG&HW"MP&L$P>"/#<\<^%6y
XM/<""*PT$W@)6;#*:E\JP #R$3\FCUBQQIWYG3T7_:6 :'P6XTD "1TL65PK:x
XM;D 0<9TR]HT6P35PY=ZI1J/P;0#KQ($@SPW/7+A5#[#@2@.!MX 5FXCK!K-4w
XMA@7@(7Q*'K5FB3OU.WLJ^D\#T_@HP)4&$CA:LFW.RQP#@H $A4.?M0BN@2OWv
XM3C4:A6\#6"<.!'EN>.;"K7J !5<:"+P%K-@$)'3FI3(L  _A4_*5)ETWF/3 u
XMS #/JM<H?* %M  % %>R-5X&Q&X!KDR8>8S^T\ T-NVL5*62NS;0Q\91>[P9t
XM;">S[/0T()T EDA^EW%C>VB](G[AQD.QXA)2(;. )F0$7 ]?2T;-"MINH)R4s
XML6^T"*Z!*_=.-1H%G0IO 2LV&<U+95@ 'L*GY%%K>AAYPTT$K/HE,^$:B$[]r
XMF[^SIZ+_-#"-CP)<:2"!HR6G7 )M-R"(N$X9^T:+X!JX<N]4HU'X-H!UXD"0q
XMYX9G+MRJ!UAPI8' 6\"*3<1U@UDJPP+P$#XECUJSQ)WZG3T5_:>!:7P4X$H#p
XM"1PM65PI:+L!04""PJ'/6@37P)5[IQJ-PK<!K!,'@CPW/'/A5CW @BL-!-X"o
XM5FP"$CKS4AD6@(?P*7G4FB7NU._LJ>@_#4SCHP!7&DC@:,FV.2]S# B2KE/&n
XMOM$BN :NW#O5:!2^#6"=.!#DN>&9"[?J 19<:2#P%K!BDW3=8);*L  \A$_)m
XM5QKLTYG3 S,#/*L>8 &1KPW=4?L;M1 M(KRWA1;0 EI "U  ;:"/B07'>QMCl
XM[S'!;PTJ/<3>^=?:0HMDEG7I.F5,R)V>!J03P$(!\@FKO*?H,2:5F[V>%;',k
XMNN :$9"0N80(X#^ZE0&A/J6&'P]DB%:0P(7;A.?8?"!!C43;:J(Y/,?F RFNj
XM07-L/I @(3S'Y@.9KD&S_@!KR<^X+!<?\A@'CFC1:S!'YM0 A>,6K&9]+<RRi
XM+D0G&C:SKEJTI4DYV:V@?.>$2M*.Z9&Q"__*LH@ /OY3 !;-:@&4@E_ ""V#h
XM1Z"8XM#11*810AT +GK1\>-HJF4&'X*B?M+8E+Q0*=)X?PT+&"7MJ)ITJGO2g
XM4?H-K/\JC:6O=,/(TDF/YXI>.ZWDP_28!EEE6OZU8<I+]2QO'&;3V=M-VTXXf
XM[5-75LOB& >"\W3IK7DV\W0T]JDKJV41:@#U&PRU4T=KX[32Z.<#[3  M,GAe
XM97;97C+H0VFH$74868NK8\K;UT6-.](#V,"2$/7.$'B@=%6'EIA^L,B:86@+d
XM5DU]777ST9^R>B30 !M@5JR/#: ^(58F#%#F$1.F[Z^VOL:Z*EQ?9(VL*X(Ic
XMQ+\R=(O2T"[:ONS0*P3 5W:'#F 5?(?"(9?]#X1VB"Y@,:MHR>P#;J(16,U&b
XMT2HZ1:\8!E8 4R (M'A)6X''S165LY \%2*).SL@\BR5W;, 6(SZ60+\#0,Ma
XMEV7!"=@%/Z]S6(@4[0!;AW?TT19#[J6#+Q$/?K.$8@H$@18O:7OPI05%@K3/z
XM[PI.NP+<K +@GOJT!7#:%C %@D"+E[0M(H,)1"Z\U(I#+L*U^YIA:(M%JFN_y
XM ,/0%AL188AZDVCPZ<:P_5$F$2M5@14@KO?0!'$<+8"#:DJEB7]5@TX=ML.;x
XM0SMWU%H%QE5_V,1)D6N6#T]<B$,Q_.": (>VI2E'G*8<<9IRQ/IC2H[22:S;w
XMKN3!G<6<4H.%I%GJ4:"(+T4!7!.KU)J/X#>2,M]-?K/,-@'E #,X-24VL5;Vv
XMLEZR97R)3?BE?",BNMW;]H<)TO4T2'O=FF/3+_2324FEE\YHT)1^66K@;&<Qu
XM%^1#F,YI\MH%2![<U?/P[Y&J?Q>:0^O4H34'<J SI6RO,L5%(.EAX K;.A4Bt
XMDY)*+YW1H"GK8\6E&.*"ZSQ'+M$LB(AN][;]88+,,@W27K?FV/0+_23 #$Y-s
XMZ9>E!LYV%G/AXYE$A?^C$)]EH]BD&LF8*'GM O2 '-@6AO>O?:9Y:IN \J2Dr
XMTDMG-&C*C=6Q%&\5&%?]88+<XGB<B^<QUW0!V]47DTE#59"%"32>90F9&J\Wq
XM2R4YJL"XZ@\-.KI"W!)X,#"<;9J45'KIC 9-696E,DY]@=Q5RTAF7TEBJL"Xp
XMZ@_XQ3\.3DV9+4E,%5!R**,_*,CIF%JJ@"+K#PIR.J:6*K "&DU_.#'9DL18o
XM@7'5'_"+?T3A;X5CJL:SO'1&@Z;,EB3&"B@YE-$?%.1T3"U60)'U!P4Y'5.+n
XM%5@!C:8_G)B]BJ+0BGA<+E_2,&0SSTC<]BIR*3OB<;E8)DU)W!!E3H:5[3&#m
XMU$>"\M<.",.3+/)I_W.I==).9!,1.0J">EX=S_0P\H:;9$KR]36^YJS=4@7&l
XM57_('*KG8#BVP:DI<]9NJ0)*#F7TAT1SE'9+%5!D_2'1'*7=4@560*/I#YJ)k
XM8I-JVY.?^'=G"3"#4U/6885?.6>96V^O-.29 :RCX<291H#I:)D.\5DVBDVJj
XMD4RS:%#I(6^@K  W!K*99SSB.&.]H];%*(NZN-#0O %N#&0SSTC<.I*\)EKDi
XM@F+P[\XR*;.99_2!8CH_S=-)F<T\XX.=L!.55?]>5]U\]*>L'@G-PP;8@)80h
XM8ILO];D!N:]M*=_I^ZNMK[&N"M<762/KBM!])^H+K5T_[\EN41K:1=N7'7J%g
XM /C*[M !K(+O4#CDLO^!T [1!2QF%2V9?<!-- *KV2A:1:?H%</ S9 #IT(Df
XM<6<'1)ZELGL6 (M1/TN OV&@Y;(L. &[X.=U#@N1HAU@Z_"./MIBR+UT\"7Be
XMP6_6!S,)( R*!"FNI19$JPT0"A;6$"4IP')XQC5=\(';T0.FBF0Q'3U #&))d
XMH](#!/6\(EIMP">JX9'GI;M[Y3UB;,,D&ML" 3: -+.8G8J#TZX -UN<98,Mc
XMKJ\&ZN'T (BJ9MC,?-V3*EIQFC)#71L5KU?\R.9W+*  ^815WE/T&)/*S5Z;b
XM 5PGH)!-P A-*H$N$D=?*6Y]2XA!<JG%RX&TQ42Q2)I_)'R">EZ)HQL#G,PEa
XMFQ,RR-3(B ",M62^<T(5'H6Q6R8_F;9<?,AC_)8.;:Y*9OYLK]!_&I!.  L%z
XMR">L\IZBQYA4;O;Z+,0RZX)K1$!"YA(B@/_H5@:$^I0:?F0#,H>D-0Y&8J.6y
XMLU]8XJNGVD7%3['5#J27<\WBUK=\-0;YW&R)B'G:/N0Q#ARR)GG* !S #W/!x
XM#0 .-P58\4#2;ARRF F[ 6CFL"B608YE\OB&+/<@\/6+ !2P#__<"2R1T4$4w
XMH)D>^-G/L0S  ?PP%]Q ABH9V\H@^T5CDR=]B2X.&*%IN0>!KU\$H(!]^.=.v
XM  2\@&VZ1+BNY"D#<  _S 5)[1:@(H19[D'@ZQ<!*& ?_KD34+OE6 _4.G 5u
XM0]Q"4['DJ*\<EP$X@!_FPNPPU*2EFS!JL($E(>J=<617M:E"LTZ]YR*%M5HWt
XMDF-;I57*F;US8&EF;O5IH;Y203VOIL8L?<]4-1\)RU FX,"%15'T,47\J2N*s
XM86 JSUVH#'\[7]2+?I(Q0H))0:9B08NX.9^A6O  <J"X+H W$Q-C0V&8&WC^r
XMMI8$JGEE 4\7WW.8^:UQ9//YC#L#R6\.SH"*$(;!:QD\(E\5*J"&5()Z7KDLq
XM:Z-NH!J!GVKPAN2JFXA:'J$5TRMG:"_)#Z<[V5G^*:X)?1'"0^,1T[<6(ZZ:p
XM)&[+@BO) 1S?* VU0)G7S[$,P '\,!<"#E(;*(8:48Y2L\*/;T@2O_$T2SC*o
XM"IHUF-:)\R D+4"_4FD7QB@G,V+RF_R90"<W*OY$!NY53Z>%F5P^-W\2&CPCn
XM<4M-]R;H@@U9+"W8S,\L.Q)/,R#3-H]-ZB4,?+RQ]TR[X<I[Q-A&#ER"X%-2m
XMEVJ$M#UWA?>4=>9S"!C!D&&5A]83=.Z5FFT/]%U!*&0%S5*\YM,(L.V!7I7+l
XM8Q9L"Y4:N0_T75$#VD(=P/& PT'+.O-I!)#[0'?04GDZ\(&A9:HA@NUAU;_7k
XM53<?_2FK1P+>L@$WH"6$V.:;$J")K08)(=9O^6IDK1"LK[&N"M<762/KBM!]j
XM":PIQ+\R=(O2T"[:ONS0*P3 5W:'#F 5?(?"(9?]#X1VB"Y@,:MHR>P#;J(1i
XM6,U&T2HZ1:\8!FZ&'#@5(HD[.R#R+)7=LP!8C/I9 OP- RV79<$)V 4_KW-8h
XMB!3M %N'=_31%D/NI8,O$0]^LSZ820!A4"1(<2VU(%I#AX4U1$D*L!P>@$H7g
XM?.!V]("I(EE,1P\0@UC2J/0 03VOB!:YV(A5:0W?S#9,>:F>Y8W#2<SH- X@f
XMS2QFI^+@M"O S19GV6"+ZZN!>C@] **J&38S7_>DBK[($AD<HQS%:<H,=6U4e
XMO%N2->L[^815WE/T&)/*S5[;\%@F1(!2P A->(LN$D=?&6]\2XA!<OO1MX08d
XM).=ACF.VQ+B^)<0L)HI%TOPCX1/4\TH<W1C@9"[9G)!!ID9&!&"L)?.=$ZKPc
XM*(S=,OG)M.7B0Q[CMW1H<U4RR[HMB?[3@'0"6"A /F&5]Q0]QJ1RL]>S(I99b
XM%UPC A(REQ !_$>W,B#4I]3P(QN0.22M<3 2&[6<_<(27SW5+BI^BJUV(+V<a
XM:Q:WOJ4V?V;<O-5$LV_Y:@SRN=D2$?.T?<AC'#AD3?*4 3B '^:"&P <;@JPz
XMXH&DW3AD,1-V ]#,85$L@QS+Y/$-(0)"@ E\@2( !>S#/W<"2V1T$ 5HI@=^y
XM]G,L W  /\P%-Y"A]K*Z$29^T=CD25^BBP-&:"("0H )?($B  7LPS]W B#@x
XM!6S3)<)U)4\9@ /X82Y(:K< %2$,$1 "3. +% $H8!_^N1-0N^58#]0Z<!5#w
XMW$)3L>2HKQR7 3B '^9"P#E1VRJL@3K)4P;@ 'Z8"P'G1%FKL ;J)$\9@ /Xv
XM82[,#D--6KH)HP8;6!*BWAE'=E6;*C3KU-RD9(S32F.M[&6]9,OX$INPG+1*u
XM.;-W#BS-S*T^+=17*JCGU=28I>^9JN8C81G*!!RXL"B*/J:(/W5%,0Q,Y;D+t
XME>%OYXMZT4\R1D@P*<A4+&@1-^<S5 L>0 X4UP7P9F)B;"@,<P//W]:20#6Os
XM+.#IXGL.,[\UCFP^GW%G(/G-P1E0$<(P>"V#1^2K0@74D$I0SRN796W4#50Cr
XM\%,-WI!<=1-1<ZZW4C<1]=5XZ%H*PH6:>"2;Q4$$G.BX(P=PO)S,N<)%W<0Rq
XM9M0S[M7QR.'%X43''3F X\O)&7@#/A!:48R@K/ON!?_N+/\4UX2^".&A\8CIp
XM6XL15TT2MV7!E>0 CF^4AEJ@S.OG6 ;@ 'Z8"P%',;[BQJ@FB9N-UPPX7CC*o
XM"IJU%.E8?FH!^I5*NS!&.9G7U&1>4Y-Y3=%B IW<R,A'<1J2)9T69G+YW/Q)n
XM:/",Q"TUW9N@"S9DL;1@,S^S[$@\S8!,VSPVX9<P\/'Z[$K-M@?ZK@A'Y2-2m
XM3VH%("MHEN(UGT: ;0_TJEP>LV!;J-3(?:#OBAK0%NH C@<<#EK6F4\C@-P'l
XMNH.6RM.!#PPM4XVLD?7[U MW0!L=:U?=?/2GK$:#T\?ZP 3F:P-L $Z06^ANk
XM^OYJZVNLJ\+U1=;(NB*\ %"A%^Z -OH4+^"%BL>O=WYYP!71+/S$!: !'Z"5j
XMQ./7.[\\ (0<#1> !GR 5A*/7^_\\H!#+RY< !KP 7D7?'YN'W+HQ<78R;O@i
XMDRI^U+'P!= _"G@!H**/?=2Q@#L\ZMK(E9_B!:2 L:, ^MA''0MZX0Z@ -R1h
XM*P-*'_NH8P%WY,JQLP<4P*53?A!U['C4M<%_:M:=0>9C1P'P<12 LB!J0/$(g
XM>T !C 3A@ ( %@]0+0&%#>X!!< &GP1P%B* ICT\@28P=MB@3P472* *5(@Of
XM8 7$^=AA@WU  8P$2*X V*!/16@7 Z*"@'Q7?2H##!@['J$/*( GD9R% PJ e
XM/#Q M024B[ '%(!'$ Z(?<K( 120![!*"  T (L/N 6 Q0/T71_[J&4 JYB(d
XMK]\$3 0(X -N 6!E#!30QSYJ&< J)N+KAW,L$%!.PAY0 &SPT L10-,>GD 3c
XM&#MLL.LA@2I0(;Z %1#G8^<D] $%X!&$ PI  ?ON9V"5/(!53,!'R!S!X@6 b
XM"LBF1?1"S?H4+T !L$')!&ABP-CQ""CKA^"!L7,1^L!O  $O %08-O=$L&YFa
XM6YL4F66GIP'US^9)>'QZ UA%))^ P"U/YL@)<&PS<DE#S(L *D('"L J!FHNz
XMG $4@%7L9K7KIYTA"= !*+W[\*%G9!K7HS.H@!?P&_@X"G@G?HQ? )HO@/Y1y
XM0(KT+&< !>"!%) "L$H/ #1(H I4B"]@!<1Y0/$(>T !C(2NAP2J0(7X E9 x
XMG/?I8/$"0$65?Q+ 68@ FH#.N..$"G@!"L C] $%\!9DV4X7)Z'CG?@QS9 "w
XMQHX"\*GK!4OFNQ: S$% 94#F8Z<//%ADW3XE#PY@U=3753<?_2FK3P*XO '6v
XMYS3<K1@00$^L#)B^O]KZ&NNJ<'V1-;*N"-U7\I2+74N&G87DD1JY%C)+'C/7u
XMH$0PS"Q#+:G/0B@1C*R1-;)&UE]+9;'JW.NJFX_^E-4GH:?MK1$+0&O #4!Wt
XM-H& UH#I^ZNMK[&N"M<762/KBM!]YX!II0-WIBO, <ES9PZ"Y+DS74'RW!EMs
XM)'G>0J[%'EUA#D@>3OHV#H+DX:2+1QM)'BFX>3Q__1/;.=!<S '32@<XZ>+Ir
XM"I*'DP+S\BAB;"^R1M;(>@LB&5;=JC'"VMJPPS=6%]^/, .:A_4Y#3;@!OBDq
XM&F #Y-8,,*"^&EDK!.MKK*O"]476R+HB=%\D8RX.X@NM73_OR6Y1&MI%VY<=p
XM>H4 ^,KNT &L@N]0..2R_X'0#M$%+&85+9E]P$TT JO9*%I%I^@5P\#-D .Go
XM0B1Q9P=$GJ6R>Q8 BU$_2X"_8:#ELBPX ;O@YW4."Y&B'6#K\(X^VF+(O73Pn
XM)>+!;]8',PD@#(H$Z6\P%T@F70B.-S0U%4;BN0A'0@$(CKH>WP5'D]#E\3XEm
XMVJXG%O0@CX5>'U"3%,$4\ #[=<>($ -D@=HFGHO@1]*(0Q,<=;UV*@"Q=A&\l
XM=\)5 (+C.G1OJR0X+L))5  =7 %@:<%Q$3;/XA$<=;UV*@#!<1U._H46:Q?!k
XM>R-K9$U]B8)GA&S6N@[@ 58=8UUU\]&?LOI5NX:UQ5MP-4R8#<O7)KB&Z#M]j
XM?[7U-=95X?HB:V1=$6BLR68#(.$OL !GS6_\S6^PH) !#U"HC()^&\-1)@Q.i
XM@PR@@( 29"7#D#6A&,C]JM D:W]-(?Z5H5N4AG;1]F6'7B$ OK([= "KX#L4h
XM#KGL?R"T0W0!BUE%2V8?<!,U0B;]08C)-%L,N1<&OD0\^,UFX!\L9R%Y*D02g
XM=W9 Y%DJNV<!L!CULP3X&P9:+LN"$[ +?E[GL! IV@&V#N^H$S+I_X&QX-%Bf
XMR+UT\"7BP6_6!S,)( R*!.D+K5T_[\G:8!%!7M1$$W@/ X\#XU$2X82:P'L0e
XM YI%D&8P@<B%O7 NPK4^R&2S 9#P%Q:IKC79;  D_(6-B#!$O4DT^'1CV/XHd
XMDXB5..T*<+,HHS\$E)1HNYAF#!2DSAU(77@60TCFZ5XO#G%'#N#X6N=NONVNc
XM$[U"8U(0^K\='_)%7Z#QH<'&:P8<'\],>D>!2Y/9VO@6DC8A=WH:D$X JSWQb
XMC)9<%VZ(2*XL0$0Q;QC9[&'ZH]  :N@_#4@G@"62Z<"DV&H'<EEN-='L6X1'a
XMSG(W>FKD#3<9 'F$Z?'\S._V*'&;Q7>4K,V[68J4V;>0M FYT]. = )8(CF*z
XM4!X]QE;.Y87$@;+9P_1'H3&C($^ F0RQ(RP\E/;$,QR*,=EJ!W)9;C71[%N@y
XMY('T<JY9W/J6VOR9<?-6$\V^17BH4DVV;[2(#( \P_/65RB79:W.JM7HJ_]9x
XMSS6HOHIR\:4JW28+.J_]34Z[ MSL"N"T**,_9(ZJB71BQX01IB[+6FD]GXSJw
XMX W)53<1->=Z*W4347.N<%$WESRZ1GSH(*.Z7GF^\30K .D:9YHN4J+M8IKUv
XM[T)S:)TZM.9 #H0+SIK?^)O+AX^0DZ-B T>>N,V!SA J^D(?0Q.GT30!K.MAu
XM:ZFTQ*MW3\.=64*S[L=T7X#AXJ>RY"&[SO6YL[E($1=* PUT!A! !<A,&,@Zt
XM=(%]+ O\H&-K5M,@B980*..:(F 41L,0\"1W $J#@"] !^S &-!&EZ]-T &Ss
XMT1DTD-510'JLVJ'?[R#C9U]+X1*V7J,,7#(3PJ,'OX P$ 9#B(7" ) "C%ZHr
XM64V#),Z!$' 1DD!?$&K]I$WX#/B"*10RA%%=< $YM+J2A^PZEQMP ;AV7UMKq
XM?N-O!+:UYC?^9B,B#%%O$@T^W1BV0*QQ &DN?BK;$\]HR74!"A=;C\%I5X";p
XM11G](=$DI3*-CL6)<6$C#P6_F42(P6E7@)M= 9P69?2'@)(2;1?3C(&"U+ESo
XM$T,FC&64YK4>2R<XC^J)U#F@<*79'K%)-J$L^'),M'I^O1>?KW,%G'87']Q,n
XM&I!1K]2XL)&'@M_(<9B>);V9ICKXZ3&JC8A%4?0QY;(U@7CA @K*7^O-+47;m
XM=C_>^C2<<.<"%^9*77P5$G>BW,VWM0%F15B-Z!Y[3*K\-O4",8 EO  04 /4l
XM;L6544)$'_&4H]#8XHX<P/%JQE?&&]]"TF13MK?QF@''5VZ0/!9$,AV8%-F2k
XM6OD6DO9@GD;)8_#Q9,,D2W'K6T(,DDLM7@ZDE>+8UBTU6=D1C\O%A[!O''72j
XM#L,-@3 AW&>$C6U;TZ"5C"(, $O7F$[,LL?-CM4Y <?D#< *KW[3XIZP\6- i
XM#?VG >D$L$1R#=B([L+=Z*F1-]QB .01IL?S,[_;H\1M%M]1LC:+;P3*MSEFh
XMBH&+M?$M)&U"[O0T()T EDB.(I3GSFRU XDM73.U\BVUV=T<QV8QQTPQ<+$Vg
XMOJ4V<QO?4IL_,V[>:J+9MP@/5:K)]HT6B0&09WC>^@KELK;'6;4:?17E6JNSf
XM:C7ZZG_6<PVJKZ)<?*E*M\F"SFM/2SPB%[0B'I>+#V'?..JD'88; F$H).Q3e
XM%]IT6:'_-*#^V?Q_ %C>$[K$!QEE7):+#S$N;.2AX#?,UE&@E8P",F5 LK!Od
XM(8@7S$ZXZV,DP@?^71G5Q[Y#E<\L.ST-J'\V[UFLEI;!:6&EW;$<,C($'I^Yc
XM9',$X9A,-52+;&H%A"EY:$(SU O4YRS>LXP"RFV%?7!P9->Y+$\_R:WX@2--b
XM9E,,7*R-;R%IO7GW<9V=G@:D$\ 2R88.N' ;WU*;/S-NWFJBV;=\-089F]JCa
XM<GG:/H1]XZB3=AAN"(0)X3XC;&S;H550_AHXP1FO5->83G/QH7TG6QX@9R4!z
XM@ !T7.PZUP(!6#5@4>..]""C@C43AI95GJ9R2=/I%4R[K*M+53-9'-3RBZ)Dy
XM%&M.1B\@G(CD&H!-^&7RFV7(O')#GM)I-"N(Z?0*IGWJ+K[RBZ(TI)[CSXNOx
XM_*(H;%(OV7+<77SE%T5A$VMU5JT&I2F_*$IDU!04=2@7Y'B44<9EN?@0]HVCw
XM3MIAN"$0AD+"/G6A39>5$^Y<"P1@>4\P%Q]DE$Q;+C[$N+"1A_(809T+*"A_v
XM[7DP/,EBKHR(V0EW?8Q$F(O&>SQC4^,8U1.I<TP&IHW^T\ T/@JUA&"%#A2@u
XMF8ZGN]%3,H3* *SA2?.>1O',69_YW1XE;K/XCI*U>3>+&G>D!QDEF2#JG1'4t
XM=<>^WBE.NP+<[ K@M"N TZ*,_I!HM.DKE4R)O?3NX0+)2E4J,Y98BZE+!5T9s
XM52N@[87KK6:GF19&\9I:91&LA"+M=<CP[\X28. JOU!/'4E>$RUR(:,0FX%Cr
XM 29*7G\!@A4Z9-0>$S"T?E2O$<^!'V8,P0H=*"#1:%,(\TIK2=R1 R\@'VD&q
XM'$^G%8N=+KV_B@]0;%)]=^1 YWDPGB0T'#;QR(&2!/N(%=[E*(30L<,'*#:Ip
XMECR=1S9!MK& (<1"83 FV)[0'PAD1S1:0.A3G:QS)=:_"\VA=>K0&@@Y4"OHo
XM 3G0>W^UJVX^^E-6H\&Y97TB7XA="3=@5[>,Z?NKK:^QK@K7%UDCZXI@"O&On
XM#-VB-+2+MB\[] H!\)7=H0-8!=^A<,AE_P.A':(+6,PJ6C+[@)MH!%:S4;2*m
XM3M$KAH&;(0=.A4CBS@Z(/$ME]RP %J-^E@!_PT#+95EP G;!S^L<%B)%.\#6l
XMX1U]M,60>^G@2\2#WZP/9A) &!0)THWE@UR 'I #;&'7DF%GH0?DP+;(M9!9k
XM#\@!=*%-B9*^ZV,?M0Q@E14  _P&YAUY7GKVMBRT!G$C$,I2+>14]1P,&T)Yj
XM:"H^!$5R^ 569:F,4Q$&3XW&/G5EM:P<B*R1-;)&UL@:62-K9(VLD36R1M;(i
XM&EDC:V2-K)$ULD;6R!I9(VMDC:R1-;)&UL@:62-K9(VLD36R1M;(&EDC:V2-h
X<K)$ULD;6R!I9(VMDC:R1-;)&UL@:62-K9 U_ "-Kg
X f
Xend
END_OF_FILE
if test 35739 -ne `wc -c <'fp386.uue'`; then
    echo shar: \"'fp386.uue'\" unpacked with wrong size!
fi
# end of 'fp386.uue'
fi
echo shar: End of shell archive.
exit 0
-- 
Bruce Evans		evans@syd.dit.csiro.au

richard@aiai.ed.ac.uk (Richard Tobin) (09/26/90)

In article <1990Sep25.055949.15631@syd.dit.CSIRO.AU> evans@syd.dit.CSIRO.AU (Bruce.Evans) writes:
>-msoft-float doesn't actually work in gcc 1.37 for the 386. 

I posted a bug report to bug-gcc about this.

>The main thing wrong was indeed returning soft
>floating point values in a hard FP register! 

The example I posted was doing this.  Could you send a bug report
showing the other cases you mention to bug-gcc?  I imagine they'll want
to fix it.

Since I couldn't understand gcc's machine description, I adopted a
different approach (read: hack).  I wrote __adddf3() etc in C, and
wrote an emulator for the load/store instructions only and linked it
in as a signal handler.  I also modified crtso.s to install the signal
handler and signal.c to (yuck) prevent it from being uninstalled.
Sick, but it seems to work (not seriously tested yet).  I don't care
about fp speed.

-- Richard
-- 
Richard Tobin,                       JANET: R.Tobin@uk.ac.ed             
AI Applications Institute,           ARPA:  R.Tobin%uk.ac.ed@nsfnet-relay.ac.uk
Edinburgh University.                UUCP:  ...!ukc!ed.ac.uk!R.Tobin