[comp.sys.mac.programmer] PPC Demo Subroutine Library

minow@ranger.enet.dec.com (Martin Minow) (07/01/91)

I've attached my PPC Toolbox demo library to give you an
example of using the PPC Toolbox under System 7. This code
may well end up being published in MacTutor someday, so
I'm reserving publication and commercial distribution rights.
Errors and improvements are, as always, welcome.

Martin Minow
minow@ranger.enet.dec.com	Applelink: MINOW.M

--- Cut here ---
(This file must be converted with BinHex 4.0)
:$&"33b"%C@e[)&0*9!"6593K8dP8)3!!!!!L2!!!!!#FLe0*9#%!!J!!)Mab6'&
e!IJ!!!!@!'d!!Ja&BfK[8f9bGQ9b,QJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!H4!!!!!!!!!!"849K85d&)6!%!T)P%YD56EH8!!!!
!!!!,Q!!!!!!!!!F,!!!,83!!!!!!!0pP,e3d!+%#4*%aD0k!Q&*'MTf'))L8-C2
'64SkDGkiQ61`i*!!0h$bb%Pc"JdG%+P!a-L4)`D)*Q(NB(6cXZ+E1bj!J!M#KJd
)+540c[PCCNl$Kf3kJS$5X%fD1A-bdR`+!Nh$-Q,bJ$JM*i`E1QA)J+#M%-j)1f(
!JUK)*SfG0'6UK'($N5!)Vf,GD'aKpJh&NfrNR2'D4NpDU82*JT!!8kC[h$&P@)"
SmkDYQ6`XP1)&8FIS@$48jrLPFbGQ'4"Q!S1!de#dQlQF2BFCbNEMQEYe#p)"2A3
-5*&"6qV&#2QZ'l&YjiaK%bC0'iL-fc6IZ2CVQ$&dA#MPk61e(,jbr&k-I9TeFMS
MaG6"U((Y8-C'(BE0E$H0(-D$jC!!B90dU&m3GeLe'd5U$@FF#'AJ!3FEDB`aRKP
PR2D88JM&G%CBU+Nf4ad)N3H#H8qKPiCkl,Q4%a9@N5H(CQ0!"JFG3mhP%ha`D"5
9''N`5)G@hRef@PqXb8'H8[rY&YTST6'Q(8%[0$"#'QBF0a%)Ab$aa8%*-56ILL1
3!$&44DG9H59#EfMjd)T1HNQ4'kG9-884A`ca4"03-&%%&8Nmi33)-#338%4BeA%
EP#$Sj8B,HM6d4J)U01PN4F[9i58)2%!"a4"8[2%''f+mJBF,D2M`U"Z46PTTH*!
!3988U+)q'D@D)&#"4"*1,"&R!VMk@4#G9e4ADP'j0MVUVj4qe!CP*SEUC"R(3IR
SUe1k#DHFG0U*Tjkir[Q%'@CN++5AkTea4N9R-0TNPeqb#B+dFFjCjjej1T&!$-X
fDmDc8RE,,K452$&%%90-m88636J4a"&&5*&QZQfqq3@rrJ)X--%')b`&Rr9DeN!
$!5Q&iSq"#4I'Fb$-N9!GE)JPKS3dKE&B8@r8)3GN5aEdX@b-&IV'5CeKf"CMf,'
K99B'N@PQ3bk-39p"#Ge4aTNqMPA85Aea0I,,%$*'DP%q'U88($'0A!CBFL5QN!"
4G03"4p4#K(G(I+MP52CUU)BPFaNeRkXQQ##X!8A)6SLGJ!KF`)(P'k8F,BF)#kp
C4J*V$-&B@S%PF%)43b$aa!Q0mld'&AQ`KZX*Y#C""HIS1[j5%&Km38339!543!d
ab-#a3(EGI*TT8Fp"4eTF$`L#EfdX1,C8Lm8m8aN8HJA#bYAPhF#1V-(+E"eYJ,"
(!j!!*f%44R00mEYD2I#C@IGZH0H'XFD$*6l`jkmK44PKN!$"2RrZMamCpfYF-4*
BpaYE'Gi(PJEdS@KCdYm10YBaZh!("'4)LmYkTM+Y#1p`#cN+4%*$&XD)a5T+mPL
+aL!MFYd&$JYUd'(D-iE*JF8rkLU59Ba5-a!iB@HRf8eDSQDT)8!KE'd33Qh'),m
bM-%pF5XE(A6`Q3RC48Bh5F`)he!mr#%[21[KQf+!pJDS$8JTKe2Fr)lS1cP`+'d
KC0,d3KH@+CAaM!JXN`EP-%EYFDpM#FMG$%p$["Uak5XabKN&RfG"Uh$2,Mf-PDB
ijDRNCC&0Fp"1(S@9J"lqX#Y"(')4ai!V1)KKJC@me0pN-XCF*D"'-JRFFd$*K$H
3!,"%ULa$+A%ea"@k)CDJ&*mFC&#$'TJb!6f6!bl[+*!!5FCUMhF4T&(%SKMII#8
m2SRJle"6QcXFXL"hZ!KSD#+m2PUa29KFRL69Q)!`kXq8[J-H+)@`52UjiCHST--
6@11'GEE6+lmd#P5N-NpQJ4+2HLc+lT5*S4k"5e$MFX0Ym(*0"0e(0E84&lR'+5a
AVFYK%2YA`!C@X)-PM*J044&9b2!'VKRS$S&C!fV#Nce[(JqFbJ06*+rCT%V@$5T
D5X0FR)#pPFQKNh1SCmDF"Fb0N!#%6@+TM8*ca4cI95%q4*!!)#M0#6a60T814AL
S(!KB"P!qi8hhqH99XaUHVBk[-ei&kdp0@52I&H%KAb%J@N&Uc)p"8))[Uam)8,#
C1r`2,'j)!4*"L$HDFUm14Md$8SH(KTMN5TTKf!,"@[Hkf(9KJ3F-iac(+"N9D(C
,8%$2!Qm(4M*PF%ZVUB-B'(4%-b!@1iM438F5m$kCI"CU,D6I#qqbQT!!'8FXkC4
*M0``f`5`T6(-mY*APR+TNKfP3DGT33[ZdK28b'a!3J**3fbC'eceE(K8E0m9B`V
*QY'@,)BcfKb(9aYp4LfHd[XU@8eC@kbUGdXSi&ijlhZQd2l8L&QDShr2Gpk4+05
rR35Ff!Mm9G#*,X%bNCaZ!m2J+6MiF4#Q`i@jPi)&bMHXZ4)I5'lEN!$miSV%FN!
`J18)@[4`H,3@C4HehR@Y2I@JI$!JV9f18"Xac+8`TcPF!%[N,3J'5U)+c8N@BLD
N-+#3!,@fE&j2T%J9qR8))b6E$4C,%V@R-HXNY3'*p-#Q(0MBi3e`f@p#KL`9&&J
5L%*dTGr3XaT2GRLSpaT"FU%%!J)-4@0SEe0PFRCPFLjM!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!@!!!!!!!!!!!!!!!!9%9B9%Y"5%`"!+5
*5XqNNhDC!!!#$!!!-a-!!!&A!!!Bj01qAA-!!!!!!!"%,J!!"!JS8"G"J`'P!##
3!!TH"'%rH#aX+%&8a)R`*1#kb$#MXiJ-LSa"mfC+'6Pf6VSBid)!35T&X&"C%J3
*Ni%!m2`$&4#Q6*SfFHVN5E#S8D1N%LPj&R$'K)!#'("Xk%(E9(JI)&cpS1%U#&C
HPAK&jTAGe4"3cXSk5qfX[DXL3&`&B11U!N"c!bV!!JM!!(3""a"8%(#$Q!!ZMd)
"i0*$iF-ZXi6$&I!"P5P5A-"j)iH1Nc"YbVLS!`)!M-H)!@34"k0[!"X"6JR!-J!
(TG*&"`i%dZ"bjXfG2iI'$B#+A`!Q!NjJ!H!9!#Pdd28&S#d!V!"L"[#iII5!Eme
ch!#`S*bjFqL)!KkB3bF-R6Tc5T-()!0%e1Gdi+KRlaiqET`&(853!%*09!,!!C3
&a-&c!JQa""6'"53"%94B8B9!!(J!J`hrr(083&A`d5&"$K6PaM-M"L4'85p80!#
K!N54-@MHJ*K54SkGKJ-,$RN$*iqF0'I3d!'4#N5-($PLJ'J54JkG0'j'SRaca`8
)%%(BX!%K"D2'166,c'RiN!"-4""3'VC*-fG1QMFTLB*!dl#-Q$`JcXJ*iiC1'6)
Jk#L%Fp&1'+XJ8***BbF0Q6TKf-cj54@V'k3YZ,iaNfEM'cPRU+E4mr@S'jaD3FJ
T)rIXQ$)X3,4j-pC-(KCXh@#YXc-V'U9cjY+j8l)-#$0h3F"TQ0P0@K#82BI"b3E
T'4#VIp+jM(--4BXf0lipH4LfC""MjiaK%bC0QiD#bl3TrMGXe6"Mk,Mi'A-QD$P
ajFbYLlTbk1"d,SUTFa*T@*b$GcUm#TPJ@$Q$mmSK`dBRcVNJlM#GM6cdEYmJP)%
(('bN-3ChCT6K'9%r)965'9Gp&YSFG5$8R@II%49H'Z19jiC,9$"eS4aXMA%B((6
JP0C-kF'"P&&LT&%J(9"GCjPRFSdQai8ri6FECTTa0YKd"2d8)SB26586#"3ee*G
j2STB"N)+UCINHE$K"*T-,-fK3d3r*H&'A@QNYGH6ERa*8!)*$$(B9kU*GKFGLHf
d%AmJc%%(R&NT*)91HjUd3d4XfTQRIAip-9T+4J6"a"4&e,NR@)(pU@G*G"+D3&X
JM,(LMCfqd3D"CAJSf"[NS93'N39C'LJGDUV!CKTQ(&T8SSYL5B88984kSaZD*Q$
S6VFLT@JCM$S+U@pBZDJRE%""-834[`d@4af!XXUQX*0k0YKb++QiNDZBDPU'@Q8
%#m8Ece)&JTMAY3%##YCLqkb0hli"PQeZZ$'PKbQ`qUiEm8idDRdHaXSQ#NA!GaG
1bd(PD@UJ6TR3SH[Y'0KBUkDJ+8-E%@Z8XERZfZZJDbB`aD[3[SP9[GRqG-9&9KP
-DX)IXaa'FQ'mA-De-E[hCmmf)qbA`JR-A*GRH*,aeFk"i3QcRRF*A&f!$XZ"dl#
)NS`X#)dq@J5cS9D&%VD`M3XSTJ+(U"4QGCK"ei()dJP#Km#pS4-)rqAB%"Y3SG&
@I9KVTr92CehNaQ[`hL@[A)IGZMLV4JVZaKU!+E4%'A@K3G-E-U(%C+e"`%'UK$[
5pUi659!"3JXJ$%&%%9EN'FE"kESRPe5hSjkRU!Z58FCU@IDj&%['@dkIClEKEUT
fUISl"kX[0$!#5X29)6`))Kb8%%-CZi#'#0CMciEfR['J*aR#Qb'q$q@lNIhf2"b
a0KYd&((Yqr(2Rri8BlJ)L[Kh2IQGMhj&J)+d#%JVbC5K9P4!3K+FX)3[$'&EE!V
)5+"`"HIiE`lE8N(e#ZJr%2!!#YU*(,%BD%$dQE"KKTXH'Z!h!Q3eTRaQF#!%H98
%kl9295!`@4(B&!-I2K#)BB-8Qf"J24[5UJ%0#-K2[+F3m#AT"$MK#PRiC)Bkb-p
$djXLPBT@+VpJb9-bLG"63+A!)36a$D!6`a[`m"2pI'eR8pY)mfkQ%jHmUeC9J*3
&Rp!%+$#K#&4)`K1Fm"2-P1ScDDQ-(91#Tm@FKA"+fD1-f#2'K*!!d934Za[c9U4
'U1!T$+BVN!#R2256-MbN+L"S$8Amk,DY'BG!Y%V$hS3hRM1F!59RS&i$i,!D0),
!$Qm`5`+Sq%QrS+#08#M*lB63QM'X!3VK%3dFa*!!JN&*d6e"L)iCSAF5kF&Q-*d
L*9E#B!DVD%a%FaM0JHEfNcBQ"fM2fL2#VZ*(TB'&8p6##KQ3!()#1[a%F!r*Nca
c13EBL0-mj&49'!P5[5G!#MjXSQ,Mj0#'F(VSQG++jP6D3-dh@"1E1c)G0`GP84K
QP%T$)i0(R3P0DC+dQYI-TNUl'8@"Z1G)PHRL&re5QdrKbCjjR+J)'p"5M#k65XG
b!c6RK))'B*!!LPCX#%S6B,%hC&81+)8-"PHQZ$0X03%Z-SN6ESFBUfl,SP6)`fL
fP9BkZ'Pi@T'$@0mkKEM1P8eep@ZkYXA6TXVKT3RCD"Y!1J546K1R+0AQ5TPkdF-
q05%aCDaMEfV5R+CdQi@Y,',Ii-mbD0DQ*6fT6N(,8Y&HpJd"2He)8qYCbI+dTjf
%EGD3!$!ij#L[2ML4if`#0+"r4DJY2r'LJ14T&D`d*)BJ%K&5!%GFjNESZAGT*%j
%)$)c$SGGr#3I44Z!6'@q&SChiDeNkL1(UQ+`TV1&l'V&N!!B`qCT8T6KDAR*`+B
Ke+FN69$1AI+!J[d5T'GN5-mFkV5A-R`KC!hQk6F,8NXX,8C2e,84,q[J5f#k*!L
LdBjK6$@(21K*16m**8+CTK#+iFN*qQ)SQNC#P6"!5'0EBCG"hH-Zl1iS,3f46N5
UYemf`IJNMN&[Hph+*[JqYV0E9HPH4lXb1'eV$(@!6pfUE*8T*m#`',`8(5M$j0Z
1i)Iq!NS4R%#%#4k"L"NX5"*Hm!6RK2J08V%2QjCkjL1Q13K6b))6,TJ!)4U4,QN
1p+$CP-3HALq(l31"%kV!"#BF'SL6V[35QbLC*q,@280J#LT"F)+8M-8N8#'QF%k
MTl+'UL+RLYkUKRcT0-1Ke@1S#!V)S+Fkb@%-+FJE#2D!36Ca`DeN"HCC[c#(Ai1
J"r0U0V"hJ-&MXiQf6AM$3e$!l&mRKYGf3d&V&KIXESpK#c$S!JK@i*&Z*X$DIFM
2C3L(!KKil0-&Z9T%c3NG&GiS$6YUhQ*-r66,3#mM0rU*5N9Mde)e*$'FQXh"2BH
R)J`"#A@qG4QdpiB@H18LB4"$I34QFBcR+5&eB!0@CN-C84lUMLVLhKPD)iDdL-!
jBePPe5VR'8K4S3T38!adY)1Pe+bm5Lc$Nlr`X*%m#V22L2C-bCq`-"@JJ'&8qLT
+Jle6Md%GL$i(1JU@6SGJ$h6Ba6Df@kIZJQfk`)DEGF&4,*AbM8!E#QYZXa1131e
hVrhL6h#"Q$d$lE%,U1apVlC9ikfI6Fl,hQPA2,iAmLUXmJ3j1SUALTDNG-HG"L9
N-K0I`#L`*$5p9&PZcPYJb+588-K%pRQGEk#L,kEXb-HK%Yj2"X-9RG3YjQBSc[R
3DC3aSdQBKQe!P8eLqBbjpl9D$`pGYlRAC#rZV)#GdeU2XeHibV8-aDlVAEpbPql
hpI[KRj0JVHUa2EJ9c0X5-f8'aDCaR`'$%,S8rZL12rSR`+hbKa23CMrk4`I2Ybh
jYbIiddC8!%GX)%Gi%!4d%"jHPJ!QN!#!D8%(r'G3'-46M`B#J93%A`!&8[!%dc)
&8r!&64!%6K!%4e!%8Z"@Y"*Yq#@!d,Ckm"&XlVFY8V3YS-B8eZ3l4j9#X8F5TR&
Mdq'$5a9r0IKX)%#!#QL!')Jr&L@"&!J#&hJr'UJ6GFG6fc+$9cH&@dJKq)1&mb)
52-!$8D'&6"!'AS33%e%9fX%'+4"X23"YpXCNh2)9,3GYBXJ%*S8Q-14r#3#'!IK
X0kKEFZ!aBGD%!eJU3j!!CB04&5KN8[D"!LE!GVIQ"PkB!(h!D6Fd+l@#!SGiKhb
ML$V)C2ie2()3B)XK"`3QCAR5B2L"!LV3GB6BJfcL(L5a"Tj")HKd90,b4R%d4eJ
#HLFKHTbNK,r#*,Qb-hAP%NP3+pcaHSGa&3Yf+"biL`@"*i0(0QJd%hLL6f8%8DK
56V2'M&F`Ejja"mb$+LThCc8RFP#K"T5K4dE&&%cQ(P'e,LD4*AQ!%0Va&T3"1)R
a5f@a1'&a*rV)M14S+JLQB)Ra)e[c-pJL2jka(,ki&X`)M+U4%VKhL%Sa''-Q"rk
#&6-B"[YB%(89+LP("Qj38#lA*#HCK0aB28c)K`)B,8-J*R@"!TeBL+0BLSN)3kR
BL$VTK&68Mb&&9AU)9Y6hP(@eI@f9ILBaIRP9JB(eIASBP%**JdPTLMLiL-2fP,V
)M"9f+5B"'*Ha1$Ka"XNd18rT(X`N+MGM4RFJ)c-a-6XaP`A44STP2')`5QP%"MD
TK$Kj9B!RH0hLK'[JNmR)"Pa@"S5B8B[TGLJ4,h%hGeaBKN8*(jAj@Xf%&*LSLC1
&3Cqi,DPTC$'@C&P6QTG*Ab$`Q'-5QC-T+6VCLDY*NUN(PQ-f"cc9"rmhH5Y$%Fe
h*Gp&,"9$*4Kc*G%)%rL$FKR45+GANXfa-iIS&HH$'##3!!HSNNiT)4Ic5&dBm4E
S9"I)9eR+Ta9`F*`0mAcZ#9E5"eMEa(i0X)0IjPU&8S2qedEq"9j3)!4r-JD!*3E
qjeDkb)XPX3DJdT)LN!#F9h&cQ3%U$qNAEZ8HqlC,"(8RX'Jm-)-fr!&`pf3[+@+
6if@C'0GfFa*96YKSrVH+!#CJX)L*e$H,HP!'q-&DEZ9fGI8RCZ!%G5![d'DDFNF
`MK0h2IT!30S'rPH+22QI1d'MXUPS3p#*KZL)RlQ)61DNQ2N''qKr['Q5[TPIJr+
*NlH8Lc*9raK!H,8hH2+FIl53!(P5)GI)DiP4&bQfS$M"(5*!Na+U%"9UMV*@'dK
46L$k"SLM%#(k6Ki@4#,5NNT"Na&5B[+$"J1*+R-!11N*3`f!TXLLTJDiGPPhHI+
j)p0(AmLf)GFhRpQR9QaPIS*PPAEe*PRjIZIh9h5PIPbC!1eRUbk9NlpjS#JDH(A
&SY$QSRqASYhP05PaV-T5"2l(GX5K*dSfQBi*Q@8LQGd5VBXjVIQ609c@KkFiL-P
+V0V(9LjJ'XF"3!*NGdpB+Y45&J-j"k6B"P0JBZbD"LM5LEF@(VP'B*TiVXH4VUm
U*kjk(*dBX!Hl+R@e"',"%284(D%"EDBc"N+3!!GBH4G")"Q#aDdT1TAS@JFUDK)
Z`+ENYb-81bFC+`FHDki,k`)L'idd-KT1Z*@MdE*Y*`BZ3*1Eq3DMfDb54QP-J,0
Zal-f*AJmB5"P)&Je#`GMB%9+1c4X3!A'3CRPQV-lQkC(Qaj'3"b[JBG%Ul0'1e,
T@LThF"GVB!9%`5'%!fe#&,CCqkP(#l,(iB5CH*N#DlA$LV9MHcXZ8%eS3T91Q'P
$Q`!D4!32j)EiN`",D,J#`BfambPYa++8+T!!5)'Te$@KidK+1l)'Eh%((*N!lM%
EAp'JFq+-b$+TG'SIA536HH"('lXkVF-N*!+j4#!&9L!&3LFa#3&HaK11FVSD!@Q
TPeZ3!+plSBhVT*1l+,$jX@+VY519'&4UT81*TH1DJdbQX(4JV%(%3rjhT8NC!PR
+L+b*C(QJC-e,V,**Qk'RVA##QlmCR&!dBG!j%h0@ChN8+Xl$0-6,B45R1KNUMAT
8U-ba&ZiKF1D"Hlm&6"$h'fUC)U"#GL-D0(*@+jT8(eL4Pm-9JS085)H85)Z8&DN
A)A0K"SRKRA8!RYTi8$E4![Aa%$0"()Z$&K"b0fqb"Lk#%K!X1K6j'@rS)He4%,A
A%(Qj%bH-+LG!I'-@K"VX153a"R-J""a'Zd(8")XN6+TQ62[9U@0NPdC$QQlPC*b
P@TDP8[D*Rr'K)FJ"IhXBV&#dRf&T%,&CT*TjY*a*KR3`+"r)`80!5)D%5)VN")J
)!N`NLQ0UJfV'CQj'[JN3TQkJadjN"M*B[H%l[QA*Jim,Z9IJ'EY"+l5A%TrLBp2
MU'm6ZU)Va%Qb"RTC2#)$T9I"HNS4')1jNY9PA1[d'hQj*)1j&,f&&@[%(l3-[)'
KC1Ue2,9lNdafC*k-[RSSCAV)GS2RC3&BC[khQZ$lQi-mPPKS!R,mX5Zk+%HjYpj
D"HT""!8hT(2X-R'A'R*JcRY#L(1J`4E#-)XjH1'F!*j5'HaVQphb*3r-%-@5*Pp
*cmVD0@i39B`-apJmT&35@cY9QHG5'IJ*V1+U88E+85M`d(UiQQ`L"MG-L2RX'E4
C-&lXF*2j*BTCd!(0[@qVKdjUdI%b8k5Td4MNdF1c"L#p'L)G8jp8"LIYdSjS%$!
e2$,e8'k3!0%k@Y-Ic@3K2CZPeG-rM8&RHFSJX-R#YKYYq4Va0#ACfRVj36-kN4M
fU#GkU$XkjKY$[#-ZFjLRR*J+AG&$h60)ICVEBY0KJ00-eMk+#bYkL,Lp4&BS)!*
F!!G#J'FY&jrh"5FL%*5VDFf8M-hLHleN1G&84-bpe9kb')""#BEDLp#A[#h3h*M
3YXrC1TQ9#CH"mFm'6BL0h3"Q5VmJYU`T)6Ji-GBE-CKIBl,0YDR``F@*GG%GCG6
2*mDdG9CQc+[hHE@bcG,HLk#Cl"j)d"4B*'p0dChI143CX4'F!8Z")8X-qKA)#bV
Xl-il3aIRJK8fJNF#"KC1&pj@EG[D@!G`i+&%$4a2Bk+0kmMc3N@CKBZZ2EmqP@m
mJa@d$3,`rC!!r%6+@[,$CQ6EG36@E1NC6V-RFZSbG`-G$"Se)K+1$F(E*-,I4#h
64ah')B9DmPA'pBRFq1P&4R%'*aP,VX%QK'&5D1"rpSG"2@2Eae%9Jq,Fi4hGJc(
GGS41++`BZC%I9(%R#Z(GD42HH$,H"@IHmCMH%p`Z[`%jpK(Hh0&[Gc%@#KNB+,`
M@ce2"J)EU@3JaqIHRJ(I[%GG68bKNPJhGa-h#5)(q*fB4(S(B"ehib%h$F%%b()
'`p8$fC[14"ehd'&mE!$SLc-EF+[R5m2RG+j9f94i@iH&E$IKBH"rB3F&+,!'6eh
59M'CRDMIM&9D39#jkBZeN!"Z&CY9Kf8+i,N9Q-i#`AJ5Q1dpAXN(diich#8HAe!
fRmIGUfc#aQdmIfmmd*fG+kEBD)cXT'rKMpr+XQi9dClKIRXX5(hX`B#m5)AZ[(4
mT(EXXk*Z4S513BaP-j8i"TGHPmlM&j!!M#lIVVlKcP%pql1$+l53!0aTNJcDFjb
CiNkfEUJ9iA3LlYV5rJlZ!'r[FjZhGUZp9%Q)4,V`E4"hJ1XKJJYYGjZL&qmA%6r
[@%[akk`H'6m[eQG@i4&X'apil2cafp,TRkjB80dY3DQmdU*BUCi(mV2UQ!RFVel
0EQAUQKhVCaVAcD*M-@IKH84VZfld[YjB*KlX+#i'CqbV6[A@Fp$MKNc3,VZpc1k
XB[2X34hYFd+Z-SiZRle-KYicNZlRFX$SJZijd'B80eU,QIid38QNkRbdI9lRN@A
T+BrTLkRTK!McDm$6SZl60!r23Ge'-CAc1lrb@,[h)k@E3BpkBNU+05Lr4Cm3!58
RHU)L)1R!"PhP3UEVkPRCN[(dQeAF`TlLa*kI[iVe++2F"Xfpb,VebriecIkXBKr
(C-pmS&RYD$r4KSqYD8(UM"r(E443N!!r"Mb[Xh"R8jE2*N+rq842[e-!2,rcMrM
KBb$5SB%a',D4*0'&)@j!AFYPbkf809M#A3EYbQ4`Fbd!1qlB+Ire6VpBqM6j%fE
JY@5MeN%,Ih%("NDmF!R5,RDdKThJA,+'LKJ-rZpTc)6kPapq%FU*4`*`Ch5bZ6&
M0*aRB'GXSCdJ"q(K6SE#Q2KbJS-KPE*6Y"&fKJJ`6mZ"$GbFj*4PFNG"'%amLAr
p)K0M&H5&8KK-`16NN!#([(%(2J5Yf@+9EEGF0YBApFJBI8*9a8irBEfUYr@)dLQ
5GNBTlCfPRk)kP%,`88!Z)GZJ%hq"M356K%-+k3LC*EbZKrZHPF5VClH2fB%00qK
@9T1e#`Z2V3r02IXJrl,J40Z#&'E$&3Jj"k&3%J56EBIT41fYj5B(FjmRmR'3!%[
**)Ibea$bJ!k!FDr"Le!'Y$!64"PqUfT-)5AF2rhQ!IAAA4*8k'L[Z)IlPmXkBHG
!$Z("P!#U"IL48"H`J&bbMBSp-,6'(m5F3EYcNqb3!)'!b0E+D#%C-%V*V$@GVpF
NLd,EqdTXm5[l"6K*S``Pi@rC'b,J6FM!`K%DMN04X$&pC'#dM1(""Rj#L6NaE@!
L-BA+J0ddJXYT$EiN3J3'D039Z)MMb5lJK,d`T!qS(VT$%(`aV3R0Q3SM"!lYh"&
-*Mj"QENQ`m%%JCd6K%T3%2Td#`b#CE4-9EK09XqbE!XIB`A5!VDSHYP1"*%J%e3
%8*!!#Q*",JJ'38+UYLld""+`#B!1KK@"9i+2BY*Y)d`Bl$0SKcB3hRC'S%S*!3a
ji6QD1+#kh,EJ$c1aES#T-[",6Xb1J$m"51XaVUYMI`L#bN1+00%&$,NbB)INMFp
5*ri(+pB0VCJ#(G0,c!Jam9`N44lR9X4L9A!"hR!1J%2(Y,,#)P0BLp*KNMJKUQ9
0XPjE[)YCdC,N%Y,JK$LL4p4EafiRY83kF"E43&TN!hMa!*N!YdJRiSa"S)R'SpD
&%,H'!PKFHBS3pNIPDD)ji!B5J`CCGl&R$V`!0m#ih"S-B!&5V5$!Q14J"Z)3"QP
F#B"``8E,1"[MiPcXH`eKclM'hFJE&B*[V'(eSG'K!H()C-JIjdJ55B!)%!8S-!8
B#CZJAX)`XSfPHhE0p1!9,([B#i2i03i$f!3EBHXC31&d,DR"*!F@'b'kJa-Y!Bc
(-e!H"pYLE)b2%C,)L"VS(TP-DkXKr1jUHDYU*GSk4CblL0Y+3+k'DAFA`Y91-Sc
ELHL*Q6+ha@"8+j*4"-DY&*Np%`DNQ0[E+fR-+GSS"d-(#P'+Q!)0KJSf-UDSaJ+
1i$JX+N!-`!'T+#1G%!T`%$Y#"35E$MRTU"fED$cdTLl-!44jSbLJ$b"NM#a'`S%
9`'l!eRq$)Jd!q68!!!:

--- end ---