ft035@unocss.UUCP (ft035) (08/23/89)
I am trying to rotate some bit images and was wondering if anyone has any routines already written to do this. This would be preferable to writing 4 different images (all rotations) of the same object. Since some of these images are large I'd rather not. Also .. Does onyone know of an application that will take a selection of bits and convert them into a hex representation (for BitMaps and Icons and such). If not .. any one out there ambitious? T'anks Rob Koch ft035@unocss.unl.edu
jnh@ecemwl.ncsu.edu (Joseph N. Hall) (08/23/89)
In article <1495@unocss.UUCP> ft035@unocss.UUCP (ft035) writes: >I am trying to rotate some bit images and was wondering if anyone >has any routines already written to do this. This would be preferable to >writing 4 different images (all rotations) of the same object. Since some >of these images are large I'd rather not. There is an elegant algorithm for 90-degree rotations that is fast and efficient. The simplest version requires that your source pattern be both square and a power of two bits along each side. You can read about it in "Smalltalk-80: The Language," by Adele Goldberg et al. It's fairly well known, too, so there may be someone on the net who has an adequate implementation of it on the Mac. (It's used for all of the 90-degree rotations in the early Mac programs.) v v sssss|| joseph hall || 4116 Brewster Drive v v s s || jnh@ecemwl.ncsu.edu (Internet) || Raleigh, NC 27606 v sss || SP Software/CAD Tool Developer, Mac Hacker and Keyboardist -----------|| Disclaimer: NCSU may not share my views, but is welcome to.
kazim@Apple.COM (Alex Kazim) (08/25/89)
In article <3736@ncsuvx.ncsu.edu> jnh@ecemwl.UUCP (Joseph N. Hall) writes: > >There is an elegant algorithm for 90-degree rotations that is fast and >efficient. The simplest version requires that your source pattern be both This was in a VERY early issue of MacTutor. Try the Best of Mac Tutor volume 1. ========================================================================== Alex Kazim, Apple Computer ==========================================================================
pepke@loligo (Eric Pepke) (08/25/89)
In article <34285@apple.Apple.COM> kazim@Apple.COM (Alex Kazim) writes: >In article <3736@ncsuvx.ncsu.edu> jnh@ecemwl.UUCP (Joseph N. Hall) writes: >> >>There is an elegant algorithm for 90-degree rotations that is fast and >>efficient. The simplest version requires that your source pattern be both > >This was in a VERY early issue of MacTutor. Try the Best of Mac Tutor >volume 1. There is an algorithm for rotating bitmaps in November 1985 Mac Tutor, but although it is clever, it is not particularly efficient. The claim is made that the algorithm can rotate an image n pixels on a side in log n steps. This is true, but the problem is that each step requires enough CopyBits operations to move every pixel on the image. Assuming, as seems quite reasonable, that CopyBits on an image m pixels on a side takes O(n^2) time, the MacTutor algorithm takes O(n^2 log n) time. The obvious, brute-force approach to rotating bitmaps only takes O(n^2) time. Of course, CopyBits might have some good optimizations on small bitmaps, but then again, you can do your own optimizations on small squares, say 8 by 8 or 16 by 16. There is no reason that you should not be able to do a rotation just as fast as a single CopyBits of that image. The MacTutor algorithm perhaps has value as a curiosity, and it's fun to watch, but it is a waste of time, and it imposes needless restrictions on the shape and size of the data. Eric Pepke INTERNET: pepke@gw.scri.fsu.edu Supercomputer Computations Research Institute MFENET: pepke@fsu Florida State University SPAN: scri::pepke Tallahassee, FL 32306-4052 BITNET: pepke@fsu Disclaimer: My employers seldom even LISTEN to my opinions. Meta-disclaimer: Any society that needs disclaimers has too many lawyers.
oster@dewey.soe.berkeley.edu (David Phillip Oster) (08/25/89)
As Eric Pepke said, there is a bitmap rotation article in an '85 issue of MacTutor. To tie things back around to the root of this discussion, this article demonstates the same "simple, efficient, elegant" algorithm that is given in the SmallTalk book. The algorithm simply isn't any of the things it claims to be. The right way to rotate bitmaps by 90 degrees is given a recent MacTutor in an article entitled "Editing Rotated Text" whcih covers running TextEdit in an off-screen buffer, rotating the result, and CopyBitsing to the window, on each keystroke. Nifty article. --- David Phillip Oster --"Unix Version 7 was an improvement not Arpa: oster@dewey.soe.berkeley.edu --only over its predeccessors, but also its Uucp: {uwvax,decvax}!ucbvax!oster%dewey.soe.berkeley.edu --successors."
yahnke@vms.macc.wisc.edu (Ross Yahnke, MACC) (08/25/89)
Here are two inline assembly routines for LSC that do very fast 90 degree single depth arbitrary sized cw or ccw bitmap rotation. They're provided as is. Enjoy. (This file must be converted with BinHex 4.0) :#R*[G'&dC5jcDA3!8dP8)90*9#%!!!!!*eS!!!!!Fpp6593K!!%!!#GDFNaKG3% !!!!!!!!!!J)'FQpdBA4PDf9d!%%,p%#"d3j!JG%B3)(4+!!!!!-!%`!!!(lrr`" "$!S!2M-N!%&eYJ1f!4J!'J!"!!!!33`N9%9B9%Y"5%`!!+%D``bK'X,r!!!"A!! !A&)!!!%)!!!Pc&lI$q8!!!!!!!#!b`!!"!JSd!*"J`'0l!$5L"BB*98H)A(c$jD 3!$01@JR3!Z2$`SB4*eDmD%$1'cTKk*54)i!JP5*BU#`*JS3*`CX%#4J,q$,Qc*S iJ`S0'NV$-!B"Z8J*')!,)RP#@L#b*k39)Ra#fL4#8"84ZUL*MQ40*!5XNDU*N!# -aB)@"a`!%&T)`m%!L%!c,S,N#bM!c!SNL0c"dEF3%6fpI0Rm6H3$6Vk&LBJ-ALK 0Kf2+3X#`3!a!J*brJH(J+haiEfFmLa[I@jJ6J)(1""8!5'#Jb4XhBFDmFFH8B!# %!)!E!B#$&BJ#*JKb!$!m3"%U3B33P&$%L"-U"$d-B2I[(diFUq!-@0HG)!,LUpJ !DGc3!5(P$Cd`G-S)D4)'cT!!)9G3c*%cCQ&$&L$)c+&M%8k+"JQ%T+($%!i)&4- VPX5S3L2(NMXD[&!"iNJD1fAFJ!J$BXkE1K6,l(4$*Q1CM3%4TRQM8mc)P5$N'%3 SG#5)KeG!j)!4bN@$Nb"%dQR6%-5B-%f&[M%c0%r20(V+B,b6KJfER@amiNec4LG 6%(IHb#NUjLI4-(,5(28+pNTL1JQEZPAb"Sh1*hPcBR`$KdkD0R$,%(EE*-dDS8d %df'+-3bCKJQ,VVi+3ScE0Q8BUrK+N`UD0(1Lr[6X4LLD--&jXKP*Kie31&,&1'r M!S4[SA6*d%%$BLf)l8,*((eC&RKYj+*jGpFj-VM81d,b**b$dBe"%1eV'pBBYF` B1KLC)9K2F*3K@Rr)-69(-VA9-G"f`+N(A4Q3!0e@aaMFR9%(BQJPG"3)Cb!Q4KK R9+86H#$Be`*CET`3("YS%8EK(3DHL%BCkK9@"e&cZ*!!f"PS$"6MGcF+"jpmLeR h@h"Re6((Kca"piCdCE3"f)dkM@%BF@G)Q!BHCH5&Rie#R@9A'A))jf"!F[Ad"T& PKR&QQQdiq@!BTi%!4aJ""EHDHR,ijaaL4*U(@"PKk+DH&"3#j8C`4J6"a"4&i-F @EQd)jTDFE,aaPQGr58PP'r5"%1D6rG(KD("85&&&%BU#0B@")$!d"K81#SD4&5l 3d))6,X333`Y`Z)#$$5!)5+GJi9()Cekk[3"#!hXN%"!G#55J*4YY$,&P6!PdkXB CfJ)9U%"A#%B'Z1+5fbQ0FM"4KKPdJ(YYYS%0jZf1pB)%%R*YJ&4YTMK4adB#C-c 3!KNh["#'$#f%83-,,8MN8EB*l0"6'$MeG`C`#FNaKlrCDTb%'b1P)@GS4L(PKP* r18A54DE5-BCA*5H`%``Jp0$I((@`-C!!Gemi8FBG80#4TTN(*m"(4Mcl2!I,hXP F%PkGISTMb5$X&%22HLVphCXTGB3aaNq6mEA2f@d(JV3bJ#$46d&pa291FI[F@CU cZG44ei!($RMDHB0`)ep"[Je#h(-$08BCGQIFG4JcJ#hH4VAP*cJ)CcZG8H8q1dF [#%q["JG)NZp%!pKD`Z'@GjF2*2-FRDHpZXrrbC'd#fLJV[&10B"Yhd"1LYEjf@N (Ml[5ZpZ"HYHS%jcE`@@AK%)B0U6!3KJaR+da('pF1cDFEMSZP&KA6jZYp#iFl,I ef'[rX2GkKLr3q#M'RK5S1U&IP[S*m0e9hY!'1$M)1'9!h0$BiK2cKH8TCC(+MX4 6P$UBC$E&146QmN@'kJ#3!(eh5)!Bq,-#r9`["YTM'2d+!aN#MUP[0i"HYS!Q"KH %8)3N(0X*8hL$&4TN09CU`GK-iV2$!3P!HR,3Q$)5``qq!5Ff40J0@%!''"`2BaU E!mI+a*RAXF@)L9-@#'!8-KN'N!"VFL!+f&!!aS'8-!Be5)(LBQ#$!,h",Qqi`aa dB%EAN!!K$9%F!4bTf--VDXb2)""Nm'E64S`BF#!"BD)Cmb)(M)f!"S5m)YIqD)F dL+FfEU(M*1I3Y!3)-T1De&J6JZBC1,$",ECC(0MH%jrjG)FYlrXIkJ6)X"6Pd5a -18LIM&6,$m&Z)afTMK0qUD8#(T!!I#jKe(q5*4J"CJ5C*F&CaUcT,@FQK(b2%`L DkLFqlk4%QNJFRP"3&-ibJZpDb3Q80BHA)[mF4BZ*H5AjY)LE*D))*h,`M*NbNSC !r@FT1JN8'@qbcMGBXhTP%B0rkU#(@kU*+!%j!j%33NdmkK%M+!"NEM$54SY#p(4 h-mmI$GSFYdJ*I!&&U*c'4dXN"HHBj2')0LPTb4K3dBUT*'JR2eR5@-E0L9!-B4@ T+!005SiXHH**klaSZ!3Hm39a%b-Cd45p*qBQK#--6JPAXd-UeS"q*4V)#8ah!T0 5"*ep*%-(ElK8-T`eU(B&TN$ip#J3!(3JcB6$rEb6Zl#C8B$GI13kLp3flTMcVIi CL!Q5#%QGN!"KG8Mp+Jl&'T8dP$9KD+93CimiP+)mFSN*-b-0SlKC%*631CqG!Ie qP$JKLQiJE22NGKbTa%LQ&S!mcGBT3B[AQhJ51lVPMP(0#%+%cB#+h3XU9)8Le5j DY,&BT@DDYTUQc%BaV+lYl'GT%0U"d(D"2B(X0!'i@VSqpl*1eGKPp5V-[U*"-(! "CJ([9pM1(*CVbl`$L%6EcR'qmhj$#Z`cGF3Ml9icTpVm(4+XQVJK0ABRJHS23*p 8&2X)@)`SLT[ri0!MhrNZ@lI0PJk@TcXkm!i%3L`Th-#9X@bC$Q-V0J[cA'`('!- QZBU6!BerPi$cUTM&Zq01#@@mZ#&RLi9!6%#1FpHmm&jiaLDq'a58q*U$S,DJN4d Iam*A&+r+i8DZXHLXk)$1kR#6J)S&`9SjF`*Y0YHZ9*4Y801k%f#kcU*8jR&T+B[ DbV'h$M@NUdq*DdJGYpJ&24ELP@ATXcR$SDfq066UjR#(KQ5,dBf@RTcC1VlIF2# rNN[X-dp`fcScekY4['bHicYJ)IQCUS&qm@42'mPhUHYcUN8dDmNJJeN(0GIFL6' &"`)hX,&kAR6!Y%jm24KJ!e#!9a#+K`fha9(6HBQQr[9NRdd[DBmaMlp1@)5lTZT [RJ$+"+ac9j1+X)Q4`3DdjR0erdcB(81kd('GkkFAMHpMql[(*CadiGlp`hJ$R,f GKX1R#bjGVmSChQeS+b26F1TVFkhG3MR"H9hYAD9LmYlj&ZfqFHe[lJb*ep0'GlA [(I"K&a[P"RqdNUZU`#!lHq4,T(C4D1jab@AEP`)q6XFBhX+-Jj[MiTBcd(XYmk( E)-)#$-)FTYDAM##%*hh$CPNf)SF,U5V$+ihX+qd-Dk9183j#Z*i-8Y"SQ"26TKE 0*8S6`$lh24HmBq8-%jjJ"M2)RHlI8b)lhr$V24Adbbap046G9dI!kiI0K$Im`a" 2k-8hRNpTmLfBecY[c6,XTl3qE8eYk9ZHI6"SGFJ@h$m,e-jTV%j#5i-VhE,k$k@ N*CMc@49(@FS4[,IfalXp+h@[cq((%JF1RPTFmLjfN`#`D%G,@TU'`)3L"%%+Y1D 8TkMbPZRMp'pb$jZIhM3513*`$!9XRh"KX$hNfliR&hVF(-`3Y"qJ6Jc&J6&!S#8 #3@YjF"3B3B$%83GESbeX)!IbKc$fGhrfJ4'"FRBk%5Q68LQ6P3bSFi'1XJ01K88 JN!!-CB!()p%!#UJ$T5GrB8"rBK!%KaGU&[H#ic-L6a)%FT8QCU!BE&"QZ&4pU,B $,9#%4RL%5*L%5VL%60L%6[L%,5"!0ZJcp&3mC1"8R1-j`qFc[AG6$%34(5'&Dd0 1!V&qQ8-(ATKH+P%@fC)fBkK`FY0!G51&KE-hik0haj1&K!-f6-BiF[JiNA0)S0- b!b%@Y(0&HJKXZ'-Z16%3TcB(B`"h*5'&Yj1&)kJcECJ4P6K9e`9NMl@'HhG)bZ0 ,a-0K@*L*HE@)FR!Z!k&h8SJX9(JI9RL+@JL,Bc)eiX%%M'F5@X)[FM-'M(Jr-K1 )1a&$X9L+"k**LGK,A*K(aC5'VPJb8$L0e&L0eRL%!U3#fVL0h0L0h[L0i"L1iML 1fTL0fBJa8h!3!@94BI!I'h)A8R%3r'049Y-3)m-eZi'2j,L2r0L2qjKe@eF("F3 rHb4!*38lil%r#(@'9p1-4f*,RaL'*G-!!K33+E-bdcGmXk'!I%8q"eC'Xi%L*p@ #)64lh*0#%bJjI0D&EJ@+Zm3e+eN'Ca!F(jP40pJH,AJ`CF8p3F8pkMFq3T!!"&3 `"5dTNA`(DcUjHGZMCmQh%jA6'@BBP%0*I6ReNUN'Cmq%)Zmb6VF&6'Nd6Yk42d) S4"!5('4"BQ-M3#KL33@bAG$QPF@4*Q&C*#FeD(4K&l8K&&Di%m'"J`fS-@BJ&9C b"lq")H1c&QE`**89NN@LGeH5%i#KE3BL'f5MFQHS6@2`J"'S0L1S-CQ*+'QL0L3 TJG"&Djf5CL`CNC0iL8f*!URjKD$)KqLPGj'6&fc!@XCAQY+eI,X(5L!!IE2"CiP cIQIjQ!PP%#G!"Y%$Hl%f4CbjQlRAQl(8K5K!Qf!c!K`8(!'aDF*'9miCABhQQ-k aGHXK&1q"1Ri8JC5MQif'5)[R63H#Q)U*2dALPcT)"R)CK&@j2NL*-$kePI%#EIG RN3-"S'-%E43TMGHiS!cDS#FfKD3)!V-iJR`JJE184lB"NE#jQMAQNhTM2fKiNb( kL3cTD4@U0Q!c"8-J"8&!"81!"!pD1-#iLSfB,S2K9#FUShI8,9[#96P$1CBc(QG iL*TdSS-iSkbSKPGcDJpDL5V+SLk+"*GiSTZiSf+KLj`"62cLSadkLP9SLK4DEk` 6M)kBEZ2"S5+)2F)MLf#+S`KMLhebA&M+Le[bLf4kKS'B!'&JM"%kS@l+M(HRSB4 BSU(BS)CkU&#BC@G6N5K6T[T5Tl-4&e)"3$6@A#0!Iabd,`9)2r1CUC!!qLC-)43 5T5cB)43EJ4KdS+JD3k$!a#ecUUAL*!H+HQI1f94l*PV8'6Ze14%pa95daNR(jCY a)d6%KR6da9Gq8L6$-8kp'+ZM5@`XX#dmbLrhGeSS3KCii&Gb`S!ld@PZ)8D"BJC SNK128hTa)(qAkUY"0Cr&'UPS3MB"m6L4+D'SBK8J9L60'M+l*+ecbS)6b69PL4r *UKB1JSY#d5QF-DYYCdU$"&q0aUV5HU@l#+XJq5C`P*2KNNGS)LrdXMff5S)2)l" Q3DBf5JBB`DSTQ#dUD+8MdDqU@LMD1E$RPUAE`9&Nm!BIJL)b3l%f'8RjFkCP)84 @B4k"`LQE)N#J!65S-TFK4`CL)!GK)'eNChB,169Z)+p$'acdK"CM)Ki&3K501,- Q)3DpPDTFBbJJ%!Ge-"*PJQBQJ4[Em3C!Q"(fSe&d`l2MSULS!hr&FN-Mi*cNeC- C4L0dDj1r!55Jp%d$mLlqpf4RJ#hC!J3h@dcJbDPVS(Z@BML)NlJ0k%Ga)&`q06p "G5V2!D,MmbkFZdZ6Lb3a`),[iE)[Ll!QdBj53Ck)BTM[i8pd54&A-b5R83CdkSZ hbafHd8q%Hl0pGTi!Zb45PdHD'QdrKTGlZC&Bq8dS)TqL&CJZa'SD'k$PTV$dYN- VB'chTfq!m@Zc%BrNGbe[NM$S+9IR'N)M8'bH5UhdJdKI)dE$Hll9CS4UF,0'D*A Tk9lNfj6c-4$&J3Hb-l4N-V)dHMprL"hUmRpMF$1(#!6f)4C8m!C$F"cM8JEdN`C X)629S,AhSCJB-3HAHd&[NX"Q+d++q@QB0)100Tm[08il'dQ(keMEp8XCDL)1c)S PZdXC2")Eh-&S85,qQJ#Ve65R*lSeM'K+dilQjB`f9Ce!ka(*)TK"(,BFC*8D3`4 [)T*Kd%r)X41&J4-")X)HSK1CNQ(&ZaM[+h$1P@F8E-'4'`2r&m-)-m1Ee`"!d$e 0r'P6p$!NSkGb0@c[030hl!)A,!0l6#%bc!+("mK00FK5j,'(2-#IYXL0I-'-r'4 m,'Z9$!5bKFP2$-PRK-KdR$"fr'39l-L45`14$,QNr-G!3&kSA-LU2-H+r-SL&-X AA!1e2-QPI&DlV-QVc-Pel,k`M-F*!!3f8-ap6-QiM'r*E-M,R-J%l-c"$-e!F!2 8I-Yc"mJpP-fpR#h-l-VH,!E#(,Ni--jqA-j!J!0-,'a1c-ZEc-fG$-cZ$-ij)-r @6-mjF-meP-r+l-[G(-VI,-[4(!-`)0#P$0%'[CRk[-fYl-R2l0#"V-HL,-R920' #M-q%R0$Uc-r0c0$rc0%aS-S`$0,Nr"'"I-NNRFRDV0$ph-l[r0!U2FVc,0-aF-S eRFVlR0(q[01"6-XIEFXr$FJaS-Y$IG%iRG+IR-I%[06'M-Y`90%)VFfV2'3lm5$ -qj'4H3)GS`CfSPqZ4#%(`K1RTVe@)T+mfa#+bVFB8lm#JAVd`lIm5`E25e0@2"m 4-lMK%DSrjMBmNEZ0+d)"',Q[ZiZ0CKmqKVaSB4!hNLCIV,,C`VHi#ELrkNRcLV` lc,RGdF0hX0KLm,J#H,-rr,'@LlNLV,Q)qm2F+3DIbl!H5fZN+k&%-FC&`RpN8#* L"XQXM53bX-3[5lKSM6Q"j4baNEbrT"H)&$H-b8Am!VkDPDji$ENNk,m!A)3r)eV E26k5kP#DA@0UqGYhp#if@6ajpl3mmEYS1F9MX!B@GEHaFc8l+dC1JYhb"k!F#b" 3M%CPd!)35l,UXXUX5B,cb8i)AQh9I@l`%Z!SJ+50'$N,cM8!rTEQ)6eP"P"bFej b&%YZr@[$LcSC,MPa(0T[NYLrj,1l1`BFkV431mN$b,*d-+GSjGYP4ckc)cG`e!) q!!0b"1-0Q1,bPF8q"KikFB*@-56)Ql)T,MNNdT(J'YK(N9eaI)pI,8$`8YM&JEF DY4dpVV2ji4dmNGpPF@T#a&%"5pD%Uh4rZ42ZD,6*BT&cF#0&89eX)*!!l0(!DPi X5X*&IGi'l*%F))"lVH3FYb4!S[6Mf5%8ek0'%Q@6($8SQ2-edLT(3h,'"i'ARYk B5KiKA)-#K*N'KQNSHI%QCD#f-j@q@*k'FLhM$4')FhbZ"c1r,,$Kp(*r!5Xp`H% N,q6ENUR!+*lK'R-#fq,RE98eq@(NK-LKRKY)LqEDpiHrp%RSEI#UqFUPGVhC1rU mkJUbK%fhBAk!!i(DM4h0r!VC65RCa-Tq3K)LfcRPNV2E0#*bB(lN'$YF+8RJ''J GVP)%VB'AEl!'T@F`FHJ4ijX`#p-`$a-aGb8jJE)4c1)a))-QT@)EC4!#)0%($G! (Ed-6"5'2#P%5@(%5,d#4$5!q*8m9(3%4%J''8%'E)$&L*h&5,+&h-6%60F&31X% 6%6aSq[-bmeL2F'#"8r&09J%4@X%9Z[&!Be%@Cj%@l1J'EL&pEA+AGb%RdVdFAIF ATmCJVj%BFY`BMa%C[NNCPJ%#Q2%N*r)QCr!Q@,%CRI%CS6%DY@)DU+%DV$%YB0( TVp%C"c)E3q#EZ"%V*&m'RF4KLi090[!#1*!!!iMI8(4l&9QK[[bMq%T#Y-2"*Yb 'k-X"'B`Z+Y04(GIaBpVK@'caXd*S(RkTR'$a&rR4KI9a(rP"pZi4@AD8*R03)!G 5Y$la+!a#YQ)G)@!a)4@5k"H5)4X#YH,d)5%L"b-Lh0#Z)LcL)Q-d*"*&"c3#QH# 4)r[4)qFeD#M5KDM2[%hb*)KZqP9LR',Z*@!L*Y$101-N3F64*RV"6T`b6R@#13F K6cLH[[)R`)*"'44mJhNGLN6"'aC&SdJMN!"#8P#+c)8T0!A@'$rcb2f4#Sb`fd! 3""4iVi,cc3V8d)j`a@U3!!1lSPImLQ!a,)V&XA!`EkaC#"0S`4ZN"E@`&TY+@Md [GX%8b)@&3aIUJJH1Li`eiD#0[GK8fqd)3Uk8-'%8L!MbHA$J5i3*RN0Dc!RGN!" A5%rPN3b!)6#18X'3!$m1Mf%i$)JK-5L'aD!lA%1,G)a!m6%fJXBlC#DM8DQ-jC! !N4+5d9Y)5)m$fS`)Sc-J9-9M*4B&qb!0XF%d8&(8+$pUBB4"N!$CK8HdKMAa8'' $Ej!!$CVRD@T(4RK$3+EC0)ijG$G#PYi3'f%RTfb1cE'(LXLbm6QE%"!p`N%81iE 8+,5%U59d[+A5NE!kBCAL0lK%5-d1@,L*@XiMp&*XbRJ8UB``LR+0mmJ@NQGk-$& +#!HZ4rEB(TAVHjLZ#$IdF*jhF4r9aaR+$pFQ$F9(K#Yk-+0r,-)K0%$J%a8F6Jc N#Tk2F5K"`&B&B@(e4)-iUJk5$,p,$LN-Rk@3!(!0M$2X*-QK5642*SH3!*@6K%V fBF-*)N1%$bdEhP*Cr1'cFNlr6R+S35k##mrK30!U9+'lJ,'SS%Cm"KXjK@mNMXb 41Y*4hX8H#6L!4(ie,(eilH4+)S%MT@BK%KVIdN434h!a*5H(*GiIB29*BSNS!5k NT&HTN!#JXNULNcjC,JlT'9'P[e&dj%X-f6BFDCLmTJH66%"!J&&V@DNaE35iSLb XLGl"1RF$j)#64Q4J60FR3LHhchVK+l+B*Mj52*Pc%DSik"pm8KIF!KRV*p$ZVk# kQC*f$XTI8#K+S@2mLEY4Pb3+-+SShU%GrT&aX9%ZiRV,)k8LT,L!N@)4La+DkKS UCI5d&$dK&@!+rhKeEf)UdUDG`UY!Pei,6mD&U*c#j9*b5"1aS6A6TFp`)Zr34V) ,4Y4Ar)RH@*k"L%,-5RRa0THQ*F%9!,,1k)pGq9A")bVfPEqLeJB,@qJ[!k%TPX- iJb)1%Qb#+lZQYqJ%*RJ+K3K&F!Xb!2**[S#@'c@,jF'(""(8D!`q``pIMRDd0V@ 0YHc'0a"EI%M6@A*CbK3U%)CBD*l9Fq'12FF55F36L%!#4AfB60X[C(JJa&+p&JY b@Ah#-FaNaiBiAeUMj8N-pC%%VD5HiaiTT+DC)GdT)()@f*)HQ4,&kcQfj5hPPYA ((c20++NNTK(8l-68q#$G"Q[dMqbT+FA'PG1*9TpYA&`CX4k#P4b#)G0Mi)**Z+V RR-8`m`prQF-+6kY$13D(qj)B+NTJi5pL`lp)ak[)C`T-@c4G#DC"kSF*%Kc%b&H d*Nf3!,4B'#"c+$5-aMX3fqCH#384X`K,c,qU-H%NC*10LNNePa$)j)`(FQ#2 MD+U-T-Q%6FDD&"N&3LL46AMT3dj'K"c%29NS"8h#3C4#jQ@"J#h6LVi1j!NcXf( -J$BcJfEQeTTT-j5+hBK*5b0[bQ1XX6FQXRaCTYRi(!r1S,%l[b8q+TS#GRq-SBq "3j@'e,K)L&-*CH6p%6@XXY4!R@SM(F8LZBNf(Z4CRCaBq4YjC,r415"J3JDGUJ- I354!4"JhKeU5)%HTE(T1XkNdV@CERTTFHGidaY(C0R)11*UEF&0YaNfkT$VVFJD XQqQiDM"1Ur5#TXIH8*bQC,jSCDAm0m0bUUN0+M)`Hk@Y[*33mPaHR)0SEYJP%iX i%kFc*6U,`h5!L-Cj%r5b+$6,96PbSU@V0$N--qAB'S2T+$ZNZN`hb))iSM4SKA- DMD0F-UG3BSSF"@*ZK%j'L*NEm9hqNRMC-4f1$PZ@4@(F6*fBXbk[cX[51Pc(XRM +82JhTTBl3MZDFHdm4"CJNZC1hAQ2SV(kB#aA0KrK`1!T2$-SmBJe,[*j(SrSL6c Am%faJ20S%+4!jNQER3GI-CjUihK#MfA4M%)bNe@4e+0%@&,VB5k`4rE%RI5BNT5 28H3pX8i0!4rF!M@)Mb8j2V#40c8IR[&mSJr9d%p'bB`)3Zec&EV2p`NrMC!!r'L pTAJedJp8'KrYaia`YUD4VPi3V3%D&H`Sm"mfS1j!@1453!B)!G'AJ-#!pTCQFQ) 48A*8S&6K+%#!"TU!(HJ$28!h)))ZNFB`35JS9DdJM2@#jUB-fMcd3p6BS0PJRhE 3R3X6FmXa089%a6lE*cEL'K$U5`P$4'3),p4$-LD`b5JGNM(N&N98'UT,U!J64Na CNJSK"ad#'hD)DTD%2)5+#NFILN2UN!!B!5RK)k3-N6*#48IU6MfL5+3r93IB@($ ,k"C5P3ZMQZJDr!5'b1J+A9!Y9!c[9$5LFVC)IUT3qPQ,`%DFbN86+erCU3Hf`1L !"196-P4!RSePa+I#jRl+'1icL5+UE152QUJ6p8IQ#"qK)h@%AUMB1a)1mQJK1EZ C%BT1!K0pSQ!dM(SMJ!3d"K*#+8KF`cS5)S88-mCK8X3l*638*5M*3D$Q)-[35'p #1ASN%$91U#%c(%dQU6F16Jf*Ub*R(0f)-@NQN5%Zi6maeNkUA2IVDlc1f5#9L0) KECH$VV6aKD4`&e+HjM09924!d!@hXCEJ3&Xk823L8fb3!&r$Y!4)AE)`B8X"mB8 km"0)L9Zi@AI!4[5i#LJ(mJ$UNhYd,b[dLB53!'D5!,I"#@UTI4'llQ"+hm$85!J TM)U'0I+4%rDF'TPl%NV3[Dc8"k6Bi#)e3bMLe!3RdH,#"Jf--`pR!98Bdrmh%1D 698LQe*3ST,!h3CKX&Xk5@5HJQVB9h-#e,PXCq!%J)!N-"(lD9p`ELV#L-d@!4-( j9aQCPKVU#+dK1)L(N!!"'SU$hY0Ci`mM+$VQSaMdARSc9Fc34m5keL"A#Ymb298 "C5i8*Zl!p4)GRU!Z6fND@Ua8H@Vf"!!X%Y@d1Nb"H18J38!-`"cLbQC`KjX&*6K MJ4-2NDK+0#+-m1C!9(!3)-,1c48*')%jLYCGi#!NKD,SJ6#!"PS!'Y#UA08$h8Q 0)8QMJ`@U%XL+U5SV1I!aANBRGAVi$r3KKc+D(VL'Ga`$i&%m6MlM#B'FQ%F$Q,( '1%*5qR'DLX*8(%RVJcQ&%!"j4(+NL[X-(d+0eL@IX4Sq(@!B$*cPVkBR[`S0`mr Af$D[mfZ-[6+3!!HB3P'STTD4VMP5T83jHY*6#P'89#KC8Y$*S4LN1G4+h3Z9!KE "%*FXLPJ5K@5*HCfPpI04*GcpkcPDiL[PThh#$1e5AEJ,%S9HYE@qK"i%#&bl%UL 1H)'U`Z01"F)bG8b%#6)4VZ*J8RZ#CC)CQ1Pi$Kb0qCN)K@JkQDjaX*+J`KUSm1G $j9"),X3Cd[cCN!!-afbU2V[U0[QYpb*IZFC'P8jZ!6M*2G'#$UPLF3U[abRD++I %fZHDNf-0RjS6PN$1qcN(UK1![8lCD8cSbT,fR-+6%"T20bA-+5p@TTi)E2KaLHp *X3#Ka#4D)Pcja%qXdi3#9[IaRlTAJ"Y3MFUiZL9k-8H*N!!52E),kN%G3KNkT5b 83rTKrh1ZK5)pa6qGU[pX5B6+DILR&,@L@Y5,LP&MLSH@V$qPSlM&mq*5DBS9kX, f%+CLB4H$B&+fVe%U2H@NZQb8DV,c"AIJ1'lASf69Md+KdR@'&LNaTBU5e,V-BJm UKJC$3AY&6K5FHK4b+SI@U3ThTiE4J`+LLaE2&Y(p1UL3!*l[3,+JYKST+Sc"U+c #H(0ANmUrb5p-T5kHerhT9+hf8j@R[%5UjK9+I@&J$@,Y+$klTIcX0S'[TqFehUS UaQ'af%EB96!5Y`PEe$K84"9iR'aa!bS'%f4&2TE9dZLcckVBk-!Y8Dd86j(!9YU Uce%AEq9J`Y@iZPS05(VJ1P0L(+dGTa)YlHT0P,HhJ'lRPAZc9`0LmI6DIE9VGp% 5!fX"bcaFVi)9V'5AUQ9BpZC)!PQV%,&DPU6YYH2MBVR+Jm(V"*be1b4a!jdq1*- e*SE@#eYCh%*LFBCrQpl-Jm#GUK1VCV@LHqVM'1k@k&Q!6XN*,8LbqqaF'%"D`-' p1G6N"0qNPY+J@Rr"DQ%YQKZKZ&C!m&V90'c*VJB"5A#Yb1)*DSYYQ3@hPHJSa(e *Rh@V1`#&q(FRpeEmm9ZH6A#9UX,&'%IE$bYY%JkeUEE)YES5JRc0)LXXFjPG*(( V611!ZcqlMDc0"Y4&fe4@fbd$VDX"2,D4@f3&b0+PAFid11b[h!AY8N,[8L2bM@+ CLRC%[#!VLi0ZGk$N"JH4ilbf4&YTUG-VMiV*km9GXaFAiej&m([GbHC5-8TNSc& IiM3d,Md6d6FUaeh0Uc)JmZh9NdB'iTFTS9qaeRk",*HB[`E%rQ*c4HKr[B%!GYi S#@jD01)5B!QTFTV$'YJ2E+IU8-lHhXHAHmGM9BYQ4B`1($%29L*#Q#+N!b8X3U' `RK"h-FJ*HQ&L`+F00$6BP'aBCm4K$%bfm6!*4pSLbI8GBLSVr)lI*&B'PKJkZje 5$'T0Neb9aH6)GEfqIDh)JJ!aYNr+'(9*$QQX6I3JHP%M0LBFJkaf-Pa-K1Gle-$ CAifr-+fT"6+Z9Y*Z'SSC`Ai,qRjI)1$58$"6Qlq@M!AEY(3QJL&3$#l"(+fRT@! FE-Td-&&ECFlh"qXdF+E8AYS0,Q93lD#eB"kFK'1N5N0U9md*Cc9kKXbLQNRV`54 i#A1dDBE93YSe-m*5l3AlB#XmJm9C'BjTjJ`0Iq%UV'b[-$L,CfpB"GXcG(E)k2" `XF-FM6aUB60-d15`#`E$5KJ3Ac#)*Y'dQKAK`dJB"V2KMED)6l$m&@Q'Q!T,iMS mJeYD)kCR,5d6pq&0r)FlX4"q`PT0U%RK(6b+ec!RTX4jV!REi#d-e++`4C[$T&J '`q+(PS9R-5%'DPei&41ePb99c31F+`0Q65JXYpeD3*aE@j1cehA@S5Q[+h(`4I$ 0Di0dA"D3!,lfef!GKaeXBrGQKEP4kR+-"!MSR3*Sm&CM#[3QiYe3X'cM*,1Y-Xi 'GUQ)`Tf44H&iJFc0GABA9aj4Zpa0FNd*ieE$iQjXQlX*SEEGYP0bGqR(ETXJba5 i#EG35G`'FN)iEQ$-bbRMY0EFf0UH-mI5c595Yf@DV`kZGV['h-fZ*Yr[jKf2JRK $bH6YAB'aVdBq")4(D@p,#jI!0a!Jhrb%!VC[hJ'r+ERp0L$kfqVY6a8hYmf@!RI Ja'b#1hB,,S[8@(beFE1GN!#PF0FA`b'lUmcKc**AqA$Ma$8TN!!4YbRNl)QcGaT MaHPMc+Zl3#UYfcXd,JcBZ)DEip`G61*aGD$PKLJ8%15'A*%M%e#C05@jMA!eJLY NFR*#3Se%Z4H@AkYF*,Pb(&E,JH#-c$@qR,QcEJ,"*T'j['cQ4K4E5(0+MXe0dkB U2Z,F&T&#GFiZI#XmTqGNiahaFfdjfM@%p%ISB$2D1V#-ELdi1Q3"kB,9T*-4PUj !)BT-ekVD!+G6)jk18r!PD$,UZ*c'-(8VpHQZ1P2KkZk#0eD+$YAaeMT&0HebAE' TZ,j1Z(U9B+HG[#[jF''"fAV+Q@9Rk*VGq5h2c*N`kpKTTa,(A92#GK'Zh@@TEZG V[jff#(GE`Mj6ZA)RMS8#ZM[(rfIGh6KACCIT"lblI%q1hVQ"p+`am4db4MZKDSl f(@8E%6@'"p3*VH*9&,blF2!5A[YBH#QJi5N--4Ma*!B*URJ%%Z1j3C'"%6LHadX !)%rNqEbAPa"LAPC3!5Z2)J&,'!!!: ////// Internet: yahnke@macc.wisc.edu \\\\\\ \\\\\\ Phonenet: 608.262.8626 ////// ////// Mailnet: 1210 W. Dayton St., Madison WI, 53706 \\\\\\
keith@Apple.COM (Keith Rollin) (08/26/89)
In article <30893@ucbvax.BERKELEY.EDU> oster@dewey.soe.berkeley.edu.UUCP (David Phillip Oster) writes: >As Eric Pepke said, there is a bitmap rotation article in an '85 issue of >MacTutor. To tie things back around to the root of this discussion, this >article demonstates the same "simple, efficient, elegant" algorithm that >is given in the SmallTalk book. The algorithm simply isn't any of the >things it claims to be. > >The right way to rotate bitmaps by 90 degrees is given a recent MacTutor >in an article entitled "Editing Rotated Text" whcih covers running >TextEdit in an off-screen buffer, rotating the result, and CopyBitsing to >the window, on each keystroke. Nifty article. > OK, OK, I give in! I was hoping we could wait until the next Mac DTS Sample Code disks were released, but I guess not. Here is the source to a program I wrote called Transformers. It shows how to rotate bitmaps to any degree, in addition to scaling and translating them. It's writting in MacApp, so that Tim Maroney has something to complain about, but the core routine is written in C. There is also a MacWrite document that explains it all. Have fun! - Keith Rollin - Apple Developer Technical Support (This file must be converted with BinHex 4.0) :#P*[G'&dC5jcDA3!8dP8)90*9#%!!!!!NR)!!!!!,Y46593K!!J!!**bFNaKG3% !!!!!!!!!!!)C9'KP)%*TG%eKF#"8FQ&ZFfe[Ch*TCQPPFJ!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9dp54%e"3d%"!+$LX!+JiV"d!!!!!!! !F4!!!!!!!!!dS3!![M-!!!!!!!$,`!!-",J#)%""!!Mrr31Jm##!1!J!4)b)X+, &L`)U)J'`XD)!H!+!r12fcjd!HJ+NA&c*XUA,Pc"MbTb*d'$0PPC83N"S"3S!!Ir N!I!3&!#lS!&dV96Bd+E$P9E)!0J*`)UBRd@*#MdU,qP5TNqGAYb#U3)FRR3+N!$ )@T5VeiY-&aBd0d"X!'SdA3DJDaG[ATCl!bLi5))M!$B!)!'J"3!E!(i"3!3J%J$ 043C8d*3"%D40'$eTh*aT%"!K"S38!"`3NSD1CcLN5`-i$5$e!bTb`VLCdqE0'6P Tc+3T)bHf!G1S#aT(b#!j"$&j3#`TdaS0##P[f,!*6ISi!!I*j`iBE,(`4X5+'6Z ',*QbCBX"'ZL3!0fmYR,%hZZRET!!a!dG1@q3!&(('(5NmBBE$H#(N!!$"U8@(`M d*DG%%'`!G`BDG,!!3Kj[e!(#(@L%4Y`F,T5ih4adP1%'#(A!S5%eBi44aabE*9& 0'b!Fb%CdCl`4fKNJd2%'#(1%%4dG)Fk4SaYMP"&#Gm`P&am4%GBf8'CT+%R''f2 8dBD+G)"!4TCGcN'MNNKZPZ)BD,L44KaeP+&ND(CNCdFCC(aB(3KLK$&('Q2`fGT V3HDfQaP[b1&CJ3H5#!+@Fc,*4KeNb&QSER1`%3DM+k,3QadrJK#'GN&U"J)FDH" 4"KY+KX'LQiJU+QD@G1M@*!KQ!)MMJC["SHQY3SVUaKYTbJ&##b"XYmCQ3l`"4aj LY$C(#KS#@#ZRSJ*BKaYjZMS(('@-%Ga`HF,KShmDkTER($&Z*jUST++U+UZLhQ% NVVU+5L5iiJU(jkRRdZ%##-eU&fk"GqkSBCSdjJKZETbf+XGQD`alaiTqARTSSSX DZ*X,$CK6TB-KMkcF15B[N!$CCN,i#HJF$IJM'i2fa6H(b@(d*bUE`i(kVKPqKUN Z#'@BBFE"DGbTm4baGYbSKKakf-D-BG*TjfBdhTNE'd''fqDEFEE+ED'!VN&L!hH B("mr)`I!amTmZKcSQPr$Z9Q@41-44KXLkM[''fhi@ND+JVS@"Ka,kL[[ULe!em, LA2IjjacTMRfiVp%e+8HYSH(+F4fDSMPNQL$mRHLBEQaUk4YQ%"d'Q`#(*M!)8i3 'V+P`!0LNQCiE@mEVeN%1!YkN&rQPKTehD#b0F)3"m@CMXM[MRihQf2TrQ'V+UBE XMKVUd0CZkM'IUljaKiChE(C(SQ[SLH551qVlTfKXp*VUUJ2VV2c1G03akUN!qXh Hd,HC'@h'9@k3!&1+mX5'0cJV5%0k@00+*DI01)XiiU[HJH$&0G*"lQaU@`i!p(1 AfM&*6DE#hXB8PF%9e@TC5[,9kbb)X92GM`f0bm2MEKLhb8'Y3ar56CLLCUafGDQ &SL1IU*3N"Z!8EBN!-e-Da&#rJ6dKJ8%mdT!!YP3U[1&Y8bN+A*L#pEFf4!Z,4&b DpMa@,@+eX(,VDPHSM!Jk*!l22d2L&C(5%,Mkp@jUQKSBT24%USN*k(DEFB1Aa%! Fki%!N!!&mY9`P"3e%+!K$%S,PJ3j"XFlMQ&LIYT-'PA)0)lCm6pPq"+h1T5T2!b X@Aal9i[FCaf'EDD-CraAdqSi*bhT%8RDZK!&,ENUa,(ZNCX#MUSSpk%3`5jpK14 D'I3@blZjd&3*a%1BD%3JMi%XK![*$fS%))!VpJT!9%aPU6C91X"CDTE"q4$@q)L j))9K@4`FjJI[Q+-k,%pjYiU@i4!h0%+PD9GDJk#q+S@Ld,5`F)3LhLA$"%dZ$LY -CaLFr,+6KMca-3`C(CJ4%R9(&0QU$-KV(6660c'&GXq2Xh593!N&(Ad"M8!N2DB -0"5$ISETQ'A3@R4SB-0j+HN1D5!9)j[CQM)-M(6r+4Xa@dUm#"*RJP!e9#PCL#d K"'%)5lK#%+4!K#RNEdA%dS`FeLF(-M#c4k8+TR@#5TcS#+pcT'0SJ9+h2@(P56K M)pdB'RLQ-0heQPJ$+!VCqCSNYND3!%R+SZYJGpKKkY@Kf-SS(G"NUVrYTU-Ba"D 5f0QD%fJT6Ym8CmdD%-iSVEDe)d`1CV5kaJ0"k6X08JjXp3-!0H!QHq*lPk[-*E[ KFABc[rZ6!Kdj+MB-M%*FUq3P-lR&)Af4$(PLR4PSY&Q&TT'irM&Y1dq(@6RTi,D mMFpZNp1!"1$K"#$S!3M`!))9J)!)H'"YP5`!J2EQ!ElbMBjpLC!!"rfUPVrU$@% %6)D!+FK40,HP'FR@Djmr10Klld,Uqll)KYkJ#)V*M8l'5,P'd6bA90,&T*UUDpa (JLk5mIYZ`-4VZVD@PiR4QB-lLI4J)0e85()i,i8RE$)(Z"I!)%!"(P+!JLNX'Ed )iDq4ra[I*1H"b91i-T3"J'!$ZcBeJS"#r8)*JSX#DV&MM1a,,D9KkdcX@`G6+1N 5PBBcK1DX15V@Kdl(6&X5$8jf4#UT"-fe'"P`Q)M5M[P#9E5M%@J1j`@!",i-J!m `J!$fb8&k[4aEqm`&!15TL(N1NjM&01BaNCP-C9`bL3#X)3$`L!X!*"%!083J!+! !J#"#!3#T++!*4)!#%`#3!)#$$#$AM$#)!Q40DcA%B5J(+3)!(J#!B4XN#G1ZGVD a6@eTAr[C(Y!e!+3G#@fA'pZ#',Hid@eZ!#4""0X'`"abh3KH5`8"`"BfU"&LEe$ RHpM&0XLa!F!)F+[E)-1Q0VB0)Qf&Cc[KlLk)`D@GlQ'I'`$P(RDkf8haL%F#hYb q'EhlMHpJ$jXm-!!!%&31J#Qdh#FU88NC!&#'I[rDj-3f0V)0(S!!G'$D!5K-cd- !p-)m)!"%2rV2Kfj`3IJFid'(1Y'GrR1R6chUN8!k[)p1p(N$S0kpPXLrp`d!Qim pi!!BH-'K,HeXD"YPf(DlY1%1!*30QqlCQ(J!Y&$Y!+6"hAl[1pq6X2Ga&jl`D3" jh8AqGC+2(H8!Z%%!U-f&!0$!*eX)`!`!!)J!B-%R0iLi%J$!"Cq8!1N!8%)!M*! !kd()*6#K4XLSd@2UpD6D24FT`BAG"D5DbS#IT--##%`!JLc-DQ,GE*3)'@!3UZa P2)3a$1h9JqVfV"Sq$A#"bGDK[lBf-PKV"X(%eNKGBD@eNH$0d*)f-l82#dF1(bD akSB*TM5dG!kA""H44MI4G4SfB#h'6R0Q)D("2Hf#3PL6IbMP9a6N3V3eIdL#0hd b"Q[`A%HP2NR&065b'GT$(!X6@AL6A%NPBQ,34%'9"UVM8ALdIN55)R!!-Zm33[& J-P)J"8962phd,RLM"P3M2rb#JS9'CXHdHcq#2QUe'8l'J&Q@,FK9(Bh88b69!M' 3!&U8&Km'S9SNFi@8PJ$BF5dHd`"DL&ZVP4&B'!!QN!!%V90*-E)L%r-PCY4)D43 L`X3ZD1"!A$-U'G9%BG"'AUL$VF)U%63aG%!(d4&Lch8'B9#!mK40bH*!l51!R5@ %VE-PS4+"4l8RirG3`6+!G4BD1b"qEV4A3")'BY!K3Z-'GJ@!H,0*L[)[059rSLK RTN*RGZB'I"KFCp"*DH+!`"@,%lJ'RE5'qE48@i*&RF1$(kC(+&)',lKP*)-3@&K Y1Q1*T40+""4%rU&3i8-ik3F#8+"N,("P)'!(BP)'[e%'PU**!!J&*k"N*a#1*j! !!J0$'Z(@DDPK![A"Abl!@d#3!)rZYQR35'QI&RX!-(ZP4RhXS@V[`4+"!!#+)!# a)'Z!!!#*F'Zj*JM)TQ`55C%(B"(`"Klm"3#j"JUm4JSri3$mB(!)3@dJ@4%6m"e F"T-[#4l8KK!6S'`Y!@mf13!1-!))-3,p!!!q+C4X-j3M3!$b-*5%3(BVN@ZMS*& J-C'*X*3%@4'j&JSGD4!"m*%!m**`3'r)eT%9!@p[!!"jJ"!M@C)RQC,3CKPR@CD )3'Ta@CCRL4KRkCCbLC-X!@q)J3Ma-!"'#3$p%*MmB*323!"+bC3AiC43f4"55C8 YFC9C@4"m@4"i)**I&`-!m!-!X!8!3#9JJ!1DL3)!X(NY!!!iJ!1913&+B!fV+3+ q`'Z@-%*1N4%V`@ZD)"(r`$B)83!h-4JE`3)!8!8!N!!$!m"PT-%!+p!#8K!!GR# F&j!!!JF3!,#3!'ZA)*Zdk4%XJCZkbCYTpjX!`!1p&A&bF*`83*T'!!#["JA@LCh -Tjfh#3#jL3#l@4'BGK#$S3%!S!)!F!)!3!1N@4JV)!$Xf*i!-*[[L4#fH4(F5Cr HkC[ifCQS#3#@836(D3%Vi!""%!"e!*h55Ch@fCJ,)C9J!!!UX@#(!!!b8"&D8+) e-"8!B**4`+,Z@C[E+CrG@4(eJC2#+36"GF+'ND3-!-!3$8!FVm*`!%*d9!+) !F!QYea"c)4M4Gai(H@S*LA[B0f3e)6)%DC!!kB'PYhGp&B%#F&0MU+-k5R*-hPL 0+l*8dj3lFN)MC""TNfD2YH'2&E"TA'TNp#9I4I3'Fi!#GC!!!PXQC3N3(B#k4fj !U)DkAlTP-V6$4dRP2!VMMI!PM(#+"h*U*RJ5DG'BB0&B!dG@CB%kU"jLAhD3!!+ QQQ4rJkSTm+SSX+V(`UL11MqcQJ+'5Q(m4DT8YULiQUVMb+U,LJ+b@ULi5U[f&Db a+ULjZUZ3!#UUP&B$4%!V`#%'G4#,FY"*Fe!(BY"3r41,R80I3j-(ekKC3VDIP0B !rZJ![%8#rPJ#[+8#rVJ#I'Sb*P#ULhUXc6USY)SXba-DYbU`UhUS!+!"#3!##LY Ip#@VrlSKYPU`N!#DVlmUIZd%UlJD"kaUA`(EU)AUX)pkB!HEX!XlAa'lX4!,XJB VVAM+XVb&!9#3!+hL+M5N)L5DT9B4PPXZQacHF!@*C$k@T'*%)e34Q''*K)jjSNP Aa6%JN!"4#E3e5p-dGR4--M8SKi0R6SY"E(#0X+Jq%d9AaY)D,3C0cU-Q@Y8E[a% FH9#*r'G""'L,2$BUGk0qfcLhZUJC+r)TFaXh&!KCAU3Nq'FqEeSqG`#U9GJ!9"+ 0!eQPT"DQYQGp#lN5J4!!Md!!"5#4!H!)&UPV'3PUQ1X)m,B"!&!#"6N#KH'6h"# kSbX"lM!#%L!"B%P`BHQ4-"Q5D4QMDkQ5fGD50PQl-JQ60GQ9HVN51YQ92'Q83@Q 84IQ65*QB9BQ@!2#8RKZ9Q3ZC,#'C"l'9T2D5SK#lM##@#!&[A3!!AJ#p*)Ql!S# 5"QF&j!ZN!0!'!-"hm$ZqjFYhjFZqpIZq`hX4m#DrIaQBJrQ6Mf'BL)N3eYZ8d5Z LR&HpLQN4f+Z9r9X3iaZlMB"Xm$DMj8B#TLZ8!*!!ZJ#!`DcVZV$lGFJfZf-*NkC J[QUC[QaCM`$`#5KF%D-3`q!a`q!"``JK[Fm,!-8l#XIlNmRlNmXVP-eV`!eXP3N m[Bl*`$[m`*4*DM2F[54-F1$,`qlV$LU-[ZS,EHb,aH-EP(`AP11,aAb(a9dF[i+ j[l3Ea[mV`!(-`BAjNiIT[*'Ca-Y'[Bj``)YCGT1T[A`A#4-ma48XZe4-Z`a#T*K j[LE*`LSC!#q!@iLXHC!!M&ZEab#2A"!cS-BRM-Nr,*4"6*3F6-4*DF40E-HIUmF 1c-ICbjH5,-@$r,fdf`8"i!GC[-KE('j@--Y!'J#0%,qm[-ZdV!@kR-["c-ZD(,k qh!KYc-&[l*0a,*4c6-TeV-1RI-63Lj@Vl-XK%-L$r-V`jJ3"F"S`-!*%kT23m-h K[!(S-!)EJ!'akhS9!AZ-1heL#VNAB3%*-!8Z#!)aN!$2qb`$rXb-)$!$k*9Ei[' PdRHPMkZ3!"F4(`&TM`'3!!Ak,0!p&EKhX+ECQL0[qcrQmLHF-M!q'l4+8bQ!p5r HSS$-C8QX9%$cif0*dbX"ibJk-p')Xe2$9)H(GNP-C,Dpq#qE1)Y[bbFLKPf9D#V 'Bd&'`ed+p6Z`Fda))ULE)4a+Nhk13Y-$654eH0%h[G*a@cpjdL,fdPBi*MqH35T ldb(qiEG(P6(&Z"Ne"8PTJ$P&I8X1C'0mY6UY`p6@iG5i%p0#l6H08L[CD!HMJPS J`'QE*VU+ZaF0$+De9hd-h4*i%!!4)!#i)'Yh%!!3X,NB5A!+R0N3!'pe!!!CN!" b2UN-)`!09McD'B!1j6!#'&!1hJY[R0N-TJd!U+hDY!d!cH$DX#hE8m`)*Sc-i*% #YCbld)B34&IF&8'kc!dHcJd!4)F3TfI09NcG"0#63Kc+)c$%4cR+!)$+5%c0B!( DiRh0I9bCT1[+`fh&irYXLEc#Ye`9$q'qIi$'prhHD2aXl2YXI2F(afc&rbd2J1R 'K'Q8$P$!i@hGM+R%#f(H$+l+%)c'%e#q&&c#KAc#i)%,amh)b3d!X3#6()i3Y5$ L-&RLi"(L*"lJa9X,R3b8h1hG4EcJT8cH$3(KTBc0%iiB*FlH'Bl-XSc%LScFZ'` 6XNaY`NaY3Hl,2'%65FlL[[`!bqb6c6c!FUcJjifC0[lJQThP6Zc(dF[0lrakjN# PjC(3MJ[C@PS4$a$3L%-$EJi#0B$B"[em#'fPDCkPC&S6L*dFfU!cY,22-l#)&Vh 9KeDhh9++'Ff*YIMAPl-MFre(G951l(+Yri*ATK)kfi3d'a3VS0L(Cb"5$U8GjQV S$8-m$lK!I0Xq`5)Y'Yf*UF-e(GdDE05d54-U-c*-ErCLr'6908#&,G[RpR%16$! iiQ8aRU0SGc"-fh%dMU4(I%hAj(AAR#9AA44$ZM1RH%D0-8)M"(3#T0*!Er#)DFD "jY0)p@-'BA**Br-hF[#dMN3k11hY$1JRhISPrMFmG#"H$43Mf))h+'$6-d!Y$$K DjIlUM4lY+ReSAa3Q+%!$'Q)$mLMX4"D0d!!hlrGKbiJi9I9)Ej!!5Cd&*SfNm21 qBX0%LhIf+#$S5eK88f&!e1mbCdNp1%V5!N3e0#eJ!l+i'F)h0-D(TMFQIR,#,`L c+UkNmRLMYaKY,1$bIm89,!&IUa"reFJLm4T#8LM3!MEG!J-2l*[@$LDM#A#66GZ dceE$"RF#Z$eQkNi&!Y-B@GfqJ%Q3!$I0`bdqE5SPrpFfm!*%9BI!S3F(8LZNhNN im!)kVc8&dLilmPa`)0Fa(eR"XMrTGkk$BlKiZVKRMZH2VHH4Uaar&id6S+r()J- SX2Fd3+c(3Y!Z*l+KAl&FM`+&,r&9C[2,&fA+i3BQFp$cV0"U[ZF!B!C`%i&YeB) #hI&ebrBJN!!$-jfJTcS2@53[8X$i`9G$5r@3XZa3kSP++Gd,jG'$jQcB0ZFr BGpkiQcqQRBq`le9P$HZX$jYM""ZbVX9I)%#b9CEe!bqVbXqUb*,eTiqVqmpJB3$ l*er`(j1"!I`[bGJm*K-$j&qRi5m)J!##!"TJX""@aD)[b3TPC3lhj`$p8Ie6@2H 2kk8!!)J!kiX#2(hk$`%+3!PS!&&!!c5"rZm!GN$EP`!N)0GV!$0)C-@((#L3!1c FlXYck!mqK)%Ri%pL4cE#'mL1RIJr$5%#49fXZe63T'X0%a#4(6C$h[Y&#J9%%)H p&52`ADi!()i1jJ'*1G2i"&96%4@pB9Yd&fKL3*,@N!$3@rTZjb'mcS(TSTVpq6! bT%N-$#*`,XCJN["q5BDSf*HTar9-S0A6D%N'"fL)VXFCaNDhDLNUSN0F#!dKlYE !p`J6E5!kS,aB*bCb!e)4$C%#"$5"ed%%2''5dB)YT9L8!I(L+YJG'H!4`)%-%$b $*ekQbHZJ!r%$&D)C)M%JPNABQJ02iU%"T"!L$*0$"MJ#'S82AJ`0J3c$"#bCG5N L'-i-R9All)-8H!*,i0XT$BYf6GK*qMJ",59hq)EFd!CL#C!!3"'8BJjm)Q4A2rD GNJ!PT'ji")ihFecfM#VaHP+L'UD'+'!&kJUIF#*Qi&*jN!"088[k6r!C,hCYrKb 6r@%m")F4&"VFEm@-Zb!#DI5KFLL'RZEj,#MC%`#@`9q`#("Zr49!2,!!5arIkeF SB2r9+K5J3b3Hl$0m)e"JUF4"Q!#f3!cS!JC,pf8qmiH3!))JpX')U@%A&!&U%KU +@JJ#0+*P9G#,A1FUrND,m#0ml8FiLT&L,(M&,I*&d8(j-Eq*B5Qq#*&)(4`[$3' 40T4+')Qa-(JA+b@@3!jM,r+!NS!"h%SQVX8re"D9a"4#HNV#-m#3!1[hCr`(TiJ d!!#4m4Bki)rf!'ma"2lS%2#@4Z#2+!&[q36q#"3-`m9'&cCL3HU)(l%LC!$49rT D`*9jLE+2*Qi"'B!6-@*)mS%lNCiYY$A(jk4#'B)(9F!0a)VqFGFZ94P!LZ0M0(D "&J0RqJ@Jd%C[B&2JSZ5hr#T&mf-Q3q-fKJeXB40h)plSMH0LESb19-GlAX",q4% [B"YK4eK8K)"2rcNGa1(%k*J2Y!A")3f4L-J%&ENB0J"M*JN$qL81*$e'Kc%"+KL +Gpb#H-C9&!KmpdPSAEYS4!p%@5!J&[30@dU2B&Y+T(0S`48K$RH(pG-04--rf"q hCV9Fa$$CMeJ$A'3M5[6i+NMH`"i1)l4iM(Ii1q,Kbh-V,1)&J3!K`#-'4b`#'Nb Le%%6B@4)"J3+kALr"kj*%ZGR16!'GLNcEa#-0*+XeNlF3*fB&+TZIj!!%UQ9@@J H2P`Y32'&BE`lQ'C#48@a,M%NSqd213!k,)@RdikL`3"KQ&`Np!)LdJL6"5r9K3V C%55M#ReT'L+&T0M#2V+![Q3SkSic%N,'+ATilCE)H5&$Ki[A4+-6N!!!f&'9N3* 3`!KY`HX3AfTL@Pa9#D!&C%!38"SPcI`$0EcP!ILM!9J$Dq!@1&N*#f44bT9P%6X !&&KDLL,5,3Sdi2d!BkKU!1)T'Sf!3SPN%'@Mr*3J+e*1bLl`+HP,T44C'k"6IXS -'#Sj)+AmP0(K9el+q!!2)"81N!#!Re,*2-S%#2mDeDTL93T,@Nj+ql)"rC@Z'TA 45Km'J$G`"Cb*G3!TA2%5[3m3i3d6d,RV&JH2NG3L0r%ZSU)[k4+UC(E%aYQi,95 (3%`KDR+$,%P6JLh@d%94)RYb6TQd9J%#IJppbC(**&8-$#4`lV4'ZLJGa)&c1## TdPc-Kj,)GDh12`#)3h*!VKTp'A5,3TRJLQf4I&B%L!!8`309YS&k1$#jLMGCNB@ )8p($8#(jeK%Y'5C!MpSP'6`!0AJ+`FZ6+q,3N!#1400!2L'3!%LCUD*hU*%@FPi qhq'k'G'S!Ib@h9"LcX"jd6kJVe0k5SA98d$!mU-#p'983JL405X0TAbK!SQbQ@c ""%!&USbM0*YNme&%Ke&j"LcP!m58b8&6fVl3*cBr*GimR'86*ji&(GJ!FS$*B!' eJfpS#MP`U6cGR0%cCS"P4Sa@kBb8`mb*4JUJ#q%Lm*FF1)$BG*5LmPK-5VaC'N8 @#k#993CZ+XU*36IYjV#-Ib!`G5krdRLRr*%#b*6qb(3@6K#ir%#Jm5bH),#RY-j PD4(c@BpaPC5'F!T,fT%fLfIa9*CrXfdLQ5N30h9K2V1G#Q[j,D($L40*3qqdIEm cF2SMk6Nf$fIa6*`0i$Ja6[RjC3)!!h!#3'YTEJZKeebLJl`-$F!3"&b"2H&RS1E ZZ%E#L'q3!+ZaX5KJ4qI3$CV3qjc&rV05K!JrF49#T@QT#+f&+ra%L$J3F6*Xl3E "eL3da)b)G(25)6SeVG)d)Pdh#RL,N!"9ND+2Yi#3!#EGij0CT4I9ZZZ)*X%NQ33 ICD!&F%IK8K&$b"!`'323E5BC+L!$Q)`8`$*-KJSd3"3!"@CJ6)S2Lh0D$F@kKcU !K#PDSNd8"6c4*K0&Af#VkblLm'%JNkLb1kUQhq3YlXVfFB"03`9-"Jp`P'9cqH' ABcNY&CDNa*fXme-Q)IHTX(JP2`ZIaf))q-VN9)Amd4hpP1rc[L6,ffNYX@8I$D5 )G(aH6dLD0e[!%%L@"ZZ4%Y*$DNJ4UI%NRUG8H4T1kjNhq5JVcC[,mfmqL,Ba"Yi H%Vb6'`3&+&)0m8PCP85j*5+[+VD1K9J%mFrKf!c)BXjJ%E4)D*5)hR+$*bqS-C* BS6k`aJ&L3(AV%b@KSE'%bYB`iD%qjKBQLP")1KCSRTL2%l*PUX0ae'*)aeP6Jij %1ak)6i3#m)Z')$#qY"jH&Vib2SMTmP"!0+B1dBJ9d56m3b0*TTUKB@LU!AR8S)J Z*CS%imS-M#E`BZ)DT1Z3!,L#5JD*pE&'JF-"A86SUJ'%J4$L'LP02m19a[+29P+ &Y8F0k5"pTBBdMbE54FT)@jBr1UNR5f'P6J,$4r'Q*LfNR253!(T58'SD!3"10D@ R&(NQcjlk5K0R8%@HbP2BG4NXB$*1!"q-G'4[2EC(IeIVS%P)MC)1c@5d!%ICC*C -kQ`"6HE+V-k@qLPPULGGT'()(ih9D1PNBZ*+cCCC"LA5+NRU5M[T*af9[!S!c09 6HMJ*kr%dV+TdP*,5"N#F'+FD-"PGB*!!2-GDX6N3C#A8&pYK%2Q4,f%Q5Tf154B d$jRJ%eH4@A(Kcr*#"q*rG+Y[95$#eFdXGYq[!D5F9jP&m96SN`-aS+I)Pb469e9 @Xf4p#3#hrKljJPEcDJDXK[cPYXS!hBTAPmaaMDZ$-lM+J1'+9kq-bUUMM$-L4#2 -%&RX60SMRDZ&I88M$q!SF@[C&+iXe9Hf986k9X'Pb#+[Re)1,&H&*9pr$emeT*& dU,VA5`PIN@TK*D92GDR'8Rm8(ij$0()"3m"jV+ekZHK-"@$j(cTb1h$9!m%j3`K 9M8D[-llQ9Z1*AN&JeP1N6-DmTS!9m'%rSh!GX5h9B'9Bm60I3@"p0CiIGXQJ!2R D!%RX8!fadaA&%PAAH6H9URmeV+N8b*l5!@[l`QSdSJ+3!))m`UeIQP%j)G5N,cA PCF+1B"&KMd4RU@YT+N@XU@&D"+RDNb3C%bNDi96cbQ&MJ(h0PQmea1E@%9YLe@` 6A3&Xe@6K41JDNmCXLk@[daA'TYNCZecCl)hPXfq@TaT58+TG,q94pE(r9FJZ988 ,9"GVBf@HU`"5`EPS+@+9$-UDX@D@bBJMqa*Me@b0EE1B0Y!Z8NKe!aB@@D@a6'E *`-$kUQN[lCj&Y6DfP`*D(6XUfBE)QV5-0YH@c9bVD)RX&@d!BCE5X)"b#60"!$, #K,pM0q5lrC&!PKdlFNI`+*rD+8VM!Ic4#GJdUX"NN!!UNCKN+UfUjE3RPL@k@K# ,D6rYRcfaF$DrN!!QNH@VN!!-RjfLhlEEjPKa#`0IECq0Y5Bfam,C!J1r''HrT66 K!'i%M@aP3Ei9F8JScI5L,+#X"VBq%$X"@hQJD!'*EkJdMUfBd#0i`i$8$c-a-&S '"4)9mG)FK3Ck55DK5C(S+2Q1NAbBAFFH,e",H30L3'1kSZM!*Gd!bEf3!#b8DIf LX1C@3S$E3bYkKUfiP@Z832$%[p!aAd,L*SXdX#bJCl#6!bDM!a6+NQ@QBN!mDM* A9`TFA5CkGGQ4S3)'iC)c4D-FX%A9"Fr-D&AhkNk"V,YeC8!m8LLZ,Sdf%J0UAS$ Y'dd1F63QJB$*5'Pq!"ieTBU8MmD!&r"5%DNKP98Yi&rKUX5,,AIRHX@E,5$&'S6 kN!"Hr*(I$DTPmkq@d[G*H+1$il99M&HR1U[3LdRcUk"&VT[*8Ej5!1YI)fNTrE' Se(JQeY8E9Ap"Z0`%fKD2%YlUUE!#,ap&[)TAB*(HcqY@8qa#S,a5`KrK!&1l5XP QjifSMAEalPAJfhMlUP!p[C!!LP3ehpKl5(XUl2faXaHT4YA!'KqblDJLUi1hYil H[ASXA1$ZYDYCEkrkhTM+AP1XBd#q082j-YmNNhl9U["P[fLerk*%d[YAV@p2LE` lpP*UAm1+D"9Y!fkPq&AmMXS&%#i[8c5UIaVf[*VChTXfkHrKM,bM&[mk#(md![B [MF@cpV8!4q$ZLi"(j4L!9"LipFVH4VYk&fZiP$E4#!@8e`dVIMD`!X3[RYE2iY0 31f)$VkrP,rEP9V,BmjTRIl#-KE9CE`LcfK@JHIN$T0,"frIl!YPG+f52X()`X*4 '!ZaJ$@aIkF#S&9N9`!5hf"FE*%!T*i"8BMJ,rpHS'LlM8M3k!19b#rj*BQJbm"Q ChDhZ9rd1+XCVX2c`"LDZJGLjrPmVbPrmm(`&a!*BqM*L,L0GU5[rlE`$@'+*V"# 3!!$-F-Pb`N(BaNVK6%Z&mdY4jF5%k"0(i5GmEk0`[RfcRl3"!%TC+SY$b#cQ,@e JN!#N#1h`-6R,TY!3hP9&+)jee)lH#p4iZh@3!0,YP6Ib649,89N9qFlG[4Pc`5d F5p@SL,Fi(fCMqe$rrP5hAE2Zk0+'frq#XXb``DTrLNVH`YZh#flR,6NfJB5)9'j MNM'259Xc&&FVL(4JKf`P)QUaGj!!--TK([-br,RXQ1NU9"U!*8YSKZa5"1[3Pf! V`'J4#520FR%["YbPNrN5KH,'kT%aQXIQ5'RDBUqd2BbA(CTQU"J#S)JIBj%YNBk 542i3'Q1J5F#"lN)(1'Vk'4%+CDBF$Z6i%2-GG23ApE#JTJMX4e,N+FC`K$hQBRB MY2L6h@0H85#BTCpHMj!!Ce#he6"jTpN)"A31ijJZ@G8a-FThki#N`@ad6-"T6Zi 9-[25)4B3d22'K[%C%mJRBZcK9eQ25m!))'NLSP!QJ4U)!QD!#iJ"0#!'e)!F)!0 X3!fB!68!"q5!'j!!!fD!$*J"1)!'5$arM"$)3jHCaCDj5d%ILc"T#J14fJKm"c( 3XM4R%C!!320i+H2)4q3*2VJeYdSE3!'XJ3k-3X5K!R5-2fN53U!*D)MB2*Y"J!V 3+lPC3d!"!#582G"YbFa!S&-1jq+b6jPai2V)B2P$USK+X5iJkM4*%AC[A@JCfC! !Q3A!(MM1YQm"*)$R6!GUB"VB!3e!+AL(c#bHbA-09!2SqD&PCJS`R[eHH8i!c4B ,D)KQQ`ALmhUfI4%J!3J"1j4XcI-FQ!+$)cjcC`#G!"U)D+L"+X""R`%Sm"r3Xf2 iclp@29GQfjH[h(-#3#TNi(h)&q$F"&U!$e"deGJ&@!J-iCmhG%c5`4jD-p3C$&& P5,5*4Y&Za3@8SN%%1&SdfHNbX#8c`lRV2*ha4($GX*!!f$UU@K@3!"D0XQp1-P! J#Eb!')!$%'!+m0J%3kHamT+PV!&E5V)T*ibSRcD5TU*5QdPBD5pZq)De0LM3 CN!#Zc285c`&a*+B&&TQ'dQHk5ZXU04f6f$4fTXk9Z-V)D6VGT((TLLM68AT+kqN V$CjMNJ")!)fD[`J",GfQZE3C6J$%Y6Pr0$5J!XJXXY$8hX31G1S0E&q+Xaa`!@L !6dYU5[fRM63K`Y6(!P5$8%jpJMme91DR)&48[pK5(8aGJ"e3eFU"fQ"Sr[+S)c8 P(J*M4Jl`jX1"!NJdSel3MKT53f[q)J)5J+G$!FDfbX#!6k3'3!!2)#BcQJj`ka9 JAeM9Gjl@2+`'AZ[KSDdr84V`eRSL4+IUi8'Z3B#j0YB$S!D+N!$-2#YVB(kZ-QP J92F8qk)'1[9mY5qHf,kiJ"UJS)He81U8r"PJMqVI3l!00X9Z`bC`B6GX&meI#%# R00CMe8!Mk$!KAc*K-i3#0`3&f'BjJ*YeFjNT!hG!2lrX1j!!"CieZYE"jVPeD18 $26KB95BFf5KlAM4V"4+FKiH'8!22fQ&ll!63"r!edplAYNm!0'edV40&$CSlIrB -qk`F,#3!V%$`ikMZEM1%C"&4maj*(MMC2+5Jj!'Jc813!)8h6AGK`Y09NPD(NF' %)"N55b8'`!!B8!,D5H!3(qRNCfE1rY&5Y!Ee8,E(*!V8JE*4#X2!qD!J$@0X*a$ !KG2B3*j3I##J'HV5&"#dSI(3J!+*b$rB)!)a-5ZQ"lUiSH+cKL"Y3KEM4kB!@XK #B!+e5L&-38#TM58%0iR86"cK+M*R[!!8K,[YX8Mqf88C%(H*4D4$*m-"m5*3Y%3 kaB@P6Je"5)VX+XaX#dJd+ZL6*"GVFLTNjNRj4-9MEr#d&H)dA'B'XLHM9G'&#F4 -*-,&JFM41,0lbi%@qLk3!+i&QFQ85Jp-VE8XZ3p)42`K(S*'iJNEf5H$a3c0D$+ J"V4[c`+rTm#!f'[iQfrSliM"K,#Di,U21k1-e,d&H`lhKN-8K`+N$AcCLiJcR-! 6S!*&3!G!EMA"4jcIbkdKSc"3*)'jYb"CK28M(8eJ#0L!e#5DMXr"L"p$3i-RP9" K18e&$YrK-%!'`!#3!1%*3SJM##(2S!rRi93i*1$+&m344bKRVCC,B$*%`FTS+Gl 8-kK(L8Y*J)J`iL)eA)C`m*rTCrUhNT!!fr[MJX-"Ip,4j-6!Q!)l*YUGZNU4-6b $L'Pm[d1%VXcJ2Bj'a)L-GdE0JrX4%%i14rM1XJrb!&RdKm&#+@k*PkJM45pU%F` 416#N3,J'NSmlI00*!$)1p`DmU)[bZfR3c*aV-cA)@Yk%rd0j$i`XB-BKC'mB%fB J1SLYciS@aCB`FKDFSRqQFUCe)QPGDSdIZhYr#`Yi!8THS5C[4AP#PRG1,'SbV!' bD"Cb)#l($cV5JEjT'Y!$5-fbh1U()XZ[`bHh'1545#MbFe,+F85Xf"hL[+(JkMG 9)Fqb0`IR+5f'JqlLJLS)K$pC3"-$%E@9MEYP9GUbQaS19%N8AHUX81U3!19'0+0 1(S)8Tc,0,D)[3"E9Ec-BJGa!)"L3!"'i(hQ#$!M(0J`Za%Ed'prXSNMlKrq41CN %"@FSrC'4U+#IqbFUK5Km(@l2#T58&2(b(-Q@TXk1BT!!q(&ETc4HKdbZ&B'E&BR a@l&"2!22Q0cjVKLGJ'eL,MkbUpMKU@N+9I3Sq3-NZD5Sj!"%GXb4!0(fU1*0(`0 "S2'4mK$HCeBHf3!9Sq+Em'%-Lbb#`)rd&UM#jXi4Ik*MM-A,p#1lqdH-F*G`R!) !IbTHK,dJ$"[%AK"q6Q1[#Blpk45%Pa62+,YQU`Q@hE)lRmeH%cMlC-IXR6fd&`6 2IYP(ZfJ[lDJpXjpfdXlD3IYR0qf`(E@hGYLq%NVlDVrYXGhjU2EFMYYV1eA!lE) GZ-rfi-lELcYa6qfZREMlG[J`fjGl2"[Zd&fd#hITAYbRZh'2lXmGZ1rfiqlCU6Y hCqlJrETEpqmZhXXlH6r[f"fpMrIdcYlAZhXhlqdG[Vphp5lIkcYp[qra(Er2prc 1hrHlIlI[r4h!*hI0$YaM!jmlm#3mV#Vif,$J%Ab$6r!-2X)lH!N2i5HmKDr`'2l "DhJ+rpq4qf[Al`+HYYIfJS$lLTGMK`m&36'%*!"`iZ0C38KKGiV&MrJ!`1(d%d* Sm6FK!%L$6Y19CV`h1&J[SE$MJq[@ibr#F4)!qUNq`#JMra0-!)qRl"EKb+mSfP$ NSra2'$e+rVGAK#22[ZSS3Y$b#1()CpXX[a+1[#d)!&IKbjGj!%!!6J1CCr)%S$! SH5LrjGPmbPRaG$l-XrRdp1DY2!&3#BK"cF0jAm$M`Iah)J$+)!!BJSTJk1@R6qM cGGi!9*iI,qLY2!+B$j!!AXmM!#-J!$,pG`UGKAl0+i$b0HG&r@2&mk*q)RRkik3 !'!%!S!1-IXe6i&$2j"G!Fk$bM4i!,)$#J1YP[AKDpETq)j6k@Pp(BhbHrdi,`!c 3HLZr!+#Z)SMeYCjY!(X'%"&k2C0R!"$#fPYj"S!$PRfGC`"8!K0!qfh2$ALm5f! !k1#k5DQ9d!!83!!BmRTKfQ5%iQAS$F)$+!`T*l(I"L+Ikaq!(I$fH[i"T"Yl-1l V2!5i6-!H!L`P,P$`p6`%!!F!rcY"!(E`j0Fm""MbUD&h-IN)d"b!I36!!!%Jhbp j+bm"K(h$rdi5S)lL[NTIjb@!-$$h,8%#1!0e,aG@JJ3!#ERJ*4L%#T!!EHRp5PJ j&B!C`(b@8!%FJmmRq[S!!2L!NapPZVfRMc*83Y[I-iB[p5f#"B$e6jr,6#6qa2+ YrTKRqPc'&V#FVPm4,!$"AcPN(b&F!#+9p5q!Mj)+DAp*TE#f,`X!J-Jhp'TI("3 NX)m"MX2GE`NBJ%J9KVL2!IK1eXF!bRlBV`3-!(@,el%h$C3JiTZ'A*2Zihi'L%Y +hL9NJ-L[NpEp4FJ!YS!!'(M!`1+*!Errq5aHC%#)a1i"MX24Yr)HJ$3"H`p!!`) !h"rjGIi$L2[-ha)qJ%RUr$Ar)R`!Bb!!`'km&`',r[9AK*8M!P!"N!"2l#,Jj5Y r25m#b%(%2diLS&PDIl*rR%B!AJ$f)`$L#`AZAj!!GMb`*`%rAKZFr108!MJFX#m "TYmN`336B"QQId8`!FmqkjZ!fH6#m$i!-!'-3IrA%TJ!jPq3!2IrrAMfhh(LR`! !C`(jG`+F"E`I5h!#m!'RR`6Ba!eqZ*p&F!+mI&aI"PJ4R!!8Rrf(%+!!i%'-jrp KDhYIh&G2U5XUB)N(pU%!LN('j`'1J#C*"'MPS3#`3!9i!dS$!8#Jj`%H*bV!dJI XU3"BRNZbjUN!l!X'H1`"JAV!pEHI,(S-(rQR!ZKp3b!@%`AqJ!$!#P!%*RBV!2Z 5!'D"PmR5a`@+I9rJ#R"rVApCS29(m*&r,)$kC`2@H5b!b2!&YJ!4!3E)%K`R,B" `-JFk!8jJ#b$-*(hNh`Y34`&l,d#*NQf4Ic$!B!$X`3$mK4L)"F)!GG3A#!2mHiY JZN'D))*I(b)SpQNIL+$ejq54Ic'!)SJ'aJ#5fLK)93&l-3!C%!!dJH5I$2$M!AX bJ$S`'k#"-d"')!!bHB-1!$!IN!"r-`$IF3YDH6-!`NF,,L@)$"Bi!bJ&`0i-B!a i'XDJq[F*BS%d!%,JSj!!Ic5!Mr)-jRSdJ'8!l0%!X*i-L!h'*EpJR8F$T$#l)$3 )mB@$HKi0)$-!Hc@!ZlILjASkMa0S!qL"D+!0`!F#HcB!hc&XN!"r0X$F9`r@IIX J&QJ$b!cT#IPh!e!*"5%@H!2NIfMJ$@!*"!!V(aDB!f!D`&i1X"0-Ja+K5L#HN!" r1F!6Ya&+K-U!%jJ$@!-U#KUS!d3%`*i1N!!DG([NR`i`E,#%@+!1X*6!K,QH$X! ,1)%k!$*!SD#"1d$+!HcY!1)*1[LGl!#q)%piQ3L&amN1`2raK)c"6`Kf[B0VhJj !%[k%HYmPL!Ab!)1"9CMVm3!VLPDij[%!KKmDb!-SHc6K9pM%!AXm3,C9$'k&%0p DZ1Ee!2b&@mMNp3$$"V$A!e"9j3[je`1)IAEKbrF4jRSpJ-c`&kjj2X"m-"JbH6i !*BJ'qJ$TKL1BkrN!B"G'Q1[p!"Q"BlMQr3!V"l$h!``ENZ&Pq-4TKVN*fSF&rJ$ URfLBk`%"54iD#!3iH43Iq4F%6"V!AK!3ERL&6&i3`1HKJ@-&!1!6Z)DLJ"-B",J #ZL&Z+$1-(Z5I%,!4%)GBS"!J#6L"3N!6Pa$QHN+!pGFC-RP$J*0R'Ujj3d$LK`B 1!9$AFiJGFMM6SC8h"#4peb'64`4JHQJJ%C!!R[apjZ'ra`PLJ85!5G)"jRT%`-` (l"%"kYq+3[i9!Ff"A'MP&3%qLRk)"4B"@"mD@!4-*"b!JIL'VAi$iNfB)1k(Cq" qD2fCJ'YH%8$`!AZF(J$!)1Ck4J#mX5'ZH8D!Mr)K-RP'`&8`)PTj4N#k)Cb3!(p '!(#i)Q+"4S!EL!BD!5)$KLJ8A#ENha(`@!&l4m#r0aqZH8G!V[%M-RP(3%M))dk &4L#4U2FTJ@XH%R!F!(Y)J!33!)Klj&m5N!!*BS&*J0JRmSeqHPi58#-DJ%Q!8&# mF)RIL4+3!"US"!J"QALF+!(+(R+S*UBH1D#5pbBU!6IKLMFRlRKfiTUR"+4l,Xb EZ!3F"`pLIl(Q,3(`4U$S*`U"&B'I1(TXLB0L%bJJqSQX!)rR*h)iMU#I52"9LQX H%a!0BST-(K-!GA'+9Ki6%#FQLTRL64J3[SP03%4`+Ujj6F!J5#SbH8e!L5)RXSU )!B1)+VTkXb+X+1kpL+LLkFFVXSV0%RL3!#DbLM,$HrJQ1J(#LE'ijMN"I)H`+#J bH8k!C3!6(SZjaU1i,1jicZ+a#2&PLmXL&[-'kRP130,h"6i"#5+`p`5J!!*!L8, q43'B(aSB"84q2Q#ZKbB#He*!ajFN@RP5`'R!)#k"*SV6K`D5&3"!T%Mq53(0%Vh )0RJRZGi8-13"He3!TJ(aNAp8J2A(-$C,1L(j9`@iIfKJ&@$k)BHjRK8!(J"l9S" q8J`q"&SH!J)09(*KER0QEh*YCA)ZBf&ZFfe[Ch*TCQPPFJ!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9%e38b!"!+#FRh1JiYV(!!!"IJ! !&[`!!!%X!!!0$lNH&-m!!!!!!!!q%`!!"!JSN!!*3B-"CGM3!B++R$"ZjTKj)kF 0#K0Y`U4a)k3*#a!Qk$b-f2&M!iF3*9*X8dD1Lc%##&)TJS9+%bK63!`%!)3JJ*N eEqEFfG1RdD-q3A(k0#HJ"Ai"!rL48bE-QKd0%S!!dDG"eaFU3*4a3`B%%SKNf*4 T-VB1#"8['XKYF*DXfLC[kX`T3q60(6FSk+!T8m61@$STj#BSI&K+Q6%8b543)CL `B6GdX$EBNrA+4M*qSBK-80Nc@EpB%fbNNk$eRFpqKl`K8iBJ%J!*m,S*!aR!QLB DfIK8!'$+Q)G`a,ajXmER3!-!#!$`!H""J'N#QP+hMRd1+((DMJ@NB'PmH3!6AZd 85$!!3J$[C3#`BJA&!5d%13#3!!p!U"5##Jc3cMrr'(@&)L3!,e5d'%L`S-'$#"- UA-L`BB-4$a-%J31(64N36F+-5H1'cTXjD%!3+@1R$*XhF-V)!8'Pc"JdEY+-#F- 'a*3k&0r)SI-`ST!!0(3b`Q%T*ibE1@CdYP(CFd3#+N@2*T@c9)k,-3PD*"KLmdd G1@2+00f+-SqF0'I3d!'4#N5-($KbJ*KBmH+3!$GYi05KSj)&L#4ZaVL)')40cE0 TkF`")DI-(*8Pb3b'k05+bMPThKc9%6'"jaJZB(JHl4N'MKGaapl0UlP-acQFRBj Z!Y8S8U8UAF!K(D61Q6TceXE`qcDeE-p9DN[&EAAhk0krJlXP$MG(Cq6+Ee20cA% -D1F5I3-A6YdikHa6UelP,9lkF,I9Vcq0UPfp(2E4bF-h2aSpFaG0"*(4'Q8mejj qa9PhA!*3b2'''S!"49Tiq8fhRi,RSA(46d'&-94fEEaaaPPQT+%5KH0CQ1"B8T3 44aeT0,E8Dl'4PY%BG+%#JJbKRC)$D8V8`8BHEX&3RS)2J5##Ip[*-BF))+5a@"J Jc"&'AKD"!)H$)ei*!KeSK,%@'@@%H"3G4I'e'"T[h2(P'er5aiDBCE#3!+5$G0$ TPe&N9$P6PQ)!eBD(FlM`eeV!13B#P6I59D@'KVd*!NUZJ9#L4Aj4kND5Gh"%4TY cl1P'Rf'1QZ@-`2NPaPjIDJM#'$TGj1"H(&dN*3KhR%8(Afj%fDXG4U9K'*9$60C !3mJQUqbb#DR`3J-2GFG'(@5#`!-9HD48+"Sq4"[BY0Ab%!@-Bka"4&&hZ-#YYf1 !Ha%24JMVQ,VGML!YYHmf8DC1HG$,VV[@8[(''fa83BH`fpClElK$I$@(6N23`BD r$j&CSKXA1C%%%k8a8A%C&aF)44+HS6#$#c(3%%-01FKJ3`dce"$A$6R-)---10" J3`V30[$#XcpV'FBFIi*JaaYTp(P%'A43S5%8-Y(a94NS2+V6@Q'dD)B6GE6K&a4 SJN#'Q&5QX)223,mJ00%d'BedRd5m`@3E+(!S&!JU22a9@%)diCIG(Z*0CR"pIie d4kqkaTFFKR-dTQ-(Zb&QCQlB'64T)&h0f"Yj(UbCAfAJ`5ZCIFk""qLLZdCkPAQ BM6DdS5rH+aa$&heddL!B%BD`6da4K"ab9*hj6L#i(VY+XpIHpZepkLkXaNa8$IC +aUFZ4r*Xem3m#%0B&)BFJ-04GIKiKd&qpE+[EI[E)!J"A"j"M(%`X(b02l$h[EV H!1hCZihldNel@Y5Q*M`f%5pV)11Ded!`2E'4M@GlD%!#6Z+'-hKQ$Q#C3KVd8)D c-3K0Sm(J'+ERPm(4JB3JQ&0`L"!F&&UT*&-!br3m1$`kA(!QEQ"#VFiQ3HHaSAH r#pi8Q'B%+(`%"3MF@YImBSBj'-&"ECK#RRELPaV%3!C-5)(V%Z"$)!)2"3!X`K1 -J%5Y+G![*K#K"MQS44TQF)-Ak8'9hXK"%,3!"&D8`3j!d-2GX3&k+""K!qASK$, FBAU"T'-CfYK(h[RZLdDB3S[#3)Bb*R#*)%LM)[dL5$3a8S)[,%--4aJf1AC5$Ki di5!GQ+FG*!!%X*5J#ZR!`K1@8Qb3!*XKY")`&4!)$iFka"J)j"L$2E)YKl@b&JK Z)!-B'"1BY9V"#SS(JMh`d6-JU))ED&FZ$Xd""CSN*H-bU8SdqB@CCVYQ(c`S35* )#3iI3@3S4cNper8"@N&cfN@5BTJfFH3-Qk-9aKB$*M%YUM'[`JXFj08RVf!0S@D S3f!m*cNfU)T9B#S$NEjh%6G`$Qf6JX2"fJ$(2[9b$LNTJf4BSU'0)R4K+J@"KK# UKK3pV&8'cB0AAQ@8+TAK)P5b%TE%%V5#VZ9@9!V8@YT9"SkZT+#pbQK)4eV5J%E Z)NCG&%@DkU38dXNUd,+A'5a&NmFd3!MhDfU[fT!!"`"#$3mQ3B%B&RJk%,6ZV%# jQ`VQHVBDJU#ZH6KE""1!9S+TP6'1%4)G2'K%ab@!,hN"Q`FTD%%98&DART%JC1% !0KIBBCKfpH"Q1aX51H,"JfNB+`V!"TJ@b3m&Sk8$'ZADKKEi3!aH'G8FY*L#DNT `JTSj`bT43&QmpCDfYKA$d-S3"$+3!'%Pdd3"FB1E!L+T!!4cYDf$lL#%2+LTYp( &!`M8CV2HATF'@da!BqDJ@0$')*1q4)&PJeY2%2M!"lkF`A[[L!,aPJ!%j@9N![S !!T-maVHH@@plj@L'XRB3PJ&"V05ZKbXd!18LcT,J2GA,Y+rd#J8+CJ-Gl0QclE& eL#G-!ecC3&Zr!*CRj0YV'rTU`,8!9V!5E'a((PXQcLj@PX&0`(`VL0N%D,E(RIf X(!0lj-M539fJ2Dd%8qY,eVV"YA5!,C*PQdRNhMDhC0LY&K%-A#,IFVS90+i[Xh[ Ej6EhZ5#),TV28&fmBEHf2YKZGlmECeq+Pl`b-#m)d1Y")9mfE(b3!#-+B)!((-$ JdC!!KS&pmGYI%2`h`"kmjcfKaErei5jZFkYEAJ1A0kq!T3b&DpqSKk)#%kCDadY 9A&mBH,M("BFMNr[FEbpBimeeMR+S'ee-64GXe3hlVS1YS@I53--DHdB0cEkDCc" f"bciKGTCm'"KmEIX1D"iXN%f0(h4a--%+$X"R5)$Q%$VkLBN&mb&3SaDSVd6cfJ ),@TK0q6kpQk*KYN&Z0d9AXTp[&'T9,daH+mFI4Q$&jK1d,$k*TjbhD[VVMB*,iL "S`9FF0)KA!DJE3%+'[j`1f2'$5$Q(-AYI2'-Ehb,(6qi('5JF&L1h1'Y-cP(8[j VcE"mC#k(!FG6Ch!bU&F')&ricHH3!22V4TcR+lFid$8Zp#e+-1C'T`-H%L$(&TJ 3ea49P`VNN!"`1q,beT),Zah'IX8qKk8MZ8'$"l(qf$a`hBjI6c[Pa$lcrCipFK6 hl0L4lRCC@m81jCDJqjJH[rR4#380CX0MYMJ&0YhK#`ecNNj3J)3N%)%)4A!#jUX JK5Nm33TEl"jA`iH#GPZGPcVa*3M8!&TRcPkCpdl-(Y8J6@S10J&6@+JE-[q`i"( kYlfX@KTU[mIPm`"A5306mh[Ifpr[QYTB!'dDf2lHDDTKm0hrNRLRkB)D&$S"f0B qfd(ZrF'crdY%)VrjGleV+D%BY'aeUiVMUVG6TaVlefC)@C!!AJP!C5KJIdc6@bI '0'm99qhQ&fRJ&fU3!&iEYQ',"crbN`Ed3c9S8JH,G$Eh0!+UNeSpNdm@YKJPi55 8-bPM"@VdN4iSd&ZhJK*8a8%Q&AXSp9-VP34dF!+,i9&BXaJ0&K`J0644XP4H`3C p!NpcJ"PL-#6B95IBa5T!iB0N&51'8NK!-904XKK!B63U355038PKm)4Pi!*Sb'R +SchXii+f!B-aeRpmicHUeL'XpS#djML*!hIM"'Yr"hE!YQ[QeQX64e(&9R498PG BacS3*%'0F3C5XMK@8fr-jSKP!)R"S4+6D%23"NV1KRk'K!AdCN1JH!IC"Q39j"P $*PcNYN[RPQjJiKPbe'lpTPXZ)'mr0SM5PJ#jTaDbq(ImpQAq9LJ"ja%c*N&BTSU fG"phC`+"C'Tc@)YKYNA6%d,3L'V,GAGbL'VZeQD2m@DSP'-Jj"QZPSfcZ'rGU&c Ik&cKq%(-Q!$Pq"Kkj)QlZ)e5)!6DH)h"U'IHj4LM5)k3!(12[dL,HGBQHqD2Zd4 hH0*DP$3(GeH)+bKe'%GeVkH3!!Nh'NT(FRJ!F8HdN!"AeT!!-%Gd(NGf-S#4GV4 d'kPc+1H48J#5FbH5-NGc*XP`1#GS*mGc$$Q0,bPX4MGc*IQ,0-Pd(#PaR*16Zm9 1#8"h@QH5AJFjJ+JCI&GfGj4hJEGf*&PiI!KPmVH6aTCeG[H,6BPfJBF'i'Gf9+P flSH9Lq0CI9Cq5%PhMU-5SZJC%4DAfd%'D8!RL-9H)SBhcj+8-'PdGTPYG(PGGVN 8H+QA)EB@'@CNK28qMDH"MaGjNqG"PGFQQ1F`QpGjRaGkSeGkTjGkhJ-qUpCkk*K H%T4mYbG(YNGlcpH,Lc9le%GQ`FF4a,GjK%DADS05(!%#E!8#Cm"9Lk%CB9&J+8J N0[-#02!PDE!8")8'Xj)@VA)V*i%5[a@2CC!!G-#iA(dfCle&HpGP3[GBD(DCIA, dI9Fj69T(RRbB"D#&RS5RRNcQ'DUjI+cCI-S%Lh)A*E-C3GFALZT(GZ&ARZHAIR+ dIAhACi0jI[@R@Vk%IFUdM,CP%@B`BL$!"hc`S!$U!h)NSAQ'EaD+SB+SSDBBSG0 M@ai""leeS4Q+!ZR(S9pbSPmQF'h3@p8RL,$5%4cKJHG(B!Cf%ErR'BHf%ST@A#T `A0XS"0`TCj59!ZPhAIBS"1"&SYN(D)*fI+4KJ#%`F[!PADYBArH9AhlRSJ"kDB( '@c`c)6ND16bkDaZ@@D-aT+!eCfTQQS5cA1phJ1-&B)&QCeLULR+DD,+(!K+&'@H !-Ah5T#$!D)i@DBmfDEkdI'BUB!1QBBS(Q4QiJE!P"aj)BJd!!J)53@*[GA3J9(* KER0QEh*YCA*cCh*TCQPPFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!9%9B9%e"3d%"!*r+Tq@JiYml!!!"Q!!!$HF!!!&-!!!(HKfIZH-!!!! !!!$(!!!!"!JS8!T"J`'02(NbK@#%!e#QK'N$KdfC*JXE"R`i4#*&LddN""(cTJi G%&6NK(%cam`E1@h+b*Rc4J""+N@`8'N5C%L3!)!iGI,d14!!))*)NbS0q%RCUA) "'j`,'!$6!$-$!"$)XmZ)P#*'!'303-)G!!&3j)NYm%ZV(6N%$G`C%5'6%9*8m`B 8F&3VN!#!#%!%K!!KS!J%!BN3#TM)jX#I!NK!!N3!#3JJ#!3!!4'""#!))T)!3%! %d!m#J8J!%53%#D!J)#,"%"%K"$)+#*cmH84!!S`$!N)J&6#!!8%N!")dHH-Qc*J h!-,Xl5)Jc*pr!9S"i##Jbr8!Y,CA[`l!J&B!+X3'k#DJ$i!6",F&Z!4+h,FG5j- @&8J`!%)!ri9PK48S(+!&34`!%&B!4844""%%5G"%42pj--!krrb6h`$YC"JA!&I !JJjI!JSF5,#J`B-)%bTFU,""Nc"MdVLKmfB1'K"6`V5"`kB-L#&[b*4Td'!%$$a iG)#J)LH-QcPQhXKT8dE1(**LmS"B8LB0RBY5hV"K)j'NPCTcdVaaSk-"L+G3SdS &%F-&$"K6XfTpLZ-&MK`N3@jF@QELR+CEXcCKk4+Q6*TbA-"*#c9)R60ejY#KbS* UMUp1k8DY`[CPc*Nej3S'B4H[AVjq!5q'5VLPiEH**BkT1MGVilalBr50m4IXj+H &h5+11fEbjmHL)jXqRIS`A"GbA0m&$CQdC0U@9GpZ%Z6K'SpDAiFHA6V`C#KbhUK *iXERkDM+HcHr6J@04b%q(mj0hHE0'6PTc+5Tq64lE0pJ'dJT%kG1'MPPD*T&HrV KQ#"``)%+#$*BG8S1NbP4"aXka3!$Fi!a*1'%&&BS)8NLe)DC65+!N!$'(##%!F) F'R(N%4c4RDF4#$q&XCG)jEe%4dYdP(%@53Qd!))B2V84aP`cYQ@ELdUpe%#1),5 4"Ki5R3'#I`$1GBG2&`daBKeL4&F((4,CH+515M,TKT-fi'"Q$#'k33B)ELc93TP RJM"'5"j4G%BC2pAdTCaK$08N#'qBm54%8B+J*CGZf!L#'G'emG'HHIdj4"dfb63 %(@`BqXD@AGk%*"f89MFQS'kNZ@DJJZBjk(m"JL"%ARP-@QPZ0)f"KNXIYR&N!dR XPCHL)N,CUN9P$-AL'i$#8GDLDA68ea[+PMUPQQrF-8GI,UejUjSG*9P@ARf*X58 )[i)SiTci0A"SPb$FJ4iG0CBU%3Kfi$U8L&C5")+bFYM'SRFKMJ&URb`'0b5A5lQ `%X""AMB6N8Xe-1G,(p)"BU!&Ym8'N@2f0FFBI6D*VCUDdX(a'3Thjp'FEHKRXBH PUMV(TR+-X6+G)DBl"aaKf&4'AqQ"8!D6HVQdPiXK$Z8aXQGdK1ZSD&6lEjd'[`9 aUHXQfUj-Di$i)EdejG%!'HQT0mD#G+5-l0!FK6([(EIZpI8CErbj&,BM9X`H'@q FlA*I'3)-(KhLV44FHHHPYjiF)V$33"JJLP('XTUa8BG)C#MFUp"iY#f4ZFCLV'U L0Xp"SK`kqIM6b'YD9#f)8GmapD*[,3Kj!hI8j*&)k0P44ZB,kjkc4hh1$!)EElb --4aT#%bTM5k3!"3%'@52DQA@LZSE,+'YSQKH5ilqZUDqNSHiVpYZK$YZQmF[G@G F)%"AKKe+jF@JilRIYqBCHG"B*1aK'"qbbXF[fr`1CS#5!qq1"B)llH8R63+4[SM LKMA)55Ei%4L$6)8l+QeU,mK6RU$Zd$04RH&LZDP*G'bL-#G)E8Sr@9@K#J5$!jR UH#kULFIU%##Cl19@NCZF'aV!0U*%"&-km4lp-)G!iVbU@@Xk6*+@p+Gj$5&k$6# #6(CNSld8d'TZX&PI9(@p$l,VDbaMANI@"-1,U+S&E4J$R(#!*QJKV&3SJ+$AEM) (2#&39F3aMNI8dj%8+#`)qiU1'$VLU*jp5&&Yr0H(X'@Z8JdYANbXPq8mmM@HQHj h$@$8'a`e1MFC!3T9L"rN3*DT1BQ%JDSkC5UYj-Sb+'`+QUN6`*+L"ipJl**Pb@5 IkZ!P@lRN6L!55E5Ujk5Pc+k2m,*EUJ!facV#iBlAQYhj`)FRT)$J9VjMS13NYK6 IbD&'Di,F[YM$XcZ"B!BdZ!'JTZQ4*N$K#ZqdLLSr4M!IZD%1IF)LG3"&UBpSLP1 *kN[ZNK5'ij!!Uirc(0%SI8P2'ED+8d6K%[3@pV@[m8eV1@Q!MpE`*a(0`8I'JQC %J5N(0a"-*'2BQ2q@)X'i-C31YTSG&&C*-)R8U&m38G4K'U!Ul)&SS6hMj%4dTjF $5L4PD1KS-XP#Zp`B`@eXF%)5Q0#AUcEV#9-SJKcN`,S'['S1H3L#`0*3VaTKmDa TA@YE1@QZJb*+PdLEf)b%8Y2[`%T@-k09'BaCRC0'9&K`J1U(4$VBEH@UJ@bY*rI QiMd9YD'ZiQS@(9V`0KIPp'bcqKI55$U'VL%3EQ@CRjj8p51101pU([+D'q`J&0q YD9iLkXLBIT,%k*4Z$JSM!UAX9Y#'#HGUkM+MeKC+`SP)8S+K1L#U+0NZMmb"Kac 4#Fd!GBG5L3ZY-#-Eb#L5QdMQU3'!Y45QMTH',29-*dE&SXSq3UR!ALT64(%[kZc DUD3K6hC8e9FD0X,)XMa`PmacJ`Qj#"%dY%!-I@+$a1SV%i9G`ETqe#1jT13GD5R 9*fN)@5m*QT[@'K'fN6aAK)r&UqV3)EebZ+pL3B5I!-U@a#!i!83SGB)ERQ!)9C! !`K4kM*qC8DTd0j3)L%@F2HrSkQea8fej`k!6kiJN2b!LRBe1P`F,GlLkE*UF!%F 8ZfFQH-'J$Da#4k)'hK6YR(cbdkLQN!"J'+-J"HfLNN4T8M,BDT+B-qlc(HNe6,S qMRS(e*kmPYT5JXfT$ScfmV)dr'K''kS-$9E8$'3`4S!P#Jpl5E0-'V#c`5V1U6% $Q)j"5f3EdFaQX59cYGbJX#E)4+N(+a+TRK[VbPd1P205P8pVBSDJ-UXM)*)LM'9 -%J)#%P4bB@jcCQpbE@9b,Ne"6@&VC@GbD@CTCA)!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!&4&@&408&-J!35I"h@@S1,#I!!!!Ai!!!35!!! "-J!!!UeNiQ+j!!!!!!!!NqX!!!3)+*!!#8'$!@@NF8-(K+d'#9V-F31#5K%TCHE d%#)%iab(%#95Y#L"LT``EZDBH51R64Nj,TS%D4*Q6CNQ!JKDa%+P#C3T)!,Zl2N 64!!#!)!-*-LdUG02"qTB#NK!3X!!IS+3!#%MC`G%+(6N*%K!*L-G)@(QP*(K0F% F0#cTZ(e64mkB-P+%*1J"BJjGZf@%0'RK3mkE1d,bd-RBpQeFXQEcMZ9EGXlC`B8 2*eimabY%-R6&X#Q6`$#G*'kNK#%cCbm)df(ST(P$838)&&!))J'3!+!*l6"MhJ! B%iE0%cLbDArNfk,0'"XiB-L!!D,j'!!'!#"9!@"!J'i#qJ"J")$#G`%p3)N6aXH Tdk8##3C!#)#qM+6#3"M`4*!!!i$l!2JdK43%+6"!1rrmdj339X!!)aU-5"!%$K` fC8!d#6-QM4XkEqDJ!8'NM*dbE0l!+5-("*8bBp#i56-Q$"X38qSBI#1(MN#"#B5 NSE-3MNFjBGc--F1b$FHA!kRJe-P6MNmj,TS%@ELQ6))@#C3+UC1'$4Q&BCUDU9S 'D))K'[2)5A-'$4d3U8$%b)%M"iL#"a1#E31R$Kf1,%!NF62'"F`JE%k1,8YR$JJ jCHC`[%M'Em#"9MM15I0'T`kB#6,(F!%MXqI--(#mD1Ye,Tc+C4l1Z6c3Fa1K1AI fj1J#cZFJGFl8QA-f4YkeT&YRVJ+Ek'bNYMhMeXeEl@qf16!2,blE+'f(BcBR*jK lGqrR`6p6,hV8aCMEhC[l9JYGHS,aaeh)3Frm1r[`RZ&E4kU8UG2-bhRRh(h4#CF !&(+mSFCH-hh'AAd$!PHJH'JN*"00BGK%A4Y[R$(@9K`p+1"k%RSP44Pa8)@B6kU apYP#Bm#&#JJbF(C+$TmT83FEHDJ&!hJ&#J5##2SG0BF))+4K@"JJc"%'A3L"!%H #(Mi*!KeSK(%@'@9`U"-G10eP'"T[h((P'eF103FE@TE"JT!!#G,4CPijA69(59' +-9-E'FlKJPjRlCBB#%c##&H6&3Cf*JJDT3E#9JMPeDJE3YlK%"PPcN'R'eGPb@Q 8,1k@PaKfA9NK#'1`P&##GMQ8N!#5)0`a&KehZC'NVAEN9"@E)!cK@!2!`ZA%N`R eF&0Xj2h8`&49NH(3'8*N0-BDHp&K"JJp!2X%PK`aiG!D4R"PQ,'f0*!!Q3Kl2#' ''R$e3D5Db5,9&jSMP*[C#1J1iDdB1)f9Q,[kTL%'$MKXKUDp#H#l4m$mKZ([(!" 2%B364Ha,X-%J)+```rfQmDm)#f&jX3Y[D-ZY(%-m!3FGP1Q%EFEQ2YA''$B3A$! ),@$8j4`A!`)#$94bB@jcCQpbE@9b,R*"6@&VC@GbD@CTCA)!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&4&@&408&-J!3#Hq"QbS1,LFJ!!!Ai !!$Ai!!!"+!!!'5f`EZ19!!!!!!!!P!m!!!3)+*!!#8'$!@@i!3%PM*Xb))#!'"* 'cX-cD5!f+F1'cCZ&9GbNX90'cT`'913iR'2QMC`f*9h)%8#3!%S4,&5D3*N#BQ" !R`"XiY6*%bK3JNL6)[@%,i1XJ$A`rI3MC`d)*QAFd"QMjk%F"NA5X#Q6&856-(R +c&R3j%dE%!l*J#!5KSb$*AANd!%aC3bD0RA'V#QC!%P&1AP!C#(Vi%M*0)VIe(& cjSbFV$@b5'B"JJiDL',%XNRcF3jF0h*$Gb6Ya[3E-fE$M!N#"`iU%($N[,%FTJe -1354!%M3eShX0dU6+eGU!!!"!&)!C!J`6F!Fk0+T@`FP6Ka`!"HQ"F63,#!&HNB *"N!)J,d-!&JZB9+!LL!(!1m"%)dH8-'!G[rmNa3@PQ!$,e5d'%L`S-'$#"-UA-L `BB-4$a-%J31(64N36F+-5H1'cTXjD%!3+@1R$*XhF-V)!8'Pc"JdEY+-#F-'a*3 k&0r)SI-`ST!!0(3b`Q%T*ibE1@CdYP(CFd3#+N@2*T@c9)i,13PD**!!8ND2c6G ej)`Tdc6"%*4jj+3jJiB1L&3JBZ6!N32%a)SAclD"8iH15KBJNVJCib*L%$BeeE+ P-`H%R$*c9*BN8aLL8bXUjk4jFe4(a!5JBlL!!ESdD"JiAY!YUaF1jc)GjhKf@VS *9+0)PDTd!FGdN!!kCqV-F4X$X0c9Y%&AZ5e9YpAHTAm((alAq0`FRj8ccdee0mF aSU&,"#kFZ(ANTVG2VHTLM'rbe)[([ClpD96Zl,&'Kfpq2[V5kMRR3K0"C,4''IY 0eppaf#@A!"4b[+''B%#C0Tk#eIRAB(TSA2468'%-Y9dEEjbKPKPTU(4KH4Nb@"C AFG54aQ0,a6DED4Q0F4FU)-J`fLNjQ+C%(@cN%4F-jcAi%!JL"0LG((1)!%)DMB8 "`KaKl'84#("%D'+@)0#"4KKZN9%'L8I48C4IMD(aaKeK[K(QI@b3!&N'#dY'5)H GJ"P&aT8cE5N'8'f%1)F,JENP('3J@*RMA9GfL&LF)+!%'`JS@J5BT@iXH3G(C,` j4jpZr$PQU9[@+"aJB[39CSFJM+(644(faG&&9)*`KeTdq1A'P,rDB93DL&Nj4'8 00+6XXX`fQj!!#Lmd)1d,,i"3LPep[G'#B'1`8BHCVp*D4S`cRJNEBjMUp'UZFi! P&PNMT'&'U@@B!F)AAe#4"44&61'#&2Jqp*fhi$DC4dU(bL(#3l#4)DqdmFjVTVh i6T(&&2Vbkbr!A`Jm'-%AL6"&(R03F6"N9bdm3X2bh[Z&a4M[fqqr!3XXFEdZ2dU 4b3J((1r(hiDX-a`mSk```k8qE$-)FE5NTCe@T(M(($E65r%A8CGa4p&cq$a`d%a Q[IA*#D[-XKP)1icfY08H8BCEBPi8BN8bNEQC'bFd0X364"5"+!K1[1(AUf5ZfeL ZSETaNCLjhK''NHd5$MHXFl040aehafT8!p5#)-C&PVYai*pq[U$ZBhVS8FDINF% 4aTSQjI(hBHd#aT9ABi6e@%G&JS"#%e"F!F)-Sk8!3UL-ZL(iP6LjYK2ReEC!deU rRZ6''AISa(SDE4#jTq*JcG(lTf+'#i,d&$9F+4bBFqClUfi"9DNE[IZ&@'0jJ$@ P[IRAFF*Md!2"'Gk'ZHZGEbKG+Y&MjR#iT-fNI@j)3@'q"Li5N!"J#T*L!`T%m!3 aU1%Z)NL""6&S%Jf+!!YhF8+@bK"#%*aJEhdl`3lB"J)KK%%cBh!-C0`ePXC-"36 #8N[iZ"3@ed6Q8!'FJNRX4C)dQ+NMQ)T3'm)e)a#iBB9c#%%$+#JdMGcP+R-3L`K Qb%8Q%5%00#N4'-8i`mk98333iNJ"cl$'-B`4BLf,`dKDGBBY!UeJH`41(HqiXU5 Y,B#"Je-CimDNLBA"He*D)!mKJdM"P8%()1LIjRi&"jQXS9'PLT@E2V)i18A')Q2 !A%PkpjL+D13LM[4H!c2TVNVGi9HhZp)N#p1jL$(0DDldLpLSjXBrKQ`NCRJN'aJ c5"#id!j51i([eS"-CG*"E%NJ3JVD@+dh9P1@cAaQ0+Ijc@9H!94[bZBf!eK)Y8R ,Qr@bCX,#D%GRRL!)6*!!!K@NL3)iS#%)BJ!,(Hkb6RJQ%ja3%U-pap!'0rM2Gc' 3!!%1YTQ!cJQK$UR,RKc)3$@$bM1F*f#S3rRCKVYBT+$'0'-m%8T2+EP3T!p&34Z +i$!kV,1Bh3+E#-V*c)6@mk80M@NEM%#X-U!dTi"Fk6,RU9!A%L%*9'!#2rd*8)% 5P*[!3ZSaPGV6PYUc#8))JK6iZ3D`[Zk-Fh"P(PChdfkQG+GFCHT26c#&*'LK#2a X33b1#M+9(R5T)-@B&%C!9Ti1i6%eR30IGFT6ZEVd"&G)JK1)8&LZRV08kG6Q$!2 SYXR"NUXBm5*&H&5jbf91*ZlcNa9G!KNXbF&)V8)94mlJ'(Tfp+f0"5Q"+-*2'#` fUArYDP02B!3T&-%)r)cS4-Q)flL#9!L6P5T%*IVEV3EAXIC-`K#F30MT,TH'R69 I,*F*!Xa!+A15$%X2!qK4PJkh*&"+,N8V@Lf6QYCpkXV84G,U%RR*a)pDpHY(IIT Bq-k"Rc+BEqHH!&qDe-4eBeK$'!Bi,B%ikm)BcV""'X!5@$d'QTV"VldBeaMAl83 Q4(SGTSUD,!flq-A+JPB$M$Z&*e4"#N-S`M-cNec!m%81!`b$'%i+JMdd)!%``!- -LR2N*--!58G'd4ACJ#FN+jR*#B"[&8CeC"')"JBLU(+6lV-HPF4P0)$*N4`r%T+ 4V0*5+fR*5f)5+*Xd6bGd!!aF6*UA0qbP,hm*c'!3aD#&p@'c!95"SKI0k%BlqY' 3!)kdT#FpDHJ&X!P'HY1[FMFF2eq*$R8`Jle3m#R-6Jd`UKS9,HX!JM8Sl`ir5)' P(c+a@lAk#Hblfac1Q-BcK#B'6iCBV48(JMBiU3fPS3'YkfAV-351+M3a$E#$2B* KAf3-8K"F$NK6QQR(B0P5[RDfk8#$'NMlb6)!Gl1R%+Jbb1$F-*L"ZSNp"RE6T!a )S)NCZ[eNC9HEfI3HGlRYEC&mXf(I#CKf$HCpl5'8amr`YS'dd[XZS)l8Gd-Y+Tj m'3F9,S9U)XLi4F+FYSFTc`dr$[+3!)eDj#1,r%j(pJXHJJ+E1N$S$@1SFT*[B)5 Hqj`)9BD0N!!Y3JBa%hAN96Cb!MLB%MFN)mbP89i5C18'`(!3kXV,L"c@i1-kF33 `Bm!eE'Dip#'F*$*3"ih8U@le+f$p$9VR1THmA[9BQCf8C"G"#p+ZpMG-R61!8Gi 5bT!!"aBN)1Z[NlXV[fj&R2Zj8+A+Ha4N4!Hq(pl[E'G5&0iHpkk(JI&MQ$a3MYb ("KaD@JfJq&JX,Y4MEcb2(UGNb)p0mRDDR$-T,m23@DjdBj0C+9@@1FdGH[1F0aN 222Gjci&qC+'[[1KGTRh5Zia@Y3*1+3l1`p[rARI"%pl`L0qkjd(rl%+a)Hpl0hc 8-3riaJqqm*I[r0`rhhh(Y`(bC-MlZ1d%JQfRIHhYjhh`&hk+4hGJ0flETRq#`hr PpRrX9hr["hj`PhMM9hIB*MMPPRF%Ga&%!"BVji$F&hK[%)(a4i(c"hSE+!-Df'i JB("Q!)+C*i!5+(q,Ci%Ek))+Z#H$8fif`B)Z#)-"1),I9i,LGi)@+(!eF)2kKRk @"i!31)3%@)%L+#[hjbGjjh#GeJC2ThkA&i*-3J@FCi)e#(CBk"&Y3(DPGhS6Yd2 UG4%R!&CL49CQ*3I99bGV"AdF&hXJ9eBf4)G8SPDV8hYRd`!RPhZlCca'GQ4l8&) 8B4%l8'a(9`D21&-e0BR(PSDETATZ@&GhP9GleA)*J#8P`@k2!4Y9TK&M`6ih`9q P`K9c8!G,833P%4Y"Gd8VKfX30!ANma*90K0ZB%-4CL*J85T9eJ6HN`C%45pb%!5 1maK9*JBDX3E#@!HP%J5PBJ5c-Sh%H'5*3`HGC334dK&QjdPFPJ$8-bY$J!E%3JC RY$UbH#lP5#8c)!-IdKTfXh*9YN#5X6Vj#"Rl#(d*S)pb-"Rp'"N$bBp(*T!!"*Q 3!2jiN!!!UC!!#-PaJG4(#8!$`!B#+R!N-N!$9@D4-)#4'ZP[*K%C4cB$-r#4'3P X'ePP-L!$+"Q5*BFfDUL*,K3CCa!##&B$0["kpY*a@03!BiBEC5B(5R56JQK)4fD )+iH)LRKN5hF%BZF'G`3D)R!%N6L96kP%E+!Aq$H9Q)Kk5p-dCa*-C6"-UFH'&AF #d+3eP49FPa8UGj!!66c*0(S)P04N@HJ8Pd4`P1k8!%T*C%URG!(j"S)$'*!!*9Q 8"4Kl!!)eJ#3pmT&pS*JpBJ1153-R#3+4H59TS$T@m$TSK)qDbCQHZAZ!!4+D"KM 14h49PJ"[q5DJXCJL%'BJS!H%f3BG1!E&"aKRm!E-q$K#m!Ci!"J,Y*QN@@a[B#B @`8#V@4VRq"K%"59d-)i4YTbJB3DPq!4ZF(HDF6f!i6"T48VB#BjPF#HaFRD3!(' EX(JZQp*djb3Qk&NMHABmR$&3C"!LG%!&Ed#+iePe6PND`c&K!b3(J$%9Bi'GqQQ +mLQ1ja*S*d!%4X!%qf4e8U+'S('BNh8#KMN&3j!!6aLD!)[TQ*!!+CNb3*NYX!C 6d)G6X*PPd!3F)4cbBCN`8+)RqMSTUMSXkP"c%!1BZCUDS6TF`3BhN4*b)$DPUD) r'U3U3D54FTSJN!#D#!NDT2J'L+%LX#QEm%8(8BSBI3JBEL)(HT!!T@b`T5!!SXD aNh'aNrd*'PGk&QP5&)cATAV!TX2KTRAhSB""TQ1+QCLj@4@US4c+!Y`#-X2NSDh '8pK%"*K*HUDAL@LjHQSj6LK`Pm&eU(2TNapRPiBU0GR%P`rMPf'KFS$CP+!4)BA T9!mDS88fTRHkSkPk!bi*'$9`!cE!UMeD"N5&"r`BQVDD"VKDG%Yk5kKTLkVTP*Q U0DmCQheJ'Td6"#"JGMFd"l'h5Cjc%A`42lp#BTqQ&YH6TKB#'TfM,U(5+#$!&@G !*Aj"P(4!"N9$+DiK4h(#VGhD1Hfb&)aM3"i4+ir"IcpN*A!9A18P03Z6!&qjKZh 5KZ,%PY1%LlV'DbGa"T9DPdbb"JV,'EZ'4Jh,U@MMU8#QHdX*LS**U[&j!U9'"KM UP)[CQ)""!b'DUM+JNi"KNV1DQEADQ@T4R$-lQU"TQX$DT-,kT+bCPkRD*+ej"l* *"Vq*"lRCH%I!Qik6"dFVJR6JLX3*QL45Re3f*@HJ2-ij)m-KR9cARpBjRYLTRE2 9RAm)RQiJRZ5*2(-JMZEjRZUj2V$4RQJ!Yah4RI-C"2A*2[KjS2aC'Ydi"AYb"J' +Yaf"MHpLS'03LKDiS!,U3[4b"KM+*$a3Z6j`Z41+*diTXU!bZ3h+"%p`"#AlQUU DTjQjQ#eVTM",UbU+T%-U08@U1UkVT$TEGdi+N!!*`,!P)MC"5`@kH`CL)jXRm!4 ,3,bH1`4"i!4$)%f4+5d95J5J+lSLk%5VZCM!9UDXDVfU#`-d`,UUFkZj@U[JkkZ eDlCBmRbV+EKf-`BY-A1pUlkB`ljP-(1b'3CNi!C-F#Zrf5YqTTMb%3-bUk,&U6a dF%EhPkX%M!6%!K3qQ`"Xfa&Se3C8SQTlJ+FJQTPM'"FFQDT1GUG+jX%V+`*1S$8 JN!!&1V%'XUN'j6%%MVZF6!G"8E+McTX!RaZkNkXme'Zb)%!$1)#pThZQaN%$h4[ !hmZViDZLieZDEV+chVPlZ!Zr-Y'qEJ'E9!$&mNZrIA+rJD-irQXF4-baQY*i"F` p5q'V#Ec!IS'l$[`'N!!"`93L`FTCC"CmTaKXJ+AlS4mmTRRXC+`DQi#K`X-K"@[ 4&LiF"#4#M@la"[DbIa#N!jNl`c8X[BfA`k5,!iiC!c%VQCJFa%-FZl[DUjkFa,p DGdf-[NjTa9,m[MSBaI0EH9RX"PY-RR[`[emm`)*M`'8-Y3TX1@QmR!mmaR-!aa3 maf0Dar4hTj,C`AS-SNV@abPF(S+m')9mb&#Nb$di2GIMb$+mZG"V`p1,ZpBE86k Xb@BD!d,X[Cpma%8-bU0X[NkF[UYma92mKDMFb[@VaDr4aA&4bk"*`,L-`)+cb`b XaVmF`41XQ-3-!mE-H)k*amcmd-lmap!mb(R@Rb,!`KeKCYE-b(HMcFh,cG&l`fp !bB4UcKZ-bGN,a"VFbESUbZ*Va15la+4-*Hpmb['FbP4FceMF+2M-a89'bjjXbf0 m`'BFd'MF`!ApaJFYamKFZJSYKAHmc#!-`K%0!S!FY46Y`YY4*a"8+ID#dHIUdCV l[#(pcG@l`chF)cUCdTX-!ME!dLr0cR%G[M,YcUB-T6IGbUUm[P*mcl#FccrYa8( GclG-aJ"0"`,GbrfCe-'me"AFe"F-e3dYeC60ajRTaeCG(Na3,a9G'L*J*LBbRM( md@6YcC--cL"JbFBKUfaGcTRFdM!GbV(GcXG$dhHG!$Spcdf5fhiGbrS-`)-Ga[j Xf%@0f%G0d'cFYX!Xc!J0fA3XfFQmap)G`Xmm(*YY"Te0P9JJeT!!h-f5M-1S(32 L("HXrF0YMG*Il0*)20[P@p[R1kaicGGkRG0j[G2fqpFq2FZ#VDY#rFr&RGK)RGa Zh0Kar0K1rGa'f0312GA,A09AIGhC[A6ErFJJEGVJIGBQ[GU[VEhM$0Yb[GjbAGI ZAG2a(Emi6FrelFSmMGqb$06m6GK$RFYL$1$)hFE,lGJ*[G"e0pR+h120I0R963F 3lX)6[XfPrGdMMGUUVGBEVY,S,GXI[XjdcD5P$0qiRH*lEH,fr-Uq(GMl(0cN1Ga %VF[(lFX#IZ-&RZ23cF(66G9!,Y(@cGNZR!AFAH&)6Y,K,!1!NEUYhH&c6EiJ2Z9 -E0Y@RYYCcXVfhG-Y[YqefYr%6HDm(1!fEY"TlYc&[1B,AYNr,U&`,Z4bEY&d6Z& (,Y*i[Y*l[YEQlGVSV0j5(Y086ZJqDqMd,Gq*cZ+rcFr#AGKM2Z0P[YKR6ZR$E1P 2RH"4lH-3rHDC(HIB2HGe2ZU''EQM5kJd8-ij)!-TrDTS[HVX(HLZ[V1hZjT1!)Z I)`FRhL6KhJEMhYH[$)iVG1YJ$VAq$HN$EHD6VY3&VZFpXZGlVZ-+VZR(cZR*lZR ,EY'b5Bf@)m'p2+CL)0lLr@31rr!3$r(6&['@2J-e8"HN6F2HlEP(-3Ci%1f,H30 T,4I@rX2BcX2D(ZATh1fffl1iHqlT2YpI@!3c"r-USHiVcZj,iHi[RZXaIYJd6Zr +$Hb+LHp'[qqBlZpZ$[!2rZQHAI$d`chcV[!-2r%4Ir81Er82Eaa02@e'V[&P$EP c-!Cj!2)J)2*llUVAATNiN!$bkVcb5XbNhqk80NrZ-YmN0%m(GBrcpkhcLrlP24r QZLlMCacT06ldpNl"4jr[2F,[aGlQ$BlX66r`6`mB"Lre#3m$#mr`@0rj6kEe$Xr eTH[e'4r*(,qi(irKecXI*5qLE1rfJ0lUFHrY,JrZiRlcGdm&HlrP19m81qrP`"h im2lS['li3MrJc&eNLfrdMXrMN!"[f8b[f8j2P9"rm&1[q9A[qCd2qNqfjcL3!0D 1'DXem2@Qrqb,@rDUljJbS2BQrrVT[Hfb6pYc$aUlllj8A2mUh[HqrrI"hqJ`(Zr &EpljZRT(i"5I[Q0m-U$j4EH(Y[5B4*!!'h)%cr*&2B5AUl!Ijp0q9irl1DBC3*Q DfJf3!![NEq-p1c@4qR5B1F0h*'rYTDbfprj8RNX6FI-[!H#rhSArr*VIihRqcqF "`-)R!!(AVdYm4Hm!-VqNCq`D)'DEI"%1Xedq#ZLV,'$$`i!46`0k2r!(Ufl!q#Y p)K"bU3RdC`*TJ0&MIkj["F)q+#IS@Kk*Ni'hcqlC[bp8!pIGrX1"!Zcr%6mHU0K m)!&-IRYJq5%pBZIm''$NLhl+,JP@2maA!6II%i5#$dm+$Sm1@,Sq)-BEDf$2Y!f [iV8%c&i-q(lH,kA0)q2![FDJKbZ$`HS-AK6qp5ZSf#Md#&,TP8N"VT!!5K66$(K CZ%l`rEcr9ZEFQc#$$-YT$fb`ACLb&##Emi23c`&D(H)PkL+K*(XKb@YjBEKUYqG 3`lAEB$RJYIdj-XMb3Z&Y1iAZ`a6f"96Bf`#EIJ0m19!@lN#MC[aXi36$KIh*`&N `AjMTM&e9ZfK'B5b`J8FQX"B9a"K%0'3+G")h%"--51k!%ZVL&H@%jp%!kY1HF#% D)5cd&Krc'%k#r@*+#B!%L)!R-kDk&d@mL"r*NSfTMi348jZ1kSJ8%3GB1icS8Ta *3!!",L!PTN4!S")$J8S8"#N4)d@,L$J4-q)-f)JEX53kNjh)%hZL6rb*30%NCL3 A-!KLSSbC5Bh+$3f"'c-&NSY%BBJQi3dm4&!N%@(!$@K@(bN'')(KmC&Q`&CdKMb R)TkpVpLpHXkBXRCQ%3DJaDeS")T!`*+)1%"(Y8@2#!,QSN@ULd0JKmR&[#J$j', E!i&'J#0Ha5%!CUT-94b-@C%YGN@ff2E#SK()Liia,jV&Z6JCG8aPI)XLS$,@4ED SBb,M@-5,`i-aaJA&1+B3)mRa8$F!-0b!J8@6AJK6G)Sj!#Sk4$)!%3mM9Kb0GA% aeX@f9`2BB[HL!9Za#(3[($!BV4d1Z)NLN5kU4Fai(&1EF5b11b`iGUrH@"HlPeI FMEJa-*C'V(JDE50Kc)kkd3Jd4VB)'FRMCUb,PT%cRXHfL"NeSfEdM*la1ST(m,J G#H0Th!1TmHbaaU6S3TDL&'L+%18Nb8DT5"ZTiN4%M2-K0rB)[kJA3H0GI)adF5l '4I5i(YhLNC')DA%YRXA2f!R$BLHmMXj3+h,&qPJB,q5"[)dL8M[+ar%)'MfMHe5 2Pp&%[NJ+#4r0iiUNMeD41bDGr,JDlH&C+PKTb6m#5"33!fD!I1J58A%U+Kh[Q"A EhQ9b5@1U-@C&b1JN*50NY)aBXN+fab`*)@p!Ckb5Cfp+2UBS'4HFT'$8N5Bb4hl (&"NH@@5A0)mcNM*ba[B))p9MM3500j*0NXMlb#-(&J)#%e98FQ&ZFfC[FQePFLj TEQ-a,R"bD@CTCA)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!&4&@&408&-J!3#HSkBPS1,39J!!!Ai!!$CN!!!"(3!!&AGI+N`R!!!!!!!!)') !!!3)+*!!#8'$!@98F6+%5T)R6N!BH50R6*NLEZbNNI2'c4`8EG+i5G1Q6TXTHHC -U%*&6KL2CLLf+52(KFJa-9c!%8#3!%S4,&5D3*N#)U"2S%+*$J3!"!!JJP#M5[8 dbP5*J$E)"!cJ*i&AVb"!Z#P6KXbF)@rB8)a#4!F))8qH-#N5a-Q1"PrcKJdjXQ5 E)&5)b,%Ma`V018j-ZNhLa1H4)P*5Z)8VPklG"RLY"*'#0`&0MR,F2TP54)kFZel TS#PcK5)E-Qj4cX&S4dUC-AIa#LPbK#!5!!QDG!`cjSh8imLP'J"!!)!+!!8#r", `a6PdkG4"LB0Q*6R"T3+r)`3`AJB!,*F`(G"#N!!$!2-!NNSKU'"!ZhrrSQTK`3G lYUMT)32'LaShAX3JdD92Ji"Q@M4mf++LaBXB-fVFb,'Maim04S4-%!31($CP3$3 *-bD0'cT[jU!"3D5-R6*XhX!T)`F%P6*Md,K*-bB-'a"6kTKm)iG1b*&#dY"C#FH RR$"ZjTKKfSERda%*UP#jQR@VR+jbA,JF%m0&e4B*S)5C8r6SP$Gej)`TmcA"%*e jj+3jJiB1L&3JBZ6!N30%bC-TrlD"8iF16aBJNVJCif*N%$C("41Q-`H%R$*cH0i NdeNN@#Xmjk4jNeA(b!5ifm)!JEYh!KJiAM$Z+aN1l6)[jpJ'fl[*@+aDZI*dkcY )R60ejKL1J9RaF1DiaC+0IRBkR1VAXfr[[MM(lI$2bdT2ZlCY9Gc@X@Y2c2kllrM NSHA#'1MTYejLlEfA!)"Q#5K(JHVaKk"r[6%iR`Y0",(5'QAdPPq%h%hS(RKabI' ''TT*j4Y*kHdASRFMrSG'5P&0&8C9!,EaaKQ#QC%'6b`D+#'-I8P44KaeT(&D9mN YjpY+Bcb'#JJbZ!$$+6RiTN3GE154'!cpM4J5##*B@*iFFiJ!3KUPK3(#('&-KK) )F*M)Bj`Jd)&'')D48BD1@G&aP@@PSI('(AQqNHGiE2"C"JYMQNL(SjKK4FDEGD8 NKP4Yh$L(#jNCPKeU),J*j@0[cJKDSL$SK"`)2U+%QDYZM(Q(5f3F1NHPEPbkCkp c-TNGCQ*8PZH-))c"9%SQ9ZC55Qb#F)GJG&MQaTVAfS&9'U#j184V$A`NlVMNPVZ 43a#Y-"&&jVEVlV[`9S3Z#%H!`!3)6i!JK'2f*Q!&[e*NaZqqpaD"&!MSaU[``Ja Ij&!$9J3K43-*R#(&'j25-CXEZ)(JX3kC18&&%8F8)F81&*ma"(+@pG6aab"!mBC ,G+"FF8hDZF6RaJPi$!,)-Y0XmaP6C)S&Ech$A!3He[T*aY"&'e9'&NMl$2,56CI aG!2X0Zceeq3kP-!H)"Km0"9PJa#`%r`bN8$!q9EKNm"X'c`&`Pf$VIIH'$dm0JK 'Q0L'9G!e10dBH$F!K442$&%%%99)BI!4CG""aBa3%%9(AQ@J%)D4CMK44aXJ*b% bb5E[!!)CI)B"Y+!Tf&`%&L0,i8336+#X11113bij6@qBf3B+Fq#P9aP#0)'CRpS P$h+09+QqedZAVBkDaQlX6"[3-lqNZU6DZe(kk5@IM"3HN!#Zk2%8H9c00(*1jf" $l"62A[[YZA1p"prmmcp[[II+elk#B+q$*Dar#2cD`aEAZ-G&cQ"$3%NBj!#p'hQ ZJR"iRP5S3Mq+4@aLZ(N$'mJJXkC8$@C(Z)SCS#!SQb9!K'5S8@PHpM0pEI"',V6 -C%T)"aU#,)9K@#&6DXDe"!L"C+DM@!)S4`FHSJ#'2+3IETk`%cFi%3JkK%-8A3K $'IkX"hRkNaD(k*BKbY#&8kJF$f9i`4[#3BS*Z%)5U)#%-1j`L$34)"+GS-3%'+F T4KU$BA3!aMr53BBZ%!0HHM8(&rU&$@Q!3b$TJ!*$6K+1IJ'-&-lJ"K5-!C+5j#4 Ql-#Q6ES"Nd@i5QSQ@FNKAY+&4A!#%G#S4M0+C3j2(+%-i4M"Q*6KLPRFSK,6f-3 KjT+%3j4L,'HT[`3kNf(c3K[DHZ+QDjA'$+db$3J'abaq9D8U4dP$XNU9Tc9PmeS (I+BkhE9!hMR`Ge33(NmH!mQLD)`f,TMMH!`R"hS5*A`SZ19+A')%ET@"#RRB#FL H-!@%lU5$4YbM%T2J6hYZ,+#N'DJE#SS5KjB"SQmV`aRBe,)Td)%-(NA"#DL!35[ mk!iR`-`*b'!'0Y$K",&$'YRZXNd[NE)-L,V9UX53!*)je%%-1GZFC5jeKaR9DN9 3lBe+@#+PC*h'8DA48dT%i#FcK)&,K[RT(G6NYiTG,'-Eqb))B1"#SKP0V6&SDp4 33M9#*UDY+k0H6qak"Lh`j!dXE#[1X"FqYIEeVi%YBJ*54)FKj+9iFKJ#(GL!!LF NJ3NjM5VCUT!!QQ1PC!b2CFVU@SFYcjS'0FEE#kbBXSE%i5B*4J$"'@S5"M+B9$" `5)T*6M-(fG$'*dL)TEiNfK[BUZ424*8$#UM`"$'S!5L8Y#aQ-F050lS8U#N!EL` GDG`Q)*FRbfhZF`9CfFZQJ,TB%edEN[X6TQ@AMYY9iM*P*d[Gl@qGq#hA`ia3"5F -J3T*H!,EiVR2q93dI#lic&A*N!!(+L)("E%UJa2L9!D3!0e@"M@SJFhX)%,3Z@& diaYCq9)!-LS3i3fJC9,0m'8&NdNK#83SJZiLHS3NiSF0#fj`&G8UAISb-frj$6* (pY[Ir`Ci`2,XTdRULH!6EkJ-*diabc!kKb'dJ3cU65l)V)cPd5@Aa$k*mZKB0Z- 2+M%-BPDa$hf#`656ZBK(V$%IF81fcq6%RLQa&,DNNJDMT%%2+G(UkP!mjTH),3& 1+-)921IQPm$4#'(JPR3C6@J9Ja60P@CC2YZFDHmTdFPKi&#M"`P'6%[Cd`QBEc1 &c1TcFBf"[AZJ6j*mi(Zk`39)X"4+#YSVRKJ*5GG6h40D,)8AahM'FEEaBQ0l"Sk @i5peH!N)I,"@lFljY8i)lSY(4J33j"TBCH#eRq6`kcS%ZhleAA@Veff4D1V,R)C T!MQVdQe&)Di1f`4"5UjPQ(5bHphYE+$[$&CG'm&Ke*YfikM,,$%PqXJh9J0FT0Q JQDfiN!"eNj)Uc&JS"aH'!B-RV#%'Z6K#+2"NF'X@`KY%@!DXZ&!-ECM#RcZdCLB )@-j8Q$'XhfQ`Ej0Kea2R(!TiBL)j,(3+UHci0P%$Tc08f&ih0ad93*VXDbFJF'8 S!bc66E'U1r`*SX&J)ZG5KL#3!)%-H`9MMbFkDK5F3D21pLKQeL"c6[+*Fh2R,'U )d$SMX"Bc6RJ#fYDJpcP)B3jkmEXFeJ"i`B0J$AbIP)2GN!!qM3Gqm)IAbq4"+NF k`JVXJ`%j%I3SjckDk!j#b!1Ke,U'Lk&HpDKaC1IVU-KSNk%dSapZkAd$NkVBPDe p6!"+c%$UY6Sb!BUXeKX'CpFe)+%-JbR-m896'0CI)3eNd02aB5jc3+[9jNl!13T 1RhT#C9F&)%Jq60VJ5&AM4Y9+(!+IJJ*TER%1Pcl#M-q"E[r6J"5+*kG@*RF@GSC L!%8&8P!&43"('1FQGZ8%3-9a%G4bbX9p-`G(!(J@!RKb"@K4Y(&-!pJ'McCaNpD !F'3'S(F'BLF'C'GfD+G@$6KM#C!!&'1`&ld&B@QJ6&ahArm'F+rQ6J2(CJVADA6 J!PLRG5cQBM!QBh"'A!P!"'aL((13!!3V*#J3PS)Vf)*R*`G`C$VD0NH2!cLRSAA SpQ-mf)1X&R#a"NqFGQT&q"G`d'"KGdYYC(!DC(!3C@Di86ajX4FBP$3LjdE)jS4 mH$`JCeFS1)F'jd*`Q!GX9)Kqk%D9JN'B!BR)idD*Y%Lh9iQTGBN'PiQfYbY[SKH 0#(MQj@2fKBBqZ$X#*fX&4a8)Gf*'8PZH!cVU&@+SBcjSSKG,3e+LD"C3)"J[i4* Rm$`V*d'R*'c%CQa-f(91b%5AmdZD)h5I8`DK-cUBNBLKKiNXQ"SZb)@SU'kU''4 Ub(0#D(!)9e!iFAXSX(0"H'*8m!EU1%)iZ)i6eK8@*LJBTQ'`mL-Mp)f[dh("&e8 Gib2Vk&'i1')j0@a+H'a0Z(Y2'$cbk)pNS&+[H#1M&P-J)&h%%N&c-3G`")m6ZBi UTBdUk%BDbC(T4`95J4)K+C(c@*%Ri$(G@(CEU*&!B**Ck)eE5#a"SeF['BmaU9) H3hk`0`FiUC1BD*5%3LbDB4P1"ikI"T-85C6TTiP)L4NjLBAFL*A%mNU+jB8Q!iE G&T1i**)aUB0Q1)jTq)1Yb)C$k)BZ`%4FDA!Sm%'PJN&hb%'$#*%IjdCUTC5,@)D Tb*ENq""cXbrL&'rc"J,r)NiTJ5MqCTMU9)j"H*&`F&ehN!"24S*,Yc4U*EC`Dd) DZU8D,e9LQQNcH(P,FR%9ED!F-3-lbYL3!-hS,`f('`qRF698Ia6R"KDR4!fSQ`( TF5#AFS+S4"Q)FS"SM#cRFNTNJB!QR&!AIP+RFd!SDrXAEN&h'N-R"d9hG%QR1Ph 4@f(JG#!$IMK(G8jiG@1iG6p'BmTQ"J#bNcEjJJpi@5iNPYX@KNR3Q93fDTKa5k8 T"f)9S+64QR%#NM)iHl!bRi#CHelA'da*+XhRHZ8AHhh%S,A(5(QNHmU''lfR9X$ R'm0AI#2D'qUhI+chI0&(4,j"IF@h"YHAI@L`I6%hFpmAG5)cISGbS5!*!ZLASZc A4qkADPb('r*("r5hRDL"JrURDpVCIamPJmQjJ33)'JCSDmZ9J!YiFD6eJ"%S+"- i35J!R91+R#8AJ(B9JKd)8-NjJT*f@5KJJLiNRq0"Rpm)JkdMJc4SJrLAJc,iP`B AQ!ikQ,L"Q@eR"U1@!Ll3L(@*5i,+Pi3TMT6j6*ETLLhe8NEBRNPBE%[BPmS'KA- JK96)F4"@U&3aGMb*GPfBE@2*E@+BGH%)C*@D3*F+P`DRQBeU&'`J2$b+9YX6-L+ @1ZH$'HcM2PP$"RPiQ`PJLAmBF5-(R0IcKmYT3iDD!026-Y,jNbkD!-a$@,E''a( (VD"kEBK+K"#fU(0C1A9*&F66L4M%J0-+Q)L)UMLN@!cUV&dCLKdDSEL4VG-a%hB &Sc54"2mL!ii%X'PK"fSPT!9lX1kjS(084pqkJPMCVq[jV6TMDbiJX'"%X%4JX&6 L5"UE24c,X(EPX#%,XI*eT"(TUrTUF-XcVc+E,#a6258E2TJ"2VD''9L!!c!!%eJ J2bJ`"AK`AJ2jXd(l"N0V!d@E"bR`D%ba&dD#GQ&`"l0kKV9UUec$Ari&B!*fMP5 KUdk'((8J'Ch5+jl$C9R'%eYfC@h,K5@'YTBbQjlUN!!Ha+b4HL-KYjIhLKYKF(f pFLKpka1#QbYB#jaXdJCXNKS28Ud`jP%Z&,088Dh4LKX9kdE'1CM1#*&Pqf&dfbZ 'j34[-!5riR50&(p"J(5P`VCHaK2iBJ4p0!DNHaC'm6cVQ3"lkhYJC+I3FEN9dSD &4NQ+5S5-kUL+#+RaHRb+4l9DFa@*faY&LUeRP3-`J,X3LD5mkU[@fae@iVd`J%V TeKYMF&Bd8!2Bqk&qXEd&GKBSF,lJ#llLbdcN1eGP)!2TDhAV#aUq#LC8mVhr'll Y0llrDVqjaJCQN!#r`5Grr0Zq`q1r-1!#0B!C%9`$mjZ`jPX$"Q`8#HbKqX[![HV !lc["DbA"&#c"&cblMU8GbkI![K'iZ%+iB(S(2b%RMR+iKi)#Dd"&YMB(8'J81f+ +Q(9mC,#iM3ZlGQ9LICB6Ck#CRS2$QbPZ55%'6R`#4'"c4i"6M#ScUG%%Em!kS*% (afGFFfV%[3@lB(3#6l!%Dia6eZE"!mQJ-$biL!+KZBXE&S-aKCA%FGYHP#6&4eA &[AB'@VbZG'!&4Q&ZaiFE$+Sb0pX6GTbp[Z'a2Y((CF!d+!$)92a5+V8CFS!(KFa %L-`'LMb3!,L"XQ"%"CD-bCSXb'-J"hN3bT8cbU8-9G2E'idm@"ZE9T'X[Ve"bDV mZR,JajQ-+e-Xb))#bP&Vb,4-KP'&bT8Xc-6FbTam!Lm"bl*mb)RXc#YbbhKX[dH 6a1NPcCImamBFb0@F&@1Jc)c+4&M6c)YF-ICE9kNmcZ[&%p0mcTX-9*e-&l'mc1l -02"XbVf8'SX-IbYLA(i(@U8"Adk`b%)J8Lj4"A#!FCfM99[N'hZJGjl&3qN(&&r 9@AH3!"*Vi!D%1p)RF"UVaG"DFfM5UdTP`%SB284H8%D!"&fBK"Y%!,er36h*FG# p3Y%@M3)ch43J&Eaa1EcTDVb'h+i@4,NhNY2H5V083DKhHT`$Z3FN!&Y$!!*a8"2 &FJBZcFKb`!4L`!BXT&+1V&FDZGBYNe0A3#dii3D,(0GQMGD8G!+cG6fl6"YYVFX QZc&`,GGX30Ga60LGT0GR99KTM"Pj$+cLNaK5(GG5-GGU$FiJd0Lb"FiJ%`16MGL AR5P8SpPZ*69Cd0P5VGA,0!4Pe4[`+-*3$3Fcfcb5+&Yje6+1$GJk+eZ,hE1QM"Y ++l4%@pSSJ3AR"3,"cE6$2Fp4ZmM0'p22HlA(Ydc"9`4-`,VqfKYcM,L0QK-'AGd %E+6d1dA`*39ba,UIHlE,PlDABPIk5CE!iefJZpk@XVC`+ma`j(l`Tl9Efcqh5R# C#P3ZF',%T"6bR4efbicP1P'ZZTrG4Z#9Bq"QQlVbP6eRh6Qdba9'39eFQYm@MK+ H9,hqLi!+k1&KF1%KMM(`ka-G$NXIMZ(f+`-FAZ)ZIZ)J2JBEM-!chU89EZ-BRX% jEJBlEZ)S2JBV[(j$RVApEDPZZBB!EPfDZY0AkcPA"6+[e+N+AN4kU,[&DEPB$Cr AYVY@rE[(LD5!`8DlLaP-"-@'$%4#e"3eE8Jb9#PA4HFY9iQN#"K#V*D&ZH3)p0p LHb1kDTEYH*frJjC9DC!!)h526hGK'DBkLNi'!"QE!NQ3!"!Ak3JTV,RBh&MqU3m CUP4*NLIJZeQ"35Pj@F6#NT0eTMSGk[3iNqQRK@LAP2B+"kTDRh,JNphceLk%k+* HP$ekP,4qeCmiSD)S"NmT8M`4P#2jkM5*PF01jTqiSCZBIQ$*i&m)Ui6Zkb2%jj6 Ujh[MEJD$"qA%0[Jf1'+JEpU%0LP"l[e'Uq!10N6fY8IQ%rE-AZ9Xb1qmcFJ+2eV $F##NZlG&M)AVk"VfkGF'MHAX132["QF!4`'YcD5F%RCeBHV&m)*#M0i1lr(Z0B! q-NbcbN9)62Xqm82(02hHDdpc@PCl"mb*M-XDm'(3m'G3Z$@"ibhNF&`KR6H[H%2 DZFV'S!f#XGQV(AN`*hCP"$R"*cHI"Th#"L3l',FNSK'V41SP!lF&B9b"'H9F+63 24m4%c$1Im3krXp&p"a[2hah[m9eEC'!lB2H1crNqbYMR+1HTScRAkAKVQ`'[965 rCJCrF8!45$`2&%j[&#j8cXfmCPMMleZ$'lKbbG)TGERS3YS#554d'Mj#lTClM#e Rf%"rEA4[dD`hqJ1Y4!U2bAj2pJqIRl'eqX*BmfNmN`lG4l"2m(Ce!M"`!M)BqH4 Z9h%e62Timd3p)c3IS,f'2YC6[N!a5Rk@qGDB"NIVqL"`qGJAM0&2lLB!!J'9r00 Q,mKa"RT5r'A`pHm9A'b6hBUrc@Temc*`mAl#r'1!5FDerK-2!M`!+dhJ%Nir1YB @I+228C5qE4D2hX!8H(TXJ%KG0i04r`3Dqk-fCQ!Pi)(q0cKURfm)J*CK!%km!XJ %*SM6F8rbC3(#XGk!!5NH'&N$T-X0U"HH3"4-e`4K#5dMGEfImD9U!!)#$P98FQ& ZFfC[FQePFLj`EQ-a,R"bD@CTCA)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!&4&@&408&-J!3#HSkBPS4X[a`!!!Ai!!",'!!!"&J!!#'@S)V+ b!!!!!!!!PT`!!!3)+*!!#8'$!@98F6+%5T)R6N!BH50R6*NLEZbNNI2'c4`8EG+ i5G1Q6TXTHHBiU%*&6KL2CLLf+52("C`@!JK5+B+&5K-S8d!-*!KJCmqI3BF'"%5 dU91#RNDC+K&3JV'!!I`Nf,S9"!JhCFU3!*Ncj!dELP')k!!Kj-N6*N@#10R4J+Y GVb&(PQ`6K!S41AEN@+%jaiR*Y8QFl$a54%U+Y@hIaThES+k9)&,U*U$*8FlD*e1 +b*&$GbXG0'@Z8'4$CLh+14MY5#NcKQjG)8@1%%3#)%'6MQ('[(P+[$K"!`!)!2! "i%'!C!,5,'rq2$SSFG$L'-G+8'N!K!$!b`!!4"1Q"MS)FJ!`(J"5+339$'Mhlap aHlDSk5%$aSXD0el%)0'P6i1!CPSdI0LLSX@,'$0Uh-LaSmH2$8D%6"!%$K`fC8! d#6-QM4XkEqDJ!8'NM*dbE0l!+5-("*8bBp#i56-Q$"X38qUBI#1(6XL43Y,3@3R (Tj``EZDBBGU'jp-4#DT3ZCTeUjbZFPc!5G!L!C3`FiSHRI+QMT`aCEiQ'+)cMj` dCp$3!C%+4)`F1(+!+(Nb*GmfF1V3iFN#4")hBeb-$-,Qk0r!G1D!N!"6CJl2Qf3 dL`4VKHHF0'qbkKLCS(B-&c"!e0kG!!D1&iRe2SB6Zmc,1E2"lQib&UY@VMc9mJj 5jdbG1B0M9$iFA(PYX@5IRifqGMGekpJ0EdHFJrEhjQ@KTh8jjRE9fZH[CerIR6G mm@Lj--CdeHQRRQ(XZCI!IfB&+!H"k1f(B(ql-5LI#dd%XG)DCCKAB(VD6GLHGfl *mBBDPdR&'dNI5XMGL2kKN9*88i94eApY[(('AfDN`41,%4liSPj5P"&((@Q3!0E 9FFRaYY)BM+%#JJbiRC)$EdV8`8BHKX(!hiJKJ5##KH2*-BF))+3K@KJJc"%'C#L "!)H*1li*!KeSK$%B'@ANQ"8G9ddQ'KT[h((R'hH'aiDHCE!3TSPd-&SC9Q5d+9G +BNM9KSecZ'$CB0H9"J+E6c,@TSbG(3U#6XD"d#0+PE(U4TKhZ%4'SA0-kNDPHHi Djj,A95D'C(I+#-)B6+9NSQ3ZTD3Q#(Im4FGNEU4CV4eBTG%CQd1SeX"(i)BVlVJ E1364#K-p4%)63pL!!``&YG#(ELZZZ)G2aXkTie9YJ0#'J@+N9-G30jPTe,&[m!Q #ZHZfLm2$-FME3!091*%%&5#!jeb$21d`F3**1%&&%9)B%F334A`FeK4&60(!E[H @SK*,TMUd@a@PQZ6SblA&$))35,*"KNYRr*c6''Z)C[0h4+4KP)il``b#c%R!fDG aNG)"@l99Q,B`ch[C03G63p$"4Q96"1&%%4lc2-366Na"KFS*V$%&B'lSD9H(YI8 !`JP,""'%&#IX`0ZpM,&"P*jEYiQhhU3YAIH6ElP%Ka(DPN&&(MXPi2F*8)Km41& dVb&&S8,N)HKZIYmJJmHlVB&%'B!*4UrR),J1!qbeVA&&'Q6JbC[ITU1ZZUJUJ)" $fl%r!BI@XFh4p00Rp'eB$$$X6[FB6R"e-1YGCXpl!Q1F6NF1-!`IIJcMPrm'(66 8S$lfm,BraD8bh1ihr62BIbN54M%$q1K(JrDC,hlh-dSC!-J'-qKQIpQV3IZ'S*m hp'Z!fE-"maD8"5LNM#,N#U%)4dM#LNMZAKM$@%rB9#h41""42HQAXKBMTaSH*3h ('Y@GdV3U%&6,A#8-SK#(H"'(J)d+C%*,iKB([@Vjl3P#8%)4KS!a&&"KL89TBJV SjKBT2!&P4+L#&)VJNb6b")Z-Lid,,KBHMXN"M8e%J96QX"+AB!iPQpZ*$N$`",P aVJ`Tf'"YM&!a+LB"EQ9XShcJZ$8AF)BdB5"$(TaR("5mUJa1H&-CpMJ&3-QJ"K) %@lhU"3)l[)%046+$'qV3KMf'E'4()&N+pNJ&)VaK$+c%f[KUm`3VN!"-#NNJ!YZ i5%JR'"+45&4NQ4LT4PYZU!bfa1@5k#$(d!bK$@4`!LX$*SFpAM1Efq6*,(d5c9b qC*F*k18[JcP-88,"Lf!8)aQ6ZE&&QN4a@@`N!(e9"XcYLLG&1P*Tk,!$2[T5#X! 8TL!68!3R%+&YHb#L4#G+VK2kj'Fm(%`6G&J9)[4`$##SJlp!N!#5DJd'L"40U8S eBX3+dBJUjCcQ!rNBa5P@XCDh0#FGYLK+-ccK-bqeN@j!303p"K81#hhR&iX3aM( kj+JaaGSDSCV6D5B9RNb9je1P!Y1U5Y8)T#P$3G@*8(CHGDP0R5G9T5P9[X"KNN# G)`V#F&5MFY9'JH5L8Z2T9#UX9DFZX'@4)MRA9'UcPCB4@4&L+B@#QZNZ4F#$QN, MU&'Zb&9-JF*IAN)dSllKP'A!5L!0ZNk&kK@VDGeUMH!3eCHi!(-i)F-F8,$AV)j 4P*DPb4ZSm!EB#Xf52K*D*V[#58q#XU!pLQd3b%#'ES)!#S"#Tf863&4A"CF-HGa NBQ%Tbp'50D(Yj%eY8q[AZl,@Ukip3KRSm&2!("8&9KMFU1Vk-r2Q9C30IHM%)VV 5rUl8SKJ63NC9`P%3@)'(+6%85[h,B)QfY$EPADd9I'3Skd&4LP3%J48RA)Blm*3 hC[M28DPEe2UZpUam9DYj1Ab(04CTYR0X,4eS+H1#cM%T1j'$(5K-5aC,PcI9MDm 8dK5DYr!,1Fm&P(F2#Pi8feE&%UE`Dm-k9LDEpE4Se@U%UF*L&`c"+'a))JSJP8B hZ&+aM#hS&2#!YMcX-E,8iK-ClXZEBKl6#DVPXT5GDC`k2'C6ZjVV0`r,6@pLNp$ LT1@I+9APdSCh0q29mP'lE-XTV&FT6HMc("TG9Y1k%l@5A['HVh+(Z8*bMd8D`di jh@3XTcM20ZUbEf9,@e$IGVUed5e[C`hFf!jAZjf8`bFPD&hP-YHjd*A$MdP*e13 +,EYRjUi88V"N4qmb[a"YX,D(#'!3N!!4$c[%XdMl*3D5MZDL+3(h58'ilAD,m-% ,JM1LjI!620$"`MA0X"ARAHqG%V13!&3i**j(CQpqPm(H,P![(H"X"D283EY`0Sk FR8aHHBH6hJHRJ`XX[A"l0j`0$dG"aYpXEiQAJ3b126QT23YDd5l8cJ&(TXAE`-e qZq$M`'28(TN!Yb1mNY9AaUp$XqhZSSr,SNF!!42iL0%J+"dTAq1[dDIZN3G(fUP $3%NBj2"HZTVAVUZPFa+D!!8Q&+%*$EeLc*fJXMf3!#!*'62MI$"M(iIN9c-#!Jj 09(*KER0QEh*YCA)ZF'jM-5j`FQPQD@9b!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!"849K869"6)!%!RU1Q*D$LZpi!!!&q!!!'N!!!!!%D!!! $hII&-TN!!!!!!!#Be!!!"!JSN!!*3B-"C94a-S4+NLG13"Kj)fG-Q5*Zl+54mmE 0("4YdVK*dkC1QbPjjMKS3N91')pQ+,BT)mF&R"B##&)TJS9+%bK63!`8'("Rcjp "K`l-5E#T8kHH4TNU%G!!T)!"r#6BZK8%#$GPbT!!Q62N$4Z+8BMS!#(Nb4-Q4B) ifG'!Uef[)8H@E"1%#K%jGZ4BS6R(LFQe5CcX2&*%5SUeEGr'RGZJVT8J8ZSQS-P 4cYSR8iV)N80h+addCDj3C%0Q,FSj'1e)+61'EPdK4Bi34!)J3C11BFDmH8Umq&- $!!J!8!'J3)"N!Y)XErim1LKaZl`C*cL8+&D%!-$,!!"%'!J%dJKb!$!H!&)T""8 -D2I[Re-K9TJ"HlDSk5%$aSXD0el%)0'P6i1!CPSdI0LLSX@,'$0Uh-LaSmH2$8D %6"!%$K`fC8!d#6-QM4XkEqDJ!8'NM*dbE0l!+5-("*8bBp#i56-Q$"X38qUBI#1 (6XL43Y,3@3R(Tj``EZDBBGU'jp-4#CT3ZCTeUjbZFPc!5G!L!C3`FiSHRI+QMT` aCEiQ'+)cMj`dCp$3!C%+4)`F1(+!+(Nb*GmfF1V3iFN#4")hBeb-$-,Qk0r!G1D !N!"6CJl2Qf3dL`4VKHHF0'qbkKLCS(B-&c"Ukki0!mH,a(SI`iPGjZ@Ff@"eLb@ VP5Y2YEZ$e$P6CmlJ'*82!dpHZmTBV-h22PqV@cTekiDc)mj"Zr[hXXl6ZKacQcc *kG@[UpqqqheiY#k-%4eqk'&Rf(VY*H#I@3$+-H"jqKh)Rfi,aZG#%d'XY%BCj4% BSAEXFHH@('qSFCP8Zpd(BAS5KYJI'LP&098B9IRAaKYRr'9''MbTQ"q,)1SP44P ae*%'D9dCKpaZ+ih"'#SJb)$E+6RXTN3GE14K'!clK4J5##*8+*iFFiJ!3KULK3( #('&!KK))F*!!Q'1E)0#"4KL$N9('M9R4FG9NSU(aaKee[P%RFfcJ@3B,Aj*)Kk+ 9B8A'QR+P*)C8EG!iK`Z@$9CGD5#Sf54MDm,B@D%Jk&3F#$ZL9*QUERajKdYN$$T (T'j-HQHZEbCCA@9L5&BRM##-`94+*%VQ8NTSJR$(Ah4-jXDCdpU"94UGU6Q%DJe mj1fhi)DlN8-3V6"4!e")mF348Q4S&AJ-mV4$!`f!!-)H*$3aK!di`&"3#hfN+2! H2K'EU8Y`bRP9'b#dmD-B+G8ae%eN'PAX'hU#i*!![IMUbbm11-3!-,d*9$&&%9- d8"["TDM%%UN1G6HU5BbUR!$,)!KK*"YNZ(4'cMQ0XBCS-CG-4"T'i9McbL#dR)5 EHaEh+"f`69Z&D4VEl"ecmFSaVmT@"#%&b3QF)5CDM,&"&*j9kq$6f6bP[6E9XHe `Em%TdAM5h&@R+SBD3!hQN!$+3K4a4"*1N!"p)Ke8[2%''d+mJFHmY59K"!K@'*8 ''BVbjFD1e2eC03TRH!kkA@c(PS*25"6Ka-dZElLQA5RGN9*4dmSKFGDk&AjiiVS YAXA-F+#!3`U89ci8(98FRI3CAq[Q4"&AN!!1Yaab&d@h'mMER)!4B@$V4"*-@-p eI0QRcRhbC9qIr[BZ*1'q5@TV2rSD6ElP%Ke'B&X'&ARB5IGdBlEcMHPp9A1" @[35iMJJf+`)66ZDp+G#"$*cK#4e3!!Fd9#%V5KP18mT!"Y-""RAE'q!$031aR3!!: ------------------------------------------------------------------------------ Keith Rollin --- Apple Computer, Inc. --- Developer Technical Support INTERNET: keith@apple.com UUCP: {decwrl, hoptoad, nsc, sun, amdahl}!apple!keith "Argue for your Apple, and sure enough, it's yours" - Keith Rollin, Contusions
jimc@iscuva.ISCS.COM (Jim Cathey) (08/29/89)
In article <113@vsserv.scri.fsu.edu> pepke@loligo.UUCP (Eric Pepke) writes: >There is an algorithm for rotating bitmaps in November 1985 Mac Tutor, but >although it is clever, it is not particularly efficient. The claim is made >that the algorithm can rotate an image n pixels on a side in log n steps. >This is true, but the problem is that each step requires enough CopyBits >operations to move every pixel on the image. Do not forget that the original description of this algorithm was for the Smalltalk-80 environment. Xerox's Alto, Dorado, and Star computers had the Copybits operator as a CPU instruction (BITBLT -- I think all three machines had it), and it was very fast. For that environment it was an excellent choice (there it was both clever and efficient). On the Mac I guess it's merely clever. That's not quite enough. +----------------+ ! II CCCCCC ! Jim Cathey ! II SSSSCC ! ISC-Bunker Ramo ! II CC ! TAF-C8; Spokane, WA 99220 ! IISSSS CC ! UUCP: uunet!iscuva!jimc (jimc@iscuva.iscs.com) ! II CCCCCC ! (509) 927-5757 +----------------+ "With excitement like this, who is needing enemas?"