[comp.binaries.mac] Macintosh Technical Notes - 235 Cooperating with the Coprocessor

bytebug@dhw68k.cts.com (Roger L. Long) (06/29/89)

[Macintosh Technical Notes - 235 Cooperating with the Coprocessor]

Written by:  Jim Reekes					       June 1989

The use of the 68881 or 68882 coprocessor is usually handled by the SANE
package  or  by  a  development system's libraries.  Some developers may
wish to use the coprocessor during special  circumstances,  such  as  at
interrupt   level  or  installing  their  own  hardware  floating  point
exception  handlers.   In  these  two  situations,  there  are   special
requirements   that  must  be  met.   These  requirements  will  require
floating-point assembly code and are discussed in this Technical Note.

---
(This file must be converted with BinHex 4.0)

:#941-M-e,R0TG!"6593K8dP8)3#3""9K!*!%&'&6593K!!%!!"9KFNaKG3%!N!J
#(&41,M)c05j$Efp`)(GTG'JJ3fp`FQpMCA0cEh)$!*!$4$Md!!%!5D('!%E)c!"
+#h)$FJ%9!"X!!3#3!dQKi&G28N40380"!3#JNcT+S,"`eJ#3"L&)!*!'&0X!!,(
8!*!'9UX!$!"`!L!!!!)!%[jEq)pI`B3K%!!!-M'K#3J9+3,iB!Q!a!%*!5!4'4+
!!'d#82`,pdqFJ(`#M!`i8J$&!)F#3SiF'I*NbSF*bB3d'+$Sd$i*L3,!JBc%8Q5
`!)d)U3"!KJ#3!%T@e$U8UpH5)&N!#0X9J!Da'Lq`!d!"!)B!Z2l*!d"2EJ"KrN`
SC,J3U&m!IFfb!B#a)$56FJ'B5&aAhYfm)IRq!p!%3![+PXYb3%%!A%)0I!+`5Va
iEZ1l*5Ic65L!``#$,16pN!!aldH0HD!H$+N5cXL*(fFHh*%$D`8%HMA)FF&3k%Q
#,JpN*"3)S#VEJJd-8VIHeXZAlq$$Lap2[VcjmqM6UrrH)'"#lZm6YQe4ldQ6ZNi
1!!*$)Xf(0Q6B!`Yd5G$c`a2d3&22$ICm8iFT*dca#!X2*-'$2*kj"`!$mJ'3!%!
!hE`@dSI##'##L9qPQ*!!"r"m)N9p4E5B`$b`"2&#(8-d8)3pd(b!4c$Le2&$Hp3
PN!#3!!8!V1"%(@b`NB!48K3a"4924*N!#P0!NF)+#H`!JKaPc%(('f##3!FDCB"
J""3JL"N'(@8d3'4#4J+!j!!**#1RKR8LU8',bFK)icf9h%0&!2F`iN'%$'6a`C`
H(MP@RRX@+@N*#3Ja44&8*$$#$#aJ#38,4-#3!%+AECC""`KLT,'U$$H!3#B)3L4
44D9d5RTU%dpB8B3,3L33JkJTN!!+!kTX["%''@h5m@DDCXJ44KYTcT''(R&#fLF
!),3i"$h25#(21dbd5-3m$m`)Lc)@!''*#34mF!BH)6c4(Tq5KT!!D4&4*1"%&8`
`JDSBdVSa"KSJT'%'#2m'h1bcZ%CU*`!`Y(MI2eE3mi8,p,b3!)!mMda4c`-Tb22
-ZHR5H!d5)0Mc3KiK&!#0FB+)!3%eEl6ak(5j6S`#2BEN%)Tcp,`a"6dIC2c&apq
J8-m28-McLEU'h"1'!,%mB%3p!05m-li6IpM0@#-#%!8!Q3$!M`!(X1effh#rc6B
!"53J"4964,`Y#Np'1@@94B"`CCCESJUQQ'5QH@DDDci-TlD5r[P*S&-2@LJ9"mK
!`40eL02ScTC1(-16[2VDK!YB2!Q&&'@F-3F,,4#,kKaKf+%iQQUb#DEV)0b4CKe
cC!XfNLKB)3368-MaaKK26K'%V`R%6[MXYGr11*YZ2MkmKb#5RH[CDDmGprKb``d
!#[SX6Bm(kKch6Khf4(-%-Jmd-FBp9Va#i43F6!%*29Q3!)13!0SMJB4`k$S#B%"
1fR+"!mi(4#!*b3E+4d(bM3m!6eL2"MI)`3e'c)'6dK2N*MD"SY9"#,%!3Me#%)d
Jm1!$1S$(B66%!)1d4@`4T&-&GfK"l'M(J"h#N`Lh4ad3"U!"NbPLKbj`"9Hj)8c
@FX-Cc)5lj,e"$'`S3aZ3!+JK"pJ31dN%)PX#X)FN,#`2EkK$UU`(!QV0JACR5*-
dTJ#(1XJK$@QF!`L5i!Bib8'!F&M9'aDf1""8`3eT3#3GdK!'0PbV$-cLSam"Z5V
EM@&-FTK'`Y`!JLD%B3ac%%)GTMLV3VS4MR)mC"MHQ)Bc2$'5I5c$(qX35"#-J!3
`J!%43)!#-j!!U3e[!N%18U$*D18-"&6JP408`3)3S&'0Fd"$'YR!V$N!$`jPZ#3
)`J!#-b6V6BQF)KcHN!$)9F&"H@-D`a[B!!)li*%0i(b$'e`!!Q5L)3ek(%-B1#Q
'01N6H*!!C&8H%YD'Fli"Qh)!!I$#%%GC,FbEbPUN&%%`cR*Z8N`#[#3HhD$(B*C
6PT3%34CYamjCL@'JEi*6358ka6'"!!hl*%-@AaS'1C!!i3ieKGBh@8T4F[B4"'A
!`aM+%-L0kM'4k[aM0ZR!KMbii&j+[-i4HEDK$Nf9KKhUJ#4"5NZH&R))"eAH80p
)*UJQa)Y50@Y9ahJ'-cScMGZNJdTVk9+!8Y'IB9dH&'IPd9M1XTBM,3-EQ[R-0SC
KS2hFj#5l'XjYGR1RMDhS6`dkeMQ3!)QH)-J#A0X![&A4cRCh"B%k+EYA194$MpP
,8cpp@DDJCV-120hR3#%+cSP+GP@*a'JG0#V2efh6$@4SjL"&QdBj"+qCKm0NQP`
PdQFPP!afE'`K2rVA95N2YSNX!fDTF%mpJLN1G8M$iEEj4LeLFD$U*%1eN!"U[6,
K%`4ZH!0ah@!l4*EKTcJGU%[*)&rQ*Y+apc`$'U!4@(E#8iTeB+Kfe@T%"XY(!!R
JVLbAfe'+SR0jkk4L-$NV*PC"Djh*mKdCYSXl-iLh`l6Pk@d[5SH-,P+HEHbXKhq
V*ZIjLX6[c@f,GrYL6PTc$YJ%VKi,kGSaB"I'`j@YV"!D6dlqek"R1&a(JGZQkJd
CGp4e3b-GTpek5KLqG@K$2a-kh*2#bEYP!+pi!rVI-lhhS,*X-JM8'f3bk"('K8a
Y`R"l9$Fd-kCl&ZdqCda,-mPA"M'`J8$2M&Qh+MR&NI@TG9Z(6cpfY%`Z65a!JhY
AP,,"XM(ZF')r'p!lZ!TKK64#k3+RBaG[&,0"-)-I+5T,eVC"ZPMfDdL[+p%b0$2
9IU05P&MXDKLrGp1'rP+BP"YD50Y@dPaqDN*8)-DfF1'!5!U$!`0`#'`(J"(E2SD
hR`(#%&cKMR+pVd"eN!!!*D5K$5"JA4R@%+Cfeq'*))K"$R#3!)-'(!#VecQ"E'K
MQhQm)J()m3)&a$!(Hm$K(RGB!GCdii8L"!-49*!!)98Pm-8-G[$M)!HjJp0+93G
ZL`I'Bd)4m1!Ud[@U#+G,(E&@`))eXFjeKL-U2)FDfXEY6Sqq8fM`b$"#*"haKfY
Ybe@MHN-)PL3"2)bkqBi1F!U-R!)#N!#$%pi!*`f[UT!!Sa9VD3dld2LZ+V(rjDB
kJHZUM5BElEVZ+L6r6198fjM9(0daEcPTkLE4P!eIaad`RbafXLEdhSYNTc82jYL
eNk(Y-0BR2p0%,6TX9ljR5!0S"jd'pA)6clKE*,@8V@B`-BZe9AER4-'HemU5kE4
FrMAZM("h@5885P)50YjeZrGm$YTCp0iQ(!c+FQ$#UDR#c+9Smc#',!jC[N@'ECI
YQH11LL'0UkS"$-cdlM#e+F5be$!RZEPUB[2ieI8%+dFl,dYFTbQ,8Mb63lNrHZB
#hrXZ4DLYUIMH*eDfTJ0P81Qd6Xh%A-"8GP`hBqTP,G+#4BSMAhEPE'F!$5YQI!M
69iX&@'9!8V!fCGX%H,+NCBYN1`9)Am[@5Xm5@Z2%5UhL5(3`8--&21k(6'q`6YH
("eq#IGQP4kKR"'Q!"`%&D%BJ,@-!CQ)Q5h-JE354G"L%E3"!"5$d$Nj)$b#%$pk
@G!%J"YjQ"JiN!&U!E3,`"9e)"Q#)"Je@FPCeG3!`!NJ38iid88B!@4-&"G#fFN0
99,fP9QLPG&FA!)D3!!4meP-XQ%9d9ddjSbVGTdF,+&jKi)$0K(TK-(b1T%mppR`
XeNMXY$ML*5Yh`%N`C9-i95B55)(3&P4hf'-d"9aCC&`NPLC0!!9A!!,9J!-i%!-
Ji$a1%$L14$!eP3EHCe$ZT&ijL&e2a)0m*BPT3)P'P@cme5C[d'J,-fL4#!H6+'I
[G3Bqe9)3'$cmTdI8FM$lK%r`jP+8b(LQ5&59f#DlGB&kG'rU*3F3G3I#C6[`'',
#p9bDahi#"3,BSMbbTfi'+'1qe#4[F!HKG@Z)"%cX*)!BaNkVe#E5e)QEe'`J9T!
!M498dd+0#eCe!D!0pE!%%(!2@!!"A6"a0M!2Mi!$+"N$"3!%mr!'+TQ5m`!#aD!
Fc!%%H2!!GI!)GD!'Vj!!"`X`"TU3!!%2)!Eh!!R'm64"3!r[8!31`!EfB![f%!F
Yk6*jB!!*m!&fS!&H%$mbJ!$hJ!NKd#$9!!LRB!mN3!Cam!JZ!!$e8!2aNj9EUA#
!B!r@F*33Y`J#!!8L#3('8C2,83K!m!PeF!6!J3$KF!aU`!"dm!c`J`dQ`!-B)!r
!`*2,B!#!)!DCXcQGS`"DU3%Y13H#S!DR!"aB3`F&F!pcX!"Nm!Ph3!B3S!e@m"Y
Ri!"A)!1)SLJ4%T5D3!&X54H6J$@")!$h8!F))!Ii%b%6JM9"B!""J*L+'5paF!p
A%!4H#3JV)!B2d!BLf6)KX*d5J#%23!@a%!M55Ch@'3db!!J3T`VR@Cd08!S-C`p
r!!hPS%GS%!J0)JBrf5J3-!D3!!#EPm!))KN)N!!`"`*`#i"3$d'`$$GJ$+"!$q8
3!Z1LKMrJG#-LG9)(!$13!$i*`+!1#U%5qTdM-!m[-!-[Z6rKN!!"4fNFp'!0+d"
a&SGa'XGdh"-L6kHK&[3f2P4e0jT$(U+M2&4Y!0!!6l!i#C8%Ee3(BD+(Al4de4B
!Q%!%C5!'Sj4j%c@++mCV1pJlTpC*Ra4+Sp4-cN-%49#)b+4-C#GSGX90$+P1l14
1kp4NQ19*S#4+8f3$,K!$D&S'0H9)XY4-c@KfY!D2[p4cY5H%`3Bik[K(DF4f@5U
(%lKLVACq[49ALX99'XL"AUDQ-Z!#1,#RFrB'hNHS-+@+1K94i85+&P@T[BGCE3L
+1I9BULT&V2T6jiL(RZL'52KEc%*GZkD$a5KdMD@Pd1DUkGKhl24Gi98QUa3mBSC
mk491dZB"40S)6LJ*)(3*6[J*CmL4K+"CDU5XANS(a9KKEjTKFJT2U*KfCSFQ#@8
YG*!!B$f'BdF&G'M#56+iHVJc"Br+,*kNCA'882me"ANJ*PS%!RS+!bi`!li+9(r
ULh,3LVIiVf!UX1'R6dfL4lJB1"LSU9rAICZ89'"b58d&M63fMGABVZdB45f&1f'
R9iEhX)ANVqjiX3T'X0jeEiJN438BL23i8)j%EmKh*X(%HU3eXq3+GaN)*b2QCGh
PTAkA@#B'K,r+5BAd4(J`D9Qd5QNbA$9VX3'EXp*@3%b)$M9d(H[`V6Ck4$2JScL
8ScXkYqA6SffE(6jk4"cJSe%!33C"*pmQT$dN0RqV3h4lZ(16&!c!)3'`Z!AKZ&c
4&LP3#JR3"&a(*R2D580J!l4BLbr3"*[EZ6*J5-&M@RS8X!R'"[Gb3##83![N&T6
lLV%)*QB`B3C$HIZ8ZR-!+5$8!j4,"GQ%"SLNX3c$G@Nb!M&!!cE36&YhCV,#5E)
,!P#`5KS,Hp$3"Q2!ZE4SLdqJUfVB!VmE[-1lCFel[$)J!cR36$C5"9L3!'qL5J8
eb!Bh5#ZMY,YSH"eaQk')HlMF``mL!VMQS#)#r(42##)"N!!6rrC[@a!!k4!"!3!
+A32"M"!+!0!4"P!!23%$&+`*([%2p"!5'T!!%"#-#3C4&3N-!!ZF$L"KG45$!J"
J!`%J#`%!$a#F#4"m#4*-`4D-`DbK`3$!`4*"(@BM`J#!#Hf"!5kmY`kJ!(CD6Qm
363e3`a[F`Hi3%QF$!#1X!KJ`RZ+EM14V[(03`cHX``("`bEK`d$F%#%a'&KFa!5
d![(`!4Y!T53&C`N&[!Fc[Z`d"E3d6R*!"f)-!*I`EcNK!#!!!$i3+6i3!0N!`Bh
Jb"!m#*04%MJ`$(``&3)J%5)3%JHd&--!$)FF!'J!!'JJ#3E")4b#!lN!"k(-"4Y
LbP@&!8Z"#jL`!J8"!`$!!V"-bF2!#e14!3Qab9c4Z*dF!"-`!BpEc)j,c-PX%Ja
3#-fXZ)blc!r`!-fF3)63c-`F!09mc3b3!-h-E!!0`!##d!##S-b-Z`!,8"$Uc-l
V(!$Y$-r[(-rd[-l5$!!(--lQ6-jlXXh8E-h-R%$3I-rbl-i'AG!)AFm(VG!&6G$
Gc-`%`!$M2!MH$-l,$,RDM0(q2-dFRG(S(-d$(0)L2G)NAG)QIG*HJ32-J!mK!!!
AS!`!)-cr`!SKJ31iJ!KJB"8L%!$@8998--[Sd0)-J!iE-JQ&Qp-iX!cE"`!6X,F
L8!NjJFa)c3`cXb%jS3*3A99cX"5j`!P6F3'F805&q`G,d3(FiY+S%00'A99NAFR
BF-J,B!fj[0BFXJLcc%iZR48-X0B*F3PFc31(c!!I,-`!`!1#2-Z`i-)4)!d"S!4
d$3$6X"6%J!+",4CD`0F!m!e,`3b-F-JBi!eUIFUCcG95iG,C[0HL[3kEM3G6B3"
YJGS!B-hhX"6,3!1YIFJL3!Nj88-#BG1Sd0T#)0B8%`!&C01dd0T1i)Gd(3$"EG0
`-"8(3!h#A8-%SG)N!0fH!GX2%!"DX0RS!0eVJ3+k[5%"N!!'Qid*8i%!Vlh@-"!
!G9$@#*!!hL!3!(+`h+@`&,Z!!e14!*)Jh%X3!,(!e6#`hjiJ!$M`[`(J%+V-*JF
Kh5+`h!V1$,qp)G`Jh!Z3!-QHc!j633#L!!$SDa!AMX`iS!cII4"Q80Jj!1)#B+d
f$3T683$q!!!1N!$L!($K+F$93'$,"'!%h%,M&di$5m%"a2$LD6hM+[i$RX`28m%
!(@%%2Li!5Z$*3hi3EI(K05i!9H$*6,$K#!%"0'i55$d-c1,5BK$D9Sh8ZB!&Afd
&`Sd&!M!B+Rh*4FS#!N!-)X)K9e(*B$!9$`!2d`d!*4!!1+!,8ri!$U(G!"!$JXi
-ANdB%Z%#imdK3#$Sa%!%8`%"0L$FKXd%JXi"p($T3S!9Q)d)LilA!b!1CXiKT&l
*k%dhF`(Ekd`*JTi,1'$,!`!,(ZlM!2!*JSi,96d!H,!8ZUi+Ldi*8c%!6*!!blT
H#le1#,EZ&#LJkm$3krL!bAj1!lUq$)Y1"CJ-$"5MkpD`k*pZ%V)JilSH$SX1$VB
X!2dY6#!1!1c3kG9Z%YPXj$81!2FJk--!$jK-%$EJi`IFkkb`lY4'!PpqG#V0$SF
m!Ck3!1S)c`aUcY6pVGd"N!$R`a$a%f!-EK(T!B!#qJi18c%"S!hE24!!0$$V@ml
8kK!!ZR$R!4!(qXlY!&!"T#$FlGd(qMlK&3!,!D!*Nf"!!G!+qNi)AahPX&e$Z5$
SZm!"5fi)`Pd3a5$S(F!!Kb`cDVhE!4$eUS`!,P`!YQ!@`8RHdG$T[&$e"((CIf[
!UN`"95m@K&e$hG$VT+$Mp[$#2drHk6$V61m@1D%$Gep$pD$[e$!9''$B$hl+!P!
81,!,3%$iAL!5G#d!fD(55Zi@TV!8NCrRbd!!YM`"L5`$I#d!JBi$cB!!#`m(U5l
k5Xm#8p%!5(,d!U$ST*mN"5(AS*rfe%C9!5!0)B%3!G(*%[(+[Cm3$8$BeM%"hNj
9XY`6%)%%!E!#id!(9D8!!!:
---

bytebug@dhw68k.cts.com (Roger L. Long) (10/15/90)

[10/90 Macintosh Technical Notes - 235 Cooperating with the Coprocessor]

Revised by: Jim Reekes					    October 1990
Written by: Jim Reekes					       June 1989

The use of the 68881 or 68882 coprocessor is usually handled by the SANE
package  or  by  a  development systemUs libraries.  Some developers may
wish to use the coprocessor during special  circumstances,  such  as  at
interrupt   level  or  installing  their  own  hardware  floating  point
exception  handlers.   In  these  two  situations,  there  are   special
requirements   that  must  be  met.   These  requirements  will  require
floating-point assembly code and are discussed in this Technical Note.

Changes since June 1989:  Noted that the new  Sound  Manager  no  longer
uses floating-point numbers at interrupt time.

---
(This file must be converted with BinHex 4.0)

:#941-M-e,R0TG!"6593K8dP8)3#3""CE!*!%N!$"8dP8)3!"!!!@@h*-BA8"!*!
)!Ka86Lib-c8Z3fp[F#"hDA4S)%0[F(*[Bf9cFfpbGSYN!*!'!cS!GSYN!!(2!)!
$Pb!!F261!*!((PG28N40380"!3#JNcT+Sbc4!*!(*"i!N!B9e3!!)Qd!N!CHGJ!
-!(!#)!!!!J!5rP[iMer"K#0X!8!c-4Q!%4i!)0#BX'2#!4f4!"$C8B!f!5MqKIX
R6N!q!8B'(#Q!BS"$!5&(HM5*mQ&#-Kd0"KJDY%p#S3#kN!##PV38&d!M1LS!N!!
K!#52!)"Jp@K`UpH1)&%!#"Xdi3CH@FfL!N!"!)B!Y[l*!d"2EJ"K$48bA1Lc,`#
q!$UdKA$8#J!"FJ'B5&aAhYfmHKN#)$*`FZ@M#6eB)`!ZB3F5!@3PAMbhm9f2rrj
+2XaKJ0!'"J8#B*!!X1d%HQrU#)N&T&k)D%&iI0!"MfR!K!`-YMhD)+(XU@`"X*!
!pd2'["mejS&k-+4+1#-RITajF%F1V"83k08Ja`9$S5F*ZMb3!1%m)I5f!CSIRed
lZTF[!!BSi)!%&QMJJ3JQU1##!$EhA(mck20&![8%XF`0aS"#6cNK2$$#2#r---m
E,$``46JCh!-*H[4BX`*hAK34$#*8&,FIEG'K)'%#p(LJ6RV[e'&20%FJmd!6Bpa
Ma5XP6X("&*!!d*1&((Amd*`%b28R!!-iYA8"MQdp`H#BC*C*CJ-1CKPGIV'TfGB
2@$dJ46e2&2'94`rX3)!%pe!"!c9IY"(!2BaiF-)80XU@3%)@!,!$2BEN%)T@$aK
4c`p"e21'R3Npd))mMda4c`-Ta,N$!QrB!3',Ed#"J!NK**V3SJ!dQPppr+hC`!%
hp[G!R(-qJ5K6LM,UU+C#d2--&%8!!d#PPfDkD8HHJLSUUDDLULUVVX*Uihkd@K#
!0[8X!F%p@%$3K3#a2'$$2)rJ!'m-"3!aSVcacJ0#-Hbj"`3H$p6a5"eU[*,(!Q0
SNX%$BUL)AV6d[&1%!fcBBiXpFG4Vc`Yj'*!!`!GfD1$&N!!b)(!2*L(BmddeJ*a
L$`PNa2')#`$88m13!"q(l!8&J0KMMBVhh,')!&#JZbS%r,CA#"#Ie('%H!L%Fi`
D$0$aM*!!f*M!!`Eb!$2`-JB!)XB"-P$`4"hL+!#b"[A1)BJDTiM(,Kd&h$2(!Q4
mFJFC%'KM4AKR1(#&$)-@HLM#QP!`-ef6X"Z)!2I8JB!F5Klk#![X"Q&!%&&26F!
(FGac44!N!l+#'!qdJ5i)pR6BKJ6bJ2-!&E%%mRRSSjFHY#UhLaj%!k@)-BFpId"
6cK`JS"')bQ)Bc%!@%)`"#GqA-)*Z)*!!c#(!,B"8H''''iBJcc[kb3BQ!#&F)8F
DG0"4KKXJL*'($JNSN8BE)%K44KPVP$&(rA9`3aP!%)-Fi#!(jA-6!%LJ2cZNB3j
P)%2mjPHrqq9[Irhlha2'3)FhL+%-FL"J$R)!Jc6PULdRS)jeX$129r#S"MX6RMh
J%,39X!Y'-U,4Yf3M!H8!3%aQ#U)3KBLQAN@R"A4U3PfFF!"!J)%%DIK!'mKJ$eM
)*`Rdq-%6k!'0HYa!CA8`KH9+P!3Ha!jAjlZ9%I'6`"-@T)eJ1KmGKS#'-,MK$2i
$`4c5i)Ba$&!*!4aJ!3qS!a#!`!P[F*m%k9"(1S#!N3-8i"e!-)AFZ%'#6E"M'2!
B3MHm!34XH--G33L#1N!3H@B)C4MS`-FcY!!1Eq#M)pe3KcCm8!l)@b8)C!P#+X(
"NDaX3aPFd"`F*5Fk'%JM(2Z6Rp5BMjN0F+B#,h!&pJP`$RZmib24-%!Sb-'$E#K
$'pVS!"qUmCPX#F!HNQ!'%13K0hVFhcB(+%aXER+!dTJ#(1U`[Y`J,`PZF*mFI1R
)0l36NL#SJK[ib,idK)%0DG"$"%%!8)%5&!4f+!-(hb#(DH`5ITNF`ab%8)FcJ)#
Mm`4"2HG`6a")3k&K`'BDcL"!#9DdPhAi*3K'3!)B`)!))%#"'6MD"PhQ)!8H0F-
hm8H&*Mc"#DTJJ6[K13Fdj)B0%Tb$+H'J88H'!35TI--U@`N#@-UbV0rXi"MH`!D
-TS'YBa@P#`a*"63m%!4MX'2m"TKA8dj8IVYX!abqbG83QV+P"J@V+PQT6E-'p+0
cS!1912K@0q65NE`FD%iG'Fk-YK@PJ&fPq`6,@*0f-(Pf*%-i85X(-Y`K$()BB&M
(fYKB2VB-H2$M,bZ,2$kZGD"GC8-HL*N3,,Qa%`N!3A3mS8`d3Y1jdHR!66@l@fd
LG!K['1`Er)K0MT,6R-Y-jaRB1G8kJ%#diY6TDIfDdV9UPlYc3+NZ-h[4cTD"$9*
pThQ,QSHpIY5LQbAV9fGEfV,DeT([p9pmj6"A%'3"RQd`T50CQY(fC[HEm19S0C!
!&pP9$[#$3idY#(#Vd6S8f)lp*6"C(BYCbdUf$T39j4bNQPUT*RDYr)5J9'-E@Bi
1N!"pS24`#-R!6l)LP,kE"F%h6Fc(BG,9VXL,E4cUN!!'(TmAQq)8Jh$aqJBb$$#
EITbRL1rU55kl)D-,ICmMAp[Idj,KNd$QihQ60e-d3-1qE@@$(Fp3KhX5Gie[K#i
&"*!!J,U#m-Hj4'XLYm[@EHSb`T(ele$C%-Sl4,$"KJCVP51YiYUHPBq4R5`V4DP
5#IYAVdDB3K#X8!4-3aQb,iiar,3k"kjH%RN)*I%BQ%cUa+,iT)@0+rcNV0dcm$L
APp4M'$++Dflq&i4ZH+JHkH"K9dHbPVFmD6[PjliSPf(+9CkSR"Pjeqb#80JJm,+
YbB!m8L1d`qlE*@Clk`BD*a[)HBAI"dX*KdGq8JBaX-%%ZpeJm[kkdbCPXC,,F)B
(#M5A)MlY[[e+"UP#XVm2M@qT)le[#Nrd$Za$3dU0i&4@`eV8P@e`%-`Jd,+#--4
Y-,+cNDc6*61f$"ChYK'N8)3T81%*2$mjM%FpE144h0m,lh(%RBe`!jm9hX28M`S
8b!8F05S-B!V!)D`H!%CNr4KFImEjIK#!ES#N)`N3`!(8c[DeZlhYF(Fl!+*3GYH
J[HYacr[Ep`k!"*5p+l25Zq$hV[C!!lT436#NiKG[5*)rJG90F!%@&Qm%+1M[$$0
Z!3UQ!)88,(i(bUi`3LZrF-b$`0+PK'!E``@!"M$qpFPB[E&km(V'*k2fZ-qpiN'
[ha$5h*&VpE,XDp9khB-JpVKLI4'X)!3Q&!%23&Dmib%[qF9[[[-VB%(P,iqmh5m
F$RS1mqLK8(VNSClL`fq8$ibrmjlr21L+[hi+9Q"md21iJdXI)1QKEN,@qphX(T&
fK$H!JpGhCBF9!MKi#RJ!B#)!FS")mFC)ZS43lS9K#SC5r!8#RZ4)qbCRAl9@Pp4
3l[C*(4K3129,%@4[Lk4cUQCbS"CV4(GkD8"TU-8'`14X489X&YKGKK93-kK(-#C
b(bK+C###m*0[rL9-G)"TRp4`&DCADH"PAq9ZcKC-!b4P9"CE%K4LS5GcI(9Kfh@
"FV"KdqCK1DGr,9J%*a9#lHGc3+H',iKb-SCAHN9YrA0HF+"Gd&G8lV0P*!3$H*8
(Ba"1Z2C*ZQCL6JB#GA9AGa8'BT!!'ij8!i"SK4a@DD3NJI$c958(KbiQKfl3B0K
P@9%)3Pi)5Zpc"SbNEBpd2cm'6''3!%&)9eJ`YdeNTP%+"P[pT9eUa9C5"@3CZ)(
qj@9l*!H1Z&VV"8'+*9DP"3d+aiG#f')!TP0iTR,)GPif#'eMP9'pH'Eq`dTRi'%
T"8Xb*3Bcb$lpP9LQ9)T8m!CXpBKiS'53!0KNU)454T!!"RJ`8DN&!NC!M'1JJGJ
'3R0!A!6K4NpJG3"!"HIc$JC*$qH$$eah3J%J"PaR"JfS"9BR!&r3J'4`N@M3A)"
f6JSd!NL3!&S3T8e'X&KN"38("J,2TeY%0`IIT5Z#&J#'N!!%mfCJiaK1+UK(Ek#
%V)Jm`PKPaBKcB#9IH3K4HI@552H#$p9@N!"8C5Ge"r"64khe@L+'F-biNVMPNT@
&@TF86VKNE5$3"&"`"5"3$6L!!c&!58(J"'S)8@*!M1Z64pVP3&i'Mdaf688C3Q&
`P'Q3!*5mKA4[aT-&edjkeCIJpjISGPGRB&ZQp8RX4@l))daM8%F,03IiFeT*@CN
MPPYPX&YcU&@F'91PG%N[9fNfPP&b%&ChB'0$PJCfq@(p*9(IG)E$jNL3!1C)NeC
T+49c#e98ED@,M0C@T&P9Eb#9(j95ZhQFC)9EB5"Bi84Fk03@rhGfJ8H!f"Ph"YJ
0#,L!#lLGeYPhhTQG[!+5EY3S4f"mQqJ#3["kmXF#4!#)Z!GkCV"T(*J(mCCBldC
YmDC8ceN'k3F!kkGl3P!%8C!!Hdj3"8c!"-B(!U!APhE%Q@R36JQkS'AS2[dhHmB
h"%`J"5l!S+mAR`eU5+!hL'8!@qQf5Pm9@`dA@5!8S$qJRSrADZh*H$(`RL*DHk#
R5PR&Rl*&M-+N4a%&S-PR,+"(S&03"&5!Hb-`!ba`II!*!jl(H+!(34`)C$*`!fX
)!N+3!!49%+#ZTh[)"biD+UBMHUDmPaXKY*@I'B2"4k4N5RaKQRYM@Lc%j`018!F
dq(TYq(jU'(qF0hrePh6i0d$MGk&%DUH08Td"1*i&f!*eja%Ei+MB#Ck05TlIDCl
RidB0m!53!"4#5B"0GH!r-FP'-pN*4&!'BP"5$DG0@+P`0LH2-TL+)695*599UNB
%4E#66I98+K8'rG9Ab2K9`VP@EH9!F%9d$9DV*'950Z!#-E#6*bS(%!9#8M@B`#L
,4$9bDAKHbGDRE`L%!f9*4HLU+(P(@IPTR6KdJ6PI*NKGR&8'RN@0UYLV6J!#-Z!
#11!#00#,MP4(b!1-PUPD%i9`Vl55FFLZ-YCJ)eQ9X#9EjhS'kATERJQD8dQ5!1Q
Y%[4lH(Pc4TG0*[@U#,ZZXZCYi#CL-39"YV4P`GG+IjB4EY3)"LN*jh-*"[N*(MQ
G+2&JjS@%)%F(ej4SaGTSb+TR-HL"'mK0)E4(G0"Rb[TNM'Kqh!3rk@KGcPC*!B4
*QX4*b6N&HH#Lq&0*,'H9!r5X-1!#0D#a)`CEeFTJ8)Xm@*YXQ44YA*YAP!DhEDQ
'lKU0`-5+KHQYH*LBJ%PUGe@eTZ9X&4L'2+LfNNP*j$U@@dY+Gd8PEV"3Gq5[Zi3
mUYPI%08r@hCD(%Z"B*KKEUZ)VkCG@LC1U)8m(r3q5FG@'E@am)03NZ5i@3ZjG'Z
YTfGAR2PDlEBqVGU8r49Ei446iJBrAJZfMMZf$`X#CZX#crTNN93'Na5h@TZlRI4
*S64+KR9+b8KEVU4`Y'4,'EZh*aL[RJ9k3"CEi"F'h$92q21c)PH2pbK"qEL2lJY
-HF"9!GNF8qG'jA"-EB%1$4J"&fN"$EJ"&`N#1DY!IXF2GMFV!@!1Ge,"!9KhJ1G
h`L!!*X$"&[`90V!MhS-K'X)K(M)2(d!$)e)L6L!&'&!!-%!2h`!&pI!(,0-2UI-
-lj)[Ma!$$r!%iP!P*J3QZ1X@1b,$0!`(33!F2!!"2[-$"2-)3e`EA")GAp)I+9!
+#G!%LrC0HMD@3f!$DDQ@,p!%B6c'-T!!8"!dKXJcYhh'"[TK6&T5aFY4%!a!'`&
`ahD-)hI5"5U!"9'K!H3!!#,3%AcF"6%F&3(J#41K#JC"'l64"5e!!iU-"E2Kb2b
"!8RK![5`!J8"&#cJb"BlaG%a+`IjGcM"+lbb"3'3!!i4%!#J!!##%-Z-%!S!B!N
"83!P!31fV!NDm3rdd"%DN!!3XB`*"M%9UJ`!V*`1)%%"c3%$BQ%$S4%!m"$,Q4$
,Pd$,YSc,"U$,#5%![!`![V`4XM&ha!`!Q0!F'#!@(!!!$U!!)59,Ee"9$@$0[Ic
,lY!48A$1Q+!#'$!l'S8'#f@hKj4)rQ20f,c0ZEc,pi`!N!!"!'c!ceHb![(`!4Z
3!+UHC@iK4!8"2G$50J8j"8Yb3!F)$3#A`#Xi)3$+j30p*k!"N!!0XG`)-4h,Jj!
!'Kl4"5`!$S%X$)6X&AR-a`%`!41`ad'Kacp0e0r-!)9`'!`J#%4pe&$p!,pbe!6
!!!h3e%pYe&*0e&Y##%4Y!&FY#!dJ#(LXadHa!!Y3%'LYeQNG!'[YeQhpeR+GeNH
Ka`G`e@2Ge%8%e9SpeAUm*8Ype'FGei60eSB0eiFpeiP0edqpe94Ye3``#%3p!%U
pedCYePN0e*GGeTb0e*Rp`D!GfU)pfU4GfUCY`C+-!b%`'pM3dhr"#KdKbA3!"J$
!!3S3!0$"(e53!"3YJ$)"i3UcX3U!4pZ5c!M+a3#83-LYJ"0$6G```!+HA!"-!!!
UX0cm-3G*%31-%"8'--`-)0`Gm3Hm[D5c)4%L!0kd)GjGi!,m%"8&N!!4,S$H!,!
)53%$b"!9"$!A,#$IPj!!&#q!#pcY!-%0H+13!"3X3!c+j3"!FGi'`3-!81"G%!2
Fi-N$J!S"S!6JVFRI`0XN`0e64`LVN!!Ppe$IE1$HGJ!!@S$H!3!5kid1h+d,!ci
E!I!VL!`'h'd--Ii!!E!"p8d'h#d0K-`+1*%F8iI)J"`3`IcG"K%$!@!$pFd&89'
HNV!@-Ri'p3d&8B%!NK$MbB(GL%`&@Fl)5[iX!D$H-)!%@Di+!)!#3LlMMV$*h*!
!j8!qjM!3!,k-b-53!1AH%!"bS1,+i0q8$!!+!!8a[J3"B!hqc3"4S3"F)!!iB(G
FXYTGm!+S`0e$$Yk(d3**NAd*EJL%(!3'X3!#S1Q56!PL-3!4c31J$J#LMJ2qc3A
+e3!E`35V,ZT$X-RN%1ZlM3'e,J!%-HNi%1X4M35pRJ9*)31i%1Zdi"Dp$K56$JD
acJ`!!!@prJDEMJd*hXl%(ZS#S!F!`!Am3!UREKJ@X1U(XG5)c!(+03&53-MS,3$
ScJ,8%"8$S!3aMJ8#%!Re$3Y4i3"#6Jb3!!i!C0F&-R$I!"!"F-$P!'$SNJ`9"mm
(13i!9a!!A0!2*Al`L!!!,Y$QY'%'!6$TV"!9%5!4BqlJF[$a,F!*)Lm-9L(IVN$
aBF!$p-l5Bji3Z[$a-)!+kdi(RalU!($cL,cQBb%31&$V!&!-+*rX!$!"1#i&4Jm
0(mm#h+"F&+$*fmlU!,!0(rm#5%$eY(heD@d11!q)E,%@5Q$dmI$a+d!09$mA4Q$
dr,$e++"F&H$U["lU!A!!(km#`%$hK!lf!G"$1)d!G)m*c)lh(I$a,U$c!&!"X$!
5Y4i!+"$ep#!@!N!0!#!$jKi!-i$cMV6dZ-cJ-YljL$c[Ki%-14i!!`m$["!9&T!
!m"M!m3(J""mI!pMJqPi3icd3!&T3q`C[!C33!-!!k3&`#6J2$&%a!EJ3idN3!+0
3qd`3&4J!"J*J"@HA(1b!mUE2!2V!j3'!$cLr8`9a&68[!!5`pHK!prMJlN0ZrMJ
2$CiF!!kZ!D[3rK#!m`"q''k!iTJZ!"a3qla!Z9L!B5EkZ-6r@fr`lc#i1KX3iQB
$5SKk0Ji!E)$pT`-D)*HJ!5L2$(Lb$@!%!)!(H(G!B1[aJ3dS%(M!Zf-#+1mm(!D
")!2k(aC3I'fP9MLi!LJ!AU!NJh)&!3C`13&!"P!H#)KZ6+%&GS8!m,rf3`$J"#A
"1CL!MS!3@Nmj``RZM-SGK)3`!BK"%U`9DU!Mb!B,N!$ae!3'f'eU3J0)"$@a!5J
#VYJ!$L%K#,J&NK&B`8B!S#S!!!:
---