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!!!: ---