From: Andrew Barry, ajbarry@ozemail.com.au Subject: BugHuntLite 1.1 Welcome to BugHuntLite, the free memory protection library for PowerPC developers using Metrowerks CodeWarrior. BugHuntLite: * validates reads and writes to memory - dropping into the debugger if an illegal address is accessed; * requires no source code changes (other then calling the initialisation function); * only validates memory operations performed by your program - if you ask the OS to hose you, it will still oblige; * is free - memory protection should be a right, not a privilege; * is wildly incompatible with Virtual Memory (and probably RamDoubler); * is written by a 'rogue' programmer, with no inside knowledge from Metrowerks, Apple, etc. * is only compatible with Metrowerks CW7 & CW8; * only works with PowerPC code This fixes a problem in BugHuntLite 0.9 & 1.0 Thanks. Andrew Barry (This file must be converted with BinHex 4.0) :%'*eCbeSG@jd,@aTG'8Y-6%!8dP84&0*9#%!!!!!)h!!!!!!,Y96593K!!%!!#0 `FNaKG3,r!!!!&[rr)#!13R9R5(9ZG%aTG'8a,M%!!!!!!!!!!!!!!!!!!!!!!'4 A!!!"``(C!Xm$4!!!!!8!!!!!!!!!!!!!!!!!!!#'!!!")2rrrrm"!+eAakQY9mI (!!!!!!!!508!!!!!!!!LkJ!!!!!!!!!!!!#h9!d0#@*eCfKeER3ZD!!!!!!!!!! !!!!!!!!!!!!!!!!!!!$M(3!!!!!!!!!!!!!!!!!!!!!!&J!!!N!!!!!@!'J!`&4 &@&4$9dP&!3#XqLjQV2ppMJ!!!FB!!!#5!!!!k3!!!'&`Z8%G!!!!!!!!9&)4!!J Fl(F)BXM"fC!!pk+mJ$*M!6XU2VH$&',I[K@3!,GI9QTD&T1q0)pMdT*kKPVhD*q %3$N2Ljc`M,qMErVk1r5!%rDJ`kG$V'FATqehhfNl&BVN2FTarIdl,Km8+"c[M&A mMQXDj)Kpf('9[115!-9XlEM1IFGe*Z5-EHDi,ThY!QJ(AMpR*)9rX&Amm4!,95$ 'FeR-C6!![*j(2*ZHh2LZE4cR3JHAk3Lm)jC#M%!4dZ[MrZ*-Dq+0hjcZ[c"rb0a B#*!!2a"d'"6fpfM9b[(iBkE-[#+pcGK+"BfQ`6(Ymm9-09T3@bF"!&'er"PHA`E SeF[$"VN`rmpmrE!2KB"),`)$K,9m)Dmr3bL-3,mAQ%0qh)V,E-1&X*J2&*[NjY* -hHZeqV)JbREk-[d`*(CJ"-,BME!-"'%S%`4pS8c-%#KEBcf0Ubi"!!!0$44#G@G )G@jd4@jN6@&bDf9b,Q0`F!!!!!!!!!!!!!!!SUN!!!!!!!!!!!!!!!!!!!!!!)B !!!0D!!!!&J!d!-"849K83eG*43%!V2Mi"UeAaCX!!!'D!!!!2`!!!)8!!!!P0@2 RQ!!!!!!!!"c'%3!)(03FJKK`m0@AfbSVY9d@NdNXl#GL)"@qP'L8HR6mbTkKeMe Qm99*#*6cdJf16TZ@dk(R1Ue[qDlYD4+H#PirCb5&IjR"3bcdK&M2&%r+,2k"(PF HkMMT6$6ZL+83,9Jh4CUNjiYVE()#J2b"B&G(Nr`p@V9bZ#pQbT`ViDFD,DLe59% 4k2H#9PaQ'bk%M5'[eBd#2L6Q8m8Q3Z'@0"XJ(#38lJF!!!!0$3Y#G@G)G@jd6'P dC@&bDf9b,Q0`F!!!!!!!!!!!!!!!b-3!!!!!!!!!!!!!!!!!!!!!!N!!!!c3!!! !&J"S!%"08%a'3eG*43%!V9I#fDeAaU!!!!%H!!!48J!!!*8!!!Ka0L[16J!!!!! !!12A%3!)XY&i[M`9'16'H9*E*E`"U%,$#U2c$B!B+%lce-b6I$j!aEbYXP,EC6( C+5+Ta`PX#(4UdlT(qb3%RQ0JSUk3!(CBl`-p,VXh@b'PR8B,S!1$I*YhjM-EUJI fl)`l91L6h$Xj+qHT5UN$)6Ej$B!#NqDTh[1-qSPXGA'lH@VjZfVe1qU@Gp401HI [(jq*3QQP,!!!$-$i21E*EY1YlR1Yk'DffAQGC"rG4eDf%NUHNReibJpII+eEilG Z#EeZ*IaSYc+b#5@EVE)er+DrkBLXiHRaPHGDUr@%Cia3FRXp3Sr`*-pMA[X)Fc2 bqmNQYpQH%(ka+,H1l5Imb1mMQqbA6$MY0R1VC"01MYdQQj(EClVT!E9Up2$&P@a #b@e'ET00IK1%E$,QC1-*3%#MRV6&MKk+4JpANre*4+8,q!mcpZhBjGrK[ak[K[F %8IRI6iedGBm-Q)(%d"$&QSqdYi3I2$65&3(P`5+9SNGMMpZ@lN[KA3+`6hM%9r$ S%plmklcrI5eGH,p!LTdIK5c"5a0p,#G4+,hG-irrF%kR5#j,VEPc&-fp3ZfjDh3 L,e&([SELq@EUc1[8RFp5AriF$4faU&TimK3p@HaRjjqVm4p1EjIR,ALbi-Q#*`Z H,(M+`P-@RV,`P)@R,$aPhr2NaCYc2%eI@leMMF2E*$+6Ud20&[QXV`-rchKG+*5 P6ZXbm#Z-ep[m2`#r`EM+r(!@+8dX%d@)UV-2Nj+@)ka6RMe*hV3F,@!6Ud4eD'& SI2@Ur8pPDT`ND(Va6a2)SC!!N5Ph)"BCVb)`cX`RX'eiD`9@JVG"B+8m0eTk#eV EmAD[pG$VQHH-TepCr4Ykk*fT@9e)Rkj+SBXGm&d'ra,X8cT6PCTH*!@GkNLIhZh ,CFMVp#)hLhpdB[U2K3j'e"Vdd#[2FfB6m&A)EB48f0L"Pc0NM$24A#`Lq[F"cY2 *Cqb#Cpl*B1b#2#qmF%I,#Kf`06q)YpA4R+PCU85@+QH,IiheJmK5lk@b[#lGQPJ XG&%kL"BeRb%[Br`L1iec`lqUeNM,i#M#+mqZFS(a@bX`cUTHB$b,'N3Hpq'0&QF )pf[kh1TYlPEkD`G5k6HASqf,dUAfEjBde5(pjR(b"IG&U0&,8Kkj`(YCm1%)j3r BhHFH68$IR9-lLceKMpa4+q21#PZR('1KXYMhReaEI8Pdh4V(V*SiK*GRe(kLFAi CqcAqSjb$m[V%*D,B$cjebEq,!KLf2[c[3el9)8YQrJAJDXK5j["I(l)mEi-c%r[ HjeCL,ckc%V[iRCABprpab9mKIE9jA2*$ImCI3Em("ReU"IBN-"q`1Q#I"ZB&9Jl X!ALm!bm4B$&JYi"T`(i)E!Pqki("%ld"ALhm3CYHKrBHB+bp!)dbD2`9f%9S%(M `5KH3!0YYB1cTK3M*bri+cr23EFFrHhJ@'2aiGYNj51cAK-i#1*A3rK'kf3Q-[A6 B'Klf%SA'#m#H!bF-,!H-[D-ER)N(Q42bPe2!f&-e02Vm&I*ch(h`iX"f!F-mNYX aHdm8Ckm@RpQ[*M$Ad'r0bNRU*+QBZiSfPrDUjc(RALD[YJ$H&G*bLe5@1I"DL[A 6Je8T082PBdY2Tp3jHmipG"Dk9be*[3%2Uq5,G9YlJpjdr2LA6p50H4rc0ASp[[` qUXc)VaBpl#Pk#)B1b[Q69"f-0jpTl+A+I)CUBe166F'TB$`r5h@aVbK0`CYkEhk 9r&SmVkX*k4DbUmmFrNh48d24dqRV,aDjDT&l9eFVFM8,@8iLpeN+fAf3!,N2B@d "[#[)H*%LfP@e4VdK,52[eZQA+3S2l5Tk!!q&A5"crGf8DUeh,[2UAe+C*A!F2R$ `&BFI)HQlcSbVUk+b8&DDfqaXN!"QpMGk9bV4*3T@jk6'6j!!QXIq&m4fe2LBCal pm3EMi2@5K[lmYl0"j0`i"3qck1`J1RY6MFHqS650hGcY3mrqdeI01LLM(pADA2- Cp6a9SKqeX@FQQl3V5'!4IIf5dU6Gd([4$hq3!2*kSeHkKGcHTk#[3@cSk)+',S6 X,XMFKA!`$Pi[mXe3*'LT0Be6dM+bITq![Mld*[EZ[6RXfZmfB,pl&MZUaE[HMl% ,LEhk(FKmU,$RfGL(a9l0f2ei+`A'Yj%p!UX3qbaMZm4Hb"MfA1PE!X1H*VdY-1b &(PVRHAKhG(KKPcITmTjhHA-Zlk,,HmRPr@SGNhd#H`!Blmd1Vm(PKGBcNq2VRQ6 AUqakPDqk[0[V2-Aa"*i5FAP4PpITm[TFRZ9L2eh24R'c9*CFhLeabkM%flGjbh$ Z'-9CE*h#MRcGRJh-iGY&VR-G,fJi0`cF"rL'NrZjcGqmDBJE4#YN2b,Q"@0mNpN MH,[&(BBacXN[H&AL*X-BhfT#!Z0E6D[3`,j1l5hpfeLAlb++NkrJX0BQKleXFJV [A8lKEV6''Gc"R$ei[3l(q9T'#HdSp![B6XBqbYSY!`90RT2h02NQXUA*mr5H*Yp 1YM4jlYl6j*[,PLE2jhZDI-Gj6p2Z`0jrDr+pl+j2fHR!@TGXM4hXJhNN0$Mc,3h Q14UFmCB'ma`0cR4,JhRSF8'$pimY$HBj'Vb[E'N`cp(BQ$QfaME@B*kMX6'$A!h Q14SE-mR9B*kMX6'MA!hQ14SE-m[9B"idGV)'pj,@jPSh60i*$1ZM4Y,S'MjjmT& 4SPm'NXD`1CKd+CrmiZ#!F8JI0NJb''VYkHmaU@4kq+PKdqMrV%-Z2Ej1X#@fcHT pTT%Fd%d3KNfLi`%6j[U0rX(N8r"fV)p+h`Q)fhYcCfGEJILidG8c1%#P[`dF-Ck -QNRbr#R`qCkNBD35aT!!#@SK&HRMJE#"FhfANF6D')#RSH5JbHqJRGVC3-Y!BV$ 61*68"a,Gi%52pH%jPU#5Y`+2M!`NB$M*Y&%UH5d3eFe%pf()fHEHq+IKdTpY&U2 ddFddPDFhbP3b*E*p`Y56CTZHl$ABm5JTC`@aCD$6TFP9J6Dpe`MVTYk5-K)MTRk Ucb$PrX"R"RT-S8K8%fJH'ZVV5HJF$CH02*F$V@f2'ZEKN55F*RS,GC4r%AKLVBm N[eAd)*pZ2hUB5PEq96hk2`!0$4P#G@G)G@jd6'PdC5"%Ef0eE@9ZG'&dD@pZ!!! !!!!!1EF!!!!!!!!!!!!!!!!!!!!!!eS!!#'q!!!!&J!!!)"849K88LTMD!%!V2S a++eAah%!!!+H!!!YZJ!!!9%!!"-Y'4EaI`!!!!!!!+4N%3!)!$cT$QF)Y6Y!cml pml9SkLdIK4D3!(abc)EYKZ6-@E2'faf56biM1N$*9PQTlE+Bl"54&#IbP+`-bL5 4%Fim6Vb@T(&pU'[9P$3%bRR-&(e$-rR40q-V!p5Bi,5qhHNRGAi"5V4MkKT(UrA Tp[8emq&db&dZ$3j-hUY+baa&HebH'*0Dd0QNF0BQ[G$A%`@FRU0ScG`ic@3pRVc Ac"D9JFjpbd@KC[ERUYP8U8N6fk@M3j02,PfeCUjCR@F1"j6$@B+NkE@i!+6!+Cj qRXfJ"%#*cE-4qN-XH!&bqMNM+Ac1Q2rVm3$j(+Sk(kUbTjDDV&k)UHY*#(Yb$)P j50mJ580TfTdp0Xp8Fj6YKL%b9P4JTR,b43j9*aD-cCX%ZGm25HcRrRG!Kp-VZX3 [3JQDRfEpDdMVZb!IGK3+Y3&DY3TfG664%mMqDj!!eRINX`!!$D)!6j!!!E!P[pG Z)8cMAqFC@mK#q-,1VR-P#jXXc#[*3QEi20HA8haH'cqJ-MG"2hUaUZ[kV-[JeLi bAFKi)EH3!0&#&M*B#'6NQ(MelGE(rI*CAhA2Lmkl*hA@Vhh9T9e49dRbaDaehDT ShE)ZUUAVDMIh,RAcIZP@22R!e3erEVZdbXrkM9X8beAhl4IZc$dU#eqe56+VZUE 1qmc1qCIp[b4jjmZXARXGY9IJ!IGkYfLmGfZrVTYEYfRUcYX"VLcQ6FSR#mjqA@p pmrV#jIl'PrA'0fh5Ya,TKHGN[VeZh8@GqhGTda4e-df5rC82Nhp`0fPCj'RR@pI i0'mG'VTY`mG)AJr(RlQmU6FEh998I#CaFSrq5pqiBX'MLA0&@ITP@VSdca[IYJk rT&R'AhcqcacDq,rd"4qkURCYh6HCGaR#Z'b99NXq1kQjUY&TPF[5XM5RF@G4&9f "5'd`Sh1,[M)IR1UUZLT[paT'[@3%Hkjer!@IV(hZjVIZPV[PT'@6VK%9jIM#THf e,Z@d9jF5I9@hAKmqF%ARYXL+YI@rHPi@5kqVNGDmHIE*RHfUlNZZ98)d5S)(+0l aade6h"4BC,L!bh,%+bVm[d'YHHRjTPZj(iUQkc(5Lh$EL5c*JI0dcR0[d[@6ZZH Ya[6A(ELe`c6SQlS*i[Cq-SLmpXf$F"5Z+kUf`($A9EdYIBi3L&L[NAfA&3rFSmf Q*(jmPdh$HHD`$a)GdZAGRpc[qGmhSafhYEkcGiCiNY16j'fE,Rh)[b5jUT88R`b %!`HIrXJRCY(+Bq#ZITK`ikc+bKiG&3k(d"jLXDM#qr[B'fjjJ0IGeZ0PrKmX2eQ RcE9[*N-Q,E"S1paefD90pm)HQ'DEMB9Mr24TPHmqP&AHH'j9P2hAie`Z,@iGmQA A[N-85AZR4lG+Ja'f4EZbM%T[2U("e2QP`eLq)LZ'llPRlbj"Jmk$ENMMR6(XS-r +Q9Q3!+*TTBiN'9ffFpCRHH2VCGTfpV6--UYDhbJ8PI65FdE+apI(dil*(fMKc+@ ,$NcJJFQ0r$XqSS$Jc"GT*N6"*9GeAFlVpql%Y)[3B&DSZpX0#S)ST'Dr&-009kH `88cFRp+Fb&5L"erPCU+I@#+Y&$i')i2e)J""3RKYRHBNkb'b$#l-!NmL6CfFiU5 bV,I#(aNHEf3VRehE[BNmm!$HD3S*39`VTafF5BD)hm`#riCDPAX0-C4qhETflr` 6R33J#-UJQp2Nq"B@Z+JVq,82q(6(UQ6fil3Y-YH$4rAL6XJ$h'@(#pb@j'TVk"3 3QIFGXEEf53`0RP1Z3p+!&KFY5[qqQ"GPd3Nj0i43NI9PfSL5&L%MJk%FEUkV'f9 B@LBa"KZr&2%G%6HBL36DeM)!GZ$11i8%`CCSrMeFd3E'2(1c`)B@Ll$p,Sa$&PY il+Q)**'bET[#2b+I!macN!#cDl*8!B3C5,Q$51+`J@)(lKd5UaABVG0VIGIfa)M ZYi[Z+8'DL$6R[YYkH2#r'HE154,iSb&fNCIMpkc$QQ2'$I$GGmDC'#hd")Zd,cZ "q&UJQTYfj#&FF!+Zb"H+VR0V(ACRaCUKc3$YLP3Fr*-Ukd$CVU&2X9X16Z*9Fr` 3&2bphILX@*!!@c%Jc*m2l@AREQV#1Kl`+-m$!,baKdjHGie+R3Di+@[F9rTUfDh !lX&m-3LY'KS"BmIrV5mAT-UQ6+Zd#c8+rS`"XKFY'!,9XN1(SFM%"3@K%U3A+"d Z*HL1kAe-Dq,kUqRr"9!b(00d*CLVADi+"f()XSkXcK[B$S1eAEr!$V8e!+CfC3E CVSTX46`PQlTYGa,F4!QLi&hI90#!+2CY49Ch2EEajDfk-'4Iqa6[I[51)C4P!Sl Vb4HMKBpbAp5bBBiSmA&-%r#,CqmI5hji%9KPZkUY,3(IjU6DF-5h5I,ee+*@$jG H)ReX5)CkM2E[I``8-X![j!ClHUjJ&dFQ2,*1haGV`(Hm2C!!dr(mS#5JAIG)*6I +j3D'M9qRKI&2YUTVD`fjDY*fIS1$*TDf8NNCe**q3L&&%DaM,'jH01EHY8($h@4 DF!if@HQbi+!cMJVpC$L6EbDa6mhKI-(ee&ek#6B(#Uih&+kJ)D@3!*8ePArIdI1 %9$%0pM@%8BNm2QRkDQ,YP5(,"'CU1qT,)DpGXZXZmciJ`j!!3C%DI0-!bcR1cJ! @!)cE2lDc#%BFh2)pN!!!S(I80r,Lf2lKaJl,NGF8!fG43NS8$fRk6@$bJ4SXLXE mjAND$ChHEBZ-HbAVABeKhK-6'%rpr#P`%YkF8`XFj4de)MeNaZL9d,B'X2VjN!# I28)`Mq@1BJJ1P5#(-k,RC&Xc6[Mc`6-Q[T'f[M4IQr%ak%r@PeJ!"FBDDK#4-j@ 'G5cT69U8pT(UMQM43B,2&Z'mdC)2pT'R0mHZj9kPE5-NM*HI5DHe-$dMl(52#4Q lVD(EL4HSAGERc4q-5,&jXmr&F$0A$I`mY'l8)5R#m&K8XeiXI*AVcCfZ3j,'B") (0C'RV3BE$Qij5(DKXS&-HBRS!G!YHM#16+M*3LPrJbL"c#+4bjq8C8k0`+J@b9p A%aaDepHmB%GMTEmPq6l(lr*D5'!M!k&#P(pb&jL6qm6m$8VZDZeGi2m05Mc)a-H '3C`X2E6T`%@N8mSTH`RhLL9rQ+V$*RPd8C&ClY3`fmUUZ(%q-63NriZ#ND&$pmh &9I,h3iqVKc&83c`-D`P)+hBkkZ1-RZ4kN!"3JXkT)kj(c$*AaD0d[18Pl+"bE&f VY1@Pf(QZdkVB80ZC5pA`C2AQeY`@MrUeiM%iN!#CBiHb4Z*Nhh+C&2Ie8UMF+CP )%e2lYpTVF0pplCAmip5&l3P-)ZZ&)8'"M5"J-ZhJQ56KX1-MKKdPa4q-A&6A+M5 YS[jBiK04@S'%980dG')8BUK4%%$4TI%F$VF)'Li56d6C"rM9hmD6NK!5qkENSk* lX6#lM+6d$m%`1'Zd9I+IY[UP68cqDIVV4'-0Nh(`6c@0*5'jTYE4UYVpL11BRP[ 5F`$1m$B6P%$C4p9Y*lA'#cSkp+2@0bUXDBpi1*MrPkX*bBN`6ZQ+eYHHeZ+J`iI ZD0&$5k1'(ij*NMp1ljih*k603Q4d@!lm`Jajl9Y&%T(+[4Ub"0X8&'QK,0kLCE! `BkC0DM4J)kFKRZG`KD96D,%2TQp[)E#e!bSfjbNl))M'3P`I60dVF#ef4i5b`S9 &8l8-1l%#Ea6Y3rIpZlST)5,&fb$%$IFa#dLEh*JR2$()ND@E0"4A1!hB8HkhBM8 +"I"aV-0P[1FdT#8VJ93cY0!+MXTMV6mGVG@YS,mJ[Sh@@)DdI"mFNlUh,&$FBh' GY48#+F`kc0X-1l)HMUe%+["H*58'P1GDY94hA4)2iaIbGaJpf@1AAD0*`U1Uj52 c5Qaj[2X,f'bQ[5pZlrmPb3QZSEq#65fU[p2D)ZMbU"9[r2Y`L(@ZmcUr0D1aDq0 M!PA$P2&BGq[CIDJEIVHL'4Qh6R')i$hejZ6A)FcICfd64C9-5p,eEHKY$hXF8+C 6&'0[*C!!*R5X(ZCH[ZTaS(PL,16JRZX%3j*LTED0RiCLBjGVdU&NZ%AeD*MRUG4 1p"HF3LR5039GU-im(G"TT4b0F%Zj'kXSpIT&R$6T&6U'4XXeD64dV$a6V"(MKN) +G`H'd+K"MGG22IA!+TB!r0GHU0cA)f+(DfF6"%-[FUe8UEa+Qk8e2+VD")fl!B& Pcf'RUV-CbeJ8kEBG#58$#Cea1TjPc4#51FfXJ0IpU%LTrFK0d$IX"l9AG5bPS!" T3F+,"m53!*3bI9Q1Ma$F"V"#bhfp6Skm*#')QkPlH(DDc#B8$'1L4J1ZLc`2YA4 FX%VYh3fliN2ic-Sa(fJe8D@0!6fGJI83@Z0DrSBHZbkRlNU%)+eA*,)YN!$-Ya% #&3c6D@KaRV%B%9XGHXjpdL$@(AY5bD$ZXr9kcC(`JN!-KqS`i30rrYDp@KQJbGH h&XR'(DZ86BJU-@S@1IlFTX1KR&IF!9+p2'D2MF3b4UmLNJYY[D5-XUE-4PeM9B( dd'U4AGmQR(L)'LhF$M+1IFkNV4IG9Y@!AkZimIRNN`NS!5$Gi+pe$Cl9#k1NXQD mBcALSIDeZL1f%pBY&GeN,%Lk1X6GFI+8-(63V5U9`SEBJdliLiULTd@"`EbJ@%N fP&r(2Gf!akE6Cf%#[)j9Z-L$rUVaDU`iR9S9lV5FI[29qCZ[hFRPkr1V9aHll[5 89++V44&%Dm'#J%DldUC0&c(2ECKL0m+TPY`+UY*5rd0RCr93c0ZKN9-V1TS1+2T rLJj%5kK8)5ST%@NmBR$$*)@9chU%,[20l2+#(SLEj'cPb$jNYc#Kl8bYc@f"U-R HB"0@fN"cq1"89"+VlMpqFbfTSYr0@9UDN!!5CeJjL"FDri9Dl)Ki2V8e#J@A9$J aXc"+mHZj$8K#BCfIrC8)2lA4hP#9lD"EK3qba4BYaT)p)9,+$hZ8![4BDNl)B&6 "JPa8VeJ9Mi6!q'b`BmKSXfMaX259CZBfpHMA'di8br8mVbC9%)TC2*1!F*lem6[ 6fQ6d6N[SKQ@MYMFQ+[IB&E+F*S0b)bPKqpM"6GZd["k+8r3YK(X@TPE-V#Kaq*! !l9lBbSBF$8`lVS!S#YDpa+FeM[1XX"RD$B'XmYlYG8!0MJQEH2dZ`+jLXF2-5K% TU9B[B)rC$Vq2KD$0*Kkb6B"AM063QP6%lYpG[9DjimpI-1L3!+BDa*acYh[TDA@ @$FKdr[MajIR&Nl-hVelX$X4Eji('V@`3@Hir"G[q3qCA1aRk$qAF3C+fTfPTP"f bElM%9fc9kNUS(8D,PlHdh-6Rr6c13ZL`Y6)3Xl#)0AjFa((98(f--&mhP,&L`,% Y2T5l$)*c)"8U)Kl$*0`f0GK'leS3pK`rE)FYC"0P[mS2l8C!5p"eE19#JfcVdRe 0qk(IrIh(dKarjMd#4,`1"MS1q`ChB,1AMamHF2j%42(ekHIPhILb4Fjq[d'%b9a ![p+"QMJ,bjqeemp(&1hDc%TCED`ab"[UeX$f('$V"R8DI*lfh8VS(3Km55X5I8p !m*-FCBMRQH[5DkKBk5[RaMGXf4069p%D+LI43iXYe(9F@U*'Tc&bdLV*N!$S#fe 6qFN"@Td[N!!aB$FkIDH9$dj99ZIZ4b"#J3aG+(l8+c#Cm%E'G(Q$$-ch+)$(JE@ j*+rK@a@MYKmK4*JPY@b(N!""8p+6QAf48c[r@-pjMh8X9K[!L8rY'@eaF9,bcP* (Q'cEqi#*Z%,+Q`3ap(FYh`N,F"TDcDI)`,6e[cY9lh$TFCq@U11[EYL5DU#3!21 aRY3FX5'MiTEpVZ(5,db)+AAefmZR,jpH"4JBZL4p'RYVKB-a`SRK1MU2UklK0Uh fJ3+3!%)YS"SYDJAc'dP$26PNe&#kV(`C8)HpN!"YLN-Y&Y3XPTAYU-,b5"Y[PD" aX*E-[R12RMph6jpI2RAI2CSp[`a$"E1LIV1PVM5$PCX22jlb)m1!j[CIklpUTeP 1bFTTUZYRL5LJL8-d+f1P6j!!)*c"f+[QK`h3IG`8'Y%(,eLmE09k3(+qTB)R,dX KY$%T"4)T,'@X%Seh"4L*ZQU-4Mqa@3QP@"(&A9H`$iP-,f-YJQi8CDZ!ddJce9a 9d"IJQ0*&K"+)9CK8P`r8+6'-9!CELD[R,D+LY"+`T2l4TY-Q,E&AffbS1Lcr@f[ e@!1m%eTCVAGXBX2Z43&lpiXe[(-#$FA"qLNNF(JfIQB`Ccpc-U*@V**'!Yl2+(B 9mQj1NGL(,1##@Z-+bS"q6Q,ZIjNQA'E-%0ULF6YeXKXYi"L5$VH(0QjlGYFXe5U Xc&-IIhR#PK3DFfR+5IQVrQ8XQ10[9dLK-0$k+)%b5NpUrAC@e92hA11rRSifM*r ZINTLq"Q+4,iR$Q`ZB5X@fGH+Y2f-"Ipq%mJYPQZ'I`F&FHH6X"8B9TV+TBVa(,b $[Fp#Q@M3G6IGhHr,c-DKl%mQJL6%,QmCpK@XCr6Y4-Y(UePT38$RX%kcJRjNMYS +DD(Rr8"fB*YTBXBkFdpH[CaFZ5HcbkXhXmG[Vjl5YVpqmqVl0ipHZ(HcUfIZmG[ [RlepHI9mTNm[VQBr22eG($3CIXQbL8EZB`dUY'rYa`ii2[b@#1["9E4JaLqXU'A 1LJD'8X[*UqlNZ,U(c3K8k(IhU`9`Bj(aZe@@h%#(m-YkCKYDIrV"&Xckja#f0,b 5Uq$0[&!c&YG34`rH"kYQ#m@e@MMGDlm'0ELViMGeiJhfdcdceSE@T0K)P"SX'AC @eU)XL[Ih*5!*Y`A*)45f44a30d[9"4iq'FG'X$qP@mTZ%ET3bk6I(JPp4[L0VA' a'Sp&lkqqh2F+DJrk6IJ"UZ22H'N#iEGhdl+$mQ'"Dj5X-",$mF-(Ckb)`qma@'@ qTYG6KY1%lbC*Zj-ddYHBJ4&Q(SercT6L20Z'&LrmGJ+i(jb&GKI"BXp3@J1X$f1 M(k+M[TTq&3d9IZR-(&CR*X!3RErPc(4rajGQ[APIm#XJie*2qZj+34d8qekQ3Ci ,h-@6h3eI6[pX0i5DV+!m)F#LFkE*r`F!!!!0$4C#G@G)G@jd8h4KFR40BA*VCA) ZBh"`D@pZ!!!!!!!!"LN!!!!!!!!!!!!!!!!!!!!!$0!!!#-!!!!!&J!d!%"849K 83eG*43%!V2MhTDeAaDJ!!!'D!!!!3J!!!+d!!!!PYf&[d3!!!!!!!!Uc%3!)(03 FJKK`-2if1GM18l,QHI*DCD@fbf)b+)Q3!(iL"P,K5iP'U8FA@0R6kB#XVNIl*!6 +HBPXmafGp[Ua$Uee@YrbVM1V8k3IETm4j8,L3+$e"p(X0IJl1FNrHIr@BehVa*Q 5#PirCb5&IeQ*KeMS#E'HQce*XrJ(HP`jcR(kCU*a4bb&D-'k+G)N29pFBdHKcRd 4Ib$BeG%NIip@HNPIc*3j9m*209T3Dj-!84(Spi*@A'BE,S66X"YKUaX&I%M-jiT 0K-*YH6C!1%Li(`!!!#%K$N*eCdKeER4-DA4P-5ia!!!!!!!!!!!!!!!!!!!!!!! !!!!!!F-"f3,2!d3!!!!"!!!K[J!!!!!!!!!@!!!!KJ!!!5$rrrrr!3#Y9mHTV9I (a`!!!!!!!%M9!!!!!!!!)RS!!!!!!!!!!!!![&U@lJ!!: