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
bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online Pe HaiSaRadem.ro vei gasi bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online. Nu ne crede pe cuvant, intra pe HaiSaRadem.ro ca sa te convingi.


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.