Warning: set_time_limit(): Cannot set time limit in safe mode in /home/www/dynamic/uv.ro/pubory.uv.ro/public_html/pub/index.php on line 526 asm/dsfx131.zip0000755000000000000000000042462411266514540010464 0ustar PK *DD816.EXE[ pGvٟѲl0`Xl }c|1kW*슋qk`]Ed"c+BJ!# d!,֩TDR)[fG(.GL^﮴8Xf~ッ_wY%a!4 ҴUy= ??^_4 קoDZ JL]1۟D@AJ9 (+Q >r\- (.V*/:a!/BbF~c^7#iAouy|\TSIY (p"3guȳ:r!d3K.QTQ))~,N\ h4XFa1?r OW@жnhY{W9eoQ^zV-t+m]Rv7}ml=vBYBx .ޫ+S1qF?()HɖTS@K%yH+"J'hϙb/Tf<ѪᘟO3Ȓm^F&MA9_γ?ݨUD'@߬jl2o4$j.mA|S]di0* Ҁ$*3R ~˵Ô\5LDKd)w =@ ڪHxQiVl!4ԟh1R'~T]~օBk>hȗ\@ 8z"Y] 0Oa fuB):1?Fb$ D<_@ f- e>RF[2J}_RQ·Ӆ1Ek Y3 Ƴr08PpPLzGh3.Y6 ԧ 3> , fagMUx:&s6mf0'ON@1PJЀ0TdE¹M]ڋ .l̍z߭~hmt@ XU 1y$GcdmƯӤzȦfd'{[+srSscgE_vkCrT?d[T&{&&De~]+ YtxebJ|6JY@pe"@< ^P~􏔶A'DO %W2Y(*66Z(C 皚}F)MћJ1F=dW)<4J=CP$^?~W֏5V ,i^dO;d'z(r5"->bG6Y-Naݰ@\@ /gKvy``W;9aydzNl4Չ}Z՞1w0nLі}R[q}U@`BN}* 8Ef~GBiJ}`Ӕ0Y#&HBh!KFx ɧOA%Y#clso%/G|A1dxf1|(F(<22(}Qp Y6ܘ9*5RS$ܤ?hd(d!gt[yÞͰ}nݺ8*V⇔KI6M'eU|h+P[Fт ︬xâ 7J]fjZP}L̳F2+~l]zo>H Aho+K#ݨaR9De-aZt7nIEzw `XS|#T Ս.ϲuQQ^KX{<2HuEafG#;6Y閒ׇɫɫby `x1i,% D3A՟P&绣l< N\S)ϘI|&LzBud\6';;56 qJdQ|dwN28A+OsG(oRG<ߦ5F" 45x-=脗1W'v6BRvx< HDKz<@YsE o`J.i ]P:Ǟc%/l&q. !vS ;|VP>/Xߓ'Yg?"{LBS^c/LA1O鮠%=V6yb[ՁƵU%sUOsCfL{'bO(+Av`?swmo`]n,,!GoiR ]3GNf"9ah'ab')lrs4" ҁ*CO*oo=MV*xSQ#9;|z;;چj"3.+1} 5j8Zȯ&_1'k0^R>q"N"8) hvzE;fݑVz Wo7c# )"uq'KxX  lM)uȿ>f̀nNd;>{nGo5 T*#lJ;*ePDbDycvƨtfwAn'*uJNT:cFv>N+*ٝ&P(fĀt+ 4R;MǸ t΄sl>3$ 1+L@jן֤ؑČLJB?~2Oڻ h/f㍒­E{L X/6<`a A⩻x`ÃQ|&<݁x6 X; fPw`G+;58z!V_A?2IQi@ȒFe[g=QB%PvEs%}7 1v MrE҉t/WY.1Z-zijIC -ҹ ܜ,%V@Ձ+X\cV "E `({@%*ȥPRTe /Ĵ]E_Ceʘ΍KH) nFWbj %@}~I'Tk1<AD. -sɻ  qJ~t)t)QH^nrgՏNx `REJSi h4&]]~BQʑ~8`k/tcشYϘR&t0 Dþ)/YxC Z`3X "u7}2I**q3ܠ Ƶirkʚ*I%V.ʁ&s)Af ,>{%I$b[P0Q[2fD"3KBW&*ed?lI=SJø)͓^HVoepV!8c4U$ l ) Z&KZ/Fz/j2H߱ d/7sp_Cƨ ňgRĠ9J=Vy&VTJ@ܥgwp+C^9uX"]1SWTFFbz$Š:n @+tL]ސ[~dj8b&rB4\V2M2b=ͅm%` v+izYJ(4^N 'ޒD!_&*$u*'ԖL4:)3e9"P/ ~E((_}gF>8N>ᎂrm)Sy0v~*N0/lkX9Ggޕ5X8.8B`Rr8S,MT5ܫkkr.G zN;2S#;eNsJ6:?N}u"!!E֭T0Up-$e-,'Zn|Age+X$ AA;ìz6MfBمw8[7JUS6JUD`"_cMJX܁ō&7`pٶnI&YTiROg6>,uCދAEN9( ؃EX8|芄P}g$9p!ҋ`jƓI?WWh54rarFtsqjH?aro87k=#!uA<md++ISGҜjQI; ({}B,O'CDȖ,4s|$|5x9eЉܸp".tBo]}kl:kV"BHO >~0HwN[] >=*ϜJca3]Wl˅+1B * zUo72?/z6&%؈M>segar?đi3S&rqjXU 4OJmv~UHqbp5+U/,\QBm->/ Zxyy6W dr2hFL[|pp N:f6渨4y†S78 @Gsf3H)9}_@0<H5+p/"Y${_qJ54@﷙lxB/ňT9 Aj Ӯ( cز[ivH!.?1Z(^tL2q+Lj,Ù$K-l1^]0xr>oBGoԕ ;R̮sB!O=3Tؓ14jmʚGo$N򽩭;B;nm8[_1F]'ƕCqn-Gk΂k=v3׎ndqN*ʩߞU8=lZ}4tӈ#f!o 5>2 Z0"c1Gd85UcԬ~GVRnruV{)det԰c|(<'B!E0"#'@Y7XE c;8r8z0\Q6%1͋#f9&x)}'y驮?՟Uլ^ftfmY7'wDm]YtS~Q#5Gjj=hVu>RL:kRN$w Jx--e(eN.SuͰ #w. g-~ oLYҵ ·tKWMd(f_?h\ׅuĨ%6'VOvzviVOv]=WO:ZM*/tnIď&WOf~7O]S?]r{{p{"OwC4(i\R:F7@UwN"yoV:p̷hc}nlrDmg=zd{$ٞ)ݓn|+;Γ\=Oo>vy;t/coo1Z;Y=|ޙn{zڹc>-`}Ĺߛs1\Lt<{썓I%޳7ֽgoD/pgobGkO㌷h,y/+Zufv]zO+>E27O?@55IMR\XmBY]a7]=KzqtV=W9'_3A z{? )/}N ;Z涢il4 G+M&MmӅ:.>wCئK t*Xn:ǰTC2JoFctR݉n:Ҧ1LgZ*OH?Q1b.xs9͹ȗi΅Ʉ$%LVQ-tYcBM !5RAkv=BZ%-hWh:0rLH&Ϯش#TտK 3nD̪CúӘl.!rK\Ѧ6ω AuyZӽ$fTžn|4. ;pf()b>JGrK3LA@pj>Bz^a/cbL/cj9J$hzoa/s4F/uo;Չ zwҋإ7βq=7@AA d:t_&~ş̖b;E ikMuOU<0u6MM 1?m RοU~W]BYNqe9gfgDq/g@yr_I?X1'W:6w9&7/gf?xS/>q(~lA,;,.[E & "_l3SEx_ Gv1_lbv_T ?J 9NOZ/A g:Z-ZWch WXZ0Wg^m}ʡ(xG-蠎Cz/Vڇ^ƨ^{)y#ɍ;SeV6ǰ2sd̈@d,eP ݲu>X:Cx]}d=m_^ zI$%"Љ7 Q=\=\R{7i*a߽[PIƽjp wŏ=`’ibV7G L9m8:D]ҋe_m'z I϶oVT#I% =ۥir.[G7pޖ'Dޕ swY tqG|OR'ՄzkIVd#_->9S,_)V$g@m"+H6O1q,rm技#(`zɠsh̛xt O9jLTW(Wq4jĠR0SSʹ ,L,f#o#Wu>TTEWV`jtpz?q/WV&ɥk0&W D7YR(7Fx5v#]Cy5#2Ev*fzC6` *-]|H!oAmv*XjQdlULQMS(yr&IpMhC=؍,v1ȍN /:f$ɟkTo&-&Bm|xU|ۖ+ҭ3,S W(JAza2 kZ+q-KĵTQV&?Eg,Ћqw1xLwB*1S|A^%]D;n I+2χn!~*1usG<.j1Uݣw"%'2z/<<9GpOOM&7VΚ){:T#W> i…KQrJts%.fK;@p{:(xODܵ#4Y΂R.gK4Nk@`V6>K.t 7 KLU:hsEӼjSxMmVw`NR$byTX>f^ -ZA HfWqP cfPg*Q{~kS\_sOwb\?{+ONs)ecxҚutuq3Eu<1]-!]29ã9BIɂV(lQc#Pc#B`‹^|,E]9¥NxX]JSWU E^*Ht^0,k{aybeܦ5}XpS#g93MFίl)C* a:\# UHij K CO2 2!lX1D[ 25&"t 8DvH׊V+A߰m!߶P̗B~UnD u^ 7\P_" !?/kY W᧞TPhĐWI QxL,` pm w*$L0󡨓iǽgntYfZB"5ۂүH"׫sty4!>q{_qIpkK1[C꽞RȂ&P*Thٮu ;Pjڐ$ikR[A/C zQTvPAEgVЊd?G|ޭo2U7aK1aYWɗ]WŢE]mx[B%Z]mFNt6ӈkp6" oϬIZ6 tҤu8jVC5!V#'k:SW qZbEϬZE|.&9fSx8,є1%HO ջu!fCu_rkCƭ'0KҝhH!K{%q߰VxSZ@CE+{WR@͇iZhdc~"bKY+ g-W l7N|0PC2Yc #?2ҿȚ+q|[fewڼB  h&Bܣ.!bZKf@R6Sƫ:b?.hSr-=.ƮIp(LKL@c!8p OIsORF|1Z5JqaΟ%B1ZAHPjoY#Zӷ:Ђ`~o((lQ#22d| QWE2n\ҡnp4ABLd!uBfGNB٩8&!AH6MhU8UQNSMLK2\D$"L$^&M|9M|Nw;B厐B9pе{HjVܷ5J5d4ߞ / "} HyUSjU-Hɶs= s~㯙Rf9#œKœFQ,Q).V #6}~=Wq⛟` ItNxW㧍6(NAwd[;CC:m}{dzݗ*ӜBZ<dtGBs~s89Z"1] !&jr\s7s QN}S!XґJKDZH:oj9(aQ ˿᷿Ah A'PW8ŶmȂ+Z* $)5/p$lLǑc"Qof?v\|֩Y?9)n[ 7jR(aDɮWT˜ӥ7Z fqWi婻$;''zjH&C& x䄑Q-=KEԲ33O$VjJWSb9?N$k쭮~<* 9f5#RTTꁪ@?;)M9݂yQ Ÿ[m|32M HT~VtHpbi"N?K$9z=aRUWTk"8z=^w}oHi+5z=jUםqwiO[/Ӊ箠jԶ}$§UwW (4=Hύ>{L7 DD\U\2gJJXktGL'~$4Ip}'/%ƉFI3' ﷪߉w^)㝷Hԓ&Kx0`(Dp;&)`*t|l l[C9l^΃/4\ Hp/x7h dlpXjPNgv5A.c6p`3h_QXsjDs,d,6 c\ A݃A.!,?g `/x4%JLpPC9Wf7XրWaPh nJR,-Y >}IR2E`13Px4[2:, @#$ ppNP ^5@0? 0xlgA,O1p:% KA#8",Eq"x c>}Ӡ 3*,pD P dp $ }0E@o@-h-2}Q Yǰs`#xaC 3|4 "2T0gO|0 DDHYbeE AݥaFl*XźU4 nTж.XqX>hW2ss<93g&7G5a` OwV T? g5h xyhg<惥` nY`yTOw y`Wx&Æ.1`:X\G@P@1XV c 3 & xKZ%8΀Ƣ@82?X V`8 n8A 1fL怗;`;6p >q`(iWK- 3w}db<] k|AP;J6xQv %0,7>[4KIƀ~f?`k@h<e _< j^pm0Aԁ 2dU =0G" &1'"Q9+x5`#v8S m.3p7A  \Pfg`.X> x8ϓ u|i@* w~h0 <^[08P`YK-`hrL#@&(OyX hǁw`LA *J+ I A,P; jw~@Pb # fGFb  NWp0*s`;'% 1 K`pyZLԒA xT tpx<-`/8 Cp0EYPVz?~< PA'na&pfU7f"2  20,! p.?9#Ap I` 6p ̅} 85 C\ &KM ԁc'W0u|/pna0 Z~W@35ipP`(H#DP9Xցm@7ug(OgG| @x 1p oih P0' ~S8 ˇ<0A*ȼ"x |΁+ ܌:e  P;(Bw, Zph*8dP ;p \' 2OB7c`X^o#h¹I 5`v&#h 43 r"x T_o.'!H3Ax .k ¼<` x } 4i>h((Kg/; <'d<8x ԃ+l&H@d𨟩`p5?_)'xf 4(=&?٠^KJ Q (0 < >58;|JS/5<` sP  ?P5;5p{"(0L3A}/ 0`:PX1 <Ɓi0,K,?m06|683x< d<;x l4sG@  rLvpȪS`6xX"Ԁ=`?hsB !8ؗ0Vim|_m0e=`1pwA|N*y70dl0O?1`2x 5p+ ƃlPyl5`8~W} Da~N^p .D 6+A5.~H0 b0<*`q@ 8~W1&ASk>ˀ,𬝾u7_C  ^?Np (v! Da >Q? r*xP O6&b`ԁ d>bc`x ր.k~n[~ăT0<J؀,o5` y /0-h~.Pu J3`)w@Y ԃ$Fyd `%O#8@}yXlPow'pt!o/*`>[`Z).߁^ h?`*fy<8?. ΂@āx}LA! ,0hst@‡3 < ||9 ΃ l%@2H`}x0,> | ΁+ x ~HS;`'9oX 6K  ^ VN1Ac9`0< >[W~:j5|FP*4tA{h;h _U?IGd`Y)7Pg ASxh?@ āD0 7{`->|@= ֠?'~u?GG7cYXv@d0<,`#Q q ~=+x Gׁ|("Q0<^K;`5X_|6y6?9@} }d0  W< ll``6փG@}Y S `A7P| <fh7O&z?2P ^qK~zlA,,B.m| < /Y2?fp-107P! Ϡ `x \;~~g20R𤟗p\z*|_ā$` ? ¾= 3TYqp֏zl#U~_5Z`J?K[` Ϗ:V? nAG@&3U. *'`vpޏc Ck]l -~~A`'_ 'Xg``' ^U`7#?߂}E2p? ?`:+@-8  Lρ܇ ,[@ ;`$ƀtp 5b@(* lGj/|y0 D$3'xxA%M?A SBpyʾWY&\}ArOs^yLm|i)4}9doc3bP вl@@UfUQj[fQE .! 0.!m%B&kb߉4?2NmGfC#eO{nŏc-16~|{8F'S# N#Ð:FngwO֝b#{b &rǐr=4a4&`_e956F8=΅v5x/*;ڑy&.t@8I Zm=Sq)ۏ~tkib\6cOyF&ɒHǴl.+=32a$N _2MeEHD.+MCxP:}lU@(eMwRd1퀮 cOL&ɻy$Bm]T9gmbUٸ~)خdz]bsk ]\`js^ct I-1 ]ޏ=(v}!왍19H_HC#njS^4Z{+f= =+ٚlc $-֬썩4leC M殦r5/\{V6*yl+巧kYwn[Y̮V0ߖUow[],Ŭr!{MZՋI٬;q/$ڳ5Qzkf_YWg䨹{e[۱rx`/7a &8|#b>zƥ쿏A햁ߴ6Zސ->:g<1qNxoqw~U7_Wv;|?ͱ9[_ys\c;~Rxy\_ З=#؏`cu}f^n32ÆUv^~:n [[}5:t% ]=Nxĩ]ry'{9@b0jaZv0M lLQysB>8VF"؈\~yB1}0HQ Apͽ GF@8t7߄cDpbK'0vH|Ej J+VWlZ.;G6t|^}SV^YQ+c|Eޗ/)W{LG_(Ngm?Z5dLK3&j%C/`TsnO|Gz7+tPLt 7Y‚CeFw8D_ZzBBvi{ЬwL ۽ ݢNTTE9<z#Q61嵣+!5Zt.C#QZNRLRBjUdBo-=p>RgjHP7T{ !DhByܤ <)8E.q%n<ָnЈmO3.d"Tw Ntй)"Jɓ:V*#>c 3]Y}!$"ʦ[liSNH989aX<<ܡ3.aÍR \Bf7~)S[ ʀ(דݏzQ]_cۈ/T#snh`ۃJcǜvwgp"WEaPzrˈV͞MՈ(4oe7j86ƃƬ^3,iWXIcM_E[.cĠL LV9wNB!7fa2駟x7BDqG{Yݥ6@'Y4̼>eY/:P>mjNm^Q~HFU\RT0r\Ciݕ:5͑s7īwm?PBͤ3ȴxQ㏎ajȑy%SfY+*dBZ;-=9N(u(ZĞi]\F]{[jJh%W15ѝ4G8Qgo|'ac荵YuQ;0vT#ļn貨~^2iHnle@Nj8!ځt AάUbC#u ˷#oXc63B8x}CA͸p#Bθkя3óÖMk;+&h}rwP픫v=FmW}O#>9q7YTMO@N8^1!Oi߫D+i%O&_[$:f[PWbK*چ˦}ri_2ϰ_*\>9Auhg:(⽓﵍#T{W%] ,t0) ){m# =3QqD>B+V* Znyv>d^~I_Zڅ±c(X1dYCR0\vX٘+G YZV'C|;tjF^ LS7zcsG^5l ZeOM2V? Ʃ 3ʅ245!әRGmAX7Yzt9#>KLq !Y xD+{?gF0i4{̝懽'Lܽۻޕ;Gw0)>0-tgfɦE^sa:-1-1-1-1mH 5l7e RAY|>ח!ȞpvQek>ahuB[}s4K_֘cAaeQإ/&tUnsvoh㓶9m 7x6F%j>lۿ7Amm7fԙ1cXIe>0Ȗ>>Z6MV ҫg(ˑ ,EVo9٠a\X巅Z_fF0q(j y0 : cة}W{'o̭:5Z :/a_Ҧ4̺1KG8F1UЄpJEV나VH=4to =9˝\g/.v*mA Ӧ9[j 2.[CYQI{gL=(U"6W1D%Ϻ+U,2M,Y\ߨx3K~ACvN͌8ErYYylˑeYA]ؠUAA=Z#S6ߣ~ц{RG;?hoktBE{KǺWskuut5+u;"OC.@T'iC:])7 0t{AðD}yQOG5GF<ן 9@=!͏]Y iü}ѫ-/ihT0?kYϾy~ N!rK6g\\-~ <#/~9@}+ͅuI.S9;Hփ?>z &4I ?M08⾶ǶrqRzG5O]k W鑴ؿE/3o3̪ȀYSo=>=:l^5;RTQ!S&z/k;kxσDH+^hͽp#d]zʁc_@|ఇ.u&An3[}Ӗ(4ݬh,lрn{Dо]]39 > M {-VH'%ڥ:QmKT.9Ե$W._vO@N_rbi=`snײ#B֫"'\_0Ks΀UySuB/{^ؾewc;.juCT 9;IfZ!ӄQnuq`3yCH8i`1SbQC.xׂo2y$԰ .m27D0Ο[Dߟ_` 7ed*crtVrJ*˥?)-!^)zSUn1nq8uhESrWҭLӳ@0 t&v{D}{#"$_Wbiqfb9~SY~-C? noR֫. JaڰXͻ_mn %Eww;)Qݽ~ubwV|ʅ% Z[8r\ݻP.<$Կ탖d.;mgM)mҷ9uf9zi֏6Ak&1eb$wT:o~;-֮j=8kkBz)`gh\TR ݾfyC|2wxG-^mixiGAKQ.}$vZо Y{#kob+;ܶ*7B{7i̍Q*?K[zqOҸxp")|TY!1}XwkSAOu@>IQ؝eejDImڣ. )0T!Gh`wbS![NNGEN;}+ _E2#OO?h?WC~\x;΢g6]) -n0߅/@n9]b׿tp˧4E۬";ƌJ=\!tzg?3Ñ9!S&d1%$<|'Jzm&m:e+yU,9/O ֺ4L4ҲrwLHy1y~|J{W]UXtuo3ȹWy*vҺtGb?ʬ"3eIdž|_6C[+쟯нׯb3W\I!SpLc{jZ/Nb膁f2]߲&Ezyst;wx-s o6~{8 உ=A಩Mn!! d[0]M2.F [.XA8ۖA&8SrQ9? '|iݗֲZTi!0IwS 5kgb#w|B׽ɼx\t䰖ٶ ?izWt =1G˸ )[(m.tH-^/ */=o!E\(t5E=rIbR5ϥJQwJTK%V'$IHivdgD q?[VgKkCe]a;hKJrTfĂUlu5r8WtdJ1Y_mlih 2Bi@uAAYZm99R 25'ܫ0aV3[|Fzz½cƽqK#96T9U12Ƽr6cwgTm'ptdj+1R%8u;7 o16Ъ.ld&@r+7 .\xEG @hu1<5:p0^:ӵy:cfS$ŋTبz3"W,ܣi+Y4*F.Z Kg7q^bL4lf ~i('‰{翾mlճT 2m[5Im^ۥ^0ܰ | gi"m_{*h2'Ip0B.RB/k^tpL;*.c(Ң2*t0K!d8Zܒ>+h{6;il/ٽ䜥uWw ,OSz^M;+gޑݞT"=CtQq6S=Jnl-7^l1BlKFPE-+8Srzs_x|lm]kO5ާ`@UӱYlERK(iΊKpWپ[4hxt]{2?dA @Y2^ʃ{r;^mۨs;O6bΘ\sYX8Ҟ⺤l36Q#tq 7nY6D/LGf3nwVTHͺ%ȗJTq _/ bbLMsܽy+ŏEm/ۤ`h/}RJ)&yU(/ȸ$ OcQm:pwՎU~nϴ)vJ9畎y{\ЛJwc9yL8[dwjP)oiiqwxdFɓO_ja͞s-+DҿU#Kpw)x+[cOi.,iXrj鞥'{zw۸~ 9+ûg$/<թ}^wP|Fx 烒0]~^Y"EӮ.KS/kfj'^&9g(Y/yZK α{PNB٠a6}ٵ.Hwg:6$q#5I'upBP}Q{P)G-CƈrnB'G )朥mhH'O4d,ʔ7xAy45LEdXňk䛔߈=fv.b{RlO>}^<)Q}eT3^|h/?U%}GQX5(tUu@qh@q`ǁbXbp@Q](*sS1~E:qyJrЍHi@M]["^!ݻz-dIG]َS 6;"RxR}ޟ*=qq7y5ȸPwF/~B_C'b=bf n+MZLǫAB:)[a s2F +jq²lW6KiWiӦʭi~gAB3 1ܷLeH%S h02 okGe`vo]#һ`1vaڨmF.X|jSgwMar4 Qn|SeI N8r>U+-k;;QTWV8{[߾[ ;fǕM9ri -WAsyl}\-tJvUmYTRK,=)HQR[@gT]~kTĀpwK;Ox'^F/)^zҵkCum^dȻ.ܺC-(މCrp1)byi[8S^\DJ]V"RdISb2K]k:=S|_/yݾ ]/'A]lcA/ߎpgv),YH=)B7Z}tأ+M b33ʐeQͱ -$q :;ƑVV^2ׅ< 42X Ji(*u^c3EkWn)8Vx92SZoq]f)'\ kW1Y9Y虋k\Q!^_y hDHt] *HOn .Fj&C[זL\ޔcij, dd Xv_eB+#S:\aNP,I8c c i R;-txpa!%'OϺ7kbV燷j_߅d5DK h`燥2ݴ h2i8c!O:Q IP=ELG`8D((,.q O:(֭aҫ(Y 9}סkb"_d|E:C3/KW(K1Tf~ќY4RyH!屉R) @I Si p򊿗&12ꀄ2֮h/I4QsϜMҪLyGaz %D& I;H' %oO bT|]AM4IWJиC*](\X! gʢ)$>f&'O5.*L>K> IUK>fBnPZ'jr1[I͹5qy= X_,P-seN86,1Zo.8$qK# ?lIi5 ndӺO&xkSt~v2F[ң@;]um2"9{N&e~1*11{jUJYkUhZ$yo޵WIx @憠Jtud4]]A!z#: ٖ ͇ʐ X [Ͻ>U\v/X3) 2YIr+֟Jgj(QsO* vN-ӒߥboR/<ͼcsnQlGd}IϚ y{/3'K*aZ&{%uLuJcyO ѭ+*ZڻWt)1,c|AZΈN6~QWbubY@nAlޣ-g] SJ>Zrb=&Jl-KF.eWFvRؘ Lj\RPd\eda ]kurȼ6֑Qh^F͢<'V/ Cė?Sw.5qV<6o3 V0ؕQ"ѽz6 {կ2n3Eȓols:IxUmp]u﨩kl*#7rFZ_*.Y| c{gvdr-NUAlTup$Fs5kvKe&7 S.~X`b/ºWO廿/6u ^n 6=5橽>+Ҩ]|Ty]_QdrW-UE"x%iP0a ¡R”_GV rRFhbkP"3j-ҿO^|PCSs[<Yz( D* CgKV@{vJ}XIjWGjOSdMFNo62_DtJ/i^`Ѵ\ee=g6wB52 s ŬpR{r!?fF!qʃxTok  E(d5 0$p?m>RL).UX|\yJ0KqG?mAjhp;^ΐ*K81q"y1 WY)jE'BXq/eC;0N&5!FfK#aՄ+W꒮;Mmgk#u:`^l UǚWd []i }\:ߺCn&X iJO&Ld~¤Orm&Td췑N24@rXhtb-ȔK!zܟL3 UϽz4 jd#gbI㙀w-O[n+(&;znlwMliU#tGz? 1BDKgvSX( 0"S\sz p|E%2ռlf1:Lpe<ەʠ2?`>8+0(y05*d754=d%G׌+]ͳp`݉qG>EULb!B&ONjq Zu@vy1c̋%_h=1`”uUtv`""UEhB(9PkE$q`xy!gdH@G*kdC:I% ^^c0V "+¬aJrX.섋G>jVZYbop;LB }tW(6 K=4[ԽiÜ(`m~ڸ}C^3<x"׿%7Lv0_$2!AyMtKF &q*d3X؂ь3Om\f#0s1?kty ,1גc(\5yS;пZEh8; ߞ"7g}٧?|f y"vr&8Y0B /yF,f0]:q[@esdvg|s.iŒ=|c=ǿD)|bc|g7 w%?Rڃ2&q+]no_Yg { TΈu21.\.F)Q]:} xJXB1 AӠAoƯ WÆ,!o]Wt7"Pj 'E21f7bATy# cQ ^E]3OԿ Yh%q)tEId#PQeE-+"iP@` o0+*W\bR'*STbTߎmʓ06VNHYPh\`ݪx?)0_g04G4l2Tp7XFDk 1!sMB~pި|Gp;O^AKr}VbخY{`ծ5%[uѝK0nzՃpnIPŗi:(vMRVgFM9gD)_K|Dyr[ (a);zV|^X WUЎM-XZ⟊*ǿQƍ6fC1VC=Ʀ Coʇvjq,`z*D[fkݵGwDХcfE-ՄE L;ȵR{v{n1mz>)څLGyyE[f?.Ӧ~4:3:7 -eZr~@]> ;%罼l 1b:ih%_dj)C}CLk+T.)k$uWɌ0MF]ļa {lw[v;컖"=:<JCh)MߨHL*l IBIpL(bJV HpL1NƘJFUfC\>*zlFa?BQ==˲\ ܘ"G";W0Np/ ]@.)GSt(V.1AupL/U4 Bl^c_4]m`?w4csSNVM2wcsFN–Ώ+KI'K-rM2g;"RMm/) C5^W۝Ǫu0 a`&Ù{5zy2kptkgAJVB+* \R7jOY3,i[Ҕvt8cmw)lYg^)UyYmTsˡ.hoK3Ns%f+/[ٹieeijB᲎K09쇹~ɗEŎ3}TH.2CHÝ2TMm~"7cdL#gVO{MS)\#G:?C'i7&.O]5yB|INu B7X({#о4L\R37Hy68co`NǶ4UM,YKi08̷IU S$-,K@WkW]r JocbHV,JquxU!dh0i+rs],!X FPщ[zJY7ڐ񙁛bGbW%Js"1E( T 0Θ 7w˭)4HY 16/,&1X؇nRHSR]4J $$ş=4.CVHm%~F8Kjv*_CRp!fl3Cu󅨎!)ޔ7))ވ'cW*z[z~eRk$w~1š#^Ɣmgvș])Gha7Pbۃ0<슦oH"~iiUm^yeVV{N{ɒG >dؘ~¤[p#% is>v<`SXR"ci3|uw7EN-J2V UaԀGpYh]񯾃a.Kv޾ۈ-r~;nċaEtn$!BM 9\82cjpuyZ)n:D^oħ m#ު׷.whC\ s!ꯖ}ׅNo7ő4v LkȲDć$oa0;DxpnQB̤It~x;Vx@8(e-?3JgޭYbcT淥H+ dȞ0_c`+}>WP}#7\޴r?feq9f:m|dqy)H[ҎO^Ke)~hߊ5 wn'=L|5.aߧtbK)4u?_⺐$TRbO.+ R\ q ~JQ74^;u2ñ_KPs1w̿o3KCQ.Aj,D3Lq2Wگ 2eWB)Ck/ݾԆiJQ3]"gWZ;aэ 9JA@y}iHbcӋLj-NKi}k#0p,ҠzT H/SݘB3I }4 qkedk_4~"m-A\?TKBJ D;ӲK.9Sln:t/2X.;J,6zS1y2D?Icw޷e6Ԝ~[C Cpb56Niضfz|m <7XybTB3*n. â//jjFĮ`mm0 ԦxyR]|q@&18u-2%=mbS s{#N5Ibc*4UUu n:(=lRԑ-(xcHu7?PD~{#~59 !e\2IӁE:Kbɐ;h wDvNYsbl%0-#cej[2 U:mؔPB~<^`pN5J1y><,]6GYaԌ2dju':/ʹ AOE*W- Jr76dk(݆u_6 63nCJ 0.dmNC&Ku4Ŧc 6BlեtɒN4dL^AQR'g jB(j zzV;M~3'.;g?ypF!`3GÄF4wh#yBF%WL7"ɯu& W7&Ĭma.m~ qQܳ7W>SJ񤛪U njRrd#?O𸒽_:q $ĎGC:_ ;#gϬIW^o5 ^\4+Ӵ,FkZG$إ]Z"燚4[d;N).ʜ|/mMU(ٛuJj^>ZntC mst3xq}#UaCC QL Olmu|yϮQã6bU#TP jd4%c5- J^̈́r1ic2 Ⲍ?1!;IJ0%-$e:YضC=:&; h=8G")g eyv;pC5q/RSLt_ZՒ໱fj[Ա\'{ªtY1hP龨jw=7*ZMA>Z-8{ſAY S2NncT*,k ;jŨۣ>{f,:aFΘ侈JF1#E^.cjBЈ{^Ġj?&~C5-'зDfqbCP}7 P\w{c&K lXԺdUtTh\s CyÚk:ËWQ:L<<`jF*P#Nv} Oaj_WmVT/30c?MؼI4KA) C6o*Y/c&C[_e qwHJ$yDڀ^J 9ㆪH M>4W.5jN^IG8c*!ͱÝ4RE5QݜQ~EMA]-=*NhzĢ_BZm/G/l /ơL9ORhqJиmel215`TG,NgLaj8mkK{F-az7.} S'tn.uؠ6] }D*0N(2'_X{0A)ZM)'(t=t?3 a պ e¡\LLx=PX!B2/9`冥'q,im7X$E{'\2ث_Prutpu u F/UR)5W'=g :Bkh%pw2;r)h["$#D83hci̖ˣ)=&G:Ws !uLUѝ N@S@ qVɜ%rQ.Q^Qrݶ՜yvKn Z9iA v)<*mSuJ!_I1ގ! 0.䫑|cB Tz`$U#l4tto1([ڣ**yiLΓc&lخeߣDbU'ӹ>5tI\E5g/ +2 75A6~p"]ۢ$;8|z'w <"N8R8Cwbsf1a_`*fMf705'*y"p1VzK@!{5Kr>:Ź1_tf4p!(\n AS8bhMK je$2\~AC<~Hgh@i*g!FT4( mrg/Lxc^aųᔸ&ؐJ=5xֻԍaۭząje}};# ^(MiAÌ6?p_^cp5E54;䄫Dyr6OpCٚZv#ZF%Q;ZE52ۼ@ w%ɢ2frcqB30+4 }6OǼp i]NWI/Ѓ";}0MN iZAIKrxV*jg@Y`OeAͯ6"SDŽ^b(8yk p߾@G bh^uV9䦶d&J[K_R8r)̴kjG@f⮔XsQWe.pp͘GoLM42"G?xtģ/H{9V ҏX+ LWr9ZRm _ U*3^ axg{%4y1'+kKsH|JT9p=zSb9YN2^;ױF/ S]u5v +PpFn%nEs+j萲zEr}PShi^+bmyy:!t>\mS쎧bdícҋkeF'w5'tVMh,fll^+3A/t^/?J'ZL(h<)*_X}GǦgde~)NK wW|bɾL燛fFȩk*tŏ@Up E=5g#y>=sC|.2="s-,09nۚk݋ t$1Jb 'M?qኡNe+\o/cC^, z B.*9|e>SZy"AB⓫V_ڶ5eW=Zeir'm&B- _Đ{2ޤiKFooCf)3t1Ob{G&jBoJj"b+o݈\\,7[_.sW[HY9Nm#}.+'(L&QŠRWh#69@:^;n{imem$So=nqѕnۃۘ.vR"vFNSgWMk5 9`je%ʸI Hw圚9DY]5?g` P2+҉6]鮉̐3|$u6L gc"I0,>&%>KEcnWm&]I\&@k@F!_u?iYXaBKz/,5:j>^NJw'|SB7QpR?BSkӁ׌4wnvww1]N;5YVK B~j yOa!%!szΌ8j&Mh׎GA+ְЦQ?p[#]Qq$TAW.OWpNޏ t+#Y"OFs#?NQf^I3d숊<BkIU~{}[rDn!'ΔR%J]A"%KdV̊BEo~a3qDf3y[p2(c$Cc+aDfgjB;:.,CJx)HVBuڔ; ͫ/Fd6h%Z|Uh.pNt_wfεWGj->CSV!F]xwʅ@DI~]t<0Y{`~Drh:X/@;]\]9>H1'.V._aXC.di[uۅjc^b5TU5 Sr ё W/]* +:4Л R֑e6:lgam}!Y|n@WjԶ75$[t^)7L=b&SKE OСHHZB=%6u`n-)M*\tp]<"Wjl#x-y1qݯ{TΩYi-@).K==sTMdI+)X8iE'?p>oM5O=0u'sbң%a)~0ܰ}Yz̰LNN ^q9Uh4[77QV% $|%K6 s#{fȏJ 9'vC^kqQ9kV5vk_;d#DcgU\h3IjioiW0ECK(SZfr>QEO$'\,ctJUzpBƿY`fZt)9w#5n}]gQȗwL sG"Z Y)(]Z;pSv$YXrJ]V*[a4 ,Fzo "<'1ۄ8IĀVw[((L*~P4O{vMʩ׉dѳKp$as<@δw%\|~M.d˅p&um]:ݷF&bƵ~'VwKk#[ }ۣ'Γ<Ȕ ePMG%/6B~P/OvNP~X@%%$;4M1~֞L(b I;jWU{ֹouzU]/*ȩ鱩)BZIsVHc3Az!Vs~viۭAU+ ku;3uǤu%cLKm{kx")')*?Ƙ&Ma^}$FdptL8hB.FqU敛m߼n Usm 㷮T[7l[xbj䯣{J8UJO|_OoуVVϜ?÷%ETm0GrC!š0-:o#k:iran=ƫS.%+,3\"nJw_~ɧNQ|dG!x."R*Y`G⃕焃3O.\t\\PTRRo ʊ}l3Yp]mf\,d))~[:W:L'=3D$Sûjr:s0 C %gXǐ3ݰ`B#_2ZfWy]k*YFߓvk־htb0=2tfiKB>6^ sOd% /&*S'-_3cɭ'NU3 ! rl%{IO X#-<~e~_Tl|h^њ"+ݫB:sALLbbeDiZDWf szT#TV熥Vv._ްheH; IeQ2wO#ٿ{oY^oX*U5Wi!Vp"]ëj.E#=Ъ"i@ϊEHDc$p,w 3 yJisIPX5Iu-nL7pɉ\_& ʱ Ae" @z]u"}PIVH7S@qqW}.>D yŇpTEuH͉ -uVx^nyEQnXaى837 ӦKD2MYuފAG6@δiB)LJ|9V-a9:uZJPBW%,_*YRF氘yLwwdC蕲~-=2)ޓ>'ttkrޅy:N>G^hRFٲ O}ju!sj6phXdSv-;T+| onI!Sa1uQ[}᳨@Q}~TTwN=)9j%m=TS!bN9Bh.(xY>1 vmXqMwXIt C8| :W5GKB@s%ꪶS")!/CM* %WWczHs!ThBwU=KoZ~An]E7^%f驨RZ B£Wj^CdYW7b^m _(DcΡ{1'eya/Ummmʺmuغmmu4u۴uۂ궅m_-n۠mCmK6n#uR궍hݶuR붥m˨ۖYm\ݶmem˩ۖ[-nۤmMXݶu2qdjPϼ)VQUz*qEş8+{s1Z; <}YМs󁴼?:D8)H7Hɕ+DkMmid?Kdlį"P%2q^3Fz]F9>%iw,cVWVa (GFSefs!ț}ܡb[WyCc~-Q.bgj4 t9>}?iBgZbC|oe+Z赍z c:J_i3 x[-u-B+j`SF:9*4;O< AM&Ĭ5)ģ_ %DSÆDx "qt){87py LJY‚^rI<2N^]aJr!ٰR\  XlxGD'3/ 2q\m= cz2_2*^RKƊ2ˡ"hƺX7ʪD-}tqVb]zI\FiZ3lL[eYuOF25f H묒MrrKzwe SD4me(BF$F@@Bo~>\dc7 IO&sHޱ@qV8E>bza089Bcg)9dE]wQ%l"(T,,dI #|qY(Iq<%*$wku һBwv0D4ViFvx+ԻXitD|3™e;zw&0eɤ֥mK*'ඞ7uoZƎQ73&[gLj vȝSYpRDD.B(χT&}"iG<7# ]El5?XQU)^ ]yxur\pV򜦁WN4g3^ #FV \n QYZq Vg[e.>Xt!oDzŒ<-hA=#x3X9qwGBN8vL>w 9S%Ց1[d"31*49-̄[Ix43 mT;\d Ro QHoa7wj_Ntזj;Hfg\c)JQZð#(˪g*\tIR8&v(!0^^č2~` }E ` TUuA&3:ULl^rfc_v\RćI'U'70iwAl.!G|^i(p/K(NU5N^H_CH?邺-@s/c<"wcx yyz _Ղ 1/ $zp, u!{k6WP}TS|_(:Xڙ(m0m%>jvMH̑Z;[E&8I511O{M<̬.z_Fz+=\Oo@TKo#n2Ov0Ƒr+Ѭmpa"!4Z4F@=2O9v*go18Wiu:7;2_!NH<:J:Bo)Z]tnN~>poow!0JwbQ $k fIjT(0*u~|S9HEfV_Wmݳh.1]5 iFqT:ƴGKbIU[IC67?swml6lNcRn3 \Bp..=е u}7H41(=Wusi+䜎F@ZVY4ҘᶾH>x1v%QLIX$Lj=d ߤE7"k"_' IX+FRPix#w'֤HLK/-w߾n+SU~0eUQNo;̦B,3^ΫV4So4 q7VYZwU<74r;%\-ʥҗ /0z"ܔ?<~=ީnK<@oȽNuMYĒִݜ55U7Ӟ_eS͒$/ŗlgh_N#3ibÙ0'8rXx0ިA^z3+g0`\#;ؒ1\w4(ʴa1LbL.M 쉪Ho|_-Ѥ M,+R5w+l=2z]DP,#+ěz=#jdt1j"Džr_:} h^HKFQ =a n-ѐ OCGDކAfcV[+z_ zVziV\"<a^H:1M΍υ|hcvupH*f zʂDYI_O_8/ّ8 ۸#:7HkMzᯋ !IA)BJA.>=)* d(lͷol .Ge7$JJgM fb'h>ȅhŞ̗rb9Ѳjٌ"avSWc K/͎̎tOz<->D_'Ι:i#'A%36'bAtB'aL+xt#^Jh%GY|G~|uYsY~ŵ8r‘=~s29rR0.~|Wn''g+>륷RaMgPG a9ro38Iá IߣC}%*qqǡ8g]\c1[>1F8K>esn'<"* 9J(Q+:oW ]9ޔu d SٟnH&MdMqޖroriajw#NqG0[1(gDT1޿;B|B/ o0;o؛7!{%2 { fe E֪ZZmV[y@|ssO4 Z՛T_ꢞUG)Aϗ ndS3Yq*+\ј YSL&R'&-]ÊemHESφޤd`ކ"4?ũHT KL=>M{P > o'HAe?ʚ}OVmÔ>_KG+=YLhJ>Pc<}Ks5gku͔!,ukaXIh?A/# Yb_>_z i$iDF(Ebq }yg:%_ޑ>'Wjy4z3LtZEqJOR>J{`FR21%7JH>L:52"emnw E VYK;+<@#Xn>pD9q u' <ԙ_T-{Obbbcb7)=gOϋ_ Z p2#| BfCAeET싃(VMі"7JMclb 21=-Z-:ǁ0LkԨpsCIq+(5 OgX*žbI]&V3ȿ$KCYSy& G'Y"$i5/iqW VG?g&>DY`{!ٽV U x!n!(5]zQًEƿ{d84-NTmAC 8P:RENM{2t;,S?⣯ʜ{?8Ԇph]Bhzh`>,e2 V1+ YB>C #|P@J%L'2x,FI1 YGgQ$py8=T1+ s!.P,Bc !Hfvrx"ŇL'2;rYg\^RӅ9\;<da gqX> #-e19J&T%0,~1C[f x,N_e"<.isyB6 rKr(h KH%p0y@!Q`FT<K19,p<yrGqtw0mX_KDŽ9W!%B! :oH0 HRJ :4Auv!yK28\=>;概df&P8[Xϸ^ 6`BP'8b wU)$aHc3 G"~q2TPdل\\\Tg̙'U%$% 6pa.^G'7/,J]\M-׍_$$rT 0yYD'ţxh%P, |P^ 9>Gw&.06!f E3cكxX΃?*H&к;ۀ '2=!_1zJ4+y%)T쾒B侄LFPCDqtp/Nེ ̇ap/B((P ی-4 W%V(H d P 4 HY{| ;T1MVИкܽ}|I@UAyzKh BrV 8d4y C@ƊlTr( ȀP  w (P(,,ـ8@D:@Ef@-hмP?-Hh'ݔ@c@Fd:$ۢ_6PmR-z0$W¡4 (2,Y)I  QPXD'-)":g:2E"hPA WCFIՀAu8:vOxX;74WK 3YRPJxBbrRrQVƅb0 G(+#:5MúG@TDdaq &/@x-doPC%2Ɯ<ް2١q@oU( @\aL !ANOruy?@  ʨ@9S!w}@\\Y#2@ :X#7h{5 8s' DA;dUw@(څ؝@;Iu^Pˌ6hh[TL, x@i$++,Pܱ2\-k%@N tBA%21˃E vZIbHEU-N Dd0JR %f>Fhؑ@)8zv*cuLCmgWy uMVR1)Y(+slxdž ol}w\R懼>fD&ag $ _>Wy$j6?H"j\r^ƨ3V)xn#- m?fol<]`H.nX0։Ұs.Z1-%wxHTw'-!M"E DMpb3((a3*$6P"@"0+IfO0$SR̗t.c[R[9Gg<8|)1|!J&3RRm@0 BLߙH'rp'UGtВwĴ=Ys`o;wØ<:A (8a\el/iIco"w%m7ol:[m?RH#$1Bf9ec;Y.XR/cXMpp8-| \OssaJ6HM62yO"=D|28בu4Ї@*;:ZV^cБ$= <̔aB!csYGAՕV AخAs :w{Bȝ[O(_ȼ%( "Q@DyÅ(O$Jl>L֗oTo2/3Bթޛn>hnXn!>΀Y})|貾,#KX [ Htv#$ `n`>z>,G ;Nr^'L;rl *Mkxmca*yG`$0 %Ȉ.' dx{C낁 m ;@zt@O&#C ݙ` 8yՑE5Z8H6Gʆ;BEنACӘ?;\;ēc^2]?47GR>R /Xƞ 2X#~#m'4&Y`[0ad0]VTl#p;0ͼ[2x׸< ~Nc8;wP_tr+#.l9˳ xV=~`8xⲃ:geħ_oil\<ܼ|Hn7OÓD&QIo`:<ݼ+čFuspp ݉Do"H%\I$o/ɗPUIj&B"c㈤X\!p%ңJ I0-Cv wruqDnA%5.6 (Ӣ>;#לnFw4B+B>:/Θꉙqظ$r4\ipF`ZXdD{+>Toz$F'IźSIj[=fmJ'I4J\p0-(qQu*9`zcbZ%)b)dZiP2fDz<1 E|M+S A2OSsH ZI$ZS0 *c$0E~%DQd='ɴ RCK1Kb?1UozzzER4-BC5?QsqL8-]sC6єC`\i#8.D,-&TP)a_2 m>kjvIu4^Ĕ2/|L #1zJL}vfo} 3{~$0",~6|f'NpNmTq iHO'z0=-а™}V =֟AGZNj7GwES@$RBOprR0ӏ"k9iRhB\l9id6>uɌŞӊTBhFWC$9p\2.Wq+q0n7w#!N]@VK*@*,#DL^jFA}RNJ]*u[RZi[iW d,2v OI&TZVFWLI$S Ñ4t9,sQKY+ Yll@UvN1 ʾ5[(+!ǒ[/Or5{ɓc[ʟ*D^]X]PРХEa¸9/n+S@z4j劍O(N)~kEM)QTTYiJ_)[%rr*nC_+?PVR1P VpTUlT9rHʧ*ߪʴ*I5\U֪6nPݪGykUS}SU3VRsQ V[&RV۬vJjFMNZQ[NWOQU/V_.RV߬>>~V=_ԟUWƛ@|$>/w'?5t4hjji$i44Z56j8Ə4jkjhihi5c4355k54jnܧyL͛5֔RӲӊ*֪Zաէ[kTk\S[Zu-]ij/.ծ^ݢN{3m G$<:::tt |sYmtQ5ѵu%f.-ӭ={RW z 3ɏ&h.474 22M46-2V1]_M06YnAʂKT.h_н`| \zL!JXB!!|OOxJ0214 4#e̸fff=fv3;bvK;f?jyyy9|м|ߙ?1YYhY[ZxZZdYZ,hha1l1aq5-,--,-,)1G-/Y^/Kم -.Y(\Xp¡^Z[BU+m++Wl"+UU!Vw[=^hc:ša]d͵i3k9MM ߦ͘9k6mll5mmm]lmŶ"ۃm}heghnidǴ[b'awݟvr\zk!A'7:/9K8xT,wr9r;]ǽ/z_~CY#Y3sgeo} _%_e{|~}ߧӾA~~I~]~O____ /o_>@5@/,# $ , . =`I@C@k{Lh/2\geQ䢤Eŋ5.\{آEW][tgϋ,zH>P78*%80-4&?p4p"p*R>|(D JJ bqu ;h"rЍ `U[ <[?? "*5DG7q1A,"67)5C+qs1$4dqHZ':dyHKȺ!BY@r%hDRI@'56H#qYMO$ ٌlMv%GiTr6\M^En!#o!##!NFO~J~AQ)zK )YOYFitP(ݔ15/UCzQT*E6PQF}AU u ]J M erBC;C7 $C߅ʄiمE冱aaaaÆM&컰6nnoo  >~"l':F ##B"hEmg"~P4$FEG2#Mk#7G"AȗRQ*QQ lܣ|HQyQeQQ{~zW֏6vv^4*zUtG#g?qIa,iy*F![;;{6b۱/c*4i h iδZ(-ChighiӞ^Tk._wqb7.ZmӋ,aŸ88888r\V\q?nY\{jt} ݏNGҳ,^CowѿߤDƗů8lLZqBJ/;a[®ф &GDDDĐDZbbbvbQbE &J'&'$$QI)I̤II#IIg.$N)qwI :ɖvɁɱ)Yɬd~rm5ɻG&ONVMJ1INJLIHMٕr4\͔;)HƤ&rSkRWJMHJmG/STӜ҈i)iiieiiiFӾOSN7INHIOLN/N7IOLN?~%Nt jFTFNFa/ez/2,ZX\WD.-J)*-+uVl뒐%K2,.9KKv";]ήaf{߰baM=)1IEˊۋ7*>V|J⟊+st8A%eFF0k?9u׍ &s3\rsǹr~˽7WDdAMSwIpIxI\IQIs撡%%S%WJ)yXURĥK/M[YZtҖ-\zv<{'/Gxj^ o'o?owwcs;߀oq4>_ί7;IM?|E [P+X#l|.JpKOP_" "vKu#BRRRRRr)tiiYi}i_ݥåK?/Vz'oKU4ˌˬʼˈee J*Z֕m,*_vTٍeZ&M,V'e**++[+T8_q⧊/*+u*+m**ʔJfeUʑ3*oWTyJ****RUx**j}նѪUSUWݫ*jjjjjjAzMǪT^}V ˌ9.s_hYe8ʗ-_fen.ѫ!Ը֤jմlSsTͧ5\k͟5jk6yEښյݵjj=Y{YZ뺌:^]u]W]ݮuSunݭETJm{}`}X`[tr+^~sj . ^ ZCjaEC[Æ {ipI+~|7lMlZ^öí#ޑQXޱc{hwցXq^&aM5ִپfk]Wkhtvtvuttvvtvh}5;Y?o^ϩϯ////oi_M_G޾ɾS}]wI߻> 7l@ې!oÒ u7 lt oxAuF66r6l\q='7^g7l ٔxSͦM7MmnT?ߤߢ߶߹߷ן_տwK?ٯpf͔ʹٛlnܻyl͟lf͏7٬E}-v[зTl߲{[m{V[]lؚrk['zq7[oo}w[~%: \9MimI 6mxmme۫mڃуiO 4߃ CCC!ڐ`biwhCnz6$]kvۣ/޾dewnKۿWev#nGގ;vŎW;Lv ٙs};w͑#oFGG-GF=FFGGG٣+FF׎n=1zvF}=<3f4f514Fcqj6m0ؽc2:D;~MO؞?vDۉm'v8qď'<|2$䊓-'ןu'ϟ|sR)SAhjOu?é?OI=ti5|N+11"\]xضlC{6=d9O?h|;hX;8kܳ87N[x L on!Oʧm| -tt!G~u]׍! !f?AGe*Jwj| H( Ơ "_mjhsA6&c粦  ;?Jl&#T%4c▍ ! _NT% siO:țUN|bYܪXNѺCb[<7D?2!j pLoa @l3Je@ Lӂ L~=)QSy2qH"2ŸJVAdg"a>w1Y'Z)Р-YB_\G{5PķF!)Jg ŧ+y<; U yϪ=IA[2l(ϴ% @֭IE uA*|A3]6;(3Җ|^R\9PVBHM t2밽5HV-V H)#R.QӠT2u/bX֌ -empW"pV_HR'0I7C1Ϊ0p-2U, lz]-N*F,6k`%O{OOq xj>m>m垎Aq/է `2dv R3o{}Vg iܰ9ߢyҹ_'{/<ǒv1?3"JBFw,AK2UBUZaX`&EO,Q~@Yusq t?VqR zR$Dd!K<Jm:RRtc|}]yvI{z|:xCgB ]LUa~%4IJa&$=M->VC:V}=X#]k:)"] @3ǖD%OƱ~麇5:腐Q6Q v9t'=mŰl/aЉD 2h6<{L nsLIzQenWկ#>dz'Lڥ! VLr)K: `c>6n:_R8ͼWĺt拈Ek*'N0 `=͂2> ;x`M P:_АF E݀-x:簹u+uf>a ˌ66=ذ[ ##^JPA  Q!' dNgpE6A2cva9m2 kXa2u_Fc d`dk 2 VԠ[*~BoRuC*[3S2 c—._<_JL\Svs6}DΫU.gfKg3-Y܃'r.Xݜz5|< =*F@G'~]bG4Ԅ],d(J( uqtR(?,fNm(9xqpb4֫9%iCd]OQrڀ#1Eӑ+a蒥ɳ8̋Nm–ovѰ%Ao*a@ K,kwAZ#((Nm4 7(Naꃷ~ӡ]_n/{ .T/@yLb$+Y=DJQ>oS}6E|zA^OL8( QIN8( 1sS/%Vd-uxg;RaӖh," ZY+3"K.UCΆt]d8ȧ{f3GKZ2D9Pohd_\Ӥ5!3d3JZoOϰ#3lx<vVڶ}̊/?zJΰZSK[\p0{~K6B7jXj*UU@e:?0LB62/Hhlœ0c6K'% Bo3PR!vazK& WRF" WQ>?;U>"$u~c8VB/^/gxfrpu;}$W61d U0nc҈< @s&M\g%IT(V@jP.+?ߛ6bu5~#PXy%X3_P#6-ųsf0g62f ٌ8GƎG?hnۏjB5-"2<_yon0*x D3J[8R,٘fr+,`M)ST 1 ts r9G,Q>]p+ˍzt|=IrKl[@ Mt9fЙ\?Ykm{Ypqf7` RKLE_{ ^EJ7VXݒl0鋨RItq}S"7ش o-?~߅[KJe+8er]Yͷ݆54szߚMaxx1Sױ^ g 짼4&28MV8ȆtB3D.a.7ǦjbQ6sxUtgfMay(ʹDLyaQ s(| N8TT Rlaj .AJ9"j2F XnQ]@%GL^b"b(A q`By(F}f*5gRH|K{>=Jxe/s(>Vr[YT7@A4x9oj=E|ġnv%/g2N)\iUѢu^:l,%KCݢr7UEهh:JkS*eTD=)HJ$RRkú+NgắCEPj.('<]1xE7WjP)mBJ48=!)Db0v!u/9/ZڐT3@bk*3,R*GEZSz\ M͛H`B4CX$Ạ6v݈V`2Ax]XE^u~v Kw6kZ\/E<ѱH_>(M^*T@qK)Y7gl8(Hqd5<`"?v,w_ #/Te<)zˢY8N b/ iߤ cԓ6>iwqu8e߲6t͍ V7鿾blblYl&SRǥt+QQbaTO, 3Zj'}N4A\qNro[m06:m_]\z@; D=g= "^I#`a\ϐF`CԝkWqT߭৕vU6ši*پ4Vl_IHIJ JU ѐPDA Q?TT*!xfwv_p'ڹy̛73}6t:-})8:S;]u"qٜi _}(oϨ~粡裇8Qj@m"wgr"K[?>??_U #Pfʃ<ZIDHTOί2w;= EIpڕ: )X50Nݧ9&3ϫ J ƥ`CMMcbfH0EG8j]&/~RO\WZ945IR:6AHII =&IK^ UHs0P6M=A߼oFэq%Q&vO?؂*BX YW+L PRW"dGkdu 8MR;{exu擃'2#>SsPsPGrп Ok(BMF1Gc;uܥ>}?>W<&ZZIM9-\SOuu{3-*֟x`x=_Wcs(y(#Sj3;}aZr~Ԙ%w}Pc %r6T2/o[p]h`>qMG"J&c1A|w9#XpBlm!.U]|oaS8nmYA_Bfo`uii*N#\wz&d'3`f;n-y\/&C.}]_9~/ al%[1,s4U8jP^]ۛU4t:rwѽ.7TI\c)`k|Ɏu i_eWݵT0aJY2iN(|CS00O&7Z!"# D}ȃ]EFJ uI~C R?Wg=;%C.&-v.bc);NqS vbaJ" َ^&on Z|dʲxy;?+ߺr?2aJ4&Fw{xd35n/Idy*|ȘfD (}}3)C1ݘ⺫PφS{v}[Xuspgvwk7H氱C ˧R6o\28BWL}hQC_Y O6ГN^`t2J`?AM9:ҝ0o}2q`tI5U}Ld' в=J9Ί.y&3j)n;L'. lYfLࡏ@7c4NY$zsm'ؚz׶ҿa? 5L)GW|;v7Qɟ!u3:ðz%ﶌ#8=qB3,^4@-̎3u?}ߴ1Cn|?ܩ.e6MY l,Y3-mƹؔAâ@عsvZ#\ ;}E*9u5ߛSMqhsZeZ2McvxmU|#L^{'CPbbZ zE m~kMj / bEpS":P&E&i院_h]s }=iŤFt04Acˡ/β>WUQ3f:Qoo!C-3i׷v "ӟ?HUzV5>%$|’fTY%ca{9WLӭtәTϚZF5ėWdu_sg`x7,a4{^d6=SyGo4T!q] yO;ޠoYm! ՛AR̲;]d<$Bv (1]xMMuy;lsέL(ßMF rX飴6׮clzqƛX&s] r5Gt7i eL OL>2XѱeVr!n߫ewOq8úig2!tYc96EU~2uA\3Z?hL- 0t7&ym,D&ӄʯv[K棤df+PT]Y1+ֆo}Vi*fG7a~e=,$Zc}zd;j1&@}ZhV0@f hZ^xfM B һd->3IAMkצzKڠ5 "N#fӝVhG/PK =aDSFX.EXE\ pTU_d "5 1}VJ8[Z.ZhҲ6H&nKu)~)*bYb_ KRY3RloW^*W-;bF,s9{OTy-S>V1y3uo|Dtʜ']'ROnB\{wni)=CļGBt..wT\R.t6Rw{7#5ͩ9q& sV 5XROr6T=eʢU򰴈VǼ3d! P+RoWOq2Z?j)?ըf:o,k=J%+/]?4Fe)GF̲~}oAr}ix7wĊdiD˿D(z[F51)[%MFt*F/8)?(z-ڦf>lf<gc6 qP^MAyh3rLژ^d #QŒB֜exFJPTLYlfa369!F۬ sHEjNtWD i6 FZmjZqQG B;A""@_DQ^9Ǘj]Ѿ3Na3 k\<ű<ƌd%}+=vdpaCOXA~XfS⛰1T8Fh]{P@'IҔ?6~OL%(F&`향Vw*!4!(FiBwԖ3p2適 (a3ĂAADwUw$Q}ز3uSqȱkAfC (bYR !Ґa@'-!%@OPOH?yQeͧ@-A|:йos{>p/M7$Gtto B"0+(N#BѾ0W2h/ ׅ7~VY RQ:K0eɻjEq\ [$p*Np*݂L&l* c ?ҷyE-Lvm&/9Ú&VɎDݤ}ëݮiGH*o={7[AѕP]4}(yb>ׇ \>92];uŸ}| {-/FD}cbd1_iρ` DR^^k)fGFIUr6n>K!}.Q_SꎴhANf*U!Zq`V1_H{&JAs6^0VBGٳAzUϹn\I](QgGH&.lpQp8Ap6xp6Ybgt0rτ>=;6 >_ 1CnKH}9p톳S)7[LC;egׁGnjc k@vx@n S)@ZL%V ;ʁ(RdvsjO~ϒ$g7ԼSzHKwb qlȭ>%QdwĜ 0`B'D+T b? je@eo(u{,?T{?5/dfEj"UA_c3j[9ݶbH<#%xrnR cjyu%ioRYbR&6S6t*5+: $"A摚^pJ䥙2\V}Ljd @@ H ;zL6*u^f 䒔";\fGlm)*'D?AYi \}]h+"J7AKpv;$p&>.AL4.$Hޞx l, c(Wxcqx7$S"m5뚆T^7 %Kp:Ĺb4& ¦Vj 4[]o|t7c|rdaY&YKe䟩H;9̅z)"љl*;T5r"L۳83<3cfq 0y$sZ8h\3U3hz2X{)L#.@!CElA C\1\uxA:8; mYv5dNvV968bR=siŠqA:Bq|Cr*ET:58 ,Cف&ܞg{ >DAmHba>Eu7a.` IZg \34 vC  fssC'<,TpkYd?(H^.ǖ}|޴s7JCd`[r=;F>B z$yH8G^ 9rMLMW3 ^N1Ɩ$ڠQӏ5egp-ZvO2NL؈PYHO$ߺX-'QvEҜCM oW B(er|GS(k}4t}4Rl'NnTŅ ZE`08{ZۑJgiuqj|2D;9:VHA{Lj_4M騝ZA$<WLPѨڙo8|ke9qc 6lf4֊PKdF)8R9 H>8Fb qu' b VIǣvAFyap= Uf_HU!x:‹!kNI?- 72GV , ;de9D-1)7`V',vB޻8m}CeQ6[qr@_'n5>+jӒ@!Մc&IJaJ~2akc1Goví90*wrO2/2iaN|8d86_?[ûhK,8)LoVĤJ}*0S[7源\;#-WP)TZϟfcr]j2Z|CY@Zr[rxzIyƳAbqk^\2By(yבj#!軒kV_AXN?e+ӓ rFv9.wIXᠶOEgqxqxZ.؃Zy 4D+yh^x櫄‡7uFADCJ$mc}aqPb_{CP"jK2q[Qes(G4RpoHmy![lw,5Z %2{,o[ޮKX1/;:389d 9lxY?N""< ߟE~'g 1k?΢ad^u76lG}62+zafˈi{FM_7M"0 ?=qgMOn=On=-DbA! !]k:/s4?x1>z4ook,o2vM{V^z?)u[$ K-[ t E7{'?ᕿ2&i{6Mra6AjŒ]/GPPked9|[ݾn|v{YfK-^U~[VɷYoh;޹@GUy:<!!00Qu\ Yta` G[0^N90,f;B`C٘ ˤCt]|1խ{o?#& #㫪[Vd7h~x Xqo!Wx%߃]Cы[U٪=E}}gXzpvOz^h#zvuzYsXykǭ=F#tm{٫RWEGܚW%k.i^`ҝf;ͽ@gu[z[;;| xD{!}ՒKtATZjmӔcSo'93CTR6JO>y|O{k?c:G*;de ;'o5|>y~Ňz55~aٙ\cr 砸R8zȃ#O+Z .ׁ Vu$]V_Nmܤ=} V8+.b)iqo<%!_☸HM]Ⲹџ_)q$KI2%xm0ْ܋Z3r[ǰ+E"msПF8iǜ5k#0{6TjZ} uX[庚~O'r i&1!iAGq ?IWRWJGQ~3ϧ>}}]=mvJqO3y|g(Qr|sR(jSpƮ(SAe6gg ם1 9XJԳb|ڷҽ'b*!4re^c!EpE]T{ಏ62Y?.VNCRFssNwKk=Ʃ~|#i/cGZ":qve.Nc{N_kVݧϟ\T0\Tr|QZn6u>qe=nq-ūԙJzcx~Im4<`ޖ̏3&eۯh mn /򃑾EEn6ődpיNGjOd%ܡY.sv*NHwD ʿ24ɈT?_C0~ᶯ3UJZCwv O M#>YIjEĽ D̉y$~ CrLcxِ/5SbRӽ.xE$sl&nwV 0vϣ\@J jxj$}kH.;Պ#xe.gFѴN&6nj־RaY[5Dr|}m+ڟVۗ++2jV-ß$5BR}\O!%)bĵTQVV-V,>$Xw\Hq*(_0CZPlLOT۬:1+]/ή\}y:BICLd+"뛨cC U«SnH3ۜȕ>,QVE)g w'ܳ1YG&3|iCϞqė0f$.'ܫPeMg&JtYvN4FEv+a>}nxY:K99=@cCOnkhSDMmVaj;>Ysz[#{VDT\yI\r)aA#Dz`RcG/7VMfVh^q`<5g4gќ&g)A H3+ƫ1fSkV"' ZSFf-<[$`Iޠ~wB4);ʺ^5'ӧDZg*AtV,,YeQe#0F\ V90zé9(2SsUU/HT%[)clq +Sm[#x93f9Mf}ה>% sX`Y?VY|!xĐxC8e*dSxd kьb1F@X `l n.u삟1د+^o1 /C̆zg}WW^ '|u¬?lJ{IVd"~۳ 9 O\,J + !FN5H[X :ؗΌ4ì!6Lt5^byiն%Ƴρg\`񜧵A3H19iA<2D7ld2XM+6{ON7BjB!)#cZ7K#8>+$R~~]r@=b#6y=]IV5{sMKTnyS4?xp9~򞀼5W)xk';q}m9ۢQ;!߭&$u[E|R|<6C'REN1Š]h#wk\ԸjqU^LP3{N&$ԸCW74{̢Ӹ6 ˵ `и4KָRJۏj9e.4n?j@iܑ5n/y.{q!ީq_&4-Sh\sbL_4V*κz<6ڰKjC)lӆRNM≾&䂇%+h;\JPAEIﬠ'Do20`b>wuYfYW ^MIQ8ue.El@](6κՕ ClA=>Ġ )y}Besp.(' ^ X"-k}k9*1D/P?fpf7 |֔mir_ Hr>(|,{}a@?¬pBz]?Εb²VJZi!Lf6 l,~󪱫ar2.92xLD3a{ d,G;+C/W%aG,eCq$) rsL ت.t3׿"%+u8\F"sRorCRrBҥre"a#Sʑѕr0?òzgA")H"u(.C С..pa0{Uz;s8zWlO~jf*'*Wa_SfS4R'?T)'*ݨoe$rM|7@tlvPpҩS.wPӱp{gO;_ կ Rr 2P>a*lЫp+iCBBH[´0MpiF&i 7»Lzn,jWHy*3B> ˏwFzbkt,!t2W秃O'p~[= Qg;ϾlHr!4BuްZ)]If)I [Z#M?Lfmq,ְ-|tG臩?7o gD3Јv'.fs7尶!aCS1#1<tʄQck>eY=U1݋81Z[m~wbyrJ}gmu[ON,jEvf۸HX[NNbYx&ZO:jg_n}TiT bkLSfߢq6FQDmM ?MsPGdﱞ[ #=D"=Y]r+U3T\W'[{v RD3ⴞr8k#u3=ϋd+r0Ӌ:u=1Jrz\-z!IQkFWs6@ךWf0 mu^giFYfVvMϧZ?CC*AcivX ݃tBp:Wr\3E`j IA>HՐ>n_MWA%EIszTL9e)ɺ ub&̋PGDzoPOy7YBw*N]tF0!<;WF[[1&G~3Lamp7:MHkCr~`@ȿ Enϐ hf"\yfG^U.W\]pXK[\A6u)ڒN(9Ws(WǦ #V`5x0L֑0 L?ST0 L3L0X6^ۀ ;_!#\i&r/ZP+A!O >sfEYg+xqY XЕ``%xYGA 8>fpAG_pk&$ ~ qQN#h_+@q0>*A 8>-0| `˙G9p\cWv#!NH`.a, u{IP>@'샼T0 g@x 8%ځKpYրMSA;# `x\`1@1ՠg@M $LSO8@)x@ tlJp OlS`x$/Xց}?o\@W8W@L2%` 8 {)* 00Cp$ 9 A2G|lXց &LB+$XT.E! {GlJ2j=zX{ybe[]Q*h}DZjE9D= ~/>23y|_{=t!X0L~ ^v?;c/U: o@D `% v,7QV~((ρ`-xT\ $1~s`%<Чy |>KP\0h %`"F lS @=e"D`X j pDaxBX^O(8~7Dݏ9`-8<' F`I`Ⱥi`.X" &j*x|jpsp a >GFk `?hsja &?1T`߃K@ { x,0,cOPKPNpQ`8ЃD`A6(s|.P k@8 z#~~1h0P ^\#1HIAlA)(4X>=~p1HQa l0 Pg|1J  ~σ߂ bR 8x T?`8T P`RmP@Y`*(O??6 ML GANPւA=A 4/wn~ge?5ӠwGp(Co`//| pg 4Fp "s `(-$89:}<&mUpa3,6qA0Ow1gn?JX փ:pts`ہI`X >@-7/. )/`# > (xm&@L UpCY t}',(N $r[ /Q{pD?Ly`!;X`- ߀/ lP <xX ;A\L ]b /~p1 FI < ;x|¸ '_R @]:xO58 P.8m~} @v X@x | >@#8~?C^P3XcE1xT%`pw!u 9j& :` z. | @P@A2 88z@(0MPI/@7OI=P[ X0+q80d`>X @R@(ς|g/P&y^?g0 L>/W@' @@ 'Ӏ/ ցu?ypG@* @e`xs7@K'X^[1~Ҏ6RA9x<*,o/@'(_ 0 ISP6OupRx,?AphW]Q` x| Pa~2`x|jQp\^X#D ~6`'@'q"`X X'~7dw+J?WN@,x%Y l~`ԃ#$I0 q~L4+X6M ߂ j-0I/m|p W @  ` xd`%1gY V;~OA; dX&?s@!(Ãj :;ph āC~`1X ^sІ~{8~" L/;kp_E0Lk+?@+8 ~אo8K?W|澎\ - x|v@ <2d %~N6|:g›(g8x@fe~&lP `| 1oOo`1x,?6{. To@& A9x<x`y3p~d@w|>K?-[?Q-8?`(OY{Yl0,Ob"`ApGp0z 3{-g` `o2 <@ m $T0R> w@v!0x ;!p t_gD? ?;A8W <~F~0)`@ |Zƀ*8~3 z0AlP l{ട~ ߁ S\0XA~O~C4 ߉Lp`)Ԁz5Bw<9 Nv?@$XqG~pIFz<gh@?A1W[}𩟃(~Kj |\7誡'd`~7g.`X^   ~#h?`x`h~&GSp~Qԣ} $ J > ~ [# F?  C|@0Y>mP܀8 fspo.[ǫŅd,oN+4guP6/ b_a8M۸4jnhp2 RW΅Eu,Sm'4%]h q>}6Olk~T*:GZ cVԝ`~c?eq+‡\1/Ra?"荗odZhضPPRmGf2Šơf>G&vA'S4.60งkzyaJ4 `p&-6 dˡm z9iϖ'p,/5 ?{{.v$klhGf]Ġxb>"" ^N W[i=Wq';k?Vh>e_ML95 Ys;Vp>JΙm<=Slp&zܹpJSO HkE3ѻ\)vDׄB`<#BfȻy"={ڻQrF[,rh!!ozZ"a=vt6bÝC2.vqݡrk3 ̹C21bXM-SO~Y RZgfT7O'ϣҺ ;PSwݞ7r6b,vѦ%Ķ"sΝ;-Yn;"sUDʬh@nAKf0+ZP#9ӠGk6 M紇.>'wDC AnyFVozf,3)z?aذsvs2 h^pe-m8dw? Y*ɿBLX.e{-BSiA. .=o?Y*M.:rX:YکpvmqxE^b@fdS17"e1c7cY/+5hK/$_peE5˼h}C UڧM(]5Bd ÝJO.!o+ҳ:/e iljJZ4CE짶tw%=~N:/T].~"ػe߳B{q7|{7E 7)v\ׯvܬw\;.];DgT]n֖i{eK{Nf[ٻq?ϋsK=N쓼:~/0MkewR5o5~sҘ'tI/ GW&}g+I^/|˃*yaR9G&Ӛ#m礽N~W'5v{oڃ /L*iX`IX]ְ6#ڤ?|I[/%-?d}]"#u `^yCZ]I^@`lQ W6rhW_(ù Z9ϵO~09S-. jan0W lGLAy='K \QTX/#=m=GףԎBVk9 5z>Q2|a&'`΅j8Z/ﺁz![VTYٴlvl빼tO4SZVOYA+atEߓ.)U'r*'0MZS c5 aX.bT'c,SM{J ?&!}V5@;uJl`w{J6vΐmzrO|v z z\#OHFQ9ØisI.׌m6+{?EVAY.c&[O@WbP)>_Lk6Zlb{جY_ܷ!aO@>d^ԕ#adb62Y߷9G8fҥfVdL8[a6g2!AŚ ^k_2tUnl~W>mIlqfcy1UurIP6G5cTWBv!^Ư6C̎S1#soˆoN9ƳOU&%%fn0HuXV6U^*CZ;{R=}#9 -b 35zm7WQcޖj)Oo:㯥djC&g76& $ZcMVQw&G.4Ji'o!۔-.dUzsK0Fa˙-Jf,{hw@޹UlEcLEAv5µ(9ڣej=_4#VOۛ]{hkO ;OOJ7jzFi3 E8se> ~Y'Vʩ!Gi?C(B[+i%N_ɦt\$:fwPwKm˦}A)l_˥c2~yp"/עlyמqYwq,/3;=pUA;v\InSMjxSSojwrelmwOt T*㖌(:`dż| Ix_@VĔ_w?//vY iS9l);yEBR+9lnq'vvaw;+vxn%j>l?vAW0U;xFj[Fsl]R boQ"FAպ&6Y%ԋJabogQ^gv 2..%E卡zq֩L 0]چ`:u`lեXeҢy.r+!O}@Ҟ:./'架.b!j]Lj>`8IL3ܩ O[yBEjT?wcп ʃo9`Y|T*ޣRщd##Jާ,0?RvOdf˫Yk(dwpZf=)Jb_ԭ ԫ5aDQ؎ Y v jokGc;-MbۢM^n~~ns]:xnoA^Ws^JtȎr%3vF]X#F-y<1e1Tl5ތ Qbx+ظQwj؃zzMYF]ߧ?"m.,_?ҩ?&=|6,ģ!BPa!CdGVAY¿Wdށrwrk}'=s37ux nĎy 5+p3}.1l4Ѹtqkxt//Zk76?}xk`.m J2~cz[>WqSWc˄M\qqA&x@yU}1Hμ~+ՅB$yMfւ #cG̷˼X쯛Y jP}-_jYgBϤ԰_!g6EܸrvFG2޺?˷f]![ЏNkpK[KD_EI++N MEs<©W ]+QvmNԬn_OuΖuw !ZrdiD Tu rg51|Q z<[IgxԺ߾ȻE JᡜDzI-Vg1_}4}- U SNÈ0u)U~5ȑ*#ZI#ijkhۣO-` ݯ0lƚHynPrJHK {K F_)"zCOUnoI8u w^oY}rw⭴Lӻ\vEJe,ZZ2]=[$[W͢iqf9~vcY-}r,ޤUOUG " auw> S {{.Rs"׺Į#^4ZRc AWsq+~S{,?hErjbpI֟10WO.8MBM!Z?}=x-l)P*Vlhdelb캽6F|jQG]e֩vN;iiMmɼ&0G-LS'y$qѠ\Usƾ붟a 8mUmڅ.2ob{z22/Ș$D sBX~If?YYyy߿-ττß mW]9GdWNa?*. 1C?ʋ\>]b~MSO2Agk9y0rzDkk֖lKꛞC0ȴ702mo=z7Bs;Sx""|<|2| [z~OQ|p"1bla1Cɞ֞=? >3xH.\+ݰY9= Y킈<)\==3*9 p P?m$kJKV4\. DOizd$A <_IpfwnEb!|_`RYt8)U-a ./$P?g mf;V-9+UC2)jbB, dTZOXG{I{Ҧ)yU9/O 6h]H&2wLHy1{ӾxL{W]ӝ_d\pݲug{~Q\ u3=PO0Liaߔi0چ+sיp&&̄GTM0 Bsz; DVj s/; ibp7M~ON7^s~<\aϽ~UIwڣ4PnIbB0NUw7ɸbDuS}dk`*[6 ;8W=qۢeZHŢՑ8K1bQYȸA_d?U GcܱP/]U=YaVxdqZ^HZ܃pz/b{MsPsskH xkJw{PԣlӷK &FJ[TM>.RNUFBRH8Hqvd_T ܸoKτ^gΖ8YQqvԖܝ gzB3f&4uzDX~j1MPpRneپ'J࠮S4 r5;a*sGƇ T'4jm 2 &dL8gk5Gl l ﲟ˝OVR[ۄ#r ,}D Cٹu H^qYWtd\E2LrBKk6\;]ۭ'~/ ,<$!=I[GF/NΤǴJi`c{^fD3Kǯq_EZ?#-T/e0 a\Ms Ǯm11[X&wRA &tQQ ´lU[Rԧ{ցp`sr/$¸[V&'[>FY5mKϬ#ݩD|>%i!Znݔ/P;XZMpN^2\,h9_ƕʖ֯!PWz vަ9eDS=F?t[ԴCS$?kڹMIW*`5NNw>B3E e-Z: zĕTh܃P? 'kC{0+Gfk㶋6gոK\ 2l4FVUHwO Il/dhY"r2ZmF4WˑN賞}EjqNܛ'~x7CSBe=+1z(^%+$jFFNR,6f.i卾ٻ^tQk1 ]\:nߊ~O?Mto_A͇ R-:Kv mƆrZњ=Rr0i{s^Ǎi?^I./jhx.]xw0O߼;HRý1Y &~U/̸$ GbPm>20k*3'ڂ RYc ʷs%jZZj,\{R' ?.c[Bt\8jb5s-+F[8 uU˒/ L|/uOSbQٹDi;a9yj#(%OjږΖNBl=N>8[SStc0Cau` f,f_->j._|Jl|\#DPdʃ0TuI?l ElT " 횗ukuuau_uEu]jGPwU袆ǽ7\䯿V(~z) ʫ0Kī=3$ H{{PsJaN쎛. GzO W"zJ/SeNЫh̛ fM-f݂x%HN.s6tv)+jqʺiuTeXU_M-TEX:ƞ.0Q0! PdN-,`e/&ma`v]#ҧ;``a]Ov(c킇˪pW[ GGKGQ0UtOī{ihhe-itI cCgG(?L .h <4CT (im LLt C[ uԺ{DCƩ O[{~U'N̯{:VT+4TVBC;µb$7qc!똣l.gZs"d9jUH*ܕXSd8y[-AljUϪ2ϲԛ|ʣV4x'z老 +W}+?ejuSKkC޼,Xr70pN ÅKe%nLYa9*9wiO2/K@p$^B.a^/ߥ=循3 Mz ;Hz]iB{ wfHf̾@HzP%+ $o{@eEyi "e.IC.\]*A@2Cn\X{VH. KFS療T ! O0$\fߢ@SL-n#E1?13ڹB/l={B[;+Z` 5P Q{W3QwjHeTђ|RᾗI/]F~tK!5>z@蟻#GgȥykQY娽j6J,գUK]|N:E/qY28ɛĎZS&3*o$u($?Y(ֲ9( Q"g:Way[hyZ' uX׬vIU#?qx]B1Q0VUhrm"8F|J1uň 5zeaMu\Up ׬ !עG^wT[f!b3)v,k3p56Ůfu*S&/+hr"[?EMRUtn7&To~$JA hNd##F>g_3j~Ii<'A J>A\|GwD; y&00!uJw;[H+ubI+cn/+qYjC[&qP7ۆtYjoDkwF!k - Qޖ.{V2NuYj y[*$f0+<%M ϟF$yZ%VUAz\t%bTQ35Z$92XNA"e({eNjA>E&pp*rc5ZL˂8`AŐf Q3;AGWyER q;kҏ<[].6ُ]t/.ʣ]tߘʑ%R"Ѥj%&AV ש+Tj>E!!!/ȡ?aa>[z!%2ԸJ?!r)OHCgh%3 {'k1LԳ MYiߑ&WW2;^Ad#y5U 2eh*Ia* ÿR@fLET$vO{{^fqFO\>>6Q2E^QԗoM,~o5/!I}kJ<@r~ޤ$iϹ=U&Gj,UH2=FN<֩"A8p2RZ ˧- LaG$ #r"M5#y W]?EHP1!^?cLSi8)zd~IqPh~HL)*A۹Oʃ.12ИcH#H4˽g6{2DTQ E0QB:še;NCuYx%zVIt)y;|u]XFt$/LUN_DR2Mړ9 DYBܾa!~z=]=mydU h|:Vƞ6(έR .i^,Nl,[$ɂzJ٤Kk0OlP$V]53(OOS:nL~\건<[&VAM#S,x^oc4C7$5X0c{T|Nmh|#Se&?xId+ me]PU᭔{C+=^]D<>%l-c#),nd"$\0)a ^/PLX e}ai`YtޤP㷄69Oug-k#IFv9*82L_i_Ȗ 'n0Od/4T,5]QLB'I<%ߥ-`ؕJ\F%:˂zn?K>Wx," ª}p",l073`Nd2 ϔ{^2*u(RSdf:hEGaBb3cR"^.Mf&E.Æ YC_TqJAh$ug#1h#?c{, oK|W˽c|W7 w|tȘ;j̭tU61ӆէf/C[ kJ\ (Yb/7TC]t-=kU]&a9ҖkD+:S蜎+Q1&H(MUMC:&q-Pr[ު.LZ K^SZ/#\ऐL*[{:=xEнv*ߊJqD086B&Z#k2QQ/Dn&dQoAri uzӰ%´id_ fx2ɻtݿz&KF}l(FR= Qȇ ,; $jo ]FJIKzo]I^=,`Qi4ovo_T@S'JG7x1n{9܀FS~K=Uz"]U5)Gפ:r\GБfOF,̋ _c+04FA.ľalpb0 ? .ǙDFD[v4GÊL}|npި|Gp~H^N&PkyoD2QþVc=,2/J_?hr`YVȀ05KBbqK}6lI}UJ}o&8X? EJ!Gn٥#/K "Vc#Gn XrFnNp,dEv†Vv;U崡gحT#_7\P00GfU{Y|cP"V,n"KfJ va8%o1PQ$͆Ԝ~Eq AoGFwWQGb E;l}eC '%]ժ3=Ĭz==<VZOo\I<\T4 .K'X/0JuGE:ȿCƍ3쏄0}yаj55Md||hA!TZ-D`-BԱxiCX5ɦ 5 }  gϦOӴ|u1t#c;GHikcE-DJ\馴GQ4M=;/2iw; Δ6{1{ R"h7%_Ǻcɱ!Mrkɧ#de~î뇼|-.ZF %4mCmC ˻T.  6H࠽3 dYc`Ň>?Ҟֶ,Co7]d'|J& Yh%7䨊N~#&`& 'rZF&!vqpzMAyҘwƞTc`X;19C%GھV-BՇvC^ ?X:s~Tũi*Ҧ\lO|D6O' JZi9ش?B86&E(V8TRZ%gs Y@%/&wI_w#^ + sIc 5[qpf\tSpn13W)ʈqqTUMBw4paF:UPKb9yMz;S__enqiM\Yw[JdRtfh?Nm6R號x=蝮o'ʡ/JIs˼P3ud@IK?.y€0^#Ce{JKyEH޿ЗufsL+c8+n܎⏙,w0?)Ju_qki)"^ER"'twU@b<\ĺ%>.g/6UzdNҟnQ%秵W)?'{o 9ѿ];B8:}-xMywdQ])+OIu/R tc#l<,[^Q`&[dod8?tkQޚj%wL6yV_g'I ]3W^II:! qo!&+h[8jmIz\Z_!ioO6BFەN?[D`v?SydZ_ƤƷmsjNE7P7ڎ٪| ߩqrOU4ѓk1"WʕoA-bXٸKqIPS7-y~v '˪aIzHݴ;[ӊI7Mҩ.52NmmwUhe<\r=:zH:8S.0VE0Q2hqhZ[FǛRPi[RDmltӍ!l#jkR,x.&k ?SD~{6E /d/ LƭS4rRr|d-SAJdT;"5H޽s1̤xSg׺L[BsGׄn;pl2:NJ1yU t"9fy S=n>7DޞR4ؒGzJ|Ѽ G]q6(2D^O6n}ȸ}qkqt> ڞnܖj$o;tndmNW&Ke4ӦlҍK.-xiM>=%]iATX 6Z2#;VlK5>@|x=cn&}?9}T:kMw.|9mcf#MmqFJD_|ndYCk ݮ-2cy`/|2IU*jU%=q%{w';`7<:d80nG̱Jz=zkk ԯ q,FkZݯ]R"燛4V\9'>^Y?oV)^;Լ|4*L c8sqt7xid#3ԅQ8\DVQ'>M7 -sq1*Յ2 gTx%mFYnC1}dFlfܤQYS7m?W+xUr.>g,򂂼·S4(<wO]J'4b 1ɖ&ρk28xcc6$} 譶9[Mz m!Ml lIlnr#SɮM@ߴR7XIɷ}N4x֩_(u/J^ԗ н!}ZOsF&W(XghaT/bӇ[5ct6&9]u3٥8A=ltmQP@)d❙slC?*~eʾӼ2=[@Uu.>mTp  3ɣ5yթTtPz(o| rm FOQn\Qt!9*sv?X@2a$Wܛ|&3i)eF*~vYH-7ը|6G0.Y,Z.WAʹFpQ36ϩz]E Y.TVR$ FuaU;~UkWB. :Sl*K}tw6&)/%MB%9Fڼ}p1֟@S%]ْ`1RZyMS"6vr֑tt@=$SS >V3cD]"R$nvڃ4Q/2VFkkn(ʠtVsh*xdAIwՕZA"VWøg0S׵dlt'6Fx&FUѾ7ev|%– #tFnAߝbwfW鞈/{1'ㅦm3_agǗ T責nKQ/ֶX]ۯ/WVre˒Z~eJuȕ~xJrԅnkA /^lUיWl1.bZ:5^`-"SX (ܧ(JJ&ɜɘiraq %\  aBncv\5rYl=4MS06h1JH9+Tms[d_#WeX?AH(bK\uZNMBNT]؝_0_F1Ffj*CX>, bY L(mWC"segћ_tNi<\5o?UӂftNUŖ% 3 "s;k\{/8CK "mo; ):)ӖT,:S@UÞP>(giē*T+T3^/v)!E{f:eY+M9jʹ2Wf< N^iF<`Hk+ 4 GVh0m1g#Gnn_ξx9As+wBM Q6!;RP8K \O:r­XVT wc΄1FOw%_r-pmi0+ӕ\@tM~)Vx…JuZ%˙lKC]- e8MPm#4ٵHBJTaz~w{h^/tцkRA†ڑ6Apa_@ ƾMC RVӺh\]j&͍5/ݖWZ?&{[;.L{;fu&-O폯M5$w7XUS'm|6Y3M@d352s;DB|W^EvoyV:D8l.Ȉ ; kE r+ SFXF6s%ZM M:옹4q&Aj< plԶsڬai+u|`b\)wTr9u2ygG&a̡?O\Z%5?N3{PtQ \4HqJݛr8:z`BN!3)q :CF1-~{~{0m`fb]//sbC=gGւUGik@s˝98)` Mi qQ&gV;-_-uU{,&L4c sɱ R< H󄪇-m4pZtkyᰫ`W T4X6ǐn! {l5v8砞f`fcXTb6#xfC=at#XF?G 7^^͐#v[fSl 7J}SL !cBO;U35h?0ʞ9hROTG _J'V)|iVR pjZOtwӥ|YzG8=Y1 yzGʉx_ 2:"qgo敪%F(%{vx5xUCF G^6ui Sv<40Lɝ$QJ\QB~J yKQL?K61ֱEB3RM=5 ?LFA5Ɗ39,j(iFtF(S  6>3t9MӥpA\HHבnW{G$OSZ6ȳŰ,EF&#{Y3و@kBOBWToIIqy1i;S$H?+uV>Mo% Z+rӐMtv֎fv7 w`$2^roCf1{POd*oq!O% 2U*cD:&s3߲bTdXFj q"8٧㚫&tQ,:G|*~a\UU{{b*R27oDg=0p`@cmHABd.ae[zSɱC)K vHvs#BٔnGJK*i9E5t>득?:.T N.)aiGG t,C# "Y3y:07,֟EV+mZm̩lSj0HBI}Cfi Z-JXƴjvd=Gilm&-/=M߸pM<,gjlowx-y.wG/ s*KVZC17XKR >vdkY%Sy Ͻ35wnsOٖGOr/~=-ӻBҫEkY<,T^Q9<(ۙ>΅X -TKJe:UN%pI,>Oaw^I 9trO+G'[/W zF9bF.ɧ }9S,L)' 72-{E6bX}b $vKh(.v+ZdZ9 B&;5Z! Oǝ1 ֞hsbIq\q$ŏ_U暜d8!F8{rĠ,w/v|Ê+V0HJU3ٸ)`r+-zjre1%4#-u{_5ѶDʏ?nN%}lh!çT9+/u\/C4^OYrYw~_͒Ztp k㤃+8ٻDJj\%}N{F͔M[懱 vmrCQ?K`R .i| 9u8] W&˧fgC# ?vE.G:1ng;ҙ5|CüeI_|/!3ť%^W5Gmǻo~KT^!;2I8z>3$VNo>MIe5͡Sj͡qq|oԳ=eKg_Zϥ8[;SRߐ8MlLZvuŧ&tg\lӊu.Pbn|d`eX[wv\ߩNʝs[Kg7,J:[DB,_jez'i/݊w2oh7^ ,OTo"y+4~ZC}W*'΋* Yl ۭ1AMl/FX0vɰ$wtt([ IJw#^{TURz^"74!J*Po_DcI#7wNe>"Ƹ݁$턥^UMjYa{mRya {צvJbJ{1B'A?Z:PKon ܐ_k6nw~^]LƝ- [M&:ZGЏNPɑ 4vt,}t,8^曼~=K5i3 >x0{ˎ17 'F'.>!4H.vL.raPxgkG%z[97@(8p )(4)Q4|A?:[% bˡC1rő MքnF5e_zˮق^vi q9xMPtЩR︶"m99W0R0c<1aM)' 缝MHۈ2"j!wnܹui1 UA6 큦϶c@ɷ^L| J>+P)Q-Dŭ'5 9?v"RۢOYOOb^)0TXQ~6s478U.NlУ:jC'1BߚY"i:wRPT(M.X.C>xGw`T~SBCtF:h9<6))4-B{"[yp}IIi\Β/M%5HiM* ; IНbS7g?3C6g | l>po|:ʔsAL beDi੄OcKzLe5ys#Y+;F. o*ؘ}@ˊD"WByK8JW_™rXp]Pi)s=/~FIuʋ9=lnK; *XONʕs啽PH"4p@ZOIo)`pzUȎ\e7\cT-]Q:K!@`]\Rsi,2߲UoX6^2l(އ83O7GfK*E2MYy^6c똦AH[V2X<" K)>Kjb˱רr_jh3g9J9U_Iv ~s$@M@uX 푹{e\#zɿYT`>YrɅ9:#'4EZtCAO.$V]m]6"9 |oP{`uܡ(ljHcpG9=\@hJ`{h\+[Ɛ|6KPʪ{HߒYT^D.Ԑӎ O|y{FŽ0Gz #ݧ k\ќ. ejs=5΍.RWw(N 9JEnFdJa+b鞧}yCTc)T+'U@R`)HЂXuV2 RG\+c,=*pMV*6߇31[-VVVݭݭ\[W;vwxCjwݝP;vN=vkwNݝQ;vYV{z9g~vݳjwϮmc։Iuu}u̫b\lS$Sn#VUz{QiwA ryМ 4X~ubpKoW;p|s idR[fiEUrp{ !?4ny K LKF/tѕsV3+Tl,nC[2 )̍=V_ׄzCI5ӟ`L@̌xс%0+gt;}iO B| -|W1KuE7bhVxҊ]lJZR (|!}䲖mzkflzsq 7Њh[gyhX7eveQ rJCG^y};daJpvl'vT9j21H/ F؀XE xB&lWZ)1}i>}_lyiXAScMqdldeՍxPBB}rU>LYYZMP,̵|]߬i]. nX^^{@BEKN@VBNFJ B 7E1a ]_#WaJleTcp|B4X99)oY N\we.wmjFd/4Y} &E#8шk'.WH`_dpᚪ\26P Go/,Nؗ QB} y^JOH;]pGѦhÄpS&Jl]۾@iRqJJnys7/6gvpy1eVЏK9BH.2JzK!!^\8MFQ=nK\hA"KHtrpB?TBWt N"P\WtߨdR#^.8ڕvlRD )) 酾}M#DQjū8@^D(TkO,VC/-ApzNس:/ 7?R@]y[{AB.[)qІM .QhC3*l3PW";.>?ߗzS#؆īl6Na1LXrvZ}i}B_U]noCԟp.N ׈ s{vYN+K|O)U;=6L9OG'KĐ;3gOkD+N$Oj̗U\k.SȬ[-uOUdʿVؖ8l]zvKVY"eAs$RPshe[)Hci(czcPr\v( #'>@\ibmm\=S›ZܟQ0Wz1/H"cTƁZ `*D>ā^ Sq58D2<* u?ȞO#H]щT/=Խ؛Q0%LTx}rG<7c j~0]6=R!Lйh9pZsz^9WS炝IxsIfaZ;a,*kP+NBkT~ԥ?.䌉A ̋"3^Q8 !L*ȌeK*ǜh;GA.c{s. ӣIΥbn"bn2*Tf,ʷ9*{labwDMϒfӂ{}}.Sմ`*Y._P.t i}@Ɨoa0UP(R9*|LJQ%bdE$WV5OW^I1S 2] GPTqS GIT'3gUtji\.*E߾M3`E񲥈gsBˋӇ!)0Ev](.5NOt!dSŇwAܖ#ֽ4QDOn qyz .ՂI/Vҥ{q. e!VCnmt ?6]ttJM*OhG3'Chg?3Atlm%~0^chw-u;N7ԩM997 _%cjTLR#>ʱ2`,c9v~)9K,b ֧]V6-:$LK (cF5~d oa<YIƇE +ٙ\IONRIrb$On^8VG^.Imͤ4yTeI7 1ܬfNy%eoUR$,6 zUj20ns}NGfi> !-E?QOP CUMѦ=z͛{%3Ui]2̯ >K[gc 'fLڶ<8QqX:@OؘFRͿkq٠-h>yN;9-S'MG>(NqR5Ou&d{P#J'-N̩os*3Ec"lAF򶤛*}LRʤT鹜l/7I8zpso vN& vĶt#^w7MqXuXt#7*}`ㆻ7DhbPz>$~es7:&lrNG=l| +,[4RoIߣd>('5ODĤCk(/MF{N*Mu.Kx%LnrPʑ}Û,.R eݷٗ]c£ `ݳIQϏ([eBµ8ߒj0}ʨsuG:m 1 D}Nړ}Ż-mS)c|'oʼnMBRBўo;2&6 vc: F83АC}?2zY9}twY=ÅxHRXL#IR`s}V9PcTataYAa;ޑ"jc/8Ba3ZF{C#ieVѵpZl7wd\s(0(dg8D2l hD)2%m07L8- nT>#TJ1|)U /$U\acm)}S{&ecɟZ/"K'aEÍAHWƏP8:Uv؊YaaPLG.aX3M^FW'cC;*?!U#)Fe/T:| NIK>aMp)`h]R>e -mh~hk,e5E<-/C|[<9dmYo1ɢ #:SvJ8˝F'gx(g Eщ߷^JkFJ+'Ն1gGW#hCTh~/n#|90:e.e=<I)d,b9QTH ?VC.Z)8UZhn_E6PZ7Ǔ!a}*"=HZoAHD`7 Ry)fQip~y{!G󬧘3n.+. ;4  >?$~PYF|!:1W  y6X4d[d^*X} =E"^\R Wp kſ"ƃنhQb}paDx!4oRd&m(BABk=kS2zQ~O/=9P'_EE#H~s!)x4J|3(Hϯ(^ChC#2 z{k̢ &H{h !B'r&b\F:I2 \f&'Sd"bq#I&6#IplA~:;T3|N&,.YJ0uN?3l>-b"ySm"L.E3Kry|efpDA^r./%`7!],`D&;/fY,87ߏG 1.yB ع ~.m.br?'P3(HHgf2Bb }rxl"D]Tp,>%H!FQ1aF3gr08<;6BhL.X"40΅&0|cN (YB L T|,z|+3y@b2*["c23fV.ή0@"\̑TUP.؎Mp)X@RzflO֨*j G@{?/:  "S@ n#U)YO E=DN~djof^ZXZ GHWZ@&̀JD"w@P {JeJ!#c 6МP@n P5PP#Yo4gP/  ֚0hh.)@f< `e9@uEP-ꇞz z(e`28T @1 qzlyʀEt2p@4IdFL [brj%X2->BEWJ D$oUD^:օXYl}#@#h!z+k2GS6آZmbX%[l![Y2Ь@"dpmĄѰ # 狢ۚHpChr'oFY1f@sY@NI(}|/ YD3D4=ߗŋ"9^v{ `6`A. [[c@&rRO$,M#ԝpyk p@J('-lPWb-q\@8Kj׀6:j<˿hrf|HCW Ҹ`ጉ6RHA6yBFOAs9Y2)ÅmZL^XB"< Ey X>1P(T5`[Cw>!!+"?dЅCs(-c\MCr*]zE7@?DIKQ+O簈sW*#<ﲅȄyWIt/1Ixn)0H<y*E!/+8Q"Q\<\]fa;S&x'`%dV&+2,k£OEQXMOI")eE$8Mm@AQ*QA2\1J%~8/Ifؐ0b )bQ/-u#5 ys%W+l6L <'2wQ1K{$HQ¸UEC?s\+2<?8g;=db(jV´ݏÎVpR7_852 f 1g HE)(J Y:[<;$ 2Ă9P ed-@;$bz.gƽKĤY`SR< ]ύ"r&11zAcnI /J)hWFT VfI zӊD% # X| pcc27##a `ܷ4]HrXZ_ .( 8L,)!&Y[9iLMOs 4ERQW@Q•'ZxIs+/g n~kVÀ łxe aT[Hls&I:t&NZ ]aA4@X;,!W6,bSTŢEyb>{#_S YW~Ɯ9hǮ+;Ѓ/6иYEB8}/h`]jʓsΫ,N%ƑmL~/U?ŚcB\[>g8*Mh@W5hGU%{VnUeC0 @(H@FSO.XBFF&#CbϴϽE<00&Q0& ՉDQJhjrHSa1hj y K@[Hs!FtPXGoql4w/*58%ڠ&@ j%ix RE[j W[7"\36EpnUB'_т$A_~A"S-0Q 'LC ѡn-.=g]ҋ uIфQ?f0-τ&'C s̩4p( Rp]%W(_lǿ F'j-Z 4 L̫4>xޕɄa!$r]\_0[OGS 3qÆ-ve,M#TnAC^,gYsgZMP7=~ཚHQiAm i st j_=|w@=V&x~ 0m+1ւф%Ր7`_h"P xZ6D rmZ1k~-' <2$񫀿0iXRՑ)=cua!pld>-U[{~# ޼(8%LYbb0³Vm9vmP^6\+:G8_jw?G pE,v6O·#Ck-L;?ZC 9#!EM>!TЋ>SEDЈ( h$:JZMiAtKG4b3lgoghiHdhhoo@) c}GG}CO_L S0J sps uwr EBL"*BIDFn`hLw T05,xEߋ(hGZwns:a:"bTt0%"*eX, J*= JZIiA!av`bSm]MuScW O N'~^+8ok@VgV:ODAIN2*4*Iu:|V[a`bZEߋ)B dpͭdTW,VIh /@LI)[LSmEnuB ߴF'` 1QH`(XdHNITrI 2F[L_X:8~lf)](@Rj,JR''P䉈0ZCC.q4bR[^`i8S'QdNQt|YOPhP0daZi1mXJĔ i҂0B(x J/SG,FC3{pH !1/ 0&OӘLWTIQ%]՜.`XԐHIIHIDr/;X~gIpf 'ĥ7?߿@60u4$;h)k?YS)Ӣ$ U7!$nR 0t¡Yk9IhHӬdTԀ`*%58< K\fN jhѰȒAJ#2kf`H|.J}Ć,Il)a{La:qĦI)Zi8k h$է1Q 42+CW$Gy [ >uRJ2=Z>nqܐ, ;ioNPWTWQC#*x44J1!k ЍkxxZ@xy|A|bm>o<]PwͧO) h{q(φABʰD?~<-7>RBla@GxA]S8ť hK`0-~kgg&8;/ּAOkO6^;Gw6xKgY$CV~7~yͨq14/6ߘ]6^612Gƒ#بA "):\*.W[ۀۄۊ FqӸ /q?@ Ȋ鈙YŒrĸb5bMbbĆ&>"v[_bqmqq l ;ćďC/,/ 'B"C'Q%-GbR II IIgI8LU ]$%?MR7ǻymaYxY*OjV!sRf䥍)<VQ3ҟK*ZXBF&\&M&K&OfLN}2e.|-sS{%沁Q|2Nme/~!{]쟲rr~rr|AkrfU}i+Wɯo(U=W3xBBBBB[ *QXh\I1P1L1NXXئU[*QTRRWZdDV WWR*QVjTڢGE((tBaPF!l&$ |Gx@ lRPnPnWޡOyB {ʿ)VVT1PYBQVYUViW٭2rA[*TPTUTUU5VuVS嫮UmUݮKuPuTuJGW3x5y5 5S5w5jվULڬemգWgB)QWTߦSTiihijXBш(Tk;4~x!iILӬZ٥D%6\#؇g vėDi{AA`:= 48kp[_ ^ ii+ 6n70!HHH((H`TiTgjŨhѨIFWn7zl$ellgnkledi\j\ib|ce˖,Y,eYɲe-;~[zeR&f&6&&T8ru&-&&&WL̘H*Fƙf֘76=dTLhfac6+6k26 fOu -C3̷6{s + G0 Eju-=g,nZX(-'.\n gss?;?rYEمbpḔure.]srsv-tpvpuzEo\oθݔݖV sv_ICݯ?v>.!aң̣cG^ iK7=y ,yW^Z^^6^N^$8/WWf^&N{]u3/&xx/vxGx'yx7{}_{KDOOOקʧ֧էgϔ>z6nѾiEU|G|ON^{k_1nГwAR V 4rBBBB\BBBCVpCքt\ #D*jj*.tchO@h菡BgBTUjJPI@j$K]GmNPR_Rg2ajaaaa0fX^XMXsؖaa2)/FExFF$GDTFG4GtEGq=nį/"MG394:G ӎ>]v,2 2:21230*%r{W#|I|KKRO2NJ L*Lڑ4tE>E#bBMMN)L)NYҐҙқ/e,L)SfS4W,[| +rVpWl]يV <.ZZڔ)uGSWR>OIKJO3KNsMLKceJ[֔)m[@hٴҾJ1IڟiҤ = ÆdD2umaq'2^0k7HK?~%OJː0ʰπNF{?d4MdRes&)303-se su淙3KL'3dfaejege9edѲҳJgue]˺8Uʖ^mm]ݘݖ5{_x׳~-C̱ Ρ$sssrv.G&W5W?,!+7(7*[[!wg\+WXYYzeʫ+o|rYw^\^A^Q^[^W^޼ysyb,KEdY\X$V8+*djX}ì Yu=CK{B|u}c'%I_Jlm9;MeDz\v ]ncoec_ﲟ_߱8]2Ǐĉ$r28,N gs {]S+*- xD0 (+FB˜•m[ ^(Ÿ >/-Tqf\7?7Kps\n9q'\S--x<*/xyx'y^%|G7?/o+ wM(X)4 :ӂ󂫂ǂX|FQ}k_(((hMQSQGю#E'>/ǢE݊})+ ˊk7o.+ŏ(.(-1)-)I((i*9^rے%KRRRRRixitiN)tuҶҽ#ӥJ>-}U*_R[fXfYF) -)K*+,+.[SVWloٱe]+]Y2rrrrrrF/]S?ߖKV(UW,W0+*+*z+T ULV|VSŃ U^"VůZxUݪWXut'~Uz W^_i\iU\STVroH_U~_yIwV{fXݻz꣫O7WϬW)WiVVWQ"WY{Z#Fuƚ5k\Y`XtqEc{5::]]R]]R^@Ϫ^jkMZikO|͵O׾]VcZZCɩY_ht՚5_Fi:uKXZ{YwsLFQe]mXm\mJmzmimUmmmkmGmo`d'ko^GZ::ຈMu[Xwqݻ:zzzz}{?WezקY]_g_\׿^o!ncCކ oprnuË  v  i Y  5 hjx hטX޸qqGgŚTt665њbM5 7}tvӳMj˚Úskۛw6h>|NquSHt?sp+O4鸓3ugʝ];yi筝weqy}W]zvun׻z]2v;lyww޺{lӻ_~[e={({"pٶgxϱ='<|e gbiՁo~x9 Wq^뽎{{ ݰu{{%)3gf_}ewcof  f V vvA;_=_}H;PxFLw^x{@A˃.IWxx~X~Hy`v(|>1j246tb? ) +;{LJO_~00!,q IIጔ05202:?j=618]37:6zfG}4ntQGVm:vtѣG~Q11111XXXX؁cc4~L1cǂE=qLpؾc_yޱ7$e ǭ}Ʒ:~i?㿌ЙpHLM4NM>q{ IIIIIdd '|:Ǥq^ӎ3 >r|G9yɯO|I)))S?O=:SUN8uS3dOff}鋧o~wZ3+=g^Q6fOWLNLzi:g: :rl5gn;{샳 9 =;Թ_~鞧LS+¿ɾy&mkQ3g c LLML0`M3yyyy,ڜ9g[UwWϏ>3o)7mijn(h#n77oB$ǒ'8Zm{vS]-3sMV$R$vsK_. Fp㸩fn;+C a"fqG%J~..uEoyp9\P~fuj?Lݟz8ū7S555uQr]YǪ=Wγ>F8PK mp&Us DSFXDOCS.TXTZV >>g;l̢u e%5Z<l?_V+.#&xh+ W =kBa"bb_Dd6pv3wE`lU+4{scy¢5v ._ $5aLGb&cߌ,kMU[v2Q f>E&*lL|3}KH:M`04GaFXE,KmIlxP.oC@ٝV+@.gF9\`ZGHP^fz8kLfsq aob+D0v-<1G,/4_>N#.=@+uOEb(d[0; F"9;|߃A-8 }F!I.i켋396'CL)iR0ܮmR%| +fVM% mw ~W5.EZs)89G{7"P s$ҺZGD48C1΂>ٖ-FZﲞLnG,dQB`6?>/_OvxBV4ĒN#0d(xIG?p^f/AŪ5ӳ}&sE"ZJe' "Dd`kS"=Ӊ%+ sv1(Պ\E"ioHA ,|"ji̶-k?l82"g1ˑIrahh ,1.ѨߔCcS8>8.HPTA٥D\>'IKc@- 8s #l E{19aFFTåHh+~otͦ^#Y+PH{,A`6_COokm+k~I&x:HU EqG ٬o2ƢBI""8Фn?Q/1h-aprZ0RwtH ft<!Kfg!&^0hgN~i;:q7- t7 (y6)x䶖.vGbd ]BNiS,BdD`p ,|aZ)0mc QCzK1fD*l@_c16>'fvc7f88a| Uxzܻ&Q/|4<1 Lf}V?/eC g0c/_2YS<3睳R"Zvݺ7ٻOno7h"klB+SF;oNU+<XggtZ0Gd1m`2Sàe&@NtН){~>%:鑩XLK`ʞoX#UD*82/0 dVKIGƚc FOKF{~fqbٔЃBw 1NArI"+Mؑe X OzU+_Y?7~H;]^f`ۗ1^Dch -{b[/(@؀S{(wC'0IDT+ɾZ㛍 NꀊQUheD4(/D&8#:`Bp*3Jd L$ʆ>TPKF=ᱬn7W~GKxspDLUs>Y1$+t3#X a*-ω=IH+%{⡛4%|g̻!NʐAoK/R.(X6Bji % {cXJYYT7.ӰYR%-SsoP >PH*鈴R~{3AFÐ`T bUca2Xd7XZDŜv.XgC;͆c?k!X~ӖqVO[O۹AVP"h_0`:dN R3+3Fܬ n~ܣyڽW{9(<GǒN1?35'JVL0Jru~V+ LdҁhTlK:?6q`B,m?bR*)uƲ2+uܵX5UT9 KSh@Cg@ek%;D` 8zBfOv(@S1NHUjec%fF<(X^J'X;S, *f#9.蘒pyl pߋ8g!;J G`wlw_(8EÞ\N^r~umTt)I8̹}򊟔rm$vrTr i)h4Tu}c V{_RGNp K&{ccLz02 XU5k jYe@0m6fqh /qLcDl6sduF؉Q2u[rPFc d`&d{2 V`p*~JTHCT{oT풴ZeAqQFaU*|x}[9,e}:+ax2N 0Owƅޙ/7{4l^\B`oE`NV jaO_۾8W2ֵ^dݨu8ʳNm–oѰǺaoʺQRw*YeMb"Ykd`ܛEs@;FS3pS͢߁|@U7O \?+;\~0q󘪳.I@mPV  2{<;9T6꺤Ϧg9(LݥnEA* I +JCԷ6n4A]Ϧ-'~:r7^~$AKR8k v$+ò:6zH #bu6l'so ;s9Sҕ5]0FOM=5)BVGg Ewg'؞)_`Gνl*ⳉ꾼JIլ˥K̊/?zJΰZ`3nPC;WIdC(tiQK:ߔyU+jvե$y$UHӦ\;5RŒU9& @ p&Vt6id9v f¥muc$>nW=m"$u~, pୄ^gHL X.'|*I<1d ڊ X_b҈k 0gwR;Kf%Ƞ߀T@jgS.+4bu:|[6&V^16Wkv[u;:6`F $HبL!a}^q@p$_Q=!M߉]0.QI\ҕf;L-I S RT\_=qt4h=K*kσl'M ր5W(.2`Rmm {^L<X.H$̌ ɶ*QLeu4[ӷ; 0ŝUjzc3`OR$+-^Z@k&+fҙKae \^EK+۲&7@Q%/LE_G QUJ?WXDmIT(̭UT)'H8 }Sˆwܴ o-?~ÿ f*$rcj7yXٞzk6 /&z"\\c@q FpÑ #h6y`!YS"7B^1B[c!c1(M 9<*}0üft\#lUaQ$s/| N8TT JX:j .V}8T"B(&s(9yN5ɋqx.`Ӌ _&/h61 80h}P]w6kZkHZ:*tbS%B>$uz~\GV+)J~rY0RaJUƓ,j˚uÌsꢩ ?!m//)F01gO:=vcN9_Fƒ?绿k袗GOA;;;;Q2O'6I!nn/ r.-(+ :6X|PPp"E XԯgzfΜ gkzwv)>,?_u,7J|PH[Am'X4RiC"ŔW~|2,GgLJrtE)5 Եnk5VLyEpxE@RTO\Rբ:m(։b%mW'Bt2t[ӥHT_UF >^y^1D1nm6VմtE b"_7}h8 U&r>x9X+'ruiuQu:P Pk^O"$\"vDS望sKP֯XbHjV@k`$l4CO hz5 \Q&ƭs5iCD%I ݉S;xIn#{u~wZچrZڕS+c݆^+!kFFqZjlw E6ry 2IN]t9t3I͑I7W6P׊|YF$P$EU @CMUѕZo81|B}hs';Pz;x5W^L?\)쉹xWG3 .غZ >5ȱ9=N)ۺh;f2C刞!k,u}َL`֥{̛g,u䊲ԉS7a&IjF64C?)Is$YSdiG"̤\c]gqT7o(QtcI=k/?؀*IK5ΏdW^o0*.G11qW3qv o?>Zťc HxFO:i8]zuՏӿ܋O^j(LF1#ꃝ RcyLj7>䴄;rd-~ 'z8s)٣"/5i7i #;u.~9g0d CIݸB@mvG2/LAO' 5!XX|Cd#&yyfދR9=/"TnnVXpVh`>rMS+J& ޲p`B'f yЎCI0|cM/ǚ(Op im Eי]y(PU&6n [z6gھC朱3㏎:vkXrLr1ʙdzSaf7*pYUkEuixӯ\es7ѹ~n̹f W2 L-@jj]C,_ӄJ'ur]7>koP+f7O}DCIGvmu9|僆# Dyȃ_EN'5qXR?Ub(VEP;Ew)םN_wS ם"\IdЀ! 1Уб„uAT6;_o|?0Jiluӑë%")^횺|PLjMG,瀜i&J0PZ=/SO2ӕ).; El(?unw nv۸3q1 p,`c@JY7 Sdt9zQpưV UyKd ~inCфNÜ'"5\fSyIZ!ypX߆,` -D_H5;YysbEy YZha:peB=A\bnq6}|?&ǗЭ ¨&%Q2ZM/q"RDj` m|n< ~ѻT-~܊'eeHL=el 8*\8Es !l)GeЈ]< = L|>rNzDЉ=)ߘȉ*UKYojRH7TZ#u X+r·\UR*u^l8u)`zu6n 4@%8jpـ+WQa̲JqzA$8Dhu{>%)MKΔKG-Eb[@B ?h)3!_!꒶-BUj,ql.ec wihˌ;QVKzBs o4y`=!Peg07^C 1(B{idHrcpְ]jl7kufjMY5¡`^ef%irۢ.2PA\5+^N Hn;1rvwA`L_Ȣ@?eZLZ ܄dc"; f`!Ρ{$R6_#]d @e=7hp&pmYovdno$fF.n&>ӐcMKg[eұ"PLU~3HɌ#ĦnOk4Oӣt{N2 9#8T߇ώMk.e6d-/= ViZ|UkCA=^8^{Z#G\ ;Б*r m7MHZep5U|E2A" >bW̾,6c[jSpC#h梩l"{4F03#323Qʱk隢_hf92X%(myAHx%ȒB,]H 6ոi/\Up2r m&~}{(UU$l/ä>`) nnYzl/$ہgq rz vۜoF#Yx6v q6 pZ4i`ӌlɈ_zk*>7_/^elV=ܾ}=CPK qY3 SFXDEF.DSTUj1Q Cq$.ڧSK ""AJNt]s}Ibyh>'2y~A)*\yL9q2=<դ-VjchmE%Qv"cً)܋ 2&G\P7 r|SeεY ^Z /̥6+U둙2~:$yzu8iQB`0L@ @ xhx!`$&`H`'@h!d,0h0d` x <p t@R  <JS5.${tA1(< Z<U A<l~>jBO`+'i= 4X @biЁcFKC(0L3@4A:X6\ x X=OC =I@A'$ | |@X6k`?hyOu^L`=) kF^Mx >0@`Wh_\wb8~!@2x|.; `߁A0mf t?!`0K`/8< b"o*BFDgx0x! R;#0u e0hgk2ZW7"A ;nph0V`>HE .F8X *N f$4PB<3z#X ^6!6XMc Y /<Fyo*k&<c<c:PG`=^ y  7Lp &W& <'},px^\#B~!x\߃ `x \Sn'Np?`C bq`+aPNc(X 6< x*m`d! (kʃx <pĀ|%p䂗]p ~`| r@>x @ 0䁿A3PDy0 bPԁY| A)xA*PNIJ(X e0h6ʃ%O`8߁!sPOԀ =?,x|TQ[0l.1q_+9pT1/5`263y @6-PxC1.8`; 'A-\  >A*aPN8 [K :| > E`cn &LPG/(0@,^/v o' ([0<v7E`l2ep<8 l`X X ^6.,0xo]_3x4IE\ d UM0> X/_$0f9d9``8r5 k5p4y+ leP[7O0U| (Z0Nm"u3Yu'M^% ,ѶEm7ʽcԷ[QÆuW:hiQFp~@ؠ 7EآBFu~ `(Ӣ֎mQ0?!!iUCktɉQzUQyXiNvP (1C0=V\K4T`kUǐ aG~G؏kU*rW! EY6X +gji] t.KWK↜}6qUu_{WCPS"T-CIrmcF~AG;|R\+g[XhQ9`9Ob5uHeľ+)H;V:-ҹhC0TvOG@:Q62pmꕃhq-jB.:z@kUdzM MqNZR5Onf)Bx47}\N/xTD /1Otjͭ]UJw抮޾acC*cE)kzkkn]˥;6qMBY$_iN.p͓W?Q.S2*FzUAo/08uy[fSt(PuZHs+9!\CŢV.p>y ⿩+9lg~?ҹx搫PiNk*rgYm?h: fYHҞN[FGf % ==m` A !F'V'-uuRi]L/_\㧁?qspsPONLպk H:WvqzS{"7[8, D߫wN.9VJU)*UqEbe6Qi/]?gb<&k;7,S{d')%&΁xzU=(_.%E>%I*[q'HQ[$[×I6|"Z)Кeɚ\f !yH ܴQhUB58դblArF2Hclο )IRəyS]A'5H}f4IEx5A')CRf7-g1_RDYOIOq)Y%36J:'[J79QIg<3J%1#V6gUȦd?p{OrEI6|QlRҡ{ɚr3Jp~ tFՋ{4ɘC>/y~=sd QR7S>%S$|:[6w͕t!5gٟzHWf͒OÒJtVIgpWDHnU%BdG*py^#ds{θ4S6gI:љn:㴤3"gs|lJ~T;:$G?N~^៸S6:RL ;R!t%it<@o9K2.[VIVٚgdXS;dsWN饆1엯KodsAIw=,Jn sJ:㓩nRRSSeo%c||JJ*i3~tSdkwTMR8Z3O I%~R_5|dL͡$rl5*Y7CH2ȶyʲ7J='Y'9{S\$"jdD'QoKF&ٔH*k]%un8}#9-f4*&.br׾ )T?Mg 7H9C守ђ"jVIU]9M;gH9]s$E|6NIVq10MgdJ:D|Vt:<$DmVضul d+CߐtcdAɚ#[M%krid?9s5t Ly~lQ%hFʷ.䡑%宀`(N 'nv/N(%}lJ2%<$1]y":񈤈.)"]"ek%6p$Gɧd0?5]]ZɆ$I&H)b_7'O>L}es-+|d " OӒJ];%'-d|JJ*%%,r}%tyI]w7l% w*:}dNǞnVWR"J)[ jVlLSwaΈْC6%K$a?feXǸU,iH0{6KOI;EWxW?QZqR@^_yE{w y} ps~t?p25 v[m6~8Wzba>lF>/YCAAk&1ȋ#ǎ*(g')?QۃO{8gi ~uWM.tt! 1nnz{ZheWS #%_=DoWڮV1Vm5 &By(VIVs'W&pha:Z4WB?ê5q 1os\Qy~A޶t&:}4kxKu¼]$Kp=*O}ipkp,Q[!t܁ / |h;w_qUTYjQW+[a?VW׈*x;I%lI&(oƤ)Qc&([m+So3vYbBy f$w|4jrwP{{HjGurq~$rL󘪴%\Xʃ1lE1H< 45 ș{i]^&"촃^+AѰoXFjA\2jߤ\3j}*Rj9ZEb?o-dՅO Hhv"4NCqPAx?|$ ^:{/9(ଽk: GrH#{3҃mbs 4ɆKHZe1+Ye4)D>v Ilr5MMX C?+pA;W~]xaEJ^&\f6:'4)S KW[:©ᰟWUU BdP=|g`[Qf_MW6ݓ?jLd ;oepy65j ig&׊aUN"ufGXuX[&%LvR5G*Q}55Z ߓ JзOs\M}zfՁ[R$Et{/P&%V[+,Ps-ͬR{$ª=ymCɲ=IAO^)ȩwT'29*iUWȁ* u%|iG״▸SIS+[ ]Ν_ OpL\9Rb+?:Y𺢂®j!e+%ЕW(,;C3:$QwB~GesWQ%X4U܆X=32]mT-jkEc  B^סq*{]eLՉ}.iKΘLMä};y]mzL&=Xf ;;<럘GW,3>bc N, bV~g(VC|kxCYvDT8qa'|=̆9 &8Vp !:`Qcxea`rOjK]7)&jS44)޶Ezm:?>!VlVxҺH ;մcb4)aht 4(ERo+Fd Lm Wۂ1a,_)\Ux7bcA}qIAa̬Ht6^'ٞR?5ޑjh|MI~w{en2Ϡ(sm?_ O+v,^E.UPEJ0K ;WyUGXoJM51Aǖ6_ccϒmY^yXUjb=e{l[/J٭`=w"0a`ZѠ:Kn%=o9cDUX۶ca~PVIP 3EóRPm1c8Tc:mbXZ&%K#b?^^p{hvVMփ IJLD޹q_-S|wQN\NVmcuV521@!p`sVwZyD5t8TPAJ[֥ ,AӌxҥgYۢ]4iKGGր' &sz;^R(5NG<{V^AМ'\/׈>az8Ne\oS5NeWYя85N'8O%OPg@;|c.zKѨ\#;#i, dsxiP/]CR[h 4֪S <_ {iQ!b;u$DQ*XV]UrF dRMxy5k*|s(#˜)mO+l2AY]02z%<'To'xgWл^U[JRiG.`-p:ā 5fW3Vs~),*Qb-ChTPi *ڤf >rs%A+ul`+3ۺFAym{ZWvgĉBhdbu1^jS|Zފ.Yډm_b Ct丸PCB_ ÷D.b>4i";hpv4?}0{ULJ`uP]x$=‚0.2{9m0"nMh@&4` "a-P$<튳H6)B ?>4͢A]gLi~4N3z[3>(52,:#*#ID̕c1Y|J;XW |J0`>k 5GX| alSq8zT7Z o)/uZ~9l)b:_SlzєWJ׊5~$d Zs% &QșW`cԨEՕZzk3_R;O,uXMu# t&vIC`pR (KS=,c Xrkb{s:nBȞjPqWnHh^<,3֭SQIפ T\s0FC Uub8WyMEd hݣ5ZIȭ*rſ'u Rn%\$le5Gs=H0ՑPb7(* : Y4GMh |/"F^JYO U$lfSf>=~_Eay, .6123~FeA8 ^_3B;%5(=CaZ/FGBOè[[$Xw>R_uLw$R.K呑JF}ooKWOE=VJ-ZKkbg0hq?jʥ#F0Hs&}lXS˞X7m\sx6tW+FڟqmU |pw؏h0@{f$AI_EɸvܠT)z8p Y8˖򛺥f}XAc#M^WQ!󎮢ܩKz5ˬ<0RQCl9lz=1 X\_QHE*>"d-5l9tp]7T H}X1(E H!q`kƞZ-#XT!WXt0S|th@.,"xz27 de V+u-W7-麟1>C,,Qm亙 ZGReVRi+kUT#`aaΫ*f:p^ʖAt}ՑYp.5pVcޅYzf}>x5__lv`}FSTpЩ?rzު*{h2xZƟ>wu]]/P6f"⑑@~#G*<|&7;hu("7LiGݪ܊bEd>^TDeFau,Mj#C]b+aʎ<YQ*OWZg伧+͊4.Zv*]-V,I7/{¶mN_+w{ZԶ ?δl m0 ڃXYO;Sv䯎#*b ӎeag L8fbmܝfZ̾9"Tb~ stFjy n$)BOBpXx8=#]Q=.u>T"=v\q%&-qÌG{(R\}7 5ܡUx'h`u5$&U(NоEڶ u/=m?aikτ}<@[Ё˿f@ֻUCY͒uh0HpYF$;L$0bTc2_y0$\5`Fa-+%\=E኎»JjI&K*Y b'[tO3d3:]zY#8uں4iX2`nƠxfuIɚ,-隈 ӰV-x^)dpuAkVRk{Ҟl{Ty΢J}:L/ϴJ,jtӿ;z/zbK'z W, rħI[*=I?i{iԨ7;Q6?CKZJAX p5<0eNOU'"GӫF1No tq=(6!W'.YHO ;:JEwݠauCFXzoA VD/x4S!;MQrq # yAof=;m^ftW:12tpWSٯǽ:)<>zMQWy03yCsp7C 7!{.^^7-J0g?|+vYomL+Vƕd_Ac4=[avDߢ OkoolX5p\BŹkU\ȡ^Nݰms6o켣csiyҖc,?/  XcҖӖ/ d}3 d}xVs4Ris(rm k@ *{tZ]W޴>Z$$moT;yVUiPR^[sx̷}.[pGp*|b G4YjqQl]U|0Jtr[t\>LGsu+mplB$*ʖ:"};u_"jF| wW֪µ[c%znCVX9X S3; sTO,W=#͑Tz~fGlUm+wFWr5k:QFl[ppq1%\{fTT;\l:{Gh&"4 Rv-l3\o6zw;X_qזYktܬێ/ǦO+TZ|RRc{rFd(~p@wΰ3E7Ŏc:xB.Qxl}Ҿ=3/t, Ng'OWaM bD ;qأ?Q'^}1 lC ]{8E?/̐2ss%~bHu2{V`>BW}F'8̂%K11НeL= D^O4|6Yr'.`VjW_;q[u3dhdqǘny;Y E>[sE7lA3[TV:v0C;^ rW'sӥ/|ײTrӹbuz8΃7<; &P{E|óʚj+רE!;0-up<3aF)kz>e Z{Yjl&7VG rI7ޙFLMuVٴԄW {7mL(|#(yc  !{ωOU\;>{F5{:b}OcXEDcҖeA/VqJ]xr,Cڱӽm&"n>ZuRםùiwjQ - L7ʳ+腩?jqbGחu8ŘlYaSqц5s4cr6?{YSfd\amnN^zWs7Kc /-%gd/˜`^2L'۶mS($I%U8H< `^A /?FXIVB-D{ fz0L^7#*4DoW G*`Pgh_U\\%bFch2%jX^w"dx鐃hNo-7NclE x2ko/W6y1E^߉+HĘ顡 y6٘kYoۼzmd4iC6*n-ͱdߟ%[OܬTLΦMɺܜ599oZ{$X6mXer<<6}6f|l=6٫7e%=,5֓,X5a?@>!E8Dmh̶lZg\0ޛpV#aI"XhZutxhgJ̢~))&є~)K=&dvO:lhŴl|tO(rlȼ4uGLn]45y)iVWUhrtB%.mmXudʤNl\LZ?{Ix݃zsqDz*, UQ =>}":y{΄ѽH%/yI]1 qREuы{1} ]Օ׋4ۍzܘp(z7iz_\ 'n.-JIuegػEx1}]Օ yw;P$J'F9;(]0?y[Nɴљ^t&U̝LD}cwdrR>Z4zt1*6d&-F1gb8P!1tɴg{wi1atb`\12CJ L$9@5QZS_{zUWB_TO?SnMLA7JҲz)43Out:ݫ-\ \IW~&ʨ hW!FS_++ iT6:qYH F WRK{7~Tɴu]E߆u[,һZi[N¦?Mk㪞eENӺrݓKrSz;9QQSrDwvWv&v`d aItc{J+6(M<dkR22]S3ߺtz]Q:~KYY8+tΫs+Ocג(Ȅ)?J%KB'gߘKgLz-^ېf݃u72yЈ"C0fY9{u>1# rs7i ; e.d"Tf9 y͛s@e{:P٧:dl2L7ӥ 5PKٸ~b{LRDSPC.DOC}SMo0 =aذ$a؀Zdb@{dH:%7mV  ȦD>k\e~~UKY(B}La5[Qb@`|L!ɰH ')6.áINE-(:O;匦'pz84دr _c[Ҍ%\sx0 ;Dl@g7Ҩdx厭^9"GliFRwPX[>9^(MZ%Uw*"9'b[UPoDK\,4϶NeA<rW)-4\lЈęPӰn[⷏Q  \*lUV= _6`T8DO/Ƣh=)V{m+]"9&`Oؘ~\;= #c>(=LL_XK)Y+}qO Index of /asm
BluePink BluePink
XHost
Gazduire site-uri web nelimitata ca spatiu si trafic lunar la doar 15 eur / an. Inregistrare domenii .ro .com .net .org .info .biz .com.ro .org.ro la preturi preferentiale. Pentru oferta detaliata accesati site-ul BluePink


Index of /asm

Last Updated: Wednesday, September 3rd, 2003


File name Size Last update Description
[..]<DIR>9/3/2003, 19:45Parent directory
6581620.lzh19355610/12/1995, 0:0
disasm2.lzh69,00410/12/1995, 0:0
dsfx131.zip14171610/12/1995, 0:0
dspc01.zip15,39210/12/1995, 0:0
famigasm.lzh10958810/12/1995, 0:0
i-snesas.lha46,91210/12/1995, 0:0
sasmsrc.zip8,76910/12/1995, 0:0
srf-dasm.lzh37954110/12/1995, 0:0
trasm111.zip17526410/12/1995, 0:0
x65.tar71,68010/12/1995, 0:0

There are 10 files and 1 directories
for a total of 1211422 bytes.
asm/sasmsrc.zip0000755000000000000000000002110111266514543010730 0ustar PK jgA!' SNESASM.PASa { K  6    %    %%  4 + , , < ,+ "#67h<#!}sA)vmGmF]n.EϧykZ$zx<;zN<鼑B^?6}=Nv; /t;֧T˥[okvv t=J;JR{C?xC 94}R-w$jtRUx=W휚Szz:.or=Ǯ&T^թ(ܭvܫDM L$j7D#w8=vd '[tfo%tp$tqbp%mpL钕opg\c\3 ~9T?28L"sDnO&'6{mp(%A* [ҽp Iz~(?Nw/DHUY?=ʽcKЏ!2?)&?Ce,!clg&5\.x3 JgTG7x=~tᏔβo2c^n2Y,ccĐh+GX~|=$I92?G?|5Cfl4Y?%K21d?ǟE.[TlUMi_ݎz1l#B۽XXEςXx0ȳq.^_90v$';+3FFzqhܡ+PkرaDXMvivX;fOI&cЉ!Bp!"e2MwиSLeÁuFK˵CwJL{hOzvai_!KL>иUrI '|hȦh`^CW|s؇N؇4aܸv봲Zz(^9&$c2Mc3aȾY7˻76@)MMb2f*tΓCH-&<~a#"c$?v4.@( H;`3>:M[RՈlk/詯"|ǖ3NP_<.5WU(BE}h Mj,xWay )>c7O9$b1hv Q 3>v̀S>!iu$\oa*jYk)D7' 8k^|=Q9Ӄh>)Ru`WO"z{)-CjxI444Jy``EeD 1҉ĔkuFb5$5U]^ ĮZc6bBW$;KzH]O'v'QlD 4.ߣ4oDi`^D*A.7M?ա,bײd.wk0۾b4H # D TÞx$8%6X?R)_* 7(!b8="ȩ&$&Ips8 }vz&Zd{"hUz]SZHYb؈|>dli lj& .рR6N_9_8ZNصlSr-ʷ‘*{Bq"*6"G!*<4q,{ytioڨtHpm0IS r4+}:4\;d3<3I?kR Vړ': mfeO wlՁ~stT N1\-n6Vs:QĬnZ\r,N |pE?HCL_ݴo;'TLV#vc21cS8ݞ-ҙ6'J=w]Y2A-YIKTt @,4&.^X\zXO'0|oך VPX-\¤N `6ŷ#u-uQ5fh FAT́{Hp`?{,\ c Vhsa{% d?d )+ yhf^_&Ql*CeS+O8O4N8ģ!& D!&$ an,dNp=@ ueE\^Q-fc!(NC (y "c^K3Mр~\ TN4Cc'yE^7vvXچAd/"v\3PGׁtס#C0xQl ;9%2ݛ5Q;T z@pI#GB,1W~'8t!Nԟ8"gN8ќNF7NM o5q!!D01ġg+k  *ڒPh"PVt_ +lCByfU(7BAEkHkXo?5>.710:S9Lx0 ˑ ;edot;Td/< DBj\TG$C9&F~=]t ߅Fx/5Xis -};w>g ASyfxm`#_N~  y5ƭ#74;'#F:9$~@tL4]H8 [#(D dfZpV4e iILe@7 p-~;mxLBYx溟3P-w`}(+` {  2GtZ> zccG } ;.$%RL\+rzvzz\ObdddL"B1PDf"p zMR(rsi(RRb68Y7`MM44(J&i*U$4!bs$Hb`$`H@OCeZhճhLUa1㶢ess13 h ‹+WYvhBS 5 q'2(cmAO5P*2p:xK*u#*" eF34rDHDU^ 7P r]p0 Xr5bY:B .vH|h|`b;x(L.y *a XNw. f OB>\`' + 9GH 3l.l ۀ:Qja`mp4Q0I1ۤ[\8Š搦  "R(f ˆX•n6oQ6L epDX?|.rP=vG>%8QtMH`0[ 9\og4I:" xުdM(c_y:L9d D].A$60[|o@  02Z HAF5@J[.M5@>T2+P &N.p:* .: BE0CE4K=>RP@MRBR@' pmՑLЉHBйhg0Pr.<=jC [`*$WAZ`M `tDni ө n2ٔAtn# EH `<> f0puIT娽wdX EDtГ;ȉ#')GGH$(Bb/* :F'Ad@ N2 ꐁCh{C7|3F1w$y|,lQ;aLNPѡ@d(uHI( Z ;v^?4P@Dc(0̣֡觮p"(ԡiEWh(H-oh@NCC4tLTg]n b7gGO-Us-̙:9ÇmT{N~H$'?,ALEݍ41~&q37(j&!s|m <v;lӦCTWHp6 $,8Kyļx @pPw9~VO;@'hs=@k.;FJfA9\bl{)mݜ+Sr*vzեb N];qizK{WHᙣt,G]Vʈ3dMEH#"9ZDH)8 F#ƆB$h'5Ua;DU>4)XÄ,@v9Pl4ΕٌD@!K'p HNY(F?őPuvh(棱\A_ޏ > }pvgqaB:M+Kh|X*Bâ5DBsD(jZM/!l8Gt,hdI|o4UflG˛dJ*,KU9_Ճ$ `<kg0VINyWH<%RRׯ*X123c]-H9o"L yνO]w׺V皨{Q1)S OW4nEFq?O#pIPWOmpmFcwi 8iXb&Z`ۂBK$`dS/PP z $~Uqܗ̈́(y%j?ǑҔ.A8 Py8#:?#:0Y*  Ed ݛ;0 J ̈́10T%X?}!$ܸͱxL3ĄҤ:9qAp3\qe7^ľ͓*x5Qd%)# Ǯss*p:X! @ y5d@ w[v;цQ‹MË4#Ň 0qȧ؂J@R]DeԐHapT7*U(I@&(B=hZx*b΅XF`#eZ$F$|@G`m#S$KQ?6)t!G$Kk©(RK>ZP2&9"2f.`!ֻ+ cPFBonĘ&< \sx>sY<,f| k f|:5\s}xsm|9:ϵs5koswĻOK'~]:.҉wA0W XXp2}~ho5øk\1p&Ƶs<[\=|#=hl.poVGělc$:E(`IUdz5. c!i`: E$zhV#"V-; K%^as:Qf$:g{A`0yDžPѦBYGMU. uH]-"2qo 7|Z؞~z7lA.4`o>𬿞z ]p.3F@0!:P\[k U1 ,fpY@zLNYOXRDE7s59SH&H^2'96,zPN\AA]5\jӲMh۰FTc"OYPp"H8Lʂcd>MF DV>+_o E_,F%  MácN>=S {a_5ˆ=ݰv 3쿆=۰d0aO2cѰi.ng6ʆ}Ұ^oZ of a5ʆ=ܰhne a6!M a3슆=԰`d {a5];ٰ0?ʰHk aHaN6g=ҰԵvB.j؁ ;a7=Q {a4컆ڰ3Ć=߰3Ű&v]>m ;awlؙ a4켆]ݰ0|aO2mҰnþpHʰvG^kإ agYf aw5Ն}ݰ0 {a6=۰CDl ïv?>h ao5첆ְ~dذvO>kq a?6̆ڰW]Ұvg^n ;E6J̰vG.jw a7 G|Ɇ]Ȱv@NiO ao7="m<0Þg ;a7ZMm>j ;Kv6SlͰCe>n q{vynpаcvVlة daNo ÃV~k؛ a/b6EɰwSk؏ {OٰîiI a'6a ;a72짆װOsþoǘaw5e /bY ;a'5츆ٰ3hjvd a5켆=h a5ʆ۰v66]- ao7}) a6߰Knb؍ ;a77=_a3샆ް7q65=ɰCvMÞj ;A_a'1쐆հvhNnXm@þh "ư+vjӱaG1]ް+2a3슆Ӱ 2C=̰Fjk M,fþe ;a5Ȇ۰26셆ӰvZÞm {A-Űvi~m ;ag@=°vd {a5ņ=۰\a1@=˰vAîi] a6eþdؿ a7 bi ;a2w=Ѱr~o7~ˆ=ʰCþj؟ W06싆Ӱad^kؓ {a7l aY ;a2vְvd~Նʰvϔm9 a1@]˰v2ÞhO ;aw6ӆ۰s6Hɰv6Þg a5쭆]װvel%깣 aG2R=ΰvEvmڰ?Rj؝ ;a?77,ц˰;îhG {a5(\$Îe {a5쫆]װ7kn ;B?[ٰvcؑ a3yѰoRj} {a?7=Ƕa1<=Ȱv0^f {a6]߰Y6@ɰgv/Nks amM ;a1Cɰv]Îl؛ {aW7Mنð~dؙ {a3쉆ѰcNjس aw7  vNd؝ a2g*Űa3y}ҰcTj؋ a7b5۰>cq a3쀆аkSk؅ a6ֆ]ٱa_1Cɰs7Þg {a5džڰvhîb_ ;aW2O=˰{vWnlع a7H`0Ű#^e {a3썆Ӱ[^lر ;DWٰL>js a6=߰T4lG {a2}۰ ;a_3p]аvQ~j!3Ұkv^lث a݆ҰWSjc aG6͆ڰspîo ;AIg>aK a1AȰ/..f {a3샆ҰkOkm ao6҆ڰvsNpa02ǰ'v0f {a4쩆װ vfm ;a7)=ц]ưvNd؝ a/3{аGNiY {a6]bյa2vѰOUk @KІ=°ovÎby {a2W]ܰvvnҺ ;a19ǰK+e {a3쎆}ҰcvVk {@Libg a3솆Ӱv^.m awi0lo {a2_=Ͱ?uNn[0<.5' }`vKƾDoWqC5\po=L1I1" T[rnN̾pbo׀lxs@Sg)!`V` qMf0'6?.%za޿;`_^b_ʾ뼑f`tݪ78~UӅ`ua lG,M[ZiE`-ЅL_iDͦdJ " "b\*TiRgODQ" <RbU*pUdy(<:wT\okenk ys.UNĎ㖐U}G?<47w`sqPd! Dtg1 ـi~ ,`d? ,'`XE"W{Dz)Sks:aἴ}}6sddceT` YC)XD&$1׶;l*PQӖQAC'J˜xd݆"VUٽ1. D& HçcAIZNMv@2JrQ#!S_'i닌YЂ[PJueP0iߥ3')>*v1^ O} h˦O xO"ѴvM-HyA-2SR@wa[il XE;"e+M_wW彉[vN,G0GZ=QT$(5-}~u?x⊦R,ss]9ͯɺ\OX8t]  ks.wY`qq-}kKz]ߗ<—! 3/PXhAX7k5,-[0Z6X~j٨ )햺3a6Om8hɺ>4~ i^RDR/)O")@@K}b?Oϵ)ou; ɒ}l6}y>הVTk55+iXǠM*pa);ns_t%]Xfun7D7M+W4M 9e6#b@dbc7O2iK#Sx*n;0ŹK k4ybmp } IyFHI:zG¯KjGe}NA&r@2lD:%ex}Mgpiq"JcB3P"BX(Ƃp؟  ~ z0|% Z % &+ºxKe&bӓQ.Ld ܤ cA6*iHI Z!;`2Ǟ2 HQB`Bu\/rV$TV~|~UAlZLo a6L6 T@O\Zȩ/j".`1ґ ӍͩmTW ,du K){@*`:Yf$.p(0Tw?+&Gh6c ohAՎ^O4ւ[NbۧxAg|MsӋZJ-,Rz^ ;K=(m`m 6opgVz,%o|pHpzBZH# :'+F>'yU?22oaEE! (3/~`s ܮYñohhh 2)%x7D< H8q,P@UBQ=azKxKCa`EmDlZƯMC ?4)Rp6}k״ݔ!؈-JXb_|6Qu ^Q8ʏ` )AE%v$to!4jUz) RX] 1UT@ a Og0$X/F:!/5e5qt A9:]s)=tf2N$ A 7 (Cv kSP(Er"|LD&` $/5n /!eRm2q*-Ct;߿&TwL@刦#Ǽ}{d3ULc!R>Y^њ' !y|}?STW:&s Ws]Mv)|@3M^ cYM7 ].\#lH-a Ms)ľG.VypHXe@nN+ R Ein݀\ݜ_@M KM3{((@Q =Qaݣ.s-NbKo# ]8* X1Sf)\qĉ*yy tå UwaeR@70`fV2dc@ ǣpyI]`j7&.JaGWv-:t`RCN3'#Do|kVu`jUNx^*@^w^4[?A]a[Ҩ1@Fu 2")0\Qjȯmh(l d./ zxуhN`ę1T~ '0q;`l)hK8f.0o um-(X7y@&jDgFvX0# sXm08Iewmqdۈ4#"A36.q񙉥| C\>S.w%~ơ+ ܇ `V, ,b%(pʈ iM.$]"WQN~XCCܸآ >XGX#%CmD˶f{9˅&Yaam+VUYȱ i11A&&d1" cȄ@&8)>hqRD 'JP1/ҘPDZlqNﮊ.?_ma@;0%)A, MP)  "o4^̔:)>;tQr8o~`esp|Ʊ}7h) q`] C%$Np n)maCߒzߖt\ 1Fhjͩ,4~=n`Ocq3u*!kX 9Fi 2=(pMq[988'mPP}Q/#0dM.\hq$iw7cA$@=7F%d]䦀mv8ȧk˒F0_-v3 9 hpA POMU1!'|+>h7%p;dO7@B+RQp@c$ M~}`3 4h_?6,уp271qgzo`;."k]hڒ5JIse1/Ҽux x 5$  [ ',Y {ODq [e`;enOHv.WgY7&(&(=ۃwWc覨) U2ЩZ +NסtQ4IAJ!@| ) 0\o _T  P\*JuCy!*Ϡ˳0гAy;"Rsv2O_ZGI\L$$.t,N]~$\ X}Z"KW `tA\ lt3Fi7x ؊77 wỀm*w`.QB h p^0C8lR6lnɽn`/7T>~U12&AШ w8b~44~2lu:}$ _ȫqXsp .{=+ DAᡰKwA ' Le&ԏw`ߤ :(FȹdEڃ"sAvE Ӊ"H` cT@ +xP4-:A\X\g u(> 8Am;rAlzћ%/C mqVW\X)р=ZuӦIJ-::Pԥ/tBv)} u`RQgʄq ڧ`p.!pCO>@6y+[!qs|']Ғ9.q߽FK ?7FK&6z|Y=gmV:[=`#ǿq|8`3ύ4 4Td)It}f1_-Od2E C<4ʤ=Y"2yrgˠSh(&o!MQ=9 1x;׸!*Qmh`.\ӽ{GBy>N MWHMoÕwUt/z/zr+obmᰅJV~`ӜLIPI:5 c8Ue1D'0K Y+ze+NdY,?)>e{A6򞪂a^jUTeGId!Qg}7N2wt79@Lҏ*,O)=̓w7;_~wV;tN{|S{ޏWWm} 2S0s;@F}͝n w~N3bӴsu{dܺo醥[m]ˑ76/Hi˲%; |{ٶeҝ-۲gòܱeɂnYN@y9q_Ͳ}{ǟm+-۹,vim|XZ7ㅷA95=[eÒ 2ݽaM3VmPhIdM4Haƺ$ٷej MΜ:7u_N/#悟(Ǣoͨٲ'Ahx M0R|2M^"Pf>$,G #Ip..oM#|1U sMbc:nXU7 *p@N K 9v =k# $RRp"[Jv`7r`wub)GS(_Sy: AfSvx}>ADmL ȘҥBEQ>MQ ̞ÞXL.?}q$ztRdسL5fgRr`/No3+G*@h GO>.y 2`28渚g&o`uo|5#LNn|+N ,rt'ϦOUC۔K]c[*Y9KE;+GToOd>(F, rD݉R>A&=R!H S:`֪p_Rѵu:P)قH:AL T]|)&-Ad-f0lЃV-мB*&sUhG8 {E|A$GMx@VvV:N()/&NEVtspճkF"UẦtN5wM ]v28P9UO?ifo"prO L 2>s̜G_(D7&ມgu)",ĝe0>$d_ oov"VOt܇ I>É͘ь?eT6Ce#aw8cdce<c36Ϟv<[@=7$“ӃlOCGk"=${B$o7C8\d'GG5_ Mqag}.YA]Z(`9˃[Sȁel\&t5}"l.0q x͟(.*.|xB\1".9\D ~uX $j)S,jS^/lĖ \@62;b|v;>>-뛠W8(򜲍%^R6uM-~ǯx\NR:u#JN[6"7l}`?(Q7ڞe$1"zDg὚+!cIYՇL( Z5x|PFA WN?g lAKPx33ED0ds/.Yʠ5N,k3㈀TJh]>}z+vԠG ҇%cpdu`e}d$If`>{Ϳ.R¿.W-V |f 쑊:~߱k0@7W"oRSa21JZU^%VPOt!?_2A 9X_?wg;/FX qX`Eقb6k#kBQL"Jֆ` h2hN+N7G#jOn0ȹ,n{!8}(ϣu+i9XC#/` ^_MHϐ\ }݄ = EѴ{=a<!<ަ{!x ,OrK  4?S#EY`-^zCCS0%ljJ4y-Hͧ6Q9o[oYw ^I}G U9?PήY)alÂCYȄoip<ѡ9N"A(N0GB5}K%%ޛF!Zf#H(gP^)x@*YV:Pҝ_:WM +JӀD5=m`@"xDq~9SUzJҋқe!^lZ7vDCSs ܴc :z'!<Fx8a\K0n鱨 =%"wY`AG2jGq{d{sj=xa\ui-8Z:q:+BFI20#-6}4b5@U2 |@E{b**kD!^n Z&_O_yH_3$_oX" [ ro 7?}Y7hfg,O` 4isr- Lʤr+y' ! ^Z=b-:D/RQt[Okvhw69qEZ"G\"t}fTo@Vqy3BeTanlGe QAygd8jCNv߂)s[ 郝UdI_> g}tR_lݳg֒A~ELd?0cum˺l {U~p huQi,/D[7 d]J,Ѓ%k)f"TuNL\/~v2{>Lr0A^ta}P?Ka_D,`HE q(Wq,w!,HBߞ !!@uF% ,({4zp[9X))7!ȥ5@Dʱ|S:E1p݈C}N"'£34f=E8 Ӥg*Fz,z=n^7H݀ޡ7)28x0T24kw7͙Bڕ /ҒG?<478 B9u+ Vj9zh{]NIUڇ!$eh 7 4dMaѿFReB1 ΓNqR`MBzcD3t t :XZ_N@Ǡn]tt :XV:πN6]f,rк+tmn06K(|4VhP\7#4A8f8^Iv0WdMf;2.*pq{tQwA]zq'q׎qq+J1 t!N`QQmzL~`>2@sbZ ukV^vx9nm7rY?0q|flpqh\sɝzt9E.=+=8!&v(`b  c`>aG)?ڏ 4\mp겿XۡB-(AXI ?ujOO7ѫh̎L!,a9['*ʕ? RAhe=NCLV^2ۏO&bá n3 <)W 6p r$I5męSN=}+N2߅A^.]6Tqv+!#('2GN*UX VU/8"i4q8@̲1wա Ti{&ADpMuݱ\o@H`q^Ѷ߸ ɏEhCt|hK>!V;?Ci?XÁK hˤiy_rwڰѻگ ,Yq(u ;CYXGQpQ|uZWu|1~M>. dm2'"kz U+a;ri~(+UP{zeP.;>0%=S,;.BKw:$cEWõh.D_@2E-WgŖX/>XXiwﶧˠyttQ|>>#;S{y];2dv #XZ|.I}Dלn-?삫Ygp=&9cR͉#j!l (]H'0J^Ƣ. ƍ|qt: b䌗n|3įm^)2njXkc{` 1Hij`ԩFWb+]Ki`~cY%x'6Mдk8rWBU+pZie}J ʠ5(\Z4QAdSx;Л< iW;{e98d IȦiu{Uy_hzcN'V@6_̯GL4=l ?$t78=?ժj>ݕ kaK0K)o8gúѓY^Ab*FSe5=廂p:Qn*#*hWbJ|\抂QLrٮdxn@ž$jW.\nb˓1)J7X P`Ǒh/z3Ga(pJHwoD[ 4ծ?}CBg3T 2gv.f<_cT\̀D 3,IԒT1v@ER(IdU*GԁݿSLwAjCKMp(EM., Ӻlmn mj$WԬ+cMo 惇MRoc'tq pxs6Nbi.WrxA~n}6וk 0|-cTH!VLqd6C δ?>I=W,r޲nAGG$1;^psQc_7PS ց÷NGxT|sut BKӮhA} r-Ӵ9is /h7N ]&0$D]\Z m1[bl\,Z bL_1vƻbL9@"bl"nSSƥS)"mB-^oI/`LCOVZ0I(9ХY4/M.J͉M4niCL$Si D"L`f lC#F8q 0#v#F\= "Ԯ(,NxߺQ5ݹSb͛1^2x6LؠQf\4hA$ 6|! WhNXR$Pe\]ej(HF Ji!Ì)s&͚6oİ㬍, ހ*b-S.@,ΓGѭ+9q j ȩH(V)*Vl AbA mkq&PK sMf;.- TRASM.PASa { K  6    %    %%  4 + , , < ,+ "#67h<#mnOG>]5x]r`TTHY'9123c=_T |^'ypTmWIYEţ~3ܟ/Jo8oڳmOi=Կr~_ÕqBzMa>'|D{MKDρ9V>~\5m=9UDܼ<鼑`C>zX;T(N]Z8o[mNףt=J;J{C?xCL` >ݑ!:h)#7›MtG&=k0О0О˛FO1C$U^U(ܭvDQUX!;z OƝYˏ?6`o8YQ}ꨛpZno4kInz;$ԘW'3DxF wV1TXmMwK!&V˭"77 !F~N Aucp68Fu,+40ft#O5#è>45؄tO&'^{mpP hAKNz@NC14?DtbrD,Vrx1ձLy~kSL~k1x~ M ?3յ$,Vx3 TGrP2?Du$J9d !@$?ՌgFg#V#Ik?.>sDtjSDHti3,^ ~Jձ!ɏG51𥻱ܼ'GFe&o FНfrP&O! +yDxΫިQ^خ)8in 'Os8i%'4VakeXãӝ8\}g3dܹ]r>Ż/ϙ.bs8yCTAmJA\%*@٧hW]Z#cF19#zĠKǻCdJ\ze=6ɯײkY y*:1r]:"K5▬R\dotz>Ո9WA_+U?ټSBoh9)=uc\19]7x' Wm|kσSZ8 8:.*GPcw9/< :?{7Ux*ӸqŒb~fh5p?mQ]*8/Yg~!܂+HWi삿T^x+Bg?R8IvP Sg،֭w?eip>\,.kԀ(kۙ/\Au/,R?D7;cH曝Nڜ" t 4B8pu]>ֿ&?,9auV;w##=8u4|S,1F Zeǎ ܌V?t<Yöه]xʚ+ě |'lA'CEB4,*?W? 9·G?:G g*gݍ><0DTi}l3 df|)Gd)rP߀Aw&ZasE[ Xe+/C矨̺94(LjPZeQ GhBo],hT೐ (F*v54frȉAb^ QuLG]ۢzXLN)>iߏ֍C$e}!#> FHEJ$86]mb_ J.RU~5Cèo<-lr k9 V=Af"*{oJ0ἲyHѯscL |#'yy Fcd&-&PNW%~|?u> Q} }(s!0*)MEVp;- Ğ(zŅ>vЍyJ@vG*iD ?ec0y?ŔZJ:@yBl!)`snlsqRċYh_&w/ɴvmPj9糃. h4qir*kT\%#ZF!ɿyc>_;(ՉV`όfn!gRqְ9xyAи 8m|*$ %C1|s0I"3+'$;U_&?<<B hHma1FQ(3sp\ϿӴ:?AA &NԣGɨr7/WN'Ի8K$;46c!\'>$jKYzp9%6+`N b\`eNhcLbDhaWQaz@HMs$o=XVH) g4Q @0f#HGN$1? ë_Qz8GzhU stV/XZ`遦 `(&*gQ(p_ID( K4@Hb?eNJ7!OC @oL$lsvr2cp5 tqΠrt9:#bљ jIcх'"檞ȴ"D:4G:ӫ"^u(sSEHGnу7cޱ1e'-vH8#g[i 谐1YޙDGև ہ<"<ӡb;9$,łc%/p?FEP,R"ȌD/{XpJ_:u*r {Z ?!ק^CgCR H."@K:~97ZoA7IDl H uZʧ+#5N#`:g p q DKt'ɫ=;p rfKiiB(LfFG@H04UB+$Ҁa (ԍu*š@z[vآѧ#Ex˥5P{PAA\ذtذCd%:\s T^+TS5-:z!=+ Q$/J>}B@RzeFSt~z ,Cթl`G'.@ͧ @%U($_a|ʣbhNyBS`L;" ϧyb4cǖCqMqEqx'eXJ MO|G=t wPr,9 sJya&MYNS+?I[LCH]E;w~&HNfܳ9`g| $[t> jX^b0b e Ԅ.Ԉ™FjɟgtsdF'.rKd rbANy' 9O:O$eRDL1> df*g9L~֢7Y4;4$8czx`kI'ԉrEJ)QDFJT ;l?wGp+TJ ` ;G{Lk1DZ/.lD25 s959^S5RT(,(JH@*9 3Yf9n 1~C_t8!eWg0Aj zD |H?j CL0] 0!0Gć_HtJ!e2f` F6o-47 sl2(lI.!ʦ\*Hג#Bpԟ+8u2CredJИ.zHpL82"0mX"P+&`=_Qb"m]Oeu2\*^?ױkC*f;y>["yZ&ziL쭁숂~BEb~78A`P4W>9 bRhbۉ* p?E! =Vv}Cx"p+U jQCXu^o\oˆ.<Q &':]mLx?(~ <8:+1_ \!qD(-.q!]N|P4Bj{9Ii1ϛvߘ ڰAdi@ sϐ G$_,4CJQD~=͠4 B^] 44|+, sC)X'G OB/<&*Ta1fB%j.3\/o\);71 B9 4 Ba)\lu C\M^?{4x 9ҁ3$bdffgqq!@~gq+qn K,`pM$? tvUtЍ/S@eA*U!pM?!5C^cGbD?"cfșd\\_Psr'Pp·;NsukeDMt:athDɞL }ɔ7Ґ0TY֜ zfE1 "7]Aw 0( hG1B`twVM )nPiM)8x(JlCa 2aVbn2R>0iIL)v&0p|3Q@LAkP>`P7:JPH *8T@% (e7Ч@!C(f6S`)LT]W Mt1C<ۡb{)A\(%f؉#-)k)20X`*8.lZ Xd8ʨZCdk14a10:BJ1Y480(ׁ`lhARzj7HAF;쒠ilځڴ >F;`+'^Ñ+@:WFs::hXI }bUrY UnĄuhnUцg lh:6a$A@1X rFŮ)xʡ  H(_i\:@$pbS& J0xH5 0 06RKj9{f`9lf W`{PDqYh1(t6RGʦ #;х4ُaG@=z@fRPva 52d DM\OCI.?\q5h\TCb 3 ]:@sA,U, X6EiDiA3;T*&g]Ӳ CzΨjEH.l:_{@PXb,D4ҰٙGbq`4ԆMHVq>̯1*Q?p~ Fb۷jD߸⣣!0!ɊqeR =n#Ѓ&9;qX=ƊS71cۺJhkY T/.S*A]-ո~.f 3)v$;zhV$/U9+'ȷ`(ӠW:AedWvГ\;ϟ}#$5ԫWo2Q7zA?5u&l j+g<P0]E<~iTWqd>i& 8CF~}7G@=#n P#I,rx0ȼu Fl3a3ȩ4 ]y̖* 6~.X"q%2yb,\Yit,(#9(lQ[-28袝CLmLZO^ #kb̦V@2 zi Ó{]|ai?zM򜭘Q\(p0fy 15#4jE-*srZ7]#]9DX/kA~$ǟ0FBR۔Ck-?ak)A<;8(\Rx.>:5lWj/PU4C(@y\v0yyh%ಹ=Y-Qq5@z5IltX6iNӡI ڽ1pQ/Px. pO 4z&Q@')PQ3_HT`&JdaK&PP 4'av@%.&);UQfKlekr6]kڪH?" D7>@KzxgJ ̡rŇ-+)d*gD\m.-xC.ѰM~4o}ԥO@gL8'-6 2q؀siu_vC#A=6U n(kؽ䁈)rQmhTy4ѸߖqwR;avq~Ǜ[AvN4~¨u :!u ~ ~5A :4S+t<_A5лH{`S`d<pJP(QĔA2!O ֻ.?ܙZ`)>t$U똬3 #2h$8l&X 7 j 6BT|m&E'QO[@QC_X>e?)plwI 2@n̋g )<܊vg$z$-zYykܢp*z2qK=}8\=Gr+ @Ek4OHDahCɘ'-#X0CvO4~{85X6Ne_]nwӻCѰ~na-_@#@R;ÓhkEtszeg{:upU]N]nȫs&!sbȄ1„οeqײ zMJ)n$RHeC_E"Ҿǖsyon2רH؎N0a!r[1ikBWn|U+Jm_uP-!VlxdWU/|OnK<;6W7\\r6 -, k?nw93g(c_~УM򯂐h\c^ GT}1o},BqԨ h\m"NKT PAˠ(-ae^70\F_X"D&"xg_ }W*qS0&X2;$MR_-q6n CT^6ҌAJCca3A5qlҶ:.[.D 8dMGEiH. z5yAx $o2BG}T+qd]H|hQhO(RX5$$$"mx4v()'r15!*tȐV!.Ոˏw0{Mz X^ATon'm3Zց::Z'Z6K$KfjdjZ'1lIցM:I:ѵNkG:Mցmh4l]뤮u`o[ִNjZn"D,;d"E2FjnA8GPҶ7#\/;3ywLilrlylJmGd4 {q[ϖ{9ծ;PZOuPﲬyу06^# {JYuC*e }z BmZ)<%K(0c?؈LO}>  AhiaB\'Ar T(DY*ON,G(pB'^^!x k"/ wuFZhj(Χ?k--߸Cq`~7[|>~67*|o߃0>U{@uԁdJ<$ I-T08|lN?zg4c] G:Z E,(A7msidC{hC aU HLpla&:`R 5kMD@^XbH|+UIYT uv_\:Nkk0I49~1Cm-<{!*b ēU ΢``*RhDr<"p"(fo{U+ACsH׆@6j︩WH\#J}]8h'hb "& 9*W Ͻa:lt8Ԑ9B  {Cza#l. jYP*8 'cx 5@G<_"_(\X-JKluEbwJ¬qQ}H/> x-VT,֓ƹL_ l4v؂/=K /mb٢rqDKyQyL\ȥ'} āqh64bOE`)~ya /RȇEp:+)P]YP=SC _Bķw쇉 `Z0{% #NxG Ev*Nۂtx.e_aoWzG\弭I!t|<ۢa1Dq,Z9tC'iY,R'0!iˠ: OK;wGkSpU~H辭6vpoÛrS_)qO'v5 d\5]4]}.,+D12)/:%p>M'3O#O8 9O#Ǔ|9>[_~T8hrx=^ AO >ÎG4O<>@ T)@d٬ l!P$ϫwcFs*הW ի -4VDu6 \GGt X@lvivK``;Xޙ{[]ޥ"A?PȼX̹ o0A%*%>ˣ%'"|_/Z}C*YeMh |2KEFa]G ;vH=N:#e8H`Eth`s2 fO&5 6C8l!9~!itI3 'Cbl5\\ <;x2#N18%ȡtތq'4wk&AfB qrXZ^$cdKGz 0$:ɛLxzMĪr&(Of%G»C-Chz^܏}+?Gp /"Ԛ5/*w^(/_ǼBijJ`p8:?^sh%Ƈ];ڟqo#Zx]{sAuy8OϐX5`5̧ 7PӹvoѸ1T0$FvΨ*`V9.yRh<~aWhMYL&m$ʨpH?0Vϑ4flV}%tCgjw6y?6;`(ӠG C]!! X7W?uXilqC9‰EܦF;'T ;A'G Y 4{bZ}"<׉5g8Jԇl6@[Lb(a!2$Q ڞ ̚{ј25In4p d5.La~=+eG )NH詐O++{ AվC^vPI8pMjUbìKb?; Y_뚖+g2 pAp .d;+ rY#.PXqcc9yh7w7:΍mD>`ǖwԃTcK~B V |&ZЬ~Ў@-H+mAĮa_1$If[V2A+`DaszP,F|G1"p< 3|}ʸ<^0ogCTTQi\8R&~  !nv0"p*M$7'Dbt\d\*eŪQOOS *u8!@Y0e,uZ$z-#H|Cڀ`énvAU3N ybR&ؿA[$Y)S̍@N c8ETK)6 >R:"SPMЈAp\2\01Awpmc,E^0옒Kn_KE~FpǭZ7{3hJYzmӴ4S+wu>(gؕ%/]u4Ff,lg=OG}'<}Ub:vu˿PNyWc? 'F܎ݿ{?̻gנMÞ2|X~^-C#ܧwyAK8vcܬ|«jSp,m xY1;µ@+x|xzj+SQlUk3ߞ"[u%#V>x=+{tQowoRY+Ǥ{=! ) K 򅏅ʅw!O\cfir7,f $Ƶrԝ1y+U4yj7NѲ.#_xlS&=`Z0ZIb3e Le_Rล\^z)Uoh~RH0M"`yd痟-A5+)v2{ S5&yU^U63x0jcYPqY윌:?7(ɥ˼YY[h1aox0e؋/r:\vET()e@m?`؁i(+o<%TiYU= yD?ލƼQ iRTRŃ fB]땊[3];A5F\2ѿĪ>W7tK T Y֗42%UpfDJӽ 1ASėls!BJxH2&TwU!vqVqJY<Nm{!E)+\8C`| `0U;v0Jۦr#U6\;;k!0tD̶jҠr EJh)9Pj$|[F:9v퉗qe+k"9hN$G ~z\Da?QQx_5iRG(f_ 4.VZPavhɀ'})Wa50$Gp]NǙ0`޽l.4wE7ȹi@"K>TZ 4RBp"fmĖ[%ܜײS]j4<ǧsQ RiqU*@#, Љs - "yY 6z*W3tPKNBO FM~p W >1 qKWo]z2JR$9Q c]}%YPPoD8̜{˨ ! CNqʾTI_Sۧy-Hk9!~aHDcL`$1- ["ݓx SiE/ܫ2"^uB愪rW#f3ow[=)Ezd)C +􂐇VT S.,;\faWw|]xY!3qDbu [RƆƋ+HNPbꛙ?T՘q^y= )*,Vyt$9\IP:CBb2x'iVi3S7xB+U̞e*F`xOXAd R<^j!omPa[zR^d'\O"/3#ϋ9T90-Wq8Bku5Y1|vO~U709Zօդ%tє.gC0MXqD,(-S0UQ>7=6wh(rs2(`7qq0Q62Pu*bATrT/~.VT?$͑!$5gT䓖Lٷiq֫, {n]:Ç.\X?IHHƘxi9*efyJSmaz cأq D͟|(1XhU ԍ0$ C[7!^hŃnR4] FVfJ긭XyԎW=<+HS ^ D vSwGYC' Z #&*;OLd`]0z%&UiKUG‰/F'?za ubdFD‰f"+= TT(ۖ4aBod H҄'L+c6 $-/<(3T&#m ')*v0Z etU3j:a(&уV)Hn.ׁ8< "x]g~ӵ $No<1|D 3Iʁ s5Tss,SrJt =?\CvZmewPpf⋍–'y^ݞrو^fJt# ccчv|6\{0+Y(ivanUěѨDmvdÃla ]l?Y ";h8DR'W?|LbRO%E8ŒlVx5qvx.P'tU? `Nva~N ]?v<@t`<5A~@pbn OE zq MYD;L)8: Ԇô|anacCG!|;^Á`( 6,.@Q= 9a@WH5Ʌ!5[J1~mz (EiC) q͝X09S@vs;sד9: 4u0YX?:NAցA2oPX?~ u0kVG9?e-#} <HҔS`ZGV-8 !`͂.B |@ [%(rJ{vгi5G&m0PSqEEb`$(d4fM; 9lp?jm˦Y1fAPBZz7<95yR@)Ol^/ Gʒ9٠=Ԉ|,<4o&P(@|X,+ 6!ڐ liC!DQ5mA6i 62if4ڲt3ͥGpjUc` ${>s}ڵ&!^+eM1t@|1lq@[gq-{֦+~lǩ]J֩N@ qsDZ:/L0Tr fvMb }JS :!Jw2+Ys ^路&pWxН ܂F.j-O`˴@1"VC?MF(uAGP>$S*|ȣe dgbH1f"P%Z"i i.";ĀG{6qh *%+^#y}ܵ VlM7=VcdOb@^#'Xa3[SC) PZѻ-^.LJ*c93w]r|t^Y/?AY |VbJW РL4ڷ* fHWHbxLBH@ud{BjC`ѵr'\pT:q(@$1kr-l c ̽]u&ȁA|]@P:R#FaHN+i&/LjGhL|h-@ жl4*u/ZKct/%pО71p8%31Gib[r#FЯq(+mEZv (Z8*bWM D躠Lk^~OQl|^ ǭ36eA~5R8)b*Zq R2Z|G\4t7婂jj;.u"hp)Lg ʷl("+г>%~o(j+1C)-7xipcsy@-{iÂ,I1Z1@· F2issAo1{bFI q^iyX:5DѿT gN7[ ]>qo0Y7`;^ (@ AqFӗPO~e@&4 lB6=Xt6o [ h!x;T+`!c.7յ9#M=̃9%Kݞ!| PK(r'>2 OS' \P Kv\jIBC̕G"jqoݬD跶[.Rw0ߤ]؞)JsVTo-~Egpن>uLBL*j/탲Hq"r9XT1CʮR1⮗q)iSS d\i1; 0dyC%dQ$-Ocx;PJ\!KM%؏Nx }iZep0c 1\چZÞLcfM31sȷ%Bv}?݃@n"2eID-Cd̬qah brS{)  ;n^kPp>>5bD[a, UņY6~y[)/2cTl;rX4Τt%{ǚ渟m2 L3[<ԅug\'@֏ W=o+Յ|V(S)wV:vn,~\Oe<Oa׈y. *`5źE.s#} 6YC6NWIsD>Z1eWbOv̑KMZQݔ=#`"u٣*D#^u/yK\/rpy9ADS yF^#a*[oMi]x^cÁ,!X~h 0i2H|ѡ6PK ,zJ 4ZOOM.ASMa { K  6    %    %%  4 + , , < ,+ "#67h<#EVH-*.*xן~Q}ԍ`;4h?u791-FfnOP?=7?R Jī ܴ?W{Et`g\׮m]6!^T(~08Epϸ=]=y;df٫Lrepm懢VCqf>_~&}4wɡ ~Q@a}ԎoNM!e1s0Chzk ͑XNJD8lw0L&'17 l:.!ul=Q]"f5c(SoyZPZ mR%t6Qc-n'1+kpR" "8?~ЉQPt_Xf mXN(Ns(N)N(N3 Q\2(N)NS>M`(Nq#SNE)P"Y,\ʷi:i:i:Qh:iҏ1FhNxRSsZ8dF-$H<<<4 ihhhhhNv4k4{s}N#6HY0({B._D~B'_~B'_~B'_~B'Pe2_ Y]_ÃhOÂ>5h|}cz: 8/Ojo=|ObO2'99999s |ώ=?+7?k#?K{Gߙ̜̬cǘɏAHr*AeOhN7gNLTQxFZ[~υ7u凡˲]yW:Qm_6`_ëӫ%7c79 a9b9yu;ʝr"C!#+M389'+Щp܈\FM`XDdq|J]PR%!I )4eJa.쇻ܮHn9A|42s&0Ox֧WE^Ɍ+'V&~#ATd$$$Өw%@mK-~L `=Q<$p!$1go`@H!t 3c 5>n{u;8HHD8){1p!2zp!ts3@ ɕ<ҡpDyHS6ܽtһ=c84eTlc?~a@yVpE |E{Ǐƭ7qCDWz>q>E#'P<96womC{/ӝsssmb/:C+.*T| t <@3@׆!Ձ0 !\0 ) B 7@9ô0!C?Bx—ބ'G!| UBx·ޅ/1X3cAM^' | @x'^ s7@?[ E)F??>=<<@;0(o kDޝb8c`^sX\ZRDL,`F6h@r]??wyIIWm?YSG 6(go? #o/tfDLwvߍwzw~ -Mm׍٭ Q-SMUmWY[]_:z#S;{yCK Sr[rcrkr%sr+{r1C6K`" 0€ > 1ĀV x1`ƀr 1|@I,d@Udeapfm0gyg C h4 ҀI* 4`ӀNB 5ԀTV h5 րYj 5 ׀^~ 6`؀b H6`ـg 6ڀk 6`nn:n7W 7`} ?(`>( 慂цqO M=Me-aK%K*vbkVsuW{ȼ͓}͕=̛̙͗]̝̟ˑ|˓<˕ʗʙ<ʛɝɟ<}=}]\<{w >#x}/p.֥ynIj.p<@ r};lR8muZzsrב<8@bz p7@q 6@g 6]Ŏjw4Ig"̛fl 2)K !|T"g pQ+,GX( `=P ?' |``@9GSCSOSYKؒĭfERmZ\^G*2dteetfftggu$/$?u%W%gu&&u''uDDuEEvF/FGvG_Gwvvvw'?w[V;  ^KMU9q"@*{L9<S4d@G'; 0`aKt .] Z%VKڒ:]J]buQ.*vY uMKL @:6, \_kvdvm7ff/J/j)-[d#bXhE~cy9:=:!ST$V|,Xn} @X_A ]! `1h2@, 8YcIX3Dq.|K0ZK0Ym#[B kkqH=p~+9ۻ-.(Q FR`L7HTRQ^U YjhW`_&YeZk(\ rV]xH_>:HqƁ!ŕ:ht`ӁSfvفlw߁96ZR9@Q9pL8p@ /P .0@ -@W ,-% d,а@ + *@ *p_ L)P@- (0~@{,w@edt3D?\OM0a*it$qt?_GkV&ߥzRr2u*>W(V(N $Lh``bFiG &F6dE%B,V6Qc^-Y mPh'+ \P09(TH@]8yo;=NjgS'6k If)6nbEg*<`h~36 [ndٻUTJ`SK"hdрyO<#H&}=I`bL&o6$`rF0)#L&_.$`rE0"LL&O&$`rD0)" L&?$`rC0!Lb&/ $`rB0)!LB&$`rA0 LL"&$`r@0) L&l9ꩠikjmn)Jڢ,ULř,U&DE*!H/PkTS'G{{TRK.58HPCݎ65ThS-M&cآ}L&qDA`̉"n$ H=I0W̗s&$; OJ0̥)N%W VJ0":|dwRA m N%]۪ҔJ_ה__o{j]qu-us2Q~ʒ9Hb%%ݎ}_{m1vȟfƼ:[y0'~w`Ɓ~]\a@/?@at.M%'<聀:H^ `9 0wE_yV0P\(`"K/X / :+ئ{;C"K/`CF ;s w_}2ߊ|'…H!VLE ˂ '}3ߏ|9H"։L!ms!K ؎[[TҼF ~1krnI!cv=E]Cl̐-õ"LJ%NFWCߋ~?MgEZxqE^,˂G n--|آaK] 6X`qS 7>?CCEРACjУGrI:SƏS:GS֭ނmvcc)MO)?HP1T0vEUo :ck=uNe_eFXE!yQ>:uԣ0i䌏}p$K]<7bdl͗c)>}h# M.e :S=cp(E m&E)d{L[Ǡ  {4cQz2“5S]C>!ӡp*l~$hXBfN(Za˜Mk?%dƶBti!-ԩcfSC({۳{jQ|&S9 Tۺ_D9o֪ ASOJvQj/~j 4 sI}:h[I}: >Uz3}ʳN8Ae"oBGPl=%6 LiqHKk;q (=bSusT?? \=zMj~ız84;5ԫ[Ǟ:4b#c^sRn\8SӧTFCTb67 03v . |D) P(Nu,IŰc41įc)k(IEP\îr:D]PL)Y̎e3~ xltV5@%ԷӡA}: Ӊg_$8଩C}NrKgRť.C: :#GgA *p N+G ~Hgg.F^CPK<:@ͣk%/`Y`fpHpѲrDKL䣞ѤiRV!Xp >1 V(~S_a/,i!"ux*OsY&. 8!.ʣIPbLN-g`A= B^V3/zdQH]cP/  C)S/u Xԧ>20Oc~CFm|>,) Y%dRAS̾f+SLA+"1HL-==cCg.C"| >*񨟁; H*\ȰπQD-^ĘQF=~x%Ȑ"G,i$ʔ*Wl3/aƔ9fM7qԹgO?9d77=xO qiul!8CBȞ50m1z1t6.6nx$6fA<3'/PJPc"ծBo@历o%|!['(fa r(]L3v?oW@MMր6,3~pc!+ 7l HhÓnͣܘ͑cبH~jH"'+ꓯOz?/$xY}ߖ;o,o`K\hB'ˁ!>/vkD !3דTxUrCV|wPcy?(Vz\c-L)<ǻ$^رM%05>-O~B //4"C K2|p'Ҹ,C /P(C 2,0;C q3iÔ 8z+X@8p%m}~w|'M2&?D28kqCҟN,&F3 ΧpN~x`Slmxw1*nAF$}% /JW|:E{50`}|要mq;GE6v!6ri1} vk] ,emf _]0x 1(m;@rTp C WI X :R6靹W,{Hm5@z@Jhkʝ{/d.,n6r0LLw- 8Ӵ=@1ڜ> Pδ׬X=eɿ U1VéˣE0m؁ h  :۸uP6\1UŜcz+~1gg%|gӘI1gV!L p˫RIqJ(d_(=O( ],TEfprfl7#߸sCYϕ 5i8q\?w#q`G`,~sxz/gߌ%<~\K{ngwf=_Y٧;oN@g sC(ʄlϞw@ cv+Yn qG,2)mTZ 6ZN8u˙D J7֚.8S7VШ^Ϻ{W/߾~eFNc=9b3=c-<[ U H ? \>;Pa87=Zd k3&\U2g}9>Ȗ?@j? Z}8kŗ )rlS6n%.ox]tz ODˋu0ӌ6^=9dNϵ 5FQؙ(7E/m| gOOms>@(7r$f!ΟA %\퀫*v`Bע^> ٴ8z,GݰMϗ1V8CBd}]hgYvcS ogsfauP|5{;|2dr y~3f/ž21Ҳ/^^Iތuy k.0/kGCw66v\FwD-sQMgO̵=#bN:n?b:%$E r71E)&? C>w66Z' /"*eA^m5nhˋ) Vg/ tu#N=%>Q"tJ*ĶJ,1DL3X+xy= $e<Ul#E^ixȦh32f- ee uGJVʈ}SJʞ@ U_Tʾ*юVB3%uj׼4s"9.L2ށ\ ="6,ʓRvcA)_!/B_4yE^4{E-_$}ESc jFkܺq79Vcb9x;옴؎r;6Kw~q, ;Ȼ!e*ҩ糊/RH$LLR6yNrj%ݗ_Rٶ2 (}c|9WLTfx˗Z@Rր+ƕS G⛗Ǹr PeM BYv XH"v2òڲeD0~𩓯&1l{!vL5`,dяP@z!Ix*o ֵA6ſ)~Nn=CA|7[l|G?avK cyڰb9d*LZ{UnsU TdI7uJ^NaYKDGymmUsְU1uI<cs#+d 3Pdye ?mz59 -KR9ΝVۍv裺K&1BՁ8OP*솭g6\{wou\3s{޻{ẃ7,;LYwE7nu \jfrfȲ~~;SȜMҤJ̪Ca$Jٻw9r UR͖-2kJ% {F"g0:`=vꭻ/3eamZUV"^U\[5c6d|ЛKw^ݼsA8RD3CpUv]jYfڊSV5{n. ʫN93! XE{̀JLn&Uo̶ddžUFԫuYuj̉cΤJaeeK]\L!Cհ3v6lCȏqDLlݬoUC0"I#FVE4*_dBX4<*Ȉ;ggC2La)@.!WOQ3dfmY̚e&ߩt-iCCG; PdDVv{!7{O(N&Z֜ Mg:>әF ).IK|sv8_Gν?t ܏G#Ϟ<kpTeĻWmRYHM61!.hj&!=6;d+K7f'jѫ9 +rXޝܡKX ]B<{@8PS( >ǰr"Gl I.|?CrB.iw:b7ʷBSHi@l$R/?k/KHTiy-Blx8PC("%{'5o8up5Vdlipf^ W̐=f@ ȲGjLѴhEg5 83 ioVuBX.! R\O`1+'}K& hAjs*dH{7G[`|Ї`>oBlv#q8YLuyBOeT$TbϽٸ|GncYSXv sj(4XbOr(X;Њ'"wpdlvdqP0:: ؑ8( |f!G,PlT9`3ΐm\][/Fچ!R`ҟפ\D6ߵ5 gy)Pԛ"Lgۈ5*Cxu||]Ud YIdԐj;B1j8'X33.^Kpm/rD[3%FjыxZ~V1lV:ծ٨d$ՇXQzpPx‘44G T;( =ݩZ"-ؘ2Wg}N)&Cs8DgZfgxEsoKEq':RV9;Kdi~ު3UӊYw[{9ueH_~R!gqgJW?ח ;%{R4Y2IeOq(͊Cad)?| oc]%:g H#hf>qU=9 p.(2Zd8>U,]S_$p1P^o3^g7)T6͟=M;l{Z?!i18CvGf!:)MG ??.ю ;y智ҪXCu{!2D|EKuYE\A)Ud|,ŃI,JK>w Ú Aϯ >͆ [S4 K?~{>a*1ffW%htPwgÑdGMs!tsAXeB |Pҫ2D=3¢t>$᳛+΋9{ߎ׫^9SZa{9hq?Hz洿e?ߋ[;솩a6Amqp"I]B2v(տJpA3\?_B"@lT(nW_<tLݳg/pAp!MC%vIkVn#6OS!ڠ?h^3jMd?r=F_Jr.roxjLP]&;vBn OoڿsF}O צb=!χ3)?K>+ _7>Kkn\]sH;| /4 tH`cOzTt^G{T藋 !2xhM LuK5}wя@ee^ww;9'v]أ8S A?uC =@=U~o!6'a}C(@nm{*nf-/_sOv^wEJS^_*UMP`ܮ<`}=ʪk*$^P!=~d`Dv=Pp;̀tXR Vo<\ȏٽV Ľ B{5p{X5W9ч w! E2Du.Ty\ܜ) 7Q_9/Z7{/r|Y"r (S$gˬj0k@ Y1-0![.] xfH3ZX~־epGw}LFW_+?g މG.A^ jΈiv%Ï&sF:-9$]_Țvּs!5he$|S` ;"ʐ涄Wj |\tuH&' Pkȹ˟Bk*|x7\=ppvZe 8zNWuN>+85sM oM,L]P;]dxTӺșl U Ye{<~>2<,' pe8F|wzF-}ԫOfiwj zGԣTc/uGfDJ9'c L3(wgNZ4'=ttf '*"P.(_3A-єJ+۫f|. z P^/s&o f吖xEL}"1ƀ~ 9G+Lu^e4_T!%ܗ.E*s;hN(=I cǶB$ 7 9~Hnw> ?3\*`RP;}&op<7kepa`kT, ;Y|٪Se>HSG@ XrȡjJ:xS`-fqbf_3C=p00 yj =a7vҳՊMF r놂todƺ&'4,C.kՆE,>jj>AR0tKO|Vc8Ώ e=z?*pS&1ϲPy.Pp> %z1+9~v;j@uΏ$HXG(d@iEHCz/)!FoB{D@3ɹ2{vuTBC8aHYO|kQef,讹v(."-*ec!`NV( *(\M]ZPc1]8DRb;+HazZURW.cv"˜>%ִZw#/1ę +ɳWnQBFSRȱӧ(5fQ/:X%)Ů26Buubtt~bIUklz9#YԴ6/"h3bN# @adM@ꇯ.:0!6%' BSY+GFgƋНb^3s&;֞)pg\*j)=b8c!.$Uo9ezVafc6rA<;ҵ!ֽn5 ȥr6O-k]fcCj KoX77ܷ91G`bTG$Y zeVh@ ]K4l'a!dp:_lLnܟc;SR\FR]澝y;<ػ{2^̌7em$WW2#lܱ Rs:feM$v3_Ú>>; NQ .jѻc+ĉ!oT,<3̬_jd`4cKe:zDCͷmn5$`k  bEͳ»@!d?̺ӜxGxifu,u1zշ7S9יe&Uv~υV2^Lx'Z:c0=) dFr3/q]x"W vwLG,iV(?^K;+7mn("+as@Uy>aK`nv1SMVa%.dwc 34cqb!l#mñMZ}@$C"Ņ\CمUR!\/]m&jCNn$ɋ|ѩ)5+CsA|*v= P/U<XF'0VȤ> +G8G!@3a~M)zsK H(PW6/M[zրLJm ;4{:cb\^w"@^\ܢ(65ۼ|QAFSCRwK~ "fe:Aуfg!zf  PTuq`Jxn}`0P9.Lf2[u5W%rVɃZ 6*<ڔ< 8BNJc4`vlE찬1Kտ͌럂 Kiqs]Lf7ڽ؁~rRFw/AzeT<@Qj}l0d-o%㪯 :[K,*2axO > ]ܝ KŸk3"P&ҪTAF69vxZNqx'+hIqbWvݻ(Izr<Tc󃅗`˽)wRctߏMda"3ֽJ%ƑP&V]XWo,ؐ3xאs&=Q5+>3zz-ܙKϼi{1B gTnA ~?!<`{aUzj-cWk/P~i^ `Ӆ]V,QD;I":ߵ޶FڨCNz*fWU[+xrM8=SaTG1Щ5'ƭ$ẕ.7yɏYNskmo>XHR#e#%$@ #7 ` ٜwWsrPJӲC.M;H;t|{#+7ݑe,a(b;O6Ť{-PcG;!~$@wviH ==:,Ǐya{`w/N8nKI (R0A.ڒgۗu _c yAtz^Kӻ,%Do>4`Mu&)~JKxG{ݿKt?t}z0}Y[rX Y„]zR-lTp_/v 7odӰ` ΊK]}x9?Gy]1a{6>?_X`@ʠae2eg/{Sȍj]:}c?ǩ>tm!a&ѣSo Ud(\h^o܉Lػ)']p{w)|~)ſggnrKa{B9$Kcw?tNl! aӧw4la=c@"yodSȗqE&_vH{?1O6Jw-,{Rۇ(ϥ ޏ(CU#[]9@wa`0o;Ϗ/~!g$ KՃ_G$̒?"K/:s`m^>tؖH:;B ~WBAޕ@t={F ;<ÁMvOe̸~n6"qt},l2cSؿ#C{kY5A5l{t^eUФ9Y۪1z;+0ϖMS?/aU~PMVF'}i.3+WÎ=gu)8qq0?~#0:sC뇁}~zQ X=Ƹhݽ/`BKvS"8/#,XeFn&(a}gĨ@}z|mr#tI5 'PPev |OaS>M'Æ'P)18"b-,XV!!Ko?E=5ˠ|R,l>?W K{Owdvk)_+,p_PBޙQ˞ΰCcSw҃C}X <@}w {ɮ={#5j [~Àl[- ~C~,ȹak\AKCbAk >A; mKrt89V~e^˜!.[_B|2Ao\g?ʗKUP"tw!S0;tq`BQXq=̰nr<~^wCCa} ng:Is{?x*|4@/&=R6LsͶlJźd)-Hw"1uJdosj//җ.#V+P=}|&/ .N'ٓjw3 ,sk;waOۛi P)VK-}5I0(826E*R-UXYA+d?V !K';IqA ?Rjst9!Ý>a_EtKK?Z}:D.Aټۻa=,aN Q{Hp)WEK<{A'y[F7%aF0R?RL}t(D|)C9Ψ.z p_b86xцt@ V+&9z`#&ЅQ+Xx(@prD ۉܥz;O ?|8?67<ԚԫQ$p'GI9YM >G=tW cG ^3R%5oA/ ݶ~Дk1? h-;q#eÖ8?o[^O}hh bz ?WڴG=w3ף5wqbpzI[VϵNX{Pj,ܠY|}bĊ NuAcH9ͳ̬ j1<=vD2`0>frkwä>|w% Uڄ0DY&)n3ҠI!Mh/2tŽ; =~tvJi8&:-v@_:BANxvtʼn+FncS(;8VZ*3_0[tN w!wV>d'z{P]W*InгjP[V ݯ_c{Iwg?'x:NC!OQN@6NԸB819~TM ūϑL~p,=u!sY':QOP+**|OPj]rDޟ_݃\)k3>՟ *gf*`x_>er~6 gPs`:jI?z}tue|'([IeEJmIŶPtto\? {araO 4B6,#Tj{>zG ׋KTQ`*K\JGZ63rCXx5h}UzY={Ks797]ȷm-a|GW%e%@ﵮ'ϠhʵJqKޠCն MfA)q\!{F)U^y|Eݜ `һeKQ~)a ( Gǟ]">RtK-_eA}xvQr,%:1hK9Bb /KKZiSzɐC{T1^ PqmH/R"|ˏ܃(xV+12ȻGwA uЕi!gQsҵ(gH1J% ݇wh`{bWawˁĚ Vc0:RC@8mwKȄY:B'˷#2WK Cno~,xDLk_!ܔhhO  ۻH MW)yă%< pxV#t)V%?{8tqu$C"+=NLҁsh7F7.$nSiPfT\ˆ.Le7bf+M2u8$rRRݕ__I\d>-#={LpC4c=St. :Y&CShՂ1њ!p1Me;PY)VVf*a̲3tKqj"ЕP$f ,8FsµiB : ~GMO y}Xn(Zv?#o Tx4:٣!pbii?ȀNw$:ڱm{=K@(ҰtZ8=`2%@%'[A×Fjr¦\T;5=<<_S9H1j F9'f*ވK3 (zr[j<87>19J]! ; ;2yMh^%FЎa=ʌZyƤu+G/~)DߺWF?b6Î٬%& $1;B'?泚'lvp'D/݇=?`Z Dr@" 2+ *Y-1ǒ k D=y!?߸%I3Z]Yf,!e?K{6#t+跄Z},24N$Djd{H>3o}Jer6-s8\ y )7ra n}$Ǒ U>2ss'65u knd{8`0.z;ِz>|Kϔ[K"V'pz{&xh\/e{Ӄau[*!<0xy?_Ђn.{BKQXEiq,bO{>>?m=?=@N xwf+D uL*gG"wlpG-߿L_,5 *hefx aphג (>vTO"i. s_}iӇٿԖ\ aCG_By?.ϟO6\RnO;6ٟ)\a9Nz#aBpA=8p.sL06I0ˠpo!.{49~y?9Đ=-G+TH lԆ]Vh c׀:/A,z$.~8 1ݐ~ ~{t#CZc$;YdW2s;aߗ/gprHc脡.T;N4Q>\P`q's ۡxB 8s~D^l?k}<vᆳ|p`GGnEg/{ft)`kZ@S%/py l݋@?V,%vގL,ځP +@0nmtn.!hb%m(4~6;d4=|pミٛ~ᐱY{AO2} q'ih=/P^\C=ti/ےc!tW_XYR\)>>Xۼۋ~w=.+_ lOCAQNixpZJ0XɖC~(7$ 2|'ױc(t1>s񡉬ۃD 1y|5L nj=^ 46(=& vbCfĚ~DEi⫝s4h~iN4߲6 e#pсxwEM .!8-_iG)9_(xT#Xiz>-6,.4!XȺIHy}~:ay.ρNJXEa@9rDg)7*+Fxi@ ZW=V]p}!r- J  Y7bj܁;jE]33h/< i @`wj5ެ?l@U P3|3`S-k;*.b~ˁY8Pt;;vҖ$4껊LO:/? Kp# ;<义kZ?( ??0UL{8I=?Gb(m+t *1ufrEteX顜:TT`=v^<͎Pq9Ս۸w;.ˆK*;D\CJCѽuð8q( U ,P "E; E CY/#22q@A7=Th.>RJӪ^za92;ʴv6}|زϖ=}påZ3[u։ CA%Cka{ ` uKjjÕ! ,Y+YIuhmp!ޝm(;O 젟/(yৗ:o%%K b\~-PvOȕ}|Jxae!Ao߷8|Уu>TY{@Z#ӟ8Lnk?V,hxVt\#EWھk/ PAGo(a G5D+KFN*R}kLs&a_{l#2?$,=},k7At忱ZXL;$בֿ%Ċ1A(? YP9@ҽ}KtONݾgOs50gi`ktT .?>j6A;%9BY(>>Ak0$8 Ů C֡钾 cNna1&vd쑐o~0/=AXv6A߷ТY!ݠB Xf6eݤ{+;QA"QŸ{|K I1eC+MFgr,e[nPeC-l_^yRC=tʪr(꼙z 9h R~`J& pu\D>Z x?-iM"r/zRZ] T6h>La*{e60o.86C^`!ί@g _9.͋_(c k?HQOH}>Ya=tW9r`VA:A  S18yCd':!ӨCӀinޞxwsg  <(7;: ļ\瀕|9;&˯&1? .]Rd{VjF %3Sx{v?P0!ڙ)3 ʿ-`e ǯAE+}ڗS;BatCNc\+ _Uv !G>s%Tp tq 2㏜?rw-, "123(GJ j>}`r~Vf 8@UNSZvN'Y^D?tXvqt12+_zx_,`6@ߛ9= ;vBd L~ a?eS'NFy<>7KU 7tZO䑪^=`D_+p~6CvQw +CrPC:1ii?U܋.<ڍ+#$]p$rIJ0{ikv?!zO; n]#_:Aw_)vj(-D6#",C,GQ˂g,Rcs@&VOL%"΢ t`B8jp T*vhnxa{כlvoA kK8})_){@meR:t,":75wȈO9z/ *'U"'f|=e?5<Чi n3G6؀[1ZJz)!-7b Уu˦ [ =RahzbճdH]OtP _Xx76 춲]hJ7 I_,>28` sG4`݅sVX1G׺܄w-FBL?^]ȩ}-+R$o{FmmO0WdgDr$ɣ'…<܅YQ}|2:|pkh~Gg,ſg>_Z6 x{ș 1샆gHW^ۍRy-dTb9dx${8#s3?8%=0 6R:4WWOO~ a҇@pқ/;t@w^~V}AK!{@!!H(ub8xؼ} 5+fCSxƩg@sFX[7pCj@=} 5 ^{C GQ%C\9u@@2z 1 h_bu 4!C j@ZS I}3Ș ٞzW߁aKeX/ )O1p-I36T}O>1!>42ϾwKvpŵ-ۛ#"_c @J8ޤvY,qhʃsf8>h2"wAFӻSno%!dyyU=g{,sы_i/ S~XnQ;G +w{Õy0=Lcnw)VAvnp%8J(#R)&Ep$9>Ca0UP7~4\Q"Mgg'p{QbP0|᧮vޯ|+9Y2~f@?{{?6 9͗q1C2Ř w8=*ңҽX!$2l'@? m%/UN?f+#nWɞp#A |i6 }=_wq0Cp=OˠḼgvN)z d 4 -l :Llu.u03TD;X? wBb[y~=4N#J9NtT\¤͝ 3|~iJmTG63Jóo8 q=syһGq:^܉$)0GKR/~ojR}M}@3nhQ)ɹ5v=~;2=V fFg5韟?L*./qw%[幜txAĂa%h ? >dI>'ʼF7j|6Gg 77x65&&?jénVaN6m]Clc=z9I|y?{bpw27l6kJ <`[KI=\Ⱥf@6C[h) Rd egJ5̧]}ޫ WuH~mv>:PK\8Aa:} Ob|/b`Г )[Pۄw1<?<$$34]w[Ճ{|p^ݡOќ.NN33XZoӿNFh7&&_Twö#'% AiNW?ES#ȋ7Ⱥo~\(zzywe^4Q~o:,jO1}¡o=3Dֶ~+BbY¥ABX[uZ" J8Ә&XoHƠےq Lwo b 2m=cH}lL|a$,$ չHo&;wGs`WjݱrϞc5$v8 $зWJ쓯&惛bDZD `e~҅>ep}ww?'w~_m6kl jΨ9>0=%zkHQD ?~L@)v}Gp3ozwͿ  o}&In?:..{%̝ :G+ nB S 'Cg:BЎڇCuvJM#7y'0I3wZ?XE,|^ :~U}n2ZТn *QSsI'BxkoE.y|4X74Zs̨Z5@6s#`w?5. =Ҏ#^M_.SW>:m+{9ka'缎U,É:4P>:,8#7S\~~`r˝կ!n`i5N 7391FO:fw%KH^Sx6z"ȋSZwt 1Xӣ=Q@臔0w_OWX?鞽4'ь~gyDw#%./&>Hg V?X"a Xo g -&5r88&y콋gૃ߆f(VD"h18C9b;?w)@{?[[Ԫ} yOz+w"<,Xl?6z{7 ult D(w? Sˉ7T;ؒ@1`T5ix2pq1!ZP 2{f >{J3͸ryDJ$ 2!Ƹ޾#_,> ?"`ܭr;M2g.Wvkg+ N _taμBc_ā1>lݰl*CӾ8<[@ߡg{ jY+C5|έ0+`$q?v9GW"Rȹ{fλ'.`uPƧBUNw`U{SuaUm@y?m $KB{#)0?3wgB5 ` үBo#Ͱ&mwoU>`zz:x+`Gˆ vCJHhh"V^zH^^ޛtc.j?L m7MgoRxgۃAK j8`FQl?X9_iM&?&G0gؽ] ,6'f1|ˆ&xjDb`CB%Obֽ{7Ts^rC^nǣ=wp^Pwe/m g>$c'k)Ԑ[z8ra`jh`P;AFKn`:,&3o%əa^B*11Z,#@ 9ğaZ\RO!Z?I^,>Fͣ.tbA* fOӁG;}g h77ڀӼ<8h[}@XʮKXm!tC0 >9؟#\)u zV3EbLgeo.p7fɺH WI /dxD5TRZd]eւVc<=_yG←N?}qeEӝj o`[\z{+y iif;m@qXBoW?Cu!юD?{4΅N,wn( ` o;)/6# o/t^{gщ]`AʬvRfgv@ɨ`їɟC蝗av`0@t@_|Nqa}Иਿ{!;Wݛ`kQQ0ԇsc#Bo߽, 8/Š3w4{gwȃMP+ģy Ïp@'/|̀3c qE; a1r'!$9X܋rFɇ,dbazew!3ӊcwTԎ5Y  }/1'$XF h@xμx=ō a P0z9ȗcxXx|{/`e0>LU±t[ItB٭!r_F ?6 M+7Et4nOkvv]Ex90e?;ŲS>!$qsIDs=H x+rU*~h27۪@"`8g F;0YQY^6Q bP%=% xL`ut ;h~eToSʗHz e}ňT[{ufT)A7KQ?=x $tI}xwWRLf MX(}n'@pޜWwJΙ }eoOOUrm>il0kr]<8H zsx= =PV.~i /ni|zg[(-9awtѩ ɓ!EbtKJ>Qa~$ _@C{ wW[wDxB}(C@JT?`nPB7.TTIα~.Jc#6·[$?+3[7͙ eq%F fJ{Hӽu{]| G>HL2AtbRMMfw0xuCf :7dqf+HtB}"b_$jR8gߜ7wf2/o@?gT{a 8%hǬe*ƙV.:/\fom9~&D<15/b~se|* BZ#G;Pusrn?އv2ʉZzsy0] ncy&]N%XUI yJ!R $qN4a{7wk˹ل.qF4}B+CwX5w`~Y\MjR%ؗ`6m^1YI7DȎ.C|%R W[e;m,:Zk9/$yww@zo)L7B9H!e Z FJ$9%$9%$9%$9%$9%$9%$9%$9%$9%$9%$9%$9%$6qĒ`Ē`Ēdi!!$|ݪ$9%$9%$9%$9%$9%$9%$9%$9%$9%$9%$y%$ , h8<xܟ o CZ)/Q$0A#8#U]Ϳ9s #f?>߃_iJ|=hG1tl,|A?5 } ܖh>^4 =%): 1  `İZ>A;W#a'ncG' 6ʍ7o@ ;N{G\ONnd_xv0־Z/ V}` ƽY@q{Ս'N.z7 [8)4 򽁆E[O 򘰝 ``?fg{{?a=glkOc-sß5|)=_$0(qH9|?T/C "N]ak.A^`XfPdz_a-ͦX[6bKLC w4.bytN7D aV0w3wm)1;|O-)U–W_ۯ bJ{$Hw1R5n ~>LSBIRݕ|"s Fz!ICݴSN.]J?}ar1Lb oW|#Fg1ǀ „-Dn4׽0|"TH ~I8C~>q$gP?ԇ a|>QGß a=}aE- wl6hu]$Ԙ.vkU10#B|h^e/%fM;JOjAu a]|wOmlztn77/e] w2f wz(?,r 4^}ٖ7G6:^;.5ZG˺|Ekdp@ͻW=\!Aݙr?va+؜}:I ?>{VjQ6a{o63Vx5zym!/n+߾S!ݻ w}S(-W,9몰G_ _/71Կ/H^2ۃ-kyL1՟yApxe8}-7)*`? voLꚨ@uYOH շIMN\ڥ췞auŬTܛ_Y>*Pհz{bR*rSC9qejzShQ7BF;!Abtݠ@;fSwy۴g)u @bc?(%z+3'V [|,//Y{wgr~h_x7_>l :#9*tz4ay ɀÆۨĖ7z-9m_$}S_!kR)J:.L >tŜ2PV{:I{O.Ek2'~0}O+ޥӍDs*Ufa#hgl Ur`#_H¸cY\I!'{78V"nהD DNsŗJni`4[ޛk^UH OzA^6v1\i/!ǤA QJO7^8ͱPvÙ_׸:\XĿV)rSR/A:4@=c b|@n=L}6{ aw1F6j>k^TſÈPm o7r:za.u>oIpe@F9a:lR|x7ꈾ:#~g ~KmJ{7,bRzpYӹ=AݜNWcށ]ѿ_aW0PQyDЇ J_&?Wlä-Fd6K#fy407†>9KY-2!! /77zj3|ďpaU H/Z]H|c!.>/5JEH'= ٺFGv9wx޵ Rf3)CP eGd?*z1cY3!-[n=Edɧ!fOd2#m3H {M[[d|F+ [L!S- a!|N2|7M[$l[Gt 0zVOay7C >@,sˮOoïUrA'zSgOa0 ڸ+Pi&_2,Ƈу@ C(BnDY P ɲ_, >iQº036`X=2F :O?vaVٻZ [Cz Пѻ[篑_N)z@ţ~W W(AܿzB;F1f- o%,QxY*D~ؗλ{y )zgY!G`o)? |Kao7RP o}7 jCwr|9t3+KzG0Y%+W g8ἵW˅l6}.](R,نPFmp Yq4:}vAN'3_7,"EۃP]N׽xȱqaQ[[bV?_ԏ߲@3/L! m3aVT^ #ðz<@"~N]!`=,`BNv}YQ~x(rϛA#Ym`Eqf0K>?K>9Ph^7icbo)&g![ف?rL잝j(eϜ끛DW3o!z&= IN<7jO }Cz^PhM ѣ Q:Ho}a,)n;+vi.ZY7w ,m]LOW~mq 闇jE8N˰Qmz]~+\pniÆWLSVCsSD;4*wV)yEd ~X:G~tOQs&v2mu6nT|tzh9#C\}8] #H(dùzq(XrMmo^N(c⁾Q*vt3e9/.s) ]]󭪕]lwvW(s_bBn{ΥK +)dݛv3` 01A}w'w _65{f>ī߲;ߡ;ݥe v僼4؇ڣm m,X@G-+AVܼ!}%1_ܢld-khT8sal1@1eo?n qb@?ף_g>Q,ﭴUa>V6D*%6 C22fetc^bPٯhvZ-#CwiH',B]{~ +W)yߠЂz!Gޣ/˃DɘYh)0QwB{ߞ T;h}Ӕ=D&ٯ.{#:p/M&(H˚2i~D# ;\oH"qH፷v%Ҽr; cU8`=۩·H Ο wcی^ֈ<9ERaFC^,&3]_MZ1T9|%wP{4 X;wSa8W~vր\ot*g2pnq|OR-J!4V%wzctCBz&E]tO5 o?6č쌷ۑIؾt'x ʊ}g${N}oM.>]d>Bk>ez:3MBС4(/twW΅b.W8*w#Oŏ&"S5 !x)~;&2rr mkO S2cbGOW>HO++No͛ `ɻ3N~ ƈVx }eG"!b{P]htSy3v?A-)geJ |CiM]$TLν|&>O!R qTpH Ch E˵v!j3ISo_"̰%(bCgPggp/iP)}1^~w!]J?@gÅnh){RyQᕿ_F ॲVywbKc n?*mYԁdxF6> ԏv]?C! y we >z5p3n[C#!tQBET)1s#dg^Q#^ ]g݃|ڋ-RĚg ?)=*PzL lnðoW Ns׽66p#%wBn+u|u?`riMnKȻ$7G~3gi,:C0@~mwڒ޾W{7sݙH`1zO zZ! b yi a(fa<04ívh-|7ݽ &T~aӿ kS|(N/胯||V)tYO2n:{ˇq&E {hBeFaTr2fo0{r8? ;Eog)!9qLm eh7wzb/{oҏ1w}))?8Pݰo`p3;rDs*5!wCk d؇bm#՟7pg6 }auȼ;cB Z@#+@[AV#eRݱPɹ1n$PnI3PS Fp5Ġ&X!NKYo[#X6 rN-9}i%x L~'ưZ?vUKl@΂c5s@[m~ٷ;#ߗ(3t+T  RWPl=O 'йW5*x`{v`=ww௵o~$Z-k D7V;6{R{Pa~!Y=q?s`'uSns*V|O<3;Idj0.]S 'W1/ ճI5qAK [/}fcGWmcACPDŽy agǰiR_+s#QDḽ. qW~_ia la@X= qΓ +z]pkonP2W@aS }$%@BG+.4-P߫7̜~G?qLZVƨ:b>sπwr.+|nݲqN G/- y4s YiFJ>[X:?+\GrVa{jO8!z{>2nm4дyכÞPɰY0r*}?>{^^D=E vl3 7I)9Pgөf`v1ԁaJFB;B֟}ԭ5uaﻡdN%& 3.@8@̶C1 a9U:ݮ=_ a"nJI% [sn^r·@jJح"&R"0fϜzxȗ~-\`*>c2xo Ed~ R['cYkc>LʠA/;Fc/^SB0~d֋f=j*f2Iv;פyݓn%ߟ"Ŗ8$7; rh@:<qYN29gV0-Kjt=߳Yg{{Zi_ 3T=W c9j&ŠӞ ou[sJ;0 q?oa5@A> rC0Hzxz$*qӇ HɍCpXJxP8K#~) ?f_B߷Gl7y¼>cUN A=y9oh\-;J*ͧ$/a^7%sdg,Pawi%gV㳞4@達40ӆ0/`=!nb%M+.SQOlUA)6ԏtS5Tv읉^yVKK)ZMcx!@}I.w›cvf>9n66=MLxhK_$}2VF(0UX&TmBNg|ug٭jr^ Yٓ `|S H2/!˚ZwlNk"죤9eH 0) ]Ζ3 |ݔ[r =86D7D<=pM۱1 T^ >3@U`p_@4g]s!~gVvZY%,ᄚ8RVE\coOI/P0w5 00HO0G8ӷ;_pcXsbT\w+ZeZ"< pȯX Oϣ VpY6Vۄݬ哨 Rxw`jkοCxniBCwW_uA\3U-}!M"L xS4IR;D(\l{~A@pݴU-,_ J_f ąaTaÐ7mKc )BPTk[d @~,͐s5({N?2^p$f _YslH-*; ޿cCNo6=—> Lց N ѽ!kڔ*,$.g:eN@yl4Y g"t6ˏVP]V4KXnV;fZr4%R5vT/:d>E{Ʋ$c tn-lɧħG6j]Kc-(%|NwA]н4 /bamϗAK2x#D }vQ/|ѫͅ%Ksj+A`Ϟ:5oyQ?87"7p 4v_ԆGrG 7Zv!PQ%t>s&}Wy%1&p>3xEsa\RxE=x.zS ؛߾LoJIa1i2_y^t^8}(p|0KZIșNgٻJhH'菄\X*+ nsK@feis{SA=L]EYNU* e=оDeRbuUO|Mosg[w(/9W:|aB5nq5i|=ެ{3 I}Z׀o1K…U]}Q׀ Կ5˸ ؠ;wˆM֮ѹ#_rr4M+;j=5!θYFpD7Eӂwm&פmXd!/+)C͞U 07+-/c?3Y'dV@ *AWN(T|dOZuu{9w57//XF+ !fY{ +@/[F m6I3E?*1u)`C\7oى䪵^.Ж IƀiaX,Ezg2?nXGIU p P{D]ˏ !/YU|MEp7t淂X)+uʱc<to̙͆X[ۘ.vQ$F$R$QTkSD:.8HYn?0$Ⱥ3#R{3` ve+8,+ɒѝٕٺv|rxՕoF֭a+²fuwdA)0.J$8fX?(ocH5"MHB(l]loD*NiZvpD2rcMlzplipvu+R:{eW$?zcjRmI̐:8 j{ZC6#GY!HL:ֽHFH{y r>`#XƖ)ҪLB)]!ÀHe'JPnՙ %WVP ˤH'˲gH} +HvjʺWE$&vI̯b{ب;e;ZgXjgV>,.nm,ɠڪjwlZ %XVȾ/u^-b{R52" >$n(! ؕcAi):0.f]@&X $(u? +j7Ef1"%"wI$f;JM?k'V ~{jDMp/JZge֥I<xv+`=ј$a%\bJ cRbc|\Z4ؕJ!uhHZ:!va3"9,cFWtuX?i%`Ҵ*U+W$ժF$8;([n:3ɲޠNnҺ1$&oPǢdmoՖ8xT%48xJv*˄Ev5 ! dXv0d0BhHr!4 98p0o&t8V,;9\22 MT5[h Xd8U.CC$_i98niM!.$K~fa?j3RޘYxǃwa!uAp{9=N=YKrN5Yp2ѐR$P Ka>O] \~;*-މ1BJCjhjU:#Eg tXɞܬӤ I>yѠ ,<+}ULC}'D0AY;7ƮO f.%iPHE}&ʋ5tfL7s,aYԺTMb5 +蟭S+@*>ⵋv_bmOe'hӐCb)^u!8h'#Zasig[q Nʝfxeygs7oTǐ Aumұ̘ۍº}>s)yN;ng}*RK9@rWks`_LO2leUnzV.bŸA7["I /߆BG1Qa@_a>Bto@a6I&){u?]#oh`i[._۳wIJ0+gt˄8jܨALdAtM?H\ɹ$\,1E;My1ؽ?al;qrF_o_!2C-djˬ]yxaR us-@x'֏fz~|>APJ{9B(EJ ƽO3+ F|\Fݍ'7fMqRh=pԸ94"=bQ6a1:|1/ Z4:{Q0 ,G̉9Z֢;h=Ղx;^7w/T$jW\*Lvjq*&/M}հ(ye]5':R~@]ȡj\x!b$5"A8WoZJLlZSnvw;ukT[uU k}Iv|wjWlZ͵έ9MS5|6 nee <[FMgfB Aod!j]X9 Vv]Ǯ LƬZu"2TZҊQmjЁFd K 94Hh^1K CBzl}IyOݢ`e 7\ )Kk\XFtwa #:[.x0ezaoWu%/l^~C/ֵ  㵲 %}А0fȏª_wTpesy>wa `.WV.j:TxF4Q’ e\81i|5Kɦ$Cn?Q Vx'J6Q6K_e;Wv|ƽ_GxgYIBw~&^ZXϝlë:}0D\6jW41`{ٙ{˯I3W.{7uEQY"$<5^щg{Qh=z ӿU Io_Ȃp?1/t0saiؖ~Kx% aC茁Koɟ^ĉQYa!3e ݧ}n7ۋP#DE 5 LmڳĴBK `5"84uڵ- _}m/'_@KO1ۯ^φ/;HEn!zT^w.?`I QpH!* \o"N<}`>V(f~+FurQ2)tJ8Ҧֿmr}%n:Aj_V8_#w`~~ڟ]_X\|E#CI1M"_B~.E48E\NkCoٴ|{H 4mFHfƅF??~h=#,K"~y>8߽mu}-F]-xF^6p}{G/ $\-hHՈBwuq {:a%J%]4twޞ?;]ANzXEŇ6ۻw_Ybf5i!Wd;q}τgvӧ_0"R Jo0/A/oV^F&*Wg{S.}o?n1gsiw/{{^5}^.Oak$n_t~/wg~J7tkI? p2kݭFh [*|${^WVF|?cce2lj H.vr'Ž\"\0@;o([^Z{bjۏ$ FZ[:́xpvK Obd+1{7aՖBBz&D~=3v߫[faϫ Weё}5k/Fo#]۫oo{i}a?~cvy2~8˶wXo~^l۔-_;?o o7~$3aT+ͮQ_}/û|U:N]2p,0Bq/ݝ]/Qz׍IK.(=P bЏ N(x3)_ 02ցo:|Pl^:IJ 83ou(x n:gA]-}fyse9A"#w|F唦XY1BVade/֟k}jqC F$Z:L߇쪵 {X"!\a+ۧXEC8YuL5 ͍ݞsӫM**90}BsZ y'o`7o lХ,f6 ??7s]V+\ b0uM¹קy[Mg0#D޸K+o$UF1p7;=dQU*!@, !T| Ww7CnS1B'Z^W:D?7GyMbuLk5 Bc{}~{-}4^~)u(]2e~ߵ_-/dHy@ u'׌M2+cL2iab 33NckhK5 >G% ٲ{}^;e33"ӒN|}O0{{?(01&zk+3:̙Wyyx[3o^0BiCP\ݿ1>\OJv@R**J6/Lp每~#,J]hЀE|l՞F㿐 {,Kv̥B`CE3ГHk?~bocyq"E;/I&;;Ϳ`^F!To1q/mcS1ųu}7vI#^C?/xuG:oD[Ut㼶O !Ľ0!߽eP7H fn<Y9KDyq3j5^{tj{ D |{^wZ*'VX SN`0wgC-nKaITn {I 37i!vNlt@Tɐhw֝B""5UZ 8!3X@SB}nrsTz{qn ^"b!pFYQM91pGD=Z͘i@qdRt_0p[/ԁ\r)MNjhx>4{񈑀8мBa A_qEfkKjŞQлKN0nw ؽs6jT5yϽ[3[dtRbg ;%ܔKؠOۻ ܌zF^FzNҞˮU|jKN{w]*p˖)1wL9'_wFJ}_Ȱ~mî\3EI6k̭WxZ C>L$F_|eSHi*w>rVbίkz+35N=t_fF둇3zn:; s?R|vCupv ?C7EldA{?;YƋ;DuB$9ַy//cy}g;vW}yWGsB!36 \0`#OD̼oݽ7X;4XE~x952Wq}߄O$}mgޜm`%77mDSc%3g*ZѻF= ;TŅ֩}_j{~my N2x뫷#˒}QPeS3M`N|Oswc;5\u7s6'KUM) _nZMbS⹧%vv5]~]e??;]T}jx+9|mO-Sb;:K Uy{ԗ'\ʮ+njda|UwU˹?>_ǤRߟs4ll9>>mdްkCﷷ_SиW]6{n6LԼWɏ:2qi?s0 E sGi-|;zx@}]C׏]ѳI_v&tCDM?68b,]EV 0Ϫ ̹{KX=ר:ogOdͬw:&, yweq~쳰LYmA5#TCD tWaf(WG9D'|;BV3Uj7¶)E2i~O@7":hһa$Os/f{.F޷j7fQ;P?B$ Y @Ɲw?{?MI͟1@@g#DXVwy+*o@tWF:6ЀJ dv}b _-_<}?`=h`1K-U^0k$1 XD@"vW{)1A'H{!9Nq׷{o{֛AMi^$>_3,{wQ3~E{V9ܯ t#%-+NB(BZrg #=Q"62 B^dеjUuws5X a!GXE?!gF{IۣSQwe$4?Ȁ 48Yi8 &0WqZ&e јI;9 +d&-KG<=?Y{Hk/مF0H7e]м+.]$y/G~-ab{7U{Ŏ''krcaWS5-AgPk@ݢ']AB j; 7D,F4V!ۢڲ1ANI?dϑ$/dY/!;tR_T'] V"Og׃13 ? H~^~}){RX'bs`eEFw>fj$f$f&8"u@j`z7y!#F3P4Il_P+s*Vȕ IKBOmX43Y!.? C:RE]bǼufO]vg !kW+T*?ήߏsq[f/0I_@lʐM;.'94+v[iQDT ?817 (3SiVK?6sM$P2B;޿Z{%8ohQ':h\?&?qҧ & '8^(,L^,rkn_Ϟ7)qī %&a*25C c={/TꋠE,~z E x@ 8`` ?ZoW>KF:60@>b<عߓ]p_ $@1 ¨ٿ_=>'ŏMr~JC "|8[i&lԀM1b`$DW2z+ņqBi@ׄ )yg+ 8'I5„hTn&Yg^f5/lΤ B$Hp|N~,ïnW+Ţq|~o}&DCs] .LשD20gФE&X#ž@\dw]>)8`12<$vo4ˇ/O.a;C>cQb*KΚxgr&_D~wXѐWs|[ǁxϬwBAW!A Gk)Ti8L; #a!@@\c~[soŤ f|f';)cS>n0vݯ=*gM4%c:okiw @g\/pW[6俍׿;7j%qK^?5W$ C:c{mrZ:!g @F#ƾN[6;LPK s%-  TRXZOOM.TAB$6'89j{Ln 4?@?0>T<;@9@7k 5E 3L 0@ -@ *@$ '@ed $3!@@S?o??7|/hT?B2?$[?7_? Y0,]w㝷{ݷCwtKtSwu[ucwvkvsww{wCuTKTSuU[UcuVkVsuW{פ찞켮Ⱦl{<ÔĖ\Ƙǚ\ɜʞ\=]\{z6[}> o p`DPa|b@)b5cCdODPe@[|f@gf@sg@ Ph4idi@Pj@kk@0l@$lLPmlM 7`܀r H7``n@<7ހ{O ';`삂`N( F s=544-iKڧoV,uV)[]"6O5W4_3gv2ov1wv0v/G-O,Wr+_r*g(or'wr&$Gt#O!W _tgotwtGOpWp_gpowp %\?|_p߷[;_繽Z't=Hx"׽]os:@C]opY:rHp<8_ nHlUD;n`i C 3@Oni2@+t.)# Qm{c. vE刂0@ ;` PP v@'>O0 ({jhi*k [ҖuP߬(YCUVT[HE擞앮엾좎䥞䧮䪾䷎躞轮迾ΎўԮؾ=|K4{ٷCS/Kw ɡ*r9@=r9NrHx7"x2`# !qqL8wޕN>@yaye+ b=;쀬9`怓b뉢&^%$' r*TW^.B_:@fNgetPJ@ty``duM0?6Z,0H3h4ވ`FLⷨڢZŠƹ62|k%RA ݶ  g%?# &J ñ 'wsiTlf d3I",SLł -cofa-,{3ۜ *@l p)@ `>`P?0 'u5u `G0#L9I`F0Y#L&e1I`E0"dL&U)I`D0Y"$L&E!I`C0!Ln&5I `B0Y!LN&%I`A0 dL.& I`@0Y $L&ID3-T=H0C9`^$؍#I' J`$؛s'IC Q`>%ة*J_ XYDGtIPK B&st TRXZOOM.M7P$6'89j{Ln 4,@V+HjVTWJ{VZck~ӘFtqS<ϱ4E?#@3"@'!@\0!@=SvWO9Հ3}qmsB:ҀJssl{~$z @H^ pR 6 Ȁ{/ ,p` <'ؖC/i` ,`y\./a.@$ +@d (@q %@A^{eN C *AAO|grEBBA~wױݩfybzQcnI9ܒRC{)ؘ![k*E J'X | /^/n8+b"Ƌ/:b_:uԣ0i䌏.OE.Nva|O|12˱~wL> [\Y06ӧ)LNLzƎCt%1%ϧ:2ucn2XK\Ѥ!GH OMu PLU aeԓba 9hEG/s6. ѥ-|S!O6K mbE|LI3X$&ARMOl~xYJ 2DQO B ?g*E-HՂ7 ħ'oo&T-+ :P|-i A>*,h*3!.a-6h$BOl|͡Slp#p%Gl 4+ǚаkpRztn{Јٖcأ#NyIMrUON:&SSٶjV w$T14'@Ț*:ձ$eÎJTΎ(t&uAqr֗/1Vw[C"3 fዒ2;%)hAHa_C! D _B};ԧ>x,uHR߈c Κ*J<ԗ3e:o~ "uYd%SQ.f$[~F1qsyT/;yDP&5X\R=3rpFTPn!: rGt6xbd5SQ< 6qQ8 vh0iV-8)G.D>M&eeSC`7’r!Q+`?,oQ#ҡ.< n(yτ苠D)I"~ dHe`a>C"H~ʁ>2\/\p0blc?ĺ>b.ɎrC, - +l]A"= =s'X\>@ v5_|>@\g|-zH|#_7ėB^2ŸS%k|0(#dڪs }ׯ oe<cf|cgci?cbcbxRխy9  cɯS\M:WDO}\o/>Rr68؁lܖ C91tcq/~1~&|zr TTZn*]cߴo}}SN*"q,'8oZϚrL_H+>nX)>o[?mɆ}W3W3A/$F 2~Eaل2Vr*mHѡz09؂XF!bPCi;Bxfrb:J{$%qΑ#]ؿ>X߿&u2WBWhy W+_u;a_" eWްA6m Кa=m5>Kw.p7e^A~inzjySOԛH!<֜7c؅z\ݜۭ&R!t4x=-u5kuN*T"Gw&} m]E aZ$Sa:Ϙcu;Zp$ϹT9a{C?G;E.T a %3ؽnzu*PSLɋ ժ]nzkPדΕ e_fg!n["m'0[p :8cMwbo\Ϝ/0Ih2Wg-nHV)HcFYr8}- |r#&@-҈DZ۠|u%_ O'6h췴/O|4-nƵ`W.F=9vԶnb} ܂V,ͬA [!\@bh@Zncԕϙ a|h I |ZaVU&3Wv y(@V6mM_slŖӦBn8<۞NQw6<\|Ùk,7*Tuq8uyh0&ܣ ;yXm/<8]g׳.6"k1"tYo/,dL}y7 Ӳ5 7F q~X*=AwyU*6C %,R+Q> %~1B>A N.ތM>`œ#~n66kRU"6c0C#Yns$HovXL⛑Ǐya-άK4P9v`q3T6sPzͩu_;hz CPy!byNceO_ܝV"}UU[u#n%Ma8N\Pf"ey[[XkAWFpz[LhBf!(dBCaF dE9Bl?0k ޛry-{9-yy@#Q;j>]yGtwć5JDSbRT%~V^%Z"tc Ͽ@Ya5JMKx1 OٴbFƬu5n^H`?؊@oʓ[I(Ӗ]JXy"JhN횷|fs=@<%VF;GPEyRa4(+>xE<&/ڼhՋf/ڽh勤/cj3^93vXXc{[7ߐ z&ǪrL̑6Gvx>bǗvQn;={;8cT?eAry7L@E:|VE^I&cHyd}um9~i͘dˏ Z"ܜ-Nh6HRg1p7Q7LO)|7H n JϹH?VzxNX+bB+U" vE]3r< zgckU !A<9dV 2`5 ր[;Ig\Чz:IYQ@(ˎpB82c v@dNfXV[LH~v27o>u$a^t0:qTf :E{\=#Hos@68t7r# ݟO-պ6Ȧ7)b`H1"74=fÔ ='nIA};_6R6U:LeiWkmn ]AvÞbT,馮}Ui])PGHsfHʮZ- ڌU[qB]f֭6CEAyu)G=s&d0!?|Piw72ٖۤ֞ؐʈzԠ3N91b̙bY)lW,sK)dqΆmA#NhjF$ :bĈ#Ъ&Z,b=C]ql^ 4,%9)*}ƗLݬ-Y;ҹ%10-pxD٠׊CNt3foITSkӚ3Lg:ӈAy9T1A1Iwəo( ڹyٳaur4xWC]7 :F<$cMC$?fleD7z"Gd~Eݻ3rgooc9fXK6322Rԙw]s`3K|t3I2-M>[-  ö?'A! 3#A[qIg!S2.ZYM4Y-;T%t0!A Y8fDϼ /߅X8ӪA]6gSmlϮѼtU9$.ɠrH]hC6%xހ̻vՀ cUUu*횇Qy!۶퐌;ü2%Ѷ}7%ݠ߽ I$!2NdlL2Ub?l;226IoP3oTE2dtk(U>%tzåӡ{ԙBE IHTK-Qs(_*9䊻@Qw1%V& J>D|k)Dq@T{3lQc9$Z(+g3:0ec] ..3M,] DKd~O5*52n 8jt+Y*QEP/ITCEbې 2(B #4&:hJہ52B3ј*DCC> aww, лhvU2TiZS!Q:!U( <ĝ9 Q$ƀSp0z*P{8# L{dD\M*a,sQt@Ƃ1[W&u@2BwV P/{ z蒻,|ǜH4"ۧ;Tq}+tKȔޝy{ ^uJRVY͡!2g@v`]6 NgPFVh 38 ͖dXge* xU1E QjeBӾ;D; .&^ӗ - wsC̫ H?YH)Ͷ rUQygf!JN(^4%] )Ls#qoi٤M1HmNX 0Xwb`{ O ?"Xn$=+V_.O詌ʢ|J7^rL:k .սaNu%+@@I+rZ]N.8l9*FG;dp@L?䈥* _p2lˠcKBerHې=VO_ PQ8& ?p*bQ:s;5VK]OÉ4dhǑLV ϲhm Y(D9^*U0gg~,r 42q0GC`>]Fw0Iv `,`b `ѐ۶e8y rt]d:h*dP 0.Y+yoцJveȶ-` F`w!Sb7}+)ʖ,Is(w;Ag*JH :B^2@R@Ma*$W!!rF/51P^PL 3ϥq,l؋<{J|Gp"oAiznЬ eTa<*ן"$d#Ƀ&Y&:ȭVV+wWshӗul3W&wDf0ԉ,z` _vTc?,o_uArN`d#R:δkkՉ2Ծaշ&)텖$ fj5uPs0 tT5][bC?S A=ªC5͗+87њ],N]?Y.>%q ]A sM1>^;I`-֥:5 S$mIk5i ?ffHIRa?q"-/Z.P8&󅶟цwv fo5/[UqjZ1nk/С7vb]`âwKC >L#N~L)v/?'2ado_P &KP&ɠ Yq; 9e8s_m+ܷDq~= t~m7tT]>n9:90օRfClǧ k. cpsf 5zU+gQ >l4"^;ޜSb~0{{k05:^<-N$4KBNv؃W>.:h˿KC ~ ?М'{L{ >:n). V6k'=׮ {g v7_.vȚԝxbʯ-f${%ЭOL=|pS O-~_rO C(ÿ~bu3_eV:]@97sAzV!y;t/LOS,CN#N jսS׹x$WmVދ}1{!3<\-c3KroH9 GQ#b|ͬs?. Scjq Ze*7ەGYuMe|;S s+<_z4B^ Kf' n`S;iR2I\I Co!fH%`kSG~nHgR0$Lc kyb6>eFG]9ho%8BΝG臀\6q"Dz !hP YdVv|\Ⱦ{7 >O&+C.r:O<譽2 <ƨZ$3{(a(|;$/v`;mkX|ɼ0 ֯ؼBaC`2yξul]h#Z2<+PkS䙣znN"'~nK*zǘ1aלºaw~@hrop\Ɵꁐ=>'A:=$Ĵh=Vfȿ΅*4S90wqF0K<X`]o;^DЀw3c\_"zfx D +1C`3#4skk wFZ+4oڷ 讏(?p,0{;ȅ#ppAMѻ;naCTy."V› ܈NϨEOz,`TpBzT{L,\H!aLᙀiIW$qw'lD^QZ^ w?ؿ1Rie{ՌAC Q^`dM#ۿO<o>p!peW]`*<¥T8]ep-2] g9!aLvCYuVQdC!z .BSgvt3v],{oxry8YC_b,shӻ\!7Y?ap*$11ܱjN6+oz$;2̀R&BB0ə46>K%LO?V[nD~j)B﷛+[Z 2,w}هKBJZzbp \7`ЗfL>3 lMu'O4[u̇a*("_T9]MIG`cboe,rY#PB^KpfH.WaT0[ v' pT.BzZ9܈AnP-stX׾F~Å`pGMM' 8ܚVn378YaQ:b%yq-BA=qR*9wԙ#L p;EAq$1UFZNU8o6[0 qM/v7K0e^-bVR̰6 Ui(#IY5%TF>9f=`DAhr9\p*k;]ߨ·}x?X"Kpfd Rlj Y N/d㫇dr̛0MeA3cv؁HC̃)?FA0Uo9 ?nf+/3+^Pzc>B{8#L y3VXn REV`DajVj!\Yvk׌2P~6TfT 3nWY䘘7rժWTRfqѤvA &5+͌*Dk!m>gݼ*,D 7YRof]és6r=vqhásPnx ^{bNJECb5rm268Ed;XK`9?&ߍ3D8K*΀޻Gw ŰKIrwd#TW'[b3%.xG45(N0ao@Y[D|fO! AR\fÆg~̨4][%6j;˯1s0λ(N$Z78FNU+pVE:4 TYui™!Kx٫PJp93%W:Q"=?N|ew. RaGTE~z&Ne r٩VM-Qhfsջ:7ĩIsAieZ8u5ϋ(g~UpAV[%eF &;Khڮ :~w`us/)P+4C`f!c*=p;^Bw{8NG<~//h)9f^ݣ웃f3'/v S/sYgkTw$t3nA! bu;HCZee`9[]j͍zXv_֑S]V|g쓼[& _0D;C?;vy%QR;!ķѽ2tbi{)χKeT-'@ g5ąB4RO* lLSZ.<2gG63׭4D`T¦e;]?+,wR2}H@X4bA~鍠fV9 fL s _hd7+A}C8b÷P#r$: N)sL`gJQjhWܷ3o{wOfثҙ 7 uJuֵ ԣ ;?A*|cN2`\' L}p`3}|f~XsbwgG1J!P-zw,6qt|81䍊\v Am̀}lSGHz"`Mѳl{;!7Alղyp\x(`Y=0Uq3/ͬN".3>FOVc`f6ǐS:sΏwpJ˝DK]Vg fC<1"ELHnFw%#p cvOj}ٮ]. % +y r'qeS{1쵼cH4'lzi.FtB7XԳ*lC%lW{yafUs,Nl7*z.Li6mX? 5P*E=V|R Q]ta}D]Wn*yP\+c4VFA'8CA`Vi̎5fѕv`SrI;-7.6y|n ?6U7;WVNn%"7HO;'2Pa Ɠt\TtkEeX]45sc}Bs:~M:Y{YDZTj!?ȈF7NOKvt)亂`e-)Nʮ{W>< _TnB] { 0?z~l3NSQBj1̝9̕UrƺW8RԪv*Trrr$0`y%usSO;s)7m^/FPhbA7 -hG:Gl/̱J?[eyQU/6ګxz'oB x-AD&Æ !1і| Xy] Jj?;{mC[qi}[qA[;C{ C{Nڴؠp01/;44pA+j;>9'a;%lE{Iæ|೘tjr'ďa(?.^Gqq<1>lC m?zE f8A_[2w"l!Ax32c~?_/Uv =|ze ԇ쾩N$#Q\ x|ihxౣw{߷OX5˷aKVKaw!K+^=u_͔ eخ`a-3l Y0燃?k_VV`<8l~x|†8;ۇG k H4 [Z~lo 3zQ-ӂKC@Ӣ|85~t:4$l?zt 4r@ v9 uo KBS; {7kCn73>8"l].1=3L~|^('=} q{.ipӟ-;p!l.-gB$L}J2pX"?h I|6}'Ɣpæ\N5[[CzZ|ew6Dv(ʖc40U+^>y:,mo2lav z+YQdySg B5YgGDr;JA(Ȼΰwgψag8psI[鑻/~v0F<9}?/5X}wl wDx~th>=͛tSK 42Kq[=Fo'b\bwْ]s>=1 3o,s=ud0#J=e9^ģRފ4$dqfTx×OS p8' x{a,~n1Kw%k P;3jv(sl[zp}+O蝣O.!2Z{"gcYz$]F@ao0wm!oӏ98,w͒+h]ȣ;YX̞v06}m;hgmo@A.;8jޯZcK3e 6 WԁR_Fc~<_2wjU>?zJ&v.,6T:9JԟK^9_<ο?­x}]е't֏Kn(OxL'4i\X}g1@_f%xФG&iN- PɷX,:%A)N`\$fN ~NS҅sdj갧/=rT ?{R^[b=]חaTw}<;\xm.7,i{36? {& CƦZeW1| 4+h%ԙꕡ;dwg>)3\8(UQ\.?d'(n7|i Go4C%(w{7,?4R2q!>3jW_8eCѷq|/"d1fVA!TS)E<{/ޣ@Ew;.R U52ڐA}$G}{0{ aȗ~BHa;Q_t>$z"b\#٦gSzZz5!H>)9RIGC¡.P6C`/wpCS5&-6Rϖr?Fxgyؼr;{]Zlز'mˋ c_ZZLOr~Z_O6蔠?.|zN;N No3iJ ko*76v@4kOlXQ@=.Hs 6GPyuAе\x>55ݿ'(^ L.=vԇ:4_]({b;E;;{C`b~íAF42 mE>YОxǏήtXs>8D=BNK_h0:h wtcV.8tcl brJKšS+ziΡB;<$ʇY/p*^ޙ=> zvCPr˪+|LtB߿7.;dS?Xw#SAq=)߉)Bg86?Ǐotx9尧> d`.kD2J J7vWC/鷐J+BH>{PC+%~ wƇp"A@e/[ˇL?,jLT=_-G_R׀A/_[N۹l/]s+)l(Y>6>n9d/L;IOȆEw_JmG象TX_zq镠9,[eKW ffTv O1J/;o)RpF7 =Ot UDs込UM{\W2n鿼4|hXڶAA>H/%N4p(E+T:vRzl 1jo0;;qTӡKGʃn,w36[NeޡDPw0 q~i=V(6^viI0MtJ/rh>*&Q+=7 %X_J@C~{z?FfyH1(vr=A@}72-_[?,jN )[} lO]L9sr;߶8n9PX3a*v,@G*ܣx=n 0K_Zp!wv{Cj.s|бԛ,>rC"Y[nt/Nc%$;ɂl!L %I{a9A_zҦ;?(w%Cfqp8BMZ>+b![ w[gB[W%BZ(t ^,9[6do/ZΤƪ{9D ke<շ4 YeF'l,Sc slDRwaN#wMQVi#!r'O\Ot@YҞne9g:]r_}?>Ap åB{1 R79Bz;_O}~CF[D(aL4)R%RWnGC7b5![-:\ Y)_@Ko!B4x aS?(}!!No)xs2Hx,ЛX;C#pzKOEz.!4Fށ%G9ၡc!!O(o._* -h%TZ>t=aϗ0 <^eNcSs?!G W)da5ARaԣ c34_0V)rؚ^rt v\\gl3c.x=V DteeqN,`$H ؅OB#w|͏E}i+2<Ĕ iS@ݼw@c{ = 4%Ϛx0o s.:"ªdb]C`4d\w^=|SyIY:r{NFeVC>@~m*CBj SeCsFl_Ģ{CCNRKaC2lާeg}<nf̲yڅAG?b60vJ[4؃>ҹZ>&Z?$.lJ!+ S0S=LEs1YV;z.})3NM$l\gh^"-ThTH)u!0"0 S R !ٮSv8@- W' {!3a] `1}:-?mNPR;Vij ǓQoUG`!~UtYÏ?B=y?(xG^^V8$nݿ0|C@kG` > CGkgT 7eqPw*%R0 jŴ2u#n(s퐛?`ANQaK !9r~?g ҙ3xJtt߇"Sb;,0XviYE@O}+Zgg0&G3a'`W?4 ͫdv"#̵G=^^^9ϘN~/([ʈRvaq 9$$fGG|VO2nذL˂(CH~AfA%%!Xra큁'0$W9 wT+[;Tu^s}zwe6,֙T'{iRfθ|p8W9>EۉH<@w{~C}-=?pRQ }@\.%`kT\""ZBEl2v:LJMU'( a"ۂ4 \%A͂ j8þP 0Un2UA.a/waAgNn‡=Ќper8\6 [y@3H0}mHpwkFw?|T ~"Kh3:|P Y…? IÆ+8WԀw֦>3K639 WoD W.HҲgN ܥ1}S|)p\Ɔ1 fm5toԕ&':@/'ҿGh 7ڰ*!v7C%VxÁ$cσcDrBc dG=XfNg8=p69bbN闿_v00ԅjS`<&߇ ,dpa;A|N׏-'r\8_.4pϚ\=8\í@}O>?6܌.e`~ZbQ r<|%V|.O^-a{~ DrB.QE;O0aE8hf-><έv%DXl oKvZc`:T=x?]ƒ̅- r`Nl_S}${qz0{\ƦlI}xy D߶F`4)gO1ZR`}|xov+Cl=?vFǟGA?lK jmBrGzT ؅}[B??x라1䣃e`Sb 9aXxYye~ Ҥxm%X$79*{0}YIh;L=+ Mb{n&NjInRaNiϏ(av aXioNO`VࠞJγos:XN&tA5 *`(_0kbwGo96 )x |.E;PBw2Z1>X(`RnCw{r3Nۧ|w@;hP>7 NKi`f=Rrc@e? >{Af}@:Vt . 3g<>4u{`?(781Q|ޱ ^Mëf<gqNy,Xs\ݏ(-R|s/)U[l;:NR)?V>%3+(; /`+M'ݦ?e2 Y5)/rO',E9)T (T"'WY,FŽC.wn'XrIx7BwXx(ڢx'*Aj^`:˜!d(eDCQ21( 'TUiZ5pK?^rApHPU}Bz%qh|IE9}@v$krDGѝot3?^02hN7V 7< ~~G_何XÞ>&hX/!*6Htpق;i Bv] yx^;@L!m l w0*gYwp"/pD0\! 7hc ؕs:!]>d,:>#1nZ={=r`"⥧?F#Z47;$5^5@2ˌƢl2𯳛azeQڽ;JB` SB$ ZsO q?!I5l#}r)ۈL7rK *lڞK`>t8O CYU^7S_!ABLaVÄqNKV}"AOZ2%cv8mIPNe}SVR띐 ԇ _϶gMZ9yw/rx(j{ ) Ӟpy.B(P_`.ҡ{! $V^mC2r0~G! tCF6h[:K ObʋAyu3ŝ`.9e Nv.ɱ!7:lHfة{˗ԿqYCj ó!CwD:f1 ~V!PC2zI8[dsc1> '.ͯY'R=qOLơB~\pjQ^$,h0C͔0ˈV{<rw!k@~cחZ;H/]09y:0$䊺ABYj5*<* @9oă' ޣ TYttga_Sjw!u?(xTΏ,*51z`_nzp >3LQ6ARNTLᢝFpϐ81dW@ u`Hczzϒnl?00B"n g{oE_-(yDʆ8WSN9G.;jo*t8 bf $50~HEA7`:(|ySm [X{CajCg;w%3ɋt. FFNE;RCo SA&-CPDWygg;LAe ݔeG}fHl8QpZ| 4`+ǥy e̔s}5I {o9+@µQÔT6*G, 7HZ'(Q?]a R Ygؿ+Qǘ 8N;{.F64YuC!@>0o,1({3v¾Wa]H| Z!o8l:of ]j_6@Y*py]T#F;-J㐃{хGqe}d CN>dCn9Wɖf6xM#5C|pz /+qQh6@ uqX'ET4)G%Ad\| {짆=_? +RGLq(0}j+ZpnHݫ<ԡ 9/߿%s3r] ~Ϩ-izfȚ\=y$]0;+;oYV/nM?-/L7 5K@ o9z!}А V|]*15J5","dg;~nT0`q9@|~>fVAWǐ^^RB8a~a_9' IIԁK 6Kn?P(߿ĕ~( > LA`i,pc{< X|p{¹x00%.o='6dT`Qlv7ɻLPФ=_RKA6p CNv0+;Ay7 G~p4\}4p:8ѡ7LoLEd:ڭpG>v?LhNzE|o(p""МBu/w)#?~<$p]X_Ρ\Wﲢ3fe[ y} 8l>(`.[>+wr~n@Za co(0j{+gHH[ \C !@LA]c_1\B=dHCW (BkjݟD9?ɛo!A0t:S;9!}P/p<%vs氃o=)'&'Wn e{yc\k,h߻C Ǜ.k% n-S_yp8_F"Ȉazw 8:-srM0?$,O!܂pr1<fcq~.ej<y \"XIſwD;ä@$;?32=p? 2ُ?J$I̐nGz,vby"bBa􊼔*ctY0} \_d3 o}N4ѝ!p_0m_< 5MS3/ޯ|.r#TT0Qvn>Tp^;kD&?]6~'8([}=:sUl4p&u*dvҟ7B7~7.~{ _Ka.YE}.>JD=cgqZg!,!x0w'? LcgC9+.f6`CƣB!_ҽG1=Qz_ 1;Csa6僵ʩglewm4aQܲ`t?NB=!/ qߦQ;fӔL{>d C4wA2`f0("}^":%7IEG,CI}\F ?c}ps(nuC`UYE4Íp87˾6==X_簣?䵸{KgY݆=MaʜH2ԙۡus _[c=}PK r| MUSIC2.BIN$6'89j{Ln 45x <\_O~?_tuDpuF =I/r?k&Dљ. 0`w?n ʁ ć3}ыH |O{i-2Y׻֡r#pLG~I=$\-l>%nȇ {ɇKW3.w 0#ΛΟC8mTG6нϒ;ó97CwHn ~)vOR۾eo3v~Pן[L%$K _cL7F>DeW7W#iVH!@v~}{ݡ<ר{!A,IL胿yapgrpǻQ|^vO!}@)]~9ap#B]>H͚T__L8̰͟|@έqwN{pXS6Ј񧺳?k?? >6Hp{.{4@ S ' +=E XE}ħ|x݇K%$ $z==ܘ!t9Z${?<6 ioXnn=jénVaօ0iaĉ$=z9I|vz7{.sÖ.kJw`m~=.o~Q0E@C r#;Sf>=jޘ?a/3.Fl?0ܿ{ ?H; {b@>tXݣoC6!lw1<?<%EE!.>̽ ЧhNp"ZfJ?#|KYзoӿz':ǎ "O4F^TQu#/+ } @q7Ⱥo~\8_|?A0=!;Q~o nsw'[ۂQgT?X[i6O4 /A%+yfș[x3Ip7?4f 1sg:ut 3W|ptn Nه@ctpx >hWj/?>)I#<`@?n~ ~n4{k{ʟXs,̢p4Nzɪ.@Ur =sSn s`D!E>CP8ފHG\Ϝ7AuyO=Zˌ8E;Ya37 v<~ši/Pwf\aŧ<|E!tV[)L vnf t"?sy3[y7 n5?. =;?[?gL<$^n?J>X$FyƏcѵ6s?w8qCܮ2>!oWD` }$OUW[=,Ch䟶h%p=dr֙;G3."҇Q!X P(Z?\`M!660xI`s{[ov>H"0Pt60Z^!bիx//bMP2HR0.v4aF{.!l-! Ns/ 6nz󌕣Kv$lg>o|0Qx+ %}Zozi×)hR7ثF$/ 6dA0Il޺WUtOjKnwN /1&؏Gzh!]`˶g(|)dnK8{l8\  =^Kf>B\<F̣ͣ?1F8;Hu`ñ ět~mi^sowlt4>Z,e nG3@;Ø}c-&EKV+jp3>·cka8r+3?t=Ȃb~dKնQ!Bg.PZQ? ñY?mVTyf3Y}1Ɏ&V`.݄7K{x5d` >/MfGt_C%%HJNn(_?@1`9jy:{ !.4ʊԧ;b.W{\ ^wIK3it ~2J v<ݮ5G~of߹ۉR7v7Cܝ~у Io:/y 3BD.[w};Á!gj>@Qi/?;/ӹ `yG@ VVt1y{QBwy7#ע.`$1Gb߾{;X#p^6vGAg.hf/C+=hVG!»N^|=gƐ!$8w8b+OBH>fs+g,wyY2!HCgGJs_?)HVCp$! q=S |zAMu ,aĀ'l̋xS:ZYv*iʿ0k#έS|I?f ,j{ϨQVcO(C_!K7+k5D'Ě"ecҴb{SIgHȡogU#YCS,;"I.9T(n ΫOI?߼7=wكЀ"[ǁ&sj)_s`E;a __ VWΝ1L0P&}Wv@Al=!o\P*??U|9 kKP]ֻ/]7~_AWofKR~sރہqJhL"AԗwE!5Dkv cG?K`ݙ,r0=Ek [jvhQػ73@rC|,ƨxLΰO}?xFyI/8Bv g:?yy?@lwY&ATX,w&3,c㽌͠ {-?Ȍܣ%aa 7=gbÿv7}AGʐ<"\_*Fw8q4?g[@œORĦ4HzPw?بKjg Q]uܾ5tѦ^bQix۔;^~f wVz_"/ݤ8hKl*{8J퇹5}peR/8D[0E\^4'F`7a׵NFS]h(= k8n"pwguJǟk-ԇ2$D &~ qBeLG*T9F?(qLl#|EN1KӜPvW]b$ m4[̽WIJ͇ Z}ˤ/?pDg,(u dv;Ww0j`a;xCgݡDKX,4g.qo.Q=/&u1kJR P,S:zysgf iyF;3Xf|JXn{li\CL>5lFݖgrLsXB)V7Pm]˧9 ` .߭ >qZ7)}h'C:OHU=7 M6wm߅{TbUM -/Bh eH7Dws MRg4.L't9B?t͝U~դV*Zr~A,} voݞ_yAIB~>/W"uhpU;hƢBwwT{/TtX`$KQKQKQKQKQKQKQKQKQKQKQKQqANJb'OI,IFI,IFI,I6BWݭ IQKQKQKQKQKQKQKQKQKQKQKBX=:t0K>{ݝbEg.(!^80@=ReA3a R ڕKJBiHau<lxun#oپdH=pGs_hR;*&'AtKasg=yWƟ~WԲR__5!lyuzͰ)I:*=lg@ҎtwLs/U;m/tw`9%Ě+e]7-;`Tr 4TM?*إ.w~v-$x%;jqVQcY{ LұOF y[o !Ba >dP<Gf K}{96 W!_$LۑȰ fVG<܅kLBav_e3+Da'E]RBh7VTVݕXw~Φg MǛvxR%p+c:l0[{'a:b)w@޾ݗm zsd3.UlRuKGPL֊ ݼ{#bX/0}ѝ)i6r͹M- aw$2ZĿF(s?JOw"]:ݘ(NT>'PUo?o=<>v0X)(W(.9xh=D1h+{9! "z <|ҿwc%{M {H} H4W|&qq*k H]l)ZYfUG;OncÕnApLj_8t`4,J,|J )^{; 5l7uυAaExo؟"7hDf4Rm9|^L p#l3т 00Z bb ]O0r{CСJ.1`KX6×NaVxX x¨ՅW:R٨K/R#]Two]c{qktas]^o r(e6r1 YJ Rfo }Dw1 <3RB]_(=SDfy|bD(3_!(ІO? EFY mT2ɐ9M"$(qwC\^?E–uDmeVq34"0\\.,1=]? ١)}X/}ɍ?uYd>@& ag.^!c n|=2$R(aN5o eؐ,2Ùu![a;nmcO_L/`$@:hwf_{z랰e?qpPQz; J{yTcoBF*P2P7A}+w) w%rB;^A8oxꑿy ~#unwp=|G-w(C>B^zD!wt8 #nXbOrp[{\XOьa-ermhO eǫpo u=@g.ACӗ)m't2%Ȉ9{"PD=Ex݋ f)>P%f%L-[?66oE0R ; Iwn$!XGE <S^(dOߗue采)4\4q!/}i/#cȽDo!H~:= VFjrO=ޫ}#NkA&R6 ̉Ij|5RGj}8T9X= $Q|QއL2}.:ogϚi5{x׀E`QtvwJȺK~y[iȌ# {%ڦνVʝf̜>l{4%`547LCH0ra"ZDֻPެ|Gua9wkrݝo.cV'lcKw?_/MH?(;4hзص+ 0"ċb JV1%8ЄІ69 jĎ2/kBoG7 ]ӻ h28E;ߪZyoqow%{M`p~N}=ަІ zpԲdg(Qr8{e}-JAFֲ&A53vSn' ԡs=j;eq|UJ[ceCd=@r,OYbO;$#c_G=6%fAE28Dp_ tZ~".~,De9װҪ{ž)j -'2y=jQ?ħ/cQK=". iqgtRKLIFi~_g#̓0x{eAٞ>zU7QU1އϾz^ڞ+I%P!<y;`s+.Krq_֞`zS(?EC4;DI萣l>tN{-ˮ v;uR>;tT;|ƒ\yz‹iwώ'=زe/af-ѹ:7ey;/?o-P[_>.exE0x87|Y7V7,[b|wL'Dm6O&YZk]]$W<: `( t,ulT/BKi_r?F>='@nrZET3VNcMxKwbwߠX}ID:"ӕnHm,! S3$y* j?!I2Aywe\({/r0xqr=hTh"z9YcbwoI, o"/'&ʘ 9%-3y*}n.{Rڼʘ0䗹oo50 G[6x$")ڻ7}܅Fh0~?>s0lޒ{qPt7ĝEKXhُZi/O"PG7@ 9RtNo\k]a@6d0ʸa% {;Y*V9::|E~v jA ґ@ 7 c Wz~YܥDl/1~F=\?|:ɝ@œ_ XngkC,2^?}?bxum1hK./Q :By""sp QWy0CzxFwN?B!F&o¨=hp9ƜVQ!Pr %@2=<؏{q kT>G5x_$d\cL+$;?>/mg~2k @<~/uQׯ^dF~2 2<~7=t$nuIw`>&B\H&͑a2XI pxڡO3Ų + e/&N?Wt3X}uRi^hhdeQ8Rq2@k:yfQQ]cPM@U8vg Ix~%m= ^eD ^*kw/V]t1fM$rx X+Tǃ`p[y^~0zb/qXw 7 @ ݆9$՗:TÞfP_Y}rE,(cûb-ne= n uY ȉ7 <~[Rx?tbzO CIq?s q xVCFHgd3^0@hwU@9,ZpYW0Xg$J/ZJVAAPV 0aUf5[z~Dk ݬsNάYfּokI_e`]sQ5 jaP=Wװ17D~7t?}Q`Y=k_rRAj0NGf`?kSܞ9sp*ſ >d? B7%]DqI;7b@Ov:;R ehqF pH=g "E~!|c6 vի{_D9wݫocs {~Lk;/\JA#ʃIh zX146vcquDoz}aZ0?5l^ʋ63qb˖yM:'O46Hnu"!#gV#4[p}QTN(vX7& ={սAjyfN!7(xVBjkt&iv*5"8ܬ~ Ңũ$|$3NT"{V qE˲|7 d݈Y|(I; MK:5RqTCJj5~dՠ?0)><>Q:,͏j*!=jdd$(c @8e@?}yLeFp|P젙ÓP6Ӊ%M=Xι@)8K'i4(ٗ=/th53sB6|&3\wGS$k 6L z`PkS qqHz@Eݟ5l2EԸ|x0G;*PGlg7 5p f.-JPO`{0T;w]?+ʟv֝%Q_ 񁃅0cjW gB|.#Y醠ûΚ|gR$pذF/TfoQ F%'cֻn g+S9{oR؞PyoqqWJ(»xf/swg ;61HO0.WL4Yr7{Iv}* :{^wC,zEaB{vK8sO  Lb]ό`?b>懴 ]3d!۝,xcC6\+-@̻3&nE>2* ~ $`5r: :ڞ8_& K濫II]&:;E@=`i'XC I.ob uH"do8;ěп5i*p H(w^zIٗYDz{m ?P9`^tI,9VS~[O_; U>}+h3}2CBL%?>M |#Ԡ~~X{U2`nswZO8gXMղfN8!oB3lsoh'' |ޛ3' vRg=>E6!n`A޽}dis?jJF8λm9{; rbo|P=k<]S(W+gn0wT}Y6?tuLwv{ .5B9;LwɋH0ܟ =Uy6ofoLJAXj-N8.kOZSZjMhMdYh}?` C,Tl{;vS^լS&v8ߨԘ[޻5%|Oi@T*br)%o1*L #i G|*1;6r#0v+wPT*( A jyB?6_ʔ/Ѭ ?HrxPc4?I;%(PsG^Ahxoۓ b&mgqMڟ'=9VBɨ.RlS0L1}CN. 6Y鏠c|4+s&:_>` sٲDF_#=yFGU0Cճ~up!>si"8 ,QA='d(VS  <юHR?|j0}h91ǃ~T읁g=u3 ::^BcV%D}{p&(q9w {3>Q픠#'-ղT|OI-)HINC;m yrܓ&VD]rY;`8đ+*&Z9hq$?P؛ncLAǑ1^cNe.ޙx)glHՄ;yR ԗ$r*0fg# sfc ΄vTE*nuI`SeIfa-d9~WW~fݪ&E/@ j=Fϗ9Aj $ͬuWٽ&>Jj#qXH!sMl93?MIza+ڃ#iCAtS{HIM4د~{.@e{99:hKXG[ ?8IsE;A7תRP{!ixfe{ X2*I {#aU5;2i^~Hy]3 HA s>}+=v+m5'Io~}kU&%BӬ iNjEܡ<``@Okc9MMZ> "wX Vvk 8Af6,;TG{/uP*eN1JlZ(ѷD+„ ǎ7E(C¥x' d DJA M[Biqˠe@\L%6 y{42I,H(E 7I 9WK¿o^so(3߹hLGa`-5w+xvO~ݢÛ_xQ;6/&a#|¤k_KZkMB12pVa@៫#_ DWʖIp!Bms;znqp-e%}Lfj欅+L^"U+}_`?Ah;kOR_CvS$?߿Wj,A2pAϖ|J M@9O|:QqPhCU>D+P?ւȊ["X 4p.\UyP JpB)|ɉT;?dX+ 7Bgwo\Y4B^ SmQŪ#8h}sX rkJ B.!n)OAm(|$xtެpeGJu|U"@3jї+e/_xQcB 73ˋGY16%OiA]ԃ財79&KQ5E煳އwc4po 9[/$)|P Hʅrf87ɼnfa^89ˤUETPKQ/%?q^XW4Pۄ 69wֻ~s(.d.\f(97?!\gуͺ7`$+ڧE{ ۩:Vd(\8?^Ua^%Xx @ \ s{Λld;%gy/NPP>=]⌋eHt#P4-K({זirMچLrb!82Ys23P?ÞuBfP}QBe{ϗHUQ|WXs3H2 )e bj^2_Yx?\nd @f$? ZRS0:uAZ{m b9$.l XޟƝVn߫1MPb?[w.SkM%X)x*TZ9_ %Z'Mt߅aRKZw\ <#l#?Qc߇C8s^'H$43C?Le[W9q ;sx3[`IVb&sGM.;߮[|[du;MV1*(WJIX0^m|90+P1UTଖ4j~Gf0F;sfW6jXCT9i(,9xNjϿ72b׭:ufĊu'%ʃ|Yv#Aް?.rհnjABPP Xdx !ȥ^;qXmUkrbZ7H=hV0~Zzg923īUn]99<سNfͮK?wXfZgNU9/|ֱPa1Di?0NauQzkfLc6{Ix.뀰Dg`fo?v]Ry&@9^;EΪ~::M ^1 0ϝ zѩӽBJ zW4Է{Bî%ksch撏_\]twm#w/2ZP&\gУͣU P/4O~9ua.zʮaϟ)@$YkU`ﷻ"ה Z 1TA<| ʁ `:\ siW˾$p0۝}VT=¢.orw q8߈0t{XRjT+saK3_3*mX@)@Z|zG" wsQoa(0@jb̽fA80=:%h1}-:3>"ېXr70v;"q%o?_=% -qށ1/܎J?8l9Q%`Cw2w KTAt07\Dċ1CvYE/mj1ulwl:*{jyoDdTfjun*M^1AgD{Al>ڱ;U{J@sMw&: 3(vT1@pL<ˬs+_Ӫ*0#^h*+yTvb? 9 FU9]Qvb̼?LHv8vP~אYan& gY'~6W+pFu 1n<T&ˌi[(ۧ^ 3rt8x }١aoܧ *$S/wٹ6 4 VVg9R{ -y%m.t*%#t+H f젚$hr^'Ӆ=?fVA Ÿ ̹={gCڽr!A}Q;ʺL͍zDMIOcK4QBKK] ;w&P7 ~~"h;?i6GP)í!dĺ#RީaD1CHrmDeH.qc' @C##5H=o3Kk^& Eg~3+rĜsua-3Vۃa\^-h]N9usn`X{Wx~[[LUJkvŭdkoR^ Z%;Zsc!UEʪ*U`7B/+֟JR#z(ĈcM~%Ȯ֪5VjwS7>/PJfM1Qwh_ºVڗ4kw׎y6 xŖN\Pܚ4;ZcmSˋ "mVW ;:ɳetfV/&=AO©څ_J@`UKku oO>q우4}n̪%kQ'n]!/cJu5 fhIư Cez0$D7'ѯ-XzVߠ:yŐradƅUmD7{ 0~ #ZFvUkQ7ªn~o]bA^0^+oHYg )li(jq|@ W6 sO{eBvaKwkD-,p/^ͅ#W ljH2`jjwds yhU 0e/hu pfD)|gy[f1C71  CevE7t>s7yy#])_,"OY.wsg.K0{[$E,c^6D-pyYgv^4١%ܜ(]gvߓ-h(B9,VepR )n9ęueq݋˷9}#PU!b\ºh\aj ;ֆ-qaO10/ e/M.p݄TP{/2 dkp mSJ~yٱm^*n ;cV~ψx^4i޸^0>@]e#;jhK٘^P5een. 3z{Dne7V\wEvxWֲX/}t7Yw(sՊ_)>PV~]Ժbȃ߿ZK]#E\|/@~hRXFB33XSOz_6/Eƭ8xQ7Iv>%G^GnpM!khe{S7ˆuI~\ D\6!}@GmwkvӸVRo̅}ǠbZvF+HASbZHw;3v m1~:3id!Aqc1%Na 3Pafg,;ݜL-܅1n?zPSIg#3# _%Vd7ATDSNd}aLWo-iSJ3XWjUѹ]X< F{-11HLؕZR1Hn'UI2dQ_Xvw^9L6l(,] ©{l-W>[ 1ka ` Rf*0Jj]&R&_cھOLqa٬1u,!uU1OXv vòj r" P(@db )BmoESdFUKR(1T  R}n}{;uQw| XAW\RQMo鷕믿!EU:(!ÂBq;w%9[#Q=|1@Q HBQ6}͜~cܚ ҍ ,ddC@g}MM*H Q',쑶%ݭEcOyVjjQ`ʃDypmR~X҅g޿$R'P4#$d6=p}ء) NXBc$?{ˏr-&A2*A LJXe]Nt#*r`h@Aܔ@;Y]tLm(⃀6ߛ~莋f5J2S|}'6x 8BDXZ$`^3J L}=kLL+ͽ$H  `,\#3KQ]kآ t#@ߘ>ls0D_T"gHK7i'gl;^}{ŶṂ|)y40l3p{bpB{>oWm\z"Ƌ ͮwg_ɔ{0il6\}!~cG2{A:YŁ2[W}\څ W8X , wkyхwݘtŀ+h8`x A7]w7?L 8Հ#cvZ÷ U\ͶޮĐ4#8 :ȷ??ԟ:|"Ru J>0bh u~}+C= \^wOAKg%i4w[-=wߦt~#nB-0_Ͽ &=R}M|бi!= ;hѐzg.A橵/ea̴ ~c.Hef*uHX`v Lp.OYf)eV-H [8oFo/`V8GA]eov^?.5Q%:rGHf>#Tqxu%xCiYsy}+]$Va&xQӀ!.dy?wW!ђG?"P%lP{{]2?!Nt P(|rͨGt-c?~;/V |>P+&0#@1d=v.O\Fvﱴ_ ,CPxT€Y-o<}Sv=|1#2-)tL!/=zt׼g `"F2Üyuo~WU ># Q;+y0C}~{9$d 4*URDnmwl~/1b$p߅ YdQ?Vi4 ٰDzdo\*T?T? =T Q@ p7/6f'*R `t yaܯk 65o$BnO%SHX76_<[w]wcD 8L:WGo~FϾUE7k )J -"ݻ>] w}bX[`O'7VGg|aNڠpϷu]r[h`0uPv m.swVj12{ƜD6 ްG >X2cxc+bM}JtH +gZ]\/..R_uɬ2DX1%(7G%"Lj*`eݔ3wDJӯՌ$J8qHawH&uJ+3 w?B%.I0 ^r,waStM*YAS9e>W?A]Q]>U>#P&l$uW "\>«2%-X(@;}_|Tר[Q&G xcjAи/}_?g_xB:wGHIsm:6vKIeh-(gӏu;JJ7(% OP/Pxq՘oj:.0M 7 !P"]_O[Cӽw S͋*`uh 7^o)b3 b:®J 6KBGEK3Viܿiw~`NW$bAn]0) lK^!xrHl .-{!*7mGxL6`=t;ѵT;Pabjf~]utߐ0܌U˥ߊ2y2_{(~G5-RHF_{ +@ۿ(la(raeZ8øf쿓SvD hV Fe%u}o{w&Gc4mP8_@[?*܈'$S8qj`N!]ё&ZzYj΋~ ؟s_H{/iTݮtu| ;6욭5^ؑݏ}oqq`kz ׮5?ة0t8-0D2lx[g\k>5v?}NYy!gh,ǿ2S:o۳@kfy.]~=308ۯ*k~1YgGFXzfco}_=}oݷwu4.~>ac6ި#Y8*ZߞGnnN}Y{¥캾2.n/lA6;(WzW;o;߿{~L -5~=G־ϖú[??NF V?=~{E^? 0wefI{xk+~v<szXD0}—Ӯʞ{}oj +Pi%@?tQ [0Ю|=dlgmB7Dn-a#ҥ^/hcpϜEAQʯOXvIN~z7N_sk2g{W7> ˔FT3BE=8N}@gn0kƾru3JN~pDZC(au?o:Z.6}#lx2PA 퍞旈t_ ~q/s&fL1? Bab}vcf3 _(4!JҐdܹ^~ yQ;s t6BXΎey{WҬ&_D'zeDi `A Ok'v3Xxx &dReha]uI VOcA roknw{?οMIcdQ}'(b4}}jĘAXP5aB~gyE?L 1*H\}oPdͿwlek@w?Rr޲z$_ į'g{>%bnoS,# 0 `. I]Qen_w=WuPFr䁁 \Grht=:xWAB# B#Ξ`|ǃLHy4Pu"p&q~_4>$.mDFk:y_}Dmđe#5LUDT4V+ؼAx×:o@,<~`" „_׻Wnďt"AʁcVy'wyݟ+>B);rA(98Ң=wy惱ىe] _pxCb4;Nc2 Y--ԝCIJUB{CG,eοN pqBZ`u. }t}=3Cìǯi`/z'u"V;VhPtJj4~wZI]_SmAbIif#"*^w*k?b ?U(\AV]P "?b\ ĩ1+)[ԶُK7cܟ5O\@2(U_)Z/F+}[Wlew NyEBBݬ^8/ilt˦ d˻~M"`Ǻ+6aњ[NDH\1@@e 3CNV!.Rv@꧄Ӿrys T @B޸)ЏHNKf o |n„|l5Oq[؀2C`>Efo3 HI%!A .A% ܿWx |}fǵv>{%枫w+wnҹN.wQ yu`07Ϸu'zG/t$pV"I։tɛṏ|?y?9Y0j /?(﷕)<WL`F#"6MZ9J}|[p6vᶢAnH_.X(T~Rũ^āym&#@y@epu#k/g^vj=ݲc1{$X Q@Bd>B6I&čdJX#KK_#V@@f9" GhgbF^٨ڈu$}o?h7`\vQܤBBfY2wS_TGzY;z\p #]B> Ģ]hgldl(d{n}nC̊=O\~{cOq.Fuz(˫zSt^9%7۝f%+*$S}̏ݺM@1%gHRo^Z7eݿsCws_?=YĸSH/_==qv].į3=^ Y (۩fg#oRqÎUPhd9Vot{5ݻ߷ֶNLӼn_|{r avҿ205.ƽl:ZkӨrDS2F?vv˨ OqweCxw_{oCZER}`93 &ۮபqֿta4@>i시t+ߺePK sMx#O TRASM.EXEPK sMf;.-  /OTRASM.PASPK tM|zh#=a  dTRASM.DOCPK ,zJ 4 ZOOM.ASMPK 5)3 ZOOM.SMCPK s%-  wTRXZOOM.TABPK B&st 7TRXZOOM.M7PPK B&R) n TRXZOOM.M7BPK pIyuk MUSIC1.BINPK r| -MUSIC2.BINPK ,^asm/x65.tar0000755000000000000000000021400011266514552007665 0ustar nm65/ 40755 54517 0 0 5523133143 10536 5ustar mercierwheelnm65/Makefile100644 54517 0 245 5523125634 12262 0ustar mercierwheelOBJS=nm65.o CFLAGS=-I../inc -g PROG=nm65 # all: $(PROG) $(PROG): $(OBJS) $(CC) $(CFLAGS) -o $(PROG) $(OBJS) clean: rm -f $(OBJS) $(PROG) d65.o: ../inc/exec65.h nm65/nm65.c100644 54517 0 6472 5523116466 11606 0ustar mercierwheel/* * Dump exec header, relocation table and symbol table for * an x65 object file... */ #include #include #include "exec65.h" char *segnames[] = { "", "", "", "" }; int hflag, tflag, dflag, sflag, rflag; main(int argc, char **argv) { int c; while ((c = getopt(argc, argv, "htdr")) != EOF) switch (c) { case 'h': hflag++; break; case 't': tflag++; break; case 'd': dflag++; break; case 'r': rflag++; break; } if (!(hflag || tflag || dflag || rflag)) sflag++; while (optind < argc) process(argv[optind++]); } process(char *name) { struct reloc65 r; struct exec65 a; struct sym65 s; char *txt = NULL, *dat = NULL; int i, v; FILE *fi; if ((fi = fopen(name, "r")) == NULL) { fprintf(stderr, "Can't open %s\n", name); exit(1); } fread(&a, sizeof(a), 1, fi); if (a.e_magic != RMAGIC && a.e_magic != EMAGIC) { fprintf(stderr, "Invalid x65 header\n"); exit(1); } if (hflag) { printf("Exec header:\n"); printf("\tentry point=0x%x\n", a.e_entry); printf("\ttext size=%d\n", a.e_text); printf("\tdata size=%d\n", a.e_data); printf("\tbss size=%d\n", a.e_bss); printf("\tnreloc=%d\n", a.e_nreloc); printf("\tnsym=%d\n", a.e_nsym); } if (a.e_text) { txt = (char *)malloc(a.e_text); fread(txt, a.e_text, 1, fi); } if (tflag && a.e_text) { printf("Text section:\n"); dumpbytes(txt, a.e_text, a.e_entry); } if (a.e_data) { dat = (char *)malloc(a.e_data); fread(dat, a.e_data, 1, fi); } if (dflag && a.e_data) { printf("Data section:\n"); dumpbytes(dat, a.e_data, a.e_entry+a.e_text); } if (rflag && a.e_nreloc) { printf("Relocation table:\n"); fseek(fi, sizeof(a)+a.e_text+a.e_data, 0); for(i = 0; i < a.e_nreloc ;i++) { if (fread(&r, sizeof(r), 1, fi) != 1) { fprintf(stderr, "Truncated file\n"); exit(1); } printf("\t%8s(0x%04x)\t%8s", segnames[r.r_seg], r.r_addr, segnames[r.r_targ]); if (r.r_seg == S_TEXT && txt) { v = getbytes(&txt[r.r_addr], r.r_size); printf("(0x%04x)", v); } else if (r.r_seg == S_DATA && dat) { v = getbytes(&dat[r.r_addr], r.r_size); printf("(0x%04x)", v); } printf("\tsize=%d\n", r.r_size); } } if (sflag && a.e_nsym) { printf("Symbol table:\n"); fseek(fi, sizeof(a)+a.e_text+a.e_data+a.e_nreloc*sizeof(r), 0); for(i = 0; i < a.e_nsym ;i++) { if (fread(&s, sizeof(s), 1, fi) != 1) { fprintf(stderr, "Truncated file\n"); exit(1); } printf("\t%06x %d", s.s_value, s.s_size); switch (s.s_type&S_SEGMASK) { case S_ABS: printf(" A"); break; case S_TEXT: printf(" T"); break; case S_DATA: printf(" D"); break; case S_BSS: printf(" B"); break; default: printf(" U"); break; } printf("%c %s\n", (s.s_type&S_UNDEF) ? 'u' : ' ', s.s_name); } } if (txt) free(txt); if (dat) free(dat); fclose(fi); } getbytes(unsigned char *p, int len) { unsigned int v = 0; if (len == 1) v = p[0]; else if (len == 2) v = p[0] + 256 * p[1]; else if (len == 3) v = p[0] + 256 * p[1] + 65536 * p[2]; else v = -1; return v; } dumpbytes(unsigned char *p, int len, unsigned int addr) { int n = 0; while (n < len) { if ((n % 16) == 0) printf("\t%06x", addr+n); if ((n++ % 8) == 0) putchar(' '); printf(" %02x", *p++); if ((n % 16) == 0) putchar('\n'); } if ((n % 16) != 0) putchar('\n'); } a65/ 40755 54517 0 0 5523133144 10345 5ustar mercierwheela65/main.c100644 54517 0 6432 5523107437 11545 0ustar mercierwheel/* * A simple assembler for the 65816... */ #include #include #include "nodes.h" #include "y.tab.h" #define MAXMEM (1024*64) FILE *infile = stdin; int verbose = 0; int debug = 0; struct exec65 a; FILE *fo; char *outfile = "a65.out"; char textmem[MAXMEM], datamem[MAXMEM]; struct segment textseg = { textmem, 0, S_TEXT }; struct segment dataseg = { datamem, 0, S_DATA }; struct segment bssseg = { NULL, 0, S_BSS }; struct segment *curseg = &textseg; #ifdef YYDEBUG extern int yydebug; #endif main(int argc, char **argv) { extern int writesyms(), countsyms(); int c; while ((c = getopt(argc, argv, "vdo:")) != EOF) switch (c) { case 'o': outfile = optarg; break; case 'v': verbose++; break; case 'd': debug++; #ifdef YYDEBUG yydebug++; #endif break; } if (optind < argc) infile = fopen(argv[optind], "r"); /* * Since eval() is recursive we set this up to catch cases * where undefined identifiers are used. It's also used by * pass2(). */ if (setjmp(evaljmp)) { fprintf(stderr, "Line %d: Cannot evaluate expression\n", lineno); exit(1); } yyparse(0); pass2(); if (textseg.dot || dataseg.dot || bssseg.dot) { a.e_magic = RMAGIC; a.e_entry = 0; a.e_text = textseg.dot; a.e_data = dataseg.dot; a.e_bss = bssseg.dot; a.e_nreloc = countrelocs(); a.e_nsym = 0; everysym(countsyms); a.e_nsym += countexterns(); if ((fo = fopen(outfile, "w")) != NULL) { fwrite(&a, sizeof(a), 1, fo); fwrite(textseg.mem, textseg.dot, 1, fo); fwrite(dataseg.mem, dataseg.dot, 1, fo); writerelocs(); everysym(writesyms); writeexterns(); fclose(fo); } else { fprintf(stderr, "Can't create %s\n", outfile); } } printf("%d bytes used\n", stats.memused); } /* * If a symbol was referenced but not defined anywhere then * the patchlist set up for pass2 will have p->resolved == 2. * We make S_UNDEF symbol table entries for them here... */ writeexterns() { struct patch *p; struct sym65 s; for(p = patchlist; p != NULL ;p = p->next) if (p->resolved == 2) { strcpy(s.s_name, p->etree->n_sym->name); s.s_value = p->addr; s.s_size = p->size; s.s_type = p->seg->type|S_UNDEF; fwrite(&s, sizeof(s), 1, fo); } } /* * I didn't want to seek around in the output file so we need * these to set up a.nsym correctly. */ countexterns() { struct patch *p; int n = 0; for(p = patchlist; p != NULL ;p = p->next) if (p->resolved == 2) n++; return n; } countsyms(struct sym *s) { if (s->exported && s->defined) { a.e_nsym++; } } writesyms(struct sym *s) { struct sym65 p; if (s->exported && s->defined) { strcpy(p.s_name, s->name); p.s_value = s->val; p.s_size = 0; p.s_type = s->seg->type; fwrite(&p, sizeof(p), 1, fo); } } countrelocs() { struct reloc *r; int n = 0; for(r = reloclist; r != NULL ;r = r->next) n++; return n; } writerelocs() { struct reloc *r; struct reloc65 s; for(r = reloclist; r != NULL ;r = r->next) { s.r_addr = r->addr; s.r_size = r->size; s.r_seg = r->seg; s.r_targ = r->targ; fwrite(&s, sizeof(s), 1, fo); } } void * xmalloc(int nbytes) { void *ret = malloc(nbytes); if (ret == NULL) { fprintf(stderr, "Out of memory\n"); exit(1); } stats.memused += nbytes; return ret; } void xfree(void *ptr, int nbytes) { free(ptr); stats.memused -= nbytes; } a65/opcodes.c100644 54517 0 27135 5523103350 12266 0ustar mercierwheel/* * $Log: opcodes.c,v $ * Revision 1.1 1993/12/10 02:07:40 mercier * Initial revision * */ #include "opcodes.h" #include "nodes.h" static struct modeop op_adc[] = { {M_IMM, 0x69}, {M_DIRECT, 0x65}, {M_DIRX, 0x75}, {M_DIRIND, 0x72}, {M_DIRIDXIND, 0x61}, {M_DIRINDIDX, 0x71}, {M_DIRINDLONG, 0x67}, {M_DIRINDLONGIDX, 0x77}, {M_ABS, 0x6d}, {M_ABSX, 0x7d}, {M_ABSY, 0x79}, {M_ABSLONG, 0x6f}, {M_ABSLONGX, 0x7f}, {M_STACKREL, 0x63}, {M_STACKRELINDIDX, 0x73}, {0, 0} }; static struct modeop op_and[] = { {M_IMM, 0x29}, {M_DIRECT, 0x25}, {M_DIRX, 0x35}, {M_DIRIND, 0x32}, {M_DIRIDXIND, 0x21}, {M_DIRINDIDX, 0x31}, {M_DIRINDLONG, 0x27}, {M_DIRINDLONGIDX, 0x37}, {M_ABS, 0x2d}, {M_ABSX, 0x3d}, {M_ABSY, 0x39}, {M_ABSLONG, 0x2f}, {M_ABSLONGX, 0x3f}, {M_STACKREL, 0x23}, {M_STACKRELINDIDX, 0x33}, {0, 0} }; static struct modeop op_asl[] = { {M_ACC, 0x0a}, {M_DIRECT, 0x06}, {M_DIRX, 0x16}, {M_ABS, 0x0e}, {M_ABSX, 0x1e}, {0, 0} }; static struct modeop op_bcc[] = { {M_REL, 0x90}, {0, 0}, }; static struct modeop op_bcs[] = { {M_REL, 0xb0}, {0, 0}, }; static struct modeop op_beq[] = { {M_REL, 0xf0}, {0, 0}, }; static struct modeop op_bit[] = { {M_IMM, 0x89}, {M_DIRECT, 0x24}, {M_DIRX, 0x34}, {M_ABS, 0x2c}, {M_ABSX, 0x3c}, {0, 0} }; static struct modeop op_bmi[] = { {M_ABSLONG, 0x30}, {0, 0}, }; static struct modeop op_bne[] = { {M_REL, 0xd0}, {0, 0}, }; static struct modeop op_bpl[] = { {M_REL, 0x10}, {0, 0}, }; static struct modeop op_bra[] = { {M_REL, 0x80}, {0, 0}, }; static struct modeop op_brk[] = { {M_IMM, 0x00}, {0, 0}, }; static struct modeop op_brl[] = { {M_RELLONG, 0x82}, {0, 0}, }; static struct modeop op_bvc[] = { {M_REL, 0x50}, {0, 0}, }; static struct modeop op_bvs[] = { {M_REL, 0x70}, {0, 0}, }; static struct modeop op_clc[] = { {M_IMPL, 0x18}, {0, 0}, }; static struct modeop op_cld[] = { {M_IMPL, 0xd8}, {0, 0}, }; static struct modeop op_cli[] = { {M_IMPL, 0x58}, {0, 0}, }; static struct modeop op_clv[] = { {M_IMPL, 0xb8}, {0, 0}, }; static struct modeop op_cmp[] = { {M_IMM, 0xc9}, {M_DIRECT, 0xc5}, {M_DIRX, 0xd5}, {M_DIRIND, 0xd2}, {M_DIRIDXIND, 0xc1}, {M_DIRINDIDX, 0xd1}, {M_DIRINDLONG, 0xc7}, {M_DIRINDLONGIDX, 0xd7}, {M_ABS, 0xcd}, {M_ABSX, 0xdd}, {M_ABSY, 0xd9}, {M_ABSLONG, 0xcf}, {M_ABSLONGX, 0xdf}, {M_STACKREL, 0xc3}, {M_STACKRELINDIDX, 0xd3}, {0, 0} }; static struct modeop op_cop[] = { {M_IMM, 0x02}, {0, 0}, }; static struct modeop op_cpx[] = { {M_IMM, 0xe0}, {M_DIRECT, 0xe4}, {M_ABS, 0xec}, {0, 0} }; static struct modeop op_cpy[] = { {M_IMM, 0xc0}, {M_DIRECT, 0xc4}, {M_ABS, 0xcc}, {0, 0} }; static struct modeop op_dec[] = { {M_ACC, 0x3a}, {M_DIRECT, 0xc6}, {M_DIRX, 0xd6}, {M_ABS, 0xce}, {M_ABSX, 0xde}, {0, 0} }; static struct modeop op_dex[] = { {M_IMPL, 0xca}, {0, 0} }; static struct modeop op_dey[] = { {M_IMPL, 0x88}, {0, 0} }; static struct modeop op_eor[] = { {M_IMM, 0x49}, {M_DIRECT, 0x45}, {M_DIRX, 0x55}, {M_DIRIND, 0x52}, {M_DIRIDXIND, 0x41}, {M_DIRINDIDX, 0x51}, {M_DIRINDLONG, 0x47}, {M_DIRINDLONGIDX, 0x57}, {M_ABS, 0x4d}, {M_ABSX, 0x5d}, {M_ABSY, 0x59}, {M_ABSLONG, 0x4f}, {M_ABSLONGX, 0x5f}, {M_STACKREL, 0x43}, {M_STACKRELINDIDX, 0x53}, {0, 0} }; static struct modeop op_inc[] = { {M_ACC, 0x1a}, {M_DIRECT, 0xe6}, {M_DIRX, 0xf6}, {M_ABS, 0xee}, {M_ABSX, 0xfe}, {0, 0} }; static struct modeop op_inx[] = { {M_IMPL, 0xe8}, {0, 0} }; static struct modeop op_iny[] = { {M_IMPL, 0xc8}, {0, 0} }; static struct modeop op_jcc[] = { {M_REL, 0xb0}, {M_REL, 0x90}, {0, 0} }; static struct modeop op_jcs[] = { {M_REL, 0x90}, {M_REL, 0xb0}, {0, 0} }; static struct modeop op_jeq[] = { {M_REL, 0xd0}, {M_REL, 0xf0}, {0, 0} }; static struct modeop op_jmi[] = { {M_REL, 0x10}, {M_REL, 0x30}, {0, 0} }; static struct modeop op_jml[] = { {M_ABSIND, 0xdc}, {0, 0} }; static struct modeop op_jmp[] = { {M_ABS, 0x4c}, {M_ABSIND, 0x6c}, {M_ABSIDXIND, 0x7c}, {M_ABSLONG, 0x5c}, {0, 0} }; static struct modeop op_jne[] = { {M_REL, 0xf0}, {M_REL, 0xd0}, {0, 0} }; static struct modeop op_jpl[] = { {M_REL, 0x30}, {M_REL, 0x10}, {0, 0} }; static struct modeop op_jsl[] = { {M_ABSLONG, 0x22}, {0, 0} }; static struct modeop op_jsr[] = { {M_ABS, 0x20}, {M_ABSIDXIND, 0xfc}, {0, 0} }; static struct modeop op_jvc[] = { {M_REL, 0x50}, {M_REL, 0x70}, {0, 0} }; static struct modeop op_jvs[] = { {M_REL, 0x70}, {M_REL, 0x50}, {0, 0} }; static struct modeop op_lda[] = { {M_IMM, 0xa9}, {M_DIRECT, 0xa5}, {M_DIRX, 0xb5}, {M_DIRIND, 0xb2}, {M_DIRIDXIND, 0xa1}, {M_DIRINDIDX, 0xb1}, {M_DIRINDLONG, 0xa7}, {M_DIRINDLONGIDX, 0xb7}, {M_ABS, 0xad}, {M_ABSX, 0xbd}, {M_ABSY, 0xb9}, {M_ABSLONG, 0xaf}, {M_ABSLONGX, 0xbf}, {M_STACKREL, 0xa3}, {M_STACKRELINDIDX, 0xb3}, {0, 0} }; static struct modeop op_ldx[] = { {M_IMM, 0xa2}, {M_DIRECT, 0xa6}, {M_DIRY, 0xb6}, {M_ABS, 0xae}, {M_ABSY, 0xbe}, {0, 0} }; static struct modeop op_ldy[] = { {M_IMM, 0xa0}, {M_DIRECT, 0xa4}, {M_DIRX, 0xb4}, {M_ABS, 0xac}, {M_ABSX, 0xbc}, {0, 0} }; static struct modeop op_lsr[] = { {M_DIRECT, 0x46}, {M_DIRX, 0x56}, {M_ABS, 0x4e}, {M_ABSX, 0x5e}, {0, 0} }; static struct modeop op_mvn[] = { {M_ABS, 0x54}, {0, 0} }; static struct modeop op_mvp[] = { {M_ABS, 0x44}, {0, 0} }; static struct modeop op_nop[] = { {M_IMPL, 0xea}, {0, 0} }; static struct modeop op_ora[] = { {M_IMM, 0x09}, {M_DIRECT, 0x05}, {M_DIRX, 0x15}, {M_DIRIND, 0x12}, {M_DIRIDXIND, 0x01}, {M_DIRINDIDX, 0x11}, {M_DIRINDLONG, 0x07}, {M_DIRINDLONGIDX, 0x17}, {M_ABS, 0x0d}, {M_ABSX, 0x1d}, {M_ABSY, 0x19}, {M_ABSLONG, 0x0f}, {M_ABSLONGX, 0x1f}, {M_STACKREL, 0x03}, {M_STACKRELINDIDX, 0x13}, {0, 0} }; static struct modeop op_pea[] = { {M_ABS, 0xf4}, {0, 0} }; static struct modeop op_pei[] = { {M_DIRIND, 0xd4}, {0, 0} }; static struct modeop op_per[] = { {M_ABSLONG, 0x62}, {0, 0} }; static struct modeop op_pha[] = { {M_IMPL, 0x48}, {0, 0} }; static struct modeop op_phb[] = { {M_IMPL, 0x8b}, {0, 0} }; static struct modeop op_phd[] = { {M_IMPL, 0x0b}, {0, 0} }; static struct modeop op_phk[] = { {M_IMPL, 0x4b}, {0, 0} }; static struct modeop op_php[] = { {M_IMPL, 0x08}, {0, 0} }; static struct modeop op_phx[] = { {M_IMPL, 0xda}, {0, 0} }; static struct modeop op_phy[] = { {M_IMPL, 0x5a}, {0, 0} }; static struct modeop op_pla[] = { {M_IMPL, 0x68}, {0, 0} }; static struct modeop op_plb[] = { {M_IMPL, 0xab}, {0, 0} }; static struct modeop op_pld[] = { {M_IMPL, 0x2b}, {0, 0} }; static struct modeop op_plp[] = { {M_IMPL, 0x28}, {0, 0} }; static struct modeop op_plx[] = { {M_IMPL, 0xfa}, {0, 0} }; static struct modeop op_ply[] = { {M_IMPL, 0x7a}, {0, 0} }; static struct modeop op_rep[] = { {M_IMM, 0xc2}, {0, 0} }; static struct modeop op_rol[] = { {M_ACC, 0x2a}, {M_DIRECT, 0xe6}, {M_DIRX, 0x36}, {M_ABS, 0x2e}, {M_ABSX, 0x3e}, {0, 0} }; static struct modeop op_ror[] = { {M_ACC, 0x6a}, {M_DIRECT, 0x66}, {M_DIRX, 0x76}, {M_ABS, 0x6e}, {M_ABSX, 0x7e}, {0, 0} }; static struct modeop op_rti[] = { {M_IMPL, 0x40}, {0, 0} }; static struct modeop op_rts[] = { {M_IMPL, 0x60}, {0, 0} }; static struct modeop op_sbc[] = { {M_IMM, 0xe9}, {M_DIRECT, 0xe5}, {M_DIRX, 0xf5}, {M_DIRIND, 0xf2}, {M_DIRIDXIND, 0xe1}, {M_DIRINDIDX, 0xf1}, {M_DIRINDLONG, 0xe7}, {M_DIRINDLONGIDX, 0xf7}, {M_ABS, 0xed}, {M_ABSX, 0xfd}, {M_ABSY, 0xf9}, {M_ABSLONG, 0xef}, {M_ABSLONGX, 0xff}, {M_STACKREL, 0xe3}, {M_STACKRELINDIDX, 0xf3}, {0, 0} }; static struct modeop op_sec[] = { {M_IMPL, 0x38}, {0, 0} }; static struct modeop op_sed[] = { {M_IMPL, 0xf8}, {0, 0} }; static struct modeop op_sei[] = { {M_IMPL, 0x78}, {0, 0} }; static struct modeop op_sep[] = { {M_IMM, 0xe2}, {0, 0} }; static struct modeop op_sta[] = { {M_DIRECT, 0x85}, {M_DIRX, 0x95}, {M_DIRIND, 0x92}, {M_DIRIDXIND, 0x81}, {M_DIRINDIDX, 0x91}, {M_DIRINDLONG, 0x87}, {M_DIRINDLONGIDX, 0x97}, {M_ABS, 0x8d}, {M_ABSX, 0x9d}, {M_ABSY, 0x99}, {M_ABSLONG, 0x8f}, {M_ABSLONGX, 0x9f}, {M_STACKREL, 0x83}, {M_STACKRELINDIDX, 0x93}, {0, 0} }; static struct modeop op_stp[] = { {M_IMPL, 0xdb}, {0, 0} }; static struct modeop op_stx[] = { {M_DIRECT, 0x86}, {M_DIRY, 0x96}, {M_ABS, 0x8e}, {0, 0} }; static struct modeop op_sty[] = { {M_DIRECT, 0x84}, {M_DIRX, 0x94}, {M_ABS, 0x8c}, {0, 0} }; static struct modeop op_stz[] = { {M_DIRECT, 0x64}, {M_DIRX, 0x74}, {M_ABS, 0x9c}, {M_ABSX, 0x9e}, {0, 0} }; static struct modeop op_tax[] = { {M_IMPL, 0xaa}, {0, 0} }; static struct modeop op_tay[] = { {M_IMPL, 0xa8}, {0, 0} }; static struct modeop op_tcd[] = { {M_IMPL, 0x5b}, {0, 0} }; static struct modeop op_tdc[] = { {M_IMPL, 0x7b}, {0, 0} }; static struct modeop op_trb[] = { {M_DIRECT, 0x14}, {M_ABS, 0x1c}, {0, 0} }; static struct modeop op_tsb[] = { {M_DIRECT, 0x04}, {M_ABS, 0x0c}, {0, 0} }; static struct modeop op_tsc[] = { {M_IMPL, 0x3b}, {0, 0} }; static struct modeop op_tsx[] = { {M_IMPL, 0xba}, {0, 0} }; static struct modeop op_txa[] = { {M_IMPL, 0x8a}, {0, 0} }; static struct modeop op_txs[] = { {M_IMPL, 0x9a}, {0, 0} }; static struct modeop op_txy[] = { {M_IMPL, 0x9b}, {0, 0} }; static struct modeop op_tya[] = { {M_IMPL, 0x98}, {0, 0} }; static struct modeop op_wai[] = { {M_IMPL, 0xcb}, {0, 0} }; static struct modeop op_xba[] = { {M_IMPL, 0xeb}, {0, 0} }; static struct modeop op_xce[] = { {M_IMPL, 0xfb}, {0, 0} }; struct opcode optab[] = { "adc", 0x0, op_adc, "and", 0x0, op_and, "asl", 0x0, op_asl, "bcc", F_BRANCH, op_bcc, "bcs", F_BRANCH, op_bcs, "beq", F_BRANCH, op_beq, "bit", F_BRANCH, op_bit, "bmi", F_BRANCH, op_bmi, "bne", F_BRANCH, op_bne, "bpl", F_BRANCH, op_bpl, "bra", F_BRANCH, op_bra, "brk", 0x0, op_brk, "brl", F_BRANCHL, op_brl, "bvc", F_BRANCH, op_bvc, "bvs", F_BRANCH, op_bvs, "clc", 0x0, op_clc, "cld", 0x0, op_cld, "cli", 0x0, op_cli, "clv", 0x0, op_clv, "cmp", 0x0, op_cmp, "cop", 0x0, op_cop, "cpx", 0x0, op_cpx, "cpy", 0x0, op_cpy, "dec", 0x0, op_dec, "dex", 0x0, op_dex, "dey", 0x0, op_dey, "eor", 0x0, op_eor, "inc", 0x0, op_inc, "inx", 0x0, op_inx, "iny", 0x0, op_iny, "jcc", F_PSEUDOB, op_jcc, "jcs", F_PSEUDOB, op_jcs, "jeq", F_PSEUDOB, op_jeq, "jmi", F_PSEUDOB, op_jmi, "jml", 0x0, op_jml, "jmp", 0x0, op_jmp, "jne", F_PSEUDOB, op_jne, "jpl", F_PSEUDOB, op_jpl, "jsl", F_JSL, op_jsl, "jsr", 0x0, op_jsr, "jvc", F_PSEUDOB, op_jvc, "jvs", F_PSEUDOB, op_jvs, "lda", 0x0, op_lda, "ldx", 0x0, op_ldx, "ldy", 0x0, op_ldy, "lsr", 0x0, op_lsr, "mvn", 0x0, op_mvn, "mvp", 0x0, op_mvp, "nop", 0x0, op_nop, "ora", 0x0, op_ora, "pea", 0x0, op_pea, "pei", 0x0, op_pei, "per", 0x0, op_per, "pha", 0x0, op_pha, "phb", 0x0, op_phb, "phd", 0x0, op_phd, "phk", 0x0, op_phk, "php", 0x0, op_php, "phx", 0x0, op_phx, "phy", 0x0, op_phy, "pla", 0x0, op_pla, "plb", 0x0, op_plb, "pld", 0x0, op_pld, "plp", 0x0, op_plp, "plx", 0x0, op_plx, "ply", 0x0, op_ply, "rep", 0x0, op_rep, "rol", 0x0, op_rol, "ror", 0x0, op_ror, "rti", 0x0, op_rti, "rts", 0x0, op_rts, "sbc", 0x0, op_sbc, "sec", 0x0, op_sec, "sed", 0x0, op_sed, "sei", 0x0, op_sei, "sep", 0x0, op_sep, "sta", 0x0, op_sta, "stp", 0x0, op_stp, "stx", 0x0, op_stx, "sty", 0x0, op_sty, "stz", 0x0, op_stz, "tax", 0x0, op_tax, "tay", 0x0, op_tay, "tcd", 0x0, op_tcd, "tdc", 0x0, op_tdc, "trb", 0x0, op_trb, "tsb", 0x0, op_tsb, "tsc", 0x0, op_tsc, "tsx", 0x0, op_tsx, "txa", 0x0, op_txa, "txs", 0x0, op_txs, "txy", 0x0, op_txy, "tya", 0x0, op_tya, "wai", 0x0, op_wai, "xba", 0x0, op_xba, "xce", 0x0, op_xce, }; #define NOPCODES (sizeof(optab) / sizeof(optab[0])) isopcode(char *str) { int l, r, c, m; l = 0; r = NOPCODES - 1; while (l <= r) { m = (l + r) / 2; if ((c = strcmp(str, optab[m].mne)) == 0) return m; else if (c < 0) r = m - 1; else l = m + 1; } return -1; } oplookup(int n, int mode) { int i; for(i = 0; optab[n].modes[i].mode ;i++) if (optab[n].modes[i].mode == mode) return i; return -1; } a65/opcodes.h100644 54517 0 1441 5521573734 12262 0ustar mercierwheel/* * The 24 modes directly from WDCs book. */ #define M_IMM 1 #define M_ABS 2 #define M_ABSLONG 3 #define M_DIRECT 4 #define M_ACC 5 #define M_IMPL 6 #define M_DIRINDIDX 7 #define M_DIRINDLONGIDX 8 #define M_DIRIDXIND 9 #define M_DIRX 10 #define M_DIRY 11 #define M_ABSX 12 #define M_ABSLONGX 13 #define M_ABSY 14 #define M_REL 15 #define M_RELLONG 16 #define M_ABSIND 17 #define M_DIRIND 18 #define M_DIRINDLONG 19 #define M_ABSIDXIND 20 #define M_STACK 21 #define M_STACKREL 22 #define M_STACKRELINDIDX 23 #define M_BLOCK 24 /* * Each opcode contains a list of modeop structures to match * opcode-mnemonic/operand-type/generated-opcode. */ struct modeop { unsigned char mode; unsigned char opcode; }; struct opcode { char *mne; unsigned char flags; struct modeop *modes; }; a65/parse.y100644 54517 0 17234 5523114334 11775 0ustar mercierwheel%{ /* * Parser for assembler input files. Yacc may seem like * overkill for an assembler but it made the expression * stuff trivial... */ #include #include #include "opcodes.h" #include "nodes.h" int lastop; int lineno = 1; %} %union { struct node *e; char str[MAXSYMLEN]; int ival; }; %token tBYTE tLSHIFT tRSHIFT tGLOBL tSPACE tWORD tDOT tTEXT tDATA tBSS %token tIDENT %token tNUMBER %token tOPCODE tBRANCHOP tJSL tBRL %type expr %left '|' %left '^' %left '&' %left tLSHIFT tRSHIFT %left '+' '-' %left '*' '/' '%' %right tUNARY '!' '~' %start lines %% lines : line | line lines ; line : eoln | instruction eoln ; instruction: label rest | label | rest ; label : tIDENT ':' { install($1, curseg, 1); } ; rest : tOPCODE '#' expr { insn($1, $3, M_IMM, 2); } | tOPCODE '#' expr ':' 'b' { insn($1, $3, M_IMM, 1); } | tOPCODE expr { insn($1, $2, M_ABS, 2); } | tOPCODE expr ':' 'l' { insn($1, $2, M_ABSLONG, 3); } | tOPCODE expr ':' 'd' { insn($1, $2, M_DIRECT, 1); } | tOPCODE 'a' { insn($1, NULL, M_ACC, 0); } | tOPCODE /* implied */ { insn($1, NULL, M_IMPL, 0); } | tOPCODE '(' expr ')' ',' 'y' { insn($1, $3, M_DIRINDIDX, 1); } | tOPCODE '[' expr ']' ',' 'y' { insn($1, $3, M_DIRINDLONGIDX, 1); } | tOPCODE '(' expr ':' 'd' ',' 'x' ')' { insn($1, $3, M_DIRIDXIND, 1); } | tOPCODE expr ':' 'd' ',' 'x' { insn($1, $2, M_DIRX, 1); } | tOPCODE expr ':' 'd' ',' 'y' { insn($1, $2, M_DIRY, 1); } | tOPCODE expr ',' 'x' { insn($1, $2, M_ABSX, 2); } | tOPCODE expr ':' 'l' ',' 'x' { insn($1, $2, M_ABSLONGX, 3); } | tOPCODE expr ',' 'y' { insn($1, $2, M_ABSY, 2); } | tBRANCHOP expr { insn($1, makenode('-', $2, makesym(constsym(curseg, curseg->dot+2))), M_REL, 1); } | tJSL expr { insn($1, $2, M_ABSLONG, 3); } | tBRL expr { insn($1, makenode('-', $2, makesym(constsym(curseg, curseg->dot+3))), M_RELLONG, 2); } | tOPCODE '(' expr ')' { insn($1, $3, M_ABSIND, 2); } | tOPCODE '(' expr ':' 'd' ')' { insn($1, $3, M_DIRIND, 1); } | tOPCODE '[' expr ']' { insn($1, $3, M_DIRINDLONG, 1); } | tOPCODE '(' expr ',' 'x' ')' { insn($1, $3, M_ABSIDXIND, 2); } | tOPCODE expr ',' 's' { insn($1, $2, M_STACKREL, 1); } | tOPCODE '(' expr ',' 's' ')' ',' 'y' { insn($1, $3, M_STACKRELINDIDX, 1); } | pseudo_op ; eoln : ';' | '\n' { lineno++; } ; expr : '{' expr '}' { $$ = $2; } | expr '|' expr { $$ = makenode('|', $1, $3); } | expr '^' expr { $$ = makenode('^', $1, $3); } | expr '&' expr { $$ = makenode('&', $1, $3); } | expr tLSHIFT expr { $$ = makenode(tLSHIFT, $1, $3); } | expr tRSHIFT expr { $$ = makenode(tRSHIFT, $1, $3); } | expr '+' expr { $$ = makenode('+', $1, $3); } | expr '-' expr { $$ = makenode('-', $1, $3); } | expr '*' expr { $$ = makenode('*', $1, $3); } | expr '/' expr { $$ = makenode('/', $1, $3); } | expr '%' expr { $$ = makenode('%', $1, $3); } | '-' expr %prec tUNARY { $$ = makenode('-', $2, NULL); } | '!' expr { $$ = makenode('!', $2, NULL); } | '~' expr { $$ = makenode('~', $2, NULL); } | tNUMBER { $$ = makeconst($1); } | tIDENT { struct sym *s; if ((s = lookup($1)) != NULL) $$ = makesym(s); else $$ = makesym(install($1, curseg, 0)); } | tDOT { $$ = makesym(constsym(curseg, curseg->dot)); } ; pseudo_op: byte_list | word_list | globl_list | tTEXT { curseg = &textseg; } | tDATA { curseg = &dataseg; } | tBSS { curseg = &bssseg; } | tSPACE expr { struct etype e = eval($2); if (!e.seg) curseg->dot += eval($2).value; else yyerror(".space must take constant arg"); freetree($2); } ; word_list: tWORD expr { if (curseg->mem) { struct etype e = eval($2); if (e.seg) addreloc(curseg, e.seg, curseg->dot, 2); patchbytes(curseg, curseg->dot, 2, e.value); curseg->dot += 2; } freetree($2); } | word_list ',' expr { if (curseg->mem) { struct etype e = eval($3); if (e.seg) addreloc(curseg, e.seg, curseg->dot, 2); patchbytes(curseg, curseg->dot, 2, e.value); curseg->dot += 2; } freetree($3); } ; byte_list: tBYTE expr { if (curseg->mem) { curseg->mem[curseg->dot++] = eval($2).value; } freetree($2); } | byte_list ',' expr { if (curseg->mem) { curseg->mem[curseg->dot++] = eval($3).value; } freetree($3); } ; globl_list: tGLOBL tIDENT { exportname($2); } | globl_list ',' tIDENT { exportname($3); } ; %% extern FILE *infile; struct { char *name; int token; } keytab[] = { ".", tDOT, ".bss", tBSS, ".byte", tBYTE, ".data", tDATA, ".globl", tGLOBL, ".space", tSPACE, ".text", tTEXT, ".word", tWORD, "a", 'a', "b", 'b', "d", 'd', "l", 'l', "s", 's', "x", 'x', "y", 'y', NULL, -1, }; yylex() { int c, i; while ((c = getc(infile)) != EOF && (c == ' ' || c == '\t')) ; if (c == ';') while ((c = getc(infile)) != EOF && c != '\n') ; if (c == '.' || c == '_' || isalpha(c)) { yylval.str[0] = c; i = 1; while ((c = getc(infile)) != EOF && (isalnum(c) || c == '_') && i < MAXSYMLEN-1) yylval.str[i++] = c; if (i == MAXSYMLEN-1) { /* skip rest... */ while ((c = getc(infile)) != EOF && (isalnum(c) || c == '_')) ; } ungetc(c, infile); yylval.str[i] = '\0'; if ((i = isopcode(yylval.str)) >= 0) { yylval.ival = i; if (optab[i].flags & F_BRANCH) return tBRANCHOP; else if (optab[i].flags & F_BRANCHL) return tBRL; else if (optab[i].flags & F_JSL) return tJSL; else return tOPCODE; } for(i = 0; keytab[i].name != NULL ;i++) if (strcmp(yylval.str, keytab[i].name) == 0) return keytab[i].token; return tIDENT; } if (c == '$') { /* hex constant */ while ((c = getc(infile)) != EOF && isspace(c)) ; yylval.ival = 0; while (isxdigit(c)) { if (c >= '0' && c <= '9') yylval.ival = 16*yylval.ival + c - '0'; else if (c >= 'a' && c <= 'f') yylval.ival = 16*yylval.ival + c - 'a' + 10; else if (c >= 'A' && c <= 'F') yylval.ival = 16*yylval.ival + c - 'A' + 10; c = getc(infile); } ungetc(c, infile); return tNUMBER; } if (c == '%') { /* binary constant */ while ((c = getc(infile)) != EOF && isspace(c)) ; yylval.ival = 0; while (c == '0' || c == '1') { yylval.ival = (yylval.ival << 1) + c - '0'; c = getc(infile); } ungetc(c, infile); return tNUMBER; } if (isdigit(c)) { /* decimal constant */ yylval.ival = c - '0'; while ((c = getc(infile)) != EOF && isdigit(c)) yylval.ival = 10*yylval.ival + c - '0'; ungetc(c, infile); return tNUMBER; } if (c == '<') { c = getc(infile); if (c == '<') return tLSHIFT; ungetc(c, infile); return '<'; } if (c == '>') { c = getc(infile); if (c == '>') return tRSHIFT; ungetc(c, infile); return '>'; } return c; } yyerror(char *str) { fprintf(stderr, "Line %d: %s\n", lineno, str); } struct node * makenode(int op, struct node *l, struct node *r) { struct node *p = (struct node *)xmalloc(sizeof(struct node)); p->n_op = op; p->n_left = l; p->n_right = r; return p; } struct node * makesym(struct sym *s) { struct node *p = (struct node *)xmalloc(sizeof(struct node)); p->n_op = tIDENT; p->n_sym = s; return p; } struct sym * constsym(struct segment *cs, int value) { struct sym *s = (struct sym *)xmalloc(sizeof(struct sym)); s->name = "branch"; s->val = value; s->seg = cs; s->defined = 1; s->exported = 0; s->next = NULL; } struct node * makeconst(int val) { struct node *p = (struct node *)xmalloc(sizeof(struct node)); p->n_op = tNUMBER; p->n_val = val; return p; } exportname(char *name) { struct sym *s; if ((s = lookup(name)) == NULL) s = install(name, curseg, 0); s->exported = 1; } a65/Makefile100644 54517 0 375 5523117456 12077 0ustar mercierwheel# OBJS=main.o parse.o opcodes.o gencode.o syms.o eval.o CFLAGS=-I../inc -DYYDEBUG -g PROG=a65 # all: $(PROG) $(PROG): $(OBJS) $(CC) $(CFLAGS) -o $(PROG) $(OBJS) clean: rm -f $(PROG) $(OBJS) y.tab.h main.c eval.c gencode.c: y.tab.h y.tab.h: parse.o a65/gencode.c100644 54517 0 3201 5523114224 12204 0ustar mercierwheel/* */ #include #include "opcodes.h" #include "nodes.h" #include "y.tab.h" struct patch *patchlist = NULL; struct reloc *reloclist = NULL; addpatch(struct segment *seg, int addr, int size, struct node *etree) { struct patch *p = (struct patch *)xmalloc(sizeof(struct patch)); extern int lineno; p->addr = addr; p->seg = seg; p->size = size; p->etree = etree; p->lineno = lineno; /* so pass2 gives good messages */ p->resolved = 0; p->next = patchlist; patchlist = p; } void addreloc(struct segment *srcseg, struct segment *dstseg, int addr, int size) { struct reloc *r = (struct reloc *)xmalloc(sizeof(struct reloc)); r->addr = addr; r->seg = srcseg->type; r->targ = dstseg->type; r->size = size; r->next = reloclist; reloclist = r; } insn(int op, struct node *etree, int mode, int size) { int m; if ((m = oplookup(op, mode)) >= 0) { curseg->mem[curseg->dot] = optab[op].modes[m].opcode; } else { yyerror("Invalid mode"); } if (size && etree) { addpatch(curseg, curseg->dot+1, size, etree); } curseg->dot += size+1; } pass2() { struct patch *p; struct etype e; for(p = patchlist; p != NULL ;p = p->next) { if (setjmp(evaljmp)) { /* eval failed... */ if (p->etree->n_op != tIDENT) { fprintf(stderr, "Line %d: Complex exprs not allowed on externs\n", p->lineno); } else { p->etree->n_sym->exported++; p->resolved = 2; } continue; } else { e = eval(p->etree); p->resolved++; patchbytes(p->seg, p->addr, p->size, e.value); } } } patchbytes(struct segment *seg, int addr, int len, int value) { int i; for(i = 0; i < len ;i++) { seg->mem[addr+i] = value % 256; value /= 256; } } a65/syms.c100644 54517 0 1741 5522411207 11602 0ustar mercierwheel/* */ #include #include "nodes.h" #define HSIZE 101 struct sym *symtab[HSIZE]; hash(char *str) { int ret = 0; while (*str) ret = (*str++ + ret) % HSIZE; return ret; } struct sym * lookup(char *str) { int slot = hash(str); register struct sym *p; for(p = symtab[slot]; p != NULL ;p = p->next) if (strcmp(str, p->name) == 0) break; return p; } struct sym * install(char *str, struct segment *cs, int defined) { int slot = hash(str); register struct sym *p; for(p = symtab[slot]; p != NULL ;p = p->next) if (strcmp(str, p->name) == 0) break; if (p == NULL) { p = (struct sym *)xmalloc(sizeof(struct sym)); p->name = (char *)xmalloc(strlen(str)+1); strcpy(p->name, str); p->exported = 0; p->next = symtab[slot]; symtab[slot] = p; } p->val = cs->dot; p->seg = cs; p->defined = defined; return p; } everysym(func) int (*func)(); { int i; struct sym *s; for(i = 0; i < HSIZE ;i++) for(s = symtab[i]; s != NULL ;s = s->next) func(s); } a65/TODO100644 54517 0 476 5521572661 11132 0ustar mercierwheel Goals: o Support j?? style branches for > +/- 128 byte conditional jumps. jne foo becomes beq .L0 jmp foo .L0: but only if foo is more than 128 bytes away otherwise its just bne foo. o Support for block move instructions. o Replace the way opcode/operand matching is done. It stinks. a65/nodes.h100644 54517 0 3620 5523107446 11732 0ustar mercierwheel#include #include #include "exec65.h" #define F_BRANCH 0x01 #define F_BRANCHL 0x02 #define F_JSL 0x04 #define F_PSEUDOB 0x08 /* pseudo branch */ struct node { int n_op; union { struct { struct node *l, *r; } interior; struct sym *s; int i; } x; #define n_left x.interior.l #define n_right x.interior.r #define n_sym x.s #define n_val x.i }; struct segment { unsigned char *mem; int dot; int type; /* S_TEXT, etc from exec65.h */ }; extern struct segment textseg, dataseg, bssseg, *curseg; struct sym { char *name; int val; struct segment *seg; int defined; int exported; struct sym *next; }; struct patch { int addr; struct segment *seg; int size; int lineno; int resolved; /* 0=unresolved, 1=resolved, 2=need extern */ struct node *etree; struct patch *next; }; extern struct patch *patchlist; struct reloc { unsigned short addr; /* offset in segment to relocate */ int size; /* number of bytes to patch */ int seg; /* segment addr refers to */ int targ; /* segment contents of addr refer to */ struct reloc *next; }; extern struct reloc *reloclist; struct { int memused; } stats; struct etype { int value; struct segment *seg; }; jmp_buf evaljmp; #define E_CONST 1 #define E_ADDR 2 extern int lineno; extern struct opcode optab[]; extern insn(int op, struct node *etree, int type, int nbytes); extern struct node *makenode(int op, struct node *l, struct node *r); extern struct node *makesym(struct sym *s); extern struct node *makeconst(int val); extern struct sym *lookup(char *name); extern struct sym *install(char *name, struct segment *cs, int defined); extern struct etype eval(struct node *etree); extern struct sym *constsym(struct segment *cs, int value); extern int everysym(int (*)()); extern void *xmalloc(int nbytes); extern void xfree(void *ptr, int nbytes); extern void addreloc(struct segment *src, struct segment *dst, int addr, int size); a65/eval.c100644 54517 0 3531 5522775713 11554 0ustar mercierwheel/* * Evaluate the expression tree, return the value as * well as an indication of its type (constant or address). * This is nessary so that things like: * lda #label+2 * will generate a relocation entry while * lda #label1-label2 * wont. * Sorry about passing structures around... */ #include #include "nodes.h" #include "y.tab.h" #define binop(op) \ a = eval(e->n_left); b = eval(e->n_right); \ if (a.seg && !b.seg) { \ r.seg = a.seg; \ } else if (!a.seg && b.seg) { \ r.seg = b.seg; \ } else { \ if ((a.seg && b.seg) && a.seg != b.seg) \ yyerror("Address arith must be in same segment"); \ r.seg = NULL; \ } \ r.value = a.value op b.value; \ return r struct etype eval(struct node *e) { struct etype r, a, b; int t; if (e) { switch(e->n_op) { case tNUMBER: r.seg = NULL; r.value = e->n_val; return r; case tIDENT: if (!e->n_sym->defined) longjmp(evaljmp, 1); r.seg = e->n_sym->seg; r.value = e->n_sym->val; return r; case '|': binop(|); case '^': binop(^); case '&': binop(&); case tLSHIFT: binop(<<); case tRSHIFT: binop(>>); case '+': binop(+); case '-': if (e->n_right == NULL) { a = eval(e->n_left); r.value = -a.value; r.seg = a.seg; return r; } else { binop(-); } case '*': binop(*); case '/': binop(/); case '%': binop(%); case '!': a = eval(e->n_left); r.value = !a.value; r.seg = a.seg; return r; case '~': a = eval(e->n_left); r.value = ~a.value; r.seg = a.seg; return r; default: fprintf(stderr, "Unknown op in eval, %d\n", e->n_op); exit(1); } } else { fprintf(stderr, "Eval called with NULL!\n"); exit(1); } } void freetree(struct node *e) { if (e) { if (e->n_op == tNUMBER || e->n_op == tIDENT) xfree((void *)e, sizeof(*e)); else { freetree(e->n_left); freetree(e->n_right); } } } ld65/ 40755 54517 0 0 5523133144 10524 5ustar mercierwheelld65/ld65.c100644 54517 0 23613 5523131455 11567 0ustar mercierwheel/* * Linker for x65 development system. VERY basic... * */ #include #include #include "exec65.h" #define SEGSIZE 0x10000 #define SEGMASK 0x0ffff char *outfile = "x65.out"; int makexout = 1; struct object { char *fname; int textstart; /* start of real text for this .o */ int datastart; /* start of real text for this .o */ int bssstart; /* start of real text for this .o */ int pad; struct exec65 hdr; unsigned char *txt; unsigned char *dat; struct reloc65 *reltab; struct object *next; }; struct sym { struct sym65 *s; int emit; struct object *o; struct sym *next; }; struct sym *lookup(char *name); struct sym *install(struct sym65 *s, struct object *o); struct sym65 etext_sym = { "_etext", S_TEXT, 0, 0, 0 }; struct sym65 edata_sym = { "_edata", S_DATA, 0, 0, 0 }; struct sym65 end_sym = { "_end", S_BSS, 0, 0, 0 }; #define HSIZE 101 struct sym *symtab[HSIZE]; int textstart = 0x8000; int datastart = -1; int bssstart = -1; int padtext = 1; int textsize = 0; int datasize = 0; int bsssize = 0; struct object *objects; struct object **nxtobj; long getbytes(unsigned char *p, int len); void patchbytes(unsigned char *mem, int len, long value); main(int argc, char **argv) { int c; unsigned u; while ((c = getopt(argc, argv, "T:D:p")) != EOF) switch(c) { case 'T': textstart = (unsigned)strtol(optarg, NULL, 0); break; case 'D': datastart = (unsigned)strtol(optarg, NULL, 0); break; case 'o': outfile = optarg; break; case 'p': padtext++; break; } while (optind < argc) readobj(argv[optind++]); layout_sections(); perform_relocations(); layout_symbols(); patch_undefs(); if (check_undefs()) write_object_file(); } write_object_file() { struct exec65 a; struct object *o; struct sym *s; FILE *fo; int i; a.e_magic = EMAGIC; a.e_entry = textstart; a.e_text = textsize; a.e_data = datasize; a.e_bss = bsssize; a.e_nreloc = 0; a.e_nsym = count_symbols(); if ((fo = fopen(outfile, "w")) == NULL) { fprintf(stderr, "Can't create %s\n", outfile); exit(1); } fwrite(&a, sizeof(a), 1, fo); for(o = objects; o != NULL ;o = o->next) { if (o->hdr.e_text) fwrite(o->txt, o->hdr.e_text, 1, fo); if (o->pad) write_pad(o->pad, fo); } for(o = objects; o != NULL ;o = o->next) if (o->hdr.e_data) fwrite(o->dat, o->hdr.e_data, 1, fo); for(i = 0; i < HSIZE ;i++) for(s = symtab[i]; s != NULL ;s = s->next) if (s->emit) fwrite(s->s, sizeof(*s->s), 1, fo); fclose(fo); } write_pad(int len, FILE *fo) { static char zerobuf[256]; while (len > sizeof(zerobuf)) { fwrite(zerobuf, sizeof(zerobuf), 1, fo); len -= sizeof(zerobuf); } if (len) fwrite(zerobuf, len, 1, fo); } count_symbols() { struct sym *s; int i, n = 0; for(i = 0; i < HSIZE ;i++) for(s = symtab[i]; s != NULL ;s = s->next) if (s->emit) n++; return n; } /* * Print a message and return 0 if any unresolved symbols * remain. */ check_undefs() { struct sym *s; int i; for(i = 0; i < HSIZE ;i++) for(s = symtab[i]; s != NULL ;s = s->next) if (s->s->s_type&S_UNDEF) { fprintf(stderr, "Undefined externals remain\n"); return 0; } return 1; } /* * For every undefined symbol reference lookup the * definition and patch the location with the symbol's * value. */ patch_undefs() { struct sym *s, *t; unsigned char *dst; int i; for(i = 0; i < HSIZE ;i++) for(s = symtab[i]; s != NULL ;s = s->next) if (s->s->s_type&S_UNDEF) { t = lookup(s->s->s_name); if (t == NULL) { fprintf(stderr, "undefined: %s\n", s->s->s_name); continue; } switch(s->s->s_type&S_SEGMASK) { case S_TEXT: dst = &s->o->txt[s->s->s_value]; break; case S_DATA: dst = &s->o->dat[s->s->s_value]; break; default: dst = NULL; } patchbytes(dst, s->s->s_size, t->s->s_value); s->s->s_type &= S_SEGMASK; } } /* * For each .o we already laid out the segment offsets * in layout_sections(), now we allocate absolute * addresses for every defined symbol by taking the symbols * .o address and adding the approptiate segment offset. */ layout_symbols() { struct sym *s; int i; for(i = 0; i < HSIZE ;i++) for(s = symtab[i]; s != NULL ;s = s->next) if (!(s->s->s_type&S_UNDEF) && s->o) switch(s->s->s_type) { case S_TEXT: s->s->s_value += s->o->textstart; break; case S_DATA: s->s->s_value += s->o->datastart; break; case S_BSS: s->s->s_value += s->o->bssstart; break; } } /* * When assembled .o files assume text, data and bss all start * at 0. layout_sections() computed the real start positions * for each .o file, we now add these values to any symbol * references within the .o file. i.e.: * foo: .word 123 * .text * lda foo * * would get assembled with foo at 0 and the code for the 'lda' * would contain 'lda 0' with a relocation indicating that if you * move foo you need to add the value of the new address to the * contents of the 2 bytes following the 'lda'... */ perform_relocations() { struct object *o; unsigned long v; unsigned char *src; int i, n, offset; for(o = objects; o != NULL ;o = o->next) if (o->hdr.e_nreloc) { for(i = 0; i < o->hdr.e_nreloc ;i++) { switch(o->reltab[i].r_seg) { case S_TEXT: src = &o->txt[o->reltab[i].r_addr]; break; case S_DATA: src = &o->dat[o->reltab[i].r_addr]; break; default: src = NULL; } switch(o->reltab[i].r_targ) { case S_TEXT: offset = o->textstart; break; case S_DATA: offset = o->datastart; break; case S_BSS: offset = o->bssstart; break; default: fprintf(stderr, "Reloc targ seg bad (%d)\n", o->reltab[i].r_targ); src = NULL; } n = o->reltab[i].r_size; if (src) patchbytes(src, n, getbytes(src, n) + offset); else { fprintf(stderr, "relocation seg is NULL!\n"); exit(1); } } } } /* * Every .o file is assembled with text, data and bss starting * at 0. Here we loop through the .o files and compute real * offsets for each .o. The basic algorithm: * - concatenate text sections starting at 'textstart' * - concatenate data sections starting at the * end of the text if datastart = -1 otherwise * start at datastart. * - concatenate bss sections starting at the end of * the data section. */ layout_sections() { struct object *o; long n; n = textstart; /* * The 65816 doesn't like it when text sections cross * 64k boundries. Add some padding if necessary... */ for(o = objects; o != NULL ;o = o->next) { o->textstart = n; n += o->hdr.e_text; if (padtext && o->next && (n&~SEGMASK) != ((n+o->next->hdr.e_text-1)&~SEGMASK)) { o->pad = ((n + SEGSIZE - 1)&~SEGMASK) - n; printf("pad added %d\n", o->pad); n += o->pad; } textsize += o->hdr.e_text + o->pad; } /* * Create a symbol indicating the end of the text segment. */ etext_sym.s_value = n; (void)install(&etext_sym, NULL); if (datastart >= 0) n = datastart; for(o = objects; o != NULL ;o = o->next) { o->datastart = n; n += o->hdr.e_data; datasize += o->hdr.e_data; } /* * Create a symbol indicating the end of the data segment. */ edata_sym.s_value = n; (void)install(&edata_sym, NULL); for(o = objects; o != NULL ;o = o->next) { o->bssstart = n; n += o->hdr.e_bss; bsssize += o->hdr.e_bss; } /* * Create a symbol indicating the end of the program */ end_sym.s_value = n; (void)install(&end_sym, NULL); } readobj(char *name) { struct object *o; struct exec65 a; FILE *fi; if ((fi = fopen(name, "r")) == NULL) { fprintf(stderr, "Can't open %s\n", name); exit(1); } fread(&a, sizeof(a), 1, fi); if (a.e_magic != RMAGIC && a.e_magic != EMAGIC) { fprintf(stderr, "Invalid x65 header\n"); exit(1); } o = (struct object *)malloc(sizeof(struct object)); o->hdr = a; o->pad = 0; if (objects == NULL) objects = o; else *nxtobj = o; nxtobj = &o->next; o->fname = name; o->next = NULL; if (o->hdr.e_text) { o->txt = (char *)malloc(o->hdr.e_text); fread(o->txt, o->hdr.e_text, 1, fi); } else o->txt = NULL; if (o->hdr.e_data) { o->dat = (char *)malloc(o->hdr.e_data); fread(o->dat, o->hdr.e_data, 1, fi); } else o->dat = NULL; if (o->hdr.e_nreloc) { o->reltab = (struct reloc65 *) malloc(sizeof(struct reloc65) * o->hdr.e_nreloc); fread(o->reltab, sizeof(struct reloc65), o->hdr.e_nreloc, fi); } if (o->hdr.e_nsym) { struct sym65 *syms; int i; syms = (struct sym65 *) malloc(sizeof(struct sym65) * o->hdr.e_nsym); fread(syms, sizeof(struct sym65), o->hdr.e_nsym, fi); for(i = 0; i < o->hdr.e_nsym ;i++) install(&syms[i], o); } fclose(fi); } void patchbytes(unsigned char *mem, int len, long value) { while (len-- > 0) { *mem++ = value % 256; value /= 256; } } long getbytes(unsigned char *p, int len) { long v = 0; while (len-- > 0) v = 256*v + *p++; return v; } hash(char *str) { int ret = 0; while (*str) ret = (*str++ + ret) % HSIZE; return ret; } #ifdef DEBUG dump_symtab() { struct sym *s; int i; for(i = 0; i < HSIZE ;i++) for(s = symtab[i]; s != NULL ;s = s->next) { printf("%s %sdefined, value=0x%x\n", s->s->s_name, (s->s->s_type&S_UNDEF) ? "un" : "", s->s->s_value); } } #endif struct sym * lookup(char *str) { int slot = hash(str); register struct sym *p; for(p = symtab[slot]; p != NULL ;p = p->next) if (strcmp(str, p->s->s_name) == 0 && !(p->s->s_type&S_UNDEF)) break; return p; } struct sym * install(struct sym65 *s, struct object *o) { int slot = hash(s->s_name); register struct sym *p = NULL; if (!(s->s_type&S_UNDEF)) { for(p = symtab[slot]; p != NULL ;p = p->next) if (strcmp(s->s_name, p->s->s_name) == 0 && !(p->s->s_type&S_UNDEF)) break; } if (p == NULL) { p = (struct sym *)malloc(sizeof(struct sym)); p->s = s; p->o = o; p->emit = !(s->s_type&S_UNDEF); p->next = symtab[slot]; symtab[slot] = p; } else { fprintf(stderr, "Multiple definitions for %s\n", s->s_name); exit(1); } return p; } ld65/Makefile100644 54517 0 245 5523117453 12247 0ustar mercierwheelOBJS=ld65.o CFLAGS=-I../inc -g PROG=ld65 # all: $(PROG) $(PROG): $(OBJS) $(CC) $(CFLAGS) -o $(PROG) $(OBJS) clean: rm -f $(OBJS) $(PROG) d65.o: ../inc/exec65.h inc/ 40755 54517 0 0 5523120541 10520 5ustar mercierwheelinc/exec65.h100644 54517 0 2224 5523111050 12060 0ustar mercierwheel/* * Object file format for x65 development system. Each * file is: * exec65 header * header.size bytes of data (text and data mixed) * header.nreloc relocation entries (0 for EMAGIC files) * header.nsym exported symbol entries * */ typedef unsigned long ulong; struct exec65 { ulong e_magic; /* magic number */ ulong e_entry; /* load remainder here... */ ulong e_text; /* text segment size... */ ulong e_data; /* data segment size... */ ulong e_bss; /* bss... */ ulong e_nreloc; /* number of relocation entries */ ulong e_nsym; /* number of exported symbols */ }; struct reloc65 { ulong r_addr; /* offset requiring relocation */ ulong r_size:2, /* 1, 2 or 3 */ r_seg:4, /* segment relocation resides in */ r_targ:4, /* segment relocation refers to */ _pad:22; /* pad to 32 bits */ }; #define MAXSYMLEN 16 struct sym65 { char s_name[MAXSYMLEN]; ulong s_type:4, s_size:4, _pad:24; ulong s_value; }; #define S_ABS 0x0 #define S_TEXT 0x1 #define S_DATA 0x2 #define S_BSS 0x3 #define S_UNDEF 0x8 /* 'or'ed with above */ #define S_SEGMASK 0x7 #define RMAGIC 0500 /* relocatable .o format */ #define EMAGIC 0501 /* fully bound object file */ inc/Makefile100644 54517 0 14 5523120541 12210 0ustar mercierwheelall: clean: Makefile100644 54517 0 513 5523127441 11471 0ustar mercierwheelSUBDIR=nm65 a65 ld65 inc MISCFILES=Makefile readme.doc CHANGELOG PKGFILE=x65.tar # all: @for dir in ${SUBDIR}; do \ (echo "===> $$dir"; \ cd $${dir}; \ make all); \ done clean: @for dir in ${SUBDIR}; do \ (echo "===> $$dir"; \ cd $${dir}; \ make clean); \ done pkg: tar cvf ${PKGFILE} ${SUBDIR} ${MISCFILES} readme.doc100644 54517 0 4773 5523126636 12016 0ustar mercierwheel This is the first pass at a 65816 development system for Unix though it should port to DOS easily enough, providing a version of yacc is available. This is a VERY early version, I've only implemented what I wanted for another project... ASSEMBLER: Syntax: a65 -o foo.o foo.s o The main feature is that the assembler generates relocatable object files. All .s files are assembled with 'org' at 0 and the linker relocates everything to wherever you want. o Since the assembler was built using yacc it was easy to allow nearly arbitrary expressions wherever labels or constants are expected. i.e. : table: .space 20 tablen: .word . - table The expressions can contain nearly any valid 'C' arithmetic combination of operators and the expected precedence applies: lda #$12*4+8 does the same as lda #8+$12*4 Supported operators are | ^ & + - * / ! ~ << and >>. o The assembler is geared heavily to the 65816s native mode, this means that 16 bit operands are always the default. To get 8 bit you must force it: lda #$12:b o Directives: .globl foo, bar, baz Announces that these symbols are externally visible. To define a global variable or function: .globl print print: ... or .globl table table: .word 1, 2, 3 .text / send output to text section .data / send output to data section .bss / send output to bss section LINKER: Syntax: ld65 [-T tstart] [-D dstart] [-o outfile] object files... By default text starts at 0x8000, data follows text and bss follows data. NM65 Syntax: nm65 [-htdr] object files... -h Dump exec65 header -t Dump contents of text section -d Dump contents of data section -r Dump relocation table By default nm65 dumps the symbol table. MISC Object files produced by the assembler and linker have the following header: struct exec65 { unsigned long e_magic; /* magic number */ unsigned long e_entry; /* entry point in file */ unsigned long e_text; /* size of text (code) */ unsigned long e_data; /* size of initialized data */ unsigned long e_bss; /* size of uninitialized data */ unsigned long e_nreloc; /* number of relocation entries */ unsigned long e_nsym; /* number of exported symbols */ }; #define RMAGIC 0500 /* relocatable .o format */ #define EMAGIC 0501 /* fully bound object file */ The format of the relocation and symbol entries as well as this structure are defined in inc/exec65.h. bob.mercier@cypress.west.sun.com, 1/30/94. CHANGELOG100644 54517 0 641 5523127426 11250 0ustar mercierwheel1/30/94 Assembler generates separate .text, .data and .bss sections and the linker knows how to glue them all together. The linker defines 3 new symbols: _etext, _edata and _end ala typical Unix development systems. d65 renamed to nm65 and several new options added. See readme.doc. Linker modified to pad out .text segment if a .o's text section would straddle a 64k boundry. 1/26/94 Initial version.