pax_global_header00006660000000000000000000000064147553517610014530gustar00rootroot0000000000000052 comment=e73922273e04ef37ac50b0118960b756548a2d06 sail-0.9.8/000077500000000000000000000000001475535176100124765ustar00rootroot00000000000000sail-0.9.8/.github/000077500000000000000000000000001475535176100140365ustar00rootroot00000000000000sail-0.9.8/.github/benchmarks/000077500000000000000000000000001475535176100161535ustar00rootroot00000000000000sail-0.9.8/.github/benchmarks/JPEG-Gray-1000x669.png000066400000000000000000000206731475535176100213310ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME "JIDATxWy/n ~(@Tĭ ,nA]rkH , `tg45Gs>?3kOj: Pˀ#<x!Gx!Gx!G#`/=x5H #nW O^yx~d> e^`bvg^U/FԤ^׃un9AxU%NNi{Ӈnʬ{ ۱1$e7M'軚%d7Q]EO>wy? ^*фP5w?-}_dsN۳? `T߶揓9G&ϥͣeڞ[O#=*,h0ȱ:xŦH?y8ç ϶I~$Oϯa|EʹEh+/rnkIڏ_/Ӌik' oq4T4`-V{X^.[yOIў9I:- #g~:O04^6oN]WN >Qvp4]yDГ7D&]?0sTJroPt=H%߶ ) Q  # 2){Wإzpų|%N]`8[7>:BK? 3n5_I7om&#m7ՙWNI#5>Z&gөOo>= [>A\9N<㻙꽅E$v**M}N]~^뺆O''uK|N uqJh>NkuJ#'c/MY{_|紭ʕ^$'[ӕցƔ~<*X9|KjqM wY/8mBE%"y<^][< |Ѻ$Wi7}wvPO<&-poV~[}`v]wmb4\x+]U_oVAk'n:|u':4[՛p5~%uWx vuxSp .Nj5_n𱬞z :8W_$Npxxx>"<Nsxxo] 8< pӃ6X}8 >'OR'xo=m0ƵxoOkaz|Dnڊ}v(u~z/"ol!+&][%q}71O9uKlH5m^K_tR_}6[$j; 7Om:l3EMKy_u F8%oZ_E^w nn%3U-??˲:9 7x;S5[xyur n$&k<]Jv75r&x}`=Q=.>ouRYS6FLZ:Qk pI34+8O^8UtFF4et} iv$#2qM?EbN띴* m樶^F4e>:<]ѱ:2)xsTr@tfXM(OKSkӶ (B9n^J7r~8'γ'ΉJ(Q_L?%'}|SKi x ~ 'ϴ |,'oU}pR<'xx #*zp|?s92Oٶ/U3n_}Zmk'_m錽`m>.)wfKΝvS/H9uKbmt`Jh:O.GǞg2~K64/Ӝ<Qd>&|T4 =:f>NN"&^$3N%~1H-S ݱ> Zw2D;i%sOJc94{t4 Ի0 \ LQg^MSG!3id>"6DD>Q'g:n.?e~at|Nǭc~1hWZ{xyUT1z|kph%MwA6xwˁ>|9Wt:VP~f#-9fi7-{O_t@G+9_|Ფ/?|3j%JߍbN讻b!_.ԧ?|'y'oU}pR<'xu+z p<MƩyN8< [©yN_ +<`_|_&|vupGrط0+Ŧ%EM|Gz;7 Ŝw4A^C*OAi|  n ]u|SRlԘ~C#ms7/WrFƓ (_z,sއ$1'n-ÊSl6c"f7/Хc<=gx&uL^q(FH 3?'sd KmLIQL.KjIj;"5x0W| 3H4nb/OwR6f׬'7_bNsoI6UbGL4i-ih:5)sR| Gb:^MB+ |bq<i3 | -LxIk_L>!, AMΤ?VOxRKl|Q_zsy8.H? 7/YO/,ɨahn (LPS6g~xRh+_)Nc8I.E0."% /sZLxW_ ywKD ^L^J6? '{ s?|x[ _Ԍ'K8 ŜNk>;F}񋱐X̉z!EW- 'R 8~݊8|Spj54 8[>S88< 8< tmw!I_Zc4^8KHCcrզn۾9cmSoO#1kst_gG[L@Q?{B.'bUuZ 6M8O>gp_s?r 3Mw<0~M5C +W :xF$_U^Fsʙ#S<#^ I}owNZ%f?vIO?KY{Ņ'9IO?u1cȤ9V'Q x:ǫKU2b4N5vA4?7c/]'֛[UoI1u3>_j xoiJi-&'W1w;qg4F 5w_:.b52xqWZQ 덪qQnG]t4J#A<xQ ^7I:c_%lZ ,O逿A7jx7j=.l+xV<|MtOz :wVc2&hA^UMfV/x|naW[ ê:`]Ҝsh]3ItӓOն-jHn?鐌MZi (7sNE qsxtO'۞kmOdt]G.X^=~ w?W °NWTҤ\*i ڪ; )iT 꾜sV/uDDզueL.R[{?uSt{{eI_:|wtFy|t34YmF3o~s, tu'|&ƭ|V g駬n[U<;zc<ߟxUt9S߉%p[m<# ê:]9:FM ׬A7{irZ] ~n=r?|y9݌l~KLLE&ky~+~jN1R|/0ix 𻢼Jyc/f[= ^||J=_ n-'3Unx7z |2L>UgwQuxjv_:~5*m&WZHnq 7fLKi|%ͫ^Y64~ErЩݒk~ ˩%<7Y|e7N_mc}CSFUՉ69<2WNWx=1m>+o*< UZ:LM͘>kR:kZ*[=\'S:d4Hޫev+N]ɗS\' |dK: ^uJ(=CڭZ^-4٧,Eɲx3%j'nUֽN$+~QrN%jvU[je$뎯5q?]GHU2gg7É |~AoUr̐#/ʹ@pˉ5寿x$ԉa,j:q.?vm+Φ  fqƥb*A}Xo=2ߟz_N}T<|v^A#rɿTn&[U]T5·~bϊpOq \U9'Er E˥J3g lKl9E<4S#MG7}[?SymK~֢3hklg &zNWtgkB)y/ >_q*Z*>)T434w3K+O".Y3}ѱp63]x,8vo2y]55I~Ui](+frublDžbY"GS.x\~^-YZ47cu|}p?GU& 9O/H[;^wZqlo=KfQWټP x*E}\yXo/X7@Y5Q*3[z|6/8o6.c=魅=['a>k?%+ J? ]I|Q>TliU4 o fF>uvNlFI>}[ "ߛ҉r&Sߧ x[<~3&~Mg ^,W;gцR|x'7ݭ0dK)ix.??s͚|lzDjO__1ǫ6mH.n4kc6^i$XOd @7e ǀ_ |s&E>1ӳ)H[bɻM52c{xʡg] cGk~)̤>K.77>WnUց/S`bS޳ǀ_|l۲3|?J֟ox 첉SM |!78xkv j/2UW)^KnQ:~\-4JJ[SЊ]?l{Y߳Vf]q3|omQhc.<% 3,._|VG'E "xqhe s܀/#K( ]#B(WKj>''~_-~AIɟu3%|x GãryK1[n9/<];ҶG֬>Z`A=5UŭY >Ŝַ"eUK7$vsi~Inϙc˦VReC驪EWHNgHx/{YR}<5⮏uAr7]Lxx_I'ܰ_?1:7,"<O*SÓ ]ܰx<iO>T+x\ 7 O`=J]=xF#/8}pϦe̸+jis% |I6 oh cs;9.vZ:}pz̵:D*.1׬/iӧ)%|dfL _h RLOxݽ ;~>8\I8/ /}XxQz֬N_I{\ZxފFx{+y,Sn1Y|yv},R9n5vF|w}ḻo|[vr/4vb xQ[+%8*mgv1 ;^.L\z0_oTV+s͚j˒rqfx IU)𢒗[lYo|'Ikf81x ; ^t7xMS=]fM65XyV*;6{iNLKmZM<[6xGvnwbxu%VkTkT|>>Rz.<<|Tx x ]osâ<xT<:7,#ۃy 3x|h[~~^/~7Wc@˛*Vڀ|7[-ozi Sl|E{LⰂhySQSl!_<7UßwN;rSUiyS_i͏z%/_<"ͤ >>xQqMt2ٳ.`k_{LⰂhySUW*͞uUWBݫf|7eӤf]2eɑ8*-BX|_"v= xEM _.E,n˛VzFʶ_W*aj&7̊^zaj xO7kw ^rLe?s},.Vw GXe}gn6m:2Y#M*+S8,>Zϴ~^ABY{ x!Ux|W ܰx'O*wCyK5t1UE|<>ɷ VҘ;S8u7H6SnȍRwKNz7 gOz{= qXk.{< -g\gm9S>xWNΎzWm=t3ײ |R/tJ62Unv+<+к2xrn[ g^w!~Ƹ֝D>2 {LB4]q(U>|ޒOvo7)<1ViZ~䮳{akTěu{ޅ/KݪPfZꍧ;{Lߧ^uf^E]Eu?GFg왛 Jk4 bm[59g ] x _ G>*a!ԧ}-׃Y{ x?L |!xR|jTx'O*wxKum]Lⰸ=ۃUo@sه9ٛjx|(Xc i c:ތ/*Z9n4ű |?!o2< qXl wg[z\ud)i։'%B u<+*I}6|N`:p6_wQ/Y3`7+z1U8l |NXk;ޘ}>-퇢L>Po_|OCPw[7f}\D|I]Z؎7?^Ou+z鰰:, &cXi*F+8!?hozD.xsˁ on~lW,VNͺe\fx#ۀjc]x~ װ|7|?*aϴ~> xׂ,s<x[Iչa>^RunX<x '=!Ux2.\<}׿;xWTM=v.J)]ի1d տ/J3s۽S85i4(PN PW?Tם*a*bRz^Q}zi|/;P |J x*]/J㟪|c]Zz| xVoT!ϴV\Ign*_޻tz{{g:},_8͡܂,`7?U3rCo2< qX wuskTLcHRhUMf-R}LK xXO'2>ήZ\|g%^5ӹ^/87{ޑk#qt_zo2< qX~̮\m[svj՚1+uH㑚d<[ {Wcx>l>яzk_*aMG}{oew໩<x k^C |o=?Ѷ O'<xr{LyծV4:)fY'6^2FU>Ӱڹ?h<j6ai~XB\#ҫĮ\s UDcY.f&ٍ&YTHelzTv9*v486*7~xWxxw?6R2}޾Bxk],  |l(Ž˄Do6fK.:Lxw$xλGdh.}ʘ |b}l͑\p%|ozM+d=`(]&{}G/5Grarc$x>t^ &%oDD؇i?xF?GG<m |/:QJr|av֘7dݓ~ ^?󔸛Mf/B͎^y[ˈdsAuȀ[u_Ы9\iޮ|"^l{Rkm`70 SW/9jOF(i0oK~ݻ}Y]wO$Gt@Xk @-Y;ZO*oX-_cI6DOyO3LIOOw?"}gc|Ye1\m/ 禇}*Xk'0xU`3~y\%G|>>"^kjJዀN|w$b^. |8Jlx޽,{fѳm%sWB˥ x4 څ_SE{,+}~ 9|@̘-WG47yLeSēq/V'*M4^aN PI'WbIU`tc>I'U$䨿NDY،#]ƕpe#]]`Gٹ O!2w̩@ת$1aOTK~) =Z`J#)_[YhwpM{DVr”}@sUYiW)f5vOdD'7Wx[wTz(w^3(]   wCGRJ<<o\<PJ>,/\*=pvנTB 6~k/Fh[v1˛"RU*Aj=uހoSZ7**L=OX4D KP˛<;Gf$5~U7\}#Z҂~ x+k;*뽟XDmO?yl:{\7.{YyoSZ7yUIi:uWa^?49(kj˒CGx\qO3%| ̋ƀmjn/:)29H~7)gK2JƋFaͼ~iƚY ?Nir'OiZX“%ECV r^?I|x~u'*u i2eDh,x`~TVWz㠴T?WTB 6g(_+^~(x%_/k(T^*b+(T^*bC<<G%<PKx(x%C駡7V=T^ ??gSe]u&OJb-KR{c*ϜRJ<|9<JC 7 J*x[U <~QQ x5҇FV P5Y cݲzVVK; "L"fv{E?RE'꒦@P6Jxph7s`y:omO mB Jڢh'?/>x29{_>18mU3+uwVԎ[oӕ2^[LUI3mLԩ |F1 hY/͂bwlߺuK\j:N9 ,n&iM%Җ5~!:|!}d@?tfäm&55pw6um=0ͪ c'3^0w2ь?JFi;{??L[<]'KxTw$S==zq.䲳 xlN WD,nt>5#9`/4 ,?/J)*,*žφvx -ѕΑN\O< ة]ZOLMH~ڠmU&Ϸ&Wi; (5e D1 ߾Zr۞NnJHZe1`]J&fo1EI&Yxw=w,nz*M6~椵Kk L_7f?*08^i-Li 3V$g_;^"*$t6nrtT|<J"MR՗S*/qՂG:PJG{P:lRJC ;;. W PKE.<< n`dR_;io6!^g^.>HmtIxޭOz)8?-j ,^^$eN*s;Jߙ{x9OeL;s}*$<\>f?)(T^ C 2".<|r~J*PJC x(@&+}MV*/ wx/|Jw<+_%_KU ]R{j/Q 76caƒ/xt녛:='iݿ3a#$^m<1#~ǔo\dp såe'|wuT*/u9Lh~D3SmϏ  xx^7EAXrx6sp=و7enG< ^4loc~!mڻ'\'^Ь&uӌ4 UWIS OI{d?/ܴ,J|$Q|󁟘U6nA`ؠkI?AoR]&[t<6[QZiuwsxȌ&F#2L]W9Y;_ >0En7dF |=O k2)޿'2uxӜMPKx(x%1"|3BU*/10BU*/PJCP Uko =xmqfJ}uT*/u7ު ^Ж xA2ݙ+?#QQUߗiĪ*EmtsJe- ^9$4-S& $*t~]vOA/oY /5 xbԣNbMA9LmEޫ:*Z[r4 33FqxJs&6< '|KǭB)sMifF^ #<1 $o$ڪgl梂hīg[O"}VQԺ猳"1i?ɭL;͓e۶Ӥ` Rx9_)| +&JCmyĊ˒^sjIk9|/͖^xeo ۫zT^jm='hq[<+3xɕ*2櫉omޭư͓4ZqmzT^j}wK&8(H#Cmuxү#'X!mo̊dմ%UӵOm4WZ~ I|POZKF_͓~2}+MZ<_E[6I>Q1ގwK^GRMkC YJGNP UPJûQw@)TRJ>px%PKE 3MV׭LJ>%~|\m^:*Z-y񧭜THS!e7L .HqT* x]4&^Y7ii@#o&3,o,7l$@{x3, ׎ 5x%W"3ƭX VseyCd x?5^O]@juHt U>~ m}6oKGEu2k֬T cϨJ1mm2@zNW=0)*%n[uT*/U}_h\* x;<̤iTZ&diL 䲳 xlDYXĬ8x.^0nJv^A[Xm[\[X:SE)D1 ZrgĔ^ث1ԙ/1?~ȝ3^}ڑX^ɵ77>d,?:/;?nOx )w|& bbqÛNl.byӶg̢f_M}sKw]wIDATM>oy77>J$;_;GXNQ&S=C:q)v_~hJ,oh[]ʬAF&r (E|7E Gh9<@x@x#G <@x#@xpWwb%R<6h-h+)I1%UEI[ﶽ&ˣ<'.g wsRԜP(szNIHW~<.3_M<9j,`I[qeYY7) R^\r()K"1| ^e(n:Vn+~ՕUe~kP% |sZ^`W&m4X}}=)=F[VT"W=qzR'0I- <9 X}jQ9"SJăFsgyJ@zx^{\ <9v$2$1[R]XTғnsJ.w˸VjT] ҄_QI'b/۬ |ˬBy8) =% +)gx1٫y8)5#x8i%G4w_nJ\U$Zx񪪤y]d:i-JCX}ὺLl9J'j?O/uv@\OYnDrNrR^ xUу{L]ٽωީXIޥ xZxG <@x#G <G <@ x" D"}lIENDB`sail-0.9.8/.github/benchmarks/JPEG-Gray-6000x4016.png000066400000000000000000000227711475535176100214050ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME $S|> IDATxGB@ٌHB8ĵ W"L-e,@$d؏z[GuͨK?xKWnO" 2@ 2 G <@x#G <G <@x#1t8]:2^f7f}zufїC>rEVD`T}8=7  9`{pW.hbΖ+vQ3 ;D FŒ=*M^KRCtIhFOU~ӥ%5(Cx0]%=߅z8oK%xv􀷇t_ir7*rg#^;=J -ɪKݖR]ҎUU53(R^ jM=JZ-ڒ>T;^/RRЛ08S}U -u[eU|wGxp>PuKWy߫erˣ-wۃWR%?X΍5b{.|.#Ka5aE;3-B7UUK׶;ۺJ ;(;rG 7$G_98ް@<>NϬ٤N_g2Qx#G <G <@x#G <#G <@x"cԌ+PJU)\*9; 'RJRJC x(_tJ>;"W Uqߎ^ T*`)%H㗑F4egq辸r].v*vKm4eg~,6xK5 ٶ{~΍#CI<_`YAN^{3wq|j|u\ڲ x(WW6SOşקn=p3hKx;1 Wty6,>N9Pz~/%Î!/ew1{nxA`(Ҍ\]xzG@}XNgN<6{<) 쩩 u+M|8sT!U/#D#'XjWZrrϲ5Ii/[$U>4|^gˋ^э:|{ߵ~T5U~dWXŕĀˀ3c陵 ?:&u?lSM@I'#im h.{_{ ~`)Łwa`&7vXRO? UoKe |%<<=T¥<<_px%<|Z;UzbR-@iY%c}5PZR x ey-~x6˛*Rq!4un5Ώu<hKPf^7Q*vcG jyS~&K(QJSV3GZJcDVësC'Ow> 1eW:iw@o42ƽGu[@:?u4xZayS^-: czpQࣖ&G9|Z>"n5:r|1Ki٭F :qh_V× vG7>xߕ­'Sα6QJfcݍM~Q{OF#狛 ?J;o+j'Wo+gcxjqclρ ^v YHzGoF۶#OT;6w,n\ qcFDŽfQ!'Z/tzI-]&53p 7v}o(=oZ FIa{e:ͮ~/<]"o&rӣ.!^ڻ^m{>X_|mW/S)5?Ei

|9ϔ+Mrw<*&R(k}L0^ibO:"Ig=~ґ$ i,cxdq=i ~xJRe٨-`hfo $gt*{7t0[ s/xkt' Ew[(^Mx:9zΝ;uw1f޼xJRω ֛O)\*q (%P7JRP x(u{߃RJR x(x%߅RJR#P ۃT<~_1'fZbs% |hRlF3qK~lFq\K|'TlSAFK v:pWY <5v u8SxjaS3]q,+ੱnKQ'//I-jf78+N m{e󧁛8oѪ3U884ة|6y͟0E¥V;{8%NUk4>;5v|{wq|K|˒ة xU!O|گ,qr/K2]5]6I_,qc 8g-(Q?o)I#ᰲq͟o|hRԡolF8g7bT/ᥫ;OKUOljqWxj줯JkC/v%rÛ )Vxm&Od3xNY;ZN&J>_z:pϯRSS xՂ6PJ>FC鰕¥<<_uDw\C +_2RU 8\C x(x%>J:+Ke|{g?X?<>"|]cN#j^^NY_;>6*K- ^]/Ԙ|8NyoV W_Cd$?xͰHH 9ˉԦ xkY3x6bӱjRTS傿/{9^ܔޮ"Xh![-xR3uዒSNciYT?x}S4A2%ě}i%cKY"t*[ֳwsYjRTr9/񼜴Ѷ7v(%.ҲF*~RU1_]c1x\z)D#¾?NjE̕&9;N?(۰ԅ7lAԙC^vrRIg ʮF7\ے/x9N?Ʋ+ 9S/mL)Ņ&8{Uc _yfjKr%<ċ^ ?XJR3I_ g|,Xg%BxscRJRJpx% RPJC '-RTWַW9Cx+RW3v9q?7dU Zl7޺S+aP;6on=s$&OϨ/_m yެ6*KxoIx~WJs(gc75s3_ }F9#|rS~jg03wjM |lg>|*)͐XR̀6))~q}\&6</4#=U3 2?o۶hEGbWmT ZUYR \Mf3 <+QƶN5#Mf% Q$h<E2C x6jᚗ9bW夶RI&+Oڪ:X`\$'I&>Vi|`{7ϳ;mS-?.Ҷ_/XcMmT Z rʒ~'m>~ƌs_o0h;dm5ɻ,R[["w\ߦFy~y}-g5ZkP 딷Q)\ xnE~ XRݷJ{B)Up)%<!FtCoRJR@)Up)%G<PkT¥<|{:+HO~;R\uUJ3b6*Kwj j =KI*'Y_?V < $^m<1ʳ7>[;BUb7.]3O xnWdˌ&S৪9fI{?>)]x 2Ұ||`%fJա%L5Iz'H[Z c}l϶M6sS1WdJg^PJU)\ C x(x%p۠R#\C x(5oRJR:+>֭DJ>9>?XJR^;\|]F,jV~ l3b|>SWTGkv#=mj-b!z OxiGz5D}#Bb)bpwkC=2کwxFYȥ8+zv!o:>5꒗ެsci67F'@PR|商ߏ^Q)\jE_ڒy_1ʍY:w_/%hIuQO zI>^9S޶ZX&|@A|ȯ9`PhfZx4]sY 83«=UM-R%' <r*R|ɊsJj1Ew#7Nx`JCi>oxCSFp)|oOXizb6*KeLwY!<J>_Z(.! eH@)#G <#<@x#G <@xG <1Ywܗ3+y:USF 7؃06Y'4*=ARΜ,Cr$eO!OJ5jnGIDATQzԧJs?} ^@g"/.$/M HNj+W*ǵFJCl4ިRs늭4zD)DN|ЋJx%7\fW`gSJPG=|3P>&C.mi+e5JzT)OI0ڥ{C5>ySDr7T;zwG͔ro JmՈ"J5U_0') mC%4)Ө~;mHY%}CR^!yRMw7U]qϖ5}MԶ[4The4xq9J?icG;z)N3j+9gm=~牯px aȹ Fo =&<=^T]J%&JΘ**M hTxuLڜPt'!U;}DڨLLI̤uO@))4'TJ]SB.fS7SeIHI$&J:Bzx{}Q?IgNNjk>sfJ2 {eJlʿ&J6]^FROK(8{;/R^:_KcCNjgPLibttgGȉJćW}9TJFJ)l-Q)/-U|ȋJxYxG <@x#G <G <@ x" a/3~IENDB`sail-0.9.8/.github/benchmarks/JPEG-YCbCr-1000x669.png000066400000000000000000000214461475535176100213700ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME $.Ĉ{ IDATx$Eu0PGۃFh^=QWvpf*U=3A(:-DK x#agmp̓& Zx}vQ4fR #^4|Z <̍MpК/?Lx`CiI4I{g*ZP~N|j֑730*s|{cxQ ,; y?QlsfC sW+^ut6fW]L𪱕jiG,Y0HN><ږx?ڿp;f'SZx,_L ّŦW~+IՒ*F, ޟIxF8 ^3"ӏtܽ%X x+>[=ͽ܅瓢ylcgDj[x}.GnpJ| x8xM"U$z?s7VOō<eaqWw~=|l^?K';N +J${޶4-oKOhO^׻Qw?HEh^K<-*V=WNhrZ͠S1>ՈLz>=:_xfҬ2Ѯ-i/aӛ~  :2N %Jo=Ƭiss>^?Ja+½>l-HQJP_c 'yIWtb9-;ND)k9-#z-[Myӂ/Щ)nKDڹٓNl|>|m+J|>ݼw/0E-piev~7T7tw O 9F/:4*fހ*tD|uVEfx_MNHtkM|Hxx &Dz(!QoY<x$|?TY$%׾D|5_^OSfk>>f)Żp rl/yP։V ~b6u)- r4][ti/z}ysx=!ǫf 帥n՛~OUo~^ѥyZ'Aʂ4Xz%msusz#x=Gt;㔣1w;?TK#12n9uǖm <۸xEWsTD|{J|+;O(WM"Kx[׿NHa"O_*!Q(<OD&$0x'BY"7<˃_=GN@^Pf;bLFޑ f~x)q=77_) =ā^ :Jr+F`]+5`J.]i6Izl$n+pT=7 ~MM l zVG72ܶO^779An۝TO?595x zv3F w{{5v'=g J<-ܹ:Qߖk§_|%ž= k]% N|کAćn%nǓjǛO?x;A"Y6xVɃs^|/(Io !xE[tc4ߡr 4ޠuO`zO?xۏ8֤_^t{X&,n%_V։ wf&Tm!x1򜈟T&{%n \Q[/ ?yB~J8|)צ B5Z ^z6+I<|Po:-v) c] MToU*R𶮍08˧7S0+Ԁj+xwQfЪ؍"NTݕ~GkM/րjq "uՂ՛F B%A ցwݼذWen]ToZJP-gf)Jٶ W~}-vk'(ծ9d}R'=GNրя*zjqO/}ia)j=HY"0!Q_uT\<+ !QO"D(D?D E>|d{~)Ŧ"T)̔8uѽ9M6锹q`_^WZ':$xF^n/0|:uoezC!<3*ۈ6zS"/s<@ཽSMb;1ܤ`|\nEk+ۈ^ȕi/xt)4en1^>WF]\|KT&QI췤kW0jwimԖK-#7<l% !m^MgTInvm/ݔOoݱ͆ـ_xyK>l#neܴ|~D/:q4y]);,7,sA^tg&Ƭ[*wm6M[gir7uIě*zsm&{enZ^&R%Bzcx#]ZW'+ IAW>;sK,ޫlc_榅wɩ=DVEkeEoNlenhQ ޗp K/ǜ w+ec9wܴ ([~mgzx%+ =t= s4|C4nIt[8 x~7+zjϴN/~q։_oT:LJ"Kx[U<UG@xWE><<xx$fIN8fxo]7.xsk>jrf*i-k^YR KT:ъ/<)mv.8c%}xِ;o>jrvҙD=K)g[O\/Z[3%f[O$8¬xU҆yo͕|ڤ?|YV3[D t 8.tnG^+w۩յ7"*RYSg=<xыzJt|TEQ!)+ DRS[D++UIj&RWJV^TA%MlU#|%36]7?:/xm'Mi{@ZM҆^Ocg$$3 kx7"&Mx/GJt|pEQ7j>j+ DޛDPB<<x¨ ­&$0?(D'O"GHHa"Os۶<-_2^^=- _sTD[5m:BlR}{|j )</ax}$[~upuq'U)1p$Tҽ dM}vMq'Quh77Y XNή ®ҷU։/o8NIXgŝi+eovѥ׫ Kz*>S!VYq'|*w/̶y#xuO?^)x^VKV։VviTFhbw҃==3i[/S)fnq'wf; w|.^cwR{FMF}:]"Nyx٧9#{5RL!+ >wU5/WԺqcD"Sm^}*ki]Z'ZZּս L"p5b;ruۚ7wK\XS!Mm:29I7" ozN$ x\rEl燬<zWEQ| _M$,^;ޑ(DD0* ߞ(D'O"GmoKHa"Og\I|;?G"ĵXD<oyKEQ|_\Ab 7ⰻq?Iʿz6ߗ_O:׫˳o)x]?yaC |OdۀKdN gusvƽdAEoK38nO93|g{𱀗4#ܧ/>Moy?~uތlW۩ԭAbJ >3ޠԯ}0g!+#MFf񂗭,Lgzg0d|4E.;3sL}eoIJEf]3.\[D+/g'mѧ|J8PO$0L Yx [OH>M;);ۀZ\`:\Y=CVVzf7]<4=G8\*7։VҥQrB~dϝOGl0ս #^-4;a!+z#XsTD< q-Z'b)q]Idxx1>#''2w Dӫ.?5*5N3?Ņٚp5[⬓miAhHufJ8;7[6,k䥸ɶ̲$_n70H&&秸}n6{ryU7;-iFox+z*/F|)s5II(uC;isNd*%&2EDz=Ȃl5Kc)w-'q_j"Dv:/1de쬆Ͷ.RiI^_f"3?"(7?5l?Βw7mՅR+5(7Q:b4DNf^ެX1;1RٖY/7D-D{v3=tIDATfkjɡYKN 72uSj"w`<_J"")dc=<Ѫ<xuѿD") z~J= ' x #S1fN\^:~ *2{OײaK?Dx!+~k!EbL qS)2h;Kq&Qr'A: ٱ< k~7iMCVy%7WO/d΂#_snziʻG #|:1iś$ɛ=q+;(dQJLCIvo@<(lbf4 ?{-v1&e'?q(nng>eAnބ+ףrGzt\~_g(/S{ Y6H_f-_8r52vn$kzWrBZ] qaehR#5 <9W^So?]Ok-#Y(xg03;s W^Ͽ ϑԐd)eA"X炷kvo %#9{󇛋Mi̒H?qccscMAk u>qy7t5I/J3-wg3f9LzkJcKx:3.xlw?D krĩelހI~{93 8^yyN-0*rh޻xn^KfQT =qZJac9?1sGx̒),~ƅ3'%*~j ~.$wr=xg5Hqnte;+#9%_N|m<[f콳GxL-fF' Ex$O xyE8~^#{{4C9P?Lt ~>oc5LN]u~wmd-c+ӫn [ ~wM{Gsр KP{{ﭫ|Kc^^o7x:&^L}g4o_ ^srd&PL^bo9xa<_هЙ#8b>D]wxqp{_>ruS8zZǫC%OZC*y;Z;e8efϧQc҄V-=sX[qْA,&.*?a/oeo m;jgI<%>F4_xO_x!Ĕo~x?X{S2CɀG%=own䓡% == g'NM0r6#L>͘3]3.x2^@hI!ŗ<6wD(:2_xoM\~hzDjO_Uo$,k3kZmt9 ӻ0 M]ˀ=g>5zN8 f62YfHryc>'؀|YMG\w%Wӭ|sS9>^w씆~9:F˒oѱs:-/B;^\t$]xwrgs'WM/:rk'^y.ejMR~;ȈmzKc"~o''\q>~R{l/p*KOFm-V'ޜ@Avy'6>؀oYr[Kf=r;{Z-KN-=g'N.x{Y"'^qTr.Mڐ8؀|rU _|:g?JFt"Vj~zZAk8?v]]Li xώ[n -̕?[E%nZ2%=KAɀ<%S_"Ĕ\!1M% i=8}vqpvtw Y_e^4GS}pz: {;W>2k3fk q>8|灯oӔ&u9oJSe5s8JZg%Wg?[E|~j}p 7-灯zW`U+݇ʣ}pV ے8Ϙ|'?/2/19~sxoM-4](el7<^0f'|'4Kd|{Zb)~Zb UOBKL=Yt+F6b A01| |Yު{lJ'vKvJs;5G n}=|WEIW)WZ ~\3kOwmym|bs]/W'UѴ768xM?'7zzU%n{bޗhcsiN%ՑS^+wۥ/ؘa<|ӳ-q%>`>Y/|G2?thxP2?Ĕ\!1xM<BKL3G=<&~7Ĕ\!1M)Mv7Zyy[r݃ wZd/W>myS7D4.g6 Ā=}OW<{>N VҘ?/k-q%7 lO#Ň ,̹,w< @rn3^o/Gwظ7 [|~S찧4yh`7f7|[uhtۍ {>׺֨"6t!*Md z=07_rFx/~xwtlWi: O ^oon5g~O/͗|֒si-'ըOZ|5;`n?'b_!B<xw |#V.g[KK&>%<)㏇G%= B|% 2|7D@=~<-1%WH x<xaO+͗?=_|_|Of &}fo.t‷M'L hr#½|w-uF,g[~F7'>W~w-l}=3Yף(9|1FyÖmfh0-Ao~kҔ\ ı mnc_ҷhOϵ B܈ķe+U|M ~wMC$| Z+jl7ryK|+8 |N7tSn>-?cO#1L3Z FxK⢼g[^/3dKZ>׉9U|_r!׫4fTs/W[K^'C%UOf1r^ϵ { -ozDY >'D@uLIrS bڲ{tn9例g5.7kw$$|cS,{K|ɀ< WOwUe{#%<Hh)BbG0|7DSrĀ7+$q4vXh?٠Z8E#4Z;IryK|ɫ//8&j43#w%sx5Q3΀<or_-q%7/4gԌ+s }_U /ן> ޶v:{=FN8Px#w 'LNS|m*Z;v<; nOϲ͗wZN+{S8-1Jbw+$[HO|nfb >ڟQ3y<9@9MX*\xƹ:<h)xIe|W7>Yx<_67zz%nd0C%95}lO9Io;אeYknZK[NJ <]޳ιu7yD"'ӻk{y*M\ksLɁ-9 ՚qPkkxd%lHZGv9elſ.v E[8EkoY&^5/t}9{&tV.x^]&=/oxVK/"x괲ԑQtڽ=kq;UN wg)๼1;Q~t]NzilJVL6|=qYF++ %j=Lz[rdZ?EV]s7z9EBOgD1_p2=R_8ėo% ^ RT)=Q3ߐgtWM3yl~59Ǿo%bXtZYu*x`)/1S^F/U]|GiFI2Xޥ|+q-UgH{R$Giƽ_Mmrб6,=.M|nդGv(r%*޼;qu"xټ庼@+ىvKMˎt&?=.'(:x*MyO^{g`ぽ_ܗii{$ŖJ{2|s_~Őa݁kW^BC;7YD:WSNi|Ky 7"n^mhZXKcڣz/v9q'xG xG x@<#@<#@<#@<#@<#HoG xĿR .W*PTӇ #Rx(x"x(x;R% s_%,O__x(uhsY_S컦_,4@YGw4q,rU~Gzőyҷۍ=~})S7zUAoh˛uI+tų тwz- hgGT8z le:l{8Z/6ۍOw{G<=dJ4-.YVM> M' ^b&7=0W%K_T>.ͨ-47O6G}95g[o7%7 &Y$gJkK]c?ssRTgo.|NEqsCݳiMS9x0:{kCWч+nhmbQ\x ]σH]}0${tiÏ𙴛e@ѨN{L/mHN/qw?sMW ti*<LGܥwG/"ǟ AH<!W駑jp<cӴ ީ)' hu aͭG\v&+/xZSFQMZ֠3h66xo҂wjʘB̶*G3)%'h>^%rwitMڧ7%9T ?#C43X(+FilMޯyP4yަwZx2fF~ ig1Jy7}:%U{dnj9>$EϬm>֖ؓ)7xZSFO>pcT]2t8|Ӛ2u ̪hRPrB͗D. p;4֣If|2S leʽ4rM<2M]tcT{Nm>xjF.-x )BcpyWnQvXԔQ{v]7Th6>xȘ*~=w7 >\(x/"xjpwCPEPCG PEP?!.]x`Ș*~R˲G'UgObd[+vj mDOQ7HgjykC?pK>x3{]pM xs_c)뤿-:תg kuMsKUw.>xoo x7|[țEw!YaN24m&*/엸q'r߻)$_FwR/knP(^:ElOрϘjIkLτg}J \i S&夵+*ǰ$kEO뎎_ws>~\7qyyW' ^ HQcxKqj;5U]mҐjN_܉"(MV[`h&7PSug̹[&{⃧ŝٶǂ=+ӊ; k=.SQW(xs^nM')qϹsg̝Q ^`7M)(4 O= -23N϶M_'w$/%7I{SIwdzdLm),)TX͖ߏ|Tq?bŝ(x:ژR+< -D;-)wnx||M뷿oZ>`׿E|'> ^WoL,Ԁ*x)u㮧S_iC|KWoL*ր*0xRYOK!#zx:YP^ BvizB%ZƬwJjb~[ Ok6/7^q˚^^dj{ Vw_^Hd&j:&#2x؂P~ c*~j^w*I[V~ )4 _ʹԍ"۴Mߟ*ckὂP~ ԍ43bk@ĐR7-iToTʫU< -uCג%m4_IOj@)cCK%mnK:3e43ߕzEk/׀*xSkmydIy1N&QjՀ*x3蕺c͑=ۣ+GTo[J}PEO.(9nzZÜ < <-cCKNI{ClࣺE42 G1U{~oE#n|4>lY(D 5"OM2E|9|~z&YFN O?46 ""O'ݝvlT'ӝQϫl3ҳeT'6BMNSiŜ>x$NU q4F27,LL<5j~LрϘj.u9KUeŶ~tiR6e|e6쿻en{h-y2OϹӘ1EEqVQ/4nMo+DSZrћY8 PE舯<#U/*~*PEPE2z*T;ۃFw|,^o>zJx3̈ -2՘436-'JŖK !R2#ټ[M!l'{_T#S!A5|=^شx==Aj~STz\8E>c /gc_-.ºrLg&td:xZ^hL}^r[ 9Ϯy5ѯI;|҉|glq tݯtB_)l'U1 Z̄djNWzґ<<`٩.`( Yۺb+рϘRg w oG]zfQKFU]X Y,=nj6ni޼8>ϑթέOZWWlѮpo#e &uYuȀWgf3TM^׳nM/W*+#BוVyوoxut tрϘ7MWui(fC+Kw=/&"1#(K@ fcO`7šx)"%vQV|wn$-ܼۃKu?<|hKȘ*~=ף7 >\|,KlE\EdW*=ģ!xS馩rm=[  .XeUGsTcO*8z=/AϭzNbX|438tT^ջ 9BLN2[Q e/i:.U@i:en;p47OM(?hgLuÒbp3xMӞ:aiP%4_*rh7x=g[Z~ndyO鎶T1C^45ڇw|I2JEŋ7 }/YK^vVGI+_ߵٷ7g1Ł5h|5+ҍmrb} fh-<4D陋'n]mdf-4^/x7C5'j3h m{dTgƒUw$t3zz ޹a >B\i ~|&SxG֯~5ߴ|ˢŧ?TKs "}7R .U_|SH5T}x(x"x(xO"Rx(xI;c`ł'17nͤY:#O݌EOݰWuD{XgO\$_/^c|9b7K+xL#|Mv]/>!aopQK =_?{1 7=wc,W4<)vÚ{{Ki"Ng2[u3CE-v&G^n"9e{@=aǢ1Յ]x҃-q+ˎ0h43@vVj fTϨAv~,\9~|yb7jxF5񝴮9C3|˫Kj RlJP#рϘbb7j^h 3,):`) }\M7eO(ާ}^~fdjY . !Z6#66p8|Ѭ7Oбzx?cG"}5oYs0q/p42ߴ76hrˢTY|H5T>Lj|H5T}x(x"x(x#Rٳ?K|~Z,7x}F@Tsf"Py:] 6xQ7<odndK'ŶY1wǀ-j#WG_LvKWDo*1р?tAfӖG$gs^h?Q_"m yb?}eq8 ѥ)x׋b Xz'?qFgG2F437x@~/x]+?^g۳//xY OAɛzN\~$?/xL]Qg'u;'Ú̞x{G Ŋx-?NY<}x٧=H;͇{?8/EO{ F>c4F.x@h"/[vrp{ }GI;_3Mz|Jl_>2,9b^7mF.{# >^ =L-yč4̸c-i\) ‰IwC,6ֶ.R|MIDAT,[-S@PLwVv[4ÿȘ*< >qw_4?~;1UL1xѲ(x/"xxG_`xR .UD" (B%wD[xG<#xG xG xG<#?;n]gFzQ7$sJnvUDBO2IN_=VoI擰M~M5*?Co?TMr̽)EO2I䳝qQW_x0x dFzIn%a*lgjLEzqOk$K$sw(EO2fjLuW /R!%IN_#'_}msƩ^3 8"O:OO2Ikc>T>yKg ~xqs?r NZQfv$9}\6v}Ʃu(?"@:OO2=ݜqqWC+8Hf4s!vvƩF/4XdF:OO2u䳝qQgG|@U@M%$#Ra$LS%SnIAtBJ̌&9}u~$CNiQx#@<#@<#@<G xG @'Q0A2DIENDB`sail-0.9.8/.github/benchmarks/JPEG-YCbCr-6000x4016.png000066400000000000000000000223631475535176100214420ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME f IDATxgq@6pMv!,PXЂ9+*W9 ܤZ0-v’K1eyfFdYόƞo -~D'ѐ<xx+[uY=zKw:7!/GD[_{6qx=i;˹>xiI}G=8rFYj˓ NFwW\1M8rV7_gy9duIh\p?ޮhOxwKE+wo"7x6UukMV=rv#|[.#"7 .iu^q t^M/a˽5s>lL ⹞Gc_ -=8/'7,M/{1 s,];恵v1^0M,LY+zplf_$  3Kxo W> h6|!ItLc<]vnZ{qkrn|fiSل#]U[طX/s9潭{op /+yApXts 3"nwlPg%cܽǂ O' x&d3?_𳝥y1aɼ$eŋ N?mt?7 .r'ώo8x<_6/ ô2fnOT;K=5ߦK?II\-6, o%3մ4qZҽ1{< j>(3xꩄ g?j2<' * {,!fxp<5<x2<'I3xfݒ# t1?f5:47uHb݋l ~ZZ_?u4}OA#׾0+avk.{ ~/*ݚFKvu{]&Sv<<{ ~ V(V+v;|[fM?+~ R3Ŷûx3N~|OꑼyݘWOAT)+4d.e\zeo2xG?]jqWjYr< ]OZZt2Vژ?YOp7d[ud%/u<> 3tu2zzFy<7īwZU5g-eD2o?)G ~ ⷭ,FY݀oLbCˬ'xW=_^uʏ=i|  >rS 5ex_2!fIHȠn<x |0!fxp<x1i|'xn|[E=>iݛS*FV45f&>87 gk8i9 S=ն%HSBge[gssk8gۀw;ȎOX*[?uy]ޖŵJ]C ;Km{ 5Ϭ%bOl8Ӣg/22G!>vv~(܀/Ϡ_/FxLɳQh.to+bDigg Mn 5 gȃW|/Qr%H):xmQh}=.[܄% #3(פowVm[›xmhEkR^\o^l:u{&?7K3(dx9fif? ~ .Z{|HлBs(R4kqSp ~Mf x;I Ö}e=%~Rz|IeU  ̨_(- 4\i3oq_Si=eCginwpLK䂷71P=0-R7) OK5e} 83b:»%~Ʊcswlo%9-ns0)״t%Ic:~o~%m;9v#_Sxzrc 5e'$!fxp<9FU: LBp<5<xd'dP ?i&7,N Pǁ7?L9&7~O{-JB=ﮰwvqg]2[v I dB=i6]iW'*x&~fkU+Tu+4 z@-m#2X5>x1j8y\CN+ 4c޴7_ɍ?AlSg0wZ-ݯuP*xg%F#|QIcUS<<3O&* z@>+To~˕MYMOfkpd!S`{@>+hT\k`cotvޤr`Mn)k`n$ˮ]|u<΀qOܳ>#gI3|M< x * xA}37n<~[ 7O?4><3{<y\?hbU m۫C.fvnnmm9M:}noPI7ةYo?u7md[x _%vXk7RF鷙 ~4ЩqZ5ζ߈ ~  ^:|uӏ\ƃw:7n_& j1|ۖd'>7w:6n͍^sѓZ?ɷQk»/&ao ̯^^5^&1pT4V^qSg xk?CrK>hm#6{Kr}nGiwqHqӍGC?u)i2J;, PҸȋ7@?~ﷶ_7<|{?6&5{}n5t7-g ^om'$A{ ůUï{ﵶTV۸i ~56380xÔ(fikfs| F{Lk}w[tpi/^N=2<໦G^6)^?ukR4NSj5ܛrdq_U]bc}%:lvV7bw3\OA4nR|n4%oS=3ުk7wըtPE[ɧ3eq_-gVn.x[Nm/]O3+8K5}3zGxVmVyZHb_U3m:uMz:6<63Ɠ?^^HGuw;>\bdr%rm[w|uIgY[Mع&-^i /K;nMAnuO8"x՚xoE̼Ní\-TTuWlSg|&5ix[Ynw|%K%njm5re8r ?i4|&ʻ_~x~8vS G?!ISڨI_ 3x䑤Ak& pBp|%* xO_OȠn<xdCI3k/_ |X~~_71ڵz/x! ,Ut[/v֓Gf]mD~QWԒ]Z/ŭ8˨6|Y41g,?u$uE\%nt{jsؖ꥗_|U6x)*fn7ނfUWpfbOݤƂW -ZuM3n8>hpnq㶿 :xLW_҆ɺuoKUӨ 5RM ޝ|jxUӨ^Fwҳ4/ [/׆?W?k4/k3i.n7u˛y椹h} ~ "Ӫw ۍsNȮ67l_EE(#w9enTӦuQ]mn=jVZN6pZܸ]mni}cS?37^0#yA;LjO|b~Gg{2o7ncT!w&dP ?i 7 p<xޕA}3<I3</n|߫~_ Ɖ*a;c;:X-}N_Cza:x/$\cZ~غMWX7o7}Gă~n^'u+xC?qS_~UAowՎO ¬-ˆ zlj~ٹ;b:8%MwM?20N_%Noo*{_Yn6G'ʙ=U4|j٢e{%_y<-)^bZ=5|ն O_ v =63Ɠ; ^m1O_"=} gy5We1?$7|~wf`΅ݩQ5=+ ^NڕEM\b\-w35ab:%l=!jƂ/醞燼ٯ xxu3m3=cW6(ڍl\jz7{{k[Do; x=O3b퇥dܛ?W|0i4J|[N쾣W >juIzyS'>I54͝1mąS{ 5x1a3f/w xs?L-o` L+i|G`8Lƿl27%dP 7n<?ǨJQƄ xjxp< oHȠ~8s&i|'mT*/:Nx;Ua^?@jv925xc;Z _m%7;azi YfC}.;f%,-"-t\ӹJݹ|bO?W.ҺTR,TpI9\oKқ:=G{~r{+Gy9V{/ZW蝺ҭ/dmmY׋ ~ "Wk,ҷ\BX>Sޡ-s~r=l vPߵ:§t̀kϜ#t!x9wSrT׀W>Y׬kz#ٲ4~0W0hր^ xq]♓fF]nl_? WU3ay ~Sf*U)sl}mlSgւP_^tv[/nkϊ9c#;o?N~ӑ+wYvp[</ xRǽPm/Gl?~w9wY穙H}mƭ ykgO/UE~JPt 44_/^O2֔Ore3\k^?ԤV4vFߪݒot̓l2Fvff3~X ZZ&J5Imf(5)ifA~ulSgx#7*A+_LǤqI3|M7+^A}3!_eeA>V x'O' xǝ5VszJmLxuAIDATQ2PIfAcaΒy9sO=~_[ T(,gP+)Ł!|EwzůywY*Ahdշv̠Vu?!~otzo`g)j֠_x̠NM%SڕB/8Ew_# vۉ? ޴מ~VqN=~ٙЎΒ*"e w!:Wc9gS=VT)'qݮeSg ~Y##e"Nƀ%h̗+sw_>Կf*N{+? u:Y|pN=~y-dJ*ی3<|;x|> ۾k)3ދ ~ P1j1SG? hTd{Ո"Q^Q0n##tgwpRUI'UT?@RytoTo"h)@>A  G<#@<#@<#xG xG xzǡ 5rNG1?sx6wb%eFn=F0<qʁ8/ ~EμKnKcE>0 <#Im@1ʏOt3!{x9$Ϣ{ymҡ Yš,q=LifɚŶYxtC#M'D^:xq|HwtOCf_H DWwVcM~xQҜcL9\?E6;98^~8pz=1({A.?  k HO.j<-Woo!\+ |U-]kT?Yś6^\;x7a_hٻK;<|$(USjE*_KǻG'Myc>WK6?coX-gm-X?t1nݱ.fjf"Gj2>{?LǭNwaǺfئ'?-uHm HjqFڔWcnfiz7)5 x]45hgNGEXi\.8g'Sc>ÓҾGabH"F*(w~FMvWW5|?s9IEn ko x2k1?i* 7<T*69M[;I^]S-n>+vcn6O\ttYi|]fx_^ղdWA_uv' #)W5೹溢I&{(Hsr[,0|Z|6뜡#/0 w, 4V 5 H8,E,HX7|-[-n/~d$c__ZoW%ev F7<=<7\&s;oX!jf.oxg૎!\{ OO. ~ \rC xG.xx roX\\_kg$˃.X{ iP./-{97Y[k$rela򉇘~?G-MFP!@4x{${XMx{<$)ދktkk-LW^-7q"'76woc?ܫ^7_ -C % -ngmHܺc]7S-n2S;P?|LT@_^:S_^SV!|& Nj'[٥v'a.ʂzb'_`(S/DvoGg펝;|{\v]* {hCc'EuOdm ]H4x!5:pZg-n|Qx0s Z a*`o'x'34kdnqoNrϽQkg(ܤ<9mZXrg[ܤKi|.?x\ܕrxx_9N52}lJt~|Н, kUr ϷӼ,`ٖleR8XOrjn1Нo~>7xb;?fb<ol<{|OAG_a76zd<79 >gKB^'C]çؔ௻[\ٍUIs'~;YsV)gn v~ DeKro4n%MOg%HPJ |VZ":?X҈f7HEPh+b߽n ,QOH!##x~`w:? 8I+/gTd9oX.{ˀ/)L𷱍'L7s/#'}g n5>6%:?yf${өj}a.Ɠ:IfFv&v΀Wi%6םU: z`V'U^o<*tg_ AISwLwjslskgUL|V\Zw{};G?@?f:wW0ay|iv 3~72% WnWK5a7;;]H:_~q/HVlL5/K 1 `˃{=sVȟi瞭w=sVȻT' T w9oXNb^H{4 pm4EV:% W"i/~n?hG3%k ]-f0=s>q|;Is]W7t ^|0[!-8t!R:m_}j ~zР~;!w~y+G_' vŋ{lWO5w7"?YwC kS'W4!7 %~|Oώ|  vd '9}i#@&v6_G^48 ?IF}H/\:|3⤕Q5x ΐ^{mVۗOPʩ|Njg7,W"1~WiiVҐ_W%'<ܧ9xz˃8|5 h-iZO<_ -iq#xV[^ф gY#85Yg5)^ ꗎorO9ǗO:oXiŻO>6{ >Z3/حH=?}ZҼt"% {/3Wz\ ]D|-f.KjH ?7,G.'oo˂wAÇr-{*߰|HCmo5|c N灧/&+4bh.h屩"HKAdsJ F4]7˝g oU-ui&>|x7>{Ati _I[u >jt gm[eClEa RKOolcTB|'~No*oc;XT= XT zRgu_<<=Vfhï.,x#p|U4a3L+ Y8d.=,xޚ \\;)}KO.x@jx xG.x{߰BTR\&xguז\𫁯@ގU\HOm=kwL|?9<_LAwE]*^wG&vOPL/Lh0kW& Fc~c hg3{DU(^bش+O|S㤄N_v3U:ۧOa|/\oۦsg:iv#r}lcߴ@=bΣ:?nbv#r M=ҁC`B@_\j.z)W#.n ?cx0ɋY[௹I%57h3JWˁ׻=oXuq=Z[sd fuǭۥȲ&Y'd]JDRda䑼E\+^cnOz/Ll1&R2b\ÊX. XZ'h+O,f¥))B*ŠA+FO<]T }̋O:/sX8W$^}Y,f䚵[HJ25ݮOW.ݳ,W{,g&gϺ\'㺸I 5g"xo%IDATYN WM~nrڼH*b\5<{PaźptU'OYYF+&'OCK'=Ê<$W<8{* =Rz <_::MzR+QN% ^n`%ss!xv<{$as0Ia#Jy&U.:;U:UkxZ\%:iuJcdyHJrE.%l.^MG!S] KNEssof1. #*Xh+f\|2-,A K] R0WٹUW,f¥eHGƥ&KEMgɲoz'G3w\/-'Ws*=.|\qPacjvd*b&\2yr_=&' N~NfX%s)˅A#xG xG xG<#@<Q1D88IENDB`sail-0.9.8/.github/benchmarks/PNG-Gray-100x71.png000066400000000000000000000174311475535176100210510ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME !:ssIDATxUN dm!(YEUQF{Qmok ^pU'CD6 l,?unUTUTS}ttNWѢpDK xSMjxg.eq} c/ɱEw|ϪeqG Dgh5x}o>v9ܾDo*$S|A yZji ^~QǶ`ɟr X3O'H$B3Ka[Њ]?ZJٙ3Kcw U%9/Q %Hrs3̃WEyy4с4'o|rni=NZeIx<^:n=vo ^O$c|g}{f*Dys$~SOiRyR}>pBoY$5Y:i> |EduO L4}>t|Հד5сOFmm.\@`ELםI Vsj7#wM~x|:/8 ]f} ^z>-Rki9WL̶ᷮ_Ŗ~/-XV?|{U6ŷzzJEV暙DvRVh?s=Ok,YYG~[5P@3xF^?p9{%-n;[!W>Պ3ŕxYћcXOfQ&/VH~]JKgq}x6/,Y~>8w37cj\k|WE>\bj?aCo7K2VI<i햁<; |}px=m3Nl~>8 lqsC.eAݶ[ ~>8p͏a챚vV+BW>VdP _xyY<}p77W[ jqs̹ oio07,Y# (dՀ!,A^<",?Wwdg4D5j' EYj<xϞ%  s}d1Ort0f@H!?m9Y g4miI>YuZ+ -x.pZ+ WɱʒX`۬d9LV87_eZr]%^/ . gԙI2NW`=Yk3N Wp񋗶m=6[6;MwZ~֤ 'u?~dhU/ϵw|M|oI{8~V87 l7/&U蘆_> '<N<|N )q[~ 'w|=OfwKGI/0OS g~.nBegW͢ƫ%c~)H%4Jn~4 |,~6xɽz o(x}1a% xC4׿޶, |i/dL_0~k3 C 5Au[)3 C P<x[W"8\3dsyʳ|HȪ<VH8 >x<Y].i?mjw.eY ea5=mBm24x +np#H{x}owiՋNP_M:cɽ}A֗8/oM/'i.xi=ozS|Y8łz%_j>%߱ffvlSC!|]|;>Fοo| ,M ZȴI#MzC_OH:\-'=VT~YXmDAcnޕ+fJ{Z!_֝SP-m_|->P_+ેXUה|s  ~EGx >] Y%7m/j!_ 5| 7mI 6b>`هԭy ~{M3U}-͠Sr-|e6Q_Ad8-x! ~Iqh YF,\qQd&!# |\d<ϑEYj2j5,x|j,P<xC ' #|&,z 2xy.~:䫐*?z4@KURW5H+>Ὣ*y+wttS |,WE։xSn}Wx1*u5h?+ Mx jz0ુ],MwTEk+vA|9* ^ҨY\m??W;j~ 3o|(ˮQ{Qt^\T9I^#N\m{ *QtU6 ~in-s s7+ifO|"U<6>Mz]fƁ!& ?NqfxP<#wAqfc#8<O 5jYx ;z]jts|#{)r5WnQ7O&w~ X&)g7q!T"2RywBrv2]8^4?jKzBR4??!FyG^&LLϤ+?y喟e0!i=iui<<w0v3 C P<x[%8\q__jO ><b=!I'xɬRXx7 | |wDnLnm#Mo&x@/CSlxcbFO9{k忻`_M]7S7f&O~^|W8rsφ /No&7o,nJImjR;|[ ;nsfivsVsҺ[SV7uP×/iI{ -=G%#oe\;CW< M 'a=s]7?i^2>jzƸ/Ƃ=5S״nqf̗o&}Xa&7^YJx=l~KB.] Z\Y+iFOea^TUT/2]ſ07/"/Gts^#)+5]w'+ aC_B~;Bĕt<5<x< dg4DCE?2Y|LGl5 8|2JI!uD> \c }Z9; }@zFdWK<\ljkM>"AgD xtESE_vY-k#gS1=Iہh'bM<}IմR+嵭LlK P{0u^}l?'ʲ/xwH.(Eވ&^M1ѧd搆ol64߷trłםhm6ɇFL8Cx-#x+4 ޜ݊jzL^㤵4 )sA׹İHo6{o3|ә3s)yT=, 1L$/w[ :\+UD4:gL a6J E҃ݱh~/;G]U{/=MT7:x{<>QWJIU~)"_^=U?oO<:rYف'۝2=o~6^1|9|CxC`n_e=B?Lໍ$ªηvϺMz(\ ŬWsn|t{z~:lx~&ϷÁk=>-ѓ}'xg// G;fHs(>oKDW{%)<ܯY͖/Ole֏#nY>gC6'IfWgR;eNK>tyQrT-:x  =}mx}OSWkfi\j4x>;#ק|Wy-]^~>I+a잚zQ{ob.^WZ9x63<+~B%GBp^^^lxۭuˁ^3ӫrH& >M-)WT-i . {]B:"Y-d~nwY<#{𒭽FOKMi<< *$ōv露 x ]I1#&N必m@hnʁ+r^Z^lRT\N]Ey)fFh0=兩xF͠3Y兩xZhGy)fyF o7]heO5MAP!JY==Iqީ4rV忼ΗV߰P=evxS8&uG dtK$S"5 k"WY tNtdYURܤ{uG dtr,N~F'X/|טr 邿uz/Ud/՗q{uG 褻Mʼn[6 nɮq&xo eDRܤuG fts&t7p[6/N Ef~;y)$6#_;aN+|R| cn<<KVG1718xxG_iꏹ?g<<|kr{0F_xx|Ts 99n~2y䑰B_+t}RM& WO Ⱥz7f`NЅ8 O#5jс nTjߏ&($͆$We2x,c֌.<4|ʭiyQ<;N&NKxy>Ym?_^2lt{y \i~Fsr<9y>1|K ^n ~ؐ$.j#ul Y x>i3fRN}SSOxy x/H.$m@a̤!E ^'S< ]^ud찇9COmc;Ol(x(>g>x,fxr}L2sMqgK>'ǓC;7o|#m@ Oz2d{቙^j1;㞹|^] f /8 S{r1 :Nدr1A>^M|% ^ )緺_Y< f^Klxf|u?<Rƒ$Dxxcn8xx8xTﺫm@v)^ =|Ռ?vyhq;-|%+̕^o)٘Iٜne?=%併"+=sC<6__b?@6|~a ?^op_3_ꏹpp_b,IB;D178|s?<<lj_ۃ|/[6 uٛE23dxJ OW9+QdAJ~AїrT ړ'TNڥSNL=a os/wᩜ\r|htXo/ڀPq6" @J~}ǦrGf ~ǃ}'^!|*#oI| <|b?Tg9im ~O:nTNS -tE <~xIxJ4w >BOhȾ a| wp%ƒdx~8|#?q8|}C0R}p?@6 (Da@ԃ%Uch;>gYin7&3z½z4k4* ]L.VSx'MN"^C~dj ܴ| $SN"_cc&Qx1xgԒ>ZmO&K#w`vXo/ڀC3Nw{GC yYRK_|ߘ4W#엸7엸m3yf<~[oE17 6|'D}#@<#@<#@<#@<G p~uٛwyk.ԊKK,6!ހwe{:Zͻ YsVз $ހ?H_0"њgomm5iiyJkSgGZso@Tnw]<O5޼۬k@+hP^T?ϟ7 &:xE Tw<{梭H.2?߀?1x}RqR'}E[1trQjX }bs/8w#Gj0\C蘆=ۀu9_' :oø4'_:xqm(z<}7fq'!՝ 5|8\x6lx=\IgiTtTyw_sVxph|✇o.|:hͳ7_悭p3~/G~(&ʆb[:Huٛ }[@ކ@/ hwu :ZͅsYsV$2ހkh5\|w m(FoG*#@<#@<#@<G x%@'QiL=IENDB`sail-0.9.8/.github/benchmarks/PNG-Gray-6000x4256.png000066400000000000000000000227211475535176100213050ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME "*܃ IDATx#E#x(F󨫌7+jԃD,^ x1k԰(et̳̂?xoUw'3IWR}tz$TW:hP >E xG xG xG #@<#@<O+-Kf;ȣ61mKv!;FmNDb$%Zf=79 Akv}<(ϯ[O'J o :y/T% -]s5S{?~LxSj C倷H kt?K$"O[팿U0,zӲlip\Ӓ 3o{$?Ugh/߽`Eڔ#>n[~2}+?O}pC{GeLvG,KG0lf7 v@[wK="kq_ c:,Mhb,c_j%x$;`9sDz??p-7H8o\(;6 /4?|phrS&2,_tnɱJߕ6n><OڲdzC 5a}Bvs6%vjpfE)1R-Gw+śҀW</Y/jE|h2S[Ɵ:sv=~˿!ܠo Dގ< 𼋷4fb>꫷ y} iɰI ^Wx>˔ٌtmnm)ս῍;z##bAڶ%f@5/L~վTOh#,u) f,BWK'yY% >[W uo3]Kv3a? {zn}2_>3%2zh)6(05b[|QShcFszt}l85C=wOE%fЧ#~{ =K k$xg&&;<Wbf:  [ 17Z-[~BV ^|@7(J?C|=cO|"G xG #@<#@<#@<G xG x;<#zd+mh|^'=Oָ҆Xxxxx +q&?!xƕ$+xƕ877>(K-Q{Oj< x]:S1~!i''oWٿla໢?\2௾VfP|@iGho|Vwhm0KFAucu;~ ޲v?J_Oj9/.|w~h9Z5{g6\5|bNP mwr(,m&(}~~֚~w %ޣ'pQ^F0+Ҳu K픃G% 0-op['L~ ~n|6}?=Ҿbx7 Xef{6 O.]k ^}џÖ+^rd|7MOdM uXh+KȐJ2~S!Cul#rI%k?)qll.RIF*.wLm0x6r<'ۣ:u/$?k'i -q<𩙍sֵTO{jyMOoM]i@ESӏ.xUIci$x:mϤV>zNfӌ3w/*$?c8G)q~hfF&d;cުU'\oixRCrQݱa+[D* ~Q'^I=<xsduV|`~N_q}du|HƓWZofxxƕ6IHZd R' ?HTk6x|OTq}`)o=6'gὴ,e}|iuKr % kl[%B%n|j!a_X^SSV +$f |7i=tWl?t[wH r)q|d9HLe=7Y୎;y욁/+D1ee<2d>m|B|p-{?6GNήϰo.Ǯߐ$J|%eJ  ;$S,yh]Rjrn+?~ƃ/.Ղ$)o G6:j䖸Ƀ> &0F)w~]4OUꉮ]\ +CrҚg'gwM_4-I/, Cӧ-:i3wٙ?iUव+'x`Fn[SR ?l` |G|D['^NHQgx^V;pIka'|kslCqx b>7K;]{zVǔ}jyĉ1 +r^R7V>ʝ+ |擵ϗ}i'i 'ώ́$W?J"%nǮ/xZމncJ>y?'iq=wJ=ъ8eecow"1%ecTDx>d/6ē55^+<7 d+mhxk׿'k\iCk,xx|7`o&~/xp^[/9 ԋkP ?C~҆}W|I,;{S VΤkj@[K,uesP)n#,<- ?/~OQ?u QOc#|Xb<^,-6b`۹S鶩|=!ԅj~r_QU?NZf qRi~V\9m9dC~҆YٓOY6QƪDNel / O4!͔jkjlX]Y_6OW.y.U(@ˊOW. L7lZ q>bdS~ u6o(_ҋ!?iCkl𝽀SdnP6vM 3-)rfNrw|@9OS)jV-2UR) u}7oxdHSmV IZc>>>6K<7L>>t m_e^ _jzO̹+_?ۭ5/*~::iY.u}/5vMZRkl޳'kx>!xS5u_ZD䥉: OS93-u/F;x<~҆X|ǷAV|{^Z?iCk,V-dxNjb9ҧ!q @xƕ6b x~DiCkl!~|s!ΰ<M} #-{u=y'wfR>z>gU'k^^?iCkbK3]~+#xc3(N lKO< x6EyVnfSfo_𲾓^Op<}^/&'_rNϪn5^5i)1I+/g({|mNrzFvt;[Ք93Asb̐*~҆Qk8-U9!Y9?uO;%(6 x}s^]=#31?7|mO5/5ɣxo/{yj w|_f s%/œ55 k0vW !'kz ?!|sz79xlZv=lJ|bma/4u|6_'wW;<-:Ogz x|v+7>ڹc6J^^#?iCk|g3\&[hֻ_6G Q!{@"A3 x6Lu6\kWϺ ~ko٥-%Q:X#3 E9k' X:50g#>Qo6) ^^#?iCk{|wc59:gM!Z&%5֟g)cx1#Z7Ϧ~vQqb;Cv |EюǭiI:xHSmV >6<|}|_<+7>OV㳟'k\iCk,<<<<1Dxƕ6<|&q ߼1<<<<| d+mhxx|Gwy0,}|UorO [%;e_n9wB5lglA23k^?`=*7, .m:LtS ^tƬ-9dȵc22\U^VCjx7!]9tuXlqe}#PŘh%M'&~҆]y3˔ OI}C\4ՂJ>l[ArxVwOojx7YϞd]  퍔lZ{lv&O? //5vQlM ïҞ]{ɮä; l/W>Eu\<~OZ;wk/mrkjIZc><9pzj֢njKzAz%埲[3|5Q[!4s:-] >6.jDo$xUxyxҚ<u=#m-jI}>iY:Ld~uCt<-Wjlص:L%m/{<|ÿIZc  zOVxx~?qmd+mhxxxx9 ē557xxxx8q i@_<%|5|C^҆EObz]VD(]Q>R3E[e<~C[-Pte <|QΖټJ?#kZ5 4oaB7Zͣ_2ͥA<7,}#W1.O i~xkԒ^  |[5Ws;/O]TiCk4]knw /Ẑٶ/ۣwI~|kʒL,kT짋 </1/*+^9! .M婋*mh]ܐFoӒ%;јIuL>dRxsQUO A'Wv=9*mhxWK{ 5tx&oƋo9q (2k;xA;)1}6G xG xG xG xmIDAT@<{,Vn*dwi$%q-/$Z,XNm{H86JH*d8!4+iY3>KVXT?Oh֒7ayr++mLYNJke15 G f G<#@<#@<#xG x"0DsXoIENDB`sail-0.9.8/.github/benchmarks/PNG-RGBA-1000x709.png000066400000000000000000000232451475535176100210320ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME 3E IDATxGedOMa`ppĵp#鄉 Dbv`c< zխ0jUU[o "Z| < `0< a0x `0x `0< a0x FGڱ:jUj&tsN)q{$k :GL{Sog?ّ A#%m{GѬWT ڮЖi^]rinA{ܮB!8B>1P'Gǁ/K ]sБG\'P^D^?x/26㒘Z2~^x(++qZW:_'QGL{gm[PWTxIąv9?I~jSCbArw=(%^Ob#"͊h) o;&|?/0ňKt8QoqȴWkWMa})ri.? ϢQؑbj&e;mWN(x̴W;#cU޼xAEl'1gV0;oBiDiH`3>K $Mԑl1 O֧^vrD4>.oE?]pG>w-kv&դxQ{Ļp|I9TaK Z8rZz IOtW?yNF:װN\׮g +1Y, `S' x lڡ3q)qʀ| K͏MW />hɏIW<_w X|E-'dRxXux@#Utū8ٔ8~59go.##HxfT'ͤ+~;u_ڵ~ҺϦqgKN!/U\'pL!8̦ξ+1:dV4 B9ahߏ BI+>P/Ic+T Uh_ 9΅B#< B##<xkil TF<W<Wܙ37G/xL77x7 _BA~',IqWi9mK7~% A 27~U ǟD׏̬%y-n%S|e~')i/eng\5O^v N4ˇ񃽿隸Qߤso/A 5^w*^t8<ToR.wy=['t b+T xߩ(-IRO;4ǹPh_"P*4>x<~VV[il T7ڇ+x: <-pC>\5b Wа4fo 7}y)dpY ;nyƨO R': H$&g?/^;c5;6@yKRm.)6MrS/Yu!pŗn$7~Ksr_=8Ts-W Lr3m?֑9jIƜtic#gy"K{VV=|.v,P|B[Ym2WJr3m?pi,\6wcCrgoe<-ۥ#שN3>|ұNoڍl'|ygw{~j;|d^^o4Ɏ<_=w7iO:^$eL'lEލO O~ |@ qikvm0I.m^c /xR-'fa 4qӦDnn]wXХڰ3^]*X-sn}V.gW |i+N)[lO wmg eΌם^;+PWۡ?XG '/ Tn1wo/ϓKÇ_:Wߺz,\2$J3@fYhÒl7~WԳKsjH8}xs[.]|#ցwuہҳ{zⴥ\o}+`Lٹ4a4rd5~ISMz*~-rئص0?[d{=hu+n\1%~Uo^`_܉P*Vu%k#оU {,P*+_ Fx-Nc+T hxV<il ThV<x<>V@F4@ ;*P_Ap B{Iqr,MtjAi]P+xw |HR(HsCو-+j~YӥR n, } t6j\%9R }.`SGt6{m7~y$Nx=D:}愻_ br= it6xY/ x:II|DeOȞHg]}Q /~IsC( |&`HF4ң^ٮT{xKFz4~)l6".h|>|N:@To*§9-=_&MN: l/I_>l6I;BV:F^S3;inH:ve}zMѡ!P憤1Eo| qِ fNkҔK_ڋP*+,>z-|#~'BP+|#*Pp_kzV1WI GoH7]!}VOWzK3M7>D5 x֧'\Ao%۰C簏׺,ޕ3H8QrwP4 u~Ѭz{kܥR)m/?P |"%#5Hu'_nȄcΑ( _<4ɉLO~ +;kC3g-f@ W gFsYYp{xY84l^;gGPP~EN [$OK^Eif=h%^(a?P|b/ǩ̙^ KßS~L*N3_?x'wkŞԙζ_;v{+p [Oy̫a)6+6Tݏ fg65ti >jߴV7~U*?4BЈFxÃ<7| P*4>Fil T0gwb+X|{ab+W+, QWor ||gSi>P!I o 5Ph-P*4>x<~VV[[ߚV@|}x<*PF4G}>Vo3k? Am 7)D+Դ qUk]\Π``k]^L-;Ӓ<5x vAYdxH]$Z|Q;j٥ E.BhK)֜)x߅KRnSyW9ÂLM^(xCRd B@BM ٛc/-@ѲCxzKH.]x |&eW.KAF/z>#\W9đor^QdǬsƙ Y _1m]mIxc#9sEJ>^.|7NLA{|P P*DZ OPA%oEo؆ Nұ+)g GNwS|iI^q^FZ|#?Xu)kyDj_'7 3;.MSfW}$yZ/~q/0Q2(g'BOBMD!}Ә䰳ْ^=\LqYc&2[a7usiÿ'2XUW_PyNl q^P*oKc+WxtL:bO_\ ^t }#ػ,@^%_6HSA% N;ػ d/&`UE"Vna1i}qQ5Ox{:}7g$h': x> sx^M_^GvQ ;A"3]pC_ 6#rz*(Mu^ Y>X Ч>*B79= օ4wzDfxx 8)K`}z}VF̓=gNi*س`}a=9L{ @R!Ga"_xlޞr?Wr6B=OD#TfIO@>cx*+w? ˬc dSs66 l.Xz FȱTfI ᧐/*@9~U gs*xBMɱTfd_u~tëG)>vB 8gs^"͹Pga00x `0< a0x `a0x `0X{ Zety8.IENDB`sail-0.9.8/.github/benchmarks/PNG-RGBA-100x71.png000066400000000000000000000201451475535176100206560ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME 2HFIDATxUI Ze2J\ {1WԨ :]rc. H%-nq+?x9=ݻ=gtؙٙ~Ϝ<}<&E?1H!Oj}Cx5MzH}({E!!_4@عӖ$v6vɃEO3ŖBހҗlQWbo|'}>Z~ o8=ϔ{fcF@E$_4C3UY/īp?O]\< DUOZM LM Z$OZ~eFwJs0< |U}V2/o L]r6vrl^9(9^2=͂90&O>ӨB5.gZEO8"߿?祐9ɢ2 ^έd5J9lwyN&w/L6KF^ȶfH59'kxi~^dnHo6d3 ~dMh ^*tjKLy?X => Ou+嬤9"ޖŵ>Ke=b܀oxzwLO=O_C|:8tV?mgڞ|NuՓ-o'H$B3Kٻa?^#Jّ7Ksѩlm/QJZoh2F)w|y4QZ\=O?=7x[G'A8}D^r'=uI>>MNu*{W6b[./?=c FL9́<oez ^b֗'m2\K#]Sve*ƨ'>w sA4x?7 Wqs8|9{K+>^=YR@JK. "Ox15N4s|:>w.r>$ }p_uW8{j:~>8VǬfۀ_dIܯr/Aj |}p_q&~Nr*UdG`o~1M x1yas|Si}Ɏ%O0WT/}8 G!Iպ|ywjn<xRTo G%Uv <x |S˃[sypٳޭ - ~`Z+moݕ9TKjkFJ#5]'Kgl$5_F{WIK綷H-Fxw|q ~wMD v07b\|<7*]&fl7؈ToՓs/ýsUM,rdPN/x>}1<|M!,#|Mc/`˞xU/w</'P<CgQfݴ|<ӑ} Ymטy/xs*{l &U5_^zy5ZDՁ߀3 _ Pt t}`Khһkz;#95jɥ/xv<[{uޭ|?@w+`wy|둥|+3mLxvOJxˎ x muE x<xR-cRn_O?TV\ N6bu;d;A G? >`:drꗶ NאU dc_{Q-nK? jf0WTl #u$G{?lN d /ln' E^P5Ɋ5x:q­/N6%oz旅5|a'0 [=z. ~w|a'7&]?Ygjt0~8sUM^k @O[~l<>^'8L-A<> n'|Svs?Z Qw;ٸ*F+|Y:_%  { >`w:ٸ%A9Z qw:xwVn-EfCh/$1?:N'᫃pV\USbJU/{檚U 㩧ژ  Sus- sE1sd:S> SmgѬ}6_b78`08sӒ2=m;+n>>NwqUΆt<#xN vz:;y#[g=ހZ4^O'W+عM]o%ct[ШPuͣȁZuu$L?pV\US%WbI6'ژ YRnx727D<O*ToA ?ux%I\/N/>je- ?8|~M8*m>Rn˫H=@ /ji=ꟽ덝;JQGVw^NҌpU5 /yV9Y O~20WTKPCggoW&/, g#q^ w?}(Q]33o1x1_ /g'emcV:xaY=ПvK{Ǯ'$UMq魷ˉA‹Zxu3}3=xOOM>*I] x=OSH[?8?yw rB~l;r3v7E6ާ1?@tpYЉ'Sޭ<l|@i<ģ1_Z[<xT"uZ[/~T-rEᦣM&ܦ_8>`8sUM .V_5)^N\yeE #/5VI]4 @ >-dT>6Wq#}ՓH@8sUM$1d: ^QyQQM|]pO ,=⎪h: ^LEno_?Zr?l|'mogip5Yܦ\/?'$SoF×w=8Mo9s4v&w /"/Z [N39Yۂjno6`_}-o  2C]΁oB<1wA &~BwpBGl586gx?|浪%k"PY\2Uo@ݻ%"֝ml:CzcT6Lǧa>UYU TSz՛?C&;+ aKuƬRa\;+uy?kO借%WLMb5wR1k"J vVT Uw*}$gxӝ;x'սe]Sf͹dPTCTu8[./|YCN&ot3uRj{V'ueUeu\VFvפ6 >^%gAkY'5e5C22jNj'u,h& %WITdMӻU 5r+u?C'r*W[NZ:kΥ댑vK}&N5R<!WTUP]=f6/浪%*WT#jrEv^U3x/U YGpsafeJΐN  x8$HL&Nx/&ouUݪUZfZ]RW3խR]ҭۭMk%x ` >ba0x `0< a0x < a0x `0< 粽Deye=kRj:GvdVt3=_rx%"3xt>*[bkdzaC9y )&ztyҡ[&{ zb_9m1wHcGO^;)C[ZaB3Qz:x Ƞ^aڸיAwZ)%z-x>QoG9& ^|l'Og<Swn5)[ <ˁnG|\ʤTLܐ^D[!|No.Otwo9˅4]󥡞>mKb~YǾ==_rgxH(೏Xxܚ3; o*cb|Brmɱuv\a{fkLyen^,woLR-'mSut;4 YK4l2xb%|is a0x `0< a0x0x `0< a0x `a0x `0< @IҼ}~:MTSMO|x91| z*MTS x<=MT@Oo~d)$ >{̌B @!/ +𲓽Cwt=z_8fvxҤfvrYq3r Af2Wh0S]m`KOM/ x y책o[EE&L❍) EN7˱^E?^j6O.L>#nxg*͕&5 }zIg[2%l6%M?JE~O>ۣ./qGӀ|zٶoAu)oۤ+9l4ffm H@3x}^1-7=c}Ҫo_fS{M^&+NxsMq <%MO 9wL/ ii>r~H{[zSJs*Y.- +^&3vۺo36>aq?&I'rj`<xik1T}GkLejއٿmA_dTs)u nb6i8$ӸMLЫ:)N x#g,qI}]1Ľ|)+q|Iߘ&lo1/<=pJ LI=I?opܜ^PcmWƽ[2C_F}ɉKcej4 tR],N>Gj~JZRsjdj&OwQ͕M|vN#ޕ%I%zy`S72?<D<= Jop'4 ޑ:XAwGi&_e-{MTS xl <>V47QLY7<x<#i˜Ɲ=YRwnz/;LUi rvDqwE\6&+l7HEq}.+23Zrc$, Lx<"/O!о)k|7?&_eSJqu<_I *<xA `ʺx<47擟$7^|m-5 kqi`6.|e:<TxG|NU5|H=Iټ#r^%r5ޱ萟tNxEB? t I¦B; ZOKo?{?r?Ks8~9'ߴҾsMEG3r*W{l/v|?#ʋi #^|3+iFSW,MhD8b[vN\h:>q*NI7KJKZ ZOO :csJnλR7u, /JRz,_OیMz+D3;&=/or(_Kx.xdv1 iJE\+5{C.ge/i|(BĽ?,`ɋ2? ؔt :5 fZ:=c+|AL- (&|zY,,#3)v/f&M7x/֫J>?.޴|chzVvd "Sx_9rR'm; }oOn|6w$Cgי,(YvhN'*KygMd$Ɋ-ioq֬f5;d@! _ f^+ʲ)\D>zcc[mk|]|4pߴV_oGit ei<+!=̵t%~^7 G{*@C"8*Vt.T VOQޫVԄQ쪺JN[PRb%- _#AY9MI: tjxAC{gJOŀ&oOp᷉4Kҗc6rahH ygM!7R7K iį'ȏϼ>{ ^je: ̙ G#Wx|SxDu0e@U.>< ) ֜0< x< a0x `0< a00< +"~1#ȳw|!{Vܤj7ZĹ:7ʍhU^iBx<{2Jxn\JunUG_Z:>6φ#=' &;$VFҸqtV.TZZOH&?yy_W܍RM?t :/u^k 76ݗ}!nZU͕V* B/u^k* <,ys󾐑i*w*;Q1|B/u^s/x6ܗȳwmpB7R+uUWF/Zz?5kKt)6ݗz!*܍e27{"ߋzעuY6lٻ/B41TFMjEYOB/÷χ#= V`^Hn8ZWVdj l8>ݳ_B7kGcSUI.R+RC1p|ٻgN ?*_>:/5[onZp|ٻg~č{LGչaWjea0x `0< a0x < a0x `+< F TIENDB`sail-0.9.8/.github/benchmarks/PNG-RGBA-6000x4256.png000066400000000000000000000233701475535176100211170ustar00rootroot00000000000000PNG  IHDRh{ngAMA aPLTE@@@DDDHHHLLLQQQVVV]]]aaaeeefffkkkoooQxRyuuuT{U|xxxV}yyyW~X{{{YZ[~~~\`dgpgkЌors}&+/4@ۍ٥ܨQݪhjߩߺ㪽໻᫾Ἴ⬿⽽㾾俿ͬҴVbKGDH pHYs.#.#x?vtIME 34Y IDATxGe Vc,xqvp]1 "2~ ,2ڠ8$ IīprTuf]RaSS[hP hHxG <@x#G <G <@x#/-{rlOhE굻3k]8z?J;=i{A$N$ag~!佗M b@#'=qض'Z1{aZSo"$Mz8NqIV@ݬחz!{/ |P؎&<<1+$alۃ4'F[ѝ?׳g{9`%!"7}MI@mF+Y RXnzise~DGLKG.KA/ J!b]E T{PƁo[W=.S=mϼ.6ɹ J!T᳻ ӊ^τYuȴ=dWg}55~$o";4W3;p 5Lt Cgr5n_Bڵ=M"R~rI^J P`*84z^?ͣ]PܷiҴ=Mu۹w/^j׍L3ʒ2veIut4@3 T7^) ^7x^ ~JsR}YN~75RSng x+[|ްk𦮝(7$I+WRA{ffBkn/]p2-yϹK,ul 3䁻8N Kބ?0]g/^oB=.MNs׋K4/:y@x XnNn 湵jkkoNSj&Wrgdc~;m0wxo5&yؙTilKYݤ΄{*1/>}'iU[Pz8ۚKn[ |xi(;u6JxU\ӳLΟ1)M ,x9}#G <@x#Gx#G <@x#@x#G <2cF)_'R]KV H@ CJť<<PuoR]m_*N8qJ˧tHww<]s7񯮫=mjmWd~u]mLDL%b$\ m|B4TYb_FBJ[rAs3jJIu޺G'OA*5)(}_t'zn!{x˯t1V{g\>uۧ]'sT1+ EtfE&n$hSHv ^/H[j,]'u<;< e'&>OK:^-zkWC=̀@.sSEf0biڦW|m\/)(vw﮵}lK%$`6ׄWJЗCp,MsERݵLA6_C|<HoziSˮD9\4 #L%P$ -(Ma^C+GtR]DL* mJrľY^M9{][l0+(Dlo!m=*j4k<@NQ x3ݱWeC6id/'/7x-li' r53]~x{lW ^3xA-!r9Gj&=L5,}5/zxe[|_<ÖoxmJ:Woٹ^ŦBm]Ew8ALq%}<mker*7/eO٤o%%n=4kWg8c@"̣7c^)0i<<0Di;nʪ(T+Q7aJfLC܍>OCJ/=RJHx<\G7DxA(UP+.<<W@iJ<0\OK~kPZ/ |oJ P7xmd?3T/^ih IC~6cٶπ~R glq|K_-'1nmgsڵv^?N`ޭ=in5[?[.0#/ g[ sW,wtLg5,/3Is|$ WXEljG쾽UpAC9WqBK_?6_)QMUrGSaol8/\cгQћ:|À~J#(X<N>'}gmWJ Pb{o4 K5Cܷ E(ǒ_X%_)~(x%\7PRq_CJťl<P=@Jť<<Pu%(-V .Rh@[ O fqc>}  gq[*S\ƶ$p ؅9~7r>9<xWk0i%3˷iWJ#;g5W$|> J.,b,~ RNZ_vu1[?=VńPux_0#/Yʸ=#i+tSxnqSR3iy%q9Jчqemq0&R'4: &a&yΌƵflm{^x:Ez[6I 9z6'?/2#ZaC#lmŽzzÁ׮54(o z^Eo`M6riɓMNi6vwKW |`#i9IF2Kg?|auaIL/آo<‡vdf..o<\wDIQMoCM7zb>wֹ ~b:ǽM^90=6sf{Nƺ}CÚ?7 V6#[>8)\4;?i4 Kx(- oAa_R)%cI=+>%_#(UPUGtC<BJť.<<?T\?0 z+UۨR XЊ$۱+4Rhx̡-A<_E K=M<--<-D8> ~7=*/ oV]sl3R3j`~zGYzjiVxgp˯y`1m'zcfqU?n_ɵgmEb/xNFN~13}_ڃٔ-o;;Dv~ޓq 摛fja)K2xY/:ɪ4]Ti+9g' ]{/8a#Kr~ >49i+_q[𱔸 ֗/km'">~{6PbNx,28(,ϴ~KP*ToD㠰TW-xA(-V W |JC /~o(-ZPUGt<կBJť.<<<*ʥjO"wmxի4"읦-Lk R&vIU]S[UۏVЮvsw1lݤק>??R$G/mj|l席׷޵K>>oړn^Ŀdo|0}w lϳH7ý{_4~ ~ahle3icx.fg?RZK{js-K=FqwN/W }əJbVJcKV;Ga:i$kxns{Kj=nN $LU2>Œ;Qy{?>+|k>5[!TX"୿Nc3(OwSN=x]'0?go|߶m+Ǩ4ƵgfTe&|ugROZx]=i|S<O:!n(-CJUP'? *PK PJ~r^JuU*.<<P5{XO|bRT -R| PU W|'RPQ 6sٴY`c/ڇXZok |EosgTӎ1g&}6/=5['A9##~sY8"x4 K-x]euF\~58G'-|.h|ZOv^7jA&??;j7}m9q1w8^m0ᖇqM[r98+iҪP9 1V])^;g 4^d7JET$4Ӽ3^<|xid4>61d?͸nW#?Aηv98E;Fg4~J8W:Aηm 6/WN|h\zjRo{xXW9(ٲ~ǽ|LEfяFTwZ4)4𱞥`=|T?ouOcضI96b b;sox ~b*-Ag/) Ei?;lj6J%GqPX C /7>AiV%_JUCJť<<P 7 *j0T\ C 7#\C x(R]Kx(f]W? |6;VOz˗QT5MJD~P <_ m6\4&tGHOC}VTU4k+Jr eLQ}c|m'ȋ:x+.mցNO+%'8x4[^lu^I?)ozqjrU-J ?jKUͻLPnܽ9])|Le3OӶ\c)%k_O5V_[![?%5챔_ Ȟk^{%u},x>;Xo2*gZW3~e6kB (UPJ~pFCJť<|3rx<<_6(UTpaQ|NJ7 iz˗QT'z1.U<)YV ܬ&F{1wH6=Zfzqˏj <731|vܪ~ ]Ij<33m 5yH_ 4H޸g0tvg}"M? |kʒdޘ^m pDO=_9|?Vye]f5y7B ǔm~vcR/S5Ωcn Uo Wx .O9u:ܬ&/m)?6)cQTdv7YM0FEțW|Nh p̤ʳR+çjR7*;)'NXKUiJ.FIDAT/73 We /JťKi4:|}O;71OͤVu Xgzdx_1OE<J37z˗Q~47z˗QTUVQHx<o=T\ @J ;A Grx#G <@x#G <#s gwb27UI%\JIT%cAюrNBRo;'U_{Spo~7u 8پJߤE8'甸߯|7 a$ف\f Jpю$NL5))R7nRz唸Ahsi@_O 4n^^UNIFzdEI:ίW:|{2@qpOB%Vn+ārNz<-ē'e * [M-@qps{9%JDz'b))B7##<@x#G <@xG <@xbɀG Ѩ@I\2(IENDB`sail-0.9.8/.github/qt-demo.gif000066400000000000000000354237331475535176100161170ustar00rootroot00000000000000GIF89a! NETSCAPE2.0!,fHQxQTG5B3 (&3XAKK9I! R9D/fDHG!ҬP=J[BJWV=? x`& 7 bY_ENiKRraٺǭuY\UhXdWtLQD3=4V?Iɇeqڸ -T56p_fFLʹU S^-`_$}9ͺvիo^U N|ȏ+O|ПKG}utϱ_^}wַN~ϫO^}_/HO__3ۀ̐ف&^ 0<3x"!^ N^R0 d: R (4֨>̧ж>'>>BHo66餓 M9t΅":SJNxЍqφ͊<݀|i# -H- LΣ饘f馜v駠*ꨣэvB:&b \n9p '\\ݷr8bVM̔wCsҜw睆 <-?~-.:C+nヒ9K©30x0 !/~ICMs߃o=+nq;xF ~\:^'r:{j[]Z7;nQ GH.sPH K˛PvuTv{ݩV)uwCҥ/3RC"O!`CAM$]>"OL(H2q0 hJxcVΣf0Nz<yqvʞ:w@<`f>Mny+ڗJ Q[!/5t)8HԤ, ^ILB>YL H$;ٙήcŌ;B֌YCqԫdf Ү\H)wɰ>9r-,Y ͪhGKҚ6B,DX,s>ZmO@yiwiP0#b>D6GhC-3$ϐ"7fv^W0'w}K$zeo|;ͯ~/fEzVHΰ7{ q|%\5qի`x/1g,61w>~U^Ϙ@N{b%I1[*X-{`L2hN6pL:xγ>MBЈNF;ѐ'MJ[Ҙδ7N{Ӡ@RԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{vFN(OO.$]r8Ϲmn;χHOҗMG 1[T={`ؿOfO;pN]x_;>z#O|xEy'OoyGsGyWnrT>嫏=e{ ϽwݣB>G\r''}>-tS^>oЁ~ƏOAէϿ{fvcwWxwXp ~7hGH~ht(t6~gtws#8y5s56z,y,}+z0}W}6x{w;}@؃ǃ<|w'ɧL L(PR8TXVxS!ׅG}:8{5}ٷ}ٗ}ryz㷂tH~vs'?gtxGP'Zu ]wzwjweGbg x H(h~w(s)2ryo؋>07hk({76|>GXWԈ|JIMX|بMN(&r(:؎\ȅzaX}fXjh{khzhr}yHs؂xH~I~{@7 "LtXgؑbGa'k7wxv{|" vh29wh69؊h4#䇐ws'(y0gz"os(grxʘ{{^G@|e؅B(xp|r؍8㘗Y|ѷagطxrY)Vr)qXLYJyW~א 釀Xg7txuؚ XwwȒ uxG2ii@  h# t)y%uI9.gz ~XzHii)ei{G@]HBx|xtyJܨwy{)x|j،h{{y{zz/(sXۉڙ~Kׇ+tthuȑiIv7vCjv0IHfY鑭xGA\Yx#FGt3U#W*ס({5'׎{fkك٨ tޘ j ʠ[ H}j^I\Y蹧%w*!nsMi~(<7y ɢ4TgYȉ|GؤXl7vvi+)*I*/通4ؓ9E EsI'*)`77jsN 0zxژ2ٌؕIy?hlYrr ܘ8ry k j"jj}^++[z+םy9k:K髝ɇFK5u= >:M*q7ՊQ Ti1`zcj\*(::wiFwJiz)8YXr9rr)gY|*z (;كk*ȃ@Ʉ{| k!8JYY{Zj1 gzۦI&ʳs,y鐁Jy9Idˤ` ULjw鋒g^ʭ4ɓ芓E8E Z$htw;y|KJ9;گ$ە{+#< *,hI|Z ;<{kj*b{y,|z|zzIs))0ܩ[y0,*Bsf|:3ۮLkk둻yTjklǤ뫤[vLtnW]'|̣z,ʙȜ8r > oLa7*)o] IszU ſ˻$$!̡%{Ō{g9w[iBذ'm)j(o s= PB<ĘH|{K]{#lŦW̻|YZ˕'H`~вHfLdL9ZyfEͥo,w[ysI~ l <}ksmX ])лz^^}̷۲7({f)Lϼ]s޳,˳쪎LŪZlS4aָ7h ᙫ n ؐ*sI✺Gp&rժ5$̡59X]Z.'˯ߞ j\,D;TV[SkCͭ܇(=^mI\yxˊL.]Y\}9~ ]տ-2b nf=B_F૞Y uMkᛛD.ع.S?\`vī {.b-4˸UY tAs Il n<:wwJkwqOhvv* -҄ 0p`+]~xkT."#_$o药Ԓ^.8V}ߕ@U}3a  0J_Mq^Xo׶H *( B96tĉrZĘQ<~ GPDy$,]L 3y#NR%R%<*ԨF^j5V[E| Ieͦ0;Iڰc'\CsG ]#n{# Γ'# O^jխO[&֨M.:sџCyh̛Ø Yr~ ܼ\#[>]~g뵭RG*TKݿGjKꜯ5mOUn%JPbbIA]:ATTP W0 M2i#pBG<ĉ*Q(!P2#@: )G|xG ?馝>:j(E`ꩩj**2ok=Jk+I N NC܉ιk22 3խ6TKCX[ RE'mD{7F9SK國0U+긫.VC м5*"~\OIeo>&kI@-)0%5vCm70r-\>4(vb]("lh#si$ ]0`"ɟ](*.*^}oL0+k-:6kd5eT1=9B~-~-7/q͵Db;L+JvtSx4MTd6OT鬓d}5֪;Z.z5.،=oh[Z<%Ua$G#o 09$w?D \EB^{o7$E#lBޏɇjo:J(&Xr--d2'uC.;9U^.w yT% ND-}teTRHeMبEm6AXZjhfqk]F e:f\bVl +%ner^#%հzRw<`4T!&Nrh'.&V\ŮuN^N#չ.#] #̈@ b-h'{,Q*sŶ21 9Nnpo*nvƁ͗_3VF-3p!<`*uL%;pd|;WaxnY^`.*D;zhgv3̦'bp H'wA O+~N0D!:v.HAIrb鼮+7%u=hu,[E{OW'lT.$s41;ǒ'e7睈Ke.*/U6P+8U䐷b 6_* &"Xnv mr؁Q>_҇AAQF↖9b<}twCȊ$Kù;`0 &Q,,K[sS˭v@L3G-33Kx @٘+%{3<~cGq3ǃ`#A@HA=A*)Aг/[-k6j 94“;Ƚkq=9Bk,js:{>c #۱ s֛ybFg+BB+DʠD|[)7xq bZ.8c~;3 yKz# p<(%Ԭ1 6:J;:lFԢ!ԺA(BcCT$QDK'sDKD22B*UrŠ@R!XzICE~;ŚL*{3ņ;BlhA`,4:JCFxGHbFZhJi#? !$B#K$ܽl( Ƿ>)BtKT"(:ǚc5u\/ {y؉G45Ą1bLaÚH2L=31)=A MEӔpSF6ՄMEػI@zI{ NSB<ĤR$d󂋆s`JExMpʋ+O*XOXd񜄫dO\F̃ۓFIKk$KkLB=6\}K+i8 ETP4/|>lw|Gx$ (ӵp5 GUGǴ̫:pDĞ!= 32M7)F4)pR͹sHD-zlnnʔF:Fisgivv •5onP4|bd\'Qqub#\́**G0~h.ƘO<`RMOONecWnW)c<݁;@;G|A.-UF6IDIVئ>N ٘u|%V.%e4eN:1/߳]:vT7Yfi3WkW.U&H~ |VlVeg~fU. FBmȆKp^a~˻]f=fFva"Vb &|6~62$̶mn^jf܃6°Dgvhm`i`/~`}-ҍڧM]n-_ߗfivknu65oMj~o.;޽|c3 ]p|Eo~ j>f߰FUD\e\lep&k:Nڎ֡0]cUnfYqgmlnnqr6 `C$s΁.mVms&b)osHr.ρh>>hl4# l7h7h|hQ-hiTqg`?,6RYcMHcGwD.o@^e4;GFuTOjŒͮFpmYCQ67eDoE'&Fot]tGHvFqJ5nmW`nn>Bmh6-ln^x7lq>~a%$Wrtnrv(r|6x~s٩1f_s5mnþ\͝8O K60ZvJmj`w#]iGiY.OFtfaht/o߅Ģ_i&8np~M$SRXMTzvjW?pQGpv_Snu[\/e\Sv*_ok כd Wy‡O[vv~n`f`w}yfzg"Gq~w'r/s}-/7xU4nfgfhƵs6쑯shk;w|h_|4nA7ķO?cg/'N_MoNguNĭw&DU_ªT,cÎ!SE9Q3g/rԤI&- 5Ӳaܸqޭ;7 qs. ʗ3WƌS^2c%s7lXU ׮]_oݮu[W>ۺOU,W[yՕUTT(Ԃ 2.)3L0MpM:|@!aJ($A}d@ųD a7^D#u$RH%(R2фL9 N8yKSdTPX eTR`xUWeZeٗ}ozug\w!_=wIfe"he~֘gFgg!i ږęZ[F*h57 z+vB(*Xz%_'z*K粶Wl\m=|ӞYIE&Vu{V*Bx. V75L3Ta΄){0cccH"(5J-ᡇ1UiSTFIi%R![TizWSj-eWJKz =zg(ђevҍ6/I աaZY:[ƛ*qa Gmh} sEխ+Mo瘯K >4^gW|kg\:׼Vmnk期`j8޴;%r("J A=Q:nc‰7%Jc(TMV>O>ATk`.ucf[il:y'?(|&}пZFԋ*꿣BS7i-3ҠThQ5p*kk:8*2(6Tiy[s\2S]=oy!ӧ>pS̒Cg'>o23ie-cA(]b3F)B0݈t:ńCIBn.F1RCBh`yc!2!PQh=Ny,KRA&P=섊>APJ֓PƔ-D.?nry&g `EȤ2(+ rI@VmpU6# c|jSJMٛPfe#*Gp7Π1h(\W2f8?}8,zt'-=IL򳟙K T!q#(r# Z/0/IbH0mn#Cz䨎Z8U5׮[Pk;P8c׆ ^7C"R yhCx겱npr_7&Gސoxh)K\wC?Į9r (Η.8?\š{ߩdzYW.YYv?5y?`a kUh5焸nyuEIŠ1. ΒQ& F޷lXT}w?E^5(o{Ѕ2c 87|_:CTǝ\<7j\#vYS?傾n!"c5L1(4L2軏C GbԦ$~S#tuYL,$j[~^؁UXفiXab`۝q05/݅X޽cQ rF >9ǸM^X[ g ᒁyOXA`V=iYUY:Eƞ^…_q _!A|xEC<fUwau #Zڥa͔L8T8QQK8E}ߨbAR* mv/Xy f1`=]/`2qJ&6Πaՠ7 Ї=/YF} aZэ,5Y݅>=bU!.nY $'"+yna!o9@İ¡*_tUfW! IYIm_u O_e$7l՗R2y_U(T_U"NnB-FU& -dA>1 -bꚄ/VXc c^3"^@63>5Rq5cF6 7Ff 9/` bއe eU?2=~ZUY#?GifUYY"Y*.*nBjC2՞o]$@T$uu!D!7pvYaD!K:CzKR6Zy͜"v-b#PLM F&f&"=ebU@e(]e$gWgVv%^2 +-lf@(m>eF0^0U h a6 5Zb5JS Hu7 8MjFei\//aeh4g~f14&kfjΨޅGi([~~%o`lev(-*p&-ZRR$!5Ԕ`btV𑟇$vG!u9IFʱgK'yH|\(Q:Mr~ު(R"*tJQf":h]%Sߩ)+V. fpja-"YzOB,TCո&Ƃ%]((3h 14.4& m^4y#Q\هeYz)fǪ+,l˒%Yfk+je^q'Rym1Â" AtFDY'Vjsqg#F-su\#MWygHŧצ'zjK!ZªA~6WԾ-ƃO e&OvtΟ!%ySA}UQEdք6kag+n%YXvn~kAhikvn5d ƫhbeB l6^FS )l6՝5Z,^J,>bi0 z ^Nk+V>lb,Y̖V"Fq+ yrB&NI-Q*sQ陞YnTœQRz-9*Zz"ґ|f=D1~ 0 LMNg'tRN'"n"kB%Ulm޴6^+p i)o@vf5.0.F6#0k_ҝ5afX6q4C .qq1,V&C B/-._jhRV%ro0ަ&'/Ƭo)oq/2/"p VJm#Сd[_j0:OsKmvA2ߤy1y0Om/0-6T _'SV*kן.+k+¬As's+%f1WCnqDqq11\X&q`&6:&qFK.nm@1N d nFDi45[u4J#XG&#םΨ#hE$.KtC?4YqJz'kl)5)2?l@uµms2m5//9lp8Ԫ>LR04Ks4BdO3تMp6g}CԢ0hr00W;r%\hk>6t+u+̶A#'s2tA~X+E_4Fc`HoGwRDZ1ttgug1dgI˱Hgc $K{7Mϴ|{B)wm8)w68i4FVZeB0e{3xGfTKs#znn8f~2J1s۩22*l-8\+;+2rt.3^2^s;hG31oT#מ]:y>zBv.T9[yS{J_yj&11 _j7/+?emʶ^h6\to&`qhq+Vq37E?Uw51U77ZzqtÕvg `w8xu_wzwn :|׷|@6w.~N#QMG4({wgwg t7u[8q^nqE[:Z1tW/$k qKqϸ8ol 9k^9h`K-8K7СAJVcc99däF|*g-7|/|_?eylw{=a;K #_:sOzCCgS4x5A+fx3D.s͵Oxcmp @ dP}%d01$c ă#D]lqӓXͳ[6Ǐ -!؊sr(יUż)/y&m2&32*&4O;*Sj@2C3P]I8C.lH%. #!4U͜::՜i7#ղF3h0YB\8[&˔2 X9<Ɋr-iAj#YZlwcӋqѓsK{ 19^UPA}A|7CW{qx\q_OfFoQvug;F_VeA9' BJ7d%] KWτ hFC딷;+USr5%+$,!ek$8!b0%m`rCP[Yok7 2jAq(^r6ےMt Sj $uS]ڸ>;׸F$hG1}oN\$uC)X(<|z㗿,ԼKy~VyTv3R'#٭#\G-gQɒ?.<'"0a0t$ MArXI9I"~D]jH`V5%jR; 2-H afBԥ,pZ< /fax87 &SVAȸs,FѺ)40dQ DRMfs δga,RFqL.4"4%D -_qcԠίvG`\cAcw+2"YvCP"yIZҒ$4=ua4ZJh/BъVTѡw|e%+_J`N}-[wi͑tlTq,p@L$uf;͈I$I͐NY HńŌ:1JSq vug_ )_pO*hcCTi( 7@ʉ[TJ(rn:>soJiv%t1YShn v6+| >1VR mGΰvWZj(=^dI+@j[ED1D O o/ l$p0::>k8Ό2.O a1ۚO0,0ox%go_E޸ @)?HIPdȴoLȏ/81Aㄑ㸀P /o. iP ^k ,pP+P+160L<НPNah .an2`܀ g˦ vm m`*#-NSZL$D$Q$$0TX &P ı ݤ€ p((l: E2+tq̯ȎN,Wۤjw!FwHL81.( MCODA =Hr,1R- cɘ a1*oEQ,+Q/ ,V˴)aL6q6e}N6Eaaq' 8u2,b*p%KraP(H`,aH* g; c!wEY+S.i!+s+Op!H.JJۢ -ODƒ.yyRB/*C$0mlqTq!aN% 03 +933a4A1*552EMh o7{7,7q7898?Ts8B1'OYJ."V r;`!}u!5X+=U.XI >g"0&2nvlm=S1숀$MAW2%]P8O*jR'Ao^qR3US+5 f6Q4)EouUGw3CoGmTH/ +4rۚj14MiB$. @ R,qKĬy`T 0g3M, ڴMatO!G2+?G)+HbYAa!vREIn`ζQѶ`a6{R5US/uTAMSoM$rWpgstVo 22rg /=ss "A<}5"17?3?u?U7?/ 5Ԃl\eu@Q%^T8B'oőC/&{Cu28uRݶ66vm5Egl˶) P#R+qt+cr8vIh~IIdeJYv bVf`L`OMDHl0SdEx,hEM / h/Gsi k)vb5F|R6QͶzlemqR6ns8n?n3583xyS=qy8U=VSPq<-V:nX1WgZw`tUsX;Y/2>Wu\M~{]-SɛsؽkDٮ]<<|<]kw!֟+w'λ^E;KW1esexlJ]0{{yC9 ^Q=UYA P y`hο{{- Z6{Au~فk柜[+:==YG=ٝ?Z?zr>uA=> >"ϸG\ >ōW ^[3AީتG!\u@#reFAwm_;DhPƒrXCW$&Ƈ1 Rج_kȔG:6%_/:&M9wŊUN9%˨ѤJB(SFzN:ZvUDXE%&PjBuKf[\2t#w]|7pr2lbjʖ5k6XQnukիPF)TVJI!:cAݔs./ducUh^$* ?(!Nn`&Qg`"*Xb'H@: -G(ÏDIƷ(NN ꉧx^~ v1@cN']uiRE!I¼ٛu璜49ILSEFQYTT= )f\mWa]:4BXZos F9_W^Cjan[6vdbziWueUvgO}fS-KA9ZiTo' HȽ!Ufebwɻ4K2⥷~Xyw};d)( v Hf!v!Na#!*!("+r6q<ByDN $-'NgDpY,ԃ*D Ҕ$!HRZլT@mW3ն6-e;w|]ޛNڪ#r1N!D$o۞@'X W8(Hq X\GMuVbBA͑s\\%XsmI8]AW2cHRw p!m`_dqZY"g Qtۜ&Ē9-u&|4G,SX7 P~̴O2ɪlP|&ز lF5 /x;hp=YƳh!=İ#aA 1b6j\!N5y-{eFPLU&'[OG/(CR]&Q)181 y ft\.yS.WzhHvf;Vb܅k%`6U0A޼U7vR&2G3F=rE/~ɯ1&F0;@=ՄPÒ?Q@Xe?"拾YS欑fd7&?$7(hHݐs?'g52O#si,|phj{a/|]Ns۝5̢Yx֔4c5}U$+XoM!1>U #=jE\.BcLh|Q)tGH"WY]YMwW~8rx$~Gg*Wt3nrP izI0Z8蘸 z)WrҸTtU 7ii6=4=Pv1)/IoF89+ez;AD`G(GDGDyOlilזZH`]Hx_|zgxk*c)zDnŒJjU]6Y<鞄tֈ(>p؈MOtRyt(WV}b镇 hxrnrpr&@ @ @ +Ԡ 1 ,9ڗ;jϊ**z}Iܻ.@I5Fqot[5l(R }̴><|9>^XD xLkn`iPw\ׅWb|x;( Jx,iuVᰥ0?i=]j{F j 0xzG<Г= [ ]>|[[Q9-+rF ˠ ,#ǚ\4zy*ɤJC:lŝ$trs~q>+G%߹䗖zV{C>N=[ [̭Ԙ}2ؾ*I9(YF"] vN ;0. <2畕LȪrK}y VV@ Đ{۵ܙ{}#\-)*(,ӫ\/ '="uAg7~*[5Qn;zXt- |_k|y%dA+NW@,D dT/=mP&eW&0e +e2L<.g&c"gv` X :7m0mKn۱6lN[b|4X{6,loF5 jU_@#v0AUQ"%'Tm"cѓr&qR}uJOjlvX䫯bU-_wH\nkxҊ+ffi%mjZĉtI,TLYߔa[4 7#.|蚆7j3P6_r?`9zAWaFh`,fMBP0=}d"(k1zŒ/y l7юަ6y mǓ۲/mX| l4ka= 3#U8TH.@s$aK:9ld( 9ȰRJ%+ِTŎ"1\A+-I X$NWڒ<`0ޘv ' CG~¸ӯ' 4B?Ō_|gP(syM~>AQԠ>D6W$n-.PlN\w]O(%99NMS9,d Ɓuŵyxy`j6 kT5W/kBsNwd(* 0((Q$aғPC RDRr K: ˣU:qt(wgʲwLcGWKv٩R@<N2ag @g~22!{ږC)iF< ,cLy>FQicB@> vpgD|$R蜗 >*Dh?$=7 r찃 G8n@ۮI`Zv$ J,t73ise*$|MG@"ӱ-xQ_7l-a!_lOVj'cC.@bd$9Q8B5jd%!EdYtp (a*'o4wEl)ش,ֱCbc]m5"??, c!ڄ|m qhL  #Q/dĉ 5#`A\`zsE-_\ 8āqAؼ~4/>l| 6y3^7(b|[ۣ& Q Jm}lW8o>7/wuڻ^+ /8x]r*э*HlFp Exg2r因*)j58~N1{>2K>Pl> iO\<B-[- ЂV--u[,# E\܃^r!i0N5"MqX\$^_p9WOSEZ{ZE뚩#yU}̹]ͱ]9L]5!#ϗ]"$#k"At9emV6r=jU2ᭂҨmm`^)w%WWE^:p w sPWsyŲ@Jl- 4 ;;2*,U;`E1X@0'2]CEYK[Y8]+X$٫4YLҞMR &K(\Mx(]ZK}xZp(p-Q @B(+؀ [u[-B+b[\[!D{MaՅ%[hKU\8vipcl0P0R6[#7pfl9 ٪@E˹M]H9VKޅc a-e=~l2:؊Әe--Wהp^K @fd6_s I +`#8UH2ɒl“2 #YXI,wϊ 6~͠UR㋚ dB95P50]1 kم9^m{]MHd=2cDL2gm#d~H̲]5XH:en W^].WE$L 2 OcH ]2KWq ]BX ػ8&`glB'-Q|nnge6z*H6Z#de\^FVee]6^r^`Efl7mHzs::lXxש ЧCqm39XɒB5gY,5Qx~gImCknIJƓn[<&59IA?U{nȃʫ=-o\BV`]X7_xnM2"6"_Ȉ!fņf2*l`h^=_扣6lQ!  7?Lq ?:`Gt(_ E!*7;Dbvt.%Rqr'|'2h '3rbj`tInּQu_[>AAi<}KRdȐi6pw 3@~w7p~'>>7v[8wɗ=nĥNñ'ւ]b=xM_kWkx5Nص.VցP„D-/H.BZ!DFpt E9үZn ;͚4٤(gNE>i*2͜"hUTMQNB+*УKCYEj+V?D GROE#ʕQEa%E]u _U~Uʴij+KƎu4Hנ®\J\-aYJ.}fǙg|r֫W.D]TjFFĨA'&]K>\2RU]AOd=X-nj bdꕕWĞABs(5 #-sJ )\qŅ^E^h)Ra 2b"` 2`<|SRY.h$fIc~gؑnYnn{Z"KJD:k0 F>(s b(^0iD1j٥Bj D-C juTX#SM/@2,O8#DTA Y"q3HcuSH1WLF098ݤ5tˇFot JU@p³ 1",k̢"l\Ĭ4 r"/̂/2ʀ Y-! - ryay/+F%SiIWcդ15)}PMJӖHJ*̡4FNBJy"/s{w'- >́ Bw`b"`爍`N>#8ኃOi;a8nn!cheC\N>}3촠1EpK'2F"1[0F6:aXC UGL(_@w#2qj/^V7NЃ@ars*8鈦k}h֘Na}e RB7_[Cq!gX ڸ+ (pjrBD( lNpO4`At>9bT[Jf{%@jˮTM*P*r WM($: T}f'vDӞFmkix!ԩ7+ZI05$&&H֢SKmj abQÔU؃0U K` ei@L"hesF#5SLaդ*J1P,ǻ1_4ABbFBlpZʾ5`BD$fjePhd ,.~+1Jdpyotdz[*2ߠ)I 5 tha앞YnVTL^Ү`,CQLm@IO/L9&m2Kzjr5Čn"*"Fa܌Bhw2dĻQP4%HQ>8/ &'aw-% :K]&[7vyfnۉ>Z@dMN `(Z7rZAfKnCcb!L1JXwJgs/by6gQ9 hg}-rH%Pd^Z3򁧏3V5/\1YxqnsVB*\ze5Z#F~F]|aFpXMHw?FIݜ\(P/c$A]L cA'`AAAC-U(E  VVl`u7\9QUg KGD:9r;.#,I,„(ШmkAZ)QQ-B@E+b-")J Բ֌bm f2ӌ.aG ӄRZ#l('5 -2Sz|Ryq ]^ X5@tn5 lj2tn*Rpp@2.ꎪ@tOJԐ=uTJup>J/\ڤ ψ^ppO2b(rՏorMߢ 驪'm+^x|2`C1)MgĄ&xf+m|.V^Rs- 7jF =(B~aȎl< R A RȺ0`rVm a$Eϧ|' "-c~]u_9C P&ׂ1ڤ$ZK-8( jD>mْf{m X^ Nayb|A&-9꩝eu`2 W4<Ԁ ( 6f`25u`2tJȲ,A-GʮЮ&/s2JMMpIPAfAѝJf&MM]8k>VAXArx Ii Nw͎uI Zy9 4gBF̝ۖL!g' &{c{h|| ʊ NgJ7,KA +E o64 g, o WlVbN+  /Ǻ+H} ~T;;[˧ Qi}t^#XV&Oqqye(62d*6)RյX٬mgI1' ՐRbziGeN]36=6e]dNv8Sݩj)l[)A@vPoHBpwp$l `bj4HāāXt A2n@30kB%&Us5 JafOЍK{ !:5@gozJ=ֺ7w |N21S>3E-XN8|2`#3nԆGIa'݌2(P B p3xs[09C\F/|zʧI=:hHQtM4KO,Kod4VKg`Qfy$x6yfѕ;PS(uB޹ک\fC[vwճH ':caw6X%c3M*8|(xzjM(*.)dȭX;!۩wWЉ;\kS(f(A*[*^ Pr?,SX%%XuOySYuZy?ʍs*TZs{5׍| M MG:TtOMe2DIvg Ww2t\tfio҇ ٚ B;x1º9cӼ#BDA}:;q,O [,+}}PTQ[53=KKnlקű׎q*ʇ|(YӞ9qv붆e9ᨶjXvN.qXuow^7Sv(K2tWe1'1{L)-me6zA\A |A[zx*Tq\Z*Aw&w l&r.polAo$hOJ;7lI?O6ʐ{yP뽗z{dPԻk&9)-!*hI 'O>}* %b|xB"C'*>$ODL -tF6-cTQ>V*U>/_r(ѣ|"q 3buVv9\Kجc  N^:;|0`]37f^`v@Z2c[mi14tkG<1l؎}NdN{mQEsZ{ܧ0\ʴO>a!BŞìZsl qyE*@R}XsHcF$jԯ?5>P@@3r! KtA $$ N82ؐ ?2ʨ 0LL))GR E (xё/TLl[zGcR2 R/p' و"1jHKj?˲ɖjÿO2j(CC8]:Ӆ080 a94 q 3C GPCՓ=4tqxtKM%2ӵua2 U]\==9ĎZm=Ľ H*!e>1$H@{0@?r(dA`JakppÉC5Q>VEAVtEuW,D*.eaaę&Ra~9fzؠ؜g xm .E"u4;Rk\cX3@s9 qy0*f9zRP>ֳ쪓.;DU#EYCTBpBB0 &{A'`D2 O(C 8 N M@0?(ı!U\1qI\(|QJ%;1bԼv.\0ix!l0xӳKl,)L:Rh{ <Q?#=POq,UCUUP uO]~zud; WR#H6JICJ2r'8{ tCr= l sDV Շi. J"Ll +s'l!B- ܅o"@XQ8iČөQ SlaV&g &ͱEJe a4fZW^LiTt"Xg:$%W8: SZAb*77}YO,Rb C2QTm;iFfC9܆@gRJ\8#T4hJCSY~)L$BWJ'Ȗ4}rVdJL1lXM~RǛ UN.胬'Xj{^o=?iqRA8G~bjpO.oB(nU* +z`[E[R.t!5J͐*g ĊDL5}kO!_ $~K,{|bxAؔ85Ud]謐f0\J<0(qⳌ ƶ3"^e֭)J I rӭ # MucXbiOՔ?q  ˢi Jsٷ'0R%bt*y o1k%,p|~K?pP~$[G#(эLl\9ml#$. .qr5i}`rNqL´lF P vpj\! v A!׹fIR/=HFEQրG;\1],PGl~s8Tr.*3D$(1A b{b2>%:^Z!K`RXebӊKWTT(e.ӹ}Mg'R]pLA9t@At |`i@ %s5NTVҺ+FQ4])e;5-VkI΂Ļ~f5SQڹ#9oB'@ 6^w \}I@U pFBlp|h7/aqt&d83'~ WcA ys'mЩ?. @u> |ؑl V`Q"GMI 0xΟ.?EQDp9>א@(2|\ͤ4G]~KaD֏u˥iO{Z+u *3ISQKśV닔J)$q>d?&rCĝ f;,AGBG@K LD*bcq0D Jz˙Dn $+08  ! 0AҐ  >#`P8 z !;EF~AULejj ljT:܌:>;hbYmXiuXH@H!A! BH2 ^B8&Rgc:Ch**hM,3(f(=kAblR,> >MΉü$XDhN@lZ@'dr@9vڄ wn N,8.8@ A P@dadd-aA-Ւ@ F‚V HoRi2j1 Y0k !I,AJa**h8HΊ2o4fA(tEnFM &gBɕFd#aG$`@@@x@ G ZcLh͉,":TDH˗SAeEndr<(KDj'?q@4![gӝTL8)0IVP*+ 0K 4LT,, N\ n"@tVd=.N_O+ Oo i"ּk#P:r3SG .E-F'!oP0 KfV(&Iu"(XifMB 4I)4DJ9Jzn ,4 Kɴ,4rM,A @hoFSzTVNGR햯 ̔@BIԺllFoPe I3*; wJF>TCT`vTR UhVg5h5"Gr7F;mʰHKn T i# vh*w ;% @2 W.johŢhV7U#0BNN@p"""0D"]>G!!3T^_sGdŌ{2@v[*H\lH6򯭄jH@/ )vE\B]6:eW' %8E2;@`d&ˉFk`B*=.IrTi+i2Դ--0k6">L[DА\;R( Bsxi%VF#שd,dB<"e}HL'ȸp)d}AV sHR,V"~eÊ-w:VMš7w#l!e`0Ȣӎ7 "4.]-յ@y^YA_͹GڠJ j rX%^?\ &? @QDa@$KĘb(~t_$ SguDB3x}[kbuZg>B.3B8i.颡+9 A!.-e% {4J=Nfm;zI<"mflڃn,>H זlI\ pr˃n::ckS{jek !<sQRK8> iG(>X /$$,l%$EªKd5)b$om9nB)]5$?.*Ňi+,4  Pdz 4KJg\|bF,Ȋz* ,3<`h H[<ƒ6lRm*D'mv*F 'A $:88+Sϔ} 2My.2 iYPZQI\TARZe(2iVUYll\,#&zQ","X,$pֆ ? Žx`I'`@KG~d& ½;C,M2J"SޣIu jypd_EGdcosT$FB%ZᅪǦ=ubA?|5N_%@ML0Ԅ!,?~"BCz]z҄ ]?*CRP?j2h;N$!akCX:CapLdD JGai! 9 3AP1 ?ԘhL'8dȁC1P!R 惒?%8q?Jʘ0! eceJT8K^j{B̆Q87ղB'{n.z) }_$>Up2 (J s@|3Mb dԈivꏠz5ֱD%A%M!XU9'YFikߠF-} )-j-'DOJ~=)Yw%Y"{ u| yS7;8Q$vva pp|`ph сnp"~S(D1sO*i]]"F(=7233)a#Ts(C?C~%tN1'OAuUMcHf(D"HG1dBbOlh:QN26$l4LP:ѶVҕq'ֲ?V1<`wr !\.?.:YYbu[EfPWuuW(i@z4 Hi{fX`DF@1C 0qL;c\tPtMqrja߈?x3%%l!#7la2FV5]B F0?wC` trInp@Aj1"Ypw  )e,/yA 5)/$"#$/b c` ??VYU#dKd )"4x 5dT*R:1Q>_rJ/,l% U+jk|.Ft#c3v5-;3>?+?z6:":(3[bd2}VY5QUTe }+agBVb]aTP]T)B9hY*|:P`Qk(t# ~ MgʺWe0DC SF8=9Q)1X'10PEsEũ,8 ,ݻ x ^E:(0PDy00Th1+`*u'Qus}!l%a9Fve"I$ǰ k0b1)&rnp} `?!LLpD{^X@, w.,G@1iA@J E% fU[grJ pP`k `[ pǢP y c ȀLh)^J6RCRox&%b_=hiH)c8)\_8kQ*땷YzyQuU!P*Ƹ6=“aC窮п;̰@nj ̼[.`; SO!k& #̄I:88 {i᫜IϗWWW EpEuEۿJ̿w͢GWB`j< l)D ;G%aF!&"ظ'jl@_O,AZ 1 s #R%}I9 ksБ^텳ģZu ^LH@0^\L^@ tƩpyF53>b]b`-P xT[c6w\O7q[bLcm9uUX" Y茝 / + I@I;ȼꚮӌqtYoO a_SAu`80k){~i{ >iYE6`xE]ٽ }t0ELW"NWc1.SRxEN(GV1GL >qbFn^8^s Y#Կ:}n8} T6L<_6՘/MM)V|(_/_3g߫;sNsEal/8P<0L  Bj ఍ヵQDĨA?A M]F*n б9肊.G!?h*J*&dJ 1s:)D,H )`4S$@'j'?o )Q eQ(\ RI'zӨꔅ \2.8Մ2`iGzT:.nS/XKCZ`;/8\ñc0@c0&oGA%l{1: 0L2 @QWC>n[_RJϷ$g9aGP])q|#fJ,(!3\ 'PPpxa,\lC f9/LL* VxgBhKe-l+J@18a,_%},iAV0H-%6..j㜰mc[v808Ӳ5DeClgY#30" aJfǤbd#[U0:St)'10bQZ&VqŧI[{eR! T1኷W2P?w&ԯ npC܉ ˍh-ZU3;V"m3F|իVXRz%++T$AIyi*P< m`W"tBL D=荩(FuTQ( PԤ0&x@D,bLIC^iI5OqEO~B> D`P*Q,T, @HhO" RHWc ndH.V2"ih_m`ۃ .Fh+ X϶qj YYGJFihvxKm36Qhv m] QL2;t!6'p ]pHbZPR6]_\fծBҕ~', R9n֒,m JWIM}.8 rA*NS Iq Ne`VTFDLNҝF2.H΀6@SK5IqpS+jQ*rt- 8rI0RR.x+OZ sSplZ-I%*B_Xb/ItX"7bq,dVa(hMBZEP)TKu?p\7eZl2f@|9Yzٮ*ߣIm-hme:ՅɶH9X)aC.WTSA7b=~0$,t:1GT›X^&,Ûٿ&4g"hC6&̈́[_WwFEVc/L[S8pN. vnтpӼҭP0erLjW)c FoGW *7uD^tJr Ҕ:Pޢe=yO(X99e)Qu}#y|jV?﭂zO BT=D*uU;207uҊ WC7-4(hs5Ǫ.tl\KvkԎ u$Cb3 Ʀe $#Zka_ ;ɡ%1̲ aMn 儶  {jQ0Jڽ1~   ي9l7~8Aoc lbfK꟨v* lR; jd&oۯqm8JΉ'򒤸()ʞqry$؉$(" :s2);B(cCZxp ?k3zٺ"uA'QA'ذ.貺)j(<?2q!# 9Iˉ3"3:[ X,Y,#[V[ڳ=RU)#) 飌#jFj@h[Cxfk Kh|AGDpbjbHbY$$[t ۘQ3^"cS˄Th@ p[ x9ʙ3Z!& ъI8:$A/ 3b8ܐnStDt8ɜ'йlWBΙ9BK!3s1K1;2(>(:T)H%˺|C)?i;@Q?c`*x{EQ!!(x- <סhs2zN(ACxUܑ*$8ۗT?(!P 9ȃ\C=bc=c[%YC˰ljt|NFiN8FsTh˗pB0'PN/L?šb?$6 i:cL[i:Jkl"5$$ixR/ PcAMNjJ'hJ '蜑(~JK(i1>;1Ó3Ağp2m2 h 7K˼X̷L8M+5\oQ̵S3x!('IDLX: E> + \EL ri0iaQ@./jɛT,п([ U˷ˮ _=NN"X >0h7ȗM7 `+w'`cўBBYPҏk͆ D 8W  ۪k; QATl[/% X#Q!EY 'W XR|HPr{X&Bq fiK.}+UZ!+TC5섚Ki=X%sSDy+3@x [#5=!NLqH!)PE%/bm闼DQ@q7cX@W%ze^<\<5Y۽)_.fu]j#eňH~,p0 m] " })YCBM9cs J"I8'(Ճy|j!T٪m/#lU"#XШ9"h0չ ,:+Y0xBy<ϩ9oʨ| % .Bk0k1!!PTVL K--"1'k&@ b=% )% )!P&V*˓Rs¨( t)DT:-Ѵ;Ԫ "/S&bjh7@v ɸ ~չΩ .^jӹp AS[xT%gʩx(  BydȠ+̓.NKsA^&XFF P;)Cp Hb:cJ}3 5M1LO:%; \٤*sc{T %܌ɷd ]Md~d̥=w\L<(U"0}K]SiC%%_,9e6Txw˘[3Ȁq aRe`O%ʙd/Dm6#1_&SA!iS9K+Jc9a0R۱ޑanm>A,):5cPV-^5R`6XvΦY`׾ԙ'ʭl'q6=`WiP+Sp(ӈpҰ|ҠE#9"0-BiIq6&$,PghK j6)$K$ց$obT"cӵ+czX:4n ѳN:Ld=%MWP;H۫\e7?̪.Q%[p̘i=GȃUL1AWt[(‹qmhV#%Tyh;*tOOnQ q"!!0ΉG|cB? DEhJnԜrf`YoyVh_>rCR`ob :܆ՙ0!3}Ǜ5)9*~t!;hxoR A p1iCa4hioV@q,Xxogpq8ywSjW< )99= $7"ۺ/vįV%A:$b\\$фAtIkFNݬ]Ĭ3t["ߢUeSi>[>Lh=Msg,GעhlO O`T0ńT&)I[c~m_~%HRB W9hx%F5ԠJPFHbA~~H_qaA b]čJ| $!}q$/s(/G:dJ6dXi呫BeZN)U:D>7^ym"g'h'~^e]8~H% z"X>hyThy! `j@4C*E41hHG *:  @L9tP2Mt<OY٠ vג_G_23byXv})ZUbC%[袃~%[be@~p&y&*x+v &UǞ|`~Eߋk6Ci~aIat>ڄ5 y3{X4c%KY Qp"-j;N|g1e'j R!G,6AY/' C$ #.sbC .Y^ .zd7ġ_"]L2p3I 4ˀx6& OEE0^v;*3l24LZROl4U⩎N!%-6q m\֖9/nёB2*SrP{ǞkF}C<[P8$F/T%qH2Q1p|>؝'{S~jy&;Mn܉Ιma@$P;Ģ-PMKۦIA?k% )*3B>HDV{_+lՑ\]pQ $8Ib2eM#ɴ6K&7ɳ0\IXn)_<O xA\bx0<BBw |4$214N)F&4!PEYt(+^18S!F氌9JW,| 'PiӬc7(:0ɩ6Q‘"ZP"gmJ?ҝXjy˼ሔ|KeSneKh$i 6:gB1̀0T]a7^ЇҴ(['( VT⦟xSTmI6\(!ӓͯDuϠJhoӂ #G %~" J&L.~C:Ҙ0ʺhP) B{e_!Tw^W73ȮR(ʹd)+y1DK|nYϊ̇` `45Lm%_*g+qVdWՊ~saKX )`г_V%l8zAC,Z j(|6 Nnd!ݒo-2ylt#\p`@X謔lԅnSi]9TVS!};Фz7 =Lҹ82Mw꬧@IIn \ޝpHT;8P G@2=ha Uűk\G(b %.@Z$ : %:Nl`l(Y/'4Ifq9\qI-d:WBiegY˘j1 gC ڵe2:zl$ɑ {\,R]E75{^EEBUO8m6yT h R/|dzzz՝HI$dޤ?c'\Bȝ)PwlŇ}GY %}zаWXu,x; gG;S"hyGVT .?` $ IU@0 l @ĵ`hQNlP J GF˱4Ċ9K؀R$Q\' eҰqYVew@YA0N푇am`5uH=AlPwŋǜkTY 9tD'!|B{c;JucB%ṬuBx'x&JX>TFTnzN\D-B.dlBB AAN\#dU nd\'7R!IG{RXЈ&-\Nkf Hk0P S)H֦O^R5ua(Em%zLuTx pFFIx\v] XgAZ^"_)_cA蛹yp@PB)Q[` $vH{}tӰ&{fk,|@!AOb[]&"""'"穜u!v&Bx@B4V@>x# gz' }kDm{*ଜ}nDehvqdh't% Q(mM7y@] cG᠓6W:%HXH bvhؤ,yga U9*0.>{eZza4m:BjeMܵ]Wr22-)݆oFr|P =28PBғ>ϗSiZh]B6X`f_ʣMH~߂)B -Q NՖ2&Wm,&zv2 xD\j/*6b@Ъ$I9i: A#_urB# `0+ BJ= gD]?b\ k}ODU`ZعΊ}"yy*K<@'$\dN |zX엮Hؼ}ΉNXܠbhzadAxNMJdJRJ8E(u{Shn6W>2 Ξ@ٌY}pFhd4fEqvX-=] ׆ڙB(.KBTdeAG ޒݔIOIz&$nɈ+e|1=_iJX4*{$R׈YaW鰎J٢)SoΕxx. H4$)l (/βfk@+"A5­|ı~ok'@@Q,GXPAq+EȊ^ɂ٘M<ij팍;zB(*14oO^DXIHt,8쥴p pyFo4艐UwhxG;dC3y0'JsA$#61QA1;gi=ף!ZK6,PMv҃lRo1 h{pɎoVoĦ*a3NI%s؍xyZHBiIhcD$A0AlgB#ٔ_~X4xBS+t5xfZ׉Ah6 ̝[eUiZbWY ӶSM(ለ_1\B1y-P^>Xv}wKzGr_Q qS܉L MXl95l|aƦZs9[&2O}%A)[tY#> a9҂DHLhi(Zȏd܈8*PU5ʐĎ|LMW@T?"Ȃ &" WJ c͊H?+^KI88A!r70̏ 2M0Lz$P3P.IHH:ɤp]z)pŒ0$*. op I.:*!s4ql*MH6q#-)T,ȯ/o,[!+,22KX/W .) 4Co *`4jMRH! dh5`+R/nD{wmƈQj~%C}n{]Qq?]gZ%t&E/pT蒙r!srE jˀTDEP L 0u4HsH5F !ÌMmt# 8)TƲ\bG?QX\BA *`,GPP@F ` ҔL>I,d9njQVu / ӑd,.9 HsۈG”D** N E/ aDzQrO`)`6PqN2]D9>t#Q G@6g+eP[11vJZf猩/(/q1Nszzǽ mݎ(d!YVD<"^ W#V*x(bЊ2P&4`W%$I ah4N )#d}@+`hKeKR_H%$H`%AJ؁P ?0B qQ104Ø"9Nɰg<\m&D\%wnƵ}jP60c2io=#.1qK37ڱjuއ~/X&")L|Წ1y#54O y;;IHYHes 5gTrd9@ h?"%`: 0k&S*x}gYEDD*`Md`=?5%(?1u oi;!l梕{RԋFP>Yz-(ĉqVmp JE\8J PܿCXRmY.dEpzӛv@` O "60BSOSMTL2,Mih@E8#[KF%@[* 3k$̛=T2G&v-hY/qquMwj2iD1O~ܠ0,=Dpl\7* `Cz2tȄvuv7 Y:a] f[89H"zo7.p}\E e6%*#7B;Xݐ]!k 'mJ p BۀOY !I \n "f.`lnNlǀ3@lc4,6bd0l!cl H:*)mcwhlxtM n* ϶H(>f(E'eQ2*nˢNJ%Y<@PJ.x 2!0>C@ I q 2)hZECS=c+XbShTICU D$o|^Msh+ N Re :o+rH⹶J/btLщBHxp+*FA!`Qgn#zB=୰0l2KP AidB8A93y%8%dR6.;; W # S33dL@ŵd˦$XAWBmíތZ!s.`D}_ZnEEѨg EciF / 7N CZp^-r:l4 \ eeI־J,tLJq$ЂtD"Ddm3Sc稍6V?E>)Me_kP jK?QC=@DC&оzG7=6+dAAtzҧXݤ-S'+sN<r#eNWAzp_v<~ }-b#HogNosE'$E&xzbEFgS kso!ERLJXsQM;:^Z(ŘVXd=%_YՈ y\HA z`p ]Wl U2*ymBٯA9`=T `KD쨵|(Cߌ`$;,UT|#z%>QXx?$#d%!F~k1`ZAfgNg;ÜIGRKJmƣhjlo]:#ưmbA$nʈl_̈Ϡh!#&ϋf|ˈO5e&;f2󈯭k eX-GXZ$E,yέjq u($פƱI\3;> W̾ 0CW|M3\ Û\{dG-rBGKdrl :)Z"),,AGMClnhfl'tMs@r:vP mOlPһjz4DFîoRbnaB-;(Wk@Xv:PGDtUnsb-SPݹ? *L\1ťSV%RƸ+d=ܪLd_`3 FFd̬5ȱJc`99&% 묄pίi>{|绷 Uj|ͨͧ(+tʏ_15V9DIIdqT  ҭ-{TLJUHn< AqJ@;nڰֱPo}b %t݇Y`Eς׎#^4϶hA-nDTۯl~3"O"RS׫8۫ѐŦ==I%JX D,[<"Sf:Wࢥg :`~FfddQfCe tղ%;z!#2 P>X?C :mQJ2RU$FB-Yne!^}ZN)`A \lّ^V_Ya]" @%ISqefh Yݙ&iƞmWE΄횜C tPA*IJUCuЛI| qFLaoBJ:}A}XM! 8^e`D>uG>X`b'X" X5xw9 F. JFdMFS_F$U)eqde.f+bɦ`)X Kyn‚LE۠{') O) LP饘j6 =ɦrjڣE=&5YCns l$.tnݝ96OG7u E/oS,xåGi?/G]}SN\mdI`L=#>mUӟIo$Img9 xK@X}C-i- "U hc QxNQ"g/4R+RBPa+G,A 70C07R7gP F*;˅1eiE(RU:eR'VafgEYR$*T;f@VNXuOUuP'΁;834Ekh! d5cwbw6w&!Ć#fIa,gcSZ9x6[ yRMb5D1Jq1qnp_q$9dk&z:oKlVfl{m(&|bM{B^ܖ)>h=weX2B24a}Nu4Q#5=^gAt4S,f`Hq' e Van`!vq"4A~-wXw,-VJDձeG{BfEu )iV Q[7E({GvU42V5wr"Zozw+75h,S[I:FyqPXxVj#A?Q+} %_kzhK*Kw' ldFD<Q)ʣML)_|\VEZSD_$_ } Tckv>5a-4𠙉X/Yw#bo``-TтQaZhu6րTw(!s*B6Rh 9p 1i=1/1461_t9hőYUQhcf^2L)Ygt]buY,Xv AV 3B3k,B@ jCI#73RY$r,:6jN63┃XǕEAN" Cy'0 I2hjJ[v&o"\Kv9M(`]b]f[D)]u|ş&M^|\ăJo}Rc_==44oU,)-@r-@-ђQ6Wgה[Bf S ک46B":1fRii<0g!EHdzٗ[UfQ(2<;ǟ? ?Kc F- BĐp+s=@4d4rz終n=I~CĈ#񠚃l'U'3Tb]:]yb)Gݬޕ ? Cxb8V4VC6?yP\?ÝՄr䏊AIjv7ZKqN+$4$d]mv2S>߅ma*R'V,e^Q渨K])+yNcvR_Kf dLByUR][` 6P],xDup{U} ꁲ  pjC +1sCzdNv#51>u.~.]kAیn/A3; 1aL&(&cXh Q;]8(nЩ8ܵxP.Uʕ-tϵaYĺ,*i_ n'cl-=3 #Lu+͈6_×mT_p0䘭#f,@lSK䟼d"{DH2;'|De/cp kYe" g f-DsҼ4Vhc锃AmnjjJY#KGd!h Immk[ܨ'͍nN$w8}reĄMS!c9pΟ4(͑v"A4 qԢH[@r0hv+lr$U*eTDEQpZib+8" \ҕ/gmBҚVa bx iH#d,r3&P,i@(BNr7 )[2t+&e)c4P V _@v󆌹G( Ca cրhI)7ei%V)) jfO-C"eR)hM&;h9#kp呌$$mIE.rnj= y\'A Jkӧ (&CQ \:P@l8괪UzQF[#lE]%;R*@ԾEDCM |Q4RWo˵,/^#>lӸ9 c Sqh c]_Z‘(fg>)SCK B6ɀ'$of 12a7qcLjg'c Cbi?YJXZ d)2cM{qa2|*VmA։R"V&|R6d]ZWoF"l+CzKܘ&(p3d^׺eAay_esS,XƹQ#zdVz>c8RdRBM$!jTPYtUxr*E,)D A)"tδ.Im":1c57*1twI`X tF5B˗C-VM6Sv#˯~:D EH7? ^Os-RjeIYOԁ6$ň4І-j <[ -K-hahO7MˡPbyưPRJMj:YF&R[N%OZHfHcS!E9W. $0c3vc's+0z$tfʏ )Y8@' P_?tlʣX&/ _ySވٞd=♸̉u iIw0J$QȱXƾټ&[~X-V'Ћވ.!xk -^l 0 l;YᄽR~? J.M!)1e(SHEIՙQ {#{#Q2#)'9;"{̱ (:?!AY7(8۹6{AQ1K ֳ=%*:iIP"2!i*?h`4F ]Q2 *"X؂ 1S%)8pHë (ūTK>h&yS 3` Dː8bY8ؠ`֠ Ԁ}{J 9 6 \ '8L$d$' *㋷s{b +#cL McdHh :hpn?i!Y, Ӑ /dۋ!袝PddxNhG9B+@@4}+,?Ad#X4HH6+*IK5KIȱq9 7x4%& J*p!@6 << vk<75dⱎ jIMҧHW.8jIly73TQJ;H=ʓ ;R5}: (,l6Y*Zz6 .10SKxS:uL4u;H8CDxZ97S L6=!L5d M)M3!.00q\/^:^bV4?1(.r m,j*U*Af#/i.!^U֐daEd!:ZT=@{:-W]S թs͐t-* {1XK^KhѦkuW3Xň ( 0Qec++Kс)=UBȳ$ 1Ȇ 66x:'3'ڠmZ94=ڤ%Z==D=SA>?[,؎D墼h'[trɠM-@Md"PD,WBSUU#t!i!)οz>28G\I Q^ϭՏ-=UN B>OO::߃X;QX& =MW tԋYfic5juEQ) e@t 6{ %Z>؂K 2!m>٨+RQEKYS `.Sމ\1=0]a9 a5ZeӤEZYY< SLPMZC?sFp ۔%VbtWCXı-5`c8% UNDc( cBg}i+] ;Vd>dM+MDjcD"X. YI]@G"cD pX PLRa;` 8mn~nfuum(lZAa[xBR ,dwlM 8m Iwє2ԈЬ G+*#cS2RCN$DM]$ks;q_u6Hj~j}9@TT0gy(q& AKf!OJ&jxs_N?vce('(q23}]6XCA榏٥r 3U*؉2-'L;F{Z9L;M XӴGZGu;xڧManuEuav9 oCŘ rq ˏv)3vxx 1ޯtOj—t+}$: cqjJ+7PDv:j~,x]:M0p /^p5J̨ '@j7FtWwF17þ/q tÜl*x pҖ )Y"d@BE<Ȩ G3 @F6@2 s nt˜%5zedE4*]#uT%Vzb ^Ala=X"\tvg,`|bb9Yde.fVd=Lτ&ifcsuR [1Q$s:%GFY]tPq7v߉=٧}^|+qyk~" 6Kد V 8:h`V3 *-bo)"SoH5bVAevP#魠E͖@24QO>"VZڅ䏋s\cRcry\ :`EA%`<%(s$(0T6֝$G"B7`n!qXr ? ]A&`Z!zhe/c& pl%+\Wſg35RNN )ɉLkdAnB,еd#QB!T"ʕx^biWBض>Nz$_T>| ) CJR tKnEOSSCIA_XF,&QRfh'! (4>O$Gu !q8Աlˍn('$#kGi*O`LRsV Y7w^7g-;1!}У4'y&t%ѕf& l~&50nw7A'X_fhfՔu[@o" &쎃8)7st*7ZHa$5g?չwu[kO5Y͠&%J|z"qݿTXsI{~ ^>#kQM?)Ս1wɅ<&W$d.D (ٰiMXdjqm6EfM l]IFD(܎Ak Gp~`` ZՀ2,)20b2Pہ%)B',B ~Wɚ ,Fd ")~W5ޭd᜸cq B<޸c; G~Rn|]VwT~Q I=Ȉpކ}""%'ۆ[Z%ZV!&ƥ\n"Zb'%TeXUٔdHđܕwa"VGK-IDžt-d.F%2 L&fQ87V "dmRFJ&ñ,0IO>?R2 puE?& (l Lh8h\@@)B1P86 )#hC\BE. 6svBbh!HFTyd)Pn I~A 歑LqČGT2FADPdA H^ey[%Z%uͥ%]rȎh'jb_2i_)&Lv\ZjQLf΂$NNlDdq5NmΜ.Х΁4jj⢙lflNJON9LG|(+jrl<`qbOq]1W S t}2BNh8 B!\A1`AB!B0PCl2(%y'26 F0$mgxFj\wYm0+\a== Nj^%aRvk+#0ah|T#+\公X%*, )]he\h%%e6^l\V-q%`Hb>Nx鋎c*RLdiX (i $*ҖNħM$\FY .,udPd,Zl6o&.mli,lf`ߘH˂!QV9Ɯ)U1f%ѩ4Zb#&-Φ*+Jmaा$L$C @PO o) -`-ڰ jBzjnE>ozb  BA'z6 8aFb#uqqx 4znI[\nG~tGvdZ\l[=[\Ԏ i##_D/ uO# % S p[#:o(VC2f\OX[t2ZިÎe%2RuYvU9Ng˯ԯcodfH)1+wIHc\v4g?Ø[X.ɵyxਦbMJSݒ,m׶h)@@-B_@:ҭxCvBq*s/yCLwu_@\)0),{Gk: @2'|m>:D7q~L ǁZ&.luP11X_I\ĈZ_kxZbKr]lNo$;WfpugXWkhlo"8&cX?X[w'WXKk˒\f"yj5nf23>yfh=E#0ZݯcykvKy˼^9|Ԙ+J)a"U}X:mvBNrA tԇgvb@*s߰s;rzz)w׫_g :7wzaȏD\BwKFƉIUh$FYJ⠟H[_x]&b#&b&)fZ{x8[#>UgPex]r>h h#xl;-c!Ya_v-<,pxςfhr9qf|ɉ<j^NJ-eI(Q,d% BpYq@d80 cŊ)"@bJ8vQ \(TAN:$\LuƎ xjpɚȂm9QS)ʘ*+մ%t̥b[+RSc;;VG tTٱk#o+СBWHp k6<\Et.(``ҨWvlh}wڱcݻo}+[x⯙NzBt,XLx#ХOp}ۮm~xh`;{?A~Ld<00`a!L0+t00ü ļB˭Kp!Z@ qm40FEq' z HI%N镘0EbpN8G2`-5E>9)zʩ Fp+pU.zkcY9|1 @1_Y¶lЁ.8{YLj ls7fc\for/=[W=uN;7@&@dZuPX2 CzHMH/Yh& lBg5S@ F ҏ )IFz mP@Aծf5qKB0Mp1DMGjshLoAJR+-BIJN0 8JHSL㨢 dRu5VqU;GGJtvf+iJمYΚdTxwݶ<}=k<@:Б Աju (a0{@Nv܅.iy ZA!ft)Q0Mhx M3cA4h,,T3)Qj34C1l53;Є}mF<@7ԤS(iݮ,%*TR+\%HGF`DJpjR)6`j`\rW .6Vyscfe2E$]Fs-3x5~|Xq'.z'W9۠Ck.qy+,{ZJϗfi^/a @P2,`i,؀6Њg5"Ptб#@dj!Plf9b3"/}*"+5CXq5/m؄1mgsSI_+@ ,($A0p "#>-G( U0A9nTj.z*m1DUҪUdAZ ȈeƓIɲWcL[Z?NRYd^G#JS xDJT6rBy.gO#ٓgԮ봃*C(*AJX@f: l7y@6)QO+](gvܦBhPzIT=H\S0bqną.@46qUE.8܌]54 zWV_t Ю ]ɼby92^Δo3X46kd&"FF+g^iʎCZfBdDGt.-"6-Jd/@ nA Z ! h@h4hlI;ohfH0p6 p *6&/:A @%+4/>q>O%D\"Z"Š @Mbo'|jn qp!Ŧd` 8DPŰ*-1ʂtEeYr2Bt1.&ˏw\`&?F gCc d>L.r)hXN|D ҅{8tN7lL@ AnڧFX-I eJh`-֢"Vkf6d8Dz0ZRB@@D ibDvf?*52(cp JqZ `Nd| t#1 ,1,,gNRp0@(#fb'q,E&L `NH" RV V `l,jǒ"..VtKꤤbw$e1*@4Q^6Y -ԉVtY$'abI] gn]o܅Q7E37 :qU; k}ϐ\':Di6.d3Vh)$Nfdbpn/6@M&=iH B$ ! a ag$?fF@GJZ @k`=K0 QҤF,2-%L-XPLl/ V.#"e!$P"#m2q^r<,3gLCVCp'0Ce56C7keV4Le"o̖\8gv=9*u)1S1+:$n R^)@/b:Tg TCi )ׂBG fNNt!`k`btR@$5 A d6?!¸O7isĂ,Ue V $V`$"bN.,r J.F ̿VR2-Lho%tI,kFu" +e& O s8/42epLeV .(.fINErkWiof Dc(j̈jQyʈGR'UlS3рS;l6Ivau]KFi`ID/ZA@V e7!66J_s`pF&g$r"67# h 6sEY Eք`6_W\ԂkU'"mb+9M$P,` `Ab]bb$Pnz lb2m$&B$&I SK'ePWsZ~ex0Y4e4Tzwdm3cdnI:Oz6289g888 9 kˇQVl:9ul`AUٖ>=~lp^Рm#uVZAh8tBgO&5E-6$ x0Gb$ҤlB,̰u-d~a_W2g素D D72nM , w$Q` EQ?٘M0Vo|F/PO=WNtB( kl+:~-`U% "@ bJ(ܗ0'q:O{#f)7@%""Žګd+,+z-!Du`wsP.9y%HP %󚭱 2= W4R.I+hh;>*/$C@vDf';DN[ EpʏfFԒ:b=./3JQ_'۝cJIjZ T :V@X!A&&\ȱFX)rą K,v!Zr + X!>;P`s+-X94СTF`(߻ @ G C8SCl+0LB\8qW|׮}ù[2}zSȐi+~ڂÅ?<Љl 4\Qte!yFavew\u땸^{)T"AĨ+b6jcZx/2/V #H2b), #iapsyYexjZFCmL8`M 0RM"QB:yBPB D3GCIYԒKv(I*8(0O pӧEUNUTJXfT"U[ҪVZe݅U].֯,]fa",Zg-eeR+Cg&k%soV`;ܹ~WZ ݆!w+X]tt+6$2_0U.HI$#%v(%y(;hs "gv>*#Ac*⍭ri sʐ,I"i Lb[-2P`ACЩCiYMtTn9B6瞀)&CH JhG T4]@T>I^ pOWqbSΒ Ѡ}'e'3]Fc2zsF˙kADuBtB&^!8u.0bS)zDĞQN2p&^ȧ ^P|ʜ|flAl6Y8!Tu&n:wɢ̵QMr#P? ]Nj)HNՒPŽTaMX*.]U#+esHd2G K.^H}8ϧbs؋$3{:z= \("B\b2Oi4ht6k"Qv14Ձ5*PPr3QՂ `:E+#|^_Ee_6E _Tƶxsa҄=@RyUCSH3B3:b##O#!EAM2@X0b yU9rR5Hwcpb%Vjd"!|#);!Wp)x*K}:W2XdC~g1~`dZa~HJi~rmZmvs6B2X.Cuttbta{6"(D%u/["%u&O@O j,c S3Sk:%P`xGl̴wL.s0k_ xE%ywQ&EgQgs49?"SDU$7%D\5:"k.ThD9#cshbv)'y9&D4{o)PWd9H򓤃:KqWc!+PXqhJ+~ 0Os=mfjT2Ɂ4wZp▛ Ism0O.}FMti@w8 !.suNiܨ5iɁ05䁃1j"k2Ȃ u$S 2X $8uʹͱ6>(#.E^/8h2ء? !04bG]s(]_jkw2(O9luVy.L0.kd]yǃyO6^F6 hc#)zK2 i`N3X)Ayd>ul/S[4pK.4nl{7!z|0GstVxI٪'WהNIZtqX rX{E=J&y35AVT8pJThvMpf 4D:G'!DEwg>A&"AP?si%z"6Y 2?Oag2Ik]Da/uT$OԱׂ _P=%kEwvfB_5]w43w_| yٜSֳ#XW0SIrS5Ԩ?W%"FvBvS]JOvj9]"F QB00 "6%kJIHR$Hx# 1m i5Kҳj GǨ _M8E-0WXkL)̝B5ɪ9}=a£H1I8~ *i*M!z[97FQD"{7"a ws #! $![[8Zt("Fr .th3628/u"LJj˰ځ>ijCv?⋛ #%B3Wu~Y3UAx)F AhAпֱ Gl<"ELVj6jCǬ<)R1]; $͌-I"s+1,+hU*4sz""#eck%+2H/5v!?(sޭ @i*ĘMD%-S8^"]FbCv~%U5 ®|R,>hB> !>5 HːB#lGC'ŷ)/㡯Ir;KΫYqٗqTFRsm1&sb49&nZ{ q(:'mt[ʤjg3t42j,2CMj] ^L Kwa 8ta .@0p   8,Q P, C")0<1LBxRW˂ZW'mid 0L@Wܰ)GeT %>\T酭+"Ȫ5i+Zj%+l֔)WheVmZ4L1ň2 X AuCdI4`3͝=h@ K6-4[.HvZܷq.#ōVq h3_<:tɩWwvɫt 71a,O`?|W@w}(䤥HZʠ";˿Mhdp XFt@Dh$"3#)ƅ񫇾1h Ƨ0G#,r)h $t,H+K9E"̈: i +VI "&ӡB )!S:i):I!USe2AgFc Р*J>_h"h H  :̜rN$K|ҧ <*3ѬD6i&;U%8Г40*S8}+ uf`R.+ Z9KQM┺Պ˅,|U;#>UbRH"#v (6`,\sմ+7J4izLEF 3;,/׈m/]ۓvizC|>jG={MJH\̂' nh1=@] \"ѤE_W\6! ! G*QP%:i$= !gEy"aJ'e&j"!R5锧\S .Q])QFЊz ,K]<\NTW@eU <$jVf.oqc, =pMڻ55Nv^GWeN,cYz5Vz]";f_nO{LיU%[y-T :g}_4q2?m KiRVW\)iWم դiʒ?{4"օOP~IMCH$Y{(iAx&DG45Qۈ]MX4'sLm  jWFph&VO+p,qQ,U ,yD d3 YX0?n yl&Vbрwuk` U"זeq^~NcX^Ҳlwy8yxă> ogC߅\̮+E3oMx6+YBi?qwuĵҘKs^sgrR#303]g|uy/LpbSa <9 CC@lp{ ۮگ5ٰ4677A陽.1/ш; !".9\z/9b#B.{ˆR6 "j E6,T( oc3!.Q7Q1<*pxy#Пދ?T I+ l J8 (>D+W%M>-kXz%v]ZӃT<:31 1{2Qc?gbH-]?=>"@IsqJ@*l#h4s%"*!{/tL˙bpX i-)(9sFҠc'ʴek C0'BH=) Y,0-<7##C5adIHrt3u C$*2s7Úd IS(4>lጷbᤇI>K$%8Ԁ%%va,-kJ2KyA?V%, {iebjHEH2`û @ jQɜ-VǸ)Nˈ DSAG tLt@Rdc)̿,z; ! 9Be+&Zp !9B6/7 I,z=cC7\1ٻJ $*%=o FH &S Q>\xK ̀H4JڠqJrEyP }kX#FXХzȫ|HfE ِAԙ$l0@$B sJa 21JR s#h;:3pD(ⵘє:.Ӽ6QZS(S*9Y;;MΊ(7DeDe$")h!5%TH+-1ѺI3TUOYDOi1x#4gT ,Xlʐ \X x-لEP{ @@P0%s>PKsJ[[#CU{:y: $N"f\5\Π+雾X SU0E/b\r%cU EcM{?9j%Ѐ]Ѓ%W53 s4Q"t)b 2)kl=p ![;USmMsOywa ɼl-A.}똄fV%FX1I4*b\ 1VEs ]%?%d$@[4 ^c io) ]R0 _(>IM:Npwf0dM ;|d/c5I75[et,MĴȱ;EP x+-m;FZcZF$&ڈ5M aܮO`ɉufS-=NXk=y==?wxm=LhDF(NhMbUⅆxjb.bh,]11&]= I45Ξ,nY&x][l& $oo8os3&m3/@2R9B[ 1ewv $h{vwk8>jGN~gGdA℞yU>H$ kn*ʥdtE\HI/אto>S$3V>YTٕ[ ٖ`ZTWX[/TZӳo]܀j,+af^Tvw>_=mV!_*c0s| wΗq"w5|(|G*! ) l`6@$ˆ2΁T)F)Z#~nð}ӬO..sx~xmUXIK\^!bU<??taPB'wCRItKG24zРiT@ \ҰTH$Azdl @bɳ,z 1 CÂ1b.8 Mv왓fM;55` dJ4 MdXaժF%Z+XE]feJjEP-\+6]qa  `` Oy۳ ,qNj!4ÙZ.`[П9-mX^j1ea/‚cO:6_ĆU[{/ܽ‡ZK4u@S.lȫ4l]A{UgeLo{V}I4FjwWo"Hl l`hX8H4H(!.n2!NEl <VL%R4U}u7VvuN1e)ce9 k][uUgh,v*syV@+d|Q\*o!WzW\6mj]'b{e[\{2"KnZmj[VwnYQjzd!UIH >af8("&n.*  , 3H8xBLdI2$K7ߌĔ5Y6G]"%bDDMC7 KxP54|TN`=*PJRL ۇnZ٥Ci67S5V&Zz.U=[r6Y ~c:ڰ Vg] vsʶ~2L-Wz/UȯU4TZeQ6ZW_z4谆f%_$@4nb#,HDBЎ$%YfX’%=jJI 28hJYу 2";RSy%'40ȧ-'<)'(APPZԣΖ$>_ U-{{3⾚88٧+z_$< 1sJX\(^WmLgFDu\G<뎧[rd>;UxB%H-XIyjzӛStyJ٩ƒڷ> rBP@a~PчFVՈeTt4 x`%5PX}M&5j} TD ajh:Svz& 5(&gPĆ6G B[LD#qPmˡxB*,fЅ Z⟲|-;eBG]9Nj exE XmUH xd$Wuwz+M\=vY:W%/鮵|jTTr'VϿLiJT~OaĊXr(B,o9\bl*"SF*#e8 ДdФ 5 <NI6|3HS@ g MKv̥P7O4@M'1LJ~"DQ]"Xïn媥&-Lh}d%Fhd &͗+3n.)G9>4|#m4i -JU ~g)YUfwJg.үjzj#(q8|*њa{+PL2sd+21W e HV0۬Ґ5ij-1?-*\.P e0TխruwNYP2grAG)ܡ Cf귙ChÆfRs` ܱ&'Ddm ' M} 8i(zq\Ԩ]pZ߲nf;5BH&XOr)LwѬ:e˜t'A??e+1qVHgn;YO/xťߒ N#tn@$udSGwq](@[ ᱕X0-u. Sm^؍x(ihɾI> RDPęl>heTA(qM>VPq  W<r}y(u\aOx"Ѝ KLLQ霭ubڬLF1c䊫}b@b@^@zZwH%Kҧ#'MXEL` ZU P,Š6:ބ@[$T Vˤ; a3ad!HEE^P!"VtlmVMdf hf?fh @&S&Ae\ui.rLiK)J,xy͙ NmZnwgwuˊg I%\mȧFjeWtREN (hrnCqTeP-֪׎6ފB 戲 P\hEafqeD@dfgJ).aʐΖ իks͢0Zn.E9 :&,֡SDQ\Ƥ)Mήi͊"p%jdS~VV]NيclQЉA]p}j*~׽dl&zZ T=X&vNtͪeU~ ]ZM VmT.Ao밎hz8k1 /:am@RX<i hpNtQp=aR\nu0-3 @VCd)lB+^d-qMTd,_kC)"4rV잯ƩRi)Z*w jъvlQIx'4ӬtXYVGYZ/R wDO]42#4&+/&s-(p)Ǚm+g&+6nd2?bR!l8]Vl9,0Emi1J$G֗6Ti5gS4iJ,"BuiBF,6c32G:QJQ2sFr,!/cvdjB!}.4CDu@,1FK꫌Gc^Gk=-yD"II[や(oIiׂ-ɕ1L2 A^yOm D2bSOY e^tRNהwō7f@ᖺMv)Wsv\]_(:dq8)ZO\1x89Gt.LVv_\?@ RqܦRZҬfE(]'hC`Dcj704:B ߍ #'[-*oddh 7qkmM+-cf@O_uu+u eaw;wsU\m +cU [k)nlw{m)|뫛QvM-i6k\.Q_6xs#q`#vdQazv3{[`*RZv!ۣ\jGtܧxGD?.Z6 g]ζ32rm՚5R2%wokp+(Hu;f\Z@\g@Q(LFzuK3@i:sa6zgz؄/Y3{52{%_Kf%"5 xo_x+1#_ǩχla3a㳃#=/.[Gofø\L+\}'vw\ũx';uEjgE!4]B##o6oWk P{Kû'/Ә[VM#ο @Zh]\- ٰ sF$@r w1[7m&Jޖ 3Y|w)Qub~ΛΗM>G!"xu|[Qsj'=|Nv}k*^ekA!67=YVS]f}gC@!À l"ɊM :8q&H,"I+ уI#-#ԳʔXP.&7i\B& IGu@ b@uz`&kW(x@ש]5Xac. .u^rn evUlݻ5,Yqd5(KUo^ΟJׯez'7d3?vcҴ3ln˒w yup ֛cn{޹_ݻ/`@Ç W\`B.Xt \ .(A- ܀ 9D /bGdP)U ̯<5s65< -7&[E=5PZ-$SmQK2 |,ŸzJ8\U 5=Yշێ,Ss^Ǜ<-MĜ3ɇ#B΋`T]41&T QPuݻꕟQcDӌ0"!FpJHD#KX!$J4d%-IL L-[4>QLAD + Ӡ+\tb=W1`jL ׮1&RxZԪ&1#jtPNSoqw9u#'Vm3ܡ JXF@EE&2q TF \-uY4(F#Ԥ%-nΊ,▗QGLS!HCy!c앤Qqbɥ~ ezmUX *+P- 1BD:Verfc6hgn iPPk؂*2XP"TDzm,pS8n-tNkUk=< 2s|O!:+o(|#[(bcb@*7ELG\lߞqi+/Ѻ\6׼D'/yA|w蕗O%0IXNV+7)`wiIuOlr [r`|Ņͩ<+CP` ?)2+RM7VhW3f@C 3;+G8pNpnZhyM̢Oar7mnj-A70BHh[f4]5c[Gm [t.=o|G:QqDӍxGRy1GjH") \ޡFi&tN(0}<N6 Jr6+[L'TbZ_3?U2n a)S= c\nPT+l֭aOi^US1gegԶ)n7yV ) NO*Wy4޴ 9Nf4%:\'+ ^ NH8#.7 m^k`?l@?͸(uFÒPu ̒+ttlȈ @&os,XRMR#Nz0&bb2PJ勤O)ebϰblFm0~Z@”+S|cE4׶ih S2,ŰJi&/†f-*Ho}U\m \1Ȃ~p zZh:>l0OEF\@E yТN Jo1θP]ʬ Ѹ#ą 츎kA I&#n{ҰyJ{MO"-G hFKD,ZfXC2#OlK&hjGiB#21 ؚf'(b7DIT8r6lqxq)}=\+>0@d!/[슺 buHNaG-D/̈./r]1 0 e "bG G  !-JbBT&M"؂D)j$ɢfOWb^dRQ|T). 'OlS c VP 5bb5l홶2(LڀÅCC~N e)LZ/'?ܭ[4+qsqsd/['-`rQQ-P%t3a0dQ/N,>"yH5B mH:"$D咄B CbцZ3BOC+Tr nFM#i#(:XL*,E}vtXr pB`i@dKJ1s'@:$P0n;^qǓm~vhƍ:P >c '-BD2 ]Z.MArA--۲߶AO tL--O(,ux0 D V/zFϻpD;"2STY9Bc2M3r6醴YR07kHwf#Tڣpnj,jļ6CJ%cQ2*h3;'`i@Bn9k-b #7Q({;N3HwܤOI$s=gZ,j +s=+uʲ1xefiV>2S?F \Uwh۲SVi{YUi).!1}AFD"n2YVc.cDBnoQ;>'Xxiv9eN㱊oi> >V >"s7>ŘFJ50%/qGpôpĢɘ)Ab >zš@ KՉ4=viNeN})OvXVZ⩊Kx1Es"*%N?ͦg}TIOAhUzi}pW|@E|Ԣ 0t}BpF"'y66ՖYm33%GoT-Y, XN0"hifS2#@C\#"i=V :2Z!zu8x沈҉*@`}le *㟺@M)L_ܣpHm; MiCpPGL"hM">=ǵ09BX, wiڰڙOdIPIQ{RMQO,/,h9#߈H?& M-ߘzUaM5|ӊ{l6RɤX,ab* i E7ݛHz]&6磿T-̪r?Rɕ܉-l=U5#EBjl~o< :3X zݣQ#`r죌1U]Mq\ZBKJ ^y9N!e/ *(uU@^z]ú,wkQqr5ՒTXٻf;~ 9 \gѽ;{OLuDmA K2KӸX!cRDJѯ%tX9f1u9ųLg.|) vn#rKP#k"/5O_^&V`Ð׽!!^&8}D/J[אp/gHal%5 F YTTKjL!|pҒgjY e%|>  g 8W7LWDd:&ER-s!-{4І2XNt>=&$r_Ħ6UZ|5VrO`Ӓ+6mF7FY٣9BgVխ\QW# sFx"(ˢ^&zA? "JTzo e;PfeGYy "IhO S4؟vPL5tA-ʼn"q&Δ< .{J ShVS&& 8b ؀d,j.V4TjѧeMmHҤ/b̽s$t!^4R$-)}Bh$g`dͻ$c=G2لtcKՌ)U@7&+2)xT:)dS΅6u$'Y%g/{=YXG LBg*S/) !S.#$%weŧ[)X(/dKFͥPO ^,S)2 W2d dB^(10DVj;03 \o-5b$I bCNe@ cUK[]FJ:9WZ>iJѾ“K]7^ G#L!\B蒊 cx6n Ty.s]ujI+&kstaBҷ|Z{3lcaဤ +=#F(Bظb8v _xq.KSȸB+b \<Xczx-,X}zZ/zui3 C:宵z[ ^}8į<{ ȗ"qQn5ۙy y핲l0׺} 38J 3zhจj^)J ppiô9)jg}HP]h0YKI&|ʢ Wy 񸙑-D9}ڼo[߬ *ʊ%C! \ Z]zڕy0* >W] 6=%Ɉuyè&͍s:yL*08޸Hɒ dŊY@p< PJL=@Ȫv.1(yNޙ胸]xn뷎o.Nnǎ!.Nn׎ٮ~.NnNn!,gIQxRTG5A3 '&XBK4fEHT:DJ:IU>HB H"/! \CJWVhYP=J7ŭaXmLO4\UD08+uX; ɇeҩfGMṉpTVʲo]uH<6%,`EOǁdʟd`W/$O8Ex]S56R(ܸǗzfh^/d3%C&$̒i /XU{c׆ViLTaCHE2<)c@lNVr`sJQwcsceXɇnuNRxPMعzډf<1*6s^\+ٙsVmVG$J.'mDQN꺭҅fiV歅{Eێoj>!hmHJxT[vzUŬíWo[G΀`BqtɲTMf`C3@|gm``؅`UUܦ~dLdҋoßɒsќ{ytIIc:9ҖqǧwʋфZH+/uD_=A٩K]V3-ցQkgsͬT{B1tQhg@o=0ٍ\[gOA!df=Q>yYI?Zva!ġVI)NB6裐F*#Xףv)E֤:%X OiUs_>|" T's;i: P:x>$"g2ǪR:H*4œ:芟kh)7cZѫTnAMVȣeksRر`'5W,D IFƱ,2?m8XP߇n&gpuV>usNjF77Lrdm1DZg-'thy~<-Ds'7ܯ[KIr>:ݳ'յ'e`%jʮ Xf`~a9{nkq>`XǨekTd* KwAy CH(tV7լelaX( u86mkuy4+UU;89kVP+}*94(Q:\`*}*{Pu%pa.B؝uNrc{L"F:򑐌$'IJZ򒏜PG)$(IGCq2 C9ʃs+O9ѱe.yTҕ{&IbL2LҔ3 7h J6y͝tSM '7Mrs,g:ϩv3g<9vZs5Μ&5Nks>t܈HzRs|z(s6tC' QJF-ьvt )HGђԤ =hER-`*Ӛr-%Nwzʜ=)PӠ?-*R}T*IjS U=*UU-3TTju6*ȱS20gL8αi'>2d G7$3N27\aWV2.s^2)Ty-fF?Ҽ3v? :$v'>π BЈ>YF+zτ'=hHYы.{4{Ӡ5Wf` 3GEgMZֶ#^?b1b[6jvTv L'oГH4 ON=oK5Hv{>'<ߎ(R3펋mnwbvOcFyal<8Ϲw'8O0rN=>jh; p6' T{3mwN^MQfO≅] {w'<8i5;ӇgwOu|Pˇ-sΗ|,|C?X=?>jxƻy渳gTm꣰:ON; `t7rspMo`O8=s.4>=j3'"?峅]@?(Er2rC7tssȀj0i {t PpQWqYuuggnagn}fG i2HwB}Aqxpvn6qsG|Wp Wq.~HI N'p'qjfAy7Ϙ3y,k .# ܅{r ЃȢx~]ɖѝ,;q= ,|a9w숔Z9Un ޝbN A\Xèj܁DǼw~2w~7.{ ۬}R֍^;<k;QnŤGIN?.SU/lop2- ޳} 1j?a:@,J1J#="#6bI$5TrTAmɦ!PyZJ)]wz]sX+ -pvZQTifq/nhQ?PA]KOk]:l]ҰCR*&rmW{2s)2> c,R}b; GϋДІM4331wC\pt1ʨEji^U@O̯ @"'yU?\bZv7. ZF- hZOp44o.! K=sAH%j L`4.29Hգ3>2D,"E]O׿3~ VbMHVJ@.(l 4Q՝T"da[bo<7Ñ ,ΙRqu&:&\TvSv;rVuљIH뵑{-Z'5, "H=ңN&&K Z)rZJ]H}V ýQp!:Ӡ̈ fGOչCYIQ"Mu::I0 5,[8 R?Š:յ7j2+p Apk\Mp:O^Be^e\f0VR%f)Yƴ DW|$RI+:槎 -i (l-Z@ZmX#F{EjQ1-rF+Yձ%$LEAÐ#J"kLfr,o.s01TcB']xglCR}bou"^=JZY d ZL;oI =p9bQ!%\-CE-vXl-j 2u,ز-m*wSk#n : )?MZ_PPzdBҠp9oa0̊TȄzҲLRm)B)Q ijB+Qo,洧-PqDzc1,^x"4hXS%-_9 lˬ!3iͭ&'b'x֬ p4갫Kw2rFĜ*_JV"곟lPxXy!z=橢}GCƲ;[I&,KVBGUږ}<Ԣ|)spx{3eso{ W.r[g}{֖gn 8~x^^Dmz]%,bQj8MFnj+ N]]CLb:WZZk{ xLjj0[q}vu$S7C†ñO59u/hL!P+J^mGO?< R|ny>33=)#LB ʘ-zK !N  K}/yz`J$d?{14*2y tnWpJrגQAxnTw:W n>k. SS{X_c $:&!c+i3y_:R"{"0ɝ0)Z,[hXv c: `>C& %#[2[EZ1۱C4<<:&K3OO?{3,R @+)<:دڡ5[ ;_^iJ;[; *1 +TkA0xNPi*"AL1k46T2C`33=@C3@$Ęx”C sǓ+BSGsw1 p"+19sP?Ιʃ9Ť@E[E+ ]E T t˷$:5&7ѡ+ TN˒4f G?ik6GDē6\yJ =qfj{TEYCY}-6ʭaqW^6\O]>ӔyI&Ic|&4.@qafa.iG65  JʤjQNFM6eI6<姾Zи܍Z5(5__jZI UR4P:x.%fd&d~<뻶fm֧\qVlipmon\qaxV"7"gl܉Xr\| bѵr&~>MF7> !pnmmܶ5uX n!)>{K@ rК%qCcB&V]tnjfoi65wteS*n@HU_ufXuXꧭu'\'Y.p8pXEP4Pv6^^pVo:[2نCPE.w q Dp^ua!a<>\|#_!abuV*lS+wbҽ6x9m14,n>ߦ9sgx|x9sXg"_.ixyCowG/dGg?Z?ƴ,-6KJ2Qˑ'Q4c; ؒ&J13"%)cm*{In&|a )CP$)Hj7O$H V(wD r"X.Wl+%IC6R6" (#ER.%[Ӧ y1=LiʩgϜV?! *h2$.IW vJZ-#Ӏ&y  !ꖋr&ؖsSH#o&@&\Kl]WCVWOpd~{%S]Blnl e>?aiY6"1rM"ʅГ(%-CQ$]1qE#FMVۅԣxPd^peV;\ұ]uK$冕a,(A}6f˶UKSoHgl+H*RQq OkRA O=NuR U)dʪ!iM[Cj JPDP[ēpn]Q\h Jrq%{cd QMl4@ѣlh:'^K Se/tCNic;Ԡ*+2eVY\ Mҩ֘y)|k\cg q:e0hVD~mxKH()N#.[z⹪DYcm~}u\ݺצǯ|J4Xߗd.yQ6Y ޟYxdOf۞LdɚC"™G%*qE:Υ5Z.FBCF:PCѐ;G7=!͋$WCMߩ{*9#9IFV1 *VFk\mǙd~Oɝfk4,WrTM07HT݆!l)w rOɴitƁq'Nzґ|]qn(U~:s?*_D/0!F!AG֘;D@z‚ n~-TYMQG]]^Bh%]Vڭ^YnڲޝOF $ѸB [mB ޹m⁄} zJ<]a  n*r$Vahཱ]4ĝd\R4I]*+4˪Z W8K DI@FȎ4Q!5d_\ʡ%bqD]eG MG_ϵ5OnW5E$UKmLxL U 9B~IbDF%U2DIJB xle`-hsh! f&F   F B#5^.H|.ah`Yцn`B*1!FЂYI9nc]Y]?aFzK2 lL*S/$/-8$F8 &HLQJoDYKFLb%Jʩ\ ̱KsMIκ-4!D"%[JLA|MaL&B~%#iq13c#=Xf`Ejc] cJʝ+n8J agfg A?$A;$A;XFI&#cnf@$X ᵙirrf[F^!ҤtD+ ڑev$e$5fedDMKdL&aݤLy OO 򱥷 HeF-e[0}E%$ZDKY̽dΥ%Yn"Z,E"]d]g"=^$0$22#MM#If`*B4Lfe)c&RfDݕ^XB[|9hjivifj`lkr Df?C?)@)J)5f `H(8+曊?86)遒JX|`uBcgHDjJ$$ҨJgF@ց͑~;NY\Sf=eJohA7" "Νb~]*nhO*jq\ QɗJ 0vu*0ێ'd$dF?\ JD)kFiD~fgB)ij&}q&Â?iò `DņD`iH!#(~)Fa0ՌF:i*"l66BBc7FR'K'ҊnJ2bݥ^6Hj Eg"߹_""R ׂZ%dEm!j5H))_~(>+⥨ ^|hr궮ܨJDj4!F@&)B&AHnld8vck-.A+$&߽fm*r?@p:oŷ銝)y}oq^"/&/hƽ,Z7[h*Nj^n)dQj*h*/rQA}7CA"H߰Rfeb=-WDe FĪm[|po[Zʨb dRVF,Bvnu..-"q&A+¿: lj,FЦnFrIdp$&{&n& IpF/og7T*A+qIpg"TtD*Dqb k||-|A 2o2+s~~[(*0 x$Gr40F . q+1Ը $==gzqiiz1F)),tr @f,Z4o$qDZ3oWGqlb4,n "+GpqNN#4o ojJ|!lr&G8Sr*/Ur*2FA+ٺH#beB ٙM0ڲwΚ-s227Z0+o!|^8%^sHnF@B8R_2,&/6 ca?5ao69Nf?r!.&L﫿&4@3tf@gqji:,GlFqnqni4 c%7(lCH+tڳ˶lsL<3;svfNs妳#a e/,h' aGߊ_UGuU[5U/,߂V RDeQq-@߯ڢA+bnh2'3Y"F^5@4!<`"-$0ubb866Q˯&ok  C 9|kz7Og3+Lw!44سJ6H6αk6h>wfH93lJi@^lCglD9 7S4&G{ss9/ok9vq>':K>1vx8'ΰJv0r\Âopj\U#F"U Ŝs]([+u2w]"^c]\7g!|!BFt_I5$b:d 9o0$1HwCǬv,q <48|ICll?o߀vvHq~q6Gt˛ttF@1I/q?1>fj:*Gw:G#S3uH7dGRX5{=20*okYT+ăRTﲝ*-\1=2A]?suF|48@S5$d;$!$RRjds2~o:$lz_vV2%sz4Dͪ:;9Я|)?<>gbyI0 G 6tH.Dn||ipб'oʼüīt̆D <ӂЯ~|+ң~ﻦy9@D&Lؿ CaC >t8.ol;~Q[4NqxK oQ{XٰD>+  o4աVG)S42sK[tTZUH?:_neXeKvC)wH+D!6XPzFC,LÇDܘd4|xB5iAM4bѤQ}ZBկS&͌$ƭvu޽.Ƌ#{!r O8Dv+|=;Cdn D"{߯>'ѿ_}a/@$-42!C!P$lP2= g @, `! ROE6ZHD* ,ZJCTʱ[^I!IjEDR'f*[H -u* :FFʒ˖5!Dq4JȖ8$!=t(/ *DLh F{ GBLHS#S:е͵fPenT\~sk!kN;['L zx.b`ehXW?>ֽ |M@2r3'A,3I+ ,5: Ԝ6jkVü4DW6+k^E p! _b *Nh$ֲA#ęOPR1ů%Q BdIzRR~QY M7]" E`3h6䴴=EOV1/QWALxu xCXH6yTD2]?vڍfD @N8E1+Z *b_E!\HZQn:(%ih3[c@5n8jVC?V8qBpƑsӔZլ>W!d-8IEAeBb'[$Cr͌5$%ޯ!Eq?F6LU'D\~93NS4кINq5srO}C!mx,ӫNsZ3-/:'xj ,S55AHm%/>o1CL%+)ʿiu,Y!8z<& budcɐ]?̆DJUY-bPGp4X!h6ΊOy ХxOLTq9 FơMl\0Nhhh'N9cES捉.7D4r1"E&^בT=Hu~S9ͩ+怺F⺿寀9$cR_`NPsS:D 3 i [ؑ" 70aB 6B`V>b6nP 7FW(b>v`K Lړ CZLĒāVXrKl^? L0:1Bnxlv6pC mhu%ݹIwhChI#uSh(N_gb8`bWLQjW\N[4F _X;&.>rCH:vV=!O.<ѮA* mCZjq it;3H7zi[ IwOa8Ch?n3K[?4%_Z*͐Yzd 35rYpH RvIeUl,7ٕ-g9]߆a /7g/)7["NoFODO .mWBO!A@ 9x>P PP Cp9&1/'9 0Pؐ!'M' !(aޢ!M/*BrZ0"~I=p| ! T(%!"b,^,Ak/,A1 Q ||bk2(D lPPq(MQjȑ0Ц&q7p~WP#!pS!Z0(/ CmpĮ!8R 5"k#@ؒeEP਽#!qШ|BRW%b:y&- H'60)/mS(n!p)OB-R!po848).2bFD/jn 3! Sf40YlB$:Y>qG+nK!l/-Ǧ,]i#FU1 o4+Q2U+*۠q.3q)5 P JS (5 AAA(۸pPI e2 \7B8[0R3w";("U $."rp .Y`uEDOI EJj1è9@WBY2YP TZZtAZ2 RtCsmQݖBTCoC *)!]UDS2}2^O!z_ sftF}Ĝ*brE Ff'(nBT$lfI4M 1ddyyK!2C!g9Al`[QZ@[vPE?ѮPk/9 uu:>9YS3u:A'Sx-"KU#“'pܖS3e 1X%q٦r%/7s1ZQLs4 5Z Z5u_Nv)a50"^LU^Uw04xsl`I,INIGH((%nE&6w&l`B!|"0x/T3ew Qu.y2U!2/s@Ǵe`KLv)[QW[WOG7 [&k1 A@!H "WSSSWUWR5o;m:Uժ36p}! e1W"9 yuL L)qn Y5<<sCut[Uhf64m>CBwUHt_Ee4!x7FsL!|!D>&bW Gɰ&B{dHYbcPQ|tlt$nh1MEtD`r~9]^)Mq=R;4M2uW(I4j1pj@ӐkCX!.a:?!W2 u>uRSp"R5_Ws8:k:oV lEqL uAt A?3uk99vaX%X[txuWo}lM[,^iC^U4Ey_4V` ,_,t7|a$.sBR9bLHL{ c# SQ4~KgwIT `BtCـqVXumuoZ9-!V".!k$NBqlhxy5ogzEj0!ڡלM[q<Ƕ!!P{:ټ!yx·8YἷnB.%ڸc^wל9̣s ~P7C4Mj_ th;}ha=ٙ2iuy۽6k]%Hn&oI*Ioo:$S~ .ŝ!`7K}a}w [ i@eCafX3주=2T@;?4̥̼_]qt۟}K~oew🲁p*$谠S(VQI!p#$9ȕ:2 `.iLIK4@]/[Cet3O?Tz^Aj_SŊʕ Alɸm+m܁p'RG/_yݳ7psp5^8"E'ON4 ޚXNJ6]4ՂR>mtoE h>]sf̚-S.x.0E9x0|'#sߐ(5?ܷߺ'LX]B4_d ]`Hs?<5蠃0h"-AXPK-ӔQZȡH%K/X)"J+tHx4!QtDc!d4ЏQ4ё?s@;".Uh@TK%FB%A;NGd ș6 fN.AUZ d̟hquV{~]qW^v~_Cu@16qQF\fn(7*k7ZjfD [nqg7ܩ}">טax17aܝGwye7D^dq.^Qw{ .]EuEXP}J?DJ`&|` "" p!nx"nqK^~Q2a/lDJSH36PD-tdE>KtKDD33,DpȜf6?Ќ9$4L^{5W?@lXZe/]gvywץ)cǕzoC @b>@OG^Щ8t/0wu}WRgwǞ\&Jߋ&/l: V=_ x%.?%5Ϝ3?7t3-k=K@*Reih?* tD;q@Ӗ i,ݍSBҡD*g,1! 3 )Q!I00/&54-fSvf҂zy&OӣQQK%(BZE&B=;wxS%.-F QNDܫ_/)ؐ1)l`y8(wFްh1 2 L"7K5ȝִV/n=Ak/ƱKH#a rW݆B#+671yi.-m=TũL1Of@ܟcڲ=vgK-}kޗs5ٓ۰UespS=$=w&0hp'g(fQ1! g Aw&bc7W;f'0XF@xGVWY٤YnO!f7[$9CD'G6[aB#mxwGpW.V>v\x!wIl1]--g~g~]{s?|*69s@eRwR_) }1x%:@BEZm݀-y)~SZ~.BU(@ _ɆX<Yv'b8fgjvSWs1!tR&&װc"CLULVB#LvdHYd״C'V68dZ[xy23|0YΈy&uol@mX1W1^>qp! c!"rubk!x& vyFvD|Q-s8q{!H5jeDcG+Րħu"9s*!ZsU8Qy&8 6&P ܒ`lX7ZP`auggVwlF˦J m7&x R37'gҤe3E5[aQnY&u1DC.neSYp9$eX?6@/W0ƕSzK}vaJI16n<lِ6U;ɡqKe})(R2^nxs7,hT) ='1 '/ GB6 l 1 {ౚÖp UPR=v" ;"C;#!oe54'OyPCVVdYC'\s64 >PπAJ#4T[MCCV2C.N$ xQvE$Ucy'D'DPC! v0 ȀMz ! P0É6:Cc7%&~:8T9s‡!Y:&76,Y:qAH_ dv!5XUD /a6"6݀!XP6= O&b"1m 2Pf$DAyZGZcC5 [& ?x9 4O.Z`:Ĭ&BuBy ̪jZ ***/$hCg4Oԣq[T6Be 6ȶ 1DQR! q&2fFF*pe[@r4 ᠌;++:˺4jA$O !``Q ۮ;ʭ P ;4;4Ge[e$gC*(FyGѤP;ȶH[6A%[6ƨª5*8bt?I)[OE;aaXl:r]Ii6_4'xR/V8QPT 2 on66dee(r % JyA? 1cn>4C0lo61O®;?Ӎ![%MHM p0c9Q&>L@#2+?kȌ|5c5Ҵ@ g҃7Ȇ`;"~-̑]siP Ǜ"p,_G˿W=ҕȲaˬ LjH|ǵE' <e7\ũY\-ON^ܹJcA{ YlN]:[`c` xl$P235H:[6ÆIHKA5\::UBO'=4=3-|У$Q&M2 Ŵf})Cߵ2S2LOnҘ3be"#v#@RMPQVf;Q/`ub FNhs)Jٵ)BɀՂhua&Tj{K%H7I˲я3V\طl6<P=\U =-O˪=Ld eǭMm aq>?KlF@*Ь a$e0%Ra ^=d2a=j xW-pBOzpVSBӆi^0B&8&NR} ô m"DRQ>݌MC8U+d$ :Ff` ذ(&q(rU6kCSE8F8T1Q-y~ןlļcSm\ e# W{:ZMڹ|˷WaJ+QA=v:`y;O` $`8BDMB^O 墠5CAA,|$` ;*&~Z:+e@p ?$ngN-@rrwewMIvp|$\e Vθ!C(gѕk..>#{]@W. 5<Đ2Q[i!huSؖUY+h^ W~AB,\ Va<7l9q>>c #ψ uӑGaƒł]$134w͜Fs'e;iӿc)F& M+Xmё2)'Y(1HVel庴 @e S (ٳa)SfYІ4VHPoJ)׌`߶f kiA]AE̱R`P!*fĖ2]T7#^4IF %2.솨6%JC={S嫍8W0 ^\{%#O xS9_nO2Lnك=(E^ԤAbe$MvPD0n,nB˯nP1*/fžit䑠 zG #2*62%G )*(e 2 K L40h5E_~g$Ȉe輒cvn*t^jX"F: ,,ï!.h%C* 21YRLZ))rUb*ըZuB'8UMcFB"7[Zi-hr-(ݑѪM]23wm$`#zUAD"6/G0r3;koseWn@ ,H93 5K2,aMx:DF\ehqQ1 Nk, A(SM?%**d.SL/ ~ r3TGVKe tr`K-@HTs}TY8Ɯ@q" j._?~` VlW ZJV`[ŕVD'yΖuieUA֔hWE6#gXb ^{mޠ~7&zꭷ|ͭȷᄻ6o|v~m Nd':9v D\bBCwHQI!aM8‚P+d+tOq$gfY#834A-#э [QH---b\ĀQFˍ#HHjCJvr (Iik<:-ndBT7 NlǷM[f"OW,v !NII "dAn9%q yCdH5 XK$s}@?ٱYTASA,kbpU\.p dp؉Nl2pcF~Wpg g__p ?1PsÙˡ 5\l;hFԓ`)$HmA/Td)MR‘HiJ4#9%-S2*ឣ&9!O|)A "%4B gt[¢NCLNEk}ZtưH36(-iILj2v؂\)KX1A(;Hco ܌;A&vR8'H܅%ж=GЃB8BZ_jR'?o(H  1̂{XsskҠ6NRP, ~s} XY.ˬl:&.mf5 4g$p2r*·#A}@s_Kp7D̠V !^NJt ,H {\iؐFإ.i|w? ^ppk/7FeD1m(U$J *68 !*"!H:") +9k#2 :1A2)*~! eH-jB-B3(|B(\3Y;#s8Ë B+˻`4eڻ>Ё %̒>z?tσd#?XdB&[JDփ.`ӵ>%S.]/ѥL4}`H2>hEhŨhV$V$> >{/>0>8  8Kdab " nʟn ʿ(atc0 ̸ І!HG@9)[8 H @Ex)9CA9H%#̹[@$9[:Ĺ E x_Hs!B#y"] 'd ٖ.3¸B!0v :#)-Q;ªA +"1ˑ[[ Ry/?DDAD\Dd28CM5QLC2,YZj@.d[)xM_Dƌ8F>,e>vEŝP LؕgFhU 7 ɟ;8Nh(¸tĸs!ӎyLO{ԆfLO ȃ/ zr1))o:A$2 CSI թ I CO1B<* jr ai`x1i!?Ȑ]qlf8iGwmyb 83\ u `Ƨ78U ;;f 11/%!ٚ\ Sv<҂pq63ٔ8>vBYKdˢT`jSe8/T0<,Mj P7>&+`BpeKK YE8FE\\cEK(be2Lb] >qhOYS0Sd5Npr}?Gt] džj0i8Kώa0{lH@3:l,,*HoآcETЎ5ЃsȢQqPHqHه1ӆN01YT;5%UQFa 7 U ':}a057ֳ7S6'H'6$5m%Bf͈dB`nc9'0'Uh uZSPִɅo]01x-KPB%#Dv0󰆰%L% j0v艽A c U-hL[ShHS(V>WP+0>CV]UD^d^'^S msmg\0`_U(G,Ǫq 0-h΃͠0iOj`ϣ ێd@P=ȗσ fkHȗ&b]qq0b[/Xݱ):`2dUZ/HMmX!&N0O~=m;m%i6m %}N7};Ws, .W/x ܨCNt 0[ڋia)[p1HHH?VYX3V*✂baE>Ndp|CqY"ȆTLb%a҆dEȌ5>ocͶ%YHY&YkFGC޸a`8c#GInJGU5iLvjVz&bU{nd?U>EP&XfeFd>Ag\Y.i HS(eMiƌ8N僊[ŏNVe>WFcq\neLFڴEa9fY/bAos [_Qm6\΍pp"Nda-yr7Hyv%si rql .ςϔd~cV<=,XВ5Fvm4ZHdbVbA&jpJ>$NYtl0NEL)fC+&#-N$NbO'v-vi{W>c8kd2\fPmd u ؔ* oZC0z j0tKO_Ze6~_] %^ɅitV ii-NN/%_\_LH &yúLUqen>"Y^ wXmkV\xf /+0'' ʕ'Ph&A{㍻܉;.Lj-F nD>Gh#0qd/o-ʶj9ҸEP@kX m)b{HhVZvO_{ǞکSGN@ZPn7`Upo7uNXp?&Oa6X8#Ȇ/u#Vk:|]bgcqp+ѦNߟGeǮFگ>8Ndl`lVmueS`2uBFC0Oi2# :tZ'߿*N@>أȚyFqjUd%¡GLA͂䓓D2ZO7a*60VbfJepJfUTS܊e&*uY +^ W/N49Q.e߈tF%tڃre81&'%dt\S| e鵓`S3!)7$*}tm)vjFawRIdpT`$rNn 2OjH0NY@58Pqg1Ric?_|7_bKxt"(o@8ߌ8X"$ É0CS?3΍H$="dAأ%s?" KDr Zr@b?6i'mGu[e%`x[B"E6ޞm٦v_#,w!|yqo!q`aXsᄩV2pG5iDGxRCXADa6RMDM5A*4G|}I1N$Oyz2$1U[vM$FS0`y@.Nΐ+YQAg !M_~:i)=$E8$~1_Cjd3s-hC7bH$t|CG|ۂSh{29Z`FJZvodi{j)M??t~ ,m*Q'L($ j8@5C;ۨ*$ SXDVpƊQ&n)^iBr6`/4laSr$kVCআeH #A?xcfiLl2M`bf`X3f!99=$+LoL7O4/p17/T2fB+M"U@-?5WS$|'[G9ZO<2H[Bqey٠)3H8S7hMNc>E;y"Tva EP *#7Icj7"!e)tƱx BAT/i@D<:fx4Z(Rtv?OJ_`p?@%LD7qwpu Ѓ0b)h S&$hE1D'?褓j 'Z0gI] pY]10ܫX4AY|,E%be]# I`R$XHd! lJY9d!r9,p{g;!$a2AD$&fy7hqiLb-J,4IB*%nJ. SacH8$9)/na_@FgNiwlMM24 ,ɰ%,:'Mq&s+bY4ǖFaIF5E}"u-a Rd u(Ej>1\8#7Љ:ԓin 5剩zf$: QbЅKIVW*~2҄bXoCY}r7y>SQ -1*UHuj>U[r&N!0Q1&g8ݪi0@c9 6ȊVڔua؃ꁮ,+$=e+3Me)E>}"DE d]F'wF9;hE;ߙ}{-Bw xfB duQG7!ɥ7F;ßyvKh('Q3QLC4Q  T150 pXQfeWԴ{[rZ)$ivU&2bTdRH $v`tU3`!WX6,^ ;׼I3U le7[Ġ 6@vCq@ k}[P)p))Hn[S3țЈWШzUW$41Op DZ\YX'rQ֬r$|EPN4`\ƭHI hEPS:\!&!޼$1PĦ,ȨA2Cpe@!؈|CAFE(C:7L$ނD}DBMO%b`hTbYHIv`GIW1J tHIυprP\U) 9k( Z`T _t߮cH =L*ЭPgT!E|Ĕ_#hAX(4MB@B\]]( de!`[ g(`[9[Ȑ$IP? ؤ T`&-P]OM&ō4spZXąw)^MTDr`W@WX Ep ,8,YE^ !\] @ MDI h^_T2l^PS 1bꁧ5&@U"B"Ld P4C4 9 o 0C00IȈĎ !X5&+}HL ^"TrObl&"HI| ,Y%1\dYvOH29c\Lk( #14CDbe_d]Ԛ)Sb|Y,jQlB5E_R^X&- dL#e pL iT(#Fvn)Ȥ )xKOP PvPj Ǘ 0=WmՉɛCSɉ(K]<B!3ݾx|EKWHެL[vȱhqfܚe--cC!_` !he }ߐBVd_EOX[5\$_-dRD@:AAANVeMA#_,f%(A -adOvcd_`W !Hƪ%SdT&C$&]x6Ǩ pcu)^nlxUhȄ ̄HL݌& Y#j b3CR ;C/-B$،j]@9jfQ ?p&EA4jaU|h=c^{+ᾩE@}f!U#t 9Cþ,&'uCbab7bґ*3$;bZY,;^7v]8ACev_)K~a_GHfuW /ֵ%%_! !u^d Y .@6EQGB,"=v`_IFe:}5E_zNn F|ǝ?NHv%E$Ҟ!WjGBo@čL!qAɾ8 ܹ s L_Pu_vVjVmQj9:lRoR(WOUS%2| f8]ŒOpQ8INj)4n:*/tYUy4{]ݬ J{Нy&E&-/!QDXqpfwDÓB33BOX*X- (rz jVi S1©SJ[)q f$`2fNqvhTH0jB2 f\MnDt nPԤ?[ K\i BcDhJd!u7.^vb uj_q&|+S:~\q8 D1ΚSN$5hK$t*ʨ;kWa1cB3űT9須İn]y k 7Nh!-[0'r>.Zi}_yY*ɒCr%88@b " ʁ,c @883BCDn]F!k贈C+ GxsJ0 J0"L9OK0V/W1fV HSMbD:ZH>,-O7_tPVI3̏!2G!faD5Q!HDUuPShaH6 y,PF1H&Ut7<= b4 ")#$ũɉFitK4H20hX&"ɊH>䵤;Cb03̺៳n"`/W\a%BXIBbV(X !N;-NH#I"b{XߌqjT 5Ū݁@2â;䲸:߮ <cO8O޳bBX)X>3CP'@.sX Ax|DvDCzH"7=ru@:5'$3[rI-`MB0Ns|uH *Ԗb+.gkӤ#F\]SBvGyĀpPds10 Bts . ␢ͱH%pr @D"iJF eJ Z y ) F&2 b*5 I:%) 5ѓcqj 'J>&YQą  i 60ԔhCPRTNFL $lr1SٝbRV>F 'a$$ 8aМ RPR dt@<T +Қv*k%(HF2`$fI͒e$xQا,U( fL< {7&<Ŕ eOnfD$H]Vl@ #a&FQLbSG64 VVx,a_7K\S<#dEa !(`DI XjfTMrQ ] tvANJZĹ0? !H)殠J>MƓ-5ɅOr!j2`b$tʬFYo:G*Ij&MӚ0&B4pRsh #N_2O'BdۀT n Vd20e,Q!QXE0@[|aP4=ԷH%R21^$FT: +L;£BOr1W |@5.K k$ְ+X1`ĸXs۱ivsr,eV[E2۵L9c[Z0`oSZ-5F>M(FK-LhU Rq> %vemhޝU^-@ C`lV3:Y ܤ!#bP@EPgQ."sR.0J =+hsH}fzT>/%JVBf0cyҠߞ T"hAM@;J#ho_) w&]]Z ӟV6QbsɨmkXcX@ MN, ; - ԭ(A Nn9b9b9Ћh:mkml=0b8n.`૎.ImF@Q-FjX jhF? p*BҐD` IA r@u@$B!nsDC:$bD]FlHNhVg|R z hegd#K*`j @,;ڍfdއSlԚpXMFDNgR:oM\1@΄r"0} M`LXbDL^p(A5:c(A|&D" x *nwvFʰ舆tc>feuk:k ٪Hz(aX;*@$*b %p@D&-FčK:X) `ܴ.`}ƹF":)=+=JңiZ9b9l 1ٰ@#::)o@aA@r>Drr@D)s QD@3's:8/$D= *qeJPz hPc"ڀ!"E24B_bb9C,_TJ} =H ?(+S-ZKNNxѦX`Dm`4B*rɮ{2HTD1y6! N"YEHe7Ԣ7"wx-^ k B"fR*Xܨ hE{@AR m$G(ܐ 9(A?$8ep4@qgA:* pұcܖR-"ܘ/hm֋cl)틻Ep' $ ,̚ ?D!ڶ<0A AСrp0iA(0a$sHB 7 NiU? |)ej4z (l„˓-,&b$@@C0$Ra c +8@=X.#r*nByr|$_CG4$P^4 mHR+`\ybZ%4,x =bJ'NVh @A{m\f̅<nŘn_1G_(i"hvcഈ)D݈!`+HX,`09l LPEAܒ&Mn$4 ?B?'I(J 8C;~ 8X -<>؈ABS?S!:Nujic2a50bO(҄6Ob""EYwiV9Mxz`,$q2>/-ڡ|w P2gS6#wpv2vBln)8+jЎN&PFPjQMܧ]GN"GQ*Zo&X %SmL;x$ J@aJmI<T^`$dnd}H D\fņ)tc)x#HV BK̏l\Ŋ 82KnƱJR:jJ4CTCDl) 8 2Sٸl:Gxi 5$7L͢qDLKRPM.j? W9Xkf)#~iɰkJlB$iG8@kMS)B\7hiA ¨ ܦMD.=֣(,NQ}\Wu(0o.$/>NCaw  A>{a|kzA!FR)ȉ~MG"PQ5l8.L$XΎ֗=F҇NwhwD{N&z YPp]K)]&Y m)rvO}$YeVEb=4VA.rc4Fi:J4>4&tUq`CQ60РPмB6Di  [ABg^~ZA| E'-Ȃf.LCOnex4)YYZ+lh v|F-@h(qVS0ˣ#GKzrqhԀ]I%2A5R4[sV/s pqg6ܨ6ECOޚ>fjKap?b(SzQ=vCDdD2vr@}O) gձp^HnXksWq}+ lM㒆}VyI;nĭϚu)"7e^MaNj?u-3#^!Bkuda\i%b)PsC@.j2l@bRbĄ'8NsV;𵔛p_DƮNLVRƦpYR*"1 ,b8"nR2ʤ2QE U`F2LǗd 1! PJ%FIRzZ`3]E g7M d#ٶM=o$蓟q@f'"QĆM-~eg\S8Q%E+\ʙS#RG  t)} @$>F:§F2 `N&YfYE @)H% #!LX3uu 1Z&&\q|x L U b%1. KiJ1\VJ%_XQS9яJV5(q#vRVI8eJ"2qXN x*bI\AZ#Qk);AQ%19D, Ĭ$ö!gu&ZXz63V;Ѐ&(G9Nc!u:Gguz}VN+v !;trcshpŹFuX{ZdYD)!5Sci-4$G9Zp0 W@'u;QuQҩNk*vT]LX Lhr 3 $p-!N GDd/_M5\Bm,soJY+"J..ɉ`PED5d'X,. ҖP[pRd ^jE'&ITG9:81sJTȒ 2eǢ*eRHƬʐ0c*)(S303@^mІ6laaM o3:5{v)IF7V`%i(ѕح?vE* bT}Qz m9т\ \;s}9u5v,vwv@ƀk"%ݕIa +sZK1{M~@d!a$4,[bQ|j{ |'*yOGgJu'=;).p7l[?MU]IS2v>W*4 L@jE.xpl(d0 XY>P 6 YDBT.:f\0.p %X2[cX}F}b}7&0b0fIc\2x4wH)a*pPX0@sV-ƃ)@ t`ݑ41*ЅmC"JA"A@ T a`C^(r71z01KİMѐ  zM&6t]uIO#v)Qve(xI dvcȊ@&ccDTcR9"PR()9|yeWys@s&U`"m%'nVddS=609|*cB[UX30 ؇L9nnpn(QnpTpCD)}W$}81Y]bS3ZqW_qv *D(iY׶ 6.e)a:QlV.ȓ\)ѡ&18T!hE):%R-kA Pz:&I}D=%#^ChH׵1i}L1 &]%=@x7%  aMD W Qj&_^q4 ` tVa phĺaB7I@Ip b>)qct犰(ùN0(N9SvgO1C!-d.B>IypR;yۓSyy8b0$NRƗVn4UWK&Ig\%aX0)1Rl%Q .&0}&$|1Tp5K<˳:; T 8\PM"}Q˔G|-ZX,t6 1|A&!u-`DUY3kfQUYdZV*@.P*Х.K۸9eg'Xw'+rLM'y2: 11Pb> C8D@8 H `aj( ) F7T(d  Ȁ g8J @)2[86`vaUXxЈʫߑb A W'Hzvys !Iw>cʩJQ co'c"5?DqO/"sR4:cf5W!G#dn*|SSW8iy|fJ (Qx %@i) (fʡZ:TE\\`O c]nCE˳(|(lB!E~_#,VYEtlQjEE-WQCVY11PP+d .]p7q8<x`"ZIc)!Pl!W@{J r8M0IQKc g dJI :Bao)1`^Dp0e21_qe6J4x Qv3Zx3Va z (H 2w'3T!}v̱v3t4O, !>y"@fa9;e s-t-Bau%i))؊0+a )1((lM^Fz@ 웿$m!9v8d܁P7>eBAO"7#"89?eQzTNy#K~IW\"-U-wyfanqfi=!Ȧ[@|e> 軭]N$){=>ym)_z|>&OP%B9@+P D*x)5>\0l/N*` B:l~Z;ncYb)PL-Fr7#'񝋣5^ |+#>wक़AK  ԓ0!DI (R$&Q"=mHX c"bJƢ8LH457#IiaE7thr 2r #=hl ՞,ALjr#F,Nh$eq`-z|Eԕ03Kf,̨1^R +P- KE;dř 3q xA$ժY!Ar8\ ƃǒ%Cf,ُABgʣG&>$&ˁ3Π: +<" - 7@ IJQ`x4cDGk"V)RH,%0%T 0&$d$;2)g^*H> jexd1&^Ax%0 }9(`C2wϒqQ/oMm .vٌ%:Cs?9t{P @ T" ࠬB)PYD*`%oɑF:&BOJR1B#^ԅ:iml?ඩxs)a0)JTX?AyN-%pSV)9ʕ`%5X.jaJ]^,_zX,jXbZV+*"6!G;XZm)M ؜HH2k%.? !mK +\iGKZބ4kKZEeiJ5Eؘ{%7Z#_Kf4K׼vjXuOlk^vfѓGGĀ,.>(Fp1Slx3oz2![|p p`'<$h8A%fo N} TP}ǁڦujjVq8yF:i%H@@n]GPfыW'QKSԖc }B:GG%UZ̍ ϖBThe4UDn":7%)"V*.WB\YCBLx`]'5C,X+jA -sAwFTK}K.[”c)ݦH5׬S`{jC) q7:׃ ̷A#Z 7!ObɋEp TCѠPA 0Hs. YE2 8ㄌN7X58?x8Ue &d*sqA!1Cd9S'߸*0NA)(x8>ȳC}jia;+@;P  % (a+x2Cnxh[(")ꉒ$3R$I4<4f #WhQҽc=[!8qH!F])BƉm<[>뫁Ѓ$džx5W0?m2 ?ı{?S#X7>7ɤ~뢍2+! !y$\D ;AA!H8ʻq e /䋮N|7艜(+Y%'/BIA9JKМ?~ܰZj%!עx6Ӝ,x":?ܔ1  :.᧙ZyDHXM D2K*+@V ;aY|B6iY$=cH>=/a :|RAԱei եé |ee( iL%Ѐ\ȆlX]pU޸(NhQF^M(&M$䄲J2噔:r=3(׫q4`4:+Lc㪄 8. G.1=q 4Q"O. .682m,* 鉰{ 4z05L$5[ޘRpj <e*R]nX3j21]LY!BX88INcM 6.= B/90DۼS?ky kXY7s Kg?/psT.]ZByێ^ʁ(RK*"+2ک>i.( E\ȅp(l0H^ p]h!^x'u9MVJmESܓY&k O2h6& xʨth^u d> Gvi"%ٿiجiqVeyJRU,P!pHRL0A%Xcs?Dk8.'= ;R#NI\RxC80A1qL#O׊ \@>lEzՉHlSȆS8.:<\"mARD!ҞRZS{̱9:p$tM8|q]DY]?ȅkh(kjwNM=wn︃oxVYB@$H-[/hQ*ȷI8$W욍΀`mh/hO6.GޠXЊ7*q@e+9R6rᄌg}4RȟyK->PCr '!i `QؘO*P956*E5r2a.ט, QXߠmQd*V63q b?Gk[IIW A[m#ɮ0xtȦl[A75Ck4~p굟{VfC &PXZZ,O\O@k|b6YdN]ՀE@\~kjGlmys_Llsot&:..E$F*,uEĆXVX1 !c1* -2?QHd FsIFN<7: J٤̜=jFPO{p%DxHX,iO(sװ\.ޮ$=뗏*> "lȌ!K+ҸB&;R* 9K@'\vqj ر)I&>y  t?sC#+'g9r8P? '!Bd3qNRNg&>!Lo L~]qS6I8tJRFXwՍ&a?vu!%N&t!$\itiHnk蛋1qn87: l pXpRja5 q!B8 rQg.w80(":ǡs$bj 'MpR6'OP.B9Ps%9DI jQBTVD2u :g?7uTV#99NE餕LUpEX6AY 6ZwUx%X0'w_kfe |QaM e4j UXBe_hڐ%w[.Pp˧(cq v9p𛈖!RHcadr3\ !V!gQ?Ӏ4Mi3RwZCDhVי]D^bYл#)#J232͞hI;2NB$`ZqeV.&'-#r#'yY7 D:Ae5)5}dMٰJj>6%Ei\+y Vzǻ%/x@@W'=թx#^@P9QCwHi[Ƨ hu)r** NE`$ WDR3`g &tYAN2@`i$W 18c Kˆ^[H!T*P$YH7ӆ51P,+ 3=rN,pvU+i"`ш1+v#/r9N $| jpA؅%#6QMG.>t;q O0aDLDvg(.9 U J ,$RBbJtDcDL,gz\旓=22oy\i(G5 UFNrvSt*Mk)# k邓.6R=`O+ Н,$*3L;I9OOu^j@<5zIp|G8`oPB@TMI5(<u+Qdg81gɁr4y)pA;v+2fYdL-" 5d!HHúNf1k41#R ŵ9d1Kp8F'v3yu%+7 H:ӹD r@8G ΒظY*l$P隫!`Gx3O3D|$EM;c sp5M,XN!12K33'iuf&rx!>eN滰;{B>7q^J.:W#*ue&D{yVJ|<45h, ]v%F ?OzwEԀY.XOn±Lly @Py Ԧg(q&J^.SrVA nH7F3_:twPRgTjWeme)݅O\t'iLp/6Sq,u=ah1Yf . ?SrpN8<\Dr/Ӯ:m kJLV2su$9HeGXMT q]eaFf\M,(*+!,%N^%\uDk `QiL RƉ\t\uRXpU}M@hdHx_7ɜ̱;UhS@#!C#08?GN XKU MdD K }Y Ug,Sw=\y- `ME &!BRbBeȉ,wL8SnɎ XD0 ΉքYvօtbFb#\*L?Bə,]Հ֍I l @A0( (]] 0k]gt zG "}b7زQl貍Wi l4=FTLlKX4 ĉ{HVT NAp NpIKZwA(9)*WRkb<yI8̃=htA]>k ;8C+SI i'AݱKIG =9Ȇ\&oE u{ϣxXU2AmڷmH|RF3@C WaUrT4Ap࿄1 ňQ! YPA$ `rHǐჅW~K.$Mz&t߀V@ۙ8MfPg⬲6F"Ġ D*)JL!)pŀ o?&1Ԍ1\Ae"r@Xo8G@W!jɍބn.\&L4Q&(K0$YA,rquofLgĥFTP ( <Ѓ!\ $ŏtE#f1:_ ) k@ j'c';(a. $G1r*BJ)pC-=,t ($4tq̱c:0:?PP씭(`⌗? ʘcѭ 0Q J/)q ]]"HT1 2䡅%$kH@8ղK,Fɒs-C't-̒dyh̅N7#R( 3*x-*7Ԉˮn80{!M132[m2ɴj*`3lj+ūKJ0jsЪxä o8c¢]Cn!F㌳#kߚJڍ.Ӫ+umP<x\D>R6?r cF ~J,sSJ=wQ g'<8 |4bí'Dq.; K?D)j~ߗu#P R)KOU+ZA٭4eQBǩ-LXHs`>P!,)XjQZ2URlժO)|Y@k!_V\0JcսW/`c M|>#M<~ އ`;=m1QS,R1ԵLf K^RcfTq (Bʠ= 9H QEbasdH3Ff$`7k z601C*P jnPT7pC$"?@DXf ih:/~ϵ61( sdхSJ&ʒjg%.@?V8 @Gy#$<7i 5 2bLd(CĄjQ2IDgܱhWto9T?TGҁ<[ޚ:5gWJBTZR/tFBˠVU\%%&w! ^c)aCP)r"Rp*fHFsݬ :|;ܝ z(H9h[ۊWF 6,'+H 5*=#D"IZ>$ ԔZOv29f?bԞ`tk; p-4ag9jD ^*Քø2sKKwBH74G MH8.AE9{}p7;d dJng |%: MeNzHy24hN~ڧ& O) y6 &,Oca L│sKڪlT^"!`&pM %AV&PIJ!3"UF~ȧ`RrMIbP>I9enBE__V&j$,wbil\㳄`|  ">듨RPm 3m,c15ͭm~#FFZn}`/{Oc6o# ވmmralܞطMη@p 9NFÑgyesZRAG.=#df" /2}0"H8B*.$զS\fN 6@'e,sy;ai zXzcB,2[M^DL`Wcl5?2گ2bզVeJ;eV&%rE6J[pv1s6\K,5q\;HP̑Ci2=ә΀CKQY՗%^̽3QE%5JϰI]R lEPGG:e/8C%tS4)I48hmc٠$ DqF0bmӿ)MfnYj/>[cc7ORLKNkAشgF+i)ɝdEV#g!"0&gΘKt.0`BN`'?NK o&No`h0BiBFwG KB7lKxNdpP5fc42gsދ$=/!r%.J$v`d{hvI8.K&iu#utp#l #xpLDLPKfN pLЎ` 1G|,cVHX ;=R2BX >`>#'zܰ`bc#42i(Ʀk$-Tχe!θ2O6 hd*b@ 7 8NA|M'8[r6̲P5N=jVTU24&;2^PP06*. gPâ$Ef 7BC>,Xj=s !p#o]K(v\"^V0Z00#j`js`Bɘ!H%NiB$bT.ptNuvAD'yJ8ι` |&24Iw ((Vh)'M^x i.p| Af.o1~Mz4=JO'>JU\C %[/;] x<`.n#],n/%Q6AeG5(,/MVB0EQK vPҔ1HMt#GNy.8cd<7GgTE0_J1_Rv{-=lA*&& S<ɓڢ SA==F,]pO 8+'3Q Dyکh0" BdKreO%͋)ᢀB@fGaGyvxG}8^'&&JuieR䔲Jvjotx^*#c3AL ,ċ ć6XS2 A[Z!,< R!#"!qCQ=$fJ3eB=J[XhT)PD1AHǺ oMD|5[iuPtY7zT*׬vysy5ԌU*T5\dJ•ijanQ&oȡhr-hC֢(3U, M @B8Q9DW8k$af+CL$̄*gCdի+tpdeUR%f) FAGtvn&t}rtX VuxI,)(jt{pAl͝2+A$,1rmEZZruXF4P!ppp" Q$/J^" "%XVI}DQe$u$-S8 + .*mAL D l* wcTYxur{ AlnydMhlMW ezz+ŗE9\qU6$bn }TrL"ײ.քfao-a9_ /tHAoqQ2B7ˁ#brQւפ@ 88F bFjP6GFV6%kfUxiG|puXGn@Ew4JXq(I_iH3lNJDyxLIKp„{$K<8ĠA2[CVFeQ.b!"Q? 89 NAX"B;Z,B ,! ,g+H0LWdP( D9{El x fwd-wSLĵXDpٵtMnGktl}*"u%5#>%*lǗeA{`ڰ%U O.TZ֕Gh&S.H>ۃϏֱo`q - ȑ^( -*gZio'p*m$˽:Fj6GPxk)LǾ~ā$iAvv}TI{e\JEN&Z&6juHi:嚇'T)l4xG+J<*{d%20R!Q? nLo{U! X*`,J&0"B1ũn!+SBMWKp?Pn3}mAe|/L7Lٖ7)k,|IC5xDJxSvm._SD{JY[gg;R3ψN#^Q}Q5`@ݛ96\O\7 l+F=GnģSRG$9$C/P2 ,OG"Q#n  @o?(PE P$vD0Ñ94I2J!E0.!gC z>Gߓ7}SO4 !nRYoF)ԬORq(pq Lqy@%p*c $z4irI=z2n;a!LGcj /> g_t A_ :]T k:]= pˀmtAfZ+YJ:迨C<+XI]dX:8崓 \E`GEYYavkOyEV{HUYx)s"M4V\q[naF 1ADEfAD&eLyF)x(BPETXR(fccb(k&]9']FƐ9g9%0e)xT O@D^nOwHrG.B B ͺJQDtT :A*J98ƒ$MxN7i UBŇxAQ.5TaTyuS$MNWVYg^71nx`f% ֘c=Yd9VY1dY|&Zf?epaOYpɦ\imw\ ɍX{N5,RWZ춵?n|VNsyM*`Z|ZH-ԣ&U N:`j;6P0cSTfaUe~@EVnz#nRDd^(Dx~dr;gA 9bebAh.g{^Ŗx j95kJD0Q57YMV.,e삎a.}mrܤ dYYȂUo҈A9NP/WH)e]/v=%+< ;MrQDWDvE]$]%GLWK/KVvO)=XV:`|/M7 18';?9Ac%z379`8@:nu˧gbm٦K ~c/@ƅQ?7AdF&veR,8A-ŢSE[-ԃE~Q!Vaq wat=,gb/2x!J4g 1$GzL@V'@py2g 0M EWzXpx e 'cpzfp0^ps|`M~1 2,su:|ѷ/BL-G/r5vGDwslQaisӆIh7qvBJ"J(J,mvN 冄3Kzcoe#WFzftpc G'! ф^8r-x(W`9d| ]d:'7q{@7Z/g4GU%^E 5tQaXS$Wwu^@E,Ȳd,gw[6e9NvJ0des99L1:dVf7w,Wxޒ2!@.U0arg(hgg @DxD|&MiE~E's0*N|~g|sj4 L0},ijƌ3F#2A] SS51cat,ҝŒ6IEJS3AJ2 eS m\BJ#suC:*H:fD{(4;b&N1N2|x| * C*:g^Մg#.=F0(`&`7buQ'*abeGY?#q?$۩;cԒ,@dD`cR-JRf,s?6eNoBs7L427A4..olX!8f\9'g 9 h7F'AEKDzWI DiJ$N]Y|hě( !ri m|9}!Q#2RyG`Yn7I?hYHwD[wIڬ+a+a+5u:nedJ8. 4B#1X&C' 9v.jsA8C’6 !*1B388&f?oAa<O6£xr*FiQP?b, PIuQ,sd+EvQ:v@R~~^J[,bSf`e&bxy=?2l7!Ƈ4soeIzq@1p@!Dl%i DWU`i@$q :Pb"7q| j/fi:5!5>\ u5a!,i,c+hS6!P5@t3>!K#IW+ $tXX 0 D@+Uu$1vF:ud7aa<-h H[C1D۾9oK!e1W.79BJ%љnW3Ot@08{tP10f5E%vX1"$2Hыq ""}#bzSs/!Up-W"B¥, :\8(%@"@ϒ*#sSdOnc!^F0[;!$*Ȃ-3;pqC{8ak.Sap 컰axT3O'2 *:)E*| ν'qs4Ų3SN@2-fM [: r6J3re4 RKas8Çq\rNUhx1ElxP]eqK-m|g/:s:3u4sPjq{ho8.8GiXK4#Z4Hw%#s"@ZBQ!M] uֺf"A1P٪R&J@%hSH kج'z*؋7!Ӄ9Nr`$qp#2Ba{x(WaWf\ mH/2a:P_E2r>u*G7@?QC  @+9R7eRR/2 2;)l3!F!["4#9R#;9>@tN>WhD$#;X$W}^Mrӂi8]h7:|қljV kA34"!k8Q5v4Bg\Z3DZDqj9,+֝xm9e$],ɵ@'׶؃ dRzIc"W%فA($> :2mC$L":u9$#x(L3#̓rxe9/EkB8%Pbp_1`@)et5Rb.a,cg<:ISǭ*!+ IP%x!-ۢ#,$|mc3Eɹ2rB=rB~]:.CQBC 0X*XpAUn$0ҪC)0|R{B1HUS}F}6kxjuj`O z`Æ 4 In?7 5rϠ7\XሒK+/C>yB7''(=w`BO6Dд?P,pP K1`jU֮;l? ;^]@m[Ybڵ+ Mu$.;Eв ʵ rɅ9I3329K8sEPL#>Xv|OBs2>BPYŊ@~y4A `U頄XbF*VVWZ"i ^&oǵWqwTmT06G)Xӏm{U!ml;y nvvCaJ\ KXB JT;7|JR:%TAX-E\ 1̰Kh PcI1~E&y5(@eOco]GNҳ£t@#ձLddG.*p"zGLjpȚьJNFzSxwхYI,@oAe\)X2,d׼.3gl * [SW0HajJݜaBfn3Ӝb(S"Ub)ͺ(PE"grZ*3nPi`8v?yP5s w2C@B Ѓ,d Ym6P <V)[iIHn V KDe*Pb`)K< g06-1S9ʁ1!Ru-EMj<󴻂{ EE@T.v^p. 怔@w_wBoӟ0'6U/N*QBHS$Ey@Zn QAעD~"Hi#{Sߴekܺ]P*WQ XҶD$tWMkW-wiOr 0H\EO[3. pkH 24GfUKn2QH>߆%iEP!މk Q Z 'm+ǣP?OY~&6^vB~R&إlB,P)7$HA"7͠v2&-iS0dֱ"; Ԅ3)&,DЕoNUiA2էB&IOx e>6zЭ;GiOO/AiNDp[0Fp3TE OR>t~] iqKSwQ ۑ;bGrA*0T$(RN*N{W, (KҔ`Od2.x$oH JcGwDى+юz8t>[y)ckesSi@ё ,{sv@}IXG:n[:V_[8fOJQfIs-J0o(K.K1v0K!Re:]uk.т(_˻9c}wy:u¾ v%)Y B`UqC?*CQk8X @@`qr᷒{oU2{9 `! hQr-ۺح H#%|;*[% ɛL b nHȁ,>;2b #ێЊERkD>#9U U X"(r*2В- 3a=@E²'aB*x4{:1?0H!پ7x/)BtR+)B'I)C8YpR)s8sfQ jis83 K دz3j\+ SE t8a&xl:) `*\ )8oF8gc*;Zm#; r%0C.z:[Z8.)X8Pë 46+`C9š4J$SNːr3KS"D  "Xdّ!79Lq8̥ &AXjK*,jhil%s;5I3/~?x0CQ??f\M \߀١:[w"6) +xdquer=N$(X E @ M;.? (؅p/z8OOJ۩V)N1@$29% Jg;m ]t4;PJGТC+d;c ѮJhR#9,#P#E$:4c)GrKQV&9eBA/L!P!AE)֬UBvj'( CʼndG? HbX8ӂ +(NRY.h!/2cYTtMy; sX }-sY0EhH{+5zP1؎2!7Q鸵7݂ťŐA 0 حۘSHkBSVSX89Org[M_E Um LQMk͏`?Q݂2;H B/.a8\G?@d[5ЋՅӤH|F(@ foЙ,VX\ )X!i a6u@ҹh}2A9‹ 0jqPFa<}* ?ōa>Z?iTe)C"&8(%AʧH,RD(KM 5' 7=`Cl&͖E# Sp<6 tLa*3)eE̤:t/o[+/{=Ԧs+/KL@$'tBn Q *I3n'|6r[(ٛ\UVs X}¹+Pʩ% Z)Y) UPI&,<,K0C om}AV)!{s9 ]nf.@ץB#|m6dN@ sGZAÛ8'p@fֈCFc"&Ͳ y:Yl 5&vb_M-kf9WK!bٔDNM=Ɯݼ7sٜq>-Fj*8'Uc(@z񚷉XUYS ] #9QQX+V 6, OMn&(&6l>0,f]T}Ae^TVn6Y( vS] 4cj̷tKm'*. ʯ}M D-Rh(؎n6ϲD3ʳ n #A %MŻY^~͍B5ܯi @>!ɳ yB9{P=֜ZQ#f [V CI/il7.ގo2q\Iqa\zeclj^i$\ވQc!p:E6.ȟ'b`_4 4I">nÒ9@RR4o$Dz+%D 7v~# EٜU@T$8tRJ$$l?n(siŢ<9k.af5_o}U_Ym^' ʵWaG{ /xϣO2t͹nV+Ñt Vx9 ,ģ\] V.(8Y&`kk*`ƒ&lL5//.'1/LHP4gzPF7Os8{s)H 18 xhtf/CC!!:m8@< P*%rj X"nn6Ҧ4N`AwFJ1`v}kK,{RE"f4FzkyΖooܢ')S-Ūirm|7q(ӃW!Zޟp7 n g\/_m]8F*9G? , 'OBd⟊ ,PQƄP&L !),6 X2ѿ "B1`CFWD*xӣGMn$ 2$H۶Ie" >~RXU9 (HL`2b"|r?cޱ c'D0E(؊,ڲnwŀ@]/) q(P8d9=`Ӎ熊T;r8(p;~vqdJ7:, &E 5 0d" Qp z T, ba\UA/oAHؖE/e@F҄H 2.0/q_+`*P F.4z yl3C8(Ch&4ZcDv=Q6TPWp64;#m@ v'64 ZY 2+: yVH7\;)v5nl!C "QLR4,4.G&GDo1:.7#4'Reh4-B1$:DQKT;<8h$Ǣ]'MtX9iWsD$d<*I ~JI&HQB 9.DdRD$*c4YhF5-+Q&H5\s=a$)(qctF]J2{nP:iB>`WtF״O#;>ҽ]QZŚNR+SP=TCSEX#XrJOH[Є'<V*-Ѻq(ERb0D1@Q,Dc1X%Ի5GUKQ킌'!%&Fa(+Vؙ,^L46(nc1M2S~u_\KB:P Sze65M,o4n^(FѬ\;jfG6iG 0#̝?)zr{!ݖC&[WnoupRB%~W"]dcs#EkڄX<7oӓ7܉IBBG/Y76Gyqr/l$=.4X76J~ D&P{3HhBH|8&2 P9KEr$cA1|,9w*,F&P!0 dZb'>05X(S/4jϊ4a&ؼ <6dc&ea)/y7 Hv oR򝕊G:YL6:ۦ3N `VDщ.ZcnK^rXT{ةI5o_js0Hą܈LnZBsh@<e8zeAA} 4WJ t=^ܭПMI#M ;ԗ}}F5#8H?j JJw@iL)AP$\$r\a\TϽR@R)~:_`Ў݆JVFe]yUfeQzh@雄۝., 8 6Xo%XuamYV(V0p @&+Ѣ^p΄RXMH-̢+U4[J0F Bv4^eҤ,CO3 ]"1!KIHð BU̚_ve_,i=pPux@ ҺpP#Bj,&sתcfH j&g^n^* NE)gSK) w 2-<-nЮf4Wac9jO8“VQbX%xㆵtNk#|g&ֶ>W|"&MLXDX%5˚ujGugh*r XaȫNYkL ?,?@AЌ@ewANՙr.bltf/L3_kXVm(+n˔.\ϰc NMB*$pN wt]$!BH+fZ$o$iH?ע`HRۊޡMKG;qߠl'vu4w~x&.խ:HkPCHyfT/Ns/.]~y ʎa68J8@N[z*O3*O .Ӷ #SO5JvID'#gs7G{{XeH~þ{оG뫾G7AKҁK'M+{dM, W+ݻ~߇uEj \9Gx~jE_\j߆yNun| 6D P@ 6 J(..(PH H?*Q)ħeVV С\i+U&7b5C'~CW'j}22sd'2Y-2P.Xi yhQ_+ZEVګ  T@Ea. {롢żxU00C]th*VpM_\7Q`GWv3P;xǗg vh7o{Ub>~?.^?[n8V8P@v8p`z '\@@Ƞg ?ec dTq%؅]],+Q, /I-/@N| b,?ܒ.C0' >H<\ Ri:m:ZI$J: ~a"a,ySFAUQJѕ*tg  Jj r=#2'@ '01+b۽ZqJI+MUi5^SW' hgs_~p6h{cNgpnso>ؘ#OP<믽<^"$ʻK> 6< |ށ}C?Ԑi~6'[`eE + 1/pGn @O˰3cea?KxNEW,Ȯm@zZV2լL#՘֍4"LkC|$A( `)A5!ZK҃#=Iùj@D JOԢ$R-u r ^ߞ)1w(@MJ8FaJzv+YDvD]%(J̢qcWݒS s-Yr_5a,/#.&6 \grH%c&55'Х +B'd@rlelP=㇎vȈxf? Fb,Ph| ?Dj nVΨΨ@.&iHՌo氒G\GrCN]2VBvdDvD&.G` 7m'BbFpn*:Ƅa gd4d$8(wSB@B%@Tͺkutm t z TzO `)I |z`%PV혎|}}$,*m/o5B0*4T(2\5^b"5&,n;0 Vdj1~ч~H[0jT>\*2bpqIh|U"(V. Jx0k0i#dKhqJ8ON" +m/E\C%Ӡ!&/ ld Ff/"D#` p^,4hQ81QA努;2><$0H3QPӑ(@TA;M5lf0$$GML3%>FN/&2~aҪhH&n&) c [$K<)LlBe)YJZm)Xv\` G R`ltF˲SƠ-Gڠb bL Q%$/BdtBV(fa,Bx/BKE%/%080\JNCҢl@$F .%Dls4sO Tbjj BQ}kUQIH79?yh*L.JPeTUTKkVT* Vo 58VQC\5pUh('M.cD4Ύt5/H2pa2"wGD؈ ?CAJu'8&A0T9΍uK*rU3NLK!OՊE.||'/Œ+US` ּtŚKWUQ`KW&ZH cByV"W~B%4`a~>[کW&.1Kj\$840ñ&#J|ďM'xNKoI4c=AmQ?Pks%DNds8ql=S55dNK@HVT8 BCD;W M!UN H F<;DH F$F$n|Jr $S&)H -=r!fpfYFh,mR ǵnulMF@\ֆBxe" kzd^g`u%-"*zTB|uxW~ -'U@tdb*~aYw1# K%La0*Y(0"&jN#bQ.ñTNK+iKXȘJC=tSEǺA, mcǖ<3f8 nC6xK8IՊornQP,iVqMMЎΎys,~(BGD tJ >ѧ&pu( wk\U ؊2"Dp>[O24b"~k."Ov@L+RXR$Rʉ&(|ڲ* @4~%b?4N H"€1% 3S2S3&j0bNsIE„VW4]9:j ɲAtz&grP<"ZgՆ Ū@wlwljx̄6n vnvIӦ΍c4fBa/} | nb ȧVm`ے*˱-e/V%m(q%G{{k)z uk 7x`/W $ZBŁeYϹ/@vIڥ*mkhIŹv3{3:껙.5Y-G"72|GAdka8o]l}(zqeg957 kT ݙ_< 8'8rRu "_k<3p/a/j-|R_%WS+f!~FO rAZ+&و>X+mfpCT&**<#`T{%`Z~ɗ*{~KUz |R4R;K!uz~`1gvI2$3mq#բnq4|J _G^-M[K=&[fK}Ӆ_ΠO;懖SUNS8kn\gZ4gZ%~Vm;gp}iȕCrWp/|~I) /<)  ]׌c[GꞜg\=\%y 08p  D0?&@1%WC& Z4懟E`&b|`  ψO#Hty|cPS= 1eu%KRݨDɁ"E4>a$ĀC#'p"@ GVsgؐ gy(7v K!egkC İcbȞ#`wbK}={㉒7(~߯@``Ɓ 6x`8xQ`!ᄳQ;P]u eCt%d? !0@Ω(jq?+~p,KqqֈFJ,"*WchFsFJh` oPŘ!B-&n&P􆐈 T@8.X,?}@,dMcH4ᄓAHO:%my kU1SA-3TNMWae)5FD*i͂ cA#+^e3At,a&k Klj0gMDNٽ 8t:/I9ug^]z{7' E2-Ł238xGwss.쟅b FW":M EonO.FiH*E lhde*X? АUw(gW/M6ͥ[ѡ" Md 'L4PpZ СG^2!d ZūjF;O<$+|UkN*hi@GG`]|)qnyaK. Zhv hS$88C>$s86!CDd0dNe9!=Ns: TURDtKVe!H]vAKWRuE$f&4ZDv~_x%hwK,DhXwGn;\ae8F,4>k5 ːJ]py z0 `.nL7x 2)4 7p{{GmLC]_f^fY׶*>QŊvt}e8d}%zKqKӈ5DswP!%/a/ FxprR' V pQ`%@"!PJ$Fo"BAS14TcQc%hc5 c)SQSC=TadGTDU4)TI9w3?t=dOD8tL Ut_e[eJwe058t7c#}pZD>CO$w=/Xx6l*ugN%7b̴ Sar9Ш+" &w'})\ANh7dIEN2H5+_9Y~*ߤmg\CLA|Fa*^_S-PD R'qpq/k@ Vv@P.QF !Q'l2J"B#8`!At:#S,14S4;C,g+r,GT.3-(sa dr.3s" DI 0X DQ .@g T5UCs%E-[X-w=c%b16#-3ON҅'%kYQ7jYY(V@ yVk9,1Ha{%lF \ڥSz+_NQ{m{+su2!XN5lM$p_w-v(#A&]5&UR#a%9#~B#@t#A9V#""ufd  )cr>9<6K5 Drr DJT94XDH3/s>gJt=cUZdCg936ETĄ8`_ӲTvD)$aB\86;BDU$NkYi:[Ѥh|4(vX*{YA+B @O&*WL%*z}zpC>!xB5Br:CT!rCYEc2/sR 5dʼ֋ z ٛ :tOIb4"F8!)xG%*Z:u}SxvX+HQcs7iS12N9xi[1*Kx^V;Wg!Q\7lD9A)?Y:KNQ^<gc`\Se#vtGUK`Zz4&A*a+Bk 7BWza2"ꬤ0nԔ1*bx!萅|l!rbdI=E2'sKd2Cpmt KvKw >(X4P!@8a7XQ$c@s?$S^ɒ5 &0A= KC9x $Ecj:s"g?h[ɿ>H"C*ɶJÜ>~"o0@dA "PB /fl6䰲~AD%_tYT%ŋ )@QGr)ܱbȊLH1~J`D(Khhȣ!L@h 2M2K22M"2:L<`H&dD $@QJPz>0,J(;Z$d ΧDj*:*j>RK]R+~#X`ҡ>T "g"*5ɥJ4(32o%w6&[@wn7w91Dm bEμΫ8K/@= [?׃ہ]$[s5[eCVh"OD^rƊ TH$"0W\(PDJӊ4(n iKl,S 2Lo"ZK (jq< PA#( U ,UrD*"#`֫r2N*%FԄF%GGV}_2-\u+-`BX 04JF0`E27b~.7^u-45 8{ͷ |#):QsG< KSA( P(Cc"}txl.$`ofsAj635a.vf5@L]hCXDn_VH֢|$!"Q"@$)QIƦ%AIr{+H`nPphOq ST3i#qTĤ' L"ƸmkJF9prZIGn4A$(9K"nSWD-hD_ xo鴼jVfZgh$LŽ% !2@K4fv>8dUo ]R`ϞYN H' HSc|4 ,>%19+\x3ƣaMmb&taE~?"= )(u*,bjHa< $Fy ¸CJdmvۍnDEr2`UQSUL4 .r"4#+a]訧LNXƚK̪TTeʅyv/}rY-,-I[謹S_tuq, &aeEpi0{'(("BW}hСHÕ.#{# $IK1!11]A.Tt71<\:J]-+WLȶY'sns+T$)mU)&aUҨo3ٮD: Kς04r.<%BZuٕnW{xuJ|`[7W$nY_S~>G%%o>BUkz^ڻǃl'OgP(;80 1452J-͔C)c2k"PdoH⏉ф(Vsy[BG$@ Eс[-N<0Hq:Ѫ@:y/ɡ0+=3 %ّ ;*1q? ĪKr?0Q;0NHyp3ѦO%QcAM;&\ %婋 lLiX [3ȼ(xyh9ml[7C760pZ7w CS0Ec90 J)8Iii8ө%[*KёPz* S S1 09CPFh⛶C0: ĉ9Lѱ :b#) C3 C$H yAB:t B,W諵BXձ2%O0 A8;> 0Q[Q-])ʺ#%0 cCr!rʼCr݀'?q''~Dx D݋DBC7I>Qi˷r|Ƅ+)\=3040)&ky8 s/B>ˉܞ"1,:11*_IF؊=49B;iɱ9ۣj IGK:h!«8A-XȠf\%A41-4H³qɺ{I]9"&䩢Q4e%OPxI{w!M.ڍ ȎJDDsQJ/Q0(x(KXܷ<\` P,Yɻ 0.1ja ̈H@r-3,Լ ;2 ?BI * ή[(3!N`BKɿH3kA8fEH3 <-OWYXI]Ұ\4&d;#X5d;S4i`PGZˊnZ0Q3vፃA˛PD!tѬԍwmѰL':K y/M D|TXj${Tny88Q0Ve ON"I4<+SpI93q@<IK@2P\Bay+i9ʱZT+r5[?ë:A1 "LNRUň|$H' 3k &U*@q(lF.<Q+ *QԊϞ jЧ)_h< #(P1` ] cY<&& Q|5/תc x^QX }H PC'X>}XYV艱hEAW 0V%EQ\0)ӑF @ w-vU2JfZt$A9(̒qg-GR퉑) x6ѿȸ*H$ &B[欚l[U][JCVjſ;eZ|e][^11&4\_=dJ W옶׹؎hCn QxG4HV( Ⳡ<>xct{ !1ZVŌ[ W&j L]_d1n!"N EڔHe0H!AAP`%a`6iߴژH3#H6ћF3ƢEg~lQ7ɸ2MfB;TZ&% .h:1IZWYi~Edb;M˅㩒̓zYϕ^)p ٥ R1RA< ܍Qy0HpϯM j%JCVdE~DpEF%>X8SK^# S6ec랚Uv l`cS B#Ҵ3!HqZ‘Hȕ;QFk`ͺi:"NLmvdGK}9;fN$=x>FxQ Իٖn#n=,4_"!ƺ?l (hҖ԰(-b*iZf\p_ľYMc-~z s s)E`Wߝp^FlĈ/8nQ p7ؒ)DPO$,qK䌊!S0Z{s_x~_mY3b]Xui ھ- +6ڈ`Eˉ^aD"_Ӧf)ኯز2o9$*ӎ@1ز~ yi$9OMNYxFP+xPt=;\M*M&0V*/C*In|#(Zg1}j dY/^V ۥOaYi.pMJgڥ_k/0KYv D^dk[0 .Jx |Vt'u!{\~I`obW~ d25i]B5W%f-,9W2 ߩ&N1M1'MEm+PQ@E3ذaRa?LpȐ"G8ɒcРƃ&h|H`懖v\O 2 $HJq@SZR~X+Eˬ\~-۷>r yhuѡH)K8y;9g3w&E4ԪW/ ׮\uü&8o.L? S&JYJe'%i#" ARHFaeT qQJ ]9`H's|?;iO9D@'&<9OTR]4x*IUWp,j;:8aZ:˭E[m^bla9hIvY{efeGg@Kren&n¹+o G@(9'1.tչVhQDjxvqxQY{'_}ٗ~?# Xc(r`Y%*^hmJqqj$B"9*j)69FAHtf-5P T UHz%M2@UDUI]oi˜c Y JM).=ͧeI{F>DP7#Az"C$MWDUR4t~BGfRKKYeE%~څ및7K6 a lN@dE}1AZ?7fo;p+/ms9wGt?Bp2aɌw@ 0F;HԸ% W!Ռ@]JV -fB!Fv3LErEH$MOS|DIkHR"*`|8D`I]<% h [b)IGGDC3I4E[E8*&RJb6&-`B,n >7W Ev @MB)1aSxRu,P镡'Ba.r-2W.{1,J # y#3 ]``.` V-\kAdD\Һ5o:2;ρkXL2XfA&fI >;ͬ={.٧x(ºf']l瓁(.J%#uhECjH)㦑8m2! a,4a)$L&!AT &\KP3HHA aZAMԌJ Rd*JD0""-q/Lő*RL'^RD7lD@HDMl)R𨪨dWe|ZWx`f0<@f!\g2@q`[A5ٰ+^g}.|&_o_Rp-NzO9|Λ` `\# bzJeFSM|xZ^40Юx=G( (L-xz YAC (MO@|-)SօŅHQMmEڞ,Ȣژu RU /՘Pѕ՜I[}@[1 ET dNQVT HHM$]j`™甊e ҭ! S(V RMj y]nŅ\o_^o u$esaeiyyaUpެ$>aoddaa=N t|1s=CqOg,"W! !b"J@S2""?,b~anJ-K$tXATR +٫X(Y\YFX^X]IFXy͌P$S Ė8P 6 QJHk>ԑܰH΄Ẹ&ueA`ӉTXFncF@NߠW Ȋ$Z00G cT@G:a0Q@=Wð$Jn$$MK݁NA^:IhQ*g(`(E"fXS"bN"%SR?@"ļyUj% WR,-̥/ Ď> vX@F]6#"Čb`, KlT!bVQYDA`e!A2@]X] j1 @ҘUoKgIfmiNМph)e)-$`Qb݄\SݛRNBXd Yc,i\]DjE.XZyDF*GBpQ$Bit^~Z;un允NNXC^^Ou)GtG$A8avDzHS2"UbV(#%j^j2EjyHX&ꈆV(%#jd@H)>&Pi/_VDMUD002`I% ѐ]M6&mB *DQjNgU1bV)klBdL=ңZXgEV)F GZsB,(e# I-P /+Y!?DP&M2Ԑ)DRI p>&,~U jBh#lUTy2 gM<jWbg-FC_^z5Eh71Odjवfk F 1Pu$hK8Ee+VW+ne5$ u!+#3/UF"$>l&+Djr&sr!kn/M\i "戦(+0R)k2CoPg%BP ENc53 Y;cc2DagED8vbbdC<߅5jMUh,)Q<٩i;,bv=.um .h 4?g~ԝ 3aqcK$r$E 4#ltjFHXtnJj4kn@VrhSځzAO/{WkN"#Kr'O2빨Vk$'oef(|gr~$+&7b5Uޥ !YCo/<<وYcE^eΜ`2vj$ll"gE6oώ3_@ Rx*"R6}&]Tx@NS- jB3։jTMZ ovzޯd@1jqg6jPHϡgwHWu&z9HkwBFsk]hp.X~"ϛN"o4#2>vĺ7lnU^CTgoC,!S5+OR@DgyYԥbhu)uF<Һ?MH 9S$@S VQnИq\nn88j&8iV d#݈ʖ~ Hj X9C<`{io!칳*cZXZ@k?!=S|6̳roe|s˱uKHKu?zv A4{Kt]yX9][T+}zVηOީ(9CV /8$U:]'1Usr/5S ݛ"I=5 zS T{ܳ&X9ߍ{Etcf/Zꉵb8/uCR}@4؜Qt&& NLՔQ҆HpV3o&[.PvzWdk|XĖZ!jA,:@PD<7j,ГKgx{7@gǎ&H"$ \BXDJ$(@M*)y2dʏIy@2 Hg4sΗ~DlBNH^TiЪT^jNirjF$h@F6#jp;o^f%7rBVX Ǒ7C0f1{-3UUl̤ 0wݾMtF:B׹Mn)e|)ɪ׽Kh4oa!$.1\8a,djj6+ыdF3H ͈ģ(!K٣:}P I.!M.y̥喲%+7Q ED /1IHbr*LLoC]6$(R ܤX(Lj,Yr.7B()Q\(b#Z(`sݭ"sͰ\ e|%u#j9G6ץ.vI~9ara0å` x@'AӀXL!kV-<=ħ|+{ʢ0ZR޷dO?AX0=DbЁ|@"ęEZV3 L54?9f$P# .iGBLg{ ړB g<$ y3#C3ELYyȦluҎ( 'PR(ȭQ~`~())Z=45"ܨF[AH͈EA04H\ŎZmȍ 9(G)K nh #X*fy3 h%ts^ru䤰;u*/Vˡ2SK| Be4Xt3? 9>2d!(CB 2^B Laq f--pZ ( !aMW%D'H|icK c}ċ0I_TP?Du&EIQ*:"ک'IܩGBEBpRzC>E-qE )V3w*s)\(T.1`:ռk5XRBZ,tO!tz&Ŭ;l22bޡ#'qɺ Į\tR.xUD>NPtI~='< Ƿ.*+2[ I0?eJl@R?9;?Rk! a q@@۔ 5³@ iKځgd$a?5es#U㔇ND$DMImﵮ+EWND`C9q@ `Evesa 8澋o*T RCcV ]d:\ka2)9Br2ժցUe$Ɓ1ܰKoE]pd pPyKWJKE%|͇9xh rd-xT ])SB0%D@*9Za̐5S;g@< FBBA,ώQ+!"e͜Lh Nn0IԞ$˸PLoB0rM횄M(*~ƿpAj.jƣ.'κmo k!,v)!C|UMtnZI#N#j/n# rVo}ku#68#"q'%]eB>,!J:X ^^&]G^ԥRQSҢRv d^<]~>zљbe/"袉~"EXf&R&`Լ1n 6*G8 /*%$"$rDc(mn ;䣦 $Px DBn"= nRodڤ6OoqBң6Lu " $lX_r  wU'=͂Tm>[r6gd,mo@ᘏ>rCW0l:,9 K2G%4R0e{gԌg(@RrΙ.DF񴊎FC&Gѵ &$ј+!Ժ$L>HM.K,bБnF3@"cj 4K$"*lnzB(: ҧxZLm&_eڤ&Rmr/(A2F5J3c7!T`@*6ta :g29{':0T2"[-%˰,^)DF8?ij$/,11\ɶe0sIx(넎423$V2HQ&m$ЦPB8q4Nʮ4|»r'ޤ.$aj.xSg3plMJ5p|#QgsqrJ=8Ll<`o2_i-id.bѬ.yU=rJ:y,A}im}0nX 4[D}LYr5+`&|}6':I斉b $\5ʵ8Ce)^ bx0I.khB50mJa.J&`sMDdsPz3kBB}Mw(6'%|"ldB$LMenfO'x#te ,2fjf-JOtPScQ#|? i0^%.'*Fu/T#w<юx$(?/V-@2~fh! `VmL8PX*zR)^"dByz'-l>nqbE?9lLWx[7>iτ*!HAmEzb(f@05/rOKAFd,G4 2:o.3'3 #.&VL mڗaYJxb'FS|}6FҨy $LNY9`bZ* QXhu蛧 9u 8l>6(QHW9YWu9U 㾅: ;z氝 }xc7tÄ=wU:QR|V`9~tƻ=j~CdzEoy:'-ɲɘi~DE"/9qٳI!Uqü Sʜ_#S0&KP:C-F{vT,Bon{8oLO"2V6eUieэPzb$u S^нCGN=zu6Y;mݣ hO jjI̖S΍[:ߚy ^@RV|Hx⇞yǝ:@+~<ݡ'DY.*}~>8}F޻Ո!W/k;;!m̉+1F9摿їT=ݤrυ4YPo&Mtzq>k7nrMmb5y"&2PeC}dRz18ַ֡Z  ,(P Bp(_D#Q KD0Q?&Jpć&hL2cHl.Zs >DJ???X*Ng,k)Xf\kK>Խk7kݬK5P #Kc $Crg;ߡ|aȗdΕ\!H"ujp[kǎ;b;@ۣw> a? m8C'!:tOO"7n<.P+pK W>{G)!z'|éG{ :W^t\gP\rU)bpp&\x=܉ WӇ42p=TCBTD)ĤUTNDIN*DRY+%GcdIS4"@RI頃GJc"6IVmNhKY=Ѱ"mՑG*^ZkreyTX`!vbEVgXb&YݡkjwFZi®[v(K[oF[y٦ q!#TRtxR?u^m s{a('Еw{Ip{'Ptmgt=̡6sQ& 1ta7cKhק>r 4BAI҈A)76ВO>ADQNNcI.U)L$KVɥ"mnՇv?} gnIbZfm]SywrqQK^~p9Z 6.9`K!D?1i0dzYlm7k;"Xp9/?).b~`%]"8J_pt؞Mg0q5x)qz\yNx#Of}Fv k_Ĵ }b,KV{ ^ 1w#b,?؇)73v :8%w6$LI  7R%Q{vmI$&d Gma:@ Qv'<-ɣ~DOR%*~bt-Yo]͌h<#509Ar~1b8*01!fG\tKIPu%+b@$l٬E. $qtD825[V X=Ё@ǀX" + ]dp9K I0&|5ѳn]˱r$JeB*CsNpV%,fTRk魂8 HҖִl%W#h%U=}CldR@ I1m DX}V͚}ha+digNK$灤!rgL.k*Z6#:? j.:Qz nt:%F\Tk:DѺuՆݱ lը2vA nOYӵN37Enf\3zehx En,7=_g$$͡ &Z߅ /|e h2}k-d0gna!Ck4ldXDi"E൰sBR0GREBE-bRB•+=@*t;'B\!D&D tBt.:uEuGgprtuLqHuE&Sv hgm\S6,-8~82G999G6kkx1:`U3A bYNfB=E $oד/r#7#Yw=$>r}gv,ϔMUTaִ1EM;}%Xn3-%g2)4%-D&fO\}I'p\QsRi@DJGHAt"]T65u5]K!DeL1QE6E$fJ#TaehnD<2dJf撕8A3G)tg~%57[\ 2A&S'OQk'S8hKQ t vNulCeH‚bRy80kC>S F+P!Pa2",2Qا-ry XfT"LJ #cdIo=x3pGR%)G{҄{3|á2R`C@b-yd+Mw㤓r?铕%G/"9-OV&6D(3W%7Ibh<4uN]F`a)uiy6 Ȗ P^ [i`P8peė*r_*k;TF`8ж[q'nbWVbg: X.}0P$Y=gCd?#OIH:~q}1dɜbD!y)ɛ7R-2ÃA-MVI4CS4b~72{4zvEYh%6$FO 1"5I(UХF z. tL h.撫M~p'XTwušu6=bė{AF-582G(qHb_d2;1Ib"y|΂e" =30M'<'R-XNҹ|15/"OX5,*R¢K!ρ8˰5b2 1Y03$1ē儳[rܑ3e9#$!Fjr&$CiE]& )B'SheiD J'^Nwf)iLPtXJ6Ŋ'zϘixsHzSvg"yp!H!Ik)G[sZ'}bVbk26IIbګ3]Jd1҇NuQ^ÏA !35fGZ$n5b6{; rZ% "geuIKY%Q8gQj=$i]ʪ,Xˀ@g#t؁ɚ(nvk0|g€+skpkۭ—3ÌI+‹g~;AAIrKp1_"\(3%l-;Z#λm"b\"J-U7&I̭QrezkbBBKAe;ܒ)Ԥ㲝UrJzQ!Fl,k54ERU+EP)")+}pH%A!5[c-"2INxKB44El86-O9ىE;Cgtj*Dܵڪ]޳ztL!uM7;+x8 vY6Mt( Sx`}F}8/9e}F8_Au3;JQxb:~}Υ+)܋u4\@<&'[Bɕs<[[7n)!+!؁S!FyAy)L~-!hP*T.txn{qnWaYH:ĭȭ)^4^|y.&d D[K_Ybؖ S;T"=6=je$lx;pm.ݪAl5̸Ta!QWë%[hy/Ps/A2o3RA~K[*;[#[Vss}5eJ "MIpFӉpxl>~s~,U8]8m(s"'"Q7B FuJԫJͪx U' o=S*(zQ7c35>g-96+9w4ʸ7|ܮ+C_bȨu mRZ mr(Rf4v8C<#9C`9z,/aΒz!ۨ9Nh͡|~܄p &  Lâ1M41OhHqDF(OJUfDKR̜#J(M<0J5'r8feG5CMs?P L/Tܚ+ͣV+Uie:"lj%'6]a+Y[u&(аda$~(dB_. 2?0/O?c?#O3iuڸic8y#_DC14Howe ֘%˟}'VSUĩ~JР.U҉2J @ j/%|:LHD+%JNDR2"*h(:2"("̣qJ&p%U%Vq<J2S1yCdjM70K2QJ@O*i;I:,Q `2:rm45>Cm4F5UOE5&"$pEWߢιS)=샯T*/L. LF5`${4`%S XZB@=;y85BL#)LHf.qɋc>8$!ex6;Ӹ6n`+FqO̕HX"(ʏO9z{nDjt"gG[rKT⛇ xD( !EKtT.ըHE*Oizpʢ~ӉD6KMTj'UH(eVR2&T6OJW5o?~$Y*r(:926Toذ>Tf ZUpt?ݬQE+کµ>iQJԵVRT>~o)\4Bf+z] Iwqq"t`7MdĂNCs[tNTQ` DZ4rMdT9XhK5P:%uI k'j`GX cp=aX#&qM|bX+fq]bX3qm|cX;q}c YC&r|d$'YKfrd(GYSr|e,gY[re0Yc&s|f4Ykfsf8Yss|gʦ-%(ش ODH_};L> :,?>`gV{?{oCOn,:Whdz o{\1'|Nw?mO`G]F\H_?2=i b?JӽF~O$1<>-wa/llB<#^ >2w'z+F cmgמHhc\ +޻>8{'TFmc:'|=N+-¸+{7??ۿ9dCAv`Su5s4s>I,jByx4dJdzϋ [4#˼DDB< AK²x@E#B(@S9l,BCB1S 7SJ3ET$B:D~C?39}ACDA =:Cjc=988uX4u T!ȄqV4U@9*gS+4;5c 4;}G{8EtOL͝U5:xl|@6}Q$,kQ2 u*0$5DQ'#qJ 'E1R-űA{- S1!,hIRxRTfEH2G5B(&XAJ4G!D3?T9DD08U>HJ:I3 WV]UbXǭ! 8 eYfGOȅd=, \CJ|dC uXO8EP=J4SUڸ,qnMOT57 ԪjMV6%,V)̴e`hXɖw> V/$0sJPǞaCHD'%<1?U@7c@*ꨤjꩨꪬA>j?"BmϦܖm2 ^`TOSV mjEX9(> mz۟xkN!fzm"k,,H*P4G,qĆ(eZ)aS3oŐ+K !ySp0 Y)Bpa$;ܨϠ~ AAme&;o,=\wE]Ս6v16T wpsǟ,Oo;H`Xᐺ}@{ QKOb% ~߭a,'!zqn:SOd&#{k4/+"w^3ǫc9{^Fqųߙ:<.{ĉ<'3+&aH+:ǒ h4`ݥܮHGGHnwnn#W<Mp`W ]h^ӝ 0{|w[PI P|Sdfy 0E%ꊈ 46 f@!_h:H(q< BDـKp2L/$>?lTxȟ Lz nTXD#^9\]ȑ˕py\B#R̡! YIL:E?C1q$4IjZ̦6nzAnI_2H<:ieF|e1YMzqd=N @JЂhh2MD'JъZt.3vf wqFk>Hd)HЋ8ͩN]:h: eOIԢBFMR[:(H}jPTPT V*VkWժzdEYֵ5ok\ ׺ծt^Wī,-+W׭^5]aXm=^Y.8rf7z hGKҚMjWֺlgKͭnq+ pKMr:ЍtKZͮvzw xKMz|Kͯ~\oV" ~#`Oư! CcJCL(>S0gL8]>2;aH.r#+M~0sL*[> &.{`h6a 6pf1L:pg<π݁_t(GE+%'MJ[ҕ~7N GMRJTUZӛƴgMiEzҝ~=Bz4buE(nf1a?b0 ns7=fp6kd! w,A7Qou7e,~fj6h>>@ 8ā`ȸ/0sA9F @ wm}k~_KZ%9ws^e'A!tCG҇t;'IA¥n \\ JŋgcH%]LveSrR]p@-ϛuI>w;;^+sH;^)nw v|(V{y|ه0 Nv9=IzO\;^۞E핾o(y"cje9їwNw>ӏN'=Jz(Ros,gd?@C)/ , x+vw]@1&(xwnox7hwyyWyomog~'8z~}zTp7q Wq_wu;h'|Ft$h\aj\tF''tOxr}t'GMtDž0]Wog(zgƆpBvqCvWffMC|rD!xwwFxo HHwxWy8,m?oPvp8g6~C7gqq'uǃ{>S(|÷kKa|kOHWrtAWSRhLpC}VWu7tl8TGgH~痊lh ~7"(7vXyIQo|w(ws'vgn|( (GoLo"(gf舆pF'qg{qg{ȋ=8tGi]F@NQhOHF˗wh[Mp9)XzgXwXv뇂'oXHoE! IAixxwov׈8I[֗'y)$9ۦnvxEAm- m0)gh䷊IqGu q>IhgBy{|ChE8I(ƷxjFǔR18rG}|IODž@э0A0~^'~,p f6vip8sYyvy|)vP wyp9yx(Iyى)mHu`lfghzb.jIhDgXWGBكJ7*h| wMᔠٜAPLQA8և|ЗC(rطM7uSpdp}mvs&+xrr )o7n\fzhuiPUnoyǠsw (y nן&mCm"'pؚǦ2JP 'l7p?jh@HDq ,s ЙLMʤKTڔT:ٚ|AҹPhAGyKwUwNhJ{iZ1aגlv~Aoަpyy)Y w8yxx琋GwkqHkPo)Yn6 ⩞*xzu j wpǮ5X 'Y{]j}̇rP HڤP*Z[1BW"W}Se Z}Gk4YoAqolAjhlxn硦*e݆v/ 10qvWo wy7Jȱy,ёi ˙ngVWp?i:붰ٓWqee*{H@}8Z{*͘M|OĤYkΩjNYiHAZFٕht_i[DuY˪*זp) K顟۸C!w j , [[˟˟mAlxxۯoþ+g6[㸍38{J@Kr;=qG{EhCBOLɽ;jغˉjԪIO!UtZ}ިX[8;k*hn}+n'̰~~ ‰{BA;0,kAqxaX+n\zǹlq x(ij lmjˮǛ;xG xt|S,`źCqLͨݛ[^\ժ]j 6켶'l{zI,Qwkvڦhtm\,+w|ɍ+Ш& j~Iذ& ns;U鐔,C1~:ݒڦ|׭{:,㙞 ' ' ) 8tCjr=JQlΝŭ݊|E!DQ Ϋ_)z}`^qZnWE2AWm ^lN pi 8yꞞ~<]-~m?!ң;Nⷻ7ȩnl>k4,߸]S1(;}_.6Tt8tн@AfIW]-A5c[XuV}v}-$_kNz)r~} L.vrzn"@!/!췟&4(-m:N,AMuP""?:tc9w#jnUd[K,,}5,^F5kjfZj9u*!첷^h +청k(m-+<ӊZҡ,](V ކ/7e_ q;M& 8l;$Ix0B`LQ 1@(1ɧ>s7!24Mw3 xRxXeVEW޴DeH,4#,E}ӈf:ďlrF, 0Nڴh4АfL,YH%oxCkXn!vnVnTΌe4+hZB|<0d}tk^72$/I򋗷>-LaWUagrZM>] c82:B7&n!Zjr%]1jEb;Fa#LaL|@J&V D6 -Loܓ5f%E6Ay+42]Ĉu,cQZGt3Y|3WBoč)f+wA GĎ|4#?K';QV餌:+475K 0 "bڷuMzZ:)-ɖq:n#^ZJlxs0m .LO8drU3y)iIcX ys 4#1ʻ~^UovB3$sF 8m8ٌ>sF>!u|hfU4Rhޭ1tgwJILw~ `X߷'Q? 鱏m̆tl;mh:тpEz""lH 軐(.EBw2L+<0<--˽(9o8J* +u)ΣC[8[8y' ?s=i.+,( "'Zx7Oە.\K> 4{>S3>s5>+Y+;56b9ҥ%1Gq6Li Иi@X+@()7""`Q0l"[>+>w+>j4*E/7 u(_iAd3;;tFg43D8˳JFj8l'c¿*8|BfEH3(&+>4n&<>;G0V  ܾ H-p5 =D2#8\V؆)S%j;DT*D$8DtH; D[(C5lEUT U4J4PGy#<4y#A[̞K|J,2zSLa`ȓPt8r=kdEOuTLƄmclL++˧ mf L2û<T}9LGU->\ŬS*+bIe`u3hF h|,PcIe/KGڻ=7':*ՐcGX`t+(TϦBZ[ac MͤZ\U5l`1:sg[!h0UøքPl]޴VWHI TәWO MMW6as5eܦ-X{H]`:k]Huz]z:%ЌAIH5^P^KYY]}φ5鵈 9UXܦLe\y[h\ +mV_=֨dI5 h="_dmα5W"%%Rx%mR(R\g]aɬ5NDmNWyE_mܡ,Cߦ\ERU=mL(e ekH^%e#'PXb.شl/jel'yz+Oz"%^Y9sYOnY^@L]GJYE˥}^ ;_Na_UlVIR ۱sE۴c{ke֍ɈbS`U^:ePW e Ze&f_[LUv̊]7νB7^>O]:t6MDŖ!+w6bhu-,F8PhQPeK?h3{Ɩ6@F6the^bPi nP+di5 v^NIN}eJ6CF ZNSd._eexejxͺ >0[@[RsɴfcKͅlvf+~_JV]diSaU@SfX𷐓>h 5b#ޞmcl'lՈk}޼+bFm؃,g`b,Аe/?1&66H{n.X7vfhVUgc <=㎰…ކ%ni^ќ6_5d\%lkd&^׹6ҴNMT.[7aj[FN(e$[ck1oVN_^ wfFffF_\fvqƞfi=^]!fu~P%Nh!vf/ϾX``tXxr%b(Y+,WuXbh,fK(?PA3^6>B9nguns+<\~avdo pNVoh%j nkIOge_區ZΈpe(STLjbkbK6uv֦^jNS1_mG~䝶i5߿F,ƥGnl"XltctNg >^vrv*rMdl' y(_rg1r1wr1g0Xg|]?v[&[!ɥNMa_v᚞vom_ q8Bvp#fg%v /nxgԎ`%w(,0,_+|~sbw^rn/KOn٧%n;q):lbLy"7oC^tfm~'u'uh"@[SYzi6\Ouhu>#kM_yOV{4mdL|ga,h@)<È'RHe](F -Y?ұdr˖0cLrVFܩOvy Stu4i=Qkg:T1TѝFBl<~]Myڔ 6xYː/`MVC)}NJ'OH#!C\"&"Wnuj#f"۷yȾ-oE$N|D_cn\xsێCn:ڒ /t&ef̂< GnXH I(F8;HFT"P= %QE11*%#SDU#CCS[sV ZpMdI ӄ 7E,l)Q:*|f3;t3Zq5 ?eZ4Rμu*CŃ =ԩPR4\ek^W2d^AܶmmȤ7n*($ %Ӳɇr8h";Ꮔ%E]ڱ%F]QQbYsja$@_s /( l0OZR4q$ 9k#dH,9KpXB 1;ǔ6^)" a4+HOzL2IƃS&A >9w| Q?r9ErbIO8T(GR`#|BҗA香,X'UPSVi^HBz0nR OcYȄ, Z[s+gMR&t1K~دGQȅD$h.VE6jqE-f-lGDmg^;,Þh&@!Jp<{ڱ#*hH2)!jSFHT h DH&l!&д"L dZ+_y?GղnReJݏ:a]yC $knꌙ *骩ZU6@;[ tBƇp*y ')mY(y0gDt$v qM2}2D\I\BRud^;C/v_-.r|bhIJp;է:y7BMlR7kA.c,5K.&6)"٨FdV%Y(WfF_(JJ<'gԇU)XǬn[#3i0GY٦|O VM5)j9{p:ࢲl,u ^%ka|r,-Ko:K1 !? T"62b%=E3.)c!;ʖm LG).%H"9XRMD#S|kS׎N+Ǡ5"*ۊjUBfp5k$'x"RMrw 9>p+Lag+a-u#\_iSh$+/eX뛙1m>))k^Lcʇ#;ƕdž_sȿ+ #W>o,1,2(A4~iTIo89;4"R!C%.1WSlrECS- JVB)頴= Mo*LŊjCFo#%٨.R f*~  ]>UF26܋"guG )s K .Uaoε1)AM^91U"Ԝw[NۘnT;Y7K7,gb94!f&p !!n?bP.z]#?K_$+\=|(~x Gx^y¨q0G׈L|#t@թZ~WRIٚMկL5Aㅝ_Rau [ߩ0DMFM ud[ /}6G1ʆR|UP(=ЅU^ (`i^6 Y65V<VQ yiJYVxq}v(daDl\R SKDH_U_<C; ✵DK`S@WpZtT}TMv| LK >™} +"݌IElVqԛ$."y]1q[nd\_pEMc @J &@D18JDRu*iAq *>^w[2!X?BIA[bU!D1,zbh \a8ÝqIBanDeCCU_L:L"=9\s;QTxY'>`) Tr*Ыr I5d%2Y(<#2ꌳߕ`8 n F/`F udCz!Xz 6D2)D‘s—=!pWnD$C 'dD$p4`N-ZL"P'RP2('d"L9'tׂ"(|թ*dD(%"D0dbjBh3#8.DbpT&F\%E?踆%&8 %$D ) 6&E "fh_,e(}ΤW1lkhikf^~ݛ]bU!n!a68p*' ,tL'+dNDE02"  PD9 _U(T0TDy.L"ȋHU: }Vzj^(C✶xsjIeD ڪ`mq'^9խZկ#:,-@2kBkj(2D?$ne:n_CF`.cޫDkZ N^/# `aV Ʈfh*fhF1fbl2k߆iŖ) kfnNDflhVȊ,+lrNh$xmFz^_KBEY"Τp쁞QT4BG}!Q̾7֬]HNTjVpNF#2n2 nB°.\iADuh1 |+j.k Р?n bgkuqDlnD(Meqbl%.ph om0RD~p"r"[&`CVK̞̞1=ym+pΪo~D9R,_ Wyr!/{FWDH'vm֞/(w2]CH'T![𪮪*'VHɞ,#_3Z" 3/α&pq65kN/Ɇ>2$C'i3"&!1i&c'{/V(a'L/,,*VHO\}Z~rQ^u;pU&D1?(>dD4`?r5 56A"s36&`c7hsd-n kDot=d3Z1C3k+sv@咫AkBmD(BnDLqEvcvF۠ F4Fo4R9"1O@KFkK]Z7^w qnpߚs7 mDxCMD`3C\o" {/r|uDrTbTWT7&S[A3(cgާ)lxȝgYoDHM2sQWXPֶr7pDu&5^?A. `{7"+6bz{>Kd?z9?ԁOsnws~nw[s>js818v6o{"twR[ǜ+^i4j3.7C KKDJ[JS;Omfs=:83DCcz[M6{7rcsw`{0rD?䷌wT%gC8WxŭjdK V8!N?_CLR0}Ah-CӬs('ow{^&x^kKFOsaO'c'4{?6k:6BCoz[p<7vn|oySFC(Okjo9Ơ糞hSF*u=Ocs;ʲ77'DE51׺DT{՚?rD$Wƈ ;OCܡJjrsi[a::wǺ;1dkB hA;adL|x4{;Kv#}D <#|7/zki[y;kA1.>1tgoonȏnno#9S49;GSDD?D,) nuy{Cgp:37C3`z f{@4࿁ 67l:pO fԸ?=5y$fpsN̘XiڸfL77ѹ >4HoϞE_OF:5j0޺F+O;Iϛ6o*%M5y _bDLOH79ǎ7" #6&C D(}n9:5;mꌻvՁovmwMr1]~߫ߺ|R8ćGWnp7T$u\ _O G|]o>|} Po;4:n9v!N ҂4` 6 c-Cxíi;fc4 ::H[("$ 3CG>rGJg0bP &^2Hb,)'F+Z*ˌ2+꟯iͳex-eJ ;_3IL ,@ tGOt\ C#o> Ҍ KKH FHQI5mUE-D|-E`.blu\ n:O~uˈ4XνZ]kw ;ؠh@m7ye]Ÿu_CAt- -]&DUWݨTBu59qO7F; 9#1btG|Gh Җ Rhf.ڨ&6'4sv ˣ|j=ªR6<4|CSIh^2/ , =>{P єQF;S3ƈ0{Qa1pYlI<>dlݵ"{7zn^w  vm A\us}g(6lɅwf\&<5X{ qXs^׍,l7(q@û Y> !C~FrcK f%3⒜D.9ى$3i(C#ђ/#[Rt*C'Uۉ2'i&rF/iMG),#E4>` GМH5={8R8-

ed 3JY1ʖ"BeiGq*}f1YℵNoH Dl L8#:}@2U 2f>fMiw{N;?0Y/u?Nni!y7@zW}Ęb*% DcY XCHfETuTPt" É$[FUxbn.g@$# WpN҉P4УXڃ)MPЂGVA%*VSFh uG \?E'auוBu'nD5|$#8fML討JJ=s/܈^Jȳ*;hq]$5F=QcFk;?j˧>$⣞eZ҈_괫ʮu5i{|øOvV.Ga TRkVa1 xVacŘYE.\0{_Gn$NL\YYJ$HafYq S׮BtC e=0-ݐ)Xh3'Ht6R#O$\=LJWxnms_Eh^Bm0<F`/\ZՓw{K:!*~HnG (L+bȆ3 #6 l$Cq1GHdm\-n1|$ya.3B"x$F)'6g*dQV4yMme<(f~04 +>j|*Oܙ6c qk2͚fn"hkҮTJT\e2bLe4y1 5 >:F4] ^| Սz+P{2ly{hprW#ZQrVM0ꀊl8rF9sm߼XHU#m?bp{)^*V\PLj1 lrS286(H7Ubgf+[XBpeĜ7QxMՂ/݀ú֕Yە'b F"rfPps6 O0B!-m#@p1&2Z*W =O);r#NlƄLjϘxB)khh bhߠI=06"tzFk1Pk̾,$:#)= * *3+%!RCq#r a /-ODg%R.R.p7OqqFoٱ !#GsTq G  0 HyY[CI j. R!314wJIKE4gsk܈/W<0_u oo>@p3T.-duM-RژQ)O$"G:) #Bl,N(%[LȄ%bKړK(h!K,kL+g:>3 o@_@u 2"YB@ZOZC!-R,U, Hl[ R\2- -Qe6u]]uF^Fo r4Ga_GG0Hz10v3b3E3վqj44IL1Tpdm0!6L6yf3Bai|6ᄕBrXXY *YLZsZZ)4U,ctUt71trD8 bj- ^wuQ.ir^6cEw5xwT/QxyGV`4G4#!g5#gJKJGqIՉٶT0J.ތnU>VSTr'-@(s@L(2oUZ)s/ Z3tE @DCv)--unEia^ՀQhi_7sy]~wutY~{Yak9wjgtkvQ{Z?{ Fy<0p#W1Vd 0eS zYxvYu_Qajm[iSٚ#"RBA%)t:SC=p %Y B]R+MM|+ ;h: I8Zus5X[X[Gwt'iU%;#d7 ;xگuٯ庮uۯ9:gw<J/9Z01>dE--|#z1Iz;M0M|]!G_ vyb:G+8iZat ﯽ9ܱ#8vEqjE1t88B#tr-9;B"IAu_x}L7lqnb)^ry&y²pu⳴j 3Y{l)'*)+svZ;xtoZIZʛY;k37%{^;Fw|aGG5bxqZk=xyfA_%y{6Y\FpI› 3}5# ەKڟLu,yv]zSxz] OܘȝY!iט3טsC\B#?{?{mYxX*(ǰT B O~JnxymU(w'ak0.[<$A[ 5*k5t;[c#;ɯ ^sZw;zGm]{Y^<`u]#C ,%w ) ;׀ !) ._H Bր-C%QDrQ8abBU; RIUn U^EcZaW[t ]ky֧Zi]|Wny[h6b(%R?@ieLC@jYjj "+f+jɆaam唙H $G,s>\t] "u+y"@~_ZH("Xнҳ=1׈}弡")CnzR"b[)P,QFˏВQ!)9J1ђ5USNUeeK=ee1W5PN;W\ XpW՞}v^!dvfFmm v[sMPiA|jg*()Bq8Y:ZmBziumpq!UWtiYKrDs%Kk[m@}w@$Gco)_# x` Ta_Xnc7b㒈y*~(cvdtmE(W+P"O2"#0c`v@D%,IdB8J= %/KEJZ禪GC'(VJ@\yp|J',5]RGr$ H_G|pvqGjF8v8t 5EjZK$VI8Bb1Fj&dĈ60ѡFF0!ꊖ"h-tĂٻk%9âF9%+,bGeq4H>6HR1P O#dA>eH5CEy!=>rSUEOԅ0  K4N7EńH;۝iٿ[Ȏ{+ST9/+JHbPIiY2a$gN)"=W9HMd:Q l 5e6#i7}6Yheؘ.RaȗքgD' ;\(,nqNN*ǘY;jͺ HaCH~-t !"=zv`JVp]C )ZB3FFU0XY5zac$qd46{&x6Z'547Aa5HSz 8yZ )CQ -{DY9/{>k`+/KDKx\25Ic ]J8q`a*Aa*9QC<^:Ck@dݨffH(V&/$[yuë 7>5{[yk+jt7bE◯G4."#.SS""!~2.G]b Ɩ4dҊj dk{\5xcʛ57mC!Z %=ď{ʎ+L;Ykڄpɏ*+ٝ];~6{ !Z"ui* (9X[1#koz\8loci.H'cBP'ۙm|nI(ûcQ7y[QZเ5IWu27 E&V*Wߑr(<Sr*r1a%Btު&H]_Kv 0]\bڻUNj752)DOChԨYeB>jJ|;㋝9ljKɘYA >ֲ ;ۚ?kpx Qe ,֖+oAص [Q,܄ྖQ Es+W;<ό}ljtbA o֬`G^GF@К9К@P<` EZ_0٨%z))27 7הqR)PE@X #pxnW@x 5Vh\k`5#f]&4u9!Q* ){"\[Bd~B} [+Bb|ΰf  75br%71A1-<(#<}^%]b1ڊV_1i>wamI7,XC'ZYyo!k+H 7!;𛧙lYC Ϧjf F+k*sZ;[C.l-Kn䆰"/lmw)@ @- @ f*=oT[۩` ىՉj8z] xo`攑)Q _0ضMۗYhi5fӍflM(|q%(\ݞ( OY&ɍ\QJᒩP7X'\ `:W: qP PŎ ` ʎ]">pU""Veَj]6ǀGt'uζ%k:m{{\:!ռLH.)c7\./u;~ oWCBAp#X2T? w*(?C ]8 ,ARd$YyKjiݿ,!܉PO9e(B` M8 nE !d _qIV,Xlf5aT yA$_M )*_T&j,[E3'T5̘M a:so P4yJ;عC 5bLZU|N-G禤柩UҳKΝuS_w|@L+5Z0I1g0gf5&gƌ08D(0'iAqRfcL(*i+&fmr$lj*$r%%"iʫVL̲Jh1 (#C828JHN9ZDŽfYL*CI³p:'A( )YK!P6_NOnιjns>XXCH5FPc0W"5'k ?C3J M4{E[TE`XmJzn!(J. r-R0L2R 33L"9O@a#=TO>Uwid&F@FE 2ub&f ꔉ$3#8x?0"+_X ?,3,AE&gԢ(,ZB0l@~) !C( }_Y?J,G9:31?͐"8:p\e"YDƱAf$GD%2fy("(XNB&cXcza iEQ -(&PQњ| J ɡD "QZ"H/rl&DȎ4r7 IF$4IJ.Җ8WRKhI&.NhFt4#ɊN}"#EqS)!,deM)%D!JYI!R;tLhD%z ?=3p4 ~#|yo.0{/,BPp?D(Ge.MBư,M`ݠ&!rJ/^ t5 jCȜs(G à <A)a A:ױ`cX7((~+Ee\au2P8ؑb{ ,{Y($d!(lb;""im.Qڀa#COɎ' !ګ?+`A+X y(BiaHlxn xŢ_H!QF= !=Ј&H\CM]Ip.wa_>!2@0KB hTN<9YBaq4p *81S+YLjV'+\e&t9] ЋfhD4HX91nda#Q1$T!EƐP$7Kl(:T"3m) ;n[ّ|knt(fJdpM2+MTҶ#7&fd _rbyS2{%UY3QUa"D\I{M>)t. #P/;pA ^?#{'*~yˍ,V`*NeA/ զ!=fᛣ'ikQ&G/PBdj .9C/K!ًjDa^dL++ Ը>A ':1w3Ñ9\LBnBqyIg~ғ^tR'zy,qz'(jLj1XHWkdCˢMpS熓dȶ]nCYJP-!NRLm)I]JV~_=ʍ'.i%KǍ݅X74ߊ Jt9yC0#ȁWA@8+0c ;+;0 {T@LKmA9;9(C#:1+Z@l9 hΈ:z !$B1yٺ~K:"d0(0P(:;+P8[;;(j"(Jx/C4;E =JDED@˫ÖA+`=Í9,M4D  Yz^>[>O-`KO>Oڤ@P6* j.>pP҈SlV9OzFPc4Fg%*`zej& 9s8OhGv wO[iԿ Xp&m\&559A&&HԈ A1t1ҹ(y1@^@` #dP{ N %™Ԡ$+ẦɄ(!9K;ّU;2#J;bJ4{:ª|C' J(Bb'4BeX+'ʫ+4.jK@K7<" P0O0;`LЍ:ш|h g(()xHL(^p 8\,Tȓ3ȑۖ 3EUDiNZ>hT|-W_먄4l(jM ІFiX-mxZ*A]zD'ؿR]"0YjXcVA?=dpaE[z!@REjU392(Cʠ I\Fߝ\}_MlfhE[aZEL5K;U6]u_=0f1۝fd~d48b8h{ߘ_zq7ЄmNe_=x_2bFLvʍun"Sӭ$HM}nTX&S\RZNp՘g:0g Bk["R\fdgm_E8XH $Ws*^ח# I7rțZbe<0{1ШaGA+ BpK/ Z l(d!` ð5.WlA'Xل P,ڞͤ9 (<>efsfrT25g[q oo7此Jj_~RVY_0}U@  ,Ȅr%& bymAclp.w^o__ Q(ԹD`|G V` Kl( Wpi`pAP cĿ1-FYrs9uZxj;sA{fYVnuQ6ҝE}uԄ~9-V%CEU2càt{ۃ}0[?vӘp}fMUef:w߽{\gLUVހwToHUol ^rУzW9r迠 ̙* aQTTaDXukb"fC%"e,ZBbČ TKLFS?Qq_QUeD2aѠa5[Fh?jZTM̭?ʆ׬ȯVdE"D5 Ҩ:GY_bYgMy+vZK׿A\E"&b>eߦMѪ^eې? _Xhm d,X_hܗ?AbVYSF?hهWh@$?Ra!_D$3 %E ?H@rOH/@T3~5!n(/̓ ȗMP=G/ȋؗM?*bNE&cb2A4S16? 9298FHzN8 @hFD9mᇨo9N?mZ*i!ɩxJ&@t)K #$E9P=JAdN*Um#ZēN\B I&cx"}"nu,Wp bkoeDFHZgBVg"2`Oh`dLbcW\1 EI/>XD(+]+bL}+L5W=$u"v;d _5Ș6!a~0Xc}Q+Mg_+B̓n(!B 4Y"9""X)*ǸH!EdUbYQaU7^AtiWMB(,P`F d TPR.p\2&#C<.D%"4DP+^IJU@lXaR60 nƴ bD!5n n "Pa 1zC-`H'Ȩka |v@ 2"e3 OV3W n]QBbeUVʍ"|dNvN+/SsԅNFRT! y^m2t YbX8# fCaX`V("2" cl<DZ@F 7IvБbBM7OS2ȣbEOjUc"r;V?T_x4 N8+[]0a NJʪ @5&R9GG,rl QNΑGS7a֪0c=4bZf67RUE+B9WCE7#[:,Rg@ Ӎ3Ji2].8#m@@$ o?2N ɲl?(P :D܁p#I cC"IXH te|dgݶnEΕxV (:ΊpЅBK+;8bEΛLssKD_IeJVP*0iTLn-cFɪѴ^^ Pp83 \PT J1ߖ#vqΕ "v/]t3V]U^R+`r_KG?*K] .siլQI ITJ4 ʐ3ԷSU-UOtUTʉN ͑&$J3Rf3aSX* pF{5eesCrŘyqp ZaV j *Nɖ^>2:%-1%@q !ك 26->жE%}KKmc)Ʀ4B-$?32`j8c{m|]1\_mV| "lڧ-ᙳ ]Egc8;f芻lf-` <][&Wm myV&ۺEH?B TB(܈\It4n4?|$}T+q q FᬠDn ȭLGwYP0pDz,͘Sjp}͈!@jT F07ԁ9߭YAaAo@.@AE@|OQԡDǦ@YV4s4K,PJJH)qKyTOԙOLE^NEUZq"8H, H-ȗ"`E3uw 8MUɠ`ГLߊKd@R`-_9G{$QTndG/h ! "P>?Bw\?BA._?rZ/d9b_{xc d&\M4$m9Ndm qEB%PBI%A5Tl`P ~nHG4 ĵQeD$`)Ze f^Ȩc) cEkpC-؂M\^E -kmFi5w4³If]7U`$ p+1U|I?pE ѐ1&] Ev,e:%(H x6^F9N{ΔGFٌ MdM M^ WϨx.nXA?cpNxYWQ` ED^(\l' fc#= ۳BŇ`GސcLȔqG=]A A&-RԺX&YY]3ABBDHϯO,bDnT1Sl x hJEU0Q8DlJ YK UYJd-0.K#NսW\ZåYAJrXI|4ƨṙ0ZZQ\hfi\("]T[-Pָ!(zdE/J )Gv\ᄊ= Ԍ胁!_|`xh(A?*6R{8vB%@^6$M#?PdMގ5U +@ |W>ΙNDxșjw>HE.SWtf @ MP٨^;v\ l\E-]ͪg*sX)$s0F;M(cjhgEi..j|jM} %j Fm:>]n]gx Іd7j$H-G鳅j%\B\ %{T $MҼyco` X(Hmŀdܘ.\HH ف\4F]U& nLp ̌\P4 FDZ$&ƬuLG/v%U(X8XC*4fz"vCn/l3_'6sݫ>) v- rVPxq ]*W-b BHQ4i9k.t6ֽB__e bXu*JDfRTar$ZytZK-~kGU&c(ϋ; ?#=SԱøQ!z}!mҹu,WrM@Aҵ=$el8qbIW̍3g4:#e@W%MlԼmA55| q0бomM7 $rD lHxȴ (2BeC"%#Xfڕ$ VZjEEн\IYFJ`aq!V@?rD4A A]ׅd.E}d]< b\M]`"vMKGD "~/rA UM. j eqi H-*=Z]ՙ e 7ߡr L\YPdJtKC4P}'<ՅԸ;^PK@VPY.M-h-ۻp ($-qbM^\,A# d$Mi`[{:mM GC(i[$q2(T}8H !̇F!v]27EV̐>^HwL3%ȍ1* QV|tH7y#՝4,7LK!2gkwa|X@B( 0nr|%@7B=t, /X pT{h'}쑧ο,H:j\4ۧ>X͖ ̇qD.v.dǿ?hs|vC. ^)JP4Q8D t ai3gؑZe9ԬVO-šl[RX zcjVHN9$Q#uoE7`"ZS)MML4?'}RtI ,B)8>LӁZR lvm:]9! d) tp A\ 5څ֋XVl{ S4o NTUI}d4hSU`@9hx]3@eRyP|IJPaUIBNH:7ZˋӒD6^f BH C+,/A|#4A|U#wdA}H& ժQxO_$:¿RJ@(GϿؘ#,CF8 :2ѣ/DJ!1 )W hGEQ$2E°2蠰BØlfbʸ.dJ!0$27"|xE-mE hzʉB1t?Bd`/A4*"E–\D֢X'5N-ӃRC`a[ sK9? xRY:M\p%8+u(08a,mIdxԯQ!AF,fA[ٲP pÿY"ۃ;kcytIH|n%f{m/)H? )-#X8D:!1$A䍃:O=!1RR#4\E=>fYmьސg>JlBD#f"(RJd=JoD#cmXTg- \&Z/qqH|MqʚpkzvCV<$b6!z~ڏ* t6/c^`#6a^%"((0Df<&FcR&I6úrdf$kfl6Cd;( 'пN n&怩Bv0Ú ?j. ٠ U)2 ~ H@`-Idny$dO2,E-X# .ffjAͱ%4i"oĔ$2_$"n dI|$w'؄0 ,j5/S}InF*C%#*H}bOBEH fD"j:vdD:6Ą֠36etZu"%3h%ZB&֑ T&ftAexkȇDzl@ APl*d:Nޚ5"=zFNmp;. ٣ ك=(m&˃ 쪵ojR]N(C 9BeJ#Lέks&X]bb &[K:Mʋ:0Zك+?BX z X;ڋ"6. `a F 0lL"$|k2bE'ZPI/4S323 r,agBF~LIˀ_2$JB3O)Uu@I{l0x*JS4}hqW$.2Y6 O'-H`nev"d2plu@De7i ̓#%%.#xܳuIDh3R , r&j&Ld43 G t[(p#! \^Dҋٚm02/y&L$AN-A=&0n.pVocTi;- !X;0]xe#Fk ҈IRE'E㸦efd @k s H* U)/ϾR-߲"a 4 lXEH.Tc~1sLFTGvʠ24# 4ҿa N U,D  h4).:'?7%(gh:6ek&dFR%MTIGH1y«SD$0V~}zJUvt]NTu_%#h>%Xbh>s0Xu^S$/ &'7E.ƢvFLS)Yr '%s6^g hZt\%hN@D!L4bTEIgݰ MT$lhs i%;.5+h)IW&^(h)* IubjEkĔB>FYSAƌa 34\OF02+ll+eHrm/ca\iF\3t!fJWf8o[m!VU_,w# v p\vgfT{ViT$bDtfZBn6`%j3re(+ <2|,DEbD3VRELzivx"t$x2 Ju""aH[r&2#+"G(#EbYtAiLevFbd6_s|Y3DWb5 @#*v͆Bb]|r%sV F'vmW HF&"Dge&Bpmvn^nO˃hﯱx3z Ib^]k𶠔+tL57d0g1Kc.cI|-ʴa(t9(mEBR(,y×ʀ@/(hvnBs&XDtlV x/D A Y Aa  RX:dRzP\f4k쯼[2#,$Bye"GJZE"%F' Ax AA$v3 VObd"`Sj3҅xo&ta PRg%LH"h2 $$L$%]elKx6 *̥. t蒱/W ,Nc%=#B$\#Lޚ?Đn`_Nfl2!5mEϒw2mKMB78i 8ȟ'4^h@ f!781ad[e^*.w4腶85fšqzm n_4$ Ë餠ooafa{baY;A E7ԭj?qUL(kƙ0~h& ƨAb9<V9x^$ $&bJ&cIpLU+Ԏ)%@Q.QaMSdeC%z"-&UfDt!]¥Ib+^ RE.` P1ςƙh@0&2}v^vH4%h*DPf׭;>F>pkc)V =rml-vm%g Ġն+{\*|5@8LY=Ǩƞ <'hKT3H"φׇ=u3+|3+nrrZaFORVTΖc $` A_]޹{!eUTBl 2tb \1'2۱¿&LC`DNB92Q{\򟘗#Z2WԉSTZF0AS2h@|¤鈠b4Na++Viȓ=Tʆ^6 oݸqnWLF- 'GɍX(œ=n._|zcϑFY)͈/1 humV61٤ŕ_ ~]ݗZ~ntd$&ዽ2q%&jD㤏{| EOGPTQGGfG\фRA{lrwEzIzS?ER?IPAL`W,cSbV"Y8N2?Y\1?xl8OlE}l h~wM2NtxR0AFcQ$ЃztđPOI r4˨2 E5R*5Sh?O aK.@58E'&#PDq(7'4R-*.K8?8$MA-#. !^LTQ-ټRF6`ՌY\ uV]+m^ ĥVYDF?X 'XlEˍqf?nh60#3ҋucR_\ )>)p\rL'6_/ @rj67iW\rEKs$+t]pdQEYGahED9&?5؟RwQr%~(aC1EK/fz{CNR=D.ari_XW=T_ׇvY8Q;QW aW?C" D{ ň$R Pd UNU?4 jP?$N |G.2 ŁZarX @|Y\%5y"-Zr[.MSx$D/ll Y">l`Og4_r_<=Ł>%@jD#l \B<7mx`OCOJ{`iIК"DMMBhD(Q$@ОJ{FpTL(1g,c]{)N> "av` -i G 9)La05p1.Ċ \8`OA U,DHP'`%$=Qd",U !~JPOSq=b$(Ab| GfQQ&X’dؤyHIQ iD6&-ie2U84XP n@'GGWjsaV"hEt @d3R֌:S3wg&sfo؀B'O .NI#"L&.ٵ^m1YZjAnZ07ܵK3Y{ۊI]*3 uv)朒~.b+!RK2(5BA$$7DHQkOb|:w!h@*Mi5Yo^,LRBoG)V=Cons`GNC%N Hjbv%,=Q%]Y(L/(F@Y0i5(fm \?Q0oxO:Y֧WOXH`ΘV vmw}b%)h!D Ѵ"k%`t)aIV&_"KЈc1&2.$ܦ0M,lEr#d y3$iȊPGwI7B o0Pˡ Vsz.!s KQŌ:iX^Xk p3؋l/zs+JNѳOzME:U@D45iJU_lR3YAŧӔz.Ba㱇j gyȣWB1iS?DogXYvI苐ѥ.E!y$ wJUAW0+.Z2`U~Z3xUV UIL RԾ V{K qlҶm{9X~xp"<"-R"SuVLfaUWuLG !tu^cMb#6}M M ״we3&>>twa5v:d6!'SN' BuelpgFm(pBRtpO GSΖzzQPJPz5ָwQzf{0zzW|+Q "Qp)V!$UC'1\D7bj0~$AVG Uy%j*TjQ)k 9BQ00`j8H*y-9ofmǸ`8"-"<$QZ2r.D4/H,A!oI- u eQIgq3ciXM 0eEU6o3II2spru^ '_us;rtrs vKV S]rt$ur5`bqKKakK.=]K;{ # 0q"!vy9df!%rR+f(!W5hWdzx)Qg狔@VdƋg(}vzyzzx츍hٟ 5@9ٸxXW|$i(+a-!$1~~6~4 UyW*B6#\e@0 0CgxbBѤ&X-#25^ԡq 1O.=#3#`[2" KqAq_^i5'~J4 2h[U[a`  ]lTI"b2L8}`At kjb#]+BPwJZsryr ŕ[esX *3 [r`  iF`]t4Օ rJ+Kgres  uEps:]] vU Kp qAb{6/0~a8k!br8v0K| |{J̍q`}1aM`6{+:)T8OQdc =Z^fҠW3a5XC}e\2.6Ҡ,9&BxUQ-{R` + :+HmB 2@+W=0@yXA:\)5@-DęĊ,Qnȅ02[򰍥)S7-2@$-xr}"j}=\pdca|s:l@q06ug :T@$7l')I aN䴝N56c$M!cT 5KNF =W ܚyܯ,]11ˆYыۧ uFmQ2᝼|9߈@o`L ߿qhߖiWSK]ڻ"_at`i56ʁt 8M!5"isde>L8MH!~,uWlXCx$!n;8R//rh,x<e '-斀}7vDPz&@E i.0U H85)}ȀF0l>j:Y(hlϖxXzw" R@Y3&#O2g oȾ> lzX'>~N%^A"Wձ7Vyar}ֹ+r-`qXoKW/+2v)dؐ!̠ bƋ |jC+R_/!U̠ 44&=7;e#:g/R9eHK]>vCe=4ůK.]ՕhFߦt7exhbxhz_[W(CWhYL?1WbZ DI$eBHHԊT >lm7 Nk xlу(nː? Qg8$$$`L!0!H8(L EW @4рF@4!w䱆1 QB#@kh$ x`D(/z#8B%a0 Xaj١76KY32R"i w'` &h(DkhDK,4Lg>S{ΰɆ䒦кD]҅VRTIUJteR|GBW#(Z#`Pe!h!>8!lãt!!NW%`'Xo7,)zWR RvV"K~ ">LC 봑Q[R-l?.?Fy*'W6MԤ#8XJ)LذS<n5L/W@n^V<4C? zCt$a2- H 9#QSQQ^p$O;wFr^,zOOErP*g/ l#)N3"6/8X[ JY*R%XZkXV*YC% :䄻[%iWFa6#'O-zMbItY썕"[ʦe{98E5G& Znـ&6Lm9 Vcldj2TbDHB8R (UFdlP'qOՍt8U0BHxq\* hPDQXtNtcO*  I@rN5Đl)SҖnnθ 9۠s1kR|-u^m XJEʬX1+Y:eK r+4XU%܅谆҂WRW`u?x=6&'+ Qx DخbzbV ocǖ^ĈS^`7&mΘƶx8ş4 O2)M:ځv1Y$+Ԝ鬊e#=Ap"(D-͕ļ1V{/qYGoy@ yNzWm,e->z(QrPѡda5!t(NhDR *:%m+J1N :RqCFVycxCh7()r;EN;*?'mGCzi$&R{OuSz;*Ub09> N׀~i-Jf X{ֆp_V"P ˜׮fEb;# JY{ىxcsX&j'h@&_Gr͐h D4IQx24ɀ-ҙl C:H88GNA,ʮQ࡜(+p$u} D)ސB)"1-zpM{!k50 [qj [lbHX:%A2C18Xh`1{!hbt@i99`"3ہqY>9)C) Г((X,aC *{ kx.{=*;H=3r ؐpTU)CDk" ZJ4؊Y>T[`{L4+?d3'5g{#x?g87G:r-ɒ 8.pw@QIwjpjؼ 4ёзG Ґ° YCQNБlEPQJ*(Cx4’Yԍ˦s;T(Iq_/9pXrٶ'HCG}EK܍ Ŝ C `K>0 C|'DLcD9ybK (y(9I'#QEV}}֩E< M☀yKmxCZ3Fl3$m3m, \ҋh CS1;#XX* ҅*V P1p څ{sVY v `Ҏ0L6X615ʔɑ$IJy41j(GjB2BX1P%(*碘 @L=OzOI*pJ8:"KЈX CPCa& ,XJ){gSu(Q@&ZX Ll(.̏z7YG)%[ܤO%Z[̩=(-y5 %|CGiÿLq0GݷգZ xӯ ܒ(D.Id ? d*&r:1UTݱ@I@q٥@yرA 8n]Lh $ئ`w"[=!=_}^h^hM\f#m@PY MdklsTdUzEqNyE:bܼT)ZȟW#è Gp G&` -X5+O6ʽoh;X݉ Zc _ zxi{?B! R`ᠦk+h˙rLq7ߨӑ˃Z6ԷH?+ E{eTLG!,%P@ȑ/5"dm-dHP1l+Jk4*(ʡx2`<( F@WgZR!cmt `%Wz x#P ouu!CT&<a¥X_iV[+h_9fqf! Atb͏$RZ'|bj+Ӝ*F,V-oLt M 3NN&[4h= ](lHxl=l(,^/g{dyK*(j/1 lmK)F0)G**˄TFiCTmґ_^i@D;ff^gvf~'v\v\@v.tfEiDkt.;@@ 9#VA}_w MQ< }PY.iayvy)pA\qPKi&꯻!u( í͕ͻb6(h3us> ?.a{@O1" P 4|4d c%ܚXRSx,SJ~)P~[:I~܃rBōoq0pb}(|,*'*}l"n"'0yBߞ )c >johnfv~jkfotWgtG789_wnuyjHF섎#w~W :,}acG}0 ,bDv_يo&10bF&WFxő(1^Đlr?1!IO-=jգ?QbɄ?#fʒBAņ-i&*Ӥ4ēʼnM@߿}Oҧ2P/`),Mf$V\μb?K+(U?X]Ro=$n*jK@H'8$ 8p ;C,W^r2e9y Ps|[BŸ>7)ROY$scMǂ~euN1L6S=$Ҝ`I %~hZW0f}isbk,!Ј|7CcW8d+XdDEPFÔC0jYjq]5c6GVOd&qěj"? ?rȁ@a0h Jr|hVD+BG$e}E_4^x jB՚PBTQV5?^1ҩ1jVb\V,`ߴDMDQIL򒶛G[1@%QM9n">U U]-$VNDtrAHj% 77Yr[HS|5Y\_3̈e%bVMb&%,3'HYl6Pb%dPBD/4qd]UUۙ'q_Auv\8Y\х&rc~;aKLxI4~LA$YFʟs̠(":Kj3b-?dX$PZot &jn¹<<]@Yx>@ sERn s<(쩩rԓ@w`m Bx@: VDH:sBC孉DZZ\}e-LDhH5.%)WְDeaN q,&^e9YjAxMP)Z`B!V8 `m:)<c/:W&eEL]0$ls3R69UN]ؐI`0,q'#Q{@]-kL!Lҝ %$Q2/k_iPHŹ]UwDd%6 8I. l7\WV3#H(2iϡ&Dk 6YLH@uY$qfv{Rĉ((KJݖ$xl ӚyuMczD&3jj@܉`@&RB( pBEa}dT amd"!ә#i$pjSԀii%Hhg>8-.=1 Qڪ)p6ijR8+7rXQx-ikP)Pר+*L!UCҵ`pYw#)T~A$88cI3+ٕgu?t.NXL_&7: gK[\ \B#@Z!/v`2Ƨ?"C)ů%)IQB~zHntc'f_p/{iɭ ~3ѝD+ct&sA"Xx꣠ќ沒(X J]h{w;7FAbtywCмzwpp3Lh^WtP8 M F<9Հh8Aԕ B= !L8!(?rDM~4\$@&dC*Z$rEBܸxZ@&UCi Y, 76J%,+5`u(Jˤ*/Ò9(!+сEMu]͉%5)w|ғpء`td _f ,M"W%zmj ^eNǼԙ|&7mMʡDA«&7yŒ/d e@C6l׽eç }_y Π(+E줏NJXR?`@ SCDG%0.}0g0O8 hʘ2d"S5LGAS *a&}8CnAf^3aMIF{|H7ԦOo9gJwmM-z%Ws ݹF*)GYDACS2#wP| !uZe0õ?$KdJҾ/cL3*cR+Od )FA's"1Hn% +\OqI|xՆp@ENZU_l'4,v ՋWtI`O|Lle߸ay:$ncjtJfI|VSAdsĆtCVE.N[E\{(N}%E+~^Lɢ- v 2<@G| M$AVX? G{@0K ȊPʨ팄)Ε<\;ЩAZJ"]^IQ. ()e&|B7%X^t5ϛØA!f7ݡtEd^ eHi}IHoYozQWfV$^'J(&?ÒlkJG&yJFV&.5k%SvlC4ŊsbukoH҄ksN(:0gVv`}ɼ+0r%+6pŴ/&Ч٧ qtŶ}qJLXFf΀Ӊݻd-SdAbll/hK(BPO i'IGߵJGm ,jP ԀJ߽OyXA/HB?m+e|UiH\u lVd̼PBȱM=YIa ex*%N;*xX=''<( 4*?Lf<ɘ$f , ." )keŘ<6اt&j&v"kJ0*lѱ}b)lb'~bNWTI-uL_PVJdi+7P]Y)c@ap+6t~6M|E#EIQ@qAvXZ_f+](cvݦX~'+z6t?սI m'&RA&BXK; H?L{@C(#gOkGu/eIlVD zk/|f sok8h+輷/*2{O@(E)N2!΄)x! zd̘ &0 BrS)dȐ-JcɒA "رGZb]$BN|OD&K.<(*V`*)t@B<R'=j۶#;1Î ( Z ֊R+,% 1cĉAfd?&l֦+W0,MѢmR_xE o^6ltF[ 6ĉ1l^KtV.]w둙'|vՕ i 0b$%0,0HwPB#' @1VX 1  pdp1bЏBI@I@R( 0-+ة)S('3+%2T3M0jL")8p'J#jP (41D $d'BiǒNiT85H"$࣐ h>h|5W6%PzIɠjԛJB2'1.DY'Tn JJ*sv\5p"D捖{mh/ӬkLBki7Js/%|o+HM7.b|+e JC 8>2seA$Ae&6 ˲B $K,TPƜHB =0EPFpJdeEx[܉  "sR&\(/ ԠJ5"Щ( lTB44p3B4Z`0E OfV GRTFj-8F2 4sxY]Srt'Kfk!v'qB:4D|_ BٟZ](ANP&7aK |#: UR*JAPzu}Gjxx`āLRb@t%.l+WIRD%># Z|w%"d! 'C-曖gmt㛛 g h_hhӴѰq(~ވ D#eAָ̚ƥ, dAd;ۄ B?D4hv 4 F0?2X@|$#aN!c$@h@HFwP5#$:ӕ1mu^ ?jֹB:*zǩ(jQ%͢"1wىqYHLLA@E1S K*bMQ[ЕuQeAPL 88%وeX" ҩN;fy!ȀlbP"&hWK\-<cxjV c!l"Q A_9l&6. {a!N lx dҐL'xЏ!s'2n6[z4Cn!NϚs3;q%sv{tfh jH#@GZBJa9A]d%Hmlm1K ],jP+`D~*z@\GYIV uj%]:$G+#IիR.;aq?oӇ>& _\"iG&&cXN(- ŵR@;[5i! Vʫ`);cbJ[n.@]Q?58xa߃+\z^Iq^A2 M*&7@M/G?po68$:$ {ޭy,f'ma iO j˨񏤋˞ƒLDr+^qY]eʃ#_wUW0 {L?6Rl97:`άGD+攧CҍA|Q JYA"8 RY))8ӚV:X4hG0qb.ðSym|%*)+Gj!WM1;YP [zp_!W$(hlR'{=+~q?^ٛp?_تej}\h۶ Ǘ!-:4BBQ`a1@JnF`Fl$o<f (f"E{%bH"-ќ`BJx  ,,|ia #C#ٲ10S-(7++vhG RPr1&w&+ 6ȑop/z%d./qrq#ъO Tr6ː.!AtϏB㑄6)b#jjxg9]l DDoLFB &  Fo&R0mrGD0vprI[NjPB*й`l4+ud0 DRӈ>LӴ "Ob*|[/5bSB23^a1wB°WzB35WCTb!n|JBp1OOJBO\qlGdBba8vCČ15Mw22>1`Oz¤1`'v\MB\`3#:yO+SIZ*;۳_ yBQȳN9(t-d$$8"_\UXC-4R^Gدu a-~aNDCc9(@.ƣ60X5JtzdKBrJDEek&lrp&iRf$n'0hIIIJ0 CsJ4fKk,qd lx.Mp'X.,DA sɖcL08^!s(̣ 4#C /8\E5=1>PC 3A~`b^`^oaڮO("A @c.6.`a97LK=2@>NdGb$GTTEeҼv)N Rf{fqfvt'`j4sxiIIsljis 6$ kK¶uAЄhrgLx~pOPbQ#)6[|"9n8 u VJ7);"[%w'l!A FSLH Wa"#{# vUa\H MQ9yn}NkPDKwaY@DWuKQ#G0Fq@ yԄa̧2 BmG"l"]څ3*^bJ/Ñ<ˆ>]uÀq(h_=@>-ܑٛȨ{o$ Pu EgKKT&eMp M srfM:%g{rNg}f|NΥiozIiL Lt)xƋ*lkjHNv<5p"!"nNʬ9Hf677Fe_PZ{6͛JfSY*5T% x*O4yr:{Ld`QWA<;X"D 9ɘщuIuCt -@4^;@%1vP]I|۷-`BMI""C5<ႠQzF3 >^U#5()+rC[Z׶7 6[ܿb|qcfOvLFe Msv @O['g}g>9G?|?Mą}PViKǖi>zfzlTw:c< D ŜEUT^b.G:e :d@C#8o_Ff'[wXgСRSr?zѕdu#c-YAN:[#sGs{v~wԽ֜Hl9>*3X uzd:ݵ䚾L'#d (d_q4AZȋӱh.N*2{s+|gy>Y>>f{7|]e i6Df/ zXc=D )Xdd"p݄sM  ڻ>PY(VITS; HA$8IIbtHGd YؒEe?!b!Fl8F2ʘPul ?=G5qЁ$Pp!'GD}T)X[Ofb8xO P &0u:`'%8 ٧ IS0` &:^SFM)AeP/$ BǪ+KQ47SFcOӞ8j<NƆW 5%~ r ږ B&Ml(Dͨ:j%m@$4:HrEC$$1 V@|tX҄s_nu\]!8LZNE9=IPxNYÀB&T' FjP56;k47DuR1i?\_E,8P+W16-_V Ԣh W0! s0Ζsa# cU$:j<VW1SHSOϐd5 k2U lGաʶgK:a#JMF~e?+5a4\ɫ!->ܾCx&7l.t˯M!1RХۏ]uj[)(tF,KZUwK!54*H #b MMlp`p_xbN6j'xNp=`((=$X('aTpQs27>b55Qt!A>7A5EE+TC LWTwuWR+cu$vbe]fvG!!_SpqB+tB+wA܆I!RVQCBb gbExV+!xGء4pX$T0VP+öȱ2rtk7qX"wF9#P ė3GrtF>$!؅t6e\D"'"!BF~IR@6ζx 6%p]Lbs?oJ>3 wȀlMM8`_g"_ݔpbU'u&Z¢I ZL! ƒ,"$7#764,l78Lch*)>*D46yJ'$#xpy )Mjnbur1rDU)r " )%G)$(0)=Y">2P$b!9:R>A5a5Vy9HBnÕrTWF:I_.h>Ev wGwW WuhB[.mji;pХiCVwhGfC^S401w^ iiQH#4f1H1 ]a8YwD33{u<$Hrja<GryFƂWr#,a,s7`f#RjADSW vwY_lyhUʅ6@7/ sIЪxf1I-,IPY JP1WATJc44#;FeXFiX0Jw⹤J(J'a`&(j@:!mN a*w,qw,ƒB bUs$z٬6i02^*>L>߅H*sޖ71r2Jl %b N"=bra[`J`"aJ`u4r0q@jɇc9zS:(Fo1LBtR?HQQhE9aKt@7_SiqS# Dvd O{,ۥswTq {~1?gCS צenzD/q # æ/Xw{ eZE$!ո;A5GOkO02A|&# 8{Cм7fs&G;q*(  a''6*7QQa,5f%WG 6Ig%,2lȆ""|+iҍ"|hצJ]H0DDFj 6wI1̗㨤С!iV*Ѹ5G) ;Y 6s{fɂ$(x` VvS)s"'la>F0ʫo'\M6} m6fdm\VpFD9m>F8!n]HA)t 7Z۲ 8$:s'*s=I)إ>ݩ;%mt\QF7*!%6y!EI?co7W n[k[J%*,M{i~[UZ1@bV8OGt0>5I)G0&Y[ ψ "`80a%L`|x?1``D)#?*჆/)p9yD2_j)?%5W/^%?!``, i بL2[B H()2Hzp" +jH(/D! TcTH/4D@UN;9<ϽDz~<體R.Z$z )S) $,,l 1 vJĉR\]1"8v) (L7lSNԌ@05LL#%L~46R*V10 2]D⢀HbG+Jk_{OM=ch0c-l!ŻAX %jDR͍m!ѶU7:NƪWY3ZD֛q 4G(")~ҟlMra" ŧ~;V"A ZZjQ2GMJIIM*t(R  0!Zi$h .SnL"Q&8"2TN cw&d<5uJ9ʽMDUCH(*\묀X#j_$ŘP8h,K(ތԲ:<Ô[+NXv#mȢ#Wz؞4QNaѸ4GMjREBd]l;hLaAs`7"vW9[4n  !q33G$7V,sV9| Op#-iyO8!0`V.ݢPdϤM2lc'ER(#!2"EhGŢۺ~8l$%HV_\JfA*iLʌ-eñǙe y&u9< ﺋ|~fNPJhkJr bD+$4!x~~]?`#K\?i'5.-J:#\r(,bƂ-w)45M;pqT6 bJ6=;Wvn#E[C;13^YgnUcf8uh U\uVW,"ϟD5BY[ Z4OVbQN$JViO'śHjn%/wYk$ojӭӽ_*uǭ=l5$aI^2w+7g<[wonjΝӤ[=ae ~h$`igJ@QzB\|%?O$8L%Ha1"A"{ljLAI<4O, i1ͺ$ ڋ0'+!j9 :;2&`2Q`'29+!"PH+ !37ZB)3.2j;|;ۯ/$ R?4ڏ;;n<RLH@$r O{/9 PC ?`Vxz'qK5\\ڪz7Y[f 6;#(M C¶:+iҫ(ŨaX xіMkǡ31*8cY\'r?Hb1$x @_9 +`3UF'E?1$O[(xI Dx @h<EcA`7๴XH H+Aj %D)̎i 3ˍ)d)|%5Ž5캌 x\2y;?uD4d 4;)C'p< $ 谽8D1Ac5(x&a&w[O(䀽_؋)m4a(mqdC").KA5τ (MZB y= ӷ.+' (q!a $()X3`63-{{j1Ie$2HN z ceN||MrAZFekl8j @@-R}ӷ7N0 "q4L:A I:dH TJ*+:+ʯI3 \+dJ+T#$i/*1z(#ɘ/vkp50Q' b˹ LCM -eviVk5Z<9i .3LlXLWRĦ6ZZj 1*!\?6B$щF ҽ< ҬK9t@J$@#{2 Oy 0e']/:ǤEId=QDV cŐI !-9$!5׼})):`d2 :\ uyU 27[pP+#ذѶQDX(B=Q5"mQ8;<#7Z/,L 0%hCR+M )WTrFtĿlLmҬ59u~%1HKw ;'YULqK=bEZEB+i[q*<\=nJp [B'IjL q Ot@?D<ؐIR&Nẗ#πԘQ [t+ `KAսwZqp :#ўyTH5x@ šǩ:Hhu*#BB Q;m+ -‰x*|:-QXdJ]X.bA/}kɏkI 4F \@ K  .0ic Ŀi=V$A&<>d=NDBB&BkDc31oI8$J")ݘ [)0eṋ] 4@S?>L n!-xWPb_Y-* 2sX6LߦS#tI3C_8܈+06ZLUH3SHȏ떽 rՇ"y5th&k1H,I&%ϨQ6i0Y2IHH>E!)M+xB9A9Wq}-P}*T!Йg;ܜ%nH`2 E_i<Ǔ:+8d)7䳖rAvFF@-kBFdE$);-jM.L>V")"*&? Xs6S~imMefdK`O>!$\ѩSm.R}~v)4#Em_"ЎWO_Imn5$_,{uh³ᯯCO+|N8&u Ie  \gb'dT0[*[ %C}j 69 (a£ue X Qei{m>Q) n03ַ5v(DQ%;1+/Sw]B)vmng{`8obPq|2p1VvV w򉿄-Rwp:ƦMe/80TiTPG%jQƐ(D̒EL#D KquS(/^ٲ SBj-Ä R(2d@^(PDذ +Yj"7-۴`~pa4Ȁ†UfȐ$SJeiv EAB;H TYN+!NJ6M?ݔ NG1?GRLU 7H!%%,7 P?%+|Vg/Z=i !">PA ^niW c/w-?bn+kҰ.DRGˬ 3Qe)K79Ը1lLc6 bt+t:as( ,72#)"AC iR[VIB졏6 =S zHgkr{:[TD-3L 2!KפFAME6&XH4r*΄TjRGKM|(́ ErfD- 4a)F}z{00g!k{JJUNT(ւȺ -4(+'-NZ/ $-(j@X;R2r+A\0"d\i^ze09 ChD6]frZl;[|PV7*UqksP3 uK)js\-?]B4ALqS>WkAcF mmkuOgZFmR!6!~rirјi]LjOB} 9m+̢:i+)7C䰢`v̤/ ʙJ\KG)Q:y)OyԆҐHcK@_ *)QtL V.\&"'lYʴRsRJ)(e^3>5B L&A9=,e;\g8Kˎi%Wlf"U# (ҡDFX +̖5mI豣cڭ]kP%T͑jSKpE>#YP]s̶ml`-ME(wHcḓ0=AW)t{!c+v/, /Ova% P\lfo+=V|O)Q>%DSOBQCDCj P@5p2qF4f:PTYO0Jx`?BˑTIX"pCUTK1K\N ]` W ٓ R=, hY]UeUiΠ TưlȒL֕Bۉtr]]vͲV%M!A|~0[!0VhشMި~X}քEc9^@-pxA Ԟi lez}I]lJ¨q-UL0.Nla8u`dtp蛛T~8[=9IY@}NdJ>۽5]Ɔl`TCTz$VZ r5IDllEӏWT( Z +̥I]GxDL%h5P8,0$($Ahr΂ l`,RXxs޾.nz`d>l°t] F(QƎQeɂ XHU˴w_uxVn#hFZtPGpµ(_[)l+Eb$ĵ%C"Bt@ax)F 5)|5XH;H]W+v略-ג/"ضWYzuIt-3. 0鑺lUIZf9~8f00bw],4PHwt8 KtKGEyst~X7$ #D+^"{߅ x`>[6f9i  SiXbDF܌WXxn#|0A8VZBSwLJК8c8g?NZk$(Џ?)x\Ry?h+h]y`{cFD?<[KZG(:85^ԙ5,Hf%-g3K98!G2~ gWY]xwW{5RDi,)ΧƘw𘲍ߩEgwO<,^ @x8~x֎ }w{t^z_4ւtl Yp^lRw-j^JʛdSV΍ `L.=Oo1񕭱h˟A_XHk/*›x76֢ ~IZJ ]6 gyc`ĵ@TcD[ Yʐh%jԴ$?) ςEgڿ@Nf7t%B7n6mmJ$jtS5KTe( V&y )X@f j0~AݼT>PvFQXɿ(a(Qc8nEhh*C` T>p5k-DܴM_/ *]6kCC/k/zڶk_ DKӏP@L3 H0 ?0¸R.\\,DC#ķ$/5pڐC@D H0)tG )JB @|2BPB(?pKt Đ.DKڔK,)&Ιē@Sb )FXYN:HRQtzwg!VrPP#ˆQPtƫ+*B֫j,k^lKEL0/P ( m0@r[m5'7\ ;ֻ:#΋3.;=Nዅ=ົNNj37LϋދϾb+п$1 ZÄPG*N mKд/kTTٱ4 tC +(24nAJ<4.sGDñTjP"$\H 87='&%C~ Jxʐ!HĐS~ 2NH$<N*V*!Jp uH`uޒa{J?u5$R)M+9 h,N,Q ڑi2. 0i̹e%E G`PL^aƪ}=@QPivӞ=)q`,9Nr<0g5`Ĵ㝅E:rx^+|~?A%)%HnIg*QH /YBۚ A26hAm4,w$i@q$dHfo,$2}d(7 &(B*LfݳD+% P"_"p `$H@m!B t %Y I;$9ȁOuudH8ĭ:C<>A:r"k`i[^ոWSnfحd(6Rv1W7ÅlJ4 gV:rփfr=h) P& BUd>tk-1bWY?VP>͹V%]2, 5FMe#ޫWy$[SM3mfF L1ELh@S,n۷) =/Ku4ge /&%h](ɨ[sH\n W\ ᑑ|Ֆk<\Hc=cLza/G8fbFv(A.B0:'l,L0I?pA,n븮?m@Z#@@рJ"MF "Z`*6O( /NVrw^#6"V$FM/SzI#Diu, qv%(:D.HE(&|)N+b})e"Z،E HlCN@t/0~m/"JHʦ`n@8@% /8$1n/Lfc;p@>:c*cQnnb j&TKjfG l'꠆C)EZi|P%,hK̎v#ċ̲?mfo4kh&H`ƈ&n-X_)|䤵Rp'<0OHM+U.P%u๰VRkuPO $# #s(poA/I%fm+އYT1l )Z ) l$R%ą.F LEE$-߈Q#,C8Q5q_4o48n7OT#;kc611Uh60R$;Kin0ĮNoGڌleC±T!;FoжNA̎5dA C &BhlgF 'T }^1Z:{GP|xoP+I"~  bE2JeTuf,#¶N$+fXitBNZ% Rll,Hg"^"*܂L"o$+k3W\&jgCG=qZOP]S46q㌃ 6sZ9]h:bq.8P4q;15@:`9@PŤUe,g,|Ko.DmlD"RkdЏFk⾞bXM(uTmjnxϺ@Qc.?p~n|.?C0-eBXB+uGuEa`O^t \N!:{T2T-=v!yANA'R@aJJ0PqKL봀Z HEm &5Ř5YSQF(Ns7G#U"OS1c:pcmiNnn:!Uu6UTSoaUspLlTDİqQk"Frm-TqCNU.>P4Jdn#d@;nb* MnjAU@ZcԀ^JK (+w0"z+*+eH `'{s%"BZ!LOF ֐aaQR/bW,/.;c-g dRd-|RbQ@"Rf.‹,P)l -k\0\ CEtȀ, L(,O/FZc)ƒ6ϪjnV(qQQ +N{Ȧƃ;(bqdjjX/TUI5p_uUpvQUs>7pJJHĮ&:w";W"bsjR8d[HJT(p `qyn*DP?fon7~L-pf! {xpE7++%\}BPVa{M%*zVNVK|ga#6"D#d+RwovDv~,I)4@"lL#x~I&jl^xS5rk4r40\d04Ql$ubc4̫CV_, 8Ǝ.9nm暳PvoTUUv]>mnCɜqm#*$L.#R4rlk00\pǗ\` .ɄyH bNCyLpiA(Afq'kf-y+Im Vڷ׎N$Y`>>y-Pc+T"dkx`ښ2HI%,۠i_DY,(肍v͘L#KXeNʹ#-Ƭ&qK 1FRQcS(ԻCz7ZQڡ1;Jcw6W5 az16X%knS[PMRH!F_̤,l,3F`2CC*Y$#7:w9/C+k8u :4\lnwqs $+<3@C \C؞ (X֬im˫$PW( |"Wk{>;df%:ULQ571ponUإ 'Zc۵T՘HgqEdHfh2+kYfKrr<`l",e$++HmH|Ϟ@Nq*ۺA>C wFljC ,ur Jee6+eb6F#[%(:Gy+ټ ">r`udUBPW%|Pr#8EBw.b >!HﶄkB~Y;Eyze\@'ױvEH,T!'W7Qj$1T)UR8(|PY`'T$ q䅬P4LD2-D\켌gJY㊖Tj6!$h KW#[ﶎOwtۍo7 %hoPF'I#{հ+QcS ;n'$]CƇp|4?`Czϝ>O4F* (Qd ?TbaV(!XQV4>{(J>V7xZH-S6$#P#,HY!#b셶PE"q͚:Y!EhB)KɖPõIw[GTgF-j$"ER(AUK @"Z$f>@\Oba.:L1rp)>rjb/i_yF|t$h(77p7}OGhsh#ЏnA\9A4@k痹EQt i}Lv% @ GT]pQ[.u)GRr=ڢnt$@p1t}+&2&` n?j4#1yK[ҌIc%P nbbYύ- d5-cZQsԤPuۇX#I0:d^Dmn+F#CUmdNp~!t[|_+BB?b;8N^1o@6yMlLU-zs$`O'P% ?/0<R@ EQA1&b1q!USt0B/B+sst(Rӑ0%v2P;SOPD5v;\8}!v@)Duxbg"4qxuhB'p#tV;^W"wxvYx#<?P*' ;j Ԡ p6 P56X\w'V8*&XVa'WZkT)5&A)A8w5Qltl[6\jZm)*5C@dGOG~}#&a$NSpo2`eNdN=Q]7 `q$V`a@e// Ur05Aq@ A!rHUr/151#8gR%2c311/đ0'"]!is$ӄQm&mR)dWpv92R;04#'"vYpFg]xwp!&"*ux<7a\PxpLafIrI|e=|\G;"j61K Q{q)a{ƥh0'sJ:ćk!Q$;c;Y&\7]mpm5UT-\N1$,]i^AoH_M"_A B_}_= `SqB 0&@,W0*a cܑQrtTQc-(121AWc2f&tم3tC7 C5@4‹M)Le"]FeK)U|omgF1U weD$5<p*P5pFUXg`#dZ@*JD9|j{!':qxmv|=ah:U4e8:HHQKjr[[93T zub8V}ڶz:Df Ms!.6h_d0s%=hOOS?QWPr) AIr,qrSQzb1S=(Si1.x s/hc%sB'TG2$]a&`xStХYEVU"YTĠ89U"S3+DϦrkVm4nuWC']Ehq(";ѕ#Z[S)QleZZ}k4;aSZWU|VQjH:Kj891t j"#rrq{19z'PSCw:L|z]%<!BtAh3|snܒ.]_==.f>Qf3Da?a`6PPʝ-IQa3GR'r1,48G!sJR @D#3BHUbed 7S2sB"Ee"w4bGS)JU Sxf4a#dDw;"0s托HQ9hu#/I~9`lkF9Q\\#ҁhvUQIwIb QWr|[|GKĦVljzj;*r3b2WqQ^A_L.A&|#~Eg ⍕* >qHL䎞a! pPZq/HBsH1#ԁiA9/QS2+BB3ȑyGA 742 N!Xu媚K)kwM5k)F;x wn%#;<2zm5QA$gnUxrFĤۤyIE{qg4wZIN9Z,I!@"QmWr4F+{F"j5D!Cu2bG G&VF2< ~9DANI`љJp%d?q?YLw@rP ss,c ١b/a&(!8-ScsȂyB1cRzlG@TDa U )bE35Y8; ڠTvfmf'f4ˁ&wzZF_ WowUKj6!Oq|mآ{hFHK)HJ{HRzjf*RK[ ܲf1X[WhaYa&7r;)aa3wr BR9:)S)8A 21݀3t%dci![f4zmJ4ehM|ZEZ.vYKy]h?p UGK\GFjvV:Z9p~{h!+IQ9FyIɰ\j|s.#u݆)ε 2.[66dd ]*CE5OPC-B6) _dP,3-O.=ޣ$aqYR2s<.P߁b呞90b Q)dt+0A?AA2")6N fL"(d\"2鉬)EǛzz;q XYyW&6چ#o8 !טg&lL@7UHG2fr*}225A5$NEb4Fꊼ#TEH)F"Pgj}hCKmFѬf'j"k#ڱcN{IDIډ#"bVc*GQKIC!Bt C$߉'.\HX1Ew<!V%M4iHeI -ӿOI_;萀@Es/B0@8`U2 5^~*٭SxK6\ }[_{$w .%qB]_ɑ4^pA d,yɢ3wijg ^䌠=9ʙ9~p@yˣv5\2`kVvpe_3U\B@~# ;0! ‡!OB蠄(o VT"1] .T\܂" HAF {0 k ':` J0h !6 T7:AHADBBLF")#VZI;dI|$2"0a9VšZ ^iuZ 9p 2b1ҫ1^\Υ 7J^p䵌5*:{mjpm.\R.d:>U9;&!:Ir8vi?jك "9!z@S L(~x`|HBH S!i<(C JGRH*Y1qD'PB*v)ELρē"=ds"7h 3#7 1A`F/" J]WD8P4dW~e`tj]p{sB2,)]8MYG֑^ 0~ ;,.#'J 9Y{b Oi(IφW)**ƹ>I,'xdWG~MKJ*tt=&|EbJ=DLnPJN'VR7R$"+a;Eeehw;&K`rN%/1ׂLBHHRA Dҕ.`.cf| ΃)r/ O%0dԥk5| 忑ahAeHA(CN:*·r0M4XIG4ȯ p1fNdc,nHU MAsy颓qImGވH&G A2]lXys#7?xhO~F"ҡoLC&b5# Y+-}&h9iLdi#;T\Lx|Eo2eZ$t'H d}tU;E K[^`t0e78}z^nE[E)3@04#M ̚+_ͽK7 #}|Ņ0 H TOStc{B3X"b7~U,|C2{A2*-0i89?"r1,Y &+;31i#29Cb, G+I<#7[IC+S2 9/ٰላL) N1"Ӵ-x&`#SKQCahsf8&]ٞ(6 n&HA6Q È'gq=b {/ʨ 2RRK ')( y[= ب}{ҭƛC8ÉPySј 03ٚšk:98Bq CЉYĈ@&ق P&!!!i#$=*#S1!$ʳ0tȈ;M!Eb&$„FÓTƹ㣌;ሌ8$5ËV 6hC%2HC.X܋@ f ma8Kf;GnDn9/Lḟxj{'m oYES4xzI t#{a7`AL7}!S1eL/<{$ ɂJʔ 8{Fjlt(iI*7|: ߤ M1 h hqLLLY ;ʞQ ƤMZL9`љAAȹH*11 $1PG!$Mb"&1+:,HlTT!()HY$ D D<3 9 6,(S@ iZЛxН/;0"J !V\pB!Hro Ehs^5{IDisH6uN6xt(H0X }ҍNRY,0㨷2ʴp͈ S !(3;NɈ2{ϳ#+ 9;3JB7 pA,Y h -.Z HFMֲҫ!):3[ l^EPu819kU PG4YЁslU=nn( HhE\u bĄ1@//{ҋnҶ"+j*6'E(eA=LaC`7_]YΈd&ahx-ɄNCujvVK:B+a9sȏqgy򪈎0AIUT" UG:#D1@v8Qf۸\MC5c-8њL7!3Bb4(*@8BХq.5Hc~ eeH2;nS;|M[^q7~Kj|l{_t }AṔ90ItR̽>Y 2UF-9xCX"}dNCnj:ax,e(Ha'M$@<&r: 7ǧM&Q1Nʕ30 -$Kސ.[d9քUOƈU] Ѽt`8E+@#D =0H .\o'e<<&ʝ^ UɢUӃ',ĦK0Xj27zꄠXP/F su 8 XXjyRk'7f8e!&5Pctr{xP [^rjkBE::%;1I;"3Ȕ9Mcޖ` XNs\xyg9"ma.h%Jl)V59z,s ᨐ!#.$XB x_ "!–[B";uH;ءÿ2D:oKw: yb"Fp@C6$Aҥ''\z¿;i dPȘwb0@X!2GO_24+s;xK *u׮g~Dn]`ܿq#N_ŋ7ހ9o79 ^5KK0ɠ 3?#G)28"2,ǹ?}rejIVZwXh![lI =RLEPT]TNW%eWF!M0RvH!(e\`HJM _yR C@REpٔG@zюKO 8VRV!QL&] P9D Aŕ$EL,ԣ GtK OlqBOLO@i*RJY4PTRAv.BW\ SYgOW &^e@p]%VAԲŠ {ZhಖZl6.iJWrǮp-\˹;r9woKK2_ u* 'uHݰhˤDPum;ܰd)t\dXZ4M$U.Ve$%HS9a+*QIE Ȃ=/+7-s۸lf.`xQ=e14Amzp[MMV2S7D>strg:UxODl9H%2X@$3JЍuˊԂwY 0H'sK"mnGU58a G9ԇ&!SmCw ).Z :i J8eIh W7,jdbIה&oDdñ5q9)ܴe8)2s8+m6؝R<8WgP)k6J(% =q^~w>slQ[zWy)Lʒ qtme,j3խLj| Rl}ŅY/MH ]冷Ck95xldz@]^ce)38H.Ά{^pWvdTVZ<8V٣"s`Px,mA:XEƂk80Ycb\ HF1Vﵣ(PѦĄ($IRJM@O<Y,1dh[ l ˠ __ aVdxDa!tLʋn<nqT<x:;%\WP޶Am_F1!҆yftCf*S)Z}dckT[WIW4΢"a5t`-ȣ椮am2JźU@A:NԘA[S$uq1,7 E[* a(EE`f3z ~¶^G sNn'tn;qQz>cǨv1G-أaKEVg%G1F(GwGnrqXv:JU=I.AF5#/|k,ti_X & x$}ϱ~g\bBV\ 췅GQIR_+c;Z*I3AC@Db{iNp5֎pī\ATWt 7*v'-eNWTfm0j4'9wi1Sɯ9=k j|?hkO.#b!Ye(BzM@̰`A$Ă  Ђh=b$x;T.=x H)kvly Ϛ5=<Ԁ2 \iA24 JT `I^jmkհ"z0A֬m H`նj\qF pؿW#hob~!+VX+q=DvA &DG~ :D|Eq! &(NAOKE. ]32/Bm T%McN^$(*9zօsa.nj7:ٌ?u!]d[OF+>!M=~B`P'L)L'Y,` LLA4 ?iІDZE 2DCe6#9 "YȘ|mOG'PWRH$#9uIp<|ɛ"’1i"d xXg&Of a[6ҝuZbN:w9Xʋ| *#H/뜨+nȲ,YUط$u2G.wGjWOh&9ֺ{D'\kBlȅeEޫv^qR/! r?/A&_"vdZL`0V@ }rB" *ΎaM$H!,!;d%0hHJ\36Yў7맕hTĉ#)fBD qbT(D '\>5))E =':eV| > 7 La Ka%3jX4y .%^JH6N(?-la%8e%a*[fy@ r(E DgH>#9OgVHkY*y K'K Y ]p-2QJs2ER:ĖlZ,:ȣ4|zU IHkd%Y C_4f=Iaϖq'-L߂rW\hzs%A)V<x7< )&'0R _Uw^%6-Jx~EC7&ט=]1y\0KwYE=>ѽGp1`IP,̌-@ :2=[ 9m"g4$: y^vLHk#Lg-WA'p% ۅ]Lh .Hh6`Ƭg i0j  5N Y@ü-F' c9>z 3)F\:j;X/eǼ<=c>>?.aLle~X?  n ɔ`*8tр&*n&LLi`|˶ZR" ީ >JMfP&zUJkˉXONb^ nG:ɶ̩(pBTګh@Őgz8o8Hl4ƺ&z]v(n9noFb>~|_"D֐"-DC4䰱 HĜZ&d|r)JVb$#li̸2IGDjh\rMV& $QL:qPL$\1T\NJ8Qrd&[DSJb&PQsN.y©/Bt0b* C/%1s1t4j *B0SES>ێ6I^b;'^ "!0P q>pLOɊ?"O877D9AsN)M!:L{%>=-Hrfh 2lR(QFK>NH~$$zk辫 -G4*2DuK~"*@BmpH‹.'tdBP&:QNfFnkמqZ[PP*6I1f"IV! JC"H}\!i gbFHJq2x=]m -E8Kq}&"Ȟ)8-D8&F#A;Φϟ 6B TV)*˵Գ#:->e~=slҡ:(儨.d}F &^ulbO m mhiJJ6kDa(򢀍t5D 'ĢEPmVzmD/d"2fwjXXWU9ڼ Dv4HT>x"jBZh;2[jPWs^ B^ee 7 ?b?twuDww #̜$*&k[xPuGV6ju&j(FBո)I8ni ;$i(i&HO!" *?n+('ўbU&v)$6*P0l&7t VFPV$n2c0t[O5X5h4D'9r}>Nrɂ8>'NS6%cyN)ܥMǂ#rC?p_,V`xwxkwww x쁢2ކFƉMLW?4ZAXJhw%dN?]&2>ىK.dR&/mffi#>f:kHcD<(kY3~QbCB. UER/ Ӡ4B4XX2Mw>>|PU>8^^L8F٢4WВ􉹃Fߖ|l/C* awؠWGwwc@@bTkd#+o@A@bC*Vh);uڤfh6&i?jgRBim'oLe҈$*fxg*"#ʆKf6ӄ"!6 \Qm<7my GVmuCI8Ǝy9O8U~g ['4G9{]^CeL:םGX^B`:V7]Z*-7C k}hŋdbO{aLf àMFx= T :yR n9ygNH; ˄Gn(Vq$4[9Jzbi5Mn}faդk+іgb9אn/VmTH4`8Q!X5ZVXsHjNUC^g81_CIQaEU(h {ڃ c>@#7v IÌ7ƍ +:̟>΢̤*L8fn'KDquLƦ3$;)ͻ$@Π<-wnV/4Nel_ *l*nlSDej+pl%GؼFN}Now I8{oG4_WHA7I: _);5 _ Rڥ]M#e~_j"Lxe"(|wx n"<ɚMѶY lI>)YeG%1N}vGٙ]ثₒ&Q(loݯO!rk 33yB74Eo.RĹ8Ô}]ڪeb6{ 0L zxw nC2?V$$9MUFPTpp :²2 >!5 =khuLH]n#hHnh:~m~KO|wȩS{_`ުcdC!oD,)TR m2pw\XԭmՏ\#w 쪠M7|=\x Cĉ'w_ &h2d!¿.ȸ$7reB4rcB!p $)EID5Q[=^UW_=@Tye`VŧV[oEh_sXphVN5WqYVgzƙkFjkWkas+x17k6lYwoN[u,ku)h}u5Km&]>|'􉪙{iK&?&hAۮfDna&(?&QÊ3nh4ЎZbL0@ >B%dd2cE[4Д=%S_YM@:eSL-SH(SuRULyW)Y& ~{bFq xwZsjyzoEGuFjkl"7ݳJvzq\%\X6MKڮ{}snxviD?fZBfd[|* ("0+6 #~|džw>_aE'DPЅo'м}$h]R\i: &8ؤhLR(XA89ekn;ohm򡔻C: s\cА3U[@eOe:lѕ3Fbsf;sMtpu*:!ł:e j\yNw8BOַ+nv኏ i?zкBp-0F_,}MHCпHo1%b! 0DK'#Fb/ >bX$ FZBjˁH0:k τ%|'c 6r&)MaS4:ANS |I-%9)պ.qVݦs!:cCU8+CըFLp&G&ʆzUp:*Xrk-`ѓ&Ak8k.4T5nbEJS"c0!Ky "nEf(!c:SUnAQ%>LnrQ(Q ?5QG F=QQ@6-dZ"yJфr :3̤3BY8@m|ɺzІBk,'U\p3 <(|J5*pP|\;EXM4kI |4Q^YhSxD;L4:W2;Z;5nӌztcZ߁dHϑ!XRD@/20hU*1},_'?_6V~/2py2_fO´L<_68!qԪL[YiIGH9(gbÜ$nUK<[{Bd27ͼ7B8:XKsv󩳌t^qm.nSκ{3[3R:wk!27\ɖxiLNM$q{XQb290DR3hԢ^J`{dZ0YZRl/*J1ْq" &`^b  *-,Ulr4i)UvR;Wל RQW̢y'@ev#Bc7VEo@yL mKhEfoYST<d t$#fGܺӖIaE;9b nL=ɈBjHoюn^y u 6_Ow߉ I/ |&NP#L)z)JhׅzZėUR`"Óx&VRx=QmlpUc~^GYnjxFd .:A<:Et2\E4mw㠈8E^@Rd8C+@3˘ VO-g=lra]</zH3lش@%tLE#@LnWbMvM&wM H'6dvga.1x0} F@D 2Rx"wy5dcREgrVd,zZ҄+-Au;uCQ^vgG-nBw(RF|ssy;drh7s H3g}?1ST@SG_ iitItI(itI0$>+auYu]ax2K[b%W6ؔl̖%vCvfҁOW{WX4q(GG,k|c;Y1hhx{2eeZj\EC.P{YY&Azzą:'rEc.$1%ydHBDBgܥ6jx||L^?u?^/R/C_>"H_ai0*T-94v2J'`7`/!acK92WV.@v%v%Llvrr]Y+FUZzrc.'}7j[,#~"I. I!PNB$q'@fWY;)(rYIX@7?sx8!#0$r"~#>i'7u/y)2j`2yX#Tb193aB3Jy@!3H&iǔtw$Lw(b|qshB$bA'4p}zGXzc{28#bJ9zgu w038n5ggY>jS^-פG$!~ H.~ti_iT~LITB˹j1&SsV,q֙.W^BW<wJ)@сDJFbк3aG)g01r1ciw9}Baચ=zGrCo>:{xZd&XJ ?Idh3E[l F!pkdUrryQϱg`kVT&#Ks1)!~3t(w{=2.a4xBK.Gȳ<^3+ }e)GHzbYu)Ҧcyq9B*h!PcoEwfUIF}kޟYtѭ>6ȌhDߟ>Dtjft `V%Uəu^_(S2;&%^.'h@l7&dRA{.(Ʒ?H:A1x^sKHxHncŪ!7q[!P$xL-Od$wlg;} ^EJ ?]HBGK;@2N\҈3#o?]F +^;U1-֯h}{ S^N?.p  DxC"\PqdG.2{0pd<֘dEXdxK :(W)ܸs7oC9gp y/s9ߡ?w"9B_twcvرOD__ !_?!э{[2Mw9ˎvQdSR/D0P tp)3ڔvZjZl $m[pw\r5\tUw]vu]xw^z^|w_~_x` 6`Vxava#xb+b3xc;cCydK6dSVye[vecyfkfsyg{g[iB:BB`zX{̚ /yBDZi'kg X?:#{)0o;"kpۼp~oqV7KnlKWr$ɚu=;" 知!2i_jC`j#Z\k~':SgixjGn},_ xb펲#{[,#Zi="m]_Dbp)_D=E\Sr7ĕr< 8yx$}!|;ap~nK|\7xm[F ȱ#3zF[rVqZ1"Y0Z>/hݪ8bhֈj ۲b:.wK_N996ol%UfXXNxKzd ,99󕁌eH2VtG]>:uB=BAQq j}t%ABH][łѪ.}ˡpa-Y}uXvc֚)a\_2R's# UP shZYB$m_ҼƨVbIRMO`*wK|b}(,_tAI:vdHG2Xp)^WJ(4*2]>4"^ŬJ^F~o#շa.P<-Dfw),+yf"[8 nHD.k(R$@AKrrẉ1V0)+4.|tmhQ\Y[-'~v -D,EW b"^ǘX&J9PNc +owK5iU[`J,jm]ʄ"٭(@vB.n_mБvi-o2CTchjK5Cs)F(WاxAF Xl%9@G@<ӅvKr0GDy IβP]1CI ȁ7i}6˨IЗ"==سɭ/WJ]渢D_]W{ 6x"fg{v]s{~wZ{f]'| xg8G^\@!,xRUeDGWUG5B(3%XBK4T:D/gIRD18K:IA D3>H"^BItLQr`3 ! 7 V>HٺYVŭ=;.طΒjS(F& Q=J4дbYpO8EhXr` E^VtG_ENȖxfFKV/%<1)5^]ZTkʈnr^|Svc絉TNxPMtIKkNWxElqPU輤ӆfY[mVVzcەeޜjLSnJyaw]J.'鯄yWkIMbWf]ؗsQM],wنbtՌpغil_I+.ڦ~}SUŭ©^;>än@%$͵̀atW[Ԉ\Ϣu[xYlBEƆgcESwT[zfNh[iAܱs>-٩Y:síʉKxM_rW3.\aNTњxͬ|PQ|rRزJ5ȩ}E'}YcMۏ^Q6=gS6ەlD1ĕyn;iawXFڟxe:6]`_@QQQO8KA䳒ѩ뻞ڻsC!s}دK]zFѼ H+@ 4ۋ[rسS=_O8|Ӣe9_@ӗ_FL9? ځ%A3-&mc?T'B .F@ dqQ\&{(ߍ8Fd_}<:E($jtsu)@MÞD 498 C^"!i#` שiPC x=:' ?A&袌6裐F*餔N:(J$)S(B{Zd}B0hmGjj|9r/ ??o>~/o>H@cM:'ȱ}0HޗY} BHBqP D SHBk0| ]H7d!wư2hטpH:x̣> IBL"8F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ^ 0l 01{yf"܀4IjZ3 &6Ml#n>AO(FAINs88!Mm@a ?jT@(APa" b!HF/Qy(E'JR$UIMԥ0 ?d~MsSt@?GP ԃs GuQ) éP}TĪBjVjծf4)͠d<<̓$Sti2_:Z!+ՁjR.`Š ְ+ +ñI/JكdH!^@ԥ(D JZv$3%>-OT8iNm qf?-Pũ[UE]AUɝXWܧ*7_q֙6pgv9WAKޑu %)z{y׃կf9X*6!d3+:} 0L)ӈ=-= 2Ldi2[ n \"|SbS0 qj-Wܯتh0YRm5s+C+ A+&5mJW!]ak0/$c|f4^D<9[@gĿ|݇H:&l{ 7qoC,u q[NCDIVT 7N]nr fÄ́4y]$'2׉M~rx,Ђ޵\A|vvD,X^Xf4#M)#gۛTVMnnȡl ?}Gmsہ'511nGix$_mwL܁ӵާqmMSs&4E BƎkl QoqQeC=twpR:9-uA/OT{.ZdQXUr~zZط|}[Bj]eUFBub[rUWrfktet]e.5u&U _GsJ8PfW% ( сf1{5.m,Ytq|%%_6tuWWQWȄehلoVX`aYavwbaahpdjg%|̱p J)Y%x³9mAm ðʄɫ1f3M,S ͺ\=6*VP]`|â¼·\׹%l|-p\Xjئ\]!ٖ, Ȝn{| }ЂX ۲&o q盾íBBnܑܿ#d܁Q3z;S ̛|ڭWӻqb=)eM5l͑ J10YٝL ʫƖ T  w=ɘA-w٢#N-ْ~Rzsa}0ǸMʄ;x ?NܸԺֹEQ*=|YLڍ9Z^LNn=͵?@[ z^Ѣ~"0IPic&]N y7>{i iMDQUP@;~E莓D,_ɜݔ5bk, 0-Kq? xv؇p, ;$ _ k,pж : ;ny{J* jq1\G݊=u ø*#`Y/b*XSޯ_w0 t^w t][x ZׂN1["[?[nޭ=S2/'E,\AzÄwd/ص[1-ܴ޾@h1rʡ1>¢B[3,;11'4@ӬL9R,f;Mn NdSI;mBL9t9ऻI:sTG+IwI$I$誉0RUSMĕz# U1| Z{WK1V]d$2) hQԇ 2,Rǵ(r;8MA-N-Ry҈C 'ܗP1xkQ ;{d%{KHulaT+1?Tj"A*!ؐrܘvC]g)aE*e,(ҨW' 1՞iFm;-#tfZQ뻰G+^.˼0,)XM4//M-??*Fs`trr*oC.;\69wU=nCKGN}/Got+SS%8@XZ'з{^oPkeQ;US3q6ճ9[wKT].@݉ :J(cS8pg4/mfrӘTAl i괹p{y.dž+aE倰PNbHf;H+?eY)-d'K.79Q/+U ARq-1F f?h1h3!M2gup !V%]t3E>uR0 s1%0pNĊ9yGsQZH bIIj%Ufw@kG8м(=Bȡ"4(&QD9Yc^ g%#~ͺIJ4K9IӰt&\+{ qNeL18]J 6ƨj2j7pᙨy~ubjր|gK )?1F LL'P474s1JN>Ec N"4˼EkbUЄVIM 'FY eM jS>Dbhi=ՒFZn-8)Mz|3s@8Sɩx*[1FUoŗ n3Z/6euba#XgNe2*Dqu\xzI?E *{: lL- ]?נ|IQX4>$"cĬQRD'KQ |̝WBݡN9{H1U(zb!솖"Y)N *:H-D$Ɗtw=8cG漰M]ԁ9pyz^L>Wݿ6ޤ>0s3`dPf]T[j^| VCTWK0/e[ċZ[λZ<{C,3?|S4$EDȲ6eA46u8u荶[#It$R!Ojt2 ,E.shIsŲEHş$RpC8C[<0Q2Jc,: <Ƨ0e 5Fftn0Ƙ[^k>ZFM6'0;ãe¹):s/Zʛ\|)TT6-KVlLE9CC hF129 .Ȏu6\ #//لM qH0BPCMǜRT<[C$|N{0J)3ClJKt/ʧ9|Pfd+t0E% ދT$KKBACkJ 3J\04G|5<5D NNNNDZE2?K:?NuLUñkŊΣHQ;H ԍc#l\R6b`![)7MBx2Bu0ĭf122%ECĄ@: %̵ J̼KУG!S?@յNUԔ]CԐ0dJOI͍f佚LM^Y-}4Š5П-PmZ5@}eKN{K6G7Z7۬KÆ][ܲ_,U[[n׊ۊ|`x1W.[ %$]R. w=> vMM.W1RPŀ b=3m$ج#_΋Z]kڦ,YEݏ}f]O2~O١^ݣohٓ=:u>c*] :\e-XF^KMA?NhxSLebO_L*R6E]mHWpUBHvWp0s̓Haa`Vf$MWZ-6ܓH\x ;[҂WR6r>ۃUb%NMfgJnZbB]]P m]]T..T1ì^2ݭ=dE[,^8n%|coP%<^cTh.{6T.9V5iqUPT{g{P'v jNSr6Np[Nm]e hj$M$͍]Nf^fNsea(ףFRPI-ۃkhi1DMΣ6-Xu>:MSwG'?إi׭ݏ~gfTT`Y]N}ZkƊTnhO= %m% m V`W`dua x%0 ..Q/e VsVbD^fg9}ʮz؛?g0Fnh]%rVm5m5Vmv~L^&݃޴LB=m9^(JV8 G-2ui-6|n]ntZ@ah >lnjloV[VƥWveXeeRoM t nk@fFMH7͎da _apzfĭo&1R} 4SZԕSRsL&TqλqsJs'fӒ߲Atb@`pn~y>`m$VtǍmjowoRZ]fQ'6XPk/OzX'oؔaoF{vyF[tI?[uܖ'fwvj[abNuOpTufn棷/\ŎL kX/ R4!5#I@6kH"W޺V2cYsf̖"ulIghrR~L?!IIMԨW z+U-+?j+ mCBb-޼weo_q./->°a43~a2̚+g3h~w4bU7t:u\ѯgu-$uخ涻;J%%T(TV^U't:+)9FIztuu6өΥ[Ջ^܇N':\ F P%т "O4H`C~4ŀ;\l8c#G"B ǟE~!m{ AR:)r !۽]vܭ4H.qv <SLIW%sHqNWTpĉVVjuWee]%qWFo&_u ?a^d ZV؁u v]vS[kmV] wYgɕn ǕVXVySGDeuWTwKI4}ҐF6d^K{'x~7IyvQ~ &8H!~8" 4A"PCbtQE"8^@ܐL oNy.A6,Sٱ"Ueϩ̺+ii9gir|zz_*WKaYfphgjg/5 4h^樢Ut\r׵ZB'q&* Q)kRP j հ9$&=7r{NKxct~Ǣѻ ~!~$?󋡇 D?zQ.%l.C0'PIiٓ䫱2eQ?eCYe8՗eW%21S,mSZD42OfA jD3(hjtje)QR@:ciil1 _FU*P8j۩f6J*b?)*L(E}X 4f'KQ<@z{ӹmI [ e@V;|adWd'/ BPA ;ocw/(u! 9a*i!6JqN#%$Ť9# id*R8ŵ/qj_ᖳ@Q| 2~ ΂y1-L ME –&O^#ND34 YڻjUkKDVȕae&m$DŦՙ_:{ v/1e#$ԮCP 6ayf?.3o}3WWz7v1G8ƅhT򐛌6|k^ nX5g@╵8N,-,0!bQ.ڒ{''jE;N<|ߦ|̌3P@O%'U%Qsk$BM3@4\kĝZq7^%z|@Rb=Jm殔Tl&CScxccPڻ* /wpJz;gFT9Y^uZ3rjx^ާ~} >|PdH3嫒"SΌM6q,fT!ry+OmA\lB9G?u3O+bX42 =@Hå @ZBa ֡ؼۊZ. LڸaVi{UJZ!]aK뼋^F ޱ) fDŋD%I^$A|%)U]x La)Kxg=}!r) v5^yPt!Cޑ P 0S aM_b I_ BieQhUɜə P=_VEc_C8e)vYe0)"&]-].`SfZΞZgh$cZVa}z畛APM!NN^ ` ^5[~Aۂ`|҃S% F RQI54f2jaA^z!ފa֩b] SE-.^"bZ!2@QZC]$\gLg0g4Ae-g "F@N\h #VF?4 nߚ}*XS~q#V"F rG+^Z0".au%2.ZBՕ\%`2bD.3:cxT5%Q2ar]8Hd8"΋XȂˆX4D$f$e.y>j|r3e2dcC6DV:Eb_" G20-"ddJVgVvbDuRe%KaRfM*'#JI_'#jgb_hg`e|3'G"UgW&Yb01'Q$&'/gn'ҥrb#x#Xˆ?86cB%`#Vfb&faCbzx ~ NRF 8J&^C `Pa;b[hQ$YX 5dh)f)6v[4Z61eBoEvhqG.s^6CHکt*YZ)IVwuVy6D@&%*j `٢'Vz:"Qh%bRv'˭;Uvfߡ\*hTʠ2Z's:hZ~FfDerbZh((k4F|a´JČ6DfčbDbăe Bf )-O%FHOQzCf-h^q66"Ė(Ch #fr6'z'.iHuve jW *wjg.MƬ6A'b*lFjCt?teh lQ'cxPѢ\:&'zFԮYjJ *"ZmyOuegf-ufIʪGR*r#B.X2,ކ!ŠQ6,:BV]j2$glk}f Q+&۲ 8W"X!>XS+!lziii$.n&Z?Eg8^hap^Ʃj"h?)2i>g,R :jNje!2j%,rPv,~M\cHeFruB/F23/*rlFo_^6+Ħ(p>az2d&:g:cWX+TH  1?<$[λ }aD慍;jv:g1C(xA(\J@B O.6ح6`]L#1r46Dj!2Oj"3iw6$gmScK,͎%((Tr.o'X>e)'ZO)*r2Xw2w6*沣m^.2-W竢Q1i4c$P{W 5G5IA($p1 c;vD^< +ƹ9]\Bfh,OM#>c;;8W7{>Vc ZU9]7OG76\;y-;gӁ؄zȗyȋWg,ʯ|hdkc f7 >O8y?F@ᘃcveFM5*fOcG:ȑ#e %Pg-LGtjԙS'ĖϢE2*EE-jը:`>_uld;jّ`۸4wTl`} .^AiOS|bSa#|Pe'}|q货QK)W+mL%Oۺ%V7]wcÚ֬ԱeoJ)rIgRd!yQ>Aa{Hvȋ: :hG꥗ %pCl " C#JQ?b3B:CT)G`&!ib': G&*nJK-:./kƬ5w+;Nt MB@eQ"S&_B PNy,ftrt1ʤQLk4K3<.ζn7Κ-nSb箴4 R+-F _ т +AA P^a]?g-(#F"%"laL/R fo kI(F.( I+iV.$K.e8Mg4ԣ뢳.;sБ P IPt >ѳbB3|kG,PJ:TK=+TCSҁKQƑ}d)`zYxU`v&'0QubI͑h/>5ie 3ٲ:`cҩ_ wˢ8Y^Pl`fgv+BZ?r[Ķ-defUNJBhVIhPayrDI]N#ރ(y`GwҦ4ԶTawdy}_MFUl{.Tu *@-@j <Rzje-nJ#iUk׺^[cnSHX'zlOX?QL*N8i.ʉ5!60"Gĩ ?mִ,j:qF=z:Q/[Uը|em_X򾯹׸ƞaF`!%^6D;CjvU+!'{'HZܼV˭ZR붱)Qy:14<;%^1G9Q/=Q\5'L(Gt\)/n&mjfO a A>O5$Q%7 s;3;S@DOt:P 5q pPuQuPS87pNG-H01Ih0Ӓ.鎪wKD4Ct2G(v w3 &aĭ\N R(6?O v 8{S7WJ] 8 ",5:˵DDOC?4[R1;3$)Bk0TCTsau]BWMW,kol@Oc*q(/n,m/qBYkG"Y6+Ik5tqjMR:uj=R[s:]g+Fu9S9^ u8U^s^ M!GB5HNevHu"L4g11$y&vbw',bzxĂ,5/5cA wq Osv7{8ٵPy87]]96,t:jS[+5[-SIr+1tZvS+a2+-^U4˴,'mEW>iѵ fo_Aow3tup'auk`rökx2.sGrZ$/!ju[t˵|\=CS\7]K:uW]u^ws858߸džހ t_A`ۮxx Iɢc1A,lJ7DCJ@0 - o!@7_cwaOnր.Ogy8[]U,x$S\CԀOsjjjr;ka!l8ƏYO5Jў6 qQX]'Lvfvog@GBoS o"m]nPVEprl%6+2C- Az$a-xa[G\8Rv ؋8F {y7 8f+wԨwWON3Q#{C2lDBAJ5ӐMz3s<Ē 3`@:,QsG"QY ]SV9wwO?7G7[yszc8jch_ZjAWj?s9)+;!X+YCr+7r8GVm(K؝yhly$fA9,9Gnb5faSUm5X9+ddOY{[oohmE c oo 5ؿy uOf`H--0Eye^$2Ga;‘<,yuy/L%5sДt ss7~y {u/q/;طZYR"2ax LՑ3:,{n֨}p7է׍w W]{Ce\& 353u$RP䯓BG~Z;w͑l1|W~)TZY-%lI5qpw8W6WSq>ԇ^>bֿ J@& cC+.P"ƍ?BYȓ,1<ʘH%KƜj?: 4C?s>\iҎd1Gs ߴV1F 6Z:Vlkꭞsc?|%F.1jQnj?i F͚7r94hʍ%O5Ycȉ9sf끱76ZV.F{WO+.5ԫ[GkЖ6U+W?W6h Tm$WuTQ!MGSE8PX*@j?b (CAtQD1NЉR3ՄRJ;L!;dMQTOE1%5u,`$Њ$r!b#/V͑sfX7V}WZP7ux^x-W]6afbbj0d!@q@m*^vGQvi5Ԩ:kdQ,gۂ Vpv@~WrƾU[ru>rggQ{u$_ۖEVdFۚ7`~ Y`]qeU9DH!i{`T/^!\8 P $#5HE6NK.)SP"F$IYAWXA5+,U&.`_UX7.sgziI'5+` 1dhm@c6ڧyZGZl-@g5~ vo)),O C zځGݵ]/gVs}pK{I eћE3o tU[o?+_鰇)ܰC bqDg4Q{,K2G*o2P;\%GYّV^0;sha/9xÊŸܙ>P@mt稦,>]Mr)e5S 1t;e4*&2aƶB8n.RdEJ8נAjMerāΟ9.$HK҂:]+Nr%.1p=cbV@r^g a 30đ~5^.Q$|2"NE'.HD#o#7K+#HLDc.bMlibNo|#S&=%j&FFW-11GdCb8 oof=#g3rg|]*\q{@adjZ,iutǁB]wbzGuMET9=0;&MGcVP ^r$,}WK A&q̴EFCդ&1D*RUT5FLRVg P=݋SAWbh?5;P "z:s#q.saIBU1lDliTsMڌ06Mz9 }b9O(NqkE,JN/UN@y(J:Ai]]q\>xFr'B?*B4Xp*pݍ)RW7FDrJB23.Q~s1( %~DY?OcLU5f %$0`G(d^k\tdWouX(1k: []nd Xr N˔v&V~ۣ QMoCdGH3Ԑm#0"GRjw*G4)[J4𒯌-! rrXq FMF0G:zKuJ⳴¢N+E/QV̬caZyRtK#Di@E$OT=яf"' ɌHakd% %@ 6T8-lg>dU(MS > [;vP#x#; ,%.Z*8g-Ȥ&*Q]k\(Rn=t e*XǢsC"*j#+Gwä) &h$ \Xk{Pq%POrk5U'@E-ZWuhh[=eKNO)?}q) j/]ĤObbPE\;D%l.T#C J#u$)%6v%b[ ?uG:B4xgWe%=/'5}\X \&:*, Yz%g]ƀ䍅x[FpRL@muhmu`V)XG!_(:m&rd ?ѹb-s2sh1 R2La΀pkruP‚.u\]& 6ΐݕ@u{g?k"1@<鰄P(sTCQJe'_)Tx^3cW!3KmGimܕj]wU_0Z=ܓ6ZE= QI]h3KS"IJyG`36@V'[O[,'JMZFcG+^B5B6|H ,QA4r@UV6 vqUL`a"1Pfg0ǘ \g#2 X%38Π2J$'֚$1"&HN89I+9 $ك]ui> ٙ 9̹ i# Ic>R_TO2_LL=ɓ !Q" Uu%J8 s!FuY:Ô4l-~L5¡5#4EJdk}NBm'7 6CQYYqE ~heh~v@!Bv_[ !]u'x>#,hٙ2i-&(y%(> ژ)I>șX7(9^*A4]ȧ1i䈚:! Ѝ4 $3``p"A$wAUIkxW ["%?ú"RqS :b5FtA NNb(B EzD+_#7B+\(YNKt,1P P< ^F007"J(g^3j]G*W*_ʲ8q:=Jh 3KMHX) &)h`8JvC j$t:x@з#VL̂*$tڂ1HĂ[!J( K!]f- -҂Dn&g ~ ʂ9n&jU؇OJOBX҄aى˴ˁO~EQkq]eVQgHtxä\b_d͔!Lqʦ8Ȅ& lݼ-`0%i@ +L;1C=B$7=31 7߶s[qSQn gܶ j?T!["3&H!p=S>^>Ğ+" BfІtVoȌHtxИR@s A>&sp -1fD[EgngrkdDS˵LL(PDnr6 {: tqW~ oSfMrTrȘX ܸp.); &7Ȧy)Ù֝π`-⭴ ^NH¼=f;$eu$)"1PͨHG֘z,"FMH@.QZ6|ppZ8<U8/Rt@jv  $%O:h  m g̰@!NNdjOQ}oN:&o8[1˫N Ew!c˥[}g.ځԤ{a:u^¤8{Iۗο:1Iɜ6]Hƙ+ޜ!xJ>Nop@K΂6R$]po N") ~1 ?n5n9sZX0 ,?Z`8< ` ^LM\d oM !&$GEe !Dž?6H2(הl1سg/c6V`+=ZdOM1D ƊU0Zj CǴgBrkYdkAfzE-WY= w 7)޽z Yx/=Z,/,9T5I9 UgucR?&Zrz6lظ^Zo\9+ Mgљou붶Y/M-ƒ'_|A[V4 Pۃ 1! ᾂ,Fq"q(P@ C * )rq37h7yχFLhF$ NNP_r~2KXij. +栋ȑ"rLѳf<#PsTr2j֐e GZ%#=Hi% ә!R&bZhLX|)j&*l ʪU(_B+PJ-=c,u kٱֳ][Ƣ&1͋ZYrZQ,^Y:묠T8۷FM4N;-T-j{a&lI7ܘ-U0(2.lQH8N<lJof<︛@x &t, =aP j 5pBw@DND栠͐ڝ (0[IDAI;._,$J6iSqh߼͋cgO- g ZŘэ!}A_ QIz}*6z!:bHVzȦ`h%NxTa:/kZ5vUW^o%Sj{ Ɨ *j+?Nmc5-n/\ `%+rR](CrPѨIAAc 9"Ef2skl ٰp| \Ps32{p&! >G~iB08e*n*)Ht]$#/ dcF/M!BL#+4te/}{BG.,t<˵ PrP@ѭ(t"Z,jډ"/)]W ,F$Xd陗AUj y Vpe'L+?hP8tA)a*"&`We}%L52bϸ35FMWT5( OT6z"57DqA'CObZ2\G5Nh,<eX1S=I%=}ޛWw3mWdW7WV +\)Bע{} d1ɐg$KS`%P`?#`F q*85?h1}` qP89  jnkX覨/ɒCXB@XU;?_ኽYZ?YB*! %%BaSGQk囜+ײS6\1tL;cpt2(P;pC+ijB0ɑp,A`X; @& +zEY< =DO-O:_tC5--q+-rx0|4C9rac j{igÕ r* m:vgs/Z'dYx r 0wb7ʂegnZHP}K7;,  eHm0ixGxGHLj)HcъX`a:0ǂI lf$kXF-fĆ*lR<@:J`BAkJPF-І2GPKWJRFX>-2SGМ;hP-L-S$;P=R3++il3;; P:njԤ,C=쪿 Y N4>(<>4LEA)ZB9ѳE >;Lͼ4K3D˰DKuG j@ 㓶PUb \(EePi eȩP lpɀk7a[Q,I8Җ],,]t~ H5Q $E:XʝJ:ɂ ӧGhJ:S:ȅ\qʧ8 ocQSRT8u6-x4<-_1TO C탣DKδl&LU%LUemx=<C1XNQP@.^ püZ,؂ȥmDʪ4 y7y w9&k2 q*hGdQ`jGӦJJ-c e@ H9[@Q/47Q8Ȳ7/8G80GZH&g;e4ȂH$%\k7GF \dahudIBQπG qs4wd6Jr,jɂHG< f.0?;ƭLUJdƑ4P48X>@(@0S B@X̫LEMiS>o=AOCc W{`E֢i/L04Y`.L|i;!^KZ-,-9ғOUN]D6xXu5 <=X=QXSXE!O0l0ԟa5Pق.fcZ= O9'rڪIӅxh]b 9@G>$3K2 O=Yj(TP?']]IG I끉 ѥӕJb"% GHeU>]QޭʃjҌRŝ t[U\ZE k v 0.U.L[-Q.5b}[贉<_B3Ta-[^N>UPSc KF-&ǚoZkIu6rv :)tDf]t6͝,pI\vD utHfff0Jr`b(UҲf-mT܆;EҲH;MLV9\(/Ed$ \Fed_ծmq&(qѾөtGQbƻ\-R%@ [o%2S-&!=>z5Lr D~#mŘY2.O]YYМ+0^S>y6qFg ٖh4HHP@.rd 40r4HϢ.&((r~ 5i<>Ş\ü`ViךN6>nlȽAk]kֽ&!D*T%aqKSV\m:=[$]BeF-`ʦۘGJSS-Yn\B}nm TVĥ]tBe%SII;>g{Jm܃D$edLQ^/pw:SCgZ:(RhgJڢjNK5^@%."=M VߐߢEY2B T@u%vBh CtYuԼ'U- gqUV>h -`a y-~"Nr0^޺rLVB _4$0yЬ`;0{3_PqP&6նdqfd{+X\q>fK ˅txG==N`QؼDa Cf5׆\>PJfԆt^eŝQ+hnze  _ [m}HEv`\5eB~d.5]J \8J:R.Kw̕6 nvI~Vh dT.\xnh?H BS *EŊqtP?aZi9+ڬ|(?ڪ&L͓V*@StjrʿGCA)Bu_Z5z Y}/-.;"H3ArS7T>|6j z!4f/?Jޤ|A=̗2 -{MLb Z:jiMF51>JL{iPڼ *4PF}KK%~ 'K;9LC1T_}r//CS*Uyѭ)+lW@"FL`Au944hGy 'uڡHP 9?XM.t`c$6 !CD2yOY>2Y6Kb9FcCj?pfAH,E{f ~y%$TDH(,f嗂 ze(M'f(UM2,sQK8*0[EњE#ErTAXʡ4T)"e7S}hGvrP$:S!Y'J(RMN|?YZuP|`uG[/T9 X`C[& Ia?1([Hm8B 1sK=bnxRz5$(am׍rSէSW_$R5MCX-_<93ܳ0cJeNML5UdJZ$S)h#6xDW`'_\h7UxME:yI'?9҇5퐑eO>y#湌^w6C)qfZϼwij䉧ZDz)*ӗ:gjdeC}iy/(ѱ⨦Brx.shtLH!GЇNZL$h8X҈0#mZZB$p! ґM˄PoPҳ]Pq?t- ez< !aCXl9;!24A4ȾFDV;q0?,fb?CSS U=ȱp.O2$& 4hm~Zb1?/dS0!`Qr_0\bP,p6@ X@kB9d`3]lP t#LtQڒURrȕ/ib򃚎< oj(8 o \ Dt<3{[h쉪eh8Cr%B|`?P<ٳ|gB~T(2+"9VvJ[#ɇ<., YAEvr2$b*aD ha$ B+bSf '- H^yu"D+W` < +;1MC,iFY4H-Q8DjpV& `DKR6NSW2e%VIU`GT,FIJRV!Hb4w|#+?#,P#iw$}VU'y(Ly,FLa"bK^L҈TJ1 3MْH,"'pMYtH@,A+Kf 5iy},CEtL6AS*<3 rFp%8-NWB3 f {^ySR>RT#Պ'(: JXD%*#XMQI]ҘGŊ43RŶ $4+`w\a‡=ACPD|aꂬ|5a51]E,a! 4MgHʦ1_ %@ naֆ CmC.2?؝oƧ/-IIKZC>H*ee eK&JrTa|{C.+Jp-kꬣdBzQa c^Cf!!J`[.6X`-(0%GҗEC%ȡ6QE#6 G)N8I \/}f3bFMq:җA|vчTɱyT-L褥j̸1}tQ)O9gbRD^T>Q/`R :'N<[͑QpIRЋ10ݙI;`Ҙ"h>50IPbV$@0 YMWP c&M 1yhcQ@]7"fU7V p ܀" | `FT,D|0 I'mǹͲRH` Zr%=xI x#`v׎\#9ʠ&ULCS7FX9 `dbALȅQ̬% \1?lC;PH4*UCxAA~1G 0^y$O$ɜ\. $^HJ K}@OLY䏕LOQ C(:GL| 6TAB$PM?  o\`FU^\YdRHe? hU]PPyDKHEDHDځE JeS\Gn@yəl6Gt/: óm` l8Bם/;P;P֡g /:LTL_, #?B KN2%a`Ce%8̵A9 f "h!h \yIF[Fda0V\ja[Ay p( `$2hg0ു00%C%<-hW XW3 -U'D4ennNqa!9Dxbxy>(o?PDpə)dyU2=ʄDQe*ćф0.8?gvjf"X] rjnsV&9«XUk3C+PI~uT42u |#걒|lgP&ճDxSAc^4a( 9d I]R?sO EN %KLPyEoY  $ hƘ70)q|Ǯ0Z^0 w žlO_0hw! S8@Cjwh+,-?~|XRYE^EoLCF6ۆ1Z ۴ͽI6&2H|L0@}AN0CWb`=$wD $,u a*3x?dC5pb': d?X"꠯Fdt]/w= o@B]4/. E!Zl9в`Ƞ~HspW_S\ģ^ f1}. "$X}$C..]յH\ 6ӠȢ\EPMsPPI0ALu]>PI/F(eDdPf ȬK"HX' %9 ͥ6vㅹL!E, V P R`߀ p AǹBZAʈC̞U{1?P8-?g{1/ GplWEf䭦yL,vU7z,]10. e69PH#1YR7Bd T ]0*P0,C$`ĮL@@NBg:yH34޻4 ?|-,va6pQ~?@*y^K -E*Ӳ$Zvw^f׽ʪer/˓rQY@t>6^\W͕ ӋaMZ[hp5[}Tx=@P>R8{a[,,^(Ih`g ÒƳYi`ɘy ky~<+ă+\+ ? @\(Þ']~VWQ~EGR}:oyG0 )K6l\9;]/H]vu]#Yh0p. mnÒFoXa}5ORU*`+V;?PL=x%`2cƿXRp%呯AE0-3SŇ@|HL 4hGkPx J(Kx]|U!.ce  u jQ qT𾠄~( +<$ $>>E<*DB6{ъ 2Sh@+bТ` H1:)E2-b$ kH-ȁ 'd ar/rI'4!S5ȯP՚G͑"'u|4Qx$#Y'S8˔SjȔ?)#0)lc*&DxAoиI@:$\^n4آ^Ҁu  *j-࠺hs[-ӫH5 . n.r'j\;2s,&;0ʺ\çs٬ͺd(T*5JNk( `kؠ:澂/i۰9/>s8&#KDDqgPAǣ ka&&AJ<+]Bc4&G1=wGڲb4LƌMl+GSv, t2 7KQ\:,,%2g4RY +gP,$~.cTL| Ԧ<-QYX$!UJ:< U|ģ J%,S,!(B!0.bf\ka+Ze-0&b'Љ/C׸^.pMbֶ,̀BUhQk)ҎМa :D0 <MpŜ-h\JkEd8ы6 s9y^va0' bE/A0\fGNf)CĐa^VQߠ($o͖a%t4X Փ.x˯DT5aA0' 31h]kJᱨafj"cxqkcۯ4aB1pk[9"^B \d-#&Wnĥ0N#Lr2]Y+ZPnLӹ :yEPHR5}kW+2A\ڼ v. or"`ؔpA;J)bDtbIITgLR69Gl_ҪU-\$8,Ԫ5eXH"GeEVHiaz1Z~0KW%pBz{ Ebu|ɠ ܇69SJ gL&=p5 ]C2w<QG-k]aXTo ,tȉ Ec4E]3[r^81XE_k6Y`Rp[&.m)<˖ &nMlqf:+T 0'K,btKHeЂ8|g"d%c5#5h`*g #'B'',[+(*Af;a;r95;a )v080T&VL.𬇟DE1w@CF0- f`@r\DrBb+*XdO0c|#h`0:Fdfxg0$$HnN<ġd'{VFjYEld'*0+ߠ| l#""Tr B aY`&)9 :Cvb&tl,:c7CrAt &d8$(6ÌVa h@!^L@K n# CC#9C=fsc;=X;&٨^8e8x0 T/Bp/(Yp#) *#n#1pƤ c‚bL&2VF!&a9-nilƦfH;l*r\ .˯hf >4,.x@I7Ja 0304@C#5 ǰ#9  T0V j־dsrŝ*7.'&(lDfle+\Ӵ:4#- 稳7$C9gH!G\,ƅ"rO4 *9X)[2$!Y-0֥&E(ꅵ( Q#$#a#as;#S;tI>`:.\.<> >AbKC*R(72((+z|B.&0"dĐ,02O0DA.,FwR(A gzP'&5hU.C+0o-7A`+%$ap0V܀~+ ҁ!UXa5V6$ r$bU…b2%"2>e&DD٪(5r#DG]3oU+.VB_<5"GzޤL̇Co'Matb'bj,v>c.+B"dz$> ք7+>hdd!7{iϰjsg>br"JFdatjF+X(&^|jL5C=  fAl >f ̠<-F()]v^ T*>0D00hPC@Â'&,05ޮO/ rb6Pq/r’b((Tv’p*%EN$@9D&fly azzz{AXaujp(F$Zij늜Z@\lf'|*Mpg:'V(Wo*oNIgdk$<]vnXl& i4KL M_5tk& 3 RJ+".k:}dbv1ɑbxZDe2cUP+/F%hRوgt*u-/ ڼT* T$4ȎĎ2D%"&Bu mA?.+`{9YzVahC=^ _@𒞂mmBۼkr6ƴ8"B""*X&xfJămd" 8v&+N+Hf֤LRoA f׍'& D,TĀJ!ZeQZIK A7Ns0Y(F0"6b#t/ƈNMDR(@(0)Xv4(΋ʯvjܶ lt#zml ^nBk ٖ7kW^+&70c,lfdr1ZB#҂Ftndx淳"up w^(.(*585# Tlh˕ͳwVc'`A@A\\\;m#\|YHk6#%(|f-4^[RFIv 7a® 9ϻPZ6N8g#jE%bjWS=B4C6C%B'A+6Ԋq"aŅ\Ofz:&3{5UVi'#~ #:~L&z+">iG Н!טR/Ck̏WNTIJm`߫>Nlm+R-A^0 :+TӴ1^)n-s~1Z|P%̠sOXt/bȓesHQL,L$(z'>~T,pjT(@J͵z|}24 'b37(6'\5\\f\JޅF+\@5bo1:N#ڠ Bٮ ,y%rjCZFdÁ0CMm- I@b5r4paHB2=?A0sM(c;pSOo<Ĉꂩ%֭mj r ?zC.5Q5c \OAe TyUUXPPU#dWUYa`y0CVЧ?XauZh&kAVXLY |OqQ?Bs=7s=s}͐y_zK8bw|] zW"DHw4w"EO$<C FhC%*e Y) CD D1Q<,@^•o@^9"$䅊X AV#^VDȀ&pk) 8D$& Nt  e$,Մ=e,ș&! b @bPHcZ**$ YVbl| W"1,"x֝p F kVPj@"4Tɇ&t9y)F,5x?0̇ Z(E !S rCp<{;rnjC(Ap3r%9& m%;5!nC,B$! /? >E%zHf;HG+F+y[?7xcH+otISŤ2EVg!Y>E*L C/xcI2*LuƜAl*HAW\"UW ^G: VMp ?D5FQqnު"Yj/ S BXaF4Cc>D@L K%0*%^&,0h.D1'p5|W5H.@; 6^⷗(D%G {ep\:y%brHDZe\2LXtPDB٬C< -x3Gв3 (Jc 䬒4)NSLf?Ҭ0jr:Ifu`Exf鶺gU`"a-`Á+\$it 3DP On@ARPT:ǪD'I4I~fGrz4xW פHJX]DU+2&LIRipn  -԰h4X >,W WZuXuVZuǥNaXU FЫ]jp]QUQ̀- Bg;+Z @8JRvcZ5֩ZW+VhEpY.W:̛ %(EKV(ck>ze.#IH`cx+h0]D7Ar0GКHe$fUH2\ppݤψcg7'wΖnf XӜ=1N@]?"=Eh!4H/&ϨL^G{:JEIIY:%5,zjMSn7*<۪/Q2jb4\{Z>ums_i_zrC/}9T ?ltoQ5=xXPM4D/7q l$@Y`. 'AÀn;EKZU-o V~j@[U*8UU&iIR?J":(Re@Wp|2d28c T#l !r r"M 7`6!{5@sp`Tg  0buvbFL Vtog$rxvN8N*Nc0f4Qwu9"OB&Pgw"(P*2$d,#6"/Re# 'EȌ'e^$S)S,E}0b+c,kh9EWjUztg`4W%i\KrkU[{|Wo8VZUFY-i}TPT@I  @}}}ݗ}}'jvI d+j(,G 0#B[/J!"`>dn8.<l@/bl9TkI=PYkK}I}. ViV\jeF15:d :)G!#UÊqJU#:S8faa(W7y a| vXwIV0^{L7֤acuN%@avPebO Ȱ<% r˙8M "1fwvw !u )"%Re%";"JVL 8"y`#Pww Z&~$% qS3v6hu zkDFk[gg:*b$\b*|U& Vk`K]o"*($jkj&j2i|ב__ PFZyiY۷P7r`}+Yxe5UWuW QRC\n-E)K`eEVOpA/)X-ׂ- =`EШ Wv~&VUKo'oi&fpc& UeP"DdpXpaK 5 55 c! N4iN舗uPu=s 1#3p6sѭx^vS 0}ӈPvIhqd5!rȐN霋 @ Z8A8]`8?FO" 75SM Px72 q#<Œt#sӟeGrQz)f1krc0fb|µF2gv&gA=hc0$ o Xӂ!( CV? }&Fxim}'(B LzEʤIrFE`٤yXJc& 0UgF?E߈Oaq%u@- hsڵ pyѧP An-%! UiƖh+VpVhAviA:` Ws#a"Q-$šb8 %cmG19 Z sIw8cs`ISԚzW4JE3ߔ u :' jOclƩ 霚#"3PC,'xQc%H$S=rq)/FQCodF륺@4N&+<;\Fe+à s Ђ{ U&l@jkKrqk}WbkWɍ,G*;;~۩ or0ceGJ~+7{!IrAHڂ-vnnl@!l(pR![ѕ"qʹ;g}j@Fxo⢿5fZb'#6b#L :,Px $NO9 oqх3Tga„u MIabS躉i)]8888N9v)ZNxpP,!?P>/`# $KK@jH=\![|}~6\lrgelcO<9=#<Q:"Ow8w b< K394L3"7Vpb5 8"c53NBN$Ԕ3 D 9Љ^^s2 |"/P;:#rq?sR=HLips# ;d'^&# QZQŋQtml Zk2A&YRݣ<3RSx2+˟ԓ?S%yΌ"9ŒZLӟ/͈'_"GR)h| )w\̵l5LP`8t |P]3 51UXKlY#x\%eb\i2͑CF;-=%x'ݷ<}Y5ҍB_1se" :$k&_$pd=LENji} $(GBtO9)P%44^$տ4 lFfid3IUNvOU>lBt(M6)F?hY%VdJ(H%]ڵk {vmڵ![oQٯԦ[e G&w҅O 6,g>UuvHJMs.h"fթ)];*NDLT67,) iblٜf锨y9' EB-3I!i$^{rXOc6yHPobQ

[Wmv $Dz)$AA^N=poB2)#M[+즦2|JԆ ř0~: D R<.x@Ĉ@Uޙ1I/UZ|w?Q/V!`&=2* 0? 20()KUJB=UU2xȈDYt-Ԗ}>x7:!WsC:[ W=@P6vD*܀VīD6RW0}%"%L[6tc\&FĂ1w,CcxΤ 56P4xILIs$_W8/g)uJJM3:Ue+/HLI+F A4aIv؞\dP ވILH@2L@ PⰐ6$&XfJ^5J4<;Ű 5|S0)4Cltf8M&Ni#pg"[Ґ FI&MsiVj%ydŦ_jU+()AU ׊7txC|G}}ƚ˰>Ԗ zKD$2$ pz`YQd}%B/Y XjYK_Q He`Xc#l lD먚';p]Pyo}0AKDɩ}ȅM&rB|u`Eo<ˁYԠU肤 XEBİ|4}&I~.L"%\=To#zgB ob%fqLm&70SR3~ڤ&*՟+뫸,cdq-?ypsnr#GRҖD2ȿOq1SR)N#䘚 |2@š ):[JPdALyÉ$kA=Û9K*@9+xۛ#| P`BSrz)''ᑕ+p7zbDZIy1˟L¡s|")hzeP77E`7c!.D=X 2B@ţ(Hh,)**<Ϋ3!^ԼHD`k(A˕aT:3gTGK ZP4q4#>+V[!P/s-X5h,&y)"Ȫ H}5{~IPqɟѿi A8jnY|Ӕ3Rb7{ s-qc8@@BJٱ.1,*뀎 (P8a89 B ¬T9"<ʔ&  ;;/·B:a.@. 0::CpB [ 7p(D<7`(zBL=7DHJ DOLO'+k   @?0*1Vt,2E1\,!+3ie@:;XRh:[ {G>cyǢ X}zը EbK$ ȧP"JIp,7ij˭Q)#! I I.0~GOB-ȧ2Y~7`\8QJtfSx!B+847G9S&@h!7˳'91ˈ반CyS9::0|T8?,!p l(dBexlDSZ [=HXJ,MM  T%X7`I7 "KN\3moEW[0|a\^y򲎩!p@쐎[ WZ4r̫%Ȱ> + M Hx .!.z*hqؑc\ 7KRG"h:o0Q5MI80t+AQا-̍LH{2I1)ԩ%h2;|{XMPS3=xrH 5ӰS;&4. ܩs1ÀQ/#'K;/h[LS·')1~3ЈsD(S#yDTD]GLGᝀ*^DD `^O8`a ؼkMpC^CXfLj8:/EmVES 0 YW`PWqP8qkXW蚗${kmO H,uat芮.#!:\-⸑0S;$9HhbbU @cЈU p0I˿)') ԺʔKY c(%!<#NN~ %[1Q|72T P025E6QHJSH\ A6r Bx̵gU(Z9-~Jc-R-)*9\bI"ʄuDU5\`'` flQՄs^CC9VpunEnV:A9aA5_K YO``h|Ox smO@m ǹ!OC曤{1Fj>)KP7lR <b9x?s-6izY30Ɯ|P@%Է t&jҀDL .q-}AOzR۱}2萘[-)\DdQH3\(u h͡6=T}8@.Qe?RJ v۱1.aK.DW{e>Â: (-&q;AG<ćUA,f3YfCPj&{MfQ &=6oE^o:N&gg{/y.zū"*Fidy~X@tJuM̯i 0 4X. Qչ֩EgS1U^."̚YaboaIC"/7š-XY6&gr0[Ŝ<ܧZ j&B!1mLDDtDG/\u:R{QqRɊ0@{KG=mZ&cv$dtKyH̑|jQ'qDCtr I+uS$F,& fA%SX\@d7`fLCC,{1AD8)5QFO<+fOp8pu^.@V|F1 )E~ߡ9 (R4^Q  'R4C")\:QїBRLzS2)ĜiPXƖ-3fĹBC<#FiC6P(M#1M4Lt ^J1vȬ1c72tT5<RXh ܡq2apf(F*[:lC7l^́Ϝ]x797v8oO77ob|!pˌ-NEsbU&-dS=MC.֓~匎ґ&P| Ħ~}N8IEAyl?qUW\X@!`I!E[C5nE}tQ_ |"x!eFΩf ? %@%)wd?xH>apԦp]22ho0A0@6%`'Pɞ1HTB''OIOA@5@58e f(p?b "ê ;0PDe|wSM4TD[Ȅ }Q)!8s'R+SEYEhQID[nU\LE^LnD mջ~%nC[vYoYpq"RGO #iYZ.8|uRQe,Ay|Hp mf_meNƜ8w#xTDqaەcEx'걷F\݉(_-^Ap 6`CNì(2phP 8ϰ4e`clP37<+s0BA+rv|hr {ڿT2 .AB(Itb HmNQQ9h#fL6a<*^2ȆȆA*@ViunD9E'?-lsIcLG83{ "%Clm#7A|3t ,:Rv<31Lc^mPL:PAT?TP A?'EyOӝjAa/Qwr7%%_@b9V8C,Ax)8"9I}?,!$5fqe>P5|s`R(*a)a7H/⤀HZ5R\K'zb:sP5LeUS5q zn܊@- 'hjڌ}Ӟv 9Cjgӣ'67<,pda!(a!Lr]Ү^$\`9 #R%|/]ѱxbmmš´E-ZnAP$Ә0r C q?rdM[К1@?'R:|ܜsƉk$ MHc:Ӈa/a !=oxq7<*x.uun }q ͍ldO)tBvp긛6cl7F m11p{p xUE%cz˸Fл @Q](-tAW{m|YN<ǵW{1-ldED( E7}㝎8iT!ܙ4 ! B MT%,C]]xTOAhH @?̏FwjsTP]"N?\%Yy+`^"|^NNQqmӎQIPIUrTiǰɢ","% ggDyU ]QZſ㱁Cg]H}SQp f۱=_ƀiGv/Gj#_m܈RusePư+8D X[ MX!88 ʔ $R\T$N0OxL PKG~4A{EiEQPMN|E(JBK:S#ϡpL?]iaZN@n!"aaԖ]ݑ0 O CyI1A]?TIdFf "Hb!H,njD xe'j&r(URInf兢(27]PԚ%UXqHiHA[l`_M wDgU"5QTApxhpY`Li #MMȧ 咣#C ̀I F[P 1̆K[웅KFvL  ՠΆxgHhD\Tlщ¹9DOUhDā4sA_Pf69Y[9 ܇,ĺDF㊪ġQn\R&e}M)v頔F$O}AX؇%?BZR[?)[vXX2@0R^!NAC 8T`:JTB&` a&DUeR hBll @vQ(FqU&?&ȁIA<(%΂љDI9LMjH{_Ǖ%gy;re=U/Zl `]!LgthtuPPD g |Ŷ"-JEs1)aAEpmрgʖg}AI^P`r͛HE T0CD,P`OHH)˹YQISE{{ǀ<~R+IUVFD -~L\*РQʠ J z Y4zBcfq(؈69r:}p =] %#m@!1= 2U T0N Ce6TIDaϑ OG&Og"FVpIjmf&)^BfDkf3fnJ3nɚIԛ)b(g%ՄU7͙o? L_4KI ΄ppp:S;pg4:² @Ehl0>"]5ec0z_3^StO0cc-TH AE@{N` r H#SԐD \QŔ2Tn缙q,g$ s`~LBsŀnd*zվ 1z ,,aÂ[Gplj|z'DctG{"Gpn[S(K݊}?,PN@(&^ꍩ0rl?nbAfl? "dJ!"bg~2 t!a0?A@Bu3+vSٚHY6TI4D8O^:Sr^f%ɚ$tZH'NhIp"Ƈ xpk[w{gHHCdC 0wr(e fDMGkȌIYZEMŸ/L\ d8Eu3If}z$WWKt +̊ XF\-|Oob)gu$P*ιu-ĺILx55z?I4i8E\L`HEXZEa ĂvDjO؋ 4*)lî8;ʞšd2r/H,BԊ!,;J137IQYzwxs3N0uooF`8oz(o4oa6vU{xAl0!?ܓspx.=f'H`EϣhA ,h2rF VHKLJnj,ZUv垈l-oQ`ld==d<R-U|TKD$7l„]' 9SX Iz>N[Q ~LR9FNRI\BDy/39 O-RDc$ \`a$,^~X r0TDRսؖ07P=vlz8z۶ v]Gtvf~f1{f<wzIIisI7Jas0+ȺK/C:33)Sk+,0ۀa8@gFQ?F 1JE޸̍CRIr 3XeF7K`E.taƅc.Jr8F" RLXqgQ)3fΜ&nvA#< 0gr8ҫ7(R4C/߽ a +!$9@) 7o*c,-HcC!)A 4iR@l@#߾ilbĄA+ )b(>խ颪KwtD:Vn>/(<îE٭5 tӍ!  B01DH,QēN@A|h0FqJ1J'($!"27yPv(Bv@$KaM IC?<: PW B-;4:GE"RQ"MR ̚48D!r+#A2ˬPm H UׅrpN:DCg+hʷ*&(>hA4H #(z]hw%:DOѕJ-ԠH\PLCpb( HRĸ/+2*ָUPU.LY~4U&S蕂 6n3:Ë()Z$BVi.V&^;Ng@,q LI?&T"L<1PE`G[lFԕL OZOB`%S2l^\sO ԓQD'҉G%BR%*בIB?kpPzG*BD_B7&1OL;@@@2/E/J< {>*FOԓ RǾϋb_P7J Qy]e,@,AlQ[A[S-A ysP:+3c5 p}5,'Vsq "6r4b@!RKb`1eA(Y_1X--Ed:P2TDTWGM*[BL5vx!B-$R鍶\ 5"q!I49͙ӝڈ6%^HNg9jCYڒ@yq kNA:eMEaPԼ/(7Y<E? z H @g`B1*=@Q`lL }hEwc>L<&`NC(' dT<(E=ԕ2eS ِsR CɟİxѠWv#4xʁN 5$ d槅04HHp.x],5@"wя/|q{RW\> lDuK4l/"I#Z_ sLZ K(ܨPo* S-6&0#mJ)㸁N=25ű)Eb>R6Xe) jH j~ W(LR;S6coFQs'e*# B抃%j5-DjszT $|&Jm11cY\b28؍c8ݖ޲K TIHF޸˺n:.k&AdIFc&4ˆ@CF H0Nx$u4a4 o4,ĬGD>` JDŤ xذ Ǿn(L G>0BdNP|{V*P1}D؆%Ԯ N#B[/TbX->"&rF`> gc<^=Bo5of`NBA Sv^lk͎ c.ԊMSL2Pŵ"\ B]o$ʘ!DXgO2e|pN)XQC>C@4OUK1"aGb_..hx# "IU8$29ް5K 80Lмd xu^#oThlh@bʥ'4M&Q Ѥ'܄xS `RGuRgf-SdIZ.!nĮAr00 A ӚĚ)gNPDp0CD|a|E .c4l"F+H$pIYHZC Ms >>+LO> BDb #PHeSo4Q  Tb<RB*P\  qӿpP> s*BXrJD"dDb_2U<‰ޖ9xh[&/ҭ8X5 d6tT6-߲i0Hb,bl*3 C1$RI VdERBL-`*G2@lMj22  3 }+N A O{gML G=9J3.`B̒#6Um$Y+s5H:܆g@a@8iU  [p19%S>WS/ pAHsS18U&؊ؓ4;QD5OLM"dJnA@׏" ""4c! `%T *[|a* I#8#'4.c#iCCtH9Ʉƒ:Gfdu빶99@T@#yf f@YIՈ}1> ;PP,ENuu).MI..ir/NOl0NGyPD`QuQC0{gG>:{,c|:SQB}C!(b"T(,2rC ⃘c >NH8{5+b$р"5-B2,c<2HEPK6Z'#[B:QE.e a]{8jDZ7z""_4`b&"q WAG51zK8VM*QK"F9^#igCe_#FK7,EX7I9LH9/fԨk{t++,I$HdE HZg縖kI.D ¶N϶0OOV 5yCO@u{,sODNOVLDBNl |:sR'r;T /<&m mģ dtcW!,p"e.QW -HC>*4|36O3` ȗ|}W UQtٕؤNq ]ѤzM$B*A yj}G_'zlrejMD_Շ8DGbr'8 , Xi>ϖ.YcHq8iXϘY2fh|zh"/bj࿈YMgK/DR,$.=!RIbMIIpZ/6Җ5j0'zP* $֫MB]ǫ{$DSx[+W#%f>/c6c?xim`cj nrWb_v. _/-B"@d;,į!Ixڧا3vbvb j:¨G1O: - NNNOL웣IUۘVRy{|v|u5=XB%5t;F9H< ?҃p%nBYbvO/YTAB!9|DO e4A{GP43(1EASJwoC GrpܤmK$֌O} j鶤O;مwg\KHպ.Ȩ'}*ԑE=FA=ҿA}0M/-,0XE cg,ʈ{DQG<āô.ɦ c Ac@Wzn'Z@@b2iJzȁ<1/JR'{{+5ʧ]QB eL;*q:]2%-8@%>*7@#jF;65hLiKjR轌+\S(hw&"^qʛ=!DW,9=`H<PLgOjt}^l('yiKDUQ8Q[ɴ %cAL;ŵ݆4b\H̽aZ b7ݠ -Bo Bc'lh}28:ƜQnΆҿ lA>!G%2Bvbĸ FH"Q(P!eʓM(`:P"& D4Р (zLw0xGΟS Z5(:\ UԥS̗/eƉ *RTgj^zBeBp/ X;A AM9| 4 GKF=y@|}1ƌ}㐙78w3Usp?3f?2 8K} KD:}@. r_*@X\q`E HEPH A aG]?vMea=0XD=T!TG!?' B6M X9}VYh%eHVc%bub_(2iAdIC%n '%ZyZ|i}qPUhbeZj)o2T42`^C*b (ZzB dP' IB?0FAlLGtJ*$L8S AN˓϶CQF"S 2TTYժYUr[]Bs-h W8l(@!NuB{&H +ISb'3{`AFv猞Ԯ,k?5;ZZ4-oL^wDTP(bO@āqH~;wGD1R TbqE?ZHOZRΧQ+ F"D"&DV?qk,+$#Jh*K2 bDZ2h,[T *(B&-R]EdQ?1; v{AWn$Æ5ZF <&|Ll ѐeUj Sr+;")F3d.JFiOjIK sʭ#p]X햷 p9Gg7pq Rx `Tw3qA}.-Pfb h0z(XdUUP#H4W K,d! !L'LDXZ 2KdBR[* ļr B\tf%"vғزČ㟌z+uv/{ UBڕL E`Í$lc{ z| b?r6dR򏑉1;$Mj\*RW.uv jP.+]U`_}n)H 6r/%J?c7j43B&5 M8BTgP2Pt+D #5**`Dv 1QFz=fJXñq>9,z t_˩\q)O ] *,_hexY1iIVȪ$*Im@ 6HtaeIHȼ'J /ֵj=!L\ze'VJ^ŔuHe]TL\Vm+ [V7׍.f<)IL W2)m.@mȠ$4 K#)HR1Qn&S:wt\$5O$QnUoe3/A$p4K@qWO.#2`+W!>"-C F`- s4Vbe'w`Քzd#q Is*E%\SP HeJP$IG7s /O1nbPQ#>Xw aRU+d/,_uɒ6uC,!BBB;C2BC94z:WK)"N7Ng'{Rj Yu0YVkE$`%C>%2A3`1S&3%3~*2.ScWcaIEc473&C\QC<\WRdHeKhnUXnOoo hq16e#p#reoWS%#Fp:  R"(xss9$W.r3icu7axGh8-&I>D4$oIuC5'ԓ<5I[ I>4XwQTP3nP\bb"R6br'_kGDePR'p_0~=C EWWA"UB0,G gi(b Ch/1-؊6y>Y;iis9 $%S^DYhEY{Vt*R?vb[\7}`2['#[Ex~`IW4H\E\50=vuV IWT*%5ehoJ7na H;qpCe YLX4X2/$#_#3IK1MC8Hs<BjA(aB6sCGCIٓb!>G$Dv^Ee nR <#$>=v\Xt*'tIٳ!3^Sr=9V\%5jJ;m9flc 1ąh>;AIF/)u3/U?!\!Rƣ/fk[0ޠ&x=>rRghbfeq!)})7DTcC ac ȓJ * ?AywWp5""!ѻɅiwDz J$"0-0y HY4 QA#W]hcgaf䓯֘ecipj"&ͼX,nJd6\viffjةIMyiIiQ*(՚m٩$"32E1\"%9d:d >;ҫ22f 5=c@V(A (TviAKD„ qJ$-#ePmUpC_ΠFCp]J4z1$ :.BF W_te &{{Fpv'N'R3CA: 0`OzDۊ dUWõ),_BRV7%Cu>SRSiF'e>M >+U@2<ôOqt˗&pb3zR'LE1?JIQw̸+L$ҳhSP"݂tFQyL_D0]$ YFTMj7 j vG;} F :&dWd%IzXH'x~?UO{>qM65 O#8NK 2p@+_4 ^7KP9 "T .n7p f8 p< pK\] qB:&c#IpeC\򅒷4( U͡[J.eiB5נ\C!dAXP `[rފa FLw"p޿K%lwGbeo?/%+W2fС1SWd鎮\u Piu6ʄ7'@B %[ҤAc[fxc!ofsqH )RX:{C43 2+S"DK 1R.?8C`X% c C,lA@ -\pi7믿?XhLKF'AC-F #7:4LJ1E*qQ$/\l1$hP?$JRMNKα2:h] 7ш0H`dR *hKH!jte0UB2I9dc4peQ j鋝(o|-YonZv[(3/ kݴƄy-z˭mC%+i!dž=s84HʹkB{CFvfBn;ļ"'>3X𬓂9#C<ދ&`kOP6jLm 9pC?[ln3D G˳sTHbΨ3NUV>*mنqܡsL Ahp5j?:3@\\\пȢK,jt&h oQH(GT<-όm!R<.I7C"Q Uěh'7-R P6mEe\w"@ @,@W[ayRS0vaJ^r N2׽p0+b`"xFarŖRD=ql\xģk'(CLYơY,i?UG ,xb4THGGY*zYTӟqC%t 4tۃ!I2C? n`:JU:ҁz%ufQ8-I͒fC?]q$!H`sلoq! -fҍ\g:|Np" E>w`4蔱)AOCwEiQDNZp*:ࠎ @4 Pƾd C"&#am>xLC((rAO?<ˀ%)լ|N! 'sp@A"ya"R:&5= L17l_ࣥ|uE, ^sKY 3X(ƣ s(!@7c]IrF7ku b+Yȶf% a2pK0܏GhAKaP(t%-ꐌ$Rh lmDљc8Uhf L30%t"F:t!yRf} b=]NlJ~ ڝMi2{ϝU[P4VMRbMv)-ʴql!Zl\%:0~پWj-Tʐ#ӏTGN])|A BaNaE.[bSqax. 2!^}(+n%X ]/! Q yB8@GB:.SV͈zǰbፖG K[#=5QdDǓkc ?d5O{!6l& ٚ@(v^H"HBVԢ:avy)]E@Ta)]QHTߐ;3UI"܄7E\~L%8 j!زLhWXy7O 7BܭKoҁ֡۸[?)I&|u{gZ\J7&~c|@joIZ"ֈKkDP#8CG,u)uSH/$2YOe*PwZ BwI`k7ru18O|5Ίjfkq*Ss(U6Ŭ %R`AfGHrɈFMgG,4Jr'jaVlkR iiF$&A´"3D·t̀-|PPH WrBz:9/%YXz6B(v!$Yl߽uܘc'l!gozqzMMPM(/ k/+ (Р BY8>4A90 -280OFqT!`H(G[`؁n 1與+s:`bB{2qaZ ȗ: 3 +X!04;zʗ!!1! 22P<^y"XD%"Bx9"Q#<-jX@Aeh'7P +Q =G ژc& yƻyFƔ 8!R đґq:" W8!^JQ, Y  3 -\@ 6 @{8sH4a 45ؚ,78Iit0I!E |; !IZa أ¼b#Gy,0뺱c C c  r;6Cb2Ӌ9!ڡ33!;ψa"D?[+(&؈E㫒pЫ3=,,IV0VL&E ҠEQ) &[.8ӂ> hlњtc*A)"."WB(3qARI\0|~cpwhbO X@TԦ  t)d@a#+@4$ުwHC0~'01!@Aֈn6a AJk0Qaa$ER-\! 'E 2ҡJ*z˶0'm !Ơ;8 ӺéKJ*1r9Za@5[# !ďVYIuu7N15Z#},otyQQ < #%ԞaIҘПa=ZRB"9㡰0 0[˽ 4+}3˭R;0RZ[3Ҷó θ.!JuaRRLU1̛4/òXW1$QB,8$\!3".9\!ۘ(YܦJ`#IYSMz#`%$2" I/%!GpCSNCIatPM\螟6H 8 ߱{- *{9/i]DG7`IikxY\'C ôV%RѕY Rx`Y.B#+"s$v2ۡ5Rhq'CێYi' %6QUm:`mY\Uꢘ%NnA/B/an53+y! jࠄ3H1 c<8#^,e@41uɝy@s@ 'ȦlBJF@OⒷaU*07zhU{ WE .K: 14:#YnqبV 5R%qH4(aSpZ/;A1h2 p6;ƻֻƐô$CZ8%ir<-㊽!EO{^*\F(-'@M]jB46ɘΑO֊& إNcf,!cAZ=7;.CdK$J6CGddɳg)H"h[:B T- 6`#fa<#S#8_~fc0Vvh/BHgnZ8:yH$01 X,%B*Nj>9Jx/|1yGd6=Bm!/YYȗV .ho5ouᦽZ/! ZKzk8}7r- Q~!п2q=f 4zgb !|  a&_zc=&lyW&FH1eL?6T2кljNrɾl0)֒KXyle(h8mG?Pm_f`΃8@B(S8BStf`GV\yezh H;k60mBH79@04A?cQܰ*q bjM‡n<<@4`qP4Zt dp'A -ÚcM4A AtCbyfL+FWʌ[ ђ2!UGw ed.A5TRMpFC[})AZh? @b9CesXPz=a)^i%QRŠ@YJ-Erfִ6EhTOr`\(3N_ lwEGB\!Lc͠R4/-GBvG31/(^1'}Pd}v垀X5WVT38VzoCH_ b2(HyH+.jP-ѓUN# yLdCt '(\2o|eg%sX`v'B]1sg|*t"gw(W^ i'՛I yhAکU~A-zC24>AfZUhy7,L!D'1RV&0@YcB $)^y ,em0SNq\[Q DrqQ]"8e"_bC%(I zM"f]Jh}%d`86ɁFSFF+(?|#⋿903l8 -A3vf cfGܠ m R&g>O"3\܃5H\Ղ&6 q+!E~N+d[G%(&QN,iIɺ,5sB(1u_* iJC / dM>)*R2Q3JR wK W!m ?~#{hOfhp+HCˎPXR R\iSh:ȭp&'Âj1 dRUXu2Rhj}db͍HFj7+BސBW7qC$-5ͬS-)0q<z3,vj[J%KjQKRl~ rKpu7[ְ*YrҒu)AI14m]"k]C5i!%{87aK9RZޜWӺU/BpBy{s^aJ 1$ 9^ V.5yGY8. iHR jӆH,kѯ#D]GvLCJmj)6Cd)Ȗ\d4C_'E KrU.#a,fD#gU^ Q)HcUК/9.^=T9S OA_A ~ 9 [$IaD·-N,Td?@axUEQЅFM e@΅E!0]iyy =TE YU -RBdtUtEĺ4Fbaˍ,_@@^݀B]yȡBw3 L?49>ڣ5t(҄[ϱ 6#g^$HzE'^pәKyPOEaMTHFG0^ƕ,O.HpLI<ӎH 5Nm_z{B ̓=uO@9YJ~!J[ v]EP)Ft ǥX, Fu!^(D @B͵( uۄE hGaPD], A^]RMF P JUgYOIU؅fDEĎ tj Iۍ8p?p*b0 81G13B8Gs%\!b\]]Z%^1#>콁;8l^f~ g9}@{\gtEKjl=E)*X^TTMh``ebHPplֈ0J# PYb/1p4  6OD@O}JPgB:SIşc9^\w%  d1x`D: 8CNnn?8&ha}{0g-&HL*DL*ȂMD &*aXϥT"2@dFDLLƸfTPLIW Ncc ĸӛʥaOW{ |翉w##\( ?I {zwcȉ{aA*(R0_DRݚ+)|FmMDLM ꈚFrdbEtg$J֑ "f _*0%PRpTmxlo)MV]G#6C:88DC:ÝfBAؼG|ǫ& b.j `hN%,L V(tYEUR9*UTTבӸQTIx,N#E9Spc~ ! vz-k&z~w>~翉|~z A^xbE^ vEd+2UЅʭ& *$- l9NTmѐRfq~@XH B "ogGl˂$ ywbVZb^rE^i|-i]V8I@ I۹0 qV!IҫYdE"K$@Ȥ^\a(jHLxCf^ᘠ k]=T$ G2v\4npEz:5 ;&J#;nҧ5x|N+L$.n>.`񈫷.w(\e@,IM'+$ΐ d4^݌TL=drиĤ&͚-q OeFFLȂP4Qݫh/n r5Y(_BCWH*tGІsa0r?]њ t (??3 ETf FV FL EJPH(DmD ۱6K) !DK݄'_i_EALk9S' ~Ign|'#>~5SK| ok>vU/\?xPJI,4~Ů+b8 V%(^(H{ޚZЖx- \ghl0Eިb{a5UIM`TPr(W߈Gd%6/0W$MW\\-C:3]?n7?$xBT??pD@Fs C k8,]HLh~'mꚊED IH{C"Z T7ÎFTGu=E(če[)MgHkv4$Q2Vcu{pk+D|8WWw~ѮؼR~=ܨ I/tE09qPPO-.LqNIpVm}؅#8%<sd0GN 0]v>3P Q`y @WG]jK?dqQl˕1HC$0ڕBH?C:1 - 8w@,@TCusE:u0tfծ0tWT;; vgB"#ޭ7LcB ;GG gwt*NF\QZ/,N['TK''"8q{4cq UJ{z'>ܻ#ʑ Q oC1! KPEtz9W5M-FVP{"6vKϋ9B6eoϵ !RI\D_ܰ =n9P  虢o+]Mk@w8?pe:6('??BDBd7B3;s@pԺ0@n3)TOeKEz3zHw{ҥ^iMuŔLQ;IсXumJtFeK亻MzxoSZN%=eR@Tϟ\lʩbUXu**tV?:h*BS2(*B@ b q hG\k>`>(2qL0  X>8+hYqg͍ q<8^wvkDP&t& Yd nPcS;$F, vHHz>B#m60P 0 9 (2C18EwDDULD IIǼ q$$[n-ݞH^.Dl,K-$2 3'QLʡQ:g %(_S$!X>8NPn& "-Hzjf)9s.U!Ar\'՞gk=j>P'YP!zY#Bk'[8u4jhA<_zÚ iF(T^#$d&g-` /t 1b=.̘B5,1-a[:cHPV* f@𵻊bથL:B*rFc!2_=x%d6Hp::Q=0.쟳э:EsEHFiѽuvڛ%Us\B>,eđ4ެ"!ᝉWqXZ&WD,x}NsʚWRJrC(-.?{ ~VA80t*h<as8_Ϳu/?2 .a66Fk04ocmm.r!>e6p)N 0 0g(>2xb+ -BC???*ȒGfƬlnne,f6GbIpDoIjn|om0CJt.y& RO~)r ddFRУ3"x "jɖ l2FNthb^%CxBbt4QNZ!"":B<&$:A^qe b ܚo3*4 *㥠z*1 0"^&LBe4@#Jhʭ"`<ޥ_DÁ<`,S/%dvcfgŦfxbM C !.;G@? A >h*'mEb?lD$U $Ib+ZrHA.2qr ώIv( (-&$C7Gtgz\k|nx06 rIVP2!Җ> ک%<uNe.JhCZ' OV:VTR-=d7ý^Ƚ3Q4M㴢(4lO>J`0-L^s3Hxݺ8C5b&2ee:";4 HT;b3ŨPq@N?Q J Yu?#<9e+>&CD)Y @&$dp$uFr@}0`r@[r&Cl' ֎&$~ФpC[D^U$LndnBO.hX!3 }gp*c혖I'2V0<%-g.Ɛ. E:O)zLyK':JO`K)tT1IOtK>Ȉ~&bH;e!\*~q$3IN]5$ Oh]T]N`Nj08j1*MxfsR52q6!okh$4}# p<QfhAB?"Lq2x> -RVS.W I od̘#.nTuT%%^AiWAɌ(e0n@ΰ i^8_u$(D5_ -D`*&(XEw >:+qk%_ E0V2jd&N ӦMLNz~ w_€qJQlm(t,@T^Z#*#5*:#>@O]&&c2"k(<^ 50F71 |4LHQ2 Œczln %;ڐLWh -we+bSh?JGpL,2QtidV$`D(HB_Ry?ߌ B/ȵ$$uαPrU.) (&C_$ӄKI"0Ov%O+'bt4pitՆF3 dGm$tE 2*a*!PӠ1T0EkDgwV*g,Rri'6;:4hme%c$"` mˏ7rrP% ^G_(jm6 3P4"]<(;_<>_ GX-R#.ȡ UNvtVsjr:YSy%%=CO'ܼ0YpٲUa w} Eml8H}`<}]Zx$8cxڛ1<0l{2;?]O <]C +1H-GB11 PTwrt#3#; ^iBGkt˷k!P tSP%qT"//GAfq!101#PBA(9OW5DN^48(4V!*2R=MD;`s3UTEuQURR##Q(CEhur5ej56dh6~%r7%hCG|VX{XeXwXHYqVh6Y 8x8k 8X'XA iq q>Aq)[j2·;֕-gmaL(q|W|l_ҍ Y~XnyұKȉO0k,|@e.V...)Jƀ`&8qqezYX %V'gzS"-;Z#K^Lsc4.X+AD3zsf7 Wz3wmvH%VY%&؈ayUNn(˘t/6p{'Bk3[TjF6{}9\'?a)B2o}l *gl~ojki?4ܨobj%@؍oJج) P3qdMx{*A#d1DpZ3z/aUS3zғ:TBd; Djru3m!1T(\"G^ce6Woԕ5g Dgs(_7z7 & 6]Y}SHX,H]He%S34kN >P kqL m*R:]:əV te*||I1ozLƲA.\m;-<ʇoґo]l]Anfe#L|; ]õٟ:V! !"9-刷 -SOy#rP85$ZRsd "IuU=#RVat"ʔ 0ZEyfXYrեm7g&NxV7dRKUb{hid7sv#rWyG=s=,Ns[4>0 4ƞax'{m䊜\fq ;vDzuo4R&j2.y~PalpO:@>J][лȋoz*7}AuPVA )5`|*Ib b'Ɵww߂q쁱#0wdY.{1F!Wמ4$|"*Tr%lnCtXW7Gv0^X{hZx@%LrhGnq8TV:S1-35q[ᦗȘ[28a|[x9\1 lv}v]\kEo{ гܮ9lc]6{~|onemqזyY/ h[to]<|#a#E"؈G%K^?c5>\C,a4XK1_`pbH*P'LI[X&@DHg?W5-P_Ie` dt_ ((q*DYb9sMBq@@4lm4iHݺ6mݼu/ q('_<7(]sԗA '?!?F L9Ő5%6̤kQ@5o^!+qC, M`(("0 LDB9E 32ȣJ4 x",G"XRɡ"z&'JB*yHJ("J*=pR2 #|bif襖t@A uj)[ʓNJ+4Tӫ,N0a"խ=1a(i FJ<1 1212P@ ^ ۍ6j/ݾ4~l+p#`7SWE]{.=[_L:w3ip}ak̴͎ ۯ6k4QqKLPN2blHJ)\FI,EP֟I#+ˉ$(j"( 0`#Ψ#-lrJRmXJ5]1 NH TMB,b6ͬ<I P> ȝ:/)*0'.IReU+bC f.Š=[ s:* $@h?k`K2. pM4'&-5J-ίͷ8;HxwzKN#9v4=AU 4P0A@bO*f&c1 d2(2 H@`HF2$O#=J44,[YF-D2R^2j52Z%;#;&`J@50K-A4'XB#DEUVd &!ZG5aZVfH v2%HH^7raH**YJNKf3HZf(p,~(i3YZidWdTU@Ћ hGza-ZXpe[ԢqvmG~{˝rհ}*;u 0dg:]_;c{Q V&h4Qc0CAPBY-DP8v*.G3*h2%F iАXD xtTPHA)#MFc%Ȥ FԶLQQ+1&HjdDmшWVS/=p-"j&2qZ<tfTOT P,au%ANga.+h!Uj[ǎfH([߅DL0яAg{ٻ a,gI5]sB6"'pz#?ԯ7o>ϓO=)t]: kDSdE9v" c;I]R@AZ =x,<pqrwȡD:P2*ј:Er6(E HyjXض)iGFDթm MkVl#Z͏-r`$"4u tMbȉig%#&.Q'DRJ K &D>XSCFN[Vf)Jl0$N#D_BۤrZҞbwbuy⬋I~%Qҳ^^iB]`9<jq+6u@9h .H5ѫ L-)TK@h(D C(¢ 2OnqY,t( Y@ǠEGZp4iH8F9/ZH]?ԥQiےCN.=ᏢLTGVA;9) KJ 4$$ศqjdX5jXҋ4Q=hE PZoK]*<)>5Wv\27ix f+kD5lK mވ=g?߻.O썏jcjF(0I7d0n?T1$mSmH**?[Zr;tXNtFxW%L?3V0AYc"5+┼yI@Dh\E~I6)Y1FQX),!?/8 aȓ2G <136@K6ۉ0X"%:K?J I4?8锖1-HR!;T2ܙ=q룚((M `p&hiR=V &RZ3X('zY(K}qyٍ<Wjà& o=c!kR =Q9K H4^ r XMK"Ι)*ሐk !(b4.9 ]!,ؚ/B*+9r$9V)҈'b2ۣ(@pPSԈ|799KŠ8Š>X *8 ƙ9ƒH 9l;P1-q@S$E " $$e-j=nB+4Dtk 8[Cp[{t >("6`0rPtif}a i2##Ȕl2ӈPQ7( !H+8iJ9pAF;' 8Z?+"E +4걆 Y?m#aX1l0@B1iFS82` BZ3AZ<θͣ0VB3h䲃吓ͷ8܉%# Z ܂ RHKAU[ыTAAHFHI--i^.dk n9539o#h(R+h].4 `%i2c>R ,5+5!l ^Z$ԁɾjƃxi\2/$^˙XA,,xDؗ@Y{")]BL7=MI'͂AD&-X 4BO4_Ob%5VbBԮ1~PztrR2~W -2i]]8Z3|AĮ/ J8p8ODc4H :$3u鍭ևRJ15[uBsһ]We+ 22p[W';Lc@$v} ƨ(k n=g h/? /LdOsX8!c1=, MB&sD5G 8 yO+6+@@KtZa&GslɆZ<w[w։К. ~{VA7:9Q}4`/7sRǖy%܋);emhDOYMJ>|$8pؠ'pChĉ3b'2A 1ReK gi&N?s'>yQ'>s60p) 3jӦTL L(e$ ؓC0Cq".͹l\˩IĜ3d"5*L8q'.0 ̃f>IaX%VHk >[Ã?m0l\9B/A 3WL:쮭?p8#T6+= #}ןi"Xi `mm+|pws)t~QnT k$܅50xv 8Z.`@h=Z! MI"DI'UN6Y%eB 3QCИqfgZPUtqiHtgJf9YgMAyOd(PK)eW{.W6}XRIUUWBm)WR_45hIh֫m 5\3ZSx9H5M4 i yr%^d# T Biw] Zk~<[o ]űsǝlPiքv.&P ϧ{6XpΝ[ 0oC&Ƚ`i @a碏3x83l+`@"X6G6"媸ukh -) S,Vf $Le.T0APj[v 9DE]ٕd9R\SҪ087M2%ST5M@Uޔf?Se%TN*0S)7Tq@\leŖ5O F0]9+щ6 5hABaZF1M]m/ ~֡qQ^r:;nt&l&<בM?H0fO:ة3i-]ǀ5N@)JӜ5Yﬦ<6 Mh2cA *E413َ@:B]!kUM FGciw8B+Rz֢!AњHhh-)Hۢ>Xz #T &cVYZaL7 ώ:I= R 5A!&K9SD',]Bɨdej+RVq- $Ā-j)`JЄgϚQͻ[V`^~ gB@!E3lp[/rM!n5qplЈD^9Ӊs\gu#.xHtMx‹D{O8|p3혻&]Ba"f"t$z M'?`Ea`e"*q6:A(aGXi&TqF)"b&z5q{SxFRE~Rd*WFYG_ )ɯʙ2BIK V'I ЩCdW39IJ`%V58 8ӤIJ,j "425_aאPg79@h65 `MD? &ɻIS^c};e=S=>7'~mD(-WĠ°aBSp>ɎzHKILR0S$3Pg(E.#Peu$r RX3ԃF/q2.ۘWa5AT 32G$+)I2 Grd$5tdKaetҤR6)t5}\ciX/?"\CpԌ : 9 j{?2[FO@}H 4ͶYH#| ΊTY:ksW ^x_,xiZw 瓱a]oy@9.YNMw7H2`r?KMiSaP h0"Mn~Z;bp/xLkCB0t[*¬0Q&".yB9J:errg^^,dJVWX)`Pҗ`UJXpQtJNʒLŝ=؉Y NԱ MxXUG ` aD 4lYڃ!ME(Ɔ0G2q,ȫDGU乏⭚leBWo\^ ǻSG$[wztL aʴiH-o Ҝ^J-l۾ZhȈK M]L)DܵU1SA=ɺ\Op$AJM:}&@jK-vLba=!C! r[z?}G?E \3Hzmd(>u>g ^D`s=S;9>3MDTvE--@ ז}A]miy >t`u`s >y~j7`0k$y?sMV֘t qB[֤hܖڧWG] hs>ݡPT%D|aD @ok6xxe MPQ5e qFk o[]*v8RqtTB4&8)^8W)=Λ` -KR8zcg nccL,s=H`@LŐz9=>cD+utys3=z*j-ێy= |>$_*;˹K"EjqV6.F[hL UWR7KSBH~^th<%봀LlHnLHP"'7_l܂M%SȁId8\b7wM퍦"+f/WG|fP͌)_1 _5Ͳ-2bJbobgH* ~hȝ22PZkb‡.B,5& $D ɞ̤&fjs͏T̔B(zlsO\ ʦQV( ѻB 2Q˫2D"ND*/JtJ#B2ɮ#V l i/«:*|ˍp8JtN9.r Q"+UXg%:2|:[EՓ^OaO Bh$׌hQ g{Ml_kMqQ2@q"c;ca#l==[y9Z}rE;;L<ÊGnxC׍BZV$ U=0J@ HL6Ih(7[HJ4q #Y.Y ֵ"BbMĶ3Q$NRS#=$KQTCTb*)k9a4-[I *dg^ kІ.v ^P1Le&\"|it A܃s10A5`1DNpk[(BbD/D10mF # k@"SVsm=H E& @%e[n\ RaKv)pJ/}#\-jaҩ1 GC]]W:%g2 vYVh\G k뼥qZĖqgW\($h<㑗V,xy|lO '"lNSe R'/ȶb!c )$E$[WŨY0eyǚ!6e;&.V3TuF&bCr(w'6 Mr¨ ?7 "z Zֲ6ĆF@Z'mH$vOsZ8bdƾTRtزI IV1QLp+*DhhUֳbˮ.Mk\5tuY&z5 %/=EƥL_*vۦh[3B;dI m P;QBbؖa.Jbt,|bFWh꒨ ~v|%pF+J“']dguBCr:c_ƻr!Ýz/ЏmЭTź?髀%;fvjZ`IQ*IP$*Q*JcT0ij!)C_*30WeECG۵8716Nig8s v"> _qXb`r|l+7tDi@< @dlb8)6Δ96=q9N9 # =dNZ$֓e] exjP1"$v:>C;}ik~mJֱ{Rhk:jC ˴;(;JNI%@2͝(:mSQQ.&*Ui+"x2 C2sT k#,ְ~61woZIՠZgV3{Z귴zo!'4kY= ϒsM|j_4!v^_=d(cy;L_k't&اIvzf ])m/]$tr?Iz 0+mK(*L(mT"2*J>H0 Jj@bFO(<Nj x2j^E; tl*2 ̌geƂU%\č dOdmP\-z2B?2p2nr01(V"2 .S:o"%q rvb*`ŐBsEt|%u@XFLބ#4V#vJ<MŸ)nE!^<${ xI$$"he,d!0fD1d,5fmL٥Oi`ֲ@R 2@P͢I).E}N(q1_kkfpΆ?$TpflD\PĄ0K춦#*k0Q8)N spQV`v$ 1G+8Q(O#w B-xs$'WW>,p&e&9 RezYz+"|ȩ=2<<'B=4D 5. *-|`NE&`aNd03h. R)G," :jnG=:3E-|DQ_:pO gJ얄{$jEF*tpz8 :"׼*-ب89p"pqBG X 94V F ,#3 %݂8sVr\VޮZTCM8~eA%T Eg|%FqzId=,~CG0#H&$*[ޖ98dKXg Nb!FCK4ADN0EADY ;BPT/RHX%c])FP^GGJ)PaTP]JHCHQVw"m8 Lfycqb-d)Fz 9RوV9" C¾UCVc(u*>Ѝ6=U%gC=3H#X4ȪTm2JCC>JB3zø.{L^TVkOk^1δl~6+e6D2"Ah|L7k,Ue2&EG4P$S S%_9ƥsfcj%#DIc=n >}dM@^5Ό5 0Wr9EUXZ/GYV: ՕnsA,f˘s-Ԁ sGc hf?}Ύ$>Hb4u9رMk(ژ֑%tc4OLZq¤+r)2iڤ(I 2 ! wl/H-ި:UbE1j% { #6-Ʌcj=ui!yܿWrT=5vFt95>ɭZU(=2< %Jn1QJ8 ᶯhT`I] G𷧴G?< l&b(T&Nyc7rcL*L| Z RJ9:8yf`H~-772 WsLg3=jS'yS'xWw8#czq̄ǖπw-JXf=rz`Y(kQ\x)*Z/f5nq|ǖٷw8܅ތvP /9s]%G%*7e0 ?'22唒5J]3P?Y}U}y0Z$|nG⟍3h߂5:<%a(c`;G<¿3xУ3a2`2 \yh{ȘӚz6 3K=f,2N! ma ce-@n[fua_ .( b…LLav;ə9l $߇x`+>BԨ{?-{Iz0xovy͚>uwӺC>aCyw\A?z h=&RHe  Az?%? 40eW!=FU\X^hٵSTԐ_QD1JTV 6|dkTXWK$R9PJ/1\3YSOdR5`dSL}9UNgUQPU%()XBQ*9WcW`MRu &e ɥYP2my&C*M'gDQh%@yizj6k]yqP\t,w} rte}w⒧vC[um݋/|E~{d `@DLhքFX-RaI)8dda%X2cOT.S&mG(1BAG|%T@/YTRgM_d^z&IY}L=UXZe$MR'UA )Yz晔ڈvndy}#ݞr%&iax{QbRej[ᤅUjņ9k`CG% 4H!tAAu(n!{Z _{YW{ƧLp 3旿?/"S1%zLe0jV8l$ BLd:>8A.nᛗ&,mPZr&j^L2B?n*Kܴ*-8)Y"3 T@ "EeRQB"5"]ja$0[TWэqd"Cɔj4GD#tS)1K6R"PZ{'H]sp]bs%UR]wvR s0_|+4>yan MDD2F]CGd*AHƼ*J&S? 5J5'dT$X+0ђ¢YM2LHŒm+0=B0 M+K)W䂴G QIT7Sh Cej A !sQ(Ί1~K\AF\UJR ĵۨ?v)SNOFV _0AU@gy˥b#T%&e+ FE3?J56)x2JUL # ⵤ=ě:V-H&8RCE^k`䮫偦6P?|ʝ'%hM!;a*/)D M,B|k1EY#2Kb҅иfdsmEM6;I9(}ޮ S$sZh4V Mo*JYvjȉ.d!Փ]uC|ɲ\ԸlnWx%^.7U|Q'iu9~ [ouH\#5С#x+>NS]K6;gDwJx)Lm>0 1 n&ry8xn1"P"ɄW;A!8TXDҧBT\֤$@4$' 1N79N@W'7Z7PT4fK)҆ 1956S]A5 ҰezvrTXDUq|oB7M44~4PAF!ņٵsB@AQ~gwi1%ԓC7%^"::Ak-uUXjUuEET("زBH -y.;PJ. Cwա;J#CxÂ( !nBy1-> Ž{1VLMR* @*u|s73g4\ANR8!Sea+3Et!A0aQ1SzTYouuCfT>҆AbF\N4PJX)HWFR~)a]d#8i@W*QB2/s9e,,޲@ȋuu[yuZ_ 1_ uڂ;vnq`ww.z.!/;w#KC #c#X2%2n$d9bB][!}X7շqTWr$}!R6qKt'OO>q'$\A )(h/G0Hq)CbXzCsח=yQu*Dd3W3C7ϳAjqjBuZyUY\(;(T6" Ue;b Vlx / |x& cl &F1ebnLtK?\"#Y8eyMpԑ< E&D䄩I84EjIE`!4 qa:CXBQ/Cz7w3XzFQ43i1BlzQifAY}QcYƵfx~֛5ysFk!t!^RiWLYaSR‘MSy\i^ɕ[j:_^u"`"Hؠ z tJ/V`#biU0db I>̦b#j">{&*nb 0c|1" Qiz#)Kb7JZVtUeApqA=z qD@1JȲ\U*|9 eѦJh5sWf#}w ȝbx1d/!0 :Λ${ 8+T-` `.xIJĖ=[٨V K+/3Rx!ȿm+Qfe-!$ѭaTѰ~H)FJ1[ eQ9gD]75As0cEsRTZ,<6FѠW2 -VQPiq?rgShStE]8ZTv1$#hixӻ+:B.Pk"ZлjplH Z>UI;ɸv܌;ua;=b[K̆ a=-93W3'bĹŇc a -`@jAA3îdG 4M3C FҶ@9Xeq\GucQ`hjzBAGeMo?bhDr)~sMv1`늻Y,RrG֨a(Hϻ_[Y٩^unxvaXv!ըa|RzS.L02=\la>EV>06gаY! 9Z8%*[f;%%9ţ!.f^Y~J%lIE?җ9t†J,rruKyϕ)#F w˻=ejڢ_@ut!ǝHu)=` t .tI1=Cã\J22w~7ԃ9bX'r!3Bb wTĔ3Lg{^SNx@/շة푓z+zsNݻT-w1A׻]=ܡ.Ϣf_- j]D n;LLW2wqVwDJZ+r=jա"Fb!xǺ9DsK,#RvOSGѩ$<6A!4vD(1?@ ,M'T7Q? 8yhN!о*:Zo4%i<<@.\"D BTXP` BDqb &B >x`/K/0&F| O@w6yӇ)5qb NHI'SJ T1* 6>`Ê<ą w!x,/4}&\"{s9u:wU4@BT3 ۆl/뫰7, !p۬+?,* l1Jx`$j$V`@2Ċ*hRMn^&n韣r韜 KʯI+ M5J2:+Қk! \h$03#TUh2&;pkq֐9MacD71 # ;UEkȡ+ JP;@KŔT\9էm\hVSZAL̸N@{p@nS?PM@["ʬ\}-TJ# 0}s6КFx~@F(kO#5ւq^%Eci.)i&* *'..4$srzM:g8RZ.zLо/B'eHQѸ2Q(ӚJ[m+^(ٓ>5 h,.ƞ pO0jD |)z\*=|$s%Yqf[f\!ְo[!y)^|OPO-^2ōϹ훕)` ĥVȮgM>0ꡂtBY*$*q$32e19L`2$BUC3E|dƜ٥B։˅"xh3Jt9zcO[P|5 OHC%_fyP0bD#P-DBQb42|MD P,t!&R)T"}>YWl4!*$ (Oٹ&1(au!$e9ħ*x00?C65 M"ՁF' +LDjT;3Oz520foV!4[(>E;)}7eHl[Yw,uc8u TxׯʝTkKN՟}1n{Ƹt :*xjzKSĐ8L* nR)\ӊS{ |P)'uxSK_&ٽ}DW){ŹdU!xnunuޏ$K 7xj\a(w7 dzK?7ԉn6QpYSFg{صFҍִ.~w]{{w^'| xėrg|xG^|-/H_^dS3yЇ !,gIQWVfEH3 G5B)&3XAJD08yRU/Ԗ\UT9DE3?@ ]BIG!bXJ9ITU& YV! uX7fFMV=Gǭxa|d.kMUU*Ɇd4hYtJPڸuHqdX r_m]7%+0D&$i^mJPȗyrbO9E;0;ވZ]Ԫ͵؆W: hɞvNSi܊f)_^ָۗd`SMt`ΩQMU0'J.)ܕgT67? =꼣d?غyPNbCGzD|XV?OH7FnWxZRnLΓi~qPVEQ?JgnGI𸍰͎=)5m]a<=َpnDih]DNOnO%ŭuII|g͵lNMƂj҈jkM6?ce\E]|O҅[^,i5$aFOtQgqMRѠiUus߁JTh?ʑo_3'ةM) TWLZ> r\җsΤcKyB0xޅ]aAL̍f]ڍ]F*/ʱn<0CL5_T8m9]L}ZxѓsԯF0I=O24Œvۘ䴔SSSċɪٴ⹢S?bbbttt6A/|||XWQޯHyq?A5'"\!Ç#B("ŋ3bܨ#ǏC)$ɓ&S\%˗.cœsĨS'Ϟ;e ItѢ*EePPF**˞7jݺA\{ KٳhӪ]˶۷pʝKݻx7nV`uKtuz׎lb|3k̹3|wӨSUGuYZaZwr"˒Nμ:o ::]A|U .xNu};yv y9=У?NxJ@w%?Ql֓v'$U%ނ:&} _N՘kPEb'ݏvṃ_N`2WZd 99:W?(#P/ xIw IBL"F:s̃$'IJZd%" %(G 8”tVXSC$*_yG|+|-\r4Ib0bnT4W21Bnz 10MM^2D?v ;)zv\gZY~D ?Z t-2ȃ І2MVIQPh97:Nq~3 )AfIRGLi5#l0GLc*ST/vfX =u)OwZSD ARҦ:UPmRu2՞@aNmjefX=T'b1SLh&UIdIB0gaUW%*o9ڞ -AzjۚDˉg*\ANM;&=nsCPܜp-^jN\ɂR n2YӒjo-W'-/y͒^B h]~J(=,njA`7XA^ InM*iY'MKaن +YNR'tQKMvӞR)\Ne顡z\UZs!u|V:ddۊض3$e,y2Azg]e0d P.Yyk<γcϺ)hOgѲtH-[~ض ͒Sn'*CuL{,xxsv(%dJטrx.tQ6F;{? [撔lOv:M'wFΉnyf}CԴegZ6NJӁ? '8m{M4|3uĩԉ/5P}1JەSzݢnWVۍkteցa!tsy_ _N]YHJ|vJxRFŌDhS-wKY(wLô~V/M̩['q"RؙT5\;juYXUGpN, tkd]vwizi08EXWf$ I>0t}Uu$P_typ9 ix4 d|xHtvZ}GI4v}v3pDLgqpZic~CJ~9LG~8^Y4zTɕEiuHJŘTX,kPNć :a{+9 YIɟ"֑Vʘtz[a} $ Noz:eR`2ɚ"PaZ(;)̈Z([T(iGśF`8cSS>ʤ WLZȍ'TIJJGSy.5ƥj7\E`J$:nyIẩx h' y ކfI~z&9zԘhP>ga19()yzAMXWX7i'*jfOhŢDɌVׇ}[kU`uǜY@eD[wSY/F-7cVZzڥj1[qeʒ*9 ˟VPʂwjkKz eq \A@!Q&y_⺏ʵjja +j ܪj7Fh+uT)h/}WSK2ĩ7[JטC[ܘ~> (J[ HaqWȵ\Q9n+8堢zJja=apq{ mqەʦjٖJ PC8AH}Z)K0匼›p Tpt>鷜CjEJ"b+UH|w[zY;XT TA;;gۿdq9Rl KZau۾XV|H(^[k=Q|L <tTSEmT $,Pire~L DɸE:ÐL\NhRe|OtR_F~*o[Ƿ]k{K[:T{lT,U/kբjwx75ۣ |p;+Sx4lʏLj\t(̻,lvEhe!콍ڧ,lّ:`C]`̎eh\9PRp{ȜYW|NG>Β < >9\UiZ\){}U hU3;{ɉu׫a1®K?Ú|EEѐ][ٹ6wK!`C'=*ǰs, RLf%k~aFDmԾ]dL"Flی^7zm4]Hn\Δ7Fq7̌-+kS7Ñ<@ZtrW~=c ` MآlTP_YK9U5[Eg T=Ƕ1M'n*~|2zY]_|}m@au"h3jAgJΟ]WU,OQZ-wLÛh8I 'ؘr9rq./޸؞ \ [\jxR^{N Tu=><{FKʁ.qqk'6֚=A9'M4s9.lA!9}:S)xG IjԹC뤨]u!UK~$NO"BQ\;ǕfLO 攭fNxɽJhlaNn7NK^1lqV~SUcꈭ6>U)c2'C@ېܽ=#~(;=.qR^r{uܺ^f&T^! dha!V[ٞK*^ =b/(..}wG ͪ/ΎI{ZEM?$1) O T8P?>(.(e>,RYѣGAZDQeH-) L5m޴X_%:;JSJ#(hÖoe2ɨ>R%K~ \Z ,Wiնu[jrks)1_} ~a9v 2r֐`؁/fX7 ћlb r )vT GwnZnݾBʕ{kWRɖ2EP4_:d44Arti2>˔U SwC$'t b (J<οDh-n-КK.LD"Ѯک뷺V7# gҍ?H HB⬳ΊIHB 4!\M40˰תd F7JqE;sjM q¬0ꩆ(4ϡ=!2"r$3 QGIJ?)ZP'i.ȼO'RۣT CWJS;PD%)kF\g0SKm"3lĕt"v.H#] -ӶmIPm,c#7$R Lz-B5YQ|ͷ`S,naԖaFs@#Hh;<>&J4( %^S>M#GgTUE.Wj9D-,KpE^q'kɱ {"foBj1Bnv>[oDʹoO˺sl^{#$ǏJC{8KsAi)|sᇣBcp fAГ b&>F;idiBYeySMSCbxx,g+DOó<<~kErƴũAҺ\(Zvdf[K-05-Wia'9BSsu/ǩeE   "{+@*P׍NJ.;nwyPHnʒ-oI%d =4( th=4$֭^CNHCb> CX 9E|bsJ;pᅿUW#5'˱ͲbLirVdt[1,vm2E@#=hV p,LMc/XlŪhiy! 7SN}69p-xO{ڄ3Ev $tf1:tf۹4.J&(rm2ƎU@BCuR.T 쑆M S KrA~i҈hzN}{!_R35S Te)ʒv0l kjP<^ n奅Va'Ho{f,b snqs`i*xU4X 6&06pHۋ*S  CtǗe_QNqvt]?K%#iK+Nh-cL"d6p)Uzj⡂x=6*5זR6;.axvzɷHzsg8 7Le*U5w:ks͒X~SȐu4>˷aNa^ZrFsp4VT\ȽUㄆawطs\*Zzۛ|5l'Oy7-A {)5m}K>Ѭ\|&xF9n>PuI ݦtC< aSghꤦw<|GO,Г5+*ZՔq ViB" ; c#a36 L@ &ˀs ; # ` ÿዧ|9X!jL×J[/cP˻9~ -#.@K{ 5s(ii=ša==K 4"r>%B% (۷c "̹Ӵ73RKĥ ZqyL%c&";]:6"a+`۰ ;^R; SÂe@s  ڻA^)<EĴ\/΂{!=<c07 <mBC . B-[>4ttB)d*–(9JA(d;G (!)=DAIüF,fΚChAiAVc?⚨T*ǨD: * c !Ĵo6LdSbK {Een3\|\d *#" +D3M @h%>;4%C!/ak͚FL,L;El*H$IVBpPH˨ 0_ +! dɲCŶ@je‚i Ÿ@E(j<Ơ7,Ʃ),AaxzPfF|Pd4"P˼ԧü #T>h‹wvv,BtQ̧єc="D('C&U҂)"C"F<<\F!|dp2 X*+0Oĥ]2@|, ϟDThTxIdK;E=@VMϩĠ*\I_`DET,KjAYMPMP(е7͸V0 B)d֛*L&Q5QkBkBl}m ,#dQtVvx\WLLz3.$~2b,}%VcR2PԁK DH4-AlD;5F+UJĪLS<;`6iG-jH*Ue%TLmb J0տEYZXI\GZDJJڌ\UyJZmA"B5P|K-ۺۻeV m־ iV•͐0Ƥ s! or$W'dy$mQ+)MX/ۃ۹AqdȽ Ƹ)PTK=H[f\ӮX(YNxр  l`R dsԛxTX+ oxcL@N;O0ʥߛ*T*I:c6N<ތ[<[\uPޤ]Pk͸ط\VFmp|֘\b]=5\iW5re sqGrEW{".e=ϽyvWdk'ӕ@RpDX c1շtX`=,u7^9%ɑܪ3eăNMU6adԐ(_`lTɳ ̸XNNN Oޫ¨ZA~ dޯڭGdP7f`8e T[ e^^ b`&QEQ/.:a^]BiVaµf4pLo b @!~o>'n=(cb#E[Q@;f]3/6b[F ^P `-AHe4FU^MDMƐ?.OdF6LhԶY Xd0p_PQvvʯă"Jx( jVůlAYZh8Z]\h弬K aVfbg~mf6\vaMau\0Nk6EktVĊ%=&vbbW΅'uՓCnր>]`0.mЄeaumaec[^İ횏5f:|c  J`"__`io O evO~ݺ\$o.UϠ^|t@`[X=~㇆XUA]V^`^ȯffe\nVNaflp.lfn=LJ&&lyfxl=]%[&1qo 6[n mސXv$$]?햴1)ŐvP_ueV%<`ʑ1234TjXm&KWڤ!]^@7mt>mfh&g~kƝf)dp^p5fypkknFQ \˞ɾttl?q$N\>L싂a-aqFYpegvuAٶee:`SrtdO PId0I4iIE!Om}dEmDłx 6eOփe_Lu_ooO]ONP=e cPva YXW_'ZG'^tgikofMGuukMqnu4~y5y44'WgdmeFccf7^`uv [fThm?(x^+dYF򔦉GuwD%xoar,_O 0TLn=OOMsG<E 'm^?7ƌ[͊y F؏f- &tc/{_ux4mb%,XKoB54f Ece#Ȑ"/ɐ6%x( Gp4 X(bRW2tSE> P,Wa0z&0xҎUG[o9Z S^}-*RH|S,p‹,鱈F9rQ,/rmF\mb?6.zl Lӂ7hθGs~uη;= o3t/o>IK;Ѝ6={>mQ|t%xF .dDQQgiԋGnaH]fy+}E$?Ҵ](cSLwt^P?aUVFqR=RO%Վ:reT+:^P쐵[h$[m5N3tvM?WX&E|MfX2ctZ6R/!e"]ڟ֠BMkq Tn7_ X]i]uڭ'ތjN&ywz湪ζˀUs'G-Ђ ԐF9ѡRؙF"qH&48%MSyC=;Mz/RL1Eʐ@F5dITA]a7RbAm=e^tmɥs-</D$asgؼ!DHf[Zj(AM,5z}FJqe-_u˅JtYgt>_Ev~ wqW:w =#F+mt)SH!Д23ErOcr^ﲈ3D&EAC8DQd$ICTHf {D7c}qѕW[2%0=i,cǓ40Kc" L%_6ȬK2,K0Ðx\Hf3@~Jl攇bZ|r@s 9. b'sReL,nfEB|]l;&ޒ+অ 3uC]ijf5M>"'!0g( 2L{I|% K{F֡"CCp1G;2#ޘy(诀D1ʍ.Q\ד/yWBMhE{#;#i,Ÿ***R{",Cg3OUѶIx4,1ϰNDP1:!ΐK^9 h*s\.LG4GBMņ $HZضʆ>)868%'j4b QAk[;?#$ryGI'*0)v<4]L"ІI HV(#ivhGkZ`Bc¯#Oz @"]I~jt,0404n$Z%M< Ws{[nWx%NB VКk]9xW$q7CӰ!?fb)xUH :0 "XEVe6Q#X[J"NNDg"ېVgYsDhH{ݍp0GwG +#JK׻ŏKMu[2]|2wNmL `XE\s?4`,暖mL˴rXY:*du$les9fHz\M8v$İI<b[FN9$RNFkrGSfuTjU sbbHs&ڔ r Ht_SNCwtFTƤ\ [ UX>4;1eLc2AiВY/+u\5K]m#^^(YȺ<HobR`{מdeukɞ8٫A&6BR,Vos,G|/?q!u-ΆvGLO-6j6tPI v¬-娢q+6 \꾽?2ny#g>|((:29GB0$X#Ex>rvH@K S*=ii7OﻸMGr] \VA5# ܗ5M]^ۡq }`~9`1e)\B!ٵZ#/"j%X""CZ]Y$nRn"^)Šѵ"H'8:'BQG\ rMHG̕_ WiXb"HYn(Fk)H+$sCDMG Lmޤ_pOj=LVbA'E F$|,CHp.2f"~Tf,m'&.D&2$xjG(h~Gpgi~kj f苮R#H-ImhU+ n^f -ze᪬*.A ゲ"~j&#d$aF+lDR.Cn.gI2qrC)%HџQxĞ$"" P%"QR{"`/.-,nD"~zoFg,E/,2 P$E*hZ¯0rAY:(~6*^mHf\Jႄ]RS*%ܶ8hch۶cm-?tp^J` &ap)%yP\p0+Hd#bSari)_"$IbqʶK"rK2Ⱦ)D%t2l<̤wœ@EK%&r&Vo|&*Hnd$jj"BboN"BIή/J1bGl"RB&2NU*1? rjڲ3 >f׆3531[0E$0bz,p1meaۚ,@O1&Kq̢/*k1~qqFg CHu@lIL8"ŠnZ<&*fNc(l",PCƂ"""4tʀnB'G~2Dί@-V#WS?s=*ᶪ. [^A4H0( ^0Z^2'3R1íMsJ[ތIx3D 8`{c_^6 ;\SY٥v,&⾶6m t*w??.HPrHF8|"NFR^G~BRvRNj:|:T¶D%*RAwF[NOk/}7"$#'p75B'BSXor)U-rju) pn/H3#жjol-F&3G] 18]o`c*4O^6m2g3mɭa__6a6#36+_߰>#Hv+umSĆ3(oVuo5EFry 7.Wrg4;7?T~&Nv$HHٜU|e%Z9Fc✿G$`zw~7r~f%8&b5J)k5Kx)K2.kp-3Wyhh_+2/31cvg&;-q5S6a/d:54vy7޵0[hcAh`ü{X')stKB+A?7EPr"8r,,H,C.N{Dc4HbȂMwϜuߎ!Nli5HhEx7%F:#?w|r#" ^qo"uC"|"''zӫyBwuK?|9g[9ah\+?2^2[072##*Am?[>x!xD܇Dpߋ;,@놐ۢ2AGx5F>E;{\G~Kxyl. 6S$/YO5EWp_1%[[Qk[.K7|uoMovzZzLKT⼢wS| C tP?B|,@R$?E+aC )"$J‰\&dI'QtpI9<2sUMGj\§C0OL> !"m& Xm8Դ*+I0JIeUit.TX=S o*%Yeϒ0g4K$sYre\Nb6QaŅ )6Tp(JD_&pD[[7TOO=4ZtI]!erg.]z+G]r1~&g?8ٿk d[Yĵ Dn$@LH3j 70# Gb( .FL&,KbQŜ` F c(gtJT1B*Ȇ/%ղlKIj)Ut+6R󪣆)0J 17ی#XbLG=Z0qpB)PNZLԵU-Iu.5CTg Ԩ4"IF:l(Қ^: h#?h ;OZьoy[V B.-1Q$!F h%${W2,ܻ^C?d%}IX8pL)*S"BYz!+\W$'r2@ޕ K9b3ZӝCFiH!OEhkX C"\*;͓!Ir*1ąbUr7ΊUBX8U{$ibE-iY+>gEЩ!$) ] } D ͎@C0ܐ@EL&d~MeXSB,l U`p%m)9> d3?+i5q!R"UcwQt=-ٿtbFC7!^IX䢣N$#C.;fiS&C^hVM&gAy!4bAzl<I φ$zDuD  O0o-Rݳ$Jp-L+.pUyq 9iNjA҂l6Yn\/Rh$n|/+@юL ̶VfiS= WI>0̒ UH=2|NQ"zc]G_zk@j(Icil7gejMYUiIQhq$->Jº )LQ,MC+&;YRE+vI#]rkȪ `_:j4Dܐ5_z1~ƼE.mOoZ n wmV2*S1p~'jvp Xz!"mt](j76Š[o/>:@ÒQ/z K @!ݴ7=k_u}R;ԎUp;d~(וl7ݎKWǥ'a-E+Mw=qAV2À,V/OvU!o?D^%`;Jnq_~ LV:+]IG 6KM t΋l.\5P q$l*UcrKVO͘+o~>Gq%rLZ@X NlіlV կ8, B/԰. *QP-Nl&\i-EIHТ0;0+Z’-q%t"~-be -`+b-n$t# }0PЀxlCOP¼. }lMldnffL ΈeTb 'xU*ԏS@ -mB)**_1b P4j@)5G2@,Pr-}%-Iמ /{=fH.W/D@D$Vb|͗—r! `"sRdqQ4R ]j5- t+S?$@5JI"tGX>Wj Я P+#;j:R O8I$k̆/9[Wza :f9;(+rt2!'LUJ$ %%#PD& AQ;I'/`>"65S;Jq>Oq3NkM?]35Ja@NU]L#4W$ nmnrG C/uZMPt[5`\U\"qq+! *CN] 5 oM0$]+t-cs+hAp!Ta TM?QaAMV)bL/()r"$@!@Nk,TZ%#N㨓UWKPsk9d$MTZh%!P>OLkrkO!VPt(tQaB)ՆՖPG-2VꖄnsTe.do_EpaDu.[յxpՇ t|µEWrWE[!AA!jAs1s6D JƸ8 ĸrɘ$ƸSBVUfn`mUwwb$,6iw&"IlX %8 OT9&|Q%{F,PW;q,d@@2BnV*oL12?tIA%xVAXIqHvH93HAxBTGK2wIXH.F G)sŹ3/[+7[7ZW$W$IbR"A:!:!!$%*SB"׸՘!r!.0/Q]SUK oZ%iIb)2p<MSQW9—e[.{_$S%PS||37Չl*hAS5 ]/nvٗJ"q7)w/xmV#n+3PUe^1OP9 ۹.؟\Q!N:rIz=QZS!Y;!^[][m|.:[/xZٸ%1$sE/QX-IBt.baL-ٗ}m$'$;I{$793n&[ӔM85y+$`YJiy)yڏ:w;<X5o70,A w5 ]Qc|ƻYXQr]sU⻩5t{8ن)t W_YG[-ákʹA^{˳W֟RGk!9qF@C紺 QΫK-8 Wi ^ErKszwo7|w{xxK1򮝃ٲ{.Œ $/B3 *L'Ĉ(>XQC]4^c0Ø0?atLk*D%2vf3A>?f_[ZfB`B JX 1T mEMYdӅmRI)J*XT3єB(F(?8XC!Ԉ2]HU*DGh=Xe $[BEWBE\R6ZqߜXi Ygu?Vk faOz~*ti6X\,ـGhMjtnq)]ޕ].xjjyuy֪S~f_M `%hUP0z > RCNQG"G#"K-SP0PO1^T t3k8T ] ѵVdJ!)dFhkXzN"$l)zQueqW P_?%kı2cYi1bnr6Yd5#h.9&al2~nX|63&Mr\n@K VV=͕\i_j~rŅ~Pd%D`砑 PVuqmRBWFXnB uT-n3X)hxB[,7N*ѽHgTNZ9rT # J bZΆ%+qlzN@e9S-m3Aded~3%LK#ȴ&eEYAXl'Ia"(bNЅU Aŵ҃ `%'$' H$5dC!?>DzcB9z\2Ť D?*@I90+!M6>҇Y i: x&A&Cٯl&0O<ІۄL!q4{Dp7Z IB$+Y0@6W!z=&D^R L;"RqIXCHFΗD1|Xb*T fpLSba$Q*T ,o 8!&`+uIh.0:5DV%QSHގժYjRewv#?Ǡ? tIiay+'nt(USLObF+1}` Lp1<,lF+5)ک M ͋e0e` }۬;G0jT3Ul4--=^r8T0G ^= Di2T.&'uR :Zb$=:0}+ @e aؙH &nfqSܚ(TY(Pŕ32g 2"&'Z=Y|BY5'YY]NY"d$QMc$S-B=c6SbؼYYu*`Eai7j=Ʉǭߚʶ[xNQ֭ʹZqۅ}0.~̗Q-I͝_һm0?O[@.޳_N ] "] ޮȏ`$+] U^q:&UR-@{&5^No $ 5ߙ9Q 3 ߋ<|?=8K/AGe3_CbF-V[?.N& \ 80 3Soq|Ӄ:A% tV ltiMpb _,4d+Wׂή]e63nG?]a[PW0 /_6LX_a&'?mjA7y?lgfyg}i)[5kc ۯ]v{޼xvEp+gg*DO\u-gj?-Z"Px}݇{tEzwkҴÐ1d,п_T_~OA/{6`6 1ET QG\ XH\ 7dfj"^dIE$IeʂRq#h h h2&I 4+RΊFT17GŔ?2E -jA #S&!*2 `4 X$pP % ĤBɥ3hu&Zo(Bzu]oI1Si VBٯr!ˌk!K). .-q h0u+L k1mq-l,_~W,㬠q 5f: n85+VƷzsv-7cM " b%9䆻N feHӄ @):R E+;Z 蠣E~Ki= cD1Eh78 B&p6j7 _R dЙa7S .St`0< 5 bsN9GhL1eny($@~gҝA}I[H#Tl27_eYf@iE&o5|Yk5Ye㟛v v{I8YO@q_Sf!*XDL29ȅ"7| E;[p^tE/!,a$1L% x٫11 I&3 i0"4Xi#&RDغ ^QFAkDh0$f7#ظ!la 1Z M1? i"A%Oh> Ҏ~LZ }YCc|+b "j&-#()9N~ott78P  LRҍ#Pܔӭtjb %uyf3Һ4 SxFOx$y 4$1y?Td&> CI)OV`ᾃ}BO UR"&qEQ" 2Z)B:78Ңh[y T \PƔa*A[X4q*f](w+/*⸒{ 1`a Db#2ׇG@/zQNڡJE$vs4VcI=҆R$6u 23RBI/  up̏inq@?Ayo7GB]l |qJUl8'PNr,H (:TN47u# 3Gbш% Ho~5i@D"byS 6)  @%-K*%\F48 r܄0Rq% \pBN'D*d#:U4$ RWmjS V"H@(ĤߦQ($!gU'wO!{Qˠ"I30: x| C~"eYeK>9٥^g2eExSv%xo8' o}2i=Jq)h'a?MI8/a9\ G`t4LS04 GB$hMXH[RWDL5//Q fIC=+11G:80S129HurK@6+J)QR(XyS8(l1]BWYBI#U0\IY3`>KGDMڔ£f8T#?ݻT]=CDT$(K݂@_=* AK[VFt|B.%%%&)iVO_iH'{i+$15?D# 'Wr? B1rgBȳ@+R8+۴%P@kb (YhyH>>hPtptGt@l " tәHKM#D~GԫY+eVm`h/6i' \O+ˌhV=ս)J]TaOITU0Z&@l55Vs'+#b3 %&UMǛ'M ^%&M>*ݓ6V2UhU9EEEu`wrtuu #nglyzcT[8gs9_8X{PH gZNw"?"¹8?+JPcwQIPr[d6I{]AëkHs4׵a^#a`$I?J=v0#EF )2?=׭23*fxf]!4 fȚgsOq7&Z1PK]xЖ(֙[[;Z&(Yazxk?[l5Ȗ"[vj?'IL aAZ_nW="% I|h&Mb&aH !_$LEXIR砟޽ urUCl$I0gMbB:T(ժGpf|-6-ja--> @cÆ~@Y`x#dAbupa4343"hx`wPI@8!Z=x#GC (X`!`% 4K??A f-pvyAZokV&x@+6bt#\p[op5{Mv"yt#(AtZd4H:$J0AjF("tI&DKMLU0UTN$JMˊGLUίƶ$S1U{QLQ"k}YkWy4(MeK^}na irȶeI`Jc57XmAՖ] D WZi&lp7 w7ǡL2(ψ?@F7vVG |cAEmc4V?@Pq7PC M)TPh`An 7ok0 q +38Ax+^y_TD+2#M9hI(BO&xU;)Za Op 1CiVdž?4|xG94 -(s+$(p1ɇ2[GB#| HP,RAAGpKX(Y"x@ V$ܪ$ IF"40(O Qu%) K2~p<U2D0rdaYF" .I-"w"At-%!7" q54iN!PsĨ@"s"â4Ub?Y4:$xo8%hiO}rb<(gȔQ]m&H֌6"SFv﹓%kƳFg*}4s@|B}qx>}bɃX>O;_C\pN4!DF&i,#tSH kM(K_ E쾈-ə NX170a12#<<4v6+d54kކT0;M$qωAxogӞʘy?dbxJ} T9ĔR+(.K+B\g?ւâA6E0T| ]J]Zp>jx<.WՐ#@G(B!mX,qQBuva0TeLкEĈ_x"6cLӃvRgyc$cakFڝD~+AeQ NwtI{.b>,󥧖2>QK:08BV*bI w1JM׿/ 6X@HuE]p.6t =͖4 JYPҷ%ums[)|>$2zmHh$Hbl`C"cINltPh AV6W@O n@ZLApX!ڮz&UӜy=~LL#w,ȈM`)yyy y@?½، E$\(mCc<ì$a `AB=6 dDr(N]SĎca8 0Fpƺ,]0؊zAyC|a% u6Df| I}Ml<#Ȣq8h,0(ϴ(Q)ZMmOT:CoR`F[Gpe4*t**P*4F7uÊHwAd J4LD>(Xyi u$@Bl—C~2lHMQArA~OoH PJ:^! @*"bPըh Cu$ltq>-$ ?qPDӴD z+n͏ Ak(l]j0LФBidTR+/$E,ViZ.M4eSRA$RB<ĕ@?(}VjWj̺BJBf*i#@#ˍLaB'$t 5e_iEe x9>%QԌ!$㬢<]taO@=}'`4A`60d^4fԔL& Ljo ]5e\e0*\' ??k7)0d$D!Ŀ cu8xT$TΤ_#$Cve(&R_>I ll(g"LfepE]**]"`F[jRիԐ`^y*fLJwHx̨D$@1eFlM@dvhї 1}{CH>Cܭ ? H֭TD%AC)SBi?,dzWI,Ya,k68DN")>a*_\Nբpgojg g$w" .*?h64 `Q!&_)&I"oᕸ@_"gZ[Y SL^'. uRv?4'㘌yfiQB[A-!=b le&eT^o9  3ChXFdϐH7Im(t@]:4 uzlRIx M xxDLn 1DAXLwt,GF((dHHrboOSwq%ARo3T[(hΎ[k5mD- Dӎ_1Qs tSKLc: E5I'@&0 HGd)۔CXC42,,)fi&_@nٸ-`EWO&]n,Gk1 Xp@iLƈ6 63byHgܪ/x˟:wb/YA@ChP'.0 ̳XLŝY?ނqH?JFltQZX "sp`_4 ei H;ebXjI n0Dv LB& lqv@|U (( Q̕;ϋBw,(FSIl`N0m) He>'hRJitqm^1O(X!RTzA)\$9`P$1qzEegvmf?%c,6:6i7F2UVvn i\rEZ93\o7p?vbS*"g^30㔚,^:lU\%5fxa'g?A y$b+6}Ma-}W_,(cO AlMm[99V@N?LFG$qoQoP<!L@ g:֩4mMmӠG>39GjRJ/M%do+ͭ0Q 4)CH# @úi?ȃDf)M:r@YZa%$j鯖 .Dvr._㢉ꐅ)}JIDD„EjWKާvS!!-L%\_#2@k|^KPf}I%)r/Hа&< v⾂ oxW@)]!X*S0KaOÅ 0f > F5 C3+S2xF?&mn34|eP,:X8‘jHC`"]h<ډfܤ(fę'9Z㞃(M ѓF斄i>m屎# dxLYC99ҙe(X;XA )D'61O1 B )]5F7/THDIƒR%DzSneDH qt=OS,C@,P~rFD-=}"<Tڡ%H`q`oӖeL]AݟFѩi!@u%)#MCwPKLG7s=#T?!Qp,ULTF@+5|3fRDj/lZZL*.$<\Ҿf(+,# :5fe@eG1#hFQ$IxVwG"BӒVu!'ص!d 9a|ve>q*@8+NHxSIBnC1S" ވAB"<@ a0^s@dV@hLSDD?F$Ì`Yw?wziEqHHG9@tx827(#|oyRŢ>J[\E|ٱUF@Oc'߄ܲHqhDILkNB*HK6bB[ud홫&lTn"ӗJ.0%(y 6/P26P9QëJr +q.T`.d"hZD p84|Hqz-P~h@&Qڥ] ,ɪ(ϲ %Qp_F-{* Z$$ -v&TE梬a+Q f%daa0C!0T\L* q^e0T=/Hcf k cm*mf)m\5T8&B8f^4@yibFI철 H԰ix$'MkIhp7x+ 9bLfA:k”%fxѱHf@lJ}o~ondCVCSMc@n 0PP0N‚HD J2jkU3PCjI?34~D Ƞ4R35ˠ Y!Z@67i,Q7w~70$ @α:EgB-i^d2~C,j??dDJJd]d ɪ,Q (\3L@B]B{'*A!GQ$QBE d euVg⶯%RDd>G؇U&r94_Xeh.f/bkk2+1Hc4,VkdQmM6h4lCz oC&k76$LgtBfF.j~t+ugdq*fT3 N_-390Pba27c ȩ@R3Օ5ʉ5BRxI#$Z$U^-dg ڬ3cB'tmI\ 55`Z 5ZY5_S 6[B @ 5i{A6u?>5qC&CdӀ4*'pp5 '@B>!&q'a(֧(\!$4T_/G3es z RLRn#x6 C4h3 TQN̲_J vaދ˜npA0A86dj\ :k07:KAO6:$ocCoKP8@c7(\GڴM)U6D64h6tؠVkA ?ިrqf$&K;33f7 ސd `䏮j2jhNtTD\uyU+$8B'hh6Ǒ7s4Ƿ Y  \}/+.J1ǸB,LX#7BXFB! S9S_Ҧ""Q(L:"\%Q!ޤ |g *hQE?eIz+f 'kƺkxXa.km P/.Ў]Hz{$6z]2EƓr*= {o971C0"wTD5V$T'snw=j^g?Z۵b;U6FGjCT)i P~ n[ F1.EXJ2t\RK4AE3 \ \Ys5߻ҙ9Zw[;a$qŎ.HIDi&IsjiH!§B4v3852C3N2,28;"?>|.:-P::0"}e[%RPT Qo r||o( VYp#(HX""h"01+kȺἸm߫~agln&//ckc< -;Er “*k[HSP$EFoK+DNSEPu> r'M\+Äw@#}.$=[%={} "È`iv5hDc:H;:qXSZ >;Yᾥ}- 4 MHNHڴHJّ9DeRѵHBAB.:*ҧ5ZpG zo Kf j^"F!+DZ>'=,%(l'*SΞ#44#\+El;fIa:;+:6mF<\霮ν8x"E?+<52u =X0ڠ2ӇƓJw㓬&qg#Ao]v I=g30MyT K9w~'ڣ(.a ?(9Pڗ$Aٓ%w9J?{QdU2dr^SK( :uqeP_.l)Wn"E8Njc#ӿdNbeK D09gH" @KNYJ$TjG >FcǓ'+ĈiqhӢdpcE-k[Ǎ-Zdv߲ą$Iے蟢D!r8ѿDA;mU6#`nӦ#'N=Fm8:-I[&'Pn!IpD$Q~IV̥$sH*DX?)(Q&g$s&39y?9}Р~D(a&HO&\2O(L vՉ@UW)aË0pqx <؀Z3H*\H . ]my( zW q')h VzU?9)T8eWULK]9OiIK?.@Ʃ攓NE$7dSM9%ũMH!)syqpŒ{ ;L@ .Jh' @z a%.jJ= nWz@04S@@~E`% 2-^H9p*wG'~5#& VH P+Op.KQL0"6E/;D6X_]/+he#{N³:r4o/pqAbL dvxg1lj* 9>L6?skHSⓐ8-f4ۀ'58My` F4l~ (T]8p,.I4$4͚ ZvȚم 21/vC3 4$F/aCvW`Olegm@F"rG|VZrp)!tRO (jʧ-i IȻI (F\ri7?'.?./>*+v*A *~O~{\ PVw'|*gNL' aX# *+DTB(}I0(! yū`#ݠfT@aPP(N GuD @Aճ,iWh_g?2ƀ gA?n(Hp]nc/YXg:u@ox6TF4E!, O`  ;f+ v6$$3 v`]s,FvGҔn~"dM?~2 GHC `3Y~@RPV"5y `,7J ,p[І`I`K `4ّ[,-B0j+<X*20 (mQՓo^! zÐoOˍ?@kV3? IͿ-{6)shyR#H7 P#6IgAyV6XR ԙuS`./ 3BÆp10LH?`B &"RgW!-B:;ds_ܭ"|z`gXl4JA ;䨡 tf".'c2PZR;1K=Zeһ 9ѐ@Ͽ@VΦ" җ?:ʪImN^[gY:ZJ;Ҝ?z$~Ey'%N)g+îf R+UDaRe+141|l*,w@AڦmXX0n}t>R.eA/2?)ΓAOpF!0 Cpsvp0bowqMhLt*q𡄏_x QKQNb0 Q9o t\3QdsHa 6K5Ѓ' t`6 Ugau??0 d0 putOW1 cw8V`4!R!c]A39h"^a:sn:wV.O2#:':haW$ BCJQ/yQS;;S$'?vHnO?v}}(D4%;&g*$s"Wgэ:-f2XvP `C{w93Re}v>DY'AaFQG>SDDjO"hnt5^d!""9Fb3qAxMaȴ8JG]_59ӄ!dQKtQ45T'_X517G$p6qBawu8 Y7ULu$v 2@6  w5d#/-Bc\-(w6 @rdk:'A:(#dTzi%%s a$ӌU!;/Hb+6ɞy1/+ga+'UXgzi{n)gh.ng xy{QTghiVi} }??w('SƨG 䑷24V!~Y`E(#d# w:iuCqFTUnFn Ф PE('ѝA&Je&5m鍱j 95\qw롃 b U&au]XaTa@PgHp]PKTLTW`66*G'FM '4 {H +bLwv-7Aw\y#C:+ǭZ:Z"@6jւ^A":@0<O`T"+DAPDdScF4#Dmp;drq11p!X$6TfwKRzDZSC(EUEUxBF{?=ar 'QdFSi;f!Aҹb!Z=''&$<>Z>Mu9s\V':lK:'2#Nv"3қÕR[8F9w:xgק~ǂu%$ _WHqJas\˕GɕF 7|7uXb9"vk!bCNcdOۛ::PfîC խ(CzQ3"_у~p\!@P9BT@Q?$Z:$Ox&rm$ n4M{q:dĠ3\G`Fs+)5ٟiVh+y*!6\&&b() i2yxH ~O%U[RT#B$GrmU4+gR*3- r]gUBIUCYCUZ)KWG2AA39̦H$hps$$Fpg7c sC t },Su(MslMpT*N;740s00p99!ȹ[c Ț)1^NSw7ATaxeͲc;>$AS/Vɼ'#p*wІU^cs6 $I2A2|c:yP칽ytFt@2-M400FqAA~AE&ٓgCS ji$N=%z#Rzԟexr 3%ʾu 6ZUi2~%,=:%2~FGT}N*Vh&Q"<Yog|$bٔNT>689[?[!\+e 7,68Mjq$zMrJ'tŤLL˴8O7OCx=jIɤ{9[Fw#d}xYΚpbAyu+@@P~T;dd"&ծd_0S5mRO)KIAhAwk'ޠ/Fd4M$^jtYAX=Y &f(b|*^ŖW>z']A} .fW"WW+7o#р(ZTb@MDD *Y(M}{f>2PoZh9\9NcOE^49`vSO =dp rNW!" n.~8U7}ֺ֒<HwzD2NP k Ao[y:;Yrz$ţMی9P :i^q13͏p^A|omoتHrz-/Ѯ- ÞKL0o.MKiqW0։ABiA2!\ fyRoїc]6= DX0B A>$H0_'ɚÄ% "!iPAɔT t+n=OlDKώDÏ$1l1ȉG%H!E E 6S$B4r G:S,8ZhZk,Pιb; @4ia>BG2`*"* K1'Y@J)Qj44( 6]`U1e*!V!v>W\pU 8jB  FFa2(ædAx⩪ Hx*u zsb qZ-8E>ޚ5+[oG JX-%NkHlK j8&,d^-C9θ;hPlm6ю{6D#d9ȎD/ł A'>O"tIB1)i ^6 ʎ@OCGmDL2CS&s8mO>ygS>I.#4I" L(}W/UUU)5X_ :(`!A+(ܡYEDQ dу܄i#„B!E򏩸0JB┫|M,oa[Y? 2 0ؚd0E-V`8f,}Q>S$tf#Yh3ird1~h rG4'ht%O4LZ P+uc$+1, Ԕ4l(UYjKܮWp@ˉC )C]J@KCCR2"L+[Xc7@{f 9:H  $B1Ptf9`D QDK)C_R?TWL[Aj$IpEH;GA*}B_0@RUX@QPkT?Ъ +(HvjPN0 աGWGaX.(@# HSBn[;IaU|R?) 09K] IREmϊh9`sԂ8bѯ`@f-n*1)niHLm$IF9`z1zmxsg; "YbԂ>Ƞlkd ωڢJD{@LWI>WA MbHWraX iN%Rr EmYIV@|ІU@GG4UGARIfM'Bi y4 V]b] G]/Qޔ+ T!w*qz?/?)>j~56%ñC?t,yȁp.T}@!;B,HȐ&X .p EBHBB$Q Dl4D"QPB왅GG& c,p5}Yя* XM=n^1lcj1 a 2)b BZeZ:ƍO{il L(R쫉Ė+[`n*'2V#=hK7hi,=>T .Y$y{C AMP߂\> b!64_4@9,c<ςWB.D QU9b߅DCK(~B1g,$Lw &K"g2r7(5*d~q=* p=- r _ee.GvR٪lS"6>4 WsAL-9ؤA=ӈ咂tvc1T-qJZ+FLb1uC{ͯVuA,d60h#{$LS-dՎ٘j[qr$nV0 =)O,d Ֆ-{yO~R*y0_-i8+2 J~Cjg &ю()nAڎPR=As@I"PH y ~Z Teƹ* %ff1f H:1V) P 27 S2 [-p..(-A,-l1k <0!36;<8*9 9(}1eڏx4c#10#=6X݃",+Ÿ=B">8F0xh$rNr-Be6ղmF6`D:b?n {p%a6x|GzǕ[g9طIGcJKQI..`ܳ.-1ro;2ɏ&@m:d< 탎`r\h HITz11: ԓ1|B*Fy0Y1ZYĉ@328C̨jӈ9CP<܂-(rЂr0L2+2(D:Km7Iܖ2#[FkɁEx 1IԫM*׬4.j+L"QJ d>费HN9h|-|git 4Jbf[ihk'#{kGg-BQbGLZp._NAy"*$[6x. ^Ď'1a9<$@FH<$ƨA$xE8B:ܛ24~Ӯȝ\:!J$1:FŁ\,`KNM N<NLj,p-\T@nDLμBLДC̡4#q)((YB*ͻY joӤJ=8αCR5LG<r uBh{Ξ| n O'IjdOulvvtQ`w^7iGj`.<-N!z6  uOdGٛM6Xu씨x8<$RpOxŏ2iG6W:49_sd?R_jvRWW{T$WrGdH{G%%\%!1#ӂ0Le4di AvlqPѽ21  ML8YZ(>贚=hD7Ԥv&g^fGp@bW[rڂ`<5OG[GlV?mGӹB04X13HQ! =1hԶt{mmK",=U6 ؂p ih%Fjb6C+#qDEVBzȉ0_ҌIG,I'By<Ń)*H>@DT @ժԩV,G dK+خUc . ջ tr/(Y=z\8?o oRL2G;0S%G̙?wСMj[ؓi{eLj ,_xx=xK :%vطO)% M{wДE?4E6σMATV' 74P?B!c248c09 UT!|C c %yB|OH6𡠃@U?XVAeeX~ee[fAFdϛYlW 7(X Xˁl:('a#xr(vX  I7 Vp0DIR$ORGuQBёVp$\Ӓ UMYq JTSL01L79~s,L\ԓII`$YzZ`tJWUU%UWd`XovW[L\r%]䅥W] =x`=<AFY0mef{fI^ܶfjtmQ $JJVbO$]_$D|w11\sPn[RGI?[V] GRw &'XMtfiS=x7@Qwt>HPH#ifa~ H$B"G-7b% 2>ޤD2xp  ~a0>tԕg (J&t'⑅84$F9mA~g-h(Ǥ Du44y^2S y@YȮy=&@ hAa;D~la(?нZ!H HO$IZh2W$(Rbd';rEQs_w0$ WUXVPLizS0pYrN !fXA|*܌K$D]tx}Й?++Z҉ЫUuA}?F`dYRfbyMlJ-h؂_ & lI՜l c@}}!hFZJ }.E6HD>i&Zރ2< s\(T:m{/w1YmzW ^ZMTF)H]ʅ*Mi]xwH/Yy49L`UR"[l!ch [ ҐwcZܣ!1RXKN_q $xEU=(vΗt`-QUF3pgtoQELFk@@1K+p BY2'orB03C3g5-Ɛ{Q{GmGe\TEEUWXZbۜё3݇ aƹI hH蠦xGd!B ֝OH~( T/k|Sd˭OeV捌NRrauȇ?sNGdIotpT4nxܫYH2%^jX |CP3EEd¡ϣ?,ʄ`ʩ1 dB&]gBL)e(IĦH5 $cf Az'g` Hfo *K5d,_.3ZIk64 D35S326qC354K3Nz"6*" nnY_,\vME=)T&3~lKWZN 4Ԯl([ATtPMRTPǞ`$ vG$>psHۧwlahawl,6x^R&nK @E?i#ےXC̥ԡt99JA@-$赚Ú3 BJ$G7CD0cq$V:+Nq#f-95h2i6ZjnB).^1Gkn붫#so+3qpw&3O3s'QyPx$$M`zTT|'HjwÇn<#- C9ɓ$;(IHؑ8'Lyi"BĎ .x+YSVL (}!,S܊+|K`oq']Аxk$vҷ?N --5)R(mK)>2QPATWϥ'A/JAEI}1]ǔ] ^9 ^ÛvXhw916!I%@yҢqP@d .:RxL/JV^zmt2ILn<}v:6pc~w2_~:"F+lį:rjm/X<} >wx+9ώgL!:IUWN@"3rICp΁P*"􍰤zS 3}J;PEuXL*e2H-Nr ?W<@\߿K- (7g &p @jxdKaBYX `)7l3ƿ4h`߳c-λ2]z.O/ץ\O-cw t CSp?_߯_0 ?W` P8 7 /c"Z !(2RH")YĠ?zI$"@xJZP xlZn6bnذ⠠H8pkJ.% ALrV G(4BdlE B4э0XQ=@% K16"SRtB "SpY\=b]Gl% tOxP2hrAY2X'i{0}*ZBq5ꆥZ*+ (D x+/ 0/޲wr"(>~lp ˫P#B,-64ж`y{e 74ny؎n: rۃ+H)R #о4@{+(Wa[+0#P*İ P@وCYuhPSQ0Q*-塅.ǒSs$Բ6 2@/$+OC=P1B!&oH` jҔN9_KTF6D=2Q5 Զy)DM)X>蔧P G\T wme- BO3aU LkuY ;#ĠtdŀSYn,P%S2L6:%E3 )$;P# ٱgM+?cxl9 `@C dgsH ld$?p} lԛLfbp,n5T٨rۨq=DWX sf0 rr|LV&%մXGD&#xCAMMv{R 'np HbistIK2#'nZ{)@ C%^ńn'D#0Mk,vY#9Ne6PF)uFx ~‡%,GґR2ԐMy[Xʊ;#v0s[R{ɋZı?q3t&>Tx")S1ȶi)Gi%#5HOaZd3GMG@jݙZ jV U[!pHHku$HG{i @VЂt[&E]W1H*߷Pb+tل*3O^QxT)I.%n(#؀LL!Pv%AAT@68|i&޽Itq<k"UIN0=&M@4U3<6lCL@lXeq+<0(=p{ۃƻ茿sW;R*t=kH ҌHzpD9PSⓞueMXAĴk[;n֟4H%P;r)kQg_6)k!NmAe'x(4HvJy+LG֏cP@2ATC u DqϦ6&DN[4AmB{EViۂm7vHY BXdK@oܕ,\}a~n\F;v:t\j:Bh=z2~a C/ f `- tgw FIB ЉESD $B ,n\\Pp@pW8&db D0&)L.5@eZ0!P0T} j $X npNA< A<7|nN B&*DhCbn6l PƚEf Hlʲ쾅'  "b֌n,-|+ު "+lf8|+hAP d&AdKn mrp\@ǚpRj tN YW>0't)2"PRPE%BG'dGb.3#ʪ,,n+s,AP4$e ."%dC^ڀ+0 t@tcHB6ʠDzRrʠ ~)u0rjz.,yX%bz^B~'Ă,J4bHH2P*Щ@Xd!^Eqo"C*3qT3 i#iפ6AI{4BPhtK)@liK_I ",ETrB DH ~ P ¢HpO(0.24 PH5BLfoS4~.TNRfITM5@J<:J1U(==`V v;rU)W}s8 )#7uWSM{O?,?Am\YZ'N$Tft'|"Q!75 VU~z4=} /wd^KDb1a\vˈbKlJpЋ\ 0cGA#Gb%$# 8VC9YBvC' o)^TTf% g%ErLS< $>8i_ sN7$i27 p)z2+unAliV>)xKŬJHY%`|GF>2] J1 OPP +$, "R*4@fXB3GRχR?@Sqz} QT$ 2IRGU5QUK8r5/ b7&p7yy_\o8W8toXYWoYw&zYM gn"J~~Bqn'xP+q|XBDH&}=)p3p.w-?0..ܔLtZ`"MubI3Db!N俈'6 "@O8#C8*b5XL'N8#:X XThq BfV@fm8gԈrl7vjA#nA)t2kCHlz o 6?TFwz~X qDɔ+x"*P.S[ NX(Ef5Rbi{V"=SS좨!"VT/)RP ORe))5, sCb/vu=ԄvQ WqoP w@$zöBqNp ZtTrI.ˇEB*j؈>9#:*( 2MF"J.J^5A"b/뿀X,|X>z362;dY΄P(D*.#X:} Y>GĆop mc m ) 0>kC׊|i8TM烉 Bk.z:Kys+C$B"Zrn$);XA3FQ>3Y)$.%Wk9_i0Tvm pWjrAme/Xkք[֏[9z=SFWɱzYN d{#YPb$Wqr\=vQH8;jJv7c/9] ֞}s qS _kׁok~]8ӡ6\G"X[i4VZo>˔\* ߢI^".La6J0'I$KާFI }t cGo:5CdC"FXF|7 b aB,` c"K .2r(P=zwǃ.?e^@!A:u( } xRE%R~XJ4֡Ns pB ɐVZ( "mbʩS4x_4NY8l Tqm,(m @ :/4tI4bg՝A &z3'҂Hv@<8 ,p|=9doujQP_RKB ϟo P]ulɄ]9A)CQJzD}|GP}$p~^d?G~fwuQK6sĎmFb$Dj IsɎ=~hI.r\bZ2 0(^``j'WZY _S&6@;NC,߹$-|  Th%?J WuQ”UEϧIPOGb%$멺*뮔QdIF `a'=I[Ղ5lkBA­ ZYP Y$-m!F^{a@-IcӘLyiX<$fqLp# E1"%V8wNdKrf>?vP8ZgtsJhCG `!y YȬAVՎk1[~slNI&T-'%*6!x(9l`r&T1G wG'xlXIt  q`ҝ@g}uY묄LthZӝG2iw;LL0)i:C0`Y&B2Nd, 1O >dW2O$ "#XghE ЀJ`JD+B RB-L+> !X*F{d'A.rO&tC{5\*NA7 c8W]E\UeFV]B79:YHv2@f~a`$njTl@йN:(H?@>PЃ.VP# ŸG)J՞J:-qbbV:G( S{j1]%(_t]4y^b m/j'<1F{t%^zNy1tYZO vK?b%.z PP.dBP0} D2 ,20$dAMz%=x wALL*JU⠟yZV /{hYT]@G%/f60盧~ 3 Z830wq؊EUdhB eT`c$vlkV:wt<,xciײ4҂Mi-(+b(}|%o=qMώ.ĶX%uc^t9a3Fsєək齀us<6jϝBs] .CG\Ѓ )!8-Lh "XWhmTZqWA2#32^XMx2+6]V%K%=QJz#(Z?$4- D0E %YוtcvW`)U/WEҞLZK3ӊMc= YQG;n4YD m`5,<5a[mװ6oOl ?"І hRamڹI>/RA*ZofKsdB^7IZ8kg&^~(4 Z>cpOQ.|_ABp(qw p ` pag@_Fcab+Rs/GD'ca?"cR?a@!ʂ=x:kDORAVpU!BqH<ENh[uSQB/vK>b\%CX#XO}NK/mo&7M;LfVQ#txAcRQLbQ__av qT@D57cA'1b!b)cK!&}.rق/q$+2R6,"24 P?ւuP5^焩<Ae51uWc3Q #g_(pnOONzFp"fhV1rE8"m*T)xc4XT37y644Q# FE6Jk.[ؙ[{JJE!E}87mX|#Qq21@er q`5%c is8c@@v,3J**<>*4*Oq%@z!%ԃ5$@&7qq늟ۀu>* A@:tc?!,KQc a1i+AD7GHĂ>ASAQB0d;-dT*[Au:a@A"oQsRO C+cݚ.3#q)Qj/$kgiA.F!EVz2^cFRn`dFlQGjP! M !6^cTZc{Nъj!6!"ƙZ !p\J[%\s#֟*9v}[YVQu~Єaynj7`%gcNn#F)p *=/AqI}@})K'Po!b/' RR[悂b(6"q*"Ea+ d@TeR)GC-)6:Q';8Yflu`!SlzP8Vhc>Syп@?-c[ܱˠ)Rz  AsmAlܐs@n5Ws#5R+P1+m-6,ʶHy>@RdEdP3Ak(&;Qsu H8د%i>s`7q$)0&en&0O{ߎ$FBxA>q}~7}gn2hX<M5ŋlG!IJf B^=7b4A^}*W}A]G'2ϵ8!8q#xfl;u˺t7l0.9)@g=G*8*CwE# >tR3 q mAL«# *E<-tc% Jx+bQ+;62d7ܱ Nq+URʏ n5#sNd:/M&KE&𯾀@"*@ Y2d^I@B&.D"@D( " "&"""W\Xo1{  $!H<$H4Lc(|AL 'K2̍$G뾴&LB,,½iKsBBʉ= Hh4# ) `A6[EM?.`H82͜3hPe=MZ䲻`&u  ab8GI DxZ*U'i^=H@7LV?JWI]bt2,9W,NqĘꤩ:vDQ3߫*D1RڨpdF],!Lvm #Myk$F6ogEINMi@,tSHܕ:u)Jm%BsF^ MAV %dfJt!Aݳ ]ϙē#B|Sx t2!:n_Q3+XF F].%kV:(T> d,T~1i1<җX:A5HY;͟`$@;i ̓Rpܪן`U=Or pSH2 |1jZ []z858e} hыAPYպ0w8@ktXl6P(im#UtxNлBĆ2#[WSŻm6Ӷ sC.5g>iDG ɑB"Qy`+L5Bsӆƶ1O<:q݁Ҁ AD xGKd?ϥ+ 'rz=W SA9^ c7:Z6T#OIOz;H?22jebE h n_F6p `ّ 4Z o t~pZQciu)RyrxtTh$rdo};ܟQ 5"TG$w{e!M?IjGɴ[Epׄ0&RܖjIrmp7Y::Wܔx$.k*d[AFj&b`Ճĩy7|0uڌzژ[nyXg0ЙǺK>ĸ;xi"h 9X})4+A4뎙r,̸OɔS+ho`Hǰ;6Hõ786(ǀ63*+;{+h{{ [jM#Ј=;x2 &@ P35X3KHp YE2㉄ʂXE"ؐX3`#b'ٵ$.Wa.IZ57%)?qU6FaRsk۶r6s'SF2QF  k’#R9π#y댴د*p{h KI8zHr4Ģƒb p  𳙊191 0 KZ( 2L,qd {6;;LC$7,,˲8|;2xCC胘19C3,z359c3"DD3H P49D:)iٻ@XY E9H9[EֻEFNM0Fd$s s 9iպFoD_>mK" [ ?kF(Qu!IIGk,&,GkGHx8(P =w/XoY c@wZE P,LMˈq !4PDة) J hxձ8#5IQFe{ѓ 2B+3q”167Xnn(,6˰;XS4b; ;x"{A\Y\hBcHራӮQ U8ˊ0 LEH]`' ^>%9U`EF1VM. -Vn5dWZ ƙ%e! wM3bGktW_rt^nuZfΩ ؉ ~{L b(, WY 㕌X ̀] a - >A@k}c@ڎ €!pǺH< &9Ae|'ARb (2**+&:HC+,b9:%c$K˱C<33*3U-j5(L)5LRchLe90M{`p@dGY_M]U[EOlH8F] )iO:˭WRGq%aN%Wu%1yf2d|^X%qW&fm Nn|^;#tߞ `x>ҝ i A鉴Ra)z#I"0K@Rٸ 4 Ȋcx)xY$tU1 H`h$y=fxRD`HiQQboK8b;ⳤ)3>Kc/,8"(k,z >Ck>h@Џ,P!9݌ x@t2֍GSD|5E4eX唸R`>]]& :KE?v҉mFm}MfNnnE}ETזfmZug3Ԩu+"7Ͻ~v~ ᧵ZH ېSB]h 8>퐢8J4g)Ǣ"8w|oFbiHY aoщWhx hbP˴E.^S1K:t!kd[̳. 8\-U`r/H7D=Ma# ^OUT$O XEX{M\TV1tޑO5.?aj6'vmmq=OamZOZGV\tG P|\ n5L&_|B@uf1Ѡ1` (6jՆ,n6Bӗ{j{v vsFI$j'Qȍ"껡X x#:o1!:xi1ޙ4kƢ,,.RNPڜpUR &sz: ~CS/~6b j]C@ -!`4hR%K2:xg2e8z,JR%JP br& #Ϟ+{XY, PEdab P.:c@Yr& 2%kΜ'wBֿv w/*#a RK^Z0⻗])y$x4 ڳ4)/ !7I@(AB/&T _u'X=6ͭ =k/\Py!o=OSxa~r=\`lw`_YU _|AQ*Q@8UOQT)SS}DR!Px~.dđX> *@fN^*nƤWْO:f6h|ʢUjXX @IQDQQ `pTP l, ?l蟋RK @7YPC=B#E]QF}t? ytSTe-TI#dSH͈A:T'YQRU`TMeU'.`wx8Xf%\.U,'e]y^Ra VbbbeR %MvZi&±ƜvS!v!0uזq mJuvAJ|oqR4W|G'JUW_ZV~ H^XT&J< +O$J5Rk:c<ye^#dN&.L"^!%]b&] JVЖ]n"DP&Ki`Т j(,6衒{NJ7 i zB?jU3Q?bFQI-?4oIAr{ēwdjPD5E*ٛJX AfTN-\X9+٠Ȱ둡^ʹT2B|Յ_*FSt酛ǜd6;mtS5&tNc8)N|5ٹXv^VEp'X;#D/<ryBTrd?ZQ5j8\2d!-2YBm,[\+Z<Ѩ EK8(mK%$rB3>2kU#e#YNKVQ I%HQ^ C +2j-18p zѓAԉD e PWO&8щGG O~@#9?R=% HNZ(Vpԟ-Ȃ@8Ap ߒAzK3R6T]̥}%`c$"jfÚc9 /C8cXy.&p4` o3DlcbŰH;ہUHdq<3#sC'`D/$;r!'sH*IO iodr"=pbH!ZVU-'((R I[jc58MVGDTc9WjQ4Ps=(˲B`*=TR, Q3܁8sa j^5)OIϛʰ5^ ܦ-l]h L 'CH17C'8!E" Ы\ O$* [ha\\LҨx**NYJ𥓉it$cKM8$ɱ¸3)STn#1<)ϒ]A Pe/{*әdfJci$ HbP%{ N>Sz~V`XFgTJb"=0"ɺ䯝͒*+"aM-ja%9NI}3K}WͶoī^f#-el{ KqA(%gPvu(>H ]&@qqpWwX 9_B <-HNQI$RkO)^bkQh\P$bqƺhr.E<?.RS>╠ԥ2^yi:,;iXR/69ȬMT)RɪtA h9;0;9b}Xf\ueqKy̤"]k=>=f(CxʤiܚJ:uf!9#Mqҋ4\~$ɼ=8riC bJ^iȂoL6NRT `§.2㭄T=mGS2xt@%0 ]xS`>~W,# ȶc[,>@ZD`FUT-arWJT]ʱ1ЋH\kX͙luQonYykhdTّ]Iݒ`ѩroP]hYuYҌxEw،X xԁMd(IgDGT[9FddźI `H%h]^!ne^"ZTI++bA[ &ḢDŰCOsaB"_| zimX_0C02(?HJ J@2|!9H5&fFy݁5JġAd(!eA D_] PҌbaZfD G T0ٌETŚ!1A$KuPlxƎǤQt)QPI)]dI:IFmٖyGEYDLM jЌ  $H" exR `aM^$b?=aƧϓH!"! *\iE i%")a=Y&zH]uJqbddJ*b/Tx9<ϧO+/j&  P025hjZExByQ#/9Q#?7BX9L?TuZ'<T(uŁOdr_]Xx\d, B6 (, tǵU SfƐFqtLvX Q $edGԅ`]JT A|uvwxVyW`U jeQFDN a!EM(")WW#Uaxze]xq^!B@$b!j!bR^ڗ|)!HUI4_&j' ”PXe(,E0-=8 )Jj*? A תq U?(pRc-/8#iA@ EnTAM~,%me\'!TZ}F E }k0 ͱ`<q>!]hv aJNl9,~;zmhF(iQd&JdYš~/|XhQ'D[=V"-!^؏-Dm&͍LԢ]܀ [v[^^c 2N&=]fRfmm.Iw*Jh/6-ߞbCJ-0'/|qi3DZlbȱJz­&g'XClvr[.ev^2\;J H][-&a M }Uܧ,Y $ qk q]HnGRUi 1]KIj&Tavo4_4K~Yv(V"ՙhXLʄك~ljRax&0D=Ǩ͌URmP݄-OՊ ĺ!tp9r% '"h&uiFpFI("Rv6eS"1j]jؚ%_/ w-B>B1/Ȧ (2{/|è@**㩒j p! 3WjqQ?lJ_!6MdunJT쵲x2>^EҔ?gqb#VXgTh `̅ H{MPE\Ĵ w D3_36S4Osȶ4o;y(7Jj/֑jUhwĄ(uM6݇^<(=[dGd0?@4QP,BU< wN8I)Ղi(,g~[^J]4WŚE̎5@N{W)&z1eJ|3?|_#VfhJ/h/|65.9 /бJuSs&7Mu5XD/E@S@(oEbiʙ]!}dUEE\vFYT]ΥǔF*I;Ms<3`3k;ts6#T6Vljs!EaL6pO~ݾPnooLՕϫk1ӛOgu}}xΣ5J2.LI a K@K 9YBc+悈.a.K9#9K.B:د z2ȃLϥ¥,2R@"A+'`,JRK'd )7b, /A/V0R>Jj'8꣊&F-ڈDɱH礑2)NC)%P韢/oz5'FY\nUZO9C.2 f:.p0 2L52Ů 32L0C3v닯78zm ^m};08 JNEIEgRyb/'6zO:d?9@C9z.9 5亠9:b#QSN@kYQR{:a"$ g!DKG! -o'!NLF`2 /6BM4/j`! ԫLg,TPϤ86zToYdr&'5b+p磗ed؂ Lڽ682DK.Lk5,.gXhՋ/RM՘~|)  \ Pa,?jk8AÔam#Nct͈c]O˰rdG2e5C0>Ԩ;e(q-ij"TBMS-A E rٸ2FĻS;ljS6$%PselLV"$@Сt$_Є$_@(BU@[2*O `^X9]5vvr}L lt}2=]dp_rR8[ZfhBaZe(>6#aa\O&ć>$#0# 0IvycϖloVd$(XaNN?ihNI %$-x%J8wH4/сr-vF] p]VKʫll{DMTeTWczêVf/^)yYF6!_ϗ o\ {Wn&R76(=Mҗ2.MEҐqee-:ʹ3u >/v'% fi>$ujVtv+jə6(?xAyWZruBV %r^ĩ$߼ bҩ9SSHӃN*4QOȃ!d'Z(UKOo}T|z u(kO*S,s4^6G\,10n[.~F,8LPL]`4H\P~X,`V.nLilgTif.:#ccǛ&^E(z?<ɘ6LB`92`2FH B~-b쒆,j\kgfB+O @ mL$iDp,L ɑ4 &o"/: DR$&G$@TiJ2od!#~pMKLv:|gvnVjU:)bUvhz:TbJ˜ygI6|Z(D ޏK5 .aF,]ڥ3q[XF +8*\L3E0J+H&zl싞㋮:Ј;Z.<F _L  (oj :`@2` &Lv @A؎@ƪ j8.hΰp0;0Rqbg; ;L@L0kG GDq]/ Ya/'4O]ArF 0G$& L^| @O\KLOX9/Tϙ*o*neS.)R<\'z&(j6gz>2h` c4O/.^槬cb1@\܇=˳lg46SG=ةx)dFnӽzHSU3db C?6V̈J/7 JX̧#<͓]Y <[Z \ u0>W< B?!yFhFG0ϬD~jf`H#{pu ҃;#'LhmoO|;(Ҋ BK :  @LBqvb.46O[*s&H1FڭL5!\VL~a_1MN.u-8m#δ0 1hNNt"R 4`" X dV-m'\z&zۮ(82o l&bdzx"1++\:6?`c8fV_F9"5ÌU.\gӳ:(U<=t%{V<Փ1ԅ.CޥB[ZqVjC?k!!̚m7 f#J+#)~s:Ko#|Nfd-V@'`O}LCLbv#Բ $9 g#?)'; 9jsώBPDpR-`0_ ƾ*#\`*CG7)=cͣ V yNPP `TpOY `4ROd"vgcz"6rlF`lxA 4AA7 q`..=x#0XT2T-TX ^X]8Ay#z[b (c!g  xcc,-$dgB׈ FiPh K.7֐ bm#0Ou` b#/ V 0d` (h%`y?bV"q 2 ӢLVJw6dM"N"Q/y"'G-ϡiQM* M~2kMo QiI,^Xåd xA&u@EAy#u#\ 7ױmjg0`G| n Ԅ@Fu8ǒb `JѢa7 Q2or.r$H/G`+M FxQSCZ' CBo@='% >؆/؆ij}r oh4[Ԕv@{iB7⃫tjA]'س@|l}KQ[؈R!\ yCϳ6بxSzv%= Cc@rF><4{(::'ƣH;׏ ӢYA+R R-c_+o#oi ڴN- k 6@XOkPtYȞ!U)e5[=Fc

ʚߙ>N2h2}1FO+Mi V/ykJ/Oa!V _~g_ADaAI"\{=f{  ?Q(f|m&G[ %?> e 23J?w X@&9H@R@`J&@e9Ha#gA @Їf2 |?ihPA=tACE)6PrԐGdSH0ŤH"u*TRJ7zRJ;O.eEA%kSHuNdTZ)PαzU[]?5 Xd}x? E[l[Xz_̵C(cs6FgU/gSiF@j d܆Qomih/XsG'TEAǙqk¹'y'Aj֛ν=t_x5Gw4 V_ZA  a1+XT}w]#֐A'n?'AvApv ePgNRj|FipYybX;Eu |9'@?B!f$D~{& kRMΔR9: kXC8at:C:Ok."" 'fot)$4)֞hà Ԧ]?X2‹)Pf6 iL+㮴dhQ GisS*73 v4@nP#]E(% YCb.R F~'D/(էhdęBf3SR yE~u(DI a)OPYDz_TK;؁3qcE2t} 0 H@*wO |%X0NBk)?0;•sT:J2H.cw޶VS]E%6x+URd'}7mĹ1+q@8y+tBV{ه `L`C>h)"xnv:C(ZDd1ֺH"V-5ڇl"6Qf/IL GlM>Z\xԤZBCV*:u<+n*c^ޓ_tiM5#!擴pP}ܵ*BM ` ndۊĠ"> wdQWKF:vL< Y̶eܛ:Ql t ":C!B*"M;n꭪z"T3=h>%Vl-ͣdW(7 RMaϜEDʱ 0N{=cbS#3r' dLO Md#fe'Lحp1xRCFYjjvUw`2?+[jH;k*@X~4X+F_|lDmd;NBﴹAMHf \%̅G[Br2ݧuBv!/P&VG:*cSª]p%҅J\NɤzJ槠Mh'Ĉ6.OE>ۅR`]$MC]ĶM|vaX5x ^hWnð:#BQa!AEDS[0P3D1u0q0qV33G4d[ fuVN-25TC bV'1h6!S} "u!KB.wG^g`uPvo#X'o'eXp8Ww|Zt:M9LS;EjQ);F\'%B]W<*l:!{"QC++y81<>=a)㓉mUQ|qb'e͗}D09fTt0Rc}-E{1VgdyV6+FQ X+ead(f,5sGBAwuܒB _qQE2Vd1dD6#bPQV3asVD2rt M%sNUV!tURuFG jpBTmFf4BCNd?hSbu+go-92'#%JYօYx7bYtb[#3[xxiQsII!\ŵ)È3صLL(>)U+MzS#asȆkMj,'}m?^UDtfAhfQQ`Kf@E@r'-wYa83ab%D9hG0HgB34\iEKrV_hU2W=DNT0VU1_@SdT'53AVb fy>5!ir$4XQe@L6HxW*"be/zSP(lQ[==u0;"L $#nbY,&) }J'?|]p_S%1rpX4XtQpL!i*T') Qz3@ +_8G0@BsX!8?Tih;U(shWPoPu-SVCV5g qESgv5B ;0Gj6"8]PvejJqru4pxeLKą\ J R j@ Ry}k]Y\)<7ٵZ9MZUޫ(AP|ZC J~Óظ\}[`:"wHew4wI_y:G('a !C#c釋-f`ueGMn\B cIza],6 /yB7¨B3+1i$“1!YDT %G!oBS%f54@o֜TЭ-UA-(7h?u+-Z`TFf g~v#" QXN::-}HMjx''Jj#;ru սudՕNIWz{*DxreLzl՛DS iP[ZPupǧÓ)Ljq;(5޻^}Sayԇzg*5akNȋַB*AgAOHPHkbٖhⴓtJ 8fnwHqR`-j M!480Tԏϳ`QD'dtPD44eunXé݁Dnjn ۝QKOeʍ3Ѝ^9ES$tQ6D}dhUX5UĨx~Jt X_.S'uR kuT4lNs#i- >'ȫvWGe[Z]g*_֜ yL8*&_=lL,ʈ:,'&Z`{0wPѧK R˗ y1뗖!ƍ 8~@ B6"'N Zj/?VSs%K:=%@С7t4s H6@CV/@`~vQ|*S72gCLQe( xbpL>U^zlY4StK…_,_^PH0D`$M{ ;,G;oX*/^SǞ%aHK)n*R&20`:8ب ?6^' 0A,* * A /CDQ 0 DZD_,@EL"_r7@"BdT &G }QGL6F)QR)%L `#7y2HrS-*9 ٨2Ĺ0>(0>Li8쩛nC%0뉯ܒ+7~J4a4 -2$@ Z /aS A/!*Ԕ:+9J 03t$#*v,xR/EPjFi!:bkhhoˋ`$7DŽTZCn9ØO*҂sN` A%5繂 d)H Ay12jXf(Tj䀢xb|Oh*3 r,ihOC&s0% Ӂ|sh|gs.va^M**-p 'FqW^BOrRkm GU!JfLJq 8#G:B"{JRʋΉ{JH A(D<55 axv`;N l9%Q| -aIdb~}1J~!'BBam%?BE8`i!j_iNDW vl31 &`IW&%&_W^D24_9T:jjZ9/ ݅'ٹչ7Aԝ‡(C抏%&<yb9՜5qj;~*3RC\9FE *@fT%mg#eTռlM"ݐ|'iHU]Kۏs6̈́+39Rs#H  K':&C_y.`p s(@ {h]| 9ViFP酚o$ UpzJ"MXZFYZ8R]`WYqy;rّhk$\f^&[5P]e773,iM^ OM隨Li!1;c۹0$ѶՂ+OWpgeZY޳G{%*. ,.Bj[+2!50Qq#892Y2+Ҳ,:1( +h:4q«N2ѷ"љҩ B W,ٺ3 Ba2R[-Ԩih p<_(28 a Ȕ"xR (ڈ|:6-l`& *=U c /S TѐJr8E6.y[)؂ڂA#Fz۷XQ7C10Ё?*:9:@P[2a){22+@"G$Y!0'15jA(1 [3ɈJHY"b:3"IB}>B!0 $ٺ=%+|HkqEZ%1^)e_8!j:l* 8@}1ʽA pxzbX=rs٠ -̌D?Kٸ@> c DQ$D Ci0Jɖ>L= ``0耎 QS7Ij8q܈ @80pG\p=2A~t@& )c#-}(ɲ(2;iiA3a3aJA1X%)3"L+%0 *Il!<Fб4" H D$(ٮJLh3 \P`C!Ц8d5hH{ P'ؖx:hE`[Ž4CQӟtY Zph3>=Ap,L6r Gr Ui,XK̑F^<``Txj7tO8Z["89͏*DԬ:ᴲrTڣ*S+21=#⴪:GBE I03 \:GH5<ڈ!`S LR[O%R6\ x"飍5x5ADI1J %u3aU@ UTzzۖ-pd.1$ jAy@i, Z%8$pkYPDV6)[ہ( CqMDE뷓ϡpF3$)) D@2ZB}2 GHr\@qk2<{}9F-%2;5PRX!O:tt:j\B Q\`I M]=ӵƠSJAE׹`5gPгK~' G J [J0:8Vi.8b[KjЊhѝh]㠨Zȸ. (Uل!q"Dx[!Y0ٜ%ZœY F,`;&M}, ZI 1*T{ ή2ȯ ۫mT|ܹG{\[=P۹,$<#01c2:|Y3X1\H精a@.d567 d"* }Qҋc-;'QcmoVhЯ$B! \(aO ? PT)I%UK8 ®}/T ʑBۘYN$ՈRdJecZnY`Y׼d07sS;4%Ԃg`̣5ړaS͜jP.(-[N=@*$GH*%F}{")%/3 )bkH~&Fˢ­kOOU*~1) \4iZ^-MB JsKWBCЁ`J de!X2kՌ p Jc,ĦK_G4Ě>`7>ԍ0)& lW [a^&]ҠU N> pMYc0`Y^f=>`$M5l~MpيS(#s&|Vg}>ᦪT!7:{dJ9z.~~a~ B n] H$$. :^PɎI ?i9M7Mo mVxݹȕF WAd-Ŗ=a"5:Q㕟pjQcQ 6~=}FLPN !QR$Ey 0d'xSg7ZP*= a$ ˰!lfTvEZMmT|,[$)+}s;));$0)A8)؀ɬlb(y nBŰ#7rk10! F"Jl( hN &- ? M4Vm) =^!k `5V;Wmr oSw6-ȥ5J&lGs' eYboL4t>xj_X @̕RLn=ӐoSCs̛-47giNiIٮs5ZT~NA) &A>*:*ـ+I*\pD4D:N$a,2Mxw P x'Cp.YnĠi Gn( ŏǙ8J1؃_y} }?אw}ǜ0ʝ ża"oI7x fk~,$|ņʦ1La!D9g(9ImE( Ġ 2W`BDhqb5f碂=?*hQȎsT䞒_Ti`K/NJ f 7(OG::;tTi]Yاπ>e+/-~oKۅ[0Zp30Ѐ_2K&cač" t*ېB:Q ȈZSnܚBuK&ʐWVX9HI\B2KhN8tŇW_3 ΧG>fP50xu&7P)ԟc _H8!vg + u UV"p ;P3RS5ZlE9Ztg\1ָ?1Rs@M HuVVTQ AqB\:%FETQU$D#%TB(yGE~IBȤB: =T@)F]ADR(O L1T΃ PBx5Vui[n 4?3k _ybM&c/+Zpmg mtu%IkalmZeP Tub]~a(\-|顧_O7>a^_wig1u  &bvhNϕ!c1 X*Ob5dRHd98jqqiŌGQ%j5YZiYDZ㒢8Q$i:  4GZ)h#)D $Dx BDHOTBT 0@hv@bjxzV[[ZWn_}=2$/U?)x IPgEHPqO@eѦ[k5le…/ݰ;@fYtű`1 xÀ8L;"F1:x A[#s *@atv3;B`=ĐhTQҞ"#r^QH G>kG~6-9rKV6l%n y[8mKD74q8iSCH$B B:E RBqT. E!SjxJx?NI;y)K jpzU r݇!h] xCuH3kV@4,߫-a_nfCo~WG0x+2<8'3 ';(؝f;{r$dcyp?24e/ bS"zlY< ճ q<+cph@dLp"H`U+ jSQ j OFf51Scۺ G*ͭsh70*[!)4}P\]%HVQ!Td@aK8iC$u:LMR?? e*P;ƘlH B+27~zUUlG_W&i~ȉ[AÆPS} xtvY8@޵+1#d<&?t+Mwh :g@\|ͮ= <'#F! Ua:`@0h1a˼<0LwKCRH:rF>C!j'*Լ`w0Ft8RCa ̮aFKV:-]pIGqbEZedq5q|HUpzE.בB* tM $nC/ESTT5ϟ]z jyL*)*mW.X.U:saW *̀"fR'<;Lh\t j 29({ 7v{6d\00;C]4h`Peq~ݖZb[_(PaLkPdL\$u r-Ӳ+Jַ>ޒ+OFݯڕXG.方&J)IDWQA8Ur/g$VaL5BX(@@1`N,1̎81e1Ж+1Y ,HZg%`5?q Ot{8G@ԷO< CƸho Gvhx!hl0LT^GƄv5˅tǵiĸϵɇԄ)("KfŞAZ̾XiMqe 񀕍lQ״qE uIިuL_ޕe dDɰ4 N`IGH8fax8ŨJYDZꑝ.N e1Rm6,Cь?` .1S`FkxO%ƷSK=azH$Y׫ZȆzaa}Fe!´aWZ~!}e %$fIy[H_[!Kl 1⁜ƹ<8PaЖ ՉӰ č\\\Y܍E)ZT\)UY_Hdc1֟1UQ(&d` >Bai)JAW7zcqxc@923J rJ;NhRuh5OnE`YAFldA>WVZa2! MuMOv]n4uuُ;pxM|ԧՓHJ)whv$WmDF[md%-G~ )HS cJu ̳Q"~Gq`́Pzf&ISaQXm[\Uh ǽA|YLE4d.I|YKikRN?iV8RNpv qV= e1:ΒT ؕ:"A>neF#ަAOs) ?81|<l|pXBaEF!=G>ôG~1>i AFLP˃3 _Vd[eHk"nGQ%&JQu&YIe厂Ϲ \@XXǭ_F""&\b N1NBP)ii.3c`였t Ӂ闢I9rJ7jVS8f-fr^ -#)glm?z&A=֤#@F!C@g#CHO蔥q' Es5nOиҦGbPB-3ol68fl.m@.mmu֡AN du2c3`lɖnG>}޵FޡgOIb yG̐掛MUXcj'`3]RW3So,Ug 2hRV?c1,--V52;o_j\&. pu r` d*-xF`E`g 08s{np)BeeR :ǀyaޝe_*y (kk?sdven~OUHdqGT lȤ#Q5%ū/͈\WUMt1wI-_ ]G>%k/ʺZ*8&&) N>. +V7b ):\ -s)7Rݢzs-O|Ȗ20WoP{`FranªKJ9#U @@5k(n!"BWB9ߵB Dz!av>{Suf9gEnSNFӞoKe#NX۷^osZlpE/?aW3OE0v?yJs*T~*p؆h$zo=>=X9ħ_yX!;ȸ&E9Y#1"!.C h.B4$`P/#Qt4i!Da  E9254 ]LZ"E!KH&LY6E&0ئ)"[(Q$r ÆH!VUTWTJZւ,tcY)EUK _RXA/A J%Y)8㜦ţWhիĪ̓MwXLLIzM_7xKיmc;w1@'D={Xu//~FvL3B)$"LB! O$EHc.C,h8 #hM"|Mml@4՜&%DOt"Fo4$M%`Lns4 3Q&Ą$vKE[dXВhQ*VURԩ.UWiX HꬑܮLuu$hYU Gq fy+dRWb []+T63yoQvf$F;Xw0o2y_v]>d mAu""JLeBp(B!H*ݔm'"> % v g/:v4`5z,mk\Kʒ.mDdG+I)F<d: G8F()(mH:\; ]P*1B ꪦ@r* \ 3;Բ_d>*KJ&ϑ&\x ,JU{=_J8(ĕJӆZȜ ѢmNm 9M)ϼԳ.ӧ)>r3~l:2="#-bό˰ј Bbf`e2͟P Jf nD®$ h:@HBikO!-؊ +=ljhI| knʦ,b6"n0"'rb),$|EqjpnB!MR*hC`v$~Z."*@r[V #"E ޖEHc#vpe5mM"ֲ#.Dc"2:(8F.dԾN4fUp}(GZm!&!tg.=F$RH4} Ѵl@:$B8;;j0 HGQR2S@H.Sm0!bnHLʈ2`J$B!:3.!QLr؆Lħ|ʋ|m7#( E" +$6R V/,X$YF5邻P,SY`b(%k Z+Zd.\yn)oWYEX8'i*NQwjζG|pU}LC],=-?29Rf"/)dq[=.mGg&1eDf\ .21G!])sql2u$ fv.k4ת6 dl*َ$6#fmP06#m)F! x'NHpG"om+h-$);P:H%F$,Tf|U#4e1^쑞,%i SAUj~gZ\R͊ VE56lGVK1isnr˦uj): ZEm΃ZX-W6j4fjJ]*Ĵ9CHٕ])us5THU\u4O^{jX.rhKo5 )&!GwxM05,86M!fdh#ss*:Z1n2.wDO;"#V6x{+(9/^Ew oy3)ﮜV n0F5'6 Vc \|{ͭBR%:OS]\4H=P0fhN+r.~}^|Q=A4zB Y?GCbrQ{y^v E5ؽzRlDu>P0) o'}3s4G.&܍ 臐*(„!vv!"r(ئJy7{[&D!'I*H@r40lO~%8F+Uqtw}yGbMΗ}iLs)UF-~I4~>7-ޭWf;5Å64Hp„ "<' R8#@HHIcG$$Ib4$/Д)?/*h"hPBd(鯥Bڑ4jϩIOQVJgcWP1غ-Ʊwvݺx`QG9:.Á|׵7܎PuIg@Ugy7[Fbua`rQX|&m闑Y[9W*((l*.,g5s%bd@HB(H*Ѵ؄M6VN&E%+xY/WEf KUU>=RK)KU^܉EVy5lN]{aW`f]OcF` &h[ &gZ!k9]t $2^xbq@k+.'`o'V&Fn_{wku-醷?={aݺmA B+2dl_|V F {7ޘ.\oCWE, %KuDH2u Y+)S&S='Vir&D48ϩxℑ+0ɖt5֝}+tx-Jv]6dyemYݢfwo]w@iEF +N}oݾ{na޵^|-yz!jłtGĭ}BdZ ;B+ ;?1Pa\=Fm^9B02P ~t)H".Y.$)Z 2R,ig2҂3 gqRӡh&͌,wI(~mYF&j^rpqmS4T67xꆘ!5@ժho PW)XEN#F:TH0W ? ݸ@W:8(su-ks1F<rG8>i hsKȽ ?βF8kEKk>9cЂWJFdat2O~&w?u%DK V& *ӁH 9L?1v( PX iì/g]Ttbdab)Tp0d'Tzk)@D"&, J`EB]FhCESJKZՒVȝ?ҏܨo `jk4r^ꗻu`*O <"RP i ۷jTo+bFvI3fr Ff5KE FhSWJEYZ/Jy ?as#9ņ+Àu;\JP *k AXQ!+1؀rZ+Ė5 ݉@%D<fI_F;iiJ0(]k iD,j?d){٬qs}gf(gijZ_**R9 yCJ30T*3EnOrlTEñUj*#C]Mw7D~ᗱ[v}~#RE;?W^V~wmL NvzRXy>BİhZ68,0EQ0aqHld:de{WI\ݚ* F c,(%IݿSU}yfPfNxMlfl;)y3j@Q62ϗYgj<-ik0M"/\:ו=t.=t0 YzP] PcW?8IkYܑFqHh":1^)|iVSv4,ŒzSEVkV"ͱ&u!!?#$?v,c?M2LT@ 0m1XW7Xu7L-6A@l24^y&Y2Asa5vApuBzY{BGpBd{e;p;Op{B\r}} [āagÁ;Jr8.a#uNpxe^/)A||AO^D3h`sqT&d1u%gvPIF.@jsL|WhsDc0dTk1&rpuw?!w?+labA*v@]rxZW$X/3(n@xnЄ4EhRoB|^srz)GN)A6"D%a*OUD\6eG ч[D[4||GЂ}CrgiҒwɥ\S(+C'OmW=d.C%"HSxHH@V(=W>)ɡg:zUML&x4M4o{ x[\c'\U7BMY;GPz܏5z`+e:Dp9;)\tѬ;'u 1cv 4jdhbKط}W@ !Z i .'. 1!K+|XSy:AΑ=8"8Ve.R2\)_ω;0"L@ǶlsAֿ!4+&f3Y2Ԑ@\n8E@br|Q;Ppfpp521pc);9U..T~0NVgf07ch;0)b񗀂Xλ_dx[4fxIKޗCV (' +ZQe7j(n5.Nnǎɮ.Nn׎ٮ.Nn.Nn/Oo /Oo!/#O%o^l(PD._DP 82f=_D+/5 uH/q4 PDpP8rP.G/66?foPZ/440|QͬQq{φWouuQuOZ_?/@Ϻs~oSs/p.'ofO;OP֚ݿOiWA(xwa%NXE5nG!En|?w N`} F,?DT)QēgtbЃ7sFϥ9绨>o V+Ҍj%şfjS +As#,:_&\pה@p(D\:Jld1& 2!NВNNP:p1M-zɓ3Zo鉂.O|wŏ|74J7ͩz AC3k} QPBD /4Bhc(n/&ˉ\zGKCdJ/' I( b G"(<{G ;.-6됶$Rm?[k>TH rPB 54H{*"|I &ߜD(R4hQ #ʤ-"l<'B$RTt(9r/W gX55XdIۂ!tӃ80C±KI.o)%H[r[bIDlϢjH9H+-~W<2} +(*Bph9r-VY38H!U)t)Z8eYTqK7J(гTFэHEމ mFZW{;\䶂KK7zkO":Sh"ZyaG20ql(X{ow#o 7p,@wq#!,(xRTgIQG5B42%XAK3 D08! fDHT:DWVD3?/7TVH!Ǯ,fFLөA V>H& bWq_\BIJ:IeX۷ D&#waU)hX̳ȕw:0;ˡQ=J^W6%,YUuZuIȁdɈeoˑjzcׅV)SMsJPZSm\Y\yPMtiS45r^_ENlIP<{aCHuNRQNW0%ڈfN9F̪rb򹋼ٹc]輤c?RH7Fg^V?OɇnnNMzD?!t^͐k0 Vk8a<>mW?2=фdzw`_ڧ{FrPW=)6xU[\ZI/(UUxW|[mJtIJjAiLTlNW}gߜF$wl_0ꯂnGIO$X< jWى]N6@ۖgoLTçŭecڛuΫʹJ+/~Pۏp翀iyj6%M) ӊoц\sTeSultmҝ{hCuEߍf`4*cE`,ޅ`cíH[>FҖrǙ~]Nֱ]j|A-ӑfVNS6t߮pG~Zyeʆgߓ_f?p>2m9J3]bxaOH5XF֔ЫbQQQP:}IA@),칗߶Զgggp^bxxx6A0XW?Aƅ @*\ȰÇ#JHŋ3jȱǏ CIɍ<ɲ˗0cʜI͛8sBLR?*(ѣF"])ӧNB**իVbݪ+ׯ^Â+,ٳfӢ]-۷FRݻx˷߿ LÈ+^̸ǐ#KLxU,HaٮΠCMӨS^ͺ/ְcˮ<]9+_μxУN`u^ϻ.@{CVT^ȟ/}w{(h& 6Ƞni P#s?W|c|wZ_h!2h>Thb4h89#Ꮑ)^%^u>6NF RVIVfZv: !*mC6v?n&!EO# T:yJ]M֧x yyo> ?鶨wYݐx闟 ꨢJꩦ*_% ߬āwE>p:)쓨mpmyf0^exט t[v-oى7xu f䖻ڠWZR>F,K]{ϚΣzӈv*j:(f7h=f1>rr)W+gL<@-m_ t4y-mӬfw o 5va‰u}QAA vmdpJձW x_N ټwބ]vi.vù]rucڕmh*9:z*q^O._n{Mn;nW۽/o'7|WW;ٷS.ҵ{p?pO c",S;7A#Wxhs-ӓY{GO/gpwܧ-|K: ma}6x 4k ɄVq$Q,:SIr(P( /rɰ;]tG7|! 9&݅3}3}-,`@h O/d  |qcTC10P 9;R@9;9#|i-兑"J.{a  FLj{(;yEQe*hU%,gJY֒.sWҗt0mLbt)IKL.ӖW e&IMgRa\f6Or$,-INlݬ5ѹAx~ @JЂMBZr:D'JъZ$Oюr )HG*Ғ&M)JWҖ.)Lg*Ӛ6)NwӞ> *P*ԢFMKG:P}TJթZXVխz`XJֱh=Zֵp}\J׹ڵx^ׯEE`K=b:}d#ҽZf3zhCKњ=Y);ֲ-lg+-n}V%p+~Ը=r\.׹E.t+>׺ѽv]n׻.x+~׼=z^׽E/|+׾zfQ@4',ara 288a g0X/5 9vEK<rFU ? Oy F !`;8XsLfg12P 768(3UR`uƳ@JQg:yv32Bv+FALi<Ƙ f/oӠ?MjȪ9JT=Y?dK'1!/4VwG-zDъ>}|;|@-c<ʞ4gZ6&ć}`ǦM"84Kۅ 5j,0Nr`6N3o\  Mp;/-.JZΗg?z/˶4Nw_zXPF);7]c+x!s4.#狪#\9PbnN'3VL)c3\ӕn"ֻ^.{}m_^L WF];2ozQt} 7vzap{{ks3?s\/=bFNy$`rFk*tTu2H'wVe8~i >WtDw~tV{|m'{VuRmׂm'ouw|u9n:ΧЇ'v}{}fGmwogi7i7tFzafwgiaFlyZ~}bfrk%wz|@vXxX\L%dxc`NdWHUqwʶi "Ht8(Mh(Hb6hՖ{wQus&n${3xhzV|v:8|*!{u"vAowf}eg{0ivi} wpׁ7|W`xGxWQydž訆6pVwrv8,g\xexe{1͆w^qWx)w(l&7v5&g&n-a7g(va.m{yhC}{'^Woƃhv|4hhuopkg{8ƌ S8l&q8qcfxqߨؕe^xfxkHkwyX-lrXwrytyrx8yzy-_P%s)eek{axv؈G"}V(zY1i/bxqab,2 Ig=io\'bؒ@9]|6i58&&|~{ayH)HlwȁV whfi'ݘWxqhxyH'AHHiɇG\F7ix! eWvicuphnGg'gnZ')I4ɛ>x3y9i(Jod׉vQ*yWcLisx CvCƝ<Ɲ_Yx]c`ُc yqxdik&Fwq7('xi|Z~Z:Ly*Gvi>vn+ʞCia ŃAݰ'Z +,Zla^ ^|hwAdΓyGsqzl{,* q+ <=Vi_aƟvQY|T#m(>O]Zvќh1>hy=n6n,|~̧|yVoϞJP͓Z\&M~ a^;h~x>r[hrvw(~(q ZZejNޔM٘ #YNVRӆF۬86P6Nw!+˼Z~>NA+ FOD=>oN?K <݌^0hOՊܮQ*/iN[g˰dƑ|Os PB a ĄlEh0bE;rXƉ: Nx S0'(BΜ;}?O:E)Q )s5'PRU[~]xa؄b $Pkp++/ 00` /__/%ߺe8c? 5o&% 3Hm&Y) ^~zkUeY>',D{B~(E9>nTρ !i99|Ņ$|OqdF 78m`+'Li i!,);9pB|M /*JCdM*Jk[,\KF[-䙫-rk 1\# 0 c)'[HZ3X#-hl 7CI>Ml7j<3Tãc) :2@iɠdȌK r>Sh",REm=SCbZe %ZKO@R&L1 G|N¤%NNQm!߮*Zbā.ZdTǵHa&.{$21$brүs1PK7tlKXL4KcxMȤpK [.ABDmdbG"E^B%dK fF6it,j!HSHfDU P% W|)1 tF@>A=SMgl.nGIYBQ 3ѨPYmڶ:2*u{X,I?~2/TGQ9V%``)QJVR! 'r/DR53d搹"fN+vҊ&xav_E@~x%.:cN0 0r $ve9+Ň5}y<gLcDaŖ#HJdƠt|QYzG2t}\nwdeh[d6m՘ǜj"%Lz3[M"o$N$.d <.Mq8N1u8.7J@Oqyˤ̷ePsl B!3?2da&}gMW 8BZ&Z*` Xy5]iIuWI G!f0$"N 4ՉYUZVJӬaij^ۚ=ګзT4H^+Sm@")sF[B#Ry0\te ]ϱX3: e/atW ,p!.MXiqC -Ɨ*{g); M}_2G̨Ü[uKT.\7[`wz4J٩!Uk`\/%m!9Gw-Lķn7}c% v~@V͵~Cqu[9u#y1^>rb^iR׼&qC4"v 5ձXe8?@?2zB~P;Avb':-oTZ>@ BY&io斷 sêa8 3ܯLrnqu9~B8.J) ?n] tǻBH!bN$_G{Y=*v2_n0֫1 S`K+3X};Ri;婫;Ab  pbq#KpĈ ۋ37ݫs >㛮)).~% *+cҾ "ע4z#B"4R4Ks7 SkS:{0Û:s+[k+:@ł'^{sI~;e@3A++ ,9AW4UdbXF qj5yF2-prA*C)3B2/,-18S=$*/|81,: 43Խ2 [0)詉G< |` ACDl&/CGL{ ƫ@ԋD&Jw|C IAܪ\?gaۿK5RD:L507!AaZJJYʻE]Ő`4 1AKwJKGZţT b9 hF<,*kΓ4QDlBraL*Z̼L{p~L 3sMH\R|#$8(QC"Cc9tGռ<"\I3ЫOKOKNEtKd<`Y+dԂ\ʪ<^JT^h О~\,@LƄ(T SKN}A Qpʓ8-#O_}]H;Qb.GGsVْwօV85KUJT*W#Ž4R=u-:z0%zR+ / >YфXCCZLE\bNR0u`IŠ}ՆPp5ƳP ?@:(ABB-YS:AT`FԬT^ŠU@iFh+][e<3dC:UT:Uұ b E@S(sX?dGӓVg}ȄVz[׻B z6BBW;tr%<.v3|M%uCWsf$E%r\.ܿ̕fx0@ҋze'f5 Xri-cEp@ިP@1GTʯ$ZH_@M ZC'c>:ݭ[EɁ_Z6U26c5`ѰN̅-\naVɜG%8/Cffๆw\l\ v=f3)o.5\Ԭez|6d.jgf.`b{f6D$Nҕ2VX8؅V/^f-vh[޹6^<h5^n夾c(j=:BUnc@-jQ=fZ^}iFE<_ dGJ FJcIv^T=V=^Pv\X5J4^k63&ݮ `A갎X^~mޭ^N 3gj` yfV0 jw\pCpUt0l!UaS,g)$3u̅gQbi mH˥ʹRD-hr&Xcز-[j/]߮&hpYB]E;7F6>fv ^d~z;XtCwDEZnG/\|m#tt=NdHʣT_jj8S?oe[j>s^rsfbkfx έdVdFwykk+믘q@pus78"wl V V .y/Ĺ"VdwhljbLe`" s]=hu3]^eu7_^^E=xcV;cN醱?^LH1E^Dş-Z(1N^5u7=ʵ]=8 AVv4'=Yb^NW /kxqe`hhqxdrhl]qj_jwq.m7gs5,CGR֌a wP@+Aw7}yF".~V1Ex^EsۥxߎAFoV~s_~=sꇱpiyLtiKJtN7C~EQ,~yX tNz?y^oS?AA x`;(T Ƅ6.n8c"=^,bW|2%Ԩ5x8sgOx+VWQ.4LSMImyp AWpϫհXLGk֮\`kü%6 av Cp￾VdiΞ\A0O=$%JfRK%1LdG&C.Ը4l "Cڷ6߶osdϟȿi9}էa~;A>{ج~?o$YUCC$Hp!o6L?Pl-yRkUFI/g)4i0NցM5$U$Au1AԃFƎdZ[|P\uŲ_-R0Nd=ܯc#:t*;;%;uZiR7]]Bp lb35UNmÙ>xoHwChi'UvcV0F!c% Y6ٴ7qC薹e]7K[-$lbt8"K#{׮VP\sDOCd\*Y҅IbLi_'wG]%ӅRBpJL3D&Fer#M]L1 FRټ6LYlYCOs 'up ,f 9>Z;s q٧q,?qNt<y$Zm͠UAá++\Hܞ(·de=vE>ql yungXd =9vEܕhqfIۖ֟>(G^SWuSFaMWb_К:=;A|:T}cnpKg`,v~FaÉ1DX~?af qbEa*th\︊>7_ݒ =f ?F^)'17f8 [D@x<Ӄ2[p9 ps%r̝+K|F^gܸ^ǂ+1bcblj~@Uh9--GԅW*WLQ(Q ]|FO՗NI~PEA ES1X U%?*mUa|WQQô%I%ڈйKN]%uI[yȏXmF1X^aM  )iGf=D;SvōMh9!v$>FV8P?MuP &_qnہlAh!!_-Ԉ4`vqbWӕT`R ł;ZlWKNm#>Rϭ!Q ǜEW\ X],US&Y<]WҴŅ `% #Mas">!q׾B^-G^ț 11=dZ?$|<Nd "a 1! !|bySL2VVU.U6[5(*a$( ڠߠMdWR.dbRE2eտLAfUl$L4V 5Vg!6]*\}uNu" [#5;>؃Ƃ'Q)e$&P֠0N 0 p_UZK 'h$^HG֟s*D1(Y%!A̤P%M~F;gN&%zڇ_!{%z&e#ΧUkM8$ P!Kje7bdKXACB5[Ҁ.T*X,C"[Ja]eF5dsaWV*5 *Վb?(&&5ƣ5>Ĭa6]9c|EyϕiU#4#bf?>Df$b-'^g0[i䈂htR'-D[™ ʀDyd>-UAJz_X*A,Jgi!%Rf*6#>#NMU6^fv}e`9hV&&Ɣc`h c f#nRŨ@hlLæE)]篎["+1h-B( ɒvFeIʆUBg(A6N$d;IjN*|'AGg'9bTNeydȒuksV؂e!^b?:l V$(,Ă*Q+LMA\?kR>Ct#fjWn픻>i]dnn+&U nޱ&̌޴~RXL+m6Į.\BMtjnmmIF(vM䣢x.N,A-CTo$mKDblV-hǠ_ɵ&"F>D(Ȃ, $->+2.LL6~s.h|+n#+ igM%RNkށ.v0 fU*,C@"nr.rBh"k9"[0%C@CLF%A/S;jzYdK*MvzoFFFC@~j}Bgy _Lq˶o@?1?g2@o0t)+B۲D*m*R,-*xUS7u >.08/X[ 6xp<"U K6 ?en&ɰ9[c;B߾A]2r^w8S2Jd*S+$40R$b)EX6 C%x^XJ`[Cc1Oa?`7qdwp`59?{Ϸ޺;Q8;w1?Dve߸Q3p6 dgCw%sMK?Du'K'@֒6Ptk۬HbI%nyFW?Eotypq;Ҫ4jvJ+L%>t4gov%(w6xe.AD6=yF{SpT8+_wˀzc}+&a6x5A2Y'ev#>xOPɫްr]àdVssSO% {}7{SQ#a8;-3zx4yV(xJT#9'F9A,#[v_76_1BB/C/4*o7t,Q_Gcohl<{vˮ{hDKÔ63g|ʋ6N~?ꔿ6N ;A>"Hv.<7ȓċ~*ql{Ƈ~A{#qKd'D~d;ze#7ODczz8$ؽ?8};{V0@_A:B)KU0D)bѢChdBt$Q_jL6E?5SܜoJ.=yҿUK( %BsF Hʰ $_^e8l 2,ór*M-j{\NrBO.Iqႊ ~`h}˜pW>6kyhΞ *ueP ל 6C޽(?.yhAs bZN2zYsl=a?61–{,ܺkuk׮-[fm !Hd !zjA*(BzB  l6ĆC U:P 4h9R`t$"GpD$ R%`ii'*𧠰jZ(H*dK? s̷.Ͳ/3/Nc 8;+ 7"3 A5ˌNch6)(Hc"5JSJ5 +3n9VFo7θ!V ºW^nhMk]PԱd@+P@͵`S0TmJ)zJo*sq mP Y: <)YI GNFS"(abiЭP(( ZrU q*ڊ,A˚AM 3fls9g/Mt_UK =tХ|8h-QNk.-`)SltN%θzM5:[hݻL;> BO-ZY=V4+p.k,i /j*k#bP<h%t=!|P]Q"{H_p1Ă׍xI|Pj%hЙB)g|,9@,&d/r5)6yZڀ^_~ZTGOQ f^A+ D M"%7+ܺƕQPl8ƦV*AdnCŝXVJMhO,SM&Y|8Mg֪ؔDmĽ8c\GMh]  2`Wh7idEH*Fl`[ ֣d]cސ,cX9pJO0GZo)笽0YL%C^!e8Fqa|A`,D!*-l iLaC)d6lCUAhgd!BdYOYgS"1X"WN0 -IQqQ1tHco޵!4uB.B{a^Ƈx)QU#R&OG':H̑Kǜ=`/MC.ǐFM-"ifk hAR)N1Y5EVXj %- ]f[:rO rRQ6 =A5jҐ6,H5+g`3Q ʚkqLBkb6x oTŜM|Z!ӗTV> A??x %q\nWism.]ORɅ3Zm+Bl.`!JJF=hr1Sd(HN2@&4MƂ4{`IRJuS3y* qh~>Rj[_E(@\2k-,Ub%re:]kZ*88 K/)|Y4kGEWQ%ؘYmPAFfNز ugӘ\6ane`nW "+pWb24E_6_wÚ*W -.U*T i#@BfWSj:Eyu.IL| $.}wlGEVbX|v32t6WU mDz~_,f7Wn9T]iS <2 CӘt, -5MMʖMoxoxöЂ3,3mݦ{Iz AŞ=&ըUI$3ݦ?v C۾?fԂ w3'\z%tN !.f" !N@fۢ"mz" gH0t@tCVBޫ XM`T"hPkkJ`hD!®&NDpA8 4p ,𩚮P@! Ǣ BMf&xnLذt GPR,p q !F x Ao<.8kɾ2 *&.D˾)S@"H:+8.E/R,RN^ N0HO ,~"Ba PBz@0 !+RV ԈXnvh䈥8B HwdjFf ` &' DGtB"6 - ۚNq"/ h 0ҘA ` %M@ ]POa & p 1ZDŽo(,Rv,᪡ឩl.:{rJNeEh$H߀ +2T ⒸR 0y'OaD "5e+ں6jB$֫ |OPj-EQ+!|$X$ xD 6@6 O4"!z71ڒ, @pp 9##;r9qVR%&c2s/arΓ!s.ӓDŽ vQIQR؏6"krx*3Dt؆TNTZQ: ); JȚdH-hd&DsR<6$+ pq 0!vs!, bmH&匆ب7NSU _K$%׀XJ` 0s]&Ƌ+'+@mp!`7r7@N}31G9!p Pa fAs j%am;s u&3P/a.+;cT.'D PSSSjj>sU?-tB+%AE+eUD?4њlԏrCi>'=kr.5a.ZmrrRP"GqD,vGN !Ձ1tHnIkۋDNEjХRwd3]'L_MI x "ԖzM3V 77}4PT2R M#U@apQ1O%mQU(gW/œ&/=6Zic6.K'T-ev ViYIR NnhUj4TAKW3'Rʈǒi!+uU=&'5uhSqE3c;}6ĕ6`6vT9NSdCvHQ*5"H4ftN%Vs_hCE^k_Ps$u!R]bL.ɫ MRkOdc}\MePgatl7s1!-F[4SR'Wphh,o!J5. ojQxNav6*li666Ao5ma;qW?W`U@&RVC1TR Sf6roJiCU.p6q!qŐqmR+ tfU{cXtANo ߵ@Hy !Ǝ`< !b\J]wxp`jr V 6M6sMyx7}{{S !{e%YTe5f!$r6Pw [K-U[o7De6ASUVj >UqŦf"ȁ[/!x/@t7 mIeBtB% xrX>wVB BZ~X.epCu~a%5gШ8ؠEE9yGNG48ȫz;$h!H(KaJvB[: FxM%R_gL7tAc!N4e'# P$ssER)ZzhWډqlxYZ!ٙkӮ3@ZI?VlVl+y+)pձ3 ٲ/ۊK؛l;h)Su7},>v ~pՉYT.gهu;.咫ٷ}[G1:XNwӔtz>AzLĮW-5a#>ߨ[`GF'pz^t\&@za#-ТE6N50AD6 w0| (7.;Y+!RVD3uQZa{>R:>KU: ~9j}ǧE[y,!7A $|/[ 2!y"国L@{9͒+ص9po`9maA⹹AAv}|q[^ιjOO+/^%u^!=&WQ?{=9G%)Ӌ[ibB!u$:3ez_}@\vIkSt^N y=ϕ+@9RYO B]|:m !;=\xR|S\ZWik9YMp㳖yy9=>7zo<x}+Rnr>3x`5;yA62D|᳾̆K ʡֿ& |~k%+n1 HB_ <0m"X-c5Ϙe|hKc\2Ȳ̙4g3ɒONϞUΐ48jM?EYy|t9!͍5/1t 8Py7tJc96,=M^ڈdacr؄QIENZ:vEWmŕCnVe]eH^腎o5TSMNNSA=TgYNx:h8]khkjnSf?WH\H)u!s1s^G{>N䟀q{ JZ$ 6 T@HC$@n!T";(zhH0þ!b좈A"Ld/@"˾+QEyb ͮ%MbiDJF%MQUEXY}S_Z3hu\7'\dvYoh`*Q 监ބIT@tC^*AT=$ki.o6qq~.\JV-xfM]yn^O?4Sx ߴ ּ/", ܐ@Jqg K RL9xC-cDXN3;M}'x;N;BD9`)66!ZRh} ңX2hKʟǠzG@*.߳Hld{\ݴ#6Qsk@@FKK) N0*V¨;Em*,\)B$`X6t, o{ u)D%S9">i|ꈡQD(T7Ɗk*:+i>Vflȫjm,)D':BG<#WR{n-I]:x{U`r&$=BI*$TJU}YVX"2H%+z 2ܴ5Hv:fkMH ^iV`U4KsEN3'Q3ȥ7eʆUCYDv2.leE d `2CR5wƔKI@/0L>\\g'UETUhEgW})]d^NnL`VWmuwlgȸvȲ">F v&ٗH TTolߑdĒ_dAo^Kvwc4(^9׾*w}a'k:`or,Ytf6mv]’A/K W 1dc*e%N%H 堷f8මA |4.hJzJ|~f^?!A450 -᎐Nrrm)~~iye}OL0uz##8Σj̐jͬ^1k0~jvi$ sGt=tF$ \.,UIprؤ6qf.y/ IWd ˢ̵>+5JlԐ 7S˳U.|8'a2\?wCpRsDC+ ΋FQhY*Jlr뢻EZ88;ڕ7=OVndZ |]VߍUG,M=z^%!):3I.)x%~Blg;tJ?Ъ+bV{)XiQ'ܶ&4o뭂; m5'o-ɡ͋.AyE'_ZWzj0r˾L4B R-4$õn pHÿ-Eto@:B Uu ^Mm>ys%UJMgD.h*ats R7/,^D 6uL_^~5B5~R>HjjTU ?v~M~C D_a|GG}&4tg+L֥Lg4b4@wwWgmW+EmbD1D=)xmR)3yXLc6ZFyZ'$OI6mDqxc]Q{rPGw;F3VeR@_m5Q@9\m~e9w]wre֐S4$f2^6?O0*qUS ̳I#cUP#S"=11JhUH(R#S>"" Spu`h`?<Sϸs3~䇈)%4hlaad荇v}HW@O1fD0cI5`7OXnRoB\(ThyWMfXp@X[r yt,; LS u"! 4ЅQF&Q%@9ÒWr% -3l!~0X1 H~Gb2TSgAR$p―X!>"212'Ti`pݣr##ҖnyE0hYQ 8TTW" H9^GKQb0ay1FиLH Wihw |pFs?gS(qRlD09|%xbEam[Qx1D?( Fxa5V7^aV{a'U\Dچg  H* 0/S_Ű#3Zb}Ғs Cjhp LHԘSYK$Jø@})*Qhi +Z/0#R:u7iy㐗4=  +*I JK M:C=tu u"c2+##ц7<V¦d4_>e3ityz?̓KX ~|ag: a O![]5:ferxLf4E('yWOsdTTTQW2 *gFBu;JY3pk$&* /$R:T2*#?8>wiv!P쀭*?AsI*Ű T) 0ʢ@*Mʤʣ-ʢ// @+4Q [[`zG;z[ejӀ["`J>;ҥ !kCe2kG9/헳 3it\EU`J{.Sɟ6+bgYcDcv[UfGZ*&״Opbp0'\!eS()CQ1q-qpG|8+ns;S:KٳA uo)QK.: ,* *p~ +)* Z#Э4*RiR9kF񃌅 0j+.%_J&$Z Vy C ?y^θ@g:TH32Ibr`tA˭Oi#v*Ƶ[kF>KtXz}a0pC(y^¤GF9Q{P&BI'[ 0Z /k$`I&{;T){ #{$1T) UY {9gٗ}iW`З}0xjYKYs+R#$8<<< Z?ץo)2Y!;08[9a?Z PL v<"Q"x ˈ-Ҙ?XK~h{ ,"ty*3(*A{Z%Ă#Xa=! Ok"A&EP4UT)p [*$ fijZ 0<0 Ș j&n/ʾ*j"3= !0- tʬtyDҩLڿר|ՠ<ۻǔ]/VL k بiŰ 7\%c AQ*AfdKLމUOp5Ka[zrrNα1eӼtzw$#1B#c6ݭ4έƀF ='˻:*T]m_ d-2 ` 7 7ȍ=>aݻAZ";׼XA)" 尗ѠݳIޖr#2~; inT3jʦ\<`w< |D:Ш܌V< ?~"&\\ΣC Π.V]I}rQ%0qE8ݙ͠=޿u;8E&]C w2Q󎆵xP_~Ч8^ш{*w7Q])Rb Aɸ џ) 럊B=^[Xݢ++~Rb7n:N*PI?00WȊ % ]-uId I?ޤR S}I[zyE` H^(@A!ZXGVG͓ͮ@׮zΓ-(L L 2V͘~1OA>S3iG@0is0m] VэȞ?]t?}]wƧ7 ADmQP 1PB # )F 3,F CdK6"o&ōqňyBȦX7bX`ȸȒ,!#I&d &u䦎:#3l3v($<=Rb#4EruQDŽtVe:QM*:Hҍ985*+*Oc`.`49HX< ĈC ,8[ Ҡ=h*Vhcµemf96!H6X˅Œ zӍb| n_72X{.;H]2ʹԋ܃>]住? $P&B#pB-p#) D.ĶEWdkiF:!B{L(-{_P*-H$&S0>vHJi#qd3#:"J2. \H|Q| j8eBb+Q#׋F^>@WVQ`{+W $k!A`9('-bٶ=jy1`oKuYMXN1^{mrE+7}$PVP/)L SXnā׿Ԁ0-X8Tg7 \N2 \t1Om1:$,AJ7ҍjhA "AA! D ҰQV܈Ӣ(.7j-H؀A-D~mDJ$Ǎ4!Izы^ny;CրpLH?ĖhX#d4ʑ"$Fg;d$ IWrb,dKu+86"smxD9O@Ա܈k|Mٖw})N.jݐL*vp\_  8 Gzb8N 4#Tncc0FJO\R,yJԈʧ%;jҍm ]GTA'$V͐8T db-4Zf0Kə ʢx60Qf3:9yP!f3 K%P7Vr PֲԈtIZ"TΕzJz[ y)?jl\_JJE#-bdb#?6^1!BOK5+^Ns]XE ~ߛ=z[ړna[)%Gqȅ%X;z|Uҗ )C R739s;193At 1)@K9`'bhkY`:!q*$KqaBYb؆ :_Цo+1C4 c3ٙ.4ì 3B3D#CQRzĠ)x{LDĠPP,nH8F%X>᳽9;؁5zC`EdB.d e /BП b9 m v0ר:l &`>yb @8w9 k8@| T@ s( ܸ S)2)T)[Az+1)8g)¸аt9p%ȗ9 dPvyIu( m0 bH S芿 ɨƀ, 8j)ʃB+)Dʧr 萟y @k: .*(C3.z :Cf A%BI>&Q,+ڳD@둷r7h _8<#P>.ȄEہW;U AxjR 6kY,ZXK ^frүvus l(/ðeFy7Xv@ψ}߰U} %1~zP+Ȃc . 8Q Q,)ˠ{ș2 jI8 c#f&@R%%Іf^h Nj҃ZSy (Նlf7ՆS^@8ՆXxx:W/ KW<@UTk>ͪxMISxt,ȕch` UCEN[07<@!0@)vpPzc:J=`#9+ ^}Viq`풑g`@)Lhs[DBkZōHG (Ȅ8NW> T(d rW!\WLN[iX[,Є}UX ^RFx;tPZp)]tSdGvd\Զq\G Ƕ(<%Sɨ Z< }]HH}܈.@Q-.8.P5[Q %eAH#m gQ  ]R12\%ZyP,Syl[Pll` P\PH2 9X0&P]mmp&",KLuҩ }g [zq{7]tEk W;W̓[e\!gSX[N`x^a i|`S#ΞÞ뿤uOvSnFn`Ymυ} ]\Zlcʕcg:ٮUP )tȷ\0HPILE\ >Zz4#}R0]I.[I&ݍ`\eI4ez\cƍ@Z mU)#bE=֘7skXXafeSqfN8SMSnf:5s` dųXK`\EXN &\!7);!tL_؁_7PvBP(.X ]!΍0#Sr T`ӽNp ]YY״h N66]Ӭ;D!`WJՄC}x*\*X`#f. u;G"v$ֈ*֟! 6xRuG|* (CTs rlfLU<]knlЄLRW)Z=\K]e tk aza^1Uɸ]e0Jڮ4a74 P -@Uĝ}IfQH]P+F*1+\- n0cyO⍀Rqkfa[=1H oENt=b5굆,xiH‰JWhl&^}U>b؍HT=Fg> TQ.M)rij8piyi <Є p/SM> U`WTTb ?^xa Rre҉#rsk/$F (=faXKL# d)j'OfBPC*x t3\e*bqZ`͘7yˆrbIs ѭEZ&\a0]H鸰+S|l}\\'}o3OxPNhFхԕUZ.\1/l^eP ZPVvϻFUvυPE6ZwsxvFbqo`#6մMq+{5NCjSWHTyq(MowH>kl@qBý4x ^O*%σv/,R`hgΒӃXTWpp4yyFIEV^ zy| X r>E؉Fiz&(LMt=7q1%dYmw݈&ݶXbA7Ni|?zrseK!NtYq8=>6mgB+]R8dZ%~AHRvN =FnJQWWG_wuGPdHZeI^nN&m[\W\/9F]͆^^c}{~\&@M6mP&O~οb _a<_i3߭,T 9 W\TAXz +Mf,_Cڳg fgHvHVGP厂2eg@ AȚ&kC+KXJjV-^\/Wx] |:_T nqi -$Ë?zp!B$ ! zM! &g`Y89͒E!<Bx౶X`HbN Rn`&),?a0Ƥwth [ 0`Ndm^nLv7IkӞ_lݻgCC`BpCb 0dM-f- $PB"IISL*S$X"%8Ej`b]`1G#_Ijx?*"%[f3GX%_#@!$Ll $y6_U"fAK@bK6؂@ ]rtFWS)SBVKx&d;aGF'OFW*W`a|QK1XJ/djYckC\a5>\XONiےJ*iKR P  0 ]W_$%XCZKWʴCkE{O6Bi"Z15 O|1AG\n5Cgs9_W{T4d0 IFu}ݙWԩ2}CdGQ}BwY}r}0 $iAb.35\ (xA!X2"NtbpE'2B4Fx E&%Ľbr/  $ءvK X G$BQ0:DZܢ ї)x+L0q m*Ҍ' i#̀24)cVȬ3* 8<+OR3F:ZQ:e!Ix 﨑UPÃhUM0Sũ>P9ޠ7`!MMQls4b AXcP&pS SjQ3ddH MWʒ|#'eI@:Ĺ!Qr\RNˍΜĆ9IESN$#I00׻S>"Mgу$%Y* 4A٠E6xCF|8)OA,_2NhBk]ɉVW‹u\,dZB.?D ! q?PW @_k.\@ʠ/0 co< XVV@0@a eO0CW|FAz&>P~C;v̭2<:ZPGeԒ"!$'qeKZn}R"0(([3"6X?N19DfMjh5A-P! Q(LƢDd.np$ɩE ҏᄆsjP]0}${ S)K*49J)LS:Gw'$7bԁntQxGVޢN(^8BәPόVOFfP'z_z,˱ &pR5ŧl~EwbVJ_ PA`o=zg*CT<"[ׂ рxa'KЀՁY4I!r$9ĽJ|3\=8KZ%L E$hW2`b}峢`Ieaddy֛(ǷfܵGP[ƍxpgM# KѯKZd88ýE ZAZU*o\D&\JD&BE4TSAT??Uʩ55q J6\kh-,mS\]ѓHݘ@ֱӆH휏S8 T\>A b~!s%Kui^|vCJeY + *ТǨ,S S_ *#2n1쑄+4õ#P,.dȢ#Zp p9?A$8;:"AU# ##= _V}g²} tyO|&D䀸qQ Q`$0Gg U(_@y`\KD D`X[U ބVIPIpK4YL#-SS4Z3ق(B\d(@NO3hCBM*l9 =!6:%eΞ< ,` \ lSh"lŕfD?8șhə o@ϙ<+QEF0D(jPeNYeKa Kb+[[0#*0 rF .o)ɹ%-rSrJzJgYDxFc2Ҁ+ zA,򧼼#E]9^VDB;:A(\9pr [_hV@^ im2m@@RiP(܆)dICǹq5ymJV 4ZBZiDLC8/Li /XLD FL  đ442P%i*.9\~K!q5)KXVfWZ+R͜dIeitۉDNTQf |&䔣*7Hu*"!O,Ho#OK)ҧ FWІlrmxiNd^깂NH-Zo?_9^]C٣^纘7g4'W@w]˷DW~ƵPZ[E]˷b-|rSb6>_[v,‚9Rr$QO|i(I/ AHl{YQձ̼yo ) NٸKCrm˕$ VLq ibȄ7 44hDZZ,ZKT|5ž؞r*(n('@3v'bj zɖ㠈3 +o0 Gvv́sɃ M]-Jͮ-t|& xeIȨHfO"jE,S,RiJrHU iYǼiY-Pޢ+΢5bs6Iڀ#}_/K$P N("ƹ MPRJkUu c9KNY˼8[f0_Ep cUQ_t_br>zBE__5f섴Xa'!цJOdCE`j:EܛQKBiDZC?480InK&,ID‚4y/SXQ !fZrP J.G9J>@G34*o8*E&2/ ušnyɞ5*SdP m,|$J,$؂ 4oP-@s2gG"*} ΞH"0ERpVnN0.rRHEY˼ٲ/",o!^?\)tc[PN(Epʙ+T F^p 3Q_*0_L P@6?8MBN7 ۴MtNLPAq,΋s-C80' ʆAQSjbBl˶gO tDD|5M{hdJQwb)0 Fk[l־qM1\>:0& E2 c1P7xyU\3 1B%Xx%7k3{eM i.n-tǭMW{zW2 yԀlQEP&~!mQ1BTB'TYvvȡ1wh3UDi%6$"IAl^)K<ӈo"oU`a @o^Z'QtD6¹ pPXOEZ䄦AAѿ<>^p!}?7 $ABC|=7LO78 /`zyqjhphP-FP1]!DLk5epƴVPuDAP:_J)-Yd$m0Ɯ+9ole2gx}+ جi5`HlzpBMnU\z%J6_:Lԛ]%2{.M5T#Q!iEDJH*ȔehUԽ~Rb---b,bUgyN:|cV.-b.X63s-hej{vj2++/H.f]\*bZXוOPZ^޼a4nS@]h?(c/Z 9I<HXTf]VXQK K$AT_B/r,Q3-LoM,^UPfYe1}O9̲A[%= ,LYSğ)Br۠H%R7 ;띲TC1H4A1l5ɛlIP/MqH\1JM (<`HXl O-4/hoȀhM_4ӦqƋH, FK1I9Vp7&qJlZ1JY-8ܼYW#xz:% /T(Rt 1\qBG9B %ǏXG?[hb%-&= #z AY 4hG.ĤDL UD]*K u2%ڄjKBz*F\: 8F01(az@*0]!I@Xa-ɷ\ 'ۑJ)TH`B`1u3ȍxa+샸s2%A'bXL5McŤ'^\^Bj&w@a %h %X`b`%rCadg]eVYŪ%H\I&]ZI&%[HȘ'H%i2)YsZ8M6[fspg>b$XDxeE5gCbB-X`/Fz`$BT)y5Ȅ 7(tEʍZT"T쪎/2| (4p%AIۄ aq(4ȿϤ%L0d#\h)[uE-e#. ^`!ZPA1-Brf2A^;D и-4Rc!Hd> Đ2P,+#Fhlh $F@`#6h-?'6r d8X1挳J`qm#MaO[fk\J:OYR;p>>5?E^iE)OKwCI92ك|c "&.YxزK r#=yyD~]Ze!cH(Ɇא5(}诖ya,.?@5I7B(7 Cp ); **nq ?* =Z78 HK %rh`JW 3.ot*|p mQ[>8e%X11!av+n/&3H T\D J"#yHA 3r(Z>+2k/&YW\↌˚b #WN PJ2CCK=@iLc * $(mk[l`C?<% :܄ z'('9Ug=zB\b(<suHw1-( hƊV%xE+zQzғ4;0wch2"# ͅN&ßp3# L^`";msHh,: {!$ mp" OPP2 0LD9Qy+<zu)M\E`81 4 TEǪ Uva bcq}a$,%P! .ʅ, K *!0Tl_Z)dSH' JʲHWLȒ`h$BKEƐ1>VL<4քnnX0d"!{aY$U  ̒esys((e, t@^zc?T`i\KK_YeJ{l_%g;U7Ka?ژi=S dm_T?P';c" &Ȩ'.ŋ1"9&""?9xnYQɨFhKj$v U$'L6r65I%ҖBϕF | z'TTt%~Jc$cnLl<1pZNM7;xńŗCd$Q{[UZ>],]TexI*fMw:&n<0 )B!J:=J۱+$R/x>i>~lUZ3S`_mלU-tI Qp4W)+(3s.epp<]ظ51AC˴$ˈȭ q b` +v.,"!-b, WjŸLfWf p"bh\,++ l:Or2 ^X8If9$(P P'n@bjL D'p@,} ESbEHFpΙܣAIPOE""&@Ox¡@r c(((b@t'*V$hnvjg(& ?&LBl?*MބdN4, B*Qg?nb@ ^)^^"UYd2 Pi(Wxj貜R0(2\¹~P2O t1/I ACt2/8iflDfR UUMY¬ҲJ-H) %B /Uaz,lAf%E?(e, M%>"(Ɉ#&(Wn%fr#oFBr^+oX&~-$"0`k@kf ^_&lB6siu\l\"A4!!Cdz+ bb@b* i!ocZ##ڍQt$B/"%à2]"A qqtXǘ$8$(xAk*c" (;MLφ)|xCaL"0/ :Q8_rA'tJ^΍>k YK& `Tᯂ.)&%\&z -75 Q+\ ۆ9#b(u*ub? @Rp#/f%&6 Վ%U[\U!ʁVi5TV:<ݒBl=W^TJQAcYj-_bEŲ8 \.aX'X$n;M];`}A_`')BDvCp BnƤ, vq,)փ`BJ%ȉ\EWP#q`1%O24GG.E2rctthnt6 BNLIh% rΦ#SV0\UUı,9 Z P]VE%۶K pe@R$tmM%!(^Hr&9 ɻT&]mɭmePjP2敠8%1cbZgZπ(rǙoTU ࠊ%xx!xa!&h 7)@.>/p2)jR b+}ͲjpmՂĐ}'JOȣ>P҉W]b 7+*^u_uZ\(J>x D\B>CJH䃽4v<N)9Gp cB [P]/C?,+ c @D-1 Cg1*13>#OjD ֔3b"&s1&BeXϪTA[h,(E5?$MD-) 8fdS$$OѠU@$b-wrUF]s u@)tCi Q%)&b=cWO<;-%"KE'B`z@l^ack!g'sD$tKGIK$Kvϖ!&58Z40LvDLE7M$O%QWl3Zl!ӏF].Ò"lmيCG}E*HR4f}b"o@.dxhuVDfw$47Yz-r+U*oN|떜\ø}iG1Nj+dބ91axǛ%=;&*UUm6bW\EY |豊pQ+A>0m*Sd *#B@Y+к pəv=3l,`]Zp1؂}^`9a/v^d駻DIJ|:vv?P4a[m| OʂB^ECaHł+l2ܘ؈/Nfr3RT#88٢KfFA3pT8Hp*L9涢y °@X2WgSGk lb MRC yZ-`?Q [”9df;ޜUE',¾Mn\e9ˡu|K4'k /cld ALiAw\1 g= jЀ׸A \7/³n<%0yMG'6RRa7ᔢ51?TKE*1Y}G*C)IW$hW?9-jc4oNBjhZCCrB 79 *tPZ8@dULV;PY+XMT,@̐%GagGId.2<'fuu\&Is[AurE lF@bE_#(?qCvJX nDFʅJU>kf``4.!xYWh0+xN6l,٠Yh]r dbhȯ}񀆐 /\rv7mG_p|Zޢ;ֱy?$P 9V2GJg* l ѐ&]s3 e^@Hg7ù o7,j(pX: ND}hP^T2bKRG(C*ni6)8P6A&ST3O^ U+a/7T]e^&Rg{h,Wɓ!@$$A M>b"۲/E"BDS4E$"Q4v.%[ G.dJ4cL38L u.  /u zD4Y \wGArga1>`1vdsA`_JE  _p_4q_e_@1BwKMfɡM==0M!u|s@va7\v:QQvv-o" M&k:>lcQh7X-kX-NxVfyA'fofg'fxf}`wWf}pf!R({}`` hXF`Ўfl6\f`{wCX|rR>WUpev!)#b%HP#t}CEX*4)b)(w@eUAi@beA  aUVbPFnzfj{9yhFiVi@zifBy{V! #w6ɴ7`nm/@GQ$xMt1#1r#x31A KK75GcI1 cX viE r0``. H\P IHфrDGGE_T^c xІ6JaHӆhІ4J!1alCK`A>p =p t~S7Q7bFhw )R#נ b+&lR%vBB`O5U<9llRP NXU8x2 {(Ho&g{({̨ygHzP0i5)P0% <.gi|uBTw{ChiB(#t'!*eP,BP)A"iA" V]Aa+RB+pUj*59@Zj oJi pfȌX!1m ] vT l7qCb01Zh>KfSNK m a HJ\"W_ch^ޅBPvp.RAP2_TIIv s0pi %x pp A`p膞4At \4O?KGKIf`K6j\g7/p*b& 8vʂb"5 r 83"/wl2<d#XEyW>y7<ȃT3S'w°NW%RGWlVE){2 gPv=Ynf;?gFy7fBf@J" Pfj zU{xzgk&V\vX OxC11(@,kk:(9dE+)} A qP=t}C8+p!t @ Q;{Q[isn62zi0fW?"vvc`6Xf{aJO6M7{ יq 1 wG3_H=p.P3RE&'s ui424o  SӚKΊ K_SJ ΪkIKKa, t5DiS-Aa$ ;Ym ;6ӗ -hX,铞Xuy^Xv9A&!”}%SbxᐥC$W(qcrMBrU*kl'RoEffGW'"EldQ5g![O;P0X8 z|ZV;V{C5>g'~Rf,XC%A#k-# (#TU*+@G}+|+ E /}@&OO˜0y~F>9nF,N#jǜ_'b]IQ'uRtެ~__h5{1y91sT12Gvq1z1SwJFњ24`z46Wǀ Ѭ б2;XOAu#/Wv1mMA"5!n0% B40OER!%Z{YTt> #ᣬ?'(WEk}t#S_˵l&`p&Mȏ hSdff_w*ֆc#"i70L[f3Ѵl3Tцmh`GűJI5K2<4M1txK њĖ_C7;!cMa 4 ;:#!kWi:aqbBN* r(G9"9u6ex9B&%#␤S<CoN2: (R,6!UFWte)Ew|^!ByRxefs:*t3;:R} zA9٩"'JSDfzg%cydN`0NL5w->RVpֲG# i#fAδ5O`ݵf~Ə<6hգ“Xeh]‰M!bDѕL1 tQӬKﺚ[]A4K ߬;8?=QT,A_--u;pv׀.(d! ~ Bv 쁺1QD;CB[v۹k&RqvXn!Sm0Y>A&d$8$#hm+B+DY/0Gt.Znl:IT;bULg}` g|gO +!kך+Dx+A0@0@[;$!q NN$b`IdD1:+@p@=p2b(cI$,J˞ xYt1^Kob%PXD'D3<j>h{Z{ k0 t,J L4,QEU6a覺(<#Ȫpp*ZVb #a}X2I؃@|"R&!I(\yz \pRvMm)XB!,rHT2HBiPD2lR̓r-.Ƙ w RѴ FJr%H'r!?0E0&Lr6ͬ l*K+2.9!nmUNT .[mݮ:b!KC4(መ-R )DCLÏ@9!XK?QFLdAO4:QB;0IP` $/b  |M褓DuPD @$(c93Nutoy=3SIÌ  ~ 8_=*JSWZ%J*x^ŕUD.x|W V@Bd%d)!P%TQtdU'ᒖ䅣?e7A?|#4^ + 㗷  гPd ],pð2FaqҖݔ-jKf8)QFB( %*SYSn63 ["$%ҲLe`uA&3mK11bRA찴LN}Mj2ToS8֔- ( pU J[jHCU %e)tA*=iMul n*n 9M [=؁* 1* -nd 6iNpZt -@ yf6eZJU&7&cePm-lQB.ɕ-m\nQ/|iq3٤ҋZ|? ĹֲuJhh\C&իT7(y [Wof滶cG=T‚7$H5O-Cg5wp>Q: @:74,D3$/ءE$t' OP>aM2 7 Nn(Aܤ#=- P*43Qcy}OkVՃ]W ӮZKw8-߀ RZ›-Sc 9Zln(;mdPTMi|n& $ gKkSVqps[ &p02ɹĠ-siRB}& `ₙEɎAufPSE)7 <Τ,ⱑof[M2 (5>p4Ff*FQ$ӈF6";t8@!$%H!/[|׹y,ϑ@;zhSx.eAMT? Bja0ѧT(5H]cܷ̐Sq^)Pة%F U2V%eTz] W|>A*a8XU~YyF=*v TՊqb Y ْZi7ƈi*d'90ۻ.d.s-v<eT ESD1?p}L[;IIqۥF^qíX@,<H42B0 ç|+Y ؐȾzBA$P8Z% T㐷$Xr1A@ "IɻI/! 1(H-y! s"88pS0tBi*`*d%j˯҈/Q% hKk3?2rPӨrb;@2Qy0P̠)Hٔ; / xNai5! wK <[=T  #0E¼EvS >#"1ケF!r'@A:.s1&k- ѐ3A8?$,'X58, <ă1%!Fw!TA+ '|&C) lXGX.lQ8.hY*{b@I,:!|/dx&ȧ9߱(+9s I& N8"qӰQx0 ; {D@Ds'vr'R(G|>qji;!Iĩ(J x(D(J ɠ#y-L!TD$ {P L[wqx1ct;ZӤXF)ʱQ?[ɾЎ}Z-:9Ӂ"A5&p%MЄhUHORB%RG$ɿ| -@D%{Jc$*% P 0,*4+# T%ܯ[LHMLF9Ou$,UEج t}C x撒͠"Ԙ#9T)O֤MP*FQAm1F5L>߻ oM!TWuUX8sd JIױGyPSC AIɃ^_99J Ax#* ڏ:%{.AxSäd*I0H\11C@0ZҔrڷЂ ,H-Fڷ)Иˠ nKi躘'iᐳ1] ͎a޸Va%8Fʷ1 9`[{ ϋXb@dR/=1 #'W$ɤsv(b2 i? ni#; ˲'ܕZbL.H)Y퉧iP;ii=b %0qS/SH\C!C٘!/"զgRBƏ2A].n/<Hk3s Q>H#H(xsv"]=0.|>nAA&B6ASPHMK~3l|LLFvzA1ʙ"n]|{Jr'^1"'9 1)i @͘`snifx,6^sIPg8_unOQqL]SW5#PbxUu&"#\J$$%%8ej%8!#a߷!-\?VFdJ\R%%&i%"1 rZ >X"t-h -Z$1rG j%t;/9 uR4c#/-c9 i#+sOv:eFΑ @S{u0:̽t8IGT::vq#mKn8‹ٿ&bq!|gU@ҾplZ_dg/t~{`u%tw.v$X'ɎgovuM-cSťw޾_2J9뫵z͸%/$,% xg[&{%A"܈#8 ##PI 7@vyȍ'Hʠ8bpE$ ȅ˿8 Sȋnɔ͡;T?79U juǿHĈh&$`Ruk$`&2`)I`HA+&,@?U@-qѳ%ertD@~ȃ"V\q  P#FTIc$(P7*(Ο҅;S.2)U~EwMo7@ȿq37迟?g =ρO ?P IH!]s F4](I+Wj%!Y衇/d."UW^V %lņT]ImEF8P#JHSEYvC[e֖au% QN4R9^e%|bI ) ZѨgB@ٕJ\蔙kE1?TE# *eVNJ gVEOE6DNQP4UBQRt%hD3*a*"eRJ*C( qSNV U[QCYnPX %RIO=[gXFoMF!VA] ۅy!KA&bFcAhJDg?QXm\a[o7q!r=J9 ~lw wwع~pO*5ўJ@@?Zg-p?8@ ^qe~@h:DZ*%+mfNX)!VU8|W2y@_p)+a UIZ#$(i˗,)7 NZ젆Qr@ U0_=PrD<0 `X TġD F WrHD{hJS`lB0dc_VfG$FV`p7ʱQnH#hNv 8̙tCH ײ#JiGj[GU h+P6Yrkt?s>B@ b( N4ℷu($ciMZansэ=([ \!MS.#dO3b%g"O^ӄ9g-ech&2$lq%EĀOP"P*Q G;QdPB(Ch*C 2C*S ?Z ?\@2p!޺' fB)D $HKtIrB.#na ;AJ'xF̰K{ XLtEX&у'BqځT>.Uq>3G0li4Yl:fHVM kq,8hJϼX"A.+JA:d Wځ++5*Te@f4ȲF`E%G,`a"#!dDW ]Q.,)9֐ $+ځs=+xD_}WO|A~5V$ԡ!t\dq#)c;G)=$a#b2lTj46[L(ή=!+Ć߀ &gZ2,MQ*wkZ`xw^y6Qݝ0 *B8S[*9ĊFMT µ *gӡN&k+WV"}8FVFTA' p|rQM2qs[C[UHup`XJv*yC *yÍ40 M<AALljLHt =1l AFb_t r;SJň|,HDN<k"ֆl0FPVotd`q46p\0 $A&E(uhv Aq`uMCuq O$U\`+yפ ٘@W n84VF ,ޜW~D_\<"NE qSAjNPTNH$W^ʶ<j rcPkxя)[|IɔC ]V@Y[AZIdY"z"I$IT8DQHԘ^ZFɁ,ƀYq-,@.^!IyD02REOԄ>?#?bQM_7"u@E M Q:ce<;B,c-̣bI>rfH I"ŰhrVPA# `m"hml%GhpJ  @21Mr tm zqwr O[(m'$U-+R{R||ŗP?FX>W\˭AXbimotDe,Z2GYR!\B\j1}7D; Kp[ d b%FP PJk BPBlerL˘YD 4ED$Ʀ-y rETE`Kh4& Ԙ0hٵ'sZ#GPR'_A+ۅZ΢U v#u+ ,PgUDKM'}Z<㫡;:;Y lIEft KOP^cJboИ$vd>h2DehD5K'A MHwqW ?tf+/ԁڪDE`#r\DaA'n',B'$B.S&iZN%j F5X)[NŤ a$ĜJJR Ї겮bfa[>J0U"ˤCэLXD 4hDEPW%`DՉ>& nK bWU5\ïɑ#?VE|DO]&]JUHeHYĞ"MulQ<8ll(;jcڬUŋ-g]gDBf\C$U"nm`$pJWސ$J֠ܗr䍘 Lf[RV-nؐ ZPf+q?@|!m3U"e -nCq9.D 3.c$FmFE.D;$o1Fm4Q.!ҭlRъb'kۖ? HB N5BDgSI@ֲJ8 e^ `ai/uDuDL9tTGm X2I>j%U Jfe4n`_P̨XpN8+l=*5oN :6+07'c/"f}KgBqTBBxFf^LUX n qm~dp$WhT'D.m&u@M+xGz|؄5J$O[C\x-lBG.?H1}5ީZB!U !#Z6"(6Wq82G$GJ$̛r2'7FF-!N_j '_6mɬQᆬrUQFQl-&QBf4fU񢀥kY'p'B\0IDϜM/6~RtTPdMpEJJD )t ekƅrU>/Eg(!FƊp EG O`1QPN NNйty`UMMtXNfԅ?zcł_E! EU!@TW*$" @#PdB`;^2K 'H81%H͎B(VxNq is*&MΤ_ UA_̴c֚nDYD # TCO' I R #>.`Tdm]>U+AkҋtϦJm]ڵMm`ābx sr@"%Kdw|%)[V}A O>*@\2A%Š"&NJQ42#HP)DM+hɢY P@Qq'_bǎL$pA8H-eI@("HD#p %Tͭ0#A:#̜1#tHB;CQECIPI =FвQFCɴPb(O]+ HЊ $HU!P bȤ,R"VZQB '&.hjFTQhUZUv¶Zl ,| .)A)qyB*$bpBWْȊ`A=I \ĮNA0B92A3;3,*x$LL +!-{97S`96pGr7m#n8Hnn:v:9( F擏k`!o?RІ 2-:AUn-op%OeI>2\ru8!2sG5P3Y%#AҥL\r=Q'ۚO0t(+24(#Ձ;gMZ,]HP@LtB+O$6ohOn*_NKƏT@ [UŇ@9&ZJUDGEנ?*x FYϢ-j/T:r!\@aaXk2A U\^BJN\,e,(Da@0QKLb󏭙': e6&6Q)@SԁiG5\uho|# g7 0do! #MGbǑLyElr}? OAsR@Pzý$|UJO~Rlj#0 eb&?S c$f},0QKJ0D*3)!uFZ5aw#jPA0Eb}N{؄]Pk~s&zhYB(# ZdzC'|6?Zj&nW< cS"H*8T%* S2tI^h0$"*zp! Ϛ.@|A%!D,l y|IM."azI_'<թw| `X% f.A `ot 7\&~mAv8= Vđ#'e'ad:Iœe Q@c&K~> $G:݆٣SCd s??UĩNHVIuv˜dgV2#sSR0M@*mHC }**}PBQ=4|V挢'-#<ˣE_TVO|M>[5佀ލM!jK*@&c)2,ʘ=B²,:$(QA!R բjUAiiK2Yeֵ.tNr@OP] l]>azNKX0h&+#$q)SYi[܈&ٱ[3lmo|ǐ-r GfۑM;x2Ƀtbi`7'7tR.'*U{,BK@7R#y p1AE|_xbZkMp?Ng:#$&O{7,)I l9MBsgGӈqШxBkyݣaЄ'x#M/>1yל>%.<҅& RڰW%+Y/r =HlwBqӄ:wٰMaq -8h9NpyAf{v+'[gr1b 08乴:)#mPlk?dJk\ E˲I HPB hEX2B"<, t@` j"*^$$A|AG!<0?G_JR,=eFI~jg|FpK MT% P !qd'ʬ@U~?@-  ,IOKO.&B4#n R6%" O8o*H*D(ZZLoeE]\)nAd[),^,E$e`̮Bդ9F00c 턌@U>%~䴣 /ql˓ 3 Q f@< h1@m. C  @3 Pkxs ҂hvDQ6: %Ȣ̄48Y5Y!:[":U2HjS&ʣ<#1$iL/if`c6?6b&M auM2 tA3h !r 1$ 0 i!%cDCDFiݺT-.R#!KZ/%< Po&e&!ST<s05ӉR6e%E pP3@Aa0 `,rLPr`&n_hlW钼PKԌTQ$9H骨J`|*[G)N$%64-c]+]ctCc:,<]5:f f#h&>݁5<@a{F hhk8&@4,TҐ %BO"wSt`\b8d:b.õFkt>!G"TFGnrV"FH[0:t"ltuMM\ e$Pыm@b@6gnT@0H^ɬ; /CC`լ&܍1K&FANs R=-f]p* Gs4ӇPsjx-Ȃ򘗂*(YMy*WWwSEXxV>E~5S%Q\iVf"MTjfƗU6}5f}`vwF6aC`7X %4cٞ)C=4@9DSVsZe!`k 7SӠ C: ݲ$0 >pFsm,PVGHYq(B[|XWo#{zk؉{[u$(N_GGl-*r$ " n/U BNF4 `&<5IqF%՜#Q͍kA»JIU& /RmR-u3bqZCT|Xu'~PK?<& l7(j[KV;[uWwk_I%Ihᇘ4e*S'|fl҆{u#<W:<:j>oRs׵rF~CgNN  xB!14 C ˳ o9f& FFa oo:Cs0\kL@h!*颁b`zpBZڊ%KHZ0]7B6'Z'y:,OGVLP2햭yFL܌BK@Yv&=5D Hx0)RȮ<aCˠ/iRW s?W.p  8/* 4Ir! $&tCjYvT,*[OE% %%~G+h\&EpRn,7ʣQYj6KծR4wc]k6jg@wFaQyכۻ8 ]B;ށCm ?& o9|nf`-dO@ |1Sr 0hhDāE"V|z7ا)*rk{H2$H@`I$H8a:? ^a$eleaA`##b((18h} 9&GW 9}هF v]'}H)eVAH 9唋(? (c?~jfqn^zC&d?jqB78p Vz7c馝ZhJ ۪&'`Eq?!at7%ht&!H#MGJbfԉ|GrKS{ N9OܢQQU?2]D1%/#B#D/WE?-pZ81\tEGQ\H4|D`a @J5~ ."CJ&&^z ):ZT0EJy" T-)Si*TjUfA8Vٱ4$B5$B(YɐXI#u8@Kfч2Pnr! ]_dL1쉔JUp!&\ . d8F5.{HPbqkX!RLdEdip˔'RKZ̖_q1:\j.MIN#iѷ@oRiGRfߘ忟O2 xU"&0J9qZ#!@>39ҟ*i&Yn] |5zWܛ+ukJ.NLKי2;LŞ>ldm[rՖ}\.2!oYl$*N$~%" Y}lPUTJ]K*J^L*Hb@p^$^$aB4Kv3L3R"&N"e13sqZA7CBc\>QƒfOUcWt0Ww}RRreRBt@s)E5)9ef2SwS2uKHuxB1F+AAMqL?3}9 A8jVryAC$1s*694.jW5!.51Y0YN$k7f!|e9EXPv\0P0Zsl73s[~a[|l"s1&2l7x}(3%! mt{i` ~*1`pvwQH_p 6u p g*x^ h$'aF`GL6$M&iiA&r07su}E`A郐m/3nƔF+(%A$'h uYG 1re@"0\_wE=aQ&'w(&%wR{wffEUfn)fH@҈^|vy2yOtBHwlAsYI2C_-SO&qt-/P.'.QYYR#|-yyɈa "Xir)l4@ G}lYlE}vlܸ6i!4X/`U`F=G"We` Qq&LKZCJLOcp\3ua@p9S*U׹qͲ%ђ&HL4b3#1*2:+*Q6nVA飸U( Gɔ%G:%+QۑPs""usrtr _ '"3"# ,F&k'n+vp([e*e(0R(:iTf;f())~) x*]2]BA A5KW<B33\7-ՒPE3$G0jT$9N4ry 2ĺiqܴM1"Չ[y3AiZ}qޚ+˃ 3C!7iqTbIU"HH 0gcCo$qLJ^u@T;*j@ T w8@/䪕(ZLE9nHW!Dg12)8B291I~VQ\Ņ$3F~#Vb(gH X!!"N+RS,`7&q)>lrpr>(mewdS()qx)g*:*B@*@d]PtcLBCT8JyNy0zџӷ&T!y/G1D |a:ɂ(0"ətTl8(BB5:AGq[CI2QEI4Ń q--!AA%OT's!KQA_ՀIhcu`pp S9E EȝQLUȖc+K:G1s6+s GciAWA,/N"룂 Mٔ!a%%-O J;v$VBS bZ[k! ZYԃd Q(RU'15ExS;eHu*"UTgg*xo̡Vj_R-NU]etibqV-\[Ȥ3H3)jA!3TdMk":Q/wSbAW6;9ȝYDV`[DS*DnU  /U[I14{4L"oe6 @gJsrhCWtwҼm?ꣻ֍pd#c:4q1B1hHEnGR%F©;w\ uӥ/RB!]աvceoyvnd5pyUxe("tȃ* yȰ}m*@yFWv%Vɑyqeɐ\ʥnN:2Σf3Z1E:kF0rF<Խ;1B78n#X`^̵ "9ANE`$d>nn,RsRq+ǛpdxKe*K d׃|I_t˨]瑆%sNLb%zC+%_"r(c`(Ĭ\pT,1= M{cT7L~c&fAi>=mQ K {24_]aޛ'S)]4,y|g41ÁN#GKo:_SrS~=pʑ[EFҸ<%%iVP[4.Ft+Qa#,ZߢEW?UXʄBc$D*HNB9Aɒe2*G32T0 `=M*8i5Q)DudrčCYeb2I`;7t_M=I& (5EP *VaߞsP5(Z߆C*LsHJ L4' XP @ pCC1DFT0K4`Bp˰0a*tτ4!@3"Ap@(kJa 0"=(S %AsM& 4,3"ĈJ :d3,#;b=ND'"rE#:-DDNHN5*qK$X EPB#ÉvU$FV&:2HI90t**~aZhMāobq+ ˬv:cyKK߱R-Q Ch CQS:S?Sx44>a"2bL bHɥ\B!ғexM gGO (Mo<=$ЈCgO +@ "O pP >ٖF(2%HI4ĽIŤ8;3ˆ ?k"@u4H'˚&D2@crrKREu [ 5G ,ZK_47@#WxՊ"8"t^z8MdT"K;EF1`_$N=VQiޔh#J#7HzUFV: Orh)@w0  \B])}tJK]| Uh `-pWޢ. &QKAv qT( fNe! OfIʼ-{Mg8YQ#OIvL< Xy@<9sGLAPF ? :#B@B|d4(C42>FLJCM<*H0!F0 Ba::׹K O %s pPضʓtHP%""&N]p˿HGTPB$ M,Dj$IQ"oyd:rm(sУ0o%fTNm[^vnc9yAJzX0OTVAj$^ %L}(<zCQXW$FzZ5Y |)G7b?VPbH 7(KZ`ؖKk1K``x`W\e}!:ֽMDDt_G*ULAhO$.F{&e&abͻ?wL8ӛ@Uig,ՐKIdLOdn ZLۀ:li?I dB܋NB#rydqO% Alb\/}ɣ G,tI`}S `~)XkJ&~y Fq jҔ=M(`~VZ:ϊ qsۡu׍k3艆qDZ ٶ⪽a;:@`P9ސ9$1Pfəfco{ t l 8%;²2h3ú!².®+ %#×\R(É1"#2 #xܣ=3ؘ X<:+ʳ?r4癈{pǐUy 5@H|3MlUAQ/Lr'R{ 1$$jS* Z䳑S%Q>V"73>8EPelDWRcm &y%)-bb:-ԉb ,q{FlFs?ɹ; GSBĻ8 qJA,4._WRJ0_P P:҃$AՎ E3QXa-%.ѩb* Y""M.Cu2:z*&3RdR\ײC; "b! +X ICx 8 ހ@z3[۹ءDR&$ޚ,ˬHZ4T#34Y/eT0\O=xܬ[4Y|._LO_l1qw2= i5<ɧhIc@+hps$=/l)ْ4^rĿyzzTs@|q@VP?(> lf__UI}Lh&Yѧ`-*zYmJ+`MQ!R `*.##R>;}^ʄA6a?(b[˚G5R틹95)*f45 pk֢8",ÁRVŽBꅲ$[;zc @9- t\]%@~+z =U8$kQe@9qqL~Rlpkq!ych GzscvZ95@*`^4AEk+m%c91Q{;+C؆$p$_ƻ$xfzf~8 ɼX U ;v٢:X$=`pn1Qx f53&4ۥp{] k'2KY@;f#Җέz,kL-YSrQ aS"A]cr-nCĎ>ΐ؋=bb=6QƧj ?@!/lAP++G'2,rr;(sX2Lq(NNM g;S߻<"퉠(:o;;Sߣ޻rs^%KQ; #ԪX`LT:#\f_%&vR ɢh\=_|!p a!h$0 9@G4!F(>[O;)[Ue'B#CfprS$` OeFmĜ@ QQD qUE"q`"r / o,D!AOH(|Lȫ1+$hȄABz5/ *HV'y&p4 sm@/r :'rpvbb=mg6٣V:8#@7|L3DnD%+q!!ښ'vfg.}#l3n"* IT Mr#Yg!ۆ="D~~Gጻ4ɬ??&arA,p3cu@4A%J<(bE4il`ÿ 4ؘ+Cّ$'+s2 TPDX B y0 x3"ЎN#YY9fG%w9=9摎B1]u-}t{ZA^rSU4R/ͦt*0qTmh%UAY )A!jmVF !][q_DTRԃ Xj@Քi'⟈=V'ܖXxKY `$bWPB%H@WP ,8jT0 [V B_# 0(A4&$"Z ؐ'3iHlb6pl#!HIz&DxrE{u~ӳ5QyTy5k:Tem|sEmO$! Q%񠚸 2)\*MW)iJ.*A~@tx#mO #+)BCғXWLcrQ bGRSݎ;d4(-*R#L!~מʞjlmO&qkw f,["4H-(tԑ/9)FK:NKŨJr5yi!$EP2dM2bGr(tOg<ۙoF-MScuRδQI$S}ੁ"gӉNHtUN!B& )`I6z%8ѨmHd(>%*eѷ>42b" (AP0XL<`: Vưf;ÖZĠMmXS6pج4PvҠ,f>FǜJ%JKypCڛ3o3INVADgY+S]YVL(3+o׬pNYdTzc0k!+q6ԠN6jV{Ջ-F!dT*CEvV#6. ].almr˜R1 lFnv\Yln؜`eN5 :=o M!BΦNz cM \v4Ϟ$GD@ zOc4AO8BThYG%hcϷtĴ ʩJPBJTnf\I}ѝ G"ɀ l,a4C :yф$:yEĉHƟ??2]<D``uU]4DCD!t@Qcƃ̄L=\B_)C͜lOY䥓  :i =f"t||ЉPZzpڞ'jq Abz^"D0H*M͒䈕椟62. mre`=`C 0FəDpؙ5J[z *G @,ĺo0 .r dA$m ʥNДZ^P:3fDj^h(Xpc37Yoڅ/D[ډY: ?)=K<'p6#\LDK7c\#)ipYSmLchpZN,r I[H_u-uMOgq EB֡04a"kb0oH0)[m*2nu_-#X'nUgUޜ}lhlfZƭ_Ǹf4uKTO:E;v7pwc@G@$@/{KVXI1u<|#:IIΣ~S<#sjqΪEgrxjϙʟ~ѐZZ;A7i9Dp -OܸAȐ@DJLC%̗)e4ѲTx6hϞ97 (:4K@ʿJ7L (I;JS}Y*&Xd˒/uPyK\ߗae2f0ӛ0 -7<11瓟 nRwe&8\ٰEq}DqrGF_Q<A'"#E;R=ZıKk@:R{jӦ׿vԠW:u4ib ֫B +XhI 3 T«1,6 (1uFDJ)#BmFҀjLCLj4Xj44GbQJ`: ጇ .1%ˎ:ʹ**2"$SOSO> j 2h!; 2h#"UE%hI+4ѓSI몼\v)ա$k)z*$BD9 Z::@뱽RZ1b,1% 1mziT}3^`i`7~a%P#vs-7g^s5P8׌ظ#t8$(0F>(>;((;Yvt.?nz+*i5+|P~кh'é( +QCqWR1Sw b%ʈˆo{Fx1o#{ǥTB PʘN)Q7 ˫nxs6?2Q<#: 5h"8TQ@|hBͼ%%ؕ7^=7H /hJ&yoTw"GBDAvT ĤlE&J2kfŤq7[z-Hh(%H(w%` q :еsR(!v#@TBQ9bZ$-#ԠD; Sݣ0(y&պ=o T:YLz;MBG|#!3-U9!6p4k~4TR$` "$d ^U052lyK.VQ޽^–|3BLGstC 0 _STNDža <Y5DX#PIHeT+BH"PNƍ>F Q|XqnTmBALMNsIF ~ Oe"NAF} Ib@vKf#]JX,/'&.)NpS7LPqҢL ~R '*Δ5 uF]31F(e!KF| LUD"y^HNmD$)[>X3$ U`BXR@ߗ>A}JC*K(RSZ*{JqJ /5`N%yUXW9H ,ʬ‡B( r :G]D`z  @fb"P+epny?# <~ j_4A MP] `V&tѦ4E7)Hxd&%1j#,vr hI-j/iLR7"e&jwbn3@vMV {TZNW"v5#'DAyA)MLkHEBbsTy“ uɤ \?DeG ֎R`o@EFozb/zhG=R&vWsE J׵0\9&HS^O&:J +Tka v\!YcRj 4& Ȅ2(Z&30'fbԯ2L?^X! @(<vf0VmSsP6o@QTZ8biBZ\h8"rFDT^ [+E)Qoʽ#` ]vɼ;Q3}R@v!"Dyz3]3{-loswU;mj!.5Ϋ[ɧwƤ3'X|eXt`F|)WҠ)XB'8,8NZV<㲅D'TT".00<[(pm l:P;B (̊  ", "< Ψ nŽiHg(f`x~ (*Ъ 2ɱfaF "*fm<#UD:Oӎd>KIv$B*Jг"ZMoXIJ$ք+-4RЫpg hO ؈n/ضGQdDfg۠KQ !BI (~؂>{%oHb,6!  "jg/1.ǝ] 1]" N$.02J51BFML膬jke0@\#0ģbCfTeeրh, (h` gZDLu ! hqp *tiN1Rz"ƆRq'+ FClf"B@]%< Ve |be}נ ZgΨah 0!Av<7"jdtAH$փC i¶o*zHJ R-6J9W6o..@`[IdH&NQOnON 6v kǶLVumlj*l!R3eUPNMO Otp!QWMp%q6=,R+t"}n))~B+r%QNe,'t_^zvK/zl BQ"@L(D.[ = `67,8 Ʊ6"c*0! `%]{l&&! ֚7@x*l˺%(jF?gl*Ĉ9n'"KdAA* Hn+:Og~j)`)'J+L82:GaIv/#qr01dtx1i8l#1D1i!*礋Ժo3zX]Ooop`BmY93w6+ՕC%L`x3-EBx6W/( xe+8!b^˵ @3Wo Y-w &p(#o70\,2,DY蓡űzHAܡ@xyUԌBvM줵ݼݪG ꘕ!;-oݓu y&[9d=aĜy]S;~sa h֠i஫%l<%]sЬ 9HЬnuؐhcoF?k~vDvE!M_K!ub!q=J&KM0J+jԋ!O2wjlijk`3}uml3+Áo]]" o~ 6҂?#Z0L%<>Pif8:$0"`F+ݢcU(WÜYg(x7/ETFlPd! ~5}k{(" #aόi'Oc 4($ X@fs`f K {*CpE+99F4FTSmK])KEtB#gS>KI"޴۝8o%\ߣo0`2oE*HƓXZGbj|:ӭ1؟*VUtg}SA2Q ȗ 'bM€ Ӂ*9P~A@PԠBxNXbBL(߄ ދ-Hb0h.FX(??#@!6!F+B?5eG S,D=@BBau TPZpV$Sf&TU`%Y` uPG$PTc HZl PJ%T&'(PK;}SA PsI-|QahnFBF!mYZs%yWzM^\q]S3 @XXckYg!`nSEpsEmH`O1mIqfD'wHW0of&rܝ9PwwTqx1@y%~GFdW"e>$)pZg}? xG O",Vx!5KbM=KJK*M&4dBGH!FAw4F2*vL$&R¸%i `Y6J?ORBě lVD @z^HtoE.d):ozࠟҔ%LҀ]ZIsF(`YN&rOZ~B3 aDzϴxXBBVB>Yс0zEb 0>v`^exxӜ@ᄛ;!6:PCCP9g g4`bNǎ Q{78AnDP ~EPa! ?ПU#ƴ j(4(DjuFMojc776mBGz7[z4$hp KJ'R!@#ӘHC9mQ  :@ HI?P'u}@y"=*@#_ P< Bs(D%uP@5+S Ss >S aUTPtbnLemxDB `K;IB>-02B"me~/rh/EZˆE+jtˣQXCp\dEʅG4AJt :ּ&!aQ3%!)OuL9؀L„(3*aDLrh@V/p 1KK$iELzEf+d iMiKSҒR E>FFoucڏF{?@|B #MB !gL܂ҩQ6a IFHA9Ņ 0rL(IzI\+2^ъF 9f*L2.bC ޕBdҖZrR#P]JzًGDtd"(fFǖt2臟1aCr+tآֱtl0G&5fFT_6 0):8T嶳T5:&nS0\58ϴTbtD(#geOwG %P4>og_2A;UHq? @2)QBm&'I/"#ǯUkk<$dt^gF9捑둑"Zm ׳$irA:a?IJRɕ@b@BJZ1 xcR&X;Ęz䳻a4T*3TPJl |x'Orr43N9׌q Sqapa kh>\bEsيX>O̫?HCӆyyv,Lk0&P!; <ٙoFx&qEv5U:IZ g,%`7 >IDdטַ @rk J&x!N[&-$q݄ $ QfORLȵ X@, jcȓITm ~,8 =e*3 %wpM &`u&gJBAƤ*Mu> H->]Oq>-es{abwas'PS12O5V1'-u,CkS1acۆ5^qd JgrL!e_1e& HtgC `CsfA$g+'N>CM EL%R d0DH5Y86~4Zf"4Tc"}5ztzYE7#B5Ht65PkknZ4[8I5|S\ @)4 R.RnQPrC, @1Gv2 S!tb3QQǒQ-1hk!Kr bS/7uDAypdNb&Oui21dv1;VJYgqry4!h/SzɈ6Y"}7ljsG$fyrzi'!{Zwk٧:\/ 脇pHM m= |@ ja9]E]ioU c| ou'9ЙOQ1=v.~tT=SAby+.P*>:z@=DK%,jn-!-;hӒ?Os,3Vrc9A5u9U,Uzf2g4v@BUdXcEYD|q% LtVдE\UwuF\6KIJx~S$VyG[5s$,rZxD"z$꧄zw#Z~P76}&`Am ,imEKLg'n #OL߸LfϪ]1 o@ȍ̺@ :U-s- \b iP!8>,rlKe+>$( :o/+<P0 咓DS/`r%qgi7va. Tw<{h\V; W"1u)y'EC 2y'yL2zY622"<6jD⦯VEĬ"ocx vCZpky6HTH{TP\{¨uťp\c‚ǣRb~/bnC =~ꢺ\?S}oa=V>@+mh1v, ya%,5RȮ#5Ry$x b˻2_A)7-*Q{?0`"L5Y/)6)$ 16wqu`wzg91W{7<ܲMKgMw3s;o TeJ r(Ó6x9"i$#FF"§NܘCޅY6X 6vQҨZ k{kDR7vM:M9)n9u@+>ǁy.DTA:H>҄'!K+'NPx=!`=9ȃ~~d*-gَiع=뒢|2!9d"sq!6@ L$;DTSK85uSK2_QqwvG9awl {g]qg`?ڕtוR5ѴN+Jҥ(33 m("m51R5l$Z?|iGdXkޤGZ[i/H^nҦk\n]ԗC" a#Ha꩔~cnڳ߃ 19džLﳂᒉ)=Kd9|չ^219āI>>QȢ>&8{@%G+cm">K'"9c/ Ƞ. Dzy{c5j%Z/dQ79E%(x7UBC2{QZe^up|r) =ۥM[4 QZlOyPKz5{!rXV+Jl#~4#=,k] #8$7 ն0"k#I}JZA)䣃;.M"GK=@̘/魋T_'ڕ]iKȜH|LU;Ⱥ1CG䋡"-o#u^ oK#u;J-=!Aiţ`\׋UAV c+b+~]ϒ6Q`W@D r ;&,voR?K-&RӪTJe3s)T:P{\ ݋rB_`Z!81br#Yr䋕-pjP4+ p@hw5ע>͠1mZ[n]Ф}//e꿫lRpA_EnZ[%nAbhi͇5!Y0D\$ǀ tp"̣:40>C د6D1 L6|QP|1 ? h3 $ HH"8H:b$ g (oJO.-S-'k% 豠:# 6" L/($(zġ=,z]4$- *6MЀ @|" ! SʁKj-2*n ڪzj֭J"N,2ۄ Pq3[-F̳hV6҆A>A\(~s#ׂ3M7IC܂EM1X5M3hp<̡^hQn֫:H#ᗑ֘o1(&o6L+3:K4İM j j/ /5&l:`$yi$9\OYL1G0 -4G{|$%n2JpN0/΄f$[Yt*2^{ZA_|CTՙX0'j(s0Ż r'Mdu`^^Xd*ጷU?K "61VۇNtw]t׽Vw7Wf @0g8aÚa\:m,~$s-8yC! 7"e)kg<]B` YE:23`$eڀd o:#Գ%h@UB'mMmPМfE5F1J9"SqKfm(O[&Fv"DŽ3$S$'q$@t4铖 D7F Lbl* Z@u$%F!ڀ s[NxP?0`ā &suSXjʱM)KVSk[y?W[sè5mF[WE   'a|=6s#X':Y)Oޏ H1 Qx/iLaZNa2$3uΓ+BfGd:F>ÏjGAS Hufwe-Nyʱd>5K)ԍT~,ȥswїg[Չ .4S׿zr4An.!_ D`G)/I&]ʁ@!sR2L /\ zliL/ҫl,&@:|gd/Ʃe(вAbW`IJd~V-A7Pp"z*C$Bj&2kD9mF"R7"but'$mB ҫ_fih%p2AKp뒗 B&˔C=:L}%!2Й^D$NQCZ)CDML \(JL#!GڶlJ"6.hR$( ZAd؁8 ȴ ʲ} Q9\]x:+ZDoFJ:!d셙w]Ce瀿a = <L F)UX&BBa)(&q*`Af H$!1QkVć# qvJF?01Q%Np4u ?"HFEFHF啬 qUJ%E؝4aIpRAJ)5pZB<mkҠJKmS\X'1:z:tCn:TuvmV 2V{Ce  5Ѐޱ R6a 7l&8}Aӂn!k1 -`80c]8+Sh%Q13 0:8h"ѻ!z,'#@Q&j\(q8CB#2c2=J9+!94b$@;A 4!J;IF3i:'KǫNZ%jqb#YEYėa Wkù5X4P M&h 6 W +ˠ [Thٕd YԶZ춺3} 3`sیw r B׈(vw9|I7 ҷEꈞ+@lsqru,{ 8ȺC©3ã˰- 0#iɝ["c ܱ6X:"Q Yʱ.%+"  Q#h h h Hٔ3y˻6 BC('Iq/c4ёIDJ+@ +B:&D X5FAKJ؂ÏG,!8QDOLW ٘Hz'jĤtjq i }EK01{?7vM1dLk(P sn)J)*p'd[YGjWlʐ%p@H숡0ADTήAS*tAK9d,#K2%ĩr*Q:5! ħ:"1qؚ;‘5Ix ӫ>€I5S;J*Q5$@J2J YE3%CtL+:3UGD4EPQ@,q,KTq {%R0ޜp> {-Ęx'zCK t 2pd4FLb7yM0Xƃy F; P/| lqs4Dž[8 Ê *@@yI@&3Ax HKɣ[H+ƺ;Ⓔ)K2Ks;A$2OɴA!# ;uBJ+9Ar>j/ WoC[9PHz$B;<;I$uQ53K4CQSKFlK*F|Q`2=yhw?ȖV/] Ӕ pا#ï/aT7tL Fϐ8@e sP>gCM|TG3UÔĻǩ5lŎf10UbِKy)"ɢI?rPr";Iܛ|1K©W% Y&-Z# b-%Rr+ _MU*0N5HĹYrZKۤd-  LO&kX% Y>c \'8#Ϙutp9:z <TtAr} 薔0K@fy)sJGK}H乂@p^Pa] !-"U¹-8JȺD29 @(A#¹<4 $$R&-VbU"9+9] "C>e]#0TCpu}ly"/E{9є b ?Y`$̓BFԯjTF|{bD˗Y q>ZfǨ0츈^&_JiKմn(Z YzhM)Υ0hЗI4?kJɓoYo]WMڐ!cJVrBvK8n;iVa %jѫ5WCn%QAC񺛜'@J9d %NAwLs%-%QPoFtRkCDDQv-WGCIL`_e.Wbʎ]$fy6Ѿ[PPrq2&a7P?g{j7?7hai֎̈́@ ]8sk{̎^YI[+4L%TOWb%>( eV .@QOP(vCNLoe0";;c𴑣1 q;(Q; q-ӫ,6I!va2jnۇ=q{_c:\;Cm4X- W4[g^VeSEYDYVxW{9X[rY̑_5FՖgA, 9W a"BwG Cw \lƍGܨ((r%I'ZT)bF9cܴZspDAܸĿ=MT`&Xe5R+bRţ Ц? t1$X=ba Y@;&jm8FZ [ J 9 ZYZHVcQAc@bDpb($ `) UH@].傑;]W  0 )_aC?݉biNд79iwf$K0shi#ԊM}C,Ũ6j&֠,K#r'Cj6'J֕ Mx YD*N{\J^d$Ie#;ɢN:IJ>˭d#*CfM PJ1mKXY\ъ43,eiՊ1YZc@%Uum2v -r!lT"~jYVƘT5\ R(ƃ gjO~Dq8:qg&ąY :u($YbThT"[tpH;JZe$cCe_+jQK_:ĤզKBI1,pZBvRD5 Z3# 6YmC>[W8$AkIu9 9(H )WvS# HDb>&ېĝ.RZ%JBVq K)lj" `QD 2&@V)RbZUAŵ2Lo,֏ɸBsْ\LG%i1b `sD͆Y*,QmKq3a#fɞÛt`-":cw"l3K(MOI6>vc.ܘ =f _u5/i6]l4Qr@{yr+F\ۃE8j6Fl Y,_- \p%HJ7cmQqH@er|*$!3c yVQusF2f|*۩F2PW}*@M:4[ز7h`:M* '`L= qbY:RLD?ܭ, @u>$nv.H$ (|bHtw ޥ}ɱ+z$b~Jn!wquiH%MW~D̺ښpЗ,/q Q%bƉ, (eb9af.~F,]\XƋl)*[8y*z]IDU ܢIivML.lI0!HL7U J&:|cL,RHbcp>='=O0LDAÄ O,Nu. RHfqߎD*"nCqFHd`g aGG1L$lQ~&h;9CMǤ(ayS#OE ;"{ql](@: srAڸ!2R*{庖Z2[ao2LQob2^1YaN/lȈmPSF4X:0^TkOV}iZ#*c֪0 g= 7@g0c2A`AkJ+ gOHtu &(w2Fq@y7ITFD"$zCqAH~$PAtrS q}47fLtI,b lSaުtD][zGDG2,*Mya\'y%pGk2r8nݵ|HbK{-'`#3/I8oxȇL9+l3Xi U4MpQ5]d6rM>Zk#g,20婢a%BDDv.R'oB>ϙ;-̣ClctBMJ-/` @Ԉޠ:z[t|_'dvuj4GdL}D%N\|$G7IG.-EkR9W)k@RQvM芜WɜW7%$;lM]^",u말[; Ƿ%RXG*w ~Hq@FbQ8F)iw5y[4`:quWp3Ve|f9{ g W:[#LD#Go3^1 DJcR<.wC@ #N ܄M9dB{WⒷ?ˉI:˧`$v7qL}tq!ɘ1}=MxZ{m{>M"" y[!!Dz"6!K]kťZ"FWXOFPq%G)ݘ˺,&6|b/Ņ1|`讕J4m .H`)(@6s3Ӽ9)6_&)mML:@W@0*:8 ~ bō(0Y?wy@ FU`p_Xdrѩb5>2T NCj ٶb? *e0o_b &? p8 LGA:S,/6&)@+1 Œ rAqA M +nl&x1j 2 H!FSzQ'J4j)-2ʛZ!s3G( i Ńr+8r:My2J+ RJ 8-r-I24I[ړӶ2ȩN+-H74U{4ձk 0R*u:k1ŀL͖[W"06<4"(#'"I4b6kϧoc3+ 1ƪs9tWw殣΀*[<"~u+`L;o"?-4P10A7TŽ?ӯ+?a.Řf $Ŝp etƚpǢ{ D4EH!ldrGkzRJH  :,!Cj4VJI; +-,EI%NmӬZ+rksT3̓25-ϳ"=RD ,l8=4ĭYYӄ2n7/۞8V.l=^},<+6_nwy>O~:$O(2r0/ 86UQH`>`/O&"":E.(~% GWQM~Ĥ!-MIKk‘FPMGMI~  ]&Li Ҧ;=#J8hoY 3dG9 =m1qGaU(T1*8"U]b[%(UZcAqnSFˆFQ.|T2\{ď+$2׫{`Ile!sY3 us-+S ~!6E"@^$N2(ȟXr  fYf$J* $*iKaAk i5BxĤ J29AĂl m YƑ r^daR,ޠҨ(z 3og4@cRL%%2X.9C|<ȡl.ZrM0 R_a@*TR3|h>ޕ&xj #0sQ7x8r+Bz 'oӻEY{j|RM&\6&#{bpj6/Vw, BNn$M-h\v,#J u%8is:iszc 9ME.b:0P:&OS%ux)vV5J:IyIkђWxrHS,mFJ2(MqN;a;B<\ oZ߻ĚڀexPv k?` ۃDaA ~YVYf8V'4flDޘ&NY@)@I :LF AndH5D*CP/_-'En K)OU1YߘG’ m;2O=SWV)Kb(CƥtO]oR{)B U)SV9[Io{Uq3Im'?oȢ$m\3]1N6(L;O u3ͅnlA/}cЈ. 6X єiDP}5fC;cL:Qv}>! PT4&(Nj!hLӵ ћʰj8};o70N IQ0 uq+xʊRV8tXQUeonIe8XߦRJVh߅Bҧ.+.Wؖ\jٱVs- 8(M"Jʫ|xxP=ᚍe{^FWy/=#;"w/[;~I8О$P~`  b>|?ԉz6@@$H)@\nズ [G"#y1HPApFgEilG+jf`GJiGLo&o $m\֚b)Pb)TM*T/rj. "R/B^HRrN+NGsHCOLH+HcLo+8$/ 0C0d#O3he(>Ɏ3ό2pi4be*m\f*ZΦlozgx@'p;@7 $pAPaާ ~.IcddmI#g:.e`  ú&!›D1Er&d *\`H䆪F /& $j+"uD jdpMd8B8Pc % Þڰ*$eX& 'uh&B8ǫ'72%2vsX.*b0S$ 魚ǜJ,TMO"szgwZ{Ш'I#`RuduBC/'9e4fg8Z#<"} \e-`ʢe:=0K}҇ <~ f\*)1vgNe̥:fDVM D^k1(Fv,k3Dp0@H0`-f$82H$J&֫ /phGƢ0;tM38 OJ5l) 00l=p%fS,%QMR*Ps2,TeNŭ2T$sOVx))*ͪpW D.[U>3Dp D{n*6\6ŒLpVO4 Zzԗxτ02wQ͠'I H9yR+ I|p5[K12$3#>d`'&d3;DfN(֖dl#1r vmiPQdG,RjIHZ*NzF2\ {R"q%)0L) qR@bɏL rl*UAWST^O+u/.@*ujRި/-Sr^1(^8˒'Tԕ]k8W8^ov>ڒ:n)lg(Q֯57a6 'X"3XڇѤ) i@AtB,vHF8dJ5pf H6űCN;F?20icf@>f'V$&fG0bH`h"nĜ ,bH&) ,38z?vNYhnO)ܠ='Spm rZ#ڪ/@0jP*%1/%{ڕHߵY});B34Ql͚ʏIHM_*`opRYe43CL

fhMe.7/͘ChX3l2})fjOQ0Fz8@h" QABiiIR!u"0<¤Sȍ6BZnO UsrU(,@RXs <'X#omU%*Zb*o:X*O*wLLqtU+qRQ2([bHWg-BYzrOw0`I/V166tgK4xU_{y5,yx2 Fc`zj=t_26B b陼 ,5+Me5(M8Q-@"[f8."^cd0Six-jPPm(/BiqUS=ˍlQulL؄HȖ>+J[% Kl,ZAOtrjr0tZ)) t>WD[*J[R+!Z83upvw-}yf bTQ H{jxBN 3/gaDkz6`*P4:|4)ؗy1Ȯ#H}yBNDfɃQTAJ"$ rQj!$#S"jjk;#cs,qZ5U3*"lSjT'1>q*R,*pRXxo&.,HWb\S^'L=Eӭl&\q4s\G[ gw(NTZQXtGyW\vlEgI_pj|zry)c9vM`{Jc ȷTp@4Yd1l:nk2.)LٺZ fF uZĬ:m(&2Ri;kb;% #dq<&mE%,.,"%*&V2Ѱle| {OSnȉ-,A1s2[V(RQ%V0.J]l^-keC4љ%zǪ,ugip4j.Z< [w8Z`{wx{ɫpyQp~'L]nC~载_|٥\c?DDvJeS0}ŞfDLdgSu$JBV<|Q6z "kIz-&\*$E/ j&̎{$/k4pe|r{hƳ'y0.1Ģ V&7*h&/QU\meB}'!)*\'uF;^A)t\=}zg}-B` w}>:8pZ5aHdqES]+G|[dX8&K`0M:>_F0ӔSgeMI9iҚ:# >"#j!ٮ+ kR M!Lʉ`X0$J%5jc|,)|Wõ\+E+^QU,[nlYqdE\l)hOqTOҙ}-16n/LrHucTm.KT~)b75۴pp'7ڇ4-W+N~b@ _'xPC R$X E.cA&hҀÕ#!̙4c'9Zl”L @hK& ?-.5U\4է0 ٳ>Y E„ <@߁ e"e7/-4`@n+sK[3C="Ͻ-0hiBFsμrН]v]}M@Ot` @u-aψ.FO0X#XEB#A$@>-B-D -ftdB!`@DRB)5I$M4I$M3ŔCNqyN9~Q&ՔSTiT RFTXeEskVvoaf\zpiIdDgrجov&kH]Y0v5g\l|!hmƙzV]~vpmZse^qYBW{Swo|~7d_x\{εڒZqω!hǘ*>4b.2?;8$BʈI:@BE-1TC tE )AE\bpotIy?j mS5T'O|g-àAZQ܆fULTx{EU-]ziYӦ[ess8fJfhw{Ye]|^tjʥFfnƝkl K{k˦m 얛+|Qد^Goϗ}f w% نa8YYhuV;xK! :C-\Ƣu(ELFAH4ю``Hg8Rd3`$"Qќd'IRBD#PRAD89koZLµ6&dkI''>MP P8DRV &%8 m|Ob,r`.w1}Jؼ.cwf.kzLʿ֋׶T Kbޅw=_t&"%0t1hC"v#ic􏘍4- |gu,Roc8"8)t:3}&@h&#H9Ы]D%ԭnф8O%ODF>Ģw=e,R"S{(oG9ҴԈ3 $0&_Wc',}@$@(1JЂPN+aMٍ aRow}R۞jPVbHF\͛Jf&Sr_Ԋ;Rq C&0^[A:mݹoybK3n<7X̛ 6O<:k:Xũp`Kn~w^箾nM6ǧLI@FO?MO@ڕϋ$fՒdYKr`x{#p#-!C'qg0[A 3pi!43\X7P]'\5)PB$'cs'fgTi7)''e^uCQ{k5+kwe!ll/B89d!.9d0QUaSnBA$sDA|O!BM oA P!P#Ht8'9Q6f^g(5wr^QT4X7zwr(҃'FSdqVmD/neau>#WvJGr{Q%Dn4I"+bjHI#b"V:e{S.C`5q=uEWx8X 5i=Wuq0L9|c5Y}r1 2~9IMAZㄤ%r$#62##:px=r[k``:N[mny#`AOiAOA5֥x'F۸']j7,)祙.$u{3/5Fc-*lta$AP:ʣ2qzv6DRmN񎟙Q([t78?((faaV%1:'y<zUBIQo2+{WBJ>&{S)n[`2~BGSa8e>婞z0 JT~ b=1~+W1 0bxNe; A6Cl9[j`[?}Vhu,rFB\uFEtDb'dQܨFigj]EZX^K~09P'psx8C;?;|Nx9=D~|b^,:ƏHx4;bUn\; 1tT&zˣT!b|$!5CX#>Ca*nڈᇩf套!c US)Zt\;$k@`jdh9J;1[ hkJZz&%OghˀHAT] ]#vLjDP7J0Qů(K|5J!A?ŧv#qZ&4%Oyc"U沗Qb$b0,QLcj"s1͙;mCwE<)#9LGNQ3a"L$9a<-do9ýTť"K&UU&qF^J:IdHK1۫ [!"dS0 e)rr\lZ$c|;`C= ̬wIݫlHm ܡp#F'.``C%&PhvLjzmpjJFXA诈 V/ń=+Q- ]N'QtM9jAuՀ|ˁ&ݺ[OC5',D?c=DxgǍ.?a_jIռR3w?VOdoA>BKJFlG?B( "?ov$GBlnpKIsH#ЂG R!wΑ$F"Q\hFmT,H՚Tpa+=ڷ!>qYs B!ZG4\R3c*$>ߴe3xݫLԄԵ\*>A hQ&M&j$MP(\֝f'+vLDd|Ӹ8w5Й(4\^׳X\Cl\8˖شW+=O2'*#aA yIx2O%cRZV.dzyKU9t/`٩Yd91HS2YYTy,|g*M vKM*sFW]q[t]#b$%!>'e=#]QϤ{ 6u͙Tj  $H!ÃDDH ȑ">v,1Ht>P)L:6hCČV61az1E H8HhDrMɱՃ'`h@=5 %Î i:<өwA=;4_r[aEHC숶!O p1$0asE=3̔,$ N md[xȂK0t[o8 WmV[Yz􏺋ڵ]pX6T~R^yma sRŇ?N3߿8!! r0A?rA'B)JP+ JSlRIT0"hJJBH8+ `4x򬠜 biKrm7~ n _-.8zvݤsA;ȶ2;j!*w&@]v$toc@|L #RP51A=DJ4kYim (t0wN1䔓"8J%|!jH+lQ+oOQT;DbEfbW%ME#M nj'"b1LZ(Rn,Tt+"R_. 4|m4\{(ڨGr=vMX+6YΗYaus6;jʻ# <3w*P^]zCWa # ?If(ѠZ.="H$Oskɮlj&}ֲ*։iȆhDs?dfAADC]$nڥlF|;A *f=/tȢF6Kn+$"ZA8#/ɪ|8przT^S6Nέ|:+t\ XЪRǭjYγp+6znWH=Gu`??u}C=DHsށ 0E${A S7--jRF > f#/DYCR`1E$0 Zkr?0EiG]SbGr*]$A"cS!Hf{Ѧ6o򅕐baRSYECR*!k4()>'z85h\JY!IVAtŎZ `6ʨ31vOD/yNx3 -OC8DMoa$$ɲ$*D4d; Âa$d!UX &GSP\"\"yPh(pd[$M!0JnUK·Pd!e S( X Ms\K3'Ugk8XVJMB\Yn"PtήHE>n[I"ӱ> ʉ nP Ox.NG?zL #j X H~N #rk+K22f,XU$/%ǐģ'~H La˅f1ʌ&&Vk ?N69d$4wWzSmf7ι]2Q6S1dRZ<ӳY=V,!x-i(ݘ]DpP0識C'KFQ1zrQ9P ɢ*0TAX| Y(Zc f8Uw$,lҤE-%* H~hJSi2N֘R3,D$@Uv!&8+Y AI("SdL~ߧO!\52E,0X1!a$5'͐ʜ e.u';<rsmE@Ogr*몫?f&Qi|hxG$tuyP/ԆKںY}R&^v2\#5lBm)jG٪EE(џB؊g~IGӲQsr9Y]mआSHdNۧV)XN\+r#z~/vU+{lRT+g9 Mny\Ϲ2H].AyPu+WWF-nI6A,ݻȨ@3ԑS#5)>3/0## ,aY L6 iVh@r qn;piَ $@-Qܾ,A$djj  pF9*/ @P=#( +T%ƙ ,7Ӣ˖\A⾤8>˖;3`9 AID#HL#?OP쿟: SžI5#EZE[E\E]E^E_E` FaFb,Fc ܃+}߇Fm⭋()ڈS`}F[؅/WZBUS ;dTQ\;EX[=ԭM6.MT΃ ԪcaSVeVNeWFUeVeQ5.?-_y@NEHfI_e7 TmUYQ5>5T@ScrfCEfj[~]۸mEmMfEVq;c4ƛO``]y>z\E6rxlUf*c8TX8fYe$ƞe]X\i e{ b/,WL}$k-~3_XT^WΈ$О~RWo؃\=׌hudWd%}ubi[ͤQDE`$ ۈ`~[_&G`V^l&V=X V]VF]x5%cѵeeD@T a-*xdg,EmP-W^ԾV=\$dcUڹyƳ6m%@/n/3V_yZ*P>Ng$gʕ8&iʓeWF5 he#<~X T\ه#֯yK 렖NlI\^xjE/f{ Pvd>6%&.QXU~WMX&M\znQVtfT`!`"ufWjZrXYWs2s3e4a-R=R.*d e}..pؾUbhga"ssce]znަS #7'VmޯhtWPh8\&@GgI/=S ~f/p42u_eb3/a]EVʟ$cg)UׄTu|Ta^_z0Y"dP FNwnR܈w/[xη&" xNCN]ȝ\]^EXؾxx؍V'y/y9>7ywyvQIzLhTjLKVkmlvQmjye5=n_eyC'ڑ'MVy)蛎)MIRѪVewַo{oɵ{{Uofx|i_L jFEz_| 4t^|k}|R}w|QQ}o}QtO}-Yor}/~7~M?N~ mKL~~~~~~Ÿo/?J7OozGfFMtLR-ڸ? ǖxD&$εʇdnLOd` ?2=cX0hYd?q_Q>JU)|dO8EӪpIIpۉf_^ȝ̒j5%-Y黠꺺r^=*6_ENZ[m]9ׅVH7F;1ߜF$R69rG~^YڙsY0$ʈoۤ|ֈ\kwc殅yEkXW[}gyVwT[jJNwspZŭkd3$u^͵DH+/_CuuVªuxNJ~NdjT‡l_٩СӓjYL܆]`[M) `,oWOJj̥¬UkU~E۳zddxáͬˋ܏`{A.9/:G4љw߃MM4^o:)eNS8X4/P0)NFX;x`Optr@k8 =&)rB9klѪMMMSC~~~jjjYYYɟQQ6@/Mwq^]ad *\ȰÇ#JHŋ3jȱǏ CIɍ˗0cʜI͛8sɳϟ@ JѣH*]ʴє)UJJիXjʵׯ`ÊKٳhӪ]˶۷p㶅A?xZW^} 0Æ#^1ǎ#C,2d˘)ky?LzҨONYŖO`msͻ N\l{)'[U}aoK^)f*߷wuVu[-;ݯ˟Ol*^K}ze;3zSW(*VhR c*%Lz*먣jj jq%?!8h:[48+U匳T+7SUD'L7PG-TWM@)汐Ld H򑕜"7yNfLe([X|\x`LfPa?ffP橊A wXx>o42AЅNM4+0C'MgT+t?41 "jRzӧ&uY8d ~uaX:jiZ^Ͽy A@ǁsvgyfGsBGg'Wm'27Z|n&c7ytfh|knF}g'xkg}g}Wv_~'@~TwV R~~}bdxYv}fx}jy8vR1|(uryRqrr1rg'{؁ ؁ׂ'X1tik|FmTy֦7f nWn'&h7kXhUdܷ}7q w6pF~wX{7^|8bhSэSqifVvFi(qHhw|uzHr'ryg*gmrsvsHls؂Qaqp{Yl'tRրmȎt9n +yhyF}=Xvwj8ppgXPUwEowЈW[P)WVaek@j*nEFF|S!Ўqkqٖ/zxyWa7t}8{Js'{U1xYSRq(Gxr Ȁ^qkvn銵qwn`WvhtȄLvfjWog~:oiLٔVQpPp*R'9yGY\GxWiG}WjnFi`fPh=Hh(e)$G"$'YsXæz&ζlPz*8HI$h('ZmkyyS`jVvhx6*xפN(i˩ιSXw[։yGbzYghjz)YgbvɄx:Iq}~jn!uIG* -s/WXl )tZt,P)HlbrOG+%)6u9:?q0h͗?_ɓGjvGxa1YIVwIz_`ܩ)Wɝaڮ`me٨})OeٯIڬDz)isȖumj{y'ZF4ט4gטRgI$8ʉZ)m,[+*Tspr (OGX\ٚl,Ih}Yh@ YSHʓY^QʩLUz a יY]r[' w]vbqlNHJچ9n+n6?:h6ʚFZuD)7utz(wTQlktِ4ZD'G0kXa{{ ڪʑ @6jFfJ{Λ*vgGh?xth*jfZ!Sa՚Tڭg[@uPY^ڥjY e*`FfFP̸,q+9h Y(9WQ,IQ/*W0WZ=m)˻Yqz1[z(xŻt2~ U񼪘LyMf vU*[۬b,U;jph̍k]+[˭zdA 7QةhITQKho|xgLj9 v,yKkh+;pyL*wʂy؆\Q{8w .;T\:>,Gh7~Tqx' ``Lʪ: Q8v+X=Aġ*|-WQVܬQ+ᨽH h޼X[ohiLP¸rea{ Wau;j} L:XymjX`aZq oHtVftYN-.yO-žk͋)) 9–k6kXјW7*aӓIӮD'[<լUlcS0y^STW1b}`e}i*pr , {n}qZJqJܬ<ɤ\h[GFѥ<ܙr"M }*\zBWt=2̪ڂh˚l%'t3ˑCF̞K yHn'N S QqX֭XqLgmlmM{q=s]bLpo*bMVvHTqx< >JM h ᘽ̟l~gs9~l+N9.1㻽,;rJGF^G ԕ]S-}anavIYhNlhd~n]mM{ q $Sa]-g[Di+vn餬l-ՌMf)l+LsL7t구)$i1%0ZbNhgqAtE>䞗(_j6<<ѽR GZ>c>Rw{m^pMߋ׀wmN<0jU=cYD䠜ɮ-.~;`=l;-,>JoKo.󮷑7o}ý4FF R:|n/V`|r/OcNo}~/Nmma߿r ` D|/@6r9@!9ܴ_I*W10fL&Av0/6wvء?EA~ʓY̚6=J2R:?RvWed2ml,쮽KW& Xp߾ EXپK-Wa-f͚r fÚ:U+WTQuUK"TBCÍ Zr3q&./ڽogM <>Cڷ_0a 48>=裲F2ɥN';йB.+80p +Ú*تJed4.@*ᰐLw,#jljD09 /d- 2vs==L#4Us Sd%DAz 'nen8 qS )1") 6.i-@$3m qpYq RH0q3+1Zb ,3]#W,"3eATĞ4pN;P8:ՐTՆc6N(U9.Q@:QE94AJoRj=ԾʡO;?TRUV]\$;k{b>0#J3\,%q ,:[+I 3v&Fl_-2$ 7R2Ţ@Q=U_]ϣe'Yk:{런7\_|\,^FVۼLH,16oK]࢑4 El)̔X)5m>>q}+ݜ~:<%,{NdƐ%#ɨ󒳌e(T^6@*=ij~'yca$$HJƒc؀;"5iARhE l%})K*\kG9wq$.qW4?kqp٢GL.UiA"wp-վ说2~ b²|-tp.V!5n.p$>lVڅQ<xc:P] A?,Ɂ=EO5I^VFA"^ XˊWH~lzKBPHF0DhHЅ`2$6QD/Y%Pv$BA28VK#%<#Xfb-E]MA,fb|xᮈΆwH1"8(UL%$A/sZ2R$q`54(A=Ѻ[BdKHI٤p"1Q.:]z!Tip7RR 2i͂)[ʣ5ac*Kjc,tzXzKn8ũxەdL&%FI2L0RD!ȚՓCl1PY=ZU Zʙ%2Q,Xj淶%ch׿&GFJqKak&Gp;r=‘E`%9ɃN/U‘I[% 0I 0'(,?#?f9SGR01x5M:$^ú^N*-:_9_$짱K˒O$/$4 k ; n63+8q;7-."t!uс(rAɼ3*F.4.Fټ2A;**)*+AA@)+#<+<1 x'D@ ˱1-L090l4{5+/1LH4~ <9 0JX?D󋰢Ib:x$(:iDZ9II`4z4C1\5S1Qd;T@fc;i{1W$ cx <=½_,dA^WY[e ~xԳeʫFT)zhuLTÈ5#ޝb=-pDPP_+v]k_"1IVV1VVN6XO]uMdV0|搐;gSN;j?B\` İƗ:H%0:LXjo- ac6`h5h먎Sllf4Eloo&֚c%]3gUBV&&d]xbFgF.-bGM~( V763ޏG==Mݏ{j6f&5Kѫ&T9B <ޯ\yFx%^_H_]ޑ ׳p \Zjj%VkWRk~:lfowaog݅o>W(j}@s_f]cl;F ^bg(Y/]Xm~m- <eDr1?KJ5Vs7pk=-] F<6i.' V]7&.meb|rwi$r#sV]tqoNTq0ó5,'\ fĪD qy1PPkfZp/PvL\m aŕvĽ'a̍I*pƞqʞo5ttJdZx W\wtϾC#`m.~"ma?n,w_ |&\AGqv]3gZJ_wqtV^h^8 pjxHGZNvw p  „ Lǰ‚Kpb%+V\qF,!r5&WlYk$Ц͛Bfl<-(ҤJ۵ ӣMzUլMYK`ׁGD,Kp,h{Vgn Wݼx E?xQt<0ApGcJLY@"#sA-4_ `ײcUMnQ{DgR>N:bթsU8mDF]W] ^` ?> ?DCZi=Kπ=tA9@9D 1T?uyH!t5b4^zB|5"c|9jg@xTuAIwv^-'WωUB]qhIpuTje=SחmQ^&kfך YdřМu3xf&'dVif& <!: (f*]Tƥ]XBWrX%tιsC^u?#R=d@zk|g|0"JK4BH! RB  e1aV:~zϸm8CKtH*ĻkD"&)L4L3 Alz4ލ;݈N%NUkf+uduSAE\Zv^UU_Rrcz*Y79sA6ta|Imn(ԁ'5Z%W)Z͑=gVE,u:^lMx*_|-al"lІJDߎq}QFy$>{/I2 &_M4+4d_8AԬK6fw7jIYU%}"کie%+Zf\,3Ad_vOxY@ ZY6ZI¡iPdI .q6+l,VӒXc *90֩ cYϫV7( zt䫵vxˉO`hjhp6t:Mk [ܵ" l+[;bpUh KIE@a BRrfnY!׊a; !?:Xt7-,aC!xFMns#vmyd21X cչ XwMidWB7&IofcM%a/gdD)N!`9R~1 q&aiIN9[/H+$Qry$gnq# 8\ oݼzjX°pKINxHZc@z ,='ǭErC CQP +2^XIe Eύ0l'3 m6k';)7dn=fV. ~z\SeYZz%{ÉO/GaD7%gK*WUJ DduA!]K碑AeM0-y|jAc4cȋSh*?m!cYMnJmx6Db%ӑ6b-1aDoKN\EuCWaEEъċS3)Dwb'm["ؖݸgд.tG 4Ld)Y*S);4zBPLoE+[L#:AU~\#Xf˕oZ'eL6%3%0t#i\ӘK &",l"r*1nӚμd&ZJ#jd&k[yq1BNl=&lt¬ [E0!*CWo!xY^b@rQyWF]MH54Q:4n?]btLAl`ybSTK| iEӜ 52$rm$1\V 4X%}kImX|µ\=Y52P㴰cLMdz x)1bco-'I92pZ( bl{c['چl+CrjV̈2(73:{"bw$qőSR;BQ7B+Rzm7f+]<*FxgZ؞"q+\, :c`1_5V biTy*##?V̉WW .LYCL֟$teKՒ$?Lpzݺ-[,4b7ނ\)wycַ'/)G@] )80τOb.b%21!QBXu-Ԋϟs%q3tGZm. UEZmW>O[`NX|ڨ4ۈ]2]]؍}R]jXk &Uщ ҃^f'œ]`DpBcĠ0FkU ZI^Z%F uJڸ] 4`X1؊M_%_5B%ML_ED")CSStYQ04b#Nee@B`H= A-tBqaNJT [a`YWm u!Uym0"D^ !pֽ3pR5^5b! b ^@#ߵ@c8>ݝc@@:< ^YRUUEZD!%r>qū@V`ebebaMl N,خ MG-Y}Ӵ!W)"<@# #> DSDH܁߼?"⿬MYۢ,BZ]eBE .*`a۹]`\NF34b@0`J5Z#B(fM 'A 'ʙ_E_VM\JaN XaM(g[~%BP2aqdتeAf"&`ʦka"l2&e(АcB@cA`&X??*;A < W& aqk2#(%nXBAd(]+Gq%s!Ne8_NMY$_Bd@\$6@{F_Qgz*eRQd&f''rbJ@)FK%MLLKD(6i*cpe"%2Z)题(`B! (,|+Zr+5z#WfRD؝#n*<*j:Fj ʠf)X#iFfr!l6B$J3 ^d|ndnBۯE!riDB@?A<%V $>ͧ{b*fm!U"K\HAImA,jwvL%*r%%v%%kɖ, 2E?B2^XĵJ÷~+޺,,@0ri݃d@igBhfFNbi l:@(.4FZPk*c_2+Ȯmhq+lF8VTY,w?V%M='q@pnja ͖?ϞjS)b2(oJ/毬+)˶Ȳ*cNrV&mqP,Cf0‚.+6n6&gc `&FD nAp@() ip.rB>Wi:iRf 'b,l W6 m&ʭ.-ʞ, EVB"1[)t,;,N/}H<Nұ̓Y'-'b|:A AnEmgU^e@$ܡq%i9U@r#T¯_2pb#aN1 /n.s.{pB0 i#A)F뾺cp0eMd sxrAx0-9S#.rpY\q;b B[=1ۚ?M2)6OoAϬϱJ<$&1U$DhY}o -%=*#bHԦ;nbrV*&K&K/1@?W4 \sGg1BpqAm".Ss8'sso6 kΰ?()  'H4` U*&T/és0]k3,5= .Bv"bG)Os))MLAA4B+}CWCCe$H e|j4 g&l1*kgI^%kLC1gonr1T 0fu2*t)SvvaXxuRR#?|3JqS;5ALS/n[wiZ#e;2#XC35 ? #D3]>7Gs|+T5 n{7An9r1my#Qs}v( wCL'D*qoV"f ofFb!enw0f@1KwC4w#LHwtjv))@q;/Ay"sR:8-7*j3 g~W8B6xo:/xX^)g5 ~_ U[0ڠ˵wvp2:9-!8/5aӳa@7=Gv8QWBGol_rG/@29FmH1>EbP׶l!mzA82g-f@,rA1)#>Qvuc"s>_`.?7A7a#B(CuB(c*&cW?(eT&0Qj/VbULQdb:f&3&i:ʌY#N4FEPCM1qvt6*vS͛/E-zt"LR.B9%ǕI(z4K)k֩ =1억[жnZ/ 8TȜ('QUS?^p Wb~}c۶l @j72p6z5 %!>BͥP iE, JıD'ŧV$ JJb2 ǭ"+(?IR*x*ꮽШ*e+/UT1'K؈` J@|J0P3,2ti#B(\>PBf"xM{ϷsϾ$D4(9|"dAH$h<45U=fL=BVgIQ&J8$pCZ0x+hp=t] p# 3DIܘ8tKL,x-9sE'RFlȊR 2R #p*Hk6 )RI+dhx+i>T37v>i-̈ݟ7VCPCniB1@ie2t6 YݨIE)SPUqm8>uUVmuJ m>. q+۶k|#*j"64G4A~Ciôn%>2U^vRB$D2Yvџiai/H-}IZT2:̉hNZdқ8QT| XQ!9|?$!̞PXNPf/#V@N;Cwa;Rx!Nlm{[n9LlC,I(b|[:7̒vquʖbU6Q,cƸ5n3zA J ykKriW.MaIIf? q#|q0=)R AE"R= FC)ʃw0_1Ⱖe[DZSS5&M,UA/zȒ򮗾=oId.j {݆jA1tP/PUTNff̺Λ3[j;iy $)]WIհf⬭U]Ff"vyr*1o#ـj(wяw說zdUD2 ^F;oK;i\/&(Ƃ7rIDI`M+!M;SJĦg,m!ʉԠ}F0bnx}_ƿ>߼eB- u+K4]ܲ W@ SģM~zQ489w֛)0d LڧU($Ds YH y=eIJ b*]37 4n=h7/X XpZƣw/şp'3_%i}O޶/ 'A_XO4V([`N>*mi.qO "<-l/5m<(on"Im#iVԠ MN 31&4S3s:+r @H305Q(o` U"fMbM-zZbNN0 G|9OIr 3 o3U)5S@hs5s)SS13JU50cbU%̦)G(5ҔR)QU6F{U.&O5X)4XUrXoY+45oI,D=UN4Fk<̔@aoopRYbl7bG]s>=e>1@hW_o4s֘4#<3վ3%W<4TQwIt^>IsU%v(!xsuVQj//8@˖Vcovzm0 YVnv,9oυL怆 a>!?!LEw>MS>aR V gO:{wTKTX Us܄(7HB(y葿)Lv{-Z`e6bxvDx$sДg3wyVeMiRW3U[h1όь2.!2Y2<׋ZsGG'B/؉-OWUoMώoZߙo99…gµU#mLE!: pl2WsX4.7Ӹ^8{ LIv"mw"`۔n~4O!L77d[þdz'{S5 M:06#Օqh+)Սa9?Y5==3ذb}sآ37,Z?쉳9ʋA9 nUXיYBo˵lx "ry[yέ耣Yu A5x4({8m9/Zᘩ81{B ʳz˵QoEo-E#='ݞmx \ V2Ba"v'T>l^~CW 胾oXe_>^>z~ ^ >5[Cyl5K/Qi%xv}쓟¿9"8))HȪdO0 `8E<ĭ3&=[_)DIZa [a9Gs=}I_"3/[ɭ[y87YSx?eqkJu_osY~ < 籁?!??t?_q{>y>__P <࿅ s0tas.?/^2:Zq*d/W+Q֬̕isa+ (ӧП> M)v jԅSKguX 6K?^V4lN4T2%Ԏ?*I(`7*īf:^LL`5rO1}k! G>kIf$#}G*TC(ᶋ?#/ltyEԼ9@^<@sowY2 @' 4%bAGcDhWxsϡn.FYL%OC VQdL97VZZkmXLx^.K[lRp%7v ' Qi.1GXJ SOPe&?pjf)lkB6$_g\q #,guҺuEFmQ8y7^ĨKGCQQJFM(% O!B ͉ 25)ƛ|,ob!lFrdk 3[hJ,MM24CKiSQSX?\lr_~9VW2{G~(SX\r65SXd^AFw^P'QzUjM91dbyAؗ]P/h&m0ݢڍ G \*\ɺPȚ7v=J^}n^W}GmfTo+o1:Axc  0C^xt+m9[ ?ڗ SeGZHB?xqrJ%W,2C/QW5V93g YU%){{SbUF/M3Q4 I.Ia #1LBGM 9w'2LB*jo X8*8ߨ9ίxG=!}eE>"Oke2X;ء^f,Hx2:}Gxʜ##rv8|7 R!F7ܨiB(Fhm'0ȱu,}uU?LaCXfʖ,cVr pe[KV7P٤K41%ll), |dPIKSf{1(Ic$兏LfpFm 9-ER۫'q9"sD`J+sE!bI _@]CP|Qv#p@Ha:S߂(WT;'BF푐$S\Rd&Cʔ%ejYb3 $ -K,.AԝbDMԼ2`s!%la:Wkc)|b3if7sE|#K]%$T7GV'#^8X<_APt E} $_`\'#8ޫ_[jq)AH%pUYI8zc]ڶHڔrSf.|-&*`Zt|a_}SK*f^˨De&7jɖb$~r0=)cCƤd` F#L#5sΊOA$J|#ݕ3p AEk ȜzwPZr.=v(Pl) rB#,EMB k@̽űz21^u0YKVte2i4Z.C ʥL 3cB:Wf*B%z/NIw`B`=rHhp #Z1Qp# da3FV4=k)ZbጞSgE8;gdʍ!/g`aHr+7u.PQ NtqCp*SZZ<BywJ]qCt0a!*hUH1Ѽy@q)_ֲP e3cZPy2W>Uf+-y=9Db/Bq|bb80+% X/#]3$J[9a0-53 JMC|ov!X #Fsy] lk9 YfQ.Ok6v y}z nlא|˶ #ԣ~!g8GiW*'W";/Q+Vɜ*: b'vl*կ_Q1 fk1$k;n&1;2zYgatM4m-Q*dpG=yg 38M[\]P(()d)WC7rv ݡO Y-s9)u+0GYp/P;#B Yc7fؐ/W gH_Q?ن,OOq:YyٜgI n()m.f "Ab [ AfE ,iXbQyb/[ay\zCD8hkYp)u=1AIs}M(dA?A>DtEtT& _JKQ1'U>6b(g v~Akq, tGi#v)1,:Vڜy 1/{(Vre{gXٜ݉R ۀ %) {{B:ifh.qc6/jpPp xPz 7"[|;:fcօXf x@x 9qBJ4<.qZeop,UI'(Pb0%Cf<K2#LP@ dVRH?U^iA2n$am$('+gva+Zqz0 UvizU{bWȟ< EXp|(a!-[KB zpѰn Z{{O {\ qjPMHׅ ((1 芜dT;"c kPd 0,f($G0fډ,HA}+#9qWDwZH}&A8'I!Ocӱ>1C7{^FtAw4r33cS2aކ $WDYoZk۳tC."Wp. )(VoV1.qUS*@:z) q f !0@Հ T`{!bP8w @@ƒ[v{WӅJ;@e`:|;M,ɾIX\@ yH0j9ij3;GQ[KnA _DZ Ü5<'5<>K'iP>BC1E~'+L݌t(g RuHg.ZYIvkf1 qc{'"z7ϛڷ *v;)S ݝpLK+ J !m ! `l(ҵ =E-  2Q|۷}! q!` Mm"!eP"*芮c/r p  jP--yoxɘې*9DI0ؑ9YQh3Eq:,"MFv.Rʸw^sż B;QAaCMIxr4F^c^|LS$U)sFDYqggvv ,<("y{5IEZ*~੊>PT =n= - }!b8Y '(> _8 n^=5iٞC| %Y }- ?KoЧ jgα~qT 1TEͰTZ+-GKTT@O?.AY/Q0˴PʶȻZ;!\PD'LG_E%C 1yo>t>~> ꅿ1`f\]6j w)Q, f\,O ٴ a]<*901t:.F0] 'O B%\wݽhxI3*$^@u"睗0yWP0X~`Cf|oE1I*[hAٓ2Z[[.d"sf1&/L* $ &㴥 LCŸ nj5,ciPF46R;Ir8:)oLl5(q謌8Zu> kg;|s10Z~&5 (iG(s(AXԠyB"ۅ! K1k;I<6 (EREm8⛌9͈O~$#> jHl$#E ry\&#(mn"}4-u)tBtmns;)A@wxǨZQlD5H#^Hjͥxz P+tQd$ 7$y6TC mxU7%dJ %*Wau.,EGrV(^)Ilq"ZJ8.ۉ#|Lh<&5 PⰆ`2:!S K0*!r6bB8ǐ+dIVia$4A?kԘV T-k [<*cc!Aj; *Yt-5@bFdɉH<-Zk 9<l{#)r'ܔ&JH)J\a\y\sa,j mՑ<}TH$Kۿt%)kO*Ƙ6,<,Dc\6 ީxlS8J%[7P 498j/Mr~jؿMK r0\)7ট {1{ R1z LXZ` 1K1sx9И,P &*pYAۈ`"`IS*;!p! b¦J):$z)bJXXx){e X9(/(09TC*f:@CTp/xH,4Õ 8?\ė08M7kCy#k#Ă; P\$ \T'A(`糅 Q9aEzؾz! Q?Ӫ$c+F"$P; vo{KKGPGXF_h0=$pPxTƀ7K\ȗ`aIl/\P/"h;(jJ\I mx +1 )93r!1s1x \ʐ T b(4@`!lXA)*8ˣ‹< "z))|˦A%B2ٸ42*!%[%;qEXL 5\Þ")h %8Ԃ=fLZ(Z؃"؃f-ЅRpI4I-Xt f܃H̊6 f(A(ΣsL,7*^& FHH[Q [YQ0HTD@봝.`=ONp)HƢiAW"!]c, †t BGA=0|ysIȅl?R$zKP 8@0N*ОzEd6ɑd *@I |A,kL+pM ԂXq鋖Z d|I/U 20r dACLԞ2Dmʵ<* ʴġJ(O} PXST3#U4H|b"Z%Ę&qO)TU|rQd]\VeQ]Vb%= 6b=j-< " Qr= eMV4,E(-`Wvݸxʚu3yUp/NlX$CWML`ԌxJȄrDeye~^)vogiMWe-B78XS_d]F@etQXj^Y R 9~]:{H,c3x~&Ot\[=fB؃[&X(XP=p\u<|VUdN77|-Pˮ۶Ŋz%l6Q}אϩZQO0]WIޗ,b1 ("W3 IH @+>R(nB҂ҜW>IkϹ6EEWV@Co$VXTi`$NhA,&NTD%e†0\OYJ_<4+!B|xiF>M#D-Z_2ڨ1b5.HTLQ!FՒV2Z~*LY:6ťk!xhRokt*EBKUZb\K0-2 6mq_oIRZn#h_F i!{PE`{~Dz$IQ  @Tߺ.rN=- [n0z ғ^Adjz0D;H![@ F`LXh?pHD"L@m DsIZ,  c @"@?T ?TcY5CQDKPmB 9$v1d5AX5m eDZ%\iAeZiPa}9TsŏE'TPAE5E~dU]5X+UXnyR 7hig $D {RI"D-%N%A$NKk,iܤLKhIlʞdRi(sLdJզQHT![=T HVLAXF1h4FNAɣ$fVVr5UP)r !IAp)U`G/`-eMlEmi\U樕vcz4SD3Ͱ|.$]Qswe3j#_}2:W%g?@H^/#b3%f_rH6DR;1q?%\%ro baQ\?CāP>O &?=Yo_}>ȐO("AI䑐RmB! E8#y \vؖв<9=*5LepAVeYڍ O/pVc&՘WD 2NqLI1Op ]U G2D15$&H+]!,Jjh:$z c"/4)#GOD1,jJ)( ծ,*sጹzBdK Egq`36y-c`ڗūXdai^>,,ig.eAҾO;3+N&M>|J8'6/._mk@e/9 %7D0قzX$qx8Pn#Ҝ4P-Qxt,&"ɿ;Xjw & NBP$?IQץ1LkSc.j$JU$Ȧ7Ԍݴ<@ä1֘|6 nGQ%E(>#bO݃T B$BVvV1$9YEŐY DW.IIB! qHxUg%GJ[LkHhD>PT׼x0y)•b"/ƚ 1Aa(XbȎug #&c<(B_چ=ܖgz6(nS8ꈶeuQ@Zy ܌R4IelO7)\iL`yo1!¶k\#ʏ'\)5F1iNcjV  q [0g@vfwZ@6/r Dd~ի 15CUJ*FdNRK# aaVj}KJ:APLxO"%EuV\SР^PSs!ʴEݖ4_xJC-Y,q1 CAi)D@w@r1[pߋ %t;.BLSYySJeif7pn0 >ؚFH,hn* 08lf",/qp` xuΝ>z%Z xx;bP!%rw$]}Ʒɝ(@oOXjC3{:4 mtSa /dz L(?̼tpK",[8EBq4"AD `x 4k -@;ʪNB+ &@"zAE&kXՐb5Z!2XׄXnt EꖜW7`yJ#\ʆ$UC腖d0JٖYP+ADt| FP p*2H}@׼6 "+X u5uIF [riPw0fXMn?w(GL]޻"x*Gڰ́܄9,,HD1IaDX1S@9ґaE9!YIN5$ -I?XhcτmDJTz\0qC0^ #?Lzi"lk .a"T+%-` Rz`z$LPDޜt1]^i܋-EE `GUH U\CDc|Y9 !E4E(OQZhK6TxO F6 } bfHFԎV$IG*"yșh|+y+Gu$p'G|!+A$ʡ~Fn DZ"szb|wLD ݁4l4@TM`}ҁ!~:D$hS4 ̍ DS$ȩ DTpWH =!^IIfjaTz фGrݑ|4Ib,A(^70EYhk/|@|YzkĈ/85B RIG~xd,ΜU9Lܤ,Z^B)`PLUP0 ռ,LGQTE1I nAD@t#iD05 80}_?FZ %h\ w.OiAv Ex dRb&'RkfdY Fbd%ؔb4X4HlΦ%^ȱ[obyܠ+ ϸ} ͎ G~^5v ×"++V\ZWzHl~܎[n Fm}vAꈘ IO]Ȏ4GA_i]u1聁4)y\fMhCƂi(z0rijji<5%tHHƇz- LX%tIjU+{\J,U 4In4@bd}ҋ@U@J)i܃,aXpB$h[ǎ *|NȈLluGd*PPCY`MQ!U'sHHy8%X!(fh~Q"m%frj+ah("pCo]^ BV^籇]ʻM+Hh d4JE+A/؞c$YW_0Oi5[P,QŚc4KuL0JC)Y)$B#k)0j%QHE`TЂ|w0 m\lF;QAcPGGLA\ݍx +ȥ,n=Xڬ ۄlJAWiid"k"L䗐"lz@  )J2'da5΄`X>&;'i2$~m%jppMn,O WL ]֨4j1Oob5CǬ"$tJ+ G?iG:/#t]x7™a&fB$5pY/Dp^AoV"UQUsjs> UFvZtqQFE4H4*|tTžcTn0Q0P|h4̻2?8?)ٗ~{mGvۼeT3$oP]ֿ%V?\tg̅OJ)虒q ~,:oII$.i-5m-Dhxk%(yk:-&)rl i/mhuX2N@$$Bx2'{dN춞^-(ќ.L,pרqNGpRl $q4 , HGtEh`7.`¦h2ki+`)(A;"tTe qâ$T =D44O/>'L0y MNa/PJB5LDŠ{B D8–Xϗ4mxWCن절PMxndJZ%M\V҇4,5D%PSYS#!@eO+CA"0<Ť,U1=QnHq0+yժ&/a"JIq>qLm+,)tXV-.yzglSi `AZ@L8)|(@Hl?䶃o1n#bdS65~jYĆ`wb/w q Nqh^w®wnwz/"%/'zƽ)ҩ`dx*bd|^\2LJJщ\XCCCK3 O/VWKPĸ [SF@  * BOI4DLËߏG?B̀?5]Iq5| ~و0)ǩ~L`ՌW*9SRgO3vL%LA+$q5$qm\cRt{tFʆiB`Dk oQAz/ r)MY{n~'h8i\|gomjg:i?tz@Sk,;سnvXسcX,HR;',%`7%lpv:, 9D")jWԿ[mnQ DhiӦ0D2$$bZ lE䙉'R&ڬEhR"JLDQ>j("ȣѥV[2d[?\"D?L%Vhx-Zieޯ+>Kޯ*TBbtsh=E5h>rYތzu&"@ ;`I :35 jl"XaEj"zS"CN"A<p@G ΋>VTAN`P 3 -PJ&gB ID * KJ-tZZ;L:"ph/aX%p"YCy((Z cw6x7rk? 6c~9Tf*U2KsjSnqCٜU@p.H83C8 BKT ֨HQs*xIÅ$U IѬv6âuֶ]tm1DD8Y@S+?.`FpE1*2uo`8*T@P(,01T0I<"BRj8 $uZ>pKY R]{Yb/,^!HD8%TO\RxT%Jb?0dZQ7/AazyNֲ|L0b鬖%{#HlϠ1+dVC" mhazk3L q`! MM|38U#\$k/,j/iӘ/Aiz5&U{^@`F2c#pP!Bf ?BF<ư5v)HL=#hLc^ByL$5ys6:ֻH[KYgL٩w`&KzMNB)Q% @bռy~H=`Xӌ!H47'wX|ö́*0vZmNX 0P!oHMd CT-ĚEbj(V)LD8@DO0%R+ C]m"1D1>lf,kIKI.V& }Ҍ4n{mpP"lhP,G 'sm½k=2ٻ'XJ MEъRoӁ Nsi4'7`Nlbۆ1Wzԛߖ Ehj11B)N吏42]\ sgꊞ < dJ>bL\)a h,:m҄2 RRn|Z TJ`Jg|XjN  0 KN(Q$Nz:iwx'rڎ<"l®Df$Dl?! ABnJ*tJgDJ/̢t\P'.%* tȣq;K8.B A9K, GP, &AD~l&ʀL(2…_ &C2!JZh &`Ady`o!˼Qxc f$aic.JnNc@DbBVgKxJv↖(ZӠJ5'XeZƎjeZ!jB%4ˏh&h5>HBFCE'RjD]nA.DpH0,pHF>lGaҪo"Alww9+Im^$]jpSMRd `SQp )eE+S|! . #AK98bpfjH0T@,i "P(>s8s ^Bܩ0!'pB!$Ti4Y #zK wN&!6cS6LT,FEXE, *&" fB9m%FlCx1,hicp!,:NfӖΖ.Si1F&fU@EJ݈#G.ٮ>Ѻ3 -b`nf-,R/ [ܑ ҄$,%HC!CTB4`D"Rt @`ʢ-hG(0 K_E!B# CDH0Dܨr@BpAX T  |NPë3T^J }QD QO}$`Q!SbI;1#nv搉Q<7X4)'S1a1Cgu\d.C+HdU!԰@Qc4c蚏?\$XIߚK,_$@uO8 PHŨ nFh$F BhTC! , A.䢮 `!U__^A_a؁xyUUFbPU@j>.T,;pR j@cz$Hrk! e43n?D?Ҁkh eM 4@hM\hiVhItBN'XF0|CbbV D^Bj 41TăX>L3@.v@5n#MZ ,@ L|hMnp[MG$@O2, 2WA*i},,. ';`K9 ",´F@0>D2YD"zo".Ҫb!@H3>a8M&pE1UP@B5uHb{wlznh@5 lNnsTr'qGG.H1%C%eMF< .!V p^ &N!!:x:^A` ؋lhO>rVȣn:tGKhAj$%hWTε ]O7X mdÂXga#Bhi !c`*^svVs,jk.xlǍbDR$ED $qֳHzgKy=D%D\/CNp&RK8 $#Czk=qHP~R[W1n:&oyBH89A:pZb@U!gZk:))!^E`qT: Wpnߜd~cKᦔMZoC gaՎU^o\UO "qAVdi Y"oB]x\iDv>/b'V-0%.",BfBNڜEӺY)`J%Y /Z@SUSckz#K"p[r{K4QTkzq| tSZ ǒ=*q9,7 {Rٽc1BA[\{@pc@~'zK/,LnvgqKv-gK oLL:rc.ϙ;iL < ujPztרn vȐZ'GRHP! `!x!tڃy^ Z˾g:.=zڣu +*OD˼<|Lt$I\"U|!/(TNWDAvke6>>(<$& b!8i=?薋덎5|HH="36$]'F{/@bB\h˥! *$àMzi ?jjQz2®jcfكQ@yKpNhe=*KE*^Œ>-2{g?DbY4?,%Xf Ht/)Fsw +,ti Hyhv$8:q"ɖn$VWamh-gۯkh6_} @`7!vXaYOb@vfC?\gۄEFW61lҢXDlHUKF@k+nqyYIvAzpt?g\z#+(?d_2HwpHb81 .ʹ^"Հ1H5T(R|qOHH)j(cX_w4 Q%" M a& Dē'/gtyDw}'#Fh|F$=>:Ѩ@$jX*Oj@@i$'#pHbDWzI |6 l,`d%HK(pK@ p* 9I(7!mȁIа=- nRڅ%&>g)*يA`U_ò&5@l7i>1eLv2Pic(mfhn&^!TzaP7R Iˀa F9f@<$\ʣp:g^^إ nuMz hF@?ӌAHbt6%!&֔?7HCi9*PaT;㩈wh!FǺ֕B)O}<4PAwwx,2 ZP &H@F)iҘE-J>7PT0 *O(eXE" 8rk2 K5B): &18$'O2afDnM>-JpP@`uC9C#bo"IdŰU$CNⲐ*xD Q LNnRlR\XEex)F0./c`cG F#(\1Hc2Cfۈo%`KCnP4$_dy tv 7vBɐ7\\ Efּ쮃HX!ۆ6,!7$Tէɖe# ÁTu Aٹ9#Fx@BP݅ϛBIWtE'(I6D n" iɁ37+Bx |\$Hk|6@l"eIT /xSJ̊LdNIJIx NpT"hFw(7ȏ-4QD^W-m"pɹ$ y QXcą}Z,c{69{ՒW`_HÐK6#m6pl.lXE7Y%.ZX5nYe)dFf4o4 v[u _12Cp e!/z2Yq zF opoF #[.#pXXC\8Yq%(/s'7>tIaR&uRkg-yk/X HL;dx$ eNwCu;$fgM$6 w"+BpG c7P u$ xw_6m(>l؆CxSW~6 |G|Fu8"&wBۂY-I@jUeV۲.  YNׂ7II\~! {Eq[GzqzزB"4W#X1ɑ2F9`l=9 vl@IlizVdZrw+jqR#5D+us42  Zko9)P #`77krQ鄬* l_xC)}rؙ'{>Bgyify؇{ej_c_e_s ^ew@Ǚ{P$Q.2x(%H eQX%@%X" =IeB(pc%#gD tn,wzp7s<~{g'CehڨS)2jUSEBq+*SBY,zDX1Q8VB(WB0R+%,]u*yqo]qeUj)BGq_v%D@IBck4 ئMXƓ H жX xl:v;dj(&DP.J#`RT45t+sAP:h2ptp  [koF#*PP뗧"0EUWHdknʀrqiu?Cgc>i8ƪ''sx&Y&pgiQѸt7gZ!t t? <(Q,Q; ;ZQQ+%O$% [&SҰ[ү%%%_yhzw N{(3(w8Sg/@+\>6eNvJXhYQ93Jv 5D+zq=kC @"/]LAa?Z \Y+2W`*J!xqo04(Pk*B4/$2AR\.[C* rЄfl#Pq>^#`KW3 ʐYZCnf gqc4KcA,R/ hPQ1GޠK8  [p[F  PlzYmr`m$Wy_$ѫ"KW_9{C{҆&d(fۉ @S UbIyjȋxaѣX%viQLQSQ fVQ<<{zp ;<S'@ h9Tu(gڸ{:{)S5's8*r*2y}!@#U+ lCqV`n,ǣa[t5v!tFV( F;*ףVrLI,O(XQh#F--&-`-oC\x}JEX~A9l|Yl)XyW0ft @[uhBӣ`BJ1QPٝ "ݠF>+/7QJiM)H5*.S+'\F7ׅsg(zgYqQm< = Jkae0[xR<)4zVQAg4` J1 +dBCїYWdlR9 %V|ծ%*+qNEd_Ւ|MHa-.@2jGmlNk,bh@/BZ(+)hBeK'>D]Ӵw T,g(RjC!3b =Dń?񏌺 Aq&RT f7k?54}U/`myLeHB㜒(ĶJ15}4 ԩT:H<,_b':Eab;0ىO8wh'P5#6@0=De a(C1| bBq|bԥ"*!%G@ 5وHP*d+V}ƒ('4+z|ɾ8-IEbzCajV86h ='lFƾP(Z10!CD"`ؑLٌƸ͋^ V:s2UVe8a^$Aejl82dШĢ:usH\( QIFNla'Dx0$57C9R P`Y!9D';5,xjcOoʞC!JN |#D5eKFzM#ȚcMD" i4Z t Gl@^B)'"HF DOaj`#'$dULauP\~gv-LZ;&"l;юnC &W҉tqH=U`C|(*cXrV[PV9d^1}̿lc.FpfVl#Dy;ȹqCQru-eQqA [jP  BL-@8`U9.W?*B & hAT&r6nG ~D\Р-Npi Wg_˙ROsga.Rv1B(3qG`C4&Ac)KW4Pq/Jep• 5qkM@B =Zl̶VHFDLjZXڋӴّ_#?> d=qt10^oUsiZ3z<:֫%ϴڄu7f`z1Qvt&"^J4H6#XH 囶kg>6JЉCJ5K%*8&e(0@>J./ p3؆9˜  x/ A#ӮXÑ 0}`+!D9 +00YB 4yR܀ 5 ؈4 ; )`}B2^Y K3;졶 G#y3Dہ4 "Z ĊA@BsA+J`XXŐӷKErA̛I.yW*II:Ԯ8C$kÜ 9!ziQ똜&\¸L*D1:BKH ̹9-@̢@Y{. _0#铂kXLd>1 $,0G MA \XV]L?MUm E@9 ,0?ܬDoq=#%B+(¢j3΍0؟^x$חY:K-ư*hk(J--σ)ՏRWC䰥 Q%ϔ%yj#+fH MHpʀ̩8$Y:%J @xe>`I8JHtQHѢ%z$eܸlS@"ɨQSRQcܡċ{+ )\<$LB=^#)k陼4#'x_(Uۉ_>Tpm-LsH(ĂK1,36}ۢ?U(_mљ20)- /:!k?HϘMqf劭aWa(ĽVec @KCP'K8-) #u%F*}߯5)eKT51PU{R[*Q5yDud6}jѳ 5Z{RB>!1 Rʴ1Pl<]ɅRE\A @#HF\p-[[5!T%J6Ldsa DA5I_-FZk?YC@3sQUrPs1 7 󵾍:#ٌ፳Õ԰fޜh40fAg3RUf\>jU[ 8$ QrOf>X{$+&M8Ts @U"ІaxІVt|QII aᇻ/i (|b#jUEJx`v1`B~0āA J4,ӂ*D>dkLdbQ軘 g"?˽\\vJ@KMe`P޻썹XHSPE(neZ<ް8#~K+D| e:#.VBӨfȉ¼K\#]n3 T|kc&N>Lmwv!-֜m#!}Ʒ>*JB+B>ÛvdG}? q)& 6&9xHY8(9ىT8@ȉІG!T H*DPR}UM7VOF`aFAR&_?L.$.RHЮT@e-TFDXeLN%Sn䯿>Kdf? 70z-]ⅻfY? d LRp#}v ŒXj'Dg ı\ǚ1ݘ, kWu|w{׌0"/bc( 2   3IA\;W!haf<&EDnCz#N/5 "`lщ%樤w(` Y??#4:f* 7qr%QQoSK͛tOtoEܷFu|qʡ\(( CR^zҥ؇JѧaH+Q! tA\-@(\A+U VUe#!ɥ ȡLLmE[W5 =!ID0bDȔ0E*W W0Xb6NkNc(F/.'bUqNt,d!c UV3xcgɐ{#1l|^%9<;z o6;R̪==퉍epGmkdRTŐRa ppgr$R$$EA;T'80AA#nUHeH.iJnD0QZ9Ũ:p F(Q8; {gD;NE:. ,/Љ b>1 y PDYOOhR t;EJdY$ >.Z`%"EU`PT(ſdS jO}L "(ʁNe*s@DW?G=#Z?ZzU|Rb2.k>hX%u=z)arJGi%&3]*jkS 'u,x5z,O{Y,R3m"GǏa& x?{DdA.x!fa@J5(;\NF;/`cnXr=nD~HdACR Z^ @d/2J 8|P#8p"mA N 9-:z ġdbSt<©$ms+ gKED=y0oqIIʤRhS^BY9AID4 Yj;Rʔx跬 | PJ)P@uSNIuVAPG{SU@*V):';ރQǚ51a\i;.v -.5_] +}&h /h#=Ǡytah}pжf0zAXēGnq($AHt-*e|iB@I[٠.ui7)M8ßK4F&^Ԃ#vI%e#ߕòx(fq=qi'wqql}cJq9ȹE {;_Ύ(*e\䚨p(&4p}RHe-%“|̆ >f55Vg &?"u(Ur 秚V Bh#%s^.Ƶ#h೐va¸u򊊎#̉*f8!FNtyO|J(>h 2|-l M)%SLj M.{P EFZ\F4R\ DҚVȰ.QRݹEceZᘦlfBPB^AFDEdU_D0iƮ]URfQpjb!Ƶم=uьaDe`g^ो𥊔!%dؑU7X vXHzDia҇䠇N>>QXLdy\B͉a_JH,?HN.f`$ $Xef戬, $^ȖuQPI!YpvɃ[IAYA''F ")"Tʤ "ЫL㝁@'(TS<U Bٱ'E#i #'RD)h@P #+\"I_S`(׽UݐuhAJڥ[%ٕ(8#mGRx ei&O\)1W%M`W1̐Fh(hTX QA-F&װh'O,FԄVkQ?d|sxMVM~<5Tp Y \XSru([ pE?˩P|0ȄbwX!G%>- &cB2b/ Mz!Nڄ*E!$\$$)JP2qoKyMĔ03M,ϜU@hC3c!DDqK6B|knQyaO$U1@1#9gwG3T09sH3;x9˻<TID0@CtQ̉SK 쾺IE xPBEWtT4YtwFGY 'v,[zJN 1S2mHF^ư_ yKqD۽1b(q*䨊#ǏHD|\1aMUNW䷄ŷTh a˺ MЖx<Թ03Pe7e S} wI΂Rhm/%ӕfQ>6c$;rdߠ,ԙ|=U2Cq,ɲ (bHHD rlNJzĢ= , X3(<35!&&hrJR5v&UDL28KYuG~GI/Dy#s9:yD@B;PE˸QOE^PFZHIYG7_Ec"&~0Jw ٍ,ű:p, Lǣ*K^ՑlXmdFpO CTMXuPA\h`Zh|FDHI{ f ŜV8Xq_G@!Zq $]?ik?悞]m31bHci!L hiW&fpY%+*0B/,RDD.fEX ߠHW W@᷸&y󝙝6h+'NtbE,а!XCd&d dCo޹kJU hDzfw93E\8wVuYĘK?;8(Q#ߞaO!ؿB7*@p2b@_$̛8f/r'! .,1?,YBJ/ix(魤;ٔ"%<}(G8pxPRBQfy4Ҕcē$<|oV.`1, >#B4"3(I&TP"LT"H'gO(i4HHL0)EՈD+4R##u :1 쳐̲*鯳Ji J꧈$bQN G.er: V#6l 9wࠌS*#Tj (-9 ㎫071Ds2,m6) (4L%uR \޷ȵ8`ķKr2 h5i,^!ZvK7qa"l"!O;"qTVXOO?$"ܓٍګZj3#fD 吣CU}T~H[&R.S=E0y< J8l8\Z9GlrNO$4IkRK!vCqm\DIr OqF4( Lb"G(S&*t#R`}5Y4LYi ˪t {?TY=|Xx(K"-_q+ eg tPG\Nq ˆ̆8YdV6a[*Vmԃ*n ][]suUq0k8FH&8f2K=StBBQFdQLףaH9"PJ $<0 l0(#Aę|&1 %@58AT!tZ UQBP)hn(࣏qG=z9OEd-Ԩ`EB"`aW&XDd'*OK8!(Y[j%U7T[su~Ԧ6R#΅g׸Gq" Hf#%9FU l} j+T41䘩tkz;#c"E$%!,h+4#"_,XZ$oCC>'BRa2!bpva$mN*TM\Q\;@aM=j-q伳TFy(B#Έa=81+ POn?(U!f a: t#@ *b`E'hBaBOk4'E,`"C/(6yj~Tz;LH@)q{b_uKB-8!"HzZMBn6ppjG\'P\Xl`RHN1ePaJ7/!HhXK e,qt,AE?δQr`QvRO*`٬Y37L .) Ax#X9lϘR΃3.G-#$Ak7b+ d lM<dF}d<'vLx eeO+T +"teV/_ZOr>ˤ@*s>\P)!i<'J-1F־OEJF 0"|L&@:E"4c¨`/D9hɊ(Ij#7Mޒ+2ݺ8[ A E[B[.aΪ&4&zM%bA@T*MWPd.BH5$'S&ah"(Hޅ"\,E9j(q@h"9o-?$"SH/-Q"h4%_ؓ0,b(BN"*‚kö&q;G8~ ^ sT8mF."f9 .3@βBgs:'Q^"un̡Fq`(R( f@”h)G B,ĪR P*}+p'鞎P DHj;# ҈TefL9RVF6gsLDg,Nh8FaK K$K GVN)$"Bxy$F,h}N@lT t X K|"½$$zhR Rwl hVΙ}*.1"`J&Hzphn1D>zmA@;񀆗~ ,[*/"8\r`4a MT$\= \@@N!"jVofRon+(ge^>k@[[WFj$YcYA}Ч }Cs4O-kVga nĚ0 :9<\f^CJu)<~ҳX _GH8nB8l8f#  Q($O0Lf'Cd(}.V0Dƌ6 `p j@I'W@'IXK2Ht@L*,IL`IxG p0Ă M@|cݴXj;g!`"^WWS>'"xQ,}DjRv;2TdX&4i;ȣmp#R-R=z ;qWAxC "q(waba2w5T$N|=GV5wVru_*bTʼnJ DzywMWYHD* *uxND`{uc8SVM}VSlr$E+FDea[Z“8\A\ o Lz:lJuzIK∕vJ} %}GQf`*UrҖ%{%v;ݸb"#@8apmP 9(&&ggAqq3)L)ůb!%be:29$!"NaН TMVeˈ?#m`1b v,iQٶ{yq;FDV Fݗu?&)E*@ w#Gsәo%XM溵[RʮU*T e .@Eh+WX,,V,*$/)M c ?=maᧂzrF r(K@FVf Ajc4MZKR4 >KKФgg`_ TrLr."hPh5F숵|;{pƪcx-]j./$/?&R.Όy;^;@k@+I݈ ;|c@ַzkL8Bk=(LCQ--ab$V"W3 5?=!5u; P;˱{tl#U \` {q~y# '&Q0D,?EOY;:}]d1nΖst}Esk0]`0Ѧn/cpWQIr f6F4\#V2KAʼnk0f;g`as  _>44T! >(:!@Gt@BaPɕ h鲥CN.i?X^bତ%S0)T33"C9\xȖ-RpiX8Ej*R\Tōˈ* ܸٱÉ಄0(埔G8Ġ7Db Fp͛ʼnÁ)#\'S'N%40¬F3J YK"Fsqߐ( T毀|Q~g` B#MEG r7r9$ p%.7]PẌ ܈恍/@i4"eAPFtAmdwEQ]|ܔVZG]SHrx5M\qud +jW9Aɒ FbPwtR'G`4cO$4*?^ Jΰ |O @jUPCJ+Bqѯ?l$SL-iӗ_HTH OSQDMZ]旓,cma?<eè?o[e`NH!Af#Rp×Ijՙ¥Zo? rm-ңn0j+?c)|;qY%tOsݖosSB8\(pz*{-%-m P!} Hda8!@n$Dɇ[xdwTmPAN:8y42qM;G4AԨǙzS\4$n*igR)-q.e  AP? t%rֆ(3] @?AVB) Ӏ U@ U :HF|@`Xr(DP%QJ^"d'_qxl%[FuIq+Jx1IiQknP˽" U<b fa;2D&xD¯^ 7Bv8HdN)ʦ, l(A,,F\8e87|Ao ?x,g]91Qp8ItָpCK CTӆ&d@[JX#%jm $CihDyJP@q.X| Ј(^49nI1urHa푁Z bp>%:e5dk+]^¦G/0BfO~^˟@AQ(*3H,u)Qj&*f(M-`rg*UPI7&$!HJ8")Gf, =leQ%o:9;a %yk@ܹ\h0ADpv .q/yu_ML$b ^'\1y%cp7#LV25;,pX#f]Y\7p,J  _N'"FlR6>-fޏ<:EaKU^z=hd|Tԣw)ͤ{g !J%Rh 4C Q /e Mx(hip4Nlf!,8%gl.VV_,A+jRAhGaasW)aN h 61QAP)x&mĬAbjB+j&%^LlsP 6O.Ml$yF"d>ҭp6_:XwnK4%+8OplJ2nu 謝Yls> RԨQ Ш4pp 5TmwWL,H$.ʵ~ &'2q>Q `_ ȦIS+J̑'+$Nb$>*[Oc.3+ӊ-=ԫꉸb%gҊV @nܢٞ FV5f0)F6b4hQ&zu"b!=Ө}CdIkdMkU~ k b[ 8)$Ԗ`n S9`drZq4!'09=Fn\ uC0 7vr;or B78ò2UFfI~~~`v|e!գB;,.a#P!h",b7I QIR)R*rdM&uL@0? u*,8+"6Z"eqOl'u:lf"swy\%-s&"U"TI3D3/cVgr%fGyD4#hv25S3hAe2e3AjepZV3g;3:I`^w^%!;d[ @!gf;$feB;`V5wF 6,t]uS!!8ކ]_>~}^8`IvI~#:1%1_|p ց&5&!8{H|r0P1s8}"tAw>`P>t)B?L* tP&S!uSXŒ>@ deP`8tAβI);3LWSQ.l&xwg&ROzg1q\O5Q_&cD1hx+#5BS=2B19A_i/Da S$SG5!`祐p\3Gʹ3.7`V5|9Nd$wfR|3g;G6`US`U"FvL8h KRC0Ja7P~vn!PE :[^IgjTNA2T zGכqd"&i&ʙ+Rah"O!tb+)b.*1Gb6#+PIb9x8=H@HQ=31*5*JФLy@•\KѕYJ@!Q 7rr[c"+;uW=:pNvwzwfl9UTH1p4=4H$3WTi8_ܒ_3♦_U4'2qq;cq Ū I:G CƁN$%` [DZU1*"*^|tH&"d\׈]z#  vJ3nJ~)eɐ>S|iHyb"~ij۱2 2=ܱZM&hzIa]&RN^2&Ʒ.o $sRP922#c-/xsT:=ڣ:9>Bi"??#MoSS]ڥ" ԥW+v^:,Z!g4QU51&B9`B*Bu١va&YPܒgwwA#x s#$+Mꠥ頁I4P5A5CkƹV[|IҷI6Vb4"J瑌v|HJ"j5&{2c)BkG뤯\ZJ!o3R_W9,XҥXdCiZU gc[.| 6RW%ayj62!! sc!:"4TSx78;y$FP$ XBFz2%qfTkxDl$};Ԧ{ImHvaI*6Ɉŵ[oՖ"RO/i%5m^ki)7}6,mhLʛJִ6*7KAh꡾L臯M\ȶI;k6F߼%[R`OC Lai*-B*NSS'"p3W4 b6zPs9(I>1BG8*K*N?Pu4,Wye<@e,tT@"T $AzX#ZP P Ʊtf$3b_P%1#$kp<Rǂ(楋z [HX[6#Dʴj.0J5ֳ֧,6ڻYbI]}FahA]ѶQe!}]ˠ4ZzJ+'>g͵Ul`b)!' f6#g g:׷ev*Zo!2=@6:'F>c@В(:Q )ߡ¤ݞ+Z)v$SƲ7@,4O3 ~A+T&4a ޶;ݾb9+[h:9dN#2{MI3'N'NC:Q[ z][U|%mՈBܺ6ˋ3J||x{R63krښA' mI L'!7iT#\rʄˠ-~W4RK%1ֵJ~!'8{9r߉! x.YF2#"̷\OLa]˖H&K!Pܢ"֭]ܢ5Wg) ] 0?JMGR\A0a)nG@ %Te\Ppbifa;{zU2&bd5yw&of_-6c /W jMa3J_-.$! %ONN8Z[% gO>2QaC@ ,R6A\11q/TcJeg6?!5^7Jɤd m}pnKj6l5ԟ4hs؀k闞Fڼ)T<`L+Bpwum7faOu#F"\54)8SڃQcJ*=@4A A|$0&Mcw]nXi>v|g\yq[ ;iU3XӤƆ3!s89/ܠ9IH:ĉBQ2q@jB':ն Tʼs=*SξfC 0`AH?""N 3˰q"D"?((̈dʬKP*"O;+J ?H HƧ-(%<3^ūWX/R"e(@p拂/qn{SLp]^ }/3X(8CÒ$EH.YE.(3bb8Hra3b˖/$$js.>ԄhN JDTR |L`2*+$D(TdjV(:jz)hI(ZieI5饙ΊL./Ny.~Ы ,I$C >HwPB$L8$YLb8,{AEc-Vmsш-Hb:^.#9N EhnO=dZZo@lʯHZ&!SO+wjxԈ‹w  1ҌXGTdQ7ctB )\F3jۈ(h(PDQ] r1#tDs5]Xv2 2ܜU9$JHN֖"Rh23G*QC?G =I?m!)JC6ՌU z酶V_駊u>C^y**Bj)c `%o*^Ӆ0LŭJ ä:).)Az^2I_F ! ,a c-ؑPPsZ2,CNw f>@SB03'7;{cgY3=;[OF+AٸpdBaKf:2Gh_(7 G/"d!s"CG@RbIDI%HePdc g6ْJ)J.(d3 CniS-ĺ'nn§|NĠRSgKS,DY(PYG=ꭄTW*t$Ț&Qo)OtZuo{g 7}+¸\?K'\IiҺE$iCZ/La1f3QԥjK jDC;E }Yp8DCÏ#*Ўw$&ьPpVLA`bśf@aɚF.JiICR ɑBǰa{Ks0 얷@GXK߼-I)d@A @TM9P]Vպ\O"lRJpJ,u)'me$Z9ܺNMTxZp\O+t%p{**~fB^NCڧԨ(ǠT'?B 3f6gAM+\/mEC#+pbShI[ɧ:+E!m38 XLo9-N#XXrnl1EiȠz!K^rؒ?bڞ"bbf3VYgh̢X Ԓz]J[K6"7yl D\ `cEI呞dvJ@ *ڌf0}Pܤ;Ʌn)gZyͭw;[)C1d4L$,PDK(I3;MxwAJ@ݴW~1:c2֯Bi{7w *K?^m-^%)'`FTRZ.x@hKG'iL&1LJhuLu(mzop _oWucO1ᯀê>)Fdr q WG)ɸ~4=Ag:Pπ![3 (!39‚1Y1YA*2[2(&#q2SЪ12B+I#,[+0**{+9#7 Q)Y ,+ 4  K»GʈG+I4g˗,NB"cr͠"•ځTrSp<ޢ1DCx: Z. G㱽 E魵6?6 Z57m7E*jџs)/7p^ypkm‚C!r?kٜOt ~a@#г1Rѳ?B!C!@"!!I"1KЀQA&c:몯*:JPAkH/*+RK P)/q7ӑz*l! j4lQ(2eںfa) SHP:YyRkS/0;^:DZzAS3ɭeZꢞh=axJSS 3/d{/x݊Sm88\&m8Lm>zk  ^7wK*R"{rj(!(pBȁ!3Yh@BT&!*)*H{$zY$(zȧ{:tH,ȊH;+2ҏ +I  iQ# }+-*̒cĂ mTr0m!CH#1Qw96I(ۖĀ C_%B \,lj8LUìVZ&{Nѵ86p4R9 𪈴;<.()0%o'>p!ɴ2`voP\`pLȾ\A|Dm?a Fe< Ť7kCdʁ(?$,3/R@DS (I!)(s<Z5Gs,NJsȌ1X=D*&B"leU:)/2:Oyd2ZO4#A2;+O`à0>.u" .ػҖ-T,C s P(\QBٌh<b+AtNRcCP03ͭ䱝[YDqw-YHD⛶F*]_*RSҡ% XU JSY\0Sooo>= >|<͞/b@`LFe ϫ$?79 8\2%0 #ŵDP-#*!QH7"aI ]Hx Ѡ3 ݖ(I @")ܹ@"rA&spAX^&R+ȯڲ+b(Z֨Q9ݻx1>Ҳ0Bh Z(黋wvT8bJ۴,2_ 3 Dֺ9Z>JZ* 묇PW2QȟSفܢ}417Xӛ%g|o 00?ӯ}_&~G [\8 97yc@*xx|2̈m;5a=7qL~Ň?719:,=UKU HMz,\FV//֥2t~ ])ᣖX4)y4PUWVABMW4O8ԪsAbA:8Ot!2˨:IH0 >( H묌X(1UHAWk(-8\4kBa6~sY2]mPѕ-FA ފR}h~ahh M)chȭ,!BÅ2ӿ  ,Z.[<55P_i~i>ʹ,6^7D 01`FcmޫInqQ7Ms؜2dƐ~Qfѽ/I #^4:3ν)9@>g*dA+O3݊T"d)d Wd1r|׋ )@\qTZ, Q H19ʑ *L%@^TIm(jBq ٱ_Ka*% N'v hHxdXH 887TGk 85갍5m,|:0Fc c`j EԻ7f5866T.0܇G{S'6֙ JCɉ>5g\R:2̒3/C#N:Vp:iku$m1 $b&CvVIJή腲bן##yLL&/ @f GkC92MM 5z)8 fFn uo6v7.. 9QFQٙ8Sɢ~aAsYiNZΉdL$ P,*0w <&nb ~w &I'([ƅ>;0'؎z*"juڧ XKHqUCĄ{2>esTɉ,ŀM:K"l~P)0l: sde3dsݲL2Ea*\t,[OaH{ֹVI_O#L2p-+GL14n?Cz>ll0)@y "on_ RvǾ8pTj\IJBկD}uBY=љ8`XA (9$w Ʃ <(q_w?xj~bT,Fx˧ q'c/H A00A}V @EC( 7dHFC\pe䛒&ߌrj%K.#,nBID\b?_T t(ѢE9($A_ qT J'IoZ~QP6 n\ { (P@Gg@_n #0_b:qdƔ%AΔhXlX0ɔ}@l֬[Ek٥Mgv96l۸}p>=G1 2d/9#%JA^oĩG~$z0f2&)K# ݪMS hnP La$ .QD(B" 'ׁBA? Tևa X B! dpryQ8H_H4@S X\WF Rf\֚s^3'XHPlsJL4G6B3&@QYgaC !MvDIS+KZ4ѧ?jիQME$VIOE HIyo(LuB%ft;[Vza~_HqқdiZgmvZ՚ ifXizfe &!8J!QM \ASxChM]O1Dž6K#brJ^Pa~}ŀ2na}'D/XbP|X "hۊq>f܌;&@q:" ڴSy^>}T3%<lGX5yqi'HIIJqhđ.ޖbhTYArC6 )ogS?>;RN2s/ T <EKPP]kTP1Rne+CqZp-m9'r Nr/% L}bCknp04Kp&T;k4QL&1q4ذ&zAs"ΐD+R6N{WIMn x_(AƵQk Q *n z6|#w2$8D$"%9n&5T>m)qh95yd%8t< <OmUڡ<\!3"x)H9 !- 3r(A^~͒do^xJ|#Iuy}+ŔoXTŁemEJ8-[jI"9]"T1d CAxP0bLUӰ۬pan qT؄f; GuC22b8NQB&&)=sKw.]H&^NcQG:zښJ쳌ոF깱 MqC3t'"GFXl-Ra5DR+dF -a B/a fZgH#Ɇt jC D 3U)&ѩLQ'iPBTOuMmyw D"uB4;8"Y(`mӛmgAJB2"srd;ORQ 0P5ZR2Jk!(Jܜe.% 0 ig_.@]ݲ';+9)r4z\OҘ3ϰLԮ P׮yZ LsH9_n˨jȋmXͩl@Yp nG `YJ%] E ]!RY81ļHHeEŚycJ؍YE-zX*GɤPʫ KXhӈVXdEM8LV%]q|Wߔ)aMQRDY)͟wO @C5J|\ɌGЀ.C(5BS($Sy@]C1?^,Ȣ";"/&_-_4\hC ,,OgW!FHGzJ_ 밎Nxɟ4M־]W]]sORPKU0P()l )}$2ZXH)uFI=]`TX L}Ph8F YTS  ܜNgj?`Vd$LX a1ӉLR)YV)TudGyQ?pXH]2K i[^1H%YhT@ڡmLHeϸNE92MNā*щ/ў7?1-N"l.v,b3Q9` pFd91 ?%-Dt_`HNzGW#if[Hӛ!ZZa]I!EP $OEC>[DK@YE U 9CL&Ll$F Q`.G$ aYMN(N$NʤTk4 6-u[@Ӭv 6%t,D{F>l]ZSNHX @)'^ּ^~[T̥h(!bq$i!~!b9Z؄[tsr{+ى޻fR-^@,В?B~t,*i2* k| -qs@GYdXF + \"(Qk>/MEVfLhrFH +O$/^0Pފto։NQX `iD5gX Mds5ƈq$[^ JJpg=gxp炰8HLĖLm,[}#-"D..䤞~łAyd?dAy7D< lD[hdWjvjFdC9hB%sp@eO!u"tA~J!mG,Zq0ʱ*jGԂZHa,L2c rdR5UH$ܼr)[ Oo7E/$B/+$$ra`c(aw(^4@B+OF)eD d99%YMT,!-`FvXj2[&&^[&%%:NXiRH?3ڴM˽c Ǧ%,fm #tiF.-*ME,EL?8lC 8iyVa.ffi`N(tђX3Qg,9t $wغLg?8@Á{glh1ftj6X5$)pNB-KOAD&#}I‘1SgJxJW(`~s=s #y*!zpr$I^DCBfFp/ P)saGo⤄΀29U .k+^rZ7/+b+r6Ky/iwh,b017G}#fLD%T TS kikR{v#on:zeHERn3]riCl DDOj6nĂ8utY&z{7<@- O@\1{OdgC-K&¾(|It9~?w;} h@ `x#gp_ r9"T8!/N#G @N?bƔ9H-y P%UfhџYgԣGI"}tdӓPR ֬Ljm,YVkWA rl  _dp#C8D#S͛E,@2ϣ1!CfM4\N-qJ+@Pe!V<ӍMCp>#$9㖹a9xx<ʂ.n3T@\-G q> Y I i,pQGIjE{ƐcGm$QFV$3`Ήfbٙ@.ycK/$Us#1r3\rE/ψ-ȠA%ARO62@9 #IORpr%hC[{"l"v` fiaq/`66VOw{ /kl2߾%W^{&!D(?yCQszGDGQTPg)j-+y<ի^5DPx/U$ 1KߍwX3o5VMeVR PeUTfUlEΓ'; w-ô29e3r1OP3S5A tSk;wPdda*10'e4j`cu&18a vDF\&?cIEާ ۈ? #>8O1K0$hE TP)b]!9@D&?pI6к khju<!m<bםow;9p&0EK\`F8H1$7#!h ϥI)!(cˇP"?(RԘlM$U%CJFPyRu+T:g|Ǖhx &r} M*W"^8 me\9-ec i27J'j03 rs&~A:%d gB<cfLS<5,Htb꺤LaIT M [K`N$n(6Cs( SL ";4*LEJ9Xi9 h4V A@6t 44Mj*In)D-"'ߝ>&4e&2g@zUݼl' lUZ'sIbp6VsN녌o3o .Tntk oI2*Hn$;Aa!<` +>՚#~T%nw뙙ӳa,¬բIMjBёO` @cd6tAO>Crj`@ !KNc#fb?|ÙBY6FЭ9 CK=eοY "heFaHO n{JZ_]7Iҽ2T2jEnp$c _;KDm9͂\ʝ*16n$ҥhk䲄$@go*8.Dn hN? N ֆ j~ "Dl$G~ JC\D̂,VdE,.H"7İnCeFX]&I K& P%Od"#*3:CFq2+#X /B'h$d'^v4("+~ 0 tT뛘IׂUdM(|g~ ~ Vlw [圬"隘'؄*zijqpmjh-Up-|"F7 7O֥O j 5E]֥%(v#~MAE$T0*σmd:HezLF! HIJCŒ6$ CjC^p: fP$gpm؈$jINbDjNFF lqH0S%(P|1}`,I~-~e]1T'3DE&:-ᖂ1A;:H8ĐcLnM*-s4 QزrV6"D" RR-~ (4/TXI5-S0ym׎U>N}B@QxmgpUnOonOW1h{QyרLW'9G)nͅ4HN%H+[ 5H "lWì$3 @ n)&l8Ɠi9/“}&*8%^Z#!yd$V;& 'h$Np#g^u_!^[bUBAJBGfm.LvHIT"5h+"2hd F.#4vҤQbwO]BVd"OJ)"^v$t4,%/Vz1,B)teMTig >MS/(LV]egn6w'̶P}5!Sl.ZQ?xWmUR]*Sp}3$qFp7CoS#>`"ECS`C XI@D4D²r1(<+ =ISqt0e#bgB `GFB*5[.$ъyygw]^q9 Glz땘]aLI~sĩHTC xdEd$@!Y -%!j6Xl b"8'O"sefFr(7mlipBKxC>䕑7IB|$ղz7ۗB $9 Z` Z!#ț[Ea"[$9 0![ B, cd3gq33"-? ">'!$4E--X.z:C``֛8Z0",7YR{ 0y05[bgli)sjmxNѶIbl#_0ҳr)"7l x3$O)s$ԊY[ &9I6DFbJ#1@('! 0=I X:o9R<1"1ӭ>l4:#GbO"j${$+TV$6[yyH+{`k? x Gb;l4[[1$PMMX,іrdI? ʾF=NT,ss{OJ9`2uHEzY[ fUHc0ڌQ7K12h݇V3(b͹*A0EںVv5mUdQ|yQ'rYR#F}z"nqsW iXiJCFD}; "yf2T <&~ӑ :xR*=;+VD@^N8m`y;6'y5[zDJI"klz?Fj VDFVFY澛'Qk+ucg"To eR#pql$℞+gj&brsKI0YXb1C6uیYMM7E۝괗+O|/3rNl3 L @C $A B @0( q˹ 9A`9 mD QMa-[YZmv&M~}٨q%fk.]B$xpɎ'd˦mńadqCaBGuAI%"Ҁr 7d"P >Dc0.Ğ\m빳 Mi #24 G>Bs$-ԯSN:{(ЁU44 ? U@ @P4@N 4\BR.bX!-@"-@aI3,#K H]%At%FX& gք&A)adQ64(J}tFSD@`56Mi4A@S@u@y# +@ % z\u<1  *6bQXڜd?K9tr:GnCfH-MabYxa5VQ\5[K5{\}ջ5\VaE:UeAvT3 ɠ01|Zj EoM̫ıUoq! L'C PYQb?l^8z0?T4"d|DXAk^U$XEV}#FIar;H!Hƈ@"s#Xx<"%4"QO0ޣoU : cz_niҖ]f1`QYE mSX}:0p m$h4CL9P$.֔"v6n{@OA4=M1glH4OySyIR4S%K[- @&R|,+u+,lY 4ֺӗ* b?81 ʴ2A0DaFZëW Nz(ئ8CJ& em*1';xsL =NӉ\W݇he$У*CК4\Bxc@6h3Q?F,J$ He;$d8ܱnQ T h Az('@o!HHBRK_* 6WLK SY!TdDN%! $) f YG e59ELE*s8E` #>*L m{+Iuo +HR(N3PFxV,eryEh9Hkբ]yibBӘL`.eZhVF@z-0Lvb eٱ ȶ1*%RM`LP@Vd9r4' P:vqADZv ֢T ȱy[Ћ8UȑM"!YԣA-,dv8PҴ0ʁx]2ٶR@'J'qU@QVf$H,Lo1SCtڪ.!;l3eì,*mz9pb/I< EuAֱfHx_kܦ$#mFNNkԦ\-*!["54Iddֶj{槃ͥPB<@,N?Iwl*4 #_Uӻ"SNLU}Y; 3k3>qm ?| 6lgk{gUa0#K|bW-naaEt_35q(EV GdcO Ht=9hu'Z>7Sv:5S]ͭ:֑^u$;#[؞hkTܥqC=f϶Ò&ۣ!Eng' JIhТ2,N%jQ@+j\k7֚Rz'$.! p1HD0L1H -034"$Mcr)͇`v~( q)H)vV f-6B?J4q/,bC\^dz~G;-a<6@1hw!bpAbo!/-B.1V lp";C7sTps C@Vd`@<+8f(,S2Q1.D`VfFxH mfbw1g":p5葅gWWÅqGwf3%!!Wi8s3!n8U838wYARHDyK[RiPZ%taqJGT&C &>P}!^S$T6{^•|D(/`0=^ӣn4SѢ?pa .n,(*Go3O )/*ba@A2pcb7@b _#}Y,n/Q܃6%g.-eb̂AB~d/rb 0Əx ِ5c.s34T44idB6C3dtJDQ@C?Ttu] UHx.v1l5QRF@WY(G5WCwG8 iXi mi$Y|48#`"x$h$$uI$@y=")yY69UbPv`q1cȁ"t${ĆSS''o107|6{dPN8O3=@eq+nq Q|OOa_ nIOE}'S׍XbLf/_b A)qpr˷B;8xQUR,cXbܣ@.g#u*ܘ/ q9u2$d@0dvLN:1TafE[P!33),3i--: lBA s|G_ w(Xw%"#Uy|"!566Jm%:"6\ 9I$~8i4i0Y9Rj8ArpQ&1U1p"*MQ1̔{(֔|L2BNpNd ד?Xn"-p<<]b~prWǛ A})S#~b?P P%=Ө-'e/BA )a‹S1lT00 Sb9Qu11f1Sf2KWz8(,FWfOFTJ;1kvs5zV E)*5\X[gd#<5%8"H#j8#ĕJ761#$# w [5{U2=Dz VPZcRwMD?et*|<|.s ^nH|Q1BHB8Si[}kK=h]"dLw|xNT٩&bRm<@-)SflƽI;C ea;*pix`O=duT8g`~q)+| AQs:yWGlJ8 14kk7%W .,M|8W0lK7bÆtEF6I2EoW6LʇR2XxT]!>:aAT'WuvQq"=nh@tQ-}bLD|W;\׊wTFu3,?F4\;J](M6V."^5-͜:gnțJ-9}Z_Q+V j?Rɝ)|=B?sQ1 H~JFIޒ!bFϓ! 51gWlW<)wY +y3h`0aWP-`8qpAÈ g, ʏ \hɈ)SΜ /hNE#j`?!xDAA>ԩ>O߉]dgM45d+&klbs#"Kq.l yN@N~)kB˔my8޷y;rp :\Y [.#F`Ĉ#ڜg>g->KMni $RirBT'9 t⩠`KFɨH*S41ǜʩ**[Bp5l &+'4诺=#@k1 ۹B;5&0v1uө|Kݐ[x+Xxo 2Hp:[ r+O2/2Ѓoҫ3r[Vhs9"Ԏ1],@PՆ~1j1LCfS ײ8kVXA8 "uL`&0\$܎hs@Y2ռZrJc)#rp4̜N+W3E=5"Ϝ ¡?OH"%9wZF*I2ݼLqLJ'0S]y_+8U`9պ'5`vqD˛`d- I ɝzq#RB)KzeUF0Л $M\UKFs0y-PD-v6=!O0.acZbϜf8g209 䌻ҵCu2!,s ?Wg#8lgB8FzvN%G79LS,CQd?G f`亡τ DV -:dCP+QXxO|&i/;h9y[ @@5PHJ[V*!nTL^br$O:VR'()r<)Q G:ؒ31]Dd稜V! \MvB 'BBP&ꯡrVMI!?.&{O-Y,IQ]zJ6y5dQr~U6$} ]!vvRQ^$6aB)Au 3)-:#1N~9Ld (A%H> J{9y RZ(S\V&Wr"z9'Oɘf S`AHVN22jt5`v8Ԑ[YnLB[xГr`ХCEucbtڵ<)[0@iZ1 M5,~4Mm[%X\ qE̻&`p1H \U5 +0[CFo2Q7=`ZTe+6Gdjd>wu*I)K)ZnduK-c2!HF rѩrxPeQM~.\E?u'Թ]Z"j*X2`oN )e%՘)s=[r x8iwnxԠ5jF* :$/Ǧa"e/&:tmKdf< sEA`=,911FvVgh\xYA96Yæ#5$ 99w:k8Iӣ@ʲx$ҫn$N2SOI@35 9K*Kz`;óB% -4%W*!@1=IKYH JS껽F&Yl(W'S ۱9m ؼœp'5zɂ" 0iI"hmӐ70`(7!ڗP$CD"A\"() ň{빈0[0a"&) 2Þh)8ՈD"Ȃ\(85B@#i*Q6?0C?|r+992=y@P3 h8K;0,6KA=ۺj<? D !Ž|sF9  Ac(ɻJ XɦP k㪊8jF).7\.(.Zx<ڧPF''^D{=z3 7rI #R+@c >p+q(R<믦zŶy>2|!Ҩ<4( F碸[[h qyK(¿P# ,hHxԣ9 ٘@ȭPl:$R,C:K5AA\4=-Q* -[; ܝG єIb*&3e2nb p..P.R6T7tC@Hʲ8T$8мܠ8$syBК(/m6dS D^`401)?K <ԘpҖ4L=:P5^TЈ̝@3L -1b,z| bM@ɉ@5@3p9y @=9+sxnRaT (G tNEYB YR:ԓlH$›qՒaJ*(NT&fBTTa'< 82ЈZ4*J`)5Co6Y +@yCQa˅Q} ;4l 9%'d3ۯ)"1E ӷXDp >(K⏡eL?`8 te3F ˢ,:j@4R[Hբ^UK-ݡK0+V,.x,,Cne.V$wJ1E}8T{C0PXt5<Mm'ӃT5)m 9m*" p#`O1/|ڏ֓88Sմ?P0@S Tc<=cZ0I!$xVЉC(5P f*6.-iX9mCRK`nX#aXX m(0 c[ǀWS}*xj[` 1bE_yy#f>ǀ`6[D k]$ɍGN!jIi"zPo,Z8 fSqg&ꬮA}[P~Zȃ@yg9^Lĺb"O:h3(\[hB_ Fٝ$`}UQeN,|Ӊ3]rCW#n QGjʣ< EqSC(y( N,0#6o!M(xD}mIűJ2սĀI R"8)Pk鈘Ҏ`F1+*DڙHe)f/?Eɡm8EeҜg y6Sk 15ţgVJA5 ˞^Z~+i,!NI}, MG -amD\UbV~Qix N3cR.6P Vj :v0䮜h5*w칐}vEW퉒՘Elkl+C0dq곾Yk8Jb Rx'0ܘs'bE8  (?=sڎ}>B'a"1ŋ6E5Q`֖K*gk`dZQgq <> o@zP=!"h@@SgLQH>ٜLbөVUBb7`!Oܣ!]lS Sn1lgGCD ,i8:b֤ESs|F$, h ȃJ lg@sI?_؞86`"F*sx &*tZ"($pYH A9$ X*"Y )@v#ݥetJHɺVl U~ FOVA3aj*3e8t86 7lB2Qh[,$32U; @h}pԂ4!1 pC-MGńI-ajݏƴqЗъv#(j7"pӺugb f%!YhQTLR-)u柌̄+Sy-f1ep,Ϭ31p׺%| L.rdB3GxF+HSO9D_}ǵ.$?ՏeaJD ]:J{m+IAKү3t" Nچ 0:&1uv :b2 QZW?TG$>Sb)oqԽ 9mD(jKnB\B|yDgLr^9$Sa2]XX `\J) Jd=b(ƮD-%AA$AfdmgLat4!j :<] EGhB _e<޻-ЌZIWiW[ulŬGZxwv)UBw 8!5^`eH,L) !|5^xH= Tq iGw ABxAנ}_QP}_%(U[hI 0Tm) V`DA#ɏHߪ-X3LT QYRY<󈒨,F| bf=f RcݬiU2@jA\ n-!B  U]k0W͈rK$BtMƜ├8i!tБtGwG$}~ޑW^#¨}@ΰ 1IH-XEM5ՓpbҠONOubPbh֨AI[GܤTNetapFxDqXUD#hLU$K[pYT TEK\(iB#Y Rde`]&F ]E0/J+q dKGrl%dD>BRgu>$Eu:'$wH"!D#B0Vhէ`::ia`ay,WG{d%GϏ[Hӓ!Z!= |wDHMTE`(h{ e%{Y"'ҔY2U@ G**lD+}aQAld/ZDELԣ_VUmRsFo< ̘RWl’ ^FYT#fY-afbV\KcO6"DxiָΟ :l9D]ZgC'KE}bפV'QnEO ДPU`Iv9Kw!CBnH(E2xpPFliPM29 %r` DXz'2͚p ܋-i 8I~B`a䏋'BSC6!. S~P!1hȞf%hxIlx!'Л{,ۋHt+2(&a LDۙLNA$i,2WIΈz:bEvu"e Xld~f N]Y>.Ү )(eJc--Bp%eš"-BZP0ժfZ${gC杤rm~xzxi3'"(fj:HVHB|*OS#[s-TIy XP<% DW5YM mVG-OfbN}b'T[ƀ A͙M++CqB@RLE0^rJJR:anxf\Ņ oH/4[ 8B^/lo//rnl#0f0X|(T -urS'b  aְz]DVdsڪNdǃEuFdD[F2R,2lF0[Nb+>ZtRg7gdy͏ kXuG5m]YesRpkjtj] ٹj3:rj72m޽'۞dE{u@s):EJ2C[{+;4wKKQz49THy(I#QnIKyJ)dʹ}lH[&U%*~SK FbVkCp[>?IX?FFp`ZIlY6t/^ۄ]D]8EԜ3l GXv'=e33G,_ꗵ 5Ĥ':B23.Zöƶ3EDG$m@3W=vIqIImwFpv*TO:4`zwKc7O-;k҃z*ZAH&q> f: C}P&, ܬL|DW$Kv _@9_FXB8Iy'd8?){U2#ml){/2&,@MDc'Y^E\cXXn/w ĝ y7tq?JgN_.?hp&$vSyC-|Rd=9v<:3?$mtwW@$@$"4$x .:x QA.>d1t( H钦G\0?@ 90A|i}q bEjMt`0B.]w&*CU(w]'^ ><%MR@2CrqJ-!R ,<q`+V'(P۽`wŅ mv Z sOamArE] o ޟOt 0? 01#A \Al! P3 " GdDE"%d0_&oTB  #'2iȈ6J$C2h)Cr@cB/E(Ɏ 4󢎘 4{:djj&)ːi+^:ȣJ^B7<'pPp( M3Zk,NԼTK'"!Vpk0['/* ZvT։z5$-&![NKœ v-9@n @8@+nl׶ߔ t#n3;g<IO=ZK"3l!P$EqJdPŽ$lK+sDUfSNB\qF~迅`H)TG4ʫ=~)\%I157ʲ$KI$ M:;2 EI#|2ic©&4ОԈ$ ڈ$+4"3L]Je5NXu.Nۥ~LUમV K /~/k/35VG?SȀ0tծ]zXk p j9 ^ğnS]W~rǎ!aX=@V0 ){d!)@ f00AكZYeA*ēePg)SdУ MG*4 6QӖN!l$#lZFV$Er hĒI Z(7]ScRIHDp,YN呦o*`:ި(PrIt"Vnp#rX%SsT7*,'`^N`/'p\1AUcjWU;$Kp4  !${֪U b+`bӽ9_ qx7mP _? x- zɂ^RyLe*; x>H@&I6 A4Ɉ4l匡3sІL "#*?e}R+MI>Ԩ_zQ(m)F+uRhfebI@]QIwNKQNoQ#6qSd2nr6"* (ZUW%Ȼu+aBzȔ - d:^ 'JU0F=/UBN ,6&d|a&C AH:$%!yϫ .k[Ro4ibMsLh|Wծi"{Ԝ&<_+y@tg mzjd4صö.u@ EQe> D}.8[w)DžqˆT,䬃UjZ7;@|q.Unɩ29bM=0:Q9> Nqfd. M\H.9~{L}d+'_bΞI`Gxk{K~.,AX"n@2-ӚA/nl$ODH$k>"E"nE+$@(HJhĺmh>xfM(F\ojXlĈټ? fddvVĊ|n nvܰ'flNblmP޼*Dl2P2"xS(J''b .vUFv\BuH!oUTeORGCR1/X)CepQzz0d5r4g{P9V\6ƥ9ʅ:d85;;Gh?$np@>&  Fffĺ jLDJhHڄnlHGīE$: PR,B#KޫM^f~0k:g#H+ @NF ŦjI"f(Kpܐ68(JcX`E*/On(mr)0)Ϧl u'<*@crª:UB2 - jvů *NR0֯p.,{J e\f#Ѩ_'9鶘H%vb KҝܑA4 -cAC.()6màA~SJjd ˢj&2HF҂f.^3 :фV*#Y gF$g4P!{VuUl.o`!WD((h (H&dndS K (tJ/`*I7_䑕Xs ]hKP7!;FTCBf*Շ8M Nb = '(6'# Gh~*#MJ"QhS+-!*t"qCņqK YZt#\9!0D.3B#XeԕC^.U0]c5,&n!́Hk1Isvg^xe?&$$f0H4PEH lİ!tV j?8c5b Mo $(&cR(oDV)zo+Apnt҂Z9T؀ ղW\U51[xT1]sF<TP Wn/\gi Iɷ8$a:B;y[As9i@`3jv|9 DF97l?fQA*\ ۄ8#d65[꫈V#MjD=[T8L~)i5mUu@3X tiis&ШXήDŽ]T,B,!+(^kd(b4!.KJ_ ^B٬0_5cv4΅{nt6nֹw:FMϞ=`.pq~@foMDji~OĞdd>]9+?<gfMQU꧔߿!  "<_%L@P +r42d"+RpV^MzBl N2៹I y$?P˟<ϓS/ի_wʏ'O_a !Y8$ʁ!(\UwVa C<@CBb  -ɰ-xC&Na MF `alؐ baCE$C0&t@L}&Ћ (O> iPLe&%~<])Xd eL Oe;KDTTeadS-eLՙ'UeVHX]Oh?VZr5AyEVt͵_婧Wnyc$T&R݉@J%0+Yksk}Fp%!o t=OLqVt>1qe7 ty 4z٧^< ;Y` TCNaLNE(C7c?<'B`| 1PA4@A/4u8#C:xQ 20bŗGJd0}Z.eTZTlM6GRL)uUS9TO $ @XX'TZY>[o5Tzy1h^!Ucj1z w&ۯ $mMofo \!kqf\=,q -(Esc^^{,ьW!FY^`*UP-(gi$"fN!)q2B 80#a5[؊p>]=Џ(0Nѣ >NsKlސY¹䴲HoUui]#`:bI(lKLdx]WN!Ĉ%/if"-|>k"BLB_f1:DF_@0sD^FF$,viKW0' BB$"5)H ֳ{$gO~£m^; {B)EP@+|Ve.j@*ReKWJFBkcC-jіlK%5JUUBC ut!j0ǫm5Ad$Ԁ0-Vo. NY&S.+ 1emX"[x $l/X=PG(aB->vGS,c>eEi"F[v^&$!FI*u=P#NXl%8MdZHІF)PJ5DG]i&`QHP$JMl[H'?`Aŵ%/~ _pe`Ā/.LnW fkS\:&\50&l|U:y.2ֺN\^U37)sNY_sF1$Zip3Ԭ#}+ C0",тπ..f6F ',"qҫh1iiPB7GZTirO?1ȟ["Ҭ'Nw8K+ QWdۨ5]ߑ%-x8^2z{鐼-n).@ܞ؆WT@6F.|XWTC|Y+4;NܼأDbf? ]Yd ܊j/?9G@6wfl>&yqm4-M '҄_'TFgNŧum)W78rrcFo\7]a]g`7vEvvSQfJTwB9R$bH:1`+TS:x-Aqm&аUR2b%bV#45q},OLAԗ# V6FNRRYd&1p"LW1N'[4XK(ӄ_@AOb}!Dy7@?#4D}N~Xfc:4Dǥ㇬sx' 5]'3a`rM65_r#huurS _$^7]j&_Hv7vkvvwz*6l:q:F:h:RV-Bma-m6I$ I%A0 /AA$gy$ qA$oB%%C{%{4{!҉LqWXa*M;eKCkhNWUAZ&Brz3ԓs>DPqo]C(e'deDe6joQD huRHu2FUR7Dj'!h7-Sywls:3a;5HxƢx#I8U-'Cd.O=Kf@\ P`(4AA~~M4fd76ѣA$UZf>Q!rd2 ӛJ/baU/1r<.g.&&5-DsI)^$"˥NFIqD&joSfX^V&eE)v!mwv`*xXR7xxHגm(I1IbX.ZxrC`%yhc![/sW !Dq't|{5!R/_"MCR? 2qsWq2"$_:D(,xbk1Z@~1CYWb&Ugy~,1/I%C8Gq'RYp!^(!j :  j _ \DF&7^kסV`8טT bɚ86C6n*F!yzw /:ydCrZDxDY` UJ001Z %$y/M$"D}=iw`ZfkѰDKf钠sW3~ ~w&efH XU!Υ`PISaQG(@ a 6j(^`FUF_FMtQkglzkk+)(20G:IJɚxʲHrx0 3Uޒ}ʈj:x I$9夅aQ:E]+[9P:0BvivDSkrs KqSRjkt>srrRҤk%% gY+zʏ7!' oJB[Vq;CeV!ryv7Fzja!_i Zj- %,赌d7q6zUkCGKH7HUT-JqtfszP bSzAUcR4ݗO,!'(!񙧹\/l8] q3,G`X0iDR+cĀQ[tQl%C;)A9+sPZr4*H[nhIpw`E]OEjduiYj+688BS~EtReqzxCGyVqQ5aȺqa*37*rx8*Bya ] ,DJRc]; tKƒ6THci7ICŮ''>c'AD(3caw0Ƞ!A9yrq $8YG4S%+k8t*T*S38f)zOyvN7pQFr jE+tjD|WCEɘLHu`+:߸U *Co {sK6_Ĕ뱮4F$;'$Pt6Kk|{0 6Swi벙DHt(j%'O̓lp|Y2mfBNZ٫&}k 9eXs'P8JqXs/tX_(tl!UH `y z{a_[EF2RρXSv(;lɭ1e+!;L򶷡l,̷ \y'I HJ"qh њ j [-s&l64'd/<S]{Jj]*dpX3MLvR11h|ʈ/dOS,MىxPũ\VI]tڍhQ_XGvgyc_RuS=__GjRj}ђ|,9iKl:s78]昷cך2=MKjCҤ5>a{49aS" ցIFSPKx6߹yaF6LA¶ňM]B 4>rW5/D;Kx^%  1L }B‹&_[^~ܵ|&v+lb3,]( xAʦ!bB~{ 8P3|RA4$;m֫16~/RzCt}s%qK-%.B?eF=C27~Z\sMs&)[(@4QZ^kFD'`h -DhEnjY_*M8PaY)z3Sy>AFc^Z765wG9ge؍bB=ʪxαi޺.zw5Ls^{kU[js,]hMc)>=(\JiB3֕yc ,pQ]0`ђ|/2&g?r5z6D<4Qk$ƒC36+lC SL8?  %>dSZ2Tǣ3!93(#`d俌 3GML2¿3@MP ajaS H05AW5a$k V) IԒU6l[O]]w*<_ 5ٵ¦ U柌0+cY  ث DB  5ٷ bPmKtp 婥Qx $f6` ~Y!NiS×Op{jx H6P#NX fM*"-1rp H莀 ȢȠ-H#/à~ѣ~)( :ȟfi&jʖ\B:c B*)nkJƺʩ4J,L-, $r |$SJH/H{/05 C1Ӻ :̲P4z RHYsCApCH U8@Mac1P `D'HbߚK@e07ꛔPKO7v/l-U0sC-B+5N0o8 NMEMD&#&8ş)! iԉc76H%x&5*)oEg)u֙$ *8k)7l:kͯ"=:!;=r.BB%3@"۫:ΐܖmؖnsi֤y{<זq%2)qƩ I:)<mVpFk:لT]yvkgI˞V@i(~C p2$EB79!?qS!y{'̂½()tR3+I mPw -$Ea Ȕ&A+#TS6¨t%ojKBZ֧>IOk{4B !_[}C QC$bxD$&QKdbD(FQS"ؼfŻd[bE/ccxF3kTcF7scxG;{cG?d!6VQdd#HHFRd%-),ʊd'=IPR$e)V(Mj$XVR%,m9[e/sK^ӗ$0)Ld3Tf3eFә҄4YMlRSf6YUҔ$g9yNtSg7MoO(A* ehCPFThE-zQfThG=QT#%iIMzRT+e)GJC`3iMmzS42Eh8S2Pq [&ȡG]jR S,2OPT:Hu*WԨfP}*W>^jSVUW%d] yW{+ CT`թDDq",%Ǟle% pr< {C-2LMOsx6M-g;5/r+?;ҵ-+iZZvnS6q--"{\wnuҊ<$ihC`<;V#LA!A3P*ySJZ(}7ulp/zh^+uaX*DM: 0 ]"Q 6-OefvtE:Sx±*k;40@c"d@; z&٠KF2p;{ ?ڱC"{퀯03E/˙IuW/_V^WyᲗ;8Bgtr=R/Yt^nhJ#DsrM;?wt?ݎ4(DV Q$g:E],ZmF|(yW/umݿ=]aVcl`/6n[n6iَMˢF>+pcB7aՍp6kf+v;lU׊$8~n<xrO|!@a ׊aqcIdGONpml>ЉJOzћ/QԡtgݰQflxՁ*`w;q熓=? dU0]eVyG3T Iu1wcq"z;+;Nv>H5 0Z`u]A[]5Wz`)Ptsz.Xù.+\Xԫug۷z}k>/Ԗ9qhCK /{}wB@i6R =pr(9ia;+MCMS3ףA43ADAf8 "Z T,l3* ?9;?+,?B,,B-B/Cڸڬh57*MR==#723M 4pLk3&3TS<DrDvk6Y7x!3Tk>y/TDDYH/̓g{FJ?K$#?u0A42UF2u!n4?z-rS/SC@ǰYvԲ\;(C9PUJ [4<3LK\idʵD;Ԯtˢq,GrEVT!1S&II'ɂR% =PEZJ<#,r-9pHĉ[ʵW4=<("7bSJ?L-HL+4O\.{C22 -f38IczJ Huرcv58 ԡ+IsF<_C*R6BC8Lo4CpģۡwwAs4ɬAYC͕̹7Zw H 0kML8Ak{=C B %.C P T-q3#-7SNw}c7?<Ѽ<#7p3GM<@[4Hdͽ.qG:τK/LӷeK, WTQ`{xܭ6?89K!s-C+ P=<>?,)S?j$M*M3}=#z/U7u/u+IrTUY[./JQ M5US=Z,D6Uz3ȅdD@^mJ,*..2K$ɎeMfȚUhuVf})lVmhgUmlQLKCTUKzpA]#D?GMݶ+b@5єG7d%9*RA|U4URS3\׮`@\Ձm^:ؐX@,YYmY}ٔ5YX2JXIW4ål;dLѷ%vU1î-[Yȣ.d-T{Kv%VjZs,M[P,sۇ}wۧ[[Pu-tI((k)-\=\M\]\m\}\-nϬ\˽\\PG+ ]]-]=]M]]]m]Y\͝]ڭ]۽#Y]]݄߭b,I^-^%^=M^}^5߽^^MGZA:?_B_ _- Tm_}A_uվ !,(xRT23 4fHP&fEIXALG5BWV$G!/S9D :0;L:ID3?^BIW@I& B ZVD'%ƭ۸pӨ}dѺɟjKRlNVE07 ST͵tH=)5ǖxօW5^VzPM-Ȇe_^S)bXsJQs`uX6&,Q=JA09dWۉfs`@2>oMN_EN͓j; 7 WY[UO)uNRr^U>طΫbI̛}w]\63ٳ|B.p;,ڍ\s[_H2aN8T7m9fnpa|Y崓ʨ뽠KCuD;SSSbbbݪrR[FFFۼqqq6@|||.YXzlCDSR (*\ȰÇ#JHŋ3jȱǏ CIIJw˗0cʜI͛8sd2ϟ@ JѣH*]ʴӧPJJիXjʵO tYeɞvڷn+.ݻvݫ/߿z Kxˆ LƐKLyORE ӨS^ͺװc凯?~rcJ:eo&$D}I7Jyϳ~޽WwNyӯm>~߾4ݺ <3.3?.BG$.> @gp)txx{*w"xh袊6裎F 餒VJ饖f馚V x OvaqCx  x  F7@ٺδYa2,vK榋+'z%s@$>#' t*KA<P 4(&C/Rத+̬u`̈́){wlQ>\TDmH'L7P?O8 a ]\ß{ `}2x<D/m&-^UN =>Wx,D´/0 @OR0ܣq)@/>I)qB]QP 타K r7RbҭP+!V8@J/% <f?x@L9t}jts=턻}rA-Cq <T8>lSc0B&uHBD>mpDE4$$2T̤%5Mz(?9PLe)WJV:!}"<<>zmH0F ŴD*('L+}bdV,((`#T$ X! l~P4:') ?gȆBFMG+)AnL G`t(-HIO WNh7-C:) YŦ8 RZR+GEiK;$u+m*ԪΛޤLBԧv^XJֲU)MZֶjhZ ׺xͫ^׾ `KMb:d'KZͬf7ƞ hGKҚMjWֺlgKͭnw pK50[$}?KZȮv&" xS5ypTx'; ҃~oK XN0x Z ?t[]AW0~,P۸5ܤ7bG ;bHwNI+ݤBI@pY?,l(g6sRk_,fM,3YvsT؛>%v2t;*eru7z4,HG53FlXӛ&z BFu<'fM+Bх5 ]DA54R ; iϬ: [`+i$FIs*6g{n=hg׹хEzۻ¶Jo*>pOsNJ㠘ZO~@\(W~h>\ >cr2 g(о?XX@ࣛyNn7cQ ][Ft=Z} J+@ڑ2㹣3>GqxǻrwpUߨ}bli77ukM).4A@g~͏u\N}l`O8}؎@^TO6ed܉H6{^楨r{ 6t䁲 THx*;37m8P bU#crZ?Y]zCsŖGuBlmmB H{>gBzJ`Jt AWzI{"{2sGlghhhVoaf3H}>d}:GpGicadGFpRPRY1!BQjxjF(9(m7b6}JaׂFhduVs17gfzEfBрJ!KmنL7`({MsΆgt6u6neҕfGr4k+GhWy2avg}Ia7FT!pw6w| jHx?T7qZ~ww]k^Xi׌<6l\v.]eaMqlcvz)As^ts',`{m֎Qt@u)_}tIm{ֶ`xXg{ 86gçfHxhyh30ȑ3Hy#amdvq_8L1j:Ƅ}g~H 焺xT1FyHAdvDvvk*A`wׇvaq57y` })(hۈvUqX{k.wuIQt9f}tVTsf6u{5u%foHnyUAou"(+(y3X[ƒ[ɑ׷v=7pw(~w6)=EDɋH8q~7VG!ag(/hHSy(xمl^]~^8gfu?GGY9{}Ih(HІ ,PXgugvu a yf)(|v8@oXb%qcv@!|wF8c?w5GBq)؛C9BYƚ?Aq.YT)ۗ!W|)]֡dyo>a]L^?qlhgXft&CtZ)QI }j:{~t zm,m*lYmG9u:sL!rL|#*p!vaUJ}a H,J7 pH7~)᫟VؓpIAEJ 9D*c@֤i:h8vZahvaZd'65rnwhzVl☀hsv::`HL!LQ _:fvjgffh J sXCNɲj+f}A: h4}*DK:pJ뫽wYp::˺F?~6*z ]I }AbZL6kh:fe9tᆱCq?) 많[Kw``ItP稅I|cx:|NJZ:. }ڌ9ʍϩ޺v}4wGGƛ?V5ĚMXkÚUEQD1Z;b{Whշ ok};r\a( iSsk 9W'uCh{Iѧ ˰CaK+`wfPuYui6njÝIw%f *تig[@ kIۢ[~FۼQ8DfS[RU>!@FCQȵKLyRqTjiϙA[7)1rˊ]Vr7fYvQ!Ctܸ}*`` `ȰʘDǹL )Lny,|ug Zo[̛ס"w <;ɻڼ-ۼ6wYEL`d<` FCjTصCI9b:g mk}å*۲Jq hQp ]l dY(h6La)V>aҞL { ±9tf8 u8M#]Ⱦ7ljv>,+5hGׇȢ|WQ,Fͮi܄Fb]`+9, C> lLsĽDy>[^yZ s Jy=f@:칸|ɞ\((ُ;ҡm" &+Φ Xul䖠 ]gv 7]E\:r>ԶM}UwsjzWMRܢJ8:d捽L( kd?>awxǜG!{=h5"0˽m}l=N5ى AQtAD@~Iڠ $mʬ$lLt#|ӻ?~+|m1n&2ඛǦ:B+vƻovR|g޹p[Mc[\Mm<`,-Q@j̊ nzҌ~ЫkK,\CYW> Ϳi ܨ[ℛBѢ $=!L㥜 4͹ ";阣kg}I/ H=^-G .\Ĭw]ϛQs]TSOJ'l ș-R$LR*d9y/0Ui/*#!&hs<ʮ*° :B !R$h-K+!g- |$:gŎ 2Pi1,(#C5lʹԴmT[J`#2ۑގS6k!ocs<L;a;!G?jD 5Ϥg A:2)? t% $4 =4zH<:p!q;BA#*+uXRm(v, wd0iL˦),=<3W51Qr4!jHshP_jm[85rOnORdSC յ; h( \#9i5uX:䟘c)>DuoUH(".բ"YuqX%ws٤ig!z2=S׵Pe,a_4m<˱ur!3u;*vWHv2>LLgG|"p UuD'BBdWݡ Aap9]IJ`5VEl9_kmG:̐7(MnD$få| Kh5$ b6cfW,gb-ԑnz+Ȣŝu ֹ"<KFZ\ֿ"ϵ1}dfMrDR&HB D=B MĐ=NrCU/O*& Nq9)$BGaV1'2D8RD Ml`*A) N+JN $8 2 9[2d`lu]uqW3~^׵Euc[}&6D$2~*ġuB7z%qo`r# Z` $b{|!r)@mGcsVttJ_Hs݃JpƑuk[: ɰ^\δJʧFUF6'TBq!%H& _ 6dfMDbLw=_ǒQvZR`%؜q\xmK<A']a80XqYU_,$^@nq%mMzE~/@؜I^]Hm KouKJ]0u%b3WGE\=NWy FƒE:1IX@g<&2tKUc^3jS0j5]fKDUBOcwhY/IakFTa8٭t]쾺S6ܪ5/SAOԱģHgٰs,+;L4&vd%%+0!P1f=KYLzG3*_WOY ðr"J[ssi] t"^ц~ukbEWK<&!ꓸWF;!.4U)sd'+ZLVժtKJ|ޘ0j+ 0&1EVXuc#y+tW@r}k6'Cd{ ۫016Sj,Zjʪ<'o+'s-s+ xC7;<#S<=(q۲TrhЅ+T*= Ӌ86 +c K: +".;0=W++ =S96\{(pk>C?d?c/ r rؾ{HɦR 5XCNl?"۽^k,Sž"6Zc0+p6+\+\t#^ ,"4a hcA;z<(Jz732›Aʣǘ+C4F'R,Bc4ƱI fa{B)%k|YE dpAKc0 a8 ,bCq.4KBSCH۝SkZDLKL >ĝDL/>PiJ*# D0LܮDc[뚮HZJ€ ,,} +FE 6@Td NbhfdЌ,è+ 7#w[<oPAYJ(26YԻ`0̴ŻL`csJ-DE7CţT??C? ňH@&aJMˉ%Ù9hS?4IêDDDԹ*pDdʢ͈Y z=3TH;ňL^[6p #1jOa̋q鬶 P~bVxKXPXF(B#AϠ-ȻA B%h ·ʺLj{Q)tE[ ;Q`ElJDH=ȉH3D+4+4E{(Fq qͧJΒ/,΄4$SzI|Ī1jMTı*ʉ(%·Zd:7'QU[lT7]ѣB[O5LEZT~䧰 д,eU=Dž7]X] j7tKDlPu<ZLKO!FJ~"L" ;Fϯ[.H̭c|3U4H{C6D٬=D9$0:?I S1Xp %!:Lӄ-+,35-5/-WONZRC''MM%5 DUOzThԕLMYY֫Y-idR AR=h˗;PR}ՋƅLK } lA ]v[Ayc-f5բֶ} B|QiQJ JH {t {Yr05<ȱsCԏCS{\,}Mq,=d*LI0%dB/ɗ|N1B59N+Dx7?MPm 5H+EM{]YEbٜ[CUm[+hE-=A _Uƈ غڄa- ^%[Vt<=OmճT vdZhEPu8M[o ׯKȓMψp4dvONK,Ug,+5E]6B;0XE%Na/ܱDr؃r"'V&C(Na-؍Iv=0N#%ME=UTa :b]dگ]C-xqS,4ޅeVR#%TfnF]cCm^?ۗ}^cZيENYAJ^_^lUե%C._EnGՓBK i©jHnelڕSR>r;`V.Ph-N[< eUYTha4Fك.JSلfU&,gPa~N>l/Pa}q`b}b'#f/ sVs6l ֹt$$&9&DoU"'!f,O39y؍mWb0cSJ4v^ mEZ^ҫhcTDi& dU|_Oi^H֨h` 觖`Fjjfjv[6YVZmT]v^cuU]Wkg~fVag̽f.qfr (k/-JblpBLwDM*җil\g|4cn4Y4vY!c]hܶ>&wNeXDUٓvІZV,si0idiH>,ͬi8geNYNr jJ[t6t"owRm.+gk֪_iRaj9g~-n ']auvMNLؼ&:uiYk5 J7Cj#MAcXm;Y)rX)e i*OC1?/授䝆ъ2}twˤ-j&jWmn=ogerY@ kJRFpy.^Q'aU>4WWg^u$L8&vl%:o ã;Jp͎Er _c wi{;r_pvvh-{x_nzgGyr;?E7s<"N-tܚoC?t0vxx3g'SMG/yܔtV' /qk~/Tolr(0yp8_}wl =HrO=&^G~9R@/~\+aM2|jdzEtɧNiOr&/o/{rn'oG_1 dȐÇ d,E7J葠Ə"G drK1a,rYe%sϝAy,JP(Ѣ|.-tSLNB:&LmuȮ\2GX&Comٷku[nav _`ĊÀyja7f.Ƙ7o09rv&GzO9asY-y[S{} #Nl~ CBuիTٽ.*Li~(eɾ=Nׄn߆‚'"E9QhT G!4M>XK3 SK;wRq!UIm%SNeWBVNU&Xi"W-~tIG Y<\s5v[AdA{V`AIN`{V%C%XUFf]g%&^sŚlKڱ`fke6?3|~ܠ-\AF=(W>g#Zň݌3KqZJS獨!"ET{WB AGA:h~ G0I 1 PJ;-@tzBeK+Q=U%UKR%vceJ]xHpHܽhZ`U8Y|ztXlLFQjgQcRĚabuav@F^@YN{ KckWmF`ǜtΉEu+V^hu(nn;uWjw[^ W| B_D_M, ! t)y$7S<8]:TQZK]<]v}9&݌YzYQ]#`\sjBZu8s^+zoXD-$GTGaZukݷ݋H}8Ek* K9ў _ZtZ"w(:13Q֗Z!CtP$ cW pT 8yIm%˱&pѧyU-E9g?/r%GbWh4$&5!^kǗ /"!]᎑b#dwr 1T*h )]a|l'עo~$%`ډ:MT'R΍7:ZW:N\qZoVз]=,30cCKavm%Gp׈lXֈ^; aHl~.H3C .C!UtyXm &:D #x k- hD2uxe.ڥ$RыI5!LQ2)fbpG8)>Zu0tD9b蛭z E`FM&G9gi|iį;"2.=W*'SdY1EgSvJ`BO [ۗ&d\%ډ@(SY8Z?7v`(A2|̻(G=֤%-F1H9w+A=V(9L=LhW( ^Vb >BR򖷨Q"R2I,oV6mmh{>싍͐%(*)]V;HDdz{D(SH,p B?c[=nv7 OiYU'+=X zpY }8T{$%4 K=W i1{m&3ړna[ o]P]p6^OGY?5ƭuGXouV<1E6-NڶBJxܟ 5I3K `C]I݈UؙXIP?5Ez th[ŀ_|П0جyIEQ/Šei1H1ΑT$uՔbX QbD^1xm\< \bdb,D vUԛTTkJ_A rRAYN鍗_]CTђ9^ ڠ ᕂ#z/Zy?89bA_%&&!G$ }DqAIf Q[49D-`&n&R F"d1Z$^  ^嵈 &@]`@[6aD0PeW5ᘽTIז^e@rĜՙM(PZka@!vyzC`#%ޠT)F%3b]3$_%BYb #.KRXF,AH$I= OF*P&)&e P߽LbD" V" B$B"zVveIrd":chMGD% 靚EP5D^jek)m}eK`ţ dpdA͉AAC}y©]z a@H4ҟ!b"Φ2_&z#Ve)%.ob"f%n q6D.L* eۆHduHS.v2sIܢT U@`V cob"Jf3m.c m&Yށk~@U#juZR&G\%h򉃪^ڜ0PnAƸŕT;B\`_ama?ڔh`&hgaD%НBTj iAFk~'|$J%gLJg.gy2,At""THgЙ>`rX b)Q,2_AOvHd /g{dn" V)oF" n$JG'' _AJ ԁKB^jÌfD`&a!dcQ*cas*CڛgA_t&f*D9(8AD򠧍iڑ^bCf'$NlV~j[Qnj[p&*$q.B`L9t Hsf`}I }'Cl瞢x.D(&j)/Nòk{:mf+m*7tCȆ&Ht#.^,l_ ‰*ڔ1aeTIiM!@,v֨DAhI%Cl(QȞmڮZ+l7$ނ7ĭ@g&~XVg-_L.(Šğ"?i)1D_Q iP6%zGi6%6J2'aA)?(*bbgƺgfi-zC om'ԭ.تȪD./L5\R/Ռ%&8a,i(C? d\1 Da82čnf+b&'] p-* p(lq* ,0Bp--A-^0݆l0 ZeMe: ?o Ci nk $:`սf.+0A*rg0 .n$..0 ofbҦvnpvpcn@m2/k(LߨJ*8phIm(z*GaA#!Jn՚A*ls-R+ ?0ٚ2lٲlYpݖBlp~crn/j[V"1; ǮA*|4Os6 ݱu]rn3509-2q -@3I4&.n/=1s>?/V@o 4,okGG.Ztpft:qgq>G!Ƶoq-O mfځe"kn pPp-j <5N?,qD2Bc,"-]5A7t/ 7`⾫Un1׮YY3Ls\ c*5_׮5Ws_4/A_5`C`(v`6 P lxD8Ŀ}褱y<;]Bv65CY]ssk<5r7DYnobkpj.gqBC#wp+KT?tQ-EϬZbHX2,#Jecoƹ(*mzx_fr&}mBnA (#+S7GC;sU7VsZ0^_0o3C~8l5=[W0^[svcC*P`/_8bv6*,4+D\dttn8?\†6vj , 8My v l8M={xY n?omYO7H8k0goHH?AG'?5d&cr&'DŪG`̈yK#ܴ̉Z%o&;Վu2RBg.o-p"2ن.-œ˲p1ùovy/ *u58Ka#C6xAv_0d+L9ISFĔSӹ0tXb{'O/3D/n5Ǥk58\GDk5;n9wXrpB/@*?5u_CQ%ZvDJHoYްrrj#'tf}7_G(5)Sk|l?"BGDٺonyy=8_{x4L;C`uS;xDLs\nA{ /eW9'  *$`KK]6;Jh9v;n|A|,=ɟSKoD'GL=AtCAl7W1^ވFԺ(l:,w/'_B'灟o[?oj؋=@oԢQ&TۿEܼY7rk8 C5䈐 QoeʎRR3oĩ'N2DfQ=/2t L/* D!X+­*t!5Bm;P^R͚PѾo*/UyhPشKs4-c%%;Uxr%Ȅ]Q(aeΛ)̿ P @yu+38AFc Z6 *(!:E!P%3|I%B)4U4C%z b(:ʨX* [̫F / ds 'Zʒ$+YBeH@f&.|)@"?\E雌 󔴌lL2'ȿ"y {Ttjrl4dKrn5mT99$m}!vaζ A i֘mߖ#Q3r) g:-;Z;+ Y ,GtY\4y Lխ! )lN);B199!FX86Wbrl1" SJE%Q'ÜOye!' ij Yo!\E !@RJ HHLUTRkQ))Aba"ubX.-˹f"!91B(By$;Au]V˰*g9ˑ>Њ:xuknh[m҅[wҊǙUi)3ai8YH >#\ooIto_0|LSZJR*DI]T d\RP !GB`E.oT_\բydY ۯ-;9@/s|-ŀ}bB(1U% jNث-3f),x:TgBĺLTZrf9InO* 9͕7l`Ih$^4u1) >{ۄ2wdB~8udWRL\գ|J2ZpL"b-Rm!ʮtF4eK\`|ֺJ)A֏<Տ9ln@葢O\n %z,Ȗh,t0-L?~P?>ß2VqRqVM!ae=cv t+񞀆&. P( v 'ojBEHl@`ɦaJpnqG`l n\`i P6L6eaRQS..eNfN|L&`4.~Ap*1!@!mg @x~ \ plO4 B+ vؑڂC m ʞP!pLN- ̟Zϡˆk+u y!đ q/ o(PоoT2P qB0/GPrN&s}.=>p&@e@IQ) P,b-Je G06 QyqunJ0Ur.~~%SH:o1$-!&n"2 %2P9^+:l@W(YHMeA=TS:%xoo 3 PΞ7=R#pQ#i,0/=VR.HbR!~n.'CP-OOÓ+< /|r&Fq*(2? 0)Q>KpX `e*O3, c>-}.-"-+qC%2OTRSL@DiBip@E-pa 6!tq Lbmv2LƳL3Uҿz1tm'C,Uׯ!Y:NN cpg`B`[ !M0/Ҡ-PMs-54 ͇D !tKqSKuF18a7v,a$t+V;UrBV%9WiqD.dW;eCiUfU|U6}3hRTh}Viv v!!pa@6xDТ+X@B۠RSl|g p]i9x VU~9Xjwn?cSX_WG5qg7!`K1rgլlI[;; %ڃFgn Y rkv}Zu؏:˰Y-yCyC6D./y?QeR-wu{wvrBò 9!|[5=g ~%y5!S7iS$=؃V4j !B•!Y~~Ԅ"x9xYzy9%xy H-paGx>nQ"m9ZZ,u]DCZrW$  98_͌+XK/`cF}o Z3Fv5 K{Jx.A6{縎?&ey񙋕n74ۢM)!9'C]ze:v!tYy x.*a !!!,"X:!Yyڗ}{U9Sb jw7BO ՌGvaZY:h\I]]*4?+y 9-ԇ{SBK] /\ >E-~萹r"Gq"`d $/HI4-!FKD%6tW]ECKTjT2OUg)s?[VXUuZ2rփO.E$M3`.m2CXHja5jufU4ZEn?=nF@}'nv! ّDts@afH u@gXfܵhW*z!tB I_IvkC j)5Vu`MӓDQH9uԢF-bD9$ZhV8O0#W= ?U \.Y},b3A8bmԴJXVbYn$F%Lolzݙٹy1v\WDP 0 D( gon-,rz'jGo@%W$6ՄH}:Q3jUD*!JwdAꨮ!va*RrcXaGTDG -OJz-KG n[yˈKZSޘ X_i~OaUDymH5m]~,Z a]Cھ 75ԕI] ]̱sHZy\Pc(k5@pDCeMչ5l)*4LLF0C29z0~eXCm uh(CK^\)I)a2lhb⬂:yG4,˱n`hY?xh\8*Y("nn"8W,YʎxAxuGkU_WTA-sCuiIrGհ!X4:uspc!LFH |ȝ&AbM,a!*Rb1mxrI&pIMÑ! fCa00gm"OI k/ENN .谆@iNdC EP%]z%l":O}pcC.7٘Cj0GC/jQD:>RFHÓ) ӗ4(tЄRt/mpAv`1pK 0R e1$(Dб {NbpAf*9|uc$T,7SET C@TN)?; Ј6F RMr@AfTcG haZNrB]QdoFv"( =',ОP?!h<$Hg@S V\'u/OzACր.t-f)l.4qއ(#5yYT([QWU47/Rԑ*sR75J-(eE/L¾E jvM~M:<'Ť9CbHm(Ǒkn]7vET^m>e-‰$&k2bHJ(ek q$a)Ӥ򔝼TLQ@ fHQr[ɇ>dϩޚi^s>$w.s^cI4G]y^''bNF4{.h?ENOӏ\aPцrEb,`>.mxe)/])++rJ0EnTBgD yԘ61bx\;Qr:b>}} LZEa(ixb’ mD4DD,K!en57kySg#F蠫 9x\m|^EW?aC:X͡\V48.W :z+uҹJ(Ow&Zxv] ?uGUYqq)+rC(ά㦉@'sҴӺ}E\^aJ:F.?!LATRL"LHl­k #ѨRp Q$G̩tzְFdK\DW={JmW˿')*?H/vЧ9>}uHs͵;Qnj'|<.t+]^PtihLg\iUN\pC9Z9qfsu,oB@"x^4xpA}@P%hvsysjp#.awQEfŒ[qg([xFAYKZT!T3A'SuSEB$-yV'14&C GQ)Ho1Hg{={{X|q*pL]G?u7"4"-`D8G7$OfBCckd(D%PahNijjLgv]]xNpfNtǥ@ р\p7e*1^^1mVp, jEO(j:7Gp\\@@\:#v^6N6"$ 7;8;BU7@xń) x(XFQrT. %T ᰑ% x TQrAa`vS~Za*S$ƅd50 d>4@QB<& @{XRɕ^yHxXr*UVR60I "qhDQ8)y@e-v8Vk7u+dkdk D+]`i\!]\ifuj^vu* ٙᙟ)whʘ\p^iEg]0hBfD?d l`PCE` wPP%MTs G@gs6w!A,9tiIwZ/]y6c@MEE.8U$U/-9xR99Z>0 @2@Aa)硔&L*LɔPUbq]y?HO O U@p m%0TPeeFGߐG aD o ÐF5 U!͐`%p(; LL)&(Z!1&jo#SeI US5L26q5We^yaY[/#U:2=JOB7j(\hU1Ġ\r*yyjضI el <ЧUlU v`lu+^Qj P搩ʠ~& ECˀh7ŷfLʪʙ絵q۶h vK:ZBպxiWZۍb"aa`ʛLd֓4> rм0 op݋@Dy̸Ei@ L)Bs`͟4[Lp{fP0'{{loAsg&0vVh&+V+ 5XJe!"BQ`1B6D$WViO?LsF)`wdS\|JyZC<КnC-Mujܷ\NꪳZ aR  PjA]E Gd@*rAs ,ؑU&Z aP 2@f> 5IDR\TSaZt$KLό˻˸lopZl)߼|L?c gA ! [( +{Qİ {U9ϼG|QݢD|r(ݐ 2Ǘ @!5\ABJJV±q rC(O>BPN+m^hȨHlӡt\}jQtA Y\I !` r\tиQiP`PǜŚ @ qQ um{ ʋ掭Kf-tT ` +7DIDԑ4g˔Aq| ͹LJ]4; z雁 *L Lq1wIFWqf.F*g3MJj7&@K`z96b&7H[QjaeNPMnG3Ms^$>@-vC b*jk1΀a\69=NUi,ȅ +@_uM]np*:LU(`*a3:2`}P~4I 3HZ؋|j˅̳ g`m ߼ : &AL1{ּlnHr(.Eδ^c1ϑݻ{!>,'1C')(lVS|70 }N:yGbSmQ.6CCȥ ni;L&^RKJӤ9LO܌ Bm*N m[`Kn[a ^rro ] n 4Pp? &$5pbCW I$ؑ*x$NɄ%iH`%Bg'Sƫ(B^A(2\8UV7o~_74;ǰ4c᮱&۲wWׯav!\*T]p$8 ?ipU*G[2v M5$|lfǻ1B Nǎ1N#E wPtܶ16􍃽c}^o0mP!'KQADlB ;& 8>0)hJ"alDb!HA:zqGsgG44##wt&L)%0eрA!C0D!"xȢzl@M4HGBDhLوFtЄCJt&<\.D":Q8D҄Rx$4fBpXzaZY:,k쌺lE/`PVǰ{Yy1fV$j'tP 泱 GDk:fl 9 /3y GeJڑR\.4K 9NDz1lhyqhygɑsDȒؓƍGMDEGy:Pgɧe'"I!%]+.p%,`_!ַjk9~M<@Hf7V4N9,A_(%$]J n%P9 0ʰc7C&8W\ ~&:fM7BF}s.Bqy ,!N 6$kBx;*YCJREFD%̛fT(CAh8n)ҷ*aiow>9툕/ŗqbL6)C 8B9h!](b6aPVwwפN @ yh?ْ-"yB"qj$4?H8%T| ^]VaɥR?AL  W8} !/]%%WxK_Me໮af_{n(a#5 gAiZXpBj4C38eXXe4ߠzQ#`zZb- - iP`E`>+,[HC2I O&eTq>46'V$:E!IDш#|! 6 I#6\亳RQ0&(i Ks9fqJv|$-P7%B 6Y<(C(2KQ!`mF蠑$A("$ PjC 8WwjZʛ| . 8}PWH!!t"koA*E3g YE,,toa+BXQneX2Z>Z4.&ýE$5y 89P~f^tRsw/ tjk ^I5h3A6`کeH(0 Ra!ojZ|2i^E+VY 9SS z 7 `#YNJZ9y?p](ù]D/RZ!tFf)>L2YXlynXmMآ8(ƃS\#P୻W;w߶27mS+!z!\8B,djiD:oA]L$AB9Q6ruDo~Ӥ2Ů笭6L:`'0vM5Q7ozı!v~}tcf2@{?"в<, LF,yrf9!UbEч5L3FƖE$1ըޯ-({p1l cY!5a8U9e@NKqW 7fو|_M'$4aj<\éNeS̯V-u?65Ng3}8414g4a"pȟBb;t}U3jQjWK,jb,i1+2) x.Z :(є;0DDI8R0~[F8s`tjJ5A5P-&.p: 95P-и890ꉘF,S{*<'{,幧ȉP ,Ls;pPhm ؉#*1KӦqBB[0pkQٷCxvR;ka7Wjx+ W)2b`8Ө`px 2zc I+a 9+,|)hmh_b  Z@g+QEX/C+Wk7EQpC CEXX+XQ8G,Zbc+ZK2=lU8<\S>#+qA<`ѽ7-jQP?˨S :c<",酲1RF2;ۺ<# 8yة 1H*aoٸC`i8 9 ; ~DʱdpSCI X6X'5j13G,ˢ1ۚh┐`- 0i[[0r@8K6d$p@ cԺ#X2fɁM<(`qPtx(Q˺jů腽] \<@+ͺX?`~1Ɗ%{IjKa4f_q5i=4(k;CKk\k@ZQZh2yaz\Dsb36F 3PG63{{3.M88cT BdYJyJ{C M 0 ْ91\p)|Hm`CA#dB-it`(C)u1Z [M'iՔEE|Uٱ}BQ'C|Q?QT;F7lhL≢0&ɝ؉JU1Ve.lϴ7HR9ox"+6\K\2MaƼ$RܻOt2`^XT[o8;?ԩ̩ !Eq˾@+2ZOzO)H46ƄHPdPôGK?3OG*U>WF^5ojGϽ0,^@b%f?FӵB 76|viOR6 k86vd|,PƒĬ,,{-%&o&$d6wW] 3;5pf=7S/c'v\  7n(ZXY B^8^⁍֑mb3ihcRT ;U_lbcf,RQ7 #0~\,p7[eUV85%&A ,]A= 9p0 II_΀f(EppnVEPn(0؈ЁRI8sS9XCK^'ELW WIͿ<^kY;@eUuxkz; Vhޙ ;`#IʬuLE}l2zkKS{VU'+%&8$۩8@z6nao(ТPX`j`a4IӍ#G*# %* N>C;C=?f2^47[5gacg}U鶶gSY Xō@z6)fk@D5.. +악tp{λfȖ?x^btrF m[ .7W7퀃hZ'¦Cm.@]1-J(-0v-d#B.P*JJ[ea^hPqP@tWFBj,#XpD#`;V%tJ|hm˵³c!DУ! Ȋd%ͪ [|Bl@RT~c{6=v X.`dZ![պ =cEkPFk*RȲR(zb,P,Bi =@ONrcX\'iLS?AƘ*QBrH2 ~{3g?c3Fv=g{\Y X,. uTW\;GNI%(!gBS8-Fc,^Ա  ({B|t_\ʺEG֟_Tˊ_LvڭADX:4(0vju5';D#.~۾*F@n H) X(fĴz߬E%k |o@UR۟T$#R,&1?}mo o G~;ÇFni^ZԜTh]O*UBYP Vch'l14#|)Jõ.ugMO:=˿R~y |Kp`o:u7I2q̵2wڿZ*1sa.c诖a&mg옶ffNEy\9s'Qg2G%O|dYY5z1EޤJ#G#N]dZ؇}.KEVt?gH}ot4+-N4rQ@(7bn֏sNO?XrG%G HOqI\ rĔ?A&#Q#bL[L2IrVQutTRIY !j(GU3B275fC5R5PD =4@tPFF8_8IFMzTM&j6(Z`Z!q2SqPIvQOadQ!4#xx4'BI2kq?u%0WvC:_sK)dt"7}(d$bqM'Wkf?refh0ׄ6ls7Ag_\f j7Gws=VIyZmWdCs띷Ig,"IgP}G4TE$_ V:^}` S:StɋS:0l~lwL9,$FA#knu{R]"U#^6tV]:륖\)u0g=gk _EҊie3P& ֡0?@T~q ʊCdE~A>$A]ar+໎>w8?"T '?A5IzҒgu(RCDF,pݰ$:p2nsY/j痾°N `(64Ԑ?m'kP2D2k 5As44afD`v @#*3"Hx̑=ЦBhϙ3||@ É^7 A-}卶$EE@;~+AZ~D4.t֣D"-R":&$xͥu)ůVq^ѥ=piLb(P?N;1x`Pw/G#]E""*ڔl jB>*! ?v:ٛP.8cK ?Op9{JM'FpT,hKGQblHGˈ0&(1KJ X7E@=X,(Ul$cw3NJ&ףI2B<DFQ17 [^[ )9X|fl3QN=֙e͊sƘ5Ȋ1/J (Kxf[V6P*0a-e՝9 6qR-bS<`WR {zz#BgWE%)|[-!B\ >?Or%3?=c[L0qs1CizDы/2I%QLUQNcRMdN$$5yWF<)jqכ Kdc(Bc', p C|e_Λϡ(XV׷n#,EXNvz㔭= bȢ'(*Gy7qc/b.kVCb6^hWG΀A6Em`GLѴcՒ*ZIf5h&ɚq#ϸ?<ʜ({Έqޢ4جKJ,y\Z Ԍr>+W!<8LiTu* 8UI8 ZH)$)m_E `4PnŐWЈRP|Z`TZqe4ESHT`I}~ATوIKPx.j\QQXO|P~A CA)A)?ee `$$l?@A@",%x?PB.@IB.ĉ#kf@1f|!‰0bKVHbyɚ5C,ExҸYVY84]mYڌMyhNpULU0 0•VhK*N'^ih,NceYR||I &.. dpD,`R _1`smRd%(DIlW0T0P4  "1!\܀=4LE|*X7%PH Xi\4e`tR|LCkJdHX`ZT|4Ѝa~f2FRӎ=Yu\jlj"(h>kjB ajC.pkb+#fa .@.,DfT1RdE g6,V.Xـ(_f @@CE GD}(*('j",,EN)E}((VȇAJLrMB=-( "\mQ y̛yP(ݟisljܚHLx"Xd},D44p5#5xKL۱0H-BǓZ=(_BOdum>yJVOpT . O]!I- ܵ 圉ĠQ]iE-F 3-=>SP^iM‰h `/$YRTȏhN)H؎-V8\P-喘U13]Hhp pI@a.HR+ʯÜ "ov&gBh`9!LVE$jg;*HEx.'J':HmK`Z*(0Ű G Ӭ>Ap,=AWBgI>ƇG|eF(Bքe@4cEvHMWwB51vxyuxyy)9(LpK<χ? A_EdhS,22"?\aajAVեYiA~)!`6i+R'cldO۵]oK}Tȋ< PJ۴nۄQD=,vnjC"@UO\bi6hKU%wAC dd@~ffiIo.dRf>+%g?B.LW!4k=6p" Nt:E  A0%,*(dz./븏5Tq [ylX'Jdq xY7 h{RTsIp%TX2vXA( P׸SZuM`qÃڝOduxMbܤE7IZFqUĪxd.D0C>m]DɔXv~fHfd*C \P%!oI?9!I"bO˭˥D~IIrݙܗhI>!)H"ƖQz4Ijd˙B /} $7[Y$! ՙD9!|I]%]%h!wW$!fojfPFgFgR fƳIPʹHlŤ\u;F6q6Atp(#P eԧtpK8̓{{*ͳy Xu7M~"_&]9 I5tCnzToeya15q`9ȏcC(^%:aAYc(EHCNJ`,A\PJ~"{r1ڦA!2ZB/27eZoզ~ߠ~SZkUV%]Zh<#FT 1DFǞڋ[iӸq oWlǡ;<6`Q.ZxUMWrjE'ߙ?X`Y}3v#;Q4ՌTk/\p2"^}7nv&nzʹVƗ:ӡB8 .PC,)Kذ$+Ѣ 1ND"RB ٢!F&a-ؑ-&:a !I%aIa"zFId.Y#6#;$ ODDlS9BE9TC{P:U9FBC,Di5:  UFEiDDYtSD% !4U5}]V_u [8!q)]"% BP \l]eh|j3mf%kB1"-IC C0ŃN F2*JCc8.5Ei,tU 3z03 ؙv,Ev1hS iJ,9TH旯k* dWv)A>3GE*! ef.2K33qoavQV<;vVV'l ,S1Up+4ՂT"7nLXnى*d ĉAg΂4ZOkT$`at:׽[pg;.xRX$R-A!K3^'j;v.CHQ]*sJ~r)JB(:ߐ"n7WYu\BpNyA?6x ^zJEabRrCzU*&-WJPi5UB?Ɍ\[E-pDœ,IA ìszֶfYd渵eZPFFX+gRBB#9<35YDbXt4e Z&>8z"%7s=VR%eϺ3HB3B B&XS3%7K/^HTt<׽L1 *:i[⽓aS9΀3w0y#@x65UWU@S0b BHQWe˪{)x@}.@rÂ]&M _'8a= b[0ׄa;0UPCϴ5iz^v<ΤVG`T=Z$;HVi{>& {д)__-jYK*uyVD® 2A?ֿ~g54A{F-l/[uf0DDB MnE{NFLMMjFBnB 洲 '40#=҃=C2fA,nG :bZC)j6R k «+l«¦vp f Ta؋^j :)j9Z An^H.Ca,58 ' PD>/  }̉ hD !} PgF!꠱@,#rdH&Qbrwi>wGty|vzLR!`KpD!DL1} i1MW4R#' 8m$CneG&BULRjиW~HO L Qt~DLy%&'zDL*a @ʣ MaBH FB`` A BfA f *2!#/&8r#72#A#֊*+xn `txŜ6(,WK.LeGB !fAfb|aبa$JM'qDGPm#38fpc2p7üf 廈p n蒐'+# ^|]B1Nɗ)#f/O.]8*\ÿ +a J2c ʼ̋Q2"3< 4/ @S4'Gp6A$ʪL2"„lG |zxVĸFd!VhK@2LGzBLNG&)D$ `C,$&tVܜheĂЉ$Xr/M lKj1N&W||:'a"[T&sHp&H`!=K=Ɏ/՜vC@ n ""FqF5B2`$5t-#!7% 8q B{Gvd8`|BWɢO&NچaP rT-f`<6R:6N t3bֲb ?i 5hneQ.2TFT+(bgڰ oa"S$.3bVnWo$WA4C2P"$DO,#RL투$:jG"37|xL1Ft<_b{A=!&!Hz'z8k{ "6bٱ@S,[J^Q1!DBHI5H@@Z &=j< M<̩xTEY bGiLLFikHaG{GFCoNPx |gI`ǝ!ȭBj@y`FNb'n=3"FqC9$M`P`Bpk`a閲,΀^C92;@-+s 5,Ȣ=*b( C5ZTH%S#—nj :2(2V` bzmzVcj:7J!FѠGiԎ_Tk nzIgu;bJGܳs#T}GD"7kҋ[M=LG'`L3B&8(Н{(l"(:?c'J+2@-FrIጀWC+ ʢ" 3FQ'@tN;Z=39b_ DDW48NFJ&|&<Oku,L0j8'Ĭb J,rE[Ze⑓8ZF<,Z>BœȥɃ,[ʝ@&Ğ ܀ N  @۞쭼O:Z&ؑY!)D6<+++hh]#mi!=exG: @0lK$gg?#>]BIv g^Ìt2DOBO0fWl 0Qky!yÌnk:VcL(gaɺ+=*MO+tk3Xq 5ЈHFBh?_ e 3:1If<b̛<'"8p3PH(]p eTIFuMWg-u&m*v ;de"E*ުPA)];rT%JoP`ٚlױP@I&HdT*2Ӧ-,yɁ .lRsO(D*'ܘM>WDrn?&ڽ~}0׵׭K"$ IZ3CK-)EY5X"rqq`$qłWc V`?'bRm̄? q`Wgo%%#%Pve ;YgڏaF A PD%bIe1qaj8%@XE@]p%I\"! ,!/UK)TdD'A~BԈ]hhD2@EG#x b:`F:,ꧠ ErPQ란TѰN$JF-ћ15Nʲ6U G\DeIzp+QQSSU1ՔIF˔IU\VaM;?;V[5"1$v_|6[f$bmg g('fe5Wl-@k_pEʝ`?&,}?'<ӽ3]U[Z_Vu!P2]yv ?[Ѷ|&O%EwTC"W : Bh3Xh 3nˇ$Bb9V7bjf=,%Q?¡֣IouF@uov%&3|$IiْyFOzv/J{>dDǩJP)"B!FhDa*U'YAUPFb⻃'@ݢ ӟWdJ@ ޤL%Ղȕ#c\?f2Cr :1*WEK_eKd (Ŋ L_z6p1D^8Eṋӯ-Q_Y2s-@C4ҌtL i`QD,P86-iω(a$Zt.8Qke,V̐2 TiIu(~*q7-lnaCn` &B`1I@ G03@yX? p)iD3qBcnECA|4WLz FkJCJPx&ILe%gM9ى*4aTH$;ЊU T-pO#ࢀCUD&i"=+̧%l0}CP@xKC)Pe+X;,AD2jդYQIJŅ8DJ뺦lN#*q>9"#{qc[I;wy_2\=c !i_b{:lJQ6D s iKadHf%.Bذ梅 K #'Q߄2jMS ~$mz4,[`rƀmP1LB xYt@( g p\f1 KXBoPy8 ` JXkw [<%? IpG1KP:$%4@)$&<ݓ,*gO{&qHC?0V (tPRL@bAi")Q"|$ܓZҬJY3RU Y[@ΐ~5r3$p肘R.%[T4 5=M)U P:xER(-W+p+$E *fvԱ*Ŋz ^՘T:T6jr7`tm@α hm$ 3 ˆԀ 6G)h]@e.TP9J8H@ 9`ֲ(QWP@⮧-wQ!q~/.֠!Qe$#tkAKh,O%s,@c-yA鉬G=*WAtzZ2#WՁi^#^y9?:?4V*)G>Wr yNtS/) ɛ~z+EqRz1ZANl_k-me . Ƥ%3t.$ x?K"j0K7u$ o!p5m{osQmE\po$^ol RP:KC:s1$10U{p/(qācI4$b&@u@hreC0dE m0YQ3g7uL.'`Lr"67D9RJgaa 7c"&p!*`wbs\b&c;c0bl-SsvD|Cw!%u-AW%<3=ss@D'&{gh zu5>U{{-z{w .ATRB'y&Rz{hy0բ0QC|0DC}OAu/U`Pkkrg|%wI4vkF~ItF$6VPT'I1iEa/l["(`&/$xxS&Vґ\pX EtlrtI H 00rt"8pm 8\ QsQ\/FNs C2AqN=uV `B<6;-S1m1Gf~}JaPKZ/\L\"tH&t}(c-u=N`[7r]wT#FQY&a`0fQX_>dwCl-%Fw59.Q's=aU vKxFx{،ubR،@!{&nݢVPH!]EW1;0$tI0^M^q^q5{QImAGGe/JDDq.Bv.U/vC˷i7\0.QQ;K;1$1 - =)Y'z&u=zx'[Vi8Z'ڪ̸w&A&^-cCD͓Pi?1n/E EMkj)"79d w"e4%_%& " 6 еo< pK$ oV32K#l! 9EQXmrͶ04bOn@bUwu pubeKLJ#!Mj~EݶGm ZZbq4I3;_ZyA ^ʨ%^4$Z 0LߖpNz|C(&gWʂ?&D&&|\jbb_//W=LoEm`4Ѐ3i713!@`]"Hv_iYR  R\o=~.ML//fm'<ʿ5jQ$a: :T_"#JOƍhXƒ=,`JKj(LH%m\Y#C,/z.`3ÿ(?A*@E!]QύX7ܜ0{ 7mWn\M.#A)[ \qJUr #%PrRRU%1`% l5 (l?ժzYbY+Aɰc CFU˗q$7xۣc~c\r?#9 . DB@.*5O=5E5ԫS8K@@ARC ?`R)2X`rv%)|j2$("B@Paf%2 *-b"쳈<@.%Cb$/Ÿ㈣Ĉh/ i \ʦv"hjX'F2HDOWR I&@2لrhe)ݺꪐj N`2w*4.ҘO>\*n@d31̜솃K@>xAP 5-6`ucJ \Ӫ;ιxD!ըC&oMDӨ{Ѽﵭ5))({ۢ ($(uxB1T`s@0ڥ`:dR)j ˁ/ԆW.X<FoZ.GFrUe-\}q 5?UhURe 6W4AL> KPR:j5ł0┫ĥ[R1V"*ńkjԢִp5nK @_M'a g@|s 7kAT &eNTB>1xq Mh62X]'Gl\\o|͜6T;LS?09q#džfIcDDX Լ&;<Îv5cEi#@rz䵹Ȕ R*=zrYiNW Ojbx"HL֦$t@S_*$܉)S"J2b ®81eOdvPWp0cM?tư1F՘`(+F0eF4r"hq!\Tؘ}͞%hr$ ; l~|:cIeёO~\56H1MD;N"5U <1FrTk=#OXID"ʰ=iO{R Q؀7"iInX-Qp, u2IPHK3[7 )bmR,"1Bw  drQ-W 4N⭓)BJ"L|gF z"t=Q6y8/ 3AH'E-#p.۾DǮz@`fkUDQ"d 9N/Ki:_Qķ2$ IJcɈp+*`L 3OmU^.AҠ篆Uء3—آ+ڗC:$+z RUЊV!}*  Uu"=)$iqd6H-=zSHl'SLẽˍmD,ǿ"X"Rs= mVFKLKX$< uӦJȑ*O٤yb wq,`_ng"9U#E3wӉ*#D%6!H L VGDžCOdpQ#(E0Iun5~H'28KqUJFi3J${*q*Bʂ2oobb5Jƪ%欠iM NjEaqĞgU4" }yX3Y\,0 ܕx_j1646*L;C{ڨVG=zJZ@QPTU4~#&ySeLeHiYK!}Rr&Fҵ\eh.G"(K&.'VO(ucɲ^C3 im`( i>)"/ ῥ*h`XJQ0NRk(99.  99#˛X Kr`gROCTI@IUd K0Cpyq?,J[!4 R uZ ; b"5;r ;8 k8 *ۗӋ١L!3ȋ4´+4ԛԘڀ)-F#:9)3 91B),PQ_k>`]@agyJIQy* ~saB6粿:ʠ{ R uS7`b1H 9ZJ R $  )/)LSĕX$ CӁcq9 Yɛ˹C'G9 9 31)qۉ3K2ވ PFk2Y2((I(mqӊ;໺< hC\63.jEc H<o)ʇy(*2NB2(ؓT`I]>a6SN\dYIgJXSOc?7~~ܩ p2y78|\$'K?l"+̦lH &ٔa%qK9V2(-`=INIFс~~IjFЁ]٭ `ic:( JS$;:1'CBO Ǔbư:1ˍ 76{3@ Јz4hWǼDL!HԸȴTSҳ44M!+ZU"HBhysR5J $NJ(p_2 b>aeY3F'5 3()G PJG.@yjKp/-i??Z$)(P #K)X) J m>>[.#YcAjT9,Y\ʛBIٹ+(RQUF)ҟ-YFQ'E1RU#8H@ڢ](\ Ϛ9$ 0U )~|'@SL\]2j CZ9C̻&Jx=M܌@ #< +KuT"]LE4 XXT+H=SԤ HӫXpUyT:ڬ393] au`V:ݣdHؒXa RJCʼnQʩgNjhnTd/77(C@kC~/i(/#ӵ_P/ssc(0L ˁpS|jHF0n| Dby%k9FnD9"`'#p'vbpbm.Z(<v%9bq r4);S9D@S;u=E @Ұ"Pq#B!A#y I*ynLF TRX2I? "?dB1`.&f.5dŜbt$rh$iqܐ7g*('aaɧPƆo-t,fB -dE U[19QDzJ(#ƲkH\tGN}XtH yCT!]H}4n8!X?\ B?tVSQI5\! GuU$YXcUQM$!m\?E"W]՗/Xuq#:ZQfbT$Df? Ef,7bNXT+qUD%]U/mR6ܚ#=ܥސir:ݪ PBhwpWyTJzJgzxۭ|c}LB4Q` V (!bO$ 2$b޺~O~wLbΐC?G&#g'^r)Uwf.dypN/t`(7 d?qR(sQ>ʨrY[Rg%dR!lTD)"zfb"PP*E5,)XXDB:rpB+ Ys [ xV&2[V)l)NA$*ftrzŕ$S@Ɠc~( CheM Hƈ"(CPB0d(#Pu<$ViaB $(iz5,RM;Zvw >(JL㶽>y3O}4sьuN33:L-B 07" x5)MxfRgEPf\*JԻ%%xf:Ͷk$0Od&1Q(|MLk\0Q] #`F5)f4پvQeHZX!digkn!ޚg*|02)*3 䌯H9̶u4P>$.k񒗟 Cf _'4 SB#݈(qd HD €Q@xVR  OKMg:g<'JEڨFsRʹS&67By\(;ؽQ$ DVߤT!eGO[s2&Q$.1GfKKM:4HUU` )܉q.^5gw{RM5GKB#шrz*?[5cׂ֊9(&XQrB*!'s Ff_vhEDiF_-at Ӣf 3A1hs$t/ȓџUIJvF z*\H }w x}01\Ti>} |P4mx6iƀiNɈf||ؓ0Ɉ ȋ_Ih"Ia9ITHBT5OύRJٍ?̡y?, (Ѝu uI @Xo D0Ǟtt\ I]LohFZtA_l)bK04D-F.&$F}Y]TTBɪ %`Ts-ׄ"@EPEP IJ i7U  }WM B;ʬ\_a1bHK@m[UTTYt 4&)*GH.M*N ]P F\4a ~H?ɡ8-- >!S*aDbc2FZqA`lb܄ ~ѿ DaFQ _ā^)DMa8 FVypWw*%GRGJLL9 )8唎fؗl <eZH)U:!U$VIfɛH TBauv(uH퀘xF(x ^_& )spYp dJCԆp=ULm*IEPpd pLDLl$hX |9! pLӹ t ޵ DA]u DQQ.kFX$L"wɫqT DJ}HLm1KUZUA [kZxFc;^8,0h; i6P*`v:1a^R/ӌ+,\4=\ jh:,TĂfܓF Hm!2we|0.j)آhQ؀t-Aթ TV*RlwޚىGx"PNAT]g 4EȊBEBI0~J'BlTu\iƊE@.PLD-KXvKϐPFڮDǝfԡDy xԪDX0F&QЙלI5bGci-@(_e S]AWZ$_,E1?o/կf,REKX%Z#܁(߁+f ?8?4l;60K@+ZedǑ|a~z )˺0YS{m::), Zd唈h)8 eZPբ|/wi/.uݸ*HX HzAm.|IvI. l rG r?P ?jЪ\Y@"B,Rv:q MB<"9Y@^ TU~nD\UALBEWLGBnm(ĩȊiQJ&PY`!Jх+Th"ؼʚ,@I(duB d(;L|Blٸ+SDѯ?k W-+t?03|~U3F8MDMW DGI˺,?hyp4?B8'31)PO'3=נ uLSGI1LGҍWu-)-àqBͱչ[]%YnO;18cvf)?|"\uEs6]TYf@G H\ Z< HT!̕VmEF+7uKYflL ƝXs&dʦ+tXMKطܭHqIty'" 4l4ּJ> vcOkL5J%X^ĽsIZ`~@xXRPRſ(t 'x3Eh4l ۀL[{%csB]NI+I /(:䀠 405o{i1)ScNș0m,<[OO:yV3p5􇌸Gc9.5%Tl6hS}ՠ9:QYng#%E,Oܱ)*n+,sY/Yn'I5OeF KqMl?TӁ Ev\ܶ%φ|Yj^vTJsky/@/Nj̋<‹r;$S?f:>擨싯kPi6j+1\6D R("1̯gT/ M"Ճ~Bs_-Nx,SMX"-}KUux'@ h%)F"AY1 ^AP!5 .qCVŔ\BT2/H^aYH"%n!t^s ` [7,Tzxa(>Ocr-{ۘe,\ERfXF.f1"8:9`gks64 r!@n-`@lDو;[ۚ2N)I7q<2%y ("*,AH YA6%2$HPR(sjy@9-$B-qIL5zbD1Lk5%5nzA⻅/ޛNOzgЀ#cW!h9%^&ET'p_\*[vٛ)*fDH@ HYOP/Xլ) L LY N5(UfyʆZZ0- 07A|TR#"1BK*@T: DFcuDX1]3ًgB1 ѣx:ڑ0fH @!5tcFy$ԞG7(7%mxA@I_ ώ!&C ^ b& >Ȑ]+t^ͭGv\ KB5כ)sP1.DLr砫_e`'vǦw h.&M2)_I PXm1A,T r! r+/%~Ąj pK"R? p0O Ƅ PrkIf+dP$-vb{"fC2_ H0M0j[E1 p'=z6\ld<.D!#"vfټwfD!X.2:[vذjh;*Bٷх6q1b=rQ/>pt'U_% `/wqClʟk$`]C x5#" `HGbb$t7/ L߮'0R4|[UJKI!|e7`EUt!,O_ e¤ZF`l'|sD+΄!WfyG_2e2oa8`="D1d.+xQyHyh6 ,WLc:s9ip׶:u@9z(`[ |`vBE@trPLv@"H3<ͼ8&+@o#Ar V^P`=r4!/` `-m DYʆt$qDUpBM rN^Aj%X$EP2<8n B"ABb^e՜TtFv #b`sj`d6I_c`i[DB-b3+5nsyS9B?`X"4N@T""<-Z8/Bo S'Eɬ0X/e*R%#+n凲o CkCb555(&sn{6ٔsNHu7 x;8COfDX;7x%d(o[3`,nZۑ՘yوYuW[Ufaķ`[/)#k+ 0k`d-rkȸ cp~y#-@b[ma*, [M t"/D aaOd=FH$G >w*mPo<8gaؑN.^$]OAHGn&]>mHs3/S\S!vNє.:v!,ʩuP[ qRm(_g(,jaC62TRYssjJ[3D6;zD2BWd:T9$8z#ْM }Xےy!I ;Z!4Z<ч6kd!Z)7kdr4$G60q䋾 yӛx2ś]* |B 63D^j& B-0Z$G,#>m-!\/BpB=jB-a, b Nwn&!)~Jq~1*&J=b<"$ɌEmn!$ظokBsP 7p؄S1]XUxq% JCt;8:Kf{"-E1DK>xUV7LzZ6C#hK4.C'L:{:d!#8H1YҥI03)yUҽsG_x#ѮY@qAEļ[5q| }rF*!A bkHb4UeSym94)BKH֏Fĝu{sx(*Wz*^`㏂o$v -@eT{'_}䥗>V>U);TeՙW]u~nl(=$a(3  ?;lCWHZt9CF y:CI FrHI4StkL,P qP@Ӱ2ᤓCPHT1SQ U^ƛj՗W^AQyjqEqU uc%^_f`cI&d1fbVg=LR#7ɼī*Q ⮼E1muVQT~J 2CPn% Ƭ-F[ ύ-r*Uzvg0$6K}~=iLƆhj“^umi.z9s XW`Dd$WDQ8@ᡤ(("Ia $ю|nի]'2%EJхt KſR~(AuthjQN 9/TgZ-Fq l\չncF޵0 0yws %8{.KYN먘e7]LJ^GL1&fMPKi6/όC^]O )ԂȒnO uzn YDЯci܂Ԩ#]M$;Ln3[)J5/LcPi(,sNpUItj+eKr.RtufuPg=ahaGP`C=q#b#F! rQ,FsQ?78wKT9Ft@'d cE7!J҃.R4U-mBuG&#d`&VFuH&TG'TR'{eU!cwq(FvWn/f^Ea(Evzh!fݡCA.ڣ4a36cKLCB{j`zby rY:r5]zl WyAYvHtN]Jg Xz)E-rԲ7b Px!8|l|Bm!C1]vI-#uo[\6ZT9G2ԡhx/n4t%F-?jWUK/CQ%uV|jLɩd7>p]TR5m` Rv,|ӛ]g"VܧL#~QxD:/2cZ5& VUCqXXP$ܪPDPЮыל3ijd!|2,01-A kͰgN~ R[&\ ;._BI͢g:S$jgvHP|q<ŵ)ܝ#uS%^04id N}I ""tkUG)ޝI~G'F G[Ff964a aMnͫPDq"o|QHdQBV~4,.Q,A,k@3Ji dJ "LhC&$@x"BLƌ-pC?E PK1k\PS@(2->.LJ‡lپk߮lXlS+5LnsM06K ]M\e1d61ҭ/.9`.AfyM- ϲ[ Ͻ;=Գ: 3X>C5[P9CPIϮڗ_y$v*kGE\Qn1EY,k(!V Jb$ Yɥ㞲NВˁdN24]= 9$72q:31׼#R3sw=ڤTŖ\i&N6PIϪg3(0:K{#Mp ~k}8#1Ѻ !X,CpO_R0{Cr(a1t@c`;#Ę-*dX,ӞXQY".NtC BW ^|@*vPVT؈iiS?vUMl/=HlCJmsD!$?t/QLl2S!ϔC)Nj9H:.pd*L&D#R!§H ېqSm+8kvKy&R v;?Ԥ8%\iY UHE&+TVtyH0$2c)z`T" L/r`@~Eo3ǂh>㖔Qhb6C,L:۲@~F1‰bC `.0]A|M>bg≅ ]xld SAfX1,/<]<(T QW0NCUeHXҘg T§ R8[] UMթ/rUB#JPD!XG9 y2Rej2.q[)~%,ipcrTY)2Sg7H<?"*If` kE@R6a]xHG}cVv:J!٘Є}jb'n;p Gϲ`R y${T/n> z3c!1fpxLs`%iXr,kʢb#BbRy6665pd m\+xiWdZљ1p\,$2$ |$%@u'R[6)/DA״Ŏv]V%oYt]GodmPM"kgٱuKɼKx=3q&%sd!x N*ˊ-ӷUKФSʧUjCe;F]+\|HӾE-[Qbw^c`й0KN v?]#1;s^7{ i"M!v]>و6MPFf(8;Ngq EAp`K`44KA8];4|W>A AHp " 5N3_) 0 X Y=`+k h E(Bxc y/p1R 8 먎B ZżebQ013{"@?j<F5g$N+e7yҎ88; v8і )C߹ Z1Ÿ܊3 Pۡ8R1ɉ HE#4& )"B5%O;pGyxQ%ѿ#;*В層̒)tB4#!5 /ْ,B$B 4A";t)RʺY_Qd)Jyѥ l1؛Mf:p ,K`!`Ŕ{ QR4&H}EH 7/#دL .P KS Fz;Sml?D,hNgLU~JȔ>!t@A ;\cǒBG쬸3@+5rG 1|4C|RYdD<*2#:TYN\TPЪP\i < 9ќ!d >PڠI'i,#4J͛Q$]>’ س:< ҥDɒ54\Eg< A!At/9ɥ@*(; Q,:e,؃=QC=RE _@¦+43TPs{S-  ƋRDWcY xY(/si^ LSWL&";\'f[ۯ@U a&RaWIJ)?KP@cV}KU:ng\U7KA0;Z!GXC8-{N ( gJ.b9aD8*vl*9 轲"ϏO_>%|ŕ|]+c>eEOМd39AʔuX0Cז0  gTw>Qbmp.`=EFg= Ze0 z1&2 TR! -`  T]ӧZ [v"E(*`[iboc=S`zeKa cHoJ ljFct7~cf|U>,Cpڅ ii5\ )bdqlH cN ZinYg϶*.R\YY9ABZCr4á$9c:5Yknf4KѺQ/pfunt.r~瓥5@.. zA^.I4g9ɇq&閡 Nb4 q2Tc 6pPыs"ZsJ\| F\c7-g|s\hLvHYpSꈏؘ~X{|dD0fD譇%+`Y1S:]yJ^9 Y##<ɛs2I8A4Ѣ4ԩ_6k;Bv"kfFnvfP!3ٺ[du84*9IBxOWۋJ*t+8 )|5d;!E>2 Kpm1wk[WsސO'z9DPw,({qd5FN xO%gDwA-/Grw SGNjwFkV1 jf A6!Rs0` Șр+|t4!҄ p) ^ P!@ EԤTSE1gBa uctї'(@儛D$I)ץ[$0`4AW2M0ៅ!l Il!&XX C&vktҵCMnW}5o׬Y&:w _Lb,ڥd+ {?%J̽O^WJ+Ɠ_T@ƨ$֯;yC-{E+\Lt-"AF&_YTb?jE8QeXa&poW&ƛX]'O*@zacF"RdCZh2?֠LXRF֐dE(d=0RHqPϕX24_Z2K,rd.e:o3dc :OOif1rTĴUYS?0%}IKF(Db"rH!5ʹbQ1P"@IQK%T(TS p'DVqYUe\m+Zxu`w%X`q%XdQF`|d_oi}+flTi~YY ~(FF*qtܨzyd"ɑ?}|%ѩ{Lqf_lUV5:~l5[Lu]ZPBWIkȑu̜ B{ \I=ZCT¤2>2iiiI0i I% =~]J)Bffi?, 3Qd~)'~Z(2l)-Q@=YD t)gnE:ju̳QI1/ݿtCSE QSȮGJ_TRKU%?Vu-F}-7AmaM\yE&`ڟ^9i0 ^`Ҡ5$lBAh/tk)IMWhSܐD%W!U.B"EtZO!fˆ hLOoL$-VCY.@OSMŸ&6f)^WkGLbU}lnX1I|3#TG,Q K4IGQ$rTbKfwFҹ/0 h@Fa'g8?d7([q68Ѣ=9KdCwqg24Dk+X4V9;O|(bWE1ֳYKQ,u.*^a bOeh\-= \1hPa(6„a ب7,]0հF.{V6f;T7KJTB"4GQ|N4sڜLg:@cYz|Tf,FzvA&S*PHBo$cئ5U7k)SM6 lbTNolP|$8JHLaܥ"IJW?ht$_H p S  D)IgApv)*lla f$ϹDE@K$n/5yi"ar'7¹ωN$$9RN3xr239së$DYE-gY|…_\/=_~3 An4(EQ4j<."JR;m)}vGeUrC"t73=1LB(j&#ŶEBY,N˩mdkXW)!k\G,|,aϣ$)Nx*G(e $92Id(NB#K?0N`cl1΢vQBI*9̤-dE, mAS>v$QkmLTgΡ7M$3On9E^f鯿K|b{%1 k<ž!Wt9G_ah_5Z…PXfKk5S'8FIrB2P-8ƱHs:D|"OrT @*\ҬB*?-NmkarY1ԡt#Mfr,3Ll$ĖCeon-E<#IKT"Q BpK,@ J{hF3Q.O a  I* Ks 4dIGmL+H28dw&d$QrcSE0ۧbe"%""O R "B;Vx,,3Ar44a\v7x`ߡ"=jOo[4 ,$ ]Քz̘xDGJF ǁ|QܗHUEISWHYlFW% ͹^Mo-,E)VyBd@bYCZ)?dcٝo,@Ђ!,R!*͒ GTZ4,c x!@4@QC\ \ձZ&!mScDӋ-ܜLEyTIE-Pܜz|SlWyARUva~-b|׸hGQT)LLfft2~5FuDqHśLc % ]ԁi BdFR-][>`DOTrE\QPHyL1Eʰ-|؇٨\Y\QUαUIEYYȀ ]ZX)IYIգNo9Nr 0#z @$" \?^!d1EgJVjV))T)I0A@V FB\x8ģBtT]\dEθH*)>(GrHu HR.v ܅Z<]/lDGK(1 4ˠ*t㹭J̴0gCntL7P1p..37Fon}.kFwst|uլeL]tGzć݇DIDHA͆j J*ۧ'eM4Lc\gJ Y4sBCoc.i f.0P1)@ /?W@`+`$ADsvÄ&N$q‡ӱcSr6d$qcO Or]˗O@Ϲ5H&Lw (<\#t5ݻS]((dWO=<|$$go= 9 dnZO;9+ ֓P9&pcEcU| ++QF@([* "2`dʡgGc'22I*0fˇlq! LqX Rt3ES (Ł\3LN锑N dQOGAH y (ITb.R)%è$>u hr`UtrȪjmZ|WUX4rRNؠ!k&8   ʜG lL9sб!8LO1Nc2T0J6RLp5p-$c86D8|;7 Dp3Ype£`:k`: 5o?샏"0h esi >*?&?4=Q4sECc\NmQ [2J|Ȁ!DK%TI(zhG , 02ょfXM9UDQ3MQ EC 0t |{N=77TP2]|uY<b20x9V)No c+"H+(ei{Z_I1*hy׫HXj ҢYiwgkM M4u .-%b3Ѡm|(g4Xifs5Aaj`kzC7Hn v c"x&:BH`"{H];YCvG0S /dU#!B s Q(d$pHAZOLTCnMoXFQX!q( ĥ#4`(#g @Z8a@ X Dvo !EifѩP $:Y8z3τ"4!pk g S h >LP(PS|Z@S %,d hXWl2)#ܼoc[ ٯ{^s- (i{Ltw砠ilwA~-2$Σ6FHqd3E7(I=ᒴ%9r9Y]Q1j^Y4tK4!h`?~i@'TS4m`Vw{ڜt6Ը%VqSmQ"] cWWbXt0-HQh!p4+@CP(Ѐa (LJb& VX% {Ri1 0U"ӐFT>@Ip#ӛ޼<1j>d2z$76|ۀ8V>Q&5ml%NFvjN"3kMÎ3wG9vFZՈh7n˄&F6 Ї4,~7o,d)H?n:,WBmj#Cҏ ANҥpET8-Iyqh=0@f.: L!Wd3t PKMS^E{I8 (CW $9^b)G(BР"+ 6 VB&HnZ !4f b-R`.48c41JHf"65H#3'L2* 3Vhɒ8Z _ Æ6Jce=Ʈd& τ 0AZF ʈ@#gЌ+gڨC@h͋(Mf*8/--2B@D@/IK"bJ`QDji36c"jk. f mE>L $, `DN$EbLm sDMEBo MŶ#]TJ(t2*|,0P$p!DX"]g6(*j,b&hL[T!" l!Rz46Hcgcyla@Pr+(2020#3,3xbp#2pCBiH p H(Td#A0Dl,"B,k,?j=֨(;.L?"ipf@0#aVz C\ԥe]. b+O8O1tbNQoƋ!%zpdYN(W{rX |&|&n|+X *ճ'F,bMxsg.Nj%Je"Jh36cd.@IFr(1#FHC:C^86dZ<̮:XndDQfL*_=j,dƨhc>K -iȋ.팰fH#K-=+O31i?O9qI2KC@-"QO$. tE”LA!KLTX'}&p!.!>|,T|)4Y @BU%N fR2%(%s0lk2`4Rn'c L2g0&6("(k2b6(}fP#)8T"I` xeO ;[$Btp[L(<;FW*`s۩.In14n+`!|Ry!WR(0 n Ē+2{!E(gYe!L@j0.hg`k{0tX @BEg`llX282(cTȮ(l %Bs8`0(dGGzdp>)2`45H9l:\u ZnzPLd*b<?&B2P>N J?ڨ #Vntk^@<1:10<2Uo"2VDՀi$S^dQ&UO䒍S}b'rsm&/`OBfqY쿎q91aYL[kр6o!Tp*I|goB " 2A4YWWC|e9rH} p{u`|)( #creb[bn.!bs552pF2F&p5T(f.u2(YSfG iDh MOOHd.A!Hl0-i3O(@,Qy= nh_@On33MUQ3EM]aN>a"v=DwM(''tZR.Vk:OZf`12xQftڗ`au;put/.`ε.~pDJAH YWٵJ>YVW T*3~)_1@97~WAB":*-Rl-.CUS_ 85Z eO(1FA$# .fA *@ {J 5)}2醌g!$J`=);xE`NsfXhB갥'4mQkKה.ь/ M>mEM!Bܩzcmxť9j3I$Յ3ER'C3Qw0=X,g&XULduU |;Y'L)9~s=(r(7a;L—! ]P!=` yW{~e"~}#|\ V!ͅsӟ($ ®$_eb#8WR%b.q.C Rpfs -I!2yu4s+ $hAP\;*'Hd|&=9̆B,@&l'#Kkz kϖhZ1VSi^@LC3.Znnq\T5 XCTs"-NYY\%,h4rvuraS9X"A0w `=P+,Ƞ\4>ɼ 85>=]"sVߜ=mVˇ @}!*XS*b~ A6ZdpCQ ka[8%76 .; 9 u]ّ=feGRySWբq=e #EFVܹ C,lJC#/,d.Cizܘ0)q#oH'd؏X%~p<# AA0CSΌ!@`+'hxH0#`S\789/`0.&)SɐI  `X+"WX  0o׮=[+U酉3 UhU! i y9, 1x{nVEc Da^Z:lIH&Őh*iL Ɉ.2,ikWZRD?_ G|{ jjp%U  XDO hED`D=0@0<?"1? (Pb0 ވ# јQ A($CA*BH=)ЕDIC[ $Dl[&OvDl6Hl9()@ar]y T'{d(A-?<`KE`\a1R-[nTP.-5SMyq-?F[J%5PlRhu ^WOoio ^L]ue]\9Cn%`~&dDom&/-`Fe<`vh FZC5 ~yVU5LIB'oGL\rwr#˩t˃ h0Cm|'x޽,^{ wzD8\DYp7 2M``M[P$@T\70hv بC7Ȑ;ҽFY%s%q餖CR ?)d`m%Yw^ЏGIed&n)x. /4Сqn DUtDX:`@첤ig*L-?3SK}L DJ_]h)4zQUh_E6Pn{[_m^ՖbKl2g9 H@܋^jоj.v ,p*  1ЯZf3ȆÐ8ql(1M!/! GRF/d 8p,=߹'謁d GY@kjPӴ ?GC XhѶ[P=!E,h (юr!٭7B޴$Fғ ǹ IV$G͝K;*#=)kӚKADǧ^bP눂P0?laHdwFLx@zMKKJ;-LeV\ T1*HfM4L-nyZַZ/wG'p@h–E%-,I AM 6a&I)HJx!,*d ]xͬB"H2f49<6(1Ed _@8 S)QOzÐ#xi 8b@Sh ["G9Z@ym`!M luLdd$"!DGrMnz'& I-#Qp94Aqi +]/ل&K{\[.-NAbP]B+ l]d !cXRdM0y˫NJ*`*RTrU:ACO}L v{2ѨLJj,VJe[Vr@f[7o, I7d f'Mpꅁl6iu:6ԩIV 56q!4VL7 `~Y cD%V9fr,% 6+s4c1"(՚:?fWBHaӐcGd6?[b(HL%tJGOBY⚻ƒrQ:DIMޖ,HrvM&nǐGY(:K]!47eyKZ*@E%eNr(c\hyNXM(V> ƁJ *%- -5<} Z8XQᆤZ`!LuCERWJ/0oP̑NǣXɒsTΠ+qIJ~X +Cnltd BTRmCP F¹-0ܹV@u!4vDm $MrJDAi_̆6$hMiic4BZ%|N+UA'MACA OݢnoÒOB'-`>2~pؗ>V!Q^>C>qQ`?M8_"q|!qgBUqY-#$B aBFMОbb"D;1:TcQtA73ܑ3D/SD@dHVRL_|œRhfgGHmTwvgEX/dI!V""b#zWZP AZIR$I>cxwxCrIyO8keye"'%Z 7Pu(Vӄo4;9fjhE)( _.` C{JR6+RFR}=NLqԚݒaD71R{Apo!pWa/U}Ģ_X 1=Bpqd h0(ǀ?~V10!4B! "$X:V22|isq:vA+TR1MU;Q5ZGwI 'g3$a'C'I 2+_ZefbJ9 _5R?yhꦬh]FrI"11r=[:}w,22-ȒOs_i;pQ}e>̪Nq e+=d` 0ѫq2Ad"c,@uAF_#﹁d(Caa]1dR1\߁U<38@x[A)v{"'Di#)v5$"H/RwHxG6uYUxӣ_ɕDZiD'y[#'ĤyOSy* $"!2v{ք FezaF0(f hTFaDF (b 6G1bD1]<d҂pl!}= B)bt~jiҘ>(p9O4~ g2@$ɪ +ilArA!6RBcRjb9rwU};)ٞD1cRB$C. /?bBvڱ DRĮ?cL6i 3gћ)2w Qb7H,gvlJ6/2ܻ!wX+XHZ 7G$Lf'(#g%#+8$cTȉ"uGC|gFi f 7q  b ,!4! f1"#CKAb30G;DV fOH\%H&`{P}㷷mGF\pZQAchq?FԚB@~>-/b|N1.-3B1aȁ2A%D:)AURb7+î|VK%4}+Ds,iu3 h4bgw5C065Zx"tG0D!\˺|xk:WIWT_R&%ЌZg重s$տz!k`#j8<JJSF2 r@{ LΏLdsJQiȻ(/'M } ?l|eNX!ݷ_Lp> S+!`Qa6 oS\B!UQ >.\, z.Cv"!΁A!AB.DL;xV4b4{AE3w$vvj/6(K9LsHM@of %@ 2JJ⣖yXiQd0s%3䲛!dIq0 !bƃ\d k"hc6G\,!hNjH<$6憳k:vx_i$Fr:fIO[~8ڴiwIa0H,κ=fHB21P%s$7dιW\V Xٷ+e1#MARSV/Gq} 0!*ڮ,t^Xҩ_rnsM+M~_08eAw:1iB%C Aɸ0.հ.&ʁMp/D JxqdAF4 #ɍ"ObtI!"jĉġL$6܉D΋DD3S")Tt_,\0Ċ v % %֖C4x+L !wWAnQ>õgo `ph-7؜!Κj&WX L22s`M+@?]a.Pɀ/;<q][6Bg/$CTR N!ʊ!*Wi!g KI&)tB ֭2ShQrs 6+"q+Ⱥh`Ƌhfp52J\X8] 6 `<Wk L0g @8P9)??㌿/&AUI90iKXPpc[iv!}.9X!4ZhWs*.qH1&PӠH3M;!7" Q`9!BI4B7ZPFZRL7s zR()~ThfʊP'|'eIK`!1HMj0 y !B> L"ġhl&NǞX.P#FX ɇs˄$!_JضJrH1B|KSrÝ"V9dⴆ=dqwD>rpd# RTL~'+1ID8?Q%M(9HJ'9AMjKԡ! P+pvWyE,zRKc=U-?fG!ECz9Cז Hˮxi !\8 (,R Zk!3F;iM_F1CFyi4xAF5962`2 iFF>))mRز,"Bj dQ:4"t % `@9"DT,BmEԺAFّ8.2.x5!!8Y۰PFoA%px5C'ƽ!K'#LztBIjqQ*;S5R$UK!BT*`+]3,,7w[-3W/%=)11X\\q:foA4t=w=D=M`B$jە85.toa"Jxy ؇?&|0 K첧cUėf QGڲzZ!H8DCB|eOdψT=uE)%X%!M\~Ŗ0IC"q`$A s+6ִRInr.A4xc$׾*k$B2"͓eMT8t  Jυv_ j"cJpyJi+C]W^."[A8seٙA$K/HM>Fճ'\"[ԟm@.}Dhr8ӝC!A֚9P< ;MYt j3Ǭ;8,|ܭL27JSH?7!(!P %RlB Z8g^C]8ҎF@@up1Jc |".XQ2FȩV#~ƀ΅KVe+m˗cPttB(@'籐u&$&էNT!ǹXNS$R>wɝ&hi / '5Y4f .>ԹuFb<HúU(s&͈8bH #c]$|p   +? #je &'YI .б[/XpORf yH-,q4/>B41[R1qJ$H,C !HNҜEI #dA; ( dC,ܻ8XB_ sQN; HPgb꡵ʳAJDa!1I;5 +^) D h۸I@+p  þx1ȦAb >I:DD?7.`9  6E¿h"" * j<P+̱F/ */=>[9:2sڒ*#j@=%t3D ;ˈAI Q(Ԉ( VBy(PVI?˔I]zϨRyS TVa VI`3L64-Zc8tʷ0#W@k/ gzr)kq xݔэbs'5 B*ҍ;ņ ܀' Q7BȨI( 65 |SC!g{KF"RݼCj*RE> H5LJ@90Jլ @a39X-*=z0 H:J;*N3a} #M3-tևUYL+X3R1&U93-+b@BeY 8.$Bi1K"(Ѯ {7Bm(=ʌ QL8sL+ORa TR:Z՟(j4ŴE QS`YbҎLh*L5L1%b1; ql Dsl.!C .@@JUα N$8*<.+E:ӊPZB>73-B͑ء,QO (PZB!\I;:4$\{7 J Ns-cPAR-& #!A ~m#JJ 񨔹XK}y3 cA@(*w;1L-D/ X(2U 35ӊ" yѾbʰ̐9DcZ u2*;k% A  dQߘ5kq$H.ѱFN+uGT@rzt9,UG2A X:I4͓ h\Dp0V1;O."9+\*\L;CR%ou%7qXLCjv}e][ͪ!XQy صJ0ڔ{60=xl] e*ӈY6KMjvj$= s%G,Z  ƎQ}frlvR ۱"BM/ ͜*b5:kq9 Se9}M5{8<H: Ohb]{+BAc}\5;\V,b]xɖ=!\[V\49F;5x]ݩ#cR ݈ؕx.W7<2;|2 (C8C` ˆ5戃#PNy_h賎9J[lDR J&*rrhHM\^Sh'\1200?)-MB! *N?ecMvQe*fLY'5t<]T2 P2OCs9}9 t%chL4v>hd:QOv4)OQ$+U\!i9֧բPPݗW[cEP%n~^z V4@'"pLVq:ư8oRq݊jnu "]WkX=.Ҷ7umlLqk6q鰜ye4sB/8(lkۗKL/I}A0>m'YӑNF )]R[^ިg> pn51ldmJsXK10aG}6kna*GaNMzGnZGN!p9NP4V0Έ pR"%>n;CM\ucnj;4`VzX@W[sC6ywk RWfrجX WE"ms$[l?=efZGqpE Rr|شr %`їJڥ"?e Rl>sf9a$zƟGn=Ol>"b5"RKzU%&([GN X{aUUqJnqaZWv[襳 FcL"\hG۔^c%i-eݵн߬}ﯣ ?I }]حH}ǸtOP1( cdqS O 0 XtEsP,rl!#2Axز|K* RsB*Yl>^ l AbhB1`(P!E\p?"C.,i$V:`.Lyif8ʜʝpt qR.)B3.auAVzruF5!ԀXh58-0`NG?Wi ^88la %5(V,H!̟]ǘB +:Ⱑ2F5 ")`H@AཁWϸ I-/?>ݹG.]m FQ6IAXkb2FAbz0=@|0O4qA F` 6A.NdՆ8s"f!P(|ESz@xWV4L@ <`Hkhy=dIf)?<63=⫅&.chD[PQ9 Wwxl=ꙗz G9y| r2e@6\ tLF8LτV"LA @ h%c@()yQ 32!eS.qž$Hm V6%rZ&MTң} ![:U)MAG?PB \`Do ArO)Kd% 2LQ%@bʢL)-" f&+X 0tbmIUAB'qz+r˜| d,@&)\SiXhWe/yņ8$p&5"A#-,; {N&D\{μju㛅̰$R, S$OahĚLBv(T, Є(t-G3!xԞ5! yóh4yw!X)VrLpfʨ./x=rN!MabNXڍLh:԰XG|0+LV$!t8X,$^2eEJ%I2IGtRnw]1jcqY6/$x&YԬKJ⾉n^ijUK8<؏Rl>K)S1yg;nR!#dLNr0\cD7^a o?Pȅ4*Ltb QHhF*!tT 8FkJ(Hو)p&1>F5)aBXEk:\& Ӂ&SbWᑯtHCβvډ KDd\X;uvSYR#ܩu̼ >O6-h{՛SC<u)@NPBxt4E93 !GC/71mX?kЂX +6H϶ڳ#;,SyhV1!ՉGȵQ$p"`]k{eTFyEeW܍/o[dt2GC@R ď֛J5wB! hCypҨ5RuP.ʭYiNvf]ehl|w&K-R+̈́K8\ Y7g,pz0i5a0_S˻h?5A3Ik~iDi/1;9( w/`wG;iX&TD!"+E2h.( aÏ3< z@O=Ź 5ߡǽXBHI\S兄9  ִ HLYHNk!ES]ILBĕY(uD,iR$ʜ}VGď\Ν$E`JKJD4@[ ӟuL\@4W6Rb)K0)KyA! :E2ydZ^uu9 uԯmWc8F;e|cp$b˳|$L} xpԆIؽiŔĻ9GTL4>)dž؇lr?q `SQOPHQqH-ԁ%EPqSH %.RM^T\0zm_]PQO$!QQE՗-5UkR1Q'IX qRt ńNpѧ8`T} ͡B!414UKGHr(DT ݝDxabJEUS1ES L3yHQMDpS`Z杋\c i&G6U:*n~7\# j܆dc06kꚜ>m.nN`EKOR4DqWr'H z'QN0Za/MJqn "a]^ E5ɅEUJUrlE۳=bR:c:A%?-HIyLBxjoy2sZ9@ur2i 8ZYWfYu7-H6k2xf"$hu13j8SM\`Xn&d_\_`~5;Ǯbh-K:;ӒM&|Rֹˮ'lIus\AKJȒQdrDCqzg*JsD'xnt!t97%׃vZr9ʐaK}nMzu8sSoc&uRGF}LX*rۏS⺴HEԴ٥t.v!ȝYIh8,/e؉eXiQ7`0"H,L"Qe9jd&R3d&&*EӦA;6{ov9:ytHCgJtI m0l'ꌟNDn^o3Cϒz- :J&RLj]?4 D׽VR$ګajUs <(9S] ۡM`0򡯁K|^ƨ}R7fD\K"Qۏd'fwGhxrD1rD*h{2/t9,[o^#f[ eCL`5XECyjv{{X-vGyЕP D^e`^yG*ttk٬UZ G$15zI@.@Lq0?HX8(X /LfG#Q@K7TdJ#R81fL"IƉO '/tF4MDDM4O>'AL=+W `-h6`jx A{~ "/$K !G~ʖ(Xs/``͟?G`@5FV"j˝+޼ BG8Ϊn}kԞ3=} Wg}x/X񊫽0 +.$hL1&k2LKN27.4XV3gg3-h#Fδk=[W6o5%3 /7 8fm\m;csN8)py;  (&' +X@Y&ÄQMN19DL I4CHĘ4;+V`(a902ra<8!h3 3!<#L($#n 5EFwZ(f; kUˢM4E=NsV™<ObՉ-mG{.SF^r%sT4 b8 %=]h,A-uv!3bE)FS֎}`B08%1LMD&M!U67uC C}㐨x/J(#uJU**yCrr#+VخQߢ&sU`׻+A=jZZ P4HXԲmh!ʖhٛ6;qF%2Kg<˭g@4NE'|yeZŘČ6Xi;+f |~C̸ >yN }ڌY*`I3ßLpЮyne.aIAX4c ;>"꽾^fg$z6D^Bخ&fBj$!KZ !ج  tL J#$&$>Lq E?zxf"c " *Br"r*d(go 0 t(0..’L> Ȓ+x`t릀"@l.zlڃC;0K]n)h.{Z2|`n#YDE5}Ʊ>&˙` ~rc)<,&ѰBvqYt.L=(|($pB8 c( +*MXJ` F  4HЈOFpH"' "w+ ߌ$p`Śߴ S$ƺde8N(ɯXg+&t:v%^14#xLfϘ\C>:j.[xL8lC= m6Vil\]'5}1D+5nz4NF.77=R)e3k6쥚jVce!ZmPfމFCdjl HL+PMk lڬM ư Ͱ@LPڼ(ڃl"m)ō%Sj&7>NxR "S &r)R+<UTDŮO()NB4 F=;ß: %5qb)/c`h::f˕ 1|I}*SyHMZ>|z$˖\IcBh>HT0"\5Yg**?уf?/@CAX(:f ٬LFP#$ư#f S 4e$F"#%DȍF&^(`'~" -=>ϳ-r.%1 /I&Ut:*i0bVfB0>B2& nԒddTRf 2Y-G=lc@;r0h2/I\rX6#=lq7Q[+-C68-K4?t7L55MKLWBfd(F6ҡLt-F hl\v&Rk5" #PS-Os*L$ g$(%:%p|K؃QT¦ӏqBX(h"@V8.f 01+ ,%#]"Ҁi4#yhDU2 &eO2"#d2<.},YP_7*ʘ|44qxwnP6іca5_pBeހ/7*6QKb.L.Rz`efH" !bv f !C# Qp;A#;&i#hLWi3$m=$kC.(g`j( Vqr*')ӖnmYEDs"+:N.>Y1oh.pQؒJ2[xЀ @xqeZ6:H팳(|փ}tYL8Ν:LTX&__2H_7?ky_0ywtźb=Qdjzs(zؒ䝰k (w&:|mg;;Q凹L  PQjPbib('b,Eb̫dlV%+ .))Ze&|uWLBbmBoyG&-(P[Վ7HYXfT] vBX??ⅴHC͙ PqZ):]β2C8&m|~aJ 47wqԲBڣKZ]$CH僟YUMci7pZ_vmdP #ujQ# ` ;}dН5?O: tj$9'$ qڳ;(tRYU*R6TVg +4GUBXQƢBf*cGɴ$2Xx,!ÁpGMe$K#ģB"h5%` MKʌͬ웘Ø<:Ps{_C:G]Áw#?oTaN7H,-W$ƙ6 WhSIVO(3LC#@¨ xR-J2wwx Qۇu~YySovr'g#GRN(ë˜O&vUo) VBU/шP]C+bo8 5 Gl2f'Fp \ }rC|e98; &: |&Ke/ wc6"K݇^0Ɩ64D4BM.VX$K?ihX@zNتHv2K: 2*r&m"7c໪JF}# |:Ab;=9Wq =FpDNr?w~*`fu+RfW-oVdrm '|\3Ϫwx< Պ\+GY2o)]xU:2ɵ˵Q[webi@5%?J]ZIGt<=䋣YDv 딻v'[;&2mmH}Ug!QI󴍪uv`)#-ޛg)N %PO&"z#bƨbEr$z /&W5΄qB?XvV`I 8(8t5((tC`Q/H1&)5a4ZEgOV6r++(^Lm֌}9|0DIE1*!6RiT&Q`^ ikfO0L0" U1Qyv#u*:uVիy :? j2#acaC!J,piÄg47R!GCBF6I#Ȉ1ؼA/4|r !}"(/ ( (4,"+ \:d"@4  8 b l#0lt:80`ʀtu\tro_S5|!nnÍa-Sdp+f)Jg4 =Xs淤av9@dlz7[}tAZbp]e]xp\5b{/w?>zwu7w74Hq?8H$HC:b?@W! bbA\B.6@0cC:RăC9@dh#B3B EB=$D yPZ&IiDH%QJT&EBNtӚA LQST$TP nUWg{~}4\{EOᇞX|q{ &{qguZVn)zjMfh=sG)[%Cq6\wlpXZuYܬBv W|wx&wyuq_? bݑW`(фO2^`-Hш%:"E*XP6 22E"@h2X%BX^>7eQ }9w)*tPTSM9?/ 'SI픔|i6%6 Ct{^Yz.=j_qaDPBV`EUjyi=¶8n-] 8S,Q->o*^uqurW.ZK|&G//}O_a嵰^  Ulql|c.<$(XT9$ W I_&\ !F3]!"IZB0a0%/qڙdB5DMD6"-(Sњ$!lm*g􏵭KW{/+Tũ82}K]pP%h8F57js(G;0:$Vci84rN9mg7=ht#"JAK~K#t8 Z! vXCES"b%'"b")ILeӤbE/ @"dOA`Ẋ>5C늊R>Hd+CJ&#_Gd6#Ѭ6k>r&LgؖtJ-kZN("E?xEk\6#B/t^Q{ޤ ;&ˆGo=0##WLsڨ4c8,eʎ{@R5;A:G9@DTT.AdVĺ8jBehG;jW%q%Դ@C!h >\GQ̎9"2"FxbH2x&a! bSI3Xg]Y1pJ+IH0XAUpdɚڔI&lZS;ۉB6i/LCEMx蕭LSEőԪx@oԗA4Z ⣮9ک3)MPAw tڣP5.]~0&^\W޻!JqP 4h1u1 m]$):buZOT )R! RM@h*t>E||y#C(z%;T!t#%j I YbCeJ&6 $.U)\f&IFEuޥ9;Mb*o*^TS"TPZgV"(|"b9Dhؿ"e1Qt$RF'd-kY-e D h!RӮK[4PKSL2gƜT .e)a &@7 QI qt2(p a6yXӽB]ãC6)u4P!ŠK6YF+&7/A1dW+swjS)'bNfVu ^c1,s005'2ut?$2"}AjYJf^ZI02e? )Qۉ -MjKO9qJP~0(Z#:W?uE(Qw3m ]qtxUQLus%%_j.)uq@Y]AC,XBc BEAlu!Yb`0s4G .h!1V*ub`[BY`G5Fia!w2`_ IDcb$[o5>JJW,RK7eS6"}{p# wLK7dG|;@u2]!#Qc$3AZ$gAr }Œ}%Zhh[M~kp5%6aC9''PL\QMH={qV5*D\%H:$621bvEr$6Hh"FSP73$mJ̦Y3d"{}A_lwH!W@BY|uqAaUCn71` y/f]&%Q 0czee b.0 MYDd%L##|ce6S?G'q8"%Yg%Y4!Ub}r)Gx ݗr+g2E%NwBE'P!Ch\#\[Ch<tatWb*zH]qTu 8 8W uIUoAP=8]1>K$2˷߷ &^Qc%(4Eh7FIu !i] ل 7 /&Iod،!QT0bao10Vb1 {U2$K3#t1Ɣ#;a"5#4|?2d1tgFr!N}"fMr2[T5`Y[b&2g1SaghPV6W u\a {UDSm要 ! s%a!ӎ)WS8A xE<fy1CX`uG%QJq=_SJal3!QZ%QET|M083(mT\aI^iZD_%IAf3^ V{QV yi4Y}*"5e9 wpw?7X}H2@(4L"3}X"'q@ff43Qq A rs6s-A~pb[@r6xmhmGGܵURy̓3*uĘXJ͈m 8 ts1[>fclS*X7; ;u1RHԛ'%w)b]U[=V]p\  ׅAJ8Q^'@P*"r2dp{&Ct,LxBe0X9"AB>׉ êJkFohH5NxV]!B9"iQ!.sIccY   }D+aakI 턞bnH7!>Ӆ@&ΙVbvc@VYeGp| >8ɵ"|ԽJyX$|BYD0R))'ˉZډeR_#'NrUcl P|Kt.a"H-'Vu $ q ^ a(H\Q.>H wT̢AaFGuQv- bK ѸDu!ƛ\0 {o[}j8cדҧD Q-†DX0۴{h{u#5Þ1 4}WuX4d3#X;M_MWzXʭ&r[-mrb͉vzi}5ƀܤ+^^&7z::#%98Jx܆] !:SOS U#HkѺϒTGfa7vmf1iTBv ٤̚ Zg0 F;6wM1̨l3 ?!Sq/K&Clh3kY̍Ud=r$354isZfTkQy*N#1sm+gl(3`ݖtDtEQFHgǎ̚m&Us]E퉢ѐ ]A` H'nD/S.L7.f/SN#qAfd$aI@لJ$Wqy\-"~|*oYEю~3k8q\r%%&%$b.WNjs(q&tS/UOWoY[]_o`O R?e?d$pkgCp?ltldj_vvg^ohC|owOm_x/_xor/o/OoǏɯ/Oo׏ٯ/Oo/Oo$$HHp`AdB!N|XQE5fƏAY2I(MdҥJ-cY͙9m9OAZQI.eSQNZUYnWaj%Xiծe[qΥ[lһu_Na/fctrSIhTz&σw'$}g-h饜=ttvmsCzF>ΣAW>]+?3}]7^r/o>}ջNfq OGɮ)萂',@upP(4Cz4Թ (qL'Tq( g±Er.PP)XpK CIb<b4XP{0?4k\kAk0ZN1JOG,< MSBrNDY A*B(I(t(I^~2{L!8b7q+J|BY+E]ܯGV]ӁL!4Nd.矎;ѦԨ]Q?2IoA}Xr̘cca9?-M< G`ܒf]MDO }|h|E9!!H9ٵ-3 =QYBmJi}-Kv+^:ۑ+4"4jWaw遪IU 2(AQe~a)y*:NOV]Gʚj/TƂ֞rWY#TO( (> ex J^X)LoLH&@A(C3+FGEDmA5S̖&A!%^i [^8x+~\\h8qmvX@&kο&X@3b#ƚg„#Dw 2$*jF6BPڬD0].:N2 CP|#QNpThc&Y oz F/m 8à,q kh{%P 22\MG3X;vsQѳU!/G?x*KP p|RSGBՌ ! u'Xtʍ죮P(,x !`>LS+8,[!WPsMyoGh_&j)MG 娢R*SBM6eTR`fU!*U"Q]uIKZDȱ>qkd試}cuk_ׯx'JBD]lbXF,e%[Y^Vlf52€!,gIRxRTWWXAJ3 G5C&4(fEHK9I' C08H!S9D08 ǭeYC&$! 4TU=)6=1<<ڷjNVE4@0q90;! ڈe? fFLgXC2=ʹ/cX xPMҪ_V[^tKQ- wa޹c?\CJ_ENXuOS5&-ɞʇeQ>JU)uX̒is^؇W꼡ڔfǘ{q_aCH@ Ώ{cXSͪX>GQNTMJ.(V?OUAܦ~hĬx[ʇn҃drGg˴ۍnvmNMmٺ԰鹎^]\VW[T{UF*/ӊmmFFʖu`\HѠwԂULuDtcةn`qNOsM6@h5%cEnzyB1Τ_¨b-[>N9ш^PI9%(`97abdH5WIq=.eۍ^xS5j۟xm8Z%؁^ֹq`OjHᵙؖ{IAĊXBɩPPPԶnnnaaaFFFFJWX/?A߰K *\ȰÇ#JHŋ3jȱǏ CIɌ<ɲ˗0cʜI͛8sB\ϟ@ JQ**]ʴӧPJJիXjʵׯ`ÊKٳhW.O?}*:e+_? һ'oڿ LÈ+6߄ǐ.?#G} Լ/SҨS^ͺװc˞Mn^>B6y>xoy.|v|tνË?)]O)触_L~vc(OR$#P"T2=e'B>e߅fheMh?$$8 bJ+&e~h? S3cs&iOo5vS=9|A)X^e\ne`~)fdifh? $c %L[ 4 BMF'J7NG 10 P_^]4iW0hl# R#\*v~Jus)!wd>j[IHR7GWNN3 sRceO>sW[A;0A42~ݧ=K 2 '(qJn@6lKRtȅmɷZU|Sz%Z)喡Rh SO:ŭi\J׺Aͫ[|W+`סMb:d'KZͬf7z ]GKҚ !VֺlgKͭnw pKMrЍtKZͮvz xKMz|KQR3LX@a, FN?4o GL8)+M?T80gL7b+&I@aSnLe#W@,#ˈ0W%@s,԰f)G㜔Vxγ>Y]@9* ;΀K D]S0eJoӝX18qrK`U?Y (1kZ ֵ^Ji@ 0)+|a(&*qSX͔\e-jLUmK@] 1r, *xVr{gWOѻڗ7_4޿ a,3rUwt_+mmk] 4y@)nڣ)yuؖHl gI~N֋gÙvڭފ~F'PAnz8+)*MpZXE٧ss}XEe*ǬxY<&y8Z ʣPjK. }Np NtYHOʪIHhꠜZ Z 1y%Y)jφy7 kMjPjj'q]yOA@*Yhi psl(xFyY{SJj<'1I}f| ʱ ېq! k ) #{ZiKɡy[#+ga J[ JYfϻz|ɸ&Z!wwFKAO~6k*džbza+iu(G.ݩx{:쉆zgKw ,9KBJE f 밒K(uzfkv&ܱivj{+;;)˺2j#j@|BAJ{kЛҫ̺%jeeȎ֟ןXwƉYd~Gir_~諞R1[Ox |c!1t s7`7y`Vf|'  \/l!+#ې4PתJQKĥ@#Ƣt6Ḥ}4- Ş NκJ5U_վKcݽ<yhhm/ghvYGoePf ͬAro^߿d'fwP`DiC< SØUZiRĊ~x v;XOWu޵^uڥ0*U k T|͛9cYtѥI05[efq(nȂcpb̛FBE:!eH}a[(male[C&\Nr v8o dB`Ij8qg:Ap$5MS)nu]2%lZٙlB{3tj#/J~Ŝ|?CUiq (DuhSKR ]{F5rh7o,[ś8r k? =$p 2zMIQ!'R+_ Ap4 "in!)WA* ;VX-a/uZ2`wJ6uB6 \esil&6tU!W^r3/|J62>wL%w?901CV4/AN> )MA%¶Koj# LPH&%&_C@Z4oJKXBVSF w$<:^dY)KT7#p3#7"-†x*(*BVŸլ/Y#xxnm|j<_2|}cspKEKquk`ϵm}(|X%ǐ ]("E- ˛4P5Ac!?:x6{!8!0pJ1p 0!_D,>#m}h# [Rh )-URtՎN6kjD5rsUHwc!\g:h@ -Q&Rd;>AǺ-%2 $6 ܣA,HpMj#bL"NdQ|"bYOf|IO*' -Rhwi u&|@!e;=vTTLM=ESMLNAdVIر͊a+rf7\WR[Ճ,!6ag2@wkD 6q$7wRd"}eWFp\+ -R`"ؠemfՑUMF.֒}liu௵"35mMisvN_dZs ࠭u#]Fglel6=}&yx-S9o`y^%Tug<718;fkҴ*펳cww^ގHɻr&Ϸ$֑["=k_8tE0|<9$`KNz5z*AܖΪ"H4cI;c Y4";)+)"7*c RH*s77.289'.72{=5AAC8`36*"  3`'-w:*;=7⽑=K d ʐkC>櫹Kk+K#4CB6K:P(2Π `? :0(P"SCa-{0E AAZ>@@I;9;L>cn{]4 dB®Pl<-{<ȋ /.`"ֳ<rG+Gr$&ћ, lҕY *3أkѸcQ/-4as;dJF#cHdJc![2[EY[Ĺ0ÖPLOh:J@F ɫ[,HDJL;ͲCTų#DTA>C@Pz>&kZ3Ĵ?ks;c=L/ŒHtwf7k6<<l4X̛8& Nk?Ñ[ N*!KIF4| 8āH+ʇ<) +EDJ9iO&;fC?y9㴴L>#c>۴/6A;P< P|÷j#&o wDTG5MJ@G8L%$A8&+Mrˁ"5"e-䐃,CP2$:L#HZ>C>˹*!23lζc 5{DIS<괿 Y`Sz9E{9P냎Hcx>HT 2+(#}v vː P{jF0HB" \LLsaEGaLJ08ǧL̩Ȑ3 Q LU‚$M-,RReR$2\PL԰<\-M>I5IL=IΕTC%ĨPlJ EN:9l KTDKď1qtEAա` %QLԥ>Z@sY݌+cWc@PK-6YTЉ( ,Q=3TZZ .0VB3pLucGwdLcL$|B'|`(V.񹈺4UEqeU%UעECwWELW#W#K%2R ZT6EC5=XΗ<6XꒋjJJ,DB%ME,Y/WT}לK YYFF4QŴUmU}ZRhUW.[{3]m_] `]QZ U |̊.k (GKVQ-U2 "Fq-6b-Ȋ` ^YƽEL=܁$6<6I%,}5I5%=XPLTd)4/:@J=յH\3y2 ?)TNES/Waz=N:?BA;Uި^\5JۍB tfʙ4,\d,C>a-`v^.HW>え^T.Kcޘ{}%;=ccI)mFF+VQbh0̮MH{߇hՏM ^kmF5NF^#z-RfeuX6UlY~jjn}d6f4])6M?[,"f ngp6ro&p65UD`V^n>a`fje3n n^Mj͐V>Y.ƣՔ]U_оЎ C`_60?6m0"qKG4VԦ_9[IA `*m&R&ݐP5eg r5IpzLkVs⭾e~I8f%&pX|os08k3 o?tJfb]>]pF /GuSgB7aF]2ZZ~_gqG6rZD&d-sh#8@v%ipsvʖ o'/a}Fuȵ ?va6?act t)s̝tfXB?B )@tB_x khl]1Խs†=otK7+O4uj67#{\v?Spty#U]؅uժuFq-Gzhfw4+rD^ڮ*e܆A< 6V(|VjtGZ.Ougu~53n_>ys=ww xO݀O>wxEo?|Y)wVjj>c/??]𶪝l,Gz?;.(QSgzwm!#G N8# fn6u3o~^}3{~w#q#RGPJA(4 D '. ȱ`R:~L"ʔ*W#"D,"񩤈PB& *'Ň<СQ AZ bjĘ`;.Zfײ5c׮r͝˲\4G߮{/h!lA],7kYrJ͢(5g`kוgS]t upܷqNiW.ؼ9V-شƠӢeY` %;~k׮ 2dp )32oF/mtm@} D$W?B TR]BUqU$!ԩ(VugvhCt4nw\9.bIW 6dAcNcY4EiY`F%gNYZMA1m5EXb6DL[7^\t"\3֨xaV.zWS5UVEw| bRTB JO+IN%MKFYJ$EMaaQ @=u̲8ޢ-^vurէɽ)JsrPdK&fZb EuiTReAe=!26]=kg9g"irҒl4RRe5"rVמ@wCB~Jx5DJ)D5K5D"hړY(IU^J}XeC|" V/3ZYrȃ'u-XiȎs/ebEk0K WJE[pUo'Dg'`ce8pMxΗWwYoR3'ИDJ_ ate ?H(vDJ`?ZkZ F(pS9ֶJ?Bh*փf3z&'8(\!ÑM64$C( s{qehgӤ,D#BK#fq"TDv}9"æV48ck.ǣMo‘YLh=n}oIA)$-M=9R)GAdEMB#!6B$dkY"XMd%+P0>TPD=jdwfF8G삇K暐86خISJԫ+J-%KR+f" ch鉠S(nq/qXlywLh3en*Dž15~4X}'#" )/R%b*PQCI f b|[`j2*!^W3lfA&AMkoکT9ՅdlW6ehul!B;!PQ =kBOxDt+yhɎ"}cS"PNNraX'6TGѬ(ji]ߊq }PҦt.NsXt W(FInFiK"ґb7BmjA?Y@V*JhU[7i5m=OSm$|iHeڬH.-6DjFfd>Ȑr:ձΈCP1P(sї/ OƊ=1dær9 zxh^l g}Ggr.}r3H 07wT-_U{2C PcF`y]W/ )PF^{&o hJzQ^]CN*ԍ)۩◒-̉^1FzqfI` ׶e\kb\b2vNm:ڈ*^1Y ʢň<c}WJKp u1On.ĠAc!F"'0w>4%QpwV@5FPߎfnvx2ML?K4LcZW`Bns:'~gJMIYBDGd4_ުo.IhJgBi1ܙG7 ޾k.k׎zٛ4H,/;Y1!8A3c%,E9ēt>k:+AMzGnrn'^}D#zvkیTuANBH|7Á挓&.KrB嵍ʣM-s6Q>JgC03͘p:S\ձTydp=$ Y6V9 ƀQUJ]Ak䝊S} dAYB9=u>dPkE ڻ  ^ 9X7tL!eE9QKbU\-_yʥ5AYaB\הacWU\N ~}G~HA^2]_\ؑ]X9" :C㡄aQD؍}5ǶQD?cX%X0ZA2*>)  8f@^7'`!8-4!e;#L-?PUT֭~)P_ȕˡ i¡DEV}FBBP}K钅2"KK#$’<<2 ;BDib8'!'tbPa*cE,XgmL5B![12>kbY)Z#ı%Ec %'EZ:=.aƒB*$F(T-PE&]]ߠD\U6G"$xfkVB x GccA#<_j]`R;b^ePF'h!4'e[)dJ+Z/g"\eSuwƸ%l,c nLcYvZ'gM'J`E\e'e$6G<'&;fnZU&@f!HjBc<̑%DFΜ̙F СRFiz_RQ~$A )Qm(Dag'ɣ:aoViqF`^)D4'tNrn) 'י5Νj[CZ0ԧEh'Tn UKD|:)}VA鱦D` z[1e J}~fl~Ҡ!e2 "PnjL¹;v7eJa:hNiMc4lMeϳBjAh+В?-RnNkjjF&y몚kaf/pC`m7qk>ٗjݢr~P bR*R v^ ҢNE j " {2'u`)ŠeZ*VQj-ܫ *`.-s-fڞjB˲,~kNa&DPEfEB-JpH:H*(E׃XmJdos@Nm`k2ͦj#nvk!oq~B˲-ܶk\}r.SeAPjnNuک+ҩS6۳y.DPe.\Eķ)/CĒ4dp~}A} ntCǪ)nid.2.Jmaq%rl&~-DAd֪ "m*J(DoRoSAS\bD7+Zdmq4)#_oD̲,;Үz'0&[ڎe0rƺbDh'Ylsxj 0D ip1gY*c*00i 1DXjdqtD%{ibr&.^",~Dz?|-9?J8/H[d*_k rJ(_3qDsA°jDA3\´1چ:k?3?sk- rB[4sFO7^37 0c"T7K4SO>2O.0M]DzX?jegPe*#2>5*1'vWj- C'x!#$q-xi'3JtKC"X7-t8{3˂tF_qc."gk>3PvsA6AcCd7h>Cd@g6$DDAf%(Ҟ7tAL>^4l?vmFHs8t{37PeP2BJYCWMMW20hjQ!N1v.Y22RuFwtc w-%#07}luu:q4uJGvAHD x8 ong4_1nsζbvCDdC6D4$ ?~%8A[-3ĉ6-tAd6?Pux[Dd_˶L8KuJIk rwu)^0{O7*T Dʵr/py.zgP o9{'t|'WuYXe-7o4ru] x+ymvGzc]Js=g6kGvgGDhk8i_:Ji2-@+@e,66D<> UDgK`m(88DvD@;7?-6G+f9y1垾7l0P֙{%/rR5}z9vZj| z/g-AY' mP;u8oG[m?:87HxSasMs<|J4í6@t3 ?:K<^ xKooB'=/^c?;KXɟ[DKăsK{M@|krDlJl;C)I,;K\i ^J̻ zY0ϹKC7#A|[y~#w~+"uc[#8ثDw}caP}Ad˾6~3f8A_zh: K>vA@s?fD?dzEZW>دף>S ģ0,'L8\?;1n>0=@hI`AŋwaC +U`r JG+hYJhIYe˖4g濙hdTk'S-„-r"iKr{TAiWfM`ւQ;lYL6 \ҿ֥W`]p:TrvTb{"`k :2wK$D'ODko4Pv+7\*M,P?a lhaLq{&Pv,4YP{@[^Xb,Un`Y,"@NRI_n=P=tvCE9 烪 {NłLdũB\,jfl- f Ŗ"+㠾ɾc!%tsȲ"Y.PL- i:r2r 6RM'b[MN~  Be7AE7XT4ESd91X4Ğc(S:b.;q\2$4KPk/#?xbϡR2DW6*T*@ AvaB i8fZJo{QGeQE=OR5Җ'\2[02_|ҫ0w1ƷIZR,łvK.v :h5<ⱬbyN'<~3WQtK 7YJ)1>Llڂ<Ә~ U;H<HXtruxhoR'VՒ,;/=@2OV tSjQ(jvEJ)o{Kcqƹgt57Fq>P9t'e.2TX]߃ sraHxGⲎo(ˌOwKW5 HHH5 }yה N` ?S;kR1'|k 8\I*(U$qPΦ Bd;P1$&=*ȫRk!9E.6K|#`~譂P,ea-N, *`X4E@"e\A?cZ(IHrx|e*Ra; II=aYjL11o>_Zcw$| a \TG)^d4|]L<J2?T~g+H҈!$ H kjZC:T!hȠ7 1V5DZHd+)uCF<@)`!:"C!%cHCsJ5[ܹ:׾}mWt2k2XֵΡdGj/;b1TCԐ(U,D]92A6JױxOz mAX'}"yӮt\*1S #K-R iD_k FsRpkɃN ehX#;:ddA"%tiXsq1FK J bHHؗwY4kj8W2X*3}jf6[)u?z6ղ? 8#ԲQ$D;P!Y " kw̓MS-<,S>dȶl*E[U Uc,iSev))/Re>F}-ނM,z]Eܖa͖wƯ4/Z?Z_TsJc=icR%h!.3.QIZ4Nbf3̓l=W6Y6̛ݠҀ?.NVf]Qdq ·D9fU ,B&2BDlq%p¯Ț4P E=$qNe- N*=XW)2LoSv9D2 J~e-)[PK\uE#ٷ/jv .,苟4c=tr`W )_ӭwu:fuLH-ڨ :oɬՓzP|?LLZOX(1HA!oᇡRG[+45ӣMZ-o㑐u e qCjr\d4 *oPKنԬl#8[/ˑ*{w6~CnS[W~s{@ceuUJs;_wf7Ѓ^̼',բV:o}f &R Ԯm"p>N,>EcTT!N#)l*V8LJW =Mž o$ #jili4ibij &kf l jM@g B8f JVK08r/͈.p򌷖 _/LxTNc k #-0NuLKHp̈n$ʰ@P Sʸ վPlMx1PÂBCl:Fni ìMmJ01IjNbTŸ#niƘxi-lv|lh bԮγPKֲNp Wd JA d Bn@n18nXTnf   T*!R (,‹@)s ʀOIprV# <2#7hoJPQkrnFi r~/1 CÈ|0ґ*!)ٸ V m) *0B28UU!%#bZj:i&Z0o HǶTAHus)s8mͩܲPTkB RN- UJ(2-oaLp,R ʲ*=<Rʠ)>=xqz2崏yȡ'(k/JT,<8.L$"Ȓ(unC0@$4F9 e UK 0 pȆsGQ8 (b8p1#JN,beJ;,,6:3C&CHz:tiZGbT ! 8wЩlqFAJfn:Ű!:SzВ#S,e;o#$I-qbS %[Rv3x2?wUU5(@ TW@2(ϊ_laV!1d.FZR昫)A [ݠ1Va@HhOOP . f! N!]ޱ61yI% bB"&B3?h@#~_ U!5YMQ 0ivQ7!KB %G-5G pbfObRggOtV,̶S,+UR/iQɬ<{+_:O>pT[V z5UT{l{@A׶V1kW1 s!o fu jf6Wppq7qBqwqv@Vp$Rf9W rX6.5eQݚ *FnĠ ] 0B<O"$ U B *|5/6c״!ގqc`]#p g=:ffc1gj̶3|,ri'#W i/ Bo~Jr=琷`2S[flsV> l 'tmrTn" >G >8PnS؄G=!7W†Brwb ̊ f E!Uqc7b ,O U p`]#\H#:"v^LLb802vZM8M7uGA9Y]fiff{S|wV;=|hŲ;~VI_R̈âxS!lqف6@{5A-Wm/xn7oCd?֙wxYow Bu8wS؇łW@ ,Y,tk^caIeKv%ܦ=$$ ";pPaƪ80c5t6Ncim7CdM:zQG1 =vc6G}{.6g)Yg!'})yh?;i~~XCT+UglmA˖,Vٹ,Yo9yeX;8u؅w*Om]U'ɖbIRžs{t9k3".=8[ z ., lvE&~erЍ&fi5qym飕 ͏ ]nu4]xΦwg\W}zhڞɌ7 b/} "7l+%f Bq9cƺ51к®z\m8}b('5%߳iœi=rM||ٱtCd^㘎I3'F*#9ۡcjIjpеM,.ҷ3 T!b̖FcdQB0p"Gs;Ϋ(ēڨWsC6KJR>9bs9KuV+o¢y8Z"@qbت9|Sy+{#K|{]"f-cbfW_WKu\WR(pWس*[pYui=e^geYu&H 8WKؗ|WwĪ4>c,{u,N41!;aY2]]ιևՙ|$ ϫ.Âԗm)q'Wq!mX8{8o &>_n,J ХOY[S\^Ɨ"4-TU l`]bH-=^]/vPڤß!q^;uy~)lZ}Ks~=2,ײ .SVW 7R6yxvtӑH3/+y2f0 3k f&` Edʜ"KlY ʔ?92F 7,?Y6HNA5֬ѓ-[=m߮+޶ x_ 4O{1gVAg+CGڊ%ժO>ϒlKg~jНEpT )8o V*i6N'8D[@]Xdx NSջ]to݂+n\e2UVՀ7̂SUDBL]8HOQ&a"JBtK$8K88@`5Bb>HOK-I~xRJR$ HUdU^meVe.me\pE^zE&?Y?W{cWaǩ݉'gYhZAm[ F8֨qEހdOyMjb#B5xVg{#g }g}Z*qUD mU&ZESCNE !N̹6.5H?9*=vDzD20EKHQE[rboe-oyߚ+<''g-)fZhqi?hj*CA3cQw}i= kQZiS#(1c;7iVjs8PAJ@FiיX߂F|na$]!g_ uaaE0CnHX$bR$?dJI=?1dnM83ЌꮣoN4(?M9O{+/5hO3+O3K>.Mb-(0M H/TE61AiPäa@ D`X %*yVB,\l?v|< gYLvNXF2)HFqAXH5ψ^[&5y!M2soAfCAtѶx#$hI]f s T |8l`[qa(MHt ) ѵ `.)AD b$ $F5Q1DyKѯv[ʅ4|#_hG>#z#44f&yc:C}?؅H~3YgMxn,f7ɒ$㬠 )&C?Qzư--W8;/gUc$mxb*4lƆٚiIiQبD=0\&))f'3N7H$q[@PD7/ KHd6:]G$l$B##w'IJ(uq_|;ىҗ1ɐrV]HVɌyeYc ˟Dys+a`&c0h[I.d&xSBrD^,gJ, 8 ,H@"q)Cm|(@_KԠd,ciOhR t oУPHk #]/bDjT,T\IC2Y%٦5+mѨejEmlzI*TWhFɯT rֳud`/:>o{oA1]S #$zN\8,cwH7%VtQyXH9B&*01IY\/Sa'7H7@gI0,I' qui[y!*T!'6`AQ4xq: Mz>1yNqT ctq:+uɕYbd5wERsGcNW\i߅l.ґbz?^?}wi/\ BM@IM]I(3%!.O}z B!.G^޵\ Fx$IbJ(G +!2<@u,8W%o#8eLEMzL@'@PTkŌ4Eƙ}f S xp͹?6q^!a9'd*X!-ۄ #b b`r"3&D+t1ss3Gwg!8B#qfsIQ"Qr&Q10*Z u!*]Y!4FvaT˰Fn^zAxTzGjWk-IX(xGpJ\`ok ?Yj;lfДe\UCIC]ՒY8wU> gks>X >s8``\=. cWkq@J$!,Xq} p7,G$$OrqOdʷ|}4HqH%S%.E!@A} [b1VGba @ 2kB, R Zb ȠDi`rBCEshX5gof 9B8"si8}AS$p"QRNuޤu"+A#voJ#JϣRIT8_X@IB``'Z GР[ȅF p^wX/tl[@x@ \@ pHklpw}|S,|p,?pLp zu O 3PR` yG 2rp b@Sb1 0 sq `3 Ƞ52" i%${ .Fgw&s6 #(of#XH)%Hɏk&4a*14Ag2z غhgE*K_ǟxevFe3"9Ղ9k G8`5;Y ` p( ; (kעK x @ #+x oq@'baxVs8B+Z =!ZX`:gJjj ^e vR˧iʂqʩ4EyO  p~!zf[3 iXuu˩3!Qq+s "2N b&M1Ѝfj {CQ;CP[u4ȅкj4%HIsE3?C3}{T4E !*PaRTXi)Vv"I"Z'w-qL7YG;=ڳfCyIp"exK ,dXP /pI \@;Ln{"Q}gZUgy3ODz J<r@p d i{! dX!qۀ1C{QrA9Y3[ 0s!Q8 f1Egt{2 4TPqȨCu05DFw\ZǺDil_23Y7Z1i(FYi Ѯ`vMsA!_yeWMVj+p ˰Bi??O)ۢ.ʅ+ ıg0J`tK G `IUA?AB G+,Pǧ)`@LKGjb KܩR ,0v$/"#Tly3:4rKLƪ ?76m0grʹ2 j&҉$1CsK[tEa~DW\Q8d+4)W' uҞ QEAZt]F/a5U !_& QZF=FV*+z8zDܳ2A QIє,p|D)|l' P ˱=FUzLkf`U@1l6L@#Ю]z,w2ӧ}J` m Jlҳ9m}=JS;NҲ!f}qr J ؎3 bиsxEEa*hri+r*s[1 h@+24CcMClL#׈5Y35UE?a)D<f89&uF F"zF^{WL$V9Jz `` ϩUʰe$C.kKܥN좺+jڔ~0-.~PД6 ڭЙ~h yzt nȎ쫰yFJ@n(MҤ;+m}~}1MNiƪrk,ƍDmr` s/>szT}l6.[{ðu@"\1井="B(Br(Ar&su2a`8dRUnMٴ|eJSUa`R8JI6ѓ"^࿧Z >9;\]eXI] ݮ-|0\BkfP/<1A MG }tv n)pw`gnbmmcJ@,GyŨ nrį  5ka_ '3Ws#2: D> @Pk8TMCɩ [?4 (TVb h49(Ń5dڢCKo*]Ku֬[M?on2qӧn7`Et(-ݶ꿪˂M]n]լ]J͸ kكf];_5pٲ[Z%Mߌ~19GqFSqe,ָ$|<] g4=uѓKkTX1)Vک"f?%Fx?>_dN䏔ܾVɿJ %HmU ''V=ITP 1L5B0O$UHc4PCip;dUl)Hm[bt\tSMW)CHt8iOHiO O rSUJ2 rC+a/n*uuZW!DfQiFSIOUvuQo8c뱌1~5$d\'aFXd4?CV_XkhZ& N\bxr GS @K8yq oaL\0A2-myhE mL`i,6hdW҄CYʚbqjL#c`]ћ$0&4#$j/:5pCq#Z 9+ Ýe @?x%9Yʶlfa 2 J GASh$?~J(O`-I 9/PFF"d@ԠMJf`*% IBhn:Hp˸nq#JĤq#:0w4Dr9rɆhIbș# aLAtd:Bpu(H:-HS?jqaJ2 :FšRQ a J> !Ȥ;QFG$94C_.2 ]@# ǩćS*dU[Jj.$*9V98 Ցߺ A:@G=+ uff$Ը#p;LlFj1AqAxe7!n2/jlcHq"A^bA@ a|ZHvW?uX#O2>< |u9;FHbV1.[4ChN+bHC:,Z)QʦF5-Hz[ܔ'YDL 1L4}lP, \1tEwC/7KamJYY}'8rI ף%hW0DJ%)/m'N֩cґĈ\0b5}$vDeRZ xR-DddT|\;}yu@'HE$&͈OA l [MS˳@!Cz5mEO{`G[Ֆvu[BWI9lg:ѺrBP㏁GP@N>Nr; &AS,O'֧R8?h']JO}iL6<۹Q^uxF,ʡ"JU* 8^R a]LkX8?M@Ez _@(DО6BS R|":Do3 2Eo0 yyBtT*gQc-d9f,]\ k| d ˔2lAC|"DZt+{\@WXI0O,0C}]a*(2Q}GKdLD}5=w=Ɉx)atjl_&mRAHd'Й/r?|0 0fpFF@IYFGcZA?ruKםԾtS㏩S2|K2 72%p`!_8@5%aK%8#,岭RzqiiInk$ڟYZ9Y% >٥dHU>(K)CW1ȅ>F{% ?k(8(i+4iB :˻ lˑba%9)sù1CT\p(;(CE(3sdغ.LB뚮 8o?j#Ȅ튶I s/.S)[Ț.̽>30C=iU) i`Ktʳ!rTM\T׼ p ̄ćz(P }"@0A 3Q'{1#2<_@S62yۻD)Ma͉3y1t@|gM3x@_iXrVׄN;d}ZzͳW9ܨ\@)̼#CY-+Eӈ oarW %#@ mVZ#zL=JࡸJ#^[5#>JµjƂ1SpS x$H-PҠGA܏l-}G.!"/9AXVcҐ22ؔb/ 9Mh?%;?3QۢttHT8qFz\HEs} Tറ03k  $L*Q^Մ(}AA R222sCRtCX2)\;ˑ}N@]_T_OBhn] z[v%HMGEٵK " @P̈́#j rq#; #!UP]$Zx;"5z7,;#1b=,؁1؁Z407vZG2#IŶRCdhCtH"Q]JAJᚘj'UU:9YeLb qދ*q@XAAZps4L˸DfȃMahU}#3u+3y^3* νsWU2%3L@Su2%irn~N]x ćbԜe֟P 5ӋLP B(Yn(WiX֟F[IXPK|ПjW@\Z6 Zq|#+rX-+ z(-Z*%&P]A`[е"-*@,25GƂ66l0X\75ZOX5aKQ:,"-bk]k)Q^& 2XZڧ<8<8D_ك_.8ni.wN#8iby<=CRq*^x.xZ5'{v.!oLșNh9Bx3c<#48(?=Sp/ri8u>TɟjVm7oj?e~qi^jQ%$*_Nz]UP|;բnO!p9@\Y?klo65+><'&'&b>;X|&:G?ȸ.Lꏺ!.YO.JkeԞj&HۋlByyPxrͪbH$RbqЎɭV޸eXV(kvoGlG%%%r?nI8NUMkn&)2ÒuOuAS@BWNJ,b4h a!6,JC\5VI*2gɆlO #2Ta VKآ#PkTRɑb?aU1m* pe* :G tʥKJ GT8 pveir0@L1 4h|d:Q S&GhgIN\Y*"D[6ϕ[y*4lϚй|L ?ɿ&|GȐiB)x}\!sLqGx1ς^A <!8^E&<1HXX," 5Vr"Eb\Y_U1 qMhnȡVjcedWD@812  [>DiO`<x x4)@\rDa?mh_!O!@TH7:O72@H'&%KQ*i". Z # %@B:tB 4H0RJb?kUj%)H :THqTTKS0"VobK.bpC/^nnV\R,؛ R|Ʀ>LW+Q D 8#(pFDKUp`EqEX"3hM& ZE]!(rae'ʟt 61^1l}a wwhu 6H'lw|b܅b!^^u(X"abY5 95w5v $owJ(3D^ W~%^G1܍.) 7#Xk %@V>ڕdp/.5@)xJ* rU.`Uᖋ#t嘰t 0mFd!R4ƧݺN{`.l ;O9uġvcR0GmIdn؎;E# ?yza@x1EY %0Aπ "P[8.@Z2 2g1+U\ d!QXSժj*^Tk#Ty(`diKsf썼ʴz[8hfՂɅ0ޕ>.zQMe`V aWîDZ<ٛa7UGdxp1@X; "׎"(oFn3sEiVS{>\`u XD##p^4<0nxA  ,*Vu_Ɩ ~%4VUhM͇ yBl$%LjB(G"1n>dɍ H. {kИDbDe\bI z#CF- 5ʴtōij&KiU AaJġ`7e*PR![4\T,BZI"izm$9Icvj$='y{EȪC_׏NyӴFi7R!qY5$030Zf0{Ar1ǵM-LQQ MiGQ] ȍh{G A ؀ ~@`:č) %##a4?Gɡ}/4}\, %\482|n1ؑ2ma-\?0Q}aSE<_@lo5Q 6qC`ahO 6LDHQs }Od]8D@@-YG\CR}?ODZRBR)JiԤ/P PQY\HXNDl-?A4*l*X#՞)HُX#LT3 L faM!Ȍ ri v`F&r(۱48&,FYe?*QP0^- ]C34CX֩9]h DE!fOdbAF$pNȘDVcԘfPlMhy rRz` ` P @`are!Í|GAU)V\e4:H Taaa@̩D*dGfBEń,BD3ٟa! `(&Dd\ D[v fA_ d3@GYG50"H&@40Q)M"klY-BQ ůĐ m0|N#nH0^ިޙ-ԗ-™H*-!C*4TH_@觛mH^^$Ifdf`-WǴۋQIאmQR=f⟠]](g4T#eÔLm܆#ҜFY$ = U`a"a ZXIR.I#F@!w<Ȱ}!(%@ V  )%t\ !,p% 0j :D4{@K* db`fՍk% i^lX8F- Y@']P j~ B܏䚮5m4X\Ïd$U&|UO=S?igTp' DxZoJB,PFUT1WH酅kHi0I집 _G X0G&( }%er  X)}=>w!uhډU m!ןPԩj]9EZ1EF2VdF  vFꐔE& [;yQ lz_,Vk]5Hn`p`p.WΥ[)&?.j|@)e\`r. pʉouٓr!(g"o-/?EtX ^4Fc UXԚU[I`Q(IDT+.Y\~ 50?6Ι JDYDJKygO7Zy2kZ05HcrH*H~~OHqB<u,Bb6 L wIu 4S^ 8?|zl|MEt́\׾l xp )-zG<`d %xFC=tq␻tHN8I(VvübiL`ھl Q\ `A+X]nZuod5Y\pEVКVrn0o߶r2ohN8gTLE1'fD C3v] J ބsTTBEE~JEEE#3'nZ,XHl0ײ@x0*\|E[/H',{!uR%[RͰāOP۰nɾsi][}z1}؇hI? h{,\L۵ QqBs(* MƌPe5]Ƌ$UͥmIe@@axIԬl5W$ $ur[Sp )gB4؀)iV)2^:*?eD%2*۠@aE$niʪ]|pdb0)Kf:tс,N%O̦t:9SO+ݰl(pXv܆J+CCl>1i%D$ć(xY 2qdhv8Ɣq9. CHJH*C,9ErS513AK.%|PbĺAG 9!Ao<H gNp!RNY7s(0b"0++8"RMMBTQ!*hKDU/BljIL/駇'Ո~ۖx*Y)NJI raJ2 $OM S d.UWCd1縂)+>.Y*i!NA 4alXH!SXZ.a0VZi#A5nP>K&麉&SO=~ȽV_{W  S_0?;JU۾ }Fu:NpO&ViUt:TF1LIdGܽƾ#+UG[dL` 7CRNqiec?c_`>й.!?bpVb)ZRīLn>9deFk[Ŏpke`G*87iPZ R!Tr@ED,'jP`b`&DHz8\4 t0U -+ IRj|U^FiTÆRBIb8rh*Lx=&Xp^r]׶59sVAstSgJ)$m6JsI0@ 4yH\\@/cyC<%Ӟ}nЏ07_)N;f>ӗ(BFǹeꗾ&%*_=ՔO Q\!Fwlt#1iFj)5+Y KʄR49BXBOpST&l1'M JC.Pp\3FJRg'CH:tQ?uOSv%PԡҊbe1Z0\TjjWT3RdU蔥:p`(, ka V (zBpt'/W AX!Fa 4 q*oŊèb-R.@l-(4ij]AT< #E"B'9yD Q[ A~'@\g1x3@m1"1ָ&f7Yn63,8-Nxf4 jsoa#ַFdhyr ]oGgGppH0X5=j|P4:qH(*tSCLYnܙhD"/2>S`LGY7"|`(ZM aIQʠ0hGG*"C@3G:ԼfW_Zt>S8b ȎԧrIʣʇL.rH:WY 1Թ@ZŪWLh}HCCEVrrZᰄ!)dŕ,UmP ¶$q"?ň+Zc]W.Ŋ!Uّ2hjQ!vaBj.|ڳlVab XУZν%R 'qs^c:TݎR1Ls`15. dDD9ceo&Ùg q獮3tz6Uss@:A\nrG>-ӆ!-pT3'ԝJ3f;q 1n{d[(i.S _Q擾jV+$!TG?zhT[ozhC0O:3 '?W/-60'*EH*F]!³]B#?^a ^D-b ?X`Ю0n= .D!# 0P(.#l&kDi l 땦p .1jc4ub6nF"b0 kDnɚj.gKOkJ:CJ2#"UIV0x 7n88atF|L1Єow ɰ9a|sy0REmPf Жk~.!?\A@]qB*"!Dʔ<gRB {7 /pngn@&Ց0r.ob(g.TTEEa"-,X*Š lAbƏNoNoe!&A2$9SA)C V*L5 xJ:λFd_c3phn5ZmCu /C3~CJޑFQ@`.5E$&?%XµJiJR yĨ(%alTLDJȄSd*Z$($m$4"$DXe ☢(?mc R x_)m*.0qے-Ra?b_، p` ^f2>5b;?tfi"flGdiH YhH3zcFcVvj|*bN>sPC& |ZRn]KVAR,R>y@vM Ī6lAvJphByEgC|-SN2ك8pS@+sQ׿R`u  cr [F!::n2kLhbjG$Z"vw/Ib97|ׇf4BeTHFIv!v~D:}hH5jBY!#B!ܗp@zYv93zq 0d )qv$B7 /0""Cd?V=7>"?mam:asv 4@5&TgD\-ec6kIX>Hnf kgSh nNre,'fU'GsH>~H~jh\MI$fh-@I!Lo(X bVM$S&MN&HS>[fmMp "P=pN}pN_A`{* {qp=Nr R.O/=`u=f Yvyqľ 8L9i4Gvt3wv95y[}շ}w|y{ۛ }w }{ ړY"Iٟ! y ހހ&a<9:"G$9x!U5AlG^˺8.x!J/CXa6a`g͆ ^x Hf1|ɷ廿ן؛gl礼/+:B#$m=t۷У^­E \0Ůcsz;'Ea FJ@"NVA6&.aiт.ՊX|A*,p Sô]=أ r=t}N*?F=| `EFjok@lz͆l𒗽l Il`1C5ihb&q3W}~YI56d47} }$|/ h h7 AJ^HI@H zce"ę#B~d z&3I10 d:3o=o >MZR J>91+G(+ &G,`+K@x&f?b+ʹ!&t\q@ ‚'4/? fB ^ !t`6s 6d&Pe3txb;zJ!d?gbb?)9S̡%B߁ (Jt` >2MQ }4/B*?)AcaB DϩT@ O2E9 G]Ry Аx ECU'̈́CNSDK\loXpqqtJ"塒 9U'eս3?ᕿ1k|[+[ VEZ` FX]oS 1|||M4֘ g|+3ͬIn:vͻfbS qPZa @q[zV\Yg)$Yzxf7zxB wMJw{݉'%zҧ'ڠ(t8]:NǑ;`a+_,^B$>I+dX$)"B8?lފ'AnI`?+ :S }2Nw`)!HNw7Mg}ܕ^?DiJ`qxpVQɴ%p$UB&0VE6@HV TfypU&l1EZj4$ Q~@ "OVѰ$(IMlb]ÜD,Q&ƗËQ [01 Q?,v¨D%O")Єt}/u_}DPiߥ)>x**i[Kg*Sq HjfN$Q1OmfpmI 83BL*LR%U%#wͰ(ZJR ?jD+%*!NNrBg5Vъs`$5hAE6QցNP%{Nyp$rP@5Nsl75HuX#5ƃOR5.H]A-*ƃ7/c5<pT4I? >O~3 dL O{0*MJR2ܧ9NDp)Iȫ:! qX 6sA1IlcBm|@Ч?C顦9/}cK]ʇ)ʖʯ JM>iBǏ=4h*UI])*C*"j6s9{ϑo8v?V\`*o{z87m|:PLaIE_Ո*ecxw~;-W^Aή ?+jFW=1}G ?22%G:@ ӵAj8`\8 PFE_^%^TJ"E'U LB+gyr7d=zSbL#?Lx=N(8::s9gs:g7T87toP6uy'b NS!d=ar%;OI'! c W a!$(R{xrwrv=R>GzV*EE*mӉ>UTq)AGH?&*r) e([l+t`Q[ )w*zudX{"W{p 0:>hshw@AUjto=TD$D*hhz|l;FT gB 6` 2+* EDN#JAtEGk`^rQ*r~F ؀eFy|2G.GQ$3IaSl<Ё0-yp+@w`Fjck`uR/0D@RbTA?*I(7r#rRwC?#w= VSs*1yrpSx_xsSsdac ` P*a&c}Mu-ذ؀ 7׍u"4{Ψ"(x#%#n=zDWwhwhB"I/ Y.`W Ax c6:~*8@lllF+bW΂2AAB1J21WV1¢445+FbBIFm\nT-LjF,m27!7*Xyrc)ixMzH*qws*a73'4WaU6";'oy|c y8 9b8a`M &y8:9H&VVwayPQ{[A` q f 8gszA~H*Q~R~S7[bF P#'>sC8z9XU"+*؝x>RI>x z ʮJyVif5XْZsj D}ZfD2H@.j#~t:BX{ ygRZlaY(Yv!\d^Qg&,y>pʂAZ 5l/D!UU!I0*a6oa6A+d,!$T )`fpkjztVS_**FRQSu~rLp7`]wMcdkd;=)p ʇJ{@dSN "3#>W{xa76={ӈo 78xg|{tGֱ;A74T *T@pTA=Sc7R>;7 3"s٪*nTTLFQ6i XeosQpk;MJp{ƞC+3:AI4j}2C:ITHAHKC2N(++@-FJʤ&+\D9U-)ٳ|G[ '/]CFPC1d^/&OZ0EU$`)L77x>w#DSS\ƥVi>}[MSA)! H>M>{hd";>~cdCJC6d1dJ) N+ /deV?!W. [ɰ!*-qWq6UvB#r$9c>o)Œ*j,\*QwABzhS`h*!Pi <\}2I@4}9Aо\+}1%k#VGkNmhV SFk$ AbT5>if֢汥i}EOcpvqpb4Z䤼ٱ uR4E&wdbxfb-aw_ul#`IwĸJ` wL &5'sӸ#39)0c'&5ٛ e)Z} d `.HLȰ*C A]eI!GDd|y)|0#\2Ǹ>?ASq6XiAnEVLɞ<1Bmݔ=߶ЬЙ|WM˓ DgDID$,~ .(qrara*=,k DR6([0WuD/NcJB11Y-HFCY]A3,`qw+y+)Vxk\)l_ʕkd rzӍ>xCw`pcY/dQpg#ُSwowLx׉>+sΓ6BM (C; k }+8.ƥ ` ܏.ͲSBRf4٬# h?Ug,Όιb,gm}% kyӪ-˔f<6@I8ЗI.B =II1*-+mIĴW/$`)pq .-(ϐ ]PH.KoZZ;Co8~(FGHΑ5m AzscK?\=qqYwۊSdj>nSLzxĄ>Qfep:hu2'l؛ *hz3/wnPRq>B, le\}=~NaH8PׁHGW<;n1P'>"J{ȸwfiRw0}{}iUՠaTDjúڦJLMД|ˣT[*0L aYY/"E {C . @BC E@@ }$IA8z-āc?88A@̅DՋ0PBy)J`C#*b"\;6Ƒ#2dy5i0ik!/2u[v,wuE{&E̶ɔMy9-;#'m)'F 1Pti> C7Cܹ5yTuctcy3ҴU_a#x,se[t` uH g `` "SN a >[ƸRH.y+qF1w"ަDO PD8䐿ƈSX%Ka҆G1o;@845* D%ԫ*j(P}A ɀ.痐$Y( tR7!' p!Y0J))k!"B5*"C& P/w3:L3;1]ht+]2kl4;m:-l&-L;y!]Y9e!YmXO;X>`?S8brϜmgeNFT9`h=0b bLr-2q F8 p ,@, SÔPDXNK<[DFg+i\\Gxe=C2ĺOR3KJ2oH,aٷmჯC`5nOĻOi,7 G~o+I@֐Sz#g'!2URVXmujYiG@ p Ŭ  R0R񂴈-Z 0h"YQCd.zB,/t9*o"R~h&HF0A- І2hbWjqI]b1ָ,;-S 3^~LgYß'?E#C9֐iNdqj[xct4hcz =e bF 5vpӢp<0]꒗:R.bf.ez^0Jf5FbhPuz"=\JO޴wy괵iy3ck6Niw I,(hmI8ŁMuJ*5BCEieU6 OVQ@@:`P$HI|_@*8e(ْQ<m?U Dde kR,^ Tؙ_ޤ* N 2tUEYE>&4mДiq5S~vυ,dE_㚇1c0.0F.ngv2 vQa^M qāJ6 mA\$_{J4̹Y tڬgK:!5t81GN)(#Xr)4nW%&;|GT0)HyÛ4;1@%s;8: D*YNsls(qf9iDX,91BΧKUDJ8h%( !" G~C/I!0Rp(C)-(*aUǐMJRRf/d*,L XofVm:JjXB.z-Z28Ў CD96xDPCm[S4v%aI/ҔH;:ZL^xdm=Ib"ls?ƶ׾6AX2VfvȂTZJ>YkaRpH2%s FE[GA bQw(q /w %ԛqs0ygP+QSR0$NGܹ=oHJ3 oq!dk8 Ji}4ĵ"dPdgg<` ֪V;m&c #%C ρJ.4Zl+@rإ;@zs.Aù(āA@b8О7ᛳ둸ěp3S8!G=x͓񀹅9'. 21S YҲ(C;li:XـV.C:VCs2dX5$ñk/@; ik h(XRy5H<`.ىr`aXْKiA Jɛz! {;aE-U伖p8$[,0 5Q˴jdA@YFQEs'yz Z`#/'ྷJ`xzLpL~.^@H9zQS`%^XjC) |@~GāR@v#8w̄VVX IhĄ %)~Zƫ>bE")" 6(1N)di&JC>: /B:[CC1\ x[)C3BӺ8_@X94K$P²({gb G ;)ܸr2a D˸y3)3>S+ɋy}A+/ 66EDA0!BPb'4 8(J[d4rY5x2FGsntqH?e{aAA`v Q`@$>ԥ, ^H8`JHAwdpvvwAXЌh-QpGy@1] /빀銨<N +AA:Ese" (9,X9 r?2BKlѩHKCgȀ.14C3|"`d/3;;XX+)DLj( *@ .L7/JD٪є$Hr@?4x"Љq9dMֿ73NY` hT+DƏCFv.4JW@r'lEZ$tX8遮Y!&rH9eQLXL@PH{Čz & Ո P*/HLRpp`Y %QQǏYP9_0ќuG|DžXh؛R SHH "\1VB}{KV0ɕT0Ժ5tN#lqS5 X: U`e3Hth b!bp M!jA 9mZ x bDj/hʨ؛~qḅD%ɏh8ҽDN.8N0ΥT Hߚp,0b!$4]ctOʞdܵ858xYUY5ڈ%9KBGA8^BbiYw,|GuLhQQ5Z91ZQuZv ʍD1![9XİkhbS19e =]qJ kCe (P `-H5(Å\0lS\6:Mj *hdLL*E58H1 KI 0^EfȊ=MYc֊1XڋH2^,^$ot (3V^68iOE`$,1u=Fe")."%@VHS8-u8Za`b*+Nb(O @{I.AVYd&%U&))f'=-6ڥQ^1fhQ =Y<aq~ 9CSX7!A Nf 9%'lE:x2d  T-P^eD=mZ9mueZԅ@e\1:pX(蹁UrK.7腽%-fOAƊ.㲹[P*BĒ1 [ Hjfb]N)^Df #\m$E "ʵ<|E-T +B+,A!B h/Z,7z`Rr`Gb1J;`yGMTR̈́ĄՑ3i:琡@bёmQrwDQwX*F.cjхH[r_Т!E{J =7Jke~Or1AǾ jn ES`6j1\ n)lĵTuLr8fm΍ (Hu\T\W6UVu\Z[^!ӂe↊`]9pيp~󹉄JRAEjofn^ľqbGw`:[zv-%^ŹМU<#DDp^=ik#pW,M5٢4d #jǚFQ&AP)`!сݷ+T+Q{8/TK Й9+YɉѵY1v:`sQ(Ns7{ܿ7GZ0dB%6B6҉& X lJ'Mˣɟ|@mBTwT\Z\QuPܻe6T\U՞eN )*|g)f@n&IQS?vhI"0Z/)Q̔9? 8 (f6aKdM~Ig9b˿8X$6"g.`  S#Y2HlXo (AB-΅1#GP&)cP&,R]S*HF(3gx% !EΠ+WNhΝ;ML;WСv>1I#Gd&B ARqeROJ%ٓ'9hf*S&G'K}/jحvR{ਟxnke{}$YPZ_Cө_;N y.pXo#o/` ^oz D( `B a^ЃVh"<4"#P A<ϋLJώ88#3#f8/%*HEP!ᅊ"a@BaPA]~I'o '' ;PϢ} DX?׋8p'y≧)j)A[c+ )D,dFqF+H2Q 1KAB $)B`Mda]R G^V=UtE6ټU[\u]t]veW(Uu͵bDK Jd9 g&hRo|-Zem,E` jG_i!Se}eCX O]S` &Xt1?:6E"y})yM޳ Z p  .(B}g?X"'Eȸ"4 D3=R/fb@L!2"ZTP% Nro99f§! k9C`xa>;Q֒0pB@G"Av:Nq+3,DoXx4Q^b.wYgƚ6~chfgiD2$3qIFj[Z֦fiы 6)m ?*, x 0 pT[>qk "Щrف.t*5yDl.Ixv|[F&͓gڝp!MHS1Rm "ԈiP,'F=|)W|zSz'[>yHNN$"U+4p >*L1|@E:YucNtK猜YEqbC:N!Ӓh%b>\iw]Z-҉Oĸ@`uRd80dM,w*/Qm.S %T˳e Kњ3G8mi|pA!b\WIiHV*B *@ JB-1/I Lf.D"f$E0?.%]"W#A9|\P.I+yn)j*+(mz@W)N`M{b3`SHLaBh/`OUJ>[g= $Qxb7UO)uᩁII螣ʘW2dZP&I QɄ(T qU ]v-6Օ0D"i';9a Ѩt(s`w9+.CDś=GX[)5!oHY%Z% fx8ҦL,@ljYk[G;c6lnaiCĪ+Sx8=:ԝU.o Jϕx&|K!hWAv Sm 52 `DI!2_iF*8#3L!/ Z%.IKޒ>PKoi&;Ti˓g);%\% Gl3FoF2̟d!{%ӪUiߝVZuG՞`/B ?[MV2eXT!Έai^N\Cy*"ؤ-`X`NTJ| Yq*y |ⵈDD@DmEJNlGNȞ ·DCuARbpRK@Q%=D-OdfnC~\V`ϮTQ9 ɘQTxcc$5GXl ׷TZwNaU^mb/օ] = ?j? $)!`oA <Fia¬CiPI(荦(\iV?\ȏ:XN(QQB! %hΕȖ.]?\%f-?xpƜ6NzqIlB=a\CY+)_ȢИ䪢~!O0LeM'vnKȔu4Ndc UGuLRVI aRĀ#4GTY` <BBDP'1L$Z]I5^<ڔ<|B]Eو7BNnZc4JuG$s̋deFH&P@i eQfܒe$,Ɏ0 T,U`TVveWv-Ϳx?D0de=la*q? BֈpO^a [5E^ӜJpYi]c at~o .Verň.tjmUR_1Uf1W~w5ޔm")Nѕ  AMʋXɞ@!^r.LG_NZl ӅƯ Pde>bV/BO ?CqrNiD#^ń)X B(GX$s'O6sZ|q5ʊ)7a&<ĝJAxv ]L+EDyf݅]$>wA#K`ZzA߈$ okс(B'8_E͟KUuv5J̟ % XIXHW R{ ?t)׈Tˀ4@eV_:aO%z5Xg.uKȗ0ԜYI f,I@: CXظ^bDeY.M y]Ve܅ %Pg)AZK`\ 3Aż#o-'DPMݶQ ^/Ĵa<+Rg&rCwVt ҁ@4k6H'5*a.X_xHzsDu pe8{G}~#3$lhg]0Z.[`EO}8 @휤̍4/HHٸP OIPN$ ?DRɍə@&9a/vUv-d9\-ǜ5s/mZG0UX> a2] CsJsnў\YGFj%}^T(-R9"ort`E$*ShKh2E6[*(ծL2jRGxA'&ַ.Op?]aᚹ~A(ti ҧT~$lj8ԡ6f>XVpgq8J,68Q '$s4żhVg-?c@֣7@3@)Drg?A|Hq4T;I)` $Щ py#`h˚5/?!D% ?DԺUgER@YgXua ZVoruA] p5`|~0xT埗ƈ /pر^*WJ/Bq)S$HT2@?&Z"kZ>|?@O0ed<; x>@2/ĈxE?L`:2NJy9`"pG,Db;S0@Aql#,8آDP iF`8%pNA@r `Ŕfs P%EzI--C0t !ALBGL0I^|^f-zS$1C%W\EeqF>T#aŔ`c@t 2& D)Z(!UhYxHU!`WvuHWH"Y{}eɸ4^Ȉ%a[in P|i7bswWK j{Š}X1 "2 p@ Q:@d &~   `/ً/bFF**BJ2O-5|KmOBi*ME-6X 8p;QqF@^HGiZ^1`hkE>oQ=%W稴BLa88A,D]|T!gTRYDQHPd]# kV5g;*B$ 8o g&o(N#Ԅ%=aV%)E'Q1TB}k+"p@,_],EcxX IcaG,2!@̬2T2V#L56dɻmA'щ*iId2\P5k5,F6 &G 07 L7@`0H<[Ё&4qCC8f$n#I"sQ`aBa 3 j#,"64.}8MҲ%PkIOUOJOĤ&jM@cDmNY䖅g KZT6m bN51 kv.p7|ZH4 F7D&ĉT ".RYх4ƗÀ,2s `6G615Sc>49WjvXw&X,B〫7Z%v} w8L#u۹c w0"^ $%@a={^otGjP3a4W d(s"Ɉ'EsQvBg;Ћ;m%: =)DgEۤpbPI) P Q% YAJ-  &Q'TBO.aS/xSS5p}>ـe%Cx4Sj#mv̙Zs֜ם&ϟs$%IFz D4L[pE]θ5qrMuS8*U|'j#De!9=Wx3%h=uwނ J`qjx(dm*3#i!GE:;Z -9iHIM'0N{BR|3uf0`"]?S5C/ߎ2ˇ4PF3$)~BDkkcYQT:幆$99l$9"RJEgH8Yueh5)5#Q79L"9Mi\EPFh\G5g{v=(#O+:_=b4`e`@ab+.K46ABonCC4DGLȵbPdGVEĕ Mݞ$ph%5PD%$hVj vVh!`L*( a "(n2Dg~CK CK;gs>t;4gb<HF&,F E!kIvS覣uFŜ\$@4J=S@"R3{hrw@ HgBCS.0!JP$4J)NNiH9 eOZTYul웄$v-vjuTgThupz [OZixa 7pU9ee[z\Dn%u_N`!&"?#F.į| Ų:dHdB3f,C;TF4EMc^~b5\2k$XJ?` @"d !2h_>4C'TMhb+hjG\$9W69kfzx#w<|7OņohUj'<#YB#(b~tnh/§.B6ʧjW ^*sTC zC55Dm+OGtHeD@EIXdvDR YJbC{R&LO@Lz:>t!ے3{r'ք**{/ Env)dUTKU뒯]؇IOEQewb{CL(*2ɶB&VCϱLVbBиFS/6;M{79R[%EE{+޹?ا?H@=#;e"1f.h>&Z+K#vCSGeRe{ؖrwgzVg#$>;tN+.ZT<"4y'ǻ߱ :Cx\ ̩`D2t߹"QIEL*d Lj ީ2c"M5 &8*sECrLMls> %8ĢH,0s3S|vDxԞB^ˀ'n E J8-i/̅Opoϑq"^j\jG9[;/T$@$qLr[8mE%l=_W+cd"eFft-Lf.6 SZ^B2b elfت5 B7z,1>eH̺a $GcʏLzG|y#Âe*;Ft!O?%'Q?AJXr`I ?%.f ?HC5"Qd#4"dY<U.tO$y]YJCGkx `ePG IyJ"oXRCyaʜܩI` @/4AhM|\^pA}s?Z'1؀i੦7d||cؠHq`(āPC[HZ9ll񒰯-ICJ`KTk9FIӅfQ N5+V)Xu$X\^eEa\AEhWM1fUo5$u[PDtKa-f kЬ|2Iw2$kvFgN5֭"<>frRV.faFR$Xxь _֧|]}y); h!OVxsw?: ?%"G  ^)">E#: cd4!_Myde.qD(foZFmqII’INEZOr'KJF icy}jiJzڧ>G U;(ǁE͊qd.ԊUKZb00͙`X°H 0Pg:0d$)1֛z2MMBYJꖔ$^Z WT$ƌ-@Zeîp%2.`KY~  Zx c6]'D ̐ 5AٝR'< 8xM-63 !H2T-H@=YRt0r <ԣ]zq(%~,x6mmJ!4HjeL27dHo)Np*rQg/#9Q|t9e:t:!:ӬR 4&i(aʒ M,:e|%N,?ShTM>I{1L)HIRߞPvj UCW#Aٜ)Q)O%1``c<& IL\R 2au % Lh. e($P]°ӅA[ֶE( ڎ 3=)-W⯬).\5b^\̆\\8i+jAF6S[Ҳ! κp'iR}N?+SMjNUeQL>V.ͅ18,V^*Rc&=9RaD69٘lF7' SdPv[Lnur7L qJZJjJ63YO{J&ʵΊ$_p)f P19,X-+W/E Zv`&Ua + 74Y]3 5d jN#5$4`XbHg5 's4W\G=FSDbtԅv1mRr"gخ$mil-=r|mREm'WK\-@8t{tp#/׻?܎#fzwL}GIJ d6MA-K7 u"C R$%M[B[3JgOa'48qt4Z xZc56llwse 058H` q6mJJ7n~#E$]1"#LHD3^#X&#K;ChRHm3H1:3M#H%A|(z0h G5Q=Y3PXJu`%grbH+?,0\ -&W1 Z`makkg>UqWQTtW.>$#iv$qNg%azt$kQT0Cg$zgWUlQh+Ryz5W|}VVWə/yu32 Π@e{aOC;js1Eaek1h&qN&O TU*ѠIэ r[1mAmVV cII0c;'7J!(g! 2]("LEoD _ d^Ԑ qtTB%op-7_D'ȡwGjB@` ('Odr1&u<5Q`:`<-7!+ C9JBj).!,u]4҅.gUg~H.ad dOt$$^*.%y QjAx%WUDx:x~fVy`gDTxXSu@y:/CE[ ,{6{1 s{`AkS^ft*k.<` 5ո*RsA*bݨ*Զ[X`;ЬVyJE~X])"G8]9 i)oJ&i:k:CM!ym;8T$O$N2Lf բq' ,C+`rE'sb <2+aAc,!-ВI:S3G-=Ƒj[ZlxV''@0We1.\V/ksJ|j5[+%Nh3x^xj`UyZyz:xKh;Bh˛3*F.9++[֋`ECe[yogP: S#)Z"G*IΉIrSSm⇎EcsKc6 d!D&g!i P$Ր : ʀjcQ2FoѴ&ʘqhNzwv:'`Rl1XI$)'SD"Q8jQ{AcXF/AtRu1Y;!%dg2$/Zu-uXek2,}&z%nyHnDqHCa{wIV}//7uSAg1TP& x;/T##xz:Er\PhٲgF Q'z2\NҡaGSw`aZ)* [s7mJcH)KmX08g 7je8g8SF# hC گ Hz$od ʗtjv$f"mN$Bqt!(ד$):+Sm$239jN7,n6Ai=8&%7e%e9wY/i/!d92ibXeBe]UCWDkx1:YW/g+}InU|hgV7TVOuC==x 8vuƟ[ń&h{!hXEpR1bT{.+ 29Gk[gwv:L&'r<EL)[I7m*F\EkP%⼒"(2#9Xlm,jLL9MLȍɨ;3'fp:>r7se6k46q@:'J'2A-":D&Ls'S&/cC1áey@3:H҅R7Di)7UI[UzxYf%x@h%|Y D29O:91z`jfEm2CnxGhSt׈j[`5hzgfH cj=z #*/}3W=He(6?] ~A3&b< \q~~Dه"-#3b#Keood^ ^Z̀۠H9li%DLjF̵fh2MWqs;h_iŃw(5b$wi):OcTf6uRfNcd4J&" V^l#L} ӠYOkz9S :|ܵFl4F* =EH0 Wh0>\O!C!I+\" 2 Bft" */Ђ$t%P\9I',,3(R,x7,~mHTSΠ䃜ee8R!@ A$@4R B/*ˏra^pX= i#\P3«GBQ$ۅPJh>w(Æ2qn,20Cr"d?AaJ!t*ҙrgALI$?*$92/;y/@5ivБ+tIPBdS8HMҞZ}Sl5V>(VTe} VZG,؉.i!T0b ^,s+v1a]|i^X$gp294BoHq(x Ox&#Lj <6PD0dj! Q>bbs a= GB HˏC3GQt)A^b(|EmSc6`EH=EԨBb$"GqJOJ 8Mjr&ŕL}@ PԺ9'qS=b+;e.s8p+%R"ZhDCa3#,f'窎’XJڇOa&%'DT"J* =IKliҺ%1_8J+nш,ы .Z!*\il泑y'=qʬd%Ɂ)夺I(ΕCLˏ阙<\@x\e*3vK]*E?J%V6Av5*$YVP'; Jɪ8"aUQ @:X*UVHn&Y- ebt1i٥&Fb Gr'siI55F_D) -SwHPUgeAԢ6bsPCĬL=ԏ~ΖNRdJKԊdqX=UI`be$@y~X' 6 f1\RZV[ (\=6Mɵh{]=@ s(-gr}S;SX؊3T/@3Sy89[ @ +812 r  ni10 nAk6`9{!:"l Z sjێ& 0x#J0b%hC !)3³ٻ#w;#70.(WhH,J,PH 4R#$:5B5O".Jqš#@+ڃWQ4I-E,jd8Ea ek6ϱԉ>ՙZ.i>Z/49' %q2n/ ơ& k-ӹ9t/>cBP^ z! @z\"@Њ*9iI2 }a * ,0 Ш ))9Ș< :!Qt* B.IÔDY(i5@EaMDDR쑈IQ{4<LO3Ó:Ļ?GD"9FAK '[ 8Bĭɒ,A6<;^E<6ۦhH h40jp7~F"? i5qD?H*slMu*}Y0P V AȍU @^D l'dH0 #,2I@* /(PtvA xaIdI &(4#8#!+3T%3|dIjla3ؙ-Dr^j4S A$X;˿d7Kғ;Ƅ #'{L?2ʺ`♒A?5aKM.!>a\_ `OM_Cl7ёf<,&5Qn3iNj:Ykϒ4 #Dq4?E7!0,$ O0?; ܊H܊RAh5 ׋c z]'@ Д)A4(l1 RI]mo 2  eQ{@J'*d1W&28+<1,@`$B5sSH+c%p^ӉK4&%qhGdL:9U#R<'SnjL3S^J CxrJm)IDKiZZ]<6]$>`MP P%UT` Fڼٜ ܄h蓝I.p pk.79< \*GHXJGݫ@O`}L+R}Qa^O0@bi8J*| |WkOW#򂂵 ³j;ٶ6=Al>(kY}..`[vX-R:s*[W;/CRޥG<|m@?Z&i1*." ݒ,ŀ&²4h$WKJ,[US3sMӋLZ#'hm̸ (!mZ)TU^!^4\{q;UՁ `ij,ig^jKH5ݶ_.z&i(*cD_`+1SkuT@40a% vzeIP^^j s^ # O @g0PXiY}951P#Am_;kI ɚ[`s~.XXUI$5h"p);!kPY%t#G$=֎î4*KȳjGy6 j䳹KSVCȬ:|i̝AT"I!h^)Dސh*SHc6N,w;+9c` O`$䨪\<q{k64Y/Mх@F_BX#*-[x:2YH1?|eVj^VåȤ2"' ,fq(Rf81PXB Jk |ٱȖ!$ E㮾Eg VI_|Ibda? NǤ2# aZ^"h1O:&L.ő$)qp(i)%-">mnj Ь6CS#YLxzBj=6 k"aE#8 9\\q1q"E.-Vk5*7D.'!KKJpj I7OG6-E-x0qyOVWX3hŒQ_X1@1- 9QNg >V AFjA{yVn>gdui.$#ѫ@;-dw7Œy3bsDIQǯR`JB+݊ZAƁN,N[cLZi6%j3UpX,x} M#54j=0*Ҫ%uQ3״V;*2\a$ cMBF 64?d'o6*܅t1ڱN9M`B#aR/`^RG >.L6&ˍ)za%ɺh5,@cB ATYdKXLH[hԑFҦcRsJGsKH N|_5L:x28 @@CX\5Uc[xէZU j rV(]eW_W_qF_|E6bok$d?$vZ{@n=Konpquu=fٹw17{+2wzŇ{/ELT$$LAKa[*J/օTҕ<mꬑjȓldY*JrIQ͘d9$aVl(GIJȑr(MDցPG, Vֵֵ4rܷF D2eƁv5gLY3yY&ET]]U=YTUNi٭pJktїd]Z\] Hȉ @YJэV DXiIMZjnDEV~I+YZȐ  %]R&@1TsMDOVE*r@p`t@tOC%AxyQK@Cm_yS:!a+\O:TC:pA:GtYXccDD21 8VxV4FF>(El\rFUX͆c/e ꑆWR^hK jrXH\OUܘkQA$!$T)Y.qUVIIݔ]LޤV91iK M$G[<\dϸ|K JYåh=)-N[Vi)N'!! @m ViQ" lan֔Tdi \š؟T[]c+bc_TE@ HKDxWFAH1bF1F$8#KH 119C5.d(̗U@ bE{ LgGsGuQSLAQbLKFTIrdOޤQNZ$FUA@DLh~䄣%[URiĉ-\\/QB[8RP萶Xl]c X[R*ɕl'a1^f^F(R[a Φ)]2XxŰx"s͞Lfhj+"F,Ey3`Aq&Kxm1PxT!;9P59p3C􀨂kvSrTJ kWY~B>2au^EhMlMU\Kȧhǩ |pHK (U k%A{(@M"M:uJ>ZJڤNh9}8Q"% NOШ6XU*fHǁŐD(%ZpH!D=\N"BƤ)r))e~X mQTb$^o(G:5^6[mDO5*^P'dвGC5tm&@y0TmAX_lX hkXq?xxuA(gzmVA"fv#pfBZ`-TScpIp܅B\MDz̓hL"\aF/e{pF Yfo  Lp*lb( z!*]F.ZlX/zhM`QsMtO[lKQf!lύhԈWxE(+ܑErIP`Me]iӺ%B1mI2%bV1^M]@T?:'gSU`J!V8mhmFH h_ނ@16@f]$12 h_,_t? A.Qn;5@16&4*p.iV5fugFq+ĉH=E=֣vHx'] ΧC\JGB&$٨p dx˴ B13B]R6 @ʀ4 L3ɯFUV5OJ7NDQ XIPlf`FIEDQY]Z8X0ZL İ=I g!jiBcafU]:Nթ])/,ԊH`צ|si9Pctb+xUAp_ fTAzjrrJT5UC10xW11@$@C F:jh;ZX*nJǹ BV#ǍzAW4/ \cec/f,U0 3V5G.F .3[5/R5Bs5O*fhV$6!o07J:KϠ3D IƄK !nŚEYL[(70Ve]m% CZRіGnI~wfm^e7"}p$ h#4FSeV`XcT\`lT".ySuy@pr_y8Kkg<@02KTV'KH5c37-`_dbdryxaX9_g( QK^M AQƽ k$R䊭 Tdfؼ20ä4{@4h#s5of(4L:/Kk5Gs6*oWQ6f0gA:stߘIh5fhkYt_͜1Ur0ɘ}Da3-@(!!J%?J _V\'P$eK4"0JE`xHKqȈ}j1"51pjmo5Ĵ *ry&HDSj E`+HJhTY wFr _Dȝ ^PM ȑ{ {ęQg̤/J:44_34cԃ6Oʀ5vsNmZ}ܷFD{pIPP"dLUX:XhvĞ+(\WH3vըA0_ffl>~}w0k>f1mm;J4B g༷Iϻc%#mR_q|?S?Hhmk<@C<6ڭ2V5d*4x ezHlD4dQdOǴ]D3au&^Ȼ.3˘ B zNPHh- 0p 4:jCàzh xG3tp 1å*h?\J '8Xah  jqƙIǥ-tgC99`4ɶ ! Fr#2 $I%""P"xC74X{P\韟KuUZ`2VZ*2[w}*,r a5AaJB Y ٢+ V+B[1%0+O.z/ "-5UScsWp;}s9*U9*1`'3I1AIJ;,O2ᄄ>":;O?W>/=B4̖s7H  132ӥ^>쐈^zCHٲ` Jd6~Ҍ$No%{gD{l"J`0$.KWЀq 2qWI't W40ϠHrHA:$A=25I]%Pbhӈ%H J-UUorɀ`[)^ V\̫t]viXZd%Ƹ?o r**cq@q@\c|%] eS H4z0g8 @, F,Bg03k/.)rcD&<)Cx(>J˞2'3빗r$MCjRѴ#k>ԋ0 *$ ൰lfz#oS21ȹp8r 0#E ?j%^3Qj]qBq+хp%/\gl!t#\DMUDCوK0 K,5TC(RsP ESI" A QO)JJTTꝼTna+-.ײr-̢̊>e,dQaƀ9P @'f4ԒAHCǜr2Rl.8AYp i_.q Q%.!i%thtT%&hhQ$vxCh;OҠle)}YRL=%#:ECxbI*;qrc$q#jPhFl6"Mn BM~dh#EQ(jhG1lD8e  +jHCtN"yZ*UҒ)#8pTI\D#QuET!8Ipp&۔MRyʛ,yY)KWNz\㕭v ,mg@+gE,2Y'.~'^P =[Wh؀˅?_D2%]Z G3٠f(7 aOvԦM*PИFľ&t8 !@$`E pWEV˴I2πrM?Y؞u;[:AreG;|(DP n#ZAj-m7r5dfI?F$(- CK*b%#5͡NdDiJ膤CFS LLSMɧ$\!Ħz[WVWV BtYTe%iX|+\ݕ>4ܢW"b#E7z@У.E=>b'XRX?O`JBAMP UZ:Gl΀94"kS\T=`M&1=GA #!Yd4 bh؍UL0[CI* -pB:ѡ=`HMf-iBjPF3ynKLMm`Tot4t>+e)KaJ_@,iV"[#όr5KPw!4F8f" .JvMD.6)r+~ѩ'ū`-+ g{t* £Rp) Jj]~ͤˆ4@æ%_4$baҁLp#@OlD&` Xf,2څ; *ˬ䉄J=O%#;bPA3@E>F`L8o4 (FFO<!(I4J̀*Km^LMJl\oqVV2sr)RC$5(!vvS>%VS8C90ȄBA$4/131A (2F|M2P)e2:)0m+6:N Nj@HNvp2А2h=֣r5btz@@F$F\"B32?+ҀB23;P64n2ODo-* jd6)E7%jMaDOQ7cU" > -Q٘9i j !x"!69)&SxBQSnB3(TE>+ )[ꒂ[+\i-)U r ?!je|E5}Fބ\$|<5jB G*00T)JaKx/xLbِ [4D3 &Ac9j l4H0РBIp@O)T(N˪#;2N Ni|(Pz CϪ,;@3܅?CA*g6J`j2@gF31 ꦴm4uP D31P($+XOI$D E7A%-^bk#Xti\"";y 'R |5b6#J%yBe&JEHe'."Zǚ(*z[ z[e"] C!9YB-E-L-`M"}B,^;j`YvZ2C3}BaS[1 Dh/4װEY866HW O@`ϒ0_V(p-(iMro<Ԛj5ʈ"92(3l4$rN# `S wHG~.F$n1OO!PGow35qHɏ)qJ> (xSK(n5W5YtWk }6" .v zx'\ TCX{"!s'x"bWubyDy]z[z@>{˅Yƕ-XpA"_~, FN6L  R5M^obҔ~Y3996ddFqlȬ`$! 2 D~dflG 6Dn8qJ1s2pK2݆pmأSёoTDLēƓdK`7K15 O~5S hh3 }veٵ];zWY "xxg([[>&:c~[0{0 /ւ>>U֢L-Wa;nZrGJ R~6,";T@H "G ZD.UDZs򡫒(Xԇ0 d5H9pxFzM :TFpmF (M<֊tym~ 2p_M(yvnbQɩ\"nhbZk395lH8J uɁ( /%n|GF$q!UISR'InwGpHFl(q7 's7Suq\bE"%X JOJ(}SDubey|6%7NC7VyY{o7c bZw򷑛dN2)~-ƇL׽Y-|]u}ފ=^{@N]#=%Q%;9((#DD1Qs=c|NZ @hFV4$ o*%60 rjQgo^@m5cjʨ\@ VY ;2u[NT}-#c-"- {G1諿K }| Y ~5V̹Ga>C EA=oo$,ZE2 )E Hth"emE颎p *gkJJ`! fͥ (Hk$KS5ޥ5 !@PZP?I ET+W.V+y(:l߃0UlM*~sH_IA\$E CV L˗]v_&^8PZ1cvx9T"dV)*!3ƁXawnƒcnz/ú^]FyMWO<_~9?_z X{2$萀yYaz` :ƒ(Ӏ x!!/s@c?TBюAUIBTY!CPL@[dŀ4eKP -?kA J5B8@$P{ DO@C !-YP(P@  B TABHXQ?餃EĔdFU`anRMPf=PL1SJdRN54kXXieRWt5ֶI:B@f a|V[ eCT0Fg)bDfeBÙQAiBxAi^Fh&DT4dv[n鶀wsLE7w8oי||C{٭uVN#Xu ^{r`9 "Su[*MH#PHdEQR*-0|sRIDudmmPك9Z;yL擺)K:颎N:%*:{A3Z"JE*Fҧ3*1D?sPI)ƜTjCDTBH9We nQ*f K$Kq 2A8d2]xJPƨ-oqJ 1si9LcX# l3 fHV28ò,:3CXĞ .g+'/O v2CY|DUnDXXKzI@?jRT^ZnDB* Hp1a0^xac̰vlcSUI2'.9qJ誺ю@e-+xFjM3y֚>kL@u"6FͰsK"ɭd$fY~KU5<0+*GOԤ%*ɶRTSN]ITɚ\bŝxJ 87PssIbDxLbI׮#D%>ؔ OYV=vOl=T+ P>}3W ,ԱJ`W:R0'!4VX l&ה5\|y_uƂzG D|@Zg:(@ GJ?(`c<4%hX#"8sn^UJy;4bwX-nu8a|OY-V4'j.b[%!QjQw6:2\$ 1E,]EќU"@S* PT,h!p| .=~ *\O\< r-uwiB$\X'JUskֿwf5%%=At?l$u Q[u/A/WF{!7"_}W6MllK&]x2c U )aىA '\^.. @(03r/DB2S1%C8c3_3%GrArCSAT%sD/2- Ђ+TUCsbE\e`tV 5 l5fUuwVnuW Xs R P5wXRx z%7cvuvj'7j]x70"w' Tw#`Ig =$^ JK==3y%=&r{9j%Pry4_kWU)[6v\(\ q>\|"l|mj(s)*A(j]!,f}vfa)HOv_/`"~D~%W-FR&`P/WO{t GA|Aypl(dscS$RH%B3.%)TRIcA"w#&XE7dP)d*e* VDLS!Zeޡ!kd}PtQDŽ_eoTn%f^415`dav(BvOu.RYA#vQvaW&#dc"zd%7wа> !QI'JOMNM.ݲK4acKG8?OE]XtbzJ](\v>jô'³$\=pMa'?;;v+H|@`+З+fmdm)`'A~~ǃ~B8~\^K8Nb&pT.%+o%zqaZPq /Ǐ$r7B %7빞AUbqDA93SQ6W4FiYqRՑWuDWu6NVj5vlV`O3с4`4JEI3"EOɢd(#1"62Yr6%qw?8cP>ʶ&i,''$PaK2nW]\ Љ''"{f'lJ\kVĊZ7ayOw_W^_b,b}B+ޖv*o Mś~++`m@edzizK;J{)!$m1%' ZhS5zDQ B{qqX!VWTiS`SktaO^5z%JmN| bM 醳o=:ȅ74]#N̜-2a&H ~gGD_~Qǁ H AA\$ \ #HC6LDDTiQ :PatEePAUQE}#LI$sl1=&$HEAD/GÈP/̨68BCμl! zH 8&{ %ʓI&hr%j*x"(c*6ջ6(+JH R몛 )Q/D}jג`MU "Pk.l1oֲ  @(4 Ӗu㨂J6{o n![#N 2aN < $oO+O0J՚>:C!j/?頋 Р/9"}^p"$>:¤5ѠIVSD CTFu;(YT!dJTH+Gd2-|4 L!p6dM8q3.B$N;z 8t* )rM)'r)$rz 'rԧ"ޫFXԾژTu+ȊdJ pصK\m#̇QB~Q])B2!Zɸ_>X e f08AȨZޠ$,Uހ ^ JC 9 CIDH0 ѠD҅ r/M46 k(d'kZÙ L?x # hjbΜ84A(i[#Ĵ B>RBtF.Z F4 G0ـ7#Im9P7'5oQDG*mK&@pVI :8J‰p™>u& 35 J'!r]|gTe%{ OXRNwfWڲ'-#¾&];@ vwA8@Ww&, ܻ⮳P$qyB] Ĩc3h%4J@͋+^:`5"1}?Ep|G5HE,AGP35Da QVh F_]Ј1 o[bԵ'xT#MJwAzhCQD4eC%*>Xx`'3K AH!yGD;g>;NMD[lQ&IZ2MhyJPҔb$ %,Z rXUsslfBؤ_Y@XjX'?#`x>U ">xx |p7`i?CƘq"08?"SyP$ 998A +5YI+'+v42!UB!BA2 ;d;=zҧz4ae[ C \×A 7ۮ4* CCo'z}P/Dн\n'U4#<KKHEָˉ5 TT'R”Ź)%gxH;̱\d_ j|zr<pFΑ2E1/ؔ*n䪰AAGA<+ *{d7T#EF3a!41L+OB4$b:ʪ*w%ʱ[=#RRB D}&2 <KHΤP4(g5[~靏ۍf! l Y=ƨD$ǘWD6IS rT#sO"C03*ҒSl ZtL 6*j2)#M!DM3Ԫ"* o̪r-۲ԭB-GTTέ9N#q@z| |MqE3yl9,:U"ַkˆ ˼H6)A0-; !  }i 0=BW08l H,)yL<֪%Q Xؐug-/:fkQb+]{Jz=)5P˨ɛ}`+KLRМ)Y4! ̈́h 4:O,xSޡh1⩖`!ZPCT!.F$2ԮPTܚU Ubǹ5N#0N2FY ġAQ3HLܿ3y\'<#I9`V$\͎2EM VEt}1ciZC `C6 ʴtV )aۨ-\E lI o BAԧqQ/{ʟA_KGJ*٨t]EB01=@BpDeOI\AÜ.03?1fN(af}Z[N?##ZQ@T[-3 ǭG5:N{G#}v+ͲI\0||տN3 YA$ǵHBz+ TJVB[Q 4( p 5Ñtj7I# T q&&`jJp ^`A<(Q{D%Gs4/D̽^̸XQK<j(<0pP* "%ߥ*Xt#Rnj0b2VH;0i錙Ihc/p.KsvtTuuG%kS#@5bG,g՟GۚqoT3HXhX,&:QA2Y:x4ٿ(2V.c<Б8r7R4C>S7 Ek]i)P{ Ԩ(>lGܨ?!SjD ~: ݻ+DZb IK˨Q{▾=d7X*`!,cdҲ\1  f hN&AH 5"r\[ɲg|F8z=gq=72!UZ#AsMFM ,Y\V4C;;R!lfcP2IGA6(%,cZ~ I5ް? N$!me`vjvoU7Y[[лp[ %zMj l}$q ØXh(7}r&H DuxŜE0eL0-Nfʞ2~fnhe"`4wږRt#^0*E*|nCCntQug@;MFcE AX@O?V:040o` 4h-iB`H ^.l  - irv@O7Z_X5P eC{izu_"d@ß xl*PdsD~KCջP ^FendCɠMdk(R[3-7M [_`>(y[t 5e 0Z0}0Ҭ(pf#9&< 4? gBˆEAŋ*nxbE!;(Ҥɒ*$n,rA:̈́0#t`O  DH_B&+XhB;$]҅UۃfDB#6葠A=j $? #>Șqh񯍙r=/m{@ê H:kǭ'Fk;6ޑ#K )¿ m_G}pޓN|zWo˟!/_ ( 1?@ tTqfX: bEWՀk*bHd@AUmu+]dc[[pcEHcbcIƈP&IM2yЁXY %C DB?I@H!HoʩH!DJTMwrI:Y%/ rHE ARHAz?ZDATzPA~U%+ytQ%DiA@ P!ZcH(g֊imX5@zk9vkv[np嶦.7\PtYVtQUhuʶyǩxGzzc Aq_xۉ2a"k.33XQjZ=5#gooht*JaE" J̍m ٣=)L=vT3eyMڄ b&P&kFDI}H'Iv2vȠ ?`x^F-)RL7 jB"BAw Xv!!rH\sX@Tѱ&l,UtdtRfZqr,`V[Zo[k{`7k %qYf/Y7 ~$G<^Ճec |P (xUp@zY֊ l`̀=!dlXC4e`!=IUY?"[sːvql0ђ̨FXҕ%%8@24i q@Ԥ7M[GJNqRKdg$Md"DUs,! QbQ R2֍QUdar)ǩDv͛?1 0+8+0AW`dňIhA*T- Cjՠ[chC,O?a{rtC@f2Ie0}`̾ج{aAſL0 @<%yHEa m5)gϪ*|AaE"r(A0%(AGj JHA*Ӷb(u(BOB$g,cO/u)neS<0x!r[w9p\(ҭEd[WrW5H#MШDR)X$X(UM랂)a&)cQW;ԑRTD,\"d0ꋞDzaDw԰FARR@ІE!'% uXbao]2)Ճv~qAޜcK xp|aAMe }s_a^ㄌuճc 'zk|pҚ2Ͷ6}P$T{6Pv 6ApD5FAaP m16J^p# UVk+D-"N;bbV3ڍL[jL@ֳEqJ"8p'){d%fNFƲni'$K"%}UL+яmyDIdd2v] h֕GL ,ђ&n’FR",kSDt`9&F g)Q*T`]gd'uZj'£t;g(!b vSP ˫kTx~]T4juMr:%T޺FhzLmk$<9̃FG$(ad8Bag+' G!>+j3^ۺ6.@{Kk Sq1zFqc$GD9$f`djgq 5XP>sW>J#H9"m ݞD@=o-sȔ -cXRN9o=2@VO*yyJ╉x2[GD9beupjpevZda771 ֶGrՠl#c rਦ * [К Ek~&,Gh KԀtM7a||lCEKniPKc09bmvcsJYy@ys햏<d jv :*v !9y޲`S6Z Nָrmn4.d jwZtoDcmM|dP{ԇjD; {3bOj8bLό,ٛ˸V]yN"Q^X}ۺ-1)gt2i{0;OMelc\qY]l?@LޙSDn;5fN!̬BF׻M*=AQjsx;]P3R F, +2/ШLC2 1gQAz.TR!Z@|ڨ~˲ i$,) $4&6hXdITt@ {+*+2K,JTB-trT8̰y L +;XUc_] dl,AүAM |-3|?L.8˺l9YwydHc&3tFp\(f)dud'H ˆ  H!HhRуӢl{A%-#qD(thL(aamMaLhR qldF$$(=XJPg.;E@7'dP~Wҕ X8qd ]&.3LX1X0BU:JX(YIr3X!nDk6q}X⌧;y8WxEʠk0>Msz^sR/>ԚUAF>C BZe 3ىB 1`.ԡDL3diA}C?cwitd!)C6TiJaU7 H0JM1IQDM K2@E)PMP5@SBrV"ŕEq,eY˥آ8qcy\JrnդơM2fxkhUkRRgQp!Q*]b-1O ;94 g DI0,C<^hE-Jޓ$M mgbJ5myKJ&KxzKQ07؍*}"pV` |P#F=h\Qe0*+"*x:~SAFEPTׁ2}fǼ]*Ukю:dffie4ʖY%E&y>as6\\,ee{sezv +8,md54ܟΖϝQe,Kq(5t4 F{@E7(-Yh!%/\Qlt*A"eR7le2-'YPð5%xZSRB+(`"N,k9RFڥ\XJMã7H9z1i:VPj8uIkC7.usT`=O?&,j;`I˸i{u]G"&k؜K+\LmҔO 4#wt$؜7&ػv&Zt6rY̾ Bk9$ORCyL'j;z1Zыf쫶ɪ_==L$ؾ&DǗoz2'"%* ܐ,$R e+spGF SQ b@Ԧx;[cxF}*Sd Tym@_^e;l!jD#蝲O+J8ou>|M^#fu.+;vQԅ6X2B#5[l@ #c~3ďIbt`oG.H`Lgg'J ⾄Ѡ$i<ڠ @$(`ӫ$+X >hh>Jk1r"J^` nZOFPnJPd,go| 0op*@b- qqbbn#wRalW hW0PV m(vX|l>Ř8 1)D);E@͢\ԥa܌ c?m3E:XNCM@Rgʒ-if( GrN`f}l1R/Ajk0@0`7- 0S,FΎѮ2's-S(#3I $*nj*H3QofSqJψ6RRÞ*S/vrL7 i^<I`tZN*L:,:=V[%̺߄*dzc..C:`d@pj@ $at+oq-+>EI& C-h\X!!R& "ZUEAjF sEc+q[b4vU2eP(D{?`OafEO%+1T62-Ƣ5ӢU RN%0Ts6?S@Dr,M!r#"7:6%2D1E?cF= :i6cM4<#>ROK̸ݬ+r,aUEn kcUl~v4WU π5"~qH.#P D/sB$N@ZqdZm`4\%̄G}UnNnO^Fqꦐ CTBۼ(`ˢ^ M܀j)N j䥸FdS vdd/RMD.C28Utv'Jp=؃@!Z pvvY!%¥ ˇMFOI|Q)5Tδ6}z x2QYܬD12HRM,lbUL2|G= 0ˆj15sU٧(90;{W[Q9,ÆgbFI;I7ϛ $H+8/Ku7 jX7bb37c3cUlM8.2>>c>cːG?_uvVh6yQe _(e}%3hwV<[,4ozASjA].~(+G~xˬWBIz/O60VX$ZW$2 4|=+\9o%NQh]@84#PQ3v"R/:tTJ Ĥd-tU8͝뢃$ x$&(xZse{~Olp^*V4#kS1?ٌvV"|3'RIM19++Ķ@eb9sCpHzD (Y1˟Y$PjtE/9 XZgU(N%E ?{^66I6djFZ_`|ce5B2NS)=cևz=5i6ie)z5xEP^?֩Q'=Vn<7dtsJDԗ$xBMjW[e&Lxك1:0=}7YxaX\km-ڢ1瞈R*^O +IݳE.` ȽK,r=r$ "tdMoǘ%!6]L#v>e,;Թ\/ɖϸh},Va2\Cz$}xRrn6sr2)$Cf@(zz!!7@-QQ @m\@naYXEtCXP*&ASB5$16C8Em0>a4eԑ22)K\hF TVXeJX9 TUTefOX}X%YLh_Vh%Fy5מe9' cM[hyWqz]ug9qUt'y-OljvnY65nZ]'qϽ'?vGl{|֖oE@ x->X÷ n\#] Tѡfb؛aCQ)G+XA4\D pX l0oTQZ#!F*K,L1t>=s>SDuťUaQ%i TAYm6t.+ ת{W\lѿFiؕ^ƙf0ٳ]^C\UH==^Fƪe\I+6 @hI_Z7yK[ۗu9NS њq `z{.HBQ FDZ˫/1]@I$AQo9$QDe$GDrKm;i,!41Q-S.?HI+3UZ5Uկ,H_# mH{{s9>cOl#b?tҰ4RʄUj$EMGV:[׮ 5 8aM(dg4)WӐĸ-XSԲv}ŝ/jgP &ӪpjI t-PDh H_G3_VD,`~ 2F!bXĈT HKE:ƣIL"> gJW+Y W3NIBXAAhap."&]sR-2r&Gm[/&X%/A#w&*nx;Gz īݳac VN,BNZm\E{cCTPYE;@='GxHjہdJLƍnڷcamPMůk!JBrx,A1 #iD1LG&TI\5W7';R>h?p'SaX"v), 2 ~CO!Fjȟmsmˁ$Iq[3D&xc5'iI?%3p7jxypIV7&'IܲȓA1z0"F&-2+`S xʅ2J 45pխ LiqH;;+~;9F q~7{M]UXD#{A$%L1{i))j% $KAߚđg_-,}MK_7ؑ >L3цA2tIXrEHRʵ ̖qxF¦Km?+k-:P 8UF+rChLp蠔6yLV @٭APr%z;aX}(RSJZ=1wb'3qV2-#?{awWLbwS]0n55orW}"AFM?ah }"g .Y=v3S$ Ai{c6VPViwq xO?d?tY=#E8"C7Fq"E=sufdV(\vvXT~nxƈ5f:2tNDeH6 bhYD2'16Iu=ucj_^IS1T0"]"'M!#?1P4ZU>qGlK"av>dw4l=qVw+Jd@>C\3xxฃb@7"S4h@ bs$p@hQ$ zC|dE@q05{Րǧ1MD P-P;5I7{5soD+]h !}5"%$u&g{N4]A.@/~#`hH->w.~P| 2[K;S@+!,US95$U[OpR]GqzBoVGI*$w.X0XDSmА1EOo_JAkKfDi1{q{t}KpҢ9,aQ=DahsE*:=>b`v41eu5vek&JW63.^syӢvDփ?1(tg=8BL%4f.tTsf1tQ0cU8?ZM4k<[Dh76=’BB ǔnІ !a({H |(IJKTSUuU4j̈́v+:Qw P~ *]3[`:Ywr4ikO2R.ty 3n)xeUzޒ\*@j6cS׶,*%ֱj *7jUtDDhWMqb2s!BWiVnNK>T#s D?pSMw*a5jR_moWy&i0:PhS(]\^#Iމ# -ُnI;BY1Hõ|s]k (HnfZ&(]Yڄjt;]C `ܿ5W|ws+shuz/~{!gy%>=ͣz~{/3i|7|W}w}~~ }$ !,xRU3G5C'4%XAJ3 gIQeDHB08H"/J9HS9D7 WV *:0;\UiYC&$ֻU=G^CI/Ǯ6&-tKQٸ> _EN=1CꮂV.#sXNwJiRI_*EdªfhU69ʹv}hkWTvbvnm8'm҅]V:E֋oОˎgŭWZTkF*.M5>tb]ʊcgxc<=a3'ҀS[~X^ydά`Nߑoڍ]tPO4J5߮VES2/Ng?m:w@/pزy|YŮLKCrRZ 5#&qB:ۘB+LLL㷛yjܨuuugggոǭZZZ:CBBB.YX?Aƅ *\ȰÇ#JHŋ3jȱǏ CIIXɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴʦPJJիXjʵ͔`ÊKٳhӪ]˶۷pʝKݻx˷߿*-n?+^̸ǐ#KLehެ>C ,ӨS^ͺװc˞=[{Y(7w i]+}ҳkνeL_af̾he`snyYE}efnQ$N]-f!ZX|=:#f8h4hxbac@Y-t8P#nh|0@ù3g\~^b;"EJ;Lcܙ)ͣe58 *Z_Ychh-JhJ褔Vj饘f馜v駝΃}-: dZ1ߡ3_"a~0Z)%2#㢩`~]z*;6?9w_H艱+Qk)W޽odEl' 7;l?Ef\;_㫷s6(k: r. ꬷ]gzEQX drz" mhOW8֕eUea>mXR3^m%|DK9P7aXdÿ˩ʅ&zA, ]RD WӸ'Yg&I@ "&@??9P?&i 2#QY(,@x)ZX,r^ cF2h<HMtC$,8vD0 ҙtI7ǃS|# E2!%=9ИG)W(PѾ0lD*׸T򕮌e+g KZʲْϲBb٢N|=gг3](B'JѲ0(]юz G(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:TJժZXͪVծz` XJֲhMZֶp\ߪѺxͫ^׾ `KMb:d'KZͬfG@, ?DMjMuXm`ڶmm .o!\p׸ r{\W tKZ`?zܵxK5Zz^^7,uK_7/r8pZpmle;hYЎ6 RLx hg2bx` 'Hh,mm06k̖`qk"!ֶHޭ[o8prxC oez0q1Cݯ[4X&c8ca@x\c³ hУ]1?b1haT:ðtJҖYb1'nےF`"a84@,7 NȞql+_rl+۹.e _0W̡ 3rVѝn,86˟wc>W׿5`~/-AjG7z.N8K3ӟNI'>=)x{Nƴz*ˊE5s\-4ZLn2wgW|lg;dAoYnku[~\o~y-YeQ-b{@!^cyx7n4ӛ&.PG<,ǛU 7Q:LlcCveoe,2˕t0r/>^.3Щ~ߧZ~\S5:=˜jIS~ gņ )i5ϲw@ i'>6'{x2ykg1rj"wp by)7oyFc%z\47Nls>WU_զe,5]'|G#%_ mau[fuue|dWvbvkVHap7ha~a8rbX wbxjpx7'gq ((gVt'hkRh؁uoZŖd4'lUVe z7el U{76ڵ3|w^t]=ϧ\Z6f&}]'Xg}Jfb}med0[nnjVooG~)7Zw!6caybb7fxnȆloj psXxq{Џzw r'9ZYYk hgqsVd) ldX7{&XD_t#WW%0(|V|H0]^=uiN\JvcBYŘƥQsPsJkQhhhoԨhav~~y Ga|ewmi&iGiM`i膔x(r8 y؏Yqu hhhy0~/wk{Fu1Bv` ff2{P6ǚ𥊸 8^G,Ye)^(')t|a1זaG d!h|o6por0Yahahryfpv6xx gVjgq*Yyh~(Vc:֨r4VavșhLY[թٷWsdlm9A)/h*)%\փX^ĉeѤ0'PJYfavyE vrfZg1}zvhv$jc\`ўwbxמXHmxtp9:shw{qzygчuAwwIbv 䙅舻ƙ*Zs5{Iys3*lz3 mՉl5ʚX%t@I褳HFz1)^J 59={ljY\}7b\HY6%YϘkfʕ1Iȯ)'ɗtGq:o*o   pgY h(/;YcJ)f88c+Z}]ws:{5l7uhQ]=]@ |)atŧ]50^.9^|6ίL:^͏˯.˓{鎠+BEkdAi?TԖzWM傹ՙzޓ!ţeY aF^Ҩ-YKװnxnNTZQ]t|Ѝ]Жm޶h 礝a\}5}Ҫb<;YPTpbԜȀ `Q;;:D~A}=x3DE=TS>Ê:TSN bLpb/ ;ꮾBk߸"h.U]LGY]}N{ѢBE+4ZI)|/} -HPNqZ]< +H{Y~3\Z_6J^.~ݗexQ㷞)@3&کwncnGF}}T_G !%O~| /5wHɱ}/oM ռnnj{bJ ~Q?SoO+Zb?I=f bo=/֥ܝίyҁ3?y\l?N #8B p #2!# 2uQx#/,=\Ȳdˋ5m\( 'F=T?,?՘tȣ=^|N ԀР@ځ+B ]ɖJ,{7[sfcܼ4/?&ݘ3-b7ƌ6Db!_fo [߰БE[>h߼=k#|S{O|8{yrkw܅|&gaV6NP^.)ĩ*5bȤJ$T%™o*_4jr(J(>R<>Ϊ+6L*@l śr+莃+/r,S-L1d;* 38;R3%D4Nk"5XHʆR{4j =^X7o!p+/5g\/kˆkNZ λ:Ƞ.,Z4=ei裢d( S 4 B3JԘZpBh)\!%%*B?,@kCEЬ3E4j:u( d!~[z,d1 2,IԌJ* +rWt5!|B̂A3usŽ삋j89#&L,ІªQQSFDTWSGIgnH'֎5o!˴]NC2&=q暅no`o ncs9#HvIҢt7wt `n`w򠸮jM~KN栍s!#Jv#Ы "V;]pY)h}oJkTQa\|ǯ?QZ)+-ҤOup jE:k_jr\(fڲ`eoCqَ~t_]v2,RM48&YXG.E!X"P0s~:w5 +tIT2NV )$U^~!:Nyjf2Mv+tAPG$u #Jw=51Z_l}l2l!0߷s!m u-,pN%p^2xؑ;K$]9-r䨸"c2VvFXUiMV'GU@ yF͆I g8?K:A0cC<"Ƥ%"E2{"Ŭ/m~^s61zq[m$aG”H ?(33$~Gz.` a$5s8̂c$BPf"W!wLgA :SlhƋUjC28DJSJ˕g@N Ҙń= )6Ur/d%/hRӑ$_kH9!pT'p֮:D4+ӓ(۔_CO`ƁU„FlweþH͡ZZ!Df<~$FKHIr(P/wӆ"IS@ a-mi*]VA҆*ZUTa1XeB PR@"]q.gHc(y+}^$7.*u[㣟ي8woZ̻ Gy.W k"! 2~Ջ(vlzoA2mb\47--Ԇ*0dp.kIdbKmxt%m^J^&UBb0]jOCeMW[F1s;2$n+Yɲ,w @Pnz|5tmmhuN"q7~4N;8_XV}KMlRNM9$0? G (ۚ,!Edj%Kbmxjfϰ*1JS>ǻi;3bʠ.m'k(,ھoca X!J#q3Y?* #b6$qJŮ]o0swVĎud &<靏gz 8oB<3@ -F6RCy[9E !X>.A8uG !B6mUDBt6֖51 ZǶP>%_Rش9%k 2s\,SVJnGLa} f.zKrCMasu7݄crŗ-H9v #y275qixf θi?/s(54ts[+qdHZ2־n9gbL-d; F[q!s ]n-QUHX̾&%`]YX>#1euׅwVwYU6 \B*:6#-lӶn;;HL˰daw"@37|c74.3đĉ:ұT@ے?J<%ck @GĖ):$:{,E,-W\nkE,Bu0,Cy]DvGR)t꼉aDx gh> jΛƆ@(ta-(S7( Cu+ "(+˻ dE\MU@7ܬ8#H"Xs̈́WbtHPϚʹLR@%fILHąDQm *HQe،0cCc"J4>V0 u |>r£˴2+TS &+m82`,Xܟ!$Q_d[ƋO)C92|G3tR\ ̈x6S?c UƔ5L% ]a[Q pщ; Q\k@"{5NT9VEP|&-fv\h9RylR+JmVm}pWs=ӻm%Swe̐[[(܈SMiTAKĽ Xܷ#XL7mUJω2 (m%ۿ\ÿ|j;,ͭ,aMQMY$џqյيlQ|)]-\ŵ ڃdR=و0&E&Nu`ͫ5Lj"C"VyGXn=[Nm7*_ .|%W[ W S6*ʾh|hףWE4`` x2WD%JB/lk҆KZ+e%U]ZuZa% VիP]mxYP*PPծ+(%^ ^[]^J=%ZLݛ]>^JuV4-5;=۶_j%NXd_[[-ׅ(AmWw-\= cSFO4 [q-TJW]d\<ϭ+m=em_c\eEeM\yM5f\Ph}EHIb%^8Vbt])熀)bpO!Q[J1hHY>y^ZeFU$E\.C`h. ]]K 9MEpmdsEe6ɭ{ d ,d Ȉ`SQ`.`i fBXUfh~ ~Y؅Z2Gfm؊Uha娔mhhPܭh~ٶ.bmvU*b8F1pVgF⭂+[gv.N26hQ ٌ7t=_iEac>~Xcҹ]F4[e<6P`PFd0{ 6Fnči6nJnnxJ5mmd`Q6S>iFNe2 WveW.}--Ljeh]Юm^.^lh%Zjf"ؕ6hnYh%$ ֝Zbxl&pfmެmH?Uf!6h웓ho@^ߨ|mVF im&enR&rO R_9ؖmfrrFS&rkn NsQN^P&{IL~Fr?wسw*^zWBm_9/vb_V76hZD VE_txGlMHO떍th,^ krg)lpO- yw]oL5qh@f|sfq\^zs_kjf_u#FNFvgk<)B8w  B.L!D 20ElXcG,>zƄ O$0S2_Mc Ѕx,3ѣFw"-*QG;" U꣫;@%kVYNJ*5hm+PWlզn4lFKvm"0~Td̐1dŒBXpy1 #VE? ƘaTiɐaS6ܑW[j#tnkqby.f.X{'TO-ٸ?kmچ dnP8ҫh UӪWj۪ZO 4Uq{R*r>A@׮yl!!J}b[~evÒ@0;.1~`>-$.C0d"?T0"a)ct$i?lK"{JVW(At&AP2 *X =\zXIFro߁M bH <)mYh[b7ngDZ⺅Ah+dyCQΠ%`|#oڂ'  Zx93f,N.1"gnsvY^ZĐyS7"%.g1htbx=d"BӒ2.BfjR$U=>d#9U$}A†ɰГ !@ dO !Pj1t-Ta5X,_Yˬ}͖Z/u\^\/ EBT\̼ȉGNHf\oLk@ԙd(Ί`EkdQ3Xe'ëOlp "[:и| 2a =T1H d[-4nT>$o#˚UԨl[MiR.D^:nKVfdz@2\jV#Fѩ%*,B {%U,\DGkU*=Zzh_=7O alFx&?{M"X 0ep 01 2,qhb_?ɑ$ZiU( N*T=MG#Sň4qb̽iܟZ|E+] 73+6&gF>$= ٗG%I&2Eί22qh:l5@\'UufȊ'jEђZHSv|D{8QG7:#i?-WqD*j,,﹮k? ',M$)f|֒F-"nDc_|HZ_ `9W]lI1]A AD Pb-DT*LMYd^Y^Y!BPBYvIɔE{GlɞOTC֒GbU|K۱ǩ]eUlB[ZDe6`?bU@aY_c<ZC҉ 0A\CՁa!#NqE=="%* ]HA|]X` Qy (-K,@y 1y++\} =\FI#*.{)Z&*`) 7#Z8.(,Dɉɩ:6Ea!#a`ε!/@Eݬbb ?`$"6AEvdGA?#>}Wi7*az#x'&aƖ)$FOB5^. ^+ H^Y^ b Vs)PU/VD~ظL)KR#Q* \Z^4bbPP8^"^%ce%# &LbVDGJ$dfK`񁈊hfN!ag2\-g)'H%huwgwvZB&jML(S6zByn22UU֧}0޺gQ'%jf V٬VA'檅vcc霆(*_!沉(L։JƗReN&>cv$AF~DZEi ]=kvC;UĈUѩ" ^\EvB+f Di,6|)øMPNjeC| ©_&NLJ#jirB(R'NFRjx KR"c@`{SB-gݛE0ºAyj'yR̶e.(j\Rg|ɥ5֞,(&Kjn+V &JBa+e=zf&"Fgb_ dMFκRƼ.$НcQ)QVj)Fjd)H?BlRnBE\Bݱ%XD^M,&F&]ÞBDBZY,QJYRm V|"czj*΍{>~ lQ1b/ ZoY^ol>-*F6 +6mmZk^!E(Cf *cRfe2.yf D0$c_Ib5@HRlJVDt!&%*$,%(BVqm?tpoq D6h6/䈖(mjlV>ÑF >)l&g\'I5HllLBr,)?9x/mE/C8Cy*2 9jC>1JzHS,!3cRgDr,///^6{W,i%BW:jnJen #2~hd.0i_N_pc._ w""Fz>#5.6$n9&%DqGk-4s3OF&#/ZcrZ1[Ko6C,BeʬL!!72r*#lN-#g gW#[E 3 2Fg,%r&r"Wm˪$CorrɢW.)orq14c14A'50 /nFk>f|J֕>Q9K "pu>1?>n,%*8$p-j;B;\ /3DE/2.E5.1XWX5 tF?22 \M7!2*#B(#cw1lNgtPCw +@Ok3\@$R3uT2m7v3rz}/ ~3+5"dr/[4mOl3336];8K5Gc~p_kv"g~Hs%ޫVv8jdb,Zs׭K6GO1^463kpFh3Wlk4-3bpqCsCreY&[5KU7x{vk" 0r1\{7ҷO;?wyMy7&_2vcL ĝo7Kjt QAx2soމ_?[[#k[*][D @N8ClasF)ҙݪCКСڭ}憓 DʸE*h+5;*$;c0ߢ:^BC6xb, /c:6H3G-I[D{v;zO3L3v۴@{vc:AE7&wP9 9-?P)CB#g8蚃f$"ե0% .쒶@8BB%|@}s6/66 o͗5|F3¼bCWDAO2 \>ywy[>T/x?2&gxP]E #[?ie~~WO$j}wE;->Z>|<ۼgD'y:Z 50fs? >C!_169/ ?<{o&+F.%@?*?@P/QD!K 5ÊN#EtKԁ.b$:-F 'h?;Wr4 䥒1S@TbbuH[Sguӧ 4{ q{sOw #3x{wl2ꐉC?1n=uӨzN;=|q}Sؒ [&]KA>">"(KЮҐ!"z #jE֪˭˒ ] >C &;jC0f;l(bJƸ|̱s>!Әè&] (،z^{z$9c8vIN1H:N1gߦ6r;JS5V[(#V酒NP @QdOO90 0";2<&ZE[+T,K]jF)f]Kt7,K fmm'#+@ݿ$Jdfɱt2Ŝ+4ホdϚV@CZY;#:^nߘt85E`SNaL=:? #`MҀ5W[v[ 6>>gKKv,sK%8M\jLl8M'¶5 b èתb)Xf< 17c? :+vo+&vmk8A |+iaf2Gh 5Ì<坘UL:)yNVO]t\q(R.̢pqsk 0wQsc3'~);@(BԬNxUE7b!ׄC n0j 4eJT !/`PQl% n @|@m{fvx %sN]EyNœ/sNRkLӪ'-ʗ9AeW<>Gv)ƋPE ,fH֕4vrƾBrEu|=Fx@1>%^W&k0SC`#)>TPfqrɺI6Qް-Z+dztQYw4QjjT/ L4g8K}36H!#ɎV)+ZPE' d@*Aul:ssw~o E+uL<"fktAQgP\M!W!ˈF4aaLߩ% )xKG`5y`@8(Ȉ$% VHHrO1S$ -18EwE|RoR4%59(TyC7fx9dg6yESM8lOZx LMu0T+GCLI:<[x\%42DQEXcO׬H'Ʃp.J Wd @JRT6gz6k-(CSrĴZA_ˑٶHpJ\.t^ʌ(:D?Jib/% ryrQ@ 7(^,:8a,%%+}-Q2=o`&</sWtLVLHgZ[+&SSg]<59+\]ջhT0JP5kcڨjָ&ِH⠩[5+X7tIGJ)(Jf͸Yy. U4?IO\,V5&@T82!pS0"JB(lLm l:b g诸zvX= OK /ɊlM'k;kMp%jbҠq Q$o@0M2QC;40 Rs+xFԀ.sw1.2Ay/2άŏ19218)l̮`J4;MQ5V@L?]#/p->,jFTJEL7bI5 dji{;=LiTAuVu 661)]lA&΃%у!`E3n㖄i5*)"_Oo2IeIa qeZ 9q#ׇ&5Õr)r3ֲ\8tZ!؊Z" :XutZ$Z!uأw嘎rxx#,ץ-׈ُ'F)y;x90Bv{PC~&fg{7@H7"&#}1 8ȭlʦ&N3d9b3RwsYj:VyU7z74Ic+q5#6z6mEXoUpքylŹCs:Z;✧u;`ᙞa&Ո1Brsآ;{QS?KXI"Xv]Z6vv'#,A;C9Iboz;G-S mټ|O ?O9 R}I%iȠi&WhI'\h8BY߂,PT1cYז"&V))ְVOئ9֦pC{c*W ?vC[.q[9]W XCʃʇ9ʿ׸#2[a빏xq1k591%2 m«#gEϩE%C":y9"j;s&;& &P'<ksoM!ËLI|ē9n]3[U>A{3NkJc^7VR`IOQrtV[N5lK0b{N-{)Qĉ(7wR^RL8,W:n)%ɔ&2}?^T311ZE⿟A BJ>H@ )^!Ct Fyt^z"qRI(9%/uȒ%6Ue͉;hUQ.R%M =EUQ(TUV/JlFfZm%/1rCy)|X]`E%CPVeke-K bUpTcMFQ'D2Wѡ n QRn8Hehs5~vrg&jbMpT44 9iHQF`5*B?*߳E{2-2 ][ D@:H^LXCHݚP!w%]9ѴOU}CQpo%x2D Wy[A,lU(Gu䑕?Y0YǛQc%/~IYU9qmyf2%`3C SAeN$YCFJ$F#SWtPg 5<$WqNQerT6=>up4*\Pߌ?]OW+HATE 4 $V%UJ+d9h' n?Zz *!Ўr ᐻɃ{}M:=O)Q`WE #CqǸ&Qwp WmEg翑"-qp@.q\ִ/wb(aE RӴh$6Yخz+ÈF5( 7KhB , _̗bTюVR=K8TAI7t∭B o:x!WH!brs$X?6fn#j[ i.t|lz$eK<}'%0^D$o-m¼t'pY $7 &k&$3cD2%yj a?82Les9L,0K7)bƓ4 Q #j_ \O'Z2DXudr+D҇ %"[DzuRY7Ҋ$2]W1RǍ8H%WF3rc;jBTqk0Ddg`ks[#G1d [ o}5jB*׿n*a +ؿbbwV)L7U?)eĕa'ȯYp'(zLzjdh]ES&hMQVp7Ml6E cBƕ,UIO xbanj4'CQh_'i> iEdq}!CLb+`D@YbܸG(2?^pv`d:aEzO+-(ήZ 1*!Xr~L?vM54, صzի30< i#_ۺ6jjяI.3v8cU.Y?+QKXB,"<_>YDnI؊>mϮT;W"=gU' _%!I^ %Ooxqw >ŝfH\΅ɠCD曈 z&#|m74i1r K| psV8NV{̜bqԞr7͕K\;dد !Cm(Vj췉npW󜢑g'ysf*Sя !nő7\YaA+#U"AxHЪyԕ!$ͭg6WȭT[͑=[Gz&E HWI#3YbJ[EeR_LiܩNo6lYצz4g$D䧅Hɩ3h; s`&YLkMer39:n240Cßӫ!* hȊ!9Tު}3bڼg'X { -  a#6iE7,\ y,S9K˜q;Á +:6B/p,JK  χ`B|B|0@5dtVD/dSsl!u N A(Yƥ )(#SN\ Q2nv j?agk ^V}0s"kS>v[ 5B(KZm2YBRZ{B_H9G8jzGAFn${nXHW1zSzXkt UY% P8UH ,0{REH4;=~< } R.5R1G Q}B+Qqess HˠΒ:%P 1|WNnj—`  Ո7H7ӷHE!AlE!e8afUa|V5_H!^4CC A ZQ1ťVcif$AXs5q1ioArXNM4AN )P=PXh\w'Cwh|Q3:apϖyVTTy6H)UsoYyYh(@ &bI 0f9 1 2iUUo% xW7Sk,<9xvWP Y I` `#z,7` 7qAN0@xGEp"|8SɍиDy2SK:gR+0WdffY CZl+.'ķ(Ah1t| /jvMI  11V !JJ i\1AXCfcv1Eh\Xe]t#xr'5L'q4[|fR^l ^`&*?{ppeyIF<q}a ȕXfI{qoIg*c mٖP%c9{~UFEXiWCVX8jW`gIKIm < KKI ݧ=ex-pxu WDhlȉJD}!QwU4EsK4sU兩t:b!tBL*5,0Ra  Z%A '/= q1) ?' sibizNZw\Ij$A\2?4TT) ks="Ԅ|'EVs^y+Q: d_,AT GV4c%S8$]CJ EʱH걳7 6{Kg#kok9US `oR% [XfUR[UܖY mz I_)_KJv* q(:dIb;wW NжΠ 8Yvd-R;W 5 hC @ ڍ6L"ᱷH K  PRuC A ɺ; ae$) Z'20XCj ^?A N*2t}\ 3*P3"b |kF8^V`MUCh-hy3nIIb1;X_JoayA b qq UOc 1 0 c94koL _05, Ve(duă(S&n)c4}Q]ت˴,2]DPtŮ7&M.Qg!qh_˹P^P瓁y֌e5y Kby_FhD LؑB:*k, Ӡ\3K 5KQ#L-UJ˴:ߊ o;Kb oɤH*b 0/M|.Eq<.k nC cƝo7CF^H-|QR` {:5(<ȋeMx|XӐ bQ!ʬh {P6 KNؕjNkhئvj%O2VdA$%DO'$ C6fOQ67a=5(P(̌aĆ^†Tal imTFOFa !UYnӝL>\+CƾM CMϠ@@ Mn_0аh+Ğ b  4Rnln&.D[w|!~o}P u<:p_-آ,r%]ݺփ: 9^-(C5 J{)ʻ>oCڂ *(k؅j˩ )s2O&h2&gR&b5|!AV@x51;B#\!WfQÏlQZU 'd3y5&+8bݓAl {mo oK\#oNܖ3+0;/;{0 b+TpVO~.⚀0}q|.U >|( 4Nzz.D+~mlCL+S𸍼^'^ ق[tu`]'pժ.]E]W]cf3q䘑NV$`)T؋ek~W߯_Pʹƨ5H/$S B%ǪU׮_vG^RIeI\JS]tܽ ۋլU\M WKx$|ա[mnoD{3iQ&MZ44ZÆvN?۶>׮J8qïJN#sUĠ{mֵ$9Gԉ'OߤIGNߴ&M?|ĈB$&# GA.C?#.NB$"#)AYљg>l$:.jэH :$ōCH! !/" :^t&>n"Z]1̋J("5(MH Zj颛8۸#I ??(( ((JxJ*)8zjTβꔮ* B+^"D5q^(Rݥ@#d9.MQ8VS[p,CR14[˲C2.36(NSL"l n7p`/:d 3GkVn#.*:pL[#Ëko@Xh CO y/fN& ̋v8@Gl7nZ뵺WQF@atFrKH4svL5!" t+3WR#?K_sFʄfģz_(Fs(h dk:t҉#.2Qba>-zUUWQG-N(I>kd#NY!RVRv•.>qMZ25|g 8X NĤ(b?, Zb(F'u-5F tIz5:8C)QTC t9E0f_ f.itF4Yr]d$ j l$S4( 3"v:@ezӞcxS/@4#G 5#?Cfcv3.դv#B?)rH,8Gv-l[ܢغ#veM0㖞%\c.((N[A6r@4]DHE&$PĖ',<^O.r-*ܫC u(l8*Zh")lżxu؈(Fw LS8vBs+\ta,7es 'fHk.5MlO 'G6IA|j39V#9V @#*T&X V.87'шF9  .A\ HXHV6d;e.2pAЃHCZvY L@u&aqh$Ҏpv4B5H!I">C6L5^oԇ8\05 @HY#"J&]E^E0r[p·sW`U⒗&䋤~M,8q6l"y MV)D%DSM0bp.RUQXEA2`)Zp~b#T􉢘㟐Sd6*=D&Zt_)AKZ |,_ū,Ik@E:ITG} _5zN/P*!J'P>AH! EB@a2X `ejW_#6#R$R?z2] ܻhY~7w“E?^ pd6"5=vѢ[LIޭEQPܱlRE,HoY*5K xw=Gɺtw1 2 +Cp?!XPKZL5)1/2L'!.d)% JFt9i."8Q@C'd:&V1tm Bs҂\~1vԈXAvA pKިpɘuP?Pfw>,q%|d59/D2_D!/$IXJd0uѩlx| )qK/B2^{d}]XRAAo1 _(4Rv3qT%f3S3Yy^6®}*o{l˥ 87@)u&%1h3Zi6S%%9emk'ɒ/ a1ncS-nKbp:. 9!(R9Bٸi>*B.n R,V(k´ҪA`O/. &a)#CbO!>o0njZx BcQ49H'*h@@/2;c>IK]; Zo0p 5CṔȔX8. )A{E4[1H.4JOHAñ"דQ3:;1lxE:k F{B'1xE&F=%x+3 5Y X'Cu*9^4*B91] WUj%Lz˒+JB6.7(D(kp@@<H.C2SZ'/Gcb/q*#fߑA. >%%ʒOAf)x)ʄS#"p5 4W㵗ArB"c+cK.t,/bJ]]aDJQ[xs08A(>9:B{EIhR)KE؈g@g3312ܩM1dIFBl34/aL2ؼ:0F5# TP6 KP4T8 U4]DIL0ȅUTȗɰbRPm+ h @ exѕ!XӪYҒ믛 &\2d]B3%3KW(JpZZZ_C б$複# ?p@;a+J2O)jP>D)Ȉ89<,b7Iĵ8ThjM-L(&1/ϙ)R͹NDE2k1Z k 3 K]:{(K5 WWNE I(2#k((;beU<8d&ˆ4Q4q;c-iݡ3Nb O1w:еFdqȤŏjNMcx5FX;Β@&/fԤ9\j,4-qj#PN8-,XJٵCj"I * %WJ/f/UefxVxQ68WI)pRj32,0Ńk|+䚷Y =,))%.4AZRdbPǺ)DPJPM&4bDUVo4.N ̠*Ax"]ʦFbH5lЃPc} g]On ccO5멕_XV?j_%;fX4HF\=Uգc)rG|\ʩ bL+2)5)+@8ѨJ냩D,+ҽ+IP*",7Z*`-_$5/|@\S[008< I\“{==9RMճ U\UD30Ԍ5ل"49R)y5 #fNѥ*% (:A;1WΆ\F.HL "?_F=`j\^ 58M={V_% _\ ^^S("_h O6s(( eU,[4L8ǠxVJK9MD+pWe]N];$F4cMd~0\Ff݄z> "cm`IO`ڦ*+54.)҂Ag!:86+..zJ7b)%7(j[ Sk7kh([$̶>; E#B#Ђ6 0E P V!fȘ;բ&`nu/TL\n;^nrTFįVL\fn2͙CT1 5*B9IVUڥ7p>EXfкQ1a.4f>oppZ! Ni3I|d<_ggTK"_9%^(ke%OQph>:U`NQ$w3UD#^NS4F3ip` 0MOrYM`jrfh39**X)jZ Zp馥R6Z1fnC,J*b|3c2/^󤻾k [)ƶl˸ȸ6Q.B Ȯl#ЂBuBm 8m_^ ֦G)jsm"/lRޮ55/)9\zOfRf^"9 f˜kXT|4̹]L*cOQ2?n4ùyU\LΑ O#A#/X=zc6jQ* @p6  l:Nfņc=d'~Rο[O  챊q5c2  %zI`3f5<;64,ࠀ=`h`plί[݈f0Fp].A]Zqb9N렿AR.9A`Zjs*Zïŧ`~{^% ukk92PQ89ʰ񺬭8v}E¬7E=l"Ǿ'?}'Z'ag-/[nWe]fj]89BLZXk/AC%^jwvR$/abD&Eja2PK_6XdÊUn,Sb&0cVA.y2+G(täA)lb"eΜW"qP>(r1mhll~am/QPI leV׿:uoZ~~yaK`fBLWd޺O:*_V\QkZ'+ۥlPzڔfxiե.|Oxpf>ܤ|Om2hЕA:KisB`@,\禐TH:b?gNsQ "{~D SH:9`(aEQD@ :K/bX)eуel a\؃hcLaDIaad>aϕe7?}tW%u`I} t9-R&`^t^N'ܝ b tIt)g'!Rt&!H# ECR)r3mD?nZw}jO,tR1sҮlSOCQćQzqTEE*r5Jgl;[ FQbdA`q1V`C/a.vX[cm/6aֿaCfh6ZuVŁVZUgQ$dmS[np,?\r?]$th+Ϝo6S]7HBHB atR $L.H-[*t2rsRG|:Dvv G_18~U}.Q"EWR 2\x8pǑJb@.V4dZf)ߖ}RTݞ]e{~i(}zz1KK{O3Т_ΧAAz 7\ѡA$?E?HIIJJd E7QE+)zCT?B&:IX9j?Z2-QxE)WPCZ.A`1[! Hcīai1LeB*X!Iq,\"X(/%q/`QbnQ X`#4Wm ({F7mWP!l!'"eJp1IhAlP`8'I*t4S#M1#;dNv򓟖r#FQC1QHUj((ףe)F%GaH2qP W1&13edVJ ?D>suSXKNt&7 ;pt(.\OKK'+ɐARqVE`qjGYQWy_""78GG6osM&9dRƊp+ ZC9.ld3C?E]ZYnBCbBXhhslW)jf+Ǻ±`0pݘ$( J"$A k+;$ 6l4@D.Fgn؅\mw!)$ibD,) /. 5c#7$E+ "4 $NRꑤ \r@Yj"'jX* ɠ R1G"½o3sZ,dp4&1ZSH>ձLd7(< s#OIVr:)&)R]E:T#E~Ou"!zH?Z5$FT Jr?\^[8yOU‡T$)%"Bl*&7+35MʺpP%t7"l]u-Cg#r݈$xjE$sC.PjQl"`x:5+ي׊UepM#ROF#:+m(18Z7 ԲA# PL%8keO\ m/э8"AҘ-Q*ܜkޡ"hD#~,w*F/X`q*1ɸ0~`7z]#v'GtĹ|P88-1sn3OZRf'&19/ML'IԶL?7=(E.u+!Qڸ ,%"{'@oEH4b̛rGչ]hFܺY?<Ž>, ."C !,hAHI1Qȗ$ŝ *a̠ˍS>ԛ8ydDΥ5@ž$}!w\7j\t,3؏2JpF &I 2x\))Ȕ ExμQM(u\+B+OEMN(8M,H(VuM4P9 o.^ tЂ1&@rC1?5-@MAomD0Zo/F6 ²$#X@dʊԔD!.0>{l+3 >rADH#>Bq8|QU*]!d[ڤOP|"AGGHݛl(oe`o%"W`JO%JAR 2!d`RAxxGxx&wPDDy8Cì!Ep%͉dG,2:i^D!s]ݫCmDD@QO Tx/\0RĖAԖB3`ϥLU3\DEp=NPdPbE 5K E\mlo|ME39 5Tt|q7a27?|тr&,6:pP.B ˜j+K~ШOd% \աk+G6D儂hHR]Mld|CEIHdZZ|LlDp,yV8BPw\y,yIݟ7b(0lҏhMʉ,!)\2Se"(B,<ZNZ"e\B Ԡ\2*[e H,H"?`jE@Et?悑Ew,&d:r:bCawTuV OҰB1E\& ıwjjfA4DGE[fb֩rR1A:M4Hk؆|#z7dQ]iFY̽ddb_0/l@ IE4C3LZi,7r%pAp ʊ\ "ԂP@4e2l;ݞAh@pOXdPI,][a1ra<pRRE_QDW1x~U冑(_}VlHQH쭿tL5(fJK$;JԈ8 ֵBhJ?<"He B$h `1,ĮA32ς2.E.E.ixJdvMǃؠ\~o\5gi0f/ };_B0Gpf4>GZSa^F?4E -PRQ0ÐeG'[De0LHfamSɒq4ppKpyǚY6P=,@% *Ǽ#9΁KlC*B*?X-(o[uV` V)Y\oa%%S2[[| $CWKp ݯ_1UcF\ݒGׄ߈H0pǝ U] g@r{QĩXDHXu% [`.%P_j-%$0c71?w3w8. D\ff2k{J.y[̕{k&]uLš\,Dh? Q4TCLn15ձsYC sElV'\=UcGYYSG[ YUhpVmo,Ns5e0ɖg"HAP yep@o،9 ^U Dx1HT?n,C? ۈ9Y [,?B9(` <Ոٙ Qޘ$ R=cV&xYVȄTZDD4"z."#:T&%!A`p%|*.%*S1@"Ю*fC1@yNjy\D($T38~X%z$R/F @tC 9kFop,S;熥0"x7s.$ nXi 3  BH ե$kD.TrU0'fnj&e&f̺Ō2fd)lqOV2d1#NWuY1U?;( *J~%& .fS›E3IOfԱiǡ?iiѡ^"kOr7eآacإ&ٲ9饏\UZbh/R8c #zH:q(ۜ:_.J+KL3K.y$-10T )[1y>e\CʯΆbVJDd5]ŗ+ i$nذZ@>qF87qC8]|q^쐔zxA;<. g> /-D$/>,0#3A}N{@#p {>9 7 5Xt2beZIlLE*3BjII:^!̢$)oG+Lِݤpd,xu$"bLq@\C!\FQ; Ѝ?PU|xf! Jd*Ŧ g².D$$ǰ~7 a#)$ETH7d8} V20#3/AdUb Gp+rrY>W݋XVX>R]|dW.d#KX22_00X2p#15&1S!V0Jl60IRD ]"k`Ȥ0Wl7dC3Af@I=o{)H';Ά G>˥|` 2>lS*q3P{aT"!jaT[}]g,Zv^ ) ~*X4d(KG>sHD&9bQFMӢ3r8QԩiA 0,jlА8YĢ"Ȩ ETGfTъ>񽦾L<ՄGӪ c N:hSr3,##ːۤQ iG[aJ8DGJ(-#}(S K&}`APUXVr[6FhЂ6E[bZ~ 1?-DdCpѠ٘;Gcv4 ܠ)̙(.Qu!)͈$M49/_P4h/HD*R9ͫM7x'O95dg$u.rjg:gȈu.W?0MLSm%( e6E,3l!4@i(LR_խM7i|G txR(4^;rc7$|C|@rL²2Ov].Ҕ;B'k\֣E(= ІLYovD-:PW5Za,cKiж6< VbZE#Y`FJT h*׸bӠ5&Q\G82bpz@"[yZԨJVV6NnP7xCz&XV`b4}v:rl ۺaymZh\a& \拈Ѥ CnrG?&E"kbwHљ mU,(A#&31.F6|1Absl ȼ:ۻguvPu0tǓueHƆѧ4Is!󴴥lU}ن6w#:yV7EA?ֱkzqUJ"a{U/xhk9obӉ,A֞PDP]$F(n&?y !_"a;|`ӟ4tT Ex`:fE1݇jljZ}M/ ~Qr|~ a}~YjV—CiBЃMuޢ}NNلXE$8L7:Z+%D"#B ^#H2cnf)"0$*^!l) J "cBvFhV|')")~B5R'6n5`WB0LDHb$GfRΝX R FT i ڰ&<qS#sE=#nlNc}C6RD&^ZE^] hJ BWI*$k|gwnWc b/4jb !#GbAry  FvRja0FĐFfuTC^`J'# ) 1(ʎgT"RQOO5OAC'#l(z*DDs0+Dh;j:҃d=$1#OI8:t\SCi:qDnj pXi  mOscܯsz7(0M  a3T@T+To@=-!#R ;3n2BPQsZ,"Ns;@󅴑,JK%ҠMNDt&M,4͑L!BAn0Id*bVd%Jzp4g/'fD:b5L 2(0 i -  a WEKR 5!/P/a@v3̧M3J&I ;bN1CSB^ iG$ ApAܣB,:5Bc3=1ĖsVl@ BmW- J%3B5QBDB5pU-2A6ʠL^F c;.="<.`I/>FI胠. Ԗ`ٱ@+"AAAᖖqD;>$ p>##@A`y)m`TVAe>{FldH ʔ0 lR _FZ^e$pSiDa ֩ O\L}3=Ե;#Gf)W}x8#q)II}d=LO|)E ~dJp9f!37Qhw#nBD5!MhM  ͬ1#zɮx@0!XM@1veaddoq8dstQ4.{x@'rfܚ4 4#c$RSjU6?ⓄvːL '!Bmyk-#D6І\~@/- xhy^'g.SUZ%Lm0IP__[ 9AMTi9&\r_RD7v =j'zM6s^XdMAy Q'`2ɘ)Q)a 2J9q H,#:"#(.8† l㊱K7 8+R 3|J6 ɌLJ;X ESD8lBG1 +PL`!#L DÇ/|́b,reE!"FM-` =`j =C! QI? 묃jNaFgwXAGTcFgw$RNP41G )tGDgvNtRyN)J:fѽdOU 0UxG6{W7SfZ%%9 \36Ccr8*#VMy}dQv?Ni6Qt&K4-^2ooW֠0?_,}LBbyTJ*S籍26UfXi"(aE\ F.`NR XK"y9(z'Ocd|0+J;lt%汴8_B cBgHb-2):(`X<`馝:J2=_?b(Fiwxz+ꀢ P5 :E\#c*B fDf YD-Dg!ig%-AO[B0_mGՐXWʓ,x P`2>b1` cP@7 od Ǡ23!Yeq6 *344aH N66 _(Vr(G8JT‰S,R  C@=.:!̓-Iedd@ ҙ%W@:@ P6)ͯ?#*eΜQ8(zQC gnDҕxW8H(ĈjvSQN96E j ghDȞ# 9Dby3K29LZ0U@U"M2m 藓\%?H+Uq\ "1gdA Z ˆ*aaY d*N S˲QъS۴`&1b`!lg# d,"#"[2u[&sr[9@{|Х+J& J`"t]a滺?y%! L0m )@~c ۖ湝cp)x^&;hrÔjbi@M߇QSsЅ @W(XǩI)NEGTKm|t&:Z}rΠ"2(F9=Q3e^ќ UA/^Q—L)~tWŊ4U2t@Z*܌s{1ABBl!<ʪxajHA 6+hW kxW`^}MhǦiʴ'B9?Z@ӦbHCXZ-xfB*4A1S[[؁ sUGoo-aXuFUNe@<A~`^/ݵJX~9ar]% _1_oeS_Ks|1xx*GfC񂽒@KGD5z8Lh SgS?C 8Dcev|H)a'cc?xxv\V(cYf"wg"mgc&BO.<6VweSw=="uO.p%flV*hyy G-8ARxaU@ZU gW?*yC<I#Ae||E*AU}JCapg W2d9sn@ F=}莫mKbYV0}E@CEmB/F,AAA"k%.sG5R [h0&X3 W2UUWlQDLJ8cAKI_`aMSYdLGKc@N_U)G'9tQ?aE1ib@D+Mlً8{ggW?j b!c2xXpvfv9!6cI9#"8 d9O艗("X@vh'OQ(W%fryfWU{v@$*vwVx]V+y]{$p!uT*g 7?tXuTŷArQ+S* 瘎9u%8昚AYqR1p]@3CEUYAABTBɀ-39-rAW&Ko['$(\APtB49@+DʆU < a_ LtAB;wpD{DGtx$񕇁jqVǩk٦nMyNtAzFu eT4*9jW闵!0ciWcc8R. c*O8`臞H?8@ e SG {:Hgti*-Td0"|%2YBŠx!i&u7eP#ed~8\w8Vf|q&\r 8PX%RB%S:d)PV"g A'WDxD^!WxjF`X}U0GWs0vA@WZLGQ[!٢.EDƢN9y]C4w B Kr[AVFF;\]+2bA-za-A+oao+?p4L)*NT8NvY9uY 1ƨjw~S%O Bcʘ.@(܃TY rjWw)t+VZQQWHcUA֊Dc'!Shz+[UW,`%B+aY%x~ !yk k wyx!ly*14REk/Qr0uQDC4%)᠚ARqqEKCJ*ow3`cP&013!fDPa9q;{$QUx{3t!ot[4rn9`a+A[2;11,sBihUsMm*ƘM6N=@gzW+hYgTbc UGNsbUR 2Sw8x!B>[{%7(8%VV(v vjvT!7(R=e*kCAHI x\,b,JƌF3a4yI+UER#Ssv@KBGqfEp᪫} S혊}XBcA~]lz5pRL/˿jU!D\,Yma̳`6a6Qv2]rD*o3D6\-TExH#'1׼*gVx6`P$yLXxW }Z`f@D AZǸ:Tk,@ kIut1f8Nbd?OOGNt&Ϊ KLɖ 7@|Ɍ¸j =TO(B) tN^sZ Z)D颐%NY4[,Wb:4=l&=ZDbJ-g9}b2Wxg*iL1gڪ2D7QQ~1k-~jDU40X^bW`EtGA_עf&Fnd-$N6I(a:1/X,DZC@7.p2NmOmU9GqLsU1|ABH.Ak)hhkMNu(m=N wkyNuhSҾB8܊kzn* rR ˎ{.zȊ{c unNh)}L A^ ml/K7hGC?1%DܑCJ՛k6.#P2-|2i:ی}YPyk^x0k044̸WIlq~DGlCk;SESV\Dhl%Y0.ӕ8~aѵ&36%:10JrZ4l%컛14C:cF΁FP(U;g2x`C2ܵʖmzԖKGjUC@w 'HtCzIǽ(zvgy?{ޗy\*g{^lv  iA4_r["EF!K(Ȉ"h3 H!@* LDDN`  3 qK=j&Y"hP0v].ذež_;s֕mW/Do`=^$K;FB`Æ_p  =z)3LҘ1_}j+[Х;t/ʔ~9<˖ xp]{J*Ϳ6m0oc{ A yK_RFR`\'@ -+x0" B$|"ܸ@p2Ŕ& ôJ4M0ΐ.'#>|bHY- :.B4R  "3<B 4Gв(X.0鬫6cH-yX;أ4 #ɓ=%%͡f@PR4YTP` (L >' 8rH"9D!rX"%5r@CrbB' e]j39-]DF"+^j- ;*w@!wǹRQ-Scm0"bCN9ئtOJ6C62ü~513+-..{8'>9T+)<;> 82ä| 268+B "<*N $0$y[ {/i 7C\@Z1.ǦEfM3J_|@#~G {HP+kY$<l\L5j9l2+B3O%Y5BE }>)Jg~J#LMSOAEȠiH B M/C@f29 (cVBr-2ZԤ3Vf1 q.[IKZr\.RR#$\q{HG\BB 0AX.%-2k`.1AgJ0{*e9OL;tX\Gt3\tb 6HO2Pe\FjJw > iO h1wӦM Z%"Jw2 | mBtRq?RY"E,p"pj:a$bvz GLQ!,ŰE{lsOۼΝT&Ll6â9IwrNV%B0}*QEd RR8UMeS; )%$G*[ժ1C  KZVeSFIA2kY6eZ=k=V$t\waBy虐7M`AC֦8sO؊|.-zY.$,ѭ: Jk[*FǺ:f~mNsv9")G+\k8G1!!ndL|Y$ Y*it V3P}p?$Hp`5F$@Db vP!>Aլ_y 3 GA\Hb^@T)os|67, .Ŵ➰yeJ}kA7Ldži{4(u)!˝7G.Vp{6 *KY9v16YDtdZ=ag۝ףF DZ0˃*&~g3&o;ǥS62p* QKvxk]zw8#EӘ8%sR;,)Ozfo}k_ozsBj\o&,1Lf2gYE=]Jyh MOMxMQGzr2 ȷY Ӏ.ܛɥPsQ6tAIdY)`f}OtQ)Oϡ ڛmȃ`[A9"+Qnĉ/cIS MbdD @4ۢhLӘJ() L6M1KiӣRHDKDB? KKT.3IT҉M͹0Yi qmH,YY0XŠ> *z!MO&Fͳd=DE\E.5=V!<=IFI-r ^Eq>>"#Hpm=-AP@PGV Me؈-d``JkrTS?5 S@nQ)`Q` E$. OEǹA7 .xMȌ&ɎDlR'!2G 5XhBA#ܮS iٔ()NYH(8\}Bd[-?TAKe8΅H+S*Kmx;p M@@Xq~ J P% =U 7& F]om^c/? mMnF]U;ꀰ{o;ɴfC*s-&4Q4A:Ы簀^`=׳2P6a.ڃ-WpR:G@+\Z]Ѿمa{sGuу(b=fMPE"O$bebYM>X7\2 H^,):)>|E.R;i< tB14@VMW†/7ʝ9>Ҩ8dKIMd@K@=QX؀@(\( XݝgbsfDZY@_33Im GDP B=Lpn*l1]Hgt^kYɕuY+{TۚR(b1iRz+f|@0\*5pQ٠HG`]հtst| ijS g nF#Vj NO Wja}ٗej.W'Fz/OAV =aF^!8)M9o :'$D("(mhqOr`C D?1t\[Xt1NKND7TLN؀~84PcAyDq:>d#D >`;:rAew4f n/y]onvPr0^ߠ_Xt8LM;-![䤎PXRUG7  'XtO )Z [7ꚛ6ȿ|tY~sៅp6jOO"yq` ّѸa"a'-Aˎzxg޹sJvCP9!pQ9LI? Áľӯ4̴P Q!M>=D'ODOtM1O?tJGROu(C{BK8] ږȔD^9JSZ]s qn9'y!Dmio_篟Z ]~[^<N0w z1cy/WM\D-#}l$Eʠ>nϔC7z\ T č+6!(Y䤩ʸ)2'paU7ܐpNjg!D /aLS%_1cv*6WJ*؃le-Eɜd*߫R"'Azj$"[|,P^5>/{}ߣ*5J R>@,}4`SRJ A.bRMaS=UU$ICAHPWA2 TL#>x~p2HP~B)H8F1R(bahN"6hvQ|tJHAOu[%zf D 2m8!=\! `CЇ2n*(QD(G(E)KPKO~ )O@` ҔRĚ5 6XS[L(6Z8, vSA|p-A|<QHt&k29ٸHE`J ZW-]+X@&c>0"+IaE.֒#aƌgñѪ,,ٰk&Pmak P28FM4>IICrp`\ܐegvwĶŲiOymp[s A JmIq9|x6Ǖl+'H9zu_ EQѓ8\-I8n'byX*J a<xG9q G5FG2Rḛ}3Nf`֐YNP6 #e=prS%:ZRƢz2PpW[BVf0s-z3-c8!k`/tLJR'! =JFW Q0"WE|^0hDgGZ;>c`1.1gX#\PYOj~Z׺elڄ"hGZkw{MvzuHuG:܃刿iyD//-|(L-!H!5q?@\-[{<;x0 ;N̑*8< BT&nI",|,`ᖌɖL ՜0܈L]Fa҉ y(JmTq aIf<Ѣ-TlxOH͆%5 !l =U?(TǝFNH! f4`Y1Qm A!QO؟g8P^`y $uDTfI5b@D,_ Qe(HJ pc8eML|Rf\ C R!`؞dF͡? Ȇk b` `k ,ԦW?h"&`HPcHG`)DؖpX$$䞗Xfn!&" lt !! 1 b[]Jcpc-9UK2@V[ |TV yV'hR`G5LT_=Vb LHVe^_px`tE~ \ ryHMd|!4$(L|d\ RS=@OW xܑHH|`u<`S%ؐn8 WIq@O(ϧ-YfYWƒB&mx]F ُ9 `Y%)sJ]flmv$ UYƸO(ʖiƧpJlTBib Y@djETD fl*.Pu➧1jX΂"FLɖZ`m^eT%ƬAS\M"5xzg &l\hE.@% xHVXvyt͈(+C ,B-K,($$,H@Ⱐ ) *--.tps{xG>)t4*y,:8|>!k'0_)ex~AyeH Y, BAFJ'-"5K5%J>$$Uteze,*EP`.l4mA 1H@mRS!ޅe0\e|Fe`)#h@yLbPF]$TO]aDu@BZU L=+E/?'7s=B- #M|9|)/t,(d^N׆ ttHSi S[G6Y I>?m$OMئ@1̢ZI|k!II3ߖ?)3a?c|bUx!q5rc(RY@-r* d|Xz!8k bFpj&FΠ*be٣4ނ3S-\wp7:NO% 'h(6m6'u^yg6R Q>??3z?@ UE0R{o#|TQT"PLOV&Hily43JȦ쓪,-lyMGM0N((‰ u&1ׁN$$R(mS)+Xs,t`u;uDKs`8>4X@4S5T]1rɗ$k۪sj`iPvkKYES*|j!,QqaEbirhr.x ` W ľ@Zln3 sFY' Bs g-1ʪo5RDس,6a-EB2L;po}#Rp6@DD-Tzg`PlKc^ ԋΈk(||ȌD863~QMʮML?4|tLÎ,j~5<.<ʫ<#ō8_?Q |yshGyn-ǎqaWn[!ԤɗT"fё?fhƓg$#ZUVDX DHZ9EO\2(Rս"-"EҰʩ).*_b.¢`Y!:H@:J*ϊgUQ 6]93i;vs~ V'mF)7W;PZo4 guJRy/R/ӫS;86:~K>9k@'\c<[colLə"I!y(W%&1g1 #Tj褕ɧ!韛6w%j'0!}!bȄ1 C*Խ ķ܊!AkTc8nQTA.:^ X*2c!!ʒB`ha bЖ-b#E !> Pu'7щv"E( A@ 5! ~`[)8jU c%S8T -,Y001(c2B4rǖ438IsMnx69#! 947Ziv%*8Q pCeh;_[%,7 ml֐9l_j Kvp9)qr% "s ^a!18b2CZbr`E  ȐdaG'3bZPad#dQw&Etz[IAgM|F>ҬzmpG~"CNǿ w"S aSW,!SjT?b b"PUXBꈷ\%,lHNj( 8aP JWLpćpe o9UF0d 14! N&P1Dcj ^6zjh+cE :NCHԦ6L#gJ+#7edfyZ֖&]Rk)Po=Z0,&mbca ǀexKzg K\9ϡHr2y _Z)L8D+le*4Lz? /C@猕Ex3f.IA~ 스 ',f62[jĐ<͕t'YQO1S Xm{Y˨R1dcA+34Ut͜ D+kAZu^aP!V CĀ[NUW: C(BQ}*EdB"Jb Cbyi&oFbNhF[lv ba{>aa?]680EpP {}BvhҸbm9O&G5MA)3e6}>fSV\íͺI,pnYBWOv*6 a0!wb Nj2x}oWq73d2[aG)Nj% 72C+i ˼#0X|3+hg%zғp:G1>ԎW> -n%讄l6(!$t& /&|6'6jB"o¬%+$-^D,BP⣱ ∣d/",HbH 3`QЄ!DMPRam`݀5Xc iZ\i‡ c9C3:&:QOpI@L0N=v)/-o ."+ ?Fd آu)& *8 E&`8FF0%9`'y'wRE0 bPR )!I,Uv oC>p̣+R hSĞd nlTm>jLDL,'C>-$x ܌a/B$HDP"BmFҎAJE/,^U/#3B(C[!"!N%P\!x"ap"*/p5mL*bό߄Ž!D΂0>uQҘ6rD!ZJC`C2aΣT7^@NDOP|bN8nޑ E5) Bp) no#f? *3.`Ʋ- xC '$ *Fle&gRRFyv&}GS$ A( )F4J1xFj8#IKp 4B- j!2>!lLMd JKꨎȈIhvr /%sIBTb )V̂OqQ2b! ,8͐2;U%JbP$@L'`"UU*(nHū`USt!]XQ``FF/T1*9elpjM0#6.@$C,(=P`z'F) /c$@($242/ ED!a Lּ NGKgfêGa2}F!"Avx"*HT)/<^e;'﫭^FTn#j =vdxD#LuIxFCF0oHb&3s !/i5Ҍ`R g/HȾBR+h4O%2>S!B*u4#QJWU&&,'d6-_MRQw|esWˎi*"x˶1!lE ccEՐ[ø7|<]Bj!DCS,ji^@}:iIci>9>xd y<@c lL a2ooBi?lpGoh19heZPT $"HȒN33<<NTut@TaL!,U%Uu fff_|iX*+ r̂/~ q~1ZsoU.BCBHN= 2J ʲz<8,^Jf`-j]d}fK#9{>&f;KeEi 0A/@61Fmu$o2&mGJIkG `RZTxE Sv3_zvwg}XrBR1%s9hqvNvt FzB":Q.V`+:)O,"Yw|2dh1Y N0!g!7r!{B1<'{T+!`hą5sXy'e)hh&qfew9tX=;1Nvn6jq.g*3Ȅ[!!J@. }'f^7-Af;7I7 BT?!$0ՃaA!C1T8 #`I'!.:ySM_]BjϞ_vFzee{ȫ m +u0 /~gWDр1 ńgALY,C}'3^f9x"[ׯ5Ji}"lla:? ] '=HFbZ\_rxw+wb s@$"…),yDQmx0bDFEPH9EAOĿ,[,YL 7FA͝9Sϡ3faLLa, Z =Yt_;\J?^, r*$#DŽ0}kǖ5s7_1#.<0 w9s~_@C]#u5!p k~eFPkC7D&`H͢* wYy7n\qwƿcʗGS K!0V!}%X$?<F~q~g A A,(?gr}q""!a_=\p" E,&?xuFTVJХ))!2fJ@eu:tϠ:לy.w!A Ho.p=!F4 % ~49` SDHKR rfX - !9@H@$AbH)H &7!B'CÝ;7"ES1`$! 침}J6`٨:dJ'Bc0}OzҏO( I׫he:N8`7*y5-0%;vQ-JP, 0.u+lY2Bn%0 STq aS050; -bPa "1͈8i\ ,1#&d&M Ga/L;9`lc(qnҗExoUd8Br+%ǖ T/`# mq[[ 틞 E<܏#\}dq\_xW|=SM<%eO I]T=S&`7}ofO(9Ӟz,7K0.cT@y.Q I 2)D>y5'TuJg*D4y|$cZ $95'ىJWY<d*Ӹh.0\`0x+%Y?6xiNRqSN<1_ ep/+ jBC(D17ȜØy%XF3}d/ͳJGYlw4)5_TYL~y'=^i}qjCO kJv)#%تE$z&$ѽDLڕ0N9%ޛzBKAL^8iYUQo8G"mo@G>x:7p!P*Y)O}ɲSŬ SG#L`B%EPA R (F)n^S=d[2j5B'UkaKX5Ga1 Ư9_k`*U&1/ @닡(2S x葭T1tWHNL4s̄hS:tmg`+IfVȓ+ݦ/m@JU}'ժԵJݔH܇axۗ nѽs @]2!DcN<MNyVQg[}[0BlQB%d="$9$9X%$c]'#)0H'4qR'Ќ@bc}_'Cۥ_.,'?8a,ȁ?]/ő()3*"ap&`)"QنqwR) (<`o2qQQF0D&vrRq+R*us_M_rF,G~AgtY.B"akԓIRfAUuU-la%ԅTdC=dBDtC:wV1xu(ExDxR4qxR&@88iRt%XŗY.3) Az$"\b3L\HG 4+D4haQ~*.< A]4rJaY]#AB'r(a6c߹Rq p Ǜ(( h()P` v=6'zi:"3>zב,sN,~9D3'!o=ͤ4G@hazW$usIwSgf@VuM)P"o'zv:g+`^yxChh'cxW(TDE~xx`ЖY}~՗_y(GCۧDXaMg5Ag(2']F`Z![zm>PCVsYBqS]յ9.|(1}q29ז htuRɀ )B'( (aprc f" ($O?8#Rb05Z5Y6wN9P<(y,tTY̒~"tX7Y1@jwJK[uI8ZA UX; vqB'PD'0kVLV1rU2di` wx^Mx`D mI2DˇxYAgOk|)X:01dL'+ Id5# $bz$8#NҨ8>GLy{%%k,0fuិO:< a~1b,yrb=:gp12?&YQ'y2xE7O3`rO8`pX f x3P`sJr0!ػ8z "ɯ$;zjA28a P`.C."AIP.haAha0f}$B} y1Α/c+'`+1j1w12O2֖bj)UE.쯫AN9qp}?zY=\q0_Z`{z  !bJd.!HB @BJǤt^յ5g~TM*q'䌶aW~c'i';:GMˇxWzxNy&_7<ؚxOi`Z țҼ:zRc aLg$J8um8<9Pu8xz5q4~$eA-:CE. [G "D+axqfd'0A1Ar~Wns곯aRZoYZsR((*m˘mn5=˜B>8|>*4787`m&OsYءѱUjZJyAu5a/B)%, "*vفf'C 1넲rw|5+3Y>%Xcl-;?QVX-1jg1[rZg~!+Mc`d&Kf&M5,aL&d+}+ǹ~3yBx|b/`U`m{)* YN3`*>VnIUf8Ø`fn&ط::$u~V(򂺲Oq)؋Zq2f~;2usOE#-s"DZFASjgA}?dN&νRc@H/rdUݬw6W`pE&3W{-2)GiGsWs2E5ܾCQ[󈃿yNq􁨆z8IjŶ|~}*oT$Q LB׮߻$){(XpF iL, X@`A(D:WE9,X0Đ_D3Kp0\),B!Ej)a*nъF7$І DCD͊_*%e CC.PaĉK1Q +PPq3r @YHHdѓ'- /s#!`E%k=0Fn rpLkϒW*,!vl !ZK%i,fF0Ҭ -n%I1@˹RˍJKoDK,rܜK9M9;5T-˟8(P,!R] \q #MAlXJdULfI$Xa]`J)bZJק5اڳ$fbߤi:Z+5Z("h@Øޠ1UkBhɨ&2$`!7M!i2ɒ< Nf"9w(r';5+O|C30exn@I!L t (h-#91Et蟿X!SA0TcH|5{:b*,(!!Ci+ b)?§KY>*d&75lMO,<1[x! BmO<[;5\ۙHGy7,H|84yR*┓H2i2EQ)U V'm:>Ph[ŋ(P/o<%4%9F |jC`RX\OkDpi>;((9+ 2Y8Gʁh i"9`1}| ~ HT*H꘎H|Gsς0`P󎈠~A1\'/A@Ⱥ jI+4̖&y>k%Aä FQ[1SS K$JYJI,"5.\rL:CB!`N{5ȷ|C(r局3j4E\E-Hpt/<auE@`.ϹO a EM0P 4pԿّt0 1Wd yh'N&̰4(,-m7į4b hDF$$J!=B(2Yb ު# 6|Cb·He&®4Uie6e4S)?q [a8oS-uj@qLBMA'iEO Ԅ90MBlTL5T30\01PW'!9Y-U'U)͕"|΋Ɉ4V2#A#֊,* |ȐَqŎ]Au]95.+$ |#+G/|hC kPqu4S!zYѼkcي8ۺX*dRُMґICKQw7S?F G3, a•XkEeڊ`eX `~7]p`l&ڒc's_^!QaHIK HKJӔܼ#PF[(y@N} 212\:9U'[ɝMP9N 1|"`u|0ȁcEG% D^vJUȇ5O^i ^F]dm@ABF{D7RT|Iƃ GZ˛+ߵW<Ԕ;=@iJ֛<<ҹH4,\3sê@ɽ(K { 65/AcUIC8e8<eS;ƒ Ȋr0<ڶp & 60pb!@ Pa1ؖoDE) ҽTHs͘l>FbA*t]MQ_Y]! 9,0Ll3 r^vKu|%;jITd 5 ô?/`7A,sIZF˄XKٞ =]`+Aa R k%RBȑh(>RRay;Te uS+ /v'yVdۊ.жsj.6q5 H橫x rs(saI[,mAT!8.!:Ku8KNJ+\04P*ᢧ*뱞ʘjEkO4:% jdqdcqMfjl>/"N+,өSRIȞIi@z%X%dz~ b=DXC JӗClLp6nc!w 4KmQX[ھǪ -Cu.oQ \~Chbhl6P(/׊Q!1BJni5K$6t&f4DLj(͕la5:U+j@1gQj|GŐ'ij *2r}c]-쵮V`)^@V`HЋ땳VvE.sFyOܟڶ$-9W"8,+Ƒi1;DIu\ z% M[>N M<:ff[nSO׋nt0 b2:MV^qFZ`ۀUX6BpekVZV:wQY&>~piLXarrXXlY'\Y6^1%:aj*.LkAQˊi<?Rhz c 9\y;#UG'yNx>z*{SW5(?"(ذŇ/̈` rđ GD06 ) #`̞rs!C @RrA$D"DHqk)y*+Y5\U?}EėX /rZx t"#qdL!38R?E f́4_Bg4.EhUDhREc# 9oõIzW$˖Y0 ٭[o^.?|k~$UN9#3X$4LL=E"!_ȷ&m|HbvUƒzmHZ`_}aeWWuG"("ZuIK`qVCL*rL ,y y֑f DY_XPfF3Ѧc(' Oaw։ &yfaYC5G#ՠG 1: =Fj4 1HYA+ % pңnKYfZMXb&s&QC?SUVaf?_&&" uu֋YЗNՋ^~ &%a eelnP96M5idLջHeAn j %ǯ7S ,5FvJI'vYau|"Y]vmza}I&_8|U #X L?, Nmi:8މ1#MCZwڱm-.{Wo!QJ9"!Bv V|GOcG֋5&`8#5Xa΀3`x@&jne& @i)CF*QF!Q$EĨK+)C *%=@>gӰ6;8[%CcmZVXLm/ ],q(0Ia\IFV8)gN+_!h Ą1GA0gʼnp2 pomp1&9ɐB2ldlNb6,EhÆ$@E ->mOYdfل3ݧ@ 40"b!a2 3!V;- ˤTŠD_ !_@$1n.\ҬxYC呞ʻs#KEpMA4_zt{X:AVȡ;0$j"Iޢ%:HBUM$wA{H΂s|Y 깾!L5QOЅ 6BAʸ5p*h?0)t `ZD&0G"A,@Q4aW _1 RPPI dRy&#F3,\@ sB!R-:bvGvDMLu e-8әšaq:#}1?)1@14Վz-5/aJ^6EE$wDTLEV]A QYe,زZb2RYrٲ,h1Bq#rk"~[ޢM3fh@n"2LE$8k捪0DXu*azng]3|-j^Ŕ/ ѕrse|JאREHs#Ӵ0f'2T0,@0̹°枮g:s/Ei&) q 0aNe̐$*Q !f2Qz1:xP3+fV/Se,L=DâtT鈑hg=k5# (\ܵ!r^5 Lc`g=moS,eTD3ˎ JI.K_KHu Y,+`UJDIe ߖoy;\cʭ9Zכ .fɼ֕Grwz*j$~y9KB2=0LJGJp,)7_+X~NJEr,4!~륑QlV20Mb_k'T';9,E)~Q>Q(NV p S{ŬkԘ0Bˋ{ QWCtL ƩИ`{tGuXUXܒm~ lY0PA\AщQuLB?Y$%L1E`|,ٝ1tى#5D cyzHZpEX݈` ܍$oֻYC()mM/Ipl"(oR@I>D4 E7sy@9dpu1eOwӶ_'yDP+_=b-NOqpҰH'ބ_Hm \|TGy|Ɂ) 5d 5GtOhIݔhQ yɁ6SF,@ M\{t Lݘ |& 4IG"$ C@ ^G&A@H C4B  F$15 NB&P U\" b9N@Il)%V`tqLŜxod區IH.Q ۏ0V.!44JTS$6:^^:WfA[a')>[OEb,IHT|TbhPᐺ_Ņ T4_(mT}Ƒʣ6b4FeLuPĐ9 iMfְj=?nH J&? δG|ݤ\ٍ"TB94d%TB~T$8?FRGdv? (AP٩*4!M4C AD650͜eь)QY ɑ` TEOH!4lehYHx!UpoΫ!."6H4U46!I`[D&B fv c)븓I@R[i*Jx.ߟv>JP2[*HT`Ţ҈ AЊF~I5fv9JrcJrXc*q fMY'bUWu͘y &*!ɒ`=ڊbIށ5V8UC\%@d |hHL Pu$@J(\L$ԠC)R0QۭQb$N[AǑdұ*YETXSXC͆}%tܨFTS[F DB\į`S ߗ`ޘ&_ØVaR-)n6d"ib&8a<.*ZHnB:PF<'Ox̐R[Rť:ũ5ĢGo<`[Mbne0Õ-2}ʙ{((L0u,B>ŗ ieHhH`{И.B4ɧVZ efH &D8 ^`C.o}bի Q9G&G:T] O*Vb(ͤœAo4Ifڣ(,SAO$UDEƟɪ,XVaR /1%%A`bmԶS^_%^O&j[Dm&:Ԟ61&:D'@uiIHTH?SP dTgA!#`FA=QТ6ƈ\q>qMMJb'{F9*+f蓉9⪧gTHlTe* 5 *MyA&Qݾ &L]~dCpk?d?UCVo*$ԫ-`HnzH<]CD0/|("]Xt8S B[ގ$7n@U`4ip!VHC A$fpю9pCe.- @,B+?UmSuxQE)*lX܌ኽܟUc`DM{t"TdDߧmkWKԇe͸uoag#ru|j RЀ}ŀ5W DE\ҋͨ^4D ~ 8@Yչ$]`/FC AEg 6!"[i8@6/$}VtHz M[L5lZ X5e7 NȎܰ bsC Xb*6&6 0tmZtC->>g x7txu y0wtACmww{զbƞImؚ  MDKbO**tL*unntZFeTHMLXKfMAxQu驦.Rfp~#r=`V[/Y/X4 \OM|dnGuakPA lkb@A At}nݧu `hC@DJd82LyCLYFrjBU,K~6/Xn'V9n 1u WF#j@^Vzpz7tuz_?>gbzwv7yywњi{{;Ԃ7{WZDT£D`0Ď\".Vǘ %?{N#P$Lv"h `x#."r20rpT-#A.޹h9KRl9X2y\ݝ۹`C]y @4|7$y7DP+Q25@oGd @!(Jj$1α$UE*/6D}u,zB]:29xRWVen0`w8f:A :www:t7  :GHh| ??C{?w4 .d+.JNyOd0g֭˰k?|]xDh*a#FrPR+gOMSo|F8Q;Svf'AFQ5_X[#r|EIUG"oGD$s_ih!RHߎ HHeG vDL?&%HD2'IDLv OE!, @QSSjD_l'+"O'.\kѲ1."4W۾ث1|7fqdVP7'2?\+D[&=A:Xq װ+ˮ]k'p|b4i:\.>4˙7_ͺ1S>;7y!l@ ,R8>cȐ0d,98X @ k ?ahOkP7ho'E1Xܰ<Xd/`FYpAkj*%"@䫬ji`*Hb,  |ءX`!$dOXbB*Ҏ+zl&6UpXr '/'"ǖHX"ʩԪ*撃W9+.k"+r+--f [Ŝ׳q5Ӭƪ;w*H]q}`߄3j m"Npx}&8a4$좋NN:@;n<`1=3RC@ b f̰%'*Pn @FCA@PYL @q1nxz`~"n,j pJﰾ›ϐB6׹0OJRK(LDл`&c(@?75|ܜ"E)l Y,j)Jp,C ZdPKXlyJP֚B3LWS֤f3NK8HcAX'HiJCț: @R،6iph%1q"|ĔBwH!&F&k'D a2H>ESϲ(3ghE+ peAD)ȉ|D+!1`T9=+zT =2+"9pD[FM!0 `L%@82! HK1FPDn_Vt$N2BOI Bw &ͦMlNcjH5')P?ї|BU+4+^@2?Zؚ\-Jf1 #f v.Q]@NGvx_-`JH@`!#X3F3\k|K4<rfXч&c1(c@X+FՓU5 R ۢC0O"ﳠ5e^k$Ī,U29+P~׉FN8 8 w="6\lCa Ű`ז.yMl*0o_URx5Mf1Y)5P h>p@M(Y(SJr bJ tٓ ծ4+MP@?LŮsd]CX/-K<,_/(ىvnu/"ڧ\-S8aZ<82HUx7ظBa{BL_R w:SM[@̥ynS%5I<9ҩule\;%;ԻDePc#4*(R$N@[K)R~q3v\Z@GLw3MO&6#Ӗ{!l <zy?@LC kR1 MCIP,`-+\\ KLEWD(elä"vDr7mr$nDQW?t2M{U`p%}9җ,fC%`0]l\0 :jc%`6_XL _p,h `X.^6FpN@c+CDB4V(>C:t(蘪6DJ9ldnp&fi6KgȎFixF2RBT%R@TA@N !`r@& 66cF D#;,;(5B6E`^l*%"WZUlV(0$E`zdrqL6nN42JD쨜ɤ# ꇔC(鰃 P pcCh=.>, D g3B6iA@h$ B "Axt^ɕP0 f! Tt$Ii fd 200 Pz O*T!/5s% QV˜QlbvSpۤ"7Pzi`/{u ~g:f@', +Y[3<@L$Y߉ @/[Z1 #3f]*.^U2Ȃ,7AKLNB1Tj"85jwHqJEgHZ 7&'C1z02'OvFfFa;ҰP`݅`UF{]&EPCTb=(*0`jRc0%c&vf&wc|5*aecj(c6G(0HϰhjjCA"# `y fǚ*GNRir@BL)Qi3iI$b} `#6rjDk"jH@ЈA8͎̍1$N '!XzIe"1rqrSwSئ yR_L"J". V;ESvb&ɮvu7}&Ysf <;3oy71W` z31gWc"ĕ=sړ^Qc^:Cȱ@#a8a?NL7>,_6TD!_"vj<,&0)`nC"xd 1FEOVapcC(g4GP)fzg" ujj((| qv$#' -'h-5!8%@(DrXQvϾ$Hp}uH8@pl?fAH&i& O(Ku2G%t:9"CO"5 T QY",`# V9S&  |s9'@m9@!!v㙽D< f&BPm1y LЀ[W/|3|S;鰁p.2%1F%BA]%Kcp ucb{ !X&;In&*H& ,ɐEIcb6naf>D-E A(.jhHjU/8/rb 1N,rP٫Il7O&S"ȫx2+Z?nj,ǹ2bU窯ڹs51"" Ҝ6g)6%z#L5q6 nSM /V9s"0U(s@L#C Ug?.P9 gD1]z9ƀM=y2}%L*cW@e?q un2hʃZ{agCc4X0bADucYڨ |&\T'ɔdDc BҊŠݣ%l+ ϕ}@ sNsFuCtGAv""l/&@x ݻr 9m lyĀC?tzu۶'B1}I i` ˮD]c f[*[]MS;p=z%L_^B΃F(({ЁyE(h 2>!eRۅ{d;8c|&Lh5p]@?ҊXيLWfDq".S M} rB.S|UOK ~NĮʖ1R(Qvs( +!`%(@ ᰀGPVnARI $G,rk`&O;QGQ"PGi 69Xdjk&bXzfNbS$T۲:hx)8HW'L80 B&xkP,`CBsL:4 8FAn֞9|Y?7 R gFo0/u7WOQlj޻cW{?`˟?~z4 1p` ހ=x*߅ޤ10x^Z蟁!fx"wW⑋J9"?-* IdDvI& @IW)U%PAG XT PM= Ɵo0PiAAB ɐ E@A5 1*R"MbSTYe8:\S TQm7U;,զTQU?`}V,U9G t4ɲ|4UN6dWn Ax$ƉVYkk<|UĿ!0+Po 1q,*WtyD2sI]vȅ]yǢ- z77'R8` G!wމ3 VH%Ra>EH6 U:H. E!yt?\RAs*לs]%PdrwBQVe_)ypNBW!١ @VAK@Jga־hENtOCsfnѬ;C5'wuTJY= EŬ %P>?',[GOմԞQjTbEpW5`\_k92E1τ5o8 b`Gja1k*#4FClm sSLe*$3!Hjyni>([~c! ?7g' d? UУFlk0l%BQRaA2[$a%=Q޺"!  b(*QIq*AQ-Œg@y.8Y\@d a1PId !C"9`! ^ R+ uicS{NDÚN`* ("G&qZYR&%TH*Ċ-3M |E.&\$@wmA2Ar0 ` #Cg08Lbq3U nB1P? C<9AYtCfB|YÝfYTH)N>)E M#)Z$uȌW3}Ȁ(U3`ö $ #oBބ7-yi.b&5=*KfNMUH$4 U1J[trr2TضfD"r7I!S3iWW Ub>$.LNOG&r[1)smM'{N~TAg|sLV;hEr:WD%^%1CqbIucXo )M3B䬰b@?ʢ<`XhF0c=6\O??95P6(`s];Azy~ v/aوQ0&la 06Rq5h0SS59ScBT74FJ73E4fieTt6M&EpuTD3q !Uwu!Pd8q a$3ZuT !qq6 "Q102 )! xgC4_WFzT<:J҈Ha؅CS\FKKR)e(f}IAwLw1&zqk8%QRj8kM;+Onz#lMʈ2<^MAqoڵe1'YΨQ—ɛ6ɍIۡ5G3q؎9PٝSPWrB23eT;WZUZ ~eQT!4)fS4*xjta#CӐڐ>Nx"qȜ J?i`!1 t) @S$,Un{%%izIgR?V*6QTw['k|wk&[( &(%1!)'1&LZiz4:K3'_w>2?AqP=e+X+Z-s\>T)O?n1M$#?÷-cQ2.9Ay8A T ڡx92Վ5 0Ls!u2 y: HfuT`d EU]tEԐMeE-Xf`Gh45e4TG%߉0tc#:Bů@B<01H5 0  O; ӂ$Fb}s] LUyIU2'HwSzkWυm6إ A/;.;si\;F%[{!] s{+uI+x>7q^)[H>'&S'xQbN/kØJ=!?Mi.G._@E٘Q3g r!%j 3ǡ.FgBP0p9(S6NGdfZFu4f,e^4 u:b5<+sKG3VM5ac7@vv<ڜ(G70x00Q%~94J8e[)9(Z"+FK%g|h\szRzi/++IS˳I Z# 'T)jIk{]G^|%_|c^㶙!';th'Ѝ_ObM$4If*i1no(I]fa8a? ƶ) y3֡d5ixo\s̙zkd22F/''Ёg} W'FGJZG;u%!D3ꪒ&#[ԗ[ǘK,R˪ @-T 0!bLBac%<1-?>wl}Y& &։|wWq( Z\3 \H$έBqlh3>G'bʗ?L%z Qտ-o/,+{'>`N۶  &|%XR)IqJ,56%nAoL! o`Te`P59S7qI͡KdS-ǏƤ5;@TU?y{0}5 XG!:G'e?^GE5XF䄕eS4Brc;udغ\qf?b":q'zM݈F`x\w6Q>Z֬I]ealT^j'm-?Ryc'+yR+(pLȦfIczZPz܈+V(<uMKQ Mz$߸RWr)?M~$ĦĒ*Um>&pa|AM"7ǣ5uT'rIc={x7Q;(znRG[|3 +|nlWr'v2Ў3#mlw_hko޶4wr~x$A@}2Lԏ 50G4^HeDNhZZfDu-!:t@/31 261M1 Rb?'M1"Ei?QQ@4T(dрE&2y͘,fƼP 6p4+̕9w\Q"Bi"4͊tG*@-5>V*d[bܦu٦vGoʝD>Fi%q9ɿȕ%[@_1l `@ , T聑 g|P@ |/8gt8A+TDqV\* a`_[qH'{Tr%*@E-_TrEA3`FBFZ)M9I37^zܪ lQH @'#:JSQG8jL44<<+1(&448묫^n7ꊩ6]* N㋳V몶J-Β*p`32Vl#)x$ Xm "g^W6 M9uӐZ)=i[ " ^x%0`Hb«ԧ*jiDiFVr"ap-4AW MD?DDUT1-iaFBQGQzdui)^icf`E$R s%\D@G:S3B 8EN?ҍݿv@-:#6RHM7(3~SZ&K[\6^WJ*2,9,V+2Ml[Mgk^W4T}H6q/p13?2E ڴ |{]P<=!ަD%OST;l?ٍ_0g!aun5Mz@62(ʔceD3팆7!6BC3ID" F YQ"HJJ"~"(lV\$I1Q*KP8nbC .Bc&iNSBdI8(jhzeP(H#PH rGIHŒguZN*T6̻ g@|7{a a㯂**n 8z `e-eaOJpU1:dnA+aYr$p)K/>I-aKD6Q9˞~ H0 dN 8Ε+(<[I 2cTĄ?>T t *StR}-@|І\V#F9Qآy L1n$U&}lG⑀J\ijq,tN11Qb)>#}%5IaLQ@@=pb3ӂ9iVI XRL 2LZ]I_(0 8ҫ4rtefyMem{Ag9unN| e&XKS;}f \ϫDd"ʍzHT s@$%Dо oCЅUb/x*ڲ=d?iaδQEdG ?:ƤҙtӗH;,AĪ jbs[TE$F<Sm7QTc#G[%JoaV(o VVCx\kH42XPȵӐ .1~ʧ*B([ d )lQgB  d )Q/SUU'!Q]v,ICJsZH9K@D+/[l#a~q&x"b+;r+MV'dM@S}(lMvͶKXp^J;9 l_&Qh; XЮ։]=/hCB0oBETplxB2q9K2(5(.IdּFci1f^y=Y!\&h>"b75 &J$L2MsS-vCeQi3>n:`\O)Je]~#dsOAT* fSZ"YzKy2OF]ZK^>3iL|+e7-YCGZ.ikOpVg0^NWiT! {=V4|>}l="H'?8ȪßToO"DC++qRql51@hD6꿭 9)12Y 7h+0[+@4SZ ӫK>, ,b=[ P4o2vj5#ىY TaMIsp- 8WϚ;ki ^CȐ3@3)3Ʃ+#[7(0\[:s I1'.0ɟک,W9xPqa J%@ z ȴc('tB 6#'sRt 6S3jq jI\TӥLp qF܃DisC;*BDD<v⫈`ӍR0Q!k0^t81dTaK*?y_Qԓz]B, ,` S͎lHsPŕ໴ZZ?^ "[Գ?ƕ?Lɒ'a#uL#&~qhzd2P|4F\eυN;Ϸ@`(`YV>KbpCo+d9< 5JsXР>8 ǐB &ϻdkhCWVCjdbӖ^n!6'<;ު| Q"&r7KLSʴ4}_Q| :JS3%iKK!ՇQVGbɝYiHZxŕ 2%o9"J"Yg0}FƵ}Ŗ@ڼLS] S8ʛzu) \kZI233[ρ/3^ ~k`d*h_JI/pc ^0ZP}<\ѓϐB=lps|Xk;!.mC"E;A@`zBT:/:K ՊSqʰ)Բ R?R' ~ w{SW,6ZXG:k! ^P&d2>jJu Ph74bicr ;.(oo|;W O02 w]jqk-}p^<[ %oF/X:I"ERFkQV<vh>:Ζf`tYr̓B[ 1t[A:VXX qBÇ'=#߿"GɑdH*I8%J0c͐1>s$%* r 9?H!dl:Ŗ!ICBfBN+uite+ſIDMP.ט!![[ ȵ!r `G3M42tH@#BDNxǒ+SΝAnA=Sp1(NW@ZLL29iҔH`G'{?q;(~_'1?IdO%G1N+DH*:5C*QM sCHK .4P@BejU"z?dCIfuk_X 5^|4P }Q < YiIZ% ,f.I(Rk]VgIb=Huks9`r݆|D!uĽw%DiGi#.zi8w1|p91g `%;~( !\g3@`qAvc"裏T|TX*,t4߆ZiX$yOZOTd BDte%b~@Ng}Do&DћZtSFcg|:J'QO"e䨚FJS9D>5g )I6UT*ujL\իVpN'\z.-}e bD]rQ%&&46UW]0I y61E 1fqmhS`&A=eIubiȢD)9+2z6rBh$[P<$B śt&%IDޔHN&`u峒D!GaI̓<3PQɘ)r̈́I8>}5K CgnJ| $%mW7S{ RH2OTu$K`ΗTܕϡDFҙ͒_OX<JH,D՝]ݯlmqXlA ]͖d.LK impEZV0m/4E !qE4 _HiF LPb 0F=嚍bxaOx|DYǃe 1ΡȨ9E~̚ s wzPqG:!q܈HU KuHtȇF1Qd(׆ ԇG@OcXdK܈QՑٌş.M1D)U!cI&aN"ʅQyN|CDJxO)ˡ.m%XϫVV\4O #iVx٠*ϥMޝ o%O ޥmt_fDc %6PpyK}paTarZpQP!ɌWK% {<؃Q?P\DH |zzPrm !HՏAШZT( '*JݡpUsP-a1&R1U"iNQQ tU@ٓA]ĕ7jpH0` gDΡY`Rhhm JLQ]~W` #٣yq>֤#CŊ?2A!dCb4VD:vVdHU˲YKn-P΋$F 5]>!̤qDЂ!Rbʴ "u zM ! 2yTvPD]Uc8 MZlэTXL1_t+VKp|]~m=ɡQTI=hܙ0UW!#!blΜebeNf\8`J%}@XpEXV _@KVj fVJq. aV'WJVhZtڡZAB2dZ4vjܽO] PP]+ H\zP>)G3!z6 N[%u T$Q2q`nlxL\# }̀ (sύuƷ Ԍ ZꔐG 3f$]bV]rcHS), VR&a2#ύ&dNtH\=|M W%I)k.h O. JzD~@HGRK=*j%v` Fj]B]oj5g)PF`DNraFnu͋襤+ZVFBoP!=+2P?9P> =^-FQPL\Q!G،i[~a , e0YL͍ TZXewŘ(xI%MQh\/TQV59WE@36cUdIP٢lIH@ li4F0i jfaF(O GjuIfVj j`sʠ ^A 2! prpنҝݙbDZm$ %Hm$ &|ݺM =1 Z( ǂ[^!j׃N-" F\.y [ƽɮz{x $ eI}} ĕP0II0!s F|YD,\ΟĞ\iHuuHh,fjfS ,\q0V -a/E.oIZ0R5OG]Tt>fؾ8sbZm *޿R<[mOLnmsK 4HS*hqxѓRAa&j1@iM2khW΍qLtъY%OPér͐&) iU)ŽU͙8BY|8I3f^No*)oPAPWoc*22kMZ~F5ѝF -jh`3l!*ֲapʊ.j%> HD*ErgEV|0W./%T"g% 91&[€~᧟ 襨pbJ*jz4,)`  8ꭶN0*̬ ˮ8uRH2C:8Rs-0KcKXu7Z7x;ֵ,[:v9*O\Y %뫌3p U[fL0 oC=@*gE i ܣ K|dXF A; gL 5-m]tde1N}( !J$DrI*"jQ)`ˇ"u?* Ȥ5_RsBI(1'9$,%zI{(I·;RU:<4кncԼ+25.3s BBWY=CNsgk,*k3/SɁkZjV(^_.t:ުk7j; 2@V^ozBP߉K^^gA>1G0B<< /% Ul,:j^2TD/K;Dlf>G*4,J<B%fAѼ+9=\C#Dr% G8%&NdllLD9'rcQ -)VbV7QJpp]BmF.AZT̘*3bwL,ڊbtU6[@+my 6ɚpe0\^psHkfVs^QZlQZDd=lO<das! HyN1E <êIkNhC֬26H!82ي@u:p d*h3H3 K\R*!I\BI%j_ BҰLѡ5(:I~b<5!i*QQDX|Q*\@8F)LG41X3Tri̪T\3bGD3ĜmyMҏ4h:(tK0)-4-]hJXR+%,ǽZkKN_yeO^ gKafFȂA xcPE֙\>VVWRrDǀW~# A& g"IڒϯP$RJdbbIu#bC#ZJ$J eNzBRi4 ۂ#d(0\(8]5Kt/Qo <qˁc0qU+-#W+BUJW)Mj -m9+")2IVp_] xbWҩz`\g:+X籞eR|vð}h[ ZD?)L@1P hNt"ж4' u$ ,A,&> W\hi,nÜZ"Z Ráu׆'~HM(xyI:r_ mB"r(-*xJMՆSm!E]\R FhbwVNrыTiHv\ӣOCӍĚl"C۔tݷ8c=O+ժV--5'm\FSk築 蘌ML~aV5k,"& =_zлBgJݖڴϞyK#IHv6P'QadIlRwϮDi$5 Z@P5 ʇ-uĒֹkžƊT斔b>@6A)p1׊xФt>J?!AUΌJ-o0GjW k8lVhʚVh,dAGq}Y^RFY=`5eQ=ed29-&+5_^MN2b_&,/+THl"/*z ?Y:Ȅ@IJhLk+Jή"j" ]ꑾ.0Ă#.$JjB`(OTJjh\nlnPH x/* 1 y)اA(,-(t&d 0t@C.~ zCyq$ |CMDG" KE;zsi7>I. KL^4f%R (@ m)ZpdB~ QъoT#VFe1c/ ^Vsq E0>l uLݒ,Zyz%F4*%ZތW^r Mͯ."8Np20?},j{29#0*)0^>X?"ND$GP'e\Q6T-1n4πL4:8EXZYE K.m7!f 15Lh0%&4QkO:sm+lLGs4gPK5+SLeTĐ^82n:Z3DN!c9OTYLCF''!6wLӔex`$*wcCCKO!)9.Qc=) 'U5N(LMb*dGNHn2ʮ9DtGFll FvUEz5o-"G-GxZUZ;nvZ "2 eF#u".kvȆwo$nž2&If*3B&) 6,H184 >p=t3r$`&pbXVN:hn 7p0$e'#\6IfWV0rV22؊[Uyf, ړT6riD(?DžF1V FNNf'dqfu0 @z.@oxnMZy.sQ$.bj@Om%8\jrHH$"hnʫBKC^amdB "tNb`us¸͌΍q&pJeBpW&dAfQ 0sptNGVvHxX`6f%sP[.}i{sZ*Iޔ(%Y9/vGsSi2; _Sʛ*YYCFJϵd̒Bmt냂C+YYH6(H\xO؄X kBdW 芄mac\Ѻ :"d (e p퉗HOHvm%r3en8qT:ֈGXM/>@OFMf2AD΅;]̲e{Mr:meKCYT,dI6u80R/ ixXǾI1F^'%nX>gŅe- )G9V_VA`r &8 G<-.EYIؘxyyZU Tti"j4,.KiZC;;k*˜MFp)ڹJߦu͑j4cP`*a5Q| n8BZ5WOS&@aeS0#ݞM0Bbl0XQYz3 ^}wV#enzL i*ll{fu;%Q]ӨGwIԻ()3t>lR⃸z\1Tf f枢WK%\¿vHH$F̛91ˤ]dg"l<K&6w=CJ;۟ۙT5X8I/ pI6+eR' `!5_ UBކ[DZ,ZFG<'3%C$uԑW57Sg咥&xȬ$5kADDL&@8(8zԃD3 $@t`RؘvY`ZZ KXE2 M!Pd.]0C1AzJv1W|$ II8ۉዋ83uW4h#ǭ#v fyA^,6bhRm{+|(I~GӔvG@` {H댗-Hk HL TfE*8t^=t[=yRns] +£E.qޟ⟀xl+. h)9 (FY1D +)ƨ1#͗bB"BsZ e|;2=o $8+H-(BUYŒZ"bjܬIE b[ 7p-[s82Է0 }xZv؟TA_ T|5`$ EbTȂM6! t蟇Q_$HQ@ؔDP ȋQA dEHyU4dH IAK, EMBͤN7YP+RJ1$dD1cE|X%`$@]_ia\]tբbiomf=bAYUV\W\g9`XPFV_&_2wrQ@a֛^}iXMls6wlsi\:`xwޭS ^շ6p? 8|R`Rx+Fv!x8d JC-ec7R$ m9KdSu9BiW Pd N8a0P/{Q7%FeOyevs>XfƧoGEA_k)D$=1T 2VaCJ)a[pVgaX} @z@9goαc֙noĝ"JE;Q{J˹nr'-Ҽ)UڙFxr^zyA|/ӟ{E Zha.?l0{|.+c}oP7FC@AWTG"%D^JO/aPSE.뤿%le\zP`?)h[  ,dtZ'B*7XIBA ` qW, Sq+ 4+ȣ\2Ye'mbBl˜⦴,T]ZEpl8+nb i3 T$2fjCc1Z$B!V<\O䃻nD;P !Bģ#! wIC.`L Da.%"ADcXE4J+Yj (M dEN$ Qа*c: 8ᢜiEOJGZ;Q 9*`:޺1ˢ  <zDx3#Q ʘ 8]m\܈q"JlQ7bUbn/uR3ь*\ӝq[تpЃpT=zh.DT`LT&B2H8vb6I` T ]Hʈ\߃Dr$GX,E$5G7)K`/!'l #H3.i]vB"yᦝRP͎lG53NgS"jr btX'wpYoő)PصP( vyЬHqhFP1ZSdBzUu\ծf=pHq@v~$jQ `-A#4I):ĿiU`Sw mA !+ׂ>V.d?+$$U5pK?!0UaNdAA uIA 2+*-hL;%@A&ARQBzJ.:rBšDsepcUQni;"LH4V]$u@,EP5YTL3_؈,P [E˞S[/zjڈE]׺B!ULp$W aCUuU zȦAٚY1o72ֈp$/yFB@dES.}%veB -%ь᷌˴$sFXkSZֲcoRUXK TD!겹S ouFġP FC"mG(X;OA:g5R>73G]&FbtAa i+F}]T"`?j˳Vf? rj/<ը"&NLQD T=G&<P h䐋xc0hc<]%(H0}9x(_(G.&?CYeIEfy4BE R7Q:0C:V19rc 4|:<¹7< >'G,MPኵk\||Q=*c$"pgMD75RZujQ_WZ&OACg.Ձy0&Q"0 rwLUNHB!V!&"E;UVa ! !ID TJ/bJ0B#1#5by)&W:u1)n%CAnV3]W4%/aLDovc,{-;wĠ5\'l&PM'q'ʅ5]6-tWq!'rqM:Z(5qR~Q#1|CsX}AtR;Qhr\DgET1Gg0T|dXhR9Q1(E:Q eR8SAO7jpBEzu.; RIw# xr!׃#bxœ!6xBH` fg#> !Wk%>*>ud,1n[n_B$3@34( @W02:"gxqY^!5˨pidrra_v }SMOg]}6MעMpp5WZX}RZY 11e+Y9tgeIɅF`'+*021;H!#MwPtǘD)5GD5mxu~.W3.e2.sjXs/qh5ԋV`/I<60IWUPxG!={{i' 'w`נ 8uH%M%Ėh 42ek;cD ˛F=E5E9uA6IRl q /Ե˻q_N;Im'j'Ss4G;:}J\V=6 /2"03`Ga ad:`_ksty\XCB?Fn~]b@@?2V$k%DzKl,F"Hb$F6l5h2۸MYp P@B8Y P 71l0 `%Mۀȓp12$?ܵ?$ۻ]Q$pr1N%faUsxт:Vf/X*$lF0 0&?BnՓ/b0*?# ah>磃6g@NKbܧalE{do' SNUnWY4Y]V_^a.eng>RNXh~lqrNunwy{|x~Mn臎艮.Nn闎陮.Nn꧎ꩮ.Nn뷎빮.Nnǎɮ.Nn׎ٮ.Nnn&i@*1`Afb7A3&ywp0MA@3 -00olCPp8#sh;OB#4oLo(_pM81?1 /A,_CO>s4@(E?To=l3Q@Oaï#@1OO`@1 (A .dC%NXE5bqCDh` qA4x/ wLH/D}KD#F!8/R ×͜; pxA Mΐ7a>Jm*ZHe ؿx=ȸy"4+_d+˖-SE&]iԩU;woː}Q/hc;8DbaSa7qgulq 6?^nеz^iIt(dr?:9MRO2fBh۬+8j#/|Gn p5CqDK. 5CHûtDb(P)A:Њ)D$f`X?*MtRJ+,C'8 -STRZ@#psHt 6IƁ`LTՊ\!,,Qši> ,(4k߆kN; SWH::+ٯr0b}%h 08Ta$|R~_\0?"<4w7!tl. Z+9!yMSڅVV\hUrセZ0.baլ(1buti粧&[8`ꇊBa<̶3(tTFa޾Kl㈆8 W]͘(6)o+Nq Kg|ՃĶtN| W c/:mprqjn.-R%ō+gUO)|kW`tzTᒄ $r_B3²8{&nHᅢu$t̪Cbufoy$Ȁ$1f`_&}%/ $;|Y؂1, Q4";.†!6bD2;C QC=30_ CHD( 1Q]xE,*VE0Qc !,)2& 4gIQfEI&1XAKG6CxRU7S9DC08WVkNVG!=1<90;J:H! 5%,_EObX+V=G\U=ڸF'"ȮB 㺉pE3@̴C" T)~ST_CHՈZ\ȗxhX< B3?ֆX1!eXtIuNR\XwT\frKQɝd?ӪrasIJ纟r^qPVtZͪ{dډfV?Ol_Ur`kIO[BJ˓jغXSa`yQNc]ʇeRMVg^ڕeȀdW]vcтbH-*mJUU|zZe|N$ϑx^<*7}PLNJhlkA©A&'wXLcEڍogp9(mWSuEڜv[٪ʇn=!xLHKOvA4iAxNe=;Vܲʊd3#g]Z?s {goL6ͫxçj؍]aNזoxnѡQ4wzeE/vM4:ћypkĮl7ۘWBJ@Ϗd݇WOOOxk̥lllzzz^^^6@OO#bedž *\ȰÇ#JHŋ3jȱǏ CIIS\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳh0@~ېRKݻx˷㇯0^ǐ2,t˘3k̹ϠC^Ŀ|5'_`h δG_/&/y_μУK|) +f`=@i>O7BZ@a*O[<(ȩ ) *$ZAڡzAJ鯠#&6F VOmO׷FUϥXi<jJ1iJZ{  BzAB>]@ ><@já ebO6cm Yb0l.<%0K#@2`EHO>`o}XwYX#K Xi[c*|A=lfttmxa@5P4xȈӵt;P=7nBzit)B*Ϻ/;iח>y&b mQ <^=Γ 6=5p=`Sl*Qq Kamw)W5 (^ꂠS(@IIȾԠO02%O!T?NBr;!#1)Q e * ɣ)L,7(T-- Ά{YGfI] %Rb:󏬼3IjZ̦6nz, IrL:v~ @JЀMBІ:D'JъZͨF7юz HGJҒ(˂ $/}?\JӖڔEȩNwӞTEP}ӡHJ8Ԡ4u,ZGTjJGVՠzu^%XJ֝1Ly֘?Y+Q wk]PWb*+ Bb+>%Id_:Y­0M+\5[VvU))@:㫨jPO+ .HSQ@pV-0 mA<VS;X[ꔺgf+']xJw HoyŲ uðQ*߿ʷ( b` pQ" ͦd-@*{YvmRaZ㩱 kT@A28QoZٽWr}er;3Q"W/7 /<5+͍w]*pi!~S"$m[*>& IK4Sc$iE\f%S'h ]q1:yOzם5&F~{2이7(YV}4β\=Q oSZ$Di\VЃwx0~Qm-\" m̓MdZQ/j(|ꣴںvJv2zS_땮#kyC\=J 96}l- z]|%,E~mÙ*.L3T,AYmq蝴b֝ ĝ5(eLXE@ʉ]ZCrлuH=Rdqfv:wx[ @"{wV+ y`6 IkZ@iǼ}Ӷю?wwߝN_~l7[ԢM@ZeXjt؈ň ~sF{X |xҹu48XfYޥS5 ZcZa&q ;a\yU1iwFiSeȢ+~Jab$`}K[(P=ʔEQgg׸3k%'g[ٕv @`y =s!ty]*lrWP5,? E[>:?ڳAa7HkRPY%7UrZxک瘎r؏ڵklڮDWnjl@>A{ywJ#8y|iՕ j+ așgg: eHoƩ׃6\[OիAi7f/w*~YitwigpC腨J#֛YIGe(gzK nPur8z ˰ZW5>˵vקqHׁk;)JrztZB y +|+&`:8|zFi%b7HUSHOX+ (4U"c>ѻL٣> :{nEՉ [r_ԊsX 0Wr `_kInd{9j)=Qo\o鿱yAAaA,귀RĄS9@Vƪ`+Zv"\?+|yɪ,;X:K>E \a=q8̍놸 ^;R\U t)ܾ+`{X麦;lPr|rۿɗ7x\υ{۷3̔ Ũ̸̙:j,;\zfA~) b˄;ᚷp6K 0 8;A̔L-!5B\p2.w­iLaqMK° Ѥ.=^,p~-o=A{}<uNw^m L~ HLB_'ܲ޸:.<<\h@a ^K Z 6F˖2cU/w&Z[ 𣈼}H>x> ^s֞cbElXXߌx&9Ei/߇$xPa QD "Z`ƌ5~RdC -C$&ʆSbcSMpϘ9M'T͆gsiԩ&^Ś*Նuy  VI<,[lI%ْ2ȍsv(}9EPp& Jl(A9v8dW[-2_\rY-XK[DꆧG[Rjφ]5Ԭ.z&lsr)G.J& =1B {zD#Qݺ$it>߿dLf/OUgPgBj)J+*^;C²,+&; +!L-b.M )=@h0 *>0H;k( k8P88<3)!'MͶ*m3 *om6ܬ%Hm5Xrʆs3נۮH;H1: ѰC0.R/}/"m >Z:Ҙ(v(䩨J# \U*f5IC:''{-^Q/a5s@gvtHH5C!˶V+8׼9/4+SC4LP;Ӻ3ǂԱAZ;BêQb]ܛL?SsɥB)@QR0Tk5,Z0-\&z-1+iou/;Z.5iaeڕԣt"ĬL7udPNJk5,e,@l hWE1ُ&< m635FU3^֕-]0nJ 4՗^H2c/a| )a>c8ci1y&r$F$ՒmNRyIRtlT;!ݪL!T bƲрvZծx$&{Fl"=jx>QF"YD!ɲ`ƴ_FPoe4dќksjѰO]e9e4'@lHK{eBf$!MM+Sc=6: f,Dc &'*7QbS -O턆2\ 7CS]EBUN'UV,aVy:fDo+<2i`@ PL-D*܌f3E$J8FYArг6oT.vv |1ET dTIAU.5FI2rJ .=I_ U2bJL\s%1MWҐ rr1zd4!ie(,r$-d]r6SLPU^5^RzɿsM=-4UzB2vJ}D(V@+ɐrjTe%_x{ 6I kSZRvNWS4% 0'e,RT.9,51,Sa]v(NaU9 nzNYnŖ61[b˶*EZJ| K\(T07uiJXN>ГLyI҉TF 3hTfs,&61hE{&2= 4^%_!(iCp-oO>S ?&E\J&5re] d ]ڸ2>A-wּfI*_%*ܴYcj~ W6 * Su<_:GtF 挝~O)5VS@K)((ZPEJ[eJcn 5->!Evg]Icvsenk W Fn\WK!Lfʩa]Vռ)KKV]bfs6 DSk S.erK9>mC73#lÜuZ''/ UfKduBS4c%^c%8;Wڎ.8F FgEP0}Lp&Dh)ry &]6o<l5* a;8CI}˂_-q5n/-'gʍ^lu4j>rQEÂ8ز6!I|۪%z&ТFAdeo-859 \v&OpC.m[6q*ܖRmlo8xGd_BiGwUdM^|[5p[p"Ѧ:U:s4k4J6+#06{d-9{9q[`Vc1=Z\#صAJʳ( c ">tNJ>c Ӿk(Cw0|9v3X3d?;pế{ k"Z@\w2>#B|@"{Ĭ $1  ܼk8iE :A,A4qs¬F$?E%t0c]T<*F@!s2eBe9侰Fl71 3746lù=e@ke'd)"FPRcH`? ̗'= JZ,'K㼋%4Ҳ#S\"ɒ4R%HAN\(IɗԊ{A\ ck6t#P"$]cat4BZ>f?[l)GiJx¬m 0G4 r4(4+3` 5 ɰl>p˰GqSFm@f,@& FTB?O85{D+@@^LHcEC E K=* t5ldAqB#9D[L ܜ[l6$,G[a~LVn5aU_uEF[ l5lH`OEV\NWPl)-T.[ETZx$XgvV8v>ܜ]ؽ0^]qT+f m(*MxVMQgv'pf^RjR-klb&նݶvjM)9qE1IXBAT5 F6j"@l|aR;~i*Ά5Ell4h`07d CU܍CNlS}|kef߫~YםjeZvP1Ш6f=U&f X[UņHfeHfxjk Vk(Ѱ[nY&l}cSl}.n~\9]\h^Eqt}nLGVd|m}u7K6`Kq޾+D<Ίl&E}e|cZ"p]ju/79q]]fa L٫pfx@ ZEvkV9ݢxqIߨP52Ak(M~]궊/WPX0Q?J}n]nxnn~:gg|^S/lfo"7E.vvV`vS`9kRf܁nhl o/tNBQnR/nRrZlM cwfPfp}tx >ŰF^ :hEx:wG4gM~絽OB u>WwpuVGvF졯mX'߾dld^h_h.v?G 3h({ kmi&omUvR?z>)wvFwC|nX(Uu/Brj3.Ίe^U􆇇{A77,l%84x.oݗBhkOw2|ߍ>L/kFx/|iFFpn{ĮueZϊWGnXdyd_WvGdewh wmൃd8a98"ƌ$2$Ad!/, d#ELe˖_,HSL7>Xn<qQ2e QXJz:P*XjZVˋWٳնB -/͒x%(v 'q_DoS} O&x!Gt1?!DA$EaHaD@QEK:hD. M*tbM+F|QчTEWTVP!%%^MGUQGWOzUu5e\Wnl6k)EEdZaSXF?QFdXmYAfd?FGkK^٦W\)okaUp^n:*r1b.yVeESKɪTޭ籷kPhkSM߀& 6BPAE`PB m;!f$$r'δ R&+N#SJE|>7A +_JUdTKɩX=7e wi\ud!hYvIY9WfM.2уы&ѱharTWte\vvʼn)q|*HQŰxw} {7ԮxM\tZ,FUѸfd.`bDQ"Ǹ_T_}-RE{٧E5tQ12VeeE%A\r隗?Q*tfEEd pTőNiI!ao !oND"I{ZeN%,ѵ&rCqE@5 Á|B "DD8+s+b cOxdfґ B(m%Hkeu[k58a-ժUՁIAdAZAMR{a?'2wbd. u0z]TR*W/UnԪVY}3kZcunDTrCAȞ՘;#|,C vYe908dC`2 .f?{Ht=fM|rVD,S> IAaן^qmOWҖ۱Vx`^F #";V"h62=楞TSkN<}̟ʊ iK ^5od?9!|+j__S2xmC S„L\0T,6Ad2N $"G80Pr7bx"]"A;%1CGdlzxd!Gk4h0V U-A|XGM0ּ-Nշc_K żTvէ1oPo åcNҝbL1],DHo \^d6n uv _8r )VkY XW+7t" ?ʩFQ^*kY9@rĥ`@G'x ZՓ.:ET9/EK/9=\fBo6:`fߢY`jXJ _+U~u7eym?C`bzf1[}a9 5 Tn)a=CR2BQ2bQӱ(\!P4LC!fAjAdaKbymO)ДdFJfgLr@CMgpUuMƤők"yfjeOq(gAtfR&儝R;L'm0XB 1`VE(. e9<@ec%3&%eb &Qh_f`^0 ٓ."޵`ӀŐ*#_j'Ց&n9i|F(8jWfj$5dklMAFn!䜛_D8g;l`x eSNʼncg00gD Α!͜ZKZLxFA27MVA!t)&? jrf=fD$@2+&ij+ND)E&(Vfe*D-2^(U^h"<>+B"cv1~QH 5c(N趱c`Pv#8ZXX`&5E,F[^Q6)*A8C:cr&ĺ5E*bbjbl4iAbD6dhߜvEFx>&` !Y̽!-"-?0CN7Ez$&4"¦Or PD٦FA)F*mA`e*&6>+Ub(fN%Yv(U6.nk?6$C.\ekAe]ځ$ڌHa(jh*.j(AhծfbD.bj4@&,>/-FaQ^l5fl2l&zNęin*ElsEa A wN$J !A"Z$u pBxDN£>j(LC~wO^aN)&gN,J)â347i;B,A?_ݶ*+JkA86+Jq0APn+Dr.A$AbFDR Ƙ$vk*qQ.q/fJm717O-!m%2db#%5,.pbQh3onof`$ՔFIApoEt&\[;nBjx3r!(4h0+—dfٖ(Dr3j-))Tĺ*Bi~pDx0EH:qAc@61=oOk{q`A]4T#?`D"(DDC7@BsBsD(@gh?^,]b1^(<Ep 6hb7ss}n2@Q2,s5m#C/ /@4m0sӚiB,zDo&1Z g\i,AHLu2$fD'Mjms!sr(Ad3%b73SH 1Jl@@tlKt?lm'V6DLBKEt? wr[GoBAIO4@qo >.@nR%msޒ>fkXY%x%d3dK5sf}_DJSZ55UTgD&OXGcDzgviY2f"_ s^5a-_'G$aL0#sNRP6&W5%s/5K'~586?8!{*iNkv/;+wt-X>w7>X'Vv_t~kJhg1F3Fg$t1Ons/yd@X.?0E3@.n6kK34:{wz_#9Ax/E58˸~755H342'ظ&SpUGV@к"/nQ_/FOv-jP5܁t'Bb5VOb$'(@: -,lA`:`{`F[u6t@l?˗9wKDȹ$T'wpyD<|u1/4@|tA?|q򮗫4h=ҳ {G@7@- Tp੃ 2lAjQFj8j7ׯ4/%Ao/ yP+ܴ}8"w_ѣ? qt %כrD?fI"?oHS~Ny7i_*t@2U|08~!}/Sqg;wBj5R=г%k{T!?ٹgX\7sÇ;q^07r;K"ˎNZ`XMz|ATz_gF elt#8v)bЯ$*앃HH"!"8,HTiZ,oo+& q'tJ(x!)rʨ6'q $ɦ7ʲJ鬳J˭R?H$E(kDԋ/ ¡8OPN!l p4WB| @̿#RaFr9mlc(NUrrm= N欓u8IdVZ-).jĻZ>Smm=ekOҾ"mq:4^Z^Is!4ht ("8Js4H#7 S[dEq)%vbG2  f{$Ij (bhIJ* Ғ%o`˹R2f# aC"A1"{WPg1q/PHRL}ӬmMR5m|˭TI \K8UKXz8`+p_n;KT _O4cۮm 3zF\q B} ə=_hB&hO T!w wMZ1l%aʧtc$ZJR ȍgɐw %2@x˷臙L$\)D7y֦ iHS`q4 UhA b`׮*0Pj@jưuրA dlEHBpl+yLr[࣪Jo2UD@WҩNōP"J 30sonB'>VPApЃc%rsY-if5 dPkH'<-)K^KX,yR-aMT6#y1L1%B}"v%+%|L2fY)K4z"G;Z$ x he\+;اkTWpcLXB4Tة-^o9p(WE n>ji^C W8`qV_HDԂp`8@7^ġ ING5`8=F3R[`dTw:h!ߪbP*TjVbb*hs$Ax$~\AT0eKvRiO"((ABvtD'V V%e&[j[ɼ16D@D@Zrx:UHq4x+9کtR Zdt fۗnl04D7MSGR4\8ùjU[ފ5P-'>ӝCt[ҸS6Noi8i5+[ȶn!h'%ҍI[*k ݠ24b /ErZ~8KWHC2D,\WԎHI#&b`(K9R& h5GֳHJRK XVUk^Z Mge.}.10 bXq$T' N_WR/JtqBԑ1eeMh&9ݦ [MRB6SMD٪48u'QC kPH?Puoݍo E9[lhXTɁ8KD_4ԄndmRtb-՝4*UL R[zM ˷ M+CcјjƨzՂh@y=:+V?qUf52fU.tբ }5X&oHvE 4Z ,Y @,rr-+,/1 > 'LH!HHuS\Kv`U]ݵwu]} ]x 6^wε[B[V(&'.r 1OTI{T$; =vIJd4t}xV&r-Jk6b$*W|vtھ"JR֌ L`i||A6<3R3[l 56|#IQsUlbUUNUVn.e&eoqogz A [ /x ,wqXq8r1C=BaZ-+AkFW\9@u!v[uAau͘vѸw_WvXvIaÕs7]gyݵ_5`o7yFQts77q׈u@r- t5{ >I'(xd|+ d]bzhzcԫo\>I3aO"9y*lF Jպer%ׂ;rP+ ;?2IAqTv!U9UAl nOX脮lAnkxos19(z9'rYxوy Z+A8T[W">Øvgآ!83:W8xvq` Տ+5az[)7 Iq,o o$jh1ГE4IPYVRzqy"(:Ohe5 "äP7 P n!ẓ%0;.#0{1kٚĒ ے9SlYlc/jV@qzs&2@w:s@m1++Zz1x C;w{{y{;w%yK\Vo[rWr!#(7ڱ6{Ou K;EGeZL'Lty61bN03hǨL[f 6g,PS-%Ns;6A3SdZ"0J,0JEIT-{%ٱ˶ǻlum%;o!BY;qU{rZ4*B ֐oxs 8M8++8ϼ=B'7ґA{94lc]9U|Jj:6K7d?KP 23py}lBf{Gԫtw lmeT3:ђ0-|Ó=/> =Zl NP y T(?ow+Q "EjRR>]h_VuZHWb4Cj-Zh fV-840(@ 'D3nܸܵ9I,H2?!^D$Ą DX? Z_lٴ# x0~ܸ޼VЛsc:pBY;xV߱>b {-`jsQs~pd- BTRnUm UZ!D %PijadY|df2?dXGӊ8$BQkPqxuBϹ4!oJ@ejuDHh)c6->9?eIAarV uYК*CtE? Y 5l 0U#5-5)H{])@drnF)x> ->js/٤z#brc2.x\x!X2jA{k[ ٺK 7|kwmkw]rXextt/C? *4 OdSE|5\q3ZB8FMNWb %vX.2's'&5eNY8%NtS"%Hq)ZJa)%D5aa S4aA+HՆhsч,b2Cd?ං8Lq)Y`.SyJV<9e)r#T7&1^Jrfb27"fG&CL-ő&>`J+H7BXs!}NPY5 p~:u)qr3,(/:QLU9A;"OT^ #$yLvB(-wNcޞrock@fY+fjΖcYڐCq W)mSZJdcfYԆq˜?b@pHhh6a ĂH a q1?\h2ZR P yIQĠ1(K@Tls!A*DX&,bb4e+waԤXeTqOs/ 4P`222eUbJR38E*R[#Hf`+%iT5VH%O'۔d|%,gvn%C耎]=\e59dY F"Bb Y.1MF+P|iLŶ({Rj05* I8ƜFRrj$V@flXP{| I40鉺˕)Mь?( sȷ, JA2ġ >۫w4GOZAΧ /dt 0H/,aT(4xz! X|vtK*V,V*kSXճ"]I_Jcz.2*bVC9 ##jPDT!MlbupsXYRW=ܡR ژKbˆ<̋12_"}9]U_~)f2^2n=LmEk$NX4P'>|hHSObpzBJ(OW3j N8-$[Ɇi6.75JYPwP%aԂ>I4WØ,Dwb\Ko^'讥90n Wx:F/,{RYT@:=Nq)/ȉ@K >@ !TKN/d';] q|6g>b B̨͛:Ҋ4&e=a/}!LJȷhÕ3UnvI^z=*Zix\j}G|Y*Q!h lsH`$ʐiJ>ؕTXIfv3L!(H[$^Gp$nT<}ؓy{!I[ƹL?o I3.'}l2:uLQ8ǹ9Lz"! : y Hsd&skf8q,ʓg9';H,s,f.2$hD rh2hR/B@[ڣvdv3۶LV#d 7beBvj(Djj`xfaO'_6`BLP 5Q^hS"xT1alDl`  l@ %OHngvm0{{@2g0)agLJ'IhPN'N W537{R'n#'xG2OB7w}$}{H'N#S]G?%?g(Xm@F6]7Ui>Zd@ K!2+ h.^e+t+Issj,qs$,:I /kQ+1+H0*<σ&9B/3hO @cRTA3E\AmCP8Q6Q(`&`Vlf QwdXw4uSD†ņNl !V$0 s D"VC*10E7A@zPmyDyHwi=]=R>$6a6z8'h$nV'Ip W̸Nm}u}@2v#vN9\9iN-@M%_6z@ [Ff$GTOhX!=cJB#u.c. {<)!+P%X(++ s Ǒ,)ȏ Sa+"A"VZHru93W5FqzbCz*Q\PmGXnkva EA fwQQ`8Hg5lySi6l$s $ pP1@@1  aP&RMiUm=9_%A`[xx4Tze≃4[P[]`D ç$i]H$i79tc b~FOQL"7w[ven%}hF de.qoG NY9ѩ ()8bXX+ ,ȱ<7,YX1x֚ 1:A .Z)T!@/q? uhsdzYO8k2^IXn&BCi^gS a /:$EN R Wl&A6#BZp 4e +_bED0 Ed P Jd'&@Zڤ BDBUJ`}f(ڇ}7}NGN`,N``{tkQpB 77>6 [[> ˸>y$I=ְL:e3yBjN:6tPc6,sKچ B˱7Jrأ۳  xSj_%{P ''ktj$?>[}#C2vb- ; ˷qy_DNӧi[~[9#w|0{>}G{yǑ   d0|Xfa kku o0˯IBtVgʃ*XJt.WC#0Z~s͊f#uF0>Y5>ulLW\Nt#?kPlelMLS4Jj؆XyDlB۱S6ڕAB y" <(aohk= .LH$]ҳ6]$P^I;} 'FA}IJ~ip-09C8@d,e>bj7V X2sMyl.t}B<}yL T 2+* ` Fbkf ، EWg` ڢۤEtJ˲ހ u6"X埌4Z# 1#$/*h uaZ dz=E\l'3ٖ^OȄAv O\ T9$Xɱ5Z$F2SPZ < -D'aCwPD ?LS8_)E]IM/~F..Ī#sz[ PǗ;8[Uǒ D>w{H`!oUoVǩ?u͎z,,z t-ҹɕ\3lt{:@^:YICj i>ϱ˫ tYu!Yc鯴A3wc&:qK*KGVAT3Дmw8Ʉοޱk͢ 3JjH$UP\ l S( ",ywr.PI.3N' 57>'u g!X/pp{%df zQǯ@w}_!{ {&lQc嘫坬XRLY~^̸p  ]I,jD,1K2- A-1Acꮱ01ht! hB o o^Բ?F! Mę0}}T g]}Йp|AEW&'_}R;;_W U1/*D(?5 1><(dd&=y*ˋW$ /u&FOESOa,(BO~1ϯޘ˛7?~޼A9)׿q9߽|;8:zəSJzT''D81}ɉS"/>yK9} Nq]i6Ì ǻaۚr[KVnyɝ#<ɲiߙ-lGϖy:QCzGEϯ3e0/2_|$Ad'L"'B +|pD 0bXNDWsjVN햂U;&ص7os̈N'߆#Κa*n9)Ga89:#offH;p@Z pY5v"qxH,kdqNڱ}l=QIpTщ"T'̃K'1 =rB5SQ )oN/0o2N?gvaU'TBCEMK"""QwL=ERS15$Ye҉V#tXS!j+f+y%Z8%$ SXZ[:,[;i b@E̺~abp5|UK(C2H UBU"<%`qIZ kZ8j0K1S⤦2I3NJq1 Z~㴬epx#d# 4?t; ;1+Cۅx:0}n>:HAD!bZ F2(A N6*Lg0G#憝dg1х, 澪=ʁH98'fHΚ"7&=e ,NPT[?x ^ K%qD+N2pXcw@aEFȉ7o$ q\1(K`jSH0vd$3!J1jNdy=!F= ewSOrfU :/U ^Pc+)ڲQTk-2֖E2TxC^.. Y̐]5S@{ ] 5APPh *Z\TbhjLCӘVj8#ԑp2J]Pyv=浺(} dZo}+,bK3lqt{{CzLsp@\.;M5J52qRIp-Yô8[Zu!1;dy_W 8)VB:yyb6țLe)$evƩt8T,Lޒ_)NK-lrl.8G%m~@3D8D#cbKsʞt|}UA:Dx#׃O`+PAxE5ZKi8N;+NNӴi=sb`bZsmpsim=>{{(w3 ғ XA4D苾^z  @|,S U Eh\1 8ʶq/98긝/,m6(`,6h&0 @[-ѥ R##8(Aɰ$ZXt]XJ#mԉnʫYY2 9is0YC&(ғù,>a?`IB"ԶkHrJ{;(8J@@¼K 3 OI20OKiأDQDE(HK2tRdT`Iv*PyB!0g2+Kx+:*@dQTW+<5G{E۞v:5],ÊM#S4dδ>#Y P|2%MLi(1oZBTX j{((Aj"t%y)a.Q%9@Sr-hLTB"(U8I8RtRL( {0=(+S875XhX@(42($6.qq09Y)C ( ,#-vsl;C3(a(aèKt L:Q r zcL11<RMV:n*'CC] W4Y2 !LdT+mԋ)Z k2iOUQ@aԆih3v;(L49=xEB`39^XBh;Og8uouXNN:󧷒KP{e(˲OSy>UAE1LEiϏeꃲ^ʤ]T_#̸zdAFHFÔۣ:0L{dPdxkό?2';L+U[;ޅ[VC` 6)ZxS`mp i\Gj ;xՆu5[3c5k3X`7Z/cbm3m s2suXs9i8C{45'PPSC Pb$-M2؆uG32o5=bGW5qhC+;డ=hZ66+9Iʶ(tˢ0A1&44,:YYj䃐St;I8DNS/A\;H\ǀ1Q.e G؂pV ? vk JLҺ +I=7ˁnTccb~?=ݝ`SJQ1szþ QÈC0#xJ]a#c]'8zaGL:Wص?[;lRrM(YK؆75!W0g(Z0ثm֊^vM=F)e4>)r)<ó 7S i[{4bEiial(,5=HFljy^GTbGW2h%Hh!VXCm(>1m8LtfUNv+yÿ5>ך0cjKԹ?HF5ˆU@ A.$-=@&NCFUdL!ufmN\LfA1 WMpe  877783"!7Â-\YI+%1*uNL-C6]Bf{g0_ۑEKO|`fC筺6أkioKb,lqRht:Z+INgb;_Kq 6&2g8j6\؁tHqvb(DO$ڳb<斃 (k Hr);YsbB ttW $쬵Q+/NZcX`L_7l[Ө1 lS ^K=L%&CS}+xӱ&kh7S7؊t oc؂F%\/{,OSae5&ab-A ĵ&`}v+@AmGmV>ނT.喀-q3PwuZ>PI&+zxOfΰ1m6UG,UJO:1L xKL)U-c[=dZ196i~?Ѩ39rc\y@ȲV=ۿFI@V5=ꃀshy2pgh Faz!'> xU=c94mȴ#w@ ߖoi*)^ BW6lbFO{4i#S<4j+Fg<54PZ{WTηچN,Llc]B5M= %pͣê!d,ivnxNhGyXE/SuSpKW__Tl6Ԋu+%Œ$#u#BR77R9dD>΢/zm@&H&mBvhc v/TmGpTNeZn0 eOBjER B@* Fw1dwda("-L2Y*GWy$N;-ьSa&8mJ ڿTNH󯌚2\d vJ´Yhj"J%,L`LŷWPxxgΙdhdsE-3Kx75j3miz͛h3[ȡ혷aի&k9In9_3{S[EQF?m3S~7(8Chl4巟I 3M1 2BMAY"6Bt8N\(NAQD%aCj[3G.p!{<GZbLqbIdTMeIX&XXKnS%caVKF S}GJdJQeaPWbd`DWvؑN$hLXA(C CI|(;VPJiVMbsLa:cs$ժIH"NI;PJQHD)xET@(LQlTF){ә?OL@()DL{"?j SPOU9qpn*8P*zb՟iUX8M]P9H &`Y&Y4 #.2 #F3ķK-aH{8+n&gvr䦜nDagvƛ6i5BiսFT1٧ m5qivyb]\o X7ms3p7"~#S̄"SLc jHM^8D+"9T&e ap]}JK)"Bu_}I6f{V6UEzdKVF䒙E^WM.X_G&&?ǠFLDIpg%?:zBI`& >U(!R\!DZIGV2+$ժ#t"V.e&GE!E)bJYls?܅`KUz;*a_g)C&(@LN"BO@+b2=wь+XFF2&y4SBBhtMzS5&౎u!r#BGYm\ iM8©*J 'oQ6VK=OLr@:t!ANӒE9H,1<̾ʀF,`ӒDUrjC'$Y1vv{,L#!1[!X4'2FA(UbRf*Sd"JJbK|B ˁR8BH"`NQJQ#+9AS(r;\rkn.FMF$Un!LdpC܂VnC._>lW a)XB#Q)I JW"{E9*WaYa`;Jh.ъԺ`^ƫSY$uC,1ץ +tS*=. ⏳ȽBr?Aqhܨ" T3Av=*G+S+^jZ$$`4zY%uXLkZ,-`h)l^>6JC[P;?2`bM/~/[͜Q3J g"xw? dlc6,"b;J*$g̑'8t{3f hel09P^,#hvG^[ 5\ (1Loocl -?\.Gost+ژŧ^iMzzq jW=TC>!㩽+ח)JaR*Q=XMQ*L xoN1P!`2G=4}G0;3$"lsC&¬ZA$=M&G{sWBε\:"z@]Gv8A1`CkBCo0e'dRd@I1?ZEU{da DrW# #fUHm502DB3F-U }[& OT+L lQ%[T)VpV|)[|\llɖ hK&>Ɩ,B}`\Ֆ nCUI 2!}~3 8tEH6=Щ!JG] UpTU(Jy]ѝZ],Yԕ P!|$N"!t!!l"&"&~A'2!QH^mbPALb, BQCU^@A1fm_0#X1>Z( A# PYZUTP UEGK@] GϿگm5Zdxa53ŎȈ$50HbZH $W f|BuFmmSYiU.0ݑlDBLFкEּ2lx[hD_dX^\Te\ B4XB&āVV Gd3Xd`|CFI_A ɷ}2Rp-Sl8\q@Yɋ)\^ |FYӐOѝ BC:]a@?pln@o?8#hpz?(jb)&&~$J(&&h `&tv%'V;JV^=%$f#p >HB[$CHuTqQJHZC` aEZhY!ZRJUE|c}Yei!f9WcbD5 5h)Rjf9Dcghi3|mIQ f JDi-&Dl'C+$L`LNbHp p˼ " _b$P5eԩ 0Ea)ؕAD `JBD'Dfx̛`6 „E?m)R\p)^ \0i )$Z݋XlF]ᜒ]]5AJ\§П zA"q:HH ?pj+!?p'RAxJ'Jq:Bkjg&kC.jy2hv_qNZш$@ZźV8䤈ٞ `ƆN&ʖEL!劝,IW8O4JI A.@?%T0Ň|,%X(8Q|n[ypYH\FJ3El ELlB+ M^5H)t`Ib[raʕ٦mJ]#VI%%:IjݤUHVaIYid}ctTnv}y*qR-U[-1E~zG "kޒQ 8M ŀJZ%Q=zOHMrn|+ȫtj"'J'Cw,!r$vtfvng߫+p0+vky ؂\:lEX\K͞C( -ЙЎLtWˇ 0ВlʄJH?_3pO<$'xmknG]Mm֨GƵJ~N|H!i``iP.1" `!dv[wgDAb|T|n"jr?pШ Ɲ|g`Oh V_S VDf,@m:\_*~\íŭW2 .؎-1NּXh ֭6e$F?a>MX,;à륖Eâ+ln(~|P%ofbv'ko++0kt0yjh=BZшI[ZAȝĹ șH OSqpP7N2!SXH)DŽ@X !QQS7hR,+QI Rk,[g\8~S%N )Bd1dN)lcDž .hFCh%@,@I91;(ϡf!v|jF.$1A*#UfaݢP 7"BPA5 0+`C%[U. !& ]mNb%P)l$i ZI N9Q}n芮l^ò_RS>l̇#Tmܦj~Pd(+&+u:&puvvjG'p $0@PPXŢ[^BBB*dN4NM ThHPoE?(OD Q1x'(X٩>RkD^'\FBOQP﮵xu ~B1~1g.O,kXߖDN6P,:Nh+ 5.ya-RZ|TFԥ64$jBC(&LlrrK&$:(}tS(kg޹7x{`JuDX0 @>UZQLDdxIܓB7{vvaJq-Qb,naD9<=i2 ;nr%4cf8E0wf/C@k ,4LF,BBpMJLl젦WːQ8s9JPX_o[Q0yUx},oɄ5Q,Л'Թc9˹[1<ضי ~ z(zQ3e1Q¢[+"c-O Ƞg˭_S|A)L! (;;I8{l A׺kt@:p Ob(o`"s?(ʢae壬deˊPVP(a@l5~ȶ.bW$3i @Rs*&| (s>1 s g2Q Z?epatNnOzф%lGEXaH¨^V=FnED!$(%Q+nXctmVPjKd2[YD +1~Br"!H xrQIKX*4l(YhѠ5c.dVFV~y Ϙ 0 94IXG/ аrIArù(G# Ps{pr-ZΐVOHvun$VP(J&Jߺp61[Pڅ. 443]gc41[Ҟ {pb׬-. j\,t:cF~ѢqDP]{N:BtmG2b,ciWb!2!.ƣKȸ@&8u?alxLTW6ꕡi K3Dz,0,aN9|=X(=Gilf,cfvt£c,qC,CDP5IJ`.FV(IJ p}+kVQ׫LѮX* E73e+[(JUJMpҚv$uB]P6N*Mݾ}+Ɂ7no6" 9> 0G]a]Å%I. ɑLB"M$h3DzRT&U̦;5iLS&4fvJIRt9wl "äȽkP@[eS'aisY~A# {YO7h2dpb6\h_smfCS./j[U A҅كhe'>1X~:|PӞ)'g"4_(BLHÜmy U|{ՕVr!9T~F˖сYH*Glv3YI|Q(,x(;^`X XTVeT ZiXj7xjf`肼~w gʜ aODfA 0*a fa3lA6NpO0 n *$JB2ylP'xStڪJ̲`٘JHS:K~iF#6b44DI4Kiw|.)d2d&(baqAiBq@BlW6l~XZ$9DGF BFB!\lX. u!0gCWTL!bd#A$ *V 0kZVXd̀ϩ ȩa8JOL}*ͨ A )_l.(Q ,%FJ|'Be'vpKJJ1+*gJ.hSFʦ* *1(bGKd4%i0p` #'4v"tB<@HGn #&/NM z2O.t.S0LN((KP.!kOmK@'QJq&Qj'zS:|(HCgrxk:-Vv:bh|i4ə~n,5vw0lqJ1>F2 8c?RFF=XR!!t 0W2! x3Wn ! pJcqS>rMOW!;AT +.ٌ),LEM"_$->7JK^ J(rB{bKB GzzM;+扺,ڬ#!BMkaFd.̯EK}BDǬRxHx*ShB(Jb$5Jt-ۑ| 7%=kN(.'M)AҔ(.R)4N.a kJx"²z5,gIԯa=~;·^2&OBl:p.;: $uGa/s6@c/w`4ckj41D d2V/#2?Na7DXUF<^G)q!n.N=eZR\.3sN׎!TN hҳ˰ҠГٔP3beb34+R)a_dQf&+Z6~:ʣ>jzBfPb>TRb)~Q~)Lv))Š+N&ԫ)wJ d/,x.b&aWEz u2Gʐ (Cv(S0&f)r iʐyo.eZ8^W8u7]E'^_%bUςLw s<[:"FtR.ؓ^Z։e,-^اmx*ܠ*_g~͂.BNB뱞>v,~Y} .f.r.-A-ڋ`B_lXM ;+E#.Q Qh H`p`T(jpu("KT7)i@@.J7*[+A ,sgJmkw&w^⇦z,8{z-&nbYlbSp,(Tfբá%YGx%, ec" [cymgfH`:zB<#4ҁ/Wv""nnŁA_UR1U]geV̵Gu-s-X*h>1)6Ӧg+ܓfU}Z&+iEYc)PK-.\--Zɺo g{ܮz-a\Λ|BI_@k."Qb a.HbF 8*邸HA(~K,'W;"Ma;M1a ^ݶWYM'3z*QA" vib|.vJB̅z>t'qۗk1JEOU*DEW^UNqOe.W;:ܶp#"!~E"6"x+뻀xܛ 2BjVHC";\%Uު^GC<ï9 kHU*' ;/ųքS wީhSؓ}ɚZj\xXZGS$@- ڜ r-?<˵ZB*}zˡ-`'`|ݢ.@ib}`c g+b`#όL<- ,p!oagkqԶR/K}yJ=ݭӞ>þ'!`PT+'(!Uu^U4]^ I L\a&5eD%hLiܨb{S?IJώ(`@F =B1SE CY1)20nseFSLEw#Vk+b}*~ֵ̊2> 4~Es nlIr.61abe0*cSLI&kL2;v  $4cF7ltPڊ5i2Û6bϞe.:Y0nf,N}?ױ{YFjٿËNM0KزEs0:hݣ?4?8D A,ăADY&MMdƅl: C[Bb+H  ]lgc ?8 dI d#a?r#kqXh RI%JS,k0,?&Bg_g Rw?-3!IcĈ 6&mi1z1C1ߴ*\ߠ?e@1ZdUCP$+AlMT3OQ<D$KNTƷB1{L6+HO9?L95U4dDIV} ^Օ7IxEXIZP ?yYIxaͦa+?&OϊMV%qq ?n&(hгۆMlr)?U')&6e/ 2. `  %.+8`6h =se/[d46VBD)͉DD~4< Q{qhƖ7؜F4"`ϥbZOt%璢_Z#{#&$ e'C?XhG6!w+ 蛀6gHh]HP)ﴧn_&n>>s04bRop&W#ȴbygyԈFBi7 @)qMd4 G1 A ڛIn2qaG?3 `75TkT]2pE-bUXfJ-5JVk+VȰů*bBB* 0IdYja ]+4+ "OS„@cEl/2F%\ 8&v0dDmc1`V""ɓ,VƲVfwYolBL6LÍLHf5Hc%5|'O@M|0권I xF@{t4LݺphF^*ųAI.i Pk\lnSB\ m7?ӍҍR6L. k.3}[uZ^ 8 2 dv/ aDUBRT)1=U Zi ruѼ*xl[ի񗱬Cq٪lcUE2<~ I5р1+dם#=kyA:v~Fc1 ̐u9b&S6 )fTӨG5q9 yn&. 1Ӷ[I-Tts[톯M{by:N4zr=hWl3cgpǹd hh? <2f5 :I 4R@MrB d<6陪ƕ0@A¡,Ԏ!Km蓑Iah Q6H:+T}W܂(ġ=ș]uӳAMEm@ńYkVafNYSQAcЯoXzfM' 0A `fZv%jZ ]A:W*2I#W;, 6ל0<3B3գN/LXw2Gyg$u7`2w33HM3Q4Hf5T71do'+2zI`&*xI" 28Oz ;MNl3qpKq'7&QK$JHr5^*roKrO2u"k3s e>sk!eMf9eJ7:efOVgWu@u4Vcl bgP45)C6'CxDq7Q]u^O[A@4(OL9Ms<'eRME׆2NAP^oF[z2T('a;e4f hBS3 1x^` M$x468!r!H\a;c6OwmFj&jfl&!o*?? @ {UpQE"+v0Ux`p++yhr]e/3{WAD+ Î~#A"H_[15/75*2 #&rя )2AFZ%h8HAIĥ 7"V1&+jzU5k,-1vN-5Y Wp>H5dK7T$g2OQes6*V7[)5TCKX@3">MaP)e'alHbsA5K(GO]d5J&Bn>U }"R 8CBMvMtM!HA"4"|tD%m"2)$2#$)u@ t ~@3N0U dUlzi-1YUhaVyV`U՝^hg{m v^! L$#B8#BB;9rz^f6&fQ5RTu)(ZlGH11+0b1y)ǁH1Hԥ'SՒ1YE.AJz ?@K+| *yQ%E=Yo$'U$}p~E 8`||QG6fs ]TQH:%Siao0+PՅs >Sm*e੐# f@Qu`AR$3WI$TQ3)xԉ7M kԷ#3MW\t)!@fTiƻ뱔A[~2ۤ&QL)J1czEzrz꣱r @ˎz ]A dmAnQgUfazh7N f<$2o«'Gc:zbg';cs`S2Oh} BsFG2QnQyIҦ@&XE.EF{Κ%(5; 1hS p\pIq&_ V&u:8I`6's[X5&a3Pa }@9ߤp`tA"t] OZoļ<'Q hMs9sT9S9#?!G94я1g1flD?#f:2r*["HgflF* ӳ?f>f>@mA*c̮*oQE h@Z6oqwO+7mQ3xI"znOim5tOQu|"X nQ\qτ1gYG,Q1 0yA14EVkHZkMʎ3nA2*=E|ֿpG]ݔI3q:vrx%<%u2Jfm5_!R`9OhPvPp+Ɯ#hm,ǑL F؜~%D2H:W1J]S*pmLFI5][K]F4a9=v}hnd K(2 GtA sm 0ؚّjהB(!;amf (f[~2go8 G#Fl,٢ l3gE@z I0_@Z-ftdԴIw$j>I-siN"Ep@ yRG.m䩍$D!n,&Aʎ5; Mز-wC uNH0a-%Á,kwO>CxqY0H-@Yv( lHORZz `˶e[`7C_/&}tBcG^u 7DBFG2לIs}Ezon&jOA="=`&+H$p ?B&>0C= O hD h졇1@#}8(  #0ɼX t`'LRT7HE(<=4$4j G4#R$2ꋅ¡./4!,QΚ =cp?*p+v5E i̠#MbVY2㊫ b˭vg-` \r /> `yhP~~X{lgX`&L`o p5Tsؤxbw7o!MMcO;5ѹLmJ. BRN[zi^Z>$z ]FT(F}6_{ zzPNŸo)+@h8E"`o Ɓ0rJqF|H,G#l(k L6bA'"2P2 ; ;TCAa ^\->bGiBtQ}&;7Z4+gV+HVA]G[nB%H!ZtFIˌhr -Ń \@8lbRK& ]y'7Cb?0$nL NthDcK@'Љ,&5B\@.t+-fp`MPeh qxle-&xG=V,ˊT&4)IFBՃO9mfQBH,l$ ul@QP {R8PoFBeFrZƄ"T+m+:JR@#&ZI%*M)J3KuF%A6ّ- q[GR3HtD ntHEYR !maFFF 1̱B7BLմ Sz>+]"O8S^A64-IE'DWͤN*!TވQChoRUCT%.&M3]'{vSm$uHe)2jv0,GV[.1z˄tW+fx RWU5?n(uUE|Oq m NEaMmqBFjEObTDb2N5\ra4щ2m7VJ5 G+ʼnFܷ16]&(B/y!^R f&cDbB(CJAE|c1p Q ) ۥ 86񉊨Йx7k*y5I3pG>6 *P3sϸ0[)V!3ȉ  ҉kqb r#DR228cRU+ᰗ;I=(@8ʟL0XocpK9py4a9BcTP<(?1;B5C5Ȅ(04LDʸɟT@K, Y %)di`2> R갚ST2H̑l!2M!'Z:   ʫ Jӡ>21NrEeìC)K /l%$A C;(,*NԈ ո Ur|!  = hZ F֖CkEiF h,Rܽ80VqGh9x @ vd#9M8"6߈##}B) ԰KS6g;;g)<as0g,9po ш$oPr*YO0$.2!ЉFQ&3L@ȄdZ!SlJ R\1Ӻ Am:4H-Aq:8/?};KSӫAKۿZ)ZeK*(S*OJzbߒ6S" m RM\$˸4 BER*MJUWI@5ԓ/f(H!ڠXO8P4 ۢ4%Dt؃¬9O l Mlr?r;w4fYMޠv/ 5ZZH huvpȀhh q߯ɡ Ј&- 0"67B Po8P!I$iOcm(9݃xBs60+pBT9˸<116'~:0۽;p(ߟѲs0v~2sd?sʖIB >8 |@dJ7˲B8LM]P`Z8Hs m _ΫҫbR#,R+Ep+/չme:<˳Mv/4r~EklwkmVgnm_n^wtOw4\\ k)gFYuU8mqr~G,.lW !Buh 33,G&C1J!gȿ(Aed %OO/@ /̿FJj婈""j j}juk-@DdRrAD=r;TRH1LRYʉ5=ߞ=vH$e;NL,28 j4)5P (QLETJ [4w z+'h٭FMSr'vݙt<䯛W>|˔[CVC?vl]D*8Gr)~qs}q^=L8T"RV3xGC|th0`?1ҐRRlϐEOܹ8 H0$S* Cw]zIa,(cq"wDp?sd!? )y#Re4w dG-jbҒ)M%rAanHCi?̪AtkE5Ng]v8?[q1jFbK`M}p@i1 f:e??+8?T<<T0NA?Qa\",r:#5NI7& ,BF)RF$M>ZI喥~?$?<49~ Z(s)z7$NboX(Z2BV peMЀ)w`%V V:%L`CIRB KJ@Ǔ'?,ѭ=!O p@`ʺ֕l)3\R l.sZy@`N _<0QLv!@5,I8P 1sk0C F P8Oo3$L [8 }aCG͠ <7SZw0chC,7ЦMX-%ֵЀL-Ay2A Ťw{XlĉIOLGөuA?qv@:Ȼ'TURJ%.;`:Sʄ&5bL'CDNwS֠.m/%}w(}j?yiT›ǩJ=g'U 4 3cALCSڴ4m X`4%NzǢ!;"!SBD'C!V*Ck&ˆG-?$ ~L+axPChokʫC" ( ̈́Fc{ldD2 @qBm!@5elܶɔR8"@E~C a4&L:1p-.eBmei8$cD!T.}γ5!%ns)Hm&c4S 8!p-ۻd*r"/L"\V hRn)ُS$%N1 h¨,,N}V'=빥yM+SO uZC(Bj>)Qw%WQMbZi4V:!uiܭk7D#9@ w/\19iPr*Hȝ8%zE˝loV_&eIڀ'|BlCJK!"5-@r=DNŲNfKaqXVTHShWpl[ T2[a,ypGYU]4(6tI# sFCJO y?4evd+'Wy͛i11hƼNB㳥LfSi6F Q VdsA@OPOJng%71]X^O% !+@`@'d"vdaי~Jp2w TժXY~#lrFP}K2L=/0@J3#|dolh *M2I0W:=LTQ%?L=u=Hp3AS*'o(?"){@hk%SO܂@~ģFN0OD.DpDJGoܢsN%H]J`.l/0&lsNGBx'*+!ZB-5#ި|7/C?(%97%*>ޒU~+ԊWbBnjBlL`B<BRY *Mƀ1#>c \Wu2CP2]7$ʺ~ %||`"N V%/{ 4P2`(4 ?X( 4LfF|;5+;jZָ7k6Ae-!vI2]6pP"EmjҢdP +*Ն.le[!ND*يJ 5,A`/c`o H'4$Ф&88HA-cs[‘$*mAJ7%pH.9 =>I*t A=oOT^w=JcJ&6EAèT"4PzG(g?O q:gP#^uTV"HY uVeE*Y hݢ?UlT BGIJiپ.|A1CP x|B/'EP}<$['8 ~ {7 ?`5aR$&ƍk%#$p.I ngYzH>t#@H5[q _)*biLKP*ozHZ8 ŴA}HZR~7T[=PD}jAfUo[hVfK>n$1y%x!h &sR(es)-) adc,V10ƱXd%[Y` Y :alJsՖAhF3[@Rs)- װn pvM(IզFRrjT#V%qHH l$a"ǀ'$蘁P,bзe?L%qsZdB$ Lp"uwך)Ew^dk3@۳%)3'?g@)x{1aT*2[4,p1A)tKzӗ8eJRl3H uVVdi岱i~ Yyg8 *U,?") r'8[vJ(WVʳA h K%%_J_1=Q`'` bQ{: { H6c]=ؓif زel̀}BvBnT:;+qd u ^BR.Up(U`KS  !F@B&`!Am"+4&g[NTJ!@ LFJ@&j&KJ؉XL^FI/uzK$`(vHvljUdJ< *Ʀ*~bL`h- p ` P Ƣ"GQܠ9o⢞B+('hV 郥n*Gup #u$)J0-Lc]OdNg<Ϭ,ӂ`8 jNb#p1. .$Kc*ȍ@#@4XH6ئq6 )77,:+no\\Ѕ;#;.K@Ơ0Wx #"4 4"!M$Pޒ)("%B#l TE+ƚp Rmq$bpt K4A<i?~r#4SvS tЈѶ: SF)&ONFܘ#묶x3:ƢNNa19$J`Fmb&Dchdt-N10!s-"! %Zr[nb@:#F OE&$Ntr BHam "n4Ltk.u'kHê|?`)@+߂膎*+i =  *ôL*i 6P+} @ -P @Ǔ6),$M8 sI 1wr=/#°d=vkQjRK(b;*,:HXQ,4?i+k( ^5TKMJҾ8P7~sb,8/ct3 .(:1ó B0:5e [ \3gt-8n8 Fn@?] ޱ <; I@7]J:A~ !xEb}W(VWhҧ@tY0TNR%O٦$eTo#Fq˿؆pj'¶GeLqt8KtN%^̧y.KP+LgbL=2l=ɖ*(e$eR( Q +n`|LR=ipA.R#lgòۜ9<:g=0umk#J. 9NW',z4+&C]cBܘM.SX7 &8Omv81HcX-0* y3B4@:4ƕU\{eff|e+=q+`"H_\1> &q=&(cj&(Nɔ$I;l7~.hց4hTbT6֪JFDDFeSD$]doKAhV?VHGIjX=O}+L['eoĒ)>),x Qzs 2+ I+a*u7ΔL+L fO QRc Ղ֢_b٤RrQvX9RCs)f Ǔjp"NF`M 4I,c(-( 8sƭse]8"U4 aYr ( wb. :&ZYy+@IMbdq< nhdE. h6r geE{DiIm|*9gEr?|gnf!@d&+qX~Oj3B:M\gc7_8#8KӔN@uKj %h.P>Txn KXHR0;h=NVΪ*UrbF=ݝi><&&LF]|;ґ)x5Ficw-SO U$+ζ[?=@HlVh`R$fogDi ^SV e0zZHHh:n+RLr;8^:+ڤMB-`r_7D!Ɓ E$Hpߐ>4ҀhѢX6"DX !+WI9/3I9#L7IՆ 6SI><(ߏdpa+kuOgΔڕ;aB{1c \d]|!ԅcB_BȲe)+#MfHA$HAI#2ܸ i}!ݿi}pwsE:v[<RvN1˗Dz!bJ)&OsCi`( _/?6m,m[b~ٖmyv]n:5T$I3SVcP*3c|A?@R8PYg6r8c8Vv#*81z\%)"lfHd?_H[?@ H[a&OIOU#.)yamC%z`Xb!Zff BRBTW]eQD%pHM4 *W(G!3ئħ/ay VN7]1J7i?C2aIQAeTWUJ|V 3Cn_ dHi6%A#|>zTA`lKn7 ᠄ӄ{imf|:on}L`.N.APW~I-dJNS},z1-HOQI`'[ڊe.t?u~h.w*!ˋNBj!fX13L 7ӰuЀ\^m.p߈,%1NSr2H9w@,;puj։x<,žG==3O|rť.񒗼TRǽ@YM(ŵ\lZBR--D'qlӡ4NtFR"imHD&79"p@YJ!p/PiA# V\05"i9+7#Ԉ2Y*)%f0K !/kWVMޡeJR1$!kW=a4j##_%9%Kq~XύXިZ2ǵSgP5@ HCAP8 Ә˂˩dAAD .fUsicZH, ƙ,< MLSuTĎ"CH2!dq[,%]0B ?9$RgN)FQaPJ Y W5edD/B ^|f Mnr5aaT4_Xv[T9k6P+g;n`BLg '/I@aWHS\J4t!?V#W;lt5]X7jl@4sKe*OіL&a[yMr7pMUR]Q^T+֬fվO+[8b^^7%Q 6q?UJ Lx`J a5acrqrcqCqt@]FL` {2( b6$?s7FSa,yNɒM^bTaT8EGtDdRVOe " E AuT<wpup@S8PoW`fX$W{gQwohk3s2cs5:s7gxR/31)' oY)qQw8|3[>Ԓ;!&ssZ8j \6'{'7s co#IqHb?0 (G+J``t˂_pp g|b>@?kA..P(sTa?"`cP 7+e^lP,8cA7Ərb&R(qJ{ZzB.*",޳rW Qf>d_t1 lOBTU$IB#c DW,ɒS&equ]@UFȓGxTE6\g$0qvraf,`fxhh fFR>F?P .) xh5ݖ({w.6)1usyȵ8}&|#! i6"rl(K/ iMUx$To3rd2-+a6pUP Ip<R惈=Fc 4맑qA+6`t1>O$C r *>A_Dd"fFjy2l=uc$n !,6rd? J:!t+jT]QEQF?( bdQ~qIYV@E*3lxzy4OWVƖah` SrXBm r^_=괗T!D6y6skB#X7=q!*p E*^)̩~yc sFr13boȍO?狺l~or3P @PqPB1"K!r$LGr 9r"i:;CR,,(s Ahh!ND'#zaT$%67 1kKcR ?=ShޓP٘lq}Qr~#q:$1)(%0Z$  @eNW2H12-gؤM jtbyN3RT*WJh:=FYRSEQi;10)AcmiZy58ѵT7"Sa· j)z$"bӋD(Ux]+a}F^ Ɏ7#pǣڛH,I8>YZ,ɽu37۸-((5 `C! *r09ƛ,ZXm-GLqǐyc7{sx)N4Uu093u kRX@5dO_hE:0:[tiM>K9Vigɖj<¿J<<4vkHd@rMPQUk{sČ7] k(" m@6]wj(BѢb6NDn@h(b}Bi`JќA>\^_ma><.TAaɄ1F u'h-$}-L `ʝ]l4pLZ3p+ >OZlUbaLA-LaXqlFPj~sHSqAat6j|:(=7.ڿ0z|'RAU}uYhsrOuQ35CgotF49SЛ+,V ,'lb97˥;Cꢍk9Sjwdӹ44$Q?wj;dZ}Jmb Ae+]{wrirPX!9Q\AO7Ĉ, 񋳩ȣÜXO4k!pXFXmz*M X.؃:@=| Yٖa)[?Х(̤=CK-G(+P"?_=Z6es u1GQ܋q5B!zP)A]dDDgj(a`N3"wuwBSN3ªjHk9ۈ=W8Xz62mF(*u]L!xR]炪He >x7ɸOO>_":O>r J8 -棻7؝عu Lٗ}̞7K7}б*Rn(G1s( `r =31R@" GaXQrMFZ ۥ7/<7 l%W%uN{^' NW!\Wjx\y=w< 7/oȂܐ0 ̫A @qcC h!¿o>Z` !\0"+ 0@H$2 H)*&d-H%eJ2$aJ'%TRKh(%(̍<ʨ^Z2I:J`8Sj* kO>d*}ʇRBF  'RI]0HHx)0 ("2cȦlɡL1*0xT!!br",V*NE+bRZ^Kb/l1iLl.$׌43..i4~$k 6H褶kVjaA)1BS+*C 4 jJ!NLMA%A@Y ꇮ2H#L_UIM%L%,5Lr1Q|̎"7<|OAp(<^O7H MRZdtHC:(gybIaդJ C`i\S_I*էs.~&,ko*$lG@k  st+oY09E)G1P 4kfkPe5)pXh' QBԔ@%&-Nb"'%pGT>`4&9b$$@A`#VJTI\! )n "gJ(&B^}qv% DV"RCF-')͢d2C⪐$r`y}E8K\f p9&B̹l# 6L.7B h0{&- u,H0%$209"Eֹ%`sX58u΃p aҢZ|ZC b/( ` k:-ōJʆDd@ * Mנx0>el{ e 7y0#u%,e)i[^ tiX{E%IJyFCQ,KUVҜ: +%ѕR-2lT8Dž"[9(A3xA`YY3v?~(DD"M06wR>*yʎ8$33R\!A0qFn`,^Zh80-) ?Qr`NMaAIW6 MI+(L9#>眘.3ՂF9sLs@TuQJB1iKQz4HDQHeɅЏ~HܥB.)mFU';M*CS3Ѥ&+ Rydφe IH\*ߔ%UPjb AxB)_#(۔#]JTHJ=xc]W٬I7ͫRi5L*XbigW iyD-i W^.T^z%BJiZK pNd0dHAKH D_ZKlʽ099H|F HFT5y-]В;Ukt  ,5VD,cQ"I  'q4,&E%Lf#BK| `aHr(< LKϖb?l!tԈˠ ;OKNLCN@O@A/YR/ER۫ '-W_I-RA%i:*:9X933=+6 ;:cB5$*ɸCpTB݈6|;"̻24lrOQ%%óRkQą.sé!載H Q.W g2 2ELJkrR&L3蚅!ر8P[1S!!p BԄ Q,i ?Tg#RfQ ʎ 90ظL{V lҠS@UIODG,tUi[U %/<9RmmJ|U@- uhAޡ$+;T6Y'9%uM3+4/Q؇uEYcѥl%ig1q"SR f<*UJYMRRIق_Ҕlj]`/E$ &;sZ@b2-  E!^C13[-Y,H kCea\9#g|3ȷ37Џ NT(J)Υ bUrĸU8ԠKOe <ƴ<·i]?F~\Өڪ1"LjS 'φ5*^=YqV8(N 9!eî`sӞ+퍤Q1?ʻ<X_&ĝb4̈ 0Q.гWcNԅJK4\^"?y (3KYSEv.<  XBݲF`7UZR0q%ɼTj%dO\z]#.HIH7Є24T7 0%R%BMͷb>(/pV5U(ڨ `0蘀xc܏;NA6]\v tdNҵ dUċ]Vd[=de26ڵ66L&>qLS ^<^Y> !$LWegaJ_e86TJfeYSBUXU*hCۉ ٱ09݃K^3cgA5hny9 n鉞8oI׃{zXU*57`)Zjw&z gUA̛:Lɚzbi:ٯ&KIM ?g<̚Xh8r'Ώ{ P.^{ %0v8g]ye[Lͫ;Qs.6s``z`"gq#) :Ht^4gk p'v̀K>s  Hͽ[ڌT0xe`H]&ܸ~i? 2UNy\+'Jcu)Pm>zlA.?w.( &)+C-mݾRZϪ(<& %&-.<%NVVY@ uRu% 6Q ]aZ]IvCh7Q\DTN4D*-* ނm% 5vR@19\ɔb騱#ɐ@˖Xxiʕ3 Qo!^e(П^SA,X0t,%eJ߬a*U%NLk eʌ!]Ĉ12M\+w0B,X. @xX1 W*QRjmzɹG!x g+)1[ݾ-⟈"Hv@Ig9VV%;ufEMKikض~QZrJLқ.Xx#6zfG[mж!¤E \X/7tIgF?lC2Wqw|Yrywe1`qfC@S~K'B) V9U?44@ԡT/.?AA5hTJ)?8#PM,?;TCjLKB.e P^^%&M%E7 'vp~ghYpt@>2:|CA։r!^zeV <%%U;SLBLUheUB\,F XK0EpqkZBu.wVGc_ֺKe:c%@31AgZ@kZZjXE6 mVC,7Lq'ƒse,;XZ:&G bY?'x^%@mbۂh(hG49,baYNr"74:^hf6!@XCj4!l'4R5C> UFB$[%L`r94%`M3.}?iw~@ħ;ݩBb7FIy\5BFgk\F>)L Ѻ襢!e޺eʟKN=T]TBxB!%a Gd3Xň*9)Mi!Kǒ<(p 0!`p&XBFAopCaBv!h\i_~HHebȅ|*BA£وJgFi HCej8W020+ 4dN1I8Mά1}WFyxj7K%A&51=I5˳GeT.YH^JNp}k E˓ŞM^#?%lW^(.zK ҹB@uḌ&iILZ൸$ ųZ<-r_yK 8q΄pgdCD$[b L!J#ǒ%!' ?  gGb\|D%Ш *BG"B4ugzm^# } G{DQVmo+%\[V˔<ña[@H=l"(.> BN DR2 n:I ű߆0y>U.TT6Q$(ӯq+yo199\7;C-"fD/㩮Umے⫝(T~߭d&$xM˷}U V~w,*Z\T .Ls? ^dN]axeDe`)\@ ]FhcHO5Iy@U,̆)Pv| B mVL l|9?Dm49؂/BvX!BY]e] ? ᘡ9/قO5Be-lFo!] & !۩]?@椆B!F}ဨoQqH@¨ԡ],B2 5 "P,E"ZL@RjU]N三^@̉_ &S^"e 5Muh*f"Q&q6^c>\&A "hR8΅aOH`ZIĔBZǼOKEB=49˃jF9 Fp9!vaɳOF&8IL#M_x*]Xt!C\r,@-ڐ`ϭ U g|0r Z `. C hႦ @?@P?pJd IAYU%DY n +G:Qp QyBQ!aꕛIR,Ŏ:V<{ϐ<Ȫ b]"bh b([,%RUɬb썢)j"A)Rd&")1 @C@CZm0 7&bh_ GI)*JDpGxp٦fmJi  QP=UtbBM_*E,FF,`@~TDML QD+h,Z h.D&-/@֫O@f v&f@XpٽrݹAL$k 9$]Q ̵!(ZeJv>˃xpV^ާ-R0  8j3y񎜠5Emb07fbZu@<ԺGCaBp7Ls2D*H8j$csvTbxϤVL Q*ONq8aĥ1P:.dlwEn E8mqn}QU8L EFQ<,| .hbjX@dBrMX !j-@JV]/4}؇z">d(^1ڌ.5ރ("4#bVZ NRiI%%ҐH0CNpޘ&S;' cC`<7Dbs>c `@b?@+@(Բ0B0.L@Km/Ԛp cS(_ZtjAG6m1B F=O{LvzGGIpFũmĸxq~W9qiڱIa0Xaqz ʅ#QGļKWO04SQYh#{%IrMА.$!2(w+v2!(Okם@ dfhF dB$$ud,2CH['҃tSDOS$ lZbLZ9 3W31]@ c_/:DD0}p~/ 7OzFA 9={(tmMOCsFJIiر_R qJFxm1Ckǃ5 xdKBpf3)/ t]L:Y] (CR1HaV4R,=Ňg)EӈH+SRp3!"w:&z+k&uGmKsD7B::7zOC4 Gv7F+Ltw~>BDAt^G ']Ӣ渃;HZKKGxi9-xQJmxjws8cĽeH3/S/v RPhЃ:a#D ʏHnhOĿF9\(C@1\8p04 !t(Y##YHfFNa^s!C Ǐ4etAaR _ҤC~4 }.`vHۑDG u V PA t[|E:"G֡eɇV?Y,ԞI;.}Zjeϖhonyn"Bp^qn+px?O;s֥3p˿h@ׯO~|h #b_i>]n@5F:@ [A 0cBA.E,Q#[у3 `Fh4 % #/^/"Jq,JG% (X(.SH9Ča!1Ts'NhFlsJ 2XdDT^lY)Fl%k/l(<] h$D ;0G q > TD1:G( DM4QD{dkh,N+ 'b>r{ǡQI"q$ 'GԲ(\L:L4EGs \ė(H"ȅ6S ;ˋ8K0h?#Y'y2  *Jبȉ**i|6) {e*-kK_#.1ukcјcsʄ5 b㙊шldcL4 n‡-dA#`L4Mq.|Q#N ⱏi,ddKvcb:1OϦ8gO$}~v> 0xJP#|̃2& d 倎(l R@Ӫ&"nai jD!%Q#Z HUMHiȷE[^3$Nip+QfSJ0.T:aI"$;I䗿DE/T\I c2';)Bv5D%w( @".>HM&8F>eT/(s߭b{ބ*RaJNp%a5bhՏ.ʒh7ŢlF%8oU@Xj R"a%HSx-lؕ~-L4-qf*F1K!X,=Lrq1f6ĩ81:- di䑆$Yj3 _|[*g[4 -"09Ҏ*=.:I.ryixm93{װW:F϶ lELQ")t 0TGFT:SE$fR; DrD\cL/y gSb[.&\8 O״RF$ jQxs-5G=R HN 9HkWIWgS2$(@ɉN24(:kKD`w-_"ya&1L5( (! f@z@+ֱg6Lx1߰NY. M(Bш7D*q~Hlı9*'>l Am찒=[0 dO_1gX\(p'_K(d$rLH8':?̓X` {hMh d<ѼDYJ^!jSu.%r8ש|D !2suS0_%|KϙEꚍߣbcݗr K-Y#6o["D0qq[ڈ`mV7=NJ8R#ej~B ),-`B.RC^N b(CBJbj!D^6n2L/D(`,h,V$"v̄`T̥T6rNN8n8ɘΪ_d dHM;$odLmBJfdFmʬ>CfnhA "Jl?@)r`.9 $$>ż  daE;" p&6dBgcg VM=OJ1N`b\ dGI k$"نsQDJP'Ldr##v4"N0``w B"+W)D *)+-Pᜂ ~~."P/*c]:@NcRCA(S#6_.dP$%_|_Bo,Oc\*R"cE^PC02mN\ꪔ0ʨJӞ&9 %9(ïX䯠H<E~]F#\`&hQ 2dM8C@-O fPj@ ID&-`ѨcccfC8-:OF\4Q> qNtKv-0'L nQ#:s 5!D~ ؞ $R %4bQ dSQO "‚ HXX(Wbv.Y~-3֢ b{- !pRl,0S!EN+24ROcsH`lTb 0^#1Z%~0cXR%3]^Vo# SbBȈbˮ0D# #4n Xf\ da NLe-kK=PҒq#vRd PS40"Ñ:@i@tf-2#:/N-d AN`&fMzi"nQp5maw"6ozItCR{ILx3KJwMQd2@ܼ/WaF,(o:iG(5.&`H5Yy$QI-B-,"(5P @ 5j*5PLJ*2JD5AgZNFrE_JZDZ%1&_\Rpp Co(cFЁpFkd?FBҞr; ?>*yBuQg)/eC.Ě%$o- P"ʔi T[fgI7S m چ*nc:R=(S>kyĔqHQKvL5RxDo5{Q @5@5TDJnssHGLVDr w.B2SH#`:aF .튂".b.b,5G:&. ,vUZ(, ,S \u]/3nhhcs`42F#020(F_B_A$ m#66E*Ɇd߷]'&'[D E]'}?6r8f CvFI6 NGMiˢ#֠Qlg"">s/N bMtiȔd)r K"`IKv @—muR@q 0B0FiC>nDxga e dq$\LQMVNVeiBtN!Q"da&m N`̌gq-K4!frhR/V@1g_G/sNSsJKlXdů[g0?pj>ulKK!:T$o 6 O$8rS٘٢vFU:"0K|w%XkViN @ZT.pG"Yp"ÔSyKky(բE-6[5ȅ30K*2< Y;lAa _w,a1UA&Auo|[y8cc~,c3<.'3V7pccXee0 kR0Qyڧ.bggoq<@Eb/'ǚҭhQeiXLP ulpZ#r8Qͻۭ`b=t?l"t$qb!p)MlM`\Tӫ ׬kqrB_$;A|k# w2|{E''?k]j7W=V/,fF#cL?iΔPtla|!JqoG S뭩7c+дh}Kr PXZqN$\#` ڭJcJ>qj.#!pݰS4k4v/q~$N\ (1"QHsb?_|Y&_bhD'NLᜃs^"\8E:!fw ߀hx(>[kC;b0YX` +نqH7ϕ &!Lbc$0S02ʒ+[d?XTtfZG*Ov톲Y\[ Lˮ@_۵I[tuiԮkaݻQxn"oο;T^Ӧͭ!E_ý6?b@%(Db *i˅`K/1N !А ?Q-@& @%vcNSC9C$bC#,?$K0CIZtSD$_FIJ?9@9Ps 2WOY/o*TS Ő9"4T{EsjP4֤)TIG,q!YPaS Q46P!R-quRx`p 4PW0k0 LZL-0RFsjžl5@u6F@uƆpf49*ɈÙ:X<jaUdnw,@bCE5qt"(![qj\ȇPѵQ)R!h2N HH':䒒IN"A>: JP$-A\!EUʲDQ@G܍d!1"k\KmNI5wjUrYrXR% 0% Y8S3 K[wU0Ӓ@߆exS"ǚ 6p耼jkR(GSAq+$5I-ba w ]rA6>_*\3)|&cU7)CͰa)fTgjU!#1=_DYqEf;X'ñ1MSW*iv+R IB8 A+5"H D,!["#hGs2=(2O"-m'h1C,)Mi$A MRl5)&3200(e׺!eUvoڛk7\jyU A׽\pKuxU(C bPd(GDfᨷR@ &"u` \0حďa m:T&4QTÌ[l5{әq:sW!u@WݏXź!&;>MsXӜ')Q7C]@ :ӟ9hH'6CHJt6lźqiu#&9*{%TiqKЉҒPN֏,׊vL r) VڛOveNLas'7bT^JRn?_IMww=ŮP2މT^Lw#m];2@ nʸJoWˢo;Z[ԢAJ% _龸< .rJ7 "Fahsq9VrTRT3rW%Dq1q dfAE sVYE64T9 #$s . s ttB5{! WVs!!C:Byjkz&"#2#GjdKS"d96iK`w.~gyC2v\(jfjVr%Z$4#3"fGQM(Ek;OB)2)yk;)\s8(^V8EkVM"%DIOA}Fnm7}4ݗ.Xf}'woFA6R'pu.B-/AGS*h0G1="C?8VQW/&qel4*SdCqe4s>b*ց0qG7׈twWTdq1qD1GeDrReRTEy1/BT!/95E!ٙi6qxttiAuz'fY'VW'~H54ȃ/yja[gH87jf%7]XwGٓQD. 4FDtDf&+Ƨ@ 欦y~" 1x@gۗ}1-T: $sͤ5j8+̵? z=ҝ{kM !Dsq2@F1Xkp^d3e2d -0ǹYZ[zladrt1'PJt1 yڇ8vJ3* MѠT6CO~8\<8c澵$6م7;ɽkBx͖[Qdv0|9atHhy.lB$ܱˆh͙R%"黆br&G>!ͳ)q$qOm69zMg]_.R+$T ֈ!0xTg˙A՛B^7O>ced7 F t1D sVHQy|0 :C%Eq]QwtAGRyܠH'h? )R/ [9sRs@ōdC%!ȸpG)cXD5?USmA(B  h>Lpn $ :Ӛ苬UJVsB'j$+xJ:JlӱT0Y%`l-^K.誋/- zL8 ,{2Q2{FcL$J"8: 7ႛxx&^NY4QN0@N$|t[&21)J0dTT~ n #7 w# ·N('u T}e;M$ N( #4K:w T"Ze-յwCUeXp+,+Irhk0|P胟[µ?eKSV`Ҏ6zc~.[j&֬5lcgOPc:) ! K˙L'46OXiDN Oi&'13 4DҽX@=*ۤ$Ԅ1='O|潧>lFZDYLR&ye\K˜2g쵆Xh(@`7DS> aQ!JQBF9]鈁)bVu*3A?DcjHiXd҆F"Vȋw>T > SM?5YEVG={y"1nD"ҐДI"{-p. ."HD)ql,7ְF@T 8THEJHtu*\R~tM$̦2[V]$xrR\WUmluBmWֳ v%lTfz-=G/Ի̋2γΖZ 3IfxVJNuKͷl^"hR}{Pɗ`g¹YpDYa> <9pr8NHllY6?^hJbUxhLTyQCVѦ1(kaĪ8ı8QY|S4f0KV=~TҘ3YBGRE7~LĎHŊio;աexm'\b#(f$ϩQ53,Ւ$3[Ey IS\˛ȖX'r,lOTѮI^xbd%xw-I:KP&p /UX_g>;?/"fF@06!VܬZ>Y&G܆=:b̈IeҘ MD?2K9 qK#(3*#*#򸮉#ӹa88 !*#2yZ=9$>+>+~ںx L09,{5h^dIxP%4 应Z#.ٱ;&ZLQdRǻY@X ,A]Cab+cB7S((. };i6xgQh#ī`ﱯِ R)PXz[Eyӗ}qźX P7O)(8 2b8sh !c)h24J#4*3i83:¸2#˃?!3{$YM: "; 7:$px=KJCқ0 ˜a >T'U3{@!Z.$]2⡔ܒ^BC)ZegډHZi^㊓'F"%r mZ :L ,lqkC &sZ/7|>WT X 2>S8e9ZF9?pF99-2(3 C*+2ɐ 2"m %ӹ P991D4{{rACϰ;!.iHD@6IXX#υ;ΰ蒊ž0|K*$AU/@IZ؈qOVI 'E)rЏd-/x ۹5JVBY"0遊q2Bzc+Q`sʫ40_Q. |/`ˉXʌˮJ˯81rhR|j%U* 3zXѠEvA--- ?| )9ʑy57u|ͬQ9 9EG2o-* T,{9$㬎|d@5#QAcBz3˛7t=ј;U|A c~5bdZBa}DVf3B›0/tL` !ܔEJ1'u %J'^<28 }-=XmS| ċ Cb^)<RA vd{RsU/P7hSY #)𻍌*cG+됚)"JISst|Mc2$cZ I9o#@Tm媟LS߬(N/I%P:!QNKUG:?˫H09,Rw[Rր"wRKWS`hqYyQD+*Ķ <"+ 䑕ɗG*ܤ8]#L^]F +?d;浶Ui^iQ8.݅vT\$2sIx^[d0V7 ZԌˠ;-X Ñ@GBy_ C2JǠZZq8,M9aڌ{#N1ä,8Sa˾ڸ %d[⾅cLq%4Dak,b&P~_ڨ"5pCZ WW# Wei&A4@TקW9J9J7A֮H.΍`]pQ^֕ ۈ0)" T| Р[JVZDjE2>0SҘ=)󿳊e6Rk]FM4:`#%b#?)Rif(8%Tm^Gp+0(6t%[ן.PF5ӡ 7Q&&i\9U:!aZa6BhֱgX&UAFQd3W^;>9t].f5nR.>" MP/* UTjOZj RZ6'KXft\Z6Tka?*HKӚ@H0> 9B +х++Cl>#O͆Uu 5EKQ^fhX;[\%\QZ VQȦ%rvnFw&-.M$lPP =D m#4^SuU^߫|I6\Bos K %h⠌~](TspXXA?\ 3/U6>q1Sqex?^~St7փj+9!uu,hP%R 5-EFC7.hydqݨ@]d+QW ;b^[wāX ++(tՏ]w~:|G?t]sS=L@(! @! `AaP ?0 t@,k=8@9i͆ ?y$Eu$G8vG2]1!?ssqн{PC? шyLECh1D>ND/H̑IVTxo';RF #LmTL#|#D2yj)QAR U9D"A#Jp(Nt!mɪi3MJK1,]~U J\-WB$,ctMZypGf[@r9@Bheq|D F`,ˎB0`ο1i}"s>[X>ұH W Z )D0! H8LJسBiM+@`p&5Sx4M3eyQ #  t$-h>UВ)#E#8l"" Һ$Uд-T WWqtdBIb@nrt*UH%*9NRչLHң*e9j[6騼(&c7YU}yȝ2M3 ]P;i\S&^N-oy+\ÄmaӜ&}d䁺k}wH_ sLg< mLcOt;^@4t8'$NxT`Ox, N@@BgLJT)rQMerē'HKśhA,BZђ-k:1F6t!D+F:^rTMY) JlN[&6X tb+%(AA1>';n,Ⰺ<*RUBUe*B8<ɮa<1bcVȊHIǹiy88 qԜf7l.ڸf yk'ѪQ 7Aݜx9#uW  )}5 Bz`4lh6ĽMl_@>Y.NbD0  82)M 4.ϸ6E; 6p- 6EQJM7*ُTDJXIUֱɻ Φ*STF) 2PZݨ"޸TZc}S݌f@*9Vo-NE1-Lgdx f̅ek nDlO]8pYh 8}8A}GB)xT޽{uB|xMLx!v![x9L5aApe[ϠԈHAP۸ɔHLPۉѼHO O%ۿ^b)͙ےY՚|K-K Ieؠ씚(INXE\f^Q`fh_&1ї1NQ_NK_ fH GSFi 0`bE 蔐DQpV؉ vˤ=kV#۹ppW }WD|xaZȈG}vٝLl*ۀzmLH DlUЎb}B0ЉԁHLOL Q[#!R"O图IXmQ۹0etfTؽ2FUUetIX_",Ύt)NP_-џYd /_\5e| 쀣[!1 Ri˚9ˊJZ4*qUGlM5\^Oi#0ĆkDZm`k Cx#]v{9ځ rs6$e?UI^}ވ|j(؈,ĄX YHͤAgdH5!ML=)%'I#z!VP*eP% .~[Qc^UVhVy%iU)Gl&0EMDUeU)*j%" L\b$jvŐ윤EdQ90`]p)=]p ѩ]MԍX( q`or(3#F j*kX` E͇SA' T!ץHe}[|Մ(CjHʄ'H)d(ϐQ߄Ty(|)h1PA KaٌhJeQ ZF\bMUD_)} J/v1U,&2'lio 40ԙc1EE^Nԡj"Tk>Vnk `~ݘjо˧^ȋ?Qj  #ܠjgՊӤ^ ?A"zLgzuu7 2k.QHgOS".ߐNzd~̰ZݞϰukLT]`и#."؇؇حICqUn(غ Uu.mMQEXZb-%Q -ejnfПZmV|I}inV\l4flN `DiXle$VOU⻥glkڦOi(j&moA*c2 ^&.XNBAAq)@9եT0z꩖H}3}nfTj!g[0N0:!l+b+9e]Q*k+m?Oe#hs?XYJT4ǭ ZĮ>tVJhUkV`U]_[.r^tpifoR,6mNLIRQ96I'gO(r.k:2<]@hK,į>*p oB"@O~^"3߳iAbMV%vqYnn_fܾ:_%7®<%nGɊژZ~q%[k8i2 |O#NR3]DbQT)ykV] 7@WSlFW{2-7-5r89^uC4]׈U1y8 6*veWvHG`O_Tង*d<ݪ޽0JHɞ3=:l3UUPic+;0qYvzb!uZD%U1Fwk1"K妥g|fFEW$ez? /BDV|sp]AJf`dr2frjr40 r/nnkKoj,Yɝݽw Lj\#m> z{pv^9gפb6`_v9O^"ͩjZO^{1M+y> 'gx]P>!jL=yY 0.Jh>C_kNYQvU膴k+C?޸YbK)ābfItMk΢uߞG [ȴL!NωEn hI#Ě!/O4 س%g#I\95Vf k}ooئ+=jȲFYãZx㵲!StH;tjJ39vbeȉ4LPa H*=+MbCGd-hIq@X8ok;b)G=X^#q¿pw0+ؕp誫kѱq<%in4X ́I=&IZ`RJR S%k&@@@D(@0@b#yH&iqR,Qn:q Qp |!\@iD@ksȁa"{,<"=t@ZrJ(rKj/"K6*3>8"ȐHb%R%^2 4 (NX(C@'BOSr*<󟛜j+j,кSʲ ,0̰(+/K$0fXk"ݴ.\Mn،B8ߢs M~k"b[n"*jN2Cl.RK4OfAn_'C7C@yK1CqB:=1dK2Ncf|KI1E&JG! D )(,h$!ܕLw1l(2\I6Q6_ :! Xл)n RkK <=+;B-g=+@̢/[SZ]GOV!L頛9VV5Ԁ34kdìv~[$6XxV35DuGno?0lD{0Œ3AXpcGV"u A.ZQZTq=R$G)RbA*eP!aJXr)mIQu=G=aEشmlrIKl'< 2iN[Pe(>D)?JߨM*&d0eN,Z[Gu\["U)V&WԊުx&6{I@gj- 2A$CQ3tyMlz^1L`W^-tktHnV~E1^ҏE0Ui} aYBbEpI;"NLD恪yMns8sg Z3 |J( `$,Ȏ6¤v`"'KOS#daL2%sB =0PDJO 5)Jk Ĭ4+X"h)T^zE3RHV76XZt8F3–j(0-+u(Ȥ2:Nj,^9Wn&LFZr#^U;eh6xKdbtvWKrdX7s(CJ6ɿk1CYF.fDy &ՙ(NsmIU FtPZZ$y?c4Kd$#DH GH5N3KVQHAReo!bDѼem[H1u *1{4r ̛ ڐԔL!igMV $UGqj" ^|^ϥU fbU ,@q8\O:"E/U>o|mκnX}-`+C| 0Z;zc̐EkC`6cf$`gͩILG9ZQڝ=PRЈ[LlФT©Lhڟq0*2% HF619U唛Jn)! (-!V,?.EŽ̡i$@NKBHd` $ɬː3j@j6n$% /U^3ϲ 9uzjuwp3RR/s/RL$ 蕓l#!Jc@dY- piH<|(ʝ4k"mYbјS@Ԏ$ڒ֐ty>s Rg*dI=+|3aM=s2 Mm:FPl Ӡ $ -TOD]7xt)K^JՕܦfMWuՙ bynsx0KLásjN޴4/+ބcC zvqygRc/.Ϯg` yҡ'Wjpd(&%~2e.a%inB @2!8Io-IFcҒ$9@`,biH3oSLYw>Ck܅$f &DD&)H ĈP40(*'F(&-)!h\*b@fkRŦbpf@h ,/HcWJ:@6Hܰ# #lC%my<:펮  ߞ#t#[f c'uG{zj=E|<ܰ .D"tB,K&@V̌$Iro.p !nA(\ nnRΆdȃÅE;3Ҥ#jdM ͆&mNp&hB'&eBP"nQ+HHRM+!'SVpT$⌎-6#`jl`N ;Z'^3F)u/3/8e 'Ĝ-ӥ pj7%襭e.^,;"o! ?h C`/B񐖤lB>f;`߲,DFe'nDґ~DKbҀЬL1ZIrGDuu* tv"6XV+@W珷=e9,oCZ*lDlޤ[\B\aBd'BonB-Fm:xɂs\׆RQHN42u&>cn?:\rJ(( ld4'w-GZrtv^gw%4rv$RC,.l6 S|O}m^zP ~M{h%_RRaT0n=Ȇ)>B5Uaf(,3I?qlG@*wbb X;DnR𖝖l˄DA,T"s\hդflU[K( )E'%t{s%8:7^.uBue%30 @&+ .0$4K F#s]BCK665exP!*8 %/u;^NJ"%)4V Q;00YG?3WAdLdK\fib+)mS+{nyynUbQΔ&i4Io\V鞮]B Qd4s0%H7pBˊBu}4K&3Af~jvM"mbtalF:42.1VJ*7cjCT|VL>̏q/,{0*j) lIv&Y5jIB̦_DCS=GK#&FkK$ G$iͱ$:(`5X'>cmlqkVAjZvMه{.D# e#`/;j^ucѨ-j2Wd@{ = r rA-b,]29W-7M 71=#](:^6[*49 o#6Fނ:_g9i#u|>h7`o~0b3&{| Ecb>V!sGXٖn'9{znCфQRFIaaI^(DNph%*y.nQQn<("tGb+V*_(뒙 LX/&&kkGn7 Rb#!5c1WTڤR5VO#mF2zY6(iq5&q#}OTY{9*WȌ?#N+/T>|`?ـdrɂV-{賌a5C؀x^3Yс#ܹ'ܪ+x=oc `7>_?>_vs 0?B ` .8,.BA|6G1\ha1 !.HiCʂI%hPA!ģBAEDfEG$$I'A2#MBLk贆M_tJr!'QFyfN} E_uݫVq٣Sƣ9NmX̡~d\Z^U (Sw|ϝ=Z^X`>PpT[O8"bmpGYTg~7rMpd+D;yre­E,%/éW\Z鉒Jgd#h$JYG㖟P&i=G;͒`4v *V-(W0*|׻DE?;*F/HA KP%' Hzs^g=MjR &ĈCi4"qcbGh!RRv?I3?$p$.3_4d\mgN0 ƤX,XNx`Rl>1'; *; Plf1hNNPY<)#w AT6@!㣀fEzBKjOAum+%/R#v'rgwq(cGkdGq16l:.a:b+rLX[H2V5 szb >" <5W6bJ#> Jzs0J2K>"sh !$K8L2d5S3zXǔ|ULWLhRA]&^kR:&g}Tcw\F@0R\#OХk(I$ȑK<2tAxAhUOPDOr6ǓN26ORHy`YHRGj#6SxeCQqNbB)`@x.BaaKxX5HXHmƵ #=c!ٓV>yIc4{veE1S#\7kpCXIKF$Ƿ?e$%UXU-41&'`f@%hye$xOQ\sN85O5)dwquA;B4NtWGuH/E+9b^!^qfuR^[#9(1HT]!8S^!!:[sS9T7B( Gh8\9TH R/8$sp!? !a|Of&5eЗ/ܗ d}B1AXY7)ehVq6wN-eF?Fѵt%p8OOoVDUI>$gHUODu7_Bg XeBfwd..@y{YUArNa92.3g:1^4w6rɝt_Z#>c'n$! _2vznSIZn0bӁPɅTz{JoBF# ۉ<8/i5%O&@ 9&D)'[I5rAt_1ZTz1(uNO*-$QPlaG3j^鋒2Č$\#sgs1_3mSSt*^ *G(hGg%$_7/>"(ӤZ#`icG#dc.O(A^Pd$Іm#D2}5< [%n5Iizlck V0nKz"56/nc#WZL{(I?pAe?t3W%|K|DAi['<5T g\'za*VZ_372DXUȘ &h8E( !,dH093Vg&'|侙ew Dr]ۉbs/ :u~Dg^37'Uj9$\Z{^Z"Έ5_bR,Ab{#HBu:`iKџ7/1EA4+::;C;HQU5 > #xl(7ֻñn60UAIc8Tz?&orȋZ L?{TD2?d qHS|Uܧqp$P/hJ׵g`f7Pqo![*Lv~]I_1"+}Q)!(I,a)" ۗbNXRӖFbwBfѠfq`rĤc5Z)5DS3r mW ROy]W[uzwtN bU9bnC V#+1Aox""߳otEW^%K6W:r->$ |jF2 }G@Of#qD 5UEPY*eke\'PA‚cIVweX=57e}すTw- wq׵*"QayU{ QkP Oq d fj#֦ ` qeb;6ZچݾOOp,Lؐ]qg# y* _%u|ם@1@=0;V>4 /Y;3^Uf&V6AB@u牥L')+-M1.30N*n7;8~9@M!?GnHKMOQRNM^U[]_a.cNengikmoq.sNunwy{}.Nn臎艮.Nn闎陮.Nn&ꩮ.Nn뷎빮.Nnǎɞm.][ӎٮ~[.Nn\tn>PZP.މ*`_a0 tPaO'Op*޵EXz@[N>Io ][Z(/>I0LC_pK"[9A>nIXOu_v DNrZ p/S\O'OX>/`o @'_߮QA9vbߵ|@ Ow7_/*O7ooORn*@oO w}7ӟa"/v@TG⟊ #\%NdHqb< %[';wuXI)UdK1eΤYS8-_Rc %D#JH?Aב#NE -5JqYyב$T  E ?KjПpMOƻFLѝT|'6n( rEEL,Diψ-"%˔MرeϦ]m_QF=: &⑻+z,|\_ٝw"\פZT߉K/ +-rҔ6ՈZędc2Sͮ(̠, /RK"\mC;Ci$J4H':N *̮ybL/&쁈A$ 3npdi=Ds.H!2r0 J7 $*'z;f$Z(4S~_6-ĉ1xA*JTJ0DUO1$ +&b\R":C-z WY':ΐSaؕR.YuR`zs`@p묬 )*4EE02쵟{\HҒwZjYF!r ve zyѼ!Rls0GR۱%J8Yj͝t%yzj{RT ZHNŜO܇m%*W@5բP[-Wp85~Qy I!c;;}${R2^MFHw;FP6 E*hM$N.x-[Hl0"* B{Ġ@hP;D>pFkV#jE9=dH6QSZxČ[bE0%& cxF4Qkdc݈87QscxGH_ENƭuIpNU TUɅehYp; + <)5۸? O&=ժ|dzQMuMR]ZwbsaP/Ǖvs_߾k^Q6;Tۙr܎nTh7$(uDZ=EԌ^aEWGyۂMsI}hΣֱˏh^XOӉmdM6ӘtʉPIH4xV`˱T8d;:஌f?tyel9iU_Mx٠y˪}IBqR[꺜Z`{='ՓնdPwkWWWJJJfffsss䨤ۼ6A၀ښ)VUCDfe *\ȰÇ#JHŋ3jȱǏ CIɓ(P .cʜI͛8sɳϟ@ JѣH*]ʴӧP"eIիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ |'1ǐ#KL˂I^ 1Өo5Շ Uoa'j͵ou!|OͼWУ*?ң$Mtv荱2Nӫ_ϾÂ;v_ ?vtzw<m(*3]Jv (,$H[V d"]HiWӉ4h8<@x;9!$*2Yr;Fy?O;r%T $ɑXblpY飕tZŝUCEyhcj衈&袌6裐F*餔Vj(Kt҉U"jTDߦ8Q!kDZ}FU~:q}Iܬ D + 7Ldd~ `q'kv+feUZe$i{JܻVUsk,ѷ*U &~@S;B,;W3gUbmU T\r, ,0O[Uv ?)6U@-DmH'L+=q0N NsorpF3 ,u!%Pl=n=v[BX|3]C;NH>-mnhSx,!'[wӐG.Wn MeO, Juy˨厮,y,`굹1pك_ / Iզ:pռҁWʨwYTyЁA} XQ3x B'k DHð#wרZ6%x7%dAldP dYa ST({jz3fPZ!ؕcSb֕%ЬC|EXlx/_U $;@0~J ܔ#ଔ(ܜwZ7@>uK[$+b[*ѫ_-c/әJh.%+M4SiJnyk<:5g+J:0ds뜧9pS,?gE|^tB2Npn5JіQsͨF]QWvG ђ&M)JWҖ.)Lg*Ӛ6)NwӞ> *P*ԢFM*RԤPTJժZXͪVծz` XJֲhMZֶpmk!J׺xͫ^׾ `KMb:d'Knͬf7z hGKҚMjWֺlgKͭnu,p}Mr{{2+}n[>PuOdߥxK?R|+_wMU7y-]Fn|,% ',Dnt9?DN@6l/Y.%zK Kk]ۘXn dV@f~6A *(SYUYbejƍ1[9a 5e",2gԙ%s,:ĂWc .F.U^\x+*qy,i*Xޱw)h$T12 O~'FQ~raMe+ۚZ2K*⬌fKt"bCn~f%|ʟ>U6bACW+Ntܪt,NnvSEAm%eZXF=Vzʱv5i-,S*Hx}\Jly_V6UXlXx[Q8oe#3kGya.˲n8c.uwZݙ2YkW7GRoeɟHaޫ8,OJ]U'ew>x’8ȫfxlΊ;nb;%/3Og,#Yaog,.4sS=W5=vpB#NOz ,Zj(խβu]e8Q>Y-Ty{_JYogTqjA*YPFkM6vT[NkuϥJ\Fȗٝqz`sPɦZ6B bu:mc1@ȧT5X)&w%b:e*]JءVzT! 屼גkhh^HeVO\aqu䘎fGf ˱Uj*jG wqiq6jcʞ멞IbrVjyCx|*hhfaxZm$S:ަ~c%]j j#i! fZ'],*Ee,Ztx0BPj_Ki;_QIC]e{XdgY6L˼TʭvT{|רqxY# fZ[ajgq*GTr{rpGJXiaTwJo0'X!U +h)b{$Pe#kK*[1^؅(9 `T5K +7L6UojoÚcpU{ѹ:w[Hk̭xlۙ( ,QkJbb[IIrkɃѿ,|~|ې'&`۷gq.HXx\wW5X!|[ijK4l*W?oʫ ķB +ʲp~x$ȻuZ[LU\ۭTx ۝gl%#W;꫷` FدslbuJh+ ǃ',~\x|zTa-H m̭,k{$,* 0|#mt;l-ï{utaQZlK|ɜNle H;ElQƶ)w[x{T jXx \˿\s=w:kHh ߙ`Sj-Ȉ1&͋ٙ Š&6џ7'_M_Pó XATyjXAOܤUfpQ6lGŋ( Rj/ԋh VqHqwZՇnlbY#gFh;xx [l!i}`m L, "~n*$WN4;ƾ~3zj8ڠ( ûm$-Ν yfݐlU vp^.[A{ .υ{ri{w#H_]MYRsV  ԝEU ' ( -5@\uMyZŨ+ATPA՚iZhl6F$L/ !~6[qE\qϭh2ǀo({3%BۗÙ&0k,˔I7%ۢ}+njƵ .,FAT$Dj.=I=]JCNY]{>S,ե~§r6j>G:Vb4N@RT bR৘ [$%"EƘ\׻8Q5{Rl30Ar$xxoɓ/إnE1H^b=lBZ'6|42v'CIIGfvYf<";|)F1AZd &^&zZl4UnTQe-,EصelAl؂=e6 GQxbSڶ-s&\0%䛒t2mj`čnTBks (-J i';vR @(!j ͓G085a-UPR$)ߔZL~o*OE(ŞÝl'}TY1N81 !N##5)GСfM"X絈!6,t[(&0wRCz$9 ILd>Wypr_J 7a+Rʥ`MM(@"1,şL"|ԫ8G2d af!P#I)Hw,b^jX9Dh|g-삪QъZ^>&BFncKQd$le H?RNެJՔ=bY:\AQVIbC~&TLIMS@0b^aނۛYJŪ-P@TJ?>Ưla)L58DkE!цٔ&Y` wӔw׉q5l:͉XӰcbyJ샜(9mc,H6Xt} شf(dS}0Ru"HēǠ4%LaIbY/0Y4xUj0rmnoDAFɖ^f*DzAH)u[|il'Zvy4O2'RU7[>n0:n؟VgENw2(>k M=I}Y^:ǴDu~UwdJWo w~?ˍۏ%D! s'q/ݝ2ݬ3ixO0 Y"B` )s_չ*{Gg"ܴd)$[C{;;;K$I3S$³2ūc`< 3!@.1s% +8,ɼ<!$5A=AP= ԻAk ˻0[@Fk4dKa!rjH &m2 J'20z'SQ?H,_'ZCcÕɐ=0 i?P4A 4b*c2ʪ4[RBBJ2A;@; $Eo`*283<8ʼn*2E=ڸAD3$tE6F|e;<+ OB+,s,0(ǟ xVSõv06zG7DCõ-~™?0ݱ 0&D 2ȊB(FF,$Jb DBJDN, lڭk0=CTE%PT\VdU D̉?m(;ѱ-I*ԌMJ ڔJ\'{2݌R0S-\.] Ν J ,J0NTlN4%PN+ƪ\`ӬIA&lRBRb3EtTB{HпL-̫ͤK,+UH!wZ P0h P4|TU3ARKս"0U?ALE?HRYKArT,RlFERn;4C֛R\E+ҮΞ4ΜRy8.ɋXEĸo@~N[AށBvG0dd0Z”iP5Q)i%C&¾~yE+:}视[ۃ6o`b(f`c6Ak\f;`nm-RW~]g"EpIFuFF#&yk<O 3P7n7c#?UuyF6j@x`ec{Wo^hՅ7_UmA@6dAFMsz|d5-G>ws'rG|~:8|r>Zn^gv썄.o7'}h{fop{2gY`xG]xBb^qz@y/Xntek~[NPNuVW禇Np[ hq~Ĉ3E)0aC?=,b$NjŊUY2?@lI+_\ M:A$?:<(HD.i(OR$8@r-Rr`lD'NrqΪ}%HBuոdGT#=\YlbK}!n"HSx1blcȊLm^yΡAf^"iK[wf;jXCABNqƍ,^ҩFZ}:v׳sߵaG5Yޝ=Pm9|ҬMWYqh Yf)Yf ufB%C 1FGVT)%p`*I)}Ӈ 9ՐO7On85USEuSRq#PS-eQE~ P2?hI%Y8 PQ5XF҆xSacڴ!a?XEɓG9FfDgbVa&5Z[F'_w1\q̅܌ m7)tBz:x!Gpwǥ[xyS*OUoIX Ec]lB>('`ca*Ӷ0VPTQU3ϼ[UG.PAYkG"nɊ|js4ԇ{b'>Ol!A LfAHC+2ĥ $N"*5LFɊ`vY%)jt@9p*qp" &%lrTG&0`#Xݖv F/T)`,A ex a fz,ݮլFC4B-Qwq *IT&IP:MߌVR:+ո*m V>g I;`jֲ>O,3惖i)"J߾Ui$!'Aa5[b&&^ BpNIR| Q:];Ϩ)jʽ/%HC['E)R vT<ƠBe̋!XŎg#QgFSL h *4I@BXl3̗lM3tIRRY#}> )*%ÝRZ:"$U(1?FRUҌvJMr:z |fhHtpu 馶5L1kJ_x*HtZ]NoA堖 H$ӈ^J"bh=QƳDtD G^>[u܊Zwdw0v;Dwhr'L"XՔu1Kh?+fymw~ڋi]ZjTGcA?j XV?NϓNT;`0U U_Z, H5!9~<+oN%tpݙkR(f1+I{?wM 1 ͨ%kHM$Xr\tWN lJGP-2!J%`Ùk눣 1K4Єur8zFiN Lǔ5cLo~ӘzsŹϛ!ڧ6ыxį^s?cP=*\o P꯱*ؠ@AًMTb? ~5ݎ*Ǐ ^gC7`ֵ.a}4\s.ޙ,w#n.:KUr]sg*/}T2.z 3ufж=ǹtD~R⭻s1;oSF7P4OdFz:$/n37zqp95}Gū3 QEZUTmAe]aG  ذU_o U= ]߉`Ҡ`[T3WzYѠz`H_屛V$aIA!YYe^əHNT<jYN@?lW^?E&i ^DaMǢỉT [A%TiIuڨ!%5]yݟ%UT]buST+VVԄ v"R!ibATtjN. [-bЭWN-,7j!6{]*8aʡ@o5dPAA.q: 9v5_6bE_vG 6R F#H" 3J$ΟK:]v]TUbdQ&} p+~.+f=^.PR5MbKKJZ2dX1#4RZ~ZHF#Gƥ\eQ  X]6[Džq-aU£:t89LQ~Yy >Жh2 TA:C hBFIA6;jLCJqif8fO|nޠGҥH5="5:.="ܵdVn0jbt^ybN$NbTV?0 Q T0 |Ruhx )bǀ}1@Q٧'[N'c%1/ɤ$X( Y 4[e 4\%H%Zn =:ȉhkJGAVRVAEpӸlRcʙW3VCDB2L&k>VfvEftl^hb[ b-hh5^#U( Z:(WڔJFcX[]"ہTq'^'z!%Pgyz~']x2zN*+xQz]|> *LQBj~\$]媒ZM٪WA4魊$O_p%5r?i N0P^]Dat1TlJ)ThbhJ!RSԠVQ4B3YƁ/f:hdjk$A#2kEŎʂ>oE ze2eo7r&J'os/1XBQoD o)D(T`/QR /v2OPv"WU.Z}ڧV Z&¬BL>X^!˂44ی-H0Pp 1T C*-r  n*."(O0.gkUˌF>e>a##XoY:C?tkEwnin.pn7ޮ3!$w޶44Osb1`km4PoUt!4( ( Q{r[w(rT27U??du~rU*O߷yju(wX~u+?R'1XATXrqr[_&o՞oO{7ӉMw 6T KkwUrக(w1˕dtoȃxt3t(Ab|:L/Qӥ LEh !WM%5k*R.fљj̞xFm[_j}ŕ;PFw;w0xv .)z ?G`5r9]˚a?_e+Z4ڲgHe]iRj0C5!RfAω4.7+Zg}!t{VУ+d!W lC`in ?MQf$4AX@" !@0lh # bĊC4Ȋ<Ѡ"RQ"B&p:1&k!]qZh(1+lIJҠ"č 굁2LS B-.Ms䟾G01 j;ӑx&{̑sAF4i䟺4%R$-2 45"!A$eJ6"\d9h C.DiR1cUqPvٚIϥPL E$)bE/!B #P݂(t0A fX}'"h! im4X\4o<U'U"VȝܨG1# bR9խMSskm [3kKͤԳl63@zhG0;2C%s 59̷F;#SX/ zehC;L'}3&΍K 4>bUVdF6F+풅#o?n+HOQVؖHDH@ ]DeYwȘGJpnȾl% ԫuPUb" :1c6;ׂI)$h7BN^  5*Y柱-v b2/:'ČF,O;SBPy.(6I*.[0)5L,bM*ЛPy6js>iV=$}GaCp Б\l{ $E-dEP$!3` -$A$"H'0'$Ρ>ظpF'q]׫=;Y0x~ |"$ҔVd8F"ZeR)a>keb[vDW '4 W;;8PATeL*k|׾5,5D3+| &dIxBCDHIl%@Rw8RY (>@ 0}qEFhhu?VQQ$8;g} nE//?5OÌd1)y4t0vn7%K.咏CJV ,ɰYlVBflY>p.u)BoN"#2KRhr  G] /ԀXQ4?:VJmީM![ ?k|) u7I֫'[HhOA}I$t}B\um%)B4)0Z;7vWE5pZ|.Zk-fć=iC/୴<%(9UqB^8Bq5:l-MທsЕ1߇U\zN!T_F1n%*PKej,c12 lfMo &RXdr -}[0zu}sDSd"wح<2yk':QT އYoEKFD54s>C=/DI"+f}\6yMĎW8vYGGuA 'O b!2Zr)tȉNveggw v,#X RKH3X"J82d`UaXoEh%:qCte>E-&%oGM J2д,ɫHɺ 튌ʆʆ @I 2~ n!BP%g L%< Bpl," .*ݪݨb) !&tBB ,F.Yla~02ǦܬoV`J'J ^N$!q_oԨϲtҺ@0!sO*>~04m8 0lLM "̇"0))Pɚ,Qn:knLȢBPp &(Z|g 0Ö#Hi N /2XIKL JǠ t|n  "X )T ư$PPQ$ILrΚyKpTrC/q2t%'# `),($J*֯[vrN+1ZvPEZQ Hl9N, c#c/!\ ݊ Op0i>-҄ME/&Ài٤M1n3E N 6,h.8#2 ˰* Ԡx-|3x(ҳL.Ű .0`/@#!FIVYY ,B쉄(~R*r(e.`)u =+K@-N􃷄)M± ^p2*h*;OHD PR° ! m1k 3!"!V/0"M2EM9]KDK-;o↏Rr% ~! :O\(y?7<+Q$h B>=S JTK06?Lp=*A[*l~5xK'aNs9SNSDM+#zE l klfptK f H !<#^?LD:cjqNf>k5/`C"%R7)i"U"SZ#`oJTC~aC HBgBr O!NT,APPfs\1v6,!<nR@R>ir X 6  v N! RU$BiT#QO@?Wg)K)?3?6ktKs rYCRcuJ ^KgK "dGބ2hID83^1b2!1~=kTAMkWka\hagu "0րGXC8T'8Sx  y&# 唅/^ ̄t @."- BI"t*juJ5A 9ws1q7o Zpb7 Y0ДWH6"RHֲz B5f8z{f*4,Q6,%b!rV."Xwo*ٙOؓ'xnIyuM'pckysY: a :yـ:!jkk vWMq uf K Շt5K DL*H'.Q y\!tG#1B)"va7z!woxMED 7Y Wz9feף{ss eD$9"|’+>%Oi%XT=Q٩QuZ$e ڬgs %6Ƕ)!>;j~5uz3_}ZsE&8%°DB­ـ誉sH 1"h×AQ:#2|YMj&cw'6!1"8#Rbwݲ9؅?p!H=\p=YY{ߜg[|Ebqۓnv H9YY8" r-} ٭!xӋyI}iEi"?%9 9}aZ,Ҝ}{ZI*CFo!vT P~s1fI1Q4!!qy,$"!BbSY/R[8yr?\"6T\w} DXc]!(tzV1y)| KXѓһEC @MԙEjzl6Ww_^5@ΐegWWط ׅ fwvm,}‡Ist1N}26e!Qfl~v4w`rC#PcOׇd`}=-ڹiߥf୛ Yl bnGzywu.;zik?<֙ <ͼ uD^L0[ř *#$t;·^R&|aH6=Kzs3"θ D?// 6 :daćx2 Xf>rĄSE+qpŶmB \Q&Ε5mYӚk%̈́JJ@PRe+J6*uSD<[lО9ڬz.Ŕ*EPƌ{1BI9)T(W 8p[ \3 m~K^9-\-е<9t49G9s\j_ix!q_-_V4<3$ˣ.kb- z@WN,!`ƒ5x^t4 ut( AC? O+4462DӅ ٴ P%PZoDMg=ETYB-Ucu/DV/6?dtԎ/eQ!DOo3a\1!&8LPןGYJq@5BA{+e ML+mFt?Sr9ZnС93v/ə&_U}.ab M%GSC-t `E,<ҫ4Ia[UI<"04͆5;C5dXԴ\+]u#V]mP/ utˮ>A Ў.D" M0I&y]yUT b9wpatpha*S&-O#&9[̫ BJ(pƹ&DBiBSI=L*f{Ǯ 4[j2ރ Ř1XrɒJu1"R8 ~H,[T=" #d5VX4L3M.sBc9E+2z. {B;YQPXC@ a7 4e_ k%΋4MQGr_wUud2TxLȟٙ5C)WCǹ\\#Zj­ 4@f idpb I]6m V,2C.B\C%KcѶ9 qwH0/F"IU922IZ \8!48s+`B!t3ĸ0E6 P]\$C 03!g̀,>DpɑRGשBD'%IHp~Q ZH%+%&bdE1i27g!E\6.B $LCl ɜMqY+(#`MM0 9 шOgRsMƖo} R1E`"-xkB BIDHAFQ,pBe@vB"c9!4:$ FVѥq5CSҔAz\_EC  u~_4N׮Pe\ V^4i$^dZɊbd2HJ]K"d)Pr;)I I|&RIoB@LeDʶn!nw9!1I Gg7kicba18 `39"VI*ëHy![({L\LS#!ݿsHwݸ_0f!3:{1#iDh.:5+]z=e-_tyJS7$M%MI?z5 }\q3↳ABF{?,}=1ɵU`Z$1$DЃ.)2 N,EKhы,G5XVZP i,KS+&19&>g:eL>8)3”ɖȂƘOJ\ӎsH6RtV2Ծǖs~un&3&j)ڪ,Uqmau[,YF~73}86Dlt/Rk7+ý0 ;W`8(q:2lhd\@8W:,].: HP!M%67g!P*rHf]a$.Y!U[9,5i VSv&^]S6`rD'ujq eUQu ʢ=^3Ղ\uC Oi0 %C 0 JS1U\Pfj FE P[Pcmb4a .p9&VP n{UECzz+xU~8zzg3xH"C3OԈERȇHCBHfc?":H7 0uWi!h +"Q6U07Hs p p p(&s}A2_v2e#K=bg(č6WN*7{S!!~r*4G6h$A`AO8iQcwhSk)evFSRjk1_ YR%%%k,0X0==^P0DP,!YRPRGDGFVxY82"$luTU99 ; ": F[G;00#0#Fu@F@+0C}zR(7HzE|x2dIICcLӉDj\5+"1F-|";WoMxy@tKh@ wsnq!!T"vVH(iOhlVďE+(/T+H@ ,) q *k * ЮJ``vjGz p PIS=up@v` v ^p.5PPLQCdWv av 7HX B+[z8 !  IV 'P0 >V@ //!z O q S; \Qw 4 / Mhp  gq+`wkwvKgaWy'~} YeD2+q} =.%N*5JZNbA"ia(ASOSQ]?uM'v tIE :,,* ɂvBZ 6(԰, *p [vkdi& m?  GfGiױvmcP4R2$ 2!"{ 3  0  `* V` Br#L@,V[ |V÷H>_|$+8ǀjʨ 0㑋q Q B(, q> fġgp'gpL'ǡ!ȤAQWe)v+MUM+!N(g*T!~V%aJ!AcrwU6_^(_ E_{I95Cđֻ)+z*jK [vϐFpuS0֫{o Do<,0aY)+&& #<¿`0S+,DªS[ 1ܳH'̦'H61 )p ^k_{ )KĶKʨhvK(ņƹHV }}qgf`Hǔ`xqZeZ M2 \Yך|IйpsV'@O3d5ws&"[vzd"]S\ <جkHa7ܟI+yܑꚽ| *ٛ |Q\vr;8;K-,oޝ,l| !+C0+;k + 3\O[=P '\WxLTO#a>BpF]3 da1m,?;q;€<h,e:} AB-v;X-]) |̚ryU~!3In?a?()LDZm fdŞd[*b+cvJb (Hk^iIukJE5+ɐܼ9jU1wˠ kM | հLvjG8m.컎rOG\9; NêPSˮ4NcieXfmUϮ b hs+@pҷB> U^<}ŌWE,|1zJZ}7jr ڗ}u{L~zb'?8S(Q(*Ye AqBq+qNOoN5a+g8dbVڹ[ÝWKwixɦG7ES*h^Tۭ͋+:韊Diڑvk  N jQ5ؑ=ݴ<ϼ ޹^/ޒ❠pxO3:O^ zx|[ f9|?;?|ahpӶ|g⊑@,Mh # iK?-gGe3=@᷊S P uA`wDŽ;&G9OS;ѹF"DHE-ZhA5| ,cApb}A(L)RcbEeYf2f~fFQF53׿ */Mւ̶r+4fΒE+$3h 5ׯނN\9D/bǐGNo^,co7P4C( "ҤدaM6Oړz`!Pz8xCsb=;9іmaT+bTp~@\g @ nx+n"p'2İF1CQ UjQUVDK.ACF4 BkIƂqHDVq_J!J J2JZi%.Ҥ. *V 2_0GKTcBT$錐eQDRMUZ!jg"(#"șsH% g|IUEIBRc?VdcbAHF]zii(~v*'*[*(*ry*zɪܧE+.rKް.+ !0kʅpB(^{1+n^CM*.(ܠNK.+뎻zf{fz֬_f9E3`":tp"p" Rp o0D oAIQ&A(4BZ Q '#'$|p41H_T\ JD.IjI*I Z KϽ\fX=}Ejr- PF#UtQV!]!=MJhSFYDz R 4yGACIxViW`柗~";Nd!dYm%RHꄀd`6 HC 62HJAtMQQe^bWF•ً,g/P4,m HI⇡@[AѰFLH_31AALWD`DF<&cMHLIӃ,`<>  ՠB*n!ZZ|HG>{pdA l>i? Oaok$L1BAUD&"G5Ӎt IKrRDGK܏|VvR-tɥqYR`ؔ4y)t{"t>4-w:dͱSQl/')I gOT!  mC&AšQA>F}jj@I%aF%bcMj碙LfňoDNĢZ׬w8آ pCԦh-.J V<ٟ"b0*5 uas }֚!u [0e ĭ,.Zy*Ђ"/a- t!Z {AhPC_bZh+H!\!Bb$E6!zkj HgHQ,p# *H$ n/]ۼ 4 GHJD lo-&aDURq?ߌ)# .50Z`Ѕ*&.VI&EL1O>\Ab+%"[9wDsFJ=9<{xdDO@i㟰K6鋅j5A8t g"کt!C=9+JLy>~nw2=a'(B "3 gDτ 70J364AP.Ŕ2AGQ~~QDo[ano;ijނ@@xQakZg@ nSǖ&U3B,DFk fD]q` Yp,#Lac\^Ғ5]qXUeEc\ymdp+sQ@ad Rn?pIbek06"zamJ+ڔ؅)=J :CU!(|Ka2xp^R 8#N9HAz.GD6j` 1d !;4o" r< s ӆ8΂0NHP$h{BEED w*uvusPD;_.P| |f֥I͜G鴩r1Z~ 189.##p-o?j%-ir$>%ͺAY) :Yzv3į#o%:\VAG^r {r%+Kh%]s;*94XQ&[Y0`<^9l9[e\+:!Z 93=BY;==r*^IBABD2ˑK8˺A@5A $(xl<ҀrSH@jȚnH! }{/)/Q4@T@Q%DWs6a7ܫ:p6H:LȺ8T Ad"G *|0!t)C8lXRtt¢g*ĩfz, B&;SǙ#9 SR*CÚi*ɡ<+'F '6 BLEB<9:1``3B9{[AlV 9?91 9Ap3;B 'أԃFhJ)G@/8zWɂP*ͯ+7P R#h=XЂ Z-Ѐ2}/$x 0Q/WZ*ฺ "$Q̸eGaus%9[(fJ,T[">9:9;Y~{+49i[ĥ/U9D3E94UpYoE2Nl'5D Z;!<5M%Nj(2ghrFv4=EDj]AU;D!rcB;D=Bl" `=Y`\ڼDMڴN IE4Y4ո3KG %{ JOJ,:t1,S:5zNn`aYW ]sY]!r)lBW z}lkbCǦfs XE"xc!r`r&"#G QRMBy 4%ɸX/tGV/"ӕ%$C55QG,|D"̿)19㺬[>I10Z[ZB9ҴKDq77ӱjgKHڔU}(N< @q(v݄E2Fy^uRDZ,_ӳDkMNӼ߉ڤ@!m< Vûlr՝˔SU0YfZ᪢]+>V`~ML`L`ZT~i&*`~%,%QJ,1`֥Mar%R505[V/QK/W3as%V ʚ"h04v&'ꯎH.4֤Kj҂=Hk 6"8崵\8/ W[et,]L9ү%BG1&HeuTGG0GP֥I, 2] Sm Tgԥ6%20)D@ e*1mWrrfgԐP*.N,HІ8rHbem%-$rQV&U+s2ok|t8K;8뱎?gs26!36R5Z |VM'KG#SVvRz҅Y>6\"tNMl۱ޜ#1,:My"@q}TOhjjKxCڛ(p{3}R=U1#4蓻PBbW᎓hoDaPkWDiQ-Y$N_39VQ:|H(Vmܹnm0 1tӝsCd=^'530 @y0Yvf;Ӝ0-LόNPDӔC+HZJTB" k935EتcK-%`0ID R? vTFa C6V6Mnh"!_YҾ"e̢OrL %qtO F|e +_cH wӀc0Fs#Eif1hφXkP F{'Ӯs  5̾xkm6@gFum>YЂ{˧aϽy#e-IrϼN߭,F#j1(qf#3810"2ǑrS9i頌ƨ]Ԥ%Av"n@ݠg1|bxNzWScHlus SxH4as8爻#ȗ 5SNh3wA]0/{Y.Z(Q (N(F~A_1]bHVӚ$~h,Kd9oǔuEA. L)3Ǥ'H'b#C)~G DJZRE&h# vaY cД%[TƸ nӖ]zH ` py-ҷii<|ěejx xj?xy`bfuۼۿhl` ` ֛:``mT(VFcLe,acIe$d{U!rl\c4Ƶ_451ԉMAۜ Lz$8]:fY]uLB]ʔitiIl$v4Tb/ǍѡxiqBHG-$E*W(͈(B|00ҙ\)#T"XJ 4mit.ѭ#Vǝɘ<یGkQp$}FnF_v5l4 DxQ$Y}ŝY\:. ΈxڭbdGy̟uGzC]d\ܷ}Ft!JGhA $IO%Hd bj 6l`~ d%PC9 `9HX?؃ ej(]NfX2i y `b2-_eܭ! NQ#JF/tɄI;Iŝ!!@E%fS.x4`D.BAoj+.1p.,bGuTHϧBy!,ȉRLlgXALB. `xgK-ZQ2&u V؂T`I7;N|քe8$!>N 7;I%anCYFBL-$H 9D|NeX(^i,M>Sp}GaGؽ ~0iLMpցb!M#(["0)0p `ц ֛JPX$0)W2? DC9AW*mxXbD(j[I]Q4";!dTd_fcfyyXaYaFeH ؚ&`,FEVbG:Vd\FuG F_<^g,&*t#A!`CJ^Xx+bVZZMYSDQE|bEoVNL y~1I0L"w] U ?TB4ڧZ ¬ԧ]. %Ifjj?< ]l͑uJaԅ0oM|IȞ<u?( E˪RIUOaC_ei߄@O) Q je٠)A90@40@9Bn9``?D`A4l8bnWbW%ahމdꘐ$Xkdf&_j_Zqd_A99][@^$~ e$K15{qœ8+O%C?JQ\IJ /ŶPBZ]$N1 E2'#Œd\EJE"D*L]!P9$"M `xL]`Mj@Mm:?h=Ix|$Wv1ȇրg͜A]RldGR0ed@eߩCm+&+"G&Huѡ\GwLQt) tQG JjޭRNV[ Jez%ΠnVW2n4h* r48@C-r42.GC:j>*B#mAΑ LaZLa_3u,&_8(oԽZ^/|Ňa&F- p[Y*̙YڵBU6 U4 LŶ#҅}Y NyYQUў3μ dCLrFc_%`{"Й3{F88Za~jt[46p}n|~k,TM@\ \hsrQr/CgjX kXMX $]jQwyJ&?20}7?$?p5}JjT9 A 3%S ~ReljZ_[d̝ۻluV8Fo̞5B6JO(je(aDB%Pک-SF~*>ƶv[.NdiiDGޝ%$|sE[م/ Laȋ(Fs* 8{}61_+*!8ai`080p28{ٿ,Z Ŀa#H0QB[lƍ@YlM%7 7nHqPH! "tIRJ-Jj %DFLXi3*M Ia*n MbdH{e5ՀDC[HDz"ar "$@Kd/H,3) EEKf-E3HuЮ/̿ajaE~%2e &+XAL9[ѹ Ɯri9G/+~EnTR m(㯬EZ HmL &#B(܊,-xD|M#G uRB5":k.@/G & * &`P`'1*0*h#IBٲ/ĒˤI M4!.A4rUF*3d It?>j `3EIWe-(7%E\#哯"/PU.(ܱJA5UKnVt%!O;҈,YU#ʕ|+BL$. LA,"$7Y%'IP|gtE"$tPԀT(ekR9{8Y2-bыҡ0LH 7=d sL]c ְ)Sւ,z4AFCԡ lvTȠ;ݑ UTRCհ QDUh33F6.\4%_Eݧm lHAm924:3M /u 30d)nmda> AHtHvY\V0,f;4ܾʭt6]$ZeE`cI5y$$纼6l8[AFVXQ_pof{F0zb>H.p$yK7j0;ٮoBp?|d[:2h kZja;< 5˙65ja(>GW D%S24y['t)M_,@TD0KX:V[ٚTD,QZH͐+m n? ~ޱـ Zo诛e IdTH#۴B 2pނ`hEk2&Bޔ 32o2)2ùB05, *B 2lI 防 ɴ#PP$4}F4@4)4ldƘf )2)74Mo8Np5"XFAjd+* w`MaMfp}*GJC @t+A N9   1,A{E6+ */j/Hspm+ixw0J~LLP$~GM)ho~JO<) %BaBЌJJJXLT\XIMSd :x&X`M Z%*d:/o!'=,!,!o l " f˒t#8l`7ԡ mYZN#i I̎+2*BqB .mM,) ˳f7PV &E o$P,'늎*wz.:ˢ(3,2 4MTfWF`^j)(6Y.*B1,`/&HF0M301& -B _0*k5v 3bFĻϐ '=P;<Šu~/ JNJ<$O\(i쉸M6&K40-8c3δyǭ3{3.#-&d l}km1F04y-WUSX<!j= [ nݰA ! u۶'W2V2].]-h#7$I=za-⎞nz;{[" [ x,Ʉl$_R^A2.0` >71]=1yNZ-Dpgt/ktc@nJ+8fFO##+I\ĝ:Qh@Cc9K9cE)G=f{h<@F)ܳj# W 2| xc fྶ 8`vjIQ髼xu3>igR#ˋG#sCD#I4MVˁp7-_,r8È'] XP %dX #M/`d0`ْc] go1s=IYA*YY q CA=-V0 _BZ4`FD &P(|W{ݗ]⼹햬 _.10aB!"4 -^0C!,dA?CTc $O?*Ò%luG'aOI5"_V,cuW`oYz+ m3?cʌ63y ? (jЍ#ɨ43* PCM`ʦ5|x*K|A'E QADI*hC,2AӈD`kQRJ-Kk]09՜:TMsRSVQ*AP?TElUTJ%b[Zm5J^yWc lre*10 l1 ccQ o\#`qťsCJLh'fi|pūuPQ|uQs!]p6 2dQaN]g7~Ds_|y!~ ^nF22PzTk NShFD2cc ^EQ$ I"O"tk.M ~$KXhĮ1T0Ļ~RH!QzfgEaT]uvAd#??mIG?S??!V`xU CT D J".VRbGT"qX,YV"Q!=/IOm)-i7dζlaE( oibT/s^+l@EdKbPkKY.Ƙ1eWl[h-@(`,61ʘCeb3Slv3"Іf0{vJ WP1^@=0C6Em㥕4M*7?3C~aS2GRN&,O8CGH%)őwh{J}&2@9=y49÷PO^jWLNœ+(Xwqe` KQ|bY,^ &S5Y.E%a 9[q뀝Qj?‰Pa qa,g[V$FݜO\1ԭt8-EUL_6#꟯TtHZg$jN6K"˖M? !FgT ǚYLcAY})D' ?hp4>Wނ'I%-_H/Z%|w"Vi ";y *[=(E6P/EQfŷ7e``)!- -R|1ɦsJTky N 6EEaw5;r+v9nlb Olb%Ҳ78!7Uq31D'Hmq7DReR68 a!8'9a&a1:r_,Ls_?R(U~!$dCr:"9 ;A!% TtKw`|T dzwc;_e%UD!ɠu7ZrR>Rw>e'vZ%,+!TPR8CC${.·.WJ.0E |E×W{0TkU{`A3!GSHY_Y }Wa};GK5s q+O#!m5fwV]'i@4=s.P55Iu2 pol6}M!Fd3ԑV1Cq$Y38_(9; v(5#ђ4!m9(x#9r!b!B#g h#QCPQ`CIg&}B;MTof TkģI_gT7V{< :z#h)0iy5x%[)5b65R4[JmIEi#*.A"i[9L!qq` / @8 7-vu‹TĴMyTc$r$MtL D R >.Q>뷖~H6<Jꁱ$q_FF_֢!94).D0a3'7:<+)<98oCHFZ!Q<O* gU9, Uˆɶ E&A`ysdd:LvRxBh(.TU)EK\P%=T}AUx{eJѯ'CP&&0THJlh z-5-hsz$:߱HInHAeZntHIt{G4DI1 0# p-ru+Hr/="( 0QJyS;1"#3!(&h6 5Fc̐ qKVt'c4B3V`_HC4ֹQO2M/ZT(S @"e!9S;83'!fRS!*AIcI MQhW"ZkYm[u\`g`tA0~MDsp61v~ c c05}T٢<_SI;X.T>C?cn|"''}# g) u( s >r"*R+'!1+Mʎ+8"3r 28d1]B hڱ@ja)=b3$еOf7]6>zrR\U&q%_L]!srI- qq2|:I5(a-5JsY#baތXs(,*N' :c̑T4[4jn3yzT:ɶm")Bh@wuے+|Ts" 3'/r8sT,#`#5qTʿ('dscK;9*G?]ם,d"-+15{`)I La9kΏ в q$Y\F'k &).':I¼zSHr@s*m*"Rat#@tt*#LLǛ76" 01AH-:l#j_h>K6ۣö,AL2Ydw'J(3*C&)K=`TqqX1Jjyk opJJ,huh8\h3Jh1V6x L?rǃ"C =4Z׺5IFFh`6jԊ5nH.9;^++_9[IM+09WaL#GbN/*20nT;dB)gt (!duUD&)M;'ATե1Kc .p @,W#2 ]2p>BGAK,HᕯLh, QGBIJb 'a 9])A ";,H, ڄttᙂt.ɉ rdƊM֖$E?01L1Y)6 1cq!0QV$V@&G9* f`DhҦam(FI: clGtBـ:G[rtKSj$CGǙ4?̧tyTw@ 5HR/tL/"tjY8'@pq+?⸇`•#l, tbmSCB8٥v97T,bȻ'$TP|gA=!6qNvhQv$*\a.ti+N^ZS0)#6a:482qiCK۫ V(ٙd3' P(gt&[|Jp4p=ApH3x^21)^0sWaP+;="GSV2ȶ+O)@*b&!*+vI!m$A$~ LlAX7AHk5oϠ mPFխ*E]ҦUP{ 99i? 쑞L.)ᦣZ/9~־Neese BVp 1ZIUUU bݝiL ':9 &L|n` AXIBUЦ}2:AJ#/NJberfKҟN>YU!.Tr  mQ#+;Hyv" ԪEL4!륯_F\ȘZ#t0"npY)ͨMm<%,?Zfk\!h>Z#FkpG{.KޥA@9F|-6=Aֆi@*``7 \s`h_;zLڃ$J%mэ@%9]Љ_ZR$ lO10qJY92!1S2qx⒅PrꝞsx#$'0Ӄ@= h:04WQ#:T N90HpCD ('?lz0C0 :9* 0 A/-?B'U9;<-,P[ .]ES#`45X!@wY=8m@=Hn(@X" ; -@>K4틷xPl=[hA H8Lj$EbtHs;7|;@\[@1@ C@컾˾>>Z!q!s?) &@/ /r@IJ0jB25(=#L@{91#Tٔ5'일{}J1C=CЁ.Ù94ya X?JIHyș5L*-Y:3?`  i$"mx `ʥaVR(H=.S#|DSY[SAʝ̄TB314B9%{ڀ[B2S?\BM hȭEźJ;($z!pA|HZGYD:+b`^)ͨ@͡ NJ$=զHV-cj^ҹi T4hQvYm< 6y8n7e8s[7eG7`YxC`0ɒ53yYI@-hэʡehk tI%_ڭl Dç 11C3M۵<G픇S'XD6ʻ(9'| ÍB<X[XUd ܷL]CTC 0+۔SG+T;p .%/-9ш'Ap ( P%i jUH<C@-,AѦfQ&a;VaV^k%㈙@C= ~Q@R&_!_!f.F 2ЯI"VIYU5s`P]Y_K4ɱKJF"i uc]`5P*xYI8ImIjaE^) qɠ"A0 yA,.۰=1&<43R67/1ӑ3aӘ1υ[ 31ـӸ<@U[ X.K ȀS̮K :d:B ՟,CbyʐZW9IqyM'A$6Ŧ ]j ?O]mGAU5MZg.V2ԦhDc?@^ofMx4Bh6ښ3L!i FvƤhty(™؃)FYjb6HhI7ٓLGpFP~H7*YPMQ bx5413 9#_Zg2/ۣΈtȂt@&II- -XFJPP#hP$q=8߫b-`. .w;I#j'?ѓ.7s FPYg$霛IƈF$=b=򳐱^f%k!t81174ʄS=%{/i{U(Dt?.lFgdPÆ. l<6D1[ sC̰2¾u71mR>\Q yQC`fh=U&V${0nq5(,wanYH " i!t& 阂z*H"ڰ( I\`U0M4m?#1{2)RI ̘Ԧ LXΞ5'D1bP,۴_m̀k*68dX@%vp3mrPLcҍ*- c=@;2K,$NxOc%IdS<9Ȑ?Qb:@TXo\}I+}4pf[ppm7P [u'!wExa 0$H CSP(b?' ?#8%?̱PA DqtQiəs]å!RF!rlieIڔP0,2AD@?'C1fLYgL1g v2"h:T/ЍMtM l( RA#BPJ1Qq#7OYhNF\|t+L1%k[QCZh^At ?T2j/ O*#&IbLCô-#9?4Ph*\HǸ%c#)Pز$ "W1 .B 0 RJ dc71Q8b#K[旽<*JD$2 4bPɮ24\XGjn\d ˂DG E'Ba#P"wT lv( KPlfq\p 9!NӖ'Mh:\$u2ara[_Жl1ғ$:}2ПmA&2?#0(90RDΆ:ٗ}/];i3t3.B~֑Fr]ͤ6Q.W2ΕL;>eK_6aMlb(;hHslE0cMqoP30/G=څ#b@r)@a*K?z)ʴFE0ņaXHD"ԕYP *3`Pj2H&%GL8+DeVęOwAԇ! GJ)iSx#bڋt"b E03:Y.WNGt|?i(os%=  |cW;e\>⤷`xD B2B]F?QVE<}ƀ:#H˳f\By*v%{},Ł)9J9$4ۊK;g0$YNf٘dBԴlp!OM7 ۹' ][m//RX Wy=1SoF{!PxM=}TS윎984MP$=0Ύ Ơ I䎁XN?Qi(5OAB8,C83tl b# $@:ɊXrfX͑a.JIP fhK͡NJ`%d܄0Za"f@f @?D8j!"X eRYhˬXQO\"pϚѠ fJg!ƹDZ6dqbd Чjdl^*n޺źKV8kDT"K@KCDLE 5A.a  q'Q]Ӱ'sHɁ֓ %i59NhpqG~?ht &e@*R/ƒ"L?L1 ya1yH}ot oDSjiRH(xP jNh 8U Z\~鴓P<ɬ9%c2˸Pt$ÝݑG`)a- ؊ȉ̘IN\!c0FWܶE! X`AʼnR,cˌe$]HŤː\Jaj*| jexKyOdb+n_.+(?\ /( KPJE[L_|UZ8 mGl/_Q<2YNk2q++P6pTǵiJV~+(=ާqt%lǀ8W.ɒ`/-dwY(HƖnovs B?4ND(1f0;t opFsG0o 3idtʡB-":WIȆ4J_&܈I K ^s^}Q*Pи28+]y^"]vf10f.4m TA5{qWh͙x*!v'GI5`< )Hq-vDf^"iaT *_$~f5U)-rY+[[e  j3\L1qz-R0ÅAevgaaUa1ȡ. 8O ghj+J#ִt"d1XgܼJl! >8(#'1!s1)3hMRH S% ӏ?MGb"Jӳ4?ѳR=KˉB mP$!UX0hu"^E('pŵ P4r"]@Lj=B2饕tX5TS*&)Q܈&Н*uH (׫Ә(,nyR+R(ɋ@4 `K0 6dC 1;RL66 q..q)kܮzתe`v{-*/(#:&,NkZ=YC=^;7>?a?GrO&?`:Sp pq)pc@rcu'͓BH!R$$KSK4?FJAKhU&aXI(iMׄj^9W®@(W0?Jrd%J%J!!ɈM7(r %^LqTr-D*WR`/K)g3ү$F dZX]Hi+b10qB~+5H2ӬqW0DF 裔8Eh NG-z1$z5xAddt [$#k,bUwD#[)D>Wɾm.{S^Ht ypEɀ9e? Օuc묤>Iv`’9ߵw(HD&8!Ns:CS%ʞ@*$ҕr`Y*} 3 R'C񳎛?=jNql~+bUB@hJU 3G kpA޸OET8x+Z vD+5hOT.%Sbz DAT2E,.E8 A(‘1!F=8e ?dl.tI\'NK\R~w;ܩ 8™DǣOı*RfP2^΍" $7$Y2 9aH,V,}a)HA<Әf!2 p{8q1%*4^]* P{KLh9o`#7 R#8JR֡gߍpOul'%N wV/`eNNy qz1LtF8 :BJ(G2ERo SR]Fx۷@%n5 ּYRNHHP%%UDg\QmlɲrS*h%)`#`zyYi1udTuZյkS6 @F_ @-D٘z۟ /Y6iĂhM{nlfW'%v^ EB|{'h-yJdS2cSmGz$P:LKjI Nj"$C ⚉"lľT&tdHlDZguKPP.L$KivΩv#"PMxg˞Dt/H6e7ZTƐǧ?k(njF ȌC.Da,U~~J Q쌀~`&ǂ*}nlT:T$TD@&(B]euk-͓o]bqk)6i6(e@0H/H6^Ml-zxn-֖Bm/3צo-IkBMC4>t&J^Эf/ Rl4"%R(^<ݚk|mc f%SeSO62.>_AF_D0D,NG0E$'G"kHIHFIT'Qnd2)xI*SdMRp0 cƼ,(PDQnJ "chF/9F:19 80i<"/fJ2h%A:L4J5"f4b#^dk*bc&E ?)C0&y`FQ*3Y93'L Bb 7kz֚9U-.0-Q2ذ>?s.%Q42nFe*-I$C&D2SRDf2 C0@9fa/TomgC+eB +sK  Fd3IQ{'` DCZۊk3"+(1 a( af/81ohsIkmM6"'ŽbKM6YGd6C".*8.2*(,)]D&e-xaCN4C` Av jW95t/ "\, `֒NHF/T7K{ eƗR1k EL7_CB~It귋B$2|k,ԭ- Q0{6ʡ@>d4M'S4zy#BDCZC5Ie +ekE`E$ dGsnXN2i}*6iSTUST*GMנD)q  Pbm0唾-T2nc,dLOD.W,jP8ȐɊ'Pc&o=1’%`~V<2"Zx&(&>U&*BUqeJ"Rڰ 1R{XD6&2f.*/QPy9ŤX`8,pIQOJ9FM3Ә{Ye:˳We$ƈVOV.cd>HBd[KydNQ?4 @ ? @]T6=̍ncO8Fp̔H #٠D!IlˡQdODLve/)`ɥˆ*UMB8NP42J!*4}A%C}!TyD|]\e@'`7ڧgJ5gK=6[ȁi~)&w+τWqGS[F*pbS[p$Q+IC4DCQַ;P\ e3 "Fd658֐U9 Cn^"5<{I}Sh<frvT"{W'#1oX3 }$I0I0XEe{@";n].$m~ILkCV )7^>mX||WSOY+eLc"e]Fڡ?IlGdJ~v]¹`JRC@97 CP$8P/54(+Op(ɘ)L 0K.LM1ZR1#W  ,!,ֲnlY2Tn``.&@8aDT22' a H'8ڃɔSˀf`?C ŨԩDPȰM,$'HrnA}NZ0)&>"IP2ΒE w$بrt0K1%3yi[L{bi>ûhNl?&*M})8i<+JoY)q)zrVUqT5\u;cX +Z}Jƒ!rbK_S aMO:Bk_5XIQmbpǩuÉ"ᰇM bĘfYre!Zך/EbVerU \Fz kneNxi@\Deî-#Q0Gm j%=Āh>n!ǵm]]?~@3p$(isrAǥυ]LRX-/"[,W{:5;61Ne$ep6.^ Wb!-:u|j'&(c7c3 J bpr&F9|#ilhðM,s੏w|Ф8MSM>uxdN#{燂)!FE(0萜 M8k+!č}cE;V? WQ(פ Jd_nH:.cmH{ځ&3Ѳsڭ-BFd6%xL~6tO~GBqɔX+ʀQ +gF=`%abA"q$FQU=$Q=$"3r!2 S8D0IwKdd4=g}0Q"qGUUZA'vRW%eYXhvYf6dE\pFuUt%gAiF]@=ڢ-w!xgB:@7N>vD!y~ hYBIr $`7s~z~zj;j! %`KD9wK7r#|\Ŷ\vLt%5k0C}4HtxN|;D׵IBo^!ynS(G$YPA_4TPDpb.Q́pHB3F #NVR"T!sE &sGxxws'CF5dQ@ p:'\844&%@'DQb(eS ̒UOQ1TTb7v^[|Ѕ  ДDWt2Xwwڢ@rv@l(ׂqCWtXsw&ӇF"[fY6^X*" (!6z@!5{6{h L$#LR9N\s9| ^`ll|7(9!)^QBI'#)4ԃn—? !b_q.b!(BZA=Zw"[TO2U.#jr@cQD6/yW012#^1dCFK4`bL>xtzC.IXGr(At3B+B 3qC1YؔPLI@S muEcA@dѕs@M-?Na-;X%cDQ4Ne42hߧb(5 `x$!(Eٓ!) $j";"5[4lK%$u\u`&\c|6(|6|&*~=4h;u*}ݡv]Bxiq$Z#IB~OQ=A#r{T@G?aҎ9A"G/+tf./Q ec8AN1Pu "V%3"(Stʑ!CAd&|C}98„&(&A B @qWo\i`ƔSIRyPy({d1%q2ru_ywblhWA`L^\*ǷTfeE%dځB#fIH`IQy_]5 %)=c맋Z7'%M4MRZ\QB\:PRlIlZX`94ÛjCt&]lQ͉LH'~f*XCcW">!'>cH򵚱x17 rdž$.- ЎB)Z7cO/6+sAuW$h:a!A8bR:[t^bLѥ ]'&DADO,0ʱA,0D:jA*@ +۲Af@fEY 87KX? d_wD+LGg{f1A $‚jE.=z5x#IJ#757&u[z[OQ"|jś͗lc0`Z]\˚ӵ˹;](*YI)Ch*OhO2ÆI)ű*bQ%[J_YA7.-(bG9?%/1!@fT0D_u2iksnTD'aMC%%jGLx\cUSR;,ۼ?)RdGv  lwѓQ1b)gFiYxD cX6dqG͡ߨ%n#RE\{< )28zXQPC.#"G&sd7&#clQl× :Z`(Ԅ| mKXȔ݁<[5-3=ՓWq@!\_7s2'bUSx uGH03M0+E : =uT 3@81́ x&mw3)\Y,W dwL%,2EyM܂QvZڣ\\2Ќk(yҕodI{тXH&`bo PF(aZ 4wIL7XnK<qfl:9G >v}CFKƹ{|Fx_gYṪ!:|u|<[M^= =WW=v8q/y@qBQj-s=DGTr$G=e3+UEEHv0dCoNbU˱=Zu"7gׅͣۜTyvR lfD3 dtוYR%8v(j:=\!a<& )'H$>^4cƢ:W nC Nv @鸻Y_v X<:l*t&lA)~]B6NTqU׳bc"A =5A+EUF ".bB1&K k T2,)tp b(Bǐ<,8p )@ 3|D%$.JZC(.a HA(T<2.6 q*gLrIRK."JHT2 &B3!H`!9ο2.k,*)Z饙QG[)Gl(2B>,ʬ+9 ǝC/X@,0[* 4~VQ˲@B4d! Lf2d&&hd)r " 4Gl(6DR2.I1K'̕K//I1I5M M4 3Y“q3PDJ#UQZd饗D}c44l>*~5H-)JjuBK'\*UµIRAC.^#V$\~vc8wr# P$I 2p Һ M455 Am_Y% :{Tb&cLNJt!UJG\A˥0iUi^)_?x;AIԲ<@sy].>e(! Ž#!fh`j.ψ\߼=IO-V ?*`x5WA &&k("P:92Yha“KP!E)ܒ"|!a^ث "y 5GR T5aqbJW:He/# YU'6#UX%?IbRjǴJBC|97NRHtڻVH\s9C v{ib#RlTc\V'0fu:G.яz?g WQH4IDZQ!,^gLW %DȖBO$H(qM`;C&5!x> \]nH`|텟h;(~sxp; Yyc=5)r, HPI9:WM!W1ir6N"ʩ#bf]<&D52OvMQQG2pDDv"%ϸI:ncZ wd2H8)c(i= )̕dl㸮p1Oɮ΄-G .'xtf7Y͢..qNH[ZJE! PmeʱVLSbT27$iJSSo `6%(2RGk9"rz];4ն.jO`۽$g?] WML_ hoX(%t6g*CmX٨'n}T^h~L5N!LV;Pj!ڱ+ i!V? 9"i YQ2Ks++3(8r2S$dYz.JơDL6i>y#x{+򀙁*Hb%GI-Ok jxh;HAS2KaZ1|C2y+.j!,`Aǡ2k׀:`syp'6 k6}ڽ"ڐ1E3ߐ@K ∊70Y! *(X("ڨcjƎ`"!)S+&)z"*CD9&Č@1kc5.j"1c(;. "#PA9q$ ;;Aȣ:H#aY3$,"p>8 H d»Vj + ( 2jhj 4LaR(C&ߑByʳ9X**A(J5#1Y ċ"K0*ru !0=`= j˗U&\ +s |+Ž c#E/77;hD?h?hgkc\(҄c )ĭڊ-;t"ۭ#@s乓3G)"#HL 22# 4 *#2GI9Z $:ì rgxQ!&" I1AD,ٝ؄/s'.1J=,{y@p;r;LXx 2BR!k{L= þ)M(B}{Ch E@˲LQҸ)*ߪ< VUaa:*9UޤqScG &? x䭙q @: $6k:)V:;;:Q9Ϻ˹HJ@ ҭé3j:#0W IE ,E,Tz RpPЭ;-9 Q'ɥd$]* γ8 W- $& 4B-V˃8V)8+0J dkqh1 d , V'"éC0B/ES$ >, pcEؘEe֜S7Md>=#.FW3;ȬP;+8GqcΨlG d p-X[!2^*dfttHXey:蚗I8.ǹl+Ѐ1'm1 )cBĨ\{6l.ۧ.NT?cdhZ.oB[#os+{3+p+§@4IJbȢ :G"O?#Cj,W2oD@ǖ YMœ=IXdH;)MW^ϒ Ǹ n=]x&0VȪ#d`eg~ H#4&ԑse|u^SO=؄ sKYЙqnfmÆm"a,*R#ccT)(B2 T )'_""jj#矝t*ޛzq3EXTN/þe[T^͇4Mauvnԗv'^>0AE HAYkе>5~ƜC.5"˭L,ߡJ~l[ N;5O9 vxK$"J+,#ô}j,CCG"ɔ)+Y Aȉ(qS $JG>JQG6|fGDOh/ CeӦ(e L@!"&dd D2)ir!ӂ5vtg(CW.Р]%y_ |Wc ~ 8?V( C)WXЀΝ+ :Ś L'8"$kz̑G`;#G,hHQrrL\leHD&G \Ń\rQ;A&(.?-2? 8`(5~ |I2 IXeB|+C% z !fAh`c§} ?h59G8*iUB$3E24EBg]0X%E Rh?0Qc%V8 ؄? P|xNCAl-HLTLe"hW"A>ʨYŐR1E PW_{ &,Xk^Vf Yg&Zg)FjCqml ocu1'vY\w$G^Z{iyөǜ;s){K~0dΦF j3r!HE7nңDٸ7"bH z%!y?QF*@H` +|JG&%p琹>98Ig:jؑG0!~kI'1{ M1 E  +L Z@-T?0A 8تMnokLqCJ1S1ꬳM{VLWPi1,!&D}XWb ,LFFq c(xH3gEL;Q3NpC71$A"1b++xp===b(9FH-ib F*$K ZI"$- #Z[!A$Nq#AtF!ШLh 78#Ei?cd $,]) )IՀش 1EԀ' & .!ޙD+Z BŨHM%[@a(oF\J+zEhzy04H P8@'<^Lg# tWIA?U?&O#5D,tI DCc'zK.P'xi>䵎n,!ЄȨpakhaiĦ@8}0&P#jrF2#>d7]jqgfJujcRѪ;KOj>Xh]+YØa]*SHlؔFT)QEٕL$GeMl$y9IJ Ѐ*$Yq~61F `$<)-#C&>'I(-JI bj!ZzJO98oO@o$."4"7O8{#<\\@#3yF hӞI2 h) nX+"#PGQI'?"c F2/ Q )_(Lj!Te8sBps,)i0AOY@1QS1fgJ]꒙jT#JQ#" @z dQ,T’4*h1Δ&`qۅ+ *‚asUHEݩutS]7A~O]ğyGρjFŘl\rUeAѓ)j4sDVth>Ff 6Rj`$GFzőǴ݈~fPF.I䒄ZPbr5#TW#H$_9(ny%(SFDCCVAȯ5rܚmbK[[n;HJ#!x@knl'(@ՎF&WpY\/=5?|k[rR;4"( /F?#ZzpGKE˿HmAF\Xi=Gu4tQ LxL\-Ge \iD5]YQ fY qQ@̠ RxQX1IX H^YI٤Ț^͏d a Nj(ݣj%䅒(!d&j~%ZJQ^pM,PZZhT[WCE"A8uI@` pwwS U>DN*"@ôIt@)IAD8]ğFi؇pddƍ˿$Ƽ !XXu( \!QwX\<Ǐ%SY:LS ʹ0A>YΠHB CD2dBNdB" :ѵ dX! ^EV԰aF$)㬉H>hH'=dR#Oa e̡eUlaOUT}n͐'Ϡ`x`L ,y|| ~}2$DFFdCbFBV٠IHnz$YYPn !h! HDhJҤIGARkcU^T֓\I~RQZFᨡUȂ(ӉNZZP 4\HHF/= piހNhi=F9f6?AL(E_fvW)w8 sD!F8DAԵ(=C FE"^`_W'xбRЊIȭȕhLgi1Fw:TIYwgC|§y<ݯ DCgDC.kJd|CLd|bd{*d~vz`@r dѼRMiiFp pYbM@RM2JXnP(`J(T(Bޑډ . ٰʼKkD=%N1K\RƂg@q:)?@F -uiw@ӷM.) "@h8!TmH 6*)C1,bFK\DKg5BƉLf̋X J)0Ytk.|D粞趆zAd &$ hgՠX#Hj| ]PV]+N$6@U(R2FbhUGf,P&qT!mJmOZ,ކ`qza85P[҂S F\ѦsgWN驰[E*@ОM@8NBV˹,D8PRLiԆE ,bQ<6Ve|X}H  L3MMnin{,@nq{>dܲΧ}:+k.Z{~!g{^z^ѠX+U<I/U a$e P/pItR߸rYS,Pڡ,{ `QVIjmEFqk[ lb*fjpc @9;c@Wp9Sxaus0S9QI@>iDxZPHB5VnEZ5ZLRnTe|LeldBtƾ :Yqsp.zx~no.1 ̀n.r*rEr 5v.UN$#oFJ@` nո I&Yhg!/Oe)Lҝ^!!M-1NzI$ !/ǘyI(,.-+4&c0'/Gǖ] -ޅp/}"bl kG3Nے9}ҊW9.nG-:Wpʢ3*f ) @4Iby3(&ZLD" -/M}%^n=5FC H FKRPU@f(燬Jm#I d#LմQAs>ά1ӱ .|*58I4!?+rge^R۸Vuux{R`Yf~D^c-%'+5T[)?N9 *PC-Ϩ+܂2rrX~yPa#M,yyRFCEĝoǺ|WOmw)9""Hs93/MseVe\͒bYP@p7*If*6oOҚl(? J;LAZ\+K0(G F:qGKR@nqbW^нLeHK @fhTwMǻ;r1 >kτ.x'8k#Q}Zkwx}¿qfuzl5X  I(AB fp(! I &"E>#4ye EKxI ᤆ"g= 5ZeFZ6 mf(D߅' pPȵՖte}jud!]+gִJ~k׭;qAr'А!t,GNʅ˚Ӂl%P.xB=Q !x80"D芒ۍ;A=j>KpK .W%M%=^CP% A0 0.^p]|C*0 `+X &{r> )/ ,`#RK RTM(_rM7c 3Lh><1E%8Ք" BLJ",ڔF9M^韑l-WJ VJi%r>HrUWjzɨb/*>*9:%hɃlu'p  =𲀭@L[Zפ[LPVWPp0Vr])f5`l 2v 4"6A*fʓŒA[:g墋.Nn@f䃢߀ Oˏ>^R>^zA6  .xC>.L0` M\żvQ3͢2\p$ɗ';-BJ*-܂ L.|)ЂL4ӟTA,'5S9]wOIoJ4}ϗ SR_B>"K'N;]M }-|;B-VfW>^)5_٤Z5@km6+|`ɼ|2 .. ȇ@Oü@%UZ'|1 dvE( VDaY?` c`FZrLf'KNʠ+ʇ9+{ts!y2$Јf4,͍G+(P,Y30QlO@|C$B FfHC^(/&]$ 푍BfF95C$:Ă!Gg1)t.qK pݕ$L3NUT1b%(RRH;fiQB9 j'$ASBMsS*. ޾WA_jca~PQ S<%iTRLk)|p[ss:>A@>D%od Sa3Q[2)IulG#$(C6I9B* WX"n|8wˍrWS@ȅɷe1Mk"iAAyCUG^*/qU{}Z`G ]UC5TLO  o'#7@<:Kt`6똭h2u)sՊlNBpl[P{_?E (MloܳY\?z؄fEʧ jqӛd~6mƴ;f Hq\nc#"} x^7rWz%_zhݕȋL⁷|:5U3͝5O;6M3u1c'S Sb۝."{z}?_z$u O)@ %-ԗ84FB1D,"x{a襄Pr 8PHR﹂@@r+ֲO2FErzRiK.`zp?|Pa'eZDsz0`GnfPNjnnż~fvib+U'ڴv$4 Io&9D8WjFLhtjo> }yDQȵn{+Z;H%wK% LZJcym;ʚL: Lʊ:ʮnȣΎ08h >i +0cPҢFjk M>o䃜R~IYGuQi۶%""4P"K,"yىޠǝ.@-Re$ eV]#le>BW0v9l&CVX-"WP((C&c~|P't(d,¨7^ ?~Ʈí:讋fF:  L슺=chμgnLkŒ?hC Zfi-Po3䀑@/f|"Qmr"1{$G 0,G:pdG`\3P Hot Kr׮t vmRDw䘮*Mt!iv\gG o6Gڤ@ (O "ݨqyi"gyS@:z:/#"(b߮_m.Q@<;<$~,cI ,< Bx> Tdf'AjxBH>|H1=&AJ%&z,W&Z$#~$c>>?}`dn8N͒<#:R>*cX eR*; JBR2+>,ű ñ Mi. `&Q0436"IB//#68/r/z$Yʹ =:7z7`7SAxppPwFrgNAajoC1@by?,>F> '~̡~EΡXT$%t ˂fc*4f#dt>C¬؊:n#J;Cd>Ϥiֱ,ri?Hm҆ 6nh ph !P_4ƖIDmIna# @RV5Hm!QH^Ip$utP8p$KDeMRgPMuٰP&eDK}mq8ÏtcG5VלK8OX)Y ,EG5O .T';e]K? jk8b#t2)!hxch.|L PÚZtA^Ma9z }lFYpdPlHb7~%j>Dc%@.h@ӗ{#p_ r]Z ~4kVV><BK#gTdX?rr4}M~@A!6ZVf#e I$m&d:JTfz4IfH{4HgX A&<|`>> +!?(! #LXbxƖb*f (&v5bրm%TleGxD%dOpX8t~oX2`S)us]}Svmgx59ˍWv)nuR5/غɝίܒ58yqBϦu5,ج+X>VI#<2}K:n>0LiC]yd꾷}T89'CZ>F A9YC=2hهd5)Ţ.{4g LNglFBOv>5x>evexg8dXf_Bet'Ϸ[,&h? ? =%~abr zZ`9| ԧ…b |:5vĉmնm_ dIZiX wS')B5B:uKx8UUrdt)v `xޚk*Y9ISUv5w ;Ci>,.#";cY.4փԬ̸?FހaN] ƷFK@h#p]IF_cJd5SvdX/]o;'yTlף*~#fgb<^Ɵ+,B)  8I[f a;2Cא$4ii$ `c,A~(EcR'z`< z:`aR7SōZa Gpz$KP|mt$Dx 7rtg۴o4GxzV\ܐ3Ye^ ;:9 {5x?"Ηng0yJ.I8Ba=: 7.R'@J|d5t7=jL9У}W>Q+Β;<96 tLzǮ*OF;r a8| 0d>[_gc hiݿ/@Ҵ(|M͔OÎ[c'.|( f'b(>\&=\=|G8ζGGרd ugOr<q 0<ḏ{ڔoǚ7y-wJt[X? 2,H䟄2$H0B2tpE 1[aLj!toB-W,X$ESdAr9 &nYApz@' gD I9x)hAt(wPAH~jBt|l&3Ɂ*Ms?+B#qn%OFVWYdaEUWC"ݱUA"kɫ>q)5W-aU Up-_q)ʣ-p(!ʶPM(,878X)1Od,cL>=O @&@^:Հ1MCJf!yCWV͋cq 80Gmkې b5)oH7JG2ԥ:dMkS?|zS¦0I"D7G*M/Ytcdd:֙#qHMtɨbBKTU8_t D(V0Z!VWE+ 0&xVₘ{!B0EθHR9L-8gV8}ϝBrNLS/q vda?0f[AsBꐇcWnx06 s88Pe8fZ>π`->4 )j[tSE/jVψ4qJs3 %Mn(U?&JH⑞&rg$ 9r%_4EQ urB$Ҧ;"Q"$lDIWYթKvGZW4|5RMxC9L8|Pfl83*N`+] r dE ~m;?x-RX %+y:XժɛTw.Bs& M M-xc̡^LG <]R?6#"p,#;EOT Ĵ@A\E6q@Բ6m GGʣ4~Q*ۮ: q5Ftzte B)K.nT/Y@L7%< ?ЇAЈN4phW,:@FT#!-kӒ\J Oi}zXUl+X9r(4(@[@YL|X%Fݥ͆o|-slL&hI8JB#8 v/ FmC28 'uw1#cxg逎xIXPXOMZ&?u(0Y2*m(-HQzS ő?)IMv:t4 OUu\ ]Qfd'Eф֏p^O+iҋ L*Dx9-AW 7Ȋ@ROsQ `ڀL+䚜}s*8-jE/`*#֭I`"57 P!7AP ុ%.aÿWR&]Ћҗ>3C ={f| "At;A ?(шHTrGmN%dR$}Wpt )V5g (@)6Y_H[V(${'cvt%:!r'bXCV,8$eh(uuXh(c(0! :c IEE"GH!ac<DL@-a<ԠK<@6Q T=xWoR_jcxaM]-uM1i,?sNcmġ >>=g!@WQ=F@ -e_ NxA!wo |`0Q1z!B/1r=7S4b=a2(QS @b3&@5T :ԈTGM4vR!GuAviSCrf7=Vm5l$lFk7sBH8eFsdXF88:C7cCI:(jP5ugTAZtcH#!4 2!F4J/F[Z=.! rqYqH5-hMqx S>fߒL,Ք_Xk1Ot^e!@2+==<,G{Dn10O e.900u0waށQLQq1"QR)2(pqtA A~WDJH׈Gq pARd?ҐS#CeWw&7Htf1&etde0'Xr&}B$BG:jv:78㉃۸Ep鷃TO"^6KEFF*r@ kQl=j1ɢ;SbcL Q/>Xq>kA!/%am8yk0yQA$kt,uQNƦ&&^YZQ^e8O7O\ć{nQ=ؖxmPak؄r~Mua(o2Q>NGR(w,OI2ɈTWzɧTB}05`!E\F$蘎c'd$Vc&fYHo28@'*&HTs%/ȝ`\v_u\T" EQuE:2rWy;2N_q:< S=e vjz0L"n?ft1tqQ_NfxlŇͶRhTWb_=Z'qmo'x{mJOFQ|9tnB%_1p/)!R.d/X^)q>ċGB Sp:`cqyTN (0~G%(jqg:#LWuuWtcsqӏ'({qsjt:(4$i6I:h`"9UU)J  Z|4Xc^NI^a1<ҁP$@α\?\alQaxVmq!7yDuN)kr--Sy)CzZat!°V% QzQ_0K2A^E؄ u +{/a6RY1_ye1S2sGDPDC;8Fp~#,( `'8v' pWiGpqCm%Br$r7 `) X)le&r'yxEq'[܁IIXd/8hJh۝4\w4 Z7iqB JZGFi`cpȖԱ:2Z#ąU *z06[7/[h_ y[á#ġ`1N[9R?kq@^8.+5O ,D]QPS>/C{ˬYӉWAFCaMQ[1|^ 3沯QQb CKt1c! 7~3,#면@u`Yi؍ }p;L9Lq_S#sD<%r#^]Vt"b)!lV3|2 Jr5ruih}u}zi( zzNQ v\&irE bo݃ZjZgmLiw]Q^iSNydP KmEs(A_u?"7}.^x8*3"64pqPAL_KQmˌ(`r>p+2i񺿸=}C8 7?TFq%aTM;v ݍUK0l9 ÂMB,ZS8P7T$rS7gr&WVr mft҆i 'fIt9Wԉ?Hݨ | b1z`B|Q*+)湿Oa8<*iAc-UoM1S톡OqX@qͲCglRUl4sf@8T\chi\jOͭw_AAv.!>la!j{=Qm vlcCl 4PQ%#j1zWjX]@؄Nk4C dN#lU,Xz+pz}X^L-Ƿ斐ıElmoSL_gc22acMmнyp!S TC;»9=߷jT>G߅v9XrC8ϩIW]uc er[Ls?/f^hę:>W%80Xqo@#ԵPQKǬTvp ˸R*u>_Y=҅7f2;//т *ϼmP\ ą 5d D|A2zFȆ>2"xp%/{p '8L^|,'5Fm 5Ɨs0a֬b >5Ǎ;y@<gϡCngb Z🎐,40අOߺQm o{׆ %HXa \Irec"~dQ>ڷg>ÿߓπ(n?CJ" $pp N  -9Ph 'WdE\ F(&NJ"=p0͂ܜފkPXH";߻N!yǑaDHx>DEzi6qO ˾=` `F8xk\zH`Wb4p hiUA5-80<CʉX 1ġlQ,Z ;xl>9"̒$?'=lSDg4VX(5$jSHu lRcǿQGyaBBA+) n%-#yL h7ؤ̏ C]LӍxăJ-Ν,C§Rvy[4úC!Jd6\q# )y8fpR6yH!R͏`K!&B,en"&BN-?B N<wSy?0d ehWbIK34x#zYп`F6 p`^joH8Ó6,bC Җ´<0xC!/cSKlbt&YT]FFA#us蔴S#q"q׆ 5)AgOHp0pZ %ʓ9Ҕ$=o~"'p)D ;(iW0)C:8@`JX hyJ!dt'AgvYieI`$%wLd.GMUӚ2RF>7[3SiIdDהFЉpS><{O'9m%,SM~xt+sщ%ȧqx]쫞uԭnuUg%(ss&L He%suRJj̈́'<щN^Nݤ^ÅbY ךM^.+ UIDO3/(pRa}mdc?oV;1 keMr^i6pUy#)KSQAx~Zp IU:STY<#Ro^J۪#2K2$%n,¸( # (3Û$! ECʒƪO]P H Ѭ FA 3ۊ !7{ꩦVS ȣ KZ$ꁵ5R{:HCa9\AH ZaAxCx: k}Ә=ë7(  @ QԯZ7(2w*逰 yɱ铷 ㎆k8?#"C1+8PF陏8rWt!#Y3z3+TAQ@c#'+JȱǸj/=* vԫ@ڌW,VzcZ]ŁQ=y 2;?Q?9{YBY.Lj_(Q$H PȦU WK«P+ A9S9-3dEٵqҵ Ix-g147ӧF= (z 2 lpS@ˈbjKwkD룾ťAƝAdd?j>+ddF*i,?1!Y*A#!%S@)9ə!>*A)@GJA yuJ@@Q;Br,SA?A4Hҁ% &lN:ƺQ[:0-V;H84- [ 4H;.;ֱN@SJP$Ih\X]>IM K\ 1VU苾f,*o}iW SzGco EX ^W$:!z!F!J־ K؆"*"ˎR?UreXR UH_8 W@ >tk{l ]PxE쓍??i ʑNڼӳSa>W糍v0..9}HpB3[1tR4LJRlOlbUE5&=5.0 <2`P .-q<}lGh(  ܵSj/K" !}W*pގ︡H_t %"]ck+Wcp&8*"QL뫂KXP= ߖA'8r8$A; 8&hzIjSIro@*Lưܥ2h,@/v4=W 9Nm6Hػ'$X\OHNUQU VTQ-l-%Г/\0s)dAĩHn טoiWMD iCo3E3 Ǝ*}-Wp !p(U>F rWsgX(,j_qXߒ*Lqw ψ\=?N@xM4+ G2GpsZr үR,ok ˕Aս|mKZKs{ԍA9O[؋zFa'4@4V EV)cǕAO[UtY43, ?\򲒨(ѵ.XwIJ ID#9Db[NB2/}:>֟~*:ڜ5S SܨȯQhH}7پRwс?|UFLe<}k:G80'"я;#w!3wx?W懀,gr o>7r  xPJ fcxHXZDeSu6]Q{A ؐBx0":4!@ hRdI!reÖ, 9"C:k$Xs$ >(9PNG 5HC$V&|a"?xƁ! ) ߓYg&.\†ƌ%w̘l!o`4jӥIoak8qEǿ :$,{IȐd$  +ghuӡ۶?ܲm_]:מn!$ɐ }ۧoahPS``(C(aA %-X CB )#!C$*"h0bP,-&aiD15yOjxOtI6mUa u7`O!e` TjxE AFH|^USH=(I(}@+`V35$<&mZjONURI-Qu_tH[լW|՘]\l+XsM$jU8dDYaMXW6Yex`Ѓ- QZjZ]mᡷ۾I`W o7v +lц^wI7^ @}z'?'o&]ꐄv}̧+a+Zf(b3}@*PK+c3i;XVVXec`ߨ!5^)%WM_-qәϏ ҩ:(MBm[^O gaِF~^wVxkTH0]j'MyB!ԪZ)L&Qr Geb'w}EWY_PVauu7P1;7Wn56]vٷ2qCvAZG/{t',]u²Ll:ށ㿍y6F7ocl@;-+]&A^T(.p! a"KRlD1i;TӞk:s%)JUlt#!GH+خ#᠊IL%ڐJ_ 8!O袊 W8dNE丑h9TON$qӤ")v7IR(B e $KUE"SARwlyxQ]dUҥ1 ǖ-&P-&gGq՜4ݳ>BA\!-ǽ1lea_‰6\ CtYN!mwN@I@3cq:NQ:8g)#]. +#hi0JaC!?LK5 G3*Mw(%i;Җ#E*o l'))iQ =V BUڹѠs E*Րܨm#ȋ-@Rέ3]̪⺦ ZV@zqS4Pc^nQ:o`,3斿;LcaZ]4L*Q`O0Obּ٘y ={&\\+dn.(5ss7ny)!섧+V\O> :!} }b-> A RΩcC͸T"Z g$ ƈD7졌 BF͇@(I! ZaK틴/hˑ(Ml8u2Ŝ;/{k2 !6$XOAVzJGfX:uZdI)UNEvi%E'e3a6V5HR.1en9̰RV#TvaDifL:7f1wLA+M}s4Gh&s]z4ؐ]c3m~+p?ygp7mH dN=X?I!b [PY-m~~U=YIC!U{C@{a0щKCIC@(-l/t]W Ҭ9oJ58Ԇ=zH:')N) r(:$rMR9U'\R:Щ{\$_($V (%aȊ͑ɮXJW؅]xEJtQxIلY$c`yC2V\y Vmev~ ,H&'QH*TuaDVXEKN! T[X:M^ hzYxŊMmNH[ND(>$EG؋&y`,afS -ꢐ"KͲ(YADDi^0f*`Z^WTfd"DOPQVi\RKOlcթ;vflz >F4,l@ CfZm`ux#=rߑjeaCYtW=\udz)Pf |}}ѺQX($XBX7T)! n+*NVRʼnQ4Q[ +v_@@"qRP$^ZUBDg>fal\,X,6D.0 Ѝec͝cⱋhmFzF͚oR Vmwasf㤈b`BgΐOhq%j(QX}IB0֪⡬jT!xq Bx'RW*OQZ_[pJIn_Zhh "FOeQQAk[^N Jbȑf+82UKHĖNx7 !?j$h#sl`oq]ƶ0O2Pr*+%SHȐJ^mjFE2 d'}( %T mE$E%H{e'9IpAq%x-h83V+yQW&|Ne&b .2_+.Fs,D*صr膾X3:" U?@C$a>nA|Ect D6)f`ђ6MH&p T4Dh/y,O DhjF5֣ f#f,%mlQ\5lĔiLFC$+smqp0/v0G[#% MHvz^Wj^$HuQs)I!$:_[fk +,RW FZGdJf4QJxlf1flij]r՝//nV)GFe)8D:yG{4'{ 6EvZOx.$:b.~Ep6^ֲavB4gIsᮕa^ +K ɱr%AY`KɂU2nTqfblg1bE7Q[q3ɽ.kueqgqI %4u%Hqa\`R\I&LVPTtefP[j7`~FfZ`f)kkmx;lDG4o$tZ /:`͆uBѼDk%Ҡoj{*Dyk3yYzFM׎z`e+y`0ߚ&:OnWr%HEB.Qn7tkdl+1qۘ2V6no1`IxQȮ޶Qy>@a`jP_S ,'fm~eXv}W:#ٯ]@Zm{gO-[+}EخɈ sT>EMK-_Wr%f&}*5os5MeOFjD=s<;⌒Ǒ>o91A+nD+ #N&Aƛ/%btՕXH&J;hQU\W<_ уU`X֗$f# k2O;2]=@\% 9 Ctp0D.bJƉA~A \ɓ!Mh濔3SB"+O쉒P$},9%A Μ6hW(<0 *{Ή`K-YR'ڥT~TKO,Y7U|vn@O}z}C`Ǎ0qDž >O?>B@;+p  W xbN Nԛh=qL@xA_(BLP 5vxh>1GMqQ }cHH  2*D h7#l:^ߴ< `)mF|.ф'ݚғϤJϮ&B |&\m~Rk%+PFKMLӼHZ+\kR;԰r˦{˧l1]YBk^33C;3+Ԙ=nZKr8ph}xe5MԦ;p ͎N{ B|^?g,V?cPA;5deS%XL4(` dV2xt$H9CBԐJ $ H6 % In16* '.IVD,n4b5'}%,tq2$[ҖO`h)79n1LvϱN2jcmȨ1!*ZǺӤsvݭH&s $)-lrZ:W&;rՎ9Vt3XOB=x ^aO/=H`/Š5 !z'=i wcєh>"&rԢHE'9y" 4>rS,,qrc6xMiPH7yN22 %R[aYvnj/[K"82]&JK7J4LxdBRM*v9[&R*UYBd4dbRMhDӥtv*NŻ0KYe%oѱ[ TRzlv3w'=ؓ~a}`<0fb1D3E41ӄ1M 7WO4V2EBZ֣wrf:@8v!RU  2=6yLc@R.INZTu>b ͵'c%+V>w!DKqQUe)l+ &/iJnk"0'\5.YL!YНis՚jdCᑲ6eJv8@+u/諏'bK|}*2~`xeaρxB^vbzc; e:_́ 'Q8g;9$!Cb={+BH?:8JDeInARj|E56ejMt 0ŋ/~*Z NGꋇ uK\M' +gZ80U\[R2%p.qU\gG:t 5or&J܀DړO|k. '?, Ƀ~ k&0juo3];{@1slhFQ Nl]@t4g ~ -Tc8FUcK'}.KB21e/73ۜh_AoJ9y$[GِOIzoB2\I\)G\¾ 5p l+VDaB$l dBmX1JjpXjr"% p\QV0(Td".2r"(V%).\*cBE) v->v(ljX*ϒ:9jNZ/ZRI8VBrǶ"$ւq8V®L*!-8wԭM7w>* ʭbz@;f^h<`I^ni|lC^@$l"z`&{&p"g(ȴ@6n,r0,B:F(b'\#(G\f邈H0r#)hzFhDJ^хkW$gb*z^+gF d'P&$:.s.s-k( Tz2"B3.V̎)PfV2R"DtNB2t0$mu@3T'NL@-ܰ9 #_,6y`/ ^}CBKB".ʞ&u &"~CaB^(DNNd*.Gne^eH6HHD1#d"j.xD.R/ Dsf("i""r ɐ捬KTb(> E3YT0'+$lEjf.0'Pd\B"~*D)nچ' G04$qN~5?!U,MJ4uʪ@ 4x=&sQwr( sCl?)C8Vqπ>FXkW@]VdR^fF7h>b, BR2R-$"/#EsR <m\:ptd.\(C,RIi]J|BImbSPqptj_) 3L%2 MMXx3JLw/ܼM8hj[s#FPso%gSPR%#3ᚌ=sRR`0i`G_a (LTdL?QK@j 4UYk "h ϸBҒBMX:tKhF.0xl(Zw%vL1s$  .Ol뢔rq+g+pԾ|,~H(.sK l5&0 'M7;3ڈ'[(v9"GwlS Yϫ#𮔧 ;uؐȶ^f2()UxR'U1R#g& f~gD7F&B΀&ft,8tfhKfLqRf/-gk-l8@lq.`,.M)zBќNSvG Sä[ $ž7֎T S¦Fr-H/+(dIEq r,󉆍,RMzhd'4*W!}swX4%Ċ+vN3 cMy7ezfBC|ԃ;Pz2U~#&DL ZK+U%(l`2f2W=bl`@!ky7?4Cmn Pm߀&ZdOr8n.'Up'bI .Kp'z̐h0$Irt%Q $ i* p#2YXV3."705XB K#49G [4cފ,`c?L5 LW̡.{6̣ё3'+`"쓵I2@G8+7@"ietKk!tlћ WщK;*YɂjvoVG'y@W#,u?i]y $tV& UjYBD QNJ)m"Rb&[>$0 `® f76\co!zH g{#:.͢;7գhp&̷]|=Գ!Y|qᙛ~}Լ(w?L1l!2 IgiWv'nhІ&8 ot]\ofEF_då(eQJ 7.dp )5ETpi"#&*>s= ;h{߅pyZBt.ԕD].g=DATR*QpO$R0S1ٔzL]h vAp 5tj\rbMW_f\I$`zٵi_M*^f])iAmjfZm-ݲ[vNGAM'ur$vq]y Rb1uKa䑃M'fBiу:DNh|-GeBfP@$8ADM"b܆ؕSYL+Q%&e|iR$RRD%N1eVND`Uu1UDS9U8d m? ^1Jx}) ݕ$aIuPc:)cBu#?cgJkjڭvۮbApŮ.z ;lr'ua*{ @y |M{7Anc8\'GW ng}BoAcnY ;Ϣ̱(=#}0m3|_iD|<.7h?OC$!THB459Iƅկi3yO3= kZbM䃞!۝t$OV@-[㞈8RL(1@Mp$Τ3Vs+XVmr2qb#$r,DJK҂uzygsA ^TҮlkh࣏ Bī#*Ul>ΗʝDEc:Ry <^'.K"GNգ 0"04I Qt=>\Ԗ:1E3A|jB i%i^yDK.d҆5_ǹl.tl8`~S-BXI d#3h9d\0 .o(ⓟnB&$O񔗙uMG`H1䭒^_]u!,>*Q7Wq#d<=Yj8=M4 GT9 - 3Lm2HY! "JIf.a`W^Po`ƳF4h:\Ois6Al-Nuꮳh= wԑjtYyշ-L!W/9JZ,@+ ʣG: G4!c5@56Q:}l(:0 CG')3A2<μ!<a򉥃 ^3Q dxxz~zґJѲ+][7yDӅԦvb !oa08&Y/R0joZXWڗW4:ji~-+iZ0z $AcI[pC;?FuW(TeZY akƠ׌WܹJ'LlY.gch[Q4涭w> XQEX/oRc=D,2ӝ_[La{  'hU/@;dXQ DU*kAulQjuqQjbUvh7!FIr|(}9TDMU_50m_e]3ww6T}G:JlfUPm!;~a6b~ .ֳQY>r!W1~!N@@Td+.nW%qu gpqK;2µy#0H03!gHsgoA=7Xm?$$[:[PsOC\14-Y0'v=X]tN@ uP)S*EKiQ*mqFŌȂKi_aZE}uEojv,uR0a_F]"A`:7wblaG`ITLݒ N:ԱUm;ܖ-\.Qb~;Q@6ItU$¥X@0NLA,R\+trda @\J":V|#m5>r!qXu"MCY0!Z.6{t0t\'s/Zg%(&R.A/"W|"dC@ȋ;D=P8D6BDEfQ*KD|Y2|vQ58q!j㘂n7%u!k3!{rG-HךD-Dh^F!aՂ$\+ATW<҉pO‘g3!tR%"c1!XXf{PpzgcoA0LQ$ϡ##t5#"e@GA["X5y*DI;\h,m+rez> N!l7tC8?ki Sf0.8P,b6Lcc]$irshDEtŒ_g*K;:wa^VjdiawEq^鵤{|C=#"񙛓+ S &+ƦCxűmAhSm:ǂUm4I>t=IRqOʹ!-I0$<YzD0%X*{8pT8}EQp (= y3M=ArEB5aa#QX)4@%gO2"w%.B;.ZdyC bWY(i]wK'/j'n$%J|h{3Kp5Ds'M]HzQ,hiKjDSS]蘥6ilCU!IGGUɛܖBl$y,B.߁xAVl/-cb:2N2,PU_-ɒb;+С\q .F.&%c SS^sLo_19+bTKҴKOs'VvxV˴zгݘ-]b1w620"VÇ^'ag"_+J 1,ĤIUwtl};T\5,xIۛk狾髾˾ +Kk˿ ,Ll  ,Ll !,#L%l')+-/ 1,3L5ӬlM{= e- IY}D.1ȋ` k^n->۳] z>}~;;}o ӯLJDNiN;^#V>0~:ԎR߯d2p߁ռm9,Җ|Օ~ω ۡ<..1ddژ #{ 9<:LG_%aMa04d %ƞgڂǛ޽)ݖIҾmv00m2Mڢ=>Sq mд VнA+=<>dq]ȸm>ߛ U#Z nұƻ_`έ \`/έ÷/O/!,gIQ' G5A33 fEH%XAJ(xRT/S9C290;08 ߭WU! ^BHC3>5&.@09bYF"kOWV=FJ"C&#@ _DNhY\UD18wT\ <)6=1=J:Jdaɯ,=ٸiKTvY5p_ժZUδpNUr`uOSeGN? ͒iiq{QLhtHdXSKd?wb~TUmNN׆VzbtJJǗx][k_XȞV?OrKPYZjAtb`ډfٺɀen]N:IU(wNLz͏f輤mGJͫ҄fRO8s^g^hɈexWyE`=@ڧR>JX{UTSlIc-v箄\^}]ەeDfK,%Z1%oX؄_ŭ،o͵l8(XV66ͫaBWZxJH8E¨^6$)~Y_xٛuyA.jWVL`XHpí߄OӀRʆnFZ@ŬѠO5:`bΤkbO}EN7Ј^qR[ۍ\itjiկɚf<9MSS6Җqyfn:rOCɄn{W泇G0˧`yKB֔ܙmڵw᳕븓wkwEu -w_T".8(SND{5#T|_Qxе'}z%>㽧PmJ=ao4=L!φ ($h(,?8Rȃ?σ>n<#v |uS ? }m8EgF7er,ٷEw?ͣ"v.)tix9U[c?&Pqd")~Dk,Av9u%l)K:)KGB*u,0kbH KVC,QЙ:#ju0J?hVr($)E}G. t`.*>? C%^$ T? C"fvFGߐ'8"aK]{.Q7rB*:-\3B{[z5 ?A3rPKx V'|@IARwUv] ?KO{,[xrr$ȕ(kvkۥ /˺0!pgIGE<%0=sKFAnpA!NT,W ՞ܺr#.uBG̒@~ DqgR (ם@!ǯۺ5E?^D˯tw 0( :΁   *P;62qD F2rBVZYWWZ(A00r4Q2<<f"6,b"E'ZX-z`H1h<5p|H9ڱx". IBL"F:򑐌$'IJZ̤&7Nz (GIRL%3JV#%,DeYd!%0{Ib dL2f:-eH4RjZؤ?YMә 2dD-RK̲,i PKzvY:SNyLR $*q(*Vteir:h]0f(}>Jl gɖik&خ}h^5skMVnV%뫁9\l.7] d&Q,lgPef MS/efﺳ48^N8x㛄KHJevfxg{Ve{pl*{@ySzfzCaz'zaaa&yH{urDeVGh5nhM|6WSN=owsX]6fRU]+5vo޴~vGp߇pw7~^mw~Wbw^veWtW=(oA6x18\m_O) Ā  tw[wxZyEAT\BE,^_QmOjUg[_ x?YGV%GnVw5T~Gu6i,aɥuL]`~܇~f'p wpXeW>`jESo]>xixwRuՃx^q7aY!'t !P H[ZJ5os[AU(sU`V`yhJk5fPqnW\k%TEu4nYj7ً.WLo]XwwixaZƊmY,(ZtKt,Afm8y7/gaxssl7tYtte9 Tz )b)P&`ЉOYh$f{bhxrڨ'مi+INE~nS~Wk焼vg٤A8*oDH^Oycx4V^lUeƘ4"븎P{)bz)xxA(ghgpyzssvY`at,舜{jh4R~^Z7R0K)9SZ7BP8A)wN hRu8wU7q=Hw+zYiYc&1 fJ3*O^JI0b t( HskI('㩈7zy闰if )yͩx4\H|33KVs Duu|( qij(}JьD9W}!M9qY,X21clZix_eY['f a K7WMEUZzTjYY:D=Y[]ŭGq5+Б`K\=ȃr%PFG ofpӴRzJHH;VUVwqRM)wKcIzD7c&T9(Z逝Ȑ?ӉZ!aKuEMt!XAcYJI^י'H? gʦur5fP qՑLu8:?3٨'w Pȡ?|u~EGV;%ۢ٢i+ڱ9h( uH).@۝OqCGaDqR*۴Q;azU{\[;YWS<q] k3`NGvYS(t[ZXo+j=`q*8E 2AYh$X);˺3K?B C+W*\zHP 貫[ι\feUdki 0m[ŝcC|+ਧ9i KB!L?xՊ\*Y:`|${:<|ɃQ.ɞBBяC1J6;'<)| l[ uKbK\f[¬f{G\L>09}7{Baʡm{[cvշ {;ƣIFLI,bW=8e붪( lʜ,i\ʫl9_q&D[FK/1`LKayTIi #<Ӧj\ =ǜuȬ̱Jǡ9kNWiMXT[̚opj bLLxg  M(Ӭ|خ=˵I,L,б(MʷZ$m;hёMšٖMY1Ü{ <ؽ* ;<FH|^ڻ KЃ] ʮ1-#kaa{n5̫H5!ZcVmӽlĆ,|m0s.?=T)9źiDQ|Eԧ^M=q\PMb/ [gmRA&N=RZ۵})'N,=@³5%L _("-EJI:lK*|ט6}z)om۽-]Rnn\Dž8\bwbnΞV?!m}緋B 2yZܹ^m%jW6.R6i_ۧ˭πN A!_ sO'ɐ~.L N ᤍ=\إډsߪ[뵧n.?œM,Uqpb{%m{WݭJϭ=\M[m R YV?Qž@_Q6i>g$rNz 2n{nI  ,H0Ŀ!B PÈ#^F #r "AHDRJ)s#LdMbltIJr\1u!S ;ZmVnjdd9MbVR6M T.mT`K70`p4Ga0/>Gd-<̈́Iv?,Y:eU>Rtil)u=33@uc@ nI-\Vw_}Ż}FˏMb0^|>jC=ίX2DI>ԯz#гj j' \)H"( *T꾅(*D:ڊ>J+8(=L3KI0 2Hs: "e-~q+#hN$/,@Du!(1AQG=u0PVTlIWC @XRIY┫JKte-iZpܺ뎣Bq&9s]N`9I} NcEI6s#ռg8f=L3bF=%wI$&x~A3{n>Rވ'I|j  r:!4r:3W(#S{ltO$+VLS (lЩ~M?XvMZډb-R;Y64PL9W.2ꜫ- օ'!)2(D̐_ G)'jgvXk4&Mi*Ɉ'F_ ÛcArX²-}p|΀>Q*}- АA8 ɒ` U**}퉟䠳݊l|U&Qm" ֵpQHCZjG!ˉw ZpT#ԅ|A\`ҜG1t<dKqx$*3XȒM$H7)sْE,Ya(Аi%{:&<51+:ZoɑNΜ̙ gJ C2pN-"S8 RE0IH#[$(G+A<l+$Uõ J-*-5I`U) `8b̿(}vq{/ wqzcNaP_ٗtv,_GWP"V-i'zv]>QrL *ia-n0z_z^Rd.qtY[sTLu%X)+MJը0ÿy *e++USUĺЪIַ I! BpKR4nۺBx[‹Գ(`/3s%D^b}leWa@g7uM^JTZ3q2h$ n|[!U`YRN36EnJb:Vn9\EOWA(TfEJ$ʤSªarWW KʉDZ-sH%+k)t&l&]8%@Yf<ㅇZÖğn$9v%ԒX|nl=P1=vJ#шt˰WV{,H28%)IK,S%IoN$~* Qn >I{#ʢofDЛFdjDlU.7.Ps G<|OʨLfx=VtDm.o#1cږ`bG,J_QDӝANF%mӎGw4+ũ$J7x5'!#ѐ{:},쫬¤# ٘s6d6܈c>% J,JB% 5- "L:H0+;8.D$)0K)0[<4D@ETs*P[/[@+\8„Dd8w׋J;H# @+O S+[%K;|1sB"r0sxK˼k1'0Ĭ,̧z>415C$Ȱ;|a- H|D,9BF+Bj$ pAG$8{7׃DRt7IE0E] ę@O@ۈTE^iW3Y7"JE?+J8EE4ʔAH8wI2hI3)Az F KnC˝G(Ƿ484Р0r x,G 2˵>>S̡Cwp8H!CC6:|#$V[J#WK,HR;CB |xJ;HtʤJI4L@P, /P N7OJNHE[8OAZT+l N*D3\$c$@bE$= ɕhJ{@B"$EFlHLKF'F>,})GTC8{C}-,TmP]>v\а{D#Ä4*|B>:$=C4)R0KH0EbQIwKOML NH4IE'=E *ғ)΍Nϒ3E]ţ$R"F,FJoCE,$B@K϶sx-Էd$u4spT8KBHӝ-,P ԃ2DĬ7(KL8ˏYCl# QLG S%q ;d9zF$e 8-ʫ8MLɗ\%EMTTTmvFPwT]% V=5,RY}\UP^T^pG]bMZub$Z#hX@5r$r,ԥe\ǐuCmǤ]Ej]]HHf =mjk- UBb_6f&U^GbY g)M]g)Vgb,~Q8lL؅]iP`N>8~f~lcUPyE hBhƸ--=hl z%iG[0&_k \46_i|&$E_Hl`/j`eVfbjZn]C-X^Gs̩&_! ݈Fke+a:5L-4^Ef~G]G-~6]?64*vbuZ; '& f}l~lR%g.qヶc/דҌ& "m[-&_mF5h\HRqiel_&?~疐_7 W6T;r4s>r?W7媎k6޵ፀco60f>kG1ܕ'jFGVuGXs uROulG|!gX 1 |p\bUqE$qf `Wl^lNʅl;Vkl,lq?m[#IX$c<.mrѶNwm~~{i?OnlȆV3eG߁ƮnngTT܌ej=˷sms Ht6t,=^,utvh7J7pf]% Q?u<rC^G8Q's&HZ uZ\pu_ascsăxʃign〾~qo/ w~r*sO< mն_vhwiy7m}:ll&s-{fw|w+炅bWqxgpsxsPpf^]ЪF~E/:tHyWކGNEf_m&`upuVބL 7pf8GP`>;*]'6 E0N#H(Fl6r+&Ole32g,xJM8ef'لBVP$S iΨOQЪԬZͫљ;,Olۗ&ml&Ƽ 7l(ߋl߄#2#Q`ÅYY2Arl &3АԦUN=ܹװg>ϑs Nkn Ɖo?!>`v5٨󂏌W>| vmw.xn IܿކZ4_V`f9d@qƙAE8c;HHbudXFMRC d_sdYg=Z(4Vn%aդRC cPYQEӏ+QQ_"xOOSL1e[vE#e_qdؘQDc= Z`f%tBm!G i!ڀL9(o旟x3!wUW];QGӦ6Tqq!w)DG^AT퍶~Vwdxrg BA]e!4DQ_"d'bIy-qPC3HTDAT6VcMQ"qNMmSNoJS$Jrc#;fiɦ0cIfP%AyVYi)9* 3-jFe*DjO/\Cu/^w4s%6V gnl4}3h߀{'Dw=W6C87Ca;/Բb s/X.JT_[4iXz7V QBoMdc9ٞ{6y RS8>5TX ONKRbeM}yohT*gh )ΏЃ33z>П"xٟhv -p~R}*!D逭 `)OM:8DPն&ݦ57 OB% ŭ!M;Ve.Jw ']Ap#n&2P^,._e,㌄,);fB< A)8@GL*zɎEbQm 'XELVѱY &:=r1 cUPr9 'iAASC$5}H E(iYZ}ӮUeJ&L5]Ђ̼`t#*cnɉvK&vm 0@- 5 _ȓZ:IcJeE: |:hM*"(7(@_F#1ОU<,yI$RlXZTHEWiA*1!ԖP%DeCHx@4ēfIFQ4)gN(a;fTPM \#DTq6к6t}-aNfMHVS sgY1tT3O~>A׾Q1EuH **1~aLV)`s+Y TdD Qy %EA[>Qao"DJy25r?(Qљd7Ɂlq[5 KXd$|LJ2X9V/bECvuew(3~jO؟hӋoLL;biԮiv+j6ݖa.avmT"FJEނҽ]T =;"I&#iHF)%W-ǂhXcakXkJ7a}:c{f1HaU&QsЊ؄LpjXCcU|ji h1q T(uFJZ8oIddLn2D 衹 [{_ٷHݗ$33  oWe$AcJg۹T5ɸL]3y(ͭDFKJ%.UGՇN|<P!0NZh:z֬ht%\́ ɩeblcMGnex:Rc<-sFaNZqɣqnŻFJ\:Ky}2ݽ//ށ,=fQy-)I7/{h:JUg.]P0|=K"G9W>QC'$9}?:N/6pt!ڼ#jƚTZsriEځ ]8]48!APVXA I˩ETM V]^o^rR1aE,!VL<\=Q`ޕ^uyMp `N8`-Y)Q* F_ ^ ͜A H9"b!h_午 6,6`L)ͅaUt6L| [8AD-QbW"" a"2ΐҦQa*$2Vᡸ778` M;R^a\YrY=#S@Pa-\WN`aEvȕa!`9FI@޼AvWa9œ?c6#̍C9T#5 bz_#1&#>bP|T$V".bVy0%S[UUtH]AGsdD_5e۱ #(]RDM %R# *8X-cO #P*NML0LQaL5$8[8?8*d&LNCf&ȥgFۜ @ƣm1R"an&!mFaX>Ǟ"]='m^aEFAYijV*w*xgk=&ac=h{Lh|h|g*"^gCB&66̟j_=B84]埄~MVZhALhWRS4TƢb[eh%*!%gP#bA'1Ҫ0#j!8feCyBLf^}'BD8^*~%B"N"AƊiJD)M1l)?l^Yn*q,r& քB: k"j)='gDJ-uIa&M4Jj}#ټkyZcdOlM*|꨽jg4mh%+LM7JؚA볢 Ӳ:_ ,nkbn}+]hkA|k-|!)"8eRwF)LĢ&Lc"lAF*ˮl<Ŭlny̾l>1=/BңA"ТYĵcjoR楔B-j>ON*re"8 pnff l}${ pmCz+ޚݷ· 8 "V(EylI%_Y.)7a rFC\hB2 %#2a:,.>p"'f~;8V/]bN/DˢȢYL/˺,1!BB!D/" KW?Ҟ5,n2;&oo):2ZƲ1"KE+#~l82s-D 2d!\뎊0+Dت\zvL` D&k-k(t0 ?+r mX^1ل#&Y 'q53ǥ*P`."n+'23M 01 FL*KF/B1-7r#4$r!s/+rɾ΢-1XE$#\*WDL' t(SSPAPDZt"[(1GO lٞ2qCyR4D\0D$"f1 t|]>j5c3jsR;^%.PGu`e9ZbZZyhk%  =}s!F!0.k[&3[DuC/EWolIL1h,6$K?##/Is;2$tC5JW?ւ'3x?pnw5M,xn9w2w)tA)c)7~LG 2oCml1cqf[C2]0[3o k3v'3Xn_"W"xrhMhݐs=s|$Auk6#@k.DvuCn0tt"TG/~T,*O>![7K41d7M#C%oA잢?v2qb:;AP˩'#tGK~?iqqot"pzTuN02BA0fqhC3x"ϟZLq5aC5{?+uhv8D1%Sγ=w65ݯ/v5v2>Z+:Mh6ojt[^ﱘKo.IKoVǴ+'u/w5x>5,w|nUp7qu5ïN€zN 5d7QzLtqg<~{2GEo/glkŒ#5'C'Ï(nv &8'*22W+r^;ٍ[ {/4[ď{|5#03غVFKE '=9G<;|~yП2A-x{w[O3xsw[,uΚU< R5yDv~TD'w?/C}1P =qD">D,΄˿OM;{0oS8@$(_2UP@$l,.nᣎnqaFzBReK/Uh涓6=QՈ @l81C(\U1RŐLVFb$cv,ر$ѦU6ֺe ݵ4c.k~]hb„k1˖^sc*Uhb wZyTY("ٷikOO-VxsF&d3A7&(b]:͏$=pk kPըTV!58VOTZcNT~7F3-=ӣ1eCڮQEekk2sO>OpM(xJQ=DShrSrW5"w^ݜ4 Qq8R1RGS0%cp4]pf\}řfq j-Gj7==m7OvT#58-pd'b˚`*f/Qę}T0|);YQH8hb=ֈM1DBfK!D9و4"LI+C#L&-*Άi\m ٴN{NBDQͅR hSj@ܴFp@K cҭDGnUM5^. &yQ_+ڪԻ1_E]-]q8T4N8jV)pXP' hh /-<{=iO\^ Mseo*iCLKrd? Z5OK7X<$3$*WI(b"IB xK('<^ȏ2L5ߑ8A$gUP\&%AgֺYd-j$Ay)JUv-}OKZJH:GKiEPLx! =cvi4jo#)զ;S]%Ɣ:d{KW LC3O :cO[ѳq{ z¸Ϩ>g6:Ij;WVs̼ϖJ e39t]yLXȼ`'9rO8IyH_вUe4.F&9sVo[< I}Uj.>FO©"фCn"Ҝk&2onDH "*4Υb`0JM`4P7.rM.;ز@Р-@oK4ϏC/b-:pLԌ4MŶG{B'HGFBT$@oF(Q~FFz.2ⱎ!BJOINn G PGh\ ΨhNpFCCoHb<Ϗ+ Ѯp!&c.PL.ŎNbClab.BbHD*F$Q*qRp#|D*ELf +@N.Ŵ`+!Vn2^l^k^j ̒)?Jb0Q01Y1P4%)&󄡠$pΏH3/NS5$뾮G5}5Ԃjq7W7gDHB!1-@8iM 3 BQ-6I`"q6aO%S?aTTrbΫrBl,(mQ( Rgz*-±$Q.*=$&E"1E.2q'҂' &BdCtTfO䦧Tܯ/MyF \o0ew0QT<30AK1L?/3KR@o ?$$ 4/E5-4泍J04uS7Om!gPn!185-sQ::q9op!49E7sqT1!aJ("3={m4TŊWVsh BsL0X?ykS2X5"@ A-|/_qB'/Crq-bbDEB,עUd|I2>$@$MGI-wRAfo/s,bjB1.16S%=O%13U3 53*4gMIWZ.gB5o16Y"OPu;g* :Vqr6rUQ uiWYJ;u9jV:I"(Ba6lq$pk8VQQ2v!6VmnnvjS5Bksim5qf1 3Tc@+AA#`5tBm1b@--1-:@]r.Tb+)p,i fxt߾*ޜI`V&tHIt4bт%hYb URdK2HRdejBeK"}E~5w-HU8P#9-ޑhr;ׂVi6Xpk6:vp-u9 r-L`.`BXBXM8pkV-Vx-Z8?o- vjV:+؂w8r!Oqv q8Kc(آYE(PZx? H_䲥5\Gb7GѢӂgoV-48r䚡A4-pYP9j5/o7?L OOxMՂ6;<9fkm؆Hk75Q6;U;Mt3AbYo2yB5ZB5ZJBN-J7-'zd-VE qb'VČv+"#6LG;t*@`Acn@v;8Zu\/,7Y37qdu|b1< Zqz?ږ%26E8TC'o"Imі_ Un6 qR'ٱ99mgɕ-\#nM;JǙ3Wy\iq:;;ZgWyfz|+U'!9?B0]q1 Gm{` Dl\CbGXw8+Y^*DțaĦۛxNL(*s):֡s Y;L#<鼷o!@Acl3|ٙ}|s;a몽"kEhyy]Yy %8?9ʧl6˯﹆YwxyXnQ\ U 8>E#q9wEץA)ccq0t8:+D嵥i-LT} F#ƥib^rt5tH 5"//V`5޸OsZBImZo/~΂Q1%ש}-w/?|ٺN)qhI|"S C0a\ʘ3ct*?pku3hÞ9u>y4Κ2i"U9fͨ2eULfrTBLT1  [ Bs޺7o[>{-pk;Mh ;AcLSZ*kl2f޴xhϡbl w{m7y.8pgCN'^k'_%vVX|5Vfk+PgmhC&i1jFGxp*n*n*jm#Gz|:E{54[{=QMeO{ ~*,a6I~{~ Hax!]qo|kMa{9XU\m$AC#8D8Cur |JBU2, 7b,ߏ`!Xe86J́1I_P\Iȉ!QpC'˾5dYHP4!fra-! y$1 sЧ>ksNCiջ0ոT(|HRC|ql'!#Y9);E-"CF"dECGQ U|C4 cqVR$e,INiP?1Yòb 14 vsHb9 Ⱦt-φv\8m;,g7Vmp=$LpV%{5R#8dG,JKX0 %#/"!nUAnLE.*_֝g@UkPLbLEgQ3iCN`Q5oUX!#8+jAy4Ġ\Ci($ҵ$#R*ʺa%+RRaІ|EiaaJfa?0, s]6;KŲKl7Akt$-YZ<]m9I܆vݳ)>s"0l:SK-QB(&QrROcU.F󫈴w;Q׺Sj lycuNQ @϶Զn=>mS7H5vzog洦m靉1 u$ eltA;ɤ-r^X V+%Lך$]xPV!SWo7CI8!e8MٖąY#{&f :l% ' "ynP)\)A4IF 0gYBaDztXCՓd%QuQ")!VP{0y4b:CP6i(F$oTrXS\$ct s_N{XY4$HL(ndt~R[&W&msr!^NX sM҄dIx>'!goSv@ -qB>%^ ?AtN O=@28@1HUwu SuV0&_~x%*"^"LwPP4t% vuA0[!3jJLjGLi222 :..A`6P@THU T 7q`y$a55St7Q9a6Nt n"D90H#H{nQ wp4Q:4#]9?I7HsZqy{ȅNeK$>N$> D"'hM$Yr&g 励hB8 5 8$3" rPP WD2s>tPPx7@S@_?2P@d3Xv ~dXaX 'XhA!B|P8 3؎O#]=O\15#U]PR'w1 P.ZQ.`S6bK` NTJ$!偓7ֆvc7/% xE@)E7lF'UBQ<xxhQ~8=!ozz#W1o1# rdZdhM} r扝g%|)'`&\YnY@8 I ``i}l&gOY81~fMrZ '  %?pu@ RsAFB Jzv؎xv/w~NƑс\3QK@I2Fi]h##v51U#X"C/n`q{GDN-(Z R8Y̑ `#Ж2.rr(X[gg)(fY jJ9 KKrw}Y\qXrf9g𤨊V3N: 1NM :2"MP SJ(Q)vPqWqPDs^bJVtu_k Vw'ie7x!/ EQʅxxձW\˱xRu$AVxqbG;4b9zzd$=j]JzsVfUVhZ1:}Irhoa d: F{di{JiY!R} @F`VYd[igte YVJPjpY~Mpt9hfe!B8' Q|k((BkP%Đ T K@n@np&Âz_aaT` +B qq t: :[ "UG"F(-k!!РkʅE9鋾K ( 1ް]`OS2EEp(*:/zDq'C&dz~xz^UcjUv`>\KH8RiDr[Ņ$ѪeX*c KiR;l[ٙ\A, c | `` ĎZNtt$ $jj br6DMZ}0 @t\ T YW|%!W|c? [{{q z`?f +F<˟\ ˳˦0; JpBB Ph;6 x0G1kGA$́cXxx@h(*:El q-qhb!zzna M106ao1\DH-K2[s9weD[1Wr(|\&=`*fJ/ Y}@ wzp{] 0 E?VTdP c^ WB 4q~uWG񑒳 ڰ $1 ۑ,XiͻD-~ Q 1G`lǭxސnB0xۓ+wGstmC)j8REy/ꠢaDAnZ5= &#^K,# a9aV?rRfZw&\IF}xv\5g*ECۊdz{Z^ӑIӐӝi5P E5F6 | Gƪ}Ii-S>PZ! `)*R@ Ām>dg^T`TP H`HDwyC Kn K@}=ٻJ|LL̯M3}̳M˻BpͰ7׭+r8/*\(Q7?(2hqc)c3iWjc"c?ҖGtZ"|$=ԓ B K6l?Al0ῃ%"Ϳ45BoC!iO"=FIRZ/$Ҥk%!B5JpX{$£ C eߠV %W _J&!?LUBAgr;%:ԑo;:YF'Oab,eoŽCjI3#o6dUKYFg ܷě7 xB6…S<ї+zGؙC]k@=sch K0H&I'%z"iE!L0!i*!XP IPCAHEb]tcENXFs N)r2"'CH&cIɀ 2!g84rN&I K/$sL3d5g3%D:%A(93*zhLNI>"E3L;E OO "kBe'F2' JpdY**JB$!]Ut*:Ԥh Dk%z-YK.Sk/:Y؃s0MY,ʯ)1 װd QfUm-~UIF 1TmVط5n7λy @b8n86{n䐉37#F`-D ;fgϺj'"/@2:Bi@^ZApA+\EŇX{FV;A;!"oet?$[( 0%/s3<9S4+=D">C'=v4d yLKp iWQ}:UXY}EZwj(U !&< S\jrycr#۷[#EH۸m6#ٽbd 7|pbC Yfa( H l6`l"0WT#0<_iX"4 bNq@8T18px2&!ac\\: g\3k@-gD&q8c-3OyF`m/ S+ZK* D8ymAc ,$ zJ$VBlA r=xIJct^REXHMH$$G$/KgJ$CىshR. O.խw.V x:@$H`%e(*B\1OVIpC%A$d+^q !+T  ?#["~fs/.*]RQ ҩ cHK:`I(f` As7y%^)1j>dT j\#2,iKPV79@z'S@x3 rC랳'2 @ V8hob ߟ`Ba/-hi) i?X)7Xo;Ȫ,W027,JбyX120[C'DV>qّ0!ԁu (e8 :|o IxD98@%1ЃsCJ9×@ 8S#4Jh:)1rJ 9{P: ]1AZQDr;7k ʟ#p3<fI@j@y! !ӨY5+*KSQ!ŠŴP R#h5I[o?+d]5 >CP Ugl5B`DXe>I4i1X3HKhtH53)3=T| <))53pd*CiQԻ%C KJb`'R aٕ,qAh08c BDx|"?@#Q(4t3@CDˑp꺮(2D9Xtz%lJ{˸~B EIj̛8+Rs;20J+%뻾W M,RlJ-[@ՌZq ;HD>? 3[h>{ j~)LshL >@l>w,qXq@q#@UzWX]sPW1'ßpg|dmM>k >4Ph|Ȅ6AG;c%6&sӚK(JCز BjKȞI Z(8`P8XuJx %œ}CmcV@[æP! &s L7=(p?90ssڸz&Ȃ3,KD䉕{0U7uCLbŷ+C2܉N(17+\ř &+33]gYS@֐hMw,!g[QJYApNŠӓ2_i鿿 Z;mU-KˬU(WUx%:xdvL>@4@ȴ(¡!M4ulFw<qع-hpƄ9ay=fY-{dWC}oP:?XGCrPU$)N$.L@ Q c. D*~CQ9`9k* (D$=S*@]A{0BM(P[ (XRDž.2p\F.@ TtHWc0ԵE;,CQ^e}d8 C+ʭܪ3(9 .282K%dO<(dM`tVO3[eh3Е^i S& GLN`HK Kc(b@bXgFN!3d(m!@β,=e8 T* X(?=(;'d0  []C1914TVcB[';09 8,5 n>80e @Q/@ CݗeS EP̓CSjX=^M;)ffCMUmf~U޻ҋ%K7ʏ0`J2oE8-2)k E0d%T3&898K@FDcS*>-*#bzxhC#Js>\t5MH!W(ay>C>G `%h<Ua~Z?v5jB--(*0ޔkJsKpk12^8ԉOf m )޶s((.D{C'>^RTȖlK7T>BdX1?ӸBŁ0R˅Ld\Ν3@\ ],@۞( a/_O'C"}]gbF28;2bQM;(g]xh)T)=nw!} ?5Z?d]≴3(-q@ÛBO!,\,́1DD,bG}m&2㍅ N獨{cP{&n_ms L^d~A7F伌|*p-p &.ۋA1B^AǍA9쿬' H1;XJNJ[[[(ececX ;,m,Ȃ;h>\N8,8mfOl]T1EzDu?^O]#CI2U 40V߄Vyv6Bo?\ D G*Q%2#"BTE8pXH_FmK3A1Hfl1c7sO(<%#ioRqVϬZ!Xhl4GƾU%/nef`4luIܶ5m{vrĪTJsBr/65OU6u#^{}XsMgY#GD#>ҍȐaM"%BWI=L$1cW7>Aె/YϞुl=SLRL|4UCT1A@1N/]RN:AQ"C :a?gdq 0O@O@,S2,@C.s DB A@ԘPل4qIGD9+j6ĜYIDD+}+vfXڕ&sGƌݟFWޜ_M5P2K47iVw~IF!%2P+ )@:URfpѨ ? D ?ØaK~sLɚ,AmPFP;PTS*SVDf,G" شEa&c~YFTm4V\s &nш᰼ f21pb 3\[mW2L\p!2$1se7RDaL贛ЩǜzU$%}m}&[v&.O6dntS&8bG&mE0jrOC1J8&l49(^U!,UHP+ό&t{ yjG"P''d6љTi^"(z)WdWE ~*P@A??~zB7l}Iǔ@V7YWu -YjqRic*2\B@\5\L #a?P f󏋡2n1\Qz !i<8e,'aB3/4 ċ9 $:f  65+fb7Dͼp 3?d%!B1@u2gNй@G?2r@.Bd&tzdMn5.Ӂ!8HCאG9"5=ID<dc[xc Ԡ'UPRDb䄗9FjGP6yL;~]T"DԂ P93iwgGNL!)v)\Gj#"HB|U`a=qFs*!9f0K OIC46[do#8BP`!ǟ鑎R}7̂ xZ0~V41yfPd&a-<ńɥ,X@ QF^dU#Aܪrde3[M hFbae1&0ok9ϸQ~F)7>#Pb --4 Jl#+ьtI۞q5og:J#88.YMKƍ&{qs6Yg&5K5. H7ӓ@jt{4R$YH@y^ ͭ\y]ъ\$N.]-pP*A%0  51ebT?#{)KT@#z(P\tu ׊uT5qnQUɈ.)*+a 'nEj1q]([ܲ$ؔq+ώг#!9`vcDۍ#H,Ē39C4U+T@(l~Mvq@b\Z%/[b[D%_(Bp؀@@*s@*6ls+\q2")&q>G4*O:? IրI\r(GRu;+B/A qIc1+-i?""R]LD ,5rE@ kuzY$Ш/A?WHM&खg[»S^S^}ŊZ$]XԚ4x0b_!q2D(8`GXc 3)$$ jMEK# ).Nc*ѫkzp聂(%8Qjꌉ&[5tmr;n< iٞٴhi ,_MKW .\)<C{mLV,w(S$˿3tPg :8aCX5 1BYG:R!1%GVU4|#Ub<{bZseuCldH(2@N#auWS#3 ,֢h/jY",f4 g!|lإE q( PM"J4$vaW;,4T7Q8gHwjJZl5PnSWZ1ٷ_>嶲 J֮܎曠! и!dR% ڐCG+JBڐ m??hD H3rN\G:p(ÀE9`ȮwXcYhpq ءTf]@Ş&ľ dzcg>L gn]*!-bAA \  / Q0 = ҁv>vЉOw -D-X2%#1_.Z+pwv!3mâRd'YoK>#c\!*)|L)F (xQRg^F҄8Ʉ!&]uT*}!97l.!`o`So;M WOL3( `yFΑ.֯5XI5ZFeMMQ E#G& CQa!$ϳHM$Hr!!D,&vh/i^i'D4EDAVkV kVkkAD!VR P!6n 2_IM en|*? >P @N?@L#N[ > gL]ОN6W  -' Ő -u'a/QPK 2jNzĮB+,U6c +i Hy!a$!w "VB,FF3*W,*4z )FjWfKi`yGud#D($N~rMD'Dt,IQVJ~Hsdd<A_)_cQ;!6Bqn[ewTAcVe0 $.!/"آHnQy6 @Xk" !4i yoHdh5F/ %&kll@!7BX 8`n mef &#pmJ0\75nm@R`6qC,qBwȍL@- np.QQחǐ OQaQPP. @ @n4@w luE*掣 cَi3c0F!HxAĂdH3=̷p^#NJ{g,$gm3Zvmf>$M#-mF:'j)GohxOQ@~?tF A<{#lw!AwC7Nu1m r3LZ&DogFe:/0aIb1vFHE-1ψmZPXAʹHyψZ5-a_D[8`QAQmFܖn/P'Ck1 r1ђebqc*g St `dȢ/xoPt`u<xv1pnвK7d"˛!{C2ݼ[Tِ5b÷ 'Ǟ+??Ai<bz7'Ic>|7¥:*Ay27@*KzYN:j(H 6LNrcUz(i7(m? Tp?x|?;)\n t.KkcLC#ceSCʽn>Y3n:b 0 cnLjb8"7;H%kմdִD+1V\|ϯ8TD?UU1;Â#W_h֎`P;W#ۏ'GmA!Pգ5[m6D7F%Ȋ^o㴊dc5lշP BP ut-uRxA  te.t@ a,0#HƎXX8@@ ӽbPHv5XdsXN!T +w+c#9d{gC;,/ }6>Fp\KCq̋i*AKPG2J5m|= <bKoɮr'5 {S,2V@]Xqnmb003\0OmqG RCӴEگ!2q'eSF+F 8zc_HAB0bdP2[g/@U_ XYG~sl`o U(;DnA:pId&z]@`y_^\. ̖Uڃɐ{,3}Pob:.8+W_ / !Aʏ^" QP0;wCΎ&MLx_ʗ.PSp&8e'e3-P(E˖cH2M85?[yae+!ׯ\ؒ3?DfQkZ[Ren=PpIH Z9\L?×%#X9v J LjBl@yłQE8?N8c MhBh‰'a4a9t88A!G* (( wICMEKk(ZlwƆjʹ8N RJ UN-SbFSyX^r_]uUfܕ8PB |Wbŗ$FaoUR<ɴi.v0w[H.%P%-mFnHvnY(X!׉*}ѝy}5CNsHkK}~ꊅjQp~r(kz!~"7n/sG?fA-:gBԨ|vd.{^YL)P5*bM?tQjSW#'߆.4q4oJߑsg(+jA|00餌: 7J!EDC*6 c C7%_JŢH Ѓ mj.BThY)ΛsFZ#) i`9P]7Ot %*7tQvXc2iJqo5$Qd L2曞8t^צ4e._Bc2q(*p"|٫,fЙ5p`4 $́ SQtP%3c͓'$q{=aSDx1lfȓ3 \MNzs(c1B |qr$l25Sq<t@2u:rh|2M$^t)&PGb!Weþ*CoP *#'"LK"$pW"p" р859ZM'\grq$ b?Ss1OhgeV2es;s+u0DWtjs\<0B&CB&' (Q>)AVS?1+9UeQ"%es%L+1OWTDu5`Jif,gTd$DKg=kY'7"*-e(#d3>C@S% 1h+QaWf:3xTDIF 'w-OQF-oRL39w@l G3"4-GU0[uG؉扅4DqoE/ Xs3=tzIy;Gᚸ&d_ |൒):i25<&7nRH|:=\~w(&$3-DZt{IQH$~%!W{1Ef1oY Fx"'E9'3iy8'"o=X'9s8t. صnbbI!68%0EaĆ;7YNBɆHuS6XjI3$@V$ tTu@=Цvwwxg& #4X4`}gU }hSZDSgLAТhkI)`44+{8o4.tp8&CC[/446=BL ' !ʄY+Ӫr"?5*i1"aZ] pyľqċX{{8EK ϥߥ="Є"8{9lXƷ6&gt@sAʣbʣ$AHhŐ7J s-!c9]\0 BeDLdGJ^$:mjZTufg%FsZK׈f g#ҧlxg$z\qkMUǡ! = $]t ?-5. LV^"ÖIPA0eDLH< HMfJ$Tyw8c}lW9һn6eeuV9|f&ٱfΫ hv=!\.ق2 ol ɑ'yʶ *}ۢR:ۧ-'~ag ѳN!ڧ)_0F_ċ~jiF! *::}##wlMAw]urZFPƺ6z_oc}" ߥao Y}3 Ѹ}\k٨II6d6QJtBģfWޣd+tY29 T?ڑ Rt,HB$^3n6~E}ƦiefvI]3n<4|#{ڇQn&Pn<#[&oZuJړRx}=a+87`,3n 4p‰,qHS!g ǁ ^!DH= 1prp/? *+  !q= 5!/ʳg`Fjdʋ"Ĝi>An9'!|U+̮d֩p.a MM*JJ1!UBh8;v Ta;)0njojC1 QeRr?SKuaeM tll*:i o' Lat;'Jz>A^<>!H `S8ˆRHS? @PHՔ8" $*MCbx@ŰPѐ"#KVC(4qiJCuHg m$$  n'ƂVlԮj Y<ظCibӱuu 5Q ~u/q  `_&H3 _|c2@f2>aQN /W5PDr0Cء}>v:0i:Rj3El]kLAUQ+fF%zQcxrrp #I* Z oHBJRC I!cAq&2ZInƨ!bXq I\Թ:!Cx';T]>AR(&@EZN7,) h^w Pػ  ,~'Cم6-x?!ܹS3ywꈱPՉD&5 JKDPԠ)`᳞E' m-)3zȭs!-]<eWF5FvFE[m\VA}d2 a (_N0א20E3y$zVǕ\Q' 'k);^ּZzfX(lBR.&C: UPL 譨 "JU3rDg\Zҝ{;.K\1N}s 'xj/VВ y?'?]%Sɔ)4Q|t!B8EO~@nb,$TN&gXJP'9SyRUW' wnȝUΰp)JBMtNtf-˭X !խ}=WS,um832>b fȞ0 f+ \2"¬7yICj:ta Wa n@M\"1x"Fua'$,?"hw ?6 *qrm,o{=@ `cU ɿX[Akh3$&S8QeO7Gcr<)@.߰8:vyw 1З{ _D4޵8MH XeUyJ?$*x_.R}Mv) 0~1Hw;1Rے u3M ^l62/Wyvpvqft z V\7,CLǴ!nm4ҒgFтxMkzsnT#ԅA[Pd8-mb3d]Emk[7a G<;%³F7yI, X h,@%7z@9з}Xph%AgX+1k4 8 UbB‘J*pT Џ [4q9ɓ<)pBK)1J&Þ9Hx W5Thx;I1I> +?(C(38{ (اzʒyz2qj@Ӊu hcE,)(a:Cd!ᖢ< x!#=B!P*% [9`6Cki*l=Rӌ p,  h )¬(, tPC| 5P`%=/c-i;?7?˃@Z˦=4 .($3H@>/ r6Kh-LAiIl-;IOq`XiY `y9;GA!h!Zۧ9EQ 0yؑ-ISl:^B ˴( Ⱥ ;R ky;L;,-;)zuMp-žj{`J nf*[=dAɓXX }ї`@W T%`8SA7"Ye=>2=$)IUI ,t(۲-26ITpԷi?AlQ:j))1w_JY B'꜒ !eI'x`t&;,rP0rW[Nڣ<k%xCm Wv$4b*-- 1`*[jYjs -%kZѭ cDJPkv3vkȉDžۧφkxHְBbNw +CAa=1a\}d&HzY>f%O_U8LmYU]>)TŀVUδ(\nݵ:+;_.+EJxOd-Y^7!CB0\j(xg-lvGџIivEuxNJZѤN=X>/>@zSI9Mʃ*/N63PcZ ,$j:b A@dZfc1&fZEc?rkDa%ORV (kN)C~DIE1B~;C!վ Sd20duKVQvX1>9۵ڞ]>mWoEՒB4D^M4 )J.`E.f9:ST{;[fZ  @7YU1-TA^c VNvg-E6lRmz2TKK')mӆ/՞Vk׆eڕUVE\DĀS]DBԺ[)ln;]/<1O;1(WfY ;Qa)lntfVlo-^IiT\cmvD͆`W}ww% Dh?5qG&:Aq'3ftq!}e 'V6r%`iA&64A "*d^7Q*r, JNTAJX@B?(UDC歜JfR2q挎3YLl¥;wܵ2(Pgڵl͐#qj3+ǿTmdCWYEZ&6*8Z1V{Ձav,ްgpj[Qc x/?HOʿ 0{#" 6p?Xx  ր7!`߅J(6k`=⋪?P# 3ڸ\@ ~h}9ClZZV~Yb~C a%{U *"!|qjg O~֞‰֛hB8(V^y])zR^xIaڧcj?j5AM'L29PDs agB<8{Ch Z1RLMSN 1GJ%h!BSeRdp_^w ^yUX@r"jXyu.8,Xˍ1j=vffh-s)6@P22ɻy8Prkin0+cKnU Rߖ˼q h4gtu_-9;sh͠jᅣ`n8Y Yg~ )ǁy:'f_88hmej!{$:-b jD~=JB(A hx?~0$$ 嗮]n;i%Zf f (p"xB(*),fկ} B4*Ě&a d>E^ ?*Vٙ(-^F& '";Jd)#h j3QLVxFgQ m0`TY f> ^ L`D M ) bNWV5#jZp "&jTL4Dn%03NDeVY24 5T34iإ\7-[g(!23g"HYh~gp~?g:67)@-7!J\8`>58$79A)ys\*79uF`Ђ|Ђ)5w0 v++gmAaOMB0(}/Pp Z>7 R2Y61R1F"!p8 K xZaA5xP^:(Ч`3i*`+3mB` 9SQw5 D,-7y`-FJx.hJVځ,Zf19E/&BX +oTKo(iEKXf.4z`,C0ըve=g՗ceVЈB5Rolecϔ IS[~0 I%+3bbJ'wM9Grd"I"CjD:7:Ru`R҉m\y(+>b |"_Pէ)(!~BǽOSAbT<[ QlwP:G7YSC[X±* h9(QT/B?\G#RG0BF`*3@;eRS,d2W?=D^y+_̚׹G1b`H3Nrb3ĵ/՜5(F֬($MXV4Kxl4wT[ưL6|Tcۮp*"aO)^&1p}/|4( 3J|w<]k+Ր`zeQ*X p*) e.sM $,.wRWBiQ:\Z)0h!'ZayV%I3iu则\yY 찊ʢ^45 r} `{a j$f85 IeY ]c(-YhngCTlL`-!wZ:^5z [t$^/-TݺE7=Û)RXNȕ4[-v[Z؛}/x}m`|WpN``ĵ)|@{@IrI ֠-ۥX(EAZ,j/II-ȅOԅ5rT?G5PmA@DlKAJAܡ`ujI$ Yv]K+ jp_%)ޕ!P%^|(|'~"MՊLdRZ94 CK(\ MQ]ͳ@ rP0.?$b^rКjlіfаWElx u#!97ψ_l-X( }bI (Q!.Mş،6Xw N?B@1(̛[@ H Hyjp|7\/4D0xI FIlHlHLJ &OpOYOz$MW+mD ?(\e/(!DQZ,HTlYwJXA:[~!A𡘉8q5E+P`Y 8 A(T[JLdu,id Br˽0 H``TT2CT'f)T% lKALL&" ")r0rQtYQ`Ca$5(FBH [FQXTjLL}}uNUndR&X -~߀u<1aB L׉[4m$| z—G\Iv|W4ÕL0 Z}N<ٓ e ȁ4 D )4(MqeU 8a%Jϟ@LYOeOiAJP«)]]$&D^5U`!dRuFDBTj(YG`V\Pa __V`F@'*Z'y.BAp<[<'=DZ'Q^j@yHKܞ]t36V8 0 <Fu-C6-yCǬ--K!+d̝%#)Ǡ#:FWEHYlR,tF%tȃl,X(e]A}B͛X$$zCy/^ ZJzN~)đá@ ?h\yjM$)Y%e?>!d5 CI]W.%Vb&^2l ĘlJ圈B@OK _H˶4DHLD4KSQC~JCJJT&9V@ĝfK^ݴ$i"-OlĪBTÞ%DŔ}%&P`"$VQ`A^HTaAa`i]P=ca)"k]D0c1&ƫy'ǘetL:FyΌoz]ea|EV\oK"~YG--x\UlAaND&D2SʶjHBGW7deJ@K2$ő -Z\@\GHSj %UDa΍A1Zۮ最@ĜNϜj/5D'3 #_I[UKPkaXCpIDETDqCh`FMjjR_5%_@ජoa`D⭇+FiݦbZ&Ej&YM쮲A8 >KD6`mj,Ƹ/2x?hë'zjy>k$k`9&W `R&U-)EBׁ`xYxOzsv~Dқj,͒u p m d:I}hLGfƱ |,xŘ, tB5Z%&uyqS>@,mĕfI3C7%k뺪p]$! 'oEV@!BCT9AHhnHJQ |&\P\M``v/]'mj)1T|V-&Ün!Z(H2cc=N%r:/Ҕ70Vbb13ofZ\tvSVg$5],1<탔xllR~yU1$C~HxY$]<)|,GkH(JA~NAfMtԎ}͉ d_O ։80P휢m@щ/tm&):y^?\c% ZLT+4_KrO!3٩Q K} o@՜`u l/kfAEВ%*(`2ܖߺӊ;< N{݈ 7,g4Zk8bI*{z<_uTPbj[O TOA-I-o}6f0Fh_?%$\\i"e]E٩9fh{a)(MQxEں"[Is#C^cN@v`zc!ti-/RPnala]Htrs`[a~tjP:,wW7?q~stξHpj>w6sj\}_&ƉQ;!Hk:(i%aL > XPJׁ0F}J0Β$I?Zt 4| 0ë$!mZ<@7O 88.$<D$!b 2?QQ2PMQ_DDeNQ S()`$iS;7E;wѱ(U k*rȑC[2o۾"+VXn tIm%9U *P(BUk9X5*5xQnT}2T>,}IW#Spd@v*TDJPkHM*7sDºheKԪr.B]1qʆ_xX?:di4XF,4C ,84$/ g 1nXȜ  f+s`ѱZHct`ݬagezuTyb|a׳́D??0xR;m%zK®}fK]C 㝃j3RsL2QkBRߨަP 1vpt hyi-fd(D+Z\MAɸ0<'Y)K,U|2;Ȉ&jݫ)3cw @7*ȓʀ5ґ^RS̿J8U >ӝfW^橗"f>9k>"AIZcsN]U݀"v9~G!P^RB`dQC䢦΋4miCӱu#?"+0'ʘqFC٣hv2Iɲw G7”y!P[ ڎO|6]ae=@; F@j1mC=KʯnB >#z#Xl9:l?PbBv3:h&jbJNT krm- ^("RØ $>!.v() 2wLʃdMDNڄXeݢN.R2P>R eR2~.SLeTHTʮU\E`jj"jW6= dvG*JJv!2"*zq!ѨETo"FdqEo rO!lq ft7ҨhuHK^ďt(AD #dO&;҄!0"Ǹ<n'Q R ܒRPSlЀbl"eԭ"|eyM\:K.dw…Dv"x H[fy'h0Bxs A5GOpA}Q6}D|FdĭLDhdFD$גdZא1E 8F6-d4fgLuLa!Qal \HI; dB=#v2$L!XPp-Ǿt,2LpX-S(Ux."详1|"ŸXc Efk bx'D%')'v>6ΠI$d6=!@$UODNDvCPSEj$6xdGȨ7LfI֪!EO*kB2K4p27D49`"(cF *Z dvvb&E8`nVIF M S1p@ 3Nc!w@ " @& lI94O(Z&B9nmDVdm(eLփ?HeFf9D>j=;:, ȾvGEV`ȆMO~v N!ro.O"~%d㙣Ka1 0@ ԝn0R> #18B84G;UXd<4jcV,\5]B-eGJ\J4l4kϺeJ)8NGgqRv{rK,稿|h-eX,-P8,ZjP@ܫmЍW+VX6B=z=B՚"&⫼^974:*dlu؉)YG| qu^C!c"r6"zm`9 dy >|/A^[BTr )Dap4bbbQ\#C0r12`~{?T3cvA9q0yT-k^: C_@4 ;ߦj'ЅT!R?0REK"/J7$*}VH잞և>#%D3s儰!Q->}Rn.LɞL< "ټźP~(Ok*B)DGrwBB"zv?rBC +eGTKluuJD|)sȈ+Xo^d#Hx82Aި3foj23{KI78bjR1!;Xֻׅ%ĝ @`F=X@R Z"[8[p$IFAkIޯO酓)1﩮e'z'gwXO߫>ℑ<-EØm'wd -/nl-O<@X0 uy@?  ߿ 06waK!DA$?JQ4Yjr ("*@F9( N%14:',by@=1DWlyl\kc"3O51/]X'\tı <&x 4f,}4JQR9 ('$dnpB8M?H ``$0@'N&` XbtkX`}tpjS_,zDў^!pD7Ā8 "^CL"'B9md"0c J#K'HJB/ dTՓ 5Uc`)2R1]%% JeI)@ln rbtډgx* A3lC :" I)f')AX)BB7iMD\%LoQ1JL5qBH*% QĦ֒KKT_"Xc5mTQMpWcEyWgZ݆UVc4?wBwۄidNC9?5OE {VpĚ?%u1mJ4H x^q'Epq PNňt!VW4ss斷91 g}):x T ` btJl\Rtw\?B7\H4Zk'%I5ba$zOBUw09eU*9%^ דjnyR$y'8'qޙ?zy _L<){OR_BybB qDsMiBSM?hB0\pZlH@}!chZQD-+e-oK3WTФ'[BS4,jaJ s1Kg1A!MBfb4%0% ((-y\5?HcOkZ a}pHT:6\S$?x'G x4M Pӷ dS3@c@ *Z9à mkk$|BDS5n6C@p_`+` r%&QE堔PI 1/d&TxMHA1c$%+qH^I7e@x0^V:w|4 `P @ ?@ځNR"B@vPgޫp&|L`PO  *>`vOD֕MBRd %B8A_P XĕpfaIfRft3 Z2e/)cs Xa& :PIm|1)(c\=(Mďe%G-Epڈ[V|X*Ȋ3:L\? mC:(>f?yT}꜐)i =m+-Xot32$=Gz2Q21 KYneIWV2%!.|bR|!v[I4g<8 5x^>WNoP (J!jvg[~9"{"$Cjxd~3RCTWpsETd3T8A Qd퐆@" (BvAϊJX_yJI,GYMQ2Q$95BrL!*mT U9nGEpU E:"`dBs6 |6`kpN;-ϓSlU$F&LR6uIԐ@jޱֿC C^7MȏX^\.T2\% Uz3BH*1"@V(ZC42c|!5Ǧ9]Y}~Ӓ t_U-rtdTz؋6jjMLz oEp#Nf@h<sA+ՒO%m]嗇Db+$8h &1I~{~&/ oryh E puXՃ]"(g-,+4Q u;q߅O!WflA Jsr#%DJR-:3wX5W,1&@(ESCfY0cC`2C07sP1NsX_yhvFKuF.RhS#I%vh[WxgfQhC? x Zd))B=]SO% eh1ZGho/.T qGiy(Y 5H94GT !UN4TfUV?{U`EwEY g\Gl'9U\4mX$ʥ}3Q$Tr\3&O#ەQÂnR߅o^^7(v(t]h)8O*]x#V36Qw+ ~S$60r -Z.Ӣr@gHQD/dʢNh,b26t@qRJXdek2ׄ.e2Wu!qW1Iv!QkO{ A*gp8h wgwz#)R7bpDqC4F4!yo-0 3GJ!!OY((6p` $ZTjX8{w!GHQu!r8IItFp%3SvX2-'Ut$Ԧ\Cm 95 ]\L$\RqV:&~so| BK$:G \ \9~ZqLqjLʺَ6( C(9ځ8 xu]0 ,f4V سpM&d20\f-Ε.  rRRlIԓA9C$@rj163C4$-^p(Q[nCf\*(dw5_S+E*GGѤ )dGo {)7i* 5m/Z0aR5u4VgkeKى}U Q5JTivj[3y_ {Nk;r\вn<,([h4]MqSa<+y(Ȅ2_<(\apZx"Igi麏Ti)'f!0w dC@Q #UI'11ʾ2GeSsR=0 1G3#w&tEE VOR,W{V(*bGWeXnX,<-| )- 1vw rpǍs9r_jL@$"]9eCrj . QSD/bIq a\"뼲 ,;CO< |FWz7^?{iF= i~-5ѐaMPk#iQyRy|෣)!M~J'0X*h7^yT&y6\ p6׫~8@ВQXH@",Cp6r]4~H tfE⼟$2Qh-0D D(IhH|"I>ɔ~|=)S*Wt"5s)WY`{}`D1"Z,A@*Q7X ,sn,Vf%.tR'1VP9 /"m} , ]݇w,^#5R5ހkЗ՘ߡh/o/2Ҫ"-ғK,P {' 3{vzk~piJk)t0 ,8)'\uT?183b2,lEwL;׎,uD{Z~{ x"~T#z;`lC4sMATMjPV4.jeR SE >HQS҃`5, K٣l7+ʽAD+\F5uyn( _oz}5RC4 5\30戎X|Юii߃O\uڎnjAkA<[h~==e$p+eVRn@q1>5\E/jaߕu ||XXK,/@˺+/ $" g_" $Aq!"DsD *P@L8ae(FI(* M(0!%("xQcŋI/pT'8R/3PlB ,-k`m[6@q[n¶r \6ZJTk"H;$"!Y(Q">DFti%>i=u Ƕ9q ֿ'ymοfõk`O큁iܼ`5W^ H = {@v?o]4?rm4 *b#P*D'C >0*TA$0(REaLA8@r I@.*Ȇ!#2 'h?(AРJR*!$E3J1!jH 23"%'<+;ӡ(#HϞ4hlA@iT)QLꧠFGiSH'VʴG /*)WʪPC rk0LXÈ"K.Ck3kCV(3Ȩ1 "3lL]O-6;*@`N+ۍ~K+k>R T&G?3v-<B/!3<5H6n;CfϿxWQQ`+T@'j5c:VjrL%Ḧ́;rN1Բ/DL2&P$%w툲pT;I38\!H!bM%iҔ'J?i$jBUTXzIMUը(==ijj(K f+2ꬡqZ>\nî 2 Ob(# ]D^| @^@, +8 ` L+%>Ku&ƝbXj`9!nJ!ZY tehC3UR #,Rn" !tsP8C$vBERHBBl "`Gu6&NӋx$KU8PKڦ%7 JkDՉV:dtHA֩rVuD'.I>`#S? %/$R℘|)RhG(T+^O ja~)tQk-[L8x!Zj it1zBW=E~ެ~Zce@2yf-*l8' ,@Dp1zbw65l ,JBU=I!%4/z.hX).GH$1䄪5-DHJ:"FZТf#"rJjV#LPn\.L#˺-N T%6 sLX*5ssX~jeBHK%))*ODN&$٦Bnv>e}lT U|Ry`>p\A:ehK0p qjZ*5pmʏ3]h{e1)^AyО~9r$2 $A&D?dAb笇=(l)2\e8I3ӈFg9 S ; !l*jMbBh)9D0' KE):p `Q|ȰB#(m)㖶izcJ+OmYkB0M;+^>QJbY4O xX5ZX$Ϥ yV gW%V_Yt{&ҬQ=7Gta+{f8vc p?1фf%~\+EMv~+mC*@3$^7NX{ӑ/XAO; }E .쒗vҘ#R`RH65''j/jbai(b u,(vS z{sҐ+}!88 $(B "QQ.! GGw{&d9 j .;8Fed-bױ8J@1h@hX?V)*!Grܑ+2wt9+< y|,)9+*<9)A#+ȫ9!+6|O쏝ȇd: Ǝh[4  ޡТ!Ӓɐ0k +ꚼ#H!v7 טtb.ѤV[Q5< OS B|~0X=p fJd jSL:70-((x2% ʼuk' 7;u-a00͑Vi8 DͫynpMV M  6! ‘N0# 11ʪ.I\tTO$4AY36 +6Zjb[VyKC 8TVIr-P 4;}IH#ׄXvjA(| UL2jB&355Ӡ<K 75ٲ{5] ^{@ B^p0Ed# `KR(%xA2ji"Q2(0=H_qS\hJ +9B4PB h":kģm3,Jm?IT8@)+*1G 1Yqy!.3ț@{G)LAiI,6c1SV,$֠+LHtd) Y,9e]VM]e(,}ɑJ;FtdQC0UAmI 3; U1 k4 FpWW5p;SN%i.͓8+٘5]+( 8yZ>zk!5ԵBP#=REDEĄ+؍m/H`fY["lˊIMYj(U,5`eKb-芑4UVk&HLh ?JM1[m jab ґј@ Hz@#VY?FlG*)\1H9#1B+'2:9$6_]V\0K}.,\UV?c dAF]ř(fmi'1pf`}ItC̆pgٓ={>|`Na q%"Es-m=F;uch"z)D K)1TRGe. , Ts_Ћ0mXʆKi_qée~ssf&tP ngW a6z ":tݮRf@OF7EpI+QD`N`@/Vt?G[ `-ۨLySzĂ."S)HX*aMG?dO)GRˑ09UT!U>bic9OYvc9#`-qyOjGěaq07'q#yY<-|rՌ$/= E;V1q1 06mZ/ 0{Q_ǎb M/50_ vza}9C m^PDv:HsR _mPAl=XJ9j7dJ!N &n}gT%#4B[% kB6%K; YoIW1..[F/Γ06ẉ2$&ђjygyd{wRX'ҖW Ǝŏ?Zt^2Po; A؞2T 0*e^C)9l8'z_A̠Eiqg? " 2oĉ8VSd俑NJL9r(Q M+p 'ϛ.Kj(FJ:,PW\tRI'/)/3g8[4 ɉ`HuB/`måI:9gB柂9(P3YQ\*XeѢ]6N2??8{K<@ )XA?~Z<~tQh.hu.;?A}} -Ï^w|)bHJ:8 P=SPCP D?<p$7qVCVH^Rx$9"U74MCdd/HGGh@r5#MZ8|H&*4riB B`wArxB?|dA$@dg|x0 A$EQT'GAJ(2K#Z/]5cj4RS$uS"IKsCQ 4 ȇ$E aV.m xA0ru_.Ma<+_caU?Otl=,p#qSK6d\$مv- u'_WwSv,\2vw.AG|3~7\@GaBش-(Vh!Daf]"!b(g4P9HՕO?ݨ%-# d/YAf2($2*v*A2@vNJDD= KEF.GJNj*L"gL5d8N;ыpjPH$8UT 3 u4. 1 TUp(q`bZl]\Gi q!P\C`r[j %Pf4 !HQeBҐ&G$ vPL7 ňci86?H/!AsPt2tdih$dOKE hGۢ=A :P*2 RN#*"'"ŅV Y(kPB(# ފ\680ZM)#&%K$$X$ADrĸiqrT޴:s'$q›`'@)C|١<N 'E|) DWx9e4êW.z\ (@=`zp88Q:dp ʪ$aX99O+ŢjyZBp["(/ 1r#P% L%!(?kB)Ot蒏 ysDQMu0f,-5GSP5ZFeh#6ZZ$Ef!=Ph[8KXяJ6uL39Z.ӟGLg ) 8; 1YJ("}%GgVtIC2︌NSE5I&47ByvkFvbZ)RW\(=_Kd'EWc73ֱ$N#sE%n!y:)M0oZ4 '$mE6?vx,mGh"Ndь43a71i'IɉP\N 'l?^jMY9ȁ$1p07 N8|'&AL" wiQF-` (H^@ t a#j)lԎ 59t6?*vгՖe5=&W9V.*@cڂDfչ۸V\NZ$ⱎzTjK]2'RYDEo@zh4vFԨ,:,q{2@)m딒%ݔ Q(JoL%4>mT KȚe\`,5˫l7Ӯ$$ۜ0KBkV; H~1nl@Gg:GX{-Xa?{A@$?,K? GwG/Mp >TGa?&!aΔ匏ss (?\{ԼPăO\L(M!2CQQ]G qo@$q]cUɝ S@NQ۱`m.Iɛ-^u@ ^GWL(FLeIsAFqߪ0J#ypa$K3AEv?$?$K0?U@@$ KC Y+ ˯)h$ "p'ŸĸJCB9\__KLШTh(  CkxPdDj,< O%RpcؚZ \}DTu}GstUV}0Ӝ:  @ >:ZQZ\@`O &- >A$FL?:YH]wI`aAʟ/1BV4ޖlh]_%6Qy Df]߁Q֎!q]2Hs9EqYH fF}O?O("8?@ K%@WSI O"6"ՓK*6, #N8|G@Q(PK_#uIcOO-}P5M_ uLQucŇ<~|q=)s@ x\ HY9$RP' @Ύ=A 6Q{>AJZ%FQp OIHdٔ Jb=,DNO 4vN݄^ _AlH%JT)L "`eqdT2ܸKDE;vbSȀ*[S^*I#R$D[rbe?5% @|aVeNبDbKNHyN)NDkjȅ5IW^Pu#mnrcr(gI: r>vjsN yc<:F`u^`v $ xNQOxxRyx $u`YEy#g\ؕ]a֘U*VE֩cIևV҈hRxBMDp^)m)BMMMHMeqhXDX1.K_>)4@ X)@)?"&,&n>@fWcl JB9ISCM0)mşvjHؿ)ąOjH܊_ݺQU n '~`Un-z u*ZjP@vg' 6k u2kz. d@Y@.$D>'\nZn|bEv,rI۩8I>W(ҙO>NNLN/D]LҤ] jdȅ-  "UR'!Ke5ĎLFX>*NqrYb%ʩ>]Z6>Ē. H 7".Q`%𸹬 )=q ,@%.fb$&L <ő"؄}JP -KPd o C qUԏP U7nq i\j)bgsFnqE`Nt.z pnxvC醮:kJDL+ r S+IF( ٫KYN$8  jRkmOC!FlXQP$]\FcX@ߎMHI >-*?"s[3:ց<&HB!K;9$[4[% T@^HTmf/IQH؟ `jhPH׿M 15)@5QFE%&8p -P nQoQF >~p@'7B:Is* 걱ET/qy.Z%y^.B2 !XnzzyNDPgQn=OB, i ӅSMQ ta1}o4'QjY+O/J(]R֒/YH]2ݶ iΡ<^8lx:l@2ρ87s[~ooӬ̖$l@;U| @CA@w@@A$.Ш$ 9LE'F8X ftFFhHge ,j p"@ldYi̕47{gtR<"HqĀ. (b :!A \xfLJY ,A!Ʌ(P &A^@ip`A6Q̀A>ΜPA28c?^#=i}lXj?];[, uw${z^~qZcH(#^e[XukZ;_֞>wFˀmqZ[7b%+^Xs8b: Lg9@g4Wg"EҤ!t? ?>G"6` @IҐoOdl4T P<6{!(' CIZ-P#fJ"*Ɂ\(.biL'b*IX75!@"(nWBX\S&Bm4^FJͫ$MLbp뻺M0kۻ,x̰ɺX 0^Zjh@*770٧ºͭ+\B7C9.i<+ίl[ȳ+I,#OF8ppo0 @7Hc'ON$N 1mQ$s"ATW%}''G${q%2*4B89?=M68㬓>d\Ya"E]xHfE"LvjD*Z0s 372~ƒ*"BUa USE.pP`f!8H1TDy 9͎(ǁV?նV'II,਋d$ eF3!jdb@^+Z$IX qJR 8UVrBB/dL7yA`%5uut'9.vׄJ7I) wTNޅP2BBwo2$'*fPT G\"n%QIJҒc#"H"zЉN4)GqJ~gұ,BVՙVníȴ*ZrԦ;%''ҁЬ0fjU - (rTh+0HSB/* 3SČi`08b݋bӀY!?& L"yG8V%+;[4'XXEm@[`E osmJY1$2m*V[;j4$Isp_*s \Y/)KX=Gm/qqB8PMb3zC;q'$%$Q֛NUUx$Ur"* QXO$+oEW2pf!&VaH>h~h RY6L?ve]iZEm.uq)XYٕ=8"y"1mc̜3uNl@`rI'm7i'z.y.'#b.sZKC 0m$56Nju\hV$r4+8l[# d#Ȭ 7! h3,N0~mmm8kZR NC[!= qA2myksnRn0C1LR:c;3La m>eA[)@-$y2^x1tTMC4HzeҽS)#a:ޑXoXKXzG$⇡lQ$"b6̝"o4YFB)hOT̃*"].gƅ]JBc @Eb=T$ `e3@&io8a *!Dkj 7HDDHdDB CDDB дCڀ@B)&H@ MpKHx|rQږk)[gL@tfФLMu۪Jx%"$nǽ,-ΏAe"֏!Ώ$(14"/| .UgΝ X"G! V Fb!5)6)DB*.qW6pRcj+ R[n+%]b3Nإ.x!j =  n ,_=FϨlr P0pC0`1ìc8[\Щ^,CEcn=@f?$C@i! K.L$ kAب m2~&@,mt2$D~@TӕM4@KQٚ˘KِK~sMĘN&Ro%)R6!:%/#-/)K!쉞xb!zUn$j"(X@B†EX*s }Fe4#s4YJnJN#2F2\XqbeإZ+3R8(F3'%3 32\rHZGF ,F HGFTg*$,#5/ sné%f^FF.ᒍ> Sj?01h(-O0ORS1働C2dCI 3JdaoaJ7 ӃzI@E ` @hU$2[̬pF M2Dg!k6d >Bďt$?c0NC> P?oAr6327cjC*ۦC\ DDpGm`fml Bb:+9T l8e Ol9<5Ƅ9 pjf=4DH_(/'!\ fPcO(GO,HhgI G҄~&%dڬ,爃f&= #b&jplQ1lxM0jܨ01N .-1մAdk **22tN8m D`3f\I$&g<<`9Bwv!N.Yٌu)۰s^V e.b%hzm "y BU#LRN!7#|%LB$ R='<%g !$'@aB< }Wj)wO(pZ"YN,v*!ﰲFbLg2*$&بl6g҃-3Lv `'#P-T `P61SXh Pa>Fhxfb-6<.ٹ; 3/Z^$hFNkx@.@iuPOj ?v吝fS>L}Ԕܣ.uJ3SX0R10`FHOd;:;bGe)Oq $uL;LĺiV8'2!$XWS8&He=!0)W N|{7n@QˆEepúX81D0IJS7hcf,bH`;8H`,`|;!`&tL7ۜ ;AT1}رL'RV!,/, b zz Q|^U+NhW¬Yo;y?'V]d%CBf(@\)x$)L ZhTBڴL8A I54Iǔ [҄?G2FdYE"\\"{!%|$ Aj|N#Oĭf rE0I+21]1#NE&(P2( |ɊI\综˿;,LӘl8ۘDοmwx;đw:yXRt]|  Z"%̞'n[J_?BR?Xx#r^_R^k勛%y9bЀ۹B-JQ$#7:[R\NIŒR.Grr6p6‘TED@''G GR%>&"`sO0Rn=zTBIL! 9C(p+!]K62rU"AgNRNd'r OvE[XBD+Z_O,cAì9ЁA^-MЁUDp50\ H3a!ef~p{ EӱX \\:f HGR2ĬթȍuJy4Vo}`Dilte 0 `qmav́grކvZc0F6tt+IMc'k4=S)K%k퍖[#yғcf].vOݾ=dOf էLw1n4-h B?<Nu#QЅ. UT*'򔧫=:-3S\Pp/e`@|-tyg). je_$T׹ΕQ| 2`E_8v+ Wb71?ӧ@W΀&yMn(YfԹ:FRgG%Y{%/_[ߦvh4JtCSyN6{3m0Ə99G=2TJ*VU}⿹DlJT&Pg/,0J?{쿀 E7x/w%8$rR0, bY1'~'W/shsM7DHT]E`I >7 0Te3OV&Z4U91HX@SgVAiYVBUNR7uUY%ZHWb&G87N&Ȗ$[nb^yVH@k;1 ]LҵRQ1D='A8nbmmd}c5֌0R~Y?w RCBVABQA'q#Q/9Ir@M~rNM~菺|N7 yTM7@3e34S[d,ӡ$ nf%$"x 9n$gfQ4rMYyPvW7IYvGXe%@4+H$sh9'vyOIZkMiNHtjE3x^9#}؇UbtVg3) $S 74)J %bM#giTcQM6Yu5=;6FlCY@3"(W6hkfeygYG|Z{0{"'w@4uh{7~478!%C#cIgy%9$#EagJ$$9:[WgS &w{'<9hXy |a+o*Ʒm)6^zm||v-y0cyp~^oDPc1Q~u3q/BbX.aq!0Љ8k]6E9`sDd[TNQGI9"!iP$PT@"Y6ðA'YX7 Y3d x$W$״FlTg:)gwZwG"_ PߛX}GG7 B90[wR8+9K%6Kf5K+v2B$Z刪 mqZ#[#{h;'̖iH8O[yVs'ܦ2l[+-E@ɂqh j'XL n;@aqsO+A6`aQua1Yq p ԩ|xu܃K^腕 )Y|)w$HRgB&7eMQ$ZK7"_7*IݪxC ^&9v 2:^#GϛX ]X34k󽈆"H!5I*84Vy[U%syH CY;|X498` mKV:K&^)ve X\HlJh)< B%WtZZ+r6̙}cg,*V/e- Fقn BT2a+D\?ЈvcAQAr @ԯzƶ:m6^)Sdw y68QACD ]1Qd6J&;s&gB!d׺878A$ *։SfXT"kFfpw0F$RzGb(W;6^8X~F4k'I5 ɌМyITm{9a7˼e)G4Jl ܲ O&skZcE' l1MIL'(< )rEM+#!y*ُ(-x5ި8H?a@6#,B/1-1ӭ^+0ԘQV0TB:2y!). `wȕEDM`V6&eV&<QT41iuxmJB9ןTgF pult'ɻj k'wP"W}Sw"z;w`wW"te7bg+ IeZ)Tirt'%= Zcg"ALֲ DPLZR t#3$hIjF lʅG)1YNq @%]7m-#_ ߁}-4z0.,%,-B/G/(=11-X,b0'~M+GNOQџYdғp ,ޖK^#G?41CbW4tT?O&FGpI5Uk [uͲ Gkcؖd%luw&WcX9LXWk&'{'x-rˏ R% 95j%zȣΰ0NY {d"MH)ܼ\ ܖdK$tuK~>[:)"̲)`3?B́^Ȏ9]C-ߎ޶J-?ۢ-EPR?sgFrq~邩0|1qpO4C}珵ZZlLT4#+>!f"uv%V–AsAw,0{5s$O3*ee6eڱrIoVk6#A_ 4X߈h0¿:$2\h?EG0c#|$I#*2IuTkP?1x h PXpT):kjAsaN+e|h$B$"a7UQگel? .oBuD6D@]Ć &GLydi$9(BA1$;4?ر<'>ƒSW ̝4[uإoN]f= |Ņ\ȯ/> o><` d! 3T> !|/ `CH s<j$o<vG<I&dI<Lۀ-Ί-> HO*d؈47 i3N8+ 7sBsJ#BH ʦ(xF ".O;BiNr#PAP:"4E0 \sU)f 2,2UUOJK͠-:RڶJ KUׯua@h챆zk2(7c ^IҘh%6 7vن{@80g:`κ;N0YEiP׳L?z0 ZCaAPzp=.@ĊHR2ΘF4 Aי4VVS`ApF81p pSX9bsl;iNuScx *`,A|E)CQڅ!(*C zҞ#B# N4a ?]C) 6Q<<n3%mXDl$ |fy "iDF2!Ը$'s_b`+_) &CYFU~Ntm 'VOS EPj A2&$u `S~`B!( P9%2hV[A?Et4WG#u@VԄ@!K"&)B:%֦,GQȢ9)129h7+2ԺHe). P̽U(/^}r #zmPbc,(z נr)K_lЌWf3t:tJ.T s*,)Uk}';}zFeuNgտTC$WQ֢TS–DVĪL<8ǔa5exY"ϩמ9NhXxzew;•_odZ׺Rux4kup?LqʓQE21r|גck5,9⡕"* . 2+9 '3@Z2+"% Y"1#;Rp+A9 BAB$ESN}i$&Y k;$A,C;*9jss9d┵ j5iȵū H5Wspުp" P T%YNBY Bz [Q('C _`9k+YQziʠʖ "  П[xq! S 㾊rEJ8x1ǘ J8uh ؈øpB ƥ"@9)+R2'@99@'.2$Q+49[#~A 3C,>D[wY3 Cc"I;B2(8h:J`Qa9Wd4K +jي "P0sŊ>𧻓ˈ${!j> _젏$!!@d)%+!9*l"K9m̢@ظ@st%2mq"b1/;/G{۫ ,,?2,,ܬT$b$?s <I)쉩Ԯ" JΡUiÓ+x沝@DhŋaI!P :(XIM;JCiZ F' aĞ3tݳ6P{6t=qY ) A '!Iq7*|>K^tx ( , {$|? 8 # MH$@J2d$9u&ù(b}QBFg [嗕ϿTVIH'IbRC!/E\P̍CCTV٠oJ H\A=61eiVSR/g'F `~b#UBx(rXkL Ծ Z^ 0[|RȌLba䍚*4ZjNj93zlYͰZ2Մ8_>E<@({.s#Q^/)g4\T Π:>.M >ȳ1$*PBeH +$GkV 8EQ8l sAYab%,4[ڼp(ȋ j w ' .UHAbՔ 呦\U߈ iAo5 7vծI:I-,d>57{uyH" A! ._WkL%(Ҿ>BXW\0Ki#V /=)A1jle}ߖ *Yڴr*Ma0B}#Q3q0\QH3 ::P,pq~ZR)N# !gRÈ T2{za6-l%^"|CڠI%JC˷ہaETZ1VR4ζVʧxc,1oʡtDj0hEj{dץ>y^}+H;8y7{ /M+VFRQ6S3=S9ٚUǞ3G #S ߢvT:s+3G;Rf̮Lj\1t:pN;HO2BuNrՇ'1*fh%&I5*C1PbJxV3b%.b mØc/̱'wlSv㟰٨+=dx:mq\ȰA0Sd~US%𧞵SX̚U^鵌8 0al̤ؠYx!z3uP 7:6"Y 4l t |٧B߸*HT:A 8 ^X +, eߒ,%+?[4-H՟x).Q6.dSIγ%6dsp7h1t>`0X;cML!Iv(ٞS ս pjBz 5-F)Oהz 0~U_'u/dK^[tZvɾÈmP8踝iRqIvguoYo2ٜ٠rM8F(s.kA9ØB3尣p`>h x,(r/_̞ y9 .8%@yH;$d bIJapeQWHh8&HzCI?Cd]EL']b Qcim=0'J#ac@v\!5-ptO,X Dt?0Ud8KXSEˈ )cX1) c@a2%ZRo#SY 1젳߹ry*6'$fi^;JW +?zFEl fK:hjsp&aR2lAѿ#DሇFԩb $  $1NH@J`Ԩrʗ1^@9Bʜ0g "$!L$0ˆu(:G$1VY9rǙdvkҭ]4@ e  s0" `0qb Ff(:9rK6ocn_k NH"t'}vVC}ȅ/E2$t: ,ċo@ ^ ⯨ >ߟ>}qe]|dBu . @zE$D )0!!%ءxQ*. TPbB1Ƌ2ODިBUPZqJlJ 4wQQTE pOulUT2T5 9Q:[H%K;DLZВ5SJ (U,4S)TK V(G4^\]QB.U]oy[sV}T XcLaB%&BD|0bD`ذ]uhغ%h*њ=`n]2 W&qɛ)7}FIXw C^z z|VW߿ gux+1x,2 (0?|?!8(ycE(9*ML$RO]RX%A[TF^uJw*]bQa]dmaD MEQ`=i$v1M 2d&.RKfd9AP@S]-y$uB/X'$@D`ZR2paQ-FxS[bmcۘQ__1v`QFp߮nl!Լݛt% I<9˲=/]`Vp g$PA>JȄF! @bԙB oz4FMzQӴ5EMjP#--!MbQ*51.ږXEQKfRi G$;!a6u$$#Sv3D(.ಒ-6dLvEER:IpEER .%U F*`.WWGqDbHh"9LE`KcFl@E=czY8i#Ji^ŦlMk44צ6č~c2 0c@DN.)" >)Xw,1l0`0X1U юAPhf(Xd63+:uEFk! 9-lN,w#2FJܚV$= L:BILR3yGPXQ\Dle+V !DXJj_2<#q ǣ>AJ/G1By]H`d5숙q]|UIxYNVVRe`T]XOh5}/}SH "XUhK]JLlVjmƚGepopWWk׾ݪ)ǾtIu !EuLB)8aĬK~  F|ҴAyWA<ڠ_F Wь$eIIyP#NQE_mlE[}X]_]U͎HMS\Q8]TaQ[5)G"d HQ\\K\ Pq~՗,YeV$E]hM8*TA,Q gpt/m/F5EgF Rle"]ppFs|77FKB0ؔIt!a G l^ $TATC z͍A`e_ؒRYijiFX;j͊X(u+$sѹ]@uOHlLw2D.Fj$;=$PdHaJ'LWNh:Nȁ^,T}ٕpXNHa!6+=h@ՠQb)^kWee ki͌+S)I|"\ŐR%N!fSdab59)`VcR.rD"0\\I)cb f}.=Dzʗ)Jl:=ưKZjc<\ IiQDS_9'J5ǧwކw*\D ~1yG?\GgscI`hqյRkjEQn"JT, K'P(aٍeo4`frvX"Ȣ-?ѩfiO a$$[*ӣ) ĖgG/S/o8oH073o`sPגB4WszZ}r3&!ah%lp:ؼ) NV  @hP ׭Sr0l>8[| ͡w Tކ6uXO]zoS3}**o+b%Z>THl#?Zа*@‰2< (DҮB<?bb%Bpņ@YZŘp A"* ]:,}$Hć<ڑ+ALI r";2K0hXi'Et8()!cEIt65B LhTꫪ*̫KMeX-6+K5Jr(1_$jIL#L/r Dm4JRc픅XZآ Y B3Ұ-.Ϻu.Bz =y;CbAT)A"DzOTC Od:R̸E /0EƘBY8b+ܑH ]+$ $H!-枑򼟪DS;衃) qQ,˪erȔS&zl&%QJ*+ҹ^ө લ:dxӳ،RkWU/Ur\Rjƕ'[)l82lӴ]-zPp5mK mpyW6 snO7 /{葉l9qc4ϢDz򳮿 | Q™ )^!7ԯ,dS  HGVqJ GB%-a"^~ă@1 8٨RH YH&,[$VMX ڢe3x% r^c`#1*1u,^q.-m!k[{Y@pH9xsQy &<&m:E3HB:x`xph_1Ҕ` >Z(B#,D(B8vըEӟ_1e „dՆFs6hkӥ ra=uA-IMg#TGN),.F() IV)nE1щfRA_|"Ck!?>~@)\*sE\z4~+3&s=ɬsb^Rdf2 n."fZQM͇-j 7Z=dsv I'&џ> >I'W)er˂mֵ4~bҡevi?(fفLfB EָIZMy 0Bp6&7mHiM ˤ&7Q3t0e'H޼\'y )VQm!E^KjO4.4Va( \YV nI">hzfyx6|#E]d86qU٬8<ؑx:O08`1qGqI{ YC*(+u[sNVif$Ac& YhC50{Nܙ.31}9WbLֵReo=j| h$B)6HNI0QR4ӝ^PEH9YڢU}5]UWK|j+JRKfj`P3Ca]f3 jY#Tcչ&\Hu鎐jdq:?nۖ܆57c jl7TՈf a'%OM5Ґ]=dO^SB}Lkv:/-o"6/ P#d8-X- P$aVͽN3(*t-" 0gت&b٬@#4 ,3e3FC4r4OY^\C6(`6 [m;] _tf*ΰi/X?ɳNa͚ BH:HJ\+/6BIgNjNr(/"*%"E,.h-K@6Ҁ..ȣ&G)\eZ&I01mt'z#4mY*uubmêjۀ[-acyc`d{tKH/N&CBJF#B)Xji $*:F8EƗoe'fgL!a">˰!DViJ0iT "1D*g!%&rQ-gu"Uب;JrbI.&Jp.2tq<'(l7hN[J~0Z$6owұwq{\e<;EHbH?2mSL*VHIUT@"*,[czJb[%6gs3UQunl X/45PmAYZ=8܈*[^F NdƲ$ G>]07`#`#`H.Lci:?Lf$sV#ir;%hπ 65TGL&qȄG~PՂL6 'NQ)OJ>3\.$]@1oAdBN_ ђCSdP>Ĵ7(|@j==SCE“NUy!dYD"iB$N(m*QΏRb-b|YMT Ti.J5Kҥ)\u7pP6m*p-ڈJYĶ7PW6v V5 "x"5Ur7HSD iiLz3LQwGĚ<%I9_k@Gf}L&Z$)d*RF4IbϬIdla(xtoT;' d7L:dHϴ Mf@I #\5bg1gqۣ~i]T+@h?~}h},2cpUstl'^Tgنż0iCA Ё%V h"ō;z# & x@ ".Xd1 ,AM< 6 gD 1?"> liZS?IS%%YneR"t!#b# ?q vO9`ƒŖ b+@HbҬAٴk=96aϊ1H?6T^pB? uZO@@ O _RzmT T/@?*bz _? [:T? 6x@L'PEt%Da5Ca@I4r)7Cwq DDƵhQp>c+9@1%M$A69SP9u?TGRHS]A[\QUUStuWqTVS@[ŵ] 'UT_Xag_na搨bd]EfP1d^~|兗_`J+)Q|!w1 b^z(VA٘|bڈȆWcnAn1(1C$D]S DN8ZԖ0KR2eОVy~X_i&Wzt&[YS[i^yQ aVu=An@ڛ]:)gBj6m A n1Iu1K|Q9T)6BϚHQO_ӥOpX W| zʋl3)!eeO?dG"֫c2,1zcsw2;D|/M|o"HSN5h[QW`aJ4g{|%O|JXE*mд7mg `Jk‰6O2kŞж)Oe i&TpUs[W`* o bf$IGJ ֥`9@ drGH0UDCgYgv :"igx—EZ #R#ѬC|ץ-:"25 ;uXl/i8xuy{8CH9 VjLZ ̤Iꊟ<,yNsi_ggB[*&1ɘoq Y3|ej<09aFHmm 6ͤ0ld-4:Z7ИU@"nt`SH`\f:դ`+cE:Ns!g= hv8Pԡgř/i*5KA xf7 GUT0u?XEd=$6N Ģ٨F ʴu"AHv&˞*BED뺣(B)br3357r4%NR'sB`HuR\5E]frö3 *R U^ЌfAnYNv&Ոh abV9+ѓe#g4#5]7/i@:FaW5cdJ纶bιa'(D VNrHiQSâmW)HFŭ*FӞ)꜍WR~eKLլK)Q ȕPUzl)MXe(;g޼Gu &0)'sαP2eե zrf6qm<#P٤F1HjP!Ɵ1nՎ.dm&e bp'MujR&ֵֻ)K^Y kV`-EePI5sS!8ɚI+P^a2('җ'1[ofP&meظy 2kT3\ Yo nqQu8;W3V8ꦨ#-JԵ0\zZ{b|:X2@{jӀZ)VcJ#UH,R:, ,&U_Β<=5!7m%8|xhu1&%YKE1%U5me)99R:#SH%#@Hy/23YuX3LKcLre 8!4}{!)NbDOO2|7'DC7$}&7}{#" ,^tҕi ɵ aqڂ2!i<9#RzMO%UUi6SVuD{Q:uv b;HQF">]'v*b=w#,Ab5fF?x39`+$x'EGi\uCo5F((bLz5psK]h$zua5WZ2~{pe3NN)8fU|QCCzu}qyCX]%}S(!8iF]aRXRAF"GS3D5/ lu!2`XF0^O0ca"ndv,V,F)yrHb8ߣ,R"% r!>G^_Nj}?}eDȒ0Ux]"~ALjS:e3@(Cx_~…*wEv ${9b ,E))AwZ *Ň|v7}&C1gAdr.mh'ea8m?I8IVQ%:[jFO,Sr;-5"0  bHaw2Җi .j89U8 rtQXm8ރ1-q1Q/ԁ`Jvq9^Gjc7h% >DO2%22_#%NLǙt4cԙB;v"Fp4(5v_(ZDXe=fgS!hUr)əd3i&[)D"P{|χg&wCwwFYE8iH1B9:((HYH$U0_2;6R:1ٱ E N \v3QN*Ir9`HP&1F}v+hx*,`J +OE0h^Ec=iXteN`Ob2A%QB9A{zyDfZd KdGRd'MH6[hz- 6Z9O|fs'[l6̧gЧ[(P4{BiDoC$:ՕIZ.JaӨE[7;E{KW ]I B[+ cq5=AvP[+tDVq%ڴ @C{4q$y ip'iq`Y~M[ATMb)AHkZ^%+(DMS˰Һ;EE-\f'f-NyIfl97z#Pz*6*(9+k׋٫˽ +Kk狾髾˾ +Kk˿ ,Ll  ,Ll}%!,#L%l')+-/ 1,3L5l79;=? AITlGI[FK Q,SO 8VLY[ź],cLeܾa<h|j"PP Iǵ@ 0awtlDp,tlv}< 8|[Qɋw\<ǺAʊȠlǓQu"ʯPyˎlȲ "!0ȵrǓȃќ`llnȁͅ8(wPĚ 8"`DFtȤ 8}Α̵PΊs0K1p:;y| -=Itс<Ll)-<<7ҀʜssmЩ3m }69mBm=\ͺ(m<T]+PԐӀH}3-e`lѺ1\u],M!`<"ӵBLר\y=R-/֎ȋϜ|}m=bPerPʄ ȁ]}عڀФ8Y=ۢ@ׯtmōPxƪ!}Q=m=ʁ<B M hzդA 8\ٵb ԏ ڐ]qLtս}Թѹ`ʦN LJDl˯>MaEQX)ݰՠmϨ~-=Ӌ=υ(-LPǤ=NӝqɀMV䁭2+~DPBl5>Lۧ=ViN,΁̅ M-vE=y=nMXvqȐBmߔǕNo=橞꫼$.;E-=z։赂8`D|Mʯ :-1f۹aA.}ŀ3##`pI绮aA~qD`>ֺ%8E<ퟭpnq\е"ϝT0>ܰ< 8P .hځ3ٞ(~P _+ӓ:{:Am>|-/G[l>]xA 8DfȚt/;R_i ;Е;x/ĥ?l/o,/\?oǏɯ˿?o*!,)xQT72 fEIfHQ&3XAJB08( kNW90;S9DF5BG!>1;WU6&-'. ! C3>_CI_ENJ9I/ ڠeZǭtLQqPVo<)6hXڸV=GZ\D(%wa=uJJyPM̴ @ \Ur_ͩwTZXTə|}SU][ޙbXUUӪ͔jfbX]iKTc]tWׇWB bazcF$scנk`n^SJɝV?OvI d@^anNNɇfl[q]RNzS/lIOgnJ80N ܥ}ϑVغ]=BwW鼤ڇeuڕgؙsK7DޛťЃfhR>JoGHɀba+WJT0)e3#ӦC鮂rHրVU)|]ŭ{G̴v;"׃`}aE{TT69jŁj[d>>iO$SwwV`}hН}lUIji{A/ʋp;+_nuDEfSÝY?4$)߆_Љ_έӊnN7ۊjM4;زۍ]uH4S6`OhރMݏqf?eJBboɇod~[wm8Ůެ^74n뽡_緖SSSēwwlunnn```䨣ۼښ6ADDDWV/1ߡ%?ASR h*\ȰÇ#JHŋ3jȱǏ CIƂ&S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]_?OxJM>Qjʵׯ`KvJ˪5߾%pݻx˷߿ <KX/yS3{MӨS\^փDG@Qӆ vepփ v ($h&>`B \$@x;̳@6;Nέ?vuN X'P1N?{\lp)zmVU Ҙpp{ r9g`B8tZ"t~9Ej4:ǎrs :$qO}PJw~ У~@O>l>|jlEO^gvIW@1,rJk?$A x*Pa;_ p  $md *H;jz`㐄Y϶UP ޏ]6vz'ТGm{ G\͵K$rw$|S/}ݣ8,' aDZ;Bs 1,6/T #LF1hL6pCjE:x̣> IBL"F:򑐌$'III̤&7Nz (GIRL*WV򕰌,gIL !G.s\DB/C@bܥ1Bf&X&4!h2S &ts&4MLL:׹NA 01zf9~S 4KLh22І: f0IQVԗB4*^ ?z1Ra(@E- LS /)L9k.$6)5s͞Fs@71T C-Bd 4A&*TWjU͝v \UAJց0!Apiִ)G;:Rֲ% !]u%[֗RD eX{Whr"ThVW10qYEy6u076UMjfS}Y#B̾6_ W@~ˑĹI\k hKRR7mpֽRjkzzޔԶ0Hd#XohE} [vSYO;$7JUv1jm W)Lг!]k1у$G[^8Wu.H\T#uc_ǵnE`|+qK\ajTfX*5 Z^6%jJ$AH<&EMy Ƴzxqo&*ޫG!Q^9!6]~w ȥdZvȣ9(YM1_d#CЈmgerko0 Sͬ.f#,U:oLsi;6;?敭MacauU"WBӖֱD>] nC(b `zrz~urF[]jwB#k_-f9kڿ 7bN jJN(Vy/LsgF g4rk^{1q#d1]oT!$u.D-:C IJ oE+q@ac/>Y`.uޟqq9"H\rx+Txƻw#,k_Xxƹ*X75a*t %msIQ\KR ^2Q@tϑ;@u}3w1ͺ}>ntHd)eUr0[jT!jNM>5_!Ȁ*Z35)d4'uyy[t5z Qb0bJ7]%Rc8]zPwcWu|ᕂ,o]wQ3ht4uv ! Y VVeA8s'L!YCJZG_{ f{P, GDvf19`[,j}+Î9*}I%}l8]]BfӅ5;ϵ v)#5&ΥS[kǦ|8Y;_é,Bkd[ {iyr\JU1+;FxÉK)7|F){\Wutu[J: հ ǂtLl9}m8X+}k ~,*{TG`Zlv.MUOMm7̟p 6,K{z]jjeݿ[]笭6 L\CiN1x|У|7욵mM;MA̡20 ;1؛*k *` <9Y]<uyݛgBXUmNv݌}iE,ڪ= L Q ~qRռ][ >.AxymDLer; 03QހvLH] & ;g2n溦3~fS+ڥv{",\| l@W l:"7Iea\: RaYc-im]»ƀGf-m MR+ŭ>`yJ{8Z*L*w\n9{L-v>]yƚP>Jd=V#l t67N9Ö [qLS/߈M" "O]y^6 NKv.:vu.ϊ<ȦK.<~ڎz` b*ˎ镝ATTTð_޸Ĝ$/GPU6Kyy 7~o?WqE1;>?ߞ?o.=J/>0N>xS;J_ٜm-M9x2Q@\|GP#r]y ʹYenO%L!@(T(CaB(L5Nȑ$)J!;SL5męS 8Y"fZy$(7=oAx#ZI6¿ ZgӤDy <*g$ q5! G" JPX%-1%KJbS}6`R '5;( X=nFƙ bs60bN7YF=;Kd 814q4K2M@F84sbTzq VmS j! 3MDž2֧6S mGsbN$3Ӿa2DH^՟aIwW,YaԘU iX%M]R+99-g2A$›Ӏy7$P3f)E%&Ebh`RWnz䌋c:F9Sy5,(q@4,Mb n"iU2vH}9]Cc7ejںqzRt\K.EP*VIMrjDZL3eGKJTH.xKyARL>#-f۾_^BXE-r%Fkk`E W`f^:qfR9Uk5yB,殊`SH~2 q?6Pט4&m  ٦P ),ٶt |-3.x=#A+3<[={;A@[ҁ<*8ᆈ3.n@ H@=@zs r=',' >4c:2sӲдkSj{RMtɱ8˾Jo{0#˜h"y =\A[_s=pD_S`:cҠ1O,Q;59 TԶic+79K 7c!c7z*)K9w aF4۲@r<ĥ*˃ t L=. -mU8ִU2GpY-Y#C#;E6AUԱS= 6UtUX9DS TTՃ^JTYIEYYIN_C󅉙THJ7൨TUH8;Uŋ<] D6;R}|[E݂}[@M˺dVj׾ lm*x]oAo56\&k,*=*EW- ˣ܍KtTL3dGcF,yRaض, e _@A2@/UEo YS:5>1.=1FUKY<3hϡdNJ:Y?N @&dAAcAIꌧ@CCڞNH}ӃYYhZITG\HOMj:|d7RHe#c;sYR 3ݓ<,4P*ز5h]`V 4V`eb_v bv.al%\pfL}Q6eaFÅA6{}V͎yL gK &Օ&+ٵ]nM mU \kmml葕h2F44 S@e hUsVN:M=6NBfBA^iI|pBG ~DLddn.*dT-9|-kXյN.m]6S-UK({^m} &f.\7f"\Wlc̽dhf\ǵ}ךf<f~åL LNqby"*r\'Ԏە~nVmݖp5>sS%c1>nf9=hvj:ncBu`6tN5oEIK&GvKiL_LDHjd?ߓj&YCf❶MpNmv1^-h gze /n fNaflnmwQko ɶlV!K\a`*y`|A n˘kڅ&s_W[d;EYn64V5;gY@]>e JM,ޕ yXw?^vF^GJvyjh1fj;Sj)^<5U7U _~P79.wڞW؆51W&DK FG+7q=q8Eav^qiam׼3pflWaxsKom nk{i+x|f`~ݺ{STsG'[-^3~8WHhnnF~%@yXuu~+yc~V&is'.z.OP@Gj٧ꭤ5jVSnNp2o@s t4DBH9ZqF!CjQ ʔK,/˗2KM8;#:t?_ ?nA T)TRv4a Yyr֯^]p$EX=T?t::"u۸z­)oG7 K6 3޹$ȑ!9Sύ 9:j X8p~cРA _ܴq9s3n?|?rˉoGGi:u8Wx1ڱcs,:n'7nHt*L$O2dAIDx-fF aO,ce/DI9 QD V\%UGTT?őUa%VVaUm9YNZw[Y6%W_F5icM6ؔ>cUVFSjҡ }6;rFsHjcDYd)E6㉲4≹[kpstd 9j]Ogygx=F v?=lt4ٹ~wIg)mmXta$FhnEilk2b mdP敏.!eTS+tS4dG5%$tqZ}fVpy\rUblYf$3>5=mM%ISt矍%6eE'H} 4A Ӥeь 1z[ocۻoFb\v9Uwq,O=Q#{÷q4_a-"}- .uqGRpa$BZlkCJ6hYuG }QOvO [MR N`!F{yOD&Q+\bUb24_M⢾ (3`R:V{0Vd& K@$Üj gBr<5D|3C+zT8dPIؒݱvMn c{㟴KBo|÷#&,s_ڽM+]ŅdgXk{c xDL8K@2Gm(:6 Εio|[pJܼ,wNm-W<󙏸:}nBGoץqiC~^e^wysNk(KKXT#pVТ g .Z TђqM_em_{uiݝ V!^F Ơ-&X5^Gĺ)DbGhPGQx[鍞LѼ]>) >aG~Q>\ACa$(C$AH  " J "A_ Zm΅ ڕE`^#^XuMb[p՟mWGh"X}X(](_؁_O(SL}_="$b݇\zۭ ˵W554c3 ʠaMi[ [ pcyŲț>iAQ,y^ЖDm\hNGaNE7q rMn# jf5ДA5$2ࣴ2JqD R{d Z .n D 䥁W9ӥ+-鏫"E)IzdQZnZ_-_1/&#֤_0K3r3.D]֥h@c5! 44~G }s9d 24&:c^^eGn-*!jA!=vhz<ƞm[,dkamB~"^*@a6n#E^dVG a3΁(8cwMHJ3]u*/ [LZ̽ZBK~%$&Z"'^/DR%GTe( vTj|Ī9P<]|"DNOY_M!j_BbL`!`\\]>c3h__&em_.fGBmfm2ШDdJEfBiOz%Qi&F=Na(!|`G~x<ÉKmFChFH ^&7rcqzFDrz$i t^3$5(`u(2vD\h]N*B'x^h.xzץ%|UQ)V%<|O䧭ت~j':I*WRe(n_buU紖dvV\d^j^>#Jr?o(D\AvD?cie'Lf!㼝=,y^&iz~?qxB!+B\FB!DB*DAhB*lrC!TdFG2GBH:3,]"ꠒjHZ_{e+"c⣺K>.h*Ħx*OC00Cn-}umzת kb%-"Tet-1eOT%(re⩪꯺'> N-b-GP5(*:UKdΥ\vnn&GPR_h 阎rDdfޑ"ijބA:O^l)mǖx.6B\nΫɲaɦa(&l6.'Vʊsau顚(V>nΥ*^fMj0F텩~iZѝk0m+CTѧ:I(X RpobᪧHjR> A +jIn/ІdH,(BDf-.(2BiGAB,niZ/li*xd"Ө&q#hl#,/+㊂ޯ(SC^$"Pt-x*p-'INYp"A%r[Yp(8KMBY-*}4[ o67߲,2*WO2O, )K5Tn/Њ+n%?3-n:.ifˮ3:.fjw(>VM V@,.Ć!hRnBi&.:sOp p+g8Xomr;X[3:wDBsOV6?AlzsrPz6w6?uhH:_;7:u50R?r?#^%--vG,&-<B+Kl)ݖ#㬃lG>^v $ogq@^4ro$CC+A)E>1ʞh?$%)>ゲ>~ W9 6"'8x "B831C\^2ZK:A\ϵuurւβ^{-s2вOuG,1Z8edxR+TuOgwvgA@jOvĵA3o1r9Jilyg[7Gxw1~ndCkwGvk!X,M"72h72O1w?>s,sÂ@5T[c25Ăc?vz[(P(_U%]-2?w$8&JOBx:G-xg{rdO7DscħCk{d?7ODvhCi4;k;1?C8wm:hÿ֫0ۑ#FSzK&F_tYH)nK1c8tw?q()vh+39P;:Tw͋Ck;:r0l]Dӷzw1/o8zGH[KB2=C뺮-;A{^s 78m6ٞ"8Ĵ?̍C{G(|W=O:,LE6-dh/?k6v{Ck#o fizSaΚChlc9' >lwɟO|(X:TӰes,06;=4ԏ7[$(<5@/@PS8P48Q$' *LHbD.0R9dIr ÆC0ؓ'> I=pD%\Fa5Zå FmH-VUjJZj(Q$mA{ϖ-v*{.TL[|.Sxܸe ))QDBӧZ5S>Le6l>jkJ!Y((&a 5DaC *ȥ "dtEȧ.ZB P%I!t|&P 'J"jHK ,+ 5لZRKX/1; 1S2# 2uJΓYK':M!zSHn GuV3z(⌣cRn}QF.;S3Q'l l.O!QYK8=:0kNž* s*/$@b'mtH"z q +\؉m̸F%~sH&A%'BɅ2$`EfbJ' |תUh"ZZZ`i[jīk`EP͌Ym,5n8JM@՞ur]r {LMuS鐔l<2O ˫Ӯ#0ּӃٶF:̲Z5nŅ%Z%tf>{]tfj]zy-XJ)t'P&ǐ" IɃƅ1r|&'$ 8'XΏpŏN#JJ&r0PD(1^I&%~ Ey .% *K5j1=eLIY&r,8xjUK=n9dri<2UgjŸM"ɩJQM6|kMĉFqrhj R9_Wi,q䉆(]zÉas!)2;R05PHif?),+6<<yB(1,[Ȋ60r"ELTG\،Xv/G4‘.">$:B0 $=C 3DASTI \QHi DԂpF֐N8a! Qb9YM!b"iU(kQ΢ݍk掉&4%=?ϨٕDz]sQ tRydh5Qu(=kGwoi3hgA$)yGbwC[-9Iw]OMDcfCWJ72!,Q$HFXpKIcDcGP4S2KP&eg`4LPY8{ ҃ !m)ΦZ *֐lʦ8NXqQgPIUJqbDO3R#p?Qy UHQ4VZtkEF&Pi96ԧ(mHZuZGDg'DJwVf P!Ӂ2qVh8#$ bua؛ ]Y  L$ 4/K$\XLP $AvKXnyd\:+چ­>)1G 8wr"̙Fr4h"LigCDIC&@ `e.SF&qrME*N梹eCQ(WopbC\Uqbli2@r=Lc,Qg(Ug)ꃯmT$IM;HJ {*{egDɠD$V<X"ru%nc–arb\-Mr…#AB*+y 1f&kR2/օ&CٖRJjH4LzS*s>w)eS^B'=Ь+tP{˺ZhǀoO6Ρ;B8]hr<8FoV<)}3U8Wtbgo㎘DQme4֔X\kǧj6Q!ov0-m.R5ˁ=w{E9sK􊆉(6OݵOo,#ѱ)HHs |ȼ"*WFN沔+.eS$Iff!~$?(=37!n9E\>+l^u߼DvS)D:Hv Ipܩ!P,PB(i+ ͷj(p(Ц+<NHk,͌T&4JU!Dʫ5Neo( np<*oZ-K"+q$XV3(GM;p*Olh 쨔j Lvb Go~Pp_6Xjoji#n nq {'^ b*&"l"F$ɲɆi@J|>1%,@#m .3ꍮV!O$tp\oAܠG$Rk^QpT| iXѶA!,є01 Җӈn+Bm U 8. TxüBJ$TRb9hz,G؞sqE B @,W md۸16ĴMJNO^vFޘnȍ  "tlѲ,r'RF.)bR!`R"@/$>bҲlB+H. co&"bŞq4 P*N35O!d0O&%"ЬT$L$'.&1Ҍ(3"E U@ 5V a0a, Ga-֞RfRrP"8Gu${ӟu}1. R$(EjuV!5PCFJ$8UN'qdm8vr(Җ:k f$SZO%&k%/ !k@!"@j_jQv׌<^eh>vB3=]{2uEyST+1]Ti Via>fIH[JhI/5"P6}EW">_ \!J?~>Jw~qgXd)" N/J`ٗ}}8})Bc8b%Vis(Q!N'kUukPEBpQ[7q$wӧh.UYP#m)"fR!$>wunӘո6[и(v(Vjj3Wwap \EYD7yyEe$4M}bhet{-)Dch7E6+8BxiyZzE—s}ZWEzz)fdFߏGbDQИՅǙU"ZYAZQ"W{"ئւ2nM7,'PV q>֙r ,r9#5vOjcw;3uwю3{EY۽ۏETQ2jzY` !'=F{g$}$d!8חf7wG~)E\!@M+X!\!bƓKBa_;cNj*@ բ?"U~P#^B35|ߌCϏ\С۝[S Svao2jKT3ܩ'?ӓކysk}$M\Iق']}Z$ӧbK"4U1ƍq2RȎnѤK/d%L\qѣ:zO%(*:uZ_:TE궭ۢn la1féQݸqέYxqV O 6;8#t̲,O%QBňJ٥fq%͌ٮbzUdǞ۪nW!ݔ(*3Ç&gL ](t>&^ԧP@w&=(.?o^QܮڪUKeJ^Z3,0j Є(. ]iqA j/jtP4%1 K#Yс:g$HE|Y'UF`j9#SI;M!s un@*XޖrK$R0@!#hFzuuӀ2"_[#NOQ#@"ҏ HHx Y%?!LQ#Y$щRc,J@aP=O=Xkϱ'cYD@VK$MWU`q)nh6b"W2R2Ql7@81z˝13iiL_ȉ. Zز%$(u{aEC/&D;d)”Y>B}t1&+#0A%U`L?') @JMzo:!y1dD;HQ1R1#3zCb=Y[jVG_cqֳ# kH@#M%+`Ccvm]b,(GӖĈ*[ (Y#9zMqTZ"K'Ǭ܅6 e&#UF[XFf"٢sb΀zy3n#pHzDpbqc1bH+V 0cW idpDŽH&mqBF}"nxFqnw yy{.@l  r!Ryh2a:a O&Ub'^-G HK?8 El ?YpNb{HcR_kf*FڧXRcXW~'=3XJE`2wOw12si#5r."S7Ə6=sSG @ j7x3B_SX 0XQ IwЍ)*娀A))JhO[֥gQ7u9Z8e39q].hP6e5;XQ>0)V ѣ&mV9ox.Ua Ǡrr?I+ʡj@ %[zFJ :?a,n![Hd?Vd@вIt|R:U -PPaO(8˜d0C{X(0%fU&}4%=S<|Ǖ_X(VRk1 [VL H20+њ 1+ YMqZ#* а[q?6\ȍȹՍ` X \ٰ4!cgʘީiɢ6,wt'"/C=zUg݆;c גwHj֫׋'p뾌˓䛱8I 4 bnKxtlUyF[X 0c0mFw$VhT[c64RDPªJkE$\hkh2 k;ù  ˠр9 QR\İQQ]`xs74qY I} hǭX}\RǃǰZl x\[عګ hᨺHZ'Y1%[QA PH\w"Qwt$aP,N; kh aڼpJ%z!dۢf):n +ռ*J  {; >铥 Q IY`WQTlU d@$,pjV KK--@ S/O`E-)ܥ:.oK,1 @lZ O #h ? MO}ܹ"Ry[oQTm( ڰiYi~\Acv0*ɲuZ93ա}$@r >roe_:=!%W͟1R g!Vgc?F!~ܱjJ͍@{a - { ! ] ޓV nP ] 1HBBʤA DI>-0SpN .8:|20nM M # ^*O2,Qk9;,SŽU,gJ>8R=򭹩A j"`A5 chP?5բ(p"Z h4RzOEkYbS&b( eǔܙ2ewk)S|Le㣴 =-gB㤎Zf\mzb8Y Ķm nΥ[7:u7laTv1Kt8۴8^0{oi9׹!g^|uvVz`m8{ns7nݺikOi)gHTsZEN덦7H߽N_"Ó_=BFb؈xF/O FB gpipRl+))b?ܰIb =[aHˆ$t%̹N* * 6 *΂h3c#9!0#Zg]8!hLFƚ!&bi'[xB𩧐3j2`+uF/|<1v:r-frYg hբغȢU)dS0P)ɨnŨ.!yL2muJӲ3/ |c7܆+帋4::Gip༆#4/@w0P/)iA>Jq)Na1OlagO=npB)QGbG)֦Rv"5SO2L*ۋ1r4I&y 5:(XJ>=!@m "3uOoge2u\uo)M)< R%[`*d劯`{U`!u=fi-ײ"|kBh! \C6`brnKFhR zFs -|4+pf0DiHq*F'dcȂ:uMȲ"`#ԇuIz#,<(6'" YC6ns H`)RCQ |stTH*A@R,WM!(.t\<" yN` 5R-a4t"R)Pԉ/a)Wy+=s1hw;G)SR9ͦ*%pA\OV ;2>{a?R{Z }c2 AԆ'rc5D[J^•_iE+Sa_ k W,Y(~R <`.Dl?\3mQl*p0?#I $J"I2ҩa ZHӘp2 C:-Ͱ!4\X k#V[%*`RD$Q$)o\Zg:R %Ýd簌H?/6ֱxң2h{Ԏ}pI\/1mLa?FA?>K8F"ζ{dk% I'@8@q<x"b)Ba ROb~^A`,~9&ֵb_8(P: ,QQJ;iy7MJ`= P|C:a)b)MF R@s11axhQ,DbX4=Ucu1vuYhHŚgئŀ'm60􏜛ȵmd ”1⑏x$Yې ;j!'H7"Љ0XR{5ӴJZ&:ṟ˩ aM AC:ǺZb$r>[-Q/_fsIޣIبy^3wQjf3"MWMEAםIPzSTW^+CZi-g hrb+Þ.Xre#J|C w|)M5 [hP:KoT,DzXlcoE M?b!XPv4r`TLht H=as!CM_X E+n ǏqXMr B? p-bvӑ+:-rdcd ,#tk*g`f99 bibK.H*S{8!Uc ۵@Z>ˮ\(.5Ю5r9̑ˈ :۹G9p3:ѺxZ@ :[9[//XH:/ډ0s(cK<<+΁[P>H 40{̖%8?%\r'pJ Ea/8B9(9`ql \D!Wd':GI<7Rħ0;tűӄŤT(0[GQx3t/G!:5:ٽSH E|B=kE>HӄlOӄFeƵs g:;pGpJ c2a:pRQu*Oaq :sĠw\H!$ /{THF3%,6E@IȃNS$-J2$)pVpӒ- 8Jt$W8-IgRZIxV)e>ӤI0YƄ媛7KAR SL 8;.&# AcU#A#IU5C9QRWmH]*XRHZzdÝFyĥیPFy<>@щ Nij_t2ZQ~T[0::⡆':{X<GG,4=heMVh-q֭]] |Me`2 k]<EPs=fiX=fG U{oEVPE=-0;#N! XQw5{%BCѴꄌbBBK  1Bbpbhf@O-at ,_H7Q$ڑrHV:0X">r858ZpH읶< H\p)05I E8Hځj䑈˃ 1'49Bp+C#!2JCT{:D\R44\Ø[PH_e9I3ɥXJQD_ډGTC^i M0.f%EG8{*5JkWY|EXdTHiJj{OO;+kNu2N`e}?`7``YPCЕ%eMG:e4s7k͋P/fXu,φHN􄰺M<dO8Ӯ5C5TAI.1IBґ|J)ّǹ* _ vsZ+ 85%.G-BA=X8\51޾\\ c3bP.05y\]#el`QVp++]M $AZ5@)9.1I!Xs[JP[S>#,8;-X/+`)XZ@3 :!mɸML_C`X؃C,I@\9Lz]9́9@m5)Q>SP$k aQ|Q2K1dO<`|űDd'7S. {<F6}=&Џ؇Yg׋Xȅp=a;й8Г'"Y$NߓZ>bfE'(&{jfvvtDNCNy.jK/d4J^s= 4]R"%뵷))dbƩ]?z=-USB>-l"d-@\U>]˵BIc{> @GB+1@V@*]""h&? d\'ub+$IU&4`U’.419㯫)Ɣ Li9zeY2|teb]eCZrR4VLa_gg@=aEQuܾo&4*(l93HfcO>hbcpKNb(; ^O~\ +('aF&ߧCPjLX]:=j]`'VOܣbcdEXX6j40XL`sDd͵K3cq1^x$tv$AFotiO$1FWHdNE_qEoıfAEu*T?8>oǩJ]#I>acdG@*t~ҼYABUDuGځ1.eg +h!(%%%`xy%0~'$=Us="'37Sm)4exf+B*mhDhӅ,J0J¥x|rH*ʉBpM8y` k{1GB˩]=ȳ"QCekKH4{Ȥǩ8+V%*G5:dO%1mE)n e'&iZ'41gb9Yc╝Of=v\G'8vĕH;sLB ?9r?5[Ld[3Ahi%OAc?Lg$D\ht.m$%mHMh.'J]7VK\QuL3tk17IӺILe`wǏ8 B~aaB ̨QI{>~|P&!3)̤`t"#=5)_.`uS  Ҟ|>-\\bI+j'u*دYZf5^/O:;&MWjrz&Mw21%?Py("E !yH`QA4Z`;2M>s=DG'eI*?`-d'J]|dgU\C 5r&F2!B8X4AM.H#,،F{E _u?I2h],1e,\ϥ&U`Ӧx ؘv饰g^u2Z"c8Fe5Rk:?0/p6)j,cYabp X1 gFh5 Hb LpB\}ըeC4U)<0"Q΅$$ O8N5 5M ؤ_.n LjĒ#a^B&bzr<e %/XQ YT]@NC"PI/d4"Bf}@3i6#+ӸiAJ47# aǎѴ?H#ZCYp1GyBs6:=ܠAԆC?9n:S \ߤ>陏ٞӝw6;)])ml6/9̹.s0 k@p 1zj(DFȑR0l$ICGcha{vB_' ;BMc̩Rz9S.Bz&mRSA4IuZGb'ԌM3`,¨FEV4>?HO*&^*}₮U^ |N'H:%fIH&EɑKJmqŲbMk(d3cУ/OQ#T$)OAF٦|z\0 D5'4Q(4;}N ?pM>QF$ov!dotC$i`og@C4t 7WQNl9|`rXǺԑ89ShBm1e{j M D͑;F c$EcGRm~{̦W Zl+ƠH橏zT'?G]*^arSa) o+ }iJ;us:M:Ii~E r2]:S^f=,0YҒEnkhkRr&&O Ʈ5v̕5cHS3%c("Qa +O!$RpC5Oiiqeg}|5Әʰ,4M<^:ANS^j8]&!5<R.ve`sr9i8EvߜY8,r`Έv ܈yy^9\@e(Fq"cmsz͖I%PyȵjJVE -R~UJ?2vW<+MyTͧ>B<5 w,XH:Z;p`ūe|L]ֳ "<a Ӗ m/j[Ԭ$+Mw!IDiTbR).e9+{DV“`gsتykpP)c1=]ݹ@ۧ9RK_ VU}(ޮ^ɜҜ$ܜ׈lh@xd?T(op$ќ`?5V5؎(xN!N5rĜ@|502n^Qn |aeN۔ath-Xn ,3WzՈ4l mXq <aHiX(9UL<HP0FLdIA!^ ) Jޘ}- ɕi-!ı]b(?(A+JF^ʥV^2?C 53*XAJ6^_UJ)a] JUT_'b ((a@LxebfdeE(*FfF"fGe_qZ"-ғMyRIݑ @4P GRFh"JRʥGC0xA 4(Tx44ԂB-N`,CQDC.gq ^UKN q'3lᅛME')!^@H˳Xh2+}>3.hD , N ,@,A?D(l(A9c>^FFJb(b` eXNfhb $"ba$"yƢTTkeElơiDp-edzca rib+5& G>hܭaT8}A,0#&ɣ(H@p?d|)PCRumb D.F?tѾp*).æW, @u΁Xi(OJ`o94o@@J$BI(B+"@%箸0M<颙/^z^^ XЦUP(Dn,ٲF p΁p$G[fmXEϑ B+IFTMʦ U1i8 !Xlגg `PM9gFA9#G ? /C@V  ?T*XSX/*Z/_q*)٧Nbƹ!Ļa-gَbF c `VxXb'CO[ pEߎpGFTWNE4,Q?%GF,58iС5 \"@ \鎥s[t7H!plM(N 1n穤[LvNgynP}h|O'7{~'㰸 eDU(pK} r"hF 3Dܵ pɂB V@OubA%IM)TJMLOHљM1B@"sWI]ڨ 32b18TWCV \yWOW09XXX5lo דfŸB:&n |Ĕ*EQHB!<धD_@W0)Bl%"$4{6vcӬfjf&H5w5/t×dW\GQ;o纯"<^{ck_A<ڐP$0K}{ J[%ݯ םI҃FP*i4띨YTsjRmIRk8&Y1[4%0rOAsvU 5A\4 1DӓdL}Õ@ A 0@ x3@0?}Oy_+=KIC$>mUh-!W̟PL]-""KhIF`ܥ勘4Xm#EBTl t4Ր'`DgY55B-.@.Ԃ?B8G?T,?!% B!@vhGHP-f́XL,>qJ9B QL?D)+k{46A @#"E+b„ q4$ؤ`%r%ݕ+)t㕋b09Q.r!l!0R^fJ1}Ov(OHLSXMRiZ mBkys{lmOBVu$辔(јt"D1".4#r D"CcB'bj-[BI ,&d%K|x &LJ'7o,tJYˬTDIŔ-LeHPFTPh`P jr'h)* WpŕSQ]ËS!'Zm"&2Gb"2ӵ jV! Z%-3Y!&:MV.-Lw *e*Be%Pj)!- -L%!bY ᛤQi[`#䰠)2X꭛RJI x&kf #Bv]tav{Y+* jg(`ݚ,83`=&sJc 3Di Sy]x$$J@?Bxk*RZh{|=PDHmҬВC 0#0+"m'eDKݕIKLK[mc&Rj|7˄SCSYr,$K7G_C=K0ՀQ;"dJ1CT@2)LB` LBrU :3ABAdd *p4cA j8,ʸPW FİRa Җ .s 7n.%D0M4kN# q^4Qu.z%C[qIK}!aj#]t5b` @Ӎ9LB%7 zee5O`SCȢ fb`{30ɭgGYk|fMe*SW_4BuH٥U韬Hr15#}Xظ#H"KRc_zA87 C#, Q@M{,Ė eNFnsP6Tz[S&*=*xRBGEBXӆ'htM&`fC4Beo"eLu1;Z%XƂϨ(\5G%(F""B6*|,`gbdZI?@9" ׄdf83 "kP1-<15;dYt^ ⽚(L.Ba c[zHfRBK~˟"0BigMrc BBɴU< bc#Vwt4h31%LuX2H"w:zd|rۦ̿p. [f1K\EWQ\:3:9. Ԃ'-Gfz=j {ӎDMd%E2YT:=x >p';IE]r". SP`Pja nTc HU ýƥ% C[@ֶ0 :4E1B/~nR*PlڃGΣqB\i.0 càb$R'Fl,RJx:NP}}ZD4@P 1Q.Q‚`ȉcA@`/ lbTgL`!&r\z(]m!"Q6e""EV%lW8 /1 (!F  \/+ )1 69<IO#@"@o!E 2!J&ſ@ N<L 0K愂 %% ԍB6Ecd;rpHXHPSaKAhJ)i!hJa0!bPp`FT"(1 !9"[hN\jNcҩ*p.ubp+>?h c޴+?I/*=D0 "E dD瞌xRD44KNgQQ%6o;M^@+6=)L9. vH/ 2αf &6zO=h3α#Q!MR@f~> mAO"tYA- s?/TZ:!;Ѐ" \o"%V’R R܆ HV$g^ԭ%%b!Ϙ6J seԪ)*2!h2))rKL!)d(AM$Ce@!^tŁj *Z&#^E/ehjD%.bcLZ:;Rp"!BoD@L@&R DFJ5dGh'3)EP$EB.R,*wFs444{{:D>}GТPp6 a7Sɉ@[A'ďe:q I .?-26NVAcc_6n`fjӏ"6"jPȏƏ&b53Lhc ?e V? #p%Z j#&#FSFi͈M^|^te BeN.F?UȀ b)2)lKrm׶KLCLmi+q`v:T,4&`4TodGX%Y$bN5bFYET$B%VHM䌉jߑSZ如0@!+ @ IBJT{R*E$$B4f5wBlBja~HsD'DD3-TG9EK8Z COvij>Y`7BdfP֏&8!X !3i(Jc6Ȫ6Xج$q9*j$؃ipw9v v#9ʱaX?j ]+]geb LH]|臀ܴl\ TU:~` 7 V[nnLK!tA֏JtpT 6+ԎɊ #Fhd&Ƅʂ rŁ4cL 1֌iຨ̂a'lȬu *C:*RcǕ0 e~n#B,BAH!Hvvp'yxED$d{ 8K9!|A8u©'Zo3'aJGψXay B$W 3bck,Ov_ik& _VDy/qq6j>? ͏Jnos!l66ƦWqc'(4jo9dzA !z99c*1؂˱C _5 Ϩ@ nήnڂk#r*xfaat =:2U53 LDwa@EklY\)*,ܗ['z*%?yH*#hϬ9Ccq@񳏒_FYʑS`ZMZw:izf@8CqŪ{8:78"c!|`|` "eu<>sr=e)i8Ϯ4\hO#-Thbtsw@ s Aoi9l6!`%[7=C6 hB1(-cȳCwX*!f@ZʗBRnmfR^BKDk^["!ڽ}KB-0v&+h?>?$ ?CT@ cg~X5FE)B\Yw~ܫ¥\c3‘ŧh1MY)ǁCw~zc  mEè4FqGWE"vk[֩m7~c̅VoÈfV("^;!rC=CsD͌78(!Y(}m#;!(9=&߲ϖ)=KYpu@ej#ȁ>>!̹{æ\g>[kgeKVHZ9:\8&)Kn;"qY%K5h*P BAPl?ćG)s!0 q S)fvb\1YX]]v[`\%ŀZujj9ȓxT)t7ΎaD?`JDG&ʑc$I?3SB9 \9 a@^bOac&6ds&6İ!TtA?y (zY !J!yTR?AH'1}H\4HCL،SIet.PCa )%GFQFEJE?b4F>fI>QKGŔW[=_4!LA1PfkJF]5V0AOuj1#(id8(,._Ta{d UQ NiVo,8(N]OgB,ۉ r 1ie_,1rI\J4 UR25LQtmJ) k? .1W{ |R)|!3p s)+D>pG_wef2`0 ț[⊨ SM E׍E;gGDDMҊ$BTPA &⥔ eda|a a9c9Haj.} JHZ~{s1Tz41}NDՍ(t<"Žt$PGGRaUdtHu`RU7ZBo|b+*,')INLФZVzFnAfv0;$TL1Rаa {$F,;S@) -&sZ9&8ΎL0\ d>XOULiPl̅pcN%c4de@ 5s[*sCOzH6t JJVjuܩ\K*AbW*V)H.T)NqV&]OJ1+MZ! 1#B6ېg)y/60 @&AOFL D3(C Tů%`+TԦPC([aPPD͞HvLKB3iz뭛q(3Kj+60Zo%Jy2)wJ*_KɁ2 & eYlmšAuo޵K? 6hYEj\Cդ߱\FZlE[T+ L|#фyEY\)R;#Nzzw>}'/QR% s\@dM@'D${$"c aLԠ8.M!r:%T$夫HP3$,д;V3i cKSTn-u'E$T,) VB /b+%?^Ja_X ɍv\'CeZcZj=eiFY۠f9>8$nA( mzN<A`Dwt]=/&k5ZfG-sY'D.c"pApַ r"Kp_Lq44Jp4RVqT`DS,+ $E2*+(Wa;g;;5;8hOPa>gO;R$s"fJ'<كKsC;>a!%eWhj)xQ5LDQPgd~^9_1F٢cHw~1CM3qܸ$jtRVCAl$B"D45"!45$T2'"=f(v ("dNWE5hRGTvC  )Ù7WS)|[S38h֚8`lB--1s iF("3sYٜeHcw[v7C1@5~5h`z)vztGY)oa}#〮a24[iIQ+Iekqcy7w"sX;e(DS0FSrs+x$a;sVX;RSHW=8U(RٗJ{ u1V~6za Ja=c X$vHHL#KMJt"2 'ub'z)w<ړhZX19tg8vVgTQ1s55Quq)1XCөPqgHKTde%YG3:jkLEC?`HDA~w7yZ!܉_S ʺL 8L/bp!ڀB3AaF{qkw.1T8Ia[Iڼ曛[ԚN»x^ 2ϛBL@T}U+qoEk9…\jq0I{ޥ80m/=V#8 $VK& (+Kv`Gə1QDb/kd'W\3\n% o||rƮ{cԓʥ:r 9MxAW00Z5iQտ TDaC]G%_)0vA  8Aօ[Z(s 8G|-)c2HYl~#eaFa1!HeקYɎٞ=ۛ7w-DaCM4~4I~/GS/DZ o\TcWGޗ/ݲm \3,A,H*&Ud0E 0}Xz ߢoՐ Eĉ9mуv FITV)=\ (dKi1jXTTI}7]1 &Cǐ&ER#fD''NWqLE'0f1bP1)&ſ+A DB&"4akdQIpKV ?%oH&V@49CQoB"pWDŽ?X4"8٧hQ&Sxi+@ܡ!#z%2|<qsO,T2 c"/!E2Q#dz4Dp8+:y XP޻E2pqHDaoEmSp%"Z|m=rJ"Hb2èQ*IS6Uzvn'n&okL\PL3EЭs +v8 +{ F!jԋBrTg!Gjsl a #aUK 2-kq)ʳBrSBT~]iC<0x4bSe#6l!b+@0p)G^}!$)bs:Xഅ5?Aȕ %i BX`?X<B4> 58F !Swv,s4RZw-͑0I{w[SXI@Ao]=%!H䡼aEDH O=O:~СON");*细dK1f 3% Xȧ&j.r+Ev46)b|%iL4iPB<$Ajz'gPKsCb%.$ D7pd"CIDtEa}67 1A 50de6Ȑb೒2A k,$A5u !<0x(hA Ђ>XvpAu3 ԺX+А )ya”`FⰆ5\XxYRg=1{Hb tcEG# ˴@i~b'xgQfi)JA*t# !-ҏ&L& ./۔{!|o8D7P T4FZ !B^:A D'\t8F':)PR@EsF3Et0]0Lbj ppDbeN|jBD1cp9=I+rN&99^C)? P$yo#HG(jwV*j Z᯴WSLR պ谲2cVrE6e" &ѕu.j= pd(8! Bq 0+ep-y H.0$@pUj4dey)ߧЁ(Ie'V{kpiOd#Bac#8e,SRvFU"o!.oII$wM;ȓ}XRȺ?2gi^Z{a >XCHK)t"j,fP1q la$+vEdLn{!þtEF< ɹG"*TD BDO4 fT}$ZErSN5tLRr)ל IHjվR1y|(ib^I[>)a¯S)ҢiɪJo 1+@Õ|4R, d(ĠieTmFD#:@2 h@  Pa`|YoHG0%Ы X_ O*sbTdhR˜Fo%ehOgw2~+]b*k2S?&r 4`O\"&X"Ș>2kH+<7۵5gUП=5c1!=EwB4BS P PcD4 ۫⃴Ỵ(#ZHR4 ! zy7g-<ӟ<(SC)bS#]3)[ iQC&I@hBsHЏ ,%4F9Mz1x;/ '/!i"i.WPr(\ hP>ASPDCiÒ˺XqsO 21 3:BB@ȃ[@KBhڃX5PcMظ6KK5( B&'J. "Hx+ID07ML<+rDkʴGS %<+ *> @,3MA+Pփ dѝ! D(R_3 P50(&sS@ uKQ {T;uJ|萉~;HOA DJ/C%p0=˧p=D܈8PS5Q l ۯJRcd:B ӹ̅XxRXT[K,T56 Fҫ#1BX˞s0 r 1#ipCD0! Q:;ēX܄rΐ D!ګWkt<[;! C= ACBCdp`=d="* @rs83Oki&r )`+!Px3X ŊVA-j քpMGPc2MHSQ QL{"DiK @R;@عJ=(A[pZST\C׉# j=8=brPK V8S!$2sS9!گu?3fSZۿKӧ2Q6CB߉2]r4IꂟKTՐ#)/H#DX+sURĴxN{θ ^m<]} & 8 NWe}J0:3^kE*qEN =@〄!l!;+y=W |ͫRjAR)H Հ# 6=yP uo%r(Xb`֌l БYIaHzC1{3# Q'OZ)tP/:L%L9S!R5ٹ \=@:)ذ V@[5fӶņ7~c!b@;S\8fhCEL+}2,d c3In򥮻j\AC[#J̲-Eȡ4IcW8E*z'*0 +iAVt 0eU@fi=*_@ `W*ACAVNefr +R<4+R_٬WjEؼl X pu㐣CYPЩ`x&5ؔ+`ac]8 5H5[Qh լae-e"Y7II@!MqĈ$2jz3 1-EG9-/)Z9 VPP[mSlpcƆx[ۧi62?ET˅ۧ&c=h\94!]Sz;Knǎ'C#͡`.bthrh4I+4ʴΠ>1]93e me͋Ԑ K f!hfpfx^Of$_Ūتrdg_s,r),uo(x6UxΏ =2 %m|""`;5`Sh G4qEr6:%y^%2My˷QzXCi݃D=XIÐck&/>:0Z5`Z &%`QcVP0a)0VQ`9v<5G1|7 8C9'Ns<ÔsN5T)S)J5' lVBedc H:C49&bK3jIu7A3I[ k* k/OnjD3؁K0&35Ol~o/=g&/<йSżWXtiJ M`|t Q/V#eX-`;O`m Ȋ]76Mf^bVlv4v$Wk 0ů*|ա(1j|k)NsfpYcѣv嘠Ѹnh||i>X~C x| Pm=,(8pA?*GpBC&RoCq8I  YgEV(⥋N:?BS͠I'cp2.:Nu!jlcvPK ʿrB *oOW_EО*![a%)&=]d"S-JT)ZqYg8 B&t# 0L]gf ذ!z7`=|GD wL7 }%8 >t y/`!`Cz˃^?$ƒ(*bG@ 2%K%ǀ ~w`tvD2v%X~w(hv<'`) :d1PApB4BT&D, JqQ-n(n)ě T2 0L'zm%3vi2bO^f;I1D?IQnRT !q%TkWIET T%PX%u nyHk K6W[u"hՖvN0qcMq ۶p̽-+ c+\--'s@tcu*^yǞD ~' ǟ~#H_wC E !(!v +@p` DcA=iY^yG@9ɧGc9'ɂcz9i~;\ΉY~y*8(ywϣFbGCB !aC M?dO*?d*-ط Xx?^dM3ز|+7d [U+\AfP*/gIKH +Xȫ\TgejJSRs!)KTҮ&1c$. ,1@eb-YWn9%X#Mh'Gt IS~p3w`CwI|NŨG]z:D?'x-!FE6VQ_F d9ըPy~A6`ʂ1"|BN(n=,K Le \Nx!#jQgؖ z38-!Y ܲ/pTdXbޔ7`].! \6NSgX0NuLad3L, F4&fOle( 9FGI~g:N4׶6AOv4Q'a@xe=nt=MPA%L7mpj*J A$R ݿҗь9=MIsf3$\5'3ds[N,mvٴ~A@xVm"y<=r_ÏA~Rthkki5}mo6컝[. w"!&rQ|8lFvzuچݡ nG6q"YHD:/mD8C!QGd-iс-ʎ mm v7vAL4RtIɚC( 9ӕXIM 6mqMji\ePY t Tuܘ8KlPlĆ\tx~xŀi@ <3 1TlLEQP=HЊL@I}5Aɐ98YTٕJhyDaeYeDQXP*HŘա F KzJ T,BrШ]Un'tB.*uN6.guupvt'::ztD;j`c'mo]+<` iɖng~'C B Bt ȎSZ%hqJT ĭkDLĉijŸ'O)LZTƘ~ EڏGdP lZt𒭡FHP!D$~Ӂ@v ' b I\iC `6񑒚p˹pm!*L [u]iE:] U)_m6"-e9V^:Xt& e Cf1DkN{\`VX!216zg҉tDs pt>8U^g?tvc簇琛_Xof,ziA 4s4`A"I@/ IBDPYHaTx1XDjJ"O:lkmhJŲ)A,Y\b )]Qݵ^ wG8H :Y CGJHřZ]QViJ!̐PGh1d]!_'mZL cK6!!ދQY*P:U$u!ulf ,6? %d-j*W)?hkHuBCXvrfk6wCl.;XxyVߐ0@4)~hMЎn5p!9C865[]>FaH8CCmNiLʼhwk(d|`!Q!DAESUJ b<Hol k|I>Tx^C LG\Q0HKę ?J@8[a )\C\R'C- ^0wGT9Vp8DpYTbYbZ^D7GgMtwHnI$g@1bG" RQ?CNȢIA6geH+$]Iy+-ӥSoǎ5wAgO>*4GSK!+ Ah"#V/Y aK(I-(Q(F#D߾`1`pY&3aXp |1ˈܐ_:ݢs (nAX I0 |J`ܸ-DO/-ӣMp}ˆ 6tl%-! CF,%,PUVihh=i@K^ک'VXqAQE>$dcPC=a`riq\ʉE`FXb=:J@! RJ\p4ʂ 2$%~Xba,'(hƸb(!YXH4"c 2c0"1(0` D 0&CoF(a0:Q0&ӽ"c0Ӿ. U Uf%" 6ⲂP"I Kj%HbّZj%1 ꩨ @:ɭٸhW+$(!2?IJϿ,뭶:I eIj޹XX‡|  l32 2;,&<6+,4@ 5 P5NGQb n0Mh8(ڐP . x;2`| [2j(}#h0/oko`%sЇdՐ VaG C01b9N|W1c1flFXR)u)`w!T*:臻b8K2vaN7Z(ƀ2)A&p1SmtR4 A6J_MoP!ЀY_%T`UԨhR "~5+A/{HƂA5?MZu-#nGk-Z[ȣMi Xs%=.'V[|&\D ,#ABPQ]&%8IA bY)`(D%?0}r}'{:Nyg<>ϐjXxbx9ǰO_PDr OPJ>Vj~ڔ`:Ҙk AE6KhAJLcG (HA!0 ,ǧ(B-4Mʷ@D?cYB/ D &Jau HnW"Ud7AxkԵjD@Ři3:L0E bDEzkՌhDGf3S ``@PmBL7jIC28isȧYg;T{xJz"L`N_xKܷMmD%A {܃T+C5Iy`u(ͳ!K 2a`!uEC Rw(!$HF$ ZEd <oKEJR2!kþ4}]MYYeu= n&̳ Mޜ6hMC2{:סNw[}jXX"/~ b(1@fh1cJ džհ&n]m.ef(5pMB8,Bjx,8`Kٖj;@" ̑ kպdG+O1_(fNLގ;(.*^&j |ICp""#!vB-&40d'vB!ϥb nn.®"(2Μ,'8p Rtb$dHDB@'/'~ "pjT,U0j}(* nj, P8`P w PJЇ ł1/OKq &1 +1BNѕ"X>i05,f!f=ϸ&AA&drVq@!B2Df4#4#d>c1,0 `1(V<1Y 7so4 e47$ fd5h6pvf)ِh~i8Ñ;̨bz0;@Fqϴ'$)B ^BzR$!']JO$y"ک$"t09 SFRұTx n}:UeʢV* ǔ cL*. %갆cP0윘gc ŸRԣrj0Nx!(( p S+X)>%f" ATkq%cT >->Wp7b#&v!4k8ehFf6zMg`cX sV@:C œK#v<w&nwWVG0 14P%Q23@"ASܴK\Kpmz]"Bw L @┦{t\֫x\bϲGAb%A8JBc&¢*B{(Ƞz%dW`"*ьTu /B1z Ri lj.p.@}V增0iXL*,.CUG1XUSQ25_SHF}pQRC$ ?T1a^_&SoUq#8!"7kjZ6b&%VWmvmXO/iV@9;ZLUYJL͋|wdZ{K ۾1/Om}9(Saڃ{KTMu==$Bi^0OSh@김'*{EhhKp*v2E):NPCBt'LYJR !$36ѩ 1 xb}KnMcX0j_LPkfjVG}%IK鐶d*(g IJL((/~,I'Ml } ̔ە }8IΘ&|nZI?7lFWqY Ua"TclV]e|58C4\5vmOKhB]k +αp #2`.#|7+KBz'XA=lW4qv4]Usotaa-hvu-7;d㱤PwS 6Ð() W.{>Xur U,\O%*QNLyP?(@ ҥFmAT? T1 yPl8oi8@tM!A qm`uբm F((}i?%57&Y1)DՖW4"䧀Udː{m'L#y?p icH轝#?D C+ _q%Sgq0ς<<8O8(SLfd f> RY #F 0BhU@p8WxFr!1bBx/O"_lb*r #@7N0Fe b+(cIf cFAee_lTIBЄiTK=n5E_(BRPM$D-19V=Lɤf3'h+PD ,Q5 LUWeUCb +eVpuWv&`lY^z9WCo+`<fB檫j6:O1Qll> h[pewQq? 7qhA͹nm@sM4J|yy5QD1_d@??)JElSW5 @'ѩ-$O<+0j[z܊_g*Tf%BHc0[ %|i5[ v%#i1հdcJ( ٙ kP:i?Ӳ( EAx,6G˂02dYV52 hI!YH<h(k`Nam%PQ .Fm{it'-pxA TÌ' e`ppmYאeuvt,QZҜ氄KO`fR)[U&NuvU1}b'(Rv9 g*LA|QK уprx ' X3/UɌMcOTq@҂(-h cJCi/R'#%,;G Ӻed~VA@0F4;Y OFXK=Ek%cOɆ\d#bDX#;^MUt@4n\v=W?F@9e.ؽHf7XZXX{JTJS@-iZV5kD݊ nwG+}S"蘴ʉnZ[ rllAk XݐJf(]GUD7T9^L7T|N#\fU@5II7cCʀ>) * qkTNZ,f58̝Xp16ei+E% MT݃t Vay~[Ј$r3ըdX%5(6͐ܭΉX;G,! 5w.g;H 9ȪΞ3P& oanEz,=3yӜdўnν-@([;ҺpQYҶ2ԐҖv$2?Gϱ(/x@DonȲ1jD:.3=0hވQXoD!ގ$Ґ܌7 :iՙ|Dg #sW pھ/(J iE,qj0Z$.HArqc6vc  hA*r=qQ~B3 0*%@>B]]MGu{S0d14(tAġ+FKt @d*# od Wd"YQ{96Y6erv0h[j3%swhXbr15@W'YJ"$u>4ZtQ ϰa4Kzuatl+j"UrKCzvfgf$wzG--Ƕ{y@QORD2QQn3T!%Tnq)^܆}r%NF(Oaf4a7~~f>BQZ?p Qga\-ea:!i.7׀'6+o!e.5%Sm2Dk_(E%5]C C!cHf6;CQUCM>5oI[wHf5m"8t9v7A9JqyK:I|?w7ovhL9r1x YqWY-Jb'N"J$&|@#~?1ff\0 -xk腞5& &6kgo9{+[{UlQ{"IE6H1<"}()!)(|q)I 3(>0_8~#_SCR]Hv oo Xle{ $aE2̦\lUy߹*@UtAKDs%%- U5FY24CƑ9Cv *HW-Rv:u!n6guG^8j`hy=u,@AH#Ub֢u1qaqeQqvyXYq8ƥ$$Y'4cxD^#pZ Q5:wz`XZcgW$B'c?a!-5qhIFqpR~rXCeDdQCej>)ܷ_FAo+>nS3ŀHa&`>`Wpb 06ExY$[`\lJA./>6-W$E@o$}i=D62Kb/*ocT 9CVzD˱45SJu%G"hW_c6#`Bfxve&@Kzhy"KYTI֢ hhllJln-h(^\|'QYb#1i36F1Ng!?pJ`??jx)#UJLzfKuQz~y0q ]+\әO6q$[5rM*#*1J2#} L91$S+)ZV@ vh - ՝5!EI.#5i@l mq 0Ar%62d=e#svo3M t#c4fQ0'B$6AXfr6k6!xS"wf2Ć>A$@ѓ'z7K#"x{A@Q, %>q$b4F3;(4:[FLftj[;HF+-P K;x+쉥՗'jFrA{`^+lAERʄ7B=D) QsM6te*S"ǀ6&YƊ{ ǖ*p-j@w'Z T@Q[Ͷ@iўQ\gf4t4eJ҂#r4MZ8Bث9adC E V=K't @xwm#s{CҾnH%+$T&[Yz'nBiv#[3>j`iydI8idP d[L؉\Yu)‹X{DjNŸHyg2܉K6ӵs i΅LUEG%rE!ȻCCd d"C(5.&rڀ bc[QlܜZjZ+GŔ\Y%C\ʅd PԈB|9]v9Bpĩ/+H T&x#41!1ffu.GwY@[.Ìiw kYLJYb%؃%[8..ez[$t?x Úc Y$y 9S ZX{vax)zFyQz0̉ Uܣ?^QE;-@aHaGt}ᚸ1t19=R5 X=o]!ǪA!'fYl?ӮjJ^ ņiĻ\ӪJ;ol{hwQe iGHvj_j-&_KSBsܥB5t%N5S#Tʔ&l6+lzn>D-'e.x܂@⣧Q?elݝlzq7UpP Q12bR W 8νj#*zkɭ7xX-ØNjlF*/4ee7`RBF&aa &b6ߒ%|9i}_  P}Öطl}JcWa2˄NT&。[ڻ߈ dfZh@/l;۠ .0 A!aGA2aN!0vܑ9h1H"sMG$؋V`F#` XbۮAK,4BG0R(4FȢ6H'4"<Ƞ T(@(e=no2.oј`˱%vmlk62m ;9l\N f &[B6.#-@:^0p:cB&NOۯb/[Fmp gaɽh$FmEz1ꅊū_AJ#MlTR d­KxrE|B(.h:7У'|+4bhDRxԺBj)QUvWYiscV,e7.Jٿk(0Manw@޾. ,ڛCG΀%Έ`Xhw2um8at-l@@Ù GB|"&k yO{Ae{,44݇Av),AiPj—)2QZ$-$JB|!ŒDM F#Q-m5?$%,-UJ \` 3j4SF'9 H)u Y /OdZ")dW1Z|&ZTuYhg0UpGJX3Cp-XzSPEYt^.-sC~SL1pe(Ә| } !iE$"͈kA8x Q_%x&ē N[D)P G GAmI'\٘2dA bf܃PVANg9O\%|T :(b~debGgdԡ> >gBUvQ̢e].K_Zz+, -@NļEL6L8pJoqe h]fYvPFNJjKTGWjKCL9-+^2w۠G+ s'}*rH!՛-~lb^),*5\6y^ Cdip-:\+J>7,M+ZVv9K6猗C!t7s#fi_q:-ICvf)>{}> PmWXg6ȝvˤٻ-n!h T/1"<|ʐ2D^8]S_ͼ(Px@-<.蠜1!=;++ĠZ#\ ?,*$be:&-Kj3NZEx_`zW 8[НɓBcaEӝ1A3,&911;۶ *,9EI&0XUH vz]k08h騧 Z<:㧍H!|0mJ(o{&'7=p n#!20pQtfZa3ɿ1P;J& .8S150<ւ%Y44`;<#`2@҈62,F `r@V9 @@6-dxa)jN %yA8%:3?[3>㺲B( eD0d-HjeF(9Mlt8F  j"0'yx':<&@9TTHA4qKS  DT Ùx"ET+ce3Kl@5ا@(:@ >9>i$\9" ѱ ,*i`-dRZ >p+42*82no+[Ǿ+ky\;ʺ,KY,6dGǜ8ĊAY3A2H\2 H S-܁4( ¬@$P*TySϺ`F?Ñ2-xA: {{5A"X Xт]$ z&bJ/na0C x3=l I DO$c AĐY/p30ąX$S9X{ 0hS4d <]RW[,j8e͠X`"^+܊زM \DYKJɹhdhB*_9  ++$A_a@5I PN@3PR $ꤦ |ϊ E8AHH93ͨzКxϨ%R*PS8K` aq)(25J'3 #0 vZڮ:t}X鈧`R@ԏ} ֻC ܋D R@QDeRT0喗%!L~JR(iB x?9jSMKM0)?STךS<JJpFEHPC)Tݲ蜦y\G_V (쿙I-U^a3Ņ[U@;a)xb0amT QXcB%t-W0]"Si3b`:_M Vc5צ,Dz3ܫkThyTӿ=d;1[ވ%:ӨC}-'хQm_Ȭ!T7rdKn (XS!`&t3gD%Xu=tKYxuӝ%L2zcQ{⸟,n%a,l" 2[HƠ*0qF9 пQ+E!ܝ9bwy] U3߁ A+Gx%2H$r,Mˉ~~Z|7WaWiWtPֲE#bdl,@֝i9"/ 7teg$Pz-rm11Q^&M:e = UX^oU@._KX9=-ռ y(JU7EUXKQHY;OK1fRC~*oiʹɏ F Ӹ3 fI.4PZ}-+T[E[@h*ɹm#5%T}Kib@d&bYE$KBU>!Q Y-6ςLc|id _=A1d7L;<ŪcQS,Hh,ZAS! \|c]ߍPzOg(@^ۉAT*BVyB ]1E1*55-C4RX0l;j1]_ Žr!gCiv֖,eLږM Y,SUe2Uh컓@,v|hI.%h]d:}B)L^AZۜFƑ;H vGB{NVebc[I6+KoY\4 Ud(-7iH_4ͣ[VP 2cp߅]h}<,0JC`Fr\QBWPgH."EO-WׇZHd8BU"QqC1 C\&& XR<`F/׎mD( 3mz0R?Y.;5 2Mt9ImY,h%$eI/1Z 놩6na;Y- pM݈(f#6<[NZ$:6 ja4d?pŤi F2{X g:ji VbeH> /IŪ ZF qā"I^Ok A `t( ͯQ1USS.pQ * UZ'2(NŜ7˞=>Qb۞Seugf` BGĭly ۔8HNpIaCTi 1Et;PۄF>d; >@(3>ibhF b~Κh+,#+n0kvk\6ܯIPzOp_I WKͨFj1q`Ow HvppH~hpF,IZOU/x("]Ȃ,Q '/x@b5C];Xǀ%P! 0π&/Jd lHO$CWR"˖.HH80%&eM[ ÁfɓtR(ӤHJDRѨbuy([YƎ`n6˷n<3d`Y`4h >F13LƋ-'6P@a Y1i`S`t]@d< j'7n[h 78S7K|m302.-۵bB0 Cj>R`T_TC O d( c"[)A)ƕ!_,3O!ȢC8#τSP,-L&" E?&HL )LD??pI&C M`'̉B 4|g PC4A3@`PdQGeg! ?@eMERd(JIEI_]%D*%PSJ¶RgVWGqrf5yqyf*hMD%kѻmYlR$fɶf+ p0o w\4H+r`aWnp\e[_ysĉ 'WX&^|&7߄嗅~  V,H`MV_xaK@ J≲4" )ue?)X0@KHdS0NA O8Հd8f?De,)ђ[zRPMh%kaB砯*(J;%(]  Ѧj@pLl*S1L@%@U_T/Q䢟DcAPWGOWea e/Zܖ-ķx2fX NL4r b赙k5L`y],M*\\d;ݩPf! x33, NJcۀL\XP\]Y( )oQZ-AJcIVZM)s!B}`൯H",A(!/yRֈIu#1oBE'DE3d"T IE%1qK3RŲrbHg< O))Cf L-J FvgST>(OyhNER/UիIM2+$Tb}ܧV,iO~V$?/3Ƃi%[g,:* EHh3 S.}`%UX ðlf?$H`Dd S eʩkH,'cYb傮]lJ#CXhi\qA+bYh"/-8"P uqdP#hjPb S@#pB ?kRX;fE f4Ch_+!&]d^tBV'H!L14D9ĸa("\*ڜK654Trޫ"=Ud%0dR{*zfZ}Pޗ-Bf%[#hӞ88i 7Ӕ49۠Rc}-$ -ڍ^h JWpp/-)sh2$Ƈ LZ%+>m?a4@DKԨVtǥWc 8uEYhD"@7FdAՠŔ),0B"mD <H8yM0jd.n;h˴ew 埳-P PіI+ZAXa K'm߄ 7 "&&&q9j;Ǿ2*K ~N_g=P+:ρ꟣ tLZWg QV^ w1{kob(&m8P"q MI T @ F6g@c)aokkh rh q)"1cSjIKᕝn/4H \o\QZԉAE|]]t Gˑ#E2pTEo \}eih)KةDi/栶diiD9<]J]]sX0rdHUߺm6ԖgI =:ˎƬP>߹EàK;EWby?LyF뼧Kl0dpY~e,iklƏ8D]LJޘ+4KR=)c1B!тY\DVJ"@ kɌ](nRJ⥚ڐDi5e\vSvQ9[8ϚzQcvfYl)D&iiVmg)be栎&"+bC| J<*vE[t-xġ3^HІǰTmM]5)#y$Э2? '^yv\4~ Z4$~J~*K\d$ɠWCJaLRVBhJ!K)@:(KL&LK HM#P݊?J&0e —yQ@I֝!NXBӡOiS6e^Hua˶H}^G4sWu[ҏdNfbfa-K.(V-r&KJm)pf"um-&jZZ< 2>.Ƭ@p~# qKJiMr6DTs*L>>.8UIKGǹLoY`cE 5d0q< sP@r=MW /6RLe>J@r4keaI?P„2/%@?Yي !/ 0B 0!VOnXOSTP0HU0T;_#:0 ObU"?W-d3K?1ڢAA흖ư pך-r&)._k Rt"pgN !}Lmvp_VK*qXLűt9b:bT|\cAQSn2Ayg!WXdgJ5N5{Q0dd c b"G A {^JR]%>o۝r_EҪ]D[ ЧRXqP_# nuD H|lʀ\K2unTY͔X\!bY$HqЧʽ=!s8dS63$k^C^rKs"%Ta_5C#ƒ:hI o]*hh -+n50 Ps2HDΞa68.1CCD0D7QW)w37D+i@ @})BB9{Wwﰯߩp 1zө7|Oy_-K|w xzkn{_Tu¦yXx=ոn DdHIq` 練#{j OY 5 MULT#=\Q|hGFˀ_4X\N Tg[nG! <(AABh_3%$ϳrU,?!0 T9 "veV@Kk(}8 &lΘ |Z$/ڠ pɧ8 *D4 WY2  :Sק8V@~dJ>D@iQ$_Dw>B1?z뗭~:@{{7GqF'tԖfg1zbc׾^,8]5rz RO.P_q6n[ {F)LGEǣneٯE\wUgã@(F*y *2d.bE  d(P߿2d숱?40?.tYA063P*\cTԀPnDpR"2NxjDQQHTXN.e (aF)Z H 4=pz c[0r(\ S$P-Z3BFC#W#!f ܹc(f%` V)W 841Wϸa̾rA`x;.17˗  0#1K;p> kP%LC CL 07  &<ž0F`b(Dž@2Hz #&|x ZJɨ-,%/9-IJK0H#<"$ Haz DHpmLqm[۾ESz cüQ[a`Bq#R!!&ԼʌURHSK_LVlW r: PX hN&+  m!&l i@ iΌ~Fd2ԗHQՋ>֫X 6sN2JNlh&BrK"->0Z^HAP"#P%0ApEhDYNqoyA+0|J} _/<@0*@ 6X @5(!`,6IMv3GC0"'f.[g?3Oôa>c;j}0 e["V B"ш3=HA]hjkZЦtRBjS[_TiUnGq4Na;ʑ|˄*xM2BLG=sszH(V:&.M[Zi*ёOx&~F ^FujMLbLp ( [A S,m)w&`~̕GP%Q< ,`b 3 JŁ!@jEk +E5)Lb Ì^O͈ /իf0$&)(=CT b8M b !l,vŋF6\HA 6pTG7r|37ZG;qT<۱@ ?gT6mO2 ES;6T6o.[ʺ͔keF|JU6np5\f^G=~wxT0t3o3:׽ufd K{{8qo VX -@~Z`^K 9P|vr2w*UE/RtD*fdHX0^(#JO%™Ң鴐\AlQZ_VTp. #bs!êz;Syֱ4,֭MbSEڠLcQ4p~cج$NF F'fc+NA" Z `F?,`jU\UzR42v哑!AHԎ PNrݠ8<ޫ4Stk4䫋l #~ˮBv$$mh^N%.0N`$f W<6B}&BB~4j&LbP"\0~H)-n,+lrjJЦ o**8ȧb,"nHE  ЪЬ"Fb _/) bPfcBl2N"#N$Ψ -8vc8JBHlƱP; i?XHEq> IkD $l0ykAR-ppǦDkE ppR٢V  GڸCgqB2dr䖚rSvi|KNNpu$j`B,NwV 6aqOBZ2*@)ȅ*]. |g K$K8JD"FTPe#D}bnH߆ :c Bh+*锬A,h+tj =„e `Ҫ )_2_4##PP7oPp'FE^i!rHWOr  SS|4CKVWxu6(ґ>j*L ǝFR^h!" _I)*vGN'Lh""|W:`"Vƥ \pS&/T;qƓlQU7gU7WtPVgbD9[7ZEk$qƺ1Y#(V-2^"#,L#O^P! .x5iO< >6#A:^ ^+R,7`;t aR"noWh*fZ.dEF1e,=H dae΂H,d>wθU`,i.JCJ{ vhzP"%T&P|' u/J&8'K8@P#13gkȊ93Clʯ/XAv/k|lBZMk&D˓N+ | &BNDo~KUOs/pk;$DVO7qC!t;32|4B _ |z1F201^&xxT5 ,5^tDrIR(W|>x>P$?΃E$aDǛ$箉v%X[44> ?[YAe9hHl ا4gTP'_J/ -WY0l.l(_p (sl63}&L4#D 'PU X8n<F+Kd6$?a*kCpe7Oi*iCN$)nfp6גHuEbSoEl8VhpYD@1;ёˀʦ(\H/@t%f"5#J,pTx @)F|[Q[}[;HrE=v$12s~JK\d`[QV_3 #`(4AYdFE2 .g  Lg0xz"p #;#ɤ&H:cKRN#k# }Z? f?^iKf> >`6OmKS:7Qkpo5UprzAڴV8 Y"܈I%/N/xef:9q([q#85pQ\j,ɔz/} 7il&ĪDƗm7msQU8U:#uMt ZIj'@3x%2a`v*GA"]; W ͯ"$.h;|2 t@W-C\Ɨe;\Х3B,r;Ty#mH˶9-_C,2[)ҢԿ]҄|\Y e* Ev:678,?gu,~y )PL3e0B}De$b2 ;V?; ``gJ#KψK5o8#Խ'%˶05-i x0>6kBV D GzYpd emXVqsm:ɹTK,!LuW|xv` ɒuFi[P? #@߂02(QD5f$`ȅ#l<@,@qҿ@AS9Jq-}Or$s*fEFjF2L13R|bS)ɍ(MNpT k֋ /pذ^,d yΣ8&R#ϔB^/әMRS"}`p_wtO_n+,8Z0  %Ȑ!| ,Ta O_ ׿>z0L^B0B8 R(Cb^8B`#h0^ȡ3O(4"@V,X$H*bPF6â Y =I ! `  J8Y?T}>$(`$rP`rfВZ"]*%^zqM9O\%m 5rvr@aOUSTVYQ*-PQ/QE7@aFSeVMW^1$alʹPc7H&D5N%C[j领kjIk6rV9A~ 0P 044FF:uUFAѧJO/H$Q2Qre<ʆ^|O% B U+N%/SWmձ^$tCj! UEYZ.rmj֘ bKd$3@'ꝼ|^au?y_YLX -J7 qzB'4Xs2(chAGB LQHH\:4i~* _Pw* x,c 3vpb⊙M'rUBjad̲.CPoc%euNzz/zg3276 pZ%hlUt_]ͻ߽ }Jt(x߄!a kg/6A&` Y^2l dVaHOc$ruUHLT+Efd5pUx6Ue86KVGi j7eVa5Hh#!Yrl%p%ZdfN'fFuT7umfs`g2 Rj^0Yޡ aY &~|>q)Ă,@;dO>ixOL)j)by֤j)\fP)MA]FKrM.31-F?l{+b}?1|n7_/u@$]P0VoQ$B5aBB-aQ~jBC6=$X*Cp pQD=EDgWAEIwThr-6-6Q5(6*r,GGCgeL"B%hxVgu{stCfhbl fpu@v׸&fa7D*vFJE L!0heYQ Ae[XC,R, F*YZySZz=LF)\ qPBH;kj]Ϧ{Q1@S'0q@wq{I^6P Ɗ{>SD 1 Qq1Bppa k9 IbR5>(qbLR:Sv Ec3H8%#$362"騁JF Q5œ:#@"HFU6H!~tHfs D6b EW2QhCQqH:ZQxŅ  YA*:\D!ya,)@ W*+]MY\?ayF)LՃCjhaYylEM&)_1>a^Ydk 6mA|bq@Ӣ^ 1D'B}"Pu2B vQ QFx~ ~{ a) C*%ib &cqTRډU1%a Ud-p;R58,F'x5v$@bVpD`Ūyiu buᡚ:v9xP-C#D@: :|?q;hZKFђ])8*; [Z:]U[Dy)yrvG;uyRM#ZM:rp)>1z0Al]8j冼_E^R}42LѤW*MJQ|5yn1_}f_e,B ё Co1 ~Ũ( ~`g %X   ¨Wx6X$rqeZU(6:"9f#ى")ѩ#2sXr7gUeKF%ʪ`XYǃYe\[22yi m {9"3XxA9gՕ>8ʕj1")JjPkYN×BexH|TJ[n3[>!gjы`"܋QJ~Pz~{~W !:ص[Zg25a @%@%kcOA%[udzTU>Vns`E{{36-W,wuTV%V҉&kFk  eg*vZwvJI9| "c'YbC9Gު )V.xkuLx&yۮU21>Cյ\:lA_7Q߆#@|˃Mkq!|p,7Ȭ˘L!Bq1 fpʴ+ p#I2 4\Wі]üzaCUD fheٜ`+FY#Uw[5o#P Hi%~G"}f6k Rq i4T$VKrQr e-_t9v ;:\ ӪhJⒷph!4*ɹ@x:*b+6qC1<]L\DY,r\''\ig]̌n|A;ty,̕AA|^^: }-WnQ@ӥFB` *  e`mѪ ]۵`~[e'Eq#T]$#UDx"): Ud(5yX+?(8s8ea\rrfsrޖ+ Pm4#`XSU^J^/Qw9c=9 $UpkZRΠ,*cWl,MB-g'ܛ)4҈W>3;lĬ Fx%> _b;|_r| !rU2#@F/Sf e^hR`!šB޼^[WYg$['ȾL]ѪZq}F:=Yӟ (2`z{d^UhPl%}+i&EHXfnqLüC36R1`Tmƽ|{^7^-P`IB0x+ʢOD.iz!)ɫ~Zc!K k+sy*ėm*@ zGa>Kw4lW>S#,,YM@T[OrHz=,`>y)NS01TY/}ՂkYT`(0ٴmߦ71ƶju| C( ?9@J$ MJ9S~%%ȇ"ESNC90`tL}<ЧI( n8qC,Di_4Xtܽ Ԃ[ruڴ7>oMiXqçt*f΅ m0hң/T(Mixx8ïmunpxoῃ ǐs? XOVC {_o  T~|×o{oQ(Ozc@ X$xP  n @CꊃCX I`T̐-<*%P 1GF1 2+ni!wJyhGa2*@M6i5}!Jum6 @挃8F8P `:[ܮ`ӏ==FdIϼ < UB!|ZB xC6,NqWH:;HCQF*)鑒 쳰%r\lPr;-r=:1L:R3́<'9"lO!,ˁ TK- @ SH l3&:R?iS]ZЇiz)V `~WZ rZQٲR+Sk+vy*(" 6v1ܺͭj r{]#uwWWTs /m@ ` +pF8Ӧx'd+;sdc~h60@"Y\v AC~6ehD#C)-ER"T䴇EZ1#FCk"X#GU6i\ڎƶ-V5GTcDNY`!u3\LJpoh2̜&ZIYbGP*r*ˤHI${HPɑ<]+#R$Y@e5Fe-}G-=E4Kݓ1oPuDvsAmj^j!gB8曑Ln2-ᚓ\W9h X+G6zHBQ@± 6B\(>t1J2>T;F3eOH3"*"{`#&qG;O3¦"*pPgᵹQkG=*%'sM!~dLn5SܖReݚ_P@ B@^suN*@׾,/Ȕ->+h_RT4̀CA@˵0`4ЃmTjDm95$-f֑*[^#rUY%TtsK*enƏ{'e+Y `ڱ$! .R}k8A${HKyc-2Ҳڝ|Y[\0z3ԓ@$#eq 2]K-EzYľw5' ^/+}9A6PTP>w0fj>::Zt3c !nS8NE}>Qj1Sm¡TR?BCwSsCpCJ[rSw3 j6 q-r"yтYGH.,[/!H Rs ǐcK򖸒2+jٹ0+0(Ҝ]|(: 9e Š (FpQ$$W?5!#ډ21> '122XoY0P^*'ܠ#鑍.47rRv w lO< t=B-,ɄQ<6¯d/(8t/'=[) ) *"d [i/) Dxx7 <Т6{$y~CQKn*Bݲ@*F3F๊sE.SF E.)9|R k 6_0=őHdԛHҎBНp+8p8Z٥)%i*Mo2( y qQ~#TK@N4+BFm RUģ aSPBaƛO3!I6L! 610YBsD L{-PFP(*}CK7>7-]%Uc'ؑ%K?d) X @1(` \ U+3R3C3PӡId9x2,4͢{8%݉<0:<ۭY4`AAqIA"l4kZ%'3H ؐ(&NijMNtB}~3Cփ Ô$!>C`14!If<Fx-: p8׳pUb'YG8xBⱊSh]zR5?(uy:.Z/9Rr_.E]7{]k W2_Ib4uYyٷ; 9m:p ,Sْ}TN͋ +N5"t$ A6V8%{tPuxuPo|jխԠYxy5Ro+ C=YXFvQAL?b`@6s񭲮LK /CSLwkloKY1?M k-к~AgRTjf}JNCNlr;ZlBTz\`Es@WtcnDGFgH $(8 (" VHDٿ(8,/cYrA2e;$ΒPϟ.4$ڴ9/6O: 0|Q M= h[6&8F΋9>k!3 ,,lP`q'#и2O:TK3hHyKC Ծ ztϦi;-X0Y\mNĕ/PMs+]l^8q_7//x5{֝`3Fik%?8Avn? N?B{mTnSNxˁ": )?B!8B0*AC0II5I I$G٢IJ&٤I)? %B&8DȄP(+&yR EC-i X5N5P%YUSAUeUWG mAuԥ=1ZӢZLSeziqd1Vd`!][a5Zg e ԫWdBvcS,hlƆRrT'g9[چnƓsGF[ipq5ĵ[plܵx%w]I ^v'[ejp~!Sر!8˅ n2@ :B l`%yp38/7 $+ 5 #QK-Cl &WoIQ?id`^iDIE%C(6@$- 4$hIz h,]K?tJ:I_uDG)TO>QV7AN~@Z9XZ6Z{J^_VvY Z'Zj5."CEt6a%1ahu`[qR˱] :^v-p]5rr <S@$)mC  @A.Y LdA l#5h5Tr"4h8a$QkETD)j(X.P A4$ ADI &!cJ'3qpR8EU'H.o ºDjWb`ҨdSX,G1KOM,dQd%re}'L2l ԣRvf 4Q"fO7CȈ^܉jG@/un'K aKd7LcLY tAu w@ v@^KTس_KɊr5+HVB|-ޑшZJv"mȊ|:6 HeA0?2*7Lj(PƒPỷ=k% qUxɨ;+{\)*@ ^JY@vOx..wǣY%3zm4 sQm侑ꄳ;f|ʳRG-Kk%ЂnzMDU*vTc *łݭA!,5K9젬 ѨUzn5/J F@$= VJξhn<'v\Х$1K`9EsG7Aヱ݇"BGJ'IX DTW9'g.O0>~yI&( *$Ka:4/ s,3Y1WsAf̲+p(]GXPSKeldR$O8 ]<(̆g qs|{L>ӦIڍZ9ڝ] FTw͚,qM״E| {I Q5XRpNuAQdJINMXH m "umTv5ڡɼĐ}ڐ< YT,HI8IZ% Q]!PT'%DOŞJ QV`EV٘ #bP""vQ}踕LB%=JԘXjRHeTOQ˘Y,pUVdN2B2 j bes4G2_a3hUEfa Nkt^ Dpc|7_Icp Y\ZHY?ޱU˰?cW-&( ̬IWpD:a  m[V½>aѹa$JfdM ]ȤNTHM[JUTuW9J=M4"5qH&"eL(蠜p l)R"_bJ̥˗ _4GQ(`XE`iaW`Jbrg\tʺP#dIK8 OfnE m6W$6SJ~8ĤM8ЏYGR]RP]$HIuaۓ?oqMB-DAHqtZ䐤W(', P}y{I6NƔI"y"_޳uR^LaXDU[Zɍ=h*6(YETX^JSRtXe-j҇vzlRsXeFmf .e(bW!"dև4Vs쥝)b M1Y77Pɴ`vv AEԨɝH/@,A"j-0Ɉ^k'w1M@Q +伧ׂDJl&Ԅ"hrU65M!Ke،Tس>( X) M"#'^ M&IA"h, oeb賨.thERqjmpH4mao`d(~"4߲(4M/P/eE͏loJ)|)ը9Pahh}lm٣׫ړѪxEp"0tB!Q{ QM HI}am! g-d3'P-n d0AsOe3 "QUfպڄKUXj# \R3 ge-n\X_FSUq WU@ENdKG)]Vph [UK"]dcuclcmtqOhN*t-nHy6;K H/-&Z.G.8!Cь ۖfSJa{yʻ#v 5*g($ !!;TPlK*]" }ŋwێ0` p׺L ;$W\{{tƧ_dﲠ "p l hPA# P6 B5ChE`Cx("wxaqrh I 3NȢ(/JZ(n'1*z:"JOJΩj)-TPAq@4ܪbL h+h*ͮ" ((I-@+Ґpcp5X92;odM>$#rE 4 .jX됓(8Nl6+˫nm좿][o=NC ^@ I;¿.&a/ o#"K6ŇGƙH` "H*rȤ4" ɣ٬HJi!"z&u (9D*=AJ)SN: @UF%*U 'T[@`(:=+wqʺM-ʋ˰,sT1Hݪ4jvX)VJux7~K3؁zk9(D>6N`k?|{KH>c8b;ċ/~_!tQE"e,jي\&#hg5Q $'l0AB` SD+ɓ!E-jRҀ4a` ׶xM"c@,Ki[Sp(^! SDlQfߖ9*sBdeX@#10:@tH1ќm$b+uf\KGpGa0)MT= 2 gd<&`;J}@e1^pt9Dc^Hɝ:f>tCg?i|2N~lAR'2 ߂V2 Ѐ/CȐPh7oLHڊA2"ZsΠ0ΓZ= Bpk1 ÁwP b,q#"PB&*Pi Q()0U ]ZY;3(cØ64Zջ<|y@Hr#A(/sr8V5(#h&u8LEYgM\Yz휤w N/Vح3^xz`9bj2tcc)X 1;4[Ʋ!@Ffvf3q0)F l0emEg%,J/u'x/Egnt'8)b':%,w:bXCQڨD>I]0!] ^vҕebgRٝ EIf_z?ǟ;Y_R.xi$Hon$T0:V 'i"5k5Ƕ`v@яNbݏ-|aat:*m̽9K m td]RXX,Y)bQCš~06Dž0n_,P[ӝ}¡ǥJssl{A2빙^9v- !;}:vofr'4|g<^|#0L]>?SLGU˕R) }<;6sːKIN~6kET~ OG }ʅj ia֔z+(,V.i<a d  6T446cNT|:.R&$0)[d(C'BZgˆ:P\*B\ K|p#ڸ6.:cc4Dd#&cP䒌ldBDRFXDhKͨ ޅ9Ze$c8/{Boa$ }EPc`#bFE^&XJ-F@ff"L+NA)GɛH qC2٤&BNnAG/5:=x좧jrB-t[2tE7~ .gu6g\y1̕cYP !(G` =CYŦHaE+d,e\ (0r<<)ԖGA }VX8G7\ ZhJ/M9D{%FqE/iYg^2TƬ-$L"Sx~), Tc Q5_f]c{c0{Fd5UO<2>lKdFVuG87#l$DMU+9ss|nFhĠF3qKNn&Ӆ3eWNkdkl\jy=$$1EΖO\WBQtb[ؾ[*Cnז8QU%O8y9>N_ԑEa>34e];qC AEDk bO VK_!KddL{F dalauGK!vQR&6}h3f2K$MPN'YO4' u<1qf[zPn(RW)<)9<%.ƣJ5CGE?>>ՕD?&2ÿYT02Hcmj9EE7FEq c_4X}b6Xܕ-V.B[#3]*)w&>$ M3H k5Na\GMJU/__$XiDW"2KP ag 6bQ2PpWrF I4K6j&dorly-XGZxy ay?dzU}ҥ;FG5׃4kݠkOERd $UKtHLhggv؊MRw#g9TMtr&cbi:䃮&kt'}K8z7a jzU׺bmO&R$|+'x'-rۀYb"ZbE G_+TV:VM "qBRb>%^Bj`֧j])ft4͒*JzeV8sq'Wڸ;Ğ }8dE2FnKod&V .#ߙMLN9 gBG`F-VdKL…x Z“{]lOB(z)Z)T+(;?|OU~ۅ['⧥u@iÈ- AN}F`b9resms"clEy؆/iFIcN9[J,:?G37[PK8M(VomcHdB"I SN9I[#,VObI3o-Ҙfbɤ &:{aگɢmn{wS.TlF (YH#@I;jc_Mtb!cg0/𳐊ChB2f#j\6,`LTjslj:x4%!9W- Wžէ74#^%BĞDnsMF6kߴT:V N $HY}f$="!XBhXFdVvO3jb тu{WjAdDAm1"aFJ~%xZT7\ |2U5e7X%,.f؊r+=n@0B~;:} [ݽEd|2[i4%]DBDH]Fq¹.P yz!á9S r7sFUCL]P /:Վr*)-mRg*-U0ch>IJ'qzz Bt$/§ަ fwfD"6(-%,৳7;^I*y0@.E=CJ6!SCM_Un[@~qK*g1177#r"Xc!jm۵c;VW!N $9i,$mW9GRHrT̜e)'óSm*~QEk! -(8Ὲ%Nx1ƍ\x1DWŁ L<GTY!g(P9@/' ߙ"gd>=S߀Ƃj̖ΠKJ@ժz+L J-:lK~pcSl%ēg0_|_]e$ݛGӅ Uٴa9[vBoy&N b-az}oD_˗Dŏ?%#?u*~/_M?mXb`Jh?f8yHEx?lb&'bC1BC 5P>BFK vQYe? 0D]hu5eb@tEJ&RZ FOekmG9g,`Oh\vuz-SNmiwmViv\LxReb(G )R^QE%J0$J^tŶ[=ؐ!\` ;Xۍuzmjy7l]~mP|[^} AꮻGjMzZ`m\xTVMu8b8Cؐ2ƈBAЍ?AoY?P,(DlbMѝNJK(e 9u?mw }[G||Y.M/Ye)&F؆@$ r>I%;T6"t@:ָ1E) 3],70`+fzJ^d" h( KR#VqkV9j/iىnv#<'u+JmXQ\'LRo'2&eP"e^W= aXhb*BCi!HV8,bD\JB SaAvLHL)M:rE<&-L`Ds"DѦΨxDY-42yvִY?oi tH75TUg Qq}K&(IYF_iHgƔ刑\nި˩VxMIi4=,(,+g蚆+SQ҃[wc nAxr"tr[S@QTimAAԽQ=IH~i|(s%E" LK/'b~,S&% u <5y4%e=IS4!R9K΍di S'&B+FRMM#zȍITОLf1\,H,#)'eN=;\(aVV (ݔΆ{0XGtr2界sL\Jp32ɷu] yĐzjR X= *$L0kX=FHs0ZSDl>AD1/?#\dFM,Ѕ$5͚A)|E&[9hf"WMX596)(8Obձ31cr T  OX MSQ]F,W1|2)@& 7eB\< -<ŵEJ))T X}i yRոlj4( ҋq$YG3LrbJÔ%;juPjk"LpŲiu5#7S q|! W`Qk9X"bx" P@?cFHNSf' M6ĬL x'Ftnt)rؖ!X$l1̧ҞX!>`w/xaL ¸2#ņ6˜*[%#BKKZ:!=+omA9/c H4{D?2Fr4!|JWKzB 6wS2*[1tYloS[08%N'!N21&>^l4B &aفT2H^uD_Ӣv=;D)kG&$! VVada6E"1%V#C#v1##~noF"- 3}q*>cg1z7h+T&N:jZ.ayXW)5CvhRSaP .)eN$q',0gNea$ɦ\+qRMVbU(ARD3oAG]nE%@6Sof.1$JYN!BC&E\VjʒqrGvjoIA!(_LaB5fA^)Ӓl3= r0̤v$2*FxmBx  ÏA>= g1;nYQnnNb#YDfRK)9VLdQd⧅?De3fq(rէC@ 7u@ 5@ YؕSp 7 73eR:fEa'Geq/s17DEG,6QaR![13I9f[,BĕNĨGe%ab!nNzNvx:)A-F_`xG2=f Q/3}498lR1J">aC!6!a#3n.n@R*V#? `FMQ1C1,q ~+(3J0"Q" )y03A%,cɝ- cyQ%@ P % $M!C>$w1:a\$%YPkKI3U")ڝRS࢓IdS: QU63L*X-iY%XyǥWUT6 80ICdJI"X}>|@ܨ{cK|Ll aP{`3<P<='3,ll <]kg<ok ܴA< Ȑ'^Vl@ l#{泳@k" 3! ˵{;sa9[A @ɜ~H|a@ʏ+ ﰺ| Αf̱v,~kU(찦Z!ş|eܽ{ K @`{ɩQa Œ{Z2f,Qe]స[w»Aͨ0,1 K@}α'[] 2N "퐼îkVk% nϵh$FX։c<<`«Ks~B<ԛӴ{Sܨ˾|W}ā?md|2<( L1~l˲oϹ\}RGg׀ى@'Ω ʜ,+s>>Jż[ȕ;׽?VϧkʶK }vҽ$l̨]f+0}ƍDC{ ] KȱĽ*Qk^\ %>(Tm4 2Aj@v49^h y$nuP@{V|,^}ΏjT3 S,bnWб\T*]c^LL^NzΨ{慾 ^~.闎~!,:0;4)3 & xRT&XAKgIQ20/T9DmOW8 fDHK9HG!WU_ENG5C5&.U=G?09! TU_BHA eYE3?=5ƭtJJD19hYrbڸ<*7@ bX! wU] )\TԪɅdP=JyQMiLU-rZ]޽vcWhֻd?̓i͵YUǝgGLuYhnHJP؅UuNS^=B鼣uH{:?2>{dl`V>OX]݉eغSLr_oZfbB%#mJnKRed_uRXϑ{w\ROyEFtHn^sKPnNMЃcߞba̫i@ɗwM6?m]~Yؙt5$*XYjF$֊[`[u򸋅_bƗ{T69٦©ii6&|_ܖe뮂¬ŭfyVd-Y2)ʹbB׊nárpE[ZzXT̩u>,׆c_^Ɓj~NX+jVc;;YHѡO%ܐUJs[?@-7]ΤhK,%K6UtOق]MF͆l]|hqR[lԯbOʱˈ㯋Ւem:U7D/_yp} gѪNNNO6شZ# L/.xE;̥WÏ߶ZZZuuuɨiii6A.WV߰J?AbeSRń υ*\ȰÇ#JHŋ3jȱǏ CIɓ(0˗0cʜI͛8sɳϟ@ JѣH*]ʴӧHYJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿OV TDǐ#KLU O%+`M:7?n+O^𦮝ߗ5Sgj) S呃TTב'@֫󞕺[x&\cˇ<bINS'PxG m~ՓVE gh U(Gga("pܖT,Ȓ7b)k0Xu*Xz Sq'  T5 Id!QJ9 4#v%\NUߗdv,a7EgRYww,U~"%b`W@ '&ظ@gj&s`4J冦e**KZ֘S56dMCSFNY.4B ̓TM1@t6yg*ƈ#9D6dTUv(RljsXw>+ǚuJEӵi+ WvZ'$,5k0Ey? Yl]+K0Zw1v'[ˢqY͹͓dx SŠw?y<$R99Rl,Ղ1eBh<•?LgZ5K IBL"F:򑐌$'ZE?4Ipr$ FIR򔣴 *lx%+[JYee.qKQ C0)bd,Qf: IjZ،UDX*"1rK'=vr\3)g=ayOl" (@X%L`@:M(-@"jPNThUJs$eH9KSjr&RP,@:IC5MS4wf]9Seb&'w vb+E'YM#,O|€$WeDO? ^5jPfr(KKvu*WIMJztti;JYʾXAt.@JhsJ/aޏSoRۢLV8;Swv8Kv Yt )=gЇiV %]1gjAhV,3~E >־LR]SW:Y{cBWӨ(L] ^L]MQnQ^%re^~~4`|mPVvoX+s,>=q ﴴGe9+"N5IچӸ oyJS^ݲ9JkG;+YuLV[?v@ uAJ)[żf6Ww-k<'6>OǞ~+q6UH/KҙK.n{‚7+h/FM;+X&7 OjtQ{s*JAN䚵$JW7W%0]оrؠy ;ҫ= xzr'඙:}k{ y31 m ǟo{CTq7pΎwN$%TN]/Y:7z]˼$kU!y`Ay]/Ɩ]O$yEyTV^^ϦR>UDtipq'V{TUMRGSafnlwD|k[wh6goVo>8vc!V!iA}vvSZ4bׄ }mw[J'qUjsdXJex"xe*8 A&XErȀd d4wWzP'X8e^@~6z;lնqQ"%%(n{w~e~D{"f(X`,Y1nWg:E:o:S|:Ho,A'88FSla`fp&t$Hti{U`'D[M]xjHJbJPcBsEWpH]Kn(L4qx{XQ3VK6xY6Q5zUɁ(^j$~LłHtGqTX)nTTuRYXyfdUg|8x|voG@(ovGT6|rFN" eN'bv{Nyb$(ҨM'pwUZQ^j%VWDdckkȎ&qtQtPOFywhy8 HXو\q U)# f&n8 M5b:Y$g4gX,giSxSu<5Y7IiNI}Kg؄L)~"FYN鐰{QeŘDtwQUU 7 L@P8P舖r_ArQtYri vTfl}(hSQqbU)y$X[t"pڌY`i &|Iꆒ]],Zv{&F1Fa9#_FNLyi"9y"JK98Vꅋ ǥ[ŐX$X^kdj'xLIiqT-WyyP:WWB#(~ʥ%TMPi͈_':%|%|Z_g-iʒ0i;:7i:\c#?`I( [IJP w 9zycҨ'] WuVkdEWx8S1RAIu]d dPeVPJoye"l kjHUAʩ%(㔡{DI|#6U`p)g-;ha8SBHBسv<+n9/[ikGgNJ*̨X`\ۨjTOX:tT " `9gG\UkjiF~)*[ Ȥywi R[AepKeK*~8[OZ娍i[NJʙ p RѲugv'VPHr6;A;j[ѣ[_L˽M{fTΘZɘt+NH~+ k앶+TkJf; gUtxlzۮKFdAPPxSYUAQ"LJտ',XۨۑtIψR;\Zw/ښċC.SA<R,DŹٳZX&Ia۽5_jð{ʘd\,V*ycbU jket^a PnqWLq:ɋ,s!h{ Wإe\.<_ƚ:ܺ8,eL|PKD 'Y@\벥C̪Ƌ6w{F2zŶJ͸Z, !cq^k4bVwEʜy<l ˦ slyLtl[gп`̆xۮp,ɢWE,Ҧlܵrl ˱4l{6캨[J+*, Pl+*{5 +OllA{ܳ@uثZeq F5x֞Z$viH̊;˝'&Ӫyhl]啁l\L?KБ=]lgQٍ͸P=lZsUfPl{Sѿxzh#N6Ơ!YPDg+E|JN|:*W\KZ< Z!UR!Xqj-~#Ftίk-l2wv [nZog}JڈP њMS;X\&-ݿ.~v̘w}-7ir&F % ièzg;{̸̆.l,T!;ylWP;n eX|nh˘NVa7;A=m. =AYv%IG`o֫<}XYMaЫ]aȮ潌n;g [׌XiڦN>\hЖ[L _N nNY.lV\AŹe{{,廿*™;0]SaLkī^AXnSXG_SX^=Ÿ`D99hf]f|b=^uik"5>Qo]mh, ~?OxLp:7mo,=3]L.L÷~7|-T1&:I-λ ~7؛>[{VmRv!~D澞u#Tڨ˔goM%;~w=U!n(褧Z ewyo᎒N*A&K D0!Ecx0?s X0#Ɔ+Uh##+2ɓLL'l.l0?o}mH6m#+/ u"Cbœ|X6Vq7M ÎLN!aR0}IX4EPH CU>$ <dAID()/o٢L8xRo[Ci#l( Q(ԽqOg>!ϐ g+kp@5F1eF2!L[@mN}7خ$ 3A8J@| @樾 Lr mi,әp?T\Dn@,-9!:v:KT b`>P8`џ.U!% 0FV /qMRбdz#xGa;F RUI?dD(ZТR9Mڕi0| >TDF&-%:%p :Nh M>$ K%GHO[|OXA1! vkmT4 `wM\D8\A͐XӰ[i`S ;K;DOV2Cst>Xf·.R#XF^<т8h~kP,fGREfڻRRa2EB /P!OYAO;I19+W8 ϐ J!z'{;/hyDI -jh7*ٛ0պV=2] ְ}-hظ 8qb $ cNuAg砮t-|钉3_sU>7( Q{jkwfˌj.w x&q<ށx9yH(c xo{[jI :1x]R 9Af45`w0O[ӄ !;j$(f^5eeW*]SE_?)3 Jx`p}K16mF8x]t-XBk , ֎_cnwۜ#1ìs垈9!iU\M2 Wi1! e"PĠw4N!fѸrq O`tYwWHK$Aהޅ/[ 8Z%uSrQײgJ̀qH}ԥA(aSVfm]/ybn#|SXe)wAhdx'n}mfbm;5!q{S?6N[L5sGݞZbYTk>&6Q!K(t-q_kG7 qAnG}rqQy)sHo >~]-l&_S j|MRd-SwA5Jw #S8/&C6ak:*1<169m .2O; CH[ :8>C#pY[ T/J{*YcPy(ޒ4?꭯88##2"ԫi+s{Q1Jw(Z껎k]4,{,p"$*#Bƒ,d'n";qƹ3ΣAx̓7*bDΪs!L!%D[{1 .Ĉ66rz8GG1$9#Ï*%:19Ȟ:$3r)]1%>(x÷I$<>K&S[U㯘YDD( 4 x Lt+DĂCa3Ń6++ri1wż\4u7u;plqpE&m{!nt˂`ƶ䓸Ϣ*$CHsp Bs$"ɚD( LBx,G$T?sԵ-G~Ѽ8ۙ2|ĂDF<>HÄpX; }9Hj Ad:CDcGYGyǔNϼ#̵4-4ɤ2K6EvLґ@iϤLwpwj"[[I6a4Я4J ˰1J*@ڱk 5l!tw Ѻ{'WLjXLG, o<G-B=I`h#̔#座~%}04 M|T.cMc.k)M7%39D/9{ !84ODN2d#@D<]ΧZ5ĘNDD䁸|LD/!!uGL3v&o<D+hщPMRmKT!1&oC+7 ,[E`Af,VVtljx'ΚghiŇFT*KtDGuLGF$,ttGGNL*(CmɘҌGRD<D(W$HjCj9>_Cr#8؆-hIӏ}EDDYGA\$Yy\SҎ$uI}̛dT3FLr%CGiKT,[ñOZOZ!5\[zt_TЂڄZK^mNxUNx˃KÛ[d0Ѷx[lV LopTϚ WE`,MW\1)Y+%9T~UM*ׂT͘)Xk!lX8͇H5Nmݎ}݆`ΒT?tIMANB܇SLF5ɜQJYw pAV/Κ@sdZ1RuZT[w(wJ]D$ۮ| -Za|q-\\nP\`FH@aeFaMAfd֠elO2Żֿl-]Em-̚Қ܃ RuL}=-d{'坳1ɐ3}@DIIȂ ]4 gԽM]>N u޴pI<}*+\|TA#;=D"nbI!n(4ϛEG#6\6q_5\Z,D%OMxn`Zeچ09`P6fd!7&g?`[͂VF6@aKϸeFp!۾&lʠRTxgPndJ~g(v'n$-BAG҄-?I.=@03Vc~݌L4499tC;d|=;X]>^ފ~M^T??&ݒ\NMُނ;ԓeZ?N&Idm-\ZAPgVmQi%U|, 5UZ@r`aڸkMP`Ǒ`a`kJgJuU̓`Ua[e|l[n0jguVjV&eggI,LJ3’~hэIp0b-.c>Vc6㘾ui#^8t6{X9ݐN<^0'S-V^>i>Nޙ.؊X+ uNU^"L4bOd~Ԛuoj6pjTTRu.gSS-U~[>l`Fa7#k(uUiR7Pj,aqE6#NjPrl6mKgmuL-~rv֞&\.d-TM.E/-snn3I莦9./n7RVS4CSZn=iUc?so5bFg4/X*e0lB&bt&VOu&uyVgt6J_#wZZu&elfK?Hk FdEǂfUUh^q' q.Z.տ3QΣFmaҮrVTIAJrFPw\%Dv:.js@XU@p;F='R]7ݍ͑>7t酮/7]Ns5gstq0I~L1mDžjJ}=uO#/rN#4UO]ێP`&>dW2>x>p,\j`{pZ,%|%?rjp2&gr'wSwĽw[y [|Ч}ƄmGf,OnIss8}xny}px]]Xie#P~tco0/^N;|8GOvo$Rn|jUU[eq 7ch@ #RtE. 8GG,Q"C7:o|#@`!=lS j5Xypj^F4C i͚r㾭˃]w #]}|RÆo pD&'tD.|93II4k]3УE,I6צ%m7;ځb [o!j O@$G8In"p[9wIG$f3zˇٳZ~c‰C̘3bט`IX\ UZrՕWb MDHUl]!V YDYBQPQSNQKJ(EJ#1F:GRē:ANTDMtS1IQR9 q;gECbW5a[b5p͵%{IXZ% vK__Eؠ'%w9kEdH6Z pƶZm&6smל} q D+4BuGm]vA3jyry6mA~%]yc`|9`ggqkŹEUDg dV5"Ő&"$#;4C?0yQD8 dct}d.L)O-3QTUTOBPA OTU&0&[f/d M΋F]~܂͟c]gj}w$&nmn Wjr]m )tKR$y+e&8!Du~gh{Jj ^):i1궤2jFh-_yaan?x[ߵ`^Tt2moRYA?ApC(>Gp/c#OVs HZ?"`R1&4$Z4$a(2+ Q& 6$JGqHVwLp*Vے|+Bni 삗jK\=Ȑ\w~e}k^Fr |Qӊ|uƹR]p3N8כY:)g!Gq?YQrbtؤnTfȜ҉F&5HuĊ!ч2; 1xӺ<* } _mJJ\+c9>茂Kܡ]R#iQTģ}HKZ|i(,SZP{_b\( Q’+E5Ir Ve 4AvG9Q:mff8\o#Fj;dSʈ1rl\mE+3sNن5NaEA&vRbBZT9Je 2C x}_bXExn$ZE+ 4A$8_/b.'$&JYfگcǜf5q$AYC"()qB$DBAeT y%h&xI-ߐ^C]hKsv@6[X?]Vѣ"kvfTiIӜV$#4 r:\^Tq4~cwR<*4 'ұ.yf N0 wՇ^҇] " e.M$[%CF]B LʀٶIE%/䉱c"9&E*LXP9Se:H8$$&fDnnK9[H\ԭ\B _w %4JO%Z[BGO66q}WP'7T3=jx+jӤtJǨV+\S8Np/~ѿӵ"SO<05%:ѤyMnRp aәnezjHW4ameI74t#"B=]$n&25lBAr. "S <ɕLHS2IDFMHLr29)C9yQNSm``Α䶮ݳ&r\ $(Q*ͅ,>h*a]XPa Y;Nuj3-US/ab|j:)4baҝ2NZVmZK(I)cw$0I3嵭mYUܜ* Uuu=ѝ) 5PB.m>+L]%9:XD1$ǔa[ЧGLBovjoN@T׏v/%Ї{ }ѭqQ1ݍUE]XdVXUe[vQDr|]=ͳ5΀TQъm BQDZW [IR%-S=tPΨmxhhld`QqUUWqJV!XԥX_)עҼ(DQmjI.L/L1_QD8]_ :d4qK\ɍ̘Lˡ_`}D(UUC%r*a|)Z]-VJ!d]TXRa>U0RiIl33ƊE `c :I NcD]9R.A :R q?:#Q !RDPB~ Uᅥy@KQu.$uCBM+I& \!YOӊfmYIxL2YYXKJ|KȎE_PèOĿED'' )\(&PBT(UU^ y!Ř҉E\Y`we/e< ;:3v`I<-7T5RNqcD Z *? I`9"GbD4]#<"=c>bब%? =>A@&##^H -- D՞m~!,tܛI_$GO&̰H_1qIJbH\v1SHl$N"%5 $0iub'J QT&|T^$tg~em>`D}eY(^t/"dGcJ!,!Xh3R(:%^%3~hqdf8N`JDeD47Z# ^ &d(h,cD%fZNgƣ]%^0#2!1`Itu^q"$BģE$!+n$QHBG a.qSu>dx̔WKJ"Mvd%VqBAq\gqȜ8Fʛm&nBd/O@B c[ZZ!eIL9fʥtd25`R`hbjVΉX``U伨@HfO`\n+jf@X(2&#jB(dE^*^mA~)I?@q,r\DN^SpDJ>TSwc94ũD'y OQ'5p&pA|['t޼NdejE>BZ}#&@VrR@#0ڪ5|+6`dFDDCh b@^kacN\- (rn:NZftt2lU))7o"nD+gݞ^ l;x sNRY@JJMKOPy'qߛ-+e~>#`dDg~7X7do&Y"$lv/NG&P+ʭ5k.mӶzhtmhMmfVmVmҊJ׶:B7beRj-&fV0QgFc6NoHd՞7DD q)b&(}QlQZ.jn' .$tvYRw&ILȰČDP5h젮'lfnj.qjB +?h$͑?1*o +ΎZ!dlotXC2EXNU?!72"*/eoGG(D׺mV3ؖrS)wc۶ֆ &GDv묖Dig"tl?2ao f0E,F  qsnkDp;|l~lPs8dBYddvm70~ndž.,$,ڛt pD,/EXjCOC+CC*3%l^73/b/2IdIrVZhL3r#(c2e443rrۺP0'2b-RrыJ hlPou'[-Qo5- )YrD2$tIs-r)+E/CqC] #pqp**j@ȶYgRPaaĎƬ3;+qevD(pN'7gc o3jsAml*q* A ,L.^uBv^]O%tDឡ w s^o?d7J'0GYCrv02M/xwx7r#t#wFK Z4g7}}%8o ͛ ڸo߶/U*M\4&SK|GLAAKHs-A+4),&o2,"&h6#K:#JF:Jc)$!i=p:R#꟭TJ*Bj((I,j+(,w&+Lj).6i6" >z ƢtɊT_4,)(HŁU!G#,N@C.B2/bp@\k5"5`O6{W 8w8q.(X:N`>0 pWkc/ G\;lAO5E( O+T 4J3dI=hL:Y4Ej|Fmb%aq&i.1:((''YR-D(gc *-6UcF.yΜkd1iܨ#HŲ!V8a\tQ!IAtC5,%d-Ƶ"`;T!JVwm݆!urWh# :X=Y^[tj|!oTUK[kaL;,"1*MD'M( ǒX7ؠ%>,/RA'F.U&*"dȫyJ *(d6Kǩe%(=r.qiLC3\̴}MK`#4~k!]JF4 / CH3^6=z!*SzRMݖa4jL7p ׸\F= 8taen:p؜P<ǡB3*g= D; 6{OcG l IFB[(LX2{"V6%lh'IJRc訒FAR[ⲑC%Tg8Hi*JU b>xfLe3JY(I9єAM0t+pObG)Lѣfē{nhc09 L9SF R $0DqNd|ح:"zʣhaNXC`ty#Bup!8mD$H DPtg yJQdp`$U#102@]1"$ "0,̬rRa% EVNA)K2_~lUB4դ(QдF$k k$mafgo2D'DnXR~L EH" >tB):.Rpi|ț8i#XhQ9JꈣБ[5Rv`Dc 6LC NHR6zPFmE¦zЩm3b!_g@a¯Оn6ҙH7b%[(QƏK_*J9OzcX/?6_VcьXdM, lfwF2YS fS{N0f{ξIS'HOpqIUӫ1щTKFP6{]6 $$!UDȦo^"o:#ݎ:_7؊,Vo/^-vnb "l!1>" YT ֪`D"Dp Jpj @0 b1p0}od ,ą=jVޫ׼Bhhe ( 9 7."77t p\,`oü0~݌@y&d xBkO!n` kj "86Bi|R˜21ɒL& HeaO1 hǚju Pxn{Bi¬K:-z~b "D3.}kBZ0HPErl2mb,O-"nn  Bҫqc ?oZ,"H 뤌:89+ڤ ",op\m#B RMmW4eB J#ԑV᫒O`QpǞO˸ ҌjO,:q&p61*MJQ[Q+ ȱTdJ,kI-Ngh,/b[1(!"" ɮ24т1 >nJ. H`(q'w #Юޞ +D؍X 6X8,ڨ+eR!:Ƣ9h`7H8 t#7-ֆ Sۺ"lϻP|VV &K&a29 @'q>};h,(#8@b1M1Q/rA1n+#J/rdb,cK"--iR:B-dP** *)3HH12E3tsk'G4nMj0y"l!@$IhS[6U(M:8 X9(9bV0:\J6*Jj/$35XM%5yoxӮԪ =i>ձaHb>2in^# TA`薒@?N65:*%**Q+A.V.i+̘2rV4sLu]0/b <δrOqA!24IR` @@BH(>)4a 43~b4"nvPL"lN$esTL%>jM=4 ӨP 2Xt9X982\ju&q G /e4dRkSeʹLq$U2$Dr&=KTUbb'kmԫvRvJDD0@yU@WF3(ԮuA2q%t_7ZZծ"P^+440!K \I B t#\|0syr+ !bGyq wXI M}5@"XҸF'*>vz+6m%alPU3˴5UR$S4M+U #T4N= 9Wsb0 Ũ::W-KfVڃ:e> T$)xnlP>B!T=8Wwc+VVKVO(V({w) tI XXIXRY*y_B20SC9s3T~f.˵[;!8:lt!tCA ]xZ` __i7ifvҍGW yXY 6 ox@o yconzsz#ZRT.|ɷLG)LSV;ix(Eh9p(Hʌr Y "CQpiy:m(R` ״NO2$W%Qm=6=MT9=T%='9K846nW;kHo TY73/)}p1.Aw*8wXrl+_?[0""ĸs.HףA ttE!B F"![@iN*."ew+"2iXi+R*򕍧r(Ǻ ُaqՑby7E495yLELҺ#]OMHNtjYsew9!3gV<uf~I66*5L)|k߮kÖ&&E"PZVzQiմixժpXHkض*u?.z,uD-I"kyO8"_ڋggڻbk,VZ}:UӸcI$,{DK;(71y[w%>ٹ\ù7!B{ڛ/Y{[|×<1$#|?2}ǂ"w{s,>jW~S үiux M伵M~xxBcpiX7/b5<//qZٛѕ~=W"0}ם]9;ӣ!!\l^_] X}1a}E{e}ԏg}IE-v8A?C!_z۶m\9\?;L">Ykѝ߽Ao1ZZh׶9?J7j*: "'xWk!k+ɗ5كwýz!|wBpU_]׿=^:7i}|ڙsЩS! &|P :'Q F%1"1$H;><-Z\%ʗ/{ɲWL9WڔSN[:SQI~LqISGz-BgYG'aڴ_*tVI *#|􋰯6pʄHAIj)w7}RjAŤQ9=a> jAr!nݒQnldb#y{y}x7t֕۽ԑ | 뼽.ٿe[eٞZtZ`_W :W=h@ZaADPTS9GeI)VU"?0L/hB6SO94:H' O/N%ĔTP%B%tEY!t@1~ [W~)\e9W]^U'?VXc!XіfuhiZ?gm1?uJZp]bvr)`'r>shiW]uyi^y=_{1^A`נՀ`!^X|W]qa&YEhQF9F&Ԣ&ddiD%0O(9JHTJE,qJ)! M9eZKЗ j(VXݚ-5_!+^̽)gBI~*q3~)dEgZ"gA*)ԥIvY9&ѷ=['uajEjs'tvyW^n^Ǧ 15;p{V[Jޖ`r9B;[zPBV.FS(-z4ci0O 7դU"Uz![Xbm^rZ_,vfYWsQ|ʆa&(hmY}i֪-ՌJQ-!zȤ&5IEF6(Zv?ɯ8Z ÞmRvfEi|v x {}sYbǝieyua ,WLlCL$ȵ&z1+YɿBׅd)[R&'$c[D㐇0$lhd;PXز-lLCSb NW6ӛV}4[p٦h%13z"EBqm6pcx4p!!b^s @~RLqO'ۋ_b>͊Vt{v[ MC]$5Lq3p)x"A,BE)d5C$R:0%J$%QBJ1 XC!YfiLtc {.u+#5o42i9(!lbbVBNvWH&~zjB]VSQ*BV@ Ք*r |uA]qk"?nq*]Foʦ@Ya|ûpA$,- 8%r|b%j@AR!jiWdѱ{aDX~̤wI4hGEHI~HAKP5 DT> Ip :NIm5%0\ݰI;qɒVshGfʂn6W'꾩ʡgTiO{n") 6LzWS)5dMg`c.1S٤~DX% cID` (ZC8)Edl|T!-qkY\=mD4ygBʑⓜ-r{P}uK(Yccwe[GJj`%<-t10nR:wCczQW!"7!~ q>ś );LnfB|'{VdwU̩ }=!:HӴv)ͦ2A lFJUFV5:퀼>Ri #tT "G=3B ce*-9e'%Ö'd<вf))_')8K%}+$FI:7wBHݻKKʁr0ƨEl~ w“I@8{G JQRPK~棨O5y#$Թl%Q-C\Y⭊T[b^Q-RszFB*zKAȱHK?^>^Z) udipT+av5f"OtjUDX0F Js%UPwswp #recFrd!eAg؀ ]23  1VzҐcoM&e'#)0 0 yz{|WB2o'P8zzg{rppH{ 燭{|hn #&@ZIB;J! cEOaTdTHbc8XAYoYYfa/V9*#-/Ho%Vb)QgBBg6?B|4;?BWDs(%)t^$Nd6|QlAup u mxO'!O v- q &Q< jqt[`+gJ0oxxȐȀRRzh0!{ +#g BhHzzy7#zXy''!X{>Iz@9I{7z^ٕ>{WىA䶕׉{]y{> (}1BZB C}Ma}&bE i +!{\]y#{HzwPg yu(vb whW~(P&o֞Z){\y0_efxjZ $"&p$7$)&y).Z2F.yNJ~&y:6b"0(!/(q xI6\(CC3"'6;>]fSa(5xZ58uDGff=8h(0 Am "/~cRAv;c(fil長xZXnInxgj&Gn zw )k{$1.eg;0P )Zp eX"dG!$2qO"c+:z[P"Oh& (H' ASA !t#avʤL\p"3R"Km ᐉ٘v1I0ڧ#eСrKoVy#"jY7*I|{qxjEp Ї{bW pwXpZZHqP{ @˝{eqYYV0˭C0@Q %be-bVNc%"&F: ^:Y+'eZ8;6v/8: .psfT(X)I @I8s~#U V7;*HhBwAzz>*93U+j%][\4md~!Y1KBvoI2k`*|(zzkk*Pz|XXq| ǡ๕K ǡ{b}JZxKZS/7p+|Χ p;;` L'JedHgCJQg ̰* ˜3=&.vxfw 1!eU6ddTg)B[8GRNlW:0 xM-Ew' sR39h*}mm)*s?KA/|]U[H6Lvbv3rѵu_v Nc XS`iFYvjhw/mHka<ʇ jKpԖ<ǡPT T'! ]֡{I}ԟxb SK lj(aʀpep1{m#/z|` &`(BJ pd5XxPj ++!C%MQջp + S-V $Ʋuu 9iChѲ>!?'4 ]$3#XBgє\'a\JaYF"iGM|F;x"Z oIEI=ōLQ]  ǡK՗rL4*]^@@P  jzxQmե|Ʌ}I%LN }=2AgiLե" @<[+lݩ.`U " + c r#S..c"Xu ar1v fpGp oGׂ%`l 6w! OT0 l ~b &lnKڥ6><4UK4k8MŨ 5OAz}JRwUlo xGhӭ8}JƗk!՗pr,y&~bX-'A0 o_7P zZ %י 1z)؅H ? jlRb-P 0 =_ P ]fq{ t@ľ{5fe0 zZQwwwG0z7ro|wuak_k RR=ѭ0 Q֪9n 셱 ǐup pUJX'TUfS'B6{aV5Bʥg0щҒj.2}qi4-.:r~ԠXMoNR=I(?]ce- ? /~??j|g˖.t+"VfqVY;0H iha_iKSu"4O?,Y )d$ «&SeEFƨuӿDb'5qՌ'MMD%w=X_m_iAmMf\c)Gyl\YukAJe 5T2$E&vX"E!(JHz %\j%%%?_d +Vd.iZ}3¬_^#^I a'9F1:Ȕk_,,^k|O|"[\LІa=)1r5cH`oavHrDvXg/whf>,YtB<͉H;tc/rO%|DԲ2"d.6FQ&ZT46dmgf Gmz#IKfF^Jܒԥ*YRII9L1y',G::trbeX9 ԥ*pg?`Zs+ɦ6ERS;BDN&4AG Oq[<$C?w?Oϣ[ ODz4FD kb:MxXQY+~"D1LctBJ LAm 0"7huԆ6i"6]=i sYlѡ.&:zD$GCewbV3%EJ%̊X(Vlj3 q@` QjHF4Z+zֶ"r셉 я5†-j?2 ن Ht0eg]"Y!:: 4ONSSk8KA:Tۗcx:nwwtw*#vK<Sq" " Q@'Ї %(5<v5O'<ZąCo^W^3 ?σ#3Ž&FɌDblAѪŢ(=AVcL 3hn҈lԣݍ6\cHCM{C:HbtxpA/ 5X3¬. D%y+a>ZO꣓:KCH 1Hjke7DiHC\Yd箵hE&Ej"v,`D$ ;QIJJDʁW–$.ڤlvaB06Lr :b"T/.>\sÛ1k*^C0]/Xȥ-ܜ81g6(! ox#3Xvu.&tV&T`u[%g3 0P YDO41)pD-`j.ү~8ީJC,BS !461/,Z!9IEz, +ys&]fo1tŗ̨Riɨ =->Zf4+Wj(s)- 5H;\ժTwAFw{e<㫗ws>-6.z #ҶO )B&#hf#m6B+u 0< B!cZ[бkdNXiKd,*X8Ҡ _Giӽݎk{};(qL&L=i= p@(1paFОF1h SZR8ڰ [8R(zY8C 3Pʄ=A!1Һ : s:(2':jp.pxI:c!::B Kh)0ܨ!!bS mÕI_hkF̄fhF B1PNȄ;p8_pfPP E۠ @Fpt@+Xoo ҉@j+E램PpB/񚮻&@@= hi=X=peÅ [Xr,"8ʑƒ"1Tӈz1 &A)>GMchYG+[A(`?`?Bi®7lsxJA?x:Le<׋t?jd1p`gRg1H `E D1脴8 KtA\j ˍ9 zuQ:ZK@Q"B)8 S(8( KKK0Sw"HxxwDŽ:L5( .!(K4MݰBL갎 k;\{x*ͽ _pp0K(GK{Ҵ,MpLT n F ܦiL䔂ph! T=Xp&i"i  FFnƃƃX@i8r+X0A0h8 mI*,-)=h/zs :@i"k1@HjZ/k2҃=LX,w zXH23HZH3ҎR꿎3?8{K e}8U@<:CN؁;XDVdHViMGG~o@h; `SaVSTDCK•Z.ܼ`KB K+ֵ΅=df؃XPTD.en+-`-H =Ë i[(Zc![Өj ہԓ#k3[PO3a=8e H Ɓk&@lVPhtRxЖ҃@HG.)C춃JϲEE@e+XeSTE,^ NHXS.0]TnݫƄ^d rZ~8nM ^QmRmFΉ2U6͐߃ DS8-FHW@V[WsVh] `U!{pT`np0LHj,Nj(MTh46HgM)p=:FhodM(lؐvqpͩh)EeL_`(,ၵ(D]dduAYW BHSڷ '&7|÷s&d(r8`?%^?u;̓?3WXPk(LHI1hƾ1hlk􉈰eheXXlgXZ 0h0<"(lpC&X"U@^\@ e?I tKLfɅMXANXe&{6CDmB Kc8Er[w$nTF Z~Ps k8KX5[k8 Th&6#H2DŽ_ fEQcXj⎬0 La*h/\K]2&۵H1BZV,Bs$ LoKa,Y1zi֥%) liNq OC*B.3 }dU@9(9'6UUdj9씮>׉&XLRdE;>IhCQ(x_F,xc89JB=R`xQ(@ ˬa9ڇEU ̟n҈c?Y9CVKfg~9} Duqk㢀Uur=s!%l~U'Rьz~Z"Q_cc X++p3eMU`#3+$,ɊG/.ֳ]g[@*vrM-Xq-Do;6W/PbVXŹEjaۤ5 an2"07fu:@p1Aeܬ }Ǜ;dyFP$\mp ѕJ}z"7g?`X zc1~&Q X*1qw8)0.䡳+05亘Pjک~FXHL^vcOPg}p>Ԛ?SX*=dDh< Ʃ(gH! A3F5ÈW>C Bџi##[!+xE+rӉ E>p),/8#oWeeAZY2qfVdYi쀕z{S{ b<0Pl TldC/ U | $H=U\Er_Hf lhF]XFl "aw͌qLnEG }S)MlNaIՈXΎlHt>؅XNp,oG"!!GML)P3Q`H\HBAÍ3?XИpQT2|ߨAAxȆؐX?AD@!AN,8YS]ݣ!I]I\(9u֨D|P] H\{M @-b=UD덂NN?4yZB6.Z)>m4Յ!QZ9N_XLgR|&MEHA2x PetfdFtqFx7B8d5$BZ|? dpU ƬUhp͌ @sT]R]lM̅fT<7K.7{x?,$ [iFzDx Y\+pKKE}DHIOI@H4x<N ΆԈ]?A35_pX^AȈY ^_.BNB3ԎhH".@@]7f^O  xtB 3ׁ&$MY] ݟ% JH)UXJ@M)|DU Ds6SXNUB^HЂ4؂.肧- #-4ab!N0Hy'\B9ā^'d3+Z:Zϰ;#lLT*[ALcHc )|dBf9͔B&dB8B&CZ4i`tULF}LuTLE҇_E ȇtxC&Pa:)n)1iA#G td]LШG"-B@JRP 7 ށQ@ <͓)Hw7\ʩ\ZJ،Yf"ɑA" Xj?ē*ajȆCf`r*ЪffꧾjeR| <ⓩeI"lVڟ RD\KJ{] K !LNZ 5ȃBZ; H4GՅ%!<Έ E?DB6h6 Ȃڂg4K2~2tІ؆9UD0$/$(5tK !F8qe}7DRGbF@mDI.q̉e%rFyWI9.֤M)pEl Wy`DPd=J# $nDTq܅ QΆe XZ|B?g)=%^ @Oz%BfD_jV."#D+꘠|%:B=)TۙsJ,U,+ݽ/lR7-*GP I7MBT.`EDμPyN;^]iy_5Ԇxy'Ł`Ö6B/Aw,Z.F^)Ο쉄Ao,VQH hΆ/tBD?h55COJ N%ȬrAd U@ ɊDeWu艞0 EpP`R_1HHȅl"]olXZ| "qQltGUۘt4ؤ!?a,;;yevo>gV݄* jW2e j ?jNBM( *4,I$D?A$6ks7[5#o87B̪9Ī_^o]~kI׼ wt ɜtD,Aʃ8緸vt ɢE[B/8:`Q%.5k,rNO?;IA/ $BG3ɟX"d"H#AdA hE8OeD\Nm*XLBdSB}#k`<Ab#w>aM2Va2i۝1zgE&HGgiEy`E[F{M0=R} X;`1ѡ]*ΊEn2B΂r_6B *bvHZ/2.+*D P` 6o? 3d55_s~C~/G(s~*3hu: C`P &+0N7M)SOPI-3fLD(ܢHsr"a RфMwp hRY Nɂ9YF}e?~@G`lxxNձx5]DTǒ,4A/10D̐Eʐ Uނ\J/ y'SAm> kdDv^Ӟ^R? 2ɚtE%%ZgFyLSS)~b3:X֍%sמXM9q2 X g]4uBj#4L4I{w߀?\?A|??< xD7gs6{G@758|².J00_Rw=xD0>|h? <Ak @C^g&JATv0ED@Rc g7pV pV  : ȄeEF PC(a<֥=B-Mɪ'd)L$N0 *8f 9&C.6 !45Xs,Ys4$2 3:8$04L2M3 Sp:Id +ŤO"hZ.osZ>H 'jÿ0БvWOzqwQ4A08t8]@E![gF1A*DSGLKU:p6p4:97iQ ꜏ɈY ڦ ; Nw"dRz?uÛ7QEë@\BqQZ7>ۑt쁟uLj<' bXzbzW=^][+QBn;9Cv*rIx0?=~/mniR"iOE= 5 Q)E,Z.$r֏ m=&caK&),f04f.$C+|+kP ƼVú^C 9L |"]MLdx詧2B;,Χ(dC.PpAP#&nKfծdD{H Hzdb4++B""(BBA G:eT 2Ri+?t j^a,HĆ ^a-AB FH#"3 @H'QfBb4$,{jBfO.dߩ41^s(4s1 4P`1*/f)gz}OǟVwa6$i"e=A(v^'%] CvAQ>!>>?Ӂ?a@qFabCRn2&m#1co#,A>$B'2F2]1[L&e'z,"lF]\+(kJhsky\42pk3&3k5"H:((ed D4N(ddtOAVO75y3#gu?2'4,_B$Arʂ:E 0?"a0GuF/ 1=Q)"=P΀tڣPg %뼎RU5Ҍ"4+d XUtW|jZO; ǗDQG`gV Z'+CrbFj[Xgdf|hI@*??!@@"$6 j!?!8v"tQ>S楬=^=lp ~!K'-QgbB_c0&vVw@v`qak"6ja bI !b!$6'6b8dmA=xB Z,zp, @d=4@s ?6Ц Ͱ IĤ[bEdiU\Xh(/0f5,B_"D&.tk@B`vhI"9j  MdLgdon(TK4AA̴ڂr t*sY!63`sJ! kQWqb.w^s0%l-/9,w-9 S,ĬʪHĚ!,eHR*EBbRj.'e/#!zw繫 S '571*9JqקڧCyC|wP^%P t}#0˦P&qPQ@ X! `YHxb&a'.!ҡ mӃ!Aq0 2H|"R@eS@r@"%C'">zu<ʗ6mʚOĎx"b^(ۦ'ҽޠ³"+c"` _kd ɱl/ɮ!ÑKd D]DA_x&=BdM 6`ԙ`VyjY/jS6, _ws,C"$DB`5DF:H񆧎LdJN&b/#A;¶ ]H;_H2 0̖&& T)B!d)os$9F"xd H9y7z_7P7X e+wY V 3#%) Rٝ 0!̝ ŶiVe\ \{[ VKRbjZZUU ^\ P"RH |w{Q1s:Rs$Dw,Dg> V~3!AᢍVilwA;Ҽq>aYQXbSx'b~'!`?_XR{Yީ=xRȾ˾),țU.U,g:l $C}I5Z-`5xD^G*Od0F]^D~/+Ί_Q 0T  !c C {,LD(#E@r:õR+y ,A*BbtKP  U &@rĉvo/#ԟ|v_w Խ@~  DoBP!_AjQ5h#a Bc( pCɕ+OͿ8qFILO1??H*5дA&VWI\HEJ$MT  :5`n0pIdXъVLP!MpFC@ZArL80U19JVTsn@K5q?PDjϨ 6P0RĤ64щIqRQG!S$€;Ev`,1&#Zd'k #fj5T( AiI, Eh yXp5Y4Ӥ6D!iv*2%O&,=i[|64i>i4}JwnG%mIp :8M?SPJ2n(GG&IHp]ɛ8Mf^XRxi[V9fK1bh `2YhA`#+k !%ѣb:^-^E+=! X?B(F>jjuW"'G޽ '>xX O|OC_rw7!hL5)%! snv8.{2%ֈЅ"N?E3;*|q9e+hJ rH$ !<:4gM)d c"tOXOzGϯP:s>|rEIU<T\)K tNH:. |j9`שwB(6(j&7ׯ} g= .-2Y2ż58^`6bZ!V}VyVR0TS8$VDk5S\kOp@n>SDRpgW'3u X`d@p^6ub6K&U^%7(w&(7V2 g@ 0zg7 %۰%J1%M"t3tg2stb+t_u`)B[UgdXbr&j'n8rP' W4(=Tf*JFev/rj.sd=I?,q,SoV@T!F(ayAyzgfC5Az`t}Th 'Pvj.Dp{n]dV4x70C{VXvXmXcC:CX8{gzSQY~/AQlY2ÏBa5{f35S?\V\+{+A.D!، h+Cp0"՘Lqj=)!>mVA~bAM81EfxAfe! @‘DZzQec!>r((,d3T6{CC%!V>ƚ.h7XZD,R?s>6e>e ePBoAoT\U"1+Vo\YI7ҜaňTa0k DYh,C60=\a^$]^/* qq;KAS%7#K4_S<~yhFgF8eQ1ASm r;0^v5`>d{]~,_=uz,p%vÁVGu ˜BXG|ؘT97}!0MqSh˂ЂMAF% ;]w1Ai1bQ*>Ȩd)V"@͚Vy ie،.`5Q>9aAfIAfDAgl?JaeR*.IYe3V+Ĭ\\e(r434/>!DG#dcVhP-"%R}QTpzc#H_!-"-#A˛&xKT`#!:!`D(GSi`|oSRFEEAq+~ 1gwAMr?W֗.%SR H k?{V V\7ZDo/0eM0Ck0O[~ @KoloiJ|+.@[LJETtJ1R*|?$5t[u`H`  GRCՖұP/v1&]!^J2(7%MC6$<(-(@%)fJ,Q `@ txqBDxDeP'a_ݻsE vBwwg۽{Hsdp'h@Y|$7U2M {!qPȄ! xU Ryي{K;zGɤ<ߡ V(R=Q}= fkRCj}/جZǼ<1\>P9e;S.46@o}ۍ}\/R}IVXXEYX"*`'Wc~٥~p+ &AmĦJOw3(_4N~{6,PM[3J]1~B+*P.e;KmA1_;fD^RMٖrQvFӔbQe.qXÕa|bQ` M!C9y}g-U ) QAd{HFh-j]ʄ!~H13?\hr>V9(hc7 ]*JAj?<\cx="5w%VnLK@Î `v߽ΫՁXFe0IPceD!pc%U >A Tw,\:-!?9q2|%Eu0l5h9wf 'TY!,;#;+,TbBUOd58q@(1UqFyJˣvq{C!W!Qyy7sQa{-s|HR5 5Ag?\2Wb'MuX=WֽJˎ\E@O#4ɨ' \߆DKPE wdkefK)Ȗ{-ʢ0ݧoJ)&txpe)w11A e6,c̏2sk??ؠl?4#‚e ,qB  @rXFg&lI6̙"{}SdŠ6 3d Sň韘H\ e1ڵ)R 2t-Z  ߊ3R|pJ`DC"z1hk (QeΛ r.f /n65n+G~uIy͛?\Ǟ݀u8sc W͟' n\q@=z T`#8 ‹ L@. .D A νnpū*+"1,)C2GG! 6,2+/M/h L*k v@'5'Х ]taI9 M[svc냿Ja63: g9ԙC[cԵ&ZпYiv8[P鼓Mt) " /y H6MMkYҐz@pm1|CxGh[DDmo$}:<:kc4=;j0}%9,rQb˜وG>q 5YtXٺ88fӚJB[n}Z OV"aMr* O6l*<6kmOyH?[؊)d%-M#IhT@I]2MUj@ P"4A୚/,#[pEzP_lAXTD*Md?N&h*G&c+  -6@/Ox^$R/&X Ř8P dE+ݍCzHR )w:I\i5z3bqD/Ӷk2WqT!wqSjbVo6A1`⛳֑NLM2N"[ǹ$C((M6\hn:L( {yO`OznE e`܄/xUOhq8,c]AA5ߴ/m-=iR 0 8ma,F)ІV*O@5(eC]W`[Zz4z(Jq=A,c"+RX<1YWSs,bbJwНHGho$[&M=Jg;k`j0}mt}Vx?,HpTH"$"rWH C. IE~F*Bd$4Ǥ&Zbb bNdC"&"31qRL !3tm5Gz9S5Z@ t%K(ixN(n||(2$|bS$d5HB ۊE,`BEfm|>HZ E(~`Cu$u{H@/7~a"e)K_bsµeY]cl fS83|k=I{Ki_:U&GOM ۯ& F7QJ(DpD|A d؎9m{6 6lv8D|bd p}p6DsukP7:+ ; 2@(>I t%見I9]/ya88$>&x ESە)㨍Е(x0PxS)OI1ڹ딢ї) O=kQ ccQiPd;UHDDD WXXBx (9ѕiC\X3P(88;3(= kR 1=L^=$ep1z#  06o,7P! 1?H-󡪠d E@AuT*  q.RSt?5$9b5(GY)1J) L g{ rg鎭JyI܈!Bc]Q‹;ȝR<!"13:J1R0Z '7Q(@8 UaDh[\3KS"s7;ND/C 64'B 2 ZREZN)N1؃)`cę:@" $ ! P *#G4ut+X#:. %w XUO 3`q b1?Ye? H ] R1IY @s5 $!"P#@Vۀk@ ,J0.*=.L92u ɐ HJRbq$ 22ʙS2JpD]y86xbT;A1 C.)O)rZń`[aG(:WPU a0aL4>W܃;#JSi(5a9ks Ȗ欢K"U^gLYDoLX)nhNZ:4&#+ sA`;Bi># 񤴽 8՘ =ǭ|S/]5J ar4<ȃRĥm0ӔJ(@ T9Kxrsy';iLB#1TG(SdջN OHfC̜U;UZL)xn遞 ^ΠjdT+jW@MiLXЋnX[5G\$NdH/B8Mi9Kt˨ʓ=ʳ2 " 1$C`7]+!%R#ЌQw (|:Z\tL<-I:?j-Ht0QY(_xe%Sb I347 ĎΎr%XZp WzT4a 8 "?4=X]Ja\Xқ0%P&O;6L6RTz ۼJ٢.2:[8: ̠㱓 U1X_;fYoվkݖgی^酫2 ^CpEAq&B4 WlWgWD[=NSoWUZTNL_g&O 3d DF-"3Po~ L޻]$kd=Ma7.R $rRPJY V\qa5v*ARP &He+?_ Ƞ-.f쐮~zz|Gxwl>7=@8c1FR#6XʵXrLFN* uJTJ`ܔ3IJ"Bʵ\l\=CeK"+B[氅C,`eÍ VńFP_)L >L[ ģx IÄ =hV$;O)Hp*^A[go1[f~.N=[V$EWWd\ ^Np`N3 FQ`+4RO@>a,Nmᕶ !IaG +56 +::#)cj8 MH$ `$)Fb*+,FQd1kl7@;$#%7 $0*Đ/= -]JfXʥ\lJJ&\}tO­;ύDDDx:)[X(2k"B f/Ló? ̯#LUDNpE@_> ͬ_D@4ow|&]Ֆ čMHy 2mBf 2YLHRpR o{g%n[k_qU^ ,0868⢆4X%کN֋C$b hrbjI  A6VcOp6k(k踑q# P 7H}xx/{Z:B I/p|\Kg|ܕ@T `N޸/H:#},lppd0)MO,N+eCEs j}:?6ʤh:R袌?Jj:ʧfXDE+8c "B |Yd QH0yhzWR'L2h@vim0Rn3PUXW`GUYb!,Uh e]/awY@?!:/ (7dd4@fL}6k%`i<6L&[lVVon)o@g\[hro`'lّKߥ6K)[v|Tq|Q?z[y0`[sL;AN!>Xaa8¡#8C"ءA&ጥ`5 ="A?` [AH2T|_`qȺr!:hK|뤷5M9}bP7 'p+'W[[0rX`;(@i}GA>_2n? [hǖ5$gh3d6j[۸~7!n1|moMo{*[U[v|vzm}ԇ0L=zq 8\Gp#D<P5ߴ$m` =ȃ °•!L QŁRaPH@8B:ءɝŽ]RuL 4Ge]E- -AYd !W튮ӵi E}A,A "& &JE=Y9*܉ dȊ|@г HܸG Ѷ띗{\^E}EZ W 9ZOm_[pL[[H ʔ ijYj5!]M M[4[l&'Kc V߽`xTŚZ0P$ t.*F$2k4`¹|GZ=\sq*P~}4 5(ZHڃd5AР[ܠ ܘ'OJ`!AJH(9AA VXU]EAE ADG}fd%(:U"NS&T$Ċ[\P`v,MPO &dI؏E۽]R[ GDBZL HqǻL{` UJ^e=e3cwA*+ѫ ^hMP!tVHj9ɤb4FHF!CV:A:g4|~ƵلM0 \MA }a='_Pr_v]Mh.wY PA HzчXE S {H 9EZ`H?؂9DOd- BΈNrD`Dd)\#W=i|R'jd\AA8-*lV꥞9gJ fUU f,R )MOTT E!!* hF9*еnvc0>Z WK =Å5^YUV`Eqfv&Ȟo:Eb!3| ,\!<@ jm`T@dTy*ylcіj}r؞F,M(e!dشt[r1MruS˫M kl$~P߸P FX%K%:|{$A ,MKDHM.]]WAD)UrNMt950abeTR%hiC$ lv#,ǂ V4BJ1̡C9ÜP[˲Xěm̉ҝC "dY-R`:eGxbvjq=X ^bnfZFT LJWv8'eɑ[LTL<u a@b jx*!E?:ʖok%W_캅^BEmNR֬ڪnhEaoD&<,\@GDBBs=1QolyG @}`~b YȭH H-t$ (Ύ6f \(f 876JBG8FX*@8Q.U Щ\D$dE4=Ղϝn TIϚΔd։SaY!eM-JYIDɩX "XXg*n8H>Kj`$lfׂүU֬}٢Z9^s:\bB1B<ycc 6K[mj'yQc5^W~>.bybH[s0lFREn@2k{Kq$E923 )5E*~,t 4H@DiM7A\=hF).E 8)QV`bn@G",łxI "(6SHxiW!H8\ 4@EO8JdNL!iQRPފmUnUfi%ـn`o cůbV^qUZxEU F[h'^X/2Kdob+Esk[XL66oh/qe7o¯ssv,2Ӵ3pfQt˶q->Ks\tD,?L)a>?2AltNdVQ.[΄rN iF"aPKg f|bKd7Y- -Y0_E|NѥHSSd;B ;^\QoeU@4Zԏ5m y "./r㩙e"0V-%D.F µQ̞baѮRh:cƋX𮩽9m{hQs h%3c ,(&D# 4 C_PD P@*H "`1 |0p'0OH@> ¨ SH +(q`? //ӽ5 pHd!y3!8:ŀ3H"A_ GYLQEky P*bHhMI!eSkH!8Phe n+"W(P]g]h( hFZA3A2n$TJ 0RP, WW h[y u$qȀ+ȣ_ ,0kT^Dr,Ъ쬳0B<.3#4;+(dLs&۾("/YYZMf30R A0'H4WÏ6ni؆&: p Jʍ+J-/˯4J1 ZC\ms㓰 ^C@|p_^ MLWZFG\rG#Cg2-s 4Xn0@*.;DH^,2RgLRTcLIIfcLH-~LdA@e"Gk;RR8҂ɴLȋ#)HVgEUR)׷Rr"bMNMС^\;J!.E)|`2Qccr%21d"Ƃ\f2 LchRrHs\I0rZ\0{ 8Z&LXz"F9Š~؁WP!(bet6HB'mj+}PQi@O~%pIK{D0AF p3 0'ZQIgrЌhT#( =J#otcҎ H_zz3gt-MrʴN  6KOJ C^AT.gfnjcQDcP:QN$Ka N5M!W$c!ÏA1} n[ 09"L)Gp<4Ω`$1dKHL;Ӝp38/RC8!W YAX }jeh`aUnݗ07.,VzΧ?/%$c"5F>R`lMC@+B(cҲbK6Y**緽 3D$c?4+M0.B)PA^wRNmt=G8xM$wwl eIL_G.u =`oyRz_OM+t5iTlN0$l&s̩HH nhfB0pp P0B0ZNG0s\Gt$NGHRg p\`N/rǢ+R) 1b;xT̩x c05.f#G~A"32͎ebe@,gan'6V>UTRfbʠ hMh#QxKZ`aX7a& 'O6`*:& tA~ JJ;SjLAii0p\ $;€QȘL6fRGc%dZ>e8fZ:J^#2~1_VRU1&x&h t7mbd(d5{`u&Tm Ex:bb<KԈ1:œ=mo=\ѵ;W|.*ӚK;z*t0A/#ܚQ@/"_B4#UaePN> m>†ypMyZtl"㤟$rDF!HIdֲ&_HqҜÌV)~\i(q pDDq@ E*NL#+NtN4m*uDc$PhPMz0+ ȩ, ِM325f~ <7|#%H#8JSB ^TRBl0 'p,rQ "Wm7a{7G7zKwS{b9,F#ܭ,&DQ\>[\ j\m @{s|Ƿ W_z{\͕ui 㓴h$ !?%_xb!mc]/byb [*|yPe_:cU8Pi%o)nLh,ɲItJo8C>D N)6&E\*L}. mȖM׶x8wxm=`l "-p n-EeG 6Pn(Ɏ| "y%pF% V fhʨkm9jviXot@R@pw;wgҋvPPA+'+RDV'. ;0X=\#ėk}]/>bS]|<~mLX‘*&!,wzYlk\xb> _ JpmCG'xb0ppC>NK 8ZEh+/F`8lHtT)'$Nd=w줟0뜮 pL," &QOi, 9'JH#Pd\k<&0*4 @#4&etuCy^bःt PTVG7VF 4v0n9h^Qz8 6EhE^jPK܊\h3}J >#.:|͙ Q_s|KﯦWu \ZHm0)̣)i=F[Ɩ<u*#eP#MwX0mE?_i=VZ `vJ&˖X<4#RK/npDC)j|rV P,<ԥzIT#"6i3Qp]4b#d' D{ 8؉y=15x庍\٫ؑNCiNGRNw:6D|NrQQ*yͳBă^#5cԯ, :2,6uw"Zq&,cF#r&ob0~- Viblw-=&&~@!. _D7bXczeHwjL|]j"q:mu|ٷW:KҤ;:ۿ#ؽL*߹mLvvO 8QPҚbȫ!C1ba͍&`xc? />t,C :yá9py2r"I 0zh!*P 6gM$A jPAKE !l&G!z)ܬ11ʍ"fDQɜ(; FC7ݬtR RA3"Tjy+G~ahCpG;p?8`;L?MڻowZxRк?~5:# -H3 z)HSHC/}P)XOe3kLUD?a@e,KWk4:j=<@RFypNzsdoQAh`^@ c5SEJ&Tby\`h:后踣lh(]ki14@GoE2P$ +)"EҙCA4C%m IjTkJ2fATYM3!`N;RC@T'%eQ`-TRM?^XVDXd4z>G_uҙ7vXb cB3DbzgeP%kZ.K50n4lAH 1\mtO3~]|5Ab{ŷN ] x1 x9A Hh}}"}I#́v9BQi*bOl+<ćڸꑇ_AF_89M?cY$I?bi &d Vک??`0x}jIFJo_[p[hL6o*l@Ci -PG./E}D^]$f%E)QVd␙HKZ=P-(?ŷ|j\ HWWRucqb=h1K^9 R9\0d^| 5+T4hNL4TxXj2Yg" mN6A#t33O5Y32h>“M!+ R=c3 lp6i-niv5:MhUt8֔Apc?!-E{rKjT)(q @ \5$ .JR^hah0[# IKyKtIHE:[<%Qx#k2!&^hIs ( 0y=O˜-5 y jS"e)R7R6ɡ >D ɈXӈ "+FZcrZ MqHQqSfЦIq%©j ,rɇ¤m$?*bphF5B$],%jJa$5Yo`) q;Iʖ%nCcmt jkl 9=P{*49`$636fHwvINmd[ؖ^$GmkPg=G +:<8 !dKBFJ,+@גgNb:kΆEvOa XS \1RE5/Ts4 F{GYZU}{AbYX6e,xM~pxVnHWJغֆk$jZdl(GiUdD%!< PP,|F`k^?!UA`j(fHjdYh\;X΋2k`#!L @Z"6LGVUv13$v[%D `.wˢ#JdpE*s12xFarr`r#*R/ kUs02 ufV+r,7,ʂd' =uA8SAdBRdOV @V^9pA[e_mm01Qq6m$,Z+uɂW@82$}rЇ_b)eh!K\#&%RJ`o~Fuiy4zd*vJ(PQ"'jtd3J4ۑ0e`~_8P%l-M7O OfCpCD?*>+)b'ar)'J?-Wrs@05\!uV4(coA9A&dELptB(.S( Ke/ CU[UbCC"0Pz"! A|vE!tAR5{E 3)(0waE+FK >Wa8!J1 x1U::ɨn|S<$xz:<|<)ʩ.b#<2٩rDH.{e!UjKrLa4k4'1nW`$&XXpXp\HOJ`v%Bb)'aIOsM:UeUX9ʣ"* RX&HQ?$yb6s{u? b>g+-t^pELADV#Tre+BOh! P~}֣vK@0M5+qs!i5L1h3%hV=mjÖ!!_ƅ\8!"Ń[,|xNk;Lsbo<'3'j\aH_(0i~#:9haw*ς,k&<9~l4U{7rJ%p?DɞU4;T0Rã2arb*"nV/aw*S >). E@Tv݀;D;Q?z臓8$9?}qRu?mK+5Y4f9S.*tQWԍEPt"KTYuBjunܠt]oBPAhb&@%75C x≇DNR G$D-ƑX\1E c9( H lHd5¸K(Z& ȥʛ 6M]lE2MeaOeTRe !"#&ɤD飖6 K,:-ti "B'h)1&U ,TW`60O1M/l l0 ;N7~{7-w8,a3"Vx¬ &xL n`$K*V:u67ێ;gsV@K6=g{ fLeTpt&= -4 X&i r'Q|rEe1F S vz4ǂbO)չ#I\rI HK^X"!(<+C6MʘcɣJP4Tnz'U # :'1]2Mi SlwK=5ՅoѝPk Ӓ0W2 0>+B1փ//>mݶ[ s9 j9݄sνž]lFZȻ.,ӾU5[cr FLi #47 W7-gIθ$ &;0S!A ^V H, #5a< Xhl4TalQrRFjT[IÛn0 mU!cs(J#HaLTCG<>)ClB 7'6GsD9 #8 YJ[&UILh$)S`NP)ȕbTNxܫ) TJ#AEJ\zLΪbCZ>$:(L#09Xa',ջvrgJ"a(E@ )4q&O6[(MF ł" C6e`NoCL嗿/m  &SINσ e)O+]?e0x'Cʉ&"hmVrLHqdI$ZfPRҒ[]V@sH0#oۛD8`GꚊDۀ%&Ǹ:r?vJvȍVYƒNTJ:Į%̜K9*u9MH;F`*U3Qs/^9C&=i7l7 qWUjj! QxAܩfK=Q80ɽi/"ueҊƙEvQ ZTAX "ic"4iKҎn\T'`T%iˆaZ$y IU(@hYVװqQ(7L%3r"o,&"Wi&d}Sǿ"9Y6ЗwL}N(f@P6iNfP% RBc|%R(%v5rSD%0%=ib~9T"nO@hF@YUP3kfIyf@laS,|I5D {M\aTy ~JicRZ$ C\VIMj_oe(alEG1}7GN!  nnN,5oI2,EgU5QXuƂn!RJA.(@!qqf5:)4ƞcմE)QjusJPճs$uEB*e[k6O+49*[dtP7p >WA.[s0{QIlS( # rC(Y=y z'ӃS )1 D8k1Ҹ1g),Z%?ƎYa-ۛ@Dzb:8r=24G7@ @y|D)#Ɗ ೠ0 AI<'kC=H kCJ>ā[ĥhKksLlۗS7S,mkQYq7u;tL}IYQ=?/"A SK?{Hq=ԿR15G\3{aBACЫǼy dB@3֘Gj |>#HT@LzeR$YEH B9Ș,t+%;| I I#He 5L"9D$]؁͒%M CJ8:U'lB\)CpVPO˱.T8b%\ Zh";sy 8L8h!ÊpwrE)y`Os#́zE#Œ-Xvkss7K,R!=>Q/@!JCLJKäY9HXSќHʬJ ʔ,*ٹ˪=9n4,ӁV,JC# %N} T tN:KTeQ\F4a@uT! -AIЗ&  Ԭ^HVIӈY9j+jĂZ4]Pjɇ@<ѐJI7ETOKئmW""鹁!b=u'w"nI WD6DXĶ>2E73}XiZv{ٕ{˥` Q $E;>__6t&45 #%pF5M.\Z"e}"MAx]AIќZTC0O2|4[[>24AQG98۷M&WRS:8 IIҘƝpH,2@%NZSIQ5Vٴ5mƇ袭BJpBZ c=ת-k*҈1 ޥ#Lqb86NG b?;8HN&~W>tX̢o7ȨA៾(dGߓ2udk]ZjƑ2V&l$ϊMr.ptցOL;,N62+=Hڭ@< QmQXk o9!(R*=R.l|0eVh:[*?.= Yfg&EfŗJ Smyޞ.z]T2%Ӝ@ԔxN[Ry]حW)Gt?E޴5$,aB΢P#: 4CIGb֝bшҀѐ(̲̂^[n+J[Γ4Yb݁h9APjЪiTI4ϲ|c7IVO|g4B1 1:-٫*mƙy~QE<= Rg70e5P("o #_l+EsXb 0l"O)lt bJ*s(2o߉Wʘ9@O !|bp!ÅO&|Bz,,G i0QOeKpę(ms>7cv4l99?84'j>?κtےfk;M,,Z;湒ey֬L!`?Q+`l HW8F,9@$-(V!@&S胋@1DAC7.$P><$Le%>\N$KF8`uSS)P[ }l.r-GDH@Y' HhLDK'aZs˵__e%USt2Uj-UWQyU]^VX]u k]ZBU-` clb $B@Ye]1ufii8Ok@PK-]y5]4 ?5!xPMͱA t.e{nJ½)컛fÕOqōqq!Hy豆KQeR?܀&3n\:EG!O4H)8?TL0A&T%xv_keIfk6$eɢ/zfRft-vnW`mkK ./Mt]|C~KE*ٚJ _zZ5=ugS~+VdZuW\ǚUyu?B :N.e}-g }iǚt.]ݙD%2ڎŝk4R~D bߙf e 3>xGlB¢3P$' Nd! H @x g6+}B)њQkӪh؈jUʐ&1J* %E?򢲑 i:S%2Kz\҈Gь`iWуKCǿx{ Cp!)~Vb:թ.&1LpN(ə%} $xeZWEeO9⪨]f2]k \`E9J&>njYkbʰ31H0ud\.X]y"mG@[ w#o9XPa!s`,4 |;w&BN6@H 0E(1C6`@4EO)BR*CJ(!aFU"SH%QoLE9 )ƥ/Itd4&)JfA RM(㸳jzq +ӗ;9|( ^AHuɜ%O)W ^حX%)}\V"9Xq,frZeUf1fb&ĻE/oP) :')O/+/y '>u@ r[Av0HB9GIG:&^è?bM U.$L16> Ot3 hg)OS BkP!9"T-q21I32҉֣UnR&ko4Jo[V {rdW3rٛ\c˰2W G/B(T.Pb͵Y@Q.QO}R)sX-/Vi%TZ?)87h˧<Ԫ/;`gMŌV't5oCc&UhZ(] <pPd2b_|]t(F(h\0$ 3iqKCD#`-x4 _wGD/\ fnf Br6iAY1>vjUMc3W-Dd]~Wu:nsmBP7{γ$2kACϤlrV: ui(Fd.OSISׅYKGe@X UQ;؏ȈlQњpՠx(IXt,Đ їeC٘E C` &D^M$Y!\Fa\؉]˰IKnAlLK~S kdQbHRqSԒV]4ER@RjUZAӳܚty @椃ꕌjC0="kOWyNyt'NLm?\BТ{!^? @,b#B:P~?.웿B4dC؂1BhQCP#*@wp#Mq\MzI@z\ҴD0Շ8`#>@PMPPE?@ZH\ug@$^IG.A] Ad|Ι=Fb}Ơa DaQ zZ9!C}8~J/UMl8E[T dE_`aAhWo`Vk2 F4FcXSc cU[tEGex O$6\vE^n'^P,0B1?D`IĽ[%…EK6j?jD+XC5-9\mR8#*+ тL,"KX\8@ќѤʦxp 5-7N@o&ޮʘD0BI\A> hdBg6TcU]ѐUMѝxnn>r.D+H&k`~O#r.j(a8v̉}Gb$( |aԒZX]ᅩ J+.6 o:JbrJKFЄjn+05k<  IIImx-C " B&C3&@C@0Ii2L+YdJA(_ Bc7#Ga1MH|qP8ХC\X9r@p?ߣALT}ѪuY͛ J٘>?eOvE`\`sWǐ~- д@BAtdJ4 + ,6-[,qB1 Xx-A)g b ANHs(HoҐA<-1ucQ[ >Ss@ WX5.M U pTIF2F@ȵ5]n$c%`6c[`Cv{dG#'65va*f[dCh,{(7ҫW,TRʆ$ mdaI)S~5#, 3oŦZڤ 7NjV⨒:ƚdbȖfHITD6MlIDC7AA,l3@@4,Dt?,~bi{4??tJ;t@4J-xt!L^m MX@|lg+iHUu~LgT u.M \ـA \9ywӵ([˷n[sd/v`a+6/6`c'6<ϛO97B.*W]Ʈ6r$jzY ^(alAxIąT76V",6Yz֯:b :\0ax$KOq\ևg-iKhu 1LP;;Kftwt@4Mod-@c. wK߹%Ux7m+@W1p]kX$T OxKJeQW@nW#vI(y4xaB/D/@+Rb^8bhc/YAD#I^\I ? (x`irH#sDQdϓKy2'ΨK jA 6AXc\J f ł[kq@ .X}{.X ppXN,9,gφL6 ʊ@WÞkdj5¤讐5ZSɓuB{8y =~_%$\/c+=O+?n /G~r0GE:肀@ FBb %fI'EZ<`E((P1 *94)L> (rZҀO#c 9 ((K0sI0('Vt7(f jJ*Qr YO*t~Vzj,+.ZzfK/h2_s+y`ꔍ]ą+Jh/yp7! prӾ `t  26e ޡ)`'ftwTRҪr'V~q6g.Nt{ֱ闺偵[j@@2!Xabl7_!̈́{S#  bF WlHcCh b)M\`R'iLa8+bXQh5TXqwK(ƵfU\@5Y,jODթBjV a!Yil@ CmjSZ(W8C)XDl@ @G5R*M黽g9$PKsV]jxִ[B BP0IE9'4ds"vC^ad|6.ILv06ta#uMٍ,H񈩔j{|_qF,jKᶀ} __ <>}v*Q fE3^@*c\_hjNF0K`>cALyrbLBE(" a'.sXD8{ W%bX:3 C  4.0es,רqbL|;hMSӆ|$8 ;ְBu,6jWI@5丿~*3r||ZF,bg2%Dsk') t}:`J>YMRx/ odS*B^4z*d%<,̢}B<.,({:-".$.[&Hb04cʢJlzH`? @ö(ޥ2%FRdDT6n[ǣp-E1C1 c1"10 NH\jCH B. pn؎@fA̮ iBa fF@ ˰.!ȰȒ-0$.!ZAhC̊@ f1j F- j!BGg23JG< 8(M4) "~ Ao`FjϲrN z(B"4'O%bE"hbs#`'%v ^"RTݨq eHS,(p(;ǏTDEoq\=|3xm)*)bT@ ^ .-< A26il)|Z B| LW,l] ?d F5H6" ].$+2ŊR.+ N|r,ǐ .0N9!`F* Ce4KZ-˒찴 0˰,fADȐeB:$ iqdj2B&h `B 33ӨFþc$ 鱠IF=X o6#jV-TOK0dU[ n-NV "3nB#tk|%$E B*oRM < Tس=-!0=sɯSUrB?]l\,,K_!-r3+b< |l løHCdL.$ @86\*lQdnc`Rblj990p<4(4)T*? t(AjA}-- KtK˲,HL-rBL̊/ݴkNY&X$qTVqlr @QʬF@j!lPI `=i=f7]$Kv@SXM7̈́UW;Xy08G!DwsOOF"&Ku/ExITjSmSL-ЯR57y<_uiySN>J6Jrn9"B_/}`)p0l`ɼ2&!$?4g " I=dTh@dFZz d2IMTMi.䢤BxfNCNhJD֒j,niɲ sZAK6LpXB2- OOURe /lF @H  `Bn e=c PcIN6t5JV-VZ(@ UQrr &`S9y5 6¸XoQMۦo\% E(u%Y'‘Ut3WyK:^wxrMTry|יX,RĪEc-$ȀS0$()1J&- 2TE'B%ƣ@ mg gtFgrFМEoFQd8 |"#}uq/c䂤S%& 4ԌeTit }XvL4Kw8iL2˂2@0SgVTP 2㊭Qj`$ %9LL63FcJZq5 H4: JTcAK @6UoJh/K@K.Ɠ*YtbtP -&u;uVb YA<&!"\Ǖ\mwNۺ;˱VDcŚԶ([7j8JD&a# P$~ժ2Dd?D-TDag ʪuD@ԇ A̻>F*a Xބ/60|0PYHALdAf .g!i T6MM:K6 -fDẌ́&`Es@Оj El1`  ̪*oo :ToӄH)r$KnXp`uIL@$lrpOP8Ƿ$p shb^W^`O%'KtqH@eR[ _yy]1yQ_ϭϑw>V\Řc(i]MP/'彚y;! HdZD.O8 QEs !9$v+s`h@n L6!Vefͻ>$g`  Һ8N"j8b 3Eb0@XN=l t e BáÁ B "S&JťFS(H隣xp\PǸ} f_~orgJPJtqUY5i ]նz`3JppBiڲo`-%;`wt<٦9a$;c)&^Qw^R m<I~\]\S[݌G\V>{½UN=}DjjhD~CB+@]F3hn+DùdBvr`MKNDvfAevFvoqF!-8+ly5`0&! B̐!?8L2L v(Ct bAʺS ($?LaAp!0ÿ8 x,qă4+A*O @nYg5 | 4{9Q=Eu OԢX``Ke=H` =K6.Z/lziw/~aj@ˋE7ZV,g A@a?JNC_g]_0w۶1ݠkMtj(DM}aQ˽DE.|IӇjZ>A]FeZ @9 PLA A ( !@sI+rP(2]b"HA#t&P4UfBTA".|BH gXԜcJp|^|gȗnD֩A!AtA@bT@  AA ` H r:B b *&FiLA[RQR&pUXф,M]-?R7Au]DW@WV[U\gɥZ뢕.ZnK/`YuX]njahX)lbA^YWωpkvr#2nrFro̙u53ڍ&w'w 4 "$tzrI 9b$? zH6u + ضqvGn(P} 'Yj)x"B.'=}PH?W^YetΕ|b>9i:X >j{w J_ɨȧ.#y .$mAeQF 9@b9*@#^ -:M ,h(2 NB'JVh+Y*w1y$î%]'l_bBŜf`^Y#1~ax9 e0p1Xi7F kD,9Aˈ7([Nz4:D 0g=CJDMjO|sq!,:vm@zLЂ @!v!HO!DtMZH}&58`E>I G$9=J,J%uYcW&2Mn4zRDB6ϙҺijEO~R$@ŪQ ` X'{^Huj@<p4iNA84P@ ȁsO2,fCAk-%"RoO+)g=B'ppsuQpQx wq΢q$@q(aa'v݁r=/%T7fT#sUP%RUts  7UPUQuU1fUT/NECE4Q3a44bg9vq4H4A4 0\cgX p%w3'o\᥆c&j R^aL!;臉!vl|"s(rIy7,5,Y"W8j3Y7lI$) 2G7L|3m aRP9P`a#'V4Bw:z<ڕv) L)6=6LLʘ|=;!> =bOo1P=9*Ή`PFL`ry\ WP8b9 U\#XcO5hD&ctzT7e07)՝;zOaA%P%d")@wSoz jK 0~“ԴP+ gL2#zVg{'4'`B> )nC]upae:>VP"S{ʬ;)v;cCq7e8>I2&TɺWKԒDfF=٢<' n9O2r 񴘏8 598?d? % ;z rJϣIlE(:h"xor#{8(,7GR跖x聾I,$.G #!k͐cNA@6TqciuR\k[ߋ+wnw KLVnG|~8;Է40)nߞN5 ^.h\ie.ǰp-.Ϲ̏Rx+^r#: O#FInve#x (0@ܷ/a=g#.h8Ă<4 +PB>D P  -E@]Q_@`y~^#DI—08G J!ĒD!TS )_|QA*$=#hO" |pP@4H J:hIB:da) B H$ *b ,>&VhXi !:)"z高dLzcYc*bKcmMlR \:4rk\0;<BS@2r `8糀A x͵ 6`sX0( .!c9c4geV.:Î:mmcL=~o?@ tC2EpCZ /p% Q&ôZ1ŹnZ[Lyq,rn#}H \ɾ 5߄RL+E K tT||eKӼG:aH"3WBga.R7Rb­!oAMrCU6mXC1t5a&.L8 {cӘaa Vf3;UDK:4`i=G}s,M?J̀ğ.ڂ$ HiZ(B2"ǂΏaa FSvs @R#9JH48NHd$ &#mIO:% W"T#Ux"( Bs6p xCO iHC"! c EbK{;Iz{ 9pΰ{BJ"\WsS@YɁK7+04 Wv F[A`F@4r|ih&#o662f1-m).t 8)%ph(/!nq GCѠ;C3 )AKn @:͇>30@fk D5G9 `k,4=z$ y$=!md淽yI K'9M$fJJY[hǴ$&Qr=ӕ0i1r6etM?N ʐL5$m:B t(PlKBqFN4!8$I1!{߬hҊ茈Lj'D\"&~Uʪ *Y8X$_ .,p+X %,- ͼvAX_V8 f4ۄOӓay!R`LCg4aFVS- X.]c2rg!AfY  #N'óyq2H2 2hT45[y\Ylwlnm!"B@Di$#O!q2J-iWF)P+Ꮄ%ur@B7V~ֵla;.P%(2H"TPLj?(ܘʅ6Yw<"BېE_%EGJ(7ٕ@ܷAX Pb9:iE٢PުVԲq.˃9.7]!L vkE@6a|`#E?`[+()P xJ0sj 9(kq2 *֣ q911#֨;#34p=: Y٣sA;rs%J뤽;%WʬL*<%i4I Q;,YZ k8})E ˸#$KclbYp4y)z2ظ9zG:{ "' aAI(hQ#Y> B[W8C;ü;H9,RɈ/%4̒A%I;%¬,9<Б6,TK59d5\“Г@? Ď5_c6a *"1!d` N9KNpF  eMqȧ~ #о'qKqpƙ1Fm38 S Ġ0P)ˌ (ÿ)z뮋(Hi xM j!y!㠬)$J~L$iKjKiN33ָ:1B3*UkU[W[5-ۺ=:? 4xI;Ң4Hӻ;0,C$$-Ё!Sۛq8J<8ʧD8 6^5DDI&%JIDD6acZ)!#O8/dSڕӞ|/#Hc jR| BI@ !g 0}7ҰFS`M̊Rx!ѡ2 y|~ tv3d.($TE A3BUΈ5aZOHU;,I8ۺ8I$-Ԭ;HbBr:R{Q C)y-Zzl<%^"kʂ#Y%_"cۻI.Y.@NJH@]Nэ@DOL_[ {Zz(NvE|aSb8Wn0\G8)0}b)(  s8ɾ8˾^)̍mn6) ldC! `8 GLN5[{᳍T f`[4۵3+O,94xPxCAYD⶛bILZHK}9yț< V֠(jCW 5&çvQ_VİVѭ{HYMTצvdƾ mjV n|zm:̆| rxR7bN>Xc dPh. lʮƌU9= y*2 _`fn2ԍeԌԹHF}X c ON$+n}<N䨶At5ry $Vt((i Cv-iu3&iiuω4 uDv;aOց=% \q]pD!$.R~EjDSG} O0Pf3k`^8 8wT_*ebl9 [|*m zZLN yfg&@`)=& (fDeZMh (CAhx ŷ@x>u0Sz@]H "vRXy'G굔u0R@ H?9X#wc 9H$A+Ġ]tP!Ĉ}4c% QrHQ!q> 6&E6$y6?p;@2Qd0gj j`I`i#: d1ЄFhFYC6HKzd$5Hnc&IR ɕ\H+D$ d%/)II@8! M˓~G"I0PB$9LJwʚ/RKY؁JJR5iIe(VIfe .U]f`]o.:3Ia+G5d=J$,sP2Vf`@Ew`\ڙ4L AN_pZ2 )'AP0TɄ%n<̉dKIʌ#& O["h>+tS h1b 6)hI #*#-YE,Nq?-c2jӉc%FմF3hH@  }"8A KEt$I\ЧpRN"'4$&FIIT娚 `6啊J%DKxҼ8-caؒpe2@M,0Iz*P(WcpL*r69۝;7Qğk\8b `W: & fqDiԩ ehD IjRnfUX*"@0|0vD-:N"<@=[7/bժƊhlfcձH8Z[k$Nme9+E KX@W1o E#X5r .'̽X"% d%{J,;YKJ&ѕ,GK[J1Zj *"cR2cej PhY KR1UіfF ;N}o-@8s ϝz?k=HVt={(ssձ%XGX9 !"(H0{z kLX r"/↖ct`4>"=Q:.ڼ$_Gb@jtUlØ'\d\f7;yX fK66OHb2?ŹRp%3zZ|:mgMҊvtLP*{4mY[Ezkެ7,^"amUTd4>LЀC0~εĕ]FǾ|'v 6,8; ϖaE#ls佯w$n+e[IJ !iQCa~s4vw.v֟,6t)0 51DEh?_Ǫg1C 7bc8#1DɓՓyNE m XuHLNIvICRˡ$H`(  MȄC@ *MTN4qaʬT ؁/7!:z8[!H J8vma_Eg, 7iEcFLBTYueue%;m^=ŗaKd1y) ]G5Lthba|G$#Vd_˼IHǚ@(6Ƚ퐇 dȇHQ}GL˜]Nu嘍 1\'-(AHMP!]ɕ1^]L Y v@$DYbcEHcI'-(1e *D'YV<+D ޝp]p-WEpD7S,ݖkEODtg qq@fcIjgem\Z2}maEwmEjGzV yJ+Sڭݒaqy h`emwޡQww!wyY%h|qn9Vir8(M~BԿ͔JDbi)*h'yd_R}e\h"SxXщQVQ0)}xjՈ)9[=YcΙXLiZ+ BHs_1Yi&)'4?pjmLp>g\] 2-s-Eԫ*ݽEGnFu^WC$*E$* (Ɋ. ׮݊ &%aEsXR.z:q"bqRhyW~>TÄb{khJIS$IX\b%eg:wz'ʌB^Tt)^}MĶ_tMf[2u ,)|o ͅ)ţ[1YҨ$qQ䄠F5 ~%KnpҵfX@MAn^-Ҧ-Sz9wlU]L x:Ub,/)STX_udsneN^e鮡S2!F肮CaEW.EbemfTQCC}iҴHt>mIRC}ћy yD)e\ƶM4m!Љ͍jLAD4Ws5m ]gS9E3wNJQ9O6^Qv1u@$oql[/d1 F.E62ewWZ7u#kHKf{".[uJ$9t@:!9w1b E&*o)M\e4фnE8~MY3N񑓸 N扔T%ƵZ_Z_9Fm|ʹКeBhbliH/0.0cKcc+ R3EX"OuY&vjE$[1ӵZ΃ЗAG_M'w2\Z<ķu%[T܈w܌B+t44{ ;:H🀓:߹n?dr~xf [Ѳ;β.D<۶awA~)uA> yN4e;yf[1sΖǨW˗t ȋ|k9 N7 zsav{`! &O9N̈́SqH֐D:ҪL S `Dm!hVn# `߃} <"DQ_1cfdbdTf/ F]p!il?];͂4s:Tᇌga!CG}tXx0޻B—! f<`c!8ac?φ @āLB0"2 Col 0. 6D0(U(7,j("[lj\XlB /2!dr:h(*2J&?**L -Ԓ&Z ɞ6)|*IȂ " J5hP2Rh"h3D(0)!Gwzͅ".j+Fk=#mFlKKD Jʀ}-b=lbي5YB[v7t-Ž6َ8j[.3nێ/S]1ˆ} lh2/Ā\A q(` $PB<İ WD@EfDz,*alHE ȑy9z\ff2牊f 1[h+2MԨס+Y򡠸3!6ꨃt͘ړI>2BI#IE"jF.@$<@p÷ k,(KKrZ54oSe{,;L_Ycu/"3iǣ{V}e 5 [݂V[چÍm{8٬^Wu/N^n xwPV XD?| }^@P?GF926T3HIH2ZĿGAI ) =E,'. HHzG5PkiRNɰ HI"D-0AA씑f$PJZZAX’E4e+X\X•BJ"g 6%9J0ltKX>:4`k#Ø\D"P3(s`Мfc"--hq A% JM+rKe4{A2$ܙ̜}h OFfP$ej7"d$A {pH [AwĨ)qٚ@E6P*TABLP]IDMc@Řp.HeɊVAҢ!I<bw u1$4!qux͹s.r9Ѓ)s= ^ι%ϙe#1 }؃ Mѯdlj&Y)>,yv # GHC!}Yi~\v6$md)Q$$yN:\m! a2Dm2!ZZ=͍Rq&D[[|@!SH΄SCq $UTkI$U ]`f`WT:3*U1`hI25"^a(ۤ,ƍmZ|69A^MW,GfiZ!s f)} AtLndY6 Y'0ٛ ҆dee:r"EQE-"6v0H 5Ic`֌ brM#HհEdlDkބ7h&C؉IY4HĽUfp i8FIZX4F4KQ}Q-UV hjž̋ wRX2Ai^~0!&X׷u[WlI\91Xn:,, ?E1M2C?9S8ԗ!*6kbD B}tgL.@Qd1E9ĂNH7 84d r Hlя"+tkM)јR*QDeۣİH! I_uMoEt.}KlCFƐ  Ol"\ ^B-FUkVjZF7tY[bԆnrJyo qeykZ_X c@t2/2dZfbi<ܟSVBʽ*@j"((tGsBpDJN (N.ljd#fhNjenij# +E+p(c3v !(M؊$/H.s0Gh"cp/ )08u38hd -D(Yv8=czv62=YF@!E%,aLhcLxi㠋'dbFDf|RF,fKH(,\Μ\ Z.\DZg^fl9c>I‚&ȌBb)‡K0Ԕh^-՘ .qp0QDO"XdEiZHBܢ%m2T3(rZ3n>Ȫ&yc8vP0.tg8,xN7dC#[pN Ǯ]#@?$F% \=B.FoP,VH- gE1"Ho0ONDcjN ̯ϲRLKnnc BH\gHRqϸf`+J N&o>l ZD Tm+*𖌂l"&,$boE<΢2Tp3D(Fhpؔ-tD26 *#2rFe I|P McRX vvLxPϒ`X[XîFb X)\,%% 0XO"."r!#0TB'fEjf>>&'nȬcF.aN@z?cF0:.U13:>I܉C/2>2K>m@ FXn(>0jRB&q3ƿTP4%~MM --F.h@!TS1VŎ 6d27o6J2ne- Yҫ0\yjS9٪*@2:Gn]^@%^BD B|fE !1iӘ}N$d_nn0 <",_+e$LɝR1$1;Jd ŃRh%H+r I>jd.EEhSm""jhmINFjLkS~3-6M2MVbTRS5H7tI%5i.u 2^hrB*#&X(Mt b$2|7"C7Rv ͥ\vz-P[Q3E;i*fqS^Pd(T%}%=4<$H2CSX\r5i@*EfF$J>DF?ud`Q}BnFOkm03J0E8Pj@{NN$ 'nQ)XlB/-4_q!tQt4aW`KJMh9#p6?2}MYW.2vccY"ZVO9yOcw9YGz%dt)|G/_֧g!T%g>1``0F`$|R> )b)(FDbAEjf:D@@Qid'{f =ж-RaQ)8Ii.VVҫN'p"Ә?'bOI↳9r%.4!tJptTIJi.Yi uuzE&цEXX!-X%ܞ%pdEƾ[J ydy T #ٞ1_e2VĐ!Ё.$"fԩ|:.#X.a^:jMfhFbF@Q4XIR(ZfI&Hh"4}CIJXndNZ~g0wZ# L]=@$.BZ>\L AnXA:rA_c~FYW[ tI6ȩksR9} iԏZ%у9xH@\p;?7}lY4v3P *N,_f;OkÆfr㊴\@  ( ZvjŴV+ǎn ޿)<.6fEr zHڦ$xXc/{ _`0A@c !4E#@P d# $ $bYT"#fADC!TERdRM#64SJ=%J;NCQQSiTWni!QyyU:ue@`UPcx&Ȅ$P^ɕE@9@x W|b!Y\YeAf)hy)iYjZjvrVe~NF[Hyto*hge'u!XGqlБ7l@]@J+|A&_ pI7&C:x]?xB袈b!#(nXJТB4[UdFA\ 8C D 1)IScEӘd%Q>Q`eTi^UMU$Y0]FgDh&gkU_y |Cvfld*ghfipRZ@ Ŋ47yMQh*@zeќYoG]לRmO>m_ς.]F_| x?9(5G ']"qBI "A-"op$|C30 όk,(Tw$.rP;DS4t/WAS\FUf2i啫DLdZV&LhAFsdGlHǞ,9 Lh"l]L$*)'/;!gT3J-rfBŒ(_HL" 6oSp,gyvD<+x5!s"sm]: ;kPcu)?sWZw<, 3F44oy֋*b1hd0ҏV>"Jw2IC+r58kSRp'W= ϝeF4:Jcg/Ofy]kРi(Ph(: ŝM-*TB' 'r2M!躌E@P4~`KY?)-P9T0ڎ2$Ns4tX#?_j9k ț N(_Džb} Ce#'9!(PB5{Xa2YPH* ($$%3P\v֞Я)L˸Ohc1 І>6v N:~tVBͲ0d_B"Fa;N," 6pm n^lE&:_,i%RJ"&D, NS/U YHH\ηɌAY܈-_1 Jb5Wo둋Y0)c8Vk)gRSoexY n yL3HdRDʭMGPr jP)hJw=^pdRYT7𭐬ǯ@Ra6+ͷQ_IQAsm {:[UYҟڔ0Sh" s9c2&]͞Kcp>۽63Ru FǛf/|5g:ә+Îxjg2'|%͋>Y|9Ik^zً"# 0)=ӵ*"Dڿ0CAT>%IV`pf`k,cgv.QV}|l(9aTwKT3 h@slNmӑG`[T'|yMCŀ{|S~8GW|g#G/T#BBHF;5"A\7:V|C&'%9gi'ADAgq\'Uƒ7p&xre94}s2]T:ִx@f|D ry!&A#SE~Gd!TtS!AUF  \Uh'|-m'q%Kބ37mk"wzwt-vSz99xx^=QgO噂M}:ǘW/dљR!Dq8M"2vv]D7P#m˶VTK0w/ JAV&&WHևT0h%7 9*ӡ( i.|tiٙG zəER<~=W[CѣTgBqZ-JM49,89C֥X]5dYjqs^CA:c~m+;G;ӄs^[^>ձ\:16a45VU$ZY^U!y\ wawmʠM#m/pwj Zɯ*X$W%oY's5]MңȊf񺯻yD~z$ҚfA]pxP&8y{sx_ ¼8#W}c$h:h;B/2|$gxQ KvYř0*ۺ2BA)C+!4{IV1#1$Jl'KPVrnju!V &V PK/MN 9۷k0xyVcYU`kcRQg4*jOFL S+I x5iJnm&Z#BdJNUV-+*cẽLW.gA?lᖫW\13!\;"~k/9P,D0K;R{Vu/ArH#%$A>?RvBBU;+3KxwNQȈu9Ȇl[mҾgaY(ӱɝdDnY$gƈƊMxח\ C5QʼAeyODaÎ?64(YLY"^^"nqKkмe>[4췦faH#~47.Xq$591W8!k3͠P :( FK#m(mz/Oo!!o%@+/.34o579$;<C/EOGo#I2oOQ/SOUoWY[]_a/cOeogikmoq/sOuowy{}/Oo/Oo/Ooo pPP  d!nQdO _Odп)P?R?`VqO_$XA .dC%NXEׁXCxفSo^A g:dgP潂27I)W lD=uz"{dG&¤= P͚ ,F5{v*S@8nQ *?>%P/ْ6EL߁2N\e̙5o.N'>5IVz-εm6=5a[%s0UI>0-]y2m&Ux͉G[X^LAR j/9SpAtGt2:#y>7d ɆbO!q8r :D\G 1 sq>+hSҮ:, `$: ÃԣrY *Ʉ"!4ʜؔGx"@LB>O@+"̄LJ#Jr ` $jKS2 \+R)/QL[5T2L1U&T+O-&ܠؤ@HP&T PFTZXQfT(A!,3 5%,K:IgIR'xRU&3XAJ$0G5AfEH05>1;9/;kNW7 ^CJT9CC18H!VU& TUwU]A +Ȯ`FOׇXyQN<*7C3>͹o=ڷeZ! ʹpNUǗx⸘hX,SHd?ӫ9 pLMɝۇdV>OX͒huI|dfFLf̪YUztLQgbXebt[uIH\=CuPT鼣׹҃bRNsb][vW\c]kLOAj`=mFH]aQ6;mJ/kC^Vϒi۔cޝC'$S~YT'|^{ErarIN7Dgvc񸍅XY箅x]֤YQxUbbl]a+ŭ΢ICvo\b>@ªεuUӈjQhh3 {r^mVZ0$}G$N.'bEhzA.WGb^pیlzdaaY<ڜu٪IՖk­qR[A-6j`::^m`iUȧU42ʊÁkάM7`NTXkR6Tn\LBq\o<.ױ_G2Rћy˅mxr@|h{au^k7oѩOOO치߶‹aaasssIKkkkCCC-WVzp?Aƅń *\ȰÇ#JHŋ3jȱǏ CIɍ\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳh.P;ݻx˷qC,Èڳb>MD!EQUŃ'EPT0nOE|N( 3NqR4zN5΅9w[=[<5P8{ݢ l%w ESݓwz-evo >!>PRֈ*=u c>*݈礗n騧ꬷ.n/o'7G/Wo'&^Y?/Po觯߾O?PO?.`aH|`81 BEXG~ G#xτ(L W0 ڰG j{wa2Dha gPHyP8A ă]t_ apNČL^ 6)xF6 (@=>OPJ MCA$O`_@4 2I҅ 79qTx}&V9/ҕa|ŌH.s]"ƕ\te*TҔHASO\˗#šؼ' 02(D8HE;dONRf<@О۬ Mr\w:~B4b/ؔ(Ԣ= F(z4d$(f4{2M"gOAre@#t !!>Kilƴd*"U%+9 .zՍ1Aƪ84(եZS˳FSQ9ڵ13 G4ә*%_T;xㅇ'mZS2'LJɹBt #Yt GJhT)JQ8YLbscKU s=b?J|o*X˺е:ԭDk\ц5?QTPЮHG*V[2(-=92Ť<=9zDIe}D+nCnOӀ3GA\@)8aY?·n-q}k S"vb'O }qJΖ$2~Ql=pJtޔfAAp|{6zcHOYQY>>#v~PNy7PoPP \.%(nqJPvSm@d4"E5xT\|Zӆ} ^RHyC 'y/c-22a^2{*@o,m]^72i%[q{NٟH?bSn5|ήBdw[}@)?Jh0`@` 1.F F}XjDG8MEkp|D|ygS 6Hr)y>y(ǁ=qXHHuz#ek4Ye'Xz@AY<yWT7IBGmv6etmW>W|Kdהk[RGx[UPgLn&K%jhnd'oV~~av;QiGi(7aWpic;4L zJdEjZȷ^w|4|0x<{yeY/h_({H8'5H4evDC;{7|WJTtU"u[zpYu uyc_PvaVvQ!RqApv7VWQwZ'}7xjXB1Mq/tMߓKxX1NC%CgCCXy>t)67zG$4.GrHDNh>Zvzpl1)fFg34VCgXhE (aDOsd!ԧpc|WcyՅQnhj~Ab^KD!piQc&}XH@Yd)StQGV7PwW^ubiuw\h g\ƞwWihr(:](wԍa4d|%|) }O~J)id|wX(ey{ CBWHfY5.(0hs7YuT5 Z<`977D>XxCN6oMnjIKj3,e~p G[䉕>6jci] *FxvlgGV`p_8"՝W|i>;MdH J{z"S(+YÖH?C9Z6 ZjT꣯z*ZC[1D 雛W8Eq8jjs}qt[]3e*wQaxV~jǦ;AF@o nqhvʟ`gy*VYYU~Y8ЗXWJQɌ˚`*qKzxrG "x#J0:/ꚯH?As88ʣ4+8+7[Y_2DCSxʜ DWj_^*f tzjiAK=uY7FWFd X P*RRi- IK*뉓JIZ:ѡ ">@C9k7Ts>zjIE6INEF٫dʉ  [Djֺuuc:u:wvF4}u[]_Gj5LbJ*wW;S[j +|ۨ[+A)KfؑkK/)-9:7)5DT@[NIB'HS\SQɰ+Պgj{ZYsU_ Q|hvih)A\"ZmG0w's۶g@d]PzXzETz;I;ŠŻrG&#+"I 0U96ɶs5;9@!t2<Za9 8LƊNԺ UL Z]tef,e,l 7clnN&}¤´ 4'ɻ-ó\ |D {ς 0Mx"|QܪBqh+`FvhghAJIiD0(69 i5-1 ;:XǼ ȴj+{;П >`x|誠l;'<۳>QZ)[ -"=:tJ(x[C,WGhzWy9M Ȁ Lm"apI͖pv\JJIԊU {<ϑ,ܲ|פ>A)m8Q{<0ܹ2ܹ)H"-q N J;]O}u]:OLh Pmwmٞ.ΖCݶo,oՍvw{ )̡SiLv|im)\:,k0z)=\ʶ*=ذ<¬<Л}+lι(ͨ/ĄzH1=݀JWƭG<)+^aꓰ`(޶PMlseN,^-F.-ISlj}יKE 7mɲ m渉6NkNBc>XNֵ2m릍͟ ;PWVU).&`۸m2Nc0@D}|5 PMrڕ+Mc' nRyۃ^NОCBOr~[&<M)Gals D1}XL{^\31w_j*ose m? `qߖmD`QSm0/~>vH҉NNgݏ+;OԾIשyϲܳ9kѳ¸ οEٓ{=W.ٷXd FF̾\n+߇?L&_:wopG_B)10@ 0XF A00,a0-MCXM8lL3_TPN={a@n(ѡn8%7hP*VVi|; 0V-h٪\sե{ܷvV-4@UO5lBRBvlYsIUР&u A8{t꒛ZN2/GB=2B0b@ky{tխt}gI`Vd7 0`ԞDo>"F"a'C|M p7bfB6!&A!f 0B :brq)HKM(Ds :(bzl+_A0K:RȾ#l:c";ŰBj3/9;ʪ,ŕJ-s*PBe+ȥHJ-A',JP ٳ9yoңRK)Et N ҂#=G?{H(rݤOtd;a'".Vu(6VD55 b` bPu+XTp0E)l w-&4GΩeJadH[ y1,(rSA=C,;)KźUD @yv=91Ts`轧b29R?!^x60!U,=Yr/t%lD*^i;[JYJF<'DX tV/8NGZ!7֐:8YI٬Ҕ2:N^e6"02K|eAH(ޮNhP.x)9P @Q[+#PGC=CF'ǏzE/ڛyԣ@gA~g% ȚTii#C V%%uuϠ1VsjŞXK1H)JnɅVjs;:N4WֲDC}õqN56]vi3,Q6Y%[h6sݤjY馏;@7$B8R-:Xcd4m 2ۄdj=T͇dTc"I =Dn5ЦpTbMcs:umeSL'Fn* 8JE՚Tjz.eͯ ߵd&yB>_F$WlA1hLxz>uwI鎘BnŊVλ?B-mqT!ރk};c@2D*cK_H֠2KzVT21b@DY QbCm<Q[P l^sx/ؘVu fmaD48h_ pRLwIfI?}R,!@B0k*(!74n!ZNхn"꒷_lfQ< v@6u[K%@ksvaȓB?>wÇ qo$M2EҒY-oA"%('Il{Avը֑ \i ~.HkCx B趖\p 7iJ{o,ޝd?IzoT\5@oRm}=ښq vc:Ɏ{ g4>n;p۶;DXE($Eٻ$C7Dz,«${>پ38y<>U˴QC8R{гk5!Ӊ;°A i"#4{=jJ9ۜ% M[>l91 s b >)A4T<- (#7::k;b1gp6@6L-0DTDDح`@u2 N$@7s۲-k7x3>y)+r<+2,CO* z>AЛA^ =+]Et>iEYԉ7TG(3G[4mTEqܹl> $F8!ʁƋA<=a+i=H=ۻ!ќ&jkhKJ8sAd <˅c¢LDܲK1N>pʢ|N .R0~dsS,[ ,Gb=UcKQUQd5H܉iVHJQB-!=i)ͺ#;%MG@1hIME`ItI4-LSKKS;X8>S$4uK ْMMYҎ콵XXXmTE5ðdS7m>AmVI-0PYŲ^uZp] {(sCc?UѮ߂|ѸZֳߴsV4`!%D0(fC*xDVR|ď`'?@G$ ֈDDM\LlItSa\-^I,cUm=^9品aݹnK% ]]>S]JE&(b)Vԍ"<@K\O^/X?KaA[h.5_R^m]-Qگ-E(HDFEvV;+ԉQMN̓*`*dHJHT`jUe vĄT 6IDW2D``MN2x$fdN7 ]ぐcF>J4ճ\\^> 6b4rfK;X1Mu%Ex։Du= ].b4I-O,^> kܑdYXXVӠh~h^;dՏ^]Mm Ni@U͔։4nfE.qe_RѰߟ_e.N>OV jfS`ȨTF厬` E(@Zacf]e` \ukLDx_c_Uk&R؄abq.$aPME؅g+Tg*FBHkƛKbodgMe݋& q& Fp+Mg&_^siUm^mI6̴tpiuKE$6pBtQ%PnLeTjvDLHM\D܏\PoWj%(^U=\U|^%f]=I9Ɵ,2]rc^_S6f*rJ𝻾ֆ9rlfqf](։,f=nl T>h᝽6r2Nr>藅FkV+Wr+a?}~mlr g17gV^m4k2/>a`5axdLVHm-@tB/M΃dG(ttHecC{ s/@[DnIxܯHcÕz0z7\2憷f7殯p[_耯mІc˝S{m>WVr(&v]BCc]O %?*q3AkkDhxlJmq.q&w{_w4{bF8?NiL$n^}bcH-Hc(bCojߒ7 Nn` n'Ge>eBlP~V~הoyoLoIROToDmV"ٲA6ըѿ Rra#JV(Q?J$D$=.Ԧ-6%Jd(yL7[.'åυ2%(Ҥ=.[Ш2&jY*=uמavִgveQ'HM1n֩K*iTzM5{*i6+ER"hxtQsEijD.ZQODqOgq=ەQ{N:`_Gz [m'O#ڕ=③Ia#JBJRtыhJyBY4Jvc^MɄR"3?џYt'b]B|LpO {<':,f('6t6g Yfp⩜;j((%_9D)y%8p0)> e@/j5MyD5y 6p!ڟE=y^PԢTz⽓eϢ* )Q4eY$GCh,zP8L.)t!Sw՝e[;.Cw1hY )ch+Pun&s;萫oլVjP<9O.YqִA_kps榉1y5\=WbmvͣfؙdGT){cƸя,Z\#ChC[d"Ĵõckaя2d]hX-HZmDGLC"7s .,cx$ <@\D^E/^&t78^"½ r}G›v+VVeEV.cvCþ::ԡPBoUt? op&BzĎV/r7nл^, q:Eγe $.Ȣ%jϼ%?!ʢ'vH^n{[[RηɮelH5mGM[ifK#'y!qsom_xvo\>9_YE$J"`Z5/ ¾j踬*eW a738괯Z"p+Q:ށ`ڂvU츻SO|Rqd8X7m/[wdr.OہWoN%ѳ,}ae1}`b!J\ ۻJ c9I1 QnQ^Del VYclT!1E, #R8"Y\Qc:BH+>M`/tDۅbR#R,Cہ`$]{]2TD.R1TFŁVG M E AGz~1(U))ZMN$Dbї &"Z '!?@E?bB-c>6+]!a=cYOd9R\9YeY2Yj[ɛ2\B,cW4pVQQ`>@5T R6*'H0AdY"ޕUYdWBe$(XWHt R5!r}?U]ѡQND~g-Cʡ3,9-k?"iSR`OygF]ecc`e" #5hc'4([i]<(Ň.,D^#$? bvE7:FdčXY^6Vِi=f"Vz&8!( 8E|f|$!B!|Ya"VޚqqtLBDT )GwPrxZ#!]AC'DBmf${ڦPg$&fY_唂הX)9B@)Whf`gbvcO$hjfVꭠd:&TkÈֆi-ĉkYh`DV#t°>b"EɲkZ+7Vk7c>&cBf A.ī~%:hّ ^g&'T>ۥf@:ä"mW2E)h$r%~mUzZ! If9Rް)@\A}XdL *&\&*j{3lb"%&B #(T?jWҊfk/i#`¸*~-V*a(.@خ2Y^j\VW~BWAW@'(['߾[lyO*4.7:6dzkahؾ+(8RxR`cVƣgR”&ҮfѪѮfm{%e"~g_  5Z$(%YQGĎ dfށ!,m/VBF&ihӦ.VjUť-誫Qt}fnr>&jܪ- lmY+4?0#7-ΰBҴ&:psR<2i(fN&+0G0X,; +ޫ*I;Gz?O.ONOo&߱2,걭dLrrGr\JH]i2R`pgHx/?qz±m E?qRbC+.(dFu(dq/?dB25@pbV;沊@{QlsRL3[?j=G1>Kf-v+iOB芵'?{.rO$4$4RضC*8'(5RBmOv+옢x^G{v}t!EJ~GJuMSʁiIQ@)DpJ _Dw ?ni +B"6tRrNiDu^mRPVAd-V.,rYX3x8fG5C.3@6c1h=" B`\e/vvRt8(7k '6w yc+ybE5.V8jyRdf{yv?25rv-k+n'4ԶRp[*tjS38Ô'!D9Rw{;=F, h9t4,g2!XV#yqz˶1m"lw7(BOx/pW jVSC/PnD6/Yve+3[g{#ű~e{6AOx c37s'{4;v Bb?v;d[db6c6極o939Z?pyO4Çy'5-5 EkwB춾6®RE8}|sWs0WR\oU'bJ#N!td"H3yڨ%꡿՛Ϊc=797&|Y}GQU#)5lc{}?ĽOZ5@CCCs>#>cx[*'x'Xv8R5`x87[68 +V38sc ;>R6CӥEvW'L{7;<~6C-w<3[}BP/W}ȳ*n?4zu|Q0⨣)rј(pź@4V `Q'DdlA).T5\j$u#*Va_ˉhn^fڻfݎ: n|`ϸ"DUVi28@PڎN%u59HmT[eU\m-]מqCk.;ъi˛ r'j,(tVnɕ ?AHuW @BQ ' YHź(VAx S<' + dxCH?י^$&>t2g;q'{4ئ Mcti/\sGpM1b_[$6 c>7&5D KU*T-NÝL `ت|.Ld'%jwrs* ",U@+Q@'ѕ.`#|E%s]#tT`@:D11"-vⰼD^w1C=aBCד} 1$KI8Rbu\&s!^9 `FNVQ.e\S{$"s34Zk+d M< W$M $f+h'Z ``NTbDŚƭ6r'k6؄fo>?e7F~)@ehi@HPK8" .ɒ\&^;3 T/(Ѿk0u>ጜn@ H|o_2ư4=)QL-C 1D<}{/fc3+G9&IVSPI?x d^CfwO6h&@1b a@Q H{њ4mVil`vpJ+4"g(X&/!qPDb6ys5߄ 0VDnJ"٬5ÉWZr-/JТ"m鞥PJe\*nܪdv>E4PnGA_Te-x`|".e{ L!\Mp?d+VXlBt) ȍƐDp0-2( ж0Nn#"N/ w oꂟBoo5[ȇHN֬ H.e#t",1x`&Cp#>/0f bFehq,2t 1 U*~: ݈'@j]%2p$$D h-8bE,&!@Dy lQ"i|x|cf b a꜠ƘDƾEe M'G |6K (#w-.aگtbΡ kn`L'+R%16u"rD,'w"Nn6@34E) 5&/8Pn5/62c2*O9'/:WO|Q.Uj1/PЍ(pI}gvK?̏*b* "Lz`03f 8&SE&B'@ OhxPeݐI7E/P *!k$#H2ន:K #x;Orjs<_RB j2U^<3^ > O>I57,/ 8Q)@uB,Q@AB @yb5䲯CA ITDMD/ A1@R*U*Ӑ: E'.r81/S6P'f}Q@2p1Q'<5I"!I( `EQ/ 'vUscNfS떄IPeQ N ot E9 : :5:oro~O<<3R_1R={‡v6>sTTEuTQ@}2@{DGEC D ) WAX[AX{uXUBAAUY!BKN6AuYyBA [WTE2?2R: FU]OyG3H[%"./3=TEب*iFJ"BISMo677CN/tO.!.GrFResNe :;c6fn R%)g/Rl6&#=˔RTvTUӒii_,UtW[kFeXʶX6X}UXm TZuTAXAZBnvD-4oUV,׳=u\u 3b6]ty]7Nå0[FI{bB$"u!;S~2'B-"nW66A$MaB$ꢎ@N7od..mtes;Fr g)Pue7p^6%;QhC\Wru~{mR3iUj??qe(%QD]t[ V wU҃66ZB q-nUpw-'aUkj4(~s%7&ݐ's1MG^=}&^I('h F&zΒT`NBv؈8J9IC/&Lw"5=fcŔMss!cKst8R]qgy1fSefw|aX6PZ;gN\Uh%5<[ WxϪʆTIV/TOx=?4/k]VV0ZZZ]Y7p=XV.T*At'X:䎶.zQUfr |WVfw7W^SHc5Vsʮ8'sM/Vu_^@a[Ez&{L 6FLcFI 0ߔܒW{6/H*Mzע+dkpf6HIssہۘqaW+!%7U9jUUEz߹)gkkBuB4nZWo b!oa:#Ty%POP$A>q[P[EKw[Fsڅs55ksy==o>uigJq8C\#7ҿo#׍@r|)E3fw>.q[q'ʊsi3(A9&K-yl@1 VI% :viBtU*tU@ Q80g ?9(Į]ūV[ t cKp*SF3\ZqjԫGfWGq69eV۬p(e+F7w=TЁcF'h=˜ENs܏>ˊA$ٿϿ_ As#`:4`p7,"aHr1aL!yPh1 R:-0UPaBݐ 9%$F=v| TאvEB q\BH䒍RH%%д44PU x5V cGFTM֒@ɐEmeF6 ]@4ذJ\ ^3ϴ" 6J*)6:C8Xg1Ik+ Į樣&멧48SXA+m}`5%nܮN5nWsv#HrU;'XgUV`#\OqԜ RirGpG=U^J+? `؟" w8܄ A-x@#b!.N1GѧMr TP|}]DtFPItUK-uDUYA|ҌMY^%6mVhUύGPWĥ[rS***pph Qu^y76f4հJ)84ibC? ێĩJ+7jiR)ڡH58A;P$a E{@^'ݬ8> #Z^HKA5іPH@y b?yv @B̶A~~hd,kN'$I.9vfEN>0N%^I.0OT7.eǘ$mxʔv!8TlKC*,^KUnW9eQd~jp[m?@2^2j[@6!Ld \`lg@Ш1Kͨ~G鄏=xNM5ĉRӝn(k09u{fq/lHza7${ߔi1å\a7$YR&3hX Gki M@ҏ¾ i?fp S$ o3=çgt{W\S|p#h6.8])˦nw[6A{̱/E)NS^ )E(\/ŗ:Vw ENBCͬfЂ2@j?5IՈ\ E&M}=rGDLp`Vl8c7uc$W=bJ(Ks-XQct0JA6  9Dt" ! 0J'1΢$gWAuA8H r021Uh1wK zQLvW&q[OMk`;ek>E?P Pg,uys;+En4ezÈ(mt){{qP H_8 uz& ] `rtz4V@Q]@tH;,v98]u9%Jn8DJrAqPx1}6[ƜȜ9# K@K0#0Y ρ.`/ 0001&Ͱ АQ|@fiN. 2*8igR#ɑ!уZvhMJ Z B^vgR YsUu/vdN&=P1\O4?rEUBeqO< VKu)t8]h\j\$h`'7S]] zH%w4f4LjqKzzm qX{\k8nzz:cc8)i[)񶚠 `w[@Si9+m~Ȑ )mp m{q{zq۶βHƜ# j3ˬ ʝ9 6)Qc. nf-fJNݚa.#p110 p 9ͻ?@to ׫yL6HU#Kai?AȰ!  Z ")@ @!p!z u4,a:@irbє%QI=ðW$Dq`4] Q *Vkk,cDc$CS{'IĕőW[o{W_{{zBm馦ԔOjqkrՊʩhm`oq {ȧeȘz֟ֈ Q {dڞ̞к ~ɫ):fa!IUwb7Üة٭/tHJm1<͞If *TG(#ʼkڭf =0} 냠EУ*! 3&@$hFZbN\R "$-1̤h=E%7O;e,=g#*)SwĖRz£ӏīGvȦt {~qa,rzd,ԗƦze|iQpƌZmɸmim}ȅs ȮIM20bA 5ըHb@ta\ \((wTb$Lɂ;Э/١Igښ ͩ9 $^SN@4I; 5|p f {ͰN, \2-v@NB|""Z " {Ny/$D߀ttwP48]XD*| Eetce8Sĩ{2vkڦ>Cze a( Ŧ Űv:nMo!nfm;+~ .P !,A$\pa"ƍp1D\+b7N5`TcqaU~AbrV빬)n隮 PoiT0pg`O# A;nc/茮aiPA BH |.Ϩτ?!(r!|[\,<'Y(ID[/?"w2KjJO7f6˄CXk:laRz`J<]h 2I6R#A S6{1I ߉lH A~֩o[ɯv@;V@7n_I %Yd:3)Iϟc}ϙ33ee{I@?9[ʕf"꟨Ɛ7,YrcS1v 9fԚE=;m널o~;Gd~e->+:u끻mNwA'F޽GPCο߇SհD$UhqgQA'\P9Tj?'lg/dyFZTQF Kg1f4i=M$)?)$?.QdaŤjL E?$)P %jl+S s+HEHSj),::%VXCUr($"0ahm8t~(2҉.%%R2,eSyU`?J1XG(rig ֳ^hW*0)(f**Z)eJZ*fV.ς˙-ZRyL2ra˶eam;_"5̔v wYS;P'K^ퟐʌL߄+kq7'k7..⬂ 'e+&YB٠phFamr?G1heCF0ֳFD BU&4!B"(:9#<%%VİXFk#4)9HF1'iae)$J!Kq~KCS4D&Il^l[1TaأcGea"}a(@ /g(@Z@tIe KؠWD7` fdj@aPE[Tr\4@je/Y򓷼+pBI^B"^b0,1w(1Jpc 0Ha 2e3*Q1CdLu fp e$ ,{A1bL%! 0׾~!Kb: g*Wы^=E)NZZ?ā-st&̶6m6a -KrlKEXPF|ĎD7SOAH zS =A`Xbɂ D$&58$#rĒ CYb'Dф"?$IҐ v؆a?=xCd;D?HaA(5LSt#c֒2F %H .MaJ3jeyYJP5-\%lH/10q%J| (6E,mKÅE:+`˿rW%~q2WhkCoHL,ÍmdځHS(<ɦ_pW]zI@bD:˨k# Lj)sFꞥDK^, 2f3Jg!y)zlń5KWf( mku[jīZ3<2W.$9M񩦉*Q`!A(I#K~E*"2dRdO/dDM N!J Jb+DkT< CCV?ŅQ0V!O tCU%2b {̒I:x, Y"@HU(Ul)=lW|e[zNr-CP \5L)Q#HԸnYFBRvԘm_6:?*H\aw Hm[\Z"kx˲E(^bR$+Ĭ42FS}^Ȥqm]tZTJYK=Y RO h\@ `h/y |-R@͐3!-&+V$@T`@J]J%]s2%49u5'|oI7Jiڷ6J?F.'hA[ =ohM%J,W ~]1y®(t[3~AJ6R$ͱfd:bJ ȚG1ə$+B_v+KY_UJ_'߁;[U5s0W@]r/L򘀓#'{"~Szz#%{3{3 L.D.2E@Z0P$Yc :"򤿐P zNrk8[", 9lf9+h;AX‹P 9P0g?QQ%ȑ gAS3h&Ҭ0 Zs%x%Iz~Y8TDC@28B!N<  PC#1G4s s+h8Bg_F`I[6ei2>00_u ڊi)p9BHLU-8Rc!z[ɕȑ^0 ,86Pr#,8; }3.$7b p DX{CIP*%rY\2\dE0$ d,%9Bt#|[2 f,B$QR q0i^ ԗ'ҡ~L +RGE2 s0,pKld+ڃf`Do ȕ0䑅x QC<(.hR:Tsq?ßT)O%Ԍiƒd)&*'|'Otx O͟`Y8Yo\-P\NH!C[=`h[D S3D"3۳;p`y+;)9n0q@o Ƃ!y̫G>k=J͛ÉYgFrKH̫ZM\I^ёdM 7K/Qh>jQT/L }k#e`ȃR=$J7 / 4XI, Jr[JXsY2#}Hk:U.Zӄ3 iZEքiʄ{/zWJC?%SƜ !*ӷ Q˷9@_馲bD +ZX \WሸR(UY8E2@X(#;&Y`SXթi1hFMS,UC82Ѫ2h(X5@pH@Wr WXQՐ4P=QĖ(+ʴđ J *f:)eK^++9j `KūOF*B$zF X_& ؄ub ЙӗU#᪸# gY%D$Qp q*e%rʺ#R\bN¥"S48 T%'T'zچaD!F L fٜб+o}ܷ I>PBxǬBm;9$;Py[=½ԁO EyO,<.=7Q08J?`WZ[͸9Bθ͈Q:Rh 8S^8[۲Ujd P@+fyǚPgaJy urM#bZB;;GpPNԕKD[Il,{b1f:[ U.@M7ʢmuQ8 cDڪ-cX+ ccP "%$ma\ \TDU%Fc >Mpo>ev ;HHsFoc@V1o7oh 5m-p-g:Ђ:  8Wf`1бE{XbhTδK_ i+ ^YiKH9e, >_#nOWL+ű'JࡋaEu* ɾxRu1]cq~񑱦f'MuX°^^^#}~#u"ţҷSQ^e0v9J/.15 1EbI@HY Zb%7_#x th. TsK ^X^ h(f9VuJ8A]^]^Tp'õMhrFEEnM`Fe8)Vcf'{M%EdFH"'FAmdxcmHS$c 7Z̈́m`3pH0:< !5S&fON =g=fʉF"nQo+Մ}dnJy%YpCռ?ŽF)zM\HԮ L۹ؚr0#<˜`Av@gI|RI c_OlIAuo/R~C$D RY?Tg9ʗHK8 ] Bd3c9ĦfijFZ#fU& U$D9, PPHD)#D!p9Ɛu6p8uJv Ue"R R؁QǤ*ݧ/ADymSElGO*(B0ѴHv]67qTDW5IbV\iIgko]_1_$idI6VyeAE3UDC#JAnmD~i(Srl\s?$*VnD1o*\IZo$)3Н,DUb$ .此J"gF[e2J'@Q~7e?ҋԂ{Svu_QbCeÞyy{kT\&#m'{.ND9U5IB8>9ff.ɚy8M{]JGҒƮx,#G,mZ/0F3R"殂 ,ҋa>b9ķ7Ya;lMmy<0H &Q$MGD%8CY*:,09CS8U)ІI'$b i mh\Uk{sB XC;"xcp'8("9q[4o~t9@2' BEwZtiq|?@9 JSzt02r%?`nCλ,oјXil&o$pv#@YZ$0e+4Q|o$IMO8 bgD'P -@Wİ$*- F Vj$E] Bjֿ2p ^-`@`4flI4x=J>CKcX1{a|=Fd/Ӂ#Lhv4!HV*~kj2.0pDa7%Q.qC dIhRYhk?z,HKVSb|=qK[eL83!iCbm4T<`TF~EEWB d:xX%"FwI1;0msyJUg {گ橥8>E lt[-ŹōAS,*y|CTa>GݱzV \tw#ACfXe:!zeH=~5Z!gjZ(C@He(+HRTC$~ʬi[îD+Z Zٮ}HvÈYe,}pK$#%(%6^uK5PrV{K}ӝ4$k* ې5"øI{i3\ֆ !E'ܭ ZBB'đ3h-xiVQσy! hQ8 CYpoIWl +h,a\>eįH❬TBUef?\M%xP^R,S"=aʌ-R 4^.H =I00z=(uZ|ڢgKZ Bޓ=szCfS, 8eH oDKo$V twRdPy8tQV[C4"1 MZ+^j+e`7$gH. $k}? o>tA,`QY0hO݋Y0 zOIx[ދhm[l Ό[F] Fʜ2L&vM g$f$ nIFi#VH@/ Z[B[8]$S94M>?BIȎ8e!b|BύǡEe5 /0]Q5db$|t79]ٙ)lĆrQDFTOyDq,nnL ʭ Tي0tqo+!"}Ȓ(ȓM}H,M؈4Kxh4~ո'̸H QJT<8~L!)QpY 6vp[]Y$@dACl?@tt?\C& I,$dH_A `d@tBF'm8)Rպ{d6vdOxYehJAٌMC8tlNLjojF藘$8uS睙~ I„N; 5q ׄH}0lH2?C\<:eI4C3@!-~ .R|?ꘉ@gAUM$IYm)x#)nLtE8!"nAhD Z C4Oih˵,tBDT^E . 80 NH漇|AiBI2r> F YxǧYBl.|V,F .tv&Zdd#!nLFIƺ[۳eF`4JI6JOaOȝDTJeB܅Vr[r;%ā!g|*Z'6Sp}DHFE-Z -Z,4kAs-ZXI!ÿ2$a埕 (CfCZiif .oKРX) >EYǎm4[RSX1caHVT2\2!m nq({M'C2%onXwy,S{f80聁ڻ-(㵘c=/ (( y*WnɱL2cAmBeZSqx,7n>>))3߿.Ȉa|!arKe^RT1pRNy ;d) X, U%00.髯dEXçF=bū'*VY%&i(W1'3%q,,Ŝ4Eq^i'6P3"=4x.L]fPL DY DEFdL^U3gR͡E+\y“PaC (zDOPo#cЩZ'Y#-][,i0p *c!fuZ{ꦃx|A)*R6ƶ @d $D`e@-n%ָ>`X[4d`FL1 澎 .jGhu 0ܜvܢN9.؁ Hֈ첋eXĈ埯\Y%ڒP>႔LQ!G  Q<B1񩕻*oPBU&g?R"!uZf ,6F䨢"֭# b.r⏱#{˲}2H$tҫ?2m"~ =竴,lI&LP5Ù?"PA yB! AUtA|< Z3(Pg9$>p8$8 \ z'B+FV,<1݅ckSdee+[[h%r"2h<"1Yȫ AE|}$xfd k]#[./|2K;Q@arHX 9"[Nq`㐉LOG8'\:#[F*BQ8)IŐhp+8qoQِlHAJP(S'C#6q Ϊ)HD(J9"!P-e,[RJE[\#)kI~{A `hsKF5EaNB8Q ^ʛ)Xb{}c5LK0h.tod@82mVnD5 W/(Tc&+r6CU /|dԥ[8$":h_7~R.\ݍɻC(Y0$ir, ! E9]`*? G"a&E*rRE |[;Sx/JQ_aT\#LjR :! j*WaHAUpH>Vz v!9bgYpDd9-g!bdM38[v:KC0&lSndKҖ[nl hf"'vFOlm^[JH3;lã 9oi`,)V |3nwF՛R8P'"0iFز:X98nG4QaME/2t_$'8 lq'KzoDɸ$:.C`j ZJȵ. BdyD\zWrkQVO$Z4;|ry;_[g!m J,\'N:[#$Jb@$BB~a@تh: ~` 0 豶`Kڄb8hd*zF7VEd " Kvd|V0L8X N"? C jB!@PqH`êAA4*銡|)DBȉ ZA r$g .%V|"'PBG]~"pd'" v.n.(7h78tl7/3Ȣ~m#m$U++ऺGѤv >zơF>>=IdD+<Vd2z#3R6 3 a2npo,"-Z4d uD5Zerԅ`dKޤcV#L( ,⋜ +˱Jˉ`: L ĔPc  @p(+[xr:z2)%P[R(KIs k I A.oÃIք)-,v*lW:*tEh|E21ka2r#8dA"9Vu)>Iju85xYk$@) p(bS-I\A*0rrK b@, 5 7 :97y34:&!fkl&r/["і#17upKP\ `r7])hl$<.d ^˚;k)NZ5FR/fAbY%tUrX'3?34'|C3@ Y W% B.N餵/ _I: X()Xnƃ=x4f!kq37p5Jhƨk ,l2=514Ef-Jf0jE.Sƅϭ fc s7ws' vA$ k8h"X{%<0*cs-: ,.9 `()\E%xn^&3*A|k 鳖T:&Ba]b)p %o/YuoYP% :]z(ip:$k^ou1˛cY >+}3rH G}A߽(BYwp,Z?W&z#`Ott)2>5>o;7:*/&3#{ o騎/ a49>v\4Yv WXdV2.V*L:aU82$C6`tsWd>1HzVf$*ڂu2 ~Z,ϒb(j{kʯGFGEYFe(Wxo3‰ <06% p" %A$H8& cÏ{|P}2y%LEL?"*≍j&`b[tP-d'E(-3_PO9* vᒩٿ`]Y0$Nbǖl]tP.N b{Y#>9w*3ޑ J_ [ESq*xq$I.X__ l!ѿK4rH0 |r] c|L#4i%@KIذǬY?*͖ho˖5_v ֲYפ 5(p.\8jQ TwT ad-q߾J[c)devL1 ),+!.H #E (Qz>m?۵=䩇a3b!F"8PhI)G4% Ѭ){hŷ辦?}}_tGv HhLeFoO sA`To$HL18 $[p$LE`HXO,ZaE0f0ƌdOKLJ -hC hQNj1faEZhc 9D"e$ Ce&W&R%h4YǐuF01r1bDVRgqƟ uK t0hL#SL0A 1"VqpAzԁ,%7U[$IA$$&/ ,hO^Taů(PX#5Lꮻn7}.IhTvnXWsw^w^AUX UhrEW|de]z^}_EFFc!3!21evΚb @{Eg1=&lQp\eaD2e$E<$kPg;YhfUkMv{t[7}>o}u+ZኀU'YFV2'n0?u9?K.9ee8,8?Lzc B#e D+u^nOpBx3YcV"/#yئN8 /JN:-w : xsIc{ >'[ʘ$ H`TWIQO~ml+,Pz)\)0 ?0RT,$W6ʾT#3$2 {}$p($jJU@Y ZD1hb 0H@m!  Eb5$Y~p]A\VE ?$|ɊCMBS5A (CWM/~?_9)xƋ1a 1Y(mGZN922(0R$geaLZ=f $sd¶T$'Sa #ǻ@S)&&aLBCX5Eˀr[$ b%Dwv=X0I0]O' HO~0" 2\WR9TNiP/ Ӑ:E,J ׺&mB iAp2p2 l`ˁ2bbbё"Z3\(0q"T_=ƑV%t:ՉRbgxCI@Q@bAD[ w8$D#q*ª2h?|&jDTfZig. QV:Leb4fK55E4bPksEb_'\U1q۪pͼGd/]c1/-j35ƴQs `}+Jeg"G)c?iqF, s&;wN=^W,fBs>FҠ @sBJ fox#Ys\+F%b鎉ETbPq 8-:r{@JI܋AA'z-*Aa!IطT֨C2G{٧  T-ltD Q+%1p&ȒOv zЃL ^5|O?D Ԝ ҉mpx,MQ-1/aI{Ao''9M:gs2z ab f.jMGN=yr+EYrc 6Bعuy^'fZ62a:hAMd 4nQd^TKac=|t3=! K b m#&Q"eQ-"r 6 [7m`VB%Tb%4@r!h@SqhD DMى!0)sE)gsa^!Sij  8kf"Þ˚" :yJArP"iGyK2|2{[[c{sJ;"JŽJ$A33$(Tj)0J0rs!$*J$Z%Zs[y>gpRժxpaN\PF꤮1 &)Ie w&G";&%tFKJ`%5F5Q)sX-0q9SrSkURe.g*EQU#D$edg>gd=+m2):o#¶RRVBb,"&4g PiMи-6%vXXy糡4 b9ۉo;ajSDz!Ri"L_MLĞ`MI2牋 Ѻ2Y܃k3|FzGLi=m9s$i}1؍ߤ$9#F#3rt~Ku~2" VI%#kkM"sT= ` s"d}dI7i$P_GIɣI5>CձjՐ@ےRu #bPGD/;IFRcT5@lx%d< Pbë,c9y'_V_|uAV@Q)bÞ* uYfS_WCsFC8ѧkc c`LQcpJQv%dK*i) k|ɜZɕ(beHD{RD(QD\> y\)5R7iE:d8E "Xc%/M"쩰;c)$ K$}|PcPH @b˹J$ H\ZʐbB:$ܞ斎TDK:-P 1, a6'h+S r 1 $=nb-C)`D?R; t6i!=:n=J<IFqQ 23IRjod\PMj_$8R z@w vDtUܴQ)')"v5 ,1s+8 u(q` sQɚ 4Ֆ"**ݒ*}2O1vʫ73_ۯI+EZ+"B aQ99NSqp`Dޔ;|)/2n)PInbb/4bb2P$百M( + $@6( s$Rnkٕr-`.|<z0PPgqdaI;-+)YD*aij*^ڪ'._ʪ|#&c|R86:_Gt'Q ƞ1[+zͭb4 *JMba_L _ss! +ϼ̽;1I\;)%ORT N-qVkw+3n :ȩ:$6F.fma b3~ȉMWc"" *Z!?OBOJmB(g8!F"iX-6tE 4"GL0mQ!߿@dr2Phk9*X`#_htlAQb u:-ca5֓~zߡ\KBLjS_V~IhkW]K "\/F/g6G7?fARըiKߏe~7סCX\s(_`^䫂 "g/'A}M4CH/}4GC8-90π SЀ 608 #0K&L7m20 2C AQ $10fq16 !IQrp#`1ʕ Vr0Y .-^crHVjLeRfO!#<qZ/LNƐI  =+eZiEa1ơT**#+[2E nҍ8"Ny(Y"R(h`YNf1b7*1ǜpc!X3 ]`HQjZi-ߛקh}(:u@bdYYiX+aY:,X*4+H2 )`8+1;*, 3286p5T ^.xLh{ЂsyXXXXX Ӄ:^xY) *o%*S. o곛=k! B?İ" Ǔ(. L@Ol r:e/JdrQ1o\ *_WCQg}Qmwוd'iEu%E{RR .%B'=3(;\.O3N6?P->CGi%!z)}WFUxĨL,0 XB,P$cD[5 RGR(BHD4YTHK8vC\%+!1Crcʂ9DYUի@ %q'e_hXF/i%U F10cARQ!maSF˂Sf31f(Sɭ<H* -KiTÛYAijY6ykakN(q $@1A!<B܂&!AA4A={`9\p8L$)(W$0&Wҟ/g0c:YDO79curh*U?_ PNy#ht , @jAWdKBDxVa) SKXPDc H0l\ R<a<Up\_%"lK!j#Ҋ"bɓ2~f5%VQ: ,-iheAUXSb%"xbY'ɑfc3=+?. FCVs$\W?$l!-N5O&kؤ3@@?`U 8 0Þ^3n+e`)6Xd)t3̇5n6?1Йf"w?--78.&d-9 (gr1. T"ҙu$'>\1HJjDsEQ-;xޗ5=+|e2^R " 3'(L3.a08*R̀U\9|'f8k?DHEny\K(`b KA@:x*j@@B@}mB2Ȫ^pdŴlL1p=mi@Ʊpu J&?/$cipLBltG ^OpF4(h=Y_xsW.˩̋ @Nԗ:rN`"+! d6GD 4Τ0P@ w0S @:&r/.NTo3@XgK. *H*2j6?L5&'I':۝zgEIЅ$Q^FTQTLd$3!GMj"E4.s :)4.c^P;1Gbx}JHS%0Mm 4%Q؆5 p6XUc$ƚ5k3GT L`E/zdl#dVmӖ%&O @z1tS7۸-Arb/Ȼgzȸ >ʠ@PA.Y8QP Px긯T`8`i9'\0[ )yÌfz& (H =7 y&@ }7#岺a1 靁Bh$gCf'}sʻ#jb[.,DOEi h٠(+"ᓖQQbA)3ťX3̂ *bYqx4=b,h*scG>(*T[c[H8Xp$ SÅXثۆpX0FsXW0"?G[ #Hpr!YN@7ӿ: oWEk鈏Xi,؊ }D$-}[6 =ⷛ ) JX8 'Ӧ6ꍥ,/BQ1@L9/((䅯\`%7})0 ڹ7IbCȕڹ:sJH0D$ D#DԻ,ORGmx**qQZjs @苾i􄕈>BG^U ?G[i!StdsQmP5"| 󶎡 eKX΃0@ļ3ӌ7 >5t \:$ɟ6J )pʁB㤬ʯyʮY,ʵKd8˘ܹLʐܹK]C ؅ФÄY iLXY8;z1@0}LC#z&YI##$X;$Ϳ;jRUe) 803܂+6>t 8Ɉ5CNc R \q!4X˫2TPjXU9cWn܆U1xր!,sO Iô z"Q0Q8x2XpA4=ԟ&84}6t:  $ʾm*T"JT`| 6X0uZڭ`'<ԯ9%Л38ۼ<۸!.  h2@C}䀄8ܕ`TWX\IG܂7JK k\KM$#]C$Uq̕`-2eP\9Ů.K 3]H|ٞRW$)hi}cFlWD3iӫnmH p+,r+iq v]oh_2hn>]WzW?q)5LRPLf؄-ګ%X:Oȫ6`oE7)D"6@-ܒ\I}frܼԹQљ|79tYhL(1Y( 1A䀱ǘR|B.M=(aBJ=A<85 dS4Q->BӀ-8_dFuHbP\05CˌÕк q@u.(RDS%UҒI (ݼ *ؘ~{(zE`U 6\c^lKc,>B hY /rضgn"j x CHN~ec`e Fvv|Ngzl N4F89.*jY(z 5ӪR#'+kZX&}/YKӬn*F1$ab( ɜŠ:P/+jH^b$尯]/ecX1Ec28 CNQ-@%CY< GxJVH`TFEY䥌dI+j71@aK1SeZn&ab]Oia)cN1(TGNR!Y }%L5Qh6 ]o6 %^cɫ?4TgpN6UOb+Y0g *U z)<ɈqI|JO U\&@C;9Duj' 8-T) T jqbb尯#[^c1~k^c1ud%,2 c% d@Cby֫0wqw  G6lXP3㈉ !4 /ò'Lg^T.Ikrj2b́́J!D h :M TQG1'7;Lk[ڸ.Hc Kk%A%>RMD@|0Ù F'8MnTP(FLA5]0:C|Szٌ1U: e7pQ(VdHn? +ٸ燒 6m~VfDi:*q^p .ϐfGDOot}e?!w2SF)Ұ,3q9$kӜqɠ:Vd0  $i$D^%'KmL3u8ar r;L± -4K ,H.^04 ^78K ~ЧK?aDTHPB# ̋'b"毧P}ۋ,8aKciO?8H&ZqF[XbI@KI`W X(X__, R#{$| ŜeaEY?uAeXj\f[!V[PNiŔi&@R+(3 )<8C#bڇ,#(') @iF l,pTSqAJ&ytT@P 4PA dAF0FQMt#EK.$էI+-Ҏʈ۸$FQK$!%06=S:)65H,{GZh8e[J~f4bb{Őkі؋eecb0hwlo2mC?('Aplq1r G Etԝp 0KT~,էMGbڀ|1Ĕ}l?tK,h3} 4E8_n(EDwxEQF9el\,A\p if[gI'vC IߊT'yhVYP)ZX_GlQ$UWu4,VDstLd@Z@N/kl?oJ +,,YDTH" *U!Ү?(r?fE[=G|/\m{fZ"?RM5|811X()1qLe$ dcBFbv9щd&l$XlPm5,?s=,YrSh9ZҶ3ATiPK@?~৒ONmv@;V7n(S! y$TJ"Ғ`%= ^/K -maA%-(%-Pꢤ$ $" (hLc]S'j#5`CEBJ\Fi,%CF?YC|nʰTPS tQeA|8E AhX(TC FA[eֱM7|T xp?KJr !ءSXKIKR]oT@0L_( ub`Q4F_iQabc+b%p-..p^E@0?$ 2 4iMVl "tF 5L Fvcߤp` $c@0o#$|c'sl$@2?{9B84tAAX6ӚLNd42d[XF{5V++N7Vj P?ϊ$Då#? Nf@\\Wg\8D@HWZTLYLD$ ̔N_b9JEE Xɍ|Cl[ \f]}eɂ]~POxB`O8QN(TILF꫰LJf\tX@F.a'̨FknH^lن͆,_q^La@nMp^%Gq0V /Ʊ? 0u0@rrF$@԰ż FmLv2{yȵR4ِk\q| cscci?@N`Dm!U QɁI@P١4J+D9KϽ_6ȌPVEC&$ DܓXm](PL(/>A!Gi4C+gBQU.C,L.?xB,x@{xž](aKLp5*(CJ7So `n4FS IET pV=.p>B$~ J~[\@[^RoVXpttDЈOA<[nڌ>XDTW0PTU@QB$ veڮ-Zb !?^jOr (aP-&gVuQ.x!n^+,?pt@6j+#K$36`kV{Xg\|o/2 Wq氱yLՀDX?DV:5ܦ[BJ>ŏD@B,L97}OC7~SI @fp9B<Ad(I~չIPӭ]S_IGjZzj_u0Lrfua [|gHP RmDmWN\8+е `eJ[FS>ǥ"K, IK"NYȵFO叙)H"WAA"w5E[GWN9d+@۪FͩMQɇ)(goj8G.J-2j2KT2klQ@t K@tM1Mw&3:*EPZgT6o3dց<*bȅఄ*BWuŭAe4-I 3KH$ŷA{}gAPC;g/C;8A,A{ _rоe8ZIŘ_ 9EEΛ0S]gxktj`'pa tS<||I85÷&^0 4̂z(AGA!w-HC!Kd]UUXL&"jJXnZ UX2-#D4jBD#6?ed̢K6'Frs]"Kp:KMόjD0Z1oNk22B+k;/RVzG>1 ՐۄH]ٞ.qXwşuǯsh6{+mcaӍ T@?/ E ۏ>3r#G$aG on' K 8Ll?V]s쏀߮"j<*J1\z -te3ilX Se҂sOdA(B{P_q@tYX?N> F!R>r!Ӵ` PKa [IIT#c-uB$raH0$rU$ a-8YnŐ,ZRO zP+ATU4ؤ]WyPU`5*Z B !bP~B Sb ɋ暖5YZ4@e&l~PpnF 8#I5Za5fgRxȓ>dІ ]途 "( ٍAJBxp'`/85D܊D$"aE fn @&m?f~f:Mv2 jMĞ` xڤNpo!%F*0$D1DLfgg+J/uFmJä\F t/12j54cjM{jML!L$bH<-$Z bLgώXNYL,f-Z%`.ze2M"1Q5Бb$j]b[wBå @WO_QXHpsSS N15GO( _@q5- l<as<%`忼QN\LJ %pen7DJS zJ_uc!wHvu4I&&BMx !RCB@"Oec0q @EGRC8it,*%Gu4DLn`2t\yq(;Cc L6.-B-49%(sAxJI " @S6OVņiT e`4m]"[8OXkX%w=P!`gU('@ϔuY]6|vd5Vn !U68SΈtek.Fɜg?  ؀%X"xbUV1$FZDdd!A@xiGD V!^%jEZ)ЕY77)VSW3w[M|;!þzM2B-$oqm9j?,dek0Rb,bTԦ-Gw:K u!1%;`%'xKn Z1X B!VA !`S#GE_dh>tåLVcq9J=T5: PN"Ijzb'3ۀ 9bS$˾B2 $B"+r- oR~|i5[ɣQSY5\7$;8icIOcDA hab8t(!+#ƄIL˿/XB&$pÆ3$ê1H!g9dAvb凕8ZZ-hAC-[le5-ravXÆhLʴ(_EZƯ2yOBlȰcq5#4$$4E&E&J x[]1$`IM4&58o S]n$!~Aۓ $~)HݻSw`A Q EgAdg$~L;?+??o$Ң+a"Nt!B,u`C 4RhPAT!I.]D?,AWAO b?e`@p?qOT?^$Ѐ-H(觟5si[I!B"SQ,)c|TIC5Ł,ġ0>FA1hAWdVXE1CtQSa1Bb RE~eQ" "Ƒ,`Sf4E`@(q}zV;>33zW~wyE@V@S1n7XpF{&Wyi7wwXG;F1f9#%16"/k`e#6!gkk\AB" $;"KNxζ5,&cmg:imX7F[d4~Hnר'`'~+fS%`eGH,!0@aNVT6zcQ{*2$+v1S*f4BJdJDYƁ%;HW4h{2)yEQvd,Ce?4bA6`I(;sSVR gjUb1%EFQRC,X3^XyxgpF IwE[$xNhN3XRi&iFisE5~F!^Zj>Q/R[oz7Zp3%D9roNNJƦlU q&Ì̘:6}Gn d{YdXMf^B>o_oգNT2(bxn z&6A8&>#aN@! fB!6s3sF CVGakdGg]ɡ/1e31 (^jI>u15}5H `5:Ӣ'!硟AOyv1-%q F;w}⁖*wdE@3h)x4}vix^:uM}_53%p3(y"i2{0!"z{—o!%R9 RBOўFx*,0LL"`Se YbF&(`N^S7\Yh^S'oq.P H"1d>eE2jb"-B-bȏ0dST!OA!3EEX&@NF1:Ms; H1e8с&s2?`@4BQ$o$"0$DT?dD!#E4R@XU֑ejdR͑3VEY<ÛPSG:E5 J$QU$P rvB%@{r(sUp'+Km('/EVAi}?{i9 iXeX5XbbY("RZX#1{S!e\c$!!n+n*V_W2yE';\$\$}[%$$\^M (XEdU"VQ)$5y 2F' ^E;R;uЄ\$eg!lgdQ]v^Aˆf'9gEFDxxvF PhlS,GMڇ xxiM6fiϘܧ3wg:!.)Á"/S$PlLB<>@Mn Mn:(BBlA˰KK ^+]}WӓXch ~YK Ɯ&X^W^)~#Ɛ^s\~< b.w,spB6I11}CAWI T0=qU%Mo37gڢV]Dwg͍ ڏv 0 /3& lo]qdyYvXV,v9ixB٧}i\ŴK)v#7r,9" J`2]^;=]5|3~آ%, '  \}^?⒕5>~ZӖW~ƫn>YҹE?g60$A173@A2dQǿV:Ld%C V1 `$R ( B 3*Gsԧ^JK$լ٤ OJ)6l/ $H \B*qKØI<2e ivT7q'O4IS ^|wNҤtqnII\YuÇITAg>;ypcR"@/ h0цD% 7g`b `@!$$ *l0 i PNt+ö4 KqF(o<+o&K xH@HjİD*C HCTI\DD,KԒ$ J1zJ*|hȢ9zȠhΘ0ϊf~x#@B?\jQ)4*'8˫ ˫jK(ڛ6 Zk.jIZ\Bßf", D0̃̋4MˀB2i44|c\T3h'P jd Mv[ݒ ͍4֞`qΠoCL:H 68>Rh**c6 /x=5Ѭ0=$)')фFJid!,J>fC:C3 l lCR^D]$Z%ln{ ` ͆@n߆x@!d+!'h"8L  "¦J'MA]WpV7 J؇R+/ ByZs]V)+lPBy"^1$V _MдUEѬe4tS5vI]h/1 최A8׿lRFs0T;QìS1AbL$ XH>c 0O$@ZƹIfQ# MЈ5CCҌȖ*qi[bt!!eM{UX1Kn(E hp<ء)Ho[0Bu1Jl0dN{: p bIrtJBPaQ* frlEUR +I"xa^^^/7M.ی*ye^b(B h09-Gl&\Emo'ϞςHDFd1$$F=p0Dw`"EKuJMT _x)QD`LctdJ]tGTУ6RTG]:$$Å# @qd D9Ĥp٢//]rvk =%yj5[%FʭNԉQsLg:<tY]|*~pAGݘFs5^qM0w>0_Mm 7D` ,1`vo0<xѢp_T49"UCi!ik(Dị3~1K<J((jS涶!!5HPҸ ]Hb^cuqP?k4^ pF穒$EaHDx K8Z砧ˑ0 c"2kÉA)X?7) I$?9zs&)mTi9.)rZ㐼B$"Z@("(1RG:)1 HtiȀpDփpYh[D} K(]% "Byˁ!7}:аPDk)/8n 2(*aJ2␮I9S!J1 sk*J+a4@yB4H G?Y٩#:D*f:kt3C+% ~5 bEK8x.H"*b-׌L>61( $!yJ9 j @ ITiበ NQaʕɄ%I[UA M-zd _`7| cI49`8AJ=J$j@pz /A\m 7;K(9r/>R..Z,/t2(/0R} %ƌC,L /zH9)_$F<C!/O?˙ې Ak43AI+A plzY@N17a'9LάIGD@hZG5%ۛ8xMfOxDPMNHr%(8kKxjҘԴf.4]-IbY5 ؠ x.ækQz==ч8(-'cDct2/,VxARlkӋ D- YD qږTѪ.2P70:?A C,"s#?E hk*M%NqBRk*590#VE'ڑD j[UTĐ9YU6UL"(7]Ri$2 D֚`V-;@ODaU˼KVXF= xBv4T+WYKdT\JW&{8  찷JϳJфeiHPoɌ Lu RyR pBDm񦾄>ߔ p2.X *]āya}:2[]`Zb$Tr n/@Ƈ'ZrF4۳?ɰTja(Y# 'қ[8۩ڛ[NX#tշU(V0L v 8vA7Jq`j ՗&47`Ec;P Tr Tb.T+##7 K݄2Ug*~ M e]ei( QbPt^<8Є-ކ%CER1Ej`㺍H4m}ٌ_2E(L @'tg3fc6πd sjpq 'scgH%>=D sI)B~? celF  Ts;Bh$[`aN%bH ǻM!(.ᢊ0ɤhX-J\ΕIi+M7@ WْAEĭ2IKSK 2!Q> ^PJ 0e,>V5/JB o;.ez'x or+ BQf#R1G!LhlVa 1QDeP(m>-fKQT>2 " (L7Y$eڤ}7B{Me'ش)>9>&2Gn}*Y)a%Zb3G\ut'V<`EܞH-a%.nƍẁV 6=|(pҠ p`8^Sbr=CBȟ-0PaY㒮a̛^ J;y(Se ^ RF)ieIXL~k9<\V'I6c_.}_hNR(h:ȁaȁh&/%Ҙَ;3;fe!˳"rc|HF yͷv JF蹊N2N *n2? hҐ fax(--C3ʎx/VjH u(k%M){02 ֩ȊG@>fxrdJ"^n`5Y>4`@N>}H/1bAFB44}*u*UA@] v x`@mBvJAb][fC~xX1g֕;dÓ+ͬŐ$ 2] f.5Yޙ{oo8s7xXM$nY9y5%6nv ֫s@!|ύ+ZIt[x7{AVQ[nOdh**QA/8ASN>4?:}Q*FaRH1T*VZ]Z|^^YVZif[Wk[IرyXbuص TV ۆ&î YAjffݧ$\t/onvF} +ܰa\tI׀|ynIai]u^"^|]\~+Gz}/}`/aqhX'X`I+t,C8F$scid̚c%AIQE)㈞RM@\G]HVr ;s?D@HJ)ոD]g Z)!0pa :PxLB!K.xg>B 0e!Pl YȬ4 иF1HKZ-b0D(# [ڿބ-lDАX E[[G(M"yG%, q4XA#B";% lCRQ H C)%?`Ò2(8!o{RTdus.:PHLd2 '49 PRx$I9R^UF+HxUpu35oY_u-.e3|?9rahe@!Z8p4MͺFcQM0fdRub" €(e¹_ CgAXkCӟ'iPU/Rk⋒g=i_„@b%mDNoȐL(Gjэ#F_?JC6 iH9&7DnCЅGA%`IA 8&-Ij;ج< j~F+P #6TT%V<$PQhT4usT-p2D%ci&aT6i&OnR*Uxo#TٰrZV+yƳkK"$|lzu-~"uP,](8P Uj!UH!RF$5 Ifa'? &Ӈıa;{$ hmb̧WcK#F52U M Ń9J!V`q0}HLۢ% QZ ALmB=5Bz{ࣤ#%F2FFR"l&'=HDFs8(RRxv\=E`قOTD'2FGpk:4Qp9%81rB$L3v4LQMTg1r^´RڔJhWÚbc W {-3>P s7s%pWmx%`v X" m?feYh%GjpvgQXo6iwD|H,>NlsnƠ>g) U5xeA#bcפHViSՆWHRVP(q@Ҕ&F s[F0$:iev4A'^tM$$`M!x;'5$NH?i J iIs@TPPsW1|{K,m\ ZPr &fXzQġ1UKnXL1XLMxōG uTTnȀ ɲМӉɸG؋FZ4FcݓAMiDPυlUP l]0i(ǎMtA|rtASh $A[UC\iBфPi`Eq`PC(FhD R*CfA$CL$]Z1H`C4ڣafC<@!m/h`C(|+!h܄lI^D1y4Z?HR8I[8qxqI_yPŲe|5ԗmzZaϽuKctDCA Ђ[@;\;##ģ< # cmFkK\{\A`u`<x  }ҝG` H@U=ԜiH%IT\Xi/tGv"yP4@?r˛QX |\5ɢ䠢D(>/8?<< 2Da8%M&A^Mi@?(`>Il)N9%@ )ڣ]HiH̐M LSvtAdaݔnЁfGrѢddxt"JD&j<P!8N 6f!_e\)Af58$ +,&9ee[V#I)zYb}A4f Q(ʷM[m&r`UHo>8ah_{|Y#Hfȅ*t\骵dHWvʣ@Xxf?n'l'#xgxcҜCDX='IP<_=E`SILh ^eh` hԁBDMk FD$kkkV PYKj0@Ml^O>v̍rGäLvA ـGpTXJXJ5@ne @ȡ@JėnBm"_>`"'ш/%)>zCj>DI 31MDM QĀ.2E\m2>2^ X:Ű$$a,7NBcԮ;+yv|'w檱jY.Ni:@ )A:@ o@f-"%id)c/|%jRug *c]"XZv&TBbOZ4JRCTu7M8aEfV\Wq:E\EOV rO \B.*?ң"#=~gxx2k#&ngn\v'@H<)H* Lъ*:Pf4Y0ɸ+xJ98AU4(GY,KF5+䁀0\6`L-Lif(ZJ]ƥ$4j3Ʉގi"-Q4E "H51WJ1.̩JVxONI5]"q[ b"# $'zu]&&K9`6ӈ;%Yrޮ*C;2v)s'W+k:֝E!Er6v37 uLMʹ RM.OIOYAxEvGUl8flq̀soOo p3Y ֨QsSM p@<RHAPdmC ha bC|w [ )%N1_ (M48Kô]&xtA"֌](!JwHDN51&j-:8 DOD59I\OUS5̀\; yVrZca`+y&bgS2.׵[Sn%'N9?*3k6%{y)}26a'nѳjrwJkvZ E đaԃͧɸ4z%q i3?&wv]vÁL@5WŒZUpsG@LwMX>pȬ@:>RZǯOS>L[Vd)8b*O{}fid)N[|K*-[E1 'B$x{HN< +,D@8q{1@Uh@`9l<h DJ:j4(2Tt#<ZJ#Z( ɧhקx` ei$xEV@5Z>j+iV"k82;1kܾ+u$- K1;,/tŠ-+2̎*FP( ׺m@6H,[ #. ;J9|fN );J轊ōTRR!VJ@I@lpvPA #Уƅ'HEk\х( wn ,OJ,^,r $0/L"2HC:33 0/9`=O?=QD# $Bk-ԡNӉT(TEM֣Z Zs)V(*||剨_`ߟ(*JSBJ lLXJ˨f,ib̥2k9eB\Є|QkJc% 1cC0\ ?, M`4GIESn ɠe֥%eWeT _7}}A(Է(XD`%W hx F5  -KBȭu+bWA`ЦC7X2p/AU ֮+&1Qj&`YL1 pEA#ExxFA kdD'#rБZò9^ ˲ȑGyb=PCcZ!ŏ鵮@Z?I5!O.U?E5X ?ò3+ Jbl@]:?(Z\]@ ).s T-)S9[aA3APT 8wCd)]wK3iBviA mudRzMqxzӜ$N#1~ }d Vx<`J#h7#:Ѹ7ˉJ7L\%Ց _?sM\?%P&Ww\YC_U*-燲B"g!B%|DB}$,0$NbZ"V>'|B%V)v .j}0NJ*\n +)|VFb(07 H5Th4H2!c,/e/ m|ᅆO`4c(2.vmxH`(, vhmNiR,.D`9 w6/1:‹0iDJH͏L RQ60kӸo8kՀڠNo~ g GORd4\Fipi4im"dfЯ:Ld6gt :Iڍ`MvbjgvweP6Ş2% U*e#8jR!V\$8}+|tV%h LYFd 3NY:lzLB Z`L%YNbТt(z**"S\*d+"7N+pdH#6&C 8.%*Bjj.,*(rzD4).`@kBDh4n6d,4^B.#^/ /T7*^P<9bb`:&H-4M1B<3[@\MNa?,@`pfDEfDpxB L)4tCo"ل -۶:Su̱=D:M= >+1Dv/'xɽT!SP \E?V$aTT?Y0Y(JV$$ €}FW&Y%g! ŎbdPDYҤD.$IPVb?d%,%r"b5J4+h3Ȉl2ՊEv+*@B<ɪ6``Ђ4<`R-+B`oF48^e(@/*`D"gfv TJ 4=]Y/)A?3nP1uSqFb(*b.D..v-1DB:`Gu:s!LTGL>SfN>LhL8<^fN1yX`!D%ST)'r?_YETh&.lB_! Y.lXH,VaT^B bzŤb(B p.vX~RFO ,0(u*lT,B+-(?RAH|a`Bzh f"?jB4BˬJ.zv@j=ktM;AR᲎.@" mb@+&fTF000C0Olrlk?d : 4DlNQ4vVqlIDdA9SVVtӎa\@/FTdzHul0X G LnFx b@u֋=S#ͼkݸ Õ=xOS>!U$"!U A"%A{Pv%`#@WJ ~ˆb` 6B.'`wE3 &#%"VrJQʪ4T$o&tj+0XfBepZd.cF*ps@/ (f ->@i /٦B"mnD`ܴlwC&Bl;DFC zDvT^>v8Qofi̦^ͳfհfN[-NSO-R4A@mV9nV4bU+DbEHdn66ْkV ͢K/pxkM7wytrDԄLvO~G{QXĪ#| AOP2W$*?W#EU&7{UD!cE)zCAX~6V`S&YR("~vPME] TStt,D6ZhlpeIiblwIRvM;inJ/.x,{(tM&ˢx'Cl4dZ6h5IC&mI$XA@nv9A C(&qWt9 8>ʎ gP?c5TQlJ͐T@A:ҶZ/@b.u 'EfuM78X،SCGA`FhK x co'vD=`u+xw{R*VU!P0} 2$T@5`E'~ [B+*lB:,bgDS$?RV*[% ~vcomD&>讀IEK@ (Z D:D@ɐRklF` mȖU'p2oxo7KIFV 'k6o6k3٠vdoS9&h&^wN;-t'{E щvĴgWV(_#np"?Kv#L,g7y+jF({Yb.LWTDEW"Ec"&EXŊPe5+'GNOiLڱB!mdķтy0#ݭBq?Ľ/qߏb?Fx)ܓ> tGCR|v-?,%lDrT|f_9fm7cmu|5%wֲ \߿S^8uj5mTA` 4Ш ]`‚ 䁍d37o1'sN`HPP)IJ@JUV hjk`R'bl R(+BĿXKw."@0w/]y!,x5ha ,B s-\DgJ .AhlڴdӼJ`>hے uo۾aE8fZ Wp,H<鵱Kk;sOM\nUؿqڗ#IRPXO7;8`A_9@ >x̕au DFt}@BRAH 0z7gE2X 0Ax?4d1R)~(sTXbI\BBdїbfY`AIR6Єb@dgB]bQ/iK JdFH )-zE4H;.>ТWAJAR4 R URQTU TVTSUZjVUk\|t%D`饗cc hxpyj]`e&mש&֚^ϵi uAq]۝ 5^xY?K͚hRnT}\;&hL+XvY@;fx$pVYD1J-($v@!*9pj*@?r|!-H?d"vg]Vy'D٢)fA AYh =dwԌiC t@K.0ӦT@N8tj4,lK*­>RSVkAjY& B XqYK]`oԘh]g\O-oE_ VY 1q͹̃YNQ&k/x 0kM/ OH6̌<8':*;y@D g&.tO|b0H B8Au$XF`L.@ C h"i7UX ;mn!H0h.M&ټPA#݌# E r x&4)"uәPJE r9I!M]JQAD*Rg慚i<Ϻ&VF5XUT#h)9lSY8OOρIBŶ#E=tyfCrD4"!Zd1YDH"+GQvMJe$2&Qsy@@Do#F׸ iw*ȟނvA1i<%Qр49zh&1/ -:c,J@ʒ+3*[;-?FB{zP/c3L%[D K_ h(_< o@C4b+h"0V :)Oy 8V t̀'G^*_1g:cbipҀ2Wb#dFͅUܦt&ijx )H>B* ait#m2\m#6yj -YlVL,]3`͍!E,ҸOY­.'G!֪*]1D=sQ~K\ܗPҬHLuDlTM*1օ=0YS[BhVhQKZBdWrlػcN.ˬ6q{-aLo|Zp6)X$*t+pDnWpU40 E/>Qg ivp'0)7atqoS)(W<OOc3Cfh` _ǑAPRPP,D@PC@A*R+Bgq-#cuC-wr=rȁp|m+9?M1PdQ _UU.3Bc5"2F6#5aUv@'~БnF$dg;`6C#x37mWS77hmI.ygGdb/(JiFu7ц4#_H7UJ3J4q"IGaIZyi;54'nmP;P4ʤ֤\{Lr) !Msh7EK6OYyIu&i9‡seip9!2:{jhbkK AK"%&yA( R$P4M&̥Ӵm"r΃M;qgP!|2Bymi_xmxP&C/e .uq~a~p Q bĉި-q*r,؁xJiAuO^z28g=#m7_AN]s!zFUU )S[H"8r&I8wFbKF8acIsxj7Óp#v6ZxgdwB6oc.2I(h$Z(^nWw8XC9Ƣ"XpyGZS8&\JmK'Jj$K#!d7xQj*xl\L%',2c(zJ9-2mFs9琉b9$P7%3TDeY䟮VϚld-\4GiFu#P#2ywċFdW#"J8Ie L( %ʆH@R8VJm"+#|Xi$[XyV"k$|Z&l&;#(+'MGM a{t*h]mG s5HOl?ܴy~QRtaSϜ׍Xqbú~n EqΉ,E/!`8Vmяmc9GD52 soXv|HQU 0<>49ta:(yE^'B!!W 86BrhU!IsH>yg 7&h{MhJxe!umIKgyi ujU?ɾw8yg$ւF%lYKsi j8y\M(6M l.=m&$G $-cDFsD24G8] qjY֬RIVFv%X'j <FW`MiDVS'7pC~3 b$ ׍XW˄tG̦8~9jey{$F8f7 [9]*խ !]jyq+]4,MyLt*3HhEd}1A02WsvMMۀ}1P5RNԸs0LuݤQIaEbq,Ρccxw-}˧G; tbңҦe[=Ue# Rp7%tF%o4u!5ՍEsV;p#NpFOSxz1HG?μ͛ə;`|3i}5H$:HT3RZxbgٿe2jeGvY\$;;+̣d'<{ &y4q!״+)jlo?%Q&P|8D]b腮v;MOP|†z, _kVݝJ,t.$5RS/7/'"_0QR )kE̬"_*ZҲH՚FIӘ qE@M&9[_XF(pԂR~hՄFI.7\=FB#wlՌ7_S~7IM;;n!YOy!xXI[mb&Ce6RΠ bשW,߅ j;¿LhQ6j(X!  A4@y `K (߂ '0\` * Wa@  :j r}+W]@Z,"Wܹ"["]zW`ewaw+~W0^}!܅9,d9pfp \4`PTjy7b(bJ1#se4ZzytX _8+TԢ.JR!no` s)=:*I.Eb3%?;?o>%)e#0@8ԉε%hIlz-(Z(Ebqh=σHIt`)\LH@I%,92<Ǿρ0 0!x@҈ O=";<*ʧ~*tS2#!sR,մvmi\(~i *ذb֨zu*_*-Vkml1l}Veb+{n7>\ғE!+Qij ZN4E!>B[ؖ]΍m{H%荎"Ҳ"!! U01$M1RBw'=gcE"fSDE ^C Y %<h&L SU).)UPvo5rlE+ +Ot0{Vl%{ -&}} xK\ ie&5.IT?zW>ł x`!NqDV09CHuR(CLBF@>Bc,PH4U-AqI(샟0aOHJKTdK{v9`><IhA*fRgukiZTG !)CPG8IDB$] dR&8JSMQ=PPJik[8'>ڦ`,e\9W:E f6rWjβ| -גB[$(:.w)iZ`%0oi%Ӄ^cU\B1ǻ͠zNX3\#S_9w[^U 8kq$X8QvAmE/p$1.ߢMIy6X 1B8p0?ڢH6UN=Z 1҆Z+x * aX>s75QH8=$__I"˛-A+$ 5A9p`)Z!3y0)033s3#OzXӉ,1XK9ӝ?Q٬]bҥT3X<:;[;xzBs;ßB{ 4ɋiH5<hyPZt:u: XCbϋ.9 '=d<:ˎ/ԉ==ܻ=4k >r9?Ѡ H+j?Eٚ13) A=,Ӓd Ūa8"R+ ypC%9؁#s6!2#<>q2Qa:ӹAj3ې8* )gZ2HA3 ].Ҁõ 4B;-%Ӛߪ4RPl!4.4njn"qr sr.tBwAC ; ܘ- /]3/"6:H=Z(֋D Jk`1=Ǵ11qOt!(/0X  x"ꬽ,?{S>0!"#- ; q'ɸ&rMt;>a`@A*r< 9IiJ!  TȪG7021+N":ى: ;\A;|7$Š t@;(t(B).1f10ɈDpd;؞|HCur<6,6`l䫚/"*ۣ 1(K8$Ӱ $3*q7N2L$#i+>8? M!8H"+՜$?)D}ܣ݌ڐz!+Ĉݚ Ң17L[Ӌ8F$jD*+.e}Ty1)9qF;<,Y)a5(9}Ք4e9.dbVIo1R`Cs[Tm.:k'P@.Ryu ?`R/vu F[!IKI[ A }=:25EKQ,A^Lg k qJ)}ǽT)$ !*{*&af߰:ߝffcƛ˖$f@pAiEe&YHip@/%ʞ}&>Q~G=RY:P?m:ySuGI7U \u]] D[\%YLmj+rݕ]x%Vخx]v*v]TFay?Iմ\Q6+h:k  m2 "@lq{o͉\.z П=qNmA u#z5PAKBl7%5بtR[u9S:EL/ޫm1a%˯wJV1fĜφQmطA" (?d[Jt-$h `NpG_.9$hӼ!: a O-gB-WsЋD#(Bc|3knXGVɄو>l_qNK S-^esjD6hR#Ťƌ65ьUM6%%i36Y46gi?κ:"~јMܫƞ#\N.;;]QfYYL,^F/f5< Ds-i`( Яk{I*=<9{[xJDn4jR mk@VKXÃkבv.z}߽WJڗHXsȈj Ct8ОFDP{ "JQHK7"b$&UU+-gF,UV5 QXϔ|9ppR0Rgs+)/F-)ÈOeK*!z!NE'`+Й U؅ՑfeENcdO]Fc< 5Q י;`uL) ٭_͗0MSl)D8 m:pƪS G9; Lv-CGSw1yGJuWxpzDї$T䡞L@HTDH} MѠ JA[ID!MM ٔ#vՈe[Tɹ^K] b\٠ߘX0MX\Y=YMIDWז p#%_E˵}DJ~ ėi%&]tHnPEFׯty=̋t wB 5dыOFKhDېD[6|YMÝH۰Mؓ(r 'zI܍*bƹ,jED&at`ܗL$RĕMJ(1EFTŗFVeVR+NReJ0yDIԝbHD ~# p `Xdؕx@$:!l91仼ө1Sp=1a-av] yIII =DaL J䖴{-u]J%a5Q@ET 對ژ Ӕ(q&YMT Wyybؕ Y^<T!|MN}̉8͖B]¡\P|~@ &5J5hL@.LDj)ʬR^NOiNmB`kfԡTJO(Lzl%=ZopʉT[D-KCmPfjFu-TKGzML=5zө{adj&wWGzP߅aGEȥ}]UJ|ДT \]UKP }p0_ȼXL(RM) )MJ)Q LHL}DM̕Y\"x MEX ND '  j|fv~R*k.a#kʊ0)1RT]mJQ2+϶ =&!w_vdĤW{oZCW޽Srva&=p]d& D^x'|LFI^AInXȨTFޅLGy^ZN\U!=+WT\(HMa非[Z^PuI͸k$b\iD@^H|bRьM0.P-i=,NRDcANCj&2ĖNO,bqi/1Jd@ Fz9>OL|Np<6ו ! K!- C"@9vVJ x qSli]ړ=zZB$Do8yɭG0{B~!CɄޗ-pGrkQ$P9e%G@WVq!>n a%&$ $.e\ yl \Xk[͉屏E1C c yFYYDcфPoDqvfE~%Îƾ+i)`\:NE1PdGco#pjn * &.'*mJE amrKn>pW>GE@mwuW0pҰ|pS ! |!:sq4im[WFjHx1͠V G="ܲ u۽%X|U[I͇RɄM"oέ*ZPBLOP( gvl J,@ڜUlnol~#$FU)P֘p}rr05ؑ pn_-lik'o]>>+[߉qŋu򓰱j5Gu-:m>Yڦ꣱B!j3;WQDGӶܺ-!P1F5XH)t, H:GGCmGo%I?A%WBͷĕh47}¡bd+ZIN` ]BOHȬ%d.418WgRNLMLxf)U5XorUe鈻0#o")a+zgjnKKJ#=6dK]qm0$q^Lppy=IWtGtdjI*W&|rxȭo|4Kn|5r' :'Se"rrsT>K}ny%>ffwycA_GZɤ!40JnJ )U,^\f_M7ƙOMRϕȋZ&,7'ނX(N? T}$`WW?lX{,USEVhiXom&!,Ɋc^L@Cp02_*Ba`PpIjrfZdy>^@m8. 3aG`Kꦾ:.9uGvd ϭL4Ot<<*2>]qMFQ@ꜭP U(E|`S '`z超׮Bv \{&ZB!%"̍, -BX(Tflq5ѣ]f]@ס&6غk&;] QP@ @8r6ʉF?55|soWyy.NXi>ӟ rS *o8A!6J**@B A pB1 3Y AjÁh]q$ i#UDhbPJ' ǃdq!&"HFD"6$ Lh%ؚMhI\J)(ϕhG.Zh@@ ҥ&'JNl`T= Ub++ Kt2z-0451lK h6ZHmxߎ[eSCCѺ;v=D+lo@spՠ_FQ)UIj vj @PzJ\)MI]KPS髮VkZ]5VHVc1ĄM}*39-8eEm934Դ@F$^NU=Tk?4EV2{e.Bd#KX(1")򣻡EJ됑i4Xij#0 AD!b 'i0K<07&jxLp# QSdJH UBi(T\I To[R8X*()9ROqldBb*T-]X%tK`"ʑN1 J:(1L~׬f4@氞8#bn8!: y46hHO!ͩWڅ$dzct?z.yO}L#gar"1|ܱȁ:/ᦔ2D2@9>+ڄfd| 84De8*RώF>HwsZ@=$!4KA&P&@qO_cK7j0b֢I ,ehl! D~NDS 28T[_x,UKWGHV]&W 9䭄+vGlg*UIIFhf2yJO*%Vx:HF-y(tS |KetH%ll\0QZ ˤYʥZ* PO~ }Rl,6r-s\% M% E,/0/ arXEh5 [ZZ5xs$UlCJE\>T@PC+˸gzK=LbbQf *./g4l$j0 gQkO<&Kɑ2#S3Q.sT]%'L̚a+,n"n gjrP(sJ(-ۦ70U0^Na/9 m'5<7N6\`#-"rqvǂ$7S:NNA (;cQ(JbC4CkVb &;҃WHFȂ0EBFꪕ$eH ZnO2Jjt$uk$iF5VSUU2/@__ QʣچbF"(4P8O(!]wr>R!. cҐ0|V~7d;#w#Z905HT(3:2/! ! հ d#¢ >%:,ʌ%DZNy0}c}:j}ĂO#}q +FC;6ٳK:ԁXkR/"Udv]4Y+;'kp$jp&kzT l`B]anIrJUk3Q\b(pFA$lbu ۞au3(V(|S"Iw7vݲ xW(ԫL6ZO8bFyx8P~o"E!LEʯp1ixC}}(c̺ə>o{`)7zױ* f]SUt0<njwAWZ0rZ $N46\ie]In (D3vzkiIR X/$Pñj?˅hc^D6?DcxT(z`"C,E^y]%Bl~"#pGn?뒷C{̇͸|{Uuz}OxelL!Ey]ԧ;_Wb< ^"*DnnRp+h uzϺv]]-֯cg]+V}*: _?n ΁(st ]Еj CF$ѡ  d$.v\A38ҍ-(#3?1QH GF"1\HdGIH#MpT, QSG%Nf.`&O1YBQ<`&Koz'LW0VFVy{^^}sZ$%Wm^Qbd(X)cY?HTj8fms\jz:L;cƛme%\qr&M-0QUٖVV^r5z[{(Z͋/Z~`z-"U#]Xqx-qEXƄXX=Ҩ)6>n,cxPLNFGrIE>sPRr"5K0=It0 8%O8tT[fTyĂߡ$$uW]X1{0M^ vWqm66zthzH)`-IdT4TqZ:YFCH5”خ7Fn;x_c=\fZ˦{v kjkvݫ5Np30Yh0WFz9Χd_+HeHc,%V$@8tL %ɦY60JF)t#Zϴ4r>˴% N8y8N{I 3S5lAl^R#Z5e4[WJOu$UL@Cwb o2׌tJtJF4x ٕt]ْ:PGUNr0kgq[> m/"IU(ŶbWF짌 E,7Tt# t46\"z3y`!x U!,aJ*# VzJZr6Benp9T5z`ة  ]kEme&QR⬅"R8e#H~9I;؝zͱTk_f,֎W.m˚5R{h/_Λ([ӯutTv P +M}oMcc%'TC'-}^@,PQ ,s6`/|ۦ$A1ܘ' P(PS!dnpN2.$]B$b3y=}-\&ȾC*܍a%^yT-QM~G $T`^٦6MMC]0Կ=٭]H:=]0n$:DN]EMMӹ^ծCbh_pV>Roܙٳߎ,\MBPA,#acsw~J]^NI/RrV>즍Sn=\_oKx=מr9ٗ|^$Ճm þ^"`vC=?6[CuN{cNEբdhoR!]Ө?\bC8ܦ?\(&5(׳2'd Pݞ-xxR~BoߒsA&`=%cCءMh`9 EYҡ E-,X=|Go`x )0cD$[7p^LI.eSQNZU d(PH Eí",Z2d&¬(濻Ms)2/=Oۊ|٥{n5\Iic+(|L-Hf2f=9pl]+(VܹuoW".8M.+&=8W#zg yկgުw&3>&|*Hp@ 4pB@tA#pB!,5%-:0;03 >hJR&3XAJG5BT9C! $/G!yRU)fDH>1:kNW4WVV=F& D18bZ'J9I6B wU\iY<*7ǭ۸TUȃgЇZ\+ 上qօV]DMtMQ xRPnMMr`ԪebʞfGOd?dWp_N;IrYո]U͵\AH8 wQV{daFOhFJ꼢Pg_< R5:i|tG鷰͏ǖwW[aCHΩعtJJqQYvbx^nKRF3=k^V.ۈeq^^=Ai?kX٧RNDܖfbbYVu{xDV>O΄cϕinIhiC%"i`bӆgR>J7yPKUPA3?鮂RIM6A`\j\WQ'}_pG،]~EyuxWŭqoGG͵tVًn]c-pOUWMe4%^]SV0&}Xd==cHfϤˏgSI-(o^|B/s¡֚uí[?YGہMZZa@,6{OŧΫT7ܢyr;*cI5bǙ~ʱN6`߭Z63^ڴm8KD\dq[&~hiMyڗŇ6#&ʪjyf䷙ÎqUUUJJJeee̚pppʁə/WV8Cyq*/?Afe *\ȰÇ#JHŋ3jȱǏ CIɌSXɲ˗0cʜI͛8sɳϟ@ JѣH*]T苕)JJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ce`5"V~^̸ǐ#KL*>ӇX!CVVyMrk9Λ5G;`&Mܱ;#1nL.֝괱c:^Ë}j&1]HԻC2MջXLXoui=Uw{&b 療 W-t#I7UȩA2Or'")^GU݅\t(<3|)8!~RbH& ?5^JFk.\ )?x\=$td}\>s)'Pvsn?x8qp dfCU=UJuyzRm(^ue\BgJr3e/Rף@)ڡѦYfjR?N%穋Dq)fk֣%kRN$cU)@NjNµ ;%>!UN[nT*&GRAymؖҘ2+QْY3)sSA?$rK$1*UOy իt\@=*՘$ͼ٣2WP+ Ό;r>a,t&[u,!z..$Ssb$+]іBkFdOb 7$^&:*i) *?w-k'ZqNj}sOq~:cRTf F%u&?ϕ,P{(?P4}\U%a,N=O;ryeȰ>+(_{^k HL:'H Z̠7z GH(L W0|%8̡mH.*?G" c !$6Q) *ZXԎ%tQ+AH#?Lר6jt $vD!(=֑8Cr%҈\"E6 2TrJ%J%\R1)ʮ2,AE.8QeLy#HddIKU*HiB3-O27)YӜB+'0Wve'VPGV1|c3wreT⸘\?d0H"12I-Bפ3)͔8H59Jàfd7Y!єU)Wڴ[gW`S?JPj{ď)1jThڕb OUCd,ed;ziɑ. E&HEQX7hG9Ѵ$t8uIETiMϙR+i;Ө\!OJA?s*?3R,Z MzCT$Vy`Un[sv5b2v} $h i :x熗[ǜ2DWMjհ>6U|04UX]Dvt֒ ^L֫T*0VJLgEՒS +[ӗk= AiLa9ilɪYN*|'/JSX+7_W;Zw U&{-'mD3zϕI[]K̂g]uZ V5SmX@:NF/kټZ,t(qJ[tqTܻpaw+Dg9)沤k[Az. :Ȋ,}IMaJ.GO1jVd!{=v4ݼ|ۍtybiriϴS2s\>*??'۔Fhgr[`xTEaT6c4D~GFtKC[RUUL[g_o)|7GfjQ̗QLR&[MvIgItNd{7}SQptjWKx 8a6a)krFhxm'O:5dUc(%hOzֆ(n4q~FfzyGzsg`a4HV4`T`o|`cfL`jM3`eeK؃7WwwF xN&Ї%axfjvFlT8Yy\X4GPGYnwGts8qXa0qC8B(K}i*UN'_KoL{uo|Տ'ɇ(gvRĂ,ȉkGIxIWR8X(}`iw&!wE hGa~bb)mWHx[{Q!vG(n8s8f4dqhYyzw%iBhmdzv BK 鴎7o{m)eȈvz;ɗ~Wvl%7w= ue(%$Yxi'P֙I(w]6y5 w`g9D)'ҘTOڸfJGgWF鍲w cwzk} dNKc2v85ILsItY|9if;E6قYjIQWxi{TG9XلEcGhnFhVQJT8Oy@?wDY}a{Iyn iIXiy'yPBԜ)!6dYKKL%`W#^qL[}ɗjlWieٟNmԕVMwwiN*)jء4 *)Gx:xc0(#:z+rQt4fM $9 ʠtzWx!هHʜIUU` JGTvޙIhw~gaEXZvf_%H`RVqDJTFhweyC !!ٙ*9JSO:YXXְcѰ'*9DyVrWqwtR1q)Ɇɐ9F; йejԜh4 `CfiRvviմV:jiLT_TjG& 晭e*ZZkU@m uZyFZW9&ٲʣ$9xyJ \K*멈[+%3j]Zmت.{#鮚eY)iGJjEkuYIhsٴ IM$\:zں]avvudzg8Kԉ")l))9Y|3)OZKkh?k;[$[˿J ;Yy{ & qT|IU{SH E(c&lL |C4LJǜʼ |z]sأj{CLhXP,(컸]d[1S19ʿK9Ki |7ݷ` Q0lI%8dܬvYVS"a Q֝{n+}:kÛl" j<j@ x\뽯r롌: g;ʼn}^[Tl$GLhjfJi6avmjUh̪uX )ULdR<ωeqp(ɱ>:#=4=`˪JYIxj̑ج ɜ[x\Dx, JhA$֞ a;(h|_7Q0XǝI:eGi-LL) ̼ēu " =ࡹ z#:@T|Vd&`[ h;689t9͂mۓ~I,MȻv[Tqyl-p֑Н_a0֞`l|}r7@_ M$IJ=-ܯMS#} O;ӔJgTlg RŨlG,k# G}Ǧ˵⬺|̺WRJ;dfn1\aDRw1G6{zM]e -.@K&"4@ Ȱ gf>׫GTrs1U|,zCYU ;vޡ􌮆wcܯ`@oǜ4kLQU:ϝ`ҽADdRpoQ؀$w<~~><B?q"I (V6mޞsZ+}eüRop !'aB@&3ߥM0Lxƒ *m#?m7ܢ[Ћ e9 SF-]#Ke҉+3A4L}ė#0/*9Tʻ.0eEj azP׎9[l"fUٟFDqi}ZmEb;زlZj]qZk\KZv;r#J%Izh-aL|l41M5E ߄bQs78,NɹEֻx KF"!nNZ|]0:I JKU=5 6<&Wkm͉gcf%ߖRM$,+u{K{j CXZ/@Pڢ\$VHyML:Kz8VRyƸl0qЄfaa_gf8ka)ݨpL#0X]9:$6l>qj*X\wnmJO=-ۉ!2䃦9ZC41r:-t:+:]B *;dk lRcEd7E@ @AX @rB-H{4&1ThphZClMS9C;%/mrͳ&ⰵ" B 825 ͜ąĞ?$JD4+(#HJ1ӱ.k@J\Ź xFK##2"c̉be,,7. 8: @u{l7eFT <BӲ7" OdQv|ͬ{DH$GKC|פGSÎ@ÎH܉&DRMx> [& S9/H I;SILMܿ׌օi!=Ȉ͎o͎`RȉCɞ4(Ώ܉e"ܔq ST{49:+/0sI+ȦZyDž9;#$ʡ#DJHOqT eTԱS; 5P-_LFмJUTՉԂ%T-5 q KD6uuk\lU YըFm7mԩQY ^̮mф[O9%Ӟl:D)NZ{jVtMik8hWq z\pHV$IN͕mמRHhWW1t։ 1?Q4X|4V5S` '$9p}%ΎXNvN7,8&-˭׏\ 1-1`DH4BfȴM] 6y„}U% ]إ7-;5JO$Dm߽d) unYޠٜ Pz ,ASqC<]mFGL$IuXUF0UL Ѧ#-(ۥإbL)&/EX%z`bmEL։״[iE`Vb>qo=uᗈÕ\8T)CDž N$zaWj\0e^ĝ[HhFٜVTDhUf`>ʒZeWFMX-Vڍ]+]ݥM]>%^@ECm^T}@FHE8T^ -(iYM=YMKM= Mmi0 .)NPEF FZqTjŌ߮=}G>ejU{eыQۺtgmkRcN!kd>fX.pRqR$Bl0fmo~iu)KfsXНD=<6-j2Jn7dm]UD6dO~Ld۝]؆^,g%%9],!j[-lgefdpukp4wl4glhqf<0lF748apEwlgbnM"^gi[NgdB-\H fp`}g.ۂF݅-5mݎ1^<)LDv7,8.Yc RtI릇nLgM-0iMAZ7iTs_E5jmdoFL=U=M^OV&h>`bm|ΉC_Ξ[gG&h?v$kgfMD=qwM$Z.ͦo5w>+&E>-&_0-$Mf8h0W*|b/~6ݤ|1-L;FyD)&٪`tGczKiyyHWHtf闆i DVmYԃB#S=ohjiBOeU+nIs}HfK<Siт )>!CbOBJ ~ʼn"rq@,8PBaCA$D`SE,FdG'D<ФI?TI5Iuq9!yLQ̈uVP1åYE#pnnVU~u}_{:! hjhAzX,Z(DV82'Zt*[oqޖmeeZm2ݚPq.WA%T`TRgj),U'-@it⽔yDdP dHB矌(x?#=x@t!.h/ʻ ƈ)%}1m}$FBm{<$y#@HLJSWvuJfTWqQЍ٫IWy:]6wB`98J)VhEf%٢Jf5ie?F AQ toivjYV5\<GծSMTFTiݙIz&B O[TO&Dqҕuyywď5T' 1#xPjxػ;D>aZ,,p<G"2&0%-}r1Av8A2 %ySPHPua>8-zTT+0W_N6])0n1 6mOkkDZpoJtAj\3d&26xЄK˧֡ Psj P93v%5Eco p1ILSV'fZF2fK8fȇӺt5]zGS; .w=2Ȫ4x8As@[KD2=!iӘAFfdODIt) +]%&`tK (|Eh-s, uvSr>eiXSL "*9ts4BH8kQCur7<6xL4&"\)QAC+4n_o +WRGcqL ))WFg{.u)#Ә W!] a0w]pGAC$:dđ=a )p=2Lu6{x=lOH/Nc2$g"Q7Ur ^EL%T? BfE&D'eVӘ688kJgmP*X pkHj퉩.+ :ôE0jyA/Ppzc +)8haחQ~N]g3qZs?T}pկ"Sr1]x?r%BcR"0hxBQ*jUa!Y5@l:=·kK Ŕ{i6|RcD?Jgb^ڿF-pXP6ǘ-(d[Sխ?6КM-6a䭖V7Q#9Ȅ5qyi<TNwF=* |C*-|`> UVigRCW:)D qwW(Ĺ}Wu4g ^=7VhX9{d#䭚!xp==5 檤4sk[;Jܪm%wx Z>РwML=Ce=M͓o 6ӼiBo,Yi9NH51jH4͑YQ'jzf5|_N JlBvhB5"_iO`T@]0!u0| lC鐮VR2mVw?8vxz^&z8HeXGd]d"GxNOUƚ7YZv܅'4" d6oд539۳ܠl͓6=YvOg?ɭ@Ҙ塛ӑ&>D# .`CDėC|ݱ5HUλZRμ"!LXD-[VhUMJm=Sab^߸LMa]1'̘RٛŜř^- L5A8E\ :A Dч֌ Ġ@]%\>I\M2\՜:ߝa/\AaA'FtDE]U_bLEڣ_T=F5`RMQڪqY mhXxh%TIU<ȠU #`{uNz!#D`.ʇIU9>acb'tWB&%N ?/]$U$̍bb SHHH2}ߏ }@]bnDpP#&Jm?$9PV p:eQȁǝ!oM%8ɍ i[$)XHꙍ_W~)"+FZfAd".Z$V /?A|=fLm b"W)}G9H*$χQ7> ԚALUH r&Dl&cᩗNq0B 0b=VEBZBrB 0~sBbDb![^vJdT\̍bI$AˍdB&`V&|^}֧}. !Pdؤ %UE !RbT\TEjeNQ$ʀ!\AeS|m_Р˅(ΜY)gg nFD%.bv%rD `) &W=&2&E)<.CH&e)I H8CY#W  D!NH"#&lrzڦN[#a:ij#? & q_?) ޞ bAŊGB:"TgWS#g pYUKΦN2L)>^o.?*JRs rS<䣾ewnjtsChvעת"gHƪ}j}F*Y*g-+BBBF+Fk'dSfjd_՞xrZ')N$ՒC2m_&m.D0,'肒r2fc)<>fDZm` O Q VkrUBm&Դ  L'6`gFM>fh~w+ւh+3pG(yfzBfBg~JxprPV14(WtB%8³VE b BD^0A%}J&h|^0|bNت{mUkꞪtieBm/?0l. cVŔo7l{)zU` [ hA NRAH*HT)X:`͚fTBlAm2Ds1rVfJg.ؒkc-sE~*T&m%2M-FJ4?dh0(.}`h04wbT.W-sf;1+12s -0W/m@k1Ӯ.٦.3j01}1-&o-oZZUt5˄T! 7KX &¨WV]񶣔bA/r`RARTGB,d*TB^?(^0v0n?xp:/5g>?s3?c@9p'86%h4(n P8bpA5. kUTsUؤ23}x[v0cAKCXmxXg?*l?uI?c`u7X?&tC7&_Ap,>R"K") Kt7zY79 HCr:~kl&TpcA7qw> BP[)g$vB4UT?.b\AU783hBrgڮu[s_3 eG]#3a4n #s 6W%xK8BcW(}x35905+sxfCs; H[g30gclk.6o,V#.7ˏ m+9pt Lu}!p.(5p'bu!S:Y9YtT߆6khd1a2bˤmZa)˦W }A)W'lʒlg 8$ A{tyZ (']0OIO<e0dfjzb>rDukS4!#iMBxj9.SQnZՁ*8Ng-PZF,c r3#Gfuhdk[O FBu醉$ |6"]쵑_h"EaX3%Jʈ!a> ]t"?/~QjrGaN1\π_:d ZtL f-HA9eʒp# ĶUʰ# w6DRAHT6B<p'7vTu W,oVX.Cf<I:sϭnэn# $VI7{ˍn .vmwK${#jDVLhE JyH4J}Ma ,425(kvVvSH-֎ o3NY2X/,4X979)NPRXnv~R\Eرa%lk)Ϫ:LSLDysSTjQTHo%ěqn=-Hg'h9rquS +YZIz/:rTJEr:Wvº-Bﺝ:4T엨B D+ĩskw-8> <穕1I\Zɔwu qBo}e.ze̫.w^˜'O&bLŒI;6`ϬءmSB1|oHg<3كTI*ei]+;%XL^[r3L'g᷈Go+D䭸)G*Q["y嬞 K úQZwr%ȋp K%.K p hPʚ58 i*;T7O͓pC,0cEjJτi BqzoLZ}}[#[qQ$6^Iob#qw1,[4R!<9C4cqײ 7]BMHFZ%#J%kQzPRWzr|#-u+}y=-|KOF]XHЮ*4O, IG,>ZXPgcx:eiK#O܈ (O%r7D-·Zrw5Z*ɼrg5F+M9 r|3%Q&Wy1w_}mUe/=+Qמ{߫N^q(Hm+@@fZLֿ^$3Qe-K&k=Zzlu?dص0ICryoj'6Wu`_-?T|0*~w 爋Ak'J-9ZrZ-WHƣꨮѮk'.-"Ћnԋ#^ @D-xBordL(8Dᮿn.nZaxnntKP܏V˪ ٸ,L*HLFFOƐGHR/Zϰ/6P#,!Py# r/,|o'|/up' co) &(2Iʛ$JM*$*dLBoDدQNVNצ֜Ob#|ngw8@섎vb:lZv+û΃*P<6GNC+7huKw>@oC6"8we xzfxmOfQf(dHު"2Pdi*⢍4!#2R3 /?G {+ېD@0r(.uromk)R*2*96tLDT bD "DrwE6޴E7" >TGo4GbG9B)0+q# 32:s S8}q8mnkCK!0*2:gesC4b4<kZKVӺ@lCNuCTtCusNGr$M2/<5$F3 a5 ?_VVarx(#H)('*pފXG2=4ZCoC9Ǣ" bD #a\\!GHصKе+5E}D}D ]E[5C?TOO)VCPȌIӵJ}Kbub1c%(',KWhx464?P%%T8 T̮7kb4ctPy9nS!%R ;#: :O;TJ5~J58T;$]Uj$ Ws`%אn +,ݲ I)).wYRH#XZ[Z#wZ5,\\a\s7[=s77tIws=sA5tY]De!Gi7EuuW7*}4_*#W,) ASOW0 TV:'b#8b6ho?6+a1+qv XRsEh%QNA# P%Dnz1v85laySNj::o<ÓyEhT S+T$3m;x%-o#sAcr n-ڍh؆ }okXbZ)_54ZHsSWtGKtQsMw\@^uO]XvwBFegFކ҈)?붂OT7;Wj!mq#rc 16˸: ":M3s4<>YZؔ5Y5' %[;kp#j?+o7y78V7VQ,_&sTA@H]TqBsX#4wu&^7GM7]ӕ^stvwX$X|BmV.0떅65!wy7cL"\T$w|NBqJ3'>3EWbV3t[T3#LL?ePdys!vh}GQUc*#XN喹!v/Kk:zIIyoUiU6%GvoBAo)/q/Xy4Cotr!^ ڠ^eWQG5,2wBH @0@X2]Uvc,L,-H6@/`\Za$a㳶9iЃ}~v=Ė!S h7Q;u͆mX懛  +܏T> O?EoE؈{Cm >ȿ xe dXPؿ [(Č;ND #d?'8-Y3M:qZRpOЎBh:I .ҩjUjAWr%(-2մjN9{vVSZٝk7o5k _w{mnuqq"8JMtO~zL6]Vlf5ɦ)%H3?nA'Rg#6)K5Vy-FUjg nUإ"o@EsL'dq XYCY<@=tOqw4ބ*Lc݆I$RGD's2,#u8HDAB$ Fi$E'$ G=69PFR c,XbLS VS#? &(`P{UT CGR WRʼng_Zg-u7^}E_Vs b)֘QfYA438lgh\ &Zz i7NǗY4Ee?Q{P]6Yd?Ҵdvc.Uv[W|hY5?u~I:~0Ǽ;-HP'dJ@LP0M;DID#B@) A2AMD-4241?A3E?dTFH cёAUS4AU4$T!eR7TI,qTO~O P n&sgQBuKRhU tA*^+svStJ`~ب*70eݬzٱ q+|ha&ﻜN;^g{\ {_}6qx(2Q2`s+V%wK<@TbgHP~= I.6E IJ@!H3r 4y MPjY &CӆZƲb ?cnȋ ,#? qvC6tQm3JBNogB B3#iM̩(Kr LW\̫Lbs5Fy)T#[֪n+i3ICp_wɋyxC<,IAN°iZj7VEe,qkk qD d0̧ 4YA%J8$i,E[Qu$f=\qh@6B%q;Bg,lX!Nh"nuf35 ]D$SFX F$)Gu6tMB`eRQrbҨŒoc#=,H@?:h;v?ԤRIHB1*`Dh6 ()QӞ#b2Y8R a)neH'>mY2dnXk""X0.;]$ؔu{:aQ@B'!Inl"H*k%KL2M`p\~qe&pHLo{˟!6:P!,c4~de-}=u!f.7U3A1WEYs#:##tf%PZCCt[ Ct7tDCp\t#A3A2(\U UuXUhUGBY27jN"ZBNZAKh \AA0MuTb@%TD13&s]ߵ ;0 Ef rxgY`Ykz3zoy#z@k '׆Cm{157ad`dN"EF|49t1G#!x@ Vn:3GH{n=:bb0f~Q~ Qo G.oVo7D;vA;~T8'J-HL#Gr%"&^e>=A B` ! Pu&\Ր)tJdPWsO US%c36kX%jY2x\H%SH$0i%3y01v2McW![lV?q@!6`51& 9#e3#EihL?z838zFwt 9cnĤ/s @ X%:ΰ#: nV +Hi!.fo W#;|~6ɍ'v:w5:wTBd[QG|uNWb!=dRh&E7Ut#35Z/fłHCKt[g5uQT :@;( ` S Qh A62RJ hTS5ڐPڠ$(D#=i^ev>dC IO j7zm)vyyfl>o?v xbve70p ې W@ 'B-E9lÐ 0א c/b SJdb ?VpK*n3}AI a/3 ~1! 隱Sɨꨒg zU*;9d1oAkP}aFuȡ'=5!|eLL(<3sRE6b^=MiQ1>7])(D DO)JTكzY:ZO"٠"+JAa6j`^K) HU`3 T P% S7O )3p < k7}U)v k>-.Jz'130 00Lʤ@ *< *l3[v0vk%[ǀ'Z; oO[}SyJCl}{ Dnw xQ|})oqK 0'x2 Y*ƙ Fr+Vp뚛t*{ݰ ,q,*@F<+p}< ȒHqbA( GɎ"`yde7F,F>#>as&igc0s \t 12yD3t81t TWt q z *jܑ ְٛ * A蜯45^^X\ؓT B2Ll  <^Pf'T$LI*xRPgw mp =f'Q%&^WT$k_7µ|uanT{m: GCk}7SAU P A}/`<RB4 b +6q/ TXIpѸƕq;}S2le:+q,<s!bT!ɇGT`_Dja>X#L]u˜?Y7]Yg 1IɌh#4O ]O*\Du )D*<,)< P+j&<@ؽ,agiva!! H*u2,{jjy8 ͤ`r*Z+ ~ U{7:P٦b{'Q<* O}QL*W sJ * }۸ ~hi W*IJn,zȇˌhUqlQK% 'S,E=FSF#X6Rf=tId*-#)}Ԋڃ))>̑Yu|| HEh9 {͙l V ")̼)9L |] eo c '^Y2޺Wu"EPҍY"$>^*=Z}D=^aO. U|. g Qq+VqZ<'q<޸yJ{,%;K"ƒn;&QcCbA/ƱWڳZ=9g~ ˰r6>K"sh4=#Ksfs MM[GO[D[|ng_\5ڔp ] Ν)( mߑ\ L4B gt^ƾy >ki^u8,+m]knY3` 0tJW@WON?Pa .1(0 `/ƈp׶ƎZpŇI֢  p$ '`7Xtn ETE.l̨1#qxǏgn0MΜIp ]$5ܵ߮Z*tJ:t1[lEHq^!ԬqYc+K^dLX0Yڍw.7|6M0͋.6fxܐ׳ə'7lv3䋗M D-[iE遵vU߽/n

AS.JԩU9ϝb$+"~Efjx"Я0 T,˒:^yG)W1ÆLp g0ejX܆Yfb"grƙ{!"wHofbșRM/j(1RK3R"bI.٤N衇S=l І8Gq8ICRHІJBIqDt"hӉSP%5v1$ILUu5ZiU)fr=UlCl, 6,yLD<Ƥa',)kvCpn[۶Ԋk/u2KqY 1KF쟻KWf E`)ג $BYA:3 7Wd:[3κd)=peA8Dc:S6T$!kn!#pFstF3Mr\qƯsdQaV'+v̙~I ȫIM%fAvS*F[RP> zυp)$汸ˑB:"O: $Yҍ~ޤ@kj I|TUwYs :Qu]̿"mh621f 18mavntY  q@th f{ ;B 5zعKD6@Y\*Z BG  ɫ!hH&:>nw; q6 }Ɨ Y "Ĉ2 Q# ;R6D]@Rq@Pit3ْ@`%An Dл@!$i R9Jy|ޝv ACww(EDzCF]t.v]s`'Gmy.yB;9yyRVMPUy@wY ܍jе"'1ܼm=ܦz l@\۠8]l? /1FNʴl2kL"}X)6Ӻv& a3ME1~ #A`~ِe`fd"\HE0n˷"$$g"2֎rD%9ن0(lX)QI@/-q4M 杁!NgҤ ':M$-Bb] ц CEh\iNhd\A O.G!5YIs:jH+YP)IIKm ՄF'b$'|sNXڄ@GhT4P?P bn FZԈ* UNĉ@PXfw䩪R :=ը{&ZW;mIyR་ dV'%eоA败.5tKΒU6<^|գC?sӯbQy#˭\ k@Eք DES\!*W':Eidf"` UBDEpL3 JB̰xri 1:nY!;AoaEB#DS &2yu ml W8!nk̸h7l`Dic+J@} | €yC/ĢEqÄ[c97ᕱ64d .9##@-n Aq+~t>5r!q@:83-Jv4,j\R[QrGf̉J!Tt@eT 9h[+W '0/>=Ap'U^aZ.hM\U!+ U\Wϴ%A@t]0=S_J |$H$Fʣ/szq ٲ[!9,ˏx튐!xAz$V2 .Yя .n!*%hjk`9b kkp& khkZk%'0W,"L} 7%+pٚخ1"۹&[ӱl0Y25aYx'I_>"[1xkec=;/#;+2yi!mK e&bG{14\#VgE4LC3i:+ڳ&[KX2Pqh]*=NMW3C4BfD(уBhU?q˓ ?[D/˾3-v5v,9yGtAD3' C1Do 0?q1gY迡KЖk'y)i | a@ a|8Ԑ".m'kéym""! --؁ʭ2Ÿ/980"pK8* ɟCIjRAk6ؠj!;ʁLb'aaDvÆx YS)х3BJ¬\H*~TK,&Nx^*)2`7I{s*4s*>Qdbb@[Kfl2 4ELdžqb6Ȅ;$*ϳZĴ.q"BhEC>,ƛ>ӅX!*3{ꪮr|d+q$PtAk9<cQ*r3KOJ3ppXi~ARh" S,*0B+lLpJjR0˚ g)‹h,o-XPU #䏱CᏴ Ʉ !8iA9̄T00 jYX2te# JCL\nLp'hQŪ:*+@4 S@ADR-Q"4l*2R 1t=Tڨ9UX[TZNTЈT|x05G @<.A8FF3]HOd|v':52(>J4PFaOϑݼ^p-;`Y^YNOX4vjadV3%>BТ=X9`p_!T3tj eڤ1o0*Bx7x7_܋ح_r*S**Hh@Bb`BԔ‹3Qq 6iܢ7ti2!gL㍰0UqpʻJj?%ȅT, !KH'\V ƪ skXcP㝰d"Cʂ #/*#RgHhuI4誁]'i*2ف٪-YP3ՒN&Z`ChlOYmCu++2mmB\ ;И]H9 5VBlc4o%BMcQ/ A[$'Q[۸[J83oȢ3XTMz @IHhVmm;ω:6;;9K@\f:/35h`-דC8Vc6-Jd_\O/,\:opҎۿ9tH3otʗ[%QVH.nRVwE"עJ0F6Lϱ9d4̛h,bw +ukݦ/nSH6Tm[,/2-,6cbӺ,e>X]v ҹmdN۴qAu.bP;Ȅ!Xș'ɂ]0D鞀U\5+FXzD*ۄm)كV@z(=Z:j$؄u4x)W0U4%*.*^jYq"ㅌTKZ+øzcSsS|9nQ7R0}d:}F۶u#p5 >l"[J6WGS4=wq%1.$˪$n[J$n#'X5r#_v-tvy73H}VR5$_nm-r Ca&Y6|vߵLц†^+5j FhY ^kC!6Nκ%9ҔW6ms2 `yx('+TW3:=$UJ} am窡+V< ۩3 ['N5 uZ}*UJdL;#_M9ޔ'.{ ȑ`eCc!Md65jqNyb7}8ЦǑڳժ7grɘ֣4t\;xjv>YcȦ;^̚82e+uXW~DAt!DaRUI[N|\ga;BX" m\3C2_ 6?@ DHHAmx CF AqHPI/*DQC)SNS,#L0 G:JlEH;(CUBU`WG9.OyiCOΘVU.XB'V 'YzҞ.p\#s 3LGXr]# oq#p2'6rϿ%7o㰌k2C3ldmdk6٭c9]skƴcA-fW.d*hߌ-l$baeuV'gar8 #8z?P(!:Q V]m8Zd>Ķ!>'_]1f+h>Ñ./<8dN}`hf)*➊jN%[i4Cʣ`hmHʨJ L*[1=axL`@'jQK@> Q) Hd) Dv6f3= "><0O|@E=*.WT\x |КD=,Nn+ p3^@Ѵ!WB N-}ӚD;OoxA穆 =X18QlOc?Gb78NG83('\heB&+I%~}gtI~iMLZ } S:83CE*OI Sb!oaHJiK&Mj -LJԽN3J9!D<*N'kcx4FT'L ?%aɅ캗! ~$64"ؖJTZk6K׃%2۸f0>of8&5L3&lژl*)',څ೑A  pj"v(CUT_* V61Of$|#D}?vH*qFUꢮ\NrPi?-Ӵ'aR3D)|_jDrqeM@5 /0Yj3^qGt| H90;DR7ԃM{hԺ1<*B69!NGҷ qӿ=& KgS&zP QK~Qϥo' T%3ն-VǩB>=Cg9c%0 tFѡl([V* `d*VtUV%, +XJ JH\V~'RDR16VU(>")b2k%!T2d 6GΚMDg(MBaKS))Fabd•R^LK|őx\pޙ Ó YeYINR(TPM)b)4Y$JbY`HMܔ)OP8?, -CEDI`At`L_)u4nP!D&`R$QV, ڇc :B&D/HJH'}`ŇYOaAC-JL148.HCCe(\-Mj(yQxZ:H PE\AT[p퀴8EIVT hUi8}R-{{T b,hl a0lp|pȏJ*XDq+ (I `Z`Ȇ8Ÿ<\U[$=!8 B \ \@ D1B1xCh f ib!A>TxNM=(4=q'bxTф)u# `̊ŇM&4Y&<x1ıiIN QA܀O~ ]E->DGiTiVS c N% ʈ}}PI$8rΈDҗ[F|]DȄ^t+=UZ}WC'YH3 ZZ35Zu 4LAɆp|jxj*.^$ @& ؀fV@@C**j bgb9'HZHpmyD[4HI+{FDDDC8}m|veY4R`,mH)`$J@EA|ѾyidiGl!Cܕɬ]%&pBƊ sc԰ #H4q D!1"獀uQIOHP8a6S5u-Ӄ>=ґ>]S=-S8=ij(+aФ`OapY撉ȍn[q؈l{4 q^H#ϐ H(-RtC fZ!P6v_!A5q-OB$?$a^?xA/ꬢA*4B?8fknOH,%bYT)tED<)^'HDBG{hTNWz ћȃX_Z6I%BfF?8V ҸcɬDiVz0dh0xthll7XkJ-1=PM L|5ݓݲ16H)]C>]H/2hȅ9y8 ۹InJnElQpW؆j}'qYN] ΢ Eݠ:_R _%pS퓅)5Qh!R I:I(`Bfdz*1q{C@*4Wft@r&Hv &U0 \C%ܴLDECEijem$KI߭" {fpIL p3GTT]'`1f(gEř 5py7?$BFG SM>ъ 'ǒnذxh &0ډ;4G 4!tKH%DkT-?Yҭ? 0/Ba$7~/΀9iIƓj{Z)ƚ}^E饘 * N^Kfט &_u-Y{M\\\' \QHNv76+СڡY+1@*@o7g5Xtͱy[$!hEVxWG+ iK.!\5.Ji@A,GF4zHV{)eecZ$PRDt IDĜBy69s͠>lr\%Ք tFL?Lp CFD$iK | \LjУ5;dy8@vq>*9z LB z0!׃E/-k17}?9"mSNyDUm0uȑCa]p rTOJWf1J! ] j[~/@  wmᾊ;xAd!2Swffg GGs&\5FTmK*1IKжݐv'`9S ^]k7{5HUڈZ%pO]͏BKy{,Bfvڬ]?gtIҕD(Yf]1y^Wĩ%<gn2KP,$j)<0r)F@aZ(Fylhe/ ~"P}89cr1o}5O"BH'D7#Fp$APr ңH&E$-&q`zَiތnG#y"*x*j .3߾XQ'랶MCTrv nX!ԩM>:9°k qJAV4{ήRJ V0eJ^YHul oZA ɍFL3$ˌ;#ɞ|OFN Bвk2rSĜ!S^yQ6xko=9CY%>7@eBD)bPQ 46-C4o9G=3p'A3E!jC蚄Nڕ%N JL !]=j"]a(j}Z*ʧClM ),2 26ݩK,8^>Yi`;>oFϐ>J)%%t0.!/A XzPY @{eB1jv 7ِPMZ .h<{yK@kAnѼJj;sZ PC"9螋N΍N{$ѿhԹ 븹v@q ^]䋯'B',l-m\a3/袏ń L'޲ĴlD.L̜]|Qg7ch;S܄FUaGCW噌GYh!\_:SsN{lOԹ)/rBHM]HAdiV ?P]b5A(V,֔ج!4|+]りE0" K\Ƀ d(CtD)>UF3 (#8.a%h87tܨ-`X԰UUp!ɖV- qUGA j$c;'QH♠0U6"!uUjb7ˈ6§8CC 1Ն6xPGTozS dNzzԩ1DŽiHT]:g񅁔2+ڇqIh M1Dkh03(U5[DW0’oqH 0:+T8oD&Q׷81/|I/@}0bx1NGv(4B/SuB@hݐ ÍA-A uu x2;*L:ژCiIH"FSn 0ɕ Ǹ7(9462ͦ׼0x˛r|옑}fei ;hӁ ЙSP2˹*[P2;g-?it \U0c8#t2?t^1"r {ū^4 .)$?B 14#E3bf0C!!wTs~\g=L%St3 TGYʧ%窿t3Ut(բRJ#c2SL AF+54"PPY@F<)7yл5 ftt G/g9 hU4Հ5xІ`vT;8E`D?6=#i @0mr +f$9Cg ";[Fu& E-il>I=\:ҚIN "ĴSlG;@Kv%4ԟkF.Mo3! dȵ#HfVF䈣4D5lXhZf fKhKKiifK5\PAiM!TPiZt&0R.$ D KVpHjGzotjnbum/i.O.ID/ yPFCD>Ά!&,NbaNbA@bʈLNd|B,AL{AVo0i!ifiN[cgc$C3(CJ>J!Dok2 'FCd&M&DDJ$XlW>H X$eJE"Y !W>"fBBfxxa@2xaQ%>IG>L-Z+MP-K&5d&32e+2niX@& T ~a(r(Irrl@pDr*`WQ~+ β O E`- D`,E!bnz hd>>F"TF"OZK nɍbӍv`ӍF{Bv,`0ĦL6&ALNb6L pLTaT %l$GA s9S32+2*2h5Jfh#7t7KjH 0A@p}r4Ɯt?SGsm-~A`DD<"DS cwʪ!WA3tB,4W Xb"H`ʏתqvs*@QVЂ aBfD0=t)Hy -32i `YAi B#H4DN ߎFz`+( !lL-r`k]QNP*,u(pP(!@QQR. Ia28bD@~ 0~dkWd lz@dduVs+23 1yO@J5NSȈLa$Uh3 n6@6Z-1 6,ː`\F ĠLm 4(PE@D-(rϒ!`tqnuH7*>P1MƶH %&쭓1I4Vr4"!8K&75_O_ll P pϔLp,ohJ |1]0tsU^P UMP - ƒ!A.+GPW53ZZFeVH{ 0V񈽮S0WlȆOD6ǢLYU6mɪuZcaauZ6.&!gvtx#F6^4pK!Ĵ RI,Wo0 1)iƸFc#}RIa9f"0PL.8&?>:D?.$#oB kTx:!#jUlZU<Ă ;Bb%`%DS-$a#abDqB F>gAP%j'>pPƶ΍ 28p&jS7I7P3&Ӗ!D451ގ+T87t2( *pwpuL*h^czF5fcXcj9(b4WN)M4ڵoK -8LPSPrqejzy790K 32WAdt~O6{s5Y{Yi3b|ws|i 5a tk7R=(2"5*@a p*LP{b:WPL5#BU ֍j#z0&:K8cP?BBöFTE2-kU|*Ea2J Ȋ$k"dk0?ZE~>bN:ƠH&Gi˵MH1ϼK4i`Q hU@q* [(בtm^M9`}ƲMj@<G8Dd ߚ& :92J4_,Ŕr)- Km2KLCnG6sq44nFl&a/#"zOZ6UZY } Yw۷tm5j&Z4o{p:   LUlqa# yCHU)3U#/0`ڄ::(>!,Up?FhU U)ƮDj&SB=`g0Cj n̠ s#S Mh+k\&&`Vkm%/&kmt)O+,A]KtmnJ&YbC7~U*}D=H0;cBhT c@ }K 3Q tmU.o{^W&8x%C8,В _Tu] Tn y+WyWhfK5j]! 1`71۵ ZQtiCrQ!-q'<# ޡu`!_/I"2XUx=cxai<r(#2@H^nPn@q`~?ĬaΰSM8'?qDr_Q0 PF#AC2(v}.qry)e@f3_y9@uYZU5=`|@~ʖS];,0-S  D,4P?ѡP *yiBpу*&{SwV|I忛^'SnSԍIDB;ܤ/?!^ѡKسdw]Kۿo};SdE8ٻ~^чp%„Uߎ"vuԦ7G1J(O$:4h#zpzn3fO&ɑ"g#?FS(RIhm+J0Q v嬛8QIkz0i+[9jlCDe)\-(ae"0k,mz +?pKBHQŖؠ._,$6Le)E$IH h Vғ5ld̦Z.G%d9wX18:Rc}.࢏HZC*npdB$lG8C<$n\4[V7sibKJVr$+]B݁$x ‰G\b\:$ WA:ń5Q  D _t.;NjHԩ=yӑt`(3}?$@P^ M>R!Mzu VuҤ1t_88Q[q2%<˂P0HeukÖQҦq@=TfE)3M N䘳#)caL+i̲~aq"*,Br 8. ^4GaAw<"JBQ +p„DÝ@ ôStBRNr\ Y 0Xk N83m 2>ЩZ$jHD$l^@gr6D+xThBz Q{)EM-EL"U0bT!hJE!T >! (NRьOk:dGQhE1'PJe,iv)ۺ4t$٢Ku '@M?`eq-)K ¥7 %UZA\!%+vBd1>øeaZE.kQ{5PD`1r6KpKYȮW2\tU1ɜN7)Ɓ''8} B P@[x}9C""&eQGݤGGIW1:LZ-[BOCr&_ Kx: lpʶkCBZ OW9[hݶ m|s>ˁ6[I"sgme״I##-hޛ<9Ji} 1~]lb86Dc#[M" ^CcE# U7rvKMaR#Q'e_]+_+[br>l6L7#^@2R@'bw<$"t?q!'G# jBHh[WV?U>#_"7O2b>O&"%FG+L8#<="&0"Ir:QcS,ƣ--Q4V(-2j/A`ivzui_\]\ad6fV(-w8Vo.4a._!]fC30xu g[&~]ht*=t0tx8=УH3iM LWqx6MS  `4 1c^^!GkAIkTk[f ؈lf}0rLd*{$ Y8fPiEr1E"KDLdE7"rIN9T1C"R%Q[Aё{D:;_$&ە{l#$ABq c@&DŽU({hE'HV? a2= pO_P qA5| OiB*N/ #02#ʴthH"Yo@d8A:ATRT,2$wiv4 q" &mvYd2jnC.kfuE9\5`W'={"z@ г]H8ITC:fSF*“^x>N;_Zr_L6^ Q#r[pAw;}26\Vd}32]?! Q=8V` J0 U$G!?+%Vq"MKy^g{`YLVl + <##DcWh M8vWګt ۾I]-  } KzgxQJ**t003|} eF|E km@ 0l}.;h&D3zm9AKU~ XNpꞅ~CEepz#)TVN+a C-(N{\xC8Lbc"!agRBZ{)BfTh*?=}瀟6X {bgA?>y#A %!BTP@C?eDФ^e_1.fbDx]^D"ptyG|^pB ZxB* ئ8oc8L"T(ο%‘r:gIӉ;Rȑ C = !>|=AFO> aStD:qBGANc<$6&aQ^1B!dB)Cpb'v <@p  ِSe*FB9J8"vpI7jŒ>XBz!+zJ)ehjo5B 4Q5ԠQ*eQDP&-F"t"eSTS+YpR'0I&dxdc(2_  @#HZp鎐*҈)80\j`,XT)ٝ~'6 ,1\|z%,j艏C)а뷚k^v'T V&,3.jK`3Tz9>3݄kM8P LL҆ig3M9"ikni:,9.GYn,tTP=cO>eo@@aCn*,T2BYB63A HPdݸ) 5 O_#6LNFL4XC_qN{^tB21,PwL TI|CuF7L30V3D=oLŒPKT~@ W-hHlds`%jP[Є Y"HV‡ &w@B!XVU2 'BLxx4#|P "O"p{Y`¿ P#C4, @K0Db,vE!" t (AYk"[4,CBt- xb%!lԚf6u@-s_nɟP_:}hO~M_`&WM>*@LeNnr }ͫ^υk_?%6vjb&ֱ&B&%W.{M("1v67XJ(v }3@ |QJ䒊!{8 b/h #*.r 90=zc910BE939q90'srjD7Ï&@q(1^O A3 ['6'}2!DB+_q`@ 4'2: ]8+!YR2QDy*3-<#=**\Wb ;Ѡ/ |f!!Tsepڡ*Zk$zj`\)B*u\ˀ p `p"~;h 6cжm c(XH<-0-ڢH@ A((T%H/x'x LT 盗h ȠQa錮 8+z#.j .J$f<9 #9#ۣ㉗9J1hBI 90 b: hhKpA K7B&Ȕ5N`9ɣC1('~ uzRH׃)2o4'{REēQ"; 4< PLYQ{XAEEtDCX,AV-Z ,1z8 S C\A  KPC/0. g#D8ǘoZ5pP%Z xBH_+b"xǜ(jm .cP0@2h@⪁/PMd9ITIsфc! b p 8?`ݰ ⮂Aȴ򸏋.Pz E">=A 3J9[I!J˼PAmkpK,:KC@Ct:*1hKj6Чu8Q;! YoEto@o0]ՓuUCȻuXM]5tHH-T%AIUU[X"JR'Xh cAOxRjQ06 zSZ\95²1:H I:A]XKP XBבޑ3JTS8(3<'Ȍo֔鱲 t8t0YMă^]^cĨBLӹjkH6vj'o){1U_~Ғr5Wtm*<=A0 DBA4 c* bJ\1.. Rۆe!a^XjPR& hHb@Y=$.MG6}p PHc-6\-"#"X@8QA8bcmVѰ ,}!~b&X @098 Lv B)A H1؛ATk˪{`K C'Qp5WL(3y<';*+橑C--}(dcEY(ͼk0oYL<*q>U+PuJN!t1Nd]\: Aa0 Ӡ @[Jig + OfLc ` f KPİ +Gjik|% b*(р +(Z-1Z"-4Qq w >`c 9I$䉢> . d !d3ۿh LҴ2x86=\dPNʗa {@ (FhZYZ!ﴪ!k: KIQN/NpWXeܝNQ;+ \ы6]ŻE7DrVX6}g摽C*BSWq'Me)Sz&=W4&S2@hN@hT!&hjI( #:NKQ1}#9DS jԁU$ ˀؖ j٪i ְ.<$h &Gf;` j(-bX6 6rSڥMcZ5NeaV؊h (RR!ce _3FD iʶƂ":d.(((.90n)Wf|Ɖ#"6v5EX@hn5g!(*AAD=1h+{37CD7X*(g5pt^ww'gAwx*[4J(wڲDQ+]+-p:;I -䉁(NY=PJR">\sƠ̠X؀ uԕa \`)cqٶP chH2ʚyy+r0 s4 @1€mX8"nk6?y$!tDduz=H vmz A3>AQ+9ی+u HE@q1ӀWVae=!* `#rZox}?-|(n&{')g]vM)Wx8{.iw)z!~<۳cwvwwiA]yw!Hy"W+\9rv,R?3g8YP}^1էҊNp&-:HayVQ =A&܋.g [p.}"ܧ-(G&Dp0J*ʂ%**"HMl A4Z 4ҠFqfX~;+t85g:@;Zra!َ!V'0Jze5 @ gƃ!O1 x.|9QJyJmOCJ1P(;h#*t[V`Á.as* $Kr`B4ƮO+)D* 3&(2f4IYQc3I?ŶDx"/:t1:1~ц 0mw.6jRj Ly%o?.C! q;,eE ۽HpcER-13ʸKZβnhJe-<) 9|M@u qHG="`wD6U1*`*JE aN :COVhA$  zRҫ'di!f` l6=jz-ҍ^Q(6薌wI :z)J8)d6<] "fX d*1?AԾ}T$PƄ@Xe'] *nM/ *V4$ѫ(Ya4\o+1499Qcvh|Ybaؘ9fX&ܱ3yq4h;|BmEZMKC? B\ ]! AHYABJȎE&4QU(tXLP[eFהAyyQ^,#)WU[V|k CuJOO؉NκlĭB) D:::( [+PEQ ̋ HZo T,Ot D(R1b8 0}H&r IZtT0GZD-SNQ$EP|[]("Eҕ%֝!Bpm:̊ܡ_i fmԞҜEyslSCgSB"g,'*La\F9 g,ug@Mj4o!M>`^Bjn~20*p."*C+*e rrs0un9a+m1:[gb)w,5 6oF`˵o1q^DqaIYJzAs)!!3!||B/|!x',̂w5EE!~_s8R 44 !]pԝ|*U@ 9PŇ˒Z /A>%ѺATD( 1؈tuLVqEqHQ>TY-`IRB BV"ĊS1cC:DZ&0BE@R8f]#w*m_c_^`r Rrc".Bv džQ@ lígy_r+sc u7r7q~PFmu2̤%i "jyQ/nZki嘖hyT)!C/\ø{{3\1P?PC\ý7B~W)PKΉEAvtqP\0C: {QOL@כH#ͅ`j[`_8,$y闒u-Stɐ}[< ye(\Iۈȋ9Bp[< +◆iNtۖ(d[sؙgPqWCNĠ9sVhj2nOkz.jp2*{|v6#īǺV2@>\v8\id@ d4l5x}8s}U&~M wdM[H;#֩EP@3w{,Ź{,5#D}!BTIEɈ2=pJ0@QȎr7-"Ix.\P8%ҁ?:Р1IP%6mB7? G7m$ AF @GE3^bF8paƌ-`5)lΝHv#{G.ߙTz܃0A8Q&HDxb#*Kby/j1?#Êݹzљs5Xv7TxW;0"ۢe*3Ptg}f o?0w~ȯK%c"  >I ?!@9$Cf!>՛x3{J#B&|&B" ab)I),d.DbZ "l݄nv0c&3p‰> B!jf!f+Yfg@`P@%z!60S*Jd"2H6h!`h GfՐc~;f:i,n):ʆrk6R) !J+%򪩳.@Lid(0,H6 7 8*"Rj-/&k6.}&7C8+B:ȋ.责>njH֋ϽKo?nc%{¿3PCCNEe4qE_|].*rGw< %1%d* h뒽"b"ɹ7ڜΈǐR'$YBپz%?KiÐ>fFEQ 2&i^p aWJHD!rF@t&"qG'l պJNiCZbѹL(sp,6)Ml¤*r@B`QPQMXc8~ye+Ti:)/kL"Ԡax"Z&IT"adp0YDD3/$HsZԢ:* 9 36Ə1 gbHxcE@-k%󼈓^c\dl$DD?rVY2"i`pɷ rCe" 3ؓ',s]kO'#R-OisBHrWӑƊ [Z:H)"sT ;~)KdR^dDxp< (ڐ &@hDp6Cm>g?j A$"C81ƕTpo}u,>++Yc 1i#yĥh,# Yc gS`MjLA&ae`P*ҍ%OmQB"wr.FbЪXمV^-C(Nbf5(0A(H?Ü|+J-'ʎr$XFB`&(ݩf ̲DL3ɵKwiƊeffM$.3z(Drjw:!ēkZrU59]g [0@i;w2A @y{^rB& "`@D]* M8y>~|F n$5A:]:TvT2 n%y)ab ܗ$GM"Ks?#B':!/r:Gqwgp< Nzu3X1{h d" $X9XL8~L~ bĐ,d H[zYHF6Q)IICb [b Ud^b`i"?%{N˾Z=y5Kac{m^3qs|PňM`4XU+Ďr?h͔ݧP" {`lm -vI\ꂜoǬ B\fd;<6)kFdFmhi&mdd on&8D0= r4.+F4BF"G(V$h .@J0Iu"eƳ/i)"x$fD&"xMM'"e ۄE0#iwfgJ& nz!!fbC63d#)-ҢLKt+"iv>H%p:"['EĠu:d "B"bo&6Ҥ#p,%(@ ]O(Ph>QCpGPADkذFaڂ. cexz٨6-ᳪ0$ˠ ":|d p &ݬ #mf@ nXi#mJ<(! @׫;`V0^PJb'TB'rD4vG E;dub/8`5-$7EX cID7nC0E @ xvIV-X "h".BTLW"RM 9 Igbg."e2⨸I ePH/+[$J;,)"rr)u &njhQBIZjf.85Tca&addin9(w"BqHLsz .9(I.¤ D教H麂ID #E˕J@F]tFӠ$aF%vA G8oH(C,F4O^$";=ԣEHXtf"^4*qYNL԰`8 fo'fo>hȐ."a DC!&1VQGe%#Nnn.2d!gj.Ƒ:CQr/Mv"Kl+>y%lZZ_v3UY Zz[\/I8ZE nNL,Ҵ5ϲjZv2])MJb6`65k#c\NKXbJ>R5,&5biV'5J/&$KVd#CòL:9M$Jdn$ic#DDTD[IEY;D2$eJAlIVB8hI}% ώ$Υ: j"q0"#ޮj L#:r!Y.IF+IAsƒj`Aa@ w`:fP68 'fb>ibf"ب$h3u10BTl̮Xb T@7~L%qN l13;yu9vGSH*0L|倄ֆ%*ۊxOU\%` 5I|̈́:t|1ӪnO9>H㊿y&6F;RNkBa3ވfD4@e$vI DZ@uI"XA0L6KmEͤtX5Č=+fg)6dkg`t8!?@ |W;_[|dZt8>̆>vF Y1:ГKKD+dG$|eHjHmp4-d.*ab,S/,&0aJY 0zRcg~kT! v TF!Q%WF 1(B .4u9Q ̢_[]Xx"`Hl\1C蕈Fb֥-rA({+-I}r%;Lh{w1M{[RB63j l~ g<4FIE 3j;gY>Zn IP+ /;8-(bKH.tDA#}3cOG5.B,++f1Vt3BOREP~h bzXmrӚs%вtxLҮxykC[2=$ + |AK[HpnDGzâ/6,D į[I0mIf'fZfQ#~kpc*P i6TCp N"s DW6^5M6 ֘e+o΅ww&OCF:b*T ո6ф`\#m9uqzQ#ZM BӓʭlG܉؉}y{I ̻!G;޻VjU ˤIoY.BeVr4pIʼ5n'+M6LHeE+cq7I\CeCg:$'>+8ReGeH$+ʤѺ`D4*uOrbY^8\z`̤p)98W N2 )" fd0+KYNuZ9b*//ԎBo'r6%$R]:Z+P;nl+-\%CҬ m'ҜGu~s,dQٳJڧ}ܾ?K=sy^?g/cQwsV==q0*4jU#wmys*@FL'Biɿ x_ :th_TB R@ gʿ0|I A(~@#'g̤ _)䪒7 Zbk?xS(jUhZeh`[q0TAÆQوk*CQً /8_sTZgtID EoRIH80{ J*̙E''Y# |Hz+?V-/A};i+SlncO UAEaQ`"b8 F(@ "N?!0ⴓM0E:N5CPc"8 C&P"$&E)U h@JTX]UC|4TSWe|U mY] ЦdnimEh^pFGh]PH!-Jh-)f"#Bw =`TD @M\vW e%PGD4?0AQ iaV,lV0}QM:4Ӎ^Q9Ӷ7aS5O5eVb5 SYf[mUVZje \U?cOlb؝ gtԉiɘ}x2oE$܁D$0Autة1w"LHtyBx^h]jƵt64BЄ `Hד&EnNEEC kXb:&&UXi.>G&:C?ŨۂKe\%CZ]}:Y?)f->;d3f١-h:q1{zQL1 ?zꯧk*oeK"8ʐ@Ҋ{kC+XȱpGX xLjل&N!KM2)rh\KH"-1 IXM wCCˆ/.iz_.(^Ȅ AqAC\ 69l1@ب@aᐑH$)4ɍ{&f5k}BÞ@gaE|~#GP4 Rp"#f>uZdIGJFl )Z 75iB 6n( N("Fz NBb8đq-zBeG@-dK䖈; Mte  WJv &T((ptN blө&CH݅?rޡb(*PCE)D@Cl~TeRyS򇿓HV%F|ő^5Āz#gQe*LjA jBNViٖՐlK J9QK["~G-Jb ͯxET-RdC1l%?1ag=iЈ:3Y,j<A@O m~lUXj(oe *D BxO> DH+*Mo++E{3$aebҘJQ(ZŁWyTd&S @L]΢5{+h{1RKJY(䭝E'5*d<R {Noz:(cA+<)KRR9L:1h"8FgUxT")H*?ƕ@]UR T[\5$`3% z&B1ZCN/G}Za0C hq$2'M2Ia 脘f,Z8"7dʟ]!\c.=5F?^1tau#-SޥIؘTAPT_<&lm=x#4LPG,g\G5tC⪍`)}UE.ruY"*ZɊ{^fa"0 !T0!OBX\EuH*ThQ?uϋ+jPS Zi~"gтl#CGjRl$Gd- oxVVJn4I$ '&Ad3%Mk!ؔ ʆA?P>DW %;e?mZ̤<7AqVQ V5Uܬ2-O6qjP]c"UL$KGm6< 0%)boXFTiR*jvY'ͭ!6JNld4 WQU FH?Bڭ6JVjc a`W@[qlwKu(Gz5ˬJo^U;VÖ#a 8pHp1W*@qB(` `4=xRDca" rsw/rTEb5D?rD)/)7Rc+&,pM `tZaJ6buddq.r[Qeh2vfF0_)n'e @gAhw!v@)}veDkC 1`mDx6Nw !uRfWYxQ'5AzhA(Szw[p"E?ƈrz2Io\`]%zdPV&o$Rg"(JE#TtgAN'Rr#FV6r;b@nx`}>}}QzWz4~H"Q#]g59p"MQ ^'ofoo M1%&Hn#p5;1>=B?Ӂ X 8 ?#WaaR6zZg2TZps)(rÅ<?c!,OP_8q.Kq.%1uv.+};]؅e6+m  ApT$T5W11g'a6o$jEvSEaC2W&c4(xgy'8W5n{gzKU]݅KL9n7D60h67f%6C6[;S4SxVaa_L?$f[15N4}ᇍh\xu.c(]@]n $%^xMof0oGXM':y%JО)p>k1iqi(1qg*q*qUM&f0X)⒩/)JbF*@2,i'R3-h-0!&Iw_[vS_&ċA1-DsAyUbo <1oD"ge oja}Yw2yhIjr"Vt1erk!$R x9@bhb"=")"@TGNeC:JPp./q2Z/a!9#f!~X(HGu2m}9m\8r#(4p]99c 8(8w%DP DxM%1_2 |1wO"r6(1TD7tCrC4DB@:+kAC;Hb,*vnǃ@RVpR(kaS|ઔEp9u["KUuJ!v@ʣN dgr.^Y& *SvNUJ[fWC` )s u{/F Rw^0dOK+4ڄ,BNIh'e: vmq#TI& ٔMv7CGjS19PLoZvڊR^_rM W-5Uqy"r)8rQ*\w&Z\|3k|uT6LeE!kR%= oɃր-W[l_Fv7JB _\qO8R'CBqS[d$vEU{ФE$'?2 6 m2a51vID _k#=pԬJ77I![A{==J O3-2YqS10ESX9heM+a`AtٲlrEFx8$ u8 =\t jl"?98w8'"o;o&EIooI) H(W=-r=Q<-'sԀ|`x;wjv '@(Ra1:R8{.9dqCZB[i_AAl 6%^*vxmwyF"EWzX'\ea1zU:53 0506_Kj "#,e:dQO8:`JZ-qZL-.bN@/t.f$Se]]ˋMoJpǶDK7~+ܷ}|\u]|qMՐ,.u8{8zٙ&&%܆o]_g%['YC0C6S&DwsbuL%ŧI147us` :ܤo CZ[FS ό[M4` S9%<6woP AeUCL2SZ 1|g7.1a#k 0!%?c~ļvnMu^v\|rҶ}T>1n=78 |]S|}=w {+qo`B&SW!^xCM0_e/kX8N&ҭOP_”N8!M/,7G @vol^[%t d`rd͕,H G6R|_1d^IB y')PD{^6%ot21 W;z{F"1,A4tS gCtעȋ<sW_Gc g21%r S.%%ama`bXС7~ȑ6ӦEEDQ(Q( PReʗ*W/o|d JG(1b-:2 %J.G*G%Bd+A"Lп jH4 QAăyQ/EHV26`nb&QBSԨk{ :ZCY/D GCH>^l$f"e=":ًP جhӋ6m8=Cv3[-J#pB&PC-l!*/K͂Wc_9oTAm"Ő~XҦ4w oT**lA57Gѧ}*lؤ)fIsZ"E|Ւ<,+Rg}ڎu x@\@ÄԖ"B fpP~&ET4a4$d Nf[fYi)p8H:${q8G}Q-jtXV-}gJmhDl>Yz'JfMV7cjMHDҁʮkD8m]oceT`#43 $ I--L.SJ&QN o6['$+,HwZ8NϱPb(,:K1-4wIKڲ(%#Zc1 44p aeaE-:"uY+h( >"0!ėy0 :b ( @ i!ؖp@1#>@S{Q| i"1ѪǚA)*h2}lB19 +q+9|{9`71kX:G33W%^i7v1S4;E a5 `´A412M Gy:=C< &-#1DBHAˡBĀ+XGxPӓ5$`8.Yӈڣ¬(Ev)h2U j `DŽ_1 (^q45HJ3a#hܚ"7z(  z? 㸸[DŽ a x˩K8+z|*3*򜎂t}ұ ċ lA<ώ?L$Թ|AZ)H 41 x$^Q #4;Ih䕆p>v3_3_[%XъYXz Ձ4YRCQ0f^C;Bq/--Gy>DݲUU[51D7flr=[ńLK;ϢX =S ?2˴̎(V” و>G8k[>l{ss+p: 03a i=vz3|2 ΁1;{lIc9>A2iǵN !ӿX D8R2bϸplH MGn#($NJ2XrrVvi+3ĺ+!̱ M6V:J_Y4h,4,Q% 4I3 ۙ ΂Rx˱$cāzPDX5K+GZb.ZjJ0TLت ,-i#è KhuWX =%=@|L36+rjM_z'3ҁ hM& #)< p\N2@QL~2ыha} ;18*COVll֚V$ qOj=9 LG1m)Ӗ:;#׌3j:ry^MLf̌C3غ:`#3xXrzъ5ƻFC% RD#3\Y<"=#]#\%XP K(6+8B+ӌD4 PO b.PES5E6}<ȊS10 IሊP԰̄5Ȍ35$að&N]!6KY(elʐf\ɕ`HJ^n}HdkH! r(`]%X$RT` XhlMܳ(X.y*>彊TbfaE1;<֞Y>Mu͎KX5YBL8DCyFF H=$&USLDy 9œA> 3 !&)T<iE&jڈ?[Z  V$cZ^(0PpOԓ\RI"j`AN䄐^Ґ}\ؓ*dM뜡1+ndzDO~HH8GvkJ/~Ė[d]Nk$RF%/r[c)ec '\'1# `5 a[l¦]@W ʥ֚B4JSա,§@[P[&8Y.`x 4HRjg8`Jd.?b55Y^ MyQNhO.='hL#vP0jB whe oe^#P ƂN͆ J YU6RvZMKA~P ! wq:9CY)yVb-W]"2zdg&MNG@ÿ ;tpC&$rhD tHDA 4o$ɒ&G>G1,C1m.M%o HDG*Qe#@%? R 5jԩRʵ)ّNt֤Ub%h%M,@悚2gU2g^#&MTһ`w̝;IZo̟=pF炘V>Ҋ YIceã4S`߆bŒK6GŽ#W#mi#ݭ\ (`t#i(18rJ둰yr+\z#AH2B#@0מ{၇"A *@A*Ȇ$jχ&*#C"5ء5v#64abTFCE*h8S5`?X>C O$Q %IGtH|L |GFItB&GlGC !D!AH]HF$P M) AiA PIivM#ĪL5)f&Vk^,5S@WEV\aŮeZ2 Uv:&M{*I4UfDa'P0c `}aNdVaB-l.JAnm V't!09ata,[5UٙTSP<{H#W߃G_'h?ĢMP n(D HȲ?K$HLR*1$d%G -csH؀ *P`Pxt]b`5kEtgɬI|zIDtA)tIУN')ʐHrjzI4R"$D0jB0:LZf<ɚǹug_唱P_U[%oqbbcɚj&E)L^IZCdP4$q0 z]{@M5 JP0l`Yf 8?dXÐldzR⨧=XZ2AO3 b#? .#EUt5hc7Qi#,M6$DdV1l`?H#u(o3H0ـIFzD) ^MKU&KH0xiD:PE'(3 xA>ҼE!" 4IE%#6b*SMTtٽ$|2ST\J)*״U$VO~n&Mb͌DYVN%LxX.t&t`X@7# oTZk!+)N~ָ*c7t'& `BPGJ! $8ӏ"B ^,gʹlF( @ kB=5G Y4HA#G$p@=lƑ #&Blb PBhFlQ7(%IqԁTN٥0Q.Zf[ze,lviEtUD!pn/ߴ&SmSݔg -QRU'e$ة$e4S [ҧX(+W9z$>hkecO@gzJ2 w2+<(I3/J6VV0&`&% }ð#NJ4H8 8!.Әtd̉X猪S!Ք`r 1G= E"Ba k.0 1wqUoFDr0g`OXr҂@rgKFrm E8e$4!@$O,)M)תa)%B}BADnۺC" Is)S$MnHl;)*yRPۺcJZ2!.i.햌w[>}.k:'Ji? AU0J]-"893 +sWx`@iKSt`9iVbc}ag,wIUIሗI%Q"|~F^XW^e :P L<3 :`&# pH4x$8bPDC|AЃ6aD~4DtF@<@I ~+*:*Iԯ\}HXʚbJZ%ƚtۉ<$]/9LbWWV65x˞>K2MjcfRRnt#N ḽKr$~y?c1~'IgP}shDuDaϽ^eKEƄAȽe˿xonKIMGUi=˼EF̊DM (LĴQE*h+ڹLU܍IڝZ?H<Tiީz]y+hIH ٔM+Da\#`^@@%t?8X %@jYΖ^@A@|$p^2O.b* -OQu]4 /DJ|@7}]nH f}uRٗEHcA} wv NW\τDF,`@tQ|glO9mτŅ ҕKƈy o-KЅØňWH9KuX#q˶@MGaYոdI^(ǃbHH@m (Ub*99D_"^JI੢P9 SGOveW*2Ba[Y[URmiFi- h #ye @ fxg8$uVa?K<^ \rLg܄w>Ѕ+#\NZjdE mnpXlTmk^abɖE E ;iG~AJ,H/KjJ7j6W1zqImrgS@NtoMԥj*02BPfI$gK $U^N `':uWđF|'̈́?Fw`vtVȵN.IFA؞_onKkXUSa2$I݈ )'Q4AcIEfpZev2#Bk'3k?aF3RlYeN THH!5Pp!,p(B! !}/ތ\"tM$ ȉl?%p$@V&w)|PGb$So!QS,qJ JJdIDSKof"uo@8 ivږqPPHشޒ&gNJY*2~ V I.rr7&hyO:2E]x&] 3J9%IF9ʅa'a&oO)SK-PUyt 7f^7N wĥs(mvk#BCBzHzTAlvmm?vawoQ (9+7bFyw쬊@4sВ d^#6%Q\I&&i^7AC_8D4k4AtI?@xJCܮnl4I{inkjN8Jtm+|1KԦ2qS ѩSn9xcOS2LOfG$C+yiJaT0Hy2`j̸UTxC ؐ4hdǵQjrѲڳHido"٢WwoۉW:\;s6 +R dZ[@?3],4kQjԐGH D M#eݴ%E#a%5*H '2tԀtiATNɚ*94Ն-OGJ{;;I3BJ4b rof?xq4Nx×xÿtK h?=zO >Ç D\D2F#7 ?*a+QK,%#߼dfV0<ɳŏ()XŌJX1Y`+ZzkA:*Ńk˶5*%K%7yT%1`C _$h`ˑ#16l!Dbt. E k @T%ٳ;ζ0D* 8pqxp4p1Ț*!ABsрA o7e }(/Q(% MT T= 3h 0$' j!=LH@DA?0Ȉ/d2?`F}FQH `GT@&aDR R r' 6x (RK2dM0,r03:SLL783N1<9:346(B%Bmhd,*ȨZJ7NɤB $QSә4Xjj)%jTV: RL4Ҋ,E(*H):+: %%.KU )2b P ?1Bݽr,vr]p1lG3 ~@ e 8(Y؛y!f.xs߄Cp5A);.2r '8`5`dxBլAW :%#Q! 忣 0 @Ȇ&l"30alBĴCLPLnm_nkDǾ?P IQ#{|RDI)7FPBH9Wh$TJ"QkZ LŠF"0nU_׈*).ԨG]0^Bh!i BIe#ޗď$*a,cv%@`İ]cڵ\Bt+_$@s%b0yxѰ5 nЛ߸7Y&#i?`e<ap2 1sqVXC抡1 g@8 Hy0 * 8k 6(LL~2m @ʶMo\W$I9HӥǨ*r&Ĥ'.HStKϭ tB:4]3#}rN̄'( @=kt{V4!D)Nq HB>]"(FQҽ[d*C7O-g2YUXHl0:DzM4(JAإXp1]AtP 3DC= ׼ XT E(` J 2jf-A:Bl J Ѐko/B` mLdb6,d:B ~IdbIrqL+LKK&t ʫIFgwFIz'KDn,0LJHnEoRi.|@pE~NYdN'>"{hbel<2B%RbJ*#28jl<@8J<h$& #.`[b C/(C."V'.@&^ 24Ђ,q9Nb(o 1# O2̈&Q6B B3H;"X+\`c Bs8;>0Q @$O)3Q`3MB"FdBd~`f:Ǐ IGqJHDK O$*'?@܂PĻ΋dL "Q֤w5u6N!P$D"EQ%xRB,BJ, -`4'#b*{GC'*bޠ>NQf'AjWK7 ~).Jn \( *b20 /@V/å>p STU c$2\l~+#bF64$2 onQQO\O63C,(2 6UY;6cРc^CW8*3fmj03pׄ^[l@l&ƴUk*6E<3;q=\dI r ?M^qbJMH M0'_ɘ:+҄$A'C#0#,'#<\Dfdw4QQXآyb+(r~ ) pTM|J(h,`fJ:2&JvVhQ5hWԄh(" Z pq-m&`B2fNs '2 {%r$c^(vH#kOqa 1 p 12w2S>N|3 Q-ѭV?!.&@@7;8Gbfd&iQ;9Vrpjn8=I 6#_l`j3:><#u:[ְؤ/[ ABjn0q&#JSsrD2J Q'MyL쳚 ƤN$OFGL6w&t(8L,.CE40C-9oGvwP45Y:BYRV"~E*'Tx5`:CU;feƣ\z2T@HE(&Z%&cĥ)qaRO3/͞I +uR17U+1u37fX4ZQ6! C7eM˲4<9:0x@c0B84%5/mU;wkFmC0~iKƗK>M2b '>^QrJ`O乏$OĜ[AdNtKD=D 71c#;:(8i~}"OxXrkppAvu9l3"Z%p#ngxfДCT1@l3Js [ThKSWy"2hT%Ѕh=C>"ŃHOk\o<ժh R/U΂-bh0 zuzÁ%:`T>ztWOkdDUi9@`C5_V^0v-:U o 1e t9L+BƗM[<)]][cu_^o dNsM OdDH{Mp'_ D']˾DDWwB$0# L{F"Q6ػ@ˢƴH3b c69*)> MhAKMY#[ƒ Tӄ#`î,6Guj?M'^ħ ge7b)PÇ ep`U)QF7u 10˗XV̸@8 neϓ=Q) B4H2`0U p=@,:8`+w p Z,k$3@4CpEfF<02ː#A'|@i kV??9WP%e\UH \S$\9x_ GBH@=ԣJ!@!)KBŤ%MqPFFAL9ДTQixuXa|իX elI)5s@dEH?\Ź[k^`g Cg!llo5g?!,(0$'r '\s@֡'uml<rx{wm0~\;R` ,߄<8r"a/&Z!#^SGbS j.@=@)$d9e{ t$Ly9wIjDf @K8qUU"ԛp^@{QWHEQe4RG=P;Q~JS&?.$HD7cg4 @9.T+O6@] D D,m5+?dW^V|a  Pz*31ͼJzf4g/ 489n,6"JCf1ygdع!FDeY S @D|qljHkT >hA%3! ċQQ" F5HF^CFq ಷ+(Dn;T2e UA$& $HkZUK %NriS>RDJ{KVINyJTŸ#Pݎ\Kh$BI6 ':.{M2CeBd\s׬ue3[]ËyGerl'!TDפܘR5Ut{ !BP*J21G!)X Pjr8ڲ2lhۘL) TaMf4]w-J|2w1O {V5|b=7%PY40* VҲPVp} (@(4?sf #+xO`FUCr|kPVd6t4(t0>LBE5P}lRE5Aͦ yG>?̡n:T QGKMd )f\{ŰigHddrfF]. |I s,AU-m6IEk!ғcE\i&y͎8Ol&_&(Nr*G*`G>)D(My\,W'{ sGǍI +A]͡ȑy|$7b+=),ѕT:,e .اN+ ?"#* A/g`3FQцW^&a gdPÊðP,cp30 A7әd]'ADb.J !clj& #4`cU$O\0qjKrJ<ƶ /4[ a#QAb=Q$=³M>Gz)Uq{b';%GœG *H-s%[Q@.(饪]&S\jI3,KFmՙ 'Պ*Iŋ['<ڨ -OiMý[Ecٯ3U~H{bo}c1HBur.(`H:`~ ̀ {h_ӄRAap`W:b&F5€qb51&u0:B<Bc-bE:g HeGFs,DDJfstC'E^FtL0cu[WB>uqP^7Wv `f `g Z8vg7!*7>6YgiL%@Gh8*G[ib-RJ#'7JiT%fx9Na+lpw[3H ILk-tmi'-fI&Ul*TxL1)+Q%?JT@nbQ_!^W_oc `/J_~J~/aU/ a/A.AR%0&65:bbB/Wr:)!32vܡ2<1ETA3F1C9>h3A4y87h =fT8-%G ̀G*RXKQrvoGe9GGsGPP ڨ-?685Rarә:%+y+Y1$2bB ɁMr2"=eт/th2 Xe!q!iePF(/Lג@D@? @ia፯$P_pљP S ڀ3 g^ r)V9,qBaZsbJp7ZgkJN(oj9jUy>3:|Z7٥ux96$NFQ8y7L3,\&t${c(]*c#C/&8mbE+xNg)B$g1Kni>70(氪XA^##i?5o2()qAq橞(FBiQWe,,Gr%wUaPad  cH# ?.d47f_d;q0f>H@`a$!%oQ1v 9[h6ZtOGW:h&7oIa6~Hr)yT&7GjT򉤶Z}c*XNN1c%giBi#\S{($iIP9Lp|TXbc|L!,+hnV 7O:;i uP_`a/x`깽*Uq;&F;43ry Y D8w.x Mf GU D4 c4fE'p k7o?E&{R ( 4zwg3W2;z'6Lywajej (:x! 4{YaЁZ+k ֣rr *9;VO3R {A=ukv\c !a{'>gv;`3:S9f\&fѱoN %zy1kmvq[L|by30ay,a9zIfZq8s6.гV ެtq9{;G;[{8,'')&=]TrC#$L|I+חaA^ⳌBn$LNԄK~va-oO=+ۯA۫S,2s76sߐcBn3j=8X_ O- 4iӹ5eŁ4tÿ ށܻGl ?)``@¡$C CB '1 `NDDGJES,oLECkE!G"1 t4  6@0g" 4GPR@@e҂RSB74R7@Xp + UhډZ҉l$Soz$Naʦ)X`z$&,0 @*J,j!-R{Mz˅L]#,mׅj.D Ҫi+mkۊט?+p@7hKH(bJD:"p!;4J=b 'oWAK\*3@1gC" #?;A7'D.[qEYq.H qLHnkE+k![,L/$ &"CLͭ'(Nk2PX$4>ퟂqh7J$ 9b#"Xf.m;m PO &"lơL*^ka* "go; i%B+"[5`#s1oHe+}[Ej4~l3/z5v0l&: BӅF$PzIed!YS3|GzX3t?r 6M`s@9e!C 4hF[!D-ёP MEs̑|Զ#ሏ>[ ] FNz%-#o]Z?0hܙ94(M 8&'@Hr A.:JQk42 UZC"VXbQ'XMs|!P;dR;)\g6e+ScAEWJ.?jV]QƂaYE_Lx'B-eBcIOUF2#ĀVBabY[.xF81Bbɚ3(5Q,'dhl4a ޫ6he큙z(f@" 󁦕ZDվHiF;D3fm݄4la X7@h!J)UDyR$5/HLb2Sk4 @ rlˈ Y%+oB 8gcyqAY"Zt;%dh{Plc>Q'6щL!j]JN* g.y  +GB+ XP#\O2LB7@p-<=yz*,|O L)hBЦlYMf<(h+ iF?d4 aH? 5!"PڽGf<cb"zggU\E-nq?> d!CHAT;H5 BTZIG8H@b\6ͮ\#T -#ڨ6)Gq+J6vX JL%SHަP:j Qz,ru^'Cͮ8L:t!?"9k@*!4-Of'V3sr)LRn^j@T0o/wB e2*X>=-/Ȟ0Dhb3t5!M,`ߖ Ila:5@XSeFbLMW00&X3?19&Dȟ$%r%"$!c2C *c#Q)8#2I 3y-iFZ4؀¡$Ñ8sM%)Pz,NB @[IkCW!x4P%A@p\\n񊼫'QM٭S Зʐ ip<1][ ( ༲| q9|^ӌI @Ӎyᨛ— sC]D!Z^\R phLA022+$-M2+BǸ:?* iGN1:2  G20ax+`- %ҳNj,1:ZCK2#HY!*QH\0A4KKk⌭IH r VYɱ]ЭQ(^ ʛî0cfɟnKr)(X="(Ѐ¯" ȣ,7.3 O쌚 EL/ ^Д*I[|ZdL{_L\k1̛9* ePFP>KKMBA| $cNTԻ35C)~ĿjtG`;; + !35i-Bk;±C4H K%[Y{>j.5WpbcPPpJx@W{*?9캊gxYɽ s韄DJ¶Ko.J!%ZCc0R*T7ɻ'ŐSjӉ8L̈́XJ U 0$@ڔ$>SI$>=ZzīvT$(IӹQC,xN(Iʹu$$dCt^;P\OѢ4M{B /X nڬS,aWwD>17V]In]7l7PxΘ0iaʃ.̀ bZJ-L/} XBDJDX1+=X[ɧu qʊ NbȋXYd`C0UYéFcYgLJ1ʅ Pe!Kjڢm`MKJZE``9T++S3GO5,G: :cի$B ̙VHM[II4P"M 0גq& A/P"*؞]TC? E=P!XV\^Xa | ܓҾM^E"qWlD*bRK^"]+̼ LKڡҾ۹/M>'bL Ïď5Yҙ*e͝M%TfӶ Jӱ m.S``HTJ+ a95 6c[7cڨN?R LBG0PJ [H'!`[ԟ W % h2!n5dkb֛ uDeaT.П ͏;CzYޫJniFnpJm#_Xjvo5fQ>04U/uؒ: C ׽ +)]E T"7uS塨T*5.)IaZZ==%/AZ MIZoI ɒu^fng2KMj$-~ ^X ( B!6M{4\@ YeɎk^KOTI, ;68!p V46]K֠'@$f RkjvbHN J( F(y5~숋jd>/V70Pet!_Ȍk_Ԍ(}kE_Q>L_b,  `nlrr#ՔY/FjޚBv<+8zy51,EҒ)3}lgfMtQM2W%;rHLT*V5Bh0czp_`>]^KX節`P5lmRVs mB`W]5Ҹ`o" c@W3D'ǣF6^Qk; 聵b N/zӮ>xDe'rY،VVe])-E\>[,[Ќc!6 fĆ }lQI7OF|[{N9bj vp7Μ@TEB0 A D! ǹ`\Nmn]88pqGܞށxWRe\&`-(`D nQc.Xxnw l` "aT ʶ Z0X/T 0?.D?FcKST)dIjDRF!eFx$XneDY*#Xe)%v%tA9F=iA]%)gF RF1@&udJ aEhF?31eJN:9 j zS 4RN`tiRMujVX+:VZ=pxڱEW^]W]Wx]u\efc= dѱ iZDrfZhEzfZkvl!` u! \ 80q-6١{m7[y|@z7;}]~U@( H|Qn :7B([byl_A" آ-z5#Vl]:ْ)yQA䔔}ϗ|TtXy6QC dBm7}>ygBP j AZFJAM5U@7U9q) 5 kQj?ꩭTDGĄeEY W&;=s5^׋&]ym6Z@?;ւN'kWfl&\꿚jң7zj2k Cu>P!XvYG8ۉ[i lcHft.sChk<~]BGvst`Y.R5!j6EXZT+"li+@x$7"prJl J}#Fu "c[20dIaH=-MiEDq.QB&z"'9AR "z[4pc("RQ1<ݩ:PaJVK]C!fF/݋W`o/{!c]%*lQf2D:JS?ȯ*⥚^vuWG6 n4/ 9yq"vLlA ETtۡhDH<#861C+P M25+2OV\ %BZAWٮHk]+Rldؒ6Qn UfUH- yF5rp3[;"I PCܕJ2IΩthԗ@>4Bt HDŪVYf_٢ v)Ё2@kI*ィzƂfD^hI B .XPeБaR/h0W@s6jyt5 47L(B-ȲXZ:Q,89&RDŽ9s=Tӕ&!3E*5۹ضynr U8ZX#ŨFk_"mt# Ҧø5x+JjKz<2k!q&C yҗI2^++2Eo}lXQjcqѐ;SрLE\D/&_xg[!ߥx| x݅OϟIMůt80;F/DExBhl>W}@GALӟALoZO}G CP?씩ȸNaW+uHPئ(HgF|6#_Ly,;aP[& heK8L%NDK<ՒR+ ZΡy%ExyVD@ `ĒSǬ]K\; REVHGqFF|oFP8@Ƽhx l9D1uTgHT<IT9wg\TQx{ƨ!ӵ ETTϐЛe)QXjt[QWɈHȐ|M1\H8EQ1ɟDX#SXI ED}[ɒ0^AXBa]DH`uE`5\J+,Z.ю* Px  Q՝0k` ﰁ RNR fp\od6`G!a-P=mFK>=^GH CϺLT}DYVF šzGW̠e^!^ ȇ}AU[ՔҒىFD#vHQ^n AdWb^VnX2ihɔF ut#8^fD9iDEҗڬQeʒk?B O5nRݦ N=, E#K^ixٽpvyFt@!Sg@gKJޙ'kFD zG*йG$WLJ$ }DJaPPL$LLLWmTqT$jLQ%W]EXyS]n^dzigj4t!پOj@mء^jGuFPG GT!PАȈ EPljAS r; ɇ (P~mtbH*-ڤ+ t"֐A!D]%\!Tw Pi^ dDNо 5*,)n,NֹjVj&ޝmeogЊ`vij oh,->SLmjHzr:݆ԏS$JvuUW|gLx!xխ{^ǘ̬xaPa$W@%eR ql[](TEbaPK'V皚.*n*unѩ뮑Sk+ή#e,h~=N[Nqjeefirgf? ^ SxfPxi?R/)mb 4en=2͖)o?-s"q]Bo쁵dz.ˣzh$:yH˶!Sy{*Šrww3ztGqXML -|-|!OjXаߊHl+Rfo杉mH-nhulD! _e'q]V"Nŏ1\.]VɫI} Ѭ b*^c7b/17f53UڦQZjĒ)t`gPfhfj ү^/h`Vf/ [Ц>ZrK`R/Zu-_E=jHz-E:';EWΪ|x FsʡHIرő1͠H0 %i0H 0Ti⑌(Ȁh! euq'.V-#eY]IWAK BŪ"#Oc,at2g̦q P!joo;zVWfuU~(3`,ZӬ=v,#v(*ǔG=`! ;9o:j)68ߝvɏ׮E-QiM y}jPNZ˼ MX ԉ"Klsx2h E֥m*M|bFlX.TȊ9+'n` 7ﴛqгw2CR'gqC@'a>x@&к&A!B9\)IC iOz{W` 1Q,B `&$DP,V9P bيV"Ĉ%ΊxgM:CP($dG{R bBdH+A>4EI-\ ߌd JHDm(7YP9n+"T.!q$ YHieșӝs6LLW]}v*h,ڈD1#}C=r} ! W-!g^zo./|v/E'txßY @c dA91Kb͕=peQ@hp Bڅ !yPHR[RKϣP$$V+;MK6:Jt8&>q)A9JBMFY;4щi"^{CΆ8Qx+q$WWe͜ ǟ0YiP*VjRF3T1U 'E9WQ rK8-T\ݢs/^ڞ%([~F<XSv@}'rv2K;A0XG ?,~bP.MEBtZM hC3f" }NR#'J?"RB|ZM7gY3ͷ7I? %HHh"Eb&@ 8@(*$iY褩֮&<([+I]]>"K* ]e:13:{DNwNr8S*nA-lӛ^:.sk;dj/:=[ɛzAɇ]+ß @31MT6AAGTAъd8O&#shVF4`ZjnUV0OPHnZI؊2[QQZJFj&Li"FF} }["BletOƁNl|OPŚ"R8VS+Y4SFtϥ,JW]Q~Uȩ6YXiUg)Uj6YMld/'WWE=:M`"1aBADK!H#vs^&HN1G V \͐=ιk\da cFvˤ)0"ȒFBt$hd7QGZF-ɹZK ^J.g6m%Sst\~U)~4K$u4kLu#qG +s[˂}F˅ el ٪* {[1NYm`zI]<@qwz l`)Hos? R7g0ctx3 Yc7/Zlf[@oz24y=r$'u'}3Lg!t"Q=!Mf r;Rjl`ˇ!< ZmZˏJw"ev)K.i"uHuvv15#8|#D[Tzۺt0DJ:.>>B_8M,t×؀`>'haa'@D"?&  ,h˜/ !JBJPL *)nIѐ"hPmhO&$&l$2&fm6 JB"NhbK%z4 ڢq&f,Мtw..+:0 vg~gY7z^c[EB`%ƥz./E":(o-7ЧPHC Yo`zQ$n ?a -K ?$n䰁P-rqA|nhGlԼ;,͞"*·ILȂJ#Kn}@$j}kk*KB' '+FKhO~$\1*e"uqh1z N d-.Q,Yn E/ ;e' .Oz0+!w/0G?^E*p%?`b8p~C_?rO @,5qo$Bf "6"A(!ϒ!O $+% )-&o,Jњo&^;Ѥo"6q()mrD݄ ਞkvf"Qh*pڨFb't8XȲ?"kFRi3 3/B1S8,c704L,0zx0Dyp0E\#^t#mtIoQ>>ph~3i4r4* d ]b #̔*6#DJdGO09"+\`bIDbpa\"V dQ䜠$k-#x"+*zOb.3NĄF-LToXH(|$pv+Z%RN+-u-R/>nM <S2.qF"[EH 1!Kszb[5\@M,.|  Gm +4sL35HC@ƐIc`(rJc輲"KXѸj&Bh*L\B`(lQ7ɤNOM؃(K()7 ҚP"lH)%浈BHjtdNSŦB&dW? n,5*"5UA;TRAqUK202Fik#MB)xUUE;:`˥WqmU kpmm:L[M;=*(-`3{l } k44_P $5\S5,5 rqs7y8ˏ@|cGfcRafP ybrpiԎ;*16L9P'"X*uODek&5BոL'MOzK{a-L#g)rrp,lFPiM%br2)r5vb7neHIWĴmD)z5֬Q1E:>@7 x*#|n@`o$*Hsk5pq5G8..n n?nkd)4\3q@AN[Ws@~uٜhBI4BSE8][pPH9O貸Ukh~f:$0ǔϐmceȯMODN6"r?28{{ T#C~4\v ysZ98k9mWmczDEm_T)ϊ 5 U|[}P@ny`-[lab5IB^؂y` aSp$"@c+e]GbC)BxdyLљGh0=(b넄BDfPrpdojQ޸-TʹvT[G-pg40)dcMdYdt[xU ŭ!7X1XXC7FkOaGck$D\aS @DEf͡!7?tq&{%kY^=6pb1nvHhJJH~FiF"o6.ʹx7H+PBcbmOyݡK"x{4]jmWs1m)X*,v\.f/ì >lGv?tF/Yx$F51Yk ;{3?&у)5Mi5!\Aw$̵BBqwy+'?.ӶzFLk&GMnFPFL"?X+^'N$ff-ʠ}BnF>{hqgM.F{. v\æ1t|,h;ekM̦K,1YTRm+ov>\Ū0kGc%Ǩ C]\+ [U[<~)DNSsGk.rCwh\!蜘mHmrFIæ PPjL*N+-*f~4: ?JB<,p4 yļq;Ʌ[+X߾[¿"(x2אID&)1!:nȑ")2"QVd e;8vS$OD_hpDCdA lP.*rUѠAU;V$6Ը]`-܁k05 <0Ax\8pEVЎ^z_ս"7[ F]٨_;H™/"wu.\Lulx(DTX ~{Cp߽|g|z_E'?e50F 5EqE9uPGIs@0I&"N0N>cPC#rtpn a IVpDHTtXG\Z6@Ye@p$cEu%_}7Z=VgE̙eh|]9RZQ5XkXxSE%DF[Y:lRTg1)2ya:ǜsvA]uwz!7}(`(Ҵw-} "DlPfhIB)1ц'bTQrT"I9rDQ?Ӌ1448XP ބ\UtRꪧq-;EWU[oMA9֚ʆnlfYQʜw| 4}%BJ~DP92M}Zn2M)&Ej 9PwV:]jtxYx|^Ul} %-n7+|8KnU[+QT+PZ"J# {A>H?$\"TQ"YgiV9pT#@o}OXal@FGQM7߫jϤyKzs=fcSm4P'lLqRgm)ҮldyМo!vrI(;CĀQOùhdA.*|~ؠRGXr \mTi$S0x'i8 Z9(|!uzT"K!"uDU HRi#"1@Lg{8V4-i_ž=Q\ѵH8/$HUQY+dɏXƍRq=ڻqz?(f=UK5to#\")bÁTw6F4;+;Hn(; SͲ@ "dtR9k{:&GA ˊD49]?1O%b$!u W)^!yRY$嬡E iLvlz`inhG9j+s]j]ɋ@^ŭe/N$zNLE ct+g<8xiY/&S)DH̺@p#QXoiXjxD+2YA#)ϸ(@XwR |@6z$*I6ă,.魭tfifSUр6El94H Cz7_<+mFl灔'g>k%qaALpM}s&mJWMJ`E3*XKBzrx)V %Ebwѓ2Up.bZњG$* j>改.{VA6_&6+chÍiOj&' 𶀔% )~9+ZDH(D޶^bG\QaVg}PQE(mSJ-vἒjNB0qz遾9K<2]V}!2yy ]m嗿 9B5Vpg %K%eSp`0Le9p6B @Sr<&c0djXb,CP4C#~D97eQCBY!!ȓvfQdUDE5yT!ba ep#/f ;PpiFA(q ;q@$!mEy"Q_!J 1aq|0X$!}}0 ϷjOF#)!nQ6.+ćA"6 Af]Zv9*Jc**2iW5w+mh7Xm$%X26:6NMBƉ0<4d7dxNsnZ5!ӋdH&yI0/1B/R"B7GhffBz5zQzUq8gAPq!a]uI?*D&uJA_#G!|"_dQdUڑO BʣXՓ2j)q m(IG*ug$&b*.F`EH!4B% (i#W`H!igWsXBVGcC!!XeOZPWd/! wpUG$F% qPhIA×}I<SH]"YQG!J5&r{HSa)]I&~UGVSS4o(fHdQlU 2U7V!6**6rv.87?8@UJ MX7W*vj'ZiR:>:%hN!("<Ҍ"A;[f(;oIegHGgHHȗw\3{%nrι{mQU%&X%-gh]E4W2Y$^1`֠ yiDNt*e PLWK(f["q'L!V)R]4%+v+o*rv !T367qijى(i>K@90> 8A0.UaHP/![wb"j8nQ1AKRK]إ2A-S٢:Hg#?=AE  IJp]Vhq6mj !If*aM#Ċ%Ճ1*Atuc7%eBmv}D0^4b4TSJ#c1t_H|E ichY1Dd=*!D!^ #IP/8qpSpB7G!Q?hqe×{TwE9z3HgcQ9G] !ǚ!`+b adgpK#Qs۵j{]VG {[R}#\RcR#   ٵR  ` ַk뵉;{zRapƶ"aP빧pkuQ^[[S巂+|{pf}g}uDL(LPZj[hs9L ,Iꋾ2rD3k#/ʈE0Zff˵fJ:qIZ%  l\\̊ !,#L%l')+-/ 1,3L5l79;=? A,CLElGIKMO Q,SLUlWY[]_ a,cLelgikmo q,sLulwG L"A"AȾNjl<̚2<,l$ǜVq&ɩʞ<<,$L<ǻkCű0Ʉ$!QD1|@D̙ p͌l<`L|<ί1\p#Ll#$A|Ͷl! ¾ A${-a00,}(үȁ?#81aLQԿEM,= ^>Nׅ-1`*׌SM7NWV˯@]9 ׾}.V9,=aj<] ],$3◭\Ԗ m=΋NE a=n]"# 29!˸>9M.]6m٫6.9aE1MȢ^;=$M$<1V$Oʝ3L.-;-۝ }L@='@ o$n)9 -ݧL NQZ<ȏ˄/MQ?(kElد6E.D˸N}n}b_#Z10M@Ͷ_<%uoNL/ɨ)e aO40AOË0o\!,xRUgIQ5&.43%XAJ(0! & T9C57 fEH/D192G5BJ:I:0;V=G>1:H!,A WV==*6E3?aFOɯTT؇XnkOWڷ3 ^CIʹP=JwTZi_) tHhYtLQZ\XbXǖxӪ:̪oNM޺ȞzbN8EiLTeX]T:,9c]˓i鼣dAyQM\CMT6:fGMqPVWɇeyYzecWZnLRg@ RM]=Bgr_w]RڔdftJJV>OքbhmJsXba܈dkJLwQQ񸌈UP΀bxvϒrb^\ǀgM5;عߜälCC&#sU'뼫_C_at`}uڥ}xc{EYVW1(m]n^^ZVŭRIxV`΢͵o\ªDiUva,tUTGL,%oFD`[UٝwωakyM}B.e4$یmmVۃOWMJꯃ\d@BjsةW9b̜~jg@чlqR[ͬ`98fZ`uDˊq;*J3^חo}XE}`Nvl8زo}LFrŮ泘Q64#'⬄㳒QQQJ;|hภݩ___չlllzzz/YZѨGK.7ޯG?A آ*\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhr4ڷpʝKݻi __n -ÈW("6&;k`J 4ۃȳ DӠ@݆?#rx?wFOp樣S|WOڎD^܂s$h>ꕇs;cX䟀U_@^5dđyֶ&;ivI0dMvc>H?P:TTNhYق&{&{ړi?*Cؐ-a,V9 @iyr)HikI8N4n󸻛|K?8k!ljw`Utq%bVnP8Jǖ !yLIx'&&w͇既S?/Z)3fj؃m }̦O!R{x[Mn d=`Ry@Աf2<@!A 㰄^koԘm4h@pII[K.ZL8QA.P=-<<0=/+i]}SugLc6l@W1O|)yxÏ E:h#5: m G/RҒ&qI I4㔨L*WV̀,cIKr( |rZA7d|F(oÙl4 Oq6ylz&8o>L'7љH@)x⑏ {B~o]e60hJ24*<+v2QT=/g KZzth~2Y;AP3xi4{Bӌ9NO)t:y r'|PNCxjSYR ԟ=f@BRKr*U( dhHyҔ+MIR%+"fZeת0\%IBǁi)(4;'FXtewmAMIhGRKE*eWY.=);[:UD&T7Z5\U]Ĭ Һ܄^LOL 3o RݮC HwL~t k+Q;^` KLe-L4 MkZ3u,gyځ48>i0PN;׎ NQ[c-nR▎R=Hj+q;VqbJ7=nOjy*%PDxdU O ^;ׅW`G e{e X,(a|/>Z(T<2 &OĹyvge3%@s8Pe=[RvtW9_JHGy醲W En]mQ$'MʓU7J^,:%7$5.3kJl5{8%l5jv~wbg@J9mۓG5q9Պm3H34<3:RtJK}8 urno EZ0dGמo[/\սthIua(AY{6-NR8b#_Tk u[b^ō؍ah_')~c~&yoD&pg=pewODq]4tkw_g;WqUy مPe`rą8Vu$ota$wXyRIMa4Y5YN8)m)ћsaȋyF0YYibFUət˩FG(oV[y_ԡI` gshx昖gy(|Qy5dWH]] DїXx}}9$z5p~iy jve 9 zYJYؙ[~)MHHO$_8Ś:,I8BMLjfPciF tE)Nh8גK1zׄX6O9UG(亙[z9v[ɕnĩFcyyv)I]%Md韉 HGdY 搣TjZyU߸e(G)$j');Q&U_F{.Y|3XYgDZm4i@׬ؒ/P<x6POPWgKj*ѝpە"ۡ(oohXʞРm Kjkp(m;~ jvHUZ]H uVR8g 9˵DP$tEWS>+.j{K;m3gs .OۋCz X[|@Aˊ+ʵQPTekum[u#;{$;~$K\{JxVA}:} [LBwiS毊t6|Zۺ_YZ uYh\]ŋnjS i[I]8Ȟh;+A;c3p<Qʒ; ꟩ X D!븝dÄ)z۠5&;캈)_ꘓu۝Ij}Ȃ4sO͸z|øT>Ev3BjT 8yh,g;Z׊`SXuHG }p-]Ћ<̩1ɞQhd5ң\ҪG ՖdۺdGѾM{;ݡl6ލ|LK<ͮQE=8 =w;޼i NM)A9;>I|$sNʂm <"+ntK͢T|4kͩXQBF˗& ͦlS^˞@H\7*tl%ZU'k>^ꮶ@. ׸u[ Bܠ ,o>?ҏ.C1]w%xyHpTY3l2."íHm9\䪢j?RķOzU8O3 ,Ͷ @!BkF@:K{thtGC4{͊46T.svЃ|~~яȋ|h~x?B<ʦ}ߵO7 hyd8~⡮^̎yYʍNl~G>a\-^T0K>L_[.kMY3䠩䩿n-+O); nt p- q<]5 v9NqO@kP`f&$?c 'ƌealHMT2#J w\2f#K4GCN= J'B YMPFmJtPTVjuꈢVYuUدKv\W\u L|Sd-?7[nז}|Vj+S6Tc UϜ4F:5R;YJlڵ/ =%JڼyĸǍ,Rt0:.yե_w/v +=Awڻл *Hnō5.Rbiv-'[Zp'J 'ʉ5Rꩦ)3LM̭S1Ff b0bmtlE#ULa+VtIJhA ӾJ5쩶|z?݌9B B:ӳ :PƣhЃ). t!2S?,.T8 N=2Zi6l%33/lj/3^*Kڪ$Kk"vŖly t$, 2# j,,r(zKfQ|vĂxU */JJ_1s)aؼmքg;TTh8:K:Q`n83OD"= ڮdeC/G#-sϻ/"OsSOY(UWskDפ8<ʴbd(L1Dд*4$ %Kmmڦmv[J!qﮋZ,AdQŋ%6߮,(}* DvA=Jẍ'luPYjIb|N8BSۥkԏx ٠@ EQ볓.ROfYvf~NTOoKU[Z@+GBs[bnDy`B6-]Q@dq,DH $?Dxr-)ਕ]L*H B5nAۂ́ p/eM(IU@HQX#7rFw%hXx7h'Nm\@D&29z#吖*{1˞"Xʐ2r6lg #'YTHs+P@r]4AA&_F,EoI." ro[/{9vح!J cTt)ԢPLY<Az)ArO=#bƽ.q#ҩJJ2%CP5&A9Si(RJ5ZprVz 4K۰zD^f _z3u)7MhFSoT50Df җ?P )\`zZP]Kغ8qKqNQȞVb2~3,فgM7~fIJо /bh MTyv"E=liYHGK 8)=Lf#})(ݛT.ͩFT ځO_"՞Q KIyȿ*Nb0;ZP3*7v+?t 4`l 0c([#+]̹\Z7k[:LŃ$Y XEt*JWߢȗ:{7.mq \h @P,#MCH52ycbX<*;t;LQj Z@e137.#|taO'Pq@DMNhW?|N*j^ֳqGKϸŸt3! `Նn#q9`4|f%lW^xsM&^Oh+AͶp$̌-)^ZCߋ {͊UvC#Y%Ӣ$cmrQdT()\u z.z$%oIm m9{hxaՆWCy{A+'靶U>bHM X%rb~vֵ ԥF1aF?>,5G1 Kd)H0KHt Y?UG#Z<:#bZ,ΜMw7wAjqrAnE} fϤ⎃̐2.ֈwg 7(rgϤظ W qs5s/:niK1BϜ/caRYRG#~`!'݄Nzܢ>Z}B}5ӡnЁN%l-_`"9 )k#R <@<3l-k l@}H|c{K&S/s(,{6C'y8ӫ{=X¸؋ y9 3ያ >59o q] ^+6tRb>CNä$(A$T3뺼QA#HDAȻ(tl$vsws\)z.I"JbX :<1b?6:>Փ T iABQ hk o,"S|XFng*,DG+>nj:; 4#B6|Cp \SCC"Fú@ӬBϢ2@ok FkI.c7Ȼ,Rw뻓$3Dʻ @zCSrd(RX'A<34A?D;6 Bf2*+jiƴ2%0p0 Bc&t!i+KjʦG^ھG}4L'̜^4HbED6:8BA,켡R/ lHAӌ̩Դ{<`N lTMX7@ Q*7ț.:THL8-V,c]TEd-MSGdԄDld;S  SQ dLtL3eVaVaa-H=TdEhuRWXiȌ[V*ERu l`43M}ܵb+NϴjO݅Nغ%50.Y PϻgfY@cL̈́zMP!qPP}Ղ]݆nO;Ptb]KCDgi%i$d߁_ <NL%&SLY>`\eہ`[_ν#ɻW3r T RJ)ǥ4V~cQb%] _` IvnQ!b`Kb)vCbkv6_ U,yޓ54Ƙu^5Ch޺`0EhmBET"@M]hކvQN@nP!PmY!qBDVX!6n^ fNVfakiW$霆n~a>`[`v#o Ip][3Ka T8 oMk(^i/HbՒ4l(~b]߈?EOTJDUtr]Ϗ-0FYقllp0h&'vT8!Lgs^M_$o=^UNmV>-KmJmKVMb`hN@-Ms6&WW?Os)8t ȹȆ^6oW.NIj&}sSiNWV^<XwXknan!pATnPakWx@n=XeB? Ά @j n@kH #R[SVT`oMPe۰]upVZ+gbptf_Y4Nqhbc|h^Ɏl{7X2 ;!/5\huP^Rh]| XbW+OD>Xkì&vgq]/WWsT_uٗ8glpv[;aV~=~ZD N)oMtt,^vX[C Mg[n @gFS>z ]ns.H4Wiu[WxWgY! )8pVn`":Xnňn\?-$i#Tdgz-$b?|8ilP;C G98l$U=TcuօvbGdȳ-rQ]N+qt&8! 8n0Bԋ0ĒElrʁ _ϡ#.dh-G/ \>6Ifr}'සN<[ȑ/|a7O%Oc6QW%l8g=yۯ$9>ݟ|6urZ_ fxYVfu)d!χ &vQaG4?'u i4N䘓OE EPAeGF !P9 O4UV9hV-dKie%leGjH{.\8 fdn&؅i6CD栃{b(f :h 0P 70HJinwo}WtA,'y Mt!'xqǑvfPz|17,zŖq~wi9_~>Kkn|0(80bf eл~h>fFd/GXYI.: +0XU:fR(!y?A QBHB uSDD4VXEVW,HЄd,9.{E_uU=t6%ל c=֮eav2@2.paoՆZQFq>iJJwqwܫSdsn7'w$u3xJڊkJOb>ޚ{lqFnvmWZ&ڹ+. y.b50"$/eMF`SOT.匓^_ĎOԯDLؘU+T? o K% TDLUSUc3e8JsT֘zf/n0c}#Mw V;u(jz;4 @ mq$Bj]\6K5Jmښ :i}jmp7VAn 'P y~+q[-"%UnX*8@)lG>q ~PFOͅ*@3.GRR |c5uO"HxMp^1F9_fH9,KQV-b A#cC1Ɩh*OV#+3 ".{Y2Qa8eiK&P4i7 fv[l5)7 c6t&n 5 6oZ$x/6LJwWoC4\Ǒ뜀 U'.ΉUvp svhuF؇ZnPiGJSL澒D{LԢO, _cf)"(S0|&e"䂉Y v]ۈvT+R{)nFyҶN@)WAxոNr۱q:Y\qzQ8(H3G)[&^=R*T p5NSNnu7kY(2VIŏF4IpF֒񍲬!%ZG SeI4>J@*Y9I.;rK\4Xz]p~`e:M!cBf7~%m޹^v'5PPc˥rp]ꈔaQ,Rn^.]Bʽp˼ہT|C\ /,(7L-y?O1i<5ԦTTUhH%#XR: )1aop r$KI챠-0w)LVD5FIwzմͥiJȚ%rnѶ77Y8׊gp Ayg +R\ɲF^A6_S G RcS%LyY\nsWv/!ZOyr9ej\n5y iM?P=oy{4-×+2tE\頁No/Yڶ୷~K^RAV'G9\M~oji~w1 f>ؔ''?\5LlO(E]J|L;BXXA/4 u(ISxIx]Y0BT #]UӥD_PXIݠT]=TIAZJ图55l@[e٫naY^Q!DuPT-@mGuFlE<\-J@@=ܟu!^KlBm0dVaӤ\z"?̟(|*nܟ#uG5RU %]LDZXYmp.\Xi]` B ځ `mBl7 6Opᠦ : ۤI9Zq$[[ i_dZ^Z" e#[QZKVBd%^dbK8]- G\,[ ,LqŠD=_1ɒ4 $,aU`b|`mIl  #}}eJfM)b*"N唟,OIeTcc# @2#[EO$꥞I$  qB N.T Wm ȡJ!-qG"txa!BYP6O.dQd&Aem!Tc=ib*6jW+~hW G5?DhI [cZ#^Jh]/#]ҭuZU 9IN ؈\j#7?#\]" bG`%G.d%Vj*;B=)J(&==mm1'"Xa{C.Traz'"traFFBluat$ąpzj!$N!n)b:Q d$!Qe+B/V/\BFZ>)JW. &peD(GDh-녮%J\ `Y\ʌJLA3ƄZ%`( 2]\#5bed+hx.BH V2mJB{T.l=(V*d$:aA%Q8MAAgUqB6j^TDd^N!IJ ^a)!dMjN)o^y*uN}nf>BݣJ.fW*):N("kh90:@C`f׭)LE1^6a>UhZ#5N揊7zd+B4^h(i>胖mۦ))ҪqĬ~ 9'5iF/~?EoGi!olʶ,rڤG:FjlwpAJwڡp/^Ƭxx,xmqN\durQF0~BPbiَm-f;/?۶V!D"n~#[2 z,E ^6 XUǬ:_剂LXA2&)&`!#ph2\6zd㫽½6.%7pk,mڪpf(nj߫#l*5mS/ ;4o#FrAFrF/nF2ɢ.%)/*_*2*+)2.BBrFd DlM)6Mi'ko])Jrr39&r"#*,  0>)BJ G #݂0s(j]q[@_]Qpa:3b?0-4sp-s6±0iM7 ! (ڮ:(P<#,,rB/,"g.r$! "'%3(G(2Qn7nX+W+B[5,rH2-,/Bqar$C)DrҬ-3-;B'M4iy/nYr]r8{3WosC27s3:3# GpĶ;1Q u=hN!p#wְ%~1B t2B|Ն(p<f"cL1 Ψv`I+Zp~q|#K.qMW}s4pN/!PϳsW)8R# WB8c?jk%?%[2Gx_B/Yv) Y2ro\+̲+\c7/?. `Lǐq6H'_/]/O R}/˸7!YXruW6#jvp0ul8۲0,Q7,wK s k5z tr.s Ԉ,yU^4w吤Ru#a6II@x|w:fLBMp5: (4(i6+Pc /s+ijj^lK!?WvX8Wr{2Gx+׸*5w+t/S]/JlADĂF.!/cQw,_Bގ/cSp2u߈r,/Y&_8hC{{8o;G hrg߷'|'W<{;lS>_Ǟi?@?B!$D(aժ5O"D^&fZGh8BcD4=N9 ,Wпv5 O4PQ5]&EeJ+?-5F\./(Qbp!EB28j sKW]a |we׋qc5,odˌ Lв͟iDh&^EԨ_&j6Ai{7A.epC`q.B˅is\g[|y ^yǟ7Ū%w}:KlcA5LʹDPC"L,$(S HLbl1/:讃򢚃↛l@⨣FR$Tj =\b ,ʐa.(0韢d7]R *U꟨i2+/LDb(Xî`i 1>n$h\< 31P!{#2q3FгW/BBOrs-859jS-\WY{∅K ۶oV[y%h>GtCn 3n^b1J0B4€geXOue@l0TFQMHL3EHdq(!!Kr5ω@yJ,(%iҧ$s5ɐg9)=)I2j%/ɱH 4҄/B)dx%;L2@]Hq5iցY.r5^kn8+.g+6>+ȻuY'wuxNrrq>_ԭ5Wc {Up oZ[W8>\\,'3P54>af?^# %HDY!I:z4 "n -&BIM2/g2.MNK JJ2;d$1VB, 6Xpk`B2|: u ҋ12BCKjEJ'*H"S!uq@f:ᜲӬh,w\y#E=NWqͱvx~Wg7MAA:֯eRa"s 1G1z2vqh1ۅ^1oF~aCd dC63 `PB9%]: 8j 45մ& *mNrzJTLY*/ZkbYxʰ6r gXEz?×]N5Wd@LWRh^jqO,EQ:Sr:uD(E);ʔqBynʫ;juqH(r YNq>n4$mc)OJ89(DMhKTR2 ǷOaM|K!d|Ȑ?R%jSŜl^~FM)McYn:$w*HI5hiF5_+ rǭi80b#PmL1?#ִiDyŊ|;RF3ʺ}20f;܅SRD ?tRtc{؇Xt~F;)ڨ:p݇=.BI̜)?8!-H1nb$=։fSL?N:M6-Y;Ù(QybZ^o?a/ajSxl#ޅ?p.Wg؅0~J 9ᖷ\?pzNozI"`Cͥ[.i!z (t[n=ӝ3:|Etf*N'0r"9n B :':ūcMj/>Nt,q\C:e vN.n! z.y.Bڮ=lZ\K0 lc2 TLn"HQƮI̘HP hKD sBvMݰL fOph/dQ. ^C$3W %3S 1'1'Ưخq~921:@n6QOrZE뼒qR1z%>('?R)P%Zna1.&Nњ(Mʯ urud%M&9Q'Xp$Ƒa03pi/yFsNҭu&Ⱥzf(bӀ$ m!LR*^nJ 0mVT,vA0HH.P% XP'smznznA>Aw /)-)0+!A+#+/4>YQX^Q(Cn$J@jkAC?yesI41# "m<#% U9neF4Se hc aL)Rǘ$s#fl>91';o$MQ[r%eIcrRqS0sHw0Ѯ<>uF/p?)cBQ:H tAuWWy/JtXţ< C9>/`FB'BZo3AU#.zu0Ow/ "B^r0H=u/RRQ/Q1BJ *3oP939”G )NVbu. ޴p\3 u /4,/22gU ۠S ~`||O #A$QQIr`/Hu_o!okr/ˏ/Ķ/Cm;z1/6GmmV2?oi +X p WrYuY+Y`q!WYs 0uX1DgdBRX22X.uFv#2Gv#2GҤ<0%0vzUU`v`-` b a7>t34iBLDTDgW(t%Pjx$)4ŐiOu",0rygU 3P݌J 6ms$ajK`%x _x7x'/_wl+/I8Nl mo]93]nuinvoR*u`oŃ0p{q pU<YWY!YxruY!qssW,B ҫ`rxI7wXtYYKYե؎uqX0YYVgWf0S9x6 - v%X*S'( oaH0fL{SG$9|QeW O֖ 5B)6 L pwPT(R2gŀV!6z݌_%Q@RIXy3-yRV^578X/M^[m[ؖGن-qt ZupVyiRq!TqWY؉ُ-7/ qUȃ] UqzY/WYAx aZK s u /_x_/5`%y3Yz?b2Qє "LE;J4Kn94oFIoȐ5[v!|1f4iC96͙IJ1p%!Usjy=V5lչ]K^͹=PіGY5gAgtVxXy[!A6zX#qX9ةe:Z#!^ڼ `ջ Z ¥:ڨ{['9guT*60;AxS;3_mr$Zy-[ɺJ?yz/6g alF7&\SZqn\H7 F3,849iJәP PG\'0nav9%;x B3n뵃GG` y0e{0mm{]۸yŇ;*tY0U yY{:{3wXNq _כY}c蛽_ۿ |u}u`/ة7]ѣxt3\aC;aJ׺W\{ѝ;2h;+2~{7e"GMZSi$%z/Pex]1ۯ\ۛ3㼚'2;2^G^ߙ6oG9^a{NTϙ=Zm8>]'hU5q#]=u:s苝uBq\~oݿm֫m= uwEa~qPVk>?ٜ ޹6 ߛ=܁bѺ." Bi0eXv1h&ݱ$tfQ?#3Y9 =";bƬQ L\JX2}Oa՛m2V&QÑۼ_۝9>O~O|uء݇gww!]urX鏞ӝ!:?)<aC NT0ƍda1q((bXT)_̘2p#g̜EHxCC94TRsY/֭i 6CS^8kٴg!柘5qѥ+&n޺Fh1OCŀ?ɏ%[e;;fѢ!l]+wo5D7E[f5 ٯʓUy֭YrjݺCZ/Ө[)ǻOu*y%xP>Q?`P=`dL5Y(4 Q1#QNHp5dF=$Ca$z(H6#1"J5q :٠F .XŤ}>)IRJQU]wBG-WW[[k[nV]AkA?uf?Fe8IF gz:fXuOai$Z_kP]=Ej|nj[*~Eriܙrt]ǫuYbfUWL9Uʳ5}QR~LOf 4tC.jK,dcF=QC?P.! D{?{n6F ߷sP52ndej/`j_5ʩiyG&bgNyZh)v2Fdz%)dWoiZ+qg5VF}eqeyJzW^'^ճK92S5RHM 1H+Ӻ[qFNӍ+TELNQatbE<2*+ dfl`n JrR\S nUI7vd3;ͧQVja5yOؘ4ސZFy#W}5!`%7k[W֪­-#`Ib.'}XaPoZɎx2iD!Gރ,f)t!H0Y2Gҥө]LX0d%spT/-l_]&rQ`F Opj⒗Hb4$% zӈ:fMdx$dԃd2pU '0e$t!p>5Spqx044n(?91|`/'>R-Wv2A1Γ 2sQG# epy%p,4OCbit#݈G6 ^'KcG169KwZx1G)bZ =&s~*sKV dz&Ih2ˢv No\`618*F3 2Y `~F'I&vy^ ӗ_1\;C8)#PQC.icDc0*;D"*ywc `e:'󈇱bLsjABF*!Ȑ7G~th;QȜ#MȊǖrh`dw]vS"T!A{H8Xo{ࢽq87uQ !'"p ,!v "9Ӱd$%jZKaJ7bo;X*++!4ͦβ)4&gKk\#'ZrD1"ӂf';aLd=9!wΥb Bp?Q ND)6 *l`!ɲDqUpr7cm$&  V>dmѐ* (s3b0"nC+z&DO!H.6"P!ņ!G(` I)xpCuqiZ5Bj`èp&hXk"q]_V`ش]0@qv#J'/"['&0zF2C DsD Pc= ٷT*9.ݝ~2*4I<7fxe)RuT&O`rUւ`唸.|DD2Y0EHs4ĠJVW;a Î-l!S-RPB&p2"foI&"_p,ѐ >:л,4"b#׸uCl̍a\G^u-_xZ#Mvc s=GJGC#(ARM[`6 &Itg$蕼0 kw{2g9kD'VwI-iLq&7k+=`F0O͝Hlo] p* Vf 1X#+1Y{t/ JOoShkPpVkiq\#1& WmJ56t' d!L~1)s'pBёPV0OE.e^"P$tD&!hV  1D'1iƉ`xk\0xl\FkKv րlz12VkkwFz7 Lx Y_`ak(ȁ(8`z6ke SeQ'Q Q pGsGs#S#BwgT #ug>2$PS 3\PCn T)u||w|{h|fڰ.I2!6,,Sbp2ta8Sq3cgJ4)Es @KQW?I3\BAp2 (3: EnE<9RiQR;8{ťf\lLyen؛y 'kFxw)x$IF_]څsjU)<յ!GqMhP S1SeG^+ 5`758: :ڡh::T&ʡS'816`v!^9$ 5`! 2C#y E 0=R p 2@,AƱ&P~kXʥYJ?7V6r|&_7b?QV6z=.ZI:2YF$# эٖsȍ\M"xdžzyy`xl Ŗ"YlڐW_ ǪydSU )nR _'! Ѻ]hО"]/n"&X( Ï}P_7Z`6u !ʯɯJ uT'* `*16rõ<&#W9j|$bgF::("R\Pj 0`ZJ~3o)xVhQq0~8qW~& ? P tyUYIP1#=Z YF:mf"ZɁ(Pyxmivwy1zwz! &; c 𐳀pn4Q ]tzky O;!7( /кOI q z`:_EK!zZ9n3sov)Q:ŒdFw}Efg[;{G1f!aF \S"}Sf 0a1pYdA`Vli&o~xC*yJl&r?`tS UBMYIȌceҧ:YR/,]֍o/s*=A\"I  H(! PŲ ۸1 zѸ`Yi 7kdq0lq* 系a^[Ly q!c|p2Ϊ>'DNjUQft8\ umE!*"0h־1:('"I q8l {``g|Ҥ(mp'= 1-Xʠ   6 Ň D Jq @U) I],-SGu:P˜Lhz6]ph 'Z q=Qu[`j001aV`3Eb `0aOWu؆= qؕ_Ť}zW[-;Y!)`Y* g=܀͔ܳ ZlVG#\qmq̄uPD,A1_kVH-Z=gmG}>؛Nk淨lzl`"mf\eܸ&+ {2ݸX0 X8  D {LȶۓKլ;xLkJV xl=.7 P 7 j- KṵTg[U[Qp@~= Z~xMAu ,f@ͬj L04`秭+, 31KԜ`S P`E:&poA3\zI7ܠM.)^^ۡ|A܀c'qg LJJgQ&$eX$C! (:jЯQs #DY) -$#C-^ŕ@^ ;Mӱ v  D( u/nl_xM016^bʯ*Z[@2/L&p8? &`& j ؄x`S_QBBuA͝znvngV*(vn*`k Z3ORn٧5cugjۼۚ۟n^@> P) ?t~QA5:,vnNZP|%ZK BP_a$bVfe ͍=fLāFD$.ߤ@XlM*ҐѸœ/[`]^14 O:} `DQ  </ÿ1 ԐbA2C㿍.X$ID-(2pHML3pLyjfieXjU9TԿzHTZp տ4҄55v`4`3˭)s+l)3bka LYԩH101[Sp4d8P1X11O 7nkqM[kh=ۛ1$4, =B1Qԏi~U9Xg0{g9o诡*0;G`j! `*p &p60@CFeFEYZ,hłi1;hzEGDdž~eRH&|I*IelYe30yL3G6!UTs1(FU",b$@-(#D5rQbYɥ('I#ԥ6})%PEURYɄ9yC'Kr - ,~5Xk50c"ƢSVgĄ)M&+-b[Ô\u攴XkF 6Ͷf6/ bdSN9mFkț\!sIcj#ZmP$em O*<0*p -YA ;DqC>QdE%GYHq=#2G",G% !%F0f鬐'QKr)n,L G,&[. (A$(" u!\Q+d"r%XHV:GK֖l-(ȪQLC2up9Xƒ-:W/3{e]ikKLۆNAav(; F[D">7 6 z58 qk : @aLhT 1FU\mYH:OI`2LfF}dgDPΠPHj,`X"цE5D QQvZ4#2V-j$Մ Hn R$$ё!h+2?J%Rޖu$JyR! H`# ԧjl[HC"(dQ}U0BvBV(NʁnVpJbTRu,^3IBdfAI`vyD.bT#-Fv#l7< kH)QS."qEROVx A@j%˕ eT:.$UM&& Gd3#248'.{CgRMkEÍW$}sN$_z7zk5,`c4FqTؐ嘔b c8kP"!uXH]7A1 @ݠ 5 Mhs D!?+QA,"[EIW+;VK Un LV)f^SxfE .rs0ZpyIơL*IMݚH#=!Vh6G&IGf$Ga#$aHTL‘ȫ@ Z]>c{8|!Tvo \h*"v4n% )+qT&ՐW&[CM`9e`M3sM0:Pi{.]VLyF7S B:h|ya ;ސ}ɨ;+_yq,b_yyQ-ǥ0!S lW./6.XS6McuPo|@ש1Z&Ћeaza]J} "WL:J,^GZѣCɤ6Gv%݃Waw۱]-|{R(Vv&p &> @p0HOPB&A9C }FYI֫FViB\ Z(p]+4(Jܠ%lxUaJdOp+J /i .JPZЭBK?.P-/vc x/骔73 7 i.~c/|zV "kzx {~'z(RX h01: x9(:{Bh0;1FX0×B (ѹ9 n0lC XjX•( "=kXX녷L]AJ̍IlAbPT; 50;^xX4;KxE˔.X?IEȷ.kZ|[Li;fW7 ÃWG19Pgnc87xÃ>P>X?p[3 Lk. GxsW xlĵ(>ȑAq 3k[@SDxl3- +?[!?Z 8`Z˜=83OzI.xDH?J@u\=3J1\@SIb.mA 8ʮmY tZA) cxJtC,}#/yi: S0$DZ B,Fp_ia jC/CkXjB/XQX ¨u8K"I@ F FLn ,ė[jAj`y'(Gz8G</|c+EPO5LE[Ky:ma F ܌DK +L!qj]GC[:A<8^p8s=YhѭX=@ExE~T6~|0AX\u;Q?lƧEibi7j/S.ySXp⯇[ ԀՇ"aH2'ٰ#D$?պ؅tLB֬0,N\T[IIܜ` M huC]8d mV CFE^$(00X8MzjtDzqݨ"(PN'~eD PTN/| 7Kkr/Vppg(QY4]1%3%kkHRYV'pYOx~"hٿl\ٕa)T䁞L GI s#;h҉d~(*Ȣ@ˢb*&ڙ] y&3pZ(Q9Oh Qu([nl4WjcxcG{gTG \co4>8݃l'/)'E[bdnYSdn;ڗ`3%^ Ǜ p;Q\ J6;\Ife7J銍&pB'`ZYH邠(ԯ0F 48Vi@[|h=n\ ltdRX_1%̨(@ YE'YMW\B\"! D;(CKh͍VVnMj_d\}U_=}ND_x޸Nvc5[j5&_d%iY}&'Y߁h@Z֓aSK-sc̦c3ne \G \PIFnff`agՁHk;Pؙ͑ \ 4JZoU㡨 =oKf3XUThЫSR#rDJǶI Ky"u\[ sિ]V m x})Y pUH;f00  M~;;I;%P%]bB:v\JI/vn aZ`e߮7fXd -ߛ7,8ῌ3mpq ✋ NF!ȏAyߖXbu2Bq_Ҥ[#5ss N飤K%x,Ԧ&zlKeUPj"֫e#&.j׮hɬ3fhz zf}8c;ת5!Xk-k޾a{E/7](XGkD( ueвd)-r˱9-'UE3cU`Z-U'!6{݂i7Ew UnG/GDŽVd)JxY]RJ]%5&RCDETbŨ#K>@ "G.n X."q|r%gRrYC%?5ÜN*|h(IwHr?$A$:Qdԡ?`  8Zt1V)Eaj)QSlHpJ`ԅ]E"ZB'H,hXGK+8OK԰f/Ɂ%KV] Ep]d^zcBzd' eN $:9B/Œ39MF"ȑU5Lpj\C`` $9 ^֛3i |au$/\0kڐXptqH!cb,"$7x()R)4&uϝzܓ׍"?9M-'VC{ cIeϡ31:wl  :A'A} OpVQS Ԧh)VjT#Q+"F?܏)].U9@ J?4RVAD! j,#i 휒? !1_"R5 lF Qc;t%Mċk;1LOE ; JkLno`ErJ/27sM_jKZ 0MӔƜjh#i2idFʍ#/hnt'R/,#3ER/ur uDd'AL،FD9bhf/CĆdGl\~`H;$ƫH`9QY1ccҒ=LD{يDʼnC8"lzMc&HAx4!.t#Ha/䣬&ԥ%=¥CQ'7R V[%J1*O6.LVD87=@X3yELp ʪDQ-'")ak! Q:БʓW)*@GM4t%F=%Hyt^_X ;Q{? c7ۡԅ1H8UʑpƵim8Fሦɭq_1 ֬6VӚ_%:X2Lj7k v5F}y+OǴűd!ov;oh&4 _-1 (*)+ s CKp+(A֤[:<:"Q4:x3+MЛ|RcE+hA I=r>8C%& t_NYeHkHfG*H2BJyJ筯2>Wf >D@ ™qWnO u"0E!׉Ԣ^O H[a|G+:v״vyǀGK'"q!XźӝE:+fU! PY+sT s42DP/]/PR"F͔۾V)_věsTH#EHDǿI3F_`lSjLdZhVty җ{$5!5UF4v|-`EAa:I䞣8"ک¯ÚԯyUcӝϒ}DH]V@8ettA: N%D ᓠI{lSJ&J*+k@A"C"$loj/33/LjP >k&f I (XgZg,G pg,@K:L@iTV,68z#|i;: E:ȈM <iMn$1eAVjE` @iHeH0.`.P}2(DF]x%|Ґ]HXHlWDQ~~pr!j!jA:|f%< ﲉޅ]=.cC/aO*@He(`t9Vu!*@ ĎY*j>vN/0V|I}Oڗ0=)jnjHvabX2C"&@Ȁ2?/j&:O/8A>|AY|5iEZlE@Qեފ] 5G%N)aEpRi)A,dhWD6H`%7 _>%FtR nu%*YV)** i`(LP5Lv1| 7/[`QF(ME$㥝HN(R6j˜$3(6flƮꩁfadz0ҍI<yVSH,tL`RtvFn:5pmDNg`hԡFeA2[q63%X4mf菟H\ 8@A2hy# 2L hz#9s82lBz=Cj ub DBOD,'Y4ආ>yV]RZʥ~bXF D L{TotO bFtwpGMD$AlFi}lL~d panR%V׆ _l GW{q5pФt.ǩ'JH)ڛByAI)na*d*@& hH:#]4!>+kSX0Եn(e>ݐI:?K|:3eڶ nVUCɤlєc"$Jb$+(z.P 8ACO8@hx @?7{7{zzo:o7<<&u݄*<]-t,D7,@8}YGGݮ΃XHCn~xa[1en|ټ(8ygYKFpr@(tA9vcdWvAy:lXpA9p\W69sc8x}y\F0[˹ x B÷u6FI-_R&dܡifa#'%Rb$Δslݟcڒ( ;2_fT褨$@긺WT~hErXE!TL:ԛTE5Ʉ2":4"r&/'cp#/gO Hvs?k?{;zk 2?DZq*`)<]qD^͡?3,m43?5"]eiοnX܂g+nԴ9gڴ]fx#bAP* j鿦M['|#ǎ9ͱ1ekқivihU^Vu T/^ |-)`tjU;| 4vC/T2Ljѵ ;ndyeBZ9ҭnp847:Rv< ';1<; )ND/G BksJ"= pydp/Tqt2O䂬c!|%3L%š#H%@&eQI%I,qJѠ ă.ʨS=̤d4S=lێGhȊ 0JtUVcI$G$e H@tL#df6IDV.C9-7cv2#zc7ԘFZr. jb-pHȞRxꧠ(J*͌ev[\!q,Q-▒W\qD6*S ž,0oJ*Y5ɘguTFJL-6D ns`g_颌JC jO E뀸 T>py泛1> C:$pJ_\r$k3TRFz^7Hq<9\ıT" 'WմZOACb iK܃l;PNޤ:m>8A_e\$kJ"?t;V@DR2B 2zPeU2&U _:^r.ˁH\:Š)VJ7tA JQ!. "(8rÕԠ:IF!Ktu qhDJxD^qp)s Ov `p'|01@L2a#1A2it2Q2!cCjc3gxd1/cTӈjFgw܌yHCnƐxLTvx*yDg P•TQ]s|hiO?v##DA*GL;܏Jjҙ_iJ@93aIMF+gaHZ@"'־ FK9FI4UO*j:. Ԡ  1d" @#!ESJ|ϙK0̾u>)* xbIa!p.2V+'kHhQQ”/BJ;#p AU2i֒0-t,!$%ֹn,@%%OE,.jP Eh?),Fuq]jҳ%Jg%fyb=s22* F22d|! b4nlJPW ދTĥ7P I9oE{8C%c-_xY R7ԟn@V?/ eBF`@757sB2&v^ihx0`;W *հv3XO.z݉%;^yZD!N,-+ j%+P\X|PSv 9|CM98wHS(\ F%D(&,yMLd:(l1BE,G<. G;zk*Τ QM qh疚 e1 O '$}G}/#`A%9%Bz4j C̰=5 ـUTaot4=,#MD ?GBZlDl;>hIp,:TYCaZ/ue"΂ l#T9尞!ߠ#&Ԩ(2(bB2J)JܨeG*z$hxi@G!tatdbGjNE+)ll=LZE׋FI Pa PPQȌ~AU @Up.$%RT <<'oޣP%o 3A1od 00 沰o*G{D),( 6FfDb_VEa)5du'EkN@)O@BCXQYӔXiJ@y pATQ!@xAx!TA=QA pf>C? ,PD353mqB )i`%d*JhK2Eb~ʲb(ԍgʥ6ct',Cz#B'mr2MA(dP0);P|XP*3۔Rlp3Wj@ bntP,@NUB TeR$s.c.f@RR*RH d@RER e)1S4UQ"Ed*h R UR|Q*0A"/W$33uKs6I`D裘HJE_4Fp3O)DO6DHEZdC2{uCS%JsS: VCak`IPG0aʳ>U> @Sa`!pA!>q:Uc1!Rf>UiSn tPkBwJ FdwD%b EX1 Sy!> ``!Ax `xuЅY-}RB? d;,Ĥ~eyJ|u[Cb- hdNZ }"U8Šv"E+\ԀI`'%X {I…{z'[ * WA/U@ rx!u?zR@UbUuR'U bYSugv-b!o\waꘑ9xUwaTBK6 hy( Qyo.ˋ0 &Hmrr$YpIp5*.7nr>A09GH(!B6Lc/uQ=S"=!=Y@D`@5xU!?`lq_6b7ZؓT zTTRnʧمIT&UR;C )@;FI])[P>AoO\uT"Κ !,ͭU:&!LAÂ2\Z(m̠kF"EܮS~㉠in'L>w?P\uTn8CVC9 }  l2/N@R/Rh u P j9u{@wSg7 !^;5T%ADQ7T{>eɀxUB!TQT7ZS)AN ++et@,B#+7ÙMC;D=d&3_ӁߓˠyY@@_VU @Ӱ*CȆ;VA @˻iT@ vz)vZ;DUpycT[ ;K+NM2O|ZKDD%\Zws`svKmV l "&&qL9[%(x."H| (긎+%* TpW-$ r8.B1z%!H΀LN0 DSE1)"] 8`S۸[Sw@ WAps> ^?U {ѻ Qoj{  RYTtyuuwTޫ@+t@0r3A3T @,ĠO0cZOhoU3:?! )X%fuY_%XC ȠQF MPEWQ Tz9% ; t3%ZC߻vwyWb/!4;]W|(`|ȇ!(VɯDxکϑK|n:89)~Ir3d o_O10r3S~R(Ubگ]`S]%~W̎oDN>ȱ _MnPFf t>ރcew*x_Wuӛ ?f|$HC)rVE\% HQFiSI 1e˗>|ɧ&& |*~Rg/= JNj8q)'OpaCL76+^_BW-s/_J.6=t ɪ6ńIRL`"=@'Kak"̿Z3p2N!? "T㗡5vJ>Wo83ËC~УGhϞt{>ÞnQG{t>}#%BaM4]t˫+qP-o -n!!zJPG}h(#{{<T#^Gs@Wp3E%&o: UIgPa#UE5G/Cr|C IR$?yT RB{a$tj2VGEh (pքaAZb>H"^{ėa TP-U % @'})%4:ᢉ&w܁ .O8uߙHL$ $`cACgx3 1Xb$l(99єN|i@PT*&Xc̘P"n*T=1ct*'?ԂTS XXKdl,@Pe ,UVgV (aR(kp!kqUEPE?jfB6TGTюv;U?<.\pE-]\r GpAg]s/?y؅Wyۍ|#WfxpG}n`!`{('((d{,U\`?QnG֮P>WrI#PJ^:|n"4DC*{KˡH;)fUmLBIZ RE M5*%~"∋`j]S{^{ӸJMa| c,5B,aWBqe@gҪ Vkh5Aon4`fK@ָ#K9;?h** ,Kb4  iL+4VÚD Ȁ^a5Or?,F1 aK 5-aDB%hERn8ȠhLMnri5\q$U JGYv`la'MIC)} ^RBxC~JRl(ˎtbQ2S GL GjO8#F?H|'-9)AIdJ#t"$"M"=u5œGp$If/]EOEK⢟臔*\ ~[ J4=_z֞T8;!@ʩhuLd-k^,(%@ڛW$8aT'M誀T UD:ɃuvâLs" U! S ,, b: dX Lͮ:T (@,X$L2;eOG<#a0YTЦd%=D(y&Z^ DuO P}|K4}nQz{Akի`RԫR9F"4|֮vGCeGhGl)6]?JuM$(}:D~Ahܗ"|ʭRDPm r*!^MtNXSfn(rd M"RBKƉ`ʌ:c4VAe5‡u@Ml-*Vr !, tg,++S/e&xO w6 CAd=4ʬx̕LI“JҔDkLmw/SqŔfSkK.ITtǹq8Grց\t|;чLv2JٛTz7[)#_ZB1pΐ<`z)?)jtɤ4J!&|.+Otj̳eURB3r*ƳRtxjwj`fPy;cT9B#Op{ &YtF!vE`ɚ8zH*D'BijWUB<YS.N,4Ov˨kQ9hahb13(“s P1uLVDM#\Mw56Y3cY 9**3A1!&"b P K =TB%_2(Yb"+; !SaS<"UMw2]5J->P?z nгxгn08"!>RP餙[SQFE2%e]* q8+R!*QcBƵn3fg)T,StW.ZBY@*(Z]䴯,Xd4Emx%g11c-Qw 31EyWphih/s"`zWC1zZ%X{VUeBQ=)BZ3w`YkUŒq'5q`#Hk+ۈk<'Z*87Vf3bIUVU_QI5f`虿]"gTJUAB"$@ &+w@* %S dO&dO&"LTl*ol+"[ "rR*e7_Q^"RȏR#+fQwhw2a$XU;(4qr&,gQ#acE򢙶X $-":ǎJ'-#`$٨X%s(a V E_t2Fszhjjp"M|yꙦ˺R=. $`Sەd.Dɮ{xV A ,֜.{T ?.%<=YڮHc8m S(g k>m6, Xٮ"b&a"%xhyf 4>Q>>ILD>L$LԠhQEYRL%=={>}*z/M"E*9RGI)HTQ>٧O>\r9vͫWn̙J&ο2?4R0/5|6ffl@ d(P.m_f7I$INT)5*8sv ޽X<502@iQ4]K-ȴ.^x $W"ӋAQ&Qݾx"D\A6P,BNnF m46a9 ;dd !40a=cTcgd = 92 o3: +$CHfL:;ȃ2$r<24)L3DH)X 7 *p<N>'@tBl GMRKL+L'Ѥ"LK!M?r#wR4@5 O<6..8 p[89e/ b%7ӭh meg;Õ#5:[N"繑T lSF#وȴUĩ)BNI02֩d8Y~M0[.$ ?@ж ,(HZ֭o m@=XM8A7%2.g̅4 &J40FWP=vSsP( !ѝP : /ŝ "z:SRR)a kTħ)|QTg>@+cLĽR:пITN.',pCЅ-aoH1P8E"Ӥg9$ ӥpQ &p^2( oDv& 9DްX.8Z,={Rh'fG3B&5 <"RZ15l/ Lpưv)ʲLLr55$f4 "ٵr ćUƻ9K&ӛ/hD_ݒT%}Q3 FXrqO~eK% m~р2-< r iZS< O6t,NtcC9AfLMAt4Ӝ9r;c'EW3РHKHt\qOYцa EW]}#CE;ԂLJR#&pR9} E ?ņOr<-1mID~uF(,0C`"ĝu\LLdp 4 q+`tu/}U[Mam\P_ E¿6'99-U"Lvm'J˳&Hu݄-d[8k= "AdޅD4|#]Q7~uIݕ 2VWFBP J;̀s4{PxQy8 < 1 0@x4a\781pװӄY:~F5.f+nS4;a聎Alܑu)ZQ 9t">3ۺx+L2GI'` E>YOXf“X>SK_՚b|>c e<ә SUJ]O{Q*Sāu/ag:@V}UƨT\IIBU/vm*ރ?v9= t!hizy( p- k; J('r 47z6:`sC7  >ZC 4*.(ٷےʲñ&f SYj[ JN$+ 3kКsQ6,İ]Ja  h 7\C717D="1ȂBɎIĩ3 ԸGI.Ķ غ+;;pbA -MS>bH6{KRJP z9u |ݢIJ -hP #AG1.I`8\ȉM;DY&p+Hjd\Z$-iPrql\Q.f@MК*Bi^Ҁ23׋]:G43+)' XÃMK6bhu\G3PGM{W-rWh,RnZjͿdZ$bHL=Hv\,#b BpGT!*4HVpIvq %mq @juC#*I C>FkR2+kX%kDSꂻιX Bҡ@ˈ8IL 3ծxx$ºK,]JO/$+?h0P4 LǼ7laPQ35WcxWYX1,v)b;6bMȢM5cX3ZHD4ҭ}@A9BZx-$!zI?b3Xl<fgkVNhL??ByUDk]9lD@.j*lNK^*,McB0B{0dbeF\&m&[˱N,iNӱs('8Vp%DֽfB[M4)E6xlD_:`6O~ ay)n N Tn== 4oYF? @i Ye36‹%"6ڂR045:, cx"zjV#JZ- 胻ѥbM;fI,2sqR?%x7݂Z 06pY$R@ Y ͈2o(a()cǫNĺL17ŸEXZ9!Ԥ@€y YCGuTrUڌ} k,,}9%c8ѹ ^ Lhd^U^兀fdJ]z _ )yW̻S&<W҄,0MN/ZZ& MsÓ:0`^hEM+Ł8`}W:(. ,#Bd B'H'dIB>#rZHKK6z-7+c-ȾB4*!њtrj,(J4ŚiLQ!EQ5"fc,g1R MV Rv9c40  n 44S(ܒ߹EEnH(T,ۧ iE͖Aɐ d\qaȌpEx7LDҕJ ;ZB/`]ae ]b.4lLjcP]:0l0S$Arfu` 1\Q`imgC Y~D&Wy}h&T\:C1 AyFlLo@ OaHt>_>Ƌdٛsq> `Hc,_[:݃>8>X>'mQ>Iȋ9HaWiqk}dy :M9WOVYڞRX@"i<˾웳75Û0|z|Sp I 3/0u%/ `. ~%7?J.ZB֥ݵ^ n>iVmnnn_:fm Kmet'\  9\nnomgCB|_p;D&rIJׇ~4h/yٓPGC9@9G:X-2Z}zJ67:ƒP Q.ύ/ qc*726! 8?#ɲ>l8n[Q1*!"҂(K_79ENc|*-iGAmWӾ@ӆ APDpLwAGj图͗9\aҹ_A9(AXvj]a&&r' Kf SyemfEt ! |" }gwjZBf&N: 鰡#N,#J<ąEȦ㿏VG$ &>2D  R擠=INNńS9mb!j4Jڲϖ.]ufYnLV4}s7je>\N<:S3{e ykDJ@$R'N=/BaO~2 G  >$2% 1ɔ!M!!CI?̀&&>$rب?Aj!CZ Sd(YZ(a4%%@)0t4 ^BGHO!tDS򉀞{ӆ!@m\z^q?"$ Б6¦ ? H r?tj&̄j*1) Et)FY,Am*mPG5Da7VnStGK4L>& xOt&dxvd&OS0؈RKtXX_}X[5Vi-[ox(1W 6$XKQa;Sl!`00" j   hIANdU:OHe ?gI&l&TC hmЯ(m>*, Y| G +تE{U#*V˃끔P& Vt+ bH>uB|ҕ$_>X|0^RbՁ+`Ea"+QURluxK@HY&¡=IP G;'AHu$ɉ8EjK:X\d&2L%gIU #غ7c #ؤSMR+4EN*Rb6VE@sfgA':ҙ~'ۍRlyK_ Sѹm&)riM^A7qiNy1qݖ23if9m?c\H%w,ޓ 2Q:sG#A;9|8ćDT5n$9ie+*"Iw;r <1@G3Z%#jB:Re3 MW<S@]MC%ZTGJIJ+$`!66<.(WE oRNdm\&iQΎ$@&Nzn{1cn6JfdجrD sAEZ"tevohaRq:`OiڔJ<mT j>ݕA bH{Uu{WkZ]ӁgW60gq=5KPY 3x䲾&HP‘a~ iq|7,ixSg nwR|QRB|[\(i ל" u=NBMo{I+an {i2}`" j<[8= ~~yQ`,Vhz-e EP߂Z,:ePU>IH"PH1C!@MN|BNE-Џ&8 S=LI "HM1 2L""%cDžD6u7:NIDL0`pJGzAJPc}fy.MtRO؋<LLdLEN[KbȍAQ(D{K{L,~bNhBn QwD:v MOF)RxEXH ym*uDyiEV}R+ 0W{i4V.FQ@XA~{{J@[ȃ[B3$f0AbDi10) ' Lm5D?`T&f?m&&(V ^QE(UZTuj"u*HdMViՍX#p&%Rf Rvb@2Te NE`DIV|?L-uyd ht l@thm=Z"M\ThIe S軀 EMt |A"%h\BfJhh(rMRv!w&đBg|o,)eԨVXP’5Grjx$\tUUVrQbTN`SmzZz5>9.SJ}Z:9TȞb҈[Jjb"nB|а Ĕ @#uO|ggN&R%R@Gخj*j&TM ]@HfC M-R!PʊvƊJ@&ucW%,uLGqcL{(Ms`(820PlizXpb$NrhF(lL$$b_-4FϝU*9DgN,`g, LKKaLnnQFLG@yMn ec)Ulj- W?푖0 𱥈1٠& (n%P^S9ȒŎԴ9p..nuzni?n+3jor*+"Ap1NVX#òH,c-W piB p0ՂAƛHWeX g))+N g C(QL MXQM8QmVWlA1)wTCpm4EȃF1LXX 2^N!_丵$aH&ǁ(|&\KdaXæLG;buЍ z ALjߪH t0<(@? xi,LKi%B.Z$~NH>DDBc$fo]ru˱-iYsRE|}%'Uk&mqF]_xЅ5Ao 2'ª YvXc6B4æHb iZKİpdhx$C]G#@#G*9@ ô!RWCbJdܳh SO{L~\#%/a|鄦xo&_MJD@9xJFJ\& flFZG I 4p>Bm3RG CU+ȰŠ: TR>V [TD "B<(#t$Lj$) iezhH*)P ؈ u(t(9#^EhCI!S9w:J D kAA- [l,1& " <+@#M4M$3 !uʹ[` KLZ/k+a1+Om>o.:QNJJb(1i4R q7|9f| _0Z8<,}WJ7@27 Ld:*woj]+ lTH8u" {(3wB ߫ݽ4|G߇JjӺC6G]X_W_eiQ|A2 @@~TdAE*bAM]NA v B/ܵp-lq(Da*+ЊV yu+Y IGVȋ5(ʧ|'8}3tB 5x?fY-=b6v\!dɘ6\&schqE42A@``MtH@r($q66T9a?Õ+de[&ٙgk35?DmQC۸)`:-tQLI TH H0:K 03`9͙gIhЌ?&dNcAZZ$Q"&@xB;a|„ΰZ3M2gT v:!YRD"P)a^v`.'Iw^@*JPV*e*XBwT+|t(I-S <Are/KX2P~RlpZ\L4P'O|nnT^J !eoBҒak8I>kNc4F cNg:f4#u"ƒLTǘ# #n3=9L($kS6́t*3Lb&$ZTy„)=F43"vdeu(F\ zKs+)IdRRFE [gKG)JQw(T"'hr@ \ꉷl)hk*\IERxLWުyb D ~4 +|U\ȂAr%M*/`mx%*O2XndK2"g,)v hGf:o|ǐ6ȡ֖A,˄'ܒp; XZ5,]c&Go+&[˰̛.py(5D 5ὠs $%vrKXbf4@NHD"ݑN w}]Ճ@9QUV*RÈW01KNr@ѱ@fA)hh#:bBIkZ3CI+>6 Bff:8T"5`ԱXi=*۸2hFIfcm21hS0ToE霊Tܩ*t}TF %}OBJ}G/3ŮToBU N$3 Ʈxe57yy7j0@@{y}_8%1Uaw/-nw~ѢB0Bȕ}O`iMs t hGR2?S@[E+bK[/tSI1]}1T`Q̌ arqQW <{pEyC= a*.J3j/Pd`[w+NmS`׵?S|{3ȧ!rX W9XWۣ^WrV!2rX3G{d<<j<^bh~nQ ޟ>: Q:`ER+B 2$ll2 @`:!㟌2I M8 %+Y€/̙47` Z(>H:$|H$@ZBPL m‘ChP&PCmDBC.j6+H5(K+DS2YOB#AS(RP1!U04etqLTc>֤tؾL]Pn_W e2&MDiTFX[ #hyZA)XG*&gj?*a?Lov AH`qET/ O`U߁qR ]b` jȠ]Ox7tA)NɵjEX 6zUe>6$kEa$Z떍aq:^[X%՗'-º~ai~?{RL\9A/&^3JkR/)zC} y F/|@*!gl[Cjn߃ " ],eY@'rVN( %` TE0U _ 39,aYr$1x% S:9& "aLꢰ!|&$M,PS фfbXb4A%" 6@f0iG{YE(e3DLR$)8&zv3)=KswVG:qPp؇1 qC)B1@'kNpJg\J,0 X`-qa@P%xEĕ @Fɇ d3{`%+^a/kGlBI{[Mu6s:yNaSh\ 5HEH"[deR>d7IDՀdCl>aDmD#$@X* #ZS 3@L@j&ֵ T)Vi6ל_~ERYW&M DmbhEROMo${M12!HL4E/ EIL)H( =b,Cyc=C6UJyg\Ho1ɐi)Z쁒c" dZ? ;Y$>-&*z K۸ń-:,^zMxHl4ize7Z@Bdgrft_בk#nL;,ep/9c*-FѫHWE$no|2y 4!Y_Af%hD jRo! F^23iL$&Q" E P@2`EOʂ"41ZzLnK8߈+Y6asW fԿ\@fRD`)J1Jl<ח+ɣu.Q,ZX(r2[,QCXJn5nFL2Ofpf;#}sH턇@mE|؛lmDl̇iI LD#q5tZ0^؅W,/;zĄd$mNa)x #Sb%mNIOR9,ؠ#,V'ˤˆNtI@hG{ԭ\b^}NDaeZs0>HD2M|Oc$ Zѐt#+0s7}A Asԡ3> QԂ'6~N21U4HjMPtU,Nٍ邅-,̺ 0`gȰ^Y# w#V_hA.2;Gb$Eg ORh%9%:dVQ@xq0!V`ESdaz4bTE1(RO5QP=s<.#csdcat #*>>W*IV'd\SPE>Q82 u'LWdNFAVfefX1^~0SXxbVh[1Ct<[ffsCa,Kq1q!hYE&pBC(WKVR<&S1]r2nT_qłB6\2+$<^2{$J3[Y)1q^f91 E3!4P4!R2Lبj0Jv%B{=EfL:vEBnuh6;3q<6C2k:o!B^dPd G8d klW % .Ɂ\ eNJ0B 9.dI././Am;mBrhVfewEtsrw>'tF'4@`8h-FfXv'feeef'evPwm*$I.B#IF#fXEU,rua"1 1W'ƉWF(i/l\i$<šϴ#A"@3ʥ)4X~2b:f"""&^ʄ : e2 &{bJx^:Mh1Tp9RB¢u(مqdFmY@!PmN^셟lPP%9H_$Y*xSc);m#<&xuQpOىf#=7aPS*0dE2LYǘ?@DE'Ph(]IK`TOe,$%Q!1?bL1bduhgU+Z;9d U;CBﶨ0*1Mu~~ƀLx@8W-nW"C5enbKrDkW {⟐rx~u-"${$6bo{X%+Dc ٠Mw(fK'6wtwVm )V/.`%1.S"3Q&fb3:-yRjQ䴌FVStasjS,,?]1k-\AG\AG е NYC9NFڷ}D2HEpYY\'t ?E^}2"Wh]z ]2 )sI=!{'WF>"IbMp.$N:#whMmƈ̋8nxb&4)q0AgEW[ @.Vєl`:n`.XΦSQgGKTl[,!iT>h!Cf& Xj(8#i2$ |nKh3ryUeƔR-ѮVC#]P b)Z! ڒ% dCB$i$xukE0EP4ѯ_KO@ l@) DxpB<;pN$>qD|kn촋K-DxAw JBG4'D A!w<2B*q#H)Q/l- g͇0ډ>0+3 {ȠbH>0(|(M2HL і<"!%;Nl)'z( לW!(Uɨ5 Ԃ 6ƺκ+7pCp1#Lc#nB%6*L,{H2|C NMF3mx+i+(C7ޔ#8*`c8.@N7aA;k,Q04HFh#BN:>5/@L %\K!Oq,hcsL 11,FۭĵBBF6C+¿|#,{ʛDZKet<ɋRH|<*tTW3l$ttDKP&m18M,$9TbZ2 / h-KۓKm;yd #Ɍb+_"Wb>Y 0 l4>(„3&nrf8Fx9rխEhJIH:'yic6 >JS'<-v rkxYKc#$$01+c6tG8L@t۪2խy[#FXrGRaHCOjH[%DJ0QA{LB7iLtJP:Jy=xSعt~튷tC4% KY (^,b;/YUYd''R K)`W-DE) ;cOu,?Y U$E-'"q'~qE/~͸V@+K g0pddlP %wY&4R\'ѨO!'ֆ`X15d JM ڡ54_i%w :(kPjCtь3*ƷAJI$ǪrAY.q=$:tſ nACGemuHbCc&8kmR(#dITJj^[ҩĊT/{9έ+IX3ʔA"uw#H<5LjU|2νe( O IQJl,E;e46EYw?-1⟇vfCѱtP00x*F0dLa3> L=At,NiRB˜s:TbF|ѰL2270r?|ՕR̈$(uQ|+ OypfF4og ʢ͢wΆ=,10hP -yk*,#΅ [%z$iIFRK="䡛+h"X2j.&ڱx ;*WIі: 31FC5!=hy:P{ : RѲ;ٛi3/??+Ê$ma -ؒ ) 2iCd{6B1BD^"Y7Q#B7m%2(qOa z1Ik??_P?(9 ehT?KFŽ, ?$h ,H@M\wd@ޑ2@ b9 x1:22y3찘p'㠲c*>h*:PX1"@>3{^*$c;"1 `Ai/-!,TBHے1ْ_[ã7<94lC4PB$"5 <ARD<,=JqGC#ቛX&%SSd6Z%(zxd@E07 DЦl;t`< `K8l 'w*Mhl(%{yHܘ yF i(?Dc0pZMgtFؖ ̳x|s6 Fn|H´(Ar<@@N?0Ge`nxGx|LJ'lx\+ ^m "O򐜂9j ՆT%*ocO(.-,B+^ҾyqᛝXz6%hz+}MISrʽɵ-1 TJKÊH4 !}ѧѮNYCSƉ[;,5adDNd.a45>LT ᵫ ]@fL"4b!ڼB k&ԼԾ [,OPc.Cܵ15FPRh`\UC\lhU¨s }c^ tTb]  Z))DAڈ3@#ⶹb :}P: .I|q3 &2% ꥏ'W"Y#̣G|$_kq_߈%;_!jmKERXэQX# yLfєL>!ݳR~F: ~ekS3y&]"=铚h) m i!֬eqgldmH∜.NoqtJ:E ܣ6>A& Uiedck\̥UWUH2h @^Hk6.]`n@[%vkx)O15) hu)Tk ~w R\Jϐ#&^e%S36 5A Yz 3b5bX[ӎ̚ѭfmβJVٺʕs ;5u=ě0d铷nY98dVZ1 u {)>a ?_ ? . )*r0[uMԶo o2(8ݍ6F P p߀wD,jU Cw}[ ٵq 6 Èd@ #X!z#X1) Z246į( a">Zr "3e ϑ%l@;'1-5QJeXXĂ-A=bһ`H7M:XvuPotjʇnK.X:÷gQo=; dJj^ꦰN! 7vj$*%k+ uҟo%#cC5Tߌ*4pO۶?b H?x= ?^NXs8\wx{dwtv, aW8ٝ'rLj(b-c wٌ]@1yԐ]@pȢ0 : ("qb0EX,bMu%HaHOKZDR M-(dMzE0hS`Mۈ@pDڦhӂNՃfktlҤNT@FmhQ0*M.`p^|k0ny'Sn ` z5XB _vP#td#D+*^Zy6:j^֭+32]= [fX^=;2 4XlX^!?wL``X<Ȅ2?~HA~pap@֩F7b 6"-& =q@ޅw}"c! ?d?@IAQ%.W?6O`ėiVٷz)?Xހ;x XKsHRt4 /X9X"/͕P;wрqjrꖤKV&wtdty]j ?nY^ 4⹧8yY BB0Cbt$,QGQE9~RM*Mvꥩ*N7!M@A UTMXkzh=}^Y̒bo[vuc>6cAfX"X.Y}/]_ P $Sb9M*v@!Cptc⼎!⠰5id9gV3G:z^*ޣMfQd,,rЌ&4-CX`$44T@cPd qqWڐG6G)?DMә'Ld!1LZ:K L$ttOyBD*֕J%&|e(#I‘lӑ!8EW2#?,O(QQ_h I|Ke⢾E~Q b?%/#0/㚌e -+.=J:|zax$ꁉ?"BAOS2ҵd|Sq93 h 4^~x{f qQ@WW3͊ZTA1DUjf @ ,XD_KQXPFdsB2`|DQ d́cC6L?0AJkL_bAJBhJgU PAYASd:6O$` `6$o{kas{kR6R2kGPDh ! w2mZ :8 )ֳWxyi Z;V\-U-9/R*fiгHfYL@ƅ@0RPРtL0PՁΈVb"NM1vC$4OEX //=֬;T($G:TOTmje =$B15ka{4:cw?OG9NapN1:IG)MS$\͒;$6LKpB vKܼ$q'cDKozIS"k2?P{c*ŪȢdXքM^EU{iU\o7,1F"7 Lo+]"?E9WA~ 5 >HG\A|Yp ȭFȴi Kb =tQ}t)9 zF%AʑPTQXS%xwX0@`A ]pՌ\Y}|ؤ5ȎU۬]Y1DŽ aƉ0ZV␉eYDՉ&]ި?$? @, 1| &="*,*4V<"Cmo SDH0LHD`Dv _P,-d\PW\DUH{h@[[ߵ! ~؁A$ɟB58FEYĠ!Ǡ I=Qux$ɝ葏xGjRLMGNыWPZۡ\  LLQz hP"ȕQP !JR`2VpIU)QOrYȕdZ!.%h!IeA* e7 *lE*8L??܀@Y, ?.8@6h&,f\a&]$_a6"@(ʞYE0f hdh.DXE̢EEQDEUdkf,>{[z{˨fe5jq"d߫*6Ο8bP@5gucje E]1v۰̆yU} Pݣ镂$Ȁ~JY|zȇLXB^ Qy|pap!_%zHXE(Y}J%t&͈  |ONvdXA d1NS"΢eu$xY&+a)*(DD@@ -rĈ*B虄(hB4|,šCi,,,t_ʩ&a#cAEmoeg k  Y0*P,2^SUYTA[Oj=u \q2K_"\^.:%ŮtZdh0 j+>'E ևQс SUMt #1]%R /_eX=MYbY}JYeGYpa (݉^iŶdmXB@@j"XҘ1B!D$/Die7 0l0a4\[)%8m4F#C!9bifڞkVdV,@@~A(vXj zj][GaS׼ɋEn.K>)lInq*ұQrY7sc66P49HĝyQv.ko Mn$۫vaS}E`xP:]2H) km/SYQm$lo0Y`Xɛl܍y'zF- PvFX*IBYAZߜYh@u(NY?|L j?,li*Lx*̉2 E,LB7(NJb.@uъPhgq37GXv `6#ĪF)A: t7q:3A8a0.AA *{wA BC)wxO*d "%b$^",ɞžmA֟޲k(; ;j[wgB^>Ea-̱ Q_qYU8W<?`՝䎋ָ6FB6X~8*oؘO^|٫.[dEQx%T-~h]+du]ؽdmciHlV$z١ ǼпpͲPDVZ8Iծ%VNA0@v Dz:; L$LC4dGiwt o4PsP 5! z(" B E 133C3B@U DȈEXt+^`C| 5`H $$} (@02$$%( lH0L DФK+@+32(<:4S.9% 3L ZID:)HW럼f*I)RR#K.kTAi*tR5RKY 9k"J֭PVٺ$!?<ʋX60²- c#1x! S(ˌG@ɰ:zXY ) 8`e`=x 4 X `:C=T2Ce~8.I@ eSeGO;PEUAD-Lh%΢E6]8pDv9L:lc 2I2 0{KDI P22|9Z|M6C M=%`sM=,hCr?t D(Zi ˮإin4 wۍզD1Ǭj]z p i*G]+X-+K aŲŮeھ0o 1Ui+ȇxA ABJ  x5n"0FqR j@)/:+蝤&2IVzǻPxm/ Le*Vnii6/B>?k{Z ]F}%"VNY @k/lխ4T8IB% Z"A :;:h4oCan1L^TІȀrsGe`!F$Cd7#Ljs䫋]gQ-JRԤ&+@WZyk1@T2q*դ6MP,%,2JQNV%T@%s$](7 |S#Ҫt+WjL2 5_[".[+aO49n{^B*O2e=_2KX(?bbe&B"3  ZE K0ڑ$0'x$%0 R;& #f@J df!; a";>>Pa 7jP,bԃ6F.ȆTv##Ha@'@@=#GJN8@2dž9tC' d&Ea=rc@8d2DG&<0 `r!Ub?2B?1Ʋ_EBˠ *`L0$IR ԭ,LFT̮oGLOr0u$MrGڤT p,QMђf`/OdoQ ,Q=>o=P 4$ DM'P"4UQXq&ubQƩSwȩ~@՚-T TP!O51Zapj. |xva6@tyzfH) l)</n<4`"&__"+4`7"A}wJ9&t6=\vP0vcrbRbg`^,hl vb38!Bā"e_2 +0+Sxĭ. ``G`,.,JK5Bg(/I0L%N[O&)єʶ!⤲2$`OODrNԄNu3QVQ 635BRQGt:5u[3Z,bs83SLu\7\*UuڄsU% 9/nNB'jzuAX2#_f8mv!c`,&Y sOQ |(G$50$=˳̳[~7{)ʆ20# ƚ|!&d7_g}-@`1INc4ңz#O?-"FqJv8gaH#B&8G`j%E^"$$ % BxSE揅lG.\]΍jFo%+6N[T :BrwssJ)Θ 3Zp3UVo:Oc3%ˇ\a-(OqUU{pK]Z "u+`Y}cfn" fxX9y 6 `7p1SydLr Z12c6>ZތDⴣ~!Z;t"w)y9}_^'@#aT|b4ETT'HyHB FOc(*db(b@) cB>ËF&$#P-CtG05?DPd ?Z#{RMR:D+R1? TОXB϶ӨDO-4!+1vo9Өo7U :=mV4:M,p v"v.v~Qގ6IuۆPf#9`GmwX(d`~"3i$H$FⱽC,Pd:g|*=_^#j}_ tu{(:IUՖ[I ?QT(K /vEbxYkyOF?0ğMb^ZgmFm? !l׫QcE%.2q-+%\<'pDUU[Cl'V%?뱱aO=!?  8`|5@EFh ~VR4dz(c7ʸ#E b8Hb(R eC yd9IfeEzzz^Z o&M9'Ϝ IeSgsnb %j 3PERB!d eU~$&)T+ҭlQFlKCeO-P XC T~R!%\:_n*[(a0 `xaUՅILc,ȸ!e:L[#Hihʤ2q6đ6%Mo|#T8QEb,ř4pQgͅ1< ;Lƀ bdXbdM>֚kGRm Є*yhQ0Wp\n$ęsP8ҝC4D#} LLӚdy&il%:5IN{DYVt`%g%yJR2pz#`#V"d@0 &IT`48'? OR`D'VdZcVEtk, VeT)XQHyABe|Exq-5 CFfbk!1X5=l$2l=u*8+}N`<M3c4?dI]wѡ>)GYD+EȖ:?pS[yB"!KZvx)")[4F/mVEVVk1sKP-%GYjPe/t[͎NkpW9itJnK L(}iQҕOQ]A(2qXZnTB\).ɯ|U0L'P\[X~2L"xYs'Wo`EZL%,mGC"/ Txd?ťd@΍1}f4H.bm%k;O%188cYXlgq`bV u,*XʓNU]PWUaXg= _ #ADP"Ahm[xYCyR, ZT%HG)›n\KB.|و':c^hDІNUc XgFΙ)yDyȁ݌x&?tœ(98fug>83Z]#r͡L:ٯ$a> : e'$`9rmn G[B޳Z}6Ӧ$mNK#$նxYR-/Z\j?;YKL 4aGC+"zbCOL'Y)zlKn蓘R]v*QD%Q b<=@Sh\3&T[/NC5[@Mbݒ#,.R E`YJfdP՗f(&@BA*0.EՀMETW@DucaaE#qaN7T3RiTPD\Te+/CV.SEPE!`7@q>_BpFI>Rz5AHheW/g iW /^!wG$VIx~#%$C"8Jb\u$r9*Zsy؄'9L;c"z$[d\]z%ckfY{)C'))^aq&=1 r!1Co=Unn/Ao!QctQ3t~U1-QkC1gpB2RdpvpĂa-aefafPcۑN1#~^rAF2-r"d>d#2:7DkQ&e?3t.2<+a2#f4U1bfV?8V4=RWehW""`1vY}vscŅVhj/R h%kh8*i8RJ9jP"yXiy7EbNCjZK'G' "e$n&o"'L:4\z4[]l((b%q()ԓ BR` ٲn3Sa`2HdT5dGC%&@)F- WRoTus@_Pf $F>SCfB#X8UP4()&؁%U cd%!HT2RAAYUXUVf`t9#if?eXf^Vgq ђ ZV4p#ihw>I?irIPJ%ZL WҢ#%d"͔"'B'}"9V (8*L]y%ɵXrb::ryg$TKMm8N2rAI)ĥI"T1/0GײnRrNFP@ r%,tQD-^)4c@Q=WdqW#E&cF*19)qoiP J2aHD1'ā$791Uq*,S1AVE7a%3*Jq*R p> @(EXAwaUh!dw!/ !Xj!yC08({Z=9[d"k9;$z%lFD:MtR"-\G;'lm4YY;zLAB F[ Lp&aRWR!  #44r!Wic$_V}!@Qqrp`T!a X=aҢ-FUrjUA3٪J_*ѪqPFFڝHTj׬fj.@raM54z%!>F3TVJjűjQQ&:D84n"u#a/Q 0sAW0ۋvsA!2b 0JړdHh(##M{ x\m㿣זD$M7ZhKli& (\ ls;~2;9T];7eR7FAzr!R/3. q6 Z{Ú`-( 7a?xTD U@&a` .e!aqp@Rpĺ9RWKD82>ɸf<@a~׉H2sC#%Y U!1ks$hȥx{tOGcEQ `3823)o,мCAQ~[ 6"h6 p0 BB)!r f)w!HBYk (g10ʀ ApMu CQGu}Al+vJ$Q9 U) UT!-^ƩdQ@&>ܲIԕ:-G8AK;8.1 2_%Ÿ-"'~ *^@-ڑGqDXD4~Z`+'t_d3 ae,"PDͫC#WXAr2Yr t B1 m0H+I\#({yK''&:Ʌ'"F%~xa zGyL{F:MӖy[$AAH&1+!\6 .9|7]1 !~n ĢEOD"-^vڨ{ -;jgsq 0ORC+|7QHLSьQ!-Ng?-0xKөYaR@f5c6)>K`}.A.afSQx<>TE f:buɗ^J#b$cD"CvիzCRnUT]X"\zW;߳V/+@ Lj SK_r %@B9cD*0݋e`&(^datf۴&a@fRPiJn(F6Cy\ 4E[ԓ3fGt~5ٓhk[c@.FA5+^qdžv!RJx] X8lr"oMr!D~UO6Kmc,ʁ)[wЃi\@fdQT-RzRȤ|)) dyJu< 糞Mkz6[u)t)-Vxv/5E&RI0d$ j"Q@ Xu`p +5]MB )qDAJ9IEnD7r9{אG7P]юŌf9sK<&FajbTxA=PT[?LEU*1.Qr];"$<8QҖD#<ވ="-LԜ5IP[NT;U}9:l*ـHG\B3wTlK:ڷuГ;O}oO ykǝ67 E@hj o;yYe/%.cg/; uBE?ޑ-5zW! U6E 2叮d +p0܆n0;ݺJLs- }g; ù};]qN%Ѐ4/J\Ϲ~_@p{hDb!r A2 <[ <ʓ9#ik9,69:5CƐ7[p%h;%'IYrZR04P;@̮FI&I:K'\%gjK+BW)ꡭz&Y Yx.iICvj'n눅x8Me2 ['6D*(Bie+{6I *ڨ"09b0E١88k`!Ic1荘  ې,byPC#پLj=Z@# +&{9A!ˑ;K &J!ǰ@ IҒ L|ؒ 9!DI)ZBFc% JSB4^(B;J\A3WVˊUIöXjilxn :{ 9e Q(ex:A8D`(z _`-䈢EpDn )*s^t7c)RK8(Ei i1 Ԑ@Ԕ9@$ G!)@A;"3= t,ӓSB:EU‚ ʼyӊJ1;ઉ#*-o 퉞'D<\(UKӻT9Qa DC3x5lqxC;<T(?:K+ʀ,zZ6 |QC8۽ĉaYp2!LQBڠ턙H[ }҂L* K42#* 89[{A$$[p+#+ "n@x!2x# q΢N5:=w@qӡl@BnoU7O`2-ՊR8IIdBxBa)Id1+Ob-5Je!V NQ'WP u %C;BhR^>t ,WҲQ89𓪌 zE^+ =IƦ"y8!3RJ 1 aMܷӉ`$9>"! <1F˿_@M[M5*+%lT+|N%B% 9**SNS 90BAq6˜TNA Ձ\,,PC OOLZDHJ`OXh ZIfM5gen"N©֛ ɛ4jyȻ6|n CF5 `Dt KC>-2%aJ^X:Xj<#9@|`X)j'}qҊJj T^{ ˲Ĕ`$` e9F? ӌ뱭: !ԭ_Ϲ"NXT' G-*y9x#*@ZJT %j3N+=V URdU5?[ pծPI# 鱻cݭɋxB )NIqi;Q 5c.[㋿h\bWD\(|תJ1(0рdKMcA%CĊk_Y̹STj^4!ߢa7Z Z_ɿ33qS;,"ts$ݏHy;Tz,݌Z+١Ӭygyg-}|6U!@ќgPiUPaI9c a`HUS JJ;dmVXɒzbBs cnP46[ xqCp9JDPhh{ʩ|:A]CީE_; ݋Ȑ TRdeD*({8IqX徼58S3}S%Y'َ(\3Ll1Dm*{fh$cT*#!(G Ǯ,kfιr:ceCEΔ8ai͙|;{ qPNPUzWk5[pn2;ʦ-譩h`m~&P\(Ik{[9&`oXu&c9]ɟ舢5wCɼc0Q=KCB8KCQ LZ%I0NޔUS$n70[9")(TNũ\F`CiN#þ?+rƮ1D͢_lI`<ڎۿ}#*[IZUCcj)@/3NJ>{!mU!upM D_5#V$O&H+ieO4VbV2~P eI?KJ \%mʔ=V(|%X_sd(}Rv9#fv?Ji)J_&?D?'z׸K)M_qmU&3jL -fL98e# qK#v?۽jTglaNђўg.:@l6g^99qAm `|,QR3߆%tݎsj)PqV FtE^YUš$T_U\f=.n‹buj' 謴w38v'XϢo\:D|`r֋Ϡ@1@֜f\Lz}3u 5CXsx1as_~ˮUw~7χ?}E p}8?Wi j q!80!jȡ*xdyGip# ըA*cp)F1o  h&?C:'Uʸu= #8_j|9 D5AYU!Н IϞQHYHQ#6G3Htҡ&P> QTSI=B`UYaaWLdW  0ȪUZ aϰQ?qW3t1KB}u A~՗ ٸbeF? c*8bu-F]B"BkpWk cbҽt=0{#|nqlOy,A=x`3߁5x`:8`|E?70@hͽxg03?T!0ڍ.%eَAz0c1n )M5逓MNKeEC4d=u98bj(PnFDOBTa'hFJҢ1 MA}JԧG 4RPDONU_QVڀV0ː ٺ J\v)3I{Mb-`ElVOf,bv%H5uh$ (c׾@3  v)E@,Pt@t7ip4툌j)Fc<|ZAÒ6 !@C M$!hhBۏF Cbx5U'jt7ef4Rcf#) ovLL d?M!H$81CJ~Ns"H4)/]Ev"J %KfgE*SIJ4$&HOeSsJ'Q5$~, Y-?9 a |{h\+b]OY*@HFjPnt9kQ6_ g@pY,_At#xO:L@"V1x08:=-*\ba9 |d"*`8AY>qh wj hFkR *Q(UYMCI$yơiLc乘F;Ay5>2R^n|@[-#,-䐈\]$=*7`.!Ż񎗹N@$Q$ITAR6IG CzSp (!UsyYbZ1A8&q$WA$C[5h Qpurnw/VKE.kBk6$n ;tpXc~4< B8@!@əycЃhve9S j gD^<(c!>FQ!@eP;S YCq@U(UAV zgF)2Ye/>Ϻ`E)(#ny$8;dZu*Y٬Oh YWQȜ9OxRXJ*$TN@;8U)vj QKۆ$,ZP=ܪ@l3 x.uԵEa3d3 +h엙' p!1+Ѓ276BǃP5IYRaΓ8\H?.\pxf\JRD,f/L㟤/SЊd $Ѩ;idRP-2LLT3dkS;ȉ" 9I)ڪUZ9l_ s K33b/ݾlH1I.b4H+1=`H-j# N9B3V 3T{݊.V/IZR'koIHJJݝ% )3颸(~T"xjO\15״U^3WƵ laSW!ν~Xq7Zo[к^n{ vŞZ0z9Nh0^]γV08>jVf l݉'̉RD"mhFď2vA@1H>OmVcQ]?MUyFH`Uܔ5ȍGaWY{zGU! ؙ`eIM amaL֟9qݣG8NxI+y(aڹ RLD /u 0-(,QHϢ8Iє^XQXXS &!I`DMHpFtLoY팴FGuƀ]XGX'&)Xow}8L%|,µaAFI ~<RԔTut̕\Aɓ MLMoY}  \=摘 XS5H#E>T]$ ~BY4dc=gHd!gDLD`HJյQJ R@ET4GU`I8]Hӯq "NޭN.J$Wrf`(My! Kh =͍B8P*zFp'r"Ņt$@\FrDpP1iƆ-b1R5b},}UɥNdGUN-ՅF4NM-?H&fU Wɓ׬#|%ې UН!=RI!R>I@(M|@Td,nE`ޤZ,}VJԎDLDpBC8 m)$P(D? hOrWO:C|BaMNKU^Ebneh ^P.:;( I[Uv@uI<'.L'N^Mȹ%N&^_M1q0`xe-TGR 0\J%̬CP,^_h0h} @1FLQM\ё#]m 9Hc腋` c,\< Z!\.ҐY^gE!D}PwBWF֪D+ zfHHޮ5-EQ.]Ch*M"Y#Ap'nl'!ZB'CyzĦĢ6ndxN >QښN:(rI(Fu)hb+ZrRN檞zD.e%Z0BXeV)=2c@ɀ9d e: ;뺚WXTPE ]N,fbjL_bbڌ_~lin&hȌΪ]a>P{m7Q!6[ӆ(SΑ~a굡I#pI`'Ŏ ># Vdf6ڛwDZĭEk=.h. BQ1h49hBC.%RJO!Q6W8+VO^eE.b+WK(P B`PC @[&QUVF% oth^= Aqv:[ ( 5\.M%gd_Ҽ m2 BX ޟ>] cde8R fbt#EɗlV?`IpI|$:")qgl0(Ŏ쨖FZڮ I2Dj@ Bp|mTBQ5h ckʡLtEC.e ...P*͡XD.t|xMXdHB4Qe%PU f%'fGTBa )d'އ'BQ2_lŝcΜ_0#&Q}@#E# m#Ȍp/Opnȱ <--hƍ\  gҭ-QxI"f[fw#h$FFfࢭ*emE0at.4ss=D_+QJ\5n՚eicm1k1RV^r 6. EFc(_eK(x.IxODSf@G}7\ 2}]z[~ZF%EџnGɒo|) iF[ p+ ь҈XμH2WI#o&W5ٟrUuYyegV)/6ds ]i0sRsh8w7 77oV+Ց*yZkj! pKs=)GWG+D-q붡3\[ͯEmh~^~7O.(_4yIԲP疦\,ifП_sTE%Ѓ##Cf[jUY V)/c&3iMч2r۔H-*`\jt:.6V6>R*vN bǙd jkV9o99 b(9Zp+ŎI80Wfv3yn@q! 7 k8BvsIF70xvz煷 ezxnqvgzyɱ!kx1D}܌ӐytI% wyTe"p挿qr߲eФVf9-~Yg~;-㯜J?e:VG!{9bM`3w怨V~cwD7G DwN-/ț s~B(]t,%ʐ5wKJO6K˟>as4|G_x:O2C[+ӟ*eKS޷^.@0 ‚E4/ fGA *,Ë Tx1A(F8S$ř %bqĝ݈4bψ$8xPi "DUVfM@fġ&@`ޘjL  }V(ѹ|*t._DKb5@;XR>.3C<82hC>A$dp)9> 6<(6zʎ(F'YtRI"MOŕ$%1"^0hZM ((I&|ʏJ ̩<F0ҥ!IHоӥzTJMS"TĥҪHѫ HѪG- I1f+1jթ)0YuՕUTpU,~m]YfM:fu[9u}nf NV*%Ze9t,e} &~ &*G dIE~:DOBkZkV-mqk9R^ *dz fwy;yW|#`T)0<| Xʗ,LaO" Y BP @<@+HqNFH-Bl#LE*ЌXV")f: `҆d !)&AM8,2VM #ma MR2հ&| Z)8K B7NDDJ(Ž-TJ Q 'd+U ".E$rdTLx*Y]HQa\TFtWcXYYV:撽"i"S䢸zU \VohBqw=|A_z >YG%.+2BO031aFW5R@͓UV8kQYM99"3ty0aPz86 mJ&Enۘ*ʙ ҧ 1#e\ޔB7@ tQx% 7lV-o T@*SUvuEora4דn1{yU,ڨ`X Ym83D&0b$"ĭLsɼ,z ,B8Y^Klʰ> xd>&3m^&ŽJ%gI.QR:G"zV%jrHh# K%iuF0HݓMbE $VLTe1KbQb P1JK%-!FWbhb؅(Aṁ"`80ab5K5c!5k@6TEU}ȣ=/_:V25[IG{*ϻS2}왏|6ZG@OFX X ' dqԎHfJD:-V(V\m׺H(/lHE.9(,X$5\3愑:CRlZ0 88F+[f\H/cj@6;5-;mCzd} ~*bG>A n"G.,,e2EJTœr$˾Oo /ge(ⷨ~fDF/BB2̶b-X&%DΤNlVHP#|M7У^MKpG@ cxdw "bj jUюͨ8c4q4%2`C mJ["$iC\J̅] :l7<_8&Ƅke&,Fg]+<x@76et 9J1`_O܊){]ux3ܒ[c-;z]]t CvzSG AVe?z|j֑WDF,p""'o%'4~SQ$X8WЃ'Ui@ h5լl4NbD|GJD%{W҃DHĕYWHZkCMM\I msB,lÕc1"yZjtva+{GsuKW4 o74p7O6B;㓸Uo9f;s"d%Z9#;?@&:ڐ%zg&U!<^)/RW<]nnȼ♤@xk(c%$lNK|QDhfx.Zh6+ygQ3=И]{HlY[-x"sW"蕢0L։XLMw5J>SS9cWޞ>4QYV')݂7xMc= 0?$ ` !ѡC9&2$|ɒ,IX@%ܘ H&HP̄< zT( 2 R=@_U[?*;՘@0 ղTar]T\_VQR?Zmܗ$M)J!y%?;os@=4&{T=4A4Wb a={n 4qЌ|y WA@vC{0ƨ1c2w!zƒ@'?~铧@z]*` N@FZ? ]hN)!Af*J(i8C2BFY@MDQG>x4Oe@ Rc2S9'e(d;toAq&SxQV\S%Y+^\0a`yX1gYq%_!VhQMIqRiX&bgUjYLjbVKjM4Er7qJ : AgԱ^ž{' @>0}8avi"x:e"V(+gc0."-4B%0 QFD4Pe! \YXNP5kj@OjY k ֓f-`d_1%UUz핳Kmj4WM X/핦azIZQvQEfq& YgvlJ۽e-Jn*rqL5uwq@TzzW{݇q{_Q՗8hX`!!B#s{*Ԑ7Xpp 0;MP%j`6i[iɭ9JdIK=~W\:)>jiɌǦc.4ꁉl[lQomuIp25߆$9ujU(g\NR 't̪n8ǹ ꙜpNtJ鞘_AQ iU Di+!+RэxO"#H޸#1#҃CD0iL6MU/U N\A v*@q™j*_)\Ԃ~DNH[#4*qC b>*Ȑ4Щ P_BJj[ɨ4T0)F*7n)lɄ[a!&8vK<η#,un=~%%1sѺ=SD*O2P ^bz7A," E ֈ#!hC&GۈoP{$Rm2= L%Ilo07 rȫu,(OS5t]WXG#IݰNtT+hu+OUgRK4;zSWPp1ʔ Ί ) v]:&8N42R5XZʇI>Ym jbCeBMi9hNSåpA/v2 ,wԽNe3@>|3MQ \ m|WQBchېUG/Z# rfғBe:-A*]KJ05mRm(6]vzAr|$;Ne&5]CDXI#t 4oo@0VD_: 60%2^u 6[#vozm޴M$ j|B W,N: ֻ5CCdvS=މ;=~巀ӟ>˸AZ|_$*H#ZakƢ0geMa%Vkɒ|XHh^懁8u!xSA'luh][6xǁȱxxc?y[8JNzG,ZXePnౄOPEEWEc4_[ g"aTf/q\Q0"9t}htq6f~֌Ev83udH 6?]U2$ChT@tr,hGzu%T%,։8v +f*O1BGtHM8a!QdAQ,91.vfU.5RAs Dchm!ng4R=qk*'wRs?m96ǁcS#V&.f?:GO6ey[8’Yh[[c:]6ŧpGfC0 71jv,"g/"thF%QQ @grH!z6sV)؈V:$!C7iFx~8ivf7w^D@^F LJsss$x>2T8C%$A7K`)WɄXޕG%g;Wj*z'aA.TZCCSJdhy^x_. i{:zHV/lJ"2r!g.5sw\x!0"gz؇ْS2>rrvA9DbX(A5VʔyTWsYgcH9d J="I ʠ^: km fh'FʟJ2T^.JalxaLds8wOҭ>A4SsM7+8PR(hH[ ɔ㊮?cIo鏴^ڀ{ zPWtijj$]pw/[r;R}ad"#.%"9*= 3"+%*1Fwk)+[:шp 5w^HU}^Ut7&jiBki_ş4Tq~ }Oӫb%haYZh2䄧3L%;Qi>!RsBv">.$(*qwX75hmx)l@%[{a29[Ctjhy8ETTTGb bh0+f\& vx} 0#9}(qsRJ2,tT. ~Wb9뽍&)IJf¢ QCuMM+x櫘MT8aHB! 1+:qXxd9auS^ [E+#)ȹRbl [9Ef]$E5f\"6'Dytn $5|||Z>كhz L~'{p{^W'eRc$K̽{)ɔ,T«hcv+]buD-!%'Hˉ|i!q4^cv`%|,Hlˍ$%mj72D?%~Ej CD'hK:g6몎 44P81lCaJ͊ οD/ {g0.d8邑/f Ƣ62\0|((F^眪/kMs)NuR$fK&h4HꮕgK:\U%%@Ҝ%tCGOW)mhǨr$Dlrzۘ)lwNm$Ts16u=$1%{8-k:JHZSskir;|&}n~JG ;"2+\kȺ7/sE!m}"$%ɼa["%[;|5Rv'X.ys>1/jTuf (MVض-$`M\s'T+\@Aew >׍Tz|}%L0؝L*X8B2E CmR`-̔|:~!"N8xinb; ^,hs#;|K^V f\[c" pȇ+ٖ p}<̋ˇ9P(=(خ 1 Jݜ=>}iGDؾM!~^0  >T X6 4K#?0WnP? CՕMUOdPe EB.Sd;Яw f(E-Is\#d<O? a{)/Oo/Oo/Oo/OoǏɯ/Oo׏ٯ/Oo/opRp]-W`AԷÂB,8o> 'f,h!6rT8O!HᒃHΌgr!ʘ %:rB} |8QI.eSQB)URW W:a؂UOZ4؟+Օ-;Vh] ׆WwߕK5lwZmu`/=PnW oe8ÝZmܹu潰UԆH DȸQ?ya[Ai09;;|>P,HXk4zŃNn/sʎ "g(Hj,닰B 3pC2T#$\‡*DD)K" ©(sBDKDVP!Q@ǐz*<6N$Ƀ }C4TsM63'rzy+!D2{кL@qxr/0Ҋ}ˬr!A ڱ# AH2U9dFj+$J6cQ\.%w=(M!.!uaP" c^- 2 pT5c "W] NrRE!*Pjcyfb +8ªeb"riw8ŎSfh9J/z1g|*S+I v, *I(OΠ535r3p)ّ zf 7\}V-Xϙ)h`OvLR wi‹ErD<=-?_$mU1a˥N4s26Feʯَ |LU]sIPrr~z +@&)4uJ0g:*]C!S])ڈfZOJSV>,%/vAͪ} V7ШJS@ס":B'2}pbT 0UO3C'7YCr73r<".eXG&gRƒ<9X0C\s܍$Cz|"ȣQi G&1aX8)9D)njr,aA )nH<2+d'=I-;=T)1fO)Te+] B,myK\R!yK`S !,3 T9B& 2gIQ(&XAJ4H5A! xRU5&.=D18U=F<*7fEHnMN9/:J:J7 ,0 WVǭ>1:G!aFO5ڷra¹q\CKQ5:iKTwU\qOUTUtLQkNW1P=J/hY؆V X̴֫ƝtYbXgGL)Z\Ȅdd?hD3>N8Dهd]U{c{ȖweXC ϔlr`鼢vQPϨ> zQLt]=Beb8c]عj`CHftJIg_V?OvbzRw^RMW[m]vIуe^aڕfwRW宇͐ba\[ǥi@wX08C%"_BnX꺇TOl`ؙs︎jWRH}^[ԯZUkIًmҦ{FŬpEڥ~a2BεveU0'nFE`TzVpVXUy?,hV;Y*J,'Ѡ`\wí͈bm8(iO[O%4$)H7EWMkJuCd@AɈ~ZaE`:9Ǚڍ]k;(4d,I3uM\Mp`3&|fqR[pLM_VEy~LEɃll7~bMa{ؖG7O4൛ɩ|iaTTTJJJҶfffޢsssȀ6@/XXw\cb?A 袠*\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳh.׵ڷpʝKݻiӧO [TgO`'p+Λ7篑۬]0၇Q~`:~{nz-v]r|oU_ Gw=T9eۗs**<>AW՛R> <֚@]g~jOĭ#?0:@?<w[fcq=o6f\J<;:hrn?tbZU 颔""o=YnghÓ;R (++ɦ$i`=#)u"n#-'H@ YNeaGXl"[=pr\dhDYY$h:c*l!OVJhť$Z̲V_dO]Jl%͕SOf`p;O;Y!I X0@# gO2'6<*7Oyh;hm?,FzEr;[mx\w;YT>n%~8&,P)%M@`۵+(rfEa\cZ.'O_cnY皿>i+OF0Z '(g Խ[ )-z};'N:gN[?~=ɻXV?+_O@< —2PyX ]6 zO~u! W{ gH8̡w@ H"HL&:PH*ZX̢.zWdH2hL6pH:x̣> IBsl"H0A#IYŒ?$"OIvh$X`A)JV D 1ZdOQ.w^@b!P)fDnj.9M.#Jn~%1IN:}uWt@)NscgJ4ik \%)yO)t ġ(bLcZҼRl9I'g=OMZ'dĥgLc*N9i;g*Sܴ',PYjt@*ReyM\I5:aE)V#ZUEXՔ*0XjRPvӑ@'>IR)(@ըk|JD!^V 7kXpҕa])h@jAd]DXfwYGӷ8ufJőiAXъYpq8x¦Ix*㇋ʄ.Wn5Y_4;}=1A;h\%a(ndx?w)InRyB!T9xJw9i~}zTTx؎ d^Vqx1Tj;B jُ_kԃ<kI7u♇l4 ;߉hz'GxENP1K_0Z\g5y;P;ڌf8UMyHJzTM:VtRZߙf\YBf :9[0U D}qdx=ٟ+oWorJpǦptgT0pj{:w(ٙNZ ͉.9M1ge_ZMa:ɓ:i\蛻):a:Wǫ-WMҙNʀHG!zpI6iwl)0UTXZצvG99a&}鄨蠫ȑfyhq)iE8jr sHx` ǒ~6ɢ)a!& =ɛɈyJ٣GYQC ~g_TrX0mkQ˕{*V{QhaJY &eI:]vrƧIvvڟ)G9t˯lZ}ֵR)^:YjE [Jjr8ȢQ@1m{Jg(K=QBZٲYۖZ%7zx^ WJP٥Te)e:Z먷`QjwddYvvg!mknDj;X ^gy`ʁj[Sb*≮EL˱~ d Wˢ[G`8AYbZY)m7 1gI9˚(!ziҊaͻfhVX˵˵ջ:wpmz sJm[lɾzjƉQ[qUp抷X잻ʎ.ըߺ*Wڊ׸[;g&32J:"<—>Y® ƹ/y'ZL1|Q&* (; -\̬S[Y ϓ&;l=}3 ;)>a*7ڛ\b%̫>食 UÞjr '*/ ӛZj ț <1nB-v ev_Ztzajo Glʇpha-֞XW+ǛIגwڹ׊ڏMű ~<)#’ hD?9 <1 XM6i+Rӹ\3M-aټi= UK|hL/ wMaŅ{bA UH.KT<ץ)vIM-NTmfig|˒[߄M^І` yx>mЎ^Ҏ  >: yZKXg 4-:[Ҩ Y3#G<̹M=lL͜N]{0XH= e2[dLGa䧡MNqWQ%>S謠G]8|tσL oNhK]ߚ1` }V xІ:G)cQ!^Qu':mCøm$ʴͼbT/^`ԷA%x ~BξY >W JLQERVR弃S~Vg=6Mr] y݊jIn 1~hk6i߱,^‹X~ =,߮Cl⤾ӊx*V,^:9NͽN-ӽGoIIj HQF> ':NH-X.FaZ@LO ;m @ OkKQNra9>Db)^"D=6?;"J;]q)1yĦ~`:ϡ`:M>埇,TJUVS=xCJ˒G٩iݒE[\>ؽ{|wC9*;>~9\^eΝ=3%f]f ;tde?H/^?Am^iUn:ta9J UCRw>KҲz21ẹXӰ@ 498P+ 8bZC# 3Ds/?ҽ&m"%|rJ:΃0TU={h=3\m?]d?4\SHIBk:@eJ|ɃzU:Zӣx?]s{Eag~5fYVY2p" 0lOJ%oP$/tElMFzwzFn =ߡzlASu2XI`[4mL`Ĵza^(èid{lͼLe!a֑1RfLHO_kDJ"&ÁT*Q)2R™Zժ1A,۩ t V 92\!dw ɮ bޖ7'NsY M2H8?e#܆,9=DKQ^xkAOuOX%⏎62HxA^/-jRQ=D8cZpSd f2E*k$%9SIBRfvJߝ@3d4Ag\C̨ (Z*jq+z] v ƘU6z={87wL }0B ֜&?3i˰Ʌ Aɷ"l3/g5ʮY5A+Ά6vbYvڸ=Z#D5K`6Q{oKkʗNFN6eߛ)I~2NܔnPeGxC\T"RH5ȱKv]Ӛ.60:ɵڶnPpeyh Ekf@l 9xAA;9Kfh!B:ȜծgݹGEzΟۜF6l4WmHmYem! c?qU<Ʋr׼ 1b kG>tp:C}n#&=c~dߜԥ,UD"tD8C'H9Dj>\yE|˜w}Xw7W_4ztE;%; r@3v۞Z8=;ss86Q8#;7z٩J7K.T*L Ausr[%HYӥ[E̽ j:&L4f4* *tB˹S9Co2(Bp:c:3Ʋs b?0T D C=֊__"23@`+=(:<Ҳ \;:  ,a)Sd $A3[$A˰+ؼHM4C?)ڞ;3 @Y\+ȷJ<A|[)9EIFxʨ4 :p |E;{AL@ 4=À%/T@ =sBBS>vKS#ĝ:}GzCtː4zG#-B$>Ln?=DpLI9n G7Rỗ@{sIDзθC JBpx攼IrJxFԟ` ;CƬD/J r4#tC@$$@p\4ԄKs='K̽K/t0D(LXkp:9ϡèΰ,7#.-"-ǮMڃD@QMYIqIA/}C5Ԑ UubcHXedD'u2Cu a kI!J${R|(YE$4VsILE~t.R(ׁ7.5LN=3yM|@F ޜ}]@CDBe#b}4|BGc8HX04Q~:uYŒQԒ(LtVm0>BU{"XfkPlCMpTϑJID7ɑ ZXPBU=̏P%UPYU2)]J4h2:AL{HWe]C䪞Fam\툂uhF7@k:T4EmSRmTZ},ESxs NU[]8J}S`Sm FUhR=ƠqI-@bͪ` ߡXm`/X`͵`ͽG6GEL JH: z$ҊT=(-&Դ|ƻJ˘|ɗ\""$ސZ%[ޛ|bGXޜtV<>^b.vWq%[xN 33Vc05_u.43;<5c5[7\޻_!V9=ƭ EV$(t%.WOLdx d(5 fR>&eY>ܓчXPER=\9C?@WUhe `єMV d"LHKjOt~d%^Hnֿ x֨E{և81^16F5pPc{F߲ S|+7D`Scn)EhyehWCIWMeV$V^Lf?#Ko< pdMOeZe FeR~BbܞQxe~_}>V,\T^^bXþQU\%3=䠕.Kfkn"fI闼kmdb;4=^(S~S|/<΁84~4JﵩClF~6D8hވ^- *>D@V~mCn*;⎞*3i!&KlF~i Oi `ifiv`Nnn%jT .HY>]njQ5M?5-Y-f( \iJnPɅю@OdGiFi&B9^#]V^~ .@lVڮm$· ߎx6f`NtR>h4=>pq,-zƟ4~ۦl#%^LHL('t'i&pNN)b/r^cX>sn7 95] ^5lKϽꠦacVeT>٠~.k0W=0g22LlOfVOk/@$&{kvJun5l$Npl|gHVc-8׵DvN-Xf/m5USlv-.h^F_^^d^pwI'h(k"< L>u d0=2svKwctwWp`n Q7G>5t[>]$݅nϹxu6;7p EW^yrILrpnV$bnV=zpSu;alozuʦg燈Ⱦ_gB vK-hN_7Nƃ9ҶvqrRï\hepiVwuڣ,`hdOyt}N .}O&xVNx`FaƄxFoȆRC*0tV~ePW.3/y|d MvOk#bhbV plSz ֮g.-$ BB !DjGAp-i‘-!GDw'+wK2ѕD$IЛ6,aο: rɰ P!-1q$E+"L%#D 9ܰΣ:n>EѢ K "< ;?R>ik1ю¶(Q))HR%a?Zf@&H84.%DZZEF&ex>MiO(˨a"cGѽ|9! 52@#˭nQD 1:UfE)L糞U"K#Pdl uȆPWh)1),(U 8y,`(b}٫*UZgpjzHiα{њ(}"nI~PW7 Lkܙ. fh#N@_?4R:TMmÔF9j<ֶ=ZՁ&T^~++=&@FqLx(gZL3S"]H> A[iB.~N"I%"N$X*^0b-z11i+]'ܦZˢ9M{[%SuD;܆ͶmSzsyH0_Ɛ5}Mf!Rgk*w TZ: KF2Md*t32/u&V9Is7b<dq@siN#sUÄXd#HAX7a= mlcbU Hߊn[!})8 >hDr%UlOcu4ʑm S:9W}`:+>0m(e֫Z}b\*/;퐓\/W"7MM/>Rٻ~o},w ]2K̊)dxTfke_o=fys q5Rvm=UE&@~^9mb_#D 9t8 AA'e ܇hHܵyulM\uP| /ӋʅC]P _`- ~ EJ5YDYGEBU=FYY \r $cH^-ĆP!au!Q!RppJ= Ema5JiaZT޵y^WW?_ʡܩ\Mկ ïH U"NYCD"#I A"\d\ZA )\?tu*JAء".V!'B.j*wuA9#A^A@'u!U}T Ye-`8.ޗ Ha8 ! Dcģm ,B>nccA[``4>7rc]ؘ홟ǙHڽ6|q"AB,y"A0S9AZAp56/0@JIA@%'"O_dٟmqBA2H+X2ġ Y$[V *|ǁ]U/cAjA$q^N4^#uM2 CA@A#B٘%Rfa189?[3Lp#cтa8"hmޖn^C8#5[C Jce}ܴ?%IaH!Ib&'JV_Ld!?餀d& ч-ΫQ5}K$dHӬ$qaxJW?dłJ&C`+["DZ^~\\a/"tb_DW b6dX#`bRdC"ޗAf:f8Je@fWW)eFLi~kc?&>g&lc0$Ñ`pR#pFF f4ފn gdB"c%,`v~L w" Zdfxj")^=FRQPQA,eЩ_ I?X(&$ jj+z6$R\¥)\1ssEQF5]‰nR"C=6 Jfn2e#N-0c IiN%:R)ekmkQ"d׍N#n'iâ\e)Hjhu^Q(+r (x穾ʎg'?B|rK-]]UD Q9K;_&ue+b2 *%6 ߬"Ĉa/BzmA.D2F+>^=f|O(dm軾+C)@iL#l+rAkA # ~g"bqai>r#."hv9-Ap3)6lan>k!ھND/*\lADBA؂-dlAtնX*w&*MNASz߳^*щKM_ BAtϕMd5*-$tAW2h,%*jNDdb--dc&'d(hdp&h##|0A@0>"Di ?ļ0l ›f> )j("(n7Rc슢&MeTC/$*0e.dj-"D$CӲl$"0SR*&ȇȬ|&DzκS*"M\7쯍A})Au jvNvtJh+m(A"׮8糺n^V p4VC5dF_cR kptI3 ĺI# Cī n" 64ejpfnd^cb?3rc/,;0A̲.-mN) ntv],ltA$L4%K;ձ"rR 奊K Ҧz/7}*"a"BdY ѪܟƂHdAh24~(|-rU𢈭^+s(0q2"4`m[=˵ ۭtn)Y^373 0s8 k?4C@8Ri*.0.׽u@v3?h>o+\DX>.4eg5AB6As>?2\B4ocudX4pgtٕEqYC#*oH+oP3*] iKnȆ ݇q &LH'5S'B(*`4(TtفBDK+d@tWr'2m4A 6\vdvs?=9G5B)cx CF0c' c'.ALCcx+77x #4ӂh&#^p3G12@;8;dh)X>Wc2p56k'2^mCkkv+?onFbFB2T5B(r9T%˷RHwѺS:h/̂ wQe_YĥJXN" r'/I ?.F%[m6,ߺnWk ro92yC9AZ:.@6.[[h={d{|-|?0B#txA.-0Ods?xf77&x6t+܂{3|!%)?G|--~[[38c+Cf;{,v3{B?hn{uo?yy1qw2rCx gh/v#5A߬C0Dgҝ_ I"*o35qB}#E9(xi~~c~388e3-;YiB ?7É_|{?&g0?ƳJf|<.,;'0϶/˳*9&?@@m!<(@ >L b,c,Q#(ͮSw+:͚W3y q?K5<+hnc99R+eBƶ Oː5\Fs4{,3LE k~/"HUhil執oq럈9$k+@RJL*h-]韗p'3! i','',i *㤩@R(ʬ+~h- G*htRR 0őMZ#U [/!0QW0IL [[-MUv{0b9zKp9MY/ޛ›i "ۻЛ/@㶠sw|98-nco^ٌ3#]\E*4[c- a\R}FhlLẖqKz衭L1"R,$!#fh@"d JN *vn S:YO (g*fdJf"LHj!Gd5H45H4/pDT!;u QK;3B,F,a\!jn+QXcX`nulM9m][muhpm ]R{8K}9~CzfO} Zm\Y Qb!$~VÃBCҟFѮVMIdqJYBɞ!@%xSRrR3 Bm*/t)NSLT KU%UJ@`@!3&% "<&DIE/B.tD ઈEQuF MANٜaPwQrp<9йq7sdoG\֑.:hDN]QW#I;$ü^̑wdIK: Mp gX+1ʠ1B)Mv!~Aee4"dc$bnRƗ٢Hؖae#ZZVn AK?kI^iLn2SOA d2S9 QB,nd$16$}CfPJY~ø&3"B R.LԄE{`O՛7oXEm9ݧrQg˽э^5G.?rOz'uڒ] ;-Dg\ժ?B6wy$VsyAt}bm*P`p0'C !Qܞ3lꭙbif{Py>HwCrr2Gmw#If.$[3RxnkD*"J)_T㋡) cSrdnkĮip(ExRp=/'YwE,rm:R8:]W4ABc-8AxaqzJ$zYXN$d3Je q7ōN bib^ n-d4L7G@QKBm@Qk~dgTʉԺɝ< 6M<p6)j`nTb-to!>Ŏ24!U_.;ER\2{I7T' I~q BC/ x]dYXJ{vIqza>Vy<ݼTwl^/|)$ .J/NtNJZO:$06|QRޓd5CԖ6u}ٰ)c-&l^ϼrie1G>7FYI3XL%j9IT %Qt[2:Ea›X @!PJZ3hN:9Uh}o[H6J_+)T4/AB3`dßd-zMcXq&7J/8:=拂p _2P((OhׄS~"F>KHĻϞd+6M…xfK),cвdƶ&.&,rd(>MƦd.JF$0m̢KH|Ot:LʰʪL伬 P&=.'Œj/'fĞyr^.-/1^l /'J]  o  mꍪPq~܈X[Da ސ4!qW 0kb-Gpue³ ꎀƀ.xOIg\HKq.LΜ'zB%P*)'IP+*QF-n*δ1'n^ fSP KjаPp Lİrư_ H.(6N'xORfO.j"1mo xߚLqL-N.2`',)8y@@"+!+0cl+o2ԍ@x`dI2=2(f4m .趫,ц 6Bps#Ah+>TqI8bɞ@,j rk.nd"md opm>,Ar4 K%|8?@/g(5@ b /g|E)wE c/5T/S2+m0+#"22/2R-ktB]z XXr/*%*ґ aJ JKӄ-]42/èa L#ܓJO5"1Q+nQ210;=ugK1N ˩ 18bSgn:!#zV"%pWf-(׎m 11(G?8o?u  TA}L+G&TFIAY]no*oOuBr@3[%++_EE! GbGwG>tX`_`JAHHTHa!VHsbJ4HbTKc;K+Z U I c RR.#Ws GK<4$Ipi1)bQDLhL K7H*@JrSh;b! *f;nHB" NNo2*TUQ(b6? HV+g?a?{?6@'I@Y%'P(gY"ZM,L[?4D-\-[\-wA]]>]-=^R^%_`U`vUw`a`aaWxaayKtKscK4dWot&e"Z "w.g?Kgm"˱8lS.PhiȮ]uNΞ"7 (+N; SNwiv5OSߦ IS$C\%VrڰppWttBmY'pCW|sJ BD8OL*,!t-ݲb^AH&x ')xaB ${tJwKEi/AL(5'$tYq ?VR8Gr5g#HJ0Ibc&"rcQД'9Dx*rsj>5Ib S'S}E02#PMa ߦ m67P8pSWn԰pB'(X.^L9O}G[8/729Q\EXҋ H"zǸzA/u,M2וd?&wDMdY ِrS87Nڙv 9W ﮴<-~uF7?i+7QN( 53' {j-R"KO'8JFMA5lD#+87 yA2U|E3>>Foyn:'hWۅ| B㈉ tu-UE-2Kߪ^e7:ո8(\Wd`'-'ZEer-cBʤ8^XyK::fȃOh=%TZ !k9~c(h׮|Fi 8äiӄf)KwrӁ5BW:6ٗ#eZs9X$;'/|9Ǚo X>Ι0Z1[dE Y{7,2>.AK^RxՏIC`'ÇnB6MFX)XyŖk:Z7Nd}v̗S|%|$Ngl~݆cy!ٻGd3ZpYsx7|O'B =\4uc):'\ŷz=]'Bŋ]2/5ޤdW=2q'nɓMNw7@<,L7ӄN DjQ7s{+⎁w+ze\|)>#/xI \ 0>o'RzyLo|5=l\jfƛJR9#bh!Uǜ#UҜ:ՠo|3wZH@},vaV9?/]oV܃y#yԙ 9ŷI1"H2-Jg-y]GM'=)yb_yJw bڿGGK5dxiĉƁ:Gl`ȏ!'ɁVǘ*QӖҗL;u\ӗPfGZ1m0S2Me(L`?-(O]m{~Ce.-?-8zR/֋#[h5ҫA@%W =!V‡R\Z>`G%RL v.$*YvTHj |XV`+.l`G)i!20!{'`g֡:Vb~%NXi) Mh) (@aOEER0U&JXw*vxE6-L`jntz`ysK|UD6%`df] ]y-ON&,gv4.s},>@k ItÚGjaŞ ^`t?}^N?CKC|GJ4u!b&xP#wL РVa)lȐY]izVjN[Nl8}lgφC{[Fל<(4$(=^ 1tGp-}DKY?4CrKMƍ˭vӛ&pdFqUQ[a#7Ѐ1 )!QnWSvs0gsQdJ+K2.>\[reMCwfYr60uN?0Yu$Tv#B`L `6`ЀMe.U " Xu>1u!Y0!%"l(lG @` t13"ΰ1!v'A`e \y2{Vw=&h|{lhʢ{3F٢E*->2&SRRR 5njeAE@*"16FH)oIFpl Xp a8ba&hS6t7 耖Łh8)+QW**B"EI&}%\(c**u*[E\De"gOIgge?MGM?eveZ&y?M8SvW8u.R@M M)YZ.&t?(MvO5$TMAPQ40/(@Eg/t(}ؑ#C pl {qzlt}s{a za3b%~BQK,A `Kfgv3 撅.P8)Ѡ) A J +)!Rv|S d]ؒ-Y.)<$*CX=lI={CKGAlZJe@eдi]qQA8.i=)"Qڭ>2v7xvN|ʣ ΛY P2JňW&pN͈7!٪vԀ sǓcЍ bcz(t\o;v8ULCU+w3)P CYD 6/ELT@ZYe@G1Mr_Wv1DI _J Mvh .Г  ~. 02Fi|pwikvk~쐰Ð|Py<>'vwF{MHK\fyk_h >G:@,I .hU^Żio|ǝȠ UwGl80&/f:N(8vp#@Pc@*#E|q*X6`Ev䞓J{`!`ɓU@~J(+g7beMI9feU* KYUY\[?Ud J'Ο.\jU2UP9Vyqș3 (dW\"/0ҤE# ӱ[ uǹ)&W[}d* OPA>ѣC /v͙ |ڴJ)T)8Χo^Q;qԩSp$H$4APAMliAD 4-G\ $leD P Dd:B,M@Jćn4DE%&$e (bR (Ԡ2J5'Kaa&K+ 3+83/ŹCq1P1<!|đz D _ b&%HKm>)RIuiidHD\u(W`ȕ'n))aqfr*ǫb /ZvܓR?je z6n~'s-0"kE2ht 1Yf .eȪ Zn!/WEDA&1 tHNh.;LDLfz< aĽZ j=JiFњ?v`&A2   @%DgmLpB E)wl]1E訿e- wm@pC"$|m"! [br*5b*OrTK9OEt3;K9sG8|K09}LѬr&a"Cz=5HO??c4!E|ۮd>[![v뱫)@ DkZ?Ʈ?h#vtA>U3,?W6.R:ձҫfP= sr%E0K;ф9< hBZQkD#FBkqFaD}Yxa5a, "2Jc0rLU/Zc{3a *ZC2i*4Bu *:OxHC7 %+H!3eoavvR Kk hġ\JnIR,d.TtsD*R}2%h:F/JTMbn-LL߀p>C@R{MuCoa.-H0ܩ?BAcTq#9D q`u40B<l`BF0Bzx٬5"H2/}1V?6IEet$e+cyZe0c/{V8ɇ Hh1$yB6$`fWVB `ySi1( B(KfohȆ@OQ\6l%HoلQm]092 F(p1) j&3i!Q8DNu(Dt2*#(X?c6 dۂģ]nvyBҏ5c?nSZc6A|c*>хOT (D xf?JKёr3$olY xʄyZn6TX.gggr#%=RGHr6|PDSA<lh4f d*NST2hM-(nZ?xO)F Gnpclyᄳ%AȤ ziGCnsZ?ѫ]PVL 5*CQ×e?\ԖrљbIEl xQ[T!;u#jtO*U=up eh8*6(7B)u -O+!,?#$ɞ{lA\ ,N_gԦcDR'зh*aztҴ.):.Ca]S$6:/C\UjD=@[6)r?tC}9E3ERj}Z.#97>Sw[| IAٿc P.̡ ]eHЪ<`-1s2^zЁ 4%H(r{?x{T8!$9k 8X8@ (c`)ڷFXbʊ8X2HPnSzA7 .gc$+J9`S5_*k5_\Q&SMSف"kjA9q;Q <&ģ@>jhN!j)ҧOQσC&Q81!'ջsEa0p^8,;4sm(.XHC=[\ƺ0l*e"Å3'Dvj㳆r7J{dDlDE$ C+S2j=Sy xBJb1n@ H'(vt;!Ah7@k 갡MԥcBB^Z0[&"*+Lʩ4rʉKi8$x'('ASʫ`~kX%-KdK_I˚"7CDt&śtl*M[c a+\&( p! &#Ss*&09[ON./+i5`)ա*DEo4-;U0Xg2(`D(+Scp.`'AQ22ɲyjI-$1wLlg2xgP==GgTj 5:}l+dä9KMXAZ96UUeK耤@b/z@lHR&(%$Z0Z(,b ɊHɆhh 7rC08)83:uӬTK9Ie{h)k iX9D] qʚM SԽ\^ &bBLGӟl0 \ȻQê 9ų&Kܐɚ5; 5a2"Z2V/UDt)#5T!& | Pӡ#8$2 0gD5 H!$Ta<"@M.6 /EA`rCʤ",!d*80Z#x2e[40e)Y ^j8)KBJ5M/ 9=Xl7((l&*xծ(䍣S)gS:/<eThm@67  ]/H%]*,_"^[3s0٬d4+aBtRZ9otM]+ b~̜x!f%,r.EZ%86m]6`6!T &4S1w:+2s)o8Di1 i]M1ن.W:ٝ!GjlZGF_2a2|e,x5&CF0 ** ^X| Bc*_d` 1l>m uk-!kd$id˲,%n>t$@&@h'}1lVmS4jl 욤JZM[ lHH\oSt B6 ۾K6ID #fGhn6&l(SZn00^B0M|3 : 0 cbECQs*Tc+;ո*:FY` P$ ^%26,,%!:.FTOSf|&JOPgam+0.3XP)lp[="NmRJ)}-|.Uo,=ceS6$}<"eotHG3E~o339}h'f0/Z+r/Ե[Y#okJ5;&M~s@+%^}'&#Gw_hԈE: 'O7@ii?Zfȓ[젵h'e&3AiذqS'r2ÆZM=c S>u/V.bU(X?٪c2\HVmOojcm*Ӷuv%oTҍ[5jE[( 獰do0>hpܸ%rN"aMlrDzͲn8+ރJ7ASLgHo].˪Ug"oI䟲BZgs!ۘQ A)T>qpOҥa?4F4:G$ u3 F0xHYTP(9TL#S:&T?2/D!CqdC#LѤD`6B9xAt $O61†3E3`: RpyF_2(;4?M fC#c馜l)1M&Gig?eYF y2Le4g .LmAiIBH {tDD{&E-0G"I0JXDL8#AWd D N?@o|i5\Y=?r 0܂Ra.`?|`OŵZvXmPȆRll#]ۼ1\oTflqrwrU 6a3XλaE^P)gs m(ьns5^̅)mya}0 A1_~8v8hU2Y,!v(ChMH* !p蒓 * " a5ƤcpzU?oa?6O!hDd?/c&crDbf#k"&Fuii u&Gbٽs7CC{)AhP7 |l0>iB$9F d t$i!B% ۅ>N/`(- *l3SbjrlaUhnqj a@z19D#aq.t1LE+D,XaA/<0Q1EVS+0?19 a I㼾㲺`l*7h֛,i BjlU0}I!!Fb$^ɗB6t=PDBA+a)u@B?&Z mnC/PJr$4R!H! a4pCt.E C#Yҁ!i/C';$k YZ\ސ<]4$$KBA } Mcd&2"h)M)P‘.N>Ia@TyB)x@KP?2> !QZHj 7rHCBsIϪQP>ۉkŔ*)3,M0/>DO 8aDÖW+8F11^簱%PhZ !<@a0#q쎪9`(;qWϨŽD]늤S.jGT c@2Կu$^ E)(ڀJ11 N{HTCC~L ڱܽ%z$VbL"]yY3XZ}QqD- @d' I%ъA@§1OEi]R )バԚ qPv AAY34-T%$]V xQ}_"sU -tIXLWmA ]p( iBQ T,*r@%mCDɎV fDD MUTR-%:`8}8UPziܨΦ݄OdHkmHQq<$)hň_ JEQf AM԰OCqRXdv_HN2#h%lKKMODR ᑄC< heZ"HH:H/?\8,2D A@b:A4fd!cAbNA=:U:U=b$ }Y%N"*R"TT' nԙYFU$8䒩sv$(GLC@tNdRlG )_ aQ‹NN ^V4AP5,.l#p D|`L]>,s 8N{rw1 ]A>>UXżi &pr G0$lBBuCtNCtTtfBD(Mpx-?NםJh鐎K7uN7 YvapȡЂ0p`HUgQn}АFQqV\vLi=yHR ȹ= dVuMBEXBաB\]C!4 ``b?LALjAH?H ؀4Ȁnjd@b6dʁ!%X:A>" E~ FyhCݑbIxmȳPL-NZF<dhBHr"Sp^# m_`G$i& ^$)J5VFo`Cd,pLVUf T[,4oD4(EPvhI#4C)`cٔ M4k|JSd,1(}̙0Ȩf 0] *6hBOfDjQHRST.PvMe^i͆썢0dD]-JK<$H8^lqͪ2%A3tI ABACD!C@ @ n  4HCc.fڡ2I]j̮MFD%mAPy2d(bN g->iw"/ȫ wN KaPJ%C3kD-X^=o>Je Wgd;A FdpBӴuk#-\J5_m"6mDAW.0ayh7XJln "qkI)=94MX>N8ŏI BaeK(ՊDOH$PAپp䄏q YPaתHȈDO?S.QAD2h]ڥۜʨ<,)\3ͨ!6ABa6@+sA 4@ @& 2 .4jbVayX1aؼf~DI%̐1BkLAlAG5_sB_= Լ)k儲f5G$3bߺUH9Ps 4.a>!KnqTFbFenppDftUQ @j3E/BQy0t 2@輍|xT 1C7!1CAbAx5MWØ 7N-9܈TK5iP `OdEkNHDX͘"RJ&K4T1hMވ-^,<^#\_\j j2-.anAr&4`sEMpϡ#EK{"lXҡk#I0\QRV0q Mx5MnUC`p钑s)~+x 3CcV`% =qa9#*=)<=51hDTajrdx`(v7 8 C8a@Up,9YDq=#ꓜD6ȟ$i"iď=e2">-?<*t@pATjk-a.7@*\Y3c9?GsI('Sh7 |PPY j@VԵK#X񨏲-1 `W`Yu^4 Yx9v+^p$Pr=PuPQ GD4xx2|L~L]PLx6A l#s48X[lMőmivVF,aҼкh[SG3Dx؁M4=Xϻ});1=GSrSOAΙKeuԐ v^ڐ{%=܌̘8uI2uOlN<|0:E0UJAe:*Akw@:l1!HbEo IaJijv͸5cA.^ՄgǑxhM N;#cMMGjR;&9n󸑝Ѥ;9MuֆȆ"h@":x܊z&$nQFhJa>LRLQEq7B EjlPgxg|7H FEQ`ʓIIT"$^ '0⟖z#`9f~3 n0d[z+*]5/*-!//; $ 5 {\t ѱuظ(dR++537bsYXs[0 99ljUZ%4Bv2N:ɢI'tɄtH#)!3J_X|9#7١FJفDFЌ>JR,A oMT,6<_EfEx1k@kxy]Gk̈́A,u!1X (6yM܆.%SΚ*MMO6|6UQ\G@P6ߖOOƖC UVU2Nũ$ T,&O*#)0+XMM0g0Ų ~%@vœtkqJ.]_ n -fU.xX`<,a X<".pJ(qLBZ%)# Y>"dMqPSoy]' dg& I*C-8nIJnqM'yP DF6S~ЁϕlS*-,M5A?J>q ؐ"ըE4'w9 ]AlA NQ$ wӛ /"I4Jژ0ldWSym+g$22-שL0yXNcѿ}oȊߌ`lϜ@M{paBi蟥lTWÔdd8ꭶ*]OW(ST#YHV{%,(@)J h` D@ٸOx֚YF^4<~׬|1aSe.|++bLۮmq_?֖9l48aE X_r0|_ocZ5z1.zlEY^X\6 b"Dȕeqv[/|sN*Fv)v-Vfw$X<g'aWv,Obh^6;f3 QQ@3'IHa1D'?ĉQ#(UbP*RpÝT։6G`t[x$΂`]XERإa8>1} ~u,_LIHBԟ8|S_4)⏂<N-eϧ)ԟV &EwaQL}FϤWۨ6КUB+BJ*kG7v0G@[Mֻȵ+z-v]%)A| V )ws8h+s4 Ԝ&ӓQexTMˀCi8]UgO9T5 $ lBLȉ ؉LP۬` `$kDk)p(5 'K7P6cv1o{Ԭ::i<$N:$N$NNNNN}R*~ Ҫ#EO&& n"$iMъ o$!8^[ 5^Q ^B.!ş֨@.ȳ>+.K/܎PFR.%m0۲#Q&`@·pD+X'N^hR)r)nr`X* F?db5P7n7vqC?^ [Rf\+e\\Hqw?Lf5^-. 4l Kpl&-|K:7ȉD( T@@,Ű$onI_ȍ @,Ήj5+ږ2)bR)`/( c̢,6&1pbÿpÿ9mf`c1b#X&b.3,z8p z֓C4 vzQR e*YDMV;132$y*Ck 0?? E(`5X.Lec/Oj @¹LFhp_Ȇk ڀdllG[ %Q5c h28'9dGfkGDŽ'TGrK'M" iSf))r 4->f] ŰtHB"&rvȸvh"kd4D F'4 H(k_sPd *T%3( aUU3SA VntDj$..nLO`S$e@uM}ZgZm2]L #b:Af8#k XX"oLb'p_KoCdoO<@ϺFX0Cf0+C3B_\V"Ԇ^c3ff.c_.˲x 0+.V4~LE_+/-X p[r$QHAH]b'3#5/rֈAK6L` 8n5e jg{s5F2KM4ҹ¹v8!kr PߨpC.G(bf% .&,pj.uP8q5K*3UW 2B ĊV1+(` q @B-Wn%jHve Δ|ZP#A6.r%effdn8J9"28D'P0D43hAi|M@{(3/tqnJgC6C[*BE\befLd$]Dg-kA,DBhraA~uh؈s0ڠpG}KT:2'bv-ҘA`sp.e2t u,1:4p')}RLUr_qբ+I)̆@8`܍ f`mAD4ZlV(f uxu<I$2}(v{ R+ju2Q.@n}rb`Yp#P$8lAt%m@eAhsPn0{,OI4^Rc~469<#&lf#2n=Ip#q=B6T<(փtFc)oy(N/ހd .Eֺ%ei K]d?D#77".;y"҈`& XIGGUu & /"GACI!ZDTΌLc*t^yG(|j(_M'KR6X?yAΊ- @e+ d:?{AM; Nzf\M]fR-Mt̀7#s2i2E/`)S+0SUW36OsnaU7fp#0  `#s kH[$6"F00r^ j[n *{]AR,0A.Lz'WD1`2D8R:<_;c ;cBDE*vj9A44o.meOd؂_"hN/|ߔhh/"CP-r-0M/YZ|yS0.@PA(ElC4/4ž+$U:"5B vt$i;mqRm/C,ld*b(.b0;q*+lK3~b`HPS .T;R ۾"j8WRp7Kgs%9ͻ+T/@|70]C شBΏ塀LcxȌ\.67K|X#c,i h 1ni皗p ,E l%+^,ņˆq; N"2"2R눫!58pcܜtL8xb/´.4xZ6ZO0Ahr(>|e Di *ߐ \`Y{ .k.[aAh gp7R)75 k1Fg7hu/1+فTɹə}^snY|g޵AHZY}kݻkԜ}(^02냫<*lsˋR]( Fȿ0$ǐ7:t4Wߛ)VIgtUBRXDǏ%O/MhO|ҒM6AaOϟ&7 B|iD Hժ|%!` )FCUECgV[C]ˎ3vA<GN9tP\0r`ၕ'e"Ϩ }DGN'#TEb"3/ڕrG`}i RoL\dhg"B69D^ȉ=}aə?k/ܸѠ4 n a_1^meC t Cü n}Ýe '4I&]rF46$`#! DDRC\Q?EI\ ?2t) _A l ٠f j9 C60f 6p-Х4sW_C54&ƐmhCMܥ^z@ ѩA&DC`CHVOGdkGtk-Ć ? I%eyJC7h F` %Xl֣1!R)c7W5VZHblI[ @SS&4-ǿ&PρqBM!+y𠗾\o[B`3"Ȇ2."` ٌf ɑhơ q-&^\MI׹N=<` Df7DdnTq_O(!QER|)={⇬JZ.BgYĄ̏Ĥ&=HKn+-}F9WMy^d& 0Xg^Hʠt4xasqD&.])t+ +Ms.Ж@2?2dPqEҹ2F?ԢaXf2g8/p?ӰԈb92Ta9ą2İ )8 r‹C%> cD?  h2Ǽ& b981 ƍ=SՆ@ ~'__'e3وCY#ф:qwRﴱq,;%FCvpB=)RFAag64ЂP]'qc/SzfNC eZ@,4e S$ @|M02$YW"X!E(8`w̥(򙑛3wFʌF7M4mC.Pq[o0U4S0$X`(Q*lѱ \BQA Ƣ:҇ mFL3H|-'㉥Aӣt_D!ށE A!hУڀ?LV+F4>~[efp:/QabBFUnW Ʒ$&F8k1F4bXkV@ +k _;;!g2Qoa 2's,ĕsbP+v$S`uGWumtPt^mceX\r8ЅtqU׆ֆmpw>RhHKU0= %G1/Ea0| XI$%aP!+ޱzqz`z;{zU4{TK:b x|àEG88iA {VjV`kVF4z1+Xw4c&"TOFSցdz%W2&mIe!XEQRfuCrvogH4OTB2'-d Qn# q^Eӄl2M R6 #6֘MO~gp3=QOq:y yA`svXFن t_hEv=V-'*-.2/ NC18#YhR,-ivHoq_tot\#d؆N7 #HمzYYvN@amF@җ $@҅X Aj$Fop٣iS;XC2pay:1xȉlj˸{fp%?$U4joq+rzD(xuV{H{Ai͈+o`Jw0bMa>h/ng08rr1yE0{!]Ҏhbr"'J!!! EPwm`b\6e#o΄M A#jϴ9Xp06i#&eB &^!!(m ̹n\=dXzt=CRΰs2c mP1-* ^` зٝ=ɓtP ry:ְQ><8!)#EpYpIrRi gM0 zAB%T/C7ighExv6gMgݮz3`>,Bn:3qnTzڋջxsD4BfzqRT&,%er>ٙ./7JI&4.[^5Q}P @$ J#9$AB]?7)M_rJN'FώmZo7QϹDjl ;":'yR5X%!lfgolksi=S?ƌ|t?-̲}izx87@e dQUGt(4:pF2,ڰ!# =ڸ %Q r͛*<:qF3a  ߗ0x,9r sEE Q#(F +TM0l \-Ы\Ŗ=ە,Yh%]~oȐigCZl09gUKoD1s.[lݺF r_:S5 E±̞}Ar/g \ 5K6kð͢EU!۷_w!F  H!^$>+>B[^ 1@E  $^D x FpI!Q'᥃B#2 A )x#'AFA&a>`#i C/`2!'A3FHAS1F$戤 +#3LÄ4Ԅx>|.4I6P84]Q5TQ SaGDYiInuBGv5衈Fm@>,*nJP)΀)[bzBz֣GTȣ)9F4+4j0K 6ǀ؀>8XeU@ ,Aqxv,&`2(+,8DzŹ3Ԫ~NTk9@L܊",K+Z0:sͣc(j"ܬ3 lN6= 9rCs>gq? dkZk̵o5H^P|;xĉDku6Gi:5A= `U@vDTAw PI=V-==wPUE C4l23:aG+1Hpɥ\T>D~NdMiՈTM5R*uU W@CF5glkBmu3Y F{D lP&4H !N(RPj Bix*g)RØ_S0q C"2"3?p &!88adf`@+?c@,g-!VE,5[NGIphc[vC\@_x vF5PNGV4!iCpƆ6|m}gGj'">H7j[ Aۄ <pftG "&IXE $ uHXC">J֎30PDP(R)}":g/}JL󹄡*Sc{0ѕJqי`%2YIKTGׄEMߦU:0(VOhM $%&$i,"ddYEjYJ65-?F*J!0V?:CCAy0`&LtDMل9iH׷U`"o ɄEJr 0l" pEhhcO|ٍm֊! ("r3d @w {QcHŬ kH\ceIٯL,iWpeȳEʴp!c8pZeO^-8~_FO xs;' SS:膷k1q}pGtkĞsJCF}GDE#hTʇ7ҁIF/Q$& c|҉֬#*TNj3A!^*TP |Rj?d.fW%)H(]jTDYYNˁ2_8M-͛T!E }1eJ$8<a?Bhw_X"˒ f,b,¢bpq[% R؅]z@ `h=B>B A $A [ ,`؈C*ր9"%#ˊȠ" \iBh9B-B#a+]I&b 9!s"˱F!Bd:٧k3閎U1lHDD4Hă 'JDŽx+!q5đ+ @*<DȦ_DhiC8:MP"Y 7j@D- \76?P/k=k 8,. R x6("rlS˘h %}أ $ 9K(Qt|) _9Ri%SؽF'&Sk C'?1>QA\10 8$'-i3^(CAY4>*mR 6*6ف1 aK1r2x(E*23ӱD1r'1KCXO3%i  #,c2,BHʾz/]!}$?{|+xb#6u/M 8?* # @Dy<Ɋaeѕ%7 t@@#!A!(Ih 8%h."JJ aS c Kأ# ɰ#!@)욳KB,K/hɁb4LjbLMDRќk1YY'6(5ig&N7]jDN,.+hbAWɆʆhC28kRF؇2P;q3dNl(׉iRɱ|KO;E+*kgh4Oj:6d *5!6*- rtI>X k!?" '͵ %H7`HuAHQ(Q.0`\RJu pډW}PpSI\ 3ʬ& DAi ?Y򗎘A `JN6za`d2E67@i r ܭEB8Ƞ<@4SɠP|ˏ H[j]h]!"UH3s]U {c4 2&~O>x5FueЌdHxllp4y @d%j(ku5Kt8(u]YQe2xͱ 2{)~i?jZ  zP9N*>HX;G]YYVxsd+l EHŢ{ڐqbӱ ,ZWx QoZҪZ@(-pc@1ي$5 $-?.`%R~ 0FvʘUYuam 4"M .S$A˹T\\eܘnr 0pe/ 1FtQmtCٕ0A0WŒU*u* +3Լ3+(M쓡b6X3HF T(tRoA>iXO]nkp0k)K.> iGh%x!ʃ\V+ fß5bSap贑XCꨘ{*.)ŒŒ(kQP]7Ѫ]Xc ZPTIqP-$>A4c] Ŭ"XAӬCpJG2[/P yѮF~"z"J$)jšNZE5S]Fk`5^N$إ8?a n 96Is!ɐi[A:AXRU9D 7YetDIl_X8 o$Ef`hsӼ8)7>P.U9IY@8}"87m,إ]$KO jtXVyHX'p"柸Цg+^c>HN^zyyهlrdONސވh, ɺ}epZ]"l<-YP7. @Z<NAŸXyz!mN{sfHnd&taFqJLN⠕˯}kXn3"s D!h+w96`tvrGYG̹KyMWe߄ƙ=\*^̑{a(?M4ZI4G 5C؉2}Rh]N>97J9O' =? <'y=&JA 22H9%@=w`a>c!Vq݌' Pp< 5!ON费s'.[,8dFnJdk7kUHtE_ ]ЅptÎ$#MG#Θt @R@[ R $R8haXپs3%cFm2* v?ضJʥr 4.hs Q H'J j5F:F=ƛ1oX JgPyeLO̓TAgB4y ‚:x l<$6 ")RqKȗ_|Y7)2b'll>Q#qqcƌ *hjZF1ʹsg4_)ka)̉3gRt((1IEрa4KG &M740P)-Dɗ8 K0d]yb25$W'S7Ì|ǁ?@=Ы^.4J%T(`D8 LH88Xz! υV6?#O ?$h?Ҍn6̌x^be4樣/$onVDrdgt@CzqX$XА%amp%``)XTe[u#o^s:#WSH3R/813tGNOA um"tR P:*ss^ $ȧ||5QMĆNJB,N<22UGUT4jFt頃HR#Dn-qUxYTU_ ĖCsV4TaQoH/.["dC5GH:g!RNGx2,7'Q[p\9ל4poqEwIVrhs&/2'/zQ?OF"'Y28Ӎ?&u{:׫`+IA6a(ฤoT@Fd*Mb9AN^N}BCPLa#X*T`!(\ 62Gш{ŋ(yIO~_MGfN` "G<1#aɤq'iibXc&}3M0<,I|yGiPFKC09&g r Plec -)%AmTSH%2u3'5Y#ad@]90VKgz2Xr;֬lO餔U/ɼr+N!z- @:*cz]SZXga^Z%Juݷ b+0b)Q~z w<1[EyF4)P2'6qk\N>#"u3)-Ʈ}$0٤ -ֶoLrv΁Usǹuz؄We?y).Ϳz@zWS0M3Q3YӇ|6uH6񈆝ə\ex ꅻu\>n!XTOtEPD6Y^)ݍ (F LIpϜ iIe^L?Si]c4O/tO-\T9SLiF,^LeHpq<4[x4@It\eʡH`>$hEVdؘFGN.[s\2!1)SJ:\"S3 jvȅ*ʉ r\ P`|SR "P )EVf}ѮYhTˊ@LO"TɞHAFQ3C m=ʗPa@IxFBɄ)&F->j즥.ƜILQM"]O[iD@⤸lBAl(>,MLt#E#Ά^JJzVDT=Q1_fA m ^JDgsgшA 'S8Ds8[vWf,s9odIawotQ:s )F XaS `e{|ȇD2M(NJ|,yxX.I|ESJKBL>b )e$T\tưR5UPtLkBŬ٥]Z^D]7 J)?a}Da2\|6)P4sP)Xb4e\ T*!-abڸi P!*,X}aj8N ,jN/r]<*kZ鵆JUsAU%̷%_,YTc.!yds GQ`w#p[S((ې$FLl :u=@wפMl$dž@,ǂGz| :K U4- eeOB ;(nP,Ќ=˴Ĉui0FpheMyhBhs­,m:p n)1G𑶰 3`NP p1OH%{*ENO^a D?p5)xYDۨGС ^s K,6A)(3nm6 0οig<#O9.n/3[;42ǓIْڰGp"6&ϸKC΃ r#"ܨv\Pqi0 +]bE,lbqGlRDxK(Z=؇R(уEmRJtQMKPN1OM`,F*WRr^VB@DK"E,K!u`ҵI6J Oxk&nhf.D&kMfrç^2# Ļ0F3 0),l #)f.ƽd_"rXaiLGFd p :p" ED<n,mEGl4EjT*of -P~fP?` gڴ3ɭ? qil¦_i#ǩrd햌sR 7\ >@Fr<0p6B<`n##<͂z$y:rtOQh@k(rrt KQOW%]IFh# I:`Un$z Bbte+*XA2ا&䃑JFD8Ri1D# _C4D() 7p6I m7P ׽I,"яN$Qo,UBYȰ'82scQ'ePgGQb5-Lfwd=C3Vm7ҙg!Aw\pFԤ@P̧89/0Q*Jim#CH Y =13U)+Q2n}SP >Oz @@Y 'q֔0h0TX6AO۬ia<1҂ܠ oHܓ09hHW@NMSHSzRT*@ ؅Mh @ȰAdiM |qY*uj}%GAS!Ɇݽ:kg+E 1Zޠ| kg6Rf'lgmer ircpm^'@7'!lc3΂a,bjzG .=8 ?8LId#?K?C9c]R p, @(@FI䎰'NN>):JI:V0^)q.ScZl(# cɰpB Ŋ=%J"F ǚ0_^'CgzGFQ f$M҄ǜB"B^^@N B#DdOF|$"RjX g ʥ%`j6G ȀLSh%V T^oZ"$ӪL"&-(-b!.˘E;z(φd\ʥ&~^'ř)B)BkǸ,! "ܾM6" 2B@ 2!-6m5`cjz56VDGAh`C޺AŠ3‘Lx``Dzs"fohCxr8L?>m?#T-^Ԇ> |ɾPL*&C:>E?hpk:LB 8(qlVf/'PB9Ғ?#fo'ú)s ğD$d,uB&zzmFDSA): \vCc([|8K.#6 X~e ~媰JQR1>:l d%Vtqp`$ $N"4B$OS$| 6"k5cp]8.qo&h')jv(%_D666biZC6%k V ,FPR+W#7hEVdy+E j#xx A`yA Ndk#pj ɔ PH :BңT@ n>LB ].5>x '9{s-Wi`oT p4#R)'#,'nVs5i"Kk4#^3PY {CT3Q GOB q#~DS*zgDHB\)dlp;"& _ :NN{pO<$HxQz7geΌuz§"`TBEJV3t$ ܐ'>B!ks!GB! J" K> m&ڦ_(vHj> ]/&rU.I\ ,琰dE !6fyK:"]c6v7|zc# Fx4XE`5fۆ+AgDYVs`a̚FI/eü4k 0a)2pLh 4|I5&6 4PNE^tF::5o;FO'eUunMn D$2*DD1tD$tu𣼖vK> #0L٬8+ϦXqSS"@"UVjrЦ:r*wp57qZ'&5\*7sL>$(&%*%^Uujmރ@?E(W^B2d"HE`E &#x,X b$'6~- iH{f-DVmi]v$ p<UDG<4PA8 C 7^P@ljK5Jv# ;zbMg7,s dKпЗDT6^mSbO}@(m])]CO'O.v4Lr3d1e'yib  2\^$^\; GZUyb:P ]D PM_v\Q}Zʥ~38exaS~yS9u9Z+E),pǵ!`]/eP|( ^[[[6\PM`5V8z"أm%[/#5,wW/y.NItB dp tx8t.q67(t6GxF2ZXa6G{BD{4@gwFKGj;~Nm8%8P)V;0̒l9l+Nong}})S} wَ1SxO$pqq0H~#wL7@HeiAq^ ](yY\d%Na],?^B)ISHMu~܇wYuy76"T>U5VJzOm[!+RM'N/MB-ǵ5$=C)b"-] b]X};EnvI놂qNJT&@ b֠ Ct;ɟzGNNJsL6ЩDhT40 &5ҿǎdZ f:C(O<_RHs8l`:#mҦ݊=\ggzB 8.UiTNZwzɽ'Dww3|xyO$.d]i)3L $^)nJm? z(L7u\I^U;FJS:"eV3EςӴ)xlyY#ZeE:m#+|#M?.)QZk01 c [&A[ͥz[{tk>yNsٚ:rin%.'D%@1rIC DĝHĝě6@H΢R*F+VH 'K%a 778RG- O:B|ډH.?t =m4Y(OԆgdC7$Nȹx']Q*5q~wc S88 #Ӆ =u"`6n%fr]`5'"1(9(|" Q~Vxq9Ha 耐xAֳ DD%5 ѭ Aib!/!\ t"EE,z:8KSRIf"XN)BtB웙&7AsM^ uĦlB:%O(вTRN0)z CR`JJej02+^OPD' NG# %33<"(j,tP[R -rM&Q%T˧&0lU+|O"'*(kpT7cB0:u#'HCÑ@Cc'Ei^AJ&)49/Pu F@M3a B5."4eInKKʜ@B̥m%܊xѼ`NE(15DSE( `k7Mn*dYbIPMDIB$H ˖uɕR^b12%*ShH?~U )hC& Y tB< @Xb% =cBvѡ&afG%ٰBޗZ(,p, pCܐ]e`2 2j[֗tʬ:]~jIpoN1@ x!!rxE.GdSQ^նO^@AXVbH/j4P#˽}& +UUEYGj d5`.Bp'30mJ  nEs² ٖ#R[^HT4::4p&炡v]3̛]2=y: "sRE!m <G7YVwteJ1 A%8S T υdS3K2,pXϺz8ℰXџ*aCNQ(6 LlG~K! ,!K,؀Mez:f`͜t Ӷz2PrRB[S ur7= !K jz8:Nq `J(Q>!wց&'K#rbAS?,oF,uBQ2S`7udB!uBMuHAeZ4ivOq(HYOx5vRR&YzCea&U#pnDCg8ai4pUXqR'C633Cx=dix3T%PI 1!#1+f 몑L %0w? 3Wh0:Z1/vd5iB6ZkgM|">9Yf)yd zX^\j.40kȆn& >D#GwW~tk9X7Y63X#pxgyy8iBt)˩E|Zej&e2U :!25~n-E"eVnrċr|jR~ve;~jxd2Ȳ@"32!WEuF;yGHh5j35C%XIhmXJ 6g 7Gޓpiך*A>; +cJ,Vb,V #RwR K~Gy e']y$I}b0i;zCMKg5y\':zY3UoVg3swQ+a먒^J;[3CE?VWuYcT֡W2Z<_d@$Exk44B)V^@}J""n=K) pqCyW>`|W3$WL1LJbڮjEQsQb%GwS}+!./X6i̾c,jFE'U#Pn&MM$136Cxߡ0?;ɒiQLG&^c|k)c\H\I*5^' M)gkAiʓѪ@]-(7M,vd;ohHMq| |*b^EWwaB%?}F:+M+{PGACWؐp w %qp㩞 ck}a:+~Fm7gx  >spp ר3m{7i}ppd)%q>`TჟhDiy]) (Ȯ<Λb bb2W?ӯ51W.%J}<9)k>lx6?ZtƕY i9M σY2 g,UA$GLRQUv>p[漳@;E%LC%s)[93R'25${ɓg ]'OL 77eKߏC77kcm[qMAo,4h E#F"3#^/.~ ax:S46Frذq *z}+Ǽbba?`8c+J:BI}(m-E^w's4RR<'GEhhu,HGieϊ!M jj?3JW:3:A=뗇[zyǹuniW1 =[h?Ryjt&37q8K&7E[xt>BE%#܁cQCIMWD>yG>cQGSd+?FA ?V>Vܟ}%7ރ>Y䯛rS`dD>9r$_bD'('p vC?8$L(& 8b 2C.Ҡ\iX.Ը C?2hlB -ZZ?F(`6 *-)&J ErٰFg5U6lȠݻpO_[  xkabŪVW @p dBYL2 ʪi2B/VD3Ӭ"5JF!Q۽:ˢ2m/(0##NrCBВ7K,E1yqkGeHTI+)p§,ps /#n)T!!e"A}[%T\)T,S.xD@&갘xhZu$\MXe[m*X2j,cը"JFVvK@(Њh-G@R 1Z  <+Y Uz^aN$WiW S-o¢0 8YÜ4IsbD80?THGw3X8GrF.(MЖD +JZjCpnA p( YRt\rmm{I)YM˴1P+C(`DHO2I$9ڔINh͙tzBIN X*LS }&4̪UOR)竕Z`PiݴhpпKJEUQ0Qpb(`u뢌dҖe蘬)d V G8rPSτay1uL=R!_RT:dUU*)ی(COdXX!̈ce̦G:-2*c zL-/k- KTev""эn8 p+肣AaT'1Q 2[ {h:Ň1T n P z j`>sSh 5c X 0krydͻPs!~k [ tir8d 9I'"| )i)p!ฉ H4.$x1k+HBxi:%2"0L\B=ɍBm AËnn=3.3 +E;ԁHȲTK&9<PMbh$=!@ qHzD hRْD*EP˵I S\'2IY Y p>Yd,ڦ"b Ls @F= Ӭ8 z쑩}8( qċG( C0䟈3ڟ38367RU 3 iMI W͔PϢǫK@ :U\mxA 2q33$9R+A"4;T5pĒe|6euϠà4dKJĸ\er8:m"9J׍=s>PtPC (,P^)ٻ n(U,#Ґ JRA;RZC-IDXm@ʹ I`V*Rł@Te` ܔ' 2q ඙> KLP)AU !(rݼTj48 #8GԽu[H0SEq4 L…tHǽ@c!$֖;E:E\;iܓ\=#4;9L]E0Y=$ģQ;mQI%^@ ,)\;e3+$ꕻ?Keê~ POkQYJ 283ݹ;,؂DOD_Q2X=X%= qUὈ|yYaSʶl}0Hc[`ΰ Œ0#R[k x*=U?t$G &3.br\b!黈[{H٪xAkYVнTHtȤKrJK0c=^>vV6oAĺ6+ PAۈyWm+A ݅?cPk@T4Ú?W?D EȊOz--j\[aNV<ȳC4UfFC{4}Tlл/9YQTx"&.*QOx&< xgx6W "ҍا`e٠Ëڏ 0UM ߴ(-b́$V0*No[~4 '=2\^)j )2~'CO9V-rO QuV=  WKd6j&ҧ+\s Pj:rݫL#4 KR3cNYU:zFT0, q^G*uF~q[d cR[u*㏜2=^O7904d˶㩡y YˉSq=u= q䦙;PKhYz mI@rerW&7@RY3Y"u,5d"%I4YZBSݭڊ0Q,3/I,*#ƹ'IR-Q;XPhltam$ʼ@jN &'Yta雱@n/t{ *Y ! $# H 雚JfГH5qdBXE4 IH%[v| =3Q[Y!(Tv7%WR<+f 9 E@b*OaO#J(MTBN)ː*lTtYb ŗF[B5 \Hڿ+_eb5 4(t !I sB Ma Sx!L!sàP'iPyb!sÛ2EJS3gqr+V aL\ZsͥUuu&W4d3[HΌ?ZR4!6s~5mLlnt(}dh&%H}ғT$.fd<OUlY1>&B :Ls,' (q'<ݐ%.wk׍#0BWb.OY6s} PB\} .G<5/,eL{ض|KB_Ѕ:.Xҭ!(%``@r\: 6cx>*`wMFE@4@&41c84!rHc?=ӗ 鋘JAȔQmĩa\taYO?Y;9e9mm4Cƙ^k {.$3ym[SFf#ecOJS\$RrOfx-dr}fXQ&%K@N+`,pDPBm^Jq@# 4mlΞpc"?3D T.*A^b6WBC !B`<@)<ͅ%/#Ǚe0i Lr$Gʉ NB\%UQ1ȩReaG~`Xȗ}Y _͞=mTL _љ ϭ(R4@@IdIQ"XP uZ=MȨYA aLH@*8AK8JM,0!S0$BlB ^̅(@H&l^4UA2e@$>J-@@䂵E}:\65 /OݓKX\iB\LXg<\)DiP_,[TK^(dʅFh ILMՔ X҅] >\](@r#\՜ݔ5xhNҡ\Gw,]xd]IuTdu<>D$X$H_}R <ғyƚ,+t`fͅhA1%XHMT@U] " vD?+Bhl&޳M1+5eV1H±,vA@A68A:Yza欨 UNL V.tT Q%3 FFLg fF)^O\^G H5%FYP I)`sP)d~F GSEUɸ V%aȍd}|rz QEU!6BYGRN0)I| %R~S2v$`ˤ@]IL\,a.D&> AJt`$))^*i4h[BCsOv29*\DWl@7L,KSbJIEa%Vh#`EԀ 8 P5P4&\45BAԸ7EylqiTI! )t*s#uwjHw@vz'(y>SmǓ9͜E[aDZ' 1މ=M#]VȈM!Jɓ($]]ĥgGRiS"VL$O=W,tͅ$@") tE?]. nF"+)3vͅ+*,Leui@A=J8DCNITSJbEP՜udB1l.T`O[\[E6FfzIMT> ] XP9uX*wjj@Zj1U$YGdڕ$%ݖ%ݾ:xaZgnǞQ]$$I LRa!RDbօ$+^ T$V`HX^ PVENpD!TŮd8)4CDhlJYJb4^],]:m3AlOOsTV,^"O PAI$m% #O̅R>&\^CuMD_p[P4R}K E5jKg𜏄--At>TA@S .1k@n@^1da ܍n}JxHp8.Cjke.c I\Lڏ li\`MM~+UN'D'zG^062pD-l,*B,EFSj\ \@^.3 a]6,_(N\,N0\-s[ŸBH4v̓e8 uŵQThFa Gkljp(@УN-TE.$q!o'v?nv1 taLCZL7&WNժM &y Pud$ٲXV는Sj]T# Τ(.̈́6Vݎ!V m|ܫX~\ׅ T^/ X_WP_OHRA1܀55c76/j%s]<)ps҅&N?i8PSiR4Eg6 ]LX \y_YAA]) m B#nSGG\$Nz.Ti?'}@9n}Ic1 N~kn/dO ꑰwa!"GQr(y{Z|8Zg\N߭S] M1(b-VUcݘ53VјH}XRxfّK˄LlR pV>qBŖnBd@lA_@c+$* ̯1g62[JBOpmBf+tBcS dį[:B,F4E=1@q[Pmk> ?CDa^VK!Xy_t:{a"dE@dx~ 4|GKV⤅z;Lx@ wZn.(RIuŻSͼNV(9#1 BJu5X_.VI9gC>w&L+ٝ1䨿 1Tt0zaB[6yc@ׯ 4[=?$iYn,7v*e1VDZi( ,TcE{څA3jܨK`CQTf^`#\@:M=r`B #nH;.H; {#n;j>>}緅:Ŷŀ{ƁtN_H˪<>X?bVVIbjnYƸq$)@CZLÏd7 5~șd@+S) f6B\3P"Qf4…(xQ8BAY[o?`G qsKRܐ`P"[ Ra[6m Kr.rigp{ ԭoȈ# A&2CÇ-2>_!X`Dknaeh2#}uv .eۥKv+% ;߾_ |7p w?~|k,'|-'bC>KV[SΎS?&T`AxP@'B*4pC \p 3NAPpBx ŢDAUPA<"G?G3̋X,% Db(F/0 cS 0  e*QDς)F rerA&.b-LO"X(i?~6@]j%ZQBi Ȁ 6 GU%+.bb笳zlkL!,0 cM C 1+2.DzR(`l^I[J`N[͵و`\îalsشh3mւN.RNm?밋o%ƛ%Xd~mhg 0ٹ{4 Nn>3Y&DYY jGd 6пEO&;j}&8%T8EtzCq(D@/tۛ?Y.i+AG+G6TVo0pjW#+ELtZ#?{ze'b"θU6QgrF#7@Kڅ4:?AڣO!ENz4qևp!7;1s7ZoȒ+6A|>YrVcN7tʮԘf_"ⲭTRFE5m{"2K~s["41һh @=p<$`08B{ omNb0 l v'$~D*l' L-'[ .8.F OE3ȀK.LTnT0J`.0ŤZ vψ8>FCc`jzjn\ɀdc̮8.> e8cj:h<̌e cg̈v êhg PφTghfT@ fd(-&0pO`b4@D"$ $ԇilt"l"&qbEI$,L"X(N,BE"Q"HKMaPB!Q Q~Morg~)k$'PK%|S;" @|0IBT"V,'RVe'yiZ. آ̀;Sub">4T p#M$g 5#Ãh?q6J6ʐt(^FR R+pr*/ʹ E,Y&oT-?BCtJYвJi@yB}HDCg8e)aWB -(n'H²1+K SQk ` ѺdR@/,% }r/kbA*Á"^%JlKRb qw7b܊3CAS~XĭQɛb 7Al)-GLS%>%<};oWd## Hz ,-Z[".22B]P0X#4:"f"2C_sLbCOdz6rbd :6ꦂj?2=bac  0Eer|f,JH*rάC+Tnuh$*IA@h>.li,J+k,pMV/S% om""* oHW"&VRB YRB¼ QyBT ~-LdS!] sF'(o[qwk8Q}3UIuɯ*ZaF^5}U}~NF:SޔGXWQWxKYyUh"*=) 1Y-.̀.\.JFR$C7RAfkcu o4rFTRL9Bc4+@V\,%Pb,+S@*S(n"k"4 Tl\$BZR4! l ɉsڦolPCv-L@ԥ%v%85YB~AVQۖar"-B#j:&"qxXsiv˽nY7G"i-'S0{ )䏯vTr ' vF%XG\qTᅣ##o07a˨Daz5F:Dt:Zbh>*KHaCl7fY*_f."=Rdڰ>޹c[{SWQXyE t bD=5d\%4\v+"r^({Ʀ$K2c8_#2zWbF'7vLJ&dMo7)ޓ1efLIPc9,Pfz%9W_(爘ggMYQB JA ̤dD4RMdM 4SF)zjLTPIYt9vZYe5V%S=cmv5VQ^e96=ba9SYz-MÞ{XŻ/RQi%v4BV@ A@ЀF-LI btZϑfHGIA{$ԠNY~Tb!3%&#B$!)-g98YPg 0dh7 -7ϝ`#laj"!-wLP9smq_bְlqS}v4'N2IE usK nR"?.U!`UMBGZTy4ה(+z_G[1/zyD3|w)XҒ^}E0c-k[S1T)̣0E(E (/0a5jx}s_ @Q`*((j4 D ,dC D` ̅Ff7hMӛ鼈 A L@h 0$q?yk '@pE,:i1@l@;*nN6!"zէZ3!Ik6ңMd"?GxzKv& X=RA X )NtS["ȐԽD!8KZ %IVB-cRig`*~2:h,ceWc߮%|&cG$zӝv2,_qwWh9.WpUN1gjCa|`OD(}_/{P/xuC* C1D V08p.4:sD-46\7 6:< c"񬦺 φDBSN5ņig1AG#ee5D\P"k1RR(JlԀD lM+BR.F":Xiԛw60~&,v ؘ nKcs8-iG;z5NfM_N]* ⅓`t*]gw*P} #ɥBV`v1AM`"v)޵s)tIfrk\{qL_\,ג^*<=Ӽ▏[6 [J`};` @@H xhE`[P %BQ 3H`H?AZ/z'9Α#ZGCA$RƢ-Ym9]j,1qPx,UѢSMerwp杜l#{g>kF3զ;Qk5K@x1 Դǽoi*t ԉ>}* UM<;(xi|@5;6-_[ޕQGM+^Se^+۸+nxђ^`qfx<әE.KV$8["+(( CE7i(9Af0J^b1qq&~D6E l6]BXdEMsD53 3ADAsD bTDFFUeRESt1eTZUJXQ"f_#>f6bnRXf@Vq90$7CxVyW@ g3 %m%Y"&6X$8!E bcQ'wR9G x6Ak2Qju[gyZ*GXA+$;=YN̄\6{c{{z]glN>$N~uqLannno*p}g7ZY6Q~f G$P `FG*00WѡB/US ѡRS7r*0!B%"SpG-3SD73?Vd?6fxTy&AS KE5D"$4dI!YFSuQ"1WAd'Qx:BGOgXGvx%SRPXS8HHh 3} vimVG$Ƥf_ndPoL)$Ҕ$[Uܣra=]ӈRlh9{^]WNu]u]S\vy+$xn_EK}L;1":i' 5PSC q6$Q5a&U4"'2 7b580#Fp2B5%s "[hFx#q;3əT,dSRShFJU&QW ÝR2B+U\eGkt5W,#A‘ fIpgHG9Vmf`Txsd\7T811h`b&c%2 "''cRϩdqdK"hU1uIBKEɂZD(f56f#w6w?C%)GT7`WOŸ6Walf8*i8se 9$G/'F$)UyTyY[!VzL::|iz3lУ\s]d+r4:M${R+LNnL["oKѲ'@T:"::aXD$F'BBB ~B)TQdC$ ]#2 ed!PC1"53V8R.HdFAr2@UG)i2 0uO&ƝO1OT1X tdi+= 89MRp"iAhC{D75RgW!D˅6Xs7*3eITw6yjmZV;u*̛y:.޳X1+lzŽh {}1]?镉}-*H[#jgiɥ/+>I'=h^:1ZR0F!0ApˀFR0"Hh4$=F1g)Rt['VIX0gSxF3j!>ܜ&BO c[EgdIIeQ "-BDjt6xlUf uaoArflS"T#nGSf[3HE&U7 8%V}!DHxxB5 @9/śo{W8*yȼ|%)rr?Gl; ]{q{TNu^|_8oR(\Wr_"|BtPP0!b0EaMD;2M۴N2иB<,=v)6cšrId<O696GS|jRsӨT 4j CEY٫/GdY#2$#?6aC^&9'n#l6~2c''T0bXs78lOS%d`}QɕP^ɘywlfƕB  BCz++כŲ|m.4yYwEE*? a‚ _bH$LMo@ 0 sjr2jR2h,mL\9eʿ-[%bJI`I!HU+?\>)bnt薒[#T[B, Ɔ7A?ō=CzMpאl!u 58% B8 $rUݗw`t!@^r BK% 0zvwx_7oz볩ϿM 8lZ0@@ H02`" ',0/# ` 0 HDCDqO4U E'G qE F!E# BQ"x*G-(H,ܥ l 0͂(R"R "Nb(`S @q:\3`GE c"-I:)ҞX ZLiZiV `(#*@7)Dx*H` -\J(K.*.ª3#H2* *u d*_KՆ#$f$ޤ;LWH8Hi;N?5HHB۪z˵n<ʀL^o=ڛO?eRBE@ ;p%yB1P͆PD?SdmTnH QEijƚD$D % J*lhKH&bBADo4N  -h1:!j%Wr D5׎"(:50 \3: %sOQZfeBݔsV V \aWuk,IB+YjUv.}T֯w2" 3[w| 6ȕxJ]`?0J?h9 Vf3F3!ȿCla9Shs,4I2!v@4<{FBiY|>#vQ yAG4 M 5|ֳ  DL3RE4"hEWZ􀬕E,ڋLDfmn膷,nȔ(8&7M{$f!tA"8p"bU"U")G'SAXRn%+ ,Ed_PT<$%`` yYdg%DYϪR-# S(3rm rP1Lg:84-W9)UF"yյtÕF` %lO.CT 5j'eI@H>&쇤4,Æ R"ApĢ͉XB8,h^QS6&mqk!>'HY] `U8 Ę}9i 4ÍWm-a*> /-ZZ ?/w$a F/D}DfںwnuaiGUiMH9Z8"38J1,m6+Lďkm[d&{h|<rIr{ȱ;I9ڤb2H@;OYaWqҫQ) (0ڍ :˗ 졔BZ ;ax Pt"#;Jc)B( Ӟبxa<ꀼ4;,j(h:3۠7 >ѷLk+*7څ ŬEQ*2LTja2?Cʚ MDZDnJ5 `d hS)R}UN̷Q|~ 8D!%I2"#ꄭMQ#85Y(-ƈH!@pˆ,VV& `oRjS>  иP ̈́B}n"JϤ|Z. mgَ%_Z\Vyܖܘe N- ԅf'!㣪TlE{K~7>"=Fꂈ_<"9"GMk!okA2mS2}!Gq6`6bZ^ H9(U%`JqR¨Mo&AGPǻ`b! 艋T-bIQ[ۑ٦NrIsjnȁOn[) 'H/\=V}zIcEo\<=4u/!xrC,W^ݞPiE2ꢲQ%Q#*$8Cj ,z>I>;ˁMl B_ J- _P!UƈwAFeKl5ŵ5VogJHf X &Qg8}oL(A `='%xsY!F tC AT?UƍHtS;ʀߚnZ 9 dnƒf\*.b{4(i\ipoFcjWf|nv*7:Rmn_B0 WMw-^ kŹQO!Z++ OG)FX"_eUNxo׎nHOŦ?҃!3j):f֥XUyy48*s!myWggCHy510[ L 0†,ntp#GnܸX96GDd$ycAI@ز'z:`HIB ` sp%°,mJSPI $gSonMs•ˡ_v9pG0rX|X?ȈGV y? a!V0 >/4KҮMC0[ @k.;q~Ufts)ѫZ: 0A%7A?4w#L2J1]һ^WIujÜ;Clp=Ͳ򾧛kWrì  Y5}gX0* >!(( j+3LPI'}sA56LgDx19a tlL:@ 'hF@B)G Bhv5)hZb?qRQHTzELO,Y%>}WTO)1?!.ZR@)MTJb N!%% ’dt_K(!Mv %I ̭W/W|Um6z@|b`IACM#Wx`GBP~(r*R6fi"IMSa)}yƣ!)LՖ3m# #a*Bt>E QeQJ>6T(ՌY2Ĺ&!򲅬 j$Z5Ø~12vտR52I'c&08~.=\h=)[dV=e$Y ,@p JPj#6n}[4ls+p3g@t3ӌN?C>K2M?tT㴯cR IeRgI}vv]CEm'm")!$))5䕄\*pnryp敓4Za%\+Ve')AD(9j" _Ȯ, Bo^őui^۱1c\cG]"2Gbq#\Kjr0=~ECy?nXnLWIs>Xͤ@@ B[KDCɖApSmZWH~ЛӢG<1W1|~!;rL=HJBZBIeݐ `B ,:)lхhӜHFM@[9p^K؈B ]C F& ɘKN"GRLD5DC,Չ) E IJwYPpBuX[ё]ؑR^1E *Pd\)qg5YePX DǶqٞp4GeKa=z0L4Vm6Ň0Nc;f%[VaY826Z}$?QM WmemYtI1.reS?U ]<dLg Bu?JZզRzW߬ג ^pa8DK z]K(P^ tUߌčDDO䄙Q NX,PP%YZ9M|ɧhXpMW͟<]XXZ'b%6_E(_-VfV((%}edXY%ViFZp\N%7Y(`_}4=R >c"A2&]*p@y`~n fz1vgS-U inJZZƓYp`#Dun|鐒4QHAN$@A^DBLp' MB J}lGHAP}QMN!KP#Y`89%FQ%EF2pنbePH Z2Kdabȓ,W4ݏ_1u06P~)~zXPnc6;5)Sر|VoMPh92>m)gv7ZHu`c%>1-msS3`z%ૉDlKlWA!EY!6gqt.X]=TWݠwjKxLhFN0@@[8N!ͧ-T>ᤦiE( u[JZ!('Y\R+UVb1Oa+]GUq Kgtƞ#ԇm#]XeVl^ٍfPiŚt.U ה*H: 8)<ɠ!W8x }VڏH/9ЄcEٝ f?ҍl!ݑv,D-uU$d WĭIlzN 6ʊM'~ `1h&1U%.Z.8SeXhN+XLfOAY" hB:¤S.vS7k#6ZNr4Gň,:l] Ho)b3&H& fNH?Y &0S%B`>Z!N] H WC@)HHt/:-sHNC}>HTy 4ʹ K^3VU -a&XI ]2խNA[4߆_)d0(>nmb o*st18ӗ&1;(>5;74a+1بmn,s1LfN l*1YKtl2` ieŒ,Qlot < cE Ip BoEѴ%'su,*!gX/lޔcIQPu)OaR@AZŤ2!J@ LX]((1s%m%Neen_7?YfDGb_]Em_~NLfki_f6,Ijqf.Ssa1/6m)Ս1cرq^@:1vZbׯ_|> s(J+8%M4K;Ԓ11N?%+F2t/Dk+6TR#MںZ#v3nKVS1SvT爫N1gsָiw.,#ZO<:< ngC0 %"% !A !DL@DEd/&Z<:>w.$G *1e7I凎T!8Pң$JR h2e_LYjt"%#GҊ3"Ę(ݺz4SAS l.Tplע ,EhmZ}sGYF t(E"+ /oB_ƽ@B)׽R2%$Ù}XRRf2[e8"@ 0f 4@43ge$K R2jSC %I%Jbbt'$1Yօ$pq N NN's10781mfP-iZE2,l[_5HXimFEMӸhE;dktmjbzǚG*dapa)ɟD˱mD\HM3 eFHc cHY΢Tmfi4 ,pP -j$q&< Hq6G3Y;R3TFmUVhnjƉr?eU-N}3^އW&O{ ՛kҔnJZeͭWksƘJ6)?cձY2k~,2߫/9u$  Æm|8hBaw `8" D-?z-ʅ-۴Ƽ H + H* P m\%6,P dcPC;ˎ-%'&8'.s,#52SN:JcUnIqr, F<. 2@Htxc3$c2J [%1RkFpO;xj=^ \.)`vGLA8z~B8`2q\-66%+# 6d }% "M"$J"\5k@b8JFP+P-"k|/g1&FIx%8BI46#F)@,ES*N1p eSBng)X+/H~2*ϡZ# SR^*2hFmçzE$wR _Ea8.&Fq|bNfmE Į f Ҧ+,`LI`r؊r&jaL1wMbUb-v,0rjrjh[J>+f+4UtshBS&&De~, f,5E-vAvVWj=!IX[H[w3RM\J*4d=j$?ܶڼjs5|'_*d$:7l|BQ ́LOF \Fr%`# 6:s2Hb_P N>/m@Uek?Fza6nrrG)C:m>pq 2xNGFd,kVn5DB-vkUBo+zō2ҍYo)I }6~k&EsF=%z6L1dAn6yr0 ؑoM)2Yd O3:+6g=xs1H@ s9Ȉ$1OB%hp~ٴU/o&ʗ˦ye>CKK(T]M&Ӊ}F(N 5l2`t:F?ޥ,X+8g0+4DSGk-,Ҏ׷}z+*]9 D8%JLu X $O^1^X'$ǪSM3X`_`i)+eYRGI8^X8h?'uC &`pXbmhlFgxU.%v.“J \VΘV>VL4U+z<016`ƔtBq1_c;g,&*ubckk}هښ l{}I3bo@c%^0|y^`R@LDd{{Cz ؼ1a4C4a5"@OJ(ƒ)@IHuO0sQ׍ ZxQw)> d>Ʀn@ֵ,Im#D>c+/Y墮k%0eo+~#)O:e+f.tDg #l'|UD调[%?^.Z3>Vr,^_\@%S|#dZO $Head &}2O>UYbJ6 OaUaXmZ\8g$ouۛct3fT9ٵbH..2N/@/&?";&$6do. j bO66i+jue*2׃ K@וbq,WVflGe5xlUH[w_;8CbF&ԃf>m84^tkG>n?[)tJ~:=ybx꧹SǏm{Wv8ѵc.헓>f5}bsnlȽqobUZal ށ-( !X¦$d(JG+ !b eY@+\d7gQfLTw(/@RN+ҭަ|:Cc"J,{e >%*:{014=1z_n7C"HƖ 6߰_U"DtM rsC|,0o@.!B 1cƋ;zxcǑ$eČ$ p@flI`L._I͖g) [lm4ѥ[HX%1ğMB,V0`J?04i!?ނu.?`U~5bM}q`q$Wטʜ;_欁. 8> bjӣK~aspL[fמ;p(f93t#X_Í֠ËaɥWFxunR@1}S]pːUj:h׼]-WiWX,t/AG*gwb 8!!,$7r 聡P P P h¡V3dx;Xb`xჀanAvqaqс P瀮pPa vQv~`=ۃdx?'rUs"'Z9;t_fB'dt6VOl4))@dkf6*0)Tv lǃ艟x+ X0+`芯(Hhȋ苿(HhLjɨȌ(Hh׈٨ȍ(Hh爎騎Ȏ(Hhȏ)Ii ɐ𸊳X,tpO1/Fg3XX,'pq$d+x/)4iQ4A i(0Po<p6UML锺RىP)dhmiáj9Ȗ•`g`dvI4IliG阻ؑ,ZMИ1,ɒ1Qgqq<٘+g’)¹fV  HΩYmkٙɃЗ"ɒ"i4ѝ Qy,z m젝)E9W9Ia9!^頺1+ɘ?Y9iȓiEɓ.r JI'q9ٞɡ ʟg٘"Y9ј 9Yz&z{JYoQ-xuY7Y9(I:p*a@9쀧RZqjYJ*љbj"Y)m**oc)O֧p:N :!٨   ٖ:!M$yR ɖJ*iiɔR:* :_Pw*K+:!QjOYʫ4%kwJ ͩ$)iʦ¡:9Ɖ-ˡ/+POIZvz6Vʡ5$gó1*+ZJyʴ&+IZY4٤ .A<$ɧUYIL 'M*tsvYL_z}:|:h|z˹C+R0*ٓ'* d %c z17kٓY4K o gCio JK*[+i@Ƀh*, 밯*뫻}*A<ߴ8\bp˿밷B #|QK)+</ !,gIR5%-xRU2(T:D&3XAJG5B& 4J:I-߇WV3 E180 U?L/lOWfDG<)6aFOܘbY! 9/:A ǬdauYqPU<:TTٷ@/8εZ\wTZwbO8DhZXi_fGLyQNtMQ6ׄVͪ {ciLTOp`|\CM͓iSLr^\M5<Ȁg鼣|ZT8?^VȞڈf͏ʇdT68J"aCH\>DuJIuInJPsdQMxZd?nIjY_aٔe|Ђc0hp_F;,8hGba=1nW؃^kAD&"sgZ2']BIZRjMOߝkƭzE͵ٺumGHSS(êiܥ}qF_Ϭ`*yR@ Ei5%w=*믂ў}҇jN.(VK|PxV`]L7[aڛtZ@یnةvEvtQΣ܁MƧbFn`҈\LCS6Zڌ\dfqrqXF㬃m8bw_NҘrٳdRE0f?׹ɚɉhMה䴔PPP_>pA8wxxxaaaA()ĤƮQQ5@/谰ޯGadTS *\ȰÇ#JHŋ3jȱǏ CIɓ(˗0cʜI͛8s%ϟ@ JѣHkӧPJJիXjʵׯ`ÊKٳhӪ]6mRg4זex˷߿  .Èg&t*ekzϠCMӨS^MY %:o?٘KϳҿYn:g_C`'7УKNS6f٘}\;?OءKO᭏AF|yhy XIFm,6ȂP~,'P; >NRb]((0ȕwQb+^Ex2#W>4ڃ\,zEvhQңSH De5e#hY lXS۽y[8VEMmԝ|矀*蠄j衈*lmt2ǎl2u\ &|5 &tj ~NT( '?;&_o\X;Ι6F+|JSמBjSErT(R+sߺTPhSf d_PhSBfN\R9@v Oc{yj:ECfTK\C}'`Ȼ~)o~gƒyj,z$TW$LDZYbYk1nR @Red]*KLU"{TN\ U@Q}`3mRiB#]'ZI;%#}6؎ '~J+6i|]N &#􀈋Nr;sxy A)B#3cV U( fwOS %#& T_}P1 fGU-%:(bz촏}7vS IBL"F:򑐴#$1JJ"*%'J%R(E)L,Vd%(IKO򖝼$_ 0_S*fb<@.2MhҒ?$Krs$?Ry4` ;ϺD0,&/}~CS  Ġ/GDΔUtymS59JpQ)KgIȃ}F*&0*6M^ S )/uC}ɽ|*eIR3zɎ~tR)TiV@DiTV*hT*P̲Fedeh^lӶM+K/m=ZT d--ZhMN* E%!oZE';ҭpU,TZzu W/{)KMKPT(lۂs7jS:y5/1о*%qRM]ըcKiVNVǢY̢,gSx幮Wܧ,|ZQۧ+m TpF_K~V`@ Jm?'&!,XvŰX(e؍*5J̈́UF%=BH[U*2ԸM kJ_״Y˒fŷx+T %OJ0x*|D O6, c=|.%5ަd / k;hʎ%8*OZX}00]du?z*ŷp_eRԨNWW v lW r0qM/W-a sS)戱;)쳊<~6٢Qxb ]BKYQŢu3l1uiK_RY*iۻcWJ婰6п+24O %SͯBzEfUOAe}, άS-IYbnPDsfq8.bq XEe `@߷Svu*/X.R wbL\\I0ck|»G 0n;EL*p6FS{KGuTwue~uwS|>V6v [EH5DhP7h'&vl !fSUwVeGo)hccn$ocgMvXDfat4vO2'Z/ly y;GezRqXn_chVtwt{'7cDefLW`~Vkxw||w>8~|bGvJxPUdTSV8Q& Q1~4Lĵ`wL47f#x,Av]*Ga&bXYYGh^*xzZy7rzFnEEU_bhcbxcaLnQP-eGSŸu]7dR|̷o\=jX[')}pՄ_0WQaQnGj6I? # XƘEHT|wLԸ{)hkhMn\K7f6NluhZ7Zf]mYgsrsg$jyfWqCwj i1ex{7S TueǤw_|W|kSu'/paM[-') MF@YiMv=qX|,auiuiVe+hqGV3攙Xhcx 0cυ,^~ir͆Q1frN,Ryo9'%ms9w5hV8t"x7W(8I9a蔷L5x`7P oGv#uE`,iג-1 i?y6yo BMOVXOq!VeLYLWLn9ڙe8Ew&x{ݩa"TbKzIgZtytsX^_)xV i\:ʘQgoʤII)v)13 WT`3Iy8*}@ N}V##z٤w8)O9Zƥ8ig ȁ^\a~R gbyj {*<7m*m:*[QhzIh :id V )xǹ) CaH( ʄ1+M!S,@;[j*FjjXHKi;WڱjV3tQe'xY:; *xfhty\m " s%4}NZy| {FwyVyy{Y^7xKuk VGw W/(KGʲE,hvl`:ZJHvf8l媢ټE)ŷ|"뤾 yԩɘkcީnk)tIUzWf/|wYY,y;f9 zưejtI+k_UZ۹M ;u( z}2[T>*9ɻH{9~zXĢ p"J ڽɓGK^>/P=M<9ɻ αTzД=Ϭ.TUti8qML=`\`E.<{9` (NaQ!l I갹-ZԁM M~ؤKێ]/搽+}ݺv~\>҄KH=K~* kF\WyPM,۾|Z~{; ;uzN}.N@`;>μ\MhNa=Zu:R۰n T)c*x}mOȶl^O鐾ߛLC(璭vn3罺*ͫ̊/D*˽&ڊ&~h/M:GǼ헪"O+Qz, ~*0oa1ak\7?=/?߯lkDg)ߍNپɌ ޵\wŐ ONLx#o?u~`NqoMO/ FB 6OaD =P`/, $ (Yb -a)N=_ ReP1CRMUriU> ?\b1ДEwcG]u!֣Ʋض޽z벨V $0a #bÔ k"p`΃ k0Фp!Zؽˢ5e5YrWc;1ŕ/W\34:\,nRM^ݦ߹ݿx>|Ao0 Ф$<"Ȣ#r3)OJISVo&X'Jib)S7_\QtJv􊷱píJ -";b-ɱk ʏs>ͣh/11D.|S @k#,ʽD,.Ӓ PAm6ºQjh+ nLkѷVlhԘtU;lNϼX&5=?OÎPRVٍJhM(˖{A -,p;97.)&Os)*:7?j7~Ѯ> r.^S -޲a< 0",0 y3Y4DlN3HNƔlnхU#V#Z%1JǺQ8{ӴQe7z襎Pzzl Ez]$*q)\d^{j)2&}vbcm!$ aAbM2E%k*beY-{="sS䓁83WH7rI+4G0BizÔLlS˾HS!ٖCdlȨS V'(\ 5GXGVo[IBnyOI8R?aE jHE58DK"b,40-i!bΡ%J(]FQu9Ëk(Ebޯ{/e|j%>Q\LɗuYtV&0zkb{ ` f#;zsXg$UtqXg6n|jlPC4-ѠtA"&3tm?6r]Ls+" ^&%`'0 :t[k:7 Iy6+K&2z^ݼNsZ=F[lk^Timobr|u3m?[g럋0~;B3[c6gSl; <|C눺[ m)qC' <<}J:zba2'k2Ȓ*Ӣ~rِi;z,+*۰:a.&Œʺ)øB0?Y c$')>[L˞>G9J8{7<>:`?Ћ3/.Xr2#:5z$(B`b; |&Pq; T@;;K jñ ,7ccuc_${20anSƄ;<<0xi l;6b@ĴK\:c.ݨ[K34B:zd8s|\ȏa4軾¯KÓ2@4[ Q[5HB0=,FiB9*)5\; ɫ EP [ӴŬG79Ij$uØCQ:>ẗ́58?BXA 5L?01G܍T D4,IVlҜ,N=lNεS\%MPRERdP؋MP _YԼN%Ym $Uh62xݙHY]͍ݧPH}MjYO][cU54VMɝށֱ:۱ִV`Ic;wMt׻ֺW6@˱S_R,E ZDT#=\܏UTM{ݓTRG =uYpÎU݁v>Yu ^H/U~<"I]bK@͊^U`"Vqb#0.rc16 ?O$c\M ܈ ީ\JMYH_zU%]VّTǠaSEU9U9OpveW> Yp *. ^_.``a~b)^=^jhM jH$N$جKEfMTω,b.vb/bN#ӏS0N{& Tu}Wg]uf4ܵEg d@6z>kA9\I^pEFgt`oÀo fSLL>LUӅiUț橞 WX군ee=Ĵ^^f2Pf^cF`.f/fv}jd/EblfJUhc}ds?_P=Zc4Irgx-l;zNNu=WdSx}`A@6[ak+c@NsV<0H;EX^hHdUIU͋ nidf^V>FWMeYp٤L) H&oާꠥj.ڎmpfX@sڏb/l?Flkm;Oq=c{E@7l5N- (qlgՖmNrN#&0g d \o~df/qiUN5=n&.2eiiSJxae$ j6Z2je.݆Z~ȋap$f_(hfNp^,gkݮ-~ۜh[pu W_b77#Xch[0alZqӺSxcx;]:EM6Ͼgw7pm.wsVGԏ ٯfsP% ^O-e;g:WX>syeC[VeE'D7y^&yebatK/XjNLjjkuS'6\}/xwf] hX@S+z_Orq0Vc7ܵ>~qcŋv`[j9_n? */?rGrvnwkSύpʷ,kHkXwsmj 7TX G9]8UyܥeYxsW~O8ѠDDIw~fjM'ejao&Ufu7mWX+.z9-8G2d_'FlE32ĆMbWcCd d)$I,!k S˜9a0orÅ/bLP㿄BTլ ÈWa8̢gmn ;(r&/Xu5<s1>W VbŌ\-nf8g92\OT'ϵxW6O; n:#Ls!Sf^d4]ue۶ 6G,p[sU\۞!awU/kQ[ E(x 2$NWFXyEj#ІQE!RTC@$?xb؄T2%JTJ2$#1uQSH!"Y]5QeTXTS`h%[{|e5J|~ɐ[$W{ v,!Ƙ@5ve@3hVZFC9ڨlɳڤ[kF-7ɉ u qGYvifjeij!^we@X~e<`%A|\ŵ?) Ph ]m+T*4"dG1zDcN5hJ Մһ1֛I@9$H3.T")yKB ya e^UPUJ0]-_^~a`['d%3v/!V2ڕur?1zl#kϗƨn<]tJ?14@\ek/ s]u{k'_,Gv![VJ` }7Xza,V)S\.H'tDH/p?to5"sʻҽ#JX?>A~:HM%"L ;,SteCfi?8o7J~n vdlޭ6ZPΗ*Pkl}-\qnߪtA=fb.z~Wx:d"3̓6y)^F2ƦAK-A ۖ66-mY J^T|D) %+_ Ҏ BP'{!H ' aC>1 [$#;ȬU0 M e&5y(1>bJ %Oj:}>b#$gd@:ʌhCD&r3VʋQQ: !8.U2Db]sE5sf&Ϊ&[m)UN[,T}ӕS|EXʌ&㰇e{LVI᪍gC`)heff0PuogDO,Jicqhf (N;eHĬ+m%X{rd#Le);ԆhQOk^^j*y HW{_l[%LyW fpzތeMWS-T+Z`u:2(!ue,0N 2u-O@a6Zo;4^C p䡱w}Nq6HSg d퓧Un~kO)6gL,4On.`oPs㶅UmaUNZĮڿ`D0&P)r.t_Ʊp/k^:|="S bהnHJƒX!1iX6v 0ٴY(#d8 T(!7^gnyP SZ=BN6Mn>xJ~)G]*;g;2 6*d+UO‹{F`HHb\ך͌=xL] ǙoN僿Լ~P5z,಄b|͐2}膰Ft|UD ]>3ԍ8\ʋsM.*5{|b`Wi*YS<̼Αg T!c54|2G)6$~U U 1ɽ8<;e+Wy[0-Di- %p rXƟ?֪ zJgǼb .GC[C]^'a^ޫ= ~S@"y ZD*(%Z\BDɡEaOHGK!\EZd٠ߟ#vP!M$7^*]"v<&^߈"S)#!& JŢ .,"F*0V- G/zϣ@i,tla FAI^ " b͠_$yE#92DS1V4쉂aFd6D4@- O>@y>j> E&?62XCCƦC Dll&9dCaC&C!" 'A_| &|$~%H$Du1kkc?c54@C {NA%_4^(~Bf)>e+bb2%bTX,C*l,.B.\Rd C(ƷFu R Dn8Jq`x# ,(&T:%G$hTZBڅQ&%fg|*]`@ŋ\MLy&#*?mmfHalgw6$nqfp'EsEA'av)Bbg&HZD# z)e)?j'?eZ~f;2Decja)cC4(,J(UW eF^9eYY\e Ғ]ݖč1&_.,.aA(PiYjƧYf)A)|BiF+Fbkbyrmzam2@©mog硦0!|irkFiVlFHf_p'C~lǺiǂm~l ʦoinfKyf*kfͲ&x짪O!0;aC~E|_V86⅂@\(FEY9Ѥ*%HG]FX~VZĔ F.̠7h`RB)!BCqNj^iMƈ243iɲ,HVol>g+CYE@02Ղ\,.*)!* gvV䜢okbjRPl^&+G4,-ClBr"|kRWZ(,24`42幍-GTn~5ԥ,rhޭoBL`N `.?t/,6(U>!ΦfM .E2Ţ,6 0 ¾i J n2D-.4}nCtAFJˆf2}f..*ss>qpmcmR!)k1R2{f|Egdfrn3"hj~ .2\ʯpR'(2q*ؖ4cK+N"A*_r2)Ne>($.6(|~*rFpo,s3Zn & [?ذ p '[kl2 )ʩ!@M1bna07W91ykpg7/೨2lo̱(m*t~/U?L D>DB2 j(E#6tmق>Ԣ/"n'3S>(4&4"--3Q{a2C?rN3J/,RUR5  8+g$GnX As+W78bmfbT?uCr/;$`,G05J4@4C24|ъA34Nq#4p' D'AB@v*L4|erD nfEvCPDrN'OAj+z+tL;ws(0p#L7)*|BOcOv>:Z28u/T2w it@4mvCs-x| ?~7GnZ|'xF 8JCdZWwύvH3n27x/WS 8M7 k_b'v3 cg7,Cd1-CC3܂*eg/mNCusvB7T6jKkF\4rkrVCe/8oO2qo3:i?"K3y#0lvNtO/NO3csb' qO8S:Sx72mkYsDׂ53[C58;Z3RU[?7{3/;gd/7yg23['6'vM9-W{-@{ ē;au7ĕoo3:hwr#<(3iDˆtGWL0F㵝۲*䵶eJ6@0~yKw277OW7WvZ3y-8?+zzh5 wCԂ2:W|?=C|usu{stA Ԃ0zC{C);' g\c7g5JxS.E6D36O:?08/-;|V绻9GB2܂[D%X9<[u;zqz''auowY${?cû+9G>bbwzg=Ī:~Ȁ'|:@VM$3ߏ!*Bm#!GA0AaL("DpaÅ a>93 Q (f>LhL8E*[R5u֣V)Vdfݺdg6JHܶٿE5Z`>|oZ -OBŋbA3+Gl=N7SNE8F W] E}[!^ZNeE*թMoiHgIǗ#DyI("0≦6h>cahC(/0#3`2 ɧN= =Ԓ*f,㮬2,FpQz/KI:Ȧl2p 3\h5BH /7Khqi2>ijḭ=NČ /朋(:N&"QpL+_\oQYĈZ!b~oU#[mEׄnoB&"PL*@cXHq<#eJP! /RmC"bf %V]] |}di*0!(Xcz؍}ik4(Xo袦VMXw>V=JSM]j> #)OT z>.:'w6l=#K~!K4Gg$<5d6Ȉy){ܒPƤ йyh]h!mIw(=;ߡD6OɨuXIֲ^;8+Uqg]ѫ[J|UnHŷ "F-p(¡nm\IC<ġ(^!ۜN.`&"v„Vh 5B^ I!k$DB%mQDFf/C)2̃kǑ 4c>"1f4 %:%$N[z$eti+ ~14 \`Z a(jM[f0 "T+U3 34NF2n7{m)1&+&7mX ) /$AgfzؠS!' j #!(͉r:9#ryћAHf>dR Bi!+ h;Fd>c}ɑP/;{4HM̋#c3L^ɰ7ϨI5`(EIm51;CVd=zo;^nysvDRG_R2RS'nؼBn~Plۤ??>ζm]dɰEϊ>d;Ö(A1Hk-kYK\"܆D="R\D57-vtJ,6E(:3VSiFKՊt)-i`XTF_W:S a7-`NbE '(al{bLFt&e %C&K'D)D|o^"D7ȉa3KԗB;/VX +^@av¼[IKuAd<ΦZanVwfc!+6uSm )-}dH[F-k0ֵFp4'xv9"ɗ)ls#af8tsq,RxC ݄"vij2A>C7!dOOt}S ظy-2֤d}G U;DƇZsA}}I$rhnG1:|PSO^kK56sx4^ֿTjl"`ey{ћ%O͵봝==o3$[ 3SRd$[kp}?w7oA/y~p䨿FHpn EDS?f#Y4"#@ pa$p R>~t҈ :mFNrH"~j/Q جLe/Z ahAazq1!ҁdhQҡy1ac,9b, C ?NExvfpj2Db"" , '#}q}0Jz"LM '̍pB/hPMZA&VZR^Qyq(9KІE,"0 Fo*2AR#*p*MͼR,qkr+f1"DN-k'.A..r/y/S s10%S11 3333aθ#Znq̈ S$N$K#ˈBx<#BbvPēG|"|fc0,n /2z3"4R#i NRf̍M޺+R.7%?B(t1( (څVT!$"P+R,l* !B4D#,i+eq,Ei2c/2/2/m/.o/ztGG{0{/}43y!203934bI91$\##aBmn(K%eJMu36y2!bc8 1$* 3ay~x䧕9u/@"($7 5s4k>;>M= (&#S?&qV!ȴ@?(y"Š$q Ao5nI1" B! :4Z'H Da4Ru#t/.#H#G%SG}/ S11SI353^^3}p@4ZRZ#-tCAUI #D%@ru@/(6"R.)+* ZAq+MCRKV4[#01{19s]JJ'vRbv?0 dz<#"x 1 $t$*N$my7F`vN##: U~iCĊ7QaLkllVvAm @tWsnR# @]Y)T,ICUq̈́["@wlq#q׵0/rIQ8^Qxs!3q4WK#ӯp W@C/tC'/EBm)Uvkk~SJ$zMÐ:=D"f PeO=b3\c3\6989|ffǨgt{4$"}RR#pR <ēwx$V=wkѴeSkxvmWX&o> VWAaZ4B6A@*+OC㣅Wsu^q[匆 wKI4+BY偯'#=hBB>X61)u>wyj#fsK#xyO|]f2l*#vCNK#Ю/"5$Ϲmh,wI!Y!ڳ(mlIbKz<>/EȚ=4$rZE"BpC[J^Gb_"Y@4 7E/T*ϑOn)m]Wr>_9U#=CSO/ᓹ+6 EU$pYttKW!:3^)s>JaE%PD/Z ,v:W(yۦᖭb=Q x:lg 9ih :c36fǰ 06H9)qf)L3~֯o`\M3<ՔƦ.7=ډ+eۑ;;l ˥;3.#֖ UCKZMT?34em`Fջ1'^Wx1!S>r-O[S`QQ!6\EU(1+Uښϖk- [ވaKӛU2==藥|9c3B/ws k7:za&}` ;"fe#zyyOyn<9baAׯ!`LDJ=[A9Mȩr@0=~Gbˍ0'u婚㶚-NJL !P#!.2GxQ{G#G15s5s7U25H9GT>63fgAhiK'̪K7N!H*Gʺ]vmұ_W)M%Qc=}"rKڙfd#}qf/\aGܢG6+n."}W>\NjZ-ranO6[Q"^HړW$zslڊSV"✶;>sy1"ba0!!3ڄ/qa/1Ny! ^˿i;0Cǎ;9{9X $6E8m4>$4<3a2#Sn\92o7ζn aV[YwZV7ݻ~!/s8L=*j]0ݷDL[,;G^ TRP39:5rW|1gm+)jqf)J)`/?pm|SA"N  #s?:K"r~"\1L#*}Œ wQd?j?$ ,y%j40h㉯7&33*`6sHԗ}I4IMt5YtqPqHқmқtvun\~b˦p $w S]+TA\kBzAF~P`VOa#O0*%tyaxV2Yrk_h̶dLinfGܞim:i5EߌN}W3i? #Abhps%l"#KM5C/9X>˨13n+ odQ:_?ELbRf!mb* AWw7l( !uL!]k9DJFb0-@gkT:i$ TjDRX&F{-< ;fc9Nw#Dl&[#D H &|SZRd h!a>i9En.zQ:1 NǺ@+5yJXcTm' d9F%+#)ݲPyrKve/!\fF"o Rj2H (֮ѢbABE(h4JAS moEMH! |2<:ؘ !$?H 9(D^ A( !_ҕu"dxq@t+  mI{fDCIL҃u&[JKeryGwNqś@U=2NkDD$)Jŏn!YQ%Ð qփ1M!ZG'[׺ !BTkb(hcBH%w{S _"xc:@_'.H!g+0jQ.t e("R襃jAy% :P!߃j؊Txb K!4(!d KG R}[OKz*B^/BKM TDi1T2/ <|Xq8i' T]";euke01:ĕ]/Jq[ -\&h˷HF'n 3WJ[ yu+]I0|9\r\HvbSY; fȶ5oRY2n^>Ӝ֯ ](G? T*T$;1tt΄O_s]b #O, u.B rv S}( #ǾWEH#JS5u{ W@n68!G!>ȴ7D mBGb95t8TU'R/uB&LSUD!)* HMV#㪚(61="I,-``%%RYEok-i!A]ToHՑ|׻}4A[ݏ,Vh3v=k*kjJȐZk/Ԍ3U;p+&6g"-)Әqԍ5)R+~йǶ6t[g6{4X pv<8"Gvv3.~.'%Pְ 8 WraZ8 /tO8 q%^r@/S2EE'\6D#r`C :!sC=D=*-EVSPI?(S|;1.&kp8U[f8dN7fhfQxQmUvqtAWvqWPH{EWVWbWvviuD9e) Y"xJ38AF]URZUZ#y/j1LL32\s2!#z#SrNz\Ε|l\l'eG{l{{`b !8mԕzLFB F"Nԋ؇}gH K0BPp0><19uU r!TP^O^>^31)0.^P P Ax R 'J>Ly ?A؁et!up W[!fZvJ ("e?@feufZ&HGT M(XhVHW>WFWvg8`HN >)WPUbgxduyRw XW ;>~7iuYQCS-Q-T.7! QL[F10ˆ?$$k\wmVlƉg|'|XvԦNl{yp aHM ҋئWN>B;qK `Ps xm`Go>zٚ0 ٝi*c@@ŀu] ]^xm0.8I^p_3@ ĀO7p +y  pR'u]dFfiebdF^vf5Ifdf`q[,VP1 V7 WS ?2?{Z*Ejc|Vc9GjᤙWWIikA,chrbrFri榲D(\ǡZDy'3026@"X4llfǗzz&|ŷl꙲lm{蚪(Po !Ҹ`@ oG$o l{t|tވ̚4?X Y 著:0z`bP~/D :fg^ eƯe)enMf +HJqef] 828 zR m5OV8}T !9_IG:GIt1A:xP< ~AxW 8{TwusV 181;t;8Fs"K,6\E'pVxK8&.B)Twk$"lrKlǪ\x !izxt 9!mGm*ljmf`Hʪwh~nq#]׸ԊΊex? Y 9 z? - B(^ q %1^1PebGP4nqZfcv)f6ɰ- +Wgf7ٱ9fFgV:0ܲ~Av!IPRIq9Qq!|LG{ukzQh1w-:YnH;U773Fx&Vc6rVhv=F[##*@1S262s"9x|بi|'?ǷfLg]緲[ !z!$XNɕ, 2 ]:?ay(9.B%EQKQ"t q XF ʽ~KC; fV6yi2Z nXYfq?GB>9|,Q+b9d@ 4вG EWy* tf9րwbY;;p‡Yզ@ZuK6ZsÁĂkK[k$ LW@mu!ӓj|Ǩ|]1(|\p]Y)|ɭye ̊H ʚ[:a֓L# B :^uc~^r $P%u 0}Ba]^AH*ZjZfɠ!׬`q аP =i +e2ʣP ٜ ˄ FQJ?̔?a7$vK:M3;:RAr]ЖAI:*.\uYs1U3e,&wf&@FyZ؈nm>>DU"E gl?CW%[  _řԼǝ: g09y |9Ԧg>z a {R&*B 49F4 !c~Pr@~} A_qQ /ft!:ʒZfN2, @y tVRۼ],)fVYPhqń-H|MHH #05;PʳS0+s.q9s H|[hgZ*W+^zwKnÇAnE|bAZ*}"",N@14?$yfg\? B!zy.=#1(] Qle { ǰQ |'O~f).2(|7q\$}J9LoNv5QPeCCpnP땂.^^Y Be̓e}e_߼k^tqpٞͦVV=P땯59D9+O+޴IS!L A<;IJvyH cumQhcE8\3Y&E'=^:QPd+"Q"Q/&"-RMFn- AO<[S [q ʟ3VB ?#G[6\_$*ʣQ$IrEǎ,94i# իnH7ru"GĿMزŊY 9NC%xlBcI!tC$FB?9Bt_D WVZxJDŽ*-5K`%%*݈Fp&,?%)qt[VlӤ+5B]Eb8EEϿEٳcgzT={ENguʔiQ?-բM$2(£@ 2 iCB⛆V# NR ' ;D DU;6D4QpQngEDE!HH'MMh<v%fmF#@#@<3$aw"5ޘ@Tb$C1&R.%P?EӬ /~ VaɕlcjXK )j*lPV6?rPK!IL&\0$ /,x .uyҭl] \!\9&9!]Ūw$-RWE ,`a . G`dD΃L`)"5Ơ$IQcl\;xfFyE^ ueQ3(C bi3+8sEqwZ>W[3lޔt"x"q,ZJ\d"J(%z a*3йd\D"ׅXe93bYD%XMπi,ۅQixb3~tp#4\6C}D RXp% 7i"@ڴYN qY @)g//R`@#4,].M`{BXt[4@:(Y&7$ξj+A9hWs JO+D"`̍c#HmJCAT4C77qy}#y j$OR10h3)lAT!GgXBe,]1-1JJ`Q=d鍮ft찥p(Ǽ͵ƣ6F3Yem[\h+3g(:ШQzAFXՙ::ۨ,;q]DHP^*Y@|Î|.*bRam@+A 8 |) h#*\&JM8(p('h:`з.蝆 QђH9/ |/d#JGA#?o(s:lX3c") ` q Y(Z8>D1PHLH#HsM! Mq0F9ddx7(ȁXj%Fj!3 J oa)\0y":9y Ң\g5嘵a,[ʸңx:$4  A 2'!?ѣRhnc;:{ ᝱1؞biZҦ 7ֹ ӡ :ґ$ Ԧq&!aYbAtA/!AbBAjMAmn*'/@-$ ;,dq4GCѹ;4,iLO!=Yؐ˼3#[.4<[1G1(328 52 r Y1Dy !l{BMpYX,Q i a@8N)NhD7FA,AAn*2 p?z, 5-ELP [Ԣ1j5Rh*^3@H> AUh$%I+ɒM)1RP>X[ D #1b,J %GIPiReI8 bbJPҷ[XjY"2PhqIYʝ `!%)'(D9+:ӷQ8s u;8)Fd; Jp#1(ݪ!ŒrNú(`1(LԚkC8$ D00Y$ꔈ F$0!MnM P-j3!sgj5aR&"&D:2.F|%W|X]An,hS> 6 \Vs1 ՑxV(p#ʨ ;+:,u?:ʾo;[@?#Da <$3a{" mGYlU[nл[R+".YKhN*h `81%Y&,dYAl" 8- 2`@.8.ӱLF;XA:!K"IP#pUڵLˬ9#듒J1MPOi9dԟ̟ߜ]@8LQqIM=!_xDj߻X!2VyI,ׯ.2YiNn$%(8a8X؅X;xaF҃ qaЎeф MÊ >[Dфɲ ;:3˨Y-0]ɒŔD"\2ސ" =:H 걓b8DEڞ%x355;%~Kر۫25]yAM_JAIe a;hKe\2\%y.$X 9^.GA )Ȕ^ Rؙ˹šS:) 6ޡ[؝dL<.۝L0|=`4U_|^Dhɠu) d}!(D(7f D7)g܊V=d7؊7hFgW0(i0axYf*bHUz(>ZP:YbZkћɑ5ZŊ]Q#&U% ?֓" ?V#5Ӄ2bF܂5X|fP>Ė!p[R[hVQ,r,SK t)PL\z,2M}m%ڮܵ%*%|-) \D\Tc8̕]&ܩ,^:ðܥ K@qֆU_^ǂ%v]v%hDΏ GKثCEGՔp!sGoߙ9NWA_Q!=oUNGi8ifdF p=inF۽,(>ϑl钸# "IeG^,;ʾd[W[ (>$*,Ҭ0Z˞P51tp(azd1c=No "CRNp!Wt-q=4q1ŐP}f$#ڎ,/'LfD&&a%!BPUѥB-~8XJTx+AXʸ um1vY98|#Fm`ަKuB8 o|"Y8FHfiU@IVNC{IF[pgk qcg(^t4ޱ؍ƬȼEEN$F8|ϩ~LOYUO!M=|>Of#ppI 9oos>_ik=2,ȀY|d 1&eЎ}9SY[UP"ʈg_ 933oNxEx< a RDn;59&V1!/ Wp1Yd(xsVq^ʁmKB%h؍U[tQظ]p}ӥ4fxq0Vra~faBw/ߎ\M}cdӷM֦Q;%%j}C=aL5,:rϝ%tzNT$y F3>N|=Rٿ-[ Wc!C ʒի1#KG!k yo*>-]JysҠ5jHٖ5eC]q/i>CR*JR:j Vƕ˪` &KQrt-e}\q-_XZb2:&dm̋y-y՘F7vb#i)fl^gM.f,-ITQq+1f14>ē2q/T^H t3^С9 ]2W}G62M ݬ(bX_J4o|Bs x{PZ  4賊k|F-0Kp.wHMZ2Cmr30WZ+ mBd%+B#Ec2B\?,t":kr9F]:(D-^y?4! J!KA +b<ɪB8nYKIW]=Ur?W]CV Aё4H!ze\> C ^, u pwth6LZ2vZnF<&l9 e4dZ|pM5gϏq󞇟h *?e͏Fu$:@..R:=x2 nrh 21f8O]2=8-^;D)`5TO4-a ȶj-l5ÞP(RD)@VoXzUsV v!U#ҋа˺/y)$4!h2,8wΗ- V3$cF%£V>!aZ@+ &iƵևm'@Ѕ-jO{̾-d?ϴhs5)FQTfoegCڛwz<-@vkP9iV?e9> %2*T˜ ;CFۥ\8=]lL T5dʕ\dFUM\ȞGI|O*L$?Llԟ-3B|A ]EtҦ@' Ҧh 'ƦԀrP@(]9C$A7EZY H ZaJBEDD=Εli٘=D:AyakQH~0ʀ 5!hfLblǤd)v9-]IFx]j,Z$lB8dthr|OFpI`߱$J)Ndю`\3ď(x"`dA9HR~j(%%Z1iNiZ8aHy݅dH]iƔ(<٠erZ?[>P\z[ZMи ȚQܐy蕲8 HD8T95D+"l^ǤVqHр~H@SYG8G9! 0oʦx]FϣLGAYzӐYDEqhٙ)X b@^Ҡtl-4?-B2$Q‰`N OGSI8 "e$˚R&4,Bei$J$F=ܑǖI 'IY<,A$HDMŠ Đr !\Z1Wy Zx ş^PS<>YZPJT8kЉJKrAJ&جD]U%AM$Ы GZٞIFl'!҅P$^fk]NU  B(Zd XgvyC8 ĞF+ʀ5>A~& `\|ȔѠ=iCEme|ܘ}$Hc~0):Ұelsk,{IaVKPDzo0BAu>D0] r,t, ]m/v䥝je6?<#)#=#Y{C kD-,զEZϦMZT+MY$(iF 4`nrVڿhhFo1O}FPs9Fd֨9s̹9L<=E,`nW+ #kytY%FKx0v0;ak/#~/_4ѤxjB-HcB "Á(p 7Df#jfAAFq )H)n" I$BD.tR#aB* C4"3鮻l"ge\cNXCNQG83΍\N8 (X j{Rb:;&4ɍ(AiA RVlXQQa AE" c1JAH1k\R@dR*&QDڜvhh'p\++tE(x**iF%2 KmrCF # T2@O4 `- ;a8AN9ܞPn暑[a98Ith(Sy#43'=φ2aeϞг@r8-4oԅ.' l sHd>"#Mok\+wTV6R[8 PILT89NSR >د׬$2m;#Xl&';CgpDW. @󝝖<8gL~&<,sD_ɔO"#UO 5E`{C!.W9_t8_-m-RA@+@Pc@JJR@Im-nq FX,& /{ /@YA,XCxU^#iM%@K%+HLbl.5|)('cԎ9rs3qt zpvhvм* Ӽ沣yQJvt4Xkt)؋y_KU~TLwk T+Cp!yFR)g '9ى4 8ÆqC8x-%rdh0@i Z; V@\|yXu޼o#o.dj1MVe3#!vhpҺ!z@v`V-Zwۍ=Y2Gs=,WՅtzߛ-pVqO( 4̥0v*|CZ(No b/pS.pT;\MO0 {2!!wRXkF$ձAqUFB{,QK-W:Ix+FH/UUM-D'^msk}IyݘQhcs]G#fl$}[8>A&1 "D?O{ھY$'QyCѱ.4 m (M>ɸj#l| "z=L3$h6Skװ9{\3ĥ(rN6v6<@ dFVM NGOD4*L ) A 5%>aa1lb gf;i5*ga1hP2b )6L7;6<2h8`$ƌ`ž, .rnGX r` Ԥl|@0 & 1/P-6"jl=đ) $7c4h|NArXjPtD1g}4qVA7wsb@ŀX@;bDA$'GfEFfmއVKOsqQKM3i|e&fj>+9͈e xHO я/ggc+i!{D#;th# fNf NPnQDAo %( nLk@Htƌ#h&gb=Nfh h> i IoAA'qTzM{+=BaM Dae`N" -5 O 00mǂ-28  U1 rȏm2wzFf#^-SQ>h{'k{,7"tgr4—GrĕGko&Z M!,B~}UUt2g1XC꣦2G00qurbGmJR4ߐC< m~˱kff^@QumJ1O>I` A_! "!.tuVȁ>~RcdˉD)d$BVd1,Ds@%wMcW@R%etȲ8|Febf6pO/M6H=Ikh쭶fr#@"4q @ G"L ŠJP NtNPA-`O@O!ApNmPM Q#Ssۭʏ  SP H03@cۭݮ*fk3><3V.xuB|,g#uG)oF#1Z!""JK ~tPjB~Wobsx74A2N2Z5(tw69hwI6hL9kV5q{gVD ZM nF9a_];$K63~ 3";ĄEDgV(ǣ8#emvtV"uގX# 4zFHoc:?9+l9 Mm` qP)Qp ×q3Vn$D,#lw^,Œ` u SU15@4 8~k#͒GbGL#N@1 28atuP'-T)e lkC&7df!=h'#f}M8T# ĔWXWk5F42-7|uS(.,2YL g2Ժ;Fi>4wh|RHoCV=ZֲZ>mYl&SceؤhXN;)UΐcjS' \*t0{wHBJrVDD(B2E4f lm5wT#c~XfBa,@6+ 3kvt9ia,3< j1p :*&(nMLto_#.'t+ Y9 YPx+413@TS1v#T״M/U#81/Vݎx#+hfk_FkQ4vc#΃<ȣ<#kc<6ud$Q4ގ<@N*GmK\u37a7dnH lH¤켧C2>Lɶ[=Q)%fMs=#Y3(#h@ң='7as8plQmF8 Д{#&f6 c洋 GhGVG} HY ,sHJ礰2f47f^ܿvY48&jod젩͹֍@-sݪ05ȥ7qwzhB#:Z O݀ Iyu2躮5U@ 78 :ECcm\#35`ܴ8 HˎNSsum&hlr6Sglc>:6*iQB.c<<3WRӺ;nYs^KD#ȡHR;kuvdLrfgV7*t7F} 4BVCU:[QFH%JMk)j6bCQ;XZ2&}f:>mYSLH4BTGT[]@}8(R(kxh>kBI4ިCY7zgt5z"${#ns (mKFJ銓A׍;b$ E pj@AS9=Af0-J!x[T=61 iq9,vQi eNd`' iV`(Ր+ apXIߦ .hK\6 i\wu ӷvy{!\v ^!n K_@@1mV Ş/C;+4(JL7QH0V(asY3?% ;Syt ggM3ڤGDfT3IG6z,{ z/6썊uRD*ԈkR]y,zWe*QC# BD{5RI=y=ZW  /풄=PqPqAjڗ1n=q6Z l뺮|&1y!o9Z-Yf߬ծcɮYy_{ϲYi?5C -pwzdv5??h Q3njÅ]kG q(BpPL?"",Eq5 :#:$(P_R(q7 :_r". r#b"qB.0aa5aOKO@7P_u<4((.6"7A>1E s0S'euq#P{tu3`3)ADE|qDIt>3w!/}gp0;izQxspgTRggggUCVUgr W ox/'S&$AOQ/@\o41]D$T;F;cj|7!JX!2b A a1}}*^l143Qm5A ܕ6jPnԃ ]w "J6;4=n09LФq;{4)7lQ^ƃ %(ƒ_q(Ņٔ-2"!0?QA?.Rv'0<9̈́Vr9J8*af%ePSMN8'\בE@V+qVB>"`X;lP\4A3RGMQq,fS0wCDghw~=EtDpaD==Rn(|V PWcuhZqVjDzI:eDeuDoRFLs+*%X$F-Vm2RQ4&)*['k8|cm]UUP1 ިutGA'Z _Y~ZkF[|%5l73&Ye6k:aI9P ac<G$$dt*(\:(% CPу=E(p(lo3%hM5rtOvIXsRqص+ptZZ}T,51t/N6z,q#AI :#._uKDalt11&,T.bE94}Vh>H Zj@/[x/Y/VЪCRRgqekwHĶnd.DGux++AOG^BrNfӚk ) qofXn yo%Ni#625]E :j3WGȦY n["W'@_;s1>QAWi\_(ɔ zfC>Pڞ*rƉBک h۷QU~Xˤ˻J2n B"l!܎w݀2xC̘ѳضkn'F(` "x"V8Q@`e!mL 1,`"-p $"'g yY(3 !l8!Q`(!)Gj ! $ G9Fч UOGsO3M"&ٓ"DFS0 8AZ=VD>ӰU=sV ~`pb[(bv5֓vi+ZJ+4"wܑ"-nXWf: ݺ|㣓)(^j9zSJ$JI`~آA:lx:^4fFCʰp ˶L0iQ4@),0,d`.`Z,-&l"*=dy/j螫ڵ6ҮiA ">Mu'X$#q b`P [A,>߰?4P>A<fF 3":Jyʇr *@b.(^(~7 <VH4HCP hwF]M~@T"HԨDRev<"jUpVzUAb!Џ-#zzPiF"PK$PNiOwNRD IU=$&8P)V< B0d! -:fQŮAd!)e >Rp2"F4cpPt1YȁhY,֚elM_2!B8?sHlbj366r&3[.=\# !vp 0&";"phtB t|c\(7$,b j2$:?Q#HN5'!'G`iH)4MZ4(@%!b1*_eF] Q`_%*7B@i~z~3vԚ-#UM-l+!Ox "_UA넚IXHÍrh^OXlUi_eDe?jW hHm"6wrȗ4 ,#]O.k" W Hb ݈(Eo3~L8RY1ߌYЅ\+8&,ƘpNRH' I 967z0?z -R# P "on8Â0ɯfI Ba&&w&wnڐZjks[0B&$:K1Sۯ{BjWaȀ;A˒(+y(籨.B2)0i+#Z<4l*[I1]@ET4A#[:W/M{`C`Hˠ :ٓҽë&1>m Kk×W x8 Bx/:1@ %SGg;h7!?#s? >&103 ?x7@ tq@A(,,4r 1IacPAdǂA`" PiBAbAbJh$x :s0%s9Amr& 1w"Kw:C1Ѕ93W]]X[<3f8[5:*)QE ꒰{((JĐ+,3y"IK,ڙ94LP3j˴&a"i*_0_¡xjtH&  ĉ,ʎ!aCC/aH7W"ً @ ٪7}>&nؙQ2ex@8GV-'S 0` W2 (J<#Z\⫝̸:h (-A.E90q[21% 75990¡AhC&5Ƌ0ܰM5D @р´-QǼ$\N(҂R5U8UB]2UMɻ y񧾫OSq4ARD0XWN㽮gֈ!9i&ߊ`$Ϻ.؜Cx s rmjYtrs 𶟅 02PȂH8{9y:٦e Bޘh ˨` 8%eQ =PQtwPf)Xw<xkʯdgӣvjctB^jV-6m@2 iG~O3`|YAgu_&ETMfc.n'ӈYxp8t񖠆WmopĹHw|}oo+U[8a 7Ո ?| %H'?'˲ pB ưY]Jyh0iuT&h[ʖ=h̹ؽ%G.h/ѴgI'p q JhT]R6m+tUR>e"i X)ܩBC\'Y}Z {:튠͊eLEa=Ef@ʙA{%Ǝv)hq̆nwθ؏ fTw,o`@+*OuHǤa2'wzW9nܐ#KF,ɱa7$E,Ycz3DB8Tg0`"y/O(P"DSq!u-u():JƃΫuzyca A.h"T+䟜qKLq,[n]5G? gdoTa8pVp"B0"hq0aO{"cv]a=[F0Xw2V0߉='u[i`kGm Nd@H_l~ /?(";-P(6(Pc :`qaSbX?-bc/&9dv>&AG}бW]H)?YYvhv %`#e}HյE]5 VG!r7IK$P\Y ;sYjD0BWK9dcUjY]+Ķj~F , 77W9eNYA UyuIzX+GL[ \IO; @BJFyD(VAPlxCuHQctt_-pqre\E !XfdfacE$!4CeYgE*BikVp"las+m--u #}ad _ REBPĈ 8`CxVc LADpc?%Hc9%2az嘂Pƞn g'SzlE 7E2=2ī:=@;jj~V~`J t1XAAYpWXʙp\q-+pH2^ !PF,0W PPlD]uV1I{[-XWP.B "0a,W#L27n1גt:gGY,Xvؒ%!LfRBp:y3Xy[jP+Q^t=M-ԡ00prS2*僃F+v^JA2bƏcZF8ERP+bH2UiFwtD XCJ UJ 5!XJ.2"a+o\$B!Ď1o DA ⊾t E|ZmfV g "袑IEΘ[4JYstv=HnCiRt>rO)m.]?z?˺R Z߄ p&:j8gFF35\=ۚ:}=ώxN';hpiYHBϿэ\$S]UB yϏ fGp]0@]Sa!2Eq+VE ɲZI]|+3DWװa!F9\" jJ8#-ȼ">5UMZ(.LrNWCX'yi+ѬWEcy%,l&6qcNSBJfRtjU ?L<F͢Nkl2AjÙVi䬟H QtC'sKcPw?l@ \m/E4!CoBJ4i"E0J\.}Tw:$><V<; Lr~jӑbuʆVvb.re'@5*ZV"!ڗD; 7.ֻQ5Or0Ĺ 3NP3"cÛ 0sB( $锄!MܠsAԏAC vJ='R9#ϊ̂[3L^RC`cm&C:DӏECДiT'"N([=#n`K[1͐ |CllonӃGb0J"tO+mM \~-S]- v ɆB?%GDHGH|,bp|x78ٗsؔƖ̎=U!DEiX> dNTp aX ODHT 97 iH"B@ 5XV5]ANC jNE– s8MLr*S21΋`HTqM`}-r:N}uM79}-Uj!جiTDyc$ddXVT)Bq-u}rxCd'vpx.,:'_v?pk pxLc>:`hZ䈼z_}EWq%Cv8y4V'5 ׅeJKr_Ej^&aGdAZ Q?h,DC4H4,,~,  RJ&.eb1E4ݣ)Ba(~TRhDNŤXs<0L&'BY̖iĨKFX֋Xz mcT!&PˌIBD4BQVNQh&i A+DDNOZETDɩ>IF'f*JǙeQj o)qM*!(sŇ|`|5YN|5q8Hu!DU?#)b#|k1#N(Nv`pRoYD+B4[YGu$Gj̆.D.,iUXHmc( (^5B{r}H"&T4p%T(4( GA*e5$RC)!91ef0!U&WRIR|}TqtT1t F-t]N)de5R Ffg[nʸk F$NPލM~W\ #"iԌ&ZfBW9c.DeOMs0֤R1\tbNz'0W0wgvZNߍv &b\gҳFz۴g{F:*.ՍxM0 &DS hч.V ;%DuT h-%_(R.>X$ZyDS`zLMB.-p{|$?p%4BJ+A%"&,4@55 (%O " ?t! zh ў)BŘJļg@$$pW5NGW;Gͭ!mFԲP]ʪqƢ bպXuWo-^}e4]KFL#PO@B`9jʼD%%'}imm$O b^BȢ+oVܣ6ʩa .MsN+Uވ:'{)wDw@,/Ew'c Ͷj:W ۼ/͆\_x.+15~%I~=cl$X\ІoxTG(Y&تQ&e@hbc e`KT`0Blʒt2X0JbtK+NslNp)ePtP#DeEŘcXҖw[ p28vPu|̄i*#aH^-:UjlH{55|-gHwbO+S9b-FJ>MiC 4GHT|n9'Op_o?t5?!" UGfd bwqk9'?'X$OBU=F mpF1 S }gQ!e $ D;m1BxBІk&!QVIDs%h:ч s2>uuBuG74~8NHx6{ǴG?'BS  6L.}cs} BLZsע'91?{/tdFkd@$߿,dσ# ߍRdDr ѿR)d`*uMJ7iTheAD? ң_9rH XQS"HPhEZ‹RXXQ7κ,Tg:9,iJwwqH54ӡA`tLrfb#=wNJwaD _,28 ְO "O32opV\NOv^c@x9OdX}œ'ڵ'Co|oĻ|_2 YFpЃKh Β>΢ -ʯ=C@&z0,*"19*8LL  \',]J-(" r yQFwѥ%`(Xr?+lBZBP`I Al@0 (~Gӈ1PM,Q`>$ѥ=CI҂8A4<l4KAUT?Ζ?]`Ъ vLAt(؇BS>H_)D!jA #YVQ"zPeE#PF‚5G10*2!rD*1/b ÂF'ByBxm?$b^4BHƜ|;i@c` Ft f=]5*c䘇:yȒC=&l\rcId`kdAI7 DTn9~Mk{ԳZe!W AF˺ACW)%B!d ҕd iҗM̡(jW:r*ȌP##v1JR$CpR=ށJQ^6@) ej&;MEj$IHO$SA Umr| ߒ =r~2e69 Ss@jrD$GQ*~5 9ED T[4!KBVC@ B`!6B!E.B$@(@ +֤Um[{ˬc5\` :Q1f7#Laxp =ˡs0+h2$C'g 1ƈr՜T5iODQc8žKٮk]D ^AܲWDa֍a8d@D@b3Q'JT7=D`mF2N0%ϩv)0U#:Z١UF㩪 Zq?+zBq˿% 2 A9QY ncqD ʣ#ѐX8Cge_yup7Xx˛θYAH)VgYŜV&X"f% jc'1ql1E cR:[btP"dFiHC >{5&! qo ]* h8AZʷWj}ڤHTnEJ|6ynI b.t%uIxGG DAQԼI PC48&d'h* )0&2r}Du=o7 Vn])[GV66E4}?LSQUIHޒ Agy[ȒAWM!c^RE-*y%<Je,*}A"q.t15}+lvdKF6&+e@>JQӳA;ŀ6Ԝ܈!Lk~o6w\ *@BENmĸC&V`<^6çhWnV`ໜ >h hI` Jh^-4cDzc2EJ 8A:F#Dtp{JEd&lbjI$$ÐP x@a LŖNN /1 B,k26dC68ư'}mL:\s8 \F+1fʦ<^T@Tӆ-;n^*kƣTfSx :̖`,Ћq ?C@`Fq@B*-Po.k(1H(hv .,Badav.(e0QZ>xij ⱪѕfTgjk 2Z &l `39&tKfL5j!% -O$G\.Q؎dFil9m8,8N;,h3~oRTզiƬ}*:ʰ+>H "q33*SBB !RU.%#H`1Ө!_n`j 8]܊@Q r3i ## 8*CUl"iP}Z1;#:%4ƌԴuIHhZ 4^ = t]kI?]BK1VMt>l8}D% Q=b;3Vm3x`3HESqN7]r<.J5btmImvdTL(tptKG$HzN t\,8avI}&dNDxm0^KRsoe P i>pm,f/VlYe9SPRS3V(EAy/3~SIs!(dpu?"r"QCT\̯b)n(bL.+<<@79k&k>0;k2 ( :.h:ZI,5LV5@  Xԡ@egIS؎O?Rf͖l0e@@1veT6C1=\>`Tf}4/ƣQmP-N&g{6Z(DK``6xn@ dgW UxerSHQ!!`7 p (" \j\J"bI"D^7)Ir"d_c)/0D: 3d0 @iDw#M^"Zw 4f @ܞt[Y fW[s\{tgeDVKw!3rͤˋ'1 f~ v"dIBO>+0sϱ+GWVM rh!02Xs_`4CJ/ 6rw[ d*1jr/6d޶mcYBwZqc8FHMXI.{$j&=j`gy{Kv Q{ȐvlVV˰KC";<T7_ h ~ 3dǦctOҐzk`V6hvZ " g_LgO 츲 \*XķkzzKciQ͛Z}R.ǔnw@lOz D"w4d(CN >SX: btutuoK41y4j$|1_.3\ 2jerսum}6 ^Cd6歛 w-we9$"Z8nY\\۵]1浌{[nf/]{@A5J5k8iC+PV,cZWr['ċ֠&̛;gn#Mhc-xO>VۧW_%*<tRoLO"<-F F+jD,̢gP`d^`HMjz@$i$Io(ї_7_bq2Ye`6Fci&v?[wgx{UG_:pPca<2F9 E'x CCME IbUFF(F>i7M֤*NB_6GW]!URP!UpDYp4 -t UQ-tA JYJV땂.夒`5_ Nr}:H'AP_}U|izF]AK$ /SpMm0^11k 鰆 qF=לtu+9xa@<'x?#^yBmJ9}~mY + $FqB+jFNZ-" rWa:TS.$cCXdFŒ^-eWiZz[ZyoQ&*IDPRE'o=HYe9(U$ߟۑr $*F+ 6!E2C4ʟav؛(JMM8 TOTp-m%-"JFKTeYDuo``.*dEcId`$65ы2 4rnit^!al XbdsCM %Cܰ* dю 2/$f{tjV3ٌ:6YuS.N`nDG`C2K0'mkx4LfliD"%Dmr;K5,F d!wC$֖@""6j$q;C7)eZy4S:w8O1U.Y]$nsPtR6@0H! >[C2Rv& ]I)q ӦP#1~º0sE&4I_zWJZҚT+ @5KNht|px`sUmR?!Nϕ+U%i5]@PbB+,l IĉMl.b;ָ f1f aAb9[sWlZY[3@btN؜0GhԎt F£(S:ϑ{D6MFH]T`e (!g%T6̈A [춡 ɭͲ" 1T%+SJ|[vv \ KiA\QMD$,7+\7Gڂ+ط#D'{qe_:O:<5$. '܀߀dIF13`%>-ƩH 5iɅ:@ZH=ٓѺÎZS!JpCTM˽aRvc-[)hUktȝ\1{Yx'`S,HbjALTzv$`2o)s ٥%m"NB+z5㖳r̾ҕ4K-fb6}'Z#2x3bV{[fNUkVvUVng 0wpg3`E@ڱ3EW3FyWfdEe41Gw#͒xf8rTyY;,I6)Rsz5GM54ۅG("^5F8k,l%LJKCfd#C;fM64҆(/'nе#^i72bj=ʄi '),Gq!bGA?+&7!Tq2R/&A3f(68|cDa(c"&t;a(8avfĴ%ĖiKK6EC%*KCP@xSdUQvbV^2v1v[Z w\8gad(wwj53hρrE>QFahpd{*=H+E*Axp7]A(uIli6җ(VAiM؄]nxh!yZ|U8L"Eb5|DWt 5=t3#_@"ZJPۙ?+411dڐXR lbi4?wG4&|Κ%?wK'.\:|[B?|z2ڠf fU?0 ,q!#B8UGx70O,r)C*JDY%RrrƔ˅pZT`wsV43 u4)qR25B'Nrmr=M\MTjg/+^Ɠ"@;)+R PFf{UGk'D#Y{F(C6 V;%ú45\B4S*3o]So .ߣBQ> ҹj".x %!* 9clQXZ(ؑ [?9v"\tvҭDZǂ||\hGf[GfW{4SLF ԰7ɼJ>N"%C GR!OXA kVk8ˣww^x7W3s3+v5 P$|[-5!bIs#U^1.zLixj7)b.vz5E{UxaqFrHh1\||E#4|;{;a뙴4c}j'tB%t^t:qpzu[Eq5 `8 0YW8g_%;mǬ]':9ڡ\ksG0 ʮJCKjk ,ʣA ,S5A rOPDŽCˣ0 1"+>a+|fde vQ[VdX,wkŅf53"F43E= /wlۛb3 )ڴ2"!RM΃Y9Yi)ݏϜ!343Ep4p8r kЄ0,h=rX8\bd;m!]B%4H ~)#.jo_qS#baBAIWa\!pa *:Iz/uWKUw4s9;&ΚE'tF.#/îʮp8s^M OeR/AD,I؆d{ 0Od^L1CivgUwZ6SgPIMBZ3w X=lێ."anŶ5M4]:2@VXQ,Hu7`~=pH4q3AxMmFjoh1h+G^M >L뒜|o N0NjA)rXB5*R!D<~tW^̥TST0$6K%,4|Љ 4t>EMiJn6adc S{m-cCD͒5Lǰܰg1`)d&ٻaff-S2*ZyEa+QyڅF]$3W&A$)cF&&&dcnнmCMΣ h}nZFh3N4'>C q(Ú/4|º~.1h";MpÆ.#r*o D$!zUpB&P*hML<%n8Nf/% @#v V4m$}u$ˁɅXZ`FNbvK 0* 8qBNk "D -jq#("cǚ= A:0EDz TO-Z|iOIgQ*ӤNDu? 0ٳR=Z7oSǤ!Y 8[,c";&"r 3l<)äTt"}9/C&][V 8(F-bA*ո͕I`$оvϵJ࿛7_;i޷+70㨂e6F&č׌8!rC8ԫ*L$#1i:4IV?͒Aeg[\|焔JTgZiG9/BNth(*#!IH,S *H2I4l+))F1 143ͻ K6,3N6+-h;9ye9^04+R]C!~"Nf +b<%<4biїXe^)`N`(ҵޔ1RCeR֭fKZfq Np/Rsڏ7[#s84q1 u&1e,"]6E94?,ap(Lg8`I!Ƥ"2)>KOv&B ZPЊhEp-fDYX-gCe@KQ /p"˓m  YHH9-bEEfY;ր3LSѢq Ϥ Qdh##6H["C%FMd۸$1ɏtۗ)%p٫ 3\S R\/hᒰ2LgJd]-A ^p\$<+tTBˈH<ܕn;m/D*a--d(dIDݪrⵝ1m[bZ+(d2f#dyq@V*0 BGbذi-Y^wHqPGI @+@5 IEi kZ/W*vTI۟ =b`_G}mSP'(ғ#!XR[_x{'JC;pӹ3ڼÙ!J 0B919f,ӑ,!jBiA8BX#I.8k:k65Q3h 038( 8:&lBBH;b4^:%;R$;ټb2b<+bI=<%+V<ThVy0˵II7@2Q I"ΈqQi'wڽs0pxsR(Ƹ X(0 8yc?Ѩ{3!1aƅ} ꈸjԘdđ*8( -@k&{ )s}yiyX‰)YDG;葯+!n+dY#5)97kkAz*<( !IL{;[.@!WûDɉ40WqJBC@p @9݊0X=܈ѡRAW!hYC } ں 9ѻk5S"-]ʼyX#u#pER șܫO i6#L!/V<l'-) mi PH jO I8+/j*#Lb=|.9! i7ɧP%3+ Sy[%̊bp&>WYVq͓ @%`"Qb500Ȉ!-5P N) '5ex 8xKQE-`b2\uL L%iB/yǘ&S;tuI"|7S%My!>b$ԏ? (TTp4 (ܿEM堎Q ͺʸr,Cl ص4pO:+C: ډIXPA쫱Yor7ֿ r#$;|P Ղ(h(Pœ*_ x(_Hp@hVёL8eԊ߈~FzF n M ⽽("c ]p+*  "RE[V8*B-)_<2CY=kƅYɌ&hPqV} m-PS eW|ByPCH^? <P3ؤ8h41QHȔl_?XʛQQ0A"=` G f9ug(`v5&sоa )`BEDsl %Rbb<8LC_-HtO&@E`@OOP&upO8- I'`rg0hRJ0mw_swnR SD"k1Pux3F[uL_<JѸ¾S `B=z֜gb,hbp'}d7p cjBB_ ޓ d?vDIEX-h ߡMqy.jwAr!3jd道<[ Wiy@I P)Yl(Y`>z;J˚;PcC^rF3 z1E!5@ 8qZlq[X6`"EE8p[fӦ:E qo 5=?Wf@@0TK +8,_\-#^^€au&?#=vwtҤuXaTI;iBP=zgٮ`닦E_;V#ZĂE?w`#~=9޿'x ZǾ _l9N@7_AEdFjlEBU!a#PQȟ0`y!@"^xqfh8Ѓ%#-xCpƀQ g,ɐ ZxCAh?pyƖZlq`6dH72D'@aA BZ eXPa$07-݅W$ФN;`?0 :;Oda? pjlWC"Dr_j--\@ .#ѲL7B5q/A!X+Qe Cr=Qe:hZi&ZhuFPVnhfnp}U-u8@v ܰ3lMǝyYL}"{}3!0xh=hU,#qHЊ0c!xA77#D)Bы$B#rL$ "3wJU) Ґ)<8RhBd;UTC8 `:W]Y<O~ ˜8YgZ/^vkF`+Ȧ #x2i W !  lc.Ɲ쓗?"s~uv L:ˑN®<* C)(]ǃ9Dz1yB=lxczf FІzB-i"At 4 bvJ)6$IWdH'JUuI!0PGG @ 6G1EKdg@0ɋU5kr)\AP X^P*X%UJĞ)~HAWf \ 4 Mi^sSPZn pKa5%N|ӛ6 sKC]z٫@=3W~L > !dXEvR4E9'`CT#(C:Y,TH(AIiʲbQĖȧCsԬK/Nd:XF1m70ZM9T?yk\H&n$iЀ3#Zld4ǽiK;V  Hf!{P`B)TS08╞UgiJS#VmK8ݦ4w mVZG@N7:9(gS~!xJ]ltgB9O{!Ѐ \6xb;6{{ Z O>-nS"A"ij~!!R:HẠ4aGqP$٭ӫF Vpg?lX 8HкU"qdeɕ$Gv`t:ZYhI]H-rF*pY3sGA8@}'BkL+MX.&4in,+OOFsZGiOuWڏuڽ@L~(ЇBe EaBXT|9Pŀ5LQyDqP_P@ #$:bP@"b"_ƴ_{[ =߾˱UɠHىPLD8y)[ SBM؀Ii%jA<%z V]m __ PHYbdpM!-0MHVLU( e(-qE +tEpť¥JlMT,'LE"E=4V$}Z@|q?UKdohFvK8HšPyP{1{)@{aer mz{] &J !"G]"#R!?@"]N"$B%Vq^_t{䞸 |IM#"I BMeQ)ZT!Mx _.MeL{Nfa|4Z ]BZ[I1` ?a`O$q0.Еd@]U\`rA?|'0b,Vz@jRjQ!@ʧaM4U|M bAwAf@^X9)w*MaEm`F灗%G2L~pGQ{%Y׷MTZQiQ%#e l)z#%!G&dF_" VXCԛK_"er2GMD,A0I՜\ѲlC꣜>z||'r̂'0 b5Wx"NBYUFPВnYEMH"W$)@P҃vS8bwS@`@SoG^mӽnEWwz^DXa&ۏ旔*@&,"MUB B\\v)^r)D#^V&~*YEAMALfH߾AH̔ADT+~TÝy&APR=IФ%@ɒ0٠`IA=fLHi@9FM˝H̜USbx dhKY d4 BAd{Yj`?֪,>ԝgUtUGW-TPv~7e$&&?Tlr2|^kmn̏o,iellˢ2a쥦Yqit-]n%!A Ob%-[rqٺbI-f[Q)"P;DMjDS&)b9r`eCP=\a*]Zt `J D"P<,M! bxJ@YC ڧj:k(q,ind!+0~Nֺ@nN@!(F քHH!ф<c tKvOSgoNG5i,U"GQ^XƓ$[Tj^ʪ޵A0lDiZK0u\J"%^e # e$ i%aJ %j *ɒ@II&b@IL4eS+ZY;PlmX%oQR@22ođUEkQ m5P6q4R?L GpBbp„.A U %C(vT 'AR(P (IWDR.蔝Fb+/Ci+;` z2|X8Wk(#DڱkNsT,rKʓ9㡐X?Lj!0.PfLmkP#SyU|[ 纪Po`i0mȉ.Z{0QaW15^R^h iQ2(c_0Z? 2$&xEY:g1*[ r|4b"f$zƪiw8vL67qxqx3R ikGYvVFVa!wVXR>kwQ[,VR0-& 7B|{~778e st7)EnGײ؅oa2MIV02t/5̓ȁ}HP/A !Em%F8U{HؐyHwzZ{ˈ3H?|TR7 pSxa('!l)BHlKOTh@k\[IUEHh@]:@K5phx"z _7![!P0"/E 1aDAm P ("&Dl2-be4ci65, \qYaI4-O5TAV|6\R?@&c (U{[2PJQnx 6#yo?F"C# @0"QE=ʑ+[t)].Ds4'IOQ'- ?R&؝IMv;dL贉4zjW L= Ft)Td!!)ߤ ?1RH{{ &%FZM߬TZ.kc 1\PE A̐@& O9 $ԣHh+kрQ3 Dx >xV;H3!Y0U2#tdm7Y@ucD4t[(s2Vˢ_jW+v9m^nE֍%HDҀ"tzsL`p~iM xbGe w[J&Q4%S'":d ԓO!C$j!^0h+P15d!&s;@V$Z>@+*\qg#G @!UZMfg[gq)HAe +"ƈbl#䇡$J&bïbe8`Xb8dE\(bF+4E+d@dbT@8*$R}T hR`"3|gNj*( P]*]x_`0H0z_̇­|&"fd-$5d*&j~yN H.49hh8A]# !#9(ffF njn,&hFTH=r/ &kxf˓#=چ=&ʣ=OA'KdEv1oTfIG|EDLPgNwKs)uK+wDvLdvK 'N 0*"CNVlTX)g7m8bЊh037. n# irz(x#'wrV~ f|4hR N4f2ca mЅ\ A(6_BȒ(,-.#o`ҴbM5caa`&f8b0B1]C62H13*B`3hd*2aJHC9 VBP(P3iY3=& wek>D+D)=F85IrWQo~WwdmF&gd( L=;ݑb(Ԧ=tDDǏt(du㓬a_;ͱ;|ws;GU K bgڜlGxS IՔtxB2U t,_788nΛ 3C+VҳE&.E58L O39*LVR)HT:H((YQOp2Yjcd0d?1Ւ|o'1i晟8&HY0{.#cխ(xm؊xX͊(%36FTbNdJcǨ A]ȢL& & :=_YL7X/{CrVgIziIM:~˱KZLݓuwjMb lh!O*lA? #JbE hԂQhb3?HQ J&4?> C$j?h$#&0≐@" TO/Ƙ@XPc6֘ELY$ZG c6ddC5_CQ4DA @AB-? tYA PmĥaP &A ,[R( &Aq6*A'LETdELEadd8D ^S*SjI&Id!+'B ?Py+\~EuaI5?Ae+kS8v!lř}6YE%\egf[fPAPYM.X5Hel~Ѧ[y=[x١Ѭya^r+©pKL]gx)$MUF|H4Sq{I; @`Er:Ai0U6'b, 2g?@o=8&Air& UB8 a CbTI4l&RÈuxr$=%u2NM qߖi^fH7]ꗔ%4K:Qusfw/>i"#?Poz:"mUo^x kIbGϞIspxXŰA*8r Eҗc  >E !˘_ g ž"7@&a˹ ,F4Lwñaը ݐ9!9u34\x3^x8dsiъ@7 [5 9kXϪڝLnd9ԙbڿHm-ť\ךmS迄;.nQ6o";du;B JS-{'_iwh)Jz˟ I¦V߿z[X0\TЛaMaJ\,h%j١Jx@ˁf]#D!aX!WvB2frĀ1R r.Bd>0tYCxvND=с2z}-QV;fVDm1SAgQWexf$u @!v5 BA~5Rh}Z =r#3%Yxx|jjDcJ(r;Lz#:i%6KulhRK9x\lw:bL\(q&cJ$LU;'c*64I5%}! UP_r5ER}_W؇;VjGQQO 2 pj,Xp!FRkqQQqY0xQrH,"%0c8c*tBF3VKsqCM1S1KCRESMt!RR$`2a \2afUu\3kf́-iMHL1LX6%thShƱh 9LAxZ(Y#e9Bj˳0yjCr7ntkL\hmU`KQ{g;i((%L{S'7vr%S<6p^|sHS_ _!f5bSۘe6a+j >"7 N5 O ,F^Q.tq?Wp"a(F0᎛ (R"wB5cBcBt(A0< IFHFY!SCG1ݸXYFD%x`Bq2@-T%]egS) SF.rQs45AGQheShS5}P#NSE"j, ZOYOO"%d]s\G'd\5\ehmr`g[8Z(Ķ&aK9<{t]<})Y$Q$An֣!_Lag!i!ӇHEQw\.P]q7.Fq QAB-Uhza*%)pQQz>0$ csr⸪ia?rCX9Tsadd#Xu`Nz u ] !VQ$U=ubVQs>vguFLWgSwu h5Wӡ!"*3R#Ijhx#0Mٔ7Z6j/j[z8j{dfgz zk&Ul9(x98/]s%T*4"FrNF_jpuZ0 @zRԧ>"NYbi,PFOzE!G?W% IrH!PAꎏGc/G1F/)P"s KTd):6搾D hfwh\&ˁUsuZUSt 3w"=-tds}FFEg:bVh5("Zg#NR**OiA{\j1>")z%EfIKDl" ͙{++Klm&K5p2Lm%3"=96fjLaW{hauER["6Cg$^ŻTLOso *\aFbjQcGI()3FF$RAt1rcԸGTBhqCٲ,6{q|C1U>ےluEdf=oCZbXESDRԻ7CDHP'dWFKzgTwQz{P Ss"r!$jx32ˣ|x<6n/ILL1 RAEqWbza za. @;!QUAaA1aQ0=cJJhd.B76)vJE8j8ReiSZ5C!sBƓ0H--uUE*qnpF3IfװΡS3˝َ]n6r^͔-EDZ[r⣠ݕ&ڧ}{K' KݿŤk3rk楯e; bj*u#NT̗ڳ[-b.xgjŭAm47I$*Z@x 孬B#Mɶ%ŘPN,6 Az*/*bhཱxr˪hId@}lu\0 bQB`lEWuI!&d\IɑEA86#V AvFD>JsFJ{{AM؆FNx$n32ǰ1xihEK[%zH&{s^̲gɿFlh{ۯT$^S7f^Qu%',p2 hRK-.ɒ'gmgqa2^ ҅d9N xb'Brbמn6$خ-)@L0%87UTaDJ%+tUݪ2/C_kOIyWm-L!!*˄M!$].ņ {̣ ;dx$&&fdT'+4߆? @B`‚ [jAaBB%V@_ Q(@#Ppr?-X(-WLPӋ5;sfZt֬-D+VSNwK%zPd# A~&4P | U!TPQWkqS3\˗/í->B !7SRnn*x&"q @ ~$ `.= o{\غU89**3@BUiPegk3\ɲT@ =T>,{ 1DGC= l)E],`N*`rGG$%II%rIR ,q3a,K/c - @\H@ A:R0O@7h*z(C5(#͂\(HHB,)\'v"(rĐ*qd)G+PD+ypü*J XQ,X/C@ʃ+=쪵/O@ÖZ&k!j,Cгϐ/V5ޤ/vM2-2B0/ ƃ`94;nzFO=LmNaB*Ê7tv 7$pG DL!>befJsWCLF@ʆwI|nj#lst^("ISJlXIn$ʯdsK/ B=ͬSM=ts;uN;#2-\LEu!oI[𓊼2"2T`Z -SGj)㛚)[U E%cYUzY3v#l C\[#,]8+/4LÀ{1̀i ka|Ml$(̅> ČSq9h2>cps],ky@?u?Ye#`f i˲&lhqZ:3 P Rܳ4*6M>q5z@Z?b3#c5fmJt#-Cqܨ JMG$QI S"M$&8UNPS5Id wSԥ@r"'2" ҢTGFi#4%$ԕp&[HKJ+ ,&>e AڈţO[v-']D%8(+)T8ҲARa!%I(Z8Qs&'=mLr2_ 2-Ohr2wɼ9?.Uj&Hm@$- ngb&54?E*뵧zU6a% ( Vn.VzJf*# W4ZD@/{Y t0  pa-Dߪ]V Mc0|@5VSU6MdC^ۉFY8aEa.  HsP?;DX3j*F,q6)vr*QYA#$(H($(M prG(ɮ̥IyO&d0)2(dϮl,iiIIIґF&, a"Ҫb@N5V{M^M=mJDR3W+8=U=|Uk+Ru k(:xDDxg#ը3 `{P6Ry{=qp '1a) 0Ϩxo \Pv@;!ZPe. -dG d_R3KufPF`8#S5U[3By9[Cz. aRۤI@M%)Xӳ:1,$A )ӢA x4 Ba( nN-h&ٌi KZ *)t1½jB 63e/= e'(tP 30*LTxk7`5c !փ)p !{z>ickvA1k?qh<@),?AF=c0G,qDF+9i37.K2a:9D1t,`(`XK+Aq+% P| +YB&;CIpL."EȋY,i/ Xƫ{sHk!['V6X? Yꮨtʨ\ 1/ 7 b D{#!K80鯡RiҏYܡ آ x- /9k|򌴑 Z2bknƦmZ[,DAlABIJdHBPHHZZYxT"*L$TqۺaHi@N-•@POU== \_}}ͥ\(æ\U• ykFڑ`tj`Cpee֬?ya }aÎJ {D'9Xtr+8˝ P0w3!l$ xW|EY 1;l \|87L &ڰS#8@oMm3U=IzU- [HQF NzJN%εT0ڿU=c B#94Pi"aĝc2n86]˕c5\<^ 9 E\ d-ECҦ'BzÀKj)^#=yXAX¸иQ>~^1QΘ1ME_/(Siʋu {BRUKr)ŕEEgԚh" 7%F3ũ]dKr `4̠SSn,Aǂh,,a[0G@ٓOL*%TMQ,.ْTE>ZC>81'㛸5 2 UXw\ {18Ӑֵ.6zרW]^6<ߐdy*˿ l8=bDK)/m0M$#UfCf>S QD'^hm}LApCޤ @g<Ӧ%P{ ,F1aUnF6' %8h~4)o0L^S:>,)S d -u5\=pUpe'P̀?%8a/{ Yqv J lñ8m6G>x酋U'$ Qۧ^k ĸ*,ES\!+ר#%f+R s_(RΓ)mL˾PVL_lsZ&4u6k?m}V;=tFP݌&0A<ICt^aN[@[1ԥǮK N*NHW3 Y"xc=ӎKc_%`G=v1pa{?TV0 c'g0A O_?)fbg4f-WM5_[Y"G""-j⌞8c9*cc ?0$K PJ=*EUёUF)@HDAB4DF!$N"DW^Ԧ#ydQcuuQ[fEEV@U4a^WXcaX^aUZ`UYvYU65E pGFVEuxvhHgAflFmgӛEs&qRWtl'֡ ]uۖg.w6=z؉gi Ȁc$*`r)JohӅiW_ Vކ]bc-򺢋  #1>JEDISdKR,ӖD :h`P:PiɦJisKvnQHNyq\$VEz_NGEEe:;Wt@:|ޚ)VVV_u;nխBKj`~ު%kgѭ)%bYZe4^tmnTrͶ+:6[o{&}ʉ;tv=76ez>w۾jgzڹ-| >pX GCN6&<2 0r&=x,]UEP8B$#M)d#JE4HIjI;Jd2d'\A LYS4⶝D'lE|rL*" PE-HXn/< Zc0dSR*\,2˭NN.#t hE;Mޅ*@0H^`Bc1K6Y(Gx+469q7u{ oǽp [j((H|ϱLyh6/~ޣAk"BtP$6 QVӠ.j`M.8AIey&A)ш+Qb`QM=tĤ)UdFD<#STP\@ঽM#%70MQۤbI}.6EЊ0LУ0e)Y*,ۜ 5Getd1Lt^iVT^$T]cNdƠI (wij2$ȗ4˴xr[#WL^4j,SՄlOxžyn[!V7@r 9eI}N虒q&Z8`IP9aTzƢgquhY"2ZT%vҲ,JIIGbN=ߓ^DQh}E<$O$Ո԰gLc1!#l~Aӂ\K."?BNRڲGbW U[WC|jIօ2=?՚ƒP,h&`Fm:- 8-u9|m-=Y!V;N֗r>[𗚁ΨmWY*Rg;w>pB [1z*R1Y,g'*rk&&ǐut+<x\9ل7&{) .)Fg1!}"PqyMxcإOti( u $A&{O"zE1&$-kjjFDűV5VlYV.# ˒:UU ժ" ֢l|;7ږv[*^كT "*YDU'z3ɣ @+{4֓XoS{cwrdưחlΖ,*`b-w' S {ay;Hm,b @`ׁڧY 9Tv-H! ڭ۩N5 DWܔĞIT DWJhq4PF9_pӟ@ ,С! "W_\P2lLu]c6VTT! 4EEѭYN`ɠ]XXDAƗmAePEBX@aaa!]a`]ᆱ N|a|EEcxkEcl雳!E8uEHjɵ T^'!Ujn(83O̹}G `s5 ݇!FE,EdLPɌȄrax  UcЧ)Ώxڏd!MT͐ ba`) ԰: iM,c eP?RdZHmVDX XEM@!O\_N衅Ta!aY̡٤PFgcd뵘PƞA^*߭ȤR`1`i-[M}jY^(apn4%T~Oz LX>zhFpj\Feu]ҍ Lb raH FC:u] 8c@f|bbDe fו0i5EShcݍuDpEҎUNBꍳ1!pFdBlѧ&Zx#iE~nzjd^,} WEYe'[Ld`& JJ0\O!'!R'ʱgd.%5O(%"R{D ̕%ܣĖ+OlK-hͥeb5Ai1^ТSV{HoA46N>TcFHfcRI>Zf#^Q) J>*Y ]PJfCF@~rZAKRmUEvEtqƂ,WdD)g%ޥdw"֧|&NE eGFZjM`_i\q$m(1e-ȆM+VxL(9 @ɜLhm}-(H]@иaH_`(F`&BtaR#Mb& R > efS\f.i+ &VTD T%$CF$]fZ<U9Έu!}^,UԅE氘Ř싙FH,ġxꅲ^[w bG0%Orhr J`)e\AK`q"zMh{\P(X\|+5lm )-9MX [LHDRc f̑^nP4& REɑMT +S}ĒQEimR)%5,A EžPE^|덎kݡTUXv"uCWXJU $\WQJK%v<}\S:6*F_O %$aih%ybXʙi0Ó~9$bĐ$ e0N*~iL4dvivuН~A)K,1"ET=o<>pdqAfFQg@B&VXJ$[JU8 Hw$H_΋z/Oe9^*" E|X)t N~",uJiKZYRkQ(771ROvpÔZm:k35gݝԳLqg{cܰNo{b=Sn4[Ic=4dF#X0vn%Zl 6JЬil* ׬J QK,s W!Fx}Rj& mUdCTj׾PuW҆&k~sӛ(7ճHnEL<@<(O PxA D|0^DG Bǒ{8 ¿ $+<`̓D;=TgÃ?u ؠsCΦC2ڔOW4u8q}-5*x㿇 `ȃ1F<$Ws_kYn0 (^  '+@{7@'6ڴi#](y2oFoǑ4rϡGoPZ]"0} `ػ[+$} ƛ {` @AUhPRh0B' PÃ4d?`C IpBRH#2Ƞ= P"豣9)ȕDRI$RJVZ%dIdB *BJwŠ˪~z*L* kĒ 4j(H.7iºk+:m5P>k"2*Z-QJ/L+-3L@SgD LL]1RՓ,WHK˹2JX(@;H욓FvsK>>N9s˽>qхѼ =$`A1RazD1BP 3 ?DV8XDh{D>/z`UlѨUQ%i#$m >kBIb"&$]jI'B J) Kf3sL2M6Քk;/0=81/ [QS=`0uk2c԰]-m3mP( l5(ZsVY <2YT׼NNwM\49-Y4z9o /?ô=o\'sv{;c(xo^ym-B+| '|^`KLa^#CEH"hɏL&Jǔo*Ilz韄|'\2&g>+в&*i:Y>iV`zrg+jFT*c)7pͩ*؅FRf8onrs*2q[lliqK29ce8u# eG-Znt1nw3 %`Yk>ڝ5 oAP?TpB!@*t~2y XBȐ+&$\dA1[ ɅHG?ڈ< /%({IPII+IQ|XEG "Ee9Ê^e&,`qPwQ(H0y{fKʋ }sp{SFyo`%U[6 S qߌM32#,Fk+,r@JnX,[P9P~%LJ餖D0_L%& IQ0鲗C+d&.^WtplY(B,臮pF1i 7NTFrrM Nf!^>CMFR)\e]*i s6:,;ņ>r{z$T7b3fkNyC'3 .m^_~]RJw!V ^ȑګ)OG1X@h.@X%$4^ ^4B=;%p2ilAHM g)AG̣rCˆRC^Lꯞޅ t<=L;lHRد~'1zDRK$[ T`* Ϣc%N_].21rւRg'^ 4FwFf۠ uݡ͸VD nl X)s6 \e9aN˞pN>ykۥnC\AuЉҀ n)#bGz0חv"I4׈vn_M'aH%.8&#Epk M2ShXz֭WÙ kR9r#53Ȝ"C4*knfݖH5`UfkBSX+rcȞ / REj|Yh<*%:Gj|k<#=䣣>%"I`, E HC)Ѳ ##|$"k A&TedڐePFfZeªNTM.)d؏JKf~M(EB"ĸҮ(>l070UM8@%ډ6.lhe6H2(knXÈ"o-5 %cbvk0:\8 C-C9c pp<\aE.z yx")$y>nC`Da~oCZa,d$f~d}F4M[綂djdoԆd\0+vf#'ʢXDµj/vmnĠN86(ά0blOEc4,#1z)DU8FK7+qK+O91tC(cY̌si\÷  pbP㰩^y|& $I({LN{-zdiea0/I%NIТ'G^d"2 (+vF:2qÈ0':\E!dQ218˄LcmZ.C0^rxch|b+L'jFt#Ep~C#%W0z)E/Mq(< ;٣v\$b< 0AѤРGy/.mJ&fdaZ t@3-Hf,sRd/DO֬6(!%)͌DA(H(W&pE$,Flj8B%elWl ""cD$s%/ٜ8C.t1QXS:((DWT;*\u0(\`+qX&>fAjr ȧV, AtR `$oC`Ȑdtu}0ZASh"Go1,dTMOfDCH!3ȵL|YNAh-W/'I_R&aHb.@,C@86jIr` *9.8#zJ'SsG*ٚ# P>Gk uϋѠ-dBaO0QaZ{Xe&֚1n} 2N'lvC%@ ˜7X)Y6a`j=ĭ qd3beH &GO*TލgYTD+r,BBE+Z-O:T9:X6[Cz+>eh K+b A yD4.zD/2 oO/Tվ,d?uaD$bΰQ d\B*6cp+85S  h*lsJ'l7!V®!:9\\ C"PP>IceFY8LBbɈdq! d/Z|:#+(tv9 lӄ[b(n]؞Q| u"ДH}N F,rXJ>ԲG=r_ |OaP@ '13w"BS0Wƕg'db$,N-ժ3L6.:Z :LgU_i-09*4QOlei/CN9)@|U76F\,"#k|av8c-jd4̊sr%}L#n;#,Xn;"_5"=)!$_ho>K %)Bs?w %W@a7x-b *PJ2IBi&b) j*,uFQ4*:|kÊ#jx Qf LwElTDc7S3j8F,&ji{o%ИXkjI1;eć̬sz%<cewLXY<йH*Mh %/._4`K*_G{rj座K/i:+.Cs0FJ%&t &N8t}TKXftcsxb{G8<(LY֠T` /EA!#@ U7 [ZbY2b#R"@,_>&#K49)|G2 ZIlVu幪WD@ zE";M9P{<GN%I/y 1=NYiqGٔ}QQ[Ԇd%4R-~ _ɕ stM:T}9D∷<@ $E$6+2 0P …&h!A x1FK xdFB"$E&1^K;u@+଀(>qE &ӭZ gT@ UѲJ6ܹtɒզ޽z k DC恋1MloĊ_& />T:4ዄ$o?69a4gfwtIzP>C l/8/=<޹ool{/MI%UV fI\0D hZbk}DJgQdSyF)N5-UAE>$N%UaMQĀHXPYXWlTZ[g(\mW[w)Y׏e|!&a!_9{D6ib$MA rDjwpPEݙYJv\MKő&hefDA'atVMq~IbMyA*?ٚ-1PS+~m:=O> Bp!ڑ~z4AH%DЂL:X:})P nT:I%cF1.52b8NiYl!I$R[DגDdn^9`*&fI^)_^~)w\z*xrk1ܢ~t5A%^^tM2< +1mf+Og'uLXHd5P\c&ezWb{w1j,wt'o }&=WYf, 9zi"e-9H ?5nhӈRV425V)Hu؎O#m%,@ådsy|ؔ;!W?Xyr#wy?FGMm4F~xr2_`aI'g\ldla?yS"OJb?X+/|ӛ}"l[J`(?JVC7fd?;η A!D[KQҮ+#-U8;zQvʌ庀eG3J‚$.h FQ(Ulwb`'1_RY=]jd(H(3 arHC5Af+.@aRfx cD04!5E%T_ 'J/`"EK 37oo!}%&Ge|Ӑ,YBR"Kp?ʽZ.()+ڊT"#W 0nؑ ,\$G)y(F'(EjyĘ4?ԡT*bl2TEL,R:ԣQP9TcT^|)_G֋|y_ɪYVF"EPרծP+Wדz⫳)aL4CIKqurLWS.ז`6F}@/YU1N@Hĥ$=47YE` (/xQDuj}h_aWqr .'e;Tps!]-ϥw ^/OybCm{ w}w x.+x n Kx/ kx? x$.Ox,n_ x4ox< yD.$+yLv0{v # =1+ `?J/ebȓ1F 'SHr,Q3_Jhelh&&>l22rm6|2M y/s?M_xyO;ဋhiU?@5 zq;<Ĝ:_]^yu12Wc搶MoocD/g/gsΞ6Un`ދ9Lf/N3^_kJ9f{CS mo{ϫvc5t`#0mcDS-_Dfy> M/+͉.sCLj69 q]xu>D}ۤ`x94:1y8RyM6yYnclovwي7Q]뎿ă Oy|eO|C:z}.} fQ;F`xbvr4 ONK;}s,@12)#ڏ"FoOḳևmkepi(@ wm1'7%syyg{6o{qwyWlhf0e0w6R}|rf"qzG7n1ׂ%g&48gfv#n0e `l@fmFlv^MW/^&pV{ovyV&mBwj0.WjwPXFsɇ{(j0s$oiz@gG8L'G~vhS&mo:ǀ+҆8nvsfLx7v~[(zE(ths~l8(;X}QjU|TF~&vSps|Xn"(fWvI!vm'7fw*n(mmFgyekvyXnYmU6wC7m\r vq )w (p8sfPjbgg0wxQj (yrqf{zvn2jfSi%x^ꥏugqV^fXlXƦ~ƔQk_86Q=鏊mPQk7Ǘmkbxw&wזE8y-w6A}zox2fyI|VjP yn-qxfm쐗yh((}Hknhlo)|1y[gPhIwƋ6QFe}t/ gy H @҉bʉi1ٝB9`W ≞yd6 ^(i,!,' xRU5&.gIQ3T9D&3XBK(-/G5A7 J:J3 <)606E18WVƭA kOW =ܬfEH^DNV>GG!wT\ڸ:qOU_CI:0:@/8lKO͵hYaFPș|qtHҩh^yQNXL6@ʞtLP~TUfGLY[iLT pNNra:-9P59؇WdXT7>OD'$N9G{bX\YQ>J~F*sYΨV?Oec0`_e?kBVYb]]=BEjYp` mXvcXSg^VڈdȁeʇfΑuIHo_ROnJ|\`鼤w]F3=RHZTh{[{dغhfsxVy_tUρcϔiTOŭ~Y_Ӈhۤ|R&̴׃_xe讄TZmGG}NHwDT/%SyA0eʓk`ޗeWHZ?ܜq؀NСڪoWfG7Fʧupڋmb@wyMcM7Ї^n9(ʊ¡d?Aߐ]`)cKa2#̬S7қx߄]4#)ز?3?qڒea:9H4m8abW3/qy}ڗ_NhMⵘ뽡ɩMMMjkkkpܶ|j|||ZZZۼո>EXW1ޮE!CDƄ ࢠ*\ȰÇ#JHŋ3jȱǏ CIɍ|˗0cʜI͛8sɳϟ@ JѣH*]ʴѕNJJիXjʵW\u7wOy˟O X%iFm&Wo%`Y ^ ,HX*= `j3RY%J(4ҵ]eh*UcY#[>jff8]L6d[%Y̆YY/FO)?:j@nz%[*X*Zxκَu㒺NΣ a\g[>G֒<+v+lVne%jYjNiRfyrrz{2y ;c{S:Kl:$s㣜iw>~ G;=ƖlY֥x,z8~.Н#ZmU}Y?jsn1yWx=1YN|T,rc<-'wUcYmut噇Hv8e!Zp:{mM%oztJq2h,cZXG;^f{2x tְu%`e@PeAxnk Wocns-<ˢ 2Κsffiy e2;].K]uNE.[/ ߜZ/{zxg{ey7NbTyMj[LyإkcХsgaz"8$X&x(8]L]dNtYVTUcT{G=M\qeH_q7Knf'gV˧_wQWgoօj}eprRyKwRoYaGeXxW_GSu_S@07W{gyJMgeZ,[7jj'2rrfkE͕ (nx+胶lX\vMwqwUqa|i|SgX7eX&0wLf}`}Rw)Xq'gXwiQ7 '~[wxftP` HlA`[[2xlj7[k5k5gi/ȊuuwVP-GVGmI^*qxgiM_иmvYg}.X}vQ93xahpp` `Y.u4}w ψSшn1@pbd xԈrM逤frerTwQ O,'sv!m x)*@Yfl0ɋ7)eWxj'TSG\fCyEvgYY}fLjqnadAvlvR~'p[xKxШGxPhad!AUS^U %xEbMMy j567r'Gy8ؑed+xks7lfHɢl8eea byWxXuiyWdgK(RLʤ'u`ڇzQ*ah2io]ٜ~uQfyeaѸEY;mqZZW yy w[ۤ[A[5j&:gc s9]ʙk\#$lŚ/j{j8i Pt8{ir i JBu6vQl1fFY&UYgL*VUjiVj(oRZjỏYq؝'H SٖgG)D iuhxtYieJ$M:Nyc稐eqyijڡp$ȱ!ilؗZ0 x]|eiZZAj|g| ufZ?|GZonѤ^nJ`VYTZ|hpmJYiehZtڷIzqh ut0My JTɸ+EumM  ˰[Ny!)eۙj;#Xر4苪'ƃR^ejyY=̋S0BYe}`QzgZQ ` P\ɕפ{hQVh)su}۪}tz57Al**U)KjM.GjTC ikQ$,K+!XÖJ6,& @)Z, 4iDIxyth+{ 0 dڌG{֕onU[QѾﻵ_k[#FgzuKUn* t'.)W:)\{J{@{fAlCy3zç{6y˥ȑ7NR{A(e<(%w[Z7Q Q;Zًq+nIaJQ{әVKվr !Z*N`\j6a~ػ~%x_U ܪԬ ݷ z*reɗLǜњl` $'{$C𰰬,\y$œ4k7/ 5ܙ&4ֹ$[y.yfg՗V9Y#0\׼xh:ʌZL`v`ڪg*qprZbn`a Y<]}ZŇfz[M@KZ JͬxT-LDLm1bK ]{-lɁXw1#Jܺ8$x>7 kBj{,;4:P~ 5ayYӫY\CI`LYmfsuequѾyC֜ŠؾhzS{-W\zjMڨm ۠ϖL%;۩0ҷ-- K[]ɝLA'רD]On)K}K-x _-ҋۜZNq1`ˬ{}d t|+h1dL z켄[ "ɡmѢ^J]Kjga2{=^l<=;lA-9;1.jIԍMGL\njk擽M`hljhoja}qMglb}m]܎漊wgJ i^-5Ք~S>D\Ѧ ƎZTMܺv Mܥ+I}[^+JSѤNm<^ -m}ee>d^ؓX5~ffu]zg)pAԺhNo5YޅJРMlr) "?򺼺˙nídQs[smCP(Glqom-{9?DySpUOs.z^M[ Nŕ}+Ȝ~(6/,>ؿ hpB 4'!DJ&2lCQÍ/H!EDɍm.v B2lal!)ʩ ,n dcPP#fH3!:$91VLE)(t)d1H H RXRr( dhJ βl6 |0" 7+89xZ.!䆨Θ!N?͋ը=[T⋏#h!,&i@O2*J!4l0ծ+hPKjMBK4bfo2.[X(K vG AF# rҎ\R((5TӐ¶, 3^1 *67bNFOM;&h>B$E7 "u8bup.Qⷚ-Y^ں]b`5\w_DlI,kC묅=l*͠3Кw #\)dr\4ziD!b pAa٨z@ڭ9΃`5"+b]_=> (K1](K]]&'2E-T^^ls.߲]YNhu܍Ru|uh"je_,} "Fqm6>[o[\eDKڸ4r0ky`42 VQ pЃ \RyK,ris4' L`欣wRyBv0BuJXb$f)YX莈3 PR< ŅKժHh8ap XBoR͇Gf,tA BGuDߋbf=jRZaE2DD9N,į!8'-e~xdHBeJ^Re+e.D-[ bp`/88G ,A cka yXCxzΞ4qLOP.&DrvQQTy麕<9a;%`R3ݥ藕"$X_-Mö3yHD1#7K|89fkӺDUPT͐"kuCd֢4de"(3ێKm=2/$ o"k:k.v3MS`_?%46$+ǕE-_ <1fઉ,\C-_;z0D͇.=6U:Sʈ^\Vun]~{~m@Pɬfq$Ҕ;-9@+Z:.;{B+EXaBp NHަ^k3][h(YZ@R\_%|!@;e^6(;s:syc, ka:.u[tO`#7NĨ. {<>B-7n vK<5:M*۠ZksIB*<NHrЈ?D咚b$I3$/@N@ bAqA %(ߋ |Bċ99>BvK(6rC0+B&7:0,?e;^]?[C<\@C6`fÓz*{Ck:Q5C:G,/@49Bc-@C dqA*V=0[P <>z=a8#Ђ.B2F3FJ⤟3CA @ !Bʁl,m<;B˞ R4,Bq074@C+.?;C eXC9TDDn;qHC` c?D@ÎB\5F H̿k )aX+0(: yd%{GQT7sa VG03ڞShdJ* )TBBWIJ/Lx$ИD}l̠<"!,:d'HQө5?іaHSהLE,V6cMX5kLS$$! JG (0T,-J//.(lLSz大\G"ώ7=hӹ`H҂HS-Jf@WMSΐƋhܑOOA\TbNB,3JNsL,GT4apU % ٝQ}IPѢE4چՆ(^ц8H@UV` :$GVͅLV$UÄR% V pRR8Y<ξd܆ӹxF9(<4]$4݈ e-\\Ђ6SĐT=ןrEAh]X$K^5WWe^E8Y-Z^_=ڥB^Z`Lp_ϔId5MdL_LVBdUH+:e;DT}Uf+iLd_јZKՆ ֍OZH` =e`Y`[[5}PM=IaW$WWy-]t\bA&j\l$ ₫mֈХk(ݗbqkiiMk|b KMC .K0V^bF^G@4]`:]ֈ~emeaM_ i?Ln0iLdH陎I_=nÈm_KaHSQabU_XYU fh\Me.muhΆ6WkdVf/%/=kax܁ehSF έkG*b &bq. OݯIɍ)>Ԉ|&q!X|T#Жo >f.odjdn&rhCVd vv`ȕ)ړ^4nf.rFFԤZ._pۦn#'rQ.rn^و>WNX9lCh vXֈR-ilkOw-Q'>ul aSB\*abaX4pO>%T=l_ݦ1TXDiή@f tmYWxn.hGn:or57v'6' )gF6'Zi6M:b2:AFr}T؞~mfnv4@?x+j8tFo`dNᵎjkm3U_m\Ryoy`-hrtjj[ׄݨ%TCz7ʎiWvFb&FeYu%fK8xnWm'ogj^#?r!'|Gs27ZxrNQDrd@drx琞ըC5Oڰ jP^ֈQhw|Gvp/op}?}EAc8yaNyenW\et\XQ~~U lWz-mu*NgYXŞNb?%qM/bN49 %JL0G3ǎ*G:R嫓1s,i+-qv'P~цK6)UʔiSQ.[SZY=nH6dg@۱-\mʽa.޼ze[֥;Z8`‰1cF:Рct9eL2drh*Az#l"eo1!9Aixqud:sKrhO3)Ybz.e@`Y=iZX50HnsJ$mAsM89B5mWPssaE V7VWwTU+- WMhAܳ4ѬgMs MSWnB ɆJFn^ qU^;G$jz_4Fa C'5zB:J=dgR *I@)dL_& M \0Fnj"4 g9b?,Ht -9#]2\NBI*p ,,ۘ͹q#8 Vޱ7 ;CdOvÞñbk9RD!O8-~[ BPJqyb$ ^pEu8/R@9 Hq~arj#kJڠ_ M H]U`dJ0  o]R<L^rG&L*T^ڑ8)aYGXĶW9:X fo:8;9,<hrlm`˖\3*RFX>ibt*ޥ|UI6U-0QcLwݨԦ\ ň1_=)hB;) ad^?dso)V1^5{e1`h֤5keGmk%$~C :#eܒW>ygT)۵rX/yd&3tKo[rNvqfw.v1ZhNVh@QU tDIZX*OŷՐdz7VOYw&\7%]Gz6issR'LЕ.v(Cպ} egwbJmc4aHV(ngmyYN7=ųoA;{$|ɳUٓCqs"衘O̝m\/[-^wƹ\.1!?Zzn|˼WiTu5]-`oҜ/}=6!5%Tc];!9U*v}J=¤`Fqƨ1e^閸_6h&hC6MӼawgYdȁV6 LEѳ܁&LA"pA\Unv^1 Fq) `Z:4B+B#:I_H_VW1# AYWh*"uDLG ZDҤeu˝y] _ʉ!Q]r: J[͵5!4mEv?bptd6S<1Yhʽ?$N s!80N&܁9M]`Ù o p-SŝV8( V_:ʡw=_yaGC>C¡V8DR_mEѭ!2FЭ< `_"*\ld\ɼwE%>$zI#!(֤EMX"iQ*nWI¼F^F"Vb`Q/ X":`Gݠ0TJ-G<^gẙ7ኪ|50aG5qcc6tBd͗^2^uKYaa]T}-㜉&?VadDD:B2$w\>o>"$]ҢCHFqjҥ8UbdHAqF#VUI#aMN\MuW+GDͦR'EFGaG{!FIe%@%T?EB"^hhVFi-PJ/RN/NA/cpAS~x^\VِaLy  vhka@0:$!Xnc'fD- iiYih˓Fe{E~2}'y(D$'zNZM~'Mio' *)G"5gHrʌOYFgXd!)*礍aNmfmʩz@ d{*eJeR _^yCv9^56ii~vf6(%>(J(ށ8N0&\B3^V#Ec^v{IalNNZ:[a'+DI&jj&i%*ƪ6ih>)b{^TTVާRьa{'B!(R,ZiEdq^t&HEDrVhlGi*@K6q~DWq~,ƐwJw$lRdz*gjܹgvD 0~&-jnbP Dא YGh.6lƒ&fXR(s`6 c# `eQ Y#UhdhdðN8@#+n+v6)vmd-*nmGjkgEGFyj{!R?ѶC/{z)!bEjb0,&nbi),"q>/^uڬu,NBYdw&E$PjB,`n'yp֮ni+B~60تVV?if/6(jj9j:20`k`bǭPkh}D:UJ57 ptjhRN "!D.D~)*ǫk{n6,n+n{?PCwR>q#PC>./VVL GlN#?/Nr~D /)/ίVovn,JDVGr@Z$nEnʮn,10;c)vbp.Ğ--B3m۞Y" pS~7G>^)<_eǶa! &$&"0-("dnRAwj.;4>4 q21/?hqsU,q#1wDKIJ?lopjGn/P2q>2#0(l"0rQ;,o6F6V`5VIHF$.ducĴH*Y.JӮ삢/sq -hiiZGjwGnGsG`g0s3ac:Nc1&fFy% F5c<6dbR- "枮!Lsagav^]WqnEmFu 1Fn/3u+PY[2\rZ5uusL,2RVu^ES4|Ƿ|ǯ&q&ѷV4gsB&,"'FVg_4!FCx|'_WtY)KGdJ2x?xwuZ _5rGq2r/^'7pkGh"ێeY!vݢ+<6F/." 1c<77k;_EhG B'6?PB?64ufqr#]g4t5v :V7vnxx8VJtZ_E6V#C׷##}7#7%t&kR,$?:0@5xY@S3?$''xGB#IoQo50(_l3V?`k5O8wO:o7Krr4--tĻ?ǂIita&67hE 7Se8]de㘳Ww녊#d3nkvBcyt߶-yOsBp]9r'~Ӹ*;s5:x4Ju/=KrMnOszX$P;}t:׋:So~~3C"_z:'(=`;5A_lu_V~|?;|VgG4c5{[2w83}ww;揻!!n.g;K+s_;uGPqa~c7"yH'+)3G^ X(\?e;ia99b#B.`?p6"xmx^GG$3ru[/>vY[c;@8*j"abs1"C ZŎ> rdǒMJ+IR?8a^3e"6.%E=c r?A<E>]͍{jċP-VUiǮ 6Bv…(`‚wUfPU^U;o_}JjM^<9P䘖+VY6)k7.~?yp ]PR d薬n >OyvvHLU $j1AJUNE%Ǜf8\U49bԢ@vSaGH TJ)pS O9>3cg_],Z[߇RnX̧/C >\Cpy g "},ܘn,A{'RD#vh G#E;C9jtV5]Ad@F垛j+|o.T¸*FOA k D>}O(VL=OR6kϊA-7#񎺙bW`*V1DV,W^K2A^\X^L&8 |,4w+3@c"@pd䵛pr d2^85nsًMȺZ9&SH@HHP`_ʇpE"" Jln\}OhYғVc^,}hENJ^ǥTqBdTBߦ 'xa5wOFW?3orOFWxR+<ʽ$/yh\lVB𫷾=xsJ2/bw K W͋mw[*Cbn j!b  ̮9p!/a{Jr # 4219RDi0Da3׭ y05}59 To,T7KIvdNcdF"R2RlB*ۊs5! K1@1Ӱ#$q1aB;cRkf s'O='E $*+-TZ꺌E?'(Bj2g @"9+* M@M n,>nr 0Q!SUdt rj0 M0eMJ<# R5R#32]9"*+`3q7K545_3KT cBfd3*` tMaMTǴf ;D2;KOTdaۚSdA12A"ҐH ;R 13SW~1rQ>oj"rUZ `Uspc7m7,@K@kWa˥h+k+듉NxC n=άU=qy. r/iF0c\at]b;Re)HyHOQ"H51_ 28OsIp2;ݾb1N La6eF: LBLjXsc`ʺmDtPV9(Q1&Q`S;w G6U 6Kai1uF`TLuN&~"5&Ē.b5(;J'V"WFq TW*WLQuC;.*/b+C,y빺[C31|x 0\-U 1TCFRRms; q$e SFe 3R%$A3H !1kWŊv`2"(fc_v[b$M#MK"7eB6הyN{EVo-hz" VJYvc eB}zwz wzA}O/ &JS SpSaZj1> B''UV~c(b8CWٯ0mCAIUAGo_UpaZZrqMQ .D1v] 6PMWq;%5;-u"uH O$۴v>1vI? DAٸO8a˗f;febKyq 7Mwy y7ِOzyWI{I{!9( Y}-c 에 t@IYד=99;Yw-JT;/u^3;qԀیSö^Y*tO~em+ٯ*C7 .BAUR !nq8qه솭D}$;7t{ -5Ot 3;џ8SSXyo1׸՘8ḡ)<|cbx7cyp~=69ycٗ ZVVacz b:!B&X"~z Er:MyߴݔOVi"QLШloVٯr9"AMа2(/p3C*N=+Z:&5;uM7RO2H:T bWuPQ5 o׌Z1ݸ8"L7K |96"9{U:f`z;ebXoa᧳;b'G{MS}[ux+vb$%&Spe>Uh!T0?9WZЈTzRùjK⯭0 B-w/1j"B7Ra\ƉTU8;5;1p5%8g1:g|½{eaS !cd{ *{kz[;{YΓ!9"r۷W~W/Lfyaӽ |MK:˃bW𑚼A9:!"az}߫xsv#{\uU}yrZދȺӃbq9XsVmnt29>+Wk҃B2=bu#u~>]ƃ<ܴܕx~1&0cB!; LOWd"lK/ +R80"F|#G`1?"50''@M6 H'(v^BJ4QC yDշ?7~/98/jo1T@q>ؓPforyTfl6!Quf2Tr-* `QWr15cH./WyrӬVo 6=73m)PvYhZ6eZsI]emd@ʉkNy *w 2?`j3'}GSC'^B^*m*A"}|ّ`đ&j.*jkr%(2ATk9s=[t[5TNVXNB-G^x/E.Ƙ@g XXjg2`sg b4sGf%_f,%5{^R8Ofбmǧg/'-ȑF9 #}Ay Hq-^Jm) QL3l?+?$*C YAX c d*>?#ڨL%q$%[ګz!Ʋ[ X0H) ҺW)RnnW8A pVb2?[*Xh4g1%,uܸ@l CĠnuđL%?}%Z@F)˛ۛl㼏 f ^$$<ˠoWf7SϼwFDAL (Ol9 !pOz7_r +?T>?~59dY/`L?hh6M?D $c;4$ y*uQ9 Ò| ly U|$ 7^г-  %W (r ;oҪִ$kE+B27⸮,8r-E^)R\_:MjFH;aceIN#fr4t1 5'P+cg/dVB%J]bp(+hWfPS)L eF0XgJOЈ,t3d@<3ґuKm03 LHi)IR~zZAWNe-OKdlִΜ?X:3elnkK[Nv,- [ɴa٧$ r.+sG.Oo [MEDq9d@r=])-I'U25Zm`!rcDfim< ̈j1)YJ}wdGҫt N" 66Ȱ'՛AHJgNyv6WS'9MҊЫpm ")% h~$2 Zæe&+e7V%}Ky<B4Ptt(D)uTЌYul̤9 =q`uyv 㖧b.1A+6m|Ԍ@5ҙ~x*ykOx.Zi^rc}~T6ȋÑ%H 6x/~q`d|&ܼ$I"pb;@ٯ>ޏQ)J] )# ou}(9ac7Qt=A O9Mh F0b^0A<v d fvkQQ-3-j%*]SlBx6aQa(bhϵGuJ,Zz_f%g${τf7{eLOyZUzfVXX Tf u X1 N)7W % ٗ Bs% }Igq6Y Ii0qY@3 '~qYI5Y3XW$4v4Fc~rl/#PIbcݨO5DJhXtq=DhցWH(P  C k 1WRwzdhZ@{UgZsheGiXXXO U)e~8 g]YUFdzDCq_q$M5Z j'AAĖBq~YX}x(B(B7tVe$6=+3XڡN1NW/BJ/Dg*AAQP ؏9jq 9hW-5v&f-!"G$n!I!7aG7Q-AGr0„HmGWJ73*WJgz&Ycye[poQeAuXOɁSYjZ}K$` 0 1 -z+yXS9wHnhTee{Ms { N u@jp4qA4Դ wwNPPWxș!$ u*S\LכCJI 3O(%(^3P )Q)CI h,7 bKkAN&wXQfe E Ri1*"U-ʯ- ʐj P E 嚣Tu&Nu@`O&Ns Bf(B@TqKT{s W Q! p}8@ח9Pҳh5WRo5bs%WH obp WesPI(U0MP0/Hua/b= PЏ@ *a~2 h7 @%:q PvOĸ!1Z1N'%58#DP1 $a:! C ux+btv06i Pmcn6YDi5[eLy7XSٰXء+׋&`ჯ,ڕջ* K+J E H%G%4prJJ*s {BzDŽZʠЯ.z MЌ賒) W P lsErN+ -$wKoP0Wp}HkC<0X bB̜N,Q)N7\7<`]<  Hi"&!q,NaS`"S0q}%rw S!89Mё;+CxqP(&MJ٬.UE1?W7yCaoEZLGNQȮ{2eXL1 ޫ1k'J͊U k  Ġ;+7\W`zje`.ZQO؈&|+QW1 -Bxo Bo vq顖Jleu+XN՜2{+5_Kŝg1 )h _kMP-![}+$F.ǀ|S289"^=SfRFLAQ`le'x i1m=Dx'ټKa@5+fYٛ{\WV eX;;W1Ҝ-Z֬{km " KfHNk׽Md ,p $ &  o284  }M.LVk| %K·P!vOHt P Ba\"r{G)#ʜC { P AG=%I+ªv(-&%`qM1Uz1.bn#8w7(8]!Q!q"C:Ol6aYOP8x%\XJd6noM˖5ZKOX^vXڻ ZnE~( ̢'kJ -eېX0=| <LM7 P;-Qђ -U쓨p%} r<4²t[C<^*k>A@}CM iKZNU T53h -ե*?  ز`UvZIDISip`ZVY7X&ˇX.۷}Y#0*= w1蛢 K~>o0} Õ+,3{G}Nj\ hʼnKDc}ў.uůk;n[C:D!g!g\7TNy1 19h|`Rk"DP&Ew+Sr#( 6߄ݙH,rsUpSW  m$=Aa*a?Fcʐ,I( C41 {؃4$Z?ޠBG&7@,҄OR5(kȣ&4 #4D4 Y)qX 7$UljM"I$a[6aJ-&-,N5M1-gÕM` S,N7IM!$ ܗnIKC"?pS!Bl6[t?' 9xMWOB?C|h_\?5`꿝%B8p ExFj&F^PH(;Cꛟ.e)3dBJF31 :.舋|]8@L3 Ŭ8ajY*#.ΰ]\2,` V5BRk=LqDE(1 vCǢO, FD!"a5WEG3A^dct/zg$;3s}۠%ELچD%5 i-AO ij${P$I*\:%7O Dp㔣DDС2pܴ&79XjшXl#ό.Y˄!-D8nK0'ZK x\y$M AY@"8ĄDJkHgf<@TX*Y5-f%h(@Y;'&)H8' N4 G D;%YUIR$X|oE^DmI ҄>@ &M]N؂$"vq6I!z)V nLJSFrp&8XJ{ιi30:"KaPGIEM~nQ^[9_.d?-QR5!‘r|R 9(3G.9Vk(b ?"(UvY5 β:~OP2Vי8Z$0݉Eh (FlxI^Xg"vpvkik[; unJD:==쳙˄i-Y`#)tk9Z{#yQ-@#)-2A%.ZbSv%.@Z.$ K96 |{ Ci L(3-I:b.I .S#wzI\ŀ& {g g "d-2]9ŮܵE|II/%2(6:bH. O% ِH,Ԇ9!:a@o 9ЂcrSUmWT0#XL@|;{.'+\u]S_mOlDt2xӱ*9hB}@=D#$sGLP~3j@7תYc~jlߤ@{#i7Ca6zJ4L[Y*%J&J&63Ȃ44؃fn+m)N'g!C ACٵ4Aю*ǓQ&.G&ۯ&+Z>@.d/A<ʘ51+!4BӟęI4\32z;#4GGucD{#|<9 HA{ܭlZK^" œ6-^@7У=iG794:f.RL:|DS^x$.a:sU(}7 K@C-Uꕃ.:aR-&9d ]0;)[ L-13/SDCV'ַiZ6Q6i'>Vc[i>t3-e)TYYLnR-y;x+u;3ys3,=)}K-޺7 rxG4R3 DMewO 6BpPBS=Tϗ5l`jX@,bсJQ(N_^ 17AihSswq5;ފ(@pv V[hVDUE۰.# ݩ.K{ 2^2 W:3[͗\'-t"v{Gc9f|>@KZPQtXg|([2p4~ؼjiKO7@Ht#V}EbbrZx(~)VQ(H:0:Z*?(n::\.qAӪM­O- tn⷗R" Txɗ uh4tQÄk=!_&9Nחh-OK2|`GpQ$KP(ڳg"E%s?V1h - 4+ПY.R(KFdez)b oZC_bkH?twKoM79ܵI)6!h)MI,g4ҥqNCawMѶ[]wwX4Mjar CMCwb[ר6!W̌hx3Gv[X޿ݰ4ȏKw2$%Q?k-R&FECVs pp(CpN:!HԆ 4+R4}+R8Q@]pl8HI1 .G␌I( h Be:iTGE_Z9HfV i?CDH" VdF0 S=\!qXTB o7W}zdve^4!+4:Mw|emٲ-qli!vGaj ]'t,h&@&&4̚&wsȋad=Ho֭מCrzpoKjkwˊIV(e 8Te{$ƺTr"(1"0M UQZ:Əy GHʸ-OqT坧S'n&afQ|c<$>5TԊ@-nwQiDgvmPI% JȒ4C2x: z$9d@+kU0 &uidb)r*:{u괧O(&OXbFb})6A!k4$1JD -(*qPE |Sh2鳽mn[9aUtiŽ$T!H@=8 Fy?Q&a@dQ8lPm?4..+'wB.hGdJ&lc_AYfZKXEFT du/ fA2d:ש?"  @ ﺮ2guZ' 0,gCC?(DK@f UUK^Q"&5vM4RybϞl0a,`6-1ᥖ -zS޼0TD\f(G?p?m}B* ;Dqqbx{%s{i ?ȌpOp7X,q1[u^/RxD5) >r8A8$"'>88݁?|nsv&߉(Xh(nb|87# C|^ p 5&M/Ռ|4a 29@*~xꂃ'>m(, %DFX=Z"%$khC I5`c  qvN9嘃n9nm]ADޖDn2kVl9ۛmƖn)dZ)8IcR !BL G+4B>!%pq̽p?#52Ct5( 3іdÇ?QD#1NԐ2|h!2PQ]a 3,5zu [őVpdXJ!ϐևF)miaP‘b1%(&23P2&4Yj@6ҡsUjZt<٢!{̃ jLl.:AKTnP51^NbKǜQHqȌG90q젙˦$$hs2PNѕxhֵpB<T 8L>G2aK:g nGC(W3xsE(1!"g0 v$A/{ p"DBRo.ßq#oL;(C<=rc0H,4$" _ѐDbHD!fݝ".9pAS5VWB~#W?8bvUULk>A.U" :-=q{iPU-7?R'.#R[6LcRi, #$! WTAr&g"v\zfTst)4ͥNsYl;M.+˘beF+TIZnm{)zHn1iы2,EgFbjG|IA "KpSuPjp5\ĠSՌlShCw |^.@23j :N]Q ]o K F%!*ImA)S2]?6 I<_]t#}}+C՜@R*S kWvk]Zd'>wp~hkӦk:0)9: `3?(s*lJb1!.Qhϝ-OF;%asvOTj{Sz!EF8˘nMRz+HVv f 1L,l,RYk|ܪiW^,3РR; 73A\D7v bh!| t! Y؞</Ι3"< \3';cRBAԝkD@Cj@޵GbW!VtrxxԫNxyXF;vv,D$# {]Tv|:#=|2<"?1!QӞa FI熬.ʾ| h?h!B O^ +T01a 9'F .݉ѾT)Н un#Ӈ%.W_zlD֥L#Ԣ-k0,YD=1ޭf.4baN#gi<&N304d@bKTz 2ARڲ֯Kly q *AL$v,x dpl,U.&̝Rg!$( e@V^ Y /i0,V$.3U" ! /t. B$A'H4D(MSdH:z$TG{Lo$?THBSjdASLO"(J]\>Ċ܊KFfqiήR-^!@!o@!1qvQV*(쌮莝$BUnF)Aphn &MԤ`wDGq" B`[&B}&g|AXPF$(# 4BcV܆@N&o2<$Ti-\8{ĄCGM2 ymrz$Du ,@LA6G.ԩ pN-fd^ !v%. U,'U`!v"."#&s2o%àAAv -*yOh45Nvg@8 dM'zT1KMpe_tTM9f? F e^- @ !^;դ=Wr #lQөQ"Ǡ" Bg`y66EPsA5Yig{̥a2").A/#;r0>>i##2bݦA&jlB,ا$Ј#~2-*\rCdLT5T *L$’ppds6!NDNF.p Q2 1Y%r%.`.!XWvSN˩ REUHGH@/).Oo.bWNW1's"SP 2TN2m!n S R*GxTqD x. +wB[$pi*وsgKI$0 Bs=B2z qո!~ v@>r".hS0"!P3nPOrJqK~dVx7SA?>eb!CrJXŬX(b*)<QA3tVgq=trQdA)d*Z 'b-i'xSdH,ٖM7lxT 68rXgҁqFH 1s_UV6/ 8` . s_-(`$bsqpR%. [Uv.'5XdS8\e$Ƭ`b}Ǖ&ecj'{&2,}t¥VJDBA(Q w`w\yhwziRJ%JWcD)m@Lxm[A&luuLŴ!NWN) sWppbO /Kr(kE1ђq_ xNԀ H OrsTp my(a;LB$pnDuف)uNaV (dH͂JD*$DGY!0 Y[ 1_ COwժ}E9]S!, IǰU` 7~;S;S aT-2+ $n&j+έ8@}z%>Y(Mp^aCa2HMJ)tB'ba3''(hX:_@{zXRzT D)v>DLjOluzyǐuf8-.-Ďᖱn%.˂ 3V\0 _ SR2 aEs,DH>˟2+>ۂSX@hCtrssŀeVԩQG)V6,* $@H M=Sm{*PAoM0l;l< E*ԠdM3֜,o`⹞[@~߷pSYu[Wu]E`US2@u`  p% P7`dv'3JQ(xr岩96MHdIAbJ[ra ')u*/ \Oʃ"(:%_e"|RJGHV]a5y \̇0)IĹVmіߚYGé!ߩ!NM[VQV=VR/[-{yϊl?)sL̜WNĬ.@ o9_;ste2MG{Bfy 32"} &?靂LNAO%MD8J\7י1cONNa컞;SQ_yX"S25S!`Q! `t%p55Wvl qM+3zvē,>3?[4]W@IG_ztKh?=Eb@vB]vE> r{w*ȟDj}S.DzV/Vj"puRn7 UO3혱T6A/1LA|-10 vCu2MT4iHDDF\ņԥbN-l T6vz3GTfn^vePDOI(䈂C'#LÁw(0DEaf#! T0τEUAQQbpkQY|DɅolȱp?U\)dfcN{w0sUDEuz˥Hޔ1cJןFAm.fbm5VDyN2co݌ ?1 rQI-dQ3U)9 a'$n@YDa:9JBxXIyep#Dyy9"?H 22 (mzq`DAJ@1??@B# ?P?ծ#aX-Yv"i)(< O@#PZҡu8 dH tD($!k[*Ī,][GnDȔ (Cx6 4;M2X1b炊 "s!'vdn1??y`6 ag>IZrSI.cJˉ9J'yyT47aX͔3 KD¡mm t(%,c$rN 2ߩD(y.$.uG2J? 4E,  GNa|qD< TsG?Ϙ%RH& RLd$<` ZF/aAP!a Idž`tÆn Aъ곔@ h}MkJDnIbZZ~e֘LWRAfD#I$%n&if&( Y0=lB*M:l/MٻEYQ1SgROEdwb6/#"=S(AcDhhUgFǁIbHDMZ@KYB)qiP,*y7HpuHH5-PpbXRŻ[JXLJMjY6Cg' nXbYƆֵK 3lK\{#V?!ˍ^*QKp?|O V9 u 2Wg0@NjT Jpԅeә$\(CЇ 6eKf!OSj6z <g du1uaf XWu,0"Ab*QBF U6? ܂ԛ6Pf(75`D'W >&JlBpE ě_ Oϒ"E',sD!H7Uw"(? xAƟR)%((77y:>dR !G id:?h 2P+b[ugL= ɠ+׸:4׼EeGݨHEjV1+u~:<?^>QI8ӡ5O3t9Vt3#؝HxV28GӔtLwA1nE b7w!0 !pi/&n3 Wloa`13QAR5YAK2jqv@N5/|WS\t|o !*!b#W)"^&RRB)UFgt7G8%Vb p+(P@bs[t4sX*6j A+օ=tS@)"1X/EvcWuGb'vՑ#>#*Ӄ=<L+N;Rb))FG t@tjI Ж$SFR>AsxYUc#\gAc$9\C 2;m2bdFf"eWŒ& Q  ؋$DAZ(E*D EA1EXQ1bGEQc-xyhl7w8ٌhFU~lpg{nX;IZ; w; v{".K$rw?э"1iF/%;in6tn(pT1:l _&i`~KW  o P 8 o!9pbĦ&s^"AHFAqrq2`~TX!UXDc,(oWRL|a1>PhQs##3ń:WD7sBGnliAWs$VD%Fa(?q)UBQS'uc LT#Du_O LmPb#͆g)4 HBeIuwhOafҫ+mQ%0ȉvOtO5fjMa)zg䉭YZIhGAWT~ rG{ً~xe@e9^ftp[4&sm1"2!p,jvTBт3&xa2}V(J0 g! {CnoNtMqX2\%9g5Q#51: ?Ƥ>q%{l5hr>Vy?o$+`?3b8'VȖTm$f ~ʖ$5 Csu+DBT ?&eL@ L<5HZl(E8 ;l)*Zn{xE.fƬd1,iGrxffWizخɜ}uYبO1s#T~(?2VoICCZA 56cI&?{K)&jy:K[^ e& ¸@ , o f Ҥk"^ꔕR6e3X&Jw6K:J7ūrFؗMGQ#JtOh6g;*+z^t>s[{{x[Jb4Gc{%;:%rR*f\t.Gq͖_(N , 繾K{vBhMa1xw8.'7fV1,D0[OFhw Љ"$.\$U) .w띻9N"{09h`M4nţC|g{af@I$1FᴢĤ/0*3<.8KS]a>fcS;-b)6s'\Ke2Ԑ)/`9T~QsBPePxFaͦ)^*'E**95Pz~VvݖzKb4 U]jƅ!g(=Xl֯j*QAOcP"%N ʏ4Oݺ')؋_KyṾڽ({3˵hW;1CEB뚾 ;zsw{hZɽ6wDq1Pѯ=B" ɾf!o %BgPSxf:}JK~c{/2& 2 !!jGTo1Ho&j&K ,\/l4 "Bn C1kC<<5h%S*Ty9& kf0J&C [A/<ƒ*i*>a(*BetRCW*td]c+uN*]q?l%Q(^(b(H0=H`R<ĺΉrB뢍Jw-XFAQ5UT34qyW~}ݷgvT.UB b2B AQݓh3lHP !o%a&Itʼn3 L /_,>4)S#Кk;N:ƞ;( )(8O>v#=jͿK$: |Bur~E ,: 9 `E_W"d ,2w d|rI%P$4.ASM<<8Ɋ>h@|GSU2`-h@c_ XVB ' j84qI rB2ʠpcYH Q \p0̈́E,12#I&p1i.ŴՊiLD_pHGehB}%N TqC ԹGT"B_e`YV&(F|%e̍ۋR1TjT?:i#Ї8O}'ꔥ-d 1Da zLX V\c8a k~0'6qn.|/]6FhgFWA|Aӣ3GA:?nP4T?𒗼9,ϣ;E(4唤?%d˜S:S=DɅ-xXDd 'bY UpРћ UY|==JZ8 [P+dAa8\Nǰ+.XD4U#1RTR"|Q[Hf9YL`Qi͠ZjS;,`LXcL*:I/m5 b[eсq܁dc{`1tB qR U^< (j1܃UɵcΧyY-8fQm8E]L`An }:zas,,`(H4$j带i›:(/ >CK# `؏[ߐ$C {&MTLEQ,{EC3 j-@ 7@<ͻ>y8yӷ zA=jaB[jD`jI i۽#d,pjF,iexHR!:q a E67@G+_I`A?ƊF`@5G2.+3jY$:Q%鋾()\R.ϫI.I Ƹzӷ悌|{.>..IQ"Ȇq hA|1:󐏬3%0Br³Q r.B-(C3j07$̯ٛq#ġX>T'+KLx1)ڸ @#( KP9DP։O N!$հD܍T׀]8 iկvI;cʹK;"@1@,VP]O](M(eEò2uϫ3<<<ק3:=>W&i,}X+˄te Bb巅P)=@7AF{軬"h6?`٩٘-Q/PSQ`) Y1I:y) *(!R9u"ՀAL L ZZic9W][H (1y oʽ# <1)? 80T^˷Q9G+d CZ0-I-L-M.Х eЕ(4L'0plHS.Ieٰկs]UL%K$5IbMUނJVMf< K=Nߚ.vu tH`  HOn}*}c,pfш*ʈ\ !8xRP1T. ^AјJYLŗBBi 1jpX, Yqili<5"b@M:P(Ψܲ-7i*b$'IPA* x+ց-~JȜT ԸπR/ȆPӤ]ۣJA`="i 踧+ܸD.إ*(x(V^RT`>`'ù1+0nhgמ q`YnZlx ..Qĭy/tbLT,Vf-i^Ei^=NҨuQqte߶3vVoQ*ؼ +HIъX, -"@ pAIx : k} Op Hk*8r I1r7Ы_q=._YH ۞Vrq [ Y.-"32iGq˘N#6" vSh Xxʖj;ȇ7&:e8:0a !6ec}l)Cl)h@^,dZҞufjr/Q/4;SF!4ߦ4 i׮[[%kQ&rt'vGNPv(.bq7>suwYP n;09 :i@ME yY@SSX KA>0  +328bi$e e Cl$+cZBkZ m4}-N 9z͒6;ʏW8Uh(P};p@Lj@*$rU'8$eO5NG'9 oxX'=у^'zfٔ2@̸&zA:(םPxk% bЌ'!Z$o@Rh>3V:jd:V'Lq۽*)["yc/4hhO\iv)|4N0G(umE|H+2MGXa5O,؂xN y8XH`V:܊P@C >8MIĘ0-D1TTIYO @Vm]Iם!`؍]-ٱG1Tԥ(J6tY- NMN&-lDj@F͙hdUm `cDs1dƙC Exĩǩ@`G1xaS,A׀d:hsǰX1qH$sd $pȀ` I)ݤ,O֥PJX \VI)!S68OiIWҙe>1X@YC%U@%e!]ЉՉP%]J0 TLɝưn bJe[æfH  t)8 i@4OAMpIXtI 5ޮȜ ()zQvԂM ;&P\(~MѬt!(MWg /s"î=5ODx./ZdY30BV/vJ2&BīpF3v%N0kV:8Ʊ8Z"= b3HʇYX͇{dJ9֢ +EKWfƼG[~NG_'%U M4"z*r8 ̙Ox98iFuu RT,a148a?yu@OWiYXYw-\u9Hj%ǹa!P^눜ʱԠ|q8Ƙ@qX@Qڑ&Vf0BMO?`i4s-B:j }irfnF2EյEhz bZ=3@H쨦)3CKo[uSqPz?{ DAJ~dd/%qFO8Kn^%A_4\8vF [x _1^%N0gNh܄wC[M.p|{8㉓xO['u[|9|5[˵@ൎ!aS&>\u ;[n94O|%CiZw\)H^嘴5S%6}^ee-q%ЊC64I$5cM5ϋ0 @NJ`p 0H$$6 mwKKƿ[ ;nRǏ,?h' ߋ%ZOcpִ"Т#)Da+JD(!Jq+ o5"l;m^FbCwq]y_(pAQd'?p$G`c p)h:aj*X(PC 2v~7`έ!S=$&p҉* 1ɬ:vC!VA`,OSV6ذ)B੧'r]a- m CҬ ƪ:#خN.ߊ” ̯3,0nL18 $l6^xi:4iTc͵" ۤYr97| N휓X)j0so=B!=M uTU3 !3 !$b#-B\,cA;P$j@LEE9QqDNfi|SlF y& Fd!p ɛ>2"c/sbʉ_\RR5,>N@*5OT^25dC( *61!\~`a8_N4>4O%U_VgյW2$#`3`+IL$ We$E(IZrAWU%JVwahKFpy"MAADJBt8!U᠈**U#DA1,arF. rr 0rulHYE΄e); `f!7MnrǝQ 9+B8F`ËD"d,zƣtY׾5Lbr>:IM ?hKgM +_ѡ !$aiP !E1(3E3gf.C!| _TG8, `d "=HN@0ݽKSc”Z.THT$5c0AA7MpT)lIFpD(&L!$`sK)NiRS֦ !W tesMh;MmP2f sŵ@,َRHlbF&VjDX/ u'dmE!>QLf41i!n" oȄ, 9&D".l:"% BR)'*WԄ"DtP`#dUD4Lt - f.dB/ƺ0`$Z YȀ6deli'%3*S^Zݑ8VB3k㬏Ɗ+0@bâܔ&1'o>PM$i)Jd#G:BP5baEHBxqZ .^r"gaYyͳ(ZͅV{&N1ZUQEC9u⠘"sNj9:!|kÕe]r{Ŕ%eTXk>~-W)5S?S#īzjվ^FB&Bc"usp"L~"(Ej/7\4&2ܬbMGqrh 1K fHѦ9h:항!#ςc?ÁXjioB1I11; ++ OSl}ʦ>P@RE>$P$j[82 @D!b( pakp&sBk.|B,2AdAB`NЉ ` 2 d @&h ')u h K)$ Ql% T%+@r  'flyHe|ĀLƧNB˸n%P(/ "NާR+*E޼˘x+#!#Om~H1У>$.Z#P#D" !1C~2_ )%?LJ0Ab2**!^H@) ",nBs2+'L$+rl.,`"2,*0X`Jwbp]JПZG* BH*yjS Qmxn.2Y@a,&DŽ TʬD|DL L 5_6F\ӠXJ/N,m6C<1dKzHW"N(땤m|l~$Zb[QW:h[0(ʤ32"bo=k ~c)n-v-c(b3$@3@19Íԏ4"zg B!lB/-/j ;8C5fDbsW4E?%E+H1CAJ&$ $ M"`@") A"s)ž!b,n ri Jh!Mk"Q! G" nŸŢ\ȀHh !}NLM>ʴ@ H 8|l+&!(5ǠL P_u)$mu,bU,:C;\<,,+G _#B#RW: C-0JZ`{E;[YUb'%S-V34k==Sw. aK?E+sQH`zV `8@B X@2V7&$11<_b`+/hV JM>MƬ. $:Д?Z!V[:HI XFk"El ABDA4 @vA& JLWThwAe VVaʠ'~$| Ɣ O`uM(RNΨ'23Lц|}}gCѠ@""I}d5?3 "nnR`dwY-D:BRj;b1z3&lY 5\/(Za[;Px[Xe846%5_U}7՘ⵋ=b&-_oZT@Gk3HFfef A#X`BQ1|S;"1duuBw;`(r ɑlv t"y8PUGƻVN&TTE%lE(n&K В–o]8fXjŸ~@Q!xO%QIxoYhJo ^dQ*%P5NJUȈL+ sUD !jN*gyȬ"Q.cA31V!o= FB`lcO:>N^g΂2Y6"\tL%@&@kvֈFn::HN)@H@H ` S1Z 8 gF?钲Hz링+xx YjU hW2*^Kʽ*"Ԉ,pLuwJ!dVGIXLؚ[T-A.jQj%$΄PF( MI_FmjyUEeBQ.{4QUt4,q3NfLqtyBuY׳>f:|5;&ӨLzZm mz<:JBHŹE&qO>/gVQ@VcMp_y 8H_3c&x&0` ]5":Koy5n,,+\SVaW]P[]{B-la8"gZ5㤷l C+ц;àrJ^eW&m="X)n$JPmڌz UQ(P !Ԗ j®+m\DѢ 4N}AI87UvUÎNt$wT<6S:[14S3E ?3}_[i Cc_{hwᕗU7}& t$/rXպ|'!h&H=~߬!Fk9c[i`^--Pؼ_ 4bX  Xg<3}Bwuנx56W'Téb2euWqs<.<>tz~*X+#6f};O UL%z*3ɑ?u(04V pHW:Z \hL h(k{IpuMğ |*?g )g;O:z UTB+Tj+ #dXrqDk,t5S "鮃Y! a{rR5ou69Gjj3,xX@_SlʨVƵx\qxͲ+{>S)y8 ,Fjf i.<*s`Ӿ9# 'Z1Ҵ[7+j(0 VM5O:^tk r!m{ !npWj~3<:P/ #ӧLƦ?64P$C0S#5!~ZV?֢Ŏ;E?$0`aV?8tB#?uꄚ3eRA3D  âj5i%j۶mvܶ].:xѣY FQ1gazZOo_$?IBPG?\g ~( I7< Łv Jv:H@ " $H? '^bM0A1N 0G|=@dncԖ?İ"0$rOHT8!f-RI,\ &\p&E V[p G =`vtQgX|}T!^"Gat} (HuV]mUGTx $| GRjj,RbYUUQELQ!RMh$?{(EQ : ~D/-zP}\UX+dIX5 \fѵ~%(^XԱGƆF~0xU]_JĔh!i)hd,xx^Wn!e} ]-hZIGUWyQTSXyu#Aa맸S%]#G`i! ᅉ[yЕV`@k Rv±TQ0AB0clH?a. "FPL,bXg,f1x4r:9'5'CT&EH^; '<3[ČxД#yX[NK>/UgiOWtmk_#?*j%6lPcaBb:eGOKsr%E]pJ=he+p]*p9h]G ~SX*T$B EKNRkY 1mD*!m4{,TJ^\FtlFp)NqD(~0́JL~X9Lɘ*˺mqHaȢ8;UvBb3Qp#b滠}R)L+BS}BGIH"EP@X6hee`$hded(6'<T ȹc=@A2q死&Wr+ ,H7tt*N ~Q(>j 2(0MZo"X*-bM]ZϣqKyEXy篗5њ?Z /aIB,*d O LWv@aͅ5rV@$03d tg]@Gt$c1jULd%bbGdR${hqk]g׽&pY-lfn 'B' ,`-W "Yu[#73Qh~IVS-dV@ۏ6XWf4ǫ9t #=]:6,.:'(EJ.98M͆Ÿ&f!}^# d#%)A ZXЙn2DAAbA?a #x1 {KR8␥iWU*?a7*L R06@rTV-'',Y=R"sYPI 3gP~F|%ll (Ċ81? *=" Fg_.HD2w?;06-#]&pD@G|呯O}yQgX`36P@ 3lvjk;B}pW俺P{mk[{~?`bTstOR=HN %%y#%u']_ÔJ$DmQbfs1D$V)bPwuUwghWx-s}Rs@ =@ xYD2bM0%y1&X6z"OH%/nHsjb ( X[]cHb/65j-5e){)!j8c%` Pt9nWM$y_$L@sna(UN88wE5upPD8Q>Sba4bb,br{a;ғ%eUҐ"qĥ_$~%"$2(B'q$ vQ0jbau@k7t q0/vhPowDG]ix4Eo-{ɗ}ٗZtxWDxG S&%ID G.Pa7# !B564^d1n(|a[[kx`{jt[L Xh ` %K6'nLC2)"k%)]`N6([nxsi7ǎ!XqY) YA%уrG#tbq(rU9 H0twrY>b zwݱ08&Y?pUuݱ%h4/ gPk|v44TO7%9_nӤFo$2"fbs E06HRvh~ vtKjV*DDD<1"Dv1$DEۦ0{i)YtǴ+>.L*!)>ڽ'(V Z[)Jrn11^~zM߅w~jL̔"Oج:(_h;~60cVwE AiHKjmJml+C])|=&A  nʗHWExEj4M !$zABiT3.=!Պ3^Zt{y+7}'Z_yfzV%+|"{#"=%"-(%BN8q Bpx<%7"I{ ͱâs ΁/]W)O!R>+ >v}!1 } Uk!VLft~lUgQgÔqo~A1M9%AyLli23lb2D"L1f9ݲ|06>̆fgg lx~KD]kʦ}y), ͗m+x0ނ*4qph$il1 `'UmLB$MMd90${a$Ʊα|y239fR(v6+kPf)Vqܳzolv]K$O>ަ|m'̗>2EùyͦH`)06)Wµ.z4JB5. Isc=MY%Ik(6&c$iWX'_'5p_!FȨc5"fXmnSl;  hdC W"$;vO )& dHY忕Ssf!4gjo#=PZiQPL'* ,feի֮ DKDXǎ?^t] ]vMy\? $0P01"*̫l3'9?W #ԿӧrUlU{4(PV#[+1Y@3ƀ'O `9|1RӚΜ:^_xK Fv,bBP p(!a-*VpP@A6P +1!VE-@Î$QSnkH"4-Lt2J)I04- 4b t2KH@1d0\jG$`X8=>辤DBE(·N:) T(& iv`#B˪t3uթDmն΢+ֶ"*Vz+򕅹k/dlM` u,3`j3 +b@̑`M G-4P?Sw5*,?Yzȥ\r+UވY8k.Zcp«;ZX 鸞e;OCڽ2>UHN}/@(o@H0sF)#@ ?PF +4qDvE"QXCg|1vpG8l R#Ir,&tpVL0K"r)14p5ʩ{0(c9- !!hPQHoK(BH3%!vIdЎpWw֞V5uVjͪ!VtjyjyWټx0Kj%`ol6UM՝,^G2{\CF&` z&09A]G=)JQڃTV i`EUJ~Ԥslg6@MF죚hW ըVBڕh"UB1Q֞)牀" ٮwsaRp^{giKҳ!x:(my y4gꙗ RH?B(E>uNGaT6̍ZQB.:jU zHΎ{-8FAc);,Xn "`k43~ `^ Ca܀0h8j yG|̶Dc*xdZ`1Rx T$JOIpR2D S(m&9Ar-U+QKQIJe*mа,"j]DRT tŠ͂k:ù]#ƷAmH#t Qʠ:iNv˨5-I9J\KP)ՋZO:xpd!EUfFKٖQ|&̲c ZЩNfC'Sg;Rq` yb^z7A3ou[ k08 UF|ьæ0OlB (F~OW_Dž8 i h#a" "s**-E2"x4Y Ṯ"1@7$6aH:k:{:+x3LA+s ;+8+R;Z;a")5Y1%M* ;%S3yTȈݡ\6< mjc/okfK=?ii)u/b/l6z!qyr ER?{8 :(t+ '`6K6 9Cy#(}X0X Ӱ s?b`8)P8K'Dl%)I< PxIKɢĻ2q&RK;Ȣ4cH!A<#)ȻʺK5sB&ԫ>3:'+ӣ,+ң=˳B= Y2+Mbp 2 : 1C@Ղ WI&S Ȋ0 o(Il6CCi1˲̶iINbR 'KLz)&0kk>Pu+[^ĨڌL?(~ 8T PxpEz:jl>><* %[GzRlpY yZ@3IhN|Lӂ42%.4Υ MN-תAl:": A)HB:۳r,ʣ:ӫɔT;+DhtBj*DI =<:;5Y9#Kʡb"pØP_엀C򝞨F8hSӽI4LQ=#GT€Pd!]n L%]Ҕ`)(L@T7VzьK*-tӌ :Нg<GX1ki p;KGKk'K&؍{p)b/i [>S FL30$>ˬ: 6> (Њ@e1ZZ/`; !*5w|9AN*# QTI #2s+W?M$Ɓ pmc*E]ZRA\B[3d-Ȋd4\ī% OPƝV#{3 @ie;,DbXC 0uE9b-W8cUQUٕخ2]n/|8GlckFu2j˶p84RRXp[Bp[Zxe_p v . y  TNdʶ"-->BHY(-)`Z`@fa>fkf`7|pH35TWg䨂`v>S'H2B XQgHQq+}]B ; ڙWYܒG1hҢjr)airiX=A/\B4Ƚ}AL\HVVȻ㫛#h2PѴ2 ]۝kk]CZƃ# ?G)@m\ފueONCY.͖TNslbd^6.)7 9m:sr7,?ΜQa}. (Ln7{Q|~SWۡ5WG * VXДihuXuEa%APC 0TP`~$-2Lr20٢9D3UPOp4^\\\`]uj=w aUž#|/3"6qk DgÚ9<@ʩXkQaSVJ(/K˵'r,Bu➱nl%ԳL2__ Spcv2z&9 Fsҕk0kFkzoo> YT5Ќy t* nƌoZ0@HX:S%P" _RP|XM"+0vV=H,ɲ[,q@$((3.AȊ`V!$Bz^5]cj>c?wc~w=AªH9>=/e`XgDtTQ< u&!EʭP3Ͽ~D]JH0fL g…0O,g1ŋ?OOz0ReJ88 e0SÄKY*V&[gЦ怊*b*1 PoDAeŖeaVD9B F*DWS ҼuǜQA!Du,r0.cQdNGHgYM*j^Æ}N;NxGG2kɏ?`1B`9d.}?yu$}W#c 5 ߒ`?I$(?=wϗCWuAVlaXA FРR(aFPςnjF b*X-8 J!E RXQ‚:P%$c cDFXА d OTSN7?QZUeU ZEc<>vUeFtBd'H5TCFI,$eNnePAgxяAE-&ZdIR0A8M61<1JbS/ԃN@rWQFPo=5ǕS5PGq9ГjZVՖĀR[~Q]_s춼Ad mVG`Q1C&\ooh+]oan!5`FA7]1}WYGy{g^|+|WCy3& 1r`!Zbb8a C8]Mcx!JV8:rm@jdd1 n?XJZ564Hf2ރ7 'Fv.HlNZg{ D9G=&)*QG?%Ą=TSJR?NnPu]T_UE5_if_ t[WQ&V(PAHWWK]۔So}he$XT5!5&# YA ra`@VThkԐ*4xK~!M19?X2"; !6;$|Zv fz(ͬ<"#7-j ڂ(T!!B,rԢ3ERbD#.MB^эpd$bu$anPZIۯ$_imY=rldEťsbF|!\4B(LΎN"A0ȴ٩N@)C}$xbMJ̎.0!(pq?gPL+g螠Bi(A1I1 i(C32 R09 3񰌇5#&@R4nD+,CU㊡h$5Bg; rvc#FQ:$bzYsChBb'gӣ]&KU Ir8DѨn YS6Q]vb[Pη=.Lkb}AA]ޙ97 軱,G4PF(ؠ=@NPY$<+#TGCc9 I]zf+ EP3i,[y >55x(@q!tﰇ=n򕏨e.SU.Ңu˴bh1vjis@9oWIݪFԹϛl53m$&=+a%!f7ZA2)iuӚG'aTKT2a*ie+15$U|ݮ_=FǷzLP@,d.dT`)ǩ廅qDK)[y <Pv6 #ho2Lp SЀ7Aikk$`C8ɽWqh` rKM ɐLM=G eGt4XG{P^ ͌H}}bW-8>ؙ]Dxrl#qJ \tX(?]lFiAn @ p$)\"렊,bobRE.pʴ=סRҤ`E_Xhvd FFX7"^ П"6@C q9NmtӃmT2DX&j$j֪gS)P%epF(.{6ј|>IQa媇zAN>%R `$8Ha$ڮt]$쮸v!+vo$.W"(8#/!$2Jh.֜B,X:taMJbڏX^īݥB+]rlR*oi"0 2EZ4-J`ңIcihEYFe\m,-W`XÀ5m'__@j@h \n:jhgxX;@4CTk XqhckOq K}?z0NS1 ^ktPّ1]LGBUaW5PvaOkJdM!.NPV!#[TK48rUQR#C2bF#otpTsua2)WzgW>Dio%[J%0*+JP/B]Үi,aSDL⤝2/2Xگ}X &IpAȉ(~C| A5I9'40]OfDj7:n>Fn jbhr(yܔNy1榴JJL̀(؀?Gu בȆZQqkdڹP?a!eSV32Y o"#rȪ8"/҉guYx$%xM58ƨ&WNil%Wl>2yGG+keCP,%]IR-ZDJa2Kgg=lţ`w IX4clƬF`msn8oԁ5h?o+wqp O+1f 1"XٳD1A1aJ(H@TD֤ D~: PgŒ͐(m$Hț,p/f1,X$X2*b1 gL95k8r ԿPeȰۄm ؁+?!GI$HD HTn}˿XI`ߖNjgݺN~~ GK3BĤA%Chp/ MPT1 tHّ0xf^89R#L%}eQ#"襇rH.ST(̬́Í|"hrLD )e"e裂T ,Ө"BdI%d'p'VohUUg1 5bJjA ~@,Z:kQ60$P!/6p3.4Q{̵ w\6,4,W`b/ 2c9Fkhkk>0hwȍm,$@dL& :;K@;1CfsXޢ01##  D\C+B9%E5A 5Z_\Qk[t0Fs$2)3:"T"'^}L5{`8ŤIP,w*=dsPz!;OIs#:R(8Zh*O&PjWHDU=' "J'bhUuI@) оפxEFXwh'Gmh dD\fTyKkL\c"k@$4O(>~- a&‚ Gpⲍ bK~ F F<(Bp[6$l"ZЈ.E0]܍Ц"Ľmq!$ ISR ONI>&4P%L%3BHG)L*i)ӛ4g:=I.uRFD(SPrT@#dJ!H(żRAK/Q^ZzcApa%L@ e*AM.R>Z${D Pd^2eYc5'P\B .l@U.T*X`\0,4 Ku.a?Hb1PKhg2"8#CBFP2@5 |XVֲ6;XYK`ag5Yz22l١8PǍ@r ]-cb!C\dh c[5h3!I۵qJSKT7h' m %<)#=RoRZp[K)'> dtl[:8m Nd2 &ebK 47M(!HEKK%")&6]]ot54y 1-e)' ` a鄝H qEUܻIY 7epts0rzEn"j%.Q tH- pK)X(D)0yY LU/.^ҕ+3Zj~@KEڌ +90Yt%`9ظ=y}gxCW0WIB=a+$БCt6tThk8GBrG~h1!JQ$LImou;Owp&PmM@I۳F$JUB!dH!һL,6KwsWsb.'=EI꘹fęeHF  Bpddyr2(L #M 1 fDe('*^;HT0Q. j0B?׷. חI.Ř XU) /g@J Ӏ~4/i _0m/h JBlthD? kvj20Nuխ?Z}# L3 ZH/Ro}wjZR4)(;} #i EY+aZF46dkJLɓv=9mh͞HD8qJ=ڈKr.WsSJ}gsfAi&%o ΋'R]0#& x.JngJ@g&JgMƒ;&KBLON1PODXXFo>kl@ pmxrTɐRk܆JJto 2t0~o@GkتkO^M@+k j + ^ ~'x $V!xF.0xl/b M`zzt{Z%/<#+n{R2BV&Lz^r}ZNX`&x'g!L'ǔn 3^%6c P/L0,$Œ2ƠU>茤,`% !~d@iXf =rh/$Mhc?H4 0VjpH:+n,lf\sAp1 zOzmqE)ؔ+J08iqxKI11#pdHܲq %O% uId%gt`bMu!A%nOHb/!@82 E@˾ 9j':/`(b{0'xSҝ,̟R(XWbXlNp0@all" uLpǔ2#ǜ>*< 3N^e0gpJ^Lc58 /6#L- c lH.^j(-eLJFNF: f gϭnP m"?@Uf@6 63*H*C^lNMEpjf31KA:5t$I~$GnSzd3DVSioBضuڪ-ڂDXO͒:GK;e uSK7qV\O7tȳy3Ѕ1 %&@I'.B1!/2B%/% y`2N ]{fENR+DV&Vק(R0Rl|0"JvGRVV )y,GSH}D3\%15+.%ః8Iad( P^* `J_NgӼJ0:4ܪcn5gԊ<4fF0$XsC*U(*4WT߈C4SSKpQZ$dkr1H|$؊OCoWUSWYpYpRJ&NDF)LĤKowc ͏FUk % `% #e+{ 126R`j3`(_(qʤ}&IІaMV#rg'j&9FHFeee{24@2HAxdBr61ؗऔ5ž,CeX0ibJiݰ  kH$a@g:0J OOfjPmNMP?@<͍ZBVB0&B4DBJ5rTtoU&L2w 0,%0 U-IXWQ691-1PYs7fUVe)dDORBbi#^⹊MTX WIS_'>3.>0 !ɧl/%#"+K_ T/K7lTHkE~/0 3,@'Am%cM{gtbtLa~e߬(D#ihCf'kfȀ%kRj5&]VCBu241p Kf`7 `l @AEbZ>SԺ1UP!D=2;0?8m6>uj8FE" B>8BZKunHdr17tyfknL Y1m93X XzB9pUocY;Q{%Mԯb`%r\Xyv"07[/5n ?1 /Үn{4^$t3%([̞6ϰyl(%q&lVT@Ad H}'TG :A.(ulH:8LB*gw:Z \e5ʰBtkEZJRkI*g8 &raXjn+JKܨVūH1ѦZjĪf8F E ACNMESYז0UsL7 LWo,y:Sq>9Xzո͑qwX 0mZ\hu)Zb,% @ ˾"J1<!t颚" .$G ;kOGF0k7`;{6#ꨤ^Ma ap$VAǀ#[FA!꛿PGz[.0&e{rnJʪ^ H N͎5 -{%?g³` `]0$5&\&g7ܨeel82Ynx1u"5G 9ֿ 롰!-)z4xbEibb`ZߋKZ(yp,NXR忏&U|Are &|dΔK^]tP iEJMtjjЃ1Y-x"|}'n] oǤۃ2q AhQg @ PA|s`)g h0m01 ];^qÇ Lu Ρ( ׉KPBvU@w,AQFSok#6|SĬ)6J%^As}? Zࠂ(a Iq%q ]d<&?`"- x2@c4.Pk%FVч5v, Es6Ĉ?D@@ $ $PVX?)'iAuZgmn[Yk5J -@JA@DjP6zHQF"q4L-*O03R'MbA9JCլUDլM!k,S/(ˬX ŒPSI$$qfuvWY;_[h@c\ALgmrucF[kٶu斯sd'c@r*‚Fuuql]+ZXbZV5A_ Vq%:$'VW-;ȝ8h>X(cCx=f฀ $92% &'Zd)Eh. AsF@yiz l䒓mnR4QC>)JiEkd4qIF/o|N'*7TTQ'dTJ7պKŔM(5=I-%QQA%+TSRV-e,_1{du{5R_u] +/LxAb2I``jX0h&5 nSfeَu"6U'2e?$( Pc*v2{9f:v&cqr3yHpx6 \=a,B 9L0%1JSc" ]BZ84ƌ(232[#mnj[dT#,m,B?I҄Djd"ͫy΢!f钗V1EnMJT T̵OqJK?r0Iw:YdN-)Sa # WOYR8Yz.iIPkz0zM;I(5iHJr/%!Gf 6#$H$R4$(,eTˠF8@6PyUVD  H ٶ6g]vns*]EKj 01 "Δr-R@$fU9UOTv4Eyk5tŜ[O2 + WJ>(,UYv=H{g}!@,/x(^Qt9\"I!-#`Hk2$%^)i9P7BF7dD|leE2T& foha?pRao dHi#kPe̍ẉ_ I(QaHB(E,VH,RTSmqgDzr QVv+(fG + 7@F|7k0aLW2N1АiTv55Pgr Ziyv&I1_KifcQysGːLVS#!6ip331_ׁ)&5M*FV{V׾fT eb{dryCQbUY"n8[E&Z+j  <c $6r"mmwkqOܮ9WQ6t%;8 (&- aUE>zJV ]OpWۊU-A2l( Em R'`  YB a  'f8cΡ TDqi? P4(!$Uq%q rG/:%61T@e2111Sc/AW1be6qD1(P$"R4nU t5vBTQ42Fc![Wv [7wvuWw~Gw-w#Y&X}$[jSx@"jZb&T%j ô[jy[s'(ӅLBVoVl#{<{m,'NEMoӊmأ,ONRiQ-mo@`;ӌh;g88hc0yj2db]Djs0ĀJr!KT_S >5C7RSCFjáu$vT2 "U1s18hSR&#UÐQvu$$F11a0t;d;JD %!"GIudVg!pustv[Gb86H/RlhY*†Vpc35Zx凟WxxAju([EKd)G( Pk%`.jm|iO(|dWm<}B|"nd=ϧȲ}"}ow` (d$; Qz׍3yd&00yaui  Ў~14i h 1S0`E> Y%_r #5RHSCe1O4xT/9qOrC'sq1Cv/1e$Sc13Sr2Ò$)6!!rREMBfVf6G&3uWy!{!ݑto6䔮c1HFwrw⢀E|Toto1&8ƥ9''rKN[\y|+-M*A|msCOÇ5=>_8>O2P"PJ5~ʘoLVx5y:y],@&J @?A٩zYbT%a-s͑q0W12IbS%*<(I'):4D9ϱC>g0| /th>86Q6*gcU/JgD!F5,$zc#ŭ+w1Ji%Y#HUdegSxW0X&g&:U''C'OW(U1`~'6ˇ>K1N]S1K21OQ^]h}:T+|}bQ>(ƚL"V`ԵSg(¤o:b8`&D%0ȩ!s@h~-$h!j7ci!6B%C$XU2y&0dsjuC;HS4sR7"1%_F޺%YcP0\%/I2DVHV"VH5"6FpNTK48|#)jhrYr7޻R0J#lY`"{Zigye o~G;[+'w'D'4'+M+*> Lҙ+O-,V8[|p^="Oc_Kk;9j[JuIJ<Өa¶D@J qFSlxDv62K 3v/6d(>=dˡ52LSG\z z\} Cԑ #3jB,13!%* 3ZvZT`WjT!lgRgeBuhLR&˅4Hl]p3ǣ*l0W@[̀bm`'&J 8'wb(y"s,BŝENmۘ^Uho>2_"nS< QϨ\̆j ѭ.@UQsV#iEYA^c%AS H؜[#Ff_|F=pA3y1R1DO#㢢S5ă}ѬJRښ0(f`~gPcWW 2H֟pHUqF#ZJh5CIwkIqhlxV-#plc~#e`?]!@ t` _JH2Rd/FLP"–-$YN=x :RK',/ꄝQM0%W>)OPRK>u+Pe. ._ ɇIhb \t,6#fߘ%F$ft ɞ,2T==TA 2L3437߄ SNv2H \`8ti<% b'T2$'R:RI#MU4#+:"3T Zզ*+,fj֫¢*\5*Vz˭Z˭j٠K/VW%>' @ʈ !xmm`(FNCm@g&ǚ'ƌb\zBxk`&6E9a[ո#6n'"Uv ;7x!,e@yh3a?E@wG]|<$f$|G\{B 5lp={y o 2pJ :5ND㙉``!0|`Gb/x dІ5L%44" ಳm@ p8?LY2XQl=-EhD@< QҸkdb#IGm֊ -Pv$[7/RM$ziqgjS*'Es 2:C%PSZw) Dym AF&U> X,K+)^7ֈ,(@2pFњ$ʪ +s$+"( >92GCҹ+  yyNjA WS8=#D;v.#k4'ȝHZtWa.gZ BR[#B[HkaS-80?4¿ %!+ Dƚ" <91*2tAG d"A3;"hGI䤜:̩ºL1$L[+Ҫ*-^cK'(,̙Ijϟ(.;t o V XYg-[['8^÷C<\ʝ; CJ`ꉫ>T6KD6#o/ pߨ/yɹ#d( 3U+;@q1)EC F+GHHMi¤,D V)CڊqRifX P HT! 9'֝ ;ӏC1:r<++v\#YLF+ț,:"JDAMu,8+%xiH9 ńЬ%h 8 OF%GJɔBH ]q %4Y+ i VJ^H ˝ps}!\rWҽ]:nݞ(P+w81,xY $1 $,򚶝RQ!]+=+5FFb 0x-I^%$1٪"98E%|S#,@#ՐԱR/q<@J xd Y PbȪ[kA& \ղ[V0rśK Vdb葋 `ո\߸;̖!\Z -]+çJb#WC|6h6=MD 9o_ 난˫~k ҟ# 1cXY3<L?3E^2:#*{IR T7ڪ>9̫Y'i$@Aɫ!A]Ǟ#+  ZfMPZpvG?TjłmISaZBSm 'x!Ry4[O]$N'VO) uR Z[<̛ '0oZ2QpPC,4֛0e]Q?N r;B)5XEKdj)}Kx#>YU³XMTVZ";H؇y_S*?_>#{):á1K8j՜nGD`QqAQSNy>yV+S}40 ̍`U\Ђ&&P4뉷8Ss .,ajnf jE=)!]4 [><͜*NDj?k.{r+]YS~ZeA9_֚_cq2#( ı21M[.:bM tD#Ǜ?0"L#)ISeajӔ7 9r" +ңŶ@y_G \T43AD-hڭՓ˜a9C髳a׆ahPh/֞a%hj l 8VTh´,ֳH5ŕf&N\T)С\Vz<۹nYݝ R9(%{Wp* Ժ[O@A{.@*] YZTUXQ>YREe /F'x"yzu왍 $}|9~2/!9Mjv/)"s~xfͭT([C[ y Vyծ(jg7yIIj\Z7aɄ L\CK@XPIҤ˘8M&zHA-3u!~%Vo,DڶinŶ O޼zȗ_ ,:Vd0ĥK]MذklF _"PP`p =tέY_㻜Wfm@!T,7ć\`[{ ?cn U!/aAa_Ua x n} bA?&J'Anaf~uA-`$`uE]P 1/@4:cXы;A BB#4A YIӖ1Dfa:99-0)RL"$4'Gwd ))K.ԒWR0OAE Q=% T t?\tuuSZYQ~V7UQOu׭%G)V_Uq@@e [rbgVpfovk7WU &uY˙wuX+q1uf^Iwq'w]Ux[~bm*PlXXrWQ`q\ΗX a+L?$@)袐Q:-/9RУ6(yҒ DeT3dUJLGJMy&J ]4Du7FvfgJXfAh5 QG%`LupiKelzs]EupfhUfbvj}q+ad}|Y6)0y:-m_y6|Ag{ϒ\@}fYxU\ugp{{^U/S;(84"ftR :hvyR:e[J]ꢀ(ErIX̮vY%hxEń%.¼bD"s'ZRT$Ps|ًjuCTRUR\1.љv-ee9tnW' v8RyʙvA=&+dqeBԓtG({>LsZNQv,pB|I$$BJ!Q.uӔTBgoSk.vyr`ٜ@͙F H(8k{ &Տl}DO==Wh|{GoPyS=sQYtahX@] OT`!a4y- YԇWᗴ M}H Hе !^UEIKqݘ QMV Xɕ ۧ!ىXD@VD"fa}!}ĄPhM#U"B%#Ud`Te̕THґqJ[N&c_i^0^2٥`}hȮ/b <ȃZ N%i2b_$m VDvcu`pff>w`TΔWrgȓ D=aL DLXЁa,\(\0!C8$NeFސXM IXIKFȧA,MZy[#$eԛ'r`ٜ(cݱWUqm|_,plo%`lV"E.ca,*f}wّo@ $ poBopoD.EJYhՊd8* 5M]uޑ43 d5s7IRv_eCVnUruXVrn]W,b\e v ^˻$M!^c3/n^]}`-t+ne)U'qJK`b<ߕ휷+yuckk6帐Yzx;zV\\Eh7eahe/wٱ۬7 vtPѯPEZh`15N{%famxa1HɈ PPȬ-2 4s3͋{Edč0ے{U\\eO#%+'WXNhcvlvJy2粥ɡ,NtABhcUYNn\p )&V^랷uN]zzk" 0e,LSVbRg%zRF=e7\xIH'_GZr Ug5w@, "B T@` ,#G ,@K.HB,_; A!J !D7CL(D mtK"$ 5iסP&mQlYG: <ٴΤ=Ls;ą? ndM|H_{a v`Pp3!}跡ݻB.WrdӦkvLYsNDlw7vom3L!e ~hWާ (_j?ac4qNjopt!BT @ [ DXP o= [@%H$Ш-h:RdT 袤Z\ ‚H|h |,  ,(WV" )&^3'hh( )H(*j+9ꨣrs&(C9 .*k- k:c(һK30% 4(;bњ$ʺ2j$},RJS`Iz ĐN;DŽ;\[h9_WNk]o_v! ʳ筷^Z?W : `ZB)2;'X?zSIJ jDHEe`GQvqGt"$L"v Kǐ( .T,["3i4q6 8*4)ª%*;>b*>J,DJlSF5>SLZԸ---odݔX 1dT6M,-be՛\){-bֆ(<]H!M7 4k6g:Ȗ֡صwe?#.+^ν+|n ]!"p{>b#B F|pc=FQcaF`es$K򢐭hQG.$JZD2B4P$LBA-!i1YM@2y%S wHeMhk X`jPM?x{[\+v8Eu8.юfHPE.z N Rڢ'+ , l qtCԄ,BRE)*qf,%:2"YӨW=,ny'< c0|;د v0HE!cQȞD32$B (!gd9H4Np*-MRDtv%NԉN“(M<T7keV',EOz # *V3 yFBbH.`|;x0ƨ4hb*5Yg Y 2\1uKCdcȨ QCUendx6u"w%Qj0C+]wq^񬳼d/)m͐*5D` Cςt!d~TAg%XX)2+ dzls Ȃ3 BJ4 M,p*.Ai4L6q aix(Rzʊ AQ%@];u4ALWꊨs;&ES{r^ʥ6=H#W,l.hlgƑ f!UBF2UoGnv?}$ULҤ)ŷ]}"鞬\}:R֤dB$>E|NBb -E.[1=#$b,ŮHaLVA 2. 2XjL%m$G>b̐T*Z]M(P@ąU$Р+hcAO*\kE2΢d$b綐/\a74if'St1"HSj,NM}+Og `VYix_5ɗc@׆3gb㼘@ N_wK٘C*T[F$򔪤##9Ɋ&bdgD)DcG_%<L]TrC9"xbnE2TewLc30Z:m2Kh-*C.-tPUu| >4 XC< MA`8o{blCYf,F}\CBd^rDlJ , $kȴИV:L(v/h,@ /PLL+IKĘک%̴/N&z'p",olknKvo"-6e4,bG{rooqҨ xEq1D#(5%sR9^[Sxe3D;l q.ڢͼu"[?Bênn[*| bbia\\ ުZ$ +BM!, nBߐiȾD Nl4$. #R"&i^ ǤQ M) *mR؂;. otN?$Hm2˂TZ gk1NѽX,Q\;xȋ&pxm":Ǫ1z&VYFxHl,%̢/ p䧯 ިBD"j l W3 2iG ", C4}/5Ihf$J B$f-jɂ`'F%KnNӶ`q"aFNs ebLHYÏ"4r>1RYp֊&@-4P/zh9v-ÅnvLP]Mن-NRR7h/Sd} f},}4T`-Fl1?PȨpɰ p3C(lJfްGh^3L0K=r8k%lx(@@Kq29' BPj7Pcp(NNW9lcSԐCTQOg=PMt~!4CXj8GXsv<婬Kۢ[ x6Rۑ]gʢRBDžB_5c4~$* mBt iE0K  GCNɢ!t$\#ZJH67Fh;xszJJ Jd .7f;Ŭst>EF8ŏ(ʏpQYj[PcV=VQaM!R-lgNp.ly̥!$t&d#;(C$$Dcd# DDmUP11ku U O Y΂J3JNjbₔj]̪Zj( <m I\}SJSmTi8C!&  XPSW(qnlj<# z^C Pҏv6T15Rx.]udۂuKpETsEmd&CCf[D4cP  B1u P48S U 4ũj,ɰvNG7ɦ([OhX4j,)'‰XN%[.86c7\fRUHMl-.XWPWZ1@nֽ|quv tt ozu'ZG\z12eQe#< BD4"j}6ephS1Qf K#&Uyy5O4Epz WH{"o4*rD|}diK/7LkK~,IvC2Le>,\CRn6;^rK'BQ(ЈsunˌJQsu OthR@[x-Sbǃ_;%B]pgH ˇwGzEgh,陣0 e6Z F XɂlֶKdKm[wj]sQi-@yQ=.<*\, h9%Vo.aRBa92'+t\J1nPlF97tp!O=@QdTk'Ovx4a &CJ}xXDJEhFW3dz3uu FE F]o+YɉlDK U$N&ȝ7Rd}~P%jMn\tC)B&:,feq#xMޖE6yDwӰj ;&jtyTм(Ҥof&hV6hTOymcB!Jvo'RVɒ{8 NFt8!djB(> R91>3k q?xP'.#qHXrm7: ]d2Pm [>v*҆mvLD눸9$f$*EHԙnu$$ֺGo" l#4,ܰ,wI]9#W?z[HL,{J ޿-1z=.; AhN2'H/EKG?ێ/ԇmw/ҩGxg]wJoQzqx[f3p?x} \cFGHlcAD#JERt#+lYG̊Lɬ!=WMk᝴ʬl#G;jm;.M^B{弞ϯR yes!rv[&b;g$wp1,ce}# $0G ׾55 <%֜K7&&l ,0…  |Q` D1Drh!"t@`?l`I1?` #ESQ> t`L.4&Đ!McXIzTFF-ZtOFhJ)`  4,p $L(4EJ"НZl:P_O, |P@ܶqW;7Ch<%0? ]BVNaH؏B)Ot<F6?/P 7 Bx L5CHJ?8K*|!K%PG7l pN`q^]tДF=PvEǙabb"h\U tWV "%K1QPeG4bdB=eFXf; eiXVgu֙ koRq`}gp`%W[QZr1\vf]v^w TBGz빧CG|@k hւA ]>AD%C\"EQ cy`f8_ę8$RFq^muE}f l;%,GPOm)֓U /[^I^ bge\Q8ٶ!*DyfgrjmPmvlEr?CpFjHߡ tӵ:5~ǝӹ7БZ@HBf+԰(B"([Txu.F]@^B"@Q/DnP,NNmuN+Y\Ǧk|c*٣|M}iwi)vQQ[jYg-u:Qt6?Z#K.0pX&1 ) "wJ.ؑ=(1KD.xI7t) ^Dd7eH *p cQ )PGEɥv$TW0FEx,HшR@drԭ(NwsPE #Wi<8OS`Qͤ 9yd':qv6êT k(kU%eElkS[&Eo9rJ E E1S󐔌1('HSmyFP$R!(BEJK8}u2Q]Tdr)lqGfj!ؕpr&"9ҨShSg3,phl9ǏuF%gjOMmkxlu@'t~dфĢDX%oA!E.`EgR30`,e0pcmQY ”@b4JZ9шR ¼cR@S|H%{fbgBx'dބNLl٣7J~+M}6{|O|T52U%F'l~6:fFяncҬp*(2_` ց8$aHH"x8[ 'GĂZHTSIG *e[eIVD,E0A3.,;͍soi)p$~SMb̌%}JBb>Q:?m>ȶiqv|6RKl)q.A~Vj#ee6D|]y!a$51tiK4QYsm#MX$ìP~ g@LYR'ԍ*{KZxBauћ鹖:l2ye!j.T0,v5r]ߩ.*NH<8Q"9\ x;ZMr*vJbV:ZWVj,D|Ur8`'cE &|W4A '6PY;IV 0x @r U9-WV}@VXJO2ߓ".ɶ3T4iIgx3BQ@< ѓNy {>bYǚXlftmf Zz1X J?ON$kl7@UL0Q(8FfX#օtTEa_ tjk$vH)0XQx} jGi?1 æ@w1a\Ay'dn~WƎ -`|NmT~%$W=j[=' [O&g? 庀ُUKP+y?4vy+(X ɡE%INdCGhDASY[Rs!, xZ7GDDZSv"Ƃ.1=hps[h3ei5,WF(D&Py!PeE6r ٫&q9I%ٶ3!KT+M ;k?AtZ`* ôs {Y:04 9!jJlʼK̪1:}P`ʛ}Ã[h;0a*Ţ&@ۧ۠C rĨỌKAaLXʨ#TLlo)L* N;+ Q @]|&qq1:KLdK@zɮ{l Lܽ7 PZ'T YKk{ 5ukguѺ_yzm  941CY%.xY :sg{, "tZzBJj Ӽ0!χ l{(\-**ik,5ͦ+@JDܔ5M<%%LҁASMՂKH,U_cdmegikm o-qMsmoy!,3 U:E5&.43gIR&XAJ(00wRU! K:JG5B74<)6`FO& ƬE18WV:0;A fGMqa-kOWO8DZ]@/8eDGiKT_CIZWG!\UҼhYʹpOT, \CM~TU)9ͩsY׆W=oLN ƖzԪXtMQS7>xU\yQOb]R>J{d̓ikZ|vbecK5?bXڈdɝɆddWX\]=CruKhlV۸zXV?Oo_:,9x]e?h鼤f]N49D3>SjMOtJJ҄f׺ەeϑUOau}gUU^^yEQMB%"gi?gtVq^b}ꮂؚtŭ򸊉RGց_εV0&ywIabV55H7F|NHڌnlII,&il`ÞťvlGHSFbBc<=S&oDџ^bKi}A+ҀSYL݂MíY^(@k:c2cGN,D2l)CQقtgⱨؼhFy{f.u~g#B,wSp=huÈV%&ZFLiYaxaRKRc ]Ye @FXw8out5sJ$>q:F/~_!Gx)Q[Ur l׀GrxVeexXznfpe&mJt*&uKW(HurF|gavn4|vx6}}a}fvbiQgWWimi%p_t{صtEp0vwvwqc6'G]cZAxxq\k1g 8ox[pgAXd+׀kc]8sixԕb(>l -pAwwuR'up6wضvU|Vv_ [w|{givtPdIz2erd%LJjkץoyqʖsxX2:HX9^|jjɧvZ_v)|| _+u a~&ʪeٮ%(u4ڗ lǸ^ʌlisb67Z$'<[e ͊YPy¦G&ZijWjzhA~i&Nȟ:_8ꘄ*v[xk u6{@b hڱzɪjsjsv:Yz~flZI)Ei)ZI:;l.[u!RJ{BBeکk.qڭ㊞Úlf؛_ Yo~w׽59`˪7irh) b*ڨzdeaɑh &uuK_@JDZ#ۦyWj77rzbE)56aڝdZe*k@k>Qֳr`XY E<1z٭mYzoz9ۋ~f|%|Fmtjd*J>^f۟p뚃*q  v  k0ɉ;eёˑ,n`9̷`%OتKdlk$ _dlC-{fFäˬkYōw.W:v1y[yd?dYŻzsSk1˖:\ڵhbg^]{o\?Yefik~Z @m%ɷ & oLɊKLY&ݘtҚ;^U7 2z&lJk,GYe_`,pIɘrA{q\֜ܜ,J*/kke(;׬kn̽h\u]랮l2~ܟ2Mܧ`_|z\xۿ+k=u\ɤ=ҟ,ڡjҶh̋:y؃ݱvi<}zbeLAn܇`˦ln9F٫8 A;_-Ѽo1nc ;ۜ[S|ǜwaʲ)&|n,u#lm}IGLJݧ >)Ȃt.ٟٗM#>Wђ b!ڙuB`uo)!6oJ,MӂMx>0W]| ³Kܤ[v=幔barQl[QMnЌ'aN\a=[q~٪~`|mɫ"Ѹ.oᡵMۦb IIo^p}ν;7c滺FZݿzhjh͆<F[JN,h>à+P-7f[zVsi7^~)p~鮜J4 N>ЧPg J|D~2-_1]_e卮}b_A g~۬V> LM `f޽y)-^w-팾.h\m< ›OǥP᛾w}:+`If<ҘǮ&-MnW $ÿ6 Ԏ[п׽kY_ԕԫ啡VzoiqX]qt^͜Ɛ2ۖ9xI>q=f]ȿ FB? NXF%N$HȐ'X2XRP׫J.릐=}П<EJRt#GԩS9*֤=[f_셒 M%[%H܎r˖X6!Ň{r컰 C…'04+;L0sWs` ҤC# K 6٪m. n޸}i>sd=Ge '^aBMxNjD_cTP+5Rڲ; @O9@ФR*|J*zЩ-JK&!J0b*-$2/sR0olHǁ~l 0sLԑ # *4 +i8B*ںRˤaҷ+Cb1m8*$'L͐.I,3xF$$D*/cPf"C\*KCTMK ʷM?=?ä.\jBbJZD*SlEQ.RtJ("Z LƆ"ssG~|. 3,0l2Mʞ i2_뉵.C3Ly9 + :\䘬M;:C8: G?Q=P0] ך|Phک * *T>5R9u()uƍ|c T-F5E炑$a }c-)0낼,-;IIq|U]zEj~M$(J62pDZH"gQ6*C~94ed. 6}y*ɖ9+&\x@gV\X<5Ub (3FdD (" ! @(BP!A(DBPJ 1R?!%37p(*VRlb*.])VtJ (h:;ǟXRW|dG0 )d/ P!ԠM=8U qcc2:~Y>Р$a4?ηSnUk\>01$d#>ϙ|۪*sH =jO=BkuBitPRV!4IsЁOnr2 ӓVe-UZ3T3@ە-CҒ9#?V(/5_XCGjHe}5$iYU X{'K:ušaVیa+8׵"goi. 6Τ';EbZ& (d+kB,wzQt"HO SdHG'Z~'%XɞC*\J BPHxF6Ŗ!Jۻ% FS"G怇)xФNvvu&Vo؛ϫ6Ӱ~BlZU`8$ V0TWs+l4q؈.Ư<CÖ1TYԩF#sbꚻ.g/2" ʣfrTs49ZƜÐ}(dnYS*U~)^:Dt2Q`(!6E)Yb'IލY:ۚQhBKPr6|S6E#r g֞bt}D'[ړRV-Ojjz%dJp=j3Bo抌#H8҆4p05ADPz[gU2W:fdgK]Vuh {s# ^-O پ8|e>z]x, { G.zUͦ;}P3w}5Ǿ~5/is)x(k^72G~Hf$k0̺A s!ز$.3ЈC zl$k{D @rLGGL$dZKMIU'm,k<'ڻ'Cur r(bK ^D=]3Jc܍3R=4A.ګ\=DKEn4 Ӧp5^ص>t4k1-2{{GuCCȀ7`X# +'+l;p߀(̐7,HBTCY7rDsD-}skGIKs(*\<\S½$DV@j@R$ |Bb@Y5tt10_<= rjNj8jCJǠF8IL SK$˃K˽4(,8óPB Cy;G+0ԻQ4#}d>6Ð@mC͗2MRҔ$5LCJ#DB߼BP;a|IR 6K1UN0#ΒOFcKcmY,'stYS(Y B-Ϯ0+L2BqR3C38R 8M2/N85P$ 4m %N FZQ0}?MKKTACK a0mmrOX8*t jXY8EBqXEU5ZlUxuu%Pv袕=NayYibNan]0kp/c]JElEt&9X\at+%Y4І,}F1q^$Eh޽jal>o%m?o[ma ߀lZ~7چ`bn R&\iV΄Vdnv?/d4n]&W劶jmmfa^Fi aMv؆fotإ] _ GgtnOtg /YElGg-FFʞiԐXٙ 㭞TРm837V6w"7md'?u㉆of\i<%i&klaukm摿2L'l`l( Q <)pTg__uV/ HwXЅ#uj8zmxKf^hohAums>q&h?e7{v/{''owSvzw'muۚÿnu2ߠNiŧLNR}o`[{&&FxAz|ҏPqzhdt4j}mfAuʓ#sM(utXyymq~{Tu\$EV^r'6>^O}'}җпAG_.vdqojh!WCl Ys>n^ %+B 2=f߱enI#s$t+Z5}%q2?Sd=;lnxX.6Q9o$f W`w!l`:4uBK8zo݄|_8yS#WȌj >h$`IF5EʙxնHa \,Yj S2>wC `ToOkUՑyd]cS˕~{_tg]RM\~g:I sr:`6û5"nr穹0zBM?Ͼ.qKʼ,I+ !-4w=>ST-I +Iy:1mu s 1SO guېZc#93O̎ c8}1ZuIÁ0M4cPlHEUQ~&nobV9<793S3UcOmg&6M<>=wוgr%M{WvFtxM;'T>Ǖu+!slwYr:s= 4~΃CgB-b_IEI]]9]pZ5)\-]IzN[CڀX EX/YRy^5SuUkALmXm WFmXi&[[QЀ՘]`5$i1ƞM"ݓDMPI!_q)`ԕQ)r|Hͱ#MХ)Z_%Ct-U]iU< `%`U\ҩ"*)& EVߜ!#DVd0j`2%]RR bR|5F̉+Hl < X."2*PU[C#c!d:AC|­a_F FjrOy'>}nb-A"!)bpp]Y|$F"dC`sVK*>YR_&(2? QVԅ"j!ʢ^FEEF\CR #6B?D;Y 6c3>B^:^26'ʑ gI'dM"%!$d#EeĠI!RPOFbLnM"RKqa'J'6AzfqsM]F>*`Yf.*C6D%)֝c?E,hVB%`eC4ci$,,)N-hV6qℤb)})b젆'NdNr'PZD*jr{uA,ʲ"کJsRtߤnÁgif&6-^,8$*`4]ϫīvtEj+VB,¯^zkB6 ^j*-]^XNhfD6Cvij"l*lZ,iPlF..f,2i5fD)jAʬ̂yBoMqڧi$.Bv%,NmjziMȪ-&A2+.X6D_BnN#*BfffF,bՠm..qM1MqK*E[2XF:q,|'Mt%?ooz1"#Ͷ$uZi%C3@?uUm:eq{|3f1??V=s2) ,Į2r6&02'p" '3\7~QE*߆*E@X*p`.R-gSp%rw-+sd'|UW2*#'Lq®ªQ_m?#b_-/4P/tCC4'΁C7ml2E#GrJ7Do &2H[,dIw,`EAMK#/ws'lYx'K{Ad4jXsCjkDBB+knigpR/S['|Pgg-,2N-M:mjݮcZ"D00>[auQ863. W% i.ָ g ߄3b*._8[0.)\;/MgsTw6w?viS6RÂv1˶C7n2oF2v2WGygDFϹ9ygt4uR7vuD@7II4mPwv"xcAxOz17ĥ[D7+s-CGM44|Ot|9:펹',jt~ӳr=xBw)VG2d7DWkWG74QPiCX F\lcVO+#$. [{+gEA"x8+W/:8/yeGAxAT8C[΁1s|s1c|-}7Ě)ě7oτc:Nv$zKytDA378x2A i/v7rAkxJCXg6ۭ0Y5󇵰WL, 6^D/8{>;V}M05w4|h''LgJxFS]I?<~tN:Ohq;{R˜͡׼䜓ԯS<}ge(2,ce$e~CDz޷ꂽL "@ p"0C *Ъ"ѻDNEqř饆hϨ".9č*уC z oz(Kފ"(#h#s'1؄/ɄK-E3#E 7B %5Bn[ۺ +t 0XHOD-Υz`YUq9cѥ˕›XHؓE;zŽ0Ժ=$h;.!aAd[mdа!$%<03Y` RC:G$e(LMW\yB%y&ֆZu3$&.( TQ*d.Tɰ"J,)Jk.t12S/ a #2:$HNaZg1C0-ACK -23*8UѬ" 7hm?:t꽾5.D_f%hu>DQ^v!=Xrty$^(bWpÃV CTT1Sd%)zäJ),N !Bo gkA ϸ5%K8*3mFLٲ$ST/ s6 JFO2`p, 6bBi4jQS&3y cb˸E_e%6?wUdtI9w;d.ĕ jES׻z呅uHx³CdEV򫧃޲R,!5֏rcwrF&R! cst3%)`w>iF@.+zhn1ۍfpQE%H4Z^r4a఺m & 5P"xDElAZ)l9Ҕ"|(2 7ul6LPpO>&K\1m5wȴpR3T7Y݉Rժrv-Gew2{uI3j!zImFuC%^w bK ʸ,X)qInÐoEp6n!4KgdVYvɊ[nd^pWj"//%ln]BipEv)6!mHӋ~RDaF)rZI';оM`{4۾&Mg/p 6W=;g ~~E,-H -L_r'wVeW }N߾ #\$.|򔚄aRYرFH%EO{{5YW%PwΏ$/}yjfjí>b4#|72hI(nƃ~L N J1.|&#MЎ.l,ΦFh(œ@^MI o>a Nz羉(ʨ)nl>~G,j2,J HI%p. ū yAN 2P)TrҍPi mB7!tΨnДĤ b!n+PB-n/.iMC}CN>m0/P(/FO+*PlDk6JmNjrM[ m`n l $O*/(L!J!]N2 PR"PDn|yz(.v CIXG-a[ !#xAKߖlA )ðڃY$1ʒ<!""#0"!+i.2 /^0NIN0鞈mL4(K %1E!3ԦQ1MQkb3ffMKFlfz-pu0N6 i-܊pB Anί!AO,JtBG+"P_0# /nߺ3(/;);RA_,".9)"'8CaÔJqP 6/1芠(ġmd4{L*2-#q1ׄFԤ&J c114B.)<#0dpFQ+pώ eYNA MJ#p n!"o )BQ #CMO:!;- )rS#!<-N$S3@PUۃ"X!>?ӔvuWHNtǜh⠥ 0TcL(pS)(B9[1:";TCiaQ0ʭ,ÃTdMf Nk. ؆/|)v3PHhF\u<n%$>󓂯VM3>M> !Wբo"*A4N'<@Z6ZCU 37@$CAZU_**ĵ!~l["^!@ok "v"uim0g2M mnnPR/ϱ(J֢.3L(ˎ2CfJq쪦!D{5p4INL y`Uxk"bf_kxfzPn o u7]]%iѵ 48iiujQP/QAtVD+R[S7l1S3BZehL=3TE5M$6nswoVqk$ה > W pPVU6iAQ$0S2n% u {`FWla3#Ճ?l95^U6)BW` fnM)mTaɫ}7-W{|/IلNfBICM2cKH$.|hIzF L*9Mlϊ NNI`Q}wOwtio 85X,[7Q5@OAK\O:S/Xxm;Uiur9Sk[r-A#EԼ=>7 ͭ{ BU>E 8 p Š[B)ga>}{^Aӧ޻=}= ]~?~mm8BߝՁ cN%d6yGs}K*r!3AA#2EÙYYiF/.@dق`&@ ۑl<;wX-};].]?[K[]kllѶ|TkvA*\΅}㸗pe~W7t^{ғ> ;_3ӳ X4 +g`ĉh۷"dJ;ˍ4мiHf;5!t&mCmw"r N‚Vj[fY7 NµuQoE { ŋHqmjtR"<f+[dg-MNi2#ֈ_h27Hعim1ǎ$-F=zF)ZcZD-MdB q v*?5¿Y}7_ AOX`*@H!7@@x vA` vo&I߸f7h.YP2MFP3J6CH`@mAEmcTRTNV$VYXwFl$TlG?WOr+JY! qi$Ӡل %M~L-h'M I*j"RWl[:\݆JqAt8ݞ-'s؝^A]2lAԡymt'_g?F9 H^8.A;n*fkܵTvQYu-ZDKw%JiaYٶSI"ɤujtFG}|TkbTeIә sUU,F(ʹLUSnmXev5']Lv Rc7dN[XPʹ4QWjƣ] jjv[GQrj+bg7unԫʼn1F44%F6nk8~4IknB*+u袬f:⨣<^iiMfNNM^zمTqq uy?(7VYE#5fLH R}`cV![P-l(RlHLN1AL VňO򕳌*#o4A=V >ycA!2v~sO ch>= 9oƅ@rڄ:NB>]9XfVD ᨹґAݔCş*Fn$|D1G -vRCAԌ sGy('4'e\ .\3>w#DN.4hGR$y]~WCfG^!uxgxq XE;q[qL)8̱DMdb R-8%L@ 0 T/x%OF{~geHN7 qCR(h G݇|E h/U7#'}q|}nL7p5MHsz:)#iOucrٚ}8ڭ ~YY~q ۀ 8AJcA ! W9J. *Wd" ;}"ewY_qDfrWX`Ur, %RC` ` L˴9+Enqg/vffz"l꣠C,ҧNqZ!rf]J-beH!f X/b"9|&YAS-ٚygb{#H q1x(a$[1Q'{'>;՛g\15 <%@GyQ/B" 9\XUT`6L0G  X4Ѽͫ΋JٛPỽ4 ;4}H}-17  L{7 X6 Y XveL p(= wB?KA|RR8.nxÁE{wMƑXBQOuuvU=@ awa@|qA };?ZE`ȰF4a]>=xr$Qt9]]+>xIE LU *6+ʱZxyAQĞʴАL4{h砽ȟ 9~glW{ˮ7 KcA [p@o7dv s 7Q_!C&M+pQb%vH8FKF"otkn;," $ &l8 =  g@ z MySu'Rbm U4A {{ ) +r)Z7zQéz1.N>I<.{-~^=Q;4_E E()4P 406`rA:`G5G57TWN{XL]e1 |X*{ 7Q~kץL̼W9v˟ֻ!葍 0 ͦ٘`͋8~ڠ.' s}`@(`Gki%uS $lV`ˀߒа 8\p++)ҷ@ ݾ* *ݷ|+߸a@?. ^,d`0I$t/'r_ H K$#(=)JJH>lbhTGei""zV.hK٢qȖrZm \ajyؖc/!yL^ ~o'p|Q6 v3g>̽?- p~٢ A?u agM ݭp O 0 w=Jf ":ٞη|[U^y};2F{h,ͷ7 qa:41 Ȁ%'sQ@%=L&1H lٿfE-DÅN}Gbo~eB?XҗCkҌ53 Ō!˖.K0=Gt!HmقӦO Gu«b ۪ub15Xɒ[kVôl۾UXի__J~s?J.c`$#"& *Un>qpiҴn@=Bvf7n NJApU<^O-MfӼ1VCZ{RϞdK'`,Bi 6\qB +\B 3 Bƕ!C1KPEUD6hAFs<3bR!ң=[H\H(!qYBh o*mY(rp G7Sl34R$Lq zƈN%ȣ|A_eIilr顝M3R1è*ա 2J*pAժq*,kb,_˺k-Zh-ڂhņ ̘ګV3Vyh̲0y,2LI3Ll!@,L4φ ^׽ȽA:_zғ-;}cN5o*:Pf] }e,.,a!MU :-mBU!%B υ&66*Cʀ ,_ *Rp2<ŊC&` ."IbuxCddBѤ fli~c$9hj)CdR!ya-3Ux'+ B Ć./Q"%&M2=dQشi3BL ek]JΕ}Hj] -W@ IMD+cAAdI2JTIV$w1ɝ5Xa KF%jW.X]ං $ @/:U)'9Tl]'D^RWQ[ÐG !ޟT; O0gSE?P`b,:)N B-oV^Xn#-c m|c3KAFxk\ ?+Qx#VtbD { +H"<jwcoO jkp+#5ztHf11l#ZBׄC +`F2ٛgID?O2TF%MKݒI `ʅ?JK_YJ7ɥ7I|(Ck/Ia2m0f욘l"#(!`2DZA!?{@[,Ò,3"Mk3,#o6*8lsPnK@񀡝s*Y:*$Z;С@8+H;8l1'XyY xnHHɈ 8n"%08pnh p*3"!!'p;`2p0kC#*#::x5"%*1ȱ1`ëC;Pe! dď3XU\U1x14:23;y9; DaÃRA<<-!)q<-qg#hc/9=[T¤(cDT 42G0A5UN;%L5c>/Y(LJ-GOä(-Dh$DqXH{?>EE#O`3\4O8ɻbT4ɑ4ICXx[:YXUh@<7Z#/?a]83Tď0V98DIPO|8aȟt)x1p Ȃ x |ʞq/' D!X*# 688;:d!'"H"))ff0*?DD%:DDID+:d|2h:t!OtDĨJR<9A<jZ2{K:\4374K:;keT,3H2[O<{FăD4(=FZZpOF}|H"1#;]z4JXƒb$DD{d=VJ )9H]GLJI]G-HL-D(BB+$AJ$4qXRBC<4E[O S̻I%򼤗ɉi8;/;L8QE+nL,M84ܡЌC`8/Hn8"DKGx:˚yCt(T8LȌ%NI̘;؏DpiUC+ |ˢA?tCCx"k:"C!-J8̘ N;jNӸ\a.rW2/ƻ$bQ!;@!ءcE\|ɫBEb3W2VPП)ƈt̫aJxEPox2yiFqPO=Y}ȇBIR\G](ч\B;Yȓ3a,ьDWNgx+`]HHQ*!g5aҐ IAJXB5 RPB+ƻվ@5[3cŶҐ [Y@?lmc`! M::|˳,! nMȂf%:("9L'˅*c!Ix;tQN꼅+dNk2ʅ +`K?#TN8!*z1bZ)ź@!z,2-ZW[_dBOڨZ5\Zd\Ž,j?3;d$E\%'j0yH:3A1P]Kœ$[ͤѸuH=5GhE(}ѓEغa؋فE@XRȓY5ڃ|ТۓWAi؛ScW[8/(a+]T`<)Һ5ZѾOgLE@k^lDZD@kstl)NSh=(Qb5'W=Hͱa3M$+C.톌iʭzK_]!PB [}%cR#LҌ83gtMl1uƍtf̥c s!flzl n$A,OxC6σaLu`M9saW悠6 ́6URDG%̘bL `L"bB~Fb4^x1L2jL>{Y2Yᚗ'`xD-cs5[=H^r$IKƄK2av.^ v 9s\Q@%tVIqc8gF ItDR#Ex+PpIQG$JrYJ|W/ iWi̔ųԓ vsCL7ؑTR*Se{0D À\aڋZ(ֿV^e`ݒaV &m)aM6dV+EMgqzLˇ[mjUʘ$DlW4EgwݡENܑDe7po`23,~̑ڔ?(B!q/cL #;!TΕ*Kq#R$,)@Nfu;6Q|QO2.b_k 䋤,hHz9$I$"砌ĉk2}Xd]1dQAW@"$P?!M,^~yѸIGa^x_| YB*HY}^bx 2R :> NG !K@)0 0BORhK( ܀$WWb{M`pbt6戰Keè{ ŖU+Vb&ٌ4 G*ة K ,e,Ql"+hq*H$%+)J.ɃdR=o^tn?Lr+dJ~HU&xȥHQ GfnF*J]E7T5hog.9鈗)RяXn5#HF4'O@KS !1df0@"Pdc:9q $,bA)}cJ*yQC"BF! q$I])eb C(BT 1JXc?** 0AD V-e WNÒIM s( ֮"n:C,&$ψ,G ɔ4qעbGlWIS?G-qbb0Y|`Ј%f-g99I)bBBZ`!H<#LPڱ3>AJ,txyɴ ։yBI88EBt^UԭD9!FuS0x_sQQKF]=ѧx  z H+P (PŻlS\8 zl+N`9GUj!`JG1GZܮĞTB!^eA  ݐL!6 =+PW8* "T4bn?^L$ b۩"iVQV1E8^_%X$[ DI͍'\aΜpKzEv6tZXB^RLQ*PXq\RBvJfBɼ証,MĖjeNĈBIgTBIW D4O2`Ô]Jp]<Fq F|(AYEJd B(DCȊA $2b=N+SA" UΕRC"h(A /6(ہkW+ b(ڦ(5HY"qE(v$twkqltȆXzK 2QÊIvՑ^"}yO NUB*Hiu ӂjT궓5Ǘ}s>Oڦ T"%&䴗-~4$1iPcGm$\ԆX (įPEKCgu[0..uI@FT RˑqB!rpa\Lv!{y!WTs:/68G5pTeDE|f%]Y*6 l@8AR@9+ oL$¯*ȳ< (1&>3v>@p )uECwX`p^4̰([$ٓXOk0FQgu*0c`ji.ԣrXNNLͅ-jZj*A]g8WtӅUxCHu{׉HȍD8eR*--$-8RlL0lG2GLF(Hgza#C Xc7d7Cn%De IJXB$s=/3|z@3>|ǯ>*BR4C *1J4^L^y44 Ĵa(.4DDIIM@j=!`N#8i\\ٮAqMԏԎg?COk>SOs/D]5MȔH0ш8?[F1wdu_ 08AA(@&߆П;$TAMT+|"./5䩢s6's:轀5G ^=0F9Ihs.Lj(Wn@)fD%  amw[ig6doe ԜJX}Bi"- =˵ [1,A{?<i {<C{+/sNRU^{2ˌŲDZTca)=Iꭘ})ѭRg<I[8m!2*2mqkyƄ[A%`mH9XM3΁l"D}l ӳ Zґ9+|eD IƯJ #2+!g +Ġ2*g j$8P Lcs7e]R5"f zX)F5rW0\BXuLEGjEfN1DGiBMHIۤ@B|v.Jb@icTj홝Q c@[պZZuK1@?d PU³;9z ?3 #\ E]v/Ϝgp thJ=$qZH 0'dQJC^b6KΗK~2ϐhtH#8ܹ#I;q$UB, n)nK.>:&M)v'9T;ՒnD:ppF.P8a"'[`щqD6kVlέmtKM8U蝄 6`>;P }^PFe@P!~ NH !j,噫6{* ]*I, [p2oM0U, o0 _>JKT&rAS85SSu);ɦ"*t/$1P *.,bQBp/-AKa â qxÉ17$ XDh"*A2-{,AhqXDi8XHрETYdf6&D:сy&)dAk~6ۡ:׸ީ@ BFyHUjSP?#(nSёܲ R(ґ+c;3@c\㮗h!hہ&MD" ~3) UZݪƙ-V(fB"N'(AAG S|hT@o Er\$A DfE mbnZ k$Xĵ\܆< m[>\¨ʄh!H+t!ʬ9NaAa +*0Mjl2)?IEZ yPo%DvjjBh~omZ W\4-%-nωdגHcNc(BD 4KFH&4ln"t0dqPpi>onk& Qڰ-X >pP0nn "o0%QN""7pl#!R !˟00xp (paU% kR g,FvxAʥiJqoDRXD@ I$v0r/r˲`ư ҐIh>K=j;9 فTTa0S0s0A1M"Pa2G+F ̞>@B6qdqƀHP*F( A@ ERʤ nIfDM)Cn/BN0U01Pa S!A10SL2o"T$A10$z9V,?vn16CI6U @,)ϋ!p10dDH~RR:X9'Ye,4&"%dF"S$"*[0 >QUq Dv|ҿ>Mq \̾mDT˟xLOO$s,pzx"f"R'c_b2a J3 2N.c#edNNP!0cQeb*FqtR O `Fr'hJTPd'?Cr=ΔDDx2>@ELug@r ;D*s t 42OUaPUPu Sf! X/v01Qbcv!jE#N y0 [1hFθL>V?#Im`HIR@r@O- axe!u]~BFc44d!u\~vZsh)7u6 $ 'TM`lc|,:>!{KBkxN4f+vPcSzj .v 8ԟRx.T zb*Xc Or6OzhQjF7ZcڮƐ6v P⾋>1>6\$DǞQzvĕ`5͸<&.mG܋9(Ob#MOOo ! OMAXlJRR62فO!/y1EyB ^4O6yS tFChjίOkk= Ovtw-uWsp7n6ꌷ*J }Z"Uȕ\")A*~! L~L.f wμDÖӗmIH>Ҕܪ yk# 9׺ e B1܀gPB%E+κfAX%!O6R@bg%syPLP6y'RfdcEk I öt/@vXGs4G]L)rl)Fb :Ѓ:kI;;.(кꚣ"2O:pR<y U`ϟ6&ّ)9cg`ڄ+gmN*yrP;pK!?m1jm/>VE'D4 ird6[ mW b|^źCPDlL l6XЙ@DјI? 8/9zǞzGSeq5CAeQUx[//BG5nmܫXNc]ځ'+Bt 1fO$݃z= $5Oq>)_zIZk]!~GZRUƈg 6/G{zDRH`p22KnqisPpA13ef % `aXEM:NT79IG&w>$ٍˍ:mR>椉Pv|N VF4a@N!DF2S<~ }Q/Zzv"s6Fib/ &ZAXc}P!2p4&4wFM܈Z.9^ ԐHfmxlɥ,*?56).JH m6LtHdԋ E%TeM^ h6}ڞ<-^"H ` n,!pK1` o(rC {2f&UJŘRС0Ha̋4,X`1+ v Aճ ĹԉPdaEhݪD!C/&"a?Ҫݰҥ)LowA I}ƒ%& VIOU:qz5˖r ]+?)ՋH&װ @pk3m@{h C@/qxyȌ#ׁc߉ 1@ @|(n}ƌgu{]IDE b & },XzWUN%V,PEiMz?c#L?ã0}h/uqqp Bݶ[riʻ\y cȀCH01pD#^u~(`7C -U!k)bJVHBknä?[x;SNd09R8F90$l*YZv!^:-P&LP$쳯ӦY$.T1GLd0*z8QX!^`ss jE.^)kG*TE__Ǯ Sj\nL:&,M *jbLt$%R$!! Pzr&jڴ`K F=qFx^QeAWz&ҕ&b &"HBBǙj<JJ٦665n3f9`ȴ5FЉ0`Ѿ#HC}zf(<~O!8%* *Xd&~IZǠ5iY*ۗE;EkkZv hT<Z&/K`:7= &{ŋ MdSQ?@$njm{SUHC\>;Pe.::\.QHy$`~ ~҇h U M-uK JLZpWd'] L"Ľw* tbf$u \LASN()?-1&щU\.mԶU-/,MiUM/Ȯ$0]J"{}` L r4& 2 Y(u+y*ءV YKhF03'xf4=&mf_ٯ=w4Z~BY?ґ*H'S *Ϊ7jX X%#Z?pTkji(F7 JsUrJM%7J3KbMhI8l^4Qrvq&o7ʦp>(UNnBߤܼܓS:2PO/UUy_jĭ(e@e.%fpU,jTaWm?Z,2}I S`"%tK\"M`rcQѸk 5RJ&VpVuvIdWQQ6f 3%>Ķ٢2~+Mզ5vʣ Tn#d ``>{D1< Т\$ Ɛ_1rDg!{RC|!p,Z k렴xL#gH15m& o~Mn2rM=fM>6*v bw#mE.48)D U–=.?MRA&WrwP{gs-VVP-QMK#&5BUn=&*3nt#d.`1^:<.'z*f(6W=$!cCGuY7ŷhJDSF p{yʚꪟN3jxHnG c7i!A84_k^a1X QҊ֑1}շ42oDяDa`F#,2o͵!;{2SN;,Pe}q"Vˍ&|XT wrq0-ai>s]S3rfSF؄NYLtf2UOUb[LSMJ : gs<<.-VMw9aAMM, 5Ba B.Np;(R(E] +#1Yw@%9$]-*+r4uSWDeruI8A]-/AWb"}_).-0N^L-@B0aA5Jn$QF@]]D|(PÂR]HtM8Jzy'B-ap7 es4G6yi隙d֏HuMZ!zgjت01؈mȯ5뚥`3H{2w8k^e BƙB^k^5EZ5ڏ+˲MXQԯDa~Wd"Mȏ 93؝ ᩀEnYSwNak UN V^E׀ ڒ/dLa`%6y% \ YK&S?e~oQq.G؂%@,Tt0Nir:R6&^g;$PX(MM,PPD7t~ bNbWIQjSO?+q$+^W,2M,@al$$FgR,bxވBR=XkMd˔clC6ͲإPpif<`C w:NI[gA U\B;Bp6p?u Q! M J /CJVeh DB 6[m{^l@{T2, &LE0%Z'tR@ar &¹ޠE ^.z`ʕw/ 5Q&=nC.򊏼G'j) ]4(Cܞo $PD8"('8*QsnrsPݔ@U<~X<`j/ ȬňWD,xWMJNB͑ i`+jBQe_Wa#1D Kڒ\bZhFK^M 6 _(Łd 80 ,?dp:#7M^F1j ^j<:f-b˴-Anôf qrƜ6}\Y֦v S$(S0%zfp958GmU%b̦0P:"nYUH iHD8crB6C04Ne*Hd#"Ь#vJ c8|gH5f:}IE t8&n^7 lZʪ&xZ?H|%|D=oA( "_Dz:jVTSFYILU\B@:S|o)?)+F^‘`J؃r?3Y2.p&^{01v5hLHbA @!0L1Mx21k |9&U-`ALXRI{"0#, CA@XpFLȀȀj>,$#"):?#mیNS6%?:rhǚ9FȍO.y`뒷Q"SG` ; y'q %@XC;i A (: lBo/@`(Oᄤ+>Wx@ ' ™Z!tH۹) Ps:aE* 4ȧ/˧2화I ;Ta0KZ B< I"TQ"! !b"ʘ y\EBr;?ڷ}+ ؎K OrxHO 7PjT4.pT2|@,/-kQ{/YBkTLŬ2\))12&Z:&!sRT4!ĭ6@)ߙ P "NW 0{ʍx(Aˡ#:#$#

bg7n)psTNEV7c9Q,/Y ͒%ֱppv(E8ND&Z :31jin 3/ ˹*蟯<@m9Bj0[)(69.3)гST2v~Vi2+9)kl%d|Z,E҈'v4Xɛ_Y ^4L 30ƃ<ЍD6ҾEL -cxԚ M Vr!e H!u0`U]b|nmVjZi5(^3o^HwuOrgPN#Hh5pŐ[.VN b/^pKGE"T:؃s[dKuH։+@#?^i&anS2u'?ĸ]4*/ʎ;j :S);3BЃƮˤPի"!C2'KO=}SQh 4DܺG܁t:MK;A4{\!4mqLnth|zC2$]>S7* g&`&o@a'Gi5`~#10J$i"?i ٦S7ߦ{"?I5ԐD EDnEduYQBT vr t7ܠL/Ҳ+)@se?CѴA*tEOAOcXE9$qXiY(@4t}WvYVgXscdU!@p_kVX<@QU˙k!lpkiWwn6GQY ]КIWVҲꭇ/ _d2dd2%ā}$XӁ$ЭB` J ~ZX"B'{#z836#6 9!If? pY Q NBikPqoMy'M?CgbEvo,5:~>(KZH:&aiܡv)d?jϷ4ӷF4?ЁE%*JTC뜬*I ~6_i"XZ f2P7̂Q Y01`+[9JRN*dA\ l*`B^0)!aBDt 0vYpj肊18a9 Y r!рJ_Z*W:Zpծa$qی%6C3m^e(#6bT:tiuVa[T=3ԏ>aflxr>&.IQ" 9d0ɒ3DxPDD l#f4G:ΑNHB 5MM%tcVqK` N8ޙ{f"tA 4Ob@B z'i5S a$hB@>ET:0S~t\.u)'ZHcaf~iū4 HK&) J0Bl*%NuK, Z $™[FI $BTM2:x1X8[4Khx0]`@aU3 2jQr ;)C*!Iš vřv\qr'eN% {46G@D@!wWdKRl`/{yQ4S$3=1IֈQf锠\ԣEZaDK-&Y~'LmzS?O6&;h@:Ne$ro,)oZMO} SXVRnhhDyl`m +7uF 1hh5npSb@xItdHCt%-ir.i-rY@X|N+h׿Rqa c]Qs1&a 8*MunQWT26h5kp@&h4LfʰFf,-=ke l4ld÷= P\I*"l -S蛤'!nF98CQ>DLiFNPIˀ{ht!Fmq Ekcu` iXiv&@dL$ޜ*aAFIl8zYR'$D%nQXo3tǗZ"um3 ӬҖIJsyF^ql۔0[n RE"y%vXV!g($21*Z3QFH:";C=nvCPÇ'\iDvX4 5°,j;e }%F"e%6]b uw|i Hd=D֥$aQV5)u-,h |Z8+`$Vd(G{D $uRȉ`WxWyuWȆ yuNUIYęD`Wӕ =X=!OPzd> ICIԋ!lEWA] Kla nh AKɔLlMi̋]C+Ѯ9}DL Ox !aK a!De-W|@hWaKRNt IQMM Yٜ QXMenAXa.L/0$T ڼ@wd x,`qYx1ڭEW`YnFǜLuʔ[0]ԊqTquDīM,#uM|{ĄwAyzOl/` 闍m4m | ɍ< ȵ;d;x??@ ? `?}؇XQ%ܝ4!DՀDTK(]Xzĵd0 SNO}WQ(Ce^eڑEYHMqB, '^DQ AFK' #Umеµ@S,E(ބЛK"{|-Iw ؍SvTIB0N4h/_W,?`MpQ$ 0`0]$4y@٨|HF#:*d1V v#qJ\BMlqAd)OUsB%P΄ 倇pYYH X H@( (`KHXHJ~KnaDOf e|x.%ЉM%eUKDԝD Yd@(Kr Gn܍e! f Ȇ*Cl攅FieZp\? HFPFhRs`8؂I0CA^ndgzLa͂W5FRXe-(.|ǂ: xD2UMdUvGfA_] -F"31[EjN0\k2NJۃ6MD0ĸH\ %xP գ#D,T䊚)@@ lΨ )M@ .Xd-?I0e -Kq ]DѱCi%oeDMKt@1RQX ӥD@tLjF_XXn!oe.Ge `3te1;0$8L$ɘW|AUw$QnRRgj,Z GP(,V1]nqŪRK4I/ 32J` WK ,fP}\ |j`=D@p}I8V쯻ZUN_b_tbkh, 0(F4ZV0bdI PrtCp/[DLc]E=LolQ EҼB w j,HSCLT x@/7xOJ!"TDI A!hmIiprK <4M`I&(zX 2-uDe֚EZ\`bN|q$KXKjP$K_{A4x_k_qDGBbWQn1kpDv Jz?b̂jD l4) Ej/Ũ4PpV3rRQhgnhHo8 h6/J,7r,E(ѡ \CPH|0WwMm6MJ~+VH[|hEٜ,%BpJn)FK!jDalkVNat8M \MtK>8xܛDHA584dKިwm?4 `H(ժzD(?Uclᩢ~r̹i$L$G2Ü!D"}"=#IǽK_MYFMC i.p:b$5!BdN1[iۮ/ںƢ@CIIP:h NJ~C_(ۍ*D}qG\I{[lҦ}OoĭNHIQ;du\IC$IO l4 ?<$Vj8B<@@` (7bEo# &Lgb k@JAoDL2|0A="x tω- X@Mհ uI-0bֆ)X1?b!5K W e{hO=6PQ SIԿ?| )B,EJ2$;3 5jgQkCE@>1,#HK$ ̼MH!K,'dP ?pƀ)31m1ω8/>K;8DA*A@ ,HX J 1(x*1 !b衶HHք 8X5%bivv\Hw&ǧW}ȩXMꩫ}J+B@b-΢fQ.\H1S.31D_3'蘫W&rnfChbּNjh ):gAeaN,fB{ :T,=?IyR$oG7L 7+zxx;C /13D8(/@dDaѢW[BGR"/LP D0B8鳃N8$!w>KI%/3N;̱A-S4"Ǯ7 Rmm*YKVPի VzudYʿ5T"&H2jZ&0 K5D0׸V-k(r? XSCx !nab0`jbŇud@BBǦ`/NDqP01CDB3t2 ǝlh7cMєҐF9/;t(cwA@B#3T=a&%An c! 2" EYB@0)OcGfഀ&$gAZX*¥v>яP"3HMbRHԩv*xgĤ4-|[]&2#i k*طƔ jԠŽ)0}#b³K7C%g? +VA ,[ Dū&@0XZ o,X-$+1xT`d9@ \$b U].tK3J@ N)Ȑ}CYiX2<"J]iiiXæ8D,ɢ4NT9DSod E I4#HhZ&HFnQ+(E~0@ܷ)Ii@#]L frq.b )[O"8R- a loOC>>$K$bp9BªTK@ F!JS+鱂$#H 5 I5L&4IWRp'8m)Bu[M!!V`_XFLz=`:ʹ v"BT=0o" KcKG(HNY+Xa94sEkSմ9̱-tIaڒ#[m "#T.*Hh32ygeA'VLjΈ@&;<0K]&'WbLg9S E3R׹ nE*ϧ3h/F ۵3yOSy0~uy f"YGb?WƸMnH'@+K WL]AWdEy$ p`!3@2ȯHa ծnY#|Hj:4IkP+F?J,5*˥mŽk`*(JLIS+u,{Wj5d6i1 ec&L.RΦ 1oӈVM0̸/$J;)q(e⭒ƣ#O 0K2߼IG rdi j)AJ>tG .K%ξm"r̕`vdgc?d$| 8B,P@. a"*bIVŖ'>(ʱ MD', NUV. ̶lˊ|֪"6l"8@@"L`ϰ:@N`H倫j%+hgYZ,  BF@hXΉj.zGI$x\,J* P&b1(" 883M4kq#P5O\Ƒe>,b22ʌ HR.$+DBf΍CMOX&x$tc?4Df!H6` J.6t!r"&r:&vr(Dj?D⠩@nNS[~bn Q@0.*!m2!_1iBb/I՜crcc.dC2zz+!ehK܏s<;R C<^l(%md$q*B e9C 3'3x3,2 k >&b!ma_vXpPĔ|F(GdDJ䛎@ldvdg?[#=,*)vSJuuVLT6.jVX'b*Bâ)J+fNz+c(bMM$0Hvx/.T" KUnV"6i1']6Lm30(4-4PsD"$* bb">φUORJq3kx*z0s*TLe*f0vKi 9&axn,)ulo\gNDJdOʐ{:aedx@2.Cƭ@2xA!Tm*D`+I`AmFp쭣 aȃ|.bALvAjt`%OIFf+<'3tgz(bv}0jGDp"fB?nF,N-F+RJt31Q)~Veqj׈jEBy .{ΉfZILL.HLRMR> 'wNKM vvd$TV\%XZ*¾J"*>#.٨L8$H(%FwUo`51Swm ߘWiqt t*pjSwwk@1mi[/zk~&"t>@R^gx<_,/.B|̷+4= (c"@K0b&xy>B!;d" tO+J%" XJn$v$AJ $}X'w@06f"!#Uɻxؾiuf ^ubU(*쎇&B*kL,rH f &lΡ-v)DldGM$cnO$HHbb|QT U:Yi/oTb͆JTz4'"\b6WtqJ?=Ip8;TMOE7Wv)0J `Xe9@`iDLӒ@&e/ 'lǡwpzp'@y3z0$deV`'P˖UpJ+i VbUaU6tkpzCupg@y'"T,tXSk ˰xdy2FnABŊDxO'⫅a@BBVj!Z Yp%V KoKa[EσF4ls'b#LU @ A ꒏XÑ >YL1 Llc3+B237OK+B Pa`芵wP(fĸto.ȼJLN ?"ߧ`v1 ׽WKn `d`|yM /Agc;c9HjI>P[DÔ,oFznBw&퀣eHAmT}iSw R V_Նܽ2y"4U{ۆhUoe;a/+N]7!8!~ץ ]qk{__hR kcX%GNĩ@J1 JhDWX3B?$KDaeʔ(Bx`f'v@3ġD%fhbTpJ_TՌ4"$lA'U< ۳ȑPișl-vk,X4Čzg z졤t݄ฐ rrQ B۷9r v/oφ $6KDƍ%"tSw>?,TtWOtɓ !>򁇓2xR{!QiSELǂy)Gq7{4vBG3DG dDvjq6yء,ѱ,UdB,&pc2 p N:i) lDeٓCip'\iW)|O!oabϘcn:aMHdb$&`M_vZw&]@|i Rу$ϨV|暇GjPJhrrO!1k-4kzzD5 vpe0-O&$kQa[ҿ6,DN",-&Ի'o`]Vg~!~2sKXM "vWi_aq I5`!(T䩎Eaq(j~șFW ɕ8B%$"iv(ܘ3p$%%IdIOBYTi,[K0I),]@=`ux5Mw]5904xaNB$%MI2U(QBtd3@|&b9Z' #ئN"HP!O.;O?xPB+ e/͠\)0\$ʃMRbsc:3U(L(OѩOEd-+X:4FբW\]k,6Zp qډV 1ghEj"rEgiBnDGޡDdD,AJh:15lh3aϰSdJL.p͋FI`V$زH@,4>=0I;Lh+L,B}AD&4 s%v wK( w| 7D,BxKpE԰ # (?!Hiaz+F,hPnHR EQ'Ѣ|jP& *`+II-ˊVK[ L4B0''-Py;&bDV@+Ze4'?E"6j$čUb/ q ˚ ZuELmKmFhCAk\ D 9r"K 3QFK(4X' 6Xj T%q2>%]"9A"H:|XE&~I$hK[GF2 *Pt9&|[L2aY_#E^ xB> e$r!x~3Ik6E{)4C7f-s!GZ:>E_E0bD8'%U%.$aXItS`]dtÀ^:Sš cks:a?̶n<'ǵ jQ Y$#PNrV ppn=eEqDq(Kp(B .xQt&'@ ,xd'Kf?e.6d,9RfC'L3dc/50Ada,C'>PIDUTq'741ARN[ƆfuVt|@$nngl{[#V{c4FCmwk7y$(f!2hHm!hl7?3eF %cL$7;QtG3 8 #Gl"a[e a|lP#kS}K`&Ҧ\&mcm#~&T`mp:EVU&&Ldd&m҄MxD+a!tW7gSX=qp(j*`>D* =ɢ=/cE/"J<Ł+bC&bj bI ar\v%i0:%[d.#9SsB<A.Qc҃&lR;ƒcve=Hc1AOAD>+3vrZ\7A[J1҆ŕZ醟"13ofg|Q)qfllH!gi\oZ..90,Xxb/McT<QkWw{/bh6la|7 A?$B2\Å7m5T})bmژ Td*dLddnnj2;E5N$7$1V "r%)+SIQ)U P!P Gqgq q6/ )B*"C&")A#gAvA.5ǒ['HX'cE">) h*('8f;Ӄra91kW+%aCL0)Du(txtIhV2'blwY外%3Fyؤp``:f $ai@27pxp8De:5N.M3%bv9'|F8{0l[kV8F y{79Q} m,\JLmާm~mh:M*&It\ͥ~wnNVUC)?*z.2 ) !*!*՟āY)Bpn&瑘Pbb,5TNbAPrTd".<9hjRJa>7AggZsSVq*1R*Az!c]uN$(6gVga"Cx8klQ $e\)"o&!"mfjZ$U{#!}G.6))Rz"~j cG9b16bT`$K`kW ਿ6$-){"{uۙ3\L[\~aɪ/ù~]rA$ZuAOx1\hĂ7djh+!s)cEp +R "a O*ПQVpA!b.sd$:a'R>c %ows6A]Kc7K0 s;([S1;2+1AaD{%fg bgPT\lG\@DCBd!x(Gb.kl+q]kZ~V)NC70FᢥX/,70t,s{F0{wheWk_שJ2%%ÛommcmBbJgJȴLALbIA ԣ&0D4qx)}O3I7Oɿpc!OK+% {wt)w?Q~qQ`z0/Q'( F[fw];/ f+ FUWZ10{R?$b9|Vqׇ1"yXhkmJnJeU|&M$B$!j0]ёРh^fw?ht5p -"q'ބ&>sK9>$O0 {|puV!Լ{_;2$I*}&B4&Kk9tܪ7™B8&?:)dU?Yc 1IڹSs[,$QA(c eBYE$!`p͊sTT?k0).?q']a̚{AeM7!SR>C1:,(0775(spQ&AUW#DZPia(WToɨ+Fl5In,|Y[1xSlf*\'#lkF ] =%$h[,M?9nxrc\9V~` 1Pӳ :m $X 8D]kn5K k,mYr}Tͪ߇]}Zv\~:VD6^Kzºqj\1+s'V[172J`ܺ]VxJJ -Ԍ!aQ808?Q"oq%|-:尭/yaj4'Z3PeoOC΂wZɴq V"F6,33]7@7KbvQ$GRo(vT$g!mN {'MڳmI,./d./]q7<##4F '/ 0D%Ưg?IrKLI TTM# 5`ݹĄ[&@keͽ^V?H'=I+ ',_̻OeO6˭]V!=a%Jr-uQơno5oC=:Th(P(0e3*<YrC*D^+? X% Mfe_Nivx!36{(t&FBCCҵ$Sx '- K42V>vaR'. ]BMn)mQ9wRM-NǍ8#mfn4]## 6M'+K"&BmUͪ]ǿi"aե@@1GDY n 8 ; A"Z?,<(QC C`P -$TL-JT"3FƜYS Ze:CĔÉU$AU+`ņ%;FY` OL[mT<[54ڥWcC^7ኑ !fl Ì 3h"u H#Gf`-K a{PE9%ѥYBЦϾPBv> '-$0-ΐqO7ZQ;ǖla f,R U4r&_y!*P1Yڥ2Xu'Y`<َ€RIamӲ]c8P r#:Qmrs`44PN5?mg:`$k:C} 0b$?@X6+kĚ5BbF$qO*F$;bo T K=0 Hp|^#UAuQuHSt;&F -LTH&<ѩPSD:DZ#۝tyG;:#7'T؉B] "FOYy TJ7`!OZ^'CSB#ӚDE5a[h%,  ?p.:LBdȼ"b[Qp|dU)Yս2bF6]1'<1 g73IFe2-!qt'yD9.@d|,vMZOԔ5u?ܚƮ1$ XWUl`c_86>a݁$T$ARC$ {c*:AG71?ĂVe(CٝPȤ6AlSEKBr],E˾g4xL*Ӆщ;S#]R0xgڽ F<}+sIj$W׫! >wㆩԤVi/? }@T\}-oq0kЖ _$@pw.貀H/@%TsQl6фW%VlyY`SFY5*Fp(ĖLO5Mk; lHɪvhp߅1iqC)04D+jZ^.za[c"YD{`)gªJ = )HWdH" xv$#١nU&PӢV`(O0TV +Pc.dG%0un3”%hJ5&R ܧ'wKppT N63*UtJ6-eAv"0h&'/~sB7,s_ ڄuV@K%0 ؖF\\4G8y- =eQ%ƗXl F)`Sz2%FaL*(BM"mI;y0ϔ\ LI{Pd,o #5e%\b+FhB^9u~uFֲ.?\B$7"%VYxђvXjqW %,75rzzK_El/ -DB/0M*πF0g=0Sm*#ko$ 7gSa*x[3 ot.6p.CTV`p! #cCð1Q1T)` KI!̐$8 ˆYa' 16-r[99#7 t#"|l#ѣkBB(̊'#Lg҄n0,A*4)W0H,MXs4ģ@:C@ES$gҒP I<3AmB*ջ+E밍ۈ (sM9t Pb9ĿN{87BSTD 9r?Ҙ/{8h[ā3h+?s8h  Sp)c"m(ʗ@w@L9s"  +ΐp1z8R/7%;*D%):=[BQW2KD3HC/t&0,4;țFZC$F{9O{,A< 1񫯨0D('+tʬ鰽 J,.I9pxb# P 8`>ʠK0zt @ @̺psF|#I鯈k+Ff\FhD FLfol0˸t qIMr8~ٗ 䱅9F)ڐHLK*; +($=A13mq#iO:RP8BbI[xLWDIE9FƂNɘa). LnC5#A2Rr2ʩԖ1.#XRژ"%*!XZY#6ȈQ{ J` uQ MI7 |CZDt80{FK7k@mF+gtC`0tgd<}i6ǟ.@-)k"@!b=Rpk~rP538=P® #TQ B7 ĖLD3t Wx > |Y>.ELJD( 81Ӟ8d3u8ktFri?kL3Y 4-S%2%St hZ ڸhM T6D2y$#Q./)b1ýȝ1 2 U) º(2 Ay3+#+$'C\cML`8>q%LH]./x/h]h;H4iIQ$& u"Q9kP>=<̟>#S0`|Y 6#SmYYc៕nSels0N84(251 ČH!~Fmy" R:XH>58i9s=:H(̣>9̭3c:NWs9c ce54[(AOAj5P5}*3|,HP,#d‘"|y#(!3DtXiL-`!5'P=!%ˉI/bݐxHH!C95; *um B)PҀmw ~"Ȭ|sn-Z0=.c ᅖZ=%8 (/ /.0cl |ZT2B'B*;:J@&dޓ(#cȷi\c;\Up@4j76j:p4q%`$cX,cOq7-O(Hֽϰƈ-c6F몢Rz,QP".OP.x-O< !ހ_Vњxbl4WɞsО1wefؔ87Ԑr Ev>فC~xYm *q.BnH?z` vYxg[8zn?^4M>h̔ L F0oq(jY\#)QmܴM)"1N21IR%U¨;̵N.+Y Y՘fXUJ=qL[*e%Vccں X5Ȁ zJ;x[w wny #[X0€ @x=|yeC[X^|ME@kIuz5WlbOσyōw7'/ɿeL" wK>Wze/[R,+ܷ֬^v vD&T<LjCEfv & $c-8@R7@*[옛{ @n㎪Ȥ*?ȂE,[$_~ &/2ĀG0 P@tALt ^ 0~iB{$F,H01 3TTRG5QCYPܩDUlYTYeS=UTQVb:[5W w16ye&PfYaJiK^uKe|mv|a;rIo[ґ]e~QJmvK<1icKw@w2k P`I3IPL4&kq!q?,φ,8-,@&_Á=2E<nALz%l&vP+d㣳< bjfK㦜IRCR;@%Ą١UD+ O]y)G~gL2\LOM*AU:?U[pP9Sa%/Y#5VR6d5vX.aj~6n+0juuae(Mu_yoʲ &Nngb u#%]YR~.y j=4 h$QWUQQu*hT BCFw[tGԐ}& ʣX ͭ՗ ͉[I, x)t &ҭD   ?$0A3ܒ-MĉtJ.Y1MT 6%^TUoE\| hE[ SDStaaڱ-PZ$^^[aWԱ Q߽Sy^ UXydV̎]X*. AIt ] ܁-̀FLϻyyPMHQȇ % 6MH7bP`8b Dɍp)lݜQu$Y_H ǡ#ˆ>bm&Q :*hN EY7R7@Q;tQ P& *HmĠ,JUH҄LDHTG ^3U$HY!J!EBpE[Pf$E&Av!"&bb^:ebmb\':᥯]PtД iٸ+Z ぉ0QѺE{iyW У3OpDŽ<gYu}HXȆcQI9`  p - s ]&>!`Y *@՘J R͙`(Y` v$]JPRchRA$C2;(I zJh]:GLJK%]K`(1 IqTUb8%NZP(d[h SX aԞP%[\-"1&Z#B_FJf_*: "D̾uiȅPN -fPhEa&~q.G,u0)H_$jf89*=IVCE'E~bG,Go@ĺHh'm #,)xBP ? C&}Jxp$0$CbIDA8C(gCcD gmQG^%]핇ևqz>k%VtYIJN0EIű(qYŲYO\ސ֞&Eʞ][ɚ,\H)ARˎ@HEuTU v@t/5 @ xXLǤy0ދv06 jl RMӈR7FNa ;ULHGaǀIR%-Pq lrܭv +"eHǸ PI,@@mQKb?g$.@`9gx$}+PhҊ(C¨|D)$V$rrDɤyi8?rBT^WL/RE5rV &PŦ6_~)mDv)ޙA&)BpbVۛbf_N>ۊj0}-]' I s 4L̇-~X̆*@^ҍqNDt.Vxʘ,&W+DXǧaFG#.  &A+PW |V.((P@T:B8rC Lj6m]S*{] @]hyU”a+|h[l,CEʂpg{l[^sb UɆ6=ii4__ kckQ`36ä6l6r^0*7Pbx-UZHq:"3t)j Bc҂T @9I}i0T_Rqt9RY1MۨBlXc L\z޾lHI#d(,ƍt"CYz+ uX}6 8a  k N\M uy$"kbM/yJ"„ qT`)7AXx^ 9JJydgi1"^,9˹v5 :˶vtplCm˶KnGQl_c#ׂMjPfm>J{Y"Ѷf&fxSx ~iH4l*Dg sƓ啔#1$7WJ>`'Mbv|)SɒJZZ#j`πDeVZ52q_Vfl5ֶM,r!d/ڹo)w]__Mp1&(#^s&ȐYeyIΠFM kE*TPIMvLIxӮZT6.qk]h{b=ITbg=uq߹1" z о^$I*Ԍ?5$SQNL@@N焑x$PE-^0-pϽ$`*Qcp@0QbD <8bud @4$Atg`ht( *P@ppRs̼hI IKOGK.3;3 ~LiULaPeP ĔLC NP餓9Rwz lC՘I'`j)^ j(hJ%5*Үʊ, , ,묵:,h/gK.6&: 3BK,@2W %{ ZK F07bʭ7+oM26.;Gغk. -aN6 : jKByO !s0ÙD 34LEUeZkbBYEů]A C2" $Qd'HMءĔ~hStR#/A/K `9R/9s2q-侘<=bbT#OU&{L% NQzTİYoj§R']{{4 )r&HVY. -T-tVZUk/ XUf5Y p@& .ә|bSˈ45la@lЂbu2 g!^f%#md8'5its$ H ('IF5Lx>-ԈF/ HF1z 3(2bsNDx#9?NNh12(v!B~8RrD:eKyʔL>jb+Wggz]<2qnLcAD9`N?XnAP2YzI6”tjW)0MdBU=U3A96`WL>Q/S紀ҿ+`QX$ <4K[b. TH7JgYcլu!?@X3)Ta sZt4V *UY!qvF8GTnx9#ܦ9Ab*}I;r1OF7s̘\@/R8z"YRs V1K?>D1yT!CnE+R&"'n#$l!&n0&pop@x?:kT%Y@M˥ldwL@HO @F,Mss&s륟%WkwÖN &IQN)=UL*'0)p=D&bTL_1+[,p,]Ֆb<`E҅0)E_殱p]jfx6F&9awӘ2OcWIjL܅ H02pXU$vY.Ӎ01;GWe= 9UtJf@`m *d!!iƤ4ĵ'NGshD?)SXXEG$5%vAŴ5P81jy^AocR[`t#&+حo{\Z6G%]w~0GaW%@AhٙRt%j.K^i MpI wMUJf=zSg*U$P8KwX8SOV.zѮ@~(E F,`X8, `LC"/8Tf`΃ B|)Hx/M7aPGBTWCaX}WgOrL`1[U>M d Zs] %ƈC~@O`g&L`>8QZd kD[6 ARFP &)bc[6 v!z{c{S~'iNnWyd xi.Zڒ m 1Ub2WB%VUP& g ,),&% #,GEG[8L >l-jJYB[#P.FL-b,N0(00@H6(4t^Ί_F#8h_ ;#&&KDhC^D`M~`oNKRAMBIV$$$k`AJED n"VMfFBBPv ipv!Vqq$gIe@ݍI@༤ sbg&KN$o*K&~t`tLǖpgkPS LB4m{fX!bFV"~42:.D&T/NP,:1fYl0[BhYBd2f1t 2VB3LzrP1H( 鐲& GN3rfH'a~ h`H <a$Ap uaЪli2&c!hL9@lgucDBƒJʏK s b"0a2GV'k@EFAc~o*"Tq/brOdB{lm$roudJrFi c4MIsʏJbbM*'&Kr'ssیٜ ~ A"*n埞)G5]!g!g@2vb?(d~<+2+XH$ON&e$+1d%bir06t&"DM`"Da2^Xh4J22HTCǤr*NeȖLhP(*`In4~0r`<RÎrd|&ih#L%2D" *K҂ishIsq7g~-PT3%B|jD4-nfkDmko*BQ xq5rWAUukTukKyZIsrqg:q'xSeb;őrsMLg w٪K f"A"TXJe|h&\b! gl l 0~d"c#YL&\,6$2BTBYRrC)HD9_%HDHECFan*b;CG1 Oh4v Epp*(E640,lAL#0xȪj5zLhhvތ0 05GR#xid2Qi, <u$N$(DB 4JޖJ: *x'Itoxĉw<;TMVbqQcb<)&NUo7qrU{zqiA9V.u'Ė mN / t3quA3i.[1\]DVižgX2l+)z0#a+u/E\-\DJj\6F)-@*"B*R`4F+3DHdS)cTJ3ɨ)O6]jxL焣hVKF4D M8-eAL* <hqk:/1qq ;i [#ul+Z+g!are~K;`t:@J"$Wr$< $klPErJon|qT bqOsY]M$t9qM*O9 N J=oM RiNjD N'x S!"+ \bW,")62hj-zZĂ}ۗNJN,4dF,FCLFt*3N ɪ…*L30fga c:*g/hh:9\ rX?ުk$O"FB>%f\Uze@ W^'H%X:(A]ED*[JP[&+9D{1rfeJ))@bE(9ߥ P /2G*BK6F-ÄF5z-2'}KKɼ/#kÖYdKޯx޶>xIb!&Nj58lͷMm$;FuClopp7-Wx-P{ZU}Ix XMnx)&:ڦY%1K į6pQ$M&PfSNiT &c{!˧%*YCM*#F$%".ElCi2TiJ^ 3HVH]+=!Yѡ A P*>#HpH`nl<~V+]T :1jwDSNI&D&T sñt6vqu9mbBeSs*ܷ$QTiFF\i5B)&n3][Vk=/1^GK^w9}FYuϤWKW -3qɷQOӉ($(Jx9'B!'5)^zɠ9ŤH-b;Yƅ,,DAt&kP!3_Ȟ84~ F{HE~+d*9Pԛrf{Js43Hq,et^JcN6Mܥ$0=L mL  ͈/cb$G:n;vM|+ͽ7 PkI23t;튍?]Q5r_#':\j]WYy u=6&T7g$V L a$xZS-j ÿ'DD&>|䈒#B?186($c ˉ? uQ$3AtiJ!w(Lk )LpȰuZȼK u; Wpr ᴄM¿ ;&]Ó u,.gyMu):[sKd/ѱfֵkܷZOOy @]+8pc{ N;u+@w+N @CBBA?p_  ng_QC\6B-%`0O D??7V+5j Et1aj~"4ѨiKPt'8&-"`EAAVɿBk*?q]w~# =԰6Y¨R &'} uP9 GIBh!?TJAYN&C4.Ov4-KZH hnK#BAXj'fe4{*՗IW}Z2uΫ\u7`w$NhTxQug^%1)A8sa\X*lb4(q<1-G#.u#:%r*$) n`2ttk<捪#nꁦnL#f-?99yo sծ3I bl% 3naVb/fU]BP] #h(MMAKv{*/] apv[0c"8#?Xs9lE!vF|ГT) VR8j&FH$EMiyQPc kV`%Y ?>4&.5~yR\t~)}uҖv ,X 3,{ )BK kgG2*D b?فCAaArDDS7̱?PG&AU_B1sFLuE`c%HVfT9d%S2^t-s,S! 4ktV9r$*7iG/sJ7Vw4euG8uGGxdSgE%tIBIT2&|9]&EwThJih~'qr:PW&Znj:„weqrXJX'1E=)Uo36ATtSF9$'Qq&3DUPCGgTw?xGjtb6:WF6zP7?puB=bHcVO"%gv%Wx89IXvZTLtJixY 0.a@ZeiGC?1|.x-,֕k-{&/tz,+Qmm.1n2y^an%iy5PK~S`):l[~.Qp?r'yadp&E7LU1$U4PR)wE.5#aeQE8r1ELӸB65&#{Bݪ؂2UvUR&>FjF)4(zDTPcFF$?X}]29=Gvsl'8^HII; (psYy": P<8b`00 AZ-;)Kѓii(dM-\a>bl&llk%?֕..5xv-gRe\AT!(3a}c~ʈB&+B'np~9/#Ŧ ޘ1-$,#F5 #Dx D /'#06QJr!aGi" 4B3#ګ<(":t,,2*^D-9Z9eGRyaYGDKHceCH5Yhwf%6FdU.Qk91< (@M bR;2 H9؝aKHN̥Mg~'< 錘|ޥ pzlAaR71l;GjL:[<]6w3ev6&Z"%o@ u}R,$+NJ$"Nd#K0z>!ع/, @P d C0_ n - }l=Klnf;lQ~@ȴNqn{'J.#@/̦L9/*M lT32p ġ=FUW$z$TךRtt(f"j([o)Uq T2 ժJhӕ6/2k*e墫zVZjh-L1pǒ]slO̶< j&#c۹dv 4@f8ljJy;qMǘ< j6嬇\(Oš#5G+#MAKzhHsрChjхv #-AD20%yR;nAc&őq\5KaZ@05RqFd"CERרNRf9p*&I(Ȼ bI+("< RY 0&Έn q !R)NfԢdf~S鴬j (mFir47(AJw6S)4@CԘX#4K)blԵn3N 12DD MZ.MmaNH,5KZ"J%GIN#2R8ñ l&pHr^$A "PjEZ:Sbu{*=w)O]RY؄'lhrJƻQtbTgYxϙ0 b,趚n-lSRĈŭ YWDTҊgy =T<{˟%5H 6gEpk- j t!5Gn O".vZ]vy=]jhz#fоoCz cqN5qI9¹>rC2{+*ā@;Y) S36;8 A+ƒ%W   " QK T b-d4-Lk OCgfyoS#('B<9 oh<ՠ< \{ ^C⮓(d 8܀~9 wsq1qD\%bBAS'u >CB[j©+YɰS䙛3?Qb"źI_;@#ј!Ә9z2c-s9}Dz/ٜ؞H6+:tuPjz[>/ʯ 6RODz"7KJKȘ[F* %_ #c!"Z0F:R&+y7y2x6;9$6qҜa͸lثqL3;QôXLx,LʺGܥLHaqaYKNȀc)cAcU@) niO#$h.2<znXIHCaBcՌ Ɍ|XCz!a7s:qieX7ݽ/EP2 #x /)1˷9U7!U)C7EaV&C?Jp? G/1Ƙ3+ F<09PM=GsT :LVRWX"L-;[YiP 4]NMT9BQ-U0Lۭc)eȍػh!, \ /BO5ܵHc8AM=% I: 䡱,,ӤE@*ݎY"/=\/X9Q:7>%P"˰E#R욭Ia kGR79L"*0sQ ٱ9,L{͓8 9?U]Z:N4?AX`2䙞}A`)ǵ.%\ՊpMj T%.m2LH 'w! 8YspCՄ3YOHWt|+8Y,/(*n?cZ4-Wp(/5u;J_E/~RYK)(QT K1}e >:_uL2R0Z!,Mұe$Vn$4A@2Sx_G߽`Տ @ x;j`ټ6C:, !< (\ʊ_a&G["tUa9%? NM괎lh 2 Oi hW t C5YCXސbô9)393! 2 AyE1)藒 C8ܻd /6z!iiq<ۡm1)  %D]<:>C|جesw"10qXtX v"!bQ^#U-)"58װ\$cERÜR1^9(+Ue?79Gz@JZS >\",Gc l[ZN,h=KmWzE A Ht 0 Z&[,u~=O´-H۷XO>|ƈ Oؒ6Op. @tŰ Y`VjLY3V~C¤)G_&O0Pqr c[b;^Hum/峨4*uų:!mjfڙVTp?J?oɸQF:yGdfkn+ $~JW͙$ٽ'}ul>l FqΣ-ԇD%y={:&a%l" [b%6`>'>NQzy;Ok(gDg? zDLjM\/ J1T I'A@je/$>F‘L\vyZ%RDPV߯ou`<iv8/ W!ٽP-Ɨ_>R]~ 9)Qk8r0?Uf"!_k5Qkf Xӿ}~_ y"'‘C?ÞrspYxr~Ac%.-dQ%Tx̎&Dճ  Ѭ8W 4 O=fTLF 2F0A&#H/H4 "ʎGd)2$ ϓ'5lGd @l92KC-]TH H*\Q#[@Pڸ #J-[ R?q-J/Pk(Vă'k6ۄD͖m(~ ? d#L- E2hNTH !.Eeh9T҈,qpEp?kX/BƋ4B#W\Xp, dO!6)d dR(?d)d+j]rAHf0E 1C `09qGaQHzzG$p" E &RGY]u' Lp`uYdK te$ZfZ 0 n[B^1k|E!RAZ~dEq+ZV]dQVj&e~wmo۽F\oڹ sA7Uc=FP?yWPE`uؕ|IuL%N j_ .!L=3Kd)`tK(cQH$U KҔX&9ҐFOYLVcJOqst[A# # EH E{&xӉrg}BSҠURV<EIH GrPd6dU5Agl^T޺d7oV`ʒd󙗭E,^!X{V.e(FgmXOFi&2.m6ܽK#.1ιJƲ'CyA{Uz棰?&! ?Z DaHw 1KYDgw m$a4# E&dtQMTđX¦E,bRֲf(1،f%))(cBщ6ѱGz$&!"HI< 4n K,UPs\PB*R*2D ;\YX9 =+qU0S[bjڒ0i[vt ."$˴ޗÖKvcW'{rp#2^6z\mZHw:`ZA6\A?ثѕP x*Vc9He#`!1R-{&Yj78$"r%kG2*@(Fie5Hc\QAa1K0ZdTn$0JU7#4K:c#1Lc!# ]j>.Rܜ% N(-NOF"òM`LQv$8HLV%T$2)eFnlYJ1^bİE[rh{.\F/}ѧeR3܏y2ϫ :˰1mVґ(Le> Y vY/DЈfGK٨>;u'SY>QTA+ :CxJ9B aQ\6I,Q[dEKNZQ%+AIL:)&[Sd״(~ZܡD4"M2+1HU')i$Su.9ULy2ѱZ121{-Z>˳5p /QNhM_=/ iTK6 n|>Q .__Qլk8"@* jlT ~6!鵯Wgi4U6|s*WfU QJ֚~80KX+c,プdd̻DJ<}6"9{n\YSLxԅtv^eRRH/HoW}PU$J]zLT^7]XmK;kTDp 3ʉN%56cI.®UdɄZU(Ε[vZ?7ȹ(We+rq́1bJzʝtܮ.kEKcq fE V8)"1if(4hKZP2&RדLyJt)=eSκeY؝!A~T*ou6fH>-5-u͔.5{M|g%2^jQ(qX!(V1šcE0c;+_jKlJ1d7\@Ygpb2n1)c\ ܻ Uε+.U>cX]` Eow0BofcwƚH1Z4> f=`hEH7lfn/`b7_R]U䎳TZ:+>RaJH|*R(emR]Bn–N):1`4(Y7"2KOJO,]AKcGٓfY=#q4'ȣ:iƬ \5%~wM$#&V;P*ITʈ2'PFmg*'.LLJ޵}Ĵ'1QImM۵3 v;a\_~";((" [N0]%;1‰`}8ɱUH3K;[o\6rA@]m,=.O<@`Ual#,) "q!"}4$!ȗԈcC2$&K^ILX&sx 46Zsi꯴J7QZ|o,2Qx)~wsH(cƲ&D.$3%g M`)>Pj25emdTWƕCu(f֥:ah*:1I5*gk!$LF-['pf3yL]b fUNe/øܦrn+XG4qh%7āߠ[y`W4kƖM \Ot6D"[d Q5s)X#=Io- d{&(F8PYoG2Òıad!XAzDF"8eE>KY²F09 xfbƄh fc X,*ZRi'pb+V! VdompI40 hbRnڤF rcpDa+-KelD)^qbw7etM`VPH$r9jE;dqYRU m;1SC:df+^'咋Y]e~Z6H4$f=ArCG_:1 D:`3kD}3G^Z!FRa)Xz)%Jf0u74IfӉ$`%,bYRO9M Ĕ5yJ!&RO 27+!Q[\o x6[(/oEݐXùMnsƑu옅^[:%ƥ=A*_>&#KB2t%LE Y@THciM+& ם͵&nه# FA,+ cg6f \oX4 pgeA,DԚ &,JTRԲ,+TK\*sPe;"#Ŭj9Bq;:"DP%piLgŹ8~su羄_.WمXNymvQTf/"Ԣ+)Gs P$!SC ӐO颲J}Zۚ˜!t %_\FǴvam!sۉacYlˎq9"dmɠeQBB򖙯,l-qYe:bfc91iKF SctNQnZuN7]F2Zؘ:9'h_6tdGMEǒp]]$QkPSGz#,XLTRb!Zъ$#ge'UؐHI 0#Cblx`2 dfoXn"#(6ZVy} ,mr>Z;Ql B%;p0K!nc2N4\s+*rP]%}q;GJvMʻsQqQ.#5Aos?zqm ( q' z_T=JV5SxͿje CV {%[*G`Q#"&MƌfB"&`ihK V`f,D$%oqP i,%xІit%DOk,nTjTjo t'>'-H0%(<A`;nC4s#b#8l#"RoSLVZ/P夏0IF6"/'vبΏY"ӯ#w )e84 ]('#@zCr&뼧E2FN"Э$p%4d,*.h~f4fjiaÐ'nF%φ^, #0P- ,vRȧ(ORNEDDVD|2¬#b'Эzplgr-rN wZErTeR4CȈH,npo'J"uS$U:o7X7)иq,XbFJ\.rӯP'6='CDG=6( * HVIuӣGPald7&gD5WgUuQ/ͤjKNK])Kiɂ&p"Gȳjք%B2J9)vj*~j<QkPmpojYB#KF88T-8~!VngDn5(ΓCajt0,TYu>.Sکː`q m;A̶(I,^bm`oEGTw =T_XD[FFmXĆ+$K`zb0L?ЕpSYȘ8u9,( 3,u1oCu$"LLbmKʄ|w2iި<~+sD'ćwD$)=/҇4z6RJYNM P5sQ9 []s/N7QQzDĐ]>[L$b8C:Hj#K:Ȼdfz,A Ay9^B-+\<"xLjʂ1\;'{Z;)cYaw,TcV!APqCۏˆ4'8%-C łW9#跞r Y ΃Hq9T9>Xia7(Q9b)^>&bN ҪNRaf:&2wwpzCU fJ&g hpb|ˢm"v:o`DJ|3R&t$@c`xp9.~]P.oF3!Xu8YG:n#4Ŗok3Xsc`" P;;d&HdžP?y-'.R㛘Jo,ݺ+4CZH5Bz{$LJ&^[b-ؚDE9˟ P,cPE ro<('̉ݯ?;cF#̇@ LP0!?C F4#EIoeItɒ2OJXѰdL.05J(R B09QmJm*5I5Xjױd˚&͚+PA%+! ]0).oG:.|_ &u{ Г 4670殫Y̆쿤[ p$芠ow08 pG tlp $(Py D b3%pڂDA?toEQMRQ G9IR@H4 2M1uS;$Q)śS(bRPW3cU `Ք#x @OxrXn&mVWM l'rP 4%\S^$Mie$Иc5DIuH?WIU@G?]4LhQo'%W,XnAWIp!d$u&yוy}cg=zpW^j~|d~:b C-%Fr4х-Uc0}ēD$zTDy`H(6-V~;㌍qV[muW:VX9YzPUvEguv wL4 $@\rIftPDG؞c F&aCfu5&Stz^nx|w\py"xҤLj$caGoRgqn|\kB,õf4_ Zg+lˑCW$-!- S˪ZזP%8VT)VT:yu t?xE`*XM6;-tpPů_,e>L ]%G!\iEC]<_d_._ %9mJZ'=@}A=u@5[͇ ID$1F lnb8qR"hDR AIi^ɽ9rY>es=MBӥK*kaYM.3f?٬Whf\QDL.pSbYul85 j!-7ɢxTL~cԪf3*W#TedVԢAg+B{S6M(a7ju+:PDX+* )1Xfrѽ$w#v2r&ISOyJ28QV1#q4%$+ bռ f%fAJ5cʖdAd$2 0JJY501ֹS|xG{@*@~@'AtfrƗ3~l$v_jiӐe0]U6@xbL|! \1f3ȳ#,WᦲzRY_Q^d~ ^ &ʼn|[%U&b$~2@ N,ȥ.V N)oN%Q )1JhI`%$#OL8}1z8z^8j`xĐrau-^ <-RhߚAyNM[ݤЄ%ia0>8*@,#xZ 54bw ᬄ;U;K,]\$@՘e*gY\~UGj\&n6&=dYͪ*o.jmC*-r1%G,Q2iwWj1JCkajX}?n*1bYMF23sIϖ"6;@6md55pǂr4 ehCF4玲D}wkWt:F+ϑ]@Y;<*=ƚ[I2Y5u>U "ĝ%ٯSF$n7FC'iDU(c1&+0)crje%*u!y?gpr0''aoozƱt DAopcp7&rzt$Ba.)!+KI^TUXErSLQ؄&W9uZ&R !^HPDc84C![h?5B#']ȅ21DS4dQDÆc!|84y؇]"mhY@ t wxp@ hЈk9u5∄h Նc&zxgA^Z7j~HԂ ÇD<4'mj.fJfr !p4TCFPQf'.7Qq1BKߕD1LQH4^K` VK3tL39d}iɑ !)#I%i')+ɒ-/ 1)3I5i79;ɓ=? A)CIEiGIKɔMO Q)SIUY%Y[ɕ]_ a)cIeigikɖmo q)sIuiwyQV )dї{Q9iɘ)I( YəwceP񀚨y%P#`)5Q)gQٚ'qiiyʹ eћ)`]Qթ 5I5YI)]! 9)i Q321}ydQ`&qp` z РS3P z` P5Q:ƙ3j1& , 9 P2j9zP"5:Pڤ#M2a*=R&Aj_9z| '`Z'xڥKڧtjpjrj<} p`jЩS. 9c>ʨ&9dѢ~'Ieй"p*J]ѠYzjz`ijgpZjٹ'i}ZvګgֹeA5cV:&qgJ951'ad2Pp頫2ѩ _y'Qd! zڗlpJj@&y{3K|ɩz}Y|"f!21*Z٧ $۪5qEKՊ&{:TYUJ馷y|)Zx볒I;z i)jJ0F2K4 Yy:ʦ2ѧ* y']0:F kSڨ[? {z٩Y k+2Fʹ5O+;۰v; @jj[۹{~jp zo ܱdL3*R뼨+DZl ˶+ 9J ]€{.Ji+005a 5UK'L|?;[:uM L|@ad۾d4ɰ#qʰf1:z|J ڸ jţ6;p{>뚮Z :So >ۧj^kn`$ īXc[ ) JB t _ 0J0<‰Z%.)<^[/z}z;Ϥ ͯIVKZjK?<t,{k\nj|TҜڼ[ {+ j3 j3 jZl Y}M/lG\}vcA \}ο-|Q%A;~yZVX0؉=ʄ}| uؑ-ٛziٟٗٙٛٝ ڡ-ڣc!,G4A2S8C4(gIR&XBK2<)6! 5%,J9I& 3 xRU0 - E19,9.:57 ^DNA WWkOWǭeZaFPM5;gEH\UUJ{E|yQNtMRc]RvXM6BbCHV?OБmWUQʇfyVCs鼤~^ȀgiV׀\ޜ\=B/nIc?=1r=-ͫ_bԕkm8]IjU8K5୊`*frKCatx}G4y껞ʪP7ڻ}jԶPPPbQR```nnnFFFȱ?FVV{{{,smbeŃkA*\ȰÇ#JHŋ3jȱǏ CIGM\ɲ˗0cʜI͛@ɳϟ@ JѣH*]ʴӧPJJիXjݚ~Ew@\Ӫ]˶۷pʝKnPA+PjzÈڳw =㩈鐫+ -2CNL魨RF(ժy8[ lքͻ NSoCjx`39v:|COwtwgm/˟Oɓ޳3_m@ƓafLU^ Nw(5nlQY%; nna!$hQ~|O4[=FY'<5Sg@uႠ7d#M“Ntm&dc?c? %yh>y;gɦO|@,_Oύ6*餔Vj饘f馜vic6B 6dsv'Jt楐7>@*rF]`iO() Zˑds(#藟+k;Oh(@f罤mO(ѓ·Pc˝٫iNeF )kg(rN]u?3NP LmieL^⢢6כ#0|П@: %z^|b)HZHh 'D!Jq.U?p\d&:'`P'QI bE-.? ^͈61(ظ8-4ΊR>Je F-g #7' P(*2N$&7I (GIO>L*WV򕰌,gIZ̥.w^ 0ybLfUf:Ќ4IjZ̦6nz 8IrL:vS~ @JЂMBІ"D'JъZͨF7юz HGJҒ(MJWҖ0Hs$@NwӞT9P< ^e RT:թL}RĈZX*VQUjUa?F1bhMZHxkM WpJ6׽įQр`K-?4XWh},ckŲ=,c7K ijIh;KZ̮E sEIjU+KjT պo)R@  P}BԷ5MjY67)ـntٟXִ]hEvVP4K"M+N[墤mk[%G'҉x *Llrx5q7*({XP&? </Vv6?tleQB˖@&a̍MQطI{9 fTsjW[JysO;qlFAqyܽJ@W!غ+x2ip=Q!X => KYGG>5)KYLY@(!Z'W9˕ `.ě L/{Y MO&,aT'kKQ2Y}}"ص{2ݾz>+am]zLal֢鞄>d)>rZ֦8}2O6:t}{/L}szF8*Ӿm VN/Rk\M3RjW +.eJ'Fɤ}7].BU fV '}s+"Qr81x T<[9W;)ȁ %b}6# pPsgeK.jou4)}bCvwO,I:)LgJAAQ7aLuzցM^OYfʖq_wY(&o`b8=?( `?JY\YJ幒y毝#z(ak ^WZ v,bnWJ{uiGtPtցCa{H#v]6u&pćb0Yŀ}bWUp_ ^<'U}Ae\fl}ŖT f^`PT<~FxVxׅ7 @cUx>QVyu׆'y[ۗes<Y^P}^W,Wހn 1c;WuWh@tA!{g^WYłuu2Z9Ȁ3W^bb1eGex( `Fk_6apex|xA"~h~Gl\W@bGfb W+׈5(Uj2Vfutc?iLcirRGQd]wi\58+9Hb5\XCXlZeqkH`ZVwMUhl(avDqja?q^[xCA=_jHy;rf[+r(u5kqzV$&{ްp>rY.{f1oE X{!|bH9YW((X涇^PqaJv1 V_we`W[ &B& ''VwwlWrً=UZWW؎猪؈q(FDƏv{IdIW&@cYq0XWUY^]. ב膀g2}Gu_F|WfS0)h)~i7١Sm3@!Xi)9_ !]$)؎YHz߹MJd1nT:iuŁI1 )^ZuzF]5PWA:QЩJvv[pSE~D`Aik~bEy[0# e񗍅nFɍ9=Z)hx+h}WOM)e]YWd96{9cfڬJfy|^Ga nlv*@QqJu̶9)Кg @)V˨ #?+ <~WVʩC9pfGʪ(ѪH0?䈧b9zht*ٹK9O;YJFO*i0V uxyݺj)kgح‡|ڮN񧞹eJ6jZmPLq[@y氢; ס0Z{rnk1 [ok+Bz7bI Ȏ)|Xk^(!Y؏N˗JLaqUXY b]I=!|_[lʦwhKk+Fybٮ.[yn_D lv&+fbF@ +D!jиG & &y;粒gTaտYYȪ.{* n;k5KT5kb盭{{8Xi黋8Yk?Q{X1qęFӻ]x|.\ܽ ?ڕ)|!&6,>! EJe谡@ǀ+kG>Uո ;(ܡ00Kl[t'"p-¬+;+Ʃ\,׉uɘ)XL<JBa@YS;iMSќW*ۼ`gi X+,-p%,XI@ǝPwqY KQa#Hqw`<\ ɗ#n1Cv$5Demmm27ŷkgpɤ 9{ { J-?1Nz ^]ZټYmŲ[̣©J aVr+u} }~+; \wP m*hh]S!MQ &0n- ;ʭK5<:(ƹp >G<[KP,u ^[Y^^ ]~u丟 k+pz8rZR!y'ȁm>,؉ \@ ؏  ЌЌ+zɓK{-r}[ǃ:Z-ڧΫ*1ͭZ`۾{,ƽKE]OJ-KmU[mE.M dŊX8}jf{^J 0HòZah/5ʾXyO~< }@9ّݸw0ᅫmIL< }[#n. +饭i3ݺcbݽ伟K;@ ˽NjM\ML}c.ZՎK˴ܭ_Ͳ;۲)|hʠ..(ϻ7x~}AqE5* /f+ lꬻAxZ]^ܼq̾.7 t^] [h['^ǾN>kb.Pڞm~%O!yߔ{Sa ^z_ђkO>7,|X梾.M֭ʧ&= )SYE։Z,u$ȒKi6Z+*6dŋ"6Po޽ v@ I1`k1$[ƌ;?h4i2O;aZ{x( ‹Z=?< ‚V'x}}~oQŊ#֕qcƐ"W2n爒N"Q )H#0)J*J(OO4ʾZADb=-:rzEqĶA0np²$'ta3䂤^&Z -y291C#S$3îN4L/=S#$*:$"&L JAQ& B$BH[pKįbi"F$W@2qjŇOR,q7Tnr}釣qa`EQi/MCf'Uqw@򹻚dH'BF(>{F5Gj;#8QNfyl >u?*Ma4H~ٓ4ROM"@ji?/S\x `*#eFtD%1-KZ1oV=;ĉR-3 /KJ!jPCxK6"kLM0f'V]hD%mEى԰9'q]d'J8ІV.sO?6%#jIh Y@~()?"}4dD$z؃JG"ƙD+]v2 pKɯZW|:aD-/ ~TRHot-ɵvm3e b~5sKrltwyl;h.%{輍+}Er^:n:獑iRGS]_y 񋛒}T =)B:QHޘ㜤,sqŋ{=[N:;۾lg"66@ʓkS/S)2 !mзk \Y)H$$SqA':J8(*f"|z8+1Ɋ+º%ڻ"&*=tb9^ھ/5oab#SB0ڐ*Y4-CxîpS)t %,*6:9;#ܳ"xij5[3'ggcD@J; Kq92̻ىE@ tFj#IF2=>1GbBM;C3TTS;5ѐ+/x9/l &_\S?_,3cHa<6j?\3EgD3s2d(k |77uKE2\ ų-""c@E{AK @|3d3Ȋ,6=j=X?4cHJF%:HaDFB:-̊0w,qf*Chr&KGġ I $3>GBr ;t׻C =Ã|,HLDDD$FD@lLDDJOHIl;xhOdIз lM7TɻABj1Z).l K\H@LAC /JӮazFl]3 B㾊r5ON9rg&MD0 wwTK{,̊ms=]۝嘝 L,,ʬ1.$S,JLMdMTD 4St $;Su <<Αco΍|6M=8)C?$% u9Z#1( L:,Cqq99:Th2Tr7EŒ`T I dK*= G9% ALx7Pv⁁\lUC ]Q-[RD%] - MOІa-U䉽| @|1|N0V$NEִ6L(%͏AdA8KFL[?"bB3 |G:8MST9TӵT B n>3r/O;(ؽ|%ٵ$Y؀i0}?WOiσPLzVE?́P=WYEWILJzM`eZXR -d- @T7,)[V! 3АZViۚX,-UlY\D?EvբX80U:&Lu_0၄E<SIHX8P*!% ؉\fX0$7@7`75ؕ-qS 3PKXSTq}LZUt sZQ,MF^j۶uu N(VhV*;"%N_|j%$h- W̊m% .l3ZܶJHVJU+]̌3)E ]^Ņ ~奒-b\% ^>^vqG}%\U#W+$WǭS-U}Lu2 &ڢ`Յa<M*E(h[J E 5& 6. mpV % M lֳ-NAP?U]e.MtŶm1" ]U2UޟMӛ5ISYSCXa]SaϥO\]v] }0e^;]%Phbjf7#9tTC$0,Tm獳_-6`F6cF 5vc8yfcg%:&ŷc_>*_ac7ڹ}gy,ʏ$G&ur&UgYUe8iOe~ӖviVC(% S=݊%q]&0,yaX[hfݥe+ʭ\橶miO}#iP\m &<@Dh)d_ {dj_;d}6~k͌uU9_P 2 QjU.W&ni~iVSBT ]ڶ]nmE݅e^ES{][-P̽!^]Ѱfjm;j( 3 XȖll7 "L܃.DzNc lEoEo~kZU֊z.߼f? Y85$V[xFlmSf,]Z'R&l^q fo^SRf:8bܵdmXF؉xZ鬘ᢠٞ%e&m>m]_7pME.n< bS5a^fk9ƯRlsH^#0 @'tXoClm ol)p-.plogz9~_hh߀kLjgZt y6Wpg^NuH,P>lhg%.Ue%t>/ofgvc_o̖CUHaEU tL/p_WۇǸlS?&kJuY%lUWWkN&_`Ot.@_lvqNƸ6l<ԉE qm|&0+aׅԵwyqw0 |||q0xЗU(U0Է7fU0j}{7oqd/y/l`'Ot`G7& 3o~KA<뢿dTU}ccoXgZGE'`"T_ Q`(<,cF 'q!&MTpU&\(ɠ:I'P_]h꟩IT)>ܸ}/| f(aIzCNҗi+'qmK̜0%+i$i}yH0U<-neK9$ؑƔ4X3E S^Ĉ/EB^:!1bM mQ$El7Iʗ3_|yҧ z) R?ؼ;yOa:{_(rȋ+M?tW@|%H?-$AMԚe iAiQYJIfPe-’d(7Mw"N5X 31USNdWleUZ4I3aKZ[o%[~\w\0U?Ŭ"?b&fbbm5XF&mٝ<RFIhie^th(:m3AAۣ >) x`tM6+vOrWxv׵Z^v*w_Eo:j}9G[ P e6(k "ڢR4҆MDrZA(’B-DR_7%oeP7<;-EH bRFUPYeuGz5wekq\;WruW^^zUcdʘ1fIsI"uf2.B nD o) P)XlsԉZ6.?f}g^Ǫmwzڊ++7E~|Ԁu )`>]iA(Z!v$PA(4҈%Zu8o5reVTbP-%V1lA_}OXl$oiks ^0wela'npseA6Qҕ.HM\VGQrPTgنXZ28E'm)ڶv,tnr*Z nbf-d~ի5ōP@Ո5cXn&s03{W\nv; +l} iػ-*fA B? 0%R6YKWӨ."P$"?wAO\b߹U1Vu09C;6h"od7lqQiŎ$I/&T:2^ªb # z3A JdLT v0N2>~;Ie4URO܌*_J  *-V.QNgl4V5ȗt0x!N+?ٮAro&I4σΛk{u=~!LrB.kXlPd%6͞qV6Ь[h ZUU)% /mYE]DV(p/blbYH]Q/zG);JҰcZn]DI_[] 3e(j_"VD%aTAgӨ+ԁ5iaVZĔ3~kr(8=ab>}̉,6:j@e&jNe#Li3+147E6HѪz>V=QaF1yXSV\4+L* !i)Ź~#|apvH8BW$f0;Z)zERh(]JIڵ_'봦bUU2 Œ- `]MVaia%Gޞ~@'\.ڣU%_Ū!I"!$B"y&]"J]E~?H!>Hf$9RUEџEj>㺑])b+|,>P,%,b/~2޾-@%q RV *L];CWb^R #wοYXA Z.%78B8!]+*@AL!MaUD$+OOݒ 5"?8#5b&ۉѡ!-J$Fb$H ޡ3qDV|dHfH~uo&]Zh>Q_L$Lzf!)=c)D>VOQ%R6#I%ySDw LUy N|^Eu1UH"wpqeeL%*<*@h^O`])Çc)Ԥc]f/1CmfAA"\_\hi!DŏNGofDbP<ݱf^r!rj%ڎZbh\Ag=f>R@(fgB,bD}',B-~y y~0>^L5 ٝUE s1)xVa̒8Zhxj6%e+P7%+8+Щp`"b*f)BM(B)_FZf!(5Ԩ!3Pkm)Ÿ$D%U^,M,td&nv$ku,D"ʦH&obnViN#priBv+IP^?kt_uÒaQ+CZ"~xeBS"{zj#6nM}Ny^uQTl!1 Uejgx,9„؁$$c~Xw>_*^AarB|,|k/}*ĈA-t-"۪]mZV+_i(K CE3Ei|+,OmfIV z6Zĩ![ZA*mҥ<]|F-L*zbr-+(0+*`m_6܇߈NR?,/"8+"p.sl$)n+ITB ID`n/,+|PD0?]<[q8g'==,T`0?C="T=nDl}u<|{})?CoB58/@V_A+-3!)XĊ|(Ƈڱ nbI'M;S;q7e4B>Y :d"+%*O,j?;,Uբ U$;$%CTJ[DމN ,ˆTqcǏ[rd:ɺ42x:+ߚ FȏkLqMخAy"Y%Fi{i s "O<VPb w/:ɺV;E*gH߿bJ  Ќ3 $I&n)ȣ@bNz$LI.ЖMRȿ=T *)ǽy檯JLD럭ҡ :DCt)*, ѢF IbɾG`n0 Ԧg\}U#\ ۆ~e"_( id@!#9Eg7p$xOID҂dO"$^ nt{@s:2x~}hf4!sRli @&jS#d#ЖX;$+%@vEyO& #XCG(?!NQθ2{oC#SbW:f:D}pH;jVUAYm fF 폁IGb5AE;>YM &Z)@R'CP˒8%)e!uPG9ȣ<?Z0tjXꐎtkϰX4ah}-fG&()%P DOEݓdςsh:P‹< ECw;'^8i'WNNs,4ǒ,)eX%,MHYNk +vk$&E "dd"3ݼ'4ժLu) %:"+YNf(a$8ptu!H00]k7.m` !#"v"e.$ .X3a6 m;ϚM?oLf?L8Y"uׄKT/ ;ZD$]'E739[QgfqjWEX\:Z*r 2 A|z^M? "Y?\JN2[M!VDobj!<WeAK(D sMdo:fI}Vh10"Sd؜EHTQrgmie[[+xH>2hd&~C0ӎֵ? ̈́<ƙd ^IFNDT-$\7Ӣhk45t :I7VHuMyUۂ- FZBfIK6 _iB/*\ QVj|+p\K]֤zsNs*Gj0mhl%6fuZcmE9kX'E MN9{J|l@_/~̻+1נz|j+ַYx}Y > |*7&6g =n,CF26bl\p(ADZ| v 5UtA}бFTXD1#iW:d1"L8" mNY$ .$VID%ʃAL$v椤chs ¸:o,JfDg)f2O2$tŰpv@O:Ʃ hƬNϝHN ó mTɄnv\  KRΟTOh̶L\OP*q j+kE1Znѯ$͸J^"^`0D GPb CtЂn1b*)Kzb'.@41+DaFHc."Ha1B Wh$qP/Ԥn1pdm.jMذl cڸW PZ$47!INsqNuNgOTg9: u5#zp wr)$YOg6$3S_O;3k'&DRU:v"B "nuZC9@GX[MMCR+pT׳ix(ձJhfw7ڈPf^ctGg -_oS'+`&JiZΩ8Zʆe[n .pt^Lte.M69:,./tc Yz7Q"g}8 5}h-hw#iA2y%5%~<9\s1=E-AtDIT`1nuo3eYpQX2- *s\IU=rAV<+URr"-R wwz4gV֚{p1 쎿DwK+1죑CbGi` `ln`}7@>%,HbJK1KCKbtWd z^ :.0jE*dqeOfI1V!#P#y zv,Q $++749DW+DQ& N{STAc⦖-3+ǖ"W =}}_$4Uz1ZzyXu5BlBIXH͊-T[VwxԦWnڛ1)P6(~-K69d5;{+Zf 봵|׸Ctl w nQ{L1s<M֦Sy"trCa#C5u[[{ϟ@jKTZ)DOUg}g9g9e+6Y{xGlTy#aʦ0ѹX|Jv6vJs$0@޵qKg|ܲXڊʴ1Kע#zYq)z68OBvg}soq"9ےw,a0݈Ԉkj$\\UuZ+ .C,C^5C󁕚uM0r3^qZ{64}6gϷܫ-'r7]#rwӂ:Mc~n%4)(R<NnlC'}/j\SِiI9 u U7eȑgC儋{={czM1@KM_w"Z&|Nj&.!B!Lm7g]e~Y7'VA7@ؤ MU{^VĄԶ8d(=0OS?Y඲?%@*1)@QC>@)ihB1"T)Y?WVW h'[n$- 3*#Nm6݈7 oѽ2+6Ƅk7Ѻ gnqN?xM KT`D 0XYR?{Xe.4-hn]Ԫi % Zpr0t 0̰{=We1TeA+]tޮs-^e}k $s,8ǂy x( ]v0W ƐV ?a=YjV|e^1kvZX lyC@z4j$C6tZ%CMyA-[GܤH0fHi8Uvd#Oy#iMSEA04%CpYTܴr%M5uI!3%(BY QS9G?p8k~YBS9me;2Pz3۽o˶l. {uekPZzKt?.AXuN/=z 4?'U߬U > {FriLAC$~!T1xs5W㩚h!^M2u-D.J 9#AB(!GҘ#GJ>‡vDL )A 8!,AЌEEh jRAEm͐S&8PeasW,QLGC/+ujLc+vӒc9V} c(s:-!^G.ڤGYB<R6$m$< XYu1G[ɱV? 8K q Ö!)}+wL 3 ٪ȌaԜ3K@ȤR 2L ٹbL@yfMЗʞtVĴeHq V%my3BYL3bKaHMZ-8|'ɉTLfSmPS $n]cHG\=W[9[W%is=F9*g`ƃ^y.ch=c՞waq sEM5SIj(?H2hv_UOB OyZA25qX?jf 5\qt\sZ0B %ĈZ1E[Si E`hUS=82܍,XYtq$!I!D!E,!۽"+F! HH,%ąyyx&= X%,PtҪN S,fr[6qrY G 8/*֣6x~'_췌bVUse5 g0c` +m-#È=Ai傌Qhue4hje5*ґ0`e{ *{pMP Q hxh؅"#~2Y=EA 1B'DNY~\%3u=QB|ȇq]]UzhPUzP^! A'PbH],d4 E4r &Ou '>AABn%*52MR{6q#5'rGJٗ}G2wTr, c'G׍5dǍjA69Qɐ@ YɹXK !! d "@i @~Qd;c@ 0WpK0ihhX)!$'#F {1ikP `k~==`keI?yIphkD Kxukl %y'1JBv\'$B^icl'ty]rr'jpyPs2CV0`X2lC\flGs4$D]I$I"9)$k;b_;'XA6VԊ  EH3 >@bA2.Q + lO╖w]|]^ PڥH!FwvCzbɈyeN@%RJaaACaEK5a0!qPWaN$^3_6>D()[ lÊEU$A:ooo;IHpWTBGYɎZ>fH c0 zW c`hY 9 P`'FtFCUk=`,Z{ښWʭKM5@ MP**[`]vk1dk $4ʢl}Ȱ/ ]Ik[l]eA-IŇ!y ,φQ)$GzfIzaEQѥCKg(QPcCP3)2ap%nyO"{T34RaqOi&dR|Y^(c)]3EA`cT8aVHձ}1G]U<Ƹ~9q(nj(cx 9л ay۪DcKaثk,y˭sKL5ij~;)*V)(y)I !FE+!@5 {k9!#yD¢3*{{I]p9x 9slK-뱾Bv Τs9 zI[2#C6,1xlX =R/+u|ɧSOhETOZ`eXvVyVwMa20WqX8B*f /E:I/ RP*C>x ?*I|ZxI{6:ԼѼپx5{]vpzL>_zu)[:ܜnVCXjVCCAK5mJ QY&KkpKz %8O ]dy}Bg{Gþ_N!XfLȔG$0Z? 2jjVorsS iat#I"yŽOeqItGSw︙~]Ǔ;ཀྵ^c'2 RQp By@OXf?YtJp0fEH o[FעLJrh =z#X`{pK-It%8!] &IrE IIDG`!lFuNC|߫z5jQ?O ^Y̿\t5Κl5i7@/ln53ꬖ3s>kl5MU"P%kϨE-ʨ+,X,+c?Kt[]I%xLMDȄ &gn e%&\"U)z5h\O# AQנC}| %ٶ-h 5Jb!T=1c&j'k1fp)GEettZd'1Q25bR$gʹQc-Gp=XC#q 6;d9$D;  8K23E= ͎ZGHkSv!iU]\ FjM@#'Zd(J:*98{֧))4zj٩^)&2, ꪚW]VRT}v3%b53>OS#/G J!@Lۃ`ȼO'] Rۢ ï4 %DUD*R#SrUWBbX eSbJz&2$,#\gW3.DYBiLP+<3 IL5QD]n!HYU jWNJÎrB߰7vr1[7p3\azod! G2KYyibZ'K"A0]#)$@F#E!Ila*HaСjx$%S:G!0Ȃgjdn WKțFzhDEN?I?gxe><ܔAD4 /Mǃ$fS55!OuCR D1rg'o#r=?#tI9I4 XTh$Jy '<^*8PyXFP=!v*2/'x; 1P9K%@G#XѭeRm!j3RpOnKN9?w$򒟞p'MTwX#ӐV&DsaOE3ztB 5,GU_J/b+5'4-:B@՞V 4QqUJq782/% $P# P-0'Nujx-_a7 d زKRt&+X!4CoeWA1VВ4EaKSCă@ ukUE![:$HJTRXV\UD"TTH\סh$B9hCBEUlua$ڢJ#|$z0UL= \Bvd@c1ҋR4wRC~ ^h >8xQLT[^"ȋ. $EUao9,>T JVœ`[Bslj3[`YsO1hpr'O($$ILwR9$Xդ <%*DOUdI"1Ǧ lbrdvD:әJI!cY][$y8)[`O0N%N`˩OfءRv֗Ubya/x!;/C7`x-&J '9, }5soBlԘ ŠCB{u !vTc_%Mm#B18ChlL,$,őx]֫V?ίb0;C$828$|8is1"(R D$>=؞JQ(6#̏=y]ryz7ttKt{ III!959(IIq!Ip/D8H7ZʡA.yGGpJ||(J˃X$㑏90AlIaH`H*$*$ A1KED/`5P2IGډAdP5?ZCӡd  :ȎHRyM19)LJ!Vp xK4*IxY|_̋_!E 6"]Y+&Ei4lLJQS JCC2fsOxT 5QesSB.L77!ȃ9/QA7tHɓJj9?)3J$ى[4Xy[g- %35L#0.H|G#8*ee94L/ԭEuaJ {P@OC:5:I(CK$׈QTX҈T3ø/*0KMN' {4ͫN TםpyEziPF34 J"*GΤc-J` ,0jI"iPPQLYPٚy+ī Aڼq$Fڔyd(!HsQ}%Qi EPNa5<(O25I.By%=dZH %gGpq\*4cH@BHGH:L3S/@BoOJxE]PK&B]Kžl+}+uxe׹&pD͋a_M @E3ќO3QՉK5lN&ȕm#c7_!0ky&*8= SWѣ`h<j8y>D GCna4xQ_+=S0tyj)*XىHᲿ؀󛙱 &ܔ"YѓܔqG)q)bYI<ڛ{%w7=< }>N9 QLc9>JZډ=!`ʥTsRZ7Gx%(SL0GX4#3ȄčLS?끧Eԅ5JQ]akՍep;/LA]aRbՠض!@8B#L 55KT5/QFL97ROᨄݚ:J,C-¼3+_+`dͣ@Wv> mkFa )=f)8)[%05]aN\YXuKEݚON !SMXp|$MLI:[&K,m#O*ku= hP5RORNA&kf^[Yd9m!YFF#*FWh4<辈:Fc:ZUxUUZ"<+0 !LF&2N'J <y.#q i##ZF($)LoZ؜Mb9R5 kǎ9Nj i9#Z1k;Fvijc*O9A?/cL>k9$RYc?^l l:yJ8MBl#tZHQ&O1ɧ[ `8.cD m1nP嶫 ]QRwr;щ5ETp{ޗPNZHrUsNAAӛQ0Xs)+{5dIIy&_sHH3g*q:3 OWOqoOYq)BStg|MqP=GE6k?V OZI,#쓵sAr$JR)=67}x[[4Sk oi8w+zz~%~`JAnJ RAwOlcqRz*AlJ% QCIOKm1VOQBVߔZNtL(Ez]ӉGi)$ IB]'RP{WN*{am-Ҥ}-a|EcVqeb:A_XPxf jȈJUA8+hOb?+98Ж3̼R߷j^YJ#+;NJGVW}+ T)^[ Cf06 SmŋPxՑB}%+VbNJ_}{LTi $ں%EJz&_Yx?:xXp.ӣY!: _4KN{ Hz ň![9;.!]$1d9#8r}vAf]{] Gsr(qǛ q?[ .8S{4A?<(a%{,{TW4)R?~],!h)aIdtad!!na EĉK^ct0iHΔS1iy,xXXe!Yft8?k*mv{Ab QCA5ӇtLIH)$ ,TB*,?OPԍ%4tSAEIOlK/ EK0`ce-y3eLPvPL%5Wt%EUBP7ERIT൅.ŦzV0[ׄ3TTL0UMn2kdfrHQG? ߗyloAs)o:P\qq? ,iuѴvn=OԏL#!#m>ߧ ] uXGP6ڸ* ~[D=؃=PH!~2mie䏍ȘlF.?[& .&mi ̖δ`_(b#vÉ?DBY62$YleɆ%󈹎?B]$"0;3iH Wэ<C@’-8DK$FPj XD(BnAke K2&ĀL*2cbLB|`AV!WT$la@^܂ea/iXL$I8/U&%fS3$jlI[f9@RA )n:zƙp& zc2ujQ2@N>mL&ry'lc̓4:)OqzLAԄ}^tIIɄP'g ax5j]d0bvHzL\HPVR H0TuX@nE:<gaYl`C{ 1 K#M E' ?!RLtFrL"#<, "((` ݊AV`$.IHX0bbA +T$`Oub IheV'lA!d͚!\S݀5" /ƣZGZ&^P.R/% a`])1 K6U~i1[Q(\0. Cڍ[0o\3З nZ>=348'1\R2-KP @R-j v~l-;vCۂ @!zƠC0QZ9(+ 5 sR6Ծӑuu1-mӘU(ph3&$W@8ˍnM+ ?` ]^Ua~)/^b]JJ,&J5+JN벿p~A.fl2X/ EP3# INW ߕhE<$4&Y kӼF: z֞!%2@k$&IOe6 cࣖͧCcN^fy!$Zm<UNZ) @{Z,m $0;Ё 1+]`Fqs ^-w FzG@T/ޭe$ٽ# Zt$A= P QT ӅXX] ]_IVQ*\DԱ(IT]S`9XLֹ!.-4\J]\EXj!Z$DtDABY/BIAl[fB#taMhtĥ&vL\tht&HL DA$Q Hp܇m̢+eس`Md9YR4bܑlRU<.Ȁ HhVҔ,FFr 8bncg@Ch d0,Wt t/D/8hV\rۺBH`ခ|T=EWΨRaK `˕H_FP E vXS9TaLż1'ĘH Al[DXX΋-<׹E۽!_!T!C@e7Х[&WT$Wpž0+2>)EԑH%hkuӚsg &jL\fi&i*'vbn@pggtlMg))6oͦ1M˴Db ZL$JkFr[V% ,l.IOZMρ0]eda =sP{Ǭ>G1tA&?۹u $ HAC20-0TDv,xv QӱȨ$qNvБl$L~`YH %HB0P> H\vXB^(BI)H\c]jiU9Hc\ňiXvRacZ,Ha_a5i-)AVX7$*D[^IEQ#lp$< mfiĦmh_F[h {oGgtnkfֈҼaB>r (k6 p +/ ,EE?-o{ǢűH#-Q[r+ gl}a^ 5bIL4ʄ$-hzm u&&<#h`v0Hdi?|B?0 C:-9! OЬB}Γ^@ Y4u+edc?E5UZܐ /7chOǼYF^h1HRicuS),%i!ƝEDUZ]6D7؂)IEADZD4a}8 *LnQ]O ~&jҀl2ИhTJsitniMm@!`>rv"&4 貍Veo eUV nDu/vxW֘p6P-qVs{)yr薵gЬԬ/M0LSAm} 9Yz5k_y?lAvMWEH>JwdЎ ڰKK^cdmֺȟt;JMANz6y}dhvJh)e઻2v_+ˁK;۪sz:㫲ęjwdG1( }t硱-9jrVo H8~6eͶ/!/4+@+;w 1lId !elT;c͆&XC[? ?BOBOd0G_#L .I/D!5/Mi$B1b4B?!yR+UpRLz8Ƅ԰$ G_ӿ?蠐 @L)De :ʹ@7D G!r¨ HT0!LX"6r! i =Ѓ6hHGda g*2#4MD`J&Y)EAJeIgI4E3,<†0S̰C4:V)mll Q)d0O#SBH! r(Y2J!BNf6=q #Q h*TAl:)kT(G)J_To* DG?X(" 1cn5{\ltyc,gʁHcH0&q!`E$"F砑KCܽ$&" q,_ӝpb ca>'AIQ^@Phr$9@o$:IZ 4x;Oʖ9ȆO lct!67hF&Z 5I$EԆЁk*,Q=| ²B/laWoêA{D8Tₕzp-ӤF$zF/R >qH̚ɖ.R$"9AjɖD{Lg:cf5LF N~*T ';r(-.Rb yI4P>o}[L 0R=:#.ͻM8Z 5Euu:1j>b<(l/Iv,nq9D'r'8179XxBͅgXZMb*A :>̂z'F,pL=9æă >3\Rci+AhFJ-,jԦs)OȬn *985azPZI?s\ p{k:!E?Z׺H!y:adNllp!G։.&f1kkYYKVf4u !dt+;nzCtLIF2U;}#L6yFf[ARٔt`D!cC— c@r@%몭!.YdEBu6>LbxS6!ǡDXX1"v[9LE*`8I$kd8\E^SeTZ.L _XȞ%Uij@J9ieٵ R pB*iI%8UB"y?D y6B aM%+Uu-Yyffd/sf1 Srg^ 9XlNSAiPt(YGI*Կ͝i X{4r:MaXq&(caa"hˠ5d%\kɽY&,8M.hGbj>QɶS 䙠" ЈGr,H ƍڰěJ# m.ImFmЦ$Dp;biB $y<,d h69ڨB,A\ՎB").F)Jc4Lr.U :o澄O͞xOnn2A4PN R $I !:D?KR|"&Z9$jfmȌ,?q~~(2rqы!n˒"tFD#r oHD(KqZ*ΎjLLdlvLDM MX#et:€nN gLcHu e`ʐhL`p U BK6Q"8Tb ?Sg|@k"@9!8iFf X>4.ǝNc!L>>'G"M iJt" "@񺌬0lC;*= #yRBb@fg ˖/%}-;:4nӀG")bH' vE@ 7o&/%dc D >6!Pg0>!?  RJ>@-1i#W9sm -q! ( 1oVi#QmfF3@}UdE5NVgKks: Ft%$ZʨfLL"&/4"/&`:_%ةMDN2:,:>h0N?f`p` v3 OyqIrp[5 ">])@@BPʎD԰!Մ/*E꣖lBa(Q d~~F% FJȻh=;$+CMryR ,#=%mkȎq ./$ ./?@ 0F3S@ >.4."PjoJJ.BF;X;O'h+i@M^O21Zrꊼd4剆YE& 9$NxfNM:-5FM !XC#4d (9&G559VCKpVMh@$ ?30hRl>(;> <Σa ;7Odr$pB`$%tAh2D:&no@+:H2kCjc04hOC J .6dpdBd v\CI::`l$of`14P!tAm܆-w 1ݲ95G吒D klAm|!Q1MȪ k c}+'֧U_T$@ecyv!dVʘfc kds9GdBZ}M[3NzNg4"/]'\"W(f|f『8b >O%@ULU0@p|(C**g ffi֕V;B.$;Zq&Xy (&N')H*eJ8tfVIgcX0:p"=pC!'noVp4dqV~77|xjf jΠFgj`BDw?jzb?0Vj,sklcAnǒ [m;ALA`FcOJ{!"7\s=?8OO&|GpBw7 tvw?yi,EvmB",ꕻ]2,#< p%٧3?jkAsL0xa#C`PBѵ&BJ;5 (_%@i!yHgEx2N1 3'I(Up(ͣ#GP@E&*3 ^:M ac04!d\1Yfe0NÈވf5CW`/F  3:&9pd*k|DH$ {2Ek qEi.mn{GaF֡2@d$#h (1cGӓ:ʼnmPҒEIr$l"@tρ6D"MܜhHUO ]&:@ ehP8W(.p2`S6)@JUrG̓B˄,K %:!xFpe?DxB@[!҃_IҷY}\JB S2;JTr n8h (DapS*^}Fz4La?XMxD 7p ̎ap=4|L."`ƨXenAd'+ ,!FG1qaCSʛ=J&bYOz@%My}gkAy^'T" LK3>%=(Q*^k9HGpiK}*\nI9r֝6Inֈo| CW4Mbud]tA(J3kA[ |u])zJ(T@=IJ uIIcR8\+:L,a t\o&mHTg:hG) 8 ~Ɉ.,Tv zU D wR,QR)1Q%!UjD*dݪIV2E0zAT>4Ǫ,ԥ0a[SJf1oG?UjnJ 9x¨0_xDLjˁuWs1'S3yʘ_V1 m5i ckɨLӚ5܀nZ2K]3Tm9bҮU2nb0|SN_ WGczEC1&"_MLfTMmM(ZD$q[Rᒻ:bTLn "_9T!T--;dB`g0  N&X,qrBQfw?Aw8eS?4e\'.B"`/??dO7?#GdB Ēq$\u2u$)+!.<.)dgPb>jNfu#FQc,Or Q+2RO=.13!5GEsxXX4FFk5yyPJyU}yVFV6z7iiw3%YE$ {45V0q1V;kxlVtE>'Z(>`y|э>yؘ}gHu\v~r-lr!7\$$$!fK:"^D"#fŤL6eq9Wb 1aBT!-\10!fƁMqb2>{IG RQA@" #1+0cqO [r07{0,+AYef7Tr?&[@Z ,au洇dH.2@sK1"ك3/^!&rXf>S\Tsf^.@h!570lk2AFa4CFJYD0ъ8h%#Jp9jzzij50{{V'saCd%5vlW4A9y#~ihM &\\ŏ#D`inم]7`D$M JnC$$n7'+ A=zbp .7"!w:"8 $oWbzP XH@WB,<+qtp]YR%e.Kx+?D+Q&rKY+UX-0TG,g)UQ#7R7`%8'-Da_ t<0!'AnG@>Ddf"e_dGvExCx2XUii0Ygt)}Q{a EX d fgɉheӱ{ׁVzGˉG؋@Xg!l128ai2{wEE3Q\Q\6;ag& &` DOboU^&cEL b C'cnL1m)"7r--NDL $6[M_a fQ(aG+\i6*+4ۣ99ãOW?[ CR=tKRHYd\qr&UquW>2b2"#rDJU"$e%E,&Qt)\*cAc,fu91~B2zFlX2ehj\a,SjѩPP~P~)PHXb9sK7CdP6(#w{y!iIF(X:SJ4XDjClSTZ[\%12V{:) z \:o\# 8=R$+BoN9+J #J%x+j=P t Wb]{B9Ə>,Y /iwr8O%•;ʕVR s(>0[@ L IpG]f.79']-9]$#=:_B` I0qbTz Pa$B_qZ0d,ㄒ.W!5)SSE tn^(N SE9|N$Tw!ƖQŌSZMK0fv6q)o)vkNTMq(Bٗ2u)("!Ru6f%p&%#[vWyp.,zQiFZ~m3NO;P zJ*^EgkXcEŻيDdGQVߎm-NoՇP1] _ 9Ua1c cFh%6hB%.Y"Cd'kڒDe%鱥<*ɓ HzbĀ$2Ќ& G!MLf`zɩBŹs?9د1l=T+H^Ą\I/R8pUQR֦yjuֿ}B6H AN ̘AD伞_fa]Hw!LK:RrNs⑜gN> zK}t4!uIH/^"Ch?|'qd"4@4`% 8AދaX>$GU( @aAFBv@ HRH7!$8 | *ЀD#R+'P t+$ q* 6Ҡ(gPB ?iCJp > 1|4 ڴI&IAp&&32 9hĚM6C &Bj 2bȣ"d$0HIR^zi ^z610iL'8i(g'hN<tW.0ˑ0('=+#z42($:w;y # l*[J)jg40"9 B DR͈:hX3ފ* 3lj)g D^.[<4& \Q)@/~ ;.U/2*ʭx{=hA_!Ѓ'*i%Mi~Jw) usAz`(G 916 `]RĿ ^>AMS&&J`rd:EH üS= B zr܆d~J b,sIpVGu(pgs{bԜ=px4zsԈ#9rHehG*KHFZ[/Krm^RBF+Qy  rK2s9\2v;ڨN2/ˍ̜ QvڜqgPڦ (&Hz+mh^8-u(Pċ"Yz2J=|nu]W/+kya+uTfv}aabX'G e2!D$+-Vǂ9X00d0,iO7HLʀ. AVbރPi{3HE! _P!v y6wAK' (TrWgi*Y l3`ҹ&8AoG9#D b8mŠjB<#Xd Jiҁil2M #O 8QϊE u m27#<s.PK#c Ɛ9<̂89,-- 2j~ ,J_g: p(R% >U*4`G LBJ3YX#\BpFL&`R;c;P ,i h *#Q _4Ƥ9$XOkD$gk\cia꘷SJ/ ? 5G3z2 8X6J35<(5HwբS.JXSBA܉P5*5PP:XX=؂ - \> ‹B`!0XHk# >qA9Ȱ6(`=nYUϢlkP`,?OB3EBhcEx#:&X-p' 1J4CB7*//7Gct[T4;@%KF^_/\ImbHGT\;$Q-]dO$w%Uڥ]+( []~M_V5`NVGfd+5"DzQIФ6j3js8_<67 RE  cp=DCwѮlQ x+`eG<$ ` X4KQS3"%pn.lc"6IኔQa,Fl hٮA+i#][ބF-߰.c=óEɹ E*klb99㷶K;\ܪMjY:<(_ET[\8î|%KLVM]:LQ%R @(U@&-YUY[U:Ncmcݢ-RIʗˉ ȉ9HnInNєM ؄XFc4F:PꐻvWpǑg 2M8cl;ʸHM,r @ oSh i=0)E-\phO[hy障XN>Ðtq~q?\s/5J L{_uS9R:/BKb:%ʩ܍ ϧm86,Qh[b&˹Ce [BU;sA/ 9Aہ3ON5M`\:N?0 e(HK҄ڑx4]V٫lW3rKQԮbLPe{!B&,ix2:?L}bb赱mŒQ+NzrM9gHeRlr@)[T^`­u]W[xtH( Eܨ- B߈\@F:0L؁UˍuS7Avq wG]#Hy]pI= iFXƤXΏmOLDZLLI|Ol"Ay?D$"b0l"lF0˵P L.$A%F^ -eLdY- Ue^-PPHTFXua +EߧQ@ULt޻c(RR h ht1^Bl9¾L\T> JIEf=Ie]?EatxLdƮKJxA1`QR@ytv]HTnlNv$Y  -ɒ݌G ?.M{{|:?`HS$HL\M&5Pix[yqǍWH&LP;ASLetE`ELىZ`{\AI mA$?($/HI"F"eN&//Lf  )"B0&YuTpA*ʮ,Re?d-^$YmIBhJpb dŕ6.I.5b#E@L\л -R$M l&_?#e0QSD~]QUV` ƴIcX[@eƄ#NJH$[JKVXZ`7e@h6h(̑Bv%Wwq%Sz*?BRd~`TDH4uYN1ve@m -)yM`@RRMϕwNFFkggg$e]lL@]d?[@aZdIXhZ&((؁eV^d?dfhfe&A)fin. bC%Fb$Z85HAb1=YPA&cqZ\UKT-j Od_qBLk8P\!y}^gPA SAjFaX>[8D'4"ZZU]QM]y3\s(0P]^'ml PS,Bv[YjQ(@.3T?&F\UK]L iRd`$RMneJiKjOZuY> \\` ܠX_m~TeGU)\5|TK]g`vΒBX曑ƫ ul $oHǟ'%)6{d{\M QnLjaku[0W]X2,Tnw'6?ӶjI*/?w%Aڍ@3dVHV[)!ӑsD M6P@q]/Jf<4 ھ@EFo@ LH xbUsY)dE 9=_fdF]PY9hḌ]?x%LsmLӉY.9[ʤPW[)zbi@Ve tH ?=0-~ -vgXѧ%cؤMyrz`p0&9( %p8F=Sh@$)w ]cA5"L'z{r'n0BYUBFLTVZaT^XYWF8MK)DcLRZ^P B}37.R,岆ٚlR; ´;άΉJ2'IԼ."MH"xχ&S(uҔ BQŁPpP^eTDuR+(%̫"2"i#8A>`QR +$Gn)d:ꧣȖ )$#;R)t *b9 1Z%KZk1J%.7A Ĉk^{?U()8쳔> -Am2R( 69:KzK+H ƛ;HN{XRJej:?RxI@bm#C=P$,[-0:YF8GHvCq\r'\<CXc:(2.bHsLD $+UI71=Kv5d$33cM1^gx4)A5`ڇ ];4"=lTµX-}Uk#6n gYk7MW]w%TW!0PP r^jrHFJRKqs]e&!Nq#GG䑖d$e -fi –-nȋզ^UAj՜ aYZ&1X&%@X[?(Ǝ4)!?D62 6Y`jӲ(; 9سf)ux=)aZ@H/=O{c)K#J%b9KJʉ#>XDmOR"<2Ex,P M0fQ&s!pFOEL'>\J a P21LshA}D'uz$%2/v:F:R|>sE"3)#pB4MD&5<>AЩwBBE}2p Elcg6. 0D=\M>|ʔY$Q RRBg]Ŕ W|3xtHIXdhYYrŤ> cq`ױ~sD@PH2XeEkrFe(}o&3я3éP367#i c= GDhCO%'bI"=|kXJ)4hq\p]=AFe-cIl9T%Ĝɶ˭tN<͙3)j脒$]lg୤gĕ~:&9ar?P#ؠ&!O#Խ.vpe*UP*Bz35Lnhd9faړXLM=YOJs_}%OQ";VLk*FJ+>tktJdt[՚A 5;g>E,b`q,z?#aELlbaȱ3#!HLVe_+݇ B-mS'% oz949ѵYٺ8N@wT(p}Ek *߃w9KidhFS)) ͨFpZ$!{$2`4i\4gi*OOjR$>A z%NJکGMzrO,H)W0.O-=rJHL >1LədmL >|d]i$L6SՕ|+L1|9L^XyLa9c jF >#6՘XmIRʠfY_ԆFsW/\`jYk)Z@Y,}.r KB̞ _W ,.;N V 1۳ "jgG۾*E uQkw_3Hrps>Y9@@mgkj$D(1K"bI@Oa@s$NB#N$x$eMT#2#: l"DgeæaI 09 H TDŤTP~ψ,%\ \ dh6. b&tEB(G hBn=ʒ#"E y KDb%%%AI >(|]$!-%`m,Uj "?o 2J2(%,!t1؀v5h^ڠz/ sC jg~`-wb/ Hlvic j2j&=tN N.Ps隮'e @prP*J nIOblNÐD!SB!aM@ \֯2ex> Iw@A vlPd2TRvDIi 6SBUv&ezǚR@ e S_e.. s8}B0WtŢ⑘f;#jb.l'N#,)&b=(jB!rvC7l_H%9@o>K< f*(Ch1%H`/F 7`e,~M8kmfj97֊Lf}^fGm}efX}|+{L=ң*1."o0:\erR  '[$0#*$#:`@#)bbILlK* ĽdH(SxM,k, =ćC%k!Sf@ALf&Q`!C)S'LOTU ,N,,mC 4,"6veİ,GfdRf .{X%ZE9`eRl } P#.#L3f=> 2 "P? (1ljmpTܴ `kSaePS90>&Tdns vVAn JV,;mVf;iKD@8ke,fJ>r+N1`mR!Uj"Qd0ɫ*7 *#N|%9l܌NT%JH' pfA VsSJ(c#j$'RN|< s{, I<$ RK$gΤx=qNa,f8iKSX6i[dɌ 2ό,7rc9qf|O¸"$:ڴ *ܣ$A>B!8WCi>;|qVLS-7VYtG[V4Zdwn%Wt- E4a2QȈw b:ik ?Dzs~PKT iҮQFNm:s0D8b~)|rgtxL,O͗tǟ~ܚd*)C' Gb焂}E(QQ9v|KeE*g@Ϡe}AI]TD%UNU>zUPz.n,gՕtQdv`մt7X6b6`K;teҰY}H:;gH4Ee>>2"B=c-3 y7 EfKUT/4Yr)`(`l\EZwEWlMB0MRxc^ Yi}8[hQ(,Vim DT/kulR(z G$XF$yxD$> |^Hԩx j;%tJ'Y*x:ŌJ #0z)R=*_P$wZWݚ*xyLJUsBgσߛs37HKx6Z,]d Q 6^</gGki;F}"\;*S!Bv""R hjKc<|;}6ZΧEF`\U`QWGzL[jbG:J"}ʶ֘X v_j>,{5Z9i4% Z17gfzMyR ϴlg Q2 R{6WRb *uc&P䷘<S|pt'O]KLbɡmː(0*qR5!՛r6aO.ČeQ2RUS~fnVgu~6ssF@s3a565fud, MJt+bL?Di'>ĈAU*ʿPMb8'J |*TE?*Gx0ʌY4M*8KhqcJ*>ڌ`+ $Ѧ@` ܹtSG"0 I$BЦ>m @ЧDT/62dD@Gm s(FCS 7`)M۷>sgeN^׀-;q"@~d2e_&IA\)`~v^Q'v`PNVW]UhPC)՝\Y?%Pu%dB8$YBQ5 ȱIȁe&MrF&F8 %f% fe bm1 `':(!@;G\fđ1IJ\!Dq 4PTBwN8h4vI ZTG4Vx/TJ2KT5P>%TPC~%{DN91NDQT(E/XX`Ux$9!B\uKD}_}T6Pck0duDA@6hqڜ"[†mQJin||\q22sQxZМ@sfwxݯߥt b:L4ztJuȟ (ӂ:PgY_o Yf&^(HBh,Q`&f9l?lφ@(!l֛o)Pd~)A,7i! -HPzR=irWK)12JPY@hxa:,c'VV6" ,~*xZ%k^# @ sa aؗq8 bX" EJKp” A&S)@0 TYh'; bZ\e']ZJX~:| `G hNp"D ݈@Tɏ"hQ*SY{4uAdt$(*h R}@ɪ0M%t!]g؜&5jUȄ`ρ.SF;O675M"3OzA '( J$e7T?WS#(a\1;{x4D%1C>PɌ)WDZ@Qj,AN(M6xe+5W|hϰV8| /a b˨rJ A-njS%FD V*<80XX-䫦Vxf٭nRH ֓5(!rCnPeAдMӔZJZ:5g`lCP$x$g9RT ICKoô!,ٚ-Z%5QM zٚN_ M 3ZR&A2@R&M|5F4y 5> jtg;_BOz⍣"U`f7z à,UUPVY4 r󫍙Ⲓn.EPBGJ[ )7S$e[B!෎%a Hܹ%|@SPJ U!ՆF *A׽%LTVb~E=!Iqb#Bo]Q0 Bfl#;g#" ŽQe 2c:a`K'GЉo5T2WdiYNɖ 6溱APm@Fҥ%䳞.yﴜ_E:*Ft_X.qUV+֮YH(?VqAi -+U PߠF K\iO'AOVjIKZיt$`OE0&5.!A쳕"Q@l$bѦ11sS{MR&4;s^|c8?MoB7pCpS<-d(#qf8u*A$ MwR> e"pecye!DmcJT0v's}1Vg)aTrUP,Hx|7f4$'/*VT$UQG,xyp#iB)dBx,=H]1B1dQRɒA!..wgGgGeD)X'QE%Jo3wpf2*Wfw'1$8sa+)!/.n8hQw+SHX2&g3/xWz|Ai'5j7I&wX!*6eb %&{lU5K|9c&UL!)!wf:0HknGZr:jbf'ranf vZu'( qDE0(Yq(9( qqP7gk4!/(sp\*I3O\0FhHT4sBX!tH[Ku-EQOu:B,PXsTG*X5~aiE"!DBd*)n1?s9,QzJ{ihr1VsRti]ڈyd'Q44+q#rG6aX,-|H!1M4N}y{CsMt35)AC;jnjd1IFKG1~Id)20TSnLǰ %)a4` މ )LZX t(_N(N#c<$ 1[& 8P|'qTbEWx3&p. tړ7c<@=dCIb`~HbRQ-ǂgT cyVv~3b)GtaNj)*n0FI/1m2lw wy1fsB3|giMӦrQ0'u.AvyUp5%"z!k1kG|ի}ȧlLJ>qwA]Ô~xRC'nǕ:!nGsw!?4H0TTbnFY2;̊sq 2 0 &p %_r 8xp~B-NzNi`9*JOjfp 2*lGz1hRd&*- AwdK8d Q )Q .`gRv?W+')vW*LwL.4+@ȉS+0xQ*fh6y9xyX>@34**>,!q!s7ysc;v,Z"I1IPl7%To;#1~`,nr~[nq%FoƊM:*Cp=)¡ǐ![b !D:pn2 , !,o;'t2 (ٞwQqI=NrЁ;)a;lHN[z|1*V5D 1+*Q7V9܄[AAe6~'S±ı4Tbvfr8]e*\u!1S}z+)Ea)$|Uk7 \j$c4od5<48+ az17F1AgkFztWS'|QCC[9w\h&wřLOA=d=~Rp~Ǵowԩ ^Idnp2 !&p%r ;Hڬκ0)#w_'lq ӃԓˍiqEH@:Drl!*)bkWV%rA4yA.1/G\k?`S.JT`@;pE4ܤBsA*r!*P CBCgms&n *U!?Av*)mŸCa'3m'H;>Ō!Csj)T*CPb c_A=C(pLrLnvP#+ +FL\2;bNd|;`F2)PMziqCaW1m#.Q12g+:4"T \YVmE_v4Q,(u(M=3+PONϷ)`֍ܲ!1*cQŞ˞DUT$4.l6C?s$ ,0m}r,^A_#?_b㸱bJDg`)_W}pq]ܸ"h"?2;v)p\*弡\T7dNÇ.;|&'pMX 4+43Ҫ|+34** |HB&#F$誒ڈ(/cf|>1ɧ|2 $SxRG J*>飧 B("I'#u*5R(6}:YPhcqdӢc1&#k6IȚ3(7k2Hc\H͈ID;EIRb` 6N 5dH3JܒR(R CȪ .'PB4$ чrb]pZ% aZe+1}Y%V| /@1u-\xUS1zA[w{;-\6[0Mr .* vh/~n'c$n`h"ABT]j p/58(l@IyD%*$um'SNkhD7X peA O]^ ?:`|Ԇ0(L*ޱ>4[(6-a 'dYQTE<*۬RKJrIPbIIL[ɍHhP&tTR (Dz"X`;% T\-5usLdoF0 xɃt<$ Wv׸QF4XБDeB0,eHk"@D5 /T`/>ހ -2p#4l' ÅF1q/gA>02`(]Hb|@u1d?B~ KEvIbxB;α)r 7'1Qe5} m{όtf6l%*:K[$.hdi:V$i,Y#>•F0(H/D*9IFdt\6-l&<96MKpN)"^Y=NpHoiiKBD+@apPJ!X4<%G"׆mY[y5M+8H&f 0 ˑ wG)t|ܯ{IWˆ@AcT/"q3jEK:)L#?Vj@'fYc4#BYl{!I*j,8;uÊG1X)ef'+]*"̑g#6$gC6[]4m+[ʞc Df%L}Ҏld.shK3LGs Sl"$L$PX6t4V KaUNGZޥ7alZHRW׈D&Ulu9m9uEREqY$ȓR/e\W>d>8CFhKA%x[Ipr@';f/}à~3t3yŗ3*tv  @ yЀb;9 ⎚8 !A+1  9 9p9J"l:⑚H3Ӫ;qYH³H*#y 6^a+.)/< 437s ZW!WA#<#4Ω <=C=$IX(Md@Q=4C1ٚēEİ!bZK=ڡ["L0g|F=3z;'/зn7p(?~84ؿь۰00:~@*$080" S) dAIT8Biʱ @б@ˑB!YBx `%tR,BlB+).|C;67W,i? ;:˕"ǒ&x DsRCTD6C @\@T C UADFtDMT@>3c1(ZZ5`0Ca*-_S=aEp aǺ8k\4٬FG1e flFhtF^3F#(FFج 4 a 4ʌLjƀ +tTO(ȂD8 tH0-+91 I Џ[+}! p! r<S*ɜQ!"99hBT&TNB/yX=9sak9C!(d:%;"HK81T 7 |RA'KRIRp.KxМ`CK67mӘ(&Q8@L!9)3̤5ͤ5LC&(G>YtŬP>"ۈ.tNo6o.nR5eN$N>s.cn4Ղ8sꤟ ,w  30苾8 VGD~THȀ W <)0☓+\9@mȏ{P 4ɓ8 '1Q!)BJ( J #C=6& 15C*Ŭ( "H= AٽK'ǂC{)24D"8Ӻ4A$U S Z%bI,I$3 3;>0T>"N-MНJ5`cr;rӷZ6IlMl-UNf|FJ5ܡM"?m<\2n` ) xHp!  =EpyVϟ){(Q (^t"prM ׈IPH*c"H iʑ1]Y$:+&;#b:97C+p'KLڜKSQaK ˘a Ba"(BDPHMkS"(`+Q>L\lPaE<-kH%ؑT; > TɮRnA7leNVc۬MnkNo,?zΌ }A OqU*|YLOoO ½Vi]J k$ 1Pc__H}M1A ?ӕ]ѕj_A,Q_A3;ܰ#6s3/9Ü 0R]\).]CjX˳Dg!$K<MSFA$SKh "2I͉Z=`ZlS`~JT'-٭ =pYʈN fN>kcX\9^76:9H78f$9\7Vidse8/˖F~(kʄa2O*ޭƋ ̏Ǧme0 If^׊H e[_ZW9P A2Q)]I ]X߹'A..+(C햕`IS<̚H=$9(-PR6aU) TD>DBaBIL"۪K&%Xft"ZXL`9D r%L[#p.-cNghF\pc7SU7 'k]hlEāO&dVބǸ^i[kWllzȾ@бYheYP`~5lW"t8ifӕg6gB[b:* >TC8CRz7Im ÜU53/٫JBâRY`T<|CKuhFe hoa:sQ%mb&p&1iOpM P)#+-./6ւei>A8tFF5TC5;6Adh5i,5H1ji]Knي"9"U֜VBG}qP8 BD*Z D`ȉAh"Ĕ $េ"PM'F3%FGfG<=Zu+Wd&ݱ#EҦf U,ԦL6Xb {wRo„FO$#׸ϿLD:<ҦKA$5iҥA Fzl"Mpč&B2GE0 PEd AP? X ȱ $S?,X5cBDeQgr1@YAhHPC8uDH=FfIDQM+фULBQDMmzѨ3uURI}EF\QMUUUOURRZ\gEְlTz%L=ϳ{WabQ's%b . Xq}xi6i&llզZypYWauvsABjmr{wg}W2~-h5ƌ!"` &ZDnG[d!AcEFNrFc&&d2,Cb<"JPdGP?h2Q?3AQ?L7A@l1yE#&֤&A$# & jC D܄" Ԩ3a$HKd@J:+NCiFj(?)kԀL9TWt_,S[P-%lSE;}\feu+!UaEǶ^/uͰBf8 gX 0GPiRy=L &7!u%cVe%%:Q"X^ nL2ip>#bԓ>B"AT3YXkفJг3!1Ps0Qm?5#| F`KR&F64 hSv \o?"@ P$ILX Q 51G !  28FQ6&`bӸ qiR9QHB;nJ6"J$;1"6ª@yKN8Uv>Y=e~U;b]W+,d*+t!Sվ~Ҋ@Ǭ̥}ۙ Ar#h'[}1]eCE :kFqAt&K:R5s)O/mQE`t@QR P;!yPD,eOsVH$lVLAm(ZJXЂ^LGC+A&6!ctMQt#ӅgS@Tm=0HcI@XIL g ?rpM"%-6aA䠖F-Mw]h0d1VGq";Uw-)^N"QE%2ݔR;ىNK=E+m;7+AeW૟Qi>boVUA|B%X R,K>O|BT+7fB+4xi HKҀG)z/,n`e51{|H"KG=Fm|E3 Im劌X}U1#rEaj Q:3x`n SJӣNdG=)I 9E2nHƈD%?pՂnpy[M U8C$!uJEڠLArk)e#< *E Bv+3x)6y{V K\J[˽߫o}>/+(M{KE|#w2:94Fa s^I G[ Pq: Scơ#;zc >MZ3و{U*?ሪjBWV/}Y/I");]i02q a Ӑr86 'z_Ayd`ߨ ?4Ѧ/$o| F  U{ i U ,,a`0d g@LX} XєK5H 薋m?Օ,d VaUeN A BmQ0ELdMcb XY]ͭ/I햎X^CDװaJQ[=OD\yDDDy}~eUX{WWl"U^ObSO)="Mfe|Q0bgQxHFv2Xz U.z4RKp=u]_ _AgoXlt1`FmLkcF PH,H0ƃP荖lLrPRX9eH֜E?ĠHE#MBVH^Jŀd] `j$f-R1c!?ŖP D ܍0|?@$Wr壐 F^4P=OER: A`A#¿&V9JL@P($ !?nUV^K ē^įD ),s}HesiDxSyeExet=iF߹]E;z)ib^VD&Vd|)fmֺ-fA -Ej&؂fy8#h1#{8Kx(jIm|ߠ .*Umuj1 Pdugv ܩ `F'qFt +jzHxk۔@cFWH hL+bGqbBN$)IQM؀YQ8a5haE Q8D$`&,bdEVQdTD%No!n(hH(pHhͺ,4 +,P9GЄ^DHJ%-c)p &aӽ|Ubޢׂ}\ ʗ-} ًRe2XJaA\ܪl^j.{P0~TAʇǴ_{0`:rǨZ&ZF! xtޜ9FU?2vKW[4ȖAȿjZPe%F 4r+A֫HᕐV^5^Q/4Vckk«>H \"seUVM,o*V@g, 9e\Y\DCD:D xpI@zaNEY6YN>xY17 'Q_ pU0c2Db̢Q(zm}J҂ٞm}01HZ?pEGߺ;kk1ʨwji.jA&݆x`PgP0\| giA`j _Lsӈgϰ5uc<]?Y1u d-͍؈$XQ5 .!.20IFKF:(W` UΡdL+I`Q B `b%Uo9n\"qNEHYiY AX @Rt(nED"4bCSp|[:&p ' i H0x٢4mQtZM70L_1TMyX]_kƭkʹr&2ry7ne8PiXpFAzh?D 'N1 +H nv4A荅wR ]%CsXm|Ȍp/,DޜANV?\09ArO!c%-$$kWL$/xJEb5h^ٱVmkVIADacrs_ I@0|EúrUps^E|7J {)~cDwշ~[d"PSl*_(1 LG_EtLWqMMy4k.Qu/G- x<$hBulNǑwhqr*Fu@g\p,Ҡ"9?qie8b0FEFa^3A\o!esl$@2ݎ+0FD>WsaWpިh^D{Ob>{0CӭWGWT;-2;)^ڒ{I?@8A(MM~~lŽ;3^?q%|ϭQ;W<ؿ+0@YYLb1,@" gV!h3 }Rȃpr@L2w|I(mJJ(!߬5') Jv-8Hł?&c2p6YgAa֝Ҧb@!C`m;uwqxpP` |u:cR# nPbD6;T̀AGܺqq72;4Iȸq|GSnq^݀ M3}||7S?}/"$ @B@) ЋP¼ a!> 8; YX=,EGWlC |tE%H ljGxIA*)+J*A"  K/I"(K23$A*'zs1RL63&$A.: "Ah@>`Ԧ$HRjTF5#WsBXHA ]ͩ(b3rBpx jZ$&D)&`rZ - h-~H6" W 0̐bB .)+) (,)k & 6D5p H7PY7㖋f7v C@g;720@< 0 s> = ,?Bڿj A^;,3%IJ¸]@ngglCDsKG ̇tF,1I)M"褳I27eOuܯN}'?'%ѻ6 H5 4&+HQ|!*QF1b6&b"B6uX"BJWBH&zI$'(P`Ln᯦0$[ V,l%R %-g9iE1▦\AxM!@g/kR9 g`aie PJY.Pi^ `ɦHEz7MSCl81NfYuxC!Le9)Y|,k]{OS hlT3Զ 1nm&QDpZ7D,e7-N1bщvq+r\'KLnFL!MzR4t%(aKRд6ԭINUr :':np*W xLL@\1$Xs@ IpI% WxKUSNHf$ת"@6Q"R\jLiKN?$&6RSAtʬ U(hA\Yv5Ma^2"-4 PU|):ͺ&.`Icֱ 8L`J. x.3YpZ4vDgظ3m; w~sHeJٚ#6'k~4 M=> ʹ(F[@B=. #wr ,@9X*0WTHөY$іQ59+.tPfz:-vJP)a~L +Է) D &`3LTGf1QMY4v0Z0g ]):%Ccǿ?$XZ)fƦ,r$ ReS*d\–fݫZ&OeUM×.0< 8T eT"! ` >gx%c 3эON()3cGXiL:8)Zx3n)𩏨%i6'?icڴȳ&ZuZ}![+hqR<ԡD-k $hC;n-ƭtWt8H:%%)IŦ&kCV&xk!UI+P;ɮDB1B}wL2]P*|TVWIS mtVkt1R:d%2UmbhY1RPd@`NtE,bDB>-2MUL4sѩ*jR(fD}2e cD8 /Cal3 X T0@hկ|,ɐhgvl$XF9IYS~1zۨM$ ՕĚa[zTv?A ^Et+c_(t p 8q-s2%6юk#}npy!%iKJr49bnx=&;b0q}(Sʳo}%TȤPtn*NUT|y^GU S - 8"ŧ&*e_4M'p8p%އQ(YrL&f~4n,Z,pȂ)\z "Eð4É,2 #.4Ɗ⬄B- -.ΩZP4c ©a_c) .a̬.. @O (g/9 qъc8xx#<.h: k#( >(D?\mdKo\O~M|+pzropDr)Kqdٴkpn$ڠKr FnoB ΍⭽0$KoI`Hh $ 4&/ބ l1 bA  AB*r VtP2P,et, 6b&QF)E^Xrj Zrnj$ #\J0 32*Q.c1 BgRlc6é1.#4#δJ2&%SOe`h0KC" ͍@w rgg6MkF>I-Ak$?PZU"HUhjƎ"4),(%jB%}Zr*\3"\H.2(b-B3")%ET‰5JʈP$($"%`j:.f1#:ҍ :#e vencC?.?#c0P SAjCJ䷖M42)x3a3gUs41sϸpODB'q2gGps¶MjGu)IFntH)~rȞ`aʼnO0&bG ^\ =4 e^Js>w>F5,S< &T$d#ÔƔ"6r,4&4DHB-ȈCǂ\Rµ.~Ey.0lZ%a5&."T# N34*&d /XIteF,F.kV9Q-sц㎼ C7~8rkO @CAC-5B0IbDd 2mIZQoUQ91lR27'ڎKrPeGUV3($BDTTos)poKp_"H"aS gu2Qe2rgTRf{9)9 g..f܈n#,?Mf1 jj`> NC8HkCn'pQلUn>sgQl3cٲn!'0rqI4ݠiBq16k%<]!@͔h]P4@bC " 9*~[Ȫ0_ab]n!@xE\w _ا!$ ¢SBA=է&T$#,0\p{'0|e+,= n ~2b3 (^)04cJ) 2jS nIh'2mhk62KT.oA>@X:HL_hT1F@fQ?^ rF$dfQ16G56+FV)kp.S2 =~rKtJITnֆh5`b#%>xV-3Kk:R7_/4\@sw#skET$G'*ArS32uo#52vIo#56Q$%#nrp+)DlznsmAUA'8_UAr)w7: V%2],=C7+Յj{Y2lp+ƚ|M+(F7[0^ \[["dZf?r "eECBG[8[,*0#&aC=# pDK`02FPl)7Qb3NcL같G/CiT)v,&<O& :o=2"hh.YB{;Q dj%'$s]lX$G6+sohFMؽo ٜKoO4Xop?GwdJTvLUJȫ6l氅8CtN*Pa|eq)MRuH/@*2 ~+Ӆ=u>҉B>(mHs 1F4p9>bx, &';%MҖβ,8`"*m2[t}'٘ÎΩđUé&3HV2GTb ;=909-ԅ8 /+vAif-56P{1E ֘3 ;ZgAlimڦKlgHOul'q%NFp!,79HC d\_uj8]Z"!'hzn?σǡ>僂-?[,W)ֱ4|[*oW.[%/`y_ O``စ & @ s&L@ VV0%˖6n$/L*$hQp$su*;iWH2ew @̿TR:jU A/È tp =~l0+0frd̏IgYAk \<[ѕ7ؗ? sq Xμy#@ԳW>?"Խa#^>}otDׯڴ8M-rK $E A9߁0 GHr 1?p@?+~9bL p$XrdDT#L P?A BPA %E+ 1@0PĉQFuCX @nÇ}Ґ@*\`H*A4Jѧ(iLĨRt6hQFWD?HؕW^oB]Tc!+Uh@m[TwEgz@aQ AQi$?˘fXpŦeFn weKulVcцp[hH,$7s]g]u vԥpv)l$S?G|F~̒Q-$-?LdWb$H\wщ$@tHj;GK*飋t3m7>&d4B j!]A&f`ND#)2 њ5d7D* 7.M(D!P:xFaѦrRKSL0}L(] b)@SkkPO3H +/gTV`5UG5V]UZѢVε}]zuKa=f)dՙo b#D b Bk3Wmr3FX0^ !hHh8rA#Ygd8ɞ^ *H6D Cl6lljr&PXт-J1p $ U G~Hc>T?E(:@B6" 1ʙF$"h5Ԇ"Rnj[!$Fhlc I~!ZB rES%-!r[BEBKOm t:Br a ШR^RȂh;d'9HNR%#NVybAfv: ,7\zP9z%>7 s)G-oa~,؏1Lr8@LfXs7YeeFڋu^lpT` KwS8PŁ!_鰁 Nw`2, FA*Bl&%X1*V#" Xd`" #2RC97ZN$AtdF¼",B EyK:!iH>JSĤMVH3C#@lbH% dA *:N*Nq,45%P,-:e-N@gLC#*$9؉8wB $+|'5ޡAL|ה8 Pf" HE 0`JY мO,W"`}H^PH](d' 4^r L5R_&EU@dffTCrA&N< `h*ޏ9N`8LT"[*V(!{qK' B֠"ֈ8 4&BK/mCaGmk[4IWHn4Rt%U (jH䤕hĸ׎LvbޝԴYNPeyg"5Շqd\,Wrifk/B8pJ7Y@ɩn09Uz $@Q5j?!{0ߚـ|| VEo? YMU,՘vq&25gᄦ,1T1Rp3(ӫ2d^\3ƱUJ沗|X@]D#zω؂"Pg?0 Ӎ/?T{Ab`qQp aBq /##w021 QT!P<7DB$\5DNXMaGtNtZI'6Pw aC4 F]4BfG  M:Fq8l׆^? + Q%#ZI5="wJv9&Y5pe86ZwU%{M[56^K q'ʤKKX' 8yr9t:SX9uĉ]NMӘ јE<R6LJ|emXb+^n nC٣_˨94~ p:D,`7@b1 T@$6AxS*u /!/2٩5Ɲ,T!svnC,y!"8eYeDWy{2:=33Q`VNe^6 |6sE`",iGkv*#]R62!<<IL$ph[eK{f7"}h{a9!By8fIXÕe%Zw%hThKfSw4ypNwd5rN\K !(@9ᖧ)qׄ]3ՆeVN3%G~WЧmn0_i>_>͘9``Ԉ1h??ars1Yx Ǚq戜1)䎱0:iQR>EF ="B F)ޡBc#A3}0 \2tQ'&6 0uESGR45`"mWy9r "BzBI {G:RIS9l!~c#%KxjVBY,J$&eJ98㱏ף[P"ZY"Ll!}i+"&x[ٺw[GyXJ5; !I{{Զq:^bC+b|,{Ʀ}%6He]a_Y: u).rrzGb(Eaq p+/3/ /SBy`{q-=Xm @,B3ۭ_C:cd=)&GDs]45 ђ9.r6YWbL8fē.LSKtkOG"\z> h&6dV?ʱIZ=ztj:̓(#q i(cr^HZ"O:)I+^u:^;x~0|nʙxyUpTf;cimیjT ~Ga!/"@)ȹ $bH/Acwb!b1GQadK¢跞ҬJ}pD~zaE98E3* Q{!5eDrWYggLDq#H&ɟӔu/*ԇPVv8d2:x ‡_)lJa)R&+<7tRP2v4G\ԋ"̓4(\J)3{Ҷ;'*覚} Wp"EHpe3nyܢ@ѩ '0 7F꓅;8? nyJ#`3@;R5 IQX!BĠ䃃Y'[C 0!ҝIR̗;M%薵 ֚[q`9ZbX@ݻ.8!aya8q 9M<T&P0\p 66 & .># : fD& B ~@D+ Q1#u 8 * p@D ҏ@L1!r̆JȠ!8h"6-6 ϐX$BD"O>2 ) ,Ii)|+'@UOMI -^]#j).`cPvuv( 1 "`>,2ŸAj5ޮ CR#-4߾Ŭ[nm- Kꀛ95(j{S.[ZzQ{:&A@G  ۏ=Âv &Cn;-BhA 0_K#H:,6!qsRS :^8 J*$ʂ:/ S,3pҒ6 ":N$nզ>(PBYjTbJeUN;(N.=ըQʩj#`K`-D: Z@TʔW"*Nu@Sb*Pn$ʤRi*xډ^e .  `+DY af 0ޓfAx2.߰3jiLMԸ|,M˼IFSu%p8cf$ Fܱ!x1"lC 3V%+ M:hp f CA;πHm6,HDQL;b#t|K[-;uX~&LDƦ)Mu!RrU -Na@&B.p,=JTsT\CP%EYҔӤV,I+NNMU҈ʱe-\貹Y.hy69Ѥjyi3#?ݦK\fKuuv~Jo @f#amlFGͨUj%|, 8QKE*3i![ҖtH4HD%B*TJUrE OJZ-mf|K$xKv"z)(fk{ֵ%]-hGҷ%@jM K4b$B:Ιhiw5 "'yBަ:fL@{V0Od]+o.Hf: ZN  4Q;=Qk`ZцOlPW:"8qY±p8uK>nG{䜚 8c@HY$jjґ['yUחw%R ΛIO *xoAWyhS@EYQ -Fok 5Y^6M03?|K nj\g#جmwD+xЀLsxs;%A,X 0( M F0EO@TSpAG3Cp>~4"-$ADA;Z15sN\M!ь q)'WƐ5セTADi@ET>fQNE}=29:؊MLj ؝ݱ<ۥYP 6 eEk-F Yk2 ( ࢃk = R(ȼ "R9Yy  ӓ(8ɼ˶m1)1љ R!x۰s"7".2 ٽِH5D{.Ac1 ]E 6]L+Ŋk+ `%*)2y-?ZrDJ"T 2, T",4CKb +,-S̋_ZT̈AĐp hz yٌlZ'B 1/) 0h}{jjёϫ"C^;x!BH;=ĝY1ҶyBĬ)۽ 6B"8%|N1. <* cIS)P:ڪ#!<#r+]`La `)tFf* 2B 4QH1KA S9MúIZr\2%GGǁ4H|Ys Ap  1ĭ  \s6J:!Ј|cB8C*" 3 ><(J̘dϖdݘ6(6"QHl*JDtEDCTvӎQ Ĺ *˔ !7 c0"0ٛ1A>8+1 G'r%Bz\'z71q:öy@+%C,"I}EIX=(V! Q0{EQss1ݧJ5 N0)>R Ź<{\9|]8uYAb>jӿY $YГ<}{@W$qʛ;Z(ѧ$D 'Ƃy!^ 8|?tP֛J4R#}Q!^u ra,]#s\0њ䟖ښi鎌\;N SbYSeafl>NFOI o)]j CZFV,3T 3Z)[ҹa?hD$-^Gaq Hh+Ib[=xh&6bQv&yXt8i85٪06 0;3UD 10˚Xk˽D*Kx_`2(93 ƏSfxO dddLFfhٝ9U@,UU =ÚFrFF@Qag4Q33Aa:{a,-`Jxh$~ { nhF)FXb ?$_/ƪ*.Y3~JUXPO ;OU)8XQÈ JWa 4,E)URВ¿bLhR aBj~uiIN* ҧRpaQKI6P?т%kҲb͂豀Jo ?~G@ (@ ;0߄P,x:wY:nXر|l4{c'oƆ #Λ `s˧3~8 2kox\ ⯛~:z1i{*,\H$NS`oTH`vb~|a$!I! ] )pE5tŊ0@#ψ8(AB#ڄ?IHJ)@ 31$MVBY-4U2dCYv] eGJK$SKG%Yee ݀D9OkITf%V]1R([cTQt5T(e]m?b!Z V_eg]QYEG%XVja(Vcbx&li۴mեsVt M\d]yYvM\}Ͷ{Mǜ&uYf [*^El~\@@d\AT?~tO421b ? tԐ8|#%QCZ`J`dX@ 3Mi XB{IQDW^"@*J%4SBOl1PWzUziYV-R?Izߡ:RuKոQҥV`9\Ymqhah1I}n^l*mavj?e+cx&iʶZwJJgǍ[umsF׾K[q^y!l~nM [}A@~͉*pX!."&A}Lc$[r,E,ZQE25D?zdDKD:A$iL@ ph5)%9׼t(`z Rl$i `"(R!R(SzƼOKK¸͍qSTy\ZBE*\LU.Wr*]xYL_Z@jN))ɪؕ$w]hx[q%b YYwg ; UHt/e9Qv%LxK:N(?%^1Xcc 9As N"Xu!1Hc%dP3WSTq"&F9'Ox3$J RюV))%SkZx85!DH&AҵDHK&CIIZ6?&617} (JF)M]p)옙QZPEpzlgL–g4䘬HǴ4Ek5ȎC]Ǽ0/}df#mizb t'^q`^`Ak]`=̄xc?ֿ2hLVc+`[͍$;Q?W+h/XfxEgGz3D#/D"v]5$I;[5 r!cr*t&R!}z,4!}j 韊E=1RkSF G ӱp x%,TN??`9;dֆ*?ЩX&UIdzHWkY*h5O{ŒUQɈ=O*8Z|,SD{3I{߆8әA H%A #Pc%U6[@ YbJ2,ڝȠNtv SCd%1"-QΜ;6&H SP8ZH$yIYkDGBt۔B^Xx 0T$7}O N*Ί”m3,yG6,k*+HP - 0S,Lf\dq37 e|IK6ޞqlVceu|򀒬9_NY=〆6$ǯ,|%d()rYQ{y͹.0p&X Ċ9^Xgҹbv:Bf2t,@IpCͣȞ3{Q7mO[* {!h.Ea/JdhZCTEJA-x;0J' H$)`sN)y4LjBfOhp#O We0wr`w̄X]/kNJ(+J-k}⪸C41,'.4 1^ x"XmtIza}%a:YY!'{ެxb3HvD]8Չp ӉrEEt]HGDAD qIĭ{ueEN#TiQe5ݘINY@d PIlŨ| PHEUE^J UхVκUFlHX (1Y-]KeK)!̆yޑe\9TXO yHdܭtKu_t!bhuObygMH*\ YH@t$G"%x̟ILdS1W, EQ//2UE(v E wyHI0$NU |c唴 X9ZŞL[lQHX{TfhT@չlVQ@S   ki^QadXd,`4ϵܕ]a!Ye_qȩ 6Ddddyx|0at̋ lR_TXLс" yGo٢ȍ<%DE@Os.]GDWH``AݏUNMڄ77c91PFBPQ 9U RAWpHa$=QYXJ>XlaۅuRWLRIX\ I\&UjRLKY\0%5(h\GivNINnh!"Ƌ$R_\&FfI`ǜK Fu(.5 8d;HHՌQ5#2>^_i!kTM8#T:eg\ ^Xfa:uUakiur^ıhTqi\I)"`hgԉ}2ϱO ug~tfM_|TޅmJW ]G!Q:fԑeI墭 N: ؜HE sh Dt]I@X{Wܠ %a gcސHf a !R$i[¦>BS f;kVha |!] aZyKK6&-MrŽXTB$nje (}Ḣ& |/Aܤ01{l#9y_} tLHYhnZjȟވYL<5+Zc[> M]MLDD &M8c֨cg`igt\p߼.m}֯{4{''G'^%5lI 'IfMh9Q;1-e%2Č<+_2*QAPL <~ +V݀+ݢ /zՠQ[ Vf &Si 1JdBE\ ZՀ)ZT[ra䊸!E̖t6coFFX6Nő\2oXz,a cQYodլ{/eM/}T}6Q SK_R,2]& tV2_gD f c(ȈSHu((^~m?"3P6A@4*D&cQ5 F Ϋ8&jNSQUcQSJiU X )di[%lrQPJV!=#t-g:mr@' J$]wgFzGNl촕 EKltzGGvdt\bϲ$x4s|F=41_8G_Lͥr*w"_CƩQTlU&9+Ņ>v{yEI$khߎ.iUFǘo)@OƠ&OIn|uWf ʾEh{i\z %MSbQbORGRw7U5227b&V!7~_5RztzĮ +][ uZ[O_mU`F坐)e܀n;kUkvva|@ѫhˠ^Jh[?~aiхs vb[d.n t ePɎ4Tƌ&١ wJF+/|NfIc gpGJ1roF%Hrwa\~*~SzkE5|wU~wUO~˷I}c~7OTuNHkΘP\ceD4 * [3srx XveZr8JP4K^b닏8*N3VQ =vhJNIzg6=jpVދUHb~enyΒQ,*/.'f_yr9Xf9eu \tT"tGOw\=aK2_XG{;|S~w~@~c}_zI@:WuqzۈpW=_zM C 3g Uy _MGk_6D\Nac]b9!3 Sp;둂6(؎sQ9)T0e,"-LbI!-8cB=tÜ8mSS螃N< 3$';oS[ U05/>0`@[vY%.8@  04i(׬4-6ry!նÝ"(BS'{9r4IȆ͐h!UT'{N)lJIq|zWct8VwnIIԼg*e&Mvr{Y^ŘNMiU=-@*e)ܜ ն&nVcFxl&ZWЌ(\w+ ūMaϯnX4;-#Y" @# $sn/'CTE #|/$/Mlz:$$Kv+IfOZfJ┧B+tFa>+d"le$n$-v,~}jONBh.-0"33,QST"BPЊL4emm!&4ccREd(B :/ozE6t#= X r*"v,e-E 1lrg-)i h4P C"1&)O6M4G*$P7lmj(2evm 0j<tUc!# v1p\lT2!0s#!4,o4?<.?H$mx4PJj*$Kc:;u:'8*&]HyǑ:&4$P$&]LN"6ϓ& IĽ#mj/0l4uς6!lm@ !u860ICEHqp`1s<1-.WNVBT3,=b֣Y"gr$AKs⇚%P? " [ O!uİ^u/&ӄx@%<2"iE(`Ԥ{I73U3$]gkSs24(ƒTL#Kt6@=NV -Wa4.pV$!3$5MFufC!b4p4;q~ a b-J;mgn%1FC~'4#Df`Fj槞;͒bN6m@ L6UQ6~g@J7mzIVp%3KW6eS8AJe#X:U @DV_lg;X4|r=Zr$itZ0P]~#ʌN0o*2f,Y?ʈ4&Sԫka-kQ*V"S|C~o6㛜#H ^gzf#TGSos s(RN ?>' .%8$VTDl-ss RG Rc(pe p,V:u5t.GD4s42XN4gc5Es C̣ީhb5u7?ej"ey 3AQ P`P7b "j #]W]Lbv!c6w}; >#{"J$$ii/Y)%R\9*"76 .7Bq߫a}u.=-+6ReQSIT_"XWto>O>plG25QfFy.mf66]yE~#^9 UTN؆"V㕒1۲J*Q-7;|£0Ir T䕀>:uX9 N9ikf,3DbPȂsjTZ+w;@ɻ!B%/O;Rl[x%kk6^̬CwE2y45WҲ7u`Fac&"T!hY"Ѽ(jyK븲븣S# h#N41y!h_HQA! Uۂ#Ċ0 !ZZVz%$.p['j{CYn7hC@{p.Wmp]Y8͖OE8Ƀ,<{VDYSQVs=.+;&'5YV: i7bu'<%Ǘ:Y'6} ܏g= QQcێ+4\\7;+esmOo}T 3PPՃc8>rYgsR28'+.{m{Hλ(' 1)jýpͱn5 vy(?,-h[ Z;:ɷx/\fbb$D#_[êxeD!\Eo:Qniױ ܢjR-5ʃ\Ya^y!e K6ȣW@r쉿媟 2[WQ"݆|QtSTX|i}Gݣ@ ,? |1ć @ 0Ƈ:N(dȐ'|JT ^BINL? y"ĔneHᄩNW YWbj42)Ȯ(Fr0htdG' O_b-( Өp  DGլ}B tkֆMFm~rWBソ ^?~. /8?_ v?gNBn k^%H}ɻ/> 6Կ~ PBPC dIUdRJqF[D|iőR ?deU4&XAJ?%WE (d@)UuFhD.*J5 ?5nOhe\iu!a^~I=ub!%.rZișQi=fk7Qޢo\tJ\h)gs8tav~xܗ[sywx| y _7 C-A* 6EmAv^pYn&U7[P25չb] 4?dDyT)tH[uVMivg%]jF DEK&Ydf0&Z݉Zg)tSG9':tбQomMhm\)йZv ɚל7z^7@@¾l(961ݷVF!dڂ QuL*'M Q;P6yD9$P2@vAT/ɛo3Vt&p\hU^#aFQEc}zJ&I_E@Wf蹙DLɽlfFۦ櫛VMU棤{\iVĿ\'F: 5{ZB{r$$mO~z?zB_W ׳Zد\!q gHC$8D\aBW0h^3!(:qIb,0uɘg"01=LF-D'|9 "B&pBcC+P|4ɳ|<щ{$ &*Rz||!P#r .>@>ēlђ(HOY%+_Ke Ya/13^F7x9+Y=J$#LM?l@M= A0p~(\PA̹s! xs=|s? Ѐ t-AЄ*t mC шJtE/ьjtG? Ґt$-IOҔt,mK_ Әt4MoӜt #"JUUdH[OֶzUQWjWC -8] 1`>D?,T βC( vb{؈胵lc Y¼!7H@ԁ\up8I[E }?^[ wGrk:W ,x#B]C =@<މdv%}v܉x/~ 뚤[kl{e߈ܷi/xMBd?gv$w!>.m:.kcg'!]bU 7wוk )Mعy=0 ֕9XoDy֋XF8"q;x`0[5,p#BBV` #g0xЅ: d6P3\UϘI[UJC-r{,&!'m'b& $4>yւ^VVU k!"YU?Do#uƊ=ob.7n D}[ =w}D,L\ ߯ĭFH;kMkf`O37~>VCZWrrwɅDNǏvue{'aR_EXulTg`͕Y/6pM]}1tVu_=vqsj6v%pҗ~~]vdprEXpv^õy,(pŃ^_U$6dV$0gwݲ_6K}8tpurA{pZo^WqbsiyW~RhaF~~Ub_d}!ztTi vV`Fqraa`&A`gs'o^2|68hioQuL$?XQ7RNj(LmhxT!,I5@3T9D& gIQ(&XAJ45&.3xRU:/:/<*7$+ 8 J9I 0 3 _ENŬ]CJE185ٷ.kOWO59WUfEHeZA iYV=G@/8ٸH"Ҳ>mLMfGLׄTiKTsIT7>ӪcGQO8Era ȞW~TUޖ\UͩE3>; g|mMRYUεfȖwtMQwU]qPUV?ObX|eډgmXotZeAw`yQMebٺ꼣Y[̒jR>JkBsc]SKC'$SyEX]bDH]>BNYJrʈ\)Lزm:`bbOLDrʱ֧Bkf>ޭ_ݑoI5L5R4pfӘrxӓfn{Wה?&}MMM4#(ḠxxxR?gggǥ[[[4?0YXJ7CDSRńj tU h*\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ɳϟ@ J̔H*]ʴӧPJJիXjʵׯ`ÊKٳ;޸/mm/eܧE˷߿ LÃm3¸1coS:_z]N h_ʣKNcoq1/;ee_ϾJo7?ѹrv Ly f? isAF(ᄬUS`af SI؈$[R<-R6?#H\XX@ݸ@ Xdc$D"YfYR{bJQ iQ3}œ:1K1?;H?p™R98)?)@v&@3ț`ϙfB!fiR#tinYdz*y:@ꬴj뭸뮼민)k h)0:@/֘ nsBmТ!mcH r–ʊ pX(!«;v)@3l'´25@+Hi(qJźƙ0N?}PSctԚ#:YW;2PG]TWM5dFdէr8[W]Tmhlp-wlu9|29q9,|5:2].3͊^MČ?>:[IuElTK2ljO1*u Oc^uK>.na#V|N +#@&-œsMiq'53Hه@s@1]Jh#/18ԝ>+uך G>9I*tlϻf&O[21Ivz`n HB}Q ޔrE-|@ 8 )Of?3(b(>iCWAQM싇D:)?Ӡ@ "2|BS>FLLR '.``2tǤE3p!^F%?KV!a4!EJQ$&E^偓$<ɥ;t(RHE*RLTt,8IҖ,,wy&2YSЄX%SH˥8D4IDsTnz 8IrL:v~ @JЂMBPC8D'JъZͨF7юz HGJҒ(MJWҖ,զLgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժZX*4M^VVu_*ֶM?ʗ~5%g]zL_7:,d ZHe٧h`)ͬh-{٪|@jSZ6lP]ͪV QH@p"7)Ht1VWͮuB[dTAmaf+,g٭WWmFW*3߮^o~jb)Rٍv.)Hb)`nJD,┼)-R"?d,.i+IX B2`k{[@c3k)bx@[8xVeJ)0T<϶;2,x)tHbKb XeJg0hXjqTt?qtJly_U2a -_'c`Ž+˜1#s+eF̽ ݲMf8ÙD倞<;V l"i;*Xqk+ہQtJmFNAdPzL2oMn};]+ جNuXk̺+ u k)q|-f@nf+M{[d*'vX %VF?Z~R;d!LArϫq])fJ;5W1,GlJ64Bu)^ȕ{UjmJ>׶tu `) xS>w4+eG~a|'yV`h }{qޘ Z?BsC>giWfat_q (uNzS'eV[Fvw|ru|b'v p Vb'8|]]euRQf\]Vaїz5]}nWFzNַw۷lgZh~bur'h?hG;cl|7mg7d7aX"HHA[HdF[v)zW6qFuzj7fƁJAtklukVgb`[`vIvvq]E]qbqiWTwb}9'ׄGxX~mHmWr'g0's/YGrLHxyUXsyCvQUXIo__zT7_1u l{Xq{qhk6 u`aQ1f]g&Wn<}nH18X=gPw'hPbRXhɨHSSZ}KsHhXVq~pj|)1RVzVF [_{8(eId)Wbk)k`ety{Tv7Hf|i_1gFg"swn*iW)ْ=fXxx%Z.meJaTQR19}{vEi)ۈHoAGKmHwOvu&i{.؏ '6kkٖm)c9WVbǖh|q|kWȇa5GF~ XiG|yhCG(2 i~&Xx0YO4b h8(dfix ЃHJ]to8w|hVTףHƂ jyEhu_GȖaEw`^tI[gf9zf lxY})Y!Ia7b8mxZ&ɠIex sydX~6cIacEhաUzCg+si pZOYnhna_zx>=JJY\dڹv N{j9椷 V qbjAzu4(ٗ|W8tw?'x>zZڙPYZx5:Hqh:ǨOFh1ZtHEn!ꦧtv/ Wqlmh2 }|9}S \Aj-_J{hw ualŖǺ!(|^)zvX7t)n䨭]z٧szn˧:yꠣ sY1먄 bx@8mylکhyVIX7zXvT7\KťgipI HZFsŖF{ QڝN\kmyVa&LJ E&ö彥{vnn~F&my˷ ٸ:+<5Kv뙥ksLaGnY 嘲o}XzFu:9\['3lH*J!F;O:̴yΊʺP\{xy 2K5i/ :h0\媮Ňxy ʯg*{kYHR1HJJ 53Y9u@G G捚bLlSla=|x*`kvÕeQIqO:/ Q*L۬ FHpX{nf:au誧$ 䛶`śZ)g cƤU[+| ˚~,ύZ,TӆY{bit;"Yɣl U6]]`&Xֲ)[T|\ť`j\)a֙Pq0‹b00rE><{ˬeCPۺ~iۋٔjC۠xqLtLl|;̨ kshY+&l%^\a=EGɣқ(}uZ,ͣj|S۳7=5[G/p牼Lq;:B-: C-A˳۬Ma Ӭilʡ a͇ٓqZM松b vnZK{ש9݆r]\}  cK+۽ݻ_=*a˺.`<\5 íM>kA۷-Gwu=jغ'{բ9Lkfun

cK~S=eey%e+d{.|J[ͦ~zi~"~!~v ʚ;Ma۹>-.~AD9<M?Z(oJ!}[>]^>i)q<ngܠЮذ@J={LfݎhsNbY*W5ޙ֙{nB"-]3AJ=\), u •Pb7OÌHm?ܿm>O &\%;M0=\,n8c0CB`7 |`/=eZT*,XR`*UWS ,oߨ~C"VlA*"6\u.›W^w.= VeU(+Y u*ըTM"ݔ'ЈYj[|}t]f' ^ɱCI.8yw txR %/y"…d+ nv[_6>Lqh3**A-$ZԊB$S>/=laQN\¬XL 2%41)dIRJ4RmɦZz'( &=- a#cH";4Ϯs:瞫.IB1#$! "J BĢJ / V0W+Q a Q kFB²tQ S0Z˱uj3! 1T5sMbz5tMӗ4e$28c1^,_RL^84x`s:SN:S!'<e<2іS%u\yʂ4N˥hJ~hfkq*VIJ+2KVjծdMjkbtKEׯd1+,BOo?44[ wq9`qԤdwIM+ 66:נBA=9ج+ n.Lh 8PJsWE%?.w# Z7Ht><͒>`S8UTY}+V`UǺn!)9]\ _a0K X2mB*`̒7 , xG!RA0[>/_ \RL(gr:J%cG _!pT.+XA fN:aâR]l^lHB;NtD4bq1L2)0iq4cY0=Lz@#T3‰PҼ=o{܊G}_[bM1L?|-D Ȗmɺ1q آUnEdp|@RT%TKR@ZH9vuSXq(/ PQEαN4-4lbCLG vy;I'v #twUQcFJ"'%+^p̢Z 51Ӧ:CS( DuR‰+CԩMZE|c%\2,dDYօC"*J\{Ad)ZȖkPeAUm*X;ҨAG*4LV)έwl3 )H5=-Zh8$R6䫌3HN[.ڙvń<{b.0*Y uйѴkz~qKJ>c Fϙ> PT~C%1I2i&{:]~2C JvMc*SKR% r{J1MU[(A.`ц=Zlm[qԼpy=pRxp}pL c3yvMFNGluӜ^) @H1|V 1>i 8` ۇulN-ٶ&=dJQJ6A#JLc֤@_uOKV AmP,0P#sV,7~*@{47YYӵ*Us* iI %m&Wrj4GM #n>jG RWqfN `]N")]O;mQO2ä!4\Оdur[}[4orq{Hw+B.k2ވ,HmT rg850y^?-=}8t|zkbN3x3jRV>@nyGq}T <[lbSEP Q`rbAJ!2΋1s1jspPiž38{]JKrY+1')nfmл.߃b6[lsX.j++b,wGģ7UyHZgFB"%0iǛ ]a+׳ͷr`<#S+? +ߟibgb\!O5+Bl 21?ۈ2E|,8G7'{ck}zeH߹o R8P;{_Z<Lҳ˳^2<AD뤪.4Aֳ a$TA=?B="!Si2NᴂȽ#;2(>_ЗYsعBY>@A Bq,pxG1шP@0f#| M98:[X )=@bJD+C#@Q <>ӻDs{S @=a@ E!W"RT t:_iP{3L3~3ٿ@= T)[4[nc?Cř # X+>#\co(c,DKyØ11)\4 C2:lB8?C#9s+[q4±C)3xۿ_tEG<4HzHb@ E3R=KPX:STO23H*;˴"l=B=4àFYӗnG;Z'X3J*+BX@Q` 1ñG8GG335J}GȊ@5FzsNiHAPܭcFBB; |*ĠȹIIU4KETE@ DN%#3MB8Būb)JԞܿ>}"tlʲ@ T"DcGDD5||%SҗPSYaUϴB$D_"^L@Eև0ZMDyWZiVjHIluUd]Q[5QdWY z5Bhh(\>p ܰS}T%R]]K6?Bm-;\ס  Y0]Kˏ 0 K}ĵ5Ж=Bt@1TUxջY}_YU[-^U+5<֡ mѡWTEN3 ҫZZAbRV Jߛ^5NUf` =G5`l\t=1'˥O͕+Ժ'nh>s(ap,ae5hxEPUPXX[H|W] ^#[e^ֆQ֎,ۂ`MlZa҆_^e9]T}ӈA6hhm*FhEhd A=G(1Pn2EdOd!ǵdidlLul=쀤qnqsWoP-w鈽G~;xm ir|ro`n Y7d/ሗxn5#4Ldc?{Ngv`fXug_7~p`UffSI^ֶ~a~U':ܔ~p^>_ta}H~oEovdG{هg;hTi`#P!D(PUxH"-XI$9Ey;ESK0uKS?EIliΘ;1Y1%1bٱ?i_5>Co}80fo5K7oחveq_Ȋ :vlʘ+μh_Cl|M5k-wna…Ew '7t]Mm}ȵ_kw]Ճ̹!C8[8d˘lpbCnՐ@a$QEEX#UkZMAD@MdL)< S7AY4T[96"W(I(\w5[{e]z VI_ 8a1_3-fK'.BfefZ~'/y*6ۢq(vYDMAvj:Q6]*Qgy zJTye3_ej_ـ)`͐yem9 b=PD-9Q5R=IX3x.='Ҵ0%qOCݸSOSaVU%FQU׆k`] V[ %xiPAd_6udjِ ΀ּ*ϙI ݧboGg*)#irGiղe[kw wS8wwRgvgp[7|&,!2A!4DDONh(T9u3A2ɔDt˹( P@.oMOSQSIAe﨩. O g'@e6Yh3F5U6)&| :S=>)A@YD/fbZ,jp$H4mА$NK%M'[-AI&"b4:0^BF$+vj-I^t2R)xBKÒxy#JHёc)㌙;-nqbA gb~'dQ9{(@.hJSƱ&aÅ.j$vɮ<3gfG+_eۘNY ܳYNBe 3z1L⍐*Tŋ CAzD5psu6PD""9uMEHOD^8BݾG uaH90 3[$;5Ƈ"P^RFP%-3mٝHzғ|bk$,yʙvǔ#D'EIPJqOAEJ&4uZyH/ij|RNYUQ^c/úHԙɴDH%mLH9n%uȃm cuIu5E0Q^/vk 1q1"D</#gڈpa=`%@ E2+d#ȕ² J5dj`\M `;jNj?"]pNڕmXF*5\!k6 gcp&_֭eH>ՙ#1k7ƴ*T脰,)&Aa@֛C]8[2rPϦs&ϸ1^T,sn܉Dyd] .|ojmOHmgoDjar8uI+pq8_  y5 3)N/t%L6Y?/Krm;8DohvI'Ki$-gz;-IrO7STY&k ;yY7*A ot:A,i|"\ f;T eÄU5AZKF*VK)Ð5`oC?!}_,GHW<ԽW9gHT\GfCMDRNە &l|9tݜY޽Mڥrsi#bҟvKn7`Q_\e2ey.R(g|ΧhHD.ԝTvg*~hv%e꨺ h%NɁ[]gށ*2V({\dVf)A臊h$6v㊮`'0g#rL9fcQ; =ļPMć̉K"4żX:AA[fn閾!E!9'|Dan^C'a)lrbk#b^$ &afK>#Pi2(A|g}*O \2*:%T'}Ɔl^+*bUv'Av©C.ȁ*Ԗ%Y'A:m֪bX͔Ɲ~.⫖?}r~H\j},gzlJ˺dF$sbE0.ľF9N\kJiAn@)=&c}&c1̫X霔+h ,hA($BZŒc:&rBrrZ,s.s .d57DB^n/2*ڭE9-ۮ-~J>-N-W?@f?ܩ?`m /A4m^0*Z6&YGb/V~.(Am,l'-0­\(&SJD ϲΤD찉&i6Dr^2X(pN5Tnv#"aA*^=Y>a>mV.h!P$:BQdi!E1N,5D)#0o66s&6v& n~h%"+lpj-ުl.꥾2B-Kp&0'' ,0"jhn-.ۮHg *|,ҧ, &kCi:>"?3S\>.OD愶愿F.f0U͵iX8<V˭ D8E\_fq.vq\!ˡ&o*^CZ#cH0.621<3i;{RN:C7DįutE8ݵ+:+AD-obZ2-r}T0w%2+D4-ED4m5wZ3W5ڶjWR'5RK6í.ݚ2ψ:g6(&;3.O7K0N/.4>coZ5InA&4^몬F0k[nk)Tq:JC,!^~La#|v)'w=+/6$žy[#_;g'wf0)NDd@uST/wB0*tX]ڵ `0Kwo[wwxwȁ-ǝ*767B%òrCed.xJ97SF)bn.+67z+oh/rj7"7=lvsKcrwTfqUB=(HD#)EĜj76l[D5:3A#,+?hhsNr2eir7;e y}D^*G+[/bB7&`-.ӺWR8\[Ԋ3w 5K%5j+KC8}@9@7݂c8~(y96)s$dHHdPS/;3(vHh9l`*DHo67Ia}n.nL񡬋9MD jq5‚S+:6:LLj3P:'h"K4O$s$;Ñ))лDD 9֓‘{ck֫H亮KB0#?80[{SH\x 3Ԉ[#m z@0oҊ~- ;ۭ.聐o3{k؏H/97A&(=G;*sBKDEH?uTqۮHT&hC)DaQMSĈ9@dHDk1ar/qx=D?'d'?@6NML_$R!fr)Rrq?Iz(!>TeK*uI0A?~ILjbPD ى%Μ8'P9W JU+A}9 dђBsrb 1oM>ce.„m.ǎ H"->$aʆ)3-̤9!U5פ*U&9 $ɵjd-ೖYɵ9OÞCsu©Tou Vexy;T7^]tt8!SC! ByFhD8Ic"C"y-<蠃X&!68 `TqHh"N4L$.S#NbI/"|c/'%aJ0#-m(j% ,:kM%ጳ9j; IfɝPD' i$]xь *2J M.&Fͱ hK5^MD^eITi P%VuOa?'p%h;E[IuM[ LoNYdG9θk4 Y0A0W, ސ"~CQ T#OEFl؀x!; "2ʈ$(ӕHȕT^{A!)-“L /)!:s7n)1"j橅J~"LDyYI3%䏱,F5VoVU\[\79ݝ7]qnSn9EVp宻nփ-zn1>qc͍"'x%7ABvcUf"s` Fxa%UG~L`CF(bC#6cJ{\Q^{f z&6&hg6SҢ4M[ZW܄5A-jqRL5$ݩ(~jYV V2a^!3 dRTjSsa,ՑDBLHiM]%V ]⫖vRLܹҜgØvhA$]x<Q$|,9"D7'q& ? DBI>$$s+N8et%j&LsJ̙ΐاA+(8ĚD_B']с6ŤBd*TdYX LڧSa,+ۓ/UJ:RaUKʪV%4ZJW]Ou.5΋ϑ,өA9dK<آwFtqLCS$8aMQ~A#U:V$Bň QT dpA J"fU#Ej@ZO^4 W> L:/S˄&9ﺗ؀<(,ʂб%Hcl/diaʐ Y]KYU^vl#. е=+s<qHT2b@d$\NYIjADSIeq83rfu uYz#.[H)Z-i:\G=p-1`ڑN3DQ+KrX7=c##]ApeX]Ҟj,b%Po.[KȾ8sE:y"q Dfd5LZJ촮 y%8A4/4I\3cWhPy1;N^Ă {=Q泦3ZmxH&y^oaUDd +1W* \]T&p< S/AF:-<%5^uEGU\4]moCH itEzh `+X,6gguΠaoňJ?|rbx06=Q% "k[УS[V9l94p^k]:WW"-Bĩ2,Dqa6i/p*h ~϶Fuɵtܠpiz)Hި/ Ig =Ő%>itO%$ nᎌ$ - M"!0 .ld' BLΠ)ׄF2ᢒ%γ~JJNu,Qq,uNN^#\ -iDk,+AY@tn/9M;;:qZb -vWC& oO%Gm8,O!~/m\k6O1( ҆Z!ӆ!WB" 0"Bg9"s,B\b$Yp%%o`&a`P^;aa=!֓Yr'$WR*uOs<<!"@sU USVaUiVU3= bUWWWp@;}R˂!0lds~ȏT%LÊxL"-2 M]%O4:R =Hk>`*E:s,%H'SeIVxlalC149 Uq6 LLϊ!'Zc8GlT"!MYw "2Oevf/sg,tv*Wb?Q5 :l%t@X6>_N؁ j0ň;.{;rբv1Vj0֡829,H/qJKs+oarI9cwBw_"dUZzץ8L}3N y%pp :KXP}%9<֩1XO;tɮ;jwuL~ˀ'[5BWa{׵tx=Zw]%!G%. үr[@%ԙ;9 0pAD1EAr4&xŌ{4/[={C")wwέ:mD ,yBأ;:K|9 EzB 9B7 'OYbwGXY5ARQ=@nO5Xc<;Usӓ΅Ͽ<%zQ~}(t3!f_rewz9ֶ㧲7L/'v`HnC@<%-ڎ.eYܕꚘ^WmEL.գ,\+[ǝ=[<3|wZD$cǃњ }%y9ʅ_љVswgup|usZI(չn<@RS<{f|?Y%jvMb|MeMk[)y;}Ϫ]Qu~% rG܌:w"rX%|YYFUhX9V!9=&Yq6 Vp6wEgWMcm{$۩\܃k+YduSzW~88SGy`VVu/b9>M"X%N?o~y5[=Uo-Q+.@pjoO9%U~[Bd߻cix9-VBǽ-<[yPpoQ=MBD%mҒDד+ 0 uWmQΤ;gW욳lXb!"F/!Ah mŪ8!bῙl*wb;*8CgT]Yǫc!r굍Xy$ńƍ1a:[$MteLEX$ [/Iq'9~l0v) V?ˆرE  ˅K 惗KIuxb˖#yqKV,&ѩkܱ͐wtŵGb1^>bP?̉'qIa@(4# ! 2EZtA\3n 3G8~x0sG8ÄЉwO$N2b\ TqLHir<^KMr"tP4ӖAPBT/'V>IJӑuXm PL)`Ƅ\x!N"?f:'lb12B]D7IZ L 1U3(pu~"FNQ]eU,>fUص1e&I,HFG(B~%p ORͤ3߆ۗ" .sPT.zl#,fi2^j-Zkoy3BF*Z79u.^4udܳ_|_Wk{Rto^WRFlkvK}ID $A\2)hA#C[i9טYh"Bц{HhLFhFCgbѕ8&[HM.vy䬤:JehUيaˁ.sR%G9VpX? xPsũc [$iB)IyٕьI! Ke F߾hGM)L)\I{p1ʪ۝y;w㰺7wQ?aHP!붜U: $c39`^ l6Sc/XĂA`T~MtCYP<?7rpE\vtz m7y7tttm :4`!AAt7/|Y ~IW EhhOhl0wlΚ@ ADkl 6Ps'IױAё'Y h6NȒH ]ȅr!.2+S!t e j.22& i@[5 D\6RE%]/*p!ub^^p ^0_sF.q5EDLRg[qVj:BVHvI|wI|ē|Kbʘg*ggʊWfoVk} sZw:szQѶ~ʙ}G 8k !It:7 s:ЪqԪR  0du-^ T$jh& v kMih9KyWP>0& Ю:w1i3w2`!N23tP;O83{ UhNBޤ#*&iLSu곲>|1r]D*E_tazg_HmTxTډWեxnI|KW|}f9}h0`ۗI9Ե|) &&  10 jp;qA< 0kkP] r6'IJazDI  w)W@v;h 5ɪ لPA+@ 6xO!D]"=##1|0"6 !@h#N/)^w^YQTlѓLa 'gD{%,FHOHEGnd9㠴ŇƷX_ xUoF9pJ=` !U|y&`9b&CwkǑn|;}$@v,Ω~pFљljQ-H|p27X7WB%Xp ATMɴ;;{ɸi.qʪ&gu9 GS\ǵ284!%A(< tq!/C3qqx2y!! $p >Kò$R[c<ϣwT*8{%)Od)T=S(=3|Yx|7GoHĕ NLdzKo:$PO|$^}Q @l:-0 Br;c@prc eh"nFdVođ-[+*'7u W ׆V9FCs}ɗ\M`}}kf )iiP!ɑV(qYiPd]8NP{à33:C#d30R͢]#trͧ@ \p?!k=ǰD^0 86]*ZCrF_*&{I;u(^뙣8XHnvJ9.GWeoGA1U+dJԒ~6u?Yϸd3I<' $3M#';M Q:$ϕF(Ey͖-}CJr*RJ$ T?$T/ҐxeL`H JXN|?p1$PFX-c,­!6q$z?:gCKK8\Hfu*%YJTgY`QHEDFHe$$hZI2İHv%X R%Z]䲡ˆYIYO%$! G5G Qt$Z?FY5t*j)r;?B epH$A]$&@Lbn `$E/&asSCNmN)lCAҷ(838C3\N5H ؅d,iJE@d%0K 5Nk L8#IA 4Sm3q[ MP{D:'RRO5A@j}D BB ŭ4ፖb^F'RBrt3LD._4h#w,¹~MTFجmT 3$!`_FYH>Z="փ:ԌkFĦ6VEIL(걄B"M)zVEkOֲ8T 9'IdNH -Ha=đOPLIKZ] #Hj`RfNIX9S*ς[ʦʒ! GEQ}q?֙VDP>JNz LVB}w%R\wx}PI8DCSYd#(j]YTm/ ʝzpU֦vM8.53*Y옉XPM7 FZEC#NKz(-DC(V⦕9|&G '|_671D7AA}Į*kO$f~ӊ"aBfʨ[@<%n}5 -e7$ev49GYR<('oS'1+IPjd@ئzئll:#&j- s0<҂#Ã2P.*Z'9'|..-)@7B-\1,žY:ә$-ѐ2H(BK-(,-; 12hjZ psH&K0Qrꌉ-N i,>**<;`+RcE ZLq ;4Ð1H#D;7,*k>p$^غP"KS d D )%@8cR9\T-Y). 9i8an%C䆚LB?`9b0߫Zk:A-±2$9RKW#AkcAe3AA;rK*¾ۿU!ڢ-u*%INFRLPf5NFтkP3a+ R͛ R㼮8αs 8N!=!+ lo3"\Hlh5De-PDɅNiXOh;2*2ؘAi&-QAP\V)C.SQ#gj6AD1QA@:qW?2ĕX@A |N(]o Q$Vu0‰7?[;=KY,Z$8NZ "S&BFŪ* xQ;ضy%NHԱVϐJQ09)BmAzNHg}գ6,B|BZo:8+ěvr'MO֍Q=1+ػ!!4Oc+\EHhp9ίxS=NN7 }Eۜ%2B{Ӛ`rڽbJR0 /PQŎ ,x7MC6d5PKKdHDxSzтh0?Iמ1=0DߪY2BCFe\ D1ߒLMV]Lj. aGedm8ё8fS?{``hIaݛo &=M(i~ƻF2c]Ql4P$"FlYTŰp w87i#4`;`ⴑG؆*5ك >st֛4)"<:񞦬+j#0¢S j۽{=k.'^ @XAzZ%oa͂'ZjUzI#T.jmڨ&,M @s\0.s@)HZ7D_6t,J&0 IlItACQ'uK2(N&(P6 Ku-Yiu3C][2sۢ-yLZ0IXS+A/V1%ё?5ϑ&Js.k) \C-BT$om&+T45c1"<.Rۡ pqp %sN1T)۶ Ss~"mkjmtuhBS6СB 6zȍ9DʿQ jѣxhs9O+=U#6- b?QH4[e,_^w˗, yO { ]j-S#cx:$)%qa0G~` i]a]Yq%q~͝ 0.:m2?:ԖK(hG't"#yBR$h6hۑz"Z(1"4f& ږk kL2I0ܙL A'Q[+S1Yif]}?ɼH ;yd'do1}9P'c+.[E@?dbQɫRB(&r<`mN3Y`S-'lSSI- E0q]<%-ZĄPLDJ)a69h?6?h1VxkVhK.%6 ^=15W[zQC82cq4gbZ)aN4afk^[\ ɰL2!G85(@G]xl[0'sA\Uz5w57q,_s?]r!I~陗~Wb]Hj(p,{'! 4yπp0 y/^#Y8z8x: fXkJʑi\%j2ꑋh˷Rە\R8%G?͓'BEϞXB4>-$ gu ŧ!EUXQ-آOC  /yzCjeWBŋZU4,YЅ7en! HJML4%BHÊxwd' HeH76? r/$D`840 ,-h U*!$aG$ N,B$b[<X$!Ȕp3T(Ri@dB PM9 gO-BhIԅ45]OBD @rƙ B (얐B|`#\賹m`02=/q A:QgO?P==HowZ꒚dE?|?w*)/QCk'.v3 8Y.bH .Pv~)z7)`/ސB#X ?'00upQъ'x?ThpJil8"|qmZ x\4R dIxHiبM *! 9'SGt +XQHLVĈC9m i Ƹ‚7I◦RUۘf;7CIYm7eA"cv,\.dKlc OH$=ZӳajتNgMB 7MGhBp' e" Upt^* (%ܐd"}n~9$sKO t^}ݠygшVAPJiWk]uw+.-GH"L k~b'XB.vyejul Rr@qMX5%z# ]tz`ׯlasjEɏR{|V8Ꭾ6$F1HErzz̒ćO'@:p`B2-\*V(lFwKIVYQc c^ELY KD@ vDLBЂ}{tnFvǩyi |ȵXٜC4 DϹV?\@!U% ABD-!M3VSr~N~i!\8dA  QTk ש],J\>IAE Edh1^VdpUPFT "%ib\FZ\ܢO.RFZ._ÌLNr)//􁃠M#5.PD#TF|ODOTIOQ /#qN64Ǩ.1LjnA2 ^@ZltmXxtq2HE^blEGxW{ )vW ~-^ zBfLwtyiMt(G!\Y!0U]]TdaBxe%%$P12!M Sj%%eWhh$9JmtitIm OxQdBsARmBDj4!abA KJKf8 U \`Y S8`LLQ^5*4b(Fd,FRNPZp3^^r(qbB(QD2d * )J&*H*mC RʔEF/DLL'%`GB VpLB8P=HrXrg R~vKHTۨH z\7Ɇ{ bbK4ʤnƯ PNtA|Y[|fMjM{ewϸIC̓Vƒy}P (@%%%0% D @!?WZX2@?0R6!A\:e)M!U"j ^j͎̐"qDl6ᙛMCl⯌ɮJ!agVެ¢bbfNFZlgNtDMwfepD H\_PB]l+BpVgB\?\C[\3`#3\qcBqfgHdf PMШ|`xxp$  ӤA1MBӁӐNTN==R d)SrHyGs(.] zAWLV hj0'H!DlxNHּLAfdQfJ.Lf U%>lCidhHvljAd(4q8 (?@A @^%y%n)Ba-]WNXA-BJ䊀%uDDHJ1(!qHZ[Ad&#} %D^1RsňY*l!)flRqfDDIBM4w$kn ЧK&,FB&dLK#]/rE\ *t2'+B\b$'PMp)xNl?li$ L #(aŒLlB\ł"Gq@(15MMÆ9))J7i,uQoLDEmXNN0HjQ{P-;ɒj}%FEZ"mZmFخhVzȀ}<ʀBC %Z)ޖ\ze![PA-@&*VH.%[fML"DHB#=Ɉ2 ꆨ{Bhdm.gt-gemIeа{n.1w -k8@^IHJZDofMDmeڊ=JFZ/ʘ-gror&\"gr~կt2b)FEQpEl}LXxB lpP C- pRVl1]1DcA(ŞihXòX 5HA(yNƆ٤YH-q FǓvqAٜ^$̮ME ͘1{4-{ @̥-A)a".P!?i"GB$#gDMIH@T`hX`R+|T_xF2"}"VT⟐wTHMa̡ܶMF6Jh-}mW3 ua`D8D  :jR̯;Ĺm]P/^XE'B$QlmDA(`)<ZIlyA/U5=tcAܴpߠSܠ6d,yRCG G,BDM!9%(AP#lLPqCx'ĸ]$pYKu,&39 `ʘo& (/A /?@EcCPT8C^ף!~ZN),G/ "[Og˖@o&s$ج`zfv<_(Ȩ)J- ba!B̪*! Dl;q,R ق@e#J  :BQ-ԣH-(rUqJNL'L Ӕ.t|N>qO|.sNР3N?BeYFi.RT 1! $+I"լMQГ!IJ""A| <20@B)$|@z rhK XJ87Ֆh8 dz&.*$H5T:DԪԇ\D3 USQŷ*% (a M5VT 2S1.@xMF1 :*<#6mc:.1ۢ;A  I&p'{H:ez\Q&0Ē"00|+[ U-d c0dni=oY Bѱ.ltE TH+1O, +\'|(֛uGdodvG67KNItXOA$Jl.CDibHkNT ۮrUƒ$ "AO՗YU"cAJZR`}XnD*X  m,(( J EP Ցr+#-iaG z$n@x^& KXnrD`GX"@ .<!.'M5*`jTƅ7iGV.x \qZ!=$rBfqlIH[*&LqC(&G+rVcI RHQ<P /葎HHI1 =bHJrRDD=I F! Slvid/vҩ+gF7o~Xq S $\URṭjVij8*UP Ox@'Xͭ|*a ́s-] V0=̖YSx$ɊVE+L-=KC6^JCL [bL須cB'[]_"HE)4%NIl[GRCW[?CIrejs2&qJ4RJAVoD)O5yBr9+ Q,ODv㏽=}ohv9 ;~[=u' I*NN?|Bd5@G\ (8Cz6OFZCrUf5*=D*CLD!Xq'3e3!Vs<i;v[57Q[ '`-ݚƋ"3 QԲr58IaH+D %ޝT*b85DBO@!atn5E/м l(!zj2',ReLO# iJ !Cd&UK-M,,+ЊЬrEWD#$h^>m+b8B@ !͊隶 |&i &h£h#8`8$I,HL8Z8:9r9(g!:!s|ⲰְajDG^hrx%A+ $詆Êf RI`8 fa> | v #!,l`9o 7&B N& j a$hخ\"%~B(t)4)"bA1"+Ž@C/E !ƴ(cRd66oƤb+]&,D߈V66 "'mʌ  H 2/Lbe"h1!h`Q ф!X(A[&ʪ^P")BP(b+īn!H#8(i!nN'IjH*9n =.;0V;'h2gh, -rs*~ N$~I)ν!tY%+.&!V)Qh !EQV`>/ !wٍ,PBj ̬4[R@!%;s$Gma(#1'ggOC"f a* 1k32i9:hh&<EҨsjk$bSWn›E^b%RY Ye.".BTB>J-R)icC1|R鐈cMd֣ԣiR,q&ѧB$$MX N F%Pa"#H H€*wl ݄3YUH[]*'1k'Wq(D>=ND>6Z~W4YZbLC7Uf,φ $P# WJW+ڂ4BC|`1LÚLo\eet鍆@b+Vr`l8 ,5wZj LLJRbfժ Lv03ldg+@]vZjg%V&neZ8t+dheP鋾蚆{thmvM2}Iikp,j~V_Oo2I +h*Ӏw/S"go$ @!gm$%pWb)[bIY \VT#ތ(d a(ucdi! jv8BG0 0^41 *݊r7--(SnV<zC9{KS(xJD. șzj2e8V@8@^D[V!F5^'XJ @%7!?woQ+Ȓ"" B8d`d2:,&'I1ofgn$8!LTVҦවܮr^&9+ʂ*%N@B], חbGshEߪ{ٸ_FFȉ>vݣsCtb: C *oluW/k8W*Te tVƂ\O[%$0J$Uh7fՉ/ˎyr J*SHS(h;4lxVDecs67QeEo~c85VeE XbUφ&ʭ4rF{9[4e{9mpX|mXPE(,q~eƯB0~N^:tȓiȋTYF'bjT iq"mTje*t'B-ҺގU@ yiqd*Zwh@e~`:5T9W;-{&_@*&b.cx;FIfVhuȶ]&߾tDjBs;Ćzʇ.{{MoNZ*ת}5؅Ic؊? ⭃B([Uڡze5)!|ob#od56!]ݤqm>c[81+HT;VHnm[pc~&m0%,ݮ)~boNe"nIڬ8b~#6n~'xb@o"{^(&Y@&&` 7@@WZ#rX%X.WJ#4},ЇG*d \%Pb,@勉.b0<.hG6Y%N>rEIˎ])-@Gkb Z\"b#EӼQ/i(U)7=.Xcaxs=zYTX `3 $|4Q2q?}|0?Oe.c}_*b2m_ D1Xh#> (D%K UYjGQbEP ˑXB_%Xʊ,PK͚;³'`]_F(G )P4 G0Teb"K*a׉T’%tۆ=/22x_BiB b< K/< #IRBaBF_2d$rCэ*]TKtrǤ ['-6'IxfL![ iq(Ȇ\2lWqU*dhE/x3y>Fez(ĒJVc%^~AE\g~yAf^C;^fa9"砃;c⡈ ԃ(9؃ZD`Z@FZz2jꭷgeFSIUVI5%̈́P9iVO(Wq₠孨Dp+P%YY""H FVQ"VCft*,^ш:J:2-"1YXt4zP9uA 6}e[p`LhBF84Y֙4 !d 5YcO:2M&< Bش/TfAo\+P"DXlTC'6Cw8Ҕy 6A{(7jH"J3X @T9 L~ ĩw4"jQ߅i^:R9B9 E wEYoHE:ᐔ졈|XSxGLUBJ}]R0R#¡G( Jr̄"B)P*Zѝx' CgAC P+Mp!|LWk9NsjP^) Ck‚d5e,k@! FUO$n+K@^IHvAo})D4,AJDR`GzQzHSBY(ER KASƭҥLE&>%J*SFVýR!jᬂ2 C D m)* fdabV]I-tȳKӑ\r,!BV2@ѠsF32VA4 lpzb)PMz(ZrPzXvHuVݏđM?) !]8ّŞliɊ0{2`S%Ebk(<ĥG'koE{™+7u3%d Po{ﻺ&" XP|JEU]g6'qo\^p6wD(M8/QAX-(]Q,_E+Y(`$JE$[BGNrr@JaȀ4d%4B%yJITPC@'9Ȼaè@J<,g9wVdn&)-BD'#+~tE:l[| ?P'6 a e4ӡN,д0 :z@}IOH^ZG?2Y"G=+2f_Nmlc3mRC cXА|kn<-"ƃ4qSBy~vHI]`b%9~S^tLu^Ӵoрe;Eppa";NlBM4)WQmIRo4"Ob'wKF|MO$FrT$5w$R1BA1A-Bt7R?AQ91+c>u-[Hdj>UGd2tXU(!/$t B]6pr4@4R 8@4E+C36{z03,31w&|\_P1tU.QWAX2s63?#{j Mz3jjHzK#sD116a6,U 7Kd?i|)ZwEzeYF3gFU2`k,ip7}",bc~߄x:$8LdB&'~?0'g' 8G6u"`':#W)Ug_EMeGׁ:񒨤'w2$B51)$K#`bK; :CYo?9$QcdRssGSEA [w.XX55@N`(c+NflV2I&ohu[P+"K|8a.bB`wK.Gu3z0{ZP3j3ex9#x]`lQYfWa.2tX9ECZ ǙX暦jpzwKS1X1aZFY%Dq|`7t(hsWqfx0gHQ CX!j0)LLV:Z%c::#% N;1"] :L^V: %&Zp# y :pd; 7%ywM&L^&Mc9VdDvuk8\R=gbHc Ty=tP0_gF_`1}.S8Bz/MJA>[pZW| wwљKeYѾܚ Xq4ʋz7̢JX hD47穤sfgk,R"WtDk IwŚjFƼ{Y}.fHyue-pU'lZl&a&'Mz8PqaP ``L@VQئ4 VˣKk43@ܬ5X'̿( kGˉ,Zt}g0~Y /MU266gKgxjG4EْWa# gIT"DrM)^x:^ɳ8kVQG lّFyڸ5g7|hZ!K㼚j|>R`K@˷j}^$}7̾tHɊ۽*xqEkgZ\DѮ GYV1s[hIv9P:4oPIK0~^E")Q BP¤A  =QD 2TZ&3cFb D W؄& .ǿB#(0?~U :U}ziSZODıai f=BF_ƿ4hXϊ 9rXFYX͗ QjfS(jZʑ#` VYGf~], "(-Hi=eq*LHHNÒ,Y [ixɒP@' /d5!:8<C2JXjȠ6 h('L}BTE` ^}VBBHvp!̪**P R^ÎV&h&pU.t#rʨxr't`+Jʩ D8,C܊ k"  TG版(c0~H:ˣ.fI ~cퟠk6 ~^z6rR=nF</.C=iBIH2P/^ :oB$" GY]BG(nwiș*Q-Pu@z|:!IBsޱ6 i]x@1Π^#8z<5 z'>Nd? R;Be %r?($1pȤ 2کN%T*VUx!Ps E bbm HY't\0d@@ Z,Lp'JA@8ܵ^]0NW`$,VaeI RWEz^FdmR@1i詚,3,%56gjX!b7%"J~2"p}6 9Yh}SʬF41#naEnۄ3!< 8(8ߜL> 퇠<Itr5vOΚAA)YNHN Գa^HH&/3(0AaCr5cjB(T9uAa8C)(XM|i dU?B.HD!WK1 R x)^Zjb?P"5E)2.'QH 2, r"?T8V5"aЂ39ġ\9<{(t %F P4#)>WD,j1B-jY+VxlҒd/y )ald^d l6^ԬCPfiwc$u{~y ҎP*U"ƕV\(PI[ӊx Rr#"|G?°qzy^7BS!Ww"@SwwP`$cQH+EG[ۓ&'DÉ Af=3Ilx4#HHC Ҹ*4Crg!uavb.\Ml ?ضc1n ɻM2\"qE߹~]:,(ި"r*?0h* }~gJ FXVh ,'YωM|Eb/Iah4i]vݣKHuI51u9)"P/Э@bH "T=&481 ZpIAI? %c&p68Q0AKޫBȂ;[還̲k0t? :E99ɏ?\ y8q;n&,KCDCPChAc#fYm7_=ݒ.q$2ʃfn-;rZe1 Ud0P^R$1"(8V֎_b{5puvגHF}iW=sA舸|q`P| &OhpMPTa8MB&#c@kj7qIppVh?nc9@hꨮP0 ⟍IG@@`00OL }j5S }"qzb (e1R?;)ixQȄQ`ȄLsЂVqp l $q&Qh;=L90LDYLZ7R9yqRk#Jvd eRO1y6s"[ǒ.McQC_[C2nG n >X{>k03[1“)gwܔvYtnw\۬7{ڠ ddyWwo%h~.`jׂ/xoAH ]QkÇD@hEnqXP"G$@iٲ .0}DKvԂZ-矟OVz8L@'.fQKPR3P q #Y$K :A%PY]w ,9 ,$Bْ5AE[J&)HQA[( i:3((`n(Ȕ(A2ҤDE :a} 2u/E2m1 !S8u1}d?]"M8{t!uOvPG^H(Ei?0WH1@ (%? CnPRU0$8YKVBeV@QŗUQ_VZIEjY pRYŔ"XНsYE"0Ec9 $? Ja)vLq@WzQyѕDd@tJIva@ f$'t~ ??Q@CY4x!?K[\U.WrpGU5 ]rY Zj@QkQRce mO }aL֗b%"sɨfX$b2%q\TtGPWdi0WVeBJM Ivo+f_ra" x1CE &LȋIq=w1zEtq~'E8 .XKY|y(Fg5T(cs٘!C2Ln0%NZQE-y:V&6SVPC"^$V}kD̟̋ZJ)bHp2J:饙f:IjTG 8\AX+3*VUB+cId"’T,rpMB@ԑicH5!0 P52pc~.h]PD.)+~Q_FdczQL#eEPm)\A  aLbD,la #CL :τ4D}@)tӄLd d&#QY֬ <,X-A VBԌCv-b1~\%3hV8f=ziN|aou"'J@b.#]x\ijO,={'$Xgnj&'$9QiF"ݴ cr' c*6 9 @H}6ZN^4ZxO(WQbWr z ),A;UB?m,f-K|GPD=;LY8zwAqNjK݉\ U.JUkpڤނ}0+@4]u$qTHj&1om[ɰX vZ͓0E{?A.!az0jq?EkEa|W1IzPC1 ązMz >EL;Av4aTτЭiPtHaυahHMN<4kt tȀUr`a:SjV @ ?`mL1?0M&hF&MGRkgE8Go=KZYEKZL$]yɁh#zlk |$W|V0 ZD%t&C]XLVz19zu {fxNEzǐ;mǎ !HtE.툞.na̱F DMK(7FHB:Յ@f: ٭*lfiiD&A DA*-!3]h9 qΏr¢EuB'QQN Rq1^T)#Aj. ]WUIODE ~ݡrl~a!SD]ȃba@RѾ ##xF.@@H44ɚ',2pr'5A$d`'l'(PV _xFh uG>n1 (MF`,) MstFd4DV8$2yie ݒ=$ `WVZKi!]n܈W[Ǝ~; fl`0!fSx!)7EȀ0SDrEd@x®9Ǻ- ȑ4\@ @ 䮭R"AXbjlRbAЭJA&&fѝ26Vop*q?rv Tuvt/P}J/vV01ZɊgAJ*E0"=()g^A ƥYMV H_DG{DE߅nahaTdm|Ҋ##:'2xR' 2`'e6hMEV ,h$ |VjAv$mW)٨EF z@ƱPqy aY1$ey] C.Ԙ @l@i&%%- > #B^JlΊ2_:okZ/^3BH6]'Y4@gv+^ N3|1*wZo&3eB/ZOVPViWpݝI EHxDjrYLcDe`}l͒@ @Ltl̲'lLk&uqpXE2c1uČlFgH̉$>qNadHbPa AA/ . 1f@@2m߮ז8ĥW !Lrw $Fb6 <CTM@q+<zs}0xj֯?hҪ~[E~J|ZRJq` Ɉ@ޤ@,EmJӨPʴL;B#p#4 Et lox)[ 3!285y8G"%gTF]"ܻw*KaU. 2@4oA זFPTx/\u]u] n ^q/ЭKjIu5CYA @ծ!kz}T!%%g(i8ޥ\Z݀y9l̃ϔ6mȩjX74&y BTЬ%o0P2>7lZ5g5G7f@'`vo?4^?HDOAFިTzgN EدBiiݩA(4BYSpšj|z|:1aa)Š?B`4RJ8xU0/07E77#;+D=@4{/4"xs;_䱯? @zʷ>"תkOmW=O{Ϟ|L%E ɤ@ F?QB! 9KE9r)EԿLR)dDTYR& IJ2J˨3u5 NOѢ|Gο,m*;ZA)t?XAL E0CFAJd$PPЪ+b&3yYp#_B/ _Dw&׉ `R_2#l.1;4F,@L{ `:3HA?8CZkV ʡ#CW.q9Ә>NWtG9P.)RT>} "e6 [f+UUn KOw㞮p3fW+ؚtɚUa݉Uu ;;s4 )Jʝ;E9RLNx;EP+e{ Er{CG9*O {#尓Yip(e?(;9p)BՕ#W md^j@4 =R  Z *XCc))JFzuC4yWQv`_吿j`,C,K+! 2K[j4$HP@Q̮hM _dWlXW*Z΀f i%Zֲmd! efWȘҒۼ !.mNnuK R#,Zr3fZ.p=dcP6LED,utFGZHϻjȜpLXjbI纣^A~ \KLƔ`Mv P PgD;槦v`~}RbJHNP'i9S;6`be-8c+=oEq` ;$- E`)%ek#x "d&3(cv~.*i4B k- eqHQGQbkJ!:#v;"G"kq=f3CC,V|)Uv;Ĕv YPEaNw< HFjFDj氍Dh@斋xLr\6`D!zg/Z |z` Qt'k&:)t&ێO 00B>_31<WT"s]tHOJkF6TDc L <GCdKPƌH 'ͳFT! e o>ɕhIݬFE< bj .:&@%rCE.iMk7nsO=أ=TJ2#3WS!&(aBr e' m@Y" -4o$=8VWU8UŃmmj)>+cMa #D)AV.Ј^5v1tuw{ w6YxA{uܩuxocUE˒Jj(~F~kвhW-(J#~l}J%SE]@Ojl*mY<9V ːJ;|ZL!ҢwZ4Q(xf~Rrgs$Jx\uGۢ ˅z#CjytCkH7(o(bJFs*WՊAWv BbC܆3tO `b"1* *j`!px:J`VHr#w7~/8Mr# d J5bX!"Y(IZIwv KjzDGg ;xg$áu'ijNj7{L#NSނ764r(s`7a'.PE<:jADZR{E_9l}.OvWFg匲cp[l y *DI@ 9z{l,udI;Cw:Y /O—#[l-,)IUbhC:Vp7N7rvI>:yE7`2Io΃j-|cmBeqXʉډF$2 `)ob"<#nNIP hnqMg9~ Jm) .kY66vօ)T ['w dx&qecߧ];/N,7BI@0AM!| |>φlLP8.0lsg]c_4X)(عG*ee',{ tEG{`fteNN#cOD[ŇqOnO|7Ϸt YֵCڌCRhfc!;h -k BՖVK0V;R-t#|kCsC̣1 1Q01T3|c8>N/#hZ7`,Aaf(>(˛66~kIZ\5MD\3*+>PVTuGctd~.#/1a%S xT nPeU  Bd:Dߘ GDY`cz A׻c~M8Ȓ]2ه2ELD Ω}\gx`ĝN4ZM\{,Isf bMyʭD (.V#-s7#7,W "Q7Wd,Rl@"CM 8,QCE €Vd?0ʿOF(rej4a⟉<`,L(%J4h ͛ot+g72_7vڵj6n@ؙkȿq; -9l"-^6dǐ'GujOtacIM1=j>jؒ*UUq柛D۷i7U~.J* ԪkAIB &j]wۢ6_=zV 5Gb5f %=4X]Cd^?x(aW b#F& \{@L@Z-d6Z9VX]evmdm))_m,@,uh'D*VEEXbZ]^?yPA *5GIi?`0 %E0 i`vY]ԚJ ?G,(bj8D{V%ƹai#Z,ն ,Dz6͚T<U?B骆%` 2H&N\p,TXl/yDToXm۟\@\;|G_fƍX.& c+5Ch(wҌzq:X~xIYxP"X `^@\@.ā:Ld.Ƙ2G Ðp0Ċ&\SsC'pGU&F"Uc ^C*Ed!%HDp/*"iCffNW#F9ZGhu\4#RAZ (Ba 6 uDjzL!YD9B@8 0~K> pyް,snS1HLUV̕ʑ4MÜn)MKdؤ$ 0] `r1u)ɃdRuiB΍z'&F*Sj!D \p@qBzhQ5+(Y.Z~і%RHp\@" \d([A0:B )-[e:Hfj( vCsnKZ2 >f[-ڢ9$CXO)T!** r"pRTe'3iq|%]hV KFJL [ XL`-Rq0it$Me#m2T6mU ?Xn%I6 i-i¹&䪵$1b" ajoy {Uu4˂ RP5Nܯ5_5k@lɹi"\ !D18UPK Q0>!GUrd񅮘Y斅 d7|eD[ \Ġc ?n [vZĴE0kZS嶍 p\{wI7V3&f c6(bR9 χ@F!B'y`ܹa dA[ Wљq:_-=MZ  ;-PSm5*);elR^6 >j m96h[z:붪/&*-'J::{ Lfb$*aTO+DT#Aɟ ;L(6CL:e1MJwoIT'YNqS~[?r8{=CP]j&i  ;A?FPjPo5CSUVUh(&6?^nL> g~d^T^5C@6nV\>XV(!dC@`spS2#V@[6%`I^(+<%@-9!r; P (+PQd7bc/(AD58sn.nAdGG#1IS97f?e *spW\FRvewƥ*\itF!h QpXPiy] }D*SxAgouYHazW{KUUQ8w0o2E%CrݕQP@::b>ƍ)Ngb(T$Qd~3|dP[q!ŠdH@.T^W؎jU,&PPʠ0w~,y A)Paf,+ -URKsA5*8c;"DF:/"I[qXvO wOxO Qf3HhC^WRAT1mugxi_]i@gs褁6v1_'sIȘʇj 'Raq3-j.A6ӉSlfyȚa!fl晘z-!ݡ_=8訔Cc&зnBrj:_^h9:W>3p+q%ĩLg~7jYam3qsU6!"6"mӬ՗/ABshPPe?, !骑Pq,eѠ=B&3hJs!=Sߢ/"$z.#$ >g\`(kiWfWa]"&2=) af •qgAXg*SmxVaF0Ip[9-nC!{kq/q/vFh1n$uzJkEzof%Q0ho9TC>\`8O=$؁5^HzK!fWb3q/!\"z6v{6# Ȁcڗ j> yP PH?7c>>*qQ"s2 rs0H.IIcAEqa(Y.nR.b "jQ-?k$p`fǔ`Si&U!SI\xY{I'ҴJ;S2"&k!0ÒgZ1#4'6ZkWv`\Fr1Y*aGO X`&9GR0nY`33rr' ,e_:V⓸p W^zj"2"iTz̊k€q{}D8[5r8 P"h:ʂ>.yG 0 ɐGP,ߕ3J(saXz+8E'½RAދ;IC6#> !tk͍`q( ASxF3^ցhhF%1sI]{ |t—I}PS0"qAGeOy#^>ĵ8[lle*]0P\ʥ+Cq$3n-C)=hwbD^nc憫8Aqytq6XvLI"egJ-Ro@@2X54Y# G ד,Y? +,ʣ`ʽ,'rEe<:JSlQl"cs2v7veH>"ƾ?=7(zCS $ۇUD ST PxG~X088ͽhAWX ШfBj&"r=Lg6Z\v]\W3RvɱXhhZ$q=44CseV8PQV"\azhT Ĭ7|LRGK o!/|4' `[J5f5 @ QjX,>Pp؁ʢr͑j?ݟ'J$0㲯*A1:BeJDd~Ku"iueKoOl71b!CR+ȔWvz[5qW~D{RnB}2gD|a"1O!J)Q(ܞ#/.5oi)lzk3W`6Wzж~;ިg6 r6X;#͸DG9$>>1ap&sM<'ͦ3[QU]~&!RʣMIZ/|qe@Aizq‹qLH~QT"B5J61^* Q]& GT> ʦ\l?`̒,D71Ryx^#-\T;#k{U1+MY>C\P74%wh֡xBv1Qבkﺁú{:׵v@&i;ݎZ [d/aۈq"RُI@#eTdMZ 0ay"5~#sc/#㼥[:-ZSGQ̠nVܓ4EKF.uD !Ukgap p57Q9 zWQoA\<\yCz1U}(= PG/%@]x.B}a~Hwp`0&C@DL%K*OpK3Q fqnd%TĉNJfauBR |ãr)!pTDza*D|E3-lTAQPE $+،77 *?ts7 0ut  ("9x9jظ07؁ @RȌ4!i# *9(۹ IZ`(L%T'D,¸1&T3R3l yZ,=̒, ƻ0P 61r 7,4>t<-Ƌ,AܜnZ]!0 GL|X!LDY5-H:P9DA.HSn)þBvEYcѥ`E񩼢@'(hf!7*d,sDs'J'">-: NH/588+G"Jh0{zqG| 30:Ps1$9!@p 0 Ȋļ<¹1i! Ȏd!,A UPh,C(IaQ*㳠$У);¹cBc <4A:6с<` M5eP[MaREUF`7JiU>[*8(#) (ֈǃV81 coj@@@ح ,mՙVjȓLx՘+P WW3MAc%( Q! '3XE 5XAqb'A_ô-eղO_ɼ1D:د9I9a;)+ eQ{-(͋X LWK܀ V a3LE$UC!;u>EL[](EcbCaEúq؁{MpD'bT[.(\0+@2&\[OU\/i[ N7(8}C9۰ア1փխQ< #]O1VePޠ5ա1QVepzАAIו!2]+c _&,/ *Š߻y , 򩛮A` `O`qK`$ȱҦXP `_IDUY4 4 6`1hh0WR:BD<g<[.hb&#\Efkkc,7_ک7r/.> V`Y?E.UU/5C(ǹA {@zV, 8jX]7@H*}dٍd)3I2]eޝe0 XОڡWU֡M՘x=PMޛS`n 02I 2 l>DiQ–A.<, ᒓ5)Yv=ɦ&2ۮ>D`1Qqꐭ>odڽdq-*je]ur] <D^Hk5^%M5P4*ک8<8ss3<f01r:r'Z4 XK5 MRn˼ =,RL^D SY;Kn-&}gXnnM h%-BYrb[.s&hY@W%n^ >H9rM{krSCb%^\`\(Pb@#F2n5v`8t >˨饶i<? `Bٽq'3T]d뤱I-*1Kr]ʙou՘UV޽^sCpe.e@I7BA1RUH!=<`F_cf(#júD4 <ʫXļ_L~-5QZ;Q+ߪ$`PrY!u3̑[Z'N=?ɒ1urR Z4"f b+׮.8[( ',[b=G׮^ `H >L"Ɖ O1NZKwݬtՋ hЬL` ^m޼|x27PB?,XIc 6K%0yD qϛlhdu8pLϣLYGjp]w`P4_ @łT< B$PBI dH Pr%A3E@?P(C +rD2L2vPtD Lb XPPB xO5@OIE4 !PPAc! Wty?cC\DrDA! 5ahtDШJ&uJSG*Hi4o;))JRTRIUQKA%G#KW]\[]ZhO'W\fqUgs PT֗];nK!֘m|uqgOiW =YlE{+[,fXmְpp)p=\s!"3 E*#x佗,dzq]k3`o%umFa  ~&?fZa6 ! PB"B%%AI/ X@3.@. ̐rd2=M^Y%`th Oh9E?p }e꯿g{ '5JXbb@h AgӨD?RGJZZQԒG⋿jKRioI@9QPihb) y*"|kZ)qL8yX%TF0Aa*s̄f+ 5`qwbd#9q'GCTL!dNV;bvwj@R@i Hz7Sʔ4G<9e! 'ҫU |ENd h z:w>l~+;')SP`ʀ}.K{ g]HcrP\]L^Қ^4&53p"PMd#x,9I "r42l9E@"!,[k1ajH3,mHJU hV-45Ѡjtv"a@CHA# E&%q>X!ApJ,Y"0.hK@ܗ87\#ED+|BqLeżI8Qę7e@w@4EjQ~Z=^%B譨wvS (;r>ag}jP+$C;yԄb~[__p3hGS cC(n$."1t_X[9m\ѡIQ, 6 ?~NG@q .3We\b>(Py\T֘ MQ.c +͂k4%n41HLh_P!D~d$2X"IX@@Д\$ b5 v H+`@Q`F(Q^@bSԴ˱IEҍSUqIa. 8RiSN 5!%D=SiȠil^dΕ?3~Ϥ0[L ⅄04nk7ALRGlAv1c"rƬ!FG0k0#a3U!J'"8(<@E3@ݥ=G.dȸ,2Y%d g B;ZՖF`щ%A" m`GXϪ7ap4bpЅppoHN1Ȅ(1,QMFBzBtKh`dMŜxb5?ڭTVccY^W< M@݄@H M߼)lllH'ӰQ۱ȂH$JE@қ|&B&[1X4e>[8Wp/fsfm&ʩ<*S6 UB}d#)<uң..d2䲺@EL(kE0+s"-6PdHG}&}N},I fkbvdldԃJh+sp'pFzEa~?T|lP @!@ i]M GQyt )ˎ ֘ D-^6D=R,[e,m\H&rea"EHE@H@ f֪%r Z,?X րE 1J-B0]qq}f$[Cs_pjia\fWI̓G؁rȓr4@Njժ* [tBj }* L$#ѷ~F릮dgxJkxn|.و2T r~+rʅ`IaoB/cnF ы`mk ]ܠ4EŋMu^Eqhщռ{tS(}AZdE % *Z>'f10)ǝa [_FRtpJ#- A!TD'p[ [@ފ1 -E90ֈW']qLlDO,.IJ4sI-Dq5NVÛ1{UϪ-Dv G;^g_n ;Y%7\ϵB"s?_G~^D)/z+.2VЏ}XaB1J 0sOصzvFn5;a5  F)׹G:S^MzA ѐgE N( T @KDQ/Ѐ(xnX20 l["H"^Zʩ:)`:tC 7i}%,G/`!ɍGMޡ5^)e,eQpbUՙ@W%>"x ?? YIb/d \0o%$?@ (6 VKĄOXl@0x3eQ_B 6NCؙ%-vbĈD `V 2@̄'c֌M% wnPdɟCtQbdRSBԬ25UUDA7l AbNHRI]%j޺tcMpbd,#Fe=pce%@ HH=ж={>ꡐ Md9-`7 (G =|ȀqG0?p@X> C%O iOH#!0YL:Xb@ '*` 8P!R F 'p5fpbH81 $Rp:GeI8@+ !E8 . 3,32|35h80=  M(P4 2(UsJ!i$()O?T (.*Z%&I`)&jK"\b**m"+5"zJ,v'X*k_ 쮼%i.մXR,2 y!.#FCo$RTs`s.a+-f Hq2@xYK.唥CS9mA뎷m6)jX=hPhzq4* YF "\bfX"%,0 Ahۂ !n{I!&qETHN[# H#_ ,Z5dp C57 434S+=a>EQ4eM8E` Ӡ$R(")SLʔB(VtX nZ "x56X ]  W6*҂JE@d+!laN_W.WcŘ Ԥ1UȘ0&e. 3A@@@DĈ!aVRYIq[ 7L60S,j28 &P<<#H0܉;-@XxQ=KcLPLJ Dd1@y"@kRF! BtD"l0@0+h-8h @.z:KfB:䶞GvDDDk5mHJV؊ڂq -um^OqOb݋wdub'Xg Ŀ y)L%ڱTHSP$8T" T4.{LN/LY<Ρ6 **笂\^,)j0Y&YX~"ZVe*V,($% wnSfj}*V'B^C nHA!~0$sꕶ-\~&)$ ]E! ! f!L@+@a &ɔBk!z@@g9";CvC*8P!8@iMO,M0W/ŦR!DP$B DAr؜d؀m|Qn0 bdmTv(Eq~og-:f@rGQ(bJ2tON\8Oޞ3Ou8.{iUO$N%|'."~E$Ѡ2.!b:k.YeEJ#Y#u ,Szl!*bQ*r%٩,n.b0xJ\,7:{ǤE!̡B\CKP&P 6 cjDXjB `+aFGzkad,.j,*Th7 =(66oF/!B/r FSMmd1 3L-Qjl1 j1m3Gx-pEn" ,Is4' R纰˫Z؞QD H(`BB"uNsO!ev `g^'  R0y'3T@"#GDͦoi5VQ 5gJoI-buuvfxrN /svqN\P׉GY-"Y#,"SZ{ڒ-[h|}B",<@\+r:#?y\7Z!_ZT V_7`S"@'DJ~WyHTWd8$2$oܪmoV 6 +7i[,q}+TrBtl8y۴@7dJV-!V86M%j!F O1130S25CF$JX6K6%m_zsDsDm_v*hüi`@079Os$߂f'N/MV;=B0eyw)|@HyAɛ[pZ 2 {E+\~{)[U'}B̂ 8|7[EJ% R/i#D!,DDKfCn鍫.Vm+fupJI1)lZeϒɦkl ]B ն,Khot]tm3DYl~F^dA8,WK6kf5 \S`:C"O4vs7!XjDֆZoo2FCt#aN,wE7#Eq$tMP؄Rq%UnTl"'`&ą' X>0uNyÂzWZu\A" (Sw+Zb9ǎ9D7 TO`A%$,/4|?!R$ł /nXaͿKXo`O8w,[Ҍ OFSf&% baYj h ;vŌ2!0)[ +`EK4hK,,\s:0xh N0I,3w2hł^,V ga=cIp[yM_389!cCT_bgo_}(UI=!؏ʕ-cq4! ]LWq`xEfDx~bhb(b0PCL l D )d @4 M2 e31iXH %<aR MYeN›.3mA&8B X#~7S^D¢!9D9h"d%K1ѴLTo8T"TE5T5Le14XudY dR_LvE]BnYuv-$?d6VfWImcjf Tg-6l6ygN9pq>rqw0wwALw<5\ܶEAwR4@S-!L:Wq _=82Hty9AWOb,vM( яd$dXX2vm)&Y'jN{ 7[7Fh^d8bm@@gN0@~駛X'Xp؜ڌ.j'+W3J'p;W]g9B)KUL3,L@啰Q-ZYEpM oYоL,nXa bat#P)Vڰ6mYd^Di`û 6ivFa>4I 073p2<<@wFFbu:`5z&8ZP4\$ꏂ< 'OӒ4QA$Zֵ QH~$G4#i L]R4'D&InNʒ'mo|IF% J&$HrbL¢p@,̖RXZl&Ebvp2f1,$(q&""'٥Fi3yţ_!Ih@?XmL%I8}IBeK*1Ovbkgl6moKD5?;a5 rK7Z7:7n Y]{ɨZ%o#%wY"Id=łoA{|~W`w ZDQ@K- EP*q.$+_*-1b..@*r0AF17s<MvCha u.z+7sVr"$B28c7/rRqr3-013s/sF'LC218tQ5?T( uITTMDUK933btV4nvje4B ZVO[Wfu#$RiHh֕b2ZFxXHmC%7OW&VyC%F99zb_vq_[הV884@Gy@Tp) 5]狽H ^)7S)?D?nV/saeA_!oH+eDX]_tA<2~"QD#}(X2W2 QT@*Q.1Rf11?ubr%@Q!Q/Ղ9 Ñ 0/S:82R33KCuITeQHX氡k9pF3[K0k]vXrZ3FFogWu$u$iJ&ligx?Jxc$biZ% &im|WI8e(yUJZx"5J@3bvU%5{glse)ǘ@EY4T 7,ZLM3|y3b`v}5x>;S)4C@#0}XVO_=,=_T_)(xM]TaYa.Q.ȁoQ&'!Jo ~nbA&Ufq/)>tA7c2ad0FJuQ DDv`EZhtU[7[wE+ 2Z{fhDHU ye"itHBY&kB,qHiaBdDc)qh%}&YwT:'jIv6xUqkbqvb v4!R[Eo\UYљi4y ͥq+3Q]uȋ`@ b` ?.)g.Y]o k1D=PRR"҂,s dׄ U7@ 8+2g/ dphS@!,Gsrԁa"*@t˱0*TT1SۤCG"1@TMSV@j[0?SWK3aE!KLfBE?pgn+wV cJ$\Y.e/K l6i2;xWxIDKxiMʤxyty'$y{b#7 K2zzw[{izle L-@:^KbnZ,9Fl9hklj1ɨuLXv{b"ێ;OtQl}0)CȪʭdתmOO#-X*Z2|@"..a:K _0!q 6c EUSH'2 t׻2?(ګ0T`u%R X W4" [hFfK%QɆe27hXD3!iI.<ll5LΉ57WhHb#a3-KIkO#m bLŢLTLGU;lK ӄ+UXO2٥\R(w ,HV"ɃH~_,^’ʠb%mʪuA"!,e0e$,Gr컺1bA00E0&DL2OvZ  t()PX@`ZE&r@F1[3zLw# qLL%,k ,u(Gbylx:ۆμw#fIuR"V93)ŲkP+&)bR<! p@ L^{&!yBX `Ƕ&bj ,=onRQSRZ @,TarCL?袺a!Ba9mBB'1r|Bn |yq J7:C-19ᠬ Tʳle NMxeXD=VN-r_ MIC}VfN%m|b%wV†7d"j8bkmV1,E7L )rͽИĉĖL%2hMMLPܶ%+Mp 8+jNj0񦵥ǂ!՘"Їn!}p>|Dq*pĺ'qJAyabqad}LB*rB0%0dàKd![T TODTVJ#L#MVj3?F̦rJG'u&h.x{'T/Mzw3&OZ$5j's' 6f3 \"# A=j ( mT%o@Q- sƣ-M~L|+6].ezev!c+nv 3~RNICd ƺ.c wBaȺk"Qb Ǟ^Arq*)>TC?~P 1uMʯ NnK?(T.#05񌝾`e!/hknY F'ۼx,oXv"8<8}۩ZD(B  آEĉf@ĘQ#8uOVYyDtReJH-=1cL3`܄%$$N ) @I!BD`+A1b8V~ՊƌleJy/!ia˽x.X p` H@ 챮9haxbɶ.^sP8p [`8;un}g K<. 5Kd¬)ABL 6  ,67Ava< q #Ͽ# @ :0`/1 7??4# Kq% B< `;\ǎ&+G:#|$Tr%0#xT L(|W4dS/_9I5|:L҅J6pN(C-h8Z"1$t#$("P!%%V)Y#ֻ4+I$YJ"a 5^r0 :H<"'j+y ɪ,7,[aİ+0K`0@$Hl?#ZτxhB҂!Pj–EmCځ49HJ̆CME2#oJGR8%iISRe)`By%,)nKs  D%+HG?'Nn@ @(IB ,bBR:Ga",75(3I.+jĊ^khQL]$qJn ӛdU[ADWq܅6qt.b 0_(/u-'2QUe9UƟ1Lu&3m 61uFyl@x 8^k<,Xœ4m` k =—CG/NĢ /P8$a8" e-DQ7ԪU`KbSUmE0Vux@κNMIB y95]ҙH \:#p>Z^'1iRP!r")!hԣ:JvBT.%(/ ղeA$ʣB<݄mHGp7.h8!\jqs+WžunOg:9 g?%+,`>A%4As18 @Ij80th!n@\4a+ 3vĴN3@[49١HCÜ YNs4?EAQARdLhR* m`qɦ-*ȋ^2GI}Dܓ)yqjcחDLiR㸔$:MRI|cfQBt* E`b)nuo58nen+Զxăyuҵ) :k![sdV9!F9WO<%Q'=k\î72L̛jn/9VRei ¹X0 6GIH;;׿<|/┆/ X;dM_[9tӳ@1֞ 1|;0Ј6q/?0e4A e~q`v54 #UkZ界2Y~B w6oDCb! 4݉)yڍaͬLe&}rbClg}RzGAzq1A 8SHqX7#BI/e^ Ǐ_p$k2X>2@. 2+:B8:#>>9S:B3S# [:3hGi%=J3 4Xى˗hc╖;)(XM+oJ/  48 ÷: 5@ ,6  CӘ/ `.` lX .! GT!а댽!ADMPK|#."." y[11 sxQ⤬ҩ9%C4-sĹD,3:m3$()$B: L 4" SP,ZV:L: p&H뭟p-;_&i4LB x7ZK˓ڊH5}IR |q9s0,t8 |m }btI7ԟ?0hK/ ܠٓﰮG( >|E!L)zc7#)t3E$|6 C91Q.r{1 iE1J? qF2%c 9CID Q%q 3 ,)a4;91ɤOBA:8#EYֹ:SܬǤuB\.XA&K#< Y z_ZY 򍾀BZ!S+r( <4P5 IrqR;'8JICj" J0 ć D1 7qwҌ)( bPp!)#ɔr .)Sb4A6B2 3웠2F"4;3b,tDZCy3K:۬kNh}4U򺤸;; HB抻 #uzKk*dIv0zWHJ=ɾC\Y` ͈Iм3!h5 O[q)>װ [ NԠM$Qޓ X)p!)(TD A ܌[ y7jx7(!u ֨<]"œ4L+-R} qYi1U_ɜ12՜S6uA,̙͠CZ'@˩+̓$@Zw?@Ά8Fq#:A spaPٗ8[(Ժ 0&SSXhb  Ȩv1̽莗h|<-\OQH Ԡ!׸MX%ڢm Q")RV;O#DY/ _yZ/Uf}{YlVYX>`?`53!S j2K:+u>$u9 ^Nk4?"#ίe9Gp:a 8N藠h\iBHL)lj'#]V%0U-ʸ ~IqɎiC YC:cϭݠ4%9꾀ֹPֵ ` 2n6?P=(x qNvJюEG@s\.T< :_VK s ^M0Q["1**R JHb^Y5v" NZ%(yGdg"9)qmԞm 9 #(+f,Nblv3?;|~F^nHha in  ;!LXP 0r b0hh 5oӼj W߯l@ q"0.00↕ {^+x磷DL۸-ƒ 6bnύ7VYr/  Kڛ?פlf%Xsp*^'%+>Sjgy?Ry`;@A)$#;ˑIT tN{~ 0#р#\e"Y'䗪=1Pkic8vOS`Wcܞ%߹\j Ud yW)^6A^ px5J6&v|ōx W^کŰ ov ٷi^VxE6wlsXW_ (b%Rc~sswKBzE _!@hVhA_ eH { wa]GWQ!_ &`_0_HƎ(k"Dcc(:9Q 4T&DA!}HJ4I!y9O:Y+5Д@ EPU QCjҩ ]P (H%)*O(M@=?=ӒBb)>NVTVL[TI-*WPԫRڪ\xT_kp] Xd)y!L`|wE}ņWg&[.m@x6fQ7Xrq uWopqaW[qi}MdwB `qj\h(u`*lʎج_Xh0ON+u)IꨘB$rBݤE)Y@VBG_IeEAS OBnd+qNyN𪑯B$ye&JN (`HBBYf5VYJ]ETPjQDu@ﱎ]wEׯE.3\ĿuS%-hZFTƊg~u#+ {`D+\vf6`WxS:q g؃'c0رg8 ,8Ky8\ T(wHfa(- ?"Ԭ$ A-2b_l1i,*)*bD^!$?ekXVͭpH! $oӜ3=" "!u<Q^AJQ\Ql(( URb:l+FJpWKwĻ W&bNV⤢,B ^K[ծNjHI(ֻBxq˅`+; V2m^Dĥ8oπlX??h:iycO{:pQM+{sCz8{ LWA$Q*C$Zh(D=[@HC P-6-bVӳ%SPRrmA.ryHFb,uJS̥0i@7yR aB\$t%SWC@q bl"!BC^EBUHWեˮ&si;\RLW.vf")f@8͟wHdI-)!eWN{ Ք>Sb'R-rMiIF75?$|'Qā{O\ܭW84VMJC*q#y㥢a ,ZPfݍDcoyNgl9+T%ScNa]YXJ,!eVX( KϝU\4ukgO\i\Y R䅽ą 9uFaZYǹjtJO9-yh@}I|DY8V@ؐ `H||jmшV|,ށ]ԅa)GޮLMb^Ć ߦhXy ,_Q[TAEIQVJ]P\[EΕt!+R ]||ŀY䕪N_촊`cY\ 8IV0$.ΛR߭R(VgDV5Kmui,-5]ul[ƋF1W?2iFnxQؖc!5tMz(D@AYGPXDeH?ŠTW dE[ ލMȷ9FIQ[M[Tiq P5bQUI}mΛ`CP}e&\эy#Ze.bSVE]!ue_J*m. V^TaX `6*5-AcV9 GV^<,zyVmYc])c pp $u}FX Fj';I@xLŀ4E&L uHMAFE|-EYw؅LF]Ƚ$ Lb\NL" LXp Ԁ"щ(DI#V < hY%(VN^.^hE\ݎ$&R%QgUdqPVa (e_gհY_ X\jBO0ykFV).fImK7l pǥ͓DZ`pAP@^) xvwf ]ZqxFb }Ѭ  H5[FdHF ̀%M`H(^*.DDRI(%ThAp$HV҅=m_W'ND' RFRSب(RNV1΢+:O^Pp$pߝp` vޡOqAF PqI`|ymyQxԃЌpɸ*{Hgk]ŀ`M!ߟtm AXenX+IIP<>DII؉[lOǙUeS%#b\mѥY\R뻦8lŔ ^2#_!24^n,tz&兿V֯ Ѧl]+#mv;_ M9Љo60 z6U}Tdv5ƚFb̮e43{Z DPpa W}Ryfʠp;a-%=X!qN1 Rik >@_(ȽIqCEQؚ^xaޱ1iٽjzR)N\c!ŏjlV&٢(Emo8 ]\L˴/YiKRU0vf0rv~" &r)l=Omh\ 2Tm]Z͞ǵ szx0md~g79^,5_gƶPƪ06*u3y3iiaP$fPbPP1xO՛IT^mo@8G߸eW29 `we7+J\ UBOdGWٖbj^-Zut\&i%/At[,<<#5*2[0 Vi6mk^V]:UVWif]Fg#ؽowp=ZE:3 "vmvq 5+ m /vzd P f DIH6I2Swgb,lO UѲBH7pl(zAJGyYJkwvl\ڕ!hGۥƮrޥ=i 6 7/}+T#PɌOOfE"څɯAi F,ԵCEb5sBElKCLK);fH;ء p;`ӟcx|g4DžL!zbx`3^HXϠiπGyG9*w?<" *N66">+p$nq uePUքME_Dz͢YpzP",Ϋ jw0"2<"\Fo[%n?ff* )7+̗[ S,~i. OTiEu'rޯ2+ZP8jw<}56kgmdrgyiȅZ Ō F|[ÛK@7+csb` @+nPQȻB;.A r_AnWNU?I Ȯ|f&KWa.>^5^y'B0 +@4L"# 0N$"! j'B&cp6 A*@ƉpH#Cj*I&'jƇ^#-GRi˞Z #i <#Z<)^2`~RL2)"Pjz+jHE Ы:+/GjʒSN$j/FS)#0U3.Y!k/,h-V@m1b"Ԉ,3a˪Z-pȵ|ꄻn3n9.;Os!ꀼ -"sW_ ̩n?=DP|@;ƒB-z@h`[. ː]7+`\Pp V‹50:=$$H#H,`! H IIlC> FF#Liq': * d&/(H[Ph4di/ Kr(L Fd2.(rr7 )f Wr o]T4u8*{ɔh6}nSQ`Nsl$# * ]."HX dyZqn4C-u`xq^o!8.Yy{O|,;jπ4?֞X,cCEv D^6'Hd3ʮ$if)aZδLURМ4"F:v Hi!G$n$iZX&:eD!RB-]D\E=i(X'5)•H*pbKE8-vTMrS$yc sp cAfWU9,0e&8]cɬqZ;8IlGpSV;p΅=vIϭn}e=y"1>aˇ)(~<1DgNG PǠh&/3Qr4iS*S-8AQDOB>'@=P=zD0_RJdhHR -ykbJgIt NHYQ@&dXVލ(Uv]kTKZŤde0vɔ>94r쀦LeU2cluYN>5ʲV+$v'K9`\$xǮq̕Jz^}e/~UJ HMf f (㩼f_]'%"5$E(Hhl@A!M4JJQA[Tdgk LD 6MHѪ$)*b'XDLѝ6Jk.b*^t |_G4kH$]:ſ !o,GFYȒjZ'$oeap;)VR :0\SַvG{c"AVh Fc 0'O6WC5S::Qr =G ҭ` 'p =%>J}86$AаB0+Njl@dZ0%H6#V2ʜ$ Ġx\=)#M0~F$x k|HH . %rOHN-.qAnTqL.HQTNFX8/G4yj\]M[zÚ-2:HT{g*` Y gL\n,<6t ba8) WOL3@ORGi^/DfZRVeb?[E/n!mqв9_G8hPnHJBBKMh&R}bk)D@  0*2+ZEۈnN3Mt,k,+TVb-707z7qf'WLT8\4T, t2;9C'DHK3]eNH}#! p{'{ޥ6!G_T"7K_]̔"$$hi#&*E2A~r("|RI1@2N/K??#DjF,)рV<H%߯&["NRH؉A*Muvuk] e1lS:7%u.5uDMY8iuЭ7V1 =3[e[\JM2 ܈0 p]+B $'H;]Σ^j!% ?!lL$&uP`79$&HU/^MDj\ZP" +QӜ^(ĄD?DKhQͬ=$,udeJjhn6&m%(hdr)Rv&b"B/ vxcw?cÐEoVHm1Zg8f94S Ů'N"Hw d# tMKL"Gu!|` > `YWFT%S hK48v|/%R$ՈlK+I\jD~yogLJ@L zWke]v*7UforGhAQȼRJkn~ѥjwuc-C03 KP0O~#m18Ěx\Jz‡`,|uܾCYSdB  " у<5:*t_x,tB0#~k pnh#T$f Sk&vz1YO(Gx"pk2n|"BI>#d# %E -bi().h(i&xKʒ%f jThuN)ko*̎UY\W'IZv yMjiy*l9N\-ɕPe% 5YtvkURٝRECLgKeP 0Q 9TDultV05ĢTœz5e0O0̰ +`%݄,^RVg1X[Xa p^&Zf9_[E  `GO itt VFa~d6cfhi9:k(q~ qLGul?*]qW0MzFXT9ñF?? YeW t O;gT~!Fzh_/Ig!A'?^ kG*tV߅S|1#z4џ.z.gkt F};S=՟EN>ILNE Ec,3%qd] X`F&Y`aB;} c4zieʘhHC&Se&g1)ڲmiVpwdƉכnǜ8:U+p๒7yk~$lHvpB<Qe{Ԁ A% K+ػBMh>7嗅[/DmXO,zh>#$ߘ#&IIB{ Юt l}H>5T*e ys46i,[E^tB(."$;AHaUAMk)ЕRJQ:ڬ-TI@߆14 *Mq"Ow~TawƓ8O}-3{p D$k=>,z[Tn Ld&c#ZR&,C7BIrt4$z@T4h#))!p R!N@ jLJTV>D!(eOStcb?GP03/CLDOI)4sz+c$@!5uµu*7iI_ʄqp).V$y]!;~i@# `I't.-Y"OY†Fč`̲!9nbHft)D{'R(X c0 Y #wGmIG;${bSP53GP$[8̷2})eNh!Nz5Gi[P8E.rA .k0j5(,k/BÕ)̾uA!6b29aͩ8%P9,f}E88Ng$KYBxF;rT}TurV<ʩ]d:6rcqa q@Kdzd#iu ^~= b Re2êCB iZѴ̲RRni nQ$,_eh}kDi;QOL1S*=}Kl //%NL)Oi ?c DžybwUp-]Y[%.^7VC'WFGab>$?!2P@:`-\~%nOqXV?,?52,SeNJojm->W/~UVU~ZRZLKWk+d+1h@2iTKrW{'xqF4xwwTlwxqm!@+vw+/$W2b'F(g72bxu5$y:C1z@hOGVd@To~2gQ@pbQ7Vx}p@WuoT5'SG:UamQFP0|:o-6w*x p 2T-c@!KO>Aj//'2GQ?52z TTܒ>3]ba -u1Ȁ@B6d$4j%\b{wB'̤'mvף'$!hLjVs*1bB%ta BC;?h>nn7oJ$_9!T9e,~߁Gj^RaG8! gP$<)E'MRG Z}CV{m(ÄEW"3g{s_TUԄg:s,%UV3zKGe>[9db[E:ŷ*Dc k5#AH)Ӌh'aFqc[cImjI0eIq 苑w 1!، 1܃wMx7@# C}s!=7Id"dA4ZTWU1011#pPQJ(OC8QB}r=Rc1b#Pٛ `PI) n1)/QDYZyѝћ9ٛi)ɟiyImX>S9E =y:$:6rM<j< XF&1wՖ$M%ւ*ChENbS7CN) ձ|s|CyF0LʚQ*SJUjwW:Y]_ a*cJejgikʦmo q*sJujwy{ʧ} *Jjʨꨏ *Jjʩ꩟ *Jjʪꪯ *Jjʫ0+H<ªJZ',O%kj  Ƃ#y+Bi{ͪ.M%kcmL!}lq v #йt +kEKѻdKCй:,8AƍL ;nxB`49Ħ+aS aE|ma`Ӌ+~:̶xSZ,ͬ)#̖oKͧL갯ěx֬%kd+W_ |<ҁ笰̬={LK,P,ZJj%K+OZM_K"т0JjvL4Wåu+i6пd{|ȷ\t吼6+m y[Z|0ԸC<=,\t=&KԾ"XMʼyaͬA-`萳[E:H ֬J;?\ÒL0plɛ]Oc=1ٸN Rْ:!ʍ;}ھշ{'ЂCӍ+}ݍ ]O6|mdCmp܈ߦ!,T9CG4A_EN2(fIR&XBK35%-xRU3 & ! V=GJ:JE1:<)6- WU߬7 $5eDH-eGM0 ^CIkNWȭM5 |绤vXoNNvb8eYB [Uغc?݉eXT\[͍ʇdk@@,7<1N@ǀ#KL˘3k CN߿}EH5XբA-_jظsͻ N|@A+Nߊ߷+i.HP?_Ͼ'NickR5[g8=`JN]J#V>^uς $h"fbYǟkb}p4%:` ")CV<#.Z2NZNc56䓑%&VkR5 m] 53?G S bau0!H?``x&)ف GfXBx hr`9?Zq駟))$Xi '&hF*=z`h=m*&s)%=>vZVIgfy& x"ܒ(@ߖ:֋`u0ݦ;Y:d~ I))Xz1aL!w&Z#zĪpX Ilupv96 \W`y)X_ w_9\,P iV=';L7VF0:m5JX%|iϢeM{Vu 4R&+s4 Vn5Yz߀t t_`UxY8]>S+<+0wN+ }vXp,Xo6!a܉K#"⊅Lk-$/?vczX d _Z(q @.@ھ@; >BjG@O nECƥq@JPK,%X# ăIp LKP a9! Zyi#n mq@t (La:0Bψ3`BD\F KͲŽ͉`,Q2Ʊ$,c%p`HG=x> IBL"F:򑐌$'IJZ̤&7Nz (GIR2qL*WV򕰌,gIZ̥.w^ 0IbL2i|™|4IiZؼ6mz8Ig4:<~lg@Iq=BЅ:}CSeT F7ъ㢜2.2 I"X L?ʄ@ 7  pQԧ}?JԝĨsRԦ:P}(,ZXY,.PիXzUX-j:r8GA׺7׼uxlIKvBb6m"[ 䰆4lv2F0ҒqYnQvx,@Z:QraEWԷ um7nկ8nrAW*H.tRa!$ ov],gGZd-hށ5b  տU?x J5Z,a0۲-jڗ2-X׹yMnss~%)c7S^W KKw lM<&tl+~ /nlq2]x[jX.6{hb]u}}qM]ZW m#s1'I,CySNUm\iZXYeoeͭ˫Ӛ2E&3vh2jeyml|C%iY?] \wMtc;*Kx/dIy ߔLtFI+PW-mұ2kYe_˄qGضu4,vVgm T-;5ȇ %h{|hW^[V1#1-]G@ʚw?|9Ȟ~od1Y>&\ M^;| ^vZc,ws"l!#V.7X,?γT7.$VMY^ye5Wa}o{TW`H7Uew}c[S_%[Fee^%TUf7 { fwv-{k|6`B_՗G7(}gTq_"fr&guVxWWBrbc5s4FXG&r WcnB'^>oFoH6!t (&ŀuuaTh, Clew7jˇ{`a-ǂ'gd13|fdUVV¶!6W`azxwarQx}b'b~Yާx}ebUWWX^DždmcqXwaRW08hn+yzgdU%tHawȋ8Y8FU Y7[ʷqjTUgGfTpɂfwW i VxeVhD|?x) r@0pS{Xl}ghAO'&KYb5ibЩ]zUXY^Iۘa)87iyjnC7tEfidHIZ<ՋH\}{ jXqYw| KU U)]6vWa 2ȠWXI }؃}IuP$fAE6 uWx6tWb5sE&Rnc]VZcdoIBWhȖcJdգq GY;za8p2}2){T|ǐ`Iט鐏 )Y5pvh") o!U&ڢɊχ)HS>ɣx^Xxz\Qx~Y~xEhZȜUX8xqb) hf1d=∞)djzpIcYqwejfHT)7)q ba*ՠddfe|`cqey~ڰ tǃJg}Yha*|ZDXqp bvVEYYQYEh`N֪9`ijyn:̙Ŧp mCfwJ@(@W) zKT!Ǡ ڈ Ta#`{|kj+rp'V qQZ5y)ۢ-jeS$xyI8I"V'4$ڳ> x+9N9̛XnWٜFMɝh1טY*kXc6Xkݪ`)[aAF~9[*{IUeK[Uذ;wp ai`{gqz`W ɒ(+۲YW{}G3|W)lad̋d'ކc^*)qo1mq)нۥ[j@ZeGByhJX\8ɟjz*{ǂ)0 *{U{ z 쐼"f5pK|v[a!p[*ih~,{Wî):+TwA)K m;ǫȺYakd5fs7ӌNܺWLs^GFoq٦hqSgzq˰hr07pv  JXkJJf7a)|e|) l|va Mss܀lq lvknZZ(HL ^_,x=lA\l:utKl}|:Tz km`apU ؕ<ɍّMkAW;L &|ZNw[1]+Iӻln%>kJcMŤPYI ZMhshcMG <><^CP@^Nj^<`}GAwkúF_Ndtl+.T = ,{W(fx 蛫皼a6١Y+,ߎ.yC|eUF3+\uѦCBKynD>:d@N0>B^AZHl^=\@}6lc^^uzl׃<؀} jhW f爝$aXJِ~0]鯌d1BO 5KdͼEM@V_=/qQN,)_:Y#,-BLx3;qml|LUS/YrN%ѓcߌ=y{`qKpwߢJ֬oYkգ^NO@;80aA `P`DN(6<`E=.H0@!J <90+xYPHBF3@G Р>94dҝI#ѩӿRJzU*\;yVcȖ=ZmBammW7p4ihXqÌFx'_hfb73CbM[W6kvI $ys:iMԙ(y Zw7Q㿑#&QuḂNХI3(=ãj5zA - P (ú2KE &[,GulTKE+<5LR%r5)#RɩZAJB(~'J긗'5ZnF0NRx8@J 4ЂtXȢbDQ)#'R(тO{o%O /&`&ZB5{Sm*+[ZZ jKض2,,hY Fs6Ȳ-P.(ˈ\@sҮо*-cM˭bםdELXU7[e`DRH\:J '$݉B IQk:bƫb{oH&Pb85Go͘Zz\r ߗ$p醐fZ_|^[)7a-E+Y*PE ̋iUVGqq o'.!-`"-;2,dzJK Ժ`9vZi}j1eud́\FZI'狘b,Ok Ptcz(-ґJɡCoehʯ}IipiN^ZLi➡:Nj)]m@|͐İc*-<{fB{Tt@fGv2 \Gқ(Loߊi"t$}Eq8n(sD 2VNi#8J9lf!BD@ U?L^S(ߩL"wU0qV|da y O\LsfF*Č`3ͅIaR i#nA@>_M6? `{@0II3Rۋ@k!c@8tDԢ .I@PYp,aGT!^8|D?#o.G 699&FU3'i t*Sxf7Mʼn}Lu' JQx;dˈy0}A\Z:RPGG⥥$ˆ"Z`Nb6rp3`a~:7l11`ܒPf٥yj U VI;,r $ԫu 9CWQpi/1CƆg.KJps>{rǑՕbbڹXvS -»IUZ$X"3#Xix5! 2*gnF=}Q儮*HCWC )Ӗ׸ )AfԘm Aj(+yɿ1 %.kJZR_=+Y[;җ]ޙzFh7 V.?= @Qce؃HDZ ;;EDj;(rynL,ĩ%*jV%0B{YM0n>UWyNS.tn_[51HCvpA~*x\ّT2Az^GrtI@;>LЍKny g܄ 6*H&Eg# ER/FbJQtV,+)8clCoAjJd:B{<̍4Ww`^*%1/[1*r ?}._oCw uZkK%\zٸ&Ÿ1Q {֎VH#."-|{ED`'ұ9Zût37C2D}&ғZ3cAng.e'MlcJ|z9٥i H{ZJ֮5@htSmz_@g1~?)\>K|G@bf+\"r R z9<e_.&综^4y-(Z<%s 9y;roizP8U1g3}fmH A S;':Dv:]B`i )e{ {l?lvl詣j4;!;>s>3/&@ &vsB2MBڻ}8h8<ǃ6+58X3 |< sA?Ƚ`NdG@ĂC"mR6190?s2s"CBC{B:C'c;Cl eCnc;?0;rdBDwL1D ąJ*v "E%@EX\2htY$d< ]t9ļcdJ9=Į!LA/|E"vsŝ2I+F BƔ=Ĕėd2t#ǙDCTӪG|Ê : H|U>Q:)ȃ ,R!3p3H3'È HGf?;ĆCpİcDK59Kdwdc7Md+T \4Ni$ZXN_VFRu=ɠIENOB*˫.1;φJ̋XJ |c׋DKv#Km rBkIuBD4Enjԋ1Lm$5eG4TL{*Eyσ+::㈆pÀ!m A,ĆɦD2r;B\J@tRMQTPDҁd(Rsҳ* A+3ŝdE4<$$1%JO"`P9 CS[̋HP8HЎZM[%T:F;{Z!a}UQjd[{$4҂,+lEC@LPKNGOa׵O%cN\4śI$<0 S Q,A,ʠTS2 ܉:A0Ƥ,ƨ=5X?SAMO1SW"l1US2G=α4HPrUH-WmToԑmɺNL}ɺBgDSMS|U'\up>9a}0dچMMbG}D;jxM 5QBlv%ٲmINY)OX**F. 55SNh[8e"`AϬlɥռE@@5A vkX \%4SXFhF(P%X[Ro=Y]MGCjZ1dXU絵XUc"[e8C& CCuQVGT_5CQKCA[[ı]e;rX)ut5Ś$bP]h E[,]h3<ʵ\eOʝJ ԼPXSZ$I"$d|]I=״}mµYޭJmYeZ E}ކ)ߍM0+LÄvLю.`Z]3HVKV%CMU6I|5MRU$5[%WYNζ 6<``s`0`4.]µd} ~X-6c\$a4am~D vXXZ4OnTTE6a`cE<9E6EHpf^uRà0%0naϼr cCU7v0vV熱+ngjpbx"gRc>]A_a_v@% vKfKN`|= d"|]Ӿ=}ParTf&aWe2݊ҥ}i ؍TDv[re[oeI,f;[_cjegeKMP坾5ֱ΋8Tl.\s #g?>uZcmx㾶Qm;71mpb|v8~Ve>J6Xm\Xe[~vݝ٠Fj 9}n͆n.f $MRm [cVf<^P&o6oöYduUu^X{z/n.pXk$sks./k6Nֆ!l?lc'.lB^pۮMF\.]dnm jVf'-^]j( [)5qʞj.oVfu 9>U;l)₰^І3p V0ZoU'`cjFVzjKV¾Qu&l s<Wol%=pk89nd5?&vShvL~Oq~viYJLr\&woVONAttKxmnG?ygG~Kxx~QogccSuvbdp¾uWwuuuXguWsV 7vF&V(vlϬO"Р+„ $PD"R,br/r4#Ő>,9d Q,2J2gT"ZʂGPP%*MJħRmROV#v5խUe6<6jo{]P`,`psBʶim.&i`LtrSa7As 2 "]ʆzn#;;\e\RʸJblR Ж(r4m2E Ih:J"5$}șucPe"i}Ý)P{yR˝>vF~ֳ3^1ReIU*V5c%իZU9&# 9E섿$_;e0q5yBmItȥAަ S!!fk8a|6:#2bq7_^s%zhϘVcNjm$AmqS0▄{\nNX$d&?>Md3)Df0˿$p I2ji2"/{LJ"I%?lf5Fj~qUQޖ,aU6}Y!Kҋp9'ko_$_:v̡+^0./  ȑsUs@׿՝P|}]]|!` M~`iь [y=Qq[AtDQ. B^[AH冼AYEKi|Fp =!-\p 2U^%`Nj}%ݡ=U!A 5]ߥͭ]Hh W!Ս]QY͉E"5@"#RхM]tA Eqb)!!yqM9%}UaM> #y} YF bR Ra?dA 6)AkxA\15p= BLaD~!,<{Uܳ!C,%ڑ^)!%d%D&dDdbA-"5$_MiEpbI$]P&&.Z)%`bS) ,R+)d[!d~))۷1~H M ^P F\Jc%D'Qښ†o*"]}*"(B2'n^_n&ʭZZ-{Ʌakvf|uaZ2%e0~Q$ԥ <ˆLcboLG!:fƌnцae\crAdFAfA)Z)i\ݱ])nE'94)BqΩqAIg)r_x)EB(xC$䃉Ȣ΄s' d(N]ys< 5%a9y)a% i^U>3diX!dWFDU}ƚ-\jh >4JA&=6 6f6FJ 0qkHp((4A>&pM^e>.kbf\ϒUJ)ҪΪAdk6*{]}&}~&EgD4$H'n\)^I4d"R\Bs.,ȕ,BB>\A6t>A"$f^8 7$$`c\e?F-*&Xi*kǗ"3FD үLKm1ɂJ,ԾrBMSrAo!;i/'#*2F2Q %;L,b"+@'Ͷ An&-&sB+B2Y~֢i?ӆL\WpF-"zt҄4^54g3CcbWc(juT7tFo FT:ToQ`L-6kfcVB%4%D6·kW63)E 6ul_Dp%qg6cqABFw2N/vӯtltT/!>joKZ%j{O{PAVWtu(s/4xD2"kjm%q'wH@EjaSDDۂ4oS4'cbD6;tLA.MoI)?ҟpF=뎂k(kt1 :y%B6˥n?B%Bg?64DEkq|*BR?B"5(tkuRVӯ4r˶,///ĬApEց,jv?T;yo#?Gz/"÷"L "oW/W#)׹.,u-u}2HL4C303u_j`7El8MD?؂K3*x/,Al/ AxDCcE S8,nύ<0:2g6 >7s;6k7yl mcyAl*o– cp}6_e>[#(l[0Tc $B$ի^s\yr`?LI,L^|j'cWPGE B.^烐?OND8E^g(ix;btyFYO{"X@iGT/ܨw+FBUS7DK;4Jz3YeQ.r1]NI<64$%R贘5oqdioONl7?؉;'/s *y<Ѡ  T "u*<ϪL-ԫL̽ R&Gƾg|L`#憳LEv(-,f/-¢DQ¢ǐ¯ .v# <ihJϮJ0biA. MƁΐ"OeHL/Hf 6/ x"˰ djF+VbYНo~~詞ΎG)JD0P  ! B K4'@5i V~LςKtn>Dd >qC^ g:> InϾNM L#NpO 'vP#N21M~Dr0֭)|.ȕڤ0# -#kxOeOl$l)gXlq  )r풧4\mr:V@h:Ў2* **?~жRrQ#P羲/OR]a4B- gdQ=B. ._QQ%VD,Wxa (- -509! nT"Qa3 E4QUDHTsi%Qr"LB)$ bNN<Ũ)0 M"`|,REP)o;)E$0< L5`RUa3?)#B՘r?R܋tR?*aArA!4BT,)+//,a]&2- @XJ \#J4Fi.5FsT#@E] |t;j.gHAT1}NZ?? F3Jk2Ubrl<ó pSK !j~<\i ip/B/ 2݌ޘf"J#ȠMf 1 Xc ~Q$%j*˲I=q'N&@ ӽD[?t( R-oYn W%}uBu+-TXQB5:tC- p.HAVEbaZ4I#&5OG \AFe[KT. .ߕ&>qoT̎O Nn7f< b` %v/3"h ONN.ۢ4:K Nv7!<Q]ʸ)&c2ؤ3NS?OgMa2?oh`5tU릔AuRW WAqjuk5k#2Ig, V1Yr.]G]/[5nZnV[ou[W[͡n_p )ZE]q5qG#7]c4EHACu-L#>qjU/hVueVkP`7a;- @Y:Y[yAԻ!;Geq.~Y_ѿץcy;t?AڨA|iTO ^F#w]q6 `{Y~FcF9YXӓ]mߟ{ߍU#497}3k~Y_sQ9ܞ?׫)wOS7/<K DžLŐ_kNY<1ƌJh1$dcc2,[@FŔ/M)Za>O>ZZs- -6[a'+eTi}ht6xO5VS͡z(b77ͪise( 2c*ZjxF6ܔK7}MauY8LK.5W~l|RDMsײ.V76;OLw^T KkkT c >6;bAB~ iqD{N}rW2*5^H`fcv2YEZ&AGq.Vn+ԁpgEmN h~u0phHQfqC5Aj0QچĈmz.WRO,F7M]!YTlʋ[S@'Ĩ128&sRc@LfQFxg3>Fqlx8u ȸ 0И? (^e?O =TRA cPvi(#+4>\nd ONA.<@YшY3_B3rQ ##q; Ż0%G8N50 8XU9k9#V%q?c(gm2\:5 !'7\90y jYC Ð\kclH?!9la2L,a6cfY1C(Fpp#sq~E D#!wՌ.Ϣ$:g]E:i' E!cYO1qZh kYf֡5\[f!+Pp6q+;7!}K6JŷFLigƼAVmԨ^|Hwyљ_hk&(s2 @/#cboE22G2 40"#dMs= 0  > t%We=AQw=s5RYSaI9fUY*#UY::1<ńV])T\)SHEET8C|xW9}wAxahx'ja6&jAxjx ( WygWxc89JdNgx 99&F*{^"{Z`gPr ovlkbT'aKq-z[$`Q-rq q&L41}#4aK%)Mc1 ` tsRsD0bXc!d` 22./;fAf`f´ag2%gut4;cTM~j)LdPReThOCn[YiA7hHx yGj&;& yyx6!y3jth<0{4 )L+/`*7l#QK(t2t [KB,fkuzC40 $ĺjIJ  k6+u6l|PUi۩%9:"J#C c̉ǔ{r`װG EcuqdJM f@0ǺպW ՚etJ1-1a"y 2B˃Ꭸc !f@O4Ÿ!$̃Nvv[Vh&UhaeAb7,847<;9YtnƢ=Yj*kxlm@M @Z !10lS< t@AL[P V6p+YaPK| Cpu 1 = ż _H- CG&RS(Bp #r)w݈D%ǝ\ryr#׹dI10ʜY  +9X ar,>` {Z\ +ɫ Q Zcȹɝ*?H!m r  !d`tU?->!dsi 4rKG)03b)Z̽=HvZIHQMHJj[vi69nQԈ$< gj˴N$( >W>^ q60Jՠ*ܣ"|>{ pv_! F_Aѿa!R h 1p.̉Rn׶rDo E)UTo&>pSsUp`JW b1XmقUa1RYJN*[`+֤IC~H[Plraʔ(2LAt`7Y`Ґ 5PYC~=+jC؊a[ /Xya[_0*KѼS|xœ$vߤ40$MgƴҠ̀T@=?m oJGg߹ƋSn?߮̄z"[5͛e kˍӭ[_ٿL6gXǽP?KCc†/Lzq/l8o o!``Κ1BB:30 l0#1PPrtG>rȈ':^)Yǎ!r,' d;"693p N ; CWAD/Y# =q0?r\x]G&u0^[8iSM;Lg5,3C33jcF 4Qɠ}\=Oزf< I$A7ӗ9d%v2UɊUJ.Ҍ[ ,_JR|_@I5K5A#lsЁ" unlYBTb E];iZ.Υ؅!D8"J81VCE* įUBVzBE+(|c=AX8?PA:2k?BVP"~+Bă1; H4kp?zcFfČC=A=-DvR3 Oڗ>5 jdRgB~Ƞ MMPPDPIVpSN,UPbP-uɥ'(NVԁ>!?~?ؓp #$ʯUCc*_q&<:ґ?[(~XĢ$=HDkM68շx0#~-I E(X䱞 d(=TI\[}maƚ6 $vn!-S=" 2 ug+_!PCޠ||" B "3ERC@18kMiBQlvP2AwK@ZfIOx“)m*1'x,x3ēPHrӄ]5%%^VzS= 'Ӿܧ=m .YF2 t\RW"%T˼}BgT1䖰J`-'vG! ܉iC MA_mhU`l}F2c@F dKA'nҕ~d RF@_PXְP:V~4B ^rprӿ|RRX73dXo25:-x.P)$:z1uPc>T( ?XwL?a+\3IJ@& c8`˳ UKiZF=[:IYp,C qw4 qMmxOYTQoJ_γ!htԥL ze,jIGѻ;Bh/? Oc ~KY-'8;m92 7g7۾艍RT, Zۓ}_C^Fj5 $Tq'H0MI06t8.X7\6Rx5`$pֲI<P^eGN;%"xaTO$hfP"d{ ?Ъik:9,4ƃ6B*#"$5ZB27S@k%S)f7̨!4Ӊ(&k &ک/_Jk00dqpKq09k"<9n0k*;2)9FY Z`聚(.Yx%XZðTjV:x/11'N`Q0!Á@S;IDB%?65(:ƛS#B9UIꒉJS3[):M:; EA- ̈89#4L*7I8( O:q$ɪ4-Jmf nqT!&R582>#g b#Z9]kEĒ7z##CKi;@bEβ"򳃂]X;+Ga=6>P[ؘ2QēC6l{p@^dPl:JHڌ1y$s8DJ h1eD!WX)y}(5Q*Zx8dd7삈UZ`HLvH`YLPal:& )0<,)L(9뒹9HD굛,H$HM^;2< E6:ڻkp&iAFA^S/S\Zś:l^% +DA1귄 T`#ZBJ19PXcڅu43pȃPBPP5u444Rp#J#ayx#1b2)tGiڬi!P;EB,梹83ڬd^`gجd{QЭ*[Q-r0r:!AIDI13PC8kxScZ1*A#hK:-WXAM:XYmE-1(AYHAL]^jA1 UvS#1 *UR \}CQ~2>\q&y2BTA[x;G5j(29ɹC{=OT;MO[%(ŸWyS:1Z5u$1@8(yh1A \Xԣ;"ŹI`똸;d8f z,&zн>$hqi5sJ*w|Y%*5e>4”+E.t33,O3ZG%Y#zѢ`s939G(4EQh 3H6h;R$œs)c oBq٥;=]a*iҡ?\T0!0m:%.UK5TS]IЙIEYf@]0Pn4zu܅R;ꊆȊqdk&RggH< U3` /!{Fqx̬b{=~'#c#A EdɾX#8-&+ǎ)Zm#`#A)h+OԨ5mt%lNdX36[>bG%]ӇC̅)d.TZ]Dg~8)Ne08oL^b vto_d@pX8*؂-^-h`p^+؂7~"5D.G_ =m 2i)`P~Α<@&֙CΤ. ]&M%s(ZAo"'Xo_B6͂+*" J蓙PѨ d!F۫5!ցfhafkhik>3&P&˦;Bg"+T'&*'jkh ٚ<)&5f.HD.Ҙy&ZN2~19ޥkݒhDo)v}z WH%K8xWZ$Eq%Ke4-d6""~kx$ݺ#PVM'b(5I( }"L,zKkþK>X;"3Z(-M(h#lWk'ͪɚ,(I.E]ABͦ1>B~g?/kx#pOLQ/KJM@who~wՍKXRz>DV V#on࿂줰RAHG+bAZ C 3J12IJ!&GĸB4e"JTʂ>͂ C5ߐ[nTiQdY b?;K1*80çYК%n۹q}d U^vK?^ABpЂ,Ͳ4bć vmd Y0CḟSVѪ`T^ǐI^3C2f{)/&% J ճvEA"(?M."PO+P *T7u8$-Q"؊'g3O6qagSLNWl'Nz& 9-U?ɔSzC_gaCsXeatfq,؁"yJ~0Ԑh!(.@|p9'jDPTʹ3wIM <$=.`d~;('I2NX.:E:N($J Y *ihNދw"f^"-z|򜎙aeco5JХq2h~Yr$TN'PD­`A[Â{а WEs­0["Y pP%xZF*x[Aor#ukMiR"v=9rWaծUO0ҕa0 bd!`^k׻bX*h3F^l% EXd\0:]FOP"E=-VAMAC#h(3~eFPo Iʕb6[j`ԓ#EcX,IT8GxqS cP%*A 'c@\0\d"hBFtxg;۩( e.sC(^XJ ?yoI"jήDVTn"t8 ]wfʡ/K wGxvLs,bQA,a}T9bc,In,#/#ű-8J 9 ex' j͵:TЂ`,Xd!(Q*B KR0PzTMfV4V.I\ Kv+R!(j g9;,%^aU^"1fIDƼLAA2C.H@ccы[[(ei-@2'+u~0h j Ai `p D(>1XO42\MfK_Ì [n! *gaF3{ 4Sɚ5"/j"S]oz5AATOK#A%c!xzɜ8'fL/xN'>ҵ ,-giTL eE73N'b݈jo)ɲ⣥ dUVW}d2HZShW V5-X5)6-` $E%'KF(4,ZDNUHfuTglmڥAf3YXY&$}Vd$3#W XȍJ{沖V'9$=si4cs4\ܛl4a)n1k˼E҂z.]D&"GfpjB)vAvN:8i4".àϨB 9t8ٚ Szsxr7q͔Xֶ$K= zZA‘dDvD-J|b&/TX*n x7c.܁7#8Ǚ?O}육 aQ~2'#ɘ./Ɉd5T~]LFjP[o-\W8 hv,+bWZ}eI*NoX)sռOx̌ TD˘A(AX Wr-0\ܻ[A%@q;ݛ]CM͇,ZGO8Y!dtNB}Tؔ?(D\*((IC}X<؃{܍-E*L*3$L'5܋XދE2VԁJ%؏D'ʵH!}JX˼BIx֑K$9Du P|ވ |pxn^0"%L%upbTP !YHեF_$ PPKCAA##;c,?h_>;2ZU\Z,(IԟPDA,@,)D˹au0g'R\u:FQ#(Oq ׬ Efs쉞|ϸGܞC1FXVrgh8dD@#lB ԟId=B#c:P<^D[Fң/A/l,@6hV5,4ID%Dj_^0# ktMEHai[E`b-yG*C@UV%]퉽Ja@ϕmEQ+J8FI?(HAHM8`Δ4ObZ Q6Cq(N }( ,WkH8@'uRjUNY?$VoXAD |MCLUM*LgV+C2Yq ɺ"5 k,.cP^X\W=.Ms!:jF`ckĄ5К:ʮ~Z;?((:R=flA?, +;\kM6@D٫\c- =MQUmDeYZ.?Jd4B LVE)r1_(Oxl t!︎[.)"H# [9a47UH1p!Y}X9ч$%%Ċ-5SЯ wodqX]Lr _u' o_þAYZЭcͧ=7ZפlKб3]}PT= tB5XUӪMI01XI`MyFkt8<ǐ})@l#H$֣=6.@#~n$G !&2la̅XB]Zə7fW|,"X X$jUfa-M;t{JT p"ӽӦH}'$4Gs8g߹IG TIumD6OV^!$?8%+:6JœNJ/Pg|v}4TS!ځ4–yXDJ̐(Ժ5PgD%K/Jp/Jj @ [U]%]/.?wK?N_A_\7J~אPATK7IUL"A{ī0B)CH١E 0ðȎ?##s%J?Q*pXRd#+sPy)k[hΎB)p(-VjXAjTP@f'KE; *ʲ8T.u''wyRgPEg5kMh״k0 ~^'>DsggϚQy_FeBdQn 2J r|˵,YpTj=ZC-OlmSG-ob7 |kzJvDIo<(AoMc+Ij 167*'5. ɖ1Fyf`ed- 8imV_+¶!TlApm S ֛P2*a tȓVoeWz7 QHEJzQ*~YG4eIRt4L#MrF$dyqJ9[ eXw)Bj -Kv N>쳑䭿J(8!k8M.?N0PB[8OճG8E2u!խ4ג$Krɺ87!YH!HFQZP 64mQuՑA@th8}_Җ.RHSD?4JGc1\c8TVC,;c<8nQjn3,Qn!D^TG4S\`*ExHjșx*}!kӡR (G Q扐vWBo@–;xFpB[,f EX" `-A. *U->I,ݨ*gen8 %*ACΆ4*Q |2|b* vbcIK@#@Ђ"FOdZD1 KpW.S1r?S%-:I )?$-:PQPh@b P: QqeP*e2;/n{1TĄax3tRH#R?̠B]iO=Z#%/OLM.~.8naݪ+l#  +@*6n*"cf,>D_0G4"o4iZ^PY2n]$*O J$dRbwbO^l¨z J .6 Plǔ/Ŋ0`yʈ* uNN '+ Rbr n !< @ԎԇLG Ny Qpb 2J\ /JD6f\*HjĜ,ȌF:Cn%B$ H%ZdivVf<ư@!@!40 |@nl 'PixND(DLԈR>%%Hk}h`4%S hf<65H`B*ߦ* $B" B d! d!``&HB-*`4H$z#b@ b:v,1C0)Et$e}"w`( + N<  ez.fOdd`ƪGlpz `0/ @` Et ɲ|aŢK^BL'zx'N4N`NΤ)8E/`SXiO b 4BWeTGMc1z)p [:e!.2e2H1@c(Q8`|L~.N =v eФgSΥ G6L},Lb TB)'lX&TI\%zJ$Fz r&)b,nc9Y2./B b/#R8#-vBI3p 5@BYTF'zdR%TQ\.L95iJYSLz1:/2l<  E11b Q9`Q1Mrh,ǺNp p{K|'\HGR>wwXU o xD\U EXSvG K&(RXvQpq2;NM2eנ<qQH=,Y}fqłr/o:j ,?QqNx} FsPL*LdOQ\4VSe!:4!U] E@%` B* 7~D*aa ek\H5cj;C&A&l& wT&Sj 8vQ b $1 Ik4LHa|{fn>Nl@oM)4#7DC\j@ f2 fL ހ<8L(@ HǢLjL6EQbY IN$SN'JuG2#.D0!(!6nd ҤnM}8QV"e:I)M.zJ1BP2̵^Q0(}p3 VKGL V-E@1 2 ֟`B?F^}"((XJ@4+4[(x*q2fBXЅ%\UUJ (aJcRoi:&B#4&EP#i^ҢeVDiFBXHV2$NФk$KLKTU)(Nn4|Xy0kZ-ˮ@gLlH#L 1@  R1`TLXTfqiL?3! ۰x8[$5jRDTP2o$xiW̜x.ڀ٘t 6Bob({bz2k lS! 3ι馂3~Yca`2`q^ٓ!( ؆by2D M$(ue1KTFX:]Ѕ!qʧHhfHax3ZhQoIe:/:%2lfکajg T$%c{:dV A1 K` |ǞևDo%{q :og|J7Z1 #b"4b"*^Vڮ+ (t 2?XU}d5:P4y&ZtSI[|و[喰DO!dS {UWTVR Ž JVWyO)E}V q[[xI(v}%E6ػ ʼ<1/eoda`@@F[h)ճqOEe^y0U_~GᆛoYoƲEZbzL ݐmx'/!]{ _iENEY+!$BA5qE b3fs(b0 q"t&x#}ϊ}X#وx='9%Jqsw^h,KUz'H#nmQn>Qqhn B'h Ycť@#DhPp2RGjn0@-mNPqӪI):N;^%~)Ag[EkʶFQ@C.68[J,Ғ,W6Y {cRd|ĺBbIa8׿,xWf 2!$f8U ,֟-o^>% DAA1hŌ ebpt,Zb"դԆxg?BzZhAzӆh4h= O~ T#} P04Imd6$Ld:Y %tԢ ΐ()l4hNrNK1irJD9#ᘍ0PGӱjzBI|BE Q:(%DwVNWl xRC-cԯ ̫8d}]ʴ"3l;Fă8 ѸֲxbqϪяz䋻*шH[꛲mFBl6%ɶ m&RB&QloG$Yhanmfm&oDY#%h+fL(ab%>*a5qaarN;dc'h; q2)<(=hr'r& A#O)abn A)s"L wY` O |puui.#DB TyWGWA0zAdT=(_(c51"yFE`T,$whVwu Bs3( Bfgo7CG@S1.xApyQvL/w@eTENiw.AV@zp`9ɥ{r$lE!wQP Q\2\!t\G|E53ZHB#8)6P#6)27l7[l܇hu~u7JWdJק"2|AKan, (#wB | ~$5oYHo(*  ^0&r*(a-)=4%(v N?4ag 0q?%#&#; ;4eVb"P1!nPbbDI P3sefU?g pt `twOT`C|z/qC_!c;SGdGW)e,u/qw=' vwrfKhvw)[sh/^RpI0Uxc#R1DdAuE]d6xG 0pDW\Ax13'#*2"mt5"647'n#G@|f}H!wP}J鈎ۇh6Ie~7I)6ns 0 `l"$#"p~" !bz i#m R#P2sT9/A4_gN*>=R)a*#273EA3U{,q'z l;kl}06[ɯg66:I跏v8AjC8:"blTe c$§^BY>3C)aN3_4?(Oc‚(ME,{ x8/RPA)W&n%sU)6rZ@|0p b8TqWQ.34yi rȆXCylxwwh uif{'w6 V`yPWu'~;t=('(W&')5S Ryg\Y#/0XW2_2VQ /r#7[|8!Ъ5#rD,$%9@x9 @,ɷ@t@_  YrlisI6J[Zˮ{7(hm[< ~LNIk[ ([])[cn^w.m Tm NqU*D()cܔRL[=]PX75x~֘5av_)hYQ0R3F(1h|F#f#RhF$E-*k#ƅ>9 IDvX,շǿ,Ȓ$Zÿk:1D1PFF_9n|9[GHhs_,ʍ }N:R8ań7*;F㎨JNバ;[؁H4$|մcR7I+ 2c"2_@ hj*H0r5PP!B `hdɯ@蒁&tIA"v}0dd"VD"YALXD6C0ENʿ)RX0p,Z|VbFl90fc\a 0q'3bX̧=A(eMr6sAjj`X4q8G h $l{8C7t XR X` `H7NIaM(F18d C%Ӈ![r-3,DIdhCo(eɜޠ@Ic/v{E}vXr^;(J)霓=Ă{ fyw0@.7y3dق-cQ)(*|~X?%S/R_6pLu A`P?  T@   DBuA_XH8U+:0HB!pErK[1tȴĕ$1!ۥ<'@ŠĉEd(601v)Z *F"̵bL:rf`s>c+ГFEЅ"iqd2i$g  JK 7P7oh(RLg 0Pw {Yq#ծ &!"n &"^¿D,PͪCsE%61hld\9]-0]J H)1?T,0Gk1m稪ihKPn{.N^b׍-oi+u%4g3)p\~~ʐ3ʐB@U0s*0WHABA$l0" BuU" Wi)W5HEQOeSV]B.pJ .Nˈ"Vd“Zrbk"CF0d0Q#81sEpKI{-|g7F.H:BBp)-%]W2eU'ͷ6ΔyG9aDvJ5;TVK8;^bq RWQ/oj^lR= a8#Rc,9p'R*+v8[RlObH閌qHKtޙol#a0$&i0`-/H1Y )c66rk#d a {)JR.I$0[96r#+6.J w5d3A; 9)ɒ90?g[(`)0Ɏ IԠW`t 40D$/vi.戦 " ìњ8B9$ +ܙ+0B)%‹):/ڥ5D1Dɹu¸W R΁ \b;=qBjƍ8+Z`;GħAǃh Rԟ/P PO;Y*Qa2JY*^4_XNmqc٪b !R6F8΍ƩH* *3); n"a艞~aFPXG2b  Ϭ cpqf;ht80yLkr Ș6r$-B:;`%Y'H y;1$I&p#qC#.7ʠHٸx7M*ɘJ;1M;GY9p Kn{꘎/,JG:S¸.3 Tv1qͱ@ɱSKXع!8֢G>CI?tX*)i F+K"Y"4 UbUWD0 ռ8ۈO8c3MR)T9B+^أ` FoꪜpOÖF!; X/$ui6fc-8P(XqcPA6 Le0u$GWhkd?P}PR#9~݈ lc70Q34H08(zN`P0BPX-GÐA:(CӰD@ 01BH$;S 4:%ș$")j *\ժRY.B<ф9,.[C8>:ARlUK1@A 9RL=/)i$WAW~ݐq)苑 X$;`2ZZa8(ۧ$*3'@ƠpSP#xX&,fo3ZKxЯ@ Z5f< 'I>Bь[J۩ Y07* 6!349T+rd؍SZ S/S;;O>/q=I;B)I[Rmɦ~=ι8ݵ%,Y[O⍟fQif_%EMMY$eeVʕ|dVػg%5HYv`(f.1𤹝)$ CJ';9';[! pY+h6P (* FHSMe? k19:0(vYZ@F㸅003(ڪS,6(6c(  $fBZ`\#즜H ab]kʸ .B@}'/߁wmL-R MSuX<$%\ZKCy21 ,=m✆%Gjdj¤FjFb/D]_/Ke؀J!MnOER̟ND*R ro@4\  E=IEɄ h4p D0d/Y8jG!XX[0[纋0 f[6X? P(BWI.P=~3P%hŀj9r[13~4d\l4&Ɍ " k%s| <Cʑ2 &%|Axpk"6E M?eLt;8]THuRbF.:}%F/q*i3اz9/jLLLuF%b_]_;ٕv疔hfx3mvhfRcU*R m"b#1H0R:HaHoJzϓ $*Jw~ǻnJh_UՎ`V16EeEYe#\ #@"DP(+G`ZxQ)S#CQOIU%(A؊GЭxJVG)@L.|{fo)\9š 5?\צ%"ΑP㹗Q 2ğC'+CVbeXᗿ8@lP3L~]mIv+Ŕ֥n/}1 2yBef aȐNnQ)qhoWG B h;Yב@H)m5DyyɏB(7q()af, 5熟9o-̕ pjp3,h[hWѺ'p4Xxw0,WU', Q#e:"]DcUEnw~v!U>* O &?5O;?KeS ;SMDz꠳]*|eb țY"~{6E.t(H.H]-PDk%J[f0,H'K@' bס9Q8v?@q_Ԯ7'}kaܿ@N]+Xŋ4|N{ lqrϨ20ATWЀ 'x`I\ABEAD Fw)n!w@UN_ H҃tqڨˬ̈́ 퍥IDxM`SG }NpLw!*ف! VU])?ݫDT#v%1mJyTHYQ Jp^٦Y!RA( "]uD2!EQI4P؊ wxADFGdsGsDH"q4HCGpK)0C=Vp_POtLt$5CHԁä$P[ vi<5l&=TxoN,_WoGVN ,@V XA!A! ֩©fU*`NG !eHR^_Z~!I6^DD8ADYʀH`I:@!!N؉]U" "]J ""A"^Mb5be]f=ϒ]'n"5+CO&o٣"-U}^Ob90>PuDtRa"bv6OVH?H9 UHn|buzLt* 4[yE(L2/ؐ B_ИgT$vQ(v]L>)VIH^R%L~apGNLQBN  {BS|@R!!@!H KSnU勴iÙA\e]btHjc!"حj܍ Y'⹔  gvDOgqogR^ /"U#0F'htj&k]T8LY' 2:nʮVPݪ0W+3"1&2m D3+FJ5kpOyqդ$sf8GtB齶+6o"#l7itX#2U~ԋHlN9a>a9Y]Շ~ ~ :~߽}FG|0&'ptGw'PG‚0*w S$EjbWa8P(T*)U, V܈Xц] ^mI@h]h?r2LgG[h&H'l-@-HpE*!HX[;irC6󩤊y:ʺuazㅾp+n NOA  tPsJ'w"kejv ZzY I>-Zȸ͡ c7Y[~ƋDht-@*+xzgLܿceZN @pFrp!4ZDE-{ E"pv, HTR͂0FZ԰B>s?kFZsa5+V(4Raՠ?U pˀתQRT6eʒAޢ-eCAoؾaO91XE?p9mRܲ[ZԌHNi8?!75`,*vTh JtoM ;(0~'ك"h-޸H@)2*) ԐY`9b+}J*;rJC5Cr}B -L/ / N8I0+"/Ac䔣`3HL+3H 9mn?\@/:.Cc=쮓> OZ pވ lYA0ؠ{B /G6,[21ˠAEWT=D3KH.Pw-lRNrJ,T&#b25NsB+WrV([m<2"[!Ԕ7B =TRE,fdi$ۗEPb} 蟀XC E k%7&'-\d q`DR+˪V"- >=<ֲVppFa?r1^ rk.‹C* Kt쀠i`ؒye/F, ,dcjhB} mRPl[XCfl5.˕ث0Rkh`m:E`P$=L pldR/;f $H|? ! B[v ND+T tQDF$>R~$E kI[Y vL@XJ &EA1D$63K Hl3*l'UA!PjzBIU=d pЃACA= ѫEJO'4z}zFB7Є@pr~\#ì8LeY-Q1dGk3ZHQ<4iDS/\ w'I"-qCȋ,E*&X+$4&͙H  8&>4!!23h+=jg MpƮ&ZhdNl'WvHNŒU2He R&0ymI/](OmAhp76Dxq{-Y=@=vry>"4CŽlz8f.P#P-$%` NrL)mB'*~AWɂz^ObUϡ'x! RU?YGOyNc#a9 ip'1&;r+&Gͮ6g0.mKD.N`:$1.,&p@DLI$LDgRJ7d ⣞\.zb.*~G BzÐlyhp(¼[!6?p(bP  !b&D@`XlBNmc b9Z̖# [&#gd&N2%Epr($tςh 4B0A7AUk",M^Q1#2rj䦶hDLЮ&F9ԎX8.J:&ѐOqj@kʭ ʾq`KA TnO-CBo 011;FƑڔ, ݣњ1?"HҰ^.>i@0cK&1<W/N#38#6Z(POi' /..p"1r11*N1N &,d&аhvB͌bB` mب& :ʭm-b:H$FP Я12O`2 ,$t† lS@fHB=A).p"IS _3JBXZhh"̀BZx\Rzl'O|y>JXt*FI$jG&Z BD/rWL*,hhRlv6ʔCDmnP/+([\ fH.$S;q2?ni ? -hKIP->)NbFrH..G҉HB2#1CH:dG;cٰS;i+3@m6i< OLpL DhDc `kQL&@O@-ߦsM@U|+l+4B#35b\pNhvBˌp&6[j4 pÎWd冎I'֔DԨJC\zBc *tMQȨnʐe`G+yo`JJu8̌.2h5wV"S*̂[p\᪮jFS,"!㭪;Popv+P?x)¶3#k`FR 51430~چ 719c$0^:DKk![5+4;򮏙fU/3nARB"LZm!iO2m$@DlV1V)ruGazkn+dHs$5IC+N2"_ B)+l(\% cc}(6 W[\HMHGCd (jL d%hbJcr$jwv rJ9 J%lL%2- 0M[ĥDj^,m+򰵶v~ll=>Dl5#?IJ^j SU^j4 4pUJ2F0C:RFk FaDw; =w: mt I@p#M([uFV@ω+Q;*66%*f_c3(,B@`)9>(ʄHi5gpIY< H[BD!E P#@`c>4@nթC& D^pgm3ǣ\W;qQ ?MRآ0 b`I"::7Fq#/BN$K7</b`s/1!QU-uQ$KغNBvsZ;ڼ.9F[UW?G9FҐׇj8e5!tHWs@D_#F{KR9l$n%(c0&GAc9n3?v@ͰYa' pXМ.K),#Nj%D]@ "cЮwJ C18-FYઢ ,b$ֲ)UdzP'D3NBDX 5z\Zxi(``"nnI_P;;)6-F]: C/*"$b7иk/q!4ϮW:mHR z ?@YcG3 3[=Zl >n}RVuԋ[v3"0.8E,&@V/cR?܉ 8Ҭ̶7jGPk;cb.&".|n  ce,98- Q24ӂKb.8v44Š&19^B8Y[O{Pm g9TDkrB!H;rmDj+BN@b$3a1Pr#lbJ82Bt bB/mf4I R1$/Oɿ`K ev5Zs=w2AJk`UVy`|39%FmOYw?-o}Db"g ׼"A,(^ڗ])B_|G1ryO#A`6b1j$؈jwUsSWGǁu%!Qc[pTS6H 2udS&pW3őM4d\X 5TCJ"F> !ܱ Wd"D!yeUP"${Q$AG! CZ(׆j;Gg~^ؗ'f Y~XQBiFOF*G)d" 2SNOQ64M?d? DѦ*ѰPj9O4rU]}dSOSZfY[Wu+sc'+G_1WzcjF\gmF|^Y6_aEA0ķyE[ns?YEGZ{ɥy\kfkߡ'B5/Jy-``|YyebqG߅fW 1qLM×Uny߅bC^eSR38]`#hgdGNGN]Rzme|7b]fBifxцpB,\vuFA,-ŸS?mh1a?|!"LeyXmD0<h- up;T=!f&#&L2s #:H.qGS4 AM Trx qVRqQBa@D"-iB+4AF2~;JH!ek,lAB>ɳ Iv񕆪$T2 ֕%sr-הI2)]gD1%G?fg w#xgJQ6+#ȨM*.D#C"(8qZ'>Di@ cS-I)e^(:ʛU*Qofq[IdBa̸xb }P yٞY<|*XKiV1"lj)y6aKjXÑrd2Ax~FrVthwZN;jF5cЀ(ׂ'"o|Td!ؖC[$M oB,dDd RgE(T\(( rrl->8Q hff91I 7)m ҶxVioL-EpmUL! R:`F5i z+fz9G> Wb.o-Db d< YXE"vb8"jm 6{-N~ӂ(5$xNw Pyڊ0\eE"]qK 9b1;mKkxGwTs}AJrIEsSXfӣXU=X*#j(B#`AI87Vx3SU5]$V'oza%voz5Rk#kPX(!1jT'\`M7&{N7mR_^OR-##e#P+)Oi2&E 1rطwq,raQE.e.J.!_8a//eb+c0Q,TBlChGlc0GeFq=wx A9H__ڇOw@ q! jY9Z P%$^RW24@ K85+4 ;(n V  25w5ܣ+>1`3g[hēDO^2wG#uYM#e7%.\x]! ynra%W[eQ[Bosɥo5- zdW#8bB{N_)P-#cG,Ϙ] Zkva)0N2$x@4&bӄprƛJJ7UQ=S&i/BS86;ZbS5xJr8wyp*D(%GO)G% ֚tFY`ڟ"=Y/Dpn0SsGHNxăn cgd?z6N{œGy^4hHH08Y࣌BSiGr4䒐ۗ7fkrD'1z-P|sy52`Pzd2sk;lڦ9֕:NU_j` heH>D+GJun` MîoFr&qUːF ¯Au eaSvH=Y=X< ҭ ̂%~B9uH㍲Jq=Q1e!Rk_]F!iJM!I׬uLџ!7>^gSQS{OG,BuE~v c gT .d[qKC` .>n u`DŽ6G5X.ѓ HZ"5'"+#?A|a=[BXbQeķxasJ4}q%P̩$p]Rh['8Ds:!(OkTKoqtzIJU>$W-YhLӇq}0(}  7Q/@!K *$b00urgeCx-ӎuܑyWxO4i_'->KiJ i ϻbN7 c-fHƀb6Ua6Dݏge#nMJ"s^$&5eGfFH4T`/WE:QT'Q2`CwNDq;$"}iqBhڜT_1m(͛"tX? xӨ0$` @)TJ2+ $Vv͊&f7l ۸ŋ[~%'aBɡ@Y& 0L-4ܘࡄ)"0HeGy/ʝwq8$zQ4ĉՀsРEx1k`tuhAvO7ȟ޾D#i0m꯿lAcYƕq@Eqǘj0;#mC 5ܠ@ qc+ 58E8Р1r<rɥ 4R"iOza^rh@& .1A8r#  ¶(X56- 3-2ì\:9 3<)8nЈ< .(#XKhS:eI#**B$&HZUVq 3 Z ,j+\6+ʊ)_kۋK)xO/j b1&3 9:܇4[L"`\,,LH5Kzb( CF7䆳X뼤Kz ̎PAtj{ H8nxjRӚDR7ףAd%+@*7RL # H5D'EQt)zٻ h q*Q7aSYKR2E[ÉZR?SV]<1&d<>S/b* 5HJ3A4sN olfҩtbR(Fɧg ̧P*$47Po7+).oHCҬE3 QDi#Qhof%@F =9D7md$وF$a5؛Dr Bʪ2ak\k`XCVHU p8#Prr*ԄkG$-m DJ$'@q; 'by*j6hHzbX("НG=X9R`A%*u'bSD@VE+`~ggZm_\9e 6JD46ArfR{v#0ߘS 2ld.U{SȰ yjCFjɨIR|)<~kzSRQ |0Pь,҂Xfʯe DliQzkS,G#,1Gl5P^g:ek@kPA.4Ek)5 6WZނ:T!5zW'-5~"z"y62 MlhsGvgsCmts,Uܷ,Etg}O/ u.8^h,دRAN͝H\X:#xzB38yl6P<<J3+?FNЦrXG6TjoHqT9SZ(dQ֢H7 #]{6˵(#Rgwv` ١Aٖ֮d+g9Qq£)?|0\`-P!'=Eai@jߪ<Wc|0?R" νN$[liʘ ʟ[c!w}^ː3J:˽L-Y_sYhQpE}% Sk-34p`ز}pe9q ~?4 Np$/*(zzH "!80K#jȒ#1p* %4@Y%-X h-U#4%i 0(`&b&cîHP6/ /ۑ*&s'S\/ۊeb A훊#胁Q :E0i>dYlYCFe<~' C h ѸC刡S-" {a"1s1)&F: 3% ++x)A ȩ%#"!*J#I :?22 qkp/#k!0#!By; 1ѫ3s;P[4O+ښh7.t4./> DJ*-Ú,<a;ϻ>\ * mH%7 i۫lr3nDN J Y ˶DE+>S]$>'@E]6lKL񹾥X Ůȯvk7c'X4MT:/F j cM8GǞZ$a@,);#M" 3G}'K@ (9Y2%A#9H,Hzܪ)aYI=cik[(9;£Ɏ/Ʌ H4, +,I40#P@ʣD:lʰ:jɯ 4Ya-QPo`ВR!xtZIw"*1ǣ朒r N]T"IǸ[$l%;A%;bͲ*CĵM,zءdU978*Bš76}$ Yk5ѮyC BrH##21**v4$KR¬[4,׈ Pn걉;7@p8(Q(%N,L3]ٺH'.U]RBSv\H홏Y` sNӤVT"Q1)g> h[QAE2D2 T l5sNN"h,$(NlLLI>H H5̵A2"#IQrCi,% xUx5pœkI'"d`] yK oFr9*\(zijc$ۮ= 'sՀ&."FAš[A@G$ $*[9&%h&9(h(O+>O 駱9߰)ATFj$!ax%+!LCp 2y;k%/Pj7?A0`inkL{5>)f bo10~IxĐeK/Q% M0]vlLf6l֊j E7=<tnEh1fDE8ᛥ& .$)B!ZBǿ H#$9ԣ K[$naE~hihX HN_)fD*bpX9ą<kd-1w,8BP2/ ,@/"74-IjljȄpW#Ws8]#qGrr4D)P:ee KyqÆl=Ҩ'y 747sVy78r1/X_: ]s[*mrLs"thszI?'sJ_"\Y"F 2R_QϞ\se!.2f>AhuNHbv>bj7gwv>9{i3A+bݙ5*(M,.*Otވ^Iϲ '5HmR 4L( &(>Xgcjkpj'5JdrNCΉC8h!8`7FB/J*di@" X)baDpG -FƝlת&{{y#wel5W\9n4bLhA.8hp D=`CjGj4V,?*j,Dw$āP5F??ŐбA)A@XQZF5؀?00>LS0D}8c* 8T 8i?[!N6wDw4B'Q$wq w-K. xbAbdhA֯dF5_eِiyEkVkn]Gq"s1'rI\w][}۹v|ܰĶ9<}7_5n,c(Yƨq`.cDge_A*c˼t#?yHDUtiFFd;S1Tcd0>  K8qB~3?~Y15S7ht/ ҇ wPJ? m)GĨ:KEZRT!ϦCSL*+jN UVBKU`DjKVMC-5$CQr7POj Ո"A ûA(F!RÂ>d[8M0A{32tZ݋tű {PC&PЋ^DNA(@AM-B%,sJ\JKd%a{Iluz|1i_!E)bBխoZ`(`*Xm0ԖU8-`-h~[ѨC 5K:Y2"FGaYxhֆXTb18-ǠF)T;1dqJ>;iybh1c1A)T13jDkрܘmFkt4tTfZDhLX5"jB74HTlp l !SXB/(Ld +giW *2QTn01kANl38b >P(a m.EAK$9?U=u·(HHI驖pdURw>ytJ0}TE4_Br@< Pv}7lVUP1ޠC:xUdBnvЇ6lc+y2m·8c-il.U=KS. ^U!b:]jx3 kkz ({Â^H0k:Y $DtAQ @.#/Mj#C>4[5>j@S3ՠ&NTb:ՠ {VJl䩎icdkVrE1 T"̄+iLkdf=W N@'zQ25B&%N? P@q.GYO׮9sJUȄ9.ܭ㐉̕ieJaap5tu7MH5ʾJ [lg/UNS}(#o ;.ʩ%ԃiIT\Jc̙EYTA> dy˰`zoPD=!dnXLhV=a` jv`!-AZ!dq \E^ߩŁaLFLc$QNE!HdQaތ@đ2QH%X|+eNd@R'yR^?$jbX+"@J$f`&?U[HyH/&iyH\J;EЛ9c{SG6*SJFD67:E:^\mǹD;cVW( U؈ie` D&dT XHbHr9y`XL|LÈO-H'eLwFҝ䙥Ux$jYv]`eڱaaU&t!ԅ]F/h@5`R>Sj!ġ)gtHPFuU@׌?ΌD.`!(#?ȑ2H[E('q'ab&Dd':f-]`&2TWɉ74r [5A8WDȉ yAT1^Ӯp@8S4*śG:D6l:*dc;]#:6E}pDUeK<;v!M D PtuJw "y$$jyIG'XO=L.k]Z-xgz$J{GW\]jjё̀{xdІ^(BϘ^1.*Z`bYKh(Td$ͨb#dBeQ)R ] 'q^^]~\^+lT@\N$ $A4ީfHN$CDh^SM\S@ORQ(P}O9i9n=`"cu<.ԈEPB5㮎JU`n}'"dQYπţ$|cY0}vk*zĨx.̅QyRm}J}NkY=- }dGٖM{ gLH hP:!sD4ȡ@Lq͜hU(ZƍIx)OyWd,[*9:)\ʞ-5@@l[d,^R$fBqx *u-eRp$YjMBA|D-[< A ^<$*Hf\<&'Hm;O`sޣF %. \ B>$DI]nFݴʧ}A?Awvq մJdPGlQPq k} Z)]yJLà]ڙgϼ1FgPU%؄H¡"FFn]U!QBSS&F|lHY ^=G(ZGkBeh!DA&O[&F0>?nUQ^,^RRdsm@lDtҙ*5^(0,2ȏA)tN'3UTd&潍m E@_؎-mm{IH?i*pjbK 1-=^\?ȱBnqV~qPJ5sT|$̲ֆJ]UPYnHHreY-+Lnԇp Zr V?҈Q" 펆|sPF8A#8ȡّpׄHb!Niptqza!Mh(yi@0"[68@lDiL-u-Y,L[?Iqs*b'@*Ue!ڇT,fDvdO ik.(hie`CFflTqgJ':!8J#qk_x+1]1b. Q1#KCQ?[+H:uS뵲"ǒz?!C 9W_Qy߱xfk^`D >A? l ^@ 0b{WB=HQ @h2 &( Q,U` НQφM8_3` \0H>NP.t@.E 2@1Au'${D`0%:6>Р_F s% \9H#Av&IG ]$?'/u_ ?׿ ?_F? ˯ 2ЏA p@@0BP#8EDN(6ddcB& 6v |@ $QHv< & ^|J(Rƻ"0!/C20҄S0;46G4/=a'}h /&02), ~.HC!zɥxW1&\  Oh0_}2( V4i8 X"fsh"L&gU`br-t+-PURc`  N ,$:2R| BSq8\fk{7h"4Զ)G bG7Dd9OHq*9i=rzdI,GK)ՒrD%JӇ&I(K<\GLu6$ L&N|QE~r,//)Hr@b" BС܃MzQL,ɠ 8 Yb /~HG+\4$C.r1 K e`TA( J!_) w \.cS$`' e_/L.A##'R ЛM^E$eS(NѬUyק<-ˀ"@ dѐЇ̶"!By~&"MaFH)R*D G+➴vr(=i9^6D3EĦ/wj"]1"l)t36E7;YR9@J'DQ (e8 ?`^q~d 6VEnkAV0\"QIQ$(8J9@-jqmV)2!R,AfJ^l U/S%V\dC!7PD.~ _ZJdI XP$15^Իf4PTS֖9i+sztAt2сY""1S~ <> r !0vh?P(K~m+4bT־PZBpm$QrI*\ XiI>ڀ\]>dn%-RB]&-JHZt󦥫 @(}{IO#L e/bٲo}7IZ쫁$eٖR YQӒ 8<־EL![L\T)HrS/AHc\@x51FdMkj DMMj=5vkdHL5Zr0zVtei^Y9"*pQ:Ix47t T Fel^rҖ46nH˙G9iik8Z5~V ձ-s^rkwg.Pw))sL[BfU'?YS$K.jxȓ/u BB ^Q la)GzgY<r!3Ή`Nl˖`` ,#ϥ`,. -JFnL0/Brb^Ld3(-~X_B_bEéFc4d;&:@N#κ$dI抋e֪eh^h  k3DC0(4Emm>K28ʹGDNHIrCOViՈd.^my`_Ȅ$KdHDJdM<ė *c,<67/X#/6@X#1|@žl/ $'+/+pj  "*P`\.y`3#zbSZd2*-r*8*-H "(Pk 7N pƸ| 6HE.#?C ^5-j삔 a 547O3,-PcRQIҪl£;xF'jp:0β:g*-CdfѦC$C2d*domD?.D,m5R+GH?1jHhDZVm$7ojLai sdDEN$iLH.JD* /qz20_ T&"^Ȃ!ݦ{Q9#7q1CQ@58"6eF4~x{eV̇z!,2- ;-m׏ 3z85$)J0V1NRA/$Hs?1Av(3F!A}5d$,N " :gg(6Eã,ʈ9(=f)}tG' OI@rDHKԞF H`Ef eUK/WI4p6*p&G<.nlMܴ>N^ؤEDNE^edj/v@?C20fyV2! 3G/^[ V7U]QnIS/6b#&#qg_0"[RYMuN ;7=N\Ej#bZBO[B0<aVP!<]yCv?]* T.@J!@,h㭰p`v{C΋c)Fk k4dmW~6 Gl0)FL8I}gP:GZq|.G6HeӔP h¸3<mrǒN?N "NB{h/Z&20 ^&_*P 2!a"p r.-\/8swT@G`eOWG ŪP;&F"d)os@HDo&_-X2OonFI dhM9nDƟG'--Љ>/ALyr+5R#mf[Sqs<&È8s3/jǺqw:# ``,.fݾ|2Đ+ >-">DjQ- V2s5elY}7"ol[G3[[7nJ9K2dDr\R\vJSΎ_sR|N4[gΨ q$BT\D??m O,P@H0k;c+yM'+wJŴ/[f{[h-HfydP&t1"s)p5#3"dֽs87s7$(G_>7?Bn7KaqWPj\n],]On]-|"=v#ȨYh⪍,#c2}8]| dAFPYiBYȵt4R?1.Sf$ +P`Æ [ EH A`DA~|qŽB| ͛e!Ο;#JT( F`43U*ReOEօ_.O *ȒehmZ]ȕnݺr-޹ U.7*`„4Ar`;`6(MԫI5{aRn_&6To? }L 』8`R{Ls'0TLį|K2Y~u'2`|?ނ 0\@(ǡ2ǀH8"C? b|Œ 7E+.4ËB?.2θ?^Du6 Bu ^C 5p d@cyAah &_eSavn` g \p&4 ]DD=G Q 1=H H3D1%f?@N:S6PTHUlkqeVYdVXY%;V)i%-^]`qaس,^~B %RI% PXeaY=tmu6Fc3F; '<6 aqy8oeL63?>P$2y"O@s/wt-Aܐ Uqy}7t.c x wGG đL05}VYrP^/4! 882# L}c 0=΍BAD@Iwok8יLД}ry]BYA)%8%R>ιz~бS.Y( (A@CDF 00aF,C~ ;A#wT)PCBLs(9`\6$.dk|^ƣ%I>n䏌LD83%'IJ/ےdU^G ʤHWVNHԧ``Nae6ж{† 2#;J"0^6c")j# C<T 8 B Hy +E/IUg. _'4- XYނb5c1+|+.e%lDO<+hdh%*Q]$ Bؔa-)Ms ! ԃg ?Co8u!!Clv9͑% tT;9Uܼ(#JʇnvT45AseQw Qm!hH zL,|L`' t)-R=u#6TuCP0&Mֶb6eeLVNNo&Э CbJ̗B\?2D5w!ӌg@2 K,U*R"G ,(]s TITmB].Qo54 EhOzV~>J/W+-BE\ Ls&O/8J_4M/r6!MuqOy  G5j!<$s& 9ιЪ0gKa;D% V/ևLQ@) <#'FVZ"o4 d͐Ui:Τm1`:tP%Hmy[[6!!KX9Iȍ$l1ufH,4%qs :YqS9̤NJBQw Ҙ$%' dRwMD+j+گ[GP~(В`-d)xC DVajƲ!+`W眬9"PP{ HFM"o>Y_jh0O+/#_0#KtxbR>DC6TڤIykҩ_="ɨ p6TRsYPl_&S4ӴR^չ8*ټ! {$7"%C @}kwR{wo)m!(r,tgIBZ+eܕ6~"Y._jݥa6Qq#ub!/,r5r,T<1Sc N qw pd9d?G0!8 C Wf=ސ ȡ438S4!Y3ri 2#YhrgqEL (ygA7UF "gbWAZa o% KWW R`#5%b2D68EY4v,u 2j/2j!yvkm88joȄGTd*;jC6Z!zJ'dmJ#:džLk#{\Oqp/0n$!/nA^_~}Qg-`A; ~C, `B.c-|'Oer%A A(*RsSNc@BsQC!Q`CQQi?} =T<$W6  R4Q31Hp"32iR!7q !ow$kX67aFahZ5mw5Aj IWiX#y57i!XB2bSiki`6EFwy@&A@`@_ RHAAAe(c^.eS5Q<'c90TI} t-t:g;wQNDHTNu Up$Y68"3It5i-tVf8 t*USGt%jMRy( (jE83!$DI>B$n#L n %U&kh9%&f!6m6Șyz!e ;y!N/C}^c^E-ɢP>f`uCp9 엜 ` &z> B.\-\$& ] R+cYB a) P<516 t6P 978Bg*s=s0P1Q5 ! C T qWlzaf?3E5BrI#gj"3!2jtvevNvvՔPg ܡ#kF5H&B%!3{ԣ=J6XH'7oH4YdR!EZ A4e7m8XR2sJtӴŕ'::L{tzJG{k2:eW}q/G.Ũin04oփoHBaϘ~7?g?PGj~pp_ҙ*yO)9xqB#VaQ j*yq :8g YCVCԺ96Fg"#s5N16aQm8aYF7d&jDG_2 1"ߑ{4Zt>ڃZyi$EEjH"$ZQHIZ#YEZVH7"^:gE%JkJ`{u9'G qض9w\%m[;ͥq^c /Y}S=wMoYPy F```pRL~5cb@"ABЂŝQr))G߅crSS:Ik j=OvkoQTzJzIr${{qv6(:W5 15^K24Q85=XUixeZ("jY}]6 \ yL"k<ͧawf9 9l΃O+i_[Y\Vϧ9` c[|5k8uIL,RQ`j C!*A 7A,ȑ 0Qi1y|<$B3B? 3\B-bkJV =1uq%"51Fr712+v pw {,UUFE2Q1rG8r"zăX@Ji"X22o uh$ܼw`7pXJ,243"(ARGA{jMc%GKllR҉J;@ )Ke{%N;1~Z-e{!B?|!QyKՂ"ۭ~ FJa֨u?"qgAA9Aυc(5-7-S`SiOfyBu93!0c 1072Y CT={$ xۯpj"%r^ydVN־{E"L"!r؈U7vHU" ΡuD|cl"+3$4"IFZkx<[n{3lI[\Ѡ[X.C&c5]7le+/'A^MaA:`zePpxJ~?^.4lAN|,=@etEW{I[ᰑYLY3 JQ5DyKqZxS0"Z$6xs]6fW7mSH#\skF1A"z׽7Ӡb3U7匝XdV7)e{6e! y<7Y^OYV:8WW8J39V%۳[L\ hrm5'}^۞3J!_  ~^m9)!^Uh,XQ~bp`_`a z+Q!4|ۣR'pl90ι|ԀIDaO&tyzk7@HtHEY4$N|,w9cV7Kv( !:[q|3kdᡣFk=X@#Y$K6L%LLYo5yVkUD_#eeT&9l\'nZ#6t h B Hhÿ*"DO|)L,Iƿ (&5mڔ/ <)@'I:UT3翤IEz4;J4ϟZ%a̿K,C~gB * |)'3L„I@\W>{t1RKeŒ_&(,)Uj/n D)$ 0@L|\l}pM3☗TAQe *Oa2AOr& &\It&Ho/` Ѝr! 7 C" B Od7(b yq -CK` ( .LR)%I2YdBFl "+ʄ (蠅!%s"S  HMbHt`N")MU*)Mu)Ojʩ/`A -rm#@()1{ c0lci[8(,L %(%8#4ժi.GyK1MȄ9îm(I7ޜ s/ˮ ۏ+疘 <&{"ۤ0PB8L ) K-=oHkyF&qJ`H1<IS|rK z;K/l3N7[M:z)RA,A*#E"i$D$+%O:JK2RO)K[GVإRR:է WAsZW]ٸȭr+BKz$ve5i%u%;2;_1#wLRӶm2S1_ F҂+EL8 M35LFי$Ylbs#:E e(L*̇١wF!0 CD23C=ܙ4lEl3cgb@*D&FQҒ#$-_7/M |Aǐ7eMp 7NwG7G "*`W2( *$ȡ>bt$'M^QS$4X++^wTqw3ʧ7AEWǣF'#eXIHrcI/{{Vc>,E䧚\8iN#Ϡk\!Ulo]2h7 @vɯrq&8I#3<`yFDM E ;9ʎAd!D݈4Kzlb h''CtDP!9hJj;`D?|v_ģ\F }7:q=':Nz`>gg5Jg?م::Ah4D>i5!QBzʤbBh#)/ o \Θ&gJ!dG!;n.rc\=ʉH ޤ)N1]P65mvT0u*JaE 3YĒgCR#iiWѮɢ?"=&lT`v ^Ĵ7961IU4X.3CC!霸1:ѐ0<" ɚ' ]V/  _sމы$o2h K @F%#dN"rgI ["ҰBW$xk". fARXK-ԓ!L͒z9]]@zbX1E!U(tZB}DrT\9D$4eu*zRPA윒y]qQViA1"D^f ,d$Q*i@H&F ,$%ҚbbK?`S ?]QkIK `ή HtC8ndAZ?51\GrX@k5l;!Wwkq{v$ 6C l9+# ߥg[[sk25 AOV; _,8$*XX*A4)p˪scl6I"~!#T "+&hж9Ѡ!>9 'xk_[o% 0(i0yS)QqC8Z/79-R#qC 0C$s468E!ős?H{cB2EXWAO3X,SȔk$: p :EZjv:b@a r!Y&@;ؖY#0s5 2BA!"q.bꢈJ(4 i:c6 zq&=XR a*)򲘠IJ1vJEJ qď#ZiH*7ALtɯ0ESx+)t) YH q1 M7zi?4q9ȿt &eR H#*8y9E!SOq &#BLa9 D@2 FVU VP$1פ:Z"L$Z\b2 4(@GR gk䢘1pz)xU;HbˈNs+c E+p 틤 `[4`>yIbIc֙ޘ Vi!nk6 埧lJ PFx 9!ܘ⛩#ġ" p>ѩ1 TD qɚŻ̘9*)maYcR(U8A>j k SFa?uT" UYY OPƫX4L͉[QZC-ȈR d ]:4 ̣ <[68/f{k }.XЖ\r-1 9/K1Q4qC׈8QIs˜QXk1K%Q1)8~Q(E7iL@ )X?R4۱?/uڎy88Ya7sv3Bb/ E ɚ⍢M"DPj~ DnrM˻ ~#~e$R1Vukp6_ 8Y:MƬL5U/(,T aT:,Fj &˿iAkDʫ$d ZPsasw vgzmȓt#5'^>3RkeRVK!^In%'aT?AJsb̵ickcY¿v6 P_0S8s A߰#?g>@xjdߟ쩀O@~`A?]}T0I!G:@` 9qنsN~.ђs|as>ى#3 5[!񸆽"# 'yiԛxKw5p&i/efu3I.6BĠLiLZ<¤u=}c hJ6WďT&i>qU ϩs!RE_nD77H9YE䱵&X#ywt1V mL9"3m9^L` X2OSF QR19/0 ,5CY İidy_Laz6v*.YwVoUaУEgsEd1 R'r7+h`;aD";u*OVL%(|cKEڽB { jĈқg" Wjɕ X@SxzQӀqr }|g Hw(3?Hb%j ~JZ35+͢ Bĉ Hz a֒w~ayNuynHuV,@?EG@&,HB hP!C5&P0ÆFWR`Ä>(В@|8d.㙒e.u Ҥς>0)L*UJ`SIL+PS YjH=Rŕw +iwB܆g Mi xBF6h0wr>kVmGO0wʂn k<]\у&ۣ ^ʕ'SP¿3A.AEw| իO>eT(o*s) }SBς$?OT(^Q(XЂ<8Ƞ!CI?#N@36&@2VITRFdZA MTcCUF$j:pgOq ET6I5Iә\AUVL ՐS1fT=iŒUI1Y=5U|{U]XOk[\E`R_wѴY[驧iI&Щ$<:y6hNj}+!2o)[nd) %stж p*nO۟`0!HW)m'%xv`q!QF"tJ$bPb%HЉ'p". A,F@I%i9$4tc;l#H#B]tk3&=K:tѭ%gLO/ eA2GU'A-W_ R^5՚ao5(W_ބu֞gV X_՗^EajFn9+Ŧ]*dkf$cBVhYjH=*=nuEwm ]~-‰;.aWP (˟k/E^ A=~pw?(F,!ى@J/ 2 aYR5$D $ :h!pV3eэh֢(mZR#$IAs"B5j! J^ qF x\`%n& 8| bFĭ'rLJrED+ [Tȝ(a~"6 q KYDʅLgk _8e9OeQHEN+J9i(PrO6p;A.Vz jVSKiU,kXBֹp'ay7.,d,YD % 5dS;_"O^C0`3 ܌A8zDBtG=KHI"фuO XDKFC'Ғh2M!q DTql#ٔx2lq#Dи!Dl/q[7Q)&09멊g)% _ǽpE/g3k[ܒ71Etn@FD2U5JOƎ4,^6:Q+3հUJe$ <ҰA8yN"̎kF+HS2 A/](gٓ "DM,jAAA)La:T"!@>pf.*oLi&-HQr.Rf'C,@b"ȼ/: DnBږ8IQi*9hmJWRmP{QRu LY'GְRNR}9L[Т$2(`Z2ǢiLYm@+`Vu*nҌ𮄬,x΂xdKZt8sr~-r d ÖK{W.4Ouz$&:E DG4xRTuA[}(FL~D3 8#!"dJ.Gc&gHK]אUrk\ 5&irӚ8lmtˊr!4qTu TB.xv#UX8X.$ΥS 힥TpXMQa݌ Q%xQ!lMظőXF%W`NEm[ԛqN})]ɕ1fd&fski`"4EOOK\9oX1MKq(.%r΅dǺ|τn=GL\m@h5D\|EF]Ф=T@^ݦԆLRnCMGWFDaCddMDh-I1(aJDQD橉ITFJNiET} [i0Jb@b!eb\V"( ((2V@Xzee"#ISkƆ- KdL1-r\!ǸPu`z˞ (g tL|w ZVC Lyp=& 4&M] TqME5#G壭C0d ڪٌ5dZ#7A{- ̮a 'fIB'͙ӦōW@sTr>^N9[ؤ$zd rE[Sʼn洞D]i@#4IeYFtt=(>lB2Wr6k(\%)ψ(R(q`O^:/\(l :xxt^Qڅg 4fהvTcAU j&lTul LJT& k]}& B%ȯާqr:&fa)XAFID~f|͡OI aj XWX`jM社xJWd|Eqj!q?IeTRz. ++m++(Nǂ..[B+>֘d9tMO_~P+019ǁ)\A,5eFZH։` 2T:#]A*HPc}l DJFI[HFA!q,=VݯMmDMRbɗ~9P|Po"LLMf*UKA嵉ENe-Pk-pQ>_#" Va(SZhDd(Vf-mAS>Ӱm?-ְjuL,).Kύ\.%p0 s/q$lfA`<0ȾnuоLb,;Tu#Vp])M<D ޙ0=Vy8IAn zqE#n.X8]&Hى <K^ѸrB4gnaQmU./M4L0HUXY5U\V(hH*e A&||37>3 q39 S. sV&D(xYlY+풋">81݀|/:O>@q 6nQZ^]WWW%lCI6ZLmt9Z| `)8̬Iom.qل9Ppr^gM-2rlO@irKdyrl!y-\[\W%?}0^*~vJ3/`󁆭 `M8{ނ380S9g™meeSz3qpsߚ\+j^.Kk11(@h`2]Hicq5. xHks{)dpn i;Ofb׌ݩKZm)]8faWDhDG<'[jNGXU1XuyNxEzxTI-wPE][h^sX]XJie^^W[R dCd37sBDs|s OG װu%e9jF2Ynvs..zOq:kcV(B/,G|O%8pi7B.ˬ+%ɒWe&5~)}ƾˤNVש4tH|95L<I `} ľ CYLĔ*ŋQIr{i&HUF[eCe;^Vc/\ۚPM.kzbdUHIoZђurEG%Jwє X.Ċ9 XXEv16*`agĩj6/%_ ?{8ކvAdBړp ϳfNLz>>]O]wGtKobh0A :a70x@fZ4\ a_F׍ 4,BݫѦKȍ|ջLNC)>ݯ@`7?ؠ :pp@"‚/:$X r8?-Dx:$L*gdit q(> E!PN]Nh˜ Z& 0* MO~:AAڎ\mժEL,B0ῂ i_Ń]|A} b֬sJ| 9/x:֯-+O@ o+E{ j#xյU(MTm Zʔ<0`1xQ"lr] *ĎP?8Xq" r0;(!PȤ(0ҳ>&"8h ?$$ i!SH2?eLI8Ѣ:Qj F g$42 !B LZ%fZ꟧4& *& Jx˫z M\ .$hZ.<3`)ؔ (k {l C2:,l "3H)l0I!CNG5LKM5LMUa5PC6 $hjMvHN^s.cr + >g,iҽv&-Nv-ljO+GYH-(>9$$U S>¥/YEKV)mic铥4&jTd'xkfB1YBeO}R NmSj,2D!\o<5n6ÙհnEܬ 7!qБnt ruGm~  !׋L$~&^bC"`/rHETT!W'o20 dw)9X';Dd3zJB$dD2Q| 1M8i$'́QI P6MNZ !D(=-k׊ }Z 7U t( DTSa(0>L?:ꉥ1 [ņqrp3U (Gaq+c90gKq|ʷ: q}V+  `ӑuz䣒 H~ߎBBY.e*NT׋4!:Ҷ xILR!܉"LF)beyS]:(5, \[`PۙM3e萉tf c@NxذBIMiDRjctU=Ѣ /F:VTuF5f' s ;Wb?0,}C& Ip7;@ b!kB$uT= gX\8F&_,c)c[Jď I lIa 3dʎ*>ؙZMHEi9ZM&mx?:ZOW+m 0jU`96To-d~ú wd\CŌj4\>qѱC w鎂Y9Nw{|Rw#8C+cu!J&vPL0N2Đa]٧BGWLEiXc?}֫NrR|v78;Єg'kƴG<2ˬb$zBV V(` qᴛ?h26^[B;?~0z .ըِƶDb x񏜳 N\bAEUYNw bpՉ"t ܡu].Zd&Ljfk֓Z $߁'!H )`Cde䠤b'٩ JΝA"WW"z]#6֛ c席A<\W@[F67x'L Դ,o2[[]ek\5|0D*1pӛqSZ}S>Bp/@OC?Zn"kV(ӭCYQǢΨ~*GH/n"&g\ң!lT¥e cת#D|uj| ʤ%{̥zIc$d!GvB?fCdC}; d|m0XGKFDEꕤPmɲf!6-h,j̘00lʰoZO&| A.0C0Z0TPø=|k,vж0 -t.U'.-XD9pesHmONx,Zp KZJph݇%2~4Lx*,>f|g^X@v&$#'LR~M @""^ Ȃӎ@m0[>0U<e(<*RhŽ jBk> I2 2jO!QH#/S^sGg1M~s1(n61&p8pӤW:K;ic>#&ֈ$xMdvf=T%,ű~?2J)|^*}Fȥ+S>B$6@F-yw*&^ Ud<rND?LFԀVKO J[N Fhrr ) 4IH/Ϥ!v(pRS0K0V -T(K S&"(O9YC;U&oڔ:<7P=%d)>ÎP,*f ?(Ray0$I`}eCJ\&1hƤ|}AvH@uq >WFX V/-`1\d'|F'3(Xi,p3o.xol$O4cv+7;Rf >l8՞t8qN]7k]U5ʹ GpOMs5:vN:"&VfG=d`Ns [B* , Pđqx2"dT""$;t>l-2(3NL`6bECjwO-H)PG:)8GޱDp6H\f HN"h$Phlgn!ȗ+NDWjRN(!,EYû3oP@l32n/lk XF:vO$ǵn M]}4T/9=Gqq 8XF%JKas3>P% 'nn.H,QCm%$>!Rd(@R|j [Y |X[{PȪ{k-~ڹ=sql5sSbp+8Ub%Ղ|Ƀy‹[wڇOhXtc82a߀widNB]`V!fjda!ffENɠC;k5Zil &f6\VgVbismZb]ϫ歗^{^^wV2t`oQ}-$AUHղvMOdG"]f$Q-C1~DR& 4nY+ԡh F$HՕ@K;8M 1PZS "![uPC*,`]\|n`\%XUVUREeV(3qؘ:iWH䚇'vC>ZN}T*g=dnV\t=[mb jӭŭkFU qFbA8o9PB ă|L{[STMa$.AuIBQShԒM8 -@<`@@j|%pGCnu.~WĿUOW_SNaViƭQv<,Ds }ZiIti|H pK'6W@%6ĦS!4uV Ɏ4xGt;{&d)> WspaM75KI kr-]/dKL\+)HjgY 9**Nҕ,s ZIfb%b~B%O`z)ߵbTe L2D0DDt3of9,NC?xfsH@I|5jt|BXgo N7לLl`VTeUm!H{mۮFő! c(0YqJlHdh <[Ta%7BKLJ>jjlީ8I-q[C&J 3pF$NzREIwOL$c$MHf &Mnrf';N#I@3Xrl@<'aCdSSRhLZ@لQ(PM9щ ֚é_D5C6XҕpP+G@ѻ|8WaڤD%$P\rA 0a Ƹ:>,+l" e\>UVsڃn01Cv/C㛔F/rc!?b< Alc#'9FA |fWx%tP̐ arf˜ 99+-3A<.!XʙHsP 肎 1?1Z|cKezt>gKeh&bi{ %v=FٻM޾\&9~rth|w+^7 :W@o/Hsy4Iw|+@EP=u˾O<?Xzů+Y>^ڃ:C0/ӛV~O~.PFT:bo{Gwghu~ӷwgz`w X xpzX׀z@}'~'nG8؁giG&ǁ/7A68 AX~{vzOXyↁHG+@2 DžyWYxu6{jg(HemSm~@t'wF18}m 1 ׇф@us(vGbHd[ǂZ؊mwGnXazPhxm7ᆕhu.X(cVxF8oh{m0yy~%n牂pxAэzt*@v.Hu{x'HO|PHV8*@wGHH}WR{vHD؁H81 1T4iG)|x'{ G8hNIxɔP' 逊njvnj%ɖYG =h{gH}8YWzhzX헕H:Y`ǓyyVm~tȉRׄ#ٖ{ǘȄuwx2tqzz2zeg^YxuHiƇi7xznX˙{ YI~ow`h=(؄eGHE GHy;Ixwxu6HzysɆv{Vt?4iy* QX{iuA~hh3I~ |ȚJkV+Qu}!hKz 7B m2PQ sS mUzYcpOWvIikJo ɦq*.!,T9C! xRTXBK3(%3gIR`EOG5C<)6E18/3 J9IkNV5%,& 9/:fGMeDG8 V@J`W-U=FWV0 f[A ǭ, _CIF4?ڸ6N8D@.7OׅVG!V?OgWZ[鼣uNQȞc]ۯo^qPVΩe?{ڈehP|zcعwT\ec][V͎𸍨aa0zE҃cmIj@^aX\uK̓i76'0iVޗeh~XyWmVmHJ\>Cl[sA&%tWڅ^Ș{ˆdrb{PJE^Cx\a;=QHhۥ|qEŭhaǂgvJH͵; q]`xKƕwԤWLbASOvTpDUOV1)uWk`wc܍mqSꯃۛtv]I-(>2>zA-N8ucgZ Τ©}YȧزaRU6_άP҆[cF$m8'bԕhG1ڎ^oSa4(чm\L37m7Q'қyMoޭ­paYFӓa+ܚÈĮ͎ey⫂ɩOOOp쿹lqB:jjjuuu[[[0YX6A*3?Aed h*\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ɳϟ@ J̔H*]ʴӧPJJիXjʵׯ`ÊKٳ;ZPϩH:O`]x˷߿ F|R 'P}LePHc'S;*ӣ װTn\nj6rб Jo@Pj_wکuvGNjOËGiK>vH_`UX>5`^߂ 6h]7oVxY=:ՇVvQ!>Ӝ EHf}1@8DX6rX`3F)%ZQTieI!ԕV.Ry\vBhlp)t)PgV.WhW:>X_ݩqّ@z2iL4G_k _ \S@w#ueqc~vCv>XzZ+kh2eME@Nim_)|SgeP*%_(4i%:@1jK=ḋgJ s}=7P&pP6d sLLe+i5GhV=ާ (vwHѫsߩ)h"8<?)- V&śD[ht9]ytP]ءYwr4- BT]E'@]e8Jw9NZ_OR鹫OI =Aq em)ޔ(U;nJ R䗔= w /@Gk`R$X D?HQdZF(ςV `L70o BpG 2@N H"@&:xH*ZX̢.z` H2hL6pH:x̣XG$ IBL"F:򑐌$'IJZ̤&7Nz$FIRL*WV򕰌,gIZ̥.w^ 0IZ"@2̾pc)xf41gRS֔&X(!n† 8.Ü4YmRS $K39d,)d=O쳟)a@"HGԶeAfRȑPt (7kZԢ$GHCJxԝ4GJSR+ K[Қ>-JY=)6ߩMlF&lRŠQ(_a#%T+qUd)*Xb+R} DscP0i;?*R D%(EWxﴩMc0nj@fP}הꔨu'd z%Ru@Қt+TjhɚծB^jR ֞u),X,+effSj͋)<5gJSZ}'bԁ3JegsF,mSY.E?̊óMȻW)i*ZԚ־@UL-xGeh9FGQHp+T ԋrm) (,%n`ԩNP׹a.< Gv'x`]spy˫~7!3HV-YI+ Z5Vú_*7忙R*kf֏Jz5K \RCR9+"FKfRl7٬RBDkxheNEDJy\m}3Nc]奔4rB x/mm gΰAW+:ÄpMl\o"eKl:5lAl?@p`60A@UR UxW*IG%Oi,ju裥j|)pu Gwg3ssS?gUMqB4%XiOiX@͇eCeq?hɬ99^RzַQ{ʡd9V T*JgfuZRpخ!)_) g37Cs@<;KyJdenGdaArOǶj͋cW9>iV?C%L_2_PCyJ5IK: v4;Fo`%ӎ M[Zw]υ8 mqf9[ :&|J/,Wnz>&y)z X^nz ^N^IePd[iNZo_D[t&[fuvH}pGfnb}6'~RNx~7x~K~HagTOpmDy}f]wyWa|eh uc u{'UoX{oJz75Ridķ{"u(oApoVw( ^Z{y\džW^xO6tЉ082`Ef w}k6~)1g$D 67xa~lElhx>-xWwf.FM:hyKmqPOIl`?WYxXp{Q{UU)dHt~Yd_Hd 61Is{|՗m|p48QhwWg%y،IqwbAx$x|gׄwUm/r_HQ`T^牙(nP\evzIaBsD\%^؇|8NAWgu(|N!p̗ەn=shV6(nH F0vmUggRǒWRf,)BH,5IlIыlwKxRiW(WɐfvL9s^Qfu_PyttnHq(^uF_M6(V)h\uә|a<9P0 ndx 2XQ5Ȕa.}R Ƀ׃IfqLHNx\PHq+wf']Oqq)6םKAe;84Ɠ荕(io膯IJ鎞֔ O{!H|)AvМg@*EzסLZ]7IaS ɴ V:v ӷV1xl\ƚU^saξ΋HL <pMKHAbmDmbO*U%P>S`!!J^VNخ,f>+ߞC9>jQ۶l-*ąڝy|L>|g H`)YA֗֨޻\K7TR>@R1'&. QqJqج#tyi+~`^d݀ӌ\7FO{.y wXNn&– + )L~٭Mzyhjόݎ5<>V[)UxT'V :*?+ 3)A6'MDٞ}o GI_Lq>_K}[-M.Ԙ:Iaտ4~.Orp؝xH h ?O+Z~AǿX 6̡È% ư]wMcK21%F 1~$ 4i2'Ν9Yii翟<$CjɜdD6J`TMc:H\tU,e!/Zm٢6ٱux,^HZś` n9A#:.Y隐 FydPcH! h1)A8UB,eH$. áC`!XzRDHW4˫ֺѭd-m]|hˡp'J&8ܦ3Aj0 '5Rė. U/">*/VK\L\3RV8nk}SL4AePWhB-R#fCӃ5|ۓh O_NҏT , |2Zc kB]FP&36M3ьXE73v/̸㸉:1AfEw6 =۔4ҁ *moSnK""H2#PG^B %_SPPAjP0DIXrS2fmHE]-oԂ :ԢBH,h adh\CCrCLAL`6I ЫJr-$rc8`!UaXc0+lוqz"c(Xo8'ޞ~1dƨ`ߔlOy4Yp(uQq!-f5N<TзJ`dR4IE mSF&/A$j)&JXeYs el!tZ'NhE`=ABɩKbEE_Q!C)Vc:c!72.oU+YCHNGy^5w򖚳752 XpIs,M$Af'.":S`.iǻAȅvbHȼJ';YϢcNɲ'3Dn`材F4#$JŸȂdvY&j2MUuɀ#(F&颱Y 6ZCr*件‚]ఈ_YEMX"`P+ZJLGx(pvhhr frXkB'|5]V\(AYyB5E*g5R5V;^B'H/׻lNjX1kIkT8ݤ}95jQ)k^_XjUԝ2}{Z%%+#4^\ !nMpYF8G|S]ױhSæ7IWmV(]qta\I=( a_f -!g\( rvEa9@6Ӓ/xNk<@TʢJn:̃'"0 ̑wL44Y<曔s3+6> Wڍbm>'mmҜBk-3HFUJKU.2KMJ'j8` jµ[amV%!F'9|b _~ ,9{4-G >>Ms9ɿkЄj9оL[ :c0@\+# CDӜ3sɿE0Ҧ6;CijӬ3c@;"`6n#34Ä/XrNC $$C9:CS;0C3+ĺذ?::㺗0!I28A` 7(u@Fu娣-cKF m0.Gk=;#;5Bp̚P-z>L}$CēGI#7/ICH/9Y0$(M4ӄȨ&C$הMq4EHsp1|I02GG !ɤSbC{A˱R0QC<31{?sI?F0sD3L2LQdL<SmntnL#g1 > 7qlE*ϰlBF#\γEؠ} 6F8@P4c. !Ӭw8$>Ӓ^Gdӂ,>7$@Ѯ"MeN{,eM#b*RbC0!ĈW;&lrÊ,R :HWG$STѐ:tL9넻сѐQ;MGH6n@%<5A=4ssPUTT `dY9 ˱tADFeO8KeAKdn\UYX=EJAEB2cԑZ QŮML8= `̛tD[VQI>ՄVʡߜ׼ְJRB4&u-?I ޴׌ ;\[7|Z~3Nɕ;Bˍլ=JEF[p5Y((F_dٰtOMTN}Fk] EJ՗*Qջœ#-է}ǩL~L]UQud*4W<\O%Ҡnm[[dIOu+9Q5_Q<ǕI]\W\%ؠ܄M^vˆ }XӵJ$7< ߠTٝp*8Yx$nANݙDF)^U&(^cU .>/.k4)ڢ݆ͬ0F1GeB]0* ',Zx}d-=h_MUdx߶߹jL_[_WB)dkE䕌W>x~! 6ĬEQ~^D<6X5Mc6rBEgSAE^ڍ\d&8Ցb"oϗ͍18Py[3/^HՇ_0cJ@c(U؄cc}kN\2AT&h TgKTDpU# qwǾ牀l ">lPO=bY]Yg1A% TMU3T53ˬUPh4Fc;F&~G`cn&0`&iDR!B_jX[LMLc Il?: eRQvR0H~#CHB>ïRd$_A> naZ^搶kbVfk߆Չ}f?JCaU'# ryypvrglrr*׽]xg'&EٛX%U10T=^Y.Z18Nvi֬Nc ;ǜfVi,tDgEU.EV!_iV-&fF@,s7d6G քniV.Mt9F ^t9n Fp`NfawnihԮxq[(?( r&Vw"#"GN$[DKxrzXkEA+F75.ct@cӇ>nݎtn>fqVfGfeceal鶺dž4>p^g\ _Jd&VT:%9O2o ]M[k5҇uMܗ~L~Ye c ;uFj߄OvrDF6Mw3KfqFv&(T ww6} &yW#oyg*g|E{OO Hh>=PntX[mBe2>x6VvnaydcdOy={p Gfyl('y{9yEyOu䦷֥VMib@ 2l8"%r(jnkկ"zpӶ>nJ5iϢM6rO¹ME8È;2Vǐcb&WY;ynd*P%iTVG%a¨C0 {bY{A"|1ۤO]~ծ`_JWX'IR bRAu_SbN8H bK=L(dA$EDD&BH%nT?Bd;QDQF"x+dҍ-tRJ(! Q@ddOI !PLEPIEIPHi5[eqX'`smZ{͵\ Os bX)j fs Yg}jFZ/Q?~A5'byƛvVq~57]q!rMW^>Vvyuj]wZmVmŞz#Ǧ'lW H_SEU }'&? 6 䠍&#C1 ;z@aŋD(ы1A"2voި5ʹnH nO;ӹ7T O0xP,?'ߕYlz[I%ճ:/kU{Z™\q*_m*Tg`%&8 QQjefނfsvgb|i&FL׫al6Fmz?R}M/ sjDtL#yeyǞ|鑾s]+ݶmˎ2B/A,Bo/a'D/G+$ k Eƾ2QdT@K?TO:Z31n)R0ǐmi!v%DjfA !Zd,l F 4ԤVcw:߶6Qm7iwZe0gkouDLiU+b,Ju =<+:i?(ɰqFgwXV%9J$] Qw`"A_ғ;܈5%-9=MH`|THDfR9RA62?<@ +q+Yۢьe!$R&ъIhMt*V@!:;A| leeŽ 3i!Ԩ(Vls83! rC`&Wm&h4>Q+ZE,VQ;c-Y$nۊSʲI̎c/Ŕ8 /=R*R $(YI"#Kö7L.Eߓ>9 M^GK'f#R2f[ 9J?*VXO3:5HkeVHQ Jf3L&/tZ1(X(7WC>u䜧̡Lt6̴Q[ VýuaC:gNLq&BAo[(r':L`r=te.~hIaՏTJVA9b01^J Dbv屚: W^H#iBF8)!vXv灷='!d +WƐKq$)qTSɥY[p1E3WUB}UhY1#Wnj'FUgζ RIjq)S9>7-x8>Aʈ[˜8JbLG{KR]_ғd #Ŀ1_ü嗾p $AETMw(*SMDo j+"BȻ$ tDo Y\nWZHD-bV@+!Ml5_pNuM, \UȢIgirwNM7,F*܇i,UOBpET̼mfFzCwe|f.,]h e͑O61ysx7;^z%- +HF:HR(tETS# r/e`E=st9B1Wِ9)K5aĵ&Bt&GÐq[3n|nud|C(MyonrYD9Tnrgl8'9i- jhn|܆ezVivl}*_H3!6oqSü !G/~N_1=-"E $ aUFUCۍj\e`a Y-[i3!C5D[FiBXA1X]}5J٤;]:7(AVa*%^: _*^+U[s^ \QT*R}iౕA 6D3L_=AaAiMUC Q$ R}! x]C(_%5}a a`VB,-V43BDC*4]4G-D`99v":t͛7 I )[/ȍ?1CY %CA*^7a b$=#<Ba!6jQ62B63J]_Ibl$*DEI0c#V'v}*Ƣ(+ZCb.ܭqY\!AH"VB$s3c 4>I>#d]6n#"_+1BA9#B@[XBF8hC͟S"-dD ܰVJ@F$Pސ2*XnBd4^@^.IIR6BIBs\Cs$!>B] 2j":"M\tP%VgPOq)y").eTv9T6OAQAL%H"ԢW",~US& w]&^bQMz'z*y$nL5ڑuR_1h9rahr2fR?|*|!B96;ޞ[e~ ;aBAhnl"Dm~ \f :?EdY F^dIJ6 Jt>IJu#V)vb#6^gv&b"6wAB*^:*MFwv\d~(ާ_3hbR*SΟ1W1*b(DzC&1 YN% X%I)e:C"EYC荒MS& Af9iI FB&a iAY5o !Ʃp aIaKq>BqĠҠ:sYJ́ul(Yv$''Zz:3)&fժ_jj"Bꬆ--B1CV.įBVvĮY\*'u*Q>ӊ(6g*"%c2Z*"!*+!ڬndB%2ĐDZC̆n(jh\ !A:]i^J8AaA!dnpl؏'B5G+t(Jg6>B6.uBl*,&"f.㒧撫j+^k{.3,?L]Nn՞jֺת*2 ĭ*"B-2Ƭ"B)kC(h݆í*ٶp *1pb\cԊJ  $C|2:2,A*@utRB,̶B6B'CԨ6D'BJB2fc\!cM8e~jFD?*D8Mk*Dl2A*oRBƺ)/CIns')¯(?nB-Bj2306êv*'/A m*1-2/sCTp  Oe0"ԁA)A00R 'k?933; غ3Rv:V*>p_DF-"nrk*'+2n1z>#:DꮮG[q2G"Dweؔf>hjN:͓kv)?pi.HB&)Ac&>5JoIFc4B*ZRm2,KH>*C+pZ;%;+0g˰ p3յ]{s?V3"5wA6BA90&1c#ej:0"0_^vy=ؾ jsGm\?0m/l?qҞBK1o6Y_+cok("jJH+؂6vtr)(uI3F\h2iT,iSiDJC4k+P!+IoƩ05t3¬FV@V?q+WWqr*C BD`8chBܳ)Cڂxj-R?d3 BF 5pgcp]$m3+68#j2F-ZvfC3Ohj{dz՚|;6B ly΁bvFx 7DO1V/^6BqGBH{4jD2!KA.jKd oovixiAnD7#$ϩc:r+ĩt":.E߹ 8 *Jn'{W+q?z9DXD䭺5 8]WpFa1ԁ5g3&_+Dmba#5_ B\{'* A ;ǻ:_sTΪ6k*m*G|p-k3P5D*믚7xw_67s"\:I)6̩sN#:MNf)FiP4oC "2'}vQ}F+{#lȪ;nV*"qK2Dڂ 7{{̪A@{X3U"Cۃ+ s?!35Co6Bd0#j]+2õ3pm;..$-5«u~B?Dg|^|Cy|=qjuoi5 5w/:%˫RndɊRпo< ]W~|?{ҥǂA"&✄:Bďpp G =\A[FƇ t.ݎ_a} 7bQ~\9nq)yuw͕^VPKσozmX[;M@h4!z2 ph\CaE1LC"ɮE):1&b ^zit'h"ȩ2tIR܊*a$"xDd"W2 6ڂR) :ŹyW:*D S$* IÌ2S0A:+4BB-4J r-`D>Z$QGϷθ;ΝܡNXa%ׂ5 I RCMcg0Z,0AJy 0a2V!a0! 3rHČӋ>R_Қ_]Z G"kǂhJHL"\ɧ+EjCʓ2 }mj 4a"bl3N|̏L9S,< B g zg9z !hP04suGЂoAdsMؚ=fz+(i41a$ N{n.OflP360H&,M!$g# bN5T8iAYjN#ku.t`Gx}K[) r1iBDdpg{dF6ƒNx[207 }%)G.F;2'T 2{%J#1 1$DQh֔-/Gqrj"Pa  ~&7 `+HҀ`AпHt)Bpi.$bm'b%%|N)G(x::v<%/qKKGRS4hH2T3 (TK@M:oNm$&͠ j0Ko0:L+Z0hnŔϽߌoD Pl#z꿎dtL"KB # E @  ۢ-0 t" Ȫފ0ʌPLDJ Dbߨ~LN$o^d'B02ÈBOZ5ϱFa,mL\QV9Kΐ#5DH/)nĬphK%mB@l)ˆ 91~JʈTA7Mպ`ߎl1N0/^" jA HGr ]f A/"m"a $+$:R P#? C  $Yo$ވtB 0hH0 2 R1Xjx$ň2'ymx *bPp'P츯%C88ш8$-h="$, >8+dy86#ZWңZC #q.3n3#g4޲KES-Q,ӼÎC'j#1:n 6 q 1 xr :u'6 O/&1&0+ $#Oڪ P @R%5R%Q C=VR:d" *r#s !F ɾ" &K, Ԡ>P e>HG@B$1 Q6r6;+;/P3-6-A#D.Ilp3X#WrX r Brr;#8s#W[XUZu6oVW8u'OQk7qW$1ef4Q4&K7eI"ك2fmɂ*,hW*VΆ{ `-m`QdKqd?@.feI-r^TMw7CWvOiiOvȁ Ձ]mRL큿;azj UI a Q;AmS$<niU=3ovuu6EuXxXXrXXs5Z5[[s%͸om_#Q (+XLE~xt-_3KXgN|t|L1-6Hw{#1G` 䜗._6j Ke8~YtfUsLTMt'qD XC Oe aPviiUPPq 9փyNchA1R?vsYͶ\u=umxV=%W1Wy%xUst7;ዿ[@uJoJ_PBI8)URVR,%E5~q~-P?W[G$0너c11U1FABcak8ăƣ16oꪱOLYUԴ/CwV?/hC=T+CQ O5:o8O Sv؁7`W:krSEc6mU>+Ը<xoWu$Y-;t55s Y⳴:[Qos$X$h2Kʶcm&'39i պz),E_GFFBYGۂl8a-v; |%Rg`&9 Z@"K?YȔZx3KgEy7 ba]!qoC?tN X~YZz%P[97+KW\ֆk>ŰS|;U/֡s$$rwё,~r BSK>SLq䄅B/&Ca$cGۦi y$VQ:9$~Ixxw߅w緾1_2|t|N <:ۚc]5uRq=)u'A3 WR b8\{X\峌I7rpB[ٻ0iۿ=oYA^;#3) +6\=˱܀oـ;$*DQJ]t&F_z~$W+8NTvp4_$~lSV$ !9dfQ0{f3m3e9Nث۫Zr$ Շ3v18/RH[V;O|A p݅疱coٽ8MwrsС SJPiҨYV=*UYnժ `ʚ=[,W-H͂j[3?-a 8̷o w8qp36ýLWxo_`jIf %֬%YY# -l El`w5*QY"\~9USN]TKZZthlYA8ϨwyF\Ao LC?F8Hi1RFi D -4aoHBȡ2@ 3"(&?JePCFmƍ:zЃ A0 IFAe|0gPwQ< %XRTOi7iOEWU-o_y啛ZjUZtO]D_f)f6e)XeF^ieTVNԒkvGgX[uLBjjy֨F'XK9֦u%sHU&uRT: eT6A m(L09I.DI%@?*b3&ԉENH~IJAZP"&>LH?ސx7[|1kA-UA > 4i@48dJFԆJ77$1J.8DtQِ>YNzޕDS6X1G uyR']wIYuLvUAvavnb!C}MWLZJ{7iZ^&Xb7~iq}ti*kMMFPKdBSEG'O0c Qʦq*grj(ڴaSښݔO-Dҟ 9c_ (G~? D -!J/b_}~D0&"bb8A EР@ g@!`i@4BMBȌ>2]aJƧ fE"Hޓ깄\J,H Ҥ&{3*5@뒕|bN,&E!U7+ N8= or+܂=Dpv68 <9$0 Vֶ5U$0kLUfubЈ$]2bJ]JHڒbZ8ڃtgD0!?$`[(IA|DD}I|DXYD}Π`* ,sH 8!/c /f*P$g O(PE eh:J:t Y& pD B2r2ApȐOp,- #$2dFP \kbrB-.w1AN>&e&t ]΂4yr Uբ|, a^s|f6Cm9iDQIPYG 5j1FzӔ!B#QH)՜d^툊zLB/#4 >M.vjVcKUN~y;bx2~!ApihC#O>' BnsX)0 h5 tV6yQb5_*o2DzqGC)=LQ\*]_`כHF`E LR*Y U&nd*v TWmxqd E[cQ'*1r+CJժz.'@09zu˄CHxy-7b'(Z<8SX',x"ZtFOdh4کtUngL;?]_dxpن"}H ?R[jyC`#-E*{h'@6FroH#eۻj#Y(A՛!D&R H*8F,11V{ĀCbQD V@F]6G St r)BnͪZiFk'Sz`v }H{`|"RzFZg>{}pC?O~wD;h zA,qa̲MaBs%B!g~4.a;]f#p(b ##ؚ=H43˪IJOA؃6BX;dbT^뀽oEf?6A] 7QR=\5\똀6Apѫ 9iDۦj W۹_=-4V՛ݷ>-$&I c7k I:Y\2QۛɜVX kq$r &?3&Kk{;f!gN˰ 4F[(? A Nܥ`gugDuv--u-2uk!j&`W @`i%1"RTj1 .hQww^^DŽT m#Wv3vMTxQx>S=ЅGE9]HEգDS=zfl$q$$5XDD;_fRm 1Xz0 {cfT&V ?+{b}aZE'qGoqGC]sa7f|!!ow}".IBez-1l6R&!&bXLqJt ge&Yg?PgfgمhvN\u(Na  AW[ b?󎷵\ t14Rrit3!O O dJ А 8 2L`'_g~x@[2x3x4dxi@U=fg3Ą3z3'>A$ 1!4B#!` y@t3SGS.S[T%`aۄ!pԐ"GAxoha&HhB#wq]b:BEhA"HL1U,W l!El*dц,\! lW j\yF6QQ H 1cuX$AF XHEYbHѬ O )c{.[QAXੑH* ( PqG s$+`F%d~ D.:)B#G Z`hG4QG*QG$5 0 o(aw`4J LlFP"y%?$A(n ݐЄxqڝDD fz |܆=yKK) y#RU^WqIU/Zǃ:7OZHX>(7z_X[,t0kK\P%.T|D0ROTDYTeEa}jk?}у|u0YbsP.f+R9-yq0.o ]YZPyVk˭V7zXqk}bQZ>"uUgeA*uZ>ڽ¸lC:mAek Jp+z.# EJUU(r6R̀3v%_6 N6DqA,)2&>~f߁q' (wUD-|*/Y @!C,YN%s4l(x:e/48 SBp̋wJ2^JuJm"aP2s&xz(P*l$/LL" .pP{YzSgT]ѩZ)Bً: g*^<eQu?w1 \|Ն*m?|PuERd4_B4N6u1[,H+0,0B1Q(?b_t` Ǘl`B)NQ$5:f-آ+yk =4ß~;4E6b7٪ bȰ6 <3 \A (nC ܕ(fMO1998Y89ɨ-@S81?9Z)x)ЁC@2`?ݑ8;)Iѥ{؊ȃ\/ㅓy8G)rB`/D/ڑ;)IS = "1pG P)3P #ڕ<+R)I yUHVA5XaB*U9@WKS. -ꢭBEA 3:qd RR+¶*?$j{`S?!v|qK$R,\7+V(Vb(B*k6!40Yc c>̄6G?~ˋ|WPd)R)@ȴ 5ߣhF6[8fW7قb*4Ê4"&ʄ DcHGyB 9J$s ?8$\2`K9[-[Hm &,6N78: ʰ-=bM^*N-l숬Z.j"H8B;-#)R(9X'ґ')KBh`Jȓ:p35,hT`ih@Tu4Sh,izw'B8BZ^SZ'1)DA4D׌ khhD#XN0Ql3HxtXW,ѻ=.YÊ30l)Ef[ƛKR bׅA[ItN5LM<ɲk@8c`/J3P`R,$j0#-> krI;[ *ȡĚ C?T7ԚY\mʵG@GLKPx/TQ < LH@,X-!AOyTHe-rc8,`9j^$)HHhڳGPlSNrjΑBxJ 3((`O~%h/(_{6n@VNI3g@s090&2d5dP}d[!-j tK6WBghMLdz孍R-5bd /'eTW&%]i>zJZDZ}DAZ=997Ei[敪2 HI]F1< "֑ױBpB.|S n _{&hE(B pg((/N”í1Ln)k)$^˻8S_*,P a);Sre\$ZbjڞLDFd[<;-:1I]iƃ y?aP1M%h0T{e8OcxIB8 A Εiqo3k 6pо!ְ!^j 2H86J!xRŢ 6^?VaP6Zchs/V`Heõ+s4Fe[f:cRB&ZW7/橴3Lݯ99_8/lЯd)VxdLI]@1(L! 8Xs\NB$4ݕ؂vi2?3?s,SwwV9snރ.ǁhpyw^SP륝2+OINM%RA`z68I)r8nk%Ԏ|}q)OD`;Ĕ;^u|D8 9|~oaM3φT%HFI⾯4[+Z:P󋿁l>:͡zPj}5|!^ӂUȪUVk+bY IP e?q6e8Y"O}jc7f{s75 B7x=H.kib"No5 p_)[8wI`^fs$p7-4v=|SpT@ʈKe˩NmWkK.%(GEQX@ߞ i4iyAciC)&5d0ک9>hcC+ڙ C?@ *7(END9.H iG6hykB$TtʏU3@P>7c] sHR;r(< >JS8m%^խ8J$\ 9۵A۴Y[?aMEZtêPtV`%[=ʼW@W@ & EJK(`v|9S}Y2u'!0uEɹE|XGA*uClyAvH PnC6||BGګ`"B$D,FG|lDs` ]D|GRRrD% $XhaJ( F3LJT5@+.3H+~$I+,^(0\l rLJY4X-!VM˽EؼemAx{+ ؍$l*5H$G5WN|I$ƞG [[^NŇ6K6$A"݈JC Tl[EE]ְoU\I)dV`b4`~@A$,|A|?żD V`E EZ}Q%&įB ca`_` H^t rq&)aB$YV0R)`6M ymPG|5dHYI|d!Fd &i8ALNCܢidj6EF( \<TaqO=f+YI!I(,ٙd*4tIGLs"/;"ȭ.?j H%6]|LeHFDp+XDPvxV4%4X qğ[oJ,ůXsDzQůdVX?pŽK B`GPM H|GI߭ 70 O$4J ^tJ˺ބv,!ll95jt" WW40U4vآq1Kʱݮdײ]qBqϭ8?q$3$Nfph[hQYm\\66fX\XE^Ȟr]%H͐hᄆ~b& 쐥@ vpFҠnlkZIa8;s눒%(H6v7((/tH+hÂg=Z~T+Ma*(n潕VsXpxcqa}ABEQ ͒X@axp@ tB1 mX_LlKM0+M V %DKLTPKDKLO B`Cx r6ɍ#[y`Gr Li ņsrq֢qݒIi?@-5]q޹__n`l RlDmæec(Bh%ʀ2N4$#3\r0`؍#E pA4DlTL /T!QDc$"$3336?;.\8w5;s6_7='T =Ò*<=|c W@#a{mE\9Ks?ǟXPB8<÷Py>«@pHJ}%ԒK5E\PE(%$|;C,;?N  \]QJ2s Edu詨i$lz|' ù'[1[ﱝOAGB!8AxXno4ԠLcxkCri>GcȞVJD Wqq1 BDIJ[!zypp%Vrs5y.#n"[\&2Hso3vŚxsӁ] H굂,T ZKPE,3TfEA%H*)[c6Yף')[j 6w?f̰0.$@>t;\Wǵ r㢑[1"D7MLw_?I `ओi$J %h .K.yDS6l)ƺp I$!,0 ,-NF?0c++,H#'DRɬ~ŖP >\d>0ӊ0<+Ҵy.ͬ<:,0[-=r#P~04 ,LSJJw2)bN$S)Sdڣi=Db(QmeM5XXb 0*JWӖx b@`3(ZHC^{H# &≵4ȣ(qVN;YsQ9n-;E9$Ѵgf3ђIaDfJ(}\Q=EUCJrMeZgV_ qtνUBtmT n{j)8z }>jJC47k 0O{%@+^ "U"Y^%̩:^MH_*Zb0*Aȇ!Jb;FuF Tl=N2":Z4m⎤9dw͖r┊*'1<.g @!z3CwІ^B++l{ \]B,oie瑱OFE4~EW!BD8Td@"/x:)lbuJ٧ ')4NJRsgpMECc\lX?mٝ X'^ߧg+](U?'6?Cz7m pЛTUϾsd0 lNqggю@gz8ϙ7~Γ|{;O7ڟ.#.kee__`Bi2w#e+{,`J8ub!:{ѐqW3xWr-"$B@Z8ZF!&!&.+.!"&P (mm M*Ċ\ §0Ylk!b(ZrEW`]GLA,)g)"GpCԭa?@k9xAt4lD露:İ::#..= -sή?*4IGODX ɐ+\U~"^GV(t@^H#"~Ł$lh` kEqd7持"/fiJ`O8 $g@R}Q39 јwOЀ(#8¥c&B\#\"~Ŗ" B|T,.f-.¯F{Np' _*|.Aq ,Bo9XޔE"@Ǹ.A%$& $6pKf!09K=p.A P,OF0<̫<"/Yd#h7('ʭn\ȥ*\nEmh$o"4#EFCtxηJ΍@ /:4QC;p=P&? #?Hc{Fl8I%^B%#Q+BQU'¦Υf}dZ "]X*YȩJOώ FQ7u3rr~# KrFP8|oQt1@atQNPl pQ3Ϙ1|րӈ9 # Ћ[e55Vd"FMVHdI jEQA`:,l$T]LBBUPD*SP!]&-Rj&bbB&4SS$nކHN߬KX2X2V2  8f Vp^/nrn*Ϩ tc<-8<Ӑ%>ϧԖ2 \N̈́W?ܳa9Xs'th~ D ?ڎ/E'ib=Ch$C zkF@ f=SSeNkb8,G4T*(1+Ž1ͤE]L3nJ Yp7HjIi7Q<6^IX&VY p33.`9[g `hi[jc@1:>=eC*Uc2vne Sr:T 'rz ܂;fE43(x#*"""#KCe U^ qDZp"$pNTjte!Z3(жJ \%[R,e'bӨg h17a`Qќ΢x7@-Xʴ0LdkjZƅ Xf NO&VEP䯘0O2001!R-K",8ZV7&6ElsmB,D,Zb8[ b!Ƒ"O5exevoJp)1fz*79B1+xJ>4Qp@RZ@CmF1]S{/{/ +.7W}ۓJ Lb|f*BUV6a3-J"+h-XFڲN!U]Fm5/v3m4Fx9q}veDb$V[VHn 52HMU7KhW2Zg{ n`O=τ ^X`iջL/_9z9j'+>ȧX,(=-(65ʁ^km)6`cZ 'o@?(k(5ldT/m#]-M%D)mɊGFDߖ[^WMYFa vvA8 gvhWQ; Jxq3^фkxΦ=Jцjnό72H(-E]n.^BVԮe6β -&*o^OEsnIzD:ETlYpl_Cx!J{}lMkJxńrY#Y6l(M|wx LN oD2B+„`9 $B&_.FBm5} ( 6*n,UoMWʥ[P(8x 6B"0@ppd~#:V|7񌝍1jXj^pZT:E2+fIf(В+;5;}|5+3f<+s~ϺZ<[\uzqMo WgH8;NZIZ (g‘Jfe9N(L*hN3es3,#/A<ٓAt&\ @ Dbr$'ZM~BO'(4t al hX*"OM+׋Zc?#ր!`9t8B)Z&DBcU"5Z:&F6pK HY笉:󕃂j{(TccT %CQ[[FV>S(TDbe3W*R*qQHpf:Xӌ˟\xcɂd$'뻖T:S2)a9Em#>mr=m *ʙl^hcL/fjOQtZ\/:[ $H*TeJ]$L@` &H0  B$ʼn(OJ|Pd^v1˚88dN,T?OE8jГz,ptTQ}KR ҪM"DUB%w倶ZK-s␸1Noa}|P__~ 2b9|X%:Ӈ=0z 2y%4g͖}֋)/П?R_xp6?dMyeC.T\{ *{H9%i*T \FuQ~@ǃ ^"~ba-tykt$>O7,{E~{ХW\ixi:ڎ;^f#hayxRuaSL194HS C1u!.H;Xg-թjᰕR= E;1 @̐G?\@UdB TBͰE'M4@UDDDHlNANeOAqWS!*jN-U'RUTXeV]muXXMZg}$B#`ܪglE)Yb5Ɖ=AehUVٹڽyU^kQ5V,H9U(NQ,-}AKȁYH\u]p"spxb\yCr~Rh ϵ,\RK4*\a 2̈́l hL H${y'b$:"SM <#E\LrXrcz;xw`&UzA5QAߝke͛pzNL3 T @F`Fz*w\ ꥰo:zj(ABINCFz4 ԴRNA%O)IYk_ Au.Ψ KZ2 9A֕.t=&Z(2x.Nlp_.,2'dwjU0O!( b01ZkVSp .Y~ƶ=+vXl b&_P1 ("l:awl0qDW9+kК$p 4Jdc݈H;YYD h0)Fy эc-.a7hlrȂᨈb7 l(džKVRC^b'dL %M!7x& 4R6lPT293`xTC R) GozL$QϛS Iғijի'E !GaV Bt)ޘA8r1_9W2RTXid48UEx^`N)/LV=Ыo~HASCD)oXJzdKM[bT8[ˠ'- %%Z-KABy.ծTկƂf W6`x4  4bP8ia~F/mer1AmI\ X(\%!F3e ˖)fK+!KID+J`Z ?̕cטriU[<x"yNS#|A '82   30Fg<թ1wbUܡ/ɭzNtJV*dSj;l+0t!O7E]E,L1uQ10XCpGUo8%eQ&vduwZfewfpU`mQww, fo6mvPU^ r0 wGGr`-xJFhY2 !wvg!{R'UR'2&<#J6GuxW@k  jrGLsYLck!¦~~Xhp!mpnz!\R Ytd~ XsH5Gl2!w ~4n٧x2!&:QA*@W%Ut)Po^n8CAK(M=vAPU,3u˲e fsCUdqRf|.nBApGwef`Ax@7U.1\AwNe~CGAf WYj~' `{) ( k \u %Yw5U pg5fj(V{`4ot~ZztYXkG Zɜ~HHaJ/WtS#Dyg3"jh` Hj xFE̥7܇$!"Lr*bYs&$ r+g`HI0sRbqN(M)N)fP+ub3Ve ?giU00Bglv~Ydh/Z)Dottp<hT8oWg0 0 ;1 C pYxwYZ3 yjչGȅmpkWm9aJDvjHIiX|? Y f um|G~4!ҏg7Jr#wFJ wFn[` :י~ `G!xF33F*"#F^ģOLJ*@sAi<%^3Kl2jЁ1';tq<*Z` p2 p-ے:Y0x(0X1ڣ*6Oģ&@6HE o;)? Rz*TbE+;>5Q8A?BQ0a20l&UܱveeTd8@TSmr-y!W +$0 xJ1 A0S myYRkZv[0 Ikhv~Y5[FdmZHGӨxW|G{ hr`6"$6*(tA&G&¡%3A%EO$q`)0-6Ȣ9)O7H: O7r")&@`6se ("<!aU;ZZ'rPNt Jafx},kڧ]x0w,[[w˂c.}*p9Af'Vu!taǼ)w/xCh|r JæjV{Y y{i68| x xYk蹢|ʨYbGX ¼x\ͫ62ۢN#nclm~&s Jʭe RU4J#b!RKXR:4 œ&#P1!OCPzM4iq7taXKqM)z@<Ă-<1Xr/˲Ѳ/O4`5)?>z'ǂB1iN:6)K;"db'M>MU fcܨSEUkfh?Ya.X ?wB%R8 S ϋ̧BiO'/ڸf whY!g5H*h55GY̠Y)٩̀Pkˡ ɬkYL㚮5QÌׂ%/Bv9\T5jֆ5,WXx J$W+9LbPD`9398e16%C =z^_P1(% a m)1Gn-O+˒0Z&ֳۣr6ݒ77Z`o#q[Q,TUc츁*Ualeg8UeScRY!˲BQ&Gީ ׋AMRR;UhxهHneD\o5¶ٞ7l Gr ښΨ |ڶM%H\gm !аgmǁl?B!Cd8 o$G*&Z ݧ,׸%JHC,8QU'~N'bΰbQARz ccBS# J bA{pf`! .(3,.(`&x$o!+K@'q=~27m>9B\Anv)C([[:>;%XlK\L)<T5wT~[_xx u\~r$50}D.Gl~'"."PGs47YF#]۾~F-lِ-ꏠ kY:ت4xxv\gJ`jt- C>g?8 v!YۮcM֘g~Jr@d' yp@k-i!%JqKߠLDBi#we߄>Œb 1#a0'S` BF4yRA T %2j^A@ei2 'ADG%XZ&OY@^w?^aTڨ8bpʀ@ ?'N$„M2ሆ +"Ȋ,R4j'88qϛ1oJ) P:wxꃢ/g0)[$fK-u͔S˛Q;Z$M)1=k^D@1E Nn L "~p0HqDI8Dcք n:`#F<.)|;D|!=G8pR0+f)QC.4JA-7(<K.!MBo/z <ȃfa:- krb衇FY+|BۣSF Rb%.8^Y l%h`dY#,:b7(ً(Z> j%Ji@)%#)`tM**@-y=*NPКt"ટn"("8"Z P-I/1 $?F,<'$uB'q΂AUBBA@KvCߔX(p3,imZءrZύn =&mT? (ۋ/ $74DA,~8 #g @Р7(KA$s?\3!5F;CU-=n4=FEANQ23J᫤ј4R,s 3WDvfPSD9E!}. R D}E?9ơ&K<!p %F9?v4, V2ì  z^`iD"j#1!ER%.T@KJs=&,aEHcEKZA o"t'Rr0$>^gQ@2t(Y ,# R> X̌KĀ1YOYc>ƱI,uDLb rȤй^4BrE8Kh#1 9ܠx蔊*$87>#JliHT-ޱJDx; ټPE Q P(CӂY5Ai{ {$"LHiXM,\"(M~'dDԁNJI-8CΤhCǞuB5 LP:P(1Q5&""(ԡ0!̝bs׻|jBpJѪ%D `T6<*-[ $(E N5* tZHURhR(<2N{ S@ $UbT kD"4*PWUB +#1@DBB~D$IJX"$<)EZXF'A l-N%$'Wn` ROAڷ>}Cl9~%;7>B脓6̸Pj$i h$PyhÛ>%PyʝqY)C#HSxcZeo ⴼy v݌9{.eX5SmFdfJC\Jcv7@qvrh~s:-gowvfuTiTֹtۀ%UnLdLE6=6eRwCMKo%~NоKcB?"iܼ@OFYbU*S@UY6HAр h ?v`!%G ޚiM_# JC Giٕ'+)ldMĐ+faDPSVh! @1/ bliAbƀl [ l1s~ڕܚ?fb(!",r#By]* BHaSqY=|G{\Ls`k _~s"New S1k6|yG- '{p &p:l>G0pB#F. }MZR|ͬ4$Sǚtv۔̗3pЕnggnODd4=M(JTjUjMP{NW_¨H%oiJf7Y |))\vod*@Y]0"j Κi-Md J"SC\G[bR,K^ItKD ĥKiSo? )^-UڱslGZϾvd~>(0;;L!1к;@pdj(ch/Y0(6JT!;90K؃ %˟Ô%8L@t˸52&r///0.p''5aSC )w$΀ duSA[RCN%( 'pj1(X6)rJv2;UIbi:Gj<Tk/8cjږp`!o쉟 ("` .pGwti>[" K?b"P?"-=#غ5Z<`ʶ?Bns!Q?z"A.;Y{7 $1M7)AV(ZȮ3(\<%pCACN0A<'u{ 1HHæ% ;w3<K$Y,kwr4q`4;0Nb3ӱ(9ќ&ID7;:S:J<*.A!0R8s968)6ALs3@E/XE5<ə<M\d]AZ>ȕ jKFbT[eqpMdF c>h5"!Z[[ .ZFGy2? ->) r Ԋ£;: r3OP$IS‚%ɫôqV0MnHh?ʡp+%;h9ai?kCTك`11&0t ДL953aJ1U /Ka3ìyIڮ=H'V$8S[ߔӣEk5W(ȨOJ%?%/⺛2#Ѳ9ѲR$+;%X:`M27HD%I;TNXY3,`$FaEE=X`O +4dz : 8P,s l+sd.SQrGE15?-L  P Z8YZPYZXPYUPNpO-O(9M!Qo\;̏B  8?,4 B<'($/o K cB19|VRݰR[k*\/  -,,$d5=_vKdL2)YTK]D[]NuQ}2݈P1? r3u*&_Ӝ8YMMM+^30X&Y\[`:aiջ \1q P4o=WF;+b`gφB`# rXd-st)(X$+Ed YtM*,0"H{:.\)@Ct72$K;Ci'`YHCz<%#IS5$r`)q]gEچISDMl2(AR0"'1c314&,P@ڰ0b1T"m0a:S[\\[ä 9\/ߕTvK R3LN»35)ޥiz+J("C>e>U]I~*BuS8#&2:0",e5;4')8Rms3\ 88:C2O5M gj`j.f/J9]nDY&óP)ȝ4 D> o W8F]pwϴx݈s ka !lhp`)ZJX%iЄi``vЄy*9:8Ιq̑9Bc(j^ ـ0"om2$d(ȝuJ"x{3:VC7IPy9.yshH4ڰa,k[x[[ptf8Cs4K( ;+<7JhY(eBԺt7O)Ήq (/7Y0fV):nX[v%M_b+S; Ѓ-Pvlϔjff_цZ_}XlM2«`f&ZS^G1l! 3`柆>0'F2lE*UTK\D03?16# `2*w2%@ <|+2ebBޱe7[T΅K^TWݻW;Bdh0Sc{BbXa3Y4DTå.6ʓ''c'z0p?_`rA1498 E 5a3(E "?GQ-<I_ 4u\X.?آ"?,b ? *Xr4xȡ^"%)(%r|(B{"r)"w"E78Y(IDs )G-*^R)I" &[| &}[Re!&!H0urx.P :hN2$&Zސ桇?_we8|K=t[]?\M1 *`Ap)CroĉJ\lc,DzF`y1VYd?&ZkbW:DDt`FfG i4Cq?)L.?}JRB (G9g=x">1dOYz6T2ժT4+NJSŕRX#LR@V*\Aؠ7oc BÉ\!Fŀ8td] kU #*Q.hM4' ,BET͂QXW@3e,:K7R OOha&&?.f m !o[\! ! hIBB/h80 a͔`'JH&jO,q [B# idr :KO{Sj]kD Z#D w7!o )'ƌtCCb]L%.*ڊM<3&b'=-'OsBO\Zd(')G<:4pFAEl(#qwTL-gO_Fq*{\Sr9+ \UX;/s g7백zUYLecʌ@mꐹ F&0@(1WT' x te T!fXuQ1oZ.Q(3!#qH巊CnLgAI6$B2/CCūoE"'8?!d.z;5̆јR'X]y"XNC"0y 2$~MB6?6\H<޼B)$#y UJ<'8aShV'#IrX穎bWRO֍'Q7B>G􏂴-jZJch b?3Zu"s3wZb_=9FTL`Zp>3;_aSOp_V9A$jZ)HzfH]z xWL[̄25cr/V:Է~RW;%HC ]T10 Y+e/cBĢO ye Ɉ˗׷sp16q3nLV. 90KV]z+ŋ{2_C#9#|§D-9DʞQYcƦ J< IȐ,$HXA?& JJa7M7AB.Iќ̡  fPB*,+?FN9i!TN)ZB}!mFnPnJp ꎑp:̶Lc`pCd إ?\-^E"o,*⺊b"n:㖭pǰ1OA50E zdTak~,Ǯ4j1]e,o*N ,E3Oe]4kQP6.zkqq^oQl+,MA2E_ b/QLD?@buE*0)r:SڵYuPϣ}pYL \C 4J!u\hXB(?t*(1*@q*OB+O4SBUXh0TMONaaP`n&a @ Wr0D,M>-AKoJuNV-Bp@L1!/o!_,"%6#ec{ar.ҁJ})Z{l}*xJ|fȝyٍb.洼OJ]&o_&(sQTrKSLjNioI+ Mp"uC+0,/a{5K3a@W_%irj4D5 9x?Tݙ gJOCXseϐĐy D[Ga&cCh!3R eU3u[QP~:]d)gf+$o_Q@t >DȂ,|5v㩹y8s@S7zNtk% QRų晫VXѝ SPeJh_&M0GzzYa\?qIX],?,xNOPS0dNҸ`P\lɕY]{ZSnXp.cv9X J ~W~yxBc y`3Ĝ@rbbz:Cop(+.k!A% 13x>˟_[X25(?N!N XyD-b O0PơFjҥ-/75S9E{K8'q6+>w/0#xs^sb;dzHTC|p>÷>Z?/U_A;dei5p;ĵq6,spn5gAfWLrH X0Tq1@)T; 1(f 'D[l⳨"nj?l='rdŊ zLeKf& ^u%"D@)eɀF{`68Ѕ +4`Vz!Ӈ>rȑV ĺx)X۶8|T( H|" $/A<@9υfˬ4f$H92d֬A:? qdJn _l.Y̚/_DN9/Ε͒x/T^"8cp*tRO @ +$c8" &PB @QT2P| FZTQE ^QL*EL#I'`\J$r"60 <"B5'T@5O\3L4Q"Qz @m A* 3i J% Do>-8+3L1{LF j,7D-4BC2jy5Pl\V,8@+]64K5M[.:; (/jT ,眓j 0D4#B̐0A0 < %+Ow!7)H#U82͏&ta*]Rt(#n00B\DEts: l>+8ܦP8 5GE2"TR&|~H=ڃhZ%(!YiRv%[YP"0H"g]Z /dޤuG!xlUP_b4G\`9Τxb):+NxB*[WYΒ 0їԲBD-"F !)Ll01Mf6I*3Ce c2Xml(vmDD#LxGIrĆ)QIJXj{ڦ)(g>XVyAF-jc 8DjP;(nP ŀ hxzdȸq:z\$Wx0-@ Jg&J3]$Bq{4;nq&&4BGqz5:\m/Nu㞬.{ O 28)+&@z Zzxlq@ς$\8\JҬןGG,IaTBkW Muj#cB("+wt$&QDdLg&JJMg$Ul &4 k$E8ks3\p٤Xz>oH#H}'`T]U AlJ4*9^њ u&r"<%NR<aOa xŔ쓄K OrbX B?~Θ=q]na!̮BtedJf,St@Mbc1 0czCtMki5 %C8$I |Q)Pc@'R ×全Xٞ2":gC9\_OuO^.|Q@LN%3ȼ 1'xjo esQքͼ߷Xm3)vgmmM_\fndzM7)&Q3ڼoUomY8ۧW"+4 ҉ L"ӈ;*Bo(6ΐ:"PEV(hHxFT~LLCk*BB T B xS&*`\ )b*` ()Fa/ERFAs lp@nBΎyB$$L)Cc 0@D*Npb5xQbcFn"&&`^O dJ+ `kJ<`LʄnKHdIJ"Dew"JxAI162@L &9C9"0jNeBTT0!Bnh}P%/*'=c=%=|d|c\D-Cs.=X BNv 5S2.fdqD2A12wP$55$4rLlL bb4u6es\$NVIE nv*`Ud`+9Ӓ$:uCFssk 2vMOwh2(Ccb s[A5tCx>!@$(EBhG?OR|.,"#.>TxLR%zL DUG.- VC54GR8H:N?z ],rGR`ngHB%Jb-tI?@5BC60J-1ґ.$L!B99DƔigG"1zZ cTd@j7 ?(c@e7rf61fZZ}16RAto-BLK4BfSSN -UHd\7KZ5 IKK-c 9yuiԶv Nn DUT!,uuM OD;*ObbpZYCFIfp$H)BOlX2%#| ]YBx@Y2Ɛ?`yt] 8c(I]ie–lEGB,⎐CZTgX* i{z, ,t0h+b+ y *a̪Oxϭƒg!BrFx89so UMov+VM01.,US5U473/PF8lCmq5GNeI6a)qRTSA 47 и_qvqcw`x89.y -9tDENp'u\XCLnʒYMZM &C4c.@kgH %l*̍ɟ'<2=Nxzf_0BгID14`b&$v *`AY,vʳeL˸Rbeõc(\خ֢>ea$Pe.svya@.C-9!V-5W9{CءoT3&26C[;ۓ7HQ66pFOGN`vX#Y:NDM A@|4ٔhGT6E TzqU+BrakRfGm+ϐͺ"LPj6j15-zwd [i8,\9OlR"M ARТ? +Bdy#e\RӬ'Q,?%op/c`s\׍ܨ*Y):HʈJ$1+Pּb7{5&#E}w a /80 gdMisû 9V*-ǔZmJ405 S0z[qykFoל`PdFled'j6 pkE&op#bAb" q{7`dtVYM /+Z9z-VyCPY0/˵opφG =sꑪ1"p,zyCH"@(*փ|ȇ>:(&B˃ޗh Y@4ӟ(`(QexVNwKs 1\?9v&Էvh{zP̄k:Pn&5 հ4 ~,871:/դ|'iv*Xy'dB¢mJt \M}0@2\t.{`#Ë5 p.u)*UkWvIĊ UD>#z0榘*RJc瘨alB`9 w;khws g%1O6*UyLq:kZ|PVGeg1C3O?rPpb-U}5u#9S .Qa`G~򭟛(AIv> n&;)w%`bZabra&as{A1% ;SqsNAW5y77`IY'L0z2!9=Xylzbn4XWeHbV #xseeS6a!"#!S*2~Go՗WQ†^*$fʘ=WdFyRi;(Pccveg" tq.{e^fڲ׻-.)Wasf>) IjU)!AqM'yٷ# V! U}؇^!QUf*dZ*@뉕)l(\;C)mc z1PIa%CRs'LB1ZKi9!s0 Zpxñ4PT\Rq^lq!a5)3ZZ%꫆C:\'s;1gTEKOdC'V+F7"DuNbWq+uyܲ(wtfkЯ{D`cv?" n(tоyUEH(>k4) ):k+Z+ݓ>8)>ѝB-޴)% Qxz0ȡ 8 j*0 s 0)br&U&8Y-C\uJqq&|τdQYtS&~<HOW'8O]{Q"xZwuQA @"Փo![$jq('8#Ofni^H   .5y#^x'+H}z6aJ*4{σ5NJe|^۞nʔ\5DIR%5iiR߳JI Jp2C.ް 0 GBMobi~Yˎ4JS)KYT<3-—y(FLwQ}UJ/@,,\-3>W?aP/`.⡡6Khm5fX5Ox6"8h/@ IaH"_Dq(B%_?!柶7$Er5 d$ OAd(H? 5t`5B4hʼn9BܘpPd K*_rƌ 3載&<;1LFS^'Nը Re@J dD%U =)Գʀ#9C"r[xCZnc"{ b=UH'N)9$0NMA'hԇQ@+7JQ!A_&zHBD+ڿ<6'zȉ'¼} ;~\ :z p 試 ,ZhA.H(>b. g@ě@%g$b`.j.>p\TQ/L 4b<``K0 ; br3D"54,!"s#d8B#. λR(OЊrh AhҊ(H 2B:2飊"Jz $Ğp)6z#4ꂧ5+R|Uh J ; eJ:Gz.z$VڀQMmقN&=M5 s//\JK1Ͻ趋 䑺#d9*( h֏r^2?>L(h!< $ ,0?(dqB:O\92rwqFmqɑ`[/GrҤHW@,#p 7b84q. '\77`rC3:-sϑ1NIOG hW$ۢ bj%P*RI:PrŸV\ŞvU֗Z*+ ۬ΊjdNB,w6gj, /6Ҍ$ldnqKd$11)2I3B#997pg kMp6Ն`aM ]#3%/Ned !l3"^QakuDٰ Ap` ;ATqF FTdEZD愁]CUO!.E hECȈHn/*6?h 'en"҃4I]%A$E^ Ѝsr*T2jQMZGtW JE\(_P~#ըGq0sзp-)|LZڴCjNKX0qBs"3U"PBES<՜A!;SdŰckfÚL?p$RoFQnR$/YHI_4Y0iK#鎐&4;-[ (INޓobN q}MܨJmdm{.f6zܫ Xpk9}ZixAs/+wpь`` >pJ NH3$hkD"FKISp21!qNuD%ާʏ~ &MySw `4Y(S@G-7}?uш7 gK(sӯ3-_GL2YS d"(r i.]#{I:Hyd-HWK%&̍rX"SS6k5g-Z8ź GgoN+vEd2׵MXa;%Pu9}oq%A O1ގ{m79`:/_~ oooKz_@a,c c8GċJ?|9(А8k)n*R98ڌ` \9ꡙ1s%+2ȍ(:A::dA((t88" 3 ªi3;5&dB+2?ҫѳ<2D",Eb B.#G <{$Ay4ƃ4Ik<9,̲ƛ43<7)9٬O95<, 715:4ȃp1-jA@  $2saa)6Z)\ P!͐5T!/'Z z+Mv'i+J(kTMKyC`40 )᨞0 W z{$1h: Z:̙#荥81@(a0 B ؘ򗒎 Y:ۈ2ݐH/~Ap9Oo5^K?Ԩ\@+fi(7*5gwќ0Chڥ_3["R=ϤBp$_sO8$u%8`!@?N$"'@rD8|)$<02$@?y?@IH#x2 ׃= 0 ~ N1 Q OA E%DX"D@B%P]) )CV>sB4sIBgiB2HC hI?\.J(ZW'=ZiH!q-D-LTjM%aѥ>Ք&RQ>W-UUbVyElDVxQ͆D []7YxAankib̪&ZIvWlZlmnoyFn;4o?(!(I(typG%@ջMDA[^!9 '`H! N U?O=TGpa<7C50̈"7Is5ΊHnܰ&/8!i*8b\nAYaŮ%^n x˅;KDM/h]u`)9@D`@ b"R1:Z4;C!>0!q9ْ$'狅X"wM""PT5|1"H!C y"@!OA `0?0$gJ 6baqJ 9@&9MjRd(&BnL:>L)SC#,Dv(gw&H6% |Q!8 B3FFG>/" 榜Wi_|:7MeO.6Ug 44zB{х5 yMyCaF35@fCMZa<WutQaڅ 7B2O17?գ?Gȼ,o1(3VR59OXyΓ3@+ufmT6, 6Riq ;= ]XVbFX,VȻ-1?CR ): :#AD7RYO̥-䶤9vQi%C*e.!VrT tb'&[j^dR6# okJ]@}S5n_x[ߋs[ols/ݩ_&"F^HKXED+\µ鍼ج&)!Rkfg4uAa\`2-W| 73L"ZoE8kD(udJYx>qU!rGMb?t).II&o`X>5XMpx ~M{,eDX⸶ID:@ Z 0g yHk7,ȋ}m*m]/Js\Ry][?v[%bٲҖZ;VNҾ5UJm"Û{ 2XGhiD(FG]]}P]K Qm `өU@ w d [FLz8I^҃Cx xRlBIv AZ`?U`,^'ZV}M' 5)#)XV t@&Y{HG^!}Q~=ɔL%.r,nfZpfbfD`N,(@..BTγyIo52/:jXeJm^w?e5SmjcjqB窲*)ԫCA4DPuF>я k=e]* b';;.Jf˥|BxFdI"R QPYZw$lNF5\" {8YDA%Y whù8 KP:G),\'h>)!%i&!a!"'FU\)e#$BeԀd"D2`@ I 8,iҭ.1S=+Ysdrqf1U}}۷۷iz;~ gqtJgbA,2TDϷHī>@MV$FyvDdKͧFnDպ|FF < ^||Χ vǔR끂etht+$k zؼ&w0Ez 'TD|u0IRǨZ ohbldt  )1ai Dd%FApD%_:Z ubZrD ޭ(Gh%h@(A c#4qOHNHNJ@$mɠ@Ӣ0h6ʂUqFXcۻYţu[q2s6,` \E, `_.ڪyNXAх=ikHTDnY`f02j' CN K'K1L5 a h6G*b`|q{8m1 Ro//-@7gD`ÊZbدuX9эZGDhDl'a֡9^ VD(Cn?2B\NpQ@ t $~tt̂@TC4I(ՖINeF[mmHDEJJlG4Ŧ- DBt&2eu57[5m.[.9~OߦBgn%qBWX.[.oluD}Wqq.ð5z j@ynyz o.!HOA_ZdCm͘h|E*oi QzHSIFpMzQ]"L4Dt + AEHi333;9 ZT V^6bƢ!!}YZAua Y ؑ⁥<^l ?pZ iPA`ǨdDi,MIDIDEtl-+QC8_-Nc8@[]#jjQg*'RBau`nرʂ1y{ ?xDd#;Vzuz Py.,TA=9Ԙv`;X)^vx'hXddCjQ `h j'‘3P4(>R@LYx(T@3Do lo/\PAoTMLbFqJI Y ^wm_m˂ eِHͳ ?^iB,G(.TCЖ֛d cۚGHV4DE[D@kcNbSOãq]݆P~[x¿sO1V[B8+_z1oxD_W ߵyn겐Xn'Զm`H F|nX ~AiB:@:OB:`zܕ֢@]:wRUE+kE"Eg0X:zT\x˄vLIhSz6V=YFDi9Qt`9M P&IDbWU{%DϚ@wϊD3C@VSnHEOS*,)mI?15q3t+^1[&.n#T7]œcȋXsW0Ŀ{qA&$‡V6 1FF*.fR@rT$ vܱ?2wY vUsGx( _0PՓ*t8P6٥,-<4dX@y7x-THG5#HEg p…D]zFt*RU5e(߃9 ^ "tppDA e컲 ?_Ԡ 0Af bA@ L0R d hC:@p L<1 PqS 7 3Q ApClrܑ C\X@'@diR(J'*J|M'R4SL7)$1cN*ȡ=U2dy|B :B_`҃XG Ԡ=ZώsSBt,JS!z ՗^ Tcʉ#^!%bU*DzZ'z(" Q/‚ Yxvư <*/ z%L1\ VL2,w B{B+q\~lG6?@ 3;y4g$J\A&*2Jjt%'Y?=I42ᴺaN#)DBm P iG p3y^&kZj Z:(uy E(=HOSaHDri&qUJ@rNW+! Kt%PV*D+aIbB@,M a܇95rj@M%yA?(txQ^I4*e)R5_bpxNq©l:!c-FQPx7(Diؖn>J[4QLc 3rO~rRHG@T#r[j 3+lC7E2GА2 eq(,iYL6YiLr7&幤HheT9,;rPTr;Q<eDg$ZO$'dy+!˜[g7 ΁K4etl\y2;26iyO Fk*@H=32Abۼ1dCe&;yjDD$)q{*YXwIkB/-yNKY%=&)鹫I\%b׀y{P"op**w腯|yE QĨ=ʝ7;Al&zLH$V爩Ђ% IO4;a L HU\4b1,Bqc;kd@ S)bR~o/t %Gg sA*QJa%H0?ZloVߐg{nw^ 9yt9pc|t=*`IZN 9eO0 :*i ں#mO; L|#m!G"!+M-9;KGU6'ɥLPLBf1]93!)A37רt'R|2Eqy*'~+Nw," |d."% B; T(=$ c58:Ď^8f7(hA,vʎf D/ c[N).*L/>w#rG. NhjϚ첲#l#{. hҥ>*/R@d0b&T*$fS,@DR JKGLFSF`h+F^qTonԴ2~͒&D4As*JL$muRgRGTDpQSwqzʯ389)p5Ɖ9QR$y9:վދ "Ne<7~NV pܨBBf̕+:`: ~C(u|9c,[,|8#8r)jC{hFx[)0΢Xi!BhH e vT(GTV B``;zI/+5 L2j>f,R,#<??4ÐjZ TJ.Dd1e$bDض 0 PQfn~npMnF4+D8LWTs$ۂ6-&Ȅt۠qqsTUPkV'i9$ޢSx'mXww:E"oY uJp9"$,b%Hb«<=[H;e̥ QC98 @lu H9βf\78H`Ga bp̮t8ȉ" $b\XT@n10p !|kC{㕕ƺ8\ORx:U{O愙8H@" @ALex4vCkC-u[f5,8gا\bt.*&e(htG]VeoH9 G1f)M7 ߰[âڡroBʥp,,0{l8B  -bLmVFtt XOGjJ|odrZ^B7QR5aSTdPy,ZVGQ“Ϗ x"+9ګiz<uC;A J#2LV젢vA̠>uQl?ƐÍH+N +@u6 fnG;4~';Ηaqv<`bsVCw$raw~ \ d''p h0fV%XH)6#9;+gK7cf `eҡBM Yv-2>JA,ώ|>[ю)k.gVI2FkO$ G2Ivx Mf6AUpQZO8'nPpb!YyWwQVKx 뜐xzG!E\i%|&U& o^ $VNgFIܪ!rMIح+u+=(^ B9aa `뷇t=T3tC7#`%`y`A`CӳjV9 * !hp ?Үhl}hx]_JeٛZϻԖU,?+\&/!Bą=M?H#>riO"3L0%P vFVo< oF`mp@|d Y|ƵڙQ&^s<9ɋ2V8osuϛ5sQʩGr TX*UCp I(QB=!P#85pV * 8BA@A 8N42q(!j,mز_>h+{6L51F`haYa*!@V9!ۂZ"h/#lԄLioߺMSbnu9πDݳ{vz ;x=@N5hC <ӿ!lG p` @? Rv!E R$hbB XA*T8D4@ 5/TPAɀD TG )eT&GE)/tYPOIzID2f]9 D>&4@;PD. )QD=F P^x a1 ( XK?X+ء (f 2a 6(7q-,ȽA Y,C搲@y#Cy#GJ j餒MF9f2fBOyy )zgGl/¡gKKĨiKd(o?tx)WZU@pmE$ M0QDPCMNXϖ]taZX Bd/#KhR`f/Op .`1K.HD^Jw_&#Ӥ5 [H˜hcpe1N`]+{vjv{$NxudO L ~$dJPl @"MH&6`<'K)#V\WM NW'RKדhVʧ%kD+zDlH&`+!bbf򲾘,X*J^Y}UzJo4,%{8^~Wb+d&rτK IJ.F{]d2qd)w32$F1eBM̸HL"6|E2>|h>L z]FdHk P?d,d959Re&(! q(!#e7GMn[tME奐jY(NIi&8JGj.R*~K\ⲔKљL|Y8U*2$8&~H^:QkZ+D0^@"E}шG"$q ZA?O,& ?71"j XLYMe42Vh,j4.JeLb:H nZ>h62R-EHhU/•d,! ll#\f5;5Y͎ 1@|^Z =:]E(zQfG~D`"HG@2Hb#HKk,E"t AUbAKp`/cķհNnH4RvFDZ*͚M+Fl$%KD ':nD9D3ܧ?.N-k9O^v<` G4}wp?fh,!gw?po*@IG5CʦщND^4 Yd߱@%/jQBr`UI)xp+< ^0O~ &,9`X?6I2`+a,h@#R@$#|u\]qfyC팱GSɠ'D@p =b Ҏ?LO7/TzQ#!Q')gۿum}8ގ ?PY+~GntLlz~s^OJ"mߏ j[|/(7=Ob0)Mx,c_7p $@Oq?BC5Q`=#Q" G1fa,-Q+RCr΢Ӳr?8Wd}72!t: /O>2K&9wIxmKmV5GR~nXEo6f_@ R  C`8(HpFrC-MqS1A+Ka2Qa)*?1t.6Td0F,x+4TQx1R&"qM!A0* B#-8OBXxu_BDx.O7 u_xCbhhvG3hlhq4^52q3E3FQgRrgMx/#;;ttYZS!5!P4PYnX({~7d2J6U\J3'75|R8%̖K% %D:O'\Bhqz"`#nUcnzZ8^q56oX3%@0 GX_&lQ=p`pqp ?m1MQAtBr`A=?fȂra_,iq$p0!/Zg‚-bAsDuor CQFa!tgՒ(tQ-Id 111aCQQ1A)CR-bA*hHa2a0OWrѰA*a1 r'zV"3wKvGDkׇ+CD:g,b!FA:2"8L1paJ LaqhG+Hƴ\ӴzqVke|)Z\G-_ۧ:,\9sJ9#N2x%E}o: li"׸X4@ ƪʠ Z_~y(X0y` F a_1* ځ\11 +Xq-J[ʒ-㺻abë@c/aDX$t(峯OAs>7Qr0+Ta'vXAd A+S0 3S-'a4QDbf$3ࡆHE1ԱQtV~7WvgfU`0@(B, oiWG|[ӷ7gKɗ[ |YK\K Ņt$[J8Y:OKED,m7}"њb;65m޴7r)^ p `0U=2Ӹ0oq_kq 6wL [z "Ya$ǭ6߃B@P-.gc= -q@ b1S'i7u2Crכ`.2/#K0$zT `ru'D0J@0)a6QOKV# Qهgoͯ-q3Yl! ,P<mRyQi _NkvKyWBø(Î]ގYЅiKd:}}CK %H,y'P, Tnnpz;fP0J38]Ƥ<@͍ @IN-pw \P neS ȢZ!O-AFc0&̀,Tbr -pQrE]>I؆STeJZU)8{A3T`(6JIW]YEw({V&Ф/ӲolW'~'`Mhq[ymm$"-5nthlnq~ b L`0փn|@",Ɓ΁<:t蠄2I!/h"0#" IXB#:0å i1I>'x U(2[jB^*B ** B^ZK[q˭^ + ,S l¦})8I2\*φ"rCC.c-Hthc5R[ ^e)<\нb"pNH<|༐ >C9DPF[@#(Hhk)@R!MPiQq4N:?)q*q1[ZLф'zK]*k4FtNsN=E22t=J6C2zhЎ"m(HHqD1%X`dԦN)H EUƺ+w\ /5*򝭸x"[âYr/K^1L2vЉ"\p!p1"U;vxW^Wm\3B_t?+! qw=T#I(SZLl:5ܣAU6 Mx C$Sd4A%*S2m$xH2͆_ YD!C8 c"#bp#@j/vt5FVSZҜ9QlGҶƖQI"U2QEL>h5MDUѝ4Nw:!sC7U \BVBݎ02ɖcP:$T;EcvtB܅%xYeteȥjU1Z,XKH)ҋִʘ&4D31 QjF~ix@ w͓4cI,q>Ɵ2H@CQMj{Ǥ'F8ĉfc3ȌdIPJK8e2+ңc #aN/ O!4mIcհ((GXhDƩA-l"MDָ1mz&M4MERADt2\!28#~"IJZ$Q5 9*1:e[#*Z9A )#:!38*:CСK *вRRڊHU:Pb`zZy Bs cR _YA4`r h;I+.zm'p5`ȌQ1d<0Cv ȋ|by}r ͣ\+*(i8ac2fê껙q3+! )rcB$!7> P!R>*,*`{?"1b X+5F98q"*#q6)85CGJ+BB?)7JJGQBi]a  ̂ Ȑ`Ӊ:%#A3d٥dHYAD _J;^S޺II*P㰉d rJr̰Q ³p Vsը':"}c $d% '7s3) a )HQ c8A0"u)C)a7~;iC1a (8*ǔ8{k=9:sƵz").1[t<'C+ Iȏ@K" ܈|ҚA/@@At4x& Y IGY(ODȧ㔂Ubgl&Wy (k" VIXI4` *;4p2IpZ0ǎ a 4,1 z|:C<,q$ = 1j!W= q18+Ѧ$`1>7RiR#`&bX5I]Y̧EdSr*D68ڸoCs{ŕ٪1 Ёt5,@s|,/+BJ.3I%6;6iN8{ щ \*O<-WkW&D;%]W_B V rb |G͈ L YQm j #(%ټYmK PJРڧ!",Q՛Y1Dd3!YO$E)-*?]1/A?Iف#]R"#:_5E}*csqZӥ5DM5\ @GpRtWߌcd3GԹ 8p dA׊|ւc(۷[_e(B_P֡%NOHIl (֨0>8'5_k ֤`LN# n޷WڟȠ$IT ˏ^3>J^CQ6bcXs[vKIjk7 #- ;u/B%9SdL8%AF,_9f\ZfT`=1C4`30g2-$A9GwN&f={ U:&E%NSBY`Պ G˝X)[HT6ii )noRɠa,6Vbb8А 2sN7Cc`zm+AZG@jı y *CKU`3Iq䅕djV*eġ)_ 8=7X*6Q_*Jt4獸3B]V*Yf?`ˏ+T#[9<-ٵ99p8m>=H@8׈ p xcȡmh04a"inҹAM\X&f‡~[H1W蹛4nOo3Z PcfPʦ\PP(˟`LGĵӔ1%!׸T$䝢Kk.ޫvGNIĢd$7ؕWKF mRgnߧ]20=F2BXJ8"s##sFdL87:1sI쩽M@img@YGU-` "^aӉM)YUh;ȝںۆ ,\ , +󬜸L*ifu#:\p~uq *] ,a 8W%iJ)}76xvH 9KG꽤LX37L˪hw!88򕐓2#0 iQɑ ?8֛?b*_2 )qlxr7?9چ }mnJvhm^,ڞKgb9]!M n7aVn$ĭgZ0ChG4V I4^IՒp '&:VbB.nuZ'G!%9 ZJ|3qinB1Wވ v 3^* j'Q qKaqWJ0O!'&VR ¦VE%[Dv.?`̀ #Cri)S V)$s q?isFÚuǹes3`Jucʟ|۞,8È* RH0B C`H /ƗZ$@ wlp? T]\Dp`66tÆ l#ڴj%,(tGܼ[k3t hkjЭx15 DP"b& {qO7]:qX}MW&LWt s}` gg!^Oaf \i"rhnhҵY%n YVP&`u`ƍi$Ldiǔd]Uщ5IPA ,鄐 AMEgL!uK,e4(G x4L3Q+QH?QBQԀVTS A.D`^[_VZq%YteEi[%'AE,eafe?E!PgQ:?:`]Ef5`]]r۸q;˚޸F.ħ&|qoX@ƕ!iX܀H`-| 1vh$lY?ɢ3یa 3w8b~[aCVHJ %`-?Yc`3lR4Bk~D]Q&G*G}$RMgؗ~V?; %gPFug eWte!v@xlgQXP̥]]|^d5Lt]~kXv96b\--AIwۮiKhnMv@qn ko~oՕo/wbwچ2́ƝVWqbq@alSEHd!8& :hp#Fphdf, uCq(@ z2`:i&0 2T Z$TnJWF>Ģ ֲ$lqlMS&d&oțmnx۠*04q9Nd=1p2 [VG-(A!M4E@>YxY’9%,c)[9-0]fх2v镬nE:.g]ri= .Nt7P2xLJ# ҂"a nBjak;7R_ k+Wi#ObWk1m? < ȝypKYBƢL4ԔOx~58t&*áOf)̌t#ͬ!r4f8vdD4RKu)f"VEh*umJc☚Q$bh!NEIh# "]% HȡTRF1VtSՖ%-JZ ԇT4Zx%& e+[HE#QHC8Ud6u(C5J ޚCͤȫXX5T+Hh;M< \~)@#4҇c/s3PQ#A@8lD9!* hC0( bu,ÄHZ.ikLd/\%SUS\8؉i(1'k3Ch^2r},,@^0 $/K-bRcVKQU $%Dzq,R{&'e.\FG:SCrԁ;Y?N1uy΍229NN>w9e)a  @tӺ}4ݾsgN:y?`}SD@.گss l7D/B3زTbm/5ԁPUZPۦkfQzQBԇ^* ?P߀^O͢UOj\6 gHVUU}=bQ;pM%>AZE#\ZDd %Y\VKY &]t],K-FY] rd<t phV3 5E =WR 7slaK9EUHƦA9r^AZ>- Mj@ L ONEqL`v Eؖ,XXě=5%N_%e"JXGŵZv_i؞ +e1"ʗRYt?*EeV/R8R]0]P2`Tg"H@mfqIF `vpi \A pxZI!ixd$a\ Yᕌh̭v|0BPgTT LzMdO>IO~ PJOJI!qJ`l((8( B5X%$`O[XUA R1գ([A0"a&"X(YY"}V4a<)0"uR1#-+.Y(㭈/q]^<ڊ9Z4chՒ"ZbX7J4R7֒_)A㞚fYc;\?Z8Zvdf]\)A4DGuySZWȠ\?=LtwiɼjgdjꪯFz*^S`!QyuMO1ڛ EщQIYMDPDZ%U i5+ha_UʭN7Nˈc#YWE\ gJ BR$,4V]VlR&RX,a=~)Pi &mrOm–d0rR_qar!BtJ-UѓcĈe2MbllGaUHj-On&he~KނU"r@ qNen,pJ0bxI|zuM0YMA)w[U[^.\TEfY%5Ubȅ7r,V&$5d$eJR`Hi*, s4Ev;N&7lg5SZb#lyO&ժb7>@Pv]dwl{ ye@d eBTxFM'*20A ?ȡOMa_W`"K)hEQn~JMD\E 2 *B Mkmc\U+aN0%oF/橬4Fd\06i&Ē)Y^l֕\&R]~AڬiڙBFh]ԙގ0,<Jm2Av_GTXDDJCg<YKFZ#.c;# yehc Fgv<ы@6>h0< ~|m2Op5 @_jM>4.PtsQMFIj?l?p.VV;薔+%@xVObYnE`#IPy]t_h R0ZR25t5%s,$luZc#ONԝkvfg-a"Mk/A z`b?Fo.p*5pdO>0`ã.ϒq&qw1le -^jȟ>:LǼ we\9H4~m Q\A@_@p#4B.oj~2j'z(e>EGSnM&ĽʈRXHdeM\Ut( N8JW͍4W@PS:lf[dNc&WdoYXN#72 ߏ8Q('`V/)`5(J@Yʎ8oҁ/8m Jd4-x\7r)hѲE\#gqp@_El*qZOY;] Ot̠ؐp ߆g, iPHyRBE 9I@Zg(tAo?\E2s*v2dAwOVMj(LmɄmXXKxKլTDꢮRMW4Y[x r˅Qorc4&doBbToc\)^\=Z}Rf fE瘎gkOZ^gcx\ ;EҬ<{ ۦi'9pso)GW,vh$>L3p9y0 mbhW:dojoojBSB\1^t34qk!¡6F\tUnXLvh,K7NطX[pE&wWu[ oQO+6 +c*=>i͹/*J['l2NVl.}cN#Y)I hr `|Z@C3ͮ_bH7<D?ZP0y 4%6spA :#*V ]at>ko:G PhGO:+ptW@(2DYPCC }bH!}4 P=*Bÿ%A 1AÄ ^v%Xq^ 5"̖&t9͘;4d qNgk_; VX9P BrM7Uk￾~ `q=@BkvVvŪPv͙bVȘjQp6cIgB QwČwow,5q( ?>ۀq'lZ?yաѿ?8~{@l"|$D਄ A2:*@EQ41BNB!qD k,:0d #Q"kjI"HڨlH#h>. #2?J3%\Jʧ6 ba:&< Ф'*C29_ŠC +plڒK,:Bn;Ӳ*] Ck7@вN΢KL(RHkdKͶF{-;^ζꪫTΈcTt.8NjxC =VWzݣ׽t<,ԡKЁ笫B'˅hb`r! mlB H aC* @̃`*3J"gHȔ"$ V5LtL K4ȩLJTK@""&P1XCa%lo y2T&<Tb ҩz!}j}سT *?8i mҘ*7Khgb&-n4Z6HqŦZ̰Uc2ϔaݻV%KsY8VK3_ȧl=rui}}jğgk'@ "A wr <}  i"5F:M!U蔴BpuCu$HF&^cJKcD#:ɉ&;imLJ}bl) |hj利=8rXG@t[Gp-54BXmxxNXZg ЏT'5 ykz7no. ̾ḃ_zC]T\@bd*hdoi> gED~C͟thJg"pi"nJ|H$A-g[#0#~#X$\"rkঈ֮(Lp'XBNRdţ2,0E1-5?DE},'xLhD°mH7ܭ/tEju-­Ȉ52+W0$ r(~qPC",3C6^)XkN;&c @#3{fȭ1E}@cbZF0NH!Z@HP jp*mJq"jI Ұ<-⻬,YQ#L6!B@'psQ?$#paH.GfXmM&)-nNMpP %&0e_pv2/3'LIE4'E^BaH.mTb3(P4h46CppuvGwp71 R (Tj g)v2 %ShނE:l)?C6Sp.&Eua(eTĝV.ncKoqԬfr *)aLK2hi+""jDfjtHnL#.pC!Cd#Z.$=l@lR%RLp+mB^Ir2,^%S֥q>3Cr7bq![Ύ.RU5M3 "5$H#sJ#00t`ʭ7pJ68<n]T3q0=w=C Adc@0(}dW,`kʲfFH",1L$ >.Jf̀k-#H(F/J$YY SŠ"Oo$-P,CeR!E &O;P3b:x ?e8UI75'L}ɚE5ZZcu<5N9b8';9CWS\#[$-T z7 PL& HQ'nԳtRɚ(/&,tphDkѪgi-⹠$(!opo D'p#:@DTX5.uW%\l1Z"5l"Q e[u{Ul## n"HtxUa4bUSL+'w Q猎O--N L$/uXj6d,Ƃ:53ܪ#uwIOòzn9L 5]6Pg_CcU=ﵦiRSyC4~fj7h#JBni #.#,˽q<:).hXr$X[-ְ(<$f0E$~"c3m.Jo+e WBC0bTƨ-5#x.Cxy#Y1j#-B TZorqZ[b52#t@'2Ku StbUs;W%iasH[#|wksO>fr&xmrfՍscb'b$rlc)AB hJwJ i-˽,j*qf5ȶZ`lw+l 82jk 8^JPm1xPX1- @C4ŢÏ Q9ågP9N# /XT”+r6C1tw%]㔞=tO9%cht :#fca4Ny7'!U(sDh>!ZWAqiNihg:()EӪV)GqB~.D;T ƖWCluΔ 8YmNPs6D)z 4UfgN5ix،ӑ)YFlIIL6窾"pb~%.ltg7bxl4Kw k66D@$WY|%:fy&oyKD.%0uG:({ N:g"X@6jζE-nB~ORClZ -CYDnN)nM(Poo_P \ =f=]Sx T$g:´M?' wĂvxC0n 9x^cAU6 tpLMO5SA+%A%̫%7S,8亩B>15{go>5qC:ꨎu*P\ŋu^`BM "# yz&1^5f'D-DFzGl5ܷٳq^ڵ{WK h̿* a CLŌ'p! !=v(2G&?| scF0k~)~OsFeyZu 9͡|ub3{ùF\@J ɓ[=F5nٽl +fFnlLo  d2?h_fgA hFHe~ Ղ A .%@i@HqdM04M#+L$ԒL0ȐK} wcRyUQUY}ĕd}VidEYe]!!B &eXFn!TyqbF$Lǖ-GuTO7FSOPB6TWr6ԥ՜&)_R^HWPy﹊?d_YK, 1$` !W!H2 >U A]kNQ@IJ)Dd#դG4(bQ {6i pdhJXչ_ap/5ٙP&<\FT"Y/fB_21AE&G뙰 ѠOUYMU<1hCI4q_:\sհ4y֚=V EY_sZldgv{c}_wkW} ];~ "{gS>kw%fZH خ/IKGfJPH$tMF^M;D\eUݬi.О- CTBI,GZY9_(C YOu.VRhAF`VGwiHTZ% uQM% ('QVJqm]srsN ّ>Ma\6ZJ2e - ͭ,tV3t>be=E!b%ZV}í+P#݌Np]0Gd¹(R01&ZF#o7_ƕ zKb|ԞO@@ײ _ti ySƾ1A/4Cp%,I~s D d(B0d4emRp\KOc7'nYރ5 d(,ٶMP5Ԡ ($H:8 ,qUC0"D]b"K%-QXRuiDt\Q<ĔiIiH!ᖓaOiX0֤=G5S<֤|' _ɏ/h5a7ZYDb=+fnȽiT:3$*dMoCUP)[{v=AW rUD!5QȪoI(Uif6p=<96Df(P!l9CPYr2?5'#vċ }QR=1͏ENnDnj PU#hCTe:GX as^Ѱ' VgU̍6iST lEZRȠlg*R H UF@wև264#ҾKӅ5(bԚ0Fs=YVwbA*5Ff,;OjTns64V29s  2f#ZCBe x&IW~mm.*M_t׼=(ey;`~iUTlA,*~Ǹ;T@,-KxVjArx3Wlm߶:C0SsBIo9LyҕAc&@og&Yo'&^ob}Qzj5eQc4|TafqTq2#qN20t#E(a} "4rrqfE`}980/&#vaE/%TҥzYgiBSI TI/qkEwB/!]A%-U1G;H>W@f:z)gz#AFmB@wW"_G91'gxږ<#b$6TNVoԴD(z&>5&XMooGXfqeAiz4Cpq->C-w{u-E͂gEEa[ UP'[d&]G}sFmvg%/\b"0#H}QbщpG1 FSGCp qQs2 נ nHO3@v]h"Ũb)Mq:Q{VXYWv^3b5b|V=$< FbGW'\q9քNXoIoIHQ؏dhCeCMQZq{\Ƈ4Y.$"(f?.=B#e٩ `ӹ/1  q ɝ/G GНY Q 5} I?0 2!QsQɞjFUc?#! O8\B b2/qڢ7񢅵7C1{ cpcd{T,7!qb|"r+هY[)^ #`9)e*cdJ]*jʥo q#g*ujwy{ʧ} *Jjʨꨏ *Jjʩ꩟ *Jjʪꪯ *Jjʫ꫿ *JjNJɪʬ7Boj7e q #Z0­Q#`.Ѯ6`E:7b 5q z#[9@Zɰ0 ; K:k.PQ1j5q9K.10a/Q)k"5˴_A9E˰V7; c+;gS .q0Yڶ6`/Ѷm tv.ʯѱ5!iж*0°k :.!gIQK.q /@dY_;0)J/;;r1j"ں[|K.I۶KV4]jKZk&њ;Vt6@Q,ڹ/.Q˫S;;ggj/;vkzk1.a Ѻۭh9йQl"~Jgt :v˷:Çs &˿Ml(७_;ܵ5*?KKܷ{P Ӌ@ `L(lv[q+4,fFk{Q0Rб  6![ ;z|DkSNL6RUlk6SkȤS0Q/v)\B4˵ #(l+{ol<&=ұ {  ;ʥ , _:!̰ڱĬcL.P Q'|GĈ;[;5AgJn5]Ѥs #K\q,zZ1* ӈ˰\Y+P7<mJ|erc>xPN׃_j@uHu[zTMaf^ާ~e@,6wT[\=BXUzEiڕe@09vcutV{YU1)ӅgiVpZw`vJIc<=m^kROŭxu[Y鮂ʳi_]X@NkTwTٺTqHQӤ^nHHy\ٚtP'یnaUa@[`uGTabFCeY>nbI]VLK5k`{X`ш^`~Ejͣ}YɋjƧe4%yC3`۳ra_br܌]ʆĖzރN[Q4YJm9̬q;*⮉MEdКxê_)Üt׹C+֔yp\ҬUUU빗ɩ{{{dddS>~k0YX6BJ&,?ASRƅn  'A*\ȰÇ#JHŋ3jȱǏ CII\ɲ˗0cʜI͛8sɳϟ@ J=E*]ʴӧP}d" >O`ר`ÊKY>މYT PKzy*^̰= B~,yr]iތϠCMӨS^;va{2=ٲ)Æo^>GcgkI?~\`KNسh!V~H U}/;6aQ~wހ[q&W 6T@|ƟB$SAP݃W߃{AL?"A/{S#;"v!9 (Ћr 1PdzJ鮼.t5ګz/a 6&a l zEj%P5&ljiB޲}ӥ Y;=iRfm[fBfhl^iD̪B6 ="iB.= Oa)b 4Vnւ(/;w1ޅ1;u^5Ǧ~F_9㳦6P%l'HmyA^0 gH8̡w@ H"HL&:LğH*ZX̢.z` H2hL6p\p:1$GG#1!yH*Q,D" IHDI!CJZ̤&7NV(CIJP $'$B IL$#e#.w^-)(P fÙά0Y;vEHqH7 2ӜNv.9aʃ@ <χ?#VL;۹ΆsgBk $ìE/zK(x1R$ +Xd.ML#2&8M)Ӌ`Sh7w]4I9p|B9tZ՝a'=U{DjlZ-JF9'BؙΪW] 0-Q[U~x z LOʊ6%M)J#;4òe1ˠhgӎt4,GQG;a Ծ%-EVꐕB֤bYXX>HLpV!EȃDߜ1Z\6mm GyglX}9okvJuMg!\t5"5H?29!lH@U&լ_?Bbk^KN4!Hy-^ø{4)|R߅w%},I{W.-i+ hjx}fHanpFyj\* u쭨NV$9@*Z 'T6e5պBR=d=?[?HVsgMɼфx#N{y!miKnAO`n0K׭LH5g_za4B&mH2Ḁ̆OW׶a1CE<7vKmk QqU$ E62=Io.>{-]<˯z9a6;?߹|3𨇕&= I2lLXzȄ1nx˷ltQ!^~'yD ծa-WdvpY܁R!8]䔿$Bd#I?(۪CeF-\U:56Uc[JsV+WHd)7$rwryjr'VPWXz1e9wPuA{s ifo7i^PPX?HwGwh{2XpQ$s QXWxT"gvՎ$lz]ϥF]Yy%Ir֏CfO kqe qqup px't;,ؒ. iWtGhJ{J؛@ _>IR=9S&v~|Ƹ{VaSP_רLX~H{VsXkDGnٖs{x74果juz#XkP0O4cO)hxed\\Tuwyi慚QXtFXxg{C) 1L8zxRByUwٔ 'դI ۶vLMguL4X'-ښhYGY A{`s(c[WIVXy& qMVzџz+c9G"9G#j$9-w`{çS9|l66Z'$o@ v^ǜhHQMZt1'uXS4ٍ7e2dTT;WVwp 7}PYUkş5I)r|:6y+Wzslj[HtzsHJf Ab*)SJǬ8*[y ??Ʃ™NmM  1vKjdz?1oUՍ?AGGZ̀[]z 9k'\-KPz !vO]r ' 'y娱;A)2Jw+_:C ŹHJ nس@k(FS: qt(;|݈ +)Yzʚ刂ܠ `uIx4psuz,xx\P,e*1 ј|ʧN+n z9 +G#0[G۵%ڒNjٚz 'vDŽ B6k>˅;go;aO )la)ؿaџK]⻧yz ʯak\y3G)x*XλG{:L"˱ Ѽ q(7' mCiкsmDOA[{E`8zm* q7l1 ee\PA {Dlz9em[M̾K*;F+N˻KƩIْ:|0,2l'@Z2kLȴ[H2 A+/{Zл>|WpNXwx+{ajeۙ_xIq"ڵÖ˩4 *qܹ|wl/5CE|B+„Ά,T''10˼ɘܵe<_{_ }yqIlamѻVki^՝ɘ\ɪll+ќ-hL2MSlͼ%|Qٰٿ+aU,Q:M,U$s GUsa<ʩv=׹J. A^l6MI#C=sNbm-?`N M0.Rmw s}Q]ih>~n D Y}[% 9GΐaNꉮ}^-cK|m>aA_ 1c>Ͱ~^ ,>]@ 0P(sSN~P &!1: ͷ. ٝ6Lq u~ oR 0| ۻk:#/0cc]`-0R+_k1`~? 1 }I{I [^aA\^b1c?A`"AV^o/soxOy6.55İ- =*J?\çqWKc'` {pPbÈA1ƌ9jRH%MD'ɐRG*Ϳ kμI&K!AnHO,/%/ĥ5+ؿfDb:+Pj`r:ZنkM%ߺ-U^2i#%oJCNNtwH_ҭ94u#F%ZXZuMlUU:5)޷%Ƃ0iA*7P`B7Ptnh"ŏbϳĔ$alX~"̙+Wf%N i߻HWK'2$?盫LpҪJ"Br˪j . a$2lK$lC/wOJlGF!kh kL2.~쉳I :|In4rfB+t- 7.)ᢋn!: 8N6 &H= 4ECɋDrɽF_jfBPiM/o  i)ސ[@VڍUʪm*vEA %S$ -(CR8QI56ڒq #Gl!MY$C:Pݹ4q³Z'k,=HY5[!soNMꜳM>SP@'OڸS[܋4Gӓi't i~B5T]e@b0ԃ hhYq`$^=p%-bC+ݓfiܗ&ŐF{1tTB=O224D||a׷1!ؔ|r:^kaSWܯOB utU'$[JDcBǽokgL B= UPUW2 fWmz2황L+QG_XdUYQ֤fm]&/ji\[CȈ1YS܈F7gQ]`C`C"hoRe970)%8Jq C  [Ah !H DV@)$B^JHRH)n]Lè"M20L_&Ad0э SPn 7~L:5t,`E"%f IdN\B6yX1o EO+bOM3PIErd.bTvl&J5Y-[DeqmZ)$3'B4a-BRo8@՜a4hYU3fX5vn&rY<(6Qi<`~l"QNXYF^̬!0̍X񀖹2 0X^%i#Y2݆϶EQoǦ? DJ@7mH e܆V.t%P'IV0,v&B!)SW8,F?g6MJШoQ{EZuyH()GVzxFp ]Gc:Ś̔/yX՘]fBh:751xcuD?Jdimsm%QJ3Nd[6-64?qлPŜoo~wf7tqLCP"o+=W3 E6cFjIE#~]bNsJDKcvO>Q|jzS=4JΠzzBՌs(z)zl62|T϶Nrs&ESцG=#Reݮ{I5 )`m F2$y,b**B0k΋$N8}E/|&= tnE~֢u+r)s$~g0XAZ"o3E3;T5O"*wёo/[ЍWT8~ S!8u$f?jT ~W{[VZ+1.P I 2,/x@7Bz@g!b<.Pɱʃ:K 8/ʵP8#jZ4K>G%=KCr')tܣ۫.0X;#L4B/6j/#)4{5PAr5(8c:*8a񐯉sD@ikCvXIDKD76\X Eh@/.l z#<Xz:Ad{AAT8 8>?B?C+qQC%tӂ'ԋrxs$ ,dǹ"[Gב z,pGp,áp@:48>,>tTH lYHc4FK@  "/ Z?J?ܲI?N Odq a.X)&[ T 6X dK TT;· T;E3TdȮ:ü!<dH3DA|}:BKcHis*pxyǽ`ދr GE&DŒsBpt>!qȄ9ܾ/45AtFL$D I,v kIDlxɵIL)A@ uDv lh )!kЛ2J dFHd3˅dFfAkF6zgL|G$,CdP-pB䓈|  ;+9=sZ9d3"x- ʤPmDM|4Ծb/caʮLu`u1|d;I?Ҙ,NRXdII@6XN;aӡ,+ӲS-Sl@" \%?EG c\dƵУƅAг*ECسq̜pQ$-4syGW%*R9M CչU HF۹4|BM2Q|8cHU8؄MaDR.`2& kى٢'M|"KIb=\/e•^n^|q˽\VSeL)`vaOe%-TݐuF"3"bSNƯ\F,^FJATduP՝c%a>UV§ ]_3>? Ĕn_e=կu^H>>L8LvhKHA3/FcEOZ6`|MjY⒠`W&W(>eRe9W/}vRJ7n>\nӮS{%(k`벖\(f4@`k\w6E6aV7ѵalS6@JhvldhkHkٝ%TLdX'bR6p}26eO.Kg$ZU}Uޡ-\vms q]g&TBmge^b:gqo68cMǢq'XBn|n0\hPK)Lq_srF.>vdUc&Fm~77c<ԙ~>{g"Oe zEPHj8qt=qn+ q^6nf _GpRU@SpQk]aѭuu^oip&bvlvevD(q'IvvGV[OBs[-oD6cvچmprn@+Xms!{r{o9eN.Ȭsw>Zv脾}c4v^wNmHwvh".nh7R{S.sT Mo5WS7?ufuk6~\pZfv T,{=jĞ]h'o&T8͙?F.WHj=y>_|E|ndrJxPiiԎ!0ۄ;V#qLwtO(h~wom{g`|sFʲaa Q/ ,awRw\7Tok\5pεZk.m2RS?JL׮!kisbƉGI$Ĕ?)I%2Iq"rs&P2,ѣEee:S˶EiTF+ؙ垂&sL3Tkvpc[w\lv/[z/_zM6D {e+Upjj P-lE?*j_^U Өnڔ3՟I)%5(2nuk8=e¬Ss8#R^$P Z>3Bmfzkwaϼ8?w7x:37 ~8L` L4?RH@w 'Ʉ̇ $DmHD, %h5pP%'ҍ"v=ݴs}%\XY!IL[eUXVy5e^eek[Z [SW[AMpךb%vti'kYc1)? ڕZaayjT[5TX95oUd]2ӓt3t?zua浡kzJ_a(~~‡? :`Ek!{ T}8!*JԎD&Q~$c&edc$R`Pȕ eEpVӧE7cyWa_hd]Ƙat)`$؞fgLHlVfͪh6Az[mO9)tΔM@GF/YCAڨL״ vPy%L*{g? NW!vm@߆Hn2X{¨j/kuےRU QV=鰨ӷiuƇġp)]~ɲ`UOYḑ;vU| Vk.4OV6PRݖi)QRq ):[ŵt)l2LGɉ ڎZc8&݇n:&BխY pqY|"Boe[kAp1*WDϵ R@0 ` aݑ%}<"!˨Kf ^g@0p1e) ˙L{#rƚ/0[ҧ1O"*(jEXbrG!Zir݈ XMr7^١x+̠nٚpf@xPaP ԅ@p/DЅ+*S, T.SΞdM9TV&{Tt<'JlU2_arb}7gX,4!*_2 s$Z ~CiI` @B"&Q${M %>T4`g݆t<]n,lL<Ǵ\,(J܂̷^GlhQ&AT [3 GՒTJAQNswuІg[4LA$T{h%? ! V]%q~2L쓬a-5߆˿E(prUC衦K,miSs tB,iq{Z"n{Ot4MD{d#ea/O]t]iam!Bv?>IEΡY`dL0xHz lD bp|dyyY8b[!TyuB^R&&VAU?>JW~%c%N#.7"$/_ +-m !TK} 4G3^`ծu`P,94AM  z7b_Y]: %㩚9I-)GHa*Vz%jJkW2dL %!&naHON/H'#aGv$(ȕdI$}&Ev$" \xJ'N!J1!^eA0o*5nj!䀞ߠmB?^c@J?A#>",rT]d`PPh3f|6HIG&>0Ȃ021S1z`6v㐆 ^mf٠$ )b.Jg-fhWp,*zM(*)XC:hnbAf*m.dS悆_w' sV$sq${>Gr$sz$sDgP'$jPL?W`w lBÍѧ$$AѧoJ"{JWM%vaRC߭Z*(Y6h=ߘD8%+т,fFZ V Ʉ]]R2ztPGf9K?D. c`Y} Z8 %$A#ffAX)lk陚AfdfJlPNl&2pvaFjHH)Llgk,(B,}|L,\&TLx!P8j@ra'?B*DAL"'/ ȧe|ljlL#$NhkBkFLHB,"kxLЂ.C"/eve+,A~ CDHK%1 f52xU6:&d)dBnD#uQ&-*$ l.fb.rfZ*,Vڣl*mƮ-JT2$rpBjkHˆB,wrouj/{v'8*Ţ,v̆(TB,Xmn^§,zBL?h/boq\/מ#؂-B@h(l)Z έ 06^"-"F&PP\B榫S}2G3`1O7!1;A[nDqرB+_bA  7l~?ȂUBڢ0.e@/"-X\i~^bg'CB-̾L8vp `g,{LT*D(Ny0m! mHroF0nOZ,.F "۠0p4(/0 .-`-eDc0UͭyN4_6cn ~ 2Z )3A)A_+eVfnhU6ijJib)-޶0 c,T%""rnB#Q%3sWT+L|gw?lnIjb&wo,W'8jZ- u0r.-58~`jB3_d'/Pz6\~NmJ6fF tgO2k ci3=n2LXBX@b?6ka+BwABrȭ4 %O1̍|΄ v +Pnc'.m[t lڱ$6P;%NpVA4*A4C4 r:k! !c, o6%$NoSorvv~E'| LU /XW2?YZ'E/8Z)иL|~jYc)_^ucGpdCrd/23p+(h+3LPLX9 CgE~~-{^9WW-z/p?ߢ%% @])Xszؚ6}[,70bXL+.ݪYG;9Ҷ%@stkvPwf<Řw4P9~}93K2?XL8/|^nvBz(8̚5\ߵ϶x0`2@YyP,EyުCj{J97 K?`9&0ly~~ʷ vj۱˄/%6-\|zms|wvEX>a%KDZ [/|f7koPn@#?'nǁ}{}}Xā/0|>3-?hCs.Php w0}P &6Kz-s ť_:e6˄6`i_X~"l>?> 3@Tϖ,`%?=lGOCMĸcG<9㧒LE 7t)hIb$OŘ`nԢ'D/nh?uj(҆Rw?4Jl(hh2&ٕd{ 23ƊT5o 6k- e5d81L1AɶF8/Ǟ-싴EZac)uCK!!m4љ7g o[or5 h\C<'s͡?w9ʼn%o1YsEW>j6Kcci?--#:C:!#8ˌHLh$hCI$饕lZKEX(xɬhꈬI)¨*(ǺԨ 'A-rG^dREjg)ċƼhM <(1[D;sH̳8N;>k͵CHԢ8.6gv:됻 չO;cMk58Js/FiD ?DtAVŖ6 3̈| $ $Z#htEN`<2Մp1T>s4S=s;[ONۈge?j%F7Ɓ@"t>n Oˎpzӝ|7kM,"[-=sER†GnY K4xs!-_ j|8tb[!rYzL2YFع4#T^U؄,6 F:ou#ľx5Lq$I#y%#9BE䍱#/ח>a<#AxH눘0LbN[qj;1CFO| hG>Cg?[x5WFDz/rcKRhVf җEoGR:J]]W;E# ;rUmu P@q/plD?\=oÚZ*.tB )wT|ڍfn#6Dᘯ:F0 Mg\aLC<}5r-ڽ#a6Α֒pV=bfoMi8uBhetn+Br' "9,Rԉn/lAynpC2*^EwyWz55Q P)Wn'Uh:_J JQEV1K#av!_/'Bx,[Z6 =\29X2(LNg/F66.o[#HEK$JFNéerD !G-! 7/Kc^} dR*'y//AjYe(Zh.r\G%z,b^:GL$Z.jL j֮B8PZ +t60\ =Ȏ:ώcLBL#)M@O B ^=$4,]`B<Z!`A'L$l@1*jL'y`& 겂"l]*FJcJ )4!jaqA"Ѿl0&l#6S!@$S$#l1L,b$*/ۆ6"" PN>#Ln:"h#`e7Oi~ߚ!;~TJ(ɐiU"Z7Ah2.%LDIV.Bl-x4QJ菢$ $`*J1]KH ؘJx8Wap ,,/-;B.դa!!,B/Aa/g11011b2'"#ja1Ii>Jnm@ #)+`#LXCQBb=6'7fȆlh )T8K8i8X;~h,HR2~"pWB(3nQ:^#`Aq i&($4()]*)IqK)0ZٶRsƒ`|?-.]Agg$$.(A/ !CCCt/E!.D=TDgaa3YWZS2Q17S1k13h5 3-ʎtQ p=.bwboT3X<$Cn#/i´ki6r(#cOʼ#R&e#Jr$3$ˌMXRZOM6mgIQcBt.>D?RG)%lII-bZxb)ՅUp#TUے,-!uv>>hvhMX6,1bnV cԛBҠN|KVvynx"$$9XG9s'|m9q\1.]Ji6p=/]ݕU):{߳zWxQKDDxBcQC9"~fFbNoI7ut7%(8h;At0fDr7wHVKSd QzZA^(X5ՋE,Z591l4pYU+Rx!E5Vɷ}9VK*yk5ǁC3[qmG ~9[[/GrW4A]Պpu$PIt* 0T/1=4M3ei 9E"F6V;S#My$4b-Ls\;jXQ$4Y5yw.Ԛ#~xSiۜX::᳕M{{R$̸po@ya|#D@{HKmkEw.z4#<)D^jWm]-{C@m?ؒOu:qzͩ=S6F^[+?PI$5lfZRD`}Cb%; ;'z׊`!V#&LY!T )MMbs{^X%#j'u#&l<Ĺ:@-WBH+s09bFɼq$svgV[qZF\K~CYY!sk!o5H!{#zjou/p,07(5mOUhhET!;fSM+U3KJ[ Mo6tvDiybeOT7hrp ު( /yȝ4 ySg!6--`򤙪'([?'IZ^1f~U$Y=m3;Bx>|!4tґ1[)1?"A|>sr!(SYWTD543쫾!>r>f`' akA~nS! !-z"]4eq`ɫN41w]ꑊ%w _1%.H"$pcgN;965O8ş4 y|#442~V+^f 0q0xztPB"^MvXQAB HN$0AUB T!E3)SAJ[Yj& *XP`øg_?}P!W@Dai?Ɵ^{ua'h h6AkC`c)]<#5X5.BRuUd]uh}JZj A wݖ9稺Φmvkm.oW6g|'Wy_^UjFVW &t?ٰDf쒋M$U<U=]PSrߒxL:SY,䄁 WeAaĂ v 6‚A4QJ pI3xgaZ6ph!޶o;!hX0>XD"$m `MkX5 rnsDnV;x9Y<9 c m"5}%BgA~4Dk$ m4%=IU R)_XwJ <^^ye/ӮDy^4&I*=1bFZIb1d&b#3cF! ;3$@A4QliK< A a0@ҦYH@hAK/3="-k44a34nELMbaOMPP; K*.~nPšWqJT/gQ`Gm\A,5QV Y"wЉNhSADUӄFt;c]Hϝ_Y@X+J!9O- \eU0γ[Z;^h/ք5sL*B$7B3rf)~TU:$%pHAv^+188DALq@=/<"l{1 1,HoA6LCa4f@c(4P1 &Fja8,2԰ j0D!m8"ؤCt9!xַ7^Tն-ċ[ h+ANaKd*0p[[[ nX , rV "D?xi5kz*5E*$ ;#S.Ml.qJR28JȻ h^w=:6_E{խNMe+S15JT"lw:Ψ '-@p 6dCBi``n9"a3S^~ԪVUOrZㄆL! ta7jpQj bFr q (NSat %@~c#P| {^9|^_6x )6J TfxD# wH?p M SG` nD uCCUhwgF FG``B8';z&X{EWҁS w f@vGS8H*!Wzhi7H|,h YxHхKW`TIU]IᅮIsYa:cIxxs)9gxj;JG-7be`eA vp.{z lˆ[?4omD%|^|$|ӧn݆_1ڗ#ր5pyl` I@ ¹apq}8"W}qnG"`idНeBd5&KD -? !HPp'x4 Mp; =&pV81GXX5g5vWyHȓ5vPlGDkf衝ғA jZiG[y !iOYQ,+"+F1IIՆmGJGaJCf-F Kz'V{"s0CPxRLΥ%^0f#}Y1^ GfoGn@Ao`A_9|hH9i̹_֪l'am&_U6h݉X&(H$ DwЁ4Hh(H  f.@NsjOe1A?s.Pg{QX5YGI8X,W}g@vUG5ɓqgF3w0dq?voG/ZXx#h  yh MwI^iAaA1++EZidHTv8w4y\fja[!Ҧkof^kF\b8(q=ǶF1U7m5:^h|m7Ru^fpQ*nP 8ŗ}~RNɝ*AkګnAC5t9u(3D.)aJP4P QD̰p h%X^W1yU;YXjwXGFya q@>v \ A(ʓhqgK9 9wZWpk@]+1b1K1=::dYn؆Oh-i)w1@޳ml:k G*.к \y+}CĒ F 6ǀvϒBˁ 6 F# rPf` _̜} kPbUs )B*s*M>}2M3*?!f>E4Ӥ?fg`FfBN %ߴneS2ꐘC/W+Ϛl!)TfA1E-uQֲ&X.I)6@qi6Yt(%#dƍQjnh(@ +ӱ;wj\hGB ky- GQ3Z aXA"D"/3xkDyF\#EjAi[E-eđ(߯#k 0CI͍ [i7$ۍYm6$04 0RiU( D2tCKjܐڷ:;Zœ@>7[hNcD|*_9-&3 aqHif' OAH5Wm-Ä[+ 7h6oLfr-P(HsF4$x:*T6 %6ƐpD6PEwyca~ UqX `;ɈT0T, ;^NXNK8*2TIv(l'p O-#(mԥr/ D | į9vҨA'c(ebŖvg,+&̊-ka*79+3h9F4*hlwW1)-l8mdԚ\F4MU !Sn*7#2)q5O+͞TV3H+&7_]jG4;pNuRYT^ dB+o#_:*! ѠL6dE&xHK?bgHH"G仄F]QB  m1Sۼ а7W#K4lJhH`6Mg:ӣEd*R PD 0mEW% h9 DyZ Tt[*ݠ*生D 2'vGd$3؂"A3_j󤶑*Xa$;p?6)& M ՚IkUK92!xq-  vry@u@y8?8@@! Q4@ B:.@77A8Jh[.'.P.'1bR n0/B:UȬ(RQ;8`K˥W&l9ˆ0$j⅀caacUX4`Q;j4k(Ɱ3.:r`@DB<1gN5:5ᐅb,.=`D;I%` O۔lS% Se8։!=hj!P dadt A`hPPXkz=)I0K0 ڈM'@0`H)҄B#z>+S11p%Qki8 7@ZQ8=(b1R ҉⡁XC8 ~"vQ]ЅP=]؁IE >O3t@Cj{c$B'CҢj芶qȁ&ФV(hAph۔+C| E-40\1`\`h0\6;PSx7M7؁8M>̍Ր}kA[K d B# [P;QyF# = B"ыc%p ԭILOV$`Js5T͒i!z70 v3ц6lQ]ňbB:drMA 1$! D&A,D``IN1}&Q(@dv5MQ3ZhYePZOETβ[145͞PE‘ 1<`  l#ƗZhkqLn;R26-2Nڦ=aPy8@ycc1XH[5H@֋;6\H%:捵R;:N!NCy@L5v\I`\46Xwy7\ȫTPe`8dmNT)6aQ|3wzO=a/fM 1:rk?,Af`s a;(Qr`yNuű&iyP2,1;WIpD5I'܉©W9ɹИFy?fy2Ⱦb1۰ 1cky(胖:@sc(Kd$Q]ڗm\6#s6@O[\̋νbnganɚT9m7x+t-+eC~˛R#jFT d`p/C9YÌ] TXS-znޯ񘎁QHGa"+rʸJ/#^C>Ⱥ9xZҏQ.烬9>>``cnUXaaO}[0G[`: D 18.t@:}*1rGF[d  ;1=WObjCnFM bl" d!M4G +CŒLG9kGl=.-n-kiJQdH~cy@!Sn˖ 伨8^tG\I?Oa8T<@<-]F-A#M~Q40Ra໴~?3Fb!9{4M<̭$!_)\^%4¾QQ^հN5|ӧV"[ |􈰱^Pj«Q=f)m[FgɚSOVPF->OWWӧɼvkucH>0hL_QS͗N/5>>l=Ӗ1ktysɡ̀Ԯ';p-v`j p,w;~l֊%rPg , J{GoZ-RO/3f ă5F@4Whǿ&Oxd^G4"y&[p2c=_dΓOf'=SqHpIgI#`'*q~3J}Cru!v3M`!g(Ñt:%8?h&E)Jx=U!AX",O{ 6WxTPT$A7u< *h& )?TȂXZX&J&QC~bAa("ADĀIaNx)mTWdtAܰh:.>z4Ade1,3qsиF64]FeJ"Y,C jj"V þ5Y =k|Qd V-6 g=r \EBO$rY¤1Dث1"N^Ӛ{n$yJTK =kTJf7;ua:өdgI5g'p/WW&>O :UD"? LcPƐf"g*I2 QR&T!=e$VR+c"̘D3Hf+F7XiNz&agU *=6 4`bTͧl*\%i<=, ۂc&=حrSI\1S'rɤI8Bpw#3tff%0C\z rK-tZחp-[G]$@ˋ-*AB+O$k&ƷvУz;a(4@zs"K-t. R7<{qJ!% )">Z˲ߖDr+ɼ$^G#ūJк/M &+Ykf_)u7N C0$R-ģH10,#G>R<;[V> ` TvrcQ^:$6YЀ G굼?5. T=%ewC\M@A0T@~Rk} DL]aN.#"g$pS_:n%&~cMk6+-ȃLf;#Oq <ƶi 4sXcG_\MqpB9߲!Gq(w$7q]6h!vG%cTGcԌID`L]0tc0FIƶ #0V%\X%D_@nHx 5-UTM 4ܑP\ЂhětH % H˚!IUɚIԺ噹.ɖt8 Bdi]eRE|~,fEIp3aČi#GU<&&Il&ϱ$E0j'|lfN, M&@?gߍ12',.gI^IbJ#!,2cw t@ P)?0c2.cAJ! ^3GUƨCp D(h1h Uh|>DLjhX81֊lI^E0E= cZ–ij&\ C&G]oh`(zb hMLiT)cm3PzT1 &~A(^kħUĥx ЀnfpXi%FXjiv.]~BՈ.l,T(N\ə@Tb^kXNfhfb<0a5j&lJǦS*U麠K TԎ!$ .ޖ?\,^^H'"t'wr'gwvgx'{3B Va(^>ۅj 'Yh(xc 'oʪ|J9Lf,퍍b2,(ۯBdV)z\wdN2NNilITiЮDbɜ̑đB fu Yy@|]E&)W>١ei *H˞:+YjmofGTٓ,4ɖbn!ܜɍOXnR-<:+! |b) fnhn0.ئq|3,8Uꍯt",zC o@s=J83س("+{~h]jG Zv0>!1PYP6ȺNp¶iGَy%* kIIP+qqϋ@,5J) (pP7nvlNA9Xx_x[Ǝ')"}gq&g}sV8 Uϐ䕄 ̞UV T$~V Y 'lN!rxXm4o& tEAY384/}O C $@pl.I A8|,9JR?Q4ī\QÆGˍ? ª7fYnϲU 49,]IHKٲH%C0HtRDdqe cr38D^`IȍN[$upM ¡\[$$my5 RA]C$)"@fO<X"(z1PEɲYzlԜn?(nR~(DJ5.2^9| xg;+s?Izs $*AϮnY/{a\_;O|HG>B .ҮN9İr#oLot)ҵ%٘~ (yJTRA14y?3+?IA~1ˌ07.sӦQm:CC jƭn)-[#5PZl؀`Ө-;vf̘47{iH7I$i1ߎ7P׿oR8YfE6o٢hIdO~QOin1>G +if6 5rJȱJrdFhҿg/ ZQ~<$S}?^e˄/@=eQ:8Đ ’8+I*02 qxpCq02E0!ԶХ5N 0L&QIPF vQ{'$l@(R'.,K$H* 44''yUp Ty1C <;ԳB<'3? \2,CL7t9! g ٍHB*$%fVB\U1)I b] ͢bbsuբesfSQ [@|Dz*駠2*djPBji+* Q)k(-K0Ly&q8k2`Î'ۋ4c5&@[,1&u9 ,5r uY8Bh 3B:y*ad|ahajN&a* edIܞlhB|S $Yn6TJӽ4 ˴cOaFQ6UT3з bK"IW]8`&Q`Y3ᄩ"?P:hw0Y'q.Kj &H(IJeqO_A=H9|%CkDk 5KG~l4C:k$޸lB\ʦ&Nh@3C5MDfsmFˆE>RA1TfJZ'AbF NEaIRB4.*IW/cCAE"DD5PbZ``eh"p$#*b#}p |*X2$MF1$d)FID] Ր31D`0rahGcsd$ mIӤ&@BA7LK4ٖr%JPPܰ %#*`MRTP(ǐ-qc䘙%/ 48M MQbE.q G]I$xMb^Š]DItUE* &YO{iA YG&^HFŘ]<$'yS)Ra[\)W (]6,F1D?u3.a-"PKJhX"  MS Chb 'D Rj$iE?†[+D5H?j  ׎@Уy,Ijw=FpXI.0>aOE(ǥl<+4~C>6Ҕ51Ƀ) Q~"Mtk&d$% ʹW% 1cBALd~ೠnn`!.D)CUz 8Ḑ!)9FPzQf쀉й ˘P/)_+Cj&)h!gB:JN,IXTPS_)6M`߱wG2R&-G<ڑ2jDFoK].̳XJ% e (ՋA`6 q& c< ,E,ќC(S:8@n&C!4 u5*LZB^0\x:$"{k"a pV'_YuKzR NV=΢o^JS'9aOʘX@u(~CmIސV4YTQ-,5Ƶa뷏 (64{ \ɾȜAv(A'xJ7T `UFQUQkd>%R14_^AA, (4lPF^ :ea[g`%Z;P'H,I _:ůq\߽=u}(GIDM\&AT Sh]+IBzrʔ23j6isHJ (!cw925ɌDXO**BMK73;UdSC4T)i(]iuqMu9>l*xB{t#%j Os=5ROQѐL5:ޜ$61`Ab.4HJ#5 ~i l$n7 l TK8kb(E.''"g^Aj b3P4ʪ"( Ql r0eqJ+Fa6a0'~(~(|"' Ldx$-nabނЮjNĮnL n-ʂIDŽ|gw$ꡊG2M؈2`d$E!F*r.+PM.*,b"nF,zpF ڪ0۶aP~8S4kOBERhO0/.~D^j1 f`N+.诜/J > j`wCҧCހO*w iw~DbIvפHwvAtP$JدvHDM/o.$+ي:-1,C1GE]j[vƅ…ajJ]K &oҪ"]"Nto04$m0)KQV42EN!RHHfFyb%F,I. Dr@ Jp dn~3&m@&V B 1H"sj@& 41f@| !qFT"2Β P(H ر! X6V$cqKtDn.Ox-'nTN c$r12#<f L& )s𯸠o j|( :_J:x'vwIwގ\M JJuJGC9LBJ&2KIJb# $?2Pܲfl#*+(ż j],`p} /F#IKTCT@c$S*=F dbČ2Ft(F KOh z@ɂOBL 3S~3XoA2 ՐH!,",.#5* tў ~.p̉&!c32nd6ERWO*Mj'aq$E  o,XwvTΜ DSi1b30BҀT5u-$:OT'w.|>cD3jp֧V5ŢOI.4)MoD-o;L^[#Iv.MBx|oJbRJ@LLll.u$KG1s.nL 6y0IלXG*$BKJă˔Fc@jhi/g}641RxҠvi*"<"^0/q4)Be!gΨiS$ʵ2N kt-t+ G2P? C(-MzF,C |T/Gjd&MD̀TFnfo?B)"NkA1yN]0buX~!F1"2KOT6He2BC^V,OyT'4yN1AUQU<_Q"~}? ƹOm @3+3!Lr,0U5,UUVm`n`OJC=pMꢋE:G2\(dž!q+D+Jz#E:acLS!fr"?rJ&m'wf"+*Mdrz( n=E}VM3^P$hK)c1romD7dmՌrGDOnpqul`@ d""U ʡ#` VNVtIOJ2,1. @ԳSӺ $\=V{N֯?QO |D3Ơnh ) <kg#͕~;B0JxE.TZ՚›.⥹b+B'|z]z}X.,MHIn!EGGJ.2tcq4EEQ Dw9yz 9swzdxMr1$$dOl{,Z&! g dUaQ#a kʼ|Cup 5N#|h#8*jzJ*|j\Aʌ<&+O\t'7wAns~~{Tϰ@{YRVvPnhW$B@B$Bֵ9B(Sy;?}ןi~UԳpTT-ҳIx:K=ϝ;SOb#M"+/V{b+";\s02q+>-`L-W ׺/7޸&$ga#rred*[R&" H- ֮8ʸ}]4X@v-PAPCdOihIȬ&&! `UA&2)`K!d-O 7!.ԪVR(e:T*/;<5lg ef[,H8^cHF5F!X$C 8 e"98C260eb /HAj;Q]\PsH~9դؑ:Ɠ $n谱3ԞC4>g> ٺ7Z"'AAPz23!@[$!VvhAo CDRvy^*H6ꑍH7bSrV*R2#rD(Ev蒍&QILS$6 @9aι Al'h M QTL@.¢(1I1C$E_IƀroܜJE*mDA&&yZ',r5 .Y$U@DYȩ,=OOQSE n_kZH]y(T-$dd!RW p(ZP-p)`keC"(@ 8Єְ}?A|;T_a_0”be#sIGRutv6h?LLgh)m2/hV:4TY99gH@;)|yc%ˈ2#QF] >$+zVHbamTJ+@ W.=L]MpRYjQp]LD0̨*Ӏ4ص]5qm2-xhv*V*ByAD2>՞\ur5>Z۵F@kqҶgwm綶wgj'nC1 B`疑ƶv5倍WRJ57ycn{]%!&8lp`9ф"3$tp#9G"+pXMv_8 ,h#Rq4_NO8t&"7r& "$v -ge$ p U * vp(?b$FyQpcNM806P( /0Z{ZYF#|+}4DcYla ;[al=HǠ Z!Р\mρm52\R Rg74!0U;7`j"VB%6Y#S$"Az ?P,?Q<%7Zo7 '^,3 ? f0JuB@~Uhug+F-(ɰc82EaԶ[2GBv@ bwvdpJ$q-t'Nb ?0+Vu6v#$BRXK.gKTjJbłg5aaA&Akq#ūx'|IJ-AP3y]2'nփ=j.jO0 {p/: Jk8)JClRэKE4%[q\H%::Ҥ)¸IAI(K]pC2]]zC78oуTC#+Є#,3Q)"%7B)pF 6^{ >ZZzkDcHܸaZ/!B(СvP TP%iD1Ɛ";:%&*7fڼᰆÜ2WPDE4â@Q1If֨vf@U UZIJڴIv$;$ƍ7F;ꐛCc28ɿIgz֌3ֲDƎ1TN(.88wǫWTZ4g]+I3jd2e:'e1bBބPS<3MTn ܈9tȏ R(7ovǖ ^ IֺI"{C8%rÍꬳ 1CB@93" o<Ð11H-hTW Tj(L"!L{CAEzK]j|]*I#4X*u *‰r"*ܢ*< *D*#+$&1qC97sGv >,/uh'2L0Q旃PLPze^mLr0;l;ko>.Y24C # ae@NK=hHbF%%K;εkmi &D ĺg1'k<Ԡx2q>z3B(cHA+21Ps7Q01dK]tj 5sO>x¡@ _Q%]FEINAXhS5SQR` `ThRpTR CP ZāQLA $$\iHէ>!J}{ ARBJ.QxX)} e(H? >;$sP MT ҂ʫ WaF xE$T܀ bRg9k\@ շzP*D>+Ka DƽtO[-VmI6Jӂc,M[d8!NTq[3C.8lbg*hb s;zɥdp @ZB zz+%\Hy"3Y`(1(9.$AH䷗{]1bB_*-r) PP( L.UBɌo9xTécF"@3 ;B ?qD)(;S%kDKYHY1kK34S;h1s*hwr3tZ5xB ]EE {'ISB#"ЊˆlTBoixmxFok k?#bwB"+,#T40Y)HqJA,b*Y6 dp|991CUؙ1ԭ&BeBؙJ 6-I6<9ál@nbJ@D`+?B=P`9X`ĵ[ڃDqHL(POL!‹9  x T%CEy3±~J|O0ajb,qpZ5.0p(³l1%TJb „uNTP0˿TTXd6TLШSb(TչdatД@(^;DD,ԌDth3{QL6B( I/Qw5D56H*MhHuB5XH ٚq1TS+5bTGx(qq F9A -8.( -96Z8({ y &C@MpQHFQK_ڑ!9܁HA 5hAMҴT {"ۺ0ͧ7a[ʓ,In Ji"CSb@JmژKU :+Lܢμ2 ؅B=I 0ّ!RUqYؒ.yYU[ ȞDAEDJ͏;a0(C(KhM9NVi;b38yra`75)ɐ$I^YP! anah @" AF܂GӍӰMHRQzR*U]P `%ȋAMEc訂e`KKPZF*SO @:<=H ч iZ HC@-z &|&Ĝ#Bi+!1E|9iX:pk0H-ym滭1#y-Z$]t 'BNCӽ_˛-×E1W 3](Cl-C+LM^p|9`eG܃ufBME xK9jP/Xb9_ MHM/AL1%0`Ђ-ahiQQ.3(Q y}encica@aQB.lka:%)E5@#Ƹӈ$C R:A ו1(I&V& XMI>--VZ_1Zӏ7H"5 @{kdm4c@GA By1[r\BLW]#<9;38(1k5Ħ:^'̙ W)nw܅ 0Q%<]KS WZ~'T2tfrxLNn# @-gtFguDՌ(FLMg|v֖S:E2+YpKh ԕ招`RSHq(p Y,e>[8V(-HXRi 5yԪأeHRQ j6)٣[:0 E.cZ3-9Ap8P[8PZK?0_QutB\ZASTBse01 ˨dY yDG#bu(: Ƃ)q&>3 #FY7y/p,uɛcZp:Bo +^3: =!i6#]`dw`eo y08_NKgҸװەLH @Ѵ(չ[$cJLqVP)B ӔO!h6҅pTP7`h`ka@` < Cve r"7 r2iڭh`tFx|yjX;pI@4QQA MA PBRP?P.s&jB/8kHu*iTʯ`9,سg .(%q%< ,@*//xO+^2}e86^ƦM6tk׿wRoG+u%K6FaF01JHF f7nl1h35sC̈́N5ak^3)!B--!k߲Ȫ"xB s۰_ ;T-6dMw6vf j&M6 <Aa?1$3[lbn"fЄ-U("#hb"-OF#D(I|;$^zv2 }O#G$,.[(ogGj)?`+),UĚ;48!~j?w)al?66!3ThI貃"Iiy?8$2*$YOF! @t4PT$kL:l0jP\ٕCT Fb#?nI RLːM8?@ P %K ,.qRP?XYWK^ IX@ [t1P^/镗^{+)qH/¼/cZk|Fkc415_kFq#L(I4l vtrRvGC;w;_|x s!Ӱlhd&GB"v7h"ƹ!} #- r-FĘb+M &iBrST6A &Z]Y,ĮmR]񆢕P"6I؂j1Zзw3 7Oxo/a'4~{;`C@-L$y6#BrBmBa%Vg+Rtts԰OŲ A By8eh _RNVzɫkPIK7pso՗ŐI<-eӗqS:Nrhh#QN?5?5%cĖ|GQ[ͪVLF50&nM ^ְRVگ: b֮ u _M-'3kw 1(C!&HV׺R 0%``J/0d+Z̢Y򏴠rر8kֵuHlh3GN 520mg=.n ΢il#pT5X3pts fߚӄ9Q;4Zb,fQT}*V! c pEsQBlg;<eK(0#pjG8{bA>r5{.\M!M#Ҽn0H=s4g"ik ,Y>_\,W*U%aJ  J&AIiy4)Iݾ(9b>($SB%r+$MnH.X;貇0t܊˅!+/L ?=[Z{ Ƥfc" I!ZV8 0XAPA JK&PMĔ 8B/ &P?֙?xatFu!1d$Sy1b(Ȍ &|&|}ts($;H>BP_X\Z@_?ȁA dqCПIW`r1[&EdBB jƠ! ]SD$GJqzL0SL)f{$aƇ?|`ІlHtV q;G0BoFgBq0Bة$ةe\;1X&إv|iaMS#8<H 8|!vޜ}eM` (( ' EhUٕ(@#X)Zk1l&A=Sm@0F9Oe H FIal0I5UeQӝk |問"̍`Ty֪Z]{#}ڧ|V ~2[Z_g#{Q(h\ՍU>&lcL ZI$dYEU5NCF[fVFJ?gQ0t\U=jLWU]QIɌ ʓJ=)7 '-DG!C{0)C8 % 2g[mF,Ո$H?H2?2̭2DH#X/CC@4.XL!j`bJ׍zͦ2D~bm{`("g*g?'] #nUK#*i*DU^)Y@ݬ Q~q")JPrHtޚpf-//}k׮oMJKP@JfZlE{}ikY ()[9Ò}iq,.},u=Ѱ=V=5[mLX|:'Z_[C#$` C0E D-ަK3?G75aOS1#mf]1D,K0-.-ȝ҂BӋ Wv?84"*>_"D\ i .mjǔM{t*dI4*j#> @b >+ >r2kYa YhJ!٘+_'0dm־U PUf>f^ [o,VZY0p9^'NC$ Kb-uɲ_XE3QG0edD Ņ^ pX `(ԴLDdY+CHbGLY/TPFی.c'̀`6f1Vi<2?31H2Aݞq*W}?Wg%ܑ8SڑU% b29cGzS#g@*g rXg.@h2>*Ă+϶6*I>D&DPbϩIɬ2P54Opbp^X.MzDG8s )A셐k}2[iR.0A&_Bl)H4q,C ,ɚcE$DDJQPʎ(zQh/| [pgLhw]Nߕ&RO8dH/,uS7dmrē0~uX)-T3Bā+)UulzDGe&Α UnfNv+{ С𓠻 2y4$HzL-(X B,vgj+qv BʪZE6'[//vnumʘ8 ?,Uv]u Q-95j2>U@zCLiEi1ľc۳#:j  EK/x8S O8 ƒT=4bڴ<(;d18 QKdb]a"PJR8CH`bqYܐl2Cv9E9#i豗HÈ؂Z */=Cșk 44d.^3e!*&-nz!{Pw߂$k_eg* =5 2g#vZK|=U曺A@ $*FUR` Ps C ȁL7!PUx+Z/㯶+ WX@A ̞#}O<î4/Lλb= H;B[cAA8EF ?4@_C(`@vWpbŊ;H؀D*Ar_:&? >L 2 \ ReK0z7G$QdǎB[=5*$̏PB *K-YUJ[*vb!33p%OPM2ύi5JB(C2+ )klԠQϮW7(;vf֝Ffmgq4R6 mfi"Vb&TQI!Iz២aL`,G,Q2걃:(0 ./ xI^O#>-* *P $4L /(9yN;Yg) @ %4PB a xh4F!!%KXT%, J*25Br"29$K5˔M0ȻJ*)C:Njdm'zƔRr)DUPߠ!2sj-HC QcšPBc*,[+.z"} 7 jc̍$Q9aQ㟩0ӌU@ :404a#Z`md\ 8[L$ bsMeJ*Q6B5<@$M($?,+꺿C=r >~3&)Z?idsL^dI&QJ,Ό_*|.MH%.SSUl1D0t!73M;O yB!RxKL-ȋo˰gmQ'zLpL\_y뮛u-6ĤmOv!L"3QŔ03!.@2r  ADv1 `CrjP!QCa!1D +iSan%XB&3KhUD T0q5brH$>+C2֚('&fycR$)`j\@! )L?i$HlH{ (7crQ2`Xؔ&+gA(Y % #@exT˵nHя2Ѥ*Yt$$v,ݎujZy̹҆V97Ԫn '?)%(JzTWXz>־|-KkHAI#~#/AHDNh QˋĴ)Q)ANfEr& C5 caa2 1xt*U5D! h[j!Ơ-@E8>cƪ L7aYJ ؐ;CB.oWiqwȳčf&+-$=;}죘 JH,It.?eC$&8Xp+JdDi I)7rGcd& ?;ŸMKv$Lf&I ^]Jǟ3ACܱ.f*@J w8u',D obT(%F] T,P9:#Ծ'UdCH ZG g6\"uqT#y\翊pcϪpj#[*RRӮ\V?6sub@TrŠ2aJ3절oP\DpA(I5r# 5Bh\D DcM %x%?jiUDڮqu #LwS`rƓKp7eT4dg|+8mv/k阰RK]֧K l1aSdH ;V8u/|k'q1(:m*9TC B_z!:~u" *'A P1FLV]4DaAC qnrh~ԨNQmL#ؠEC~DѓR$N Rυ"uuNU:KGhpJb$mg8K 5}{ӳ~| ;77a ֦"Ӿ/(5r(EJĴ<J)u<̑Fl"TdK^+V"0 m>.lLggڨ|f#bBbbYE/z#lbnb****pꩊ"tjaf.7h NDvqFA@ &BD8^a&B(n#77 (e\#CF?V-:r/4zTIToIDkZ`KQK#U1=\zM#s)* x1N!i'R3!2 ޲r"N@vtv-]k8w@syeg% IORJ8SG{NlJ̛ H&H1^ll Lfˀs6`Z }@ -N.fc&0Mf9`FDTDEdgf4n$Z±@fˆZ8 P6C6"5@M;,;$-؀ .jsNŋ?ꀙꀴ<1s")q5:6dDikMV>Js oUUA4Jآﲪ3Qs=@NQd< <N⽨qsfmq;Sk'r9]rcUV! Q*"&chn*BPp.G銮ngJ?j5VFR#dY` cHcR#jj@-@ϴ&i=zX-b_vK/ThѴ &$i6eEʋ 64G"q}\HSQOMR3"[doԺVKkBB՘T G`UUex&y-QLAW=vMgvCT†t'3OHsҋq= "P`to<4Di#uIƖHdcPC&c1T8&dDj&$DBJCgt歪o*R0j]EG1Ehr|Mcn$4338R#oH,BcIIcR:eЈ gFDe.tlItvY"1J*SrYzWJSSNЋ.C2jf=S6yQJNN1Mxdx~vl/HHbKMKޠ)k6l q䀨@(1T0Q_ J|l֯vCAIE'kM|@Y1Mgeo=ghQn*>)#T[/R0'9]OhOCw@ WŭZYJ6$6d R%nH$Ƥ,3ZƉ(99G;#kӋ9G4:zgiD0lR+s 2!3f5dsy1MJN~&G5Q7 HWSvS Hx􃍇s&bUz+r RhJ`Iĭ:q"3q6Co7ŴMO IS2oߒ($iXn<9>ӤN&]&5fnLUd(8-hHchdj8*Bc&AP)3$+cZbˢ9$n s:Vf!Of foQj4IAQǏv%x n"SS86tĻcT ;ss02LVO23?Yrxl`Qy;"t}̸dib{ɧj8N4U57 g ;JFOcx" zQTX[AI[q0z9:] ^L9qLvK1 2l5{ЇEpG@9=TYP4ry+VtLY#W~}3XD xB$6\cXyn`f;FxA: |!fҪ<#kqɷpn$8?xI-7A5 |X>:lCGY[+,5\QrWش1'ۇYOJ~0~5w6!goiz\Sȍ0R`"D5GF DW2%h_F>a4F*\TQFeJ|a k⟉A jhL :65*(D"l @0. ¢R¬:g"`_{_ŊX < l9xw64^ /}ñ%Vwؠ :4Rn5 knÚÇC@@drv$ӡn(_F;ܵ_@p5 A $A$DAB>xAMvfAiEơ{g˩h(7`Bi|Y xia_@WemfZ_&jQ?%Za)`Tqn1A ?݀ydWt T?UE;C\ސTX _gzr5y 9PBqCoBKLeR @E.tF4yCKO&TqQjœY#T V\\sZK&bg$htf]aQs]p-a$vcUFIeDbXd^AK*kq5Mrqm{V B &,iP \sǭW^4]WJ$ 9)ȑJRqBuҵ ek@:gA)`->E҈%die,q9x(.h1?֗8w|d [ܫG%uP/[cnyTS`>YJ9%('BIOL)9B:E`)oR t\jYCz{EB@`BUBnTUшUYeeA%u,sgT"ce]wׁQ\YKc6cY!!ZA:Cz,JbRZD.Yl,X nl( Űp ؅2Ta@<ѡXO=e Lf [  m9ܺr`/ܖ.TBMbŃ|yW3)*)|_ E*4Ʉhȿs [S(g֧HCjdA7F#3EVN"D1DD7 Kaۇ$)rM~P9aN=l;tE/\ CҕYJiVEQg+7*)C KVzv!bB6ۥ+W<%, Sn4WWWzS#jm ,k!/$/3)l`oB{_Fj/0kD#uv?(-"(^fcY$!VV(!%FăԤ! gBeʠ1$-mIP,;M!Շ.+͚că'gY2d(2CAh|'PC9꿸ˏq|k V-?jU 2Mw? nh6Z kdpж=DLЊfʞR٧9ALkRnnħYr)(@(Dg)Ge,Y'9Bf<~ kilL*8-XK7x'Q6QZhlQ0;!!nH-f2s雀Ll&|/ /5̗Hc9Er`jR$7 Qhq:P?h LC6aGvA |1IP;Ca3RjĜG5mugep4:.-/Z>(4*Puf@<A7ʙt  ڴ67 r gFA%%:!+Sʵ*.0|zu_𴄥npD]%')΍P룰(fPcoOɆ2F4!} Y$ U@/~I@-&[E!~ˊIf=jC&H14\䤷DP_k,QNBIQbYw0b$9B4E223r#q!8 Pc1C 2 H94sH%\TK6! YgfAS0q5 @'/7RE>?!O s*@OL3<"tZ`7/4[yK00`wYwyx0n,TURH$|^l'y0[jD'%yq0R`@0ޤ$alSA  lb1v^%Їs=^9$HFBQtF D3PUC_-E#Qok$$-d!@804[!8?a9c5r%, -$Aq  Wc"3&EDu%kvI8oQ&IGGB.Q?pdfe5HłD R"1"%@gf("A wp]Ek%q0 0D\RNim$p~/|yvxxM c‚Q@: $z0Kbb~VQHfQh0W0UD1U _Q8XA tQwWz%}%F`I+}Ndy s/(au|hJ2hSp[*e!6VsD,W,GQAQ>S{ZtA  X(`>,U>YmS="pqՅ>H@}-n$X/|?~!-?Ûp~:A$sICR$U+ CC%Da) XSPSASߡC0 99ȁA r" 21;dzׂA/$)G9EG٧e|$Xs52/^fzTw.4ZLd%%D"LV2G\ّ-IʡA8'ju[}cFmh/ Cp$U%HRwn/I_cc@b,6Qt3d{F賿7쵪ag}q6~Fc~w7oW ^@hw^"&szqvI!)R?u=USq@rg,Ca ,rb%3 vq:e:Ǵ27vc!C 2 %ALc:j{‹ T"{6LrE8Qt4"1 _uq@ƺ{dyi%ĔzYjrr P&Z'1+q %]镢VNft05hlkYTA,As >u\@Oz0,"43W}fG0 %,4^r}&W]XQ~,wGVOJ4{v}O|EJe F@ X8nR([q&LHe^,4aq7 =r= CPCj2q!*2!*?$S2-1BQ~1:FS1TsQXfL{WxWWVWwd @7>sl/T/i>Zf"'י5< vI9_QZjB2eykkGk[XHElm~j$~n[4_"@`7[S'h*K]L++CVTBU.E}lǐCc*sScU}-R/52R] ۂZ3Uz6U!J# o#@u1esСdKf!`URF΋83PMļd#eX¼OGH&wm͟I98;+t @P prQrs!B"d:a">Nv񨞁"tBW9p5 P0 I=ֶ9kv=aa>8@E/V^FXtEHvގ7#ng[=r"#BbFD13d&"co݊S&d*C,@eO#qq,A2ȋk%:֒UUA^1tM?.Q{o KE<'z3%W%IIMġz1d,S5k3J/ 'wq^ig#yl/LZ²,8 PPm*|vX6QdPkpGee I`OƐ ܩ Np#9ϷiR>p Un K^ggl%(nE==|,Q030 @C9+51ƍӆLTgR#θ&6CB=4C)C.^kH!Ց3SFצ!בqrW6.r5o@tMouPto6~4OAP"!dR@ a)8`A !",hƂ!U:(>0ӄ7i 1Y(:F[j鿕!!*"EZjN*תNöq- @_]\Ê}+6,ٿdvBʘqs$BtV-Ma]v6ABiDDkتOq/tDEU,.Pu ..]zkٴo>uFl@ؙA,I+&2A*ԨtSH%&n)L -j6)LKVbi9B) 2.ںkJYg sfL1r!&fBRĉ0j3Tkm@D@J+ r .8;lnի|7J6Q/[9xf@eeTfpy=>G`/ACM (,4"y=// }HjiLil~RHGҵ2K X"*J43M(T|o5|N3|?)rys; Pm$=|KNK*ՙ, W \+tmtL4sa2꥙X%<₢QGe5W ] ofW؁RIWz * 0DlqٽU6";Ima1rmihr^Qf3gXn AG(s0 k0N##6a.SY\[e3av$G̞38FT>8ƞI`B4Т*&WxѴQ_%ڈ@䶭Ii두 HCn#RX |t*e[ 1[\$ermJ@ʲ9m0"enT+;*vL%<\~(LJ*%*WʒI~^YRTy<2gZaVo"8hE V.<cZ8AgX?,P5ɋZ=L2+bf }mmdD69xPE,d(C k lVBL[6 OfV駉&艩s T6Ù2Eb8x T0*P|&!X3=)ZG?Hv|kJn2ȝDY.q!"8*uiMSڛ %0ir43u* 7INs:wa0{ޤ;iEWJn*y| ,OwTEM6e.j-]DO9^A@"R0].C%?ӛ_bu?YG.$-V^lDɳiR`1[XG6{d%1!MeܝDZnf..XMk3K1oS+K0w0˭h_CWJHB k."q,w3/yNܤ{^zF:(F6fqui2Lِ Da57%aA 1IL( ,C9n{`I9<)*vpb[@1D!E';x}q.`rˆ:bԥ.@%VjF"QZMB׼~"Yt-y",')RZl)X2MQj u*Y6S&B}w\&@'PE[O{շJf[{\Ru'1dVS:*Rb22N {|*d З9ZNxk1pg< (D\eclX!lFu%Ñ=$)X,(hª#i* sZԣ*KOZ̴[@7D$8^ćc*()cD9)3#+K:'+;29:2!+2@/:Ʉ8%;8Q$E%>;A9- 5I;R,:431+*$%DabBآ\Ks0H Ph2)!(";:atK?M71$A @:Ƶ*q?1<@L3 :l+d`{3"4*Q3'AŁ,*4D#?*AB>ѓ$\ $L4.L+Cla59Z6)6c>ȸ(jJd[YHfxs=?\'v/z* JsŐ' K(XI4Txxc(cw˟(}y*Iē!X#F΄1b\T) ?9tК1DqMDZ22 | JNDN( /xA5KH)8ĒQȫ%)BN E}3JZM{ $PRB>b@6[JNA :* $B'T;b;! NFU, feD ֽǣVlQңtJp5KyKƈ6z }XZd]nWWz"uAQ=qWױ,XdKeHdi86"`dRJʍrҍ$!!(̎qp{ } 3 }Y!"6\J\3Fp-bT@Ӆ ŝbZ*Ru,4Z ۩TZFiE)[M=aUyA#%$Ygl)/dCԋ x"d-ȽÍ]R֭ xw5EQ x ^EB׻O^́Qcއ6`iDꨮpPtj֥@෤ 7za_1!5̬Y)xȅqqEHcb?؂@iclRLpl8hP Z >a|lWYaEa&D!#aG-[#)/ ~8:(:b(ս'$49˭+n]u鈼YU;t2N־clAPX_lIhQRJvP~/z*dgPV&WpݬD/6Jş|=l{%SFT{-޴tQ׍CsɆxpXN,CaW(ÍQM 1 @xLgTH5$k00s!``l(S0L"h6 کُGQ=Zn%ڡO% ݈M06L%H=8ﺉN} $&D <B.$::TB\F:$aDj iAVV7p7fj0V4 lE pk}%WE=i >xDD-SxFQGkxbܐEqmp'MYlȅi68 8( '۸C dU$2[B%0M  fZbЗ 1]1Mz.0ЀHO߆E cPj{nge^!q 1v8 Z!*Sa9lۑ(8 dhMa֩NIHēJH5Aεy73IbOE+ΌTu Ojpe}w)jVjoD]pEd߽q qo|x.&PثS=ǨW)Wxrx=xeYdzGez"H؃6͘sc D 0{ئv*J'A Е[,M1鉝((S(Lt V7S8XpS0`XL7D`=L(uЏD tMo]/LɜΙ’^T%hvLeEo[av%q[AOjϒ?e\`~{cepxZyIGCdA^]%x?Xxx|ׇeq͛qYwWG q0@c"]e TMR~eU[6$DAї_^TM 4E4`BAaM(M %Đ@!aIH(TD%tPutuH+C/4?QDj [*rK6ʔ(pQVUvکV`AE%0?jՖH%fWvetuqO_mUCbcufvO6d xFi>$Xc1<$dN dWC"<VQW V׵e@&g^w-4?2wxߝw7xIv `{G*3Vj ,b?Z]uFg(/(FAnxKܭ#Ii@ Y5†xPV]mwK)&mRn 4ɩcQM &GUE v4PA9pRD_QLdFT\NWKJVIjХ( EΔl4 E5RO ^RUVMne{4Un@Easwu`ӵr[u[j |mڕ  +0 j|Ҥ `X1Q |6(ƻA=6Fz0lP6ﶢ&B\b@e+CV8 h,9;w^6/x |)1Lژ6(F"QpphT@+O `D/` o>Ut#%"gF433)gI$wxŻ~>A+'6P{uAoc$x屒:rH]v -B[#i7!葂lGEd(@ ul*[%OnrKՕXet]T`x)Yt @-ugNS;Br`ޅP 9 `qWzPN(ODk7',a+URЂ,hQdT~5[(ȋr F\ DM : 1/$ :@N@0VbCe%XVS,gQ O[5jUl Ğ>rZؠ;ATt+jx!^CI-o\%NҖZtMjR6ԥO=nVu;j޹nqm}ZʍƴZKUT>T02NMCUz `.;*T'cIjO6HM+r7V5v[ 7v%բ)A;gA/ш|^[%Y}xDZ:8FSiP@l\hiPQLiɭHy0 tFg 5 )PGlEq ѥ tC` {H{̕[qTzGكx,vL]ܑgYaARh!IZ!mE!|衚@@ L-]q$|NEEDF@ GL@[DB\ Y ,=m=?dɗpԞ?פX$ѥSWH_VUPW%&X, l 0K6텷ODBb@CƔ@Il78mSihԣ)؀ tuё$i XճEOl|3^2f LH҉Uψ%Qx Hn yGyMU{LጚIZh)#QNnui}^a Q"eRUIr!GxwIޚݚ4RxMH'Z$DCâM4,??ܯM/~凘V-:o)-y,%RzV߭M(mE@2l艪h A67bZ2V:bhh/I=/ Mx8="΢pM$Sq=@.^U" K#-btJ_JEG>[<[(1'iy±^M/4Uӭ_79U!5e& ߂`R]j|i4UDž)x̏ dil.i@DUV*z-NDBRݠY Y!V`̮_CJQ}()@xnL)-ֹrFrZ^&^zoEoJ+.6f37sv6/o~HVbW;Ȫ3hY(0A=7ОQ"HA V|ȩA+Tj8VPUj3 Т؄_EJŤ8QA|X HFc ,_-\݀^4&s# g7@B#9&:Fnjd\ʼnxRy_?@x=TőhH@^.ZCtuTh-<j\iX[IJHU/̙tb{!|]6N(Zf_@knZ&y(hCaih+2eko3˯k6JA6,3 X376[z6†HqSw! b-sK,>D@.}IDZp)ߔ(@OTVMYSmL LL" }ϵL9*ŤPt Dxjmw8r69*1=ٞ8B+HuR?(nMل\*9::|庀֪Y&9ːhV#9Z_SaHh_+%\|)YcK ]"}.C/ 90Kk1?#R6vv&l7^7mArz88/6϶p7rH: l֨Dw#@Xf1o8c02Y lc4d @ڌF`I"q2MdY\eIs\Q=ILie@9&`:mLR#35G\BH`lMpF&E5qXHųЌe^|t8Fm:y33lסRh%>@H6S(jpT9-PP& ' IML(3 b0(jiaҒ\$ < CB%`)M)YsSp=`0H6Q vs$lAMS5ͭ1$J&Bs&$Sb`*\SHC"r@3@M^ଝVQQ\&,98* I&i^x \ \@ ]-_BY%~P2j̐ d#CBg&254jaOj2N6lr=x `Ùf(f] qްU9]35j:<  L|B8,`7U:+H #TmLg2S7D'J9OFɅ0*=-Cv!FՉ^¤VmԟDй-vikJ]yBs{왚CQy;2xXM|8gCo̤" Y{Dަ (=_bp&Ekbo+ N²{T]#L[pzR\\*Lq ;U $_aٌvx-1*rjTf31*gsEd"AV21C̝(q&_kиc:Z E1luk€-xz97iMLKDt+ȴ4]ՠ-Y<:i!p.Kձ`ָ}$4Y[r0+hN"[>۪l[H?[}1f @ @J%ħNT YDfbVlBYn˜b)p%(,^p ^`B*VZ[,HxO ŻI #jf!/v>:S4,S֞l%&ʧYnb||ppK} gr)"~%hĺ|RFNʅ/HRJ2FH NN>##_*CL3#3,艊'5!ꩦaPZ㩆 9c4 8`çd *fX Og +oQyf͸Q-%Ϋ.(EMJyj2KTKMɽ0!aBOP)qPMƋCQl/`D$bEC$' $jD4>Ox|s (s@KeIMOȫΆ,?!ooT>O!o%&z4"$`@%bZbYL%ps(N*BŠ",B?[ jj@%/-#m>#gA'3j`䥧R2ɖ5:&5̂ 76re6a'!d,c2CNfȎP9Cghgv0yeDM$%ƱΦ/NLB3+N0 纒M<"aHM6k!T-Dt&pG>! "PoK4=+lmPOPdtORވ~S7-1ʯ#-mkPBV `g^e%W ,*z4!;Yp*üip+0=)'[?e^ ]C0\n2#]B_Z2.T_*4,˞bTtcHCG6|_NDUCJ \tTdF*H ,y,9|tCcQU !djl@L"M"Me.iHUMQ2LQ .AUi 1 h/1?DMSHkCPbDtOo2z9ڦK^xkԍBP#TWv2 @, \E"2!0BS(Sf¦>2~$ !=%0 vۓ$~>iXrbr"]=W0D*ZP-"ʅ]]A2*`)cbLEp ;)_c&dJ͒8 P:09ffdf:. = n|RUW.M&faCT!pg?dMԆIJSMCl֚Ble kQ1l 5Q\wOؖRz1PKqJ)O99,&WQFWsR"OfqW&N=AV.3/Q" w%SW*")^ E2F!N$g ^ad#bé fC[uD6dyD5t'SCܗ˔3$6&9 P*:v*CbFd8f 9/NgbN2+m8dA 8rIƝ9ojսPPXT0CiAkAO61DjBh/!iMT$6P܋CDɭOtg)6xsބq2t0Z>΢ߴUVqՏ x&@s'b4O"&%B5qsv y98L).Y%&0޵\:BYA14&&^1`@C}ycķF6lC) 1RFWζh#hNN&egݫKk)j&BLBl-qO>hLg̦N16M2mT;U1jNxRǙ<"UNm1@,؉wnIzWzovToySQi/vLg ̞6%QX d<<%|"tXƺYYP1/ʣhxbhn]%Bn蠗A{|#7,{4[<:'H5ėˢ]{PEXcFF_Ro0jpbDtdHu$ 4&G\>>[=F ]Ѷ#Ňۘu99eC /ӆeyj0g"(Oj֤Rɳ>N/֝vj&RK/ճںqF(FTFg53zO>LtըIA{ɗRhĥUVYzC>uRUQ&؞@DkTB%T)FZut7l"͇'l!<,r|^-"/ },z1^U.L׼_˷c`Gt{`5XC4*dl ߼F\$&Fd7vcdWGnd&nOGr$Xpx (*>#͂)mf?}9Y6/MBOm(ˠs=SP2[is T xQp݃_8Z5 ;9p]SQP3naM|G%#x>GeKq?x#`iAdt9ɯ؉j̑qUBY%d`%5F(viR)XTq! ^+ 90'\9$:L IB, \p*fhŋX(g?9⣜+")gOB,j(GN˖)_R患XJ #ũF5j/, V,,X_մKشubrJ؆a"J/?1Aʓ/^N  .P.wn}y K08pCn 'qdβ{wg gIwt0@ b4t}E AϮm c?~ȟ`6^ +tw@uw @! چ!8ֆLTԘjXc:hb,c!Vx0?d5XjEV_u`VCe[^ E]I]^fB ZlY]uM2$]QD1Н`x 4C=KTF `J?tLMǨ*jSBEdMR6S]T^$X_Vlg,Öp\%hH"\,:k\#@ 9 25sH1h?v""lyCjnE8fAbK?]{%t7rlox_8e][Q@UFcGy&'~g嗠W߀ :+"u"*Xbn=Q_D i$jTcsjvjSTF@O (xu^Y]"iE\p囱J蝀Jq  AxVdFvt&]ĂJ;LhO2 5*5! D餩(1SM T]VP YS%Gߖm 0c?1cX5.\d]wFC8 e쵲3Xuu4ܸ9a"9dxs:;v4lw 4c*gg#fhٙΎa: R|F%Io?:RLhoІt#.jQ MT"H<&u;x$@&`W Dy}"Ҙ䥳,fǗgk º=]'BB*>E#iDd$KɣB;Xx/2P~os_Z>S/)M.sѽu]w I.qLιԦ0ePwӝ.L6PmzGl<;$E5)kM;- P@ LߋY L#.њ2!ex(Řb?Rkp+|MiSVFQiF"aM 8ń6эn"c8F8O%<'Ǫd=;TXpL\AeF18 jr1h>ˏ AbPAhB@l n@ ld6EcsL#v#`'h65@ TģTr A0e(+Et +*1a:-o"o:'*0e;'KU3%&H;E `g#lcs Cő l_;I;Iс~SEm^̳یl:v1 {k(Z'9!;2lJbR24qyYYdL?_";4d7@F#Hi6sOS?FwDۏD$ظ4#H%*"}G@f8 نYeץֲ\e,JY:[\v-tڼF,u&r{V*&jKH^;h'(J7$E ~[@FN╰|x_n  sD Dq8/1D4)f;!q `   xED]3$CI.q0+ EF#^bJC*ECAs C130ZeR 5NE0#EMqOV3F4VWAc3=4<%D]7g bWb4v!hiw"t'"XSwpԅw4#1bq6"eXfohp6O@Dx1wkQ8^yaYOc^@8]4J3z]:%\ӄMG]1{zq{']hM{1|QnR*sB*uf+}o_c,0PΨ>eP1Caˢ%~`q~r!xa("e2@e#2X.ar@0FT:s4TPDEe%AOCؑ1d9#k4g!43I   kEq]'!-fh`"w|&wtDzzd6qHzq7#Fx1xt)9p+`[>jq%ayjpk\Um!mִ\g{hM{ؗzE;!|Rm(^O $Q0} >>ͨ_}yom!(#oP7pr3aa(@qw` x9Aqb'Eat>T#dd HfEfF偭1Tar1c=:֐9D3NUR2ZDtqT - rv.su8v]w )4Y4ٱowww{#IwgX}ĔHwf唚!xGTSZ`Zi4&jIcOQ>JCb}uyzlԗ<6){g;҆ץ+m,Abg/ٶ`UZƟb[O;%_AFqf> =cBbF!#sE:12}5<#Cg`؅rGhHyD[wED!HӔf$*iqKɟLlj++Ģl7\l{hlt2l*z]Awh,%.bԈ!xhF#P4U gΰbݰq!Of832=u23S:A91BICz+ɚJ[by*CVQv.8vVjfmVq+p, Zg6v:hR@/EH!DDiH"m111H6/Zm!0$$?J_i+(a˪W|<{l]I]{-{;|f|ns2^ح= =>أbaQpc-n.9@r9#0rNE :d P VK` `cc*W7a1IcE\=ѱsstzb9(D{058m K8Wn, {5;E:ED^F^g]pF|${GHyxDy8x=pLK4~+g֘Ǣ.cZadz|řm>+OZZ>}_n&rq.ܜU(wF.\ )($DفBʙqCXVϱRā3 2SB^Ke #qJѲ1suњW6ZDZ6Yv]!2pl798Emu v^Bq'5EݮxX#:"GXyNn6T=iDtӼU9鞣 OM(/>KP֟\ʱrjkMzՖ\!$;ː]#]l˧hv(n^{0^pJ?VHdgo=-=%怊|F *ͭ=mS7F0hڄ dU×@ 5g A^DhЀ Q  ,<,[Kj޴ٰa <~ĄW R@`R>5ѬY'4 zY m+jAH v\dča[D28ƍ<@A3 rr}'>Y4BS>]٘O&PJ@/¿-q¿C]gqٿ?~@{g?_{ԓb`A=X`<+"a x0 D ^@DCTgAq\A LɆb2DaHm@oqE!G ㋃\R!]ÀHxIBhi;0r#* pO"$FSXD<$(!*,œ" )R)j+iJS(먽Ƃլ>-8 b0+W ,4 UNWau,, *ZT3<-n+7n*M58̓J{B$@% /09 ΡSD!/Sox[o>̘s>)\0e TƒHp9x00^@Bg1Ytє&rK$$2kqD&od򠦝69e0Bчԩ2 "R (-t(pM@؆ToF<_&,LH0JR ȇMu*V畩Q#Z˪?/aq=֌4f1ɞGl2穅.*N˴qaw7 TS6wY ^}O}S9k9tS!d@Py֟;:xc!F*Vg(9g9?(t Q y`0 !*AN (lӞ%kZZr5xmF DZi#e HD&`m$L2] okRD9%c0`HJR<-i pd) 6QaJ n,3F甉SUPoqUDbE)T*(u<=(V}&/M9Hռl%1ԪVb@y >s&4IrC8T&1`.i:N:t$G )00d@Ad }A(8 P@g9yB3](4)Phi4rC$hkRqt/Q8[MPJr#dȘ8H-%SO̢DMWIr呺Ldqܼb8q^%U(PL8jIԊҒC LP% eB2Ъ*WdʻnonxwsZ{@P_- \OЕqV@a׀5gk:cwA{06pE2_mNr^xkoCPQ4g _ԈNۢ=xvȗ-yVB4cEvp Zhp+t oȗB$۱p dw'ogɒՊF<-Y\3Q,| 9Pb HQ2h 29*IhcY@:T q#©> *!-vAz;퉈 y5y)ۼP3.~|a.RZ snPpEj9/8ًFو8 F TUY94J1\**;@-s g 4nIJWdɕEÌGC\: yDкɋaA q0sy;Abɥ(iZʌJ R|aB'\vj!0W BQ* 軍BakC2أbP(.ێ[ĮAt3-1v{ I38"8$Y܎+E7 ^ FxLX?]•3K˙$8ZnLueJJnBT͞~39.Q/6бH< 8X_$8ٸH EsFwTYI*lCZ ٙXL9SOA;r \ŏ:\ӈMY4:NGט͊ kyX&^Aňy4HsPj*(9 V%9SO$\ ] RP&,V<\"ژ@= 6aC v( ;8 ЖoZW[w tE Q@]|۩(h(04o3:[A±cq1>ڊ^(LŜL f, M#Y8+LϴH1+m$ 7}MLκ9NʲMZ %xk^TQ[^7?+ ei $fN];<۵\%s#\A<8ITs\~J/ \O~5bki]\ӛ ֥כٳZx]@du |7c-u}a`4ݎl-s\ṔW1ys2 E@ +NLx 3+cȌ! 1p < 2_Sn\@βԔ:%,@R;ҀԸI N=;!NKNeQ|ܕ7~4ް=y!X%waųT-H[-vλa4O\Ub5&N)I}OIV!U/ciuB ! P7*qcxMW8cbPߕ߭\̓qAȌkU ݞ~ZbTH+ۛT재F(j@+-Y;59FS0Iқ XZMC]t`,91 ,3a 3tD, 0Ȳ%F%[ E츄 HppfvچM{լTV>X\0Ij'< ®b нsY3_@qb:Z6= -Pm]tuccBj Qpڭ څ. npʭjKsK8eJe}p$R8U c 9shLR`vi敝ʬ+,+r4kQ,<kGfMъn V^ pN_xLMA6 rQvx;4;)9m׮)ÑUm3'mZ;/bb#.I'F%'4nYiQ?,p Ok`L%|xxֲaH צgiA8!9ghm'+>\9b'(+ اN+t˃U0b[]ʋ ]үJ c;"K20a %*WÈ28C+ !A:$ASF<ٱこw^tӦO; zfCJs %S; {ϥ VZ0kV bf@ C) T@Ѯg {Y Y+ tH@kW&h_Ď'lqȖ+g<r h)3ƤXcuӆ0Lܵ}zw+V-%ޕxdQUEw>A꟰w~6 | X0Ȇ 6 0|900P!A,<`I!lH†n( FxN Š-MxW~TB$.pbIPc ZPDCQ C.8TPD -E 4ZbEG9%uS/RA IJtKIuK_T[y:xOYugaiY:`T^ u:W]jW`~YaX>,c6k- uXgd%aFh> h luAEQA }dAݫiԁdP  yXu^x? !ٟ; P4+f<ԅ8Za (b(.!5?,8᲍yDDCp} vlkesBYRdQH`NKBh)PMiAɹGmT'>JJ7KC5Z*mDAdAuWlpiE\'UNaGkr hqFVflZj{f[봺nŝۭN'tԑ!Fr.ѓWT-UVW~>| ( ߏ T091`e%`Y>'*IHҐx&s` sj1S"4!e r3agJKL"lRJ| &Q$ Krr&)(HQ5;`$pVb4o+]7iD-h8dq}4 (`Z^! "oK3Nw*/N$aHnfXb$#JwBVk%Y+[hs}R[Jm%2{r^/}. Z}Vzs'>}v?'aOnGA##y@@r"t~cБ` d 0j5FLJG5( 2QaB4/qQ "%8`# Z6ĈD$OtI ilm}LB6D*gCX8u^;)ʲ(<%YbrhJqaeR.Kh zjaBнˑbTtb өLz`;(4áz&8y墨¼$)l.{i͚gqOe.I~Y%}D:ߗ,}Kg?eSi# =re-g@Q8ZA = L3t!' s&$(mZE8 ENJ$r%FMj$Ҳ n"I -d<9)4eS=m)YR#RQpbR,plYY*ߜq;TUFZzK:*UjLE[ Oי)N5 1iiV(arlnnS.9+RC30=9ә+<40|ZAqhӨE*&:G?5 _7׿3@r~&4??.i=96%Ydnn4r;iH"0 YC%+Lk>aE9]{ԄXhWJL4S2-1#!EŠr8lxWfO &jj:3:{N]UҝI1nm*Bb Waq^R,L&ш,:&)LlDz1i`MWeEw ar-C]3,VH4nkdE@;8͸y(:gGgy\E /  G ݾDĽ~fAS)AJ. D.9uR,0gmE/y29TIaSD%MMMHL7"շ(twIO>)s 0_S/N_,lR@1aRZ&8 T՘"We2ev]_k3˟'v ^FF̅mn]Вoh@. gݜY)H/]MPmLl S~ЇZ Wq À}H\)r5sSHmK ƌi 4B9ɏL\Dh^8h aGQ[%B@XI X-Q 5ODNAߗdMeQݛ|Eu^ MJX_b[ɋ U\^_䬘%J5Fe$d]Qȅf 8`5m˭x`%uEFnjA Gш \`7 |#8~#-&-#/e6f }POr 9= u\ z$>f`< aa S<-xaޮH.v<1 LGp$X۴NщL!{ɴYQ٘ہQQH^MRebO[$wh|iՙ@T*E*U(jiNaDL_a W([_DYʡ\AxYʉеuRV'hfX-!5bn tg)#hfP#6lrX  =W?a8<$żς؏Ϩ$tD EZ׬zydPu'OΜ畠x֤GPְWWNdEMD yaAaOrAMhQ|iޡL!݌,[bDB\+\WqGhW͊ZE(N(΢Y*]4"_An$/## M:_Da1IWF8dcmd]q47?Fbٝk6 gz$'ma DLM,פ g8#Ŵ]|SOu?AEbdA兤BդڥrI$=^ f9D DMaH ^ 6a0DJ1駖N|VZufX@\b<߿Iewh ME\DV1 vE 4.Ɵծ&܆  I)K_!2l-^i gY7vAt#?ө㝍hu9TO:)tfS ]שS s!A, )Lua$ EPZjv䡤CyLdZ*Gb^@ nVXRMH! NI=Xaa-)BX Q^i h@vԤζN(!EUb1]XhvY@ɌŸYG/NNW, ϐ:bFaK]A,dr'V+auliDiɞ#k`ס; }GrJL ʚ]8M;,Vݧu)Ð%tȅ*DԞw^mm'y2Q N藭b K +gBR $,kQX̄+|P^J"NMb MR:μn.Nb[qN)~&`P\4\U[0އή**KWHLuigRin ;hc}`$Gff;Nr}ӥ#A̯{`H~pZqQ61; /]ů'H-]ư omgHD!<@LJƞWXNI0 g2orѱ 8kjB"a͚MyM, )L3Ẻ qyR"NkS9ȟP%>O.J%JX IA\ڑWߔ h1RU,~ӥ1^l6auPLc]grm hi 69cаt/̏`r|p`&` ?i .U29#9C:d.בX`ӊ,!zy pUX!zJzG'4}$Lwzj^GXՌj|}TSEj{-赪1D IBZuZ+ft^4m&|"m:E݊ILE T~ jqIT4G| ۿ۲ [yNZNJk!ؙcfWe-p+@9U:@\ؑ4,w׆D#1aZVqm1=qw0iN|LwdcX2&Wu$mʖTzHpp;Hļx0{q :,Lmyu(/Y^2<UI{~WL ~QfOښ ɹd:ٞV-y/|$ sn<%Yo@ӄ9qezS04ftO**W/KѰ=~::.%%ԟ~7u#@!ct@&Etaň@7#F?!Rl<`G X|8rC|9'OIB1"D&),NBYdA!kDN]z * SiuWl`_V.\EoDo ZaݺߒE,s,yff}2e DΚ5ͅgzrsM뛸X+`压G>l"R57չbʝ9|{g0+;-ڋk7BO/L * 7_2\hąDE[$jCC0'c !bp-, #{QI:2 %RII̙4i'T:SJ'9i(6c?zjϦ`K܈*]ev+FcMWZ ʚ+0=6ˌλ )s,1N, SZj%ŕ5L S'Q!.3L:eJ75Ng-$F..8q9Q`)TtmidnR\bZ83s9crDZWRWGGvϬsk0;"}rp j&jC %T.Blh4C$ R`~;W`~&'H>nl"Il4{["7mDڕP"ӘdnCmj&]hOZnp8([8"sHth+jgВy]ʨ\,^% ^~jm5Ũ]/t]*Sa]9zBN^ :P:E7[$xkJ״B0)?DB.BV@F (HEg"{VE*fEf|bb$b*L`H|M-#lfߦf⃔fB0* <"+`OZ~9<^]2kb4 'T3Ņk&#g1nCQ\#W(MPjsV\%3H6/BWlkԈ 'V1bevT'-+9 00#x.\zG[vx8"I.& &D^y C"H*H-{$D0C'CJ\,Hϗ"z +B)b4|<ǚpIfx"~btb' @HK섶"$SdjB1OFsĥx(I\ g"s:щ5 *빴6.9gjSf覜nnStzŶl-B#&J .I(w \㩲N؂>&5@>](0GFAf0B"H\ xc,ʚddFD G- GxLYp(brOȤF.bfjF'*NL963R QD'7֐*V%[*1ȯυul4ѹ6K.Q#u"B65 KE3|8: o Zg*Zή+*]3>ԅP'ڒ8zj*eDd tB kd*N&'0J8 . 4Ze$b3KH#뀪I F npN QpP'+PYXO#>l<|] BNCPN4gL3bo<%؞&q5X8&?kph0o*tIO\QV-hJ=3+P$: PNKqg]ޥؚg&iA5i. {*ld aҘ4ϊ !Q)π DSt|E+iEeҚH 5OFYIOHwH<I)O 3)ԟf#K 4(4V2f1nVps'V?g>bNX8NYRO9M+5Z4E!5R&P?Z#o"6;~خBc- TTq6"ꃘ VUhBgeVUyk{H"/U )IO)Dd!0z 3LrU[7S҉ ]FkoHJ%- =dq\C7Ό㨞gE~ 4`8GʫMDM\R< ,`r/eOt`c2V>ehR)h(9vLISgviDV\jwLVPl=@uN]gP> VwhGLjmU?pU{V!j5PDH0sW+ipP UZ 6i B!p"ȸ>ƮEؼ@p V4Y"(Xt5|> )ZX];G^&8A]PJPM']gnrا0dr>wMV[ ׈C1* *ˆ? Cu$,V5i ZT.`5h i}6EhHp)ikqH>Ey,݆ձEm_Fv7Вn[b[g^Q]G+o֖?bB5#g-pCWyvNMw0s[k0Y+$gc敕#CdIƴLbLf7$떸?Sks+'ҐٖؕmÌym#,2zUXܱ5@vAhYDDo~ll12E;EYT^^LZaGES\ "Z]z[ބCf(|G`Db4ǘ1]3g9~(FbB͒ jm-c8$ӵoNX9%HdG`;q @,(=먂QU7ԹRg*,22?lYA-@),7/TgPz?6MV44_ UX!~ՏGV`T-.yy֭ilIRO_SmwIhښ9y<Ӛg%g-Ų>ͺzԚJ"Hڟ3rl~ێȬiTt̚!x1z K&b>&|z 1~ #w'P;4@#E <?R^EVa ܸ: 2tߘ(nUW3Dj-DX=o1dԣ%Iq^lǐb{ՒPؑF KFVZz2i"]@ ` _zZt])ZG ` ۰BKz ¬K}:)4 M([=LNJDc:&@v70=w_w\ wj{zūsYqv\Z%@j WbkF"N{%뇪Zbrk4/J+a) Ĝԃjj{ik@:v ݥ'R^b∷ Vf ?7&ЍAD`HIM*50r%=TlKLQ*5fTΘ\'V|,JWLj]Bm(1Ԣ(>5Qc[aV)UFe `Sٗ^N6káޘEK[س;%@X⦢"DZ6 yӋZ':ʎe$H5x moRJt}5/zCp"5KG܆Xd(̡b!E> '%Ow~Sb&O)HyIa61qSt'.MNIJ,"U+s!@ 'b[^ذ-fL'{86xVĀ_ x6&Əb\ qŁu3j=9S8maj Q13FkZ g&c[]R ]#Uq27-LL5P{(X@^K~ĪJGGQ!ӑ D}kehaK9; ZR'jP.>lYI.d Y*uOtMQ2LbIz6r\J¢4{[PJO:m^jFMȖ ?ci:G1Q |AְF>wǃzdк ;{z%`]:qΪ8DꨋC-:ISm^C ఆ*Px nAZӊJ`C*($ FfWD~@.)y)fMOfL o`R`QvV@8ignf҂G.Ngf=%&M!l'xj(\- 5I{!l+_YFkΔy%e^Y/znKBf2ddHLDMJ @/CI(aEy5)b^4ђ!_fRSV3[CHscMi2ך}FugSϬO34OZVv mPĬvN&E(\u⦌LP'PT<b[)L'8ar[-&D'1Rd50kyaK|CQ/k|?|$/O|,o_|4o|< }D/я+}LoӟK}Tկk}\׿}d/ώ}lo}t=(>+?>x >x^?K@R|;y-~$s EfeVC$z#{^*oy~(u}"g+{ϥfb<^ߧ<-)<լ$m@Ž#C ȿ՛Cq.7zzA~0~|+|}'[m1~{~pD1|y~C| G|+s7O7yCG%VHC—0b88'`C{ HG}K7z4NxxH烓 {PWH0z}iLg,ȇ/D*zm!x7w|b(;XywwWd~p{7B{LB\z^|ڗy\(D8g(7 ȅN'xxh}_7#؇وq\x#x.xs~Y6hCnvpɸ@*T')}{0}~H6z|{hBs(GȄ['z!HP+Iq'ል{7}sgz}z{*D6(莚؁蓓eqsQw.ݗWA7aiqYhz~H@ԋz1WF~SɕwN}x*[Di53ɒju(249'yeUH8CyPW&|70CI!8bI))ǐ젘Cqd L! 9)x(wU{Gx}WCו靕9OH)yaqs)w | [Xѩw.G~Wc(ǔ и78/P(~ d39xzg{~{Y0Yq *`x|{ |񧙑}gq剗l6:z*לYgx:Ɨ(*w gj*{?z~)7Jx`! P7$yz| EH{gzL'p2J1:hڊ4I9jVSu KFmJ:x6r)$O :xXJ6w [>ؤ(})(:yqڪrZFvHjt찗+'yrJ2Zi!,3 C08T8B(hJR2&XAK5<*6$5&.G5A `EOxRU0J:I' , ,7U=FR6:H"eDHmLPWV_CI% 0 kNWeHQ9/:Ǭ\U۷P=JǗy B tHXV>P0gX\CM= d?ӪׇWtMQ[AIcZYWfFL=0:gY\wcrbȝdbzbK5=ͩQcW꼢_`wT\~TUlB͵f]o|ZB%#o_غhlXF2<ډgqPWs[˓jz;lJSKvZW\N7BsH7FϑրVO9Fm]|Fcւ`jWiЁd}ݖe]aǀh\xQNUU箄vV̦EɈefۦ~ŭU(W1(uJImGHdH_\͵rTQMUb0԰WLD]=Ajۆal`@3?vDѠw٩^{B.ߎnzNڝwJ+#shv\g oU\>d?@`98o<.ͅ_ʉr܍][FT6A kkH2ʱ҈nґd߃Mm8Әr6#'M4`xI,.峝®ۘ~ⵘPPPtKAĭԶÏS>\\\ʥsss8A0YX?Aad 0H*\ȰÇ#JHŋ3jȱǏ CII\ɲ˗0cʜI͛8sɳϟ@ J`H*]ʴӧ>BgR=Wjʵׯ`Kv? ˪u?{p"lKݻx˷߿[Qo m+?z!W>ɗILӨS^wڳ BUYͻiS >ފkgb/OǚËO_ f Kd9C02Bx`HO{J ,qY'5"і0N{9,&փA #+PSD"kc='垊*vS8ŵ^4f"NAػj3cAA6?ixny{Z&s+𝖀ר+B 6?$uD.c֤^;+<<h7Ӫz6il$&{y,IvAk'j+NO*hp^jBFjY wΰO2T IBL"F:򑐌$'IJJR̤&7Nz (GIRL*WV򕰌,gIZ IB\^ FAbS!)02ۑLf$BIh׬4nb7r~ӛ N< z h'>~S8 2NzIyL60IA0)L`Zͨ.Q QT&#M?Tҕ&.Ad˚̩L)rL4C bLR 6JFS"̓ Ђ@UD`ͪX*ֆ7V՚pU6*Wv4!=HOr׃ltA`uL՗1MlL)rRT hlKЁC,e1kR6,g S.lKn"/%:[H} ^jYRtø@S UR7լ~ӫ5vzVFT]ZPT!MAP" E ޖ9ek !%DT{Z =E(`6x}peC{u\#GnwX p a-HKj^ൺqm ۊVT@)1Q cV4p<\hw[524jde*W,}!%vUznmoxQ@O}@P "A;XGmA W ;eH8_2D:IW:f0hG+ K AJ,8~ܑ^վFqZgN#2\G&2T tY4t9eCٞ2Gyj3$BZ]7T\ mibl[ouZg޹Ha,뙲+ EC6D2H :˂ 0/~c 0ȹbpiak: Z_{09aZatK)0ѣbʙQѫ0ڙ%@{5(٫鳇x_*RyfCFՄ [L{NQ+ rNUٶNhu][̧^kxgu8)=+I zi,ړ|{MeVjjbKVcp+ey"IEPGgNJQz# a ZԻx 1@x _ [z _иQnxz\d*VÛUڍ.TXm,UYWK~Z6G\ɏl\B\ IeY&j``*z~Xȫ9i`z ]fhbL*~4]m3qh a I(1j؜ і|Ѵc̡+MMUN}9{[*-N@ bm&[̠ y3c\o\jژ' X i=ȑ'UXKj gc뫚6Z[ T݊&qѮᬢژq]ҍ׹]]jś200;~ e)u1,+5aR2K( ›(K &L޼ q֞{{= h~M Ar[j ]10 ѣ,g k x <|ݒ#_Z(]!ф|ʤK}{Nm32|n dJ?[ÎVrZMOMMEj}]l= # haׅ-}vR}Vz>[ŷJ&$ W,'}ښ3ݧ)^(.eۣN`'m ۴by3LfhYuWxu ~6Kěɐ|բ g^j=fmlo|g <0q=ؿ}Qga !.-Xю$ɚT]!*tUN\E۱-O۴-nԷ]m4.CM}QVMcns_z ?RkMMܮޮ/;|MiNЋ ƀ|.gq`>C߯{N yO!4O«@}4>!5u"׸«ҿUB!R=<8!A)B$cT-}/H"G I1ʏ"E΀I"L78oތAfϟbSGϤHe>UԨמZڍZ*UOg /S9-{,掕rǹ{S rFHqb'2Z#^Р2f͖-k:tuJ[:)S#kڵmߎ}[7Ҧ E率9S4n*e&8bET CR.x5i?/3fQbjsԿ]מ.I"0(rir뮨B\o%C;,S:隳-3<Ѳbj:P(%6p7);,*NtL1N\1EC/59c | xGlt'}-7%V7*K7&JX9C|JKlTKV*s,QKsH͖Ns/LK s=d*P?E׶;ךκ}W񚁥U sT2|NLGݢ6b3׀GX{'HG**v𧚖饧)fS߰$Yhvӳڹ+dG|NjUd[_5og]~2AN>E Zm4$l>\z1D.&^9K$@gJD.LblYz׋֪uqy jt qz@8 N\I6JZ7$H6Fԡ(H 1? !Dh/}vcQqH 6r*դ1?~C#m@)Q?Nğ[^3/ ;nm=1*c[$fUsnȜ@ Q?)Og<bitƼ,2Lb8',qX : rNrӝM 5-hO8,N 2LX6Z?8^p1_)/"c.㧝R$%QEʏmtL")-OR\PїQEәD(OTy2K8NP[>CzsHC9d2#;L±hlaC"mxHh= 9%}gў< lf1Y8≻{v,qREJdӠ`3Ifl8Fj-Y9ek}V_£9jh)Ha\ HbqiVάDYF%I+2EXЬ%?l27ACzH[n͎Zn!\Q1vhZ[GKjS3ZRQ.+- Z^G4*o}z*'S佴9 }5-MWaLR!*sȐb)s kd#FQhfʑ'x[k2ka3Pi:Sbj4EVc$y1Ecn" #fC$$xvȴ|g J4KH+u$'[` vtAE ) &R&nJC? g 9UrC!P>ĴLv iW<z2TDOr,Nzzn `W.!'30`#֭D7밗/׽ޭ>x2"&'8SVr7gm|b+ԍi}&Y|-$KZ2io{2ڲC~7 !c̶G3~5n?N0q68т oǾтҷuҖi-O*^բ;j9C|+c6~RDPh#i;,A#K,%6oߙxAv¬a6uB(&&'{ѻ% #{'*T##=-KZji8勮%P:{8?]JA¾;d+:=L }= mX4C/9Sı>>sRD?7D$KpC6 S̽=ʰ܃#b |&(՛#lS+A_6!2<ئmR,8Bn3LrArps"'̛""l0($䃔SNH!I aCۿD4$GdJJ? IA#S\U[CRTES0 {{%@?O-Xۛ5 \K,AP ;cp"f7w(t<{Lv2sʚ9xQQ' =&SG%Twz=ePz$j d Ԟ9 @&OW4DHO]jȎ%C̪03ݾtONY0I cI4rɅILdSDTJ%hʏSų?,KJkJ[ԥ: c7*M L˵K{Pԙ{K g e("jL& Q(#QwL2̌F8SlVdGTf K+G؂W˱L=4%[cUQ5/-RSDI9YYU9O#BT} |B4M*l[P[Z^̫ L!+``1'ݰF0*ɚͬp*{*LkQkUl=ca "7v\RXmMsTU\3\H5H*ҝ25Xߴ-ReX:D| - ֍9XMD8e) 5T>\OB˿PJ:SR6kQϠ4'WD!xeM$=s˥YU|KUlKԙ]U%r_ڐub'np,౳ݝ9p9 Gb}plѥL[9E^nG[uP}Gӌi-L~@s׵{~9͕޴ \|YSR#\5]]mbt' 9ؗӊXT T#]%aGcYυuO/8Y+DOܯSHTV 'DK רжm1gPrxU ̤_`[*dppx1[aLMapt[Y~ֺQL^kcozl2Ѹ;|#we)uU槐\@] N S vnfXoV]e59ŋb4ĊGbwb:Ugu cF6h\0%!.%P?^ME%}mR&UK@fҵf)\fKTf OXKd_9L!QP@+[gmrɢ}ewZjZQd*RQʺ al)leydBT\ŠFkE\FCYW^/ms6] mHvbDDb.g-^l| ck~h>Σl:8a0%Dkʈh]Ocfk{m֍]Wx }W 䬵_m髥iuweqK*̟QXe0`Qy(L`e깥[ < fG9`*Q\'˾-nmUhڶ^m rnݻ.buVɮq lBb0Dznb,y~E\qX#hq̦]h6YE%,p]^p|WZFfi޾)%ښ& d&N nP=[w,.N8r`W*p"K[ѹA6tCgDϧCho=d&pVi^@v&J5b'vc6(D|6qwlV~l덌Uh OҮNT|E@^k4I_K/Iކ K+-[N?Vrw1PVwF3' Ns81:}eE[md`V?E^2=F/xovQefFh,xd6t0hقh&q(u2pSOuDpYZ7u&nxaz'zk&HwF"|}VXl\l jOm~CJrKᖃ{w4 x_sFy yw'nn s:|l|5sL[<"໕{xSQl`jD}lmx5VGV IhaM_]-zTz gTD Wuy{*6cla=z ~Y? 7E_f (j {IO^ $g B 1XEοTG!j_7C6TYBwiL} !%MY貽\o|3*֫X:snrq#܅kx|sjbIXOȃȅ<\KP'vG*Z@},\al#գ\G]БIF׎^[ ZG m]}U`Zֽ ՗TU[ ĬG"Viݹծ- ]Iu"`GdZv JU4J]*ഹfHފmfH^pPIp੕ZZR%E]u ƞuI_8*ZȼfaNe!ʉ Hl"BKV]$jM\(yM!1 _(;!qD W8W\_N,ve![X> #M5pm[2ZRɚZL*A N욂EڕVa z zDIu:6!V ܵ 6@jJ"։!*1Gԡ [ұ-f.СўRVGE}@ NH$d$%"ʉBxADQ((&Fde;џs9 bI⥰zIaR䁚.2j_j`4>4>5J[6 D:# P<8Fd0&rA yfI[#HfqbeJE0d?LzDL&Cd2$"H|g-"<`zZ?}y"VxR@y"b(UbK^V"YX s٢a^I[% cRI__n+``]aʹ ?`7`ݹ7g ce.[fBa=vTj 5&52Rb!>kf2ʦfq]jd]zp#vHۙp.)edsI^LuvD$Vuvvm"OpQdPAC"7qD2P?`e(A?!d͟$gaN킗?*Yui0~&iikJ_4@c"?J4Hac` ai& B掲r2c)9R#>^#\8E2j*h^~n>mpB$檙*lIH&,N'JVtd~vQ2VngADxD!F>#Q x}QEU*$CLhJ'B,ZRmqq'\nFVl,Zi?"3Ak@md@)ag9"2f>B.G:&h>&#!VF5++$lz i]}&b5."djDVV\t&g&Un'y}0*@AJbq¤پBDyTT2o.cV.߆f>?XU4h5kS[5n~}D2b뒩FF mj$q)#.JG!/k&S*L2/v:/V"ߦ6R"lL8j/ƱKy A(Nvd&[DҦ*Ū+VAi0뵩2l6B3.r3-vm0#Rh>GOsk03C cݪ(4g*1 JC14pk>0h67E E p ݑ3# d,jnjkkZ!kBkK/e./B3.EFG.H'~jv,N2/*oClMQ_<<2"KyR_rPjD'YY'R&&-)tL'+!3P!t+{DpFl.B38p:pvqGn5[Xp"CkB04K G+-bC` _CAvd++8Ge/7cv1hv6gsdC:+[1hCk<˳&TT"޷)Dħ(84"TfҢA)st:C8A8X5/h*{Y˲Z*5¢^3FI)r[˥F72k1wpﶎ 5Gb v9hK"|9cv8Wveöfsvd3hc6hkD:v; [@ l"fyg մn#~c+Ax02r#s5RxrHwsK뺩[;H*ř:CJ(wKf"o4Sn|JY}˚'4~j%J7ke)Wj3r*o.tt&pN90[[#.p'37xϸ4Av_4л`ӻl+O7y ʐ#9 6|3[y{IHiv𠔟à 1ghǟ9 9 ]ZʧFbpoyoyIw;s#3'7^I8cF¤wgv/l&|HNxƂtI@&"oQ:"5rlQ {/SL=Tc{VvU/?`V/BC',x5[[;_7uwJw3q~/9?|G<{SviWv~>Ï6-,<{iWk@+fNgU1 P9-"Pz99+)W;w3˸̟8˸[3?4 漌?7@g@ "C@!F8ѡ.\bԵK3Et3]pt_.ʕ@4쟜d9ؿ9Gԡ(Q9E4\fźUkW%*'Qf8}ѥGCTN}1vD4 {9,epJ cƔ+gԨQ`3]͚j֙F\!jլdG[{@ _Λ?gr͑KɻnCbm"{?SԿ3nC[;y. sH&-t8&BV5R(5`͵€:H:̣0G )FR8¹!C'vJ&2-)'*19gJMnq7v)%8v-XV;+thi˕hus辀[w]Kc.Ca!|pYfU vu^6.W\O)ܞBBFu_Ę!=G]H%꥗K!_ 8p@8Q1H"\hE\ܢ/IL܀"\X94:(m\ԇ$/yT_ (GQrGܖD9N#A~+ WpY\2F=5~F'AY,W"s8K;+zʃ:Xza:^,B=^H-kSH"<_!R W TDp YLS_g?qFH SIOxbe(BAJ< i )մ`Y24]j X>jVl]JJQce/zD X4 pnr#ݰG3XFRp+ gY)7EɦFES͈sҎXF lX,yhA:q;h]z3^ʺDm~G+BD R%v)h 37u٨CЯhA "|eG l>dt)U 3Bf&7 c%e)<S ,RHՔ 7}N`"aނOxlrCmc7FE)["ZV";,0r\A3keHS>XO$zP:䫂8w!˕w_H/R2qs/ZR7a)DТ>QP3x"ݢY\/}*~ B-Z RdP"ܻ*d!?:uW1ď5\?S٫o!$ ZTИ)Z )Ta& vX A8&:I$zJ$cgpg̖|FҞC$,]oD@.nУפֿn,w]ųxiO~`Ҫ%M5EVZ-Z}ӓy--xvEǩ}8γv'b- ut2=lԻtzqU"p?^JL;A=%@5%aDIg9Y'&C~"ʖ,o0ML 623\Ѧ6DR!Æ8~b_>6ꆱl=>ϷC|~DA/hr<7OԕӭbfB1~Tܟ0a4=:}K]k E_Ǿ 6ٕۀ[)MwVG7T"pTW U5Kj. u{C]LO+hrt+·a!3[>g{sCs h dh ڦAdNd q3,U 34)VZ@m@a~F$zyl @*q,7aT a|Үn kM.O잍ZN"VJ=nd>+-،-Zl@>,9R? /UjVXB(6Ϫ*$8L,Ǔ$"(JPme.xMf$A!&Ir΀ެh"h,4+Ό*(kk*."Ĝ..b΀ doDhnІ~44ݎ `AMAPpܢ@<! #l6p?4L= u*lͽ|M?q"\=q+~ִ1h.p"P"qe "*$"B %p  b'Oga.~/(RK"j*+*>H̢>MNdb&QKP!.x~ojHbkIq w{/ Kz5{ag1aQ/ ܺ?Wne] RjBV.=:2>1"(a#| k"ZX%8&b-J?h,R4E Qo) "'R yo'fp2 $ ,lRkLj,"K ) /(ƴZnүWk|ςn gZ`+r@ >_sp?!ی܀:a@T#4r2¨"Tap/j`0# S?Nr?(1}01{-FU0"rD/CP1=J  -y - J X/mppJ%R SЮtMิ;h!V.OlLT DM(K"6K%;NH "EKЈ<.O)r*{= A*0Js?4 P@b8b,8ZT3?q-VqAwU CEp8$lW ?0T"eE]t \"Rt" 0(Z5#u42SJW̕*3v1AWaHQ !"4-  WQ"` g" L$Vb끺D$nMQ*Fk!>,"N(uR i@#{ F1,pRgYJ#RѾRpSqMi' V.TWU`T;A^!j]wTUfBi..=Еs4nHKt?c[?| "v"|ZU?ƕC//sns3#bX%k' "vUvzVT<]u"!"RvNgg*|vk7LOH b-cLlLMMd9s$:Em"jln   az)'{*'5ꐮ=+5>CuhjTv"blFwu!j!G?7s6mw1Gm˶UwYN]]@Cun1xDV0m`GvngvFv"b#pomo%?~v08W51XKb26EХt\%s?St]d"l"yp?H)bq1W-WZ5 9 y ,o9# _8R&T!&[B~[ј԰! Ә萒 up$6xw.tS6+dOr$*"&.:r"bvfSڀb+2tg h/R9Y?n=R/E9S( p<7U5tWTksy-镭ٺr!"sm)"st8%oz F5o%"d8oY p0ߥ (oaOۜ9;@%" ^l|0o{q{}B;ٶ[۶6 | "C^s1:"ލ!;u_AguIw'!~L BkyԜ@,!"٨*I<7ѼQ|r&r3Sihѭw4^wr-׮M\5Q\QVۚ4W.oU/簁7ٛٛ);ڹWʍŴ!BA !O0AQ|\"\; =m]'XGy?#'B{SИnW)"P!#۾ILL׭INx{!!:x'Y?nvtQ{6!~;=ù)bt]ŶArC:u][sa6)}5(Ʀw)c",SS8^"ϜDw{MϞ>۳?4{9|0BFXFƍ71q_H#Et C7RӴaHQ|XQ1{㙓ϟBG&CE)z!ԩQ1et;Bz'رab;kZLEVlPWO , 0b;fϱC# Je:OCΟIw Zf`Z5lٴk17kPxˊ;ن<:Wlc>ȨRI/S% ?n̖?9 BsYo}7w(7p` &s|3DžasCѷ^B!4TC3eSK{hLHd(C)iI-9/E^O:=Ԓb)eTKQUT][]}iX˵JT\a1ga`9t+YdFY'efhkF6h1 7}Pm]wU]uOQWUvǤD^6TPʫC Pg}$:ԇ1xa:Ѐ*H!+!ʴs@_~l~@tCtOjz6wx9#$K/KSO0!6E$4 1EQ^UXn9ݗREEYOPXy͵u6o$eIcVYRжnf3cAtcNzkO5˄V]j>t^Wu9ɔQ # mޯ94Ś8_BƔ߸2X&8;1ۡ1AATV>TQHL0:x@(JA[CjTTPi]kXUdn2jƵ/S#>d>eH[ CKYӁoNC *i%^Se+"ʕ“DPcL6nHD42xAoz]Pg-Ph(֊! h%\}$,saJ9e^Ibt1ebHxZ2$ ͎Hx2eINnD(@X17U;SZP!@{rT!½$*8Q[CiT[,7Mc=IIS__DH /aɢ%/9,իJTbŊigTvXAİFRLyBG7!"LHނh8Y 5-@1 bpM r `s!S62vLj:AoW4E㉓$NIH&{6IcK`lOUrq.9\hA퉔{'6#ea ji}ҥFie&=i4*4qQE)Jh,SY1 SaP.hJZfr+\Y9pjz'b{@1m0⠾8Bv)$oCQW~.@kZ Ȳ0j$%]-ͤ4S/J Ӓ,c @ᤧ1Ir3\j' S<9&P`ҢD!E) 5cf񈞜8iUʄ2TS0ye,C}2޻efAjz eEC1K]Cyˋ_6X._'hxq(rY\U /ƴr,K[H;O!Y-cl] O 4̽mC&`6aD{j6.CO8!,agNo*#zG!c  Rsj "WS̽C Ѫ&;?:A5eNqJXrk#"c k-uH'}HxN93b l<pw~RZZ:&>?qYZ~kѼ!?md!ӞJa¯hcXȧN83uxEv `$榒e!b]/8+KժǔLqDq䤜6!qEЁI~[AE'~%v> s|DB6OӦ-ԀE{ڀ+Nd%}?uFSH7wR6;tO']瀌g}iY u1:ȅ6mglEuD(fhkey!UjG-XT v[xz֎@ pG'ev3VX_xzy1l+ ВKJ%UkR%Uzzz  ` )b@nJC47{U>k ,E&Q)vv%ov'T&Z)> _}gdzWF8A+A79m(7wLA0.Bat~a:HFFC*cZ|r'P |t Zсh\ 7y(ngxȅE5mxx`vcmw pRZeux^j-)I+ "(69`$ bR7I zICv=`#fOyj'!i!*'RR)*Y`.*,3jxBZfU6Z>s&) +Q OW)6":RqW, $~7Yz<"BBhgF>K^s&،w @gZhI]Ԑ`O|:e{$_g9ylym67wjnzy wzym}wI }]|7А`8,'y3tW: Uf ImPmЖj!? :zfeAaRɒ1:'vs՟j' "Jv*kiRñR}*6ԵuP?RwpP!C:[b0 Gp +=Aq!L˄Lvc,})"]W7W1 F;r0 pfb5k6Ic]JSqW^uX g G$ikjX yٶNzvكO2}w 7@f9 kDmzQ9xlӆTy*R [`ʠ5`l@`%0nԪzv6)Je 6ʟqmsR:H9f2󦣠w•ÈKE)<|05}:HzR,~H]Q $pF0 /6v05R#{ tp:,H{%/bEXtP)?QP\s=l11Qŧ姎aOIKI9q[/HV8yzY A;J^wjf yjp9  iItwZxN؃c؝1 ȅ^R"`!48O)tFxipuBk30|!u}{)AtEpLq'ʤLˬ0 @]ZҜ Q 1HP0dP3|sS{Yt]jLٷ:,|BKtSیUʗr9ˏ|Zuuʺэ:ȁlۨ:P0lw>zQǠyw_bjrw&+ Pjx<>q1 QYUv:` c |mf0: I뉒{mcR dg 5 R$;H{̥y @x xh!%';22'ٝڛO'tm537|0  Llt@5 Jl  |MUT 0bح#1dmW/C21o1%!G񔧈Z ${鶹N)0Y '1APFH A &!>;='5)w Q^c, m'  a v* չph Pw6%ZxG̰F-o+2FٔMa&@ a4 u~hښxS:]=Mw+kBC*7ܧ ,L˝۴Ή@  Q'챿7="u%,'rLp:N.?:šR} }l t}J-']CZe"_' X؄SHY ƃdxk @ YϜlF=9<.݉,͠B]AE'⟭}qFD;x mDH%4rI&2)* |K /"/T\su-[sVs1GCed #$fIWgFi-D,+5uT"AVFj3$n$e,#7j;ك)Im#F"I 5 g\Rmk%%Fe+He'¶ ac`-NILRL>g:rt 3s?Ҽ:H75?SOJŃ~9Q"ϡ_O z,ht{uqh6G':ߧkBeitdzKQxe2|t 2@p$h&&P=ЁQ6`)Y-ʜzќ3*$)z)7+QgЬe@>& &ȃ&(x2p/e)=0/ 91x9#30u*.<(:20(&6T0ȶVă0@E1w8 3#S!B 3iAH`b{plW0Es;))S)"^$S2<"j<-2.s4x e =-K#"jF,r=c2]p]0ǴiLʻ2#++cGsj pH"E']hF!!ȄȺӅdxł@H8ȄԅSȌH]H%2ű9^>AL4p A<0\8\04@<`ICL E4 ጺs DOdJ sB>E88):|Npް XpFI(@W,;iPy20F/CF/ۻܺ Ȁl>Px28p]|pO(ShEh@]Q;]pG9P=a`OflW,2"3ER!fQ!KhFE%[Q ([ȎQk:J?m9l:D 4&8&%,; : 9A'y7a%8C04ԾK1j8ifs5ԋ24l Ġ͢ ŔT'0{UV5SJPT C̼hYCф'3(tjcQ!t`îXL[k0E6͹:YB4p@0ǰKL @Ȏ"IApWL T1<OL](LSDһQO=W}̈́"NOl(#-24c>@3ˆxSFd\e2,* FwH9p-59YwdLX D]!<<@ ġ UIXlF#Ȅ lJ9R-2RL(HL+1Y蜗z1H  =:7]$X5A&,'l$(Ӎ5d)@C)8/B%Q]WI@ټ@ V턳D 6pZC^@<[^=^$831'E}9dX'd>챹jf=@ S iC὿ض3 +e1ºZ " k |RNH,! #jد1 =kD 2H(] !wH"XFfi$d{m<9b9XY9G4H$O<s#Y0^ 7>%Y؞>[ɃElSZ局NElŖ0ШS!XRI@>ıNְ1 }-`K(*DNx@:N Dp}8SrbU/8%00c1]VfPeeeP!h7h9feH`h7bbVMb3 Spq+: l ͺYD=<0tihx5PeBiYa9%_urXEVqï0>SӖs lɝ0d P~ Sw8(d"pcjwh"w@}8u]p]OdM))Sɕ.)dxQ<@r@H\EdYcSl(UjT2 ΍Hl1w] 䊟y(uR& .č^,ce)X8;P-e-ց_2T\Ele6qbAVCy{V^`\f hi iwfgvFhxh%L>L$A>Xk}N6HU0 g-_9:;> n)`qYIITs Z,~GӐӖz.]Hj )^n_˖P(+𙿛ӍK9^VP5^߉Hʠ u-C- dj@˃+p@k!K!rm]L؅Eiqk+LP?I\bHFVP6 $ YɎRXK=~oaGӰ[IJڌHS,ʆvl@P~m ,FQ{N݆]a^V!8fyw.n=em&ʅ'|ɔ͠#wCɝ̃6J|@A8mJu-0ܭ,S\CM%x+TEeXfCpL"(D;lB:(s>cM2 nCIM?huE>m6hqCT?Iۮv ^е7lDN9J'hgyi<@/%/IG <>W Giּ:Y셨S#_i^x sߩ#NZߑ#ԫCdžY)_$fh[k!&| `Zx`eua] Dma/6F?WX !2Qewb?>daK8$c1#r,? 1c6αPsa;}$c, e&CH"hL7*%O!.1PDuG 3)a4sx)rѹ{y2O.!tه鵋O<4Qdh\9)V}i2+e8p*.pT.eO"P,6#h{֯ՆJ *2i/NihtkldfWD&NJƲ((. F `5BXl`@hP|P4씆 xST&ܐmIbe?9[r?!,d1#YHh#▊P,ۂ"t aBE.,3 O,YjRA=nQFPa9uK X!.BŭĄW(GTpCLbC/3Jgԍ.KF8{ED2Fos?I$z¡J:c!G4JR>w \ъ"<:.2 j{h] zK{%*A^SF-j{Yh5o8yZ{*u"0*B:S2H! P1F6r$, цQZHs ؃ A!I۾jBg#u"RzLIbQ ~`s?Pء&T¾Pi, Bd҉ypFQ zٲ.2' 9YIh?#z09m(չ7WN%q x Q/"V3&ÛQKcdR_&h%0,ñp" 2 @I'dxEd6VEp bE:C4?h#rSHa(5FpB0r;w;/yGE1zW"Rlљ(/BOcTo&.f'rP$- BK%$ Wp6+ZýUdPװ*JZ+Gzi1y.&ⲙj쳜Gշ-AXl[UD R``3ejY o5Úّ*e %O3Ff8\ P=gSq h0" e@Qt 0xӛrY DWۢ s(2PڠCbÃj_H' )ї .~=TYl |ltZ2VEC ]4#zꈢ3#R83in@<RdR(gVBb7^%,t!WLRgAQ9_j0"?[1Κ/Ŧbb JB%j5ꀋ6k\ejI/\OQZ7rj&0gBR}B |J @t78S !ɵM4^E\Eم IU9(b0E|A X@.?Eg_ɋE$F 8Ĥ _9e͟Zh`-60Zn Lҁ>FR{/< .5Rc0c4F"nPcWgty[nmsP,5Da|PBy#h$e,}Tܜ~ J2HA^%82Ă0-D,,C|t!r\acUdbHRhIؙQ{G1EI(ua/Ȣ..(FMKeXJT&ݭlk HSdEmqϢ7eMH2L4CL؄,DIY@I&uu^@)#0JѩJ٨DkDz}0Q*:Q^1T\c>^YeXAf pčU)HME\@( ( $ %@_}A}U}A?b;zQ< i)eqAZ<XՑrHKe@$yagX敁<2XE߼-]ա \#b&Kt),P2b3S%=ؓ33.0k:ـ9H)}YA6I7$P.yk4PDxTtLW&B/ޅ nJKϵBđfv'KeI4D5LՁ]eD(NQP^F]_WO*K[%ب*?(|(g`;*$@z*ZT("ŒZX]K$T.c` %W\\|\G hB^GRgN7MJ܊\- R.S,v.~(Ͳ^)4+db] O5D3P*NyiN*˻P,B=⁩4v肓N&t4-tB/L=ng0UPXDT^U%}\-@B_(ڪh|X, hښh.JF fZxbq!ȱ $A-BF [ L %ܧ6FPnuf >|.ລ %`|,n\rxS5 ĂsJn.rB-Є&>M0J+FX_\TO)/_KU ^.&"B1="4r`&\Q&Dp o>jpցOB֝M{Єqoj T$DDh}DGڈ*!'h*TAT AAܯv qE cN+ug`JIIˑ/-=UD It\"\ZB>rv_Q`@՚:`Wg`5Y/Y?[Z@m!1W1\^Tv_ gFhVREnա% Z602#kfSr|p&PPB42tЬ<,/#J 6n=&-ִs0Ոu]Mղ@eցgns+3{@ h倊dɑFS&0BЕq `! Җ/TX!jY4]cD _afs3e@MLWd&Mt(ɿ*E#Cf,28DX8i: W0aq -̘RzJYeaTLx))SwT- |q,?U02Jf@!䦐X qs+A؅p62+ Dɍ7 Nt:y /YRI4LIsRd<$r, c13DHS2Wp|32]N 3B;K&"u0jhH G8 J4S)(*VTQ[U$3|j)-, 3{̱d'ȔhL*Li(J( h3WO,dB ޙjTA2iny2$kG5؟a 3U$F6xBbVS4`{5Ts !c/eM 9@gd0N{<3<s3yS%]AɛDcOb!:RUU)1P FuP7R*uՊ}hբ UTM3X_(H(pWíd1KQ%Z2I pN:x@h(Ѩ[Ă-:{u` @M\-iE)ZaDP"`D"lh6McJi 7 ? ̼o~#_..li3-/KL;u9O*D5TD W#P F)$* b=|?}c+?0M+S0(DJJ%-JJ %<pCE_fbD<5\/Nq}G~Dtm]ҹ$#KLRDGEv<6t'{w}!\1O]XsCCxK Zŀ Ib@d4e`J dQHD("d*ST4?+#30y)Gq "|CA`j"PMʾKPĨHMeT*"R0dUDlbV1DŽ-` 5aUʡŭ0qeOt @(y+#)'W5T$*D"o!H2*E H j.yIH@>1!$!a d&ml/U@:S) QNh&:h?1(JlfPԠTE'< eMP dcQҕ LH*^f@.s5M:}N0]u dܻpNp#tыL8O.;ys&ЎYƂhdXeVæP$\djQƼJhCfU (HqᾯL =ͨ3Ė%W%5Paje/7 a13Erlٴ~DVJPTUb]D[=*jjVRr׻zT݉AGw!2]!"B"EENåwvxAZ$=.hF$rBG*)k)yFNO,pdz Ҧ?FQDӔe| 2K` W 7@$2`Űja p3:C 1&5Rޏ6Hbb.ObC`3&fn*~.~QQ< T(*J2f2#Z%aL b*bnɕ&(vE~bt2@t"%&Z &!kɆ"F@D) ~Z~? &E6!!$&"!fba,ʌΌ,SoWj&"IR~&͖D ifFhs,r'-OpEf"ƣ(y>^fp20 R+*,(2f%R:229W h#2.bp n:Q b^c`3P4P0Sdԏp-h4`#q0efBF0O0]0aJ >c>BcL3^42c~"C bW/.C^S&W֪-n"4[~OZ FMT⦕aMS9o¯~?0aB2/2dp&0Ȯ0A[#* C8@8\VҔ50ZAOT6)΂&=)bu*WVB9)M$.UĀK #B6Aa%!v8!$7!"a d3a 757#7c:Lj5Ϩ& f:&0l ˎn7eoȜN""j&?fl& _^c:Cn@/1&:m]g^U&藹(E1W/l^ il#~"^ RH9^UH!ʾA%Vp-3]Â%75jS/Vb9۴n39sE 0Ws8=fLFSCWSk#T{&.S-B8@cLp|@CWxC=Q3,{-բ-peo*r_Wh$W^"J2hLET $ʫTU8I&UK ֈ* f2tJ gϜ,\f\p" )m$j5WS/L*{Wj$cEWhj{\ ޔ˓BIgaƌNQ?HHprc93fc*7N3.w7NF6HUEaO&]1awTY7e8b>>>k擾kBɩ B`"!ȍf眊ʲҸ H˚ 'VTC̬ٴ55G2W7V#,qo?#3dc V>j \2T`_7aR=a1L ;?V`a.FS_fu#P3u7P6@54>Bֻ< 8V@aG(Ol"Xȥݺ7*b吶ڈpzGȽF]x8"hsܠ-!<ܒ=iV9ꆊ2z7B73"O~G{eJk7ʾaIyAVMK H稁>? Oɍ`== 0aPH\79Yҹ\i1.+҂8v uŀf~.7Q4V4ˮ;p r̭q*aTr\;˰,w ̱aP` =-7?*:O7^ɜcBs/5S]=;TQY-@|`ÚwB)1$iIrĎ*URN2e|!Xl^P*lK:DmZj6TxiH? UQnORmY[AUv Aq% DPAP[n5%C( uY]Xu b\A$rqP PCYB#W4y brd%6YWlRIe,'sssx >O< %A:dKeҦ[HӤ6)#2,?*Sv qjO.$Q qLHAEu6Ug瞫wHjn%Y%ZVY_zDleQyA?j{Zcؓ:b1 %]qQOQa )}K|1 *yÁ[w^ba#NH$DjRJ^Qw_s޲¥֭[ ]AXmRxXan(sI 1VPaevn(DH M豂*jup?{PuB8"ώGG^B@6.eic%t"5\?Vysw%sU+=Dss2gC~N>ծV 9TjPJOD;jNb>v+=ON~OV9gaWūH!\8Z @0f #l&E!X4 ZP  bx$- `D/(QϺ%1-ј,p0ay"~ 3$bMi4U6b&Nn"&13|A<_pŕ ;fQAP!R= cv0SH%Y93B WqƱ48ZۚXزU| IF.0$ÚP5! m"]+& v<w"1+@ JNJItKђT$Vp^B\.[b(LYSrrThps*cv7[rWFNt~ ns:aսU,5)u^RbNYTOA(!C| )D~FAYA>,Dj EvA/oUK_ [  nDqvg3h,vgf c8C7"v_m"}a \P BHG\:!rD&E.PFZT%tRH˓)d :;2Hc6Re4H6H0d@Vօ&\ mHj˃8 (׭2HC* `0UUᜋ% IH[,JwbPIgnpewj흝pw(6 dd,*PXjsg, @/ PAɢF=Tr W_טxl 5t菉C!t.T+;R+yk@ bD1A|&| ȁa3Qw3&1 e\aZD2R CQPdĪw>K0 MVu57$]5mVSX:jyLd9vѲbtzb3BEiP6E,:pfL6l#mm?( GYbH(pqr&( Dm]ʕ%vYJXW^9ęS΍ڻ9plߜC5L'jFM:bb c!&UpA`|. 4w?a E('6ஒt@_W(wFupM6J0U3ٛKMhKLM. AM mCAuFiN[IsDXa#43Pf6cǚƇ<4mB&mЧΝrdE:U,|Bk&v0 Ģiiy8~2rY0g5PD'*A%wɔ9]d(sGKb++N۸WC}%qkYK5]{]m')fJ#rv+hvgo5N1soQ*k7boAPS2&>qX>Pȁ(RPON("R!(JF;Xr(F0 k`S=$rgJpU0VeFG!dC0!\XaFAXSQSw!DrC$a6Tdfa gw 4eNTNfjfkCvISFD27s F2G7EZxx NXwZ`IqY!{0N1v5 B%Qz&c4kq~dR2(IVE\EG&߷$@B%Hrv8v}ƅw8}%`\`˖Ԉ"9%~v]ņ~F8]#57;#&L}M#xTXb3(ҁeqg>Ho8#apT2%c<%{'"ɁR@kv d0Ё%Hm0р2x0w Wt=*bQU5cizDjA4dc܁ke02vnfhe_FCf7vpwk{xIywE2+c tehZv |k0yhII@Wq"{RB&^1|Y&{ʼntD.+WEPR\\Q8tSǕl8$X%`)œ)2mT}W}蘝:HKS8U]8D8l'$'[g'' "(  q.Ɵ &֠upN")/'[~[㟡<y xfHM@ : +: DҰervII|>4a0فciHԀww+OR\tLXw;YwmHp q_relHw`ZŇ{ 3[dI?D@CfCZz0k;0l3yuU6#g1O U3:[w&hBդ%1|Qs5!{UwCy_xq U!B,It*R\h8p88KH7\(K KىCŝ\l)2$v8s$yi&v8$|'!2bH0. &%_   (*ϠYPr!Q&pMtPsM m)p2T 6h| @v[JC\ʖ7 fCmCWUE ,As)-;2 QbC6#2L8 bֆ[Yegdžw^ֆ]eF)wyƦZE|&dq hf؈v0`yИkIׇ0&ɔJn;zzYRrFGJ"L=(Bv.Ҫ&K\Хڌ(ĊxCe; ?B1-;h0k]Um1[C0vfeV p mȆIydq17hlÇ^hF!2cwP 'y^Lvjeud;wN6tEAFLc}  fA`햚a!TgaH$=r-\.ѪcE{7mW ;mZ˻V|ؘ<K,dW%˺J~&5K̛K_2%_'NQV$?˟'(b( J&Zq ʠz*7Y(0}jCYCi8 L]q-\&Pv)}^8UA8MqC =hDf ;yi=CN,C61K.mwóFtJ4ZX858Y UzS}GHSaBtV)*?cCu}\שllHΈڳڰMkھگ;ܱ+ܫ^iK]~} &̜l;Imn&8S;~ClT;<?*7*;; v}(P<0U?ECpx Q-<*4vGUZxY E3P%f`fP fefk3^J[zphp0W["}gxhxؘ CfRCD`s$aBNY`vkb1K>G _*=D93@!62'51sn+FQu)s))x&5*m۽۽\ ̼K[̆Su}Ù뾾ŭ\<̺ƭd$}(x4s<;= *Hq8>l Rs7y621D B} B66M6"I#M UHBWT]@l$P.M$Q?3ItCTdj#b(1ӄONT!'a\ŕ5^2)د=O@%LQ1zlB6.䃍cL˳F#m5f筸PK-BOg>cc46,66NTF-OIUnB@."D!Zl>"lHTDB%]X&.UC'ď*% 01Rِ,D'x Vp!S^e1?׸*p!Y Ƈ&9}S.A1 c$@ V"ct$91YiVδL6qipІ-a ^M?T! n@Ӷd<:T$?8Bdg;^G 2b B1@*L @,p?a8CC=CC@(ЂiRЄO(!ȕE-Q8?yz#"b$&sw'Ϛx y:OHLgrTvEݎ|SFӾDʣ(G%R_f! 1P,F cR5A&i"1gL``x.V| ! xƆWlaLUn *Tb( MhR`ݺ503z J~#Xe:0)=ƑLm:38-0Y bYSz1ic:S84-cTpZG&ZI/!%1'9) u灮TJĺI`*WKb>*P}3 |/K `p 0c1aԬ\8TM w7qi(rۑN" Gp3E'6уSb$*J ʒ +|iḶ$ b%V/{t(D(:N{DQxtHF Ƃd٦DpQTA.b, Z*VcsX!6_.+\|v eR.'X-T"ī@ P ] vkkCC̵YdId819 Zפ 4QG]|[Ԛ uֆhᖐyvo wNXD\""%u-n" j{^`Է٘&nHn/p5m qTY׾cH}p"LQSHх^ԡ K>fIJ RX>s|s"(  TFcz $5ґh3:.mAG/QYHh$bAutX bKgk[^\36fTձ.svİL FWVP UV@y9I @[z 6.M ^pdA@g:nE--z-1Bhr2db=L7 x_3F``1BhE Sݺ͕+i^$AQ(N=ϸ׭mJ=Flby?ۛ ڷ~sxa2mXh l1X l!A8t8ٸ-@9AΑ c{ 8!KSBa1c4Al{ˆ(j{K%H#:c ҚвЭ=!h%i97肮8*+;TAX)9;;CD<J@H <ģn; "@E38+t 8z <^jhjDŠ-"YʏH]ĠPs91*S Σ>2 0 N4W"YeSXr;*+7 nD `h?3`%kݰ&P 1/8,+{7~7~+c28A Tdj8qk$'0) hʐ 쑏cꙝ|°£;3-X%d&\kJ!)(= 9±:-l$(%CˑBMiˬpCB,9%sy "/)X̹c (;ZDH,K˜B@)@D$JL5U÷YWDЋ6`(A@b\,N+9rN31FСh@"F<(. O©&x=A pO;4-HNȫG$+pBG=V@ Bҍڍ`!d,Kd@ Lġ:m8D $'3t9١w+(#9/J!(1Rx4B:CIӴ\KLyMQ@☠ FPH;\k. e Ъi˼ˀ 7 2,إz%GDB[) bEX))BT\$ιP8!! Y_07v37 A‰W N+V|=݌Wr%)!;hl*OJD9=Ҫ[cP V:vCNqY"J2̸w!{<=[~ 0` @#8 $<ŁkZ 1)nR$At&ẝ#ɝ)7;.R2B @S1`@P?$6Bإ訸DÎ[;-Ɉ>>5\x8ۻ!!+A!h u A2X.`Լ 1d%7TK6c)0Y\X+PNTbu%mx,E/]D5uCd& fMg|!jM l k t"KpWðPW{ͪB>!P *R]W;c ۚAV:Dz܏EEf]Җf LNak9N껱"P;@**Bhi˿Т}+{ Q20M>3P* ߢ|$]Ce~]E9!㍴B+&  .H<fa Ti#pi#`QT8Љ$Z-ᒙ$ҟaqR搨;q[L__h~#)b%q&܈9:NSPPee[\ΉJ0kFjfPf볞̆蘍Q?  3Cu`b|.k4OSEMh0YA1&@<Ѕ8 #4hPN Yml-[9݂` #)״` @ȪŃxNƉ^8 qM;e=y!،^FBsCgx ]X•B4ظDMG:DjL>߯3RGcp2;@CPZV⌥*j&L?[@k/ ia:Y@]aHVIL#MAѐlp m0rr8Ƚqj?*gOW.mnjX u=4ݔ&(bp+Ds;MO&_@ ,t`kepu,n  :MCNpуF}+o D  8΅DW U=4>wLjxMX~檎`<;{ŏ/oÂVt݈o"D% WHq=&`i6/|''Jx7EM:ԊR2`.H .`dgd4ni7Z7 d?&MY)ј< G &pM,A YIxB b@މ.N9q`<=SzɨFRzTaC<= %LOTNhӰU*.մ"W5dU!*^a)C +"+*} Y"Debd$ YvRH} EtV̒31": G_PZÄ,O2Oe/N1SLGpr5}xQ2N&@xK܉5I(S0 DuJ ]Zo%ZeVtgӊJ!JŠ U?^u]JSœ93*׆"U,VZ(X MYƯMZ a| Va-BDr)$Tx͋Xg˯K눗ޑ/|p7aX@յtSɌ&-B RIn=\68‰scKrYڐBѡy?Ud4TkCp auNj$ ?΁MA+C*Ω>'BLDźZ&+"0A TYBbE@G3GG/l1{ cJ>6>|+ފxP(yJEi 7QͰ@lfo?EQNa)y4*ӞB"l+.CB+|)DbYw?p!BCXVvf>Cr?+aʫpkB[kFyZ6X셯lv-#`bFV b,s1 bhhPAKi6x'Ϝ8,GVs?EMQp@t|\.Avp M% x|a  CN(񔰌4ݭ R MxK[eŷ'yW"X;{J{% 0:~3MoE e~Lzg:6oKDx(bĎBօt[pIdnl`Eq%WJ۸ Q`,fLwF xcH9Zx7<@\)s•&TcDCk32f qP1NG(1u(B(h`K3xN&x& (迤J&5dժV@V\{ LܢJulrp&slѻW~Q2Xɿ$m5iO]䁌 * (܄!{ٴRkI+:ך?qkr|-R Y.q-nYaaE ta ^B6H1aDWzAa3x8d#tWc =(?CFF>En?h4 `Ca٠FQ2TfFCظV ,!>`3%l:6 BDT4vL ̝O<ȭX *!iCڞ,̨g尓ƭ PxLVg]+2Wkt(@/INJ$!BHSvFBN@a!i_}U$U2Ȫ$J~,TOTk'Pś%ܢ,*R2 Y1n`v;)涢-Rr6r b !.a s̈H?P ^xpja9Lhֱb:aAUt DA,#B|[PFNbAGA*]v0r!nB9m됇"ќ\jkiIэ膬N"v{ɧKy$ڮ.BΔER͈G2Aޠ%|94R^"u̥WI:yj@-6M>V(Tr0*>H?.n@ϗ5 xC@Y (Zba\!T&prҸƁ3o-<)%Rͭ")wX: ^<_haz~A&ty3tsTzy?Gl?\_5fXB$gҁz mh2ajÊڃA*9,F;ۙr lYs#Ht >=tʨ͒hm!ZN\ó~t>8 pXv5Be뮶u4HVcoXDMr" O ơMx ߬mlnj;N BHX.i$@FlXT%0ZZ(@(Iv!By6nD{g({2e ) !p\>- ݶH^J>>8Ճ;T[ϋngjekXHT`A~i3ɑDbhZpC((p y!i&wI!SvuA8E*#\Z1DTi#ʠA"$ɀ33Np̓>i b7wΜ2*)`*HP^da=T"in=ގkQM%o=z>ƣ-# ^ d.^]5M>g(C]fkBh5;؈:zos&'wCkBkҖ7VCiP(@sԽ浂ik d!'˒}v8IWMCnK'`K!rS޳SseD4A+{+N{X6p)B|P~!i2KRyb@()*UY Y]Eyp}G[ R4{dl.:o,hUBDdV;A:)dN&MmR +k;j8tx P1=WHCSD5{UYh4rr pS h^%qaư:Cj#>4 JUZilN!}MNךiui2Xi&#뚢9Dv;P6]k,ɔ?\9>EnIAL\̓Y9!{yMQ`M鞇2 =nb%VDN="w &$לe$ޚ5 X'@{?+8!wYYzn_GtL;hbv8 Bnmg|qZEpKMrI-.8i-0`C}`A1 9ŬCС) 'b|Gcы&,  IvIq MHDIJ" ā !qc@@fOYa؄%&))Ax0rf 1HA29!UZ`P'AI$sDכ`d#KLr\ EeR* imE34!Icpȥm[zY1C *l#Y;LΜ/~;|K1KޠF& ';"}㨆ڦe`" 㘏&R5r$!IBG9j1*Bm 8ܡhCTa/ A)& 4TG QL"Sm.lD+ҁ,i'Дg֨54Qgq\aǹ4N:dovca>8A<MR#IIɑA`X u%Ґܴ]q n0R .Rqe*z{GJl[LySGH,*Wլ;wS$Y[%-դ5%Q Y&)dA'BB?p~˰&C--mLr$>-|JI ?Ϡ @Hp7 MJHQm"\+73y)}=6^ʗ7op~mW;=80gI~"Hڿ $,8v$mZ p= +t*a s+*J2TX5U.'N4WӖ?1}n{IA;֎;Gr0V/JȖk$kϦ67sm'N`MʿBS}VBwڴ=v%s%r1XnHv6&AUI'7K"q""rB"8UNe7(Fa?XE)ar)Er^tEK%44qÁ4)eB.uB"-T " eJ eWtAosQgrEGoGnAYgHwV8owa(O~A%Fq&l7YxR_aL*Xwrz$g kg)cC1[gzg[z:8SX61}[+pj6{a=7WC9w|vf,٢M7>gxL-2,cr6&XQHojCdu[p.I .#@.8AeSu?LY/$GN#2Rbu 49@*vT$B! V"'֨hRK >Pa!5hVf`%o~ dl&d(GOvg9)||tws~o=vq7bOZ9$VnHi9x&&2&wP71Ӗ>d6d6D ekWjz,azI:}l}P;$HraGx%_r76F7qh7̄7a86iZiOU%9Wt1W`g`gP&zGhV{?8F$~p"aZ[ɝ(!.H7Rt 7h&VqqAZH89Abxr`\$eeF-)^F5p\5U?^Vjo'i O$q Oo89|W}Zȅ7Y%6v&xLx?aֆ2 UƊ[W)V(2 ä:z2nɤVݱ5&zuY(:sX^az&gprn5,T^]qG'~lBIGg>V}1-g#WraWyqvOhXi*5P%U)JiP(cUQV`39cJr9 "a`!$Qf`'" {eq@p?'y֭""2l'bnr%y_7à@ V'e4vxc%wcW9T·Kv6yM9_O  Pը:4ѣHF|3p"F7eJ37K0 ̤;Ĉ؁3;0VlP.2C9[k"&Lc}=ȢTm|{]--!7>[RXppjuQR 6u3}KPn?J9c[~cƸ5xu!tfaFH} / T&''[SY:[jFA!Ʌ UY$)U8/0!RU%y?s<K󸝵5h&^rE|nǙvTJqKlgW˚zh{xºiFq|,/$+r+C(CQ n1 CO C`L0HLϙgk'1[*KhĵR}duTNp|w~I fL==7xHƽ~^w(8%p.-?)ǾL.DuvZi e|p]b`>fQV۱"3H$qƭASPVEp<סedvfYͼUaSeQՒq epW;xU\SB:T,`R&- 1XU.,/ٌB@%!\TA771bCpyθMPzrySx̪zA,hIKN1hN?lsLL gKlQa|3.\7p+Y YI|c`[ C>ͷ>Of."fT-6;qJڨ?}MGt抶}LBnl;3Q_HH183' Q' E'AوP?a֛+p%R߰LlŮd-=P'hM$8)[9OZ)F@_֛+^ɺF 6PFe"+u^VDMO^$j^puٙ GyqfO onHg. |O1420בX?| ` a7TN#1aCӑC s<25WZQr:LJL.>N.ހ5e뇡'W'_ lS1*?"*!aڳN;u?8`S1qx>}?ӤA/ǩ__K.M=9n4ksE)*7~;ȇ6o4$&Ʌ D`zz5/ :xR0@@ #5LBu@ ? B4hEqRrDb$1㿔+/Is#M 7j@SIA%,X`F/ C$QBH $aAb*B Y\bE+Xb "nAlC+W)Qd@?(@ _ Yvml-pP@οu(C8Go{ԠMbNy;N9C{ePiH05c^B NP%C8CԚ(9Ë,Q%pǹ0 1_\&k#+2N$*#!6]@,'"&sEeT%6@4(M*9PDr(3qɷ $D"L2STe̔ *em.x W/ʃ<@΂(X]/ f,+7~"Pm J/͔ 09ʐ.t 09,,| `V,? /Rt_Nf6 fP kVxڜIpS猬a'ӝ4.+Xmv4;+ςX,Hi<dD-A=k8T(ff &$pceC{Rv*E*GGC(|޾5#-pqd%#Oxr5ɓɞl&*QG\ x & $P(C:%>N( !T<0F r/FiIN IL<$PnrI-QPBFE#Ꙙf"& Y :ә\"b\B *h>0aqR ^/ ~f`7Y oCΐ98lpӂqUDD5bjsӏ4H<Ap*`Լ#p@^d VƷXՕ_%ICԋh4q7*G:z Dnӑ,{)i7 H)ZbSN[Y`W,| /*GtƧEV`&HAƘ^BZ" ~4|1aO}jQAr@7lÆ!:';MZƛq5j݀QHʮ,fp pV<3*6&m{c=jM[8d3brDFhԛH&Nn˙lHH6s e5ric[㷔%aPShG;!Ex35Ғ 'yE  ?5Gly!UWN(L~Vx~]˯񔘯lK 8%h# OB|XˆڥAĞHjV3 Ywa1s,k eZ 1a y̰X'; *Q7C"S`8AjG1T^ ՃDpf&Z 513^79\K?֎vR[:&;~6":cThPe*E@B^ն$M2ݤ)h[ Z'vHzs8Й=7') ?)E)z:72 +8ơ h{{K`)8 &`KЖ7ҕ Ѹ 0}q1t9!!@C** !!k"B*l'#܍F2hAA0 0$9,q= B#+3 <8S;cCP;A<42 В́ O@l WCX=ئ6&Qqi; o˔e8vBJL6q1$>'6>髼)V܄:v M9`T _,Fc0F(F.tM_7x ˧1"-8Kh2x8 8 11RQ 3:iA r"r2/$33IۀP&,4(d&;;Q÷2Q)T W#C#MNJQ<75 %T@@?Գ O#&BsQ0'l6PJ`b Qz;Zۀ(u.擼,!4/LS,>`M-P[>tm0JV!Z%|ېQRճ. EEtJDER)RׄD6 > Ü 'Y sbӒP/q@ S!R^%mċЃ`TlTG_Z/0%Tj8(2H ΉRu T+xN+[*|(y)9LJNNUdE֤0@Ў=!ѝȢzeH!Hi*m$SWsmP!ݨ䪐y* kP{ܬȺKJSQt XiQYk>Pګ6,6;V!K;$"C1܂:8_oS X_j_5%>sR/I E%`ҁ >ncS\Ltߑ0YsDY/ ^f[7:E>F|T_cԭ}ԯ p_X55K7bF󞹨 %s Um|RFNVbȽy1l`(U\2I VBrHA9`!O92!XsATݭ:P%?$ *q6t 9Y{ތNJIڢ;DXYmzKB\OL}R&e`8Y\D*%-E[kzgB Rz'}+֡Ay?*/xZk=?!hM[G6GMgua%cㆌO8m c&:9nH"cAn= REֈBOvN D} ! OH=]`T&WXU_$K|Z"6QYnqZ 1aйRexvD%4u_!:Kfk#K/I86?/6 MK ZӔ=p^F=M᭥mG.exg%{s@No Cz۹nLns){Žw8Fo+ D" ."Վ0f4sID7>OcZvV*tH&i s2Tvb7]$!qkM ^qfwT)̓n g67k3W=A=ܨCVI5_-6QQ=}R#?>Ol_6-hkss5(.kxoExj{L5njÎ%T'qjbQx&YWK$ ,;Ylm.twOxݾ;UaB( L? S "i4SNxn菞( "ZG/>ʩa ԍ͹hexjb]$g*! 8x} ǡ׿r/$n~-OK:Nq{z'emu=tW.K(h Rqfצ:r EB "o`R5YߍpW/bY{#wR\4o6 xaD !R &)ҦH"m1H:H*A$ b"5m"*T %EJzg"Jӥʮ*G OS!ΎPBlI$ewbˉ{'N,C)2DEL> /&x?`lФO?ȋ< (:6f؂73H#{2)CBy͏''cs ˟kn:ݿ'GN:[~yu׿o_uA|W N&  2!B *(aqopD9ԀN?N81l@"F YĢEMF 8FuB9DD4`I9Yh'L:e& #9lLD&@R @B)49D3&D?1&CHD$+K$4NÆfXDQ:05*?3$RmHpZX?%DXt?E\d"Ԕ5! 2!8E"c؀1k_k%MtVG-UMB2Qb%jp]zHFG,H" K{#14.Ed:6ڔaONI p`܏!@ä#PBI$h4YK2u;CYr I,Hpâ "\BCB- yA $z`"E8'C 9m0"Q,-ZI</P>Y>e0^¥u!B8j.<]eu0\| ˼")M Z6&(LM8PdqRDZr3QKC,gabѐ3$61y)6dPXPq|QbTkxe2`#]m6(P q[Bf$ "g@D.aKNH%- ]r*#Y B*#4&nccS^ u?h |[ʧMiG޴Me. Br,@ BHZD$\ܰx9V*D Ԡ.0  ^x18ap 6,,AF*KZM$L2LaZa4H/`2 D}Cf4(QR Xu/Dl7 EZcΐnLnlDž;V(djfqofDY1<˄gU832%ZqOJ{'ņCcbXL:a &gL9ς^G+keG!H V/erRB !cB&Z'B܊&ȡʐDEJK~B0JeOWxʍdcU_O j7r_x5G "1͟pD9Ƚj>6.  @ pJ"d$QRlDmt.&LI"pxtǾpN 0ot\Ԁ&^LZQ 3)])ؘ1?X|0b>-NxTv@gS1gJ:墝5Y 3bԱL'!ݭ~δZFUϙGg7@ֲ_"1np'tAR$0Xx?Ԁ1&9ILSBxs d۫BnAG%.@ 칔} nJ`F zHl'|a{?~y1C"V_T0lCl"e@?(@[A IT IA yXe.CĔ܆ԌIϵ dCT joxF Δ ɐ ?`dݏ)C܌ND FL]T-!AR!EAVDDdՂGWُ Ch&!a!aMd| !0ޠ8͉`IgAɍh0 CXJ0Y^X!b=ĕIU2ЊC5@B@+ BDma<$&HX"֡FB,稟Ex&+-ld]E ə9tAA(U^Fbǧ j WKb$3O$X-g^d ?0@{p3dD'3؂:Ɵ_0hq%-dv>6 Cl@x8@:V@J?׃+\Ss5#I\@HFnpdIJI-C5](Eq֋İM.*GP%։eQP (iBeh:iR,ɡae9):i͚QqU壩Q$ŌVgieIcR m*D_g&*-֭lī@Ljt^ DxEDk &lA-ԩQQ H4nB!ȅ>~c8FbdFdTKI[@x-xN@I+3x{.9&*e$d{B0l@B8gz8UBB~sRdl^Fg &IL7NĀ#Gjxv}Dx718lazȃbB] ]a8=kݏ drFpA'cr([`@z]yQkT9898A'8$$@i?2hD6)J XbH$*d,0҈]$~6l @w3Fn]f jd7ǶGXaPlh*!Kw@{*txH11ݝd ݝ7~1Hy_n%1fѪ1b):b!8MwB"PqliD,H_qZ↢VZ@ء|ۂj -&nU+YCV\Hą<($\Gh\<Ɲ()2\':F419kng_b:?b_NF@>t*2[@A뻾h9`*F\5)x./dXFF 6ǎr6oweK1Ѝ0L9:0rVl:ʊe@%Ix7ܭ)5})~Tw^t|GH׸NgZװ۰daHMJ45`81܉@#)mgNV;* D=-ۀX Al "$GbB-?&LcPOD)"r+ 6ϼhD|S+0ȹ'`dcxrn/U@ #`Db6|S8Af3ФkXÒvj${sai@icwG0Pf]ĺ>UPvS.[V;!;^~Rݭ*$*(bȂ|~>ld1^GMyK ߱ޝ!G{8 &d2dl@,5wŻnE-\*e"%0NIh=)Εz^ś \C =D0(_BP =@2ߣ \G HI@G#S; eLLm2d…5:pZ?5E#`eH #?{ lXB@@`?r1w# +-RGݻp}Ad&c9#pk.ܷHaU\ Z8q}{U d=woiNyvݫV)W:v:Ucȧ` >{7>!?o9sb 9='` 10Љl` @T$` Z`l F;EfH`¨ AH1F%Hh蟁d| 4@ 7@`-UTq?t 9\s p (:!:t != -!$ '= 6ꡇ$$MARj# BZI b DiVj :ʀ0Hr5԰ TZZ**\u*!uR6"'@(H챼h-ꢫ1̄v#-^u}1pHzE^CaVsa x-Z#:4bߔ۠K9L-jfof O=;>Oᢝ#>m Љɛ/tpD'xMGCM ;$N`!^lb EHs$e[q騄q+vG%(!IE72D e*h'qPwD9(hutb mk:$Mi[u#=n: RۆN~ru$Il#:UO '+-Dmq1l1&SrTÉLE*Ud=Y N`f%kzfVCq ײ W,͆hCvAIlt4ȧi(C!=Dg*Ttah_8972j8@ H&b%i:jFDՖGph6YbDsc"4_tNeP΅I.Zj #h,p.&.cB^/"cCeyLh 6C,d**˜J̪ e0;4:Ȭ ; (!*J>Ȫ, + ĈQ ">"?Îi2-kA2$ j2M9D&HPo^$ )W pM t+|I 2@ n#vFE4 '`kKE$ӄDt@ NM l  $!"zr' h-%.m"hh>0HF?Ddl4$Bh&1?L2 b%(H|lmJ'nE 0@鴖&G4 jqZ)!:DJE uKBvuJ)EF0(2 t1Z#zB@B 2VIzTBz1/w"W3WrD%2Y6z"6},X2H~%,?BA60h.1&2tB/B Ƃ>%eb`3̦pŖ\F i˨`'˖)HeC*.̦f~& j /0! --ۊ&O&z&rh/c%M(*C015͐4ďơBLSbE%.2)S }Z*`xb$Wk<4B'Ʒr% KHNǖeK!`FABG|8r;'~%H:oj' 4$ aWs;P" VYR޳> b!}@}†m eW#5E\CuBhBcB%#E1bA1e2C2nFt (V7 *5NFQ̞jGrG}Td쫎:6V/+ JpK7ȭ ̈|IIR",rV?t3L $@6Sn$>bSBV÷94&0zlEr)E4N6\b)%Gd#gx|q{;s%sy@tų0uWaxWq{vW|1,%TU$=SUdU)L*ע?YD!S}..: ^^C}-&`%#^>`]Bv4\8TbÈ2; j*Cvd}t#@V=`f7Ґ*pg>8Xa,0ƴxvr#2/SXI˔=h m/R?4$1VA7@%*! 9HdD`M#g4 h`j\bpv@b'1>V<.%qtt t}:ؔ+E*@Qo4b8qw"9M<x|e;Q<Wc+!|x[ r{^kQQ[aYUR¢RzT.@)VŢ\ªנ!@N(_6c1Z4^z.u/T 2f1 yL3zj) JF̜6 : )Wfh Jth .>bi;ʊNPI1g} Q/P>4 MD@qjM) iF C :&0~V4'LXX*`0%yck2(Z>:ETVXZzy\3pX:(G MTrd#DUȂmDCxX/Mw'5(t퉓鉞wv#$<;u%V5!bQ7TeyS%*@œ> 47z5n**G!45'$_~]^o;4C0bж?Jx*AÙ#é c)*WJۺicG;t;УH{gJ!4 @rfު.ʆLL"{4>@M)шIdNq| np&"ĉs 6I`Ey}.%l1=tA(p#jXkGj'ڮXlSICKK6@TؼsG`E 'zo8}#tW3;}ISx29QB[Ӳ-> y)ʗl^7p{5! }3 2Yr`xh$)H#+E]_C A}5І, d̀eCv:n0KTB–*{CbK)$%sE*創RbVS2p1;( j$10A = /a 6 _ @ moCET9TI,HƆjzhF9g&&$Fj # B !Mhe@TO{¿ hӊP[am[D`ٸ sTp ˷ [xZ "CƐp ϝ=L3 4oNEjПhܜ2+EUT_W %jIT[@QcJ#DeiAjP*Fd@ZB5:M'hS +2tԚ-ďj YS ?D?V~4T@QNf䥒IiCWj4,BETiEiU`Sˮe[e%W}I`ȥr1d]ȭ mq@k\5Ym0h&4)fưcqc#T';Iyc;)O$2;H~T&CPشyHC\yEBW6!F;Bn6<*4 wqƻяv+Ɏ&IvNJUT3]i,VRH3I$$)"#N~JҳyEi%Wb:( T`P2F. DU t7Mp*6*҅T?1B1qj է>M*H6;I*~ZbbТʟg"AIl}>i#^݈W!iM? "P$\g8䭃%K /)!dY,m\8q鳐L(`Edg,!XU۟(J -5۞tv+bEYIf2w,5x=rydcEQd+ 5fџ']I=gOd-WMR}[]sMWZ|g_Wgf%Ij ynzZ:ovIʷ4"ًcA4niENg# c8qF0DRaqˑ2:rAuD;vS>UqBT)cGD#cGrJAF) D8sHsLD"tMEY[%!\!21BFuTuGvu a6 BP ZX X)+1 P0 p9 JS=c&vcAsN%Ӈ[R;1kJ&xR;2+[wKr;:XbKQk<'1[+燼ROe&\G,|L3kZA;Wmc+EA)ͧL+t?_C?d%?`toF}-mo  a )DZ7g 8B`<`1XX,AЄsAlÁ7SMuDNG GuEHL UD4LTDMs.x!ɑBDeV?V$!Qr"iFAqpv1IRk'Y@DF  L8 1]à p  ` j$Pq&_H8^2&b"y!hgrXÂrZ:*s[h|r[rzH: yb%`\$+Nbls|f:d9^F1mwR,+h+fOfn#P-\rnw9wj`!/`.- ok otVzi< ogBs1QSX TaDYUO4Us!*94GSeCS4R4 )DEC\Sd!e5QF>duiEAwp\';y1YE3Z^:YII9@A A À p H^Zx&$]&k{YyI=b,Z@n:5J<[QM{rVc‡+o_R^h4,~*+:F^)^f++-lAGOŌynérf~~}"?`r-}~f2f `#rtBkp s0c4Y 6D (8ELsM6EZE;G*)t!j*("fmu8 .817: ۣ A ppZ) NZ#( ilTkpx]Z!:9 J>:i[RXF*A1sj\^I]$o, $TQYo%E'5^U\:3Úsc qG-w -t_2%L-SJ-3` 82#qgp vhbAqA'&PrD?FUSՐ-r 'ds14H;Wsʑbs)rsYt : hlT`k1Fw&)`AI9 l瀤^P! MmZW"8N;H$HσZR:gQ5yT9&'kV:HKk`=KHO²x `_kW^\\Ե<:QئDmUYn+_??'(%#P͈-g᜵ۨZO ƎQ}-RH&k`v VS#0Yq 13(3+4› 0M \(!XWFZּz/ Fhv*z䉽Pkw&0N) ZɾA@@[I t9I* (w9}YiYE$2`G06PQ!#qfg uu&A0[3Tzs1yR`|E1;#B! eErQԒ-I+4ahQQԄ:زQHpQ&11A*n1vUw 3Y k9BQѧ3YŦ~Iw.[{,Z$Ɨ&KӖXik=i^-5}"i`"`mڮm ?@Ae?>8 /EusQ-q0]R @(ַOԮ{d"YܟHX4:3W5Z"X1f׋1: 1jw0FJ[Wϖ m6߰`=ذayPC Dbٿg I>蟧=AMOGzك#TraMдF0K0Ʃ2>F5LA_6  qƲiLcP  .,AVɓcxwfӚ|9{Ms Մ !N8?pp3Т n|@޿+ @\ETyȑ`?+<t G߂ݯ?!#YcAN  ph ġA |(xxÜ6HN`NPDA!M\txHD\Ƈp|G_gLIGt҈(<'rh 'yꠠszA"x`,N"(O% ǡH)`jb-IH &DB×b&j 5 묷z)' 4 UFklM,a,B ͱZՍBs+ 0j9vĨȞ붦ɳ8 mD5jFEש v{a7ߞ.8S;r/b{,>bXξ >-!8)l4f+d3hQ,2_42Ew!ewTH&ȣ"&+3l'lkgMiS+ ;|m2u>*osp⮧k52O5_svNs2 v]Auک`,L:$?`X2ڧI X "6`7" Qf=뙅#}-E!6ĢhF4~TY k0bѶv#IDdГVmokR% v{64 J\C4B* cK8FZnrA=!tHC "JMn'_R9)GL^: [i.xRGz+3^dI, r,Eo-4W_iZZX`LK5zeT՜^k֩ƥ&4N!S5-q^^ M5*}D'bP: D 2ԅ awщu;٘C1tdю}Hȝِ;RȇP"4 f4SS d4E#8"(hjFZpOsHJj|#pMmc/nk1}4 ؉'jZaw-"u fv*je" f|f+9wjUK ,bp9y %FB|4;"ưc+t gGc0VͬL4#Ӏ i@ib@PRsT4D(i-ҨiVKjx uFWU*d"a?%05uS+Gf!>.p@a@"!3$D/DN$,E:H/k^THnܓΜ%*o8o)pW+єԫL_ay+'J#4qT=[I cIҚua*.쎵kh"e7 ni^SpjW}A0!`;M0P.T`<Ө+dOT',7>e7Kg:m"QƄCC"65EQUyJ\]Ĥ l4x(( !70vać  3@XU0ɉ뫾9>1Y!9"i.$_8'aF"#2#9!%z3$"E /kD@6@ 03h3K`'ҟ7$#;PcE[ܑKL *]4IƜXkg1L C0k9k8;Q[@S35C:6S9HwHP ЕpAسcr;̨x85f;;ij8 C|rLC ʂª^ BQɜ؉pCl.d5(!iK[PňXLVT} 0ؠI*c?ӱ51bK"qFY̡Ɩu:ho/; AzG P5GZH |'T9SCt G VN3X2ZEOIQ/{k$RSիpܑhJVjI'hWV3հUp}r \H:r}6u}] iт*!uʵȁ>NuH́௶!HKm Qs&$޼0 X@){\$R4q3qLUSXsFS 5B2DZzdmHGJx$ Pq;%M36% :lb5;Ju=x5[.Hw╰0haA5qeI-ȂK īIb.c7č=Zs z . ;ʣ|zc; /Wx0+Q!"_<UR2h| 8>32+:!=?cD` [ƴyl F@7#Ɗ1%Ӏ:H#"L`2^ȦMIZ f(]x(C<ґ6:YIg^jR4Y=ZgWg0>Ҙ~v,4IYnR*BV[/_+MUi)y" Î=G+ 9|.3@l!Dp/P0 !o7?vp;> /1##U@#mV&pC=kk)#/RJ_"+9>$& 9Į8xJ+(pHkrkfIi|.뜋9[$ǚ29S{Mfq⹴L| ~cU2OcXu?1όFғ:BcO֒ 3 aȻ衔As [;~5nIfudxcC2~2%;~q /ًJi>6\GJud~q88S!VKkUpB81 >^Ģf*zk|2-ߓ{&ƹ9=?p0$/ m0[+F)I=N DC66;,o9\ 3jaOK ~.qӾ 1P~gXIA/YgԋOuVPtѵfo $ts.ʠP{Ӄ7>}p(i>& BvQBV>szK2C*RScL2 we /F<ǷIL8ehdө^'S~"q^>1x~Āƒk&,8ii޳r,q%½M@:4:CBo&u[ϗWP{۟[ۇDy=PCM5@Ϳ`?`#GI( I^RBɔ%]  IxbƝs@….`hZR&0TM[^rˮbk) gӞ@#r 6^97 7a#2\_# ײ)謀 N`<'n݀8 >M:jOX\ߦ#̹8ԜK' 4kFsȘwfq_:[hQ?0쇱"vÀ[~vl-hء"55\"։YXu-Td Q9Dpo?ѐEn![H2 N(LZ@"P7P^+"*JTZ%W"4jU;r"*. 2#kYȑ5Pea{^x&4IfaoXiZq@N'^Wko-u:3j[߶-nq3SXw3\Ӏ1l >/&9FE-?Cʆ(zJt37P86hsg"(:irYH{| WE"IJV$4-Җ4J[677LˈJrIM#K]F@85{%9OO$De)%Jei*7R+G%Ң.ˈhH*xFrb4H6HMB -[R^t&\jFr#ۈ# צ⵮Tr7pMBʋ52㱨Gj%f0C ܬ@zЃԀ62g f)~%G#Fkpu`c3m[m#hmfjH.hy`a_r}Q#xǗ qM٬] `D\qZT'0GPewEEBb#WƝaئxmNicش8xP"\eZ-*6l8IRXqI]+.zEEoo2DH:~$˅ `\,ۜMJT$&Zʕ7Gͦ\Uz?׀BⳠ'A'DH?z=F)&rJ\FT:y"n4 jlIo5Tf>텬1Nז7tXYpd.|+Gzyݯx8!7%uP0]aDJ0\YBzax|0öG (=* #aoĥA1=e8FvarD&LtF~Q*IVDu^\qILx -YGHN N9E|QgQDCJTSHMܗ I0*mE)TYٙ rAp BԠlA@'ۍTcXeE b`m yFaK` `TE1x ^L;]Ǭi(@uFǴayixK,"5(C]GJԪ< a ɌGѐ 錀H XHqμZEMjM)E͌H HE4_VL} lOP`-I8`% H\Y`A`;8cG$JR%N4ɚ,Eа <DB>C I%3$8VRYhU/=Eqni}mal-oZ21@mdIM"WGHvaZ8%KJ:Տ;:U釸JL͕4X!Z~Z " [% śGX$H!Ԁ (].M.OJ<4H.ūc.2f_UXƋ\HQq iJ#)DFpPDVՌQHLWMҥ9@0ěMō C]B܉,ʣս lSRU ڞ`D'DByR$P$F8䖟y*RRUAFGpOb$phhHWNPZur FzTGm^T;wM~"e}D|ʉ8T( Gh%Lt[ XH߄(т$>J L-*[E]b a<Q4͊ȈZHkbo[MTUř]ITʚOSA]_^[%UgC8=D ʼnu sJJ|LP@٣NT'=YS`gzF'@$x'2)!WtP=-eGi:Ʒ(qk Td G\wnNf<Pl[ 5V%vTG-HGM†Z% V A)Qf#4߿]1EO}U ͌D4Z}Ү E_>nif@IDQyEJ  \Dg%~&NH\j)m^v`7~dWdk2']U(Nl_x'zjꯚz Y @ƍµZ-_Y[[,#) 2@&Gǣ'_(rLHЄT@af9&\7&GŵGI1iV3_ekdm%z鯫U|:ж9oF|\q+ 'yĜrn` #Չ2gY4 i8Yj'ߡR)-y3ItGDKt|z}#p1~ !^WұlqQ2".I; a;U7"gxh?mOUwXrrh,ȋLлɩ H}Th v$'<,eѥˠIІ c#]b[3s•6&6:͞ŞdGb(.ɢ(Gbeh- b25ajj۬b &YdeL̬y͝l]U%B#@8O$@ +H߁ 1b  Y# 4h_$aPSc7og~Hc ,%lx.\ƃ-fLף>Z yR̚E??4,[A 35RfŚ .glsgk (޻W[lKuJ/o[J20h -`C 7 (.' P}z_׭/PYu0Cx/O}xhw@~À>>"Dǁ*p "Sz [o@(OD`3h"0Á*: >?L$g$ mQ"tN1 jRI%=H$E#e4FȄH1%:!dH,*qL *$ڱz"T ȥ \2IPcI(j&jzIE𨫅Bj#ꫦHJӨ@Mi+ZjiU: B+ I.a XdvGlIY_5Xf2p̠p̳m/L*͋PMf3(f RqA덁z96 X;sNaSb.ASO@қo>r@sOKH4{=ev0=er.)1@90 \s 1)Ռ06?lJ]sH+jG~6K) 2Leh(%hH6sLJH1~H|ȠRj 4UI"mRҞݜPH՛*5JP\ I(VZRKށga VpI ܄ ^fv6ǚ ߠNXd߹{~/4 `t4` ΅"Def) c<~FƟǃ,{Xd" l8S2BcB%hl¡.`E!hl"iHY 4 A$jPD&21"R$E-nmڝ;qK[A&.MkR."8=r\VLsIzHX@b|u,J)EBV%JDVհ "JZ|Q򂅼\jN ^JEYz ̰e_=d3pL%IMj|֤f61jC/6|Q. 06xsFroَ| C,'Xf͌c"Z6.J8"RmYJ+jK(6mSFoa߆4 Na\U5ID (+$? nFD idd9utŲME+QTתRYO <U# sW 1A<"2 dDF%-iq<Ȗ|QF#،f.?qv&Kn?ބSN:;樋=gAg;,YsȤSdςz hAy{kR=1{?'vg3tj4>5N&D#BT0Vk0|kMKܨ8;MUM뒤D"w8jU!1OKC"6BDLhUH궒י@F MȲ8f5(vB١(BU mvs/%ZLRX;KbL#&i Z$ez)6FmO;GK3}f4Wsw.=`L[3y^Z V$$BN+G0h*ћA !D/;g? AV4}D'P3!HjJ` [pju&QJ3}}DIF6eRb5 vmfK]T) Jύ8XUشcAA&r%G6U2HˁG3ˢ/IYho3&);Եy( كiMI^{D^nZ*ҫR4ACz4j]3]S.lIMA&νKo5ZW5윧omP:"Abd2hPqGc*iu=S3ZKij~

~a<"`Dd>vg"":܄2J5Yy$܂NbbJc>b ]"+T4 ! sIP S89qd뎵1Ϫ'ZpMUPepQ[0vK$ ͷ.i3WBJC~6T]О^~#p~c E5Ŝ#@*椾|A$qd-<-lm 2ȡh1bl?DPC萼pDd)#DZd@ƥZHD6,AvJĠ fƈaRJύbJaQinl/<"pLL$DǬ)"V!*)LUJK"$;Pyl-Y(/0dTΌ 2ROqapQ,2%MX9x0 #~@YT^E^V7f- k&i {?"mfoV;#r6?T&MF+bXD|F*N`cdEFfC@O6jtt*?w ĬVLmlI$N.FNhDH&9+RI(Z.ΰgK?34y3LXc?6wB~).7n ZP^W rrfqVNP{PmC|zP_E:Fc28N #A;kU I?ZOzftuUnp<D´rY0 XGrdk=h@2@dDcVqcJJ@vg@Vdf>/\/]LGIHtLb@fiM.-ï(g ί L'`ӍRso2H@e+‚+jg+.bEW3as&V-{%TV{MBtUk+ (OcPy|piE;~e >UkU;a(f jN {5AT" t"@YbEUaH$}- T"dDDc(a#W5@5< 0eGτD-(F\LiG.Ml$X3RBx*j%>)TU"6'zBZbc/^WرE|pyFpI} N#L|I}(@8WyfsxҜ3P Q2gSҁV%%.֡c?CfsMX"> .`!0%$ NhE=J:F6OںA)e^|U*#l+Qv5!,kl]Ġ@8Ml̆Nl"v(n覌whGfGo7M4£_H@ *2!jN4gѴZ"R5e8aydX fc kjΣEZo~= =Ң/$(e$q`w "ye u(7n璉b1>dwXbSϤN&T2$ nV%g7o 7U}CyS9gU~3} zzKhYTS&u#5ɉ!< *h;/xhcpʐr&n2L`L+o <)D/fc.jD[FYC : Sdd  -_iP'j$dltkjjvD ILvx` *$S"%)抺 yYXdk{Z0|19GyvemeIˎ!mruz6V(dMvv_~Pwk|,-!X^2;SCO7 ?ןj}O y[u]m(  =UfG򼭃#JCDr8F|RyB)DD(=-g DkfccyB~"Ot8Y-us^Xhֈ˨¸ 昧М0:ZIyw\jWK>JRWN$lwnqg }eKz7(X"Vg cy9U Zk18xA/ 2ȀpaC/1cBF\Ѱ#=^<2% !Z.qK:q:q h  f t RBT _Z`o\3.jup'"=2E ?N'Y\AT]/*+_WĹxЩO.͜Ҫj l Rck&z)Q <h֌xR…JGܸUU^pZC$`wỏCd̋g#}{zg@eO` F9I!A "Ta 6`I 2`G'DRIi QFcCA"I d$H*-dPN-OX\\!tmMesLR7^T8fNjC?8XX_uT|j`REU(|VNA9ZNA9\M;&)9zqVPm:jXYsVtb*GծTwV&vΚb mx{!"q{܊(aZ8.1Qф!kܬzH 'Y3@ 5RF 1J 2"k&]qftCݶkiUV?̫EvWDEp'v%?EeXdD0霅盤mk E,FeEvb9"7ygem-5n"szToVAUΔ{9܍y]xI*z#Hn 8߃v"}K; Gc<tI __A eFi4C?J9A)N*mŝPK TI,C^=}hqC}Qs2rnjZYFj4DhJEG%t4msw5HzEDUI˫G*YL|LB()ʄU씨̑8VR|?6ET.^&*e=JDqwR @ YqҺ6=Ӥ缌϶p\Z/P.mi,yg|50Wsˈq,! t^vapE7Dq,&5.qeqxS-]aO%ph$@R$~ue$0[S~@f;x/(x<(0",t4cŁ22>&#A>sJ >vpW2l&wfd@|p)62QVB#c{ovx$@=6%@7pdB5]g*DnHi(\eshfsab@{ǐ)1K ^fn'7tHDgWX*|qEQQ`! jP}&}/2Rc(:G~q3उrdQb^r^]B0htQH#"Hs/<"n;C($ CJ#J$kCaǁX3ppe&b␩g,@,Z\4R)7l6.șHVYq`F-z3(a VNCn.mp"R7A!<ٓwtEc)ADQS58qjX%,ah,e!-7=^:R-ՄOhTBSv+iYٕ78SƋ*;K"HmuR/a/.`$L"J"1k=)1V?%E9V՘沄-a!,WԒus+QlԏxLZx VpyBm_=`KpC-[Ý'1e&TW{QZVc2Jd2dVݹL,-w<9-selGf,52ARgyGP:Nŕ5Ig<_U8K'k/mу'kU%Ukȁi}Wz6uK(?'(Ԃǝo$Njze}wmҎ Vh& ̠(##ZQm1nC3 ?Wy37~D)sp|+q2VUΕlW &5.P F-usŒKj|Z+7S[TE+)YIIT]T6_/TrI#: P#o;t`f" lX_%Y~(fw.8a}3$>%uqE7@&xsFR5n=;a*Y9t$1ၑw+?)q4 q5Џp V]q3s֙kTD7,,YW e2[9OQy3(7^bZgE;;/1vH"cFIV#L{n+5*.w+ r0 0 L2 ` ^L*uSeuG@j{'Vw+VUN ;2Ȯ(.N֮.Nn.Nn/Oo /Oo¾!!#/%O'o)+-/13/5O7o9;=?AC/EOGoIH?aٞOQ/SN!@Y[]$XJVcOeo/~kmLaρ@1_!.+*A'qa!/2x|A(@?au!/2P q/OLB{$?_"COSvpĎگρ/2*ˏJH&,B.`Ą /b8P'rX GD8rBC('pdD CX 1fː##YQI.eSQN 1ѝGo25t{[C^ͥ1C5aŷH qlمW>U< YOS1½YV!Fd`wY`M}=^%4whkرeϦ]ӬGu`D & 7Ak٭.o$+^ @j|!cۈk{x#Mʭ>p!VNhx/#6;CC\ P뮻V?S@'.rθY٨@䍂*ws =s w%;||ˇ-t/A10Z(TOvcՌS}Я/ygKdHFr%Zs%oؚHHL *D 8 43_ ] %eAy R1O;a2t}8!@ H(Elx0=RDuD[:)xF<kdgE)o2mcxGPS690!TUhӽ\UXǖw̳7nLMbZͩd?ԫ0eXȞM5<7 tMQhXdbqY\鼣ЕlgPjAɆc͏؆V\?D@-7fm]SKXTzcوgغ\[M6BvcmJCft[٥~O9Ff^t`azqQW?09|EjWťw]uJJwU]dyQNnMS6'0sc񹎬qږfߜmVуeR'~rV\aؚu\ѥW0'p`dϬzUo]T̴I,*F& vVqׂ_=2>k`յ[@̜PQMvF]hu@/~W\{^B&&cGvŭݍnc==MWZxɀh]?f4&J6+XHҀS}X_+\9;ه^ꯃU8ۍ]~΀]C.m8oFEL=!rĬnq҇[s֔yܵk`MO5~JC䫀Ŋ߬e䳑ψpЏcMMM}iffftttQ;OѶVVVǭ{{{0rpNYX6A߰I*2`_?A h*\ȰÇ#JHŋ3jȱǏ CIIS\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`Ê5_}7۷pʝK@ xg޿ЪW~#KL˘3ky?Q  }ݿΔS~ sײkͻ{,= ^VسQOv\[ryӶO^=ø]Gmk/\w:(NdOMA'bQ7AvUHU,ɃaMz~X/US}`--\J"?1֊<*^JӒ<ҏ B.9d{ӝx=@aJP)@b#&)?gՃbxٓB-(8Bc@'R= `ʳ•mt[;`(*ڇz_"*С)ç@O;^ |7P)5*U~`@*>Ӎ J6hiojr;Pڤ(dZ#nL<詯ZR+AkKᖊ&2E!#Rz+jz}8~(n.MwtgT:~;Зbq@ւ10Ǭ l; sj]zEh\ }fҘK/K"؉TΓ,NZޫ܂FJ::-=Ҍ)S4KEZƺo:[=;(: ?zޘ1)5"&q(:Ȇǩ?w(`bw'p˶߸kIL0 tϴt';zʷI;KL\F!syuwR)η討_#J(`?,?O~Zq"0ZB%ja/ N+d`p LN= z2`5x@~0C=VpЃ K|K< AAc"'GaKPDH9AC$ؔv[GEq&_IHF@cJFDpHx̣> IBL"F:򑐌$'IJZ̤&7Nz %@RL*WV򕰌,gIZ̥.w^ 0Ib L2f:Ќ4IjZ̦6nz 8IrL'V>v'0qJ,޶ƸY{ $ D,A\\z_qS\0&KfdNOnS-e2TrrgY-Yv՛^w@-:ԥYsO~ZؑPGc5j[6өM-iQڼ-+kғ|'t6zְ#f7{l·m&\mPso)b6R]t{^7yӞ۽Պk72l]BW| ϬEws1qxLLxG:D'q"B/aԉSPrzeXzY/Ӥq}9~c;||J6 Yx4Oi7PVY'bO_YYr*r9q 3Sw3o6{?sV\Wo@&de{^T?E\W˧ttEtnPG]dz]Ef0uDŽifvASd7\Uv?886u~7V2~97k~gyW,j*_4huwAy)Z#%x)QX8.q@h.YFyEyx$f%`wpgfz*kg5eu~5kFkWBs>\e7\plȃ7ltN8FmJd&}BU7u҇fZ{ˆhvsv>xs7XlhSesoR~gdVWh&`rP}uX)g,Hx+c7YqP~rW-'zuOh-a8NWk?oau 3z@5^SWÓz6ha~܇-'Sr ;kwnmΪ^l,A--H{YƹH\ʝq|z*xܭ{Dž:hAAY!}p m,z4J9; wYŘuӺ-ʲ J4kI]x  hLT]Ό݈ x2)iMV\ւłrm+Y,*8e ..l T0R+ݓLp|- =Mw }r}`Z)5m%|,41=[*zH?>}Ǽ no4ѹvq *k`Ix Gݪj^-#{aԃhUXKڇ:1޺*ۋ;:>]+ (}nsM  ~sx%b+<Ȝ}& |Y{\:|oȂx-1;Mʼ'ڂ-j3Q-q Z抸4*Qa젋ZMޗXj2v7;}.:hN^NNG0ǥN ?*3}C(Dj0T3}} ~ &}n룜+gnM1Y i4O]%-VmV'{V- t΂3o-Y~'aߚdO~ . Tlk |NCZ!}|f -2tɻ%YY'Bi9a͍-x[^_V^Jշ qNqxQ5{ޔޛΤx]y-τNJ{\:SٷMud@a/[U%pUcz]oΧ<YLq? ,x3q!?+^8PF5B?JiHX3?4Y IfL7CTPM4at+4B4O8PƬY3HW2Q X<(FD+QCftQͥDH뷯^.ɝA6ށc&3xP-+Z J4jI[l&2k4ay ew8uCN/;3'кםqjbطn~gSfӖzr%ɜ.tӜC=?ЛGEbÁ8r%.&Hp=:':KJ; / +Q0Cl:"lf̷ArL3m,|܈$ȟfȭ8n-Ibl;2-8,.7~"Ł(2;NLCK" !+^r'~jJjODo`O*BK +4tڊk8j9:E31QJW;㨷눴V+4Xaı);q'f5R*fx2Ӱ- TM7-Jsح褩=L OIeOs7"TPBBB_?w^*` !qAWG5mr3[*.3q0M&,h2[1bm3-ǔxGzV#{hayٶݠ6YYxN/ZEѮ4d $STm+X(lEZA4I^}!s/Jj#&fA8%677$[ʝRTKt:C1dވo:35^v !}Bykv\wLJӌc,+ؼdur蹠<СA'\.< /GW' x>=_HdӄW)FR .`|6A*Ap0b?֑M\ȇHI[ #k[UO aF1j$Hpf[$-J+eƐ3 afv92:;qZ)4U\$F7 ظ#$UUZܖ^,_(|K=4QpZ:)\J i\8FNQ.4 egdUbw!.+8%5[q˪LU"`.3]'SHX0!L$x#k50!,/rX^:P{ ac5pķCmDA.<)&!$ 8oDzh PheLp8fc~ -/c>f s m1'Ox+pegYk.ϯUG=cw$u;PK/|띤kIJ$?Tc%Ո 0쮲Ase :kx9a0Y[VL:#o4&[\3.#Kf-|s Uwl{y$Rwu?%^f7~pZO1Gvkf\V˭?X] {5<:n"..S :^-@> 'au ɗ'K.UfY;_3Y+]ã 5aµ0 㰐;!+f[fc6-%+6y A pxtRA& 2tr[ט<*ˣp7w(<'7HB$܍7SbزR3=84aSR@3|%50;<>.`:CRQ4H4aiC4I3?4+KR O{Bs??HtcHQ뺁CS[C5Dr ;K{58l5l 4@{)>$#C.$IK2/KCN"JRH†2d>Qc IɞԺTCJPL&C@Tdd80&@%tʬsG%%FrD*'jQFjlţFN)$jE > >H9뤠 ģ:!4H?aqHI#:dI΍PR ?W=}Q!&FhL|dO0G GJPzP,,=J-Ks[PxhrcչlK假$Fп˺K;#Lǎ68GwdTFem@8-A-+4J\E;O:ۈ)DSrpd)$Md&0WMޔ , ӍRIHDz &ЯSNNI:ud)|ɍ&%HX+TR|MA,/H3*{9\>hT΃-Ә0SlXS W@]IEҌ5ܙM:UۥI>%JԈ$HɎDMO!XYE=kMVx,xx^TeB 1̐YPRXdиUAmF*_KZ!I&[hƼ^xtma Aū̧ Y[9!X \ 2akRڭ:e)vM}a(mxMO\#R \Hkl/-2W%ݥ3Ӥ@ݖz]4(2as:Q,ίV T@AUHVd0zt5 L^]ލc `(Zh_t7yPAKuZu$UJL&JűN VOc佳L =2Vwؕ`.c Dt9rxbvąsu zM {9LIinGC!.blMIUE%NDC;S: %Y> fޓmOXQ460vނF8d;B0[BT%_c76'durhZUZF.m,iJZtLP%ޛzYͤdMVD=T2|N8T}N; yu\4fxEgE\b  Ԉi+RhRB@t벆4MNRNg-Ӽ\b(S %g`R!E/֡fj-DG5&Ԃ^7f7F 7iff聸MBSM]PfZTmVimJ߫-iix^^c}쟈l(۵xbHqq$x)M\Խ*k\^kNi$+-NdθN (6pl3u~wMr5h  /B_i^qotPpPv >FmװkHm&TZLmnFiVݞڤEn?VcY}>q nNǮq"僔FRZjÞo69D&b3fXkrt|-mi\$wkfg!ݼ1lb8Xlog+'`w3}%h~vdfcvmui\]_r*rKHmv>NiKl9':ߏ^oW'x&l_^čoTwxkvh^t~}Nk VkW]I惍=ؚ'e>NvZ0n.zg_,b_gVvluh*"r@d&Z%Kpv?.%K0o`Pfhc'|`uNzXoe(xrhx]oe^gN'2LQ=8qPR4TXɉ?r^ʼn- 9h'bp fAxף*D-X-&nḢ?˒Yֹkg?hGWJKuW%fP<q-i2_2PN~qo)p#'|7 Ndњ{3wh>B!]vyE" IOuBLW@/U\sVX#B!N \(&eDL$SxAXYTE5hQYech;VZk&d 6\MyP't2eEYRRK.Y=,c=քa|4eC? y[bI 6]&PYI[)V&JO[p7鉺)%FWbu8ӅI'jtNH*uG^y':yEw5׫|%}BO>v7`AwDJq!M o$BX(VPHqںy*"U";J䏞EYaD?pJ[daʼn$aʆt%KW\Td&"5[ YcfY Ci|t7-썋xkQ@xХ"*EnO%2 /6RZGFZκxر] >kz^}=dC \wC+Ы=^]-ޖ;n-mʔ.2MHY<1n74Qe#h\092(qqJ\dORY:3DYbW_!6јfh^֦K0dL34bVMTy*/nNc(7py%u>PV sJ[t  E\K:Mjm&g$j.c!|tM!4<B p> z+ViGVD8TΨ5Q$] ]@@ iiP7|._FUāƁG]~#Ȑ[Y2pjRSĶ$ȷTi"[G:=-ei"`Ҥle{ &d&/};_g/NSX܇θ?lz攞.iHAPK\E]x:7܀s\f6hTwrspTƁ"O*dX5ߐw3XKBW ժPSrG uA* I'(Pm8EQ-u!e:+8J銂j*Q) w?:]&3u$1KI|^Hщ\(zPK'0aFf(1/e&>Qv2atejzAuT^y?bJ_jlѴB:0ub ^cЅ46i*`#GBvC ,-:iCas> IV${DVh+~

o(ؖ͠xv\ԤhpY,.(f8vvԝI4nbTzƨÀS0 `0EwlF |8/U.Kz^w$2k(UK撘¼„ %dj{mL)ԯgf3x S#ّK>fS[;NEģ ѣ$A:>>NS D! $qAE!\!#䡠F"# v$Ќ`0 !]"J* мDdC6KJ̥K_ӥb D5hLWu"{%'v"5pO~<LAL)N"V=!bb"/Eq߇a!fV#1d]J\7F"t6&8r##\ :\aD`;٣H&V;5fA4&i85Zc^ލ=] C&$F,`ʹ3n^lY\ f$ &D+?h $ ݙ$LQKd6Ks:b6\ZI"c !YDPwb"'~E8`5$SUAz[gaAȧ|d,_"֝A YfT .Y=_P 兪Ab^~(`f8 f8c>qDaEf#e#]@=(핓c&ċc:$Ea_N _ae &hN`BRh]j]>\-ޝ!+$ڙhG2[p b&iI”KCtK@Dt¤#&]A\d%% %P"mL(JN*I|'''ک* -0$+a gH)E&fZك^V ZciVi(fg.=cڛE8A(P\ZZfHPfhfz+) c6ƫ_ff f5^(46odHz6tDZ0"*$IN,s)sAK$*Si""*UE(UE,)"TJ}eEg}J1B*Z6zê?+(AhQ+(lBh*T>h* ` _Fi*+7ib)(=h>Fď?vekfE!DdcfΨ 鑘`Nnܱ"e^k6(ED쿢7'МN@m.m(tgL*si'vl]d5V#IĨl| `)¬{2 {I[}B} }ާ:gC-j* g&-&-.ΜVDojCP*p.Վܿ^vikehkam+잊:n-Ec(.D$:q:B6VU艂溮k&@J(3 ߃5onɮ+d+,1?KBtn,Zg dS%JO&>Z]r Jc$ BTB1 /`*ά[sΧl6"ۙ*LҮB1nPdD'bm Rmӌ( ĿpC㹍m\  A0#SLp/rAnh6e0Epp#L^k kjk4(RČDd=E&eÿ- -?v0W.J)BE۠Ծs,d7m,Asq(4Ɩ1t֤LZgN !G˱|Fl_(e 'q*zr!,8 ?plD|A¸V11(tF&Z4D.?d*'1*P(+JƑ!Veh-2=C--scX@Vk/=鴚33C!g6^3_#5s<"5EL :& 3@p2m:[fgC\X-6ْ8H R=)+m鑸oR D¤+OGr$r>KgtV4BNg]5Of;S@f`Ca5v::5]C^WD@0m?u:5u-;ܖKV,ǵkCcjglªDow2q_'CAzKrbtR D:RˢI4ywoLκwtCS2p)+wpBT/B$Vs ęu-j'8v=i6gy?VD9Ó;;ݪ@L8u7s5gam DBEHz k5;_x_s8]^׵3OZB8h/|-c/6{ŧuy9TO*zSD/?qs>tH@1$b \Aٕ4&G%8҃/C B4|{z5Aț?+rOT7":բ2p6$#;jWO1H<A{c[;H¹ok5/*Ԇ? SD4c_*XA_;49G(b7y33y8"O=SA-Ӳv׳9EPS<;@~7?S\Ƃ!JZ5$oSYD!stx?\CRv,@T T࿂|W cPbŊm"/ZbiUWRK*B%QL7i&Q8T?{_v< MqP%NUkW[6yӘ9Lo4nܴp붥Җ۶~802{ L"n㊿py,N?lFΧQ^xg*_36m}{޻{k֮ݸ~}mZlOw$WϵrnU=ΙoDuɖ7Gt*xȠD OĢ\a!|P;au<!9 3*NT*G6(%P#%Z\I %h\ 'pZɞ)Ϻ- /j/R 0dc llɀ6I.8 L=TQN@T6R0'tzMw39O˯b}R+ll(3(&43M̭بE<7LaSL8*ٜԦ<(~nEpJYÓ5׺m+_}65TX&h& ĥh$iޱ琅+ȠAm+pIu.4 CIjCڋ7Ŕ|ױGU*raf$QVƩ)go*/VZ.0b3+`c~@CD/s90H2L4 B- KAXZmR$Ҙ_@mgZZe&=dTE}h2Pc cp"vءeEWٛDs#?i"vYHG $GI#Z"s* Y[]U ١ 1A&/ȋw6p#ɳԀny*%)vƉdE!nN7\p<=+Vi`CX!8/ۧ_eȐ1+3Il|jfEff hI%(-Tc Q05k@Ikt 0ea,J"zBr١J [ܢR2"*&bPD*YvWb/0r$F1?89E\Cݹ0Tt@PUH@ΐHwJQHO-_dF8O\e-~04{^OP!8+uxˁڲrg ILe}b3lYv3)L4AdH5L+ z@4Ai M* 3OyV-ԌP(jhz[҆%,zCPXh*-"Vd-UPa;q/QG̸DPt b:{ӛtB]Adן].MiJywK )²P)OBXLOT%+~kbuq 8 |x>ŷ"D׺VH_O׾gT23E"E[lg˹(Daˊ2$: iQ3NQR>IUO)R N27ݭ~UrVTh4Jt3%/B#m,MSgCU"@pR)L KA!1W- V+B'~a;#5BRYH'ZSHCfvn\-b,EAwdtӧB@տ,-#go}qqHYBpb MJE4_`#m55ѣ)U)VVTbTlO7RvicC GyQTSTN!3Ps:S:ͰzRpǠz"c|ʷ|io=' 9!p:!.fp#_ 99e ~,iɶpSwhV%@m'KQX,-_/XmHCjseoA"-[ۨPq\VTERPn-tCno:422t+ =Uk+2Q3a_a@RbɠX)tl l"ݍ 3eࠌ- XZe-Pp,HA3w{5{Swg-;|q}w,|{A$ %]g72Y"63$! 3zk4k}}Wqd&ZYi5R"5_Q_A\Q1+r1[p.90K3>8A}EwY4fX_uaEvaSKO{Wߙ Dak ٞEz+'W&NQ!x,NQk&gDgy09"Y |z@NXz,S` 0a 9kZ"lڤͷїק9K,Nq)MYlW@%&5 Rio{@lp?pǢк31rF{Gr1l"-tG,Y+ӂ,[J 662^K)Sbv9l7 9UWu;oUcyS5z9UyVdc-|7g3Zmې+"Yo"?}ḋ|;;Q%"+'=| ר%[bzٛe'3sAZm1{Dsr1@a\K#t4^C+[įZ9S{1Oc@C툧$\!DrN,sޫ)=iNe{+SQ]P, ;GUiاZasۻ}]":i9i!>Eo@߿)0aA|0,(aÅCtF@G!7leR#J+'xP1|%pH)ج?p5J(KȒ%Ԩ?JUsn,mdQ,efq֭J;$T&pjx_○_x8_?Fnk%۷fՒ9[ƫl6(Q6DՍÉ?XkUH}\P/w}cM{O(O?Сwv?;M7qZXsZ?-G`NyEWDJ -KAgRata(?O-u\PA4"DVotkljqEc]^Y_l]cEz5Xb?9FXYfZ5iY?vc\ y[AmnXQ%Q؉znsNsN :uYgVWbvI%GaQPYBBTK2M~6H ꩦGkⴓ{)x+ kކ띆-ZP>V_lhU%3TvfM$eXca.U& Uh}R/S$ [nǠ@tgN@F ''pU&(QEAsP%t&?[ v2R xGUhsi0|zN))M@6ZQź\*D5DH`dRĴ@D,D7s in+̏R齬,ܨbX-Rkj2~ ݕ^NT_IVU++YjgvaVqvK(JP)fsyH礧 wUUʀC UOSSt唝xsSA=+K0TL9$?Iߊy?o~F QS~%>lhaڐB NP TRCye#UVJ lU%t[6ep\ aҥͬK^Wu/e jc!(uj,i W =mLONR 2nzuȰ='n*$h=?ᵑO@dFVɓH$c?b$dgIKfk@ѿk-o _2Ɛ F(a*g)qhY\Rǁ+!txWrAdI:MTdI E{NaT>0U`Hz#*Rڍb'h0H GlRm "dN$N p"" 1[ Xn\ul/ brukaO,Vun/^ |sȼ1WākkUiٱȓ_fU D̙}ߧFSc>nj1@Tݬ)%Z8=J4]=h1!H|Fi_SʍJslGf-y#:1%>ޔ]?D _ Ңȭ>2'&I ėĉT$ILbC0U m8rYUKo#K1jc^XUZ*7b܎uN}cs8?l`r-kHb+*&ZIN YK6Ru鐡:7'xߢK= ]&bU `ph4viOyb40M: }0U 4!]umwǻTHVBUj,Qng;ڀ]^ 7R QnsxBڔ|^[.Z]TΗ 91LF0?ןU D:V %VFtA$Qg.M W-Pf;mmy ԇL m?kr%r^I# $}!Y4l@f|! A 6fxz0e VVk41RIWq4ƇTɇ6 TH4 @LKY S`|)L4 | %jM3bjF8Q]']R[q'a60&ӊU:rg7s,Rdq췋c1a' sQfu!^e<5e^Np{J GJ1mUcvoWcmmmWk ?(xq5c>x&mFo(9V G ۦdpVTy]EW0 &H% QkZ( {AI `bp`K^V?UvIq?f0*V8@TDk`Tɑ6pRHY _`0`χGc``JC G*7gjU,ZC )&gA-$hD"t8-w]&arQ<e1i6QE}6Eb4@l7@#l>6m7knogcuetWd!mYwN&wdHYd֐tة> H pVU"k.)[z& $\7Ja\[5@A ]tUBV{wTS6 f aT_d]9]j|ƇIu`XOI661XvX%%vh|to Зc3j4;PB×r|R1xg88mqaC)Zz8\4hsQ62ZDRP;Qߕޕ( Qћɧ\jܸokbfUTV6$Vdjd n7nIaIY@֐ʐC(dJ&hA(@?8 Q: 7 Zxg$V۠\\PDUVH 4KYAu}}v(GJÖU(! !CY%9@Zl*Tp+Ŧ+<ŦAa7k_c'4`PQjrNxg/bb&jB1CN! H,U,΄^5^4HCs ^G+p7z$n6vZwOc:J۶ YH >*UHᝍ@u[ HgBcې`{o7xYB x0 ? Phƍ T_^T4@L\Y )_?6 抺&V @V1P 0Z 6 V` KQAPA -4US4j# @C (æғa7FH3"cv0&vYe  [Sh1lq"+g&}^zpm2Ab ;5'8jw:|)F^ ƛܨggvnjuxxAn6b)b9٩D FZn.mx `G+pXgA $l[:m 9W^aW * i p AX ٪ ?`R B1 ,;  pQ9ܻAz QpEz뻵|˸FZ{ `kVkE᣷0}bb- N3&k \TR@ sҰޜkNwgy\CHwGGCgǴ2eE!5<9,ƂYӛ/oLbgn@ص9&Iv?LzIEܐ>֝o;!yO, da  xӎK?P~XXU,V  ^p ` bU`A`qDL! kk˲P  $Iq0ewPSl'I3 1\1ٹl&m _L `LT4AYjcz m~ΗҢ=L 1p,k?`!Q)BA!e T)h[p Ѡ vr#uD$Q]1΅t/5:R4!j r A}5%|*_Vu . 4#Ry2 bgodfAV.bāčԝ1>S36O_nP& 9}c-bB^-e 'P ^Zh%g%NHPAL0]GI )iǓ!ܘ$bV6[ ?+V*H֢&B(nEGԦQDvH'%hŖ-3`p\[Ļv(H^e%Vbb,1ZŇ/Zh1WriHw!UTW AQVjf>{"jTgcxƋ@UݭQȐNQnEed'ǔ@8y}_/1PՃr_U1Pb,)B0aS' SpC %P] 1;DB QDY&SQF$ FAG Ft#]-QhF$j!+a!bDdj30h"LV!0Ȍ@ 1(*&(|ЋJ_~"jRYd4bp)"իRK!,;+-Biĺk"PñilK0t]`n2 K8D ,Z6 h, 7\(͵ت8DHHGyM"iP7H# ,(2(繾P##.'=e#ﻋkO;o&ï(*Ɨ pf $"nLA^bdB %J&D$¥5|+9cܹfdI|D %ih 'H)%Rhn'B.QH̸ QC]_P"AP S929dj<5PEdB4&""dZ$&(PjU,V2KZĺ_ [deo)FL1jqRjb%ۉL+Wc=&89x5AkZcz%\!u,4P3 "XEv0UE w`")lE Rph cLa S?Za4$1u"OXF "(De*CP$V$01B? L "IaHam{8ښ.$T8Ñ"pք%(E:Rя%7‘4_r۰SAlqM6)Mb.YAAsVcb#2a$񈡌"f¥\ET*KX;߉%2K:2(EcBzѰ_YͲLЃr[ITrO"iG @ ?6KjB(0TL Hc"44.qoz B8y#cD-Q4#jJdgRG:EorJxF+hRQG| Bb_$P9l^1 7qH|x2y j$&ԪL9nb9=#p3P#>cP,`Fl [Y2G c =EQzQE qIЂ>*.ˆx5cVsX?^=Q!كajABf)KC0 rb %041 MN"?Pa+k7-M7Uø&iAuU+\ʹ82:?4vYYR׃Ѱn\-!JvGǕqY[S.Cpt8EOZ|1źKj6d[1U?@i5X#@6!hQl,eg/-Zlـ4AI.\|+T] 2ZԁIf*sA2?&2ArMR nQcw5"it3$ Wdv&JX)+j[KV  gVj%*ے{`e;PŒ}ԭ~ ͈Bd0&H07@EKM!A:U㘪#ȡGIv`\enн 3a7mK1 zRkiKac5F b:=x _Yr) bdObVn>ZQ D-hPBТBS5m2 ML[R=Td~"uQqF{sll@u[F W A"e4Aj s{x_-p8Ҏ&W}%z̲ -&^n}S"gb (KUW)Q#"D[ qg%HnC/CB/BU83Hn`_3h% GpI13p>m7m"Z:Ҧx#3RLI9: * [ֹ->G9ZU:` r#.P `X 0Ȱpn*b[Kq B7ý qs[N C<'DBS 53DF5hV QAk p)(n6A )lZZM35?x;;!c3kļ˾ujFp*ft f,bARqJhQI⑊EpZp!8IX.ø,9HB*8w9ߪuT>ʭ V@Zm q {R0l ֺ"+kĦz`q!b Q !<שA8J: Ծp'/*l8DГ<#8:Ȉ# t+La'7't+_ ,DRP 04_U MfTGVt|tlFtڝy;@"k" W+8P M (5ȼ4XHd|tY T Ӡ4ZL::>OԠEJ4=WDA[4`ȓIϕԓԹ<5*>v@gdL?T' K?Pi= \+E ̢CC,˵9<;ǂ4?Jsa`{)`&08 &!%8 R#p-H 8-}-(1ZA)0̟ 1H?Ҕ"캉*|a0/0kJ7q[r(rx7/x70TҘ тH}́ ‰ <ˉ +(  +s2 Lq+ ӹi+)?DLV5Q qB?0'˵[ T=(gڞX! RєoҔ*/d# be THQ!2w=w}'^{Ayհ3PO6=K#RI˖L6?i8=D"<#XL5rçSzm*ٹEL5DM+|LUkQQ35+*Rf(1 ЉpIl3NW9c3Ӌh5WJ3aŎT=#m0}Mɽ҂iГh4M! S9`&d0m;\S5Yk ePӒbCE5G'PMcў}'NQQ}6m-A&Q)]%9@@˱8ȏ\C;Jx/B肏rjUJ1X&z7D.b"FP1-Yc8Zeu7@a6=؃ @1@ tdA/h?/?1&v{̑tב:M<5ʸ:8,2LSck6-C´AMe;ZM Б+=Nq qD98 M1NdĦƺk,i86˗X= hMZ,\ɡ_x1q4E Z56Iˆ*)΍=Zȼ6Eu!F#bȆL0F3MCNP~ݕ>++-px];Hd\EWӨ Fj3ѳ(WX5I<꼟!)>*[Ss"#XiX-ƅqӆІsUlGY?@qU 9{cl:#s~Yfƙ?e.fL(6mڻ.nnEv-[Hf#oNv8/=Yㆂvw8p k 9\C/MwFlR]%~+R1v&?0NN¯4xB݁оs00gJ Sܣ$x05"q l:Ghz.scJC?@ve1̼r61Ӻr+:wwV9i>+lK6Y$_0nۜq G:) Fjӳ3=C=ըWІE*ΐp`}n||sł%uSY1W3]P5cܵCOeti_Ʉ 綞'nIU]V/9?v!$&/&C-B)OJ|IH%!dlƞuhf#GZrg$R-ɪ }=2NBhO"يYԅfǥzf#V`ViBR6S74!taXq$`i(ZԸFIaT"@\bY"78 [jD"He K+Zè` sQGR:閣lᅝ8+\|`_f?㗆lb Kb3 $ffi9#<1Ox hHpfft&5,EFA6@ A` &,j6%[VnSXJQū\,&[~” z^$a3B-D>q"GȌ-5 &/NjD eI1((Bޗ*o1(1HC$0yv(ڹAIt>P4TQyIJFA Byn:ݤE {σC(Ðid$Y(̀Aز KT0!2oA<U4$eCPLiLD9:+PoI؈#8VC\X\Ӡ@b2/P6H7 DjG,(*tUk b4(/5L1j#љ 2W$%P"h,,x0zNjEc`[!$AAmAtط1`WO#lcB6#hؑYxъ1R%v3D0Ymaw6 CA7)a pۼ(c#SH/Z 2 hˆ,8 mR ӝ?0#,H_P Tx#Qe)5# LX93ӓ 0q Lgm'rK?b|"b+(sH` SHx>"sQQNjeW.Ԃ!,PAQv+{pku"躑DuGXVI(iQ+Bk!AIoSHf(a0Ga SL)%ldL)b g,1`wS:fI^ws7=$(zd姾Q/SM _FEpLf\RP1}[aL(dfSfc c=Y|%f XAۊԶ#IF`[:Q2ֱrڨ`n0A%vd{Qr}t] 0UqB+R SVSUIDTED?$AJp M?,_40l؆`9PDYDOdWv1Z⽅́5JprDƝxmS~8DAFZD ,hB(\YFU8M`M̠qE\RUM4/ ?pC1@ ]WmDPFTvSaAvlD)""B-"\/R4_B&1AY4xNО‘AB*n&0-^.iׂJOH :MOФ CyZF0̬Ь”!a 9x!z̉14l9ʼnN _9>BCN=,F'uaT/]W5^L-D?Ac.DIĪNAB&a`2<|#}h9IMMKt _AfFLB3Bd~dجǪ ItdǴ1NúYE}O9ym)PZ= E On? e ?宅S% ,)  ,B"ܩFYH)euQZL;2 Juɡ!ʍA@*P/=~'f\1` JDdY븨1|dTIbh똪GAPB9# @Ip381lY"1̐ެژ"h( Ũ8hc 핁#̍S}Sd<r=$F f^U:B\ )iE, ]'z歰׭$TTbluʧueJ0Dw9JY,BYƔ= ^(ym蚨YOh8DGf\ϜcMJOqGJ$J_VdU]N©h h?j0?% `Ei H@AJ*$.B"&BdiV.Z̀^E|סd( &\a*z![ `|>Fb dN lC ̶L :/IJB,JO K|ّ|*,F4IT4ɋX48\Oc9!Ȱ JF+AXlcf`tF`͆EevVj UUR}!Up l ^T'W  qtڅAÈ}ĀB<,41{yJ̸Gvk*|yG{qMINCD<1N:k U[$ٖMũA"*PP̂"+r.PmbRnFԁ$.(N.(à¨D2yѸ^S{FxfMjɕ}&8,V MPzJOPc#ʆl+ =  6hMLBN:1DC:E1=k=^ 6΀3/C,YCF`(qJR0 +}՗|I`͗zIpMH` '#} TB镲 ! k'|ctX UQhslM%Mٴev(UBE8+"ucDB8j1ZM_}U %!PW% eQ%?aǩ㎲`%#'c'?A@D@t(?|v'h \PDvDlkD֣L,}&2[ MIX_(`g-sO`e*0v/095FC`wB6DG"uJIM^?3c71nD:3-lɀAF >dzI}?BÃK=?~sN+fԑB2fMmuDxAf FHtԀNgQJ4~9 U_lÊ/*PsJ#Аyeё\M[KKrMh'ZeauPV]QτAOfKbDZ2NzypmA#RK2߶kLPLF ڰ`s"2#2P *,.v(.À )Ё@hheeA ]H b,6GK pٛQ 1Zl*`b9(.Y\$Suŵ!EngF,3D22wMÄMqtKLw8 }N~.8wO8.88=D{w<HLABȈ؞j3fI=MJY U)lml##Odm [SZzQԑUUgȊm{p +# P!QPTQthtly<LОn1Di4V[V u⿭8n(H(,BP>?i >p~O> ?.?:0> OgL1?1'd|d7j;Z 0va {СpSbz5Gd(YFS- X1r$J(}p5w$*b'*7&Q'T# IqBNDt?Nǵb;"jC:i)M3(-"!! ׆gYY|\CmUֱ`"fGƘƔˤ$ j%e{iL! Rn^QrAN]ȩ ]=e5^":C+ˡBP8k`|煶4`NJAU].\K\ эy(Bu<\81tcaPdvGsh bFFaIHlkm+N[uv TvoވSs$=TZ5SrϩQ%ayuҗӜnDž7,Obv#$)u\NʅrwA`@m;LJ߮,ꀠp׎gmm֊6䷶"<mٳ:d+-FiCL]H3DwHJN0 CP m܅g=2}4eSTh, 7 B>ld*䥘 .ORG,tnf>&6XN`K0a).m.|ҬNZN"0#f|G@E^E66N\KجԐ0F./ɤFn>#`(i NdB C+»j{<뼪'j~$!J!ΜnAOh $/ҧ:dڇS(Gڧ}<# ,jPÕ.el6-I\**b*HvB+ \/ հo/". @$ !7kTO"#HAb.Fcl'E*F 'NxƖ%A9lU ̃)⺲5lfvf&|R!Li`2cx\!K@Zz0zA^..3m* s^$-c. )qT a청ͳFO":+GS> ꍀ"bĄ("WW}u]} BRIO KL*%#Kt#o6^ԀuVH9"v j ,H&`Hb$3:3FAjLAj 2wd3Cu(!6`( `gt@q!B-(4E!`t$fcjjˣFaa (/J< .Ckhŕƃi81>3)faTb00N/B&3T4_&؉3)L |",DwjЈ ByE> \d. b @Lx/*Jaw%R 8!Q!hx0ḙ EWج h횣!3|,WhBD@wz)+x, Yݷ}U󞯓3 d-53DJ9L|{bU䅆򃁛O`Br/0a⎣ %y$Eha63#e̯ UZw0CI 8Q#tF ad: i d-iKD7kBBs]C'tHы1M߃oL=BDLxsthSe>--dn 6EDs8c4KDz4":cj1CL&(d~zX B( 60j8!ct!'!ghBg6`Ti%@i!z{T vcSڊ/ʳT֛ek#w"4ވG Z|$!;^LDy½כ+(wru~+@_ZA3-B,gmYn=Fa,X,@AZpanF$yZuAc41F V4+88Ҁ?bd!ĩIdBw{؈:6TTb"z;FSIT_{FQ4&}fh#fTEUFvhe=X8]ڲyk|,1#XHb3#-'] Jr".z.b٦1`邲ѥL\ˤ/$c W٭)yt /XT!Qb'=F/ f%ZN.ʨmrGw$Ǚ@`:VCK`sb)(`Ue4""g">th `ӣ.hq!fVEMToi Eah5DbhQc԰P|=AFiiwg{"(!>rurۆmrgmj`||r~.C2w{->σ}L3sMAF@nH[Na"va ~K򄹍 @ %oMG"Ǝp Q [|HDVyIU]R13iR#Fp$#kr2Q%:`R5I5 w-{Ĩ%?-Z9:QZjAijC.JDH#6 b-Y0k`vMGUX*=:C5HgQmrH5:k69au۸q?\!-0F OBn)Mϟ3PէK\yKɍMg;suzyzCxH&CEQăw[OTqJx!qӛMdD54P A"D-Cl$#[e۴bאF iQdɸ YNXZk5,D`xP$…MqcehfhMFag] 1a?1?X6,fE 'A}UX5aVE5MQ,@#$ &f b d]#:bT5';h! tTNGLX{j UZ,]]^e#n6ʦeAٕLƄQŹ2Q,*o^?,دt눬]V0BJuQ L, R(ZH|Qgѵ2xVrx9sr,|wu:lzw%qPĂmd'($nY\ܸu\w/l$|)/qɅx Fnm}#n11lF#jdM]v(2|šE^mlggajP"m^&*, կ9HjZuci@ > ?0)HLf bk\pU6Ϭ{#2UsCJ7Z%QCKd% Jȝ X]P#Y^uf0/bQ@7)N8K*bjJCS-PB1A x`±d"xMzijlg;ށ˞'^i7CZ3rauಢQg rTÃX| C  9h#[O<:s6 q*Rܒĭ(H#WMbä4J5]p#n1dngi[oÐQlu0$G@#qx 'B2KR)\!-M$ed Pވbȫp(uSQҼ=!X6<֬!b ,e"*L2 4TPho+3 #2f Ujz0X?`.bFUW8Q4ARt `C!]* Jb "t+` 'G8P s$BtE^?/vO cd]E?ZHCZuJ~ Pьp+x.q@?qn7,Q]GBt@$5HN8ۆpmrSX丸Enqeq PHԸX"녉oG_br,X h j"2NNG +|΂'>RkU_I٩xBȸ9Y(?hfovgDnFZ835rhSX`>ґC@MKǰ:uhkX;UϙD5e9`+멽46d-ܸ\l9;~D2>{ gKPz!%xaɺe:B dkV`D)J# ۰ ;qrP0P'^`ufMRn[La.z;dwV`eS 0 ^`PpPP-6b4/*Q5V tb*q* DSH>I6Twp^1 eBwg%ZDt|dwqkBxF4XFFhf7zyhX&GWXm$3FEj{p%YЁG2w gZš51HV'4 sEj]q6f~^[[1mwpD8C#i%Ԇm"6h t@ vc @ukuSEb s2k% 4 ^"=lB"Ȧ~J!7|U2R**+>@* xbjp$$ 0b6P5DXQ55g$@_1 !AQQ * @Q1֕#* @*1NF 4S scIaahf L!NBe0p.H1rD.q(tpVa'PxxXFO;xXh(iix )ikDFh{hi{QtjI|YC3VP 2612(m"6&:VIcIWmɶ}$ⷎݰ`mIR%n"%"RvLS[fkx[[^ $ 5C ]b yb6r5)> ӔMOT6$`^!rVM)1gj@W+ VI8=kY?sCZ1&uu5UcF*=%rðsX(P8sEXP1PE=DdDkGJ 2.}k GtdvjE1CA|:g5D#[%?I.2qp改EF!yy7zy 1--Jz!Ћ6! {aX{jh绰ʫfEa wwQ2PdT"nډ[ ׾}ЇIpR^&3t[![븭o s s abu$֓ ;b ۵̵"6b0 pS *8V 1Yb*6PKI[ >rs [7=6[S2kk]dkQ;s@I=r_^[b,DIsfV3 <1Պd@zp"m&}S2vo7%*Lb!r:jRb@#^ ]<_;+V]r51 Ydt;A$RvQԇSCjaZ!E[%-GĶ2{DIUGwt=8TxdB /ٗʩ)iZ٪ʱlڝ\4˺ͻ$$0zڛۡrtWkݑ4{ݛ+""PDńtH~f!ι6nX]rpDq`){ڪA۟ڮ^w’ &[VES+uV&+)seSb>@^^`18:5z" =e`d/ӈ݄967ǚ.p.cY%fbb{PHP\MBT$tT_bMA"te O{eB!a-#sb#L1VFđV]`Bg"W`q'C!)d?mFX,˔~٭ ڜy٥ʖ=ڥkj%|fvii$л ̻ ڋWKÌZHB :[t^!݀&Kq8c$MPp{KL[ 3%b 8ΑC@m_M84+@1(Ged `92;)7( :#`SL穲*6. wh):r)lCS2047'bIu{WP5$=DSAb#M(r_4b:$uDX}'E{w.IN/G'GrjG!D/9p * ڨ~lʪK}ʯ^Ya wy>k̼ Ɍ̶̼NzɝGGkq45Ǘ b6.6.[: ׮Ϗ[k!. f0 R*V%mtL8hSoMaDˤ.u3IB18E F8#H̜.h$1߿= G1lތ)ӿj);:s ,/^i2cdt1'$A~'hJ#۶VZ.m5lFQuhFGlQ!Ԕ#„>8+,Ufh I{8d$EFf Et1`n$ Cܷm EdH[>_9^ZKd4AvP &Q"0f _J Q DA@TЁ[` @:•2 C9\-4  (JϾ:VÍ1(BpFBIl,dRH"̭˕j,!

DSN]e1|!VאU %؍P e&=`!07b5p a&D""y```6M8%X, vޑ8@p[3p1A};uJQ0}EO<G,4#"ivdp>CRҖrwtNtѕ0cޠt'Bi]՘< 7e5qJH,`%`ǥt)O K (P `R'E0A=8ET00`SQ5<Ё܃-Awb)aG3\KM*h8< ,Yڨʂ[-YFt(3`nlt%xU4krj+ɮ4DDFXsTb/Sd1:xޞъH>(//Y J#g%H)A!3#DeX-+QKNUЁG7c5^=R`#Hr!jz q#^4! `bţT}Q$gVqEDH$|<9"4ða"hbʫ2kz'WZ6 ;n=>KG˾y7i.m6"?3#hq,J8Yb?#/U8%y[79,7؄ aq;0 Y1!a%ɹZ @,|Piy:+Y'$ٱ7 7)ېYHJʓ[){)VJ * MAx*rP:M H< jWr5%"i<  XYr"³ҙ@IڈN1N%y=>o@X@"MS B{- 6] yˬs6I1JpN5::?X 3@ 铈< .jځG$-<`$F 튷 %pGD oFD .A? E A{I/J Af 0grQ0ǹ9%<1a!+Kֹ αB .<1Yցy0,,o-뺯u!C%kꑞٞѫ%63ApGDՀKv,K+`T5=HU8;W /㰵HY3*E[\8G2&8{3*Z%!>1BIHӊ@!^[h}#IG]uH=I@n!G@Qe$i TƂaIES>K8tZJH%}7@<*%. RNŚ9#3U!ы8 xA/b8w%]B qA1"1)w/9u2(AS. 7S7]xӳL2YYd(<(i@UiL(ҋI%8 U4;. HP*شpDЄP)ځ2K)3C D~4LPIn\MP P t]7hLX񣉦딪TP8 " "?S&# 3@]Y` ؗ-| "*nLIE#=hY%< QQa|, -J{Lh  $\$q0# iR)ؑPl:($S:6Z;u+X @2빞%KB) JBUFEm⩐Z|EzG)!VHY3;\KPĀӠ q3HWsPA#B\Xp1ʌŸ!M3P 0`ղ驼GA۠h1` a!T 8iYPiQ~k]N2.*6B @Ε8e9aYXNUY€Q(` T ZMAEAɕJZQ)"y$i|Z  U B8YD:%POPtR?jSKu+2+Sq0GP HEPE(UV( _ F &*ao>[mȈvj%tGؤִƀ@#MH_a=Iq >Ȅ?f;(@6GX8`%;eKz7}M3Ʌ8[IUj؝إy *D` r7RӠN D qY33P>B2[ vX nͅBE|ih 3ص @E3_!7Z|scZ 0?&=s-0I9֑k A3$1JYP(]?uOIۡ>،05ڌZ 8.ʸ \w\fWfT]?[ `4`Hװ0NvуUCԀЀnMWL [38"'pS+JO *^ƘMRXMvP)SPM?j2ώ6ќ.3Ɍ1 IS  FAf% )sjFΜ*Q&(_ryG{hB.boUdl![1Iei1U1v q#-Z8A?#ZjH4d00YÙIСD50Io*UuTIP-AB:g*(T3ZULj=4`83OkPB=k=1;l= erd1-?gXUேT?o` (p3?d--Re%0`0c3SmQljTq:C\,M:?M>3Pe3T]>Èd>r&,P>%xP0g&+vک}ib-sP (*(0`HGJϨ5A6F"H R #6:GZQEzuQ ,19,^h"* 2^@h)EC"tќ9L^LE .v7R/XTF` ꛯz?(=Yr\,{Qyđ, !e!\E12]`+biqf;̤y?bLb`t7eQ6pϘmYiFmI: kێ9J[V װ]jdQhm+Co7r-sMxAubu+PJO@ ӟ`X`.HHa 8`zg!>"$O*"b PPh󦛏TD-唣3 De&1dhVCnB{&n'gOsj?}uR (-Ԋ"QMDJd`QLT&AR8 &R4^@Qj( &PDX"d% D`UhֳR(Ab@q[:"0H},]@Db C]BX"j #aF5 1cԊ"hjl T.4 ;{L"bd!03+]\\!/Sq^B"3-pq&Lecf=@;ʩ2㜢%mH X5`CJKᖴ?`3HGQsԘ\-`qLVr4LHMVB:F:#z8=)Tx->@ ?T  \:RN: iHuGZ )%hxgh,B6H:Yy‰K&s,i)z7.Q0>|R)QaJ QW=iD$n-EMa S?;ud cjF%ĬLx @3tAx0"b"Jcmsa젆Pfoa Ә` 7%jFDx3()2ьlLfP6!f ff ܛEv!f1?$&ݣ\4;J$K^\='#a=,G)xhc+iԌq4p]b/J] >? <6j &0֚:$V48i Q5:) zts@6Y,T'14! N (cZD(Qz K(q&J=CI+= J@s )gǘ &:i}@V0(5ɨZVL{M47+q8 (ʶ2/ьfB:66%(DE_ "3 ZIcΕ j*ڡѤr4 -i4 K2FІv–Hfm2`ejjSRS3\J6*~J$R<˜Đq0N6^80F e024FamT1wG.!7ڥRs3LdJ۱j`~JleWcōT)Wd"?Gg!}& ?0 d) m|w PDM/ã!sHԁrH1d)EcWjIAG(eh c'+/NQ$/LCVB@ըj9H!jQ</6}5(qt1piFled#NPWf h4iV[-вnЁƷ s LNQnn=`njDp+q8=TxbDE y$lW%&5W_TWZtɌhՊʰ 't]AVp,iԗ~̱H \ 7RDUBJ@\@ | qGADhD\ 5|, ifxQe&L>RvEy[$* ǐr5H4dp[}R<䀵)VjeXiNh%fi)he&U%˵)\>[/Ɇpf )a.|B/M΂΅(? d"R$"feR?,Y*f`%Fej´v`E[ǐfF4!RDGhW|Y0hŸi=PIecj'0^QNB6BBB+#&?L?/"( f%(B"(Gr[Rd=Z&^5,E5JNKQ^A@@ QS"}dDB$n 0oaNĩuf|Ͱxtd %$XŸ.`QtY4`EApmU>.ijWi)$gJ"$QneEZ%h ZM\jԀab*Rh*CI RQ4je"/Cޜt"FFNz`švېEs Ҹo`Q48("'YP!h0ԙ cTqxvM}ɱpѪħ/X5@Df #a!B-hqMѬ!fĨ̅e,[#$_ڮB qȄz$ml)\"SSTn$H&XW1U ؎ iEJ yM IFeD&^x ""4epƾQK .J$#nxΈ,6TRnI朠%ϖ9:TU Fj Ls?B.Ӯi?mBZȩ^1[AA1o1o|*C%>Q Tq3mkH%zK sdfaETKG"Fx?mư3R` "n>g ɳŚTV#U>r 2 % Qd%<"A1؁Vy5ieFyLLZp wpńdWl@SGԌ,R! RXZ.ReVṉ)}8#EW %g܍q t|SK@`$QJnQ%N5es%Tr,%&?b1H߁rJ!&枵_R`j\pGm..RN.wd.;P&2sHAQ2]beYUq-EonőKdM$y41REZ-aBNoTbpǺ+Pr|LAfܮbjH1jkptt(5b Rp|`WzxD`#=\|cDێ+5R#VUkB\?d [xd J@2ք޲-ŒJ$j D"Mf L\$l3 ɠh;D S 03LцT#EK<5{u)sjZ22nuҴ{kkwl]؈aF;Ʀ GtxRSkdo%i36ƽݫˇ\@NGtX\\~U .؀aӺX#E!HR Ye]z]]sGTYȲ!;DZ#x[pLY'i| FMXFvL; |ĺ-0xBI!pDɅ_˿?B(_˅Bx?b\qJHQ3KpP@a0\vԨ0H#FhDq@thᎆ;) P!.LC t䡣C?ylR/"6ko $MSiS62pi %pYč %ԁJլd2H4ci0Ȅ?&~ ӻ.4o)B֘#M5v500˫"n2F)DKl,hyNW"'KgvXJ>,:fJIʇօ.jѐR8F0$aW*1.hZwWL=\?Dd\z?`(`HB :A*!q!f&/U?zTڂI Jxd! -T<գ?¯t8DMcDS- ԩN(Juz֑K{rBi TG:LYSK^&!\IfA l!t@ 0b#2B D v@`^G,jE `4";)$ 4@zW*]vQS0PHåPcgj7Hhr#c||lz-&, G@ 姞,fE 8c%~C[ΈRƊĥZjQ* B@1lbl $-6@OȲ(JO`H1 2: > i$8 Apme^-icbZB9ذ:zmM +f0 ; clzzg%H(.(bU #4Ǿ(P+؋;"J!a0A ni8$"2!L Ҁ@1 $E͎6p <0 }H`$G_,*z\P'j%u`QhaiXL*4(b cVZ Alh z9(h"&L+Ԯ wfRblօ EP- -,P5pA o/8κe7 on*"V!Q66$(q& ?/&k?VO(=0@&`(sǺc0bg*w 4x2 RYT.&秔aajFp "$ 3 exQ <#"<[}B $.b SDmGH$pGb"V{V`NB . R$` /*A`%GV$Y~PzC05pd(q' #lʒL :ʅ't46HoX'1+RfE,3Gh,-eFfPАcNFAv0.{cQ41JL0g.MӍ 8 Cs=H7j>B :M@>@bP.>l((0њnd&&&^jb'472 R&lc$',1!+WkJNs&B 'A #!}dET.%%^d0RR$`P1 C!r~.Era.$+)UlQR*! g'(PocNr(dd<``q`"vDk(yǒ.nC2rbF' bHH?f[H[pe4~^[VZ#VFQK4A(TvmgmpJQ;+A$MӔRi$MN31H=TO=U3FL37U@D(gC$E3c.cbg IySs)G9qkxRN($|\V/;2'7Psq(ww"t)G5U0K2l jF^.D, `*777&L8u~e ~$WjC굤H_C 5jL_dzvW{{Va6h ^Ŋ_r.b3sLHbfFem8e|{h678F|0TWFNTLf_Zv=@XiDxiFkIQEq€6V"(E)3 ]F΂"JeUs +v%׀66Y)} 1 " ,b<<+sQrW;u CBJWFpPl^Gҧs4Ξ韲RF3b27Ayxx!n%h(j c7HJzrdw{MyaР{ 6R27vMꥎÈ"|wm&:cGpwq׋d4肧mvfZF8T&e8dl5xmm98=6.jPEN/PٞDKhnm=m#@: /)#d^MΈ¥0_|'&()o ð36~L=Y. U6X"2W!g[% b@a[gFl\p~,.#? %L4j1̧se~xeg uYYlb&|`$$'2y4JqLJh ֔Uya aX@井VD#g U4z/HE.ҷ0|&gf#[0 e`6)Y5t7Jxs/UV8lBqfk%6hМ k8wAxi@xy=> PuUyDȆ[򢨺Jep5w.(L!GƇ%c`\Iou&b£w"5lΓ  yUa%K{% Ԉ,ҚPO6ZyWL5wml iv.w̭~de5P͈v6j$Q[`aóι2N;"(iAN#=FJ2t7+d 5<85+C%h: VjC5_znpJ;5)BYjS: HzX\a$b{]^J0p +ZHp -Ă3P:TS=8 5؏o߿s߶:$P̀谠؍"B !n !F\b's '"23H?h1D^ 8cA@#IX0Z䘉QI%-?%!~ @AFAe-DGjy啋˜avBIxY YE.MfO:6@%LdN44MmjӔ?2EQH)R@eUW9UTq%kXlyZh[r]*2#~Ue$`y%bŹecFCeОga gņ]lwrQv6PuiW<`k> p #]ڡuh\0h'^x+t0](|2y%h]6l ұ:~d!37"Ғm0I/*6ވg8Ug!ikg$>c66)a:r-bZv؛Z~nbq7ؘ'!ԑD$=Ehe% 4QI1]nO@NO6ۢZQ.?tC구V*U+l)\5^t7U U#~UdF8_ɘv99el@]g' 7ȹI07 ^ cF@g$@(_ccaIfӟ<9ts,BnxCi@DсJp `rZb$H Q^ؖ=!!Zm5VdDz½5K#3Rn1E>.nu,frfvx5.4xr$.T)$~IHL9?r%Ivr'@z:nG+ҁ(vP֮@]-(Wˮ aJ{b9 +XLQ֪$ljPJn-2)"D, A@yw9H@XHܓ5A '? j . #C 4RSL`"d@r)r3_<t'\UO BН)Ad#2] bus!mA: DՂQk7Ey` T.$z$1ڂx"ƉHĘjVr䣲hti8D:吇@ e tAeH2o!K->v#2h~ AQfݫC۬6F`3z_mHݠ 6<٬MAbLEF!Xnܫ੭B\ U&V4;}-ܦEJ+Eږs9 ?wa.h-gb"9Ҝ %^+i`Yr% ){BX>KIe5CMe'MKВxW %p`6K b3e42ca> 07ߋo7<^:mhsYΘ i<"AQ435jo:4E@~r5)?.zkDd!8V,&qtpM3;D\"7 Ddw~Wkr=r&'U<#WAdk$=ENF2T5q_kf-ȃ&Q2qTWr(Ò9G8YRtR0wLtGwH#7d.\>2BqN5?څ8uA S&Vnaw rwN׷fk|(QdW5/~'bwpmc,56 Is.S1x>WT$T%iSr,U#E#*#R=+.f)ףxĤ)6:v#2%ԳE8{R.RWo9ъW!T3_ӧ"5-zFD4%64B! ~*TJu) ЪSZ""j"k/7Ӫ2kWEF7kteӝ5!-g3ᦓc4 3Amk3@QAn1UÑ:a嚠LЮ: f%)o?,92{< #eja#R;Jb12$^K2TbM\Gb/l.pI>2q1 F/Q00\5PyY\p_kp;A0id;@ˎ ˹aɞ J`ؔ|}>hګW&j}\XaG0dq B  u==Q@f|b!,[#j[Nr-y"R1ͬZ5鄆fSR0Ig(~I\vƗ}sjbWf2g%f7[R"mbGs#dZszk--&(kJR2|#9K'VIsDD@4y">94Eq>HJC̀?tP1S+6w!7Iݍ,„B0+ c (p\s1߿ČEzd+AK:x`̜9JQ0nΚ̋d⹈ǨI쩁͛\:} 5luG ;M~şusJ:u`V*&rLy ׹ύ%.(h3Up;TEsGv߻јFA(؍fm߁n>??oS g>śW9|Ql@#aB !o „$ `pC¶(TQE9D1Xi?,A7NC}QpD+..dI#+H@K&i@3pXbـl7af 6,c1!a<0O sL0hX,(+b)iҊHL8 ʨR,N:t#&*4Bnk\s .S Uh *ZDC ,]Jk0xu 2J REDR\] ŬAH#4Jc5lC6j+-:Bͷ0FKwxă}M( hAeC9=3oݳ<*fByG %4 C=z?C[E㾮IO@\,H?زж[}M3ag)5J4aiLs0:' 0DjnjT-G'a+іUh.Zv"Kkd_NAH/H^IƷյqi|cfH83RјdcZ$T\:+&Fӥ TD."7 ./IUoEW(4!x.8n".͐0eLTWlųSb9T콜{}feA&\|U>Cgމ+vV{I-&,s'R_GQOdѿ2NHga{aG?JI㛀1FsdSX84qSv HC BmJ4мK.xlGϥxȩ%Z!Q̞]GH$ "f 8AӞ4B҈MۥIaˆ$%1q?T]}"Eh'&7"@RٍU؆/Ӊ.ɓJ8j#;D:V*MR IbREpNݼn{;?s>4KzGKÈ<:C:,<,|C`H{<5P8q-Uj%Px%:إ)˹H.TC<#M>: hz@NT&JaX+QABĄ%X:ˬVhAS8̌Ivb'X;0aa K͗(8 x'@ֈ`{n) @B p{(?L(N欰@P ˀ P CZ ܠMd1S~ϊ|+XB`A)!8[EKµ:#IM$1 Uy ^ O1ձbkSjσi Pi= ZT ^A bmc@]՛4 ,3!LcJ4 5 ZIYalMF§0t |7񐨒ʏ{$2(.I ⅄\^sH|ʕ$Uh]H#Ո؍Р=` h[d@^4@~?u$F{WTyB㼓ʿAX254jQNJë^:DT`CR;帶ذ`*^#xx+?|eTp.XҔ'׭"I Xa&fnlcRo2XS0O<'qs8iDV2ʔ|~tٚٲh؊ :(]qc`{ha{ TQƬ-|7R/ `f{aN(*hag͌XQ('Ң;ohG\blp_caﱉ$OUo' (Xڍ wCݢCaG)j`NqHً`sSc&cXE5^]lExuDfkr' mYR'OVX0d.HŬ?_nM"ؠŐ S_!-9<ĊaEFqQ NmʥUk؁_mۂ1"6ٯA%k$ȿ_v/Ֆb}hEb5 <+Z M<$5"H1@YС86 8MJ{m5B~}?p3B8iֳgwf\spg8޻E B-},~|g̗}zW#X|W|'߀'z 5瀄I }](M7~}T'~al8|-aP*KA)8$ 0ӋHCDґGΤL( .XYK&A\ 90.cH%_I[NIPATg|$ ,ASP4ҋQ$$L)aj?W([hSd=SE(\Z/Xe5U;WCm65D UPt 4QWH,0PFJGE6Qy.Pl$B مp $lm6n m(LhʅPmFZ Wf 31u-!n"W߅Z2}}w 0Hނjyք/P1/=TMi .5}"KI2d&(.Tg*I7"BL&ɒ eJG ]A[]B#0L.T:.RRT'A tpi').0>mQ,8q!)\W\3tʅUR*vvJ>3]\@>w+3@X%A4K\Bb%l"F63P"4# >fd v,`sBf5!Mof̦"jeXg:M CLe';03dz2'CAZlc$A\4ۄ"q>HӴ,N'Qxbf Qlf ^\ 3ҵBikH#kc[Nt#4EV2жCwlK@#OF%tIj$ID 4N)u;g !f7 hR$" J9ĖґM(ŵ1'a" Bzu@IUQg'ͣm[6HeOY6G~τ$>ķ̓&OIOP- "S' C\BXran"xJoQŲb"֮[f)I8rl5Ha8Wm9Iz_)hp3`X(ՈB, "`77tQ-6RQ6~CI`/V T%-зZҙ1<فrwJcNPMf/ 4! QHՅSeGN\Wf6+=eU@M(;ʚdG㝧#.-itv}C}{|4=w@tY":CXkiw5u/ ^i^H{[p[O'$?-WZR׾.]H. n\"&uη|bxtQO)S (u5dԆZd*nFFRƄ+vƟ,HPb3 P Rљ L 0C7 AQעhg%P@AFElρGVG٘UMʨPؔ~GxT%GiG QYTјɐ̀ЀI`Xe !Ҁ]6чFP`ax^byȦc=V@^ ݕğ]yjykN@IKLI㑚KND SP3Z,t$ӬeWg4җ\B$7mC@E0!Hv#vY(Iia\8d͗AÈ|}1O0?XCX=9K C$@ȟ3@8% E?`CxiaPQh xT`gAf\p؋ Y UǤBYnQHZZ"өJ ڙ adNBa QtڽJX!5:9V\=zTv١!IQ"W33NZ+ D2X(*MrEvA(D6a#[,TW&J b`GxicXFgPf1˜bl`3~4E  5.83`:%cAg<B(FpxnH ydw|GAA'd\  8U]dzdqUY&D!!"J6%J aSJHՄd$=]OƄRO!RaYa, 5deLrRdxՋ!!ۀA4(L Ni&I"!ZNS#03l@*NP"`M^FEINRB7L9J=Jq^D߰H0f A=MRz%E9 1k%*g<h${u%_#fm[P3^3A_5BE9Cr%3B ExD 8C@k#KБPQxQ x ZyfGCru `L{2ȼU ҩѭ&tUFRM$YaLYLagX*aIafMڦ.ڌ]fyW|% \ `J,!J!WuF> 2U}_)ҚL脪Y)n )w#NHGHGP@FF 1=c̊* C5]_4@0Ncg0An.T0C]B6:C*+\3M\Bu6oFuf@}#+"dp|UJ9)khx̘x.xT -+ggdk]qYFgev0*hU(F&(kUS$ګf+J{8efE֏DkEPo–Y/!Flg/^UdYħq b(""el!\ fu2BGA_ƈ% *iiS:rpN)HҶɆЄvImT1hk`? k l? @`#6mwC!TG!`:rZTXIgvqgLFyk#g Py:Bn ;ϡjd H Ȕ@QFS/}·"JrQ«!LJVe~kL6a.?,Ne2)J2'/ݱZ!' ahDw 0p1[0Y)|38#ģDp{섊F`B+i)*-S+Nʤt  4Qz k"hF^ыM%t"*VjfP--62= \ =r:,aj(DH b`d}Y,]/c&4K1H@@` 6-4"ەo K.ED5ZյS Ƞ)zC2bˁ" ;@FY H&!X^@؃hp)x@J:h/h>4 \C6)zBE^QE!RD >Ejܫtn/,A2):'rN8@Hs0((s>zͯjHP>+N(AW"r$b-MiSO ~; ݱ , ,1bp+/]: a%d=ؙ`!x0v][" g)d:R"Ħ_l@S.Ht0l7p%R$@r7 w82Zgd9 ]IX/02hfY(AF*gA`ZP9@@s! \YĖ"٨m&b~L#NGZ-YpI#!p[T4AMr&:S:Nd*(M9Щ2MT:ϵ!qV5@D";OVj A,j8k@h!6@E=PbR4g&2][B 3 0.1N{ %p"mTk2M Rs6lG "o7 S\$ pLsNF6`@ 6!ZB Q;H q+*ZЎu1? z֬hF12!(cFUBO͞tThH-rO$'(G| wAT,1Pۤ"8Wir$GIaKZb'Ԧ5Bg;{J8e'$<Չ kIgIn(bGY.bg "8YVa&U)\]0=2Xw&X^063 j,&LfbY: <-)~XVo 3q3 6pOu(闽u  ui ]a(@ WΥ9FOT;M'a9H}:>3!SДB2F!*Vhj3:u}[*6({uAޙyf MnBK Bnvd6ɦEɲTTρқ Ӥcii[k'$"yJ5_\G(=!#Ez#S Y-%p1N1)P([l/(.AVb{#J9` "" (V*XwB~Gh[ #{.2ǀ&r-/,(Q:/ʉ\*/l0=pV F70DzF`h;V(:A$ߑ `1B%b2A"g!xF.d2,Hj,CBJ#2Ǝ[/ު$Pdl$f)IjK$prMHq$'q, +`)M( d 9- Wiް1+F)찵VdiJZ p0ֆ c) PPb}7]- n ()Q_.,b!`qq!b.)n0bgb.&- '4YM*+7á 3_| 49bFlT6vcw#TF9̑7dN&s:nk#J[z2r4@ iA`0lBF.tJLIL>t [8'I6kr)P E!r 2M2 K&mN/Z sB,M+t:'P@"%ҷ/R jr;ldg,!|cy/*}~8/`3G{.;b..N>0[@O_*  0c䴴!e1ԅ5(BW6&U.T\ PUOe 29`98]9$Tgf#&a2 f7F(~hY1dDf edR r`*@k~>">$cD cgtpjAdjDdlBje$nlCN`Q$&Jx1'b&K'#dtT*9 jLnt @)3 l HDʰ Rm^)!> g!T--;4&QBu4c.f9`/´.<`'z8_<*8#94J*.tY3lQ_ l ,,eR=rF1b,jB6ˇ6/ºq\4l _:3paZܚ uVbb⠳_(WLq;9n;j 6j7WIleF;7uYJRZjCT钬>窧J@Ѣg 2@+RdB, 2bHE*Ʀ$ mdC>4ab% ,FEb=(bq2J+q2HP,/ QҺPmP֒-GwG!$"4*XHU8H)9&1PP"ET;q p!O4P,mUᐃ0#".#S"C-&ƣt/81:rokTe_#:>W6H8yR(b;c5v9dD=0xÉL8T ;z! b]&wC L">5]*jZ`CyEmF  :`^yJp$'G'JDGA}@~ b7Mc^tG>+@N!s+2D=IOPifv.9,&y{@QC9y9MgHlyz^M!70 thklBHPU_ ܋ f- Y&@|I w/8p/abP537J,ĸ6^6MTX}sIWq #<=sP VJr>xb[E>v߁ y19u#(%&m$'9rH$WYY|N&U9L+JTsb})@ַ(4dUMT)%itT!OjIqOrNTOz)s<7z:xscq`}`,<{UX;IH9,JhNa|Jd\.!hvg ٕ>k3ug8]}PHld/ldFA^II|+iM^Nv*m(k~c36tx⭟ Κ/% {BIYy~)DMt7 0IחL< UG ,qSp@+pR 7]|s,`A(MraVLHC0.sLhrHA>;RhKF_Xsi 4Y0@ Sh0߁ &xk׫h3S?o V.]r x`9~@ǃ}+_ǎLUj[-4@0%`W rv`` &#u1f dݷ`\¡B͐![ xAjwGp~=0x= ` .dR P&dmukA7W9gW]ZmkE6iV_~^Ŧ_Rf6*ut&Zzu F@Zᶕ@[MWnralFqPu1-vAGtٶ [^epĬ7Ť71 V}a, QUtz CF *|!UZ[@"U &訴M y@F,5EJ&yQAWJ$AACW&ĥzT@@8dfE)GoiRI+uOL*i61ySHӦ7I^ sA;G9aupuht^iU\_KBS.`A%pd+_m,f.FwWXh_~u[ɛv[pCϷ;ut~Qi_.'=` 9+y޳{@8(,B9iJ4(A a D h2ZBLDh5ҎvԴIH;Ze&V`o`Z4(ML2IF [F.!WJ@)BrH Moj!tCAA~ nԴIMҕGNZ09JQB#A5MnaH6͋QJpJJh$.6t@ ".H$iSɂ\3NiT :%XKG# Қ- *1tNWbH霊+DUjId*!NmF33ZVMh]A.%-;+*誎,O_睍%~~g`#(tuЃ`tD7ARc m?Btpe|ǣ$\!F ,׹IҔhFbl  A-.Cb#G=2HPMc4llO"SڲcdYqژִFYxdRDЖ6Ml FO 8$%Ԡ2d$uN{Hfl@(  3MT8huJ .Ƀ }b04wJ$|QVM- m6b\0Y\r'7MYN_E-ڍթtx_=-0RQjHaT .fQvg=DkqhA bXBq&7@<CxBr|H1/ 8ns|.ymGfF6ʍfS6+FRMv}\LI$!IIIC>A9dA(7 {ʎ8!_Pax H|@t]ǣ;ރQU`*nde?=Yr$+2o.`~̼ykn243Uh8R> SwYdou!'_ mn\4'Zp:Fy_APJۀ,-YFSBaὲ;I'3 T_FjdÄ%q7$lUdBFe%/dcYFmFVi5F;GeUfXVaGNe^LRtE:0f5 @ uW0Wg!q5VYpuhhx0 k ehoFw@ɐ ƃAi"Mxq.Sj;CpՒL^\dx]\ PYz=8Cu^ >1*qA`}*A512A1 03T29WHX!Nwq&!"rۈTIT Ȁ4d]b69eRVXkpssHqHnsKF!ep7ERqr8Iw8{9T9)C6hS {9 KBag̠!G: hEe7h00 PuQiSpV Pf,Lc*VN4մx=ؓy;L{2jӄMdzhz?fN1kn'.LՂ^W|1̗(`PзƊG %Anjz~1P DC3$9>X`!9u c'DbrTQrt$6 %gVi՜VZʜcs>dVa7Srt(A*!E5c9BX igg7IUm:E0:uYPhiWY &wx BK Sx,fF<C\|q,ƅѓM&*yxт^rz4;;[QˈzoNwQmwԦ.KF[ ɗkQ6R"n)QCi: զئVAwjpCJ+RphX CC!-3Dt!9s"b!R[6l ٛx*Tƪz;sɜ6pe^V&`8{Wu2Cp# Y:65,JTKmWKN1Z hLz4Q4 A1MKaxux:,L&=<RG)kփC=x=Arj$"€qq^t)SF1n;@@1um:UD 1`~ t2\NWX =Rg"2pktWBȸsz 74YsmĎqrGZFt(?1] fp4EZ;)K1ZǴZ=)UYV[:By纠 @ |}Q^d1X-4KO\m ţ,=⒬,=HCMjIz\A,TKTjiF@f3bI?|?1,xn EdJfy_uHD"BD;a!}yZp} ~ii0L >z-ֽq%rT-@G3xK^Fz%;ij+lV HlF[u7C7%&t+!Cp3Q9BuHOwJFM}QY\ZC:lޜXx`]%Z/jl G{ !zM< %l{|m6,m9M<[-Rl6lAg]lBS+N?O/U{0k&^1lzQ/X6<7~H3+pj"ИceKI웢ѦO57S%%FYtWxS&A$ɫ2ЀBbqHީK\N4ǣ5ZK.`~J.@bj’<&YkLyy+j'c6:s䈭k=JهBjTP.ӡV>Dli]jR>̰l^Pjc~Dj(P @OgHEowQ2?q # MmÐ:"ikZmV^ ͷ$Fҥg{cGk"^54)uR'uGRJRWȩ;>Y|| n<ȤD mIq LiAR:-)")U";FNMc_ש,.t ;^|.P[>Vn[ŗ<_kT ¸oĊA_ǝ~&Qm@ S`X[\aA(7D?2"(;V+ n_#w BҥB,hE^bݝ<ױ \ CjիQ+DxPH.` ޻vo #Aޤ;NiحV3Qdp} op` +>j3@[rP "( @3/- NWd0 b"F1 @2"^ @ }%TR0 pgI y !IJ,;M 2 !$G;:t",'=CB) i'F2tRɧ,hPxR ҪQ;(H0J#2kU^=(-*h.]Kj` Ē.)g[  /.Bc+mF Yp m]|mB# w C䈨螻-;ö<]/k u3H ʯ5/xowecb3RC90 UDD TE GQƂ"1ĺ6!sH"{$ l$ R2'~G  ^x!^ƴj3H; 6#g*IArtϠHRFIz& IJT&*%j ` S0***u0n7[X-,Յ$+ګZ˒B~pVY\^05& v2kO#HsZfKo7=cѶFD<3 }xQ3 u cr21p e,N3 @"!7'kPm u@'Nsi2RZ-iQQ$6 k *%idG)RA00nZ % c#h3 ,#"DNÛXV2}rKGBFQO.'0RI2MISTAd7*R+S b+4 -:f+D/L--F1)=hF1D4b f..<@#غMlgb rMy}8"t3o@cC&⍷ I @nLֱ=A3"EGO-ȃBжt5iuvDD#,#JtQr=Qjz1 "*ԣlP#Mng|AMp`&I ASqD$9)q$(Ip'\IJ2djRuPMT ) 2N@ҔWRx3_ʧ$/Гc׽X4ȱ]VZ)% y4X(ƾ Mzd҈3DFDKlg!,)LtŰ5lZ'qd2 { ?FRĕJڼMhjf89ғHR@o\&t7gc%& 'IiH}lk$UA2(FTI:>)r T|KeA[*-YBf9# Sk{q%wvv`stj!}%+>V4љ:? SzfGM}{!NHX*9( 7A"-lƧOZmֽ&D 4Q׻<>ӜH=H2tС+ I Lڑ#uF͙] sIKӃmYJ ȸ@΄q\իn0p‘Ą!Un|r䟌R-ǭk^_LC T*8 V X%3Y ̠ʊ7`1-1y C;:p p%΀4=Э& )"="!azJ3|2*;.(ژ50l0"b6825* #1gۡ6{ :9!ک0"52>|b3) 7+77z#Q9z1Л##@ ГCb2ؤٔY)2 (SB<5V3Ĺ q39:^b`0t%d" *4ՒB1ʨaw S&򖂹 >L` Y .zžZij~)j6(#aCh~6L6 ԫH~"=K?D(%i*3z 3#zH "sD9<aE>1 +!MVlEC 1'K31$$cb +?RAF+S9=h\% 3J9[q3 a h;:9`(yP0q(0! g }؍,\ '),bH!7/8 : d³ ј4*bΏBIi-݈~ "m¯"Ķ#Z  -5"RÚ ̱D 8P%,198@#HZ 8􋔘Ŋ h <9@>ŲұXHbZ*X`M6mS]l1FpSp3?ɞiQBC#ApO#!' &(րӨ.OSOӢ L!$ aP58oaT h5H+H&ʈ(h H3IMCqu{N#ræqDZ=#鰗F4#⻐ Ē1~ҌRဦj{K3QK𾭺82@$yr[E AKM9ObҪp) 3 @UH,Qq`WEy"HY(YV`ʰ 6SKSa ^Q0X*BȁGph}( <ֻ/0֫ BtHJ BKTK#bO|lۿ;_{(`//Q;d%\ 1 9!"= Y5":Ց Pַ-as3# Hsc]ݚh]s-Q(X&m1,EU42䍸=8ZئFLbQQ̽QE/3-Mq: r st/ i3<լPmyD@ׇ tZyp`9 0 `é6d3Qz7㗠q[ (;E+P*mՃgK=jI~` A 6)ڨP`6zP \!鑪TX֥Z,a]sS 3] iDQ-=WW׆C^z29a'2ʹFR +)#8),P9.9˼.-.,ZߩӂYK4 A #KAC:-p:ZΝHԮŗiG---IzT@ɡ UqVtˈSTOTy&d}vAN.DX*v!Uhwq\t$4^`QAb!JĮP3T (N3B5ƒnvcNm>C$؄z?^R򾻴5L[ MK&KjK15$)9(?Qi_-USʹ0*ɈF0V.إPGgCcx+*|PT8"08fߎAyQbͯpP9M(o;"՟Bܗ.UXU oz uNUG n`YُS-U! m C!tQNM J"b))/⛛tr.NFAzmM}}[Hj$Rx'8j%!$c&D=xjlA?ӡaD$OؼRq1i#2;UZNWv'Qykk'ħ ^xlȁ^HΙ"Z?IY·eVö&&(.,ίf d=QxѠu-_-;|Osm !)`mIlh~yAtYZİf-mbO#6=D )3bYRw,!N"_PuKHǘ-c[>>@?RWЛE;Y$G2&orORN4owu/ ,(XV^(9_xGk'( ]U~JZgwjؽlU`TNf=i{:gܰPIB:tM -U¾[_'ûf-DGtNO -a!*tYgc;=Ӵv}i…&my~Q6 kme7F HFogu v\Y,ᷛfټO*X-]2[8 1)Q p8s𸢜uCK'{*)#R-%Q/Y "gkWVn"kww}"'Yz7%1D},7\#Z 0t&k94rꙣ1* `lT[v4%&DmJc.d {P!‚R0Cd`ر"Dž6H Ƒr DP(fTa@)9Ff2$kiQeE AH2:I 0h>OK}OQ+e@hT#}eQsmg+B/3ukBXR=Wx͆G]zDVgrݵiviyoz;Vۺh 5W|" ,wlwz)VNXт7Bp| '_WT NI&, MvT**]]$Xأ4QZYFdCx-hAC7 ?K҄aX\e9eW@P\ UA@s)k(EC aĒ(E$}H%uD!Md@u6餃+J@N1i騙kyf^OH-(Wzբ5\rmub2uI&PYrx5W]DIXd~Z %L?![1& '5ARgSHv Ii ʀX"Tik/jn*uHPRf%)W!D%D@(7Ld#N\2@Q)zK65*u01 BB"G(Ql2A2H Nv\h F0 E2r3(EI4 E=[T,)kKX"2LTfY dŘ_2s}m[l?=8!*qЅզ|m@sgatE0^"D_\ $ #Ecng qtH?TT?N6,AkB$1!C,DiMtQF@)G R"+FsR D}rP\QF ]MQkᴸ>%g#"4R{vO}I"YDqPEue@P78)mIE9nE# uT\$qr ꎶYe+E.1q \NɊR+C;ŔS.+|W[mK4"u:-,zldG.f,3B<߳0q+g|9nht A5ntg*!@X *%?:3d9ۑsJ"2+&\1)B,ɥ JRCwD(gRq!_cP T@%,y 5Quz'!7O 5!LEprV1'9(׾"Rk^ȊʐBOP?u89HGR [C˜Mr;w -}0zVG 4)A&lfQ0!>h&HkCf&7C֕]hE x *7X48*ZQJr!lsHuEN@nO=7? n~3d"AQU6LR֨E]kIDӒyNCZ,#ҪB-c$3{ t-fOukȇKH|Ǫ{G7F̭҇D?E~rӭjė:̨ Ȃlh.P=τP~hXBxe qʫI%E@T~Õqk kWeIZ92QI}`:Q1UHH`)[K)k:&: ')2WmWCXp*:uuoaHj^gf4/ 3/0xϦfdF*V 5 6-Exte<$~N'ΡLbs~aA1DhJjYpRkѰK쭈KDe.Si̻r.ɤPcTL"XԼ(VTqA\f^~ԅE L{ETNPr2@Rj&f͐я$Q3QNC E(+c/ qAHѲ^,.8.\px(-/hYDZ*$tu֒SE%ZC:03pakd2En |5~`s7o30 և8GaCߧVk+7 k>zE}1%XT&ޅF崺ʈ€ޮSJWnhUP4"SFuN8YL2I An{Q*ɂt\F eԇ}Lq\Q,_ jabZLZv^ڋKw*E"aa+dn6{B WIm2u]q$TDeE|5|6"D4⬦ꫮs> <k=aɬVZ? '||'hTT=M'|Z[2} @@G !FTؠA 10a8p!  + x\6|pxP"B? %ȓ)ӡ btI3W^ٔ+B_P%go+7G] GM. _΁6z7NjD Lı\Y]f%Ǫ-zjZ~?=AC&9s z,A- $O^mzF.]? #оH(mp?P]`.@@"A@ @C0A 7,PB & %,p*E "o4>GhG$T? i#JB()$TOKFHGbqTIb3 ꟝vb xʉ)zIhriC,,RK<} A.gԾrX \KW"H.r(s,2$ֳz# gYY@6咃 D#:>LcC4= @m`; 9j9w?{!'_ڗ "|UF_D ;:B4D=vBQ.EDrPx=g.HGネ2f rĊ^D0"#۷(1+_r|" 3Kю5Gn1BR8*P߳P^FJpxZ qĺܬA)Vؽ`U5/f})( nۃ.-Fl\,] m ~#6~o Pi :wŕ7:{L_^"@N ?^1Lc%ʑ~,t1",c3S~t π2|d}ghXjğ hUZ@5##qR Ķ%%P= rA& "jҒ%Dkt)$< M<=`p\N$-+l"9]RCXK-iTZ/TCEB-vT 5]E2;Nz:N(WըyJîMn*V:]ثy^P6 *-RE㐁E`"Q]V30ܧB:22bԢQ(C!jP4ᧀ1X1E1 Є ч@tbr?Uas Q9ja05]V۔zRNDi=ۘ+KZ H 1*/bbթ:O.F j-\ԁb9J'?i~'J. !!)HVUEj vn_Xm-^-謒4ϲip3$V_ 4L/ž^I898/e'L\Ovk rwiL)0e-8ΊpLhZ[!z:eIfB>sAKdH3hZ;Ҏ]1(ͨFʍ$$ @ڸ{2LSc"E-$@ ::} `)/) ,cQXmGOT#&d0wKtG૊#=;Lg0%Y ϸ瓑G=gx1+_YdYHρ.`A+<"O3ui5d.m&izj<(>6@D"e !ȣ_)|F` {Iz:)*vLQ3>'>Z8gkjRvY윢.z _]Q]6^WETq$# ̎uQ}g=J,׭Fywt3=[8i_zu~Zsz5v(3=kٚBi6T!oD[ 8.<4=|$I@АIiaBc hPf~p `d=Le } ̸F=lFG D7,m.2l_.jnخMIdLn$f_$&-f©(S$": Obo J-T@T^u,La.0l=N#0`T/lőh"w|fzDC~lX`xpÕ QbL{4xO=(%6B#GZ觊0-Dh<1&P&RDVD+1$_kXB+DKflI:Kk."2j6hj0(㾎K^KdHk Φll+#G脾&*NVũc ͎hAe|E-lU./0V1BUb/M^qrpv>,X-jX x #瓂E%t_Z7B&%'}xrRE;a0hFq^."1-(> >L~ܑ<@(f&Icfr .EZ"h䶀F$Fdp;(E6`H0I2fh&P0CI1IQ`o`je fE^-GdR:CgLDF$Rv&CeB+G1cꦦ2) $F#IFiF X(M"0ˑt%#6K,9 ukEp6 MhWP#/L\0)V. ]g!#h_P! $iN,Vv[Q13x{lC(>26uɦB =6Ѥcvƚ +:tdDmı0c FM/.fb&&&Bbj̸^8dq)-cv#>bBTV1n̄2LAsL n2KM5sHM50T^@nu>qT(QKuk//cO9/4LkSjjfg%0ܐPW﫠fS# nR: ѓ@n (K?T  ]D,HL!tPC4"fKGm)_Z&CUEz1lH\df&f-ْlAh@R0p \E48g*ʚxHH# H=sIˑLXJ. K]hld?lnn OG/dv/6ck sPkEd$9Z%K6a\JTQO:n;z-w8I3(uk4<2+3|FhSLIhT_Ԍe0/n5ɮk6b_,VÙԬIVVJ<#2 ()SxW*ܬʭP- z*R,R%z(Ugٓ>8(-w2(>@ 6F^I4S͸\ qme/X!,6(XǞ,.sFLffghp*?dyG $f"H1F G,rf<1qC-]qaPLͣi!Q*V4J1 эaѰN^S41{AO9o"_E1^cϘ WNz!N۝3[1Q[zuC0% 9ނV?O>RRVѤ h""{dIN2$q:W"6=t\΁߶oeDdXF%\kECd.%"FChX[֢4Ivih#Nچ[tln%:u1aڝ֥ŊX5QaMbٹ1 {[ꑠB<@0] 0Xx渳/[:b# ?2*ې܎%5C}sGڗGSU,L&jXCh<.Kv5lD\ }c<|CĉF31dd[$]AEVAH@Bl룠 j1J(B"ЛFgWG膀1ntc0A!upj焜O|L٧CCа鹞3X^<$2hH@`D R,PW R? $T̨ɑ@t)R%ŏ(fOH@vsǒ/_{ҥLBPzԕ\zUK~MJ5hp2-h1T#|7܂ c8  Dfi9'8oE' 4W"9#:m"@1}U}sfKvWx=ӟW|M9>84wxCs=}w,}?5?i8Wc p˱`D[5DaMiQQ 4Pq A^}Њ1(68G9]=`K'Z$dRK#4\F=GRTJ#EIJiTK]RVeUEZJFiEXi~IDta`UdaAwȕ'VdSd0 I 8ʝs\Uar_9\Zb&۝'e`[WQ'E`Xik`. '5Q`Vx5g9s3ܜ&iw||Uanh oA()V{o]D \ʵ8#j05g!OMz%F" ԕ5SO?1aG[2[ETUY՘_YZltGVBRcKdLܤSZDzlzV=t`VV8aVT%1!>$XQqTlzʦw3wmW3DLo"q^q.n;TƵT: 7y&q#g6OXqp6)r*^QB'A9jC  Jq{!EQ;"Mu&gQ{FRa:gЕ ;*f='r"1pxqT;4$6hC߁(Wh: oA(,B"ϓ+_">Jw`_^CH""IK@a2$%VtW!fWX&3?#4)f+JtvFFU4G'ay0>uOԁOtr͡o2Tonso`A%q1plOBRB>@2VmՀ]yw?&twEmBoҋ'ցͩ;ʣ=p?mA\QjQG'+ѤB Q*RoRSY[ʥ]_ a*cJejgikʦmo q*sJujwy{ʧ} *Jjʨꨏ *Jjʩ꩟ *Jjʪꪯ *Jj&(p *Ê&Jɪʬz*JjqժʭZj)jЫ~ZzȪCszE &'Cc@Z}ZУ0&Z{_Q Sڱ1m} ʮpSk#'!C0 &3砳\ FP퐴^@j'a+qj?Cj)MN.;ƊiҵJJ{eiK+8m} #%[x( XM*\{ Xy;4Y&[x +{S[Z[irhbXˣ*'qm[[bM[~= )&_qJ{;F˺&qiR˼༡5W{]q{K]m;Vj! X&eW{_0_!kֻ^e[Kv[_k+逻i/ 'Q~+P;hR ˸˷슬}ڽ<\[;í k³{[\QLC|Ze+B|Fj +]!J'ѽY{EJ0[{k؋hҽE{\!ǰ{ + D |jjk^0ŰF Kçy <\ŵЪ]G\\+)kV e;4pۻMK]Gj|\x̴lu[Lm ̹\ᾉǀu_Lj~2pV˸l|J+ H{[Ľ Ll2?|AhܫZ LM/꣎K=462& ж|Ŕ۲Vk{ȩKA8,Ξݛ<ˀŴیT{ڳA'\VΧ1_QɁ[^L;U\Aj+ aWk͍ӇmθQ̃\?ʺ4]c}R)6:Z$_Ѷ)}FX۶ou]x̸fл쪰ɍC\ы֎ =]Q)&;ӄjy:mݦ Ǎݫ*Mm^!,5&-`EO# 2fHQ)&XBK4J:ID18G5A , 'xRUT9CH!& fEH<)63 sNSP=Jǭ9/:D(%WVN8DU=G. \CMڷp亦ʹҩ0!M5;ʟ= 7V>PlOWE3=tI=1;ZUB TUqaV@In^[AI{ehKThhX_CIH7Eɘz؆WS7=7 A-6]Uc@鼣TLcZY\mLRV̫̒iغ1\=Bg^nJK|w`sZxPMRmJuJJdbϑxYT56gޜR'}`sVjWcVڊjɅhvdhlC[[фhjX]mWu}a;RTAT`V%|8B=cEH?#&y>}1Ey#乧@cfXiWd~)餔%TV)\cdOO*PNn*찛%&֛pyNPs梡N1Ӭ4:zm 9ta+չXAX;揽Ouir:c+Ͻ$J%rӳvk0:OA1ϙJӯ**¸@1J.4eT^`\JZ:(癄O)(P!*fǨԡ%0[H;};P>,hi6lOKIGqylxA(E@6â; X5(HI뼅\,m:]D9UP|-T!Pj{N:J/Oc8JD>o:]:EA@Q/%'}wO}Z Rx7jrzSM&9+1РӞna@؉wWE<7QNγ@9Wք*8(UvY>v vZQ@bԦU@юjAlObT'*eBIwҗ#,e0(дJ G1K֍kU\NA"5H5*NWbs%9G[nշpy'Xt>VOkMjOJNRJ+O]:򖧕Ljg B%3 J+KbT5zڨE˦vBDҖ?2T:N\wbVgrw"qg\ <ԟ߅荙)ӎPK'v;2f"Y{W-~=(Єo*$4F z64RG8.ty۔tA:YnU*h؝XEdIF/+s%VIǘkwuؼ:uZ媴7(*$˄\V5K!dTтE9984' #)`$,R*H^v|'* s>9nS'n}6rόNQ"PkWխĮQTph8u=5JD(%ْK')M5Jf9˶ H#'hE沍zfv8M^sIsћrT:-F);׺vfmg 7K `.\MM[S!3N,ޚ'%J{Aqo{ءđW_7y5]E+gmr3Ss:@p ^DǽJ߇`5qΦ?dNPkyy 'yBs9_[;!P e'7)޸[>yE~g0|W^䥀׀nl%sjZX]=s]7g=a5t%\bJg!un)NOWJEVlTBW]Zp0iFllPoCeSw} Ly -! Ux^QGKwAAUd'IjxJ 2_QWGcZД WApq`vFm 6sH5sDUEagPnĥNI ht;{gD{&b[)({u{n?aoPwfηWs7wqo&d*v Rp<]bHU ''RGnk>xhFvcw%GZP`(pFQu@!>lD4lXTFZXg mͥ\hȵV6OUV!) VO$YO(\TV8 AQ8dWc'6AYEpWJMcvSRxS! Vx^^ }!hdd7OFFj&ȆlX!pjY $Ay!QHIKV?vWiW}~~ iH3SEUtFNNy\0SVOAW\I%uu-aSNnhaCW0F]16ThH)AIWew?Vyp6rcVxK5 gIdј∖wijIg(lnKDk!B:>Ap{p{SgWT(OQFIhd')m l:AXTo1]ZG\V_rłyHWEhBw|ׂiU|Ĺ]vfJQDɜx} xS)w}yHT|WzeԘe5稖_9xhqJhvʎ;:,_ipZDwV:ZWp(UJ}Ѵ(oETsT T=w4fV&)t3J)8N]`!n'tAכ0U2;(]mԓF=El[E)pgHHN*(?ĭw}~HЮ(*ajtAxx{ү:UfYm芏px? gī9\KG oȩE*֤;} XgۊgZͨቍfJJYLg gqr{x%~rD8p ɭPwFHYH `H%~xG׶a*tW.Y!vb40+褻9zJ,ybʓ9?ٹ`j*~V }_ XYʮwjeeLpju昧xzzzxpf^(r&g&hɨ*$lo"ʹ&OVtmh*U[I> mDE{<\:M>lʼΫğfMvQȵS:Iݸ_*خW)m[n*Vߘqj(pʦ:!V~{^i9{;hw[Qji š9$;wOmutbN= e RuJûJ89lA,قY;oIRY{?X[Q` d XXHdJdKi;zjjs,{L^:\^\ϒ Y Paolj*pt;̚Gw<R<yTTpTЫt)`M =;q}M_K׼zN U}Eu͎>xBBNxs !@Iey~ɒn3 #y` ϠU8:o.'n #tG}(Q m= L܈+WH<^nCQݷWۍ=ϙ Ll ׅ7T(UX},}\t_`lC,vLO^] Du ^,[[rM P񢫜IB̓Ҿ,.ޭy_^J,uꨎN; >TPul̿$ǂ'SLK ۬ӗ_͹g,~]) ~w(ſ+_˟Fr>؟,@P'd ?]EQ>-.P-ꋬ+ր/_OH; ! %^x?&=n2dF%K"JMfH!@)d!$ҐBOB_^4:p`&LpTP3Iz IqGJX̞%֬ڵGbԠ rXa7"^t5$ݷ'"KL{|qǘ,G~I$.>tbK\a8rO`q"%iwq]gò]{nRzո˛3*gIC )E6xA/ cǎ۷(N9$~J:G!I!;z"jʎ8"pB {.;"J")8"Q@+HsQ" N[,pdL"Lh2ˊ $LX *NRtIJ$<.ta>lߖ _Ru} >cl/*fJ}K]f(a!\.<VͿkԫ,*/t0 t׉ԉ=ӑ)#):.;@ +>Y`FB#a> BpC48˹ ۤs`SAD?CV5b0YDAaKܦ@!;A;X6+8@@C"W|h[@È [+J =DdWȪSA=a晪0DԒA CKj>ots"|3~s" A/%="<3tplLɼg\&рey}EG-t ss;sx$R-X%3]&UR}RҀՑRHM6۵[Δupsqd>9܂Vf<\k)&f;ˏ =xp%bɥ\(I-@g<+#Rx}WQܒ &. ɜņújUgtɦ"[VhC67F[=hYh~%^6Pd>䒸ߒٖNvIJ.;E= t ͈%}IeJlRNݥ&>OVIAFeN$^6faVAeNffg7geVxQ~af7#t\nqx8px\)L#$"R]yfR(*fwbBgB eمCVj` S->"W?^$I%O%֖~Uh.d+O-_H EO>.5Q^N팸^D٣he4rvވ!]^dmvo. Xfle W(vLNsyQjNp5% vux\Xu p8 \kx~^g.vyF_Rf]֭id8ٝjvMj lJGfZ`Wsto[`DO@$w8^]^zіv@wUtqoӈXfJyfoLOppkVo n&WCb B\rXnRldoҀ5Wu%ujgHلH%uܬlo_zo ;9^tyt`,cIvO!Wy(||w=UVٌҮ|mwD'uYZYw|<?|/wؽ뽥 d^l6wSO4ǒψx - na*RaSF*˭FXǐ0 㚒 $JtXSلg4! es%>& 4)͟L1Z+4chh/YmXnܼnߒ.%~1_B|0%'G|5ef.3c M6Kc-kհg'[5nۺey._q&1g! )~qEVwu%*L$8L94J.񴆂mD1OSKs!x@$<[$DXNET##4#FlQi) )Op2 JDC5eRS>SS5}LeuMW7mi[sW]mKIfX`%cQe}.槟 g&5Z.nN*nwG\paC6re]XpzoE?dњ^oYo5Uy5VYgUuVSc|RY0!ӠKdd]ڹbh8л"n" $ݎ&6ʈe$IV:Ֆ\i&U) u#-G*YU7h(2юBi..Ȋ0! L*CѨ4K҉NL<)30̔!CЇ [V1Zfq8f3#Ji΅fz- I ػˀ2G5+XZc*Ts ^.oPJ0j0{-Cˆr,*HI]X{#f1i)rVes*z% _ :Q0NЭo/A'*}U2r;Mj9;rؙ՚ֆ% >{õH MY!p# i%j8n_Zx>Y3@,ߡ|ecds[-e_u $ѩKtZ``(#G5* 9 CE0eO%dv74ݔ辋EzxSGĀ勋`ֆЗlo93 C0iRa:,xv6a;ܛ׺$ʱTK)϶].w%$5]5< ,M̥3Y|g>kn^_DN6$SѐNɷәȯ1vop"jS kC]!!F2x`{Ff=aנ]S^ִ-vrY Kw`8v\UZ"Q>Kź c{fwF$!=oXeJ-ʡ2hP o<6T~=h6C$hcIM91iK|~..]4zwҔ\k>+F,ޙw`h=SÆQ#u@OEAWٵW-ڕJ҂OZY XܕZ[U䝄 iܟYt\F`q-qeF ^`:qAal>?=(aцeM IN I8^MYDZ%_9F9b}v]޽^qݥZL]̅_!ڎKAN9ℽ˨HЕ (("ҽ1 āXϑ tG,!`-:ͅK]1vٝX1cY Bႏ dAʠDMV6B7pq.^]ak! Mac= ^u䅣h^7Bb 6J8)5`FG.$]yI"8Ή88COjں@; ݼ@]((](_B@O\RI?ТXmeWeLC bbܡctJw1I35pE^:6z NdyD"8fc7D!l5fj^ !1A^@cl^?j9f9&r#!d#&mC&$&76bcǹGpI?9!FHrIs$"Zʜ̙#wZ#n%#ޤNMPRխ,('R@ ^+bÀ F#v$$hZcZF #gI%oA$' z(_5 a`9抚~:If&hE#Fxf0#cih.鏢썖qk~fq)d7:>mGdh^.燞p}Wnj0'^z˷t'wr'#:vjV~yx$UBg~nl"|f*}ջQB`Ap֑ݰ-eJТv#Ң9Ȏ2(hLtUt)1dd$4)+J#Gj㈢ f7^+8JT9bD䭦hAcVhig@R h.. #(F Ri@rN:A.f䘆k:`)diD_N_pb?(+HvI&gr:sJ_t*m)ßu(Ngޤ0mE_Tf~}j*(!A]~;8b0[€~-X&jIن%*$̊Bm*ܖBgLI'$02'la~hȊ(&8iV$dD`7F7rk:>DrVhjj~e~B饓f^[[⫎k+?i>R@9MnnkJ#1>nFa^z,-:j($IꝾmKJXɬ9,mmmyjgJ'FC6d]De 9m:eU2X' -zh6'x*^͊L/B Jg0n(D.oD$.DD:#wv+nӨ6i&h\.)&0Fnf.lԫ鵮ĮK6 #ޏ,^cd6J2q1aafFn 6pgnK0w,/x2"ϑ'ng0X+"D9~p(&R?҆+;'!′3D.ƪsB -s'7&lZr,ឃ7<93$E:1I8n$0d37qat+1hBkjE 1h`4F.l䀐&cs1,K nkrt@1 C_+B/>[+Fx:CR'D!#6rc=+Ph$v9sOvAB4D74C+D?hi_1E+b13@s/Ba늆qJk+Ɠq([dhmp@GB#ttP>DBRR33Sx,pdžigqbgVKl/FY1VoBR uu^3]Q Ҥ/ jÈx6r/vXp̡0۞L?d6?B89p/$'8U7rkR9"y;+u>۳7DR66=6p2tq[":3D4H7Ihi>htWvCH;wwƨcy;t|k4b^ᬛB?z;B+4[21Do+n8n6s5Fy;.k9yS8cD9Ixkp;F|5k/#Jv388"!d`Z-,Q,7]Ԛնg8\a6+?49510 5 XI<{Rǹy"+u^ooskW%ێY7|Nx%&ҋRZ /3!A/2 *1 5_3fsVSVw<7sms3R97dzy>s|<;>++7H7:@3M28q!#&FF1b߯maFƐ H%Hf(_F$3gD :?.(q"ć BLԈVpQt) *41.d۪VZD۷wF7wo^#yB.,ao3^KpщaEG?S4ӧMgZl" Ɔ6p&^]Dx" oxqǍ'?!xW n6hƎu OFQ{Ddn?DC{b ?XA &ň%1C 덽KC(-@-(b"^"y#\q!"ɤp%>Ii%%7ꉢ6vL)B64bf$.~H((4*2蛇jKK*jÿ2¼H1?9?"X ?yAhq&Gt#Dp`6at8ayn!x琅_9$CvX&6NlF&^F2Ly! rJ&͈謳dH诉柲Ap.~%'EP$X`Q@6gS.qt+OlGTeS:líYo]#b{:fi{h DQwSKWnw4pcyX;[H 4AL/+HB(!-@] l~16Ф%-sIH&mG Dw)ݤVd6\(`x'["0[^ȑ;oN][*Wpܕ hDr:ٔ $u6X^wQZnU 8Y) X#6k@A>Ckҕ3V?\9"E9@fɫ-IkMce Kܿ,gXKCI:C1S tX;@QOA)b$5BFޤ!njOol8қn . 0 2 N]rAz]{Ej<<q_5p"(jLuB7ÿl`8`=0u:,xq|JTn3]d=L u 5'M t!nN7!%O#z693#"Y(BuQi%=:yUR1u*CEձ&EU'ATW(Z"Zuli  i?)5mSv1W:vA"$o$w+Y}0"rV[gd7-ۄ"0O]5LsK^+jE$ غrb6Rjbq>`vvOHሥ|4Gc0u4JCTq5@Gs5^Myǔ.! m PfP ms7g(!5tg$=aq$'Y#4iEQiGњM/2:9ڨۻ^_=_="=wRպmlzٻ؉8+[ZJr'B}李q|}+X)؃>s}ɓ]Q'ަ'AEN_XɱJ^8`wTG?R*gc;"ao;(4ͯ.WmiQ}J9N!N+%'u8R۟"5+{!;{k\ZCD%Pĉ3E1v,ȐS@+Y+NYٲeř$֜xsMr:ϙDU)3#9 4)ƊS)2Dq 6QdJ?`jBԿSrf7^h6m3sϸq0Xο̚)a'?ѣٙ6 _D:vLx[ai{I)!I:Q-t|ŗc8ٞձ[g~i_Y\_7>Dcfa6٤Y:"@dž $8cnp5'!L-D4. ]R[ي;MviSzboh'go{VQIZVCyIP"_8oxkQ-АMs Ey-"3IK/S`#URčp8$vFQ?Π:d^Ѣ9$D CMr]Iܶ4,D 2MO\ނMGVӝ^3,f1Y dv3BJ*Tl|ٿ (mlCI2! 0q[f+&VD)(v" .@Q2-M;E-Z{ifC|4Bpu̒Jl+_,]aΌ1dp&QRI&m:r~f rNwyaPӒ D[P!5dQ!R$X^O-О@Zq?͸&h ̦pHZL WѨ>a="H2:2 B&f:ԁ^ő}; Hwfgjp7i¼! kupMl"7F kF81vm,HHH!;4KXQ(CZA]YAmL$JAHUDK)MOKg)UeN廓#5 $TM%R4Js.]s,,L,x9BZ kT bH1'B <)Dc&3/֗l3Dǝ[\Ŷч@f1 1:r"x&gܜT"6p8F˞h$:Gv3kX]"UW1j>+m5_ x^(N×g|8n}DUH4~D7p]:?drH"MJz|1*{Kh/ƕqgt&S~Vh*{Æ_%'▻>.uX2(e7rJ ód+K0ީ RW( &dtCrrLs 1mlH Hgt`xр/t.swugP]81\8w%7vRqfxMD x@AkPui\xGQ hdxx7j:Xwhfj:vvFjXiM(ܠ&jw7PuW"r3 .?B|}OzSS\Irz7H&H!F7eC:l(g5b#ct0W PSa#G 'X18,tonAAxaX2)R@GKquU?!Tܧ ٠+EUZ6 JP\Md 9` urX~h$4b#nX#4G Ee?1stFi0isR;qgOii gnG`VRH@xvfuMDQ?  hF6hYt5t]HN[6\1lpt@\_'G@^RP GuC"hF^LA[|8STmKWC{+b""h~;S090E#OG6?r1Zas16]owa~V4&V'hep! ! }7,cq:H(r 9prl1CtHFo(FW8'hxhb){om1ijYvk'_kvtY lr2JwNupr$G'I[m Am@Ɂu&9;S;%G?kyx(uR7z$$.m C[ܘD Ig"ـNـ;uzD)Ùeܡq4O t2~}/CJVy5&5TV5Ǥ1'R}J',B"!^2X !r Qdi |M\4Oz&\3rTAҙl8s9\iwft5hw_}Gj`HkyɃDhv*u:vPQ*ru`hkvi C i %: 0d:@zRV^u]QybÁtpI\M$Q1%%b"W%Cw U[j!B\ ;Un%\HHefon 6vO p A6V*'$>JW>ѤIFo*Y5A >= T'rr^rŢRK+d21Π)%Y !hv;vvpxYjiwF ѩ 6 q?u?ȷ!_7{{h k]IrĂo̵7Ah9i jv$j5 -F_zA@ACtߊ9p% zf"*Vb0zVٙl{:lhzEN!F&r[p1 b A +оAncUJ#;>BpQ c'r;2w>(*S*5#R"/̑>rU9+dYJC ֐Їl"zVrPX#0mÖgŧ[th;iɶYy `yaSLu4=`Z\_'Q; Z<Eu JhܐOM{;]ǎnW [PevNhjewGc#kh E<0AM$𮍀%p%Sm Q ܨM   fp!6Ձa>bUaU6b܉ 9B{D!"xO6:gItxę\y&IwI ID +u*2-AE=#]ZlGӆ0jwy1 Gqj}`ǤV֚vv0k |?Xv3aƬXr 8#M}ݠD܆#}Dm~_ ]w s0`bFeaګ k^F ajYs_ 2`*4e =@ .3AKխN@^p˭2CYq6n=aW-! rHǢN-$O ޫ&YÍh6ސ-xNܩKLvNQ7 ^_7`\xf||;+~.>K `ZGN jj;[=՘CMԆAO E!?$CGggDS%@WZ }M а(Y\FuuSpHbqM۔ nFо;LQ갰ݼ^a6{ ۀ Xa5V4D}94ࠋj C*!+X6A2c+B8T^qtczdvΛq<tn7f;EB o:H<^T)m[)/! #d'FFëD|- 1,ͩi#;A8s#DTuUG I@Y EPGt VGh*"T$rc12m8Hj֩5)][=((;0{^\tF_FXtF2p0}IՈiŻE`03Ld,8/|_T(g9 Q"qB9.cs;D ahx1e1ZL0N{'q|A'?}óa@ AC bb s!ic3UB9drek306s `rs~tAO"-(CAС \T0k+)̰^l&j83T3aO0Cjt0ݴ ͙v)v)Y2ba& &C bpOWŰpـ}v'j5#Zz5q>IPӴ1fLkѳ98g ҡ4C#!yHE>rH?O$&i!{Ap28JVOq1Jn8bbD\lSZ&\n!^' $EIEBAsL i;JMP3͢@$rX'U ((P y͡0j*F7rۊP_N/JZ9Z4> dp7R RRޚᆻN\}ALH~VЄ1hqsA2-z+o J{y"Ž|yGoםA,`m.Ne Nԡl;zX@p"'~ N(U  3@CЀuc`^4@D(~Ô|عoAbN^H &%Jm V;X#X;xf>c@D? Dex2rc"`F: :an3.ž݁70ACjp8+Q-5 c)iHp rA9?0(P`FP0"(~FCA20P "h"?aYE?P Z7@j;>Cx،[rX>Р[@V ;{2SL;(I(;92==OXHKH2۪*%<10Q2X2+Kų<A+6X#@:GbFb+کG*1Fh$/3&s|,E@GX)hhCd_XȺ3X ylGxEdH~,Hy$ȬC@D>^ ?S D>D$1V+ dD7D_9eEEP9'dY.8<Ѓ1ЃAq]!<0T-Q-9 4h-ga3%F'|q??'@̙0:5A\#ɜL 5d6$9~©9p?#̞kdʝ䅺@DhD[FJex0+D@ 1ߴ:X I{G )TT]ZyGl2aqhAŝ2V *`c$0;d"!GĚG@D|;p<)/pG q z4Gx[Ic]7`HtNO=QdDžP;òGFGyL;,F,ȊH ȐGGI[8ȦK>H1GMSH*=NԠR|hC$[> ͺE N_@D0͎ H! Ie7MVRl~1 4OQ)Ԁ>| wI\zm591X$ 89\ AX?=TVփic N #?u8K@bReU(3@ eIXIH@h\͕,O0kUV ڿU7xg4 ;hS?m3[(^L~0S} Ӌ[h@J́*S_nc EICԬH9f! nEͰ֘RѺd(m`s1LTw Mٌ@4dߟH wYDw DDkfoËI VHV#&|DoHi#*,S< ^<%esȫ$ {Z\dȹ۶|d;ZERs N;Q~` E>e0 XT;nq8NoNC;ix8;cjЇ:RP6V|J KÆjR3`5@Fo@g\EeM?T?E_(}|B58B\V00 C5VDSˊfih ed!k6f^ԭ GG JX5Vˁ[X HT)\>V3(7c oܐzd ͞,>U5| (:87:k.0c ym`F/Uk}ZV#<(akh$κX 2dYhsXsF<\r;Nl˶{PTg)#@ehaGts|P^cHXD`ެ 춊fDL Ri#]!Bt)&> ;z&B)x+B)Gx] }0= < Rx\&98BwPKmi9Ɣq# $g99F4J& k8ԃJ hNŅBNa dHcpC$i?HGV)#!RC?él@3 g9=`^@ *%JztފL_`Gj@@IDd.Lv} KBË2vmT˲_hDH_Ī#2'^j"w1_d._tƐCd;IpBY)'0t "NҤvZ% , 69;Y&sjӧE/^ s^!Rf/>;OAMDy`X,5`?SLQL1g4KsuvI'MCGt&aS5mH#̨XXat[#s1scc86B@\q--MH% 2A0!Z ?!8k&8bil!f9r٥9XvI(<t桄Ѩ \*zlbI|WomP74/ EөM[#= O +1bp}=d}5a 4ED/l MHK)!VG%|ݶlG/>l}oON.vzgup.QzUm9C_bh!MuYa[}A '-&dcPaFg`ϙYS[TxPQ}Pqpɨ[X qXЄf'e׭vtygy_oXʍHHwwrKߒg]2-O1yg!dЍ7Ka(KmS3#DD2t]8!Iğjd#(J,ӑ0;'[ZmQ96ᗹALi߾s.yگƊ7!@2!AX 2)oZRԑW@4"XZ$(Bj%0IWjuu[1}baY;%wb#'G""KNEi ,t#'> ;xE^c]⩃ r NOJgG?,fẑБNtd(NLN X3+4TT(A*\jYu8&4br*؈ ݐm!`3Ɨ&8C7Bt#2 lp02Ցb>Nn!HEGB_i:: ">yj/`DTk/w:7/ x9ΧA#$Qa ˆC 0Ǚ$юH~p`JJ!jy(T0IT]98j4MMdrtkZA"5D& RPU^GT6Vh]uW/Y k ᕤ\Z"H Gd4d #^#,4<ID1U ׹ wdDc5bv(El bC萄qd#IDkQP1H( n ɯ_F. Jp-7РɪM%kCaԑPZ$'e.c&wL' ρʳV4ac>.r*&̣e  NG1AX_1|YXAO!K:+e"`f|h4Y;KXBACN2dSbO 695@LD=Q`F6&%l\p`jМ M׃l(UʴS4X=rժju#U#2"H,Buy& 1n- QBĨ ] b-_`f[B İ#c֘E4.!@L4`6kb;#B&FFa@# Ov u] W{XqH;X¾R)칵Y,bP!kqrI#8Cz^`p 馄7@pZ9>Bˣ]t* Q g%pY0YzSs@0e̐FXmj.Mi#1nw`|lTl# b"PwRkŢ#8/fb4Ls7FmiR`u3wj< c)7TNmjiK>iRq q`uIDXtz_-^'#qP# +O6GG50Lc*p!Ս b,245 .0,h@cZТn=FDVŵQ ^ EA6$QO[ -PTۼşi:Q!uDxWySrz$A4B3^9eΧ|"z  /{TsS+}z8z$uDMC) xN\aap?pތl4mmEdF)aG$o9E "7,BnȄ|?XC@",Ă7Ă[ hILCT@FB1XA03/02÷02h DO-ZĂY=PU=FA iT ­xUaWJpĵ>DpR(t ͠)P !][A6>[πYADF$ġԁ$_o L'!VR:ƉkM@UV 8լsM,R28M8`^ȅ\xG$ȊHqy8zt !/GSBF]QDٜ3\"4BA5>j]b!cNZE) \QءKa4tak6 ÁX%d|V/#!u] 4@Cw5-rB--01(7ItYa\9T˴d BxX#0YYX2792@X/CA\\129TxĴ(OF>YFʎ^J RJLC$@K4y `P^=&"YZIDS4U<&=fdhQd'd*䖪?dB_hXo%TeCvP m@aLh$ dGyWvX%B| >a{'zѤ%ǩ,FZWAwDAebK i7(sVsB+NB@ħnNߎPߤ̏lo>tj`!a#@$d ś"_a>ƛaaXF2 à43,4(C, D N3D9/@u]UVˠiG঒`Z|ÁE7eX/b8"eGpZKcP>=ʢeUXJG^Lڤ=P9ޑл㥅]N,c=&u !C?\P#^_AifՆ?iJviA^?BƬ=$aR~߭-.G*h?\mG_G!Q٢$1H(#Pׇd_fQPmZ^Տ 7PAQaHnN F>U251K@;UvЁLx G_QNNS׷V--^aXn߭AфXAF!ZGLգ#ЇX]chUiY9<1[B ј02BmsyCJJh] ʻ>݌G0pͨHb'n!h$#uQh$٦|H릧[@$ՙFi@̷-ƬJ`Jd2'Ye4GZ] y3hG>ՊJ, } •$]WAF.ʱ#P$;x@` a$ZS–B_C\6hfw" 0l&Bhwhi?#u`7zXࣄC.. TS)Lw0ȌdZd2HĬ Ȥij(5:#EK;c_7'X8?G7a NY8r3xY=~C>~/=/JE|K9خ` JZyEP{U#rlEqδ!%5Ѱ8V 4h8fxf Əc+)̺>u ZEk Q̚]]8J#\87:{@JC"`2fk p?T2X"zGl%0:kkBN(H\ LfP oj>s22<=}㜧1 JY ;ĉnVJy `҂c!CqDU{U7Cuٞ8 =80tu!b8Љ x`z?> >~~@:WA(G^4|NJr8ЍC1ǜ}BȘLDz3iS,4GlQK5~_P gė/dȌ4txȿUx Q'dl'&8pVKIʔ)U~Q IeР, s3[R!EZLN zꔡT yBN6 w_kp'+Vѥk#{9G~tĎud0`$6^˘+RQXMNA3f"17'9QZ? y 200 ,X"( "xˬF^˾B;H"Y+mO+:鼃1 =h#5"|- Q@Qs=gN9+c/󠫍FTP`7BhTRA柊zu@W@D $n:I|:R" 'Bm$pEiPw\q=$s0ݎ٨AXF* ԺҎ+`+ F0; 52Yq5E C3(_JAtKNZDNN1Q#bi;GL\[k/f\{h;45B%[l1D8>6¿OdE\gaے.)&Q"J(G Иr Gt*v"ݼe9[H >kbRK :Ɛ%{ BnٰE[$OAс[ O7$D}'x)<^OQ``ak*Tt,oK" npCY%WAdi0YɱŮqCx BA"hH@=a 9$A/V@ $AuxP )-v(E.Ϩ2!r 6q-tYd1 g0Z֢D@͆&Ȓrjl=b&5mB j'\IZB4 &GPf<y.d8*$+nW gaXD2!HG:!Q <1­x; W'蜏?HtB:by\81=YE,z(yHF#&"̨MsN7Y'"\uH@%ByG *JF@J$ԥ2Eʱ##ĊAyx2yޡMm hb/B,I`NCba^^9F&A!5lBfȄ$J1";hfU-* ~F$F=ed>nׂiy)*5JRJe.#)4 3فM 138R8p4ùvlMLeJay3ST(#ZHB39ݧ cFTC(:, mhE+;vkILm906|WM }s`Jס fəh&1A@PK9hs iHVb6^!$"/r#_;A#!5?w#GWb=j,P@^ H, T9;M{[ȕE-6cj1f>a8lT aCҵ 9RS"g=jxqs4DXjGhd!;*;lh1WЕq&lo ]k{ Lp^F-f3=-6Cڿc_!/*N$,߾,ђ2ߗ+e>gtZ4ރ7МSDt$zi 8GD;<6-Oq[pǿhD}-y3eA-Ǿ5]M3ʲ qd:-H`\AZE,56yXnjhV#,D")TX"o7҄5 %w,?0⦏NK}<&s2U\䢙8,}+LhBІ$ hG?fUpfy#BFۗ# gkiGѦ 9]b2 c/af& gfj재EI"$iCa@"PCЗcC@6 6@5n0@:c-B0ˑ֧ >!LpR*% px* %b@ko| FgtE@F0 X"InւO$#}HN(S,L!^Eo!FQ!Pj̬^RQu(fH ߀NNJ \J\OfBC RmeC"3hʯjh.>#c|6ØM/U*BDLTdQ" ]E״DQ"|H0|(EqGoGA"FDt2R׮ .&$.$<plԢ #lc!+g ,MK~K  ,誠 D'tʠ 0 @tI2H$H ͏,F^deHg0&cT2G2"gq3HTfv"-,4E$6# 3V!lsJx+xR"7E!~Sn?֤Q~p}hhN7 g3-Vr2q/ژMزD4$Eb$ۯƐ.cF>.}@~D@Soo-|A>oaa.ԲTDC8B."1I3r˷1H.RrdN7k$jOFOȠKAH4D+ 8(?^2PtXśrnH!EK꤈`PeiJ4!P/ /}DH @t@Huq`#'"&Ï42*KZ,CBqx 1J-D06MI$-HJaVVxuRM+U H`e ҇X b}S@{ {r j82N2N@*6*&crb2q- Jm3/3`8"uAc$atC)$S}NB_x@| 'PbnPe&\Q#{\MlH}OjO8Jr14fG" C˱ή$ P'.Ÿ Cw sb1Cd?b->2'qtY`cw^ll4(.wO$P~(NBpp;"- xB-®xC4 BC2C\.Ëи 8{94e{D76mƇCjvaOC}A{x!#eoQo|B'H:x?ube xo*Cc;zB8/*yY{,0Ij+Ы05NmO2F<=%iD҈<29;w9?7p0\Y]E 8.=ZrQ"JRP96_vF,. 4dBQX1obgQfVƺVOr2(B f+*˗Ɣn#QDVD>SUZȈhBcP;@d< .`A bsNKD+<0.u$ u 27+g19TD6Tmئ[vC1f8yXek3y| i=tm|J~t@vAdc$^J3ٚ]"/ b˝ -Bx!&Ț8ኬi(1b; 37 YKиf+?"Ҩ1" fՕ9 pa PscTԨA5 `tZ f*(IbEUxxCq.<]V'ˑ0o8mɗ"å禄5әܵ8s` Д2E q At؊7vijrd'+ʦz<5 ǯB! !ʋ<I(23X*/iFqQy#E"hD@2 CP0Ű%TD\Ц?x>ucpUP C`LReATKNȮ( !! i֑ D>I F깡E4cGtb0W'0!b[XQ"ef4Ni6Xjh4[O.ҌΖ&2kOeW{ɢvj&G;lfPVކCLqb˺]EGo{K2=5mҹbZ3 <]治ꈦ:u&#ɹVK.j\ӘY[\ ;!*BGe2K)!2pQW@թ:, 12ܝ8Sծ]DG6 q0v",X'Ia%LMa `ȠҾ2HCm2=T[dH|U0_ɚ W)3iO &65gԻxelbH=_b~%BS UGaTBk, * ZɬGcx4vCQMd28ĥt gv7BuQZ*3n.m\Fxv#4>7̖I`RE5t( H>XnPXS N t_#@\ޗFhlOaHFvU#Bӕ'8#q9"` oc)/v㊜bX".*tLԕ+VJeܡO|bcLpd|GKTk̚񦈂*B|1f:90?E11P0q`^e4ǥB]v,ҊVNnh9YԞ+kѦ@d;o;.@l6VWd ng[t bn{Hhrz[6>[1۾k}Mw6 w-'Q+$u+| g0#0 =QKj4HZwti4ZSyz%6 sT&PhQY6 {H^H{x44yfYsd{45G[6eFBIp3|7hX$bP"g_U#\շ}5~\~c~}KQogKKa{'#b=%o| 6ў 9  F Yk;syմQʢF-Nxڧmৡ R%Uh-LOgY?sNUx1ň]mH)Vt?Q|u=r#7k?spuPI1wsYzF QYPB9(n @U,ҲSqIv2#3"=v!QUQɑR6d)1^)ʅhыXˊKQ&ڭڬ]4m k|ČuDY̺ kFzj9Gki){I͸Z!W`CUja%a."G@kmbgm;VVHTB;j3<"\tOjeE&،7*'%'t2eV!I`\ۘo=ۭڵoۼIˮmޫګ싷YG̻k/;Iʛ̴xj|Y;6gϒH+nͷJƦ̯ m5:T G߂#`*f z-plN9~ZL!FcÈȜ9oFmG2c!P$K"eܼף gA|&~0#1;,u6c!Cu̞=r';m̂ Օ>}xx׃)s7ߜ{Ϳe8ő |S?ʔ Zvu#" ֊+VpSڜfyKàHx C:~խWn}?=Nȿ#Ócgu+WT#>A>202H/q$20@-+TC1DOC)"lpql( yE"E##A,j?~ bL p8à(|N9DN7̈2Tt JޤCEt"J3TH*i6C:XN ֒Ń*VmN=Xg=tOY)]Aژ+Vr1NC:$=$f6A9DF戉D3y|ܢBd6,F*",Zd9L2I8`AJjK=LᮽGN+""eAe&1.̳"0Sj7P^DD4ӜS Z:G5`p/0XE)ƚʋ6Z3.U pïp4@ !Aþ3 .D?\a 9DD$KT,-@0#!gGጆ;# J# xC#[(H"#fr(u*4~S==m83B@4 n~i? OiTxǎ#hObM$*NZ^'JTRm9 #"|D$ :qĦ`@m Lx2 A,c`"lG'<9Ww=ȸ gBsFԌ4!J4,10iϊ""*8bN>pD!-'3e s´*ˌf(qW VH,<;ZvPajӍn4&@ mk&eY-kv>Bh} 5'j)i}:iMr! tP(BPNA2 ED$4"!D j\*DpjJA2LW:uHD(MivOy$ IRT ydOOҳȇg|aHG:ZQ94#j`և+AP=U_P"&8VӰZUQi#d9Ac5A jXT0@5Vjl 6R6.$i2_;Cc2udJ" Wiu0Xf.PHV↝WZʌIFŤl2Jg5FEb|a"զf56P\mV:,k;‰@ͥUa?!R:'d%AD.3<F@'XڎIV0Z^%r$D!dF,sXnHJ/mfonF^@rKQ"[5#3: pf37 SPvuӌH:ċSQl}GIq$XQŠ(*!)cy5y $Ep*}ۥɻ9&plR/ J*;T$< -&CZ9[Z!( ݑK᰹!8\&Ǭ4R1IL,,T˞$08t:L0ԝ7ȃLYi9c)*׮`$bK?Dxb`&Pk` fp4j)NxU a0X{M:"GHZlٓ Kd-^}P|T'3V EUIZE( )7@^ aI('ڪZ<h/ & Y3i0ڑ'+ ەӑu a)([I/h/MΝMdCЕLF(9 8a:@:O=EW]&;T YH׀`Օ: c*J`H1 ?y;hVPr@xck"h+F8<:E@qwK5˪?hZأzҙ%bCPEa333 " /S&Z((*{s{P']g/=3[k$!.6Tœݲbn$ ܂N.zzXJ) HׅP|}s8oo@j1O_n~qɣ TċP6]6N/tMT$=h a^woFuYo;8 hwv@X#F Ո:mCF:~ Ɏ+<o֬ZK}f2+#5A;9=DQJO9DkȜ9PpʔC,R2i6_ӆz%j" RbN8)lLF+}|œ5s}TuEU@> p *TjԈ&O*To)gC?N &ZPj:]Y0?Z$k[C0o0vK8EEpB= uЏ !? (??@5 @ &?5L`hajh#)d0fYGHEuIRz#@⁇wt" $"wɑ3G($H(%yǖL" A#Ș# R&2@|?gq4S9∡]ԨRqD-L2Q1OFSQI,",`z"4K#  >?)@ДVI$ FTQ%]H,-Hh?"{ڷ#?,J.EPaUW͑$Tm{U#T#R^bY$FTz?.#N 1afjZ{(">pYjkRg"4LE6K%ϲvVӦņhA rgن[qFԎDAw0?"(xCu@G" -^P֣0"VVZp诬peshRQGk1ШF}cQ9覓e-;*.g h|>?<9 q&3V :ɚL$} QDg'[,&';?Pζl\KE1<.x[:t4u>t8 p1l4!BE  s bPa@Œ tuC:$ǒl _Nh T2`Tujc Znф<tW&c:a_w7aOWp\@B<ɩl/`aY DuM?Zd|X /V;$_&UUHa4Uk#ʐIH۲Vv1@hmA~є-_FlE*p9Eя4K@bĀ@d&L˼xw35+dkwf3.1`6vCrEXTD{-s=Y`fQ+r`6.p25;A\kXx6Po8z%C ^?g%(s#AH43"DNg͎~#?KD+C6("p +WN^<"_ҧ# r{a:\g DNo0 ?U%]; ( ?S#, vHm;(e'hU _2Tkdh̝oJV(@Hh&=!B6L*` ։ee\hWemM# `eFɐLtlÐ]`4Б_nE@-HR)pM5qW{ &=VM\L h!.!`Y\&` bЌ)yN}e [5XE0MdmwڈDGŇ6}Ս}]y|@S=NXȍSȂ? NApX \\^+ڎH`Ad^!O⪤^0 N|E IYY*x^IyT4E4tM,DX5Y%I'HJ88bhIB(QS%"|u]ߞm/p@ .ffXFe ^ueINVI}fTfԟʥKDZ؈_OdEŤEü`)up5%"qQL\Hd )mɅX%X>?%[[fz%^\&yTW*Eaqj~M.,]MX4m~ll "(("וS#4bj.&<݅qb'A@`i݀ѣi",pʎWkQl `^0.D,\IA\g0~x l DD3d/ DJ.@RM< PI2L644-|#Ayud4dH BD$DD /O+A2lJQT$xLelѶA`&yiv%A\(mg|=hF E!UAQD< ȟEiP nA.ݠg8K*2Z꓉ČAe; Z!XM[xN^\WyL ¤|EdO>lD?(b7q~ וf("X؊XH%6NlB&lwx"NkƔHR,&dEbU`EVT^-Bx-0"03qIq 4N}D.NLC)Yl(4A3$Y5BɆ9BJȒY ` R@ Ѩh՝B+ߝI-.B-GJ(LE>Aw Hnxyfi͜(bHdvAyɆ^*}=cLia؋Y 2`_M͊U !C%Ūq銄ˎ&D=Xe[Sڑڵv.^.؆-e_*ˢK"(:8 ҥGMN* k!dȂ xIwwXnƎYdB_MV$4A 3Δu&DْdT(jiETdI4l쭩m4An&r(D?-MmB+H4B9\ AqtMQ$lLl#@`@8RAצN[e0v=av=!؊1ZnℍLh9׈QGlDnYnF R4B(F$g AE#Lbl! Z>!(*̓+H<@2nꞥ-r:.%Znr.'.c-MΆi w Lه!J/BZ؊5H!ojj#n>0`w0L_Ob ]L j}=>b'1 ī^.TC 9R0D A6A2?LjlU?/42'p|-IzND t@GuDR7̤~V Bڨ8X#PqXTO,F[\α-J[Yr%uyyz%nג"ʶRrFQOLutXF$O2 drtߴ>aY>mNXکNȲ|ȍMNɘ.mr^;ٞ-S/!^3Ei#=NXc3Cs.\|8et!@(5#f8#sf33A0TWuQ&sY! "r ],DX1CkvBE"r^T2ZME^́rGG_Lڤ픝lX,A?LY)B/hOHIA5ea?baDTCRM0Q^U_08vڨK0!%m馂6=Y>ٚ%Na'2\R*΍F_GmlYq!aŽeEDXzj6P-ҊDu%ᡢiڱ)2+vX=6:m2&\9*B L}NƠHJ?M.T?Tz8u8q7i:/h7ٍ]إ&] H؃H&r;|; sf|ai)! EYO#k^hrDKB@ȅhn:HNsDHz<.:2X5p6N%o%}\{٨[Rf\cN[lTv{]hfwȸj9Uz]sZFaٻ^SUGtFJuX@2k <`#GtdOA:#oLI%xr;V:"a;Df/H1dqsDɒW>8ߎ uTTqMcU/k ;BMFI !gQ]Q[(7d|& ᷃!ҡ@&a~х0):4wPx8gS?9ד3s@PB ?j`Q.-1=7%}6GV➛1+PZ[e'>V ZjVEt5c Y4MjPZT-h+]2x$.+]\VQP+'hAx*x@9t hj4q̀12v5!YX 3*!!x H)P0 h Tf5tTG9M8":)08 ҮY!!j;ȁ yɃ ! &3 5~q%"@Isl C`@nF"R\b88M&H&uJg%I#]TՍS]D Ёp7IyW /NS"BE/P(\d8{lj\4I4(Eҹ:w#ĽMA*HYHa(UK[jJgT-}DE DRd:6ZYt]bQ Oª",Ķb(QXz _ax`."}i.FcT"\ qkpK>y3'x0@eJnlIqi݉.(tsȽ R;RR7/ǛD":LD!k$'9%C{t!ʹstmdk>ZoDi; XӁ)O:xoS(OMʫޞ'Biq&ڈH m:* YRܶd4-F)?\GEg *&VpY5'e [8­^Wuj?B6uzC)0Ӡ&ɼ" }tW$k `WpEvʨ/W2F.qlrX!& \ lD$.xϫ EHl Aۧ w;E#6dojB"6:muP2s*!D"2f A)gdD.r`ؔN`)|KN ŗ6NfBiOtHk59H8q4ReaXu#+@{n#~B/Gddwc@rP+DhD2B&4RbX2t;2b^k(KI Px#'`K#J:Ąl%4J0$^_@m'U ?4\FF>aܡ綾fxeG.^Gܼ7r;w--D=7nrG+FZrcGg:CI7.Hrm9,d8NtMMNGB.x$OLzF.z(Pt0x &&'@Ōu. ~DΑn B;HB/!b3&` "'tZAZƒb͊(l(%eBa `$0# bJb>5//"샋(: zvhO.Έ6J^ Ҩ/TFHp7Z D>̻jpddEdq 6fv5Jm^-jKJ"#DƏ"JdifiOJ\\L8$Dl- ̫-&gD豗7v9D|rGtk۫%ITKMFP'BxXPx8#?NXOl2XNuPydrj@0P~D^nzԱ0ņF ^B*h- $nF%a\"zeW*Ya l( ")'oZ,'&j&J#@2XBX,a B C5|@ƕ5rJ<2$rhFOM.B.L5z5f "CdG|T1qFDr. `9)4 Ҩ(h )`, S. 6o\6_$FFėXo诽S Gko`M2hx͏G"[D'Q")  D#MHp$IY%DPp>LAqhrGFv)!'FHl֧btS\K4e6nK:DJiЕK ",Vİ,j .肘*'ز0)(BznB#4%~ 2 FaN f~Th  MLTxDҚktj)d}4梌:Mb^YCfx7`?oqJE+J`Ę"od*@6' xU) ؊ҍj#;j)1:HnQJdFۋsF=/Q Zs"5ҋ@%Ytqlp @Q$AEɝ<'n#i$D%CKPN y؄% Ve^[{Eq1F.D^ktpcthGc4猲61;:MDiA&M=°VƐ#YlY>-|bZʜ%Ve&N03"&c LCl`at6+/P!0P 6s֕hefFVFE d2 qG[O؍U z{1m6WRG:Thx*c6F;)M6H|ZD\dc"\uFS\O^]Ml3Î'^mpBE {U8 >nGP|_p`Q2W>x>}w%?x} Qzq 'DA5qpEF66/8rc!kGex}0RxD( u= +!;av4YjY.`8'dxMgXo%l:lCN\أl<,MƖSNj{hҒ qJdicLf>f"C4xb rU5@ ^D)VtKVuMlG7CxotH57((G|@v|(^w59F}Gtxq7F9 7FuEuU5PM||IC#L}Y $>}%7y>@&Qn[DEגq8'(.GIH@'65HcӐQsd٪S"mj4"2V"tYؔMr/*6ư"dH%*mp :>V>th2ydc>27UKWu ɐsPyql$=ScM\&76kDqAS$7"iyFAVWW'۲p>yw#?`Yڷ}ٷ}d~g8Vr2/p5Q0E9w"AG|6{0:HZ9dYehpشpD&,?#2.nhE FB$Z">#DVNjP1uu50F4D` 4#X:(eipzЀp꤂ڌr6DH| r@ȫG$@xD$@@`ƫ:{Pt!6/Ckz{ÒH(+Y7N<;٫ku\p\mDA-@i{]'ұpQE &Wy_W t`B;(#M9}NR~:VEkn99L^+ɻu{q(0$gu:hdhq)Q;DƁ h'b2x$2(B2UccuϣpmPƓ.>IhЪ`m;u_Ʊr6,5EsyР7DIWzfo*!agZūrܼDӃwCp׈iŚw!xܻGXk)NSUQVf{Wh6Y.Vq:'E>zxP^DsDKwA~D=o~Z⟀ (` !"X_5Cq #3/ʕ+xCGL.q,)S& zAA?3De#Q"#T=nJL DZL h֡C)M`a\C&IߐSP +R@pߔX7 !OLJE @G,y3+uJ)R5lvj#->xPGrң=H3?JxL?TV6ۃu- rJ?%L ɯDI  *Wc%QIpjS<3JN@"8%@c,$A> AɣA%X%P:Y@JETo(${@!AHepYeaU^!`PU*WJj)GfM$@H5GfA &=KL̤C4O=>TQ,T~BSU]=jRIU:~ԑkPZq[zy[ `Xe `eEAa ^g)!g:nJs*qcỚiAWtӅ7tqHh@\Jܡmo/U{[pZwXTEx`w : ^]x[Յ]-(`T/ȵ2T4J@IhuUmR `I beegJTPiN3agDjV8i}d,0QFzguV> pp`MSN?PjJI ,խOX=%)"+MH"IzV~Q곽`wޅNP-c>-dMh&% OJFv]Q%`t޵A9=.u)"4S4w^^L{P V0;꺏M h` "cSP qZᐜ%CBɈB9N$ 4ʨj`kcި"/rY⢴fѥJK֖ǸioH[D7<,{t$ǥd *A&B\HŅ#EBY%%ie=v;xzP 78/E'J`+\+5r5d2,`%K#^6I nr`4+ jLOƤde*AJ+luVB:فfCPf@Lh83@b$9@x+]`Ȍe+iX19VDfB aL0AG.eIX`5~ h$QgVaMF7%e=K^:T_zH(GI9X \Ж׸qd(Y&D/FyHRƥ-C%:Z2#IGZDLeJw8P|2(!F!n"1+U2{$aZ=j3g-j 8K>ҫ/H-<"R'~aJ•CD,h\lXQx\t`*9f&3 (G ʙT,H|9XL]e!jE` e)ʶWEW-rxdH9r2ǘ1hdYͣpk,Jw-;6l5.2/AU4EP̫^.'#MTY/B%ӱPY]©ҴSjSK2SQtmm%0 k~+䉺(YnJJB8OrGY  5UWWq"?HFjHˣmL{& )А%mϟ$ ? iR1h&z DŽAt l@rp3pUlf!F3-ef >o6t@Ooc4TğJGS 4,^5G!٨v#N xe, D'VYdl`HpJGlY/ M]27<rKK$w""s\Ed9rnˆ"]gTm:YJ\[]6 xTn{d{?k*/kt>`In\%m{6ۧ?b@_RsQ& &F# Y ğ:==!t 9p>`?2 T1o\DT?UTBC,$El*"rGV#[@PFOdGU;!BN(#=5Z#N~W);)ex*%yK)!kKqZGM%KvVwy7kϥe!5glZz7Kvl)A{%GvU?9Pbm5O}a-m,ׂcn@c N4~}m+E@H3'-L} 1# "~vh.q 21 H$EU%P3hPI1U OHEgs#WOH"ʖ;RVs)ALt(7"m]srU "1 qL#Ģ"R^@6T!$)|C}$I"Y& YchJr](>ZsyՅuCixCClG[#=$M#c!ipuWwrB59K<,xio z [IL y[\k[XSk%z6*z|M/e_VsjgU"1b8zV" rh{2!x^Ԓ%{;3CD=EQD3Qwdr'E_ ?@3%SmoZ%1Ht C.&p`ⲧOҨn-M9P:)xQhReg6Veߨ7"l0dȁd*8@)A*-yN|٦:o3=5Wb3q%?PqEDX-R4wls2FuQҗzaJV@o H#Y0gG"gl8J6+LILj%6+riG03Da7I_|Nl;@ub%6Da D_Ԋ'0 pDŽ\rhgXR(#iu=M5Ք2LkHgH[%<6"˔Zkх\\+zYyV&*S#deUkRs$RFey s򤹗W#7g[rrt^͹#^aLعWGyQ-RD?3\E8-TPиI{9&/S}lkUjY ?h{{Jgd8`n,"\6e2wѱ] %Q Ԡئ|0G!-T o Eàa 7 əøa`y&$Qv $=[]"|iP@*+zNBTf'p23q|}b>#W@Z bJ1BT~p~b-]=Ȋpw@aF!v)Ih:(R\<|Z~&"y…MꪁmC [G\ skEٟLG`qI7##["S\Fʖ.B#άXHsyXx7~GϬ,Qڳ4=WuXě{$N{{#T^{KM-謿e { PΥ>fk7}H~csMfB伶kZSEE|?79 Xap}!.1"3@p0W V<±$p#?^ba B^(a A>\zZZOfxYgAZL٢ׇu~G=ST5Mf&\#{\(+kɺ>"iyR"^ÖkFa"bR6I3ͲWpe^eV$;,Em˒@t+;y%htNvu8srN{3*9޶>@NPN?=8b2:C&MȶQ6gÍK!94 03Rn1>R0 V/Njj / B1Q,$/ 'z ք W]Qu%п@)R4l? 1`" l)R@5d2dH 2(͚`ٳK.?C ^S 8.` *᪄fR $p4C i3'ag 2uM7Mb_@@Z mK;.ߴ[̘ AgIm Ԧ3 :C|qlڛ;-;/{ b󗴃 e-۱ѣSn@h/gXo&<$U>ϛ#H)^!I%M H' 4(#A4x P? P 0C  8C$M3ۖ[N$L4C Fn @B4 d Jlґ*E)g,=|K >ʴR2PsPL3g N;+԰)AP 1!s0!p$@JQ$6UrhԆ"R #LIRZb&^uWri%\ pB)aZj*)(j b)%`Z j /!]70 0H´&:-\{m51b93.ތb̃a1 h3.䎟;0N @ ~$[#O<>`.8C?M n\?9 gqC7/G,COt7Tm6j3ѧ 1l& QG2Ӳ.%4TK,y"qUTLGRE2y*g;N0Î@U".!܇+O+R!@J!5҅Fo,h"xפ[%V.^mX2nhZ>(˦$,K]Uw骁y+_UQ#Ak_Cw &_GnBBalci b0 d. j65m;ln1gˑ`Ù0Xϩ&F;&(Z=ILdCG<id6Oa cƸA@PK?(a2p# F(la[F6uBQmCn~m7ycr<|a;*C))GsJi ]2՗t\ Zڥn⁛CpL0 V?bG;9B$JqwSD.Փ(U6`w "+{6pGDr. h'Ȫ ^7~MٟS\ڕj0o]~E0^ IG|/5Q)jP +V`Mð f1X@0r,3Y 9ә`H.yҜH*o8Ǩ '$nspՆyVx,O򁘀Y,<#\J"x,`JWS~;1%iJRX0@ WQgNt 0~ٌ%G[5cIZuDy*r^4Qm+P&bL=ouLӟH%S cTV$ló'Huٛt0 %]`MD%dg CnP-?OgF)D F:$v$VrCy [!*Ig%+)tXԇT j㭔M˛x)H69a ?.qjnR^rvE99͉& yW5NU(G3 W”\BK- G)\a@S< <%IcrG K4Nw xS1JgS\R SB Ă [G0COdA <_1C<5&36HD7#IڸE-*c'Εj?{vM@箐JJ'[0@^Sa]Am=]F|"!&{ݳT>8IEx⪎pĀl'PPL`i8鰹H{Ұs٨XA Zɱ9;c1X)rAc9   H0:;2[3BX*#(*12-C[*0R!' !L%C3 x2@2$83`X ;ɑcQn.5Ǜ;Z,#CH yGd7ѹaY`9ᄛYxa fEt{KpS]"\N7ӿɗkA@ l90y@Gbe8^ |@m 0A@Y l y9"lPTm9sOr =:xM뢒a-ت(<ªR]F W8((H 鉉ᛮQQۛ  Y7p2EᆛЅf JУ:RKٰC7Rǥ IJDW5]+,FEY#nZES+`:ٹӮK5٩.L?UEis0Fm[RӾԱE5peR &9O ڞ뷞xUnD(/u\'z[U~[ԎƏXAZy00V$O ذeu@Y 3ț}p'byp xA~Q1"2wu%{IPP ;p;$j;cˠ J̍ X¸QA  د؋N !R5"SSl=uYF&Y Ⱥ2Ł-uğ5Y#- ю8ZRb=%=*ږe<;(#R##[>)XnKޡ`4̑ͩ[]*U)*ɮ6+AMhs;7,ZԞsUEտK9~;~KU[S@(;d~^ ۉv9_G h׻ Mv1o O~EeU1 &+!#"OBæ+:˸Qm’!:—W=2"JBp"${ߟ,NG< R/ yHRYRM;adS<-Kͳ0G 8`aIL0F:ӹd4n<] a;[7-b6Xf F)&ڜB}?Q&-. 1pb܈llWuc)mcjm XJ0GndYy(^ =D pXPȞ@lMSM&  0(e5Q e $";]^ !Xf)4սa55_4.]j.eOiEQ/tD?/HGu{)cc7? p(,]ӕGFqjPb}o@\d@w݋Eȩ4Mv8xq A[ɾv^IZ>Q d 8lCir~$?jLQ,4G#M6ѓ~˅ˬnA>>oa>q|)iƙ-Z0!%^^ok+- &.['P^\u_?PNBx@7?F]W]8]'s) eMFf[܉?x 0 PR@ЅP9W!xI+'I_Ύf;aC6!Xy:>5دR 5N/RsgvDGk&@ %@ Y 翜I􌽟 $4M >tGS=hn~nh;- W.9.o۾aT8vBAvjCdo/>/62X}'פc̵F\r9[? 'cxcW kǿ&~l 0K[y"܋ojapQ{ % xw85 `ѕ$J솃34Ŀ B ωC"~!P@ J 1"E N$|pBq凔^@4x%&/Z<Εܨd  '/>A /n PJU(Q*C4Z~DA{2x*ϸ +RB֬[˖AS 0g`H c]RIb#89RT)A)U't(+]*vK%{.<>W<!?EA0̇#Νc.p /x,0 E!_=Eܛ7X)0W~ H$} ^}@X@ ^X`C>@A"*A d`P(f"XAcd5b "H$@2N#S.٣ HcuA Y#JxlBL9BrrdP$SH*tRA%$QA"QH6$I'F$ ErMHOFR/4CSn,UUUKUeOX`@Yfi5O+] MzפGdæO:1a?EW$pv-9ܰAv}u4^CE@y(' W_5߂As&3&@;|@2!O I,ƨ"KcV.c8RMM򘵌S;" #,f٣X/fB N59PGZhtKf)M:I{9D YjQ/LJ:lRLDJD+EڔjRë U ,UdH:!b_FحgU_>QPq!;WNx1hp-imE/Y[{CRe^C+ t4 4nmTA 0WR8G|G׃MUǔ 2RpcxPL`X1?XѭXǁuܪ C`Z܊<S IYh8QN~LUAY*dE^*h!Ca?ű~k#Қֲ%r<Ժ:;Hm!ibWopS`XƂM YdF:]D%"͚/Pg[V,]2D(k h7[eu3T`(ݥ m{iNIJ” )Q3WN羪TF:A b[@bs{lyT1mB^̖uRQ$vjeUpƄ`\JA8^yodØi<ւ c1E "V:PTX0Ȯ$ Bq+mm;9R`P,ĤDχht) SP#TDhS*WmP,k(i&UzLsCV-iQ2-DkljE,')-R zo&'M3 0uz1+g yKN(R<@5;OYKvVb7E٩RېUtnTYP.aq&rU,Kr0,cޙgRn!VPBdKLTA7\ $@@ \)\ǥCJw$EJlK~rhzSXyU\RǏQQ]!U 4VLjudžpU}ىq ۩`M ]iZ f]R]e1Vp]]d<"$S#:&꩛AWڪS-68Ey\:T!EiS hbs=MQ.LW<FؔӴhM9R(щ\Ȱ7cxI[#(v|\m ȥC\A$mC:A\<D A8?\ATtxv!H?|1qY@DU@pD:vqYh4tHyYTLp%5%y%`lPNVDžxՕaqbݘ՚ݚ!Z a߅gyXzV`Q%iቄ'][NNEX^'ya#$^VU8^0TLbl\]$,\E&vAoQE=_1AĢ"R")[( VTl:}PiAd |[Rɱ^# Vy8̉= wX .TC8 +pUTC46@\PA@{gA?@CCrǁKw8+8ZlP ­P\:P96 $W݆͆XYm1їy eP5OL݄XhAdBaUiٌSte]^ݡ%9 Ս"_eiّ }ݔږRE|쵄८WQ"U`Jb Usia6Ӝ>٩ɅdOIbS0.UT4at=tE,ƢEbqq`ӟSeE4pjlVA}7!LˆH1ROҥE}\6w#z˷h}XOM _\#T)`m.8 x {?$ x TX̀~&@ _|0d|AED.P?4>;BTbJ w GCrRfHWuSM0GQbaҐ-qlTn ,͢p"-͖,Yp"%嬊 -ܼM"ї^ͬc=!q/C%ۚO%L$n-ާi㲏XDߡmt7iȢ,Iw* |h{=rC6*2~S/SIIdbJ ٜVs=GzVltcrpTA5,k:)@-DBVd$Z/z@?g.ܧ1W\o@ @A @)A:j=q&d$FJ{HiA0ցl9 Ռ0%>|px0p Vp9t F"$fH,GC,ΖYBHΦE,YRJoZ%N1ْ&&&L e.zs^VyA&Y\U X@Vw^걆ftYm`E nqݢL)KdJDm( bdЊٔ|$6a I)F %]BND{rsA2dVEܱ5hVtCj7`\׽kdCꙎ@"| huXǭ GmPFwԯu~$p\ dAʧb'd{?n@ovvv@QXA<+)d5綡[C\D:c G,ٔu3*vOWMUQ؀m 3Gg|7^tw,0ktŷԐp3CT>fO"_^8?1KxzxDQBC&qʫ(8+j7D"kw_Kx\`(JZxHjydFh֩5x9bצBnN"F %$̳BB?d_@ }'s3<sZ RlDWE5_?|}Aķ1ď-vCz ChK?$,H lQ́ P,-#I([e o8XwZ~~O;)G{;~;8O;_J8آ-PmPOW-~aΊ/TT+2E&1b=wSV=u[`|ŗE5DR(|y/DM lȰDm|ClfGt2|%JU t t@D]! a=gШ 4TP>/( P 1T _Ps VdQC% ʄ(`(G !,2@IJt"rhPhD dz!vZL2pH$3/08  qDj+2g-ANPmk, Kzt"3AV*"1t!̌UBXtlYt``g7D -2TZnIӍ޾;.7tʻ!9tg^_ok|;܍΍C .,#H $0fc죯*`3*HA4Ԫ  07Wtテ?`x:b$cd;!*# D#1ft9h9Lr.(̈@#![#@!9)P'ppj<h@oz s)[`QBgBన*Ta  |ǠS;}ӰЊF5-s4WYyVd)[y3ҶL ,N6l㇭[@p_\q]@!D:(XAT]܎s,ÍGr1^ycȀ YTȬd?3P2h2!\5Y:*/He;! )iPt8HfPF.@1-! !ӗ4>-"49L<%O!'xdM0\!+IԍtU8,E] ;S\iUMKXlV/z1`^ז*_d,`f5ie9$ӚVjlcsf6"M6Wrz{#wÉN@s%~ZND` O:9%p cؤd.PN82uM@wAF  @@Pm+C^,\BL0mU 4\Y H׹^^FSr[o]];?W9ءEyEAWwد,lP$g#ҔykNx` 5)!| p̅qG h'n{v(ĆRX1V-)…2J`bDsC'=H%QӘ(f\I5k_%#'("郈"3IZЍ#p_m@rɭ J\$jZ\6O6LV&5}!? B<spH+Q?\ӮԧkђT҂<>.m\kk{ne\ZfK/%5C*t-=ǫP`d/ h9`p?Ё'_w>_]Bg:100 ȦnPT= hFB!? ?C C( 9 N@N gR(cGb&|Z2&%H1ҡƤRJrRlO66-k?u]jժN_hM[/֛r5,(@5՚[wƚ1e mگ~Ѻ5S#7&x.;mmTom}>4%*uS ]eVBX^#(c6N4N!D?N2LA'& Z:ĦFPC a=vl^hRǪxWdF2gl茨j`kHʼf+!t%:LXX.`KD $Ƅ!g7bq@gLzBPjf L%&4#!K.'Hr .)Mb :J!r\*!">/ӊ HK"QTfq-deLg^X"|~Κ<\o{z1.0k`RWXr5t 3'\~N3\[66}6so1cq!i!ȞQޘ8:ˍ9˭܊]9-*K;*` bETbXfXfbr>$Ū"*nNz$#"6'j, CJN@J TRh|.fB'a1 cZ*lfOD)MJD` >l>nB+" !,)>l'DIԤ̒DtKMr.R$d.dBC@zP1!(n+$GIy0C63?,%DJ$H2+!H*ӊJ%8|B _B+T,˒(^8p O2G$r:KvN\O!ram(ktmV1=,Ip*H0vvzZe.rVBV$tl;e5Yp|.C|5(}tor'HKr kۜS8ӭ!:X:8CVuׁkMٯ@ wGy`8E3Z}\."yu B XAZ*n63z| n|ԶM*d`&`B`{ B MMZ%%+5djlz H$> de r*3HrIKKz q.*!p $hLOMi/-!r*' 1Cmʆ-l,Q/*!10^mŠm YG6[eu"7׎q659UՓW:WZ+Q(J)Y;;/3K_w4# a  SJpW8nK$nr 9 |T"R( *' i[^눎]A!8{>;s{s[g32lE RH3=*{]IYv [GIf]Wq;ŗ8¢! @#Lp|vp!$p&hsj; r * V@lumEWzxVyni/*-(2Z,7q߄<eڴ R 9ѭ{i_<^ _(u19ހ~9^ ؤf6 ;ؙ;` {]I[*G9sf@3!dA]{^z 3JBJ!h!!2D=B>P ,{[ ]Kw*yyI𐨝*o}"]#nd8Ds2grV8sL 2umݢr+\'BoIORKoq].X/ת)5ԧT}'_vú^)_:^ *Zi%NFJ4NlāSvP~erieeJDoNQx.D"t(B|*LIovL/QJD^zK?:6vM O SC@/%]x8@]TuUYu%Uwg͕Lgqu1Qu_1sZ^ S;-hpxP+ BVkx b fs#[ `NB[iL=VISg=(yl+4>1MlٌAvv,? 2 mCP,F5!mEODte͋9:Q "!Wꔤ$$Km "7mo^ʣT% o\'kCc9A O[.t ozPQQ@gof@F4@B@A$D'Q['XҟE-j0+;J'D'Lʓ, )O`pxx1[. n& is`e(\嶏[̶,ívUe+y*x<"0/y8P| !r^1&na,szH&1,"}b| g6]wVX|ATiD0@QE%YI*ƴ,|EH}μ5)V1.NT* 2suuB!āME!qA? #d9$}fv eИ hE3A=i:Vtk"Җ&m׼^ pB;5ZB%-m^[ V5>ÌˁM@x}|f `icאt0H[zurE] zU/rcg`}| ̰;N@WAR<y 8 ېFnRP8T>βc>-&m->7a'Ajhq=`4q,Q`1V_a`o^VABs^ca~ԸaBW173<R-2qSa e":>D1DQdSsTC&6X1E(OU6Fc(Y&`VvdVQF8vfGW8"AOjV!7|8|eV׃=((.r6utHkE'rbjvX7 v DdXDc]DT T9مC0I0s(_ILɔP`1Ws,Ң+W3M3V+s a{!kAF]AMleN5{#}g1',Q|AEs`"1'>fA<}$U<1g6224Rx BSqb,AbpBdD Г '&8dQÏOEdT(dW82V*eefI V7x2f$urW8|'`u{B{fgfH{V*7h/JVؠ_SDDz!="ՉCd000,QT!(Za@A&Z ݐp\פY3Mgyq[ų˶-ʃ>R{QeAnӢ\]}Y>̖kåܵ={FQHyh+UTjy $a=I.՗A&6QR1 f~-#rbP#3C*3A2gZ, BAj*@0###E JErFF3aFgez'IGc(BxfW)gW9?H=)78)HhWH( -)Yw TZNԆ :EVZU9hP[he)5 p PP p7LrW|CLrk裝] ar`{{\J{l!AMemz=@C^M銹x+1='|_]0i _+'6<~ApcK+bA 23`.eRqQ*&!5E5;iE=V hLڏXtI6kq3=H|5v ag9)Yhdv] ؓ hE QŰ": 0:)J#[ >@x\7 .0{ Հ>{=g)[WA2zkԣ_dV?wNQ%]D.Ad}Qcq2HcHU,kPt `A^8|'1=3IbgC;2ɍ26FC0gS:DQ8 !D4HZd=6dBB+n'W(3uf9u!X*ӺɑUǑёfGv4mb%eq7i*WdU2¼QUÔ":X03Ux K .>CJLaልM=_-0uZ\F?V>>B[I^ X~) zYcf&١3+XS~Ga{(`~8x<#DA>ë(Eq1vB R™3 bQyDB&dU腖A55I#0W#+c9u8:gYrQ]cRuKfȊU-5ՀWMw8S'3h5[UPQפ<שLl ۰ kK ( ;ؒ.1jLL2ͷ@!=5%+%avNz{!]ڠVk^k C<ϴu.ؕ e.Cݱ. M>;'SU\ V| 07q?j~CnFNS_TY@qx*׏N]Hir'Q7( Ha__bOR_wY~w3iCc$b4IP`C0T>'>Z' a9.lj+1A d$Hp /PrdURVH=2 z\Hp!3z8p-_,1 P l40M2m$E[Ж+7܀<{ 7\ @?.,C̐5xI +2_⯿'C/?/pK?p8x0 0D0$ $>Qno;H2H"$0$'p%&i)JBZ C ! T0aILYJ@:}B:&pIS"$h-d1StLS&A:hPԥx&r:∣4MJӓ"4r ˊ&["`z &l0[/DӀLˬ\+5^-8ƥԾ*-:`|÷p1;`:@.=վ+C>C {@7c" hPHBYl JM'TⴧI{5wQM4$Szr&Q_/b}!"+B+ ,rK"r6?a: |BL [bvJ2n'6mCl2sW6M^ل n: ,pB^hN$`QcF!avPLbAOH,5,B.K~lAbP($ ܐA Vff Έv(D 0p-`EJ{ GhHmj1h؞#H_&-$vD[|((If[v% o \HJ'9ә@¦jȡ%Y[\.R"3% a&vq\&''D!'*I,{\*Vq EJ,XqLXօ"B[c)X)ֲ&Eh=KrB>[VdWy3Ҕ Ɵ!Q{~6 B)c/{MFױ`0x^?C 3OHC$h19Q?CY qe2Y c($Wb\ѥ/dDeaڏh8$ɑ$H|XKBi'k{ ҁ( I0$J vM #1X(a$H@:2$BE0 &2I. hV(6h.+Q:K{j~I8ƎGB:#4° 8C´/=F!1A<'D228g"χp4-Xz_iNvj4~ >_ຄ%+mn18֐<ɬh[X 4Jv3AHQ&rH JE'6XN̒BD%%hHi+͒DZ+^(sIBR($XKKSջ X̯dSXfYvKjӛoy-:-k!n` v^V`2Ov:h>S5/E@>AMh"<06Q-:MujuvB3jсIXP_ 2vX5RPjzSEAiCE($AjQ$n1/X(pjQԃ:]7!u1+~:nV 7 @ƛ:G%R IT3Yl#H"V2RCDdsZj/_~geN5MA%@AiGi]'#VE'>Qs ^H2LSD,YWQ' Ģ+einNںkHci+/Bμx5ˀY_8pq}!1@EPb$<j͆^DuGq>D6 @PM74,&jb-Z{W j6׬ GVH!ns19$3#k2bH@?"3 & A+,V(a⋥Y/xkQL;vB @#[N -¦=Ɋ<`\쁞ll5Y>K;t,»Z2+Y8Zk覩e30c?# 8늨=52ͺhA0Ғ % 7+H:& m;\8[5/a +8BpJ%+ Ψmɭp.~z/9Լaa\C@Y=CZ(/ ,"4E(ڽlS/(JN\9")KC!E!b Q7"/jDA2?p#F(1C9*Y#j(i)0c4Ɩk+  .Q;y::9E 8(vwɲȳ>ۋXXƞ 4K3@%aʈ\O HȶȊ-&N(N*BQ3b>˭v\' $ xj0y:(uI./rҼ"i}7Męx>  ?#Jmx5A8cRiJ8237 cL+Q) 9,c~فP h&ce x=w ;lk^[[za`Ëu>sGVxn'HϡMR2-S8 AlgXaH#4l4lm8'8'+2[Fkfᦆ6.dɼr֐[I'8͍̓:2~ n5һp/ѵثҙa6 deDDdDRQڏdjK 0m@fM=;RB8Rk[$i r3/[92,1` Y"ch+; `%:2`zl96g-4ǂØǙ VTw|sN1%ڼȋ >ݎݾȣUZ^ .lHt^!Qױe?s;?#Žy5xvKqg"c4a2 +S0)K2Fw–vl Oe m&~>%D gS} g -(2$0AA ]w0?V!\`!28"1ʘ]b9PьGeQ@ΨC 8T !yI~' =@@iO|h$/xAA^Fud[HptL obSOwRw)>q~^$EKJbSU^wEaUXaUYnEWYAVA)RZ_XUuTP{ Q&ye~[pAij H׵G $k!\>@ı2޷lJFQu4Qt"|vA{L0Qסv^˒dG+,!hSRz5@+BG]P7 #12 #D7sFAfOC(Q%IQw,C< }c3-"<$RD"-a'ON^7N^<%0(ށiN%P.QTY*`JW@Z:[`tT*^k`*+jEAYRFle)QJlA@ZjR+-@0n?zDkR)=`F}T#vTIV{)( PLI+Y#d,cA2},A+PMzUD)2F3DCpƟH оsCbDF%Gu[Ծ0(LTR֠M)lV )QQVd#Fbd_x$ %`XwuB=Xn szBY!*hݨ(QtiL:Va2eKvtëX ,ǂ$ ,pYi84?4 A>PlQ$jЀml38GICd`[8x4~)qXˁbP g`d|>?A t Zt6O kaa ÒfRQ^H>y #8۬jy,Q&Q (ڹH(P JX4)xM~1'UҏY B?m V)  OO4IHQ =GRwĥ)YU-s_y(Lt)DɎ8H\ńaN -ΚU Rӽݕ ↟YTtՁla``؅yAZa}ڥЎ9ޤqmYdv`4ӚP FyAsy%W؏^͍5T:mDxtPl<@J|tyYyFtB$@}>q Lo`^~KKh+"ʈT UXM =퐔(WuM2JDZ܏XwU%  9J36Y0JXDߎ \S4݅! "x,`@u$FHde XhEEWpAVPf0Y윝Y]lieOvS WTĎKF945^-lxRSQ^ITxER|둉Y=yK\D~,ʾ`IP@@MB``~GTELЀhT%ɬɛ*Z4HTOc͔3c1:*#:zYE@M5b8y@ X,f3٦AlrUmOq\8d \qWɫYNJF4 j%TE^]mEUEnd+E?td !g'ۥ$)$+ (QuKTQx )$B #\rPΝ!5͍5aSa#R\bWJ8yW\ŵ ^K%~ՋA߼aP("ǠL`E9X{_e*LPyo>Ň,LKg6 YcH1f8Tfm2mm* :ߪz@ XMBDPprs̜֙@ˀֻl.Y"Ix֤ALcF#EHn-YݥҫͲa@h6 őAyQrF99^4Aաrht)j|RtZa6۰Ɗk8Us$'Ku4[!NHW}DEW}G)CW)ɰ"e1XŒAG/ʹfؠ012,AՔ~X6)]:'v$r˺jH_C8Q4!ݝSؚmllӬOJD4 Lf(jp[\F8nR~ktKWvlCPl G`v[PamҞ)PI Oɢ)zo2_iN Ր HHЀUQUmn)sʡo"G"-oBAVe_/ S @xm,- bjY۶BXqjXXE *%ƭqj'@~ιFqŅjԥd4J4JW~[n@kHSrOsAl\SDs(7ѹ b<9=Ur%GէQ$($H(3rڡRh5l|EE݇ao1 oL MO9c2RU2~2z/ξc^`NiPq:TAf*n\Ѯc":jU 4Y"Z?CFA۲p ۶Ⰻp c:w@Mv-g kʪd2>KF!!>OvOy󧸬>$Ea-^Qz^rѓRڄSrYq腓!n%$qV劊q$PhqDJPEMhD ɤ+V/Hb::iE6f)IY{TN^3,'@mdЄT`鋵S14UH\Іʥ,63+ɲ4˅d5? yFZU ]ՙ?j?n-=3 0ۢp vCҠ<٦ƭH!l -V8ז 42E1ZtbDgO!pӭ/ ׮%Owⲫ*%==ZGhm%1c.$Ga!;8by"hW]B1)ڥC-}8͐WLd +O-"~#[SvS՗+,ܸ``Dd N"M/ȡM٪, >vo"̅ sn6L1^-i!VbY]v +8q0Y:dr, Eq!oGe F +R5lÎr!7F1IE!PvW: 8iUnM3!:.rRVLqswOh=\G|htd!X~D!W8 ,RxS(U/T2YZ:jT*&eX뇌 M[ffc&uy¬\]> 4֜M{jn)IcѠo0 sg#Nu3!U6djE80Opjfmm to͹?vcJ<rqݡHvJOtwS8zGF[8#r%0~t:B| Z#؏!+}OCGN\ܐ"'TxS %hyL BT//XX/װ+sfcGÍpR`/cZfUaZ"O6jHLUmoy 'Axг s:0Kr 9Cǻ6?o~J=ѯOR7FqS@BtZ>EW}>SZ:@@_ oaB(@aῇ&FXʼn:"9A,TcH ad8SdHQ|7]vODJ}E{G`0ʼ/x[X0p@ = lGfH`j޾zRGzLP,GĈ,G?rdM`l1<-qb=H𖵃Y_@ q׶-z1fYtZVɸr #`ꉩ3zƓ')MXrw_75c)CRob:_( `XqO@PCܐ C1DLB 8N-^l`*H  zq!H⨁w\zJ$BIhdʄ~FiI(K$ 3(LHɝ~\3T:!S*vª&>I'T)4(˫@4k/JkҢ - ,L+Z .0:kL[kd̲BNfg̱dm5ؠ[wL\vlL2 <̳{<(>:!,A/\`VkLA/,z0(2P=d TE Y ,%xErRK̑yH BJҒ,IjH>1;P+g3٠M30MBrlJ馲#T)'XjTFT˟XTmdBmj2+Err52UЯ+UR*YߒV\Y2eS qVaoVVÀ 76s,w(c߶2eA#3 %|-<‹x.`׫B =~dd4 pbX$ĞruL?,eG@L'UQR&06m!J@F$$WHiғu'$Y^@NJ<[Id$iE j'{2N%`%"K\,"j) *N( (х&}-m)]bfjb,qYfVjŘ^ef4)V%- FZ23*`8 Og ;'_))zc5G_W~ց01d? b eろէc2 Le PY&4!jk3iwZ 7d${p8H SַJK_!ۢBh2bLT0'2Ob7Cn\{)!n0}CJՑP;M7>$K@OSuIR EGdtSW $EhHHrF9]wUjK\ʹ޺.Yֶ%Jn'9yu.oW_B"l~yL}y0rgcr0-@ R 7YpL`Xp 6RTOu Pq R I: v#H Ӷd#%lM3(и4&8h`tfG CX7F; qs 'cpYvֵc{(dZ-e)`=M곁$OJ\X<*$o4 2AÉ^ɃLjTE(P`O(Z~%{)(r@]$b e*+Ui*Zȣ: JF'SuS Q6$Y5Ye6ƪշ,JWaefUH&K2:~fyK|!}2a ɮ닲9n+˕m,: 5'<dJn`C!1׳#ęB2\@%3us% \@tD*.iI«h4Q!I !V]Ѕhdm(4*}nY F&aT~ IK¸'3ߦ߳A{)ye9m:Äa3*Q7A#s 2%bہVxv۽t#a}Utq^s[(Ⱦr؎w}&25V1&:-姚,u|{S~{2(&TprF֖B8mpDhB(KNt&IBlf8!t F"inHdվ&P8o8"z&"~P@ED)OfČn َj[L.ވmgm.` Ql"#,.HY BhJ- %.O" P7l%Kue0O.Lm`PHjIkn܎CMlMTO"{5Q/*Ď2qq( SJRsb,MÖ +̂r."]%^%*0T 1ì9N2Jx 51v'W :'t2O=×I:,ώ"\ \ @'䨒ΠIio]V t|K--ÌDvq B%HglHH@s0*04彄 +hHI(EF!vI&C Mʨ˱#p"gR$hm(5Oh, `ӦK$\P Žx ! 1M2, MjIE,TT8u ҰX j9nzDrwzJQmd&3'x'lrR|}L}T"E#:NP7}<BS·-UB.dLZn"|Z$ɼЎHp$Ʈ.m jNHD0G"$Nk&8FMQ%+(FM@$/5aϔJTL u5y3$l':!ڜS %:^8G,  X63 sT(I5\jST}jvR7yTM1?(} T%>fKcZH>j:=,ζLEvYĆDtlL*Ռ#:Ű @;M f\Op8PD&("s$^UI܄lDaq NE4&Z"%ڲbJx"Uhkkk$&TNg8"ԑ hmpl@~bwyw G%-O:r2e8E"7%NpzA"8U^5D/0S "&뭐4$PE%xEZiuSZ5:GLuO~(/c(I/@I~V刕mŬ΃mykH)huIowSex)(tB?ޤJ`s!LлJ""t.hHMpv"XhwG\-'dHvt wqH[7"cJ,y-MQE.0 󷘪]gfm}JZfS:PmdFp$rmd^#ع"h`[J$ZgMtET6Ymc84+JdM翔jԢQRu ˹{(,5T/ΘɿxeːD\(p? t %uEK= T%ԠK@Th֬X"צ[ˎ<ֲmٟF=֭޽kȷ_xyn1$o͔nެgPL?PpkZ. cM c %'‹Ztc{ ?pA徘 '<oY^|#'^V}ۧ?k-؏ cK SA TC'P C8@t]H iQC4Ј5J3 D䅋 ATGa"H$,@OTKBSG 5U*!eURC*YFiV@UZŘL`g1UaH֘D@bA2d`kMff fiAe evA6RfF^Uתu@we]]6MsU(yr*\[o˩ʮZ5le9K{|@W~&@P6PBj@9m dBcL6Q? !qTK0H G DXj}R)Bi YB ,oeX e'Q)Ĭ<΋\h'P2vX}[s7&(= fP [!+tx$N1PoUs$U U+:ů;hأ)1$jA+3OA&7 '"Yy_"3-j&jk{XY Q"ÜkuHeFi^ܝJEXh#ڐEnqIÄj:]X2 Rc/3YNYNL|b`Uu 5SY=֗x%0?qGas^}*Ȁ\vIbíu!^ !3U.k,"7/pFPmY0fk^50{dV:p%v=vTO%T2Lm3+p%fO mqtZPKhhf&^+B:x"C5zTJE#T$dIcLe}RĔ)e`M3 '?5FJ~[fulHT11nLyBF@rO@yf9.h4qbf(甉 O@1 ڎ tbjw`NmvD`OXzbIk;j3sE&ƵIߔ@ a`x!1_5pՐw}$2Qi=^$D$B422," tgZ[MR&~xJ?R̕]G.a< =GPwg> y7%\w_bVR>^-e)Ty^E_8΍d s+Mwb--Z3!ƾBexX卬lzay?kݳqx 34;]>w# N'{KQi3 HaTIIIl2/>c7>e'%gW`ჁI{2VZPugw#d{GC!rfaF!`4!Rm\1zyC4|y\W\=Pwx%HDG.d" c0N6f/wW,?B3@33GWQ#m=NvSx0ĴNZv %F"tz/!2/#^XM#EG<2pt]7!^yRV/i;;!F=C;C2oڳj>ujjW&`-hgJXk*3|%7!WZ=@wƦw?@Z??D%!}]2*1byXґ?2ro264u}bCFZ3*$*z%X+_n!As{4s1f8P$tD%|eq$6AZY&:(@g.}71B5~!RBN8/ Xiaws1R/TS;TC5j8JGk7hkIaUsXET&4a1l&I,C#mikfv?9SDq?i4{QXـܳ$M%=u[Q]jGUxC%`uY[#&ƲZc5Y7A 5K#W5*7hG}F?7: !;9^&e)y!Ma]# 4V@Ѫp#fn,jaDlZl&MTK!\WwwJed4Hc '(Lw P6BRG`x tA~V^6 ;<(0R#'=#Dj U\%jvdG $acc[r+v­cbѸvUJL%m')Ҝ4+/ 1-3M5m79;=? A-CMEmGIKMO Q-SMUmWY[]_ a-cMemgikmo q-sMumwy{} ؁-؃M؅m؇؉؋؍k-m[A#Q#@@!*?Qڕ}٣PPA!yP=eٔ]==-]#Hɩ =Jڨ=Aݎm3Jަ ۀ=&ҝA1=&=y>H?1#Q?A#8 => = e!#"%.^ >}A@7~E.!I?*߱ 0JRVNP>L-T^X^aN13WYlji^H%.->?mr>m( @wnmf1Xq@ >Y=&A>VP~盾۝a>c ]lTͳlx-.ۜwY?qZ䬮-.in [!AnAAĎA%Dn'?&an^]*3Xٮ.e>mTp9;J-->Y@!+WW]S$2c~鿘F_V~&y>WNN^1S=&xZ>惾U IoC?&ȭ%k>^@ٮNuNe٫-0vz}FOa? t,OoH_X۸oa/⚏cr4z P%8\k!Ј 8X?]={Ip`u%UKY"3;gH H%V8bϡ"&XQ4~J$ +ϱ*=xA.N֊VЗӬs&\a؉/fVɭ{ :(a" =]l0C3k΂9Jhy-yt6OCwV풯>y5ށfyկg=O;0>>r(2o%J1"4̾p̓pC;CC\:[DSTVtEc1y>FsqG{!,& /G5C(3 J9I'XBK3-E19gIRT:D$5&.wQT! H!V>Gޭƭ<*69/:]BI_ENWV۸bFQaWiLTeDG@/80 E3?h3δV>PR59UWΠԪkOW hXqLOͨ d`7 e[sGC&#r`؅VȗxB ZSO9F\CMth> QqNUvbe?҃cl\Y\鼣fGMj@K5=ڈg{Zۅ_عvZlzdOlJR>J˔k,}pV^>B<0;ޝuII٥7wZN7BxU\bq<ܖeU*|SU|rhdUh^[讃mHIQMRH|I[[j^ʹb`a}YS$wa:;ӃVi̪^DbAyގn?2?S{O_£m^TP]a_]J-&Dګ`+ŬEÝV7ítQvDˈ؝w˛~jqa،^ԗrw8(26$)c2!԰qR[}DӈmSyA.[Vm8(K7jW2+nރMn8I+/E.ȁkёeZHyY_峀KC`tu칕TEŏMMMO4ᲔqB:|iîgggqqq]]]4?/YX^]?Axr '*\ȰÇ#JHŋ3jȱǏ CIIS\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXj)cׯ`ÊKٳhӪ]v@lʝKݻx ߿| ޽z+h@B!7y '@̋C%ͺn)lz,Ղ#<Ny=9j`^zY 8_*uvξ=I'Gwϟv$w 'qi]z)q`J8?Qw!l=]mG<gdi 06E:ٍ@h,x>PN5$O)=@ZSk$':2ꓜ#jϬKH͗uKi$"6σtOvG@hmJ"&>mh@Y< n<ky)e"U3@ݗ[\o^Scs$YAEٰ<]w/#|ǧYzuBhO P3~&A4wrǓesJ#mO+O\˻Ӽ;ӷ+v\4P03\viT@{%@;zwJ8PyӸO-yYCE;?$:S;)V雷^WnN/o'7G/Wogw.o觯/o H?Ap :)술#ؓ$L`%Jx`A8B`P-,a gP)!  P*G'(D RaI?#,GpHE6>Q\.zq'\4`^@@hE&&%J AC ?2 >~#PHH)$AHE:r\dJ9%&)#O4E7ICR"ЌS\bW-%2ZcbT)XP$R#d t g<3 !"+AHsLg:#KB*Z$(OK'*0!)6x v,[g_c3PW0wg!qJ}:U-/z]uVU&՗td"Hl "LKpl_vaHI:̀)ԟS.QQ.Ғ*/AJ2nsZ8cu|G{AD,aU6ew ĭZlm/]8쮐3GXdHh;.h=*!H76Q|vשRo7,e@ z1]6^g߼ݛy2<{Є[Z9;nهh:ɝa4vJb{B8Yhbه KES-{JeEN{!P?+3FaK[tErnu;Vxtz&\RAn Hzshatng zfO{mxԁLxj,Wx&`dAL{izk}LR>u}?}!Tq_=1qjIXNqg~}$p|ǂ#'ZOOP {qy]\xg==aDrzpX\pxb zAh{SnzaVjOVVVXAEF 5x=]%l7pw=MF~C}4XR^}%DX>RHq$lNeIȘ7euQqfzgPfHal8K6z\tnwIDyHnv\a&nqOUExlVToȆF@ɤ|x1G焺.P1S"L!(*)uw(u}Iv()rHxyX$E+R OO'8'S7g_87CIgFPtqVhaEn+aIxVUuIu^O Y(HvV7DI?;AF18&y>ؙy+y5>qfx@NSItA)Wx^{Q<?m\FadYHtHd9Y)U:WZz^zN9yRU{M7wX( $KToX1:Ipxu9c8֋HpV}Ca*IwJH7T$N*X@!)T' yq{ɈguɣpyjemF0g\ݹBB[[cicX[*S*ZEKws V5[//`!VGvu4THY1XEZZZjZ-i9#*Dl8)Ww^螼gf8Ȍ)=pٜfKj%6K8ۺVZ\:TOiky5KSn-hPr<1q EZˈ>1yៗډQ6BX?^pMw+S%* ˰t}+$Jd@%>YYW@Q#[誵8xJ`MW@dtb)\u9Tfٻ):8K”\ȽD~H hɕW*=F5 ԮӺ\ˡ}g^ea)mNt W@#Y;QMȷ)΋<J{tL\>@!DNAaK$KyT1} M|)^]-SPM.= >KRoW0_N^HO@HtLIQ< >p hȟLK[,΍J3_b6ޕ%ܩ~꠿mF·K-_]Lr=kt= [NﴼN !UXQ?UATfomKav˓DD៪̑¿p?Tʜ ޥ*%03 ;D'"D.# <*Rd71e+1d4[lΝ:}P<ې)қI^鰥^|UVjpca@Vخ/EBط/W4Q|^ª@<abYA<⤑=w9+3oVhOk:uhǨ\|2ɬК!1m;ỺۈW͙?+toŕ{npE1@\{V%/|Ǐ Ǵ2~(tJ#`i~BШ{I(~R%.Ë0IÆjXSB/-" jήs ,:Ʒ@`j0ƜRp3&p%xC7j1~j4մҡDH-Dh̬3j鬳6$ > c+G]ˮ.:M;o"US:%n* s=&D*$_%[1**|A|‰:cr ĮһfiJ$+]9}kѸ./=/#u2P*1):|)_}3| L4LjL-a"X+{M6_-NbadB$ jw T~kV-TсT 5hڹr& `ڔԗ@H*:Z5#\}5jcVhlh&:W_Wy-(d-ĻB1ji1.ětҲE+ϊ%Ggls|eqe@#(uk('Rʶf8_JKqIMtsM8x9Cޓtarޖieq{_|Rm[(iSoA=TDOTTQcj@By+ݪm%UX* Z ξ"-o(gkYN" ;-|a 5(!dG$c IvVZ4$&%wkS &xa4"F"6+5^bJHf)#FwFF IgCdF,QG"У9q6Ф; R dAj,9@DLM䇿%EU}pE+R+K0;lŽH N=WIGIm;5JǺ#r`{Dnjw錘ĉGjh@J#i-[j~`D-lG ֠DP}9TVJSW]7aJ]F)}RF}SFUH9SgRz@{v 89Ugs8Qs٬ Ԁu L;ud2?:l-k5%\*5Yim.4 'F&ÂS6zh;](O Kn:Z/kV\Ɓ0샓 Gm%Ev7ԅD!2[+c>c;F#&^zҽzb'&܍h9u[Crs0O9 0Qr"{C7)˾/\05X3Yˊ[A;li6 2;*Sſ{ x۩ @> 9<7J)ś?Z@"PTbEl+08As;ʠ?A#ck8B1sD3Z+IfRYB>,LBÙ/s@BPb 4ld> rHcþCB[ [>KP5Y:恌ĺR+ÈpԵe8[Gl=$EΛh+ʋ [V컼\<( 7nJ`\A4bdJɆct*;F2;JܣR c.`6>Il6 ė+F'DT|i9(A>{4[905YHHĈ<(Ü& 0xC; CθԢM\Y+:IÓ$ |Mơ3,i#;JT _@DAR<$_;J.胩>@$˻CkʸlJ7 @NK*O\tUBl6 5=;F\Lb=sxuʼ;/\QLLCXͤM}%Rklˆ9ߙ׌1Rܼ;ΜC>5EH0E +=1,=+-} TG>ÿLLŠ_iD2c| "OMx+Mо(.ҫ;?;ӑ4%[ZFlBdS:̆؁M ʽ{YlԬXũ B]ԻC Vŏuݤ25Y@BP<ЂTKM;%b3q$P}SؗחPs |W\UGzm>+ r íMVȯŰoRHO֮HMk- Uz0R=;G=* W,EBRc\)WeSQFhZEڬ34؃܃ J=\2SXe?U]c7_,]KmJ$6Q J?TtӶP PK6IPd?@t\EǦy| CZC=dKMxְ4e஠.q`7+=M{M=`[Rv%\^a,BE@ɺ.}BEW)%f_;,dcF8fO ]N^b%T-礈bϮLԐ%Y.b/&K|֊B5 Դ|mh5FALإ<]"o.U7pɌni_{Dl?GKH,ߖK0|GihŰ S Q֠FH)eCҶde2<6% NH9~\^d5u`4EFδ^aFad~Zk4B>e+d=Za8Xf\:p>nFb\%^g^?5DnAbnEْ/nڭپs^&^]EuAf"8f*S[f>}ƻffXihBnbvB`cVn9\Q.;- M[{VuieFHʹm`i/M ^j[=j;9j}T`R/tR;DW;u]w}YC<^afFnZ.di ߿kɌ^k ]nb$nlfɆlV_t연ސňl OЮRu%'"V^Yo[hŎb\PKMp&nm}fyG&db?W_w=obWgf _f2ܺf4 vrvrvTbacs|tHOigΗww.$ &OquWA~}Y>hň^8b^{ax YsDƈf~T|BE~~GKssOf N`jwtHLjoI06[MRwM+9CϕWP ?iQŌjBJ=#=7KE0gQ%˖wcgO53I&OhLjj/_e _b}+6be+V۱ҭk.ݹi<sO_g1dȂ7CǑ7sΡ5CΛqe=-__^׺%z[=֣l٩ǍOm)P>wF,,E:u;+c9<^d\7$8?XG$':xRC?:B9tD-{,B"'H$%,2RK5("dEL.TD4uP>QTZgX)UUsTuUp]&%XNi%[o$0}50S_r7{` e9XMcd$6$}wVzNuShD)i|fxf^%l]sWUXRwfViѐTAgGqMAUԖLsHv(O+cK7n#;z0:bz|%h}Շ)wȓ' 1abOnA:x@{m#ִcy*RN=Iet:aTv]Q -'U]YYu+WUsLVpeiZ1'glP)qjc(c>5q=ur[!d\V^?qtuO*F lyԣ36?UOZsG-Pși;A`D88- 󒕼o.!pB3iWbqDdQ9*XV#YNqnz?˜G“"E[4E5q "vB{^;9P83_ZG hC 1"H0Hy]<>i.c)qJxH:iֳ0d-["5eqĊ @0AB8N;`)i d4qp'6%p5+ępWy"+eҗ-]'2kd5-Fj/!º IN(J=(wM 仝'x0gdGJAb#3EsØħ# e(2%:ƚ'ǕY.qt^CGKp L92 d`6ê'=2QLlSԤ8XI=y FH)HM` kՖNW :貪RJz$+3e?𤋮fJރ?r)Iœ7@o!8QAȀ.~F q|;ڈ/;Nh폈" 0'\y =^Qx2Zrw^&=DU'H%OE CB\*,W[:X٠ˮbJ+!Mn'jU 3<5^lF\ڵN bC-[eܗV4gO͟}Ys3G6Bvbiq P {ޠ)Oto 2]txLsZ-Cr3rF[ [)SY󠷣-Y@GfJ Ε²JJh|VӉ- K5.O`ǃa͆3Hx'sA S8l? F=F*OcgmsnsSǓtacג,UMXqƶ m,hpml;2z>)Z |zc`fa-d|=pJ?uV3oirG!n9~rw4L~ JE{ c2Й'dG1Q^g~cdXQ5mMo1ywr+Jz?Jݖ[sD~9P#KMs8h&6tn>쪃]5=?g`` AZU`aIU]./|uͥNmB B?М?9a(|D)a޷Y/ \lؖHgo񎽬HH@@0OIju?0|Dȅ N^VAQiWtY5Gx˥q ay9 Ɖ- -W) 5[ciњ`Z։="[u?l]g|՝aDXZvbqƃF"& XQbWi6|_%V~ 1!d  I^hK`bM/B`N`V`QDm5kaj!8Kơ ĠjW4( `BR F'LT`d*Y$0zGG"dD` "P$BF"&Nҭ*Kd0xM^a"߮}]ifNxw`0][a'f]M2_`Sg"XB.FeX2r[rV`vOB.D6U ((XN u#u[Br!!qcoM:FD \iz?@?*@0& &BێD?`af R_ 2 Z&L$rQ.N/e[NJedHdcJvd$MJNdUΤMAN'zf1]*]"'.xD'QO %)*$T{ yKvBѽg 5 0FB'F%0B?X$v>'/[]CppN%^f nBK!iyDI%|-oAFpF} N$L5K%&k#uq\#kJm("4A˹igBB"nrn'Se꡴G0)l祐䥴w*z|2xzD{'3Q$Z?`jT]zU~~& (*gu3ɪ$bK>Lޤ{/J[$.*W⮾g$GF9z[V HCnnöިGe Fji`ChacNy99֋Yf;b潸O F== l#ꛍzDA6l6l F&L rD%% 'lBtlGnEjd2+v$0(K.jyC{d0'3x'\bў~&"6)jc@-Oj*~"RN~lm~-6jdN2jKd'ܾw"*w6llGF'(nF~,wl\2䚖a~?eg4DaBbOxYE-)z``YID6,dkz\lC暢m&] .sbDz†"`mfzdnFyN-O0DbjCNV~oUFP*Ԛ-`\ҕ.Gj}nm'ZzmMg0@j&aݾd-߾$fg,v$BsnR z!xD zĮ( n0O08G @6DYٺ1l ܒc^׾VB hVY=[cp`6CBmj,ƺo °% ,'0o(FN +ksFR0~6hNm"vBъNm/$?${/גo~Tm~թrr02dN2UזG|'v'2.7fݨ>/w~d$:hc4`dpgw*N/onvsGB/! ?nc0n Nv fc4f&e?.dKfKcپ{ dwFw!8Gf!D>|=6;gǧGBl]ά='{??ݳ?8CSɛ2j{ӞӇ?(7=\=2_}{w{.7ODT{@8`t:P@\F(PD1XP#`9q`loٿf-]tfpf5]\IW$i3 XK/Z*yjցV FoXȢhm7o {oп7uEt`NO'?F/;]reQjZglD^F몕nZQ v'(Bʴ(R(Lٟ_>i&3SxCUOÃ3t >_l PNp <<C H;(,( 9]b<.:aKoF"iMh``2șf~də;镝2'Jj* *X +,+XSk.e31l,dw{ ,I>!=FȨͺ"-$Vh<Ͷ vU*nKJ&("r&5(b#{| eăI!u,:'[ jHy!8>sA7"sDD?]0&4h@ 34P80$iCnCwXaD#vƌ6FXFdg!E6YX"qJ;.if`R=rB`(2 ,syK(m3F BTCB,"O%3DM7+讁N9emTNH7JoM<h繥|=N򛖚 ;sduI ™i+&{\\K$@S|_ 7O硷(.dzmvEc8$lF> EZdΝJuKBB } Dbs#+AJQ0R"lb A!`Lv W!5|"A/$B3[d*߫z3_fEk lAD-y^ > mul$Ԡ E(lf&"բi)I.qkBl.]ňU"RO!)PWh@"+DNX ,CYCrFƙlucw F7n qStv] ]NGt5DBBM(w/wh%CPA#MT+[K["[9JN s ,X6ցqMФh ;]3kTb$N: CnTԢŢ.)S=F&6@ ge(DAX*VIq zá+`&KVG2 '3OF8pc)"cx Tއ@"=RdAT;r "+0ORDD W;%ֽr̬ڲ@*j؂ $Kkdp^LB%D@Y WӘa lk -/Ԇ5d0xfp xғ9R Zq ioxmaãG_K)P VHLh(]Wqxn$gBVMc:pKipt/bst)^/|KB6`dAЮ56!WV :^Ɋj;RCգ-j $@l1$[e%2,c 0n;shA,q0s,D3@ lbʖqv!cc 1#2"2d` -긋tBqdA v.7,&Lpi+jM^c6n- 䨌[Jn蠅P XaTؐ5pUr.| hpp*@x,**o /T)Y8@s4궐 0\g&HZGV D0ո-w[o_@c*bWp ^0 ^^aA+,$C_Jpjr0rG܅GDAy਌iT@Pb=*tD p %!yg..f# ILiۦ/JLlՃlI0m/ d f L`j4zK < -8 r4 88 :*HOdFM>ҍ2-e.Q*P 1/l/cJ=nD0BqlpzG1  2#3 r1S bǑq=LB B!5C4 e"ڱ6ɑ۱ Da7[Sz7w38S8w8ͱq(ުhB B# R#gnF$a+ PP~4c>I+62rr7cofjDih")-+ap֏[+JJq3BdAYdaDGS:RHLErE 0u m S0K0ka뮑$& "T2]p1Jo3oS%RsaALKt5}7Q7Ws5Q5Mߔ5NN4M78MS9ͱ9TJ#A{ED;U8GYNB[0q#< f@0¬Q3&0y qf [())/)2~[*qB*$D(LlDE;EFQ@f.g+\.50'p_QbtzP%s_(1u_q3t`JGS=BAL!t(L%aL)ccaaLb?a?b=v5ON;e4M5{4qVa3s(o˵\3Tt2aP6yxhr  D3 &?aTWhI@Y. V t jde3aBupC""5Du ADR:KtEEMF3-6]35[1/:qsוb60^kt1atg-s5aQgBpd+65 b!6e?v PdWw4xSNTO9_s7`.7zC֠3ҵEǍD :4qy4g+֐5n@専ܳM|22TV_(jjԓV #G޶ jknBqk*CC0$m"odSNT `{WFUrU.7hm8hsIi u^V`TIJa3v(p@xT Me[N4MsOyfJW rsHF7retQX:ͲDDCw#$Ɛ ah(ifj|UŶBs I aV/ib+(kVq$D Ϣ2*B-|C C3D{w9rEYYXlAֆ𐍑1Iw6`x4Yg4P_ CРd88788ø39`ugOךG8jrv W wD#r=˩y,,ϐS$RjF^ 3Hkl' 4IG#k.d([} 5xYm!I oKC7+{+Z X"UR٘ֆ:a1Кy @X2 2 @z3g7gECPw3ՃMfSs9yь79 3ymS?0:W]Y"CzDڨ1'Z.A[j ؑC"E3I//RrG b0SXt {˗|[C{X eak ZoR!{Zrw"3[Kh p hctr5]S- ( v4TaA8Ms8evaM g4 Y$t {('/5o\ϻy:Ń,V"Z)q<yl=?CJU=<ãfj ,DLLosqH[u -CYJ*qM"e\u"׏ B$z!.BO pK֠0ƇXPWI7B83/9O:a6YveX4 a[69g9zt!]Au " Q[h}i{VT%[ܾo;˽\"|I"m88;VT/vĵM7m'#e&h%i#:s "kdW֧Dty:/4"pA!zw\8r.o1w0] 3s s[f~x -=39]5P"3fѴO9Ny KI;oMQrٛ P|hh7"^Qap9*Y1o:۷7˷L8A%ذ}1zDV֣!%>~Ud 3"!UFv>sn[I[,I8lhߺeDZ5[ z5\.3AKW3/s p!5a#ҡ8•mVev cq4ʹI=靾c a4O6Ew_!8… u-0? wx1]9&KddI5Dz0Of 1fO8 } A T&2g@*: ,5 Cp" hBpCbe "qGqzPm4TQKppC㐚Fd^yҗ& e*SPJ-/l^"|H-ժ49NCTOޜ 7s R.sA*l%$VQda&AB.4%(C*,bRWU@w _͢2-\T$8sʑsd72Y{`6: v3m샩?Ɍgf% RGs`FST(S\5ac'; AUtAdLtS(t qe ЃXF)s ZwWChW\X3avV^f)f)ev)L!)|FbV( P A'sђ&wYhh7vЃE|Zd`^3t[ ]COOD?uA2{!3lz8z {Ґ{@HOzEOG3$zvz"A]AO 0BB 'D8p@1 #'D~wTCp ט E'p?ebXTA#?3 Tf@OuYfPue" %$B|26lGOPԘBǍC&/t 5 ؙ c A ] ,ΠwkSUwC) t i r;'=\JE v'> IWVptEW4R>e9BH>X>HQ)2kW)<9)لwHmw)ĢVog JxYp4KKy7V5DLd>6L}Q c^C!5M@t@4puiqwl w{'pBFD !"kPК6"׀(l}   y]`yp8&tRLt/32:a]` ߦj T@&qsYIt.h *YA'J 2 t;M!t:ZuY0HH[.>Awuu5 `X0 o@faZװEȡG+)f8 ?I[VmW3F(e%FHo=Yy{s^THaK0 eB&3@(23lz_{mꦲ Iq@ 9ll˘ a} W%Jc@"8 ~Hp}+m<4YAA~qpGv9,/ɰ/ڞ0湻aԠj ˰Jp:% _b&| (K1[I1 ;ك)t 8 (z'zQa1EH0 [gXpI±oA+;*X:@ t9G:GCQVAPh`hnbUoZPrdKY AD.1?|LLե!$PAkNllHl(lZlg{Hbq+lk{ɘwۧei}%yǖ&g}#.33zA>@A,ɕCdq X`pʺmi Ԁ  A> fR"tPпJ;)Lw ttK͌L YZ,)A ͜':++a KX'BL|;Q;AbASL89tP y¨T?"r~'Fu3sd7gKX߂>ݢZ"b Qj-L74X24 įlzil Ub+{(tʉ]LA#{jP{jlAm| Ɯ Jkkyw!U 1mפ ת+ACJ\=ȝmmܳC=,ٝ,% o"5 wQ}. t쭿tkگՌJ԰ "ɯ`  ^ Z$)\Ce Ѡfu%`}+;IjAjQ+f)u@H -!Y,x KKZT>\-KCү-UP0xҧ/0#ƽ <^nlXԈ {vdAʆrJ{wl㋩f]{ 6m ~lr}פkɑ [ɮɕ\wmwD׺b ʝɟb`nƌ( UDԼ^xˈ }NP J̭=άJ׫  {' `[&MHLGnu2edόXHa: |#+ I I**sXF: Vh)$ # chVIws%`-:9^ږ_aɩmj@p5B|E߼5_15_Xݹa yJ]a߮H1_#MA @e[q>eL(uΪeP; ˱A+|a 댡*}::u$+)195T<< O5PUcxxLxH[fIĻN>94kZ2izx ! ⴰŮlj(1tf<OT>ɯ:L֪QK? )TOC3V3c1h3h$Y4ФL$xG+ayЦ5p˿/pE.6*L$;a=%0g],RſT`HuLj [lM,V`Tab?gSfR`# l|-8ύ%sl*C*GD6 1U }Ar@TGJ6!$E|SLx b0&\P TBх0IP~B Bp!I$≰Cڴ< -.xۊ" $rƳD=' EqE]f`D8fF.hF`9{012-e )Q^d&.93G2 6IlƲh-0 h ZE`f!hM̆7=3r\ : " h"6C0 NX6K0hz5flcSzbќq9Md3[顶*YY^p)x= )\,&nlmަ;bgiYBeOw[vc¸+eL]m$Cmj׻T<]()2%6 R{ŗU}BB|$oӛ&CTUOR&\JjKm mz{\ů[ 19JL<3bXX#Z6z3b hZ)I?[#E RM p,D/) G}&V[[}P[OI;yx/|EyEߺBy1I?rm/6۶뢼H)-rGxdexq?u.{yݠ&=x{"S҃sЃQP7="@)z.0 *Qqڄpb#ѩ "csïtq'By(. z颈J@:ut# 9| #xӿeL P<F\FtDS;ǃˀ*)`2rۑ (TC i(16/,.l靱E#=lyْzâ+"? eFej4P5!0 0]:!`*Y 0eQ.Ⱦ!x!Êgi6?}>%ꖬPK Q sy0?|3y[ *l.1 g!kj{4B!5KLH0TX2tHy0J(CAl8<8%LJIAX(EpaظQp`˭HTGWTN㵥X;?,&ܢtaB1(ꁨ" 4L6فSЧ1a{zI[ o # N@)Vlwp)w)l(K؉R鳾cP1=0/h&˖`Gs?8ZG{GT,ggx+iǬ!#-CHH-9]8GYm#2gPAXѴ#2ɡ.iK؁ ix0F*L0m=&OrA7p4%$X%ʥ4Jܰp%Ksۈ&mA?2ђf(Dm30 4KɊ-KS#j)٭eˋ(2ȑ[Y'ifpC/,ȱQR-Qe2L.Z4Ef[` +F/Kid5L+º;ZOaR腃 Vh]ބ".]5BӡY%JTS*JxSUJUeOx ܥJܡ&=po<܄`mH]^jZ'w"JsBe$CQUgdB0'1z9Tިޫ1Ni#9Oh ΞMϙ*niRhN舮X-ae;8Ĺm NaiΞi*꒮:"Y86n6[nJmVV`G`V`338Y$ʽ.jd{f")Uk4z]T.,sLヰ63 RVm)?aN.8B-;"`xϔ-F38i"_챢"d>90eh_vA^AIJ){%嘚oNf~JԃA\=A@0L$;A[惨&Xe0hiu%srpB荋ZфT aO" ;K"'QI`aXwhhPU [-+"+0# 3`Ē)4J  bO^dv錎3)[u4me93"W9w55c_  BBn)yʂ#G#YS㢽.cF)"&#c"JN^|6R?e %",+Slt]Xbf*O桰Qu:&Kf8l(:Sae'n ?֫_V֝`[)e8UkYܬ*?$8ZitgbO]2qI|u?c.[ƃ`'o/W}YX v,8c`JZBEaq~$J(#am)!\$#\GOUFYp 3Aa}#c9hGx\?fBhMR/_0|€3)D'n/&9d1@ KEA% TOlڌ{^jC>m"KtzuD?B!TCc02T(GKpQLBҴL)g_-fIC%bEv$8(f=\pAW""PUl&zIJF}?X0uL=Db?L1?1"kVV o 9ZkxQXQyr#;K ;`4}\ ;\]v]1][7[ D}id;\G},6{P G zɜ`|?#" ppAh/˕I+Q!ȞV@{(h-你_:4gf s9I&CtYعK&$d@7A/$?6KAo)J6GFn|HZ*EW4TLl"MSg !OURDx”xD$KF#!G**t3 D58BSɠ2E-]&߂KCQW>'ʓ{jA3cղϸLT*?x\H[X/2EHmZe@Obq Z̈Q:?hۃD@+r>b:ѩ (L.c?WI6a!~ ȹ̅ԩv{@2kXCZ6JN8󵽑m ew;dzy衯pAFJ3׵'@ *'$oÛHLb0:YE'[x_JܚN`(R,CVVo,~|C4]ku`+$º}  *L QI~@7 0#B #dԁ핚A-2؀ ?- - L'\bJG}GlS6tG)ILtμ0`nl(UjHׂ`l&Tȴfa+~Km\qDblT懀蛥BVNPjD@$*h&D,koOB\joåf4D(ʲDVAp9˽?Ʉ?@HAgIEVlY\RWZRtK [!mt'V&9VV-۲(]i~F^=ω\(bg+Z H.MQTp[dŬZѮ&  ֹAy ib1+ A?pNi0qc"?ԱTi3Ya4_L@^~Ƈ2mG/Y`%^uWӱe02,QRgEξk3zL{:Xyb"9 -  I煊QˌĄejcR;C hluB?09Nx$hFIEMxYehdz"7A"y['^PD`da`T*vP_W?z$ӋH=x20:cA)G$?kbgM%Ƌp \Wl^L`!ƨxmZ  ׁ*ab/Sp.0/Dq I LjXqoe#a\u yi e6BQD?&-QF ZsTo(Ç T +Sp\;S ݳO O!p4}.kR]mE]r7[vS 9<_VA1c|`c N{Noy㏩T W0ͮk*B겤J:(*` pj4| <@ .4"`k'L{DON0\DB 1mYqEqDHYqF=a_X&O2bCP,zʦHZ̤4yO)*C s ,JV"$JDPL iE"h%LzhebcźN[4>8Ƞ4Ԡ=S1ӆ"nֈb![%cQH#QJD4ؗbĩLs9eeJni&B8v3Βl.2,k2018e"lsa>p *ʒ2lF 1P.hӆnk6j`҅ ȺS#4F&W^L9n=[%( ƽ&C0z#c/H:8Zq꾮"ݝ"@VSaUcp_~'3L_WN: B7Zt ݰBL*G-&:3DFP%3N҃ 2ZgQCf'_aӥC|z w-5DM#E^q1E+ a @@FbdgSF`|kh >&Le•m(112a.q4 Τ찂hSdr`3BdrP82A&FjT FJ2f4Z Td$J2XKE|xf9T &$[g9)a &ԥ ᑏ49߈q lqM8c6njmsSܔG. 'm90gr f`xV)pn[zfm1$"CqS'PrH)VoUZIcTA#0vڍ=ԧpIG7 ZW%-> [(!LD@,X(X'`Q2 ev-W,@4TwZ[^Ϭd\= cC +֊}K!P0>9cR(W, +?7 XڐtQQ XMc0#"EP2$dn[II}L)i_uBA[k*"~-UK bU$'R$#4M¬9I I!BPq%fp%3f 8:tM]fBN*YAW*ր O K* CH >3/2MN/*E`̐(׸?[ P_eUQO5lTWU ]f9 *P#@+\:ထsH\kmХ.ʼa)%I5wtCpҪf| R|0&S1U唂r5#P{HA.tZض V|XD 8?Hv Jũ"7.awNAegAQqeu=ˮih;[PXCfX]}IzbdVAZAC}e33Hމў$+Pa8\`>gsjLSa_$UsFP2)ck"c92"! =05ȫR'3bhV(9 Qg1En@n9gTI`B ep+y*gRHP|$wD00p+)@ׯ~yfG VK"$>D!Ķ5nI-|~ ئ}jvYACi Pf7ap4/m[H hMŲg!4e}^e'Tac!tJʖj>ET ߆Y&LZroFF)LCRK/]3/نB/K^0F p$@Y6# _i^Qz)@8O Q ̇*ETXh铦l,h:VElt4iH&. 8L%H&B!Ǥ"+J M"0Ԫx-aJ7#18F Nm;>D R \hm2#%lMnBLl/L:OR}RHm!NcF]n.]Z:FHz!ɒ/ޯ`۾+I2Zo|L6I2g/lXEB% ȤlHUHVELr,WaȋWNO@◂ `6-o(%6 u\b\d|ZdK_׬EAbnQ b:-QN 5$j|Dž $E"ReQnT > θ&V}E">heUInH 6s?3ɍoPUlː5LPN>jH5*dbYR k0N-0vg&L"w*E|s7 Mpz'[܃;$g#G LSʩtɅq1N+׬O !-;b l : V ̧(EL1 /,˖ʨL&YJ\IVVEUXElSx!XLtML#A4K9\RAHjt*q9VPl :*jI#/Ytz ];2-WHm p.m,J *2|0RAUl'Vb 2 gGDEQTSZ.BY~oN.[EsW!xΈX /kY&D\7ʇ7%vjAp[z0;<ɑ8 0:3>fD2"[e b 24@7 k|ʧ&a4U.*2"3PgDGt| LpC𷶬0=F@5xQV*'ɯJg=tL>hݕiϫK*jÔ>-TȪ0PD "\'.0Zb2-0[Ơ!,hRS}`U#'T"=)mmRSSbt"fEmO0&V0`*UQ4Ց&2Ulcg*lE/bPǪL&Yo?JWr Z M[lt}/y"^"9iyע9(^7bkqj>>PkZk(k+#\(Ea!HD2B76't$%\jc:ĊT~{v`r8(=|!4&LhB5bm=+ڡ?OMb)8mۙq53:ۿn/2c' ݒ/ْ "vS¥ hd #K;s =5<^}X[<(ʔ!3G5`P^ū@ @@+'y"`'(s(((tȚn=xUΕR$H!z/OR*bk .MRq(p(ͱ\A2-.(/ uPmL&HQ)k>UM90" 4#ט.@0{T0>6tˈ=&׻ܲ]O5Q]ٹ;?&M#4йQ]ڷۣ;#43g*03% /L㣉hza՟?#ޮBXf W-_>/  tdUAsAȊ#$bE""EH?@?V Y1m <8C1E" >H(‡4zHU"LZYd?ݺ~"蟙{֊V_ ӿx#?""$ 6e(B?B#D2)'+ ;wB nӘZco*B[J>+cܸ7)ȎnQFʿ\n #%t~Db=UVkC;=߇1*jj1]Um浛K}|,\rNBЖ a? VVty{|P\vVDQ`C"H /2`\$()渣/H?!h3r8&& 23(אM6zSآB^yV^yc/Ffj,FCr"s8r倧ucR$*WJ#B*K 5((]:Adic:$ꩧ.CEPI4$}`I>:pE&N8E&ps P8Tq[t%&kEU@@BXcYtn 1MYXZW"Vrpts%xnUd?tCP~͉C]Uh BKnsR|Po_?N5b!T9ao Wii{rxZ+%1'0UEs0D? ֲs-+ڃnPmaCMJ)x8 @c HFtt 2Ϯ2?D% zrƤa5p! (Lla9p@CN@lBbM؄'ф"삊LZCd:׭"R+(?K` E M~3`  &,KM@!X`J)g8lb7i1v 3[G366 Xcu!bEvR-,3&r)* \vrY@`T TzWRRXxFdS˰f 3ST>T1e8!}vAè7x SHUTG0'd@waAgeyF$VWèfLUwN(@ ?9p"8YH|,ṟYIA6vc[5k!beiAi@<ɐ 6zK! oL Lr9;!9&f;C:cxM4B"p #X8K7 "٣bsQ|pJS(dX'?-!Hƅ\¤D9rHVރaE"3Ep ЂHvRdդ0&gxVgl1p|piAhh6:@lC 6eXAcz3vD!a&WG,9[tX@4!K xyt$.2'CB 7VjDhWIVM Ihu pzPW4#)`%b6lbݣgQ((i,[[\g+Zs97u7+ u78`EYTM5v9RmdU%b|> q}52 ŎBf0\P-AQf=Wxuڵz-l4ika\@ P > kp0N)"o#!:0!K?# BG%CD9g$pD\S<'ʡOՠC_ӂr"'7Bi'mpagfuۤKv)N-<@<6EET2(|̓'bH+)Z$72bX$0bm+cv{ysWkepzG1i~EX9Ut Ǖs?kЮ:@ʉjQjXDɢ{q/rB"PڙXVߝ@71 3 Ym=TC`=zVVt'(6l`HRH% @/b6Y0`@%#gNּx5b~x5^sjH&!^`22SU"X6Ld^dBnՎu9BE _VL̻_&B`A !IEr9&WDrg>ߢvJ{?0$#V>A\!qTA_*͛}ժ~!$Dh1$ ̱]DDhG"ZIġX(~s!HV>VJ" lQ * R`D'PDK@. >0<0 4 A(CAJ# *قK$Is45O|;aF=aO*2PB c02T`$0i A<۬hV0?ܳ= {gHW[!8B^ cȊf=$<@ZNB![ Gf vܡrz] )^K^`)|=0 "r-"ٸ6L.j+c:@ߐH&8,1.8& 4Mi6iCE~-h̸a7߀Cb|5U3HVѺ[IV<'蛯ƒ1oH|Kd >LAD/-,qbu)@?}=rZ-| 4BDž1pu 5<48I9H#$ҊnXAY˲<,~#ɵP-n X T t\=@)|.w!(D9?P _SySBЗA/P 旎)Y FfD-^ Aq0җ_Q_(#?H01rHR͔&6YehHLhG;@RmYil7T! :JwW- $B`t+ yS %&Bҟ`AYrȎЍpuSBA vdœ\v) P^G;yvEqpP *#u9epCP&7M]PD:Σ\ Aź|L_`Q-$D|A%ȥ nX $yHRt BA+\Mg I$D%'d0ަlmLb-mNX@:5(Nla.y`rfү~)5cA1 [N8Z-G>b1OHZ a-a[!29 ș2!І&ɡՁޮd&5A07(JlY5ZF -*@.>6 m.3Ps5/cFbi̐2`b+>X~H?kg$V&mKYMehUӟTPld*Rx4,=:) CӪl@vꭸ+,OG\q Q  "3߄YXsr3Ԣ,y oy'&^T'QX*Uj!8z丙'+"˚Z0ӚV\QВKW%[0 X&]BPE׶1/vO/Y엳jEoc,ۋ#.co1&*PI$B!4/B0OhlK0h8Y0&m*d+B-,`DP̃ 1^ 47dq31!A3/R(>ۑBLr;?DvRJ[XA.[*dLRݜ  EH;6IݩECHMJ\y+[ZD,l0eY(h=pkR R ʃ0vQǦh"QǨ)R,q>( z AHzH &$Fc.b$Q‘.8߈P9T8 0]#=]!mv:R*v]1% dVA9s/0 R0/Dm؋O+(v @PX,B~Gů, >~(p@V ɲHpŖB(PA9,*AG,: ?;q_'MhMTy?'(ReA8Fs3 ,$YC.8&ZYQ%e*v:*.8b@YQ 82Cع9U=󜹝c4{_tMMdOz-̄x<.SAH.RP0\RQI#F(o5FnF!"PyПh`Pz,yLMzT"a.7Vp(v(*:l:61Kr 2c\^9!!yI9ݶ9IT "{ep!D,xre0u09A$p %%rʄ0 iL I:%9Ʉr\'BU^eVK9ԲU'1!vLBܐ M0I)BD H,DuDt*bG; 9,("X*AAk2DS_&i*:UF>aWvgm%Ơ}MњHa)`.˲ 9)`ؽ P؞nV۫0P%Z"X,xD}^P(Zм-Ɂ F䛐*b(ސ 3Ce42i Qy5k18ل έTfTX8We#'8I,ac0ӏ 1sAUl' >RA`.΃J ADAdLLGyhݚf8dP=3rݩ pШpݩ;Ok/E1mQiJrI+HfLO * H`dDXF Oڀ j :a\#6\#1ӕ`(vV(W8Y"smkA6뉓n;n&IM0tUW`6΂ӍčBL4P]50s?**Ţ562$c'=y;gmKBUUYfI~8Q2/fۀЙ@so~; Lv%r92%B3*ED)I%*f9_:[%d]6w b( =@}f`Z~ncU `^`H "V|OMS q' !5>! Y& (bÊhߊ+)qib)6ga |Dwtn+6"Ot2[9Y9.F/FmvteWvĞTG|ʏ.x[i)p0Hl SHC'>&Ρ8$u]2CV@Ns ` H7=fUU"D/„Ç a0̗Upp\ЏU$$#1E iGGD a $HbX[={"P0R!a#(\#D)k6,eâ5/ԧO궴i+t[- s? jqѢA{a?~/HUBꁣ剪WG5ׯ[(VX160q*>o?[D1^ŚLd//BlH|0 A+=0EHaC[!lB?4 Âj N‡LBX ~F.c*0H DhS"b0 +H#*IT@)\dcCt?88c$Cap$ZbI؉j|\Q&]ta -F(DvE8+s I.8l3# A |$Cj[9kUND&R%L!I0hacC$@h@DAJmDCfOPGYqSOAUWUEDbye{$ { 'LB{ K? 7s7 Uk ]uөvލwF鑇L_}L?DyJHX kN\NB<83 "%{arE(faO>0+(#8iK8tn ]l0X"-T#F¡g&*!.j DE3]I銜'>a#H0Ljܥ)EPQJWArA V"XUXAA,_tIJ"deEbYcdK[6?h$HE, "V"%%)A Zc4(6D#5 kQ טSTm &mc ^U<! ԅ/ eփQG eXNp+W1I3A&Ar"&]r7Ms]I͎uDD!tb}@2@u=Vc@B{S^LPBT&$`R)'UH䦂 t2R GMKK,XS]cx*LXa L1RD:tptD4(D!\T(O8rp?|tf FDJUHچp֑P#HO"a MV  l-^yX/- y¨.1a_ATv8lWUZE*)K,`2D0C2d" 0Ц6ŀ19Tr8x? Kn2͙&b5|:?6 pSM7jD^,ew,Ϝ9-8 E.l8!k gS@\⦗ pJF'q~OLsqK]4S5 6J> m5}?S PX׿L g\CpаM iM$t@]8̻ !}C#ՠyڰ.mAKS AHA6UꠞTqQWZ.VU",}9s{e0#{VN8&u^pC4V^LB&.nԓ0';=9,[JjP-! +T e=PQ,呹MDp ($%Ms\sDWty`te׬??`w ڄ@1ܼWk4Q]L|Um@XB  kϝˍLh`8,.П!)I'0?8Ř DB(L P?P5ڙS IȄ#@2@xGz fB~Z4Zu/Jx `Gn[]2 SR$VbaE `K$l$MF?\ O)vY^Xvtu8ڀ dD k`a!$SPY ZQ^\%pN pHCyO6`DUnԴZo)d XNj'ZDHc =b=oec?FdF&c(,䨰1j}kYh Clw0hԠeILgv3J~X-W,0UXqEW$1$Dr-Gi׼tEcjbmbmՒ wuO1Uz,XOOKL70LS$FPfou6NԇPZeHm\Im"hD2)VOtD§ϧXk桉DLMdM QsH|޶4Qo3 --/.8?wzQuoARlJeEOi/`DC{wLDo\sʴƾ4ћ`<#Vzr 7lGNsoEpFkjh0G,.dŃ"\vVuB챽ceDX Z|h2(OK?@ 8s)W&_.SGm\ 8 cVp{EOX82 ÐOo8 #`dJ2b$j }~-5"ic'ӧ {]^XU^)*RILOC))or)Nklʹ܈y!lg60MeX/3pmKovSV6$ Գ|PJ) ;w=vs@(tl`Mv?I^ REf،jE+p}7=J=+tz>}lLmq@ǀgQ~o0'xA UpdvrQacM #ѸJ[6k@M& GrR+5&OvSoSҍc-oQ%ÄGK;IK Qvs gVLU3\8FRdWĸ[>1ySc۶*>+\@ď} B*DȨbӹ@v,Xϣ(p!ɰLT QD:; 42#=.|_{0j(ѕҿVZ3P<&”HD?",hUA-.osٲRKL} y*`0`ū+d2yLT+[.TE c10uCHp֍Dnx=FU0a9s3fX WAg 8cD|B/YX0 &t}Fb@(΋PZ<Db姟V "BVS$OTІW$mBFS( &J{+H Ib4@"D $ Ec|Q#'L'՜/@73NbVT(E9g?4ϕ-OBT>T8hhJ@bQ##P HL9)BA4Q—V]~<㨲ΩV᭶~ȪB-4B 8':$! / se ubW+Lz *b/)4㣋-4Bre͵d6$1v-1D(n渃0`*F>ȎA.9 !"rX<r= 2h仯 B\G8C0ړ3Yi*f%V@ddh>Q(WOl1E_"yGYeL _L%T(OJ%+3nar$$C`s3C|?Aѳ@eQF-tERI K2L [|HǕ5JE#1 kݣ9[³1'$fv A*VYCV-phoY.#1 A|pL!)AZ0 :;y nstb"Npz1$;,Yx;JPZGe`Dr2\r$YFSLBP@ZB  ?\{<g"Ys!! ME&a" 䊬ptf3C~OFv#IFQo>;@J GDٞ'5gD&KQE9'O!4B7r!& ,u 'Aݮv]EGoxKe!H#t> aBC 45P- J2¢J҈I!O>edVE@c#xYT{X ̰VW_Rv?gA,j) [ ]%NX%3A >d K ABi+A  U Rb cl1% 7Ne*qh3$:ƣ"4B,s#Țxg99(u=aڕx6 PG&%)TH8>B개m14'A뗲 !V,?'4H8Iw?~eDP.>zRܣ$$n>mԸ=L{'/ i.\d v 89v] 8q)fOR@ZOEPOM^$%_*k`>d ZP$lU J?C<,ge2+q-х N&2J4SӴHk,ciBZ#tZ.eMn걫o*8hLg:̐Ia+ r $Uϖr3"+7эcݕuN! "S 6' *AN53P*ZtҀ r$OQB#"yHM.T'9dTgTR)qrteSEG&$a SV.N Rny5;mn +1J Bi6)9?ŏl"ISgn3ݒ#$OTµFO뚫DhDJgA6fֲ[$C;c.xr@ 2!+_HBM ؏8hjU)&fMl X#$5B5y*`Nx$q9HXysW5 zn#Vp!+Jجe8sd*0M$9Pnd' j8O~F)>RB%YW{b#81e) ёynv65 u|QKn3!at}ğe=BH)_#$I2Y O;NwW?%]H.wm5}Ȭ`6-b%%_8:[^:-0n%JD`r#Y!5b,ph:D@Aɔ:(&ld*βdrc)jH&dI$H o(N䨵<O# Hbd|F+AlI|Efd"OAJ+ #J2ϝ 2JzfNg\HZoobM:GG(ߍ!v LNx قG '+OhqvEO ^٘M!΍ܭo?֐h@$ Ф<1#鋾̣&&l#bÞZʂ, ht-Dj g6_cC.5c z6`~D`+c>D~bD` 7\0"J 9&i<*<ПnRd& $TIh=q 2 nF)pnբPog I:-Ln>-V<.*=oNM!li2%Zq|kSPG.ƎR˷|KIHGrOX` K)Kd'o@2,2~﨤@h=J(6@(جQs0Nmj yxcn,e̢ ¦&@-bazJb(G)IX5A!bt#Y*Xdja"",7@7(Ȯd oo%=N&A$JFd% NE O/*=pS~&>C1ѼUnf:nT:JGBo&1@JS4ž-/M+H @>ךDCKNMydLy1 G B M<3JڢOqutOq1|w4qۖ`2ϫ܈GROƭ Sg2'1#0/~>αSoJߦjpI\EV@62j;jv <'P*"(:0'>CY5 sTG$NqJH'Hdt>iG L`6|0Tך4oc16q!`2܂/v3 3͙3TOO~g BjӋ6Q "RکG拓 !Jp@¨dId_u$Ckxjj9g% ,e|b%7>+z7,XFa7*Y1D":3v"'dbF~b;X z`bh e#^p&-,Ar&ou|(m%c0v  )aE~/>@ՎFOֱ=n*7 $pdՄpGVfMrHg3󜆎FH(j@gD+q՜!I{R|n+cS9kku``lIPPsmUQSna(Sx  R bSWyP5 +N.-Lo=*_yg$bAdB\T?p%Cb6?/'‘v{"$^VrZx9Xa,Ŕ ʏoVmU+<5>J`ج`YS*Q42`m/ @ǰbUiΉp]H渁[O@g"c]IhKĕIdGvrsmRƄ; fDJSHS^M+C3 jVNM^ RHwvmI4x8Nv2w`m% ,j8!/$ wN'qzHD(@GdWU-kH`&9/Bf|Umc%nWb.&XcΌ&|%Bw[CCBXRDJڵʰ)R"^G_6OZz1maۆQ2)s3 x{ |ڛu4ՌUiXO4>gK@H=RE|qQsi¤9VSBZaTCʆn|Vв.MZ*}bBX<I'TbJ,İU&*KЏ+ + :!k/*`CG] -4y NBԖT .Hqi|YV蒾612o+Mf * Zٚ.tGNx~j_-5\d]ܙ OlE$EQi{Z [xN*nm 'Si5Rը\n.!~!jG+u<#A)у&sU:W[^ qƧ>&l5z"CcFtc% [#,m^#U݌I&= y%e*"bx (V += 7BǰR9QUgaMQIMJOXsc2fM%;փ]kOI8'HM9q@ݎ!s ja-N1`^g9aOs1%mmgX RQQߣ'n{׀ONp bEۈgaJ@WJƏxfn@1#$BNJL_9rXg`f 4s0(9T" (FYoa `%VVȌfb|Qȓ1}p*+F`2)3Ǣ "b`Ѣun]u?GJ8EP8*TSan{۠B4Ki'UiSYjUY~3VDZwJud]uݕUt`=hKFDyhE֢,f{duUu[k܉w"i lvnLہ`1r!`\r('oZnu/wӹq[ 60iW~g~ b?'_b|&b  :2  a%$xYNkt&)d=_`(FbC]$~Ŗ]oUn6ܩe [IeZb]Zgd&$曆߱9*U}*Xf3S7&tO螇^iO d(# 4j}JV :7݋&I%l(Y[  /DH^aKӥ`E? ;X`B[J8&ƃu1LOh32< zRj(D(A' P $1HT t MCHSы/&-HKZ!Eds#1pfl@A,%8`Y ]H2= sx\le7]a ITA)TAGUAv 1B"Hr MG3󛟴Z$#:z+">%m6:MtQa$TTCQq)I\JYzi~E*3L:urSA6'as .KꕳIHo W%%As|5 3e(]gN Rλ1ZC2fZh Tb>jU&2̚Bзͥ;f/z(Dω7 79&;ݩKp3' r9Ht<LG8#GEQPE-H>{,*RA ڡ YKajvEaZĘ2Ax¬1cgE7lK$*aXVJjU*4Uҕ\shD et3'Sr49G# 5,dfh)XHUZ?WUW &D br/4EJ)g_-e.nژ5bʄ2B($,F?8Ͽc~G|!C7|Si;ـ6(x.a\G1Qb8Žc-la M작C QN}\r' CET'$͈(c5!m Aؘk|1Bvd uʜy.>Imb}RYhV=[b;Ŋt_ T&f]wFrYI%1}I#Și:M4&)n{s 0լZ63<^txGi6 Cڟ|Fd T YzʓbdelLZќL²xU4 O$ p(Dg_p$@!P:!xq6fD6!D7r(D VR <&4:sSTd " =UDEaUbdD'5+"T\DF""kCD5-HFQ-Ab-6^uf6uqWmA.C?sAeQA X C.ץ|k;FYw\jgw.rGY'z&7#}paYsL}g*}"h+&}a"] yka$=qn]Lu]#Nk~;NAm>s,DfɂP_E"< D H1ăb})A pD|a]a}lX~s%pȠZ{'8~~wRءBޱ&25T4\!'8c\42She" c>ccHs23TQr94%4/E0e+2TG4Złp1#aCtu$+1-A-2-TƘ$e-|HXi)j 0((!9y"*)c7:1(й2:ۈ뇍~Y{p(׸~6`aqv`9/PCT/c0SG#4ceI1D6UcE8UTMDr7s8743F"/҂ IkVT5UckCv!0tpՃJkazfm1&k(;ƒUt;LWM.X@6;qW7J-z\QTK<hevn*jm*>▶XfsNvPN =P}G=c7y;ȘLy Ȏ[c*j= {u {ɩz@)bJu~1(mWp#G!1 aC&\uE CS#xeBLd ?3m2/P5#c""/!hMC|!2,,\K⢱{Uo m1(;,Hwu$~66ް#`H(j]x3lzW3{æOk#=xD*2]pӠGrKՇqzw$=}#z1M P]MM;#oq(ŎxI2*tZp |Kǃ[ Pוz+Q?K0__ׅm [!gpgp~Jeݘ˻Ljcw1 *&CEIÈ2">VU bFs 2iܞr-Sϝ0 ^kfG\5<8+kQ #z٘#|1zZlWfzz?tx?j(I䥊֧UN% 丙ɗzɹp:)i !-AopDv>˳\jD=Gt4>[B#3&fg6scد@9/755k\b=*A|!]+n-:Q'.6=IJ.k&@+s."37im+ d(6lR%0eRe={ó[N s2)]2Lx@5b 3P%[PRJ۷/V5arZ r55pj@ ׵O52yeCEĮ!<[$T=Hu+[4L;u۝{hY*[?,ǁد_Gv袩@8ӗ'ϼ!t' CŨn<@N|PYJ48.8)vPQFaGьrXdH# NH8a-'<# Dvܑr8N <#.!,0#Vư·( $$ C~B 5"DD!8!QH9ɤH b%2CSHS>x brbju֧duU%~)՟NB_m % )Y_jJKJk-k[^xA ]%뫰0 [ά2/h@@_D[l47fʵM5RCXb9Xm^F.9Cv+:Ķ?5|Mfy@ :(!ɫ9=҃p=96^ bMi6nPC ). {njDRD??9UĄ#:p젂(R(aP+i<j0ۆ1>xQ!SG"?[o]B#&J+Xь$5)L2 ` Ab0=|\t181'Atz2ci-an%x(`-mB Dl LZ-g@-|+3 ӕsEP]eNW`%K+c~Gc\ VaSQqt7Í4Ƅg[nCnu^kHuc1;HLFѬ Kzpboҁ@h@[Z̶I>fBڼH>\#5%P7Ɗ1 z3RN(D:C08-\U$I tmS?P9;ӍP!Na'$$u@A%"K=FcIޢL3!VB.!HCE$nhx YQMj+/ Q@K+&1 $b' F-*8P  [r-%%IZ\ha(F_GAYrTBЄny ,f6 KS|̧6P&Q0G$b3;N]"wX=RCU.K1P3u@PЙT6֑lC+]*U`|Gq"&jXE)t(D=4qS\e9 I'HA%!7nNt#B5"u'DT$/](I&候ȁ8U$#VP \G$"p$^j4OD| cJg%<=[+w%ŕ O6)!`\"1@+, _Rpnq X((J^ΕvYqӬ2>kVx٘pl,&7Xq2a #PGNXD MLT-"ǜ(.gMzE.M ̓ Y[(CRU[f>v- i1tnc#l¨Eny856Ii@\eU08. q-%Е wd:d JD q($l}?m5'$F3 dV\Dh.&!^ߝ9 W,[~M!0KI?o žUXRe>O2K^%@p =Ri%prsm0,wJgUd[rYÖFݲijzrc$XroNs#)y*3εC422 D].AʖC,Bsdj5Ց{%[ICRh Zg?yvCe 8vHE!,'Ē/ִ# SE-DjC^P Tpk-7U !.2R\<ٚO0+r({ v9I)OaO$&4 ߬|YOQ \?$xI%( 938XrpxH}QB 00I!x140˨x L*H!j3 L#XmI+D3#9鲽y!ɏ*"7z Y#;=b=R4:њI"¬YOJ$Sr;A;F&9%WAJ'J0LR٤Ob {X4aԡ[s{5GWۮ@DA .0=ɭSH 9@6ֹkKaJL'q'^|[>dvj YPtZtb죟tJ~( K( Rp9rǷаjoYی"cȊ z9|H@2$ A19(q*"L3id ؛RYÎq \=2»jɲ -);+y:ӚJB@R%(J&43>3T&I/Dy4;2̋DK̫DB/[D.>a(C!=8RPYUlĈQۓ. ؃]śc)C h,MF`$Fu@cAþ,0G1H 0p9TS)91{Y h茏s΢ ˀ@ԌNG~+O}T@H(l}!&S%+H\萣T Y"+KAԺ"-—)ܑ8d$C(ĉÛqh>1yqC Ղ$$a+C)Q$=@>Ѧ .ۼ*PpA.C&O KHXD1A.!0nj2EpL'&D{ zBAh b>ZaPvDtd/اG D%7H쌐ڋ` N2Uz$8rN|Ղ 88 oIoь Ϻ8 ^ vD{lĊ2 @x ^!G1H"ЛYHl5B(<:qM:=H #e BE;4%šJ%XI$ UT Iz9iH;#!Za S&SC7a15C ̼(Hl I Ll=A=캝X0oRR\%9i@uR'x 'xXɍjM07ЋpDQݖ# z٠ɭK0͘t jb^Gʥ mm[ejIA?3Vz$ W6bmI6(4488Š]tIrF˃ʢ'³#$D;XN;(Mĉe(ô u]G2 d(Y&т%x^(_R"Yb#Z`_|_vbvz/e Cl\~rlרVt9: d\ |YbU=1Xcea%)hi 5d]ϦV0ꃫ٨ڨ%sIsEd:M^sk ݰ;,k~=ʪѠ|BJ:ㄪXށ^_l!,arH> 0a")-Z6,Q4ncK&S'ݮ S2`bj5\RK݂;s0Ei`C<%1ZfRj.j&g'ZqcdMocD7hM47Thg԰E`>p3ͱwo>ـ[~t %wd1wh} TVQuj q7Ez7xjj jjbMHnB }2X&a8'ejNޕs͊f5$ '$)l˂Ë N%:]tN;šl\CkN M_aGի>ʃ$٬lxi޵C3tA[QBj&ޑcai8YDp%%oKUoKםg{?8;0%rK/o]4 ]GQn%nGt Yv#N wspJ]wP'0Է ۨС {p/.8wqcc{ |Vjwb(sl狒i~k*GiޫÿC'fI%4Gpɒ<A#qZ$G?= G40NjIJ-.qLCRcyT'3R E<ɉvu9r΢v8dZ~%qAQ:n",%JtA *- cdC?HQe t _# h"hTGc A""vlجcU6cIIZl[$} JeQJ,ʁ?rsysx!X:c!@!0!y`y%߁ r DbH 8" lfÄfAL8`/أ=V? @dEAB$b1HؤkM*)>BOF5c`HWBdБ $ВKA"PA tIiC -dB %8E>裇dRIgQGթViz p;yKIi-?|U|3aũV-eQ8dJi,"pOf\uuWd B"tiG5ITHm4Q5Xuk?ưG /葀vI[ikD$ D.=Z~eiGY.Q~i mFhP $b&'Hd@EzF.*T/A GU}PB(L*NY~$d5ێB4ZˉU%JiyEI^t,J^ūߘ\Jm^p_$V*JА<9"$#f@z!xA?HPE0`1Xf01,ccr(To>ilh8!D@".{Dq^G -`!D>m;, ?tF}#C!glPs5-o1D" Ats4($/6i;:MJ$DH 9"H\'gQNMWjCD7# $:_!HaDGۍv^H9wʗx=pyb5-͏"|IN`*ov$Yb&`g= ?`LVJ򾴬'VXgEE*LPh+K$J$R@@1:O1AO =uL`F';_!D4 ye 1f( L Q9 s@p &$ e%s@*ċV́DYD NdDA;y- m+фGn#&#mұiуB!mDڤ 9mlG(m%#SIִJGQFrmX;JY",m9'?HP QDP;:DR3YkG,y>`*Ļټ& quW'Z^`Qw%J5-F|5BO,E&KZ,d0ӊIXV&ZTVJwb4˃ecy(9IA"һt ѳ'O!9飦V:ڏhzl!iYAei'GvFHoM3o)jTKHJ)Hm.m7Y.ٵ4Hd;&.Uέ4];A5ms}α PLESTo8krBoTZSz,!x -&0'&>e)+a< ~BP!YpM)js!iH;"A"?G"2ycƞaețDVrx$ ?^Lwe-(xU gvCG|0>x+ಹH @$Hb 泀 گkcVKMGcd[HM2OsY)A(b&iˑ@ԑez:Uՠ \jm{"ID*q?$aR^$Zr<4/a$ '5#;s%Ʒ|-k.0 \`P>gkw'^{oO ?hahπ)YE^`$X]EBJ5\e4"hK <ƇblʅƊQB`tPKM,BtM`zMK1Bh4ݑ3< x ,?LtMdX lP{ A&@D,$qt]1G$(%?(@ aʰݛG՛LơLUqUX @VI@TՐD&9"fIM^zh|% & p"'Eio H)@D)d Ԗebhn""+,Mx!xWnzW7[o_ 7cop r_NPxpvXOJ@AOEǙ'4 yB1ÁKU f0xtBAKO 8A @_0FD0S?ϦH35xPL2@M}D Y ܇֤P&GPPAW v*TUR̗mF=eTڝQʼCޅe!jT y NMhtЌ % HiZV~(&@,feȜpeZjP eRNYf) f^hf*-ZVih"9+J*l2f3f3nꦚ5_ou۸ao*o 70sG%KSv"(]wCcTgµï˰ ' SC PL>gZF2X3%hR@D,A c0MŅ~QaKg|(#ThՕr*U(-q4~YVٕLAmnFqŁ5S6eeVA,{Rx`f ͱGd9MѾQ L͘ DHgȚVHč ȧ9^(mTeB ` ,Zڣݺ֗צn㨒*z#q&n:q:.*kIp2N*6p|j;SOX=z\~gy 7UA麅[pAbZ@E>€dEzF @T$I$bvd G.h\ B I-vY Ia(Q*i/EeX%Y [S˲@X5\N@,ج\R0^@^A7tC+tg "ͬ)ݰ-DU-LhxZpNnkf*[1f"j^>*nZ&6c[޲䦹e#562qv㺱j+}*Wʬ[|`VDS(w%DxU+dE.ŇE$'` _FH:(d؜EC gt/SCMJl:UUͨ-i 9@SΡA\@L@X^s7bźaN}dYa¡ ݅fR] Dp7X gPY@+ 2DբHE-[&ɩ|V6_I-I1h":xyL&fj䖧P1 䖪H8 RqWۖY\Ek 0=cf#D0W']<4A%gdh&JUuάEE] G hFyCP/d@CCD@vekԠqPf0Ush/ɰo3_ikȸّkfHLU@ ]l NS{@X^D b ё@0Oȥx"x A Kw XYAy q ݌&^UѩȜsX&*?z@)g-n^ *ӭhcx)43[f#nn.@),ex*t[ϸucO.MqJQU'Y#Q̊1K|~5X $AWs+P1D2ƵT9KfYTDBEʬ҄\_2c;dEFdі-oF T\P g gdRqh:kh%UՏ(eLT6USC7p7! Wnۅ@QETe٬@?0AK}@+Bް {ʹ<&dɈaHbdkŭ^?Jcdwi/PMk13w,JP+86=㦪8yEF6T㸌f8VnA!gz6pʊE[jܭ=>F}J6p@ĂNQ\.8 x\u\hH0Ml`IhAqEoC@cHc^lFdAF   ufXHU()GvVlߔRߡ;%߅U9@?0pS2e{ xomeV&5Cl{ V(H K [w Ib| ,-{_mV#Z#yZ{'a *I_kNI|7*7+8#O˿ĿR $< 8ĉ /&1"Œ#9HR㉉\R`Ɨ/U\Ys s >wZ`hӴA4 &rTD:uq諣߾+ٿ:Ցɿ$?NY]]$CCT0 HӦl̔i+f &4 d"81APd>V>+>hQȁH$q=#=l02ĉBp`Bx̦,_&Ⲕ (˂R2 P  Md ThH4KY(M9M<\h0sRxRhI%NHRNω*T@ݨ %*]աJ[HT{P՚\ v"/i; pOaপ4 Θ <l4*%*5,_2Wz6 k,?&;CE;LeϺtY›~p񴛫h!~T@ j&`o?nj{Jz<`C$""ъuI4H"?Cpa\su&AQW1}M3NlS?}}BP; :RJH윴͏䘾àJ/D@ԍR2Td2|ȧI~ W[2~x])؉z:Σ0W;VS<iDR-r+uV ,/)qug &e-_k &-P cX(%A@5Ka S MYUԤc#V66 7EŁ0-ƿ X T@#O0 }5=v8~ qB8QE. h U(A k.N7&{ D Q lB&SG:Rܱluc基'}Z4KYw؂ [vZM P 8vr?f;$K7劬쀇{)w,FtApEQk D;c^ ^vJ ݇\&:YSf"{<%J8TM67no8АDNyr9 )%%D&Xf@8Pl{dDN@lwhꕔח׬H.*"?qFE/zz9 )uT Ȥ踋]QyH.Ix&|[%vv̤&O(.P g%̝ 8T4"NRJև8L"! *!:&g Wl|2Thb}H&|')@*XR(n):(]e%A:\/ V`%>DʬCC/ Ǝj%(0j8EjJ`82_.*55-d8l% > >Z숄plc"LM(̱Ƴ6kd/ ;أ3;p 6)F?hPKnA?amb%@ n̈́J`I@$1&!F"1s`"OdtIGzdt>B$omڄuduPgdQn*{k4Ŝ4E)O(S&%X.DeB0ȧFAeU#*& in((r6l%V2~I준쇤(YzLNTf1Zh*z(*98>zbA0ņ\f.$P 2  @:΅i \OA(@ZREeA0mB2V%)1:8z78#jnfjN d:& pK3`&e Z=V VqjXأl n? Pi%p =kL%@ f nVL#D^ dzoHto^^n4ڌIlt<ĄtК vd3ěf'zO*pO{O*Nz"I>SjpVj"!tRPjN#M%G|tlVj*@\:eH)nYhp0>&bȤ];&+@8!a8!L Lݣ {J @<V ]-9Z3eRZ(l Ȩ1,*f" * 1E6D<.:L :"9Zo".>2@fPbfhOh#Wj3lf8o8$x'Bfْu4s"Jc7/Ir`AS ȱ#I@DoQqMPu_`U.Ɖ&KO։Lz !Rf#&2DDPKDh|>Ekr'FbbV<% `E~h"fL)H'n$1AH 3%8]t&*7-Ji∄g4-ͲlŶ4.& @e6ْ;QVN Ba,*S#>LEUL=M=(m#O97o"of^XmwVw=pkx8ɦ@B2ol9U+Yqw؆OR)maL=C: ոڏ s KDUBĻHosD `Otv}ATR x*n~6ݩ og :#'L#i"W|"D=,#|*&W6'W$j2Kf0%nd%v&w~XLj3T'JH.c"$(`zjӀ&*: ߰NӸVLiM4jh%h9O96.#.TS593Ol"QK^CWqSuH&"WqlXunl, YFnsOIiFn4ّW)h30J=o3> zs ׄ@Ot|dg"KIM|ǝ N{*vO(bb{bc/Yp"5WaTN#C~? \2 9w81I#u&CZ V52dFǼ7tJ4[dÕ2gJKD9qO&BP='I.;TVE-;T@9#x)(^"Rw_qy0։Nt63ǂ'Qj0h::1C3:WMMMԄX;Tg4x"4aN۶ihmAW5Ys+@m։xnCR-o >`w<^xG>aVDW`w?߅b F F6@ @ޱ,s`-VEHǓP2ؤK2 G",*@X{T?(Fp@n'kIxwD<$?=tDAT@JQC1PN:B&]L$jܤtSJ;NڤԮqXUjUaTm%YP,ToU}%G)6XXIfSaeYVe`YEURO5Sba&e)vg+i6j3R 4@EdEip [ \r1s]dM,A]LxjGTއ%y3W~J=aE?E#}!p"Y`%Ew rݵ b"rM9|gje~6&#1LeZ~Or}$@.Y$Z%X и7gE1:ލ;ปh©'4=oy~N0'͒>TC'.* @i]T f/ PLj%,\X d U֤!6i!ŀѦyHC`?l?v1 A"dx`ӘD]D䀹U5 p k b+UGiUMjB/%XbZND-nJZ-\E&웋_$?9,` Vxƀ1(o5WR.}/$MiNs3 QRkx! t*nL8 Ӝ AL(X<ܘ5"=Q{wŝ =,zCH<z#Ɯ)EE hԀD!]Dkwh"ĩAr>"=AXdֽg[cA4RF$urm]'c2JPbFF%샧ZIݜN9@)wlCn(!HTۊNuY `Ą #LZpS&l^Ld*ʝ1Iֳ< *Kʲ2P꓋U"r*u!]8ssS+1ҥ`?FlS.>P/e.d05)Nm{6X$q*@c)Kps©AH; i<5&mM 3!G>4"z\F)Kv;;DUzO% Qe?@!?FPXV8le =r7fMnoꬖ8MMlЄ%ҕm,UJt+vv&B&7Rt̊HJ)6` T TAzw3i?E=AdR]M; -ꅠch}cGTc .xS3g0 mԆ51y鯉 ",t2.AҁXX".hȉpBx Ѣh`˚hg># _U-rh^VNIOkhǿC%AT8ssD$((WDdrCr;#t$MvH;(.ݍ+1W~z (<7,y:^Z$!.C$␆ΗZ3)MMS'0QC`6&K|F6;ec/LFu/)_gäEo,(d=bjgy_;/nqOρs3If1r  ` h 2Dx%::9WsTDgGDw5tFUW7VB"|dW~pu1h!-cGvTSs!9hXofF$eEQAvlBYHa")"s8ewhVZiu#<[5:&t2j29yjxKrR5y#n&dJ.ZP0gB@ *+71SIWSRZ8QZaiWZ57w=9x~\&vjpLv9;+KǢ(IUY 0M.1B8'f/`05ahtl*| a. fW{vÞ.I+Qw .uX+=C<wVY?e}ڷ}qQ*DT3p<c4V1$i MŬ@N&c1qqWw@ ^8!/h&&}3q,˻fDɔDi$!2zG%xY3$ZEɫc˱KhYRgD(v1s13b&fE뾃"TZ*EhgGJ!z#%[+k# 9K4jw4:qF\;LD-+(DxGSbkPDl(Lb53Ui)NmK`I{uݴTM{I AĒa/B|s*z _;7 A`WǶʙn1'LjcEcXCx L-L2LĬLtx|dJqqH6D4` 3Fqvz3!&}Tb $$ bTBIIpfc2|u0xuIagY;iw T(#)hb&1w+[l&K"jRiC9KTTȈm2Ʒ&0nd~4pLJ1)FsJ#!T]4hȣ {4'/6aarhm!5` +$H"$[/wtN,Xd52we yoUQ?O,@ p@?8 E"z(G4jp!T>t -oxRSu*׊`wxk.xM8}[C9x:xm xxk .<ģ;Sa1/?XC?:C`HD1鐂 p)# "Xit)Dkk&L?|ơ'҂STCRLZSy]ʫ¢Lj&REJv"W삗{|V`R;rP_)Oʀ* îZ446Tn]m`e<4:_ـ8Pcl ?ǬYlѩ>e4BIR4?ŨN{ZOUafmKbLt77Xu @Ԧ6HIjᄎ(% K lZdWqK$N A:J!֓IBS.P0YlJ> `VuVHQ$tqTO MU^BbUʲ-[|*^dW,Ҋ%ybɊ8ǔio| u"vSc]lO?w0 Ve8[XPڋ8J|&7WB:BD (=0NFC1X Y~$E ;PQ,MLјhɛ>54 "o`z&c#]cYLB6ȗN%'T[U"G+yIp<@Bǚ@`ivHYer'2CbUQa5b6jRm]ɥW ԦJӵpf7cf,o3L뛪^7WMKrr@{%wf"_={l*SƁJ(r֋lN4bzibi=6銬1/7Ϭy0 w,UQ+TGlfS;$r&31BW2̲x&%7DBO)z/IEXxכby1 -<*Z%Eq@4: ,Κ8\⭍ 38щ؊-9d(e2;Ih^ApA !|tZ Vj.+׃'5;{È1(gBj(ax1yɻ!6-@0 h @@sHH qj1s7J>ӷ!#%1aѫF !&cY0/q/[1"+s%ѲJ,SAѓ$3#B3:S8쳳M,H") KyPGv bJ&G; 4Q IBASq;a%^bV*ٚ "su.j俤 9 ˾#!IF ,#P5 ,Fy(F5 S3RRsDxA G!MC$S S92Q-Xy\ G{4ASa A7Ȕ$7HLȻ3 b'XO)V3dɨL!5c'wqk( z:4BV#!jZ![X2 +A87b[7 ,?ɪ2#A<2b /ΊR %G2R9YL Fq3ʒB%Xb\*;`jz ھ"-@SNU P}C+N\ NN8B=r$%Py1)>uYX/<%UDS gj&ht ؚHL˦A[LAQY^ii)⠼< 3|ϔ;WR(bU0µŃÙV 4xɣz1 uMެ7;3 vǶ4] ʉԬB [՘;`1HT!>ydLQ &fY{x\XRɓ|R /NI*tgɘܼ{yq-؍ .r݋@ X!أ)o#b8HQE5)0!AycE1 XHŋbXΛ91꣝C3?M )ՉK2YخY,S?4Zڸ#3Z1Z!ȲKQƨYn+*iyǹġ-iR8DإobNF[Q4U}S#~?A9Nɭh!a+Xǵ/ܒ;0&iĎ v i:l<Ũb6(m{JBWPɃH0JjؽpdQ)u9>M@SA歬I | ]q9Y XT{ԣ`#1b^'YfYDd#yđSK92w<@ot9o|ؤ#ѶT)ly1M E⾃ e-UX|ge/_䣀 ͣ)h! C렘hێuo.ܒDi) IʫcڎgΠϥV9بC]z )d-BPXjH"li) aR?؉ϩUTK+@ȶГΧM#14jYD%)Aݑl&Ӆ.vL;s%712$?pѶs82Sm 9Us,Q8[d+mI[VGmzLm砘 ΦT[aYUV]bR/jXV#K@źlP.uL ͫWێaj;i^~ʑjV jMceG]Ѕ6. 2X! uAF~ j0 <"#! H9m**RV/_ R&Y)'I#ITa0ddG(f3'=>Q1[g̸F8++;?ImKߨ7m*Dt.#1w1E?121Ye]{ym5 X{a)nN3Lv(ٛJKTW1ŗ#((9 :CqV(V,۴YFu >.Ax60sp9*˩aÃ'#T$gK ) &J hVqZqjG14LAAqG`tqu j7tߕ*rC A}ל~ ݀@~ÞsGr?7 Ja*8W]iBK,F0, }P:O 5>Y<$I#lɃ8Hf@8Lz)&c6J}R-XdoZY)^A(>Bu9B`HjPB 9(QJ K] )lCOSVu P3uTjΊu^y?AQ^adW*+gٶ-A1L:ƾ^N%ոc̸T.-x~߸?f\R߮4W$G¢:4(Q-5lkfΉ !HZs D9\wF EdxI>(Sej$m}<ڔ7!Fay&30kL3*3,p"X ",3.Y`D\c.% VP}'NyUC1zXyJ"+Y-!dfw<(iFĵL {XCn JTmMm _  O Jic_G8H9 ˥iЌ٤}ΑU|`|G a H8 ` M 5I!EdR*͠XdbD՗[B(EEyХE_~% ,"_ 6AbxeaHCI-ScCI= GH15֢• 5KOB6.@6Hvlc} Y|du#\'#YEqVH܁.JE #Nj YяР|`ٌe $ldUeD]MR|6E(KI8Ėl-ŖEN+DGHB򎿽OlJEN a}8mb_Qۨ<\EJ%˰֎(yR>S,]@Q) ,_$$*Q*b br&d62)1b}11Fqfk@YicdnʦHH#UU ƾ Q  >禆 @X+RiI߀UMCr RB<$gQd!`D~ge08JH4%*g*!ZdF2&) ba)-VZT.N*VJhg,a DE,1YPDIQ"؏A(WZ<RhExJ;mkK;e\yI<]ڥ``H+b͞^3%f+bR#ǘf igkNX1~&e6VHp5|m;LC#Az *dgޣU`}kg f' ng'a`exm ^]'=\9KbF1ZE D-VD~-IJg閑DpEi I+Kp L4OXa`(.ƷDE(ed n\x9DKȥk` anxwuGY˘)" X JZYUToF,EFHplJ%CB!'#S@D^\vuWvele DW RZŪ(6_ʈSUu3]E4Ⱥ.FC̲hRf mNYC1Xeei6sI-0xJw7'`64@z\-)դQε '>㦮T͉Yg!ַ }-_Ys Ic%V.&-z数n36~.vM#e\4y4\! ~I2Ơ̱̱Or=J Ca-Dd|O\ ="B-` V[_Cw~OP'Nwu}_cb..l*2P,'_'څoQ@GŨ3T`cN}ŕ&1&v 5*pm'-5CpP3x \-䜙-r.$+  Ĺ:Sn1ĩDAZS"+6aEWt]`:>ERRk"@TZv l"Я.xlX..x8ƆC]c]{i`Ga]iJH1Б- !mfHCHԸtEwQj=m޳l ڪU\0$X] B~'@j/Pٱ pc%}gG@ZBQ'sBډ:C`EݦGE`ٕ~'!ʂ`YDZomSKɩ ŰMC%7!r,2RGoPTEu$")'"+Jk/F.Z ; Eؾ 9 >e v`"|/|,|c Ƽ¡fsGupyݔ٢?ס>+:!S ֈ^ :ϡ6@@? 'LH߄T0!62Q!%M,(ѡ/y<,HK3T)'Û)y^i(љ 8`t&ό8 xT&E &K HT bdkvZv͈um}DC <܏~o ΍wH?;αGCAQ,{7@oXk?&?+ 7 XaqjQ&`nƸq<) $Ƌ"Ini!%+rq^&P"h$?Bȣ'1"+ )*rA4ɡ6TH@W%. '2Zʪh≠\ ʮ )*UեITJ,JJ+QK],K 74l3Z 2 3m[M4^l8E3͔e6Ǽ5æ A^s.zW^κ㎓9s;o<{p=c=O0bAÎX7֋ ! [ pG\ yNeBH,)w|(QPrM\HJA(ᆘd3Tԡ1/'"(P6,[o!Ű۲'pIqA+(!\ ~ a(w[ԋ@Mk Dfu"#$dm ]ྉ$MȻzՌX5'.e p(h7#խJ3.9QV5ްX%HVː! JNo'ObrZo1/Ny8XLkT C֌Z 2npnΦ :`k~7  |`]xg;ҏ _zz99p2(Ι 袮'jpBph$߯C>lNBCAj<krPj* P "m )W !T$MЫ"kD"nk lHldlMhNr#ڤROn`MBlKljI#lP֦RM"H***Zp4ެ"!2s6-X+t/`mJLfGT^% B*r:En:J.汮9xq:Oc8TFi_ɴB9 <0lϲ!(餱I8уN5m>heiIhjПxP=a<&6%fEPlj&GjTP*KG!#Cg lތfKm抸mX8 l$zKfl/L$sm\'ژ2Rb7s&eZŞo(R"oB TB#pG q%ܪJ,Bd7/:LZdTF `n] 4h4I^e9G 0W+90qCNB "aƱRfE K@eF8Ӯ .eu66 KG"uPnzD:^rCA1&s$./%ҋ^¤ G&B`o.|Bh#Pt äFo& QTR " *A4OhƸj & CBgC  iu.'DGBV O-Ez.M`T]^HH!_E <1 ,aI)J^AL?pAʑ~7No0vin6QeOO'DGfT ._*t/C/EPTfؓib(>*%&VyQhMV'Cb!i-Wd#4%* (@r\lg AB!J=-,DU )peẂLV`1555LwsH_}\Y c(p 1nKiaKP EMl䙓P (0)8!A6N'!BlXSTh7VqZ5@SX'n7IDh'|7a+2V3썫4lKy56e ?M&7dWK ն]&TqZ~mp՗ƪL/^q'/Ik^fT#X"F89!?*OY3|G/[%4t⿾R~9vq<Р0xPAbhʂ= 8idFAji@`9f7լpm:)/.p\<ӊv]Sx^+xj$o$-U ӣx&L i-,RvesAxU]=7~ɥ2u'TwPV~P%Qu&b&rrDPXQ"rP;Gb 858m54aXwbXHaI>Sb/XTe]Ep$Thi>!K1W,%K36XqF=&=yT5 K5MA@xAqp)'05NV{c{(^hq+|tƗC!w$#70\9E!;Q+"f>5~esmQ;8A*X8h""st^>[v&SO# bgm 8"M%jlU$>WS%+T[G꠺BE'xy./Q?X҃H<?S'oBXz.jW!ڄ5A*bNFzf1h8bŝ4g"0R\ [pgr8ٜ!i O%tgtk` Qq`UDU^/brT8Ǜ,$)Iˆ!U!a ⤚!%J4w`.GTυSYwZXu`GHEEcūNJRRy*cKIa''3H|bdEMe[uH(Z qy[xDU_*Gr}سɂ0D`՜ŝ =F@R#b  C! oҀv"$gAة‚eUwEa9ԳRP,;DdyJmZ`ʈv+8"Q;Q+J雵EPrAeKG?X{eюAA[@٬gEnTQCZMaZN[j|li` + \$2NeS>`*,ܴ2"@ `5l2L70+9`0  ` 24LPI=liB? bT P`!ش8LLo<$|D>1o ; O<ȆlȄ, rȌđ,ɋA@Az (.QPaeLMSiozMXpBZۥss1((VV{e%|NU,Ll 3׬ ,Ll ,Ll -Mm  -Mm !-#M%m')+-/ 1-3M5m,! a`%1D#Ӛa0#ә> msR)ӚոQYKR}h<]XqMx6^EM|u}Ӆ-΄ VVuٚAa$ؘٛl١`]k-۷$ڐۣ]"ܭMO۵Mmێm)ٲڊܼm-Ϭ!<׵0W]#M`zݸ!Wߵc,>"ۙ!wO]aM>ޙ!@ak]`!ـ])΋]-`0$%!n(n㞍@0ԨMI=:-#0!S7lM#s(glږ-#ਲ.ϽX1᭍m]F^oY^"M/)">";mޚmN^A]" 泾JR-؎]%"{Vy;Gf*]cm)0܏!(~LܾÞy6PN#.] "TNF]Q_]c.)N$뮮;m`^*dP= / NIo纎1-֔ .8T?UcToPܾQ~.QGO׌%܀Ra)?HA=)` j͔9--聍2#_8- ~ޑ1A#%lMڨ"@^OP8ۢ.Nbڽ_@_d_])=^a!Eޯykڂs@Q}$XA .dC8HQbA) tq<%lq!HG6`1cJ1/%9uOAFN"Ρ<&eԩONZUWaŎ%[Vg@!,3 fHQG5A(J:I%YBK3`EO40fEIT9D& E18! xRU9/:'^CJVU8. H!U=G5&/W@K<)60 kNWN8EǬSTȘzׇX.iKTqV?Pڸh= ?/8uMQE3>hYB bYȞc?n^Ӫura)YT^WOJY?Hi@ϑT(fYkKoLSЁbnX{ZͪZSC07fR]rH\\B&$j|Eb,T56ȦwU]ۥ|W\wVjg^qPXjjVaTەe}ޛѥךtd`aׂ_ЬEr]bŭbFεꯂgیmqUI,,~TH*$V0&c<=SoZ>ѠTC!]uBӆiҀSl`{A,_iՐa[WHJdvm8'ˈR5pM7_m8߃NރZuʱ]`3(LEw˧H3x@߭˄mĭX! ^fp跕ḢNNN}iƎrC<ԶÎmݩfffttt⤣xE[[[?F*YXޭB?Aonf 'i*\ȰÇ#JHŋ3jȱǏ CIƂ&S\ɲ˗0cʜI͋rɳϟ@ JѣH*]ʴӧPJJիXjzׯ`ÊKٙ$n iO`۳pʝKݻ ZwB} 0߿|8￷lL˘3k̹Ϡ@E[W=©1Ëq x1W4i¸iNȓ+,ܯC 1 .νsNRP/z)s} (h]bIw@d[ ^jahP{&4@9TBU,6tC-a2"admcϋ-O + TBׅP=Fh d \'@,$X~;M j9AJxt R`vJҔ)ҷ ,%B\:Ba%D P }"jjH{C7D)j7"Bkճ@*M+- , [@ϴv-CNJV@ͪ$GB~j( t{m "dA-.䧚 'AgckP 3+[n1 `x#cg@'; DIjPk1%nL"=K)$͌i(u$M}sbzjErqBf+!ʍ3M@aP>PJθ+Ĝ Ѱy# .B.Ժ N,㺐kQo{~;I̓e|G/WogwJ/o觯/o L:'H Z̠7z GHű A! CBbH `. @?@ PA?D"0N(HŔ b.zOtÌ.Y Bq#HGD63Lh>E\ b w%jŀ$ '`q ?IMĒܤ(9)Ln2 bJUdBiȁ҆Xe*ƃt?`1bs/!@ ==4mr Y& Gr@1No1rS L4IOxy+uVns;۩ZsfHhF#a@Z̊Cr&KILi:T a d3>Lg7W+Np9SӞ_$)iSC:t*jPDs TH? ZK2P50!N$EbѭzMA:*Ī$BɒB''Kɹ35M9 ΁dQ_R%=chVr NOTrEdOx2XjUU!bMHh-B^lAn"GIӪV+&Y\Z$ L]s>R0ebs؃T!UI=y Ov;DZهTv1.fePk}j)2ߏ` E oK6UHې9CBKlBěGrQ W%ֵ`gr &ͮAAN!,/DIa ь%ݻ`!E@cߒ6%-1*-@R R!@ 6.I{bQ)\67&IW!`[JsU!,2ո6i|YY؍/h^"ǣ?pGҀcȥwl,uu̎vkwgc-qD2s,gr1/ >?H];{ VEw!(3uInSEHHN I#Zi\c7B`ao~?"mE|VPL8KiJce]+,$(i`/pUeQ SUi!Nc[LMm,i7 NZ%Am?8 5Rr'WNtѺSHo& 3Ry$_.H^ZQ60eW}!wB.]޲!Vo\l.9%Nckƥg쒌=F]Ty=!,Y,ˤؤ&Q(hNoz{uG{1#K!lV GyS~߇ji6Y֋ 4V/n>cx0(NML4y}ul}r'S&I7WJ (z#]8^sIzK&{|6 w\+t4_v~-h`H&GG`ǧo~j7voZշLpjl^%UwzM|jFZwGhvnwF AxB$0nJqwRǥ\-ffH8]$r~%s>gblqm9wxAuXՀHT3g5ŕh|'oW|VeoR%odwu}=h|oU @(G }^F~w;VMt\^،BhX3n(pqM4fkc֍(atya+ws]"y8XXE]Nz؈X/f{vWt{IqpX{iXM$ Ri(ox}iHG\v(v If}]AK؄,a}vj5ЌwwwB)LAhJu Y\qnDGRM\/\\ Nfi&S~s 58zHrfрfuH)v{hYHɍ'M)_{ 4GkeUnV@v4 u8[Y?uv19nW:w 7UGky_V"B<~e(<tQWݦx4\v{l)$SuTI7,іsU3lunBVP#8)Cq)Jj՘w7i*iW~vuƧLڙי+(ivJ)U8@@a&?:iQ'ii 5*٤nikO\q a| 8Nɀ2]&d湖ٖ)sy)XJybyYuCGtQRdq؜٘nyEn'!`{`w1v6hKoBXj䩧_ 1:y$j Qq⇛~~_w6Gr zG᜖͙L'ayۉyGaPszZQoiYcڭiڭr:g$yg$G hC*DJ nנu@`Of e)ŪEfH4% ,e&[L梎i9~'{G茷z RWBZ\nJwA Wb&*y flJdz :nI30]l30ʖjKyӅT,ft)I aRwi sw|uR@ yJ+3i1'#*j* 6x`QZ7/{~{'xk5qe%҅ WʶN༖yӊ!zZkb쉵Vw)sW_j-FU^hJji[~[nȃ;|y|:Z}!j6+) 1 }aSVw1xG4]p¸zpu+OxVyfDIJwy׺l9 K驽W˭d];ze{gkOrJ"J[}P=FQ˰K&Rg+|%z&: +`1:j0}Sv )eL1əʍ97W?l@ܝ.1Npm;T٭Ew8tJYbyiH o : !=~ +Р-*؂Ц.!K( 钛<@n P6ʬ !|. 6[CMf AlT ϼVQYXNʭI 1e*͙fexdn=ﭿ\ A+Rt߂-F` n DN~-…~*{,w4ي(Rl)([* pj>-]gA>Ny>.NL]k [lIQR`OObIl @}`HՔ~JAsn^r| w4q^2 ؓ~ .%"o!5/k-L) \8﫧 k5̆JF7B3yUz͉xa.Mm[.=U9`zT6fi{} >eaK5HP࿁gBrÈru.$H%/Jahҙ-k4p%Ĩ 4h+ѬJ4x%b͎CAVrF;>sL2<4XJN?JnPXڍDT6VJ4R|DSPCrP'#t s,!]/YlO,pف v$BܖŹ=܍B( EBIDH\RxJ4}#i_$W(g lɕ2- ɮ誋^..2>K ZV\i\Dd=>H3PMjvf-g׀Ih66ST8DΟ0(f+WJUtl;`&7!yϭcr~%p>xd8!. f9.Z58 jMkr+1I84Ŏ($J ],#ܱ.*ZIGQ꼒I__ɾ9+!!Ubz eP y%],!bO$T[CG;uMk.NSLƀVYh_(A?K_j.I{,e)3Ω!6Kt0c6K!i+T,JYP|s@fTZ,t> fT,Qg^^Tcʞ*sWdrۃhL8(CN+Cpx-rcDP9ȱ FcSuq&)lK$ b+bJgYϩ+?$FZ˛BRnG%=tAz^jbinZejS!掅εʪ蜦5Yh앢9)Q[R+@pIQ66UP%h::bMqY],!X֕Tɭ ev ! Ƹ- dFJbUb`M, 0~v3BT%"v+%\x *ȢbqF8>CcL |vk=)KVzRE"zcQe ‘#0|glZS;ɛ٧AsQLʣEAZשe@høq~)miH3p~y$ Qh5&co(#zFw]k&A>H?T`sF#0qM#w&(b$Qۨ蒹uS}R2͟fzx,2PjL.M\}9/YYԬ}\vomb/<ΣWqoQ3Mrp{`otKn%CҎvtg72oU͹Z[!:iQ-du":@s70233h>3CDÆqR qpqp8îsN;8˳.* 1$qةBk`qXßC+[HC>?Ⴔ|{4ġ+w[:4j?H5Y3[5[:!:?Ī0E# TeìȊ" \ @%@2#c4FOLӲc5$[cF7bBܕ D`-J.)3~;'d$<kx'l z\P)ޛ34%AH,X#A!d r飾FDCHc9/Ks:x;X7!#4!@\LܺµY:Zğ k@ SL\] 8[Ū×$## F8nkeDӲ:"(#ĩ@ >?ܼbm\w:AN!AINIƛDL:*JۿRN4ٙ\c8@JZjpE 4ʲ{ŕH[J*˱m0t!ƈR*aEDDv$BDL;QÆ8GqhLs,Gcܮd"C2| ٳ32=!E9]l\H"{K{II KN1Dɟ3NĞt[˺3:,OWTEX+OXū U F(ƩKOhDdPOD*DTSIūPSXKE2}$.% :$bGlQ(.Q؀V~`7M<9n%)M+tGQ;>8.͞yQ4-e3zH6]S1kUD:ҒKN?pS?V᤭U5a_c{U_lZhQuQ8|B-Vc˄V\ö?NR oճԼk^`[AG9 {TQߢ@6ǽUSXP\,XSbHމW~& EAC ;\ԏmO!@ &fʘ@5"WXP؛ua]ϵaoV] \ uXLZ4nQmcL_)\rB'܃=,gGvH630*%VB~ >>Mxۂ#>Mh~^C,Hx,VWe 5.ɪߜdHpHUQ1u!iU*V]@WvWNa2M( hnZSOZ^b",$nIm@rkFЃP]n Ubi2 U2i2hgwuQ-l^Lm_Q)g)5gh?&Cm59ydggީhv=íKKڎ\Zv%jT.mvᣎnF.=n&f]v]E@`F&TեM]ioNXA\6آ6ЗTnV<@>nVZDU%l8@_dZVzv`eǾg)i耮l+U H2 u76 B`Ͷh8H~qiݩ!pz8$ w>UQ8L4Vnx*>^Wvs΃fnRk*ojHo&]^T^Vb meQt@=E~joto>UsNTP^8,0p Z'v$Z]_4cxh'q(>ql&߀aquОFk=3LvG[LP@p0O/OQs0W<1oFX^j5teWn:?^X`>7 s>A1O7 jpo܈otwNskA(STWIWpmz= xg=r|~v >l]eohpv^xBJqtV"ngf|i-]'U‡Wp(wz?H8u6u[Op1~w1N0gMTWn^nW}N} =oeax]AJZE^ %V ekrnsoKx7QA=rApg+wgGc%u vgwvBl8w' =g}u)eͷiM{72pΜC񟺊F͜7 @)`BoҒ!=YXs7g߸,ry08)m8)PlCJ]t*6lnUPW rH[ϮU*+ oݺs`a .bȒS4pS ;s5;+ v?GZuaˮ];@l󖈹a僕\!&L\9@5z jݎ6֭Z~^.^a-f6lՃ2}Z0 ׆(!uOL ,- LVo$ z,lDgC#33zehYQFt Ⱥl.uXbF4z !ˑ>Y#)sH)5=tIRT~[|xmꍃJ/SHZe$rMsRmh/3LV{TgYE1ԅ>z1hC:|0F8{N4c`LwzƉYX"κ1fg۸h٘cF1AS5C-(B)N_@Jm%o}W.> kDN4^'$g:W?p'c '& t@#}g]St;UE!/ʛ_sތa,a}? CV 7Ox~6Zds-p/ ]x)96DmuXčQCiƉtQjۑ)iAL?KSܖL0tKCZ`e-oSᯁmq?1ZᕯR]5qiܩUViUM݆\,a!1!Ǖҙ!(UZw5b\_7Ma%F]SM J[:YN7H+:`Cl, jmH=э<^h ?` 9dޗ[X(dz^(שa'X#ΐ%9R0%U\\b #%I?dAFC6D@\Ye`$@zǍ\՞]9]U~df/aC\indmB?FmH]dA_dFnf=hv=z$d&\(m4]mctFa%:'~(v%C%&@AAy5(%CPݽ'C8B7o"e DCH}1V0ۻ Ö0dނR>h[\X0Lwz!^^dZNgK_#Z.>3}Cm0X}RiZebuLfiAWb HDmflD\nXAndm&$~- b=UeZqf(CX#WS(8?Щi&c舾d`v.%O~vn^N Cxeg*FhR 2%]A}Fbd ^kTC C#t>([:(R'lz5(?l*wdd$u.u7,&>C|CLR4ejf(C?鏢+[ɅnAlJ*klNR]}!@~?@0Y+ R#Ffffƺ6D67$)%ҩR2&M2FyZ l5`ygN4Pj5e|Rʅ. Ze5IĊC^#0,%->(\]X6+"+zvDBKtcҤDn$74BȺ).nfvlS@fi£6鹢k+2RRʜkCܫA>kBkR鮦DlD)D@ Rt/žz.*l½"dSRf,0 Sv~/)džA޴Ju6fD/άO&em["|b*Ņ`H.V&6BEF p%vX%/V\?*!޲,pr+.J:1l kijn&oo!*B&i-CH.&2vB,q>qijnŞkj,k wo#ﵢl oS2DʯllZrS(%X>(؂Q"TbJ<[iD*'FˉAֺ5ŕ*%(-o[&׬̆0&Ri:2#?l#62iJ)o/&1+l,C;k/KDGq ,dCn-4CtO7AA$tC8m6.9>#,.HN*ër ksslM[fƩ5'3;gf252y&[`m J[HT>DDE*% kHr TmXƪ,oS5p5 xp62j1 $K-(ȖlʨMk3劳lr.:k+q <=h;dz+nffS]tIB4D3!Cn#D3/6vq? ,>q{tv,ݱ'f״26>Cfl7Ws#w?؀@fm3m_o'N21ϵ3l'4/TK1mDֹ.:++Y/JT $`T-D"*YbcpS\gp08-Cð8l|.05`/ b mvGvCkt+=s1i7k&HB>6j1q_vm$p;3) iApHq9ojtq*BsHccsC/xAxw3ި7EG~۳w”pOf-naֶRhtn3#Cˆ)4Gý.sG?o;?37 Vz{KDC!{}[cjچX2Crj\QCcY*CLU*o{A!-C`/a{{/|#x7's{OoH{{o>˒@\A;C<&T% B.q?CW>8RZ&JN: Q9a9l Hp GA'Hԃ)d` )d6YquI&&̊2oqͽKk>כo2/ α2C%5ZLc 0m4PS-7x%씹@b^6LlĻĪЬ6I[ϴBS-l>b#/>JOð,L4:3jl4M1ʮ;7lm R VRj1[vu${isl m4܀NbE6B%>O^g%.M+ZwksNt=X/9ыF3H;vAs$GiGXDR`(KuB*c0cRtinfkRKY( LqlhAksa;@>pjq D 7x6U7IDŽs+9 w !&U+j>~Cͤ4؂YԊ Nz՝ӇMH8bzc*R"tl(PɧtI|P2`uBaD I@:\T-tqEu˽4n[q"zbjQ3̾(3 ThZә>%va ٪6eEd[ نx"/ ϧ<;<6 h[S4TA?T*l`s 0Q@+&4}quYxx1viyw.UA^" . $ f0"4Ґ.ȑHҼ !I]ddXz(:VRL*/HX].;)"@'i@ =B*p ^ <ugjRNB="60KTĭBr,*tвC%. /;2;I{FQFoPooG=.U1 rOH"`]C] 5IT PLR|4KKMK __ |aL pMULNtc4L4O9u]Ui4@bZyD3%Y+QoDsRU&*`> I)BS?G)JSf Bg5VV,/ C#ClVX+mDZ_t1eYv uzc 3C#L U5r 90`b"M-b6M,L'LK| `q`6aK@ݛU$vLڳHA H ކ7d8꘨醴1/YX{3/E9Q/Vcuj?6Д,6ѓV.'&SɮzuH<{BB#x~6iqҭ8ٝvG1YfCC U;tgYMt.B)gY-3,4B!w0$FUGGv_OG K57 p?pmkI!;/FVer:Y[iV\v2 M0gBQxPL~G Et^ UX!x]cQĈ%2K:⪪臅׼JlǞHB:aٯ + lYZ=ʫ˱!j܍U/KyկGu G?e_|7GR;$kjI|*C]-]SM(CC3HC ̏2E FPybZPd-#P (F;KXee(F W&gV$bnG"Xu) ކ*(U msK]p!IS[C-P WH(4yhpfA jhCC4D"`RTˡ&mXUx5)?^ CHƖ r4MhJT4ȕ IdL#1d(CL,drp2"yW{ m-1 qBء!ulR-=dy]p+l*J;0PC3 ⬋ݳ!D(wQD=.0Ë'8NO“Z^h4[_< x?12`C`L`5݀ -t 0eM0ÆэP9Rı%跤ǣRh1Զ 6EZkl$M492 gR%DV+R,!2HUr-ddju4&$ak1i X?~q%b?"Gl>O-4G>btf7+rfg?YVv,!?bD cqdzXBJNHeprJRzb{h61R"Pf^<4Aنo/Ѿz"ʻ9d M XHOAC\ӂ8 HFwuHrQIQ1", Bh5FJĸ-Vr1BDMVlU$'_+h,4eB]̚IAhmI4bNg)eQBre aꪃp#dpψ.{6(8۞cg|Ӟ/- >DםҖb'jP-P@HdS25%M2ztUyS4zԺJܛ޸K7 !t:!N/al?kW}(4| (4 nTWL9EgƋ Dcu@O E!%F!oI h1 )F0A%TIX% X:G?6-!W˲+q4-d6p%a_UdC Mrj$dog # uX)wf=agXX==uhKnvLZY=YqLAi]iw~F=U!c? A.=<1Mj 4t"2DA"3B A0m'9\4Oa|(gltltRmE}{Km~mF}w|Dhmv|动m' '\0'{Q}PPW X(  } CC߇l6_KTO398UU`U%\UV1X$h`ŀ a  -  9(W ֐" ;(;LͱuL~un$c %vF$SUX=UQP> ;Ya>9rW=i|Y|WFhis f=>QȔfLz].X`?_<1@(M(2aWdNʠfuk\5#F^Èc](v{) 8Yym{{m{߆y|6)n@0'J}:Yo p߇ᶩZ_E@pHIHV%`$80- ) r rrTo~7aoa E`tgkwv} q0:X'Xp jDv o6,XY*AiE|0DD=7Z4b1 - "!# zha=e=eǥa_JMSM@r"y-(-q:x 3ŲfR:l]nHO~Pbc(z٘Rdn '`Ө{mډ -1J_ ꉹm(:':'HSf)h6ߘ:AΊyP|kje 1_UR|0i;9ʭ * ڏ&QSQ1iX ygž ZZ^g1?'?9@ pưE;XPk9)!6kA9Nz@82-S!0#>PsZSX l;Rc x*9$AqW?tE.TOABukO/DD&{[L}gmam%ډ ܶ6J@Q'wtL_:9;*ȫɪ_( | | q͊껽[ËQ L)` Lʭ P Tg5Q<-b$ ˾;X*1 1 &h #.63h':ÓU1ɠ#]z;JZS?K>mQ#<0mQ0 >B:Ю/-L!#X@&y"r:p5"-C,%R;4<\5RLz|3U|E{P_ʹQŞI!&mkmzmp{ nW]Ǚa=i_a c|p  ͚*։ d14CDe6S ANVSH!FHGa74F.S |ZX g}f?x![Lψ ڿ;Έ+rҰ?H@=hܲ#7D N >>:L Є!?30 g` ",KeKr3>102 {8t51#4;\X9B52}O`7"D8aAD}'I* ƛmz6;QfmK|wֱաjpZɧP  )ɲȬ :F5Fd4%]>SPfa!F^2G`` gREUcfF1e Ywvg2!z`\ڰ`CȭPEIDr6X!+Y*Y*k 0Y8jS00HZ?3 0~0} g/KB=Y4:bv1<1-},t#D,'],toK$yE\QWGOm] P4*B!DAm&ay4Ԁ_&㨀_8{@^]|0_|ة,|@|[צ8_:#Ɣ(Kd'gqVH- P@ aKF1qfq5F 1c4EFTY`a؈ k ۓEβп`Zu_% vN`F,˲ z x.=[> r/}!ͮr/L`L#IN@N5G $JV1Iku%fjrk,F%,\×G%A9 \pk@#c VAV<E> 2z#Ԟm~(Og|Dm|AXP?amCЏ#j-Y"RȒ6jnI$_61,RdY_Dmz̙fJ(чCQ|HPS7n2J?LUS%#O>h= ˬh&"k2&n]n!2l8cW"QpF`4) f`"D&2L)ǵSLV=_^4E-;mێh:HCiɏ\pؿ ?իcN3Isg;2. ؖZt!YM˒*1T?^1ȖᣊY؊SrGĸA! '!ᆛgz&g^ygZhry WAdc(Zj+kS|䪫!EEH ,f’S L %'F9h䉇 G4EIzl !D7zH2B#j2T*}J'TF\IQ4R\!j>b%6 (ւl0y(W_GzJ%Hq*{(DvD!jX[i1b_ELbr}eS\U1Ms_Dϸ9L1m0:4`&ngL36{$z2*Cbצ@M3y4T/4:!BVx^4@f)Yh-;HZ=i3:#9]P lЈVJNš㐦!۬XylqlFmOd&ef(M6Ksq1Md.QB|bg-TKG|VUBoۙC;$L̔cQ 6G(yh>h_aPs1 /#_@!8VCq&R:bX!&)J\W?+(`O՟„ TCHq1 ,eӚCFBZ7IOvP?AJ* 乇)M#9 QI4e@ׅ"0ɰ i!mjŏ&ϘM@ D q |.Ӹm{6A͎V4F9NÍ^|Hɐ]tAF2^2!B7s5ajTAXdoiz&j a͠/}f#T"6fd!}~̥9NJf8M2fP]8!ې"2ch/ 0!U\QIT l%(+D$BH<"yH4 !B Kf!9)J&D z !jd9Ypخ`wTZ1|U҄z(@xJZ he飤!PS - D |T ]^AWHH{]%T\ K. aoP]vB2w-^'1C. 8B[,IH 3Df"G=k#qnA0緿W]@ Hyfē`qVZ#s B3}e}x"8Z$TTejB1s]b( e|\ZI1q3Ō;|6.^:M61g77EU?CלkYT,^6 RZJg/Bɂ%K).|]l%/ _ !'%ӄ1TЄ:aX,i&EŽCD/1YTs^.9$Ǔs݌D&8NePRkg80{hj! vQ0l٧SZ)Q-謀PU/Dmj~W.|j.q_ LK:w6t("H`bg7[6 $@E򜒊e_p]oB ­F("9aPQP-ШXQ 0J̊ T:ڊqBN1n,`fc/yϥ]gGFa3(D#ˈUl!?h8h,UiC@ NOznh%|7f2v+#?dOh倘xh\ hԿYgÒjɶp C @fȫȀ 9 &܁\3 0*6oH0ꠉXRcahʮih8Ȉs8IB%VZ%ԐXIjq Jh>7`<{>0y6J')*S0az" ۦo919{ fk5pͺ ˠq9p:Q ;Q b F`$pFQt4!1/D \hH<_ D [)VX)5x(6``F)A3P/ k3i_͈@Ɇ"((6a5G'QG_X_!a䙽MtYbB*TZ!"Ш@a֨Ѩ8ᇅH0E$N$5V@PЁ+U`rZS .ts1_[_yɫԑ !3*3{\\܂Vl=15;2A7֠*V22aqA` 'eе`p0I] yfU;1*Y~ } Ihaڡ@Ɉc=+]Z(g]5R󰋈o$A \p).%]VUUaokTgAkhUp qV^TO/GEoEB.UVQZ&a^bi8 ^ \-TZhb B*3-GW''ۦfLg?]zY _nΜqؿs!? L ̰I#BPf?^hbCFD iS0"Y5j(kSBMJdVkNuʿ)ݦFrnVZ"w.)D I\"d+3%mBh(9raJeC ʒ6>(Ȓ%PBڴr/H A 4B.<ؒWP+_"@@c0s1@v')x'$Ofv?C )*ϟ=x҃)a&?A2z矬O1?~(l=8|‹KNOՂ'R & k 3BUTq,2<7tFf9RJv[ҘG"(% cshkC(4FT06ᤓM ܋oN3h&UAX#EU f_~٥GY]3bJK 6#Jԉ'nDKWtG.yhV[ogi$b}_LVf!=xQQTb\z݆ʇ vyrVֵBxvvvgޞ90|N綹r`\,LX5x8c O.xl|IKdh-z,ejyc p2C84=4#ty.m(ڙ'p)DrЊz&*gLe*$bU1e!@%+Zժ0"Sj4]P%Ҥ5|,-r(h%dЅG5f[XbdDnI02C5B(A$Ŝd /02ʡE(|U2J /$9|У1/OL͸"qe 2(9vF=I:. ^JnB\ g gF%N"F@ i`ghGl%LNxWJQ%M؀zc(|m9\rWaQy wyS-K(s<~Qy?$H(LBQJH%F$ޜNrS}qD oL` ĄQqИ.@G%XX?|!t]֍$%b]q&v]]'rݵȋB,% 8PU$£Ȋy݁P1׻$%P[rE\-`^ t #@"蹞T!eTQG^00_C<7C3lO ?634*,*p%\X9Yd-bDc%Qu (BLFOX-ƹ`ۥ?K m`MnN JNhR!R 'S DF!*}N[RN%}\T* |=GԪ!~MRa%'^51PeRfA.^&""6n֦&'m! 'q+ n BJ- 3ЂH'͞,A<3sNNdЎH K}Nݑxֿb[.\v],%1b鋓T^*:uIRah9EhY#;ncDvHV[xDG8008Bl˖EF!T(_5LHEFuyxʫdZ#h4i8dְPSԭSj%?$c D1frHrxRUweuePDUu MQm 0~vv]ZHfTFȐW?\-f*c ReJm8ant P&h^BBz?(?Pٻ쎛 acQkPk@I&aϞljjnMj$ JdHlGR"BaR2 DTF_(l*y #4*ʤ,]Yf(hZ[pȬΨmYJC:~'eêTrXhUTC5 )n-#Ri$r4qԘoTW.E桃Ne-h-O >!ӑGkdžІؿ LljJT{YZZ{ѻNOdh `2m:H{w#GN? \?0sēd zU3:9NRC ef4\@::rF S'B*GѸא0w.ɖ,U"͕YHg( M@FGkGD86L B F-zdH}bRcĔf%©ÕEΰ װc mc #Y *$ M؀.A IƬP%M>`)i '@0ja:32p151p`}.N6v5g &ql`dÊ*jWJ/5'g]Z/Zڛ0|PSaҶjUiF6j/(s2 4M$FrtP oFǂ~0@i oN T]bDysj3<Ҍavb

S}$CwmS֖H\7a@d(Xu z}*O4GP$st2W<~pȘˆ0jր{JcTpyp7-mIN%g/ /`1jr;s`h$I~a_Exr %6xHqb!E%*eC~t?C EϦ!"Ϳ/.H"MT6h@ s(- %l)ҋ6H%!,"HZFQQ к 4в Js1gGy"s)œۓz"@t\F '%@$*J܀Rڸ44P US?,[+*P&fM:'NI4ZJ*(*VJJś *ȦP ڊ0DnktR7(r1a f2]Q,V]e7^cD^YEU* 'Q '*"3Zd#(o-5tH N6n#\j C0 9 n؁ e<& PRޠ"͆pdXS*!$d; ΰ,$fo}m ?@ R3jϹXQ &EF*0'ϰL* 4*jũ|J-p╺d (lfRQ:# vYnrf5AaCNĝP! >vLg:taMkԠf@$<?gI-mSOXJVi'YJKګ~F0% Іx + xvj<1Hew7T)s^XBEG~G41KFF)ϜMS3}GPҏw B A\(%H%x'L#zjXX5`e/p 5iMW$4D-"fop r*[ Ҷf=)Xp@ߞŚ7=)O5esW S (F1r135ʆZ*Rɫ3N7 )+ YKqKBLDUSҷ+i$M!8ADjgsOӂUimcZ Xܟ>DY}%T>-·yDWqv Z"Ml~3 pd`Qx2i~fKsH3Kd js>9j"n@ޭRC (>AEx u?R1JǑ%EjY W]! +\!h@A`S~-/X٦kBy6XjNw #\ڃ7/'l 6]Mm ,43!cz#r5 Ii:co<ڨ̥6x 5jRjh)SRT &i@˾V&vnӞ+0q*NDSf]ҝ$)"N'xദuk5K}t~.![^"dP]9 M)#!:!v( iBD ŲaJ,m1yzZƄqΉJEH;?:]f8;joe˝d6)aAx մ"bKJ 9HO4T4``i ^.}f^9WJ-NAAm;knlךqY$;i|֘5fI"8_r0Ռ Ixub+[Ɣ ?hΛ.kُD7 E'B^۸?qg8ae0X8[@aNu zPG/_h)uAҍk0M A8;Z#MV5/,n vfk>NTLA(d!,$|pv%:Pod/8oI$Uz#bo$hC>ILhq$5NDK6e^R̄ed9-fڊM@~ LE1JT T|/G˨+0ū=ЭS nrW hH'*LXƫqGv$NG2'dvqEI̩Ě0僮÷;R^t"DI~8gjhpXNp DO87pC7DBPggBɦ ! ѓaa czK=a2/<a< ٲ1k Cڮ?( 0kj~搚-4$5D+6JDqPq"*!M*$VR,E@I;z"4Ӫ"yX4yfDy pg` ߒ<N.&^;O| ;#= ˾ Rt ԋ a/k/tԻ.L@MK H UDeTę 6%6RR3RqpgjBB՗~irN5 L%|Wba%Chf%|WVQXAdBoOc;&nfU=e<9< gOn9 zfLLho=vj+1Ζ"KSL tLLO異,RnM!=ӏ>->xL]8pwsp,3̏" |+|8s y%U<׽.yquW}sF!@U~u {Ot3$EiS"LbR=0@J\)y#9F<7I%Shc&N-^;1!#]P)d9O~-U6ѩJX rLD%yhwqԋXbF2‚KDKdO>FRH@jB'gަmﲣ`O T<-'@z֥L plqN8/Vɔkg:/ Ÿ8_LxM[ka,O ΤVǎڎzgW?WwpIWpZ yO&U$Qs; Y+@ɒCptƗʉcrE)y.吖j4jQ[:2&oF"6r2'@ L:#o&gfsby'ت!)uDV*@2s4V*"FG}Bል̀2/O^iPIrBCI4K|G<$#^#ڀCtηjF@>& @+r=J| u񔋝lKYzjْy sOA/|W—Ÿک[ZM|xt@TU ,?̬ {F뮜ʏ @ Znʏ ؐz#sYR 9r?+2u}ҀԀ@A@"C`t-jd}pRxZݑ@0k\_z1tmҥј,- GlǼ|Ŝڑ̻Zg-339I ZgWP WAtD_Qf:I&W?tD_XƳ,paZZ .ȓk[Syʴ$H\R.E!g  z&xO`8 q) C B DkH*h3?.c2Xs+?P 0 iS`%P:Ѧ8al;,wfC:R#4?J$}f 5Qvh(aP{0-QD qp2E/Bޞ`Ԣڨ)MBjG/KfS$$:jh. ! yTF fSѓE0R/#UM@pa{`%N1B _!yb¡P\2!S -0dW WcCL)Kr8̐Ӟ֋3F0*N>'lϊѧb*J1֣1ģDATPUAxxqTFW'NDS i;K0KZq\tEZNuStTPǬT i!Y%'lШޗu+0b aEiD< yFiD<-gXk M|8"iֵ~(A#a2IM%Q4V0OcOF4 K6}gQrmQȃ}.H.f%Xnn<*8#_`Q|K  !p@ 0G:dRrs^0M:"Q#S##,Q?Gu2u2ssc =c|rK`z h'DT/t7S{?w@,VeD,g-) EyIp.CJqC1SOr.Wl qi& RVp!7 lJDlaZ| 0D0π7r  v77u|9!V} z7 0gLHABKaA O01#ZqWI1YjFe;XpP-:8tN:#DapX"7}j!Ib3WPsX@/#LtNyQ#7‡zr]`#H#`t*.W4O 17R'uLuavsH؆s.te 0uktIw(1W=Ub{ua(v+@)##'#q ] ]qRC7Sw I{/A21DwH mBHCETCwA*/p0 X`pjl$lIH5{ ^}Bhќz4ǐu@G%1l7J0pٟ9j%X%)5x]VeXE`I HVii PHwEn!o4%e x܅o nታ)p  2`3)6 plgL^5oo!dzr6(#=`"pd c`sO Q7LK:s 1RxfbfY:'`مXHq?9VzH?5Quc>a'a'( 1?r?r<:8x] S}q/y/yw{w0,| RʈZMO0 S"iaT(Xa./vf6 K7}r!%$`2jP#0m YUt 1Er%VH 385r$gC*jX1/DQX|Ymӱ3n I3An7!q!:|Ib RH'72/[66}4!B C@lKZl0"KĤ*8;Q* Z`A%R_:_(bR ' HowD&p"?w:՛P.oixp !jXbFS_AF X?0&m!":5_&R_4$t&Hi`&v}tEW1f1aO+},۽H Q yɪj; ;zr ·H!+ Rn'\4kćd 42ә$!5DZpd~5%Z 6JHl A7< jGj:4&:S3'R_A]T!ѹ0a+reK<.@P%!0vZPJPr:׶L؂ȍ<_ٷmbt+f;#}tjkZ*t4au'>Ð=S.e 0@ UKSCRjFTc򚥆ŷwCMF Av!X<%[ceb63_%oQmX;DhLKiOSirVA: P0e oMMESL l ףxcw0#Yz[kF"5IÞ!j"d9'x XBĜdĵ\Tkv7E <bpԲU:)j7Ke8+"r_B:~2uB'@kM`'ZdP]\ \{ٗyshJٔ+\~<5Ҕcg)P8PkhixuT#@t>f:võwve/\PŽm9TU,% QG5j2qFmW0؞͔G/2c3Q@Mc:d3F.3qA22 H 3pPG?#} | 07DDپ /Ùax3.jz3!F7SIE,*vb6C~:d<6!t!e}JdVrT1G;"Em.Zw ar)PuPl!90p MȊ]{ly[z1` ^O({ؔ'P/4ڥ"#R{>ʪ|">$ёR:=\,萻Kyotվ0 퉬6̑nHl$#]5qUf&5;@C,C5 JD qAD7z|mv" &6 |2 BPjGi 1JCArF if 6Fɹi*<!j~nٌ ʑQ]j5TZlD (eBW?slx)(Pa}uLĩR[EPZpT„qjdU?5afXi-Y36BDhQcnA:dċv  W_͝7gN@!Fȱ;k_JE" W'}"+O8?c0.xt;Ķ 9D݈S8 @.@ k㚻R8744at #u/@/(@l@(B3/$`$d䣐)"N*4A 4~TMT͓@J'&M6MB% T*$Qa$Jp͐zk0d\%\aXS2C J0A,16jh!">j$ODJD42FM%rqJVD6YE)Dj *ƶ Zx5XZ68+,p#[*2dV< &8qV(+h1`Z^~ ua(@#%H)"_PaC0*ĶpM8<.dR sκv;-`<X>2( D︭w?8g\~Bp968<OzSW5> 0"6;{H$%Ȃ"%F")3sɾ$J@¦P+ `D`TVpi!4K !23-70 p&R7B3h1 Z↴0}iP#=}+\2 )Hˌ%.|91 UyO5E{ً^CPQ 1BboSy8"\ES l]aYXbUr! "X Zp09U 6!fG8tktF#JDD"t;Wٛsg=A #)HK΋'WyA 䠫؈A\0$!8!Qow'FSQRns\xnG;(5t@Z_,eJ[2 AA{&FBÐQ!Kd*]0&w=_ %@'?a%׆-#@/4 /PT*¦Vt-g aC!3Cg2!6CKźVȕ!)@"GeЉMm. ^;q S08^IC=򃠑d\PtN[Z%pT%`4 QFtz5'et˫č89N|}7*|@O?My*`~"8A:E+?ʀ-KW:ץ"iSJR G,=\B4e*SGh~}> K 򄇈&\bI~qqO žB"4Wڟ2ګm ~-m$ɶ8k<IJa܊Y5}DИܺS9ˠ٪\+EIB^+fM*Z>e v :jJi@B `3p[-۰9{%8ȃ9&쐯"%p 戹8yԡ'0Џ-䰹Q+揄@(1:A2) ȻRa;,P3hbDOppy5 6h+PDiQ=`ċK#@$hY. R6P5 bz;_`5|adLx(,Z83 S0(8s1(z1J@ #BXHPз2 EP R:"NQI-u3I?pK0 8jPC5ԐNjٴ5ZӠ$!РJaJZ7VI-2TC  = (7W@YS阱r O1>K#F,Z6! js!_ixhZhQ"9xgȅ""IFSQTaT1*IO!!8S{ ; ]Z`"5VpDRQPF"xBPf@2H/oDڮAYc 2-P .h($@H)RĊPKظN$XD7K->j ")qZYLհq ݩ6?Cwm+ l,3 J8)K4%ېJ&D9 bB #S g2pe9EU˸K1T8hZ5iTQ[ҿ;2}43ȾȚH@`{^#di?H6"@8V]nxVnx fP!5B $XTV!R4_P6+RS-dZ9HMLML0ZRBdd)x=\OcF"d 9?ȌŵP2V#Q %CaGo[d8Aӯ"Z*<ԯ%TT_29ɏ'& k CӁ =7󂶸 Z (]"v@^ʨ,ekrpި^9jgdOelPχ}dxO^HHY.=rtrBdGDWueX?YZlLgx9'PMSPMX\Ff,uFf$_Ye\6ؼI 8NY;Ɛ"+HCoGUcH!/ ,\1W;F2 8rB"N.іZړbA3# OObM _PKSƓQqēvCST;b ոwD.% !@LdEpK#dR/p\YJ [BUPFuhe]%AS$vҫޥ1q]P^(6B+zeVnxhg2 ! F fƫ`OvFBHd`{:9("ǻX ʤOT\`_j t!p`caKXW``SU9@l-M_^a\WeM9XHSqMi0 1 ̲ڤp, /Z&H Ecb+3 hd!,ΛIQ5ar$$8M'ZP2)duc ::*hbSJcK [o 7EddNXj\ǥ[ʃRk\U&?=#X&SLݛ;ԵI Yѱ У,M6h J}uMxq^ .2 բk κnΗf`_mew~FD(HB^`5f0j+ LHtLNtS 9Hy Rp5ZpZ0L0upwބ*b faɅgUf 6KN@Dn2`rlQAV%qy iQg)V>*FZ?1QD a GqU-ܠkëpa% Q"QE<-vC8۔E֦QEJwTl`۹##*mPeȀQʏ־#;(d\mm`ئB<0IŃG݈<Ȼ Z5\}v"} Ho@ gzn}}{7?~Fku`(!Aߒ:B (D~7y (J~ftR݀KJ`'+b M<6ְX & RXndBغ1fC(FdO؆0B]lFOx"j3ИdZm,)X oEՙMfeO0% ,TܤP&TԄhkך'vTi)~m 'saws2 /:0!0x.r>:8RrH-Y+[yr处%urJ$DM;\'?f??*]`/x}.~s>#Mp3GF@$F5htZ ?نqh:g@} Ad Qvd()z-)ڻޝJ*@=<6 d.> 7A9ㅛ:{ V rL’+b7_WڊPrq:H5PhN+zíX[Jx-B"\A4Dt<SWg͵K,AWAt[l_uX%3PZ(%xKafH!1Rĝ @(s`f4\t7E\rr#Fbdܥ !DRGXq+5@qȗ+v %$XIX0X-\T%IH (\Ur}F &ٍ}8'hj@/{XG\u]3TIBFYT(ٓQYII}TXQO c DʟBʴM<]y0 _*+?ď@@$BP e-ArXc?zŹͅi L-B =Tpڵ؟BUX Q.(V[0@s=6W6r]`N IS>@ZRxιWlȅqІ\y܂zT2aHʡءIO=XeNDWa$"# >"4=%r}XS0ԍ]"D/bXjH؍ A?@ ɘ8dԒ".b. m|TYO(AX1Bd36k`HM9LpN;1y-Ւ}ŭ]q oKNڢ >F R*] tŹYQ(b@-3 Ml®D3lBFFD ZZ$´$ FdAy`lxԆ@4e c%|)f}Jddpgf!:| F@3 ]7ڬe;~y|qRوu{)pȡ;bp`Ve&29Jb:&V N}&֠241W.at|p WHXu`Snn@< @ + ,ODO9g qGUI0ɝ`E؉HYk)DS}{XtNvFwDӔBpS$KfiЂRZ QQYyA0Z‰&AG$ VEɚ?,reUzK ] Dd1d .|n y qnP,['%wLm'x^!j`Bf@* W*:B8~<ȣ~l*F/iBt"Yۏiv$u,ae.vp@q+y][F@NHaȥA`[W*eWZK [DƬ@?GlDCİ E[QP¤ @Pvxe@7ExW;ior5Q 7nvp`8e@\t%6KxO(W&m^W}Hh̦X΄eARal L̄0n1m.#ڲMe&?A,@vƭn`23 uf*~ܲΎ 3@QC83<3oo4'ٶZiqk,硫&0N(1m#Mlwh"ę>GxsA߳y0&HǞ⒐ QPBx4G GB@ HFE3pU" +|KtLkXdlUMƽmʬ8/;ӽk)l(u5e䯄<"}R14@ *@ac*peWjGsgÁ*ψb1*ܱ]c)bzF~Xꚗ3ȟljb+v &7&Te2]@.+(sqaFxW2ڦF7<DTn"zR X,6PFX + 6suӔ <#c̫ۡN g>ToAbt͵AB<0 ;BhI1 LXE^lƸ-Gr#IB܋~ҔZZKJHIO$.GSM:T _K5IN 1@bQvH+5j]uUt@ZHЇ ]㋛$ň%LriOWP^ cL<3& z(ЄjA$D]؃ֳZYgW}.LkvZULHD%p-fx –4`/{DW ,590!b05 7Zx &6.N1F9!#CJ _h::Qx<,f_tVC+آjR1!BѤaV8YK™ ѡ Dm$fDzs(%oA0 68(?PɅHmQ"H = lʍ)Nܚ`0 N`zӛh>Ih Z5A #j( WЀh-T|%=E/)yL>ce#j+S(MOMZu%Y{Я&IbfHu p}A(8@p1ITu~~hJEku"";D [! )Ԇ7 o~C-'dJQEXˠ9"is1yYlƮTDY\MU/^g@"P*O8 $hUGF'XT%~G}HrvIژ"{?zqV}sC?J{-zDxml࠰Jx\N[DgK!*BY,2čDHV2y:Q >J,iK輺d D]|S JN5 Ru3GW+.}d{ Ao\TVD R v" DDѺ/_9Pn)/AKL,ģYX&~d1~#,%ZH#~",b *ilE܎}+Q$,*DDTm&N FMsjN8  9D- ࠎN0 qծ` MX u\^}ԭ"x'|G4U\pyM`g1fqy*.[REp"CRVM'r+ H<^Oۼ/_TTR¢N#I-:ȂkHjdȀ C J9HN5L. 4PaFFh \7rH :> @@[0Acy򱛌 Ŷbf(lp/LO#.V"f&&R1.L|Dk9"RDD6LrnILGSG+Zk~*0R9$ B/+O~$坬o#r  kbE'"(EP"mfr%ke/bi;&8b#Uc9l1U//Zޯ Tl`\-_4BFJ.DJcdH:Hc W enaPH<ӧ`"ybB6,2dS99ҨdM[ErUdfu:wW@;]`:^#ƄiΧR pH7r(ܓVgdZ%YZQUC?=N>x ^rیyp;F9c=uZoE Z7Nj L29yq5WhOSJ ǭb%) G|.Wvrj+K+!!POڧ ghk)VDNbcE~y6S#0 mhO%X Bӹ jw-"-j7 /˒/$lehp7C$ay"/s$OULSNjZJ.0*w,Y dj9t&|ڧÓZ36rul6p2=fx8v9r={`ZJmZJй-nl:ʵyO&3I1'rŠȮiy!ƕuE=橽m:fj!ب(+okuP鰫Yf344L7bɖ$RAy.3.u .0 TNe%<[3iw!Y~X0SSr6>>Us"a!Anc:f%psvT_=cq…+ܷ@@1Sj1mE`ŋ7Ӆ&4n3ˀzO[&8QRI{;{B"v& AQܗu!gp'RKlp 4,: KāQ#At A 4wN h^tPsF'I!HҴJy$[/z셯< .Dk_"抸?mےE@V#P #(|Qƈr% Z͞E(5jO'B\2JbݴiPRLܹ^J&Rءo (Aa;o˓2@K-^w?ZNh>?S8TQJdOJ?S[`uI`QXeQG(-&@ B? |#9VkA$@D(c2F/tK?=0 aN?T`@Tp  HW\4:0ї_pcSΨAaI4*\EFJ4d5Ց@<=Ԫ}zBPBRFT-UUjeW01Xt]l_]xᵕelQaAXbyXbfXMc%Ziqņ^'p!{1rmua?vw]wz7r$Wrxg\H[qD9`' EQES+[}퇂e 'K faKZE )#ۦ%Pz zKAhM n9nREb&hAH(DK+*ؕT}PWPe0;!j(H;%ENnRH5$SeG;z,ja4oH>{HwY|Vaq_RsW9TM ~l-3ZVXlM(=1 8Ԙ-jbMLZB4f}HH~8 a磁)AJ$aIuv]%WO䳿_;ڇh!1m r-ū]a kTګC-(2P v3H8@ y\ЃO=:1U?oS1qC('AP>Sc g~Q2UOZ5L8c%Z2U+yhyiQ\\0k@z?i zWzwzpzwzHh~4Dx{@#E#fm|&h m}}h`χF1,z!@adA84CBqC)3D1 $1sR9;2CP 212d0q;s#D+2<B=,cJ='ܗCUAUxH!ׄI2IWE!!DNg4MX5If6F/l|GQv\e0!:`[%HцsM#QZPilCu(DKK\y*rTBxMtK*\byWp蘙8HH?DHx|(|8)蛿|ϨPSO,\=Q@d~h1Scu1 D+uB&4RpH#ؑ 4Be`IBA8to4U7+F>S"c+D+J$Lb<+,'CFUaAN[f`4NSEaD<wxAi?DK$K7"jx*"VE9ua$FS'tcF5|x3y:gC\| $YwFq??jx\216*KrTEx@hRUIqimB٧) J!wiW 鉆`{P T ` z'ڛ9m|1h6U @AA0@ĺ2.oQAi9pCVS3.'sSCS+3~-^AP8c+D;zDS:sC+جV4%H>ϲ!$>jd-Z(N<" >>Zd9[9<Fe RsxR7 +0:)Ѣ_\X]ڥԃ 3!+*!!Y\\Vi;:&*F!+:!}4%{zɧmJ9?pwj }ʙiQ^Q &|7(mHz|ψ:K@:zUONanRS1zI)`@:PB`tתv0$a%2 +RP +q Ȥ-#A8rQ)s:;.>f0;,>Q,B3!\]DؤKAI&?21ZAT SȽ¼POg~Ԓ[ƂBѮnMf151!r4/G'̢%89Fi]FM&欢7+omXXy:cm:jJ)/+>lsqBj% G w**|MUu &y&hb{)s0irx~Hm{%NƺƙzК 'Z՗ˌf|ś|"/aɝ<|}e0?($Miqp13P2Uٵq@D0=mnuu,_$>j Zm!܄GetCù2эG+>A=1ZMZ}I͓8qK(EO/:M7Ў>4Q]۵ڮ&YFcn>ywWx3c>mQmM|YtZB[?p߿Y:dQzԦxDͧL{7h"3Hv7n~{+ fB$^a>c;ipJO1p J8AѲ(H1?5jTO q"DؑcG&O H?nYE?2J$Ut)%C"JU1n_Ռ"DPZ,؍i3U2d@;"k|VPB /Dn9ru_Ad.BeMF6'bsTC<]̭Q8á uk;,XrE\|iS9w̟H)c4{O3P 3ڮTnڰr2 @ $H8LL80ZQ$顇4rL*00/ &PaRBlIJF`A /@1^@MGyA82<3PB7STB )!-@I ;# 6.r NXʠ0RPJR҂L TRT>‰'0Jظ%ҝ"+}F,hJ-,H҈Q3 //o ::j3 +V,2 M2mD QFb63М+㸷ݎL0 #C[‹&+ B_0.x7鮓B8@.#T︛Z+ز:<K@[lEN4f$F_^\<> O{H&0Kq`LBJ gP (tҕZ ڲK+c}vڙ*|mK[Ē5:Bid_7juY(ilʐ4TX5 gs0ƀ@\8F2w=91u>.\9}lU-f1+Oy1AϪ#4g?P0'W*;޹ZdhgaR8-E*Nj\( 9/|QrH8-Ig(D!G:#ȸ'0I[Ҵ4Mv .0Rt:SӥxR D)\6vE ;M03%QW*?'Tj&40xG0e&QXj,PrVt6o#EV%?{~.߸1\iY( o㘆6Q HA+y#pEPQ/!{N`Zf@C~l:Xq;:T̔$1(N S?J㟤9`>9MEd }ACÞa;|F%Dm\$#17I2q20mv, -iAlBxWileHȒ:9 M:''D %tԜBQq n̪!(T2"d$%A* yMRlz vg|{dUTsrk,UV0idЯxTK4ń㟸F6@ МI'[z}_)Yp4jDsHl9'sJ|:iu2hd?Q05,5pJң,U5|i Y5u򓲬4͜tge͢yBĤ ٺMixkldWiri8<RxHB% F-Td%{#Ձ ׽)NyzWJ8MMTlغWZnN EvyV`ң5L@ '(ALU9yanN`D /NUlF*  Oz3,jYnQXvmYİ,zI7R{ݟ]5]ǂh`# 0C1d0_yfu-A:5L1? H1DYW?r@p. .1b*x:'F9թfRqttPM\y|!0IIX)է~j,$y#y?jT7ZOa rD*Q(qQ*Q!Tot/-ѫ-n&WQ%Rk6umm)z;X3$zk5=h2)JlH*.MjqW9۫.}aaE~nEj Loa愂! O.P\̃G1'. qJx a8)xRHB1 Y'1)p$+: Q*~IP:X2X;:A ;:hh8)Y?S323S5+Ch62<"%1C,<;KK&!BAPAJ< 44f%QУ ъ>mly^F30>g< XL+\̟t!)jh@ v$yጉSGy ɹ|b@ڸ#!!#r t&YT!a: I j$a˩1L8+(:$I6#Z$+63;CHD⻡4,C-|$ѳ/B*г3?3Ò&J)D = @a;q5IIČhڠ HN 8%0%´rbsnY_q G  鈬ЊbGæ]) 8'Rct9!o7rtAO9t [&:2a"ʈt"4IOJَB+ @A% )PaƬp持li.%^ZM*ƢHY_+Ԍ(T %LTAC du8 e d%Me5@'5kuYU]MK*ൔ!9`)O&V3o.VR 9oi i$0hOo0p]&:Ixa@$$BHϥ1H%tIU}1xP>2^QiVw+#PA gN( HE?sĺ8 ȀH` 8Ta*2s{U/$SWuEQz>DKxL3vst:D^%`|MDZ'Dx"Ƣgw`CipϞMőa#&8`ⵏ0 aa:\\]EbĽ@-\oǓ5q^Wŀ|ZGW/W6dP"b"OWAv]*Qv?dq98ߟ?' EOR9 \4L1\(JĿ:|:4F'R\hE+^`:AdLVka$ $ŀ+*N@+I *?2-g`%q\sr[iul ~!@Cƭ"8?\p~_ 1o@@ n> x"ꏯ~=3\ " V)( MZPz Մd( X '"T!JD( /nAH?5cQXvCR\ĥSR`tGaJAReN&X`K14@oYuԑJD\DWMD褲i]DEaiEI`ntD\`Lڄ;Q> PgI;I`@UP"`U WvX\ ci%/' _0jt^9&XƢr?pA^HF*,J*? M,y&P qhQe@ආk@E}1\l [WqՕGsq1X\uɕlzέ,ZeW7u*gBw]qG~ӀOQ!#QkZ6aH5/*FX^飃'bA>yyBF$=lиkxQSJzb0`vRR49OR%ayzHKQy5,ՠ(FI%NqJK_d<`eԑjКHEP}W9XƆUmOn_tqL1$VqXЗ XXnP* H4X0De <04 TY(ԍ ,3C &j+ز?$@AϚ2\aG? @Y#(ePys\;ԑxxD>ݹ";$H Hjf[P6 1=]#`Z =51jOQDD!-F[z6#,q(jN6QRH)?jR)yqk\yWvvI_(IvK=sJ$R4,@X / as1XR1PU<ET<0) @p)4뉿N% %(OHW@%*v6YE&'xVP~ ,X .(R2^@$ z}P.P?\@<_`JLNS0$5?20Ù45a!u0HWn@KrU3q;gOވDꄧ9Vw38&XphqO"1 :}Dc d -RdD7dE]k\Xːi(]CIUqdvL 2qSzNte3J))\ݝ\N$4 $\ /27?HRZ%Kh eҗ*pDxT2 Tbe.-j['áAm L. 8EԸ$ AS2^XK( d@MJѩ).*4.p+b!f0p=1rDJ<xB5:UXU(]|ƫ/P26e  VƬV6 2Ӑ !4mXz-f{FMnЌ"6Ca(6ꓬ VәlRRN׎moa 'bjrH om;&zil3-Nm攂t@_[x]qa$t .R}Y@u+IVF%%cʷP|G1h$.VZHa⿎7i , 0X Ruख9S`>l:ӢKRH  PH?@ÐSp%SPn)m8IYHg]n6q<1^mo|qF2!& tӃF#_m=~҇ԍc'մ`YZqnJGAh=[!06wK{Mb MSrݰ1WKMVΆ*;W|-M Yri҇Qݐ$zt#.nn"=ީ/΂XhגP]z;)>U)G ė9@YV8"@GLhJ,K\(BE8cݷ0$@@%H1D,,@g܋e$TPjDJ ՜lMu-@DDςwН}}~8pGA Zt|XY]|! LPXwdX!@-ՔH葂Re iZk9V Y ]׈MUb#Zޥe^^R,횮NQR^*ʼn. WQo݉xβ}ىuyDE@}2׹x-?B7Aq:Ο@DAܟ\O8ePHŬG8E&DFXEUTSAr \\zxxEF^CuZF &U mg C@ XS%4UE V0JjK\Lk4D@͝pDEWv!!q \^8e -wCnh!2%H\9bcQ*ZݞLI! q%vj=&fNb$.#=q5sM՜N-"0[53F@; By_TB8Ͽ7l$ʟP'#VBlQ?@ EGd8G֌ PńGagGBZQ¨Co X*$p f |KyI̋FPLODz(a} ][T1ɄXsAT6QhCB pTB%$,)IP Ge1Ks!q4Z5Lh}Ț%2 hi׸8bnf$v^YF*Ibk>Ȯ%.f21kV[i&.jhJAl6.&j11SpNF:W595Wr.ġX|vKNU@<C8 Fx*a|f5ʼnS*dBhǴDVnEnETMAo -hXzPPJ~F˽H,@ @TyC(KO֐SMd*h R>$\Yi(v\HՕ:R|NJ۳IܚOdK 2P5WCPcJeTD0jVȆʮXHXN?)ŨeTx UjU`#/GL f$EnTFe`+CB(+\ ΫnfF6U41UJn(OFP~(3orTB' 'KEA%l ܆XbsB) ?G"M=Mb$`@s R B CO BtiBcpIam ixtLjqXi4kR_ݢ-p1 qqb*2S2[Zj1S/.G F@M5Z>CD.(J`P,K#`ntcƀ5MNDU{5CpunhH~6ȄKZLTJʼnJH'^g5 "OX@#/ c#6viPOCDjeZg/)┸2 G:n6h(L2 I $nFZ2LqH/KXO6B)uA9FKYE?!FZ@>te{ʘH@["(ij~ Y {)EL4D ɝ8D'*bFo;4J|·G;1CO|if#qRLM;|R㴊3lBq0FYJ DuOV5C\9VIg#(OՄKĎqA5G o_<ܚ ?26#3#yhU(h 1.7RłiCX,X︚kн,PYٍ T@`ǩ30wMUlV@A OՐ175w~ 2!ȎȢôCdL @{yg%ŕUYaif Eoo?(m {CO C7-J?{ SIPD;9s0B8q2LPa,/#̈1%bbAh'e^y͙'yބ(;I!j4AATSSiV.qXk *x?GӐ O/]ϲEG W`P `N91ep T 88q % @56\@62ujwjH LB`RH#1?/_ 6,XdN nzyK *\ &i@Mh@ _0a5&0E <#$ESO/hOQ rȣ_}|XsiחlUu~\IJi#R#5!l R3qVr@)::\0e?Ҁ 6ĩJWR.|1*nvr#x ? p$ 5ITp )O@Ia'iJָ #^S286uhF-2`D X@<ˆI+uŮv%miPc@]y4tV5HL8 8Ʒmz,_%S͓! m Eڑ>t# Q8`nnq\LcCDJH1LaQv4S&oJSqiD! e?!O $(#:ih^=7HpZ8UTQ#S  zPhsҮ/lWIↃ]5uǢi 3%Vl4'(^Kh5kZӚ ^:$|-K@nXvG.HKUSG Z<ש6Q:r;)m&&=Am%JY)Bh5![>_x)" D9 (D;:4i,5_ (m1oy%+Lhɖ=3iɝ':%~,TA'Mg( jJ~v.B}G~{e"`>JJȎ:|JhD78vC8R"g)>F LLˏ68R_r+mB>hk=Q5)c|+nF0¦;-@@ 4-9tx T & t$Fepe2!gL K0K "D"3"DTPDNL %(TEQ2$"#Hj.%[|:"h'4%p$ŦvB%WBǖ!rzr@0.. 0$(Q(L(H /`nxЏf.x1i.).n xd#n` bmbn`1~/%`2 2ca$2SX@,I ʋ$Hj:.h8an(|פ#Ojj "?.fڬ:%cm;2o nx+: 26ݮb C\Jte?O 0A˛v&"z0kn6 O J0Q&RCE%$"(Vb p~8%{ Hl6^ebF'!(B R!W| ~v" Rʘz (D C@8 b9.l*b/+F{8jhn֌?xAP0y|>0q͸8m"2hd2~3ASL*e tS[+0梐3hr2v1qQwѵ.$ &iXC΃=@`j:7)B³ ^?#; o敚="+h 7pl s k/ 2?.7`'f I/kHIξNA/Jҩv0(4:Nw2TN|PǟCQ$I( jR|($$"$&`'WSn UbS"B(q&s0XLB""hJh uY(b.bRW,k`"o:*.BC0N!N!.^ϏES. lV}Pn/1m/VfV7+.BN84MM4qJyl&\j5p<+0m-0kszF>CCh5ZIf+m#@ Kl ޢ؆Y*fN]8ȕ[0t _-IDD6SI.`|o|Y纤5!`Dz0tRl".Py.Rnaa0R(@n{0Rh >VGede&'΂M UɊp)Af2@8UФ~($.*)Hl&0./0MB^8v^C^TKTcF6 l\3in]4T"`FRGT&7 %tcwFyFaV'+ zm:kVt%4( ʠeQx_&.Q+.r.ڣs8$.Jp/E1n> P~s6pHQ /t7l(Q0 эe1uo0m6/"ozfWW{PgOh?/B97wuB-ILIU7L.XNbEx8Ildɹ B,LU\E"U *weY=LRB8% i#nJTQ.QNrQt$ȏkO+Ҕ̺rKK.*<6pI'ĘP 11~6ҴvQo3{|cKW/"hE:|Z[K8|Ml ot=ښ:֎/:&5:& X[7R# !CJ ^BA6=ز_O,tcJ/[$IDhAժV!\vJ5?Y۪_! ٻRhbG ;;4ڡ0Wc;(92Y;ٷuA:NF|`F B@@V%i49v}'(U)іPEeG uLT*PtM4KZ—B#qy jQ \}%Wei?o%U_Wbni.X?u_y "S/qY] fz9f^Wn`yJmj0,8BG2+LrPcs8Μ0h6dXֵ*JtgiD. e~VB#NZ):EHSтb lP r&HBXZU7IQZ7 IiJB:I#%HIk(t8&IGyV!h(ҐAHD6Qq}";?EQ&&l x]L>b+x#4Ee$$/IMq(@y.@Ĉ *bTaI+aq) YŒsI43(b:{IƣcjucXmh3/I'7.ܘob0ƆNjf5 szZ$d٢H2YNb 8*^ (W:dCz)ЀOH#|2vbP $!?R,+;Q,;:%JW%Vm4[D$=t!TC:HIk IKu!YSnV;'Ԡ%vib ILL[ʝt%e.Wt QZrsR^GNo%2oJYWW%IqF*R :Ce/b5PQK,BWP@$,g#LKX77u ƴ70d icȘà9|`vN JⲚ hb&J*W\B*ޘ?pA#:4@D&Z6ivD ۃ!ŏ\e4M\V:iF|R:"rnx4ZQrrq}d:gzfuK"KWRNM;l:C :"gVʍ)*p&:i$%F=|LdYիVżj%h\5,g) ,pCc^w8N"p &^nޕ]'Vܦ;q1C$ǯZ/@dyZSz1HY/\AЇ@ne3U, h]8Ӷ9gXr$Yh$$êuW ғhD#qp SwZy2xg>閆dE 692ݒZAL Q󝭕Lٚ D{1Q6o4yIP}\k|JPʹd n(%ȷ5R,M*]tĚ2pU_1zAEmqE p <|16ozp|w'AC403a4/CcBD BcBTDc3C5#dS?Gf@`-m6'VVI&3g,08s?:0X8R*B 000585"jgA"ku"r:dX3JY4%ABvygc$HU8o{G8TYpjdgKJgK eK($cYr%eLU(1'&Ly!8WE5MC*"Q|׆(f<4a|W^Ƈ+ɇ?NV>%|MqGnUNto%PQ$@e,,g!dR?-!fuppb8xb10TS( 0!1Rqq菇q&7FXTEsYdKr44^us _dqAXeX A buS! $ ,YE,) qcW 'yVgXZi Hfew|#/76#XvGqjY$zGZAB8.bJf:U7XW:i!"Y%[:k%'Szy];Éb#>%!"bgN8A+>fR+$)b5<q{]R=:N=l4Gq0GB4̲,1PdV`xaX" d]~`f.47b50d!1g734C xC !2!rdY`ysed!h-:1V0GRmeXP>9JJ.I0 1I(uB# f3gGO {wr'S pcW# 2R xs5G$)E#ZR u81JGR#IVG~j]SxG&%s&j&j:jf(t(uMbB|(<NQBz&f(%GMS+,1*(+]_w*=m4yp_˗?J3_}E &sQU5,r!mxC6hэ pZ̩4Hɜba1>˱)@qD*3 T_T);vɐ6wPFsP lw5sFt V O֭dQ0) Cs5W!WR R! 'AK1rjrwj}R>@"(%0*h|Ư' hL#T;g?:Il~xGLriv#'-;(TZyT(p)&&z|ʴZjjuꄅV uERW؊ȔyS vv$8CGYITH7vBg Jp5tJx"{v5vs:Lb(2L&xyW]URMw%9@n@S"uSd.;ƀf7r;-g6Tj, sSzp;q.+CA2a2X;cO$d?iV4{8q"PmMfZec8zI+r"Ы2itE'd\G䕡gJ"u8e:Ary"(#MIW kTZXI<x#fT!=~΂'jG[2K bvB;!)B|wL6xԭ;ׄMj >l=>YkIA9CH|'p3w!UPU}VE(Vd8]ƥjB `;Od@0qa13I(O? PVoanx]lg;Fs OsX4:, VnͫXԻ$6rɭ%ztغ5DC)h jgxd,h ZůE6hT nWf~HRjggiHℑk5PZW4; (Е݄(ô'|S Sk ޷{]Q:M>NCM|% 1rd7JD,QaoU͸Rad~GnǜzH*CԷq[B?UBZ=*MLI$UnnUQV;N֝L@qOn 8wJO rJhX* KBˆE(5E"vX$hoNڒT%@7dW #՛pGs0']>9%l6=$ܷ4:X:LaK]wB)7L(<^MF{+^zeJ:lH1+*N<m"jӑ@A7"dAcgI;`۷$@>TBa0(41.?6naWUqN'TQhF/gqF@ KfnF #2"f&#}f/U!W'.Y@ oA3\O0$B9rTH!cHnd24dpDaNLx ?+d G ړL>?A^%aB&jګmh!۴e¿|Wa +{@q`M;?5P+r]͓+W>,q$$pZ ]P./c\g}VxN3$x"hHAv !(( w{GG?Ĉ>|} ljC8" ɷh;a+N!% :D0>@:(C#?beDFTAX XLQ!|NAE%YLETL:R RB0)Lআj醱! -(sDh (|P#d$V:%*4#+)( (Z*' )*iĚJS*T^b-,l Lc-h# kJ+$Xܐ*[`wg"A3 Q$8={>۫/a0=/<@!M! 7qC;!;ʨÁ'ɩMG1jn2?V([S 4G ,jo\ nTpo, j#E3*S%M鱔8j NqUԑb@X4‹JB 3+J~j&8+cJֱfMl/ ; [Ѻ+SjE2y^JпiM`0i` )8$)x~>}se>}أq ?iS倅 9P;$ otțٌgЅv0%`PbT9M!VIȦ##)lWڲ"UjHdIRә2B$<%zJvgN5AId$zԛB?ir XTK@)1\H(2!𵠙f;6xdPD aZH hmksV%l[׀<7M\}}M! .iN˻H6#?O#6;5]a,_>cchFzЄض-e- Ej ف0SH9JH)`軤7 N|4,U4~jT䨩NJqW w[Sݚ,_10=1AQK@ϙI22q 1H Ú \ C Tz8 ,9%K<9 3dA1[3@ѦCgkB" Hrw j2.Q&ѩ?>ISiRv1ٟch&w 3 ; x =2='r6Aa 򘄙Cw¨Q{Ὃ—b_ۍh>j) `i>03 0a*T")+q8S+0#)*#)jq#I9 l2hA0+?'K,x$ D*o$ Ij|2"{5ْ*zOZ c A:.9P k3q;A>2I eyBXd)&"']: d-kBBPqi4 Y uҟ0ÈҵDC.4 x) (xxt12"d=Q(i=ޫ!<ߘD顛 vK)iD"P)"˷~k sI;(XđZ>  @Ȓ  *M l8G yHFQK;&p b-4@ N I+h(y5/fcÐ'pX2" iSә`7!)8Y7h"b4:2%S ^lS;>hp*& &&I&ܻp1 YV˺?zTm;њG>*>AJɈ߬x0,B#(c݈g\oĔD*ar m(0A\ ;CAVz%UCWOA)+3ɣcHXEhX s; r2bśǫט c-Cq;èk&= XrQ~]C t:yJЋQRj='ⶅ u':56ؐ!*ݍ_! Ő8)0=hR&I)s*+ESsٻ%; 4M&Dm؆;:|5}OHF< ҪYgH@[ccb8݈:a)eܙǺ?kU//VK(\5\3%/Q[ {j쁴`&i#p]ܢIאPOBC1dM?`I5 ^ P p!"5) mEQy혯uРe T[#P}.`&!)pu _)-)ḩ8Th*f<QAW4 53?t4=G?:ВTMbJͳ,m<ۄN#T,F%9K D3Fi)i/B?阎"`S22 3Σ3c/b@39FԦc=\E) bM˴bH8I 0Pu^<4ȃES RKd UPdQ(D. W "uJw8t۠\VB!qA|wQ("Ecp'E0vۙ~ אqI^qE&Hp*3)+aɒ#ViJ EP󉋷5dؑD9}hH6{h#:Hem܊{थ]Om:9܎0╘ni{i?hFVVGK%Pܝ3 ĝ*>f~i40p?] +?mcmB;]L)ŸF9v <(0lLXaVTvD,64>^k}: =/2y/a&F( 3ҁ9Y )VP(BhY0􎄖٦ EŻ+ o⪍ tݗg"Ѳ`9d* s4#ͮh3t9N43J!inci>a?8 6ZZƁU&\V7 0ݠ>V'paqiclGb Q W܂ 7Iؚ p\xa^|Y ȃ&ȃR/%Mf!=! ,^o^rSYns8Z~؂CayXԽ|( Y *ԙHqDt>&I^sJߎp*JG n;)]ʘX98]6̎aJ`* 9^?oʈT FU@uj%mHʱEHyǫѿoi.ZCǛ:0jopia7}~pw?@NRh]xnyUR_0 'o't|Xre)G4Q&y&aƱf)>=$Or4SC-TA5tDmtI'mC-=DҡG{O6*CvCթ8 `S?ReZqPID^}%[EVbq5nҵYۧe,`%Ad5Z:g힮bFVYwh.Z%@̠ " .'A4aBp#<]Iov@%7@8!Nl-Ha i<c5$OxFV3B!c؆Tֲ%f2ЅL@ HPo+AA $-9,C6$NmjT"Аڳ; '03 a'gR KX2%S =.zy'<(N5=D3pB$1͂n4p 1M2!"NHR9 J#&4`h|'|$ f)PW&T%C>2!vL7`&@F# j1Kxs4^K!V# MZ<-\6m>z])';ˬH ,\i7tK|KX޼H$r߷ⷿpɏ ٛ)mCC2&!+` "3l(--Lq2z?ŘPb-NUy2H|@F8N '1X%vl<@Dj H7 "ų#PB&QQXǭj[nQU>4(M6+eP2d!IJ8Qd4%8A%%))k͢і.GOd HP ۑv%L&[p~6ml5 `` nrl*+߼^sϝX.99,f}^Y]+iw=F[Ǘs1uV$_p8*oAictIad9*qS-g)l 稲>-ٍ|i*"ںQX86u(!3VBGZ*#aYFcژ7>ǧZZ&T4 Xwb2/yhB 42rV*E֤8, m$u'|=ѠTH @NHQMDwDF 5&j8 ER] <BVڱIMױRMAKf'Af5B(NPϤHON@H mS~5X]Zk6%\׶UND za%[(f)NOsϱ(,*ƚ')c*T=˚ ǀ9Uqb*@增_I.i% ]fTɌϝ`||y.pސh Ef(4҆ghHyf@^gw2$F\mXT`k`5 }G)Gvҗ@*R(6YV*<<^,CPDÜ,rk!@76Mh諕eD &JaM2)X,vȪ%>:KL=I:,?~ ׹(좽*>V*v_P.c⩼Yb@gXqF-G9gfК`\}GX9ʌш|X\ 5Fg=FhR;R>or`!buL"nUsTZ%VZrхre=W1I"{A_[S. d(YaaR){SIπaH0Pgf[fiK[q_d""o(sy3kqf+syP.:6P(QIĭFD]j7mHuQU>؆-Ҙx[)D< CD)x>b7(^}VGw4K`IRfA gzR]en;P(SOmZL^[OtuvVu2&y.IW[[r^6\Tc%W P&y)dyL6~ *Ͼiyr^]DUXfl~-Gn61bf"sxtteI6jm$ml71ؠ7 F]6z:uoXo&d ͈\U6 U`_Uu{,`Uk:GҁdN+5{NtcAa嘒F4q+$$nR+ykw8Z2e8MO^V֌zu!T8We7%XēK%>XW"xc|]~')os]y)nKnx)AtԔg626;z&_s,,۝*ż ɐ@a@ p0a>~fbE4QɈ*Jbɏ'/zL K?~m$HN(RX?3d 4]$uqtAXEo|Z`3[aQH/D!4;"DFaTR-5}q&m3Ͽ{ =#Qh=e-To޸}ێM'$A+u =P `c[n  ucb36>ak @&*9 [P P :FCC,qBO,XPpȧ+Zj%r2G`PEt mGRl-Ե% ]@D75)uCMt pr$8’1JrkT&p'?n@S}'Ҕױj)J$ huؤR6:T_]dlYz ^`YʒXvLfJq2q񥭚L4AZlVY X?Ts+!o.vDl@4P0)3 DElyN HEMo@ |X9@@aѬ'Ft~ʔ3LBl2ylC83(>hI"fC$tlRRl5% H-Q$iEBTm>Fʈ$ZջANX(>U1GDrI$DU( X DUIK6ERTI$e.(`YWV+խzGLʘ ,•yQenVt\I蹥2߸Ы/}rCϘGzVMOay/L$}n@vڎ;0 >PB F,;MI8gb}3H< xxQZLR3'@`$he͔L'->O'ExlET# G=ҀVe֔ !:UzRd%ɉ#1\BȮv5dVֱJ2:K.+R }K ՛װTVVhYe2LPc^ʗ"f.;VΊZ<²j}'H.%@H}KIlbsS6E!@n>̂; |A`[(:jy1idMFl#)̢ pJ0ޏw0 CZIpcŰCbLkYZKmEՎ dpHN0r>]̔4)Bf9)*$%7!lcX ve"+&|a ,rKo9tV`RVv:l-˼@0[:trIbP9]}RTH\ Y7\xg`ݩd OEPdpe+.4vh y nd C)yvS }n[Շġ۝!IiSo+훨\٢HpNHl,vrt) ?np['bv2dDYs;暂K|YZNNS ?֓1goFɲ02& vŖ.xZrK"zx1&W "xW -W'25k6tF9G` BxȢm$Մ>$C`i: ' +(e:H?BfBƒc.,c6䉿8(`DbivnFpmD*j-PEkMkK~G&JHHdjNv D*J"L!" I+n">>1vPgcbGtD(Zt$kTDZ"+ou4`IӓD1rn=ma+We"JǘZB0. SPy҅R\P6qE/,=a(>Fgf?@F$#C݌ DPhc 'CMAF'.W[ W#WO*CZ+DJ&ZCΦJ4 npknگ!|M[\2鰐^OtAL1_p^SuSB+j{".tMnzTL+zc]c^Qp:|ys˦'Ը "4W*t'*}0D~ Cȃ<}]Ⲱ<v쒨kr85QͲ/CUJiGXqfNW̸,uR'VXke2Y&pU)vV&-w#،$ X q4D%9rkC`'PLP>ib*gGgoLE>D=R g9)dv?<ԳB#e gSU*MѶQ avmmBFhU?rJ 1?Ƅ&YiLCcppkF KLwnx?Yd$1-7Ͱ8$^1u熑0quGFg,5Ms4#85.xw3ecQ)ǚ3z68`K\SjF&"7mT)a+h?:|<ܳ]j &V&dLDU/?P:|aJJ<>/QVʦE8y6)̙H1I|fiBj)mWkCNÔRZG=H-D$WYCɕ9.%;**{IyEvATJCu)F)7IZ[0+qs_tkku^,0XLY49z㵎Az5yw|1,hpD"A@S 's9*sRDfV@o?&HeR#0ސ GK:2 ۂ ݿzlAT1Z !qjGH J.۳)A}JTo<AAh8čHfGr }_HI7z/iL0\.B[,آ;zaO:4zzw4AQxL[C`  BG7ws7ElgQ (t~Vm:Mc:>:C*N!"ؓ*`>xB¿ @;!ÅRDp #d)J Z +Tb <5$Y2cСB,IF-z ,TX+H& 4hf/-&tx Em]- L}}]8gg;kVł $؅+m{#lAwS"O# dx<ǧGX"ڍ7=x·(,I`oLi&͜FAWG1G 0*K,f1E[hh?(iJ"a&zp49х)Zq?xj@ =tJM#P@YxQMGNM-MO=}\6?aDTSPQXVS1XEV~%Ydm)\L( Bp=G@cE\FAt-G@ZA&fFgq&lhidfeF-ņn)e݄ W\qv1Oemt-x~ݴ*zJ,:DkƉ&f$V&O@#RI[$PFUlb&[bHGj d@xECR/`#T\O[1B!b>a-t+`jl!6ͮd52L/MZ&#,!2&Dr Z0$K`t0PF^%'4qْ6MmJFenp4(4Lo/زSb7(h)XZh.X1ݱ(+i -YF uź [ҬYwU8g9#NonO[鎺&. lN[OPIi VI&Se!IG/PLK*!zF"/L9mf~IQȑ$ J9ewA e `ĂGr_0f3t N^g 4"ozC I(sv)X%> p[EK Pje "-fU$!UT-2s$c"85!#8d2o\sgMk;rUS2==M=F͇}d`  ,0Qn T ҧĥ4?Aoxrb97)E J{aا4kkd4T6'| s,a'uf,K%!+辈(W *w*"^s\ZQ֫sb&/L)dTTaAx3whh3,,[ rz %W5 `'(вK C1>-K r37v\xG Lb ӢT4թ,\.Z˪TOEm/[9lAX:07q2_R7l%AV9-Ce:$`ʴx_l S y Rv$/* L ώ@Ph߰.pa,~fo߲OZA{7y&CSI 2EZ˝.lbo󖷼~; v]H| Cĵ/\wũtN?#P_3:UEv57j2r0m,4IvݥAnZʎIhUVͽ`prHZx$O[7*3XC{g`*Q"Z0*8M 8 d? %k} Bၙ_Dȯ7`obQVkqi J(yz3Fe`:g&6lb(kC!uUGb4quf] iDV>!-Se5pAf~.0^Gfa_ `c_&bSjw7eTgl+lEuxBx:lTxDCn;ZU4n4-3*Vfz zg7W6d ֗{%PQdp3]TvzLJ|ao#҂۷gK ާZj+`cY p{&B:KB$!OxWw=`c6ls'Tdg>Xf[ zA(cϷdSvavF5A)Z18uwvRz?kQ1FlV-qp5lxvHa;FHD? qBt]ҢVW?1=ѕ4{wK0 }~W#3G[ `|! ` b3VH~X7sѴ\o3|~}/ $ DzJG%4BO3S7 ~DjcoؕU%!1*~zhq/ \n 4=RG`8`‚"Z21RwUz{`9Gw<Ǝ|DtIĄ"aS;1JfoZXD=HKS!#&QNHeb>(Ow3MZ~Td0(y|W@}wY $MѓsiU &4!NW[P[aŠ$&0U9KPyh#hXj)!*7r0疛e|2>]^'(?[BRvY^F.(9ؘg:mdƎB:AwqlH<,HQZHUc?"šA2)4OfAQ"ؔS#V&pɜWqEf7X58Mf#39neq~!!_81鳩jK& pXMO%o>PI'72h)rqzipqYL?S!:KJZk3eTY38FH_S,Jx=/Ran- Q1!1#x#+[9~B*t>%;AXuP1QDT(s**WJE[z&f֬o..`Zu6 vk7e$?h,FJ,梯fUP8I6&d6Bwgex?1 " &Ĵe]ZXH\7K ME PEPZs膥|zG"A-!}CYq~L1^;hW&:1/Y+B!8fcA/'7{#ؕ^yz ('hI+rrhX̶o١n얙1$|*?9:+G;r`dD祎 ,.GjK avT$S/BrēEM)BM CPh,XHp BVnHP(# pFW-E>M%WJ4^Zck"c@[Wlw˼!sn[3+ÛƳΝqP\y\`rw@bּ 96,,L".SóUS5<ڡ!bXmٕٗٙٛٝ ڟ-ڡMڣmڙڞښLڤmMە]۷]ڹۻ۽۶ܬ-ܗĺmڭ̣m٩ܭۘ=ܶ-ݿ]ݼm -Mm -Mm .Nn .Nn!.#N%n')+-/1.3N5n79;=?ߊ@+@LGPHB^aDnPI#P]aB~b]NgnMk~AUXON)@%OPRzKuί~2#A!,xS.. ^H[<ꭣI,>cp괾<^ Dx!.Ynn.~Se~Kncn~}.`$M ]/G!  ދnXo~n.Iu1^)p<5DNKO+OO?a.N#_[^D.4/Mz'Vb,>_HNz~b'OuB+?먾}vA/P 8x=_b@Jnn1L~DǾ<?N?O~/Ψ/7/NOwLI_.ϱ(g.'o6nLi<$X[$X`=l(q#D!ׅ$YB&)`aJI8OA%ZQI&tħ$ّdS2EǗoDjHB{WmȰ%[fʲ>󖌚Rǥ$sZwkV=/fcȑ%tQ abSD|:^u}M&'ཻ,]\ڠ01jMoI`Bx]|sQI Q9+>(`t+֢-KѴU>{7[ ^=fZV-V>K?8xP(5zjFB,Q5 S+ +)ڣoG{G3I7+w,hEVȐːH<$ 38H2"1-ұL6tM8'k1N:NZ>tPB 5Ѐ!,5%-5gIRJ:IG5A2&(XBK& 3E18T9D9/:@ W@J! 0WWxRUŬ-V=G 0 O8E<)6aXfEH@/8h+ [_V>P۸kOW_ENǗy7 թtIiLUhXTUWD3=ͪOJohM52>҃ezcb,g^ˠF\=B[CLߞyDlWrZAÏciWǂhrHH}_S57󹋫ܦ~Ŝ_D=uNR׹íܖeyUX]ڃ^ɉŭpWUO讃zQOҮX1(n̴yEãvHgu?/cJSsKOW*`bQ'h5%_DU}YڝvT`ZtٺַTTTzzzfffܩFFF6AĤ/YX?Ań 訠*\ȰÇ#JHŋ3jȱǏ CIIXɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴʦPJJիXjʵ͔`ÊKٳhӪ]˶۷pʝKݻx˷߿*LÈ+^̸ǐ`+ -kȠC3v?y'д谨_˞Mۮ۸}};恗ƝqÓ+_μУKNzŋ wNvYt'^ Zo.0ͷ߀h&uwf?OleY"VfR;"G{iǗn0x؃Gq2渡8P݁UbX皈> $8Pv{A:wxk?3V䚗]dOjdYϛ:)'highi'4 z٠bj衈&袌6裐F*)"wg~ w8{vZ Hgi#w kCiN(vVkfv{]@(Vs9baeBڐģbz8?(g)@Xl3ȏ)i>vZ@l_Zc!%.I&­ 4X)` dײXF,H d4Cx\+\X_?šKvhn`e9<1PGv~ @JЂ^44s)?$JQT(*zG,GHC*R&)(VҖ0JgJRTCȩNw>)(1ԕHMjL_T y?:ѪVV}LCѭf.0֔.HZֶn:J׹U sE:ꖼik`O6Pu,jb*r4d'KU>5HTlhA іHjQڔ6ej ;0?t+%wn ׺ծȭk`+¾ƫcnYPGPa%ZGa;ާ4L7Ա/mmvUYHw.sDz߁7/_R\&~En/dՋ^宆ͫab){TϞ]f?K,/K|ۺHءxpX!88,dkZĚ1PKWcq\߅Si0d@tL,brJ8:Jv)@{أ~>)ZhQ`?YUPh;끌.4Y^f<`wYĝp,}\[74`ŷX& ߢZ-Y>@ VzCmUֵ|ÆT|mfb]ԣElfc[ :| " V>V"A^Xn`ش2T} HѨ䵖ռ;ZȚUh7\1 pUFv,wAj=}ɩm;W$fXc˼3uN\MtnܶNrՇ/˻S2,f2pW~k)oԶBDZP{Xz6'QZ5xQACdU`1YOَZTjk'w>1 vWcv|Vt?h Hd[z [z`V#t{biux8uYuqudd!awjhG|V\gz=v|}@8QX]a]afUw|gTqa~4ckVfl`xvS@Y|v1r&h5ssTEQgDy~acGz'd(VXh[s1 ؈a`((QoadvWO&X|he6pgUjj7s5QvwUx]tZAxXGfk5^f'_Z( Džh)Arehl'Tx6b}^am[G8sT%sZs[t=ȇVeb[atqQi8u肴&u))Zcv|_'n[3X|)=H(AX&xa WAfx׋bGxlm]Xx9E$exfaw6U7srZOUvHAV=GeaUe~[L7@ Lwtjv/H8wVv[)U@\^v'Ap"w]5_KZ5SVHe9)'HaHTbaGg?EXIx}sQfn `LGF'dc[P1Xi{0W{ uIy気dY?[X|mj)ii# ^wmٔgtQ *ɶ<9 ^f~م`x~jZhrnsuYv8?)Ʃnfuȉey~Hdhv8vW9p9WG)enu6o 9%\ZY^^iXcv[IYi@֦)kefs/GR}Zi)~ Xh0j:~W&r`Y'Y}UTP& [-ڢtsk ';s̗h`Ιh@0ʀ vZh(iu$(xqyWJ)Yz疦t1Un fO)HFmgx\ڠ::1~Z؈&ksEXUijj:^ Vfcz`JjXE*EWISJoPbzki|A&i}:[O*ʠJfq)ʦ6kV8klNUhB[FXpѭ:;v+U&4zB٤#yu6W(uP)Z~q)0;bQi3GkQ%pEUڴ7i~:TȈiAT'%~aK/F,O)QDQEX1FPexȹhU0ŠHzWLjȬy9 z%䋾97x|kx`ёrA;|;g(~!a۴K˅6Zj: q[[S\~ O醰6vfp舟BÍ}[Pi{JiѸV[ٹm!7~rJj;[[Of$~K:kZwFY`q1p,;7 5\1kkvKH}xA۝%{W|-;,e |bp~r1Փh*O k>*Mꬎ=~=}?Xvl Y_>7xƄ2>05 [[Olaf 3`KɹPM{`XT/wY[q_u^2c>|Zj_',+OV~ыja_Dxp<\1K8F/`wCn|2_i6Ncřy?PtyL E-RH>ɓ')(HyzQR֎$1XĆZn2#m:uXզK']xGp^z seϜ/f˨G*W͛?u{:X7CUҬHюgSLmJH7htȢI'_~}cɑS~2wGq>2hȽv"56VD=FϾo (OCnN*(&Eh:舲BOgy:& ʥkzJ䬍bk`Lb,ҡ1M r!/WG!2 `~MK"{ɍYL*-lˋ./34>&- ~4cx8D=v9G4WN)(Dێꜭ9:YV9N4YK}ГHjMH@(S1uDT/Z{YRveie8q9}ʳ7*-*rJDFҟ'tC(ǎO5"*O525=bMnZs4Bk["8R 8 ;pP'wCl Ak ZWn6'\, " r#HhEmF_t4}Sj5xےxy0O3Lѱ_$YIGEf3ͪxsyHU?6 6biK,P!T0"RHR&Uj/7L rY=g?yE櫶 R GM':4plB7IOaH4O(%GLČC hqfbGr{ѡ$azhlך4F6wc91q400Bas+%񹝮}REJog$~6T<' Vmڒ ZIj7^mYia?2[eInEh͒jVULc$ xXr*S-gO*$;N*B;VnyĉA:7,"!PHil;BiG8 >yʫc=Q(J ؖ@T52Lk;[Ee!SF=''SQˊS>a,@9ȪiJ&,?u+^Tl[a`Ǥ޶,ԕT# X)񍂳*VWJFhГۗ|qcr綄Oj 8G?)9"vKVnjQHl\[֫v=Ͱ%1cƼ5sMn7/wu%{߸_s?bW_.9PF&"2ˬd5Z2);'^%MxsO׿5,8hj)r>G38 糗-/ A9Ҿ>$I8Q7D8ɘ94??t<̿:)sCrsCY=Y4*4 -t @Bͻ*e4A[B$&Zq0^"ldûd ɻ1lj`,صc^) i*BiN1sǚ!*p8cK+s,C"8S:=k[ |wWӉ /XNx¸4菏 ^%eS;Z0`{!صś!LB#lGba)1rϫt<z/Ubsɯ8s2#@38:HܔÌ?(;d>*8$P E8đ뾡ܾ7 ϩJG|@CUtPCJH*FhKy<%PrhQt\a[sccpLfAPA,`0¯)<5TGa5MȂN&Q@WҔ1 m~ҴG*}TWR S|ȀSMH5+ A.s)>]4G>@mD.3/ΓĔ I[*ꞖzOdR<[>*OOM20C25ȊSS]\uS]64U'̊ QvԈ!eہU\Am}BA5vRa-rG%\Lܪ ]ִZs =Ї<*MEP SeXUӄC%>K(Gչ8A=3k?m p?D]O<1u) Dz]YNތޠ.MDUXM{շ{WZA "_\[r8Ç.f%d֍8`J.Q)K K`B sLvLu4WhGMXÕZBՉlC2MT 0aݽ &]MiN)k|]ي"ڭhI=E1{Ib`Y=}Yaɣq6΢k/8KPTWOP^^eHTڂ=2|~[\7%Ѝ`]d\G`5ׁ [`=#,;dV`TXaj`HLr6Nf\\rRMLh,a_$a9\+MmkM ۣ\\MӅ"$[b}unMw׀kI$g4XGDVY\AYGSٍ?Gӿ3U MBb?S=R0\Xi6ǖ fi,A]dKArULQLcF R VށqUfVY>YNLց<Va5yCNc>v!%d+u=,k~B6+liFi~dTfaAdd^<`[vT<͠´Y-RUQ9`Ved%me.o\V`sFku3ZH#ܖkud{Un[l&l3d~>&d>dSGKgt>Al]]gإlnr`rh}g5gH.1烖ݬ)ڱmF=4>)]uso>]-Mq8qSl/i̽nC1Dio+_eV`noEAO FRꪆVokv[ /#kNk&\-ul\\&4q^q~qnft&lcl?tǶ=tM5Dg4n(_y (l&r).{}3Y}Y5֎D礸lS5bh$zrdÃ^MQx@qF#iAwqigB/ggi?tx_P}t ^dȻt%jNm[u $VbVen. ,BGǻ^LoƷp~dg1ikvGMvj_vPl.t|ol/i&].UGcrx̮ȏtlwS5rDwΘo(cX^o2XwڍN4r%X&w|?M=r}?6q/y,~gy{GGN[_foNno~K_jAtQOR@ ςJ |&,#eG\MS+2nI#rGjQSɐ#iH3Ja4Dƿ4n܉f8?+Z8944\8Sj8ZzCPrשeqm۵fkH"]qE򭯟*f v]!Cv2fiΈ|ٳ]l[tn"e7{Rg%nm&wΦS5j3xѝ|4y򩆂-'Ui`k';wTNrN=HPé]ί1?X;q׀?=H!;t?]4!;ʼn%TIHC x idQEаP97?DWK#edRI-)i$N8\s@$>!7r4QgTQ8%&q]a[bsYhuUcuYZ]!WYf U&Ya~H ᧟ʘF:8~V]2h)`:WkI*U_eZ\Ugn1q&p%eMB%\t\&Mv=QT'F߉7B !zVTW}gS Xǀw9h<[< V)Z8NNH]矊#@SQԐD 8F%y*yH%$+4R#I0MslE-5e VXSJh=\cɉQiE8r(W)N7aUV_v7܍Yb*S}:ɭz:]ri}\oٕV`uK3q?I씹S69t8!Kt1;wv7^TgW]nߺ]Xy[& =`vk;KC!OLgJBb$$>TH6a'tPx2*6f"R3y+Piӂ֪܉jUJ__eA!J_OeʤH1!cֶ}S!d^(7˨nvUrۈpnY 8+dZMQgV,9+!`-Y1#|Sto*,~PcBx0G<1ASP2$I` }׽Ul{`#c"2>p+H!Ru#Ta%Z94'i_W3&Q8Ǚh ,洨LAc`ASMBtT5Fj**6lEz[jBpRԤIYJx?L`"ATHTM&4V,f1c.n HtDcgOpg#SRePrvet1PDNe ! IJb.9Q%"m! $&d|)_Ƕ5$W$G?Mu 45YS9.hTfVg>-iS\3g!t. MlQ$THN¸.T)G*ܨ3l^%fX9N=-WB8UbWh3dǡSnQљu8t?Ûw,[ #Jɭ,(bu;A0${jIOIڑvBR"$ +JZUh5kYsRIcFHLƠlo4C,fApi_ⱥPaEXO\gj(Sq}sٍuQKNl75 K$-hgʲ.CerKshR.XڨQ8e&!>wC#"Ә/APv!J~.dĮPl[Rҧqv`"XVps}dt(2#xЮ08RcƂhU6zᢨ]X6Q~8 Our1n##1e¸5vL1hZev* Ga<#-[F41*׳pcuI`y8-O*8d Ӆ?]2("R.0AGa=2 b9ȣro5W.?K=H]g$s:mnf2Þa` ſvi?6U ko l榣b!Ɏ!XVYƼp 62oy| FbggsŇ2]4e68XY氯>쮷-U`p=/~ x鑗rܐJB(ѿgJ ^՗O΃WQ:! rR.vLyqdo3^ױm]4]m7!!9[[X_]ߝT]g[Iƹu lJpJ } ӉaYAEٝC a`-m 6a-CtT!m/ ~iܧuܧ?ȑQu_{]h_(=dH$WTP?C&C$ OqOҟ&tT mab2 )` ,V U`2Fv`r[][1~ 2] 3F޻\Pc %F/ZV""Bؙb 썢tң5!m)&!-;["a0 .#Xc z%^T Z2 e %U#2%\_N^h]-b,8Q%݁E)ңR.CYf(#m#?:F]@Nn~9"XT8vbd9KyYDžuuu mQL_ss#&k6jjt'dzwwR&vb2Pe?&fع?@c) c -`Vn%2^]zֵ 1z#ebW͸"A4څ 2M_61EiM-^e"<&A&*>f|f)b,'e?'''eCvfg&Bݕ:P&)ɹ&##~'xZAj⒖Nf@2?{baI*%fc~!ݧ1c6c6AZޅN4X3%έ5"ҝ0 !}(lAj.X8ꎦ2n:*^Pޖ6*+͊&fʫ+kRE(a#6¦"Ҧ᛾ޔKTW'}ĩ}*gvv\RACɆBz/xjZ!젶nͺ/g.to-hm.$8N|*zj2J-"C4 C6$?-` ܮھm*j*XDB " []0f*>%~(0ۂ2]`-U@ ZcV"7qI.:JnzB.)mkB2,E/ث9k,Xt,Ul NivqX0 He}zmNZoߦfk(t&,9jE'C**/~1{^qj.-c1m.rYb/;bg6 1hhc_ j"^0_"jOE$k ? S9+#j C B8s*"NWj?T4s f*]]cdTH4g'f(B1U8)I%׮uޮGrL:rɑ!Lܿ]CRMQ\##G$fRgjrrZh9@xV/hϲ+#/'2/Er[1dC׺2*2@K4o^7ws`sa`8s1V\bXse*.6023~f64p@t?O."14AE7-Kn[׶[q/2&.z"l'HSH9AIkFNrRӴł._yWHҜo|Qtm!.S3u%32ʞ~Ts/'Wuhr4#HW}. ^t.ςn6[۶Dϧ730X(t2GBӵ;@1cN6{sm5Ws #\s88۾38pp;M4m^ڪc\@W3kcrܮ>o4٪x@gs2 tkk9$04nK[kx\'u]$Fot.e5Xh5tJKAJ_V21vsm#C7wˀT_\rB'w# QSHwU:~ $s9we@X?/-O-9ON.]txxSCKs3sOE^[52x39/r;4p y0S ú9fxI6T6U30m-A[3U@0byڮ]14k/>{E/'AmSEgO;9?Tq/]칼>)Jqu:kR<ڱmwSx3F]un|{:/V/Pé7/9T/jɗ2s zX:;*?8 @w|ǃkȫ9c$8C/;1\433c-39;2s8p$0 '];Xۓۻf;~3?5A#4[{چAg@?|.?S]04$ Bŧ5$<}cAIKXuN<5!֓ӱ*LL"1M `"͝n)@-;9Rf˒*q3:汳F*q"$HSD%R0"]|Cu݌c [퐣{nYmyfƉyu9|J/vBn„5W\-CSQ/Uv5܈T_rHTg')ԓx!kF"1'/!i7iDr.fThN2,R&/YL抋e`OCZ.|2'Ŝ,֙IjQ#k k^j `^5TBB ob bY V u D-2E>0"`q8N5 ZcPPV9 3MgRnC3/6 ySA f^ Fz1_jnHA^ÉȨl4 #1`HD4%DJi_0`Lq _2&H~)}dFXM0>$9E{Y_.v4@rdzwLqk8x)ݨ^ f_H5١*vCUĵ DtjN+_}Rr\F3.<+!J@Ը V]M-u`x]`wfvTC=X/2x G`ht<jPI¤k${ !җ$Md 'hLp:QIh%$XNu/Q㎲[.'NȆb״)0Bd4@5$( >F"ZǛfFؙ3 ^!a K=ȱ$uB?H jD5((Hѕ*C`ȵP2_N^PE6"!jkEymR`PqB#MHdj:#; %MV잒nP(R2 Bc.8JCB˥X8R&axdT30͈h}"ĥV1y6Yp>αbR$:8ۉ u?g O}J!hj:9iV5T xBJy yeC[&|H2˝7!dr\P*i){TSD"LdKu{ @nya'  j]r/1%>C2mvr1ߎ]bKsPZp~;ΐ"j~ok1!DaT11#sB03k3#n/PC1"#2P b2feغ..p>6%7ч71҈`l 9= MQ7"RϵNo#yȘmB eDS1FNMr%U2.dPN'NpLO)Sҕt&Lm*%3+د*2o !,g2@"D,L t|ڲrT #G2GsIHq"A1/02#325S|80'&˛r 'N4(!-{x,g+bM#2uw6hv#0$i7t4USUUY2kv|5Vk..&NW>m-XURJF7V/[I8poApM^  IBpO8'!]%(rwqC\#ҕsq"stU_5$6\oQom8KAw:ϗwc'5( IB"vsٞۉY(? 5 8gl,f(| w؍7:cGSɰ#=3"v.봴]#Tu%lval0XumR@QTuC+4ow#.F][]8!Tg\0|8]9و1"؉xqb_=,U`9CGQ.+)qT8$QUhw~ S/wM' d*yNYv<q Gz9B3Pf;4:fh* MQَ }}; 72]h=#3h92z<벴P2וѓal$q3AV͖X/xm/2n1pqTZ[SxpV[߯UIt ՙL89❁q5;,T]`Q8[FEX˗k:VK?:OKI tVXﻖ!/u}LsqmeEyQ%§/{G R.NBo[B WZ M2qS3=k{!3><]ϛ՗`Y˘T"H …u:|B"qLQsɿ1D%H0?Qftڿ9>^$J&M QTә[ldII'\EiYcؕaǢ$xaњlk&*z !1]&zi'޽zM57/S+o[&Cc:`G~z!ͬ7?&?ٰh63g~5q @'?!@H>$1o H40 gXaRVy$c8i7أ9i !D)|:1EdjܤF30X&Bml!(A:'1DqǠx68E O!Dַyq`#Ka*EmR0]bF0fNHD*R S]Af!!gIWu#z ,kɽR@3 ~Ql _)b:D`ig$L_'GËfnDc$8?ӣ0b[C` 2#Uؓè3Ln@݆CR >m)BF.㎃#!:]HI[ތ>O^ `Je%+<؆ %ЇDL%HRmQNU\*Le^b'9I89 f:'1J_]\I;]uskTVpRTN,d,{b2z h?eXk*ؿ|/}t^Փ%IE\N60ڑLn5 PYVzCIz i fƟRn1GPKhI[꽜lcѬ } Xi0t nX֍si>_~é.yN,4m)8߯!vyFiUB49B2^Y#P BatI h HY6XeeffK2f.'s/@q-Bth!x1VQW HIW[[$viÐi'iGkjjkwDED58KDhGvDPDfdždžQ @ t((lxekj{~Z`R[P`\BO p8xjq7fp{S7{]ȷ|` aP&٧Olpph25.B}:p@?U5#Q(ʈcIBEVqvViyI)h0@JzB MAL ҤXR+rfr (h(/-[T`8a@ @[Dΰ?2~}"v^# 8=SwROGGUG'G7y{Dxr xr F2^gGDR^GgC^[F}k@ Xd Tqa}0҈؈G`,y}~~,B2g'83Ed\baȱO+Va(V(N%-dc p;۱;yp XE;!Cs#rhЀxS1K.BK)r]F2/Ae/+/c=Dw3"}Ve2t Y[o#H2 t!VFhiğEA$ylT9jgjwEbG6GuG =铃rxR pxvTxAxsHtl–6sx)Jwt Qxذ 3uDy @E bEbFJ qq CπF }&R}}wzoS&2;r@zeb }UzEzPz $@5W1d04MP Ap :4>s"D0 N` M`KqM! u^v )֐rr!_ R0e5X/әq؉/gTM{6MӣtA9h@ԍ<5ucn_4AIȑYlRF](xmeE:=#ԨHـ0!Sh @4/"hI T/T`/ f [,KCyX[=ri. 2$[hRW3Au{*cri )KWxliSu]}!Jj;Zmh-P B)O p %%:(1ǀ 6ʱ@Iy/+ DY`k#ܨe ovmtp$ 1(j؀8 :KHAs| qkAƴJ2"q֜rA@qe]&B kƫ>s!LdL0r!pF=gRʣlt"a1L"2T['!ΈL8[xiI蟛f2iԽT(C(^-izG"evDjG3ZH$T E Adi+ 쬢%ڢD)m^_k{D(\*\Ѭ-IzMxJ yZ.] @e M Q6MC!F7-K 7  'nb0rK b"nr ;H0NY62se;A |d A0X8r y R sm[ sf!c!P`p/ r/sܝp D[ImUVuLiYY\_g #6tԯzfxHxo|Uxp+ܰϽ0*0?a..-( êzg6zM˶ Az OFl zؾmmA7Cy@ A$`)ԇ[_\0,NJ4.OҲ8eYFe^櫾J[" ` pȹgƁSɕ0?1sh&YT;I,%U#@nutRYJ*`v:v]5Gb8Re?Rq͊7>wD; xpDgͰ M.j@?ddPIE*ޘ^)HIp \z~a6Zl{wn{φ~Wv|ANз EʟZ}Zyp "3pkS>=?+/"A K#X  .$H1"41VP`D4&HɈ / _'J55O[ͪU[XmK-ImpuY.\WμYhі%̛YoM+7.*T _+DTw8߿K?OYəH0W^m+Ϟ"]zѢY fȊ+!˦ЕoXm&| 3„="7?FǃRx^R/wnkw|Kխkg_;z5OHkԘ^@e@"P&eZ^"NNƚS31 %kD0E!0Fƅn#lk$/H jP^`ȗ(l!˅ڨL4+ǠR*M7T·js ("h2/"0 %Uf$('QjƎ&TR Nj; USHo?5oS5Jj{o[A}*Jj+; "!uYf6*5"Zj hil&Hom3VCb @c6+ %4@#c<4# ,6{|["=?j J0+\ph ÂB$HF,#!A|XD% z#F7P< -f1c @=L8oX^E8..A Ā 9B|' b6m(Ae0νn0,Q8YOPɅhǑ >"|Ɛ5AOCZp[[[H l1 }D0␅(haxHK:Rď9F5A(NJQЉ< C"1"tiM H"&)Α=ʽpBqUcP`TTP*@KCOC B)cPKIRwrnINORA  h M3+'ΗN /y=sEBߐ?~BeCDXUnh5U$ FC* ckbH.hC =LB2`ed@ ,!o 9̦50! G*E`D30x-V[EhG Jl2e7(6$ױbSPdCć>Pt`֓L ;dv3I>G=$yv^YR\!2^rzZ-]3Wz5kY;[.$Ldn(. YhI@DLՄkHqs6M%q㦅tFQxvcxDž YZCΟ5x {9![F5:_&v> -(& ]?+9PbڱBd<"/uCWETe9Sm#Hङd:(QB!FX3"No-'akJno>wT$;h\ 1zBuhɘY n]bgBԠA?5P$ $KAH/4Rx5-8f%M@Rk~(t^{3 ox?y{Ȃ QA:^y@ƫe D!gVS^p[2R#f 81K^m׍ 9oLBdȝ|I DQrSiFL;M!Dd_"} !^n5[BH1 4GFQe/ʖ|ow#}3ɩ?qڙ 4M#C`0pސ"#*TLt \m(O%Pڠ]k` 1gd_czB~쬴#vS5D0#ϥE QZ@3#UV3 k<I8YSږ lll ?$8c& > ?bCI-8iq&0 sD8pk&8{3#s>8<8 X1˃<,)@<3VZf z>$<64KĞ3rD"B軾 <>˷$p9.9K0$X$n/Ѹ&`%$$3?nr8( L a@t񃿅H!8> ;ɚZ(ZY/d* $ J,Jҫ".x8p8oc"%dBq9o8&LedH 7k!LZS0/0ý9ڠ:1sGZ3bʃbkC'(3j9ZdD$Ge<9{9s*ëD&qlA5yTc<<ԙK?[ x|i?)ܣ*$%-{ax'j@-gH=r?- g8zIt )"z J,Ă`Hh6ؚ.-Z$%2$8$18Cb7`a6pC:4H<%.y+><&+4VAH(9 7 msˉoӌT_4!x7ӠCM[Lr ۩M;kĒ<(Yb(@_<'93StՄ$Th؏0 ppi X\ }uKEAڭ J19CK$"U;<<$<y3:Va0c&&<4+Y.ﰾ# QѺ&((,J%[`bP*-5 K凞-8l ma+JHB$>i-XXH  ? $7lx(%*\XCJ>y,M/B%91d1I/J2<&!HE $ 䯽{,<7r+@o9@a .]bHGeLB$aK?8J'ES8åR1111WE[0#Ū9_P*`5D7>c`!!*eHJߪ hLpR8eY piӽZ+$1:R1b 6̪*')S*"2%rъHQ4v=PH\x /&j 6R@,["DB9X[68=šĉҢT/JXF%91F>YJ7;! o 魦A,c%[c+K7zۖl+BR9ߔ۱DM89.@E3B*DMѻD5-%$[5d$ ʚd$;{*sŦc:dX!#NH^je(2))w2)⛥+⟽OY]!!"ʚLde2~6)i*B)")Zd",~!Rn0S=] a3j%d09.HuNnQs3>c5+ ؆mmmXN Xn\n_Yg@B=/p9 ZН\zJ$g'( [ʥ,bԆ9WJܚWIC6D$Ҏ'1,Mq֡_lCC P;"jC"a]7<d0q:SۙPS31yHMPܻ۹|/םXi}_lHX>4-y(I');4ڱ/8*ɻ_NtϏBCҫb6̃䅖5!Ϊ"KwhĢ"J>a6$ u* :Mn*Lg,{­Zڊ6Zm%rVgjmĒ5 qcdRmm*Bu)jS7@7M2VfTZmxgg^\vxZ%"fQbRf1H3N~";ߥaj5y?J!LrbRd),;6x"#`oSTn0v7-YĪd5JI,wr2)-'zS\i' ֨3WMpP0ו&)(7Ţ/͛Nr;r&')W0Y>'s<|wꩢkȑ:sϫN_XZ.A$48m\&@QGʾN6,ԵR>2&H}c^7,$^=#qxk"zqE">pjK\?L"7>_$gT>*.ŗ}Nmx(˅hTWt~#Tm.TgHp@/@yKp!"^ K?DT GdbBHD$B\[I 4Jڴ% Zmt ?f?&Q[鍚oS7Zw Zh&Z)*c2yHw\ _ r_65 u_ƒ"zLKCE3_ҥ럮O Σ9ӕBUR!M*3!Bc37ӄ}-~SIH-x͆ggqaΓSDߟ$!K$9%L?%}`}\sE]Z`膆S1G|#Rb=KW-]FD23͌ԆL '.CBWR$PLm$F0bAISnuT7c fB8GLR?DMƏXMϊQM!UYЏ>F.=jBF #,bȂL6eD e( %V`0RCXPC'dQA%4J[K-&OF*O%fBV]-&?iմļj a*7ϳʛ ]O~ ELI,@r K$J'dL 5b,XċǼXy29P]%Ք BQc',O2DS4/'K&J+}&q& Ρfp1rc\t(WxPzY҆i]|r߷)z,4RŎVuIZ ^ahHE/H喛ω([eRNuTS-"Av)$ )ڙNf@s{L KAV ZcqY Mf"K <*ɹ.FڄGbhG.eOզF! % 8LY R/qUjP hW-Uu,Y(#ʈDrJ[0*'$|%rv-Ta!U1q|-9-a+ F*p!ZA!bb(#T#apȢ#٘#-&44/s*ae2s2!ɖ &gaR 0\,.l"!2t ƔÙ{*M:I(& P` @!P x% \rʽ Tְ| Wb6R7g촢 (vARd'*(H,W'o V„ m%SY?q s+++)C#N;Ԑ>J~?% AF- @P˒2d =X"*Jđ#K`U*O9F7c0\-U@ sQ?ԠKu.E Hq$^բg! y Rq5,*&I_@ -ڥT a a(pjj PkA$F&s&"c.t*1\c:Lv4lU ĭndaLnDcFp%y lE,@*rԦ6('O %c7;OB8#`혚!qb2fk N_a$pJ  90hQ~1 H RgTn`)(|RE,nvQ0)Ö6!@w]t+!K{C*.u4MQICkш^Њ5jGdd7;x s?pS@ ;㤐1*Q _ 7<@(^PZLJN"݄9"eAxC#b2""F5%Jb.N ^ l +"=pYPjٽW>u;5H]&QnpZnx=b% -(AD@g8w3pk'PEd1 0ѳNBx ].ƊBBKS`X0x9&WV:4 K &1ب`pC-iщn[֧> ֏Z8iz3Zg&YI ШJ#n=\\JDMEpmPҠQD1N2zpf9s2mnʚ\+΢%*By9`?8OD%Rx3#G+L`g &SA%JtL5A\pB(˴b!rsIgX&}}Bbpӛزg~n3D%nƘÓ?4q DnF5©D)-)nD4F)p5A [Z`]2$'`_D6@22X$a9s :Gp25 H6Eu . AU$ TEVHTU(E ȅ,Xttm_m١u|| S`ԇj FD\X@HK옙|Η͈$E;BMݙșS5i١ ѐQ@a^"(D.,B.!$?bBLQ0b^.\cBC3@4c-JmaեDG\ )BU\Z>^X%XU4SAW3!~F! ``BjG !Lf"%"idʈn ڠ &ƀU٠H,DL$$ ~XxȲTN\ Ae6$E!qqt%CǘDlPA;& A]80BYHD^O09IJT [J[YVLR.K\جa'}_f6bM!a]&%΄JHD|&&.WBmFu?,L0LHS ؜U?b%D^+:@;v\/b'l?pB,y*?,cB,6T6p|7@3AB(7?xc癣j( DG;^#ȋlAċ[c*XA$̚y]|Hf>dhfEBW‰_i^fiBX$Eg.L,,XlMuRsgpMۘ~Be?x)”L,)̠̀!Yx@sUB8Lğт\´`YYN[eYڝaiQD၃'t^怞E b%D.+;"Y;-p: sQF_pTː pVuyGT'xGuG Z?!J}@7$6IU'>GA89D c[6 cP\~!d .\7nT +V0ܶ?+A`?3iʌI"Ir$*`C 6Y'J*U>k*pV뚮]̵m&ns%Z0[B/FzfC4'7c6I I ӑdkCIf-bJ|;ϩy>}.PBsyK>SJΥ3L);')02} =IdS%J2̳΢Ȫ<@.B+<\c YVI|A2$q$FM@DtQpH!orH dGLFi$̲*!*2kɴK-*+3'38H#4J* .<(%C" !$5 :9:07 #N ݏOSH=톶Jh!?Qԏ2Ԣ20ᤘj\X1r6Dt"'H)`éנQXp^xGw5\JL)  \](728ӫ0Öxd2>4* (L2,r, 4L&-"`m5h{ 6jHjZd*8]!ag>9ŷ߆SHȃ6O|!7 ۖ־UnU m.l#6r_Xc\yMb0hjŊZv\(%c|\r%'r4!5ǡCt`e&DH4A'%Q&ʍDGTqϮ07mezl+d*<DU|(~-䐗Cݐuu9/C N4dM~W ]R 3F@@7Xe1`( Mb-X)Re夃b l DdKB$)]J&P 'y6j.s4 _a?.d0uF#v<kL+R4x7`b&x?5p}(QGXMeңqGle#)H|rB$A{LdGbֵĀ XU8M8@&!U5 loیv6*}i&U҆>GZQy" R9Q1)7$p@ǹjc[DJ8ezBpYNM9/gI%ڝB  YO! _ ")$x@}zEU V2$$_ ,VZM/@T7""Hp6jaGشS(Pm'9K#"9 !xF/z?eVUuX*g 8F,7PܽNGX]kRH00vI\ָٓUǧuj RRb[%+d\5uM y Hmm$X# &T2TIbSL_;Ù<9,b f.L,RZ$o0«xHL*RYJsG Um i ]z)iaۭSf晋VPrIIZe*[ZT7(Q"ʁkf@20@)Q1՚Ն50QIM*R 48nO&WVg2ejC^d%fA i.Dp]sNad *c0LE:o~NJE','۵C{Rdch54q·';8;'=ІA <4s:h/ƒ62 *3%K)2mbf^- &no'}gL!p89m6Z 3dgp!,h1_"aП6}2 AP&xS,!Rc eI)U0ŸY >\6>'Gy I@s@E$I.Q$:Ta D8O^B$m+ja{V/(5*HK\! "hrEu+"m\3_ ǓZl8됮.E;5;r;%LoLB[k1 /h6?Ɏ;pۢ((*qlc2FOT,&O* @c@ #JN2,(#- E(-DzD,iD oGtdhf" N Gk*@FIhB!pTvB #$on$BGsF U",:%Fi|."ofyˋ OԦE1/A$ŸD6m@ BLP~* 4>@@OA6+y6 &H J @/f_冼 % @J<m*.G2 `rU@@ 6O5sV-Gs0,>gl'LcN=R$9g&F+rK^pDnGpb2#Aq31ըA2q&p:=9\VgaBu-ߐ. O@|b4in)22o$N."&X;^`2a\ЬXBa ^/&;GH/D$.rdPfTUpg584y9&qR&䊰<Hh&z5%d(uE^ZQz.5:BG&R\ 2G,VL;OP][]="@3O+QlK4+2I oB+v*-(- 0FƜD(qoF"$}qNtG"'LI |Lֆ fFv 2HUdb8'Eξ KADx"$I ~rFɈPr,L g*[f^#خ2Qf%Qv" ]х~%D )N0&1iOn $`$^~%s>'fj:S %Rr*p&L5`-b_6o`&pqtGwiFoPuaVOWmn)Bx[DHIdvfn,W2-e.{zH,u[u23,+,آ h xKC5[=d.+g&auop@ FrzFzHTqDr|qc!#qɝqEVG-nVlkD1F8Ȇ\ n]GKw- Ԧ2zm8#&$>qtpRҝ:M4gtD0zLH~B ;*P^zPt4qhF`gyҮEEHR]H^$xxGq`9YLv/&I{VqUc3`s6Uf6iU2<ϠUitSW_5CXx1 kbMxC4f7g&(]d\![_7y|U\\^`9eb[ע[u--h[p&S-&T/n+r \N̛, VX,'nO)Gf"G^ v9L%oĴ#0$kdҢw(3v5MN5m`u,a@OԮ( CDgzalJR+~Leb| p[7OvddH55ѢgE Y+CuRPVk’%yP%Pyt_cSl4.IwXmG}(sa麮{&TPyz*\0x[997D'n$Jx1eIe%HD{]^Iqg"q9g{e~wO3;)ӷQ)3[5] p g|n&go# uVL,va d7C9GxN#k4tfDfNą" 3jiuDްT#NhMechbc+.4f-a5)i JE [-EJŋoC EPޭ*W7${rPPoO> Jip)qWEeTeV&ڒa3F{Gu%*ٔg(ڮSWAٯZuoU/|It+9uw  4ӊʪxy 5n?KKB=I]&]&JB=ݶoGo-yՃ; uEgoI6\U\pQ.A2cm0%؆rSg/BͩDdpo>BT:K3 bIglRbԄM0Q'U!]!&BQf|@gz:QclFƉrp3.rdO-zJp!+T>)TSFH#, zCyB$g DwჼY$e\Uu\&`<Ν|&8Lu FiBH\ ~e®UVQN)u 6Oa U 6XV% XTO k[|>NJy'@anm_@ bLn7 03 "JVZR$Rn|m'C<q ̑ڛ(I-Ot5 r"d@v\0gwOh$" HHFR5(%O E?e(QֳD,i"@A%K(p&5TV/u8wD.qiabYT0TkńVUq ,AS06uYziq +Ņ0\A+hk0430~Y(Ɗ`/\aeXg^N)6ba3%=&8- UtJ*|$@/ cH4? lojMh,V, e.Nrj@?@5B-)Jz'BAOw-ix<9KR**pSn"R-DATSTQJJ 18+Vլ߲T-lU]X&(˴EUW XzŕػuBk'q9U0(la #*fXli3,dh j\͖chH׈-m!]Qgd+h$:v`C[SC Q DTEs64mյ3S[yЅ/t91tO~{ǕxLA;㜑či$R$-HڼV;1M!(K7;484 L ?6|KHzNSPPuW;~SB%eC}0,i{{6$x{ -j'QIeh'BT%mHC8I85jba F*+സխfU~=D_g:թy םhUubIKҸ?Z>X,Ԁ5!`tf'n̬S68Ţȉ+F]"!ff/Nh3F;ٶ~sqqd-pPb@ ` ր9MP;p0r0$x`gbR# & w"!?A^Q*EeELT"aҀ5l`228OR3 #%B;C2O CttȐ l%obw4_UP;urx&0f&P_(%Q<8Bq&%qWwn@*r"3?0)r's(5Qbrc%,b%kft\+,8t*ygU7z'XH{WgUgUdAU"Wmutpk匹 V{0AWx`^ "+&PQ8R#P$yRu# r%H*V*~W'$"&hRmx'AS'yrhIU-VLg}Fyg,gyOUMWBWǹBnj{l5;BlU.y{{.;8Hr Dpp(۶;lEP[[A1Dn[E[3 J Aqu [C#n74G n\F SoQ#svpM f P&C;fb` S$^)qZ`O yHI[b>%URB=@cc @)~ I%aro9$*%$wr'av*!#42> */pkP(? x=_rtF;Qo68Z#?L\K35^g(r(ws;!$ʨVp%C g@҉gWL5z'ꜰZt Ug[yLTBX8y،'i̸VmEi<Wg5.4{y{g2/-HX P$2a[#0q\D;A֖3ѡ4JptAHZEG[4DQ֑ ZHOH)sP&KeQZp`[3*Lsn IP3Or>b] `rph6>B{ u:Q5Zy rr%"$44}TSc!a_Zd9bSJ|Y'Z(:=)_y y$;)'&a` ?O#gZ53'> /e\K/0R=cjqFa(luu2 &GVjB,t'p(gxG,(:zg:z)zre7{:sI_53{u: }d Qb*RMBe}0vvXR*XuiMgdo>od`C AgQ *e5q5'8!/`V÷!-caL@6ŨDM|YrajC6L>sDb`)r;c*'@!*(`j 8H;#Nzw/Af&!2,p{{gqh:'G'*p\{̗p *6oDky';4;Er{Gz#|p** 'QFv_5èfC&$G ccT6ې"8,*0F,x,iBP<'*ɓ"(X8yxH*P<p_P?p$* |&<@g]m:|L%Ah B5hU+ mVv1W(/|K!,I=aΘ˜ բ X\]1R\_v*w U&43TU6F1)vxN54ĉ"aP6S66$;)X݀s@z 9 (&&~ k/0 $/ƾEW\}ap6h&l]ͮ5nȌZr|afr~hݎ)J҃2e0q`;,7~`ȓkHM{>ߩ?8{鑰V&pL3*l 8̿6Tr&L1_>7tʗ+tk6Sgxr V(Hx*=>LZ1a 4 Tke5;( &6CZ $H@Qx1 ) Q  $h$Kya0a2@+nyg\.>D@ڰQF>D<ɣQ:3TM"".յ8h; lM?z)"N.l룺Nom JL>xߔ|9d<OqdN"qdGiXIԦé(AL-P+V}FU0A (DF(aH+SRxSQIp9 JC5mI`a!Y!PxBL5x_ qA{ƒ@I Tb%~{"~lt@Tm-{\R$/&Kdhֳ(+@{`=hGZ6Ùc3'W3oPGش֋^5@% d@o͉ D78I3T@y4p=Ȗ%h!l>KOz#@5gT6.GdA hB 0R~p,<;I R1]b a ݨT>,!FD#B¤|)贾O}sbWiڀ@ㄬxU06$IPS:-*D6 Z6bx VBz Z@0o >@*$+ b6%, xWU2/(j (ɾ0pR 89 ̸v'OQRb+sV|d*H-p-Ʌ[X 11b3%d?~ƕIR <aSРfjSS*0U6'э+u55XˑBkssh:%=.?H)1Ph2ped@ Tp*8  BLeET (@vhW[`6 -O)i<Tj$~ Ȩ e#~hC5F]bV2IØE<p_A, &]Hͻ(WF\mP ڐckFէ%:u~RGz( ԟ,A4햗y-7na$PbcR=u _m+) 8prx. (*B Ҡ)!p9A$3kڮ\//Q^x Tr!%Zb{ !p: c' `J7D ^Y!!k")h0Y9멺TBn(:31PRb8pnj)A(&NٱK8 JH:hҎRLa-)] <=DI1 D8yCXd1!"!Bhr58PѦ I˱D1G>&pDxGS{K,85jAݻ+h m،飐 p: xqb?Ȣ6ʢ,ln3-,@ ؘrɭ8y#" x㣷 2H ,l$)ɸ :h?^V "(QSp&#,ْ\\ m8 J!h)z0PTLxg> :>hpj1` 79 )S`]`>&0q!YE\ją S{$CFdB*L? R4EI)NѠQ|$8)Y)VD$\ZxZ@ Js2gFOA5BȩKXEY88/tT hFò#A屎xO9 #Eӽ3Y#3ad+J 6?spݢ/ꢝɃ22Șp ؘ07Lj-:؋va .7 X  a% ^+QcKD=k0$3>3Y(HF٪{}^9 өՋ-Fۋ uFm:샨:08$M;ȱ/&НA;JQ|˅U,pщ ! ࿓fњ""!63"ɇ! ,ҨR9 !5P\pض]Ð=1Q Pf(w239dP= ~'13?];کD8Z2hh Ё  F;M(%3u15 q-XUh\U1̃ 2FY,#-HKx5Vnz]B%ijE1r'K>hd{4NLʹMd.>hͻj}snPe]*alD*քja~Y&ڦ8VmR*Xݹm":Zz9 qܿl6gӁ" Ʌ 3J 9 2 * x[!sl'F[SM '_͑@Cq!@D=8M_08kC^81!CAz(H-}ĥDePfeQYRغ (1 ̓(e90Pf9TmDLچT8j~=O%xB(`T౧ɔAKAH 5wg;0sv H!ү Htz5n]V=Bƽ +(P[!}|ɡ!u _(kFF+X3*v"̗* g, `nˬI"Uc4#H@k X8ŘHj߫PC@;Rsnhh@х=<ыļNmSR)Qe`MRk0eS^lybE!1$y:@@HT`L/ fhnZ 9"⓼Ɇihfh}oJ50.IdHdֺ >|BJկ/pZvƥ/pBl 琜H3YкWWՓ|d@aKlL2hA+1jG Dc^4W+.ݫnX .r {¦Ja渖'˖VPƩ~Y&rlP^bnb#6! >nQȧHthT@&p# <ɐ3 M*qZD醚"03>Q)@g }":?`΃dZln_0pwwND؝&d(^):b`v6pJp%\n yVҘz:8x:!H:ҺDE =ձR;Mi4!==^ y"{Q/[9KӵVjFsuR+lZ{k4{> rjNz`s(z)?CʊZUk=,Ѣk(ID@&M'@D-உʌ/y>?ltM))XWoW^f>g5\cW<^ٞ=aUCMN FXP''Yvd@PC禄E^eoefR>V)_~'CC!()Q 81l""g8ZoUE *X_.!`b͚*҇72if6:m^Q)ߒzmT8*(7pEJ+VL`Iv?m*3zի/V̮9DkLvYf)$ q'O5=Pl=pȭz|~ذY/ 3/l`;v:z `?N#O9q?'`; $0z& X 6EAJMQ~D7tL2|?#I$H?*~2bόp'22# /ި"8=)c>~bCI1%RFI%A%6""(IO}`'<63P0T "uR %M\%B -7FN|F j%j\rI ㍧Xc5$ ˝uR'$"@"L-mPZ(1b-a)B, FD[Ka iGpUGRJ[EZ,ѭjFjOWDQxSOWU1W/|d UT` I #V[t`l j1spA!agp2l8?83ftYeUfl3YQA[U|[}YeUCq\#? u1Нv:@块zx H wW 3g`lQ KlGL|" b\,X⒤x#(n;6cL>dRH4I&O '<-p 4D-415\#5(S(nL0I(%LZ饗ѓa"FFEkEXb&:1 EC n e2(b?ƺlD/ \2̐pEV$gP)+Kya)`L%`NDnþ%3xrTLcsҘFkNeaAx2 6kR䋅ԣYTiP;lb48+Q VI\-kZc A8߁[ڄ6lYlfO8 \_&.AH err"?Dfqtӵ(u#AMョ@йE( J? $C~,8d"IZ"QNբ C*LT-n&/H—G ]H?($HԠ'B*bڇTx -NH% OU%@Y UZPC,PV,#(\x"U l21p.pq%Rp* mxK& `H!*PQV\#e+Fn,h1 zZIS˪LWY6Ӱ5&ȍ%y&Ւ\LXkm'Hin TXjy;>|X6+} g AXmpĸ8 RM4!¦6 kHrMm ٰX4ip[7LsKV@}nk#T3h?0>^rܼ e/Kg'XA萀6߸Fk\ah T8'l2,O6:1Q㔦ΰq0\ D])1 4)|p;c'0L{AlC_`t [,h1S N8da;D> x%-%1^CT)x}$bH 1TDmBI`BƲA?t5 TPEda c<ޖbD PL_|%*~yY`ʿ U))EXQ][`AJ`Whe yIDfQa`p\GI#}@ce\QV.^yq,r@ t\vy]\lt=!B!Wzz~l} B!,`L#plL4MS7?H݋%N] K MPS "Aڹ^EMJ]! lM(%Q JO ݝ -lCXA˽?215BGI$U4E]5#BJTT"vcMJ,A8NJ l&;24AOdDV @T>[eXu >MiVȕV q]cLAO VPŰ \_P0WDX|Q FUŘaќQ N> ֜Z[hd9HDّE [}jIKGPUѐheZ$sEgf!?Llzz@\^!ǭWl{Gߤ}}!ׁ} a1W%qA|KLpN = fͷF4q"'~ل;CL"Q%BN xK EL 8D?^"YJɟޔT@Ahś A\uFqBԝ蔟t20`TKHI T#]›Y L'\~%@ӷ(4])o#XLLfiA-pB.`f^Eng5HYYJ yt[ܣJz`p\all{G|e}؇}~U(c*lVҖXn|P\ l l3Ǽqd քL k!jL ElQ|&"]!B^8و>%ACfpY-'lHPK(/RJOD]QEi^͟K@zv3g3T pPı¤alɞV(BmdٺP qX iFiH&h1nVyY ժiv: ؆LXَl?mXlzLRQ]s rHH} fZ 0ET܌xYa^n!l\lGG%{-`̔at- ZMBHJԕbQ&o1A%˂-hFS8f&'R2/R@sXQIlx $ϋӕD?P^ A5ī).naJ\U_ Em(q]ߋjMa<ıPRʑnhr %gL. J?JY0XbfLKJLi5ȳm~NR^ h_d.d]PߊQjA>e*$bi]2Pp &ZVwe^vz?)w@(-Gzn*(\ֈ $e2 2f L5"Mq-%]$dVLQoq\p\MtQ\]ew\(6]+M,< G(HA(?{w=B{,{߰EQR0`T9$-D/ a\ZEMp~M1\ f)` AV?% a5(UA9Qq܅EQ\X1R?me۔\cAp]pA.]܈r1(1ia2 4cj'jDGlWxyy6pr{|Ķbza`\,~e[`XKMFlXpP$Zlz$ o7_v)5Kډ:@=G(wl3d 뜊4,-u7U}B)kdLKxX.Tm-l4H`c5_h}hW-eA [t#͔&?nE_w E^VXQHҁXuYuNnyeONaW]7],[5ohitD9xyJrт/cCq@pܰAmvqףvJz.~dz{t6~g:/~Ķ_lb"}\?…a0naOi`kLҨ(ѨWla! r~&ͱ'Z9ޟ9ЩBTɷO;l>HJpZL]x4;PÚhHÁ5(oQB5fR!F }Dfm(Ȋ(G +R,6N@}g"ΰH66lRbiVfU _;3U!b eZj B " K/pjkXb pe3,У0G n/:NjV=J)ɥnz У (`*;C&ag[ᣗBYO Gc yXN=0 t0 :Î)O< i p@p~6ȵ3Ψ \bA 2D·[Sl4 1}{BV*DCw;G0(RJ 4O,4OOK2׬EDtӝH VUbYd'8VY&QiORoި$TL]jo'$ua]l5~ ` } 2yLLx”5dA׬FD1B6(1cKT01Eq&s L2'eHtfөN333:G9?s3ht$Zg0U&&l(Bpr&IY4A86MJP9Ր]pmCJ( (GQt!! ,M''"f+jU6]' ] At44u%9MW"'>^ M ΤbJ@bUbU"Z8$$ ,lBaArjU::̔#P23#ʹSgNO6CgigaA&5lBЃ* @ZPƬŶDۋV(G=.K|v S(LrPZmhC 77#q&X3p]0jx`B8*dV 0fƫ`yUI.*Xɩΰ f$&ӦDiLLDW4&IƼC/̃*Ee^=䩛)6v?L0Xt :]VK ohCVi6)_54 Җ,tr6jG(GUou28^eh$t-I6`ჩ1P, (T'%X'glb19dEY gH^(A pA 9hnЂaQ q !`H˾xe 0(4Ȃ{|B꾧Vp`A@r(rARg8XP%6(F$cVtn_ pv b bl 8cb2BU$X$,B"U`&I\$b쾌N QpcWgVj%ʀNp4Fc``(TO]$k$7O&h*f,9(6@ `܃j>J/T==(\hZoLb|&'L4(? -Mtq' ' fZgB eGvp b  '8 GɛGv/p) 1H0lȩO)J0a!#nybQ""iǤO鈠4 $_|t3hp0]EsN&`~PV n :$l& | ʂwr6 't./n԰0Щ,^v$Vb#Ϫ*%dN] 1~k+q=Fq!s9<6 ,O8CgH;V6q 'dZh.u֠6nBU4$b44`(QE7uB&Q(N4"'&!~jlzB`Ef)PNlqn ;ӱNKdin @G3>p0D*2"!6"B@X"" b"%UG0#^E b.0 &M pnW0bt4F3Ƥ2GȀA8֢X,+C+0n ~|-CcNF `4_M' Q0Œ-'14y3N1QeR9 2 $C2:@33 )FojdOOi?=)0nQBNʀ MeNE8OhTl ^ r|PU(r%gg|pŘEOE& 0@apF$ȧ6 £453%$v ׾+0IN(*&GJu˔4g.0"0 %t/ L˴QCNF'ӱ1G1OÈ2!f+"M&s.-;5gn;ձQEsSORo`%j$f1fhpV'a6%X>jd\v vlq]t  bjYÉpZ[a"* E[i$j /ZPXS5]!x-/)NV`B*!T w3(7i'ra_nrc/V(bM*E]T&buR Çh3nt(#7^˧5v4del6`V+R i'Тg.IOedׅ.L4/}q_&NO@kFi4t|NW&lVP @l1T2c3!3z&;@9J R]tY=(]B%\5126K'a8}WWeA(607'Mm((թ6pp HX[mRBy$dSby"!P@Q 0=I*ҙ1B%$_V`^eVSlĥ{_ڹ+]+E^ 9%в; QLi@nmUQӿy9P:O|<!#< I6m۪}yy '` ȟOy<ē'!"O|}gZ:?:@!0 lF!asF|x!!ڇgX{+ͭkVZ$Y=i^InhaRF1@R e\>qFDg,AevPD&'nrRnCP EHD?CyYEFE tR/ns',Ez- "f PC%QTTUUeEUEU`lc]ŲW%c , xA_|lz-_Jh_hظ.֎6WB^љ[VcjjqD]jXjՆ[ ljOfѱnP FsG(wIGa׉\"Ӊw1<Ǟ!|_(tDP8JcaСY ~"sC2WEck` Dzf|v$fW$T&%UR?aSDfgfNv A}BCTGK&Ϙ&"dP/;Z~J9%WC=*^՟ H?\4Z?Gs4KWd{m%شEaJԏWD k4{ E$G$ e,5;AY,X;w t|]f7)nVpȌ;u +h}L;$vQx^ lPDxC #0 bT,BL{bj&LME:D1 ?\ӚW<@{Ǵlia\B8.rUF^Di CQLf2"K\gיtez?c.WJ譪JHO@U`HTEd(+ IJBdMi"PJURY,eIKʖ|+@eYd|5@F<>kZyEZ_짿 \_^\87 Lj蜵-&_5Er37,`q0C 8!:;~'X}(j9,hD!reFlˊ"!C8׼3Nj,1(Wa"?cZ2!5QZ[Vmj @]-йt } Gh]WB/h&4~ӌ, D EI*ĺ)u\LJq%cu͡(LyQY&^f$Gְb#&D(&6I=opج6{gRӊBBN@1Vpknҧ`-FHhыd[`#$5:|N-G-LcA ̅#KK!` LfFH@ + wFf2 A#TFiw惢0{c5g_E -X#e9X,hcZ,W1BhU8hl/k]DU[y-쿿Y4g7au92I tA)~XQN֒VhufeBUj9f+)ChB F0#Q u֕PZUa+4QˉHudxFP麣1zLMl@=$\ڋ>տI[bQ9<_oYhi@["XTqh %])hO.A 4-Nf 9z,&eD C69lM&@ 9iѦ+V qPϹ:tPyԚfO[mx]>%vl0H &4 VtX*H|H+جW> ڋK:aQdV_qX^DV+}8ײusM;Y$#etwb:i^٫u 7"& LYQ^-_쏱,ۿ#9YgֈF CpA\WAZz8AH.<p_pJ9q0q #`ArH#q(b(6*WhDIV67!\?msat_!btVdE:U\5V 4f\fFZV?!<ȃ/wvU5ve4vvvpW7;=D|7b1x%_LxM'yG{ihj++fyGyfJ !#" &Kӄl6%l&{lT[5Q5amۃD7CPN+w,,w c_6G?ק?!XݒA27s`px>؀ )&q' 'ճ:]:.lwhsq8iRXYx֎,F!ǀAGBdCTD3!ȁOumW x!Cǐ@!%X!>s!b6!R3V 9V2eb4e:4_tfOFu)k5PugLdfovvugׇڲ?1v6nXG.HBB@#$$e({Q}f&yUiGEQ9JR*9'D@&4(QA9Ur9'KL,[{'91NFr=i>HNx=br>qD?xmrY=H P`0 -)cӈLqJi17)Iq%e%%չ0' b"c2̡-""1w"h5[uTkĐ+B3bvbR#f2Ha6fCVG4 0flWw!6R!Df7V|f`E`“?}{aUhGr6 QYI TYGR)hajj},щymxi%(^p{2($=c[R1״Yv c1ʢ,;At9sxb- ͇ǐ=COxN>NzAOmUq=O@/@ /0 : p77@ zEV:/ViJ ehٝXYI`jZ2ʭxR'Yc$gD4b P1ŕS$~/]t0 OB"$v_iYÕTA%J  10aK[eIFC=شx:&#{'+,xq?<Dz~͇>rWhQP^,U0ZKz@ ɺ}Uk1 \`m GV8@b]j*Xԉ%  X %Y acF5D&V=h 4;t!C8sW3 b KP>wU\fƒRFfJ35&iWvEv(_\WO5Wb}1V-[2) QGp6b.P;PD"1H{phudv|Č;<*>1=K3AAZm릀# p 'emq Z> &A'&i=ᚁ^ *y׊ʂ|=糌zԚ[4-{W#ȉ K}}+ɝ,ʬ˺k;U/@L===kKdB&g gp*н\;኶6:Pcq6+T8fC4YUbe@sWp&52H!HUYpUdiVfVUJa42\fG&}X?u3j6+H8a$vQ 0w7(q8,9 S+lċ,F)h}c%Cl̛M_XM^,r+bV=bt&ֆ+2klȌCaww pƐ‚h-0*~?T9 ߄ɦQɧQʩ Đ Lٵ7@Jڲp ڭ (ۺ ڠ KL ?]| PFHT9Z 8E@[wOVe=7RU+fS3uifrej5FH.fTu}\v /<-j>֓PGqCE#%woiÖ7w$H6fr$_[ʆ]ԤC1{N6$ryE=r*{(ZձX"MNb<9U%? @XuM{soDw|Ǒq 悁ntai_')-Lpʝʳjٚ=ڷʻpĀʯ ;ʹ ۶&0 | ĭlɝ ]̿YrqՉY(PTu*I52e[ÞU[c,`"HsQwmk| |Wn__QZ֏J+Kk 7ɢ ڪ<Zê훬\ ˑn˿ʵ\^,[N׫ܰC$SW҃T!lR t!NU,B ٗ >e ;leuj  ];o\?wer}#!U.rwopX*~\}@B"^s0 z2gNA=0B ʀƎ 29I2el 0I@s %89׿^a6 4O_xL4AP 8Rw\z Aٺv7e ˜YT1V^ɜnRI_*/TTϦM[5zݣ/C7>_ʄIV 6oWR὏']6s_Q?( ,`A6~`< @,;t`CRd I1EK GA% p!$#0H%@: #"'2K08B(0 s/ ګz2#0SL1(BzkQΜhR(9$=k6SR ԡ$TSG$V`UJJ٩8or ΆL@8kсv зRpVzy*K+TJ|kJ0s9zTJc3r2ZWWi1pl ,# &*&&fXBh-%85&:~!M9v 9p@\b ֠5g-J,=ڞd"ӱE{`_v1f^;rήR۩ @_O!vN/i7{pķJ'6nA 0@8 1hs@g9"Tiܿ'(i ;Z^XEp }Y T HB؈J:X!I*K!A*$Ī%50+0 h*œ,0h|;2D/x8|9>Z49,xECA884*٣Һ! $<^5O4Ŭ=& -]{54)M>SP0ҺX4X4:`px#`C$OS I, a:b<@-[#E]ԽSl$Z4Jь`HPc%fbeTFSYqÐEy0Q9L/>iNc}{ d*D7naFr8X,5UR98duɍ؈,xAkǭxpKkHf00m hPigxNx3!x (҈ɘI*Q!ِ 3(2ʰR::Y/µ騎õij0+,8)M9,;p+F{ER0Վ>ZZ>{V%/y4B5?JL)L 9Ds̻-ܑ;=AGi$ȣ55Үc$e=Ҵ̉c%;6]Xe٣.ɮF6̜e4Or0Eqߴ>+ւJ ]2ӍLV+86&MiFs%El9|1;(VfO<`|uHd̘7:'mXhE_+,@Q&`!30!ܰ_tV򘡌B "Q 0R#&N5$ZJ4R*MÂ0Z^#ݳ#UtJS) Q>%?Aļb$ țșGuźK*9!UgZڐ\62AFX&əQ̓ncB "5@jU/chb,ys:*ڮuܝǃ ;F˦] lj9}|S LA )|a |mбW@@Hzщ%{3%: p_pF_{"P =ф N*\22[2(% ߈'ʍxѢ4JԺ+4ɫ+>[4h4^404>QcqC>bq:$c 5/ə\1\c,,՟g t$p|@*T}aB{qX'<AH?,h ?#1#3@QP$H<#G'x@K"B&A 9"$$H_A%&GlRjQh}yfA1ʨ %[Ad[r)TJ4Kqz[3y$SueRF?#? `1 Q6- :,kJ0C$ 9eEX|c1ZiWMRI'R[bes*m Ya?A6?8P ٽKOiv& fZb64I9LA&Hҡíx)J%upD'xGJЈ/)Ѣ F6:PoCfŵP -umyKiSRKu[קYN 6FcJZH*:F NYD jA -ZbԏzE Kd !W R(g:.#0yKfXsK`l`^h5 Pq!'x+vE`q0~q* % pV!mjS*'iI4S! qkb;H BaC0 'HN L=JїVODo(@28ΥHHEґƤ$΁KDbR325 ot l^Uihׄld?Q Ai Xq '.@*XĤD( *Ih 2bΠ2,jt P*55G>i,8+ 9>D,tLOdȰMC5$#6 :O R9aZ$],fQ-5(JISxe8XN7&yHӝE;w ^6 zKr*ujzyז K\JMRC9n1ĊUU&=HK%)vս "`B@-mS^+`:<` m,TV_A*ױqj &m|i0d0AJpPG  ;a*XPjsI_ XŞ݁*4ɒrh- QJ#H8t pzt#&6IMm L>u%-lUmlFʵ1]FD#QJ?呮k3PEzB9Mb*JK\ PnSd$Kwxyo}髽I\MUߎe&+8MxX@cb -CA{ xqƪU qUX%%B1G$E Oja,se a.od" Ql <: AwUժ!l.Orhj 8D b y\0 s=yl3X=Dlh ".z%[ !˫&dkIyT(}&z At5Ym>b!rURnݸUL?#-$9 %[UΗH'7ҸQSeo5md9y_v?/MS%4Xi1µEFTH EL$Eu 0 0|n>MJ$Μ 9 5pBX< XX]T9X Y`"(LBeZ'D!@Cd@AL@TS ?̕"J[)HUw]ydبM` a^adq@l^MH)gݚDbM@HҘh_1_t!+}@M1-{9}tcPdɢ۝@G_c;#LL@*M @G!< EB  6`@ $PSPOTTIDK\xty1PuEKXXV\WpU Ll6NL@ a Ɣ"L@x[aAa\]؄ hБZ!a]P gH#>}:N4Ri yj#쐧z9<Ν+݉ȩ_ '<{B=FBPA`DNTڏԏEPTFB rhUzmaJXCDYLDnEMJK`+*Y4(z@4錕 eVOiiXDZ` xds n[(@ )M"AdݵiP*%#ZDZE,\Ee("1w,Dل^E%}i#dԪ6炮c}IB>q 6Uv?\@ LT[)ҝ*aFacV"ƝE(1x]E ذϸfj* &XGw8$bA$TfPL"h!ͭ M&bl6RkYQV#Q(UdIH\k6'HD4*F#0<60_4kr(8IRu/~4]o5Y@@Y8wss0 ¯Qi)lCAnh>oz*JRlg$Aȡd_^`(K%Y`P:=HUrzQ2mά dZ"w E Pq嚮)iO܁qa@ @d Z~d*Bݝ]޽=2YS* j+!|A/#?dXFgL|@A8b&sѨ(3Gx+EAX ,?tr<1+]8/ڣ=NZkv E4N_Rs6wp8s9/1V7s3oh ,:$U43nh(0XHzi0!P0ÊIVdE먜 9r4QhK?t@R ӞM_] M͜A]; u (@X!P u]>*U \YD*AQԕ$M]{QA\ڇ(#VcG `QI_F|@y. TS$$с`ZR#Q*+M.6:nKh+s_[wd>w/qss77o::;/''5^t 1bk'MwH.jnhUL{]C}gyAðxA*0 IDDMPX{V].VhjPT PUT!Zr,QءmQ˭#9x5 -#Da܊1h@N!6mGܦ`$2d#Gl@;׭1.Rb[Z#m~"%Hf 3+56?I_(]+|6S:q}7V}rMz/kgzZD ˾>`Ϯ=#j;7˫hENtFa *`%adZ F LЄE^E+hǻػJ;OW@˖DCxTRLkqSKP!Axf_VG)_JTğā$HPa TQAd=!oB +a%,hiCErQiU C~0abREDl`g?m 6F@‰(1XPt!ǿ )āu/ -ĆOhѡ+7D!"Wv :4lӦcFH-7Bp}Lpyg9%0С5w ?ȑ [Syr)ٿ C^z!%@9I990/: !`D::촃K !B)&J@! R@2@J&!"8"W)A&,!4H5t :2PH!!\Ѓ9%,9&"(R&hXb *Ψlg5^tZ!*z0aEj"mTE.:%X2ˆI Hm+8l=˭b/ /6.ڬcðE3 kȂkL~)-N4tn8tc z85x5itɆۍaD:L %2lcғo[ڣ<&hrgVAEQlz/A J:H`p  ALPeGސi,Ao"Y?zj &ATJb%U\:7peb1(r!D[%K^Ƞ s1JWBsۜP3o i#Af2j&2qSUQ :ʫdϠpUZuI{ڟ6h?%#* X .P,<(Ix4\:Je/ \b2-u>Xp4.!y`UNXR15dIʔZnի7e}MCUaJ0M<+Ux=.'ыэ}$)L 8BGz ɮP+`.8#2h t XZr"iF@oY&[Nֶ%)}tIp}r<]ֶ\ !1Y3;<}w͌?bdR}]BK "[TE<Ut":n J䎂%T R"%" $YYGx.~ 6h4X*"]:0lɊ ŦnJ_0vʌܰ!ʰ ˢ6D(,Hj bb$aNI1_*c:f;4DR$lA j$EkJhO1BM@%@q`dpk\lf \xt'|0lfGb^+,MO9B XOݲkL.  t΄<$'@;'-- ZG H'ܫTw|- !4`:eDx bxBV"0"#Va*PZ!E^$mb&TN,0#iT0B,P +!<+nYp""\P Tt]Tnnt1(6tꬮ 4 2j-*F S8lH7~cjH5dH9c9^NuCwE&n>$mB,d1% !@Z?dja` \>S3 315.3c3+u Z <" p(mf!qZB*8{U8C.$,+.uYńR(3Q<$@f 3/ UY/;G.ʵxx2  @ k!^@q $2"VA)*`p@Unpb$MW4!%"{B6EUtTH$#ɣeZp/Β"4HHTH-0(}6_ˢ16E1< M7L= l-jpL-͊cNlidlC/o7@c覑f:\#1Ey|nA0DC+]fAM\@S5-O<0Br?q\:O6$Q"Sv0B, ¦Cqw]M XQYkd5d\u RLs&1"ut {xb x!g@ T3e #$G+vCR%U!"`NX,NEU_k`WT$!"(t 5rblb1.|#WoBB+xD$Fb%XD+TPbvdֈn6Zȃ^ ^jȊ, i͐,kMXj3 ݔx9XT8(d3X8lm lhaeBCa2 v\RZ$+9$Z/A; 5w >S0ӖY\S#ٯ 9^-<,9uQ@tGo╓hٲiYC\kX/iww9QR'UUHU5R\ \oǼ>{-wNL v2QxRQP͙;wL?R9ꋫn}2 #i\k: L +1LQq‚4|o<H?.``S@LԹSd It$DA^nzEUA`U_׬0/kX؅2l8C.o '_͋2)_{ \\ְa#6|eeМA 2撁?\nj,@fF@AdBrbŀt@Pf*D'Cd?tС  8qv,'cFy,R}'`PM? P_?lP`@ ` ` HpȠ!8Bx"xbxb@T#D2H߈.Xc@ 9MGBd}I֧ @tAiK2):p)S@A%YUbePd A FdVweVPpCeG9QD_'ŤO4+bR%R.]w%%SRS?BH)WpSVmieV ՖX]uPq4׭DM0eXdAvaYVdF'LgeMqAf aDol|g!12|ues Tl1LeDpՅG{Ap I7{p [tم'7 9i 7ǟ=rHQÏx8d6v&c0hN&}o%tKIL]7LIB&`}.@b$6A jYC|bW*ТNq pE=$0ʔQ)BR0?=T_'-pSº`u^$ # ΤEI=1Tz]/u4,Yb5'VVA e۽잋.D OhJSte'DPXnTbN~X&u,Yc'<)C lpgos "@ڂH$RMCI3d YiTЀF V%9F-Jcjx`mYnb Ms3M7>꒘f3LgG N J IMwRtOTbOR^{AQqa'Fe4ŖJ0.VwT`Z"-@Hnr) Nq48E]059(œPD^Ⓘ0ҝUeZYau/\&CXd&x/$]Lff9CEf)@!x4 ?=@d P!0ua E kt:>U!wcҍLMѪ(E68iH*Ԓ*jVC`UF@J9~E.ۍ5 Azn%Kscz@&MlkXQNM(+JFґF4"+J zuf-@,"#[4(O.$ +XWJS^"&4AMrrKT\ h$U,Q@4U(0paHBf3)v 3eE|Vq1XTo%(VB- SW/. sri_jMbz.dNӅIT  0T g,RԦ5z:Cb0Qq$B}7 hGf*vXf6V3c4ctTGb+f#8 Jo.RF7-IMSUӁ@FlpցB?Ba)Z%լXHF2*_J$P̹@}QI>W n-&i' n7Q\ZrpANxG*'TNzYK9sZ($J}^qo64UD '򗣤'w}Œv0|S`a.\Ѯ7rU0c8X® f83a &XAż6Ѐ6w#Ґ~  Cp4Lm"* ]:'LiZH?Cbl B?W4lU h$gQOEtFq=nj`4[@>N? @G;xp ~aBw%D #^ҾGUnA0 !7ҒRe9H-jq6k6Jx'Xaˈ&2l*{(fvNny:};-fHB\{F)nZG5W7%.'Wy oN71F9 @^CzAQ1P a eP`gCR~Rs7S%FR+0r!S <`2716Gc3%S,C$ eZU#]Ec u:tUBVaVV% WӃ6#L72FjVbF#d5tgTg}WQ2$Gg8 Pb~jygS)4u2Abgg`x71x r %;)a\~[m' I,wɔVLB)f|r0)ɦF*DK{K-je'wtB}84cQO,*6>)/]- F'g1(E`9 o /dj4QqP1/ @qhQ=R%6whg x0u'Bjr 8c o>7FsbfW&uGb!R8e&v4N"ut]We@"r$G0vQxfd#16gv\hg@Sgu&EY7!w7C*ssRb+R0wx~7Pr p p q jN4]6[q,:|9zThf{w[/#+\7)C*|K{kO(1x IyB('<O=|-jb!~>~'҈<{Auț<&0J`ǢI`A.PQ~U`&ië&R XAyNJ"Ş5rBs*wqG@5:BJ؃JeTu"kF)"uu Z2Bvlh"Wo7Q2DvYehMIs@dr+X16 AD! :6 ( ![vj8;J:Wj 1kb{DcZok޳f֊H7vjumC[cC zO"-)_'& #?w2B`(x`0@Q8!P~9'I6^%V9wwywIId|'R˺Ǫj qe`gfiAtVu5KV*#gǯbǮ#9rUXV?"^gH$Earh,nذ0t20Z'4t01S   I @{ 0)5zzb9:`rma|979zp)Ւ9GibҘGq`z=h!dq8yr'P؍w[l{3N>U @7C^.'S\o1.{{kt8ʏ.@G.0S@9 ,B#p =l G FB)%.28F24 (@'ȣ.( ( # Ɂdᨚʄ 5kJ"": $iM0rM8"."O@#3!BX A"'&hh:pR4(© p*2r"ͫ#,#ABk 2"RE+WDTիXL8o l3oUퟷjM8^](m4:3`݈4^cN9֌Kޚ39 Cd3C@<γ1@fgb'ng+w1 cPC /'P ]pj ÍBQNpGS4;G2/|G HvQ~Ӝ67j+Rx2(.*Ke 9, 57B!*]#:3ΓS#a(!$k3ɇPBH"Tω0ʧ-{"󚮠*VXڈOX!+܌VW׬,c9"فO{W3-Bk/x.(,Ae3.f1D&F=ї!;a+@c 2B#daMj%JƢ >􈢬Qo2 GP(T*&#:P#@L_A)*P.yeℨOV;:=d%6Rhė䈢8D!bVԔ0PU)T=qF⪵ d}^0x_@i 4+-@`g<5pV`.ahf0q]4CF(.ty[CL>)XAZ0f# Yo8r|9AnJ4 3Sy#YN!d^:1@zc4f7s sQlPL$FLjENkZZyMbmYh"] <=jhmB!u"ȣ(r!,@Apʙ|VQ'%ֲ G.[2$םQbGqkc I>[3"ő:sdIKr"&& wp`r.w&mtݢVN!wtk_K@ lo{J53x\GQP=M=IS9|r zGafю<zYE+ʆvylt.;X]b)G\ ^׺Ҳ@rL(P5a  [4F/{6qq1aܐT0nJA|%_%CSy=̉PI 1ٶ.ep0'"(@ 'lb")pHŋʘx.*'a8E?R@1"1"")F4cl*@ 7 A(¢:BA4CD#EQcLa2܈Rb7 Vbº{BܩH%-`r% 5E1< sŏI|j$>JԍS!bY;?y l@ "f sƇƇ(}ʙ̱,E뎘q*#) DCz Y!)S, H   8H% ( )J|A3ڈrMMJ5:y*"|ƪ:=ABD*H OeHH8H6Rc U4",W$ܺ,<%LVXXJ%50J5Ձ ã 8X&Ā 6/Ze#0QX=efu*C 2 ʄ:KpEk踌%)b1^T灢SZҀzK1.n )͠D{{)?9AcSÿrF?}a\Ø՗,qEZ((R(q  ܣ)(Ay{9QU30A7YX-Y ՇN\,K"6$̜@AIÈH,-$[ںQcbIyl&+[ܚ$Ālzi.b5.ѳ׍@<ĕAW~eс=XE sɾ(8KڈX-E6X 耪(r0 (7],0 L\ᰁC/i|eĨv! ByM:m@Ċ>؈)J>- YM$ 2#s1[uM[)2t Ԁ`bMPHœNe*ց}O'PB8UdV P̡Q+ouƲxlK쭡*us" C)1_C M"F=:KFuӘ/=eD^3U .1 "vͧFP X"踙p"FM`g8ZE-N9.Mz,i:@\N:Xr:G(h63,73Ib-N'fߪYdb8v\ `5 T*-&^5]_Гfꀥ% riq7OFj)9 ƀ1C28z $ˀ{;k' a~7Ҩa&3D0q8S nH{`:x* lFQ8=<ҐiQاu @k /ST:Ja*2S UPU@ 'f 9N.*f ]",'HS-]KHK]l Y3newHAXݰ[5Z3 =]8.b'-D aSJ"ڠzXB='Zܨw?RJ!fZ, :?vdzRnxs9 #^q{`k<3Kܽ]C1?mr U+{QS# ",2 gY 3,}2: g֕%db>Hib]djIP42V2B&rP\}+O& j݈3㈞p5@\C|[Oy׭ݗQ:脚Έ> 휙rH˗.xM^ .9Q 7>q4%l|R0¨d"ӘVDj 7>, Csۦs 'zW0>Es%ΏKYv[tnY7oˮs #([IƳN!{nT`C]aA pV+uP XM&&nZU2 LH+lHܔ.d'߈J&\_ύg uϦ?ںg`iif`( -@@L)dJ@Q4OPBYEaY@FpCQG#MTK.*K2MX'TL-mjNiPAC *J +xQD[}uo.e%({Cu,0#a8a[b1 :)UFb&Ƿ)b !DKoEwyn:rAq<gr6m]jLojU<ݿlvĮ'rdž̉1 ~3s & p!Jl1RPw%04"}Zw}aRH؆hw`A֪%jXf2ۣ+)i%,0fS搏Z)g)?C(EʺТhqQSHd橧uJedPDʷNʔD{OzlGG㫓SHR:ptѥ[{][wePU})QN(AxfqCyՋ=yÐ䦃ǁYv8` XB]g;{Xp,( ŮÞ0g7+cz0ȇ7&dN~ !@(v P… l.NC\ -ZkeqKI\Ħ,QZ 1i@Vw+T"' E%mVJ2Fr%ˑEM)IɕhnY吪+\uS!]DQ0=M&P)j.1(D1]y 69 +z4b=$8"&n9Py." ZS?%` \ f."t1]L '!2P hE_蚍^!"p#Bq>!Es(Pduʳx_3 mZ؈l=-K{:xp"rTDd BhpgU2̙KĤ%^ǿ.o1f6/PcH1N)@3,AxIh䢻 eRQ6Mid!iTv}uX*Jʭ_ vB x ^2"Gaj" C7Nid#G)Np&|t:DqRBGL았2d0}] tYEW*eh/  (.*!(x5do#4 ?#q~39#ƴ3l<1,HFd!"ݳ˘EOs% 0D% .X[2id6-FHPVO%_Z6Zad\صF6R#Hu$Qi.($sE! cJǢɲBf紹Oj(Sj]QI#s|R*gKHa9x1ep]7K^ A.wr=s F @s)ƚJ:( mMi޻ not4"t2 8/ eTB `` 񴧉y͌E <$EaXcuEC2ĵ 32G?g C.+Kvr 4 =Kꚛ"}6@^mde:N #6E6Q:1] )٬֐ ǐwX"%K(8,:qD795D9JN6+0r5'3%4jy{i]-N)`%1ᔜQj 6'1d^ ']RXwFvhxy;\v `/X!!fo(!A\B! QL" l.p3&oth0<:8wfCR< 5-6'|{L}L{ (i04D]pUy4-H=|`ؤ] cQZ]PUTΕdL[t ą ݢa]'ȕ]%I_m2-н ()ytH^΢ @!lGGI8! @tUѐKTw_@tpA%ɉ1X4R MTqQ$;.p.H^O0\\D hVb`=XQcEMd FظH` #E#rd\I$#!,f`ndkhWSM֩n*A 1&̄Zs:Kk|Mӭzߞ ԑ\٬ŭ&۵EYUqdcDGf.F~ ch D)ɐLoIhYE5GS0D;OkaDV3 8LLXuDWBGxS R(_f̤K|>9ҋu@)ۼpe1D*&sQPR_̢Pcڢȍ%0fńĉi\bT4JcT3KI2u$ ZpYFccpZ>`ܡ"tzb[ڱ9r[yE}d}cIn3iFNRGv;Y${]{$Y8!ĶҝXkDܝUxkk%,VCpUY+Kd&/ϸXt5*1V)"ݍlEjyRtQo+ VP̺D+("Er,aʽ,,)CX̀,fpآplfs@fLk%`œkRJO4ɉ"hŖ [IsQ')Mrj^3 q*;#]MIZ9jdNbDu ZbldF~GI^%M~@4)uP(I޹mr""I/)ƒ6qQ T≣B*M%+N^!q.r)hZeN,ڍ07U/WPkjpx@ۼ\X+V_1.b61e[ y4ߢ|ia3s(ZGŧb*}p8rAp­:>\DC |b4HAK A'w?gA?gOHf=#UQwmC*OZ[]dwZ19d|\t']RLXeH))ܱL[r.ͨo^/VSVrhJTɭmx$%+n9wVƍ\п_?~E\PD[NK7dE\]IBЅ =P!!`WBE!,Ė< W }]I򘐎iR&c)2$`/,쯘Vb!Tjh 3 "L7%i 4!2m "3M\+0Tȥ,')!:@ݩ#I5+ϭIҰĺ.L"tL.tW⪭'JZ:k3fV&lL؞Rk 1FBBO:綫n6טk;]=#kMA#$)BӒÎ^{g㍸7;9f3O+҅?6 2&?@P9z1?I  B4LYDUDRQ,HOǓ#6D=qCC D,ZdTR%BK 1$T%57m FS"H }覛/S&l֕RioSC哤Y)? t*jrjUCWJ([bӒ `'#=.̰ uUeL,r 1vg81ä.k٪Xz(g:QtF-EA?Tt4)j! vHTsIIIU" G(aL"1<&7يM HDH9@" F8mb9Z$$09lU;-8: erJ*WaB uiz$`ص*0#_tUc)FWBgfZEƐ8޵ExS(&@Q3Ɓ {l=X{{;oysw7Oe\ ^1 v0-8x4ǞP2jeȐ6$%7#CB`X⍖Ƣ#zDEs$Q1ITb@-^bMmz@GF3N![A."!v G)G",PqWn%IYJ_^)v 'SGP>吚,gKR%$)bʵ-b$_ZI,VYL)C2̴ e1Kd Pz[R&uҰ6kC1sf{`ts`ayBA4?]3B̖[>!:0zQ:T&'c!*9 "VIlb+ZwGTxTǢIM!X5U)HSƢE0AUb?P8jBV we^֔\w^Z'XTNU[_IҍdWg2nYe--Ȓ/SQ 5ld %SQme[gcKK5..7{kȋ=s ]zNc(y `ZOSCnj i @ ($$"}/ja K+p$vȤz5J!4PȨW,zn3JQA\zkQK ⏄fBǿ]]Q&Q+<>O "7 "ʨ7Ė|랜+ʯx1IJ;^1u2uUfyd>F$ךfTMws P\`[V]Ȱ[lʋqShFҭ'H!\pp Q}A]5uvy @FQjrQV!xC%ijAj6>a{D(/ iO0O Pcc36%gt0(7'6TOD|'DI,\EʢH֘UoSMb)y`={/qY^Tlb@u;d$4G![-UV^Srj/λ'{Jt{@Z_c;d#%]5C~ͷ9n%\6>H0B2hI.Ԭ+i`Ƞ  /ve\ՈGb( oƆTBr2o8j 3bdƽVJ QJhf HdH*%SZ^0P) ú. Ȩh/'B'BB+4"nZbhOz­h's. Q@G" GɴlWIxw,KL^E$he.`)Ό'ﯸo}bԌI.f%͊3liҬb$>Τ:9C@@}ɷvb,aP9ƉdFM[F͟N20HmXm{]&/P,մKVOf6$!֊iOT Ujl+j>d;9;-@;P *boxnhtz࢒Dg * Usp̏"t?g,=xb)(",r7D/Z2.F + l$ /z ɱF^*^ys-.ItΎwY3cax\xsP/D.r8Ny{Kv{-z+tfU\B&Z9NjGHhf9!u9C2e;RR %vSj&T4MF jT躄M_ײOVgl]GR2)/)?LNr"OdSGv4B1 U\+4 yVuDzH]b KDBuYЌkv&v_Tby;&M|1V4bIT\p=7tQ|KvO]8cŧUeP&Yͤ4#P&#D.ՕRSWٗ}gy 0%f%ns5'@T&RP>ɎFxnJGql/*lؑqt'$Q"ǭ2!R"7WbwErT5[jrKsY.*yOwxrKXϗ[UeQB7K3ҸI}61LA%R[T+O:W58iP [ƺTa:NqS1e٧)y| 2j"& sloP[%۽aR7qZm(9$R+gI=cS.(Md+); Y*,xC*=ޏ%b(qM-y._E..qFQ]zb͸)䯋3ˉP{ O#SLX7x BPRQSz[z2N,|;SϷNgP|3 r 1Ƚ%jv a09ĕ a#?cP-C3-%Z;>[&Ʈ.Y%"m&g.n(H[vߜ5@cXȤՊOX"$Yo(+jQ0ܱ WխyCQL kyL;[z/8^k1ՌCv-i"8?-ZC %L7|8[Ik{/(7ioP]FOVp'-̷ Rf`&p4r iS[bK]f`"Tm$ %^y,VĝsG`0pv 1C@rN"*sU݊ Y?xRJ$\ȟryz-j{ClQ‹ݡi4˽E")xv·ny0"uwCb s{5}Eޟ{Wϗ=YmsN  ȓUOҏ^]"0>jw:bHx:,$dҏB  Zuɩ\h4,ē[&=v X1RoҌv 2-m A"` \0o.T9rURԱ &M JLPVCFʅ4iPC7i(O7 y+w8ӭZj|:'ACN _ {ڻ@Co7^yǟ{,g ABO5HUYhRT4bQSL!PJaPGAARJ*K/"cBt@QKPO#A*y(PQi8PYC!R`%TU]7W6iSTjNeA=V4meg^]^EeOyDסV 6XeXXe|AVj=FZ ݶڙ!@ kđ&@mkvܮ튛sF[oza]^x.7]k{z^{Wg``r@COǞfOYTC4qA!Rpdbى/A%3qkO]A7є;;a$C}ĒFx>%K#E@ elL`饶bE m晒ɕWUIyŦjb]gr]%ڵKW[+*kYbqidZĜ6cDt#vhmt"fSlnl}쯲u?nvysszuK:wi6|un{.A_Gz &x NB igR.dӿ{cSx&mE*cA8vM dO qQyD uu]"bNɉC}N}I+d d*h]x>-bP2.ҨM'T.*Pa&2ms0Ԇ!5Tv9Ɲ̫`u Fp l S`gI+17SVn~,iP^rHraQf Y L!&B(l+lTŊ)2er9X/h@cVQo>_#͋e2j*|ȑr2㰪R]cMן=r3;.v.<?i/+Q d*8Fa(uۓ FʝTQlI(6ÜL/hvR(Ӣ-PYJND( YI.1oͦUU2%lZ.t}["yۀMlUA5BӎVcN/Q[$UW+ǔ ^΋G[ꁯ5(3)}KbYrP;l<`2I@"`7I `@JX tV:IƲaԖbq.&rV00/QXJǞj&W#r n,Vc OƬKNa6 Z.' Pk_4oG1PKv@QaTN-1jW(jhQ⺩Vtm]F(z;\u  $RoOaقLAH&AX ;0p*XW[&ͽEM P6&u6_JmkkL+봆554ɐ~};[:2/y7+afWsPrڙNŝ'oWޟu=GG<u yHI'b|T"(= Xre`kSk=p6fvqc#Ok KWK.=%AZbW3NQKӑzsZK7yUx&vb.6uf`` 61+XZxnGG(8tVAT35uzIj!eWbaD5/{"jTfOC·tQ)tDq|QOCb%}8H|eP'`s41Q9h~n ifRR^Et~u;FE V'e `$oG@x*fC="DcvBakVI09Tx7Sm7I`"U*+1x%HTunG(=qn2|gԈ"k 6r%8_mdeAgTJ64CpygofQsrftgх}E:*,E-{8s-"e^wF@s]$eS_SxĐ= `a`SVu(kdkShPIRTuL$v((*Pk'1#.P`Y|W14mXKWb` v` vy`g|DZIKg` `rn" i>`dMb_Y<A4!YGX)+1cQI1ɗq9t6f5P@H#q\),JArQ^whWsRR5=Q!!v֗4<(  -x=Є=j&X~3v@I-ɗэv6h*WK xy LC91) DrpyF`I6)Ha7k6"F `y`$df5a/S/Ah4M BG6qjzk#hؐ nyg*uNr#]fHq9  /G>z;ؠk$'("vF!I!$okç_'ᢠ+kwO y1&kiHUrS7|7y@DxɎ=Bh &vVk"c!c%0'zҴHHő~jY6Uh_I`X`+&r1yr?+r\QPៈ6h5hbT#Zţ օtuT #vT'lU%ڐTWaBc&&VpX@b@d{_i@Zbb߸Ƥ&Uk:XYJX"E(v& !81D(x5kkf:I`5mhoRX\y E(E6FX5-i*`) ``0ɻ/a3{n578q'rŽ&B hr[gQUHs]Y+a[{Sa{G%*9S@rW -!5fLZyLQZkhk++!Z 8"Lm+šZQh`bǪ4Dt*<1`i{G4 Pq&=L&Uj5 ׆Ta{f&+UX`.͛.Z[͵ANM JJ-IT& J^Ha;L=!͠Q,[a+[r[k0 gm68ipsfDX~=,'I+ǀh&`XMwAHlQŶn}:Me0>w`0j_Lh-v`%Xc6c2P.urPBC֓Ȃag>ѓӾ.=SiBj rs6~ ݜF:R9 F,ٹ!!OU9GX՞q'ڂ ` % `dT3֕!o/-8/'EGmվ` Po @:^dk%o!/BfO)Իx7mxC#r+Q)=Qw~~3Rk-DX^q /Ooo|˿/O/??͏o/Oo$XA .dC%NXE5nG!E$YI)UdK1eΤYM9uOA%ZQI.eSQNZUYnWaŎ%[Yiծe[qΥ[ <(:›^zxbaz x b \]!Ŕ{.Ξcܷ?S1uԜBV7|CntBye37B"{'Nvgavj3~@ '] {xO [w$H;IPs輄;NԓP J=kDs(63l:Ż|^lCL) 3G$Hs8rGcXTDCd@Ů4 3QT% M4Iq/G 1 =%q(H:U7#HS0?T r8@+ksG S @˶ ZEG`K&2sձA;dKƅfmF5He:g:gOK/i1zҦauc#P[UiLUH7FׄU̩4ගɅeXhd?eFM*ӪtȞeavNQC&#|d֨hYaXf[?2?ɗw뽡ΓhRn_7 b,aFRT67~TV A-7uH]=BS7>M5;T(q`J-+YV|ZݷuJIX1&ΐmKcWxW{ڈf?09i@va~PMiWlWSLrhjUUhڕeX]; pMMЁd{G׃_pX<dkJO︎tV[]}gwZ_\qHٷغĤvT]֙s篆J5ΤŭqPWk7'ԯlGHT]azB0sیnY>Vwڥ~EoMSCa،\ab٪c<<ѠcFn{Oˉ­҇j簚фYQ5laVLvǙ~˱ނZi[]WFbނM}EvdLC_X! ^Ox`l7tBcP}ٖpngf~RRRuŋnbbb׹o]bFFFqqqۼ4?|||+YX߭CYX?Abe D/*\ȰÇ#JHŋ3jȱǏ CIɓȲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjUeׯ`ÊKٳh/羝 ݻx˗媿kpçےr˘3k̹ϠC=Z =0KY9 ҩŃ_<ܸiȓ+_μy虄y6f9=&ejj;s+^wY痥WϦ9ޫw%&?g T N,^,>XBEA]7OKdJK$i.Q8~;4sH<@Ƴ`.^}1cⱔxHKP#a,vM`K)K's.u{8FZjMPeUZS~h Jtx.gqB[馹Ϟıf.)V胹ԏM08:0ad,3D IBL"F:򑐌$'IJZ̤&rtGI(G)ʘG)GV򕰌,"Vc%.wyK^҇@0)b*Lifl )wQ2R1(Aɖp,d8crnĜ>?ԩNO&?Iw ;!>JqEI)eJ`S.a%*iH?JRej@Vҕ,ai_`ڒ]T?tӑ@H{Ӕ@$KDT(% b7,hVu2Ѕ곛dSyRrBALКʋ^ԢPL`U+3oW7`JӖޔwqa+؝TAul]XUG\ym $?DKڗ.i*LԩZtr/1Ld뒨j@tbu=pkЯiv,%hGkv@{cjֽIe:(?^τn7``v6PN. pJmW]de VOԢu(WCoHajKފPe3iMKG&y}hM_kyƥ#K&4W nm S{˜mc&%fNMlp䉹1n%_j}%(oaXV5eoZ{M4Wc|p׵浕wR/%lơ+n{xWKsy@ʣMMJ3AT; ǛzGqGɮ++AR1+HS*ʯ?ʨ (pyѻ"YO J[z 590qyN|)7E7z2o(<*U0!1~60\ՕPJAQjXHq;եڅVGt 94Aq};Wvj/X jVe@l.G<1Wxe+xG93[:{° $\>j빤l,ǒzf9 疠Pvy{dLw31*pK:^8{5̖Yk&eeөY*Z { \Ϝ{~VB1!Lɞ}2\.2a=3QohJD,'ˣEGhOL;KMu' is x:/٠KݷmR= pvțIlȅ\ς E+H~|PDK xP,£ʉl]:"j 5!ZqUMY9@ViW d F5q-M,[1q]ī[VXdIL֪:a=HyiFL+.\IMйɆLCDQғ+]΋,Ō;!ڧvR`gX5AyL*V<{l,ߞX_j 'm~l$=&\.q ,ݰ 0{03ݳ)y\qA؁FB3􈞧q(̞-MƐjƠܜ ~qMݾm Ea箦`{ߊ 'k Èn֘[M6^Ȥ[ݸ:. C8 \'@!؂Lf؛Fkޤ޷ټ>OUzL_.a;=!,05 قPlFm .pzuvm.q\.1kE;ǝȓ.ɩr-5N4ɗ۽-flУn ]źOoONGaB;*o-.l_gjGՎێd\fېW@^.ObQ⇌+.ɑ<5|X*dFޯzhy,;!0^;Ÿ-ctn=ZqP ߷ޮ_@j7뎽8a@Q"ܺ(Yo 9b|}Oh4.o~=qO$p8J4PZ>>I i0OB {PD6Z\F9j,0ҿ R0a‰$̘BMrg!PDN,0FAq?UNP.[n5G\s,ZXcK Wnڴ2dP^~ -p%i 92Ƒ-gff 5kL10gHZanךc_e?y/m+èRC/U*ĤK>'ja=j吖/\mYF$o2 5I#'ǿKI$S'$ih P $,pC pҪ7%7T,آ /ؚKkd EF,Cl1l" #= 4)'$Bm#XcGJc/+j2% 0|0C Bӂ:)Ch&@s3.͢I $HJI> ?Q)@ /' ۉe( 3Bժ3+cIlVlM:+1oY.bR"3I$!brF!Jl+e/Ǿm0(-27ߨJ̬D0NsS(]YnbNBZN.e=5ɦ6&HHC`HSz!3"!(: ?"T :(p'cL AtP3nWuE|#D*sˮooְՄ n 2'WS\]u7x3y'_(_|7<4>51̊L':kLJTo}+`MSO?/FOlN:7;r)m^zIuthN)ԆhzzH>5՗Vߘ~t P]#ax4y`[-(/lZշp)p Lt!WZȻЕ$QdJ6)us GBu{ @UŴōpC|3{Y$B{y.89n5jYS;췜ݴ% 5mlBr%d`BJS,Վ5 |*H74ԇyq`d b쿋>d%Z bcl!MK0N)[!&C23߫6 Klfu˪B檙1.L*"*S'n5RnF Ѵ=&(GO0חZ1Udo,nJ4!!9{Aqt;oS(63Xg64;Ůf~IN]kk@z) wV-^= >9w1h}YbNAnp#_A1|?._3$煳梊Yt3[b/yLcf%ە 7wy\M61|3{iNTcr>l]j E#ep=)Ԉ}m`Ŗ5&b7=%˾ef30:IJ12Y12B"r>ʤs s<;E[S72{7ҩPA.&Ǜ1A˼мqv@.:33%*׫*a`&/–B<-FK+"3/҅4Kدs3 n;i0$9c!}RH,2@Db?2(885?#1L051#E0eS,;UT62`@;1 @@)@ֲ@MA`99s#A#$A;ܾ۾@@d=ԹJNyM5h+^kKlT9]33@S*  @[,;Y\I8@UE[,I @; IH7,5dK,F+Ai˼FLK0&,FLѼ~ ̷.c5c!|=8!{Bz|=΄=|y=А b  3oF-ÂLl=8LAKS"BL7d {uHC)7H˶CÌkISD%SI$;Ed;rڣMILJ0OITćڿQɇbTSLg;E@ZY;#`;9<,kF雾M4FF.PjlA'(Qt<34́},=G\ի> xq$ќ3=(M}> AbK/%II`T5L,LDBR:Κ3^II膅Ӎ:J355;EOEdJKOd6(ϪPTO 23DҴT-R eF3´PFUlA_=aL$vQs|Qgs|V܌tV#֬X"IV_BЂQF/(ݽ) ̇ ĩ4Z]y{;#2YYxYNLtS`1H4T@DE3,0ʇTܿeSL]ٯ#CKN 6 [Ĕ]Ɲ{UVW{}7.uCv uW1b3r+o]AW!UV~Q#jlLQ*9m"$AJ4}Z̲bW Z-UY -iݧNpӇ\W5S|D:\SH$O?%TSJAJ(XITO$٧ET@e٭S&S̎g~6-Z~F1ҘnԾEUd3~c< ulQ#dd&tHێfvчAp5*߿Z!Gm<ޅ.h[Y~&}8zRgV5=e=su޵3svJ!;hʋp:ŔVTkVS޵VDlVjkomJԕ6rb\iuÂmVSS6Uo;nVsgnЎPndin5Fh3^cnbmٶ톐mBLa_]s ߞ0a!]m1 %EvfФU/n/rmM~qjU7tfeYXst_&PeCu5݉D puTUDkdfk؎G f؝Mp[Va$]/q1uYvjCwmlpqq;k'lg Au}&qV~.c3nrَm9+{W؞r) c.MnLl3~7/4W{nJmƓwNhѦ<ׅ rh!,uji"xԾIpJ.e͍0 4CDNgyx5HURF@ "uk8&\4$HF+ \[ nnK/Ttգ48 l|? _ !M5 a;]i&`ڍIօ6Za*>7)J)_ ۰cc[5!;)%Ƭ1ҹ`AH)b5R eC(#9#9:8?4!c;FFd=%axC9TvlJ ĥ!¡aC#G%ZD!Fƣ ^m1H# $`'!"C6*(]M!]ҵNc2.] ՝(Ӂ/bRzSjlT`I.Z%,jmaWXm9[.b.b )F&/0b] U$0!Z &bMNbJ#6"bHaHHNAR#Q#;I!=EiFdC^n6Wv!&,B$>:Ҏh:ߣf9IH!1Tg.a8geN8e8d4N#Ha!&MaN&l P}P(]a-MT)"`bb"W*F# X*h9lVNeU`*.%.e(#8e暈R!NaQbLIc|^b9Z&fi9"B!hc9CD"`C`THɦ`Kyw5CC,ù($qFQF:d1x grXK#v^&e 9j'#"hKFK8x'c\9{{B1Rg&/'yC*&CjU.Z())X.hV[ծjhh.+`b[^`m]P^+(ӧ#/9akx"yV4bjJ仆"zVd$+2i Ag*):b(=*lpV!=,Tїz)Qm?xCZ.!C曮",:9ڡhFv$I4g%?)1l9+kЊxvNꤹj*z! 9ߧ*{(`Qr*z+߹*AԪf[RSmR2ka `%(`mmXZ7Q-0PS&*F@{Ⰵ X}r^`rjdЧr긎k;+%!n*j*.$F'Kޫl Ɵ"g2r#˦bhknaiacN׾vᦙ!o&6,"oBil:ldځA-u8:F8.!bj&p+S3]g0{b.ْ_غ­+8 a-nh,n6Uư6'?0\e"@2+^+Kem2{Zkfn^v*}−lԢ+~CFjJF21i+aΎ)i!穑&o#i&-\kV?Yl28?,¹f6/)ldolʲ)d,7H2!1`¨f1gltw+Fs4w0Cq6S e g356eq001>(3,0<;( n`Yqۭ%%㪳m;䖰ABp2'vZ4w4;Ҳg뾮A0""2,mxA KCL$2Aցbq#C,>)('8rBžC)[Ǧ7HTY:ÿ$Au:džo.2Fa:$*32̲F,i-,iOc&"͊J0200mJ*9v.-3-KfG_656p $Sh؆ m gjtkަm<Cv=jn'0l$iX>#rWЪ-v ˶6q?XR;䚳;\wy?cm0fgvZ6|CvH/wb-9l94`d,/+CG*g#O?=ùC^)DTuJ/KȑTafCR)5)\C︎rkOwd1I﷒/pc3mH+Fp|_6i37p7g GA y{bCjjvv9> [.4[b%0A$aznx˹6u'4.B1t9VFJn W4 m`2?K}7i$00Cc0bB#:NKMCԁ*rJxCb휜DBoƍVÆ n,(soA4(µ; ,O?$lz0߱07z~+0`3SsF7gs3vatyd- 6iuFk.p1}5q ߶F9 n7X* kQq5^zJ4?15,vzx⺊NGAZK y,(0퐈[x#/kE!נGLF)JU 72зñȍW9qŒle3UmQcҗ*K+]񟙊Fl'j[*4#,f_I̠2p, f 76J"D2m3|':t3a#!OH jfڡ*K}EU0IHɼ:@#;uH]2cKS:6CEН\ %sXd({C] #HzOlPyM-֔Xj2ؓ Ga񷚯5iZ`.+b@8%XT M}ΰ'SkcV9pkڔo)ETUZ|;>dHa|[:qي|8B4> 3q,!t'?AƢ.yx cm\r;/'@>Bb30Bㄦ5T](nfץ2uB[WE )Pd#9[ciﹷ"8D_K8ݠr*$gy`l+yKxE,Hć]0N\4L%ؕ1/`=h(v3VSl J@v~';5! ?;a8FOȜ!;Gcw-< ͮLe/z5H}*|yjdF d8mH͓j'ƾJTmXCfKfdf/r*ΗD./h.".f2DleOlĆ5 oVP-B,.NGV Avn'oER A`N#ds$&""?:n⌣< 6B / eX#hn ͨOb.  ԯ";pTRJ$-Bp'A22O$>zlTJn5(LdivLǁMiN,h",M$*l+0n^xj&L V^-hvp$BZdO!uAo L܏kH0K*1 7X2G˰+/v%1.XG&erxn\'"qx" $Vc Lp"WdR$ e/*ʞ@p˲˪Z^"^p T1y Y4m4wb`'1*NJ}Nbj+"$j4@"*h(3wOd 1dA.&q(J7Q؉ O8oq/M.P%]2XȰh $$Mr3@2&e @TDDmrA ;0@!p/itl/G7SJ}1'+f5fɬj-g0"DOTlFsaKIE`1SŌrsyJ 8s3/:FTB|N/$P0!PXS:an##UR) M<YP2$$s>%7N>3"np$JTM?s (w(VO%xЀW"HX W=7X  TY~Z5 VhuVk2NB;\PȜFT]$8ͩ7!LwT1D2!2瘐 BJmVp@fD6'l*Xk26mm`:9t'D\돠T O}!3ZQ eR#5Qi/'*6RӰ"< T5ND=jZK>(](kY5WkUWS@RW 4@ύdXybƂmmZwbHnOo5o6oWCYBplAYWlVkӰXh#WgO$Jaq,@]b,6H1K_b5gB2s\"45O.,i2l1[ )0Ƣjlvbys5ʴv2$(Mr "Dd \MeW'hfiV-UQ[7:1U;115;sR#;<۰Qr UG%V5kSj>[5@[(ilsWo5lv\n9XnvmOmXE"VmMx_HAYuWuWrmVkx[g'!0AhiY6R-eVf2|GO^wkJxu]2qMfMB4s`%(Kٸ`6tqU7zYBT];W/uQ|WoeU1r͗xf͗:e׈7h)$"WrO2 999iOB)3O$\[v3?5qx_H8ynAn+p˖'k8 Ԁ?;nZL79rs</s{ 7e<0+Hbu-8Bnhjwv=y4Bw2m'1K$VlT,Dx48vwB'/sQ9O9:|;zPX4}Ւf˗UZ9&++UR%is^ғ\PPjWCzͶDs)[ Hpwnmᅥ5@Wg@f5k ҌA, Kc: ף18tAB_mu_qLnw`AD$زtKw5"6cu&+>aԴ87#ZBp{1:ǂ Td19Z:[o|wf;~-~R9+r?5\V#U'8W[g(ZB'Zx{Z9Bzq(ΥS<0y:}W ׵@餠zJp1%DGq\h£q5Rf4Si4fZ)4(6'˯'cDOŭD.m(,d]oqXGxFiQ{Iv< #]Vy[$6?Y\DdUzx'lmU@<ۻ;y@Zl˷>ެS[fwfYUJR߈Sz;iySWC,u3MB(|%d$0"i><`[K> KX jBҿم^#dw/{뺿YaW_t9Zfc[ybQv;oZLzxlkl:%qBs'A~#]8]ewN%i=G%$ݘșxg_4oԝ1w2eMX~25fKv@fR}Ja61W,^ȝA3ǸI'5 ݏ㺶O 9f!;+Ys,a5$'Ӛ=繜k][WZyB媱5qmϛ<[Rkxw%7uB6]wb5_wKyU''p5j^KMHTGhdN0(xA5Keh~btӷHzͭ#$!ҰҰٵW?|_L!~)=|c🴄 JDBDX1ovL`H&,iƊ% tKʕ=drNƑ#|Ą%TcjBgyʵkXdSLvٝfsൄmdZ);603;(lp…sV̢gٛhog΄ڛѤ5w9י\/3߹|Y'vTı&խUn <7܇D<߾e8vu6=z^6svkpb_|Q͍J\=R|sC3??J=ԒM = )5ݤM0Ui!$v0ishbQHDQEx?;aDEJ3 P3kVzPvzVe{9sՔčQxIFRbB;\b 6gaibs&LrnQ"gM.5hui}&h)f\aMuqe5\tr!A?N57&d\W R?N)yp{XFJY]@>b]>GQID#R҃;)22B_$TDO0B46(܋p* j2$4ˌ; 4CcƖ .mjQ B0HsD1.uW"P}CM}sM@$ݥS~Fч `Gfv5,'AU6p}Bjϛy97rGdiBZ.-H.{fNʚ'xB 7`F%Y.ݩpjBoXc BsK =(pW\ i; ?l}S̨ EEK|,k?'[r{phP0ן c|/! {(fhL};>} g2A:Ј,'2QL [&jq#Y^Ұf:*W7J|dNVJ2Q݅T+yS>qiOtӜ9oLͨ4mqkg8% Q[֤4-#`W>S?\ 1t/(9$:1S>Zv#Lv$ȫ/VfO$- `  ",#h TKlӟⷾP$LKH+ͅК_Ѧ9@.ʺxV$)dF8n@;r#92:P,L솨B5iU=O$MQ\D>q-nZ`$&#*[FQuoZ@qXaۚ-"QmmH bzB2A-lTc >}bjV~'MUf̻k}{WgP󮠤 ͅ҉\/Y`6yIH9d3Y¿Ze_^A[$׃Oj8J܈;3WDn{@Q9Sl~=s դ$ZUfx|akXS;1FOtCyCOAαA)s*Ƽ:;(<ďC@TB\dCQU I΄jbIB;zsb587@v)柽/m\,0YM|`25f 6/+'LV2hDfWrJSaZ6H9EŕZ0Ik>U|gݧ̣sB!G|[JƬ\]IFҝ)*~mM5~nf/dNP7%L}\}n3 fw>/k}+9!.ooBe?; qp0 .tb+b6fbf 'JGtBǁ̃L-#gwb[jЁHTB.3*6H.b gGi,C3rv[}f ijA-_AiwRP *]Q  yWj]g;`n^|''xc^kEmF['|+];`&"le,~` 'H+tLlHҦHP;6 i"|b?Av>}ʔAb o}v~afPXG> p}L&~e1t@0 8oHqxNgefˠr1 10 L0 &O4[6"t.xtDT%h./xOQD4%uqO0щ!%dg[MvuK3<1-OWQ5)T\; Ax z,~ a؅\&y !gj V^zjw7'xV'7'rbR|Q Heو: qH$Q%i1dvfm"20<ŗ/gbXYD}/AgXLoCh0}} h q0 #ؘgҧX 8Pqe`@hB0ZgImP%H)tœR%?ts0]R`:Q *eH+іNz:vm23O!%R|/z"f|&?|LHA'Ai꣋ڇohyyopw > 0 0 q~ Z i iN;>q i>e0K xL WH0/" tQ4Y"$ c' 6(y Ǭ mq m1ڏ 7P ww,j,z"wygAxzzJ+ ߅pzAygjvpj `B`Bk:kpk kA|s' jtC7{°Uɢ,sh9e97l]OBd#dHz;!{Pn7I7!Itm!V?,LWj)}iǪo굀{ ]'0C9ɄYjZikhdhU Tѧʙl;a aDP߫ ̪Uy\{ǯۺ!.'/s¼RPjw{67xz6ٕw*ڛ],vXj=I! $kE1Za˒  }"wxaS 2 lqmT}B^Ȁj'lvR:K*3q{vm1;/Xn#cǷ/m5K՘x Ħ}y}Țq*gbӋ)p*Pfo HGSDwK{jq+q _g ?i6hqۚy,U5  [MȽ[(Yƌ`|xwmY(| K$  vP  z݅wꋆ+ث`蕾(:Fm*(e^8) -G²@4JR^t}TTrqCkHDaOUA AT; 2C0J#Kdj#@j~Msud˸Wm]b1/E\zG<Ҍ~W`sW1^>L࡙r0A1elNm c[GtH Jj ׏cH]ub&=(HA@|wƫ xU1Jh֙< &x{y [ ̅V w+gQ mj/ I P{{ yQFـk)(,3r(BR%ۆ+_ܵۺB%}$EK2E Q5;ˍ{ܶDݵ՞".;- oNDlӁ T[4u[ƣuTwsT/8bVŐ1#㝥 R R0Kׁg|wQ oBxBp$밦ְcn ]օe58B 'V !9}>ِ ![. !+^1^oK8n(_aFqFb^Fy}(nl|:˱K{LOVV7DpTi=p ~]H># yC ZR_`~}ӖѧV4> $wfNp]lJ7!>hSWdJqIzۮw֥&w [j))}? ða gο/n<(DAU@ Xav$ˋgʎnMMkYhHtQsi uiTYAzKz*P6\hz[6خ  Ns呋q!;;xoo֣]3ן?5g#o{4-[PB_GQ`ԑm r?R 2Xm\2p׊P2W\*Y,R3u@4~4Kr\kR(Dߗ3 c=3ث"Aʭ@5PSDIsdCSaV4e5+ ă I1RJc8(\bAA.4MtNkB42FCUCbȨHbTuؑF(Ad<?F|;r#Zq \fm_tk`ZvalВ0 ݂mE/cHB1U'Ld&*cu ?La8ɷP$ 'Y߰ :1 I=4M Y:1PgKR\%x Іpd̓N2<#Rdi!:`ڐ1O"e<wI=m,";}QP@Xԅݏ$up%J 6#2q jfPJ#a;L2ɪ5x%GX0'!A"C. !Qx!C$ gPbr-|6bXSE9pqhYˎQdrCf$=7\Y4+ZCR{A2#  ?j@A7RȢH]a-(x ]Dua~#4LhL? $DCBA"-\ӚژӆRlAOW p񏁶zqZkɤ lk64Q_2܈%itSB d` =EA BJ0!L QaV@dU(o|8:sk01)n>D6ck_;咼 Fs͉%%BRߣ$E=IZ.;#F_յC@s'=$},xٗx=;arوo2M'"NTD 4$9|%+E%c4e5[؂bqcYCb APXme ׎6W|Y]llb(54[)I ~lE_d:5̤e5=AÅ1S)u;=N-ۉ:?ڴPVO2-3(I4E*|Kk/8 4@ S0xg0cJ9(meЛ{B`9X9-P=\xG"k9QQFÃXWp=BqpCBQ[F%\Gܧ^H_r;)I`*(򀒅-s1p0k k-)E[4i*5kP;G!Ē p鵪 dQŒ358bdr!̒"#b=xCՙAHlBq%BX1 G{`jꪃqp)qq-ACPbޓ:uCFrd8?lT={!B*&+&sH0&%(+ X/< q(C6TuƝb=[_Q6[\Q^ tDzرpC1K?*Zɘ0AA;-ElCʋ9*>kVpCk;<3 ;; Α Z1;);PJGz%5(-21lGшEh(,dl>cY?)" , (88-b8;7Ǻ "l(r bxo @\H 끶96j6.a9 MP@ЃIaʓ!Į̜ڶz-dXrMdCi. ` ;>"r7y$(?(89(K*  .aK<ߑ!Aee([ع(4ؑɰpD L3Öb)CM@|9gg():cJ%TB0)(nVe͍Q 1çSsQ530_$)-8!79Sǧ#WkXp2 Ɖ< L؃xبcp5z< Q%-3(  ]T-RRmؒ$ (;h`5_3">,# C8M?3B)KY˾E5_K[4l0%do`*1X;)m`/QITs=MѿZY5YD%\"rI-ŀ"HRע3*4Q} }#;IԁdѼUS% Wc+)j;Q] cE$ݓ"L{# ,IN+"e֬s닡[J$UZ%]%ݕ%%DE˼L$XVtM|cM/~@+]m&gGd[9JE-pCNyb;T$X2m?UFp%).%8ыF,I +Iv]92Ӊ_|Haȃ0?Pd[1rprlKm6NmXC,,?[ W 5"O)6= ZH!nϚ֡",ڽ42$]j37dB^HT08eUh$Txg^D%m oס)&aE\q:FX%0hADDT߲1)c;Q%pzJ덑^VЁwFѩ)8`&&#:8 "p3v1 31 [܎;R-ůC$e hb,Z ::7"}& 2a1r7v+Ry7e㺚z`FT5(V$PPd^I=IG)r ԫ"EMF%ѡO6FjӦWQh.|OȐS kȿB4Yd 8,GA5Jf6\U~OQQGIZ,%4[k+؅#̳$z$UD jL񟰵/%tձc\pU<5gc]EVڌj_݄ 2F</TΦ? )+8nИ1\ǐcI\ŕjSDh?`\&QQr`hȡ⠄4tR4?(73wDH4r!$.[d "? c2KL9,M.gPYVc7EO6_f)cRN9BS7 ~҆O9YNu7O%7!i&6f` 6r?k*&9 )B*uxH d0$QIGN cP"6U}ML8"PPFxH$1J0FN{WQSe[T![s 9n^Ip(5RT`]:%VNxma*ý3<SFa &?́6ZLR?\UWz2TGL\uv?tǫf i֊wJ2SOrH'?#IYtyݷnhz96BiHXTY"-, )2?LSӹ6#8IK~S5$^_0&Ä0fij|'E9hHi?m%crdPZ3_if+!:ilg8nJ5"l;ˍ2>nKQfHr(a] sG<‡x{z!!ÍNsӈĉ@pFHa qF (T7! o|} j65Ԩ2q8??4CB89EaKV*pxpO7e$CCR@hQ!7CjMD.ZJWi[o:UO !*OR hժ j-'hܡ:-ʕ W g,`QDDd4AkB4\rKDX" )"GyF2(HiŽ(g"W" P2:Jƴ5G:W8BqI_48"դefX\)ښ+g -`>D7-&K k*3U LF2:GeăcTbنQoB05B7lQfìd5.V:9mtG0 iC ߩ mΠ|^ Hnue Av5f6eEFpLMʃ,*BV߉|͈':Q#0M+2ùcBA'I% VEYnVX bVyn'`+eE} @ |=C݂T&XRrq}i0!Y좁B]zuC-w"l7#ݲ)ݝ Hrȑ1(i("@ !`q 4|#ك"^Q`ֵ1hxĹխ=%8Hߵp4ʙ}OKNΪ[" gYr!-6Ӵ"Z48"\,KJ\J&Ruխb_ѕJ\ҐR+b]UʧI| ^ʤ 65NʫZ99|C}'dϗD flJpϭ(ԁU2|aXanLh*u=:?قre(E^>*Q0,H`hRYDm;1š5MWLK|EQZM]A9)OTXt^""Z([^]yM(ɠL^KHLRHea(peGd%EK, (?0j൨"A*A(&*0?.0Zn*a1.ВEּ1fAAT5*5LFTur/xF\oHyWOEb$KJO+K̰ü Щ\#Mmcp#痨g,lhKMp5 8PP`Ŋ(VC0bggk{\ZQP5BM,LdQȉjYEU  ϒj|aZEhUmehNaOhbhFGeE}йLp[guq'Z݇H tuZŊUmŲ0 bld FP%(tyERMI a`>b~$4lKn?̲'A.rcj&GunL"'?9!Btd\G:UixVc?jiYJʉcͱ)Rv{vo_;b'c1S{F-D ;D5cM6ZcĈݹSοxU'b !y俌1K +ީR:#N;)ƃ"D;؊P~I2F?X&,3L#0kD9u+lJaE0)„9"_a&^C숂1mW ͚hgѡ5즘#QC5 18&$DiAJ_r*i%aAo]r(A%K)š$1jHQziEx$&%cB_}+m=& M Pl2 &U^)L 3f[-ְ3h$E*CQ#E?D:HR1%R28H%f5"4}:"t*5L7e UA#C,V1x^?SI^  SJ DU@kI I(D"VЂ@&E;Z3E).X橣g3:ntbӧle׋Mj[F֞V5#h> !=$"iȚ5(\Ϝ6x mA1 iC`.uFF3X`K̵v}!D^C72)v5~ ^5jC\X盄^ x)ʳOgPpcT4N+/zQi+J7W\V V¥\fJ&܆{YH4AABhHUҋf`YiLRhҢԍ] ؃&32(k"j2?loS2mYDlpP ªV lM+"FS $M SJv&A`q%(G)-S z sIl mqclfw|ٰ,6GC*24-"I{`ٙK>kC~FܙzzXNJIMF&{hۆv%D[GM=a3O'װ! E+x)_ VjpDΠT,1t{PpTI C"qB^LN5SH͹?2#(h Q}(v_؄*.ЇMDydk)P0rZc*1kҏ咏f^G>Ogښ@}>kMXP堦W.V-RJi Y42*V׼Fj1Ue: hvq,l8Lab [+d1!oXt6횹3so2i S}4p i ϤGݤ& hŒS,Fe>#9<&G&NɖiC6Bs.iF =8@C_;OVoELBFΊ1~c8). nn$nTb~4 Ro`o&knl.p䎤IpK햬TMm̐MN j6OHC e}dX/ٌ{̌Fz7 r,c.P,DtAHRfb^a*Ca"01̍v*1j3Ktfd\||I4>*Gs+۰@O5HP 8. ռ0Rbo.3*/F ^\$bf-%.cl|*S/`ΐ&Ȱat, U"Rf(`N1q 2:Kĉh`z0 q1 Bcr}26@`P L.h %֘+SfIc0e6-pDC/ >.v0 ?O_ҠTM6vc5OH@`@|HTH.>>'s5131Qp K 58@`jKOXu`s0ɍ{R4(il7#JM9&kP`WMkf4BԺGR(ġAXUjdj0V:A`ƴL(E@jGD7b)fa:fR 0R^+RBa0i_?COx4ڭ'?A6L4'8kf5莖k0و fDA%'O4LcM( 09dWGt3#SHf!mG?R%-|@M+G%IC0$@Jn$j|B `f%B'hR8*C/1LAcMrcb`mVz5gVc. O 4Qut QR"u1U M#7#S512U'UsM5US̎t=7UN4TǍ4fWh73WsX+7vwwjWsá,.WA#R8Ze1UR 9Mkx{-1&Rp.WG|wh f^v4Dۏtod6)~53e͏ʈ&(%#jdb0hV~;PI#ִ -Ŧf4Έ<lw% Ópn&B{e#H=LBcIZJaDN%,l{ 4n# 4*cS36V8}Dc{V^4/ˮLqd*1>p'u8qA7SD5g@s4&aM7F`st!3j lv 4J@fZYbYW6lGyGi_7dIv7xW^99uws7|WAxդ$i73eq~8"eKgε3ٴ nId601dE';҃]<#8"-oU=i .U_8Ɔb:633]* f pXH]ɚX$!ܥV''BW6nJ3F*9:c/4 ?Yl+Ȉ3T#eXҐ5Nuf૭t0ܡ3\hZ#m:1#RqP4-WTZR!srRS̍ s@/|^Ɖ`vljMf@ cɖo99_Y+c[a{rW9˗s5m7}z2T`Q=y2crS߈hq%Gq *ؚOOQ"TxmNUAip֚('K#He~s<i,,(nl`K5:ӹ\41Q3,+i Ts*qGIdi_0y)*n MhKäTg$3l!#543(pEUsqsRoZx' R随%rZ<2#5{q#1S#|\Htq. }6;}kM{߰M[TkeiyvCA#m;m$-g5I A(.baР*@`o01]+V26T@*14~Fc*mf?/2M@$@?+d/8%4ֱqD$A@8K#~gˊcg-ҀlO$P#֌KDG*!0°? Pރb1:֩tdlqrJu1߼S<$w*:żs;wR\ռ;ܒ8H\o/UݘPr~^`.eהѻ.?;=?McK;u5IZm7_9NX*o-M ƠJlp jӞt Ż3:)ҵ0ዊ1PEZKcȝr:@ .!J5bX ]ޥ>ŧm%3)(r3% ,"LSICGQڌjCM/?~d1柎IB$D਄0s$,ؤIW #`F¤ -JU<(馯Zlfʠ?3PEY֢4$w6ݪaː3F`nӇf8 xBu8ًAbc#^Dh$,*TQa[2+D<&;i{3#7؍Ц4G-]%b_BMciشI+b/|aGwnQX07RhS)_Al}Z5#3ߒZFsUGZ3m!4e45YSf'qet@# 96-ρpѠ8c^:3 rz > ѣaK-J:]xQ3q#@ p@NxTp@v ,X2IR".,Te&|fԄS6tK(fa (@zQY7eX ~=@ && u(!r 4) ag̣)yZdL<*Cs:smPeRa񕁗OGex$s&9q"*FM!sUH$8<zfjA.Y{˨jV`YEiyi 1{sWXHETԍVj)Y5|GEaYJ7- daAZRQ}H;3zUmz4Gf5`JdGvri`_\34DrrJ aceaY@)Twjh<p 4oHs`"Lח6C ۃs8y!.Hg@7؄Mh'.1R-16%D+>(FDz uS{"(UғUS q@/q):*}䫊[+j f(u8)Q,8f!ANz D,gÉ)g**kkb1Ol"0Ta { zƇWwq}S}E=Ҋjj,3Pl /\h- C\٧.)u v S3~Q fyN=!u}l_b 4O\BIUDA#W1 i9BB-l5JbbsRS!r<P^8'BKC8hOpW:Af7 L9G֑v!i}&_5u|Ӷsݓʝꃳ{˅w^(:͚T, G1AԢ z=lJ0(""B7|;Ij2AŗOp΅maTYQzh?0T`NpTQ>;N=Zx5Ez gj~E.,4V3%ި0|VM/f zg3]H@ > ԦzQT ƵnvHGŇdAdSL-a~6߂Z!yRAb9@)wT$l.J2gv7'D %O4ڃap PNHvt# $ ѥ \hÅNzFO 2('tMxLU<@vF'N@ E:aR+$Aiq)*}"*1P䟳AK-6뎭( 7X/ΛLfXE"&FGGR38;=v\+LC4 XZa_ `QX:MX> X(-<0,[g#x %l;:aR:^ZiH.C[.Hrikh9H8 0}C\"k #ZiD7S0\!X0H)`EF$Wȋ8;a0BDBHؘKё a/鈎}%r!~c/!9B̧C  k\3201K'BaSDHE\DhDJ18#I#iK3˜UW$a7Z${PN\DeI`$O34xkhj,='X= *0mWQpls [*b]PRp"j :""P}:`RiՆp2F9/%2y.IO$HQ Cj񊟡9%5@ 108z\c[hQJʨ:JD@(T ،@ +˘ԉi1CHTm$Z9yۙr / ۈ9)yP<1C$Ԩq# \ !|zTTDAEU4JSċϪ -IT0BIAT׿Ϡ{V(d.R{ֱ<0IaFb$x#h))g /jR1XhSȏ1U 1@ӱ:Z[$)MN,˛ͧy|^e.). fׁDY# ~ aŰGL@KGܜchP`$he5``: V NO 6`7(ag4afNO&*$v }ACpCCkP^0tV$; %Dɜ›^@t舐o0qڟLoZC q;>cZ9y7V<\9or]F o߰cEi^8°6n號㮬Z×g7-rZ; fyYc><) lnuFl#m.P/ҹH` BNϧ[gߘ͓=9sY.bƑTقK q#)K"`|7qX֐aj`5yzEϕxy("HZX Rz=*?#7W$O&h&߈Th0^m :h:Wc-AB/Oc>[3Hb10#-$nf@%Pqs@(61$!1ĎM-xuX!sE_C)8<}bT|Ն)v> ^+W g"VH՘% /](to:];阅H$-ɋA1܊ta 7MIզTL I.3ra$,)pT^|Ex4j?Dctj(,( W.}(Es瞦;r¿ LH ̭埛Q/ :09p 1S.!@̘)E 01È3KL163p?s,DKĖL8#1kO+ E> f@,Գ\ 4m rj8Q QXFlKRӻd5/(P,YI&QDSO>*$z0S%Rm] y '8 Acc1} eh-@hO *\=s3M(0q}wq\qP~]Msa]ܩԒ]u5ם|-Ş|uؑw|v|WvnjlIAq :j"!ɔʅS H(b+*(r.:'R'*C< y$b2f)``AFښKQȚmY&} dD4A-Ey~gK8G#7)<cb#] TħbR& ╟ZV)RT"ȽT`Xٚ@fP,|aWJPK Iȹȥi0+xǸ(?%2q% fe)?")E'P O5B{Iq9#F1$ʂe)nȺ|N`TFeaxƘI3ad$F42TXaLȍ # "j(Ry FLHm؆mk|+x9+y`^j\Rsma֡-Jh4` aIqTnw8wu4prmZ!"9 P9Crx!lj0p8X٤R4ngL4|Fj,dc1j0ӎȨ "w#6FKCc04<`~ӣFhƟmjPC p<\z<6Tt8C]cB[$#BGLY(F< PTjM!H݋,2(G4HDmX3\JQʉ؂׽XJ?aʊH"4$ȃ8A5 > ץTDB!0'h@yIC@^!@!\ (]KQ@ImL0X] b 5OFAZ,l^b%GU4\<_]Z%c E .j9,jTK1DX_ Kd^PK\Ր\_%QY,ԑ1E?R`ָ5Ff@oMgVUd-EVS0ſ4?pxԉLnXBɕ)QeW~e)-)qӋ a/t=(ʢ4BH@"^׹%&ǹa)H^ȅYHȱN 2,?&àTw#]ڙ-Ly'B# M. ]@ڻZ hd (G.KihHjHEEiLaRK" FbgTdTde= QމD I4EI8P)վRDXbsAi&ʣ)W|).tfU&&R&#N1ōt@<*HѩZ !a5TDyH)B"L2 C A8}JޱRJP8S8YJY8?hY! IQA C,k-B( ȧ22kg'W1l~rЫtPk,IxòzJF_UR_=)MhnZk.梤C(d0&h.bDP$\2ZؕDhAOP Mv`Bg#tHI\d`` mmmdcN^`FFr;`NNEYU~ z3B#3Y@> 4B4BiveVɣ@RjnzTH&|r(Gyo@Iܔ|}GxHԏ»HըPN~ݢPJUʱJ{:յ\k^- WJ4Ęph-+]ٖI蕑r 1tƕEkJ(MJ?H#L~VUUP<MH,Q((QD5,*.q,x=rE(.ŦŢ~BآA^ ѕ-6 OFmDYZ $߃>h_ԢE[Rdm!FF&a$b(#]̕ [)-8L KT,GVe鵎q'4:RqRզmةm>cz/ ٞUoWA}Y ڸ0aG)S|,))tE}zTaxl.MC+2]zPJO^O%MOej:4pP,3+`jd6HRB+¢@WokGDL(BHxЬ|bQwU)ZtKи 0p ޳e[/ $ +lt+3 B?*RKY% QmhG(IC?2W  g̀ u<gi[YK֎-Nnm`41e\ifl5dd ;QZgEFId^5s,9§272ޛMm'E#4:>1 f zꊮ JӠXI4)wE|?R2i3Eߠvr L6fcN/]F{V8mkgz<4\RXUkXT RPj䘕j@x4:_0 CHȽ 2=DoҊ}/p4JKBH0~MesD{Utdt_HkڃjE#:hЕ IдA W-" ~7tƸoie[!(5M=A_$M"a5N*Uc5d$bL$IRgY7 F0YuZAڪmGHPcƊ͊k? ṷFmV̝c̡k5I%*HɄRg{*6*vG}@4̡2X$)i: 6>3WH"5w^?s_8j2GK ("Sm4vE,@ p%- D^4ɏGo%Twh=;t58Wx,SH[c.e Pix-.BhG? (7ȻmixxibO* @i-XR$R!o<4C4 CC\^C٘S= +GȹGSJnћs(#:RRqq ;g 2$J -#(C4}*~~ȇ2ts$]x(/n 0@ `I' NG̙pA'.t sOv&5s' 3ׂjMjujUjU f[Uu*#'`;wϞx((һ7^GĈW`Gd70`;…\2MK@7DjԌq`)F'DA!&GNCxWN8!Z!7-j BCz9's&ћTDA  ~ӷ7K# Ј>BJV@@A B Qe VnqM +cpI9;Ѧ@?hV? g5glu|Ӓ[  DhA ꣭W D@Xk<,TIUN08nn)K\<0A`TJū3jEJ Z 1%<͍0J0CŋUʈ+G"w6w +#*t/!$X%'NP DTb 'zR'sբ|ZU$x+`Rܪ^]d%+\!fB-] X($ .Cng9#P%X11y`/d?:ApSf;dXK2Bk11j6H9QF15$ 0iL0#`5K X(MkgʛG=挏AϼU8-- Z֢ۤ Hug㐇6C#Z2ɭ.m&6&5q@< /CPh+p#$J'G&Hr'1鹈d-MJ99+irդA:h$݆F"LJ3Իf殙 H0(tj6-Nxbbd'-Ae5%}~I_7ի?qXuCg8WXe@t֐ gN5x#? AQ0U5 )UN)Cb d??`Q* [цV8bQ|Q'aB`G@@dl.q9 y?T.,p:J %Bp(!.C" J[f-kiXɧnJo2$G\2qm9KAʆ6:x߄垹 lLʔD*wŖ#Ș4^l:NJ03ہw,=%u>!%9KO'z%ULbRPjTpB +o'գ2Pn2qA2'=*JOʟA\Qn5.IԠS$A~Ln@>I-ki7+2IaI 4aM'FDl˄q"EBc#GT D40 fx#j1z6A4@G+)h@:5MFW& H #QxB>"yy!T-%[Z.ĵ$3MkPA<,~[ .8M$% RڞB ݒpW$W'>C9 I3ytZrJ| U;O N%x (kBThibPUZUڔceMR!I< l*H,$XeЖA~ O"joQӎ3HQGɐ4 2yFB*9f>!JA1I KD[DLMwEAp1t+jʚf-&APh6ov/piHG2-iQ?>\ :zhMl&겻 pas\ؒk[5{֒#[.6hإ/=EoEUj|8TSiU#(;e?1$n`G䐋 #$9sFyŬg7yΧ")"NT,n LL!8rVvBQGD"x©L:bX '!tXDBrETBfH Ai* ƚeǐP@k^`4DC_ B Ff5̬$$fdj (^HC@` P p4AΨlb(Ԁ ȏ~v JƔ6N#LD"DV, ald>|mR$؊ϐJϐxkp'*bPOx!MNl8pܤmLbLzGrO/+' %r"*p|LU"p.ThzgN`"PAI& PÈ"d" >LW#oLQr8B"VC, Y<.dBˢI)tI|n%- Mh hꦕ(^>cG(dT@<Q@R5T='lsN .$ܑ: Mn.P$ETp5QDBWMB5 TQ6Շ';Q7' :W Yb<}uEGzzP%'؍mUnqV ^RD|w$Ȅ?MW-"C&ΦDmNLxMq]Kmr0@H#3C b r <4c~E h(d9?a~ e}=Ä?܅ܨduq/jׂƂϦ ە^xkk6kB ii$@ɯ$ɅWLִVMLJxƃ N~wZM/eU$l2#3l$Mvu]Zj(*e:Ϥqq\|xWqS쎝SXX/et;Uyx6ѴVV(ԇJ1RsML5w,4>Lt˔7xDS$VKgEFҘP="0 #2Pba&c}cO gÏh΃{7C׃"e`O=-GA`Ŵċѭ iv  :W)okzMl$Z[ϞOOwkwґ9gURmsdohhKi Z; .h9g\DY\g;K{՝GY$yX+[M9O'(9XU<%ŋg{.{Q &'<@t+(n9Y3(Cyni}LTVk!ikt|v~k7mmvK [<]K(hMFH A H\0~(#Dͩ79e>S]}ЏWfSMgL J! 1 ҟ)=}gOϩlwwj7WK:enCZ/KZZwNms8w`?-XO!}lOCFчC$(Qb*vX56b5nxX`ϏkePq,d6 B! x?]D+ l)Pf.ВFB\Z5I_07p+SPA4K. =RL=)EFdE\ROqMZ.pP][]Y6d.*Wrm*\Y5WSGGĪ[!d%%.X+PZY vvԭFC)FNr9\s\.뢖ZvKk֙eby̨JQ`}'W!T2`QtWJIj_bU>'賗y?>h<(K|h(QbzF}fIR3 YЪ0@_Ҩ2ACWQԐt qH!?!hr52I-b[ۈD1(P<(XFDyko}p8)OO\`I:."Fwѹ ~RvwE9%D*(5q O\ºDS1}yP$۔5 M=q#u2"ýU3QOڂ@/|;q|bFØl,@3.͌23.Kah0 J_hqud_AHK9&4BQ?@sDkc<\LJ%,YɊꕑFP.SD#(O=u9WrɊTdLI x!\RjzEqBJ(lY7Po? %#N!Ғc{3m2"cfὮLrtF reK^IЕ"'ѡjhRKc Iʼ0uņ#jQ=%M575 QdGG+2kU+즇U\,+zk=²i%婘Z,5Pfλ֕0 ~y]ctt8n(7BxIg9 dj֘;{iJӞMkRC\+SG\<I':e^SB׈xL`BW"I+ZLhd0QmtHvX X$62\򮈫cXǤmi^a0H~V 2H s>\L\_nsr,OgdS@ު%MVNr?.P¡pc8A¶ FS--X [t&~h[K4/KiP$ȴ]1cb|n2C^|JCNwUr!ʼncX'TmAZ vNq08 j }8™,fլ+5=C>SZJ](>jt)wQDFC̓,a{&*37s3QA&Y :n]1t^"<'l6@6W#,$qYH|D%|#sW`sRsxLg|VcnkjWUAJLr%5w]Lz}w*q2KL()52'0 ~yy0 ir 0 @ uHyipyr(r8 WW@\i2!t SaENV"^A l5C>і=\!=2,Oq.Q. D~$aEA 40}~3'0RHǘohA/.@wp ?.r1)CgC^1[2q]qq!OFciÒD+ I=A#H&Ve sYw 9$8bwX'`$2vQ7ne;!`VRG g 7'dY6w JBXTkք^Ғ(/q&54j5z&i:aXZ"x\wGLR"M%G 7 ڀK_ r0yh spaiPpxWk`3F$! 3 ^`Uh @!^V)8m?Ձ 0(Pρo_ԋ3R7RwQn/h@(x~qXS.? `)(a;> j^@)qJh"?DxDLk<ф3SMwMI)gy8 &r#,".r#9IhqGZxMRaYNdg{0zpct`#iGYw/L/q\tii$((arWh"(;jt59]9 _ylyShs Zʖ!KЖK KKiukJyW$elJXHpIT{:odYyp4}j鉛l3HPw /I4pR!aB}oNR901}:Ԛ.AP. >5[xJS/rڝELTו5N@,鏝BD!*dMv"$jWqwcGKMKɵebJ_Vlmsbegq(m/JWk7v^ri}G$)e@w%vM<**2SZx:B+PjYH¤1f)XZsrJ TjY ^1SjYcat b@uHLP # -Pp;p{-1}}~+3k3rrX,q0PøQ`FA@`3|.BqAwAY~,@} `P1%R+07!?j=?zڍζ+c,CD :9VHd\=;ٌMz鬁CVw7g.9xҭ'l4D$;|ѝ[)'BZ:)aV[KKJγTN'_'\3$x D>g.Aк5Э+nx3h!1:c4>a)Nb(-uyy O _W1pHrzy\xٗuJPKSTpr ƃ 3aA." C4HTPQN<OyITd!Ѡi ' Mv‚7,0,1b &XFizdBGmncHn' &dc1qF+RT˖2l Ҽ`lMZ7gsNJ𴳅Z`@84M&&:+̀ 2 Q!Ĥ⊢r#0#VIZ] .O&p T'-(ʉl"R`cT&eź튬kՂݸ5 ۹Zlnk .slrAz 1nl<ɮ 1"L&W4(ѴҐ^5ֶ㰭(V)b`VHBVcf1κE 7V 14.XȬ۔OnBٿHD"`mT[5X/ DW4"<^Q[4z;i;%qGaL&t,QD̺PL1&ɹ/ P#6DH[/tJs%ح=sB UTEmGs( r 4*#UW=UWa*@)< W"i$hpʟib_gŢ)he.ւKl+ 0怜a嘃9PD`E1[wd C0@悧iM[1hذ/N18Cd47Mxl`|(lPABxF3Z a@i`f.\ Z QYs0Հ6;lkqEuD-p6 pi?jōtDāt0"t9"*QҘ8iڄ@PBw R} .L<MESvs&@2-kz I% Z␯&UH>!'DdE)|#2g!,XJH/z!-*lhK E1}hjt%,-_W-և,ٸb !195 UX1hcAـ1eMMavCCBy)h-Ni[ ÎBEc~d4ˌy6QXsЀ+5ұ{ޣ0,!-[%$nJ4ЄNCG8Z?tGRiq[))Q!$`= E` Q&4(Ƅ=Mw q)OJf>wor$TnN#ᆬ!)MLUu$;]%|ZPF7!UڕSh(ia R#=X¨{). ]Rɼ2C1Yɰ2I5,d@$6 w:B:c+j ek "ˠ T]iԮh0b 4>iM"BUhWS64Z?q(Es${,0KHGє415-WZ̹E-nuO$m Z0DO:&dLvɆJ%GA yӠ(L䵊yuZ*U,-)<},MSU婘GUo`@&bfo:8$Z"{𥺳ǣIU sT- UZ̀e4ײ[56Zȥ!aԌf.?[NSc{Pg> cbk#Uކ,ybԶ(gl5.^B\QEM ("'Elα[e `sځzv2̯ L(̓,2̭XR2Hn6Ӝ4NZҘTRZ2RtY([VS:ie@okھ55 PbIs+<<9%Ўv=r~|"O.ROQa}L  xba! [FfT cQo#󛾪ͭl| Nu|x JmiGty#G\G Θy p ?@@p?}1HѨ**O8 <㨎l!0`!HAو IH@x! 5P-*A:C9P-{!L8R@컜ә)J9#L;BK +ʺ;Z$ʴM#&p4mD@Ta4OKӺ<P\-W˿T XDt h5]s=P.;!&Ba.ДEf̈́E2K>9d>+|pp7Y)d髾a1?')eqzl?KG#DŽA,ǐ?y< ha G{? bg2)! :!٩PPrЖC IPq E9#:+@9C+ .y({:X:!T $'}a8L1 J0Q̜P:\B$Ǔ>Ķ,4'%E8SR9SO"hS<ˑK24SHE=sE=U\aSakcEELLGbQ ڔ췕έMU8bR8UGa?0["3@s`ݨPer) P k m@vї陚 ثVX!t)0 U, gWؖlwPD«J+ ѶW<+arA} .9ؠ)D ဏB8@a`eX&q)q)F%"X, ~'$Ɠ`)y˥H̖xT q17V9ZiSGm=WԽC=9 BoJEl;&P69i[Lۃ밂>П? /P iPVm$ǍHNKNHNV0VE3@h5gUmU}ϑl1]BȨO S~A):humiWqLvcQ^/^ !I^SfVQX͚+H$xИ$:1+Q ¹iP,:-$=62תz4˂K%5(NAxp7 Pd 7c 霾iV nFxX1αV+qj2֕  rI0KjBXq`)S.H_2TIU  9ȘBњ+BKY3YYX7ךbfc±[X)R E^ы! f&))8 5tgHGKP nћKe葕T/O@.gJ0(e|5GAg^UBB` W$l :n2ڹ6&hgn #^[hTb[)N NPƗ[ؖ8 6&cXzNXg!hMj`qF 3+q}ӗviqj@7̀[*e"3_8"rYc++ +(szhw.Uƚ-@ъA ɱkB<(s s)OXU(,Cu0,Zun,g>0E-Բ`PtOYZ:0u:85Z2՚0EF0S rdȖtj>f1_Hxo$Xp C]إ/)EŊ|!A]Hv89K6^rEkeV(O=YІ7k?&h˕5x9?.JAQȇ' X"`'VT.)#Ly-`Be1?#.P8x.`ƜxSď1c?Ҧ.-f1vozk1bāư><8 =yms֍\P|s,ҧJU>|C߿[/ [a>}` @!0C~ 0Á13~ P`}X?.p@@*v{/D4H @FH*ϏD裐J٤OBc,v0eV^dy%Ur9-T%Bcye$Y[rf gj"tff'AJE]UT4KWXG6 Q@3YDSSpQFeIQP<-D @+vI dP a`SȥV[m qQUC} FEZUXgqXP]g!*}2}ːXQCiFkCޖo1[iG1?T !]4Wx'!'a7]6g a5I}m8 ~bȐ 93P5`|.Lh~  Y^ 1 ^tL@)$HFj6Fwrd@d}nZ7B^b]%Ey)dnY%''P]"VTJd@' DR]LriETфLWBAcltXBG:4B"'MT{MݮV K,Z`5\n߾E'`6G{R`m'ehX1ºU0H!XƬ?*3 5I (&@~IQk`*G !!h? H@9M9Y P S1AW8̠?]O}C @ʀ꒯2KK\)Ln%4HyR&@R$wiɵk Xnה.{UʨaW%)қQ&Q&RXD!BCUw 1fDs0.K`N}@=TCO!ؕ H / 8Ŋ C$C0a!`? ӞC \ay`ÍaW(*RDdO[Z D1@TLc"3F=-`^D-?E(ME. $CfXFm[eYI&]V۔D#u4 fķ2oW@d'ͭNd [dIҞly4N 逌^ 0KDvRF`7P\n\s2W,9 m.c68?M0LziA'pUm -D@–|$.oHfk )I\-uk W.,γ;`1Ap * bI!Cp @)P نb`UA'  ܀!yГC&"[H4_\O^6mjok eI~dlȮl>2RJS%7IVHh!yurJ,S'[Po *h(a9\NQ솽#~ 8w{eB#Yv4lf?(V\ez*̶]FzK,#v/P)" BRD ,!Zht+2vyˌ@d"Z@P!{g,0>XA,ʞW r0_HM3()q!?m`b6Gi~eG `TJT 2.]zC1@[LHF,J#HlZ*noG WV[ ;-In,!#H7Hl#)(GuuT#^n(-ɾZ\jjJ5#@qot)T^J3R[oCGe2ULh[_݆vz^!x ް!w0n (EK NS@z]Cklz0P TՇ,H H~(0 :\ji0A0- @-:]$QY hLa9,:!IfҒR&II[X"DfJႚhW)Of*[Zw%A@\n]bn措w5g߫2M4Ex*6*vn00mG{k7xE} Eg DD *4Oi{J45YԲ7YX5 R&O*O;7>SA@ C*uv^T/jx3׆o5^i;^Vf rX.qC!WpU\[QtQFi5oص7 8PFODO,6`.C> C`XoJlK` j6i@`uȜv2idFg&Oh~X397OJҝhOT = PsPV˚s3OΤtPG ɠs@`p^$E3}3A wt7vc0^ $0޳wKLX  * -IQ;8sɻ;,uY{UWx{sLfHݥ!xhQp|G[8?;;< ;31vڮnR/R۲,/ۉ<;k<8?H<ӿ?ÿ[<-\%a,`XaF9x‹Wp5$Pe@sKhY3̌,'KOCg}Aѡ2=Ypt 0k\$"ˀtȇ^, ҬtO"}a ~5/sKԇ |0~ +>dD 6p_h<`B oCkus/o+o&zÿ k̒ƣW{#?0XYB3TmRu>|<@)S?"G1פ&X)X{EPMiA #pZ0Ç/2p]@D#d'! ` 8!#"zx&|'NF$tJ.RL+ L0OP"7:38kҢP#)HH7DLh ?/DZρpE%JBSDatNZ-D,: V8rif e֙XZPzxhOO1dBDH߮+/8+kE:[:k /LF̰VGLW1 VA mAB4B-#ZM(M$F-2` 8.# D馋n4`:ɮ⟣zh +71"  O E$ a\xőc 7f"Ht=hFq1G Hp$I'F5I9\L1ң4SK"5r88sM?}:cN?|hݢe G'}HH'ug\*f~zVY8DWWb顡v8 2r,aC0E( *<-a]A tYUD Z]@ﵘ^~bC0d!) (6I@DӀ=ćiM|٤cшsDC0^ 7l)bXtP6fv ɦ\1#>;z A->H5 E`BS(A]+#񏴁h&6!G͑p"6iՈFȎ' VNrJR=M%d9&IIRNW0FX"p&]nx\~;fֈwd e\Q5H[ԡ'=szBuR* _UOJO<12|oX15H|4(X%h  G."HE=.]WF2 ϕ29e 7St4LBЍp A<Z?N4jLC1-f:+ o @Ç̈{Q@!au,\7@~#0& T0!ŐF`7U'jBF:P@aB&t ~MCЄւXAo) tirˍ`8G7zޒI戫9ҒI /t.u5ddnFr7<ޡum<cz')qN*"9+uzj ,7ŀbI扬T3UhƢ`}:qR# `R͈,|O7]o p"$ `5S 3?  Z‹^eS]"qK.+nG9WC{x$ Y>1jzc>bZ5qX?I5e]j*11Zv޺,omg}(D! ѐnlǭM? ?5ET{pfԥnL4"MRr-mI N8p44-] KG.7WuT6s˵%༮kL')Ftm5 ʶyUy{/}9<Sx;a) G ߰c{N13B!u? a> h@ _B( ex06}E.^ ^h.g+q^hJd0b"ㅏ+GE]sBP,NBP{5UȩnmL͞ sj59.Kb;"L:҉~X08}bDa>Pઇ'mEָ= md=I2{d7{YTGGFp$+so03{WJil1u{=<7o!+] "XBIw3jS)n̺#m0c *-*3K+F BP_a!dⶮ50̇21 lVfB!(`,f! F"Ʈ[Ƣ\ (b/r yfv.ʥ0+Tj6nV ͈#5RC"$@N,Lc~Wb4 !!7 eN0H::ȯlf5pf#$@:,:ҍ1( T&"?A!j2/#J-&1L+QE"oVD쥒6 RoZϕrG `osd؈k2gH$vuwh Qm\yX@P4"+.EIܜ1Q.B#Ѿ 霞 br-L U+ ¥nN@5D hBpeEh! !e$8 @|F @J8LF`'P><$<"T4¹"+R-=%%"  /b/d*#P#1 >f̴!&2FJOh4J#fJêDffn\,3" "@ixg D;ahG4 Y^ÂQB^ȕ7,7 t@T]~!YB/#aWAWuGabZ_>JC&T:b+7ʕ1H80# ) pGG a6N[\8Ҋ7`8i_Z0P6j毨hFb@3% =40=iD0sPI@dP8COoZ`o(ɌgPQstS;- IhkUwrvqK8s7/ٞ#S'%=嬱'ްOYxҺSOP$vS+v< ;"W\Q9N&eoY*a ~!2P#R)U`5F Fd`q8qa?۵=؃"2B,""^H2 ~y#fh ,]G:h*a\슔6Ю㡵h*-5 6HR+5Ś{NP&1 UP6DUVAi:DNOG5sMTir~orr'H6 V'˕6ySXGGW=tG(w9z 8opy_չ~IPΤ- z+©Z؂AQ4 $ۇ.& 9҃ɵBdv@WuR'yaa|c=>!_4Ke=+.+6ˎ;ҹ7=˄RXx{H4*,Fdn(-kƋҊhF 1@ZG=ش]3P$DE^mP-eo3N1}rZ:dIy~Oqq$G~MH`d9UZSP-7bǫNLYgKr1Bͺpene&F#{¶|#10^PD^aCa# Br<@à@~`\\]yT]d"·.Ңf`zh$b#&׉U_pgmVҧ Bp끴ʂGhe6FJF(kf scX#%.c0cYC ˊCdE\2/AD1"=i4c/5[z-<IIh:5Ėps}] yM V^}dY;Mv뮁Mؾ-/B.BB7"{˲\4ncvyeS+{1 F2P(P`D# ܸѰ"># 0B /^ 1 X!^ A$K``QA2уҥ %E }i?zWY!j.5ր۞޺+[vB{B 6z`B7lxB/>`ʃh>HA " 8bEiPF]C` +.^}޹q={7F @Isxxp?'=AKO/x n=?Z ,wP .B8 ThA?wT^Xax?'*04x@ x)A.zލ?z!.?G޸ ,Yb\VM{lO|)+{6ekس2LO7f`6_f]q 4 V`+6qA&x} DA48qs;vc=/4{LFC;48D@,cϴA(q@Y@xRԵtj8whL#H5FG2QN.Qm/Az>a[Ȃ$ #YIV"9 pR,0/c%* (ܭ"zӠL'ֱNus%Drʑ^BVhgJ-2bhebD'ՃRp dfR,&6bnz/|['8Yf|lZ–;Q.\ fUiCzL5P{9(m 7%@X`. 2%qO A6g(Nc(y<ı̈qCS (?bHR! B2aԨGBq[%VPU(w v<P$KGnB. a(`xu-NpyNqPR>"N|OGB4PAsbTE\A$ OG4YҕLO(2BbYˀiyULlLA(O\Ip.+F\wnsV:˸se3syegqSa < W_2? is(6A.h8xazX\%=JDŽ U;" R?:Ѐӟ!jGG'g2RqMJ׫%0hgs@ycE V5QD4 :yNOOy@VBLHI0$ gaQOh+w!GmUmnMIixz,S¹6/͇pi21y*<%b bl"M !Rv)vWTճ)^Yeȹt5 WIO!G[b;z8vm5^bsca 7X67E@rp)3 _${s!CNK񃘐8!T&044CSDQfSJ{ 8G l >XA^+@lz^y3fÔ{TQ81  Q&d!h)вmF&92"KH:d7pG*iMnG:ڼObJri>.Zp'n{jDS*Z f, bP, wT֍ʬkXʋMjË-lI~YtXJw@C \+6P0j k4n(=pFg8)!I1@3q-D383,DwSD@vDG Ef}:!DKe72g4TZT"W5_VV]`ip>ta/C>0+>@AAu  ? W'aYpuLh`n&A~R84IC%d\!]o('}Zy]91'u0[+iixs(x̔'8&)|w01Z^1τz]UMu]MDn}>sv2BN}_vA.ss?t~m3Բ>׆TnG!adCgD52FFϸAUp5p1DXcpGqc=u%R BZ w31DBvT%wGT 6s3IrLsYT"Q#8"P)hcgA2s6x z@6 ye}ee0 # a) U YYP5I_P| Ig!]_jG!IwhI*LVe8 ]9GQGy8] %%QK۳;K8t;]J]k3*DzizكLtLB&{,PD|_lsO38Q>AO?NOO!FZ5ltok~o~ &T;>pGQ1 C2҉! X> AC! 3 BFMԀH PdȏL21t#)2dF$]ՍE\`7Xz* Pp#qW69Z.YI~慍:k"vcxPإ]s"A|a)g8}"K&'Hc>Yj32^$L` OI=Z{H=zҳMh8pq^&.uY,賋B|r?vԲ?xndH,$ǑDa.!yE Q~ɀb֙r@ߩS;3qZ2޸Fad)D"3"0cEq3h"WFTV@$?sEsq?79) '9&9}`q f0uz7y49#9Y%bR%<Qvb(C)bxySu':(Z}Cxs'(xį&jx;Փ<`B*ZA*)qiشKg=U8~Aq:'+_޳98Fa,?'nn'dH`HEUf.`hA/ #՘Q%GtTA%2rQYqٍɫGTdDeT :9.Sru]e Fw>W>7GTw!gF8 ] :*@HRI:9[v{Fp)Lv,7Hq}BvAÓ'T1[D%wa::Ǘ_,K%L,xA)%Kv\N!J4Jf,:,t%RzMU+}>ynn^4.H^|J_}?Ш1d_!Vo8~6Po @5ago\FTy[x"z{D#-,} `*jr:TS,B6d ⸴ZH>`DI6v7O"TVs8Vq GkFv_\PGaL7Vh;;5pE8#]F,',FzFx| brW7jrsgyJB::%xᯘ"̋));cya{Z*$?)!,YYH$f,xV{ > ƕ>L>Gqϫ}M?M=Ncm(-`ݫ>!oԸAĶWV ;. ~9T :[D8Dמ Q3"4"^di /`ҍJzd[=9OvvFWF1u^ga9E?>K%5q%Ro%:v{hB٢"7 xؽLrhE[6:iTb ;';:%x;іll]9vⲌ(%%ϓU+N<_c^r -N,k ]n?8ez.`Z"6b8!MpX8}7 ]T*0> ],= A%4Z 6 /q=bU&r"^FHB5id U!$ Ă{tOHg*bپ|HTemW@jWGdE@d|+'OQ:*ʦF<vnR9(FHwrZuGaw(,/?h;Я񯁁 B p 04P@ hPa!< ? Gq#$ǐ*VXa " 2?= w J'N?J%DiGqȓ T*Fl(2,I.2`Ɓ"IZ 7 (r&9$(6_2q$\p}$/\*NL \d!xB(,(9Ϛ'R'23J 顖Hz,| 6*+"m׼gL0c+0d+k1@Y4k =LRv@{\|-6-M -XpC B^[:ɸk<6/BNfO>FoD$ $1$0f+;SIO<]1D`4% sRI%;)"}Tiκ+֚h)"8q\SM l"CJHO^"GALhdѺEuYMT\SO ì*R1}SZSH,IȥZˬ0-Ƀ/˹ ' 3K4B­4oŞrzM{Ѷߍ{%WBZ-w ˩׋008^N!A/cO8> j`gf$ A.! \0(gYLt#A"_FFIH45liJxk\dB H0.Ubq6a4䣐ĈH2>q#~ \⓰`rh Nȫ+K?pq:ǂ+ ES Y~ J%G-0#m'ڋݐ>fgN`(ހr¦ok(WORܨ][f `et(")I*8HN *g!PexD 8D#1DNRȊTFIm+̴GxؾWYUg! )y~;4T+NjeLyʁ @iת,Et7z;ZqՖEJh.M){wTfx 2g> 0Sh}Wq+inY\ڣ4m͗|Z~UN93nv ͠stZS>؅?1㌈. ?O;|l%(C#9MGm@fsRLv$y! iXߧ1z: LjC 8A>WJm1'j?GD~MQ)u)@URr&,?$i \9OBr$9 ST!ri3TǪPz W 1 ' '(aސܞ hb0-XI䰻瘟;rAXWV+9:w2x ʮ/_ ~ a㏀ӛU7[X=a7Z+ |ӑ2҈C7I HȈ  )ۓ㣚ґ7)QE!8`10{=2C`񃩿5+p >zée$ aWt i``$2,K)AH v[Q[yLGT7b&GbA>#,';Q xX; |4$}eRhk px; /:'؟ t ( Ys [kBSC{6.a QEC$Ѿ{ < y+ +:%rA=QD>d)ECJiiL })#{KaC?qC&2PrJh"0iE>9([m<@m Gp qM >Hٿ89JIINI 2U ahblG}'P,x`]bL;JcZHgڞqشM`p%b@}1~!VB)Вə 'xj HC`60x@ʄYGP=3=ʂ)IQ*YEZ2"ē!(H Rˢ1T)/"1Ŭp*2}01 SREI{19+ e(# ө<ů+{%#@$(GzPT >QAƱJHT$BRTiʦV]Q[ASNxNDBcN`j-o)yvLJuH`Xէ,7p;r ~O0Y.wB: m}' mܰ'˧P6 k  =p(A%!3Z0 Ru >]SK4sc)Hѻ9҅6 7)"/SN2*},*۪ 8<=! 9چmX\<+KɉO X؜P N#uu![AiL:PGHɯTAx:&l³%;4Ea}ȷ4&bU4Ve]OmzN>]Wqs  ю.h]uz/]hΈ.qC $r$ΝH"SQRHQDθ R =Ģ"@)>[ )>xƘE7Y1  L:ħ ZӗEe̡+;`2Y]CѪLYј F9GW|2#u[ KUR *"9_و]_ ^^Ar6, }*!`Y 1*Z~!;6Ix%^SeĩN*gSŏ(RIJM. &Z *i=⍦b'_a[uaicmRA.,@V2mcG;8;h-HxAcW jI?RqAYP ݳX@lIbJ xwN!r W葤  }[Y(SL:G"{#K] ͈Dfbli`e!`}kjmkSimn>MYo3q5I9QCDL(eB 7[Dz6zP@0500>A8i@-:? c*o[^BQ='7 Ҙ/I%c;$cD d4B&ɽZG34ڊU-ȻcȺ` aIV, FE EΐȂ,^-k㠼-Ő5 ډy  %,R7ZSQ[*׿n/X6_L>.\~usncWicޥve\֊Yo:~:+a]a§VSTh,`@@څNu/Qf}`c_3HNع b'_x& FXD!߻x/R©ſD%Y'cs2y10_ǘu~IeF ( @>|FPȐFDB_IR#*G T?DrI'O"ƜaC!B4Q nPiSN*Ed`_4̗`50h3ӶWҝo,Dw8AĊ4L0i`1A5WΚY|.3ꑟYd&@@7d`l7i(D0@R?fx@ n] &D>p=0= 1? @H c@ Q95H? # pԀ$  $P" ψ-n袇&& cAG5b>#;"cA $FdQFCK"1)4+}DRc@#HP6])C|TxB!t!$@ dfbG 9DeUGNN_JH49L$yyGb&C:M0HS!?R9?WVcl[mmUĕ\^e] qmw_f!b:`DffifkYmh TYe|E&Xnnla`3@^x1oEwwݑyIYǟ{,ޗ^-H 5% ^|hQHmd@(t)`M_I57x4B(NEّ4 !:I4R(UYeFJ EQBtP>AzAftBF-G@%⒝r/_v(TSP r@ŦPiꔨYn1JV*WjJnͅk\t5vhqi,@ gMgsfe.iytMW@m,,o'vѪI!OuLv8:f6@ Xx2e=y3 2'= #.?bVdH Cr&hf5 ىT"mCс#匊"`pQ"HjT8'#UH[b%D 'Qo[Ǿ'ȝҧEqJ P2&-֑E)$ъNPtJUN:qrTf(U\\eG,[AVL)SJ-@T%W ^ v1?}f{I=q YH81j% `&d80gC0 ;a0?L.(0 =+IRψ?#H<& hCUі327@c؀%=Ģr^b(tHF1eZ>DMWO1kȕ6ʐAc!1}$G0&M i7䱫z x62FflS$L4NSF@Dt (H1FTNjZRN:'P5>"4ƛpSjTFbVīz#HYͪ9" [۪k]HX&BȁsT)3se U \MuzKXŖl)gu/W]Z@3&HGܖ|u2\̽7)%v !0;ˎ93VO碚u`=+& ̺59Q4E[B\"u,A?: H!m)@X~TtomhbV;ʈIIT*TVM$KǮ~'@$!AA F&gW.Lr Y'riw7'r8ES${V"ͷ3IlKGH??ӥ8Wmnh¬ar·H]-s I$7;Xh!5 ,@HP=X`l%РO͋Q1ldnhTw5cbvz84>|l#'j5{K kQ[ScR1Όf*X$]im7uwͫbMZ$S6$nX#kXR!TM\\hrEъșg=,fAl\F\, @ 6Fdbo9 k xOeHuTh` adșԈ dHuaWPwm@IW|m|pGwDzE PwL A~TuB>ng$8 "nu!GW ?PHdPm6u`tawZ= LɘayPÄKi=Dd~j교ԧ%%?LMK= @THTȌlOveI %f%"(&DĈ \^֍UDtQ}@I $=fT@H&fhD1Q'ΦPϘzO-iBR# ,a`ڒʞY;&k h)@0  . kx@f PlTLut:xl;۵a* d`$v,WF>m!„GY=Gwuw">P5}Sɐ$GKd呐 Mۂ*'̨۷ \̱b!]XM|HQ]MBIT ^ńS%Ud+BVI.rNYėLM`ZNfJ DݍJ)AbӁ@x}'U#Zmؙ5#U.ђ\J)M4fkD:) zckp]qADQEFu`JaYoU-!*9^~|H0^ejdšz=0%?mMR}B+FYt GEi|ɞ]TQZHK̵i،%n" ቁTDX㣄\+`‘i,IhI%Q`.Xu a`E@@t< J&\oN`ʃ@]ST AchE|͊:,VZ_R\kkʩ ఠ2=dy%ԪfmM>22;Sdr- GY9jrS0[ܥk.b !]Q΋MENL[jY%U/v&S(`mR ԡodSJ(VʋZ`l[ceJ-A J.lх3x6P?MHvISujDZy^yD| S !&LHj4G  M[@ٱieWH p*P;//"c)FxQeFvMd&XSܠx\ Z!vST&lfk(3Z^jf_ ЉJF2^7zݟZ<\7ri|6ao!Pwq7@j:1D<-3>;*7H(uSSDӪ2ے^>l7"WG 7j-@ La$wC'^8G gH1<D\HьB<3jQE5xXI0P`T H բRE8઀Tj-0-7ܹueB}cB+X+dHB<! -# 3L,,D1CQ< C 7"F I tG6' n\Iȍ&8h% yJ$H* t 觕m)ψHH"rjD[TR4~+!*RC8,ʢjJW+ R D3 V=cl Y^!AJ3~ˍܰ 6mϊ4f,nHWލ-;DH@~"!P&q@䪜K!s$CflECE\/r1ݗa ~c5 J ўv%LMUYפ50FU[Po i ~nbQ9\GL!YI#Q,?1 ZY:_ zve.s+fjf4jt'ne /G<|rEދ|+]-0wMu[rNԋWll Fy룏qhBq<%|BC-?z# & a@tQdKɈ%mB ̈Զ\J<ԲT]t 0Ӣ$ax`*Ehߤ$uQJ1 SVXo  *,2U#wa*1+)@0L;BEG5n"Rb-QShMmpM5ܳķ{5K#۵L@D _qN{Z>ԡnspg O|vs92ze=RD5S \=84-ۋszYlE;K$*9ʾRZ$j$kdaQ¶"Xʨ4d1P[۝JƧz\]9' IネǰuZ'YR4 %&l]K7¿w{?qE.k ϟ):M;EZcu}zzt?;ރB}O& 8-9^fCP2E>% &G^,.dH,DM"jb(tNfZQjH!Dl0lF梺L PBHffKܘ*ԍ g'"r~ 拉HŴbs(rB(>t))~ւ(|Z.ȶմe\ppD~n7GBƌ#zQ#]@^]A,'!)9bcb'a0b Hbͷ=`:#p%.PsDZSnJ:R,#D+zƦtVmjtHk\*Q>#&Or$,L&侠DoM HŲ9EB<,Ēn2-'wϧPTFOnoB#G8l8 7%6PEHKޅ^!x\+[+遘,:>4fg?1Ҍ -,˒.!.'C2g$?*rf(lfcr:!TC%?Or.7S(t憃P2]jc5o9R-T)d'4ECTY.Qt8 8C^d%!̢psE6;n~#%lbi61kH4K;wlXn_ Jfh Q0.zDOԊ ' 2UbqO(O72zsoƅPRtS孒B<{-v|,d!8n]Of)J>,6h.|</\D+BlA>_F1>tҔVXCD-͝.YE ZOlqF,j,)p^p"-X | ~6&zN8\ElQfh <0Jlqs~pJT!?vF'*6u"d] Ev"JsB(:rSo$trBƓfpwTcbxTVXv%UVsR'uǠOW-"'^"$oD{͂(f8f]rH gy)BwǒΌIV"HQhT #X+3cWv(>mY/XmE#NT)RpΏ7q@#aCIFcLxI  a'u!d  Lid Nw_R$wx]Cpb5J$ǣקzOLzQ:,9=sze~eWw$d֓ohU9\Z,Lx*i+*zD5ou綒?Un%X`K #v۸ڛ;XYC6ŦBHZH¸Gʢ URLPp3?SfdDK~*CblmbKShjDJ4CX"ޑL#HI>'O&jmƻ-l0o"MT(8WU4+7xBeo];}ΎŸ)Gu$$Hm [ Uل_(4f4H3OtfFS#C|bs*\u'$ dU"kc:9Uo1e͝Zms(^Sw󎆏 b}uܠn&s5,W'^r]2^:֬.7:Wl"0+(0+. R&QcmP_>>gpcP")U@.>劤$` RsVN*p4!@0p.l0#D;zrH 8N4F!ceɗ'S&H)7oJ@I(pУ C4Q$K`*V %I  ^$6ֵjۮlW'UkmVWމq֝x㟇+n 9(\9ƚ'ZGϖIӌzDȔ9of-:jۆL?,kҀ!yd(\&rN3荢-0uqߑтe X4a > &OB 7Y!$bQ'Y!KōDQGN PZC"Fᄹq9PotJ05pO:RcVE$R`NU%]v]AEAnuUXjE^ZyXxmI_nGtOb%YvVvYezvZG}YK&f7XaXxozXrmPr putjG#Lhmʪm^wʩU|fCV_p.!S]֥dRݐd4mH6Z#ZTvednބ2bXL]g"G1T#}4cC1(QHA -öid?E%Wne{ɕ_^Vgי ;y՛=gͅehQiϝsΑ)Ҵ>n8Euf*o(BbTE7w0瑷 R r *!C@5-?HMTGLpTRw-ڴDvG6F'G#B8Q hB nx!XZu-TRJҺr + i;uwbn] J}U9%eZ #bD2 5r_|1i\pva2E4OF'8vѓЧ3@΂֒C!4XV5 {QT0UYEsB 99 kEi25aa۪D#v61!XךfvkSIRpȑAiQf6BqJTA&)B6A(AABkrDn8"`^s.w^PVqz H:oJ䨂e=qW<֗U$SߚW/en4'8&ۙ0'fP< <3zRf9UQl`^Rз.j"1sن(+t FpʼnT܊abN7O=ɩ:0Ai5fbOn^DL YEqL`$alY `>bȅ(QrPC܅YDl'+kNYID $GGryAe%YV|* k7..SkC}2:]IY&bwKU SBZ9D+  L4ӌ7m:%c>Q86n$I^!|6G17tRƿ3s,Z٭P Сb}D{}+ #udAֶ&bjs#4d4~u@^`-:Dۡ Yz$GɹNA;nG}^ zkAmE/]!>檬U9I@M_Rn1z.6avufafK!4xvLqgWVbwLW!+%^q=kq;!t)Gq9SN@edY^*5YeQϡ6C@q/eIy~qQr"g#w0xf#q#;"".7|ki7^&FbB'*˴^(ZiT_UsQjGttXf~H"'DZ9QwPu 6alhJfk`'aAx xE4$& $(w(H!&20+D} q(YxZBz}$^5r*o6xUBD5X-aVO#0oڂO,v&wmOwuɂ=j!rrhƆ↳G#Xmv!h\8gp}Q}c?BF(@\гtSu]tKda&[r.jv1ca4abIWgWɖl(LsUWh,"wNrYP+Wbf9*d"p(G"D8(DBne[q9MyI9X)efp u6qlwcAX$"nC|e^WE hf |)2Ik+ʒ)C^E^SiUEU}}%t4Ɖ_E_j{TQ2'hV``6t6؉8VAJÆAh׊ HX(AW(M.a !vGC_e\(h n8UBSyeNyD̨z.Nƨǹ\sL- Ǎ~nWCn๚.꧎b(`>!,$5&-4J:IF4A&(XBKgIQ2E18& T8B@ fEIUV?OǗyA/8Ҩ䴛gXR>JbGPʟbY̎4 ۸<)6X0V@Ih+cVOc=>nvm`ݎoeDZJg`bAО~wEة_bvکZ1):L7r*I/؍i q͗?Q'{tƳk8)!,Nehڜ}vT7=c$L<{}7r;xL4 u,L<Ψ<:#u95c@/ߴHݲ Sa/^=t׮_o&f3.V/a7jM~< U`C" x w5D >HfR™/&W ,ċ1A!K1lF_<["Ƙ.]"\'ڱ*g0$ȧpQ)s"B2'l$c)JZ̤&7Nz (GIBL*WV򕰌,gIZ̥.w^ 0Ib$2f:Ќ4IjZ̦6nz 8Irf(v(1D<)?yOğ?PtH(B*P2 u(L" ehD7хvT,i(H"Oyg=0;_"D -NsD*P)*6M[P4>YMbS TM>yRIx`jj$Ӭu B:ZD+\:X@ w+^׻UyeI`Ԗ4O)byԟ4&GCQX 5elM{ҤEMeΗ*թ͉Ueړd&*^Jۯ֫whW׺RM\ Z>UkY1ֲ~ݫ^Wku\v.]liCv7Ez;ӡHEK4+ҷ,[_WY}[Y%i .po;zg+[*rkh[ۋ:4υ+A;F%@^5kp}8Ul׉S`Ia#ʷ%}o}i*8)ɕ17(Aԫ`w*9=FʎaWm= [:$ nULk40Q苢լE4z׺%hJ]SPYx\Z-쑍 *վ0\' e CuPY,Kٯx!kPqGkHM^`G}Pp!vuDrr^T#XT3acuc`%s@ Ն̖lXPhg X XE6W}hhW![{Uo"h\% >pl'p_qȷP(Y7(Y⧃R6(1v}֊Iw-!G!wSSw"GjcGrU56ux%a}bwvRHs\2- zvsWc?gW'o igicZa;y'{^`G|Ho-@dEhDVkGwk)&y7Wqh||0yd9fGՏNVVZw]50s_8E uh-q?'n0X|xX]yj4zE՘cEVՖ%/G{I y)pEƋV(ey>~Chqik)*T:wI}L7jSSv g6fך c^\4*5с-[c؆wWlMIOR9'iL nPʤN:88P@AP8@1bX+5 3%vN`+^GvjQhYXAEy fkwIhwJ. 9xz|z!ʗ,'Z.l^~u1P2u= ch y%mWp03iō1RJS:JQ[a{fhbLq '|ad7| y'J Zw:.!rTYhPZ i;S)TH' ]Y(HlܚKUo9k0]7`WdžMٔl(bڥE{8QMʬC}h8[*Pn=: 1ѭ:9,zY_^>0/g֗ji;j#Fqk*C!i[ K׮n:ʗة2|T{ǭ[ݚovaXudZO*6˔41\/AEM* L ĻOSFZ{7/QpڅŐYy~w٘萑G=p f,iyi@Iћ5 [WE>;@+5Uzý{DGۻZǻA,ktOۼ,W6RJ6Y˹4 _K+㛾vhzKj<[X L`3 jzFp( .jVzV jڭ.{/!{´뺜̼ JkĻAJJ2?\1Qae`YWՓ;|K ʼ,L)0 |ʧzyK 5q;ǃsL[}-A۶=%\>𩏥L̜;9i\Ai]*ѿU캳ɛܔJa HH;![9ˮ\A;a{Ɂ% ɧ |ߛl@͈>(|{ɷiA,L_ \YA(4E>xC-931 ,>9}oAx=lWm0>q!;@̤8ȫ[.aL[Gc&$<6^Iڭ0_h] -@,;_`*wn=qm>hۼ6q`7Q֏1/tʚNsoaG -O`n I=QD`BX [maHQ#FtQcȆ%MD2%-]:tH_A- eIw݅0PMOZU^?j]%J.I1$,8ؒ;O[ Rӿyt._> [>qJ^|Yfp&0У%*%uzˣF-]]};n  ՝7/< GV)v IvFAXc #--pJ u<ϩטz͂D@Vc!^;3*<뗃~)4⫡Z1*,F #Fi wD(D*[L-R P쫃8 BBP5)O35$}@.5,T4$$m vsS7 ΆO‰Py(;EV*=IJ=j>Թ$2 ( rc|` L.Yֶ2*:p* 6*ZrI D VC"+2$K 0:眽KpU71^rɺ=IH!| &Č ;hc#] OepcI͗t0gCZ:+ &o%qfImlQ2FjT_|V8}C&D2kiok PTQI>-pT]PȀu%ݐ$BҤH M[ّf[&at<*4XJǐ4uyu'@´|<'վ2h!<$xzAUmHzJa&,BIPj9I3Ҳ4c=&Κb6o}0Y /`pTzqsfI[X0^WCqN&ժjZKK\ʖqӞËYeoqLl-l!PV]l 蝣s'j $qL50 ]7hC םپ$ǰ=,yzM{d=RY]#QE]O1g'9sO6 a)>YuK$MYP/I!˰/=l Z1dn>h+IVU{:6rt[ ܁Y_ޖAߚl-ĆP-3ސVU(sL#Vy0'XYq&#=7+ERQƈ._~[4`j^]1زѩ~؟iE͟P'}C觳\wKvAlP#{c'A xy":{"2|"Bp32ӽ*b=&@1C0>8CJ2r,Ѽ :D ?!K<;Z).8s)KR/J$ IDK<A@`0ۺ93{AUBE\3? < KDE@F A.)q1S Զg.rDAܾ̱Ks뻷u!C"o&;o@=G`€k&#Ro rB4S{2Q +>l8_0{͸Ȍ7> >׹=F?<l3!B$kܮ*etD`Ě sJ؆W*t@WYJ5 @O判@sNa|O6*EFK#Dr ĕF˾4b {+ MM"dIQ̈́P=)C'ג2481Q*,3,Ê Gs|شԼØCACIh4UӃΠOLĠ9-l%gHO=(EOJ,TVKA<} D+I7@£F?SP2о43̒(,>ia4ǹPL1 ՛ .2!͹BL岃(*xL\"}H2]]>V։7Cs](m41.5Rek 4iNcN5M|:F,FSONTD8ӆ O@m, 4A5،ʵdȅlEmBŠX>0X-q+ͿRxW|]533ES6Y-NgOeЄp؄݃=؇?5Ŏ0όC]؈MTY5]Y;9JN\4-Kd^kNQeŵw9%#$yl'MohZe]mZ>Po@_e_"}D`5ZVe} RB*sVfV)ZM\[֤!L.[tV-tE\S%U\mW}u\V-F6)\a\ؕ=Y]ݗ(݆؆a T٭XWL]YLE M6db\˥YN`zmUS5U2dpGY[ka_~Z]qسƒc"ߔF "%BHEq(``:fB]ֹ-Z%uc:t ҕ+ -M\/nIaVeFΔm:ZXbMOaJJۥ]-b #^\ja)f^WI4Ⲥ` ޕ,Z@t]]̿CZw5[L}Q!BM \-u>8-SD~۷`}h>xhJVMn5E_hCB#;;%gTnmnN4f>bFݝV_&l<@3fFj&jpXUcCْ\jΖ^lfUYeDZ0Nc5 Z`L&CNcY]LzzDc }<*@FPpVh:qh>>xhy~d.О[>8UX=Z%\ +%rkdӐt^/~j}= n^iJT✆ϝg>6GSga@eJYTNd.A@D9Ӆ6Ps\m>k.F>0k0kMS9hdyg=p=dM o RpQlhΧu*k*z[g ֆv[f ~>q=x4rbU׾KSrO>ZYg>kռɕ^o5oW%6Y%na$ni]^O,]nd.! ]$h(sf*PY%0=kmZ9mr&Zr4kvxCx otpf }.8E 6 *o`WwuǩsPl>f-gel`Ҽlv˶l:nh{E0LxtV:R!76x%7tn6%.nSQ\6-werge])o .@A)H%󤞟lJ^wpnuDwjsnNoz\BovOGok&t6tMEXMg1LvOESo oWRpRhoPFPluR[znh:q}[h^>X>^gXk?דмEm^ _tD{4wjzoj'hY,5U*E\ }+pح&on;/nxg|ٿxxwI%xowlFt$}re#gТCMO_cyznFQTg&pTzA f*`qwۇtKNf=_„*vAh-G!ň R1aFW`Hcɓ*'_K1QltI3͚h3>,z3'ќ8ьSj؆a4,WnEְbBvkٰ dە·:QN7j'R8i 0b>aS˕YRcƎ+6chqg.[oQV jVݧOlny}[ޖլѤ#U!n}cW^սA" N0hW=%T+M&VB$n$LhBB- q&Dm]2H+dNHl'i6B :衶e7Z M)PKMsLqX}Bs*}888vAw l [F瀖5&P/( "+"4 6d$ QGT"T\zMl/3p^8:pE)_/!bKO|R Ořa Uh\/"x_SiS|NeڳQ\6S~'?^ ;wd*!TC*#;wcGPhߘ&mr%Z41a 7dUp^$ f+CܺF<%ֆB-)]邴#H ˜BB7O|V v0Fyeh1]d’FB:ɶnxC'KG큄!0`ƬՉ|An>C%gC$?_I!B臜Qq;`CR9+@ӕ#j|yLhN;QRd򏄃Lh:ZqɋG%1Lh#)kUt1!Cf7tad5A7x1 G -;ԡBZiR$ jPũ{U &}# &FP?L*KI7iҦA-:¦6Rv;F+x VVt%.{S\rCBB,5T{Hh 3c{4m5B%F17(2uR[-FCbY//\XNfNuE#ɦ+WŚu!UL4pf2YƌS v R )=`ѿ.-p{ۧ}2!/E`Hy Q)zE' gMi|%+Hjs6d=rPL.*!P 4^nU)Vobsb%hyw_~1F'Bj`xB_:+m#|M@8L4"73LOmF̌542Nl@jU.4UӊgUOu%5JiXQ9р@pC!VˤRzR.,)(@%T ΐo!8|S֒&ǺrϨkҖpb֊2~Vq,]ծvUyUD5s]I&V{H[8^Zf]\i%dsM$ X3!b,5s̪j~s]X'}/zK]΍M?*UhmalvaHy>LۂӈBBxf nn p#qu4 4Z9sOP<ݛi=O>W[gji@.;G(]^^V՟9}[ќ\Y^{ GS%(8Wݯ a՚Ib'{kF<#",ﲵlg]Ͷ:0ZKӸcl#ۺQn]R`JOM@J!m^emۼü-ݒiuA 2?_fL0 >ܮumtz!Zi c^ჍQe|_? ?PaB`Bx-]Օ4!<%aZQ_éW0$D0[ a PI]թ "Y]0KJC$j$XD&nQ! ݕmBsc%ya.IA"fgnf%c&8D<^u$BXc6 ~l_ ndIF!"Y4$# ɤL*LZ"bt`pُ)fg-IEtzYPOnsY%^Յ1dq2*2f^W~^!Zf+ +!k!Gr$n(6 k \e]; rnD;Ci*81C"8 a(~&`.ݕ!]xh%_a?*&h&(ގhV4hUah 7_nm*^m/B0]0jbFjMBBZN#+B@1B@)6ϵyb\ u*bgPnFYq`ino.]$'0"s"/kV絬+q[F+R(Fn*mb#F2h(B 'oa()jh)Ծm 02Ĩ!-]80B 0#o/s!3]/+3#D>?2] Z*jp`0('C-Қ%k&3:l3jd04ӬlMPedWMJ1*T1D~ Pfvn7p ,4nnɢi6h^<#ΥA"%@s#ħR=ch3ʳ&ѮS2((){r;2*/dsra~)23.Sjm *YC[fDJ>j03C&B΅ 6+8/X֮"mCnu97ڰnu wr](u.kgw6&0hohho#ߴOO+#%@){q.r&grA8V.~(.II񒍆Gk tWu_vL.p'Bw¥"+dg4\,#|qjO( i#QwђfE*C52T8UCmW[S+99oX0b30#Ks^D?xM? ## NAS03kU[ц /Yߪe0Ղ(d;9/eT#r);-2r95BvQ3?v=2N32";qk4|EJ_y)hwopw]8,&hRFBBt4ո"r[:TZFDgeKkn4b+zrB4N;i6#SOvBQ96sTxM2;xB / [a2e/y՞rZ7y:u/.W&wZ'vF8_!sĺ?f/ u3ӭaNyY-XoDi2y *e; #xv2 11l9(3lP({]ڷ@|t"__BbBB`)B!yV"pNuҔq8JQ.Dy/v9̿˻g.&w+"ww=jl7(W<3o_/|#<('T'8ax {N9 F؎-k!0;3{_EFx_#0  υıW5  {|ݯ8޻{9ş=w9ǟǯ:?#2gB|BT?6&[qocv[,|7Yr\7P&DDj%@ sjO1Ua:e ӿ"B +qtu# =tELSzӭ&-1dH_ rD2xL,Vxj)دB!*T'P Xq*mi$rgFJ!lԏ C?.hU$b(F*m#\Ε%_ZrCrȦ`r(( )27 7dMm1bc.:=l/=$2>3. 3ZGwˢ B*,PHUc7ݐTJ%K8 լj%Z(!$s; O*I+/r|泟m2t]7UIvhhwvQPxCG lsC~"T5~ DHtvHr"J8#m% R\|/IX?-VZ%W?j E,S[DEi5 2lald_e$g>C,,MM'K)ߪtp'WpZ B$c]H7zZuEE?- (@"x +W,"4B"ʽ^q́t)W9dE;Ü#"#H{?ℱ8/P@/Y|^Rzcs)7%κuÛ-ys b0j2 Wւxhq",rƤfaDj$TXD5]̂Ooa4B'D[ٚt1a JNB)l}+V?ѐUAt骾I$+">5(qYJt%AJ[#D 쥼k%F b]]qp׮ ABBiXG8"HA #, YeVNQ&U#?2S\(.jX|(b,quá?buc[﷪ 1`sM&a:l@{Bn^ ͮ, ?*`@&Ńp;[WfG87Zp^?(ݘ+d+ [\T)W@nb\(YCLWkhZdtGHCkQsCRPX/`+!J]]@&W~;WtOy6O8:"H0Us|{Px-P[Q7ceta\$$%Yd±{0")Α+x# F|FvQdN֯pix̀pR茮" f"2 /&#OL4(,L26 jba+fRn4R&e26~-<"ɸƱr+(" xi5 o*%+Ql+o/ž%".'hhl?RI$ z2+Xg11n1:-ئqӺ,xj1U0=Z0¤e0"'",3=l3A%a)g/ 25p Ǐi h+f(r(27!7w7)2 S.+0#0s99}O),$f%-%cR;%#&t"1?={2ڕY6,&qY+:tA8T|ⲅJa4+M›d,xww[Ȱ#3?uAU [8xE9.h2t+4u{ّlx.4r$AY0N-3^{2<$p;Mr!ŁW%qo)s+ȗtq+twW{X✴a{ϻzIa-~qR&9~ j阯C'QS\H)kdt%ҥd TοaTNOB֪X!5uℇ .[mΞe!Xxlo nf-5pAbVU d6?f_hЛK XeAu{ky0ռWw^úʕ 7I5=ԩҧOgm2=A鳞r}K\zJtp'grCdϖXr:X)ρ7Qp Qt(?QhA6!6phh"DOF +M A/ MDd!mTWzeR hMZsMJEx*EySo\gy\AFqn"rT&UpjD$Ase+W# ;;HPbHbu5dhdqm&[̩TJ-c2gq)}w3ϮZ3l}x$g`lbVZ*vBT~{PFUoHzDWr o$SM"ȠX"[o>TX$>C0rU2rV+LX&>8%54Y%ne!.6 mZ֪wx 6آR#͆`*}FLr4pz?=3랹v֟ZYgibC^45X݊韁i]w!=\:W'~Ъq~f>[V.|f }iFHUdc麹K-Q2O;J@?ZRa5DV \r/ A <>0c(Îrfud-Ix)ޗĻe8iZT7&oQ\@QNE`=.S{ K-VQ,nR40Ӛ*T D&!1CC]4sUrEFhd$#cxaF)0pvCN5}W(A$\K.Gh|5DN_;d Ld2*tUtRyFT0xxHj Ehȃn# !*Ww2d~d1>iJZҐnT UdPݠ\HUN`MN94 RUƤW0 b͌/8G(%qidR$`!eqnttty3 " QEQid%;NSt3rĀwv ,YlɌV d;ddLfIRfI f%e37e e)W!5e ` s"t#58IFgat6Le"uuH.KYs2٢-`u?(vBh'B""""3 0s 1sˣIΊt Q&Ԙ$yuGcbEӄ8v(f'Zxb5**o[BņjujjIj :x#$ 2\x4DȂyk Dy*q3ROO(2;3K!:֥fa]Yڊ əiB b _CQdW ? xA@4̡x12\iw`5< d a < o r 8@HZE Q $Wrx> yeqd<*'$aV+B)0k=й+"߳&2!Xx q: >fpF3ct$,sPtxhՄC纠z9DʦKʑ摦w @v[‚j)e( {܋xtjüjl̇>˾ǓlBɖk)x7͔6pfVpcq6~p|0llbSkE;i2``ђCL#]=t`;&i2jp+roZoeVIf(o Q'Gy Qe__ NEQ٭^2_70uImH5 ZQ\әVQxd*\<3 ⹎oͩZr)e;θI!`#ӣTJ$ԽԘ"۫- sw  #"12c"?JD!ǃ .Ba 1G)s>AWroR_ lGp!c`Qֲ({QU/T9E9q12 Ν J n`mRyk> 1\k\6M)z`hh3eنGtXsCupQvQ+, e-e0 >,OfQ(e DF P˝]ou|7 _(Qϴ,H0hho*ÙÏ ~V E&i3@`pӹIo ti\9 b a`H!i!7AN/n"z!9 f?n6Z 7n&ld(E*?mH2@qąY%LFqsĔyj0O|q O7.%6׿YmD쟱P@柫*TWh^}7@4SCoyLƐy I߁G 1&2ClArH B"7 )km%ԏ n'Ntj-gi&0O7k͖aWV_v֬[ nU?~~]h>hA $C ēCU ?D c'cS8d(2p k Py3RNIC35! ׋L*ȆR3eS\Gi`BW\ f`\]0ԌhTQU9DmtT ܁=Th}Y;a=㌏8e^=9#}eEeHx߮רm KK@J1T$KM57ߞS8TM ?k. 93CQn0ГI0󫮕VDgg&ZeeE ekPO g?y %9B2DQhpgɿ F(3Ϫ萻|4ᕶ^9NbӎK2n{I-=Hw9L1dcP8kb Au^ ?9B1A]ePu @˧R7iJKPqaCW+7A-T_+.1-EE C.* Ps٠XÖ& 0ӒqFPQH@r.GYZ@dx(z},ږ%>L)BSeHOXKFV^A^h@'; dW/}uv?AlDƢ$`l ́Q* Ch F@Z <4Dm vHNj@E{@֚XbL&T%($G: ^ |l/oV‘p?`@n2Q2e$-CZ 43ђ3n<^:}&8ƀҒ|m 7KIRᆹ;h$acv.)Z7S3c(0)$*)ԹܝO5i A [@Qb@–(e}H(t6 Pg VŞE)q!,dX=A P"34!U(>)XhcwFm? p5KCL5*N2 ?a7\#ٞـx/ /o+;i !,WPDxaB mtZ(G哙[=Q+xֹɜQ5sF0n`hȏvÿ\@Xt!Xػ )aW7:ݨ?ȸ ?p%8vvtx$$8/f9 9 &1oBØU2Ø1%)y*Q"aY:m94n*럲8WPx1{==($79幆M@DSSȐa<#*+D ;8I Tx j2 EH15JC +*HFk_`d 2!2  [ ѳسh2h) s  {dz",P`{º'+p9q&K-1~4B٫{ڗ5 3 7@yC`a[@Qd@]@ɱQqA/heh0ePgH@-9HJ9@%9 q x8 :Z P: t01TjDC˶l/[ A*^A4s#^"S\P#8ps=+9Tw(4d+%J1!, k!SGµC$X^腡* vˮD, Dĝ̰%{4Fٛǰ5LtY)R]> [8>>> ^Dp7N (h 7hz+Õ0;kFg?c1rSQ/ȋ鑉Ë+ 0 #{{c4Qɝ/ cbQ!GH&}+Q8 A 2Ax"LaJBB)%2pIGR"F@KJ̑ Q9UPdCpCxaS@/Δ #`1"("(""Z(f˭Muԍԥ5B%Bô'#7 *IsR 1s:'@ c7[3\PspցǍ/ (4ȁ<`R˄*4L#!:]xѱ3<}PPw DHSP MzYZ9Ȱ%BkNSAOHFԠ0Ӡ S r$|ϟN@0*@ϡ:O`LS6vϫ`تWF ?,t>12Q- a}#B"җ$rF:wmיvz U4U̍='AORdtX8DٲٌCB]1=[P848- `Wʪ4U50Lh Y9(:R@\D -oUE ]:P8 (&HO=44 %nUJ6 4%%@|ç4L.p7])"_,@2X^r.qR/7=? i9]xl`f5Ux[PWUUϫ}C+iqASHX,ه*O O- dW*0*3Y`:ϓ ,ț>[!nFKE('!t 50 ,H[@'"~!32Q'A8i##G24hhC8SGGy[$$5Yu[UWqFJQ[@ 9Yуv0у@0d1K"˸?nS p]c8"fne^f*O WM!B ˷`rGg" ( (&G~z"z֝X'W ,%u͜Å #+p  D0 ('e#f ( _ P o`c$RF$Db) ]#@(!C̘+V2lPD!B`4˿2)&8?z?~2$ӿ7@_!D,n6^f3թ(Qٰlزa+֜:u&̴i} C~bD`lvuؖƠ緯dJS? T5MZV[7LahV1LFmn;#3f`M#2J,+ɞ?=3l9h|@ʠ/3&Cz_aȓaTb{9 Bx# 5@aE0QD\jY^@ħB|@D[>{mIQ >J !B1=! /__zߩ֫*hPAMj|XD4l ?@42 ZfBKd8 )t wQ*XVp$x _dA(CCA!(=b?b4d<}XRrC0 \a\F" Npv1=nt _3Vzt-M!C=o0cSׁnw[M qrҋXҵzEGNBsB W5h> Dq{(LV@?4` m^)f: A?_^j!Og1(C1Z]C.XI~p$u/>9d$ ~ OC \~[ج\M]|Wڍc&=NoXjZ.ui3 [_6'=[ /5Pڼ̿MyZJ %Ѡ ˓d Ȋ,MDġ IH NY@˯@ɝLTM܉ 8T|Rظ]-0 W~=ZҨ\qU];P֍HӔ`A xNAȋ{< ZC@A]$)%b$^d')@F$?"  *~JԤ$dñЯJ, A&hF2+21FA LXJ`V D \\%ԸF}1৉cU̖<_A܆ZX[BY8mEDpcpE\0`F2\ 'l!  JMlRz}AsDYD@?9sM $=@I>b褋<0IȠ xIK؁}F}5 LS,7e]3՗XNthv 켄L S!HUTS?G}S9~`ϼ(.LJFOFCrHhB|YAn!?)x$@@\$o *(| ی*pUVad7a0L`lPM V Du5Qd ,ZI&_|+v7VL D Y0$4K]4~FQ!ąR8#AoPk5(֬* Cd`0%1*5Qvam* H௬D *DD\1$C9-|@DyhLC1q;&}]=M`ׁ`6.eHn:H_j^/‹XUNX U`A4 I:СHHHIH*2N `Ew,!h0C+rH4(@ű}F3\5%>l&@jzz4v/dG`ԏy&-x)ѯAo!RNDIIx@|kҋW Ƅ!L@f T^kGJho1G ~E,|fM KhY**Mn5/ ͼWOAoBC;r DB,H\S>O-|@-5s& ԗN !u\3?N5_#_I# P\@Q bϮHe֬< +ԕ-bb+H eN;6lgDd9v~HbzL0Zoy"y܈ofv;lT+*ȅAi;A@@j7_b)sPaeyƞVu2 ܋%BD}d4b3[4$HK@4H(t阅V+Qլ.qLsLa2Ҙ^szXt؜4FSrx|`n]J<P0QKG_! qP&ꓬH vO"@-5t;mIHC)y"JTFԹCTFܵj?xN@ԠR $GdwhJIN< 렭Rn)pr(>u7AVMr{8غ K 8Svc4ڝn7Ӟ}bf씪deS faPPi"^T"W&'U̴ z?OĄ%AqvԖ:339j@Dp.q2 9l 1A HA'cJS&'"+.JiYs-viх%w7*RHv~3!xeabΏ( [ ҞhANjBatyuHCŁ}?ԑC=,%YLQ}uA;9}l۱C Sw>׷ ^.Q1N3G:d%C,<{ AшHjע xS)7:d2Tc6T{;nof4܈A᎜YyLzkgvjGp1Dk]A3@4}޽C" :TQIE! !ҐH"(2W ELqÅ SLoLʔXNR A3d!?J)Q%Juٿ~Z߫WJ29=dC ?U_M'a*Q??Ht k}UË$fݹgVd]rkح7](PZStNnWĤ?E:2wk@]"L4wׯ>ZaΌ3$m68C1iGUQfCrA/ZbT; 10*L ;TY @: GÓt#1P1%y1tғ*lǓvCh<2tPQh|ʄCD + d2(a(L8b("8PC(D4*'Kn:(Њ '3 `(HU>0H@c6@(W$"W?RH [WåjigvlғBCs( 3[F}]l (~hTi3(6adՓ"6Ⱦ[r X, "² 3jM`Qs-4&>8M81f⎋84cS;Xp[a=#P=nrz9?!tm!B3ᐯ#J&V`FB"B9)w.O*2%3N{!ʘ!"Z /ꨢZj,?`"\8!W!;R0* DEON'pl jb5d]p\&? ĔRInJCtcHU$3LUXQH2Zz0q5*""`VA͔Sw(Jgd|AC7@.p"hF!b}ʘ R$B{jP@P>34+NdamXG+\;zv+h@:#r}ҥb–#)} nbI`ecM[ "9fKfev̀~[Y(QRJ,wށrtyP!sJlxä#63Fj|g|G et,@:bdnbL4jXihP(Z+8iZ+Gև}e.,c}6tN/.dƌ6L"lp?LЄ8 M:>0 ҤY2nPVETm Lkb 1#M<>bc"`#<Y(e:"X&IJf6bl~Gh7T$QR1;|,Ȃ/52B|l*6X&n? ?m>6~4#,lB"$0t*TT$3"ZqWnQ).ArFbFT"dHL!h~nd|*e<ūJ # Pc"# 9 DNHN Rp|bVk_,$+攐}|CQ:96&gdf M2 Ai9݇S"vfk+k!)Bf9+ * ӄ?C,?p?2Q҄xP+Hmwq1FEm ";(K#6<6Q+XҀ|#B!3Qnŀ*:QgCX~BuO(X2Cm0&A1/mŽ;C4P6H?ƈ0R5\xhjJ#R1Al@ >@CQTk:pM||ҢF d:; $e/J|"L"D.vlA])'G`AoMK+ Fa0}'(#QTf<)ú)zBcI3<Ö4dZnZJJJtC+Rbe- L /.68? 3G CbaY&2#SɌ AZqB H35#cJɸ&T8V&n #sc%O\s IEq4l,mO2fjncW T"WR FK0AԢ*ȳYDH"ZuzPJ Q+ȶ#n:;2[*~o@\-0bnO2,#`t* ']%-HM`:f%_%Q274kE7TB&_`/rC) " 2d2RQR)%H)c)5A#fRH@HgyT*6hKk 1CT?N8LIk`4 ,Kq̦1`Uv,ebCV%<@7M::mmBimK ?/wPR/ V/sKYbHslG1U+1uq8 XtO`R}Rc@D;))r@GQ,F j alt&Aހ2 E )&mv)k(`?W˰zl{h|>"&AA K: "qLsc)pIob)A@a7dv" UUqS&ZT+m;()b)~xVut۫d&ܫ[ tư8oJ/4K 9$vcap|'oC84 :D!8%uRf95?Հ>""UƷWf8C!nr~@%0ԛccL-"7vc}rg{2z0RI ?X_[|Q:b6dXh㆟rqzh9 eI?44@*f=L>ZA@(Xvg'AbA^dBhq/#>FVH#X:s?f@4 ~n9q I&<!!puXuD8 +5ٛ\$x/GFTAp:;pppz HB\^DL#P (dCRuwk){giI0HhrMI bPcxSSj#QsLE%xxzZ-l^N]Y'{#e2`&߹"8Cءg$mN'セ9AKC):F36c'g6{$z|LM'N[)O[:P)W8@IiYX_šgm:*Lx.7 @:Za)3LZa @,&8dJȇ@@|ʭ| a 09) aڍd8V;vQ#Wkիzw&yεr)G^+!uFvo5h F..8;G~ Ԃxs;[9C8GJz3T+hiVJ"ru]ʘOZPu2NwaqI 7#;Sc 嶦J8@TUbpC+c X'kUaaCg "Ya{A=56cU#Zc1AD{@!M%OfXmJ4ܤkW"\ƥȆ*:ǃ)ϣnJ Ƞ&A*?M*Е TA&FDj  ABȌrZ8UPgy! y]zkm$&R"^`PC-tX+f9@5qkUJb5a ^" E(٘Pq涷e(.vF9 g;?CxB=HF4s,YZga$G̿X>˜ l*tPRL='#8h:ֵvl ɦ#Ļ0IO{\W dy PJ盪$1 O9tϬq>C@DRd11"0wroi.FVKtE90x572]Xq 96!2k~ӡA/0]BБ342rG+v]Xu]q0 .Gt4-\IW5Y%R6xkA6A~2BF%HQaGtS>uSmOX<222pCzɧz:p}(pysdr-΃OIs)O(' =uu< u%4(Rc(-=N'eGEV$Qmأ1v(5+F*E+Sd95gYFPy565x3I!-բT4/uK30 00JDF4zpU y Ua7o~0"Q)X:V#Y`'~&:e)J/11w`ׁ0qYlsCq c1vGF!f]![7ɧXTWS)#Ak] d]%[;Z 'PX)Gj9*0z*C[Ky@`pr`sҤ9P3$K2&'ׇro$b:D~c_IQcR%nZXejpSjp*[+њXDe0řH,C)Mq3KYՋ","CQI4r  0,hE"օ{Zԯ.lp "Z2ڰi]e7] Nvn "B4 hlw if!'2#S m +X? @h{kDKo֦ 4 hᵴD+B/23浄B9>s)99_O@`M$ʸJA}O <2 Nt,GlGZvd[1 p(f>@ 4,ı[  "3/p %MkI~4_u/bE&J xoOfS9J}{&CC6Z'#7eVlXTX!ze_9K^!%iJ v{)a۳q,Qt\~<kJ;\=kw 3NZb([y" wR>q-LΏ50sx#l#1<DDm/8! YQ7ߑ 8;ZeHr5r0պx8 @ EWN3+1G 9 J6!a%Xɸ"8q;B$6`1VGt$U԰DK؅]}#)"$ZjI=8ՕQh%at (k_SxK1a_;M؀-xx=xާ}D%&P3Mxr ! '1G(I&:-O>ۘ㦫)j QPü諭`S=qq&'8ADDJ54f:[c̑It#̏LKl!Q ,9^h!%XLvTrȕ(2P]V5$[px x)"xE-. -~7%22Z4XELj|b!D]٥]4I58욐ȱC4N՞ǵJI"7"*DQ8E%%LQh_fs^NQ sQ#wpy| *&`i_MhoCyqNw)$cw)t$!`s%*I% t uu+ %rp{X2sIvviQ*R8{WwHA"e~͏WѬ5lB8 Te61fBPt3턡}#hs{.~vy/4{D@-hЎ$09՗oҘ/*%THF3-^X6!N71a'/ /*M`? L*CUUآ"kp ^I$"dZIN,D[k [R ;^(K+rJ1JL(?]j)+9{R{Q!`RGQcJ-4H ] ЅJN3f.MgP-(@m~3`8`L`E2r,iF5:LuBSY= lTV 3#H[g%0G2٦eڛԣ4HE?! Z]h4E(*y Yh$PHa :NL?jQF ԦAAjv pRD_H`0㡯Hsӛg'# HH0lT%eH^@0BR*0Jy _G$! ^]H cE'bQ8r! a n%aI jЬIDU% x[o mEȕNĥ'.6XR2X\MP#sDD!Q:ÎP/zWً+ #ĤT01WT(ASƂ">EO)bAd]\hplcT)qxD7:t}?Zv#IIMҞԆY^G^`Mj^u,`D"{Ҩq2@ԣ,$,P jQŕX-C `"}Yf݅}:u!b'9-JHs&PPj/M@R! *js H3(`x*N}," 5) *K"&'"@ K ł˸4g+' %J)ܻwa#CQڰɛL7!$7Gٷ85  ʮT\;e;8B 8pB +'cDgh4O@]4F4LJN!ZbNz2YEW}Ռ]U4γ<[ZT;(0E9U]7LmE (pʄPWC6(؂eOa AULU}E+2EjTDC8dq`&]ч 8"aSJٺ >;)sE= ] *AC3.R2 r#bSQ@X0ZͰ-n "i$JԽ"0" çCAiDeӁ:Ƌ٪tR|H#e [-3Hh&ӣqLh>\(Q\q &hDG mMb JW a  X%͎贰g&ގXSfA(^hyjN?PM( tڦ1hr4n54}ղFz',9<+2`y7hj1DChF0^X۹.&،Ų5ڣPi V9W(QPPas-.)&,46/ThK?!%,pxP aHـ;bB;C7Н-KOF=çncȠ.xYl[| kvZxzzeAnс䟉S;d8Ne!WWuXn]i) Yf`gz]hňpPL0F #A0#R{]ߎC Ip7]7T=LhhN)W{ j F]p QB`I b-‘Bbzy/ =qVL\󒦳"yDΊh+-0J !zQj ]%=-/& ?nzj sƧ#6O ˦=L,yi[܂즥t#٭z[AlYdG*uJ8f=S=K^BST kZk GYqt@L5"E4{U:ߕn%~v6Cmgv^_č:ױ rMf&6PB3PVd7] <օch̴0(@ @P(܉nLq3Ρf9X; l c#|ჹͪ-qrPH$.Gc@Hw!똈DZ3 z ?bs뱎y{DLDhő;:OB&פ FwۆQk:`)h[2ˮ DQ.JpB0;]L"#D/SV@u՚U 1F?i4dM<2~ zwca i~h6TDxHovdƒ1y= f:Cdlנ}SHÃM$p'_ U: ɿ7KY@L$+%?(9t!%8* 8iFj R柖iLSKxjtQXZKJL!#U1FrZNC# |)KY#_ưm 㭐ԨE4Tkw/)DǐayD7+3gC\QٴeZ2l u )࿴э ׯvMܵ𧕤JOg⼒q҆I%_yhh_3 ~&O3(#2 CC2$p?'\X!2hx '$ω3BHEYN4cc;96I &H" ($(pE>?NyeN>$F%FWRf&)!~F\q?\r?}21I+y)Ґu.Ll ~ِ nzɐ~ # ?0l1Ax!oi!lDPj IJ0!ojk?lLA,DA!29BP 4BP`Z9v|1FFL`"Dҏ1L Yp(gr/iNKg;YϜ4;q%lDtj9kW^2:ÌV9 [L\`$@ޏ 5 :\CP or&71o6Lf ˆT²3;L=ɺA$'8ģx)}scM?2!cW_UE]Uqn}!HW 2=>V݀4,`ĀP9R_`l1Pa$7D/:WbI2 x!aZ Y(Z'yr}A-eq A\υ*#A^y׊xŞS'DZX6u 6 1!4D.-]h.cm⾒UUb[=Rff[nfD|ˢD^$Ĝ"$$ t !m×( à+ %PK TZXHUAffeֲ$^V8LŢIbVcEW_VC<be_l$S(BhY_\E?؟Ql[-8LHq5C:g= tc!El… p ^i`$ih̠h C9q 98_W1SRNNaUS4p!nSVWH)etG-X%Ru8Qu-lqe?x=I$NbX8$VhVaPhzT# AߥI AC?xg**&ih&`h+ JU%`hW =gk%[ rF_XO\օF(9ODLD`r_@@Qf<eSFoCx[Ƽ_` =У@ʣԤ$--[F:$Dz\̨HpEٛsi J$O$oFe@ LR`RX( ёPe/a 4M$f]%V(!ccdRĩ⠌jVjii6i&b*++&&\^ЦJC`bUՏUML1g_`㴍_j>vL_`\~NdxP|9%1(€ruL dƼi=k?(BBҜd$f Snׄ"[!+!y?Pfxg'#y#%.IۻM r\݌ TWzQ^@(4ӑ.!_HXDHN.)hqynXWzFڈ X&p@pFZ]F^bU(S1fhUi=-Z%@bkjvjjvg~++^)\)E|bXU,J%* NČ_>_@>k^,'%=mjZ>mzt,1d9Fr$L+GVH*ϴHvTVneQ@r[ư+foN-l`'M.aƊ4=h8FE Wܯ6q y9X~Htp} PO,!u Y 3)%H=H@iZa",H  TH Db!eFC,x `MM{cT(vFGb dtl^tL_Qn\aQC\`_q*5s$ ZPHD J`j.nlɨfJKm.+\ ɁdKX-_P^Ab2)c?Ʈ?1Uen`yS5,yoVoH/#îrO||U4c<ΟcA7AQnoQ̼1dr҄D6HCtpp`p/3iZ6GR+si;ovZspM-pM}ҟyC\+(r:&߂9_!u]?tϙ1٘1pɗ+a@`4J_<$TdGn09A (r__4EN$aƭvҌ&l'Ew9 $-Qw6 cOCϞ/qSB6⛹g\> u6@ {[>R>C/`v GGhT49,sEf{{;s D{ӔH/x2t(2AƜ*JON oxU4`i.,$璋'Fmtgwq0m|kc 9Xo<6Dr,9:u<ʻ63ʤm-*_tɉE\ѷyf"DJUB6tA[tAw<|'zi?LsMw R@W R ]l'@C^REn  x8Fo2T^6w[tts8>V:p8 D7KFE^dǠ RR$8,˲yX$vspWctq,t5GC4嬃4bxOaCCpޛ&+C}aZ+]}ڃ po܄ 89oTB'Cw] LPM-BB8G: Hj)P,tN|" Ym=t,<90rxČ˫QgRUԠ1鈺̟lUz c`J1@]$*&5@y'd HM@+J8!os%'I XV3kQd4RdLa$RG>Z\W4j1q%]6D(LgqB{(d,qGsKcJ] R[IA\:ɈI'?_k /U ='d:VL<`5F @<DnT,:Lc4. ~n :Hx bfn:F8fNl肌V| bt8~hw(Nwl -56EwrhbEE(B .XЈLf7mdlpHo^ AM [$Mf "f+IJ:TT,pD48¤" A Άm>D tctˮCfckF#d#ulf1fǚl;.ITv" &d" 'ne{&a oe&zf" zto &Ut0\qfp!Ie]yǒu#ltzTP D0RXP "bFzLƞÄ:DZADj-Gp#j2 Bˆi".r{`lCX$~#~cZ Hd 'II$o 0d&-oJ`L-U@.K: JFIq IΰI^& ~MNd>tjJS'5Dϊ.Ǵ*>4uqTn96b*èi4.`bE+'M`@/df]Es8E&\‘8gta \E$H:p70:ZcQ60p;$6唯< ! sLd!2BD"# b#@t !#y@T8846ZQu#DA}2L|r1HmЎОd7i"1)?$ G&.gƌ^+o̤/rIM+D!p B2pѳr&oz(g~Hzn& jˏfO.'Odc@!Ecxc<=q CC9D&]`q$("1<ƒ%8IO,/<83,^ fU\8[ZAz3/% ;v0:b UhB 3d4Շ6,c  0r,2\ 4)UP# 4# DAt43 sd#0l ¬NMBRtEk.] `njhhA,I Mش+1` ڤ,!2+Je  bJTp2H@oJKLK4 Hn(G TdOA6&rjGЫC]9V1~Puf9 SD$JBRUU=S8@8ˋUM2%#ăzzX3Х<oZ# .1>1fJ\YWPE90Y=9QoZubz`b0 z 5$Ǩ [ ?E 0 p[yw3#qu/f%ko,6tj0IuCέ_ d1o qJ4T@aJd26KQKM LKe27*'( c:2h RC6bbxi8zhyf^dmRJT‹_I+]V;2Uo'"$f O*apY5T nυq2< xp5Q5 Y yP`<^+:^,v81( "4J2,ӢE j Rl&NL4I4erD@R1Z[Ecf0&(ڑ{ƫnÆ&B$Ad0r*Oo* Mt6JH&#*}F~Ji~~%Lkd eЧJ];At`.Q=Fqxy,9ՄLߜidz@a{^pȬ Ȉ[yzJŅU׌t=b ڌ886$sj2^y/Ckr8̿è+:=ڠx3"#@^8L.ŌaJӘRqh 0 B828L<>MaP5#Zue\[OOWwLjʫhj#&@RuL|jh/ֈ*8ZMyDay{WT)I|Ɨc#˴\rxVLJ};R4ݷ ѻJAJY 4mp.?-"6+LEG>pp&G"Md'ͧF vaW?rouiتȫO;Ɗ65SNd(۲)=1ruO.QHdS6aER e`W%Q3 5uvX7W H2,*]>!uA{@@ {ʫO[ewQ0;ƫYT5~5֗C3yȱ8 Ljd+>!hQJ)#j{9 !iT^.3IJק\.D$L<؝#C8A7*ѫ)| d+5*`r=+H2+/ڣ>c@[@~^XMsNyMU$wy /Z9m+چfTE$7"IE0*Y X'ËHO,ÎufND:>mNEST 3]̴4G"#75i*iSsFi|IqSNoz(4wvLvpeY֤4zFlDrkԚӥ"T7w+F6qGB]hFa0)̊v_CF|E ZnvcO @A9UUO n=趸ԭ+^NJ3Ip R%YH DUvͼD//ag)ae\^ pt&[ܒ Yt\9+J?*a@apxp UQGqQ'UqfHfaQb$qr+qBB|*q&cM%,1xT[0v%x%gs"wU>X`1?2BUtF4DGgtqsTX_sq+Ig5Fq@#!Shvnvn'Ga8^s%m#^uy7w_&6j  f"iWiy7iiy`7 XzjGzATPZ87!P X t@W{!kqkA4{7eSH|vldžl*\ȥ(!]ڦMOEnd>i+}C~~~Q?vt1qM'n=?eN.T@ '/@qWqwq"@%u#1E&(QA_&R[^UW&&0#\UQ[͡RoR4-WAUPf9>x2IU1WZ;6|ovjP['Bn؇ 6u#9RhgyF&FHMX6BfudI5fyAyE0Ve։gzej&zWJSLP L8I{H{9A6SњQ1Uk81vK' W;a@d.g~bʂkUMB[}H:  -x?oUa?@<@ @%aQ q'qF.na)w/AKqrA#D8C1%aW&ig&$%{+RsG}ShHCqFecTVb43c͡uQ0H~8HF1SsD+8\S$#ov^B$mVVLg%Vihw$~&vgd pJZ5yZZY@9y8 yj!$iz~*zyzv)]ʊ9{8#G!{9' w8'ULe]ȓ."_w->T?,>NNA+SQ5O,> *`מ??]qU vp'xq#pYXw{b:(xJ:>:A#-sG*806bZ%2hGr3!HDFuJ"<5u(N90]fTxau-RJMj#U$ Xj h:H;Bsl$9R:L:W^&"hFes 7zJZudŗYէzjg$FgzZ8 Jt`:q8e灸çX|3ڸwkŵ~;AfMbVsAq-6=-W+%m`/H@Iq6@M '/s"(}(eA SqB9gJYV6]38I`:0>J>'roN?~.(Mk6a3P`6QMlVӲ@M5r,$E[Ly@Ě,;8Lvr6G<ɏt$$UjO$7TF9lvV``9PvJs)`iKc5B :$ "E pR֢o,#r $Ɛ#YHÒ䰤ЫujPf2j cIL eP>#i w,ݐv\8HDBQwTSиv?" fy@(.x*g*@o csJP8X0j hIi1@ f)( 0c8WX !( :㖿 x LËp ؀P¦ `h! (| ꊃ1.2ӡ; #z ) S""JC;+͐"ư3 "VHێja9i SM ,0,ph Utn6X5XU$ >R雥i!-;FX6iFۥ(j.)!i&+Fp"ȾҀ.PEs<U?rn 㝀>AG 4I1 :ɔ ;y,ӈ:W! 49';AHAA`HԹW9"떗J :BVIxɟs#pQ!:80òz*Q3@ۢ4 3<> 2K̨H0JSkq6Dљ)R11 ĵLĪJ8arك5[t3CZGҤp)%.TY!"ipM۴%dЅhVFb>,/&,Q?)wkATE@uC9Ei֩8tA}$#~?Y@q,HBhl똊;ɸ`"b2ܩȏ ~r 9A H1 ,P1б:u"CB&{ة J)Z!B,|*◺ A:+1ùZ23,똌4d KFD:"4#ѓBS5:EPD"p34I).bzN U[ҥ"؜ڥVnC\t\QjXTaھP:NU$45qeVHqlromi-OV|~3s@'ڹ9׋#%LCЁP'W2Hh^ 5Q9BIاX 0!~ :ѿѳ/d!ŋR!ҩ!#岂I "C2 ,aiS,(/ r IÎZ7L˴L@̃81ZZ TL7jC$5hе6 X\ V[3ǻJ[,ќϡO>UM)U-6>``s-&ڳŶ5EX3c\UE-P6a|SDnv@}z4 8yGO5iODgV9q5t^9,X و,P @<1+ } )_#u:끑e )Ênʏ2g ue,CE`#J%MP-caEG ,4 }6=$v`=PSF;SA%=ZCY aDFRF,G;pSLBxb]c[!ǑEp-\ h-`Û<̼0-R%5h$t`>50mh,mІB?mj"Ԝf\c.;]P]aĂٺ89!'ߩ޹݆ 8F02dm[8}4zНLa>4Š(HZI gWf)e2_  p_€m%nBxveDY,3nHg٩l`y`FKEng;64{Ի\i/fxff5v⪞oKT40e 9aѰ 0˰cĽC8[{Er=@-(d =,66n膊Mu% &a8ІR(.3( \հҪ)-}k@Sd7k`j N r3ٌ%Nb%V7$ X(kdzB="'{?n۩ɓ0eDIީvڝol '1 В+_锝P[ANۨgG K/)%J:H X~YQmppIRf{nau ɚ}4HCg}([nWq^)by'+gp2?(O5j0<2E@4@#$@CO0e^`bO, 1-V`>PUQ%N!Qbh+򖵦5-:СZ ˬf@l9KRȭEQʋb:-bv4y g/8!w !Mt0e)LnS3D0upcD7 B&L0ZwXź<э8z a꣐-"U֖Nq$b ,rgj`ӆ)LTB@'[ ЄHSx)PE(J?w8]!;J )ы4Mh %կ.Rj)GS"\9KZ"0mNqT8t EUC!qxE8pmiRg"uG!fC|A!  VTkXBHi6,ѤVaM$ \'DAʰt/JQ @B0]QJT& -` YB/LIlzPΑW/ٌnXC`WCϸ.LX$~0bTXD7CtHEisZNޕ΀1_Z3l|S=Lj߃HDZdk% YAmn/bL-(0LB: u{S^"]v@G8ҩN/T|ё9̵It J 'HP&lspRrqLoB dWM#PvD 88 <""}ZHy CRI,$1?= N{F>  ـ)j{XIJO3 hJHLZ0E(Lf"9ef DZ7Q o"" ^ruBF6W\$.TcD4=d*㘺y4xi䫯ŮXE;uVSi'ad6k:/jtiY^l1鏎t"d N 2ۊdc 4[kEp%UoW IUYP\<4S@lY[]է(EXWF_ pFv(Յc0P{ZcEw/#`LmTc!>qMl\D FaX'm+i{=>A%Gvk~D] EEn! $!tBh˶n \ݔ*YW%)@%]H$ȍlj! (MI/uX\NN EOlɵDdɜ)\\ \^AeO) =)DxEH8)$|?lr{DBg 1ғ@Iv)(xNN}Ύ66X}]TTl=Ie"H]D?|䓣 Dm y)H찉i)Y#ß6$a$?PIG!MdKljg" PP(EOE(B0 rZᦕj a"`^ jbe$LIb"jjnp*g nz \u:f[U{y~n&k>t~N `h$`ܥ(PD@/,ԸׁG6AHΝ$H@dL2}U-JNX6A0J)?>t2%>D?Z*YXIHŞHZ%&"C9}@ E-2B|0JX\($2еՅr (UEQh*稥7Jnj.@>nfwb1)J81Q֐NB *#lQli$|=k~n э.B)<_$dxuE)Fd qM{} !g׼gLq?@LRoXH]I5pTʬA]T夀av%TE@YBibp\YbXRrl`KB ȰB@ 7W`Bp Nijb<\"<V< K_j+b` ֩j1dBtǴ 1 Ek&.LLgұzʱR/5_+S.7>&!c K*#%?BT#`T݌2uY>`$6HDV$1{Ǔj$EOCYNxGl@i6l!NNa)X @ܓH=9 i;X(D/mbxY=ْB,T?,?@(}4&b&? +DKE<^4݅LDD *n^ 4!8Jt+Nk.x㢃4Mf{nZt&FzDBZnHxZDqGxv[&B05[Ĉ83WY xn yqfgnȊ+;HE\ˍ@F\[񪁅%\k;u?̉x[`[/aAIh*l$=GFyPl-ńn.Sb`6%N}}pMɤ/r'0)XE% j4@!)Wpwp Yz^CDђ%C+Fp?LH'W+H(uBtٝDth@Bw`؎w1#""@FG&WC%xmA,us+Z0Z>A^HC'ƛh@Dwwywz 0icDE]VEUPQQV!pm&nJc)".j 9ܰj ZȨ )pZhP@P1NȱN&L'l",H4#"R H:`J(M0:LK3͌3d"R!3MHςDȄA }%6j"jT" &RH6)Rkӱ)ˀ 1b*fHZRʣO3Z 肀ٹî@=\ nkysxjT]u\"J3֦^"‹-|,%hRX2RkCN4Nv9n/h9#xY\ɻ>H8oHpϣv"0޼D ۙ笸fdB@SJAE d, 9$"D"FHWZꩧ'r #aN8mT 'rI,sLDR0;p3%1yUF">Yn}H5hr8M՗nE"9p"4F?OXBzK? *)qYƄO?X/h#@Rb,A#h$ |1Vic @+8&A@OC42-fLFY)44 HuAfkY}b DnxSm8 c DT 42)mNeIK*JW:rWҒ侤9=tHT&3MQzu p;IvE͏T󛢣;myAW*$49D;Pdzl€6,ae^”0VQB7a<[Udϣ2,""V7ۤ1Ahb=ŧ`T&cg.s/l3!3W\q30F~yXE"")Jŋ97e#hE0c1҇g3=L;Vx`fL#Ӡ֗=XkFte3B@v!]fEY QHH5"-BFe-lMI[(mx}-#mgW$)I%fSҗNg&ms]d7IHU!x2^w7 f9D*%:H;RN$SBNNm:8{aչZ=V9F.WK-c#Q Y ؀,,QX@c?teNFxX}[p6qT3S`%w)¦~q DDq'+<0) xg,8ѵ*:b*xŃL)|!>VHM|^rEZϦAD*рZ o-}kȒLhILH%JdS r̖$7r)a:mar41 0~雝E]D#w~҉Q .E z Mg'Ĥ'2T`\'Ga&Y#:b,(d%g&Cn@]6 2h[\hb~pJ!R"8!&RBJ%:0B/^nFHH9Jv8@*Eʈ 6F[*Hˤo孤%=#fz&HFJ%C? ԃe%"@X@f/(8v`rGdkdJ.t'H 'dKKs JMPQ%sdD#ƉDAS1S ! "HRB!p''q&(%Ow#l&1'{C' bJt J,<7B-b, J|A J<*&"v,l R2v@}̐\NɠfCǸ'I/'l0`d :Cㆾ x@6@}\ v#(.xbC0f >"<<f-(;>#*Z% V6Ah&!o fiovKovDGBioFz|DoGN _Ir`H-9uDMUL+8uDd)!d ."4BSkx#QG0"1<%1T&ew.# DB! e1ڠ`'ad68.'T46 92€D `L#^BFjPF32Ă0#vr'ՇR'LT<tt ㈤tJEcΆ0#@/J'IlGF~9HMhT0Ճ1cv4;f4=b4f&7^<^hQmo")FfĒ|n_g+o`+#BZ.xo|T Iؐ3VUDKQM:ukMPV'"KBbC>V2 //;n8P1Q%Ao/f¢?0u&ƵD5oVSojv/SeLZu8 `J$TM3V1L:W4i; v.:餼eXSڬɚm1\e&P:Y\V0=–_N9#0`M@>C  s[PGձ03"`D#58sGTHHz}p2|qM.qr<¹K9 KDŤQ]OXKS:b>Uԑk#Uvs"bq"A͚{A= ##b\NjH,ɗ9#t h@Lelʓ4} gL[68~i < $!C hf8 p cȑ2`$ \c37n|B A? ' %DwYC9ADH"5QH Q%K9RpqARX)ePOL9UFUVj5dXZq\^$?}vW^uU\quDDIz Bd~jkPuh3DCꢛnC dt[$UspltsYg޿ő'xQ_0qFė '?ȀP1p`!]o 1ODG [m#laFc[aTM FPljR̀ @Vb*Qj)Nx:y$idUFVq@$TNN9eF]TZq`'@6^Нu)qdy׹@q.@< :hH jĖJNUEeyQNBBeY UOTO6)]E*q夫ed}Fi ծud]ڵVk:|=tQџiϖ!J;Z&`BˌJ07[s0 `+MÜeD : >J2Gdcf9tCT=!pPif+ PQ-5`Be2' fI,8#GՒ<$JS[FVզ6%.L`#H)HjB%654JcH8@< of @ʗTRNVVFK%{eD* P 4& [J% S, Z2⁵x#t%Lf& $?MjDYL@; @Uj'2d0u6kЄ6t2̹ejhje0 `,xZ? 9 c,Y#ɧ65dȲLf~gZ! : zh(39_*@ԢV&D ؃Tx+FU5Ma jCGf| mtІ JQ?"$TH*([Y%[8+5M,M8qtz@@O(g95Kd*2uVI]I'oS/ U4KIT#Q7 $_UYR+#r<슘\A js,jBe{X'd,OzPBz! B (D( 0M` aֻ/+C\?2ߠd&eofhFZB8{IM&aTEoʒ#&KFN^|#x(Lh=ۑ7yc4t$)p&m km%m*V]h#[Eh{6?\̷(tfzL,tm yk[ }3ęf{ >7xS`Q`qa-FqӀ12~aaAbCa3C-4tPqQt!ptYwt7xGidiuZ e& e^ʐhTHvv#(w:&AV%uWIw~1H!)&f&vVIVYwx9o8jD7k]Kb:c:F(sZ:f7#tjk*qJ7)Tk5\l_<ͤ$&,,˖%rx!]6|h=÷O@d]u,q}q~ "Go3@NPaCp Tpw*pp q `׀-Î g-bFP&R.G 5b/F33>^:QEUHMt]TKǃAZ]v `hwv3vi'&eLCyjY`Io73H&\@vopZk&`& %x8'jx| q&c19 GtD *$v%'?Q)zIi7uF:DkL10,0"wW\LԳė<)/+t!LjA=+w,!&[Ym]mS,m!Ap*5}6 >3!_?5/.JC/o:'Aԡי ةpS-Aqتr8y2iwP!)#B9b1U! M0DRo;VTSu@-ceհje8`ccuH'uOiV@6V,vZGv`@a"u4pFhZWvg;uy+Sygs*GjXUye}JEJ'az"EiPRz#7c!j%i)RJTzbzt!k} gɖ6!mK9H8ǥ:Sj]{URM|{=Sɸ:l(Z!^v/药_/'Haaaiz٪qPa*THnzCI'R13 T B"DCE>T*hdQ:f K`\%LNt_#x 1K kvZ!Q$ Go%Jl5Y7W嫥Z#$ZWu3qinw:z w:PMT:HrI+YRMФSQki<Cm˅\™Jwַi}P hof!|o5ٛ:A$Ce| ` UXn*xZfB1$)C0  4g-u9g sPFT]$%>&lu 5b c$U^pVlFVޛviߛˉ#&%QD"!gPujWW Xp8xF&{' I@Y<xwwFtĖ$f5A8C[AJ?%$r;EZC!H¡gglrGdQ+MmF,'nfmK 9/n~Ŷq! 5⛷aƋ+;ǎ'Q{A]/ c$bqb0V;!J4csUUު0" ɛ^BmŮVvǘ8j"ʱ NT|) & XEu7i;pҾVV$rz @Yj%&zV'n&VHlOBJF3{rc:Z6(1*6*L$$9j/[#lHK[B8ÕݣE+:-E +#=LLxNK*aYzkU_MsƮzklƩ^Rw(+y(tsрJףraK6)T"mn(}p7]&pNoQX<'sz ''g<#%C33!8#2!!=`46G aFGhG`pcV;Vǻ4NF[#F*Qpu}j7nizCq;;gwgmã|;c:AbH^>FiyN=뤹-<۴sJj8!)Ek*JmB)wR:k^=ðdç[(XF}z™wL*p6n}f)-0RRŊ?oc ~ WŪBY.A5$[q N>$7א1@94,q^UeeuK?^W^gP 5mM˿>mN3}%2Ջ㌽WH8}9:A4n]y]z'LC ˦JϪT(BS2 Ԩ /:ɬS)m 'zR*B+z܃Ы/}G8L^E>wؿLp2h,T>r>n6X7 SN^x7޺))dA0pYd0G9Y5Yd22iAL&!(C"Pb $ZZ!@D a*DG#[.#5x,ɡЄ&f2 Ȃ@_e?@BAŬ HeN dJ90RR? [ĒP")Kh ]gx g"].Rl5\C6djn07XD`X2'pL(K;"Fd#ӉWMee$1I:nR(+KLHlv[y_2NfV/,wuv*p.c׺dy"fz =J3ӒgGSlԽfdcpu9ɍ׼3?a uzG<?0 )Kчb /2 V  +|{Y*Y%6dQP!!K-RPm!H˪tH2|c?(k9-ǪrYѾ8U/ZZ *,r|=gē? a<7GUU0Z뎴F9,y=HQₕٱLJ b*r/dv-6+ZG5i Ё/hi4 ml>ޔ&4MmyQ_ots. 9%[2X0Na KOu@wEmu`Q+3) o&6I~C9 Gąq0!qx#<"qґX:.s*@+r+,0K X H5Lq WZ;I1 4V2DӬШ Z`!3b)($,bb <໼@ SCTnIW{ @'u1H[.tr`萎6}y'ٟe eP6h;j6Q E kX BXX7T(*p 0#9s+11+8>J#?1.Sf *,?ex. ƫZE;GzS;)95"#)BʒFm20G+;G85[ H2,8 N$X(R_$ ݉A`੼+B$THHPBig)<5ػjryRր0tcuky| _4:6P zڟ< H=1 } ph0SS j/) DPؠY8E#!X!tFM^t Uɑ| ࡤZ 8;Ϳ`ƯiFsM{ +ly̢@)q#MZG0AC\#;ƹƒC2a3lK"H( !$ƚ9L(Yl+܀ Ϝa`I70:;*-X;IXc24А͐R& WqXт8n-p)൰Sќyn$j-jr[?],1M+S! A͠07 DNM#1)BG.aN)c1l[X[0֒ $M6Y>{jݕ `/kн Ɖ= _/ ijA` p4ȵ;W&B"\;=WG*ZZWBPͰW@<ئp9My3%Xjm'ˀY˸Q]&X PEҹ6 YAumȕg֢>ܞ[i@_,zP177my! Z(ynӆmF \ea1]b N/"/c ۉa0S\z[1-\UV(pVՈZ(޹qogȜ!]Bj XNеCR!xG` rb襟wJ~J[,I Bhޠ0k0z8%GGFr^5!` {SF#皽)[kUʘ, gFn.JBሞ**[Rm@+i1Uvv Z_Ubo/\W/K|8|bAVlu ڮ܋ qV꩖ / ҏ1`j`;1]Iv&@ g }PW{h~PqZC-s= ݀Cj:xH$+`A ;pA 2p  nDσG7DI=`%L"Bl`&D0 ̀GB]ipÆ3\KJ`+0ӕǂ\f8!KhA03pPjpثWk/pA0E ̙=y?v\?xlS@-;Cؗaw^ԃRUi|zgAe&s~̥dѥ)ndz?~z&,y9`ɀ_hAA?V#=Xh"~T6 ? ?t(?D"r'b(hP$##%3tC;„:08_X(* QO  K5@FV$ d@ifB4FsBMTG/50GIr$5PH9崖Y"KCVUJDՐY}5W@X^[C Dp L浀G^kX$jr!g<ece3AiX=emvCme"l5j46x/Yu uXq4wlrzK~'|H-q_Ax\ `T㲄UldMbƆ")b$O&.i"784#JgdY5L]Te`Fu$XAfBz@dVMN 3yBkNZ+v2xoTG4tץmiJP*nDUY C\; ֮j_W^fhUx*\ԙf/YO jzldFk[]xZh'scc= =.t8 wz1Hq!N?~|Dy2UA {~Q%e0 . gPAd"E;r$)F3"ӠFD11IKX/L}za$*$oTBFB mEH4!%!4"k"} imy ."ՠɄ*rJ+J. 0CZ~Se* ⪋\d+j r+ (GuaXy`e^2Z׳VHmu+\*Rsq*Y΅s0Dw?~_KPeTVЀ9`,@3l=]X!,,C2PeA(DaLC"6dH0PT- 9=JdD)cH:-_5%:saX䒩Աc5+ZQ!zÛ@Ԕ:q!oFHQIe*.$AJPQT&ibIDn- ~bK!6s c%5RVG`N$BK^+UXӈDp/69q. 81?0d\P?{S1ե hp2KeAC=hPW,@M c,!f/O:C00~-E@l~ğԈJё$))EnjNĚ@`ܝhC%MR\c?c]dL`AANR_9M@#*N@*g. / klpjK8Ea(%ŨWbLxcLmay !uK}gwxpl1wj^ځZ<%^G遌HM |4, [Y%&J\RbA)ĥxȊHыIMuR-Ց`FbZ<>*! G_! i#9JBFLf9.#q6G4^ŕuM|LNP:R7zbRpŬ 8Dn܊`V$AhEV `lCFa~'"qKwڬI Fom4' kbN("EC-hR.*XRkZd^OvzX^[DqHVb(Oz{Ĩȅ.4o,,؏JljUi-,,‰ѿ-DyJ 1 /V2DXI~H$_oRR\YDj6V;MK WY>'Ѫ' ʥrNAF0 ]ho8^Ʊ˦ G!vZh8c ȀHcacP.,kyH᝘.CeR[.KDzknNWAQ~ޗhЮꌴI UxL &fP‡,Jo9Tt$,JN UoǦoRY_5z͛d(_ e ),DI2֍_ݟ`rDUU\6SHVND>-]ܐ\<~" -Jdڑ ~svpf*o-f-H Ɗ휊;-p U LAZbLH<$K4ϭ٤=x\Zpd/Rn_@*3Js+f+4^m1OqzaL|V~<% v #y!|Nh]5̆T\ƥ^:l%CEY^ m2-2gQʪ0rM `ɾuqU#@D3Y,jN0ΐa,0RM:*g&κ6\5'R=ҪYV}(7#:x:7hO? c~3Soh3<S hŪf n8JSNtx=GCxm$wrsFn߷J|1K8I:.JƴMtYy}܇RG@Q|^u~^Rwơ(R}b(bSAuHTBo'`ڸIרua'Bh2,6Z5A(<ҍhĦE(zLά&NeB4:Jdk1y9c !umU?3|߶ /-~>֣hu*x8 K+7HmSlz7zL"Ze4iXzW 7uP;]f$UGO~za\Pt@WVu V% v`~*׏~p# D`tt0٫VyhŊ!@ڪ`AP ۊ߆s}{\mȏ.ݛDI9珻{80|Xn|~܃4 HزHX83O"(4/54< + :>TB+LQ98`a4g9qhQH[d80C [ ԔD-nxn ˘" z1(ȣTL2J)8cʩp >R(`  )jJ>J'2`*.B %CU-r+0ֲˮR ؠktN& ˼̸hK30y6Ք56@Q 35v>ЎD;ۊ -۴H4A3Ckf. O#l Zw1Z-To8 ;?7roI]Qw+Fm~ k8D@Ȕ9 _t#ʗ3ϵiF*6?*3!z͓:43h&A()z?e)$uG%R֯ D@bHZBPdռ83UB,Xv5TRk+ex6y&4lBͥ^5z cآK߄Vͫn w/;$0]h ُADMHf0;,#YD'~{Csy&BuG@ь8ݬER$I^O^Rlkж'&nl"H"o-1 KN* LjQ3mQ*)ϩSp>RV8҂HFVW~B/85xR^'74ѵ0dlJ:r`O{o3 @dq'cS!'R<NV#}c΅jbqπt1kSeCB/)e ^^#H"kaPPhbbԉQ8."!HN_n P'^`&\jqNG#hk@qCT>9ʱ+LWL5NeX c\՗`+Xv uV f}vc fQ l>W\),6JGg6y 7N&0y_c'ĮU^!u#4.?GA0Ʋ (=2?Yf(Ps7ぇ E-ҏ'RYG6dTgfXFX8H5h47$Q)K@pe ,UGPC T:GM%pj#:qmel2Ø\gq\d*\y\:YJ` 3)֤5ZujSZz偈C3kF 4Fq׷0keVK@w 1`H1b=./!$Mfbm6c)zEIݝ!s;]N-׹DuxJߕĖ"QH"לoeNܬcbn]oL>r%8eek` W#%S:1jjaӯ|>9t)CVU{YW5ֿEu?ɱVMfFa4o5WY0 2YSf3<5\FMq1ly[_Zy-pb2[o 8 /4٬,{h;,h? 5"LHC PoV|"!Ή"4GLon浐4TU47dmpW*mM룸bD6TP>(]k!xO<ʯ) Bm:5 Nq!O}' P7tiIUlחjvk}sť[3p4Ya>SaCX)܌%-i9aD|-L,P'r>ĎzqNt@g3Hl>'P(/ iVL0rjPG$Sz# NC]] gdBCĖ^&k"b̸H@};CAF]Lf?@I^<8k)e3K;Xh)5mCKDpD1nAoyD'.I0΅!*I))S<%jIOJЈ3b)b"%R,Ot*Iioajfbi>F:tjDDpD JqD_(oN`fbaԅB*αbkR# KHkEG5#4¦ 2hM[[c)b+c2d|9c@/*Ϙ4:~idE+&*#6ԣÀ+@֩j;kfq3b `Zθ&! /7$u50uZD]hNi@m1_t?P)Fbpl!'EUqmJ2eGg(EF7Pcr%7I0z7#T,t#Lb1 Oմ%&io7<"'b\g `DO)ek- hbJ^0FV46vf '@A̯_ Ϟ 2KmoL]CvpDE[Y&[5R[%\F \0pm"][x$m s^{ImĚBM ; =4+BK8T}h&QXJwP9\B$tdMc7ez¨~j[E&U##4+D&P;G<AiɴoI=GaDcJ/@h7~OZ5D\q>o؃[CDdGqF#w'd^Uku 8WZ."%`gabLmCχEu%rvb-@2;ߪ߆'O7NSeEY@}vkI鎡[0REB9ʲV5ZBm+T2k*h큔2PkEBpɵce'f:DFdZ t9RTn}hյ1oh)ȵ 5]-P:xu-MZ}&TL1 b!Kta97ѸxPc 8̥98:e )F@\s2CcaFjjI>I<շYTe@bOB*L}vpbi):&HC?6Z,dT)"Z.[#,mS1aC:Z&iF%FFi8DJ4-^n7'@m8>t E"jŒJ[\4vEsv8pObq#"txаj7wQve l,p(etY+|Rwz|U{88#0X;QU$=߅b#.鳜Lް! ["n;f"<1⁁70!6zA*5? D( l<{隬޹M8?Hf/[ya`A.lk߾:[rBћ-r>H tAٛk>ႜ*&\аD 1nFy7< @XطoʃR3؀a'N#l}7l8LJ4  @XnNݐ[EM\BWyOCC!tGHQeGHVx(d[O.FM/A1-ncET^VZqUՂI@p5bhmAYbnVG]F[He$[uv%A|OjV:[kj `l6Zٝ%X\m>ׅ,D} \xăJIQav"t\Gte?aFЊ Y-`TOwP'iFd)fA~Rz-ϴC~w\$~z׺%9ԑ*DK3b12ŦS=UDZES p[ML@lYQacs Yh]y&r&+;aŹ&]g螳9JZi۠7ؗʰR؛E<8G1n7XV:mvv, %hІᣯ<vе\-QJj+ r_QКf6$vݙ[AZVD^IۯK-o: -AZUÇWAoUe71{Q~#XeEXlX]Fd~䃏̉l3[`6;&΋Y'v!@ ]IA4@9i)ĩ9H0WٌΆ PHrtsb ]CZepईՠJrR Qܪ*ā |kVǾdl%W@(w hwWV5d:b\5V\!{A x9I; ya~0kJnRE0NBT8)\+`u b.q6)3=G"aGq#i&R.0BdjL$I8>X%@9/clhdğdRY|X):^TͣG/z<:.J5+K`䤍cߙJJyf9̔M7PjD(N1(Sd;(YIrFxll JySMK"[N"t:(B D}ZŞ M:# A(: )4.:&B(RN?⛋x`< ZaIũD;U H0Џ$t$m-J)ޫ&eMئHxp5C`z!A/`ꊉea'(̉?,9\ۍ wR^|fw5y@* - koA25LeD:P]P+eeV!zVpGgxcx*GQhQGQGWAg%%}0b&UzTrr0W}$1$wRhI(%u$'j>~~j'>jGMg2PP_4yuNN Aaf"PF*kneaNYBc ֠ qd #BC2- 5"ZAFEx9.ޱzBD!a4 uEVD[aW"GF# l*W@h|q@4{tqWq'~xfR(Ra}q1hlQ^>1]"wSdi!II&A(a_AgJ>ƈ= ƒQ T.D Q 3Yu'6i1`Հ)>)Ҡ ` ГVB7y3B[):tօ`goٓoIs nٓy){;r(藕ecD0 bR^!r'X''HE17/5&.xRUŬWV! P=JG!0!;1ȘztNRͪΓhnW> 0꼣ΐ\BJيjC e?q];?{ε)c,Th]bZj\[I-)lC YUA3?T67V1'aCIsWyV`V[?EʇdhK5?nKebrag<ؤE2;ەfeغ҃dtJIzEэzbvcW)V>Po_ťtW箃xV^چa}^fqQXrlGHc==}mŭۛsԵRNUOhyQMaaa6%*TЭxE͵el^OqWH^d3#cI҃Yx\SH٫O5:zWO&߁JwÝƁdY?zsKJ؍]Τـ\_McLjWn`=sBS6iMpTr9&xB3I5ʱ]zKGMEO8k7ʃlٖuX! ћy?M25@(xɓo鵐PPPZߵ[ʦεع—~jjj{{{â\\\0 )e]kNcϿ?eqw߁^%:@`SDT#=Z!YÆQ{ hWu`S׋i4"Sh|1uTτ_=NH= =2J!ԓ+ѣ_ Vq#?EW@5E:YpœtTYUzԌ}*蠄j衈&袌6h H?>$YdI慓ʷ!xۚC!)m{3=9gyJOz2!Z^=~ ""VkfF"wO}"q4 R>^YBj RJB '{W/UdJ6US SBk35cgwmk?":<ՙI5rqӷJn6E"L鄸J*|3S8` ^nOPgMĮ4S4@ c6'p~'bS3Ls&Ta}ߙlDKuڬ[%dyyeUb}|\-!-w9We>' ԻDp##C خ*LMy"փ& n[= ȏcq?#/}T,D\7|Bsp{A{?=7.PMNf¦*dn􅉳 ȦMe.t (2^h) /q* "Dʠ@D DHGe@Ё8т+?axCK҂,)2ŨTQ*MdbS84"zDYK/z#ר~p؂9ڱaẉ> IBL"F:򑐌$'IJZ̤&7Nz̤!FIRL*WV򕰌,gIZ̥.w^ 0I`L2f:Ќ4IjZ̦6nz 8IrL:3Ƃ' OSQϧDH@ duJAЧ(D'Ю$4* =`O{zg;1ϒԤ(%JS:O*,U)SZæ6 9vӞ@ *PAHHQԮ,5PݩRViKsڗī# HݹR+geJZWO²f3W{v m>׺VzU팧jڱ_W)YmYdAGUp*9ͪ@rJӭpUR;gZwTYebimkgjוT #񲗽/SUhb ꗠT{VO+gY^`ns!a쪔]-_K$mܦ@SS24nq_EWMY`Օt¸;KN_ii`u ^*UXo@߆R/T l̔'zYm.BV T~.lKVkS ]%>fu議64Zx:X쩚-ad/Wǧ4sBȂvReJox>Zծ6_ :"^7{+F竕i\+寔|ssvzks/5{{ {[ϔ9-;,w WF3^Wو/_Zܢb3:To^PQt!}W]|xRwSwͥhhv|7bUbN!j\p\M]cgL Z\*c0u%5ezv6]Jjf}&ymvf^^^ lM_TlWW/'Q(US~wfe_w^xY@#nwrzeUaC6 th (/(xhRyiuF{h|,6v4u{|\-/%S?|4]%agOwfYp`h`tyO^ dy\Xx\X\}ldeY8{]!}t 耰RR5@]/5u{`2TwւTƗi`Eu5\O%v556cyȉ۸3؉8 xtkx}%af1ffhg='ZqUa "lUWRy~d,I&|UO{kfwi1Z(Fa2@kn(Ѝuzэɍ8X{*X'%U$Hj!i(Wp2/{DUPG++egl@iz}Y}zSAh^OVBw`UrW#~+OQhyAxO&^f vǓ_12@)qn*nވ587ՂR)ip({긎Fp/FpƕOjY#g`8c9% (hxy I]>ii7Wgwyw HY$, %ٙy 2j2E8jő[!&}hz5P9 6uhoX{(ݸ\}ȏ 7bCeb>5UGTw@tH≇ى$Uى I]& g^V٘; d׊se ozYrY}EV8Z!(i.}塩y;Y^QSB)# 9]xwVtaz.; 󴩏py(ɣSFZhSĵTJ:=L"yarv)d5 5 ٛ% y\:})# V}>goU0uMrQP蠋NQ@t&:g1n-z[,ڰxX([<\EGڜo^jUaR!f*%Ew-K7Oٰ˥+})NEgBǘw՘yȊjOAejj緮/WZrb}g+i "`ZqQtOڨЯ۳} ,ڢ붣uR/9 ٛ(ιIUXpEeY\qPg< .*@2`\ʬ~ـYi#vh0 7lUO5*9_d*9NR}Ѷ@^qi^nZ`Nj y;q-aNٔ3Տi ڣ)b|AS{&ڹ{K,.8|ft zge~Mo 9;v ǿ~n~:o=M. }?~T|TG?h=Zzm?eZWc|١~JuⳭn>@]iX^.{ Qڕ_m Z<]٣ )*(~GF_]¾>ľлI*m-QjNܔ홯^QAM: nIX2&>.^~fQ[L++Qж߶!E@D`B- YcD +8Ę1Eet1H2L<J-Q֨/f 4aڄ)̈́9sfܔ_P0T)Q7#J99z䠚P(VMZV3ʞMڵhˮQXM7]HU(MߡhS&ōG4&G8"*A^y*j<bÆ2T(FIN("(MI'7&N@_uvgvxqǃ ae%onSfO<7GD20 0ʈ*̨$/3r&pB0Bs)rj*Ļ/*lYLFh)r=Z<* 822ŒL3-!L͡Z;JRvSˎ30DpMܴK(8z.;dS;-*-ʉTgO:<.B#, 3FJ2dHėDw zI2AR *PNԧ*!Ag}Wiu#o{ -|B+StpzjO/^KsD GKOE/Ԣ"+8EABSR,W0h%K)Q_m痉7"T%|e;_jvs֯N+Ӳ`crLjwyHa2Q Nc;.;1?^Gw3)'Qwn?RΚn:Hv(&4bjJLJjUVTlq9YucemeZ:0#B᳾2"XD.RшR &$hq"w($g=Vb>~1^*Ή]DzRVvB bs Nlf8†Ɏ&*];N0;{T"D&'##PWI|ljv9?sW9h3/.TJ/T 5S 4U梥`l ,z Ad-/xQ ?80Z[ۚbK`bs>iHJ/h>{6sO]*>*+|i62&flẄy̻Mz.Y#2ٱMw.8g`AJ"=̦.3e|,WT˽f+wU,_Yd0Q|)l%@P'~ͭ˜1ѵ* 3-H!ąP¾а1@USz/LOM$(fS fC3O9u}Fdj3IIʉsmkjPvs jK*^S;NqM^\[#=*< fzGR=baiDѼkHD>=y]qPUt>{$TIuhcTWf0_Mn)$]Z8dN8ԡDz+TRlECz[8ԫR_6`jY#' FPLTYu2yV@oID(MHm"@1y:K]0C%\[2_l Y%L4/i'G$u֨81 Gv%ƛߔ MSƦGӌwgthZ21@g#0̞~MDZ!6eirvU`jeͫ^=bÎ#v;_T *Ff8%gP:ͯAR{xmqE75s!'4|柺0E|]YZvi\ Mxy7gN?I4xzM*}fz9 62d2Xtѕu?J9~iݟ\LmKۤw;Lws^7׹FЇҗ^}~o<3F_˪BjT2֒XS;5_(@P_ ohH@L@ ld#j:,|b@1`аIA@_@  [cB@.b.PQ.XG$SH> =$ísByDƛIIFnW2yL*AZ5TIU,J: qY Z opŰŦc{^Ļ @!RD8)$X>=@BDE\Hdd=Ilɕ,0#%YKH%Wz%!@YIY*E@Yl@YtO|τ@WT;faĈ46O_ 4F(ԈFIз\RDbt )HȌ\G$=I]JJ?/kSIZSM|%(EOS+Ϟᐂa<9TR98Ѭ׋{(HҰ݇lŅHێܞ%SH^c=U^L`?ՈQLj@-Nhtٝ:NXlO%ZYmO\JDdH__ԈEJbN5g EmK5UF=UK^=Felг e-YS~Uۖ@-Uc0e NSނ~AanEk alVnane~V$wȸʝi3 .0H6|&a|C)`x=p WA}5b$xgRIMI{ؽ]F-nH_8E\忴em^d@4cX:C G6^J~dN-@d}iZ߬>@T40e3Neu=6>}`ch`]hFS)NDܡz QVgpo(6t 3~VRy}Ȯ*]uИڄy͈$yg.]N/C6-SenIn|kC"q5gEyƎHǎ$!E-e$&di? jQILJ^,8yJʓSbժ4y [٥hӮ]ktoνr]fx}[⸹W0` 3F|4H'U:Hs%g;;lӣLҦU5Ȅ)rpn*bK{HFC}g?L3kuS81Ľq5$.aB-B-l(LJ=Yj<4cOAS4fYf^W[%TfHZbY$OhXf%Z|U7RveEb8z8^uX`IcDF-I$O<Lx(:YkZ-щfE!B]o)aWEҥ}νE=Wuz^xDG'Mu'{{~>_"S- .! P~!}"!YQmd6o zZi8=j08H)|W #SZK^uj]yXPrZq-eiյ%3\xe]9YP{Z)X>}_;:(h:ڠyи50oH(]huą-PE7wrͥEx/?>-^]wܙ]t7J!N D{܇%8# : faD;*h*YG-8d(<)0ĔE!S=qc d aXZ~/W@_D\ȅ>s/M]io;r[@yF.]4&U/3ɓڎ@ӼP5w2Y@oR:TN9V**g)~{8HS pJ `>E#(E7qZ׷5v8šd*,ZSJJĂjŰ), MV)(MG=d#˛ƲO,s˖>ϏcdŒ_0'/"ù{l>Iq8) &$?*KIGQ, { mQJ0y$^>o 3tK[LՅfy[ty 5=؋|tu<&\}.uJr} DNg- h@?6Uvh+..Ee]t9L4cecWYxc#hJ>)(=雐2:|)䓠&l^}aql onv%ZJ`/#&%G z:2`O;ǮCЙ84_l륌Aε+hW(& ,daBXoÆ8øj S٥| Z t㜭ȣBZ+bm3DeԼh~xnlqU1#O3܌)}/uO%A>X)vJŻn/4A%h?Д&EC*{ݗ>͑S9J=@F-A(rw_d5DmXUlRe^| (b"j֚s& .q}1Pge1@ELSҤ5 3l$r-/ 5Z+c^f0g%s9  ׄtSkeew/h[W/n)9GN13ޤ^ ߔ~̦ׅ4$,q6#j*Όw<׹ݘKսjt{$om8 |ڴ)\D{xj8=;",Ǝ\RzHexcjG1W3ь:WPy ߳bs9ENB#J}w-0}IGƭKHΒ~9 uL摋y[֥- NyEݚ^"n7s9% vmj_&ӊ}8 l؍]EdA %@%}NYmJ0uQ ެi_9X\ F}^5Ed ~\R PiPR &\^\/ ߘvAܣT}^: P8d\e>Py_l߻mR[yVٮ}ʇq\d< )`= -t8N!:Iq4 (uЄ^)B֒e⡪ś`Ϲ/6a^"P,E4!c6ʞ^R2 N7yQaI\8VGaE(^# \~53 Pa* j0"?c>֣abJ EE.B>Ed0R4"}5E$^P}X;) P `("n2b(HNnkCdB$PaG%n-ȡ֠G#@ .*> ;.\ # ::3b:? /Y%^Y76e4V5eĉ!^2W~/ "me.#/#MO6M0 % CREx&:L^$MFŸ"Y^2$YD0vzHA7k: FBiMVNY_DBd Q"8dS(`v+dca.#S*>RH c3&a`E^gXPZp\Yz#̞}\hX$^Y[@h "c2.JT.ņZQ a F&0CVdQ.ft(Ï9`)⨪\$(C0)Xf՘|bvÉ=yর]2,ob$ 'TM"بE$BfMOJ'U'(m֣+pcg /'1Y-VhnYRe}>4ޡu[E8f}n%9^&sV(3z[|h=rTR%?" @+fJt2d)hg+h&ib$PMjE0M #?-'< R(KZ'.`jNkdfFjdBM?̫fNPas>ds⫚^Dv*( jBvܝV֪c)]̠NVfZ1 euEv,e[v\F 6E#waQ}}fʑgy6?.,T.[t>Fg B+*kkk+Mjߏ͟Hd5$E7tÔژ2ip:+*h.,f*A$tVhb.$0E,/R>."~.6c1?C3Yʮ릮E&%/A&((Zl[϶&f{"}j 1lv *?&lj_Nf&\Z(tg$6$s2Hr-\N2(fHRn-3CRHt9./Eb/_YlRH_I'lat4p4cs?s341#?M/E¾"cm#3/P[r ?`r&ː6IbiG$i-o+^Pgf:`$,_*$,$CNNf13' BsL?sp4KŊ/54Iv`v_x%Z3>6`.<.DÁD_L-h6}3P@qmKf6EÓ+^;( EӾR8o7<"@ğlB ?7'qstr95\?l q?60S ]R?h؛pzT^03? 0@(p@7oy2(E ʼnR,e FRK L* AoKTqV .I|`j? ("ɒ);( lϷ@ []p™+&j=? Mֵƽv-ͯ!t\s't'ѦI$p8- /H5Re3(hS 2Ş:&|)K#BB( TL,Rj) ZJ0XU[Ŧ8z"d; )ꖁ鎹;e3JsKZNkR 1i8zs5ڨ7)0K;5 /j!̖2<4D3[ 5T=d;TM.*b /2nUV頓.ˁ8Plw;ם-K* !aZh #Z bjv۟ $CJ-p!1 '\)ȣhY2Ekb%k[Z!I(2h rb̵^ט k9g-glkV*V !lR;Be'"=a(J.F\H`'XZRWO 0HSb̊V7AdFV˸ }%9 ao:ÌEω[Y&DY(Px8iiIGHBr9*!k Za(j M4 ¶-Rpa-7aC p2;ZDpi jQ2VOĨ˖XcS:TTǿ44H)FFY4!n\XѦH4 K Oɣ J{5#UЃs<(^ (!F6q`e57uXq?VF 4;p ktr,ˎQ(61$eĈ^?xQd߼iqbkܥE:m5'5\v0F`ew> EFAbԗ!vKsmyz>rd7UYBM2+R!;yMJ4Q/^[N MD[թ6TPDxA,Sa< kMsH?VV%<E`bQbZY5WdV-Qp1YZK請ґqXZKDى6Ef|Aɢ*ċBY A>[my'Y惄:;ւ[_\D;[g=/T/Ñܷ@A*$8X1HS0/9 (JK7y Mm6bvWk_?2U{K" SUȆc>uUaD]q/^,LaضXm9ZNȇRc@jRu,%`Kcv2bK]R7/| >+4/훜@,ŏAHyolSR40?MRM( -/[r<@<}yf6qߤ 9>C) , 8 6PN "axk ( +t +'""8_d8 yfyF-F:¤ P||F@&  =bL LϻkzfA߲ pzmv/77mZ"N Lf:eP ֯P,QZQf+3O R. مvk2OR ijA,^\z#! ߤ ܰVoǂ@%P'J6ObP]JLx"Ci" "bhx `x'ƥ¢MàF4[n.p|>Mܲ1 ͍ܤۤq 0h*롈! VR zlx,0-pixab.(OR@R ``) 2#Rla b 6+ D,ٌG+`Ko]n hQ .O``~7Q RaaАji}C//K/!G"e4W4Evj H5 pm e^Qw2$ bE#v8%̮JF!Od3a:m#90]鐱 ^>jR' .'c2,x'a/([!p+NT2B,R2O"qRr .R`@+5qDm-jk(// .LDt̸btϴbr R `a4 Ws ZR=ѐ( 3SK8sT @n sS3!҅@v )A.7() b_,yj- $~!:IhM4 :(-³ȴsK͓ӘT=0M?@/cn'@e(B1a/PcY(.Dr+,;TK4ME @\5JqiZ(Օn:+Di++2_,5Q_!/Jq`ճt`Ѱ PC5v#ǔL-6ZA5(%^$Odcs"^pm|ǩ4"bSw.0" @P8 o`6btsR:6i4 72ܾ U@ovmq?0^GuNvXn.ATvoiA*NY@pp Z^\x 00s2_=R_Quucvev_ `!R,{^9p"Hu%J1Ә2< "K1b"c4Ȯ-vMw|dgBd3O " ر C"+B:GJ v jôj331TAnp/r06s2luG'lpWu.koYxX1Bۢp`to8mxt%Ex{ZW_uqbt[ï-^^A^_ 8u3!6w$w !b}7AƠPtAژW[`%8/z9t+JPdC {m|E۷]$fٷ7W"L8#8CcW$̮7!0LK j9r x8U&c1zSy-ҐvIZ'gB^Ӧ'df*e' BeױTzmzڏZ[CKWɶi-3T2VZJMҖ !]/{.ۢڏ]1_-u < \ə:Ymx+pS{pɚ;!Z#ۅ1{9ײ iaG\r+ s7!-R|8AWۘ_{&Rcٖ8at}ĔS9 ]r-Jmq*.!+t`Z"f7K2$ ($cI BxLǴG9/ҶK94T#aV=?ցc1U0)x?@nѺ}o-]R;Ѵ+ǹ-YQsQ]3A z8í WxkX)r/Aiux1z}a1SK vpOkN}ͷNSױCJ} _]>fAZyP3f b̒n9P3F 4M ^ef~IZj ƔPR8YAQrpĤnZ `ouo&G*rQ!խb]P^]^Y|Iwzy{v߯}GxIhd1`S^3 +E+F'p5sBU`Zshv]}}Yjm6VT 8ڐ +6qDqRݸ#R ҔPCV[*eA1tC*D7:Pݧ@XB?]|L+xxҺm:~ uY0- bT?V<WnKi;FeS#Q%͍\ZM)jU~UfO5AV$0qY֓a}s OZ&H9XjD2zeP)GG)9$ &MhEcҒ63`hx6nlh#@?zxC5$ (1M-K3&%AxZ E?ikah ]eoaE+I]NP E{7:&`@ʌ0~ɘAE+T-& 3X!JJ5L*ĩPQ )b5bj%+Rɦi![էg~2ꧠ-njZ*#5Ԛ&+J j2j%饡Z 2JQ#7+x &C_1v)52 *-#8X( ,m,zao3 '0⽒Sd[y 2y!#,P\Hp'3u Ӌ2șmoSfVv8Ɛߠ1bUI9̋ӟYo$Uq@\d!\IGW Ox<!4PF6*q;F9A0`  #)dK CÅĢ,5Wk^^A W%^CLiv!q2 xBмAFЁ脑cdlwHf v0̨2*AֆJk a}hD$@HZH`:Pk_C@d6}Hm%-cw~"iF`u([@8-u \R\f)0a^׌%БL;]ꂡFi 2i;;w==w]겠xIB^T%,Jd r@ u BIMrARtkl0%KLZNk,cjssL%tB5ܡN = Q=uN5 @rE4FHDCbk^\$`mG"U ma\B.ocُ@.2^CL,]im4Z4= ȅP-?ڛ\ٍ|p!@{ _7sn]Lb3 =]Bp ZG%[4 [$TW\b3b@EC(NE ط?[c~#B*$.2#V($D@@bq7VЁԭ>¶0h@/ %jVH+NR !҅Kr.6@*8 #9ɣXB9A9HzԻхr9QZJbaZ% 1{>ҩcB{Ŀ1gʋS%;9;L]«))Sa8׻E5B< %)ٚp\ѩ9OD4 +P:/TF2!@dp!pI!II0B l 7əl ҁ9ң.Pzb89Ƣ*s\cF#YC!󥙺=Pj\8FZbY;-|쨅dWH!ib{LzLrִ]+]cFE۳=Y\iWi׹; 49Ұ 1F+É?DQi ZS0"(w{I S8Stuu35j@[xК//7uB ȷ΅x*[aSK,":y,h`,Ԣhe&6j#3?_`.M88B9/E2+$܁I4K$s0A$ߞ _ $̈N* !|9%g5[`kW0D}* UR%)C^!?$>.…ɠ.ɑD9;`/@V`!IZ*d@ZI-# 6|HU]*RrEh@Obh誶A i3jcJ[wҌ gr7 {+ՅhYLC[*\%*@=RAe=Xg:8>EPI+$J0cBu!*Iw):9ֱ')2O!5b:%aIFӝٽ;)Ȓ=]Clz,Z(/cXI]P0Hsڃa L6+iaӵBmuKP4Rc)[^ĴO3Bԩ3.ѩUdVhPeE#@!Dev3q;޺^kp@[`@.n_^1[7 ʫd]oPʫfTP9gccSAE2%#,.@tQ7RQ10/Qp0-ʌ$Hm%4C3L.ʼ:ߩy9*dV<N/i,TZ2R:-0ZVSZTR+k2I9vsu9h9*-ޜ۾+n,Yce˵+-NG>X%EY'#[ٱCk0e1PZ*(!`(ޱΝ=Kؽ[>K&h7L3-5fUǃۣ4#lSvEPzv++|T瓧|I(>#hhp鎆Ɗ+x܃h_7^wo*Έz7R,ꂯwJwEUnv+ލxef+s!&Ij^o+..#`f7 O 1 3(65_ PBI1=eq%_ƖrADNW?tĞsC[W2+9 +e!PԺtoSIH# =!WbWȃL]5xĂA<갂0M*3>ٜY>O lۡk\$372-AkhlA `4 wX7!).8Pk*w4;>w\+5]sSY8V?<aƉhМdck?[~"DTҥ {X)ZX, " GhI?T4Rf$hDs?whܡ-L0~mD1HM-[ ! qAju"vˊ՗/̘tvXEQal&LΝht:.֩w 5I.4~GųB`J~'yǜh4Foߝ%KR/6F5 ؜#VؙRBDA?Cq4ԤR] MDFy%XYgF-5\2 ?-CE0d w+(CAF!dYdadH!E7E2NT)?R~d0L I*dʬ)$B4;R2aYR@eHyc0csYtf&2󨙌68 $\SwoI#?IQCACETBc-: ;dEE$.˓NqU!̈W_D-ڢFB鷟LWSq%,PR7-EW7 AA/_KZB(^>Ht?W 7ޔ7?uL^@JhZm8Zi2j\`uz=/wz=[r]?˸t"7J4FSEE{JxlT ǔA"2PA]PB%+LpAx4G(d(NF89ed?"vՉ|y|| qLZ$\{E~h`4%iY7^vY#3+)9eN7A:,"#~wf ɻMV$=!Y>[Z7Yq*4V`Ҹj#K(R#$.% `xe'B2蘟$ y.ń" 3V bo!;,. S.4 Pb}`ZB&$%!$ NLR &Ee 3h?B2:eҁN#t*=7K"4Fԃ`jC"[v\;=KА3TM&XCn E:6@b&~ʃ\ȭ,e^0!P!;H5lE ` #<4!R(D&%5BI]ءxxA0^BZ2."LQ)H|ڝ%zҍwI}WR0.7|!j &_$qM$k0CO:X"RE b"#W[pIHBjY+[!K]jQIajXHiR* TDvTC#63-)M`v 40&档RljSQ~f)BOQ{ыbD:>4DTfCf';ҩ2K"Cc*d!Yd­Ay07` e3Wd a7e6Zف\ȗk0Pœ_B-1k/3;$dWK `DfYk[moЭ(,P0a߿h`GEjfk*sҊb8%神9"UKQuN;F>!3e'= .Dt#Pp,٠8SFY|l ۯб^]m_ENlVe[n5B|A c r(b aVn~lԈm]P\-^ A $,Bϵ n!F{4tl5`G2Dh_HaHM4@?U-\$HM`rQdIeEiL` -(0F\3XA+F<4""F[&AP$P,l\DUru$Gz5,C̅%CID^%0ɝ+oHԕ/Ap8G4D .!(B&#(# K.)!56P´M1KNU$H@@zJpN _HЀ;\ߦy >oXEM4,}1K-K ?AdB  iDYP[ N 5-X5 `]qn#H%H%#`nـ@WZ?d%qX(eWZ [ZeUb$0n#U\t<"R)bD(B| ]}e\q†uIM pJ _ԙdIJTHy,yfXT/Ħ&8}TxP`B$2fKXQAA4)DpGDC\NHAvF2;3ʦT' IR%',(t!W-F`%f䄌(9PD+@Rd  Bh(BPԿ@^h1h鉙 >cA$hHBȣYOAV$yTk?‘rDKrY@6)REȄL meFr1`z[ ɠ?a bZӪaX@vB(,.?j(Rte^ڀ$$R$$,A R$xĦ@$j~qYR|9A}ET꬚۱]B\\j%PypNg<+hg,u8_tTG KiOpX$VmV+ď@OlDHJi5,+r3Zԓ5ʠIO% d`ߧ4xu,4(CWD ݁JbN)/iAA<(d=V> dHh`lhPxt$4 E~A޴8apZD}fRHTRiBxNؙij-䨝嫖 IP` \׌4,B+@J-ABGbAM@-8L#^ڃԁBpY邩d0۪YN fSz[Y19 QXdA@CHMMJQU^o@v_H9EB~؄u~}$LœIri|U^ i'e% V5H< K̒GVg#/x |-TPBSBg:%'O ?k#l++01 YShtEI@B[NKhNϜv+}3~%GcCJۤGvBPAHEJpEI3tB\T@4/BpgPQ ODD5*|DOB]LMSPAYPAD+^D4?£. 0@V0C1lt`֨22IATX@d4Y&.5a%8kӏZ46~iDЈF2dVr(u `1D ڀA 鱿WAK/:B./
Zyb*uYoY!%H:,:\y_njcR6`C$ [`H NfmRѺ{'pNT Nn™RE WeC TeS3W99&ZK)1N9iNӜ=TK٘y+0;S3N9[TU;08Rmѥ+::9zw+ɽXWtZ8EU (̭z&rP&uwxw)dtb~-eX%? trpc@M`ɐčДjCcٯ?.ǵFk򆮃nP9nkǽVAnNo , "-[-i+59TOT1\<7L+qM9ΕVO|뛴fS)Z}Д4Г{I%Z2Rk(\U[4}Up鞌Y31ç/0 @ on`&Hc1=`/F*lxeS7FxT.2ɘ;5?ʣQwݯYakY(SB䩰> G=o":== =fG2AH/&:3kpiݮLu٫Z\ i%*X6*491V61ӹ61OPK td`@ \`u PB2`OCG#G~0%K>D3nC>Y(OXJ@G"O:8>0`*ԥ1׶Tǿ%dSF 4EDSQz$@K(YJ4SiFYĚOGC[L-M*TU)SUTՔuj\sEW]c}b`OybAe5fqdI6SPYiKpTikXAFX[u"pr\s垀mApaםgax!zځ'vyh=}ID)}SXr,2bO'{ Gш T@74TDM7?xgigLjE&IMŨGbXhz pS JQcugM/fDuA xFu(V=E9ҡ/bCD^L3UE0TCVNFM#j${W;&֏fVYUr=0uv Tw¹$&eEAhEFeUYZ Ln6a/} |:p\*׿ (0lkAl@;@# I<{~M@R? @3L42h`,?bS>´ldmn3 =)!EaH ~d`cZ2IRJ"(L%?eY a)np)ڃFIGRkא9(F?A7I~l_8ش&$]v7+yIz'* jce4=q28d ȋ& rTFΕMV~\rrBI1ULA樐)0H{rTͲ`W"M&EXF lkq23@iu =HkDH l2hA1D)J70$lp?Щ'D!Xtv>,DB`E6&eC,G5D,@ ~DTJUB>TPrIBԫ(pqۏ֘bjmj芍X TVӁ:w6\p#\ق UoHƨ퍎-AEnrkBLOySNi֡FT(. [(eը3")T2#USW|ٽHUV# ]ɫ./aF܀g\o{ "/e ?Z sA>H; OEpN:ix'8zyZ;'Ox3?Q #&54OqeT" 5UQ*թ^ƩYaD.CA*<4{)Bk\V5fdTKJ@Ncc$ #i6%6a 45ҕDJ]r,mjmj* GdgTj. ST/vT{Y-ēw'R ,ZM^=v!(>^anu[|rBς7;?Eh氾?pG.!#|#GNb3#" Bqܑq)ts%S>2C>6=VdDrag:sB6dRE TCD7>"gw(wq(Og5BW7#Wc5A"a8"$b3 sv7gG7wt$X$Q7j!H|GDIq"6d$[IIDIF&<1cyGJ+y5xz:j*cDTFifPg10a MTTy4c5@(E'B#oWqvDF?Rav.}Fw7hwR%A.7t6$Ɠj1{%eh% 6F_7'W68qXI1[rSgD"#38tkLqM LA)eLė\SFF X Ny"ZJE*ֈA}7ٷn_a:#Ci=؈xz`bRKRNd00S!13PrM5sBs@g77h. u{tRd@FPf(`)yUvZfcf5i#imd#'JFchӰ1YJG m=I062XEx~uVū.xfRIrbڰ)*'Z/Z!)4[UTiq(2ZA#Vk *J!ʗ ˗Iq\{I{ח^AX6\ +Amx.1.}R-IM"FNTSd!US|tچ0g7GN.)ZuGjmLq;s'jt9˺;i$!'BuOhtG`Ȭw58/Xgh GeYv?dhv+tvtrG@6ecA6dՄ$t8F?A);M5~,G^2kYVBdg لEْ5aFNB*<;Lj)뱛wI[xq4`%9Bc< E^-˽w \˵| & ]xz*ݎ* M$6"tH!21<>&+1=wRӅWܩ `cWj5FFĞ2#*OxK&WlՀյ(1j-$w&uesXHrpmGyqɑ:xʙg}FBK28{%n&$$ZKX}MG܅;HшD),4'llZoI;,X YZȧau|{^ъ4e?-n},}]&b"ݍ TkГ4Ϡ9Ra S1)Q7$r_(# d):O$=taK(m3o ̃SzG83~fcFЛ۽6+w&}G\M&1f{)6y@>N6X'EiǞ9u45=p&^gʮ4KjfnLni{曢4D LVoZK$α}y4總Պۡ.E_^.^3-^_V﨔JWb(RcIQ?KL!]? ".O1svv\7 VW}6yZcq4DkOSh$~u2v>r#HһZHj$^`wtt7@yW/]6ɼ(w$JluՄuExJ9nwqRn6/Xh.ߦs.EL */+/=jN3nz!'ta%Y`@J-.:t0ot ڢ|h7ȡ8_t";%ȪA.4DIP=N%)br *)OZҜ zj +UB,ǭ,rȃ !Ҁ`l ggPGʹ̳lŬ\Z,[ʀz;^Npnd`d!Q3oCc(bpa p9?,?&;!;sH@tm^CQEECq@vȳ9;f㨗kz{[wˎ9o*<1gfh8HѕdH"VV PB?2\(0T&K!IFu 2UJ'QAeu\+ lu֋B`-A2! CcK,`1zl*7Z־8cmլ?[x[7Tf9~uxfpl%"OulD#P!O84A ?xP&f4!!cX d9R"f` ԗVhfAO&XĬ1H?rZU65MF0IK^|җ%4Fɩ &EM[pi"xjHUO 8`(KLrKLѤRILȜ "AR~**X Wf5`apXZeXw;x%C%Yo@ ryawg 3Zk>XK] (T#qaLO] vS(3ÄV.BԤ3@_";p(!#k7FAFEBP3јB y T)Vճ::j$D3QfbG?g<!7,(F/ \(;r<+g3&BxB@Um}sd p5+ _#0=MZIah ""vMzPَ  ru/;1Bhv54h4:"jnaC礈D9&0=0lh!6kȁG,qO2.2E*J\4j9.q]ZisYZ&3[ٺnՅ0dXOL&h`0\DPSNVf#' Q9D%QT5*J R.Q%WjYVmQj<[!.S¯b[/}ח^RZY (JZ QW@mYSmAV%Q Gw 0=* @!v43fzJÞ Gjц,TmJb!-PvlQCD/h)M4$ r͝x"G>: L\C(ʋJSllA @#AܠqfjTfV䈈!^Q Y]Aoe=RH?2d$\20(FXzRT%+ nUC;b jeF^0O1܄k{IwT{,ZԤ$ 5&u"옧O0<Bz}  gGQm^{ 6m'A `-C$y]4.=.0 )10> 8۠1#r5)5#A=?}"ИlQ8༌3p5kq2 ˓y//PQ;ܲ3A@? ̡H$˫pG:I <4؝SjkrBCK\&eI;p_;Ւ,{XCoZ5t(H0ߠ1J0t,{# z 3i.E4i p3 |JᐽbD2͇ULtC>T SL' 7[)+M 8)SS 1[6鐎^!#ѷwQ$cѩ?0ǑS9 d<-ߊG G-xά 2)۬Lk+?)$CBQ$X;hե#(,蔪[0QJUTي# {h[a@^9yPxz| EiP9t\httIч0yQ9Jb砵JEQF<iDcsh*ἔR /H\DT1PKP=6 Ë́9shBu!]sE+{F:oԇ 8 ڿ?SP辚И*'p0mqZdWx&'KŮ(U*9̲?q>@$EZϢpY:`$I$;\NyV3Hi%I(@34\1Y4 _y  h6hwPV;7 T"JkY1,J01T7 P)A,Hx@110WG<iRElKmK}HXJXREYpL5' ===˂#EÙS.8>Y-ŨRB#SCpmQ N菲-tIW`U\=ݹ[AAXNܲ5H8+ֱ:M ,;ya Bk@͍BVdmuÕP1bLpj uBݍ:ּ. 2A0VPE <0)'6R=Fa2yH0K;Z,Y-Вi =e I2MC"`Ƈl3`VdZOhi.ژ&@2|q1N3qnqa^&l9RH(2X(<\к%a, \H3~pZ\6B>L<f09LA١=l;7a>b$ŦlVCіR`bl5eBgPOUet S,P2܈Zm+ū2ALV`Uφ~<3^O%Ɗ,"и0n%fi0f~iݶN64}zi&Jx*sCw"i]IU'jcdA߲Ρ=]($")RbgL(a)|ٺ6`)SCDRcްv_ԡ˕Ko ]!S9ьTlNx[WmTUF5N2[EFHK:d}3 MyŠR Qn@ ;ÝvI`,/p P~ cӕ8vo- t 0i#po"*/J08~c§Icاً[up2K0X7Mf'6Zp8uXA_#>M'ULVpo)Wk.E.`.$d"ok@YmqƩr lӬTOqFfSNOgۂlaģ7g#Wglg0Ts(Waq@s6VNՀ2cJR ՁQ:WXApeQ)ۈXp8c9L8 buMogi0Y5~{Ƹ-4|3Qc^(CadH^dP;`cKD7̺? Yҕ5LR, Y )IF&;j`TT:-lTww~`X2 NH!12ra -GC-:t")"eXf4tB )%m@uRbP^ziқ*$Ff∐%<OH$a@BK;](NDR9-EMDRY)!Ji/SCehXtQJSYjNY4eV]tU[: ֖Wc |1Kjપey!TI&v,gI6i#3Y=wi7.oqgCs87,5'\ׅn%Dll|.6 SXm $|&& !7ptG>r=hBaY4)h9_萁pf~!" nТh+60G7h5)I&9ּD$J$8eOKi!,!6ay$/lK$$ùOvB6pp2':Fi*XT_TSib29I/hQ?r_ T~qИ[}BX ^eUzcnうzfmk[kdXheoۛV^ ʟΥ9Y8H,_yl^ï~+||E@D>p;Ta.rSวA)|H4f'PX82P2tpBڰ,BHNCh!u:B4"m1DbyN`X kV خE"5b<M( Ar#N,0 Jm5o* 89Ip +l<ꬍBRA2+bT*~WNvqv{Ua*U.Y`JLdBi-fx@i"IU00h]+6quk_y\'_b/o_}v&?B{BսN_Ad1Bȡ)yO '6!|o>H7(ѠJ/xiLS\QH qV -%|zIg0].sW`lu*S?q+]6C)%iU!yȟ\r%TKڲb^r;eCUcrZ +"cZϞ2 Elrz9j ̄܃M8֜s||s7qgp3焐3wp!k*P֤"t|>:./ V˃KCSCPZo2YP BaQ"ʨL6Hђxğ9mSbfP!{4MD֠N6 TĠyTpW7g'2 랺(=(7IL-+&wPbC)P?txU߱xu2rQG8F%4LFO>tS1KQ&,SF^K]80]UWb;6%寄gjt▸ZEY6-w1EHo|Ƨe8i2FwI;5v4Z4qZ<=WHXڣ56T@lL}GнZϸ݊ۈGPBlaDBHI ?H = XԈEI`^\lal VXl%X\e'^DaDElIEmV,_Q^MҦHJMyTJҬt *_X ce eNTʍR[TEh!JBԎ0ƒDjprƶk/~\ rM| fvTc0u6FWA6EM v t\D ی4ވ Gbl @K N{b* DPTRL ը Qإՠ L O$Y%Κd($j}abLnj*.a(T,j兪_ *záb aO_ f\gh#:Zs%.i@}sV;byT"lfVgL f] R1=фJ f@C,Zߝ쟖IgylMI5M@$nRč(2jا %^YM~P IjN(ma!Fޡ$ IeSagҤCg$%(Wn0 GjA+|d p孴җcYDWb5VeQ.%0njZd "e ʠA!l< p- \Į&A<5Db<2y/(Z)oF @ IԍEPDȂ@LDP*0K2@-*'Rͧ|O@RXxݠ-!q荕Sxh[}m\׾Y,"T6$&xZ@JFN-%I_T(` ePH~\Up@ߎeqgtCiT fT`Di+QixWs}r6UיRHuPTI`rMtHGx5L=@ф$ MHd5P߬%UJMEyHh1 jۚ!W0 H:/%fwh\m%9-L1@eZ1cWnaبuي(Q.@#1)nEjڮEh1ft*k dx66tĘb0gDC,Dt=@RPZ}oA}ߓ AU/O92 Rm2ȢJVY*2hlZ˛6-Kha Y0zꝔ/*YMEJ F 1R 3$2 _ ex -9Y uii_ dAYasX+Vv toU!鎖S9ϭ<@Par){0xU76!s|(`bS!w!Tqcۣ?t֑T|Ο:O|zlf%<%7rlT3TKIH\2MTDHcѭ:I*K\MؚҮ$HR-ߴjI<J^ 6! :Nď^'X*Vɰr;㧦[qBbV8Yɒ'ƻh3[A3A ٌ<+Ny`ե0 -1/gP \t@n$wu3 ׽0/l4~yKy1Hh)7Px1&x =<Æ/!wJ P&3A?1`8`ϥ27.yȤ$TϣY1:kMeihѧoĸRl[ ޹ q|p dRXCpO1*fP2LpfʥW^qg3`q{XB5R!sߦBE@1ZĈԍ~#{v}A1ǸqC=Dy}A=DAȺ n#3pA .c A!DC( : * /j:ඥƏRK'jC) B++&릸B 3$ )tr'")В +L MvZ*t,̺X:JM5ל(Aʋ/)LDESL3I)t 84Sl2KTĞM" `@.9*Kr[Σ:x;bk< N#mkZ6"A>OAQZ ELE o <@{#CtU4Q! BH.˻.;h:X=s""!(jґ:̡D()y0->\I䭒#' P}Z pIVcZv9!uIo+ԯ \"USfLԽ>{{4X[1(A pV(Zk-k$^`9bfַ&Lŕ9mƶB&9.c s%’@k9Bo>Q\ԘfUtu%"y,⦙!6Qi }=ImA *kƝhCemJŞ kR̶[s7Wכ:%\pDǣ d[*07 8B:@$bQ0y+FRʂfF:ɯ= F^O+o Tcg+J$d >a!dVB|/ ^a CO5 Pxàm̶!br7%&8o6k -J'g9Y=EK4ghO\6g,VTv6TN.R6Mu4f٣>qG.g^Ns$i툑(?yE!*h+ǢSwo%}7GEMBd8ub {]d@mGm&&L~ldڍdeB'RFlldb(O&@0)V,ޠ JޯcFPg,Zj,^kT"ʞ,*ɴܦʜ6p[pk9 B*GxYH(YC }.>k>#\nPvq|\JzҲvng_.xp_N\пƏäDtmdDB&i gh.LKj&tB-Lq‚H~n(Bi<(.kpm0|fB2\eU pDOm<˳bRVKf# +N>c[=*Jƨ j qno%!e' Ьn|n]%kZT D G/F<ͯz&0VB ~ Q,R%'c?6M0JʭR(G/BNogByfDgj->CG„g",\s޾d3h(jE!lFe,FTi5q|h4'1h2g }O6L>& jWE>h>#Cs[  /0Kxp xc^dxjvR3 /D. G\#6)ICAiB00dd) PtZ̍+<* 0..$6 )B]Х# 76Oln0*&Jf"+h>0+e@ib ˂MMH.d8@3?)2؎4KS)P,,stGkƔ*).8r`A11(R{ %uZ|20(qRBD"Qr?vTnt\4k+=vjvȋHŋ $$B$c,ho:,0LBLTO,nX,D7c`JO |/>II,0*O1҂1kfn[>R#$AeS}B/V4r.vS Pp) eDUo/ȮDc!*-$ wTL@]oP.L#NRdB [F_oh@2$ )"ݸKdRvjj~n;;B$GpeN0bRLl0_ղ$+rHlO`KnoF u]0WH= UG6/#?PW451A*vAdA$ $/N3EH1Of7>rNn!08M`D+BDhO.տ$806lW(7t"&"*s-sup\keބ&gO&Q O eԤX2քe2 %>?>S`wk5s-C$L76e69l0s ˰ mv1Av{#kŇQTEŻD_AfKEfX!.MVn1F1d51]0\w`lEV<Ȧj3r%b5/yqw~&[ddD4kQ4nBoBq02:Z-?puYuatKuOIHW }X9#093[ x.E_s6lE^<$%{m%sC/_-.> v.Z`8 J$DH$ >$BoWt@'N ړ/fև_o UXH<" v7|ӛLymRQÒ<2R?zu_u7ts1}y? ѻ7TkxUUfeVxloΊU"TH7x`*WiJVٌyS60D%CAAU>kJ/0$7B 9!rr1 V[ͤYyr\㡱¡n;;cB}4rpD/Z-Ьܗ+@7XZ^:}L@UPE"wO4#4?fק̃7Oxsw/註TٟfY/w D+8#o4̘t^36ؒo*يQpe(qJcRPޅh9c><$;4!zf"eKky+E^X=QdY/Ic#܉`s(NA}t#!|[V, qѝnnw~#s2Ρu_އ>:bQh.^SP,1w`/`-㦱(:ڣڇe&L84}/Yrk{R70d %PI@6O8eNAԷ"j;nH[|4Z[-h՟zpVKPW^mUV/SXi#AqCE7X`^V^9X:CDR6ڋ0#JR[ymγc}ew_cN穦?2 *t7< j"S}G^;U} @h[Є j rT aFiaV!yTP L;SN7pJ3Ƅ)5Fd\eiV9zD{[qET3hUhSgh0Zgm63^dD6 @E?ۭicSa*zߩԖ\a A[&-$ړ$%8Pܴd7ېQ:E(7bn%DJम* ^2Z) hH`@Svdb3 p")de&_W,xwk(<jg6{W4J,Vb#;}o}J(ȣq:OcLÝP<++ɊTZx v6D z;ց $Xq| 8….Hҡm[IY4'SNr`@k F@.á7xLL933DO`bDbkT@hIK1%w&y\V4&x2ʌ47H_c@-Um:a?섨9K+*~M`?[+IY e*,)QTa.TRTj媈[H9Rҥ( J+E)rիR1썺 Eg=~`y.rlD,{پ&6D_LPdsȝZ'{ڈ( "Hv+MR;EZkZ w nZ:PV!r{ +0K3dDڥe3tvY,I"׮l+;Sn;)RnkIT2˅Wn+pJ_ )%' /s(N+*A<)ѷvBa$.Obߤ `qEXkŸ.Nox< yD.$+yLn (KyT,ky\ 0yd.ό4yln 8yt?AԈ ICYoi_"&{MMkt2)p; W{D>=p3"lToK{ o) w?p{rHQW0P246ju7Y .=!ڍj^ܱ i;">A ^ƿԯ;S3U}4AOGDnbYyzWXn6w }4zaygRkw{0Wk|WcܦoH 7}1}%Pc,GWY!m ~o`jqlwwWrGyFvsׂ{?y5vme@yHײxt'jw}p1F'@p@{H؇Q95gln7lVR~lx z/yX`g۷@v kftWpKn,Fu)o\gxᧂq3a|YA{8IGYщ8n(նx3zgrvJ8L}joflnsk_ JLJm7vqш{uijjp)!ol;8n܆(vnʆs WKWׂlWHkmjplcؓGtϗ{i8i(jKL#VYLi !KQw4xw-d @1K8~@r%lP גbyl)ٕC|zP)) en IdVX{!,E18eEI^CL3(3 &G5BXAK& K:I5%,7 gJSU=GO9ET9C" 90:/A xRUI8GW@IcGPQ=JF3>0!D&#kNWǭ hU+5hY+ WVٸ,͵Ɩy\>C/ӪJ6CdXT7=eW؆VJ"<)6˞ɅdM5I-*إjБنadbxXFjXۋi{|d@/8T54lKPwrUvbe@AiyPMsJ]\9`:RRRʪ칕}jǏ⹢bbbuuuɂٖ)ᲲXX6B&,ߨ1UTFG|҅'!I03J<]}:  ъZԜͨFC#͎z HGwu4$MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PFJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾50G`M,b X:G:$KBȬf%;.fym:4AjO-l[{O^>vAp;+Me=, xXVWӽu] ?r0^ x!zb|+/~k_W~+LWm@_=/wKah7ldvX0gEY (F-,mr+nX ½q^tx/= z!H0Kp|e`v)3)G9o/-g;O;a|ωsaYŝ-.PtWhP/LYuez@|[X:0, X!\ I8^ZpV?6ϋkZ|ExY/. ;,Rf@ޝNpcy⠿K ߗq3?0󏑞ŇiSަH V ]Gb^m hQ\8!NX.Or\{\hK2c:6_k_Cm}waz 'XjgWbOGtvatFiVutovooF[du[be[[qv!c2h}=VX@w:zsnjwwwCmDXg~ExJxXfyeUVeuQy W~@رy/7sVxFk9FXwzޖjqzsz!hh aK\&YVbVu| i7&'x|cw[5t||ЂvF'lGmww9hts惮fW Ն,1zqfm6dF'e~XyіxY@aH'sTf2WDzsfgvt}Ew,j<tAna!FthKw{Rb%Y灾Wew|1[cPт+%h}k69< tpU^%em~d(aNCExv^xl jvfV؅ƌ򷅐_TI՘(ȕQUy]H~d4mgnXpiGkבn\ŵZ4Ho)ou񈗈| xe[.Xł65~xv,ckw~v)XX&ݗX9^ن品>~Fx%~Q(Gih_dTxψ^w ayb(Z\)f(ǜjkuj(^mz)c98n;nuNh4%IwiZ0V|ɘxEq*|HyV$Jg7X%X5F{w'{,%n)9Bpw7)IzdzwkwgzWo`yYx_P@2gy?Pye^YWרlJ) g_P^e9Wkj= n芁V6 hI}tAnj{v w .JIvZ50Hꐄј"Hř[zJ-ګ0P7fjp; ?Y@wC}IImޚLl(w'Ɥh)ZSv!oJ7]j^IYHwڰfcY pBgykvDh:nn'fywA7e粯$ hH:5XYXEJ;zڬ͚ *)భ%^JɓCxdUȤ7xIEf`ٌZyZ:ey~sʯ^ɦ[{Ѹfٸ td%ysxۣY닱Rgc9tZ(u{XYg~|IJuA X[>+( A/jiZv x ۚZJ[UɵiYFaïIʵ%'-m_iyLPNy?ʨ\?--[6CjoN|w1.蠫-𥭾KA;l^渀^Qql[ÍU>\< DʵL_¼ikv䀜wvOȜ,. wm˒ :-ׅ $,q |y_!ĉ@j_ j) h=ʎ-Ѯm7y޻hܪN퍱v*f/\m~qPmmDYUiQV}.? KB SjQĉ5H oHH'xF Y\LN7QȐ gt<`njJƒSR_V0XJ"!D~,Cfu粨.x=(W"/ą+ 3CqQ-SL/sfz^9m>u"Ӊ:i~)vT 5n|;Eݷ J79Ƕ9qD 6[rQb&ľu-٭ XRRTԣȦKM@)湝/頙*""!z(DϢ\(K!: +Ҫ 3or x˯+vl"ҰŎ#IN2$\7(0*5,AKXӒN<͵נLjkvӐ"~ʘܭJ*H: ˬҎ ڮSEOφ0'Ҋ Izp!cb$@2N)WM)4BۈT>0שJTԲ؊ƾʋP>g|`klǺְr(2"'0\u96Lĥ3v:Y v5CM}s {1flW~݋;A6bj*S)ri'YT*qi5ֈSXEzu kxJHX }/y0!ɚbohae|P{Hzi㣅9Ǯ#*;gz{.Rwib!&>N4W򮮮"BZ;@ /bֿhY=2&W9 ]NO4"A!ȧXA\`gUIìf.2 t?kvҐpj\ZD(Q v[N¶f|nĦ"o.?¹d+˝ p_e4 1*MTFxuQqJ>*t CDGnTe\!u TFE,{9~O*̤s 2c,`!5//aX%V bT'YIA".Μ kb2HM웓#'`~ 3?<+P_2,ZP&H)?2%EA#ұ 2=A:?ȐNW9(dvPlœ;'rQO@:NmrX?kjXF3b ҂-wç%TZzqˈF%5p1j RGv3HMC/55FMU%U39_ hMtnu|'t(A:WTOtՓ2taeFqNt Ȁ6'AjA9R(BY.+^1ZOu/kGYPXX~`ĕP{khZR,yq˸ܢZe|صTF* .1uNp2Mr43_zBkr`_~J/.8EZL'݂Wъ֍h9Rd Jsc{lIY ËbkXd=NHFllT2{$aYѐ6u=[Y+ʁϪQ!Zro,rJyM(S) UTn\p #W1Dj㜙jDT=MJ?9e~`#7k魫Q\HֵMV"F LH=gJ05 Vxsv5%Рtnlbm]65ALCdiâr'M(cYr6kiowY7ax:5ynZy%TbnfGg^lr^1̰JE(/ı1w7Jz5E |l5[ҭv[R9*׶U+PԴ 9 Tss 2GN94tY{-ua+vWGP u =kXR;qUG `2937b 6TV*ue&IQq*ގ?ų\ߩCZ uw.v=WsD1IU3ģ*u֬}m/r/l#pI!m˃rCL +czzq{NVe~] Ҥ@ c?U?S癛,wR2;(VH@j;j@ӒP[-l#8:#Jk '+A\v-,sY Q@?K50 #0c ^#1?{,DB$GԺۘK#(K0@ ,T212 T9do3A^LZZ%l;2eAdGf\Fɳ8(Ft$+B63!:KK(KY"tF̪/l04FG5 >Tb><\K {B@ʺ#>dPkn#؁K epMqp X'?:5ārk+ɉ8qXpM95ia;ESa"JTF#lOF$}3j|{ Y(Hy(eY{ˡONaɈfj:رSRM#==?Uؕ"%g؍gdTfun}vٕnLUYhm\B5*Sc=:^=&?vY h@c=UUddbC&{ghdrbXV5ͱ=gp& #X@aiFjW&qͩMgnje.`\5ߤ^ R\> Lq=YWfina vEg$f]u^g&vߗb%b=e7Xd?&cf08ˌеjT㉮vcf=#hy#< 6mGnG_xZUg.-bFjeÆR᷍ eްi&eWje&NŲ v,bֿ[: nk.Wve~e׾k9f=-M6&dɞQulblvlمg&On+>)%=.h| hn!^n&=vBԖBlT8ݖs#pˌ0c=G=zDAnnqviF]Nb &Ŷi>Ojmb~q o}oƅo2pe IpR.,`^],Njx .j2pX;b Gj{W}Rn۽NR!W;j[P gNvufsvnwswbf]@n}l(c* /ws?&WmYU!o^_Tm+W舠w/nߕr3&?ǗUEn3?n~痎lgb=_i>q6q@gnpF*f;;eFog.ᜧ孆p?p>Q0  &u녈uމdvᙗ[/eŵ}uOlCB?^@d=vqrG]n%V?{"//[YsG |cfmu?>&+rcS q1c^=^55^&}sWY1犟}ߗ~=SfvEdGvFޗ(o>&GQ%et烙qXWItLpS$'k7eoW`t҈8^asX_׸z~[Wh 24ߎ; R8"ƌ¸4HHȐGTx$)/[W͜9k8͟6{it 6btŧ6A] *+NZWS^J+_צU-ڍn…eһ֊hZDi"Kl0b[-Kc}.zsJ5mfea&ȗ/K9r`̑&$m&\;@-V8̸h)<߸q-zuG9p(Nܿ/7>3W_sA/z@u?d8BE^τ~Wq`t\p yB5$ҕIDG|HcLfgH5$eC%@R9@[AUdQV^SY1i)u VVZQ 4טny"h`zu_IbUWt@E$Xa}(A$>V#jtmVFFE6joV\q 9?b7΄,7]wive4@? Fg,\Ȟz^MbB8#ryw0IFEI,@{j1o-kaN $"ٔF[)u%SO)1[9S]N_Zdfqɥ%A%a$YbQe9O%aUg'ԑFO RdZ,H׶ۑFʩ>Q4@侪PFo.'wd (v ߲j|Q8z9 wu:8RnFp_ԮIDr)$gHx/!)$ /O" &bYO1X^L2#{)Zք,WiiVo9&\WxrG\TN~݋E8PIb (YHH6-3Sx?|/(_ ݒ !ЭL'n!hU+ns҄,>9@*<GA!Cb:nYA @㺸yqs6yqjm*Wz7<4{[ Gno.1d쾳h0:3y\+iqʇJn PFD j D LE/ [J舂jBBN]Fu*p0"IWk#lfJ5oR$#'HFD.R*IAMҗMJUු, k[4VrU <,YX뚮Ԍrr:$D Jy[D?O&Scg9#WإL ,#+Ync) K>UhIFmjhś%u*) Z3G,E|p}[#RȅGX]ĭQHBXq d:]Z+#&i;2h) N%߮y$o"XHB/Y&{ R'I\cX%*o~+JXZ/o[i2f%䪑fn*Tؘm \2m(:nèXMRC7MnS8%aGv>ԏpTg9ϢS] AGLHujmi :+'#oЄ:yn(~I +sE @(A k4Bݭ8Xd̹{D %,H4[6>ˠ"́ERLjO{k$$|ao|KY@S"$ Wylؔb;Khu [ VlXKLST?E{T}Y@e)PXVTT$)y`!9G(*ʠxiYŻҍv]-oDs-4w 3F,'?=g)X]n1F"n T yZ+uͻZ[TR^~JdwCuÄ]eM])^DFL Vn @&;DPX*-M{vqY^2'q}9!!MW˞IpWYg{N&ZBP-d ͢\n/994#/szϜ'ZE.XҐ.㛏niGB^:tq"ROuW =H ZFhJY֫D$T4WΝT^=ۉ0 "Ie\F@ [ω15x)؀A'2M"=!`5% ZT!X~!ΞPa*\n9Za:]L-_Q!?퓛YD-ݜFTЃo_q @@l\Ԃ,Lu&N]Jaө(jDhFFZ!-` "ý2Yۡ ^Cj!AR0#![B%)@]3jD` n ̚d#@`x2i\1`=#:>[)#FXc!Uc= C!VOȝ>0"͞^,2Ea_@$(N$aeD!UWnH EQ#D=-{l$?AZnэNm"5ݻG‹Qb,.$0-UBV%.C0T] 5 >NaM>>؃]"孡`Z. 4 ƏW@X1[ cd8%\*[>ce?\"1]VRXfme$ in  Dk"i aK U)e?4C38Bq:7_xxF!@-a6bu$$$VTebG$NNBLNO(F&EaE&~R^!BRkjeknf"@ #2"4hZcZB( `Z"l^^B&[Fa``[pc-A^Ջ`F)Ѡ_3b42c:d:c 5hRh16V6(^UN(/*k'/ 5?f+,C:ݘ|&qKqp"u4sVqÝ\$"^DJ_`KN8h8pwdb"yN%:Bgu'.Of|ΧbE.* ŁaC*ViviU.hfn6ZXRaVh0XZꥆ⥱f[ŎEh(hFP6X _R(nJ憲 b("[0 Yf+N(3>#z!nZ씾m DZL)og3 i7xC'$xsHjPbP^E$ĬyhL$Mak]GRgkM$L)Jdjo,jB+l6kziNUNR*+Z/65kϲavf`"b>kX? l팚3UhF<҅kd)5E)f+F(ҪFh%R!^R1fmlUi.i/6&g1SJ6|qҶb1BDD,:0ٱ$\lLxN,4!rH v?rv'+4Cx?DjsҾ.2&+*÷%7}KSs~UCVDV[o3/""uۮ" Z%00Æo 5aGkkuFu 8-]0u50Vgn,_5k@(Scw:#y~z6}2}%)R_9zo9&/?F?3_9DR't44@p@d4GJvLʂE7Hr""+zvk#kCSFgSy7~:7;##0?omx#8' ^Jx 2Cf@{˨pa@&;{4x/m0;̭:Op#x/h_u:/[of7R)_ĕ35[+@D%?v3@G:ة@,6,G[ǝ_+w΅vƤ6Ao W|&ytx˿EKG:wmMSN6Nt>s~^z{#k{kĪ;sֳc5k>/yw;})7~ѿB(Do#E>lylpvF?wGi$u&j$GB7qȂ72I[wJP-NK?\qtz[;?ǻ xGss>g@(ZODE0Z8cŊHNU\DǏKّ%Y,-\ VziyM0;a)gQGlX(vLG`)B.z"),HP`Dת0aBKUd`o`/ 7TwLUHDNTͼa Q?5jFQ>y>J=>^3nxNZ8jd6MVSl\?HҋMԱ+*XRWe1l~W޽ax*Ko.XB!2!Sh𣯤HC*CYJXZ#(i'k*Uyt04B* [∡ 1Rp!(j.28LHb). S$ 23̒4XZH2:묙㌥ MoGN;(~(bk% #nm7EE49pD ƹNi =BxN, lO  b@2K-(Z,E$MгJ Hv%T,i)$zz!JF{%w2ŝ h4ʪat’I.-Y.b6f Y 0g kSΖrO/#@[,4V۩Qjkߦ)54TCAЃ#zhX)xZ[+;[XLZȜ[Ypg.&,(MoÍ$ u=H]8/bGTg|[([wZ*xIQހ1 ~Ij#QHK!ۍ OO_hI$)vI !AtDP@ rI~b;"ýX;Uf夤%iII_g"62<̢͢FC[kXKNA jzfu~'\Qؤ),a;QRҩSg9uFr!A`̐p9dgYϖ4?EiāNIhGJ!tD9ד8tumKNҨqeĈ(l (8uY(}6IEFBrHO Nۑ&٣|Q} _I2F9+"o#pV28WkbC%RM7ELa8Q6S zC {x&aAآSh?l `4*gHv쬑w"CwM-C H%y-B t'%݋rX$E#2֌PHEZH(mA .yHS ) "<,"$AOzJ%cb0~)H1h|o=;?<5/ӛ|Ѡ5ʤw ÌuFy\V';`<WT"|8IZ-;H5*5n.[ZNWA:tDz´[NC1}?R ޤdLUq{ϼ%AC&["/фL/?oWn'T#> *ba^(yƍ>pA郝2(G㸖z^(GW(. %wu^(iC{կ~;RcR AB8υo:5uVC +E[ŀ5˯6}JfnVi3$,dj0p> 91oL4Fo dsf2Λ81%OdB8)"5pc#%Dh492hVȮ%BNrټW`F-=Wa=M>rdS! ~ϴ\S_r[pKs[0ax!.LjP32`p.͌Š1 Aы= ץDJqF% |%~1 B14ѵaA t,4~Bo6KG#Bm'ns=}aM1#$q8%h%$c`Oz'׬58R֒Ol8~V.1ƼOs'rV!=ESѭVar? ЍK6jakVS,]SB,ŒIՑ!TX B;nEt'pZ=NG(ZG sϱEgF[ uq[mtC2.KH7Զ2HT4WqJɒ4AVTV!W _fSb2VbLUU U3c!KV ra1+J1 [PnVBqH]QX1^Hu0HqvXo^rSb(_ε#>]Bs_[88usX[pQvYW5#j ]5@sUa]blv'\1Ltj#ҳdtTeWVՄS8N;/fyF&CaQ;1llRNE)SS׳js)Au kRyKg+ "VVJ%o nŒ%Io]0C3TH;,qQD W^ia]]_%tE(b^2`  ]_=aGC)w'|%uFqQ5Va1"#jyy˨@ (G685R Noe֐Pi)tVg(98h"7uR1Sw3S71d2j2S?kST)K9)۸6Mm)!6ys1aco=4om˲VBE/CvIQI8*uf^MrY؆2=nnrss"t 90B⊏Y}!Թ# % Y61/xZtV@Sc[DԮ7dדYzp8G8["Ɨd~#QRes责L(MWl?> 6TUɖlym̠#x,;pyeyY:6Hјe93\%'wsحw#FF FZ|#ٜ#~ &aو59۰@}! m=xJXw>yd99SvW2e9ڐ7kELiV7˳(U7砻7A9= %TkWUKYo%"Vvٖ!o푽,YB-^5GYZssT[t:({%{ Fz;1!+[۲  {[crX3ҴM[ٕ7b>i{35j)CN=åeS?>kx <Û 6փz,uq1ZU[U!]ң"{% ]:-|31<;9R/'%^Y" {񉥹#NYZ%8WURʜj7iyEGZif|i֤ }}SΣ/zVj}%0#B9Ϳkד[Ulィ|x΁{'=(۴bBuݬqqՅ=0(G@IQ-C;c;b8+K }%wy96ǴzdT״M7Z6\QAݗ؊ck߽듔 Q)eSZM_֫(} +B_Yj%*Z0s7(PvUЦ7W|pI96xrCɒU 938gLhŸ`ꕲZ?5i];I:iv۲d WmuA(pUq:{f [g ͏j&_z*!F'5~lKgZ| ~!av*_IVS_V>5C{eaA;MP;RpUYE5b|g!X*[d͸ZyV\)]t?z*K!Kmē{IY64ZTsjFn[Amgɡi%%q#ߥeUz<@(Y HU`I-) !I`E`!B̠VA`ȗx ɫӄ+JO(j)W.KXc+J\?Hl 5`&fSK8e\!&&D)B+iAX*Zgz)ڞFgAɦm љRpjʙlgt)YthC2VXIt)*/aʫJ%T2';fK16ٜiR3!SM2njh-ŗN&}U [\bX+**n4 8.?/cv*[R \E'׸ z{nJqcNıJty~g]\v)sFpiLlΆۙBǘZd#@Mc0J10PMb5%}d63}mt=ՅW5BV3s|7UQO7xUn1xbHXVV LAeOYi[`+8_dpbEAhimps B)*OR[BJ^`vCL1g5y ~,}K$d*ʖңD.cMiPBE!5qj(`KkbIfMjPd0lsJ+phj*t(*abOH&b+1S4 Z% B6^ti(AV#QB"G/~ٍ`2 fA!6+a n!,H5ajR0e V0Cэj(aΕ3.^pV 0$C-Ұvԇ4[tUƗ!D ]d(JTES!PVLf}VX_Q$uRHٸjdpq9qݘ:SLbC] G1Ɉ !!aO֫L#-اV5\ %8yQE3?v4^ , Д-O D)3 [<l;iNi4,n|Ή8\|S %xI_tG=%1j[VӪ"P<x$F-Ѣ 3f_|X"rX)idҊ! n=m&eA)[_ʲ/\Z|ck RD20Ug{5%4Y`3N J yb -2\E'RPZ-2EQN>]1EV?;@)waf؃R:NOxŃ)ќjzģ ¸jl9*jkD2гPKNV`)ɚ6"188fQFNV a,K~bq4Ifh6o_E-hK7,M!̦-i:^Nɿ6Vc=K|VU/Y?&I#!,Bt\v3,/h!. "eзmVL0W\SĀ£˭%JKM%F ! iJ/=3({ٵTz 1B<'o0LL"JVŔQ'In! ʕ#! ނDpdԂ ?OUgFeEsؗ 2[jvflnC7\ ,3=Y$2z"X-q秫8%OiCZ!w(JDyO ==~) XH V)0 tBITB*gBv5m 1+Upur\v!5) &EX/_B^ӂw79aw/SSP'ۡk{w-/{}r[kqDO!]A%UQx[`2ikiZ1+{O ?d6Y(bby4ByYnBV|[NI6|coeKd`6OЇpU4Y@ dA|?OAP@WBw`4})!W0 ~ps!ЊӇ(h@Tor+x"O+1>I J*xWwWV7 4a08 J8 WhE(рQchZEUږUu<ֵQ%xC V*q (T!QQ4v-Uvu+Y`ױ^҂O(Q BP 9<6x2-;G1uTxUTa&6H!Vu_yWWb%&d$Zc6MlI[%[pEXZHXU0#DnK(Pte@YXFp墒W$KW|QZXN Yp`[Z@,frTLY4"p 8JL%QƸc`PD5PSnEwU6U+Vtva4J7U4IQCP7v4>36V!!c; ) EiqivY'.ֱh%jEvB#%9+1lMǕUC'6L GbMW{\6z\,[7[8[H ldWYU؈V`y?qa<(@tyU9YgX?Odlc4 Y X{ |{`8; >N&&Xn)F3 aV1>PBQh4sjBC @ (qpAap'Pa>qT{j@ sa끞 haeUV@L1 ^ Q9Cِڐ`Y ;9)E/J9|Z7H^!|kKj]3C4x(`-"C\UFkfx4ZLkFzKɢ WZD]IK t@ ekb>Z87P\ 8O+r XF |ppAuz?ggP:eɱ\Q ~، aV EĴ WrK,VTCaZk` k~ٍ0{!V!aDžKAI°2ٹ) *&(Z° * })U. av^4XSv )k-{:jE2#s(1QA=$7y&"]7idzO`օ5 &X{y#JegTRVYJ*eEkZ k  bI{=U y `٘/! ݲ\Kby#P##0#(#טp ż@ 0:-CPC` X}k c0` pP [cOtvѝ^]ݡD( %xh=bՑr0MK +Šs1&pQRZRM1k%)GyD}e`9Q &mUm[uVAqyeơKɦ(J[);XiQΉ(A˰U(>D0)*:r?>]e+>kw+QgȴaJXwa `X} AuȤ1\{@ ae๝ e@5byc~Exj858u&&mr1 SE1/_ʒS(_2R YCpo:wWߍ-V凙Jt ԰\<)s !`CzL'LA^) /'d Tlz#oʔ\X8qdysHP,jhۨ$m '$KͿ1:\/@>/Zc1YJV*:o1Hm9TLd,LL-Y%clKT\믮] 2׭YmߺK_nj?,g-NXcJSH3)S&YЂ9?Ҝz?JQ;DQۡMo߳ @A6q;DС#F>CgNrḛGd!1@WTNj^i3_s|/pH>B i_gxPdqFDiL$FdqUqFFazL`'VȊ"q~|l"yH,='bRF<Ѡr!1dX΄CL884BɣI6CYB !mjTB''ҡ.ȴ&VȝZo1PU( UR-U ւZd|QˬVn-dګ Zs0"gZ%(",_ʪ_ro$D,*PyolP 7F +>4x\l RK-1[Dˬ&͋7  )p(B  /bF9e)YY dY &C^Ŋ1>'DgI#Da2G|R#yLuF 'Ov&-+ڲ+T dz*rH" /!;˃Fd L,ț\jɥ9-hL2JE5H $#; IwFicrZO"Պ  ~(α1N!:!§h 0 uX(* -x `R_$X 2fp-Y)V\022h b/Y BĬAudF2l,V3 qf^3f`Q*T \? T Rh!ز1 ?-#Z%dШSX5P[EnHF2B&'Ga[FMb%A$* KJZ b@" `MJ@)x1ъ4NH dOH pbwr@( PA#< Eq.%a?0" ;s zP(Xh "lek(6XR* )Hhk3 1\Ew .KH lZS2oԠEBX` ,5,i*` S Ԡ)PAkp& A HBE#' +K lbAWGA7B!fq9C`FJa8?P,>am%A-0֠H8,ZV8TVut빤d49GlOn3t]4CZֲ#e;4c ͸-9zb.R$Oq> $B"JS)hK[5P*IIb+Ò14 ~t|I;d-OAf*rP* ;Y(jrÊP .hc?v @K7jE2/ ȹf?(X9ڹ.v ]誂MP͟I(iCK@c+qX f#X>eȧZZ*R x"JW7fo&Mt6vgJ(CIǝ9\Z1Oڈ4afpҟTpz+@: @ޜrh ]{RخQk_;=MLLfL><'tǃ`R$Ӵ }0 M\ހF0ˎs3194=琦qRzQ~sE 5zeDW5I@[\oBק֭Fh±/DH7( y$ջ"ApBThLBaP,bAD5 1!S>t:F$ɏYpB!Z*Jh$r(`|+Ar6;.[b*O @N..B rÑy$$p&y=;Y"R($H{IY%b*={+SАAقo4*(0hG`q?%Hcau -6o/0HI#)ീ[ )p*A54H:$"*+ٻ"wt?*@.S,7,x>!ޢh-r Q.r!Q@zJ5?^H8Z@ٚA̛r)1[4+ +FAy)B.а^I+bjXFɤZx2♝'ӱsM1oh>P@7FF۠PjAW$>$譒N6JkK**:Cǁ%sdFͫ?LG WFc %g=0&;{V,t**A fhib a#j/Ȃ,Qp,,ȂȂhQ& QΨbKx,Q*Pb"`)!ڞښ9I ҂ .{ŻOc$d@MPM+T[M5TsӂX{2JA0-ٶJȔ@ᅧA :.+DmԊ记rlA!H;B'?ï ):% SA+q\   ̬?i )! !+ @ $;aӓ "/(Kx)0 op';\Z`PE?+VH2RUЭ[2ǙOi: QY-4ܳq)1<ώHZڂ d6h .b5U h 7苙 DPjJd *[ 8 1 Wk*,"6-c*<ֵra-0.?},䴐@E!$E 2X QSPG:YؓD^ɐJZb.NEꐫ)Ġޱ!4q|Ks|`UxWF 32d J8J;<.Ӳwg8w'GW0Pij^`FaPH)f@a)+=e3݄PXWeW;1g ! *j@7j1ϓX"=+4291*1n35I`ޤSc)=EҦ^X`pS7\lX@?$(X`Zas,5,7 Rk:޴mVm>S.S=ſ/+7 /*'`W*TQfl@\Ã0z`e`kE8=򆂚p:ެU :/*%LGr44 h^-Gbւck5s? ]͂5Q}QZQGL؃π LXoו @ !TDz.= gypnQ ]ޠ.E*EGh 9+ /*ѳG+85(r"#B@iڲ#PU Iš[Y)P)y3Z*yLzs۱C|Wܜox%dphN+- >.`BCCspIm5}ME'd*N`tBsNPXCP5'eHYd^'x1ļFQL0X6f B ?iȌE.KjQ ,r T  !@RI%2Vyh1?Uw/e w ϧyq`!` k[ Fb ŁP3AcH4J}x&ިhYi"=#aȅ6嗀,sT bI0<_B6 >"M*z5%)2b'9W%Sٟw8 A M`jyC6ń.t/IJAtR; re.pGW] psfiI^RU%'^Vg!;JR9/ Љx*+m $Ua-KpB#$1B |H+lYD iL`1,|* `z}A&$d ʡ(΁ g%D(HeD8< R^ ֫lEl<OS* D<;PPx)؂gjX-LNEa+dN(C+,/t7B](#zn+ƈܢIـ^ #-Qd"5An7dooE/Ì3c 77{ioxd:E(b@ @/d&쩮+Ҏ䍊'LWD&b8uTa󲗽?=pF7)@6l( hż4!'R$IyT+ƟySջF$ mkKH(6< W< P0ppAJX*[ AR "3=[[ ų)IX}A_(?` V P YoA2t=3a tuAN F plݛD7]FʑMa! ?$` ) Xzy]\'FeP(b1E 0$R 4LDNL AٝP=K(N4B-0B-B$IB-ںP!8EFD Fe8xB-Ö5BN %(MQ ^l-EY5C$ƸD$ B?H.\/0|H\mvl!lاxA%6KuJ(Hu0OtPN@V%,tP%C tTXB.VEuㅎa,JTGYB D<0DAbB!c@1&P1^8Zq KXƢ$D(nK)ڑ5ßdg3(2,A,$@B/dAt8DEBv% |l!xM#1$BP")QwlEѡ*¨͟Hh=:9pgX"ZO$D3a'$l8#VK\PXU3qBB)@&]% : YpX { f~xAqwtV$,A j ?jedց$*:% `]婒.^ XP g"j\&ˆݭ!%" ݚ/R !$Jv&Đmf Jf<+$Y):)lS=I&._JJIy}_xlZ뼎JډȂHOB,M(M+ 5Bɸ̈́np fNҨ ᰨ|Ԓɇ yWG* ()TXMhAG~0mږm(RX%`̐#g EX9;AڧY̾}~*PZ8 } iF&]6*WG90@Bx~'BȁVDYE @?Ъ/vvv?Po:\>+Y[ % B泂`qB@; XkkG/x|XΘl,?]<IIT@NC􏃼ϥ]HMiLԑzN+Asr GĄL MZ{Ұ% ˧˦IIDMɔȗDU;{>@@YX1T0^D(D_@%20cRڸ ?[ M lEgֆ! N"?zJ<#G RzIF%VtIV(B9ʏڀd!+BDt\DBKyKBDjh\E_\| 6# @7_/BToHvs9Go9\FiBj]nōƉjv! 4,BsX5v `Fi) eTtnnPDJJ@$^4n{v'! 냔6$x%РqB"<#Q59 001N0NA1?Ju"{wx4t!ao#[F-1ёRўțf#f7f ( Jur˝IݭCX,;:Z J*˙˴HrA R˹1Q VJpn 핦qGMjEG(J'qT,?S.UpV1U1Sà |ss}B 3w >fj^:] Xlla YWAV)Q` M!F8CK8b$<(7gDQ\\O фA FC>ȹ' 6a% G %&tTB!#/d"Nb,^*Tr@I6z (hT$jn#yM9 INx88JC:?Rڰ8/ )|E-HZ! $L<ʼn(ŭ >CNV`] i4z5R8"DQG!]n#(69H+< Nr̫ nP,VI,$9w ɏmʢ<͔z C;_,ɫ2ZPQK`SH U"|8hJdhLxF MJ%ZZ]@B5 b+H!T3F n6f5o0+W_q;jȞC0Яy$=|bKpo;.A;gs)F,V7b"8Gi"T" r)y̑HJ,QyJ-_/$*& M!9N)h-Tb Rl7ݪiI !ª(I$ 9/QS3Tn,8ne{B! Wv 6>"]SQT Mhp*W1|_PBԐ9;-da~L_BئT3I*! UU*EO$0 \brA${$i >P~/" 01P!2B|ȍHpI2cr| &p4L$+L1vF;̂CV 0 " ,g' m`0X<k:SȡHj:D@g%a$ Bz@rZƆKJ>8!K+A@11PT`JU?0.0 Ip/4v~C ^P $M1ɾg &̥IK LTILJ#1[TΤ7LYۙ[e|,F 'x TqJ]+:PH4԰U`C9F9c@S@%v #-Y$3%.;|c%iH9>T%ԣ_0(( Q(u1|qWj#"Y*%JJIk펡Zf2%}+J'Q#YQ D;l3rLf<_hن3+kdX,Lm `5Ns*:ݔO|tR *mPqDԠNH\n)96,DmS"@lLUȕ8KN.]Lʨa8r͜A CˁM!bHV?6B㴶YB :&1hjxV_\Z$G5!j$[m8+N{pE;D/d&Btf1)ыԘNM*:]NڱL[I,Njc ^Տ"p` C#N㐚?jlH|M_,jb 񰑍r RCM&pYUr(|}n֤GJj7QݑGJk璶ɾ>$!Lv7 r}!WU:X́APD2+{YXφ"3E:ΐ*τ7ƁC?M(ذF+w!G[?ԁ^گ)3rE֊Xgo[CbMC2iHR!VO,!]Ȁ?~I>lf.d A8AZ4z4@P)!%p \L*0DF&dNb;A9Dfbq5nfNx;LM6F,ÐJSDE) PFFH9{RP~* `z@lx0A2@VBlIJd &f([ܺ`xxJB@,ERgGjFj$#Yi($anchBOHt" $erf *n<0R-fasDžZ$LJl h`LOaaF9fHvldMj:Q2"VqӰso+bfA1DCLC1et6d:zOR+J8*ܾ۰*"#:δCRv$tm2# 2p+>$ND%-ѠVfrH{L0p'sF2T C:nM 9c,h9"ԤRB VB)vp'fJwG'zpbz frKdP22 E!Kx DŨv"&&1q"\wǹ$jD:䐦Fj&.&@@K`U8"JeΖr #&-3 /P!lc Ăb2(#gwdM4% Ta!r6;J⤢J@a@%Qr$b $ϯT2oT$Jbrj+&gr+~/|V2ndDC1$'TCL}^GGpM^L-`n'uP'PAAjxƨNNPwb%H xZ "jLP+01UJگB,m6odj1&RsIrh++[N88LBIF~q˖ 8hXI-X0:Add2[05]S$%6dҶej[J1!){NT<3B"e$bgvrnA~`@Ba8C5%]ZLEҤnlb'@GoDq5F/G1CsTeUV stT+ H]˵P!hאgVOKj~N.ERXHcШ}$P¥l I uTGLŽlQNT_fKd@بn*Q P/Tw &&uR1iWO5UZd^NO RJ8HZ %\N1oMy~L$$mct&NV(&,!tjÀDæDH(W8'sTKuR JG/d$>#+^+b^ g<O(HbInt`VaA::a`+R+H@|%B)[C0NJJe `~B`1B1T`7'X8)T``@Ͱ'Mzn/Mhh/6٦d| Έ\11TF 峰$ȥ %Oʆ d m:Ў\*>KEVfkB&dLtA"." DOW-^p lB)M*t~&$emBbEDvuTo$Uwu߅FvDFn9@"iuUu)d"HVbf ٙ%=,(>J#J6|ϔ(or)"j+W|C2fG[phUv,m:J sRזuƼDKX x!z -a 5 9DPDK+L,/$k\TԥAa`31ax}X{'pVpHX0HThdȘǰ<%EC/FotL ~,u¬b2 3JQue6 U6Xxg8($v7Eo% 0,9ϭQ%Qܹ  :{8Sx 2`"DV{M4yK[,]lTM 1y9 jT+jhNS@$șᢪ"hW.Ң TPZyU 4s9^v.D2 5JJ2/fC2%{ j| iP@zIG~qDR5&Z}hv P+0H\:X5<1:bh 2f%_v$ [r H``A bx6(`(b\$aB܇w6ʹ"g'ph8uͤyMhY~ᕦ& 7 !qy'f|am:a33ځ IC[|kwjCmaaƷoq^` 8B#ʓʛ{Ğm٢7(!k +9S,ePRs}Xx&sįfÍ¢1z/:b9'6ם7XLpl_o V9ե`R]2*IX$SǁI#С$H DiJ7i<璎(rj PN2$_1kr`֬vݪU`Z?fb96,w`/&Q O€B1%J0qEd+01/Y2zQ,/FHΚ5ԆTէ7-Si"Q>܎)PTP6m M*9xhY+0c{2AkPW F~a)PX?C%PC@Ƅ1aI(tA(HĆ"± n݆T"PhѝBJ'l$h?LH`tLh!QXF(5JA[s !x5d 5 )kk2h'8RvMh¡8K4D$]u@KLf" RʨA=5'FAqB%? >:TP⫮ i6RJ5u S)2UASZR2lOB5)J.%VEWZ ջaUy@?[ [ By`G_ aV Ģ|QfH66b&/bYޠƼq!C)7b'ΤArSd #mЈr'?ADޡ*gFv?~Yd}AƎ FXT}dw!YP2GbI( *(]#*"`RJ _&xW;fߺPj_@ӷ*cIyFe0\(ۙcYmc]Ҵ'!xЈhwV6dec("EJҲ$>TfjD굺DW|H4Fr2SDDHPMD%6WN2]*|耦bjTy (2?8NaJH.i)0XaIAZ|ŠUலJ_A-u)7q X&$/3 &JQx"ӘA 3BihŕE5)HQAő'4ІXˣp49)Qyt$(`jJBxȆCaey1#-DAJ0rrF@1#=uUsC|(.(*~/P tk eR$(1Dk@FD_7xq)XTz~ oZ0dt}-1E ћ&Ԝuhi4_f>g\7MYug#/8T$ <<SRӲ , uBaR%FW,y0?xKq>Ey9)-M G08*]U0T פ B6T0 %꣖Q-"3\$TT5g-(KW^|!DC{尅fa^Xİ.[⧓(&%/! _f Ď"b+CgAK1 cmjF1_R 0&Df$8-@6ب܅o٠[6|+qV@(jQ/a:ؑ/ȡIթs SjH̖U4)V%'p rcm1XPM0mfF6aE,j0v2bdVB8vcYӼ6Nfdi4L܅XD^/)zs'Btev$IHvDO$RՐJ" R rU?U5hS%4;}')7u棚 kr7#J U/W -;|}mZԝ>f,|:K ,"Vw, W~A^ 5FД&beArVBN3fu^)qUA}-3J8pW`\NIx ]=H PO pQpAHpJ!:~^ 3 r @q&qw^#h"N=w!$.RJ;rmHPr8Qa=G4ESD!̈́9cOt"#O9.c~QqHc[?eQN*'dJ5YP6DJCIc^ u^N(x*GdaddSxTx#5y03A_%-oFz4j5.,T7lv#A/qWt{UjEdj1߁E% ` 7 FXN0/@2^}_2Q1wsrVB%O(FuSW[XEIn"Iu\aA u[Ɇ#>AA$AK E3q0U q5x8mpNɔN~DC%s%C8q!#8ATB9ġN!a]!;2L&`yMHp'ٴt11#q\oi[k + #LQIEIn59)+ab(ve=˒y.UYAgdrd/1ygV2*,.-BoBfABG)BU.**(`i;o@/z{z{iF'X` m @ aaI q8) P}D9ES0 /2-qc6#`]v2PmMos`xcH  ɅI%NxI@[*oRQ:ND esxHr4SBJ! t#W P k`m}ʷ|Ұv3Atrrt%VUM3D V9Fti;KO#&b"&"gzbp *bţJw"u"B$qn a+VGV+I#7"u`p#TcWq+ccTf{fx94t.qVR,yhgtFzRUSB>eUPca/lFyg6yyVtֺu&7@)Vةjg'+@ef+V$!n/!!֊҉ѩ0q! `1i*|RjXbԮSd2_q2䄀OS\V\4(1x4uۡI=IYZ`Ms8r[wyY:>=S-W>iU3E[yX}@QDOZ[M,%K;t4N[%P_ ytEa4bbt&tm&C03iPo5RsF#FEH·ֱ9&2Uf?RMqe*Lfc vu٘<榉ÔBsa9G%`;Ƞ3%մLytGѴOO88b,qj#5YvPPǃ$f(A"S$6I}4ڭha.14RBWԚBd( )|E-N`Iq0U0)ήQWjɳ;dE dE{25{!J]}pJLWm#,GUk's7kxP  Aw  ~Bad-*QLKZ#rG?lvͰ~>?~Tx% K}5`qb @<'Obx;t"37Oմ #e9K'9KH't6Pi(z((˛4ln5u}av<6<82u5{6fç\ ٽ ʞ ʤ;rڽ\c˨\ڮ R)xN⃋+U0xV!U_v({'j{#j[3V|Gój\ZEX̐XEFZ mA6z2r\4Rb|VP#P]d 'o nt),6D! hrvN 0;ʁAnS@f9EE`t,4:b\ޅbhN'MS'J48J,be#)Qv"{():z=mlfJHhȆA5mk BLqښ~궾 ګV|?/]K`-ȝrq{y*j\#i1%365^wkXG` 5\!ua+=tk}Ӏ\c ;mR-aMlCEpX_ AT$$e c%QXJ&Y%|)ʿ좰Qď,4}( (ٴ R4ٿXsY)M2i,z{Bnljp`[J^B^E?BN+ZG⎍>>$"!ɫA9m BGCÔij#$*KSRQ{|! DyP5F3e tb(u9aCr\b_v}mz(('y#_!~nCncL$ӌIXзPh[9چr` c I(F( qTmVRLBc0";$q!@zk.`t\@J`ӿD #XA2'I`K'9Y# F'b##%g* IxF*R% zgRb,D9@A!k,R @\Ii^ Hyd_IIUKFtg Ղ Sx5Omo cV4cѾ% 8CD1b-\A9jPHOyVA?r4zS Cgj?mqˉ߬>ԭ%n 87oa"Ʊ@~\@Mlb%*Q:4MaB$?@!e#8!yD#>#;4Mnʱ-L<4Nn%yOUxr狂Kl{*,bij-ip %UP}AM)mMCk.Y#EihJPG\R̳C #1 /X')j( 2Z5. EXSXZ-'c 0XZľ hii(Š>"??;;uG42cD:15+Ӱ Kg)6гxF! V)(8w -8.Ÿ8_ @g %gK7t7b$ҸAkb鐮DgBJ)B *#.B' !DQa cx R?y9.m/>h>CBQ` /В,Kȳ; X8O#IAE<˒!LBZh18ahGNg؈2lvN`3%œ6H;cR=` 6=;MGx4Ƶ>J} 5B rG =b0>sPAHH*ܚ" J * 2FO6XtO F H`w7rIP B#Q?@@9.d`0  J :EZJj |SP`Shri Sa0i؁K*B+ܒ+K1#Je'MIp*=6f| yl" (/i6iDy xl MZ zalj )A;CKӝh2yC@.I4 , l,ፌgc M6fq^kGkf=+ my)3"yN0Mc}9]p]X|eW4 8xDz}̔8џ,P,ɒO! XQ[AP ^hCΈ6Y4agQ6!VjNq YKa <#Џl ,/?-Z|=j $; _~~W"Q26xs?*y.)-CvcɉE_S3\.FmZ̀RMWB2>40l&PI:m9Ə9 xƯ$؀^F$,"<x"'+BةT5.ʏki3d@-rFs_Zt /JouF|*H߲pgNPߋi4 =]Nv4XNOq2+ǻYbpMg,R;) q 蔙ƭpW,9;!OoPEXb!8WO4LD)-8Ѩ/2*[r!P)F ۰*ǿ<*lv{Ms)1|1A%kDw5f.HwfcB,$_,D*lR H-U俕1éµB Sm(4vBHM q|21sSC'p)sq$ˆ#l0pXZo lXys_όo((";=OAŊE/R$LJ4iL&M H)I˔'ytQKaVתUjmܹ694 =_'TՔ)8|#E 7+|%/>0! *LdPnNQdX/wj#p6axcSAV=Qr8A4x)CxkN ]kc[%Dy _f$ {3w/%.-`!|X(D~gtssA~bY.KXXD<^ "]!b+a~h`]qh8# 3"~,,G:0YOY9܇9WiA l~,r󧅁&x ?)E@QÃ2,& E, ID$j#fE+_UJx+Ti` 2BLYHPe-VYV _H_5$c)$ BpB‹5@E,H5x)f4?`+]h=.Jz `-lb8D>]` Y\ iaD$ C9TB*V]W-(mfȡjɶH:c*̻kDy =)/C>PA@*kO5Gjy&7INr#whÓr)ЄQFoT;b(As;"OX꟞ oQ]ѓ^h$#tKViFRN/u >.a (EjLE;g:N5ZՄ)S|V+^WZC+RWtBJH(+!z!D>)P! hQP1^-M"^g}+Y/@$dm G ӳ-3C+F@VL֌&Pcч^͕̥) bS8(@AiT>]} S-pNV"U]\ՙ]]PۚWviFa & aٞڮe *dϔ 䶔!YȖh٦bNe-H&.54.A9Cʪfq6|? k9N /&D*+u)+N#dgv\ ]N 94'xBMX3xt3/D(kA` eg+kh+n,$z 4ApƀțO@RHRb, `́kQ&4n`nǪ *zT{fM R0zA H,i|4vd4?D\厂S2m Q-/-Fʡ.H:VwmOFiȁR_ QuiY]ޭ)%1ޞma\- [Pma]1?THeIK] @@!Ɖ"nc:IB],?TC΂BpmH^z:2x$?^L%%e23aAaD33ul\TүT`guc캔?/IM([%h/t/10 hX'K 3AoF EzIWƬyGHvqqYFuLL*N.NGpjĥ ($ūzϸl(F,DžsaT:=NvҦ95SP%6T;- * P @?w)Z[][\[meOeQni経՘u$_I v& ډT`2&ԛ`jBeIU&gbx$DΞ!ukg=0l0R5YA@X\m%mw|HSqߖ$ݶG -wscsnI7I$Dv&FBS` #DQQBvV-g0o8mGBa~ mnn>`^7Ջb;0Dy 1*Z |xQ4'z0!tƴA B^h!Ɍz0hh7Nܸɓr(>$ȲAD|:C4@0a hoH"NYm*QUME/ d'3ߞ \aeJu`:'s&:3?C&ogvSO$O@H;:ʼn*գU p4է9w:ԵRFS@ jOk t@Nvoޠ~]P"0`F1gt-  B9pQʄwvH:rǏa 6l֎EQصߊ>&d%㕰9z!ɏQz%C `@"P L0?&9/0BcBc|02iyc!/(j!HH^H")ii%! <Sxȡx/^਋J'K1t#,..$Ӊ-;B| @dcPIAT,$YG=(4L ԇ E‹*dڸ( ?At=0 ]韔 r@p+p k0|2ʱ°JJ[: ɯ +- kڠ,] ]_03#@C؈9DC >mT 81J7 aIHK68Z:B?$D% ;9 q(^1ECұ4Yѓ L1ȃ<$SIuĆb/;Ar֏Ջz3k5?@Fb%Hx7a7b몖cҲ喩k/ TrS|,Yi`Uvkc5KW?H0EiL͕c# aD#1l`?"d_BIݤk&CD)@Q )iB?vlQ *Y L hZ+eki  ku%0#%=i(W#C ECD"ԩ)IH /B;ok3G8*$.=GXGEiQ`9̭sC5*/$o P՟huO%q.%>}M'5{羕}(ITJ(Iy2 `@':(hbz*F=h@c!` UE8d#1&ЁN^"dXuJB@k-R ^:X|[S \lū(<;zk/+ dCb<Ǥu( O\xԐ04arh`b= nULn4X]1lpy)܌ ?:Pƻ+]я4VGOz24aOC9FՆ!$>eG[[HD2EmT$#QC q(/#@ q`e{(BQ''NFWܽBD83}m׽%{wwWKTJQm(@S#2ldMv*8l)X"E璎2V."8N.`LQ0&ڂ'^j,zN6bC/fP8`lfcbnfC6bpŢ,誴,5R#.y5 (LnB/t&Ǝ&!B܄OJAn 0 ["ϱtf<vhwMmwDW%TM%mP~P$ȫҾ$j%0fnC ⴤ@faLaHhmEjk*gרa Xm !rNQr@*A#>SDew+IQ /ykDy^"$MmQ%Q囌ި)FmQk$0ឲ 2dn\% n%B'8بA8qK C&0hC1JTlN! @"M=p\nk14rn(`"d(t0a2/t]fC_tnǒ* 056({n˸.cz-pꈖč2nv/ +Cd" Mg v OB%Kcx2'.CQWR%w*$>$I)D (dl{`ar$qgĮ &Z0j#"1%9(?/22H1v2f1z"&a" B2&i_45`&BwDzp6~|BtbC&5pR5(SbCb*8N&l˭ Ï+C&H`č&ۦȬجk+к-vG7ċ/-IIrxL/xv,MmS1CbD{J12YMr$5ru*a 5H:2 \wnWiye<@uް~Qk7yOisS $ePډ:# pVQ05Yzi Brg=R&"bd0L:#32]OS2 0_`#TVbRrl&,B5E"D %'%JaK&scb E'K\EMc+VL/ j~+HfHmf+cfO$8g( %KMV}彬LMP'8qs|6pS8Ӌj_MWഺm"SO@E$PPT4"oTtiD ;T.#V"$LyӾB㭝ܫ*wbyϽ8OR *VC7W5 >8VzLQQztFRI4 jX> \=>p>I?ו]#u /$w?BaAi^Cc[\붗 V6.B dcE)]( (Xb7~c}$CLna.F%vL6ĬEnB&G%hG9xHm"dBސ>b..*d .Ki&byqL}qXPU).gKB07O}N9N HUN@3KVe!v$5 J@1x}GsPLI`U>꫆ T"yc3s# R*DWBuqLuE q4e0vI>P Qtu}(PXČ*(>{)]wy#~v1嘧?Oݥ~%BBp(#5cPac~9b{ca 9Fa}D9Kr~%!||1r eeLH@feW~lHiبJ$xcqk5,X[sªsR2ws{V@WY!\Q yt59nvPHyhM)%O.\ 1R>׵2{"4INNR%{L`Y%9pʳV([HacRa[c5(5Y}+EVa}%Nˈ7D`#@ǖh&t q"sd;d҂Ê~bdH,~ P'0&+ZiCٛ2б+${&~cކ*ǘZ0Eٲ*;ߦS 4i n c>S$BNWzPBԼ6i7 w)w㸎m-RBV)Duqt!!YEAfVˮM7YeIZ/)h,BcGZZL9Y 'NdC|Wd5t[M4#z`괛x(Jx~_bY[yG }bZ27c"]Eٷapa/xZU [T2"! ZC~,(vU(oqykQ ם>Lߒ0]gl{HE$$n݋nB2l6<} PLˋ9qXq+0]\7ӔR &8GW‚{:+ܿEXc;sYQ}QKwS)HR{\CJ?#z7V&?0%|?5;`B]5z`љ~w(yhxZ^ 7^9M{(,0F})Q7=Ե`R&FEf.0u wվU9.ZjB:*l#{+7TM-+S&m>1"!$\1 j8$Ϙ QQ%OE^>$A9#roy!YsRw3$7;AI'7)Hux,8ͻ̵+{@zq`BDI #,c ,t% f"r,{؃J%M8ɜLnM8=Z5jÂVz4,QM1bJ;J41h=ҥto;8b:0n {+U8py8О^mk;OnIK<.ɐI/%Yk c|[u٥ՋDBE2%HΒ:Xp붏~umFa}E_y572}Xl `ჰY  "8GbM56((}G(m{xyoؘIRGfheUXnvga]Vq`AIFDQqVD9!t@gDlIDH$JDLzĒT7NQ=z蠆RTKKVVIq5Wb=VXG$ѫ%firb}yaZ_5d@lyɥb Fmg VZia];1Vnyp2x5Et_u>H;> 蝇{-;[nP6~Nz$jڸ-^1WIR!'G zby<#3Ș!8R(F#T! dnM gM7H'֑m2]xu_v_CqQ?EPBr*]pzPGr5+(U(M!K!pUR%9~SOQthH:dQ4:SFSXIlM$Y]D[W5mvA;gZV_j9=XfaiS͈Hg{)`d2F1ZQi[PH虌@do)~E 9L}9P  hھ'+ //d['ixB"-ONR7h S ` +LVwH'"Y&dQISR]Un ӬNr̅vK۲ӰmXm c,y2_,]+K"*D(2{߄C'G`ϼGYV%4>~tI8Du'.8.| !]C4=L3҆`0Fy a6mC7 C) 1tԂ]`ofE A%/U|©CeS^B'NvP%;I#&\X|H< ꊨ┪P++ȨxP6\UU&!Z̖! %NIU"yS- Ĕ+MKedG-dQ3de80Ә/L) $Th;_W:Ns7kX<P8{Dq҃ S=t˞ 3Dp! bl@1},Aڈk@kf̒v/z!!Мm( [C1Z!VQЇQ8EA 塆R_ q+eWZESC5F}1KLf8LzBc ˌ!kC<‘$#d %KZG(P0ILWCJtoݫ2Gݴ@UI'R\iO}*pLi+s*YLd.L!S*[F]ʴɤ2Yb0ï]lMd0[H}24%V<[æT<$dد>h 5B GhFكb$uhGh.6 zB^iK[g0 g(#RT3ڳ.>m-V Hϭ#9#SB TYE@Bǵ2rdRɮ)>I29IQ{+PZWexP<曼fHT2(vG'ۼS$-S_T QS]4Y 7ynEjQ|ezE2-\0ZsrN޼a>Z@q7:ih-Moם=Ak,GFoMQ@@v/;ЦU,+ӡlmۇ3X)yIX¡7#[PX|h L}) KS"'5m!n[C }Z#wF8=O8 r0sV$7dCd]9VHfVI$* hsDqs#X\FqeHB*d`Ft\UtP1,*T4("8rGw`wwdwrbGuYnSYFSsF atvo"Bxtaaww7"S QbLkw ӇBOI1N$H.vk2y6.rA"A^AS/@Zu/z \Y (g!fP,"9s_"#X!!߀Qw7b{3@ Eԗ>ч EDa ?Y/L0c5Q~jSqZjWv[ a|3c?U7\1Tpgu4VUXq!fVs0D(dHP(jf(.L!WV*3)UWg=2^v.ѐ''oW5\es2)G&}BgIQ7xd7[8('x,FYsLuTw((iV!0?yw|Lq+S5Օ5.@RZ2>;nk%Mh(!B&[¶"HES%d!V!:@@|":3?c VQV` 4}B7C` ";C]iiR\3ZPxZК+ >U %΃–^arY1CNo}I~@PZnEB"!oz!G}5R Gwzw"!"03A4ir^P Ro x\N ]~spaXhIZ&raBC(;X7M6Qi 'A92*rf(+1r&'s(|2:!*U0U`f` tC99U5(!z)Hlq&)z6yjwn':H$I  kkgwDgwǥ{gvZ!ktA&}&T3B%yy$^x!_ȥgWf8gs4BR#t"Ok7vw&{{.m_y#Ʌ|gy!QNQDB4BJo xp^ ZZo Q [/AWZD[IQl3K8Uz(qp f!0٫57):SIeeeU%UWR<\VrafXZs@:rKb؂X'atH:8&hj=II1 gN@0'jCXv"hR!&3B#4Ŧ$D"$qTwvH'!Ls##xoA}i7t@, /a"{ywaC8?a ?F3_H!F/x߱?oٚ)* >|PV<>J~\YÂ=d6*6&qSz!qHX8׫[Uzh[ I3VfX0kEV6e;zt(Y\b(d9~7 fMqBA˄8HUI@([kw@P{sӡ izgvlwrZKJR^I6*Ra"s-w1Bsh$,3@"v#""@{O {yǤ{R""j45"D@?p`񰇃)MV)T:.XK7q: KͺmBYk-zcp{cAAPvmXzor1bqm2\zxw6GZ\,͢5aF@U1'8@ ќ¼gG{a{l!Հ Zl ZLҿ0`.8 0-Ծ~{B~P!//!Q. N}]иN ..9r~,s%|coF}F Ud r882Qe{f $sO8CC%;O 8թ s.ѝ$VWZː)Q˩C-)r̅N鑓jrAL[B7Z脥vwL A&RTlҖwz||'lǔ$4lƴ!0LTjR"d(MAn7$23?Ԯt@`m7hz"=3X /" . +-.JŲO/`/a/;bl/_7 >cϏrTC'N.RHAǁpc);vDzː:$@@!BzHh$i3fi3aj YYB`CnӢ!UaZ ̜SΙc&C _FXjv vZ۵m:[ӥU'A$hkk^ ulrMD(@|6GH ($8yRY:8a{>ΣσC@yhz^|`3/O=@O$ Xn [ J "=V= |B;o H$DQ^%&ahVx )hʒ‹;b1ż+R 6p/ &' 8 bsO>X3e(`C ?pJ9aJ%"⨬O'T:(%Pj:Ձ$`ހ:t= B j,(MT6N-3Q-m+݊0-̌[zyeS޻ށXK-׈ꗵ~" )tc)ݨB^:ޜh+V Ѻ)λл C ˢ0啵OԮ{/g>Nˢ@qxMk#֢8l/*ۋ`tG85ho}& ' P" K㨄&,ALeB ds?>%߭>H ,dOcUսSB;-P;&b ̛R g9yr F̢:SlP 'p* ` xF{h$@0s0B.?ń`3.A(:X@3R_Tt s]JW/PTC _/ 'SjÚ2`JMQZ08N 'DE dUOz$< JjF'$Y&9>m;N M;NcvSG:5kƱ˱G ,df(0D#:@W$Dc:~&IK.,L|Y^0y.;-MYB0.SAef~`3'MBQRŤ(M]RzE*ΐsDg8ljso)2%! %w:(!O?PIml3:N`Pu恈iVT6`pOZApxOLVerQp 0@(1i TbE^Hlbd>+5"zD cAuM [T%M 48$Yv+QcqtܼȋMъЩպ8?H=EHgHy' ?=H9 h|jbV N :#DuVt@Ynd2v{69q { P1/ܶJh lYK0ْmm-!s{CP'=']_Br};FxŶ%>xr|_E/Ù~o) Qf<; T4P Ʋ $ny*+X4ڙuTV^󕁘0yE8YSYKizX1RtaXrg.c $jI^9DML?8Jezkz`5<~$t\,!u#I=Gx88hƣj(0"qnwdi0&GMW /o42x-g%fAZm2ۢ oR9Ѝs,m6ȁRBKp ُǝ,trA('d s(8ĿgΒ' ov·q28vG6gʝ4^?Ȃ_Hq (8 0Њ@͐9p1` 1 "ʖ`b :aX" *2;a A+h{Y$&z=I;̓$'R`#"YC"#a4= #:JGڼ[5#K,]^ GJA Z˃I۵R`r%]z_h) b%df6e̒ydڶlFvH?^kFl${38ˀv, /?C's;8ptCمJh,I .T8'`D ܡ( Q \# ii9[Jɔ1kɔr 9 @ l Ad 0d a1 ! )[;јj5S8K+ 2*5[TCѐ/ɏɃ쀴r̓X5BLxZ:QC<:H^=D#ISL_I5DšЊ<B:=P^~R&:ٓ>*cE`F0b4 ;WJ>h> LjȀmL0lnĈqDXNyOY7uRAHC59qeZWH"JP 0;J\P u(13\j;Q(ʠ\x1+2 <K2 ¨ږ;ʼ KK23z"#А4 r*53$٢#J y4 ?\RAX8)StL1| Kb>j,UIoY^۵^.?0&?.ccp`,1 Fa-1 hc<@J6iHa H{c ؃vU.NrLW:7`8Q\=212AF6I>iuǻ0 VDNf5KTs*V$8;@b"&Dc8!^UDfA^Qj8%/,XLŬ $(dl 6;nIH1)|1P٭ࣨɇ1m9ٮ@9RZy-m'PY#*T4 "0|Mc^I-A Y5M5oj☍񍹭ɤL26")QC`cBEEÚ:0$6er،MOz ڂi Ud%ۺMkcl{dId?qm&e. ǎ/HJ$˔,}T$/ݳd%uJsTiRL 8Gb֩ @u&Mkֶe+Rڵ KNl䃍N>t< bQ$I+PΜ?)$tRq(AL H=@ IC@L@nm` YO4f̄BE 3>سFϊ`= 6/!Ѓ!#ط ~!-p@Р Rl盃p`yYa(?r[6'>!0?-`n3? I5 dZ<"# T# X&@ZA tHAtD=$D:Hn' b[?yL@ @$afd@LĔ$CVEBe0&>G/|1#QRtgb;huZPJ-Xu[[tYaDUe,Zu"jop5UJ]ꖒA){QAaɻXbJ.KRdaFQhN'??K%kHZ[m1nD6\HF0`rm5ǜp=t!X7GHA7x}wm^yMDE_M׷},eN[ 4hu~*m]s}m욋haDFz,3?8 X|M5{NDH9(Tڞy,)f6I􀨡39g [)(9IIб> `e-P/DC{\DR[/TEaPF}!+eQ(dJY|g?FTCFY*ISi[$vD6HF0\+Qm9e 8R^} `c+ye&3_) u@\@ZHymiZ`Zӵw_ ^,DXee,a% p_ZU:,`$$ˁN6 ɚ-lcU:Qb fB3qYV>r!;bm?2ע]PH,il#dF!)uH@YI_PӬkUE!Hr K ~Yݟh'] ǐ8dSyP L+I"*PAF4~Ѐ.DX,ODHrP!I@9d]y#&^hMg{ avJk֤?lK6 RlF3*>ѣI }^O7  ۼuC՞7R{͜0wH4JW%9P9 eI4 F KDŊF\|$<CPEC8aE8DP,T\ɋ\$x?`EP]HPkLD$Q Ez K<\fU-^ME??̐ fV} tp@} ՘ҤMDs0?̥=GM+zupwpGtcGz4!ZcQ{ ] +FMH_e_%ՀՀ[gVegP_ hѷ膚 1-@AMĺQI/?TP+N7]rɡT88S4N!I((= H0$P\S bLNJJ$YdHۍ;UE8(,TBHXb=NĸP!RXO=MD& pVȒ8V"p-hI-EF@l,k Gz :Ήʈ©*H߄4~_B fEjIPp* X RDl"'ipa=IAmj T5VrH%%\J @)pYTIԡʠEYݢ#_H$P&O&bDJ %^D@(Qf@kjT$jp~G+"Gqq6\0L M`ɳa3LZb͡66~86#]!:_ߢw7No%3saqIbhN4Ȫ]~JߤΛdI3I40ݗtSc7鍜Z]N!kNSQSSR qbji촎fœ^@!\מNq5DZ-5YS]IIp][u"$-t*rH*&6ⅦHA[2^tDA@O|6P"l@SX9\{3n/ aod?c{EGnF{خck4v6Mxrsemwf3:ִ:|N4=K0ZZ`qFԟI=Nɐ1 s=C,MOIåNrpx 9aI 4p 왌IJKx^kX0SWj,k  _ǻ`a"9Y5yfEuW]!!gيԩk\1]m]G]VK,_pY&kj2b#rd%&߁P;K(NF*R=&ѢVmQm17{ ګGn V9+ܺ7nQzng;coewu7[x7o2772A{># d1{V_yןΒ̒w N,Dk ?GHJ΋R?{wyp4pDo<0"NR Zz͝e k]kD Ŀ$Ho .<.\XX"bH&z4Y&Q@hs' /cBҠACtӨuHԀD]@{ЏYt [ N8u (+viݼ 䵻%I)'2QuB'@@   @@xv=_ 63fBFbj؀ Ə+WZު;xV}4#g#ld#1=z濽O<Ҝ I▷(a0 \Аy `ҮRiU&*O]A%*ֳ#cxF됬e4GeĹ*X tG9HvlE' HYQSehcю{6mեMDd!sIG L@LrG\!:2CHJ+L7: Fz`?O[ A\OڝUg>vH-@K}.p"dӚ<*d H=S,q `/%8t`4@W>iP҄ G @#pp3@@pk0.qc8\ t} JADa0 eX0Fɀ$xBz&g!@hcD(e IqfF-8RT++bCss"g)MsNq )W;/ds65> cTXCR @x#{oѦ \yTiJNply DsQJe4g4zw`5;4zaܹb"96y;?ē?!lG[\Sԝs㝨&;wG|k4eAv!Ae\ SGF*E`?IE;Y)ɺּ5v&%r -zƽ]//4˖Fo s^F{/J @4Q \YJ~ $rIS￈y4>f0]" Υ]@$1xbH@H *B*5C3ǚ"4\` $:8Ԫd|t8X}9Ϊcˎ̈&ʲ >z(i)h&fA0F yBL N̎.팠!. `,D:>ĕb)uEpF $ldFP#> IDkZ!|.jE'h6/nP&ji!\ @"F`΀06%DF$S@2% EP"d(\YNOEölGdĝEs 54"$b"{'V(Ѽ4!GX黌BGYO&h m4 Q(nj! 2*C^@+18 J(2n(`Rn))\#v˚^ CAXhlD8,$B+Ԯ2 A N Ǯ))?$* kt" <İ q^$K6p`! dGT$EB" #EXu+" 0BudoKKfGP6Sn P3gqDLd!Dc&+@<݈evk΋$$M%|pE [&jmY'mޯ("t<¿RbY Q'B2jL4"CG)H !<"!~M @ b.ɜ9@:^P5 9`l0A㩰*t͘ʢ,k( Š?ffnBbk&Bc:(M`L i4+.rFk8ҕаcE/_47Gdd͔e'3854[+ #TX$uZR[d͹0oKrٰKx'`cM>3CEJl~ "%'("Tk{,K_%bS8s8)&%!bh (ޚ:LJ/lb(1% :'!)(*$Aa,fJb11r>h ƳY[sBDp!s"9@ɈtcxBJ變9;쬎.֣DW& C#fc&8 Kf 62PcMgUj֜sP+M T= q6/ 07%qa 3>K3 u6$O'BvK"XHV/"X@d坠p q3USYWsn%(~Q+&}(W(kb< ʡ`YSh[I=YY[)B΂Aq%by{A5覬蒆˒NS@m(;dj?bADBA^# QDm2vl!8Vc&+I N~kV++D, ~X GJDO(On0""LE  @HL5dF$mjS=pPjݠ!H K M68e2ISQdJQYi΀n@o[p"&zg8Us>@5sG/kPV}bSXqhrM@r%*2(áY%A+b[[)yaB9׫Z%,Mdf&A8h&Ɋ*vJAJ&E 7҆DBG[ }[Dl`ØQDTV.D*$ B+F:V+ eAs fF8gbZT:JU@wMïh0`'!010 S1s2S,OomtFDn!&OM֊Ib!v!K"_` ''3WqՇ#Zָ#mYM ~n; 4wꀅ<2S;9|a>SH@0ǰ!U>\A îD^%ƨ_<=L#f=V9c^.aPT+7DdKE'~wٷ AX5Vu  [;):K9LהeMFq ,o 10@Qra T[0 HFp*4C3 JĐRE|XUJ ӮV>Ivj;z6jwj{?zO1}Q :Y(\Wx4g?C[yB*=[[b=0AP65zz#zwce f\*iTo C΢{Hl}?EUGKĎYCwcG<{8ٕ A(/`'\΀~T"UTsl#2: `p6Sek;(0O}; z!/"4N/ +mV5ED[ЫɘܨxeSqlZ]X7>Z#v#4#\8q{T"ү'RBSév1 @–Fea$\#>p3 u\sq bhBK3ydɕ,˔f,wjaj[NhN+^(k[]X00E]QfU+qyGAlq2|XTzrz6A{sOPm^d7ETmܦ$W P!"|!_!>R744>cDCE$f0Ta7}!}9}$!V'FpuW7.7hd9(|ewbhcDVd%W_ GƀUQ(8hg7sgr*cAVde9ct^lHE+KwQ:0Ð4d-4Z;Wg>1ZvQYYVevH?S+%ޡ+qXF= e\j/b-Q:MqyΥ0a]RIi@1Obd!2Q*1 4zs..V$%h_$mF __<#R#"Fhӗ`{f`P}Ig91FS/a%1PbC~~G86&GQ&iH!V(grH減؛H9$BE3Hr'׎. FP8.10?9I^r,( giQMZZegu!W<Ñу$=Qv5=js6y/Q!k3INHg[xM>2HY(сj,]8Nϕ1kV@2OViE2b%S2"[wLsL &mmx G5Y$vQ"Un q579Iؘ7hS'pH(ejj$|D~-pVhU5q}@dhre'|_䨥(!Щک:KR% XU g=D Y:/y1"R:t+O;L/9q[AhBK#K"r,-J;)?/:f1@qfjA6&mkwU[M,12]mH S0԰aY^\YB2|LhPҖO:v餗x$U:$wi|6ۗ/cz}k6)?kji} Y7sh(2s`W,c(b G7dedy33GnQ2=up388~2prgPWMB#p>'+a!:nff!-σKv[ufHtgva0sq0XiB:NxB:JwLbeAj/n>JwEO02˰+ 4汰 @8!Ѽ"P FЁP! fB7%_,n52{6Q5wj$,F|؊bq'L~fU[s`m9*W}G֨U؎*'FFľ5A2JYQ[P1?ґyEyVlÆvx%12v[** yB]R%p$j2$J[/K6!{eؘ|mw(0m}їe7qXU=&W"H"s{5A3!!  =r[yf!y[!PgnNS8I^w1b:pw6;ɟDn0DÂ!JĐf;dhZZ9Ԍ .ސYt$Aǒw?>w %+$w[\OJuTWTOWIW)@{ylbnNLQP=w\ "լ \6XBEnUd$l!.۲Z9qGݒ| G}fQCM걗UۿW=n#Vqxr0U*=$P OOA8:Q,B P-2t# :+mmVS]-SӪ֢Ms%nɲ;7;gp9ΐ }=N["HThܠoZݮA{w|z hkkȅgN@f杇|^Fa&3%%Y$wYU`$YNBFM! -{m9g - '1e+@qB6d-ľJQ©;NO(`.g!tgWMDPnB  HOYjIr^Ē:ՃZǏUQl}ҋ'>`v-;l.N0صT׉S?.\W@! .a HJTRD48SiR HޜoοlXSE,(L : ڔhӦ ^i֫t[ԊV9fBX5W^0N{wt P<(,q#N_$="!A@hX&:թqIl0 %r萛7b3rԪ8p0NP\\t!x X'CWEh\x` p TXЀMA 7"76'a&7C*P'EaoC"`̅*.?0\[ҼG`Rr'3R-狰L-CQ"Ǡ$rNh" b(&BhND7Zh!/$pBjT%L '|@(`BU4Ҥ2+\2+,/ŠM+*.lTCZ,20"єW`P  8:Z3FoC~CcѸ!p*.*:τ:봫: RaJ?rC2P'k'4ܰ +Dˏ*? ƤsZ>OcrȔcҎHJ|tTe>ڍ9hrJ9MOnֶs EȠBb!;(!BڼP/+PFP]tBm)TQab%pQ TS'z⅂vݭ+,b@+_g`݉ڻٱtc k+u15~U{  Xe^BMd#D   9ξ<IWie,;&ˈ҃3 eNڱw+ %>Bf#ý,>;z T +nx D:TX#*VlFÍ2"قk*1 %C5ֶmC&D(cz;S7jyᚦ'@cm4 Pܜ"M Q )*u&Q :$dB;Ԥ1)DՒC2?)JQR )CSz*'=H{+KzY hHP\G9C䆖ĭ2Ϗ~ԟ*X`e3o5s1C94$w*#Hٛ.ʐY3{pѩ,pHѤP9ԉ:9 0:%0 -ؙCK4:sG)ȥ#;Ӹ& Po*(B R+Q{&!131[@t _' 03Ӌsӱ BޠC=p3J@~6Bʑ2bn \ y8Y*[5B)I?x92/ّy"-b*K@AI(Sz,!͊B>3H X O9x'%%V%L[W9$Ċ a ;;O;I&RP{.1\cjPC{NNi%C Ғ5WJ\A[ Op; g;O)j"– <'5hb b) iTC.77 C:ʼ =>ė/[LDCt=׻Jp B " I@I$j<ٓ7X=+QҨ,"!XL_*-%-*B70r "!Q&#"i#7ģM+-'1J gvܜsGKz$%}V,VrT x NrȱcղȢX%Ğ;D53>  qL1}g0T!>ՑaTw8KjA|66ZHH[ۡ -i? D"`=;> ,<\H1ޕJY0#x!QW@YXE_)DU?™M!>ř40!#,UsKuŜ stŠ,9GlfM)Tv&C*m8*b ]`ݍ1^2:Z&ے$%5сNyPn]dqFh#S<#[%Viⲻ%'.Y5bhkbࢦb;H0\ l9.yrɌ0 0;{ s[ ;3Je{A$VN+qd>:7k\>4i'*D)ep>-aVt}##D 2 {a*_d(=  M(ƫrR>gik*msm7* Ю&Z:4/,s!ԃbnʁᐵ֞n3(1 vU% I#_j\_Bhb_- 6]r Mj/J7hpnx OnT %)o (B\+ފB3% )&-lBP͍is23ĵHXvJ̲Z!:zߛxk>4$ِLIm-11UmMɤ)-z@% i1Zf)'sܘY_agՏY+Hi B EU N!wп(F*OJFMs\Hg3#B Y0F.mzHg,j!ի Ǖ ]džX6mvXk]5. [uoAq>:c#0L!l GzH!ɿ@@?4Ф`.*0&L4qA T: jsMF((Pӣ/B hK `pMuE p.sG 2 #,u߇d)HXpKO`x# 4∣NTA-$@NS9IQJ9U 72`AnXCM6DD9$IIDCC9OSDHB9 =YZT`iA9[zftefk֫eW~e^Ȃ]tXa^k ᮻgh=Pk@A@כ[n&op[oڅ'^1Nq59o\@aF=ZAֵ;)qv[֤1-"h#5$AHF1DL XnH'oi ' lOn9] c#@H9D3JNFPts)O!)#S-yvg»lEUa-.|LG_ 1"&XT-o{RY!ָ ~G8t7M8w. ]4L>&ɍiTiqY Cm-oc|SXQ#Z!r,nx[y"ֱJ-,Nt7.HHH5$]"Ecv@)ZT^! 3˻kղ+bIesI0Y~Kc*/ꕭhսo.348_pBIj&$ A}Dk8koGD(w&1B $< ? E1s=Wỹ ǻpAJt~@G>~/ 񜧆bY áA?:"180[T"& Qe'Yrs l}Eh72u1GJ $?l@T[cQi$2'#V9J [zׂJ^K2TQ*|Obꛅ53a#V:s9| ٥Yr\"`CgZz! 0'm-=Oc"r72oNM]W]F|B[yG. {k8a^Xyl JT^֙a`<@ ``:|]4z7""ͦ9%X|s 1t8FFqF=r%3`"\RA"+&2==mRmIӨ5sY5q@<[X,j&Pn^τ$[&[ЅZ-Jr1ryVW kS5v3VY,> Zǘb. sh?`C0NU:SX>!inNǡq]oOmjk˺ im Q f7rOa YͿ;o @sgb S*|vHB}͌%w"ZB& EXh9xl;q#"ԐktCb'FA!'n$'g+Oŏ0 $`AqXߌؓ)DZHxL[B\^\9H|Y'EQhu,Eѩ(ŧ(d HZΝJehڟّݭ`p/9]܆q|ddƞm@\1p\oX"Q ч4ĥ "br)!ɏو,Z b)~p,0ƩBJe)@4_G0 HGk֘q ^G9TCmJ.&oN ,}Oc2B|Efd1 Z[ʈ6َ9 }mD&|@K|9׮Fo$~s-Zރ*&zMh!{1k[(LMbU;Yۃ:$Xb%XȋkjbJ̄}T AGVIgX %Ǻf/v H,YƄ(Jǀ8Q.FJMܞ(4s n~,ϚzRYP &TVbP8qRRbjnrʏBً>- om"<-E}Z;Qd /PIvR'r1baPW{@5aY. \F[=¨_N[-[ュLG2ǂX%,܇ уۈiKQ\Ga@.c\. `ifEʍffdJ)t@R[Fz AGt <ފoY 3@dQ642V`VNԝT@~jWH"G Oo0LSyaAӲdo *j~rתɓ["k(EtB3)CWD'GPv%abA;qI| + OFPJgbzY"(e)v: ezXJ8@O&ǀZL@LjZU\v,,lC`Tx"F`&o2`DVnbǖ 9-[ F@2xD65ӖlE~6X@~PvEkvDm>!y SdgOs2D,~,~u)_T;R;n,oRY\&,bԻT)JQS;#*qrV@*eA3fw퍶n@|g9mZJ҆4нЏǴ!mjwdB& t߰v/W˫vUObw<9SsQZO9^y:mK@8Pp $b%F!E?&,ϠIZ"9s– Xta i\颤&#?O1<'n0Q^ͺ!H(ޢ;E*t{*'i}rh!†uCA'L6ЁPExlܠ8x3#N3F(2װugh3h7?#xr#F,.]:BAvф M4Q_I ߧ&0OB}kKo@D(*G"|@k?o@ #"C g\ OT<(")$D>< 1JˊVi Rɡ V R2ȠD*%DI!IN?}<|h3;.ï ,ʒr+.r.^*쟽K C/,Tcu(i2tY2a9{BӐcx԰oX@ ѣ1 Hc E(A[ \G-ǻB~g # WT\̗_f922ARM5B6zHl+*̯ r(\Z."ǻ'~7/(tQ?}2 H]@)S)IŠ1Nª,1utR:ՉxkU^"0txv@㌲AˎeֲcJiEpLH\ly7 n\Gh8vε}w=[)¶vw[y[G9=0#Ю"GJb>B ǁ PL2 2Gj[ ŸA4 HЀpD"2m *RB"3 5=VGf!I E3hK1V$l`{d&1"T%b'2b dӈ&r'qԙ(r+$7'4THC(TYX:lRv xUazjY!e^dO׀u0l!f"cJK8WcG.͆443/~u(X `Ss'C|@TadQC' }81݌&S 0@Z4h63ώT!:ZC"g@ôMfSJ\,T۪x72xjJrS>$L8UO-izMaJk:й&ph' 5mH~\(:C띵 G2bm AvfSяABHM ޢ G&{϶Fj H?zX،Bt "}J BXL 6#OKUnG;nh2D3wְ:>hnp&cKVUO&g8Wslg9##"_ULӆ'i&)&tKi=MlL"(Rji&FDD0FDjDʅfe>j$X (DCvW Ch\D&Jgf."J&$9Jr㧼dK& b#-.0Ͽ&h-qN0BNm'r*b(vx,,7"BȆ0uvwG4sK+fFVH"KBʣHH`paghV$kH,r0EHV 4+D4Lͦ䩀$&B!ʨlbOB5H$~*ƐRl'P .r* KI8)r'W:3NNpޢ9O+ڌ%3noH8+n ̢%@קrLR*EZp"vn[~R P*!c>fatƈ➬D cގ?5"\N$HTK"AZn.dRm(F)YYScL(^(G n$L *nnB WKf<HkTnf&Чi"s`}"Rd/Lw2شr尮$ Z"0,SWdw:0J'#ŰE3n)5)R(S)lHTk+NTiE13@L@_mkfI@VgҌ݊f>6b.}TB;BGQBiG)ZuUE,,Ոx^hlDqqH2abXH(o)f6( X $si*ltU۸5&'Oa[Wl2 #'Gdwn 9v.%9Gx4NxzI:S@YSxf+)W(|+tIR=WNRA6)y~T)u05~+j)HtDD&#$m?9z.2iRzdDH$/6(d[cZu p[r/$CVdhdXXgkGZ4enjnY)JN <:(ͧ-_ϣBNKnЈWuȊ9¾4IO!АL_ )6r$Jʘ$nl;C+ :08sszd?cwVi3<wyD:pVZ|אklf}hԬ}v7*67T,joT].9(ibfƠtK_gMfSTjxxFQHcZ{(kry(HxJ_)MƉ/ug3$',ϊY"ݲ8o شڊc1$aȷ*yҪ2tš۸1S<7<( K,$#AV3Yjly Yg+rU?_:d#jTc.Ts3TyZ;leTGI Z=tAu.Q2NƸfHC0hPX?kN yr,QļQu鰮RuS5~DiFE@i-zV:lMLȉ/fЈ8 ǦtƸ*D+Դ&DșepE/!⋝Qs[+AIel:pi0.o "nntov}`!;Rx1\;%cxyYxG)y2WzBYVڐӼU{ ^(ۼ#eiSE1>ivHk=sR>ǻ>Yi3q6:yUudCg2*m褻i?H Vh(FK YY8 ZYnV#իE2/sarXC^hEND<3 UwH$um|JO- A )BPP:rk§c#cɯӸ!c)6_1Nrx$QZ;g|e$Ɨ|r57&f{:>V=>^<~)YR,)M_~FM e>rZ(E@JW'؄$D\=DzsJ10}]8EvJ򮇴#ׅ(-JVIF5GzħT] 0…8BFA*TlȱG@~9p ɓ2`ٱNwL¥G:l02 D OGDiGԢ[U kl UFtE|+ }/}[ވe߽-[z[[1c# z&7qEk[6mz!Ш~F(/{Ν orlj7Gu *˗Og8j984@Ff<<.q? rV[6^Yv6n9x` `nbt@[H(FO}KuRL2TP.#M/RSQSQM%LeUXbYUaD%hU})_y$Wt KaXg#pzFQ&e'{҆sh+V"hn`l `}(P='\jat&p\xaڜr=W޺Q \rM'v]E@D}@u)Vc7Ui >bNxl FXP!n齲5t j%^ZE-I/őTQ4$O-  SROKLSN"eXIT]%QeYeZ6s+cQɀe&cì~` tffRqhAE@+b~fכ]on?Dㆽ\w!\ۂ nvnW}9 ]0hMwmqWed(F: څv[B7C/A%/> ъ|ݢH!]lS0%OItW:%m='/u}#TTR%[8ce%Q30b35%mNa<Ɓ ˜V-/Z iFyӶAZնdy2fC \Xy!tӄ&\qx~2 1PD ;"p׈X3E~Gr\eBRP:Wpw ϴػOTW T"J=PFƀr'Rb'qld,_ɚ22Yid:pTGt5V(p`]v4hӜvSI fCa3$ )mje9k# $+TLĨq~0|>{sU t h0ns#VG~"Iu'T(x6TNlz# m6-'QNrD #ҐɊeiN@iʥ )#s8IJ[1^f+k-2 d"# bA:026Y'ӠMĤkԱG*g;iSy:@P HyPA˜$97aSU9Y PT´TjHHIZǢ!g7x9v2-x{^JId}U0ӑڣ1z1H)=BH>ՍQ),Q:XW3 ;v aŒWq+dPQÌ hLh8 ꭙ!eX٤MOR꤈1Ixc|k g{hi-%UdfiaqU`F1Ɍ偮 52#D\"u Vd9Рǵa+A#BL?4Kc y3?wd},fMzn/'4FlMUOJ]jɨ1*~}D.#FLpթC0Sɥ jK Kp hCkgs  3q8%#(dS[s7ffaS=!v?<װPn:&O$r7b* G#F.?077`6#8ŕSA,YnĄԧ1VyR xZG܌Sfy:ÀI$%:ԡ9Ì0; s <ک{N±^avW"Jd!˰s &frL|8u&/PQ8haej'hRj1abVC-hB@~fEWVr.e~K74Fˮ޹FlMȿgy'wHsr^+HřC ݃H6yMST0TitSjwCQ*u=#JN< IU_4s`QB2\lU&3C2qVa[qDa_5a5h%momnE(H4}@xxr44m:86A=7ED(0V{)JB GC+CTAR#ewt29v{7rK21>U*dʣ}E0,f+2)`.DCXvcb89.R6B  jisjn7 suI s=eW#DwJ"Ut1`C]u$`u3Vxw,2i8#.p;(MKQCJxxebW޶~6Bc5ބ);ec6W**{7)#piMuPCS|v{Xd\w,18BWS!F_uCPac)iNX;5"(Xy."; qqHDWf9zi{֙{#4ķgPY#}2GP\D1o_">gh)5WI}CB" tuȊD৫B2qUS2TAqI4YK`U)gl6?Ɩ4l8samo(눡wixmBC&#Z-*fXQgn8R8MpzDV'te>j{)pʃ*OGrD4*1GXucs/NGh*pq #vP~.{䉰;Gyk}PqYe!N!r7tykwaj)o*a$1B>&=ub'&%m'm'#aIK0 ʂB#A!`Dvߓ0\DJkk%&lXKf}wVV斁V7 &R'w#g`F˾MW++6KShHF lW5O*LWAgm<ʞɄA9( |(&|@h1blW|lˢLԔ̨ń͜͸<˸ʜ\7[7Mܴ/ulvqn{{7|\M|͵ɍ1˷\M[x }rrvqJX9\K*Oo2Y"N-t!??xT"s"sՄF::?pmb|mIKMOA1RRV Y]՟Ո_Memgikmo q-sMumwy{} ؁-؃M؅m؇؉؋؍؏ ّ-ٓMٕmٟٗٙٛٝ ڡ-ڣMڥmڧکګڭگ ۱-۳M۵m۷۹ۻ۽ ܛ=e ɝܡxaܠP@X}ݠܡ2=ݴވQV! ]mMX=]J 0׍(#:%^q+NޡeN)Q#>x;~,W%n[]ԄAU^-V0C^p6N7(R)NzN[eNM>䴁6Y5SύIݠiʔ(h46nZmt0N00埾}X-Zݦ(>n~U.~ !aPmn}-AANMLm$N݄3} O N e>-P-ց D6!#NP[^"O vN`"0͍nc[rOnM=#J-ZS(}ޟQX}}^n=ֽܐOXp'.n?Xǂm~#6Z!>>|O^}0oo6voo%UZ[n%^6F9/2?=N_刞ܰNoCO 'AA.|A |E5nG!E$YI) c@ zc((=+^D'p< tťht'A@7Uuzx3̦z 'Ǥ I= /8Ÿa&\a?T#]EŃz;à ᡋ*??]6f-" DSC1ƤHKL:2Мr4 {gC:O@Sp:A;B4QF-iutRJ+4.tSN;SPS !,'(7 XBK3 C18&G5A3:0;hJR5%,0fEHO9FUaN^aN|M ߜc{6y-μУKNرˍG"Ë9 ӷϿ̱WK T@5'ruA߄Vha#yj(:T eMrGT'lw\9dވ@#J),SӪ%˨qjXVa j "6F+}c\*w- X$KK ]10]9Ov미 ,2`hz)?Uq#< 4Ys5xS#|tK9ϱ!92-hM``oYvqpm7kص3%Twa)ЧNW,y1_J8x߭ a?/ .߮{bψ-P>yCYWwwܓu+ֵ]FC9vy;/?߯2. ^Qs\Ma=*۞|.'ߠycvdwQfe+c]y#2fH/E$ejb R>Epdr"(ޣ\$R\/%GU2p2#Hc%n 좈N@?)yI"$H<`@kԤ(ʺM`Rϒy㒣,SDD̥.wO 0 ?z%L2f:Ќ4IjZ̦6nz 8IrL:v '/Iz̧>~ @JЂMBІ:D'JъZͨF7Q(^6(=JR^p! D7MYSՔ? j@ԢzE*퀪`ZҪRVEH?R.]Hu)^:o5[J׹ $g @WlT_˒vðMa UxGd'd3YشD+24*KZU S@Ёږtm[zee[Wf*`|qnVUU,I۱]DdC[ӚFS'Sh0IzU)X7 ]5U~a߸/ p3pa cpYkZNͪbWLX/oh#kǞWlO "Ʃ>b4^ҥGF_HZ¶*IJ)yZA Zp%(k V4X f%0m흿 6]+OX6,.]>˒T6qMklYTZ &i{4J+y/HV͊6)MOZ[*҆I:Q,.ͶL: N̬luBƲyuP=:!_'{Qi㣎 Pd㟶hTBiO^Cݳ$S> 7<{<] Ô9Df>ny*}a,,)Bma^'^3lwt쳻&\wQ Q H!on=wύ aީu?(QYTNE-.T"!#6Lʔ+Wl_3UY3g:iD t!BG1Q&|T!TU: ‚D^=I =-6⋅*| jlߚ00OoZLq#pa 7ye2p_nlhImH*Q2(BCZAwW.m1VB$BD5)*ƁKp?kB4_"jJMjr$!_Um^sׄR-5[+ꂫ4Dc & T(D QcH'C˞(CF+ DJr *ԘN-8q;;m''!ӳφP; ҆:߲Teju(AK}M:Ǽ&J3 q0X+qD[!qyehW]'k3LVj!͠-א|I\5E`*!pcN{ jW M⑁ iQ6eǵXNFUA]pŠETyBL(W1,tOJ&vLXDvDK6֬fA& o/d浸1s 6o\R.O刕pcئ$3yb5JojHo5i O8i6sRqk.:öfX-j,t!{if)UB4r rjO\W,%\oĭЫ68FXNK!aE΍L$7T;tfUdNhbLM."bj#,JS ({Q!:F\jTW1eF}[U7iO#,-BVm)3,*(%{=!(ENzREҤcdzW*)vj=%!G-T*uT|L4z$L#lFܤ]Z-ۻl`V褓` 9]y(2b9Gg@S#by3dmP^.6ZnUBuQ1*w)FK|Ȅ?܋!U4B$}eU_N0%[^3xM0{hh=ӲAn폊# 9(THVaGx1s/Īɡx3o*^nĆ:pֆΜDEZlL1Y)rWH8zI|:m9PZns62UdC!HL[H* 2$R$Ȩϣ߻, ʁm-vj)P 2^0AҼ0mXf\BS0+if PyX]O}}Z3p:)P/U꼞L_e}!jԸXE/Y ߙ1ڞ.WMnbTI]Ӯ$qO"w;GVBbQͦbQ{OkH6xKr~ iloud&HBf w :e&<4jU=Avjm勹lTyؕv<9 c0'9=G+|I F3#;Xxn_r+ fSLs])~2fVW>@D (j[8j6 ?4ٮ.07&=t0707@a錦+ۭ$iɫDxѓ0#B=p@ZBkB Xj2 Y?; %Ҹ*۱{@c;0ld6Qˢ*M{C{9>9ںO CCl:X?8"9D[>S?ɒDID˿c{,{5EC>P d54 &jB r j1^\2LC"Aj0AEjȃ3iZAb9l8 +B8B#8GE;ncǎ=)dZL,@% 2kɧ,Td#Ń@@3H{9Cz9Ct>[[+@LĒhK rɧ :ԹiDIJ+6?{@R\5*#>g;6]BÌz4Awj!ʹjp5۰,E4oX5NA?DJ?csN;6{>NCŝg%^#4J C#t\OD!L$L3Bh$XKHX%^)lPcU+3 ,= PP&Do[w1 [Joͥ͠&+jZ*"/}:ɢ"K5JÚ|>BMŜ b@>>S<"oɊ[QҐ-`lOs $A`4^LTE+sax3KSnje[LpLN'MMlc8W< \ !0}5&gUK Sټ5MkμEn R '-ʶ֌5t`4LE̋ޅTKHˇZ$^THmP%UQ]PУ=TNE) կ^[m\_UaUBjU#֒u*TBk ۊc̊=4@@SۼMVNõItJWzݺm7tM| ܴ4䰰S3:R]~;܇m8XVV ϋ;؏B=V5ً[%Ot(TUU$ M<Y8UP=c^(cT|WUL=.7_"ƾ[uGV*m)^V*< [HL-JdBϜ[]`n^ eSkt]~}'WveҌ?8f\+e-R`+\heSculSdPfNeLVQMfL6Amص SYE>YuOlbDuY)>)ϚE9g.{ޭ[PZԡc:Mc=4>h]KTu+`QZhUNU^\=ƌg9F}Nr.eQǑ&d'?pE~%6%tIp kXhk5ilnVf;Ț/W&uh娞ܤj]]*^. t5v~M6e"e5Fbx: ԼiinN-YXo#.ŶfJ|O~gE^͖ g~nP3T-h5FcnІvS}mH:ճWr Wؐh=4C.F>VM[t@d& iUg Xzϝl?f궁olؚYR}e>fZ`x6eTZV6d>peNp]`#W\>M j ?V O1iokn6}nNgnT+Nqgc1&y^c@3nhמAvlhU }}-F}VZKn"gq'HsGB=dBsKiF{nsiUvCl81intkk&EOjp.o>o]Rn^FWSˡb^p&^dp\oPk^pP7fp7Ees6–ܥqdl]Y(O̖yFwP//V4mJ8+wMrv'G7^<+c ~s9xq}~ o_"sV6svDP9es=Wjv|ioHpnttdGMfGoeou[wpT6zRWe~:݄&>Wc>WXYzXk{l.V7{W{VBhOkMٕ.ls#DEfyK}٠}VP=ɗ^+('`Z/mmuxB:}^#vZ`Q[vd5M6GM"cɴIRwH(rHҸDOlGtRW\.ӿMvSuۢl}R/8U%Hy {T}7ރMBف^yZu\( YĐTAшyQGtRBP܌Hl0h&VI@C-ScTcQ Ta% &Um UmjEYe]lS\nag^{gVY%ՕAUTNiTd FMS&LFk"}jg妛n-6Pq5AaGwCU䬷69HW߰8x-JF}߆wLrh.Š'B&TD =H Q~FW,'TZVy 'ans"Df>EO p(r3:+T+BhU)݅ND ڏHd#553xlnUi/1ҨJnt#)?3+U*YSY41eB\ ʟȴUe~C콚$y!$jLaӽ@zh^7M/Ou5#:l/nsFnjCЖ-)ݖ@[Re*oYZF8[bt t)TFIQgqW}!mK},U:XtMcؙ^,2Xp '-E{A%•G}bZH\Yu6,a:1i"F&HQ+E-TbKJ6kǍ iyh1238MZ'SITZ;7װ]WCh ˶֙/sAP2p4m5U|琖4`Zb ^?=a>Ss~_B&6MXƮ7vh}G %YG$us={g*R)3*MP@ޖ^=:\o{ y bTig>7I|qDZ*qwS¨Ty}pA-t_`n٥WuX:Zb-᱖SW~볿@>E#`AM| U#\Xm)_[hA8ֻ%Wi?q^qyy^ް`޳  jD^r9 vT8i[f\UP%C!3YߴUEN?TaTС@T.TY\U}8ث'ڛ,ΰϸՀ \_ɗGMф0T!XF\9W-uEaVH[ r DyN ,)#4FŠY`և 7v#`l5RK6`(>e2ʛ^WTZa0> .nN,b"CB(6aA!X! ąiW)aXMM"Lb|ЁKb TE##¡@\B"B\A"Cd. d#t D D^%|} aQesI#4>) }6z#\F ܷǿ՞Q!!_*a5f2 bYq5ՍU%5f=^TJ%i=%TB?6SA:B&B"hi$:M  F7l UܚU)ؚdŗÅYU H$`A9rj!=#<8ܤ v&#$$+6*5Y9dwM-aiB%U*>NV:f hWReXT3F^`9i?-`^e`r W5^ZRc#bׁb槹#dKUn>c Sj&ԢRܽb+.)&h&Ni'LRy URo L\ 8 !dJBrN٭j N>0`0M)8lnNaB*@N)R"@N,9ޏ֢.f0aX6fXhU[.lD}'8,\)f,ԫf9Tjn.k%+f Ӫ맆۩X* (6j ެjhڂk-`zYJUj>@ eq ^.N(S GeFnUr+(<^k +rZBkJF,y,"췌ؑ]Jr`qJ1ȟ*$q'Ȣ+[s6gf v!)j'€0laОn?-Z*V*Rz.+/nݜkk^cm@j?Yƪښn^ٖbZ­nUxp (&- T. {0 ˰  !nE30:.1pՒ*/hvCꖮR1.yWn/U$ϡv DNfRRy9XIUD"U"qjr Fs6gnUL##@ 8B5Hr/j&/ꞯъnn΂Z(fU*j:6p۰*jn@Up0|^37@ &PE~( 0DT0U2Sn^ Bs+1+fn-Dz+:&.)f&s'0e@UlhnC?#d5$,T_Vj$yOF][/X%dUl: CϩqVtlFP6"̂/COC({V*@@[q{.qcbE/-NX+0/-T*ꅾ\j _h8GU5607K_7 8K9368r-K;;f1k>#?{*o)aj-( 6T26*:FS4yfѵYEڂO땏I$Z9iJtMSs~~ ,lP?΂j2xv~k/ц@(i3<7k5W=K6*.+- \3k[4adJů2B` va4荰cKd8x:#n0'zpfg6bR%ci{?S>vCk2R&TT6@V?D@v<縪nCMnCF_|oGoJVEp|ǟqY U6jvTp?23/: S91`}_>-o;矃6?@wܹ@'p[k8bE-b'D#F|G#>$Ȑ؇QcLcfO?FD[?7KH*֔"FW=^b qUpy9m.|PbAubfYSoVÏ!k4ج?kbƶm_mW_i_V.ԿShb[lhKkZ/XgڗG/Ɵm|2 ˇ+[7qeƇ5xCT,AD#k gpB(ꨪ\"IhB1T&vM1xG}$ȝJ*/"%w#:ѧCrjįlȫ/R K[4lK5 's9/[FsO$"c0>ʌC? m4(hD&5M50mrHrs7+ڈ.z5^',::o/O4dK#VeiLNsKE:Y7\pL* ϒ !J-qT2Sbxb b #IIAMƈJ%UbA:1(p4 .CBp];tBmY(Y eBHe.*w#$6={lh3(tG$Z z֟TGUS}4U7Zp;}$H61HIwO J Q9^dTH$bg/2u]$iIsȞp?$9"#q[[ #% npáL#4.W>ybm|*E4)pVUr bqy\"wd;z9x2g[|3#NiPfwAI9W4'Tի:U!T"DĈPg8L#*L&u֐fs璕MF[+]{ix35aTش{ک_ ^$&C摛$4)huDE*` XnB VJT?Q6X0&>!2t+4յ#eOΪVsH)G2=̘4?aM 3)wdT0"p^-j6%AAoGSN;p&f1Bv]=fuFfoAbo}8s.C/BJRU+5'ny/v2^){irNÄl,LTwﮦ کZwW[OŞ%0co=%UCfG&)ՎF%cąWbLi/ɭV'  #xŻe+w %(Lv LoXD'lV#2`{L&*`-5K iQ"VyM(j-Fdvs(N^}oIΨL8%ϥ*YPbgЉNtt}E]\v#e6r#f4m 6.]{uR $;“6kӮF%iI Y2O]U&97-a^^jg?[)/sE2mkk[0KҖ3$r08 Yyvċ$OHϞv( akAZu3ͤ:pO/5;Y"EF+fGC9.ٞ[le;0W90ҷVmEbBqCpp qf9h:q+:4 ڍp GR/F0/ j}@/ / a έ2oJRƖzf/fh`P ـ|~/$j#HO""*LLHjȏR+Z.4`X\Q"k* *`l&9#:VW!B*Ys¦l\ǻfKIu֋vR!N,_av )לJ*  hjdj.dj =r dFF ?O"F$/Np$P a ˰ sr7^RJƭ~^IJڰmMنȦ ٌLi}rfɄ^0)1-Kmr+80>L,͘Q@E|dP0kqk6$fkt.S '-͖nsd(ZCZ؉Ӹ1EP-OqA,"jFʐzt8. .Nj.s!r"0p *B* N(S%"^p$a'5~R>a%;&k"'w2(#H/ c$?*d& iA$S>a$>B8CIBsE3Ǽ Q##a1Ⱟ#88mDlRďZO#X' (p1T8zOTր6^!WZNtȣJCMY1)stFZFGE֫5m D^T/,Q" 4`P4I|Q%,'h)S"s;# ?$$\=YC=KrU_2&?iU"V1b HbWQA#PAWJWsBIr D$ŐCM(p tuZVUZuS[ q&CU5UP*ZtQh&NF/0F7G24:'r5t'dD9I4f sak1qs´ 7L9+唍57nЫgFioF8 PUP1QQ]p)9Vp7S"(P#TT5UODkDY>?%sU6 Op'U'5noU\/n $"oo@!qP"rLAr%br%qM!s5",Ws=@t5['WqUWsqn6C*kފv1E1b^5_1nruxU#nHv6茡bNT9,a 0c 33.dLԝ@';4n;M-ETOlF7gFW%bLPX]A 9:rRS"$!"("5U P*ӕ0lAk˶5'3VݶCa%e =n5"us5Wi(oIoApo Wp}؈XpM5X؇7r-׊*qsRqXXuW}b&Sj5"!P[fa^8x^7wG7SV1(T;abU Vy9f ckZJ6MA3(M7xS!NԀAQg O5mP/Uv(xӮҘ %ٓ?4Te2lC= W\i8uYnoBo55pqqx}bWY8 L#6%_3US'';;x:e;Oё-98 ({ǦdKc&', (+Ϊ4onО#<*R4LK. _YZXs}:kVd3/j3YYt8slP *8'UZ!r9kG:kaz$e@Ir'6͸#bR>Yw\y\bYr3sXsCwr!t5[%7q="B[ \#PUZke{u%¬ck36.1CFZ2Н8ZY˘=ە]'Iku7Q\]I%[;g;ս1uzՃ~/FA^ay Ф49h4n8j5kص.br~eTpɑE!OP""]—o!}/r44l#?~CųutqTb?PA\r }(|_Zb;w.1?#0O)%̙ %kCX;%'Ny%g G=cjQ'g{fJpUӺzc~9ٵjV-5o(}^i)p3p0_Y_W0GMsqϚB=v'Vۿ/JKEZi{JwҞ=)4gN%MrG g=:l >x_fL`Cr< b/ \BP.P xK 7G7{ Cg 0gA!D NTJ }QH'hq}Sg0 #P;RG#M8$ fhMy()GrL4vXLGtuYeYkq?Loe^?J`al ?kXra8eS8MCԎ0!y?`VZr$ ,Y?UejeTQr{DISUIsK bQ@'PQwĒK2 h\% XC&RĚ)jj"&5E-rfWkrZdcK)mZD ^fax,JMB\"HJfF-B@t ew0Nqg3@Qr k}b l?Rf,exE ,"h7tqy޼2f-"b-h1ܒ%Cp<4aEW? !TJ2/2%4j^s/y(0\ 99>s?HBZ+j|2t>3OPKIQKlt< I3>th\,8fL&TMiK-µ&.CljK Qlc~J06Xi âTFGJ#Cč6Jm4BHGXʼn/\h•aC\ |l"t1xdhBc6SMC70 %b,B=Ұ3&0M`C 2-RMojsפ&3!oeYц^_zd Xs\#o0 LirЎ(&Qn >I`P]pjeHFO#)EXF­#i JRENmK\7 qsxM.Xhs C:(qa:ƅS?<GoK-0MUt_.@QmL"ÉB.ž(kSTZExєew)q5LeUuKN𵖕C+37Eg"Q1 , 1 Ԟt`s4fp-:fr|]h'? ]_hȬ[%fK`z'ˋW4c Q\wΈ[J1DTt%+?H`[΄>l 2#c ΐ10Bk'G"Z?ѺZ*Qc{, P0$[t: Z"AIs"_>h`Ð2d+ Q&cc_1?~O_"/]R ~M)mY{[m8i]),ջc|x˨׷E@,TD|W4D8c5E EYsdeRo[.e*լOM?4.J0. Urq>[}xwg tuIWvQt"puPWuv ӓ0Cp# Rg Rt6X1Zu4i#vs7x$Ӂ$tI#vL-u#0usf8G;cq vqIU[!?`/ QJTW@v%C:lcbw"K,miu;A}gi}9 !pPA|Džv1O95b-p Vkb4l_CE8SSRzdQ&mlm{{hb5{5gl%1ndaKq7w,|LuFHFU.(r NIpdpfVY^bfh5~JӍʃݴKc˄K2MY(CҎ UP0+grB MJK$Jr*?i/I/RtcԓXW C} ހv.:ޠ6 "3%x"Tjӂ,,BcFwv)Ua\y%Ow$x:d'Ӆ]-  k1cIq^Jb98 ] `]%rİ F RszbzzGlR{xRRȖle:{f1_bAz0TNq>aax7J7*R  Qkyt.-cmu~lބ'fฏhedЀ`KJr yH zカèe jKYcw?YYP P 3 IJC`WP:<:Ѐ(9x :dZI:n "r:v7, 0 XIjY  BYkF`y a J$9)B12Ј >kX# a nٖhzQR V Gk Q&niR fz{YSE|XDh&TCgyIr7a@2(SDbyD/w%c2;먥I.)sX 7dtKY eY sQY͹۹3qev:x}fZ`bW\K+CyP x jﺒuW@QI22 zw+Z  9 B  z-9 13W Ua*3 Ij4˰Jʈ@z!  0zp9Đre{ƀUp Doo_I8 C|GRDGĘ!&d+0a_RDi5!nQR+yײ/GfbInV g6YdId(.ٺћ1T ɶjr)ʙkeY 3?D1`IJx x) )p!+)2gD; 㻰U  zؒ%?8! *2a4{VJl粌 lJ.{$I:_D: d?p$l 4s N[/ UˀK J 'q"'Հ>tbkALP$E;7q&l&Tq )RmFx8n~o&d}U[u1RQꔐ[ V LqtZKzל  d{ +ٜ !!I}KDpZ grcIP!We4.biU}̀t3۷,ܮT ˽͆ { +ɭ, h,8yU`Qޛ ͈=+H !`J* a J',!Q+LZ"z}5Q$IaC{@,Ssa(CSRzB6 !EK4pGKR[AFS]F1 yTX]y-۷[E&/ƷI.X I;HeLM)X̫Ȁ d ؎r߂ys嚪ԋjL +K ̀ېt?ag8V*&=3B S82=Z0JWI ϳރHߨ}?@$¢wqp,G RS ]IJ ofr{Zc1?T?!xby6x'ySqB{ l\sHnd-~F)8VNyK2bQ ۳l g7夅r娼}LٿI9/9ߎr^XQstr x˪ɵɍ휆Mê(ʽ|f a̻fӒGғf􈑭pij5 ,0jX#,KC#0C`,aÒ,yŒrXrzqbq52Ǯb/,#H+im$Rn6rgǔ%LFLS%Y62-0MKS(;'@P@I!4*UTrT Z"ь60t Ls#LNPt\"ek_r4P.IV."r )6**a"*RJ) &* a(Rk砥Ec*71cui|h0->GݨNCMj›\F69c!Ƙ9bc86f6&ƹ8cbƺn9gac! ll 9=  >ͶTfpi rW|G^GkqGY\1G5A&p!Kyƫa>j{\l-6Ω획M>$;0v MPՔː=MA 36Aa:Z1ب:A%aƢ[V/*P̡W=! %YdV]HMv2X h3 F85`Q1D1Q+p͋>0/K.LX%Ĝz0L?0GAE&CM/\ mGbiFֲ kY8n>pa8Yxnf'=;{\pN AOz"Imb{5X F_z ,-?A @Zu%zk?P"_hF^A[7V XBlX) >]ͪ `Syph`s#@;9#Thg8ON,e('@Ob8/bjT5Q`2 40}ЃwUbJf}h/)BKZM ?" `?qHԤ )![Kҫ$"FH `Z3 f_\ r BD0J@fXCP-b{8 \va4}[+ô2h![YN{_ N#,7!1a12X87ytk2xm6|9}O>P>(1e!yԁ`CZЃ+|Y)D8:A4v9Cp@(M{H@ɡ"Չ_4c:Q @FM?^]@vXMqT"Lw5f5U4e `Ǣ} h`t9 "& `"C7x#O)DPy+"7! `eXH9"07R3c8+BZ7)2sl NUHI.-7 3<;TІ=p;[a萾ѐP"%yC/>3Z:Z%69nA"-"C4D_@Fd3UkPpآkz'>x>X",{>h3R;9 Q (N63"c'c/2?*B2ޢH0`O.:AH,:I?ڊ,9X[x+R""frx*.?l$Έ1k#'2~ˁh"Fl7JLL!P͉|ӮMY #( ~,#$,t0A1M3T5E|,{OHJ_( g0 ՑpZչ'M`y.3N<p &S';n@;(BQ| ,GWSDN8XXHM_)hVڄ16U آ0Ex :;  6 !$MƒOT/+O!e-k(ݸتI(ު #`΍P2"y0Z]y Ԟ + ZCC0 Ѣ5 HT9 lE+B題% ]<(*⩁p-Z[H @Br[{{H^[ȂJ`*[rp!{Dd!sH؈%,vQ8\Lպ8!j"EB"F=#0\D:?IK?oCj|S L5RLX'T*t"= k Q3FpS 2(Nhψ ")MSprj;c99Jf*%@2/a8QYNX\Ms[0=HsXmӝ rڢssPɈ 3Id`M0nų1jٖݼ͛">`晍/Kp=?;&4݈f0f-w?s3ȋ:XP R [29 )-?DԬ)r)R)zr:?Rވ׃4ۈRDseq(!PeDž[Gr4Ђ4sesA?b3 0= S!N]-҃p@ z^$#1Т))N"@Cph%x"_΄"ʳ+ &$܈S(Y`kϰ?DR;(3ֶC;&jY9nELbkȲ=̉I,4,>H%6 Cjs(ca@E2@'u[jsꋶbpN0EN)5A{ө3{O'"q䃄ʎL2>(3Eۼ\fڈko)58c,rz3ur):Mc~RHWD)-U)`*$7S))/ae"* 8e@ZK -ڋH`HKCMowGr̴trL+P 8o0ݢ4oU!8o@b07m8DpB$܍cr]oU`'?՚,)F"%Ս|T4ߐ,(P %qe.(ʂ3o춾W9)s"ms\)ɍR ʲ,Tm JpiT&%TT)k`l<@0ZXV77(c909=d=_ʆft6P=kt-^cKwZ&S)p*[I/p0³bG)R){)enlD3(3+RvdASvJjs5DȪe6fvrP2a]){ChZ)В0!zeG cZpg\@ Za00f6 yP,{e)0 bÊ&]k"!O9Byq,͂) ?=$}xSRʶ23L5w[ܿI5!n8s5C)r4WU.HyIjYbWڈ38c@?k"yc&'i0cM=n%1+V݆exR!sа2N%y0&)Cllhw06ȆtKw`zKot_}Yz_,&!U1}ER/OX;tb,og'67!KvԴhnvc "wi}=mG@aq /BU|!RƗ,8xp#ǃ!|d"ИD+=gH#Kn2#_Nfv#3ߎ&K_M!1aFTWjhҤeHvLB_p ͵ކS`* vMpmܓ"ܼ㭏CO9%LH,ըSA _zeQ8/ŋt%N\!M@ևhWE̜sG"U?&Xĉ!&F2#` Xt `c,`¡lc5c6tѢ%Q%lܘM v#? > ( *d7J! nѓ[*#=v+*b ς-<rPgYFŦCc /1+%" EF)Z\Q0>(U#gpgф>t0M)W 2? RtE7D"$T%tP|܉je Fx&ޜH Ct32ËZ-Rtm%T"T7QÜu(5hid]MrA[w[4J{`GY셈DDZG8tt )F͂jAfrq!_1OQ?Q2 e?Q#?pP4?>By0q?ZqŤ-U]GCxC4#rm"26jff?6I8a~ʃT#?*f 2XN6dldeX`'8DΉ91cNl'B0;>r9ѫ衚m=n2~iZ0Ѿ|! . ݢKF#,u:i/H0a*؋ [y$[l^X[S?q5O+ (VEj938p\'"S-$+lKIuxդj&` bAjU% Gd{D 4<%C1g%,GR#LF$G%QC$TrHF#H8.dTyCO e< ۼ7MOx0ha@ E.:%00(G ѐ-aIOt"D.<I#PE*(7T̢# G<|$,Ioz&Дxb_JH N#rB *2ozLjc)ĪVO+|0G os=ji ?debkI+&KHDB)kք1^rDM%R(W GET[,$[ʸv2"BjP ԠjP$fb@BȄƬE9<?̄oR)5z$)ZiPCZQUdEGG$oT "W( *X W WCA \¡ LaRXUTGp@ tؖ r\GLґPTu YKA}A, CDl\" -# D%r© JX+X d́)JAG K]C*,CYC ".ߝh,C{:],B-?|B|&kw̟x?TZE:=G" \ȅ\DaJu#HQ$0PոKN\!3 -] rJ|HE՘(%ި QEO)9ؤMZkl1@0HAD!ĠlRAXut@QZUWD8ʪdTM+yJ A -A V`e Av!Yp%0L2`_&fX Ab6&^J_R&_?&eN&d&f@/IuT?Ks8 I E)~4 A "̐ %A(T8e!08BΤ؞%!,4Λ0TDddpDCǜ5IE씃 ^ GeD^E-XFc^Ic82Ūɓ^>}1-оE삜WAAyC-A9hjC̏ʏJ\ٸ,M|ǥlܞ(zT$֐bUT3ryjʤDGHX#PI$Ito H̐8 E4K۲miMzdn ?܂J`M`T^6W4A",93r:s/z&.kU R|puLش&} ,|@|("*0~EwR% *XpjOp̂ ϩ=,)30ʡ+Yx%?Oɦ ϙhhA k>|AW]b䰄a _O?-VoIlVKv^mʕoANЄKp Җfa,VLB3B ss{#/ @_F+d岪e&u ?/4DZԚkhPF,40h*]W CHB0% C0,|ereJ"<WGO~Z O޸尗)A04%BAHEUH1)KwuɒO1N8qU/6|6|^5L$DJHx JJִq+VVb, jэ:_G3-DcR%\̣֡RoQPPM CѐQ vu8 FETx-*%jwMLDj#7z*uX gT%bf[$7վ{$s|\UbwvLbYy k k6*aJkյޚuJkzV\[$KhL64057FiZ7ɂl3+#TWԚ(H5XpBW E} Ԫk|no ,-4bCJ\wR6{mN@:eO"_n{H CKb7.D` UݡDr$GdެF]{@VrtT8VfY۱?&}}P;tZGc ?JlA/J< Bv*^7jDWh)IB'C `_4HxcƋh8Ȍ5f!x?ax[#yʼnIW,Шr :J3N1}Ň&ZcL9/DBٶʗEozrE 3xDJ\DC@taArb}(WN /Ur4'cr6ƉӬԳlt310~6Xp?]ƶv۶p>!"B1eL>&L^b3$G_'>,ZׂCB HbFCAJAJA4>&,@ '!dž'&!PEđ"R**ɞ̢&J(S"Hd"Hh-r⼋\qDKDXD!g:D򲆥+]">(#PB8zO -4*`a0#ЎE/$3:N z.A"K(_(ARE""RҼ%#}Q,OxΠe`Y Ysi,Ѓ7LfGffLhpB=W"q,_bD3((Rȓ+CU?C6NR 4ܒ` m0!hIIRo%F^81 NEL Pź>6խC;O SOBz>`NHpb*"?+m^>Z;Ba0,rp%uM8r0pQ2AXY$gJ@#qEܧJc_ UQ/m)!]2EK.jQCϬ)bpi5f"Ef,85  aeeJϔ"4 P+0.T`sV!TUpwk:!|J1=g#Xd^dA@G6'Z\R&kGYњ:y-IbGP2.L .]`. 4 , F[Z0+,ϘX,RE Gq si->v?NuQx^zuA׋R7 aE'WY] cHMjNH449Cٍě+ D,B]X駔இ ANI/ xa3iY2()D:88ZJ?f9D xH:4y0 [8(Eaa#{^BX T% xޢ@\9Gtd$"̈B̋6A [-k Z(/jI2 Q$S6º3"b է@ kM ٰ WJE$P ^b2GolGlm[<8G oCHdƌ!t'UwRןTREQq$վrpzLNjbo/p¥/0jVÝDKʒoܕzOЅ6% fݼ=Kvdf EcKQ0=H'*:׺Lg A ǐwdHE(3JdV%/YP>y؜ԡTtۺ"[F$_Q2#湬DPSMIFEmKY6R& Fx#PÄh(Loz ]h&S 0AP> p oPEV' 3 C{G 0O)w luj={7,CG`9Ķ{iw…mȧ1,\s>I>`m (8dM*Av"FTTDKI6C(Bbp`+DIPIn\N bJ̧rLK^,N蠇\$ȆnfN>#j9!:#+d $> b]6..x'xN{,Ȉ*z!ġJbҠR,C&}02 CP&OF|`wtFq@όe 6a8H ,, ,spM߂ `@|  |,bM~$D #<~ & ? 鰞/D"#n)Jb -,o*d`"B!O[:b Ic=NLG]0'*B>>+Tnm\I%z!&QpoNFw \K *(1 qI+UnH$J~+)l # !`3)xI)gVt)pctV +,<6&BN ڠ hKQ"I~C"+G]VAr .999=99TVTN"J t T b;,@dd:! DBA撂 K",B샅 @X@Ưd@, +A*&$&gnTO Fs1pb;3P2o 12~.0Z$!V \p)k:5d`,9"J~^.1pGH&/&xPD/ j궐,:\L`䮨LLE0i 21A%O`A [Ob)d$M|pm &j|<F 3ׄSD/Lo ax@9K a Q@(W%#L D&T8=u= 5[5[U_"h uY5=s>`@"aJ F /C;, ;N0hb>?Děc즛LaXg1 *%+Im.,B+&tH/ qUY0I2ֈ@Bvdk%x/,zH* Br(b([_ ,#M1uJKfoJ  zN&qJy q ry- 0|?SrNiNJ΃#Q$Grnob:udL ~v94EuRcDFH M^`bFQ?6ϣs= D?2>uuwZ{/Z u:--v # F_uuW|y@|ŗ_i@u"U>؁Q>>O'8h)@"zFqe'sc;ns+"=0]c&mmdh.]f@XM* P$Ҵ& /\,!&iUnTCtQpHCbwUkA"j!avĄx% ǃf.eNnUHDq.19D0 .*K@# 2 x%E4H#'TC5phT'.@OA |֤*V!L#@GCfo:|qtW%)VathF|Ά Fls=\"c ZiD x`{7 X|"YZwQ(kDa19  "Z!yzyx4/G:Ѥ  RZHLvra+֕of^=3x y|+z|>#s"櫰F1^/ +,`G>S1{w{_3%xUTv+nh(D0)^N8x"gG`X,ڏ2d&m B`dz 8h8̡b*"pt)i{>V: vBY X{Pe`/[@:6?Cw >GNrnvn2 (𘣊gA{a5D(B{K&~ٓb*l\JO i]1>Y|Y\=<%RD"c,P%kncV%"J`%ℱY_=x ,P` DD:D0`8X_pBd`."A 0PI (P4RAQ`&ɴQIA իTMYfZ1֐fϢg *-Lb +ZDŽv!aCÒ/ɿ$'1"QlȗMt? |ѿm0`É/sиruL1u   H T* Asޑle8IzDy$+WvwyAҤWG?OC(u?D, h  ܢ B* z0RGM ѡM)$ A Ѱ}L8H0c#/ Ç0< l,*}7z " "RћCmCgF}c#,`' DBPB%, Ѡ`T(T%- ʕB L u)B!?Aܣpwy#%}.ӬdAy.@ОЯ $lAgH!R tR[Czm+*ȓTn%BRH)fa9&BgQ%m&YЉĝv.<ڽBѠ9tm'q]4 )F?!ivi눫 ĀʖAiO=A$b(XԦ( qB CŐ^JVM[hL!C*8T#kb A"2 Y}(1T0f1lad0)"^#x,$jڢ%IG8͐X& đ80 XF`Tc;Zv*R% LRxM naqqAgL?=IKIFL"D2AJ&@Bl4 !A%/]1#I!H(o &'6\M߹B\(4x52lZ:!.'T%Y# ;%= L3!"9rz/LIE6@˓NWgS`TI]B*FTq5 iCp(0E M FL1ȉy!0JSB$}M?{aFЎ\4, ~ItD!s@Ee"z-9NFuY2*E𛩧z(ErNɉSqg>%5'Z?(PВ="E@)j}"N$CW CD>_v^Xzի0BEfp&P  BP/Ϟ^z(6-CK`.S:, 4\G47@r{Z@w^<~$ (ʈ(%9!8%!Kpn@BD}$FRJ߾] $q;!&H0af_=N3. J bn#6(n7ORj,!Yd"!r8u`*UDr'$*gL1r,}i[ECxի TK"Wr2v5(%FCgD0dW3}ߩ h7I2p~d6I-svGk?cPRS7qpJ9CH0]44c\ȑ)'D}G,R;3u(;]r!<&:9r0 GHR`;#6@LDsQb#$=w[PM[ MdMcM(vtBT %<<293"9d49áJu>@9s*y&nRg2"%"\@#TA9KAQ(,'cvV'S5R<+(H_gF@aV )dT&Dz 剟*=4@1V7Hz0WTW.evGJD`XZXZq200aQ@l }_}OtS4QwNPsCLIO [/H)w5C*R3q<8t"B\IͥIp0qKU,9ȁ!M0(8QoqsANZ%4ǡnF\Jwy)D9>Cr%uÕnFq߄"l,',R"7)c&%!PiYHVN#V0` (#;2:&&IOF(aO^LEXstLb_t%m3?3!w26ͥE3on  I2J!dmLMH:+O2aO a LBGOu$a;[qOCȄ<:r}eka@}爎>0ߑύ-G骳,|n/ZSǠHPN0]?<$3*9s&Cp p6'>96W%׆Oq&7꺾> ٸ/jWr$vF8аI\)5($'NXТ_ȋIĉKTg?'81>D'+!gԃ*UŌ1a`!QPJ-1 @uTJ8Kja(c&G?Ə"cƿ04wa1N!x@Ek4B]Gv:MO)R~KPF K(luA݇4_"eSG :/iT1P)HGXh'‹ 6) Wc8>D`ӣ1c LAh3h ..l#psG,l2L2ǐ!ΐNf95=M󁧞Ȳ:`=6_Ȣj**kD1 ><#:@hg&V13^'qރJ+D^iB( Ox: >K$sWz Q" q1ǜr ;r>2G,w̓w*l>84M#:M92|>K 0?A7J)QJ TS(ALS@P'>Ub T*- õ> fְC# }ً2,t,>h5L=VH.vh0_YA50C5$D00`pyPAx y@C!AA#8^1:)D!Ҽ,^^#D)1&bxږi\R#e&O2A&yD)01 H9!q("p!&7y&$DYDԜ:БE;%`@8 t;`IHt~xY< PG]zdt%ZuSĦ=/A\}wAE*@!F¦8 Hek-c#*䳞(cB!.8CX[P*#Y 1- W|0T@-k[u#<2,hz/%E8+ DAA 10B A5Kpb$$8\oe6p4gN RxK%(&T8* 8NtSԡ8}P3RFl`#E Y`TIv% wpFD ߘo(C!T|*FATBN?]V6q&Go}kN5&@Yo,R_gUafz2 !k_ '",xޓ,q;}/0M DHaWV\X1uHE_EmJV>9PY6pgpK}11/@}/~xGFP40"3"p$38 WΙf 4Ca. yYL hqO% %;.YLSڲ0ErxDe+N<`sOPhV)JgOG%J)yY3qfpTGթNq46~TmoN[ y4qiM$gN媼5aAB0#}*|AڨQ!OWN(¢ pjj&F6 %W _ ˂,X0 :j${}} ^,0EJ8_1®.Iq0."-.z (`Hd^HxŒHAZ "&h L82|9Ꭽ: (ɉ;xK'%01|:&@abaF`CxiFazYY01א q [a&mh@!HDFHVajA TA r>8듖8݀5FC@ #IԈԙXx# ь $0jj~Tɪi}L$j@y$8Z5T G[ $ 8.: qH sLGIK&|998:;&Pqe: ej` fp @ CX1'@A@ 'P%'XDX(~bLḾVtEJX3RLؼ<ْ:(W<\A)rA ml[ `\!GUA7x-  k;@m\ϪBa>j1+! (U skQۨ*bOz{4_C cX窶j39aIHCXH8A,-HU# P, ^A5Iㅘa ʲ?،  k@PyҢH"ؕ1"a, .a 6 K 03|G+jI@ F3 FKKXhKbkHK/Q7踛 idUu#  Èix9ɤ! A|م;QA ȁ"`(~܄Vc($31qE .I<[/#/+7ɻ<ғ錩 l1Ã98 9ڕ)ʪޠ-)`XφPKtcO8صb@.ڬdO^;OTCT8 p#= 4``FF8e@AXZ҂A9&)@Pݗ)5L͐R>I, (+ΰM܌DX>lh ,z*wU[:%S2h8ƵP٩GaTGy'B^6a ,1U{[2V`2K ^G=mq̷ ΄=H054`V|)1V  *SN$X`R\PU8P`$+pQO("%ɒ\CEvMT@Xbɘ ADd(0AXccHPcN8B= ՆTXyqUMVX$̡\5p\8\hyG{H=SNIJKɩ@ nMF^m']TpZ!H f]KEu I-C'tό^x`{څ]^ .(Vh;քf(xa(iU(7n]<5 7<( J" k@FB>6ARѷ)EY8^k0Țm.㨚!*:H? bp >PG:7Gnb'֙T Qb"@10{j¾@ZC؋FGc:@!I>> ~B(8Fp[КP(Ȥ񸏃Mۀ8 G3RIj/{Gt:FD$#uюA>^[(GOJXW HFB0\U.imŞΩugwCnn yNE9E]T(wau]~BfN<otnf &H/ y1|.}&y gTa鱖;с xh E}A 3cz90Ȗ9E .U?&?ehkl,FF'ٜI) )چr&em؆I(m{{#t>PԠYDKkk{`!D"d*V{78ԨkNHV&NIF`YhOk:g_V!AuW֠ f'6X'm'vGҗdt`ol񴪪4h9>*A<Đ@+ Su,%]63njgcFnvo`AR`H l `LSb8#Ȍ7K/I G#*Z|Hfrh i*Et @D)ԧP?JvmݺK?JS߮2 h ?䨛߅}*LJ: `%JYx %(,(Q_-p< 2"@KtFWR(KY4/wq A8ɏ[pČI?`p;G ܶ >o{ m}i41D"uqgMġLj#kJiTK/,$?P fPL UNF$.YOAQEһJki{C YkQOB uRE U?HEupCUQ D)PW ek12_xuqA9 3lAXИg h `F:Cd@4LN@RC9d5o(\̒oM'hI']9GL؝6yy'wqW_5cm(( Om)6B2 zsGnr7 !Z`!7w "ܖ5F><8!^1iqȀ})&L;n5oJ zSa}?E( %ЪW1)?Q)H $ HT*(,aɩFHBl=]chbXbK @u3ɖA0s8d!3ᗴdED"LqK'Db*cȈZGL&$$al셨8,P?Pde t8 W•0`  Kr14)P@e:ab=1Ό&4@I\ ?A4tm oPmmֶ;ډݒLݭ9HLa|7Y pv56!9UOjԇ!"B ~",8od,)wB؄j1!߱)x"/\{H}0 d?J=;jk@F+ڄI3B[ϧ+MOO| (GV* Vʀ@R(*^Y/IUZ*Z?J6 ڠ wD^fֵ` 2clfVmef31!@N8ule 42.JԉL0j$tX`%+G 90`;"AF"D a4Q,vFHSl6Wr- y /Cm|@w0>pYO~4lOorPyg {D 6 NqnsÉA  ;$! H0|R Fl:I狆2*n%!}!_W+j(ZH(' VUԊW3ب;&9 /x"T 0LG\a;(U].կz*Z'1ϚıEj(%CQ˭Gv1 S1Mý>y3ǡ0҇1 ;a< 6\7%t˂O'0!O&}RU:zВu.Ik<^V5%_p ~&,[uJU߅%:IgOR@Xbeo2VZy؆ك6>$&aؗRR ]ֱN)IQ+:bd8ɨq^4̞0ڱ 0[51zC`Ѵ؄g9W7y'QTx_8JV);'=:=~FU_8B @@Vp`XXŠ<\8L$?@,+d`eB"N@[Kqb4lYh@ָ`Pif%3RT>E- aR!YDePF, H3 M z|4GD"U04$^34!XJ@6`i'ԍ+,^JaO. $( ТDJQ@ D0A-ڢ 3z DUՠʓ?ՂDO Dix."Z˻POH˫q@0bcuc*EZ$l5˼ĉf8hZJ"M] ~FhM})ū8z#)eߵ @LU$$ oLDEFsI=(blRI&ijl?A˒Q+aΐSRCaa5顢$aa |ɒb2iN5Ι ooN,s@v-u|1 A\B?0 ̓5N8[ ^NJZk A"TMN! "G f0ʢ t$ū J)%P,Z쪞pf H΅ 1 hI IJfA'.B0+7jAb%A@o*'10Fh w zgXg+~c(=fdʫ,_VpLțF @W^@Rtd`Pˀ`fui<͉1kՠ (N79*@p?E@@m^$AC, 8iqSmNq] Վq(qdVm3(](a_^CC鈵 @#]jJ k0J(ࡠxX1A44 LJb1I0frΔ*z"I$UE UrDm/ngşjA_M'M7bE/6g:.]`LxůʯЯ'3o(錼~~'b ?Yl$R ^dIEG%݅ˠpD%}hT}oAN}!g8Pd-l$u^bɕʮ<@ hq ?d5MPV?e E DI--E،1 pI:_5*B,YM i j&kK Tadv _m'~6~>3dA߁2AZtF o(B%,'B̿A'쥆j@za͡BT'ÔC$~dkfDIM6TԈӋv<2eJCfCG'.!Oׅm_rMYC 4+3a Q*+[(0 VkGG|F0G ׸Sʎ>n/*Br PK^s;;ˮl"bao[/7|;x{w{v;1v7;x @78Ìb%+@;03ӌ $AV0@؁? R(٥_?:r\*,$%'OR% (!Ȉ4 id~hȐD%MZISO`A?@VNeUXmJS"iV?LVYUBm\,@E00|cԧ7_ /Dc!F,D=I&Ɖ0`#͉جɩ A,?m0 3fwQXrEK< I_iGd;r;ɭW Gy ~$m&4MԷIF0$Pa/8oDFi(`$# ih&Y$ypFxF)Gx#]@I*]Q% WJTRH/UK P*LIMФ$ LrM;;TsO! >)>Y -3LO]vq("FH.Jtp2r_)5Wr!]"i X@ he*@e"k2Z-fVZo-I"C5Ws+ 0 1CDӦ2c?.-9#RC ̌ ,jS% UЃ0@PHc8$PO=jy98F ϹhS.CCI>C )*:;+_X01 oBp8A/?5hxei*G@|I)@sL  %tq̕rE/}h4@CNN"бoٛ}D7(0?q)*"l  D3 ;7ld @2H ZCH $3ðLbda76F j$ "U=KY DXOcGZ3#>H\&InݶF [(ַJ.& ox6uhK[$pF"E%W(ѓ<˝I u4ӗ2.rFoNu:O)!0HOxϑ ExU2NsyȀLސx0_')Q߁Q=_ ;p6}y"'Zi?p  "tl<50;yR{4;RfѲgRC;'/T?#TTf4Ve=fLH2!57Qʂ!T7 8>{#TZWӤPIAըZ{ճ(k>$`")5щv[F-Hpl(Ч V4 q0Q@`=^yT䠂]ܹx*wuUxM_BcΛgf,$R">@'|$L|rQM($}"*$UiHS @|D .@&b"*BM'x\,&hLNNz!j 츎Ʀbʂi`*B F$BΏfD:iPi. h:;vH^4Φ  cTA "CddHcx&C>cFb@FrcAP$kD+N$hX$PO2IJzQ.~ aΘ 0@!0@\ :>+ 2zA:` *I@PĤ(DuI"/#"#LP%$8RF#B$r %H.Fl"&"`T "*" Ģb@*v, @Ƃ 8 QP O(1gl& fED*,U@"@-?oƳԬ$MՔ :e,*F m11"#2*($ d`rΠ/* +h ōhf#E5mc8O1pL$rOK1jPm(i4U{MGbؖW1W$-c;nZ󞌖Ȳ܆H` Gо҉wK*O+uT?SINU$ DJ,*^1|.RX!> A$8#=uCq`#ZԡP#!8_# ]'%Pt&#"$#D֛0w0KF)!~e*O~8*kƖn)m" 閬47SKYD-iRZdEfMde,_͖*+ Ekk:CC$Ĉ$15`,φҚ`X,hC1 I2?g'SIl5$>*()7gO476{hdUV FFj AWS\(59` z2K;a%EH"$@4 4UFA.@- #%{^=|mh$8b7"""2BS_)T^AL_`U%9c5:u|c%Ec#4Vdٗ?eu.&fvGhp\6=h@&tIrfH>"iXfSV%)HaBrgqdhSvR$c>c$E0  1B67`PB`*/쎲QDPjRZGla5%qG$N/w( 7_부Fbs y  9l9wھW9w:$CNĖwqo~WF陂d)tdsV\y@5v$zOz$L|C#8"d%cU&8#B%A)TI"0B#F%C5d`$|?361"]T$ zHtdTEhvIecF\f ǂve gTak H獑ld&jia1k#i=L6l0*Ns0l#=\6iޒc1ikmH{XJ 6o x2iMjҺy غ @ :dW@dUWqQ#IHO'LƄHiu|[y;"\ 4-#!bY"엙+ⶏۙ9q[-+]apWRɷuݍ˦[cyvy}L)bK"}t$ly.*`Ep.ڟG8p,*&ǿqgdpz-_qi1yO_X.2 L$E7gªt-:1]+ܧ/8 $u^hf&L-}bqs`͏MLSU[ V55؆| D! ʣ r59ӅpBvqhkt ͙-PTٴG[2IϏ72 }'|}~M]w~~%&GX h0`PcK|#J!v=Vcdn&^&a0u[Wyٝ#dg"y%aaEy+(ui|'x[Hdsvog7k4IVHOazۥqHX5 $^f:Av^˨Bctr3I-}pdb|ƻD..wEߐT@/0C'M7…Aʿ9i,@Gp*,cٰ2)'N (gC ӡH3iS`)VHv=Ċ@٪@tAm]ʕ-rTEUu p:?^@0ɜ_0)F3ꆃs6,x1~i]J_uȭ#7iJlGfTGu%VYf-@DVyY^pmc5[Vgz^yUukavhj-/k0%9֕ͦFnd*1G $]ǫ$]|tM(FK+7vکjI%{_v4`}̽Ts z4(]D Pu8BC7hG1^'z}YS#I2LUAlO@QHNdHa4aLV`j4BpjY陒[j"<E-B?&()Sh.(piuxgz*h0FS2SKAzSj + J2Mr"IpG 32hB2XcA!@m[DI=iL3Wͤ!9 LV=~A>No^YzA)Ů]@6A7,&3c̾W,{8`jr? 2bX`X4aHyf3 mjȄ3@bV!3:1-f:yыO 4*f=Ta3/ wȦp4l1 Ø@ #8C?&#~''?)1L6IMހ8*`[T?Rhj-YꔴGkEj\0AKԒ t?i#~t(- LC6O'֔)%ի @q.%|L;o3!HeOm']1p.m-oqKgg1t n^<z")VSj'{!k ^bt6㒝D:<>~:I㛔\\ Ӓ-g qeeLfd,CRIOG$ m#V5CC Qb]B|C#c"@#dQK5’opZ5S@ toU\Vm0TwbbPNeZlDE#G@6rN:>Ҫ* t )vmJҕ-R3EKŘ[I ?אMt2 E̝p!WְG luQ 0J`4Yi\ e8Avw*G:+jR'>P|+&3&3g2gs`r`>|2 J6k4rGQQ/ 5%` iP8#4r/w)B{PK':=o`rvG7ɺm4iF6& RBu0uLMEdkXsR  p2>x?ސ-%U-y41ur ćv8+nYמo`uƿ LGt8s͙TJ 'Q'<& QZ>0`13Bml cr/%wm'Aes21stc/va@7Ɓ@;[@>!:ktmC!rd1%>38)F274HՃ7p^GK5&v7IyF8<@znWxoAJ>Eo)8օ P' :ibxgr$(Jhdh0:dZ[(m)E 'y{4[qZRiGR&S&%&MX6Y-YEc4%oU::Q{5*+bTP=FaXr|ɲPG}@nPnƋa(-DOVEO.~?B30Qp3 v-T?Ba~_B,5^=3T]^T+D A{T]414llMD {%;7+h'(++> ?g4U> HUa$d&''z9;YzvTc)YhwoP'ffYņpӆGr(|thyuI'(xk2&XZdBz?3FtiX2 X4u=HSc*Re/+$IEmF+x/U+rXn)NjHn_d})UA0SE&5 WOAP'0eQNQ@^&|%=q,)li$N]#XIß=(HN;7M&d"2Ot% z%HXzWa9r&K1L &A zEJiItwch!i}Ii(;ucR'ThXYxwxJw_I |(zsw\bYHh)X)%_gipZ0# !G`:W#%*'!etMsIv%ș-Mq-FnշHnen`ݢ`e`@}%@e,B^8 ~8mWR>e-+0Mؐ3>E>3>]xC{s+Ԫ:+‚4kJt2 5&1!8bb7tf)p>y_28Bi\8s%d8JFdHv'f(RzyP(pvC Rwz]xN")g}F .9GĂk_of;}8m_/>"rPTtƂsS @ȇ%=Lp: џ2Ed!({&LFeU|4S8[93!2YJ܁3H ̜uD/JuҢeIWJg{􇈤[\\ݜwNYhv:(bKAϸcsuGVCW A6aa3"Zπ  m= А000ikҘ812?aM0 Ĥ- tһ8- n: Q[BЙeƻn` 2HRq,-@蘛],@ s_a?Nb֗,\,vQɩj{]{ %7d\% W43\aʋd~]%1Td|}u'P[)񕖂id\zo#+>ze):F6"Q"(j(М#_a5p"RG2# Q 5`,Mn P pT˥)s2H(r{ZNMMnQ G| G[n@aDͻnY_so) 2-5n-mQqOUa?>k?#_)qaus=\qQ]p.o !(=Z;P*惝8]8Y8TW&M8TDǢYhLI"sOZ|gYdop {ɜrC!k \p4|ۏi=zhj  5jx a^5" aC"\"" GNº.p#NN"RҮ!^hh$u3]rDrW{ǁ=d`O_}N/nXa]d\ȋ7*o O(NS_ <`paB]"v!s˃/\' ]DidH >hd 5̜E?.bΟf Zo ObM6BJFT in (W O8jt˯@#\<=,^]`]\ }Q˕5kh6PDkӬͿI"o~i vyɳE7N4B,X( CPIGUaI 3d-Л`8F#  IC(# 9$Jgx`E[ ^lP 遙^h"22"!Ҁ 0 @@#D &l#*rʞDK: K2 "tt0.@ :=O?GU@IDU$,3M@“ ZȠHԤ%R 2Zt̎FS1}HJ #.0HvWtD*f-`ֱ-2*!`f* ֩528le5˭쪿>w 2~:[D4i)mC am5h18l@<>+r. \pE3$ ;kS:b3 T& -()ڇ|$H$FڿRL#1l!YPm@K#cB {{^;ﻃ Ql'!Xf.7p!eќfl〴8 :b<$7L`rEp mx0E&Bf剂hj9sҐ44#E?5=VZFdkDAM,E4:r H8AmD"6hod%{ѓCoP J 8mvK%Z- *rim?\O'\ t0KIԡwIב5oM&3;? RRoPZT9ɹ%oyS‘XI"y&Lr&%QAVIw`˂&ڧD’aEGZXG #bF̲-ج6)6rp\XP,_ ]2Ǹ%(kneU~BF1J 殝ʐrI ptQ g<Ռ Y"BE&Ց]/Eu׹NuhF@iF+ΐ&&4!`jGm=R#Hymp"@&!@LP<;IOom*ٓK *MIʎ\(-m3å2EK7SQO]dD ##T9?G1ݩ{m3Y;g <2O14RAJ~/L\CIr 4GŢd8r# d0e+jJUxC6Y6eVWbzCoP[',]\$/(;)7b@'taiYn#—@@Iq (~Lj?hUVbٹb5JPk[VҬ/T]aܚ|`i窡F5]=lȰm$wM”suowAb{ޖwuO7(QJkTc6f0"6. ]hmK'/u/1!7Kh';A?@s7k-q:G{/fС..*A'D(+NC[ !+ix[&:&oĔ ΃&w[8&r"N}&n{ E6|L8-%6뒍P` UI `  8H' x(؉T Dc( PI)kj bɎJ`Iɖ(sI| QH # %((*P0xـ . 0ዧ*K1Qи;`(船Y]=T \$-FI$@DXUE$L=[&Y+xl:\_E/˦h8Nԁ贈,W&fGGyOsj?E&㑔$) WcRfڈhxvM^,V x"9 <߉2\Q5AAd!I: ꉡ*#QܩA9I1 ,XѨC= RlCٕ6b`2R舙%.H13Kꍧ  ڢͪ;R=uZ1;#)P(0#+B;3:L&RM〳][Ԏp[.&6ib 嵶b,L=]3ۻ=ۋ5qXN4Ah~>vDHM3(dd?(pG4P $`aوre Aɱ OfrǍXwOF^F]C~kq]%-!/) H_Mυ0WUsw](_+:_f= AJk㩓S+]``*`:*x2 Ba`&c¼8)pA ~QJĠ ,p -" ҸC,Hb`舠Iy6#>s>#F&R]3%2fecFh~}jjS6jj7~cEO3%K<c?nDd@BkA>:GZȎh6NIhX -p%k ؽ]|=QiDmѦܽFY/Ozc#I`"@,y^A)뿂lhdVO~S f)((k.Cc_[=_ s!0|X:)ܐJ)ݫ RP; *p;Qhm r / C犚u {eP2Bm. n$;/OdFƠ!=Q#򸣜)Rb"N61.vGq2r$/zLE'½ țHat\/rM@"sB6dE^1m0"%ߢk VP_5WV(9tWBAtƯ=)&/CI7bփ[w͞ u艍ԁPLK9m6Qs]kZd߬b92j&:S6Dʍa)RC̸ϰ;-hB;o\}j M;»p3?)%R"hp(zV*pނ-R+F xYsr%Ɉ "IHƂ K  J\J 1dĎ-NLoAJ0-]S%͘4̉ N8pzM3hh4H SJ!1ʼnԪU s&W>ҿT`#&E $PhD`,L=xJC:%iHqt$?@G >}CGx'r0?y5L4?(D| pP񏃋@E3@"/:F.BK#@цmȌ\DBjvdi-0XУ"y?\\G=\lA@#Ö!DLVXcMg !# 3 RĤL0?iqv\aLp\u=Ԑ&aEGD *HfJ-SN1!N3-PPDMRJqS݂E_D"C$C.UKDC˂)E|e |lb!dgf1YfinfpjvjnFrfqJ _\ ses(&+偗:8,^z4uz=,}Voa~Yb` vm!'6$b6/c ،@BD\8 r[X8v F`aRY]&QTt%r0WW$;\NbD>:ja5ѧJ?ka:)#FB%0dHHH zJsHY#SL31HMjD(HDL(nb׺@.* 굩RL #Qd8V*̀  ;CZsG\ gDQ4! NDd5 o YMYC39Ƴ\g9C.hIIdVH&n~▟[{fHj{Fl@ 4 ΩAG[hA1RTĵ!o-s+?:ʕIn|`c.h`R&FLC~q3uIAd-NX4GjC:@O\ uIIQҧ<>$IxT IX‘<,`"0?x`QZQG +Lf$(_L'iP` Rp]: $ae\A(v!u]J YJqpxwA?`x;Etf`e(!N4M80`fpcs,%kLъF4ѫPK R򝨭g=S]6>|?9xiN@ i`@6ԈE)y4)TBK(RG$,7NA Ӆ(jUI\"2s2݆ ]+5"[0Ǥ3 A[#pguF9mD" < EyLz&aI?E`Ip?@|w. " Q$l!WJPLt dBo"RIHR/!I|B-b[cYw.'lT R5/yT< )ȔM Z ȞX%N Z32T'bf8Se,%+[Qu"(biRE)ކCqZ :=ӘF`:%QLb<;ߑl+{kNk} xsXM9\k6:_$#5yDFķr8Ѵ/u &%)Is#&"gLFrsS7Y4 0YE|Z.X(r(& 4pSb_%၎[ޒN @%TR%P%I-W@y皼#N RGI G8F:B @8XJNSY܍E, \ 9S< CXN 2F4 F@T j? P@ P. i@C)iD}$E%8_ٵMʡaEE*b"&h Dȩh@]gO|^Lpj̠m"歒_ LD兑ViJ\Z|Zsvڢ5ZFd/HeguFd'轍V%w(wX+aT26tzNDv D}6C,Œ;J"pM_/ab>fN)2RWBz8Ⱦ҃r8I_a[`E R)SCP EGH&X;H2\(^ J^hD@ .DB 쀎5?@U@F.@ @.!mcv-ti*ƹ@X $%-n`?Da^Y4C4!dl_Pylmct\$D^h\i]U}]sLU^InWJlQAk.^pvA6n#hPyMDt ̚ȤMbh!  @{g{lJRJ@[HL۴֌*Y Qk<%%߇@WmW‰\H |xԈZ6DEH1DvԪDAȹ`~\cBa:Jq)$( I$HCxm$TתD 2ӦXl삙\ %@ iCEHDl%.R`N&`JA dDS,Ħ ȹ1gfgѮF[F-?Ș)~G)N^Xǚ b ! cY8L6*+N2'P_ z$Ыޑ % >._"i1^$>C2vSӦKN^ ο4 PJEcR\hXiȐDӛc!<;WҔ7d 8CBcP <(9$vB # ;$hT@ ' !0P +tB` )LPV, lԡ `!Ə"YuV#rɏrtFBE 6[ÂH>PN 3$cM $.@b7~xF-'hTMӲ- i 8 .%HX#ڢL4:P NU .%ji xI'*fiZJ)t(L* \q:]rRYp"R0z̭@@8w$4+ `4g"2l3 `5i5$8EcG0$+4t˹-z&9g HgK`0=irXIhHS\ T@#|0C9|pDߤ[Evq@$q́!0M.t38@PDiH#ZZn 7#Zn @ gD#9ɉA2z|O| \L>3w| 7mD2!MEdы NE}qOғRY&*qK=%[ig Dֽ@U  @$ d>ԕv72g è8Rx8#e)iB=aZ $" UC~Aʿ QU>"Pd4y@SwBAAtT%QgGnΘJ!Gkut*ԕH\-v7U0fa " 3 %pDfb 2h '<0`T@J8`Tq$>"u NhZ j@55PADK\53 !eȒ$ʤD T$^W\Wu9\VHQrrdJK+q/ղFZ喊kVEg"145mv<;?i+$ŤFuWŕrsV*iB6d[xHpЁF\>NBRܿc](dC5bŚkbYlY>27 Yf5_~d 2IEBh6/=@ Ss`I_2} b0D#G<_D[j n05Gq36|d=qsyA(DZgDyZ2+6v V Hp# r/ZN_B&.IMjHD3PP] SD u72G$%JHkqK#1s :`s2Zәdip )QDmw?]xv*eW kwo+'JOPpK=k;2">*X $Ly@yFNvy&^VJbXe"L'2(h]hiVpNZlzN$EPj^\K`*  ,^$kc6F"p` &ƅTFp@n 3@b,$ޠހ >$ BhC=F 7xjP 7t#peH4"~"ZE&`TpnKBxf0*OpLXUKRQFHJVt$JqfјbֆiKH^KD dMk\ĹImĺm ܴ#A$v2& ހn*%TNƥhRbjB!'磊&% rИTt@b Km ؐKE\Vj"#gZLhpnZ&2g2ȀVPvP/f_^-z An/Fz Naڂ18A~L0l("a h` "4آ̨&m$lL<.29#7( e+lJ)J4o"\+VrǑxJKAp@o*2IqR+-2tB"F4`JGfٖofiubĕurె m亦q @3Mwt2KX#M$KN0`F!#\ $*e~^3Wd4"qBbJ#'4⥸(Q|%=l'&YDЃ4µεB\"&V# k _@")T `m Ʀ%V(`"ܤ0娄.#3:H8<ʨn$ ,ʖtI`(`+lKУF/ bMF=>">//r*fI?\šn$EVKVKFD2U2 /3m3$IdGtfSM8Ju, xDD6+\u0l @ S}SW}XS P:KQn:%CE ,ƿKF!HA"ET/Vۢ2< EH`":.n*† &q0/ T#-*,Ȥ@\Ur:6V*VB$l^"<21@=?bcQ=l.p$f(/v*_J\J'@_ra&(2c/3 {6IHN.j2`H3f+GƉ.cΣ6.T=^=DlFfd)"(14'&ڢpE@@OӊR\o3m*DpdqUIq2G&wx UYPOmyO yM=@rs8[8_OyDu#JWNV1! tZ!)#D++V;GCAb& W.(b4@@B>"fnO,NnD0\Ե<"xbֵ%S@v2l鎈e" 4a/^*؈f& cFmj$F..bR{(pʢ3:cg,GmH` b3tR){4Kb( ίMlrR#NAˆ⏠%0aؚ^3A@Rao-Lɓ(pk$u3c7J.ZFXLnMG\B7sUt5WӒ}SuёdӘ@ $BB#WgL" C#A/r)űBrp /ҵPrX'A X0 `^HZb2Zl>2rR6!B%$l1Ye#<.H/zB2L8qۢ `V腄I\mGBAjE&#|2w@` c .F`4 o  @̴(4@8`=^L[$NN4/,"jO?jxH`.gh펕+UsF+7g5dr;FZg/F3@@QpܤVOי* B˓W]b71ّ xB䳠F!|gZ[! Q +$ 1YR6 4pDՎbD #B@@."] n0l{o[B.L\--~T_cnggC`<P4Ԩ4cI Z^5fxAtd҉#4b5(8tCU $/t[`/QHP~Md֘`$.u,RXFXgMZV"YC'y~58?8Ӛ]G G~| !W*e{(RصF, ق. 'C1zОCA چ{T*,f`OJH%|5!ϘX'$/.@K^^.r̶_ط؍Φ <-f[|ٴI.f4w4~_H<& ',*̺ >BxyNXm2KYÈQk3%t4[lf j֌-Fk<јrf\ėLr`rG0u丹G>& ton~^WXUvC6CKw@4$ŇPva^/? 'dfe ҨD^Ʒ&"J`z&]P : >B"2[ #1,Q>>L!b:s!6zFcX%*Gr0vڭ[I4ě]`Ty0qC_v4曾dߢf'}R 9)% ы ʨ &A"Rc5hH</zែdRYC)dw((lr G V…/<@b 5~X?.IqĤ̈3ir³K.]ZDe"H?NB:u*UL=ׯOj9B-klezPv'^2y/T"o,KpA+A\ B Vqaly"@(#AhZELK<q 4 n-sۅ̮HUp?YH5d `p5\ fpm=`v'p@m)V"lhU8x H :θ⊘P%] @PaQˁjurv`j& IIzwG@ i'jIB\(S@,fE*P ֯jXЫVi^IB 1悝9ZX5ΤQgjD/5 pqT zNiX 1DJ@=PMl9D>M;4a^K{MHڀC7Pz F@o@ 0iЈ5(E~ZBCHFh!-U#͉lsHDc@]4.Tch@(G91qpj1UZ$KB-dQER;!UDhrXW#*qU"{L3A,pDWm2VYJٔb.O%RB[az`Y)`V9R_$-ZeTT樳H'ꚀRSYw tPbraNf8zS NctCױ?:*3,T!5_ IT6+ dg ݳjC͸Rhܨ7h8*DMeېֵ4@7vDb,@{jɞ8NS*'.MA h%sJR RhnTa f6.S:Ih'9%f5#(z%T"ZW^bKyfQ=9Y3fPv)X[vb D76g;M&G^8ձ>`y]ͱ0a< |@tJ]6'mԚ&!0: au%ܕ&Q&4`+,-W 02%J5hN,PxH} %HT1\xZ] 7Ҭ%S%A)f5tCXos*r5AuEhYׂwubGj7&vRZe7imh-äiwbKwE,^gL<2Q1wi/gbk2R` P"qab@^N"2mx1A_zzlCT5Ngb7)5&a"!0l! R~4v/E@$SofTU2a߷ b5W!*7l#cm7rC"?R!bUcQB7`7:Dd9c%&SHr$GhVsB!uƁ+xDA9Q)LI'YDh2KXGiCuEH[eW2kvv+2v@Q>Y>;g<-&TZ<|XM'`@cxCTnE4/gA'<ٓ2wEťzæTPglH]܅^!4an)HF@ B} ‰5 7m&6 44D_ SƖ "xG OD vSB%Ec| L}K4cC$jcU{sF(θq!Dd5Ws&GwdvB9fJId*)!)t2Lă=(>IEvm'v2ȏ޲)+ 9i+-+\ȹ+̹`GDwń-g' P4S#bIxc "?a/`zjHwlRNrxU11^Py:AaAt/V5N\oFDW\WiiH0UGeamI@ 5S(Bf6|b'vEGcF&~R$~k |)HpFp=9,ay(HdxHpZrvrrwRdxt"tDt),+q)5›68Zf[zvQ++7RJ_>U&>>ʪZȹ-e7wKZ%Qb;b5}]/`x-62POBe!ϡR)yá 2ȱ aNNw I3%aG_9C29 $s>3Db#b*6$ҋWS0abE$0#7@7׊Bq53\PBF-q>sBP~DEw>یtg騲Ih[K$KZKKfhJ›븃Zɩi^6:PJ&Fx>@>Љ_vxqt] ڒ*Qk0dx?Ekم`5 `qdPC3yE5]z s1@i}3S֗M7]?Ӯe|ԥ|8@$!nFD!fnb"""75TZc5ai bBUڢ((5;:kڙ79 =CHfs*{*Un{*g/+Ba<\f_9+9B7Ilozvt`!'Ƙ.651yjvSk4Eİ?1^0ZOM)q2lÖA{2zǯ;Vz1!D]ȵR!Ö":A^6}֖n`P^" @cnE1 KE,"A%#D0cRھ;_SXUZ763\Ტs\9H7lHУ@KK朴))UK=ؑYXqt!)Y*\@.M&qaFLZ9HEfdTdm9T VDsI c]c]3#ȥER w#Rn̅ ;1-]!Rt12z{ _ sĭHO swyMM vdM7",*}\] o>41ao)E`!^j&wP4S:~GE_ Ut~7B" 7E%?Xcq[gR `s f Qژ 9ۙ|9ެ9θM \뜄`hzvw Rav \SLW+Y!CLѲe-h'H'>T]H-V-%QaFbG2_ #_pjӕ! !5A_Q]+AԯaNH!|D1UMmhzn\Dco&2{Sh3ڻr=ma?.E]6Aw*E~ v6Œ~S8uDRBQUv,aIscf2͜c{~ T^l!ϚDD9MniPZbPl~ J$g!prQk#lASP" Ģ 16Glݢ %R|;nעD/4.#/#}Q6B`'68pDG"]!܆3B6sb3R:L ۳-BΎOCA,hlLvPqܖ]h_K-vՙo"I/(zj-AOtJ@'K' [ %{2 -d#]B޵. W͞=@dT[L|Iͯ-[geg*0X@=TwUonpy (ҡ@M;#`4矘"0_rZS4(*>ģ 9l$CC>thkTlTqƣBFv1F+ѤH#$5I$39) 8TaKH,{HK`TA34hDfh x9ig ʙc#m?Rֶ.D'%Lxw&Oqrr'TNǟ2G3GIQA$;ሤȠ_ C}EJLݙ,9vKm7 >4eK`K쉼ϳ'`|H3#ZĔqс" pŝXFKz8ct883M4K p (Ӡг!ɡ`ԗ8~>9Tz++1,"Y#$AH˦ 9,z\лq#PLJQR-7%CJZ<JP=csɝ0RўP&r=K˛#i$ED =`=\اWSøL ҝd|13?1M: !s QB K02 . T<'M5Nؑd0m `7 5Ŕ^$ͬ?ԨS$?֮]0]Z(t ,$Kr2#<NA{';|SIZɯ:թ[ [R۝\" |9 A8Y-09Te2>[N %Q Y]Qr9lqu-<Ф%i! $Zמ5[R^M.;ÔѴ^@ `ޅ"'NŏݦmDmbRkK&pKBLUT!SJ .Y ݱsH0;Ɓ+?caa9q,P]im%nC(^HC&'t{#u؊-e%X(e" +ص_( S~yJba> dYH HLbNf;,MF r  ҁ0١̠RTfCf֞ftAydHS8 |3=:=aV2Vۂ\<3&{Dpn:5n\"0A4å+nV##Y۶3QŃ)ܣ󲷊"ᐥoXoh W jNߊw-ʁdlvnn^ mwQG?܅x Ka&&=oRK~ߑߓRDqBRnKo•L[ [YXɋ.E+ 2YBĐEr.˝\LQ( SgFsMF?Mfp|">-4ergF(!MH;p׽HTT{޲~#+5X]ҎM%(exKLqZYEe Z}-߉L wyFa_y~]sK אaNt:?vJ#NJz PI# !H@VTѣH Lsdph'1b(V" @HSd=@@bEmygf0'M['*bTLls"oN"*`u/*s_ZjnMD T@Ucj;P =pNږ=thMb #1č L\TL1HDHw O"@ u pvCnaEp!")+*/?/cEJ(Q4x#2446M"`DXajYb]jeE@(7T&EErjBy)AA"A`|=DF`K"Q*RKaF擟t!;Hx""Q!'hP! Em3#5IiGfH!IqSRxB? p$? @'$"AnpKUD&]-[UxzpFs{H<)ReO)NJ$DT^r+Pt喗\-,YYv& 4u+ջ^B&KP/!ʌ˝wPf2 sLF"R_dĜ˝>q} ti#ҔGd)JI/ŠEFJ]$!H I"23hZ#T thЎ$MBp:$Ԡ)C?↤&F1/_QAy3a`aNVNDEk-ϸs 8q#(F?% =P(dM<ـS՜1YNUȃDQ͓ȉ<|@E BIK #]RIJم]MJ@*Ҥ\ʤdDZRDƐEh0XEZMTVMYSPVk4DT$@F^Ꝟj]7,[U 9;]FDmoFtD[j^U[91b+Xzu|tA/~H{ЂFAC`X)Ԉ@Yy񟅐UY͘A͈>U)`Pԥ\6>d ZC- X]$,NօaA!RJD)MۭH5eiJJ!-D $^H,]^J1VᬬZW K46\J^hгF[DTڋ7!TWfbbi(thj4K]*z*5j}+ڒsA( B EL@⌟uNF@ 8.\悈0 ݒ\X  $Թc;#l;!@fUԔPx  ȄA@@Ht2R(I'}] R^UEUم!zE:$_NIoB Fg| jtK zlaxEeSQZ5@lUV(l՚VN(Whoф"h6mPPh5EOlElХ^89F+K(GS8)c}ЇD&D]AXd=V2rftfM̉Qe`DJܣJ@¦; ЙH.4AxH.DJ$N ZJ(Y`֞]D wDLJ^)Vձ Xv \ʧ(I碭ڤ^δ(U^u$9i^gIK`YdKʢV$fE.Z4(Y8nO\h[ eQWf8nF@~ L'ċK6KXGG%vN)uZЦ%z=i2iR 8##H̙͚yׁ]mILH*U♱vuR]#mxw^.^EZy6-YFP̧w'Bk:`e-nG& фVgJZvL^8h낎+ Uʆ+0OԅaN-eK FZH팄qEkeDxgFqEK2aJW!q5V6mhʮ y׭XEj2m\eEk /.#/ ɮ/B- q oE,}E\17q%#LH qC@3= =h >P$86jDV4;tAJTa5zIL c7AsDopqyfJr`RIRk(5,4NNdy 5@JN kle O K$V +Oh6/7j^-Æl̲^[z_]F] :m[G(_E TԸ[K&Gއ^E/afĢff6vDf#D4\5'o6- +HV9{U㡎9jkFv_flYp`%+FL*Jj+ڰ ˪` F&A_dzٲ2k<碕92:k~7}bnN,!}$O4q3:O~wV WQ!VR涯 PkOpR6%F"+kި/Fz LWPg.Њs^pL U &xd)ױ ,{O{t=%ɢLdRd-שJgF=ȉ킒H#f9v:\O`n 3 m¹@;mG?K;!}C&k j HBMJhzz=Fb+fP7~⧦O1F'QҧYbt7qKC+K83ZݻVg,\T̰}V +p^ű5^l8ɒ]P[ bwm׸a{ rQFĻPƧ]Y`5©iybȇH53L2'pC,JpM6n3ȫ!gz&s$ѱ!ƙx^ep݁dCf*@H7? 8n 7ܸ10'BhQCN<r +bˊ%K@H&?(E(w 0BZTJdNakS4qɓgZ ?d % -&`;0-݁ *^ :u\Pm\MhbcTѼ@D0c?җNt3GLٷ Ownص;*6̿NʃKQ_f DԜSO1tJR0?  o]P"a@BۥB% o 3CP`#:(ĨXlJf!6:oQ&vQH q#pLh!"*x'2+J`R&"tH"H2Bs!6(ʍztq@)?wO*(^2KQ^rа`J4Tp),7j)S=*š)^,IP}L-z1/Y-j쬳Uނ-Lj`63930CM8hny6BK.̒4͚D^xG@؎Lî93Ka 6x@ /O=уO:0b wId0Ѐ 1G > fJ̰D]l2x"!`Q r!B )@PUj婊\E( HEأbbO_c?PXf,p6B%1&u9M꥾g6k/VVxc'f 34Πճe::S20@*h>&jМ0mL%Kq[TNb'$(^c2EƢ%uUE=:\UO`&KwY.s>TfgI'W! _sN0NUp檶%XWd/Xi5-iG+Zs 3wnyg` NS(δuneU N*l,xdgvQ:P:rinweA)u@S% l%yM#{ڱD~ #(Gۤ,"w[K' dOQәHJG1⽡ #6I u$P'Hf9a,`N,sjыY4Ւ4T*ٽ$|ySFG\5x|[G~2^rɪ6`w,#.3՛W33Ok fwYY7gc`ELE]hÝ;_m+\L$ث4fkGM\]fH?aְ4>!De$d4,&ɨ_iA^_3rT O<#T+i$5|Hpw{$1Ĉ. I96:Ίs_ZF7A*,,IQUaB|Ƭrmǻ\}|tET*ws4_ξ@_2`@46 ExBG鞃`?5҃?Gɛ"a)R0_x8EK<`p՜br0aTX & Fնk?B*f#xrffPHھDGF%̦HvjDŠjlϤ I8>x I̿FrP܊*q($j!$8MP$eKPEhNRlj/ʩb&`:1e lE*DIAoJ`~`by_ޢc.'z9`dC6N .]B:˳ea6pac'<~뷴)~;v`;cL`NRJ-w0ӊpĂ&v)Bdf RK0 if*dcLBoKnRR*j &KD!,HIho##zoeOpj6ƄJ(#Op()BQO8Q.ʚ,*ʂ){(,ZQwFbL>%G@DIbnJ`WBLXͱ2XX36i%@K\,pac`6b*0r2ƒQ,sQoBz@Eu"V'#4#[I{lc0ҥGcփ$"SB23/Q1T5ιCa1OKMX cx`z3 28KtD !. ^,Z4C)I&N @ꤴӣn:=O2/hD$n&tH6>pINJ'9&gYn*s*(W5&M«S(U))U\rFE+Bk,OBR0gb[oT|Yg3=wJ&؍Ţ*"L"q"n6lj5Ə&Y$-3"DGYKEl.(JJ0$M;T+[q͵==p8^Cn4gJ353J5.Ic۩KMfKk64Bamd7׊ ˋ %P&S-:fN((T#:L!G, Q8RL#@SP /M$%LdT(k)+W )r}lB]kYgo,co5s5OZthp1^(oy4a]:\8N~\o6<=0>WI^5^KpE 0t_Jy4T~pĴL{WL/nҌ/$x#R5ws7Yd ϖy# b%tO'Jku+wsmZDBǏHŰO +Q?秠LNڦ"?Hf_5K¬2,ϦZP%8 Ņ48i,LbAoՓU1*g4NWn'l43%:ڣ:f5?N9Λ£n#;t9W2w.3S Wtw(v/6#/bueMDMy3vh&|ߤDA7.mD3V,#B%ylfH0\("~EnUx6$,'W9&+Pή`N).5b_8"pSX%0m`:Yׅ`%8b҃ב츱&-t3)susL#X5wqKMb3Kw#kviQJ| I"lY*3\DF&K2v@`bh}| '|}s%&ˑv;$R&BiMKi,(J Jv`WZ):v@[,؏*w90JE +-HX`ԘW#_2Cip:Q: 7:Laюt6{ 6T";_02o`籁opw;{Ǘb7bW dW-iT8ȢP"aE ;v70=^4vLS4 ]}Lyf;d%f($De2iS;Dږj4VDvp rĶǰ̬s MIZWJIXUE1߂21`+^c`&3C>:8 );Qб[t3I9sJ;[t9;b/K{P8{ٞmbUjҗ" /YQė)C##JdLzr! %;Aޤ!(yi~{;ͧp<o`br"q&> )ȩ]"0eAՏs)n%ޯoiE%5v`/7Z.ݥ9Dǃ}8|aJ"sUtq3]t3IGW@IǝQ6qQW/ ۟ib8*Ʌmʩ\s,GTUۼIU&× FB(Smr< T1fi@BjCOrR@zK|ȥN?-h?*m$ %&0e'P$ԪZ>*gD2Z1r~E.q̯k.5:Cw^zVI t_9ߛ.@7P@J~Ԟtc313xڽbǎ;@;B |p!ă 0xHa#rLx#C/$ƕ,[>T_hި |e*0C_%xxE{p_֕8z l%0lذNuu̱dk+!|fVpמfNS #f X Pt. lO@ٴw u%nQY5> 4AP z6qs Q5c4c_ڧX_י 4xP>귏PO;0P AA; waG DrQG(0H]F )4F)Y[BBMHSW]Pe; MeuV+Քw=SviuYHQn`%b3UbyPgt`2YSyُ2iܞ~gVXD[`9l&)d]Y6pgRu#Q(`]x1]Giwzxg@ S2]&\ :߰>!@ц Đm+E)ub.1%K%P7R>)>TTvuЕ؝O6naeݴb$[EbYy6 )BJ*A]gVjjpSg1jC˒ktSH$b(B.mm\c\ZW̉uRWJZ+zmGvP|z ߿A` SC=߀!R!JbݱVT.I C&"J&22k^8Rp!,gE+Zbg };FR̙N[Ȅ\$Dl)H"xEG`#4;cXj|Ǧi9LI$piJ2R1Lk"0Ir`?s t';.g1oF3 YqXy45fw`Y̬0 9+AH](= 14iJr9hKڨ|5)` E6NSKN<.{h'|QV2 U)ȧ9!*40(k")BTZҩJJJk1gjyKĽ W|sV!t2谍! GWh)NZJP0q.l9dsDRJġmmuDhdO] IT΂1&SIXk1MQz"M$!UCQ2s 74XyY7i=t۔4sz0uO2gO;j4JP t@X\?Rǔ5g˘။Lä6R!dVe;kغ}1bnMYQ~~mٹheP( WZYE?AR|9!BZaWw%>3S D1z!4 # Xybn6dk9qZbz'S6(vJU)≃Lat"(9*v#+VZ5:`AL`KAC p@juWLxY3i-ZNs::׮qv%;e9ygK{Qs;%)F dM@YU#2u (w1UP8AFO^<)S伤K+&zy[ӫ+LL6B󢤙Cap%]3N&kWs ȟ?>2eJE)BJ@ `ݷZ X|O5xeS\^ť~:;Qoq $"Q)#)ck wr ta~Ҥe)rwZnMSE+[OƘŲjAϋ*U%i+Q!`!Cb[MTбa7Ķ@zkk}cxÒj :Nd"\4+/xމd4xX>mTT9o:a9qIU 0Yb0bWY(8̤>PhPUC xpX|>ҋ7gyΝi+zDQfTsar;~@$~s|!3|ٷuB*alm `|Ѥx./l_B 7 V<)$*B.tK+^vF L P9acNB.+K&DO4Mmp~ t IA{Pnt0əR!an/!%r,"+Ւ!C DZWbk4"*yJtJ(A:Lώ4$NԎ~ܮTn.Nn/Oo /Oo!/#O%o')+-/1/3O5o79;pB#3H?CLL@OCF/@,J`]`,AvsC_4OhpWZ_qnj1!Nxq.voSy:]p Yቧ[S4+?E`' 0NS@O͗A/ho$8w7A#o( pẍ!7و  de>Q(xP AloaL(A(˂+)Wt#S:8UYnWaŎ%uܿp\u(鿳&3AЪǂu(ƍ{KѦ>  -2EKцQvDL9OlXr؜ mܹukkkeum$ ,O8ؑ^^PHċ?EǑ k`4ыc C~ި|v .?Y6-'jbO1A#pB R)+Σ{6ZGHjP?v,lr.N$DLD1Z:dqj IDr JJ)+AAVJPD-&JȂi sN:쪺C ) Sf8h :N+Dl1?]ЋHTDTT{QM׹= n0uMPuJI]`lJS݉e趟f]a>@ʇhjH-)lXYUсbqQY\\|ܖfwr[xEmUecȀdi@wYБM;JiXܣzX]X1'SLcJ>2<꼤doNQxU^魂؋mpF֘sk6&b\ڄ]M4:m^^ŭë͵׆d+O(~NyA-[J̩_TZ>uOäabН|6$(Twĭf_mFFɇFڪs~EI2S7qΤk`ƙێ]Љ_VK[KqX! wjհ߄Nb::m9}YJA׶ۘ滤AC,2ᴙɩx}inQQQussO=ɐxxxkkkWWWʙ0YY6A*2߭@MMSRh zq06ỌoWN`ŋ\yժ:zN_/^93~7pZ>NVYqe<煿.G+O!^fFXQV`~r@Jgr-&vT6\ i@S:c!gYN"gp;:HΈ ~>\=Fk&-;;HW=qO l' _<qvX)uJx?$(4p:$i>r;vV-WyI%ԉ~7<@0]X8  $OtOQ?d.:s5鄏.g<q5}n{hPY.|xo'7G/Wogw/o觯/? HL:'H Z̠7 @DHB  @ S(/DaQю@thp'" DђF ]EPv}FPNѕ& pb qڗ&%]Q}_6;)]{L3eJI+;y|(rll^+_yJ\s|3yLjcmO?RHtJ\+IDQ䟯J|HzPuݠXXuX\~2׷'鶻0Ś.55j>|En]щa ߿DXlGy1Q:zzlĎ]GA Lɴ9D8<IGȗ]+__+ʮz'ʟ)C~jljz!9 By;@Fn0YtMWIMLHY#:1JOɣP)>le [^KdH Rg=lk)Pvꡌݢ| 7|0ݏkpސA!=azlF1b-72}E<  :>@Mq܌hFagL>vI"mA;?=c &h}8P`C_FPUzqK=,ZADQ|=i ۙhrN rnM?Bonv~hN @ .C7fpI*,0.l6h=*d)B~_}xɳ<bcCy͎Px<2;.PQ n~GM72QKWe襠XG e[]seef 6ܛnֈ^xOM^s=>|{GkL/5r\NѠawO +_ 2B ߍ%0"FgyXZF I^e ,3f2mlӡ")Ud fɑ,JEI.|jSC%:5U.U¯,, 3-j5h!2C-þ [W~5rc @1xY橿/ҬSKԥYVښ0-xNw6pĸ3mA% b|!Nž^lY|†Z&4=bufGg=I4V.&)p4@7)B饟pe詥:dj(b JoŃ :EFg +ʎUc-#!Ѻkxk';JƐү+L&"[,L*+h1d2n,8Mn#N;]#m!;S+Sbc>7xD 7 ꒿cZΠ z<+;_Ī;ZDo:+%++hk:"q>#. ɦ0 \!,m!6$( 3hYҏ N *ŧ+IփbN3I@JKdnȺbK'\Ǯ3$Ȝ̲ns(NdVV4oZsPI3n.ic64:2]Ȅ{+ʵ$^(:ѼZKѻJ;W<_H""׎r=#ֽ[ZlTZ\fp`'s&E.[pЩEJF'IWc.!wG{,7|=J%4讆a#>.zҙô*8& M>S3Nd 5@ד^~H^{L}- WqT y\HQtQXc=O '"GP$l|HƐ8%@?qI'!P+o}Ie-Dq- enC)Ju,(NS.&CNw:TJ 4Q`*"vàdJ];ĐJ !CgKcqql͚P6xm72܄o^~EJ>{/!eaHYgjSU?1Dl퉕Dn $ΈH} m$gkD&lB †|Зs18b.%: 5dC$IE|"*RuSg'6Ϝ䬟;%ϑ wtqf)e1K Ǐdk3s2ܴ mf@M #)ge\ȔB oSBGw+_!3VDaQy`؀p19IYRQ5ZV0U @Ü0y2'a!&s]MՉBLVQ "" E B?3D9W0.$V d>*e: ۢ ,ew  h: mj#zZ֢teQ)x9+Ha4}J$):#羯ďؙJN7I!D%`)ؑ!'Xl[)YY9ȍB B Px@PV9jNF`d9p(뫠It>RF/%i':/ICBFp v2 8[hqr,I8MP!4L̦9D}mm"R@FJ7 6I_KQb[UTt ySnsUBETazk[)QTc-*WILZ~кBخH\ub$w&IȮ tF]_aZ`O \(Ӟ saDG+v a,[ɑqjڅێ j?r G%ZA|.edro:\7ҥg6,boF2R~=$|mSI[K@?+AI}"GKP(>1mo&Rn"Of-Y(.ܨE4\JyhW<=Ϝ%.t}1u >p0],x9_~$2[[HZ.κ]mGݶCWݍͷMG]ݒbw./4:oiM!)W.s.OU:3|GRo= oш/UY]Z)ݿd[Cf %VWÈַ9Ċ_Ձo;<ِ9#6Oڹ_%E 6 6r7c-oo(2cn;;8K2k ,k -y˧i)k?C}5!C7өJJl*oȈoc  ܛ/ I]29@Iӯi +u8DkN9 s#CQ90[ћyBY`k ?l?“{?M2ϒ7f{?-6 #D T9Ԃ6 7= <ӲTD,2u"3~Cy3:F2+D:NH>*p/`Z{4B.ԽC ZWr>|,2ܜ4lg\ю W: 1̫CœȉB,F$;#D»?Df#@,i+Iw+#%1Ļ7;һ6O% \@T;B U\2DtDȌuz?Gzʨc<>~#9lH?l,8pX88ӳƉ[֓BƴT˂hm4F pm.5BE`T!lbYf' ӅU).aafa d*n4# [TX6GpC^$D B+5 T&T`@e`Q6Xd 1?|m6&_W`7Vc%g~9F.> mm#sIfSɵV@^k妭 %4~AS↸؆H5cef5_^`o8ooa Hon>(rYe>/fpDӂ`/n0npN/}OcOMm tml?ۮ=0EdCmENh#2;$WrqΟLrim9nV]rѼMw@$A tPtTvJWe,7&asi} j@c_fM.7w4@oa`K='j 0fk6tKk@G nOtAfgpvJpftMWQڰ Zgl#֞uhD-[qۋnm%''c؎cfn? v5jynӾts\XnpwoufkO%n{x\juXEf87wvs~/_s]*!Zvy.wU{rW.Vygy_v2PpIgR_uIgXqUq_EWs-~u!9ecc_қ7r:~#l ~QMG ,hAsZ0?Bo5رG'ɱ )cR:?M44:5S`Ϡ>#.M͛oS)i M8O#F 81ZkZ6­r! wwJ'_7Tӱcő#T!lA%m 5je;u@s Z 8SSLܴk:Ɋs&l  `ᱣ/P;\#ao6@#AH |ZqA/`V-eAH!5&@!dGYB7)%?QP'Ԅ-68\I5BY5CDZ K oQ]~`+G_1$IrUFfsrt[v)p6okƦfMݑ& %X&ir|fg\fbuu|"^^aJZ y9}"ק֨ e`#qKHt/q.]%P">UP aO e @@0auU־H!X~rըC+!D`} UdL{ФXWcYVJ1mEo9lnA&\n[ݹ9cZzd(avFf=*R _9_:٤.8ZXj%-cM+4H4,Y=aAxNfH͊mӴ(VU-3QioHŝCy uM=e}j]̲~!. WA*<ܟ%,Pq9 n^?=sz9Fiym~ Yr,A)أYYн~ɫ{2<(DqA%u}M68K0YIӰUԐ{V{U45-$+?6"ӠV= rһDuMI]ғ\8qi$&N`(0cT(ts C2p8&d8&d`*'C%2t#8/W%zxF G9ѴW5DVH6nGL|*Q$&VN,dk_! ,Y㈶FaMt0 Bit"l%zJ!QA 6c]6 q9.dQƅ+b-1})A VURl.s ?jn'Ę9wĝ3);ĵwj."*1]fDhFA*S(A1ǂdFq ҾE ׎HA + NJbMd[#>ɑMTR{I@Mwgtg-Bder7a2q圈2[X׼d%kA>gDh5<<[U"P8TcyNlș̰V&̖Axj`-XO/:!,t&n"3 nA&[]+Jg< B ur+'UI=[Qp쏹_G&SZ!G6e#}?YM.9Q%^< "BOT, KIJuL{M+[<i +X\WWNR̬3:V?2$BW=qcoYraOIVՋNe*S),̠~JKYAT*)r1#lԵK:-lְHj҂$ ]. #W*,Je %dRĄiBn|2+_u[RR4 Rmןh@[/-NW\uԗCfӰ혉V C4L2ؔ A9dtM;'vw#vRlK[,?hOEIԵm'v׺%uĸm̷ekVvM\1aI&ɜԧ))uZ;`W Ů mmܡ fe˖" DĤ \\Qap_l@p1 "a j[\ pCA*C\YԵZZm `U8cY!wy9x0֝C1g3Bnx\ֹ]WۓౄNu ` VTC: LTD& Ёb[倃iSBIA6'1*AN}g%'SR~r*v~j,"֪R&nr$EF(Eh/f1n(9jZ)bBĂ[]@,0i12DnOVMDz͖ٛH ^]RVYD̖dgE<2D0 Dd|@唢fY΅zmnmJڭflpr0 ''}iw*w!d*\XAH"͂jN*N@|* Zj|l'd-|"_ˊ}* jlFnhf,n)/k&9^g@޹@D2ܽe-e~D("m射LYRkV|aY)B$,)?D2@]2º?B&*.oTj-rrly2'^-}rfg j'JڦNMp*XnEFb|P?&JbD!6'& Ɔ? ,0z-n#m.k1F+\+B(E 'aŊDPQ0pp$ ًFq -NfD gb+ $&1,-Ăm~h*/NZm@4p2Ao^-^g$N}F/>"Krbw,LAHbv/,!AJ!B r"3r&0* $\!ˎ_A V' 1r@DGZ{~&DCMn1O񅶁[23n߫ D_`N_6&p&QD9 Le30>Vf5<2l.ކ.>:+-$>7,0o0 wj2bnr+l,rRGc'#BHJAzoFAZ"6!@!#4#Rlrjv"&1N)BR|-#g 1 /r~V-2-A(p-+t~A5[@[υ[DhpC]%_'ߡBV$^PO >^`JհPm [A.\*CحAs1+sn]oElOD[tA5gq-cZ 7Yp5sW#WrU2R|H(|*¦Jtxoy*MJA7"rAtPq|SP\x/Dp'弴Mn&jQwg%WS[.uf#%HUD4wrrkn1 qZ#/DB \##4ABl/B12u=@6 gV6DWa*n B7 R޺B^cAd'ueJ4s<^6>5>9_tlׂABGpkAA4-B}N-u7YDus,,,iEgɞ4}4iwAdD($jwzoozZ* w?N:2|}Kb$xA79*Irb2{2򞱱SmXYzw-C\dšG"`;N̶^u޺% vc46#<~;{NĐpI3%d9:gw2(n@=+|vj06?{AdBDqd‡p7ˣuw22İC uw&gwg+6>*l>@8>5ukg|ymy-0?\ G9|=ݓͿCzv{?T: Ӭ|OxwԫBA:}/@QA_C28bE(,>$/*)sptXCn<1dHQWf9a2 qgcy,迠EҤ֢*:ERkAlCC;]c팥ȿF0-:Lw֭Tq '74(9%?skøpᲥc ie%,خ]km#*WO֪OywL;P8ЧzupyR?ћ;s:ٽgކ >CQJQ/]C)Y^"H"B Udh "RE $.B p<2>H"$D́ A;P#[xԩs(NH#J:#)!28(j군5,HPL:!,¬r *l4rl(y j*"?&zk4V#!T{T3ٰE66}j*NZD Q:7T%QiAZ>D匣% :];Ρ3`XaYSos(hݓoFQd QbPp#^¿|A}H /dH!.̰CU N#dq$:r=><VNZ6#`o;a;J($) ^s㢬EzȩQr"&2+tpLNkuu37'O>듰7kʖ,i5+Bs2QKgJ7heԻ?U"-p3Pe)!J$Iv#ءUbԣ@tAnםȥtAB0pWă"v,l Cf+C )"?rH/m&kI?s)ۇ:WNzgSΣ\g=l%+5c)+&rE1#\"DP%LI`vr!fC3ACv?im/S<(eNW˚ !R dh׌hȤ "/ ix-9B eʡ (t9tq]Iq̱gym!ce*5gOB5gSn@GTӃ^O!%r"ˈ"UrPNG^9A* uuCUnǤj( iEʡ2WZ%(_2 .#Ud*35oҘ 31n6>-fN†dOq D]S.+4H`b!3o!3nTD؆me5N0ІWl`=$%c}1%_(WgsؚRi+[{aCT_S. F*!)C CC2aLHQxTUi2 p8QHSVw[׃dXnM\U9_y,r *V c)DQrHg 6V0#" g=}SOѓc(5YgjSKhfX䙶@X vEEDK]"WȺQ,Xvz\]7!+G1؅(v,duє/MGR;M85 UlhC 0S`8Җ6Dԑ`B"ش&w(9l+V-]/91jKSc/1zndG2J/|7d^,Dl:M21A.Bo) #7^.k`25AlR|SŒ&!SqQժ(MK$9K.gSpu2}9hxXRլ֫Uwҗwmro{&Plf/EdM3 al{Ua#B DiyԎ_etBf <%xeD d\ 7W/>C™\W!/ʔ̃ZiY 2d_PTKSD-n2dԒQ-VWV5BVu!NXvx:c/!Zm"^ FFˑU)bGGB]3vmBp^-'^+ S_3`ǔ_2]s lSLwGiV[cҔCDsduVѓiQf6g/.1.+SHN2ڬ}FήI-MV#)}&բ2A"tVQjUQ1'dlAXjW"mD1n6cZeTuaPO3뮎1,Ă]qt_ri",wr5`tJ7"TWa)(f[GJG11 /qcoNJ&mlIwO'‡)-}*bhBTgb!"liF!*ƢPjPAn !ȷlշxj۲vVWuD4cv!m5ImSkma71]72ocO)3G8b34Cs^A spNW&$/!R 94 L^H\u'2c2OTFum㖓dꚯdMui!Uhfb.I+.5N C22kid:(FXqAp=zqcelǓ&lYZ&XP<_w[kz]G"jւ4x"+!"s5C"J2M$9r=# -JZIцl:+bH!BZk;_wOb10񺓍YPj U Q6T&2x x'1,]Ȟ Md9yIkDMY(Re0KJva$s"V=k83M.8 u2 JLT-PP79X19m/ ;QZmF%\ӧg!`,ta"0}ai3#J:9)br'79[#=y"4/kp%G]GnK90Pmkt/3ր5c8V&XjQqVEv7S)Q.L2<{".C*f8@%,`+TVhKUǽ'e.z}cw/?_»6Y 3_-Ґ=:5%1к>2% 94%~ |Ш,"V~ LMǐ z~7w'6R"`硿!t>6}'ro!V{~惾b *YR%>ffɉ&IΛBqgHY&♸]Q)FZq]a#kElݩ%Z*֪rZ1-өv(E5䉨ʆ=;6QwOLz̔^ 9uJ=+>YH3R_+G6^QuEQXfU]k9V[ghZ|\ZfYyi2`bA29Qch2:h%|חe5eeL*LbdE\y6.TegVFWl44I= W*IWDyjQG8X^~SyM4wDەZQt_z }JC11?ӤĂ}E>lx*QD>\qpU`$)n!圷kFOImTQ6E۾dTo%TFIN9vTIKQO0B{USMW!d}cwEi]ta?^b$^brWcUDf6-?f)s-0LQezbF. USՐRIUKO LFxRH֚ ԕ$``Z˹.ZgߧD7 CFN G$vx`Ip*v$AD}Gr}>'71͚G(}Er՛qzWo0<kϻ*RSq\$p6o=o.qF:d2ѧ$Dڲ\jdIiT3,f)bp3 0 !M.Pj (Cdj&ZTf(C 4D|Jiz +gKirT-:n@R-h"E9c"y"*>ZV8!A Rlj@ DG%\  dtŁ"ҨH%6>nwD7zpJl'ZT:a,'h{$I/y/|&6;_rO(Lh t?0El2'+Vդ(SpE%5%l9D7+"'L '* TdbiIY :[I,(C-h·Lf $Pi Ȕduk[IBf36Q͊&0G6S|QnS)N՟k@  =QqAYW/DŽ\L+DاBh#m)BTcG1R +mD+TBQeFyWRE(1ծz}Biw;eRd|=*׊W/O&M~/zNRl`9yxbϠ WI e],zA.]Ti,BdX-Y:i_ mZZі 8,=IEH h'ƈ%V"D1˃,&XGPh$$Z]sB@${{j 18[q^re[DxCz0 's*Ǿ'LgAYA |n'lb (,QIH#Gw13>sMٟLcaT%o X7])op3 &BfellBkeiC@EPDm6ETSo4 0vFo{)_Kzi^(+ienwإ׈"cJɣT`&ىbeY*b؋ U5U0ƫcY!c5rpWyHd.$G "G8Ѐ$IIg ` k* .XP ReF75P*XTUcdKHX$}=au xj`1[(]` b(0 zgwaHS;q@xye @t`%a2w'GlEl${ek T $E|Y }}bR{_R{^ &af F%&436C4AU_Qgnv2 n} w_12 _`(foC@@AN#37m#K""^4-! U3FVeVrG XsbUxVGL0VxA|V&sIs$G3g0!ȃ%XaF[0B%t&tbbfXGHV  9jU, a. -9@hru[uSHQvw u` w` yu Kp;D;4B<3 edO׈wwHP+{HA0TTw!{}){T"{W䉽z8XvЊHBF3FFP&HESHFC@y!i&GmrA@Sb@QcR_ $^oh]6Db3a72):1:@e7CU0cTUBVgGIV&7'/G"ycV; h'8 TӐf%Xpp@X1tNE55Y 3ZG8@g]GIq'Q]a 9]y7yI90y,jNIz!*q/dw& O!OĖ@@6mٗsy7AXLUQ 'Zlwe t!{tQeՅ$mՆ{,$(ʰY:&iP P a"3^&|3]ڥDQR"(RD5_rN$\ka$Z B5܁7) 7΂UVuGɝB8sUG-GyrIVhG;w9ŒkrJ1si99Gf V-dS0Jn`kJgt>w9&sR90I5**fgPYDv`|]]$a2@@PXw Awi%L OtiC]:7m_mfv`F`ÇB؊Fy4Ր`+}A~ോq(T x{%^@; g1bsD"hs#5N# Ua fc GUT|SP;hG:s]UUz$fe [rV$GLrJsٮG)sT2's59 `11&ad21k p RP;I}@IKI[;Y7!#y *`D'tGX(PꥎAϐ G%mx%14PQ2{:ИQ;m p `&IO&xڙ"D{ġQr2*'Fl!4h+g;'V+&]J6C C .6_,W1a6;X)pz#Gq yU<_e[97f*.YVƛ.9EX 8*{ J˫VZSd3|}pWs;q; ;w<1+B gqpl"a+ źl%G Y- SAv%1` lU+Hx0dIL;3w4=-˜-I>A%I$QBOz꼳p9m{AP9lgwp =}\{v%W{8X՘U;ɠx(1(Õ0t:V[#WESp<؎-3ow1 = Sw{&LzJ2PqEGuGjHfc)hdsT0t R!w}Q乔ه`J@CqMBd'E9 hLw;U ǔmm{p|Ƙ.pAa.yG^)L\p֖mtS35A3,]4@#!t&Aiz QP ܠh+@@U۶ Y4d:rFl ]з1{yt P|OL@ 0 Mczq u@zLi 5w#:wg>  1o IKK Ж* ]l0=.+=7 F]VGae W2-f bten U_߆0ICU ̪0QtJHOqWw{@ wj 0wLYP`0OwPO"ۚO0 K@=۳|m  P U+m4 ̐ Fp ԾѾ@ 2;N BUFA.8Ͽ[܌({tf2"fQ6T7pS&#F`W'O#vPiCTP!ڡS(ԃvoat s0V6e|XCLK> E`S\i(̇0b 7x0ѳ ^?4hBs0NdHK md8fgt>Io)S^P9اʸr/tyC|-oTs%TlW%v>)}} OJ#?i}TWeQel2p!Sp-ȣ<;!b*r$*Cc0EEǔ:,c,aX\b:8HbE2'2kEP9Ha+ `Ï!P:h(nq ca`AWK`FaT%! KZl*hVl(}D(iD ̅PFҖzj)/ )j@ƴ0b!t_(r6JKkE>Eȉ;H ?B!2$|#sI @z'0e 0 π>z;.h"OK>d:NPMG-̒gt MKZ=1X,ގ8,BG40[¨ '6mUDC^!a:7=4[Ī'G-̷R-&Wr-<gT׫1w F3%xUQ.SOȂң$e.9cCwrR駞nH`4l"UfQPչ~W?)l<%'"[|KL]eBGG3Lq6"0)r#->@%-!.E3~GPprr$)|,0OyiAJk**B!Wb,0O' 0^;>8oMp`-lq !7z q u! y!oB2<'LeL1!";"ҡE=0>z4%I/i`DH h{6:@B|\x.CTD ģ ajW;D6HD" 4^D%ʁΤ%;tъ^g)I]y;+I@(pE{PD6 Enb,DBތq .),3BD/$(`SYpia$ \TK`Z!ER WQASZނNKR Kq#'E+J41bjFL+XJE9 Eu$O` VL1MΩ4,"qdvR%1e6/ךR8v<(;Hv-@$-oe;[RG5 C1[ 6)|A܃,g9Ek[Hdm3DN)Ѥ^z9vqI'5\2aB Zi08 :wf>Xi҃ {[g8=c'J "b3}0eԶ mv '?'L})Sf%2iPHu22Ib @> ea0b-"QÐBC$#ƈҳRԬcYtѺ4cH$URZd`ʋrv\=ҒSmdńV`*bvQф`X4Uּt\WHwkC1b85\\R (Bw%.) yC@0C8vs/^bH? LuX9L5wfe67 }B ׇH!7D)6!i'1A=xM`cS>fjRAJ'mXw`)ɩx!]]`P~VRm SbT^bP=:rtj2dF+ IyL*1z{mUen+\ &Ұu&] b񖏾gpsu>;laFo!0"%Lu?~͔l;?AZGjl~L9 .Ҭl)M#ILL?C9X + !]R 8_O=(7FrCzw{["@*$iB#_8"_7! !B @A'0aH+*p8]Aqǩq8QPq(pÝҭb-`J#4ʄȨ+iAAX Z1E)XP•:ۗxlʦ\p ǘ%pLʪ|\8@pb;(0X|x>8й!$ a%(HBPi9C"t@  K($=Z7-,.A(:\0YۃM?1M0Z4 {3p֙JD#*C !N:MXTMB413{ꤹI!̗7YAb\%`?D#.z6&A$PX)([fȄfZ jɲY0>Z `Py(8U3(# =~͖:R#r6J}!XRۃ i:Hg3jӋnD U  8-! ɚ$,kBh_I(IAD=/I&9[("A\I5 ̈y <<2D"T;f N錦S;|0FuT[m7,Lp55H.LP:wxb M<.C.؀g1؀/V>\ȩq *<4 W44qc : 1) Ws'x% YHE(XD##RPJ)= _iT qá"!B(RK!BAT0 @x%'Tɲ2 n X>ëZ`DQU8mp@UP(GU[s *R9[` p }@  # J0?8 剣͆k \Ru! D L9 ܚUŹC&I} e=5/baD,LMϑ[_(U}DS`9y^%͐P1qE+~7 |bb/h:2`_2`θ_@D;)ʨ$2.JňiREz:N T M Xk`ӅHC$ރx y!,L `蹛UL.ژIH݃̚q+7@O)ۏ_b+1IH hr*募6h ZڮQRyql 3:Fl? !n[hQ#*"db*S ȊS @ Tʈd; "Ka%&эRLaLZaTVJe=Ѓ=垻ecs0I5z xiЈmJ ^  dʫ<qn_:ԽT^,&\Z5c6H8fcZUa߂ .0h_Lل:߼ipO!!ρ XpŅP I %0B1"υ0!ⵘ˙hU P͠>`e=_^_JP<CV9#5̜ !6H1%>@h>c}cЕ7)b:HRi?`cB:ҡFk؇Őxɖ;.EFlM aGl2F𔁼!҅ F[F]X4As`f`Uə[~ԑArSÑqTZe]nj=`2n+]T_5PTC<BBt6/$^_K, 3ABY;fTչ 6hC\ΣJC8VH9 -Cbꌰq`h~`¼T[Xׅhd/=6!7jrUX=8Yǹ0 |؂N=<^C,w-9F> Rܞ }W}PȊk;%L!eIڼfVAu [%SYt<&ĕXfYqqqHP̈slX`THHˮ!`5hu :.G;[J 56 8hݎ+K=r~ә]m[A;]U^J98s/un(nV^ݙ+ȍSJ_Ot,\^oVC#0(qFeC17,o7Za<~_G 6Վ֥Ւeá+'9J:@Dϐ%{ k2*L׌vӃ;Ő=ӅcؔCZ!8Kd-;ֺ0# ICJK x!U? $Xp"Sc C;S>VW!LZh!:@X;64PϚa|x-R/t!2.| Xx4\L$Rfy:J-ߵphZ&!BCH]Ez0R3-s7wrww vw ?x/n"&@Wӣ6! ҧhʝ+E\Ʌ5*I˖()d0aTfĒj 4Rm9s8 'U3+WƁrN; nFÒ%h>d #Xy)H.*R͍4\z%>Cߙ%2[ dž C>Dn18"CGsЛ<-_jŗj'qwU_ReɂϿ]`}h=y"{*B`?a,"@O&X"(% 3@h`,"\MFpÍvK,:9ar,a0-K I%!EvPVFq4Y\}@"BfK9"`T?h$d]?I 5MD8T1?h#-~PGA?,?D?UQU=졥my䧟 S%)D{le% :USV9 J2aRDB k|}ydPI Upc ]t񮳂aḻlS"SREDZa00wA OT5,!M"HQ4C[^w}B ]&\q䀳`Fԥ=BDЪF41E9%MYhc)dj,b)08D!]pJUUECѐݟ)I 0C/ADu1>jm152CN3lxE kq-ǜ] 9B -d)|У:Tj*RNDth9c~@j]5seId1[p?FBy CDh쁖M#BdN%_[s31z> dZu^*"6QxHގ6nwT$  f0Td"/| GR0DrVA1YXha@rAB†pŌ UJA1a/cFGP `cڨ;^8G9q*9ᑈ"-ְ9+(QH~啳EAMz3RAӲJk%<?fP.i<jS/s "ejԼ0alѤJ6pI] uaOH R9f.঑VEO`xD6Yψjߕ4";-jRxH cQH9%W*7ysN~"BT#`2#&o!3k3+$+!4xS^a<rh%ϋ N@ ^70TKD#lq5#RMGeDqL "in =߽QuE (W"FE="&xDp a@(;pBv;q3YH$${D*L<2~ȗQ9k >oU<\DEHD>0T!,'Eg`A HF܈KG7'XA6Awg#2Q32b"n3:ƴkDf{5>0%rgV3#)O-"r I߼.?D~:Nj6w%Mլ ;(cwh&dSg 3s eFŧݺOHxR:L<+ yJR򏟸@']?#'ZD!h6v Л,@c)d-^XM?lB|W|[%ľIL|fm_\P D`eC`VLѯDU?!-P8?4u188Pȁ9²DB͑L `L\K\Qm͔/.!@ rBt 9 S0MfFHЎ @H bSJ?J<ӏ]a6M"쎍#h`& ń 'E0T KTH 0K 8*+L25l͙۹_vVMMt)YQEqҖ#Bp?U'D߯ך UA}OCW 10I+F ̨] L)[5Um:3UI'IzD!BjԥGHR$O?%Ћ`6bIX:f>UJF v ]= q_KZZjeIBH[U96pHId DD #OH5G~&3F.Fg]zimFEH[-nC/&]A_mn2WuZKZG4OsDEKOnE[rR„,R V0E hjFK{hR#cIE=ůtZR4کtJ_IsSUH0ͥU AHE1f:FDkb$pjQEMBXDD #' XPRS}[?|!ŭL/ t#@#]p,Q\MGI!_Tq]P /fh uFx UI})偶@U] f>E*ES˺<ǰTPo)q:U r(L9XUbGO0z*3Ǡ@ N)!U %+qBȿ-+0rlv`ȐF%k 4-3cӕ"=zTÆ͞E"Ǹ*X@Dq>Y/,Azđҧ"w\+T@oPK֬%)Cӧ$Epܸ"0qGH%԰n 6lEVZw8O n"E޼jl) G6"x@KK>C'K[n%%?@0 س?A]?`/0CRxB ĎcN X㠛8:3qsD?E꨻nD=x(i#S HHZrʥz#;lB)e i$Ĕ,1 SLQϒ6Ȓ":0@:G[j*qTFg*ɝRxR4-R!9H&c/1(ڑU:-!=Zemt-DZ-&l`HD95*IM9@';- %8;-ǰmy}vƴD󪫯H34)EGR&*1LYDo->DASm:.ij(ևʐU^nZooBPQif\mAep"`Ml$#XԂP*²H@fXf%.oKf#;`K姨&7RX NM_0,&"#"~A4ărV7NY6t8 bQҒ)[ @"1(Ɉɡq?䐸N~qQF$FjD* 71:c`.y˳m0Aύp# $(*m 檙"Bx@w*T #NrҒr#xP\xlB?beJLP* L 귌?`{-u[^.}+\_DunI2pT|黠fvA[Lڪb[R:,3;Xw F0S* ЀJ')\ t&R( WK[h*Hq`i΃M T;hRs #F{e.h́A-DehԢ*KwhXBOIi{Ră X#T !Hba2)kUDiHK,N)|b ŠaV]0ì6@=hf DqwHTYP_eS㡌 !_Ath~0UP&Df 锛֬ D#  D>uVuZ,f1z֪J 7%%V[NPw|{ ؁wqgO-XEdNYu  HFd'ym dۻ}oc;ǿmmk-їַT  ~h&%MH @x@3F^ qҒ&29h$6ԟV _NH}W!D!$ү_ԁhU%h*1HG!z ^KeSBde( $CȉtJ$,Z̅׬,؈y""Yպ?uBKq໠c¬Yo" CHg (dZZA22B.<0^~g|cvfy7!/RQ`nF$AZa"z!mR."B.sWְgCX/ ZB"$̧:crk kZηS? ^"ef$xj Pba\MpcB.&3u~*f7f9ijZbR$EFkDfC_ `:i:VS1ȼaf"ZCQc)c]N46&Hvb:tk`9Pf]6fQ4"a`We+r0 `e 䓅;ɒV",@Q! Pp 8J jTkIk]mdD}BtI(aȉD \ɿHB')ۘ& 2M`aLOU7}a.!c1hc"-:j*e$ & $CF b!V>?xD5,ؐ_ 5QB ;iŠP[awЀF28o.f+"F.0K3;9a[C~c\K~qi4F7"c6fK aB+ 2`&E6l4U!@^)E4$X4:DaZB5:CJ  :eS4",YTtew*Rf .AIm$hq3F4 k*gjKix ֠ڬ Tk#)'njzbD;[( Ʃ6{ x*y0$Go X`iPp/QC xH8t@L@\B ,+`F+# vZ{=$`'C/x%Nc_Jȡ[b\s.j>>^i1*3A| ս Q35b;;sm0fj-碆g1pS&zm)-m'w 3!Tk͖9X*z7H9ÍNDAefb0y*UM6#D|SY!b{ق~3#-hB. ྉ^N]tC 5}cЗm\*.Әa98 æ^ho x0ƮjBFs>ǀ:|cC7+SɈ&2 "h.E5dcq~2a p!l4IzDs(\FvȃZ:`]`Fu"vl^aNǼ|: vwm n0}ϑB)*ʏ@IO@`*lT&K}0A{r 2@H/ v#`F%hTRCh+Dc< c4‚ b7Ȃ]XNlnvM$}Vd\*Q7K0Ò5+- aϷqHȁZ1,Wr1uM̝Ѻ _[[HsP@ jܹB8,7 @$!lG G8Sc  D%އAHtLp;VI eִ #s1BN•ͤs +8h!t[[GR:/T {ӛ|--* p â4<4016J)l[F)QH>(-*C-9Bm  7$)INϪЇ>W *J"\uCR=,KA Tz!,^ Y5D$E`\ab (V 0iQ+[x8EH%C*aLB&Mٹce\?@261pMSlF3隽O #M9?T!>$ yN*Rћ6Z:lgZQme]!+YOɎX3@&-|<|E@U;NJ%ʐ!B^GBybrEXZ%s! @!)e<2 }C)j>|Ӟ 2)Dl8">GgbO|'@|CpDdr3>.Aj$38Ur!lTBcigLW:[ $4Vk Mnc51C\CjA ~]2D _m׺^- l=bb ""v4U0 R3Ύ!\Ⲏkz2 eÞݑ~f3 ~{Cg: )|(![ o3@>>]dQEm*Do#%\o0#3^TD-d#9-1qI]@MQ8^/t_cpH:{ =F'v%M8&CabPP'F)&f6Z8"O`=6( PUuQ@b` ] $qSaNV > n#Af,D уyFIE?3!C=ewLxzwJyZoxā \dnc%q(c'dryBz70WkuCiyzXiit0;zDzdC/&"Wr/8if0S1[TXTXM֤`1qFvT2~.wA Gy`~CD([:f@͑Q nFD ?q5p-oPc*o`6[[7@!`nu9@ Ro?z`]Bf-82sq3"=HWB "6HXo& Mhbbe9&e)Satkry)RQd)=cdHBqP 5>[uSFheq'69K2N"6*s]Ag~,f ,)g:6S$G(6(S"\R.0%&$8m#|s hz(xgzI)]1D8Fim~kQ|kmy9E1U|_7N.Kaq`^/Adg#z:_3EGޑ+1ZH)B!@R[5 pC: eAFv l0*]Qp3q@^D>9i K @ {p+hd A 2K2r"90^IpAK5U $FPγnciNXs'Q>mȤK: $>)K@(VcbgCCeSIb@S@:Sre^6 -r CpP $"RsnByexך9UFE`8eԛ&d,-Œ"$%DQ0IiyzzIiȉlUzn᝻w| SWhfٝiQtEYPqqEF6A#┖Hqq3xYݡw^Fp]cmAs&)=[@ !TAdPU,4R7=B!y=^ozU:`a@=q`:*G8R T7d^B֟07Z5 6 ^i'b`qkmjvkp*a9Gg= ) ""qugcce `#f> x7uS:@Zve*Rrnw  b@T24:N{`3 J)B+jp=4%D@ $]3|8$w$U)\n6N**8X @b@zPԚz*;; 0}՝֌y6W"׈wX;C ̰8RqX#.-6B7MXvTxG4lKy:co.5IxU+a?=A**, %T$⊳"zqGejQ QdC lPZs( (3WORD]F : 759L?[bI7(q} RhQ9iSZ\Zc}je6NK! K0@@&lP[ca˂+R6 cb)R$cxm#[*+Z\=,*b@M#Pp+*z:7ȜWi!a7`*D2-IF´e;S;6%=f J ˊ&4J(2!>yxQ+bu >Q)|wjR>mzݹʫ"r? ,$`! O  ùmZP خ{ƨv{a݉?!vW%_XddGDzBn,ʴ0I(SeGZ.p?q:*w]f N [9B"ul;; 6Nx'3~' Ġ9hpZ:%"Uqc;h |-b45[{ BQb*Z>@a:(woS2]*˽DL4  ;I=r=0>z!E! ˸yn"t*͛R+m P;=CNPB 뾝Gn/}c{˜Ʈ}{ yព |D1J.'QIA}k:GRb'GfT+(Gm=wڌם^` '3@> @^т PU8[稜*6'E'`l (6(b9mNaqI !})P2x2Nf'Mj:5 ϳ;<~L $nH _S\C8DJ*yS,KCG:MA"g׫*ۖ63q-+&:g*4I dw36b:Pݬ<;ޯ 'M N B(4@A@('G",@?Zd(p Í9"I,y0zLFc8!C ]|vhH/xaC@C< YQxI6Ŗ-H[ Bܺ?@yS%-)ܹߕ+0tR#M%L-Ya,F҇sGHXՃ`LD{@ZF|dIKh>%Kӧ8 }$ /]fGzXbo&Vt1g H*x6 B!0C.tAB "k @y+V$ L ;B5*QJvܑ9R` ,=#`'' $(,㈃ 0K4l )pN,(Qb#5t9M7MCDͲ=Gj@c *%Wf 8!.頃J` bZeuՁ*W+h:#ځY@!*6ؒ0b_3"bov *!N4l 8)By=d 5WRIiʩ ]4@e1"dz̴<̒,ά@S,$E18K!HjB zϢDڭ-,>>aC[Β_.. O]@;XcI/=#tx[o 3 ﱟ~ |%H%+p[06{+\DBRRC+N|7^dhԨ 9c22$WR=S =03IJ=K/?gAHM4lSKB, wJ3J ;((H  2bl Iħ*?f*U@6(pU""R@䀬P!F‘ZEBR`$ܪ\E}؃pƉYb@a_ID0M*ubrY3HpxN_10O:u !^oB(1ɬ e)3%3Ѳe:Ot>gx$ed ?*1!h[ K#ACr(S@b:Ž> 2R7;0%>u|@G @  dpUsasuo"BoE"BZTw14-sZÁ2&#AQ )HI2󔇼%9izBoz=tKdJOÄx#= G)& $E(b:S7Ql,K  6SlOF+ WVժ !z - `2@ ؔR? - a^e^k)` 0 /[26}Pm )RN^J;Tx#|@z2]`pyE ; f 48j:u-nOA 3&M\-g9-oz tQw̓m>D;̱%*{;-cIqRA0rF">jR8iDrҌ>:+}#E;щ:77]3/QUI@W .]O1߂"5/}PK?l4WP$Vh`D C_ ?X C1D {İSDށ+cS ?[Yl dȳ2-+=VbD)10 ٳ'2j|߉?͑=G>:>uHTi>U!5R |>Z^Y#Y5XgIH?1 C(&CDI)Cx-<X O2c8h. 8¦0 C:#:sjb ;aD4 `"% !hJX03ʌhq8# .y}}ᣰbx ِ.c/<C -`w q0 C$;I8\ʌ戭yh {̀zAJP  >ТODA2'3ʝsEW| @Yd dI?!dMZxF2j/2j/E=]E Zt^Ĩi1iǁh'xJ[GOKK H&*|RKSY||+D"?ҵs|,\?28h;VJ˹k64I0Ii@l̥İlj ]e$mZZ'S0& ӈ6KJ:t T0fۗzZOZ.>;@ȣt3 @b &'Gծ($DU"` Jp ` m1XٝCS ĶV`Jd=Tb mVi5\c4\C_c k֥cY\jƍ_xgM ){{֚Yl,J2q`OeJ k*ت zǁ>SYxl & ZP,m +x2㝶Ä,t8mɦ}C$Ҋ#:(Җ/Ώ0DRHe6`e0#&="5!h 3@K$ .<\NwM9+0+L4؍A |-d3I]#[: mRWc/2pV~} >H>T>M QaАP ]4!x,n0ꣾg9س)e9k[-oB -֛|̰Tb( B([#Ȧ;fR;え8fҼk;j8PDw)p 3 X BR\ ܩ׍̘騃KCbN)ۭ ;ATEГѓW,Umǜ./=<'i]PD`y3б)R~z痈 յЊo_n}VVw+;o\ Qޫvp_p9<< cؔm>s pLiMN֠{E+b!bԫP9P+Ȉpp5}l!܏m2kTKexr)~ØڗIjcG8F%(x s-AMrb֋0GC `r`ʁ`@M~cHDǵ];OFD= Q6 )1Ӭv&ɕMn+;UU"Й¿;=Ɉ q(+%qJбٓYJ9 hiU 0?z}}V?lEȀV ;? Ej.bacVh_%W)p+V(P4魒OGwOLNJ%  ` @ jyBJr(_-*@'yڌ&)}Tw|@d2J$/Z&s㼆9`%}1t!x$3bࠎD`(:x-6r'Қ>$'pJ'4ۢ!] E/FJ7w33R;H#M@iAw,Y}.!kGUAy4y# _bH=PDܑ]?)oƋ/{RH%9Xb%h AdHތ)PYI ^spO^eEx1Efr)y1j!ğjT+sfmL $\;8LF QDVDD"b:*$*@ iA>tCj$]#^8rl' R :+LN6O e;a) Ǽ3 %h =EaR$A K)zԣC.[S?[9 HXDQ"HJ ;@IM!"HD℀$/a@j 0+lJSa*0H `]]Aҕ = "F`OXX8B9Y#?Ê{'p0,jlulbnvxG GAȆ45 EgB d`=)("2xaL9x)aE)Z$"huzv˺ ꎈ8'Lbs?L sABJ ph[IVʦVUuG:gGNRg|&qZT\>P  H12>b*ʅz6k",,KXNn2|)/WqI|+ S0V_j OIjef.NpĢT!T] @.WUPVw.@F C<KR/$t$ II=yijua;`l F`Ej; ?^]Ocr3-[[Z\׍>%|8 طar@c|0B{ &!rs>A+rF>PE6PrGfvoauRMߜc%sf9c s?L'5At'pt`,Uix_1P.+;'w=9c8 =w5){e7K8Rt_CPU ʐW똂ֹ8Kv!`.N䳬}lW[XZ3_Q@T T*3pLk嫺es~hB<V\b*RaCw1zr $3iV[bST!{x>_XU@іHmgSP_e}*AAO̻àv/ܞ;9HyA(NH6ֹ )!HVa,yW@D 5YH,DN6X0A0~&psA%)qW ` xXtX֜8A{,HtA%Q͢H ]LOֵB85ٹ^5=ApJ܋٭!!EZEE$PX$NuT(U!lĜDM灞%%4IVTU AZZ]NM\DP5\AEAb8FxcwS挗e;zDy,#vLwM@Hȍp :Nν ٘)؈, vśjB4H| :&Xm U_sHUP sKU%E4QB TR$!Pt܂elA xLJ \STbGDYJCa9N]ٙH9_|NJ1YIJ%%QXE#*^ZEd]YqaA"IKj +   Ol-\U\H=WUY,W ga ULdM}b1Vݴ(hĈ TÇM 5M \Nz2zR\~\Ը*1+qd3<(|Aq1G( y@AND͆h5a aRhM` )C%O D5L vC(Oә DiTPPܓ\G0WGЇxa ؍JP$]EţЅͩ`zYKݘT? b[&^II"M&d]} D!Jܩ5f .1Й-U*hˡ.YыE(l"" QP$@oW=eE5QE唑U(אޓpLNKb1`4x娇' zH :@tH @k 5ik5`usdHȊ$W6}@&[&f4M3,9l9dPiN@ ؁(%> S2Rf $=upr@ttAv&퓦, %@LGt8Eȗ{eЭ)%UguR&ݧ **پĔF%8@D`miٕA!v*" YH*djf&2cJ&B"P'*5 ً˼ȝJ&( u^d"R̐da1#FK܋q - A%86o}8{61`I$&pn\oƽ/8 7`6 n)%)$iկdeЈ{4ȏF u3\iF0M ,.)J>pT II GT+) LaRzh Ht@A!\5\Ȋ_@@``-e&<ْd'jCW1B*LjKXPYL.Y!:W.%fN%2bZ*n+p^ }Q.0fn*e>bkv`(oa=_,KKXN3osB2sI*3+//_(5WsrϞp8'X71H͐:/7agA0p"SE:p> Rn@ǰ`)@CϤlRO"JpT _`tT2 A8ْL4sU-\]>epOC GLTb p g^#Y&X5 bE%2I % r5nq&ceZ`ZNE_s&'YBN T@U@qP5[ #D'LA%`k҇#} &3s J*smW36՗lڗd3lQv v2:/IMςl>!>Sul!a{Eo -,Bd >@ǎ z,Έ٨2KL3-@0JSӾI-Ra3-8L3Z% VBHhm<JHIIKp85]*^Y!r2cR٘!r)qJ=YߝE1!õSE*]++3'\53b\?ZHZ('+^(DUDn :cYPB!WLo-|N0Ld5on _8 = @p8,%Mts{ ж-:3Rw TwD6A9}3>m7oƲ_ I XP,oЙI~4iԢH4iTJRJKN/*B`:-5YaXq7v^QT85J-2X.5Y%ŔoV2"yc9]%'kEUrb6'YlnC" o,W krs`ݲ2Y- s=K? @y} ZswI7sSL?Ĩs]yOST DXq 8z$O X6JtXRG 354QasɉnA{B͜LL;0ș^S htDtEGI_BY8[Թ:^m3WX#)r=~:Δ%$ʼn KTŃ]] y[şb DT.q"@`A&T0A|8D JHbNJ#zŋ+ʕ '` 'lKФÈ PBE TiaL)`2WaJ2QSI`gώݒ9p8Ѕ9_̩[ . X`9B8 ]C;E0!fȝ+{ky㾧W鹭ON R#p nRB\N)3_2\t՗CcIJ*=BͿJl+^60f 9ɿ1NP@Ox>/Ƙo /@ [`r!<'DCAbHQblK7R]b8(c-X22*m9vpb`R@dI ,! V+R˅8B3#lKt!/\!9c$()A5)9A* EH͍B̎"峡ZI:PE$(Z)Lb*Ȅ(2X؊9:Mb+ظA3c/3̱"PՅвy7=g9h Z7'K,AÔL'; Ĕ>y8i"I9eh6뢰&{yAP? tԉɨ ?7T!'LTW$eI71mR ػ.c(}.h E<|L3<MGe3q/S1g>Ϣ* SЌLHuDg#ґjCr>7%: S;8x UTІZ!P A95Xcsr %l C̮Ja]Zҿ%v)(]}09{Bh !%y=F5 XR#!xqi@l:-,ICqИ%FV;}8\@P/QWf0ɨA3-@Tl,dx4C!hCd9 ^@v#b6[Bn;6鉗п.wsƷI)Sc-NZ$I55QR)=1%DeRY:щ.M 6(2),p`t 1;/ )qJK+a#G5RUEU#DbJž=G+ :n&[ܸ"|ſ ? O Ȉ:PA:},>ys׻BޫW_7 ]pƑqhCT } eRܴ>D!D/ >?ť=)]3G./QjlV3q 1YC `ve vnzGB Emx LMI!tzX#gSN"lf)w'TVE + ĶO&^WL5QMS,Ž1Ydzғ+&LkJlesMxJ`#pܙkL4"*{&IhZʠֶaηӸQ NӃf5lT;ֶ>3/;gJ~6_;jê&a𼋀@`{^xIGwpwwfc$\D _mIݟ(ND0tn-gF_L#&`rÎF(eģAA&3ÈnxPJe0M㱤.l0腩-JLkبj {b !, N a( lP$ (ƱJ$MMKvr$oe(W$M<)S9H>@T@/KQ+ |Bg)+b(m,?a:+i.Y(itS瑊pіn#3l/i&>, 3f88,Tnʤ6h,1>(] />Ij1s!C!FAD0˾̠ 2$DE!@0E$_$!,N &v0 -HSp04Y"K-!m)wšx xg.yBGG.`K(.1I_IW vt.4+IMrOR(+0/QsU)K).$VJJTNӰzCШIT2 -4CSJ^" 6$JN35&Q^4" QD7% 8e&#!fChC:cDQGz#:6 @BTCC>cfgIhČӔB'uFh$l*D 6̒`sDިtN$5u%UC[JˢZ5Ѩz2ŲDL<4/D%qdDQUE]tIj(FyxbGy T b#G[M(RI+4VMG4JHJoG% Crkzd(RIU+֮$$瑜e )T2EPvS' $PbQ-QB%zJdO7B"4Š8S K"EDD*C>d A,*~` IzΔHP,.!&altGw[ aRu @W _[8 tqoOvC=4$r2C#iKչ7L2dG_Ih_IR.G}b;`'kJ-+Mf,O^UJHo| ؗJ?(l thi%z&^?Ÿz0ybq$D4_|%J^KdJPN5 4'7EyWBQkCI@=JzF5Msf\x=+bu!bT ,1 Wh&?sX= ?$ltր(!& uɳ k j[ vow%tCFFwЍőqj4Er#iCR4AKUx$yCIC6!(sz2s, E$ato׍Nu.`DjY_8CF&fPÄ!#,M]wJ r/z+TkU/6gtuG!NV.YGIE|'N'ny(Bxty}TB噉be H SBiF}ҳooII)Ki直RH"VK%$*B _"j5$p:'[$ܤA6UF8f3n#!Argem WBŸl1GӸFŒ QJ>| !D6|PDzCUُcB8͖P?X̸x;p=svSjȝvL[SCjBۧn>@q̾l MX>tzKӈ bF_Gv->qN|GTY,@yKeu"G;wrBP^/sR΋k~;[G],(W?"@`ĉ!pxA -fЂH !#$ 'zr\T ͆\4×Y<2I$ *=xЉ[RqˆFx 1^l6?N^%jܩr?{-kSk(vsͿ$@cE򚞗1C%3Mh[dF F34.Iz=څ.mkS^ۖyUPX8wu A2cպ@0)=Pٟ|fo@76i# 6oPA`#A$`>x?'LH ^x,a P@#4!?)rP,HЃ XAAQLCD#?$bIIdN"eB6PڷEKQP OM1e#H75IP~ jS5gMJ\$I.T)!`TI[QV[`eLj\QId8]uC' `=HͮY9 f%m J]\wvniUK^Tiu{ku|qkct?p`!qо2I@ \!l^i&MB#DPgc` 2"IPAh' zDBTz8dB1:  dEqDATૅ9d"E%bR&bɠ!f)4%Դ 'CG3D!@3ٝm~cYl7N'>~OIxJQ+MXZW9TxVm\T֪Ԃkt;5XZƮc~6fb+XleZfQk(Ǚf-6.TS!kzUZiAs9? 5TB U V g_)8@:"ыyF’ qT|&!m'! b"5(e,# fY˚ ;݌C'+̘!uHEMP G ~+MwLJNp5&vAL"ƭeJe3%Ei jCxQLPjI Ok,vdOÜ" MPyY,rbJIJ9wpp4m,qV:FGI fcFg$d=cMN'=c5K21M*8XhEs8L4c ڴo7׷egUpXrt."2́zF"TՃ*1JH4Ѓ-@tpƠ?Fl0RwXprp#xR p,`KD",DC 5E=Rc h+aHGȏPaK$% `3ְITl7h<A@*B6d@M^ &*J 2bHf.ټhN۩/6$T}StuP6HpF1 CI R/@/8X?OC\xhA ;T 6 8JD lp]p cBFaGxT9Jć' H )[UV!D9yrEgYډd$n mQUrTB* jx.C55jGk" T`sИ.QCgrU :[ξUɴA0VAĄ0QvG0toٲP,%8C9Y 0y{K afˬQNjzJl꒼% p5 O=$pz.d3pHCzz6'N͙tlV87S.p#.nDn` ?X Kt&Do/V+?~` jXEU:i91+OR2C44!r7!(S'rdF53[3DDC&sEd)($M2TsrsRFG `$f"_fPS^uFV<FXSFhV%MP4Mfzu "sHXWM3vp7gzGpwcq7IMv&bw&Y$wV3Ql}B'5)4aJt>'J1:[]2F4M’]ޕKQL'=,2(\-d4_1{O!:q]ql-bqy/p87֖^%}' [p&~Q~"PeP~g`uQW a ~P'wQ^prb8J6"8E8u LҐ4F"Hh3+CCS8PDL54TC%5U4hcN1NG҂Y%5X5'DPtje@`^FVFeICTjf3#q*H @c c#q6ITWZ%Ebi{kbمwYX(HQ\AO1V+ɳx%4˜[<1ʔ1('+TA_Ռh@_`>%]ƘMv&Ԍp@盽fߗ)PHWmA&0S/ 䨝e Pvh~@UXp꩞䨞p0qӁq`1v_MThccF42522e$I6cD%#tndY5~*Te?r"xViTf af_e;b]FFAi"1)Z1ScDd3^W?*vPvqhD.b f畊FdxGftIV:GB[zYdJ:鉔#=łx~ khwzQ9=jh͢~eA_O\jYd]{qC Ĩo`PpU 6˧y QYiZ/pzQ @80Y JPzŭa<rĮ蚮ʮq# dvOiS! Zf F u>j@@FodJ#K!*]s5eE'*'6^K?QWHF2BN% X$M:WX@ce؄B#"HȳP4HjPCklchbhإuhY(JѦ9zVqA\$ƅ槷LH,<)>HzęW4IyJdh\lh Qljz}bI )pm|y๰B{Jz{oǨ|J& ۙa9Q@a yIZ`ƭ yEpr庽*ahJR(by { MоCTȾMPcDTd%)D6P6&5GdVVC4ʱGb>6b&=Eo!Az5I$DvG"-" i&"S8Y9$rj8 p @.\_)jx$B"h75Y&99'c51H'P|Ȉz< ˄9JQLdfpstӖ9IuIr1ղ;Ñy<mHk>;O9E Ƨ[p{*a˙wzopD=z|ԗspaK䘻);PeIۭ Lʅp@ w̞R\aiw,ux{77M,v^cnlaԶ֋Qnk pipo`W@}ֻ?;QQhYo{ʛ˓}T;$̎e ~-(i?ֈ 7ɬ۫Ҙ/r}6{'\C9C(fCg7CJ 4@"q%@H6?Vb"Q':t* 78VMTS2/T2v0mB#PZmf(~w9'c6y{iDzy8Nz1$ғ[:x=Jj}}2ٕ]g)(Ң{ HVX%WC;G^3D:2)PV et.,c8d)cS7E!=*vu\iWUP2 TT24W04IlB jh|g8cih\w8N[[S48>(VL*ҡ?Y{Jz~  o 5pTA p  ׬H #'db!CpRl!@.\;$O!B"'E޼)ҥwzɪJ) u'HP i8#G-:r$`\v1KׯY)طn"fϯc} -xYdգF +HRG=U.xd(V쟡&pqIqDDu8ѡC (t#:.= $ C"3/Q?! H??p[)N ~88θι&8n(hI$QD@qCDdK#ł.bLƂPѢ!"A)# (J%) *R$;ZJ)J--X$L J" ! :⨂RΏ(B8Ƞ<@3  [L2)%'hjLr" 3qRp @K ?.nl6p= /tA. ʰ@lD1D RH i,>"-u1l(^-U#_}&_)( :It.$S T?S==2 U5"Jvfh B 'A,/hU*UH!KhV8RPh&(wH| ̯R@B@Hi Y^g2(j&[ HY8VN7\5y"[^@<+]#HFMNJGQ\"!oC\NWJ$"Ob,9%I Z@9V1)N $7!SNOuS0)"DVH%/9PCF0я#{RFbJe} H=$!|k4'h |c*R$M*TXҒp0JcYLP (bJA`+WJv“R!%a)@!@&i/Sz^ = uz'F!NRTs +qKA8d#q҂t(-=I@<)P &\ a=anhSryԠ>M/H=LC`yqX0Ĵ敭UHRӱ*е4v".ƆMŦ= bl<ӓ(`b m T pQhPK71W% ;@Ԋr ,82hYf,LC!jA3uJEu#<Ty=;c~AjFU[5baڅ swZ:g>Gb~`>t 1!exi-)LAX[s HG: } :gCjK>kdD˟(?osMFdD]SHB^$k%GrM.s Gt.]JPP&ƢNծǧ4ttC )z3?mJ_ι~z5ie`<|yDdH?ሌ׉B;Ly~ }Á PC(]Ca`FX1 h>œ ۈ )e㠛9BO:H}ᮋȒjāmpm h΋ISZ'K3C*u]Jի<$B G K9u*# IsmS@E-Y{\W$]5?\W?UM5L l%4) MK.fB0v/ĮR6#Lb"&w̓C/u4qSiZr6U4eۈW&x%,W6hQAu8(A{AQX#91ގA(if@5PAAiRɔIRѕ H'9 xyɪs'uaITMeRm p1`+0QLKnKkv+2.S4̪ [pSkQ=T+ qkc X R 42j2AN٬RܦZ=͍߸؊Ӌ\ջ,_˒JW $ʥ[rVYjYi-eƠ qg*^X&>3/o.1쉰IWw RuOٞϦB90߉"K(Yn8ҷ(T^(gtP8Iy\9f{1pvrCɗKD MM4J: 7a(4Ү0X xh Bhy/+3Gvh1a!i( [5)  @  =ЈИ  L` 85vm TDE5^4tEP.Td;FٴԬGn%e A8se@ł<"Eba g=7Ȏ,_?gVG,$1&.AMiHtp؎WȂWOaYπjl uagpԈɝT'}Ud_XsGnREq.~km9)l!wٕ`}Jq”10**x+h~oAʬpЛIfx{~O c!<@t2s.آQ.H"wN)J_I$?L\b 6l2S I PA#:(@xM/A[͢5$m(v&:Oo[ 'px/Y}}xWGd-0bkiQ¿?+ 4i*T kJzTT.|8qg!:շoOի)$af{8DZf!C0 Kg MfLd SkUzw tIm8TezQ!rkHm%v 5adPUk8e?(`LN T$#4$B^xQxA$J91HmЅ]$P&Յx8Ñ E/q $ǒX(< /YiL-By@*+i'A<(B!1G fG4RK)Ē.R^1G7PO?aS?Z5GU`U@FvdfKm=׻OPoupo_HY%_ DVc=1dUy`e%fyfg#aZkZn$&hֱLۉ'L[q6hff\xvo Zwr\D4M姟}Ӑ9` FpF%&{^Uj]8!zͭwQ'hwG6I88𣝶X^qHQi&NHEEl*U]~dv&41"C$\:gZOh=p@ BwuAˇ-_ABЫuaT޺G -)M2,X0qH>A zB%!pD B  Mm@x`4]_.wK \R9^/E,9,JB@l,SVvҀ&;Cؚ'7#XFfUbS44Jx?M Ӣ)G#؎!4t*jRs@3QD'pRb+h<%Ak[&$`n5Ї!Ck!BpPVt T`)@r5$$iH蒛1iKriK^'9H~"R~ Nr@)U%ݱB!Q @> -0 I JD+;d!GSP jd rހ+yHc%;u54#:%2a: 4A9Jd(Yx_PLpΥ0bCƌ%_b5:fՒa6f4r(ה쌥qXՌgg9 @d3ʎycZ L< jó9SNwMa!LdŬq ] V0˦#&/!fCCwɌ@ @WW4|T2Ҁ ;ch7vM|:%mr &j,mഥaWdT$)61|ݗA3u@L*%S؝Bm=T֒F*0K8 u"@ER͇ԛ" rS줹XNB6/yɃt6߹9N`+.lJS# 8#\&%6.A` (? `z#%FQ"Loůp6J*}F@T؆;P1D,eVTjd p$=-O`"=(dM0J@l%%LtTRR%"(Z[e{| ӖKZ՗1^Ue+WU3bg̯ ּ/ɾhrMYI9&xV3(ⴚY\[;Y$GtBNs֘IY|Mz tY)!@4oiۺ׀ׁ Ⱦň۠Gx$NwjhެF{ u NޤI9 dPNU (SlK`X>ܝ ՛圥 Ca?rdYC! @X6I8Ǟ(D!lϟNMDEeEP0 tPJqIDdDT?Xh #(!Ո!EÌŢ1KK ] 0Z^ F e`e4hįFrkQpQ9hYu`ɄKʐUx0Q."9?%`-"v @bWAFY 0G@CI$ poAj@8Wl v=HI΍uzAΧdi-H(\!TDXJ 3%:@YNS~ =3941\3G)\W\\B0P XA CE (04Y<=@e `e ?tǐD=Ji]2 ( ʟCEߕA\+)6"$ʄTxęA@Y^JDU?pxT%9E,vxPlFVu.>#Yt#0_2\E_$@^ڦ"$K(Q VdLpJ݆6klevhiHwؚb]_k9j5Qy4ot[W ^\dc`hQox`ġy Hd BCUIޖxxj44Ghw`wa pXJ闎ĢP4`+ޜ)iSLDV9EZ?PiP%չ?a Zha]B1؊%ơ9 b۹^ JDB4?T&EBQ&TB#fiPijOKm?8+ VWѤ^$.Ħ_վtgah+ug U'^A`4.F eFņ)֭цfL8jKL&ra'ɘ!iF"eպ-v@,@"d6$ Qݕb%$F0Z,~$Q/IdJ`eȈ4lT=܋RT8\`-w,uWj~W beWJ`HWD`gK<5-Z?hZ!4TB*,%*(=!fYHka#maD(KVZP ld5i~Ki}&(롅gd QiK8A.c >sM셄Jy|e*e`DCǢ.ȹF-1p0Ȃw>HY@shoW$LzEN8qefEV~%HPN~z t؆yW©2T&TVG 0ZϩL\OA2@0A: J/ #L@O%?\Fhr$OPHęMP?xfnʊ BIDMTX_ -sw^ =L3@ Ln+diѽ&cY_ʫck&dY>VA VWDU e(?3P>7{|tdxhWIږ,}pMx@KTS $Ap FlNT,4c@J҆'J[ w$L|W}h,&qwʘ"[zWP_1UP I (3w D \-"J4T\O]WS9L5ҹ4 b\Cģ\(\4E4KbOɞA j#FЙĠDi6"gnr@h+LJPN NGnTW1WI/ogdh^mocwUQ523Ylö6jcm/ 5V ҫ]3d߭',&Rjlwse <^w}3w7@d`Rz΋\ڜ*C'D T tTʖ*ԞBovMΑF G*+4 />iQQn$Ӓ!!CtGTq-h!K9ZPWG(uK]ƵϵC@M@$=۱_+-:\6}Rn.6xfL?H?lY%@df *ý@,D>4p`qƲCF 24a^:{x3Y2+YƬr4jVT>܌|֯,liQfw8O#pJkɒ9@`y! (H7bğ !È&h%p7v.pwF{qʉŸEWBvAO)S勋ޝxM'8 N\YDp! - /! &8P"2 :1 *l hX *ȁ5,H5*Gd&F!q .i Ʌ h A5h$! 327P\GGMn @ $">DlP^.Vr!GMTp67hZO<"fl4fWl;90 W:{Pg VgIBڎp$;^ 0ྻ$jGayF%e~5B_)e)OqT>aUF1i~ F nѳP kr9 y?b΃ d@h!o4鎼%9,) hƌ֨c5^T':faz>i+\l42H@{&Xp|Ӭ7Z(s<Ե玤d?Vl!zK8뽟g^M.#.8(qE!{UjU0X^\">_em9-$!zr3]!5F3Y&>]'JB+Ξ&;+x7 PtINJ'^|z|X^a@@I)^ FGvJLBZlc%l._x lnln `tȊ.ULd䈐~0:*<5ʬΊndBAqh>p@5 >ifMT6)ZlI~뽒 Zk\iIZ#•BIVvByQv5LW4BplVp((:m" tl9a x`@ aHȦt %w 2v2\%v`2|.nX]oDMLO#:<&D ..ˮHɮF (L:͈GՎGo ?j!̐Pr@.rh,+, Af6mk^-EAq&'DRT$zQp` | #+OR@֦  54i3a\qNQJ2#UHJ c#L3?xĘ@$ECkqD"S 3%DbqI^JJs R߲8sUMVST ǨhFUVYh9&aBwTTҭT-L%pVnUM2}&DQ#+jE 4qW4_F%Xm60[Qrx! @ML)NzL7çqWڜBs٩r/wXN9۸X9yHzFBBv"s> JXB=V(V%Z:m!`$M!&_rBN_r]9?U$]\њ^ϔ._7DGʮ!wf:ޗ*4:9(&0G H߬ XLePe̚a6iyAnmb0sMDo#L UNx>t d50QC2ROŖ!R3X Ն nmek֍QXAx X-$I;niO͌l6Wu>%'yL7t$6XZ)b{ZVV`%Vj%o8"""z_d7O2Z3]i.B;:y#C@%{(=HƫcrYêxōP#s{k+@|&x";SV>:s=?!Ax.v6c#F^FCip14]72!Ǩ})nFǮ:d|L=<~Ωrh7:6w6baڎ?8l~>R|hh?Ȱc rd|dvB/kpNTT TYɸi|b 3b2:ի Zi۟^4gն֧9}7wL|S+ߦ]sՠbmWᄍ=Ros>I".#:CL2N5LXzn#.{AxqNJBhC|yu>yN2Wyo? v $R&D  l$A# j|x_zH' / 'bǒJ6o\2', 7V@+!p`ꁫR.ZӣRnm*DL$." `dĐ1L]-՛LSv;`p޻- w0cX b<`h1nyd<q85 pONp-Q"ND01. Bq,KҠ\"g&(g K\Br\&%縌lSC&-#jzpeʈ5t_o%\Sc5-JWbݵ[`Щ T6K v Jd  t 7pAզ-3d.5eͦ&59߭UGn(:e ֏6Ky&+73+jk!FL/Oz!z9y\]ڑ\*ӒllO%hMl[1@Q/@1@T@a_ 30xG}Q Ƌ#n+SrT##@nj~#D'7q)iqqeӜWr8؎4ю(֙d6'aIi&i5'o^om"#p4Cep>1 IА-i$Bok\8t[\7pW1_ 0PA3;E㳃J])U22-gمz~/oVYi8'=+1kk1@Qwy**T-`AOBO|.q{w<++֗Q>WA/Pe&} 0ޡ0nzYA :nl'g{F)g%!'@#$Y0$2~xΘp3" Z" (d,GFX%8AȀbEFjҜkElGzDe@0WWgQ)bC1u Ѐ 0YU 6~'y \H0f&b2A*:7)YN8J]>g!=L k"Jh!{E؟Hy+蕉uc?`anѱ1n@jܑv1%C}b@2j2}֨ާ2$9%+!6GR<{{e{tpz3Ѫڨ)9(ڪ"x{qB8IFL%q$XsOWԺH9BSaّdIdY g-ңn08м2\79JvhVh5MD)2CZ[<]y{4jg1 T ;y!%B i\*;xmd.qOC{=.a \BL^s9_m)s)Omҷ0jVU{vUƨ'v"Jn!o5QEPtBŝ~#_ {G34+l"8,(!Hj (iq'y/1 &A&m"x6Ye#Ԫp?1K j1Bwn3y&޺ zZa*J(j%rN=*`RKr1\/\CI(L-C PE'ڕ4NQNsz7ND{Ylz  q׵q-8föa Bb }(o0f!{6:Z='vB^/~FJ5M= Nj z}Q LJ{|qdȀ<,c>U^Qb8q889bOt ئ<q<=ܱ=ż&\"W>^YA;C-q>!*;H=>A0l;,ʢ+\i;?r!{ˣlA|]iA,]Ohv\O^?ұ3<۱+<,5 J4]{:L3| bQҟYB"3y&v79C;"$<-5Pst#Da=TOO U,>תּᄌw"[+L(:!r Q˚#~՞O֛'LO(:jɋJ nY-RYdJ%Ja{Hqk=O䇴O/w!!L7V(Ki1 ۸ia=+EǴˠk?ޟ\NХzW#/fʿ,1 h>-0 !$h7B,0Ơ3[qD _1qDlq" &Zi2@nĻ1rOTPܼ NN36TL2һD# TR$EY1N/C~і%$[uԗdX*Vݟ5j+8jXʪvZj_[u%8wha`1Z?^gl&_<0΍c0c9 idaρx*6ck8ppd( {:ܧ%Àb )jȂ miEPrmh:|Ћ DeDOkMKb$d"F>Q{ iIbАф&n0T% Kv.Lc7! -0ħ>q+. _iHP(}54S_8J-e97QR5x J b5X˭&1^%,])(Le)Khu)@.r-| S cUU+/d(t+2`P[P0*\ h—!IC /8 XI vJ.% ]G(F1ĉLdw2꼢< SFD=Oc4f)LP 6JVᆢ6"r:D&T!q:xD(%ڌ6H?*$mj{[F@ AhcN%QPC&HǮv] i'v]\tyibs2RWC[IW^0$:^ZRbH^אd Q ^;Rh2َl{h: r!52XQoT-kM6)'bݵ c*XEe.?yLǂ)>5kIFBG8?@!ⷒhHE;lxJ`: AHz2:$&jN>OMg곆2aN{X4bB߲/o Ќy$밗r z1/4KR07gBaZzIL5εtKzکJy۫,÷aͱ7X^'amI^Q᜜Թ\&Dc]&TqSMh5fKr r4OL JQ%E)uȼ z@qKmO&r{l$6 Y$jJ3r'C + ,+(-=+#zr713)($#9L0(IE,_ 8qPH@LKP; G+ZQ4L4 i6ߡi+li Փm7t󤟨c\JyQhA6+ [k6\.ӳ 撍:3^ۍ"t:\B:39 2j009ۆx{Ei1[11󫱠١?C{?#S$+ ,3lD2t*3I92 24:-:B.#2#i0Ğx P $ +-;7`H!úqӓX9]W GZr" S`k7΋L.Z`e({C hajےh-Hda>d) x;k2hIi 2kÊPCqɋЮ<ۈi1 9y˼b5I::ő)RT0zŁpf#\lt]|_`TaLh8*1,R9"$ŶI.ipү3 61 /#d$7$h;07گ,sP00,^;4 ^ 0xҍ 0WzPaPi BII\^1ɦD/háʝ$DB kBc> 6y:aI8A w&h B-ChyBSEk s(ګ$&Z峫q )*VŤ"kE+^TK 8 Ґ9"!Ña 2#!2*I$Y-zhxH+2j-2./A T=BN3q$39kN5·ȤpdCRBYPjђ[EpX2ZO΍PI i`讯y ы. CC=3 JJY,'f`!5Q&e S}Ы@xI9Oȼ7@P#XQT0+ 'pE7j 0ņCS1)8"B٩["r1s"-*20 S%3DM`y>XAY.YX]4!6ңJdJzH 7D4OX+4 D[ Jˏ*W~ƻ]ZiLB* XsQ(x+, 5YO˸LCr>  L$E"{Y1 -`^S"ajSW,F:M()IE',,ySVʥǮe+q%͘ ޻ P X;,J@ - 9<KZb- =%N *l@I 5A<}͕.-ކ01&=I 5ЬBV#Wުɚ`y&~cQ\9Ϙ=CҎpr+/j0J0 CكX"i̫ʰY `n5S+5`F %!]!M >42c90#jTډax.2 p3@:2T,- hFBIΨʪjY/5s R -^qK"שeVOB3IhcYijcY<0Iؽ׵Que ~נ ³ ;?䡖Qid =hjޠ[{r,*et8:` 6e#Kep'i"_媖#̟ٙiff1c擽h({_mm)!#%QT:Z}mgzanfP@,Q[,3Kus D2f !_eΩLڧ9 Z`0 ͛p둫b2Z4<x!'28r僊(dʜ)sj,S%Z&RjA-m0 V 2F Xa߁X9 JuA dJ vBZëי'H22*"Fd m R{1SBeLj̈́$-FIeJS\J`-SqQ.*ɗ. ?gBh7!B-  ?h? x 5 !nTxnl J!OJ!ĉn`"P)1*5ct>RV>ytZ6$4MXEQ:zEdZD&ftB)85ujVcţ=1F=QКRI#y)Q~uԯ9FRzm*I D&OZSWUkTEulf_5JiVRdߕV6@jefAZヌ%q앛{5EV:qӝX6EP @ N5 ñ96yzP±z'7*_2<(A3ᐆ E -RTBҐ6=hQ2Ә$.YdpC`#YDk]4f0lf{ҕVYm%jQ&"&dz@`7QcA5%r,FJ}n ԥHg:%bN '#['9:t*t" N[JwjL_xb*x5J՗R f"XaxRux=$f*ʪ渦Y[_u%1iA<4*i篙K6l@g; Wh>r 1*|7X5| Z̓V׬pcl8Ge̓:A@!,gYmIS2*jKx#/HM٢z4 %jR\9#ĈW:%$Mi V \H&ҫCG<’ 1y _+\$xnTbI0`X.uXeQ.ɹ׹2%" h9ϖ3ELEVs|+*V|gf/@~pQjR%h <.ޓ_(RS>H'1t385npDj* P x̓\5RƟQBn Ȭ3aL{8gD?.145%(2J,`qTHY)5kF+b`ʯkc^^p~Nzm]\ jD{Pc6DSn;AݐB -rD^8+A?\! L8uFb$nEANCcA p6clqͩbD*$.DDhģ\dYPtEZ]Y!Q aҝY L8̎ JY8V#U ZڱG({XEQRŬʰX\<XʤUmD20ulUK6`\0Yx Pcu!W8fhP@m=Ki5|هpL Gp z }kLD̆)TŇYDt(ʉIĜd}( xܤq5QXBYIM@$LpSؐMtPyIM<^y]aЅUGt"yR…EJV0myWG$JD|``@NKV N|Nh֗U<:RG\ԱRNfJ<ĠQįJ}%,QZJ KF`D:OPSdL˵x\a `qZc$TcdPy`LEŬZwELn}"pb G!PƔLtx(Lrd@m GWX+J_(:6Y"uI"ĥ _MqH$.V܈Q1>UO ($e JDH\ gfxf7*fvD99.he]PEl=昙IfDaU`i|tRdVNL$N1+RjjBDfKqJ>OFzΤƨEW^8K\PGEOK7dP<#Jj<^zKq8eSJoH b[nP =Vđui^k͌hLvϤMLB̀"=Ue4\ϸ🔤I$&b\ d>头liV!YrPNmhU7vo>J ބxNDDܕ:Bo FҙH `>*RcMԒly<ϰ t)ZuQOkJe8dKVKH]xΝg,`pIjcMV2h~1t @F΄M\nT$x+"XȂulj(ނȐ%AX|((L\.K [> Q(ƥȈXiXM R_1eL-Lg! \}Ŭ z " }W B J,VAꠌJ) Zօ@RLx!W'ŽtRA.FVSݣ=v.ʰ k\Eo (ƦŤE㭅"[]K. +VF.ΰWܤ_gWh WiT F6jFeTBpp%W{D˴ƻFTAY ML0I)%юH_lՐΠπ\Ay 0 aQn/R1iA6'h]Q>ze\f ] J"u``z䨯hX^qY ?&Av )`fiFqRfq'&ytnQb15gWd&R0Άvc?4O,Eg ؔİD$0v\y=jrfZpjayOz$ky ׆wt%uSsvwh̠ˀLLyWɵ̾PnPwP+ۈ\XP!XhUU_,ux(}!V]mJZk#]Qpi6)i )GJQ?>2n2Y#'- L1ʙN^YU!(~TsnsǏcG/3Rgd9'3৯drZd'1d@WwG9T x8~b~^ ͛:jE@7P 4 B܄FW$^ydG!$12āxRØ(gSc'3)§?_R'F:5!V7aJe0*Qre0d#pnwl݁zvZlU >|2Ǐ#3>WxUTȭo;x pAm{>_29֥/|+ `)Sg.? ߭`?r|)h/!,pZ0JL@0Zx)0'C ( d D萊P:!@pㅁ^&hiL R@1dh!#*h(*)",b '%I&hD󨛢&2JZjrk JJ Zh@8믰j`% ~J/"L/V,=9]D z4ƢlT .F ߢ:J7N;Pt5zLߔ*dS4R Oz.Tm<ꊋ:p]OsS9; |咏0t@TA%0b ]d;FQTCP` z(Ǘs$G%2"(!ZZ$ #4#Hz2D摤h͟xS~2J3F6,Rhza0=Jh!I QjZk`Uö[b0U .l j+\eҶ*3 ̂+U[ngMX]wԐm} 9Yիظ3wʽm뮏\du^ϓ|i6+ϊh a,P" PdC BI E*bYGz6#c @ȶ5i iړX4TikRHn KR ?B%'"Tj6(nD8QaX8t2H 2QQ*j'TkDrT,b)WL2^c:ȩu H^ Ua&+X8Tzg7%u3-L~9H)J* :)OC~=I_ރg8[C~`(33 !EE&^! ݌ !`V2*,9!2 (gI @H KjRӀ6.B{>c2"?ϡ$$a@YF(k#bQJ(fTE_b,#uEd ЅtQg38ɭFxpel HxUNb*r[!\~#Y{STU* ᴆy%m$U\둋ӽee_٩W,R>"O.0CկLfci0bf4k&PLdg=+Dg -A<3I C4 d8Dmi6*C3k 5HtDFMfʚD".[RTGb.F8fjC-. JsGfrBW=1f+/LTǤQ;݁s:Ӭ{"ӗ@3WR>/Ѳq27JeY\DW]()w7XF<cWH>$2VVb΢R3 rPC0 ō^br~ f6ɞ-`C '<3 JmTR$T CPA7*Q?y(D}:dMiznMք"O0;įWhIb{ˆz >+b2}4*hLH14 j'Qh9V5ԠjNI/I\w{Qe?g:ojl=Fea&/pKTb"TĐ!G>fus!C h˙Z/i'[ pxלf&e Kznׄ;Cw/|GrVtjaDmj4[9{uf!:.nTT<Se>0nfԸ*UMg}u 3 IƠ" VYumJ;q)pn*zӺ?SҮeXGyv-?/ZAXSo1X&LDyHT Ǽ#ay SemȂҎ83Ab09kVp&ÕX%@`8h+?@5ϚhSh ۖDT^XuKD6Dne@ :K- S^VYm6&p3eڒ."W^TvVh˜nYFzH\j연G9%|xE^vL*;=#`֧=8 (kb DBbcp|G4BFB4f>z H żop P V!KhfϺ$o #%Ojjkpb. mz.p[Pw.-6 ^ .ca p^B¼VvDg,3⊾gRpuH#YPuȮ67R7WPV$Pc'D'~-%V\S-x]=%18702:[cCVz,Po  _HP i!ilG` }/zƄ&!8A6nb%O @$qbΟ`r(<2lR*-pҏ窋,f y>ӊmIP)*b !W-*w / vfrc.~P(bBct0c+5Q\ 1ٜkی\~Q.zqc9#Ǽ'3 / Eѥ&83c썥#$BAg ݩ!/ [s!|:H!VkqZ`% i8hD$S%n RpDR'YMQ% jϮӟbІd6l-921UJQӦ*2ZgxOp*@\*|pqJ_r.kPg¬+҂p1LUmQ-+s訦Xp0A kz|#Fܼzhi?#|I" G  m ySH wF H RN21i H@R jf#-$2 Q!1Kxт*JtC:8As*- T8nqLPOqr@* c2#wEs 22wˑI%]T2#glZvE1ex9|E%2E33 y3'~i 2!.I/ip$JK1B0HiI IQ M9B%I21ӆXba/N!q#f$2k-=A6===+ e JXGu4fGxbC4NCOZULEw.cCU$c5:-BBbZJQE2IY%:E^XiZ*jRۣ=Ap4o dhcG WIbT3NP3^Kl_%% Mt:R M%OO1&H cf#;c?*:d?M< ^[[h0ny4+0}*2.6gi%n14LC芖.e|+PXՓeoW窭^0rBe c:T)n|%fe9pZ%^ iAȲH˴71bjO ^EP<7PMCr1KS%T8s:򠪓Nk"KjW<KVb8wi0o$ b`.OZj6hW6 6<#TtvE5)Y0GMy #  JoU3\Y\],^g/^Ԗt Ŗlї% ފ#/`y9R7=qwyRL%1qcLhMz(xYeKQ:QY<9b!FsK)QOmzcv:Z1JTb @5hyTcj?CU#g."fy%Yh7l-PU{V\2]f[F=@,GoV%rZRS5 QkPh* 9r ژ*u付m{6J8aiR<coO/gn'cӏ0zE۪*x96~ T±Gs y:tǏε*`1`kXn#-Fb;\Bu~1ɜRYx/G3{dH?9Ca cb;.8:̷;PQ$󐇣MմtϥzVRR$cء}28`nO5I͈LdcoXz@ Oo6(mBG:Z >y82:z0T-[9R }e6@ A{;8IwթHqY@i78:*܋VV*yE7dg]-_;b`GG>/Iʸ-cJv6ܤ<.\KKYIc΁f`o{``m٘\/^8ΥB Ec\1v~',l|gB-wbmCeg=qTLeq3f*ēhG@*~7D٭QcA]*ڃ!3+BĮ pl_pÿV;xp?VlÃ&xp`F7:dAK.8p@F3zTD ;Ӏ` (*B:mbѠOZ5zDB$A) 1-"SLPɶX `l ^v+&.1[qp޾ ,AH2`3_:u9s5%nAܕksbΒ=vJp Jl8gt0cN}##FO X>1G m1C)b> & Bgx]QY=AuDEzBpi АB>m6ME-24oB9ZF8D@T@9dQf1uYH)SOEPR]T /0 %S:uPEXVZe^a]J`tXl&fm`hZiƩg}nfc-pYKMd݁"VD ܴHAwPx-?Cf yY'A5Ԑzt ?%g`xGȞk ) `wЛ+1lF[b-DQQxPȸ"t$RoL#J4gNydTQB 2,QEq9`^iO^YU_-$hڶ\wvbz'B gRc~6@hafi*ڤ[jO6QnGO4jnr,F DJs:N-In*v@0/z;-gkv$'ׅu+z-÷ L"B~^Aɼ&wPnt^G~E(2M~L/:4,3,caQviS<I Kr &&phL\.*=I1{B_TE&ct7ɍhVN-Sl*4nu opc)!DNO¹ -oqܭ@fd h~h.!Yv( й.@ @;l'weW0BˊcI;T"j:֣T~[@4`%Ȋ''2H(ˮ#/J,c(?)D:?V e3$ XDb@e" MB 26®1s |4)l6﶑N 3i^6 !l7!8K8 H"M9qϓA!EpR8j cp0 vwtDUg;DNEc"¹>]:֫A㲑Arwj Xw(thA$G6T$#Kh%UTȏ*p:/_b9W]C TpKYɔP'>eQF)цD]Į̇i4&k6,^ 3;| c̍AxxnQ"B) DK(I+@ ]HFNZs40n ;V ;a ,jE*TDwbDCӜ+Ո=-I Eo JDH%nGZϕAfTtVmA1QHZn `M5=5Skج8'ij$@$ cx3;3覴T>[(7҂$8qaK;C6c"bF3DA/vS3FbmracBYSc&'P3bmW)a)FOsxCKZAԣZ69Ug)7zQz%sASZe9ۡߒL-sQ#;l]sFZ@!g+4|ue$-P1vSj%R.+hViO"qstA?P22t.t!"qDc? v?`EkX3SVXtfv4 &yBM,rG5TsbwrAXSc4#6kBb)CqNfdnNx1҈C5In)a2|%)htsO=&%`n AԸxu@ ` H1 n0 u ۠u61 vm$莗a|6Q X $)XdT0nSS@C8i3 甑k,9)IC3tU@)m&lh A(!w`!6b^@('$@m'X77(t0NN< 1(p19Isⷘ i#)ə陟 )Iiɚ隯 )Iiɛ雿 )Iiljɩɜ )Ii׉٩ɝ )Ii牞驞ɞ* P)Q1A1RY  iL6ʡv(I I1쀣z1@Z0=H@c@8O=Mj#:8ڣlzeݐZSj=jzڤPyj*IZ  Tʟ!@YjZI1*GʥPj::Фjd8J7ZX1i| QuSJbNʃ(Z :ڪ#:!JQ= j쀪{z;:˘XMjZG7:**!1'{&F[K˘̪J+Z**%QV opYjKѵʧ0Lʰ];Y [ж9|ʣJJ⇨@ XJ {xKe`%1O +L᫕TnZ᪲O˭`1z4[˥[** ʹ} Ძʱ|SH[vy@J˧S:3꬏Zj:r!ۥ7@:2 fʺJ;k#KAˮ[*;p[|CZ>󐸿A?U$˻ \KH{i:0J'ڭyl#{68[n+(Ļī({3Ak K{z',I0*{1H~D\xQU& ŬܨhYh0 ė`WڷWV90;kOWtH7Fn^ZT)ͪ5͵aFP qamLNeXӪ׆WzbM7BպYzT7;D'$mW<)5Y]ǕwsLPɞςbS)ʑiiLUqC wKiWc?V?OTUPI-+];@? >"mIi\ZqPVڈeΐxW1fGLhsHf^yPMyEɇekBHڕewdY1'EuIH鼤ٺsWvT]twȦzǁfd,׃_ߝoX]x[+{Zc]`becfTMs_^bfcJ<箄h5%G$d>?\*ާ}M4;ŭqTTЭ͵ـQ=1<҇jeTu>,hZ?l`8dПlGHҀTשQMV! s`R֍^ڌm][ͣbvqŘ}ʅL5S6nVH}_t]f?m;g[IۚsE0Tؖ?&&\KAR;GҘrxٟx콠᳕LLLԶrÎֹgggsssYYY`;D1VU&,CDޯHp ń5H*\ȰÇ#JHŋ3jȱǏ CI㿓\T˕0[|͘4cޔΟ< JtQH&=)ӧKq2 թԨVՊ*ծ`J6lٱfӢ]{9o>~si;7߿ LÈ+^̸ǐ#KLcyy? sCyׯ|}̺yNw_J`6,o]M :u}[Rp/=>I]Ϲ~8ywqC@yE(ᄃm/O|4ݳ^Ǘ}<!c΁.iwx'͓\!Sw.<0JCm% \M>S"INIt)ώ&ift!fpk\ĩ&J}mv矀*蠄j衈&j?!ٛy/ AZ'\lf i`q8\xG m!܈1jxm JC**Vkfr钷.qٓJh$4Δ[v? %R(s?~ %9opDfg\'q|҇t}szɾx$yHݖҴ<){Rh*D'Zc:{hc'2Xg >.DnخI#8$դʆfNxG$r4rv?R?vҔr Nu5/qtK ⬎易xrM'M_Zltx0ֆywOiNme9  ߝz9iƹ\uW_U3& IBL"F:򑐌$'IJZ 6Nz (GIRL*WV򕰌,gIZ̥.w\ 0IbL2f:Ќ4IjZ̦6nz 8X(A:ͩ"DD\IOyӜ4)"~s@w4$N N:B!JѸ44p@^qvx oJ((JbPiBYPD8= >}LL[RvA\L(Ѩo2z?U41GX]2֜hMZֶUjbtlhQZ^9ԩM#A؛LaX&f (BOBӗ(0 %*`&z'] S"Uv1RjV3Z?`m`J[4.e+Jn=+GJܴ6(DA,=i_Di$]= xOb $ P2Y7)>+ ?_JƩvIi U.r}lz1rosK֎V%gmqڎ ~Mzד䕩(K:X(yO;Xغ{;7/>rdʻظȍmo|ؠ3`t fk0}\NF}]~_aJXp[[7m]i+O m4JnjxHY.H 5Jkչ}I Cf٪FSUP ~3YE \`{3#g0˂ R=tiԘ7@)-nD9 נ8/IQW~7r>킯4ڄ3k;XjlO^%o+ Y 33E|W]_ SNsX%,dĂ4ynĜsy{ݩsT͝vJOڕ|I*f8S , >jc[6Zp;wGv^Umjۈ_t!c>4NMؗT:/r\u{%w[ިO{PJ0I{s*vr_4oSuXwg~8V3خVu\H:w6pU֗tz-v?U_թ `hIsN)z'5y/c!CC'tAoJgX%ozNoP~'AuuQ[VW_&qm`vZg|}rp/k[ZlZ|'}q1wy|qw&~1GX.q"W~W(t(\]DXVT1wy6&nHK'MzJoGSo&{XVx_TR[JZRev|.k/Z1wG}G׃wrAE%GvNh}%R~EWots!RX$ Doh 7WPgxx钀'qznyowvwY"vjuej ؄4Qu|*HY(A+GGʼnq1q_5qŃgGp~-_hSuHpq'x4!ĘPN;%Y]M&62Scs86 rz؆1RȎx}_~!HWl7Z_&|fّ9q/UX|6qI9HR jf/}4VyWl%xƑnُ_iNP~6T)zhjF.Hz7dhKN hq9ڈ;zXI_WX{P_xxՕPzu\lk|8kWx)`9蹞s}yqqw`)qwr |k)^9'E 啗Yxy؎ȎXQy؅-s/h5yn5jHi34qaٍztz8ɩpX9晅UW+gh)`g.(Uw邓h_홐q89xaw}FII؄KXZ_ #8bY֜X٠IPWPWPyXX8Y8A1^w9.j ٛ(_o>Z{X9BzA Y~ٖJ`)ȈƏ']jؗ䉞^ iwIX%,h8qʦјvj"rYYwȜʒ1舨u%Om攌镛(**xJ38L;5IY_ڜ9ze*G{u_ZZښO[kQ|;h*ko緧e_9oPHu}V貱SصZkT`t1^vK;w[E4ѱqZ {xXY3+Uy&ȶ!I> ˄G*XJWXȻX%ZQM[N+0ؘX+sQllU}ŧB+/q# R{:0  NhO^9y':kƙM  {X{w^A['Zs!kѺK퉞b) p{}Xfc\vZxOhB%Y4(0k@J({;{ |ǭZrl6e_LX̯~8 Z%əGسx*@BY V˻` XjIKjNۼQ1IZClZ8ٳ:/o̒Hbo++zg<@YojҼnKqAǹLYo5ƃ;ȡ˲ŒK"̾!‘ PD[MVڏˏ9fLu A6 y x,\D=Ԇl{ z L|Yܷ,jyA&Ļ.±hU] ?0kS\kqUۉ7,Vڻ۝׻Ĩ%i8'=4ѯ]u VHIHQ zkӟ'yC?m'qDڪ8]kԇdd1T a|0;†,E؄8[*|Dɼ_w} fë6`]%|g>;\~[ Y.1gdM{KԦ=-.Q԰=(`Fɍ |9rGǰ41\ ~y̭-??B*|zFIp-S{ ʾށހ~qmrm̚{<N# %]aGgΚ+=f}<FE?MqQ \yۀ1ƖsN|\vZr; cͧGh{꯮}UU-)ialkq\ޭϽ]$,h^dـ ^kl^ﶸ!Ա͉.ԯB'8}S= sqe ōmB ݏFKH>߭]^%&?- ʯ,mIݑ\h/|Oq? @ >,D-ZW1Ƌp0ÏJ2C9Vfhӥ0Ԕٱ-PAu6d$K&M:1jCHZrZUgU]6x __cÌm$@R! \mj. kṘj(4,̵zJL "-Bʹюr*sֲڱ"H0%AIj%H 2Ŷ .) jH317h>M 6ל)9l܀Pz 9xi%%B)BL=뮻T&>4R>3hV[IY)oZub飐vU%S`É|)YiG p(j}D+t6lqƬPͫN F,vKiHz=33Gz(¨d2PfxQkK01kȇ|G9?N+>Ssފm(NLʵm .34syEnkT.@pGPPqJ{`7Ƕџ''.TS>+UHU5!!CC֐x Zu+=wN-;C_u6BѯRބb8{}JՇ֌e7lѼ`62|rli#QzE/4ic1LD<$L` A@!aY!,b="E%ON%k7ފaShv3PcP ~1V~vB hRCƴITCOh$Uiؾ6*0" (xjQy:ȿ5% I&S()'"JѨՂ'@$0CL8 qr5j h_FtA8[8\8A0EΫ@1!@-ɳڂ2?x@l7;c;+K)âqzj~DI3qI.ps;ۋJ 6B4l2S2L>ň ^d;CXCӘ(@MS;:亮SuXISjIh*,#ɬIԧ(6ĸ";,El$'S򤑪D:AƋ7j<4A@J+FlA\1Jby&Bddm>&v鍔hiA@0l~2[K}~iOUoU> WUƛNj]}Y6oFf~j~\࿽j[̰֯pֳ1kRfTk?[Q̾́f&\ vRFon0D1E.]c;el],qܱXqS&A"I&Qh'S5Vc?=e[^&)臐cf˄:-N[NB vA-iA.En; 6b¦.ERLVGJNa/EQIo.efjV` BKO`[ezSۦLp*Dۻ8)X/WWpdRU\_ K&5{`RLtndً8rNvd0;bphGwre~1ȗ|$oPhNm&)lg67Շbs&LmbA^E嶻8/0?6Osa(~og??fgxaeMwjLBrd[ePQ])0W.u%4^zBf8)o&` d0@'{"P7jlq$I,SNIQ?/ʌi%sNILªJ*YEq0gI*w?@`$ЛJg 5_ tbʌw_d|8)P:^p`7l'/PJxBe_7^~~8 E7{ δv3]TAT4aaDфByTu)dOH!uA89Fw׌T8neK&H! SuPdWMSS5X[uEmQ4Dp3]v%W\y yD%ayuV%]fF%QUgIg98Mgv-Xٶ)jp5[O860@H,2K: ɚ}A5!B)3gl2HE|AvwPQq~ f-*Ȃ!*k݆uݯ $хdryT#(1H]EJrڊ܎A?<TdRORI 5TXjh?X٥똱Z}\fs?伳:ĩ !r&_B`X[KAɍ$SdENFNkeڤH"n'J)plqk4p 787+N'8 auR {2kAc,|~ m:u~!{{nd6ġAuHx!*T]c\) GJI/1Oӭ8GGƭw7$Q11R-YOV0:)L֕&Es?vTm0IҖ P6ҧ}aj$I5hcMnF7hn>Ard/& #*Burb);"y3)q#u&~nxB&mu"Q>'/v[[1.#!]!"FH1qbԄyӋbY9aMxA!RLm(:b‰LcY*=ȕ3b˂41o-2 ihq:`Ғ"aAZ3Edlk B-)XQK.G8A9XLjHJ) Ipo?bD 9q?P&RZ<㤨|}E,nL:錔uHPҙAAē8<46yBrEK#sԐ%Yڗ`U'u+mp].H@g:!c(x':^Tx}2fB}s˥7d1Y|ti5% %mo*i&;m/8=RӨ c,n=zx:w3 ^^!NӚ>/ˣ'wߟmtm]8 uo2eI+})hr܁@60| +Ơ"v hw|m1cZd.{=-"g>O^TFl:5ڤ֥-ĉ2:'/ojQ>$)z,/5x~_rKOuɣֽ1: rL^8,ٕ]ٵ:|tɱmL]t@[\ص›`ۜ֊W%^%$@=d,i%c[mҫay:֛rKDxA \5!]j-uayTAZyia^hp$$G!u!t؜ћQMՙ_mI"% zş&*Aٟ酢8DՈ:M+Z,A$Ef1(N.ڔ J!P:8:P+ߔQ*"\(r"h)Hjb%6Z#ٞ EE1_a!ФH A B!D("a!Jb%IM!vLĩ'AbZ_B%Qֵb!'$fe/C^楑0CPL3)-7aԼ[-۵C0Τ EI  h& #ţjcA&AJܣ/nV]!ob*rABBA"_(Yr(rCFNHydHRtNDHIJ^NEM١ZgtM ! MJ_q""dIWQ&eQDpLhWP { d$"SjѤ]Z{}5E8EF]b-(>B:d+>LZ?%b>cN_3(EبɠDf2 f3]!M_I5ZE/%P g``1c jҠNf<&" _./.Ҧ c-b, A2Ziӹ%@hE^<ٔџEdgb'{MFF~:*AȁWIA'Lxgz Z? '{d}ާbCAKE_QQ΄raGjS.w>enul]rCHfE⣂k1dhZph]&rhΨ_ڣChP@B^2K1 gFA)E_`L5/.-2%_f2`i :^` )3dšefl?›#_1B'C oΦbr_fhJåĶBj!5*z$zdBD*a/C/pm}m~ASyYS䛝vux*g ҧ$kbGR"%KjU>nUDym͙xQ*UZk`q+5*4H1*(%"\nB*dn m"tAڝ&~T?4#>cRđ`LD]i1Yє I"/  # T10 K켺Š)C~+Ɵ5AH8np**''fgRjpjZK\0Eٞ-ڂ-䘭x0Dj -?* x|fA B-A-ߒpm{F":_L'v$kmFȲzAzqg"gGgNg:%DԮBl+BJܯ^F&aA$F2޹d&^e^Ui9AvgNx/f<?q."l¦Ϭn !1/""\+r".ꢮS12m隱f_sښ-z3sjQw 0۾$&*Y@AsԂ Jכ'4'Kp]+"1Y"I.Eo< 8ٺ/vԦt64tX'pOC0E^tP0 r)#a&o)a*"cF2$c#e.ʼn4nu1/(XCLo%˶/1[lcӵ]^.p+HCXJLojv:sJSJ.6t6cSjz8SDf-qm<7h<=Yvj<A- x0mg%4p~ZARtP@aY>EkR [.~l {0d1BdKc$vcEbb`k"C!+_Kp)QůaZx2$[14[r@KP]@Kl_t>gbX)rY)3Aݍ^u[[A5^xD 8EHC`3'3E7a6575w|wW6cgmr8zٮ9nݮ=?쁒D48 `K71Eo5] W5a]l]S1xf n?]ȣ<ٽ/Ư[u\2u>f[uV{YBD@1Ws}S9}36|| G ߺsܺ7-{m6xkCA/0=//>6 ApK A :*"Aes pe(D;.mYvw1s!sq<z/ {6cǾ'a8iӯ-=",83Mg>/ ~3|ɫ|636/Gϯ9g|<ÿtpؚzA9j=@%șZ8bƒhEG+_GD#At'iL3k̙f>ڿk:\r|Yt:TvTaoM7l#d&<9ȱw?wcf5"s!̥'BL*L0l z /JѲt+ -j hEZ(ZΘ錎$V i3 % (\c*!'BJ˟|2(jlX +*ʪZ*ʬ!q%R0E*l+̭Iʦ0N)dP1l̩t)%KH vM6ݠo"73k֩ꞃ EQŝ3x 3΅־cyèVRb4blAW¾i FN L 8D'ݴYP.(D[Eˡ kNJ i!g2}h.U3"ҊQ\cg-Fi*<)Kj3dh(N愪"j+Z 0(#H1Mk0N5A5Ԉ2%SIթ%ǡJMWr>a<؃k@ό=hZ5յkֹn wlWv{6v=B5GdadzȚo d% q3Qjf `Ƥ&-'ޚpP8E5yk JK)?,ejR4e L<2iQY*(YJV0PFѓ-mjEɉO'`ZgZT)&5mD:"QJX⒵%miAQF-QG B! );!!$GqKVSȑ5cs:H,Üےt\du>k\]vs]U5sD^1{^wY`#=]Jh}H\\ɸ"~G} p̌"!1 )H 8n۬?*h#-ʆ.mi':F40'#$ђi Us!d2ɚR) 贞h%lIx(9H֔S>dAU!GUJI%S}ɤLӈ0^9uI-Q=A=HidFY,5~e_2\(gYNHwTtԒ!fqyEg]|Dax *2c+!gW(UF>_{Jal!#HXjYȡĞ^DӣOq  b̈́mH-"| ;QHk`:䁃DFV4LGSQBDT[CA>eN* 5PEgѦ9!ue҃TTs&ŬXenSka/:eҢ2 @}g'9UNot~_ >̤UuIY-j[r-H9e:6vT*u 9=fߧaϧ5D6$,&mFwے5WnFA$JLߥ x BUPт¡" "aSO9U}_cX[Ż)Nf> XNYl/X3pQguOjUܑ%6U)nun cthN#ca<#VIvy6Ij(ҔF%aqWXvِfVľ5[ccy6Xr5V3{ R=alIlb7Muz,]uB>;]$+\OVl]ƹkGvgb\Ds)JۦZ^*{e<$~L{ekd-]Saww/ MTI?ئPg5q2F2vvJpIԵaXW^Yf՗Fqs&AXw 7+ k`U1OpGm 7ov~]R$A=EPtLf+e АhNF<Ѱ҆BMhK-YhX(%' .3nbz+HrfzHM ef0&hw-؄ .ψ0oZSLJ 6kZҢjIȍT eFX\)*.A-:YVot vx쏶j8.3x\Fi*4@_E­˲0Vl Ќ@.Uȏ. ϴ  Z*UPpqOl NN (NHPh%mj3M*0:rjD`ī@k4#N&.ȃf{U%NIQNz|m poЈӂT"7 ,ͶO Of#04N$7n4J?<)ލsH) IF j9N' *\r/ Ѯ'K_Z?# C@J.JNB٬,0H`-K|Rbk/!3CR& QH1k`1Ҩ1$#P0p8CCLq J K*4%&@m()Z8jm7S\ !H! 2b r2 "gq";"C>)/#o),,ÌH?oГ|o 57pc)dtur9Z@vv * v#ewd))mzU)+54N,̴/,;3,;'b"k HrGR/B0A0{:89 q K{B-0L3%P>HMPh떦5iMRsNNa31339SMt7cfBmkeS]"I+9 .렊t.sQ: r T2GuTmF7FitrrB*Cyۈw8b4/ɒ_`T;:u3T7 O:qqr/{s0{L~Kw efP͉M}ظ䔻 5O5iBhih3@ℝba^ܴ5Nb9-f)Y[ 9yiYy]"Ok{{CՓ7K6G<<p#8@RwOh$[isd?xڥ폜u&Z'2ƣJ3xW`r7 Z2 9X92;1#RFm_UZU8R{]ٓ9ڕG{.L:1GAKOV4ky_ OمqjAvgx˛%abBL);)A.! ؞9d G{, V'3BWj+]ˍWBsGM{ʗʡbo[o.ԙ̱`ٜfxܲ93VVї}LUա+wx ۪D?yz?w%w\:'@WW\|5m@eZn[%T8,%NB,GO ϨEԺ Z,#کmT-Rq:+z$Gr=+)ZVa_C5V!z">S=ڣ9~Ÿ+U#{ #YF`w}2W~נ] hgzN%N# ]$cs)0Uf{iۜ漲X#;M)ŹnC|59x[)zKts)ԃ ǥE=-tL[7׼Ai/-| 9nGʟY^F/? #?YeqЈG'3BP4br +kJhJ[YeKReM_:5J)z`H苙p㕰2Ё tig[PàGuT$$VeV*nK`&nT+z3܈„-Bbg$N i6#s-NQ b@BFbvXb()0Lϭuޟy`2j5ZVC2Ƃ5uՌc !B\q_y2eC]><ȿ]rcage<-*e^3c̚N_aM*D &gGr_YPd*ʈX^ N]aH7{:s+@kfBmUrR2_u#)u1jak& $vXvg@wn #@>=` 5޸, cNC+Q\Y h6v pB/?9!]U+wq~W}?!cc44WT{e2ьJ}Jt1]sSq4J (a"=S%_\kAE7Gd#,73<\E"bD2wfP v:Q!w1}d u kSc% T%1*jx?A5mTQ zVW{Ӡ~VG}}~1L7pnC~'}{}grI't0p|kHxb}SG}oQaY1 äTCs4o@<&H#udY'x?}RM`Y>edqJk1EGbAy3cIW?p&z1bXy`JV1SG0h$ֱ++vB"sTwb9G0!a8A$#N(DR=&[Q(mN({R /y.Ց.U}'~@ch؈'qgKA6q&c7~/~%WGrGeP{1|dq(|p>{FXw@k1''=W&'J0 pYp^9up 8Xa"Asf9VuP9 kWy>ogC9֋daɘ^ً9csz1E49&f'ua_ V@p 9:// "A )=#"""PPQP, q߁"᜸3e0SUb7gxxFq&iC?8Fot4'4Y{y.5XFla} 'q}StbWdWBq{|ex  Xp V"po)'vbYz'a)mg@=: ??J0 Cs Hʕ\9 VOc6{qV1 !`Y gNg_icI)ًTq 1 T٘TizaY5> ~2gUn`$%  5"i"x @C8Acu2Sp9U.x?c3D?Abّ[RQsGI~-~ǓLjfzW6(r|*Ǯ(ħ |`nb83pS9'n\hdIe0 cK40 4&K :z"0 `pNy Pvajy Nd99U Yvg$6)4PQDHmdaMmq'FlƁilZ1(?]*C^-A"qA+8R#"qBYn'if8vvr\ƥ/,O+EHxkr3 >kfƀ) @ j{|S)^ گ˫ t0toQ p,o|.|rWrWC 00+ W h9@[X'K3TTiژi*צsap"mh[An'|raf4TsNŽ䖋sMg5w2(ljUn#*=ᚇ) F #a -".YuvꪖFihCtLI `6J(3L_r3ql;_C&[zG̟!k~݇j{7 ۯH#H Pѡ7f˝\ae \frm,m v<"bw (L}* |ApZð } A j #c&M+Z@ %?,ˆF0橮i Ql Q|Җ`@;Ӆv YPyFžv2X,@"ż*"J.q8OSO#W]ݸ$dCFhx2Jxuf39Ẋ\KІ@gRwzg| ʈ r &(ʿJ@Kt;;t|1м -;͗ ,> &@CY n(WԆ_gYغ4sUz}p,r ˢ|Wҋ-#٭l+̡ܡv ) +c@&:ֲ Vt;P p_TRoQ pfݶa1}Apqp~ M M e@ j |g膨)v#J "}'MҰJOkCͰl}L QUS`,"bAh,(3:fP 8":-I4wa6h.r8AGd *B*4B)賐?C7YNAS᭎` Zp}j)'lnGʟ|1]o+sNg̯٢‡  4z 4`ż +pp갞0ٰ.o/ضqݟZݧZ ?lP Oڗ`PoC"m!#:'4Q(jVgjp0Чo)sՅ+o: ?l -nㅃƧsE8^ߵDM rf s$?YYPFB'QbEͶ bퟵu8SL/Hg$p̉s?,9K2H&{ҁɠ&%lիmjWa[%:_4=K8iB ڳx&:5 v0 \8@:I><䙏v28% @;M7%E$ӽ7c.潛2ghQ͡G} }u`-U^ZF{I9H`hY3V/"?4F@KffFÁ%RGR|",Ȓ>DG1!⏔N#a!0# " B$:㸑̸kkr-c1H"#8B0r'tGI hZ*I+v,4(r(T'Kzj$ITUjFְȪ-쭳R.ua v@FZ+Y 6 M 2*#$$L(ڵM/t-8|ͷ~ ·KJ%=g`@?jA fn#c0D#Rda8N#iL~ykSSSɃ \hH"[o8D',ʙ4J\M6В RK-Is' CweBFȍS*џet'HyڅtJGjꧦH-j ߩ*SJf+FuYu[u&]>~m Xb ׁZJّK;Y K/(B(D I´.^`IofӾݼ6,Ho 8 n%l y?@2 VhX~D1T%L `FÑ!B9@!4b&2=98tӠ`b XP04bҒF#1 6E!IDD`r RıSSQ$":l.Q ‚Fa d81o[\A(!ܕV\'8'apG@Sǥ/E +"&6'WCj H$5갅@Łu4TvXMlR885Af2))HA$"I)pxJTr%/V˭\oVxa'MRfV7vB `g  (Ё q$N,F`m7 r!HՀVG,m,#a$QC"'BOcX2A*N爈ð5Qs#EX g@"q mjE( A8f#0RZLM!Q6Fir9&5)I IBiDq d|H'GE@<8^Lb\!ۊr_9׵NzLp#FHsy&D%qG;81ֈdu EV׺%EUX M^0DfZ4QaVXXEd#J߁)蔊,`ȜÝ]clԬ=xq ( ~@!~,߲ C״%J?e&. `.Et9ˬGJ"IJx )<2QӠNb$T@nzS$JpF>sò 2"AX@B 0jAc'X~vf,q ,!;h[t+׽Ȱ`[<կ&I H,lj"ɐ[#aXI~#-j;Z]!p2? к6ot1QLe:et[2vey֚H|G֚Q MmjF:t f fP9KPKp=0$QkS6k;ъ!9tNc-ZkA"18cB[%a "t8Z7J:$4Ȣ]2#=8.b]ЅBC#$/T__ 462H<+T(==L>áKS4'Ej,a(G ˆ^aUqdPأ] ᛐ #!BO cj,OH4Ҫ3)N[A*ɤDW'ܴSWHCM+"TB@0Hȁ/vՏQ=+ 9{H*MZ>8ղ¶)70v;-B.tB۵f9WpB%҂B8@-ʝjB۹]P5Ha(b^D l4)I;CT܃N9$TL *b BKS#1A3Q,r4| 'AoRe X_V1 E]Hֲ:H#j*h j_W&û /+G#9-]5F+ RU6UL<DrF;S堡rB#S[·qdzZ*/h9{jΉ)=KɅ4IqR=U7j97تK 1j:G 8BjIR*UJ8ޢ,=lȆs-9?R۽e,<0l, euR+ȮX=a֣4bI(Bu#启 $Gf]*!8 B8*fiWIxkJ!%l·4ˆNS:)̢b=KAT(DgHKKX(H`vhHefd K hmk%;DāM(K8Z\ #ʁ@dj:7TlUTX^8Y;j0nаS9P,kDGxDvDLUYDp& S8h"l 4SHK=((-B{9.4W"E=PN;BX׉O.Hr4QJr,RjZ#b9 Ԣ(j9E\@"]T#L LJ@,wAJ=ҮO׵S`[{`K`:SfI8 iPiE/ONnq(jPu(bXӁh#4=Vךצf[n,P(blhd#8R?%8.D:em3B% <\D%PVֻe'ۜM(x&:OvoPSζJ qRlo(LK wfJ\?L=뽿gH~d=fBBJCbA#$C:ptG&I T|o̠# 1 Ñ{:7tL]0o>$a~Cf,Q0X؛Eثئg0Y GY\Çlο=w[lEjӟd3VGq5e_&i&}&H-``CF)UY# I9~ѝOk㙃+Y湣|x|`y䋡̰,!5HˏUQj[دU*E.hj r A): *_A *x"WècBԟSPu>$?V)VE9 Q.uY"QDt\2a!.K#EO$6dD':! cA$Eoz/P`.#Xe8 i%i8.Kfeרc8j߈Z@*@&6cLczfDґx]F5Pr/|\fˤ}f8נ58*.a 1D1bk ɐf`$\qqVG胠Ik2|)yIy7O&4 ) M 7EÄ[]OؙpEDRB⻞h /Ԁ<$@8wƄ C)LE7R !ȤKjR7GF@  t .A4X L ToNv) Oi;QU/JU0CdD  Sˀ?jT:BjU!S}("lu'@RZG5 x!#>4B8aIK8g(E*~˃ְ3TMt,e)L5> =Yʦ )@6KR A$-g0,ĕ L{Vstd ȁOPZ !G"襘D1T*Mp]AHEɁjUy*@ Lo(%tCu \TDx"" zDϺ3]AM '-ReԘ&>cON1/ɑh~叼E"gxN@ p!&Z<#PکrZtJg#N}bىNazb(?A?'t52BdXݝYhmOGl::A*xzՈBOv9n:͋GO;(;ǟIdCEyŹť@x!AZHPƄLC2%~ZI^"/PØ'xL tYH.խќ[E49D6xڤC3%  [OlJ,żIS-Eh%|lXEV:FV` FKX•V,*=U|ˍ [8ûDxh^y8YabfLj }e~PbA5,!VpqkѽWk3PL>ѩb*4@)yIC|R%?Ahzg}֧8h]B FXݑXpv. UOtǚzhlsl"(",ǎv'TuAIt# T^T A xG_E*)(tG qSǦc=DaB4L |Ŋ B -BE`yiBK %DpE@mC0$޾ ۸: K6#fn@<[ JY$0LV)eQLJʦόpХPq KEm` xoFHE*6A\/=JI@(Dm+t@i]jPpFjL1MlF&oJ`Nd}ؕ%,t~A=, l̬ώ!gql q5:54?ÓTV1:_GJ)"0ɠ\D$ q%|1 ܇l:L|}m XF"Dž & zhfL&no|]x sg].h,h pFU =eQd7[n 36U"83q҆ Xͳ ,DH8yANcbltD =±+zr+I-NyCf8Q{fb{V#-nV@)HPv4IPCĄ2X]N ~P $OO1oLSOWSm-2(SBݱhPٱMb8`꼜n ! |ٚMzhmmSCsuʁ6&-pyH UkqPSr-UH UYA0Lk3Fؒ-c,r5ALtMt,Aswq7,8Lۘ\DԇE$Bb<<I`3Yu(pzfu/À'RʼnyςوݙFɏ]K x&$]mljj gIB9T5D߁XHVU4$< { sy,ْ&o:OL`f͙Q{1XBӂ?tlʢ5Z3zV'j]T@]\'%I58Hm~@]aÐ|#\.Ԛ !k-BUSBʈ4$KyoM>qI1eRZBXUFnhiޮD1ǂTγaȨ確)gF&d*=RUpA-õFk?%ъ<ߤMY+Ua_e䩂}NbwB7tҒ؜M;tS#pf9?8#9#$#;8>E8HayIVH'P]I\<fDC/"Jfq$0Mǧ 娴vGLJ5%ՁLyll h -tl AXSq'5Vcu6PPA3'Ъŧ rm%|cpޘLU,JgBUZi?Y…pGbJ\ܽ(ћø.A`#نk҉L-C^Օbyt:ҵ3Kꤲ`$r1.6dȐ~|~UHʈ .ˈ¦Yl?# _HB,d= )D]ѥ(V &AσBZj Pc Ēt^z;Ò+=c5cR%#=?8xh]aw&uUSI5RIW wA HAR0!W 6,X7Xit֥ 9 BE\,x9KL2#H?d9f(N4#.Q?b+/ʰ -$G?ё.a79c c>TTg48H7y)g8dm*kRb(}\u)x)PP$PRd Ha!Q0*#B t*X&O|b8pAa$NnT_UzJB~jZN A zP :Kl\/)/̘"lJ9nT |`5 Gʃd., z A0B]o  쮞hG3 c@$]&H 0B "P7L@bDzԥ/C(^ :!lt;KL9*j0`&or)H*,<U5d ); }920&)&ɆF&~F\J(gX."6Lɍ>)<>)r`9#rn,77878> *z@cinooC( p7Nbc*N"u1S fpm-%5a-;5"Z84U:8 ?tC vT<]AI cgp߸ /-ͬ}]!<* <ݱ1:ya#Lk!89:tu IVe2N4rQobC , v_?jİm jyXGy@~&(i~BSa]83)R5]rsϿBt1Bͯ2H)]i5Vu ( ي蟐?DVC6>AC[1)HŐhid=cVb?+|C_ 1i3&Pbr#le(hL G1=[4(ڇ K_',H@r:Q|ʿ)ا.LG~Ё]Cq גGӤ/MAÀǟ- JAჴA?.(?\+~"$4. rDW\?>A[ύ6dleTB."\`p2+< llSPK1t[q5 f\s"Ģ}Ğz),%)4V#Q%CRckrwꢎ:B/ `HBg,""  W"<`6CD@QG2ˆheEspC 5DĔSO;.Ƽ8Ƚ[ H RG 2Ag `$=$jE\5^Nt܆}iw#sg? 6xuMF*F1e4s#>d ۵#o1#1a,DYsFàu($b0%B).F)GbfFRQ-b `1TpC(FP 9H} ׼HCs60i_T# m_Mʅ.8lOȓA׼Rl0!\+?媋\YYP$HK]Bd([ʦ`dyF&Zƨ9B nNc- H> 9%[AF@S2:6k_*MlfˎL2ԧW@hAo{aG99׼$AAFp⚜G6Ty6霊>'#NBR.q3^i#sF1Qfǖٳw8;0 *0fi Q 50½jfhIRXK4mQk aD b3lM4YG ~jRL2&75IGI>VT4UV"ԣFjJ#g\wv' 2r:I| SKPpJ*=*kXΰ\4,ED"< y?Nrt/VQ:& ǒ-.B)eR. BcBfAܚbK=]hDKG1)NJTV\[1C9,DWHٱYDCvh ~Ӂ6tN6y1XRzl03mZЋ$SVjgBFaHL)Owص $7Mԁ #LŐD~O.C˕;%1s)˲9k"(]?\q}:Ft'؁/" Ýa osbT;] #J4j7cmEJJAtL#%J%"(F-g nI`!fyq,CR+Q$?4+#U2萞eOhW<{+Y{U(Uod%oZAW 4]S1V!NRkqŸN]x^JCPjU8Nm4\Yu=f,w +\&p"Elb2EU29BQSQ@[~$Hxs7v?!f+=[\\l@*3C3~[z0r5_6AsD^$55,hGqUxQ{6q*H*؁62~2ɡP ss=G`4=1_t9M9h9P"N+Zpuar 0vSa$B;44`v%3 RvRQwTps0 3Bْ3!31QC3 R"o'+$xe %5)gw#(g+hͦ0Xm#6 P fWjEtD*R *H.|uW'k%=6A']uwDQ#+U(Vf ${WPHfB abq3#+Տ'11SbgCe>je@(v)Do8C}ҁ4((=[Qz@ $_E+΁5ڡ~Cq:S5_!A_76Ay(5c㓈p*FBb c!Ds mnȱahaá!c4 P@<+k`v8 X#u f;j 7%v'0+U~S,eCb-36yXSm#m,XH-qv-D]GqA)[7>qoFV, %=B v%,8>WbD&}uCPw7/]EɎ!^E"N/2AU2>.U\ُ<RU)5R£,Eh"!Rz[4$\ 5a*w)214P,AUb\v(;7>L1"~^5CJIiHJrjEDsԓޑ+GGC#241JSZUa$!nF9LmSm*vw*v/Зx9ttu41"D#kAv#JYh`ESBeIe#3E4q'R(“B*Q)8z)jSeo!fr йbcoe@޹$WhDݸWp}ߊ}E:/ʮhMuRu2/4|keAQDHAb 1QF  _ѡs cA<~2CX4 D:s>Ii>H1f0h)*Mp@2Y`2I56T CJJ$ѓŤM8^$=LqN0i{[oȱ!#k1$Qa 'Rmp+uז;6 q/Vзx&X@u$f瘐$Auc ;#*9 }lKi14T9I ea'qz=e7g2g%@؋tũF^SºqЖb x^!@WDUDdIJH:"*C1B/NNaALE|Q 7+)TTUAeP0E5>*;5GoUEu^aU|Q$-I45 kS!x ˆ\ASO6q2ILQ9i %3SvH14t UbBAg񩏄f$,#~OC5K>I/D-֢("?FTF,7&~ wp Jܮ/P1/UD][}=I7 ۜ*E2E6{A:T~ DS\>nSSTZG4JPl'YEEB2pWBx*xy34\@AӱU8Fj#:$L- 6FLÊG@.+5U96_sJ$JCyZF={4_U= !deh"ضRGf(t#W~b֗.Fmu|Hx,5%x8#5Qbt4PbhArR҂f~S3:1C7Lt%߇+YeV[1lY7BD6- p:6w^+E9I"Y5Y+.FYEz0]8_f7[q(paKLكԴKDMmpsATwYrmSvlbfN@k·3vk1 y/W`7¨;y=h@8;>0x,f֮#4x0w3Kf45TӒ"[y7!7J dFTa=NԳ ܼ8?-hrؐ!-|L,3/b)*菣kK5.4vD(glRrIWvM߲i.)A$LA:䊏hd `[t>Ll#3zvY1cHπW_Ce"D$6Dl%5F(fT6aGD&i)1DE& yQ 1DvITQfca>f`ɏaaJ*? -uA 5d($L>h?XS ~)UV9bs8P2s3IpfI?#RK5c2?OgH91"NWq!02R"T^P!$؈$2RUUXU sHE F\%T>‥mp%н&Z&+m*ʼnV*fj&Zz (,‹/1Z% c.cF,묳XL NkÎ?#\-6%-:v] 7He2+FN;6cIdOw@GvdC6HT\b gH2Wtѥ(c'(*)[F̘M4Ġ6 DWz (5PBAjK<͇#pP$E"TQ&>A"/ ++eRb0weFŲE.WZ)hlc?𑏕!CaөD,L֝4!Y03\@5&ldQ8cYB\0Q>+ `n["oX:<jtlC;,gTt ']9raF%O$P9&HNuQCU)ʑpq[E` `(|V?`6@\crS&ˏI5`|Gz5򵯜&Uds}0)o)TX%Q9u0s<1ZeiK m-=#\@ H67v$K#hEC(.'KhaP1F fqSa^bp>UKGtd U+5X }4 ?s? Hd۵ '#H H؎X XՂoӆeiiXT-P o{   [^1q;?p&9U]`` I)!dPг ɐEa22xȺS8](,TEjL(" 0*09-PK>by>@"I#͚rȸqHjTReۣӠy JɎeɰIa` #lԆpPHvt<8 X]pΌ2&A  EA'.:8RS^sbI $J0 +.> e Ŵbwm?p? aGpѮ)\HM-`G<YT>ɺ2A80@PU8#E#MDER[RJ86Ï`ӫ`Ȇf`yb(De O,/Q-Y25!VYKs`<,.!9ɜ:"QU [(4Y9PU>KA: aZ͑b@bEJV隻Ѥ$Nө )ߗa)PqWɻ;tN I)*b FXX"̖Q;';E9Rh<²DVXF/X.Pu V0>k;+{[= a( 6- ~$}+ ckB`к_Ż>Bh-L1֒K2ō뉔6Y)DE8/ZAwtpA)yMU++ XS6maFnKB )q8@1;L0 h閆5 8>6>P۴NH1`X ,{ٺ @ $3҂S .6㭓:]P'<9]!؛SA4JIG` a䧏hdIdKx#G(:5KY =qZHm%X<]_.c\ְ@~<@͖pدXZgr&0CBfBH^Q%J^ND~d̎ZGlr~ʆW.YIHꠒT<]IKX)W``̓_9œ`P`:`4-Rz;́n&Q jR7k0wGAD$^sΐ{ll : (8omn_ ٻפZRxQr^aa{Wgi_N!F̜3=6h`q l=rRT> P!piq"(z NGLcYq6ͺ0",^ ]G'԰HOB±vU͆Ȇa`e#Lkn̖Hv!Pe+m`L-Y^p1<\ fpfl#Kgv\ePt̆fѓ I$ QD\ @pTYA/A=Z'Ld:^ξe֒Uv`! ԪCS ijJVa)C8J h CP6m1caCChƌq#"~l$bdDC/ ԢǦ;hHg292rĈ#6J?"`3éլ3`+hX˿% S*m?zaƐ 00~0A Of+,Xb),/{ĠLe۶y8Wh0+Z0!P0ٔPN:!Aаc3c99 ?Id?U{%LlO#,1Q?ںK.AĬ:ЯӺt4"%PWlR9RTMD] pZsY5^1axul beH6dFgSg`e SlD4D$<9 ?D ^@C@#NwZzmy1?A_ {x-JiM2,0L3ex6rƑO_?2ٜG0#.(3BP&%0zZ.\s{W{B ╫J1PG]u}==`n8{{|]"  x*Χ >cmKp?CT>hj#?lR)Xi`ZHTD*Y ] E b$Z:HU,elXJVNX6D!Ҋ*„"LD5-KX8BziN|ދ je~RXq $ &1.mQ@PaF݅0^` (3c2x+#b3yF IjzLAh9q甤7$5Ka;'ùB"<wCYLZw#KK?W6m9|a>w+z&!\B @4.q< Og)3kr#Pv3 qNs8 >)./!EQ&? 4IG4X7Nyj#|$GQRGjTS 9*\p b,.k =(@H5r"6뱒! IEKuMAu"\!Wk*c"'z$&ї x ea.N^I ƴ siK]2p!b 0ЀpVe:4nf $jv,=PB t (Pv5pR;`P(T;J4}i{P{6M$=0ɇb2odjOg ,cjUjN`\tQq24ȝv2dxOR9C #>%G5FD"TuPN[*\h"kDLЃIe%zִnXKDV kc3BVЙѺ!XC%+5)ۯjXUUO5Pd'Ath- DP\-Va@/.۳1 ˫N@%8)R'@J`խRp+$)#v E"6i޳ )'{+N$cpBj,}u=Y?>Ḙ‚u]**֌5h.k"Fn&S5[oҁI/X@Z`]*lբmk/%#b?; @Fd  ̘"iF M_ 00wy.{pR u נHy\¨pqRW2ݨ}M 2 1|єA8JB*tvS;Ap@A*dEpT C;G©8ȍ!- < O”N"C5`Ipq:Q8Ua009 աϥNTi"+AB,T"TTbKXBAL0հLWMڤ gО3>c"iYZE iD44cMg܄CXFF˰by 60pEj ZB[pEkMDCj_ؖldQe  ed Dj[AЄ@@tUq)Lz)\B $ zWdW@ vy *W}@e}R*  Ă?3DEY)?\S6 BPɔN&0e/R]=?ЈQ!͏A]؍tA-"XXZ@DH4IX.C-p!qT$ǕmX("xOT$&|K0.A gl LL KKĬ\cX)__wʞ46cwZ ZyW_l#5"Iw^9n}12 ;иh %[Qp}_xV>]߳ŃLCCnME"$F2K#OK%RB HuuhIŜ@vݨLD$]v$(e:qh+q}ۀ\UIheJP 'qv@H"F5He0n(%0 "<ODTxPB.V$MB ZX . H*-\)9Zv|ȯA-. lЄ0P .T]YgLP آnFҷkT' (1|^,h^fdxN֌U7My"y.R3F#:9W:UeJ YY2Y%XGH/465)PX7YB@"D@8ʦ*R9C0m^A-JVWHVϣ`e8.W&X ,XT0ꦮxn(٥]-aZ=ۯfֈ 5 v!]zUϏT*䧏؆ h>ɑbOm>ON!X#!qqgBB HJLĂlI2oD3o_u_g'vyU_MDҞW8㷓B vCx˷8;z3FL`Fe9{ }}@,X@(,@@ LP)SVdCZ`¨A'pPA1ƅ a =pRÃ4/ NfqQzvhmhIFYv2GȟT~L vBg!X0 ! ƆgYr+#+᱙`·g\|җM&}tiJ3{Կٴ9 0AAN XFF*+k-`r]/SfUǁ '^ͿUrbEaL #&Ĕ5)}τFhhDK1R IAB1pAh`B 1GSB+rpdòvEX-b]+SÕ.%Z MoSB;1N wzH=@=T  tR JWH$Ƞ(GPuI/V^`uY#$\+=hA<  @2& `=GRL` K)TO$t®+vfs0U438alp?% T &p+#,qkTXǭd|k,/ sQ΋aAfhe guB6,%\ 5 "$g8ÙspcuA4eN~dZGDK#euqсuD$"W";a o H]Fhp( ͌,>F IX֥+ fiGt+Vl=ON`J0O9OA<#0C 밢Pq)R# :"QBA!1zǑbMnrp+Dh@%`C7` "$@5ID0J$#Y?N:0CK_HV,8Ɗ1AmDG,#ĀHBd[vA :OW?tc+] j%@f5Gr*>a.BkX⏖P?f 0s/}&kf /4B$frJ%Vp8s#XF\w"%DFd^IN?hKNhW 4k]eJm 3ծ rv+ QWF6r.q6S~ ECS?z3'q$i1OJ %@MQs7}IS(mz+ݫ}S$>XM,ˠ\Lun8-h|95ix!]%iS~\r}եNw.kߖmP]hq%Z? ' A I&l$WH>kp$ L>"NJ,: E>lv*,*y @HPǢRpzx.{N~Ơ{t,!LfL;Np* &" T}' [ 3"+W^g ZJ_E/ ef`2l2(Š8(2O:dŔ,Q$Lof/F8,-r`&@gh掞oٜ #-#=&FcF(d, D)>qJb߾ `Gv J`v햶BD z z Aքk[4=B#&0C622"D\b@L"K R.Ĕ!JL)B4`)"'*'ejP`R%<#jzf|{~2pl RN&L  8nbzjEEǐ}}F(#mLW$0`3".n$0//CI aB 3D/;IB$QPIp, p~EGE1%rf,0,F$F&v;dxF &r.dAs]  , 3K"GJ, 2"#$!Ba&@'=@栮[FE&JEecE(&2cEB*Pv|r|4$Bac_vE5Z+eKH]0Tɜr`@VZB̌z,vT ejOpM(k14Ā`WiB/$xp6 nߍn$܍puݺIOݼ"qr%ov0#"#]p/( F~o1&8kjHusA:s h50@8 DO 9J@KpXovd ni:uYIHuOIȑ<Us^+†>%rDCKuvDC|:_D"$"L a?$=(& 0aE7"!T/EEʰƂG(HcacaBl`N&SEC:hnP+~Fnz dXG%]'zxB(xX+3x kljbjP \ތOKɔ rQI0|7WT"qWk$#8nӏcŏooix.ogpK2$r"lGsjs :'H`0($Cm++^GJ2XvŽ5"-*=,BZ YJ01)Jl x%} }Dba $avew~y[%f& ŃblB b-؂'8c. + (<(pf  zg]x_.|X2\'8'N p̣SE*NͮBb؊;W:WfZZl h4J)~w:5u-ɔku:a'E/EYɋX޶BD05:Ҏlk7rHsf0PCp^RܺDSSJ$$OKj K 1qqNj“lD @9a}\/gW@ZrF I试;ŠaW_A!POM.1$YB'%; {:vE9+ZDV)[XV&Mv(RZ( .UE4gHjլ\VLBJ쥱"0ܩS 0uvhz_KdYkIxMYŋX [8JJ&D/#upXM?(]C6+G\qbc5$Su9ɕ^7Xd xu:̍x.,l=;<1;kO9[Ip!ZD\'SV=D1Lƌbd^"B9w|vFܛ[n@O dByC֝34 {.t'`B":du89y‚7([9{d2)|cUdBuX׫EtZξY51] 露ٿn[.E0bl}LN*LK2VV v^pZ*}M(G؉KtMLL:OJUobpAeUdJ#6"f0K c:- ×9OOٍT <-};o7Ϥv)ÞymVw`tE bl==E]+$6`}žC'b?Ea' `Zx(۷}E)|"Q܇GIz~e}&㽀R}V Mhश* ̱d@#RjJJ w։iLũ 7wҼvG7c$簡':!M6qO)RA>v!"f+جYҕ#UgChGRq ߂{ֿ4+$KرgӦ%h;[6v%]G -ZmAZ6O 3f(S@jӂNJ׭%K!lu@;ݼeG@\ 'm40\p7,Γ?Hn 9m`7 !o z`?o@ Ε`eW'm0A|MGnYtHY!#bY.@xUWYݎe1鰀UVSi-BPՕVUc| V&X` _V[hY#ՙiePjZuURMdE}uAZL:A&?). K,@􏧞)Z@2G5uTA^AZ LgYzRh@b%\u].A`bscLd, e;(Iԯ#{V\醛l ýQp6 Gq5qt0wl#]ߍT| q?C@3 C|3{l?+mM۸ BX3{TKf!y"'VL9lrO?܀xP$*iےz/y RA-npV1fMifdf[}9tiXy nmnq d+YtHQZ ?L!gJ.ϒ jiIyFm{PRLVZEt9aYh*v#%hxu]rض{y^Կ6jSx]W%, I6r +}.|@L b M~3Xl$'{4Gn9cl0xȃQMh 3Gg{h<Қ65G@(OgBN!Hl ަuC8Rߋn#?QN~l; xt *4183q+]!5} 4$MukS\d9lc'ҹ2|@'EZHH`$?!&)N+ K ?4‘\%eWTYI, T$E\LYAU+[_/_p(1WApFq>򑴹ܒD6 E)opu[aܘ! l :QZC2'CIAnH4"XO, f^HfA!n$!2TB6J9F9zGB[n:͎ZrJ$3JJ"E"d&Ef&D5it` Mba")tܰ- YUb46oJ˟Ũ0%"an `Dz%9JGҠ$8HeoTRnY?›tbKYkv,AY,&\JL^21 d`!2@hp:Eָ5X"UE#O~b8rZR @#.l<)iU3ԟ4(#.A#48x!mAʑN7mGIaJ()g5I+h&!kE2lan8: hZvV4 ۈjT L0D VmW󖷻^pB$^FJ\j,WzfzAJ0n`6 浃)q\o}_, m#5}AQ^0f7 @tOV6aT[R8HEAJ|ʭ:IKz>Y PDħJD*o$BVlh7',T;ۉseYDu:D#PìKy OlTM6;۩JŲӯ3Z\8a*H@"RTqi_#ނHwoWid-+q6mW0F}i>mz@C@ZFu6Psek]66&Ĩ#K6 jp%E*Bı 1,hWA6HaU2fc)T?UXH$DS!VaBT3ɁD@,(4\c1VDV5Haq"yrfab7uluDRSt.Rfi6u!`gIt'-BG<6~CKrv#uQY!dgaqBu6'mwxmxexBtw~J".eQN v2>شO_s1aQq`t-Mt&bN} ]Ƈ#g|7myB}էm|qg6~koR'0mjhma Ca7H0mqL#234Ca1"#7h$)uFh!45Fc(T!BSD356#TRcHsNdFdh4[f8(v@x#T ;E+Gd7UlcE2ucOfat+a#wZGx7 $fxil1lax*xC9szllHizk艇{Nq_;cK_6((ܶ>i,:/|xN7f|aW3^'n1.OP ps-a}㈷Rt(=^,`1JIs9xvQXQwGB EBm$meA&"C7Bvc7:ur*@I؁(3 BFGHFBSc3G5Tir2tߩrq5+yW_?uof1d!Y9KFf2b # ٍP(qsW3 R~#R7&z$'4LY#ʔwm#NJ't`%\=Ƙ3-wow^;'oi|ݕxuՆ|Hz-v ]sAy uA^v .bq-=RJiNi$dž+A{R9)BIB Q ##/~$]43$rAUDˉ/rBC[wsL0D:4r?5dY`f78Jʟ_7 TrYD7rA7t007;#n6,iWnCV%Ő )aUZq*g.,t]Jr@Jx.&m[#e+qa,{/r'exxdEqH|KZ{7z^IU* -ۂ{gaco9 CP>o:C(VqDr Br p BF8H797Қʎ Gcph"x*¡x~1満sVUZ Ra1ghxYϘ>C>&\qDzS'>F'y(^ew]U X7#a-aj^.H ?ߗ-^u>"-:>Z1#lŒ C b0UZ^h+A}Ȱ֢4"-KlwQ^r=*&,l@ģ-0 #&^QLh;uuVs] #Ŗ PriQCED1DTB#l_ |uC8sSu;tw [+dHy6呫%bQd2F*2Bܡd=A(s2.{5q2 ~;Z1S:m>,luxjwYZtXKYxz|\Z{.]ͮ]|^!n/ɰ rmb??dE *> <,*ٽ<-1&LDr8uQ*mEYCSW3챩Ȝ NT9fCMb3-t7ڟT6rvӊBd  FH-H*r V2t4 CF!Tqx1*$?~N?t^1kA.!n@0@ UWkBKLt@z# mm1”@ l,1|-}Zitg 2K ϿͿ pO `Al0L0Y0" 8!Æ SDP`dMtM@Gv MTqD>QITDP @?4H.ܱ7ś$q!EgpKČ9 o h!2!PPsBB(#6@&ئFT%B2*QE2N)Ibj (8[ER5%P8*+e, 4PU%z 캋B$/a'Ë a1.L+$#̴hlvn$·]^3;j܌3N7&1D8#9Gipٶ'=6k6-q‰o>6zh iM. $ B9j ֚놪̐I"4MOAEQ1FH V"pBTJI+0CO sG: *>Me79"Sn2t8?q5]sAE$5!G):hR+'ST%-"ԓRuUZz%  0U5؝%Zک%+KXNK]$Ϊk!Gm.U$$*]`A`S;t-4^(A Bjv1̀&4 c| |@

vR)HQEBOT3RrP+I;(]U,zrM`/~ nծ Kf0c ^ `Ӱyf5A! g@ StL&%&qC&< d(G9#;Éb,Y5&8OUjϸ4:`W쪁H?z>KHk "9mC%Rڈ%Dnrc&%][&]95iPz?$'鑔8ףa.I(BBDKt{69h!kj`e:jS(`TB$; 0sH 4kb$9V7N\ cM\do+%PxzE(d;$UVWe4Z#lY.dU=?"䥢bOQ8, Іj+3XAH'O8csP ɰ&44j |Lx8"sSūHNRņL!Bsw:-kf3#Ɵh=^n>]F\ဂOeɮB $%QKfNC\+ټin]2Rd$.qTrDZ 9RkR=42=5tqE4iQGgN! .[ HN"Kx;U:煄iUKjO ^YPR!SN"[J0soBhEKX:zP]Ve+[y)SʴԕP*&!ZMc1"xu47V$r: %'`!Y G޲p&<DEDyb.YU9i6^2 !v.}Vgܲ 1 3pOKt $ )ґFwLbKFЖGw0H)905:󙷐 H %O4dbɵ&[:r&I=QD;vӝn3: 3yH]JiS wnw$07=w&=#* P_ГKaߤ~.ԥ̵у@ u9VQ;kɟg!ʸ}[󸏛Ƞ %HI J9ө 32J&s2|2R+;(B3#Sh(ޠ*и9gp<C|X3-=*`j0R QlҊ0 }+{; r[#y'qڧx ;4F+F(l :Wa pƃ:gI\i(-8K|I2@HAȈ a/H bql[9He1 8Hb '8}$k@[ȗ;\@JOSXژLɞ:/ȏ#& #;ТCdZI3:-25 B @bD1!!!P?X((EX9d43d;⽆ =ɛZRKܒD?$c5MMJcbTDڼѳ CbJ% Aj½6ɓ=y[ʥ_YR&>^+ؓh.i:B͈Kq&RYco+v2/K ( l:K0eY/KNU?F0l̋ iBJ #aV'*fA4OH T8 p!ʈ1d)S "#㹟P/ju=dy=:/"{WU ժ  X *+"@2?PThT2؉U9p K@ \b⣮@ y_LxUr"IKB'J@ <<:DYK+%M3] ̈%xEAa\r.pLk.<6XDE1 ZDTtT賦Epx;!>QJA8ԊgdFx3T͋x/e,d `[y ~r0bl s !i! I)И0:t%#". #R0j7^}r5-~_ *1(1Mх2H2X߈EJ!hJ(3p(`>S 6zY 0 $C!u˒Ҷ(њ+἟˻Kѻʻ>Ƒ*yĬ0M=) :AyŽ=&<)GzTXTJ&(>TlۏVx۞TY,ދo,d!˦Qp,ЊȫGAvz8kQ0B hGa CHyO kRL^}-ttsТ0P[f{מC2(d*b}M?x}X_p~EH?P]Apц=IȗЖ.x,@Џ}ggNA8b <̂؆c)64 8(j]'>sKh̞0ޯ3Cc SË4(2m VʥUdB }s¨Y9Jɟ,sIjF X -!ހ"MvȍdR.j5h xqxr]^fP\ȋFl`vaW(Y4P"XЩ`߆QX4lT8JghnU;' hȂр R<ZXP%0yRiJ+Q,&f׊<[2Q&Ei@6Ez~Yhq'qXT J5 ZIel U8 1Fڬn g8A. dxj TT܇49l)2(2~XV!e]S!V<"F`FC1վ)m3Ҵ)p@eAgd"}-uBIu?m(D^lʣ \}OO<|<`+IO:)+ xb ]=&٤%Ro%k%H-*RgM;p 5 Dä_{9 omЀ  `ikmGh hq8ݣ8̓g/e\\) 7hle$ rtY|E:aʕ80~⊩ a#(\7 v@;-ȍ6G( Js`3O5T0d1=&m@?@G?/e@'#^9t f| _WБ‚t!GHoJ`OQQxI@˗ byi rUmTK@Iٙ%LhovjrK(<qop?E3A4![ppwW&@ۄ6E-&_M'.N H%[ބ?X >Pd TѦ SF0˿BD℉%t #h2B9(p2 N]&"AR$ ͿjAW6mpS'^E+$HRt„ 1e"?&h.؈ƬcŊ)S &14?T)TRABDŰSUVS6E R $)p).YqCbf>#pTN0`cd)fc5cLVhqa@f4ZƭZvp' '"57wͩH)ΈvJp0S=CUAOi96Lh#CK1'ӈdМ1fYFybНijH%IңFDyW@T ,6K^M9 S\h)W­r."u1 mYf/0̿F ̄1cl`sL @3 %L(z0:Ƅ&d%'*9yYp3I<(#g,<ϼ2;f(=HC2Uor#P4(tQ!mtsۅ>!,["(C| zAэ~T9SF#ҏ'݇I{>] ua䈶+uFZ7Ns!QG4s Åe`#?'豄%~EQ,%Ue$IȨD==n"I6bOSDsvʔD)M1V9-2iH`#duYNHY :  KܢA#Qne[b`[Bo qODhSP_"Latac kҘ4 ""!HK؀&쉈" :.s3qgȢw:F%Q;W]#+vDHdžIsHbV$XrE4fmFcӐT3[:TIH Pd H[K$U(H? I{ꈫ+ ue.C7&`:ח 9Ð[r\C>ʼn6Z6ՕDuSKI U6n'SC ͷx*fI LIdvzN'2W M`3%Eh;S;vnQT:iȿc+z_NOnlVs#T?E$H?sT˜8w=I{ *[qăфNMd8`ʱUP0T,(`WIZDEt\eT{4 0f `(FP TCձ Q4`"4xfQ= Q@Pfd?P ahUPIKژ[mQxhp?8Cv`Qa\՛n?މ#Ǵל`BPHtM-LleQfe٨͇HI!@*I8Cd*n@p~]cըIN]2=CRю G -e: p_5OW! IIԛX[haνמ䓿FDNzܗ|(4ԅ`Q4`Hzm\LE81 HT\DM M2֐MaC `=ФP'p Mc`]L{0 N 6 aRZ\Im!3 $deV_] ? %Z![! {ILbM@VN">U)fAHdځ4#5D xp@d ҏ`oWl@~Z2j,3%W"/<3޳q. [Lwe}_;.'4ʠ_6NJC|LA,?|w2Y58DD=*}UMto DC-E1!$9Y KyNB^EQ4 { {K``X ;A$@ ب&Gt AriNr||h -bHR"YL[oBFv]Cę])a"мБ<^l `&URb,("aNm*(J"$ H--z3fҪj.%U jnoϰo3:#gHn /| ANLP ?Bơ8-¬<@`8f[M'hp FqB_F$DdME81T3g EJ,-,A"{ l%Px,+A0L\(k{dp.ԿCP-@6`@@dC@lC? Lf ;iJ -@k Q0@a(eiSy%w t-[ьYXYֺbW#4D1yKHOj:؈(ʈdn6"!1H)]bn^M$jYl5u3M(siƲ=[3ʪFf𑉙v-niݞ\$+Feolg*o** `OxDAkP$  QBذD|PH |dQQ3Z4FSE() h@CpA cI, lҬ `8/3RF@IӬ 6:qQEiFUqZ$t-\e^]Y)E[EҸk&  ȤV:ȠNa*R0&,m^dn^l)= /_cOjjpp͒(i,2bjFo0[2qV3>ɒtng.N(~,k(='||'38{ģlƫJ*gJxvO6#Z9WtkD vvmV CTu@NԎwKO@~NFh :v\5BIG{B)!GQIJDFkxGB,6  $?`hh8 tpCN,p^WӨp @@ m\8FɌMɤڍ5dmUfaZEu# XjH*й!/gi06߄Djȉn7N~(_𹮬&URi,懪ض擌+oG26m)U6*U.N,5 ' kFn@a7Z78Zww k;y Tȁ].S*63osgDjs̎~QpogGӀ,c[4QBO?{tCΚt @| QLA C $ lxlU.9| I`ÐÐt pM`,D0FqmFW1x%X]ܡ)]XFr3ȵ_XX͖(_^#eHoBjIpѹ cR'ue$rHրv6Rji.Ħjj7ēWo꫞jl6 KNfH`*@wH(gFch6i5;C7hyv/JA5G 4[=cbS0/8Dw: D eOXG3?pED=` @`)LdH!MP1Đ7J !F+L5 W_0a0;pFK 7Hظ X 8`tQ8Ccpʂ)+ԭk%JPbѿ|aC3f,N,Ȓa)ǜIs83IDj1H1=@@ !B &h@E Ir@@%:P@U( A*8䎊*|w?7{!Cÿ #ȯ7Y@{A m&L&80A*5@b@!98`%>W2S""L7`b(j[P`!RW$PjL+ȶRH꟤* :6)'- gm 2歮' *,rC|2-0qh`0 [X&K 2D 'ggFL+-`' *b֕$> A:TTgnN{=THi!` n P@6[m 4Q~OB(р \ÞBo曑$_LnK.I$@#Qlfg0˄,2lx#D&ke,[AT,4L6K6Exdu14Rxm:P4g̎$-=AO Ġ 5@ʐ -C\CGGGtsH֢6r4'.P 5M&Y4N\tW":$8]ΠɼPQ.w+)Q$J($Sc I4ªRJUC%`rgQ ά?Z pV&ElKq4`m)"Y¦ 8i*m2DZA .A C 0"LҀ0L\3hIЕ1ÈF&zH ^5R#QJ踁ѣD <{8TI$r&y|GKg?iO $ JCIL_N'@%tt_URrɆu?ty(b7x(.=!O0S'HXnR,P- M+X-k,N1ЄIjM:%"aTU /$eWІ bP"#L$?,c(AJkb cG`Bk"X9aqQCE vls6hC3HvktS3Κڝ%g/B߆۰GM&C[dAp([ x .'tdVA.o$~\ϒ)Mo{jud]ZQS <K]DxM\: {ʯ< \0gκ?zR@7f%UmHr#(D5U<< "6Xy)F9P*f9)1]*N\5aP+AR$ðea[tBT&dNB 'k֬r. HD&d ٰDC;⯍Pt`;25!qIǒ>C$JNi TyvkNiu\2go4Pks$H N> PV*m$ev ns'y:K{o_Mf# !LVǺMuZR|OMx8|4(Pv>>jPJ' RG ʇL T7dlAlxzW\)"H (EYhpY[.|( T:%-,:B># ~ƀ6ʹ0L*ўNh dV.x^ .$m|,M$~ @^D& m=vƹ.p8X?vi[t z͕ZkBBƖ$p qxoRKF«kkJ' %It_>$yy7+荜gJdIx$u 7*`͌u1KLHP? $%VnA4Mhe&GVN, " b짿DJp.Y OP(6>-`E&l|B3[e\- "鼥,Y*-p8Rh" * 0 i``RC H Ԫ/,/ZC /&_oB KؤQe$iָO&lkl,C EbE H s3:K"t pwBm.i$M<"bKR& dLDEB&ȁn N~$F8"Ѐ $~\"&ʠD Bf7 B8GER* % $(ނ88R$rbn&b%Y([),\F'<^h,^TDY<- P DU 00_خX *I*dam(!  M.Rj؀T/ @RJ̫R=X Jo X՚?0SӸf$ FB?nan1Fxk&EDpUF胹n$F.>T9Nm6?6kpS7W5kM'IG>)<1E $'yMy|evD4|@Y),&2p08n@` t(O@pPD!!&%\,eRBv/y49]Z+@ePn[  J,0Hx-`j$%ȁEn@4%;Ld9 "LF]ƢE''̄be4Ⱥ% eV* (5/ΨTh\KK g.-ƆQGZj~1 `J kIDb9P qoMI/ 5sC&&moMo.5OUmCCxB.CLtXri3=!lwTGj58 PFsGt "WmJxy\td,$O JFב(!u) H' &5|jfJr4 6`d!{cIwB z^@WkkBNB'FUnC{'W)NZ:TC%&\*~4e(, Tcxbˮ] )Jȥʎ€YGg v6 {N6*_ A ph"m#~w4kFJ/_ F$Q-kAtD}t/21$tl6ǘ1QplpƹCqjDsF 7r3GU*J7q P8t9QwJM |4Y|oNF@*uUcA`(v[_J'nv$u `E`LHLz503$LB\8 4J"%R؂['9[S7''%'*E(ƹ(vN*zJ-by(]XY "V˨.]Vȥz. Je`g```J( J _X&:;V B.zx@8؄7fMTqRkC˱vopkD$Appl)Ħ(>8Pڦ{79oNϪkOUT1o97K=GGҺsH@'r|k%vCn {M(4bk Y B(`Y\'vB l8Hy'Τ>E""?PV+ {^ nT&d+<YZV[Xb*`;\f(c -'y"F-,,؃` (:(&jB@gBXۢ-9ػ*  `h؛@r!tSx2tMAxZ@dfbon3K*U2)$MEƸZiw)O8v p k> rڻm6QUكddV'q8ɴW;@K-%ZevB xm'U"s-T*22 6aa΁bAv9L4PS Bj gB$F[b9(4y;v&"·7]ϓ)m<˭~U9v-j'n]`f {fa b[;edx*{eha㾫kҘ#.<:.u@ (7n8!#@DA}͔2EFPxMC#B3X':EFr8rF&ƿ9 (,^ szp„toJ^\$"?= : ZG`pR(BY ;ˍM7x6;s[:!t~ ()ruzƓ 嚮z6 d&gB1V&Z` 3)bb'ҜR( 0)4bX*[(UdsN&ihyd[BbS :};4K £kߣC; ."\=SH܁\?/@#A2QR8S+o^OÍs8ٮElc!7Uc9 (*\?D' !?  ~L~)ߍH& р$Aj8s /0DX < ?l 4W/7by/J.gy` Ӧ/w/|Hu 0I $58!OHEa"d.{,PM 0`C  )Vl[¦M.`wh hfسC П}hG?aA4vz8ѿ‰u `+_  _ 3 S? t@: `" hhbdc0cyPldeAeNBieץW)fR> WA0&B(AsF d'ID詐)A(Crie" deb\,Am.aTh`i5T9eP"R9u mzAYy[To%E,duB?dUnzᅱ7T Ҋ@XZa"_$MML^6QQ(HD]:dYS*j=R9_ [Uo!DUPsʍk5PLrrLw㍧1{i|9űeRI1A-i,-1M=J;h!.vH"hc/h#Yж3έde8RFYfN& ClOdWhZɸd A/YQ_/$' qޮzPD)hA8'ɁBJ˄xDQ"%BnХ2O+ r( 䖭 $PDO9YWg3M@)ժ48K6=(zմ@eL˞89/âg~01&u?@/N)A|)5YPQq~fQq9aRb t5c)uDә;_dz=BTOxݖ-W`lҳi1Uբ֡vj J2BVPQ xt@ଋ dd5GmÑr$-F?2cD$ѕHQl7ˆP'&#yIV[[7"~+5(_"np1)i4.,R~Bq[K%[O]L1wCL[Ѷx/1('Jd!`@VUb!NdGd&7eF5mCW06%t_7 sKBWJ"g 7Cgx3%I.mRhKBvV'Jm9 Y%vYl'Z*RJnb9:DHo;gv QAwKitr(uPA2x#2c3̣y/ QN?زNk!{=c^DzA{ g1mhm—|Z=^M|̂mba'aM S.QP!N'p:aBݷp0Eq*42>%q@S12bRn\p3#!6'rTV![CV+qr' RdZTnƃe6-Bfd㨁7-$f XCjv()I"Jmvga7MHAhu   >hh9C&``@.K䄈vqih~ u=3A*[ S+[CB>I.>r6-U@>ƶlQ>w?>m@{&oئcCr R6\aQQ|U A}aQt1oRDM!<$+-b w1vq7Cq*s3QgUe`g" Bs"EXh\4dN"R"Y#9؎t}#J`Y`gl%Yeu~YJY`gy9!)!)>h?5h9&htb:&'i Z2敕mᔪw0eR]b̳*D1)Ǔ{f20(kRQ"d(R$+yBAk8/W9ES#sk p[b G.GCu"1VMdYӚ&m䍲i A&Ht~YKuY0vڃah&ZhY"Ij98ڪ Qy2$)ZE:UKiKwt\P!/D]f2z00#?:UH{b^2?Pkաj!\)N\BC9=b5{SBE }Q3}#d}ta3D&4125qSHCh@7q)l!$-[n&@rgc]c<[c5drFZ"d¨K(ب-BGYk އ,~zxj>cC:ym-ʑ#aAzy},aQ>iBfX-[Z^Sح)k:aT,) d+C/G ru6sw(G^Fyںi$0%]pۈ.ܛ<%M'2]Zen;< qy5D$@J"r*Q@!7EO6޾NEV"f&*|څ0ix xnN.,TjI]BNd"KkygqN9L9-(,G$jh%dH:,k xo}"ƣFJpWR$cCчj~k i ilNrnmVv4"Y}G(*@۶mK=/"-ÁJ(]wiHʼn9d yWҷK5HiNV|J hG&aQed?Q5~S< ,_* COפ*8Bj҅Pox ךmN#>Ʋ, >,g  Pk?=ؖPȼ(ɐ;mLm aQS{X9a~XOk1+Q! B *dD. .IlO,$D+{OL:٤S'MzTJ?5J?L*U)S4*U+MTD%UU ~t)!]:ӿD 6&hI3B ')\ƌy͗#P4ML21>-.]G!VBرC 0@j$Oy ҙCy5 r!W %.Td_xH//o5 :I0 L B&; =rp L*,/3+;9 Z<1Gl L& =SD REv3@B$6/P+mZ^Uez !::cN&cb򺔉ܣA o"/x@/>/ f$:  +CPϾE59Ei41 8t3E .Ulș ڿӼ*&+Q,uܚL=@O#IJJK21=q*: /10"diI.%-B#ZbA")E3xG-G[rV Vq9I"48"'IN'}K9†15N;7VNK).(_6 fC,lxe) 6gb S?kcf%4ɦM|E(P)l/No}jQwyAQ,*&MF)t' Ǽ&im>|ot:Ё ܄}e-??. G?Zʤ6m $ar4G'94|2ADKCR̺$I U醉@2kOdęqurN\fEUJ–#Avn=l]";HnINb+3%1?L$4 NgVRv.rTTKG  հs?:=TB.p`؀ Jmf3edSxJwg%#N[U"/~%,kyY A+,R j.ݺ:@&a L@0 a%b:h@P*kbp $e&Uq },ɬ#=ЀDL(BUp+)ZJ=Oa=\3bhCX Te1 d^82b*x61vElT5O;#f'augS&0:f\ p9UzMh:N:&4m&h@WZ& RLxCN 9`=эؙZMo7;T(K@U`{~( /yYA1Db{}>?m~J #HkWԢ*85:h&tBC C)1j\4@?[9a B:$a1X2")3-:!/ Mh@03Đ\+ʢ;6j¤O"1 $K AYâ-ҏKʜROS% 9>%X;̼<4ߚ Dl.AԵw>`a+= zdSdӀc2= c=`=ݛ ESP{72řPEsIyRfY 蟻`0;B.( h|!`1 A $H lܱ M*,,@43?DHDG,&+Vh !'9ZZ 1%9>+܏9!#99 <á2 ɪ# JQXQ<)Ƴ@)DJ<)rɣ EAD[˥`.HiC܀S=[.Zck&M;6öO=`E+lt/q0EY[|o2kXp{7pQR8k[ 1 "11Կ8k r @@):2y +a,zIMʳB@D-*"72X (+MjH@xD<3::5:%!4B3HIJ z*;瘎Ԝ9OSEm%6ITBK\ De. &ꢮ DDM3h$U6NԉW'%V l# =ŔRd/e+ "((x#(Њ{sy Ќ0n:8rd#G M "AԽM Jsk? ʓ@TLDSm:Z2XC#Y*":8J$3$dm:(O!¤/M(I*39<I*Lӳ*љ Mx+1Ќ94S2Q=8>)*@ÅxaZ &%w0\6  eD%ғ]R&uE SÔR| {/)ݽ$p"/;EF eBRXr.sF:h>![SdE"CTѿG8!$HZǜ9+2 izPR*ƉP@#!I ɯ0V<POݶ"K*0Ţ4t1I9x\I&$LZɒ:+sI בk1NI:|WIJTC4JY9$ Q[S^[ xb_X=` c;YtIYD6`&Y+mRL۞j/UKK ٟ}홾'>ᄂԷIy e(L( ځiM$ځ3Ek[ QQ"*pBڑP**H\,nCǥU4,BtbO*VݶjZ(FjY !(P%?usgӝZm1جۼp b &v*PM ͢A'&V\U ȡ򠣽«l+q^5cH02P ׷Oݣ\h% :+0Rq ?z"`klIy9ec*IT95\6y/PLG)5aRBԈʞFQĬ 5lfϞѦfmcX`o >wsz V JThKq Cea ^Ixrt HM1H#ѻKyy^T1`gI+%H}u@N]tQw!u§ gUr@vPa 1hvm5!_|WZDqflrA[Qlrok `6HWrĖ $) $Йg Pg&TК7B 4QG.đEs^JDQKs@C50$BH R($['Tt [FEX_^W]FXAײ㛲aP'BV2?oa+֕?n_f*B Tj'Yyaciw7@\ B!_WuWw!UZT"v׹'|eX9@󵌝͝P7g'#2#'([ε$u)Y`B ֓YN9؄g &kYfOnds@4{띷EgI{jTE4QJb9`96=< >0?@MEV5WUE[xga׮æ._2/[0mexPA +D\s7nlof/[[k7pq r@<'aь/q€IM,l:%80Gh8;u30eyhġ;*Qbaht@ fh!~4#44–]+O0 Hb[#10 \#i…-H E^.]|$F3niJ\ڲ L.MuÛ6ma.G8?-ΑFi fK('H-mܣ bI`R =A QR)bA\׺` qM #L, thU?+\ns558eL/ bnxJ?;Sx{J@x\߳vӿgk. k;&4 NV+L0'`N ?Аfe0kC?A,VZx/䨯d4MFC q<. ^iXx0DmFI -[#&h 4hVT[E$oHg1&K1ILsMh[YĦ3ᱫ_[ZH"h[y詮 yˁ $%bn@B)JDHB0 tVa!_XKQe] d/X&B,ZD.|2 #㥕hԧsdfʹrM] ߲i-!309Y?eU20 L[m n@i0 M֌1 l0$MuUkTb-Dh"clXg$Z%%mkc &.wۣ8?&WHlAJ!1m셼@ QO2 %1h LhƩ-%tEa*UoPf@jKHm?MHfXE4P(rK=ۏZ]a$,4Yd.6ͼI!TYQig~_}AhҐ8'(@lI1eM}ٗoݴZ:6*EX:V[I=M;I"Kur`I`+gy +ez*pjh9!C'1 :ؙeFꅁK K8=၏b̆a JRvh˪,c0SbO:QVbohԓ ˾b>['-rbD5FUG ԹAPhgq)|}8P?)RAŬ~gHd0Fe0I1 5]y]%-D%-&㤐9;6R=:-D n DFd*EVjݦ BҡfC'g>ERd!Nk]-Fn,S2Hx3 ]`hcWT>^+L V*mġ: j< P`ekʆhxy!,$m] b.f@g0ǶClኺIGrVgѠM})B In/n uO8#hfMp` D_aá¦đ&-r nš\ōI.q- s.',-H!-DI-I\U`]0UkDܺսNY .@]F-MݱF1γ _n"+|2%ZEJցB(ӂ'WkbLa0Wm@q:TO9%*ZܮpˮI$PLy^V&n5h,x zo+z,&&,gU\>gb~iT uJ쓈_hTgՠg1tUmr0:B܍_#ML\pQ%YA0 Os 3 {. *@$@@3\dZ㉫c% qyބ 6$vnֹ* j1=aa1NꅴV$Ik~n*D墝z.mA%F3=I=pLi=n$eh2n"+^eT>Kp^)2oYk2jbzHbZ˸\5e-o2gE(cng 0Ǣt`8Փ<̬)YYh尟jm"ec6틍IwA`~Kt;"]Kٵޖ'odst(ׯD9]- jJq}2JH`qdnQwz0K*-jtzǫnnDhn*ZNQ˼2!3pOt!@ TD!V;u]WYoWh[b,o`l~5|8|gm ao_h(5UJ4_ZcB,6 \XY_&kX#d#Q6*G`ܜ IMD9ܜ#>|^]yz@26 JӠGkиřC>gdkg}2.GW+"+t$G7 dLĩŋة7B PT~o8iTkKO=1^!뺾Z;"ߝrg8x}{.fUƶr|\o NefX /vh/,݉ Cճ9&)7173haK^phIl*I@͚g cIt@e M1CzDB:o:ݶNz71='DF?$ux3G.ee$I:KӉqEw|:ֺ^vq#A}E #>ɋ.hxS 0r_ ͚4=:hFG'J.aӑ͙j-֭ӗ.xS$Q6 ryKI+H6خo_]u>_!K-I` %/Q@ S?TP@T@鏀 KBλ! k !DgN`L\E!(F[< 8:r#Y!Eo4j(:lj|qt#đ'PZДr$Z*P1*=jJ ʪʱ , 0L|Ծ[ǭ* 1*X@UEV0^o WWay(0k>ΘfO~Z ʶZWXp)8t};7E?$ ݃nw}< /?1|γ< ?٘T(d" r2mpp8Qzvg!jHN B0γ3=IKQFi FЗ3ED!6I לD#" I !) ¹ fq L2YZ94tG1KUׅ}:)X3 :}:D ~TPH$ lJ8Y"ldHf"H3EJCB4! k/lI[T!N#lDE] T m>T_R RĎx!ySaHmO7Qv8Pkq\:HqO뤲-ފI( G5#@fXc/\ً;uV9xT?:\╱\gdrZhg,Ә(k9/ę9c#t6 _WzI >6{:YԧA|@(at TAҘyLu>"pB6b<YE K_ۨDj )Z(J$ 5򧇴4$]s`/A@nuE^D2ъF:.$E aoUɆ 5EGтM:Z*R1XC-R6L4k,Cp$%e23pS\@CȝP'\\$prR𶖠TNpνv_XH B ^'9{Q*Tr^gda[-DfѺyξI/*Km>_)ϯНbB?%T'^zy5ȳ,Ȯ0_' ԠqL̦kĢ/.J`}S124p;!efmrPHڐ%#ޛhcc-Ex6\ pƖ5MGRûdu3џ'vΎaU9}@Ֆ!%8YjvnpB:EbBN6nBVV\5Z 30C~i5N6.Tn]Z8c" B ]>;c_H/ל ? ֔!Ёx-b̋܋bGh&oBMH擄M<Kn JBDfĄxfmI*(D$z$#nfMjl"1HtB:o FiL,T"$pdQʢ (G*D(Srp>pp̪0hoRb-*Q(*/Le1쬮:a6Jy{I9V]p;dҜzg/s0;N;+R0 p >i+HPLqgj&TIB qI$v&r`hڤ(J-]&$U\'ޒ..st/O~ltLI0F-6_q4)b~.K3/(Se 2TK)9,9Q5{nc83i}49qS O ! 938O882ggs39!:NK/biٚJ ' f$ QM mBlJ s",D#to(QFB2hDLZJP"$*0+Ti J2/\cP G-cLpQO2pi12t?W0LO5J+E`+tlEY&it](b2c4m{' NIJvyuh36_v!% VQer3&cQWU8 8{g J‹Sii>ؾM<?eN.1'.T܂v@0BK:b2iwuҤ,wGCAs/Dj*fd㸚"UhY-)Fro/ѡNXL>TqG"@([ \%ے?-Uj/GU_%[C "0eq2/n]Xі=5 jN7:.M}DU1nzg+8SP&"q:8ugw{{!3"Q?6# =Ob$Z%H(0W̔!fUN ~h(B‡$BKdnݨd h*g:@oh*oU D #hFL&PB/g*9/a1u'p91c"'Xl0vbG1wn?Z1 GC;10M/V7VOo@o[W8OR#uV"/u6!aRc2Q9!R:Ra "`S*0EK~;dbi@960Vhpnol AIxMx?A+7jK/qozxn(GrFE8na&! I-)Gg*M8Dh4c62CEɬOsA*f6}f\V'\5UaI V}UW^u%h^W)JEѧA*t t8 N (mg65Qcy'v&Pe SJ\nޙlz*a+rfvyj.Y_7/m-ANXo < Ja@,fSCm}D7x1O>$rL=OQVCB~BALfUM,P)(yJ &`-xj d3&ay'ulLm @+a e8GX @zۦs*vLX!0<"mc9oqqt9J<3B,y:ՁV܎9ɛh5 KnQB6 D2hu;ЬtD\1n5 udEl::Ug<" 3(d9HtYaܦӺyCt3ڈQSI}$Q?ڰctTz=\J2dV摕HR!&KI E*BPW I9S10 T ᷿E$ [*x=P|{izZĄ͙2giZ)6Ak/C ֣Euы)ȦnYbeQZa'4&*|-A]\AEa}G2ηb ,4;bhn|D~)tt Omx\`5lST5&Ȟh2#mL$VOc>T"J-*Cި*=,R벥!lJAS2%,Z;4)X+^ᥡLLdZZ 5 Ԗ%'@#&x![SihiRa:X,6Q6ݠ72Vx) ]Ov!l8l 3^ ySg̴L"<0o+}dIHIjS/j:SoxYt *fޫT4 @>[qʶm#~z{ьJź˱RрtuL(ۅiF#}Fk C$Mi$әXY6jZZi(M)TSh֢~o:SS”<2S V1 C [=qd33eDT7B|Mיp,ʱbf͖lB+t9së@ :OL!F/"+Woo$"CQ0iO˯D0}iT-= i! TR0XQ\a R]/YˋYò'&mtr|a"tE|B!!|ѓ)QLP&@J J7`z1VK)EOѥx3$WP[zUrQf _!1'[w% 3XPgpQR$O] Sc4$%#%mQ's~JJs~ʒ9~J:wK};ꇩK`S4ô@Gi`VIII v&d4蚘bY{1B27w(xC?Peɡ"s YnŠ!V!C**  e2Yqn1: A0Kypѕ*F-U{ZC:n|*げ7A+$v Am[[)g}VH 3UIvz ߛ|6ۑ{@=FBATvk~@7X_y,: |kLVYӪYAFi4(;hhQkmwWAq- Xט"mGʡؠ3fҹ#Q ,*AJ bbܮ q=9#JBQfxR z yo" r W TM:9a C'{ &g"0&*# ?|?bOI5^S<+s}St,Nj@GD[T`~99Y[bU5fqL8l WAzYx1/17nvIUH%*1- ʄ87J@He4P/D8EV9 XUqbBq9w̫\!FQ|/mD"*6m1{(ˑ"NfrTPJGM~ʩVʢJsVTr ^a_#KPKf{cӟiָn no,|4͸Q%, &bC|Qܹ+<>,m 3 !̊bb>Ny G)T岹[uUQ j0##m\ٖk e -|D§zZcrԓTsNJIJFtԪ07)Z݈W nlTatV&ַor>jxwfZ7fE.B!wV:G(HfzI9Js Jڠ8FǰAh) 0nY‡)ZHHѱ[ aMbםAvEg[o b& R };hvzy 2-Ro7>yl$ JIKK񨠜s1tU+GL Yag18(jja6>B2K&b}YFm dtn[{wli]"r5ix ;8$*T"Lv.m[geʐKng. Zn`¢r>*j=lo}Z i瑴03wT5fWTCޓJLʌf4U[;yL \*e)A!6e&/U5 j#IiM6i IXp&L(_dbAicNńKA9eD_N raG 3g&bH"B*S\քzP!QBj E$MF9tęԪEyڕkZ(\yXބ_[X"HHb4|ѠyLB4Ex_ ;&qbǢy̐Db{a3)`B TrY?Kce%7}.gsѥO^'owŏ'_yկg{ϧ_}p@ 4@TpAtA#pB +B 3pC;CCqDK4DSTqE[tEcqFkFsqG{G dJ Ԏ'yC9"3'2ir'r*{:Kl35*˞AJ`(ĎC̨LJHO!m/1 C gM(t*..<4$eRKs's@ Q R a:RyxtX,:^HUՖ4'!dCU،BUQp;-R:S]Ytʽss'O+i=r(5]T;K!OhɀQ6\cUUuy0 'tY6q̨x}KmJYng|㞋9'lyюAdT+;SMfhWC'6&،ޤVg%LΆnA}'NhOxKZ?"QgC5 TW\A@$vE61:,Հ5GKM zRPˁ$st ʉQ"DpLOtxmS .66!W|%doHfEI`EO' O9FG!@ C%"jNV3:0;E18\CKǭE2=xRU,h- /5&-ٷ伦ε iY⺦aXI7EQ=IѨvdaǗyɄfV)o_={d\U{fuImMN`CI׆V鼢ۼuY鹈VU̠r<)5e?w`ډfRH,){QMN7ByYtLPzޜ̪}tVV>OmKj񹍀TTђN;JK5?odXnV̔i~`scb,ubZVqOU讄];?S58iXT8>|EtJIi@eإ5 p^Y^[?Ef]غܕe҄dǜVmHIم_e4%^\6$)ŭ}W̪N%`Eabd>?pE͵X]fXW1'VRKɋis~O^xU]E܍m_cA/8uDg ­ٛuܬlXwoWX\qdZa@ٲaIwfшnħVl`Y<[]ш\~YԖkڎ]X! _PRos:&YK߄MqR[VM{gMћytl7M4vB4ˌeR4ЪG0~B-L@}i|JDڻSCjaWATTTEEEzzzhhhѢș3>/YY?ARQk NNńsA*\ȰÇ#JHŋ3jȱǏ CIGM\ɲ˗0cʜI͛Q!N@} 4(џHӥPF}**իSZՊu׮`'ٳLъU[mسI];-ݻv݋޵](LE Tǐ#KL˘3k̹ϠCMڳ/ϞҸsݸz%DNz^NطṆKN:Q!][=ËgK9)g`w؝@&袌6裐F*餔V*)=O;x* x· >-4酈7rB _~VB0ޠ^(Hftk6; N##s;0Ep(L,I7(;Y΃B}'ʟ\ 𭧟jRPߩo?gW] Q1;EO9C8t=XVhJxRBFdnz̋>(S$!b:u@C&0: sgs"⾄C(O ^'* " RE+z"i?hL#J&7mj5Qx Ǵ IBL"F:򑐌$'IJZ̤&7Nz (GIRL*WJRf땰,gIZ̥.w^ 0IbL2f:̣4IjZ̦6nz 8IrL:v~̧@IЁt@BRЄ:tuCcZ%HF+fhdB R{EWҖ>/]D JS6'?~?i@StGM*PjR2@]B7*J1Ej2֮լѡ*Q 4l-JTBFӉG<_U |Չ^ưb:lcgW$NuB^O L*iLFYڮV^jVuBѰö"cYխqS}#LeŹAl7JU E,a~!ûRK^C蝬ܠv@ogӠWW~ZV`-WAU,n `4xUdzo,\Ѕ~25. {Q.l%Fqe/`]۝ x cw?~,RT͸ȕoh)٠ɎjՈ6c ie[`ך5D"4cFI3+S̓j_ƕEN "u:👪[ĂLu 8(Y4 T( G6tcBx^pOEhEd\S`wնaUmUE֤ ~wkQ Z8vLeE-"?Ƅ-Jv {K.aěniƍI-׶YwO \Bֶ`\8m,f5+eؑ)v4.6 eTP|F/ yT&q[_Z>q CZŢq%t؍Еcw?Ҝ Muͮ1S s3.7SuUR8YWl hF lvY'(6IV8[k1?#s}c='y D܃q-cE?Ҡk:@zeiW@6{${ܰ7!֌e8OR>mGu٢u@xxάw\){WlG&/(Mx $(oDG $otGbsX]K7zEcnz9nnSi o(a{XT\Gbb'yulYHgkًZ~bd()98:M!(BYf_# ☊ərəd8*T sHy* x y9هk)fe'z)^5YI^GB:f靕dTgmV4')&%gZ|*@pVWWq[sǣ32*z:ⷫ>AIf)SIjO١(Yؔ_Ņ:9m؎JYh]9HW8r Y {WHקz@tXJ1f^ }Z_x / -wmMYcȤNrxꔵq~m~kvVpf /ka[82J<[ڳѓTxE1VT(G'JAzҺ$І] ]i?umY@ydypٖJaH'eqF( tj)uys`{^j LZLʔ'O: )ǚ<8ڧQ0 :!:Y 5? 9I< ໞugw-h鼢ٹ JUy\*[|dJa ]i:{ն宀 Yt~{9ǟh!i;јK^GdV;;J)9 gZ";'KښѲX+Л%}6QIN@J'j!멵Fr LܱY{W{ֶ{^[` Epfo媞JЧnyto\o<LjX%G ɕdLdk8sEs@xKSKN۔ͫ* [.KkG2;<= q;J> ˕wEI ܼ 빛~WYY_+c{t]g $x,m;!'=QȔѸLyɰ[(!Iʱx - Ÿ*,<-Ѵ4 5Ä1˿ی;K?PYӄa~A˓Q(@ MLrLW<[,ƑqH\(GyZnpiKy:1{)˟̟ o\k#|s{TlfJ ] P[ѫ)=`0 Å٬\w 9ҵ,Ӓ`I~PMڐqfټ.qҿ(ɨ+L ݹJj{K-\|܄L~8΃؇mc]iofͷzd]Y4w47s̬ R:V ĀPͫZ> }dU2 Ҕ%Pg`w;ٶҚ@AڣڪWMû\ .+싡 <>S-SJr|\]{͝_ۘ䫀ڬ0־\}Z[m a>qiiecݿb6|Jd[tR+U*-=V++1|w.N6~<ᢱ}7juw nMuW-~ۻ}eԺ=lԢkU{FxɍNRx@tj[tuǃ=iN}k\kV,yL] F+ ~*RߊϸÒ «: ^w ڑq3%G[Ȇ~>Vm=JμrJ_Lɍ`B/dPQIZ^}jη>捑Y-xry>;Q늸븝xnq̃f{=zf.1]OX/ڎ- "-]= ~a<6mqEJ 91ōA_ELm忿wZO|qޅ ^lڌEAsV ٰ{_F}.QN AX=J~#E1O@II+aI 9\8PbB'(Q#CRR $)Q-`)Qſ0ijM"t9ӥHETѤFH i$ZۿZm۵+W[XTr6kųi)q6[ktO@n{TٺX $8pKL vTEѣNEE4wXs4bt5W.jg˘W֐Ѷ^HZ#lō[$1yJ8D 2u%2~ORŽ)L)}8]N@"R&L* ̪jҢB Ѣ럾뭼k q-`;8a;1"?̲%`"-Gt[bz8[dۚȻN.*9DӲ%HL1+9μ*R<."$ɒSS I'|qW^ɊTȏ*ʤ2 Wj(1j P* RR䐯K.C>Pÿ".\R T@-0J`lҗ)4nD5!3nZ%>7S7zJ'K\b1an0򺀫|h_r;%#O=g1Ot)qGA4*cSJNb)BPUY %ZmUk26V uhD9HYek1X[BpT\j\QYMJa~ԩ^Jz>V SP dh! L-/L 7U.׼b_Ū랕*l# zʌEƱ d>iDB$o⛹t#o; >I#)Ћ^Mꅔ^} _ Bs(a b2) @ Lb!yׁ;]ғtт"I,Ȓ$Vvq*)j zjF:Lh?zKGC?f!V٪~NUVY D5BEhU&Z<GF x5–Hm0oJ&L$I5za1a Y::f6uX$j 7[M4a.!1<$+bKX.d h<+?)(=lu Z籲Sէ eljRTk,ܦT[SZ*,<" 8 -AkK]vtFrBʫ՗TWrb- {le+fِQ5QP xYyl%&U 1JOX5蕞k$343_qo}ە &Ê8+Ag[/,1jZƬKXZC[Y' ƿv1gNjNJO^Z NO\ct{=<^/G]xcWݎEXT{6A=w;FImB=-0]}.\vO H&sQ hD@f2^%]le#T .00f1ЗY 腶%ցg0dY)KZKik(&wj8 {N2t y[߰C 'oGz;Sİkcc+AYc?[hNH43nok; *:7ip÷m;;;k#Z3(A3a/{{,285?AC=-*19܃!H;!!aU3+~ރB"α }q/&d!D1:"CA73=ASj48zeђ#J(d%X#BH<<ÓDPa(DM(;(&A?|X$X<6c3k;NjGIs-B$%G'm0l>ݫ*} 8D'td]eMdD?XPS=%AS6S:]DlJ;@Ûδ;} @-b򬁣QF5H<'P9TUՐOsUD<ûEI6N N<5`=N8S| ME?7 1<7 1Rqt$^[ :o\]*}Wńʼ\ô$%XmB +m̿uBuÊMִU9%Y [;NӕeD@ND^ԁԁ^YIO7ݒkTtBUOemOU_dZ}ޱ%\FTP6-Sb~A$: [M[ٹݶ쾶2S7lYm4+l\pE]~!-)Z!$}22L*$'u'e1\m\2ѺljJLVKۊ:MX:%cU[5%Tc@P@eԪδML-=\ߝZU)]-T$UNߣN6}KUZIcUN%YY6KP:e 7.ֻ,BnQVm΍Qqpk!O3LwGnvG\ʥa.xLuu$5IXh%՜/Ay$~b( 'ƊFɪ-aF.6h11N`F`^8DNc;;|ޑcAY^E$R^ڐI6USeET܊uOi U5$OcߪަESVUc6kj[j([S7e7e=c،CM6%Qfl`8lzApWNKpLmL\s܊lQ/)G+TCL͙gCba'=*EaR%9ftC5kഽee݅mt`9ܞc6;?c㪽6ᖈEϷۭ|@TϝNdd& e>eSϞޒޑTEoc^U^~m[h^Sݍh5j^?nA7 f0m fV~pn%azp:h:& ҝeGn&g7vn."dlE~9WQQHX (R{-M g]0]'8X?S?HP-`<.NomM5/5Gl6^<9FNT-H K~ߦN6j5.et팞N3h7Phf\<keF/Ֆ+?VѲvp}pִf]^K%G 'F0,eo f-q@qwW&QGn^y&3 Q#lrq2@vv}fζdkp]\`V7x^;.QmQo3?ަ]<7xs9Oe^C^Bod.e oi@F臨_`NNzvzȇGu+CUo.[a~_aKFaLѵk&]F'vi'k}M qqO̮{V"dCtVnƵcۂ77}W?ӂOVoA- sw~{]߰:#<ns&dFkufju֚eYda b ԘA Ӊ ,آ`uK/#AFuԒ\=δ֏AR=-d$MM-TQGҤNMJ)TPqO\dOYeRW|eՕY&Xo-Y(ɄW]BKաbE9Wd6ԑA~jh!&Fd Y֚q Y"xZ6yJnlVs|)toZg+꺔y&r5zۛzΪ뀪*`o kFXf>*:iv6ZbAnbXQF!utDԑH&[oY+% JC,GC'<LBO\P\B'd$=r&[iհY /oiB,F,uKE!証5ai{g`5ըm}; gڶm۱sA?w+u\ {ĭq+`smz-塊*f3~R[v"{(C/6ovֻRC=B7$B6Id؜S$G)Dd#TR|&U&EfZ_8M;+t/BdLGG!šGMmZHO1lRgR)L9>%1XP'UJh$pʊA(g)Y EXk SDs.]sT Ү(2&&hIȿ7{ F&u \>Ib3?D!<Vk)a=cQy4EK~bED+(KO$ɲ&| w#4!m1]lQEJ.DMQ*GW5NC^ݷB%Dxme[Vl8. NFH(Do3 ¼qg$l5fMih|L-kYzѪZ^/38Dbv5F.)CL&.Ptb-_?Qݠ % fӉiwq7b=xp5=Q!#J'HP)G^W8bEIr ix A7q0)ʐ^jӐDRT&)u3N\ٹD m&4JMp*, Un(]͸8,R 7& ^zj2i6{v-*P2àQD~ItrFTG2$9$yAQRR%q zǠGJ3!YS/, Ě8ĄxKR[:xf YaȦAʂ(HWlc [^hrPHƕ3h*Y^3>9Af*dXBĕq؟;-ʄ&׷P&U*U0 e~+D"33rJfC25eju' {aYϕsUBZlBTx!K o+~aخ#$i^:eAxۮfe9A S֪ܠpJ442: wnh a7F8&q<ȣ ߒ{&e/JN(IENeXz{eCM */ jF&Y͖:E׀>곮:^[:WMO> s:6 {bO({-\몳F4JȒ ٶS ܥQ;Py?蟖mh I|!3A~7Z+C1xRWKUJPjZܞ:. !=C|E/kW5Ηl(J4~?VZz#]?zbZj玬빂Z[Y3*v{S _g]d]6,=2X_\UҘ\YCY|!?0 jI^]^Fq7<  JSH4AEϒLvuW%őޘ^T z_  !UdU_\M0m~A0\%D biֱ)"!LxD_A8 Z2" ?,A.>a+B`F_Xb6  2 23  dԽl#Fy#7FYFيГLrImIޠFc.D1xtP (|M\8^a_Rk^) Gmʥ[]CgC'g0#Θr`,"hXTTFg.&]*^Jb)nRƤwbx~|'&O y2NߢJ_]M"_givB.bGVN"h0&NhfC^\eerm0f-+C-X8(M8bbjc>:.EdP;l&qyr?jB)A(Jm4 ⍂6#M譶X⪬,!I6'VJ'U`ILjgvn]2lV\bC2vbPdFP$&V},$?P**.E†eX]4'`A-hc-@Yef6d-(>ٮ+>~Bgrsz MH d)dN|(:L?AA]%%C36h.n(,p2^08-JF&NDBl+.N쪺IRH"]2a2C202 o*MJy,&'MU/$|:ab,xp]f)Vi(JE'FNe:BhC骠k04Zj.2^]-d_.j.Z=:!xNX!pOb[R⦨@:&0+0L.0xv" +*DΘo/o0" B/io,"30C"lvollqʶBHo2dMq2A,tBsGlxZJr,xaR1.J!D,'!+*&1袲-(+Ն؊زHQīBܠ8.)(w]Lmc*)}n5WB6B@6k6ց0^-70hC(6rs $[%7-s'o2.2h1B 33B7tC,w1FbgOG+1I?1A4Zj{t&ԩʺN1~DDl.CnC(w`B@`Zr'3@,'D0.(dz4p20)$kmBk $wȨ8rC5ˑBg:Ra$63k&0sT@?+b6/*nnA^639 $:[n-6Qr)CMTwRoUrUmS5%GBbN*DQqG'wsl=q$?ALN4uwLyK$Kk R8qױNQ+7C14%,oS1wmAvVl/.W.G1m6vTKN4CC45x2 OE!gNIN˱~ñ:2wxLB JgIO{sGwQKy7ExzmoBk`r6x5x;-7N y#47:έ-ShY3Cs))^b36ǽ+^6 0׻Z[n:vZyok#$9su0>'|z8E˹ClB{?7wPOt?ȿ!O"J$hwj7~㱥uqtR[{f/MPk<9J|:ڧ}lNDĿzm?mwVsVVNr5+YB+2i0pxıڪmqqvfxsIx EO)@]SR&fA±B7+烸BuMv/D7xGlz3ok};y2qO7POt{OB~wKoLB)LwDw۹z Z b,&pcw'H/}O.ەS|g@:,ءHN+!Da&fbrHÊLAG.nz &\P*Rh,!Ji,hr+LN*7lpvsNfgA-*OMvmGKF7M=McSˢOB(BNuUW$ 34vе^c=CF"+U2V@TC k"եoAY%iQƛjǞ5}<ֵ^rEHrD[t-`룈\%b>$Gb6P %$Q63j+V @53b eb{Qխ<ن󍢠m"9VUZ%´ b}m0ŔPe" O?[CLܢ:4[S8! Almو[pK-_s%'';4'X!d2 %/ڒ,p L]\AXLWL-kA(QÇ k̓e=/i\@ QPJr;jSUe"b#*W 9BZE}չ𩭕JVqC65Mn Գ$(|Fp 5 19ȧ!C$9٪XDtCCבR 9]vx^4aKvwh*OD+q cHC.oY,L֊7 EAxF1>( ;CVV81|bcWA~HiC+:85`0u@Rb&3AX>>c} {neS)i> ʲZ̘tf5馓otެҕEՍ+TQRLP /K^ng} 02$C#^!n"^u9:2-I*ы35A^Y K"OYWh"%UtQ<!+0WV $ 3 Ru3IrZt5GWÙT١qk&ae.s=Ӣha&&kGک5bsQv[Sbnկ5pG+IB unK,o'drI= 7H4-ۄ@.{) E3&>-RK^i,c{Q)CjS`^KAU-KC8#AZԯ $QE֐p#7* B1ff efdxW%-%][ϴ8kV")5Rw %z[@zVNEfɑ4pD/-MdV\]R-~z7tXCWHfE_Üݥt/݊Yz`쫖邮m.a֨.Z|ldFfCto7Bp BppATP"MX.\JCnjE_Tbvb|b^I8%_%J,I,όH+!JV!Ro0F$,ZT9.!T,@l6t՜L7D.[fag7o+(Ql8C@Qg;`U6a~ 7Z9N.F$V.lO"nА=̎$L‚ l ["*.ttv'xu#d @4].SpRpz4J%J~@ =̮͜1/֒/n%Yj%0h J!vrUJe/)Wq3"6a)U)Qqv+u`"!Z[i7Pj'CvhA]Rvco9N7 Ȭ⦑#J$qN@̮N6 3"hn_ (]h"nb' /(HfB 5 |g F+$,H[L-3"UpTZNa® S 0Ri*QT-Wb'Q?)@4)[)**CM1m$b+++wR8!DaAB(Q-}?q辯Ȥ)i/c#x !;$S$!HCr;ArT2S؜3{ߒ3Rc`Ű;( /~LWs6( )&rHxNg pp6LHU0 So9ʦ :3Q P;"ʬHi$/cp85ήBuTK >37pU]:Nt'YtQ)1kt[1X=qѤA!GQBB-4!PB)t+9"[y|a\}!D%*+/[y][^^U 4t`U`5_^)b("TSH/~O옔+S5r0lߴPK*\d0~D8eF*bFr4q_ΨN猸$#'#TOg\!pK u9SJ9ۮ̴s"5J?1G04!S"a9Uk9U9l3n&[UN&/aqUouq 榲X XAFGFYZ5,/",rUs5[)\tIWP\Kwu]u]|utGW\vg\!U%b`Vv_w``6,3WyC'nA71)b+s:2-i=V c$,g'Ts55IMgbEr y(b,,bEtOP 5JJ5Q56|N =$-{1IR%nc"f.(qxX4QX*wZ!qAuptA=B%+#sZ/wsCJtCwuXոvS78\k7!|A~\\xvu8_x`9,Z Z xk'kUV6lT"(2P˱|d{79b mFrNuXGpSrNx8E0Go"!i[#9jIH{HW³F<ɖYG8MUKnYXeX%^!N*XUk؈8e%Y7+YY+Z5ZU <"xkwXtŵ\'\I옣\9:7/^]u]`UqtG1YI^WY?+yG8<6ksJ-s8vج̘ؼ4(2ekBPl~ +&øg-"Ԁ@G/S9McYӂJ'.YS1{:l6l vkRb5icwZ}}-QNj^(H%&7Ii%1(pa|Zްt =6QήGr쎴Z$HH4:U"|چ;mVc".["r:?(}شKň8Y,ZscZ5rYZ8"\\_u_7Oai[Zy_FqC}ҝqm|C8SzHi1G {[:ӭ3 2}b$~U"hvM wN3Z\Co,"h#z ɷi_{.g|3JIU&R{}"ϫs"]C)pR"yIY8xBɓWx;($Ԥ5%9C3a\s5]Yչiz7A*k']էZE\Iɛ"RbB[R}P#r3.b ( +]Hd"j*tl+U)"4Y TVИX9-Z7ٓE|91=ۃ;8>Sũ^ YWx-;.y-놥ڇܞi#"bY|ɷ̏w_`\v<|y]m[^ܥ5Aaq ~ڍW~_8mۻSOą#l1~c+_J.jvhӋTGutP+mHű1fbj.A O2uJ0{*\+3ˮ'zi>o;bS64hB>l0bA VpE>R:r'?^Rx4WʕF?_ҺS!^Nȋ`H.6TCVܔQ!BL-*붬z90'A=z%Aȶ={-۴s`*w/* {Va[\X*[V W̊tGE3p1?3gMZݳe:9SM<9݊SQ3{bYabV gO,Fɏ?Y*Êj_S_+X^q ?gVYՊ R7P)YM8aWrERU;bt?JUC }EQԑK%SPAIDS#SJ.D3-NMIBn:"/%TPl(TOTPRYIxٕ ^Ztm*f[I\jUq %\_ɷaE({G\1YF"qf] )p! [orkO"d HLYˁrWl".WG|CǴB^)xQ[E1{ʧ|6ߟ`\]λ[PYEHh\MXD^bh#TI$V8$5?Ȉ1O#1J hc*1ǰrr= SLGD3MH ;H+KB4NR"Of)|ȇ ]%BVY/VE _U\e6AޛZ6}ƝXftkBH{AqvfJfng^4ڨ6l[lVzooizh)UQXL[eɼlCMNMIt}I(N XvfKR \?~TKHb&ĐPS?TCS9 U"F9cej#&'3h h$RˀPBAP|pi5d)0!KCՎh$&j& A>' $LX&DAA5ĉ_כЂ yEmhŌ@=tDb9R,5c ES- iME)F.tթzRF!}("Ÿ,rӒmcR%H_Hw Qi.A,=^j&"HlfaC wO!7)~DQ (#H!|cAhг9Io !;N7{^b,$H ّ@Vh9я!%IaҐF#T7X#ć32IIҔ[J DS^$EF)Q"lH"e,p?RY2<3CWqc=q!6#NiYNQ›&؆T$];HBRؓBD]*"HC2ԑ$5R7ދXSVc Be1A!Y;C$BVHmPt΂$; "P?P(DgJ]w\Vu!7yފM/yˋ܀GDirןͯٱc/NYˑ@$HiH:x$$CZCȐ$*g&S!rE]0O)iz%ȼ"8)*y4A6zt1p*Wq.6-e*sbk8$;8}jSAb*A92%I^~`KjR@w}%{%v8/ MpTv.<A6] 6bIiIk  ?8hi6Pcjxi& lvJ!1| J⇮(D `5KL'F.B~AcuM,\JN$;Z}-g2)f,O.tk"9!bi<#FbqH,05K*DT.o ]*B1WdTbO\2Y( Ejpj׳g[1gVXz\C =X_h: Tv|Ζ %^",<(yXꭈr%Պ YAȔv:=) ['1!'+boW/q%h" i%Y5O41UDa"TIP7*&1j>cjVNasDϏ@KtVd*?b9\,t;SfAKRA'b !bI"#vhP&vP5hހPgi_jU%v$RU1!^t_߰RRRsG)@ $ w/PHNU%&7A ^qSSq@nWx;39[[锅CqNB&`n&{z^{h{S ^ÈW惄4 ^ V!FYLTQ1&Yn0oϗbJWZy\@cVo]PW~e.~QVۡVgVhK9 lqT1)Wb!1Xo= sSa 4wUJFLKHYCK SZH?ENgA&^FPdjUj!^Đ$%R EjODjđ@}!Yz !`O(91uǃTje_.$vD Lq YZUyKe.)ZZm>NeribMPdUX]pcht(`W +OršKAK*٬BZnVbo5 vJ o *좌਌  dԬJba3x6f.Q/G<"& Z b#o)h *۳9@1rƮ=I.b z/ 4 , 9\@,FŁpgFk M kk,(2!F[Ԩ낞b2EL] <Ŗ-hM2)Ӣ/BN-W(!> .R >J?ϓD#]ERB$M =@AjQA|/7Amԣ=he\E6My(J֧td*hf28 Dt  @)t@n0~#ـAisq| 5FH 8DA!ަ#3TX!h*"NB/;$F9}$oؒ P"ƈR8m2R)a х.pi*>?,1DLsOOaQlܜ=͎OQxObL/p#8A eZd%&)P܊1 W`sÒx3[7\u2 rk2tKFGOZ3FZD*=QkPWp/a*!4"S"p*N}1!^8X?zЃ1bNW%׵1Oխ>-x]a ,xM::ڥ=2 #{"$pI⠠0-; /I$w0ƒ@)ѷA.L.))GAF8*P@DD ):8#48.A$"(Z"![9P␪=Cȹ "0*/-Q&e9$ -V(0ٜ(;hzkZX( 'B&35e8SBGzb*J*P * pZP;`ȅ` Q=ER8"*Y :A3Ϋ/5hƺQZyil\0 /G^@_ l@A##*H>r7?Ѷʂ08msd0*v|GZ8ٻtp) ,@KI ; Y$.9$JÂH"2W]38&1!fbޜ`8 9MKaML& [;;q݂K435І`ІA+ BaԒXmmІ:ر!$E= RS%f؅?Sk:2ɫ֋FEI0 `cS(śāD{D(K36Bd4BX[P>@ +Q!mѬs7a؁@far`66leRj44MIje@7UԺ4GuܾPPsa;E8pȎ)+@ ]Z@B}ĄBHjƄufGGQR9].NƵ=AOQqP`D3D"`8J4*$9]ȉ%3y`iBy-CX܂i22;nmM``Fᮯ,+<);12N4f `xD,)){İf@#NtVclt-Nɬ:SU\I4dJd>fEeHH[ZH^ӠbJeQ^v,P$ -NYmXV0-iFJTsp("Ȁ998QG[@N2hpʃsI;Kӂ>z80d/PT bL(Nڣ=C-G}J # yB.h*.#ȣL*£VM$a\a탵SZB6Se-ֲRHD* j.sV`h&cb Izaj ^i* Eۦ<ICqP;/u"t/p˳(3&C :(/LSJ?ڴP+:*!s;eҏI\i5R6ԕ? daXSmi&w?_&.8̉cI*TS@eJrS}07e~73c\3Bhh.9hQ''('p+((+-xy-8yG1TUڅKD LZ[bhLZ/,r8`%wX CF B2p4A{b4asW%`V;&zkgXE^e"*C(eZ֩`P-|ttR'W>h(;Mp{tKwg<͛'(!"Xvm SK$'7 O6.'Zہ[LA?1%1WS Dj:T"Ao4ƽ0Ņ zXa OK P#ٯґ\/pȐ(dod X% "IaC(@G  G)& `H}@Yl )p%2lx-䈆7| gCG+ Ipg$Q'N6)(@Ї pق-F`PÂ%!AsSfԡv0@;m$d!&`04 !Ά; g?+2~RDк#0V*'NA={̣j)YڇUhZ*z^ UL*d`ba8`:6«^ UE%a   *Tli(9`),Z QX?FU5tZe 鬪Ze(T NWy(9l/}fؐC#(jG! { _68ecgX(ۮd"DZ9 R@U=ɷa|Ui&Mٯ/ZU\ۆHf|؄N U6Lc`;f \|]=# XR,~u@d W!2܂d#="}f.U 4bTc"!d&;@fd (0DZ;&$D8)hC!E҉h#H퀑֝ArvSZpzYe L%*ihUv͔UE lXr Zj>E8bpnq Qo5j4{Y1&ԐLd7 =A*RUy\BUrM9*Ħ0GsDW-LJUjyE)&At l#?XKŠb??qP? Ր޼2Dl0z 3@A*2C  G-/Ѳ 5\ jL4Ɏ 8$J& M8 6rFyгP2C%.sgE…SAfAf$(ֹS}MAp8`BZd1c7kpul#H+7.$#UI&5jIѪad,k2Zuae:ЬajI3ݧu&|Ot $D GADX1@m#OS@0&aVJw6RӁaUb?̟j;`*T9&|e} a,mJV9`#UXm22_CtB"C}U1q2A &U V?qZ͒ mtT@ä NՇ`r)?(WLmI 5$(%N($= # ?he _X.Du LHDŽՕB `1/!6 aK06ԁmT ̯ɜLE.5OxNDuȱ!A)ĆB5ሁ@S<B(TNM(%"o((icɇ(<ј#7V 9 P8 Nq@ nL^#AlY0Mai((cND^ݡm@?)؄)JLeY\,u[ 9N` -lE_pBAiSɏ&RVBNt@`'B\T^Ё@R&eSSR`d?tYP!*\e%*BJf J0AN2Do%MH$cNBH ^d2)pbA!)OOl@(GC()K.$bx,d]sTI\De pb袛Ɂɕ0 v dhWQ.`|O9.~NtH-9@C@_fh12?=(-z?D9d}9h2=MT0JtBHu7ͤXU\hUt|#Gdo^GCOPSD[H$H\'^5 P$EOuTE *u2Z bBdKsNN4^L'`TR UC[CbX%A54?d@4eB'_C'eT*i PSTvP Pu V@$9fe+M}(p d oM)܅r] 4fg"A24K R0NDi5YKa@&Rxp(D<" DֵLa4DL@tbn"<ȗtÖx XINxZEl9qA뷒XlFQ1(h]a-XhڒY(RaNPUOWt`!ʽ|Iz'mCz\1\Xa lK(NE,-<+1Ϝ0iI&DB"!2|*hçک1p(MȂMJs`N*dM9e!`,a^ `QrXHU"\?AZ"XUJX~***W:B) PD4\^d%W%ȁ1BC}DeG|ɗN}RR#!o(n Xޅf0_kmfA~\4N؝kX0C+9O |Tf.؊*,4PP Ef[F hɁpӒ @D(lȒtl؂8ylkl-lğ5}j/ȃ̸Mmz P˰$9h4sGxa6&Pռ>U`TբI^yBZS{91YE}?n,e[)jUQ PPhh;ДsadMhCM ͣehtTѽ%I|=G ;neJM($\+hkOP U*g uTѡO UNdZhT \VCsØcMz*U6@GNR24^3@hl8?'C\hRUjK]Hi^FQ B;gr M9(s_Jʫ9UGHF dښό0Ǻt q8!85"H$O D$,z7"sD$sDN [,1돥0YeTTj*xjP3:I.RjPHeOHQGFA RBDQ"H Sb)ܰ 8cy6k!2h8C锠[(lV蟎XDGuđZ>QI}OEGؾz򔯚U^ם#F#Mԭ|*+~W#J> *Q,p"`\Twh=6hɌ42cD <1- ӂPMjsh6G@&e@F5isM@l7e [ͤH5S84ʏS/;U:n :8v%SuIs"r13Ja%!;5Ҙ K,)ϱi%p[|d‰tA%[R&RvH'YKx,)4;YSN7 z5-C5jeO5@FAT" P:'Kba#bb4jz5nLLd7k]bMź*#t&L 7 @-HbHT[)VdRC 8HPa(G4BQ |G /POR,L*q) qYb>72 618!JBfyę4Q#2f8"DHE+A*[[:kn7$4IRl91 iFHjDFlj#` ^"%J1t,#\AC]q"b<0W%*cD 1+I?F2r0HՎ;-DADLaI舉3y: Ёzm((RbQ3_E: ’4l\w惇ȴ$Y9YC,` kƦM! gaѫמ!}B2Lyը@XU <-:щt (C֜БԪTJjMę~U3e()@XL^ hd(C!T tDX.V|zV)`]/ H˓(M2fMnkЄB /9Kh),[BJ7AA0$M VLM֐NwFJkzckjRlr[N:]O`n󄑦D%9NB9YH9 EȱP"pPRIa(0t:nKRڒl@-Fta/B` SM$L4h誩A^( jՠ\sPLqJp5w1jR`j@++o gxzD"Qlq4ZE"Y!? Ji6o}Uv-9YS 5XXl$O2"-4S #3[̦6;+}IRd1;~4R4+9H'SZ>3/ѮU''0 FHB"#ZXnp%l`'U$YSi::ik2R飵d9X3Ղ < xbr_(ui.ġ+CB [A1d=:W#*䲱rnF%rr" @Ly= 2ppXx z,T?BjA {ޗ k DJ/(Fhe)97iHY7+#sy(kȰf=dvҖte~ o/Țr6GO>K.s+`';7N|΄b եHʐ2'Y~35k:J L|Umtf!M#&/'fi(I߾YZ. J6z~d3*VͧLRByXՄZ&Z B ,,"IJdqpwlC8**D.(FF3C$;.AL)8E '! rak!HcLB٬ AjStp1*"yx,a`M MȊLWpVc:EW]Ncj:Fh '&H(gtXXüphJȊ̫QҮ6ܬB.t*`r kf~j3$h](Fb|H)$ƥejpz=HJ@nm:[N,ncf~lLiJΔ|hv9 pPyRZx.')GdFz\j"'"٦`F%UXk\Q#b/D*9;@\m֡H ȀRe2RhH81ɌD1άa4BROgK;hFڥ/&T@FHHEʮMUŔJc5Bl(9(f, C ~SCr'#[b#3.'m4MD8C#à0P#lIft3JfKw :Xs;|ƭd&t (=:V$2L8l6mj`N(9sHV&#e0!\ly <+<>`5NTQ#n"v6'`c!dA.@$@C!BJAkƧ:\%B^M C!8P#L"O:Z9X ZXDd$y` /A @`EZd˽> VLdoL.ޤE8DpĿwß+E+4<#VoԵof+A$:p~)@Df$:Z@TlQkOȖC C>PDP G*H7늀 -sWbn@>\5J rL2MoSJr o6uI$fxQX`nYdDE#LE҈Xd#@m/'蓡  N 9dyt$V,Y:;mR`+``GDsa a 6 ^F6c%v cAc;V#8da?̈QFeH.d[BcW gEdbT28D,FԦhMnfĘf!d'(F ( ,""C Œ4Uf@4J3#y@&s2 h )t$LR6F"I"$Aԑ?u+8\"U GvJL1Gc VDHlqQYQCL$pBBH#V$"lv3L (8 ZYB" pMy\;'t$"JG0(1H ;QV`D9V#d]s]5oFknFv3/ gXOX#xN"Ab:5$Va`Xک5B}9V#D9cEVNv΀Zg"2 i=V f^VfX.r nt<|lntF~vk$ "L\5BK'i 0Kߚ+2Jf3z1ΣPL6!y?sTE3Rr;`镝Try(% d AᏍyQA|LSp-pm ;x7%/ND#n)%Z0Ҡ$M$Vr"H'¶RyD2) [ peVeQ($N grGQ :>#v95\ܤS|jCZU=Vڨwa 'ɝNܩ{cڇGvOZ{Ej~Sffͽqܧ9*jcE pϷb+,CI3/7s &hH ~eyYހFm w&]z􂎣f| Fr.(Pg.a%Bqv$;$`J#D$e+d"d!Ta s!Rqlʼnc'B)BSDA4/ ZLl_OjJe9%N!थUߠ2'@7$r\MYh½f wqx/dN%Z9j-N`O؅O \ev)JɐQ \~|]8ɕɡ|ɕ:˱$rz*υ Boz!!t2'(6gW؅&fVa`Nc2z#@׵ Gz_$k!RX#-sla4b& ) WKt!P&HZ6JՕS>'l{Jtu瀓W +$_9$ 7q0ȱc-lQEkrlHƜ@Npc2`(G:&M:s#Zl ٿ[!tׯt K?heX+t?@{u=Ǎz;h Y=7r_(WBeu'Xd5iF -Zl0_ Amߜ G wZK^|rDG|~׸FIU(F#tPHj@\nӽFT F9O5ՠU'd *OtuZ:ŕAE}WG<`afcqXZPFe?s&eeiA#jx` l[P j57\sAmhZ;[Ψ !ƥAw s%!!}~OgnbLx҃(8&s"tn "sKX9Y91#`M *k$@A?@쀈XrJ0C2YLDkZH2CDPA<)Ï'pnQs馞'P25 E ")8p @x  cGTW8xM>S4P eBTlbjWOAaeqeB: Q:`6JN:)!9CC ^=r$-Xz #0d4+`< l|@ Pk'0`F 1a@*(IxG}1h8&FRL/v"p3De6Yr ڌfq~F4Yj1S 5_Cꀦq34P34P6TnMzZJUMnD@Z'3--6E5Bo8mNnjS-:T`G=FpG dgW%i?HUj>*O84L(0lq-,isAG;iE#Y 2l'X֑hv/yɻ[nyq`ფ$֊a ..sZbU I1J\#P( w#KX5Ƒ@j#}..>&(F/kb`Pj 3M0; /BҾ+-+B3u2YLmH~"esp @PQ܂A\ @hOí6+Ĺ9`7sL,hEA"ƥ]i:#ֶAZ]2يX{CڭBAP2? ]Mx̃M瑅 UHMZhO}H7-^rԩ)H.]mJa#:[#6Т UC7А!:~|9z>$$! d`[KBa̐B31xyn`޳7*HyȍdD 3H-z#|ғ{!EavRܷ0Rm. iƂ[ -n܂52=wOڬqqMEjXFW(oE+!#pR3A(Is!-HȘ;>n(?KRX?,E?h1귿{I` *I#O's<\\8{d 0*6D] <2RA|`ӄ@,v۶a8.aAoXap/8\r+p˥Hq[B|\tFt$1|DR|dsq2~q^D3&"=#C2?CKb(Tsb``R ؀<4x &4Ra|@)`7 9$YF)}17v7ZIe HVOfmdD,CQns Sn Qb]$#O;>*Z"; G u`yMhfhVUU'lTW'ynhu{sS7z!iD F ʸAb$@w6-'AcAl |-`dOvQ)RWRSO Q Dkatedi)l Q>ls&*`<EYA|#f(:2=,#DA2lZT0.UxE1S(pHFuFְ <I*GHi]*t"GkG ;'0n6.ϕ&*4_30N0F@BLEK6-05HXsL6b Ǡ6isD_aIa}6e׈fk,4h) < k_'|ml A`rYBSk/KP4RC3!\V qΰkӑ pGŪ')hhH XA5eSVc7HU Uڳ9"<ړNP&rʼ;-j,`Qc` }XD<̳(m@DVe9r},""KDH" b 1L`DgyVh~NysuSS5hi#]5=P=%(īR+V|/s F":W &t%E27@:$:#[(ejfRl 0<,mۧv%ecDq[o1TKHD\}L8AoG!G#[ F , /xD%i~ CQ3.w1`;93Qr{]32a ΀ q ӑk`R̹`dfa3fc hZB\ƾmYd"|g4T*aIS--S#1cW!s0Y% :EQ I"Y0esfS$ T1hAbT`  <ƒ&)ˮګ̜V =R:AЭ퓫)g qttKњk<](۶#ꬾ VݓCoϢ.bVA.F 2%~ q=al?V"/ap %I po c<xF2#X+M0[QXᢌу>>WڛB)DWW@іPcLZ=i\MZ` Km@A DNl|aZYˮTL`=cSZ*TYblHf2 AO ҸUyW:Hcғ P ڀGyM%g?O(v2j79 (==9'tsSb ם%=m((VAI*F1dRCVL؅)=>mS<h5kuLp| AR$̓8h&v2$Ѽ5II#F@?o>j L;\C!0%2., Iķ$1!MW-&3PN]H>Ŕ(Ywf5sN = -Brgaxl9qr(cnk p%RU8|M3u@hf _IvDx:&!eQ"rSgTPp"_z;h!l=PDd=q$<=pg $)D&A7&)fWсhV eSbn qm@h2 nLZo-f 6@L =Z̑R*G09?Llĉտ7i @߃ c_PA tTTZ!]mV`` UπjڼS-N9:Y*TP! SMr&d1/w-q2'Oxha xZxrF3gA|"E!6|9&c?O ,)2$ozAQPP 鈤,4.YC +8DZ܎wT$K$ hTGXj&ph݄{\#&1dRl7 sp KPP6-QI$x`fC@׃ QS0F!a K~ըMmL +/8j*#X) CR<*}R88nt@x23a\'",?QxM`,`*PaW@vx,cxA\B"Hȅ`Ox(G [JF鋋KxVbK`<"1C`D! h &3Z7CjNnQ~>ulj;`HчQW 8$g„D17lPF%M S@Qk1aRʀ/# @D` 1! W ?ΞH>ɃScYJBk5 +n㋓< aqỵJ7: fU.>ovO!*:ә'TOsDd!6&*L*lCDTYbf0,~g~4PcMTbÁ !TIlc*5'(Cf+#+0 ̠N ?ΰ.@E@ 3P*AdJ**KQbe-)+?P5T#b| #F GnaH-W FXr!Fְ4a s2 [D$I'soak0*Oqޗeh{@ 5Ԣjm $A 2h d:=3p!& r?"F6Qh"7 Epq 'qaUPs84$n3HMg?QJyJ5At/iM,ST} 9D^jix=Mڈں,2&Ϫ2mPOXD)%q|@,5z=_S&ɰ}a3[?&y qs# `-}i-Juۗh t6uy dx wkz$'0P ‰+(sPRp񅰩At8䲆i†sќѮȍ#>F*D@Z S \S*SHCKPIH2DȒ\@p')Y3['{؈%+̒BªBA EO :'~<)& 2*,4CJ-\S%3S`3ej=@.p s˩3r+KˉGA61avL%*Cdu{C C7dC5Q):al>x̳ )9y@*NZGx ?YKVc)9{+cšq0Hبj@HSȽx+`V mH8RL((,3?h3h(U"@`4*ʗ "/I";0.HrX4LC7b>U]U %ih>dFpH AJ4ʅ۬RDESٹ;[1-u;[;פ[c"BX0 ]ܮ/EƓX,2ӛ϶yXOȘ;@Ȱ #Px5))2QR@*'OcƉ hO`FJ H񠦕H͕ x?5H!0ۋ<I'HT"nR,Z, ph "b-.Jhn1P7j3¸+11аW} R94DmD1<ܹwAEU0qA۟;(XbZ x#iMK[UT=4"]\<#KY>@N]WUWN$)a}(]3ʑfu 9Fl9[N1j:ս1 &Y4< C ;AC ށ LL(2EtiyiFˀYQ T8Cʷ|YɈC!{:p0b3'Kf<6k=ψLʑO}b-;2ƕ>3=u8(Qݵ? ?4R$ł@[CRyFRi I@ 3BD#xӄmmݗBُ40f]P2d*5Nnu DKbQ``#.,2Whg8pw5]9^[fnN؅I(,PgKr4)a'Gpd H_0MN)h' [9lR ژ蛦i`Ȉly{3kڟ:.c[ gmVϰ ϡZޣbjN@N@jk К`=7YpưfYa"&Lݜ~8<ˋ y;k3k㈸&VH Q;?!5[!?]e[#ł?NRl,n1D^"r&ڊpj$# rn3 8ڶmphg**6*\ 2$j:J++E'un %3:\\5[Eo5WW(g]us_s5QD-C-D|,.!Le( {\_|VݩqƝ`_DlE  őKUҚ-;d6ۈ+$'rfBjjD\KBv jm3Uk%[9jƀ8=<|eA Kž!\˵ȋ$5J"d_cRc+edPHmL.p!a@H^EYGu8s[Jf`*` ݝp a'Rӵ u#;%v۱oQȅ``$˂dP.d89 +C[ԹEhAK!J jhA8"txEq0%eUx2("Nɝ!NL Ywo,^spb/ePa-Us~E@I-|+Q @9.S wAn.ߣAwKK 0u >Y-e}ߙpk}2^  [F(9 !P-<]0ĆdiA/VmU5|w^uoYNc-W8 D@P(Q"PD0q7xl&JiΜyƄvġEkGePah'" HQ$ BĈj q-Rjh-Z*)KU~2R6) xZxfBq 7٫7/ u+m]ƌѣE=b22N̗LaZOo2enuP5tbء?:ժ[" *8;H<տNQZ,vL0q Y+өLk؝h˞MUp۵%B {9䐑C!tx` cI=EZ(Q| ?(!FJxbp?3`c/b/E<& `@g4?$O8 @gsU> ni?]V!Q^}`LHPb?lDх9QERCӕꕡH?(hRPAJ?Bd[`hf5Cd4RKls?0 RM(L=@lħ@G?=!';I;o -n  lO!D2niI.CYDwTA,e()QF (2rZjac3pE ?:Xhn!#A0?1h^qZ/]<&ƎDjJz֛lqFq 7pQmըH׉֝HWxH*e]tn}s1wwNx}K N`~]Hɞ䐠8XcQ?@!J$&?Q9C?<8 F"dM"eW^Ya]/MnK=s?"J@!Qj. YEKUUhUJ?B4iڂ(N Nuj  HL/&6!V €MDOJR ,cmd'e P0 =6ࡇx` D7aSHgP{YDڵF'?9`G!+]B<1D}.<1fq-(. -&qF ! YLdN$!pcD" U0J/d_աpUB(5jZ(Lq֢[T @NN}j%UOXC k#U-E!hQA#)@` )`B贋V VQւ `L0Srᯉ 'TPrA:UD2|RY+ (,}3vt?ZvCBq%!4 yRLQqy rCQ pc#<tďb 5Bi(eDHQd~7)j!lRe`T%B! G(UkHd\ROpV `k;Њ<" tzY% !Ɓ.26 LF2B֊?hb( ȱ*+u1)H  і-{x94epo@tyK!U eeQK G g{kJ:tWK{.=B`o5*%oml^-Me"n0ܡ%{ua 28U s$?sDpus1]pǀ$(Pz{EP()YE`7AAEЌ+ѫQbS{`7E`P1ysOo|Q,?+ԟ N=Pɟ@*^!32hX'^Э$ؚ d|/(02` Yx^`k[ƹ!QŜ ~i]̖UᕑtEZDpZi%A[DuL4!jLJpLz[t&vF Sw)A+Y v X}E'aT S|9R+lGM|u18aY؈xΈ`;aH4-I]LaAE!Y OF@ ݱPUYu!^y$ &* m N ^TޤТT= RI-PPEXŚH(IGAa)5vy,2\ڧhQpQg\k0 karTeԥDO2[|N` ıZ 5USDE2AFRav?-XRJH w|LlLURv&aoWz%Dd'9 q'i \`+eo.]0Xv O\E@D`ƥ>X^,@ <$,!NC98π1Gyp=b$ⱨ! B.t^abEhOmITkf(E"FLֹZ!^OED UQ쏣L 4JU gU 1-i^5XKh˼N 2B,HH㲅{"4 $$@V} %M$I^T $]֧*I_}*N&d&YXfOĨP UH$CK U/ _Zi$Z(:l4xšpx`)$P?,%Aeg|Z?pc ]dE_x!$Kp=FhIIlL/Q$PYT?< ,# EL0\ؼjl lth0G -kP&Fd҆)׶!i$TZHFE%RF m"N\HT-*ִƂ(iXXiSt`VnX@4E( :!YFhjΰ# 'Lb!0cŪNV\cfI d5R?0î!B2]6K"9fЖy m‹V+vr'-tPA  `HtۭL:m;e^Y*Lpl8E6hrŽJFiIDD` N)OiJ Az)`镦A(H4Y .Yb`H@*IX]0 ݎ@e"FTG5BD r#Dc@b@IDmJrOr".EDtDt0?l6ƊM.+_NVx1_.벷k]ֲ d|3IJ +F 5/hAqUW6?Ol IDl_a`EaKa|ep\ ƀS`4HL>RQ[@*W`1nMlyDLE ϬEa41M #}1\q< (I*`(R)1u@\Hi-~Eun-oXC"EYE.\egܮ-{t3@[F%%?[Hm 00@Q6, 0@ٕ$ATABY )tW::Pa?@Tc* pD00/q0pVHb4k5K/Xsp_u$\eQeq_P'-@l|c`fIq>Sa-t"Eb%'x ƄvލmLYKvaԛTd߄ c̞ivĄ*Mk_,ZMр)lhXl$-sDRn,R35+=pHu^p8p*}񖋵/.XXn9CuY˽1<)"C5 b˥^iB`B!:92Zv(6=A`0hԑd6D &ia^Qi[zx͂uG W ;CBGb*4f:f8,]þ# 0J;bp_DKMP Iċ[v 7 /cYG [yE`} +m2du:hr?0dGglDz($~‹ H/|l{E|p*.] Eh]9؞`E 5gMn ȠxU mDxuZΕcy6[+fb.BlIXuWqXK ["7y)ݡqT[P\C=STA` nuY@ \ȌX6-@bf'GՀ*2~`Gi4Kr)?6omvbS_XO"u_`]mIHgP"ݚ 8">2EԷ>jеxϟD,x_wËwOe@ZIDIxt?|0+K@q$0Ȝ9 &ꟴ!:#`9N.rIW>~ZC A[h_I ZZ# G@$Z:dͪFF5P#9Zmݮ#w C0:X 5^[b3/l#,d~8- 7}n"GU nNc@/=,f !>/4 FZ2heuk l)vFFD (7lR Hc g_u| RBf:[͝]|e)Bgtedđ`/v 1D $(EԜD*N[E>OF$3 vbb &`#dX#$h V﨣HXe~I=9h= H+`pF |) : OtoȸE'%O༡0 (1ڽF%:ցA'W *+;vRdg)*Y I6"aE(3$6,[~ ̣^+=``Ñ<- * bj$nRh CfDV  gsIf69.>胐S/G@/@kL~ ˠ &! YU~0g!+ )Q- H!`PPP&i  KZRh9D@PpmZDeV _ \ kڬJ"+Wj$Pb /fh-t x픢z&|lJ {B* "8:!1+BЅ7"2 228EQ&'_6ѯ932E3ÀhK2A1JS/BO55m .4hcdv12bCh Ѐh`h˶ZoG/U@N`Fd&xxDL'MІ+{:,p|)She3[?wL9FB+?E? K+[J@w,V!%%{ LPI f2r >ld$8T%onpp{`&jE9vMVAyL.)/x4l$ ̤4RIIlBreWΐH { XJ!F$QJ*% ~σͰe[f% ëCt2@S?<,/3]M%o$3k΀!9iK4 4 4% H>FkScib3bà7sC7/k8q-3#f8S>j? V!Ycr K{=_Ԣ΢: {,@5(fAF[},?e*]#\C? "5TIbuGLL N >$ ezFol%`f}\UJj^*Hʤ qdNɒd DǸ0%Pv4H4.{ !hXQ *BVP" @(@ǚvS.n14N? s=S+3M4S2JQö6R"@4F4/U4bVRcQA h 4f$TeSHJ7F5Ui|fWf>="?Jhd9f9b& k"0 d@(0e?\@UA@ ty Ȫ.Hn$ucRSPeT "BiĘXʤv&aǖ \EyAzFR LVrTVɮ"ffCA vWa .;@nvA%Kiv.} Aʪ+t>z[L,Ѕzf?x1mA2HV3642٘Qk C#x@ihˋ wp+5[s25?jkSዿiP3ѾH5-bq3B&d0cV=`RIo FaXCB(wbiEk30[ꮐoH%z#ztyG# @G cM $"?%FW_l|y;TEfݦi 0"~UVp[Թ+|+; .Bnpr eNd*f ڀfA]tuvgpB^Bz\ā, q؝֬~1.zr9ZV4OEщ)vG1iausA7c>"Uqc$mC>*U9SG?jˑmˑ=8Oxwժ4946+MFC0R0/2irF֢]oTyb@"lX%,~F"RuB *5;r"\ wc H+h~dtt_ձ( ·$GrDFZ`&\TUbErY*N%r\Dv,% p$2p𞳻LVW+RF%@x`4A?a$4AgՁ,gbXeH'h9pf/Hå,(\x7`ȥj*`jZ93u2'9P(26u49|mG"6M&Q9X(D&QXiX3ڶjڂe5cJc]%O=Ӊ+ИRKSs9kˉzڋx>ߣȗvp ?We/qɇ˜W)Ѷm`TUnqZ#5 }/fUim$ ٠fGT=UBz*8޼ȍ2Ic7{ܼcm,vJ\-ɴ,-Ȓ, 9;1ɠ6,*y$HA@BMG翸o=sg s I^9m! dQV4FyE<9o8'hQ<4R:3$u\>UQZБ5fcd y)vrA4"i (H* ѠCԑ5 0y;FBA%P@3VRUը͍zR4*҈Zok,]sE`{}w{<\>[q[Y½ i1Dtg5Fu{e7vj/lg:x7M/)1O@a{΃Y#c'@#4!spPcXhX0o:ӑul+$%$'j~C(hE*"F n&DGrc~54lI @C5D$%Yꔷ*YMojS7IM!RkbڛŧpcbV:$!ҝg3TnsmJHE~Ɣ %:tH13CU ӡ)7C^2pŲD Ɉf<=twYb9_.t)f70/4ξn+G:pu -B͛ z#>Є}ь5k9Y^Awd OG 41%/q@\|Bz1HC P#;GSAs\A:%IJy:q ng"PS[LE9KՑD6"RFH15Le)uq)Ѣůq kQȓФHMXk0$MUˆG+Io4uHA$rQ)XdDDtFIIZyR%d?є>O274+ivV~(Nɭ~퀅2S^%u\tK2w^0 Kcw˫`JJNCfy?n8 H2SyW, y'%ڻvĈjᑧ9âc‘/%#U! hXq0}@PHhŗLeK@lXtQmzFNǣ*z[6h2Rm0hcԍjThMsךt ) #50~Kw]krf+-GYTű%` h)Mo|c>ƂP|g7U>hܸhdR$(&LFD: cw*j%.m"AH9bF׵.HX$5ziv2\;+m}7cwU&2.3rC}үvmNt}]VLF&y? At#A{Z~7HrQS ,g"oZ#5NTA$]MAcNZ"Xoe.wIXkJjd X/UJ_{ȗ)C oVlg7婔|h?]7o@IE =3=&TP6%%l}l:yis &{ \Wװmq9_<l/^1FTR@Xh4!E #CssPDK%[_u'G9]eh@NG I6 9Pr'[eX%v% seURIgp8򅅦vH)IgnDŽHduie2Is&3)Ir6JvD71GCXizxx)r!b""Dg40'AvXzE8ZY]}KBfzhl OhWM-t-02@$qLH ;U,E`w}y 50~ҋwpP'-1qGߐi@kA0!{|m$$eOBZ5`E zhC%%DG\‚j&9m'}9Hhr&xs(a)hJ.8癅 909tF2z=wC /G}Phi#4[$k(DS)S$X/#T7__I2Xzry!,xO]/{R?n+DJppAPXoa Pыݨ %(gfQt:q9G#{ 5,W)Ot=eM e ĩ@MF3>\4qDEDTW4u?9)E_5O5@E% q%ufxed!I7xVk'Im)yIRȠ0ِɊ&&ȝ[3V2(wYI$ pfjiEJHX)4F xB[|.Z$*ND7D4:Cr;b`DᔻvgnJՖU//f?ԍW ,XP!7"ŅPwo6ٷ7G #g WQ}wqZSqx!AaH1g_񴀙/^P 9.9MN=)w{{ue]Nx+rx؜E#T8M7Ut ߙ):^S9H\J`5fV6aY (99IyskD9mRU82 Xc p9gˮ9$z7Dh4;diT 隷xK$JdPE T9*3#L$8V}\ $QCOH?ݕ|Ԓ獴5p#"c^z~A9Acv` w#\8~T "10y0Tn{`Sۡ?a |˶:0܃ t{ \ ` 8a 9MzMP B\Ā6E& GcaCV85JRe5E<!I6u9IWÄgI3YI8GwohRؠW5 5ܙ7ywmGC&{Cr`adkb<x=5 _̶c-e=` P{ Ɣ= Zx-z"AS͘%E$f)1t_4w,uVZ4/*V8FkU9?Q9][R75w+[5XG Y_S e%|]IRCɽ'L#&W[VAOS$ fRcRCd6ͱ-۳M۴T klѥyzd0Vq|EA΃\u\/KlPp`z} U(+ yYayaA@}K+ @PA1!$ P  ϨZP1{)᫑ӑ y GY\6-2 <? ԅ{RȰMl +3<Ń,'\m#Hv%bLW^ ֛;ֻZ]z jʵꫧ#-FS̶2>. .s޴)16 k+"%)η`|m|0COZ4v I Xd5\ǀH5R2FoiUifYnkt9vWWJrYzu]oMlɻs^îzn6%fOKr%_bE4cf&R$@#  %)+C"{}6*8FQ +;< u}#vQ+I}؍<˳}Sm#w-!%!ޗiQv0Wa1(#  k ^b. k2 .YMG}] M˿M0~+,-=CS 7]^_^ukvHD*#Y?t*Ȃ_ rͧE]رel٥[քz߃2wA4. ^:g ``ǎ"qhO(ԣۢoo;ݻۿ]~="'ŚPq}i<_A# 6AepFOJԬt:+UpR'zUBj *jW"*U[eJ,d,Ugrխ䢁NmE /2fr謲 0Lr]"m A`3τ3@ۗ52@`5pK:rO42Xn:mA>[N#6v-3N{N^<dPAgtlϸD?;ʫ?-g'A_hj<j,8*'x([-wtceZ .\6 R hȃYwAhLP}k4Ighwy34ٌegbc(gc><¾Ke#qY?Wi> NS<11"Eg֐Zd5@`J[FDOZ؃=AXZCjԉ2t@o(*9uC"@8Q*D0JوH?"26لMғ%HLbRt]ZttЂC q$1Z "aPMg0 p7+%)^>TC :ceN+ 3QJPŪE 9j+'R .h.bԹbq#Tb. j1ieRf`cN:s~i&qa}l0vLvvPr$&2¦d,p;zdf6d0 yjac]c$9CNa 9Ls XC&ԂEkP  XZ @"G$BxF$EH,*ZgrD(Թ-+U9Ps#9-`k'I#QmfY~r?:#?d-Ns1,0G(a,o%wZPjw&:H$4F2N AX/xdԢ"V< c,m%=ݡ ":DCK|v9&u2^3 3s6v9MBԬ:5M2a8 P#T^cX*V3ŁdT ׍фw,hP0;v{@g?&UGН l2r0qo58HEcf2=:'nT&:If2Ĩy1,3zю}2Nnf.{qZՑYpm, t PhlZ#lHm$"YĢB`' tCu\zсpken5A6׊f PjIM^GcJ[PD1v6-@a BlD?1`3KxZo%Ow/(S y|SYI X8~݉f[!80 x9 A @@m9 999(  @b:{) 1B;#`)(&' X S2-{"9p<1Q 30 Ru36+#p.q!y<_XFti< ALDȂ›-I25V;;ۤʱ)W"Y\%Efa0Q>`[b<6dDFYccX@))8) Ip@Fp70Ovkȶ8[q A~C@މ_]S;z*A0  ‹ gي/˹rԹ+A̠C͐} #$:}9ҍhd:x8#p"&ʒAZ ;)a;a "3$ a3"< =[@3.9JDEz4!Lİ +F,ȢL[ ,BV:p=# MA=M*)#֜!1%$]r-\-]4>fd́cdN()gF FmD@Npd*DeP)0?&Z) 6K# h7nrKv∸8 t8, 8 L@p^I)k+0x|89 dA0 dPTLwI4D 3H:Q'ֈ:B2'Z2"y+}1);ڃsR7#3M2CKD+*ȨG@BD-3Dy ѫ i,H1L-8#0фSTE0IQj-W!-N"5ñ_2=B.=b63g|778le]VfUN*GD(1`6&V6J6M&;r \ {O@'~دd7' ;1e ҨЎ gA (2C&s .CIAR,4{:pBhR; #*:P#XR0*X3Zhr[BB ("sGżkp['̣D iD<D[@b:SlLEPMTl-5EULjA5,UcˋNUݭaUpW>aiFD؁hV߅V*^FP78ݥd@ʱҝ }\M0@S?0 _'E'{@ç \'\ /tPIA 0 uAPx  I-B1b! xd:3KԐ*4Kc5I+Xƈ1{;[)dK ;VPC9p됹 )RciCMc [M 2K%5TT;=ͼXP Ul=˽\Pd!єAQU_RսU-9u]Fl\^efh`PptFdu^eNFhN6@Z9j[;|}ufg6@ZF!P)P ׄ^Xŧ{R~7^a0|8w@jU`݊mS~(d:JцQY K& !3%Sp2=3:b-)S(S;u'xb?<100ShS㻙9`c(ɩS c5 98DP35cBET4D.H=˭HUkW5MN:-9%R2a}$e jedVWFeXG70^pYie ]ƚJO@7 >y?Im0fsbeIX1@`rh-0t 0@m߾m3U  UQ𠇥 dnhhAi9yaکh2ԗY!.20\,u.L*" Yy 2ˏ7u6z"));3ɏ,˥++ɛ+Pi˛ʹj?-TD4ѐ%JTA>T8M)Ck,\=BI5KMdܒ@da>^Xe[f=/^l7qq܁nFZ>^:6Xm%E1:Yd: xPQ0n_/|/- c_Vߎ/c|].inp dV Uod{f.;vq" K!f!Ij#RkJ谍2"2r K KpHcG'/*rA*Jء:!׫/riٳ$7y-Lx%57caF&pNAGqN>,h/ G t0{n%Go54jjLUE2$CuuOo~]g|rru׉|?(_ߧV_nrAO|ɸvm/a% Mو>o5ɗVj.ș/²W.zKˎ*`6,3f;+: KCo6S6S#<;x/&+h_B->(W*P̕:*9h%K9r8H#*< ŹhOBVH'IU)ԩծb N^; ٪0́ mux&Sq^ezL8e1|V<]0S`ÆT=@8Ȑka5@pƙ nN0cpapM#M0 Q^ ~!7n<9J`}87^=a!הx A 0@ @4ÀFPkrȡj!Au bNJ+?G? yN9FO0y:4I"VV&l ."`DžcGy)l 8H)ށ y8?LhϜsyG8g*ڑQ{t@E!Th{?F<@1C TF ځ&88 8*QC@ A{lQ7TSOMhHŬ7EU?bEVW5Z粕:q1x_X?bOf`dAbn0`0XfLY k`]MWG[nFmmpW_t=̬4sqq vG^5ǝyѿW a$uǙɵ!AEh.xbko"l],@젉PSke=HODJ9f&jP3t&tlRf"v Cgd\:&3 iѤS5ٔ1z^*3J%[tIF_Ʉ uAZ-<J7&ol2%a Tf3I<|a,PJe]R9,ie@pB2PB0b_π#X-Yo me/#kSjff`8XZۺdWOS2 M>=;NcG,$`fP5,AW#b&5=B4PD`CYle;!ȂZdUm,!EXGBAhN[!HER^ɤ[זcW%[Ԧ ]tZbjd iuѽ#11PTuK"d@ P@Fe,o{ ߋd|$ WJ!JudEK]h )"N>9"%*S1g")d,hUVी)Sѐ`;|?ERG-pL*J5Kv5&7L#|sg2یMqNttbY^}rg`T^B1`‖w,TM_cAQ|" )Dd9iEv2YcES>mڤ@d ZxUlJKAY Pf Tұ]KA!TaS|BјX0QՇAA9A؝ŝ+w`~\ ^D $DE%&H@^٨gya^cV)dIަ5փ҃A8&,1lɖ:^|,ɵc]Hi Z/I !dZo +5a,#!FՄM̓zAARAJ\eq-Ehʀ`f\TD0TZ?@DG~@H?<[<(H 8KTVt?JO -H-L -Y aͽ̹TA OA \ OMy YH0A}qt\qPdG]uz1-tG|Xx<xm`l $M|m@ 䱆'(6R"Q^ZX""dA""~ hߏ䞕A@ -#0f0",7Ԏ@rZv}1wq1WsqS0eSwA#ɰ8_m1 i>fI;q TU|̈́ ȉMC&X$< 1}DE`%u$~$A@@|5 Gzه MXJO$a 2 -\ @%5U>U6V \0XDM$@yX-[YLL|^Gu]a4f`ڑ}Z~o4bEj}[ `aZ'BމM RM"q$Rf*ߗb?|Þ;mp ^i,jߠ0'5ӏDױecuȗpc8'l<39 ߜklUXgyA_}m Qgm:E}O, j< (D\XS<`@lOPHvHb^DJJ+AXTbv.$M~f<扢a꤅ր`Ԇ ɨG`ފ [9ʎp nMmɒ gpޞ&螞dXHj0z=+rQi5dg-[sNQ 1OQ@j|k;j}F.Oz g, 5Njk ?|@J(GN\S|?d(g@@V׌W`1pS@@s =ɕ I`KzK`.Ə̜LͅCuyPʀH\ h/``Xׂ-[a ]esXwpGypay)!bA db&J&iB$c]e!lpe^griL-lvMjX2a%krhmILɫqTXN1HdW1'p2r8:ӰZ22Hlw9J3mSLyQ撄mkoŽ&~9 FMOJ? 0^q@l|@ou XAą}9QAeH3ٜ]]\zJL7_=U%Ǘ&]%՛[[Y"MӤF~Б9&Zꘈ$Bd"f$Rhf!rh MH2`"jVm.AhrY%s&[2`ܔI)7Ҟ1R3,sv_Ȃ&I13IltI9ZLoOX8[d&Ro#ꌯis8Oo;ǜď|}spldH*0GV(?o0IfF6 X~ pG< X\P( 9"`\8!ͽ4״#JVJWhYH0Uo]1yؒݚxSM[ZnиG U,K^sg@L<"m  *]kD2Ahf OHPȤț"TOGajޡ -:o0j-Ͳ#+HS`\ %=[+o@3'4Ν+vBۗ$_+1J6^鬆ܫ6>_q M|New9 oPu? /uGWw`D=3>{dC>C,vpDX@+45EX/p??KLHXC!PP!d\ iR0gTP JE0 AV_RpRMVa~ut嚝\zC58{aUQɰ"rv;* ?y@Yq2wcZC#^$r&^P 1uݎjcy&g2'C&9:6X2nB_7b9 4=ӊ@rJ8D'虜ߙ#.62 ߧjkN`3ƶDv 8wHj F|%wOw|rHN=sh~ A{ 0p+n\Sz GboS ZĻKCQSRe?KLB1xlD9@  $D ! .$?#I4ɑ*/LɊcLV/1\`7oCМ;}Csq$E 4uHrj$qNJB` PX k AZTFkG! ,( (R$;R<`$,$ ̯ D2n%9BA'r(DOZsOZ@"`Bz'5rT :#2@ȎJm֒H`v覐N$D ^)` TJlBVYY $H " 35pj*h0ݍK)]ܺh؋;/ #i 4[Eˆ$c8D`т|;D+$ÎJn6aεK^﹜C<T纳C:1os5 p  ہj*#C +u4ù#NZƖo9+f|EĒ E:@}|h I(?,xI-2KCrs,*5+݉2`OB BXC5<^59>{8d76SdtNQ o\&BՍH Iu$.)HMYp⬋m3@$CsPT}npYUY 7"i b/D@-}!]0`!waAJQ4B!"|a cG(5:ɶ2!1YүeitO6qYCÝ=5)yG9Q|C6-hm"P Ԕj,OBILBd>zɾa+" #F=G  iF R+Q7#]#([Zz)(a<AFۉt')AI)PoxCNiS7 Nh@@5TR\fVw# <( ЄqbPڏXQP)lmm ἖B3kYyu.MѲ/&%IcLژd < #JJgP LXİ!5;3פ]YdĦ;ȑtdC&lcD52RrÚ$gjwH&t,~'?ܢ mͭe` )1HPr7 {Jݐ(J)r" x&dpMuTb "+#m(+ GCQj3?ah_f)W!mzB\hyH ]Ԓ65PE1`LH)ƾ*~iJL9#[p6/pF je3#Ik#9yN'`@$IjH4G. 67ͦ>dPF+tT|RJʇ-Cn zDpj@rѐas.%Xrk2K-( 2M(Xssp;or"xтx 9pD :Nt|(f" S(> bbYjķ≮D #STaPE/ozS{k;Nu2S(dzY .s%r ]cH"rj$U3U`)&2UO[Zꚑus1!nnEsd&]KM t.B_# #{VZ_i`/Յ-(R&RWbru4!GhP?|-:K?wY mWد|}!e51;e=- [|kH?Wxbx`B$$@D*&.b|V f#l8,XJV/|$4B#DB,\,@`/[ff>0HUX^f,D"Ɍ,\_D,ƆÇNJ$$#6bk搮he%4-q^Dt#c5.JM>On!A4鯢BJd!"F=N,(!Vob 5(*kb РDrV 'ldG OuDs,`E F-I.g|u۲ HGdueDBK(@Sna$OI|ϜK.|apˇM'G%N @$!p(8 !;JŠ3ba&P# :L,L*b-\PXӢ,~,X"=>\vL]\ 1FFn*a/E0 ä`(h$(2bDY) P* U(^V#3ҤNp;Jdf2;c,0ï(UR)n)D/$*#EBVQd Jҥ!FC?,+,>Ff,)!ʲ]qDBZHBdQGP#,wBv1giun Zi|qMtI-HdpD7DZ  G, ֤MB!Sd`2xSrEBQ$P!MHq7 b\FQ/f.` ".b"6!"'/\BK Rp~j,v0B2 .4 Nr!P-@P:t%" ,L#긣,c0p0j.,U\E{t$4))5p*Ic9"4ir,K IζK If(ϯc@ jlpM(j ) (F"UC"$BNBRMJ4s;jR2"2M A MMF"eoFhiO$K8WUH~I$IB's$$9s :CD$FDI|`S$6e`a[[11!pE:l$FB?#+" *R$t[""`_Jd3MbE,,f-Ԃ0€Dä&B1T,jd˥t/|(+$tc6̸ʫ*I 2#3n5~ TKTSh8^Uo4J%ebhȋ5Glodv(͠qBn$pN+Ao7n],+SR)ղ\(Rr,@J^I$r|`KPq&GsImD"BIu Y J/ۦOۖ˻qE8?@7Sd׼G:s|5Mv8e$Ƒ>N=Mp$`^Dg*¦oB'#cܥNj&0#Z¨V,̄ u]J%5C3a/b&o 0,(t"_l̦Єeec7N`/d)*qvI5Z56hh4h3#+)kJHnwfq:dcm9,`2 af&0-l4@jΖwEBLD3n?NI@b QJ w;25**.HrK5Q6W6S3XGP. IH7CsmuqDFv3wtjw.ًǍِ q,yf'Mp jg;i>o՗;`M{$3|ŷԇD\rB" ]/8L!9.b,hawÚ!"@b`XB)$nƒmt0bBsH`/HVP"c%f=«Ȭ({u$"^1^i[ $^cld*[CP/b ,f3g@[;dYPRbe]*xCaƒB}OZ00'tƒPa%;18,ƨn!uBanIg5&X&& ),5{30ahP ǐ"K4 uKqE)"O<537P"tK@`&@$$E*`:)Dp#&Rf;C!8S"(ҼPd`In1qn)F$9wDF5m)sGXŘuӰ ۰/ٰ$:KTu-uKMJdϏm1BĖwĐS䕶ES>%w*f7#rǮY&], bDMV\.ph1_6`$|$ .f*zcʿW0t&P/}c8ajLgt`D3hJD.GUi l-˩[q|(Pd~SJ"nEnxp M$>5۬$d$8oGql;\j("\Ds.FGX:uoFT3a`|聍uS?ﯙy&H 8mWqqk|HD7}4@+1vd: Q!!^^AZ| |D)MUOQo%bCYP2$'i2)]{A'dzʠ\1a /3VN.Zr(zv7JO &M")4F5P+rKQyֶlh)NݒOW g:ĹD(Ic<)*~$&f &HP?J0$cA .b_w GX|A,}PBB8Bž8hQ@uXj!=@)`?I,5sP@ȝpܡiqB\8CD@ v3`D?:-'LCB:1W4*Tȼe:U6@e0 =ިFp9sτA0oƧcA0g8_pߙghF/`#[~' GG $ b!!3P? dr! r ?""ȁa"+&<="D&D)!K/݁A%S?55UODwsG }@?QC#Q'~AYIM@RIE@j1jC $DD,uI)J9H.tjt@N>iNF 5kO: UU*AL(XM?~%T!QdZBDʹN|P  y U؜yNUyh2QfifiFVYlZrEYngp+oӉP5tYGw']w-F{ɜ^y^^G;Gg$QGB/ ]F  NVYr@zu2Z/ŠGn"<~/lvh$lŋ #uQpRwxe'r@kPܩ9x'P ծU)(4lV:le饊 Y9TGAKb 8n/IbK*k皗e-~U~CaZXQ+RKmYO;N_[X EՖ5ٕM5\˓f*Hp#8 GT5 0ۤa` `4Mp2#`'crV|:(ʨC!@=5qc,7 Qzڳ> Fğ-F3jr4E(؆D!u C%cɱFtT7ͨm{|z4` jHB5%ͤ~H9\" 4 O$91~S:?Ūt8ʷ>)LG4{+HAUJ%Dww*K"l$NU"O}C(R* >m,3a^e(DyKMn@@,P}ZVTr/*V 4Ber4SE+ ~У9 n,1pcHf߈9YiKCSG" C4hOyȒ 5M NJYfPhcPG$jMmp׺ݱD'#w$7n7 }"m-$J!Y`YHpªSZ5|P'N%r`>'MIN SV&`c*uh Ԓb ;QetgXv[W%/!O'*ePSKk|#֠R` D sdq#/lםnayPMw<.m%zl v0p5 3EEш.#1P0 u<١y;8-#P {S+=yP, ~rb‚P"4JNWId"Z?ڨm#ht-seNJ-"kNT9ֱC AUkE9(rW)H @U`YJv]8gK-:|~X (so$LkhKNW+OpJX]m:zZeLqNE{Z W|k"uD[.+e u z8alF%7maGhc|d;⦷3_]n ;0@8Bo5`ɴ[ ;) oV#,1{)McCqf1&;m8fC-Q,"Y5A6>NFyh! rR5Hs57h5ʑ!\E$:G${7UsUs"Kt5WC"oFy$us#V>&eQA&6I2&47hK?!&kp'7; <<(BwEwRh;P > KZ)~ׅHoQ'm{-=Jy lDZٴMŲMsM4Q/QN3:6gc%mH-&3{1.>˲nĔ |0`1}B!3BoF1ߗ?~>A~0F37 TEAqht" Xs FXsX5JeRӀ8!긁, $(!R3!x5xA7SRF57I6f6NVh6H:"m&\48IR&g;AM5:dDv<q?c_xۓj[,2yʗ@Ηq؊&}A|E(}}p?YDD 7TLKD3w 9T=E QE?؍SWi$1׍Hs!BeM65(1z8EQJf 7)e#hGIG65‚)b6d6" q6m89 1/ur\vk39sarh> p;=,ZZC[p8ƟpY:/J+S?SN_rQa;x;Ov"hFixHɖDjNlqpJzm1.oW0)Չ[jQr#-R g6ix&=G+fQC:E9nw&O(K,.Kbj{2{2i!u-7f9`rEH=mRJԥTy5%l MJw:{q-dNC@ki_m PD.Ԇbg1)vjW%[Q%v*\*1}10Q3aʱo 1TAED1A NʡdN%!Q3HeA7/EfaaSJf49 s LU(5&KG92~UWQpC8rO&\wgYRJȄ;$r]Zڭ:;(,Z(RأLi9\7/bj\ezyMl z%:qyU)XmVK٫uWkRzGY*8B!B1iʊ1bN1 4 !rɑ!NE |1RX: THFCdJSrKd+Ԙ.2] i-u36JV2yeF:L#%mUqq'\gIq97qYQ(JP*Z2ˢTYũ>]u84:E:gk‡WM5lŕ\zZ j`v8ytPݫ^ru±mbnLyUB<%)Rײc1dL&}}eXN=[u@]9WtƥuNR]x+ˈ$d_NlWQ0L4)Fx6s0&&c|0t0C-Bm1+TKf k.s< 5zڭ}H"tpf}.\&4%ܖ>难n}&kR`}`Ԙ)p{X&U* ^7&g{v#;A&=Ɂ͐$Ӯ'kR*J:IKzKJ;(j28!k"߃%.]9MՄ篶-H\diM՚lO%}5LjF8ߐxŒ Y c.$xBDMf$"ʇ`xGhN 8L0h8ĒISF+US|56aX |usSZÊ<!7 'ա B@8/ !! h>K&`U} uh}pR޼>Kbx4.لfe^C yx(`|mh7tp L.94A&0" 6;p ` ȸ0,?51g?,tpD?C$PH#CJ t(bFxJ+@0(! r30, P(%?/ 8ɣ`#B =eψ8 p!XKɧ*=!4:UH#2*̩h14Z+#};x/2i/C$/;,NzE#?*4L2:;33vSÌp-sH "O:*#@> /n;8փ.*n9JH b<`@|s^BfmS.BLN'0nL4nB\6nɐh0C :_zu͑3F? &hP!ɇ(03 `^4 $?#0䌓 K7 "LRqACPuiG=RUzҟ4i'NӞ|zh10TV=R*VZjt5,=୅jOTΏS a PF98>xO?$ুhh?j pT-Gk 3"))n~#28%-JP"$4+12J]  R9Isӝ5t JFtDS Gq#IKvrdPl 'P6VAeJ "T(Xa^+u2,jqC2e~Ǵ0XJW{Լ7 JL'_&Y1.M_ tW.sF6A"g81O~S|NjA e)J70,RBZ.؇!CRm ` @@˨'Z_⃒6mH؞j}hj1iZӢ`F=oD##ceF$X9KAA.RߠdBu#-eVE-r6IOf!a( HCjTC1)BtHFBb[Ķ#. u)ZUf wQUr4Bpe+4ٱdR `i2}+*R(@rլv%/w pNX d j.x3Jl= UgYprԑ$p9{A@aLWH2'`]1I@8O*F-Gfэ}V ~gY*&V_(zHϚ8/:-aҩVレ:EYk5d+3ٚVm @h(iNj`q%AݳL?^RF¼3Pqt8'GYƩM4ZW2 Il2L\Q6+h ߶ڗ;E^d?Փi'lUQǑ$)b5 C =gLd'w>+jʠC2ě-!Cg:n!T<AA;ģhw$Ј\8>Rl):,DbܓCP`'caJ0628v)FզMZa^3|K=jnj,gRJ|UC60B;v hZkIk椻-L*WlFLiJs2mX.iR¶BXƀ2Ż*ļo1k:4qb'KCd*eRbmNfh8} O-${(/]ߏk\#C^.UTpU;$ ṅ-sxhM}30o7J9Y/r*!;("#{C%Ҫ"iI{ 1󚵉A8J6[磢@&+#+;)>4B 4(:;,qxe@LzAǚ910Ѣ(0t{\ҔZ bOQȝ 5RO 0( u &3{ c&B!Ɍ*`ҍ  1(kFC)瘡F A~1  GۈD&[k>XP:pLAA h*+1#*GC:P =P5 ÃIr+8 $ʚ3;,/ ܵK -S`6hS'F(/+;=üO$#1҈ȽQ<|ڋx{ x(p!#.[EۨЌ{a?$ b)b9L8 ҡc! ?{x)`Fml 4*t@#΀@~#4@ PX23w?Ϩtmq&)4@3-94U.i';| $s P I U$Js% 0/D3Ż*Ax\:H5ɍQy̠< )x{L! MKR)`Ų[gF "<(0PHڋDcЖpB'l4|]JG$ %RXsa&}a VkQa1JުXŨ(x7]:[،9@@0)Caaḻ}!UE *)°J?ܼ`֬11HےaŵObbq"H`Ȉ#p>;*f̐#ϮcG%=c 3-d.!/Q/lPWx ^DZ^PͥDQ^2J5Ē:7>` x+ 4^X{lњ+?1T L& ay sPaN-8 [U̘( (gS͉):,F/ǥPZ:8m:: A@3)jϕ'3h $;;r==;B+WM`U/Y7xdK6`6`6MKMB3,QlUf^^-畈ݥY{ =TBJI.R4 =4HR$3 좁yRul4y^Q~t"8-_.-m_Uhmwx>iT|)t8 Ӛ'Ӄ8$ :gg-aR ajT@!<黼SF츓)3kH ?N1 nNhuOnʰii6 z=j//(8BD"DB&qe tFvЈa6ZeUΥbM\kJXo55PB(?.X8 e6,؊ƮoQ b; J6m;/%Ȃ<i~f.su~qzzi[noq#̞xV u|¡=9cu͎uS=ƌ]8"|[nY?!3:ee+ֺA f1/BVƒJ?P16BNq>,X~I2ˋꋈJq e-Á=i paټ?ruZ84Y/!!ybhoumˀQ\\S/jGިa@h"7b\"Iyq/YfMeFC:4C/>н<ΫjAXp~'p7LNrr-ʹ.R؍Gϔ^ =&U=G $ 4Ϙ& 0s';ر?;>T⧋xE+8> )C!%>@P@OV|'C! RH \JR+Ajӛp@ϋ)mLirɬ)?0=)@ĭN*`Bz'L1ᡄKЬJyạ.,AjcUiFp# ҟ;f'O{_IfOȑVyH fɇt}?^i0_N}`A>[×BT" SLR"}#7P`E<ԠHb0a&0B \? DY5`"sA0 D3^ʌ9>tO/dAY8:#$Th<y #bq0 CC <@y: }'8dF =dVE D5e)ASK|ĕI&RuvҶDTI@_u֨XYLDiuMյWr9_Mp묄l=߾vVuVu6o@Z4MlQvrᖭn?YU.s̍crft!g&UQ =y֨Gx ρvX~YH矁w $HτEfEj4gxh PM6uEJB$;}QG8$LƸK$QCeh9\ 1#h xɢC4D?Gő&d'XqnN?D9zѥi{(\s S3 ϥK5:+߂kW'PæR^24*EfAw%gIa1Eg-`0e*6ÛZ9 pSQ” p2E\Sg8lDaDGnjSC@l.I^8=HR:5I|) R9vل% "3ЖE-E$VBɈl/F#!F0bA)n880enK͘:1<c$F[2@@5G>(A9KD$MB:f EqC>ES "H1kf"䢵iG#P*"`#xjǦqLbQ 5lGRHMS" $V9-"^lUv &̔Zh";%+`ѕRr3:2Z {zK%s&2iޱz,)ϲLX%,ѥ'!R<˶P_|} ;VBϋ 2yLgxKu]y:-[m \DV{@5bj˂xá9H 7x}$pX7N$?F0c<ӯg乙̤ #$ "pGahG5?|=Dj 8.EQlmk*"ɨTj;ir[Vt:!q‚ND,k!B vkS U%,iV( x*+{?9=$mC8`Cd5jQȪd5fP;dUQL(MXb$p /ne.񋧕+kO119"\1aji+Ӭ DPG{T3?a7xHO'8T|2idC{ °o * K$! .ZӋDCd_C³Sv.ِ 9Ga 8Ӑ6d2ADjS: Of4&]*OIԜ(1X`UBeM)DD8*]_1+[1,|n&]K6OwNY˳W)If]xM]@ /? $F9 ;-W@̎hsMcJH6ϧereO!G0^,SESl44I8 +d o+NB@4"& >gy0X#}^3>z!=Z!9[j?1Ow`  \=4 c5^qJ4CKx}iY]ci -]O{|P+yhm, N,=ڲV[lUk}E2m`#@p텮`OV zaՕqHBee mDQLdxy=klNݔ!UNۑ."DheA0\U?"c}Q5^b&9s"6\kkV"Q,SE銷zxZa]U<d%YF> ˪Dv~1#>WG^⨷݇UH؊E^'ĦVx_L/0[_&Ž"nd)/ԛڬh!馬XRqD~ZmS^!`2k&i-6]q t`0AFcA&=npxj0c3(UֱԪ֥qJZ}inL@2vNiS[+J2%g4tZŮPWp5qOq"TN.p1iDG$NE}tshNpfe/XC(i`HE&߇HI'TjPeGXl֌vfQP~ro3cSE=]oFYV0<^ % E& ujE$s`Q~֚=rA< `3`xdpk0I0ʮƖjS$wCs$|&ڟ k.O2y*R7q[1J[dtSonkge޹Fo솾6iv GN$ SBS#RF5֨$fGT}u_F|%^wҔ~lfأT Eǩ4ZGmힾmnN B:{3r^ݣٚv0mmrAEvBAN>ĪH?;^ʖ}BCΞ8>#tI1YwgkJD܅tRt.4qww3ᴎA|$UY7r%V^P/r "@/o0FLZ&  ِĔ(NuvuYHG,ZMl5,R-k_sњ~J]]/cUm3*2֓9ێmڄD)a9T-r681`zd~ 9㥺sG>2׹tj @iKqv0KĄ't|?BqKe]hځEVң7[@dG$NMp4Du&lVxVwvFiƾ=o C)8 ˻ƚ`L8`XЈD,Dr2L_bVL1[j,эO5 i$6 tg/Bk-so&`}ei/}ipQm9N\tG ?*Ǘzjl?L4\m6f7tr|3:D>ڂH?(km1 a];_=@ @0A >&8(!? R1"E 9RB%<ѿFTf4oF{ O;e )$J(LRNjM@aJG)d:JO\Zi׬!)<`i٬Vj}BdaeĈ(VjᑬC%pAre +W2y#! w`3 ΫY /6b=uY9;#YCXY!F} W}o@@_sW{M 0?#_͝?c=o<;C>(0"@ .UW ྐ@(5 1f!jp`G" x,!a 1#cxMC?-O@$^Cs1D-4 `o+^m$!Pd`o%od$l#}wZ TR, `-ˑ"̋"*8i:)N%<'?C.PE1BTϚꢳq{B4J+(?4n:Ŭ-T*/ZUVSǯY=@X 1&'`Ug=s_S>j㬷~Y{}laOo?߼k9s95⸣>/3껏|Gؾ]{uXap=QӖ[A_ cfFY1)KeQI)siHvތ;s˞c eNRArĐ,d$^IEkkv.ak6ͺ5ʑbwT_&*%BR(m)L"S)3J&*pG8ƅDqh\>UǤ\Ti%A2UeKmIB>ʹ8+ސ |S izJ˚uO˾) r_1y|>'l@^J37 ઈ hB4#V $2|# Q=Yc8w1 f"!J xj!HsSLrwk>Wn]e'±+#f;ߢߺceb9:WwgU'{4U;Cܧ;oAN.{:Csl'23&m>7=!IhtWy&6zʨ[!mȕ}EU,UdM;7= ޡQHYQvSa7D0Sn'Nۢw( R˺=L5sjg՗yӪ^5dHV|U2grL1|o໩\i^*^.d4VéWRZ(Vje/_`yfyBE'^ \kv+D>*(銫e^Ei*?뺣jb>͟m "K, N˥jKb %f-SfԆOOh>!¤),Jo3J+jR|GP pqr֨F@4h%N tì #WĪx&[jTalA,35Nde~,4]%kx@_@? kJ/6x.丧w6뵀=CL5T:" g#0;?Ct˸~bĉdɛqC]k\ t~DiKN}mkpO~0fm%:%Mo&gؒ #f0oSآq.*'p Ű#Ӱ#mlolIͩ:VR%Ffͬ<-8!D`i>NKx;<:q3܃wGx~̶֯e1#?l=+'}#֬撬\c'C6CLf Fc\~ DPɶD;d 힐+mGD141#`*/n64r3$NbR,0 'H8Ðs b W/-3::=2:;mbqBF@/@rFD"wD*9'>Ez/5;[b _txƣʱ2_eX `P1WN`>k0FGlG;H}TI "GGLu][ñIiF~JX)j ʴD`sR(%HM,b+&Lq!qBP(PR5;=#FSQy6kO43p%<7u=@Xĩ.cgCl9|7<&IFn6|2]/X3m*ǰl,Eydo)/8 ZoDl͐`VkUJBU5IHd:[ԩ]3:c<&&5g#_It$E*N kopk%w}W6,DJ+D>C9'x5!K8?m ,$ D #w{G:!f?5$ss.s6&ń}tv[O5\k05[#o}l:H~\(T/l\q8E+4q'4^A)_ݏrHAFfҁrSЀIkqu.3Q&4BAEUh1|lt$vr)k.o2Œwd!H>Ld"z[q3"='#ǭ@m#(p$w$5}gs}6t~WnR9l䈟ny9:TDBKWo y ko}Ac){\q2yKqV>u[xfLWb hGIckHQx1I{ԶH5떅j+FNgfԡN螏*E88OkLxk la[h%jj./L&,Soq"dv6#pSQ(AfEoBl0S~_2tUh߬pU=?ֵi sq*),`B m[Dl)wU>eaOn%<;Mwx8{wњ{GFcVBXEc8`醤~ #&^F&GbG^J 3v8*-Q&lNFw Ţk*83 yOVBc-mQӏIң!5 3> mQϐk/)R%tRĚ &͑MTKYNZ2 wDY2I@( *<+$@VbFD 6LF,@m`=.oc8@X v番UB[u\GLkQc` ]zZ;䷚4 1iSΜ3m:ۛz>B ǥVW"3`zP椨)ȕ79n?_04rn LqaJ\!-(t9>PEf(@U 0~E&d{VxuEޮ6>rY("Tf9Uz Z:zN\owgx a_{40|/aX:p+޵IկuK}_OW HkEkYv3{%vM TEz(+ hqa1Lj*˩p]J e6%7q7:Af>rf0hYP6cyoLc#rMlεt񴀚UWV-@_|'\}[99eƊ? l5#7z,N( .OQdx,yohrːC=FqBM(< ̍[ oy3f=QZ3Ĩ}G4*/ wzH5x@E<X';q @ncwš8ތyV&.wA)~,8Wk?0G7s!ɅћD w@ @@߿( #$ @hAI Tk (Sf͗-xo&NCT0 LQvDTBHR4;꿥"M:ϣʶ]+b?"b8rGJG1ؽy ύ9ˆŌ;noDǁ"8f pA,6=@J|}w]֟F4>EBH+ O7}`ݯ?-[߇;.q8oRx>~F h 8gCuD5Hjo@^8k}@ZA%rA!D IOO1VWR 5ŲD>die yGK&_5Z}Y]=p\ vZr!ՇJՍ:igB*g[¬x[9[$~knű7zmvZZi)'tBKww_AoiK_q6{[m†ua2j򲶚^g-d$W@AeFtyZKpR.SWdKW0ÄL ! '2ܴ\Q|beg:P+/PE,\'+gae^{c6Y'M1Q5H.z#G0i$#Rl.m*Wv.O֮l-5Z{c`M"|YK\BL$W[M6^\4)^+$73UF?tYMkO|GɓUumnAdXq+5ۊU[/R3dHgA~qn qv6[j$~ȟNzsV3 :U(q#Л#Ma| [<[b""v!?4_&P%!ltrq *~oAt~N5P@M>GJ'*QvLj8U*JO0'OVUEOVeHIRa6:aafKvVӀ{l6aW|q545oXwKlȄmiX1x6M,`+U5]5FK$y.}1Y&<07gXlRpO1mW9w1  7ek9\%z66 $]bp|.1[qnbgrF/KxrM^)R}OsYedS\BsEiF\_[U3H"6WGutytjtDU_5U*=MTir4u]w1(Jli4m5VHLh(˨W'wX$4)A3*COAN!#n%d20df#qx.bp1[$MUe{X<^x?qS[SFw$H[xQ|@fwSFC^x!5}xՇRF}׈ݗ07BN*psDY>0a~Hl1BR)I&JjjUufk_嶩%!&vq\ uI7t0Q@3K}(,LAv[I!!cږNڻ+3]qBf/7%[Lc#HSכx= y.w MBI(H$鼃Å:s,Y8V))*>h0SIӟ*2Ԕ=i=\~&>`x3cfMtMuaTkxtHkhA4 4()ex9@Bgqj]}e }+5"Sƙf Mi[4% 0WNo+ƀ7yԻz(=h)Gё_v.Ȳ q˳EcX,,XFͤYJQ ňXO5Ob'a))1h>я~JK&T*1VQ疯Tc3'4tdm2 # ~U逅5[s/Oo$XA .dC%NXE5nG!E$YI)UdK1eΤYM9uOA%ZQI.eSQNZUYnWaŎ%[Yiծe[qΥ[ݛ׷{9t7ݿ߹+iR" 2Q$gXh *Ip/2L$̎$2!.#ܚN=5q6ͷ!q u%H0Kh({YOS$էJZPQLhCʮ!,& hJRU>HG5BJ9H7 &XAK3T9C3 O9F)D18fEH2H!0\CK6&-_EOŬeYP=JE3>hYL6BkNWB 0 uyRUeGO! 90;rb" goC'$̳ebͩ S7Om]srKOޜ; tG=*5w]RϑYUwjAȂe{imIezPMʒi]\lVٺ۸xD_Ca+H%j_ӄdJ.)wVsUpuOSpOUܔeڦ~΀a>#箄lGIYRW\rIigabن`\?D{YŭuJICٷhz]][1%uSZn[>1;ͥεä^biWTLdɈfiݦwi4#ʊӀWU54чmq`U7ڜvSةJÝeN5$)^M7!~EXƙ~k{A,sN܎o_yNs;(ۍ]χ^ͬOHW! M5WExV_ĭUزMx^ќzm;H5Ғe֗o\TzG?䴔y{~iPPPXܪ___ȱIIIuuuڻ=Eiii'ZYxnߩ4?AOOń *\ȰÇ#JHŋ3jȱǏ CIɓ(˗0cʜI͛8sϟ@ JѣH*]ʴӧPJJիXjʵW76سb%vڷmᲝ+nܻtw_+pٽs ƫ1aGn;d˕/k͟;K߾L}]ͺװc˞MDr-4߿ćq|zУKNسk:n%O]o ~Ͽ(aOq@&Ts,5mFؚ{}(:@KFCQOZedQ'XfՁ>͈ 2d^N:S(>w}"QTEtyO,ԇN(%c(P*J(m$?sg*Q`*c૴j뭸뮼ʩ=ڃN /YBHpO==ʩ@<'f':|gBa#넜,icϷ +6G,WlkU,8Q8qT£Aɉ$ufGG!ޙOe,OtAh瑖 @t|ΜuWmuVduDZ`$O`lp-tm7K|%8ڃ@F5婝>Y@YZSwY7),8 sn#ghaz߭/|GVT_羟`Eu|!XrÃ!mJGAS3 wB:JR4/Xrxzk.4>YHyZ$Xu< ''wXdMPysԛ`fU)Lf(cTJ@G5( .NœBQD*rʭ@,g)R.iKЀyk-bɠ (Ǭ fM3IjZ̦6Ynz 8IrL:v)k @JЂMBІ:D'JъZͨF7юz HGJҒ(MJWzMd0}Le 6)NwjSq>@JTq#?Qʒ%N<ԨNUTVխƒ^T"VBE@+PZTUpj\*םw+MeW ^ İL@R:u`ʲW1R5ԪխlH4FִXzձ laPĶ-n÷mQz[dA?\56UJPҠTW؅P+өh`)lR(F /z[^=P!ߡ06?/X2V kݟ`(ЅPӧ=@4ı l@¨%mS+ax &mk]կXm-1iKcW+5 mV01{ta l`Fo"e* O!e7^V/}"B6(],RA*ktcXe?6m)l.Niએ1Pjl8(-Ol@RKaQ|;׹I tMl753)m˾t4P e,E2oY^]zeaFzf/#;)=oRT٢Jue@ |>;u7P8+hp735-l b8*fI;-K7[R)>O6 ?ݜY>,^{)7P-^,\*.Jmo-+h/;m d.f_Sn먿oY2uNrMv~8\tY:>AJƕo+W aV ~uɳ+8Ew}l)].(W~o͔<՗~W](>9Jgu?8-YQaa=ߪA pkm{U`w+OUr p W#7M?RzzH!s5tH6?CX cs^NQFaH~I6e%{K'(W ku~&|B֘Ya@ua>Պa(hZW\Axp@Q8>щo }~wCF}hjx\y\Z9rL>E*y3څ]!sFzlӸs桢7EwA!Gэ@gIyvnrVn꧎'uɩZiׁ5oAqȘVZ\UReRzix@uٞ9:ؐz g6\q[ߙwG\柅v;jd8J{X;`v# I!J5ɶas(t硑*AWt>E),R zluFuH{W u8~Pg;wDڊ^}iU)\,hȖX/i)dJbʥ*wYuzP\Պv_`{@PِCˬsmG63XIn mzqVh՘x9{iڱd䈌hnʌL n :Q*,!JDX07y.Jc]뮲IE5Ց%Ȋ%Zwjʫ{[\N֚'@F ypw󙑚H(z'{K0jzɒ *vwGkX_&%EɰPf)[K什.׮kLqgAqHxAGcoĻwiTںhZƃ>Ѫ @z)i9ȃ@X j魎]W+j ܘ<\x*']阪MtXW&&Jt][tʿؿDq'b̿^ѸJylLyj_k]?1_9;亟e6\}kJ͊D%,p{ 68q ;ܟu<(BAaXX?P Fn{@y (\fܰ0LAFIƃ% Cڜİnʲ}|7c՝0E5fwYipϞ(pM;1j;6ݗ;x0W`AjʮhLlken s8̴1ᢑW{T1?QXM8YqmʫK[LL}P0@PPsg6wgwր}àܑALΡ zͧN# _eìKX #݌Eʗka<< MQqyS[02}m o@Aq1Nk.S=jqx]`|ݬ~,Q҅MoFu2imE ݜ@ɷ*}j9̤.\˰ MqX" p 0P  `m )&@1<}pȻf9x,i>C ţMlF.^LB-mKSΩm=Y5Oᯟ]~=;ͥ\E,9&L\Xwc z~ ~ }p l*^7U mΪ윾>ܫğNp[qp{&&0\e|{c|p(!o& )_=W ^nձ%6ou<8ֶo>Z-O[6}enx ޑ8Ea˼`Moo[EwpPP]̰k_ /ٞ=AI^HecN1[8OOKQ[J@܁Ϧ ,hmЈ,.n1JX;`A칏jGhf3OFmߺw?[/7<8ca C<(JQXN jh ` eq@DR"h7&q-#Oz*Kr"KTE0M Ɲf'j P`TӠB O<\s*c ?C>j>C2KжHkܙ0/OjT"MU 0 喧 P̓;/Iլeiv2fS(G Š"K,9ne($qM#8>jڈ&tȹ 겡a$R}Sպ7-S:\ϊxV GskQ+K1.\kڏeIO AJիAu2sU@ u*ؼBTX9|Xc :Mc]d(}SFgO3Sц]iA2$ɅĕdH "dS(v*.h.eJ54MX<]\3>/LCm]s̫[BiG[t:*cU;0@89P5Fugw!D,B DhX'h\74#^l+=4b9mʉ,L0 E1"f_~n!yQtRUq2Y eɬ_=#g9"Z#BgC`= c^q:&0F5 RaUޔpm*PaԯP_-]-Vִ7ʥDP?HJTG$!bnhC TKFg%Vʿ :V>s5 1Q5MN9ߝ:Wm={b;qZݫs) QԪ(3.60'cܐga{WsV錈::5Pri:b:@iNBԐ\+<\FoK! bRL:S!HPN­$$NR.sq:Ach*FD[— S\Aga^ҋ9x /۶iMǗ׵vvbtXt^+Z{Ffˬœ-<1|5c}PNk}p!V*ih́u_jM(})Vw'$`DɊK7jDH؅%붹.M^Zu;tkS<ʍYMHֱ7r(={Zm+u[ 9AN.HgOj,"x1cg,l 65sxQh3ڇ5PJ4ʨK[+:QTaV>k4!(=\"7:֜f{3+A47r77.OpܜIMJ%+?rDѶj^(о]ZEӤ0J4)]VJWTUXiNPNE"mծ6]jd +*:tYXגa7 jv@l,=LvL;3|GVV'囹ɾf7Z:N \nPoƼAnΗxR}&PwtD4I}O/s/xcZrK5i\ܵbKƺ>V]IG笕+F)bLcìS'{c T:":?m%C2nM9;>q{!]ɽ=7=r4w.|# ʼnȋ ro!˼NjS89)$vwA HQiPɋA{B;4Y+9>BS. s7@شž9 &Ck5-YY{>S:rK3 ?1^ DSq萯+ c+?[{[#࿼ ;SP\QtlB)G=txEC4J< [!ŌF!I? $<P%&dӈS-FճƩ{׃sE'<='ã@q7Gq DMř0TCȵj>Vk4|ܿG>e{CsCCxB>TěIĉc<:3:?+:TTɷM{(7CI1B5\OGەqSEOC2(</Ŭ"㿖5LILԻ|}t{LǠ88@*,ɔMĽD={ThImGL V`xÇWkM5W pŵY[+U:\%WM׊\WM.WCX1%2Up-S<ĐX{XN>XUDť4s$E ZYF5FوYeq>ZR#}ZF>a%bw\^\^VRǕ/CyMk.M0}\da-EN[k\+i58n'Ne'6\`)*l`jܛ/`1lc%l22llT5F5^ώ0%(P팾hނBˡEWeݍn(HZ\-/D޽ʙڽdlVv\lѝdh5h]=jCUjj[pj9R%Eq5ܬMf^KWƍ/}aa{eMffa5X5ytCc]X!È=l~#}qRMNeV mOX^IiFzE6A^YJO$!UhUZ8.UV@4/U#Y1Ł!nlng.D'yFkйkԥ6q5CWWoҼojpW>p#Xe~ae /fgBeʱ !'jtKgVeߴ NgMlHBErq!m#glt_}vٮnF]T8&ecڰR㈖v`;-h6ˍ_g]_@UYEiM 䊷F箈Y^!C非BO^kmMMtIltuIVv־žOR'zoU\afa6kשMkh.XXu6]X> >< Rf&.\jVsv`IXtvNqtmVwGw ӎ)MAT|mՊwvmh.>PUm}sixUVx3|[=8@q^^Dq&yA韤әy/L"Ew{_Wgt-'W>4e$( dX!Ĉ &I5gxO ~$8rfdrH` ;9X2ow3 РA^KBqF*=ڔA ^#8?OhqJk+A[~%;,ځ};Cp%gN,lnǮݿv>ݧeǖ͛aGPb/kfX]6f21p˲ջ9-ɣ?.vH۩ۊ,VjŚtVL?Otf>{0ʗ/￟?'dQy4eF5 2ؑE0 lLhaj8A%yPR_G]bI *R}P0ItOIO}CCWY%?א5ڍXܙi ]wʥEXtuaIPoP[a$'~)e9YeYb|"6ihifQm88 ?nYrRWpBq%q*u#CITYv@VFT^2DE5G"I|9G:E4E FOd!Zз`ET&dʄ$خDF@_ދ#H-G5蒀B,;O:s|=,TQ5dwYz9W_PsZY牑=vdDΐAv}hmҧ=damvlls,OT[\uvZ+l{VARvae lYNlcikcxV?~a$«.K5;Tb͇kR.Jߊ8Q^3,8UKxcWuVrCu}*Az9'q5CtO&-';w@ZDa4*ZkR'6dbyGrh9o;S!AvaE6,!6P^✵:)$t97!v+DaX}&E<4bWMp#\(GwT9p*ig*U[v'A1W?1Тv!8ZE}Icfք)_DFE}Йx>I2" C}P jX dVaJ n 4U(A籭Q)#-m] n0?*?9 Yѐ# hA3uD"5DA_?Dt ;9xƳJ\L|n0F5ir a -sy v<   *#OC"IgT&M~1--eb04Q: 7!@fQj{%w m<*RwKxuBP0ݨ*RUqnqi -g^$ViX"kk;}C6P7®rS eB~J/̆+8I.q!t4!Kω(>OY$a~ ?V%l$eeYȢ,wkLc# JzyH"yi/_fpZagGɍa~d&4vLjJQIm &, 85.TFf+Tfl^~*w>.15 3"pu9]_oN08Y2hyvl9;ª3 iq6og3o³|g@9|ʂ\"mh 37*w6ާdž}wO"צ۾X‘< ySLP+$DNѭߧEP&_:-D4eEJZe_U]\`C+HV$7UڅcEbDFޥ*X )$BD98cA bbc6 ?x .dceٜC eT^AL9"ec$}(I\-Mn ?! b@#3Bqa3*#ޕ.f0|DueUMEDQU7( ?Hzd,*Y6_'J{  \ b7)2pC_?(}ڣ ҍ&r$f9\"R&TTN*([䣱d%7[AxGg [yzZH*]%c^b/.!o:cbb.?A4`n` ىȉgNğ@iBf >DhKFOlsIfmcd)@'*] (/Be'E(e\'IIdV*H"c}H&~r*7(7ݧ)*C2\}]SdFi"$Qj""='Jb]FM&)f%nRC:\.*_D0t0.jEkEa9BC›%f4i&e DPiA`n`~foIiH\YjP.AB9q)Aq괮&*?yqƲDgKD%.z*ƪاvmj0s*20A+NA$ bB!4 D+t 0C "DDTbB=7@,.As?s?/[?AA/^q抪/y- V²Dl+_rt/Ʈ2ʮfACI?͚CK/&A8)~ ƙ2gIIa[&ib2+^{lm6m^D,@oF̺,ʢsv*CN+k4_ED[_-C2y5gmג_5`ۧڒ3 sD§1*&pA+t 9? W7m sh۳9@,§6Rv>/=-*?va3&4:kB'p.GmBD%7]D2o*Y+ItA`)@cʾ,ʴt99ni!8PgٖerteҙƙarD``r))+?)I@k )# uBÇGDC\+sw\?o00'_Ǹ2DB!j` (Jv=m+LvB)m00 Z8&&9mD8:wA,h:"4AS":ayꨭ?3+3Ax7907p+b+DLtxDCw3B_te0vGD@wttK7TkT"G~#'Ln!1mCdOAq8*?t)TI^t 0zfDutDs0pAu;8Nv5/+1`1Ls1H6d™ ﻔ#c689Z9{yx"|9WA/8 '߬j)4B4FuCD6꧿[xԨu2"3gp(㭐C3{?xpSbgvUj1$;^pKĹ?D H䇃Kϵr&@D aC \x0P>@ũO TpS  2ܿR ID3ߙm\FdvصpškdSOn&t0GAtə3KJl4$J?\6؈ĩR 6BĖol!0X_v3) w`2"x Ƌ8Vձ@, TV cTߞD⳧ڕ1}YgE,Zߢiu)_EMh9uMY.s3Z,Zx 2 =dJ0HEJFDK!B †K,BK$. $+EbE%VXb ^jn)aG!m>.83ZJQ#*("A,D.3Kʰ2+0(kIq1a4aRDRRBp-y!+ƚ3 ~)s.N 8yY]}Z/TL0@q[jZ2s3ԦMOSOlʔ Nm;&60qm9QcnU /UkV؎ErC[Pk̢;/T*&SʇJ[g(sXO҂Y[ΡCjQTssZ-RHEOkY! A0>^Љqt,vi@v_shiNRPҧ#PԸ}*m{ Kէ '4j P-}G˄UHDU:A"Íy+hu`[h~0ل`PG-jk,wqsgc B爕,MvvaQ8,S|/g1~qj_sq(7f8q:o@C\_3\f,w|c|FVɭs ,5~)Ш!*.P $phj!I12!k@0Jfۊ&yNgN"Xb$B"6{Fxd6h}daTIGe«0l Jg,Nxf!-0HTl n!F⯞"-w\p_o 0.  zi熏@L:k&#q:<1tf9BG!TWȀ CJv- 8qŨ*#@9/0C, ||%%#a"P14nAD0ͥfaʭ-p d BpB"ϽC2|"&c%^D)R*Π**.b O,8 -R2o6h$p^x& bP0ł\2c1$< OhM! >Jr(?&C˔?c:FQ*o 8(VQ!O ,B2$OAޢ*l%*(*BI.ꄼ)Bxla A.23:SK޲kURNO0Ԉ-<#6oa`1-x|}|$87OB} /*B!"Bb 葬Ԯ4O 0 RЀ02԰4Cp k0Pb2qtg1yߔzOk(#p vQCr;&T++WBW1د+я,,Rs/$.#/&W\4Wl%7rRPZ8/G,r.R$PQ8LSȌa>Bs4Ja!*FgrF5bU{ ?z1tQ((E"W tOXr6R oY5+Y в8P,ُC,Q[2 HT\uDr! J)V=VT&"GjVPtmmsWn3. 4Yi1Y5CpsQ wq[qeODY-r#w,R\I-`ϵsAOtMPttu^]w^_]u^ew^5B^wwww^uxuU._a=w: (6nSbbk/j?KC5CPd%טּ*$^MM ؄7e gHD}gQ1:- 0Q$O,R+ u$QR%bWkUG5TCU3?m5bs/b{Vm?mQq!.|R49*Q W+uq80Tw4-OQ]QsBE#Vv!R7IwuXtXx^xW@Zuaux7x8[}x5/(Ylv!4P{aQW$l*rg[B f"(b}Z9CzvPKOy:OԸ41ӂsDkVG϶HXߨmm6zSWߢn)#1/ 9׹ |79׈؉[R.Ra:as <X-Z-:Zw鵎縣X8vwq DBג_wezs)snTlq>nj*ԼLcqgR%lzJēedd9 .{q]~T~!lqܚn@!;ٗY9r%pz-ض\7_ x]c`;]qAw `:HUqZU18;NtˀUy0EҚS8϶U#{=>yT!0Q˷_- cg* .Ge_ ,}Jf*X&6>f<Kʅ[Q1oK!c\wy pj'xş˟[Q+׿^ 8 w,ֿli$YÍ oQl4Y"?!?2c4BƧB-tL.m:'*9rZŹTT!rqi|͙6ɐB!.#Az$i]\@ $LppJ+ v|_ɔ%Sf\ s-Z`D*=_YUe?+Y҈RsF%x[4oyNe/wΊe͹3ҢgDƮ/|ŚjϪgXIf v69F5bG 1t1 F BSZ4ӌ8dZOR)U,=#G2OZj.I?34B3hq$ɇG|,"3zGa5$Q^n0a+Dc{m>arKvmeڲ̲`{y[oMn[)hFyphJUcN!]gtm16{?^'l7W模6#^zYNE1odOYi[ 55!͂;)dx伉S9|CzNaW<؋5=Q?LUi'#&ᑎu !ΈB֕)cL 20pX?1l t0D hVY"g(`F Il0  ACRD QIS$fE)LbZThlc D,t1ZJԐyċaDџ Eϋ5 G@Q]"g!Yp@"4 NzÛ޸*?$gg]v*yHX1ְdw: |%!BAY4<\Er 6TJH#{}4xryq&:DJD䃉5lMf3$(AaHdnpҕydhKcˆQ1C$ aXBilќ!Dt IȌ(dN]44!?}3"-)HE dS M(|15)K)PAQCE-j& E004xI&5R61$B`*#h\wpɡ#^+m2| TBגL82!)kI!`( $oA->160bM@Yt"'O-=%VDYh߂BEh" D8ё61)I%:BN-Ds8!WaB@:] ?۱gpMB&,Je}w E>-@Zx2'e&P' m-QJD9ɯֆf-uP27s4ug849\zf^\!DOـO̵1H p14QI4 >8% wv*.gwkYf +ML >cn@g%$4V35jb^;L&35dks373{]ǰ Qvx&x^E^x3ycH4hxn$TQ5Ŧ'ZM7m `%A4%Jv P,wPp*b HQW8&9Vp9`9xGpT=rvsCV 'qp~/Qi ǕO͕Rp]5Q\ I ;BY\*4Piw\!A%*B$\Zx'є? `h)'oDidl0 ey7k5v-"MF_39r80qEIxF%'&B MJ " mQ a1c7hѦFVqjVp*Vq9Q9bi;F wJ(5duW'~"$9Th'i4Sa s#ɜDORˉ([QY8ݙt*\ hźt PԹy9QϐB0 k D3`+MDIha %"M Q- Lq yX/hy;Mte`  -Ad%PP.# @ P=V1a.@ zщx  *}Хg)_5mUWK8Ѧ׵_e|Hʧ!9*7{A8WApJv&hEp0.h"@M0@JjP" *(b 0 Xp;P@ *`_ʉHր(*,@(8 *U{p Paz074Z[V҇G̷c9e50CWIb1f*}o ob*9}4H 2}#as:'E`wi`\,άV{۹84 g"mD%2%B |W0,LK$ -(|{.\0=ûgѓ@@ {a '\k{P*1c9M 3b-&WoαVt1Ic+p LJ UH{}bE"tL~@"=e8 gih͗3r0 J hbg52/7 2jIip :V>'cQ͘_2iM>kZMޢ ||攂((pRJ!#oF(:۷ZRFc W&Oa^mV:bA{ Vr c ư 1P§/hi@ZBRHNJ~_~ 1jcNE榛XS+1&.q"ka q1!`2O #{2t͜,aӰ [nmGP & vE+PA&pyg\A#R"n)fTCjO:V4,(/hQp+zu a\ |ዳ8+* _X]bD.@W2 !1<5/Aa8i0Ys/+7׾  #qs}CƐXшi `cs!DjRc BHRa4x h0ҳBn JҰ U 8*)Ȏ 8P$gyT$lDC#ћXc#A-[>D}z ;u@k5%ha1OQăFo1 "1|kFP h7 $Pg1ЩuC xaC ?G0Th:[0a Q BgjPhpQb8L_׽ C! t($}1! l)+0eC.t< A a:0OCAl ,U7`a1kcU>k2 ES%(0!|S ʈbd"2 O}E4' H`/`Z^(t=;D49bɥ  4 U "=tA^+X~5#Z<}#<8JC kj5HԆ+DtF| ,`^"fٗeu_}-ck DZ?db4'?dvh spþ99aMA0{#(8zzҖ1h#;"ӈSPB:bp1`Ծ!V% K +A8`|2 "(;DAPN?>pY S)pb$e뼬i-2iyU\%$ja v]aPJW+)\1EhưnXgU~/P/ ^ gd4-e*!<5/AWհs(B 9c|c\DKmŤLN8mxcˈY"FpAIa-b6/7񐮁E7ٮ/.`7NP!j8x1S{ !"'u6ڰ(6jtbk27 ;>(}CUbB0 39: :&+{1r&h2* wV8 9Å&P ]\B4 #Ѕ##HDECD#Xf;CDlF4*]/QDዄ/!PstɈva'2"{p*bhT'F@Ԥ4@'>xc؃Uc!z;mSL'C. ;Rqb809܊ 9eeVwLUhJ%jaG(L4N*͂h))RHt=DЅNX8gh)dE]dx3[a3gN1@ǹPdYaljj8x/>n(n>}z5On0ٓC=+2ȲòsY}ȲЇ} t\Щ'}>%+rE>H>zR^'vqepvApF5=s ;!O*jѬr&y  Fp"jmI21 k# pr!˫ꃚy34CS4]9cLd1DVhhk <3ӐE&"@7.0h``̒3r-r```'D م*33Wz%d ǭkZ'c@y ;FLhaa(.Br3{#xgMR(I 2`)px \P7<(>،*PW(}apO"~G<r!óB„/ b,[;-2X(M;3FC\DGhG@^!pګ*L(25|Z Q'pPL5{1`i$V(= &gBh#]˼xI"yi,ѬlHTV Y. 4Z۫= !ECTjA\'ex4Q#j(6ڶuʒ8zaʒ,1sm:T8D/ ԩ|J1U^潷|/ۮ;81Uj%Bu\~g. ZN=LXم:h1 Sh"S]`)R'E\f~V,XD5RN1biSس B4|zYc\[,ݶ2]tEHX&'{PZ|fý13lfjjj]`aĂ#hcG7EP))(âvBU5ӎE>zԧ ʄAR0Q~sTk&*tŸ*sɖ'wV۶-?ak,/5@p8mײjr,1L( W-lfmϧ"ڳ L(A35xa8a\L:@id0&@8Y`)t1>S3( yJ-0ӕ7!Mb^|qկ-%Ȯ\u+00bJh/ z"5[BsBB(a<.(ƃ2OLV _>B 2P%)W(& o7gY##F62sƱiAV 5Ԍ͆+!Ɓ*SO0s"FCbJlXUlnaCLMdh1@u\*@]u])?0c7*e׳cpU'U'x88#/ \XaKOvneGh7]⾨D2cs&2'r黨Q>0vi(s?XlM-ˈU𩴣;xzj4p_k9MʏSo:MWӿl78\0"1qِ`9w$P*.g0XgۍqE@ծ1 yFg_r_: [ˆB`c=Dz*&W r2n|;cMc'DNx*|m $Y|YߥjF'shJJ Sj?5>05ԇ !kīi.f=22p"YymMZo~ > M1\50au rx0 %P5PXk>6d2=VcJ?pZiժGj0R3߿[lԧFF^'K $1bD#p n4DI ##%x q˿;Vpw\UQXr<Ç3?>|q1d$_#cIxL}mv߶K?K;ϜȬXu*9s̄ 0ݦL96_f|g!ǽo6wbȬL]+/j +_݅S+;G_+F_y[q>w%ƏĝI?)H NR+p >ȉe+?RHT`mFG7(? "X#,+9.XO1d E?H SL1j s*OfIH%S1H&P[HK#tR M"f-Y+bRJ'Cb(K\9IJReB0nՂSFoζpDhIL"ǐOj@ҏɬ^ H0 dS i<6ixQ>i{YkfUl Hf1CMǓHFlAFBD⍽{S9}bj[2) G$ ?@WЂtpe0:i3Iz;*u#AyۛW;F3U(~CIHU_”f44}Q=@B :*2Ȯve`)2*#b%X2_2AN(!CYCX5Kq5#F8Z4$@._$cƶ'\qaŷXlS,(v.$ HC<%EX?ޅABE,p=4\(܅%)jZʓt 1Sl@ҽ"["v,ڟ4R~HD%JOPđM-FPP@lfQաW('h*S`rD@WP*C 'ah+# T93CFPqbbuKړR-Įx 2#V*<ɪ%Ds̪L&0Z_V'J'G0fe ?2qO2W2$(eP %u#yP"bH8ы8a@(ƽqct(QC8>w%pIySnv*b@)`xkZ5 h2D{ :}L}N!"ĐDaX@TR֩Wx:1s S%$"7]z/߇;VJ]424PNhAʯnЭ%1ɶ$DAEDĤ(R1]ד1G< ))t ]5X%4єDD /D`dB2?4xwQ`&H51([J8an(@I#\ ɬ`Ab1 d [ ! ~AHpD!Mbd1dTZm]H&PH$ ELӘ$/Ҵ. hbc MӸ`1 Z/!u!I TZ\E1U"l @I?I^q.4"Ex%>ՃX.pΉ ^!A=r A@nU&(4$4L4Gl"(Ld) l <&4SC<.5Ihd@@fcHN)5ZIB^iUC 0cDJ ")B5b T)CԎI5V9),Cܞێi=baL+\LLnOi)c-VDP(DID$C2]R,)gWe.ҀI"q^Fbx!j" $I[B^XA !I@&ypg0f}U骮:0ord"Ĺ水G@Ґ! UD96A۸r$P/,+v,jExN T)0ȋ8 @1Aȕ,QFӘ KQR- r|\F*F*$5 c#f UlR嬒(P ^QN.҅ Sm_W!I_)p##> $JڅJK DP,(mCŽHI\ LȅpJ> V5:N;@]o4|?u2V2]4}罈^P؅Ya250Jh\le񘄴6ҶVxKVr*G*"ORDzjP'g!v'8DB+ DE(S DMѝ J ,K-JN?WyTTO]X[$澴2X[߸?Za&Mg2ܰL`'F 8(A2D:=b[,:欖f3m9|(h0ȑ 4d!?6L$&Q6U!$AnwdG$W*\0#hrD#iΤoDXa$eF9K*NVZ W 4VPw5B N,b6,߿2lb_)R܌2'7MPGxHɗKjRɍo2RLAnlTLΤ̿2L}A;nTw$Jh6u|o ;zQ?ٷOR%Lc2H p%Cݴ,S3hQIh៵ e;ny{ -. +I,H&zq.E[LE RH^]xQgyZavY(i%)!wύ*Tq1G0fycd/9ANf$yҘ(O &Rc4b/ Tc 9TR~Ri*)HDf+ۘˢjHOH. VDBqZaf YFBQTA1&MMk׸36S@YP?깒ѫۃh·%)壪D3CE cp48V#AAaBT8%N$q:dvЅ..sIl~"#&cdboaBkmw 1JKQʨ,abR|7`Q9E.u+) O\$ fe-nBBy謡> hR+)<ݩC\KlKe*#1`tAOkaĈ#mRHb*<݀7M&Re. _eXg1)FߊE)/׾HH%.0(Z "4YdR#P:OUjv0El&aM!@?`Smt0#\!ЄPAIS=4J!|0T%1Il^c>09[YZK]R%[_Gl/*L|j' broLa SZ k?(칔 1Ɍh(əԄLzV:,Ĺεf*qwQVd*)Y*d~&Y8 Ƀܦ\}X]}`CtQȍ"w.ikVX2T1P4iDTf"bAn:ri>H|pq\s/~_yj' X@E8;%RCa0W..ICiK% AI>MkZu4|K ֙V4ӑh4`Lo`৏b1B*6JFWWLȅQ3٢!d^`d'yNc9C@)(I ;X֪6EVf׸x&&PCnK Ul$hB`& ͸h. Т:dn_ẃz= nK&k P N04m2͘Ѿ=* z'wR~mk n>eE~"TDV~R]+‚&O*opR3~mxGUF+[DIe .i=JNifW|]bV-/9t&)%"Y$~/~"Z‡"‡ta,HH->ËNNq #hBQ14$c~&Tt918oB88&.11ʀSo2gV@@*F-b/&Q>ED\4B hB; n qze!^L/i^1FrIp¼z"[i|!h"kK+P0i#"'J#erX|n` @.@ hB<# k /+2.`rpl\,m'(kQ! $dg3ȥ %'r o%$T O >$% @^d/! @~%#Wu~e#DHBtFBNGYIUbʢ j$ aa$cb$tI܃f/"G,6OkID,"́00C16닾`#6Z94J2,9/ErfGPge+a#:Rt2ɓJn 6\ *KEhD5J&;*cH"H @g[:Ƨ4$GLDqᮒ; ck'<;hRitr+IIG 4 2. P QCRNQ'. 0ibZRSA帐2+Pe&T8wK &Lr'ʬqqfr`B 3m<ĺH3Nqވ{dT"{C@ZcQFz"pq&#I0遠T#ȂhR;% f t P|SLi`|JgL IHbf6\CH$_5RF (W uf"r PB#TB%>/bABf-/Lr pULc@Â*&ikb%)(Rl؃;J cet|C V95ĥ&*'ѓhHn`Osk(iu|"1GxDNUNT+2"YLWl3hVWV|pWr t oy$A@ iB~>\/~L r QƧ*G:*aW~ETG^Q%-QUn"'F z1L0\*d4Vk&\cebc@WCahb@iCBvzleH AA-&NdhH#8:S c9g)lB֝'2MF Hmen2vw5&@%V'g &IhV(]€J NNC.5ut=דגf~k嚫#9QNn:'~ٶiaE[W;w{v=w/Tɘ *L.&bz[Ȁp{y p2/ Ҡ.PTdN4!" jJuBX2~E%Pϩ3FGmiJbq Pr5..kHE$)T*-`c~|`!>CKm= &dJe0}٦Z ̷bDI "8E/BlCы>6'1 Â-0k Ncvk"7p'v5b>a@JKhB"7KS+| mB+|G)B8'a9 A~զPM׺$3{507B&8E9ا 4m+7 ` -%UN;ƒ C+t XmqJ?zvВ\f/:*Rgh:2> H\"Ӝ;=<NV=u19s0` UQטs1E;w=;U}="LSp1t5w~*ٜ[ MJ =  pqO >iҿa SXn^)D/=6o,N+AK&Q#w: QUiÍn('_T*jhת)իb-vV-GL_Tm"G_QdjwQ>㦎˹2BTY9s$>˜/ISu>-aV E‘"i>D L+mkcPq`EKm2ĚkѢ?kD&hLDŽ"$YS9dUH7?SSK)uDLtXrResT("T)vGdOP#W)&~@E''`"Y?'`?@Q”?M?Uن#QI&:Hߕ!D)@'JoIL *bQ (("'?̤ 2 "Aؤ˩FB. .sLO:*)6l>?&̩|0@iWH!@<J! 1qηRw4!KP"K+,tĄaqq",/:b XN!TU%, U ?H@Vc 9L,C[1h%(r2T J aƍD ᪼)aRȲgYdf cNHSj\ l(#ؾE2m!0] Ʒ-u{$Ib "q EE.P(xGĮ<\\r᱗ܯnKh?Awb{c7ybfټv pFީ|(^ Ȕ)MU5T9? ?BgPLy'SQ@?@oNPADA-a Az.u)J*a<)PT0HpBf!Tx8AX#tCdJ'D̳ k@uBB2i^ W|P+%Z :"Y@ZbBU%bHذ0UGhd[r G%A8>`PEp 0B6Q#vPY2 &4$ Ti13!ՒfXimyt+^"ɧV81((>HP $@ħ?V}M@)bPAK*7G7X@9B( 2J&7p&BX !.U>4xDn XCXHbx2Kac!gǒECJRuasHZ>pɥ.H<{x!&n(2X&s?4VSE*A3XrL*r5Ȧ3E.YF70mb7PRl츸$%zK49u95]k^ ^v:v՝QrWMن1FmBvbns]V4q* u+,(@q="7@1;28%r qu y閸Mci,6)KTp(9%PG~N"R졔c< )` bA" pDbX6B\ *)t U P z&nƗ {Ibem^W;YX2P:!oJs^EQ~ߑ|C@H *c>3D?]eheS.5%ZdZs{'VnP]J]t]5TJ]]Is &a:h_."-q:2JfH"~D/Ma#db0M MFn `%"/ J_nƤLŵ;Y:'}7 !1`/.~$#v";%\ |ǘ_SуRQS$M$(R$xxȘG?WrwmF艢#:E]VeD}vTzy7!&Cg1DV'DDVx"d%׈p+"Ce61!=qnP Mp26;M B/"G0SAP/c,֨k #A[߄~U91Z\Q&Aơ(!ش{BnuB_ ̅4550f%q "1IT#K*ْo(p['G|I Fقmj" #bH4JC1&82aN/4/EAn(RP@rK14kKPLY؄4\.՗L˴;-2sE Y0zYY!1y!0fcfAUQQ#$WNˆJfؚlTx?C?PfAE?iW.wg'dFm9\zFgg(b' rA6G",GB ,dU@6'XppvU*D ABB7$aManџN8RN8b Z:qЎ7MR%`e (F*k;AA99nePJ^Ģ1$q>p:4L+KTI (_ V{x:mq񥥜_(¥c Jx`MYÇst0z8ʦsz!fA{j} k"_R때-!tL-}FA4:j~idRj=x"Z("$HR$?!j%؈XJfXdlnv'$?$+E%w7eR)?yH)ũGQhGk00 |Ꝥ±v+aq2np!\cM7q剱΢.oj."',>MD!X +kF;Z7q 0x9ɇvM';M04p ߕ:ˢ,o-IjX!^C.qF[Qp)q򥤿t3\ \mK<ɥZ"Ô%7780qA[CAL-6ZHLV67ĥ#7Ӣ6)QȊ+`(Qw:m.| ~ُJNHZAMr OIR=C"$G&jRA$lRH+s9jfi7$RfdM"=m?GvdNrL%Sf'y l4SۋAP( $z <q AƸz|i|{+,4<1/,|0_!Y*WYMޡ9ZY+:W+,Ou `!<bmeZ|: IdSvT0_` 1SJ YKc ^?o:ko5YHbl TZ BTJ 炗$ "^_;i9-Dƶf`YKƵ-xR$4׍AN*0T:˔MӲ !&#2p!n#.Ƥ# GbO8 s)RvQ}"I={&$pg'W0̘IwXm"$$$Eo= =у}W (whzΪ~pm` r) )*+{;;|+3ѭPK_`vCdβf6(2ahEj#GJs,q _ÅXJKmQ3ўUZZ2>u01a,48$`,'O5YC rx ֑__B_r:\L1ԃ   q*#2"(`p3G.1z17T s/v3 *ۂ74MuҔ-P1ꀊ S1UG3G9+:TW\g""uMC G$0aDG8|$ɗ/|IלQ9k)RLU="}io.]sp &LL m/ѿ#4ᴢɗSM9K!%ņ`B%J"$79]ևwu4T*HE"$L7Ne c|YC?ѥ9ز)EM6}Ϳ:KJe6xw9{ܹ@m"P&XK&+v7L̟G+/> Y b\_-o' qݧ+/zj<\[lQ؇a!xr7/:xrILJ(D:8K-Dr2>"6$ $7=+x2; 4;7`>뤓d>R!@ @Im4@Q%SD5NMd"N$K.nO8? 0]G?@P-iIKJT,z\ʞt3IXӛ8srIS<}Q*%7ɀ<3*ESH!NA̩<ftՄYC]C(J&6La{D!^ L60%T3G#0)Z`$H+2u tEI>>y+05h*p,Ae+|d8|3! U@-YdlFЈ& ?˛V4?˄aZӺa [B$$ ܀Ţ_UmEscGT9 FE;hc |t[39$߸lv?ȹr O,hEf?A6&t\C.'綳cq>$0H x؅B=ֳ^t)SOGgu,")F7dfeKЄFYP0D"j4pe]JxE!ƖBwPEXhV?ջ_(X1 Qx#CPP;ChЅx#yx61uyJ[u.B9tWYӓ7g.y:T%y$ (^ \X7N PX;eUߞG,kOQ6=I$瑾NM(GBX@dXe))$L~.򨘤$|C,iR0[S{)aRt ~D1 m@,)"0JϰfP@(J8yiKp ޹ gisx5prrs'a0 5h&㵄{沌J#l@Y+ lѢ?01P%^¯#9  B 6pr Rhȋ𹡳 X/춣a0?,#қإb2&ި 39ᗳ 9𨐵xI(#+K<X<'#-2ɒ)ۼ+1)Q7C8i:)ٟZgF 'i=@@m<**]Q@X6D@Bpp"h#=Ⱦ3bV C4/bU;VP>(K?0p p0̂F"cj{>`Gи [/; _HP` "^kPKAAxlFl.i?pп(B ]%1ȢТ*%s9bع!XICU!P67IhD!0˱8( M;/&&Ϲ;8!@(Ӷ MŽ;0)W|(pN,]N<%)FC *fDg''s={6 ##Ы"ăj[p5eCPZ l*B؃=X+p& TBrt5 FLQbxJkF(>04!ȉRϔC1|qN+z)8sL8JH/%  äΐS K%xi#:57 B48KQ x)9]K?  ziRGѠ  3 GH7  L:(TF&C 9fa [;瓏, Y)(` ND(2 `?\]aD)b0# 6 bc8%SQ 4=3J 6>1P`ZL&,QҩlZQ p"q* 1Bb (;Y3a5~オAu4}a=.-8?ރk6(vDHVW%fJvz ­:Hh*]ϝ*z T&6mڣѦ=R lC79(2\h8Td. \݋߮9LM𥨰k'pXp %g-km\}tXNxNo(vNސYŊ2> XHQ*ް6i8iDhD@IЂa1Hr a$3.84M7KKh nxe(|4\I#(Q47J["'qByIiL2 j9r)Y^AU4 )jG@6uah،h@i^YK n`$G\(Sv T捩2MF2XOhJߨr %M5d+¨B.mބ)؄φ4f2D^c`ѝmkg;/Puvo&vS_y>_śE(I3Uq:Ql;7A-I+>ROyB!X`u"=;#S6;ҨA6 6)`qtk>H&l"A;B)$ y⑇[c.ˉ+P%.l P78-.*-і.ԠkʨHA#r[K\ P<`PP з_u|ND ]"}8}M)m?TKxm\_ b*eC_9Ā*FYu6cWL=Mu-;[6`U:,^#3u?yz/_wް}h +2g_t' a_ n'  F|(C*Z!%&N` GJSG)Y6]Sae!zh,IkhtNlҡ$ƌYoLͮ[6jtɪUD&K]tKdIL|i(7%?|M+8_d{G|'w5j}!AцHLar  "qbC~Sb B!PqPBb `b#k5 .2w]>l D9erz9! b~Ie+cPKS1) _aWR \p3E uBG@ ˬk `b0љ@jxD"GÄC1e$`C!Z=DB3 &YMUd%\[bsC0b3T1t pQ.)W!V [ , e Eb9!)}f(qC"RBE(򉺝x)N"mK#B= g!dQ!E@e49=IAhgN|j LcZQ}\I"RB` R*X @^`/h+`YɊC,D"BAS>X!L:^HԡvG9rײ-Q݉by!*V\Bv'|2lEq(t̑Bc]"5_pٮD3 8ZR-kTd Ԑ %0Z0QIjr &5bd@hE!Hւ&/Qێ&,l}2 EZjJș92ں$3Dh(F \|?A H@|`$8=l:"υ+S4s+Sv[OP@@yhPHu6OyNZ(ŴhL|D~BraSԨb`*L]jV 0Xh k€ $Ū@WP ӊ*pȈ 1 )E3P:Q/ (=[vpJ|-L&b_YXd)&1~E"FM _娩 #yh1GU!zӔ ] MUh$F2D“\. ] i(#g+D IY X8}pLl#3mB [p*7Sǀ'#$X{ye5# {y$9X(E0,*<MF:~֓B&cQ-Udp:k^ÄKF?2Ns:#թNթ2lTʹz3@UEAZT?h9q;ji& 3{`@  P[3.x}}eEJH~%WbE \ר1]6&ZQ4\"QДm,e!Bng;!}jMTa|%[%gN:A`HW~BIXjȈԉ>=Z΢E[.,э!\ҙX^>D!XIEq ݎb}ԽES6yO##&YOM` ' J'RQ *no"oB@ @? Z0"MCKP'uQ4 a?D D"uFxv'u`)7'\#8F!(}Αyj NƧ92GaJɆhHY/zTTIUɉhBTaDEehPZW¥Hˈ9HXIY!&bRx RDmJkf@)obo:+`L+" hKMINtv*uC |gwJc R eM' J`(2|1pЄBՕ.5)=&(h{L3$dw!ra l$j͍,H򁌖džLpI MD'Ȁ F.JA"C"i\#EHxxwn,y}TDBh G@)ĐY“圪 fAu)qb+2.lqyв1*ENjҕ_VH䈎0ӚeJԝ׫z~j$*BJܙX0lFBP)^jеr~mB/?\?F\_gȐ+ fp'(?߸hb[| 2丈 F5i•BuYiFfVMא-.#?.Մp$1d٢A[ܰ(׻ vvSꀔD7 'U1*M@1!)X5ԦSu?AoQ6{-m:4DY\ߚrmnD.A@ˢAD4.<.bq*p}M^-j|2USѹEn)nMNz*ɝ qo&@rnj4Q&:ޮ)V 83PiqFDձte IeTiȪJ`g+(_'Bf;_vr >3ƛ)^_G?h<s䌇MQ hD[ohLny P$G+NwGHM yA$͂$,apz QXNOGߘ3>3tGZԶN-3lpL YM{GRTWӆh@BЩq n"0@% jqn\r%Ca.D((_Ĵu_^q]94TMU>@r#2mT143()q]U Q?"څoT&(L+AB $$]$} |  0f--?IŸ &H$R(xWB/4CJ70]0R^C$ۘqxM+l`0 %~ N( i6\"55(aJYsWF`D-/2N532k؏, Iܐ . K$BJ *}cH Hfn&} L9wS)]0M?@7j@7 sO|>3#ˢQӢE$12H+p`#I&RV2pПw~= S$M>eͿ*LA"ƪ@HAukSKjJSk֘-kNa$|.úZXq&F}! A8Rɔ)r]&RP*T -@n'@l޾e <1 ~TpBg\ սG~|+/?_a go޼}9 )KZP%Q\1sOBJ(Q/+#*Ӫ)EB4q:) )Ԛ/Lk yߢ*첫.H k08sLH&>$.6R53 ;ĎN; AU[MLf 0,$q G`s/xq0!Aν/d+7yP*Cf 5~*z0\"bQB 9iNVH,(ArT ~TLG(Uhcÿ6|#J#(\t!UkCVxm?¥]U)WLIE Rv% %L% TFHdHF&т"U jPQL`&eRD& VQ FC.v 8^5!\/ B ] FS\pLbܐ*2?X䰆plBGdc05Rț=BN?B80?~JFk-$#@ǕL&4 ` n~ɧgiY| TR?N%ܧ-a t ]6h6QB':}ըc}1@tیw>͈D9|P Sgڊ)#,0\&N琂=;T ڎ=JY,Re4R;v]\r3e/KB`f92bJ,1eB"ք^!1F&0H5H?f!ʥrV59w2gI{~lR,w^KvGw@6Ig@Vó]ndz%opzGsJ(.{" ;n',`X9\mQLrF!,AT`p;14 \ 9,guK#p ,Ui~١H.q;QCO{T23"8#pfcJP3hQ+(#t ilIiȗҥ ZI&!Ԡ7ļuFs4bq(@jMoX1,5 se2Ϊ (d;3D),E,6M\ialgOH;w}梇&LsniiGƶ&[%[haC}ok4"^N qFnD GHtf> d7C^6VG @$`R`ڬ bQ~|"jD@dC2D O I2BЂ̢#"v")EB< [)xn0 8 j40 &4zO\L43/]BNV &A0 kL~Ltt:Jભ)*pHAk6H?#?rKF;O =)>cI+@r nrކc7`nLo\gpGt ,GD;c>DfBfD}^6M`þxPbDaGEP/|,]:#" )媬zh>îR*B+r0aF **X֐Yz1Ḇ ' JLCfꞐ5X y*1O1e 4" h^i >1P+  y'>@' >38Cc*Q#7g@A#Ѹkoѹfүk;1:~H`9 g)OIshC1@VGAbfZ&Bn!! @ vdo t.j h 攂.eo-@y/cpGyr;̪pG#hH/~H? "-Rj(Ҟ.".e0LZ")ˊ(\*4u_.5`NhNA /B.*-Ha >3;<a cVP3dn'`vSvh'Ȭ\6Qf8 itT`iB o `znR`0(005l3aGJ҈勲hqюc9.:.:@#ј4dC63"".G,!Z!" bV\O2:BorDdD6:F..tc_ d7.&!vkO.Ї>O B4q! QÏARI+54_%1V5g/ *5R7N6ZeI@9oƕ a aij9Y;9??G`GXW^K Ôs,WWwv;Y7I =N`<[&fj8,]^G+2"Kt;1NH$`Do'EcHHH%dw7;6h8Iw6e`qOw3"BpU-pp)+ F ^dS3$, K ~v"b!|'}ano.T3__I H.M 0Q"P uN/ s!3QRMQLF0Lp4`щĖ_Tz15TJ\f8G99fYK6ss3t܂+"VuG8Gu69"^W;M3܂K܀ "Z=G:@擿hFyvk|+pBnWS;o&NkW>I0`~ttC5h*:c:WO*_sepaC0%c%"__ف911&5/1 h`0Φ'Sx!".B ڢ6SpEO߈؈ekO`x8M/6,M .P<vOkUES'D >O^FC/X&;N5Nh8am9is9wssU<i-<:syq{;Gy{v#=^hI;7{YMz8ԞyOdY9슡 &"v6j)FE% VSPTv&I֠@6@8"Bv3A#8/(QɨAn u3Mϩ5a(S>`Ѝ B_Q48h}f&7\)ؚsmt#At\sI9˷ӰW^`vHsDۆ9i;kĜu9yx$CtYtP|u)@&$JxWsʯկi{5fxYBFmHU/JxКeqpH1{89ͼj[W墇 ɾd~Q wgPE.;КluCOT9eP+dZ3A( ySdPa68mIH-Ȅ0<0( & :Ot_NL]DY:䏌-胮s;_7Y|;Ǒ̕\̷]ɰ)yHM#H,;Y>49s(Ҳo<ƐF_C_Yސiϒėu| ,5>KB5B` :4e^}SNe8df@_ <-:6y~46ٛbd' %cTg9/_t0{7ۯ{qKL8U2"=3P#mߝZ5`HL41C._x\y7ܺ4ȅ#-9ҭ<;9;+{mӔ߿ ,Ƞ@;x7`pI,?"2$,,fI<{b@!P '0I`p ԟC3߉\"(/^Q*Rf8݊AtP-!_@~PXV;FEN˖) 4Bhʗ!șeB8AV"-i õ1nBS3$z*$(ѿ# {#䏈T5&8oἵL ņcSi hZW 6d~Z3$Ǟ $}#80C )C 3 0L$HJv$?x4^MRm yc1hTbaUQVAUP?UVT"S=ĕIfV Ā'yRGg49IDL$QD %$IuѢd(HyaDV=Uy9OMēSIIujJWtPT@ *ȨI2Z+X]QY)Rf!<YcpW]}=m 1~Afdc .FReQbefZvl >?8Hv_B\&o 3zHL'FU]Ci]"晧)5Lrkxrk膛o"BEXk$"/wh蠂?3RpO ")bhHL60Xb1f@;b|' ]mVjD[Q=YUBm%OUj 1zҙnĐY2yQB~NПAhD jH晸DMSRBgdLe.JˮR&QRI,񊼰6[X5FFm~/m똲AymPPb3o/g]{{ZʹuE6\*lD>i )( taց@ AM> YQ@ 7P^8S~n,+?~ ]$c Ze!E."H1(FP|5iOK 3F+; $E*X5i E%ML+JWC!L#I/ r H-PMr:,D$M(u)H +ZR*lRT~/vO,, X>(Wq*{qIcy-ma}k[[Q"Ry猆ߡvw|Z`~|{_7lH7$h,v8 @) wxbL3c _lrHШCMkiP^t$DGU\r[ge=(b8&orI'9}"f1t}=tgi2ITev94(;WIdYZ&[`fMx[;yU)W bsvdr43/'3@m?QDH6'B,Ea#%O]<37z4.DGoG!7vG w44w !W~75p~%4 !A~ 9p 4 Sx@}Ap7d,጗aV\G/8Vk%,XaIA'th(IhfS)9YN7QuqX6bSri-aDhjɑxgVh+*}&"=qW* &q*Wu)9K&8D&ff)*zG%EoNcdT-/=Q/Qⶇx'atRRCdoCIso|=&kC4} |qDNwksWqr)dƁIBgƊ+YQ#H(z~r9cѐ2y1r+{̺d*Ȋ@GPx0 H $ _+h!@,pJРšk7iɚ*'}+''s?HItH{8t 18T#t7h:Z Y剞uUU7)mgXn] ԳÊ)vjBWm7(10XZWdr8=<ٙݷcX srAioZyZS|̆ۆ|ڡQ𐰊"!2cR|&{ޝ~1" & U!塶0૩>@ @\;9 q=~Zm@ {JTkX?C|9M8XM?CfuBgSIy)ƐeY!\ c@,@%N!&$PE! @' =6<%oƁ@ԙDA?}nL a tf$"e^ώ䟮 ##ڨ 1aB6fM*pMfBh6Q)QD*6q䆁`1D se*ZEoQ$%61G(M0A *NүHj*H"S Vj62J&8:("!>5jO(jH%*Ls@sP* %LI$&E#Hj*᧟:ThY P+׫ HUi VeTY&pm.ø ~@ 1n˖K1-';,{w!bV6vׯ4C 4B( iSL/b , DVX^tP z;X<]> 7V>;O%ꏿ8Z>DP|P)2C0ԐMjuDqG _t$'q,1Fk!)mG$\<IKlF 8t! LV~MVX(QHHnU!%:MT%xmGc򈨍\: ӐPB-M]":! 5TGBB*J)<9B+zrTXE'*k2SZٟ"%:ÝKn1/D"4F_MhD-k:$3 *_ j浛|e&:풗B5tA+j㊄ ;XʘCRcgX(81Ȍ@HЂz& @G|>p&&HQ(4 m j4*Tk*?pF(DsېԦm >X, $1@lPLPIc&;O d61fc1"+Ytv:ǀQ5%jd)*RJIˣ kҝ:a5Iw;TQ@= J*Ysz+ TBUҽ|y,Z}aU[e0ت~[4ֽtH@3 $S6їt.h; ac @/# F$a:)KS@/#MB3z"jN5Ae 3 4D}` ]4x&lm@"B~5!B7H+,6AbtH" Id[cTHXĭ1$A,{?DGs.怋gsx3Нyf^%B<Ζ3%A^pIbKxvRTq+h.'[ӦI(m!s,*UoHLK=l!Z,2:p{,,"^Xװ1#arK 6L_sw E녯4 hA"E$6p6=01̆e w Д chjOB&TD L=A돂U-F?TȂڠ#A0Q(y3n}܉T%딢 5$\t숌NfeJiRoU=x9,grDkMX<>0 'L)p' P)M5:j2:, 7A %*T7ֆ7ձThE#';Svjd.F{24gC?0ApL@("\)y 0>æ\Ab50.J٫=hIe+˾w=yr>xӶ9lSxRX\/.S/m#c't˾H!P?lX(Zl( ǐΘ (԰ B"[+W :Ѹ 5ݸ Qtd 옘h80az12 RSf*hAIj@8B$`*; :2c&+' 5`+ 6!2+;)9C GJG<,C)&`H(Ã>HM&MX HĶ.D_JfjB&65=e۔WE8!>hӈdD`őX^[2`A1MY X X{hIjF;~C abr[ݠ rj"@ zzq`}0 0*}9y0@ "BKr:$H"Aͪ| 1B0:B-$ %(Ԉ3#5:3ɫ+@YCT6oGAaΙ\ɵg\/ [ ,]* l90( .d(av-(x 2)sQ )a(քI\ԠO!ax 1-)0$W$B) |] }WP#CXy B B%LuB%E~^3z8;;#uY,2`CC>|ڳ|'m0GPe8DS .&؃&$H1(0 b!+𒆹ZfH5`g}߃THb^:d>@Uۙ._*׋]-ڼFU\Bq_=^p!i1]r `~A7ݤI? # uE ȡPc ژ\卂 P[!iы J][*J#J"KK" !a!:"5a$pJh7B*nBXgVQH@QMQ)!`",XYL˱R`a%G(0-$KF5du5-(gƀ(bڸ >! B=)i5!Efb,[H}6gT%4cn3;E钥vb̕<^\f >n0n kFk]͋bd ;Bz,DSh/`ReS'K-Q{gPkVh>&Af0yExp͝R!pi[Rd/i/~_{lC\w ŁԄo[VR ᙥ2R݊%&:>Ml bX ^(鷲%(n :DV0Pe*W Hyc5V;sR28|=m1]1@>G@!8Gf%e9!?^X ovm#2Ԧ$m12fiXhm6+V䖈r> (؁8S7ѝluu.an1+J+B_`RshgWOCMNvO{v&Th&oO3)u\h+SJMigww{bUp6L#xNxhJVCe*.]٤l"шH); [ x? A ",o9 $H+ =:P_q=#3f1SS&3k&MB4Q UQ! Q M4鿥MF!S 8P$SB2tjפ:W x hׄ5z'Q"IZ 7a*+?{+CTdb gS$e/_0$}H{пGӞߤ>ib?|4OMa`n@G AMB!Eu@SM0@@آ {vD AM衉\zQQ;:"m:DІ Ѐ(/*hӜ洧%ga:I@CHA2u)HV7yK^JdT9"CJ%7!FdR8%hK,Zҕ4MJL$bH>Y꜊t"7ANq.C7H8it}4;.w\xTd>$ig:E@$P!@$1ȩ¹Wd{Ц6*oa @YDqUbdeWhWl=BdHŖ bTEDYsAj/bXcŗY&\KʤP 1ad4dŒ<@;CTPSQ8 AQBGHb̪+l?M0XH4AÏ7>-rb ,|-H$0y$&2Q: 5ETHU)$- I)Gw3<&%ΕRG:NBTJ"Morӛ 6u3 eoB(-Yc&s)iv 1\%E$80fcJWe(CUWt@yn~R\O4-ZVj- hۓ<&p]m׺%A J`6Ag*@ ˪ʩ U`6L1ܐ77daĂB<p MX32C䩧q OH5_)sNu83p rYy>@"Ф +81 qw+Dp#aw8s(:Q&T"&I1c&X2Ӕjd}M쒠8*%KcJ9ЂVMpӉ&5uO\[r1$-r[' 7]3g݆S뵮ܩsJI؛ĸW=W+IM-"@ZJD ?\)Pfi bl k80FlZ|+BD` <\E9DR&6F~g.1#\7,G9C<9REq1!8X6E}'dγ\hrOӰH4Ag+ ga 5m,J)&2󰔬$iL^pl^tu6TBj^NfRlcK{exOlfj@QTGL`#.Mκ.a6%у7 [Afׅ=߼O$ NQIb>W>|Qo)a=B X0 ս d]`]p"T= \ʡIjK ]LќCQF͔B oD,.!DD@5Ab]BǽBAF\l$TW tр  |0@șϬ@w w ^ nA^,AN\'bdE(vxb(cɨوcuI*Z"-^ll 0 4J`ʞ|D53C3ɎVXR|n-Zt ND| 7ItY7OW}NDE ؾSPTAXYXSA@`DbLE`܅ d¸Pјkk bM@d]mXZ B,CD ,ÐZl!qTI@Q?lB+LABW݀ ׌M|Gb `&]ar | Lc%V^km)"p QҐސf)H)I g- jc9g l@[0NHp* 3:Nn./ۈ$E mdcW p6߷D@KOɏ@WOE@͛?ƧBrOP ]onLEEPXYO$Fm$̽ĆhlL D$p@ XN.@HYT6?&@b؁+G[BD@ "4%jVAݝ]zae`'%^̄L"$`v`bbDgȏhe&$G'1)R#1uhN]nHjߞĪG_$Ъ4&W3ߴ1\nq^ R۳Rt ȷN|ܻ[{ň |QA|abp ,Y =WT\E]emP5 r\ ZJdPP@ u\]`R-PMޜAhhAnFa@Hd)lS>"F@UzpDl!$X U Fl:wxGaGyM|iz?|[]]Y!>%pN!$D !!Dd? $4J]+9 yZqQ#qA((t_wp&#EU0ElNSq1pejuU"@q .^1T Δ!FZh ."l!B !G.B;]$!Dt4(?!4J,d!G=Lw t ~w8&&B^ R @-qEeeR&Ј Uou+,fl"F@[CKp\8>ĭa`NrҢ-b2 V.25.ަkIZћ"AR<`o[E ZHovvE6R @Rl ;oʵOZ\ [2fK@1-Dvr:$AXcls:7NG Qy/a,!)yGQ2}JaT!T1YTF! SBDSpϮŽ HL"dC6$Cڂ!"?࡭Y" ʹ`X+C͡cKI?*|S#U5V_UҧKy+_+VUttϠl¼2Fvy@TF<2?\D!p%VctfN]9wV.<E$+=*ƎGw2R 3ACCKY8xC?|VϲO[BL~RTTET0;DFij.oĉ`8Tp>(` UEt1JB<2bwPzwRηp|/;]xT@w ܬB*Pg?!D) @ǐ:ydTAD*p mJ[":q HF!"+^7uꀷtۡ$ R|J@l\`eȦM$!С"f(ɡ$i&j:tfCWaW( ۶vJ..bJNci={׳Apw@BB/7~_R/=؂~`k n8 b+xz  FJ{I !$! l@C ɀv X8P0*Ib58I4 IDDH : J"(>e tX8PX;8 Hq $2!,|0{ D:U2J)Zj 򂧛d)'~Mנ,kUbh샠Ê4ʾl`˭r˯Z;x_mJE#H2τw4Z . Q6ט6^(vSJb.cS*9)eq{teWVs9M(4*# ZC/N .‰(Pg!iZ/ʎH,atFu;Ge;ow% %H |tqJ+Yػʒtl=ݺ,s* ;\ R! =v:ew?yOIr Q-YH<;\}C*Ib5%~-%/:N IXsbi$a1SL# bp[*U-nmĂ,Pd.vK_u5pJWd1PE~P4K KFSj|c J<F6yl”decJǒ݌,YM2  1%"afhCaw|!UQς4ч>ۢJ|b-hzh QS9P^05!@uցCf,s{эtG|dǃp (Jb"h)T*!+D<DMDTXg. cv8?h>x4I2Ei ٜ@P$0~A=: Tp\4"d';1eDspg<t R(^?-h>J# Us" 3/"[I6F9ID %UDLyB)$_hXHp4>dNle3Ev8ވ'7MQe)NIb`.MeYXgTQMH ,+h>۪b.[٤'^/!L1ȁUX[ j$\(T4@dXT8$DHGvAGU+*II= P+e$p1RA q2@Oz¦@`(E,gTyK0T+FUҐ&J$ (bOueKX@HMj ZQ"%WKѾx0?v2#?%Xf 3qOy) T"yHst'ciTX%cˊ+<čKlB,!?&9i1 -hc766bS(lI,U@ va֊gh2]:/4.YΊ$\Gnp=PmV6rC+)ȕz\B@E('"؁$\BvK+f֎Nz6攧6\ڢyyz9`FύŪ=ި3VX8Dp sTWJkYu"P=;U5aeNho2h435LGbsָ65y͑\(_COT(B.t)RD$RQ@ +dAha h\A!>iwUF9S%S+[IXz9oE$$i#$h5Qne9b('K-5;-ITģܺ8j?fj \$@U'.O @nD64Hb^hly 8X/TjeݐN劚kA@x@>PR* ;F.XVH]T$RGz8eG~ D 8>쬮 tnC*.$*rz8| pEH-q`ED(D^$0'D&G0)F$HpDq\DZD@J` &qrj qia"dɑq&aHR Ġ hf AN  MۼML@!!!KB-"e'.q9 bh%LBeC>n** g#/PFW̾ţ cc/1bcB؅|bLU4,x 4["]nc4ujRp55Vrd0" Ç^dJkNH"(PDoL8F a8kHH A>0?L)-6dl&<0:&6,BWb$qFG(Fz憳2^EBNē$Ex(D1D'-KfJ.l1 Ԉēx HnVq<RHH[$tQ@ۺɛ뼂1uܪOތkJX%|N9 0rC"O/C0"^~P"5#0cJ/c҅0<=„h4xp?u`\@;"/*5R#9#IAS0$i0‰(%J0 @G戔( HIi'S0K.Y.4*F c-Voz % $j㋎.rD("8ֆ7-lD2Kdn0n6Ӿ,hoo>S0EM;IK4GDpjp2$>oj`ETHBnxMqrI ` Lu5Sgrq64uyHAbH{ܠb3&ICG*E"g.RJ:م(C#04B0X2eJ/11o[#_DB|2U80cSVؕ.\7p#C"-'"a5(,WL:N^H4bI^s'\atTMwF36cD0p?B(4 #1D+6dBf-χbH@)0AGNm09'reqThfFM0Ӓ{,o(qJ`DtdKwfr2'y`d`ȄIL,-e7S!!g Z'4R>zfA/x㣤܂/,#2+!Djө)2h[ChuŢ15^ }E\IB 8,!,4XMp$z"qʍG0B$hV .j>z% ?4 LH" (Ƅ AbE(K ["K$!'Ϝ+oR|QuRI͛:S'A=(o y0t5a b. E{Y~$_$P_\&t6x/GϑLJ+=:^A^ԡSi=x8<\a)XϟKK3޻ ٱY࿕o|<ҫ_ ~o x}Cp`Q@| XB1\CQEO$!Th #R!!Ov?GB;hR' PD9 M5t?W @W#eR^TJO59@u@@`&TF %D9dPFrNtEtVC:RS)K#thP.ŤIDTO,EP&eiIOQ%dyEXqVeЗ Ʌb h+)HbJ&YwcQWgLbfEbm`6Ǖ?Q$VXɅW bEWmfp?ء`bkx%|'~xue R$`~ HZb`<+!2?P*"Z,8$ pt,ʈc/~puY @`^ZYS^hVVU %tY{lE`2@_A~ѝAPA Kqđ{4UhJ!ԓ(%4餔d5zdS61ƒ \2+~ < QPDV SPbȣ|4g%iE$gERhw5Fff&+1D hvfI Y+, W Ԙ1^h O2;؃A[MpVOpKAaO#<%] P]CLJ!teBʙ*r-!=B,HPԨF5ajڌvHA"xG$+1HWSd%"qmZRKdR&N :M!ɤEɍ8P$qDB.tI*OuO%Ff%H ʨvK %e"V\]yUiޮ&60eWc6ӀXsIr p4#g2Mk6?4q>/3_LC 1`CGi?v :{)s@x.s:],h1Ks2ieVXl0a3LC.ȬZ2J;YY t C:!UaG/2Z 5y4զ4`R0b&o8dR JuV1YR {KC2i8K$a12rsJ$RS2s ۨҍΕIp(W(eֺ% h of)vPuۊ Yѳ R+(6 \&fMԡ,JY[L@|zgfg'j}EG̘PL.33c<زLAyK}ӲL,R)Jf_G&-0pY# v6nk.dbM)xzQC|˪`T/![1R@c* CѲ$ȫ0*vSJaN <֭ȗ2t#T,4Q (5"DUl{׉m嵉S^'mMLȓM\Q2a #0!ٗ0 ov0~Ov~~b%D*^qؘ*wQcZxR:c%?6H HU?FT$(7s]4dcUVU+GsSV#؃4!7+Ȃ#4!gtX @@X)rIXXEduB9dgvivrvv&фjׅ*9' (jwv(~'jKGa[bp8/\A`@o+òC4Cy,C\N4? AN-4Qzzh^–'{bB˦{] ?R2` Њ R*D,uAg_,U_Eo4}bfmR_Qb '41~ _TYQ31`1B&GKr!R6UVUT5gs60sZ5($Y)i29':XMhYvővQv/h&iL)7x68J(7A:#r zSby|kH*x\kOMla$#$z sQ z`I{zH-wW Gq301oA,<2GU`vB`qB}aB;A*E.زQepѨ13Q)y#  .QQ; !$Xbӎp:d8FFUNCEzbIXY)s28:): *3YVQxv/Ṃ9q%q:HeRr6 .j8)~1+.y@JS*Lx\ }!ku=hr]u#{X+*z{aÖ x`.sيgo1,|{aAm%Q (A G.@w~FC@,F)y91y3.u:2jx6FRG ʨTFTnt@ҵ[$R%kUY'@9dIS Y;' Y(x*}&I~y9_)X6S2&%%E3ֱmcM/$qE*L(PK3L*R$kl#&!RM-~e;Hj'S/1x(A+xj[PYv5Pk}d6j6Hm%|hՁhuky7Y {hIB2 Dz{2i:y{#Z~*'L8QȞJőK d +6bsi{!5ayˣ+}!,0]y ]Q^,JDDz>fB&+گ Ѽ&Jwl(*{X?0xL£ ,cM!)L_31B"ʉo ua=i>{P]*b<2xPIkmX,$D 6TGR$ZKϽ)ϼP4`&QI{9w:ywk:)E[K:))(v&P8;WY|6#|6*=g8c! c 6?!6G as c+q˔Ƿ6,614Ȓ]?F>E=ϱ>Hzz ňX{\=*j^;#}wPXA1+Wy7|Qo\^ͱG}F Oq`E  1.K2eDEb751? sj\ x: qCν=H),$ $LcϝA\`'skId.@[]tѧ#ZJ(:!ݬR u#MFTF>v6>1_ !8S:(]`^3d_K SLf-ۼ3.x_9Ĝl.z+Z>Xy]hݼ@6~z+*Nً`C.-yxMwx4|oH}"EP>d̗~a 衙 1xLxΨk !nfR$CbVmܖϼc)Pn =m9\fKЍcG; 4*OQ3Y/QvOnWKb Uk%*9MU vYPk as 2M< b/Գ6!+31и?]QkM2͘bYM5]4&~]ͰjAN;+o޲}1&Bӊ~,Amoa}v`aSm3-+ʷ5P: cw.y 3Kt.Uz>xP\3.FwfwQ[G 7z'pCے}x]Yz=1Фnfg(Kܝp);A뫃w~Jx]蝵nWNRŐ˨9WcVAvvpz0 >zR$jV$h@* 1*kk?䴈[eBEO_1lkcYNAzɠ\o/{?$mv<So+;1vcG0aH  %J%A&%" 3y_E\@a=la"b0T_HӣIBv)LB D`C?WqAo1\?0Qdꁂ;:xfml"ۋ8t JnAzPэn &<',hwH f""l$RyR\28MrIsBBI91IL&J'ѩ#y:IԦYiG8 PTh;`wYT .H@')T M .b($^Y**LqEz`E%++C7,K_O-b\f.qQ p@"?Jqe2L`A 5``'b6ʼnaL/c gQ=`! tt0D%,Hd^0z " zP"MQӌ*YӐ!BHmtEcr@+E(QqL4H nx)ڴU:a+̗_,%IĒ%MG=U@TEb9 !UH->./#r[HA*serG-%,],T8fr9UܩunJE"OqV>%d PB}-U@ٻOE;9+2_*8P5M Y+*±H\bdK['8&b) Z|m ѹn!([i cv7}[HF{cK:0)PC8?xFH ☸) ,݀ r95J$Z3R ChbFD,mAح:Zc̭4W^klƺSҶ1rYnb Sb(RFa#ː0jQˈ)/s?k똌ɡ M4ۘEv{Ǭrqȥtĕ0H<%s.J=:(!@ &Jȹނr c̀/Au@en/80 t٨! 2:LGvA0̘ǿWNڏXŏZ2 aH}PύȞH-e%@IiFHɔIJ\;;p=LJӚ%DC㒟</S^\ |Mn$[0M)FE%ԃ;F| [8F=@1B &Ӈz}2õaH@AN2 bU8#qˠ D TM,56o'1#%1%4t/I}Dӹ4YIK{CNk^G Q 5f(+ /:%R!?cy2RE$ (2څ芮Rնx I1't $@I(H(MFS-MZ|0cg۷GpFoZqҩNG & GJg;Ț%*|$kXt=bYbA2e `kD c%,IiˆĪd:3HIm䂀$:QPFrтmݒ.1aCI,d7tC}JλE=uS,T> Q M=;ERѬ\ʭ:n٨K3gˈpBN҃ziq#7({fHSC@W(v@M` y ֠/D@@E?[Bmpܘ2n!ޔ,RhɌrƗΌzS0,{sU"s|ADA&U+: 6d{K Ic) 6FV$ë3_0\V m]hp lsId=䤭V4ʌmy:Hk7M˗ Y^ʁ-ϚkV\,Q답/N2QHt"H dFARZ鞼fhb pS0' /@sG!~y[$` F]>v#N>  Mhԭ%EZ}yaڰg{`͈8СX@Œ@ ӈbbǜ "GӠ~1)N[ȷb% 0-gȊ,pY^PVq]c ֥ăV'B ϗk E.=jvRjCrzjʝfve>ŋȽAA b"`̆ m!(l"әbsfZw$ }[q& 6]>>8&͈?QtTtj,qPZ[ˋ﨎@L[m{Y(99 d$k0A* 3ۭH1;#RReOk}v="j cor%go=[˓<Ѭrq,%EduQZ$x5k)%%N8_W%wA7jOF>4|!dj&jiir߉u(_fH_|Eh@p6 q%eiIEC v؁$$QZA1K.XM>yyRF%dBTPBiBCITQF WIw!TSF%g9DK2EP$tOG%uF 0TEX]5A[m  ?]mD9#FEX94Ve?v٥G]VpVGmDbI˘ZYff՘$` {wמeiFe)g,nXgowt-e `ptW`v}l pv'^|^}et_!B%pqq`͔!7/ꙡ$bX3hG$.{j5ֈZJQ:YeMBibe [zp͗MfSlfRDkZ1xD,S-]O)|SOtTH)ed7TPCIԁFocj,Y,h3F'O b[G3kaE hFf,WnF[lfkm?+0ٖ/3u0U;1Hwhf0p3 ̈3մB>6d$EOc]1$h%9 C;6 %qH4J҈Slg"4C%jԂU-AZ2bpI6)yr1^, 7mn>!Ә2򷃘tlRE䦊`p |'~II(<&bD!cҒhs>F,6* XD@T0IҪeuU"+YkhVEy;l0,IaL0xd̐jOs5l]KsP1鋜l6=d_Ul֞͐{ 8Xwg*PΎF4]﹦jC*Al`:d"deP|hC ~\/% TQII*tj#pmH mԥ&IMȓ$[P^ƃo|@b5NJBrȽD#* ħ/$s<$.){c"V @&\~pD-UZ:;i ,1A-,bw*-W=ie_f [(O̍pg?ͫ}NoB'fڽw*{ 9=F_9F Bqp'<}Yx:VR?%Iy6V DƔ)r$CG]3($]-a31i_<ۋ- p1vF<`e2$!7u:(HS';)nsC:P8IdGe*o)IcʰIW¦ +i.* r+(НA`в+-R 0ۈ,i2<6zMz[V{QlmUzv׼O:pN@q{P0`BЗCo UA0|#/kc$;0G:hUnp,43D q%xC~$Oe'-耏U΅Tuiɟl]eOW͠޵ ֚ہgmMO9ˎFsE߭Ksma=⽋KE7Ztq?V̱^聞qs0P9FJ _DL{$ HE?0ɹɄL (V} 5TLTF|KE I[- ӝ_SƔ I[}PDFQL\#ɑB<J͖c9D9BF\XOGH@eD@+N ҬJuNhR BN*ݠQFױm]FGVmh՝-5(GdK֤DJO:r\ɓ= >q g "wc0k0H}HC9#^T^Nnz$zRRex*M> ̈aʓ Ef+VP+kCTF~ &v"GCĂ"(Vԉ^2,~eOQɈE "I,f)F*cDl&ڐEܕ؎_4fc6ΦYΡӥg*jEmf\ںN?BrŲ0*>O DG NI|BI*n.rӪAlwEe:UW% La.a8e-e K9՞H[CqDDŽF!/!_#i(_*VMҐǚȯF.Y)V _TTy&V& q\#_ȱ8]@gGT+a@Nci]202 $ڞ 8.D|-+Πmmή;]|zDꪟ!n S ݴ>*2Iު:o39uE 1jWvSP18-@s4(!gGn|{0؊f  ,~("/l:PDrj:Јe )f|F #x\ 10624mZip"HfG\Ŧ28]@4@Ztsҫ6W$V s) vA5n9qnncN 9njعfZFZ$i]hc;٠KƳ"S]C#=jh!a9VgnqZZ9轠99ISBׇrwM$hRnshf8qq+0EF5i}G _/~0l"^Jl# 8j2„LQ߁'UތY_HU)BWiElF_qQ3iLhIxI x൞80s?@C:FWZ`fpfmxVfrO]ghuNv*kC ?6vg'a >a]j/A/-t#''hBs!Z?!!tmdȮS+WasYG)SGy#enae}FHz\ G Q(jD~3,$K,iL^F%̐!Ղˈ?Ϣf>a;XxV=VIӾ2Žj,MDM4jDNl-@1CsgʝX0vΝ5dmV&U45,MbB&M`qՇv]Z;i`HEC.4c9,l߮ kiC9^b6l c[9n/Y~`)R\NN3? -m5 "ǁ9ز'@AS|XQl~+=S Co;<#PB DA0\p \PC GɢC"+lQD8h$>l1 j ,_#j gQȢ+)r :̂(5H:3MB$8C ˁBx >@mZ3E]4( =j*4( ~r*SfXQQ5dRUjKX}/+\oml   4C@bh*(S-T4:#lиos֪lצ ۼL5w5kn̂2#NlKիŅC ͣA{/a?뎦z G:'rqGobK C[C׋AGCCNnGuQꬋDR4->HRL2E+袸ۤɎ2" 6.>fHp ͏@褍͍8ehj\ ).$G"D]0~z-SѲvTEmk.]%V[R3O S[8s,';o?#0lGW qjvZ^cm5͌Ze2K9} V0AG{X`F!q?+ 0a*hTiwt5H<ޑY23,-F[[Գ -B ELc"g;%ۀu<[ЖZB# F%m$⷏L$JIpBqa(C94I&q2 30HeQB ̥+%mR,[W<$aJaz:?nY~_ 3#1K-o5qMѮvUG7m0gk_W &62]k#ZM5ق>ͬk]Zk 9x [f\qMG@gWcAwW2Yk]#%M,g9%@!ey &[ \LiNO DѩUں⍙LC<2Uɪ."Dmd0A149ÝCoՖOOA(J 0W8 IW7v ow{mz'" su dIK p}~ei%2*reդ2rjHg>U fyn0leJhBLK%8آ^- i_9 c?ClFD@pLxiVY d&^-G:J&>-P)mډDc I\ih=>lhBcVqjŒjj0,JF "lZFj"^" dFFIĪލC&AjDhaoj.`rzLI ShSPi1>.o.2 #0NX0ze[NdVڪ!'& /WZWSbʮ"+.\.[E5E-WG0 #cCO{F3rx.`V-pВ ö`q^?FHr`6#Hr,:,V D0E[Yt…G M[m]~G]dҴ@(~K:ΓPeM֓aDKWF?nL@jD4i0f)>Br0ThkXo9_ e0B't^)5*4iBpLYR+׆,VtQ4r^B]":s ɑb9lPe:p n\:e3+!_HR$vh"Icxf)Gx!WzFFlOivjZ}!ytwz%Z9†INx2> nSǬ-s0t)A &0BzXl\C .?nn'̒uGF |.gx. Gy]S|9t AR"cQʤf<R" #\F,hS3+6?ײg cm;nRJ5 ؝ZضWKK=4IXd&L梮 {D#:4M{]h-l>BVm:jX )t%Xf//n/Y#SzFkz \ |cI:{DZi:ij5n  -0CxŁ+C/dD}Q%c)_9YQQX\\XN0|˺1Vgz"2Ƭ{^Z#9XL?@ FI`A.dJ_k]iH yUsk7j(dr!'H2r%R߂%0 _P. `" _w-#vt.!誕Sߕ  ojɣfzvxr5<.78bDsYK~ɗ_g9~=8!q_Qh!qaTm8%tA(PcU`9QĞ<X,mSD5ԐC P8-tXn-t$T<ѕ?@VTRv)EVV)J\ ym-bMJ_*[F XUWmFYPeQ .=h_fiH[ay*1y1rҭjPr v1vIi D~8g{ hKBA`d*j֠ $v.]u9WA(VgDjFXiPC8C@SBtM*qYVP\hDaG TC PCc)\xhi#e@IH#qѕ.Q^|h5)j(dPEf6QE1 YLUJvwiUqeۨWvAuګA'+ru>7wFWk,m>[x*x 6 bX+u&P_)8ƅYdLoiGn\`#UR}[u:YF<3@^%YM<C9BtWGrA%ms\KF@b),P>MR?!+[$pAM&`uMZKg bw)z1 IJ SXґC/&8yBböDQ]BDF4+bqIG rƤ(0I^iEt9I|4M+؀-mBD;ؤ4%f:qv#7踪U>N%0 ~s c&灩QN]j=J\x@r5X@ۂ-6mMH]meLJ $%]PV/V~dK4-"`ғ$"+bxJt$Yr#ERF230 xaRB_q>D )cJ33csT*7Q]."_d4hyF)4F/Qi mk96Gl(y6xg8` x#_mW|PƚhNJDpq"},9k-= j{x˹G?F'- I bXhD X"`Ry/_ {1V*[)ŝ@0m"5/fAXjdOk/#\֚K]Q]{i ~#x$6jf|;aGH/F96\6q;qrxxt0jtD@z>p">O&j9BT\Eh :NTBD!m[ p!h]1ϭhÚጦ"RQI{|P_3I4J+P\pwlK}e&5cۃAx#(AXQa1 12,okϾ mIJ$fS|VhET0+0#2 K^e^TmceX6H@9.4M~|*SavŪU-:m+cT;n>Dk MEC=B;+*ќt{4hTBDvc rXa 1ˬz%5fذ7{tmV4a' aK$OPc5d\ FsKݚD?rvmdM~;דnv&H<2hJKO#h%KE4C^!DG' \E'tNG?6$fX>!u^^3FۣvAvvQMywb kw׃Rl_1I48f#T1nnQk&yyr/*!bs'C|QqTo$'"&QW3nV;6co&5mw;B5E0Rv*_pZrTY#|peQVjfZ4'7gFNٗt)1`vt",+T\b Ebh-9( a-eAAAA 0*BB:e!U=n$y Xy\ ev@1/fI2k4n*(/#y%k/hL(Fv;܃=Ԙ̄n(Ng<`%pCAAcdn-EFOX"Ťu6 q:}Qo6d?[{Fv)xXQ6AG*A|7BNM^3-\|#72qB+BA+}rqĤU@V"lv{p貾3{iX4uAW{CBHk7ˑrfOתv827EmOh,Qӊ^ g ~iyH7-VaxL/*K?bx>1½llv/=گđ@,3qF耚 kTCb/AA(v#{yhCBBv"fLCC7ZgL6&W,~qrNҵ!88Z{@UEÊ B7QEl[tFgoF$X9(SCĄ#cTcGkvQ`I%aԥO1p,,/Ϧ y=^"%&S3*Qiћ.r'JJm^^;s&ԂzKSaQ1)xkp;AyA+t51T6Q8᫞1E2+6}N.ˑQAtSr;*9=[`#E0wYD!hsmbQƊ+|#t:Fgʡtr%q+1áߞ'Bjy ࢒;@'"iARq€ Ƞ `bȀC2u\RPq.·A # ^;ė*Q/"n~&^Awe>~bnSz-YnSR'#(ΒUdɝF*g>69fOi?ݑO6-,[Zɕ|! Rm^0կ-]6]1^@˻n/0Ďɮ.Nn׎ٮ.Nn.Nn/Oo /Oo!/#O%o'RpyB1`a=.*.#y`!1I*NQN!TXoP^odo!D_ Vpfs \q>.@o! w]O_oyo!yAPđo/*00|!O0t/&o!:|P $XР+? nTX@uacʄIaMgqdM/K˃1%Oo$XTL/֤ZUYnWaŎ5O濜gaBQ޷Z K^W6;SX:nCx$y?jӱ5X`ȶo) UZ ˡ _k޸4Ϻ7}#̒qɕ/gy؛e-AއJ<,snN\)`:ut&ʿH ~7wS$ŧ<|Vh%xJ#t Jlj*/D&J'0ʣ9(Cjگ^j>2"9kFsHD189 wQT6H!5%,_EN& Q=J0 :0;fDHǭ.umOW[BK! qLPdGPE3>vbB tXhXڸ{dǗy͵0_CIL6AͩqA%#Ԫ VVg<)ȄeȝT({tG-ىf֗dbY]׆VdXxZҤۗ^VbZPYV=)5C"q]e?TU}kB~_фf عfFLmVБʒiޝmIJiMUrch_vJIXhnJm]鼤qwDG(#ZSQ6:iVwU8?jzWלw˨m_`bV?N︎؅_xTZݦ}۔ec,SLfX]^\V/$~PMŭFʲ鷷Tf鮃h[e4%уZTɊ}B.^>tNdbAi܌J3ێoZ?\?Eg^b|OcJG-,܂Mt:&`ԕir`uT^~iZۍ]X! jW53R3`OYH}E΋aȧϭ_6"#஌m9Uز·owy`]KBƯlWWWR@ඝ뻝T: D!<o,1i0,4l89w?/wk! }/@{ݻjH.:x\t[t4t`k I-Yo|߀.Ww 2ٙr<,!Եwrzٽ AoL"B @A'H@>^"8?iĭ]^|gl_B D_-߾v@yE.s ԺtO6wa%P~b1Yc cA챾#n(qwPT ÒëT8Bsp%*\z…Al  33 *,%-d>C)2H ZApG/DLu El3cDh&/idEJj%;1$2H#!ْ8d$IZ̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ 0IbS G2)&d™|4j2fn*#?0rT:vy:Iτ| ȧ>~%1ЂT!%(@|*á|D%Jo^B<͎vԛ7IRp(]f&VҖ&UH2'2ڴ_463M3IԠbA9{3 PU8?xM21ë^%Ջ $gM ₶ AJ׆k+^ֽ!yE]p (fb&dUn~lBMtӳC̈́g :s 2ֲ48|UЖ~UַnCh{L0D@J\e*RTΊs7 NwJPCax _²u z}kZ Hl9؇:V)Ё{~* sY3`P#nد&6'ʄ O8fSzdX5Zℴ)-sj7"?^pm Vz +ꍝxir\"ԹeL쨊 )9z7]EW+jSz=X9EC-n!3_{} g64e;+z֩ &S?Tr>; =Ū%BJ jn H74@Zs$*ʁO !2A!su8_r] /HHUBVЁ6B7rꮯ~׷mz<.ݟcPtvF2gk-ij8gV<-}ˍx"nj׋xP?\ 뼫4TiEscSw;l* v:zt/wpVȘ~c#A|˞=h {Fn@ݲh<=H'6?b+!51[Mw|G}N7dq;6cq>%r[r ! tbvxEbp Lq–dwsWp']N%ul fY ^%ϖ{t_5vv|ć?AsփOg_^YѦXuW}&thVE~$xa'FNgl3wR/wgxgqG79p1VGj7\S$Gr6cyg0I9phbdx,'x~WMiZz.UpT(ePUUH{mWG^^t$V^cWUhoui|dWmfxMwXu}/{T?緅kizb/avSy*VS-[$wVw8c! gxLjj :hLqQRQTTU0a/XhFhY&V_eV|q&hU'39|e6_`n.oa}VwOܷMMogZzi٘iipԐ5 9uXy5j)[ׇ!rocq3jH\i}XL\,pL EM 8礍#X]qwd{,hTu{h%v_*t^%=8C5 i@|:Y1;nbf|XhX`Xo#o)tY]酪iTXiT^SaySdaɖ)I1r[7S[:r (Wi('  /3abgbL!j'XV b\ĖTPXӵ]FU!Qm*)Vtɋ^_( !iP:gan>Yf>|kVX `dh̸TlWpٝh٦乞ܘij^bb)$Ֆ(E)r" ~0rqc~<6I)Qzp&تbw7`bSiTOTu Vh{B9`t-}FVFVFVVتWf0 ounMm8ɛQ:xn dvٶK:ΘitI5p^~vi٘  5pp95ŖȘ F*!;o$=x{Z;+5Urw뗕G*~M䴔IJ(ʚ9:ge2FghE|wn溤Y亶VjZUI|@nǩcP*֙{WجTYh~+wWYh8b)TڰeSۧtxI˟lS([r[Jr;q) :ȇjz3[ )َ9wڪvp˦'l帧)tǝtXmYFAʣe-l?k5s !nqPnq[tKJcjQ߹OIAлb[| i j'˺Y+*4x a )ǻ5\ɘ7:dYǸq* |eNT̘զ{/hʚExnEu{Km˶vtK_lŃJEhMYN7&qlX\%:M ٕF)ī&,ۇ,8r9j6 QQrplP̺>ܻ C\{5{įJٞ\lŗŚ<eNTKPe[ͨ-_E._zu {ǿq_Kw ;jei%bxsɖ,qJL ӐZ;tq,X A і>,yj~*DlĐĺ:s˸k%jMIzQFNyƨt X_G;Ⱦslknk u][n=ȃ)fmR7|Y}謙 ~< ,KbLɜl( ͱL"9 !r<[ۻ=̿y~iH3˻̹1;و)m bؘ \E gmΐ6*ה!@Wml܇XF*-T7ǺǼ)P A8ʉd6_ vֿJK) M֤%%MƫĪ`ݱ*r1[2,o95MA  MLMR!q,T}X-S՜V\nzd--h{k0Y9ѹLpLgd*mྙNl{ Lj6aX&bL<$+~7͹#|22-)?^=^ӑA.LD\4 AWΟ.;ճ>_:]{HC[D k|{ڬ~ȁXۗYzk؀5 jk=ؑ^-WNi^zhј#_y&M1N>䩼<2- E?BL.NҜ?[YbѼFޡ?ܦgeiW[hL d\g]ױ>x;)0 VoIz!? 6{&PC{R,p(8rʣG?$RCLUrh X3?n9[tOC͜܂/>5xT G\bURWcƃ UNBaܡou\igƊ[hBNL0$/@.,BuY0E' /wݟ}~;ܹٶh毝-ytI]h={ ١zwp"ȏ!TIgm{5k?GO?l n : ,Ҫ‚pblJr뭛r)>.e c!r"NJ2 <l Zү%D-qb 4 R mK1&2/ :r87ˮ+H붃!!|H̢@2 !Z &Pt>J{R)2osmAA.|V* $"5T>} k 0Zf 0th14M ۪'4ҷ.Eׯ5}[!r6 \^,f9~\xZ[iV"E B1&bCP(U/n@54yL6Y-QVmVB+g -2 b->JXz/E.FkQ#fh!J,.ie{K2&╍M߉k9fla&;AT!(@G[&ic+uI CMS-X)OLSSY#Yڭx&Q)٧ƆRL1i&"; ZS& nn3 *Ȕ/M7 b7N_A\ɉ SR$&m}]CҶP,Y YT  TiӘ|2:%F %E*,KX6!Ύ7+&jCYAKq-WlMLT=e(sI)UF19̇EPc\e i@яACȽ)8{ ϕzFp̠6iqƐ"8id2!( Nғ$ V(B#!y*>'U~b|C)JM$X`׻-v]ZVCf DAg ٳy$Z~r/rzÞFHU^ZMd(3) LXA6I=Oe5iDg"GojĚfxLH%t Q3IC4ĝ~NH)AFT a0aJ*TXN@cn'"UYjexYͮͧ$DQ)r'SEG3b-ժT'WCJ|rgAeǶU:ql\0+6i.zEnۚ04tm6H N_# %m\2l :AQ| ݩ)`JR'aB`%*G(G0f_pl/L@1PMdDYzDU%AG񯂂w'ތU$ ?Vwܕ9N{T=^]!TK@2RjjLv+# 'Y7(j̿ kѧN(B\>JzuZJ$94f]}Ra'I8B–,Ept%P -Gʪ{{Y)-RSOZ)̉,@0Cu aVNUA蛠u"GIL@Td9:|, .PqaЄH=|]늹,sO|J#X) VˌMmKp65HlpQ/MCӹ 24!yD"ڏʗ 2mݤ;#Cv.DO}&8UvzaتP,^U9$y4\jV=|3GDIy} c怭r!n%_Q%z;UB[?1HSkوà0Aj-^n$@ *=S,qT gd<07ؙTix0)>-sBqp拙s139 I nbv:EcC(5=ܥYZc*:A3A)`85#0Oz8g3@ʫ j@y24L#[(k7R\-AzʟE.Y$~;23'0A(.SJӿ;={=gCD!d&X4k=F#| p<:X&4B0LI;CcI CQ_반@ĺY&:;CDz=;Z=Tgl(pTҿArH F;p m7,Xut lyz)-B- P߂AHH¿k,$HsHi(?Z3Ah\bƂl3'l5n Kn>A""/t>-0C4|>>J#y=£ LЋ? H?^sc?SH۫Jg,C=lKRJ-I@6궾6[KԛOʔ죕@, I&IYdGj ,+8`4,@lL XJTDTF7sHJa,/,H'9K'4B Kb4o=GÏtlO2tB(P3`C w$o̺:YD%c?ʫ6xdTHJ|82KM\Mشu u19Id,RtIT4"ɼ[-$ .IuҲQ/8C͂˼ ڤҼNB JĒN2F6ۓƯLK,5lOnU`ٛö9 #oBNEKGۖ* q qG ljɜ5 `!^5Zdf. ̄JtDi`$% 6< ʠVTu8 Rt-$l`8 BrmUY+ ST@LU3-f]VdQ"0$TLQ4FtQ$6B@٣UtOύXlн{TOa-xTB,T/LMUY9Q4Y 45:V }ۉG1 ق87kQЄէФStH~eaVd[R"Ғ";%@qݛ t]ER R\߬Rz* + o,-\5FuH|:tQ2? T(TBʋ}]m]eďhhYO9ٶBBo@>LTYh^1KTeՔWU--?0K?:T%^Z$6`]3cZ((]QڬA}J@|/BJMG2T}vh7~c>މԞM], Dc| ƔAUga;] M| dJMh_\%h!ݶ%eR&U۹u`~ YNej v-Re_.u[j-exEB)M}\hV봦Eo׬mfUFp\k(EOCd,H `fxz$YL}fY*bgоىb7v^Fch>mpP0i=h5}]EdA@^V-!fm:i&jV. S&Ru`` o;F\VR '4`\-oQoi^Nk-۞fS6i~䞆 ͈:D>lB]p.~wݷgh}ԕTM?MqmՖYԒI-NGWHv&ʤdZlѝiV iU6u GFo :g<婞`@?Wa>*\_nRN\GONtx-8iR3/8e6O/gi1s_-lκ윈Z5tߍbH_=~gTlώ2T4F?N9 #cO5Y=:]DOZM Έip.PgViߵ_mam[SB(܉s8`6o`3rx3>[I'<2su yD[',jR'I N4W'ȅf~R.m_S/̈́ژ~dzIiX7F\(Fdv{WH_l.lxcgth/|qb>mvYnm m1Չ.wA_vcc ^\'xg2K@ѥwd)k }҃Oz?OWRfi TsGj-Ijܯ: yᯁ_Ru@$u(\x/\/IB~kNPIi%'IMK6gax,|pgXH „ Ȱ! _EN #F5FԸQ"hP ,YW 9mAwF O y&e)BIRjU!KZJ(pȰcŇit‚PPAr.v8(p0߾%5fMeȘ1[VwٚР MH:BO"u[gvj ݘaA8&fz MjܖNL8-*v]uuT^'ўqhq&Gf8df|)(A1`^ 66!e^5Q^v-[MPFdQ(RHdRW%LmO4M4TKNMER>AŤSA^e?TƑOYa6RuC5ԕEeUYa](A) bfgh46١-jm:&)&sW D\Uq5q\,'=vAt}z׫lUzzG{S'GdAV_d:`eaP b_ &btFXynXAeG*hbZbɖD%I$/_ W8SM4*R͎-%eF!SME$Tౕ^VLVSIH&VE/+^takB_rey'YccC繁eUv{ħ:+k|vBMę\f4WsA@#J +{&zph#9Rɀ((" _'-^!"nfCAs[W=ɮ\j~D}ы0Rø0)RQJ%i>]lTTP oLO#URYAdd"D3(>s'n:r qkxӄV 7 G{b(  e@53(z@hI]5`ц䨐*)q^96sl!(+‰lJMXJ!Y} m Q4h$AM t8{_Ngt:cEŀv16Կq!t\ӈXK񌧰 i` bBe˞THbê"%lc[X|LZ|"kJe#\$d-l:JvvCp㴦 l!4,~2y gi((+3[Tp =&B! QrKr7 ìxO +WN^5kq~Tc[  ,V2 # b)2 }e4  HPȝG-60 HdTK$S1IKfy {T%DCR/yD0!6u!bNrc-/`$h nOz !=΄XU)* yU'nAOʝ'Q lE)^s撋-kXAЊmɮvAҹe dlOW7+ ^V}DY,FVC iA* H I̒dGD$&؀ >SnuR&R#T׈%\cx+2 ְHkuܮf2Krܬ\:9b!x>KƆTU@wu? ?b˖ա8d'ΡECq,=#>ya*=[<Ѷ]nE!@a z9k){9C+. Ҩm~o ը%L.U5(;¤08(J`^S6 9&\P|> JBE\ukm48}4Wt/\ul]oUp46a VPyfQN mo')smmAڑ 0+TQpFq"|ΈpՃ!ڳvθxDqJ#N ]vČǂ;{Ⴈ:_ ȄP ֞&)Ga{mv >vȞJNv͇pd&!5}KJҿ,vA\FХ46]Cػ9"tם'ģL %s*%g2f{++j_ ʲ ߂5ABir Cn]p}yW4(B4mAԶߑQEՑ`݀ a![?([UWUݒxOޗܕ]m8塗_P^!᠏INͅU6Ȑ\A}VyHȸ^Uq$?gm!?t5 vV A){ʵC[F\! ]R^e][ bYD,UC0 L%^"K)6WU!`(5bR욃998 ,߁] _[B{ӵ{ bz[ 05Z1^ŏUڏf!z#$f]gJ8BtEL\ DqYsP:;ɭ8!Cl8j1 bT0`I2#M]%j&:Q"xLB?Z-*Rb0Ţq ,[@ -ܙ0ROP<{@J~[H2#!" Ƒ`H !eAY { _cB5.z vU\ r#xVqA  &! Ag*_(_C9$끣 6uj*DyX"KX]0J"ٔ4\(!d`rn- W*Ou*@N- bxbRU &b&]e@Ŏ~R0rdJ[`5Fzl5"B*l ^^e?9Vgq;f5p`&B8anVA<<>| A$!pzzAhA ry&H΄Z#@4hUrb"q?$N DZ()q*:#}$&= hg&*xdrzz$u^UEzIU"Q|UI%jcH#N甂*\^jB]*1LΰRgYfrhzօ^@ne ƝYՍ:+B(f~n&ifDVE\✯ܼʫVV*k&^*U h*ħf*!6l iB'qbRq:)gN* v*{>A,n%w>v6*xƝȔ'ͥ͢Uwr@VEƪp~])G]٧C)Ъ!꫕:(*a]⥯2 ٪ İ"k2+d@JkAL+(hœrǶi! @tVCfJk^(9&!'@14K*DkB)ۼk",, Vj$f{q?$塩YJ",'.lrU))"Ǯbs"e:`CR/6*bA@jAPIxVZjZV/BP,@#)m).K&nzifA\Ԗƒ:ZREjj"DmA|zt0@~rhZ;F&Ӌ @MhAv(zfg6 ':DB4p:胖-B'hB)n^@n]mӶ_~.nĪr]Ʊ14d'@Cq(Zu~|B)jeN.@l- ,jA2x.2V`TmtdnSELoÖŸoY~O. "ҪW-^l0')1'vu.G&ؖV.G&ćz50?T! iz!?rY3 b>nW(如&'(32c=;0*BnKmr~*Bו/@\b1*D0|*n\F2$~tgtgIH4Т4&m)xn?!tj$so:?Qo%O"VVl:o(,B`sp/ULbrF1W&BXt.$B)`1۲CGC?S/+^+3&s2k*AWV1;spf(pAfݚ3BUVybkqPc¨h w0dgnt6kck38i4h3_;_kV^BAtA_DW-,.KW{Z"V4Y1$vtG44HϱI)wt1x4tyw ' j|t!?A|w!@ *Ġ^gQ,&yAN u%cw."ksb5!qmU2V!7xwF[짆j}^DKw.,P007sD[]3^p[_'@$CmDml#vBlpB8 g3\3\m Iy7S¨8ƊJ6d[Wup?C.14(lBymv* tn3o/˂,[;p* :qxA5C5#zZ?)t 1)~74\x47K#/qcs!4G*B|/j| }G2B:#O!W+V+򆿩~ﴆN)'w XnFKus;jc7Ps$ĿK+cӰgY A A*@<'mK<'$gBй,yWq 7xJ7wU0DzthAk:?.y69w|~U;.\-,4ȯ|վ8[8S>UpzU1T,!7;',/q@ ڿ'?~ O>yx>' >W'N0<0$O IrTӿ.?9SeB7GKRX`ZDz(ҥD .e*`T&ZFʂ2ˊj0gўŵfdVܳd™cR%Cd?.?>d71L dyOcQCNKéݡCb=dJd!`U҅W,J9 ]ZYXfkv3KѯRXB-iQh) y"ȡ z塇>$!,'VWzBBz/(%@|eV'^)'JbJ%**:`򊦂2r2bkD̮; F².ċb+Tscd h*˓#>133f2 BJgZs -cd1Ͱd,8¸.8./cNXzKDSWa$à ֨ⵥC*b{%]>10A]vmziH&G݈УuAHua)^DzE2 u)`8ɦ FXyhXȣ(_wɘnIY*92eYl9b5g6>T%S%iJLRd6ώ¤r[L1ZK9У90 ,278̳en|k;+{&'K bQhʏmO]E[>B!5 >&7w"Epr"Nepx=tiBץ{}i:ҩ"H~QGo> +X>F#8zcU6^U⡑k'T)f1Tsd6A. 2@W8p08id[ QN 9}!,G8'/ qDD3׺ӝtf4#ȑ#aLBvM%RTdADIG!ҳ\e&L1pn/C 9%1G~c+glYf5 G@C`Z&DT &̐4BP͜9QMS(6cYe8c*eR֧P8gU؃ v(7%Yo{@?=)j{B4&Z7YK@n[ 5 DEQqs{ 2:z IG׹ ^O92~tB"݄97 tdI%BO 1$'ccP )E,ň٨W E5N~Яֱ#$T ŦdeScA]U $wa҄f4^&[l+e,HZf4d"ѐ4LcK#q6RK[9Bsnִ,d1Oj4B}ƪAyh TޅìwXU%Tw&琨Q6w~-:Q"bzOR1ν앯7;Gt#OZ. V @ǷXК ]hw0q*DOӫt3g,L}cLwbmSqN|e >XOBgA1^ d#E#i0&@oوs$#6Wl{8d-{ȎZOZ/pue-Ԣ5G|Xq5 h>͗t^@aȹсd>\i+/FE/ט~7;5)gi`~n>y"_b@U,e(ROjh#7Uw$g poMqsJc7M>??PwBh@ƪސ]c a\oM!śKj  -?#9f*lk3(댓ֵJXs1DeWwWƝO裻[Gt]Bz!MH@Mu]vD k`hϖ&@8b BOTP&nl{t,Dc /L h. $o0\f4rlWB/ -IPbfQdBTbߢXn/Sl`  ʔOW+,.̀ o{#@n͌6l,LOhB)Q(a$Q $J>#܏.[匐hj[qh*¨?rh`':"okW&Z>mmsΌHnjgNP&|A]mN{N؈m cJ T eTnb58 ϭTbiP(3TohǺF&f*olϭP fKpA^C!,n&,,vJ25-o4J}en+-`(Hkn2J,IQ-`bH'@^_rBMԀO$0HDX <' vo'a@a>Z0OZi}q">&1B!Wobb-gۊ B!, 'ҭ!9A""F"MRoX-78ӐjАd˲ %]uc1+) ?4)q2*++1,+YNB`.Gq*LWQ_mh E]Ժ@D-/BdqOqDhwAAO%*-+,AQ%,AqJaY.@Job Q2TӴVK5#T&o;UO&N-Dr&,0$&63QsQ2J f4 3kȾphSTtd<ـ;_%5o&/]uNaS&xr׆ ?5VyMW/)yMr)N(3KaI@ -1YR q:6qIe2HDcC eE._G,EXFEFc/'-%]G0eB t&.XBA2Y#KY ,aN>-c3VcTddtTb6ŦQP87$Q8a&)Xčr6p$yJQ&̊;٠& sKfUTe"'R&4ZNaW#@J2b%YYT'CaKpp@[+C2 ׌6", ._E_aFψ^ ^eB t`uouiuq4-6.n&u-s-9Ύ6y]m<`OWsu9^sA7 T{{QWJM_%)8}Tς t&nO"og^\4#װx4RR GXؠSـRX6wxAsϝ9gr2wULA1631+i@WbUTat9Wpwzq4t\X,cFy]]وg p^MW^t9 duY׌YwӘ#jW&2N@lmb8/z^+٤c!liZ~Zzڨc! ѸyFAL4LI8e;YNv&ϓ᠙;N0Di,hPn P@!{Omvgj SLTl;Ikpoa&9{ln֜z)v+6@oxXwAWy[};r_+wɂUψ٪SEt u^E͌ؤXvKu%9l;#`;ۼU¼_绾ڨkW'p@Y%,YIxcUa|3s~IM3un94aX~&9.=qI$y~\]I]A_HvE"`u?JG(@2dA}XCbETQE-K-~MSO+UqK 7dpt$IT9l< ZgRvVU&ɰQU\daf^xI䤵暅aIR#^yTGX4XUaVyiUJW]ڒV$nQ 'ZGũpFv[rG ETQUҭ@P*dS ۣ{4yG6z}l{]KI?-B JB)aD"M:8҃DEx]'w0v9UOM<o٦kUdV\}E#sɕX*+* Yct[{~'y4(>DEcAʓ%G6r2W5%biZ}j_{[(9uꑷ*nݛqI\uQtQ'%79% /J5my?.wY-SF?G `G"%x. 94!NaG^n1Z cyM]-q@!Q*TDlL&Փ[c-d\%*?Xcp3{*1`gX$X .*MX"Mlo@OnXډẉ#)-%^GP.EkA3q %޴?|,|DX}"/@xW.H)7rƁXus7fZY\t!gGjHjXwuIyiH%DOky+.ef\ŎquOO |O\I /R u/7\gX!'@:$e(0e]&96^EGrB^s$QrV 05R:&QYqOWl; OI( D=L!@@ `K % a]&1#5G5z0 .SaU5UTWAqo90v}-‘JD(h!/֒z ȷ?4YDUi0oς9 w.eI!* ڨ[༤Y'*tv;;+aã $rp LNJfpWI B!tvm7MhGk k$"]S$[f$}ˠR0ʹh I|Ѹ0~+ N-9r rs8WKՇ ٟ Fq jIfd H1~r p԰KeC'f5LΫ%%mdًf12L{6{zIkشMCYX9Kd} R~C g[d~=WzތXgLuɈ+1cR@cnC^4\Cdacن55~6Nzg̹G@!<,WĿWpUst+x(B{JG +ͮ+ϨMKZt /  $=\u7C|tFj[uu`ECP{_NO /FpZՈجOk ]ń &/^w[p?ۥ)"0* 1#D96 EHjC5JdĔ)kIsfD_sF-[Jf K?;snJ5dA#c,C]"-2K>^)L1tE⍗8AnV X5F!LQ@Oz43IUʩңXIb,Tė%|Q7!ձ 2fHixV[{u+K"`((!Wk2c?˭̟,}0ؖ_0mu+.mvrK4HObӛ_ X,寜(7q0@D9ʼnDS1|0ݡNy8o=9!O CF0"9m,6[~ g> 4!# CA!1FF+"-IDz <(6)m~D^1 O[;ޑs| 6qsdA2r,!|8+qI^b]fF%(AY)4BH(_gcTTzFt z֛U  d1KqYlAL1F} ڄHڢ{kV"oʉ(p-pZkUpQQW M& ԟȽЈt  9v>Atp2': c+)ǤStP<#''k σ~4@C"fT٨BKd$- G8UA1D[QA4Ft=eG8a 8ǻ $? q)! H7pOBcFĉ-?+KH0x(Q6vh=ub<(DPDk<0&Qۧs D[2zNNyVXcZЂJ"2N6\D?l=kY:bZ?IدQ sA "P 8& ,*}ڦ#pQX` PzgD"!B'ف@ Wt8rqx ӌd RaÉ_lqXJLj1aVDK~JU[9:y E QД(U(K2Ef';O8 [4c V@ X/c[2t]4rx:N{s<LJMԅE#pK 8 cu*YYJE&OI-MzTr0Npdȡ1yLD<#[P3t=A(Rݤ\[u7}Cn:  pba XAH&?Z]VW6G) G.之ʐ"ۈHg=#Ly"KkD Èv:w'vzw֌X e/$:?W:G߁т%?`aEBаRD~}XT"F`2,C"|umwZ TiKZQI?*Kʢ'Sd1W 6-/5]:Szd-# İ};r۞MZB&R7hі3#bTHYhMH@keq pb+T.f%*2ܭ)7ÿ 1-9 s%PZ,9pCޒA-è-9VhRZ0?!cޫH4DKDMXg#2H,Gf'hXDa [)kD˺#/`,:2Ol#؆BBB=OK𓷙8(J(E>tDzA9 OΙ*60$X ûX MDh; []:Q ׺? P9jCNىa2ȡ%M,V`h-Y:+-Y؞ꞷ07k\8b ~.sʉ +?;*:%c2YD9؉,#d:m{$N Q $$}ˉJ._u8P :1@ ?6@ܞ ;, TZ*&Zډ2 EĨnFlk/(b4۴7p4,W7Uppq@N`N@Nܴ40@ <ڴ,>q܃,.i5M$5VO>#裒BX>P>4V5]pFQ/h>MEKǹwdq|P#Ճ=?{.1*ффB `0>վPi\Q;RHшJ-LY*&S M% ցϔ?5rÇl$.Q: @Y\K,0LQIpCK{k/24L5lSQBTh<2`;`-j6PIAB&ӵLP9?̹Fx! N9SJy$-xl=K:?ѰF]QMXF5yL?$,YVK R#-uቭRq Pߚ<ܵAyUV8|ءWlj:+3C5;p00'3A%V2\'Α>?YuG>j4aYGP$-.L㬁Lc#ZU"C۝]4^VZඈ$ͪ=}\FSs?SٲC)\VC&XbCمy#aaQ^TS?_ֻRhRmmYLa ׋F3mssXU4r4(WX==bp K\+Ygb;a$ ]:$ 4+(--C89$F%ER-7q+Qf$>CD"F=VfQ:MAA).2F8f$Ӂnk|۝M9LBX>cb޺A^>DX`N(hݹ0J$F&s2+ŵB oLaH$Jޝ5^Q]9ZN9Z_nDVT;ͩ+]ΉnZh^Xdl`N^i/X@$E'=$c'hh#/x/Fs|mNi"G}jN(FL DLôM+V<@Â|~N@P@p5G@MGu%QO[BEcȻA}5ρp]Qa#ܺ3RQb?B9P+VP5}3>ЉXaNں=X ?x^cA!@U(,=4[*lƍ$6D;%Xլm?L.8겈m\6$+a_M[,E}ވ$, \V QAwS*\B8 NՉdHJ&T8M#ʷfU愗|C3A߹ TϭVTKǽ{nNMuDDhXhDOHL6ynv7/GM?ۆZplZ{*@t'\q^Z`o<+5#0u/P>:R{fs774\漃洓t)hyEj)xL5$}P%؂xH+,SWvO-d-Kb VXDAY>i\Q/\i +,W -ˏ0$x+VZw?px#'a6js"!7$ěQAS^xI+n[㓑ZF`J1`iB׿gFZŒUOb%vcֈƌ%`EyON7b~]E&όbƅ&^|ȐQrk\\eуO &o!׈]w gbZo'MeTHz݁NI3NtrG'oFPvRWV ?(1(a*UTHB;!)w?x|zw#8?,Q8+Rˢmh0iu(+'1)*+P)C׋?0H1tPLDr⌜.y}K),^5Q- Vb(y37H UۑX?‡gB~/SL1$p71bXb$K*0. f,42qZc(fgǃ@( Ŗ(#Kȃ|av(CR2Bk!nZq1vg -kLHɱ&1&r+r68YcHQ 2j9 ~4.i?B:3ѬpɜeL6T^~<z҆`pn'If!@ 3œ0J Gm6TD;)Ѕ(79"Y;pS8A -FΛ:u@+?G8o$$`A/ $'ūfjI,RF4DinR@St=F L+s*#,D"hzF.:ߋaG<v¥NRGEב6EhIH`Ej B'|*LՑ\ %NRBdW$8GT,)!jpB3[V͈n ܀B C1Z9!*uH|V .h*e Idav2pht fT!;"ޙԤ:EF)"G=Vi\)MُF=$HtaݬT$ aFB~akGL?:}$&qha1M*p;#PȶG 1dwY Eq"HĉCbH"'RoNsP$hdpH~ssgC!3 clKp-!J8uI:Eꄗma?gG4F `4fԟ׉8v2.?W~@a">U19}rNwDV H[M@`AԺ&&i8{2+ AAE!y3TQ &ݩC,Ṡ^,Rd{^XҎ'0tBTJ1J]B2%D?Dp:0 >gj.8!<lJFM +" l=TI ذfK溸KFdDAGB$G |5KJOE_>6 Uza=W|vDyxHZ~Xr,GhEX BlȊot&\$pppytLD`#٥@[` TL#1mo!,@&ʪTD,dkjGx 3KJc~}KXuGtߌK߀Jhp/DNv!u)R[oH^rFoYFu|H0\ %O p,,{ #A.5Hۡ6E.B ɍPO0瘍Y |&؂!l$DB0> ۧ#z kx'r,!&ـ9x%CD.ݘ_V#A>A 5cc1#|~, 9ޞB}JZ4=A^TEaQo5 S( lRG m~!QNȠ|w fExryA %yQyFlU> F$LԜ_P\GJE+ HD HP^ƪ ~Hh:3܇0懔(^5%40j mIY]GPG @ڐGΏ|" [^-tycWnTdVIp5$28K9݃5]2 )"*H^0kFN4J0HH0 I,l%u 'lm#l? v^>B  So,12uUkIRk7p6ϖZ0X vh@=m@QTП@JE4^T!DzfQʑq/uguUN a4YkOZ TL1 ?,nVXnԔ(kbL&ujnf(WTJD@PU= u%pQwP/X| @bsZFAIP9MBM$Iw' E;+DHZȲPA36cx @}%w\-U":I% G ߬zA΅t[ӌ `UVVĺN׍OlyNM;x"Jk-ϖ#ڦGBBMj NKk~x/Tb;2RGy# ;C N4e"0Jذ '*A4ϞFtP$Dɡyߩu) :&ěiVD(\ycx8JgO!ܮ$D?ד uo&h:jI;2۴:~j:fdc+d/P1ajxyȁ$uF{Ff'5n{/iKj>&%4NSn4W5q;CP4;H+2?̸4 T{'3\QNێ*]:ٮCؗ]|/HK -$H]<& @o0S7c|(_>yg /_X+RǏOpĊ_TaK/9Mf$&05Cz4& sJWx/@aiLmfF0W?,G d @t s;r= 34#Ry5|1c3͝7&7ē_jӨU6<,~jJR+~^ߌ8艮̻5RDϵp >k b$.ɋXZv;a[964Y`GFdᡃn\ټJ9pa$1"9κJI'ܴ,79Vxi'ZB lJVjY!j( +T>V.b"f)nfi h$ 1\p #f<oW$bE3BO|c嘎9 'Ǡ¼R,KY5L) {f<3\3M4槨S<")zDB/iT Yp"-D}$FM oLB!>o KT:&TJVu $Fr$MI;ӯF9)Y^G զ4KQb2uh*[b-/b ш;Lg2e[VtjQ<$?a LdK[IL!-SPlgB b;S3tޅL؋?TJ?y}β ^;b In0PU/U ZqRe =S2j$'{)nӛԤ]cYB($YrKu 74f7:VnEDFIJUhrxd7کkf LX+]nvsc{jp X: z5!Xzŋ^QXcRCP0evDۨH[I2_Ig"MfP ojLhQƩ3茷cyʖ㭄lˎp0cY M7Dn7tDm0y͘l4i=aNI c@0.Yw;Nys~9j $FwO\Nܭ]R @t>yYu x+ޏV.;c][^4(ZR򹺰7jMv>o?v0keDIne; N{|B*#}p*@21ҹ;8vT gk~AS- ~Z?XJPP0ݙiJulz"Fc448!lز#[0l^<(O}\k-ԥF8pr5M,U+y"~kF@ty@ Kb a "M+0m0$"0dMl $ .Add >Xaīd$6Ŗ.Qpn~p>E,n(S>~Ыk}U@ ~0d .$nƎvNzҢNzL K{ D>*$ǢTivo ǰ(&To\$%쨎 8h;F.zCG!cVЦ͘f&ij2jLZ,LPJQ̫QAFR_$ J\lƬΰ +/حm `Lc〡:@.Fr9H22CJrLp#v"a @OV#J#p`J% !XMJ"O$E%$0펻D 8rvmn@G&n\10ire/JjK\KD  Ыx![ ܀bA E*| Pp(J` ּR-z$fwnQv,j| ۂG' z {N a')0#D0p,"*҃*!#j~!TrR5R!*+4îdq&*|d2]|hn2hXJk|.p xj"_ ^o+f-L) q!O°ԑ$ 8j09>mVZ+Q2nzTr$ n d>GO"2 $C%%B `XMKo$~G+nI` b"AJ4wR'1`S'Klv 0i bbϨRbC_জ$2Ϋ~ 穤HC|UNx2~lIb/LAD+7ԖLv{2aΰ N p4bIB-zp t0BCz8[U}S@ t†H  1lt/KJ 4 _҃x+Ƣ+\kĉy ZԞwLX*Ĭ$hh*"VMg ZZW#߷6Tk744y^I@~hS<3VHe l,l c$F 7N/+je:W'L^wͭNpj\HeK`4y'DK2Ĥ{e/⢈8 nmHy*v-:֓HM2I@@ @ ĀZ.ʸkX$Dߺ8k0llۖ'w |g \dx ożPx+N :D zsX!n>cpS5WDwHKiPD|kyn-g Q)`yhWk_朆+C~}|nTJF($7\,#0kK`YU9A~E#"CA G;xӮ ]nB+5HH tU)mkNR y0"멍-ԔhR&,v `/OУ6"b)* .-j5{py{(+J_ΫNDnVj$РGʑ0H pmgw D1Z8̻̽Z\ Ӝ| 0u'K+3 $M MPu !gOmA lA c:LCa5ar(GtU;1R7J/lglb/ǚmTN"+ X12#@hh@I$#%0⬨b_˛0b*[|'Y[۷ ,4D7"."J2F"LB3N;Ȉ !!_b6Ak֦܈Pb,BNLO.JBG'wGxiE`Ժ%.(`"Hy!HiC|0`ݺߚ뼫XC] =ám-11P0=U}r\2h\;Jni-P 'Ye;",6z]QOZhbr yϓpEFjNJ$`y'RD1P %8lq#C[:tG !C;Uy$,$yPN2 Q,)v$+S?'S^F.ʓiH=_'gHp+~-}?FA;>1ʼn'ҧO.!`?o>'w #3'0As@%d0JD%*RMqJ3jU*: +"FG6؁na7URhY'0 dBV:k!V%-#K^Xt@FOz+1,j ؉I&V:WŤbisx:ĂHlIhi[c:ℎH)%)DCIQr4hYip&5Rی҇={EaQhYq@Z:>ΖcdG9Hڰ Wdd[0qf^Jn|"}nL@k^8)D<$ s?% #P=?R/JD1N,zukH Z)@CH#vES ]Lu+H(M&I|8}/|D)dG"iwc˜ϟHDpъ6##88ZdYF g VxCA rm XYB)Y R f< l`M:PGKDz2<#.'\QNe,?:qT)kbш%/[a-S#luVPYTK$(S%+kɎ@g:-`g"P uFbaL5Nլ!kI0@3o1;p%q'qMCS4I24L 6A`ƔLLa375G=&:@ \-9!Ab !O)n(A#[|'e(lpDlt%ns~ąd]R!eG o5&&Jf,&l~pneBd[S; < [ z"Tz'+zGV$+az+)#9"m#+A7?T ,IJ-([w0TFg ~&*-deqhX+-!Q'[[x&dV1) gc~oqhAX}x`wxf>>iT&do 4w ט$[u#{_i"Vti'V2i"dzgBrBTT8,ٌKTX ةT"qsew C.TH7Z5Z/!d1TzR?s1tmcA|1rgD;3nZXQs1CwU)GIeGEsG.5"GIto3B!A1q"4t2Z#he=[SoSAEN2╌M,8r3np d rsttO! %:$pWO? %0Eɣy XoA"y=daJ.Zc23c.Q:h=mb#qq jb^P VzYVaigBm#{Vr׫."yT!qF0|ѬTxRQ y-A#>)%)%@gB.x g%ddb(;"X_u^;R&Cxgs$7(ͧa<[qmFPH$^A0c)aSmCA?!^aFQq0_H.\K,6"{/ڑqqu"P3?I0^4 qfl>B7ᔵA1O47Y{:6t&/ r)c3Ɩ!2G@trɲ xYP2W(1)"1UZ2A%%U2U%*eX"tFJufQ^[fsR]&Hmķ9FG8w6U'V'V1zi"]{+"A,P¬zҫTK:SA~=R/%L>}B^g˭!$|Q(;q8kwa?\Pp%`Ĉi{JNYJAC/FC3D5JAU83d%;a2]5I3Lle0i'qLa!@(0A^QN@3Dk /%`ƒ# 4C\W~ r1"H:si9)m<bRSEKRFC [(־P.f;f3ij> `bcF $4a"4 ˭\ L+˾"TK -'  F Ѩ*+;?kBXzsJ9=ZRn00S2)*юfV$ *B#x0۴]˰lzwۖV_ q*!DXX y| Rڊ-Jk޽߹.6 Zk-3D,wDP<Š]|AͿx8ėr+SeeZ< .lȏpntDI$05&+.3$1"X% 4g8+_]$^8*'¬DFbafPn cf5sQR dyH"h^R*S;<|CeOq[C^ -gv^"%TU^b$0"U0mlw( q@ef]a+>3> hv j^iz'h, ;?@-@= {SnX0 &R :ɩZ@_ª ڊJ+Ѐ8b*+z2&l1 S,Dzh/b3<{,^ лp̯V7ۭ1LǶt;J-uXX)ORGZvb4ఐn,÷RTrI/p#zC១$q %B)z$ |gty#n:Esu1+ⱛViH$&u;aعJ+SǕ ; >U߱cU4csFE+r5}>JiEVpi6*jDpIZI/dR49 P ^'W9:= 2?FSѠ*U"9% @˄?.j]+[Љvt$$QF#\:JEГЫ-KIMrr8]9!X0Ԥ&G "(3Ֆ<؂#dnPH ȠMm?:5p5QEγ5?56NipA- >R YY3Ќ:` PH`Ik`n F`$V|!P9`A śb2)aV#GRwu#v8 Oe p< $Q;TdhLj9:hg,DPtJ?,JBbX0*"RUIMߢciƾnNo)H [R!D@UYP[hVil -2TOeg++Yq˨T/"Xը +BZ."ICaХWmi1JQbL@_Mb+ZDN1,M ,OY.%b]ȍp_*d" Q8GHڴ"U"YVamOxHYJUob$* HHul0FyЦyD{&"7J;(Sܧ&Ëfweݙ% *t3I ҀNЩ.FQTZ}rM9nv#Ё!ΎV{ jGA$L A?H5c'^anyXZk'G!?}I8'J2vYNrrU4IO`s7u~^m-VAY* P[+uq+;lZ@! G’taq)"XY$$4XchB c2JEnlfŤu4ҥ"t HՔHDECn ZDivRTC@Np#>ȡH<:7ip !8d~I/b?mCז`$% |_ظM;AӝfI5 iWP DbE{Q;BG1*!߰8?S_>hȕ ԭ-RX@%9(M8~k1`czF(xcP %#(+?1R  /060&(׉#.db"A68h/J2h' iAAqdK0\A3:I1c D+@fH! L\#RӲ͐Q]EL|`鱐{Z(Y.a/BQ![<\K p<]A`Ur!ܕB;Еl44n$+zh`+H v`NG~,ȴXCv"CH ф ?cH ;-&]*(fȋTIg+iCBIiTjDp2.) ͋ pD M؄b؄F(/-9#4$;Jل%p,7؎85j0䁽y{ pATJTG}T 7ˋ)!LA! !"i%ĸ/clZ ݸ $T# t:DMG\ ;|Ҳ VNT;͉ NO*1]11KQ<;jN)O4iTO*J1Ɗ04p<++^Hih-Њ=ޫXXkA zt5# k5ӡӡl)k` 3-=-'%c7t U#&aP:RQ;Q̭ݺI؍'`-;IMS E-TMS:}/H S@ĵQ7A R#L*Iqԩԟ[AZ#HX87q`ڍăOhYe\<8MjGTԸGVm#g5P45NTVތج(]BSz(T@PWj=;LtD<EF4_)(1hBq`BB ÑHM"XFDC4$G+ۓ=GPK4MQ Yu!>p u)5z !FXG,4@#%h-ixL%L$Bb⋰ e7$!.p8RgR18\0];0::I9؄R[[[X L03weq\:8؛5U%4V73MXq'v\Y #%[OO> c!(@χ @^_DTX^Gf1@V۴^PI<;PhQ:`Ns_ p^`)(q)Ӄ4x  a>va "a8` lYi #-x@+myB'4&`'11: xJbj 亝']cZ/[cY8`PTD ӹcAAI>S\ӸT$/pU^s:J #HUSBEd=L”-ILUiC 1̮Yw;We"۹ SLB1|[;eU o֘cn PqؐݔJ25X ;$H^D` V#6ڜ@D^94 )A`f苎` r +aanuDaH~T = &8ٝ@+ +QỺ[18ی̐@ EbU6jƍ+Akkxc%K*OBjL>^7MIFJlDMDI: VP\Hb,U#TMl RNC640J`P%qmrU1)![ < #^Ii(U1<~IJanj-0e: mޘn(nM^RD~D)Hi@a؂Pvɜ5ĈNAb) _ BTӫR\ n4 B =+ p7P?aO[P0  ?"`R"r W zW Rq UԊXA\x?j TU~UL5;LH3$Iٚ}kD/?? tJc'#@>7p@%tA$Ai0UJO0QsR>M$&"x$ۀKCa OE`:hPe32z~pi -o'|qΘ1eyG QAR aoaIc"IH +xq"j̘2gʰࠗ7$A+A{PHe&9B P1 &[0Kv?4"Dde;-Lh&Uf!D  )0d$Ax/`?`{L\$_ר?94ZN7faְavTO0ɢFQ19r;;B3<W̻/kQ5/^0B?faaVN9Xe0zL8.:?*)>0nz0 g>Hdj?j  YB+F++$X4+F9UMBeT4TL:1dG;aOUe(嗖^n}py}ק=by/Z}@YZ?![< ꣯gfp01 F%D TA `DX+I|a?հ@XRVL,T#'z ąza/^H@[1Sq)\Qʺ\Na LT}%-`Y 9$C>P10 LĆl 3b,ԣ'8!hVVB#qJeZ3$Ht<$.`^8#LB_X,l\FJXmNݖR `+/|(%t>A1@4\6X&u$qs1խn /l>Jbv'HY?d%"A0#$0yf5BnĆgN#a0q22FeaIFKh&oX!v #Fs>4LLa X46$"n[2`9-|u([Ȩ2!:5 [lkh&6kQ/f cYgT5²t% IC1 xXp쮤4JL Keɤ#WW֎V{nR3yd)2S Ȟ?2J`2gF $9H껬n]+L5,R BZe"U7 uhIERýQ(@lLUX0 wp/O&d8vLJl3#m?d7v(dڣYkN>lǪɽݠl\<gLHv6wfH  :mޅ5 Wk [w٠T%,3y^;?1S 'P!#Z0G&E6Ԇ22ZI%>a#v5ȸ`KvD?d'v?J2L  dQy R) Qӕie{Ӧ.EKe T::yx|Dj  Sp bu&ă<aZQ o(^UDI5:-P e9쉵j$`p!L3)*puC\i,]ؕ[ԱlSa FӡR)8֪q|<#dC!V¤= c۷Q!ۼ! D2F<t1T` ]NJM txըye\ NC"pְ Hyl 򠋘)\GA sD!:|x?|u{ /atƗ:ӊp!Lp 쇐X ԁ} DTN@I>U ?NݙQPdAY]YW8Z^ L4GY%VX]dGY٭mᝉYՠ@<BޠaVJI<0DMHQ]) ^OPDSL[E#P0?`UbKIL[ L@HXɚiR!A' `M~y V,+5GYv4]Uz%݈qbSQwn ٛSwwGt~#C$G}Hb'ݐ`7C-t, ay t\0Ǖ\!(<E?XE]92i{DGtR[13 1M >!#Eա&LƤa¤DD'pcʝFIF H5#Fc5$Vb&$]Qĉ"߽IE8pb,JV >"o^<1ڞ D5 ^46^5JK66*a1@0U_)]KVp[X\?d"0@,f bd\B94Y`+e?BZ yQ}tG]L;A1D5oF!]pȄLo̖dx?\L\]8`d})ߔ蠀XL|2%1!pArI@JEIu!LI`.REՕSm0dZDYO1#2g~˾DTjټ`bjA^iʙl骽MYnžgHJB$A, Y ԐwxĴPx 7? V[Cԅ̀݅`+8aB!ޓ%꩞BEB?Q`X38v+2]WX}d -O֏ɗY Ji*.GTj]* XLX]j벅ŕEVeϛYQ.mxXd^9EFH.+¡@I+2O(wZ` K 7Fg-( L C FŗT=W۱,VG7ać֌Vd|.^R)~h)%^U[6IFƵMIN-tdX~9MNȓ(\鼈يfܚATDEG4o _VqXL.V bP-!GLӔiD *)=Ydɝ-*BtMٮA|TH+Kn2\X**LEb[xErfiL0.F] b LnBM^CP]Aʫ 5?8?X@]YZĦ?`mcSgKQ 3r@DoADB;u?,D:ʝŮ!alȕN `%1L`N~ԭA)SEvtxdG|5Rt`GcƄ s }t%6HW0ܲ]IL(LKʑ`lI,о ff܆rCNՎ?} Tn$'b\.$ϔ >|vLh6ISAΚk?*vl+l˲e݅EL]Hg0M@l^ʰg>AD|ޢСQ71C5OxF<{+T+w Qa9_S((z A8s)A(DY ,'#܁G"eIqLݬ~m~DVVOVӜ)ƄĞ61r<%t݄!X1e!gWFX?Œ']zF痮 O[Ȯ{H ;(+#D$`v3;Y(nCMX Q:3y&@LLT8T8¨dC(TFx1@XV+xa ?I81D4iaF#QNJ$Ib9KG2 I@(Pt(D8fӐFOOh<ʨ_LJ+>+t#>yQT3C|~Bt"ѿV|_UTXG2DF1pŽ(xG-0zA֧#k:vkΎi6Y3^NP8b̘rh,jA IGJfwCh,0o>whȯ?o1Ĉ?C ?&@ Lp`A p ?y !j ?dA rDA6lq)TPF>Qk,P vL>/=< I4<-tD@"G "r@.1]vpd-9M7!@N9!j$0CEAA#GDB }Q#S5j(xA!Q+*/Xm‹ z#.ꈄ驞T:$~(+)@~Z/|KRzï^WU ޜ[XZ*wr:- w݈,b\u듸 #^EA bnaC4NbR[Ӱ*ب0;*;vcFN.i.Z":͉~kFPcW0h$A@Ciڃ3`2 [ /?DGGp 01|qA\E [a Yl [DS; eGH]#{/k4 1đ6_WBDB]4TN8@!^ " `y8QF9`f>ԙdrCt }8N)va'B%iO V^ %'4Mғ$%?1 Ű %E?~R|(ٲP ™B!e % Dt&£tP$]s+pmш^rT1ak ζ>h2*me.f11jb8PHlaldmXHjd&7`Ql,98d)H0R٬&vۂ!'=Y>I6 ?鏑f 1 hB 4-C($8 pe/}!Ǎ(ycQ2Ynǔ[whsф9eOLu`$e邝]iҤ&GMrdjǃH (`G!@>D:ZvBu3G0 E7td _0?VHE(РPB }N}) : Bq"l `*tt"?rUft\DZJXBzB0xX|~+ب"+PR"{Ԥ~p &jfjEcǾ;Q m k |:F3ΰP ?8GNӰm1RwbdTGՅXq2IF ?p1M?trc WVHBtP"d2hZT8wQD!jE:]zG6d1EUvyYxR~ǜUENݽu|S>a @"V?( `)GC0><v&Jc p 4`#MZ'Ji)KT'TYIC_ce,c٫FUK&G)ٚG6ant#*UOл PFFBӽ, :Y#V”imF5Ffvw\cGh5l]ٗq>bX?pR$RljvlvbKD$qWb3JC)Ϲ',3uteq= h߆bUP bG∹"j Zq~^ztMSGIn ؁.<-$ Wci@ą . {xQRɕeuЌ;ᓘ؊@ƂDJjĎOV'H*UhAMšAFTœ̄ viA2nX\1"cFlDq]B8 X7Dq,gP‹\#$#ykU " A$PMG:> *Hìխ^0 cRی68B^ ),;cm1%ʹ[&q|l Mn؋B4DkQNLͫq\DBM+.k;pqksz$It"$euD ~+aPvb(6(F`rnQz@dk`N$fS&b!\elV6"2:i:ʄӮ*DC C EJX/K̬mbbCGcbM,(0&5@FI82c.CAxZK!%&/Y$d` f"Jbd 1:bdM֢f>k=@hO;,c.1"!Ho fBEg)[<#;̏v@Lp &E(ͽv)pp+EQK 0 P߈0B:)0>E!#!G4"aHxa $v" t EEDGNPlNIZc ^V` XU(PYư:L  +kkΈJƲ `#PVMfŒ- 3.  !\  U*n'ҀJ3DJ@HΜ^wHcƒ;hkCB@R$k#Mq4CHQrnz,N@28З) tDG"wQ0HH)Qu`#]4tL yD!EPR,WL FHz2R@<¦<# "UGo/~"$| Pvl̒.ɜD?4KJ4@̩KK./tfcffO18cjN 8R#."!_jA-P*'ͦ^5ڤ.ۣu<4rMllk|/5!S4((~3C+\\A A7A3)b0rC7k$uH4;0)j>G?LHk@G rCɽ|=S=}i>SPV4 U]K[/ p!+EELdC+G&t㐰G*&;'3{;MRcE@y NQ !:H`ac5<#@Sa W*fnfm}0\ϝ>;钰Ԇ50hL%/SbMVfRRvM{jBf@4MbM31¯J$Z B-BUB]Ua02Kq26klZxsp[[!pzt W MxW,Z]U?U &1Nl,RH 4BBOIPGX~˩iA4D(GQK=_F'DDCJu`piD FB%2iZc06-K̏4bLh+i4^QoԢsc4oRpF;[#r4O5cl8&!6 R*[ ;chRXUmiI@ql#ԃ>lSeerZ]MBW8R+x&7<<+pij;TյPKxKwz[$#Pz{~~pKG UΫ_02+DFs B)I,'D_Ι x O$&;$qu2+ ]iaLDK$1DSf,y'Z#uk<|8D$Au5p;S-Q1#/*r%%b dd7w7vk[-5 ?܊ >< 7/!UWŏ/hg s7Wh|V7@̺;(ꠋWqwkz7ClDHR&':xWW IW]IP]g禗\(`rzGlEW]qOϫP Uvs8xDV@ٚ?Y~F#%=EGc DX{ٖu( n섭0,iRvQ347$'5|ɡE+7MSqeQ34p˸5!wOdD2,w0|,* )t1LRcFQRݾ?㨭篍Ƀ{c0\>U؏# 98obməS#b3 `?:!b„"f/E?L0eҤ 4 0_P Nd@9 #29u@;i+OVgeϥ ,@H"' p@=JDމoݺWʼnE;1aBtE8}1F@AԪͻ6sg xL4VB18g~qiҡ$(.`bȏοC\P v{GBaB>kDjlqJHUTOIRLщ(C>V`D9"5p! reގ=O㽸kq"#;T#NI8NmN88?ጲEN$`VDX8S-`%*I`$Cr9dzse4Fi$F3|hHTR/SiƒTxUK+E5TPA%WBISIe*QU]YX[y5dxUQgw%cef~_yVDoC,gF^\fٷ$HhNV?v }5CU KQF$sb,'sa]cA"` QFΉ0zqۡg1PwwA`(FuXH!u[k@T u&/YtPx=B}d$f* zr+HHNeM7ZNu4go aJ>PM읍QE\3LQIx9fu-I/ҷ)g3d=*7tH:/o[@<^eqyTZP'!\x˲=a:*(k(lns#E"Uv4#?(FWTHp{dHXLnQxdr'M$-"#6 %!ZPRbqD 㱌@dP d:9*FQք#̉Kh.VrQ>uE -m;2E)a*ZTN<3/ F֢ь7bƛ~VsvUg"O?[5&"i;ſG)LQb}.mRϤ$HEΏbW/&K_uxDN;WƂ/&'C{^VZ R펗JhIAHЎ) mevY˚eԸո;C;&;5PtA"XjNQnj#2c(qC#`G`$Y58 " 7!1tdL$7EP"5b-6  8p`S aJ:JP Sj UF@ duH(Y:h-;6Z\Z^hKJZKz7Y[t]jL-Tl< LNvD"iT {\]kիf9y N)+˲"'g: }Xe &caTK[2:REUdT}<u|p}H ި:/.w$kŵLoDVBd(B%C7 lG|T%F2 8z%EciQ!Z3J S] ^+Hmǀ3p`SXbd#d7b;C!/i՚*+jb؟hBwRbIZ|#ZLҵZi,;fh#KQ۔J ply:և+̫ĺkf龥 = =*jt(A LV'uWtq4#0X$ug%$Ydޘ&d:rY&'6eh!7ei5&t`eG"GOFFJ51[g

0evW  _맪[5[HH{ 30U '3T$`*;:vZ-?Zɭd} `ɳ iąkUXE̴h jZ1=B1;!m .*N-칲Xݧo'TRgtPE~`xrBaq B֭++MͤPr$]5F쭩z6SN p(p $VDBR>f"2g azqy~:}[Gm?:K=s]3L3 IUBh> ;ihf+  Fk`4P@C 9(Q"'xȑ :>ǒ&MHI@ː1Kr1eM8i0fG4%Z쎖@ۢ,  kѿK b (ovLi$Y%O\rd |AߌQ˺4Ҥ1` bt9_g ^thj]"fc{ 1TϮBynmZ&R3n? PeC@: #t;C p&w*c )P!)L$GE)Qa-z y@H 1ҐaGJ ]n @(@J]RB)| 4՘)LS 8pb wg B ݲ5a='ܲcFRh"J! !J*NCz%Xbj%`z+&$"#>RU6j*j}H)1)Lzi@J+>IYp *" 6&>:1 0*Jd걱ں]x1K" 6JCN{-6M#_ 3X:cCHx8WM*n3sώ3@nA#[PVa <fCW,H$aXj1+^1)csNuFh-rC ,cAJY3Gݱ2D(v6'@ =Rnd4 67 eGb\tAJGH?.u MH-CGX.yINs*>bD*zaAxP:]phW;a-HϢD':aIZ+sU7=5һ"웧ɪp1_E9R<<"$< ?E(oQi -.B4NءZ(RܣMi/4!kZfnƛ'%@[jS@0<"AU!?Cj"Tg` 05N\Yvu{飾/B#0ZFc4b BVx'5Ȯ 7 P9 p1҈/ @Za˞˯iqp[0p kq zsIA۞nr DA0K!a:2%K+*(IŸ ؎Aq@2H+36d)a06d@Qٓ !Q-IE̺-4M*-5KIDK*5KXkk5Vr5ƌ&)K\$>RY.s滃7EX>XB8F00p۔MB(V' Bj[@?ƉrhH0p̷0 ۿA@KGv7??[GN/ /Tȃ3r@0byO  HHɠ31 ۋh)ڋB)! ڐɞ0+'ɠ @#*rA)1>38vC* : ee3">kð( a-#0ہHЅ:ӑ(Y*I⬹A-$-ѻD4XLJܾ/ݤٴMP#8PPF/;Wx1#Cz ۟j 2'b@bQa{ ~*j8Fi8V〕C㙈*+{Om pW j ،ϰP  9АbAŘ2 ='4 P%ГlRa񘙔9J#Jg*6T;ّ,*Ifฏsɼ+/+Ӫ*LLGхqPB&NN2S59 LU#="=:[$K$I*%PL4ˬF5_kN `OXO3;:;1U㕙(НyH(VgE8D~ ڞىꅈIJq@V wv=ڵޅ (rX-X@؀(2<3"z!'~A2#!/"􍍝!@CѲ0CQ6bTÊYwCAۙ:4#$2:/+R<$[&-ۢ$a4;ڿ L8 LJDT#ۢ Z.~["QAu)8q5QxcVVxa\\\F̅UTEeMVބ>gܐ <)p H  ڽ8k݀G|,8zt? O'YIn4'䞗0k~ @Z)y 5{1_ ( nnF6XH!T3#X2ᆝ2A >]D )``YbAJ+ʏa82Ka< yɤaZ=.&KRbӋSiJ$.SEP EChR$W:_[6ѤȒ9޾<#s  Ǩy;(Zdtzށ#ߕXf^X!suHcNa.qJP_PrNq> 1@ xgM -՝m9ؠXAp.- @ȱ-戌  4Þ+Q7{!RȘٹ BJB1p=N"dC;K:K}[%ZPR&~4g8b)~SLp9b+iU[- [VT4HMլE=jX%`F<&k<>,'Xg,i)m)k6 O G7KVhȮÊ( `22aaG7a3Xb(8(t~)zA@m~rF!*ml_;M/JX+ .ԍ@12bnZ)(;e 3dC;iDﹰ.l΃&*Ly=*I*J3Ĺg%ig O Kb>ϓO-WCU[7XLT jap)Yrr;cA0a]PLzps0s 5K0z'FZyރTQA`yQtڶ{ym%߱ P u:s%dH8.]!ՠ{ *ುV-R͢Ћr`YcOeXAINkvZxoiWQvTFaTXM/PM#M 7#wg1xĪ:vBm@ (P@@ 6߅ \84(r$q% QF#ɚ65aF3Nz? KH)҉ TZ_TRJR@, M>D0Q.kUnڶgWko\at]&)Қk΀ƀhW"A_vA׬ S6Rc}s YLr|<2܎y۽%zBbWy8.=OUpTW E5;vLQEf$Az(qDP)0_YFuTIG.mZtn\D^(i`K`ьOxMU hha~ua.Q`@V\ `Y hi -@ @@Z]YR ?2,͑F<.BBe4b1" @ %Ff\ba|auM }h@ R`55۱5mON04VK蒰5HOP,qiDj$UGKj؅ i}Z:Wy'z'KJ* Nu@BT*)BH~hYһY?K9-Ya0(A &aDTNaV1 ܸH|xaV#.hn˨oUEk6-*JԦu22DlnƳQ˄&IhnfbGUHld Kh׷EVve6jH332:3#zIDCE"X5KM 9 r m\(h)7^ s|P\$(="(/n `F|, P Q$OPh4]hKϷk'Z0~=aeߴaWM;-;Y޴OD i8@LY88$< k,CHy ͍;kFRM(0a(PbJ:RIREɎ-a) 0 Td/?3iAJ;yδrʿ F PtD3ʔ5;tͳ bXX1RZF&FZvε@ۗҬć1p,SL*<3L4drV@TyҰ3&O=hV;yhhK Kþ0Y/B lm} G}(2 8 a&dn"@G3G~< pRBxCb%XH)GQf )N-ԉP@ #1fE$@"Gh(" A,Hq,ReIz,$"clV'(:)`uآPU`)NR 8`=+5(Jkoh< ,EC`wU\7@*@ 0T=Bd -4D-T5V[M6Jhm6on9S#j7xSN3-6[N%[f>aa3,0Dl3; JW|ۯ/fq")qq,1$IďGn.(KJ)e$2H)x39yG$ aD:ѳE;w}љG;* @SN t" 0T}/i ,s%_W_5^cwJ٧>7Te7 0[:Yp0Ͳ C2q @Tȭ^9LfD2ùJBB&:ىDc0U<=YMhXa3y W|CtE&)mXy~cyv81Y,]ͺGZ :4B>dyG6iMЈ–TijP.veZwymLzU!IۑIysEI7"R&Ep?`R\9bp]euZ$WDNUpH8"a;vS j )t"!H@?%Dr0"1yOI,XMe**p&o' ?e],jn|)Ѓ)ȁY^b YiH ZO,Hq^I6hq2dNk&grê@lV3,*M$4bS76Qc)Ӫ3LUpcY˖|Ŧu OӔ4?ntچ!rsAThEs6e]cp%xUsLXE߆t& %(Ci'r,x[(Y+LdpR|]MBtYvV UrTq8N`T? )VSmYWozʸLCx02 P;# L5PqX)O&SUf6S?8#!e*ˍRčd#!scE.pL/ HsB#k RG&^H^E&.;AT+eӑ?JP7 UceOSJ"T&#l@p?*'F*x7 x>rK?:7Pes)J1LVF5qCɢl$&:"@J垴}.9I ij bl "p3iS]szdbnʯꫢ lF%F2`GŽ&$:@$hB1Ŵ:$(*Ȇá*&.'X&h4x`#ʆP.b7Ҏ ̪Z@1TT=L#!4"\nMG~ bh(2gD(?Z.DHh*-iĊ`.hej 1Vcx┠7|np-|o6box<'M&PnkLMd LK6GLhFMh8|z`.v& wxǙN+ a.dH(VTb3H'rȧ.nrEZ<>y>ЮF;j`/N0E]N0D *`$sl#r Wz#0ZR1T"Z Z_n'G,pp|$5G c*g:&خ:-ժ Lp*w"@dB`tI!?d]tf zAJ"Hh/}P84FՊ12yBs4GdKtnGbGf7 *rsHdH& @؊fB JroDp |k7G|@@dBMJ'aN⻾ K1T'S&B/fR% K@Š3L:΂@m#E؁/^#$?MĊ |nc 1(&M0vf32"``C7*v'GɠR8b#B`@6'Rrdo`PD@8Bna+f2kFq,z 2s`JgHaB@if>rD8ZDPR c&c$6N(GNiVɷjInq&d/2I`J)'/R4tKJ15wL$HڐfBgzmF7Dduu3vmyB ꠜ麦:  ;$C\rBqB3 nUFh C0" #?V$jRDJ ^ np|u/e2;lP12TBZ(%ZҴ&3l||j>)fb~FtJDc5EU<\4dN9|j˾)U6r8rLKAFDhfQ dKq,3oM24Km2$,oR&neO=>̊LRh,pvl?'Oo+r~DFLSGu*5,U&IL3SperהSw |kZ36Ed˸huL@ܢ/7 QS M!Aw"Nn :viYC@<:06b¨E5gl3M]@ nC~.@Z$'Ū)> mm*U[erBEbxL&vL~ =#|'t p~ccbyBc]mcwc\#6`c&.TL9tear95,VH*UMRp<,f&2scijm+2s&\h"&d\Ce.,Ȣ#cTJ|Q;U&׷X+w/2nM/1S7S-p-n83{3'RjD(22r05Ȣt@uuQWCNVwv`nwa:yY/ C0|*{CNlk F/@0栶\PN5kͶ 0q1t17 AwBp3Z"'²Bb^Xx”%5D#dC=Eza u+qLrӶH4FnmJLiXh#sf"`&t)mJgx(ChCP-[Y\`C'e#cZ$@dIV)S GF*'iA4/3iFvo JΏVR+M3Msr^Kms+ur 6Eٸ1Psorΰ4SeBNOWuBN$"vD.;$N=w+h;%/znv}2,H'[ İj9DlD?vYE&%2&)c# E rPC%o 'sZm_*WbnbavHKp&ęWy(J&L+ d9cc9[#cc ztL/h&Pi6H@z!C*{4& {cήP>&\U툐 `ov&@Iog"o}R-5Xz ׯRڌUlDP&HtkPnZJ6oo *w;ME.$8D&\ \G:̓7;Crt^-]B73ral?1 ``CB1.;Teill/q&Yh$l9t b546ʜ<'YZc(}!]t g,\{K|+:f9* | eJ21mFB OOɷ<aa&ܽ|M@M@۶` Yi{<<|F#)e2x oq:>XIǽO7+и͒d1)'xm'pvquGp#pmt˜˅" [+B|k'p/fYJniY>;'KؾH{"g8P*y g>c ?#DŽ kh'y'd@"d743:u-ys7婖J!+Hafh3&)K33ݏViC= u֝I ,UF"| @3>]яQI1e] ޛ2U @`A(,"`C}$TH o Aj$>H" ,?H0 H&5ƒSF; r\ fƿ3kc\˖cZf@Aćx+ `  U@ (L=lʨ) 2Ț+V֭5ӈ  ;4L@73mmuПүS.zAn_CnCO/) (}D :8@?7,HP> =_Gn(C#hB&Ж=sb[-ObxR!?v4K{՜AG~+Q1 CØ؃ ci5yL/hQrDD%RY@L04'L4I"DInPDB7GG/?bhQET4USx!X?hZ+"*?35e;yk5]r}s5;~ ;Ďb ~6evceeƑfVgTh[ټ[[YV[r [9wȭyU'xasmesOIwwH7E(x x!(m 28)-8s @4 !Tfh 4h uf*/.C&ftbaV@aD6qjd/FXr!D@ jEp 7޸cnxEWCL2USWj(Q̀%E $B->@tjң {ISK*ۜb@ՔSMГͷ*kQ QbUZWǕn)W]z} \.9GN-u&c@bjiHϸ&^yoxCkɍm g7p'9 KtF9 =N"xF|ѹzгX#2 ;gA;"4:I P4GBO ):Iq3b (E<Ħ"QEarQ\#8Gx6!=Ng7pxBT; եrbR[渴(fFN(UW!gYˣ8JVJjN/YIKd6Aw}hǓXVΫ<`4d)ȼUbX9{=W!8k.:˵b-lE0a̸-0ye蕯M>٤f^i lZx͆7q`kA9'"\{`xq'bNJaLdv.^#B8 |dJZb"f'Vұ$#5ot\¸2H'QQ"L'j$-"3cP A hQ "A*Ry8FMT#9d('qN!Uh;G%1F6 D-+-ۦːHq W Grez!fY-%{ˌ Ы%}6pi ~ 8YA qg`a=!eX}5  @^L}$6T rcG(E]xBXcڑxB (Ǫ3F) @@, VxHR,'5 8ASv+ Bpt#\]F#YEW7hC3G cU $nD#G&N8UAS$++wh㤗19ɉ"9rG ಶ!ҳ'YhrnѱZTBLgVsĮdx'MLsp'rSQg5]4e5 6vc$ 0|Λ0//h^f5'qNA >8Eֶ? aǶ:Vb48g7H>2bI$@'E8@.~@O8٘*`GeqD.:Bb.ùrz+#Vf:gƕ WIn`X`q=RV.#}+_Rys]zdg!R<dES{t2OĶR GdUL\ W ps: #ü k YؕzӘK6Y`YApwzM@}B{M ۸v3x0ntB:Xrv`U% RQd%WD@SEkw Bs.#kqiAUbz~Gs4Fg#( hRW340s J|9J&"UsN6d"ThSIuDtǂ&t srT'd1wJ3!`Kehpp7!. qA K ǚO54ْҁCCr.JQe/H{.".aUdшQy`{UHB @QV`R`N vɥ!pY,L~e!u(~pZr'TvJe d&Eq8r5 ") 9)~ " JU35e?WW"?6Vi9]#Ie0fC(8`YBSSRKbXbehs%7.9JJM} -~k< :[@MậkڭAl)ڮڹ/+ڮxe1`h?,'1Oh.Sfe Pv)>(/ZavS^X2EoJQI4]5dp qڨ뗾Ad6av26!2DpLFd"=!wo:gHEs'tָct3H%)3ăAIdK-cKoSv27DR @\ZԔYh[9;lZ7[ʉSielʉŖ{xA!A@ .*Q 'qNn,C Cǥu=se$2bP &Dh QW@HY%#%A㘉)RsEUF;v`qEu.-pȐ(T&6*q(h, 0''C~:})hX3keeh29htU"x+fntH0ss +vLfg3Ah74c!H+7a|rcc,4ܠu1f[*Z([@v3DLlA]Klz ^ ^0wutI鹷[ +hvx@i,ߓMc^,tº{ HR@ &1oCev^Z'-RɧaCS`3&! Kgʦܲ|c6BUpw*#&6T'mIS F˛#5YJv;M0(WXIt W9*5W"ke I:XeX,q(20!o;YxT [h `*y2k1${,t,8v9};Ǎ­0n' |RG9zM#e`+ҍ{*ڹs+ Ƴw,-0p}N,֔R:`mhMU,-Zb'a8?'Ց"aGoMnW4Ng&H1B'Iw&XYte tT(P{ ü;dx+ 7&#txbSi>wц2܌>~"xBf"XCBnJPS)Ŭn =BV@h@@.݈yk ">1 >''68}Mi:%ղS4RTՅFɏ)~FdRuo RT`c=Й`Ch׽.k'*p TҼӞUA~V4s%t; XƁ)f'!8&EcC06mJaX9r`U)1Hvq¶w;znC4NS*edJ77а |(cՅtM܆_,[ |Ȃ` q?Nn ‡n۱017d^= yjM\p3]qNKlA1G7Zź#a`rCRKɺYzH1E8}SkpZc1o&пxɦ(7b&I5T5?"D'8(!B'e ĵ،D r#hb9i2ʕ]/B„X߆ +:,"2?81t2Gh1_D!Z SS"O;&5QEԨ&@eZ HV@ n^~ + pY:KKjڬ۽. 0pOs-\l3(+ 3V[^轌5e7ټnN$k[Вң'!>[llъE>d"W%IFߦ +-^jCrFIJ$B!HjZ);$B洗A=v|Ly(%"Yzz'%JD0S"[2$?,&vbMUz^|A1RB@XHyzA ,'YCL " E\zq5cS\1a̷Ŭ4f4XЀ6+,nR+{)r*C@c)pV3;D.!"HG?\0`v IJ]hʓE(bZ rJqRFAd_A`NkTx<671(H+ȑxpU҉AMm1&$HXVr,rkDQ6>7ئNuu5m&L/R"/#@3)"L$&3ArM$#2Q7+IV;,0_* 2_1WC*!@Sb,,XCKzA.c: b,`М^' L.+Ƃ̼t`$. m s O2RV'}/9ϡ όf62j fD(З9h"m--IF "ZVaٓ܋:?]ft@v0[*t`犑|mA%%EiAF @ J+gJ7TyR^J4d.PWjj(b6D`5S;yj ͏M$b \ eNS.s']pH KERϰ&1j{Р K!b8̡u |y 3ug%;YH $!)"xԕkGXɃLX*Fj#t^ }ԢzؠmFȥem{~ߨHnvp{kRg ^s"~idl&wS\o"w#I6Ɍ ERyCrrk5S$fILR͖%w+eh>]ӽ>СtJ-ވƘ/nq g^o=?#|b Z ب>!ps9۱ *R:i*H5i*ݡ*!+ [(@AZSJP;1P-ԙ9c3Nс ёMZC=˳1ѳ&QB{*1'E1BQk-YEi,I{#5Y5P---Ba+ =j+ɐ+fʔW2 .j=6ԡ=iDhK rnÊ hEXY 4⸾i7㸡jvc`t /{7p/Z8}?{iDҰ jk4 —0; &t8;8) hq б23*(@ ϳ2<^𱽐 8 dp/;3)%@ɥMZ1; $ۈPkHi,H6H,Y[5s' a`QC=܁<"ɺ -ъO2tQs},_JԒ,&Q#.KZaV U2 1ŴAR-}=jB6n:6 ` WԠLayg$\LEB^ ¾MlC8M7{FJpiid mZx 8t ȸLv TXN`կ**B`UOϻP\:`NAcB0Q<>Ě-˩ϹE!;js eK@a.Y:x]v3DWȹ2`M3>f3''Sӽ'>B@Њ5(EXMfGe?FܴԳF  3  SENp$E10i2|N% GH4Vٌ#6cMq6#$>TEP SዳQ-<Yޮ1{ͻXǡd( Q݋^}Q\>QE{\$u43+<1YDA$պGII-Y6 jajp#xw@ (/E֨`mFlz<gмZڮaԾXal6֔k2JFᬗ| x@`G8?E) *\H:ihVO(@26`h AlJ-Ήc2R9N{+ =IqMDJOzBX+^pO&XdWCXS ;4!EjѻHޛI<:b9S6Ry _eLEf;wj60Ѱ'`2y`q~!=TtEe}\F}F}ƴ! +! (XAUVίzN!NnQ9 ŭlO,\2f@4\ 68 i2#C /kIQ#l`I):Bc!ԛX4㻽KBCWz}-qJdݒ;*ɽ$i5{ka&(`:٦L93 wjn6 kn`6){" C;2 4nnMZM6Ksgjjm3@8t ܰ[ۀ ꒡<%蠛*R1 "}\Ho2v+q6f255М>%/=!%813C 8ol%%hfnc&=:R W5`Pd$^{ʂ+T|l.WR0_Z[<DӜZTm7_yڴ5xތspmOx?q000͎ hx:(zD9{*05xC&L,h*-Q|q] tuʷiYݧqVىQ ;[ke x@}"A;Mae{G"͒|;2?Q5jҢ$?^rT5{x?ː-}_%`) `g{ͮL pިҮ/^Z,h VZ`P 6Hpb.daDG:T8b#`Ĉ1$C0?PπvAA@fT)H߭juje ѹ R/Hh!ՋΕAʪwH ^o@ _"K.`6#PaA0ƃLLz؎M (P{a{]6c !ȍ//ρ `:vڭ {E# R>"yRDp?Eַ_|٧Wףj=W@wyF``FDr!\TxAEg!A>h?lb,q1&x5EȰ 9p7EetCe? ѱ?7H GJ` ? hUEO `?I@ yHAivgB )}dHmh6IuQK tNTl@C!@C&R d';TC!y J9iI%1RH/IRY@D@O~fL@A NS?U HB ,c[˸""/A 3!Ģ'\"ȢШF: 0cBK\"*t[At(])K\VM(A $Nq"bs$)=jr,y8bn#'y$J8%d%rº@!fr)9w^7aDp [4%9uׂ`NxH4ˉD$aY(S&Ad 9Žv &/uەꗥh)Z ͪvYppLd/pha~5V<1+kIӀ],=}j2dWUt"bac4:|XPa C!9Xљ uډC';Ϲ^xe:Đ>8TbUUU ነNbT޼bkh$mcG!A+ bcJQ#+Iv 2Mg-ٴ9MLI'H͑.)!r# %d$ y$\ʿip4pr~€=LȃS -e/Zׄ0u5-A(EySĘ&1 r' ]f}`eywZ;Llw^vu8y6#A@>t u2tfM Vy5 OΥAOGo};1 )ϪM4\YK;P;٥ &B&8hGd,f EI/ ݬU(qnp$+yά\l&)õ qSRȺn2"@ρևi.';9d-*s{LF3pL 26쒖LR$a^RY*xMju>MӗT鋚xjF3m5sN˰pv$d.rbZJMTADuj: cK:@uB c}0zDUj/t!{`OqS˯8^UxVeNA,`$fXƃTAp1$A͐DL Qh NL[U`՛|A$i . ?TC%R *@ŭ4T@ ̒ENi-hi1Z@uލZmVޅZ< @?$dD?ӾЮ0m@, :m?A͔ro l8FȞ@`"1ĺA-PAQ|#/OHH=y-&K, \T_̟Ġݟ#M ؍Gdd YY`cAα؁9Z YR v`BtYܡMJL?JA}RD,`F?Ffc/%ahNhiْҥq)Za)-a]maDZ]ޑϪDK2EF9nk]a>1KҡlS["=Fl# W W>PxMWڷaDe t@ӐH|+P2 9?bA&Lb( Ұb hOU$iIu@5XLhBi4X_&tl']& h0=) DMfo;rYE]lR7l@B?@tzSK܄DRl0](gEhVTgz \d{&ڢguϨZNSdvO_^ܝʖLzM$L.0F5 9m@.u䭪kVR0TwjVhVp{N|VJ/}S&I2(B(܈leba;IV Qm(vy=1tZ@ṋ^qePjGWT ←^'|J_2K,l|8Qia.U$ [)qIlf0>}EQW͑쟔I7F7b }ҧ\9NJ6+>C`J AAvDD\XO>faC.eDmE|檰M"agj@A0Kx'2L>볶$.<Q `QkEk=^; @eKRZn\rtĞ Կ޴1bk/@#n@ Xs(lQQE\H A+z/+"$ǖ,APH"ɯ 2UTIi0Bc ZM4OYf 6bcAtNMX0BX9;nRq" d xJA f! jJ h#Ibaލڤ91I^FMFmUӵyB겫!S!}^+#JSЮrt =.ˆ%&>i!APJr)v(uBz/Riy_/vTT\"Abla)0f4ϙh`);Vf_ý=V!e#E m\cΝf*Iւ` qXMɭޚlj/1dCœ(aFggD.hy֧ dgy:-ufڀK>Ām.>Ak3uaF4+FrO!:Sxv=PWv xrQZE2%G-֐+FLqjla&/ȶ(Sma&&.܏xSDNE M5Ɋmp)Iݐ)B :ԕ9M)'6L*A:O'ٚw'd N#nJ`b}6af iu֤ʀ.nr!1+pcJKIAnv-䵓`kO`rgmwC"Lm11"ZGq7vl XuplPYu P 1{(oazɲXD̅)JsHed싟]uYUUC3h)2^M*Ϗ9 \`1s5'JEV\ R]ANg`؏CNd.] JjwϨt]`l!j!mMA sV{g'0}$$g9--Fߒx篐4smrW5ٮAMn:1h7FkwFtK;UhV(P ms@W" $rGDLvӏtLȃd߹e~4xNA}}oWoz8,$luVoXuͻ\;DiSXYx]t8g鈪K9eYVyohƱ":Cڞ-vtvyGj?O-En$I/{*Ra"1N.C/ڤ#(Yd @ ժ7ߧR.b.hl<Ю/oKBH[z+tݡq!#R$x8Fa"u<G@SX 5˔A\L 5XAo_v/UL+[2b\[,IV)h>T\G!#?`S#84|c֡zHNJ<<6SI/Pg&ků i p:ywjȋvǃVȷ˛h҂Bn"V9iޡ+@;@A?B`… !@`EZ#D:n$(⿂)(`J#[p̋k Ǝ6I!>T:ǀN8#?&0`k8`QlŰTᚍ;,Uw l[z+pzD0qA&"T|8;ٿ A[TOQi zBOԐPC ɠlt>7:+^a,7n\8+nnёժAnO .?+7oa+$ j  ' O720H$ 00TL1]EQ\E_hDQLjj#LB!q$#0t(!Z迉ˇ 4!4A<ˣR()ĜH$h=ꦁiM| .5<@E˚*ҫ,*KS.<'rи ԠK-WՊ R*1ǎ31 >kVHhN kOcM[f -f{ "U1a!A|9Ϭ ࣮# @Gk%>@/B z+>nɀ*4Ӣ@=FqD nN g zQY,:1B1ʡfH"+Ch(l'DtN.H6RʵHKl ̍Fޜ(7 +Z&$kQ* s* zZkN PXPE kS@H*t*U.(j\mOE}Vغt\+tE2,+] ̸"g=65E ET)7۲r%7]72]y}c`Vփ L>q| 2@?41Gt9A-3d&YdE,ܑFn#G5RȌ4plC@@&E'T6' lA6e"J"A7$)Lk JJ RFȷuBƩ%j+M B*IG9H'Z]:N*s]0e͉u,Iz;LEQ¤QqlNLWR-(^Ӄ0U<ȄZփh~i&ZfmjX'\t3חp9aqvd^ts o>DX5c<0 vy<飱?7 PDVqIP,.HGKx)- %24(E]̈(ѥ0h$я&-n/@¶~+I۸t0}&%9 $-mjdip HHx7BfDF¸IwO V(LUNS9BQsn XF>sT$^Rہ.!]uWQ$PbXJ:epu@yfU$lg|AkR[l|L57lcMXyNr‰V,jG<9N;kv ;ܳ0|Vd?~b5"T &CE-hdijذim!C.:׆A" ٩ڬ%'٭Ia)ܴ$#aM9 KIT1DWQm%ZiRdn&Y:;d*ƪ*u*MNZ"5eʣTR(e.Bn](YLĖm!-׃[J̓-E{/;֖j>6kfC\q}휃=)Yq룰b`giDnv3}xa0VիiMȜ˷NxG}Vx6O:MvDZ'9O.t>Vw;Zc  4NHOZh` @s"iL9ڴ.5& bR [Zi&aioi7RS̻jRU&{M8i*b/idߑnL$*3B:GSG J%ndd##m#U"pm *p<Îے$|$k& L--(3Dqx'ql*ǫ@/+ANti>C3 D+gx-s8d<}#FNFg ا6ȵ;~ ~IkHN9Eq04_G~;">JTӨfY$"c{DFˡ@lennn BphdM2B;D)*!>roP/opL")Q 5F#pƎ&}6iU["r,Vآ+lsM .鬾AFXKnX1VeOO\-o砇/XZ[_E]҅Yz%:8Gq1aXE~E1Fua< 9\paA`E &`Qa$Fp4Y-b3v6 *A~VcIDIN :Jr&,-d$KFIoL8޸S)n%$mOv ZHSJԄJ&p#*es $&jV-XՖ#H(*HҪ(V-XJ6BY=`-a u\X.ݥ1rtњцtHߕӐcs8tCY}19.p~` <2x3!OSv̓aG1#xMfpgx;hਯGVNVG6 ӧpN b?পKrwk;kJNbiif"**LXQej>U 05ndb(ei 툘OOpth)FKbO$',I:vqVOQPYpM4pI.9$zÛI0&3Х}-Bd]0_!;)2eL`AS9nbkKwFKcXhdyeJuHp(d8>8H,PENĤL61#jj3t*0Y)T~2);E R0h;L:5S$NnL/RdJ$]sŜuPh"@9vYm,RȎ̘-tVǰEjMX,G-e@ïu8fQIGy1C~pN0#CO<J& హ~VaK1w sxXdd+=> HaMob-LhYE\w%ueRr-\* yD;z4X%Vb=a lFXyLtVKpPkpd~}B$dW:f=:'}(/"`LQP,'RsYsU*UϘ}WC-F1C vFu wqڥ qx8t 1%mH1.HE.Z$/e!CR2*lXHv[[р֮-i7HywdmpƆxݢdeϪ 2.bDOƼU0HF'iqoPVLѵzqB?I&8#))=/I[_c,eSX9qi9@7(+W0xߕ!X,`0!_njAZ8)?d@p A4cv cH@8ifjnTiiК5!tI?%8*'SV%H(_X"2 uZ+jJͨp |`v [}hqM(LA]:yzH& ;l FڰޝsϑIV{ %Ӵ{Z[f ]䆶(Lrz!s|0/qoi7]>lp}1wH PDYxM#q ġS1$PC!4B"1 hJ eF}J$"H!$CR%TS-q-QP.O5StZS^"%UXJ)VH)%YhVkFdyL%'S!Xdqc^fyטb|) ` ZݝBt5oqXvl=7^ZcF:hyUGz幇eV˞hf~f٦G_lߺnnaeđRF1TD$ʔb0Q$'2QER9QM>RHNa.d*QJITU%g9TLMIE9bI AW+y cYu\fô1ͷ9j_v>Zޭҕfli]۬6V6lSD1V+s7]tf]_|݆m7Љ. ywT퀇 pm㖛 *e1#CB_hJ@pM'2VB(NR࣡*o-\nV؈S I|(]J<~GB6S.>P P>' ]'?S0mAD;x(Jr"_[AH2o!dx4A=AǝT">s0!lfD$xHR,5ʙ8پ}+: &,j@pDKTcr'>ypb6d"1d.4[?>yc`г <ƓvtsjPbAqM^J I+b94j35y5wOp3@I?   "B!F uqLZ]hw3>$FTQ&IKH=TǼ1,LSʒ,+`Wn&P}dJS`[z2Q+SᱮN@QrkC`\%|]]83o)Z0>$!-Vlf+I+@0S4iZC{L<|,$Ǣ}zLIM&qmG4mR8cIwKD3cZU.ZNtV -^"W e AN%`%2Ch5La4Jْf|IԠ#2ӉHT `y I *Fy۬dlV>ձ9ۢexGN}0šd) m[JT4L@oIMFHϖrl!h$W`R)qSXH1v51- zড়>HQX$`y˯{!eyB(yǢz=%j4(6V h%keq3]8CfV#VFvavW{w@La5gDw`2&cvL"nA xYI"ZnO]O7zq= -$j F&yZzW9d^&gH*XP[GTq)ɢqw.a\a[w!h,l/e~ C7_sPՆ?!tu:)_ar_'!;wdf|H&H[havCJ3FJ:SX&^nRakk!h'EN7!&6we ,1@\6fW|x蔄;ErVH/qz!!4F2]؅,}RvuazMWJEt"[Y4F4'x)#em%E)Ifq&wDʒ+|Wc!%W/B( A$RF1.05s~S#0au$O>?_ =u!`K6_a=32J2~vs=k;bQV&TVhQVi`n3juVi1?{! m!"d5$KKg8Y{maڸ@x 1:"Y!C9g:%WmT!L q#[OVoN@Nabvqv'TqJ=q ydqEշ*q]I(9&:r.'G[a"%Sؓ.g#1IRB%31I$?UuGta$EARtG_EwFWakf``2q)sulwalr"G00fHb9@SNDX.3HҒ;mDxY@HR2xg%cwg'N;(0W7J4F3q GzEwΧ4.rf\ gу:!BX1}!Na_;hs}K1zĊNJ;z#@Au/BZfCjR<h2Ӂbak0SkvJdwV1ӁwQvјf8xb$jxzt3DJc4*mqyB{9h$ȅ5r"_&<%qNzWNzऻY!X y+`#Y"֦Q84ؒ.U4-wB"iJN'Ga:e}9t5݅s@q/>$iTGxM$Tf1S>J@Y{;.("fzzWt8W͵.d B)zGm|!88a:ׅrg NG:S݊/zO0zq}*:fa|{wUcC'$g|7b&zƴH^ r:$_b$v19S01&7"jɩ2X2#JFJHV֭ѱF JI[jDqLQpmAˌ[mV ٭ZڍvO2+kMNÜN1ЗmǛ)wnR W[fg0J@z—q.{G\Uz r EgEy41L3nRwr\1!#L9kTy|Osi";[1:]TTV_\=_N!~* X\ZBtfikfgVJ 3fF51B_!vya' ;?CÞ?S֕nvwfqw'x" p#  x yew.t )b$R ΞU~VދqL13 Ў~mQ '4PN.̥ti yN{4"U;lӁ/+jPKz4SY2hUEIπ`nNJlV  d%hb;+-/l1O*049;=?A/COEoGIKMOQ/SOUoWY[]_a/cOeogikmoq/sOuowy{}/Oo/OoVp4mQp@l4r/o1/-0?rO%0mq4QpL8/<]XO@/@/@?%`֟J[~RLa`J.d6WT 4kU"r: `>cȥI.z BZSVye+!32z; ]Q]#ӂ}ݬ:MރUhU"=}QW~ijqwB:ϭec[lH|eE+ E'g . Ϗv^h8 ш0ZQTr IA{`ȱ2Y4\"Fy,c4zlن(ңk*`'ٝH: z-z)a 6-_:XոQ~ܘ2zȦJFLu*BθUzYͰu \U<kOWB n^ǖyhz[˲ܸzcC&$3 iLT൜VVΧoLNM7B׆Wd?ӫp\AHȞdX< tHډf)- YtLQ`CI{T7;R{ET(͓igTUaW͏鼣hHNсbj?wdrc׹0YTg^mJI7E,D]'=)6uJIY\V>OE#eciWw][qOV؅_wT\Z2'w^kViɈf|PMc]hmvWvX}i4"o\>#Vv҇jSMW]h殆];?ss^äabpWǁbٕe͵l`bDwI\ͥ}YgۍndʀhxrTڥ}L+#mFG߁Lχ^d>?Z?[`ҀSJī]ةîM5iy~ @JЂ~-aGBЅaD#ДͨFڋvT(>/Jһs4JQΖ.u@д7MS5KPע2U@*1J cd!S*ժNXͪVծz1ֲ*ֶuqYUd5l^f`"qӚJHlaSs9%yzl=3{Y`ֳ dpPCirb-l_[^]-ns{Qi=W ԧ>܁S%K<]v´7@u-LT#Wh +^Z7%E\ZHky>U|nvBwM9Sr6Xl)&rVeaafpO;bԾğ01^zԦ8Qg[Zct$eua|ln:{4X{1T;%ckYĜu gK[_%9321ӗuXeexAW&F+,l@R$yl5{A,RX0NXdkٶ:, CEi{Є "jzx#ge;yzli* h(seQԳṕox-Z--sv\gytw]zg^UvY}nl٦82md'XsN,n#,IKޢ^5lWYZ hib~q6'=Y#wu6Ӷr2p{T=-./l~s}zֲ*>.w?nn{ 7 7>G#Xh`J0a t&y5O{Wdai&tO5sda,6k-zc!k"8$hza[z5s\@7R5Z;EGODlNU &uMGe@XuSbu$U·dwnbwv'Gtf^ƅgwW~!xVbwwpzubju&qg`FNFYKxt‡ta|UVbjrz"h%hc1c6,P[.fZ97lBbCFc{)ae xi@|Xwhu~TGv TueP^^^iQgwa~AvUژ'^e|ppuNSS¸SSaA'mE|xhd+]lL8Hd|hyBwuZe{G)Z zXQ#rZ)j'&R7cHl<`lh?pEM60 HpeàM'hpI`:xd&gn^5wnovdzƍevXKuZWT@u8uTG96`7xV`Fd>vlF&\ OVu0b $kxz1&Ȑk%$dd];adxyqJxr8s 5E[gTĹm:pUieKm=`Vdikpa\`~p:wbϹؖpSDJut Nƃf|'\v\ Y8&ș[ 0k7{"l֚`al6X1Y4 t?qg`S VΧ}ɐ[iƌ-&,┪٫,0aqj rq8 )s&aA gmWNTZ, z~rssj Ac}u+SeriFH<+M" MҿCnm)3pQ?f1ڪ9ʧ.K̟>MR/_|ڞ]gFmyiqs{_fKNVSpq !:#bDm؈Ruq`G$mJ=RF/2@=e43(š ohOKgLũ[M5eE][Yj5,˧82Lوe-3܁tVW*G2ߒ Q@%Z 91 +W>xв7__#^itE|vٳ#;nz7:߿F1Z{ t6x] ~Ϝ9!/<_yɌCXX~NJ?Si?<ĩ?R( T*>詨 + -\))b)A%DZ*Ƀ,@[/jL]a2I(|wp(~w6aL 6̂)W86'x*b< 든B8uA#y+$=<I^OHM1>/[uWshX^W%da/ꫠRktim+Esxi"n):l5WF̬3e/,nq;h$X%>&`s:,o%M3a&\?0ƒzHN:&2l;S2d2C;0@$#M..yWmDqiK"k%R2Xށ"YA7 Ai**m`n\R{0 MLfy[T,ā-H8tpi͕y S9rs*ԜT8:cϙ!V"= :#H(I]HA‘n,^rcL?0=h~ջsŮk*b NR؈ؽ){r\Mq`1j4Ry}1H4R]m$#yYٷM˒HC*N P*|5g0=2b#ĩTܩb^i2Ӊ,;*']p b H0rHi6H(GZQ$;"BK\~: 9s.w|F,&X`<3qr"#Z"BF7֓NbfW:'/:ܺρԳhE'1YDЖe Ml\#+9[^{K_RzT&MXMʝrfݭ UFs]]~7sLnFp#iU׺#H:7*>9 Z@1ڊ $.kɈx=b : j},C q~͞tRGo0W<Ѐ%G%W]+6FC :FV^-5h"'A^GrF#C0+ZAX>Ll*İ 9xiH^78$.ǔyvԘRU#) fq5 fDnlQxv%Gs+J _8]ZbX8XqXړ<4,cpsUA[hCY&%1iјYZ"-#_I ZjrzIBГ̗ـY wO9ʅp%CaK1PR{3Oz^R2t4MVdC'w0F~膒m$'V~ ߀5y=sE ++_DDANeV7K5C|jǪ-JJE.*lfw6"LՎ|]=FJuK[ƔWR7-.f fJ ٨ؾ%)d%iP,NJU$ZnΈ8TJ8aI䳣7e\2藻܄/4Mn+3Dmքmc$u,ĕh6H. DK諁 ˤ': ۾5\52t:<0\3DzG%;e|G,rGw$(κϔ4lMlM\ 3cOQZ4z Έ>#\dE,JT$ВNбңqIT T[ aG 4., =+[;5/aSǽHH4M<5AQTїJ0f O"Re(dӬ@P $PA&p])) tŖ@W(eW+R,5WbN1}JBO>CӘBiM 42,ر4H\m ImԠTfقdKq8Y~ԾrLPm.ЃX#SmXU,Q:?D㋋Pu4͉8} beMQffM$RmخV$<8Nm]8@ϊ ז@WRD/R\Aa.LRTA3J;-# 8U4؅%KQ<٬э4D4UBGfsNj DD6d0I]KْeJ%L0PƤY 5T kPxU-EiΜȡeZE6}!xZZM$ճ B5MVMVe_]_ ֈ84 W44hr冻u݊.[ۣ\N2_׫\`pBS*jCUXք-Bܨ=PB%e ,^XI]Y I݆J=YaЃ. 80Ŕي$]"@.W#C]-B%mXtX5fc>mϱe8n tV][8 ׷n}W|EtEv}>WNEҟt $1bF#X=V*ic[;MS@=a%T J]I݆\-eU =P}t'&fhN. "f *=0+ݚU-UEU]1$u:^76^v^4;O%{V_9EVcEn,hm5YW+=VdFR<8h o}`@PPEg%eg6em ee}ǜI!}ݕE fmj"k#Ɣ^&~/ feb+mfa^hUu$[ȧi=Mee>Ӝ\6ߗ-[uہ0(V=f =΅NJN.EF.Bv l˖uJNid_;i^ʝY_駳H^a\VaڕTbjfP&l#T^×m  !늰jn+ Z;"Vkw^S^e7c6g7g8&_{^fVdhel?FϏFSlv"XRNJFۉ6mߙ lVKVkll&R G_g-ni>a%TS`Z6^inF/?t!`jE4f]>N]b nf @=h^EU)fZ(gb6kuNrna e:nnܬ Wu#p8u; [&Wq[VFhVަ OUWllm^o'lPu3nHrbZZ١f0vj5snSq@yj:Y6xnHxxx@3xFEkF_JxGkI' y͐@^re+. VX/NWugv.m`c'䝙Pcdi~V Vcm_pܬ\74f{%(1j 1y0Owj{wYaa+as.,tf=o> Obxւ-h}߂A溮!}Co Z%y&yCoqkv?yu_|.|nY{.yyU.HS_Ŗ{5'XGxHz>^Gd^mGЦWVqe(࿄ l(ЈcHŠF6Vh#ȌM1ŌYBS)ORdK)bŋʛj&P^oܸMzt/?R:ꖤRܢp^7o޹ L[mE;Q˖y[k0/g-aJvYq-*V3JCfDM8F>tsjn^mhРy3',1y$qaVTyR忓 bF#-4nomM-ƟǍ ƍH|O H~@Z\i( aO %uqI(iPo,Qqfp u#S@67*d6PEQ T%UEUVN)%eB联b OZiqW[q siWj>Wazƃ<cQcy| S蠰T%%QTې6)j6Opĥ4$bq")$]2щmyЬq]z _>ϯ|GD: 8b+zK+ͧL M!oRtѝӡdToFˌ3=ޔ[Pj -e#åDULbOY%XmY@52nŗ2fb V`' U2šYg lMi6zni9@%)////Mta "4tU*nGbzU -{}7 _߀3߂~7;&$` f ElK-rX+4ukHɼ iCz"r: #|MfBAVP"u8qV^|F39\R](&_'] 閝//&fdU~Βe;τR(dpTѩI`-j 5MjĪ<*2Ic/yZҝb>J{#y2zޢLrr0tB>ٌ26bwOHZ)KYJi fkJM. :PH^TQ%9[Wxe->6y phDZRO.<'z!|^>s᪞Eչ$dcPL b)B 6&ybB4 2% $RzCE l|&A$%S{ Pb':i_T@q}dNM`3˄%xK]65 oʩ _ E2gB)\ΤfFhC,+$sQ7Ă bD[ &>qAH=p Ql ,3u# ڂ^t3Chę^[(5Y;+U rdtReq斡TJdkL|/#9Br7#¼EC-`")$~ԮvqfTյW=Ú˄P-ھiPyJu/L&lbj5#& ]z qq \Ԋ뛪e<뱸X{'Yz΂'Z)ӕ~sb_aٷ^TfJn5+C)^ոfen&a^0׹.hGPѻ}҄\K\@FӶ5'9ėxP7 Q؍*LhF=K. j@+95$H!f͵zV1rX:*a2BXxOC\X-n?mn;!-,8qc{s32 Ne(V?n۰4i]Zղ싗آp;M f.2t.I!"=N<}VsM`<5u(RC$էփ R7{eR6Ǒd%9[( S'3]u5l4sdZܥ@VHOPORpGa5ޖغlU kmn{;6v2V++LwéoqJ- ч>#J7"(+Um* ?_? ݎBX'8f[$G~kW+{G*ReT=W{O@f>K/i>}'pYjż"Z+e ͹ZV\p\UB隅% ۩2=\5M%]iCޥhTa]Y6 ^൞%a%aeiV8Iٓey6yt,N"tB|Ff)Y? Y!q[{(^͞a!!ݑ)92\] rJ\m܆Y`F]-r-9ٽ -u)D0?XIuq!%\\E| OA"MW&U&"_2T5UTFErUOqY!&m` & j\3 a m[i#c7!V흛y|a|B^ua|(Ye@6t@ibᷩlvkfyjvj⇙:nhCG Azdf=aqu:V j5&KJ'rnB(fa$B*&8å"r1_\+C*i֜c'VO~:Wl+>̔|="j!U/IfhkҀ%Ĩzvx~*$Y3Z &A#%8ø`Za^c Hs:&aOi*dFڞNhcbޣ?f{liNij7Pal:ò)\Tƾ%Ⱦ)xhfic;n)lF"2gvdyB5rސ**KZg 6]ƨr+`"&.czVm݄r&&§Q'C8-MO"%_tCVPNTy^x"bU.&YFϲ^[\p?*ijEy'Y&"6ӆ^ m(϶k `ώcFrΫVcN1 ,-fJ *.,kJ^k ĖiBL>z6&G&Ě:ɲؿV<ƣo+h/q.n;`zuilZa.RBAm2@-,k7pC+D+v?.'FA-fZ! 탈"]N- 0h7j|]C|R"hh%e[n1^D:6pǸBmr'ds辮 -rq ,aqrj[oӱ.F)~fqVl[pB`j:&b#l)B3!qBrr;'g "cq*ssN*9"WƲ:022Wn盌*TpFh?B_]vA۲H.n F78gE6FYwvq#CBA+.-JgJ. ~r6, tB .4z7"(34R{3"w%+22Ss1S6G?J;&ukw7xytt;vGYwWGu*DDo7\.76BvvF6?3H>Bkv[\"bԣ耪]I^{E"\}墜3`5jaӳjӁe=+/?_Bvm??CBxnnEq:Sc4F\Dtgu喇J/8wn7'K :w:A|7ұz/?̴~g7B"غHwhuG8|PKqOT:;8uO8B[ [fW^v,*Y{ Z' 0:\y7?9E?ByFv99S3bk~Bm[Liz6h… _UikYviEFAkW'ls3 ?zEँ  dT"xΛ?D[0HGs ԢpOvޮ5S A<ݎk?$hau=TtT:kU| JF^LBO?VN!hkd[!<_S͏˒͞2h?ooq1/(/PtBQn#ܥH$#H^yqf^`Q I{C:jjǁvGaXHyL : :-ZjiJm: B{:w| %Ӟ]LE=1 ,OI;@ AQ~EGkƵn1KTrضR4u.+|A|+]pyFU< L@%8~zA{(Whbg#G?eeLB!5V#@:n!%A&$$%)$T,EҋhA B^2f=%+҂9a SyYA% RRZ{ŝw-pct}]@ .'_l @1.F*Fž ‚aM5`MRȚ5*h7%tM|c*mb#Ӷ :^n Qaߌ#FZ4ͥ1j5E*~?.ʟg 04*W3cʗ mR$nT?FKbB!ɩVWG!΀h4*{E1aKK[St^!^K1wulc"jM->f2> )tˌdԥf~iLpI+HDRdAӠ}U6,pҍk\+a9צNs[|!A4|UlC (A.Z1-ujNhGi~FkJG1ț# #)HB"/V_e*d%A#N+ uloڗ9QbkAva^t%q1ZLe- 'ĆҭLHR5."yJlM Uhs92H iSO w۾WSn ,_ "YZb4133YÝeVb]n1]ѭH]<ے6v{uw HN%2BCp1HIBc"!TrS5;6 䧏.HxsǺZf(gB~1a:hf/{+D! قDAViƝ@l{ΖTANUEFGMjFNbejN(6Ŝ+>#P]2%c)Ļᄟ\ǬpY iPZ8 U|t$4iP S3}߃@ }?5!D.fpSVܚ)BH\2'.ĝ@c+n@eerX~ $AfԞ7koRMl1ioxsl/O$"APK4inGbGL>6~a9s?閜*FSğa`\zoh҃jA.zEN $7xI=s\̜u9|W7o{?~1!p".p1X 0Z (ڒJ&M,LjL8V77fSbHUnn6ȩk.ndeI nXt 6#PL\V/^` VOln 5 V Zbnu.0TgK܋$ xx* x q5bad¬榀:a$B Ȣ@dph8 B.#Nƌˬm"<(zț<Ȟ|lL!Pi8 !6hhb%BPr΃oɈQĤmRЎ .Ό 75N㪰 C gưP3f2$NB^ur ."G!#2MBK ./HC%ܯV:u|j 4q ˤB B P)Rr  ݬwR TL4Z tQ(Р_nLm60+l8PTF.=eTHLS9ln oCWpAXvLq 2.  qVO pr4O * 8N.5e  V531'qjudӬ6"9ѻƯ Ee 5Buf%rj*/pj'/4(R,R Y8r qm *>K L V! ϱ;q- rH 8T҅-m ! zLk{@m*~T4X̀+,K,OlVoP3q<} X/H)n r[03IspaS;"!'{3K B#)2ヤ rak$`*Ԍ%"j`!"-x`-l"o"!T3xls rB^@B I+UK- 3 scE@q?cp hK0 {U5]mo R^!TQ f!S<152I2wƓ'yQ62R^2rb)Vb)rbS#q"Ac&x 8N6eOv954x```OI7u“"-ҧ.$ N! UkNgųV3 SSA^S_ ?3 YUVˎ4W Q.TO*T/3tS4ngt,!Dw#V<1 @ Tр+-3Ү31sLUy]?S3^IHSRTj+^5QvwRQua4Q<K"'hbtcncoVc]2MMt JddR{[{ۣk FV8GK+xϬad@~Mjd W3O}3Фju4_jCHy 7nt2!X,@E}l7m RLt! מf0.m/nC 0ƃ0iX߸ (WbF· "F*aT]_W+5_55` bRMNR_ v5Q[S;6QwӘa7x"xY-}W Mz4C Be  w y a lADE6~ &ʷ t+ +UٔU{YٔKq_u)_Aetx+r?]R hul ֶ#T BvmDmp}PV:hÃJ<`Ŗu,_ ՝3CS;sLՉbuW ^I 7_oQ)Uw3u`maXaa 1a)vcrcyGc!ez9 J֏7]cy{[ڥ_jaalZAuڑEG{ڧ)ٕZe_ْ"6V#j r)z Xk+]uHyM4ƜUY_Yz9pC-͛?R jTT)E [l*:F]6kٞ9Y)(:";QØ!mRP u 3zY;:"I W PmU!z{ڒaTrrfowZ bg:#y"YYڑ{{ZdS98p%xuNaxW[ ykKU5V}ӚmMcݭ:]޼A0<:VX,@rC՝˕y0 Y񛲙2S3S52M;] [S O[a黵Ry>7u_ Xݾ>BͿ ,F@TPͬX1chu8j GEwA/*Tr`3eONw̉SP!x<(TҥL*'N795ѣf G!=zԈvE5 5\„q2+]yѿ) v2P׃sj bȫ<sp8SdPЊ]ӢڿkY|ٲkZN}?ӢG+ .A " \*QtN ~AÀ_wߋJ_j;]2@EJsIAMd,]@" d[ITP4,y5DVBxaTA<4U9݈UQDQ6RDNI8#PTMeP@zL&uKUN)"lft5X'rg}cI$s-awif~TjƚOT?hKnhg-Gg &f.z4[Bbb2K|g)`*+W|Wlt)tyeFnAHP6GuaJTj^{"LV7䓒DBRu.;A}$@ ll "c!" у׮Š@o=T hAfA7rcE٥-@d(qn>Z8tpqJ8u]µ "`3.tS☯W_#Q4ՒP ?Ҩ“OYRY^d4SȰ:=`ѕЄ(IGr'(w $Ida6.̀:Zpָ( &5)x8~pȔ)PAYKZDOQI{|39pW)}5nSt(.}YpAn(( ’%DEkRA&gCITǮ+F;)ʺh db\-( =evK Fvk2qokXGH*|[$ ʢY]1vŬ1ީ٦Xd&X)'C*|ˊ&Gcjq$,i\XVD<)9t%IRG6Xd#11EcLQ6DH=tc$#"Ҙ?dzGM BDB[ڲM#1ŜA8!H5h*WvJ^n1j,]mX$V4QɆ:fUE-mO,Jeeג5R@hSB%Q*XEVaO(0D %Qq'5_4dv+P>qQQd[uZ8 )2Bs1j0::ȨDـv9֥yFw `7}F ґ~Tcl2S4}ѐR S.w \`*Rա^BDFf׊jA$Fdp^`AA27Ua_,k2;/3lX3Ul 5,f1#Trm6\>aKkܒ˥Djb9(xJpd܏ gR1~%%Ww i|F)Ӝ.C["0)ԁdfhHCߟZDb6hj^ղ4A[vzƶF@ zeA#U#y?bNMs9ӄm]L*!B&>|V,YyB̴;}Sfd4J6Y2秄s0ҏԠH|zaA qXCɸ"']Xќ'* ! =ʌ jY#FLkz>ޔ-qHaoRZ6累mށ@.Nyky5*QoƱϜ]wRŒ(L 0n6ȑуtχZP G|0m$ͶpvMVxA`G;V0^RX±LֈFʔƳTڊs#? o6XfEfHA ]L1ů9-RgdZN+Ӗ*6u}4lbv bvUD\,AL1x#p (h61w7$sRJwG$W(h9_\5_dU8s\Uxe.m93xx+/J2g< 69id^#,6%+fSKІzK{d,sp I4?443zzJB&7AdNT|+A7b>.EZlT;p![pGTjguyb'+b&0 qCe&mfmF.8!2!H# ȗ btFf 6gvws5u^]uQF`j`h``Q89 wj s*jIUPg u[Q ^D\\ &^N^7eAu_Tg!tT'©THY ]qp؝لD)Pԟ61.)9E9fr^0\gAqW?}.8H =x @7 EtSdh*4Ab—1 al衪zY7*o7TX$?m_qT>bReF5 f6fa:RQq}}a$i[k=Ff`Hm*u޵1(9q@)S+Y gWj`]KZ[s5cn`j[nZ|6EzjX@B u @H\?_u= %aA$Dzp wIK @Ӑ/2[P 9 +;@  agM^BGB%$ y ^'zPjo{nGdKdM1QWG1qu=Bf0$5!r-/&ShgDIiv0Gg6fT v^k*u1tH{RK{ q`@,.`4Ew ppx 6ASGi fR `W5 ڷةTp #Q\e @@Ƴp n۪r<W0 y骐K\n$B /pa SЮ5/:JB1 <=  J'2Al)zMW3~@t014dҫT硏'qtRՑ}*ˌ&=>ڈD+y1n ֿm.9ZOj]L;hgQQg%F^+m:9jE-rJuZLC|t*rj elŵ:[;0cAGSY@-` N)PqY\Y5Pq 3}(`J@EI@ @0 J{1 vWpȧ j}]q/3 j^hZBiM:b(cr=!$ QBp2 #U09@;Khh˩")z{{L)YD)a 4át4?Ye3'D %4"W}nr)ElaFYaqi^jjjc\*^C+iƳgjl ¿(JQK DK m ,M_ze;}TcT3fv+ Ӎq`{:7 96OՈmqCBL= rԩ{p~\EJ1vgw4 ۻ}E6b*\G$40v]:إt2|Q3ȱñdMD(@yKS~ر#zqJ#b1|f"D\y#R8QE7#VXΟWJvSӝD`=P`>m>˳*aﭴ q(,RЧ] =@U`OU2>V|9^~(0Dr|Lj3>hVRw#w@ dimɖj-4Ln+ɭRh t5 tKK ưyL௕ t0|(EdLQ@4A˴)bٙp0KzrI0Nbrk#NgF!FZF#t khk1˥t]JY ^ 9 Ɔ 3ގϦyžS+Ŗ`ߵЖЫzZ/52-P+~O{$hx\~8$#HQlIaR}0 뺮۠ M[,ɔց-䂍N {o֫]o!Ł8aXhA~EοUC5U]&r I?6WfIY5EHiESZ΁צV蟢Z^Tن^iҔG.YM_/PHCQB+:ЖǏ?h2C3fc y=tlRg_6د{6۵g]{w| آ-B~X>V*8஑Aj?' r†ƫBBgQghDJD$UDED81G3c>(GD$CSNb\hvr&E̘bLmm HW"Qȫ2q Vbʔ^#E '>i1q  bH?8@pх Y!H2jrc"B=BdYd3PIO|c*9!l``5}6Lc}Òtlc;ׄy4 bILPm?+6\R LW/\BWK t~+45nv%RJ]r D>"fq4b R\HRg( j )^8P .Bq~RYCu:IRL=E ^*,L5A= =ϡZU>H+85!*>Q#Xz,5FtQt*T&/"oub98ay+Ki14&0M(pʨǤ%< ȸ\!.%oe(eRP*iX+%&L !-}ӁȐ6Mԅx\z=e{PO $|^׼q@l^eͅ/Ldqx6.7qbgcl)HU+vˊi|`@v ~{ El"300w2Bf|HBއD H"NWD=&a K%Y F'MsxN0DoK;(ny1 "&1N  q%5.sTCQ, ޤttbu,By~(&=Ճ,QǓS zsi@&#X+{% dpIiO+{)ql<9x; 1yD`3^ʛklRS)7[ B1eH1Q|##t#p;8E1e87BR8iHQi0!xAz YدIɆ0+R9ѵ$iH)OP:ʁ0%H8_5ݲkK$LB;ZAdKԝO8KQjH\ \|Ck`4SN[GZ WHdrA1)RO\ PU% VKlV`n G0 xb - Ga9W3YJi)!T1a5<=pk0YWo9p8ؿUdW4VEl XE*xB]+urVCVlO9 3 tZO5x1eVK!5oFHىGۉlMsTsTXajс@}%E%eHd `X9XH99r"Or3H;r$PSҹɠ+(Ʊqo%՜zAaC];M?=S0|@X@?K\x.Lb @+ %XVHmԩZ V*(#p,A[>rj6MN0.Nhٵ;`e;8R*+dz6Jl˶/$l@1L@0P|X]H$8(28M؄:qp.M#t2ZH/3qVX4eF<}ADOBG=TG|}:^mR8JgF4*\>LLV cWb+JB tTɛ% B%`U12&*KYvAR֗! KWk(x(Z kPŮ}݄A9={vUxn=;6WځX?iYsJbbJJ [㫹MWɄ>`fHbL/HMX6ݲ皶híj\RHQ0.0ϭz\NBYfeH-c*FFK}=oo4I#f7A2Msބ178RI,ȃw;v,V@iTHjwOcj0ƚHֆŠSx:}jNjw~+vv$V8.m(6춏?@.#(n:78?-@,@hyI=YvF$%ti)$.ZDexBOZh':`TNjZZԩ-wh9]8fPضh^iALX6)*-Q8]>&@ W@ pa=XpH*OP3ڴX͕z=U' u䙲y ks*WUܧ~SMRwU< 8I_* "% %2`@GL.~b2 LoњkͿH-w1`b8sӼB7#tЁ.E?(a3 .##KzXL+lhhq5("9Z tXC$H6΍3Zc9Sj1ORF%zad-QAf0t@?l9;ڨǛ2?#lyQ)?#xa!5]q@u\ DtX4|(e!&u-!ȥ `|C\}AVI5QIP%UO*AKSK,]"%#?˜$O@לMtODeT&tUVO+7 V|dZkl a`ÁOu 4De9P}OYWo]46FELp tP5NK | R[DtA'}`?H԰J'sR]u@oKs"F6avnk8 ' 0!.ƍ0B+pS. τeciE|OoҨE֨5ZzzJ$8LhOEk2hS QH'HtLh &PhfQ("{Y?c7q!dfHG7 @r`*( CĊblBr\ⰷ*| +`E"\ba(KءtzXXYWEN4'$K9ֱbj,=BUP"V.B*b!U L00yV.@0x?PWabb>ƬL&R$^3@NrDh.$#axR/j~c@9CQy0;$7 >_`Az\];0@?[rpE/0fȄ3 #|Fh}ZN8 RR.9\G>8.v1jљ(Ԋ.r8\.ox?]BQ{.ϋ T`+%Wt$ P *trg "(r* ._+[#d.0*f8~ -b )DD z#'BDh -Ox">}Bz$?45{Ĕ3}B̳BbFY;"<"18Ni}:lBVcG7Ye!u2UYH tG]*ҾQ lDX'8^M"=!Z&T9xRpT [HXYu%u0v_Rk\ga9zlg`oSebp}څYaϴK(ݔ2d{ۨUn 3[`ôM[;!{KTp"9h<8=Dgmn9[cp 6DчDA: ސ. i#Y#roQ.~]CQ#t۶E b @ H&[QLMeAa4!ӫ1dIC]l[! A-܂ IK`^]D1݂q?JU [9 ÔV {A9lUU֡YJzX|b4C} ؜--5m^vA}%a)gph\ F)"KR tBL'APա`# UmϓUO\P-))).LA-StU+PTPN*VьgO"),,&iBk<>O8bI`N!BXh!nla!‚Z:.Z@M!%B& «IV"pDR|r "1u_j) iʘyKTE X˟^D?vU„F̕`%`h] ܂)Ɋc A7|A |`7,ֽ܋f;qB>棫چ)Sx&"`( 4gΜcmԆgdnLjP6^KKv戔HΙI^ϏUՉL L t,<㝧Q$l#gL D 4UXjznXUI@!LrG+eN]J9 Y xM&xG:ЋLheȉneQøzH]DdHm?դB2hDf鍥G|+TE*lOKm^'.>T IJmg GKD|C ! ch BK2\uhU@B&$pѯ)Z(E\D EeŊZ_ *[}-c:neV>j7tZ8肐^`>ȁ>ꃭ*7þ+)+;jJ\NVMM\1k4.c\̌GpHiNھDIĹHm:hI%(K@0TC߉Ry KV4 Sl>Sjh^xghGN.D)۸Az( Af¨]\fDFpHDSFIA*ԢdLqqI7ȌhEBߖ .AaPx7\ a&u-]De9Ζe Z^ P۠^Բ %Cm0 |qֽ^[e  1 }VT&rX>ٸA5' F+DM 40F!iKs 1'䭫krX䩫qSq. 1.ISPVlld둕NrHTIKTExddp쉓X)GDfTpH̗ǁ fE(@GBC ͢ъ~G5B^$}Ss)cJQFID'<SkEWERJT QMu0|dP#iP\0l!^qDvcKwuES R0u`劊&!Z8+F!~Ce>pWi%^r/ 8 \D $䕚(fx!I\8IX JEgM\A(oU=TvVNM CDԵιLqC+DЂS\E-IE\_J:LB4rr?sss;?07uЫ&ț jEhE(^LDw!oG&g~+TޱPQz%n@_QGuEQD:\{VNZly[(b.D5NFb᠇ofH?! \JcoL_Mϟ-3 tbe]"RKQHV&L\]L,->-Zr"(g])CﭢкZ]zs<73w^ "`Qe! 82yX֥x@J LJ2H"HJ;FKaw:- ,-~w'D|`t:Β;]ćOL$~ c0 fbĈ#YɓXb̿23g O2AHLAO "!.uSw\bҤB[ocŲR,tG.KTQa_ ^\AFuIT uyȔS>=~d7O,)(ˑ,SP,Nd9qvՂ}ķ#xۮcurU7ԡS+MA=#Yɗ/-2f9 sH0_2Q&;|.fd #2IW.YWd%WRF%V0 FJ%NDhè2Yp/tzg%H4L T%@h/>d𲓣c7K;P!ȣDB52l:tR )Uw"ōL,TvI$ɻG0}}˗b%(I҈NJR,7$238M9,b$qz;k&TJ/DGb G'?S<7O>%ul2l6ItQ:-7 ;`yƬ-eev*$*y:qj*:sxdݳ$Rg Ix89υ3,g;,ZL';W>yֳo|/L!NULcO5w?NA;:H;10R![7_x+j3THOo~O% [bE3 l1$MKsm v)J` 2k#TsxC L FD"gJsTBrf$+Zk%E,^E"@5F7#$, p)F4*$DB(pfNNfj)$4HbD@>Yp B+z=$͞x쨟xG$)B$@n%bⰐtƎihLIxl @0 ,j1%Bj4t|@uqgʪ%FOq&#;| Ī vO*o`U>itt֮E#=Rp)~E:!o .!!~cjg,"71 ')(M#] :)Ѳ@DqCѦDFXX=:eEXeYrb5ЎItiZec(WhA.G^^/%.eCBdLcFtqX"X!ibCƙ!FD !` $I sp7zYn&P(k$K6fP%Pq .%qw Q*T/("#(6=n"KfGPD<2M#akIK(`\BpD8 4`}LSsQ;3=uS>#ިA?-,PW%a(X$\%[q` Ҩj4B(X#@Vm 0^*!Z^BD!h}^h0>86Y`bYZKc=` u-[njərt=Kd&eЯXhBLd%z%P$X)Ei& +Y4+."O/.$B(f"DF%̆uCqvD$^&b3xm4'12$ ED52E3ZI?'&83YCKSC,T U|(:BJއ־)f(L8`JLFy.Fͨ=<]q]]UT ^_Yb<]_ <ۄ!`1` ւkgSR:"&bYEE+Fx-d$C9RvBd"kD&xmE@*DEAF+a+ ޅ{ c! 3~F3tf@G%[sfx O+rK\b%r> L1254w,+pC$F;BFL"5f'Pc \Ph eOg oXyWu4c6c? l3ek4+(I'|FF=/Z,[q`]u^<ݳ`Y;Y|3 `(%(;< : ,?)$A:8]3%JBVϪL3gDfW$bfGNJ-~Ь ƅ8:rxRfBr0AnXqdՆb"!uh&h7FKoj;jȎȬZ+MYd,)?0J{$@2  I3>bJVIJ=;+aEMG ʵA&!\]EXV?qJn102'] 籀r5y&Yy3Kh5,Ib,+mqhP|g9>+5&ˋ "h e  )dC #vaŠ (jT#Gv|<熤OR !?;*vME&(\HP2(QPj,V-OɒS!Y>|`GTX@*l_;L9}8ѿ>DFxalҤ)\s̘'N,Y Ȍ13{" 7;]AZV]b Ae 0dveœ2y#\P2rXPýbߋ/~ޜ?_'MX/ ?RZšL1^e_|H&-]ܱ-W&t_^t%,>#!B#b+##,K,q b}5'ơ^ 7"l?qkY!]Gd!X ŵD jV Xu8VǠGuBrdߣd!_f\} ɘ|HAfue!BsQլ )(Ua'ȠԱ$yK%ĐC??tQDNuI|fX$AA-$Bqa:MR5SN?NŔBYRK+)ZnVZ.!~9 dBKv@B各p B|….]7b-2~L!TrDa;KI2`%|S`>cG:?>6,1Fi<-2dNigH"!dJJ`'4۰qQ A2@ 7a?%AԚB/f YC)y*&7AyO6j_lY&8m}Ƣl3FpX\;ugxFtQ0fW;nwS%Z`A Tdq+*KNX my@>+ڷi%,ZMF0)!QTIG^v:v927MTI$j5vk+YAtiD`P_o9Wy6uGmnSa16q nUO1NP 0~wE tzJ A':W rv#Gg!NnThv?5KE1v;IxDP.@PLJ; Ӿ?LcD y5єK|e2-7:K,y+Ek Հ%4h  ALK/(`nMA0WY.pڪ:% wpuh2X NZ+̈f+dm'hE:…6-#cht߄EztKDaE`NG@ : Yk,ˌ&?,RLޕeFϧUx9,!za*xWQ0m4|< 1UȶbVSNYaD oNJ\'#N9ʑ)w=wE0'ӭ/DсWWxlp9d`^DŽMJq&o.6&"-T_foh }leOro)-?ܜMޯ%SgaUwFyd A@[g'7aGzSwZ7#Ł.Da]V"˅ APETZgz$:n ϊ. IӢMoj-?Eb( " ^vMLAdbNP҅2&! /<48o">3eBɁ"pb?B?~SBJ Qp+Wpp !'q)IWLj*3H|::1:.s37;8s>b>Gc6 O"#"@bAt P$ # 7&p HP !:9Ae_*+u+J(d!Jc@   ]se $6TYRe`W I,%Pyu`y[Sq6Hy{DwV@,ėAVFCZ;Xf-A{Ohb|Ck.t{h{;,Dz wB*XlU)\ U}P*0v2 1&p!~ Zf~e!C),>8 :#[Htɓ<wB4!\bCU?͑rNa5%>br u.`1w_yW r@}6R)3"2G;OFb=2O-$FO?bPIXc>uc#jr'6&G.op {pA6 6'I:c 0.b4b;##s=b, aZs@bSZ)c0t# j( V FRGK |9PRwWG}i*X%ߨÉWRU9Erڈ=`1=Y%\Ase_kRgcJȱ*=z6=J4Ly5'Xg\k0XX"iщtp;4iXi{B٢,?,XǞ֝ _bDj1а] 3,@ vf2)$ H z~[d$E!4PH:# '2ɣ!}M'aIdXj= 'pb/!^w)JX+c0.2OpWg66bcO='&#QP3gbdyEWup ;uuYHt/toQWr  *&B Q"0]؅N%8eD5pp-y+';UN!"f"KP3&W% "]"!""Jdvg&sE{ K[+7R1xs{19ľX2zz 眽X{ |ĨQiW֒C3QqvDIeUyDy C  G)p+37 Xt+ d'(k zP[փ} 2A>39)m&)|L|ߤx0ú(r,<֦v`VUppɤ_Ou9fLrGw Ѕ.;;G8'Ȳ#;/sJw luuVȌ|ɕ~{TǧLɞ b" %:r[Yun]NEA*=Q7b?ASeI=cwYaՙJJ C="U%p@2fhjңk(t_9y7"->VЂ(i C|[8?,Zp|,/ٲUE CZt#WBŒ|)HqL+mB>yo ;rdξ!y&,|a) 4s>+q ~fm(3 P&2CmJL8A*[&5Cփ4fJRfB pONhwC7x5".pb#@QPbaV CG]&%wAɄʅw9$c"(Wu`ˆ:v)2ܵ̈(Bc 匈P54DC4<̒z  Q9[%Λ@ټ͝R"I=u@"L*iΡ3*|xyC;AWzًpzR-(> -QYB9!/@Am'{wط 'hܸʺ kXqc`aD6o'sB8);'rѱN|,!/fBRҙ9Qt74BQ)s5 R* ļ]$%ğ$٣c@uQ%:="SG$K Z &`c+=[&g  _ Lj# AD-ǿPɓDNtDD,Yqfəv (CfN0a9 PyRXJq?\E;edvb2`ٱ-w`_ I9Xls [p:ɂ90ec:'0g1AtjɒS0`4{I.jڴ+%WͯGuҰ56pGƗLX0:'.W\HuHSxC '}X019@@9[؁7 /$1#!:FbDIdqʼniB&y᮸c;l/dL`>`a#$( ⃏L,9[I$c$$+3M'DJh9;&b=d%?!ITqe9E{A+ƛ&+IE7x P#J0!0)3So[w΃c!3h<\uNep!gA8"i- 6DGNRI%&Rio w$6&vbʧXɦ'8稙(`i¡᩺R;*N-zbbv L:(p&@.+ <P gNrt6Vz+^ູBZ0G AٍlX6H0ϊ8"J[܄y/Sd4- 3) A"N.(û"PHplKĉN$1DyeQB d 8a"9Ao@@~0~>ϲY¾2@z'jStXIJ*aU@>dPKS|G]x*P K8'ǂ@VtVqbE'BțW!@7)+T{.h,V5h p3cF WHԅpy I*|l`3DEde$[" EAQ`"Œ_C?6H cyҖ7| dЃ݂2>Cv&'H,CMRvf 4IHDѴтP[S@m/(D,"H93)>,$X C T;qqd ڎlx'Ml24, F0EF ]l%;]nGR 񏉲0GJҰ#-} T7De3!XFv54Gza?3N$E|vP58I Ӹ%Dd"6+5OuR% F 43y380@G qN8WЗ DjN-&^ Kh,D5!YDQ>[tF@r'K@3Pֈڢ M%2$IBm+cleBE]IQRT$Xn%%o0`Ox &1IąsXDs Y8z O6UQFy4r C>FIM2X#'F$NW"#6.8;dLb4/a0v$Vg"q#ZQ(2˱0Y?)+ QqEHB2OGKmdEՅ1 sFчY)T}v|\C rK1eЌ8cM&'ggl.st{əC>1T*V B=Ҁ /W+I>LaԘgyK`/ 5^,}|u)DjR6l"l1^,6a 9 Yr0 0h Jmk@@⚗9I ȋ89ByWZgHh7,<xD1,DPDlp#:F׃=.y= )xk+=nd3ރ)TQ p쳗ԫʘ3:0`(c*)H){:Q:y#ȉL"? QlѐTLlɘ"ۊ7ֲx#y# 5ɛ0 ry΂̺6uA<'؋فv 5RFвXNJ%%B%Iaښ$>xKD胉Z)/+tH $]H:C.D6UI 8,Y+ȏ8q\sԣ2*ᚿYP-EMRԻGdeQC`K˼V& i2 U >+qN̘@3A0/΀Fj\>*B.Iȃ ȃ<`W.i3i3؞7{ݨ"IŠ?P8K=iF5#y,=!*Hھ jA#Q>xGzá}?hEr ҦuZ,"bIma,q'R"Њ"m)ڞti, x,,-8 Cްp/ZI[NO4ݔCA2?i;n2(-S>]x}C0B3ÚR^U' aXB`אrPDT{d͙{)PD`eՃa)sdÿkkNO&1_qYƃتg Π8W؀՘ |-l=m=93= Pa+ntImFt~~٣{G/x! eaت߳pDх":U6pZe3@X#B¬/0¢ ڐ`JnRi pm, <7}NȚ@Rx7t@+2Qٱ^Ť9Q.D\@<&Q*ð]'B/<֑i^SAGȲӸ,@僼-'HyH'aDz!aQf^fmTRLf_e2W:q2DGedp^DPB0h.Bb ~ <ȃvbׅMP^3ɂi|_*18hdVٍ*Ʊ54a%v! nH* "?fP^x%3 +fI,ǒ,Dc [Xh0 jxR- r X "( 2A@ɟ;~2B8d7Tҕ%E^ס9筹UydڡdG;jjBiаNXڹsC@S3<ÊH/l]]P%eQ[h/̍:30hVBq\dYe%ż14iBS:N`ߨr+a#!p49\pTI3Q Kq)_1/@XF=2h h&``su|=6eϬ ` itO,ȃ}&Ù 98M3qL!{i+B[=j~#V#nb!hZ6r'V!gƊ/* $ Xrh+pb4r (<3Ȅ@ĦۑRL^Nn@(SSHi:c4 INC. ֹiPN&3nBG:Ohdwӄ%E2 :}SO\enlG@$0 0 8xˬppWQGɪ"q/cyo2h1xј՘377 ?h'6`?plA hz=A]u k7T3QP0Y>N9)5_hZKpB %?&O#$zĺ ɪO@4j/ʱhˀ0hP us;Ypw1@ 0>Tz?M|^Q%slDclV˾ԑ1|\sҲq/k6W/S‰ֿk]Ri"0O!ogqg̡EJaXU/$k%]%UťG`%b*3P 1y ;P!q2{wH’A;0Ç v"R?8,bG )i?IR,bfnֿ[on 7+%!\o$<2Hʃ%$@7 #AXb PXe,/jh۶KN]`$HfXP #<P?l+#6(`Yr4kYxƣ6О!#t'R;P@\?YnEx"ic:JK^LBXO.%MRH!`!, ** XGtd*d4ҡ ?}ز??\}^rI%M4).r4@2 w҅8r._^g(L*/\L7u"?g*@#$(|?.&]0gz4$_d#,awa 6Y} F&t?pR1G d !5DM$E8LmG6ktJ)P1?B uJO-1ACQGMP uTUUWrjYgu[A],P%\< ؁`XdZʏ9h~v;|}ן|9ݨLrGHFG`G~Q0N?G.C,L$'H#':K0^4g8`^AJ03;~2g.@x@t=-fF.}q" 2 >yGgNi߀ )h2 OK20jT "!Uxu!VDr*FWRc%dYyȲA-0Zo#f2<@ @ Lih֙TLjѤgAs~iiN|<^J - !,=zzrNZDDTAD*R $'>I}&OyQ?JE : hJ]?H RЫ^ ?.]LJE =aL8‘pasҷbnWe2ʦ:) 6y>I :\FA%#ǂ"c *]T Y@ւP +,vj6%`shmɫbH#:R G)Xh Q8Y}DxEpe؁Nt1k C (lam+HbB;.V!E& @g*rTYFf5pdDV9 P x~sK0ZI)ȾqPdW\ԢYBE$MYͤ8m@%F!AӞ>]{D"\^.$b^=? z p pS}?gIuܴ0u m2 ?ZsR)Tw:Zt82̉](w[TDS@@'tWQ !+YQ rUZ2@Y"B\ֶsE$ 9H~<$E|RU-[m.FVA+[r"spUybe+F|Pxy-z<*3#a":S cD$v{rbwiPcp0ièƚ d,̢W\SE_g8C^#0W.7i)DX@.J|*9N0L-*B0eJl#5tMX$Eeẗ́=d`FFjМ 0Mn8pnA Jȉ\x7G3}ܐX|Q!@ 244IbY N!؇ӄʈdNPΫ'yҕ!ٕ͸=aneB[ZU °EeQF0!Q#B?g(t uXG}$Oާ+ ,|W,&lnX`Z9.m.!,/ DFONPG6iI7>iO4\آ`ڲ|Z8 L ~N `D, }[W,UDULK[ieDR@x8WgL!CHdEWWD$`A y M(Faj$vM]rtn60oBepJzqhkBBva+u'b1Bu*ʭ0'sZ3Tk)f}fOBJ15b뫢v0Z!؞5Q @&eDUG7_oT/wJ4ʌB\~4fPp 0BA0{[G8 m[K8ާ -8Jx|)MIx~fM gn`,EH[Q/D$MDyMS'Qp9fht5y~*i[uL{1,(9䛠GYfPmݔIZJIh2Tig;bͧ\P *EX}<owGfejw|P#BS+:Cpɘf'3ps5 x`{aY$Tkj,E$h'.4uA;x`Cg6ٝ]O7@82? $ֿ;dDbEdQb@1_'#0`%(\\v2mRuC8rD4)ͥ"pUJ B͚9ehaN%NTU vqÇv?S$IoyskLcɉ)Vέ, K&iQva(p(/Rн P~ۀaC"";"_>`X\?F}p߇Lh|(S>0:|]:`ŊF>8/<d09َ; s 2)cVj &F@ :mcF p0Sx;袾D }qƴFbv , !6߀l;͇"" )HP(z#IA1YF[f>'|q,H3MAXhAy J(0"23%&hv@*ڮܚ&n' +T&h:w\"*( ‰Z9b.P4믍2#,0ðxfe㬳:"kbɣLNWA` ()X6Y6@g*JEκAP@8?DS⣯hp$loOq51ǽOPP8W!AP,N&w< Wur/?|#jdlQNC>HҌי+hg *i@$@1m2=<2r6( F|6#yM,mQD꫗3#whH9a;Bi gɲ3?7&NrC' 01F()(+%H?Ņ  ;ISRk&UTlR" @( TpKha u($tOb^(, ,.RE 0Dbf83hDL5.C\3Pg T!&CŲ4D ScA H|kXD".X?es}`p/|!I.Ece`ٸӜ(GtN+"Q&M(wZH2=቙ MS4b#ӥ<7+ K]hpI2y9X(MJ^Y5aQĂG9 z?=BP\94 i^$ n}n?܀7"c&|4#D~?@1Dr79W;a@22/}z:) (L`J@-m%+6qT]W4 Te8QjWv8/Z,PlXC(HdJMb&L`NU(  l`2؇U;f8#MqVchL06 VrCf?8g rRӜ y(F1ҘI@BXL:xb Vh2 Pv*4E[H2\N y2- E o9H(sH䘹c(6 R蝖qiFqĦȄ*F 1%Bs$""C` ss\"+Q%'*WHK+DYP;W(dF92 (Icb-VaԌc8ҥ>8u+Ѡzy+$W啜0*C?]hCKpX7hHCgJV +-2Q+*ZWU,`Nf073*DpSnfb@eqck`h6ΐCv*]a@sR[5 {0=>O S~) P5*NxR$JY 5dVJW$ 8z{J'V PvA* s)ȼ~12(p& W>88WCPz(5AR|G P=Q~s7ոRZg[-Q$XQؙIRBi) *\!V->]M! . Tđ{m?:ӂDFq}@M"0A_/&,6/rEnjFbÖ`&)lD,1O*mm1c;X?2>﨔ҨLXmC-_2\J__j234! G!NebMjE$zDٯꢇlj !!D˸c`T>F)P dx C{l.OL$XA/BR$$Pv.WRe"K O'YdaS6tFL'<d\ "lLxKintVb.|ORb%' єXh.h]"bO46B|F8h0-e^^oԬ")DH.dڀqT1. 00؀1$! #&h0(P#`! b[(,o&0ţXDh(j <DLZ)EKajrbqF#!7P4Mf (HpPHNy|PRPD䎠pʃփcJ`. |B g!ۄ"*,R$!X XB6/XpBDz0#,$,%,, &ɨ!AS<@tvdIji$B*)c$a.ѨRWΖ#X*OH\BA3Bec(b[ նe^)XCԜ⅖"^d)fBE.q$9'M "0͢ F 6؀AF\f! + a FBFi:dB|F ]B$5hfAlAh#ma<2CmLCէCN|$(#F$UƔ2A&c >Bǘ --b:*z&*$XT$%*1JWQ-R $Al-kސ'S@ndvF 9FqWG@\ŕP/>; U?X pPcb N+)cLƜ؞QJ5pW#y #K|&D#G5H+E(M%z+Nq <`@F%U\jN4L(}C2 0΢ !F"`$NB2vzKAjo~PF lؤNc2z`V0215H& o*33s,f/T4\jl[sV3"47oT4U4L8+03J[Ѕ*fUԀb4BS+e-!|ڈWX=UaQ 111 [}Alô5gBM3*z5(pWt$4`:^ 5=FI=F)I(`ը0>0ehBva5#74D-0&h'#c?vR $Ţ2E?r Yt~<`>t g $Jp"hP/EdA@ΎjJj-9*Q, K#AjjLllS֖tDFnt"ph0HT/㯒V% PS274-M4%qS!R7g*`TKus4yT[ rӆ-++$wn+HW\,)vs-&E=1qax+rfLuX)*_Ohb:HHC6!:Xjf: Md C-"0p#.VǠN1WxeXT)jŦ'n%%r^TaS*F\SF"5j-aASrM)gŽ=kWBcԘP_:4D E`0#0N䈱?86ٰɎ*,x s2gNٲ:cOJbjRӦď,AVY(c+VaYt2]|*-W GEaC7ڟ$KB,C<$y~FѤ=L$@ 1-u3pOf 0aA ?R!~C|uuntr ?xmǝn<I$J5H$wFRCM$cDBL?Q J.4] \ >Fd&Otx]{[oggrMЁpcDqbAUB 5MuQE"AUAb&qTK1-0ib) Xh*K,SGdibGjQ#5CZGYeW Yex\plqWq慭^x-tX~;azdXEFIX kork UŦT*{ps 'vAEAtYHѦ>Z髭RJtX*TL>jTK4KQZiE9`kV[f Von@eP`h KQ %@ E;InI$y 6vM rpa}i,H [[.6L9N(d{T2=2,O67?Oؙ?c҄(% qBz6ՇE,"|mkԑՔ]d![ gCG鑕#Iu{z$$$Q㣕ephN}bC,aHo3.XAT")O6SnRɦ4)l &BI~WU%XRrW%_Mp*VzPT)q2=XO-a_,k2탌@h]E!Š&.`o\RdeY'J B'jF3|SACP,TA @ (P,b#uDR;%#Ʀ2\8N"X6 \~DFCB\"TFbMiQ EaZt1mWCȈ45`em̆6Ԣ6 <Kn:,$6Aurs K[Q8D]"O2̒%KXJ%%LT0iS:H*gn@(ʜL)WeS-s8yeT S=e_ 3r RߺI` [{0dD#08Ps҉ T䠊Edb"EV٘{$HB?ahEb9!|L?Tۑr80za̶ܰl&+΋Z uFu 6H^]FqHn3#+5Ib,Nh-cGND2_ny ed!JHrSlzr"fyLgxIah¤*ĭEܨ1> JQRQ-z.\ >Nf2 D*c{ؓ4PKg؁pβ7GEQtyT/=*S'4L[6(P92}dڶ/?"oԾL̫Q"UÕ_S2ʯuʡ@)ձ۵?mezTV[Li.|=@}: 9c\BYvg)M)>PM*r3G QSf 0LiӘ& awZW6^q`eVّޱeCs1dQ P Eptu77NwdfSse67fSttTcG{Tc{Em8?%hS"1/vPBu=3Ygd Y QW:gJhB;"A+();SPx [igKKkx*kXM=τ?UyȴLϔ+yJ[!;("rX{XwVQN!)LlĶ{!\q|TxqIܲ--o_‰ V=YDN\nÂYEQ7oahYsvGuJprQo(S*#63"o"rQUP!?UbRr(raV$gRcr1VN1+S` EP:'#8eeܡe1ett2e)pWpGQuUX"ʡX)1zBna>|v&BxvsB1:vr-%Nߧ(ZL;Km]K1cgif[J1h[m3yy39bJ>c6n%h͢RQfkd(w|Pzk} wU1"Q\!a)C9VCW1"souEYVd#`MFWHWiPW*؀iVgeu ُ ؐPGfىWP7Cqr,4tC! @#0ªP8@P2?2-r!EU*T8e*?)axa[6KgKVym8)ƆE\rS?JMS*棥)\D:CH]ʄa)]acN,#,},t~tp(Da2 Qħv˸pu`E `S'C*1q옎 }C|7sdՁF9p(`ZYfHfIW5B#`VMr% $؀YrQ3YUC26&yyq! [D%@TA uP r eP4o}"`UAj)GLczx@Ѯ5Nr84jLyF!_OA!mO)(aj)*oi`XC<]zNz.(+Uz=6hp#k-!!w<™dh)o*@\a'&E9T"EUu(#d"`&gD7 \N2r l 6NXaMph2v4~D5t7|D^v6H1gaCP=dDqƞp p Ǜ@u  rP ,uժZQQTd&4r*K;G+W" ?ih[jExnAG; +˥l"t7wd[uˣƾ6Lۓ4e't lOq?네?X)l+\\vƬ]D::OAZB}p&B0"IUW5q2 Sxp-f9sp1YGLPQXPZVJLurjª]%LB pWc9$z5o&+d)0ǒ@]/j:Ǜ K-zN-epQ]+xJ!&!I"CB⦨$LjiGE "@|tGiLٯʀ'[y6xgwo$Q*UH;^H[3ItyV.?:s j\:v}wx JbPKyFƵȄlydZ[Y.Z;' dޒ`d5^!(LpZ "zKq]f5tSYJ=~:]yd!HBud6shJ-#0fHbH'p0&6@Sc0 _Du4>/+o0D/@bCrPJ [}{,//OtԢ'CEFM@YA)b$N8 ~T8`?|RG` / ,8Sp;#p  l`Q9$:С IzZg̓iծ}T)ѭ[.S)М5u@%eܻ1:~ܡ$x;ߐi:T)e@tQEb0xv (8FA3MI2x >0i$),BY5"Ulb ,ZVpըv[*e_Т,%] x$W_ɴ8*oOs\ *+B4֘_tWa/Ĥ1Zi f%-P&1h9Lfu}}Ć3 029Y?2䐌8X{Nw֣f?C1; MIƴSܮӐ9·f$Z}Zfd cFs,1RHOzCp]nN@g *蜖d0utX*PbI @T&i|'E#?%O0|x?<{ҩPe`XrRځO~DH(# 4=\|ݐ-f:9K 0I,=b"V +O]Ŗ DVc sflYNBgd*RM"o(s\5Zϊ3q,u%iDF {= Grb}7 .9H fģiۜ^fЛ-qsL/6vIvk? 8x^Ԃa<Ǔ0#aL31 @P Ftg7lC'DV. Q$6)| X_0" 90KJ.s9 Z5A] Pӡ$+WZShE^gVNZYE ,ъ :v!f|H,-} ̓U#GF֍1d~5NqE.jllNr5fWR= [vZx(91KZ;&"omvTʎ #tٖNB6K`\^NBϺ 1$zodmHt7O\y<|}gt9Tp}D{8[@0Ȅ;/p۸F ;(%Fs9D>pgS8.L.hAtA9%(Zc;xq h* RP*W9µ ;pۺ*Zɟ*:s:0;v S h ې2* :ӊ V S9x"@DH>0AT%%88%RHɃX> S4,pY(Za)@++ cQCU!Z3(S' ؉ **,B&L "íB3 ³8ʻ@2)C)8deRI@ԍx /B̋s0<4ڎK<2<ǚ@>1E;BZKZyی]lAOz Ԉ-GhFؤ6HPUl鹅$Y%)/g#hx`tL gZ2a5?y'AIXy@@A9`L>IPZP;+EWWE%SP>|lZl(Hp >8T XzJ#$8h rJPRʬ2 3,$r+,4L +$$})x;3C*:m33kyh Bk'b=@4̋ )ꘌ .IEd/85^ģDA>HTCMAS<Ń͊`&׈+-i^ˤT@a㌛) X`  GuINllX+Nﴓ[P'nbⓀxڰ&6S5`q' %(1É) ̿ `ȏ1l O,+`'$S$'"@A  |B(ѣAJĀA`"AׁBI"r*Y&L0++ЎHQv̘ƍgC "XTd 8; r瀬 RƵb Ag #BǖHZJR: oO=_ O\>{@ggGo;>#\(c} ~hX?ۇ v䑇JBa1n  "Geᇠ‚`"A EwHKGOwr BK'$J€ 44 '1 E'HvWJ)OM) "|?|$C"ϝ~?~Bʧ: (& 4@D@uR$&:PFyD@C?, -pJԺ@+$9AXI%@E-TaV?hbSTRM5PUuUE$UAaP,{^Ը 5ʵ@RiYBnIMAFd7-1akTÖk h"!Vqv% K1@)[{^w Dzozqs Dž%DzOq>pP`z==-t~T{Og^c+(@v]\HR-sQwwRF$rB&(#+3X#2EB>b  RU?|THs_F*ZPt@Sp@LoP+gddz _@xi' zXh ,Ϣ. 4JЛ麀9:!ID*"]ZYX@XKZ ɰ-*YTKb ĻT@^ry b/kb9Lcl`: eE241i g8xCBDamL 4(Ks@& E+ZHyy<@(BHhIMh xfqH:‡ p:9q%$$9rU'έK?2mKe8N0 F0ga6qu@ȢT)OD.uQ:3=%65]{LE*#BA"+k ?R_JK%e-Y QeZP *X@J$+) *pEu.(@U o518m &6ьf2uF$Y bͰf%Da 7ɋ,xlsHmW 9}πS1=%/I}mJ:ul/ʽuy `ybbKMx Hl JH99 NĆFeMS%F= P3rP` a`8I/*cHc d4QKNqS@`Y%Z=QPL Zp܌"ǛNL $Z nW06!jc ~e9ݽB@9G!MAX$Ll?A$@#@ aȂ%4C#@$ @qpAM1dH#xp W`W^pW `%^"1%?T?, d-"rV$YKy7l-JLTSD@߸=OA lmzC((@0cG(du[Vm\XUPEu8HEtX;rN "DVT tk ыc-@E @MepF%dA1dUH- D3H$B%_"bF .]reB*ȊHu1ly if UnhFAIp@i.fozS8͗d2BB* |`IE|PTgYJX)PLPYPdTM AOHTdF3z̔Ջܧ,ErKa=UZ9BS*e mtFIվ ӹ Y (S9LXL5h$Z0o;^),u[s;Zt5quW??=TM7o_ /_Cl -1&( & 2p ;( 2D`/(*q/Kh(F KH̡̖9 &!hB)pK,<3\4B`4ڜ9i;4Z7 '2[D:RHAX !,H'Ū9X#8a%&6`~( IJ\j3D `-& -JjúI[f' (௕X%"ALxSݖ| (:l38h4m_DÀ0XM7d͡8؟vҸ._cڢ9p0nϺASY5$mî%O—)4PA&XPƎ4kE : W@7 qZ0(thF> δ^ɃG*&=r}1TL3wA$(3N :@C =kSA988(A':AS,g:N yWh>."ynQ iiTy= (%fse w-,_[U~A@ A`0tC ST0X%*jҙ4fP4ɉk6 !  rrF(NIƲq"R8?ICtg1j=aLO/H{ )ojR0ܑBmێQi Qv".RF(RXƶ;Fc"8$o4Hsl@4~K#:dBS %AKj G9B%.PYȡ4aO4 Vu;?u4ud1wsrMj$HQ=O#B^H07D%׿bJbM|Q$XfӔ}_W–|`[bi(Ȗ%\Bd60,y0LOHiJUڑ\8?)B3Ќ5M.RÚ2F:%=0D`ܶHjr&+R3$Bz#ֶf (AJͤ?( LZd8+2M}唲F d=sA8uIJ7PÚԬ\F5B(tcbrh0P놈) . *LNf@c@ʨt,!;pgX&;:K $0BŠl04`\ _j/H/oR HC&FRB5Aoؠ" D&|,K\Gy +xoPn)qsM b! NMڔ!m\Gu| d!j j!:< Mwԉ rG$A@n K'A2F_27'~(fX*n5z6pBB.nÈ&ˆ Ȧ2QDb2MlF$GR2^DFfDQF/N5ԦbWz4or2bJ.*f# ? ()H* )2fA8>n8P VC7Tƌ*..j!;fL `/В0l4D  :Ok 6*H.ǃP,Cϴ$st&vnns/>K LgKt 5ئdr!ѠtP S؈KZP@ M,ao3!P voT$ m<*#_@F R g)({fÅ ˎC&**jPV2*H:D B) ,nl&FE_58TB#(T c }ꎊ"(J)-L:vt)B:Cˆ#*FGn.:HG[Y:H.c94Ƒ9C8M-1$>@ #D F$HnʡttQKm@2s,sc,}#/r&%B'vTDv^Q5cJ#S SeB @rQO1R"p{du)uSuS'0$K|zir4)7 2 b1xZ΃wU=n)(•{N4'!3"*?ֆ,_.) `6bdpgdG8`JnMh%Pkj`5@#'# e#W)*Yp!r![~f)C}HqcHgc@>E ]{r&fVc)nW(N^׌"'/.c iT,5N䎂J4!rnk# 95dz%FN8J\lzn6gOX*dbx5d->ڨRwCjB|Qpr;g<ՀaX#Up#sBl$M;B  #3/2]ٸ+WͅrCio:yi-NnJ|/USO53p%AkiPi9UװK 9M$Pڤ ڬonbX0PB^q)jy;B yQ5`YȦWD|V@# &HN;Dk2bcL V#(\OM\#pCiEapcfjpF1.'(E:H nZ`v-*<[r<>@T`cVc)JVX+S5|4 JP fB q `b!QjA )c<2ƅp(b|wqDNdpUkL@!:ʋt:pi+=Y"RZlLJ7/K7tڈ:B Cyà :Zi!|v=zvL+^Dֺ`{f 1}1j4619C!Tc f !%ƺy6C'6r6~7'| 2}(86G&2"ݻ)GxGΡɬ*|*݈#{C : ;MQMp ſfI_ J7@JE |HR  GF QK&M`I1h 1bJDW5p$x*鿖<5U?1[*K] @!v=sۆ!H[lʪ.V}"@fYj_b2˘!ih;Uӧa={ poa xEpAw VgNw 0- TH^+,OȈ $-| q &H@C?@ē#?jІ)ࡆ"( bp tp,bC"h"< `;FXHHLtJ  G%?G!'H%hAH#[6ADI!IJaV5VOLX]5 #R(hC ,%PU UK1S>uVhBeENŒ[@W_+T<6Q3…g5YfqYّ h fjs!ణ6z1pũk\TptpLGwqw^|__~Fd (?,tIFa} "P\e}Ԋ> ([y%]\eF5Dn <^x3@lHШ 2XJ%є5P`0mԙqH!`pC:Jw  $eHb 3lfqͰ@SYΊ4e%BMOӠƩQMBk#5=mh5d6eeF_#&D$*"Y*\9M&V*@CjXGL&{OOV:],Bm?VY j*7 #"^9Y܃N .f}&+ k]T@i@IIZԑ .e  $U KT>P|A,)iG[HZҁt8^™AVԭuARRliC̔4uO68dޡ»5=q*=7 ٍo]>͌`9,[hBYڗ㊡,yC4bHC-m~† )/}y„4Oӹ&UUe\JBim'vG?š!rr!㉠TKaΗn ̎݋zF >VRYM)ہUYuP9bol(>}͎v%~D)0r0ސ >h i"RLA{4))]ʚ@* D)[* 7K}aT (17!_ M peM re>g*m5x8hes!Q6WrRCfn$tWj#HHn^M9*&:AR"u6bIWR&]u=*Q3vYQ+!'p&5UKx&PZÆ+f#Jrw'>&V }&OQ,6kf4JxkY6k((v=\x("KOy^PjPW?W{oA>R?[gGjuđ{ 08 aRY$PBǡp*#p7SIcƘT:p(S1IDDDpU32aDDFdK3ZPVVM?LsrW)L#_5Ȏ ؎>V!q5tW0tUHHPsX*"SPg38Q'uNI2HI>0aIB(N@UOhh+oVUur&R[vRPbN+0+{6ZUa%u$>Z,c+vxhYNfNmkyK"wO'^ՆIJwj"S!h$ {g5,P?oI0j(0Q {s|ɧ/A<1A80Po w1A~١DYMAJTJU4R~pFdqcYTI4(!  F1Sx7jd`!؜ldV<;0F&1s<ҁY#a=В*uMg%y*N7ua%vF++ճ`[",I+Dh5Iy+RhGvZv939Y-@Y+UO.E=yf+WDWk#i<1vk[W-sx/Pe!@n)- 7(w5PtE0cڊh|a.ǁ"JԚ 0ac~2KCDS.cqUa VH4&r- `ec*yWA#n48Xi#ٙ\!j"0VS)G f, kEj3gM8Ғ*4-e+b.ZIv=3[dS+~+T+NC+_Y^("Ϧ"@$@M=nxՐVS0P6ba$50FohJan Bы&87 ac(PUȴ)0EESu@!鏶iJC!gkHL3Z*@%9rڪLFX–b7MC تZ]vektFXd#A] lp#R'mxs93ZV"%*tki :Z'z'ʒ]vn+JPhM1L&(!:&>2&YM3mE:3z:lHyC(E ybll3ZzKze,N .t{H((pfjlP;A b>dn$ճDa< @ϡ8E6E!38d,JEXb !5Lت2ꎵɜn{AL>|84>LcdJ\PvkDL#sx58#&b#pt+ѐ XY\ŢYt럭uas|+oBwPh[Bi%h= K+*v,wjGX~G&t-{L_`;r]a);,=(}(l:ɝ]*s>d]8H ()*glVQ? щP2 <\!` RB"!0xL>ί؋LV.bEQT4Hc Axz7©J,ݜѷR ^ N4$SmAТ]!)"P׆ )%,7i280kIIY[;ɴ&(;儡\ qnW'+P';[2;2[>XaYv*&m,%ZEb`%+.k蒓i^k>hNlL.ĢK?w\%$5`jДLY1)b!#4<|ܳM%dIf4" V>3V­폘Ñ" - m*tBE^ZE_[FqHU ً}PceuS`~Rg6Զ6Ԡ3y׿vD(tRkZ V~B*IڢLOB*k9Xx,b<]^+Nvj: lAq-*a?'62'V( l/a C½(ڨdڣڄ ¤6mVea漽XEE4US˷#v- q܍ M85Sy%;< ^(Mna;g[b.?,auAYT4tW܄YQ{0BcyrvLT=y>*LO8.y&&"]+;eq{O(ކkB;y[ik Sxy{؅Ob.ˮ,֣D{evb(S̒mj !)|#Q,)@B ns"u^q^5Ldi4kSH9W"0ǜf$!=P4mS/0_a2^b0ԃ[L:]CњY_3qIL+yM~VS4I:c'QɅbNbZ>,"R)ڳ=ʼw^i57l OОL~MV.Qm/"ΤqP0DбA(b:H"8o3A  ?=Ä-$p"^(Q$CSR"I' r?hB;uV/gСvŰaғMP@A*D0\>qbAKE "nϤJI@H&HP޾M6pF}f|LMf„Cɚ8_$HNYS%HDqkm+0\u*(?$0;ҥOzD /C4XC7S1V쵰'L#[@$;|>Jp?>|@cD15GX|1 "hFȔiFyI0*K ʪ+/q1Ŕ2M !"("8?:#N3BM%D@#4́lzȦbII)騝J 0X Ԧ@*b*1)8 JkfbcbCb,lK4ʺvh"lهBf!k=6;,4Ϛ *̲İ/K5l `{]{Ͷ݂K 7✃J`NmXʹV0&_{;аo&3(ko@4m4Tn*@4 ߇A>nbZ( K118f֐D1M'E]t1l|oԱr,2m drfhD J8 .OS 1T$7Z5 *3>H&J,s U@:$|2QVʧ*'O7+ڲzH*.,IYX_>K7k8_|b 4 P8kY;cVqZ2p5|~E `tIh\hsp0ըK]GuP#]7*x6D>f'?FC?R:Z(ٍq/=epH034qHhF-z?&# (=C"0ՠ@J?76(NZfI o \\hI*Z͍᪴!)8M15EP(%2JHRJ1?lHA N.%ڥe8Q6O}*Jy\Pp.RO=0/y󞧛ߌe,M8+P-pVP $-|Kgw)p2I_òwmp X@!y^X@YpN21|9G]BAhp` `v.:-A4ȼ3?40$^d9>9*7hMZvNSu\iβM5(W5n0)WiyG_|C_Ä81՘SX(1:}sR~AY e.X,*FdtgŒ4ahC8Bc-q%!v{4'jJO*+qԦfaEcL<4 gj9*3dYZP݈F?zFp[$TwMD8W.Wn){K 5-&=i$j JSvnF3DBGUndhbЎ'pED` Ka U#D̬(:̧Y-z/hʵM䒵Npө;Ol{EHZ[@E`4?kAڨ [Z >/#Z q*raАP(22z- 01@3ҀFY#.s2i&)3%!B=zē:C33:(2(J$J$Ի)D#I%D ?aX$B ; 8AHȳ-7 j[˳5kʦ=|.0Y'۵p=4x'Q E4DzS,1$hp7ю1`)qٷ Sp##8" ZD``F E KwfX#>ę, Ǡ񋏹r! Y2ɐMѡрa|1Ҳ5*:0{LRΐ3 [NCҝL $3IV:ɑDd4s;<"4P4DBՙt5c5{œAD ܃ʳ<̃bFp 6迲 ]ifg'h1 /S jQJni Md藪 uSR'(i ި7lEExE/k a " '♦X* Fa[ 4` e"1.ǜQ%K$NAN*)*[#Gq4R\%I rIUX\ HA>\)<I&466HNb:eͻdF24BHZG%Uba<M3ѥ|"'kBݍ`C:E4'i= /&Ru aŐ)M!.@:E)M>)Q0JOEnę Z 7 [Ltjl)`$-ysKMor)m\ orH9н袱?;MMm"OEi{@|YP"a:)lB[պՃ%O$O<4,4“Իj܇X J#*ܜK4p OI5WKV4 ™ i9M}@-*$;۬ ,Z[9i8 V#<3H,^5&ݠ[U N%h\eģ]:NnO'l/ Ecl\;ʴ!@8y-]_Ї(xeJ:˫ma+ m2-{ѫ< ̛-e8nͩ)4Q7, [M d_WAx ظ'US a6<'(~`,`8`3L67w-1~(dFb)R|~[xg!2 ,2ίDz+1OD_xV9J#hJi?ZO1\`,, I43ɵCckUimE2V%j%3ɺC4Lj%Ib: إJI5}H[ CVW ]k*TJ.T!iy7:O6EQ3ar=je=1řp˕{ z(/s/97|)^dݙޙ#vŇjm $}CƙeZ)"wlCFst! [T޻"= a93T3,P)I:3[t')iARޜCQifMIheINbi$)L ]|¦("-.XY > @CJ*pR[/\3&V 3dNMj)C [W= M0wC 1 AiI}X)ƶXuL.௹?k2 'S/;h`a7V|R=\0 7 u0ƓfSt ~s1!F"v.mR ^",n)j(t+8R">BgmnS)nuV]wVo9"l 1f\cR[!)[^+_ l]jKA6AlZZ[.0y &zYބ? ~N^i)9Ἑr8-,(xK}  0 0]cr~ IYsqbr Z< ٠fUZߌ7Wҝbܠ26mm3l!j*瀠@({`Ō,( -&a!F5jloBV,of"ԈM6$:t!Ң""O,:jAa*^1$˵lҴH?Bn ;7 [hAڲ٫6 XcN8ǿ3[W @]aRfsV\ҿ= cKэtOJX{W@ѥ;Єt((%Y7U/0) q4`-t%P?ptC%堃g` )ġ uȡDGq vaBA?ķHR#}P 0d~sCmcB}PY} } @UPB&GYXIpdqYGuE=@(J,ՠK4P O4#Q&S?pVFuUfVyWIՕYfu{-֪n) \F_^mkkKcR"4QuFf ,@ P%/D0nE7qZl4sBTK-)m{ p©?ɱorJDQG?!4! vn'aADw4aiP,4" GVZWȠ :% 3M bs"78H$+?F' zH3\6]#X'&xQ\PR6iemcIqc\P!D&1jtdyFA_iۉ$Gxus9M0OSN,:l[Gŕ`TEUXefT*S{Y[ejwʪBӮk]GUPkQ~_F*{ASF]jZAm&RmhHQY5PQH׈+AMnP+JN30$9bH.d<ɍp?AOI3:L@:Zٌ<0CC:2 A9~H 9!phjI{bHji$"$MK3"Jf~hH+XPh->x!.pB´=>(hi.#o 0'1< |IH7(M<JO8 vEIձ&sL=e*ЊzgT`%Wy/W^袽`X" %8ejqe` 3H8m+a@DJ#/)*H 鹉@\r$.7:d:T It~-lIȈ%L~0;*-A9+J 5Ȅ>*bmBѐ3AR;RT"|LI# odrFϐԜm |zd#SXҕB! Β[f]3Tc6g9/_A&l4/,6%H`?2τ%ŠڱSLdR-oӴ#E Js-H 9A z~g PMcF57BR"<;Q{ #(t~F6ɋR'Dh+RҔH HA FO\6R ܩM8g5v N_ԩ lƫ^GYIjj^9WЭWd;Yf+S`+(sUhZaV.Z:` 51'艿:‹Y7 t~!@CK:' /}픦r)M~wԫOď2v$ Y{Rtrw`3JtdذeBRHM[lI> $8DA4DžZI:MD X,2Bl$fs R"R!4BlKfhP(0w)fqWhVj|"}-b!R\Vb5[u%}: uv4C@|H T%_|a^܀c)MH⻍1yMIJG{tz??S `@QyR@VDKQV~ƆHVP B.ij0ӦdB(J.$E=:aD@cE5cQ|:PhOHmex@%bRv)U\^|Mlņ\J]IJ%$WU_RRC5Xat(_8K%X_ N蛅۟֬4ev{0-ҞX M~x 6 DA|l_TFo~}3,A-rX ڕ2Np6x4jw  Jx*JyDz`P ΂2`(.S`Zx+V(!*!(J:`Vn[D:(!E2eRSRFX"] _ZH^װӌF^;я".h!;UGXnގr;%bomlY^u/bv|"Z iZ_)6B,W]*ؘ6&ǐ"(._":H[LQ &tTe&)ۑT̰1^y8-  #b]-R$`  3H-ؒHNLf =.p Dɞ9]eb5M|"&MPY3ë+FҶfŨ9E2(dkD2"B "{aL)tiZeƏﺨuYUr/vRjZoޚ+7)&;,eh앲I[(UC%Cɬi|CA@3k8G=&Mh,1[ML0 Ypㅈf0 SYI &qꨲ-r@DEQg$<Ɓt.Yj"xdDHK$pT9[u$@1&tzXx ݘ{LI % 1 t0ڮmQ Bnȋ9V' 퇤EHYu>ҩD" a# יIK &KD{ܵe-h}`(qQ5IP'f]Qkva^"뮬2U0%jCD-%|hiu>eB\5)S,a(Ge ^[[)]o(-Ge_cY^dsX2&]vfuTZ3hɌBs4)~9R`H۽ggfLQ{6Cmn0ֶ 1`Rȋ`Uo/*q3ttB"\r@7jDKQs>q~rBZ˹DuMġ @*.zPBOL+(`Z «dFgEւg*O9T 0Re^{xSAYSldyHSS%(lU5Ş*8\V/+uo);],X,B"j0ZxXs,7Hufcy0c=07o_.,Fp]) '6kS !ӺS tGPH4 ͜Ʋ6Jp\ i>AhDV!k! $/Dށ ԪE#D^6l,;=D΁wu۶<~zW/_>t5@C+ +0 &܃N<-{?. K, / (J<1BL3 D&gK,%kȄH nx$\!& P@K058Ƞ3!Z蟉ȣ:SZ%h&0遛j ̠ !(:*$4 өn4qjD,jJ̬jX믰> k ChML%LDK.+Md#-9Ը-ڐK5cpC >X>Rp{W>{BU7~ϻ#'o`uB=ޢ݈s!{\P; 3Ͻk:[/dCyF 2Ś `bKM4ģeNǚ L^Vj%hr˯WRl0^J-3-[r ͷڈ!J,|Hnz# Qf>?3騃ZkB(%@I:{ 6-E\[d L-Cְ4)oq֦;## TI>1nKHQ64QӡP@DNJUX*Ud:Z%BH)A.-q]B@ K`l2yAcL]Œ՚HZ lՆ5 Sxyaw5zOh(h3:}G DD~%SXlbAs2 aaC#B&3wg,;23F>BQR" JgF۠J"62ɠ%aMINdYtQHG¤(l[ii39_lRYr)\L?yZ6_%Xy0 g3#!Q9ncf9Mh,0!!aN~z! ȊZ[YN|M$ u"H㥐K{F!̔` @2Nĝ`tQ0!%vNdOi|۞6ϱoaIy? $Ҝ{ ؉NJ)QTsJ* l!YMItiSȕJVzU\wXۜhfF"'1 goKo;hɦ3Ll hoj 6훋9)u+e&F!3LT8*+IxG$}#8z '+Vj'.NפpTW]TRՏ'*cUK"."/|n0p 5L:]p8#Hjy[hZIeX8];N4%z蝘_j@l? F=LpddMȫ+e#]x&c+AxDڦC4轾#tD+ me4 BJ/ dFB jj/JE|vKhBcZ"1Fb(Hpvy"qJvbJI)Ư( ))O,p*))"tJ**DO+hq(0pg@c. 1Y[i?.HFrCZL} Q4~^F#Hz.Q1l H=#? _;F~=.M=f=ɀEJB.1ރ쮐&hFJ4,|E66Đ@ 2s2DZ^ԖN6α<;SBX=f|;XShm:1e"M^˻+! V2`CsG0C j"ۣڠ3\h _&#mB@Bf !+L& dL@f 0 SQ͌mrp@$,(c("Q .1A'1 e0e$uNѐ@ҒZjtlQtYDK1bɕdn0jrTKIE:h78bo뷊HC] {J3b2K=^ә£CqC~.cƉj#l7*7Go Ϝ#O0 Ps=>r;MC8PC$X2%[o>7ZJb {OQⴏ>s'plU',&)B-W#(TU*@}­J2+r"64Y=4O*FGk@ZDEc.a w`wCW\;3.Z˹gtc=ܥpH)z#z ۩7@~yxۉa'aY0z4Ο~8FA=~ k"Ԁ 䡪O;fT:yHf9A Q8e߷ P)RBVii 2>5!pHgj}OkQ-.sUvnl+OJWm&0 n'4*T4*B')B!EB%Iʒ-p+ ERss's./0jt6|Tp_VB&t#SHRGT T1zZ7c"Q8[:g+t7}AJCPdEe:RY%%; =f@ (&;kvgȸO&Px %'FiZVcb'n26B'G]Lq%t715C- S2t/fNUt\8.~eLlϸ3C]?^*RGfBfHl3CuMoisw-~(`p0J՚4Kpmp{*U[ D I.[iȢ/30MC98{\/hkMHn-TK-j;4%l 4;(K# ;ѨDVkJI55cr OHe$-i @q\ qFY Q'fGdhMy[ֿ~{m␜*>m®*F( _ D`Ȱjhń\̨!FGjxȑ$a.iڌ&Llx 2P!9j4c 9ԥOz k1Wf4،WC PcfY9\aBX)S\"޶CD9t\qr:v븭 U/mmgm#ᙇg-wSbu7Hȑ{=`׸ܷ{갳~39=&Mӧϗ& C d@ <?8 DaF(1B(laGq@f8CJЈr : 2X` H+Z qFyACEG-9RI%QNuC(TP KCO_)uFTYUbW1וmNf^uTA{4bH^`v[wm!'mYf\h)'d}iy&WfQkѦWee&7kpPUv)zmynԙWagWGv\F3-kwm[t}b 7d :c3! HH$"C 8" lx % B ubGGUzXDEH[NRG&'1[-5K4ّKb BR@I֜UA%["]yXe݃ A-Wa p_RMa~yUh *Yj XyZ[]h^}4TkǙvz,yKׯ]ue{y[9ي~?`5&D*;l/NHah!(8ьE1.*X!#*T! GY35qCeL'42Բ[tsPLfHOj)[[\@ $-tmYv)f6BGIJ.{`fWa3>LI5]cm:¾fid}ɂNT7aMqvӡe.[\4XE@t">M\S\1!kF[^ w0⯔OgȆfBHFAYPGdT#G&E޿PŎ6ؐr%&;ҖN>x(4d2$f:I/ER]-+ӱr3Lljït5]Lmb%e 1j nZe8arM.]aaڂE6ISW>d|euANMIIc^p58Fh@ t %I'xd𵵬`"W[3 D2(*Ϋdꤊi"̱$1qd$4c+H,Ikq) }MT0q /sk^2͹H#C͝^O&p,bxʥ3ŷC0ȅvSc]k4Ө(=od\/xАB!kE:.$"VݓOKĒJ= d@ʵ&#JR"MViEa5>vJA3צKmm11_woEy-K;%wDs'\R&8!q7%2u.{6!M TH MY,;wm9AgwVo>~'Q{g[_AgsBDŽ_d q cAąD,ȢpB~7V8)h`4]jh5Fs(`sTc_ermva0`/X1(# v3C!T`X#5"$Hx*(x*W$K23+82=H8@hy@I(yӴԄδ7%4"ux{:3d>;1rASr. (h]Yfddd[+ZEV}CJ U#+Ma'9tI&رN,#~ecjqXsx]~cF ec$uQ72dur!Փ/[gr="TTuZyRu h2[>֌%v3kb"_>a&$<)>lb2nmV6KA3JmE_b( ΄~@3 ! K)H0'JRI)炅5$ISqf0[e!.MEfSSI4PsdrU!zcUC2sF~5XR5;V]+%Ŕ”3\N RUi4;SA/Uv=5!S=s_# 9}IvTG=vd5I`3IlȗJJ9Q2#.QxDn明IyQ( `G )U>YzPbzٙ]x:AuR`0%H H`.s\hoA;yH3=#9b|0H(Rc~(ʙRdz1a.Q򝑓X&vM~qFBir;H-9uF*U/vZjãbIX;hPlª($.&bv،8'cj2JÂ.S%೘Gomiu%&:ȃ Kdy:$"Эc:S'|Se&e&V(+Ft⤆nʼn)kTe&.XizHX}+7+&:d.ŒWtZ!g9_P1\ēU,8MqRN9y4uBw?Vg^WQ<`O%Һ_/W,2sVe9Z$ H:5zÏa沮-T<udfFծR;\T7` z5i.c/jnqH}Yq(YL)fQ-5ҜkFR{r&5idHq8{SVՑ!JVRä(N89ccbfcy,cFbGi( G;H&bu14ũmJ;hI`ƦS˾kWJIu:`vlx[Jr>XBq$W5!V&_5K8@UiF5zHLLW~'zbX)e0L4 RXS~Tռ!љoY;zX}{̪#'SSC4RtN+ vdL]4Q<:VDhssmL]ԑQ~rԔ3K RzjEEkIku,bId7>I>̪뾽Xw9:fwDgQ[lA ćHYNAObp!rZf\dϙcE;тRcF* kǢS/y/ lٛz+TWIjXA`Z'? ܇ӯҎQIwX I۪twJsaJ:3uEnm5Wy?Wukxe+/zAqRM_)HH5STeAZ=1L  )L ;}S7w'SnQ5~AUs< S.S:㧻c>ChʥPf}ɴ!Ia%ӹH>ǺV-1bVv+"fߛ͓7KW(xYIT(aA;Tb.^1^1ydU!DT谕3?*炙X+WZ 5G2 H8}"[|A>eE ڤ=&';zEoE;yGzSZ;BjS.Z.M(=mlM(#qusjݪ?`NSu_VSW>ԡ^BW%;WM޿l:7Q!u&x؏3L{q.MC1FDrgcFRʓK89 (d86؇t1G6s[s҈Ʌ1i5l1]Sy&B1?v\.fTAk*Jok:;Xuxnބ 0Djn&|Pҵ؝Yac`LvʪWHOiMg tGֱu9mUfɧוD;FԖ@f0=z5m8=DG,hY$tI=\Jg 1M7B׆Vd?{dbGPC'%rb-mXo_OБxxVa=h)O-ly Nȓ)Uɪj3ݿvޣ3]ȧ>F:y~(: (Cto@٥ H:H}vg-e8P:g|Ay8<qe`4`>?M5= hdX-w絈^iST^󠇚@,{cʇH@,<˜)<)^LR))݁y䡈>Ţ.:T@> iJv駠*ꨤjꩨzj#4*P~,whx#~%"U)^<#^;OJ:Ik(ߥkW=#gת+k{7\LcO1NZO:%G~g7JЂMBІ:D'JъZͨF7юz HG4sä(HJ".)Lg , 'rԧ>)OӢHMjR45,9RJU5V)Pը_=MeJֱ.9Lzҵup[zҺ'wUJ u{Ovtq@:z9a'[浮af3k׺(aIC Z6?PZբ6lԶHms{ַmp\ޖPT[t'PGt۔ϦPkv t5GKje@/Y퍆3 w {ĿޠͰlg9kRvVupVJږ]mkSaj0l ԨwfQ\ŹE.rc,N|7cB1)("ֺDAuь6n=Y[TA\^.Om|L_w ؉c}('o.ܑf7׹)q aeH({Fl A+ŤV.YFCxJ : )I7ZNlk[,Sjx. B]bwqcۜ8(E~nUnTf0b'5ʠ \';Ηeo]ž]g~PJhCHAidd3:ȱ%"qj'-a뺫AiN0^U;/v1o[6R-)*w?8gΓS^ v3kl^ف߃-4B/@/`Vʙ!snV=KۼKO{S6+:Q~0?`T'Fx,Vj8x_ԺNd';xKk(Cmz'O ?_~8{Eϛ-'مv6 ]h-*H z[u/{uu8C3auu{M ӝ;jſA_0_KgٲoK wG'-uԆ57UZ0Wcgj%" w6X׀ hxS,[qGvS8z7dBPhLo5xe`G^~|f~OW'tu_ '_guna_fgfgjvzet{ge)Ys7euYUZp Wipwq9SUT5Fb+VyNqg&JQ\\yZS;F Hfs+G5i&/x] R l|{{=x F9H^KGm@1=UwuU(f&_\&_@|fwҧn=q}h\Xo(uXFXXeA.ijXt=qCYpxuxx]c}kx"-T2G\'\$S8kfQq6'HVQ>b8e OlVƃ1hȒFe$0o)1d%@˧FmFNėݦ|ԇnFH>W{7vfns)6VViVpwcizZցr9k,З)jȐ [ajUySv;VZ7&!$9+wcCzAa,ducoFtF%̀^:7;1uGnI|p쥜ʸ|mO7yv՘Ri8^ȍ7~g啅eY@栞dgxS4z+);!BhdoR a=\[%#&s (\2wY@y bـõ~yqhchc=6kk:ƙuYs#c6RY.a23R+y@+V,كC 7))!=aEtYH7uu iGfᶥQ8 7ɔQG^Y)| 7t՞9:Yw6jR+Y})1 Vd Vix gz%r}xILjڡŘ)r(8)a#iR/ث12M )КAd4MF4XF^L^?I;1HP:Rmǹ|W[g) IX{t^|emo`Zw2 <p])/acb Z*[fr6Ȉ;h6ɲ$wy cu:s)Ȣ+.-J~ K9ʂMv?)7PJA)}Omjuj;o_ʇ^fb*U:xD⹍K7~@XHjSۯ6,X3ۧka]c Tb;&crjy0&*4 7[r"[rɳ;[k%jG$NkBp/x<ښRo<:;ʰ/mY{ʓڭJ&sSjM_g u_خ>qm՝S9)>!(vkX Ƹ[1?Y7e]uupbup*ˉّ+#[ ÷Ty pE,N!j0*V[zّ +gs Zlۢ-_ ak7:ffl:B:Yx雿6^L˭;Q Ym[RLgS*}Y}u0uзhj |@yho^iv6 (918jѧ+y _ի#G 98l\? B aPG|М@OuعPiŸ$]Ыf\ie ZJZK-鋤u1cYmel+ӊmM^ѐgNhYhJɚ|`$gCj$pKl:; S{ˀz*\+U,GΧ+Jr 8**!<ՇH/{ִjÁĜ X\B;;ۼ&+zτMVH|,Vݠ˜)Iuٳ4WF[x]̍C olVoR0}t|6@I.l*!m(mLQ& BYv.rCD^F~НHlB;?[|b,{-sޙa " ap[N~^[EZHעʻr8匾ܤP?iMLm?jQ)]fli!VI_KP$ԍJ!Y?7 BQvdEmn/-y_x "[zXO@IAAZ{)![JJrxQŎ%K6جY$Z f̖]Ɯ2@y ń3ZtRgu*3VyO]Xu#V?lѢe+WuuzWO͌BJ481ɋ Cqb+,,9! z&@E l=PעEv]{ [`&3GP&޾䛸]E5nڸg}{՞ga:m'P9~ :a_c\ #I& l j|lg"h 2j* qC03Wdk.q"FYj+wL1X⯦,I1#oĔ(" ѧ); =ZR7fھ K87':53M0S`μL;LJcsJ(V9BR?d0" 0!("T* **g \:D ҪMa뮶ڢQb׽Z]uG,zVJ IK=|r\+eo3[͵77a̹8fn`:N?O.K5hKԴ-mrK;ȡLҁSKzP&;qZ)Z!!X[)c9bp- J:j*(ue麚]dXqLAGqp Hi;V157,j)[ǎ^޵e-;A͗ %j3:.9̡=37?7Ի0Q.cXhaEOѾ  2Nq%N6AQI%S_Zhy޹9\~-¨zj ]o^{u-vF}J[ 晁 ̓2tI| k b@ 69FN'4N_#H &hp/j"r6i9AW JQ`26-@"zѮ.gTw3sl%2{Ҽhâ>m*n+qj:w@6b}{ي:UAK/N,lTHR4Y>cÙ4a'1Ŧ ×]@ؕ$dQA(`\&8ν7,d&>igPab:]jL,rC΃;wԖa Cf`FT ð|֠!ѓP~&t*`t 74;gVƲhkrGf6?krmQ/?R ?emejʥ={ {dS/=l$/~i $(:an7;iIG(|RӺ$D-mjxC,ʀ,:O 0u!9)z)`#LUSZժdXu~uB_ H1fGԇp?]*=ٱFD.W_ѭI2}R q2=ye.+Cq]N)-uy !iC^0[)uSJZW*}U K`g$j3mʕ^cWJ)ݳ_uYMsUX|fXU^KN %jJড়+;1Prv4 &2^`I߾ܗ/&iM^*zx])")n0@ez;w I` Ziu닂"m?Z簅5q.gW7!iA6ȇmiJhg2ՙfoi&puhuъ9kxs>\KHYl+;Z)5}YeYis\_5ۋj$hbWdy#fl钫Y2VKYiRjoʎ/qeNe)kʛ:t:ux$/7Q,Tܼ=m]S>`ڑ} .5(!l;5Pʮ|Ntg'LaïYzUE}u̱K=-/򥲼핶Cӽ[=t_Y )àxj{# ҩB3>%>aL0*%z=ӡ=C<ø@"̽D/k4˴#R9gBc4۽X1`8[RˌjȾ+x54|'5,zšxw>:̕ #S;b؂c jkrsaHlCD 68c@/fE:RE$1ΉN爷[@w72P 9VXREC{CƅQDcpiAt;l6xA2!D[;2#F,KKǓfB86sǹ20-BG 3}|0T'V;:#:^i*=6@69/GL㬪j&+-9D#BjcāH7;fhBW2 .9!3OZ\<\DJ$+AtSހWlAJh֑΀ZIT8:k)"$o*C˼<6wKs˔0,$)D1-D56jj@L;?dScG?46*,\1A?A< +/sBslM pDI:FpTIiIET,(NpIŮ` p-L{[Jzc]S7H:4SYjʕJJjf!O\i鑞-hQ$eHQƤԔV*$QiuU %LMC mBaU:;q=RqMRP'T-$zPNԳWR|}-Ei; pLؾSxQD.ӊ8X 5VG` YMQ`HVR̿jѪP0d}L^Q'mWuU[MT# MQsd4ZMZVTWTQEP)ܼB5P<Y XfX} V؅25;xrSB.{S[lEX^ )3pX?aX>ҜFϟYT_? }MWK4ڢWK@ N Pׂ(5".^ EXfPXťZ5mSȻ88Ӌ.Y 0Abi^@ٕ-XiϕkdزLKGLZ4TȕK-_}R5M\t$_SZt_JFWMdPVL[%[jV@Q}ɔU^[xe Y[Ự[`aOUV}G)=ק]WIlP%d%Neס d|5\~EiPM4ؾ پ3㝲ᵲxbz { 7|.%NXޠ]ܠm^5"eT6n%TW&a?)hSL~b-C) 3j\Q)` m\`j d_ uJ~MWH^dR}iMתjо~ˢuTl6yԗ!t5^X^b5&fb! *y-*]L)+n<يc yޭx5nc1Q㖵An9ar^sUc$>X@XvNlMycPN5 m6 qqpd:p >,`ob RV!%V]EDLeom3&p6C.o.eX[-nլjk[KKE5f8îIUҞfvlhWނuNU'cj0;v]ͲNԮX.7-$,bOg]$%616 ~.x66,x)n(xcfB58'Un=duVjb&T_.v&[Qj`Ytj/Â$O '[ mMdUO/yJ~R?p~mm>q sO؞延OgɖȖlihw*?O*_/S9s)@ů8hw[lw7S6|.C؅v*שi'"~o^T^%Ņcr^ofn{snK^z&'t_7eeDRv?zpoIL 6tMGwGePV )ࣖ?/k')Ē+oN,qbRI^p?NRͣ}_ռOj&s46xmtuGW)[Gp `⟅\GA%Hi QBv Y$ʌVN9FRL14N8QK}RJ* URI QQUVTiVdX_?ieyZmeiT5t5pD`yew'QYfFdPւcS 7&ӢIhKэҨ(5DkbBu VlaA6z!^w؍^t]GlQ8?&'-wf7.tq\[nW"%jB fpBqHE8jUg,RL8mf$N IZ{&St=Y2UqߗZyeBeNE՛S\F*fWG?LDȍ=͘dCdb(l iDҢb)Z4.-*ڳЩYdbmwǚ j[sjq}{]wj+}l*![-w͇Bz`jP蚫 j\o2\7}2nYhȿ(u*ʰ4bI<ƴK)t.ܓQ%)&ʨSFA5VutGY}U;R̺Ba h_Uǖ9d NNPA|y1P0@a'j $3b (zfg0Ey2Jְ5L&F288)QWRX,d=Ҝ{jMs΍zEw+у>5:9fS.@/wh>#ByS Gn$o+x4Yم( 3=23ƶpq|YN8Z4q伾O`wʉ&[` DKUKNIq `5Iy Wu~ 9Tt(Xs`RR]q\6X [?' G8^Yy⅒I8^LlYÍO+=%MiSHŚ 0u畞^LtьY[2`Ye6ei[H !85^K$_ D9 ~D Gl@ =s YXP\%jWQ(H|(ҝWyb++"1|"{ #6G(eG8cq"4V# #1vGuW%U+ߦ݇by٢Zp.Y$pdIRP #Ph :_:wRhmʙVc"Y "&OFp!TdQQ:QnbTr'ݔqQUw"!#^^ڦ%vV QZ"|eA ]◤%͟13BQfb eSPf&t@&a%>"qJX}P"Jbghi"jE#ja~[y%pU)#xt8*#!MN$JR"Ч|&h{(>( eRw(߀y%-z%1" NW2]ue%,jKuDJe{%ɟ_%`Z ''~}^rI*d6Qr+ddQz&꟞ZhժYrmGjZbQ,AΖN:"_*be,kQcΧ^kNlJBcg:d!*9 7$*r,;cj77)?+7B?b?l@`!$+fGiD"켢B~D&.~B&'x® f\(b!ݢON"*Qrj5^r* ]26(6,ZGpzv%?*jjo."*[jm]("hpob-pa>b$m!쭒m9bhGk EwD-+ O0NhŌ+5o[S't]0tFZւִf#28ކfq37xÎ{1JpƩ,9jW.p/`*+l-nm ӕoojob,oV2Zv(tRo_+ 0jŲbPhC#-2+)9qZpG 3~t,h'0E07T3*1.[GHnn 8_S`BNVr&)*G<ة=O,4>i{ C@o~A{SfgqgKq#oQte#Rvq*sK( ҉o*{fr*82Wf2%32JVr*&h$ob1R2e`Z<.m٬OU+&,(1W/W_uh! 3v2@#t8iGG&?ժK+p ՞{n0 |(oŗEO3‘<#,l1,A(!b EOm*-I7jDSϕyͫ`:h2lG!y^/UG'g,fͲwZ,H|7.DdQܜvEr)ؾ*:[5` + pcAPЂx.:$$*"\mJH6X[AeMTQF).reiba*x/U8.[Cфu̐*![H^<+jU3>uiݪGyR8>mGyBٱ,b~5lӈX HA >f'~cxh?~fY!$Wk:<ϫUg4Gږ {V = @ BPq: .7 * ~bKz'-SۡV}8հOBR;!M̮{o˽bC[zNa\쁿4M>͐du%QKi',< e#VG"qTO09OFfa7.|DEuk {̝FR%(J `$bk]_|˩hrD.r܂!ϙתmͳE=3Av 9,̠ 程qxh꘥(XI a#j b"(8n!cI\PQLPp˹X.Kq8tҨy iH4&r .s  ^ N]$xl3#qO ވ э4B D2}F"z*f% @o")@F(F"ƾd"B$Or!` eYh¬&(iR 1bQI]ȏV*QqN#IpNqvO+s soh m"0-- mQBk:!ksda+x s n 6S!rW" (qbsomNls҇F"!GBL"LH&c3c.z *JT#ND:Gr$" P G ;Q=j&_ ,qu&gP ..3E2%)B@ @]ntl*IAL+WAXIk,,.("Q4+M! xes1׉s *,% &S!f,s"!|j,wɌm!p ;%M pLL&4v+rMzªP8?Hܺ~3-B2$DBb !a nO VK[K;&&Հ= (4{31fp.As@)H B1;ҏW2$,QQ"VkjnkOC00717gs<7q, -DRX*M)CpZ.dCeԠ F> d! X b_o1A_ Va5!2`")314|b(Q!Zu#PQpPQ5SR!ĴS$6yjD(GB(( cĦcG"&i!z0HǬQ%{O&3o5&_=vS=RȢomO?) bn ")sBos%fu@7@V)W_ pX ZZ,0q05tsKq-kX\v!vE)b];r7;:ԛo^s@G7g1A @yHg!v`)2 6I-b'*%Z5c6575k ar P"ڐ`RǤ6 U!:LJ6rJc(,2c"$#WDNe Me3 u"Z<=XMKo=S764>m4 no?}!cFf,3VB wAsU@`2ypw1Us7TsZUYXt7Թ5ˋ' ⌇ bG05b٩/rV`Vv`v1)x!z{ nx%y426C4C6l AU"`}}b4X OҴ nsr/z)v #p9c0dI0!I9ĬY u.` ;Э3~c} S ʳ SV>="(/f9)o|oBop7yןCQAsYrYAu5Z#Pb\)vgEYwv.t`vK bWLv'bٲyqECk_r t&4!1'TTpy5nnZ'!|aJ42VOs/9d7Yb4Aj[V"\ydd'Tb M)8x4R!"d"go;_r3SdK=s>5{#ȹ?nC/P۝v `oiU2 yp7)7zAQ-71Us;t xs(prZcqviebW9)OڍW(pM a 3q=qmaBޛ_x:1YT~- ep-Vy.i#m#8"店S(J6 ʏQND ȣك9;Cv9S=][_9Y7 "IaU pV9zǜmyq֟<|Υs!krnй=NJҟ)AQ AK=ӭA˜;8/  "4]7]B \" !ܹ-9%o/%ݚGC2=!J"EzxyP9P ł aw6)׀}wіk/u9 =ո  O:҇'B bցׁ꡾֭rA"H]"¾ L/r;t74\v!3ﹺ]Ey%f!F)ͭFzǗs#QoJȰ6 tQ#Ay!3;&S=ʡ4 IY[>V>-~|)+~VVq{7xxOv(- ]燫X]g7U%}c^":곞#x0ytaNBbuґ :(H)[|?HVc=n4(}_RL4SaZkF?T,)؂}`e[P}{pko[ E&ӨxLIUSJrSMRm胾|NKAq|zREgݢMmxÅݺ%,ڼ͞y6f8iߵ \+!A#̔a|K?<$JDƁ^jH6louLAEYBO62QnRu4G_c]OZ&m<\^ZZdU &s~`wU/iט=KґN(5ƨ>ZK9ifiiVBU Z*VL[ڰxPbGɍ@˨]څ]J{}+l (xo|b.GIzy{o.KV>l1D6M-8.8fKTiRăsCTe|Y&RYg|طtgls5gJ|w~ u ]U=W䓐TUE2ZL3S;wڏdw.#X&Gر'O3>i5.?V3CoD-seC%C$ц`qأ/尧pUz$a\LM(e#Ҏ觥i cRLpv%|hyZaGq&xt0ї,"}E0k@;m\QBdǤQ &P~fZҩմD5Y iđ. 3-8A/f8E)V0Dv tÝp'sD3&J|$:N?5ؓD2h%#qkE`2 [R>i: J/f%DAM%w=ªK2pLw0Ɉ-}GXa?9x;$br9`%E($= O*M%Ȕ 1RR%,]i_J͇趉5S)$fہݐܧx1Irgd MLQRj1Lc^5 gCPbu"S9|hԒ)6<6H.c{I@-֏JtBxBD s HY[dC9W-8 ŏ8; 8(+݄] 8pJkVHqK֪.'x'L~'޾x?d˗1wJd_ m>E yAT57=Ssg?$YRQ'-6՚Q* .rЗƹEȕO vHd"pY987gPT5"!u<V \D&' ^g/#n+A.iȖ6Eq#8qޔa 5}v ksYSnp7cpcvbVnxgN䂄46` )a Ԇ _hz{`ly jyWelzpzhz'lG.qư"9u9QDB.(<-WDuTg:N3M2+O֤x7UtWQP9HyC>C&)مsR)uAtk-! 8 װS{pOyO&Vq6b*qm)4"  Ƅ-A@/֠-bv`'apGHi ׃"-r' FHrzqzWz P xwa( 9m|Wy{xzzFt8'z}yhzCYQz2xx CN1f8DuKf-B8bD8OLoWZJmUq_g˸Ts%Q Q H4p )2<QPEkf*7PtaXyp X/BC!! D6 Ak8{ &a{0xxnuj3wɆ-Am(w7a/ bz paVGyaG-!jk(x2p(yy0)nq"o8*o^ p*Ny:Xv#c20lqM-"CP8BK&^GX-(["L[5TJ)A4Jr(/EQbHksW<3G7'%|YzsKUZUVP%ep]ӄ-)V9$qm.19Gyigȩ z P2iWu Ԧ  fXxƄ8 b1//FxN3QwuWwtg2 dpd@pJX.*:,8֐w0w !*VtwlS/#,V@vPL8!lbZW D@2Mdi|  v JPK>쳱FQoQ#1801]iT)S~%@6 s 7o_8$XfƧ )nFI?);ɇ5|(zթ6ɨ-i{) Ɛipa0znؔК8vet+a K uVo>PhPwh pPRNI")wx(*Z4lj Ju:dz!5}˻k j8-r0w[:G7jmʴD@ p W  Is.q$MҥIgHa$C J@jE0!#͔TO4RuiUivn Xۇhyzvicضs; s)b0 X`gH|Bf '.Vyanɩzp!^ yp0{C*b ~V{[jzv3Q8+:l W p}[zQZ;ᮀ㮦Wi+!I!a]6qg BI J?L3(;s|I^Hvƿ1\&_GTT%`T2t1#^3x#OM!("lTƴ&j膡6yi?9 I9̶mi:;ьm}M= p0-Q_^Pa9^Ƿ\fxcԶ8ND oj !N8$;' t 958*n0P0 }} S jнGJ 5) S;Kr b Q8 v9 vt>T;EsS'_@'_ At`1{(.1js ylgBv[qF`J`4K>a+tuN8ZY칧6n<'\Qؒ੒Ǚ~ msݽ>m_ M AOwp^{3}y? jb̩:}ov{}xX M==P>:t|}86ƞ;sXߘsp@#p@'4@ i:CF:ȕCtC7jhOWhܨe {1 7R qIrr2uJYG","!z(3H7Q%DȊ=,YAKhtB"T8j='ĢNR:%S B/)i\HNm\E֜uՑ`2֦(b6ҖFJjѐK4~EZc7HTjx۝Cv1c99*} -;Mc%5d6/9:(;4e;9;Cҫupnom> | [væ.BPĭYګ7PFcdFktŕ^pEq,rG G;$ ll;R6,2;T U\Qr9;[>Y7JBH7dAAS]eiDҍ2:}ԍNi\Hb'X"Z׵=vj%mZFm*% 5Y醣/   .abŮ^`)x FbWʵ=1i ј0-j@Q-mMsCd$Aɪ,yA.2xX'="x}6@ jY. q?P.+ /eYP!(m3@6!m72Y0dimny8TqsYD0iM+!wRRL!D脘!CRZ:G절=w4*kH"8D$hrui9DrթJRWkuA*0r q:O0M1&R5q yEIfa͍܅#y (q 7ֵ0 7 ~ȗ +D<]G f6Aö:+Nu$r:)bSɓ񈮊H+ hA5? X4tɋk:9f@gAG:|'?SlG}Hk^_dFrۈ )7Ejs܆7qF0&ɹYU bCgH(Bd|ҙ!mVdHf2%N 5L`r$#5nt ڑE 2~Ƥ,Ijr^w&9)VTt?1_\,7ΨԪCa.%~Y ^BF_(ǽ|Ċ#|٨2>}1bd mLd!q q H8$̜^)YvXgQO{X,,[lYV-KF|=FDj̞P1;1ϊ6;YKhZ"طeNs,fU-NrL j&KhuQ# r '@[kv#¶?p%Ж ïl_wdoRl* DՐ٩p%`onzE򊦬boQ",:eX_,8rE b oɓ,n wkX: kNW$@ *\N|I1eA|kJbf`jLe24L ~ 5< HF|ke 2Ў?c?o7\~P$n(79r;p W0wH>|7v{XH8{KBU>HDE,DE4FTlȋe ʫ7@jD[ȁr37JJT?7HpJHJ]JTW*mh y&h@ۈ]2,:ԃZ#y58ْX^v|-uNmXO5{ƍ&8F`Z(.;76_#?^{_ځiprHrx[Xi\EkI@*E9@H,e) |79Kc!U:`x 6@xdbk>%X_XD1?7Ȝ% &-]j)Y`ȵQ9&Z|z%aS6aM?ْ}aR>DYh&ʍIYH-^ST! ţm0ErS,DC&kP4SKܟxZ>Z`jNTPZU=( 깆ZA:@U]1^e*=HIE!k>vk.`^`,>TJQlOõC,0ޜMO}<qCheCl|7t6VANJ~K扞^?71_uG^5/8ѵ=a/?0(UI؈IYeA&؍88lԃN(>QxNiN EȄ8\_$ @IB͵`SYKs#ٵCq0AZt%0ZO6c6gCQk7h?==QŶ{ձCI'ݝ^BRY(cI[{lj4]rv{ׁ AܚɁN@1m;XsG;E|.RHl]Ĕ  TUoE1H[Ś,Ĥ _AN5):Xj5HIlJlɁfך??w}ΝPeTlL@L-ٟ̆[M$Vb_<$WN3dù߉CSVd?fCdlDBq_%".KqX[C(&r(>(v,>r@h!A\8Ch(j/&aⰅ ^?/fIqבEG@썀FhF4@j4?>b [2P=yMcˁ2IiP2H%Iy>-d&7@ų=XRY=i5w  `}C8TރyzPܛ$@u`7Hgة?S]udfCdZh_nh/x h.fD4AĒpHV3@3hJ捫oUbl甌LiL1(<̆DR]Apذu0ג4PpMQu#W;@>-n-nJs&_Hgl*G&d& *O|4YeI5Hh?l2& dDtQZm /JMTIޱסQX&7Y<[&=r1|7{ި֥d,DUh=1&v^ J.4^_̸|VuT*}'TDE&[H\0$LCP_Up$LOpoXTGpPZ0A30M J*'Efo?7iuKLE xf8n_o=~is֝qpmuo)G\rV$t Tn(J&1аnG/Y4x0xQ&x# $Fb ܁Y2ZtJc, N['J{cjZkkc%P'Ve/(=((/ H((5ԝIɁ'XF$ _&5?aTtT=7MZY8O%u6}>/;tiٲ*ըW>tSŊ'Rb+?+Vd⿉~3 )"~6Fp1wNUĈyd&d=PbJU KjnWSۿW]NB7O.ݲNYr Odyr韯'G9aZ36 ՜s*c|7:jQLmʨjE23'3f>}EQMVByO'ӡKZGɧS<ѥ*W-ٲn(ZgThP샪_J0TOFv"FLKoAƃ((B( A?KK,N5?bTшv5t"?3_~(F*I=PC2WC(FK,KT~Ш?@X3I*0 *&??rN2$E E G`E`$%3ƥB$F/Cndy, Vd%XbJ#Tz"ˏeUtTJbJ %dQAETr+V>3EE[C IXT*Մ჆A1}AO1r5pheDEIMTd `,*g1Gm-yEVT X?J vՂd\&Q5PЕ 5`4&L\ ϑ *mv֗JEjsH37s׭u%WZ4t!JmvlW7D#[6r,Ei*BM@1o{07EJDJw$UQ7ި J(S8h5TWG` &9Yp 8"㔈8 #Madh&N 꿑$A*$ Hr(P9(b 0ptç*h*DJ[~u,c 3Aƺ}!aHJҒ/ G$%_a _rH­tg$HC.b-_$p~y" |S7y? IDmhM&8TW2ܬKH ȕFOGI/U7m F#@mj@BJwS{;0⚨Th=FN="Q5K.a+tCKpZYq06eA$j>곊NW!_b&r^5:'r5 qƉPȸK/tZxv"kaf ! vԯZLަ9] Y.5MkZ23ƨ6[tnDM(߀ '#xf;N3o>'0NoB1oZ~6܈6a&ncp9ףZUHD0~,k=&.p-8 S+4X($8E ) $y\FL@8'R8)k0 .-m( H5NL/͕ޔ>=~K_3KR?)@X0p P`ڒV-1Qp DaHh)qGU -%hiJ YPhdWD؅J1yB E'R; nT"b.ú6":.?`j@u9.:0:ˌ4E[EBxKCENs8F||Q*oTgpCl\Go4ݎRH?1N#5sGp|¼(H7TTAAu@QTvhL#N!tsM z hhz S{́IGEnDСHLNT BQL CAEE,⠤XE8$ONeQ] &_b"QN|hؽb! :픜PD菼8ā@p3bdA?(P՞E xE%KFZ}IK4BHN\!_J\A=˴Y9YTQP,'>t/3B.P ExHEBIXM(3lKn9C.aA]ȕyULYr8t'yL( G m?MrǼoPȉ( H ޅTKvBYEIa%RX*MIZGTVu@{ oP| ] lAY;vtAQ' ʉX%.@A?4JPq~ri/Pm5J"Xi"grN"k%4hb"*"Y,x+IJ)D ,B$&ɋh O+ N-Y9RD܅DHE[hlD ,ZQI]DUZ8 A AKƄ Հ?t\Z[e|KOkuB.t"8I}ivqhG`EOUDSJ%,BXFg|'E,EDD]%qUL F2*{[kF4-Xi BwDD~Zɟn~< *dAMJT1AK4R(̒%|Ǚɽ-WfusVZХZCoHHU ƊyNI+it䉸&Hb? $A!*+kj ,l̞!"},p%XٶSQp l7mX oM<#+N@SAKÑZARl%d`E,0D8TZ {D4U DE|i"5yڎ8KY&'x8 Jnn8u8/x$mGW\n7EmVmmr ~A{Vr %d^E]]'HֈD.gnhgA&Aˎ 7n3bZܭE~DFT;mv2/IG|MZ&dHo7>n#n]i.eNܩȌOExځOhbj:Kw+<,jR]] '"i>>OTٱ5$<ݼ.bTSDPk>T >ȔT}6}^5߅e1"EH3[5Ѣ QDuXKA@VPX'tb\RQ| |=fἕ&=x65DHvQE8FR p4F/GtmWvDiƱn2J6C KݤZ"`2663#˜ЉtNdq9HȄ?|LjL,YQ~oaP%jq{Wo\}E!fGhL$*1XjN5c[oT7(XGmӗ]9eh gtEXmHBt247g*""-5UMы409UX5Q+Qc_ę{YZun"nn]5H%_qIE2(>á{T>vj͛}NG)E+Z#$Im+tܠ2pE gР}һW$\$DB7bߒHn ]EJK**\,|"DPXV6r|]˚ 5މEԏe5ꑎYhGoFE 7((8||LDU|-^JhI0YF`i'uXiX1blKPS2$xHbsJE=T]mKw)5T5.^-u-L19A%T%`%[?">ًLU_Y?|"E5hX }U@ϖGmT$‡ꄼС|8&Z ʛݾl,Mxh \HTTx/Ge0WpOZWjL~U;ovTLXz{p ߣ HSx>˰yL]p I;SO dhgߏ XNLVί}.Sģ&{T_BPUq Vyd#M8Fl;8M&,QAi%=PMI RLJ S9I2O>6D"AHy"rɎ%KHf`! ?2'y"~FnB>@Cr h0Y4VK"i*Y< @@THldP &| w4M@;!@ިP1韊:ycEe`TTMYRtwSeY>ULV[}(w Ptק A?JR:Hp!JFk$4`)24+b+Q!+2<΍W<9:H%Z/4&I*lI8kPT0rѺ@#.k.G24s2|#KQF'=t'IReTPFF]8TP} AL󰰨 N*&v/$KCZTC22C+& [AJ@rB%t\wTFQ i?kuJai ߱|{"8hBª 0FdIPkJ<-4<H f/'dBN*Y|:y:2cګa:N'.<>!>Zk-n跫. "?ݐ.*&UIfM>2ʡ#*nmk1}sb#+!!!V&Q7T0 Bq pS~¤Px! C -ޘ<>9O8\82L0avp/@U&2#RXveRI0P2KP4xP?N2θ>GQh/#0Wܠ†y>]b@>tu.;|X~“KR E%scA@ZRCymC 7;rm= \cf3 R ? G;pÚG_#ݐ!kZ} td*l;(b]!0Sr/Q^4= c|@zH R&설zp/!GN4Q(!i"EITIwkT*87 B8x:MY42Qޠci(hu9P +B6(ALρ Щ[P?@/!0V1(™I ex7}+`r+vpREf\K1!i`YY P+ҀG;|A(@?I$(Ð@+iWx*ddv* 8TР4T' ;¢S"F%vT\/("h Dz(BNBr 89G)DQbNVIO5֣6$&HZ}8Й`΍Ea ygjzbs^ *=éVqUpwPy+ޜ@'K>RJ!ޝ4|P8'_ ?| O6Qq!y'V^mOqbϊ?<+3%`x.yX)Z(|9:01h{N,sT'"lM\ȎB$ ݫy5_R*Pk%7JL͆L&EǠ"M5B000^c!):dª tGP'EbcY"".,UH4ffl'L{Tn0b#XѺ8.&+.S'0'.؀-84LreZƍ:k"4$!"" Gh12J[썖4RJr({)'7 82)KH'&C+"+,g>Hi&G%&bwl!n Dk0/C9`,vfZHP㍾dU'@"nl!NmӾRBD|@n4#5T+$l'%?M+q5v ˺f+ @4oS&a# ^2D6`&Ȯ%: :?:m!؃LƳ0B&5`!خ` >JtCj@iEAH3Q38hk("3 <4DIFJێ; ! @e2B fȼ23/BYK2IjkVJ}Ck 6Tkl6Rv  l7nnn}%1΄8L SI%qOY^,T"Wb*˻80IPM \Cޣ< !~e2XM5Lu˳4jS2*.{gY =,0B>3Io@B wCh>X-bWXAl56$LZJB~b tcZE\8&$!,h` c[e04!48!E Dda"!/&(5&oS-!<9ԧ˯BͶJ ʶl7 @eJClö4@B"78n "J}ӏ}ȔFj~Q QwqiOt-ER .E00 sP+ܣ jN [mLgLHvO3賎d,6gjBSp7*eYX˰o\Eq&(n)aNOEHHq Xb_({8EW2boϖGUoii悩B#3ͯ6_DRXS RBR9"bdk)xe ,pZP,#mhK&!2IA/!҈=Sdm=kSVeV V `@A@x ں Bk8ky vo6yKOR*!>pt3cpG|BǼGpKuPvWy!: 4< @jj ^A";pBveJAqT?14?jX+eKXSZCS X6 .(^ O6.J(!$2{"h"*Y@0S'EЪ"WumS~B􉹚$tg F.$L`T.jOL3 T1\tWc8 XTX9bRlzTeΧZg 댩|[R`0( 4~2Ke4GCe #Kh3k a Ϗz z=+[7v(9+1v+N0よc+OeUjAjsP+sAb:(E``= AbAv1*rx.R=ww2[5K[S˪Wb5KV%;w8'@jc8np=[ OwBsL "h6%NɢQ+$fb&%(񰘪e/*:2EZVE/<cA 4(?>( '`a(XJA 䀅mP%^$!hZW>>8DaaMzD ̘*Wp<1ZT^8MWsc:5(jѱS6䲀WR@bx< \ +$b:dCHYҖ?4h盹ٟbrmfC%"Ct?1D UpCj #\dьfOy\"!iHql1UMJt7*`csodh*lls`ܔ,ѻ-&0ǐ`r s|i:;*A?d0lMӴ\QOa{^*ea8b-k(`= *#An,L!JS- M>JG.8Q)e2,)1ȰhGX \Wp }SD>Vw]0}? ` 77eo|7^6f*!T/9U5vgn(\ Z npG18'!tx* 7g)̞ zw$,YC<%! vnE`.kBHQo@A^kϱhްr/a$4d%#AeŕMnQџxGg:*+ی0#<P{~( Đ. `[(X}_B:M>|PtYֲC1%Btl(Ļo/֢MA`. 9)rEOۡMejL'+dvW% _+an|QH*ʦ*PVq!SS4e]EG[?SwT$ ܴ^qۄ`^JrrgFZ)wq1Qe16 <07r! RVbsd"9bL cOn1OlFt'6uEudc  mv#AcoW=1Q$M$&~(.Vd.6E0 е>Wr>Is~Yh0HEp'hS*0hҥF%I?r'?;rZ(ICg@Ձ4B}(S0A* B{uGf j{{Ej.|ͧC;CPksqX;D lR(*UG>RS,B1f*[ISYp#.]~x1R4lv=BfUV\BdpH1AVT3E7]s6g@ŁY'f!rSF5Z`u1sA6#K 1(K<^KE6w>?(55I6Q4JnQiF b`\8r6`6^F!z9uT#0"#7aS#F1q%#ɘ=R<usq<opb. >S1m'p>C$]4)HHA)4nFUr)b1)czf$C2'h"p"&3H `BC0Bp{s{jjB}Wg|r|b<Ԟd"r-FaE C1t/&Tf1r!n1y+zC' 4*xY Z@PVtehcE3jd`H 2V@8Apr(ur2005@)1pJE5ݱ^rM 1h782D$W(r< VEKQA7rqA1a(A00 іQ9&9a;>:e9bZ¡PcBT#!%EwMr'/]Cb%r$c yXv[U4y4>(I(\1sQT1n3[ћ'wrzTFU1yGeK@xe{EX2DiBG-!Q-.iCAW2E±MM %dr~)lyY&J(yyEpsA4d! :YcA @`x` hNKKŤg!8F!D\JFzq!ec`DhvA@S_T J 9&F!#r "}yZa>.="m<$PB$ gd#‘Q%-bۃ#ڲ1NeQmDpd4!2e=4Q5:IUTbTҼ7 0Pc:7-4sj{| jg{-$ iCCU+n ɐ Wxa d"R.oXq):yA(5ng@'+Rƕtr3ѐ  Y)UVZ4 ( ,I?@?T@˱U3hJgHH`us[sc*rkfk 5/G6VzM۴YT"G8ʼ! h9 ;p/$K}"wHy"Hr$)BȚZv+ 6#X%Dr=*`+򺀴>}4uHjpK${DIzB˥E* 7\ZZT?öhS1)}8j'8Ri+W|8||\-LբC$AL(A&[)S)QizdR&=X+)D?T 0QЇp3QHs..&3\ 3ƸZb.We"Pr)G}rFw!F[ M5s@k&r䁕 YrT@Vk `K7]\6chziq\ sccct?)S#4 "r|[ ^0gRd"vD:`PcwhIoFB=XcQd|3Ey]429}cxg'kFa+>}rn\)lsCI& ٍ.ͽG$&گ+:Zrqim-V=*#xuX}-(RE!CQ/g7%FCGAG"S "-E Y8K Ũj+~.K`.~a.af8GqV˪3A=t+1"ě:X]-64GJTF@YQ*j OksfXGiOF[s׼95cCb (e@0 OB"ST<׶dK:Rz_#31R#=P>"4+el|a{T>z m xB NIHHTrQ` ~-Œ-X_p:5P^rQ= )=O@-N (+EueW}iW NUP>xgdFi&({sq n/`0!o%'&; `&2G& d{# P84^QCԶ"^Q#_PR#*r1Z~;^q\Qm'"}ep"A4q)7yF$^]j_pjg|wf ;Q*/ /EѨL'w,ّpǿ&R4*Rx!D1( IB4~Q1I/TlP~l.AI=5*HO`"F`$\DQ%Th̿2@ V]0꿨d)jՏAT`E$-*$4Hf {eNR6韞"P )EKbi"*k0#N@P?#9O yK<< k tǂ;Yw \ۮD8t 4T$s xK+9F}c ~A+\ U4$Q)=c& RJR0=G?O> 5|CS!RD2EhP$2ܨ2G8h Nzk`IB=`"^%/T@%/c':JB.eTSŊx4% à<Ӏ%O:!4(C /jF}9JO"2(7DmD&܁ J'vTa} l _2VXI#0 D2؃z]"e+Z{"o) 7騢.rY7ҩVGjhqŕ, 拯䟙q`_Տ+B=0K@H#40(B2a. 4ٌHь2@j4*ҭz5'@n9*.T鄫Hv.9-ȣ ,*)<]ΏՃX(>.H' Zb Xe(D G6>sT¤ kFoܟd*$e&UT)%P]2Aɋ?^ࡄC7>_x!X--Ae^189< ԷJ,?)PDuFORI7*@>SU J5@ELz 'PI $l1P08,` UHXƊHZd  7|rh,}!݂( "BD10# YWSaU%Ԫ `W6 j|u-#xZp!>BL$!eC(F6Ȋ iRƲMx #Ȁ30 l4ɴ5I 3aZw,@jLZ҆C 7Ʀ"'lsKD"0!IJ4M2LE` "41<(n7YNCLBR vPQDq$\a]fW> T&>Xd dx:YC8-UUOrEGDbA/"`Ny ԃF)% Rt&)LU ?k$T| tn`"*+ty@Z& 6תD'M!C` L>]EO TI*SG]E܅U(` DQkG0bYb־ x#}L"*\6Җԥnݸ7c0 AYAiG|( ^;(-I&]QK!Z\ xm MKZ';1-l8Wi2YiU,I"o!Shp "0W3 q\ggv>v?G/v/n3Xf:s9^:YCKP&fh`|ņ_"X{©?@S([IXK(QhBN0DOJ~UAB ĊTcԣ0 Aw 9ȁ1\Eԫ4k]x](O{#쩨K2D.C;Pd-fA " Ѐw˜@TvA. Av7.pTUā ::ѐ>IVM7[p42e.rYֹTW+QZI_P2 6$mOo "vf^}p`eeJ$ulpX9 ʊq5Wc!4h!,r vc Cx7z(( > P7C8$) #XAb$*J/q88¸AAQ$!B8&(D`%qb29`7G۽sCuXvK %y(p 'A*k:;;~3~z৞rCqz*pQxPP 2X[hj 9T`#CGK# yHJFJU|£Gf<xQ>XIi:JCOY#ƥ؛=99Ć=Ё"3RiMwÍqIT H G0:?0 #mɡd鵋sBСxk6*z4Px0)6$+&gpgs i-W B @z7,؀ HP "PAط7H$QAr` I%"Րxp")lQB$ H\/+3<&pʭ?(h&ۢKJ0 & Lqe0;H|H|W0?I4W[֡СZ?Z3HqblDZ 6o)aJ8cP3Gȵ c.OPMkt/LoLI4H ^4SsC p v;5` +3GЂؘ-Q ])=ZA4X Ȉ#b)_ѕ@u44XH>1y-|BS}!UqRS0 0DHzt#|ܞT@y7M7J;SL8Kވ氤ҨBԆ$y#LDҘ TĮx 鈎lDp:Q!0&i!* /xHIG 0LAW?弔eiŔeC>[`t !} 2 GO=c=":8F~ }-;P%Y=ֲ;b%c 0wyD#%@4Q9H ,[3|Єqљ`HȀ3"2,NX i Zrk48ڪ;1>g[3UtJ6UtSL[˰t # JE$I茌s HK"ҠKL|qʠB?5ݘ/p+&+uЈ<6KI[T解`K[sK+*Gh:JMj+YXwi-BO>^lmOhKDu)"." 2֫;ӳ_!NȸF:PB(ɟEZ XT*4\dnHOjDKGxE  2+5wk:q*3$(8p ʓY=]S#!R4zBEP# 1ѐ磋͑!pEͲUQ6E/YhYZ (b%ɯM۷ xJ== 9J4† 8HIdH\H~ԳԘ 3M0mbC7J@2y&;hq]{13Z>Kc'c;2z#AXD5PAdd^DȰIadN<6h1u.LbEs "#{ΣkpJ\/0*L 4=B\U"xpX X;)I * $4\a(`}ُ񯲡!((h E &5*4B+!4;G˼40p7ۣ6(N 7ȫ0⋭_!2α4Y gcys(JM>P>LSd:=~[ИF8HD"\Km%\ETLeε%\U'%DY \ ;~⤔.He0;P{ D[RcXIt rU>hVD!4@s AKy2eމgѩb3 OєPT7_ NqճDm^:(v`ԑ' X䉧&~Vx2̦(p s i)K_ 6Cm٘s %+!R\'?2Q80 ??|!jbj 'b3rjŅ@ ~ف^@9;J,B>7c[=A}Sɞ e֮$L8.It3G\[d(P/Xm Ѐ\ 5t a{j*>c&LM`KiMՓ6*`{[\&SEKx=l^"Nn3Vku ;@0{ W? bLo6 im'${[cm;+ mqe0ZP (劄&&#ޕ\='Y%!'rqȴ׾^ j3P~?wٙ. *90M~ "h"skSx9v MpN|>.=ddE'wA D/<!L.DT.%xpШ 8&X& Aȗ6&C<7X1AqAbf;K,q}wB+EZQ%pxw"Zn\ןJ3-(u0rÍad  d&a'tU.:u W;3fGFf7O|N,Z((Bf3MO@aQK)]D%UT ?xUtћ/Tr}%fXbh^{%I\k9cmU.PERO)6XdQD k! $G X,L/!RhV=H04 $<"R)bӵF+|䎔5tE'c,41,n\2b}څ'XZ 3޷M7 K#ӈ 5!(Bf6APb# Ka*RUbݩ\)>U XQ"GюׅtU8H! (W(ߠ>P9P pe0Aִ@d7DM%@\ԵwM^?0 } ] }1,h&vEDK`|)K!1 Eu1Yl24fC3E2RJE-PxtY/ ^ dPDv@`eFt+:E .فzeaV&4=J!j*A@KEb` ԕ>;AP'@թiBAH'3P+ALTIe[ŭp 3oxe6? B@D0NE'P.E${] bRFäg(4,YԱ;0Ж#[ $aL1!iE2 Ms;X&*Bp A !ъP7x%0A|x)YyY6Gd-鲁\. e@,ܜ07\!)(pt? ;%7ɡ|(3QL"{@⦓s|э['&p2*tU8UAaЄFT1ƃDlI9*vrPmsbޜ\:-pB?sb VJLk0 @[1N`U "0j}D#`0MGȽU%H6N]p 8A!OnA ~D)JVp_JjZ Up@e'y(XjPRJWGS'N~uĒC\mhtC#胗HȠC-,b4gP>tIĥ}d5*?pa刉|0AN,ݦj"MּhTQ5SdSnu8UJyVRQ@LhA!i0ФfL$ \ EHՅ]mvb R{ @pPMqhd{}Eɝ?\)ωM|h`pXbX$EahE` }H х"9A\ m:qP=؍ Pp @2Hp٨EB=AAɊ`IU!GuAԔ-O9! %FY]b3BՊnj6pb,,7ƌE0qP&hRASȂZQ#PlM$0] -.AnAf!=DgZ_ge'oĄ\k ,N`N !( |/IPG9kH B Kb7uN]04$Qܴ}r1ɟn1 Q],ƇR7uS#1mFdOSߊыы R[nɨdRbbè1)aZPŌaiޖM]b(2]4%2](R@$8(0! 4&6N\X2JLā YYH#:ckb%Xqgͪ/660@J7 -2 bXvKH#꯰&FM@7Dlx' 顉ϼ> ˯iC> mi(sRA~Aʢ p"KB'XC^bhxJD|槲tFģ߄ѴI?0ZCVfW!e)T5 uQyQQ94 5&9&;Hln>mQE"P r ~e\i^q^9^5Q_6]auЅ-d3v(@@@.- @e#.f+<48\\\@N6aȆ]A"6KLHYY=,K 2NJPZ:Tؕ+MOC4}rګF7ϱt+ ȞPӮHj[Z'0?"D(MM؄hD4lθzx9Ap;+H$ \Ʉ]Ѕ]8&Ѽs@Z#$]Xjlbx)j8Z!DO'g3sDKKe`n 8!?pL" SEVL֟O;Y#MFFӁ҅.JF+DD7NDH?HS=D37ncNB{хrDZ*ιNEDXB23!G>r4i@PI( ?&!S*c,iW{J-#1Q9%n!M)SZN.2 /PMoNy gaC 8QY)ȩ kب0<9O g׈4qKȒJz6n^2h@Z=sB*U)?[YULa4mЕSӣЧ+'@i!@rӘtT F )U4`e @f9P[*Ec00F+_Xuk4sX +f1hekzI?2<6OuZji-X0?sDaI?sI-D."3{qZٷdt1 mI%U9 )sV"O#B82:T,Ɓk*mF @# :XL%T$NKQ|d@#dJLT oN!Fèj88d%X>4Pc#.JAvФ6J]WːLҧ!~X Ib̄'m#0I'@!89:C!3qƣRZ+/%nNƅ,$~0 $QD'T6t0qx7ZCJ125p-3NQ^x@*?e01Rovq2I6 ­m_HaTM0"4(kE3s4G:7Br6( fF76яi6P&5,̨6o4$  K-(,>?w??+) q@P@Ҩ[,"R '+PDBKK eZFgtA8_xKӵ7[g3F(H8B;#p4G}t cAL[pT0#x0I-Do N*Q&SRB.A8C?Bn8B*]]֮M4NeL  *6"P/ :Ty% "\( j(ȴd45"l65s5(ӂFC^5U[nsQj0xoFTW#U:]W:5#4E3dFS5x6ֈfiI6T#^0([U.=F?lȦ55/oq| CHVGIT&Lة7~D`3S iq`f>4-b /<^j%yx#ZuքS SIKDp,D"~闄8u_;z CL;ʁ֬oCYx֛vy+t[H[LR$L1ԣ%#-=*@^-A"Ah,d/ȥ_"/D¡=P{ $~&E%2JV;Ԍf֔o#fd@BYQ@57yQosB @VmhVM>|V皯\嫜5-$td(F@}.BOj:4:65[u~Լ\a`#p`? ry zA[3N#/;P %gN*,[0օ #95d8-y:Ř1_;3,19)& y%bBU!DA~9}Mj+ТPAAȢ3|0/]J0X`0Z0o!Gܞxn~Ja\6לNj?f[Z +C)w#4~׺l6V[U?sFVe/_n#"8xƒ3fe dhX C# $Kh2eX~\ǂ,k?.I"$P9= A<‚['ςG.aB4E9Felb+)$/jS$Y(r7)|4n|%rd&x`27seg9sA0u3:C ̅K\$z_10/݋x/1Ǹ(+c;fr5~Who>]UAF?w%4LHM$aQ¡rE=¢x/?^EwP7aEg9B?0PHpEIS )N !A;PCj1S AD@o@Af EPy:ՐB9dD"gC; ?D)EqU>R,eJmI3}d*3Ou[9=@DT:Q?U5Uڕ`U2ZEjuVfS_cTbI}6ax(eEOm2yۻY W #0OҶ\pD>$Ln ΖZm5sACu"wݙGwazt9b9ƷWʙ9 Ӂ/@8])8rhLUsᆆa)a"zx j]tFYN Yd0ݜ[O&SPFI1Gh s4`&N].fC A8@x:>'O9NiDQKYd%DP2ѧ͔[?O@Պ BuA駿X٢UYCQ֍a]%UJ''@`awsc$8^zZF Wq>H  L f'EJPDA')!kd,~8 fdC,bP0s~sƤ&@QЀX4 (Q 4:J1 MMD#ZQ6!#CщUec" p6D0^yˍ7$A%3 H@hBiNuZeԤ'?EDRSչ֩t]zZS$B)$VJ:=\dT!2MiNSC^Pj; W3 OVTAB)"D*? 4`@b0~%sL$-BG0&5p dt=z3]6#aI{C.lPHU%6 %l= ȸ2'Y(3d9x+>bJ*2q*<hН\1`0$ )RhK&o T&\ݑ{> U j^\NhMɲJZ -j_Fqgc v>Ec`6́c3JƸpgFp#qtֲ dVDic!h0p7FPS|N1T6~SbC+UEI`۷8ӘE3tI>!9M$~-RD82/FTD7$ U4Ge_Q#E7EDÁ@w>g LPgdE")_H ZB&]SF9G V=n+R+avH}=Q8i%JII9Ql%%):#(w&>e8Zd m G'Iux5Z[j+Z;rBq'E&_iu, (!>`b^BLJm]%:NϦqQv8VaU1Rr<ϕ<$!fh3 ߷}%=y%}h%a\%Z:aQy#`R.1#HQUAS+sU#E'h *fRd@W$FJsEȐiVejLaM'1K^g)^;j\XKjFOԄ83X}Bw*ZrVx?Ay(NxZB]FQa>Jj?Ʌiҕі'祿K&JY]5ڔ['Z(j[^'[r(ezT+TO=<u)8]k{Yy}:M&z*J6&9±͸ gKU10E xB$­e540ʨҺ]h[~Uli((v&sCݵzykL)Ĉ%Y~*\]6,zlW8ٲ[h=m}e+sC0HQ% qqB!R!>dlEx+y~߉KW"kş)wp}ᆠ!6x&25r%3 p%u_V Wm1~cQc"-jaz? ʀiz=RmA&lXxZFKPymBo'X&[Xەv8 1dΔe.d[-؊jF):9+FY9bJ^S&'(\X謈̶'m>ѡz70OJcxZ]'&S.JdF)u!!%EC /3c ܘ~w\FtG$͏^895y4bi\"jVgVXRVqIk^hS 5-2n?]Mi- _F 9?* @f-FdcQCBDW U'A  x0 @h G _ 002'ޅ*{hŖUOtld犘WS=yӧMN۷i&Z 'Wg kpz~~䟡LbG[`r ` 4XC.cC4 # <;zA*/hPԏ=8 rRp-Œ1, &z:k@t ?&QoMC(1X|( /уF  |E(AJҠ"OGXJ<2_2K 40 1 ] DsMI3;Tf:1S%dݽ?E?否Ky:@4>C/zF5Ha$bIŁRc؝ri'W뫢j* ^x}]&N +Ie?Z(qWX$cu $2<~LRE?T#•D)؛Ab ~}Rʸ01[ Ğb0,3JxuѠ4GȚLZ\F2i`dv1 ?i lY#C!7XsL+4[kȂ$"d %"πd6ahG/涸q!vR*PTc#Uq72H(p4ID+ds-k%/Y$N"D:.Lej@A w|C7nA{C`ɧ(cP)Ps>j@ mSL b^ k,b+6y_E' 1,l%2Vے΄zORo۲ ^3.R*K Z+b}D1V.l,aVY(/L GxH%*~!JcbX0\W9 ?E`WU:V$7$Ґ]QMb]E8Pf1w&)m! iChOBΣH![;Pg0!dZs#@TV>rBXOr};nFJ*o$X!rr1x.ѹvs_vtLcpE0&At[5}  Ѐ&nzkN&kȋE%?PEn@;R- I@9a-2H3]1 { j‹:Z h P1J P"9@(=9 T2Ċ5T<3k3;ӳ/K332%z:q9PILpJDE"3^\42=8%vB*΢ђkMc#L#Z^s_ԚD 䳭a[>iK.Jd8yFmѥmFo.J87tvwl/}clr}3HȀ%\\ 2THȦ7PHO\EO[hFp7h7F&Fh mX2PRy;Z-IR @_Bbiɟ' [ *!UY ɜѩL|: :y Du٠Y2;˻:(ҳ購zAmy"DCtm="ؼ3ڎFU#)KdQ ŁsMIL pMP+(\KM=hK)"YQJeԶI_-gLhCNm2ol12 'iV֌t? @Q5It7 H?GDWG &> ?h222PP8X7`؄ ]p{'8$=01B*C;s0 ձ&= ݀hV $j((@ (,Ejቬ:eaEgQҋ,E< ;A ZHۘ-3Ja SA#4A,BNL0cMFRQ˵Al^ 0NL!䇈ܕ-ݺiPI9udg7XPY FFX;/2P҃-P#*JUSLp}Yk1w9QH lZ,"F&cq`iijC;Ѻ9Ó"4v"4J4CãF'4授8LDC`'Џ\rH$Q}D`MU}ݛt Ud J>:"adaedUD7i1Ze `&+m]tX(7*Ѯ7R"||AJ`N܁znx_eXvu rvvYP߁dH9Mp P "+02afYr7˜!Mw] 9LWAs'e jC9tyB`C @Z+3q&z+ȃ[q` A2 $h*P Yjdqb(Dh wA`9l;)ti9!%<ƒ 5'ͫrlFd)akLaIB+WRrIɕW$zw?xܐx' p g |o'<6sjɨCj? nw̥\xC(zHBE>dU%Kv<{ݸ_~|רQYS0`e;,y*x@Q$ @0D@ l/v,? #K ?BT Yc;2c1FR C $8Y>i$_ !hr3C&YNF5 OG&O!=PTaEVtPAz?Qz@ )vX"wH T$4(Fpq VP!P?!'QHSZ=_ٴV!U4ԓOYT[|vEq|{ VdqW[NTlV K 0Lh-g2 fV$۽v%TH M" T Ō,A |}E'5҄,ĀeȠyvU7ǃ!nӈ%6p-(t@Mw>吃Y!Řyh;.If@@e^ek6DIǹ末{® kd2N!pDO=ZM"chҪ&?*L٪VԖkjQYFy+GNIM\Sb$/,h_Nj.qE\Lk&Y[(3K8m0QL2Ic,D) y$b AF7\et7!Y%`Q2(L ZDt33 b:/Yv(@Mp{!4 cȟj2x]B]Z0Ą #J!5D*R@fGFw(.us @H8Ir>d'7ɹ IKB\MGEQΤM(rx.3RT'5ԅ=_ dR0JD䎶'6_Abʠ ^xN<FHXX A 1'"Oȏ2QAXDɁ6я䢭!`_`BLٸܦhK;XHL øc  1CF?. > 8 uQq(cPHhIT(VY>GyA]vG҄,$Ҥ)e!KHQIHBel3)HgygH!VXe)E t8 ') VeB Sdb&A&Rt--2@[+"۟(aB@M^!< VXUU P5Rϲ,,\4 Tƕm#ƙ_PtT @LcpʦR ڨhDȣ<ЋKI#=٤ABEDCDExihXdKqMC8F@8@R+,قمBrTB" tLTYY L-]M^͡b]uvLGt]XUut3쒨|+!#Z nWfh i!lfʏP-Pnf>BĐAD8Ȁ$ARĆ A.P gzVDU?h @HdjpD?8hP 0b,L`\!d, C) 9/"ޚENVD <FhǮ7=A}.Y6+AAnzݮC#W0Ĥ0Dڰ  X&HqF:@ @$"?LE/H*+C`J`1L609t$]Gw!`r`,EGCD`Iq)Z3wUm͖γ(a`l9iM锼+9NtrĸJB!edOC$OW\ 7z!\B5 n&Q¡QԘnck)%nu8}VLqH9PTxp& ×&NTu ,zUD~=`C`+?SL.i,?2,;@+!sBD1Tp+`?L#?]`Qo_*ّ ,b78 ތ)hsYR Ɏst,3t7Y,YpR`%?mj]l锠͍"@ÃFAet~yH7.inKYܞu\E ǥpXيjy0 !:'5eb\e{˟ϨSDS)P SpFz7! כSyxH[6y&d!"@6yGO*S?܀(Fb/bOx@D܀AB+?/?P/.9xx$]3E9bqzK\~5Xg␨(6(6u@Sx3xulw i)\*T++ؘJ˻`WG1[ I; 1ZI44-hI R?+΃w"|P9wɉ 49"GZGErT RG9vDKwA/CY>|J i Ter&*4 ASH.;V EaeU@ܱ{_ke(sÏ%P/?H2Fҥ{Z(` :m 63Mp É#D@xpU|X]@zCxX(\¤k!@? v% KH O: к @"0CC7hD  `Q]@ !$&KC?; `+j-/#˷ffxfHsMG8 9l=T@?KI>0vQq@ !$Hh#"2(M9飒DE&Rj@$H58}HLz%TW%: R*X Z2 ʺ)nM,ˠ72K.ʷj2u@3<1Pl3|'^ ~8xUʵ p3hl$ .d7ƚ3·'8ċnٳ$D튀02Eք`ӏoA@ZA6mðl bqE i^z9J#r"DxK9r0(JïZ}.83t[N:Uj>BtkDyEsPj#pUhҕfZI'?V]E(VeVwdۢ_哣Qޯ֢ J!SϠ*UW--E)[–2K\BWeRHu{iP h̾D/ ^?4)zUHaQ*0D@gP Mb::1$ 9(Q $Cv֤;,p$MzK|v')l lKщ:n@ٶO a6"i5ICbCp4R NqH)$ TGC"vT#@)(S&IMD 0[vXB&2'x/@`46j6HFڈ;$&'9%|F($%KR*&rJrH@/pN@yizJ=F?t)Y:B@WNY\-%yE9cVy6"@L` ;er0 p6S$,1Ă1E=̊T FXC'%IzC'@ZЊJru>@?R@TUP "p$lzO?zCQ!5EъM9+8hpM.s>}U+5 /`$z ^iN3xağ$vb[F:Ӳ,fZOԓ8gN;LdⓏē$LN*"ZnTƄH7MTQPFHi -~.{ACpu0B2Nc%ņ) 74`2cjc|ݰ=`abB(j,`.u 72֞ !xAe^?C V0K@ϴ@B/jun$S ]gĽoCࢥG)VU]KʳQrkLFqË'^C b`_.!Y&3<bMƆJ pE/*PR`BS,lR 8BN.@Z`40R`^oXemVȈ+ 3mrj uyXo~ i@)ŭ״3lNxGQEv+tQG֨SI*D$(ʛF)O};㣟:y{{#~/\0(d 8◰OYFb/4> ʮ2ή(N>,rpOlx ?_d<^J:nB_naBc`$1 @5l_j4C2lP apRզz # : !r$ʒD $J Ѯ  ,a<#:@P@࣍dvఠ&MLCCU'0Bk*Jk6l-BCZBo,hG&}!zOlu vC$n&ۤA |g("PFQ͘>#S^%&| *"#Tb"""S#`W@~@>X4e%h,G!YQ*dY"*b*.6JH(, Ƃ L';6pK``PP#j*4Z3jgP aTc1VNl3n vC p` , q 8``rjphʰ`(r0\֤~&AC /lP iPeVm($ bZ8G %: <<Z@ Ǥ\661MM!3PiaD?Nn5僚:Q|ܩ|'Oyo!8Wbq޾1'''|391XH/+%F$@TC:m). Fu9-EK~XbGT!z VvA~N5 %b4cnd#5H@A%+daa.%1rPɂnƎ  \A7@7N ,j l.ΰh. *, x`)2f>f?>ICD|ڦI}*y) 'bLMp+sFZ0TNi&FjƤ aQƗhv`gO:mx 4Cd5[SRaaCE(NE~%\eS7UWN E!Xi(S NN!B2 VB6n@X $ΤB(R&VXq=K(zOlRG/tB%lB cBY*@ @7]7#];kccTaB2f<3NCYj162\DO Lc I Hc7֬G!<*rGٰZs8bAO@,u'0r r›RF 0p*.1eLTABJj=k3Mue&f϶? Q-.+R'n!"BQPF4U~38 Wҧ(&}vA/;b"n30_ނ[ P֫\hH*/%S&B2B"4u5ET%X$0/SA4 F4>{j@eyCH]=] 1d1pa 5n`>7`\6dRx## Gb>3x*aAdL>Pd*),+A@e;[,룍-,PejQц%-@貛8+"ӒB:#KG*"uB< j$dMj1l ORPmC\35Ͳw<#{PElzYMi $@(nQV!Vu,Bbw:CAё-%*i]=c4!ZbYT5$[bv.(8թ5=BmX1n44ac\ezEz@ @]w|S1]sY:1_cB[Ryӗ. # ! < 1~~{ b1 dh ۮGl xtz—@S>=nV--F~IV/kTi H)$EN /zRYY/0>&(JyoNڃNDa6cM۪8Qm6XlbE$8jS'{z!} {!B oh"4!^@_8ÁH׀y3\#ɨ\A tV92uo+ e&u "asmh1$e~Ae^u]7>77B;4tn2&a5R#5f`Pn k4Rl aw`&s%f+(EVpN*(ؐZ*LfMViHb1ϔZܰX0 ."]¿3&͘6{/kNdg`h _~GQ뙤ɻv%3|}zl榙C"ivd~kBpUg6B (>kW~9`W4s@[w]] 5p]%C#}OR1&;2lpj$o%`$ڷw~՚ \E Cd` A ۝A Zd`+#$,iܣ-R(H#HҢ@<}&b΍mPD,wuk`ZV{`$ZslJA5џH.Vn{vA~NbnI$ 4ONr w~G'6W y7`p# *md͂XtBD*poaNCp_Vh  nUNW{bD@t@@n\7x1%Q6I"$PW@&a?$pK@Mz@f1)Wc ݘ6!p4Ã2Mt%ј((w|" Rq 8Yߑ "}{ @V+AR8{U` (A24<,  !CyYfarnf蛿9&.盜I~'@ɇlXph` F!0v~Tp/e UA*@ i{⁍$_F5*Q &Jcꅾ٫1h&ʘ4yHN㒗_YXmVX˴f$Kl&F|aL#BD3g:'qYL\gfNx@`gY+[> m^ď~ Mg ЃҳƯ=hkUcԶ@xTâ/hFRR4%H|KM+u#' _YKerL褲-L\XѮMh'ЭNt]4j .T p@09[z`tBUTyǓYU*w+Fd߮2N3}R)O=hʲ@(@e(KL I%Mx!!^F30b (h{&q'FP4`!̌h`2+Б F0ŋf"Oa&aMÉ =\`c@`&ڹb&`"O(;GD&Cq"j64,l`dWilgsρm)J|  '$$:$%-8<vLYJ6)=X2e+D-Dk*]ƓN"RH^2UJ[Ism@Lm0B`>t{Txo|+u P̉ujuj'@׺+˧"lKz@Xo2/${8G7+]I1LZrcLaep10JeEDXc DTWX*S4Yw:UVuQ3,V h!k2Pظ6k1hxȰ&BYTاHG?*%)moU4hFI}B90iҳ}j"նe`+&Rt+$6sBl{e6#X4G*uAD) rnJ*$&!7҆!6݆6&9lR{)]np,M&򀉜OaTX01/&Jsa%LFa/vnD ٷH*"ET?!i`EIe wCUd QQjw`"TNˤt_9#?DuQe Y=lJk=/1|4NGb}@@3RQq^~ȋH8%12A`, U"f"AW/a+!v0/!/.>AbbRq D< \fx(~_ h J5DCd3+ 13X%UUEQs73h ulZGWW6hF@X"g7X6E$gvvvyv|$$&w$R8ZIV8yIU9(D's9fjjDKq:s'5yjP 6vCzftѓ@ % sm`o9ge|=p=ܣQR.$nA=$1=EqHB,X_~Ql7|Tp*Fb(ǘĂ(EuR/p^Q!d ~Dfo@eUtL3 ? MD0U)[s ]#2?ouuV'XiX_4?cфe#$3s5H3hG#A2h&I&>w_q3(5gHI&IAw#9kȓli(vZZicxa2J{y[&<.Ök^|'tpqmm1l85Q`](*TQdG!Bx2!bQ|6q0#c(&8.V0x~!d4CBnO?w$CGPAN 'XVWPU sqs )Vuods6dsg%rgiidXqv~X0C $1M``Hg-^!Zr8i(kxb59*K'+J.UVDJjK6` y4.LpQ| ȧ 0 V^3m?ȗ{g|BǚWn1&dlbD.M.V;C\Tp%/_d1'y:qgb+1ACa,?pr lŔOOY DpЃ!籫Wy&1UyRD I!G*qCR6C%6v a4e C$ErY]hwI%IYTs]72IY[1-:Y%.wB9E ( (^bJ`b[49k:&s;CS'[sw@@k%xWz|`K>T>||tVmf:!v]T'S 4.8+2Ƶq&a AQbǵmʉ15"A|9eIq4ae^.{==Q+hmθwm<=RW0%_[p $`{ƕ!|b8{a׶h~oJ؈^<k*a0g,)>cˋn Ǒ ZC2G'T[UY&Q45?c9$g'8RFX",IRх2 Zh'֛ -f)i)#&8Вwga}Cj*A76E-"/jJ:*:XRY0Nj 7zgQ6EV ۙ@e[3m'L:ʃʊi&$|&ZM~퓒ߋY唝#]GGaFY,'wJ3yQnQ&h4dGs*Ӗ'l|=rB^ߵm'<l^FQRr7T#7*\%)1{]ћ)p.. "5O9R gR)Ax(1,|f\n6@F(Ad= VWDWNݹT9ULgK oh/%I}y=x`E9,Rمs"bM77g~v Sw b/(D;tчrBASs)CV:*mA r+c=*O=ΉN;0_GÂ=t}b:= ullGO _"&B8M=tr NƴXc[ Bn6DPWAV#G@!5'~[6QmFE ?Oq_YI A h_}/@J>Op$ &ep'j ({ItK|g kDGG $H|4R8H J$Cq"[ˉ` rl b6l8rs< \Ĥ$B8 &z)A1ZI$@BQ&)(J' @Pꧦ5#BT%UWh#J,J2:+.ڲ.boȱdab#* ڷl.2| XFk+pK[506%݄7x{^>rSETY}Ee@;:;<&^ />2OܯG8;y@G(Bcp/:9vĉ Zilˋ2j N Zr" 8 ;''GtVl~ftب 6,(|έ!k7rJ$3:EY)A]ji'^'8uN]uUda< ,˚llekȯ/[-ܧs#Pk$=!3+3k5 +7nJxMm҅7W5AfPNAXIf.L;1¼g?ҐVB = bPDf2GBV*¬7?v!H9O<^#!@mQâ4pI`Z0+Fڀ tE+ʭIHA! S 83D$ܜ%A ^6`%t 2 jQIBM]uC̦~H͎SRbyP!t%{\B;5E"ҕ DV\i*| *B-K+AƑ%-Kel[g?, 6rn&8q Kgz$ G"Z Z0Xa?x1">YV:n?a{j›ɬf&(JX!fg#r(y {P1=Ր4 H U 72ljED G(mi'B2ȅMTZg6y.1 TPTG@B*Pv1BPd"ɢT)/gJluz]^?eeQȗ]OD21,1kՒ&qk"շ&s2D҉LsXY31 Tը.tF` rS^q:0_1hE @D9H0:NP EPbOG  +ҽd>:e&f4Ys#-3F(Th9}JPk7 W,_#DsB.o>U6mnpȁ yAT$o,{CrlUg˩u)r  47%9c=IMQ˲ Z7;fv(bb@d1,.F:yІD<嶰}zۣmVuμDd4I(,%SJOWff~a 3X f|B½l7CǬPT*GZQnJ4CFde(H>"ŦhrXy ,J5wk\j/ ; YixͼtLr-HCJHmcK=`.+ʡ"Xozr.)dV@gn7X2S,i{J".RlWtLX- , ۷F2DWE^Mr8^{&s?Ӵ\sMwG] x@+Ɨ`-3BB}J5:)-f旸wK<~W9380j 9}a2ɚ` INAq!J<-s@6\<`JBZ P5aq pY5A `JD;ebr`3('(Q$(@ Q\ܠj⠠|ȑh+vE,L7?j G??[͚9Fd?ꀕBo (kE a!q9 d"2G@*P =N~y#1Q1 tѣqЌqg <58S¬ hҋp'l);8, %@ۜJH pJ!JؔTД65l3;B9An IJpO$1Y3i]tOC.c` ' 0wHEL)}qE}L̠(!)uu#.k<ݼ?"a,?28S>D%TqƙY8 G MgGx)8") yG|3G(GUA~4#+.z lVEAqI+`O^ Ya[+< 9<Ўj),C%qTBP E!ɢX H:@ʤ4Q;[5BEX j ,Yk=ќTb.rJ2@R[rKp.a26azyE"6B,~{q}G } P"+‘@@l"xS7͒tӶ!`8SHEMcd̉7H-M%TE}lLatԋ "$څFCǘ긞LyDd2\P (`ⴊ lOօFbiP6X,(kd{%-KhH4Lًr @- mMb5 P}9by#\ZQ"1)'sRNC+-f P }o6~ٗ^^/?Pvm(j nő8͑|F.n<(Ɖ}7ڬa T3 F0<QQES7֩)%Gȵ2汊*µ*,8p"&9D _ *k+6Z<] ٺG+ h-S+aݽP) 8ъOBNk Sr,U1%`>Q孜Ø. .Rj+YH#K# B|؝pW86E&L$-6fOd QT:M( *t'Mȋ흍v ^ NZ ``$.Sjat~a&clR"nTMYhL U)ۓ* 䫘fi Ă*i>넃bD Hq̸::OܬP 4%dw)%䒨Ϲ\P"މؙ}@3WLZ"@^6ĈRdtWR&XK Xs ,ʙ]%MVDEBq#CtlԈ4wֲiZs:&=i$-=0`B?q\ v@tRNO ga(7uB (~H=[Fh[څˡT@]O)'![ dlv,vh*B/ܨiD: H̛6㌭kjSw#uwǎƈHhqC䤧BdB, ϓJ 2oÓsPC e1xJ64+3;/XUiJس@8~ ߏ7~3x  Pxb2nԤ韦 *> (AdR @H A U`3,e),t)RZ<؁nmq^\kصe%ڻj tз\wJ?Ć!h$r\K!S̚1i3UڕR^JX4 ǃI&^ pQ?0<=?g\5Ρq8\- aF*\v';}/z!藷p~!y[%I 9( $AuƁY F#N&2`?ic xT#ǡp?hcXyQHruyV ?ÁoTp?0f_rP9PB%? `&Ep!Xg Q"]QJbJ9VKրQ*EC1TX}jUU*XTחW`W^a[|l[neӭfm K5uP[)@6c=iT1^&dR֙gsG/w4].jRkrvP\wt3rN斱@17udg usRDwD9{eֹ|W3~3yW%q^AGxa h iSx$x$":6c߆wz Ԍ,y j^,X !ym~a[%_`7yAm$'s~T^P(K+%VӦF4{R*cH]TT1@HTgm+Wi|d׬J+]|WwA1Pa -Y=-!GEvoq_\|,`I~@gfWĺ#1\geۡ25]+mN}&F&_AL09i>- b7satAP{PCCO`th9۬"HD+x78h;4 *jp21A.wK\kPUA 0DCt2Mu&b6U$6g7% awr)0 Qv-f G,BA= 1)@I3ӬYHT#MEX*UkM5pE42niZF4NX6G*]mL4W?cM#D,DN QSдҧHJaB B %*9tMX٘$k(=6]QwN j[KK2cc/%۶tjYvXMB*H@NEp hPb%VCd6WXRcZdH?HYO3B NRNXʥ^L5bߩt@ĬӪE IfuZ]hm\S;& CDC^IE 'ba"8_f<MFFa^t4DuI}Y CDw~ D)FԿ\X}_!u/rǁcyGPGSŜohLAh#x IfM^MvU܆؋$x=]E洧"ADbF2+EDe}&x5 iVJȝFĥ퀞^ :\ XJhO "T&l.mʆv2Y)Xꌅ݊`SJ@ x) [[fݞQW\i%9Ӓ^b viVG i.f) BH֞-5&fPbBto&MTŴЈ3Jmwa7I&hxVQx'VפAԷ|HӣM1@UxHIz#mu~Dpn@VxrHd8H@KdƠ W]Df$C) )!&rE%r{ l|[%F`9;Gt,W@9*05d/2g)Z=.Z|%oa$[]JW [^6u]vڥ]ژ_4pUks19Ծv2ksP>G=cZ,/)c> ɩm@@ 00AJ4aDhLhÎ#MRԨE+)V a $T%b? <{Vjg6 M:Bc4?\Wѡ5+.tWN:vZY:bM$Kqܶn ٽ@aÄFLHS*.QDK }}i=\qAU IK*>n_b.i hPcb@,*";HC9N /  0K;D9| FG<2=R"SCuR!(R#BKS/:i! 顁 ($ >zh#"N.&r(ѡm:)*L򪫱@ʬQ]) -W,PmRIV.B[HBC Jdo(c?+L6D+`#[dm7頃 #׹`נDȫ>ϓV<=0,< 4о4A_~cC ϻ!0B=| -QNJkD0jiD,t];i }CӲFkN֥EZrY3!5H%t܄VIJq2 NhNwHI79 NpEGok[KDThCtr!.T^d p`!Y,R*rUiӡTp0ݪUMyKES$zc첔TVh<#YjV)/ϔLC`~zYMiV&\NmwCԗ 87gQڏm.W B)HҠ2-  eICDAVA`(Ysg&dN)o|&"$rfNڒ)4ubŊ\K~“'$œ!obۊԈhC`%3vdM{HE2ox*&a*eֹ)l U]sL#(iNՓb[ZwckT*'i%#$F2:WPf2g L`z} j.9_s 'W8&((4Oa!{sPw(1HW  X ylD2Ý E+"3#p "Lh]^J`4 / K"uN9=@5LY GVS/t5ZbdF-V͌M5)RDK”95 M8ǽX'xwHHf.,PuNbK\⪵0vgWUǻ%f1KK5{{FJgzۻmZC䙚|mϳMun_T16  DcfMD6pH,5Æ[ QfkLPG>;ZFG ҫշ9S$YRTa0;+}L$6E@v!EȄ0qh#T$czj8ikqR<*bQO{A@Q25@Yhc1٘J\׶Jl5r$Ig*Nh9%WՃj+'e98c60ٕlՙ$LƖEȈ92Ȍ>ۙmz–R5r&q\[M| 8]Az.; i)`Zl2bѣV  y~L>JO4C%b|źF"87{54&WXPb7 AE| k̴$}h%F|'UZDhO\8?E[P.VMUY&V %Wni219Xғ 53-;ϳ%-%Y.c+CL3z zN ze[[@΅|CC78 9b$m_ca'>`gUePaN; dNj<c6fkbvP>f8HhC؆M<=ǼlM @JR$X p$FMF*,#hlލdnlFj&"F@B(d"b&攄Bnu֪"L**'-6,Ur)B.^~-&%0ܢ.pgf0w*3` 2.Y%ny Yr 3 :Ged\&PScѥ\N2F8&~A*d=4h> P(_FƠD-a oüZg&PHnLdDG> u&bpi6ϟ< EGnjF?Hk>dܚkOP6jIr@L$x2h Fl|/?JL)Ъ/r:IGǐt,NlDn܏Ue|"`rv-RN-iq[ 1&1 3q 338k ;(16"k9{^X#Cf+}%1>e Ơڮ<o_x)`Vk5`8nCN>NdV&j2 i ÅfF TEz&dx/-%==(I욪(_DInj>I($L@s%D$*퇎OorEr-X*BREDnR'- p%2.k.0/Q4C̀0En%4 _)Q6Zc[\@kF FSҭ@hF)etΠ`3` 'eP +DGPm82K It0ih(J |M V8W7A. i.u> V-?n,-oBrCrBXp gRj)"BT[gi09K02/36C: 28zI2%p:]\^)Q0p'R ?v c>f>FaMfEή_贡bcC da!cFtA i:M%AF 0RoT}mR?stۼdoSٚjd&dD nJfVG,IcĆ"b~llo.u,"nS/'nMTJ./`13RDCa/q>#$#`s)\,:1D4*H-{s4 ;GτJ\iN)(M <(d>hՂpA :=wf_Y6f$`b&yEx+kb׼c9n`h0_C8" RhR$H$lShOR~)KrjOcV(H5nkTmF(q72imʊpZtjC/XjwC[R.8p9F'42|xYwJ˳IC]4ftI6Z\̅\jk^ bWS 1br8"f\v> gzPMcϮaIKNȡЫ@1A>d%C7 ;jP!|KJ2i-> G̞B'BCs\8tTEޏ1P8,wƕx猸3r45ru2%P:H{n{55&Am`ӍaM >-AcXFf7V.Z cN$B+M;`)£? qeΎ#"\?Pэj=i;r**ǖV#18ӅGlSG(9F BDnW9jgR phKVNRpDdЀ5TV0M}ac[;Z]pE-[ͤNZյcpudmy֧mhVgcYb‰V]yBwPvKzo po[pq/V\^BsqJG@s ? \x7BN;KG$I7zZdyNq[ X ܾVUwxH}(A@dA% ĢA ĢD11LŤQCZQ  ȢTYNJiLmSDU5Pp= h]t2bfL\5Ltb֦e[]oLd}geL)ifWlۤF~g[oo7~8q?UYLY,zJ9%A-.-Ƹ.~.r` ?>{X~ؐGdL&=@H²;D8JK U4R*ԑ4.ߔj&]iǍA\ZhSz/^e.kY*u'5.gZdAFh _2B/r>#6?L``B7ksZМJU »jrq wbgVA C*/ɍEۀK;?'yɏzĵETEߢ։t 8"PN BcT=$A.rmO" 3ȗ,ư$(HG6>d᳈Jԧ1P*ݑ_M袩H@!r8)gd'7I)xzS'HAn h#'?AZ(mMB"g/a7ҷUif5d ovgո~G':awi*犜"@T(4y2s=D:t-[OԘ8`>})hb)A*&H5L 3HvDd# ~>DMJlM5 YL)%͹!o`YC1'50*q[l◮4f-#4-.J'9,tc5(nE_vTOnxUIUr&fvVag367u+y6N}2qS,k;. Nse4v~D)mH>`FdRpM"kz%᝞O#X4p*WNu,ˁ}J8)A mށT傑ێ*dl:<ʃzp1y ^dz:K/{iLTHDNd FLD협f_dL>1љ`ڬj7 wC7)}B/W:}ڢ΂6=m9x^re%iRM84ipl fP]L&Z) Q)4j8isn9; n4YK-=~kKAļ1^SK#zqW.ouQ3HD}CZF >$Ik9}*_I2cY%7c\qEF>&M= 0Ǔ%i,uH'xjl;|f`e>XW"x;Ýc&E"b#&ؒi&s64=V$ૻJѤ2G9‹`mS75 ={#Hz;&2RD%&R'÷hO3AY'ߴJ8*WPԃW{xhpg%,v4X^7+M+T7`Uׁ0u*צ1$z}2xBFZ8%On8ODDPv$Psy:;WQ/spqy\1G wGiI]>9ʵe!qzgr'=~F=?# ar>[(T&C%#FT|I |Yv,HtSO!hA!`/mtV`= Htr%W!+L7u`Hx_Bld?Vt4uCXn$cC3b%U,0w-ee!:meR<<&SQx-[4qN15 .\ CGUGy"ØMI sN%}sJrs*}Tә3dhf@+ v#t(y?qĆLsc+!E]!1dO?\E*DV7B7GcE/ƉvxUqbY9@qSw- wpS\"g B I@q^%RYQ3"S^8r%"7h;2S1*hBҏGC6^CI86t]bl`£P ?Ts㛘>F's}Ҥdt_Dm`K:aCS\1%dU3&%_귀;J+y7@VSeYe㑧ƥ oj[Zty!Gf\[*RtF5a e!r" $]؅SF"!cr3'2D6df4>YD`|t)Q35xP yh7!cjETஙڙI !D"PbT?2 z}Xv/X!C03@C >3"09x8d &UV47-I9FAoPł3s RgjFr Q;p;?/Q 䢪hƴR'R-!&{gs20>l2׬4_%CdUUf-j~8> UDa6`CY%sD\s`rMjB0ޙmS?>In1m, j$3nTU8E[j8E5yV;T㓷цp8}~ R:w8]eR?4-j?t;ܐBVxc +VcJ~b%)[+)e:!yKZ`=$Ϋ}ٖd3nڻHBl !EʟX;:QGV0qhF p0Rrfrk]{qfdri!ss} `XI%2'Jy[?֙ѥrj.!\*zucI.,|h,cꓩ[8TK_/ 4G*UhEX EA@ήUK3P !tu'*Ɯ@VxFilY,{oÜzyҒEPBZpN;\Fz G׿/u-)F^҃|)z0hTj M|7<7z#id3Qte1Û[L,Kt*y>E:ifĿv-+azb]RB?)0+4K,jgD4!PЗ:Pǜ{y-7ʖL*"PkL;Ȼ\>x&ҵ3:}VZ(1C)$l6Wit4C7kmid0YVF[K+P̥[[/\?kK1Y=JDS"!Q1UQ9qd Dm7&}ϪN лڻqzve ͩ7ZvP.KH.N: 2|}:G27p;٨ŪqZ$Y8m=,Ho;(s"c 5ʪ|;BQ%.#NrZBK  Y0ammWtq)lŀ~86 >V!iR5tKdZ? 66:">+!.|zSr٬9PVTyYf4NkȦ/r ۶Jۨwzk$R s3e|#1Ԗ=_AM|zVt=K]+ٙشO_mތY[k?'%4U[DDuV 3",XDHq&ͮB4Cx8JĚ#*$~}%.)EcÚMZi 4ȼGp4Sn>~v*[ qqҾY+J0zTHs/I 00#NUs+j>*##o6𠢇Eeװ>i5EY ;/ 1 0 l=XE =)}t} F _XN!  |7E:-=&nPonsz'9BǴ]qCXqdf},j=~J\HP?MSB\pb4n=yȊ)EK(QNcMrs?>?.$A/ #Ӧu*hДXq*`ԨXsB@{Si={J[QU/>/{=BL @\Fzerfc0{ n'ήN)'6L֪~dr(i@TpAtA#pB +B 3pC;CCqDK4DSTqE[tEcqFkFsqG{G rH"4H$TrI&tI(rJ*J,rK.K0sL24L4TsM6tM8sN/Y0qI>=!K` xLRSyg ]QyD}BT>_sQi˴&'TQDF/}4Y_mT+bUW>m]z|%{!TQLtS:xa'V9vIєk+ڔq}Z'pS6%hsiM7hץv](߅20x^ jf_=u]vX^b"SYa"%au#k'ޗ⁧tc &Yfx(_ 65օ%J1m){} YsN [oqߜx4e+TgW\g^3{^Akxf=9Uq'AWe|!!huNj)E# (l}"ۨƹ1P_kѾP\nvy77y`ETm%I7^; v' SB U@o^>ⱈjE+Hrн|bb8`0!Pmɋ..fk\Jo?Mk"|G8&`E40EbGhKQ#}uV+opËu/Ga\ 80<́;@TIL\*v|L#X(2<"$_O4{a'xdឦMpWԏK X'/[BKX+[j*4;)0R$Lw4c=OF4wi$]BJ b=,8Ix2}.IF+C".P+9Nf%ϊ'B-0\LB;2k ϠO^h73X^5 ";u P͟ 5KO"3MsɃeD#޶A!-|JOFJm 7qbÖA#eHꦿA0g 7й` bL /[sôeƗIZ5p `M(SHkNV\CKxRU/4%-6fEHبhYqa0 mXǮuHB&#E3>L6B:0;ڸ>ډfʹWVkZ\Uիw`ufGMzcR>I) pLM0h޹`CI_`ZVzEׇVqC grOTOhɞDTUO#pZEV oWWZe]\i{ 68e xP[y&ov,'܈Q9鼣@͒UtOvOfr}9s)ߐ;n'@Sόݐ5w\vy?TcݖRlmRp()j/VOsǽgcr]\Riǭ@ٙ4\6mv}%&)UZuSI«T8(sFjG@ew_<չ(hsϳ@+*-|+TNEaxކ+ T{j߁Nﰃުdϖ(k*ЂƋ̢j&R1|N vܦ Jjk3ՂM_: (pܫS\4/2 /Rv 'X7];g[:k ' @78Pz+,)l§1ِ;(zaa'~ ׯvJ\#ZqS5\ߊ^q֝#3Ӟ#qCl~_|qOh%S!66g}X[_J27UX"Է TX :oZ HL:J &H Z̠7z GH(L W0 gHF8̡w@ H"HL&:PH*&.fQ H2f @I2`8V> ďlԄ IBKȻh"%$ AV$\7vpdGIRr*WV򕨜!bC%.wy]O90y2**gXrX 5ZS &J|G8I Ӝ#YuS :bz'UYOwY&ǔL (P^%bSbǁ4S8&FSILbvX)-ARua;R_,*})KW*+0ѝ1/L24j2DŽ"H#7(pZUWCNj @ϼcMkU JӞj\ IoZ'A8~]c7Q*X\RTe DA,XQs =(.{9ґF)IKJ}iWSB \ ĶrXtҲ씷bYf19z>Vl%RXds~MIBU~l4'v۪GoidƋr)aLړQAz5׭$Wb%#`0P]I)bW(hubҖ&H/KzVa?`.P-kWZ}m2\Ԣ8FpQXZv6bG WFn5'@ _{fnWFh k j=s&Of-hUnٿ^9T Lot ̈́0ɮ!i1Iт慫Z8++6?1St"fkI\SV/dZ ahqR{lkEn{UjJ>;+@&2Uk;*57GԎﶹbm`{nnd{]Wy*{&ׯd".,,ф샏+xaڧiSnXf4UFĝVi78%xԲMLGۨĖid`۴ܘ/xfxݨbwJ;sȕC ʩ׍J8lջdݬcطuW[׋fg^\5wk;3GJSpX9WY`WpEyphqZ`yeyS b*z#iq$H[z -؂)hrrcX[(s(LgkQT>kB|Bo4Ut'gQuf_WUfOeuчQ1v]}'cmgfvWnHUr8du4lt\\wC{~wkS~{whUiQaK>h xvRgii0 .i,q(8b"7bK2H.zz 8G7ɔ9`\DX6QjQQKGMͨP|hWҘ|QMnguv}a(^d}זb(V[}oOԎM4_t]]%]̨UIVwބE(UgXw[w%EYFZ%e\6a4wiaSb%'VS(i+őWZR$"j(r1蒷DY( Y`Db4|&VToDGr$Jx7VleՎc&؍hc}\VH}ߗVWmqNq|~eGUvx7Jg~wEK=TT<) 9YK嘼TiiZ!iq%#)XrE[+w2(RQ\ YwwLbQHUVQ0siPfWx5}v^}}(v9ym[mFVF]OXn|%ud|d)1x| zXE˜J&x*È`tx؋ '"@Ky+*ji/iiqr)Z [0j)ǒ#vI+-Yw.4v>鋕u~W{eZMFtGtp`GHVdv_[!_fi}UNrjed]7^y橞\)ȞcivE}^l)P5MᩏYtvEG { zw͙YZTf\K4&Ey9IRXjQŢ/ji/ډ$gr 瑛WRABTћzzz\~i\Yڠ9@t9L'Qm4`Ud SWhvdee_`[}x )fG:jvOyP:֩ z|7xK5Y 9 h%%阷T{ L)Z6{RڳjiKЉ5zb w)LiC֒L>0xTZ7 XW љ6Gi;kڝW1JvWr+~ΗvRaH~ te)\ȅ,WV~+yfx(x{ E{|w'{wZg2;FZĺj7ډ2ڣXyWZip'8OȤ*@S”7IUfKWz )p [QuFRi)nJ[tzRN(p_~뷂k] 0ݶy_ꥨK*NҙrKک캱 *I&x'-P{)zڪ)4;;h!ú j A 6y#EkS ׬/b+&&kq!x{ՓQ¡;l۾M{YgPw_I討ev{;\XQ Uam HZ8O(`N^^bV<9뫹c̠k¬ʨfY予)6=, 4R LJܙ0iڳ|QİRŬqXz2隫F U{dA2xM>`x\$̹+f)_tot llOgt _[9leZ LT9J]WV1ʘnߛi*(\˒Uˊ˩jˏyR:8k4ÝBIL/ɛy'XrE]r'ڼ@ZY]k  Y=) xgǂw7odyg{<8Qq4nsx}l,el,~TU+NΤd9aʜ֔jl!+''ãY K;96Z{=ܫgM̙ KmCY %<؍۾ Gis V]hɘwJ)  ޕ^ +чkr{ Z| *\¦۵,ڧ­T}/)j˷Ċ ݫ=̛jG[aJ}$ Z6{ k~՘;;[*-ޥwϊ\\ ȏ$_ۍ>G8^ǑY XM’ niW14˪ƙ% N,M $Nr;y+j,U{,YL2Γm7>>MfN]O\]<׊1N~Q }V3n(~^n|dSaǰ%[:^|\( Ï)A)ǜ, &ǫQQB\rN&ܪgN^#|窞F7nf\ZN3OP^PŞ x]8}:ݧxt%# U (Mҩ Èiڢ͋6\jN2xQdaJ}K Az/갬N$L~>hLNȦ1S\@ȾHȮ}U^._>GO۞8}|$դWܛ%褝/dO_~i r_XQWip PŐXA<< Ti<%㹿m\?/+dqݍ^a1v-?+qBP8 Zp!,4~dcHJ Ň,>|p˅4?2UQTSVu5֏>CaXb2솶[7dlMm%oW% %Xbƍo{ͯ*O!lì[f=U! n ѢEp΅EmNY!-f4ƏFx|qrTPzD.\Lp"BohR,EH e\c [׎-)lG *:Ê@2djbn*'ʰ8K2:, 2VdTɫˎMl*=PS-bJ?(#kq<2ΤanaB2Hߌcv Il.9("+nKSH^`%H'[C>% ѥ*̱*5q*K&)Ն0*L/dE챿DB4W_+묅@4L,doצF{r?-Q"y3׆NԡRvN-͛ ĺ !zZS"} LBr>g%LBϥfb8)p,ѧ| F%)G&Y8Բ)-R9eWOEXwRƻHC4;gҙ]o^lFb(X˞Kh-ѥ?$qo\3#rY wJt!;$14wm̈́nKKu5{`>Y m'PzɩybzAt)]t},_ȪE#,Y8Aݓ}!nZ#BF@C Bk00ULZײoL,pXܐ]63Q8$9@uz~5kQBp1NRî` Ș֤8:q:Bű&ޱH0qG=Qx"Ŏ`:nuSkb2N5jB) Uzr`5=hڋ3Lh(#p 5I,H ⱯiS[,TJ~L1bJQ(;' ϱH& \`*0\qNڥho%: ~З6 5Kq >pYI6aL<ą3l&Vn!K]DvVG#Θwn.O,]N !cBR*RϢ TǽTEB]1Ec fSaiC dYa鍂 H\J>:okSʑ<ϖCŜs9BN9Ut_yDl>4 '4;/j M2JTbTU=QEjhBтkWӖA>mYC>9ֺMvw?ЊLŰx NnrlB[\ |kR1S`"YpkJK 0׺] ~NU}d;Ϝ lRSu a $Tx!:SìoLҔFAᔏM#dq!VDgdӦV#BcӪQE0TmG:lh AaeHʁD3K,-fYRWY,M\Ӳᵢ>OgTUz!r6I%9Uȭ1z%_iNU&z$nRC.ܜ <N_%tIדb:ŝ{mhF6 {leӳ.>#D !io"Mǂ<0O9f ?`򶼄FKH׫̌YT<6/ONrB$'ȣ.uhdwKO@gD`YLW4USnRQo&~ `u.`+k[CV qGL-d]`gbiBn3aAz><es^v_C9v72o%m9f=*W!܃8ZVW "@2PY"?{Vc'ygxs>^g$[l.!^/Yrܸ\MhLS _W1ưӧa,z}>qaZyuFg{y(c3$j/;Chُ/d93Ψ#@ |ʶ;c7!6ct6u@)<$kh|%@VzAzx;3p8!;D+;l$ gI*8KKj"[c KH1as I[ 0t@(ÙSZJ>N:K0ʠC`>昰X5:Ъ0+D J?D8^kc+A?s%/K,?8'zi ;+ʶlCqpö6z\'S᪐r<@#>zAtzK$HYA|7  摅7S@:@̪q,Bd"K8}"?DDvk/9”s*؜^i2\:+\B5M;06!%D:p@ȇH@> ?˺FD[sӾLDLL6v /v䟝ԣ6v'\E$ <@Y|X @7(ʫ7ſ0k E([F/{vSR#? :;qAdgpC0輺j}!D.bΜD6MMI%dG;llJbX̢lDBL˼`zмFV_Uea00V[EV(ai'LOm\LOzEd\cm),DײQ??]0D5]3%3>*06VeK^c:֛MCxCX2 Y#l2ޔ$?UߙA"EOmŬ\Oobq]]Z6O|0e[\ P1`\8\\6.˅cDJiiu.K^Sa~[\Up`\eeVåEaZ`K1be$eoUL%,_'FOFdvMV>ۉ0פ]4v]Mdv5X7j޲c P+i1&*ꐈf&[d׽F~.d3ShYWOH}.JfZ!veR;ZZm௥a>r˶-d4Hf\}e7[Fm"ֻm diaagۭN08Z$\FbDڨLF)g~vF5jhoIJ]\huh~3ۍ@vh8hm2@9p-] i^ ++ӉT^I)eFȔEUdٔaP͗J?e_b(&DΝ~Fm\ŦSjǝϦԯTe(kb \2w f>[efwkkpfjF\f Ac=V vqmOwck+\]֯J5ah L Nr|FppuT~v"oNеoŠmV݅]>ch ރ]ho2sw@ޅRA(fȉ-Ӕ.!XCU3d֝:JNoNY.1gS|^DԢvTWgs$ߥMWL|Z?^TYfkbP^^fka_kPdkhqkhvk^df Pfpi`n{Ǧ]xY!l|WZ$wͮgTR]!Aטr1]Mg݊/s`㏆H ^)^o(ޓ<0[ce|xOxCa?V]q+[iw\_}gu;Q,xtz)H!ۿzpH@hrR0'C:m1GcV 6vh [s`XXy;h*WE)EMEq4FRGytC$KMINTQǵPEEhNRa4TҔTm YP`eY^]c]dVZWa`6~ՄR^gB)*fv*FZt*FlմnѦKtEPZqesFf $ 1Gށ$߅GGw;xŷCeg}9_V;; k7w`*l! Ԋv("a]t! 8$I7 TP$cAxrYFH2ˬDLI+yWvlHAJ%QkOKJYb٘5lu Y_]Cc{!hZx6]-w`ucZ/K=Yc%ԩKjyjвn=]t9H&PZ 2cu9S.v.Y{|ݗ~D:[ &p>HaqiH": %j̡$Ћy?:Ng;&T5NECAH$"#U9WC04JVkBx5ItJAmO*Y 5l&úm0`!Rox[FSc)YcFMNffr8J(B0 ȍOzCdhF\q@H#3q:pDex  ]-m+=YW;Zw]ADA8 H@ *e 5ox+V$JZ[ 3@" dΜu#f ,M@IuѲFsW`RW,MsgBiNXDʝ2'?kn 0Ct͆q@׆"EKC5kz ]x#-e˝E5Sgx'ȩjABRDZ&6Qx3MJ{`&1#ReSS;.E]-r R>y%DӞ+"aD O1̓C܁0B+%:b~eV!F"C+,'I.Z$@쏘;j n #Πf '%&uf,rC+Θ96ʱWa;Ϊѓjo->┷\"~*Laz--h#X"[6Tl-/ eKFZ|)JcA$V/"Mh+ %7<5c'd3? P'"͑CR] x"qTAXlC*,:!F|QGnd[7 Uzʞf0u0+61ZH}[_ZŪE11 =guqg3dĚ~hEj68iX rDΉ@KlOme*rT^0-dX.A29e]ʅ  PHjE,@DxOeA)}ϊ=xR%sKwNTL6n 6[ec'2PNY#\$>U\y7x5>dT#𰷽_ X ={-Sr<Ƣ}XÈ30L5 A <,pYȘecQJ n gu·)bp{9+e%yS )wC.t&_(]d8ݡ6u1]E#p{DPz0xӾBiQ\Qٷн }hF_ {Kyly*̑Vz&Q%M>bd1~?v[bu]S;b?!v A+a*eO`2l?^똙-_g F&O>&:D-nqou!Vzg,WE_-@ِ!95hravMt]D%W_5lD^`AF  s,֓m͟mpM Wϡ JMMۘ1Q]QY]a@]ޜaس YH^ CDОˍY[]9+ҐaȆyL51h!ƕ\(֐T!$He}Q^ʡ\TmbD Q5E+%,ݡ@q]b-Zi] "RDL`ZN  X 2rmCy<#8Yc6bߐ7!B]C*b#= *) ";_ЈJ?DZ[Sܗ]SEdD\3pCQdEֳ֑}e Xǿq eݛ(&XQdD⹕^"U\/ҒmBXZ5I!d1AjdSUʜU%L5|%؜C|%#Db,Y-bD8( \A]zewɥC52f0?$#3x33~5&e#erT(# ΐf];BD]D9MIYZ%l&͙?%VAEXo>D5IB\ar^QbmXD0-?H'DaH',xddwnwnR)&͡+Ks,a+dUz@(V!.NxEq@$(DZCQ^S%"%%*U>)lJεb*BW~*?|X%f gڢCP]aH%frU\0c"Jc6.5D#E cYe"F8r(i%izf EDpCb"PWn*l"ᱱ\qH(nVDA6pGD rie2 "JP:DtZuBvtBX|$HJD*^xԕ RzBL| !*§a}H\NmFVD(%~A⃢ܯVJh)bϕ☶WXhD( :U֨11:D]#0 u+^f)^+2j^faj#3z56 tCm^::i-G2 }0-.q݉b n~(jӀi"aBWE^CiD'Ef!aLd"RbE$XtNg*,XAF&׽$LLgMC,j~4_6g!jnCxBQ$N'QF'l^f)zl:͙鈒%R+9Zk">-:~>Ĺ:.]6aaRfz3J# 6*e*>8:U%^ie0&l^&nvrF,YiĢh/~&zJfr⩝d/gs.Ovmcyv,*!H&*ED%v)'š;hKmvZ-gƜ~-y4_8q'xfq^,"眖"7C8X޶o&ȊĶf#%5.㰶k T⥥UCia.Eiai+.44r6:q3^#cf.5єM^:쎫ZZDhò&z:Bb,N+bH>v(2fa8WqPDH{L:Dv-%;-Bé(DXIz$](K{Ч'a\J$.GVfwlD۾m"C2r2r$lF[oC5"oZfʉBM žŖ"â% 01:D[:vM+߁76>~oDncfq001Z#i*sX 0-/nl )N3 g!#_SY0S2:͚o*vrf&UBJ>)orR0K^Cr,V Wg-u%$@N;DMKõ '#wێC76 vu*A6 28|ecIC696+G5C45B#~=SgKD% Z812+ 4;S1n 4c76C)AnCD攆c*^.yh37^r]6s{%edc{9G;ĥ3r5D'xwDw7P/8|GD}+R/G^u~DU=wK/X+'gru}xNSp dZ:[_H'SQ'§0a'6x[?`8έa'#6`xFzK&9Dy7@<` %fW.BGg'1j!j+* ſhnncA~A;DlCAwD^p7yWv=/wB1 pO?D:5{DDsT HxAy;2Z? '{2RcgG~dJ.-TW~jԞj'[mֳ;9;%GNuF8gx ^/>&6T㻸6G>{ПgD<6҇ЧtIS1q{+Py3911|{9gS!0|#A# B~a?|296vjCBp9\?? @m{o>4>k~k9sg ;D/7oi e:D`c:@8?ly"BÀ<|!5jQ;_l4ptdȐnDf4Biοе}ՠܟ >1Q)TǣS@>Xl *,|hϑci/_1L-@޴ M ?8@B˯5. 3.;fB$2 , ;( J -%㬈: /2*gr!+n覠R2@ jVZqI,N"ģ,lDR($jK!#6rKθzHů&˯;Y#5Ĉ3qjmÑfM6#ZTAOBk#P SQ8QY B 0DmA;Onu Q -Z-$!q) R2 ƪq'ލ \몴!71z1EI0RGnvI'ɋD:)  KjPUNR(MN ^0HϾw:P'΅ It4N:T65 gj_Q9ބ3:>A%hĺSCc9i{Xe+Bg[`/pʼn7O%-RLRJٌ .5NCԑfzDzנDEO}rh}]Eك܈Fk@-Ar &)IS1R B2aXJdPjyد#pEJ^Vćp"?\An16 Jh>gQ'pd`.^Jq;$HZؒ!,ZȗJӣP28.V J(_NB,LYPBN~-Ã3Bp}*= R"i%XXS&FpU.VXO|m 3C?aZMncim'_sU{L$HρpTPqB-??.vT"F4^e3(2Š6͍ i!5ңe{x @هh;` #BHCVK>bn KJ5IL RQ4)%*I)JJҗAŔeM*2C):Me] KQ蒯;q5NDaLf:P j?DR7Fv er \L&ND*uQiK5ۨ- i7س:r{FNAX} 1,Bpc=G ?3b\( eFA БX:U3 A /h0?I&L8bdMZ.Gh ,< 36RbT/-2G|&ReKdM,IMfWҕBC-_"Wdn,gӷle{7v!+ VuM ekodEcAY1[mJoz&ZJ˅NwB¶b=u|Ά`SPڸہnth*S'[ׅ" |C(v4=Z޼|cO&en ͟EHE_Zv GAHIyؿ4 =#LڋN:!eObvR(E|.9_S51je+ ׁ,xq-u|J#^ .D! Hő''98,bb&fفA|HQD7AMUV -4 ~^c zz7,f.>Y\.]酃tuhis)w+v>FCM֢*E.FE{s:y뤱r@J<&ȂW$~>NPJ%L~ˋJ6EH&H%+IIZHO@FzR*YȨ ~s6+#! idE/ M``Y:{okYf>8*?S*V3Ts5[=6̭~8-p~a>N;"Kq0  p&B 'N͡h%(4lRRJiZ08B fPf n$o- pLٖmކaB%!:zAbA'$ú ~$JjB*֭\L~ 0Lޖ-xmxOpALɤL ~ rʪoFnm>̖i&Ĉ2Hȋ9?QnežڃB  *eQ j&qҮ' *>ڣ6ORHTjm:D1ktbkjx*~ z ~mn$"x!,L '$) C|èphGjPyM dVXD&x <2$x1PR&aX% Xal0wr'o3',rjB0Q !>) ΖX8f悋# Kc {!= mu*:C)O`-E0HT>q*  *H*j-/ˍ6n%CJpAzw1 Ѱ y G'808 ("(F|!`O %(& o,xƤA;E OXs%Pس'˰ Q q>m0ך` >>h^:6*)D<r.TdHm=r1 iC/ꘫ= .p &E1?c&XFm4͈B@ 3Gst s22)A^04s3)Ds \g=o _Tնa+F*vada xICIWwu)W2*rBB2Aٲh+%,+Z7{щ9[.+MҨK9at+M(9uctu 3C1UvI,^A=𕇗)o nm`U I \m$ zǔ {3Ҵ :)d73*N77l{HhfC7Iħgv3Q}Y mQA2<2=< 8#5Ym7{1ܣ!z X#U֡X9SSm咳T]Rc*#:%P%R3 2kbf8HX|zv(()K@"WɰYӀ; ic */S/.;]?ۛv''yQ YnVo̗`+wUՙo4qyt=շc1x* zZr[ڡ#3 =+x[5zXw ϛ9ݼ3hfwaWxJ:.i;E!av}}!} } ?ڣ }6o5XVD"K[R;<'B'|Q :c* #{UgI j*Dܓֱѐ!_R4+?l%~ (y |`ߜ`ViZշ;kQ=A ]c![{t;= 8 Tz$xa!~!A ![wơ^W~O} N}Ow{w]a}+b y2%ʷK_< 2 %eU*&(t0z,!O%!pE:db۝ܚ-=&!|$ys|z`5޶)-oyx{_^3 ?cB<`G *0 xpٿen=rG7B( ɋILe̔,k_XӢMqE#4鸥D]m3Dw5k֬Z +0`Ȓuc*07֦܍<<(0ދ![҈@yUMp9Ȏ֔&r/QDl fZVߴ(_lAΝժ];67޸& &,_/כd欄/x[|Q.c^37Q} ? " b1J  ~!X``%`EFbd1z4@,8P!#_ĐA:2TBaBH 35X^ Tdnp‘JVDK+aoSTIV N[a%WlyfVW]V] mUӔ,A)$Fu/UӉP5 (@ٔf~*_S~fu\Mݖ[l6nr*mk)ǚ@hDzg .g^gpYvy[. 7\?Zꮁ VzQ V(K)`V:&ȡ-1#JZЌe 5A5qBW#2Fnt4eGUL3=)eQ5trur@nu/HgnV, *hIեrzy|1~%|`o~smX܏=֩QJdMDHjs&Wp*m*n_8nqž\5t 7hlvqKveǙ\^Y{ 4 ;b _+ K ܼ\j|d_OckA\ӘUExa$G,ai8SslzIhvRKZ2…%eY t65&gj"r|0lF[VxÿYF_&7Y\n"gFR+& A,Cpc@3Wk;-%mnzLeŻy֕)v1z Xh I*`Ԉv]/H!eE4hJ+I]&4{4\O"`X"==mmYI1阑#deLrBL#m.$$` 4!,J. HZO(D;eMd~HAۂYִ^)'Cns))T\yÚ.v1ʕM {8 mBWA;n O6Ba:$Ǎ(.sCۅv]ݹ'xλT IQ`Ei%{ڻd=^Ѕfz| kVjW%b'HSR+Jb\:f)˝Lb"k+xDզ4 PVk3EֵDY,EQbTFF{lc41!A&X8n)NP5cxbڦJ5qaEK65jV"rŨ&yml`k!Epz 1"HLS;qk?揿{)Jz ZP~'0fÑFQ K2U`_X֖5.8,0< .yeYyb"p>ʙb&$J{/tWNxݜh j0Ғ|(D0LXW@.i|j-Um""6 ]b6uN>=jVfxb 9Ɖsk\քQ%RT N(WִH: *P+nrT8 w7yns$ZC2aPqXȪY6!i4r$D<+b]cyF@Q_3Lo<]˰lENo"Th8eѨ}Nx8~MPXq;>vZ-9N0J"A["|WxBO)Nnxi~oA3hkfG ڜg"rbsz֜,iۣh_he QgtXLO e^r! ]SV)#h|'W#Se!x$=qW`9za6AWmK{ ڠ  M AS JKxCc&E OL _ DxfD;ccMmOb׶K4cQnlWn"lDw)a$2"x`qUdrA>!8L`Q"tj]~a`Mi54q'u7NN2O!EaD\*a2gru-' x-!Y@!AdsQt l?W4hiaJr]!bkBvxˠI! T 0 Wg{8533%`Ӱ  {V+c5 VJȐ'w"` xL!P ՀP /yucNQ$Ʌ`[ Єs8N8<<؄Kh9': r23\)*Wmd-h”%l-%v?FVXuuuHliWaW#w Xa$2"K @ U0"Jd uQ%3zЀQGU5AѓɅj 0X܉W1FDž[8CaVn 999 ɄCqڒH0Uٕ2)_YKyULIyr(pL ʞ}wzz`H"KπDuryx@$(w'RB%vplalFjJj a*utIKpaCz5}T9W.›S yqe&W:8 ÕAC5<(bSd~!6(^"jUE7AjXpW*qv8@sў \HY #D6B {tjLLwqlCP5'cp98 F rqZN8G-1Q|7)Ht[7 FdL~.0E}]60b;IjvV)"9ASz~ׇ.vb 4瘺Cɓ ٓ;<)Z2J)*,z 2Y@aa  ˊ!z;%{  yT In6pW8@@@Xk5lΫ>Xc3&JMmt\badQ@ kW|C6!C ggafF[:HRD 5Drfa:[~V_\e]U7bYSB:1#0atmV}h\x_q'Gl]8Ic :Z]Lê1 0Pfԏ EEg1)O&k+` {.>*×&(z! >'}@,xq2`i>ٻ' (qhn@ v]M^A:xQ~}f~Z:,LԢ]а5[C"iCܢ2!ZVT=zĂ؜MXه=ǎ7ڮJڞdW;=;n:04N=!2,z$Β-rprp@:NՓ 2 k PA'o@y ëZ2J bw*c^惐1cNlf>B@y0TAra [\,A9ͩd xxc/^q`<_zWW pC1%.Ex !ݴ~Q;,! b7GS$n:-DNoT*Gv.bq9~_W01ac0XG"Ѐ Vcq;1AGGI:]IX/F !.HE(h,!Orr#X_  +ڿh6@?U/V,/r"iBp\qϢOWf_'h0MI6 鿦!օߺuW'"xjuF4n vg g=Җ Vq5դ FL̪P"ȹ +V@~ř3әq?ד^|Ep_xDQH{۠m5` eQ:`6Jsݹn+}7/ɯBp=%+%>W'Er\ iX D$0 c$ܪB&\c!<\DCtÍI1E REs1gh䯠 iz?*HH1HAR$I2ɔ,'%R.: (ZtL3Î:AM0jL1\'|R*'!@jf!9Z g QHP<ʴh2 K1Ѡ'41HNLo4 **TBJ-T^IkTuf=-d9Qr)P f8^bn &"34Ѐp,1D3Hp+n5Xb65Vj[ ݊+H)+|X,| OA,dd+#RD&ʬx Xl6+͔4'O[LU-kЄFGll"ֶ':QE#3h3d֣i#Fq$'i'i?>+Dk\+WJٓ bNhnMA8w:_ulG1$b&L:UgPIDy|Mo{FwNb *>x 'YWS|{ *P?8?03e2DhJ@ +Ah9†pXAfSI !NoT>45)՞L;-HƳaGd^1 ҧ_8:(cʰD"ebW+ Bx ֯$f.k?ĕ dY2S&M*׍mB ?dص $dP"Eh1N&}dP2p@H8Dp锥 e)Z0NRl%&hۚB9 'h$;aIyډ3ɺɘɬ%ORSU?(yzIFjp'PZ%Rj~ RqBwu[< 2\&p4P?ŊIJLB7l~1 &5( scmj, nbbuP"5G}tZ 98 VqN˔HUNb <9)vAg>W1jj6ch쇃15l!Q( ccfAX(( 2jJR,88)A9ؠazP^p җ.aeF)Mk&ҟCwLHa6ҕ%:ٍtCDsĆN*{a`AXPjZ0 [m"˸f73 U,kA9q y!Ղl;8R9v` !cEcKWh#8 npRHd(9VgҴQfXx lҬj(J ~"wTWOrH#u" KFN̐u*t?9p\K706JN$bxe/8NH 3+yk"@JQ`(\ Qlf:QT4l(I(ĘT4:=Е{ Z lF`bG@s,`ؖmif7hFY(F,ᾑӖ>mQglF5Pg?5(cj٤6nJbff3ȶ-? N[^%6)^!Z(^K؂a AdP0/0A|II,{ja0!h1O ih( Bp3)('p)~J(L~2h$ۄ.,5Pi8Bc`@8;#:sC/ l=>3>D/l8LlLCDAh3>kvlDLI0,@MCA"x'634ɂ=0Z* =8!7tC""0=[B*l_NXDCXN(N`c8c3$yDc #E KX\hchKK@?F@C2$P' J'pXxFH$gXUUH؂ ؅X'$f!\(N"IrQsh-moP ?PF0dЋd ;((,>`ȸ$\- I,0Cuhuu\ iʷh QJ4ʩ\#)q:,' )LMB\Q ޠ:"1KX@\LMЍ!"!:/"lX\95ܺ:]>X: 8{If`s88PS7T4-ŸB@M tiXˠ MBϷ@u55 eL 0TKMKJ+,K^RR%)dN_N"t(5W51*X BCQEL2Õ}<Ӕj 2Ljx^/* {Z%Kek5W]t ;@cjoyx xIQ[x+p*`*݀H!e( HP*]Xm^-}UTtZlCi)ao'G@%/ZgHBP6;0>n5Q@ӎLeT܇SCHjQ0h#xӺ\hfFeT0yShoÀA=*B~)UˮTp o>LM)A)ucpTip௾ knٟP:{QQiŢ)hƆI(L 6@Y$":@Ma)]U^ rA`6\Y<8@EvcuC&~NnMv *;Ù=Gas؁X$EspU ʛ^0k[x#q"uL)8QN ž x[FPO ,a_mS[mFf`SmGZEi"? SF mQ\|ZUM9~mmHR5Iɬe>bi;o8|DOf>qnXHAq߷hcLvϐU(`k{iq rޥ\;jj01kAhiL}I߃=8KWH[vņ5^VK8 ؃n:WV>Oqhj &w|#chcOqhzu ƘF o]F@x'ifr@{WyE`6XXˋWg5B_c LW_ WxNvwt`;N`hO@dNITLlH[hZhgHrxg0[oYcN;&/0mq9%r4{iXBՊ5RF ߥFkT5Udl۶ߖ-qNRRe'lAo&͚57 9[QPWYH#T>5**`б-T_DTvP}BeЧ % ߺjB^vA5+ Wgf4i&Í')xNrB?QNVcǐ,jhlK63V55-hgl!ͅXI޴+6۳ߢس矗5bՑQXid@G3+#II{eϤNXas8HB-txa?0'x -nx !Yx!/U"\h XSH!R'xOd?L~4yO 3-) r&S* 6@8& KVIN&fy",?p&En:qf'. K nA 8rdXx /l D#1܁ zLK4.`ABE l#w yk\gyZ%N°B㐵f0nAI%uXЀL[$L1STq?W#C2RcAmؖpQYTS TQ3gUR@SPa VB*SO3}BUV7_E &UQXVY-g t *!0_q&h)Fq6%Q K3Ѫq&[fXM5؆(JȂEb-!@ZbTˉb֙Ij 6W~ (Y .`'8At5"g-VְS=r@3F5 bxy(^ E?vdxӑΔ%Hc&QPl'-}g.ky>Ёw 瀔  ݅Za6(-l msg:}CJAR4Π4jwyCx,UEF2,j ԅSҒ*'@`7P6Šȩw{ 9 ,m+0rMp}BO!HZ֜^=Hg%0 \MA24?PA ]Jq@xG P?lp Id-2V, -\Q̓p`fߟ܍w0(TwXMEtBnc/!fVB#:Ein DS#Dkhn[mA |?D.C؈ -!$>? 8.Ā  `$D~%dh.!]=H8hFw`yJaJT,OHb,Ȁ$G輁^ԟIH=%Ur ('HHGLGԓ I2^H+d1U; ȝ噒XtlAiDn\!~BLC!̈́2dѼZ!VdHٜ EXFģLS!L[-HD}AdFNJM'˸pFn?ll KIxU׸G ` T&e2TQEA(! :T1o@D,T SƅQWRYDEQpFiM-1FaT,DD!8/@ل"cLk`ʠ PP2`mш} T"ڍK``KJE (bB՝upu DIy8\IAUE~0Hsb%8Ȯ6C,z9$lz8ܞ8x< h [s8瞈Ù^~ilN B- ؓi!XiYͻ`ֿ BDD *?؂ "VKl%xDlOdHxKxKЄx G7]pSUEˏU(BhKH\2i( x]"U`QAoqe($X%_ueu! efT `@CT^a ^hLA{@oUjZh  d eL 8$C8qh͉{L` V?C9!XAZ8ې^c(@DԄgzzlFub]<(,%KyDZT0@4t=LՠXQYT윭!@UvnəlBuX7/y Dzp(BBC+B41޵OM's@pLaF`y{Uu 6HgH 虓quD(1㊸]N@[LN:*uSnL OSsS'>T)7$AՕQV4DŽ΁)ؖniYGLiȀoi'ߑ9Bqώ6ّgW("6!ap 296n݂UlCkmih(pϭV)j6ͼA HXXF[hwhwEZ'd Hѹ4 J3Is]7*C[z~wE>ڝ<Մc7zcr4gU,< x >߈\$dZOT,VspAMw:ZԔ M!LȈ(f6%IN}}ܙuy+7{]r{UkfP܁@Q``kP*cs@bmYY-TѣP)j\rV-~'s܄ʪ,7vc6i)7n2J2䟛MDv2pytrjQ!]Aq`m1\AJ|Ixo'%FZ! 6:a7:WMh2X6ɛ5(?`;f V6+(qMp?43 ̶; 7PwN4ʈwNbٗaMrf+qu\SOe47NG՜d_aى[ML$K)FDxIlNN^VGf)qCZukP1Wʵn?gɕJ(pJq (FETAMLAh[RBc"FLQnZo{(n藞ZUliWق/)d/"ڂ6 \T; *zJ7@5*  'PWʤDۭ(?҄۱ĊBk r-ZgϿHQŌ+VI>qa,BJ0C.CCkL4c4ϿTwx)Idj;F$<τBhpmN<z PA Lt9L1]S^v}RIf lF I) 91b,L0.C @c'Tf"5A{tw<鰮^G!S սP9JFA ?da#D,ⅱd$ Y̲eX1l CVsBU(juV (7ÚpxMЀI?dm@MSF ۰[(t$%G 'E pI52`Rɜ(f)8 G׻L'-ё/#,rjZrI R.DlE/JHnXL;Y4uAhعκ#2MX:Rޔ,R{O{6ChHӜ%yv2<2E=f dH6aSd"kZld#?O'SCP*4 *V.L&a(F(cѿVv0QpIa 1bF ~E\ਰL%Tg^Qv#$DBJij6"鹔 iXP8%qo.Q=*Cd'2Q^'e`_Q_0qQ?_eP'% "(Ȯw|E>Ab!F'aö´dx+v{4i mff]fi/K*-Du& =`f@G#9LTPɺ7*{,. y..O4q B`*G1#X`@f*#=h \F< T~7JN6 Xcq#bf3Q3^@*CSb6T.%{6q,R^ {JG> ; eNAZ"`7.p됌PCcXG@6fBs1&DNpwب66F#d07pO 2CK=BO !VzQ6Z'մ/0yq+@ɳ;@[ݳ55[5;5U\=ic5VsVs]\_S=c[>Ñ`a? |C@on^22M>!B;H+#,T4mľ|f#06z&T2bFg( fV8f9a8}EcnSJ@6 |4W=jHteP:e @kQr:X-kGc0L;_ Lճm X Ŕ##JTLo>gN%<%p$7Opqvxü8H$$|DČD4?i6ė&$]6v<Ve:-OHl Djwxh20l tɚuWco:dN0I6>|8c3>c;T *DR˾wP:35WC!~C wAQAx]w_.#agu^82_ݳ'~A~a~#x#5#ǓK7d6tTfeT4"MB_,d7'"n834%n[@*=PPKW55V@3bEDW.١::~8 5w#2w`{";mhM6  Q6v8ENRi~lx8xSp T?< $!JbD AhZH JXx጖/jn#LT=C~9֕~]SFENiϺJnG;M:䋏 $#I9,g%A(āNcb!R$B9wDfg:JR9*xD'>F6N'+]E jt0B1.iB,ɯV)#+1OhO,Oގ4iW;e3ڞEN#Ґ)I]/8)31 #|6 Cq:$^\i q1VպBFjy𪔘KqMPP`$?]p@'tdfk6pHdobjKp<;^1͠>\{B 2 `IW*q>m0FI˦rl)0ovAS!euW"L+&&FgU['s})pHqNz|#J >:dؓCt(:$EE9 J$ng*H٫$C!p[2G`f&(H㬂n;VOC1UVN 9QʼLDH(%bF7}B2I8.&:6=x]=c̐(LGɱZ3]? PȤAK(Ayc)"+C( A?32T0 6̜iL3kyfM6IB*'{PQJ P5Ei"/EP>[[mچ։~ߜW&/4$ktp`1wCq9oK8T %q6  ! [xB[d͆r$'h',| #z4?G7c#O{^|Ѐ9VœQB-qHI_(SE!82#/H 1}`H2v4r5zmpRn`-y~8 ni]4FpndJgIlDA(f)\T?bA qs?O>yXxwQ|i5ZD&HEP9ORlA2 SMC?C4KA enKP?BKTT+UPoV`Wiocd jB$HD t?jOlb@xM\:5nq7g q:,G$" +b OP0`iE7iQx)4%6gJo{_R*8fcئIn&fZO ڰ9L:iR:"8uE8.)UBJ+[QVߑ@t04 @,. 8UGx-&D  zC3k`8.ACp]WKlD0)AU)V_•1!PZA hwLcP1 b  &-CˆH͒%?%yG3V45d~-]NtsjG;a*F5 }~;gk(IX˖p߽ |rݡnF28$q4%'@[tD,y4g9OOh_Rw3$W p]O1=am  S$IK2T8Z[wR%Cy0Es`0gWb eO7r*]kMD5bN{ ЗYٗ|huTbNN* vw8#804!U%Cxti(#C#!P gc"?MlvOAw4L4rRJ\3rJ%`sjN tiHe!4舎pv|6jPBTK!W bm&U-lDR .UljU aA =&e[u 1Z7qD[cpkH#2s=@K+hV2.Ŗs (>i>%SJS wq<_Furi_r{TKu_g`UK_3t4]wN"fXׇ}ɘ|HuɇQ1}usuHOt !+va$"%xd'ץJgDMY"{\_S@e"-'-B!jۮ'i|V+B#*-rҞ*4BnB1dV]>JPmUYNd#Q#Q2sWe*-2Ns[0`fGp)1s'GϠeiyav%@[JcfSf I+wK_6XsRwB%+EKDV*ıbZl`sCJD+ N@KsXu"v"Y@uphp( NQ!~|uI pkPง"H /v:,ăH8JUZIVJdAk!H |pL1"fP[N.EGaMeҨ"`j0fpX`P*v҅Ȗ$LQ54v4/efXByW3&g W ВfӱS1j vYЗxY`ujuؘL9}w": ؎k$a7B.RQNFɍ: `%-w)=R" r%L/'."]>]AsꍢgI7r  ro+[E0^M_5Nrbb&jBK@"UגV ;BݮDg g`BDXIjkiPr+W.  04.* E Zф'MV &1\/M' )*[m:غuf ,X c SvDѧ26}%t!Z2[rS.8ݴUP5SNPZMPr\uY@iiv"-b,g )Y"SPBنp;=ْ)|28gQ(8a!4`.4DOA.:y#x#j*oO!nw>dq%5Fu)-r&ecgbVWEqCiVޞB=B,)ޞKVjl}VeV^@5VFR_+[ A H^("C+5b,Rd̿\ڟOj R Xn1((Ov Cxm TqQCJGEߘE0 X%lil4 qL[@JsK#3ƔaSc"|E4J|V82 ȢMjйu+[#5P{q]cܾ͋]ҿ5ݻЊc+֬@Oq䗒'o] 1K`֢E՛5w>uochRV98Vـ) tjTKNTip@?T;#ig _tkE *nT *lH[ʖ9`p$CtQ,ж.+ ɿB7d8a8"8 86JmrLycF"i,{6dPxIVa=jҲP96qX';Fp!; c?]?*QAC6:5snﺫ8`*k*9úFkUkp[ [9>N@,kS'ǯKpV4p lz)'Λl""8-5Ġ|!{y-Dx'T6. Mڔ=H!%z#y5?E3P`(RMtHу QA | T!UL A L H•0$Q b0&@c/y Cq-f 7qx<Ii|P*< ?/TDVu=jH!dav(a eL:S,$qP7Fx` Ol/sQր4p]) mtq;s/F0mpq:Aw`;k8s瀨qS:$(r^Hvp`;(m! ӵE[UHnt 1 Uac,cSpcB '<xK^΀ DymS򞗽ANֻ^Hd(;EK"i@K!Q\T I@$$9 C,/bWޒIn#Bd kִlDM‹aX8]$c4xT@W`ؤ d%+}K`"ڒ+tr DݪVE!1;hx%AU'A؂'12e7棭,N8;@T; <p )(۩/8210{3Gq<ڒ Xk=.BգQ;4hڝך* mI8dShG*~9+ @"gp4[# ^ hČI 8$˒I(#8F8qP/0-t@+e:)XANXi#ڀbJjHYh"Ph ` :AGڄ tA8S/Z@ҬAӒbʋ!9dRI-!yJD Ke \ٛ`¯%P9er2D> SrC8` i{+1;Љ`qb>KXͫK;p1n:R 8\pRD0++?`VdE)x2U;;2XL-Ӟ4S<_$3()3hD2cT4!<//2ɒ/)CIٓ(Sy;rIGzzR]X, 9#z@$P(xª??VVj,GMB\sؘpANmQ9YX䫩Q05X>r$@ qK; qjY,Dz.Hȡ X' o\A͊& 29؈ײ+,菿#ɒKQyԪ4Bdy:^-̶;Gst'8/OqFxPR]K>tI3cj][݋ ' LPĺ3;TDEXq(|Ή".-2,N4`3偞33bLi,B1cr>T;۔"U{+0t$ ҲS,|ӈ U:h88P$ϨQp$<H$²u 0 Y. >Hb& l!-IBE!5=cn lXqp7P= X[<$Ss8U "S#J(G-M9& 9! "k ,i`QaPճtSM`r'򚭋0T&#^m 06T 13jW"tF0S3T,,@j% (Äٱ Sӑ\W 0 p&){5FUlSENX3ƊƉFbE<1 b\XXC5LS+(M9g \Ah( j ڄc8TFzqE+}+ }hSFzQȞADڙ\YPQXTA 1[z * d=8$ MbES=+h](F!}-ӡ((b^|񧎠-Ȱ|\ @*Q#QגQ˻,jᢒ7֑/2 h-K-# PDex^25c@:ܤ CbD KϒN4䬻v($֒'{2V;,AIlm"? uW 3ji4B3w](Ej5x`e@0 hPXA Fn 1/r`tIZf I"ehzs 7!"y" +*{2+++A|MP bD8$ɏcjټL&A[/cz?dv]p3]cIiD3i{'dKs>V٥#Zf'P8b`T5d=ѫpD;Bّ2a XGp!"B$SJ#2mm P l?B PUc"#;\j "2HIH!3nëak:) yr4nQ!h%/6*$0!zzK 7D,LdG9A8x#ҳ" 9I$)1oszpe)[Y;r0i2/`|c3C%0YMLBv=OwJY%Á! &RV!ȷ-ըKjS5Db%lt0yM u8+BLJkԢ+ E }vrPdGǤ A$\Q X<ˤ?XT]7UqYRt| pdC`?`6TFpTW ]Hx`'&\`A ^<3 ʳ !ss81@(++׬m1ר]a@ͱXc29s2Ԋ LAG N`X# KԽ]*/< (3\Y(YIYT\ ^P DY-NY\T"/f/\0r`ɗCtdɥ\ e OO|QɜAYdBlK<ݎ`P_9_^́J=&%XCЦ%8ʵD^ `qխq^Y$ [QRdm]EA \\D`J(DAq6ǰ |LsTji`{djX Y]b<ƆqX\m,BxPSfxmvvehW:'8)??,!Ax3 &/(ج+CnaP]_FTG-S|`Xԙxnl2E{J LN; ݬ*s\SAa1Oaଌi@&6 iɣ<%)!ɨ(@EGb`tJgA\'vrD^G\"/JKNIԅgIxf]$Pޘ8@P@DI[AP 5UPP5@p󥢒`뱞ʞ- Rʨ\ EdI B]G`AA_Y@ED O_QRLIEϜD0A`2 z9ZU}T ]Ҍe}@GL$sr"4?nTݖ\!hu YNRsi',Jgdָ#""~ +}Ї:{Wpi- A~ݰOA IʳLe)1=¯ %h+i VyToo&= A(p*z4Krb4nTuk\`^'AlvtGMYiF5TVxb\HmYQ2"c+R݉p Ɋ̊tm@)ٞ ɖlz?T`PNCKCC C1G.EWxeTIN10ThD g@,nA{Q[Xe LM<*Aۆ-VWx|Vng)9$HxFe(H 4?VC]yy+"?A 1  -4Ӛ׽' n (==b?mYMB.=]P*ɤј!jص){  Z= oEC[^mb*&2\`V+¢\Z' /wv2^aOX"E\kGeTYDkEQ@ b ޽ʬȊKg.Ĩ)Ƣ/0LEYl ڨ,˹E2d蚮xKu˯e$G @tgKn+2lm@z*!A%LeӖ[V?)֦l*XSief:4ѤFftt$IjHtN͊H/DF$/aBpJ LDMQp0G_mEԢBA |%cS: OeɡٱqG0H֊sj ĤՓ_(4=VX!׆`ဩtD6/x3@?D D bHa,oL&:@p> l${vA8? E+nG+A흜P ԐDSH(+Ūz+6GIglA7+n޲QaLI+R:st<=w>iyo{"/+0ֳ+IIY~SBϥA%U ʲ %^GDM잰z,MEhִNDKQ Hf8ޢd6b ^x"ɔW0'emLb%Vy"v`GvTƮMA=m#b|c(9n`" ^.lj4jmm?"]2!A@Ao qWF rno[lԤ򶑼*'B k-6,-"dޔ,Ŗ p7n3o"J0:xk{OTDGVWT([7gm;T؀w~T>"?O.0$c6 gDJQ]0D2ɀpk/>: A|ʜzO÷NĈ簺Q-@M_$?0 0xVg8͏䏧 Bk7a*Y]{ќcuKbi"c ]ff=X I[u0 8 Sfƕ{S)K@im;T[>CrM"S2~\ l?ijY!m!Ц-g]~\:2Gdk ?q*5 Dd+–G6$l- 泹GEXQWHoGl=_G_n[7lR'eI;yAII=f(bF@OȀ #)@2EԜDI_C!GJYB!BhbJ4P_ L0`ȉ?'脟G`&E򯈌+UyNF]d%'N. ߊ+V4N\;O!Aj'NCY:12eǍ`٢f0ҁBa Ɩ-lsPU߽m0K+]gyy Fu[qoÿ86>{MiwCVeď_ п?CP ^^ $8 ̓ݮ Ɛ(BDPC9 J9:/ 0Ì R ( X%'(!Ҩ:!*!+'h)$I&\jH M%ȥ2;l)ȃ<A GEj ePfFJ(㊃ O 92e SȔV%6b /0+JxÊdlPH߽o>Lj {(^Cya ;nE4 G't >U]Q:U"LPQq0 Bܪ!F! @-3@jb,!  !w!D':H*_>l uhP/U-̑\ "Vle+"c\1[X"d917x̃`dlc蘬 3;#x(q|c!'m![`@/0jl-rлJאɀR )]Rv-o{AR7o~ \d07v8l$GޜLjF$4"k,JwZ9@.%vR2xIxSj|)(M Wcc:*_z 9d N&!`k2yd-_趟D %@1: FE'J/U7^fWEkF-8!ӛb%RrB9T9Ȥ/7EDŽ٥3 mmikwh$OJ^> GARz(^r?)͡`iG9Jen$HAG@QQ4: Q<5ӞJGRBԣZT2Tu@j*MQ\fw*'9rPu 7Z sT;FaԩoAAk\#c!iG;i戛x'<|74]h ?អ%.խ>uzh՚i57yH&XP~6ȇPj/-m*B R`]]n,w"MiW 5]u8ȡwlzW)-5Kul)eFob ?< e4gQ`z#NQN%@M!fyY-=!fSb o[QO=6A(!˪EQ$@Pի)HD")CE$4 T0g? x QHV"ێ,ö2ЃXæqBine"1Gg';t3V\zCglԫ^>w}CZ Mm{0:axH1NO`YhTkQ"RG_TBBQQ߸"D#nޏn(]'}7 G(* 1t.z )jg Jl x6ΠIpgxJPK46'60DB"MGzʤ!2Gn.OO}jO)eyGOE!<%!6U6 P!EL& +@^!'d'Lr'w2 j}`("2I2D^.e 20@,ɒ"kă6=Ҋ=FrOƼ"C֨<j;$E@f*4Gs+o/~/(*> -Pg&Ή -p:lvM^pX,\,Jf)h~!h\LP(BO4j `Ƭ@&"W^bb&tbPF B.eb.603h/bb;lH a1Ӫ!Bm(VIVZRnV!z)nroLȱ>RmdopP*Bƌ4&&lFl,Q1!S,)u~ PsstPJ#ML]1=P-'e(ACMNt /PeL"]z' xG)ΰ!A3pL6y6B''L#d$DO2(X{zx|\|ʧ!`Ng~|dP'b~ʠ?kPl 9 O+2WBYJ'e,DKN'kQFQLo+BdM2/":pdT#<.-l (mH6O)q uPS0sVn3Sz\ ↚J۬;KSDʱ-SpI8g4Mπu< q1m~HRL*>ns>3: nͨ`Dp% Z7xa6͏CO?9n 0nQfgvATIl /Nvt'0d%`1T@RaZdhC (N"JĤwJdR&oEM\"!J֢nQ0j@$qkCO!7S}n\{n:Xenv$nZ  8qHQ-RL<(GjQTQ-S t5k:n@eU70EcEFh!"l@A#]Əl HD r0}r}G'!]_u@wZٚ Va}IU{B~Wo{}L,PždwzPL, H$N@EX&vTLI^ 9Ȩ`Zưyl(((`O20^A. lvl"uF2X*VP4o*/z-!z%@[r@upStMۮ/-QZF(&=CH 4YLt} X9b:  *YnTS1;V79{)+wO6`@hrdED ^03b\@!K# ")l >rq, C;.e\v#݇ ]!ԅ [  4@{]!GB ꭛XD7Em^FxӔ#J}{ȑ_]JH {v)E+2 * j!*U\MϞU16lBPlPL3óO3LzO&J+56ـ`c!xE >}pV Zlz?t0pg؞o[zu8P7p_-v 923z<2C(hФ'pz6> 'O~FPneyG}eM7:[etތs Jރ "qpaC+gɲ*U7Șc`4MEN 7-R;-ՃPlUaYnhFFTafxR?u mPJ/(ATD"i_L2 N>?P9h U?\z5@QPaCfl$5D(JM(04<J0E JTR%{.$L:by EQwJTpUCt6XjYhɺWyU\>pWX|MdncZ.Ƭb+zEYcMflmovZlPiW۹ӸnY\@^ReymvcPqT:cL|mh})CsD~Fǁ>#*8=ɼRK$sx2{)!=mBUU"/ՈC9-$D4>(ePd7㏎ ;攓Ol4dbC}GF~F ESIpRFp O %jdH"$ITIUYטQFeT-ziw%&ejUP]{h6L`}gŊo%\@\J.\_9y>[]af~j۞Kh\UoYnu[W_q 7g(@w/9 $ pujp3>v1as ?&[PbbS?12Jgd3Mt" LK1c̘bj6F b4% '&-]TbN.E[P 'g?)(Gnрn†qz+ Zԃhvf(Q0bP$2'!AHCCAZrOD&"K"+$ψ?RwN#pfCk mTû!d+mQe<[.lY`d.W=|^sJVլ 3g XfX:"j.XeL0e;6 $tL`Y 8X!X§AC:Q"t (YD̓O_!9%T}$ࢧIOӧD~bFn"D4UybӥYuU,4GGjRƀ64ph͑ i]";G&ZNfR(iOzC27(I!B&ʉdG)H@Q$I4$PrK8Mm(R6F+Ua23'9"y̳UK. 0CZR ս2;.sPԧf3O;y-]?:Ё:T8l^MeQ'nG"s0ahڀ#ڐ G-Z95%U^L_՗-nH&5Lf 8>qS]E6uE\ʐ'6'U JcO1K8]1<R I;/٠L=X3"7tcMN(=8AN8? 7?kМDYς IHW҉TR˩TiNicFwʶ"Vb&|<)e=zD8\-(W.jvRlzV ^1x-A'z*bp_L1-ҕ?0{:”1B?#3s[˨MƲkUrի\Vp˻ [kZWO?>.DSk!S@2+V'I<linIF\MtF g*hU3<̈́*;FPh45W½ЌG%-ƒ"SvfUBc_ee@2u1z1g;]_*vqGYd1OLS.\ 츨/Ls9ڴ_}])yCmT[ݓQhN8}23;:7mXaN9 bM,'-kkx>a.;&8Z1Lc(wUbU  H?Ta,b8`&G3Fw U&%Jt's2P`T#Iugf]WVC8mFuEREch@'N2F`g`'8LHP9RhqQ6KR$OI82[xUfa*j;V?;t^%y,ʱy<2\<kMR0lrQz۴xCR@>gl]f=e0'A"Q^ &6ҁW'5/ǂ^a!*>2$C2) 3=x;1vG5L1< x;*30\x#/<XXZQC[UBL"L/-Z=!# Q~/~gdVEN :d8!sR#Gc5WcZHk% v g#k&L/I(Gc>jcM'q's[ZnOp!BZpH4QEUQ(;xO cqZbLM&& MGk7єpy${@RV>QmWAxh},}w\7dhkÅۤyy'iBbLb39$S8SAb2T*/? s#EQ4XTsTHQ&hR&V1"Uu22!#!$#AXHKXY&9YIXV! &}ibUUTEOyw>x4-f4y[!D<`@tM1vM5i֖M7MZocyzFhٖu9\M٥yD=^"OWymd٘0Vf:xoCjiIAbJQbN/.6O4:\!~<)j؂Z莨gImȉn]*;a;# 6p5F_6H r"qr]! Ih2YGc[Gxgjf8b84IS>XZ9vIv'6 yy$+x.jj4YqUxۂ0Z.:Ԛ<O[Z0آ<,Z@Azƕ8kGkRyMra``?zؖy\e<6z%\dc`Y-{~\ ^i mkE:h \˵ڄ`QC9uKH,"c4T;YrpoёY xcXᨪjE$4q0 qLG"l&#%8Qv5D54 LU'wHO8QjjּWd q3J/gXԑ*O*(1ș:Z]Vk۵rLZ?Zoaa-˲-+yxyhN@{m2{1{kweƋN;õU&Fz}]7 Xo?kQ]!  bXTQ!6x;[;F?8}ZxY +ҩiѷyxI xdDA"tz"H;BW$""SyT!`dfuvH抻4)C05BoRʻj>6SWMiuߺed<g~SKE8wAMZDSKI#5tl3eH4*Nlk(Msci-[pazؖ6e x!zW+(ApogZ}}qH/ܵ[;H|zȧkx Qo!_Gxré%=ɬj]Yř R4]xS d+Vt&%!B!R&~S4;XSv{hnȽ r0lauHrvkWK7r9Qa|{׈udˌxCdD!+GyR lHF|x4(B]MHriBN؇Qo*-Nz/˵0ekr\JX\/-H`I4OY+oCZa`6v?>o^ђ0ҷZ0)ꨜKA_e[o'<T,0DmZ4eGK}4|STLxY(IĄZ[˻'5 jȐDۺ IG UH6h 9|f!*dRH7y92UR% 6='R31e1s!?t@!UZAh{<=.̵HMj!ܲP `&`}}\۸/'lÍõ0l-v!l=˴~x\x][.W)Qxe{n%| %#Oʳ\O$@PVYy{3MhcjE;N;:2" mb8>Hz!P[A)Dn(B׋=584+Xεhayb>:+=HMwbM 0+۪\]L ^ü0-\AxP1Q/A{w,ѡPց|=N+{NTb[TDVb"˻HorrY8I.xѻЀ@nwZ'i?>8\hEr#({,R[E#r3yp0ɨ2e~-%EmA q8 _86P#CE@=5ȋQذ߿H|$9 D?- H20G15 X$:_M%P=mS+ F *(4蟎R #&1B pp Tz)(X&j,Xj*]?Њ6:#Һr (\Ʉʖ$je*,U1 ! 3rl^Ȃ,J{m\(Y}TVZwP+bBKͳX-v:%KBn爣`nӎ<ȣ9==L;S3 nj빿HqP*zH~ i^9 qpC8E$d# DpBAyPܢ(>J< *mǙ#& $Lοs L/9s GP"u"hN9s O[s= e( 9R[eY?JX")YYqjl)Β6aaXc .&RMd2>O(jiڲDeBbEK2JXD0iт0/|6>63+&cWXů4Ǫf 6Yv+  #Gl^2 w#6C@>dS&aCFm1* B2!*X-k"(цІ6 Mm01I Q,GѨFU#v5\ae+GTqcG`i.q[ɗR11cCi NW2I CQšT!$1<;]'g%IFrK˥#id"r2x?#"hBa+a>":xZ,KSX$#ɥ##h>bB.83lLczfj&;mm0??Uhh;-{{vs7~,8Pt "Xh0qghq0^/gxm8Q+ ȉI(ps:')   AlQ Z)ap P @&[k1 jY]2pYSB#2CC(ea 8"[ pmÿ1;`!B򰫾 AE;D`DY%J>VEʬLI ںَ$T#вD4/YVD[Lp^|Ʃ]۶sA>> PsƠD/iC+1;Ar/>0>Fh;ハyG|܀O |GN`fO5hfG|h ɜʜ0Z S,B€8hl[J^ѹ! ( -0A \ P] &URtqL,3 Y,5, s39C<.+A:;#`8ZĊIk=S 4iDQ'i8[X5V $UՖ `5BDV*>YjZZ< >]NU훣tN# a :%`f“n΀x?3039MA7b'ADĜH ɬFGQˤQEѐrM[I1+ўJٓ1~-p[LA$a1hᣀU_z^U\g$Vd iAb0N6QAjA!GyEy;@wuW{ǀ ?w?_}]CW^pH :Z9 ;1L==0(Iɓԋu,Z¨` :҉& (1AEY%UBjSAҳ 89B ōKZJ/u[< 3Eӎ 44D3T`Jӣi) r9;ᅆh*Ya4)6  190b3+? D=DCeh&QC${EȤS#V[тj+U+ZS;-j\=]KKd*a%lh-eP&" )e<F/>},WO|? Cfe}f6mf5#xfT`.Oh||Gg[*Z & hvufYjɓ((U j+anm1NBb}nn)  ZWٟkʤR]:)˧m6ӳ-#+A 0ѻϬ$)O5PDE"jJU QEK@ĭ\66Pb. p \-FQk,6`>kd%LNsۭ]`TX%X}!ԡYGq<O~{LxUCpH_fd f~WeTTRAfbM 8&w&`8FBA:" YZȉi)98\gA k_Z"P2³B)kK\hɈi+;DSڳ\=ܙAS5$ޢM =RqU ږ@O;Ҋ̯vcԂRqűj0k"rѩ+&+%!.O֍$sM^ ľ>5]5f36V!L1(0sTFm} pAq/Ent;t_&fTTeeRRfH^=W :eq؟0`]r?61H! ]9Cd,9v [,Xh_j¬[b?A[bł)>*;/19 qxAí1x=b5f @ m p0%JYB9͋C_:&`N'@ޥs_Z߇H?&uū??N݄7zuR ~0 VF o>9@~"Vl0@"-8A 1-d#/"cC0ATpS0Q!yQ$dBri?D0!4ݙ&kCȡ$DJZg񦚉@-k9C MD|)JTXҧfFL.mTI*1aƦNQI`kQB*S@;֚OQũVNF#\c-(Swq[l0.L[_XaVc=X`Pf!!l?UiVj/ZE@&!rSB-G\yau gwOŷqG^2G `?WuESW_u'RG2szRàEص0uhFXa9pg:xs600h7>MwC8FnT WzY%Xfʔ]O$>e@&"Ai}*A,CFjY8TA&b9(ln*J =HPqʒKZtRDQP-*5O6SPLZm$yDaZֺ 9(w@&l`K0c <GЌp[-RTw mcqՠCl99sӲAe8Sc蠌'̲l=ρ-i 7@ܙOT! &`45em1]o6!U,p%n## Av")QG)-qO$\r!ek[T k;wm0o{}D)A\n(ņUpWH c āq 1pY3ePш?HĨXeeT,$ ec0Oe0HBELt'K{84 ?DvE`y=[LNW-jq)##YmJ'X\1_֌W'?0ĆGB "R ә6Nd&}Ed0hRF Tt)ѾWb0'RO f1 3]=85l9WMlӫeצg"«MbH"ֵO=m~*u&2q3(ZޞWFݤ}IGn7]]5G"BbGr(Kb w84< Eb-l*Fj{-Fؗ`Bƥyrak%RC8~&D>9Ƞ U2 RT0}9g.U6Wfuj,S85C -(m]xAsl: MKӈG~,&9yw8ڑFFD(0Lr\L"@RhLlRR%[ym0 93#6?$?@@0?AtDX80B$X(D(<÷p\LTk@??Ѐ FAZD%\AqpfP d$Q{\ hAr UIJFYT䖙Y}Ǚ}(H"!B O]Η: ]H\YmᏎc9ڎHk ioxTN@饬i=洒J 8 bݖAx^c B֞[٩&)U")'(j|GWDBd"@,&O(d L*B&ȮhV/HnH>fHl2C(_I@P)0A,1DTO$^"CO(B6E]#HIi(L^([wO̶:oCh %^l+~: I|Y0F~Q̀͠Q)ViU d,QRYy nGT]쇮pRhҟ /.QUY,ߩlAjᛴm܈]R]JPAa6TL( $%Q-Ztե 0E !霂^!&#>b IblLDFD=fMl[PȈݱ cbFn# 1>PDN9-0@T..L@\D9OlPA$C(xK44C,3hC,l.8E OLT'0ӔI Do;nS{]aؕu 9ODYVEЅDždždTZ`垬Eie &|Ң0L*N3Dr͝eD2ȃ< 0;YVn<,bIlTᇖkIdTIWk Z" !ŵDME^ R0|4} 82֜ 4W,- "zuT-Mmoxv!֖  !hs,3M~}CbDTbA ]!mņ][*$rc]#ƑCD޵lfyל$ޭ&ehrC@/j\`@)8tIE`>C,z4C D-4C `LKA3ÆU+56l+F&zee}8!hzG1ruZwKRLLO*ΐGsooq3,PGXz 9L0T \ N ciI$RYh~|Lվن[FGJ֕K6)F8V?`2A|Fm֑97~ ndQ.аǫ@$]oEʪ/Ş@ c⟉80ဠB "8#hѨ$ÂZ4%ֿZNL)aI1ZiA`L9 62 -`@3DNȰ*>O'2@gNA}Na,YgBwf={ٹR!x-@p쨠@A *4VN4xGfN_pÁsѿZN>+n¿$ ,m?5a&\5X{ÿclʕ+USEI6sS䅣(0a" l@ 01 , ܏A?)8?0  .8ÐN dq, (ZVjmH PHP)B(C"(A3ȭ vK6t"p3:<þ"!?)t>uO"#XTFwd`" 4aRtO 2ӁӚ)S " 0T 8 ЁjEh%[c-:b`:!Xck 9z'x(1*[ͱ`M֤kܺ|*MT*֪6*ʄ:kL>m(v86K8 (8ַFp-7HdN:h묫H2ipNc`E"MNty+5$L 9 (Lhf`bddȈ&a2 h((tEq"2Ը+ g2Ў2Sa #eJ# <9lb )6#$PE''A VEHIIM*!@ (jK$Irk@9Б`-'>@CjfHBktBEH֞r@<:gV$-@=Є&ɩ"Sy$|=D`žd%I~G{F@0+I  ]uYACt=d >\a)P>ܸ&1OyLtBS )~T!DU3 kXm*Hu L =s`5c F# یSz )P9?x$(}9n1Giq|~j&[>?AKP?'\tZ68%U =^8d Eyzp$[5.[IH%Һ6PB!v]T~7>awN/zBmYݠ*PxW2?WbHg}Iv%PT#ICbZ|?4IG?DZ`yJQX a,%u ڑDn,9թM@-RnB R<6NÜ9qaUǺ1T s:$n2$s*0!D(K-R;@ ݙs<˹Ak'J[BZx >Oy H6qAcTeX  (p/f\+"Z m'IE`CA$7l ís&%vjPc{xD.I&}{P"s |(Rw:%#Rrm- =3xLU䗐D!Ne#>BxV/V0bj0졆%&th#4$@ t 8C.Cf ljN+k) @5}/)NӖ@~1٠#A7{o{@,| #[dg,zdv?.01ko2WK;Qq }V$z &$je#>|ŢnH!:` Req~Ve.' @ J(N,LJ K~f夢f n3SNZQln`RPw ڄ 1J(j̪0lLn /*c.`H2֌* /*Р@s0Rz#!5!- @L..R Q+j #j|GlvA@/2ll̏YKDnM@Ȧv@P*|`5 rjQlQ )@6Ka xo VA%~'8W%2ܼ x`y2aMoSn֠}<n%UD $QX"j3Y$`&0Cj&@b.Gܜe iߢ%@bƖ) AݤcPa+ _$ h$vFh 9OJ"byFP Nʐ(ʹ,3\Vn~b@JpN*I*ƅ* ! ^ .-!VkL_<0B.Mt Llv mi!>-tbORckЦ0vwlYmTj?5#qǷz[U)7 5U35kQ5U HgK 1,Tzn="&P4v p{X58PIB$pdox'ZZ-"G=' z'k=~b6cf"?z*m0J,5'b+\Q gj 8bBl",*r&b vDmnvm%lЦA>cH < BFKÅHfIk0jBxͦf6#>#b|(Bdc0"*f D2L(tͰF,mD $[/}ֲ6,126xw 1#wTI UJ)Z5#cu`r 5/wsi [7iu@HC$]CA?IQ:/:#iX)DUYWW/WB'%|$ $U=e}Z^"_Uq3```pdήYJSaI5~$-[RCKbHb?BQlBD$ib#TZB>+"S9M/`~@C0"%_^ 3*cSn(8ɦ;nɖLnG/#ci@#b1#7 f Jia i#x#OIMw`OM)>MR 5") @9Vt4R"/f3N^L2lWܬB2m%-x?rytmmx/핕WyyH$ČpB.k 'B 0 5.`0zgPc@Ҍ`Uq."sfr`u>5!> G?Ғˍ *EQ |>&.F_c4:㨨̬Ga#$#7H1~F_*(.jf(ʺcba! j62LI<|њߣN> `-m?DIc$3Q`AFAg3V(Jj nڭ'˳+A(H$Uȇ&>+niOsP3mkk/!v7B ׶m w3lLD5GL qL1%z;,kW>uc c]&L#t7piC`+|26=J{ i`2戆@ 0t~)b{E^U0R3+1q1@)/*a b2Jme12 1vvAcb@ ݛ3HO2 z7n.b0ޛ50&a12Jڼr⍏ڌӣ 6T6>/$2 ԬO>+SxkN#xqWa :)i\L<{"c)*"Mx02ӏt1cizխz攫3W:xn/dBfߚ~/=Ejo : 3.fq ;bg5B^1)e'@%#AjCSd5VY8&$:}#^Pɕ7/R=%[&dF@]èl }A? )]:4F=77c0,3]1@R01L Fkk膒r2X$# 9zA!? yP +@hOB:`0R8!ED-%c:g͛8!j܈_!%  !R3zDQ@X ㄯ_vݹ3=DP֦ "(_K.ӥXe߀6M$@_cĎKYĿʘ-WϠ=7h`A-˵K k @lbLSkCcUP '*/Ŏ!= ?@@|4#! QUpÙeO!QH:Rh[$! ܤ pA5wwp$P)P|@|DEӇ"ϋ@G&)|%\exp@&Pd )Yd|cD4MBe &|pQ j#B-? 5$CBEZpJ$Epcу `ڰVYeeFT=kNySFAEPqdKJqxŀPVKۺ$a.=dRYf]fmFBd?1VlZfRHdp&Gb gSQvL ڬ^5 ؠTHpRVaSV_e4oOĄ$)1@t1D%_tk% P L(&24Ih&y͋4IS 4)e/̌5iF8p@ AjA .N?:*#7 2.& p8d?C/% $HuX-OE?ÝZf7 t5F7 qCVlEIE4R|#2$Y 8v0!6p#@4p$bb p8ƇM-qϑse#[0QIL*w+$)El.[9lOҥIo`m Pa2&2:0JϜD~HC gT7_! L8I1+^UG+o|JT>pJ `LXzl=J++@ae2 &򖳜-&R˶-= a r M&۲ Srp hc PI^)*Qz$5TNiJ$9:gܩpI*F> 4E9ՋtL/pI`D'ʡj p=?vVNvH4 wJJ*"o|! &,3#,I s0SyhV;wz0ԝ10a Gzu+.s\/'2T>=v]ڪ>Wz;HC2Q3Cg׻vsݬC*Eo3L괁;g-S2<Eg8|y 卥L3t,#teRgjRX^e-FG)¡!r/]@uBD1lV.UJPl84Ljep@~cq-Ɉ)No 078sSbΟT!됹<7MQt' {Ǵe;YK󌱛'rasDSCd\w@W#PK ] H{VXpכlfk>S]& ;f 0ΧmpyMjqF j (RrH ~!RE2M5%`?4q_<#VQ=1b:?sO4!rqd"GVd&!8Gd*1I@SHVTtFg10[v&tNt3dUCF/Ue'/i%?1Qj5kRg$#DqLQ(JTf#\'42zVfJq >eM8aw;XuwxyH8}8\k3jR^~y6h#a8kQ\tlw$&K&ElT8NR8Ȧ7֥zVQ8|h|Nh{|m2eb s374v;~ A)<~('~'<Nc,cyXaX)8r;,pтVo1"@00gd?BQ2b(cAF-~!SAIAE%.h1*a"DFj>$@rBSE,t'IN7,tJF'exsbLiEX(koc\\?9#T4~&w$%2RP @ hfx7XAQ h r4ևK@C*\3m8>%8N#rlW:4=#L!l]k)t؆UH8T\6A8L7d|~礛 #Dԅb2{43}R^~L= ɳNE<MN (hoCFqqR$QaObqԓ@==Wc-!)5`T) @$I!IF>ĺB<%/B7T$PUŠL71Cb~0#}msLraVT8kezS64?r3t:TI K `XoHqѢh@ h臠3+XIX;in\'f%3Hj\^FZKMl4 v{ 47[l$zeՉ@m||[x8F%Y2$m+kUQu" g<9~6!(h[Ì<ݨ)q28x(URr;RA2e4!Pt Ԟ1٬-E@R4x t15aBUg,BEhUe~JD]7>7J=)Iƛ=ypzUP kGqJ Zy :Z kY}GɆYm仸6wwR7'{\hrP%e|A\>sXKk8|5|9֙#8ζ{O EdY Xg5WNdfW~6NҨ~ dC6 DU>A!)I?{CVeޚ1y3TT~K::'`sjR Txwrdi<˴3˻4rJv3;8!aחl&z͌77EKjg&j{͋ ֖|F+|H"thBS1 ,ϻW$\[;(:R#pn^mHIoG$:(7* Ǎs/mpXp{ܢE|T,Rz>R6.4P6yi DžQeӹ556!=ԞPKsWZeQe9X 09KQ \$]U#5ޯ6VxSX2J%Ffm]Y{3\IrW Xc$۲VTPV-#s2yƕ\Pkx8a͝7KX㳥Kz1T93½9<^MP -pP |i0W!,gN:l_ /BӪx-RR)-m% *tuOR8Rs!݃Am 27qs 7?g4C$.͊Yt,Z^(  P iL `9_'VUhQ8[esuE {u'i9ipJioxk;aTNX,s8~F4.V+0sz'&\oY m{ 9[|cw(YO;97ΣIHu99us9S.@ cijD&vPo3q2:.)(,EPFR P V1s#U#<'3¼v:WH ouۆt37\˔φ}YY!OO,=\hg}3-6N9:}8A%8I  A>RS'h=| ăI@  HZB-cLix>rĈC}XQ#J @ ~- C dI UlYkӮ%;WO/_‚[x4~̀?! `"f&&iBsf!R=뀪Wv Y#썐[ݶu !j~;ևAԖ;8 Q?8*#=?O`h:Hh$>#:n2}) 0 XJaA%"4!R$gр# i#Ш& <2 $j!H" JH|!FbH##)#\齎J)v·f:}'@<8roZPnjyH -fs !:Ka-RO=U2 g,lև,Õx} X_)V@kL4D4(bֶv:oyJ+ zs]wG-p'cuխJAX@XR`.v[@O: ֫@Rj:HAC|lЅ|Q"8"!1ѡj1+yK ȇ#AH(1#Bp0DŽLJ4,#2i Ӧ f5`@(|MW)"?,FJp61(u -N 0wN~USչ2NY_=`̲_}}ʞM dE63ڐ͗PSr`~s} ;M@VI\r瀱W-h6a?а\bKId9~Q; A Zh"`тV09Ar FN{" *FMj[d".DY#@GҾD2@gL1#lA)n~;?R Ȧq&j4@ .b$9r"ܜLRdnM㓔r`_RAj$I#F6l@fC TB穯NHJ)P };֭w+L&XC&2/=3 b>n/;%fXXR\:с Jp]h?l`~=s\)U)-K^IlQ0*@>&h|cRG#'O~N8d3hFDU; A'>E,qDKz9 j\<5hZ|1$/اIpcARC  rڢ7i5ۄpc ,ZTTlH\Y7=$vJϚ~ɞ$Tا)ev^6ihc.,>Ϻ/xWZꚱM&dЌ:KNۼtS!{\n:0ZSԼ&\ UI/겫j43`A%TE n.9"jަ~>!Y#XOVяR}*3Z肇!敒JREr)$udPuΥT)Y6k ,?PλYѼxoST>g5NXmc<;h}Y"N8Yd.F2tz ^"PcX{"Ĝ0iځ{!"#WfS - :"LD[h2?;8pqCҏF 'A)!9Zq =qPAI88ӠCo 81aCZ!7kIY=p  A"![/C IR:I ȹ᫈;>ɤ" ;CY֑,˪UҎCkP41vIҝZ%:|r\BJ3&[&oxC-#8,7t<ۺm<ڦpBAlA@Dk<=VZ4_% ȡj=:)I/N(L4; L ?#:q++"1QG29u"0{ ]pG~~"A))|Ј,4+4)hkӉ|✪ x OJ $|PUB˪'4@+*c .=v! x;\ڝ5|6J*5:,bKx<EXBܼ DJ0qh+5DhZ:"ԛ Ё3ɍQZ2+Ӈ E1ZVlL|hLpژB^u0ˆ*$H3ڛ2?ë"*¸KA TE/y[q!"7]pD\ 7~TƱ V8UU0$+)Z+I @MH+ tU ͋ Q *C(YB+Zh @)p-pZA8u]=ΐXJ͎%X *؇؏Վة+,gRA zq-ܟ꽋fc%ґX}5$8,%"_M_VX< KJY._{Ё RtDw|y;JS}R4S3USTv޽Cmkg"NxZtǢ (MF7BC#L+=!%a3d )K!2}b!BռU%ο.F\U]GRGL# Bm$6 (J/TAH$*-ى@R/da+(ΙL T t-{p ١,xh @eH]^z^930X[1h=*$_"Վ` ْ_&-XB}ҁ2oQҨ(e Q* 2SZ nL$xOA^Em6g1yZB)("'IO}ccF-ጟ; 9!V3?#a΅zbXe&.1NiMUəTH =!c*(900i-nk)F(.۔@FI(Ж($ 麞 ?I CW״ kmƘ¶rAA-%_vf`Fs 'FsfA,R}fr Kj j`D~`ݮ$ET:EUr}߃vf y8*KZUj 1z(?UT+è<9De H ȗ9j]@@o0#pbneWAt" 30[N[[U/ #s֬"x7&Ù["ui@58EH o7A۫9ˤ'𺟸]kkׁfW2%spSLXms-׋mхHz΃k&Wxh /-+>| Ͻy \xghT3 ՠr)07??|XaA嗂]PhvZA5CA (P)⋃h;v0@GAd)P?TEl1@JpST#@@A8SR0 L:  &QryxPtƑB^6G4B9tQ~l$ HQFD(JG`@ b**'g}=)FRU$8r<S@T[]vBVYQ")tXA$\^aTCDpA`fb"F&ً/.vW[ivVuVQo 6Tڹ &🪉nV` ەDn!gQsљt @eJ e\ 9UDx罷*W5לINEg)\VjbEa)ƖTQu+c]gpi6B9#8e t%C)QYeeA)10@cISAMs*niPRDPZjPA~hBO7-$F"nhAZ%JIB jC14T :lҊ+GFT^84UUlUVWHY*r-nJ) X䇦%yk.l%Eم,t8'I*s~SZj656uMFs3H#j&><@g ev霈A!b=0#xP&r!C{@~ӐmJBm5.T-|PMb~: .TC`u@0?pHcHG l\$ lHrRa9mRHv%-o 1 R\E*4E (Mi!'g%$#@%N]6|S2 T 0 ax\NWUW-DzeHmo\IZz4\O8v5tMKp p 6LCE0ZXEi Ҕ&z 5& ͜㜊^ʏtF? zx;)H kg\zl:o,q(󙀐C'c?)jE>VDWU?[ꈪ6e۹F5GzTRW$՘8T?xQrl'،Lɘc*Xax͔$WZInNC&;I9(* D":Ѫ"M]A)JR*ݟxa &a'Ux*6g,(-ʳ0c=kΩǴK0o` @C13K_X1hhW4ihAE0/f6 ZPt Ɗv21nD䦤!`KG yNL @N*g!V t ćKcRizZ7UnhjV47rъdht$ٔt$&)I@ 0"n,RU4S0&Od399r"9t'=Y¦HPH%}%82"˗ dK[2)!)UT$"G%N-R[Bf*^q8/QDSᓼviWvf9y?Cc49`*ay*ɇaPiKII * ]I}\XM)0^M]j2IATڑ۹R'EIUrfULv'BĦt Hx?N"L1RUv5e6:eCŕlc FSN%WFZ1TU$PA(3ޘGqT(2]MbFl"ܢ+Fƾ}uU FAoI]>H c}S'XGeg553k8*VݦW`:*YeWyUcJU?d(]AԅudgEX4iFI|GIDN %E]}NjjM߁BdJJle"aL K0hHVA<GTFTXrֱWjv塇6T8"i%Gl€ePeX^ _(S"xb"dH=(ohdN T91bJe ˇ D#-|fiff{yDMflΦUH~#mZio\#}?6*Е ӷ< ! CD$M0 JyvdbYA8@d{rhMf}Yj]509PI \%G!r(lSz(1ɋ Ӹk ^S.[Nb1cސh z@_E_;uW+̓CybIimFfil8! ՅJ] g"ǎecTU&| `GL8)8I#ȓX- D&ɘeQm @1Kg,#'m)Ř"љdAOYYZ-K +'䯞LaZVjaJZ K@ՄUCaT膆9uQīnY9.~h)F+`8%ص<:^B쐞b@ۼiida|n=1j,Faja0Xt<fwXgL,8Dоf9,`>4.qM^u=H>j>J_\s~Hُm]uZY-m 1y.#)d4&\I kUj&hxVRkJ%N 1j_nJ%_+++im-;^n lX,l@_Foo2%I-e_m+ol> YKl H6r2yKAp 86іG349` \uʱ8eFXh0e)*KH&"S<';1]]gA8D2ی@ZE@ݺID"#)6$)jRBqNavZ`j\A/ZQS1: rA94fqC%LtLOL3Vbka`b%%æUH&Ku^E]~r]ƐbU]xy-Ü1u+5ʚ~x _yGqQ!ՎYт0)'`4?`C5X35g 6?QW>q(?:pC3ԥ=2&KBu$B$R,ƻ)9"2Uf\ε+drv'^ψL,jLl{G-.,4DzXTXsbUU|l8'ݎvH:W³m۪nsǭjmhħ7#tIAa)Fa@wuwF6+.Eta4ě%`W8KSH7R@NnrzCd"+OzP2!+2rbW(U2[#5>:Ior`0&X_5XS-#/8VTF.W L08|ijXyȦ P96_'_6ME7|YUiY\ f>*H$YnY2AkvtDٶ s?ϼ&r矿@wE; JDcEmorHkH᦯4GxWt^cp^@og:G`h=^nڪxgRW S>F=Lφ:e.ULQ,[)a`hhG+FZ%˶ Ŗ`5b-Ed~8! PMuҀXus).403i61|_6Eć}ASʧy< F;϶un9\S>W|Ew$j+@ϏGXhAy @`}$ɱ TP@Ɣy@8R  j蚫 8ZJ CJ'! Rh ?NpF`tQ fizD 3AK .6Ҩ. ہ4/IQx Ӳ,V L3JcLזnBL5PBMTU[m5Ђm@+I$.$z+lmہ{Ih OvŋWf<]=;79)7/3/68T r/pPd4B9Q& RH E 9I$e9GZ|nӡvQ!JM(hN ;z&4L ,R"S= ;BʇtnZйuȧARB<)jkJr ,0X5zʬ[؂BИmݳJ(/JKJf x=$N8mv\Gt%];a:ﴓNt9~-s'+bSER៊@C3O4LB?P!,!MfْtV#@G?kNȣh&D*C&e2S\VIkqRr59"ET.&IZ^6BMO}2T7iO[V)Q3R7',b\ riܟQ1L}_ؔ,Pt^(2W fX"1)v;E` _,׈Xnil%H(džTM5)E860I1jыbDB% Ty#, V'YN[CF&4"5Y &mSa}&bS 2bINlA tיN D% ZEYqO 7j?\M 8 Tp$E#ć]:ҋVv1oM2&vSo5 K=D{7))Mƺ5 ,)Ÿّ`1WR5cdMY"+WuiUA,QY$Bdr:A39@;i)#l-U_jL/5aNg͘~+`/҆#M ]22X\1oL5O {-0/<E@67. k5ĝ@,! LD1@,IlIG0p ' qd]:ayVMXx_:KTѫuzGBP(B5GyqTN$+KK &,#`'xj3 rlU X,"ݨ`Vw,̿s<%6c% 5jkLn H(WV6RG E{-C6|aÞdʼ>#p&EbXf=@MgAh0 t I|YFi e1 ;_hKP5RĞDjV\k<,6E=߫s{z{ [ӶiݹQ:6&N WI,zJwa|Jy74,C Z 4qIxU’1 ]d/-a+\,߉R3ݘ°(!Ag2؀`֗19gkL1ݬ~,F`~D>BADB"B։!mک&)eb(6i:KN FLglp*d+"n,#*"Nd"kfK-(k'&sBN*Pf CPH8oQb2f") *cr"g)s"@œtbU@,&"1\,*`“%`wnL0# 6f.6!ri`i`eoj=gG ?`'ȶ>&dhd<C,Be:D)!FIB-IIF\PRhdpM( jj'0n0.JנJxЍ`/>bM*(dq|Q,iBl^qj%jpU-B,*p6S%xo*ǧ8 2S T4ȞjQvv2C8#v ZLklINnzf҃_9܇h_#9p. `DK0!՞nih ҉i&M4DBd35eIcwcE\xTp. (hKn**mfB po$"nmN #e'&O gٲ+8epN &B%mR%1"<$墥LM腂Lzbޞ/oX<*0/UBsJ| 4" 6ZHZm?%`C=#~r'F.O pNE0 ӳ<0 FF`h`}j4/"1 hiB*1Iq!<"DQ&EfFF]$5S:8N|Hv"tNMPM ˌ/)FOm(9"|"dQQע*j:/mKb(v#(B,drMJ 1z?u<&S)<@`sFCe)@I哌4T%3LZuC8`ܣ/Zmdљ0EE뒮G0/ŵQLC1ͩB -EƜrK0D!mJY&"PiHFJ(G .Oa),M: O+bNj N?&}P)m" &BOaɂ  Ud"K ׊$q-&#qjXsrV7o?=(Ǩ&Y*O#scVF=,>x5eBBf#.4b/_Q.5-i`iGO[M6[2tt0u5DJb<^#DHoˁHCF^ C!TBI/s!JP35 I\pi"t^hK:mkІ8ȶ8dPJ'(K+ {Smtz*:L Q:K9q o0 dMTkz~{}ĊJ *hs.qVrQhoMx2U,Q@@BjW"Bl0?#2vZMl!NF7\E)+>&FϠoCn[eTECq\M`4;ԵA@&r:`%M&HOF,Ҝ!\)F{/GXvLpNF͘fs~1C<cלfcHI#M59wg= H(PMTЈP&~u`^qѵ!DdAsF/^\` 3[uq/2)A\тsN0sKP_!mIqK WfsW"t?59m 2 )"wy 1Guds -<- " p"dnd$y$7+ Z$Mugsau%ct2GUb}KUFP3Un|v/W/o,B8@C~b;bn9?j9&5sB1ȃs⚚yCw1i+MCdnx%N2DE1t9DY&3ӑB"{(;My#-Jnʭf9Sˤ{zР !S-459Nn&" 8!'2BolV:m2!F\0 = &SƘ 2' (cpFc EسMӖMm=ӺO+7"9rEP$#M\lwݱT:t8m ?֛Q~p;XY0}gVGF~ au EBYX4фMQfETW$ч"Iԑjp%M DSS(O4T<E5< )RDҔFIP%IT#֎<]C!Ud^ؔInSR?fFQ[xf\,bkmz`S]e%Y_t5׊\Jٟh]l&n:py wgaګIg˚i}Q)!wFY{-{hbdG b`"x_{ftF"9$#Nv@eHWGp)^J$JJJL˨eAc=N\CJtc7>qfWDRw^EK'ڹ'\\o%pN zuTh]C \c%ue}vf if6=Vmpxºk]MW]-knl#gigWgV2(Yn'LmTbNZjh(!e͑Z4$1G$E4#K3$]Hk=ݴK1$HKRJ]ΌpWo mKtI̯.`aF!r\R(XDHC 2sIe߉&4h+aG<rn tÛj5o^G7CS<^=W{V C<١Q\b݄̃E,49|T׭ש.1DK*R2Җ~ %q';r}8h8< b3O!%K[⁖%HDd6rb3a v48 dK%;2Ol~9b(@ov3`/k[s `(E n.̬:ө3$!(G2Qoիtul{[|~6tM7aj%5gY&ZwMҭg[ڪqJ<1+?4F%v)B/E )`wًDR4A*}IXf*P'3FRHTBRBS|JW^ NN+ʓ!9RBJѓfʈ&ե.p"85+HJW4MQ]3z׍o\'ڬ|&WފprDǫ"'iFZgz׽yCN?VͲ8\7V[aO~e4Nt#5Kֈ'hwHr@'LeT<)*jOB@<2 "פ&8WPi (4&382Jt,x]JL)˰ [` 6f S5ĨhGZb8jSeͩv!@ #+sMiqa68ڶ,k9<1 Pe9 h+g󈫶2#.)_2<o0Oאگq*׫J6/^,Q^Q2/JJ|TR7KϸR|w-5)x}\~)><'fND8BҔsp6H br0"cJ8yc+ =aCӘ)js}Ź1)ŔUpBo |錚|34 P[V>H?ֻl3q̌H劰Y 0vLd",)L,+'uX)L$a2ԂqIye~3BaNe7uOw G.q;d4#eFު+'-t!#t#Q'-E} 3DS**1Sp +J@VR^YIIknnG+H8fQ͎i䷒k,eΑ/S4/L 3ImU2CβfT6khݾy r,7ߑC$mIvEdBPbwI6-"--e2CQ'$WqfR))Ȃw@o "p`]ķs^,?&Jmqy?aM_`>)1W4V*#|_5GrE|k=YR[1}*e5'>a|)v2AL}aaw~uk#p2HET-q0u?d@.\wYNs7-b+,׶.Vm u!E5 QDF.ena"h(6|Z0;o}D{+}HUG~4&lq1S&(#_#/QJH{aGBCf uyW{r&rcce@gsp.?ǔKJ3)?\+66GeGX5ukYksbP+CbP,p9F xQ DPDEZmcw&x.awPbMɋ"Ba%`3`1#"*b'ϸGPSfLYBr2m_z"45Y 'jقG1(P(U fNzd'BB}tp]r?5y (/qAmR4A_%苁%AYf)&7tCN&ɖc2f-"Y*9k{Ʀs+|3щp5نmRtQAPXw(x葁Nv ߙO _%|q%؋V0+hAG6}"c3cyk d)VƷo,6RT" qq\(u}Xjv@`YTpPҠH@Wj2V{5(j=A1}%WzX!,X+X* +e+[7IlǖN<h*B9]cfW@dQ䦽2Ehn9-A[O`4eIQK:;c3RHcAd#zu Y4")UXш,"BG(")]fa*QI0z'(f|+ qy C:T#N 5%uK_46L7Bu6%tHtb7U9Ec29_WuʈeؔFuQD4vr7RVdZ-IF[cbdeè& Q~Z S4?{A`s)}qzhUx\'_06B)G}jfU("#$B*Pdq*c22I8HMS _4F"FBJU#Xj0046rz[zQiٳqBXWB[R?g[E*ج֛iG;u9 ؊I:bYV9AE[dPie$7U+{z4s.+K86џ}4G)+ @{K#j)H {Stb M4=**[q0iJ S1uhU; 1֭"&[EmL\Kzb7Zo979YY4:{u)IuE$d}wZ dw:QZxջ!! bVԼ"bcIj|0#j+|*Ra"TX":,v)RYLy'"jl$ HSLMWX )qDXiwd"Bf }n5}O0!\gLQh˷,BNwcC0롥 a*8Lf~=lRۑō1ExQۓ V<.FqݲP;;[a+x!B6Qg̿{b]%<{KEQJ'Kl8}k0ɜ )Gf`sR!Yzkcs,R+w.q/wUK\`V6F+8%*D'q9M9d&!4&bZ[{yNׂXrX̥>EbDz' w2FPruX[[F }o͋PR۞zygFfqzq2ȽAu\Pkbeu/m|ps&0k*&}t,aWo3Y{uWGHWuA!չljM88Ϧ+aq=a7ցb^Cx'ؖSŎE{͊'Y0,b/ E=HOB! }/j_¡OK*Mь}DC]wh y<;+R&7Ap`G^Lv~xUVr)\@*MgiXm՛a!& i,][':;k8 pp뤺d=:_٩}%~`|E9.a\Q2nDW +;.(2%Aot9,OK^tϼz6{0PaocV4mq4d? (<'HRUV$s|jL\\{+x0~Y7>v?ڼw@C]䁻PP:KeFy^9£ӘS2O{  '`GA*! N$СÃ60f|`)РyGK8PA.0LPTF2¤x߁$:e UX+ȰB8(J A&:Ck MQ7c-*h`?$L LS?dLf%0dnYvٱoǦmvؗ{N)m8;Hw^ʀRӕ˖ڻ[}˧/=zkΧO7 E7HuO7fm*%6NO'8383AȻȋٙ g>ɧyRfvf rV:@Zx@EXءylnA6oG* l~ԡnm(~)~no$'H5b" Y(]=rhmۦ6蜚^*{a]s˙^hQ@חOݓuTk ;7'5w='m_k{ͧf]<ĭNh d))"=]|r߸@|/EjyGL8ND_ ;#t1]Ӷm?7^pz(7Q-Fh= Es3}@>p ӫ팗{Lc%*sUhhC@눚xȹPr_b_b:xO>t$ 2yra sH;TQoX!VIrf\Sja!oӜO#-j4) pDc :|3+ 5XMmWa#>6A2t %Ds,y HfYG7ILqshM5(CM#Tw8mz#.\:mnQ'5 =`!Nʼn'*Kİm"[@mP8~/+y}GIR8$R5Qx 5Y:GMreNWD"yՈZX(HgIQ4O8E1^DM4K9H5%+xQUP=I& kNVeDGǭ]BHbZbFOhY=3 I"1ڷI7DډfmLL]UWU̳+ǖxธhra̩gGKD'$;0;C hKSӫsHnXzc֯o_urLQtIIZWdXǝT6:SS``F׆Vx^͐X}uZdbȁepc?фe齤jXm]uɇe۔fT)xPLkB^G%{> ؅^gvcnIiY[ߞuVi>#~UyXqPWSawT\ڍnع_A<)5ܦ}rgŭx̴ϓgшmCVZpVyDH.+U1(vo\SLp~٩ɒkd4%О­Jч\ܛryMΤuDf_ܳۍ]ȧlaxB3^TxgN7ځMbUq9&ͭ‰c[`NIf?HH4ePr_bWMS3ҘrՔT`Om8tW! U}Ey泳hMٟy?%Z`X?~hYFڻ뺙߄]lMMMݨfffVVVqqq27%XnZ2OzYx^~Lהzp #S 6 TTq:}*җ%TF5:_O{B=?:zMn*ly $z)*+yu T@O)Tx*,a* c_*yLa~`f:UOY;UR+iÆ+nZqMSZ4eOCF?;)?mT+P"#&S*bN0~씲,9w, yˉ7=2/\*;VtѮ;Y&,|>Tȧ+KJ+ɔs,XIaS&4'3GRA~xlT:nĥhG;zMorSa)U ф?)9Ed<'Jh=Bτ4(A OĒleBg KWu%mZn~zE,( 9ԐHO:xu8[0=Lm:)i UTa4ywJ%JeSYD$"RF!ʔPmWtT $TaVrUkByu}CѲ`O}*;v8Lǩ/@ 1GF-)I3+S֩I!~ Ty˭Sю{Z/[ס-jOUԵ)mJ)vA> 5~8Yؕ^,5T^ɶ@jS"Po*c))l ff`_YF0Q1CUTIhSԶK|e+5%..oʪ5,fLOP} p6/9_vO1Zܔ>605c:SXL)Pqg]^W 5q:?jE/͠lYiܷ ur@ `9e Z0 $w}BN֜OnMdd$79P)M $Bqx2!2Nb X`#Qr~p1(< l`;ʚ6)T\\θPP[r{BlܪwcC ]~ /ߋuYk\߻}3hGscugMw*㍬Li Ȥ@dvD,{gq9G Py5xrC&Grvwr(*w5vRvooGv_Naih8$ InQ|[F[5G],J̈||uSDu\u% u06IԂݷl}PACG^eGieGf7X_6suG7n wX臃wz^~Gd뵐jUjp!jdxq!Wd"牥y8>5Uw#ho>5txkhcc7-6oi,I3D` {P1uE{(GXUL]xuaaS5hlGOdfZcx`hxn4R+؊fT8sr(' gxG~IY~Y Gp^ p ׉rqMrp ؉|!ebr,yׇyGzfvikc,=7M1]Z%Pgw||E؝Yyʈi|_)\^/ЕVAJ{LajQPٔlldZ}ՂixV7~oWgG/k~xyD֐ $^FPMdQ)(Aw~,y )gisX`~ؓe}DfF:LB}8ɉcgSgDPAH͈WEE]I@pRqiԔt\%uiJU`3%wSJLzYʩik0q6fi"xwؘy(^yxŐRG&0Z(gi"k^UB@J|70o>Ԋə~brv`8XCVO`QyJ$ll*ćnZWɕt u:EH|aՕ( y:Kyƍ[T9xjIX꩞ ʩ)qivJo"z*G X &M(*.Zj# 1):wTVsr؎I3X=91_cdl^uJMlFHSYin[+kڸиp,)\Ʉyʕ[P]OUG[P)tUFTjoێۓh*˶?+k;c+*~;X܀HMz!ڙ셢* R^1(80gS-zÄ*)++;E|Q7nYmki~Rq]bZXA l3ީ=( ڱ^[%c+O\;ڟ8ڦM'o*M?;ݞj:mW zCv]?WMXMMN]M4N?~7Gqa?M0u[w̏O а/&7⚆:/[;xxKq ږ?. c DA.\=#MDc%M:| ʃ: ?DN'}P2P2pj0ҥGfUӨUB=AC]yպkP_~`Ar6nڶuݺA[^ =AzD {0fXOwO`=ɍ烚1O횔Pi}T쫴cf}Z,Uv8l"Nc1br`$Q!ZW(# s;EQ>.\ .Ғ\l؄V[F}[˰ ðP׵:QX2V+FL {!K#3w,Gkwl4̂+.8C2`ϖL,+KX^ :_ߩ%s:|f&5t[N$ZsB4PO&I,. BBtѕsBJNbV{fBŴ&2T V7کUUυZV 01 **,_EmlxшX4<+.m 7L [FeRhpUƄZwk`.j-W*7]]KUR9GúD8V.RL&);13Oh@)dOY#4O"Q^E3) >,^ 'R™Ld@q$iL=8Q0|u~[8ʡBjڭ8Di@44ce_Ku\X /6b:˘qA6x4$ЙBpЅX4O-2iF35L83n0 ѓ꒕%h` _X-rDh䉳ժD܂}YSRWś$$##"*1=3v쨼O 2iC_ˋ,0ct< L@ǵ!jJ}nA|DwEr b1m7}(9h{sLt:E$"Bgѡe,%9%DzUt=ONy:뇚dU͒p{i` .2esx&&Daj,xr4f5zU=+''0֒G !O^t|ULԍftN-#1!eNuo'3n9%YwQ6UM^=LފO-EC& N=JP>:ҮSGj PB`YOKk4T0=a8c ݭ! W?ku}]M{*,,)X#-# .fϲF;u} Pr j#E;FegsčSɃ cHCo23\Ț,z0MK%:U|%5>݊dŲE[Yyz3ײV6~Y$ pz>󟐛^u5a{" ^df+K'yء %SZ$Jz[883 v)ƣ"@x7J 1T b C).͓AĝaC 㹨937 8 y)y=ӤR)BL4ѩ-{([X(k9s"XZ44Y  }r63;K ?P+Y !_l+HܵD󺬻_:`o9BƱ3 t*3Ÿ3 >W|ż3|*@૯p/:;S(.3 bZtc:=طԘr)Rh>aB9="0;s'z77 ۓ۳BCz`4CD\DHRE@C;6<5C2EY+c }HZ$I> 8EӠ:5R[?DD!J55C!ĩ|+c3ŧ4=H  w*#rū̻YSzHa3DHF,t"3adtRaA&41˓K#n)$:.pBq vd"\@@C2$x|.)CMbDC/;@K\>zÃN=t=<8aѧ bȕGD&l?CJL&n+ĤLOD tKCJ|JC};wR Ű̪}-2@/${uKd/g<,$LG,FǤ()`͓L`GД(G{L}|Ք7tS/+=-Ƨ1;CA5CMެIHJKYH=lNd}NSN9t BDR&e+ϜD5I5H+ 4??O@r1ROMw |EZWN>\W}C} S3ͳtH1> PˮcֽDͽ˿lƽ$AVĔQ})r)()Әk mH< o ʔ)pM"G.@jW{ģG&_Ž`DK1܄U2Հ5#;Z;Zt53S>=;4Ŕd`DFȂlIEmɔHUoQޕ}ϗE,N B- e8ӓè|'P:H@PTZuß3lϕQ S\\HXu1/1#$ @̯=n$Au]ALk1[{Q# w4a ]Z(2L"T{ te|LMݍy3Fa^̪V45 8EɉX݊]ݥblXebDIc,??ɓ,Ԟj^ A _Y'Qʇ,(ZPX5Xe6,>!d>ܤ7  Rd6[6ۯEۉ(۲6L%Uۂ`8`[l982\GjG ev$ }$uceB6FqZ%SK\]"f⃐<'>>NXݨ^0XoaIݛDMhHtԢ 7EDLݺcbyFANd&TNEniHMbE\|N_ZmM4P6[Nf=VHt5,lf-[傶e[0[ `"9 ]~[=̮f3(BELs$B,ut5!xdG۫wHj$rNg`KXHZ-bZ&΂C@>$]WS(>SB])+Dc=cD]h&YvhhN^hl{ӔLd d|<#`ZiL^lvn/߬ ePdۃH!- W~e8ꂨejFYo][>^ֆ^ [۹ƵVaff{x vךcMRM! K]\Lq_oGnE^dHXg%.{N>?ݝ5B50mYjL|e^Av@fi-'SX]ԅwqb Ofl6oWD+kV@H־hʹegtHHr`e`odpkF ?p6mXVu`n` Z_G~k.p]uF8gpabOdbGeGbǽԩd=?C=Pns$.%ltW|^ԧFrF>I}gT^Th,]㦑jxFAe5ލGn5'Z,]6mF9op\vEXt䟰e䝿yBe5lv(.kLjP[v۴fp]ѓpJ RwTouVfVfu|e|u_7 MWciNe?.v1$W?)yFHgm]Rvݼs/ S8^w?2?'/ޝ%}JR]AHg0>v2lz6~Yҽ|lWLugCoυ|>3zC'z&VSN0oWFL>e[,h6JphǐFpE/ 2#Ht/ *S,(e9\^ C*LZ9@9G 5'ѣ28Ԭbj_X,WNNJ6lٲ˦"JyokpAY2dŽr,\lfQjYTV=&Xknww{;[xe'ȼ9\w8_>ށuKVVâUXjUk֣fk՚iRFSD@a@ORa dQ8# DF@@"$CϊPC 54D8X$8G: I)qQJR/qN:T(9mOFA5Oc9YwYNŷyhE^]AU`c^6^)J_et\6YZiizn&C5۝A`̆'p֩@@⹄2jdUfڮZs A>aSWˊlxw?lյnU~iՔZ%奂K5xPOTa9$e1ދC E(FDPD.F <$0_C4# 8r/{)uRIѥ?,IAaN2{Wgm랚֒޵md4_ Ԭ] l5f,uaJvbX%+g!eYAJ@T=Poo vTj~e jۂ=_Eֆ~wU-u^xl9_UkAg{f3kդSK_PW% dmKVI4yAQBp{,'! AHE>L_HDZ`l~!- $M)&%K`̶.SfZ!4k[TIEzH Z L95˃lVQ^M9< 82izp &f4k+(l zĺJUe q#8% ¨6%R̸W` +1^e\hӬs ky̎L;UwLw5wqjI"9hGpHE·H{'V@A!%<<^=< CB #Nz K$ 3%56#+6bV\r 4%M 2.A4rBkUl+XV` "199"HIHMTBP)E6'e},NiڧiN؎.ܳ.JTHzF7EiAk\7nt{ Z76lʋi2vay%j*p7z9-nUtIӳ˵S//8y4a9s8rZPS-UTiIv`Z2̿<&BiOb #E oz|!@(A=E9s̽Qd|/J&y$|>((|]]z 2V3G 66,hSr*{u:V59zrf14ҙD:S/9Ű{nȻ(B1T bMC4r^~YD);g`7NnVi;w<9 Wl)Oyo)_{Go$_ y @*|8fAp?E kB&#:cjl]j`2fkA0@@de]BCqh*+*r*)>'rYUguB@pp£Z%^AtRx*(ITd"TQNU "% D•U\ }zNVD^}AxKw+O(UQ%Hb'|a L%ZJSuj+FˍC2硦7"\bhV @٨l"&B b"c+a`l7Zdhr`g:*fZd9b#6hoHh ;ig.lAދ)i *j}ΠkZXV+PQ(NuV.Q*BLk(rm|0("yygyXEhՊ[}" m\$$8\P Qw.( (DQU2jNmBie+^q¹0',-m' j+DpkfflAL3+,iݑ)bJ&55bdfoV@\#ilzlŶږDfyqWZ,y >kk,֛4¢n *,mm7XjY-6ՆnZ-uNjDK꤂ .J׮pV /(H d|UaBpݭg L ?\"&jB.B,GALZmr1Ն1R[:Ҫ. f𹞮ek2p (mAoiB+.a,opo/)a $i7bb$if6(offf:a`fBV޸!K1櫍ڦ雚0/$ C him2''6<@8jCՊp֒ 0 *xbUڞgz^YZ2}ҏ@DOR(.%32.BFW,+jt:{-:Wjvo2+0dJd꺴쾱77*!60C@1Ө3'sr6uf:5T)T)A+h5B$Ɛ2in&dvdf5huHAŮr9Zuެ]uȲo 4`Fu")To2ۦ2'62#:b?qZ3etOqeosCsuA9Y9K[(|zzm g(@g5upW+ogvf5/.-JĶ{ۻAl~x㨽k>o"765{O1py̳7h7h>@GG`A©H12*/#* V/ 14-qCNL9hyX:T (5bFeՕSZVR בV qb7F>8 QFC+Wo^q5@Wt>lP1d1&gK=Z5I`Z[`VEۯ̴ƒU0I.N+)`Qo)XIǂnj(ե3NJh+v>+)h<}зbp .^ۄ:x Q +A?P4857Њc(n[mAl-Wl W;sԻ6Գ#+hb=

UԻ}A\oպ{N8;#W8V:OÎ>ڕ^t˯>V_u:KgUnoK۵'ؘOpA ϛ(1g OŞ{? /ؑO!Z(/< d"fw+T?&I(7 SA|bvLg:q& hTqV@i Ltf"${?∄416l&# 1S[RE ޻4HWQA8,2h5]d ء9β,3Q>+F3tYxCH;gcک+ BvCڑ\V5;CPr^Fx2Ko+ b ҄@PSU3:wahc#z!%IFP $X(l4HPXL KU˺$a̔3V|SL>cMpRh.iNSU`FfL%i'|ŠC/v()k lP#r{<,0(n\Ux3 XN0'xP Ӕ;xp9p CRܡ's&5 ;ނe7é$UԂ 0P)I:%XZxm4^R zu%_ ׇ[0\Xc{"YcnVH3LKR&8ٗ.'>I H$j%"Do4#gՌOŘ 1#B:᠘PQPE 1w%,Wu]ozjvn?,T8yioqf\Fhs tHa @EꅃC>V8|p7* 2U7HH4rF9*ͽ bU ^5xXB|ۻ$˷ 0"NFhk,A;920qYO"’ ^-AhAfa R[p6lgfA%/e[j;R)5̈́a=O,2BN6lu˯iwjT0#~bLƻWKz id׵r K/_:S;!x(9a86iBbupRs@Tuû꭮a11;R_(a-PÚ{ז,iWC^W!M+Hez }Ѕ/`*ϴd-J;U{2Z$UjI%lr)5;7y6U'TlV%JB tryYkZ9XRQT(L/ĽE'T=wP*dY{KZ헢.AЯ_j_[mozSm;릪_` \v~!:U`afM@m;Ԓ$F< 0*WE"y(Eޏ\Ʌ>-,"|jÏj: I@,s (F1ݜ#.iJP+f )gȤ'zF) "LnKډP͸:k n.ӄD$+aՏ՜.n0!bר 0~A<َd@䃦|ڀ,sj\ ܊J0,0AIJݦj ްQgoL> u-mo .ᴰ @1 />\ILO(tiP K `~D  $XЖK,x&)3'z gobbbJڬ+ F+NfL+f=l0l x1|rծ!u*‹?fro B$ps  V&hu0=^-vvҬ>l(>@ޖR^)s/f 2U6ܸ4 <1=~u2 ƒ%mÒLDq4FȤa(D2 />An/WXtE@ f  ,{.Ifi鴦Q& "&('3"ȩ4&66 ˸B/M 캠 M0Sդ] ""o$P$2 {$n3%ӳ ==H )'grH';g'CЪ J+#kqLQ11o oPSo C6SiQS/mY!"T-r/S`w- _IUK2>!Fw=2W T>2Ʋ&ӣDE_!t@u2]KTZuu+t^7BBo5E`@0D DUYE22%[2>__!D_g4 zW$2URUV$% $T BnVn#0W!!Sbl.J4J R1NeTiz1i-Τ&fM1nFN)v%iXd\7Ϭ.Kk/14ll5 5c3!wA"FmQGR"Q5lw2PpipVɘq]=v ~AXٓC>s3Y7XqDwڤ(O@tWYWZ *pwjQ"9 \BLZa+x b*i'}fWD DWw=7q{u`z`u(A<[u2ɮ_G1cT==v37E9.18JOL2Cܑ̖#5ߩ`FM &|ɛ1)A'd5iynJ @Q~hn QoJdm8~5uTnn{t..WaxCat~\x&ܘ+4Z;~+u>A;%,±\c~UW {Q+:d'!ϵY6iԄbfIgﬞ15'ݷABf*鄗˶U;O1mNdWd}>?͋Ou_W!0 }]CzZo_`-%!q=ј y"3M ȁNj%([wiQwރw魫1TO}O$ZӚ_ 3 `?!A 8T O>M^ __ b\A cٟ _2&[pյk 0ĉӣg.4ձ#*t8俓:Ya̘o"Di?4qJъ&_RiR)RJQ[ӦK:*GSȒM45u:\GP9JL#_tHpD* Fx㮌utqc?h9U ˒ Lf d<|[2ٳ_cs8/ӿnߎh۳qLzԧ[o1Hۻs w_뷗n/_!+CZ~9TDgŁ-L8ό̄2?l""͈"x".1JĢCبō鸣9S`R}C)9oH#D)fV&4EaC %I E$?1\6ÌNnS%TQDQTQTNS~zUXLN2OVK2TL1z9RLT)U#!KbQQcjbQ݊?#MA+j&l֚@z6\n[p9iQ=,9ǝ%Iy:|W&{WȨ7}eѐ522!jaoq8~1rq3ɂ $*W29sS5Iv;p>7 ۮ"ĥ]KdJ&tuکpSO=IҝBI:OrUDI=E(YvRI1ԢNY@&ZJ4kKz_85-&I⨺ETMfCoƙ@Xr(F6ﺬe;ܶ-ͤt37 /Y.5Ln~oz͇_)=29?ÂV,r{ak(!N"H6\;0%/AnRMdWЌD(/dgZ RuO[J(,v*D9,eK ^(Jma (l nps*X -SHMR] ࠧ6(ARHq\Eơ$̕$GDrqȮ+0P"LjpS:* 6}֩]8ٻj$I t)标^TGËW l[TAA;"¡|T$?(B~ۥQLfn@hG;af5HJD6EH'U40"{ HPhD#KC:%j?Mz5 eD1 NE6%Pa Ն=QbqиI'zD⤜RMă'f$q™8Np\*ib3(W%m2PhݬFqn+fױ[1Dĕ ()dsg"W5ԧ LY$@"ny"]'_rʄR X(*ЇTwH"9OrG7!2u K53ab4bA0)S+ɋgթJkDtHM e"*T @UX6)}rmTĖikJ:$Ro<&dMo F8Aح!U,$ma&*4LsE91ҍ ¬Š3)o .'J}FJqj/^гODxia0 |$$'"0#`*J&)-.g(o`bj莒ޑI܌zBƄ`_e-ktsT?Q[D%,57 : u4}vEnbj)McW8~0lr#qj6b\p)ׇb6QVf9T1JXvE1|j  N% 68c,NЍ.H; jq*drԻV /Laj/J I`5OuDomFon,VplkxK(W3MD=lW{7rEq?!L?V? AlC2gF$6Nݳ *>u7gDVW\qG#.[3?r rVт) ݨ5_H:I1XF@0 "bw'zLwU#JF a&0VS $auwQ#\ >2u -3$sJZ ńxxy?bƀʅHG3:s GG9z(^rgF]*+1Nw pЧrGuA5Op>dBeZWy2`a|`[gQ >qrŠTWEr10 Sϐ~~^R_ 'e+fhۤ^% xs-xy hLb.b-`v$ @l!""-XvW/lv'"f%K"/""h#҅"2V-" 12e :2 %EFh ۀA1W,mJb;u:aa%Hn ,AC:h:fE]v tdtp{ p[GZçq{C8$7Prs]z' *6tU9 ` HE Ff10JQxvCFaff -y Mi p# сAϠ XNV9?31"pP( ""  09# "-Px"〜*y IBl?X %؂ /9wrGa7c<,S.K!.SH" mdbm0jW8,X` @qsWoQoN7)tPPwZt|''D9]bg` Z}a 0^);ɉߗ Wca0Vp9 ׀pj!W9mԱ hWz M/πY ۀ?)ћ/Smu#"0 c ZJ:IțֹI ùyp Yz>y:٪ʪ "іwŖaI$SF2aw<'˃UQU4ae nr;nKԈXM1ogdM7wpՇM'qTqA&%+QF 4:˱-a3n}8`8 1V` .v 8a!9-6l ?Jd[ؓ nK+y!91:<` y (~J0~ bZLۛɨH9ɛiiM˨ivk}g3"mww/3V"?weW<w`v?ŊW*  qWìSwK$f<6^0^Rr8d)oP;dh Λ)uoRT`hEXy}_97KxVcw氲AJ ?0[!mYM{i "p!|"~ |ضiɪY@K:b[,|5;; vK15փ j nPS !-7(7$YxI##遄qŗ!}TAaKk0kW ;yU Lr1*)H!ڴ(1+̩~ a Y맦J2!"iKUs@/ós mм)17 iJ"?KVKl60YLn F(]2f.P5U AP.X 5 v0]ڥhc̦ۖ. 0ȿDxMɀ:s<Cfo@dK&_R3u&BD)͕ŀv;"F5.Q0'\ʭy}` m=2q L#$!7,!![ʶU+ΎJok Шڷ= , *\۶Zm }9Ӑ2`69U)kvP ! pE,p7`m0-me<8##DMsf- ҥQ sХ/ 8:b7Usp9/y?K0[ xpJ# Y;GR `Io58Npu\HvL]LTpsA`3!:[n ۧ}7n1~ݾZ}h?Cw6M ̶?͍ }0 bǰt[*õb[` . p%P} }je$7\Gs? R>02ΰ JК!-0I>2!-BB ]&`nxpxxPxx -L- ;WkbI Ͼlp5mx@מƓ 52( L)wy3 6E]tw㻠 f&A ;NElKLnB@Y84A.jvXA?-K `a;תw@>:K+"MMw١Ͷʷ~J eϪۄJz¦ېn駞^^P ~a1~ߐ`k^jt goڧәΕz M$[""肢 mΞؘl} V'L̾ƫX1TSH;8A^iOA JѥԨEs6%&!!g-BpC$ bTKXL`7TIⰘC+JHp`]HTI0L͊Y%jfGmϝ2YjeQCQ-Z.gXiLQVYy}NpcW[oU櫮2yګ,׷o'ps X?aL=xOȐ3ς<&i(v&رMIZĈF<3ǂ?g"H9\z]ܐ2ppwӝk'^3;^Wx̷p>2ye s _{%22P(Te5Ȝf)ETEF`gFLkvHLtOQ`J]%=tf.A&2]vQU ps=Yh9\hNG,ӑ3NeH 7 !@m:H(GG%NZiHl`Yrf'TO'Vȧ )$JNKʖM DlBT& ]#/\`i!E, , $ k"8=cGO %JǺ7lu,]04D41Mtӌ&3  o2u  ;HN$KNq{ݧaπ\fW~6 h?q{s@ Z|>86LA P sI^mJOhs-H98V"k⥚G\b%3NF[qS@An|rttF':A3:n{ a{=ط}o{Cy*qz/M'0KVxsZ1@(E  *A`b( c[eae ȋ1¨: j 9; ƀb qY&ӌ8 b-:{*C0DP4M+3 4A#%CC7$,șԛET#m̪DЛ7ĭ؆#qʄ)؉,-P ( 討ҟ1*jABx9Ɂ(IjjpIS S8 Axɘ,B?k}!C;2*\C&ҳAA=310*q22Z4LDDD#L ̽K7ؼK=죁4E3;0 1E!OPs5ET">*6 %ה>i>>YOHXYHԒY j]Fܾ[hk`us&hZxӯ?m{7ҿmpGÁ7#O8ƃ`.I:Z iY(TM?ےP6Д!)(D$R=5 7(>R \qB7x D*a1 (E@ѨD{s ,M+(` mq[B0(1 3.;Mh˶.4"tiBSȒ1@ p",(LL*m#,RX4?:=!K++ؼDTK5J<03`N[6sPH!O`WdE$]]^%3>dV614 ^M)F[ ́po/оnU7GOo{&*&v*'7bWOz)XG7pO0 Q *QhFbh)hXmb/bx؂NBe"//xQ8gO/HxW@9H0oM b46y/pO$OY[r-ﳅOؤt%Vj<sx[Z6`[W1,6hFPVFY^hڵER?C_(r(eC+8=ҹpq A;)a! s1 ,(!5-؂!])<9@D|6=r= />)Y;\ FM뮒]/#`4(vNWW  VXN>ZO%4bPAXNx30otFo=)^{*o9oVќ1E8M!=:=>Yce%dO ;QHҰ [I-7MhJ8e$qB6LY퐂6˴8ɧ< f_!=T30-0^Pش5dڅf[͔܏&A?Z 0Ht(.KJhxVIKQge0_?մUHҵe5686J_`+&Zc 1#B%ٴXW5j-W]qMZc=a1ޜZ4WA^7r{מ nV%v۷ztaxQb:v..6sYw5drN]&j؆]a+F1VN >o8`>`:(]dRcBEOn;V鲾Y[l6=ۥf,Ucf^x>6.+e)8n) .=8R\>"(hqq!6hXAZLE|Nɤ-X[4͐ 4HM+(M DuFD}UYgQfw.qiihgnv%o^Vށ2\=vpkiӎ.p偐fRN  e(5X<g"o*JHeghGK浂H#)o+D˼LG> =ޜEVL_Ggbι&};פ*Y#`A6t#PX6]:}k:[? |[^W}E`:!>۾u-%ɢg=)-/aKڑ%4,o?_NbtfYUcn}W^Εm.ozܿ5fGֶf  vgqH!jl?e`wuwO$Xwkw$Pwxvkoi /K8b :sv` W!αhN0`}ҢE=6ɏE<_̎ 鑦L[=qdcPC[`' 6!Vi*ɪVJ#v,δh՚VfbVg_4ݶm6 _;~ W\~fM3 =l`Kf${О4QXsKИ'|Pguȗ AU_ٲ׹vTZWmm6HU~QU4iB~I F\'f t[KQV @Bw_xb$DԈ~~'qOTHctV0A+<-(Fpv^=YEUl?Y?]Y1mxb$EF8bĊWBwsiđI[|w6|r#ct3O,c4M4Q"@ZO(%4* MExJ|?L#447AEt2]ţn?`,&4( n-3E'HE~4!IU$TR%PI ( q R|xE^s9_1IxEXXĴN3_YvkKRX eݹ~%&a#lQƯYs8&'lFimaj}2/GFIҨ]mъYCH!ſjqVE[x"a4^#t\fP[r#oc^Cu*l @E9kH-n{ 0ט*#%wyO7 '^ȉ'S; x''/e3DᲟzQ̔7_slrJm+V@k(µ-AB%DL8Ier<|2*Yh.LxEAgyZ.4pb* Cp7L!!h8K4J.'Yv3,<1x;vL6lOȎE)\SţԪHu| ĠsH8 +Re)O19UrSfMP|, ߺNP _`-(jg(߆ 83j)l lcV0jB?,`yA"Xw^"5\>@ mAgu8\G|UBј-k-hns14CD E[*Ls.$4I2Uf2E![<ʼn u즚F|gVU0Ȱ EG.Co`bCh ֢c KLg I<:P5~12aV[;Qb.$g-JR483R>C,)H ґ,s,Bzѹy"+O5(M%^H+Ӂ'%N@DEZ1+sHªVGQNpDzb':B}xn>+8rvM3 ެ<ĄvH˷ w%~мSb"P|q#xFѱU7n\64\`b `HQ.k$|v}%10pq^ v[+xslӤZ/z ux߁{&frP-wCA?-="T0Q1Pt̄EIlU`ֽ)S!S)uɒpK [];ѭ QIaT`%H? A68 oA$1XDv5 !PxIDIR094CyP\(\IlXeѰVxkE`$eH  2l 2K t\X9iq I ŝ(?䝏UEs-D* 4ὐ"IH$jX٘yT'Ё$Ep,H᎛QM=czp3b((ߢGEZGTq6bFAB:CDD5,NUL_?dFΩ RNw$B'ie r-̝]81$18I . ["DPL,KN U b`;aaYdGpKQ",AdI_RTS$;ZN Z`1 AX `QP,E@dJ^ .-HjZH~%QG8 DDJD؀bv'(ʌ45?\4AfbXp4nPbcE ɌE)A9J Е4_a6 YbRA_! )bUD\+Z2@[a6,QYLMߠm|@Uc6>IczE( 0'|E%<67BB l 0(aZ^Aj O>.Gq3ʙ5QZPE'hlt,(KQ $HW]I:A3&?4E0a3tE.e% MB!@TUR(Ee NVͤ%P} _SHVQddOZYRSTHEV@X  \ZAjqph z@yxj g΅t&k fۜ tpLLSͪ \lߔ҇Xف5PS) -HNʚT"' `ךY++LQ<0 I/4Q&Z AzgXĈ4Q/A83E (=ރM/@Oz̉R6I0 f$b:qYL+(ɓ&dE1J79~}$(] J 5QZa8OA} II=kȽ-Q%pLZ7!Y!eH\+S4t%IC~ww_umE.ƭ)dĹ6mΉ߿6dxF>8Y$:J+py)bqٲcY) !)q`lXvVY)aPC+Htx :?KcR,XIl 3B)4Ͱ`aQ\\m\ T-d^*&*T8˞m1yO+=Z侃;jbN9#8oJTk\̸ͭ+c¤ L0y)L IBPă2Ѥ"8Wjc qd - ]˭䐗{l\W1ƾl\,Th,CKwV_eL)WĢ,rsGaTL!U%1 'sK X߯ p\0(j0FF(&/bZQɶlrqh IOTBr &eBB +\dI0 ܬ^iV Q-&/Le(ֱ)hEՉ.L U)5U2DPȈEDB9$7 L (Oa%Op(BX2!.#S?ըvj# YOJV2ԅ *064F*LgYEek†,fe%b>0%!K^C~.&m ۄOtkJڅ `E,iil`WTDVw+݂&D&LXCz)l*aShg"4u{WAr=>\R$UB ?kR&I! )AUc@WՅ q^7gJsDU]u.M>t!F 7B>R}F%!aoimy:ѽoM\ S]/g "ڢ1汁 V74"-0ZAp`<VA#W&)$ANℌS\m=605(-zF5wa{5"I3KgP73nZjn2u! *9hdhz+ +4$tJ+i nhKQiQdI =a A3l+ ~>I '$q)ń(Ust2+Q6/pYt2es(24X(32S6243pHmS(ILB֠d‹zƼ(/zf.-(i a p@'6H)bAĭ.ǙĊǺ&6$~a|NSb Nqg(1>L T.$ڄMIS320'cs0sHT6tJGsR737MRxRX't%"tCSF LPEz5* F4N r$G3Dxrl~M(gCZUxȥ%z:p+r@ g"˾`*ѪQ"T9QMpY.A1YX8Ch26#@Q* kFPErFT.4!zg`5a )UF"lSpRj6Kj](Sk6Y'Yq5 5(vB'4mkVYnAH(3Yÿ)ȉ04?+ɠ*f)^ət :lQbQҭCI6PCȇ^MJ nWqRAe(PuY?EB(#1e0?xqVV/kiVUG"2qJ'ks/YkqJ ܌\vn 5\Cw43dnbQzn ' pʈiD'EDD V6MadC@p ֠;$0qTH#j$FkaQC3T/5 —-Ɖ#t! TrAI"B|)Xs ¬y:Z:(.ԚZ:획] xbj1 $7e6s MeCsn$^9A .!AR AXP8gnfq?[ [?,zC-W'M49%t<ә4ksq$+b95jLb&L@}Z![KfGqIPO`o/SkqLu'KFFziG`uZ:*p-|L}o*A$zDT(L"D2/#^XA{:୵dz)B-5޲`C@ p,WUǥnx)Sb%#Ͱ  \d H 8"AƉCwCǨ(?H IP Ό)12ˠ&HND̐BN-0M M#$I^Jg;3 Yj9" ?B`Ҧ[ x_ɟtJQ-HUV $CG r]q~˧jE[TqRU2=wgz&WDږ_s "X9$\yQfŊ``HL/L"?I5SMOpRo$!lTGař\4b78X[YyG^ ĴƼuYTT[ 1D)[J0*fM%fWpyW]Rγէ!.4qoLG+bq©VJ\4f?M'yw?g^]D]_} y\ 9,A@t  a6}x HxD>9f16a7:3:dHJ(&LFy5 )Gf*[pOΉA p*H#t/ vDp|~b*)-<q))֛Ja\"AU`EY ^(RV#aYaXJpCaELaLQġ b97f‰Q||E#0.1@E*ƑQ^ċ8Z0Ȫ^^~]ɢp!JB좝ݐ pGbzq\b) VZ:ʌbTu8 ^"B/hΒGx~F!1G֝F BPU(.X$"v<ciYö!|S>2 <.иap{Hdq 'o$@́7 `ԝP -riD)m`uZ#HCIB uL`j)amz+0=O6D¾9(Z4;ᏋF/ RT4/>Ec:-qTŎa%.0e2Pxlp@GR$XjXU hx/16!v( 1&M5G)B"XEf7*k))ȯJ#HrdJ& 6Jl.Q`N_ "2abZ}tEEL` P+E XpA:F~I vCiCZ+8k)}Jxo)-6b?.[yaf Z/|ٛ>a5@&nb !ȦlnFXT܅@ HE):F\tcMV%I,i?&PaR"4:%%HybRn]ZT`<ī U 7V(BEEd . 9SLumhbB(A䞋dRVx*Ʈ؅VUDXLfx Lb2@ba8'u{~!~*A!DzceyB\TCԲHaQ>:~ֈ; h% #[) -bٙ)KȒ-kd5 2vS"ImdP- 7^[~h&i8DL=_@!c ?@ki0!΁E`ORDy#F-Q( º* vU0  D;$nYiRgюrLTȕZt.g+qzHuZ!_ˢCTwaYx!Om󟪥mBIBY)3AW N bYmJNaW_a'TE sR? _nP]C*ٲ {ʬU0ܚf&Iw*/M%@Us!yH\rkP\[7_!yF&g~f3# f X* d46qTrr><_$'sq6$!` N9Q!`$R(^Z%S1 /ka5G-\H5~%Vl0-ҲA}agCE rg}61h6T  o\Dh20WV Xq$3Y"c|vC8FXz}6@6RlPv* ^X2 ,k.wrG0>!a5VGe)IP%rBK,yy 3-"SD8ZÒD%)RWhUired vo8*C%*p_ 6g3sWUXN RɃ!9r$! ' 5qy3rK`ZXhsU7s8s{ b`XeXttjHA/4WwuR.OU2o!- x`)s/L$Eb(x12XԓP?bw5$ZP";Q$i,EPA",,ՅfͲ 8,T^A*hrtGU^9mmPewnI#A2RW5|-F``8 }pjvxzC@3a=՗/k`#'aYW@}Qp1R{6RFq"+2  7Бii΅Ǧl׹Dzr1h 2822L!-)E)rr?ID`A 6 Fa%>6>q* *)\UAi@s ! cgnUn*r+zqzʭYTJTrtB)DIFo*Yb~;qb,kyi0 }{2" ~CbR = 6p/`^FDV/c&H'y\)s1 z}eGx~22Xe^GX%ZXP{8Vzš IxTN@-㬚1[f t d]|F60M lpgl rq{6uk|6i;LOILD ?d.z ?#^mSIѩ!VRUC,F h?sıя'A0/ItET/M!/&SU@ BԒf!;-^)Ļ)-Y[N07x?5FJ FbVvb1qAd ^qqX;(s*w`dLq6o#Li#rKp[Q7ytgm!""4.8'##<?1cV< 3.sT+!K򃥖r3ưߦF:C1kKSzKƎ>!!p6YzscszZCM`o~`Mqtr$7j}شvAICS9: BDHJ\(ʝ :@$n@c>M$p$EXȮ*P EB"WQ3JaHW,%_o -@WpL%7]1RhmU Ui1Stx9ѿxMl ^64Fȏ ?~as%*ň)J!5gKTƇ|r"~E-XXQ-IqU? h ^i#e,`l[S!גܦf<b1߿R[|P"KhZIB B&s?8\\ X38N]qr͝??>|]xzG D>B,!~Ńܾ<·>pq9Zp"d@0&  rȁ+$8f)f!2c5EijsJ+\gY !X|Q`QaW<90ђJ* -&3Aq/8c-$b*4I$B[͋$kc53S<""\͉vf N78qf17pϬXC(< Z /fpYCzJPkgpeJ&aecgNZ!oSӍ.!S8̆HHj!Dz!4n @bW8 Y-T4ݹӝi[ъyl~!S`3Vq-p!mabn[c n0R" %Jf-` W`U0 +&xaEф+a:0habظŘ̬Rh`ԲJP;Y.E)FQx#kp9*^a_HFA*Nr0I|+Vsγ mSJGmk۶e; xeozKTme֜<`@W0p31  MhҲ;'$3M0:>|3rџʩ&YIE:J2`IJ[CƮJ!OJXa"XF +a\1?p iwQV f?xxEXN`( PU^p:  O"6V HRPXֽb  2ʮ9dˣBd掇#kq`_ hE,ΐvaBSՊթ(\!H#v< R ] .iVƖ fxƫdNf1xb* p\LKMHjF07m}'抒l[s9=o]|Vk\Q.ɋݺء?ܜ(1FuCAXA7ܹP+TJ? 6(iB6R%;Q9 46O2aME󂼍 ]F>$Yi2V0nakS% 9fwfe%CqUE/r $'HC0"~ْdH6AaU6qHchyB8,[Dݤvkj+Z+5 hzs5\`Y)9FviZgL-ilA63'D"+07t#iز"  rFٷX؁ MjN0AN.ڤPs9*R$8j/[&%k 0 ȃ*|3砀z{3Fҟȉ&2\0L1i ˒0 >hPcc@ٞ q ! %H 1(0(;PD)hDc-70)"+sR5Q,` (Aś Zi`p#&8:,^^22Bn\d" +ʲ2 5;C#ILt7= 7@GG \>:)+r]c 0?f: `4+<78܃ 46s#++:,Z?02 :yX D+X'%(`2$0pʛxL$8ܚA0!8C8_ZZ <949|KpuT2' i(9CcL'9 AI$ؙ:LpcF9c9ID :(V`1AteXG06O+ Wr" Ɖ 1X !8 84 nc1pܤd*2[ԝ_S @ QقV؂ W@K=h@ -M;hUX2Ep،u( 1}Ux[QacJ8 H֒pZZssI cL[ *b$ș ɵ4|z#U vI!; (+BF)Hά Hb\L:(m 87H<SXF,Nڮ؅T0ˬ,!E=um$ݫX8H*'/T劥l s"4^iBjqjz nN陆LÄ+0@5cnO#kQ/ `v`Q<` DNiCC䅒p5Ă`* j@; JjP L<@>em9ENmJSeJ-F&B#]7< f<8kG棋jg8$cT!s~"( ;fjGOoi?0z3!*Y1Zp[pjA炶^ o_ pMe8 V* OT腞XDpX)*l`Az@?K\O0[gcsaYk"[ -㌞\J7Um9YGRrۍQɔ`&nQ?:Ѻɼ $}D{'6\mw3\$6@tCNg4k s"4ns!SZ33CwhPRmڦmlbheOV~kv}@e̸!DeN.@v~MR~,$ RT,/H]}VFE ?>N~ 6 [2 H)R8ieN(kHƆK2Mi_)8$=)g/^JyʼnWOSՌ0[l]n:lK/O6Iu]brReMvc+tAg4Szuڞ{ |En^}|ބ$Xg?tכ}_!bfj%1ƾ`BvMO~6XXbqE9@@ @ {Y?彙;)ȚYНiOg.ӧK JT|p.*80S=[39Eq3 h:)t!Cԥ э) ](G }Pc@o{ScrA,Ehv xMDS֔iNuꝪ\)P89`WB9>͔\=|\pcӘF`18 bHY/`04E_ߦ/ilq QX2b d.ʯB]~b ؆хm#h?Ͱ?YZf9ՅIF%^1I0⒗P< +1 l)m]d]HPԐ- AF؂ X`+gd?A܌-AA`%܇ &O >MoXR1| NIy=tW/avU۰ 7myG4C1q\\lxG34r .!vT{L$O x Ty؇Ja~؇@X9@CP~"FdTTH9I؍]IՁ"ŝyݽ]ܽ)r\,Rv}t418{8oИ݈quصlAӝX~ JLe9}܆kZ}D@<"%Gy lbHɝ gI?4@CJ9J l׸dG  罔,%xb C ,NAuebCP[`YK|E`i) Hr#57^Y QE_kOXYّ nLAVYdȟW\ E?|B RIĵ} oLfμ1Rm?HpW\)oDtWX`lA+öBSo6fi[ AE4URX Tnx%X '\e[vy*jy.yNeęM^֔!d0a$b 4A^lY-UrG3,@FeA "~(\FaK$W)dCݜC ">"Ǵm~ 'mbX)g~ԙ"]4ߡT e:1,Gx& ^%A")N \DXtKAd[|c=GjfDFh\h\TѤ#]E$k_(l|Nc5ڕ4$JFVdʺȊi)-CߕKF4>ݺ$V$lh)fUPB-dնpk lĹդI~mcAd4a]ʇW*!|P-HXMa**eyOHI[z%ágR*z5&fW~\В,eRwB_Ϋ1$A5p؜{تFg`^ ~&Q&eNzdf&t/ǏU^}ȵ܅ݷ~mT&noB$@OtJҼ"tmtǩ %tAA RU#m} Je_D xے cD`9 Yq[ҾSV4ȅ,CeRڦpJF}`D(K@-M|%_]̜`l,10uiF)QWO%B^LG(LUц`f@A |W\$VV8NwZ2ܢ2jKEc0\:FÝWAH‰W-5+gwI\2^qTMpC UXy(/PЛ=MJ4O8YӄVk揨 Y"ɒapƅpgH "= H01zX!wp t,Q+\AN%ǶWYVlOz_J#Jխ$`X YɬPP4 9DMDJ`lC34h_hB?|ad)GbвIM^FHeGUPeH`&uAZ#MiWĭ&Xk] (^D€Kz,HAFA|, /b99N0P'Cꣲ\DgE薲'7j.*YaA]uvRz*qL9zI4zsSfz ~.Bpw/sFGeIۅT)&Gəз};g+ʦ,,Mu]{Y.O橈@h0JDlL80M{0HޞEc{Ȳ(F̐0VF$VlqeUS ?p¾#0S)ݖ\48d9eic!hΘǚH"j(MmTRFjΡޠo(55Z 4Wyj`rB3H8݌p$"p6Gxu2feg6|vLIK_kjֶNyZEsu+iMF39Ia<NseNs}uW7ȱG4m;o{ev4ƞ[W"v؃]Au5ƾY=Fmx( mt,"l.6H.Nͬ밒hAn0GpYgi肶g˔LIIs )o>:0'x].D$0v bMqz!5I՝X@AW,Zc6\5WAMGS\Hӵ!9H}TGIIr ;>sJe% DGq\lmj誫|F<@S!XATߚ5 &e3̘8d)x@"JI+0AD'de, %J'>Uɓ¢ *\S)-X٦MZ:iE!Bv1e!f́ 6n2K‡7J +!Y$$iq_ΝM^%J0mbW q# _[?8(p_:<Ӕ, DM(Ps >Ǘ?[`[.h<ȇ &d8" &.'I8pi1/" \P2' 2F[hBFc!I(1(ӶJ< H:aYD8%E`E|L' R Gx!4< d94nͦ-$:D  ?YQ9Drh Zj u꡹@Gn!O@I!zγ-Lo!ZY`)1H}̬H4'&gv'^O*e{ǒ'kx SyqS7p3iea<\?E9Th!r"x+1 !r58F*@$#XЈnFR%Cc!aHe.q8 r f&lN|M $4lXC~p$7C(-f8|"$%WΨi˞/IȊtD@0]2!i ̈́ #=탲p(ClD#ښBMctR2BZnٛ}S7H.@%,iyK!08SRÏ$"u ph3( 0Ffb$;qGv##YsEN&D0ݮuIhf\aR=T%L'GNO;pt`4 k?*Ѐ TR/}p@@ ak_V؅Rj ISj"[zJ &F`Hrj"C2>L$BIWg6#WVXO>M(lgU@dĞ4W\b ZӺAJ\ңNBl T/pG3 f~uNg;Kǭ1 ?N+ 8ՏGёrq'Iy%"H9^cHXnԥTVFAQh+7 >t|T6HBTyOejr%yf4EoJEgbhj:TQ3cMyHn0l zŽI? Z'Os(ڞ5(` |\VZj:2Begd:^TN*j"K*d4 4D$KmUF_WǪ11)Zmz &6 MkFrhv8 ,dvVqT#Gs>Yn0St<qh3D;c{=?.%ykT3R A+]}7Y%wMF&z't-mOO ~ KW9>r N *3+-TkcDCfܙ3;GN 4i:q<ء`h (|H1wu[w9ggH9T9Xi8:)_8.?5| Ԍ$KTR$&*Oݱtv3VwXjd|>SՒ-cp}MF2|zǙyHkůu(V8E.r4ddc=vk*Cd+pu фCdk34Ժ ʳz݂<}\I>NʤΤP?Qk |櫔*q KSCS:$DJJD*rFۆ "s4DNtNF.aOI8x4P̟T4P P 0f{ d @ !k #2kap(@r#$8m"%YlbF¬TZ"~6ƑfqYC8lC8GGt.ьҊ# O:(xk2#=CeҨ!kxb>E1Vc&cZjF4@rϷ>Ec#Ba:Bf6G^~d;L[B;<Üp4BoFS9,k./mZ ?$0?Qp !#"%4+'Ap@rr )^?"$<\92SNbw"^/%N Kp⌲((  ɄO4 |Ƈ 2PJ!h:0&5"*!eB/jӒep#J©c6 ÑNciDφ"HǮpAGjdh3^3J̲0LVq43W1*㎲BZ`G$Gbk1Lin 1hlI<ó`)[cDد9Ȓ91+o:`($d*ٺ%dNTĝR9 cl 9>%K&:ɪ.K(eJ"v949D:9h9le.ʊ=1 iILC039Dү!Rr k?> _Oʇ)KA="CqF > #CB6EEMtSJb/@m"ANCc9 /lED,Fr&ND.D9G.XHcv\!_" t@|6N"4.*2 JrX =ETp˩zH R"2Zs.1Ytk7pif-"t:)mIG>lϋ535s37_n!5o[&F32JvM6&8 |-s8dx& ǯn š.DJZ`su=uoXܓq93@`ʢ:Avɀ,`xQ: ;dZZ2| \ akOQ* 'MۚȌC(@c!rR0B!O>r!_pN#`c@+Bmp$$p")B$qX0rfMnG;TC9Ec[6G+f+fWgtN "Ţ&Jr r@)ũ$zx% svfQC/l\t71(h:LQmDڰ8OpOp H v,L k^f4WOk>qk7rŭj-;5dd"3Vg嘯ך)SY(4a9\ʥe3.xۏzi"Fѐi<26;&B^8M(3';>>5B5^1!7Ǥ"O_m"(Pamcnf`/c8$2ACc?'UpLDzGvS9cMD7DOtbMVXybl.ǢNȾrb'nt pGhd#k,7SG`bx w-Ɓh"vȲ-%a7E<5CyJꙧTꤎ"ϧ%RAOC`#eAٝ)Ę1vScETdR<2[9vr)Ng Eȧ#r?<;ekÄBG^JKPI֩eڲH23B,??HltUpU=ot+W3?Z ]noq#E@WG7H(u4W, ӆ ݳi xv;9GyX ʕU;##mfX< &&'HFr \AN^K"!W!Ec{JDϩ9Q=! }o 4琛-(EXSBG$76DY)%@4APhw@ק Zq+mhC @Y 2sFJwHp xT +tmy'MS\ЍOy<|scyo:E tv }9Z &{ Aݳ"ڕ:ksbg3+UE^ uʲ`c_<"U6:(MpܵwCWc C-vSԆa W]/ ~A5aJ%Ǭ9pǘ u9H;JGZ;3ϪZh! dw8ӳS.p'-_U"ƣD!V#Sݝ]~qȁ2=  v"šD)8SNKtţF|߃Z>@b+dz5 Bu nܖ,bܹ+`Y&]0R"%)|׮&0A5WT\R?l*?gΒ lDE."SD :i_c͸1' 8_ą o||-pivšEy<y\waX DA!K ?dXt Ї5AAǢ %q OvN-v̈́A+XE UDAD= %$D^R sL(I?LnLjᇳD,t9`g.s o~4" r)A#AeDNZT!h4'DRM6SNGS^OV[/}#0!ERk(JZr0C2\/s\ӹcb1HdO Cj1 (E)fPE! ]dn a%$ Y (DNfnCq<472".z"(l0ƳB4JEم<έ@ yH.-r$F7Mg8)qsR08 49%j8YFHhDŐ\*xY3ɊTl˫eNjRs`x R”P%*TRM_7<|V/.LB0y[Y>ʞS?P9 *HE-:&ҥ d,30&->J %\eqP4ØLKC HID H&>SN{s`HfvLbe*E^$OKӛ)xNTFEO ͘d =eD)C5C ivǶ:q7 n%-RM(E! nu*dWiAueR"46t jzԥ$EtN>v5YxMr<YyU2+evxL(m[fF(5f@E+]{JXɫsn^)Wʘ [?]^2VwAPaAɔ4,(aCcÅ6#Tnjh "}P"3Ѐچ=0DY,4ם5B>`Zš(U1,.^Ժ`ȉs.sΉJŠFE%jYJ&#8'qMT䴻Ynȿ~ *yXERD}Ht(HVN 2զʃQK⥪d$I\cpJ+4 N,4sMJT|kRSy]5bϻĥ<;[Xlg6z]sW~X-N~RP6 +lCЩ1=+D3*  :~]D4&ޢRXuy.ri4ӜFE!V:%JI"R*6ĵڴK֞A(ѷS kDHNNPyBA@ٱ3a欪ٽ%hIVRt [k%]%x9a_Hs#}L;OɆc*OL]q6ڥnQ.Y"P pA2t |G Wſ!Eؤ؛N{[M g hGS@uI<)%e"(&Tt'w89Te8hWHgpJnt&T|EqrNGsZroO˲M /a6Mrp-pׂtc,vhڇ%ڲu\gbuf|!ЉuGA50qcX!qd_ӇA2dDJ2 q#bU"l%x$\GH^D4K4WwbcDQH-|R&@!uc8vrWۈ8%/'qe'Y(cJ qu.oς.b'gKdg*cL:@ʔib@(*Jxv↸LF8$}a'07ƕpx! 4ĕ ȉ1!C/C!Be~gTaG8"$bUII7RrU7u4j!c%#vCsYR%e,{Tq8T:PSu/c.DbݗKaQɵ+`*b*L@Ɇfi[qP%vFQp@l̔+ <] jG-F~BX$^U$$ :%M67+w'<5'XF4gI;!Z&Ia2DH8r`IW=$FY."$JV)AN-$H9ziv,2A6P!Rd/vSŝGagi9vSY[txP6)>u;9fwعlKyqD!'&q`Z((a)Ce  J5qȣZR>=sd1=YNB_wik5,0-&}+!GVGC_67D5zb+GWQ"#EGp֊KrZQ!37'ps;y;9\Ee8o 8-getl!u%pW?lѯ-))e{; L?ȜqLɩ)@y@qLi p^y r@@=Awo׆?P+xמ:P?A۸<4YFThf  " 1*X$,s>ZM0L1;]nyW3q;p18]2+5r9%^pi;أg"6u3Dqdmo4=uqdkB%yrjHX5ćz;g@*r8"oLEH,k]ӕrUDĮL+fviZhLIwɟfk ).lhkyk{ҹ/^ $i6H+<!j*v=:!7Llmy؉›CQb˶ٙiMAZ)N5ZN2>! U\;,[hY,oęzr*%+T,+۔(A F)2alCE3 rNI<V@s30E }x۸Ih+tcɌt&ozױY}=kY$! *ˮ1qN; ij d(pf) p fKcKЗvLtS^cƶ5[n+QKpeШA:q@Y<CqY|ź)ueyhwa-G>3q$L N45$)ewE|"|EX7;ٸ) ['uzZ2lطCs'gT&"5 RWWCݯr!M"ArG 5qaR(;`8d49VHqABض#lM)\//ܑ.=}Д]ek*;éP͝ىh[iԃ%i @-ҶyF!ӽ͆ŠbqbEk1ꡬ&j&t+=[^M1MDžy$? 6kf\~jyI>3H ^)fxUshሪerTD6U=7Ui?W p ʐ!&\T~Nξ L K3F4wskV!y%so'nS"0+%3Q m C"_P77n\%-9Kę BMGرMP8߂9<$Ie lPsP7S;S4f͝ "Ѐ,#PA꿘Ub`]DAخF:mTT0W6+7j̚t#XZaԪ 7 *YNlJ+ +CwZtJ,Ym͹+t鲮ړOܚfذwk.[2g9r#O CAſ4ߑ9>XGI/ e!% ? VЃ=À +B :p=:Db\) C#0cGſH$G쏾ҋ0= 0Cy(JC ft‰+2'Zŋ"2H6ā.DPB >Pji4\h"F$"lR2aI(vJ`t*S'Zj2ðJP2RΒUBu+VK&R+*"l&*&W*3悋-&Β60k N9sm$].xw(M[u372]n;X݁,R!FCxb%/FAr%X |O? i??"gB9w\t(B ;l1WrAAڃ1 Did A';cD'gKJ*[KphƘfL3+V:+@'O6 j!"B!"М /@\&f<:sФ+Sꧥ8=(P}򝧡iZ*ĐOu&pu0E)Yf"U]ih  lU$R3-l,7+7ӖU΂R+/q ^db _ N׿ye:J^0EyvJ2xbEBOB!uHbs[sÕmd>x<?>̎3`JTBZ-Q:W CFZ EBBT Mьdt(6j$l$32uiCR;BKEi%Q H8XāWPBs,J؄9 e8P &b˯.cɅ$4ޜ1Jp';U񖒪o* UKdSe'ۊ(JS2 1-Q ]e+ P4,h܅QGa"`HȒ0FVgXD(g aef|xW^2F*UEP;( Tb-bG2%d9Q GaGd $i+Q mINb4$XPӖSh҈Fq͍X#\P&@$3d WCho{! yKpȈ$%J{fI1YdHƝV nj `ǵ B4rhF"&;ԥ^ )|jd7IK/BẐn9`)DyҽeMӢ%*[v r_m&EQ L,,.d\ 3y KЃbp[_W\*聅y|)I>ޘTe)J14)\X.;*ˡcCV'GCkI@MC|x5VDH.$$kZȒE]! et8RD 7<>NBf,Yi%ϓKd7eֳ_rh5InN\OɂH Rd][;i2n\N$qAC왎{Sh&NrA8)'[b? γ,5a\X<՚ZkcZӽ\ZY<&PJ%ʹmٝ]C]m]P8FNM<L=SVHߐ V&EVsMƦ. cJ^!Xv-1 \/ච`7co~'r"jv߄P͸Tp˧BpC XIs Bm94"9iKIg1x6ëTɮd`U gHC9*C; AmDAM,$n<+a+,LLDE+D  i-[,bˏ' c0QM1Y<%xՊ:j6~;N\9ͭ&U!],5Pee(;]s`]] s((d3<-%ޓK8 cdVcJeU.&2WXg'>רO! lY fٍNɞ׭(RlSW}GpH|'gmfu@ȗ*g)Bx1i!k!S2L*IJyCY#b#9hRّް F`Î8 a`9% ˖< !b [q `۝v,&jVejKlH_m8i/x XB_fV]QtgwR'mt4}mQ騕ٍ"ur) ˜ӐɛB8#K7 ӡ`-6>eƸh)]%2 imo鐨%ѣ=x#1(b}E@ijvxb[-$I,4I;S,Mۜ!7c!L&.?s;rv(h^s,u9pIɥڳ 6& bReB?twSaF0'mnՆ 췌k?BOm8ހMYwy n_y8,ڮ9qUmlI0ю:}u:)[CɈaqom:ѧY8ێ3@fv*吤fRqpK +ziBI0m0IixG7j_Ļ,hri&.I  Z(aD>Er)?BtI.En`̚-[Tf(vFѹ ;lcL+,f`2s9VαdeӒ   @ @A*D K`@)ѥذ +8'ʖs­@ņ>}h_r_GPC?HJ1qL(JH 9y{X/*ĉ+x?{`P!Lx1`# `T Ghyt,S|Ifec\V>?マ +ٙg}ߠv2*(exXZJ@Mt`&§--EI1VXqISDԑHvTTQ;RM[ J+:Qf(Oa!yDRXqJˈU(Rpso!`pc~ J`fZ %`N6iB\kY; c!j)o l],g Zqv[i[Entձu sVtϷ}tN@A^yR_ ]Md0` 6J6v+#Z)~Wv܈ 7!F>*ɢC)eq, QecesSF qډyAjhN3J߹F|\NzBpC (!ILR-&'ݰm!L P?d.ROZ!BIPnmH08|4̵;Ù j0 / b+/ ҐvƄ` ż3Dv}c ix8A6BkҜ0g:y[޲. 9@`Ѣ =s]h9|(s0c0.J0d!1 zJ!hH"RJ3"=I8Žs2W$M)B#}(F)Y#!NG䎤*,gj#Ks ޣ$)Z\㓞nǧ «B( >i&5DQݝ.DjRTgs. RbĤ ;7hׂ5c Z@3D~xHʞ) *Kf9 Tcs`je%X cBư2viL q1|&6D&/HT*LN[BɺrKe䄺MxEw1cZ(n-]#9Bˠ )HL쐚GFFzdAѶE4tE>NS΋jT=H$Q+(TS.6~.@,W%|p,C\Z3MA] R\2u;j!g(^^-$%=;@`m'ʲ߲`)K VJ,wN*yo"` Ajt}*@p x1l! e%{qhEc!3M _8~bJ kr .vJ8 g5YЊv3T9$+9EZJCj 6RS('گ?F2:VR-SRhHG4ͱ+T%^*?\.a2F)'gi5gֺÑk3yG(_Rة7%\p p3 tNu+(=-1\T;%նg.xWxRZl]M_[|fI0^{|pXc8_#Mz0 9?s"Bj\^8VLnimjkFef8UQ=Q B|Y]F}X [`eAL]@? p ehVȋ)!v*aN#&H@N`aV]L\Y<^jN|+ّe(JoɚZ-Ǭ]2чQU3479u !C341X.8@\傮 )^D[JX>IJESJ\u6"*z-8D HPɘ`^yw )kDFQhi_XŊ  . iertF1ZPe>L a%5aNUҩA^ƒMY fN`D^¸M͆Na@.TƐHHyAZ0H#=ZٕRڌ +Ǘ(Y%ZYL[Ub^XSfzp {o1 #?BX$6B,%.X) A\B (Ђ3D4-H(xlD+RJADC.Z<JDW/.?j:&1nA cyDxD\ kpF`jƽ#`TT9v#\rV4XdLUaB*Э` ''A^eVfYF De@N#NYs4[=!I a$䋔$@] PNj{xLɔġGUNLMښU!r pNX*Ou 8Db:&:`)T A(y)BClcDFlD{ P-d>-~&.PISij*Aj- CeX 2>XmfPv`Gh#K`Qa#͟57s" E86@ƹހĈH(ȺBZhHȣQ>a*G]* @I!P&AbӈaTfN \Ae~h) 0MGƑ4b1qhB@ 4%B(Je@0&`4&l33XU ЬԊPD4fc`^ٸeheZMވQyL]H r`r^4bchjr^h@n鋧ngbD*k0fU#" H9cvl%iGiUD aQs$ Hph.ݑD܉s8$Iҝ/rZ$+Gӽo@$H%3#,8hZ8%0>Mz h?H!& A 4  @3@aImBҧC.B(T?|C2Ch*")qN- XE9b2&&1-s{1qmp\ИRW\<"PF-U1uUc !V'F.uFh0NVb+5~(E6] e| &-GHGQnF4Ni͵FZƐRtRtGH&Z-jM(鈃6qnaeVYݜNMlV"?] /iBH֬{ 0Ц4ANڨ)DmIh8 (04C|tB&X4\9TH.XJ\A.@ (CIUTUJO * `NÁXXhnpLF p.ud0.U"h9Ne#2I EFp\m$@H~H5A1#4HPu@dT}ZyNMlPcXLvl ,Ra]!Iԍ]Թ*jޠxl/ro6 &ᙰu:&i:GmP,ǞQmBwiuOs)e((A;0AEA# Bx7h¢͍tϒ悂6QUW8&\ DH'pX%Pˁr1ƠƼP4K+um߽dk߾1vJ-g`jr2ljx4a:èJ%sI`Ђbj\ςB҅!dꢅ$LB2i…PL2) g&!(Li&l:ii;!&"9ܪB*󟬪3+p N2ɺ֫:+T.*/X.#ݺK 3LAhʼ(,ӒE@dM,,o[7<.É S9򶥼ᨦT&ȹ|VWc z! ᩅ8ԏ˯``PBp` lMDZ1#rFQH,'WRJ@%I)iÅh8 Y(+4w3/v4EvXU'=*veRIBhψшg#$Q~ԑ 蝙!tIH…*g%'\*~e9 R@+3fG7k'r?Mn7s`[S*]$1S83k\8ȄnMaUPSF5ed,/悑^RV;t"\9Pqʱnӳt6iJvR6Efy&2I1f drV`iRJ5B Th C3M&)L.MCZ6@H^(PV%L+eVЌU1sWOhCIO{nWvӷ R)b"]x^UX$ǀޡ g$a"*qb*8Cq>ÜC aUfDESD[⢹_>FSZ*CA*0/F/}9 C)Srf#qqbL̔ US4ԃ ]ò:xN|-h:ܹbʞx_Re[ѧWs,v_Tȥ#`V3z)E+b 9Bl42i0C ieR@{Ef#A0N=<N{SU@A^+@QA Ҵ V>^8 -ONa"" I?f n08ɽΰA` }y xk0cܚ>t.K|u,aC= WhkZ 1Amz&!Aduc4Aި!+'GarzVX˴Gx+Mcܣ-iT?%s%9BQNT,iؼ4^Y؇NԴȂ֚ La$Wcx#7xwth0"#1=;m^}=V@>!iPd8HB" ֡#0Hs db Z (`1qɤL.q>p;#-MDŽϦwMur*[24ExL$[gY3B=xTe@lZ>ڌEgRdHD%P;s즄X紛uNoz'pwZwE8}|O~/?Җ@ÀKga4+)HguHgZӘ%:4rk>-^ */DQkvI N%sOSˀ.4bxomun.rMXM2+J]&h,7vN(46N7I`z8qDC7 '' 'D)-v*%tL:nZ&(#-NPrrbx\eSO+4J-/ vbyihrKV8|*9^,F*tt(*j$+[j koӴ!R-OslxoWG 255%C[*Cj"x4+G_@a.N,etNlb]CɊ7^[w)@7FX oVG,V^X$Ybe3bD*YptdYu( 6>R?|ɨ!|wEV䫴Ux 6瞵Cym."w@/0@>uE($@q  z`}J4KAYUU7,0VLr$Ba󦨉V*| 9tJyNx)JuzU9AtY sj땴[zs{3ӤNb2'3x|kmm%6N.v2"uo1<2T;*j") H]ە̾ KU/0 U=p/t d"tƂ%'ILԋ}09bY؏d|AwK SBRx\wBފdy[y;#E]alHCu%B@TLB%{<@C9C|ۚky 7.L,-D ПѨ|~=cY k2 [J/--C:\"Jt (t,/Y}dIkZgE'_)\ Nv X"cSR[G.,[B+襤W3 B7cuiwU^Tk`@wA66,0*` 0 eeɧ ĂS1;eB["CHk쫖:qIcGI ?|@ƕ![&bC`?< S٪L{a@ _IYh@y}W%dJ$$~[&c&~G d9#(1rFi`NTJTH@-n~ {hc:\&X H(-ZLiKgGY eY&~Gs21~+!k{l!sSZYKvBN" <Զ'yQ434E,Dŏ n{ש"T}W >ծS= @2 `\2(gt&c3*qO\L0d!Lx^|Iy IB{y{哲CЍ䓘U|k_n@jjzN?c5a @[)k$N圠.49(@ .'Zh%e M\ՋL-;+sb+X-g;ŌOxh!Ze3DžFPAG~R7~ښ"!-K*ITl%.x/N=ln{?\ZuE if".yFB6 ??xp@  6!_( 0А c7A#A O8W 0`X#@I&$reS5P=}Ȁ X*d`ͮ] t v+S[hLjPF5-@N@5+8?d8P3!. υe+7%C )…<w  ~_ 2^OF "o`QI^3s1 d/;@<3fA:ˇ]" r7 @KTRX qT *EP%?) €‡ 2s10r=44hc7H#C:"L(8Y "9H xBPƄ[R 4 =FO_IB YUBjE 0<PAClCX24?g>G7qly\ bq Nv9@&O9@] 9?>OßgŐSKjc uWt#ֳrE@^T@9Y;uPkb9{5Pgp4he4Zkv  ~vԒ[H r)H"{U!pC4]lwE|Ň[vaoQԠoҁр!W#Hj (!qH\'/.K=Ȝ<跎-f(I$jg , =&X ԱF[J.N qΐWHқ0,Ou0A fU& U1Q5% ;[j0 <Y Pr}&[ n4La#'J{W_d0gO\%a;?"B NڲJW'|+\<ޣRqʋG+u IIa•,R#,a. !(𙌈a jZ&6!m7@@rXrNJ%@< Nw<.'gAͺc3,r'hC{{ړL!-iMӈ&\ُĐ %H@}8,JaA,  9?F*&jXGc2 AŶc F?M wf׼^s1U/ cSoc@kt5 ^c4 5$zZ6nxeӟ*,BQ9Kx@09b0jM̨ v"&hH:h2?YrcX#(,~^)HS^F[ji];G.$aW6 l@M*tC#4Ciޚ $] 2΃2N6vBlKk6SY}dbV;clUmkLj NHd#1%AC ]VCJ鷩6F[O6ֽu+o{#]()-rV {^첋E&[/3d̅&!P٧9iqGӝ9Gj"L/sf#g( G`r?p:(AG1r"Gkk4`<1..S@!#1d5d{-&*\8CVq:taXfT'hfdV`FAwvqIӄaOhf=6,d3d!Y Rij؆RW8Xy6C*!e~$ic%j"2J<6Jt#[k40lE]Q>aMaLm^>}R` 0֐c9QnN"6Q#T<²_4<HH'H)hg -n2>wqh1F_(. ~D@p&,?WnՇ%$B$/G~) F;0JǑS9e.e]UXh`EFYtWISXsWQJf *jhxHt(AH!eZ!*6yx"!dZqj"7;kzyyz#uql,/l+SaЙ;nN%;c 0Qs'nꤧX<}ӄ;+ 4B;G;v=g:g !@U' A,c+?v}t;szMhq(iq&,$(@\1@>%'-T/YoF>gL22j qT[COzfT339e4$v ewXzh H䅌EAai1!"5j5 p=DIH [j6)6rj屬IusJL*zu lY&ׄ]]ld2ؘsp+> 9ְq'>ÓS(;CαQ,p-(xd'L9U+B;8S&S׏;1GB@d<,QtA2,-HQ&wcn(8{BYoZ9Ǫ<#Fޡ*u!%i7jU[1xXoVmd:GZD#Xr!+YEHk!0Z8?JBV&I9JH)R 6(Z"}8Jo[)KEzpДm3{FLP(m+}Rҗn_KL{QnQoz[dARh@ss.j Q:'<1Q&tz$e@,.S,Ir;/,zZrH9&&-(W)tB_BH: v=$eR0 'iI"󃷡h3yZB"ڻZX2K6zwVcxVUYq3yjP$XƑ56<ڣy6> a+x!"|7e"y'[#0֤}3ul6+WL)|>*nX1`<ط_;c(Pn|,WnK;yr惊#u] P0Rs'.;<\R$ar'kV;#"@z81=/ը G~dle)БC2L]1 gXm!J,Y!6^ .!]m!UHZkmעB.1KRPmP{Zs=ip ʐW*i !!AgC*}$Ej,]<&7E 4ݴڨmČ;T&$N@ٗ}nΕ=ln%UQÇ>ܨ?L+#%Rl{/3BH"{c@Ax?Yb@fr$arT(Ůw %*b_G#GAԦtzQsDš)whZC*O,]'4@A%; \bW>|},aj:KA*XP^-_enGqj(ݴ a?NϨfg[%m#ßn.FRz@AF|?Gr}/ Ӹ;JB)VkKe z(J\ɚj๱TRtǪ D gGBȎ|^h$b Bɱ!}6K;jR_Dvo*kO 3b%RSA7$ö:8p.DAm+G7&qP…P8PC"TfH 'JL("?,yXĘܴ6_<ݴy!5 Ԑ`?H>UATB9J"v5Ljm:٦KA=۶#x|L%}GW"eX0e<~ r# Leʖ @8Fu;]F t5ذ!–00CDž͙7=,[‚!bGyݏo!~Sx>oGi7t0 l0A8!-AL4" R D|cAHA "  @Әx )ҫ&ْK.ǂ$&Aaꏦx0j-Ҡ @)x 3"'%5% ƧD$(`AIԨ0/O'-RԮ3L.ؒ,* ǚr> %Jص5I[L0K) K hY8Ì2J[NXQt5b[5u%]MtcB;S_~ ;K.Cf/Rk- ?q䕰 ^j1?aD "M%:50YB pRX`hl/!Fmʋ :]! "L/I!8UsJ Q#[_D|LuI! hAWd{)Y=/R?! BS{RKU,R.sZb3]2 җ뗞 \@."Yp$hFVc8dIsuZo5K珽$x_vjso ؠhI!G YnQw%$4dW}$lC6*1#q|7Cuq3.eM7>gb {8! RZ6 b=4"9JѥArÙ=>aN(;F oAHCO,,Y 1) i iÀA ‰+O)2cB̈&:eAϠX1; ʛ5R_vCJ*< ?{ B @i#=!zHx IMy+>k>P= H0 ;AK>!R D@!1;PzAAЈ? ') //99(;$#:+ǀZ6-;@#4B@ BbN,؉@ v䉜ȉ3)Ⱥ3S,5KqBD {@G9p?% % "PF0 Qe.&Π`0ʃ.ӈ awdcbs'YXEhC/]lI=GJ4ELDz(7Jԏ\Ldzヰ$ž>SLɷh&z=?`2ɩڥL@k#&*τ=H7 Q**њ rdR2(a S:5M;+ iG|%;8N3:ث6CšTɒHH!P⋝;fQT* \bBR-|4_iC ‰30 x)"TlI 0̵ ;à!dKpěECܗ6'KDmQS(KJd0䣷(}v;s7Z0x%>K0&%rQLY" 3C?h 4FBq%I;"0MX$F8,᝵@p &Ӧ`1шV۴i뜢ۥ52)63>TMJ:*$]$\o:CUDU,bA-? `«jI&TqS -8a1YӒb ،Xl&jϰi8Pl28+6kKAA|^;PZUTmU`4,LhD-H;f$VcKRX@U9 bU Pށ :e5 Yn<ptw78Y@ QWhs*^H ]уEKwKmRwk^ގʏ&>!YZ![S8"Ҟ{;ω0c_DLx꼊+@֡ n}ZR1.Ӎ84?F݈9X{A7s-P4a,?CA>aۡ2N#ۺ v[$@Ud ƈ|:0bOUݭX,ֺܾYyG@ܹjPoݦ݊- 2WS;L6c^#U'#!Eu*MLQD{XP{7yQevK&!%(%eE1q)XS^Y_baTTc?1ɠ?iZQDT1(fm@؝sވ'F4$Ƌ%4CR$Pڥʋւ,%DH@<tNaY3aT1]+T9 .Sb -bj `e]oHbH xҭ4MJcC-;9 g;+Näa,I\ę KUȊpUq#6(\2.땇ĜLp< /4^[Tư8Ԟ,(К>\DcnY j.Г]jyjjQ? "хB^#؂ÊhgX>LUn؊vq#XjS q5 뾗,??jf{8fl1۱sߡT*. V V;rm{d< Rhdlj3纣@#ȗn B= GۺQGS2!>C$D䕣IKIOŴh+)&*fMVCbib!]ltu55p9פԦ& H1#<>`r"Wv?&j'OqgރUQ}o޲qqyuލQdOax% w:UzR*LjeFjf-5M؃gD-.uט캈i= 1X%y m}աsrM nNa\O!BZ$BN2TQa:;T!LfN;[SauhDA,^iNtV\BF 3O`-CBB1b;fƵXkTҶVi팊<6[ lm+j# wqxqJ`wwow&j6>l^MwTVOeu^e ^O%ūz K%(%ALywߨoߍ_f]Q\:jC?hx$ p E;1cJ0yĿ#82YSaǠHd`4jF$UORN£50dڵV @3B͟iyqڶ-TG7&y}+Lؿf&h=)o]-e1Yʈt.ufgDy?5jmFqPہECo 4OH:u tHд{0H>`@@? @_5@ #!?Åfhva;@'&+h"v8@ҸbJ $B@2@4B  ? 4HX9YSAXf a)LDIyonҞP&::a'vZM@WG6 ? @uf? 9 M: D$@`G$&Kwq&QN)%PBDTPI1 ۰%ñJeUTeP,P[NoYegXq^}#ȺJyKA֦bUf eW6IV.j0 EiIllnv\z\p d|MաgtuHPtU'uIc{WPP}{i@5XE@  晗&Z&v(bBAI)?XWR0L܃LA9&hnoS{dHu w \GÁVi'l5O/(jpX x`ǩM' ⨉`u^NHd 1hG(e(i ,$شX⿕ P(yY^w*_QcR_DMщr0:hVфakޠl?6-\(L*86d%HV 0LUf1gew>6'rYHNQ>NZ}$y@ 3>HZ4JFDvmgх6hGx۔7BNuIxjds@%9ʙshA䤉:sÙ:F>uL+O'ȧ"K .PƩP(nn1 řHYoLd2o5?\E(iQֲFW$-Z 2WA@"bYb52Y^L @ pX)Xa#W0o^^CA-e`( gqR:b41@QҒ6q5ME{cֱHDqs#mI#䓖HDeHI;ؠxBSL6"j qtCAWX0T 3oid9-N"(OKLTʌ56D>)'WP,RMz43UEW@fQvR-ee K6Vɽa\ߺ0 "&z @>EVVx7- 4hYxy$ p Fw1-bXf+ut oԴ EHA!#礕Tu-rf\!}͍=#he#Zmo4*53 ; 9z=H:3437LsTRZ*oWD/7-d̟۠$A}-k-El*8Ky )D€joh^ r=4=¨L!|%wvrD7QYGtŇh  Bߙ*\Ga5 _'[B\b&ثiC99stxS"e2ޡb3z$PI D65aU5=YPѩMXRI|OՑzUx f٘MtM ǒ8ȓ R!Uݜ؉?VU aM  Xң5i) ZKudLuZ[P4KcOc ߽G븡NʬJNpEakIROl uϧhS]˰ s@ƵˮEaSE Ee eET@`<__|_Jƃ!&0RḣoIn LjuثLXPX]ruČu ، ܒLHSMя%$-iU4 d`Ui x ّd`ϝ\XMZL#P VVVruG]#iA@#1aNPNIʐ5Ǹp ttO;a83 W(TGD\֊JQEqӠ0@AlWQSU^x-"$F`E@!^]D`׀5`mKhbL Y  $G,3 cXucAt tXwH8Ό㍡\DoƇ~}HR`т%H^E,"Kü/HPMP1ֆgݥ@$GsO!VimuGPhm ؄#PHGHS\XsJMY`J@Mun@RgWy} R|ݍ  ՘BM(a`F'Igh'LZ:̝¤LZPАeETlOMą7Na|UP!eEpDQDuϳS(4ֿJ׋*alcS\|0[("(B|%&}b` %fxAhWa(g@z&@2sXr))MĦ Tw҆Hn{#HM G!Y$'>Qx?`Am*mg2͕ D\@ jaiֽHZؽYF+RҐ+ҧ*'ҁRa㭟ʁM厣(.^q hJkakbļ a26!b)W e-Iԓ EC ^ vT(^iaΛ`qiE^܅.,hP2PȆ߹)b)oolkt!%m m s6Ό.hB٪@m\|XyZ*pG~GRjٖms, ] ӑz'hqv !Ibg#iG ]Z*!}FiɧRn~€+w.'’XL"($rЁqHdR8^NkD8vZree(SyW(VbON`(G ,EitEj0Y,W< ]ll`laVVy)I~ɲJVcvƠ( ѥQ hO3,6i)OuLm0:?$ oGm=r}ژ*cYpԩ?pV6i] Ip5}!|>!j]11+1ؽg)hV, !'QJf!r(.hM(%$2ptdDq6a@2@ŭu-muތ6*jjİESGp{ڹKQ|o_ȗΛ)B&& ]DuguS4CsƮJ0FicE6_pmP`089wDڦu0֔ٴTpܦ6YQ{ut>k`ǁj? ]91Dp0a v7vDbFv^]{4td9HRIsqE`+ѴL&qG .M]9 ; S^&r"!+x.Mڮצ0W&w$R*B@rFD)VcYy逡  vAFjP_or\li_r$\2F~&byZ#baccUi* M: 2 nno ~8gQ??Pgc6@ c6)C|먴$Hz7twzFnعY7L*;nq4w:a{SV.h9b'rPZ2 NE AraqU+x jrW7(%kaFHD{x7 +ce$̶eL,}~||)0LN%N&]ȬtL,3g,s0@2ln@g/GM&mj-m9[jcUvų:rj $[9cH&=ӸQGQJD s;I!:ڱK; zP@٫t7Ôw7(qak~5'~R*\!VR(p!,vs&w踓{E1WLFO˒r}TPHK܅2}"_&`` e 6Ep UhԚƌ|&S|Ѻp҂?w99Lw೅<Wp>0>ኤas7@8? H0G`B 8DИq5z 2Zp*Q@ eM T_Ζ3kY`,WP h2QIiU=X@>%Y dɖ={gPx,Y0@K\!Y=%ᅣ FK"\cb( -zbEeG BGDm(<.vo(~=Z1 :>FdJԥ.hӘMhZC8CĿG wGm"$$<& ?H6\D7`VAEqqYgG#! WoŊ0R0ui'C몂rP6 Tf(R#T }buc#ݪ⪵ǀm]j--- 3'rˀvŠ3mlyy(_~ 8v#ԅN9}.9Awה{sNM

H 3;֯D$"$^BICvI:%04Y*}25$` \:S./?$%k*=l 9Os启;i+ `_w./qx FB$v$dYr1(= ,Y:ED" j8~v#9MA\€7%(ô)JԣmC/RV)dQ($}[%iIQF=͉'QNь kr] u jv႗ds1@w@`-Ձ%!X%HWdXwe1WKIrZR J!>{8]\z+}}0c<sO V?ה$6CbD">974TPDi d e(n3L |fQx(,l@0sCRi Cmm1I\ $"Esdb{(%uS$[6TN剧R%ELg*Lґ Tre)]հM YŬXŌ:$D݊9PkXSch56 =FϾþtg "&)y~f{0 GgĴ\vBt

)!H@eW5 8'=Mn{cnotᚬ + n8`>cb'`t@bȃ08>fJ&6&DgdnDi\bFr+G Z(舮po$-"<@-%xlDb@JJj) )mBOΦdXjlh$H'`O@oJ zװk8HLBM'jڎlۜM,u`e0 "pБXltVbs>tQFcvLSfi\'߶_zL<,}0~谘~ ԃD 5N $&A2&vFdbB`eL≝^Hfn pDghF^đq؆(`纞(dTm@0-*k8PFD@oFiKSb~lF튍1"qR,,"R0c L*,*w M"܂6,p/HW ZiH!T>foc==Θ},Ҙl"n#~B!C=:ڥ#HD㶌d>ciJ¬:}& @n`e$`n$h>ю')&Pv)&d*jmkBdrь$s@(Pˏ(Ԯfp޲:m$i )jeh)d"MH!+-ŒRes>1TD0"%:0),3/c$ 1bz`P~ `ɒS" & E!Ej7C!ăfHl(b&&qe`fDg\d,FNЈk05#bMH/AAg@$"H<+rKb@Hk0NʮU(KB%B~UN2?>3JO!(Yb-J4YKlT ltdTϩZ<3HMl3Q- (# bSC5Ro?B ~^K'AiKc, &B+7889t8x 8N1N`4d)d::a2f/DF'5ޏIjV@-,5ZR 'B`l$ R?4%%ކ3Ҙ.?]bn>$ApNdLGSOZ9g\!7e1?G 0RLڌtt&T ,3\ O421@#55/^%->CK$>7>`2˺,ahCV5`&T~%_Ccu9JA(C4bT,IGgGZ3 N r-2RwsCI_c7eb@\SLv%bGvp` "!wy]47dwFOd4\IVrp6$nO*ZiHEˆ‹0k,{,ZkFmRPpr7uNWViBCOV‹7&Eʁy, 3_%Spjd+ FdRhW]7(4 2^G^II"D7y$F ui+?\?(&#y_{vZbt@l>dYe#&C`f z/f;#؉EPn/TM? UQ ⽜J$0~KKF,D")̎hvQjQրOd+ʏ`Ij.&jvQDSL/8PRBFu2z{Tp w^sq4y14"d #>;a@P9b8HzZ$-R! E7hb0ÿ:[^\e%#{dDjvE SZ(BW}6'r7D$jMl'$j@+&hW9t`XYObTپ%P ο^ټ qY{GHo!wyXq23TG u^:xxxcȳL㒯M\D2_XxOr8AT QαEDCaCe@M fnV2lH-|TH;H{H}`DuBV%`` Ot)rǽ˾Bx}k9;$֦Ü|QygM;|ewK^sZH-30*W}5ZTκ.@2u_9ݚM2o?,yW>`?N~Hb1v)>o{N؂~%HWD8z}rIPiQ#S6?FOlj 7>Npknb⟁ 8 pP@Y0 …-0$GKH1l̙"lh`Ds)3͡@4%S %~\TǨ`H^ t‰4^2 ׮ ԩ#.(s7o' prງ [s:g831;%>\qt]=5sʕ ^P׶$,蟎׵W~= Lx g5j 0tVuC]5F/GRI+Ԓ#dRH0UVEi$E=C"(FXhB 2H|8Mu_x>☢I}VR MQIU Gg[$?_sE^um6_00lDuYu_]eyvaPZ Ziũ'nuVGomCWW*9\'I.Qs%h[ki$1)o1lBCz5 :إ,sb&Slfmm@%Ub) 2`(F2P-i@ ŀ[zćn[&@bj`qWI91$MpghѤ߳FxcCb}3kFoi/)-+݉8垀&>irPz˗X09h.e](4H-&լFVT uK V*oZU7`,ˆ0 S U"2%DE("p@"e(hX`@%gh8BI_řu^dY(,$hqS/`t QV\`dQFTb"Egȼdk[${{ 'E{fPU}Z 5×j`u?”f`Fu.kbJTo,\f +*qW|J-#Dh6`>!pW;#R'Nl.Haa0f]VЌ'fmLL;"(4HZNiJjhzNcx' kbbMOb @0Vd"&_1%jzǁcJ WtLa_eF%xx#+0"kՁK(k*qykAb2(_dRD\qBzw"J=[h-p=80=@ g'5va'?ehJYrK|m@v+U6+>b_50*e#FƌkeΦ'tFѢi=(PzA)X2@jbv[]wIXt'R0s`IuFAs|XR[Xp8' J4b!|JTb}ii At6:Ą6G$,)%h4adX$GPC0c ka1XA?e,3p2-OXY(&GQqq)2a&J) JC9]<`J(E-2xpq!3u4_v@kax~-w8&h`۩[]v[ۓ5?HAqvgQo2fbƕs=י'{agbSX?[!5JAQρ\YUAmZUiԦR_um3*I<,K(W"8Z!%XZ觊n&m~R4(cp %zWlUHOX]q4 aJ$樆AZ+zLIY=ai_[,cH=v!>Q\=p>> 4[Zqә/1>ڥ^JY~xUK4s+F,ӒC&<`:zQOC~b{јڳfix3 (MM3M/胶P<@h'p$3 7n~Yfg{2VQ p29' t=/jS'15RJ6^Pc5;^tjG| sxZCRuކ&ˢSPJ%7tt:GJvbc1[HHq )+6{ؽZ ʴ0ƾ}7+8< XqdCKx1,n$kQ鉾8z[h=ms=Kꣂ;f<O3 wMWcxs&K+SD÷5|Y\e˰jp*pS_(aK̺&闉xE$ 3,{SV:$Ca7R^bhLדKCX2ɔZ+k<{UCV38[L/+~82%ԔL$kD1Gq$ ˞[uj[zqVQ9%*x =O&{az1#k6SY(4? 1#*RX7_rY@z(AWu 7gݬx\P$hCCG'ENPD+==*ISG+yp%02+Fk9th^1$j#*up#,ԁ!U<ie)Q$[5LǻH+eY2J^ȤĥyeBMy&'0vc7fQg)' ́za87AOEAuvRUgjdL` q(ԛ3qٶ~z7w#4Ô;5D ))5Lr-8/JO1 ^@B5{A@2(@(-VlBiߛ\Vq)!TVOQ)?(q#5f7"IEZlL S#p &UASvc_]5u+~߰"yxApLe(i;/OoǏɯ/Oo׏ٯ/Oo/Oo$XA .dC%NXE5nG!E$YI)UdK1eΤYM9uOA%ZQI.eӎRa1(uzeHՄVAq(5B "ٳ[sZnSH.C>~XŒR<01ADAtL0Ev%^ؚNy6ӱ Y   4qr>9\:bMPC] wW>/yT[yF?W D󎿯P r/hD*$t< @(< Jq "B8I gӋ68( 9κ{,y, 0J%B2-!) "9#(R. 2&AO=7+(:5P1& ĴC ڔ TtՊLN!ȁNN Im `[ut+H W!LNS+BpBS2="ƪTӒYƄu_~'t`7˅:D2K,ŭZE](&(o1ZMcg@Mwa`wfXn(DǴuQY,U!4EH;kP0.+" %7ޏ] $@`Cy\פ,.wy}TJlb@i MNY!E 6v[ԭg'jf){/<0X`M/k&X&hiwx as01_tcaPT68KL$}[ii 4\q>L:7H8.ufKpeKH=$x>;0#j{ E?v<=Pr`Mb<' a M(y +da C!,3 *O9FgIR42&XBKG5B8 ]DMS9CG!5%,J9H'V?ID183wQUaFOB Uǭ]BI0WXvXӱʹ๘dVgmMMQ=JkOX׆WM7B;1;C'$d?ӫۊf p_E2=hvbXgecosLPN;I͓i鼣ʖv]UzmXͪbXfGMu҆g){dx^jYTʆdjLTɞɀcuI;ڔfzDf]r.rHGmKޝܸВpPVqXwVewT\\aغ_m]XTٌn~TUi@gF$c]W- 讃{u`b=)5Q6;ze-V?Oxh}V؇buExŭbyQNL+"qWêۦ~͵x`v:E޾RΦ[gK>XZ}CXV&P+띅p Ԛ;Sr0;`x}dчlXkPs+]-'O&$dv6 [&VhT.c' ^-$|js\?crg>]&jv)}YH|@ӭd|ԓ薔Vg5S2Y!|,EahqyovDu'[Ee {+#B-] cƱQ L@|XcG9dÁ># BN,-h@YFZ*l$G0J ypx`YpHR ā+La /,b,}WJ/Tb<^cl"/bedA2L\Nf\YhYnє#;89,~d:X" isBcdoHs-D@%)OPҠA1II葓d1(Kz>ԦFM@k )[a˲d1-[ܥJU˖j,] /ISf ɴiYӛ괙:u3)͓ĊZ.t"mTWXm'YGz,dƂvH+\9{=  >IwUt&T"q(`])j񣫤-Ϣj^/Kc*LvgAYaധ RjM50^t_ 8UF5=p%sj;(V|u_uXIs22XH$"w{%(]GϾs, &qHN䅔O :}jHnJ*I.u"hD Ҷ.Z\;eiP"╄1CfQ v%t SwqZܱ+X,>u,EˑVu0O%(`WjpUh8H ΕLe& Jގތ+T,x"[ Eɚe/ MϔPJfKt,)]bSӤpezhph@HBfpӢ!i ~ktU/KZMb7Y/o>+[9w%We $ɘT=ؕؗuR>PmpiK& /%1!h^ߏf_LgDe]$Ĵ,p7MSְ:Vbr@Jr׋<'ʖd [ M&6̍=,M^#IZy_NGЉN߶Of0fdQYc!k=_Rj9x5%DEVߍFKZET҉iwb)8 C݂Oc;7taUrڰW \F\üȻpw49Q천-/CнנL$s΂K+ېv_jqF{?Ňb,?{T^'Q. #0=tKUK~ߎpknb'ܶ>*n5wxx@xoMPF76$yekqDJAcy(V^֦lrlg5sz5sG7"XzgaV$eZ{4I{NvJ#m4@IDIIg tqax"glU`$ t&q%pׇY}!v>gf'~fwFSK{%b{Wfpev'q W8xCx6`Tf7ƈIkbceAH4id4OFO+!t!zmaxAk]&Xlis3wH6ɖH.muI9XWe6^?xG(#fQFJQF[W}+}]'6MR;E;hDvTôhEw$a:eX~awg[Ԅ  TU`7p ug26Xmace֌jg!yxGɵqhAO- Oȁ&ߵikqzȂ(Hz]` -l0H]em97XACDhdB7ٌnWnQ1|ԧMuaǐe@j)lG&avXwtla#l%V4xڈxZ7YٕxiU@TBI\fCte"rӅH))?yvzHh,VՉ(zI(C6fm?XF0_f6\9C&gTTHv~7㹍dɖ鉞iR'xT乆T'5UxyƆq[kDXYXxkD84}dTX4By?E@inl+r(z=ٓ䓣hmOU!Ze{(tUt|WtxM4nUZuM[Ȗڐ蹞dX:vzwk(~iywS9叀nq[))ߘ_ZDŽ;ˋ8T̓X"hýlzI6Et-ɷF- ha#^kufYj1}bh\( ~Z՞kavᯂk lST{t\uט ˰Y`$ K땜+R*z4m4omr186|6J [0nP˼›8?WL?kHlˌ`ŋ[` f߽ELL/1<0:J(W|ֶq*t.| {tε^-|D}Ѵg!|+1꟪Y>KjkxOuVMaɎMܸQ >|JZQE 3^j-F4 QʆXD#&.]zOf͝2iPE6ORJ.MҤ VXb?JPuKd-ڇl1nܷsew.޼w! Fڶ/Kmb)*eaBT",0::]SgΆ4F|2,G wIl8%rP!yX~]%M%K7T'~yd_`&v+y'?$%jFF(@v&$P6fj& U3 * Q)ѐ˫JqE$c/100vq6Z3!θҬ*Tğ2KU ҍ1c#s4,Ҥ3N9iN?U,Q9;G:# &[Իz4Q2 !!RK0P/8A9 |ii-' y/iKBʥD,k؇`L3R,nk-Z6 /"\!c ,uKȮuBѶ,bw(pi`,V΢MO%knL:<=mHGxk4=k(:hS=0辇SϏB]UZ??*fic3a3oՍ& 6(Z0s.W^Zcf!i»1i! r0"oqɎ{*3[]07qj_pB\[SNhVm&Z!ilΟ3t"%WneSiSIonzqU︕(>=?U=W[@K%,YzY;1Fuk?tǘl?labʿ‹b%X[RME{%[˷DȗpHaBi%-V4(7(%J^\b]i9`@LʚAul'>o}wH|7@AG;k٢Vf)5d 8?85;O#FKR۞Gh|SUGȗ8M RאYƑQ_pNLCBMc@4dVR1.TJƋB0K%xCƬr%A@hi6YU0f8ęe*3Z9fe2ՔRU4Z.5Io4bjLcQYͪ+'^خNҐ?g(jR5QVDY%g9(YC%e"EUZ51fu(H*f}w㳞S> L)S8R~Ip&~(JPлt[Vm%+Knu8J.뻛[AƪL,j[Z2yfC^q4- xXqW1fDKBLJzSY& *14!޳"RARExZZ&+Y-U46:qԦn[V!R~R|x: {^n,iDw!٤Vl[T 2Ђe?ץ>xե_k%jn Yݠ,ԥe岯u *|/*,'%qcY\=Xd`=/KJuJFERi6.䘹1hlr3՞wlfAgT&tvwD) j>{%{>K>0b!0}h$0>0B0:}aT=dy6d{6T?Cj3ic?(BI>IĆ <*#t@ @'3T6- y ą꣟)J37XEB;!|A`ڃT4T// /X>d,BiԵ\[%%oCa HC0Ybr>sṹ0G/5*ÇྷXB/ Ұc`PJ˸`B6/YE'8;?7M̻h5zITblG|(|+k}H9h78D.[ѫ=T沬`|6aƮ{\FCE3?=i<gTKkT9 k^#·=mTB/q<:x‡LOSrQ+w4$(z=L&,|˨>2ƎKCK캮EL{Y<ؼHttݠGě!ILDIIpI3D'D(iܺ:3p3sA1(O吆t,TJ8@;yS\t6`OlȄPMԌ c fT98#B]K$|F:|%pPF >(d /|KGNC/L!+L)<&O{L2KP($:tʬ3BB/bciPe\ cBO(PQ y͸l|RNطӚ#GlNL ItNLTwđ1Λi07 ttStYDTEE.A^܍O]ʰ|Ӭ/Ob\FO"uF"lK EUS5/]cgdKqFh4p| P3qG|>S!L(r܍U]USֆULTSYjbsF$=˴pdtaƝބax&xafoݜOu\5!vS%+#fvFv2%bم7;|]}f=Z2&1Ty-{ihunmCiv`pnZPdhxBLZ`RoHev]j6i8`GiFjjе[*>_Q=f<`F͋e&YKc~AoSϓ;-%ns\͎Q5)q%.)\uXWڭ*-UmmScٮ<6eYT?;YY07fFn_F/nf6_ ZnUUd~'tsnsson-SdN LQԥKKhjp n~pٝ _>kNQT+fonG%ٺ^  Mk~+\_'bW2%g*~oL]?S`a"v5c.3tu֦m߬?*$w_c,_CU./=O.?vsNWs6?x7osNu9GV@<'o>@'֥6u'j$Go;iUi^dZu>ufWʺk7e^^ k^?\aĦXnwXvb5(ݸqHH{gg07{ҽv3r↸S/qvf `*S0Fu/پ6kz7z9v˿T@.s>sG_x~Zs's>>EQ?/.j6!QMoxxS~4zX'z릗 D~u~Jg(^]%6g7Lgp {אBQ㦌E85j,(Pug5iVɛ&YL3 ϼGJ9ossF4AnJTU~ =Uɠ_ 6`YϦ-k۸h˦A+ 4h,80Ċdc'?68_esf;mptI%5k֫f6n֮W\[oВ"<"p'%iLH2.=YnKB9/g %OP#gCV\5TkXxAg|ж:y-TWY tjݮZVao]c*BB}=٫[]kp{Bn [knj=d e*,a"f~w]ym4{r4C<[ɕYBScl!XFJ.4Q,K6{I-،:>8'xPA7Br&T0A>~!-5K1uPL5)AH:Og$?TdTP\q-:l?DhrA(w?0ILҖ(? p ~K!+ N0շ|7zӊƛ1f(j:D+Np ?(*1#AC>O('% /oJM,mVW8L0CĮ$@kKtWD|+9HŠ}^t-#rC &/|mo$G**!1BtTԒdS:KAH8c#YҔ1QQ |&+;gh .2H q y p PS@=JO27fͶ2;@eK󒍭$Iz$$Q*"ˑ#TP"Y{1w+LT# MRȕAIR)Ab0Tș *^!&DDO{6'A "OΞ\8Q:MbNl^pRh-)L1k)Jg!Bz66Fd$n?m3d&|ͣBDw+h)E'Hb+"-sU]di;҅3#/yN@ 3g֪ϔщ#QF3bQj:002=Q/G 6c;RNXRzUK>YC ~&Nt33όi:l&7. aFк],)]hF*-a83M^6TPDmh ڪ VduXme Ue|D˄pL(q7;8j;jT`R4sYR06؝']t \&LץB˾3s,]XwUuO{[Q%/x[R5XFS*' ҽ w85e~3_Mod z*j iϸ2R3դ9qM3ۍ& +z]lYG%Lf 7 >HXmӲHC.U*j7fN8Bj3K i"_lܕ/-4G:ҏn8 t]i'I=ЅxԨZ+`AZ]XgkS7 Mǡ $ÿ9S4lL69S\&<;vN>F?i8<?1T)&.i;k#p, Rzް?H5B_gw֔Xȃ|ϒ#\F~ѳAMM:>踻MA["~Xr윟h5:xu^H#) NC?<2oa @[=EyI UմeSqZmyB8|\䁛I޹Z.T1A)tcٽE\ftqSɞ ?tAj=k!9%BhpS- f^r񞑝)^1 Y͕`^e[،\%щ)A",?(?WN!( ཬ(I]֝H~M}K R!zW+X Ly0"8̙ . b! EcFcÁm[q^ /:m:S;a!7^ᫀccdȥ4J#Aܸ^ 1&_)#Y$C#x#FnAt$YB$b"A""K$b3$NL%URNF=9h%HHULDp4DAT$Ũy5`.NށyՌ8"-#ZJ3`aƝ!5[5F^g =z#of(AoPlJn#kh=ab~/#=B \A ~e #[ 2##C lmަI$G~Gr?!8AJqF"0q&"340)v]Q̪MҀ ACZ"ATgL4%"g3HB?4B,L"Vʉy#|fFY$F#lm^C:\`f5 eia5\^ae`'b҆PP4!a(bd#y'ff7ڣ]jJ$5JjF#51^121 21.1fCGY8Admtd-bq #"*"J&rJ{>s3)* )<';NrD0D$LgRD{|H%| T.Og-t2GF# (^ۂ#8C mª檲D攮^.DD>j^R_ZfÅ#gFa& (!n \vb cЈ !f`rY?j6(^fCJh:h]:d!hf)꿺j.jr~Bt•g}2})")3DA"2"v'ٟ>DVRT %TLbgTD|NϪzE)( B:mjHphG\1lD+kD+*_AVhf%6pvafVʉ2*bmAll&:.ĸ .e ޞ_n6Ļe>diRh3""&FD.oxjֆ*(, .#)(J6q""Ĥt„tm(HEdOp"l4U}))ξϞ+*5}m8"*Ԗ*CHo*~8K),h$1XDXG@د5CȎoFeSP"o%1';'(*wjH^qB.:V'0 4A3D-As2C0s1/sG3c 33AAtB8a8C@۸K;i/+_߷A{f-w;5ûvFA2{Gy|qq##iɏlQCD/B"m|J4+zQ;TBTk?,[o##7 8D6rokѻ@O}?B?JA7w;.$<;@7 HT;Xa&T!'!ˆ1fԸcǁLu .%E y2ȖsK4gzSc.2wroGG&h3ozt-PJx鿫T J $6#nE;fyO]5J#wD#(jSf͛f{FifgʍVVZGk"V\o%ȊSX:R:_}!GD> 㬎;ı`x:Lr(R,Ѡ/NtݣML0X &O$ɿ` Ctх*[:q[8J*J^L#(犂fj,'#?& 5l r:l3h4w5j͊܈pđ9PՀ˨+zd?bp.:ь{4RFļԳK1T# 1  QC"+h{#&".^<8H.|4 Re<:3j6)ړ@*EGdEh `Su2 .{'3 lˁ M.3Gs7H]T#b+LNpGvTAPFYD=9ը5VCf [h~gK9-#r|1"Z ُ| 8jl $.+Ǖ!VL"B&b_,7FoGP ҡC̀sB.y[@zעчQƄOͥʼnnWe΋b$)IvʙzˌBK2Dɭ)rgH'%]K||*w Tr \ "CL2fLi?0fm6Fʇ},B׾"E&Àm<jJJUjJzm TC/U}_+W,DxN׍fMbCC:cıÁ 0J8tXIoXyBq&&q.E"d yD0c,-{K>b9|Fcu=";UY~ִ+ܞP H3{١uoeTL*#F8y}'5)՟/P^6TS l@J-)ΰ*#r C*Vs{-W@DoA9Q=2 q<ˮ^O[<ρ`e9@ޑ45o_J^+U}t}q YŮۿ]_7Oj;ֵ_*v2m!̩U ~0 /;#D<\!:SC/HJkخ\8mse5xŊ5AZ- uȏulk_npAUY 2Y)a)Y"eyc/bmPt#9PiER3Ejy1R]+'|giU #xoJdJ貸@: ˦#xJ騮ڭ#H.|pjej\^!² x]Jbh# ;ڪm?Hk>h~ `leL@m#Fo B/Xm W$6 -)N  #Z@ JKKF-ʂw a.Ch(A0 #/`X'4n$"w8b.,Ϫy .#.+$f*p Yk8Y0bZh' cո}q i͓N&/_! bc x\:Bj #0 B @  v֤.,* .ƾmfM|ư(  G/fP T(&+2±djfXXK(6"c`+.e̔JuTaX`/JH tb& 2B./JhQno .(> Ҧb/,KԔ|Ԩ1s;Q2|23LL2%Srվ1$ST F5}5_-J_3""n7'tpÀ3P8-8?9#z {#z .H"Ti}䀪D ;R0ځ <SF( R/43KfF/0'@yt ~r0g2B)k˞ '&#~3jgt‹#uoIH#JLqa6t0#*4f+.'Tlf. 1hɳg'kʦ 2ݠ0%1렑21 KM$>I|Fp 0B5a0-/NNqh78Uو4́919:!:9r:3!;=Lnjȍ= 6SNŮ` !VGߎWt Th! XQT1I)1'@ T#.=(b 煟&-t/ր DOD3 jQ :1jQVS rR S-S"QOh!vhvu#h88@ni!o)u8V&}\u (?ݺ!Y wq%0a@'+߈4f.UBo[kwb 2L]M1%)޵#cEE\u.UtCD[.@GE /EK/7<g /+$y!3T>;V21W-cdwF#So4 25w=wU5mv~m#Ocs.O}SoSنPh XoS68i!ujVR#R#&:sR'Uk"Sb!#4Sh59' VðvAz-X{!)XS3-z&iVns{0@P: am@.bzx[o}6bC+2>t"]QRT4bt2r3]Euj.xBx#rss SҔL 12KȶW$w$'Y>Q|t$ }2~m}P 4~w _=_#rUOOihoowyn3#8:X7b; bDa yay  F8EAAx9cY‡5Ղs!wO uY5B?0)WAuAu:G[;Gހ57bEU:bҸ^w,w)BNG!t0G#7UU^Wuͪ}5;"WԟPZV8o99 3Bj11y9ٚyya{aۛ6991C 4oXقX59ͮ^]9~+9> )(/x[LFõ:2_J#d:D_._KAX#&kHY 09@#w?g ?c)$Gr|{S]y~wu>w(^#J-à6|v;3:Xy9B ӯ.;u\#}-ye@6;9ɝB d b܁R#v*ñ!WG)<ۼq6΍#*)bC_(ouW0vɒ.(NHD1Wtَg0#8kyo:y;]n9byݒWݪz~ᓽsYSV,3  9:0ܓ²ùYݙ年QUy9?u;Mg#3b~[3||)/*s76<" x.xK-NZ-W^RN))P,s2XV[5]_z c1rpr% 5ߜ\ۿFo|E"~?Xb ^h ima{GG'f`M2V(%ؐ:b|&DauئF&4H-24(^D@l҂MO:`'u!$C 2`Y"!}<,ehV1v&ToghsTZ*H*'MK:羂,#,4yQBe1 APqZ7좙Y&[,cNˊlDD]d9$qN#0ޫ! 񚢾hd̠R-۠@|?Da9F /hZA|RL |HZ&T)N`6 NP-q;j5ov92r da]7kH!ǩޑkg;y7:!O?v,st1Y5wDd ~~CqAtqut`|oY sCtfaXVm L Wd5JzXcV= #pdt?j$!{AdX='1LWc:a9Fqc]"trt07vc-0Ӎ(#Q"-5Q5#[[7q#%[/m#az9c"G  2B:q 0PspqPņ`^PR)ǖ^x,OQ:[;z)/32"k!3ƒ#XsXkJgJEXo5'X3Xs}8tp5rY+Y×s{do%@< Éj iyeAXLGP=Cv`P("0Ɨ` 7Vv4q#SpǤEp?#jR u5($ q >E `P=a0t .ccQ70{rȍM -x-91H#8i#BM:Aovfnf0EAn8s33pp\6?)*$lI^AAXPJT+W!7A`ݐa\0. &RnCE0qBkT5S9ES3JJWtJsJ~aMI}pe\vXXy}XZv]5<ĉ‰ Wg9_>X5 L.˰>IJL@Yy`WT $jKKπ'q)#q02 YY̩HXhcڤ[% 3_'M.#D$Q2a?Ra[UJ1(Z~tJ{LهaVD'8Zrg)װD(.@ѹ--!Dz:֤]Zx5+D#i+ ) *U OD@%y*6 6u9w-!DzE;&j3dS&i[?WJEp{}8gZkIEă(CMziٜPk;,&,fȓtyZu6r&LְDz6M(_aD+Dv"S.'%Iq VG!1,r'='us>a1v(%o5|ǃ{o| e 5H[i@j,WV{e}꼍`yP*  3 ɠ\Dn <Ϛ

ޭHȁT? k'> CP#z%^q0)QCCjǖldD](ĞfࢧA8GŏJ|HpxKĈnQAFoIRʁpʇJf0 "$bLdH!ZH΃4 \(&$"j&#f]#u$)D:fNr!3q"+uD)J#lƩR})=. [iW5jK aYk*,Z[k-K,v<J\kquRV-5^m7Y^ x8}:M7vVcCj`c? ^V6;Z=8P/ Iy>cԐB 5z" ##YC ?ۑzD=K62/Rm+oa ʣbmD+ͫ${ ƭR(!8 B Tt|:sέ\I"(%>$(,o@ЏUԽFSwi D>gu t%LAG$Qin@Q(աZuU>OZh()lh1葟*ZWjk-u|ˮk+]'n-붯+VX34h.Sd2 k/7`%LaLiaױ@ M4`b L/~+8Ed qa [ELqa9DPrAB?)fX3's<.6-m`ZfT菱%R6m6يnbIK>Dqiu#UpCD%4)e NNmFy UH5J%iF́H9v.zS)q9Bq "H.2یi HAʦ p#聳@(-j1Z3D8&1l}CO1y9Rh`\+PƭCNx]HcgyrF'-ku`6zs $ ` Q [\@ #'?`X>bd#dE$ c#8Xhqɸ>'p ؼ kwͣQJaK;mHH,V-֓.Q?S'n$E.3 OrXDB[V%㸣91 g@Q*W9oqfaCl~(VN@n.]6ro:E)!i*wS"d3ɺkBnaē.TO{k-)ǽ3X![<40@ ols7M@ "]Aa+ /y0NU!gA GZgh2 6-t[j}ڞM-ԣ[^":,~ Ba$"2$zDgVZTP2CV˚H_?s4#}9۶c/2=>x36-ٚ񑰹9Eڣ{) #A[#?Yy !0D979(8KEH8ꯈp#PppzB.|-C{mS1I:3{3;8J$D:㮊kBkäîY70"0 :4{9J$[x{ښC"8t;LtS+$%D)S;>-`-5-+:Z(5)h,y(" 3yx0!+Ej85QF-[ˢH(@[2>ҊPc?mtv̺[#GH;H1 #ҐZdú-;_51#?4(m8L#e\H6d.76Dz’d8#ˑgQT( @P y607ӆ&\*fhEIpL|['U1DI=0'4/6O)N82e8{)ķI12UL3ap2$3@9?|&$6l?,D7y8JD<ăKzPIzIp;)黲83t[T,[h@ *Jۆgx뤂ڋFh|h\FC2Hx9TSڸals-Ҹ$U-^%-Hz~T-f1SU{A  )E1*˾9-{)k[2VKM؆lhAkG4,N#K&4uJs>(+=(-XJQ,]MmKBIx6)SɏP1aV" ΰ te6f1G4c9P.s6CB/e:JŕH⯒oB,I_C9߁hZRyI>)7 ;2kű l14T'q]xsֵ^2c{E"5RSۋka^MGbOD[35y-Q\LE'd 0(Hi{d69b֍L^A8PG;s&;PAuKF50bTK•+ @^^ZH@)2+دьgm:EEMͤV+ϭ'{{1oPj:zT9MP35;536-;؄1XM09\A.M(M<&@j0xX~Z"Y0F!Ά? P-<ЃN:-tL쳅峬`qԂ,6EacT_\ǺZÃi,?(B BB0 (̿?ݩ^9բR?6n;m.ȘyH^MQl)$Vl-"Wz:Idܑt3o ;j'2׻`Zk;9. N˱GΓ.H>UshQ9K3`SW̚@HW6p,^d F?Zl"P.< 0sd}qd࿆6$h 64!rhfGDEqlo?6a2#RHN? >#oWIJEԥGt)ӆj.4%RG?f}5{L38lּy<%7S 7lː?xq)ofNf^ Xs(g.+(p~lQ( sb۸ff;yW+nn I33h/I zd A{!xv2ej{ʿ2 )BqN5\qlR?@HA'?zzp DFL$8bw*:tFQDC >tq]ZdBp%SuN`8CZ7A5DE&!TJ(3 X@)iA&Xp'D:?8X?(\a5ѐGӇ2 B ]dPEFb-n1U$F(Zci ȎVHiGDiEȡqCNԇ@\ѐ )L0dSܔm4 `4M4qdEj B[8X5򈃷kE%o%ڇ# _QC1[Ƌd|oAXp~qpg0CXŊ&[_[nsn{VV,^C2qkK~}q5U%]7vjfZ}HoA uJB!Ex`5 2A3^Xʅ1Q C$*G)OH't4y` &x eY9Zx^]fec(xՈ9D|}!ATԁByaD+6 8Z4CPjQDLʸeK;ⱙ^!Ɉ橁[Cf:x)FV8H\3ǸdHy;RKhۀ)GrwL !_ bnՃSFa2ԼL(ғ-R( Dl ^_;>Z΀DƢPZ"H`\]mmW=]=%o:YerҢqD բ.kՍnEIZITȩAe.B)At".ɝ{\.P6D~C Vӄ>H˓`lû4 \ mSlZa fH$=qǃfb!Rמf9i)DlS13u3YivVhQ"nCL̙ ,oW4H!ZMhk^1썊 |e(8B$b ~MxL614>3=z@ AC]˒A]1N lW+/͕=N7'rt4~U6 ^GI2M(NNS]oU( m#{ g 4h.tIoޮMNC*O)ÄJaa"QH\^GtĨaS$SB@+Ww>ZP*-}MToHڋ4ē~N"]f7#96K8HѬ_0Y K\tHIlc&G<p|" BrLb@=FuoEsό\/nq p fL6S{'pK(xJSs7ֲN{خȅ9Z մDCS߁>[_L\_ziMHDeHԌI٪T7y_e"C^?RP`#ER\ U-dY4ΘQe# oIv'Y8ZrUx/ɒ@#\jo紴qR*Mrs7A|^E] 5y 7 ksPHzvA6EUNlLPbus?u*&|$,b/ApQofā·ua3b|=D2GA'zw aHymUlu}p'ppJCݍ᧴^Ȁ<LӒ8sQXlrIRCjCz6 gᓑsY{DQ?};rĴ8Qߗp/5Z䗒 +|$O̔0sPVW.8s~m8IKd_>E$EoC RTRCp^E;DKԕMT.mڼtTGq/-?ECx0yM@MP_X_{&?~ha)}Ad?88s\bNdUD+Tw0`̿,)"1,/V%*,rC =hQZ$^r c;?@tq1cB0S $B(u"4P\ZfTT%XCQ")8b_}fcffnEѤGf&udGVlei63+@rP9*[J-RHIy\B"P7ej?Sb@׽_':2طo6Ȑ> å vp%#fA(/c[*J<ų '1C##Hɧ1i1tcx "zݴ$@ɰ8qH`KNa6Xo+?d'¤''"2'ԜSM)O(Js5K9ՄӾ6F"\B.2#C3pSPK"hGTD#¨R)ܴ(b"H$,s2Y-z@v#ei' v۟tJ 0l֥-*Eg^zBo ك#bk? ,hlM 2+@By 136|U#69i0ޜdrI+þ۳|?rz?Xj7FbꬥVKjˈj g4>I۱9A.G.璕ܶ5o79 +d xgm!r9R(!$en$ZЍ-KL1L剆xʃ ɃT5MiS1P8w H%4XB61Wߤ KQ a8BZZY*#KM":!Yt VBHX J,9cZ>qHǁb0 6 caDWx"hs] wmR8؋+(/}y+GPaC=L-C*B5f™L2:3G3d2-P(X8"R2`/NMe*w<%qI_*E>O.'땲eS4=iS,הD$Z-fbN~rlhcjf?hD?:ʍxEIH 8$Ct;ױG,( xR>wn)&8"D0ؚwan*C/Hz*^I*(0t׼:0]b)Tb}ԨPF3}Ϛg\}^`[F|6_Xg07aB!.q[\ Eyx$lt-636Illf6H"# GA \! i?өvIƣ(\QԔД5kDbtxJS@Az-g&TO AռL`}"s$A)/T9TI.V80\e*;6чX!ERP05 aEޗ& AHX ( pHU>P"LOp{C=}tD)lO| KzQ L{@ "{""Sȵ)"_µB]0cؓDŽK ׮i.-VHq v3m6e+@- MlA(vBS#$1 /o6nZqNJ"%1|nVʅu 3u%ϞwM z?j Z'<9iW,yxFE+%l N1i/&a2E$8])`w8U'*!kjW}Fݜ^ L#!y#tHA2l! @ZÓl! !H.R i Je\!-`L轾ELG]QO2ZC)FKӡcDzDbfcE.]-I|_XR2L(`OԴhح؍z2!"PT:;,D0KLC9e$F©"N@ ̾,Cbv;cIZ9\c!QƒI%~C r"V[ GfkG?v**x**|v+/D^kgLfnN.iŪ K䢱|̢-)4mtJ$k)x%7`.UA,n*+Jl$#rC(XbZETSbepȴHJSجX @`` ^1V*[R/"= J:L$*>M}dM=԰""(@DqtHct!f\t88;tk+8 _hKTMLO j"/A :PAP(HLIc$@)28)q)g=P?%J>pz)/ILG @ Jc-G#6 ˬ>d dlr )MNL+^+*NQkH>zTwL)*k&]<syǠ 8(B˄.~J,gb"m9R%je8B)6X"!G,@(/ҘaL `FoDNOT/BJ3)LˀHL<Ԕ QB+-"y _"P`bڱł&hnWM*GA/ O#R_Fa2##1 "#=%5UR#=2$@#_#/R(@&-b'GukbJ=:n)@ TLǴ,ORr iO~);zAL[N&R`Poa-A@"@.}.Q{wJ{h*~gČ]&i$;$|em ~C2Wu(/Dj)cC<G8RVb!W=}7|A0a*J*,J dn@3YN'thwxT f{/fiu vx"!AHx\;V ઃX(#iTꏮm"3IlOTgm7?tcqj6)e&)|NN2OҔq+ .rb|cV $Ec$\ >aJfKTV?)}CBbLP?!8(%C>J;)H܎G"e,|79Y W%RDrb( D# !5(y6_M- L e{Mz ZV#J"= Z@%FB$/GpeN:5ڊ=`Ĉŧ">m`RRA{bP 2aljtqM >zuKhDlj+gafup8wت\yfir"iHo?MM@,\ ͅbZb΅# jFi42!&ik-P'-֖7?טDQuHNG8 h2{mgl>ym#Erm8GBJZD=% KvW?vx%;חk|'ON =>J)=bSX`[; )]!Y Zo &X@}Tf Etr(eپI$~b/R21\/Mrk}`L$)zR&,"yHVS> >Hu&4'$=T&*c:0-:XW-hvtUɦA@vASugK/ r>-"aʽ:꡾,txf'h8̑.L\ќޫ\ឭZ(FR"ј&MtD2Cmx@l! l8$7Ԫ6v$Clf8ݔT h. %"` >.Z ]ZHoC]qiބPSúI>_ 9 2g fp~TΨVż` aa5P2s! ?f]9\/u \Rڿպ$TX ,p()Seh|2BY 1yR" KĔQfÆ-[ęȓ?BzVăDZ eSTrNbPS:S-/^x59g'S2ON+Z9g۶%pHC t,X3΍7hB fC % יPKnsWŕ+&~UCWA}?&\!x֑#{L$OߨJ>oSHRM)DF$HwjHQ؇Z rGm QĆF2ht E?qbB#b_xTP>UOjHT>h)VPaFPAPAuWx ZQE5 2x#P5y2 0 ,ʢV0"."?!袠L|:CGD$\`hEI!<ш}nsJ95DTQ^(H+ iT!ǵnk:,ODIђSWT\T.ETm lUWyɁUep?IYx#JG:\ +Vh'la ΆX(!J^ƞL0[ހ7 !Ns8~QjP `85Dm [fHHgDvڕIz٩N@Zyd-2xZ 1 LaW<\NABXG|?5IMcB3XA **~8OP} @a jG N0';NN#uc>ł <kH'1"\;\TR`5+FiQRdDWC .\٥iSFUfdA챎yي,X$ LգȌꅰXr}(P:!s-Ȋ&HJlfS,EZ3-$ZzA cpy  owf\*!qޞ 1:B y!HtGN8E;8=Cs\ӋJFO9oiBkyg6u6&};%_xMڳո%-R9ONpJ }ϲˬ(oQb.31sʧb07W~ PRmbbj=$2_P1VRpw9fj%";$I.yMXiGV"L*iLW'BTIb'!-q1A"q(1S}1}mki'q4咭q8nJ3@ꀤoVZ I+YA4%f[JۓH#Zy/00Fo e_u hS  9V@P* L%2pyciP*Zpҝ rs8 *`r@M7p M!9:qA8/[`K!%2"K,;g/1Y%jF 若fOGXHm5}XM.B2,%|IjhW3$ s],NFY&cT1fn)YF;gFŕ_YLH#he5D3K[Hl%]CY<]~ +IYAGrp7y @C8p*Maگڍ_ DziBs GɎsG0p 5x ΍`a!)8 BCx6Ar+8iL_`TX9(FEѺ،˿䦇8D~bFKW792  m6`C|2}bҩC#X!dVeJ<ס%660d][ On05U:3>nXWH53rJ떶ȵ787/AGZ $7gRggqOp/7Wp)jcDzд *^N^*=x\fm .rs.K>KT8Qs!]9WX!/4πP@PF7:qzs2@i!B݊xtJ0;N OuS>5 k<9MQ(?EOL2\J5׋ƞVȘ` qC-T?TޒTGVJUj%KH1 )\<$ڑH4fcu8_" /ɁXHpÁua" AX VX`n 0TJ@azJVi 3ʁ`Sl8F(_XhF< XW)Cߖ6VSrXp'ŝ2e-u(s^2l ز̻WКfӳMh UƆ1C)҅[\^CK򒓽\K )_k+u58zckZ (Ayg{@E4-2l'DcPc4 2"̡sj$: C 겇dǞ1vS@.;Kv2DlOE(, rƫ *rzH , *CT65vYdj hAbM\mKDʄTd~%xtpkGċWWȅl@ pDbkFv!"7)#0x)t\q#jݒY*U$WQK SnۂjDc"&_LSYʪ176׏Eza$Ѝ[ GchK+=\wƱx_C3:{G[+ G]fKmZKVx)yry(`YB4XDЎ0 HpE̝tg)nP Hrk̘9O|E=#(hE*FهDφ>:DwX@BԠG&dg,{u(Xma/9B,(N^lh2H*IGb, bבG|#E?K$eG<) ([/` f-#r\EP0"aaĊP3s5r.+9b\X7Q @xvsb#5*Z%Bx8 D ̦lr"C*-o4ؤ] h5ۿvIhtAJR[s!((JN Pi.+K1 К Id:y)<=s,DGtTHB#B8~c9C CbP =“jZՂ3 ډYՉ( 0k+9ZUKDCL Oe$:D= ({0EsCXEv!vN괁'~<O](&W@OH))i!/ @, =+` o&PSC5T]xqѫMm ,KRdxGehGS,5x?G0}& K , [ N 4 +xh NA83 JL,T[=" O{ $[ؗ4p8s$= Q\HFm: Q1)3BBpB7F:ã[S#tZ8SV̬0ȯX DZ ^ɠXY V/2<&jU%αsV4't1U1tuWWPWu!ƼK()2ͻ&h| zj .2jOY<(!80/ ^aX ?2YMٔ>Q èjٞWxث%U,+KxZ)ꟻ2S!ſZĬV O" ( 0wJpkRȱ83[@~PZ=R< "INAɝD=䉒# 0MD5]=)]:heZMJm^e95J7Lޥ̾ .L BBHKfv]a.h~/* $E9]B!0 ,0D1Cj&JŎ9?P5spTL( (u_@~E㱹{W9$O}%S^ܧ`yƩ'TPjG4HSі#Ns)j Ȕ@)ѴnYFo?[nZ[P)[$̅5x,`м 0.'P#9: #A:X6I 1]ҕGem]KzL>#jZAgx JT!|*2lMҜY f Ŕ1:C4 ?)*98T;p~sr-W>hpű娋W \l3& @Ѐ׀ q<:)<1ĵx okXٱ5*ѽ!VY jPbt~[Bas! T V790@?lS4&q0k`I56䉜돬55kH9ڮNY#G>tȨ.Ʌc @ 9B~y-2ʅR S~e YO :8 )tOwHT%˾T8Q8?r‡#TTImK}ޕ& ;% oN>q68Pez#5ASt)^Rg0`;.Ce'vbMwz'X(}bȩg;t@xdt8KbR Ed5ꚕ&d>P-GH WcJR[ 7Y6ZD ݓ C iD,2!U9K& gxL@)RT'1ϑ@u֟eYԭu]maAm!eJ-1pTj =p< 8J.If$g9)j M*(3|vB#!O];[éwPN`EVdNpEk%5B߂"H :t0aѠAb4Ϡ6x0 r/KXN=ٰE˕+m a}f(IPgF}IѦK5tI&#[VQ&EnUn\pkIri%8*TdV#GyDՌd G6OHpY }< UR@m1쫭Jz@Dώt峞1WSUo3&L\TףG cs$Hr,Xq"ZQ~ l COApX4)%'uS!qO1zUVG@n5U_zBVnR͸Lb "A"J예P<Ɍ!1dHԠ` =.JΠ "ob+BrΙ)șO-ݝ,S!0?|@m`)D1lU|J3mJ@dB@BX NEH5Ϝ5mZ" 1aZHAaGwU&E2)$l(jFx$%$E(.Q%lTZBZhaؔ$P5TkPx(%LE3ɠ $EjDͰFT%cd3 %8e ʚI BU* %{%Y*Y^`D Zdq1&Ȁ?8e"]X`=Kd]& ]f^&*C&Z+isn/bocz*D2R@z**!!BlBا,A[.D, T@`j(yOyfRQb-zܟɟ8mɈThx=q KqQe\ؚ)jdhƕ%Q .{e}e\ȥز)I`b:k]-ڐ<6jÒ>[z$nT]J Ϲ-ϥݺI=)nfjFթ[m&F.0Aɝi.&ӡ,` f@ϩc2o*0?H;1oɲFOپ"! Bf*N!4kf37g478뤥 @/U1fZ6kA|D-u@NԱPEюJA cL(ΔjhdjDuB =0A_abHe%l׾.:!μA.I3`Z`iȇ|{4ซKld"!P`pwxc^C!UKMQحX6^1`q(s16 ɸ%x"MqUa ΟX!mR)Z m'$CNegz7.|gj/Dr hJ&&ڡfll6-(nfncXsHH*q;;bَ`qgq!\7H*w?7oNHwHx?zVgҫ%=o|!<k7ð8SQN;\%I-tV,md8* )րt|?4uK$IIF O|׸ 8坞PÆOJ8"K'b&R8#e/B6ף*01 cFꀨc!NuZ?C_/V$.apO'Tϙk% ,2#TI6Lpre.jPhDCx.)w z(Dlf)ANز4IЎsuv -kPAhk+ɑ|t7(y$%NyR;zw:J{!'&~!Xe=늾 а4 U9C9CMak* SHwLݠDfd*E(~b9Qv*]˻Xtoas8m"1ñq-iuRQMKX}qyv:ZN[휂()A`@[?C,iJn &- 4&51 㜂"X e*@'KEa:gEPdv>cDhK#fvo D8I_!=A&CA"@0lP? I4C7쐀 E9|]\тYQ,QR{]٘$$:aK lQF ]tE}Fw]8ũ`k7?~x`@Q5@W&%ֺ"ngd0+)x"9'cݝK^- /_$η&b啉tTk(@qVLqj$M閛j֓NILR!Qm0u ؼ'x%/kUI@<E,B41-Lg: iC"" eo+)XSS6AAmN%d? ȈӯT  !(S1agte J8sM?R&qAJ6'ljP!v :FT7CJ8kInHP-U)Enp7ZRABDIK ݋DٝDvSǰ$:1=Nq7-Doᠢ[E+""Y78r+˿MwFdȸm5KŽ6myho|($O@:wBi  +jPX{UL^+&/ɂH>R &)K5?tO' oşxd3hO(0S BWC1aJL7U+)Tg53ќF4Kyz B&R F9񋭚$&u*I*tj0h= Z|ֵ*Φ9E9rq%EZ5{Vh` 7n`ZxCv-l&F :dJAZIeI>Pٿp,U6j\sm(ikڵdeڧA۱ @ʞ4HٙsWE{Seq2t=X$h } v/WF-+]w0:x?<Lgw JIʘ$!C|ٯ]' Lz5XSM8Q<eAODzTEY1R$P(C߱t ^$I1V| JGN뒛DFk*jΆWո, Z*ST,iIy#349q~$ZؓD+͙jʁڦ6>YL'kbt-1KӁ4Ck-$n0]az{@늯zkk!6Mm@6$67MtH!a'$JvLIho{cuI;WE5IiR]i!~tkn࿶ vtGr$ t`OQΉxN"Ҁ^ƥC0nZ.z]A1%ڥ&dB^b Ph'|n9Hd+bfņ.A}lCnިnzNxcDͮ@(D,,pfH0,T\fl(jn+ZŤfFtDLtdrz.C4Jj ` &0ȃ((\ - 0 QUnҊ(Zβвڰ $L$ij@fCpdQ#`$)ʆ@h(iN?~//nn@ &ViGڜϼ-@vNܫp@Pʉx Pi8d"+C!INK.zA&2J^'e  TIxlehff:$N:'`s3LndD-]У'Oh"hhh0)~D30h[e7*"sZ,TdGҭc'# 3!>$PNLў6N6"2!  0hBE ,x#hHc̏$z@GhHTIbM멞¦$"@\ync|Mֆ#?Fnh+](=nؠQC:P$ӓov6@/ıQhp@o9Q<ͼ@wx $OQ%&v$IH,**+v(@]Lh#_ $c(p0ƪÃ؈2Ĭ2Nf,%$RFCLt&Kp'H ͋z–Z4(O\'h1)4P([\Ȣf*2IȈ*;D~$lHfO2$ ,`K/-Ab)_~d F= ILFjijEdt9/$:lPOmZ5aip?kBnԦBoADjCzbEC4ב |<5Vo~Kͼx(sUP`RVGD+J2>%7L 0ˤ', Nb+z"ƨ@)(G~1" Iֈ3R6IF0C؄,dI+sV(r-UFF'^ 4;NʒfhTF~(VFvjgj~K5&*LϊL/. :K/ӠM ,4/@ ()*:rr-HsoZb:>4/f@o67#M>U'SW7g:olXKAFFAJnD7{fdU9Yt?WmXqosI w$4P5[WfotF&3b'*6p98L&{ʢ\J,dnC.afaM4 '3̃DP EMHqVmjTZJ96c:I&ӳz֓gh&84N)1`fbeK2*(+Cczd fd+ l`MKb*/*i/'/!kB{Bl]IJ6#Ok HlЖ"&I*˖דpOՑ"Zs5%uY5mld:55.I8o?Dn8DZWJ$V9Et͍U XOU9d?Ӛ5>ODx>U7MUFH/;$b@ 9(dxb7֢`Ã\sJvD@*)= FƊ px;{Bc9]-W9iO9{"9֒c J#/ * -g#̪: CGƪ)EJEQVDi/h:gR ZMi\1 Z!ٵ<$ 3Hdߎ㷈3ӯVaqFSv/RVoX*55VR]tSҦ&@ﴄMݘn|zCoڎt3et]BTuT_8dCUWVe5!Q|dDRoym;@(eK٤LhUb:HJF e rL22p9]Eӓj~K2s9J_gy:c'J+P$)as { {җ$nMJ-j߲fl6C06jb%+zt N):P)ZZ :Pt=@>>6VgoaZdmڌW A1l0o#@:d(ޤ8ڎn榑#x8'WxCj[:CDx=r)$8skyʉ @s2B3ӏdM 9\@8fn'FHtlEIlb2;qtd74Y$@ne7C/C+8K9(첸ܮc3c G,84>cEc03 @jB-X j :ex֭jP\{*{b2ģEokF[mQEi,tV>x1a|7Q\\ݦ'uRg猏<}jc?& z+$8BjxMuAf ZMj]&欏B)IQ43,Uxe;-JPS~->>gSV]Q EmRmx-%:6|xXAd}SKj*eN4 ) @R ,^@}P)7k|D2dٕ=F”,S 2!FؿT"Ԟ=t,C oR^(Y/%,fpYCIL;w$XhL&ה SR]zUV*EkL36 !E uEvgneLZ O(AXgQ*Q4Mi:4OʓGCа=wN3죌˝~M?26ȐTT!,hzϙm?T/UtZÅ .T1q+LC?BE?6  ~NHaw_#TG-p$.(H4B"A+"H}("d@(-8aޗb#袄1^hWڈW^gC_V[Z{BJ?!a 1BuLTGA(k#7t>f MTTEIdwM7iENV`SLlNAE+VNɆS꧴BkRiM)[ e^mW`!A_YP,J{ey{e)f6AjO_A yk}Qo=6Jw|(qXcB_VN)g+.lQN[s~]g(3NcgaOĆ3b/# Z.ScɛwF6\utk{Cl?ڏD4hhЃ"l6(Ћc  (%ihCHZF*^1kSۉRhMz}Җ)+el0LqsL<@Lf[3ĥ,'7(EeQHEɑH*KT2)1oxK m*?ŠWYeVa3,>1,yR~q=Ae#/fdg+1Y?ԨZw9[!-wӢ4:HhAX!ٴ?xPt 4AXKEQMJm"ġUknz,j)CWb㖾ꕮLt憴G)ǾeBvl89UO.补#Iz(a% ȺV7r{L̞Ȳ&HJfZ7OV1s.`WE\&#ͧkXb~$gE,}aQ(\׬\O{ӁTPQ VҐ R&ceO@\Ay'gU/ᦛ d? 0t lY!O{9=X52^S*hbRDU*fLږj;,Ϟ6S6Od+@,FNw ,AK,*AA8 TBfk#űvuʁԀ\%eeIS^ҶD21.sM:5fEo} 'OHMSܤF9Er3wXHGV8vLr3'\YmȾGeQ+Ni?J:JAJ c6%SPT{|9b 6MRs|q M;؁XL6} =f6Z ; 1V:)& RJ['B-j8ifT?1AV!$4q1S1s@eKr ȀYdcXT=rJdKd*GcsbSD#!PS/F!tTIr q@ST*3rratoeTbcu>&AT}Vx7o&&p&N(&?vvpfoAawwyw&t7xw7R"7i#UY!YgKIY.Q4J1y1qF7F"1OB7&   fT- 1io? Pt f%| PqnFn.s}-v ד1!~Ah#I:wT!6gE8 b?x8gqb315d@D+G=+Kcsc@rTl6rf&q"fau}t#%:vW>2+òP\6ÆSPNxghK%]H4x*2$FTF[[Jx*f6512YM$$S Fo$nxxaR%V[Z$EHxdYyA8Ca7a26R2B5.2 p T0^P^15O9OW_ҙ5h $]䃚$Nd)Cqogzг,{>#te'@ y@N:k]h!C.fC8S) D Ȁᩏ 9؏@ZYB:!d"eLYC K =d X PtZgb"]EFxjBfeGX*zB"EiaPAE#.RjHB$G#=)לxgYQ37#.wEK%2tgTvx+%lʶ3lD | T1kj mq:O/ Q3$/hGA_u}g1blg+~*UШ\h{]xg]xHvb(oA BPBPe@ܕ9r!Qp$1d#*To&drK(JuZ'xXD+dS! 4`rK "Kr RTKۮ #D!i!S]G;#JK`-JвZa#UP#bCyb9UU6pft7؜i8x+@B8h($."K'7VCR(R'x3;ܡa)R.ʆbFkJ ۰ A5l}qU_&/Gէw05|!.Im.I*29uGy'9wB(0+Eme@A 0P/@p Mhlb#r''LtLꝣDK xr+Ȁ\;uE ǫD 'Owb9~a [ j\*__YA)RDAɳ'OAbyسBLkPR_IXJFvʕFdjf9ԙ<-[bSM#,៍F6Fhj^#0xl6)0;WÀt5pRȑ-Vp@5gs<#i6RgMl# `jЪ:6ꦊۆ%;6^| [zث@ͅ֍['B3= R؎ u2Qţ,;sQH9S4}:O:xDO-cR~BsDF3 h.s PmyhsI%JrJ6QHo[l}CHR%)>DzE:aΗB2Z')IG:IJT=cu  ~'g#_1 N`EYxZe8nGŜ@=MMa93HJHhěhJGDȅ\ 1IRԲT@۱pԘ6a#>n͜\lb,Ξ*ܖ\4P?dӽ+ +k! ] bc|=DǟH {a3jN2ǥƸvͼK l+:Ú.*-,cPR;H^ZL4PuzbQ@R(R 8b) Aь !aɣ P` I".ܸ!A9Ӧi'm҉l(9m 'ڨB/K*B̌)SS£;:#8E82J(MM1KqYL:@<̳37RG^ ^O ?"ߠwdp) A" P }$h7 8E&]]DQRcYC樠``Ak됅a:P2&'(՞I66]N#"T \WYEL KJU̴OH:;CSd);P  .H@X_CӉ lMVD*y nV@OtN Z+t4rE =O*0Gc>5_\5M u B"!>*|YxMX$4gu=Xu"q+H,d`k•\= X%^Axٽxٗd ,A\&/AR`XZPb%/"6b-u0(M( %8`U+S4sHK.&T(IYUYHkI9rv^sPs]NȖUGF4pM->SZgO[H 5#8?Phn@X >=h@ ] 4=* ~yH CY\W8Ӏ@Ȍ"=-5ZVqP2/HB{$,#f l^De<OXJ[h8܈#nxgGʭ$"F"Q05p0`& >ܕS y QZ~AEcrmp %pY`ٙ=&!Z8XӢ3 'گ%Z',r#Hvd+ /Z*TyށR r<ȐdJSQQceS\h7OL4I~)WcspwyŢMV_{enlb%twLgf-PW 8f!{fLbL8ULce*4lT֖E ܸ|0X$o솎^$}#$(v)rʕrY]Y@Cٙ~ɽҥdx^U GH珃7yp#rH ʸ+-3zZcaϞ("D' @BO26l"CZ<"R)qQEH-`ܹ+WfvugH=}j#TF!NRN DȖ 2,$eJX  iQڈ Hw'{ń?ߐ'|, Jӽ; ǃwKGAkwg3tլ*pm/gc ۦ6n[Dn{mɂy'_yֻ_OMpU bM?JX@A?,d3NtpR D? AY!F@f!"!jb(J:~ 8Z#r!/(K!e^)O P¡phYXcn酕Vוdn9lyQpo h^ . [Y0 )*D@GDEelFO)Q*0IG"eS.]T-4;?0AQR%$SjWBAԐmU vf{\va%f^a)Wd CgU/xed~odx@l vWc-^yaõ6sn-t1g].W^v3Kbx3\^w{dBdXPׄ V \haAyZ$~BF" 5"$JM:v' g) b0pH fJiyWFΦ`uuÕ?beY~ Esg'{ɧdih:ztA< u !L)A/HTϔ:UJq/47k7 `"[?mGNke1% q9Yr%." mԵ.k]D_a9_2x A`4_T(=6 HM_&2^,L]꒍q&&a8t %v-oNu)~G93/9Id'>= #*( r) g(!\ڃ4l'["MmoV#m$桾CL"Q:ɀ $8 <#`[RN t 5U;I7;,h&0I*C,H %(CE3bьW-Rl+^Ԝ"eG@`ԥ5Ġ 5`Jθ04 S׸d!Kf rb_DVCPaX%ŭʼnn@g;gNvhF/,瑫3xi?VrƂ$$dJU+Rn*i\Q3BJg4"!n h?ӬVc-2usC]KrL/o[TA?rٹ?%fCG$$M8r@ QayH@EYpZOD,SD9)?|r%-_)TV0E* Pa*z!R0e bYl\`(F2!gbP3{ O/(0 3g^a#2U33v]p^L_D64Z^"Y˕U;1[x:]b\4hm+f2'@bPW4@j,Z7p\[)eFdl4 j1#];J‰rp:\?RQZ|m,5ՅCtiK8  vI'陳ӛ(jsTzGR NrLPXDTN)BH@'N@`e?Ua4~…= "lKM.&cG)c!0yy w՜$q 9t3*?:V 7Ď.4dpȜ$ǥKsPUѢ;-YЈ g3#T Q2A]AVj,UVmeZ=iA\&ΈI7tfTp";/"G>z#,D{UFImJrs CKZsi\%sOӖ0>wKF5*M5Pbx]i gYH*HJYF dA@PPKH3WDD0i X jL9c$QaFε\ Eٜ}ƏqOTxН Xu/G, @e(1@-V[JXUt ^xIہW)rxUYʼn\bRbFkYZ9 &妷Ym1 /XnʎzN3SNz @LtA6.hB5'bt*@16I]aB9Ăk2d*1QĪ) ^$1ЗF^ -)ʘϔEjpkIƼֹNXH ɔ/rpε`l\bdp֬a ݍf/C9ۤLJ?圄 eYN|aJ\Kd "ELkȍ+ ` *"9M׉H5bbΆk Hfl%nk- RX@rجjkR.I%q&{Ey$ 4+'p.ax,?ȂL򊀸 h2@CnbUFx.C5@C2B4&Q8\E=Eҗ0]lH.m퓍 lDɚsd^ ʮde_O ́ ) TТ oEHC81?KCtEΖTG b鸐˔]|eS'5dޜq)ԍV`ZH}R'%.k"AqHfVp$&N(!bVZ}@2"%ȏU/.ӄ-s2ײV}̲ s^?'=i{&bAg3I@T/^m+j,+<5C00?.(9WF_@mU PK6vF.HG]ȅYZ $%@hLBd ;`Y4gؤNivХnhV 3A,XJ*h\Ax|ĎΜ!uIJܽ[zYmiqr؋Q _M ᝔̀ˈ80V>VlY[K`k9b5Fᐞav_8EIp^kQUq2+yԦ2I$X*û` @@smħ/2gyBkzVk*>ހyi@53Kd=DXŅǴ@y0Y8I.lPLi]h4\{8$yspLMɠ_4kE``$ AS/Xl q|9_N`?'ZWdӘe8YxȖFneUd k aFM`fټ-c6&%nFY#Rbeka(ia2^Ha{(Q.BIZl^Ve5ers|Ywuɇ=!v(@gz >iOoGsim㶪zkvkI`&j?`n/5hIeD9Aϲ+;nyoszgmS7lphZZ} vpl~!$κ ջ M*ESF$HKDDD`Ek0ӞĿ,F" Xφ #Xr_,0K;>I}! %y*B@$Qn_/8µԜ;W۝~  |%h_.)P$"Wz*hBRl(0Lt6*+d!]F_>-G %l%5Tc0 )z椥Rf" n"nH0"B"ήnzL80F;L@`epf<"ehk8L D>!jvF T-d@$B djꬸ 30!bEbD4nMt$$D">vb2 Ji8'V$jDcCVRK2-mVojM pZo2 gk #[㯂Шڲ#Er z'yR *b.b~J:tf dl*@v A;@ edr>L eF` 9@J4JB**dPg> ff 'f:ʊ뎈BH0 n(xtXbR.5Fz>PD#*8>s bM HO:6Wb3Mf f،ؖiwuW'cLVJ9=WT*3 +5?zē.d\7Qp=ӕ W)i&^Ym[e HX *0"*ZUSS"ծ# $bDC $F: Wh)a;F-*.x-6)V)#b_"GOڮ;@= ~#J‚#)TMtij#iu&9v*=6IC l ; "NT V vi8(f <*?ja+< ԨA`H12%r'mG>%v&mOSC(I41<ݯ JZrPfiu|5Ҡ f1 % 6%C2Ʀ b, ,.FWjR^S)|N [zIU'4\g==×=D]7k(g&Ne29lA`x@, m1hv);@3 :f:Rl+D0k5l,RDR`oFI2mbHJ rZdMؤ6klPbv3^"W^li By\F\H&B&+ۢq$u%/ѲJ.=M|ɑ̯p|ϗt"r:-t2mG>o½"FE?_d#IC6Br,xi 6j>09:Bv D¨:Z6t8 ,8#J,aB `i)@BF0nl\\HH2dPp 6$˞Ct5Dd sd$pod49LQ "CMw]6 HH.e FxG$0\&Iz12<0SxKٹ}]\pٹ/WV4(`&l/Sd(c*:Z9\#tB4BxBs2X# eZ-. m1h^ %4 Ѐ%9<`bCLHڿ  4XIj4`"6hR Qb)CJE*_*yZZB (1C |lUUyB],T/9 #ϙ@RH@QQc8n|7 ?MlB0\6o"K@|q_C%/ʜy %5T!J&j,C[Niy9Zws7h@زF;n> u@ 0E BH6C0Cl8\5G܉C / ACc6*(d**/ %p1yHK>d cR Hip#^T=Ue(\cxY&ƒ2DSN<PXŊ T`SP*¤` **.& &4$C h E PIE^H%2*,OJ`4S3iIETY Zg%i[du%VrSR&+UY?ȹ-Z`$=٤Se"P&eLJgth7SjvvAD@#61 0\0FJԹ UUOx;L]{CW1?4  d =%(M6b n8v12;b/8c6mۨ\=XԐ?H/ 'P;n㒯jh+kb&E Hp`qKe_0XS@MbtX1ֲDM[@P}b\O}# * $l*$ȜԀ:;Z܈]c]7~5(la1VjMmk*D*(l2 &l#ȅNv(^KJF n G$"GQ$-7r5JΌ.T'2S\E'`vX N׌`M,/~`rN;\R)=hM9r?RP-ӪU[*)Q PFŠ1Ch/&>zZIV-+TKQEo΂ L5Z+Z⧤-pE+0aZ/wuTǫXe$QbpU@c46 bCr::0%_i3y&ƴn!1&cm"1pkUE4]Ez7q%c!]dBԀNZCsu);!M ^Qy8#8Qs\rFL''Kb'%hp6w;KO'"c6.wOGTN!@QdSIXT\%2As0)I㭋/' {O0 "'?I WGFD:٩"g4_ e]q0 ̫Y;?L3ff1[]J0s{V"tn&=%@d*ljŘۥxfY%. \2[{H#6odkTHvJۅZgkTBهặz5qķl ml׹(8ٹ&ݵqS[%&} cxPw[꒠YĢDTM`Je(9o%TR`|sBKͼ-5o4SqF=A-8cb(DA7jq. SEqR-PU"'bP^pp KC~tPDC$1tpK5xufiWw Jw!ugfie&0hR4h*6hskhQH5~gwVx^IE7!xJ!Rj2^37!'2Fc#%vs"S-[sz]C8\Sl${:ģdvQ|NG;xN2&ta_$5;u ٠,O5~rDFt`C)cAB:[b(H/-]1M<>Rd>A,jQc*S(GINo}'`8)oSFAc!_-b][. .<':t]) |D% XQJtZfD7Rt7PI(iu>1kAv+%hYGYYC Óa sHxi!5GxxZ EE!Rkvȇ""kUC61z*)[T$d{9.\p8Šfu<@^^(@um^n8",ErOnROETPoavTw;Q6?Xn%pro# @SBFT`cSbqS ]"qrXa+ ']r(S QA~%Q9h TGFcqJ64 *24*h6y6 2:Y>9@م!125`c!$ tj!&"W%[WJ7W"rJUaldg{Q{Ce`

AI2u*OCV*w5~wexI\ VZ 2[5"_Ą1i[b6 ;6[BڕMk$Jt.JhI\>"]$HR{+Kl+x agӥt"n]|Lm`]#=)IrWVqu)O(c<ř樇Q $41Ryb%e_Ѫ8M$gD܃@5B=gOrрQy;(1 BfjENHFQjꓓAɓ üwzig("x#xk47+y:!A$R:yTke:J"JCZɡ$0jS98lKz8L7`&r.Q6f:Նe$`H<ϧ*AOPOQN;=UO*OZ0For r6=ܲj(#wab$@gn\<)FgrB4A1s-s!l){{z9 չ]̔aE!gD`ƃ#V0t[Ef+iKܓj K|I1!1¡I7uEU7 +Q˼"66훣Et[B{Ƽy\+7̩2%kzEq 2Age@]mb^׆M0QlbfSSk)(L(-W0V݇ə V4$(|;1FfPG|Η%u:ṃ$jtS?pk*rTM2 8\A')}hS^ɧ^^  =)>v.m~(`/}Yo}]M:cmkr1b2m)5wrRd$OqgAA.Ia,Q<q`aQ{%q{g$~J*14~Py5tIvW$?{b2iV4ZN eHk 2JdgveN̜=>t]( 6626*jPOna !~P>FJ9QV*W*mrQ'T9+|<|qΪxP2-ʙOc꘹~sZSg} bO>3$팑XPiqaN"U(Mo[(ݐP\9oqϣ-4JRt ~&ݴǫ`⡓ЂN+)XqӱCC)BuB>Ue%*2I K|Z O? h  >჉ (8PF j|ТǐM0 J9 9`%314ԠEpiRIr!PiTs W GB*k ;!'@#x3`4O`9`4?F1- 4wΦ_ @-&DV9 `P[i b]tc M:[lcsVYj\Qň1__f'/^?` 4* LG8MBs6 q8**A^,XnqU/FR# ɫǗCg.X-7Ғ09T %lz&L(#<5R蟟tzȣ:4D 4P #T4C$eI%饘6OFT(2!V+(4bG bŕt4)b~ @/ ( ,9!𢌱C\8],&;!r#KnΫW :묻47ƿp-BxK_CbGk9隣9 $&D/dC~N@5Ͼ0o>O ,+q;@ + ֈ,+.sfCq@XVѨ#vqT&5*].*)j , 225RL2DL/0F*=3꣈F#>GSP'm)Ub t l)(ݓJի\XJYBVWN/Mdݙ݈o] h0rC^u)c7^$#>\D+D @Й،5A i50d Ns1T:Yi(9|`F~ҏ@GKhyz(6yBi"BH\WKXXl#ۍ"-IiG~t7mWV!))@dNK85ENr (qrz(DDQI$EuI .LulO`ONwD!?T*/V?X^%y,򚿰;@d˳0 {d2 Ԋc.ǠA^fԗ} I0~w :5 OgjSh08I1 Pdrj,:9ZB넦pS>4`РB@^L (E7471 QL`ψ6-QH?$)Fd+*x6nt%4*?(p*L \KaRI#V@! G*!H#ChOD4D#!BC_JGH2 k4jⓠ f%CHh6'd!A@6Țe\рN5)~ Z2Mntt 9iy$M[J4G֕U촑B KDW.UKnUWWL9s06"$^1ifĶ!@lޜBEFyT6! ,4wZ@iZڶwD^ۀ61vcK7a3,K>f5bi˙ t]&f 3~fTTL;vilQ:dߌfb Xp Gbg~7ph/ #V{PJg.4^ss0 J(>09"v̑(?@kPycy?*+41"4 ]11@sD@\2G΍؈F`4d2/*/3:' AL$:+D;7CӁ:A3ȺOb8B: AxP%s\)4MB?sKlPbLCq&6LJϨ×ُ&: @頯4  `DҠHdZKLChKE ˯at ] R L0EK`Qꢏ-^$ʨ 1ϴ)0{1 eq<hȍpk͒[2Z# )I@p9́0qTNy[9P(F):#$NHLҁЁe ց 0LeH)iEb6GݧHҀP<IZX`DQRrXÔ Aӣ]ٌ%9T?pSiT>Z'kAZ "cvh~yLX|t^̍ ֖f.~?F8sQF0B1#IDe N8K6Fp G\PcFrb_ck]HOV\djOсc=\q\LTJNFɶcԘR^OK2^-PMؒ^PT$s &0l9uZ(.iʙ񄋿u2D֧0 㞍3v qYgN/bXhŴL)$b8$WV7 )rjR_!T0Mf{Uv*ƶ1?igܔ*v79  / >j4o8y\#{\z}'uHOF7'k׽V.HICxX?Qլ &s\젔 &f`zK{rr֪AqޜA~zcBT% @p19اl$H05Cg'zg+TR :^ ~ڂԴ]>W(·9GOF! HGb#N$$:CEnFv4 3H (ŧL\B`q hb? 3MNSO6ѩN &FwO,4!G5br1;r1F-5MH@J~U ԥe7{qryd%H4wSdT=nE7cM=enΒ".kUXED0PC >[Ux\L6Ƶ]f(I-|#wj) ~F8B`6)J*6u@ Rl9Qx N1X1nI&m'$62dv}gmv$7%HJ*ʚ2 A!]:}CùLS?լgLXd81=c:*'1cΔ|ʚAƢ@,Z˯'\AG oSP6l2-YST(PRa+ Jİe]shA`f(gEE Q89` ri\"`2b sd%d(4 R C=ͣBÊ1j89%@RDtVde m"zxBbr~J"[^f1yt[15 rCBj[N_mۃiY=[ ""HN:*Uŕ AxtB R ЗT^+ @Ő.wb:\jՁU8' ˨Wt<<&N.W:*Usܢ'6d[ "/|ǽAp]SYK2+& ~2xkY0oKb00uCQh#d\b`U AXE)9Ę6Lq17G:ʘxdh={n{?H|-YҡIAo<,7yD"꡼n1| V䢊8av ݗ6Nt< ;zlDf;`]غ8ژ=B."g b*%֯~kd}vlhTS j/V.'e9Lx_+=6?1k#`Ԣ$w/jq[9I: Pbsw*Aǀ\P}DPq 8p X \ Q>Uʸ?CHQɈw4`]A\*!A]ǖM\a,!t]ݬ axȏ`iM<] |h@RĤ]1`ʥ 1?C\DDä8h=aaWELU(JPu^՞rζ ǵSTPEqʯNH瑗I(JRKeWVt50ELܢAĀK[Ƅ_b8C$XE I@AhITāī6> 嘲S蔋x @P^i DRyМK9BtXCޤaFĤ!b!$S>RxW<4@@xXĒ8Er`QĺX KRȘ\*q]"d̵U(b5*{DWԗ,&[J~T~_OFCߝDgcH- 94H6iо\ lAxC q;oHІx1` PoaEX̫D Rqr<#=TɆCDuG1U $ $A2]Y%$ 釂P94K baґa$$=Q]!:PfdmE , E(mZ=C݅>5J~h ; dq\R@RhL&̞WbpPQ]f␆׵FSr delxcNIFvw8 2YcI ‡=vRYEU$ gE^AX!IQ}n$A(+ G&VV$' )(Y]C\uHC^b PF^Vh[@z(\o]ApɎoQE eKPFD%qZTH,P[<x ح".\@US,-WQρ"tJWCMX=Eb(ݩT=#ĭj*OĠʦLAe AqLGpR JT€R|@`j<(ǐDUT@Y@ PX]* G}Ѣ]RGbed~F8POxXƒ$-kGiYHڤEh=Z(+V(^.:b 2a6B EV+b%jpWVj%2y%oER2Rļ~b(FVP~evG$W>/2A@y$C/ r&2,5HOԎ1uњp2i%D5yb){Wc.2k0,\`ZKA0 bf±˸8#ijn6֟L-OSPSO=L 0m#A1#ut! ˀud4o`Rê fE11vRwt߉k>HFHF!̆`!ӡ- (ePCQK(ڮ#!!+f-4)ce:1i^ke-2L#"˘ /Lb&ƴ&NE_%őZ>7s`)3KƓ`N65fI:kO066sCEAH`i0lNm³p -Y6E nrmA!1S̑YUwjL`1Pt"vN{$ &A`w̪D|F4=v*ep'AJH+@ȚaD2 G(ߑRN5#k%. uai8nV(V&%d^օ^r%q8+(Z$2,ppH+P&8.ޯ3?v1 &4/HS DZJGKt0Bp7Pk)Cl6n3o-z7#-X>L/>L'vn:̤a ]a'ମ {WXwG.*k,Gҕ1(a]m FF8](?Q22J;V VW[PRNCnZoWsuF8)T _PHaP:El[^e"ޢTX` g .ըUA7ApSffl/u͉NƂ-#y֟J&BphGaԥmD,4ۆkʄ*G-#YuL+JJq\!ܥ=]7^ krRuPL.^뺵7GhP=`[:-J+d /QR>%J{ $%C////_D-OZ26JC,{rךEIL^,o_no}, (0⯕/\I0oc[؟L)Nhg4te6RDEM6 ;M:!Gm|@PPA@ TP*P8q%b- /`w O_/p0 cÏ)&! F<XlEVXAa% $uQ]rHIMhVJ?A+E-CK!@MlS4ŚH!,j#0!=Yr}⁡b\駚ZҪ=j*)0:~rʣ:klkVd}+κ)p*k0Xj [̮f,pबHr&D P%& *P s uTbϱ" .kxek.rlWLX5_[e*1Ɣev \W%kX4Êst ތcW2uĵN5SWmC~.U]\SRm/n_/9a|%M( Wᵙ]Qَ&61fGAL-zM 40yHU8f#q\>ď(xJVSRTQS-nfZ*e%]ڢKU|][FNzLiV6.ڴrW̓,eei6.Wq*$Κ} ugoaUkhB癵GסA]|P=>!;e|^;D b gf@ Hġ$(+hFQrJZ% JI)ܐ%00'~M,L,@BrpLp@ŽR*rF-g|(j)`/*40iBEl1B.EB80c8PZng3FQUrNzBc1I/0C6._{QI3\.330HY+4}6R3]-^ 6c҈cj#Xma,Fe\!D2H8#/62S `76) 4rpf&Lަ$p8%dFKғ'-S=R(()hfIRYBQذFJ\)`č,O*$#"C"+$@S!,,"rI8B9Re)".@O8b'*ǥ]qq-["r5LVfg7~^w2N|b2*k yQ^I[Z,1\YT7'IqtT8vN v!gԶ#MFnZf9y38TMnՄ".bSQS lپRh05SцMNR1(=kU)Lo MS_XI4OJ)Fu <(*"v#+UE8LA + !f)"(ȒRJe&Bqsvv[ZXs_Eb0h;V47iWfGWh/wTNd4p^C83`Gɧp) }/2즑a+C49d]|Zq8l`5YiD3JMsIe<=l,i! l0N[O#r$-gIP`7h ePY$0* *咽ĆÔLdT9_R9QxpOM0B*{"XO\Op`,q+uTp,1QGw(C_G`Y>G8pjnze]`~}WhTzw+/Z8G##6l88/X.xb0[\mdbϐsf%(-M˒e]VN79|eБOY~Pw=E@D-EVojqh.jM,uzlp* qøV-EELJKA ېTkGly" FlYU"%!l(s (w./XX,i85kNC@:#-R2,Xt8DCb]%ˤ"+HEbgy|3ly Y8fZ,yFSKTRzv{՛aZ}WKgu`~˃I8ɕ0f6+NsuydL x?AvʣNR:mTXJЮ_rkyyV*J"OX2Ay5&~X0Wq+v rRYnr;b-mbޑUlO85xEb_TF]? hY>Wv\Syz̤٘Gw9II4#G{YZŻ{ 4X8V747[V8M3O1 O/t EnzyAeO(ZYm樆 =V?oވ9;n!OO+++['U,rmzt"Ӊ=8=1 u.;zWG< z 7pg.1{1UaGK:3E.GM0\]ELБ cXݫttjbҁkL'%ZN&f<:= 9bD%-!ؤoҤ5 "S=Zeݔ>© >ۘbڈLē L|5W$UލƖA ۷b0nc ]@+$s!&Hg]~TCpK]woc{N+6]јq~2U ]9{-Y `,= K"we ?hbB2o}֟^?h\c}okk'v&QZV]'&V? ߇  .|X@  h80cG$4Y1eÎ@~!4 hΜmB`Cu AOA􀀧@R`BY0&? 1(KB8!DG fʻGԕkWnۆA~9Ċ;FjXnǀUvJiEVF 4\*XK!ݯ2} 0`8oU+gXcAsX` ? 0^| D ӯ>!BA @TC**gI@di&a`pRM6EpUM歒lqޅ^&_tTP=NyT=W]vJe~їKܴVKmEPAj@K/*.[{BY诈 O0)^6.dQD^FzQ@r4H%\0W1o2Qa6f\CuTQRU38wKOj)TmTE(ԘfK|h(R\Ca(Q!⒚Ӏ&no&pm8@*Vwd73Kp`+a~9\*T͛>lxE+&*UAC51NXȦaQWN[9az̳A{=(x !k*^FxGLy =$Oj1OrH䗋 D/bDI4rtE-ZĖ\̭VNRԦ`K^ZL M?Y7)6O"uKd>m6 '`6vrV2z' WQ)ڪ2ņdGʕ!AmP[5 Nj̵ʯz@D7wc2b!sXl>9cG?) hq!ߥ1ʮ:Ql!,P=QRUY$x'QDd@\2CdtD6,DI)KY/M>kIiq͸[ R yMUxö [` ~y`2vmgSZkrLCXdYsD3 W  DQtYQ:sUyunZURʞ v\M ֔>jWH' JMo$/̇| &k՘Ԑ@T MX5kaF<#Wd)jG>)q7?鄡j r?88Ssn VẄ́v禀s1C2ލ*7 & m0HCV mfqYWU[76G p=9uƹEr($g` x@}7r]fNj=❻@Pw^H295]}eE~`E #(u]˯ՕYQk#Tb)do'R/瀥vAw%2LӝYgJ#Q{1sQRR„0]-LJ5%hG"Xh(CÒc%T+̹p*"](n+QK.Yv,;Etc~ԳhFrDŽ4A]\ 4잃4!& "ՙdIkII`

VF)J?v:;K*$e*- &: qgر3V8GQzX.ׂLpB Yhz '-@GCJ3'Pz Q)G:Zgvٌa:]=[Uug4W{LZ-lr'5RbpA솣O.5\{,73Xe#hkE5AfHy UU<*:Wd0zn*fդL8t ]_,r[h&1-orRR6Bhϩ ocȝl Q1=0T"U"Ĩ#$c>xIlGˈl"akw  Pi;r&))xL*qMt{r墋x,R"˴=3,A8!%b!VHZpo3"%\ ,Q[BGÍ% ׸&P8*^+c+^-3H-a\kG4E#1= -k>o ;沱cl=k(2rlbll/"mxK-Q$k>XćE!ܪʘLkN|)TXzf\\V2 > / ;U==1;wS)"r!xAJT2q5&aK>#+=,keU6EvRzAE; ;Ɛj )Ĝ<ʟl {ANx3!u]W-"fmx֤Ap'hV(~ ׼Oaf۬"fԔ7|YQG:b:xݹ篺Fق--tG17a}Bٌƺzf"In_͉ ;J7>3/ ݱ_h׋w`şz*ݷſHzm%$\FB"*<δhly6Nr qKQ>'~m&/pa^"6}WظEDØ _e6x粙.K=~)BE~-oW;<Ó^|c+j@v*  0(&&gRh:ݭd|a8@.q& ' "@0"#bbLJ bE$EI+xXCF*ggD '@<ٳ MOTꇨYUů^k$WiծUjkZDUZݶ P{vV{Tu0V*ߓ?fذ8富o,uΝФH ,N4Mm'i3Tڶ`ް?H:e/󯹘дFdp<#LZ05N08ˍj0Æ>@u@T\ϾUmX(H,@K,,,/'sz2yF:Pv"I D{nfoǭOr 4>G[%P 'L]reU> /xoNBqejjgvb_/~@4IW>b/ީo?(z_eNޞn6?+flR4 j|/glkI:}1")T- *O{ɓ!6q怹#a MxBPHA VBP3a mxCP;a}C QC$bxD$&QKdbD(FQSbxE,fQ[bE0Qc$cxF4QkdcF8QscxGv = D)(|YK+"EOX0LeZK᳎mN"6 #9N*54L%S;#Unƪ' TU줩:*ySNWkQήn-MKX%,}+,KؤaKe䘄0t1K6=Z wƅr ,fnrM9 s3rӅ2^:LC">Lt;YN}S,`G?Jz¡Na!?7ŭd0 ۺnuJZ*tlhμd"Ihl癳(JÏ4Ml$KmSd907e1O3y׺hSm_x > lGv6p>ъXm)QKK3<]Ds\TDoXsy}sC':!,8!2! fHQG4A(&XBK3`EO6%+S9DfEIH![CLV@JxQUN9GJ9ID18U>HhXB%#P=JlOWjLSo_8B =& Ŭ/Ҩ-qNT5ͩmJKىfչ{ ڸWU\UrcaWE3>WO̔jܤ{zQNN7Cm^I-(rIێnܕec,K5Az^]TMlCwۇ_wVŭa=?W\}S̴FT8=sUkaכvۏcsW0%T<)6R\EȧwMKf4$ب]bdiѡшnjڃO~Fӆ]K5\V53dJ¡P58wB2^@Ɓk`Ng?XKs8"W! oޖoʱX>Ŋl8ÜOIͬӕiB*ְyؖɚpַR2p~Zsᵚ͎eB+0R<ިLLLggguuuRRR~~~QQ6@]]]-8SR ρ*\ȰÇ#JHŋ3jȱǏ CIɓ(˗0cʜI͛8s%ϟ@ JѣHk\ʴӧPJJիXjʵׯ`ÊKٳhӪ]lޮKݻx˷߿dB%Å[ǐgu޿@NIXj+rh9ӨS=S!6۸۷gΫi{K7Uh;KP.lUͽw&~J{iG] "Y*|}sj[V'ה,qq?,Gq1Sd@ґ@(_TRÛ@ك<=Ct'O|d g,}V?(b܍,e(b\(bS`KJBj82ŠSWj$\FN!7?[3&S=fS$KAU?\ i(>$Sk'Sud6-[^iSY:j)^6eKg4)TLٞ=8~d#'rhK_97  ZCc<`6%Ego>U[TβQ)Y'=J;ϝU7k5k?7O=!SrYeT]FTkVك=]8U=CτUBuϰǻ"Kq@z,syņwa,ɣל^mY"kViO<=8[gפ."s,4i:fB|rS&c>k*Bs]R*Y7E'o-U(ߕ._IOoXdre}o/o HL}'8@X̠7z GH(L W0 gH4w@ H"HL&:PH*ZX̢t_A%HJяL/L"E5$'IJZ'4MzR J(B򓨌$(UI2.dI,IKC.-oJwiF1 R &D01bV"Ċbf./ˌ?iJ%Ҵ&KLn& qrs)J,RK/ڒt:zK)@\9Js*< c=?ZP6t,`JD'zԤ'7SS=Ld<)ϑԤxyc.ǸMĄ  3t1=9)dtf_ITfbV#?Mܜ7pv3/=XHʒҫ< őcS^ytkT6)צ*\A*нU ~TJXA hEX 䰇Gd!X/(G e%#GKVE,iK4,OYS2A} R[ *:-MT`T0LӹMITΐZ|@Hl]U^25nA]ڔ:%+0W7uSZv,e+ Sf,(g^Յ0Z'Lv*ՊVhFB9qMsLmT~2,mg9*5v$.Se.W&"E,eY) FDOip>^{|MW,'hWV/딆RSR(+gdV(YH8'E򅱢RǫkMӗF(^bU/4n{[7ƱKKAeK᥌suZEҲ +ciިk) ;*{UA怖KoYRЇ%RXzR3f5Q4'K YOޮuUrǭf-}iIhѢnJP+p șdpdTӜژͷS`u'EzK>+E]{G*?-e+Szf}ۋ]3&Vܧ,YY=[9)vIU)Wإ`Gԧsi\5T)\;6Ū\ qG]̕.NKE';k x5'x}rV yGZy+]f6TEh[_X|C鋅a};gY^0^nuMrIL7rN9UXʒWZ)9Mz? .T _%n:MP).0d+uUPyWqr-GyuZrZPyKk,lw^ eU6e4JX,A_E{FgPGmmKX2HPuVu IdueR|yx|&o(UZiF4NdNd:Uw~SwLSvp'TiKb6 [:wSxUujĄaUFXH7aG]H VlMlXq@cPL!tH,^j_z kYntWPaJ4QjV N&e\6+7Ogx{ZbqMZ4LLvyUS2Vijȍ\quwuTLGLqV}S\vqqxUa (Eg8]]07esG54OVW^P_֦mMtN1`JsuuT^X(/L8yHrriqKZqt~#6[v*LLDGvэZpgxiD֔[FZpo\ŖFFrtrKQя9dZHDJY| Xֈ\V萐Vgyf7P_-ؑN CtCGhU"|<8ylV`aY:}y]U:\PLiX[UiV T[Zpc\g(L{WXW\fUMw83 v(dF0HtُXHGN95Hف8Z!0EWeYPq]!|e1 Qq,EhtNjv  xHr*9v)}W}VNsVb4[?%~HUqxLѝэنzWչi,v>RW5ExɞAvvP()矈YKIɈ\RQJ ٘ 9fTI"ZPP4PvXW]OeÖXH(h~i:L!GUvhvvk'i7h~&0~]v7~[H*ZZڥ,`_:cd_ai짆M!pOe\Uqo)TrxʗG8zH HI+$ V)Y\VJzꂠtMQP-Lf!S_Ѫ4 H123Z8ʰ;*A9`( @rEr9FLȔli&Un~eL7GXXzjڮt{Vvf T9\(m_믁'Lxi{ {;z J]TB۹OTJqpɊ )z{6 -˻pu4KWOAwᠭɳe{)ȋ3Dd r>J>ɟuiqZ=vZX8h To\^ѥXʥZѷ}[_z`Xil  trKLKL}n +&'|@+W `$Z񩟺:pz+K_1PhW:e:ےͫ (†Y[ɽl6ٴۛ`ɟ;FVy^ZpK[ИipEp+ވ \ S:jķuWa$ hL)$Y̰ԋ7j*->K z +Q䨕xۨM)f æJ˲caF@Msw*ژ[U832d2kivyEL[ot|Jg|[t Z_vRq8 Ug̴F8+˳ӳ? Ñ) ̻ ,?-E,k{_JW =>[;|zaxj}-uwp,xXh6 Qg[j;L,[aȆٖ[:w{~`xEAſqTߤSx\3rW;vm:mm' г+ A& q` 2`u z"MR,1Y1;`͡w#[JRl,?JY\TLʒ1-uzrYۣxϳ}RMyTө~z|a~XݮVw{ݝ!^!>*1.=c1fT'v sӨ @K,=JC Ůh-wO`ú uU=0e>E XƋ`JZ˱w.N~ Yك -.%^|H5?M1iS,+Wr+JHNK{h(Z0(#(:p B* hl! "m8 Z+,"-l;Q/2akH($6!ɤ|RCոm6xS26 . :n*夈̺ɂ|ONCd\KH_H,+BTC QkGԔ@ ¤6U.AuZaCj\_E?(ʄk/Њ RRkQkr.˖"!2$L2D֥,┈^XZ+7SL͞ROvҹ8{3P TGB*NZƵ`4A>Vُ-p^Q _}Ko[5i)U i+dWj-ZI+.Bb̦Dɽ1Ht {-cm"{Ja}-4|\L2%̈0X',y2> φ"7f=Po%AJEb!a^YŖh٘EfmiRqզxy†" i[V&U -Z泏J"4Gly,3Fw1.b S7"`%p//p赯,sp\%2A$M3d.j #sH#"T֭J8 aqM! ]E [+Jj] |y /rA*;µc)ssAN 3Ju)%"h.r ?-Si-ymw!sו%4 1N'kFWrf}%|?5橕Gi*Lt2olc yDaKюǃ64Fp)pXG^Kz;l$6-{;:Ag #\lCc{ F8h4cSu!B3!cBi'l$ѐB)ހ>{;+a?95Æhj4/c1>]ńTȄ<4baĉ-z o#r:R7I7NDb  ěħ$˷A7˚ˋ7KIY^|^ #ab,^Lʤt?c츩d̪F#+gm$G+xKs09,(!3 1˹. >`ԞM5ǯG**ǬPPպP~L=d˫C$L0-@U|AD͈|Qќ Z78R$edVVb})+C$,bR^}&HӜ׈cP?4LtSTL$=O=&HBkLO(8ԆPT\mXH,PsTI>:Y\i?B &ԊYQ]Uƒlc^ LU9LF~WLά"Ny5x,I-<4EEl|Um 9x+i2ikmkeۧ2 טt[1LL"~W4mS 7uӎcDX<%ij\T@OmYEe٘},XLPH550LԗmN !Oԗv$L"Я\&!J mUUW=FSd^XY2J\ \uNTD\TM%#M89ȊIE ͉GڄIgxۆt[ W2uW^4TOEn`\$jLӍXaԲaՍ>v(T”ܵ+HT.>1a]qYTVF" OkFǔ^c|ވ\0N\Vc,U_6ZѬI `U|Ac;Z=_߲QA܌pN2jrEiCM̛dcOf\xſmZ`ˤW&TOtSnfnSe^X<<@ߍ]X(`gH!V #i&cTX˖و]f\}qYbLuՎk,^U\g”\Vm?GΦ5gN ek;eؼdMAMhK߳]ǎ(Tߍ`9[[d3Cp=dļP5MR^c^Xl4n\S]fi 抵Fbf M昵XݞI0B~em^Yݴq j5ufY/UʝܝVL igx]x}\=lwdhMgZ?XV_AjM Fl6B#ނtv.׆p,yJl? m iteŽ3pe~]Vjv`%j~&~M}feTe{iF\aPɫ)p&^gasfs¸]c(}fZiNlg(㷛8dmh,Cfq0mhZ-q9qنmX)醠׼A6Nގ$'_x e\(VMZk}&vn,r$M%]$djf fg87bj&IK]s=kDpO&r\O]nXp}-Q\r'̜gv5 guBKh\_϶m\\u7vvq?#g מuْM+֗Npp%IXYtÎU~ąQ_wgqVxLJt/{Xa]S^foF8g=j>f~omFY.onsh]NXu5nkWgL]50 prM8Oי6rollɆWM_h/BI>Fvwdqp n?e ??`{R7QOR/^wwyNo\8Vt-nn.wf{ga3_sofovB. ff9snNP68tFNޗLg[^~fIrF̟ʇ|V^ʗsou^ z/\kzQټ Yr*kjOdrP'E!4lbE^2c>~8Njȑ*SlG1)f 9wg:{M9迣CY MZ4%MRDmsjVE⊚*&[v˲I7ݺ[+rU&kέR?&"՛ox{W0Z83&KN e&P6kּeGԦE.ݲm ݷۘ[0vd6oj 5n\\kTRB SIY*M1k׫h紽ɲؿk (RCρ-Ab8P"EODII^DIsTRTO)4K:T s4cQ南J$QG ",yzSaGZIUuKjsԱE\mU]Xv\b|іRc~qInyEϙhZbۙO2Ϝgrdɚ{aڠjlFaid`m^6Xs"m)Zr dGJ5w]႞QMTG^5_~6r?~~'M)גM3ڴpD,UR3 ihJ#]DJ(tI+2%O@9S>^'Q [cy\]V\QqafXa&)bdɘLl|f'u)Rh&sꩨHҌA!`5rg֗[_lZ]U]7WG] cGݓP%[GmW=k-)EH/iS+=K"э;D.R,nk-e~&;M '#PJvK"zفu-IWmWw cL5`WmW,˱ɒNL"i LhlgMq:c4HeiK#Ч2leɞ$E5O8֛RNu]'I#%:C z\q} Kb(Xj Tk]kɺ9TN$J;zoCr;PAIB(la GX5> H ̀8^*f{Nu]@`3x;zb0LpP;"E#2o,hvbqo9QHFR+]M#"QPd"Z"c\ yAFFV$E% X2l^OG,tEbөN?ST%dVb2*UJuPm/i&E24:)Yf P.bĔ*nQ*js^ޕ}k "Mzlq9XBw^6Hu e8yƣ']ni4dV@C׵bhȭB<42d׷^\Jl|3~͖3;sMBG-ot Iò$6;ϥ/{Eh3X=ZWwVJьI/d(BFa3M3x,鴠9 aMTY?syeH( drsBc.tOjYD9-xD<1Erf5rыɵ[Q5.zZ %Z+mIJouh,4$qkgEUFJH3XTpT= ?>'8]̡*CH;h l퉢@nń\ܜۨi̡s;qǥS07}‗8vN8ĥI?|?,籉 @P<%83@wZyiB H~70<ҵ9|N7$}LbP7|3U|O,kx(>a-~g1wT?@a t8=n 7RbdNB4لU !7r8^2!%a8c9@ra\=Ơ=Vh3??Reȥ$ !*hRE&[ZLYZDlΡ7G*^G tJ^HhhPeLB>^KXB@]ɟ%mDybmneH)Y#੢s]#2Kb,['r2'gUU~bw6 T^(6%O$%kf^5^4F#4e!}`e`&ak>-a;.;>kE>Z&faZ&Vg]$ U` F(kY^Y&cYZ TGz`umWоHNWINq~n׹F#H4ٕi D'G0?i+>b+@,>SF ԧIp$Xš fozdoznv$×@) &)xêh\(6,6*r^*fh\ba!? ^e(e<㊖FP^慳v(:?\܉8 6~BfjR(qܪ我^KxWR%v*Ħ*ۥ)Jl4_ݟ%nk0hd`Vg6 M`0:>#FSN¤"?Pr6lU~d옹ꋹh4YZ.:-48jjN kDƫaU`*Bf:~hecK\Kcr,.k(mV&ǙiVhBrE-K?,-W~٘%^.eh$hižq.,2$)婶O>>pxVA6 "j&#:SL΢iNFV.,k<.4xFD.>2.Nh:<~(6ؒ-2!^aʣkk-j䣷hK@/z`*jB ֦koJZ*"oini?Xj,s*oŒ ]IeMukV˟^VgpiR.qKlJSFJ/$?qꊆ.n/i*ZpZe¯oZ¯$!BRD)@ f'#8 p8rfHl%xKݶ&#h2IpBcNpJ-?-3Fs:nَ\@C'+!hv26dsk_ӪG*fn{.qK <= J>i#NCM]JpOi!m=%nRb X£ p4G$PA"z1 t:{d -3oƙT:~$x*&MG]gtSL<qԉ-]=[D-:(E8y#Ou9#[l\sE\0؋t2> -D:'huvQz O5[WyF|- ߜ<̹53s+s+-܉Iʈt6/l'ʝ -+xu*efǯe ?ŹyoE1yI'"^C'HSh/'j_ERNUV /#rՐ^ ' 洐$us . yg51Qp-Ov0melx4aF@Qr:/9N_sr %)I'jN'"F0QNsw8qg/$bs ZvQkmUuCo㕫*ȣ^FfsWn= ~$9NFHjFYTq|U+Iv}j;Հ`A"M{AcG2N($RQTZvl?.1&A@Q7愇TOʑ!Q/cJ( eF={~55` "NI#m-"̚CA1Z ZX^*x5\V {@jB(}bEr6FXa?FVgÃ1=x\?Rbs#l`qMxX*u8wxYz]ֻf7Cy,R DNc;1cVb"*RV T͛\F<.jab+QLsp6^c(NPAN.]FsӁҙdpWoUrӌ<{$HO}*\ k܈*$x?(Dp+@bԂ5,5h$c-prֲFH&0 cr0Rp: ,Ę9a9xQˌGiȊlv3LyQ]CMcgى|h$Nvmb$m1K۪P$7$H.֟af!_~D% ]5FWɍmFŮ U(9l,'2,(^i,N4ެk]9!pJ]32'öU$I|mP LU 2Vݩ»NckajڤVqAxi'>q" ]vcz#{u6m+^Y2\e&3Lneh"_cX'꫐FJ"g"D:~BQ|jJ:ی'ư,0nMjo\a0|b( 0k &jpnonώ+on0h *1O(rJ.3bpC0$IIko3Fs(*wТЂ<+e؄[`# I-+4MnŰ

N1-B& "N[*O*p0p}W /$jr)i"{ $ '8/" eQ *r MvlǦQ$ Cΰʰ`/)+v}iM*Go vB *%=#mrӓv¿i,ڒ&#B8!n!&8e 8 "pQ"S  rBJ: ~3kxHv*'OД?q/)/n+&1/*1 A51#/#Ba8*,+* APN ! +s61EutGy4DYEqH ,sBŏӢn.19r2T2=p Q.ҏ 4'.I=ܧLV~M1v|mNoh؊m}*Ϡ+وՠ !S3ˮ /R*2: K 21`OJ.%?5T>.>Q МT.h2U?TmR's(,.I AO,2Y5C90'<49T1CwHA[ FT'8 Aց ʕցU]jGUGWTEU\u_U''vt`UG JH}dY+2S8#'N#+43?$Oo^$ܮLb}mMϱ*LfM3mq&Of /Ef Rnh9{d4s  /$2QOSʳ%+TC>WN>W2ب6&smnIq(W5C/+R'0YCZ**U'!]]յr5#ؕrss1r^U_9rUTT`!W'ZuÀB^U'wCCp sWq5W &.O Qd u4sͱcm",Ԕx@ƃiOs톰=$M9 $*, #Kn;5j12Sj .\<vx3mAUOkOU/U*$xTOI3dkwu $'pY0r7wϏ94 FW'!^KsՇ=7twbE uQuA| ``4[E*+JnBXX /]%q$b953A hf8{f*j>hS>"U͕ jBEJG ?ͪ rh*HQnp~s4J~ JCyIScHP'TmT8xxt}9@(sw҄-΄Y6wb)fq}$77'GGy4#ve EH2 dT4r0OIyoi5?US3"w5UW8y ͑X'J3@è4!V*~Ttp{m'#|=}6 3-2'4 Ƹ*s6v Au*Z9TsmU{?}9(a9el8*MYp54q7Ԛ[ *{KG_T8z3b70ixv )b4t/o- {ɔ]5xqSy}dyI:wi1zg-@ZT+fG/m"7s |վ"i79PQQ R3g K;0J -Vǎ[Yzb1'&um6Y滘3Xp+.2ͯZ2BHuGqFE!|v3v-t2GZ+n0&sI!S/-K9O>Tlr44}e7=Ifm-7nsb9T T6p|,oo@[ŗU+vھ ;{RJ3jv͕zXsOmں$x'v՟DV…/\h80rCIH_WD·uaWu+C.owU1āw[W*`4k|UyƔctPG4g*x'#>\'e7!7A. x=63,J "\ZR׼أvxWxDlV;?ą:^ͻQ6F ' Lyi;[7peRVf'nq;W=JSf@.9PJAubб@J܂ˎs{] >&t_uV0!"q_%YRS2=1,! =3b bEy'zvE0lH? 5=fg׿By,oa%ق*׿ pAP&|H+R?,X\uE"ALJ,D矓gqRs g I3 mo˿ipsTnQB(*B[kT[B*$>v8L*^V5MβYYq1A,b63ɒ;&nۏ9: E Ww g]'_Oͭ[1cIx8bl1tF?dȴcxyKK?ͯ_܉qOKӟy0H 3 xDw@>o:[|p""E͘P_&#zKm "D 5Hy&dgVKL"tQ2TgXeuT[-M4[8SSqT%КayhKeOiDuJ^6Q^ e$T^RX tBXG&G]?JCA.P'cܱȈ BI2,I,BM6DORP6 DfKݮz 1}՝ ?鉳NhzO:k/遫z8G~.CbMbM Z sᲆ T]wDHm$K" +bo2Gw_5P^(X9G#m "(ԱBrIAҟmTL:$S,%P`)TMATSdv9l͝Tm9U!}\֙l%MvvэR(^xP-5{iJMaAbw=[ѩEHSD%{ 9O҈ۈo8#l6z7-ɋ7NwĄQ1L<4&nj?R;34kp֋?m:.%G){d1 h>)!u4,dPO 4~G:9 ÜEah(c!vX(.gQ4,YX„(f4 d/[԰$9RHTdpHMKIŔc cUbMs{OsJA"0S܋ 9Lij+dJHBDc1KȪ:OisK: @.O>dޱ,DŽFxɆc m=l>Bzc0L~87F,Y̆)˗֡/z~"`ȭ3@INًs/v!b*Ojc> ~,!{Ș.| Qƺ;d Bdp21IP/:i%Ԡ"OrI"]Vڒڎ>%olUXŢ1XpCB& |yM^Gr>#)KSDhu a51vNiVr _[ֿ:\øe<Y{gι51g`xC1Yllum=J#rƫ6rk? 1;\KH0 ΀0 b@w>)7Bc">'E9-$:,I ( ;h<$(-,ae3̇\/v<)ŔH '8xB.v)BNԖ +}P(.DV0qE\ǹbq$vHfU\a0OTg9.bN)D"RTk&izh?j6\\ laZg0SA,wd`Kؕ^UГ;Ar!uc˞(GQ\%(?I\Wъ,5dťSb x&dB3 Yjk&$~Hqr:r -D#Ee-.Xnsz_< CcL KT%rMZ=D2IOJܥ(_HX 2X6qßD-xEcj@xΞy3 jULuV֠EΚC웏;ǖϱo_AnH(@}g NCx@xC,!c/{{h R?HGD0(je'?;*eLN%D`w% ޡhqzkd=u`?tJK1\ !XC H۳#VuIO0 :rTkTB-e V+&&#^-f Wߨt,I&}ǿH-LB 9cb/VV4/Xs"t#MYg >I'Mg%Yq OWp-gSswk6s!XU}5exv Bua/w `FujvQ.s!kphq dk Ahq bl2khU446";!-2j% 1,fU2QFB'mHQ[%,"1Ba* !5K'hQ |Y'H1E3uo% fSD1fa=EYT63%z~W~qdnv$(%bH:D,D49c2VAfEK$Ru.eUNE<W Dtā @88t ( ! x-&0O#XPDwD|K͢L|e  6Gs!fJ.a XϢw }f; ԑRB hc`l"r 䰅96"3S{qBp3ʓ+3!,1"%)=+u+3=3;u#(+D& Ou;ʤLp)~{z 'Yca5N6%3AcE5%5[5} }|SR$~E2G"q!#U{tጌc,!9>6]Bd%+&7<>/k%/rB/YN MhtX>!(&( a$8ɐ  `Lb0 b 0` ,[:@񓜎eՉ3c7;ydɑA83v@%j 0 39v7O#{=35#m"+`F 0ķ 0X AjAL{|PFOJEX :Q &80㠦߁E`g@e#pGo:!}%U2p[RRxw~@)gU7RU2?UtIa9IqV X۴MMq& >@ zVY$(r9#@== =jCǐ <8Ьq `ߣ b$x y A !+Ƈ'ȧ)b8)`5_a*oN`B2RzqkZkaiIkj U[`JfoY}X2Eۇ EbGHr8icgc[U_'9GdGB=d:dNV/.NE/Ӕ@f Y!Չʐun ZY=: JR;PH0 1=Z{r`p΋#EF Jkv%j3I| [?: ; Т0v^'itk@ k!C,f |Tf|>nщO>n9E>햳 1!+3!Eʔ 0 aXqXkgX+&3̴_S"V}A7r66EFf:5ExʋEo8'U<3H H{:]ܚq!>]O, A,dJle(/XU@Ld)3Ӫ#UYċ!ُ IYR)0 JY Y: = z k+G˼*;= A0ДVv민` 3 |< \@;1\&,_GWnGn!Ѳ)|)ObH N#+ <9[ ْ;FI`Q;6aj7l!]U66" 6 `RF6"\uT0"׌UB](?&AUuވd%4PrS]^r},QL:C7>*Y| Z#ކ띞)ʝ кqs`u<rt+{ʮkه`~}:3v dK ` {ڥ= ޜ+xwa.֣ ` `Νg OjX|q:|!(;᳛L5uJR#>JVkC|3`03 FB%7gebov&^YFFMF SXqtqRʨ(n8D٦9aKF'VsIT .T/u/f~c@x@X wmMtڐjn YȺ{ɟ|X=[pa QY ˻˛ػѻuˊ GD莶M hIhvhx~a=]I;I ~ 1k˷0q\ X Nn11ݭY[# qW+W +SF} >?nF\&Z7QaONI'#8%tCDdC8"- )ϲ A_9Ik./WŴWN%N?^tam悼EG GtM \#2/ךnp9Ϯ|nq؉[z-yGKO#@n2^'蒞hd8h*Ҥ *0&u 'Xf;0d۶2pYH»x!#;K ?Q'f(ѿK{tCݝL䌈6B>X녰۵kfxpӅGϭò*/r{ܸʜ)U`Y_Ki_9Xrҿ볿?ckiق-bA ǁ=+ ]r~r{/:=3ee!)a尴84Xr5Ԍ1AUK56|xJaeER/JJY_ESOR$_r&*eQd\w e(!1 fĪ~aUNєaeX AwuTHcu`` V5 0U2`@J$#TE2 3&&/5ܫ-B`p{D#|AqF?`Qbf9a1ܙf~Tш24cjXkX16*&VNjBl36[gfIxf󚗁mtC:K(n!3IgKvA2i X{2 LtzХa}#[P١:lma-r3P- ]z8Z9}v:!\:#8#pj1%fu=N* za ⠦BM 2D0`1:B2V[c!GAa CT +6Gt#4B.A$c,pE<5] QdG\,>`0 k.FJGs9ؔMxX0z]\ /D Pi(|a>v/D{b*vYnI#\SZl7NH@-zƘ5LZ^;gl gh9X.j}᧙Bk,c *N z8-(n ךI?ĥ.p [W5}7P0A%*fdm!O%7lқ[ٞn: N4x!z0=ຕj ^OW:GsX!Y+b {p䅬!?®'Rւ?*PWrX0(B0P4kBf (C_mBD1%4@TBĸ@y~)֭nǤ!Ɍᰕg>^_DaQ(5b0Q9֐'.Ӗ[o~ 8qT/*TȬ٢42cl\Nݸf+fV&,Z]ѕ("TAs,9Jy)-]놉8)f1e]ZzC}޸`Gt;:7#7 ޽qsAN; ]05YC/ 4\~44N8>I8~.@lmfnۈ=)nj=ݩͩd圭 2gbfd<$0̀Cp2 s?3$8`H=9 VIY<@`FqTdb`DMdNA-fcU 2Pc*Pѝ@Uk YCHYʈ©ETT|#A0(mXOQDÖs~/l]dˬPllc;-ĴmAwlM<ݞtޅְP)E˵Ȇ̀y$sJ؃]U]&K%`XB (1IAIh8i8p6Ӆ-(1Ps+OcCY/?'?/9 CRr'AI`eaC0u1 (p2e` ;GtIl:5ь:IGJyt1"4+,fSʂ\ʅ k\(H( P 7{G@!#)rG)'*j1@)TQ6]sE O5?K{!UFxH[X`B6SSQ DS/Y4)0(wsFPPc#+9:3]INGMȞ. *7aoI@Kb YF=A&ă=Z*T=,, __1$q(CX2 k 'Q`/X(LJ-'pҜ2?M-EPABB(gU9#9S+_`_E(Tl4( 6À$+>vө2F!\2xl|,X%FџTOPiϑN%H<#+)eK"#(` 2XQ29)Q;:"E33;4+CZC7x78P!+CB5Sv\څRH#l%P Úǔ+ ҌA.h+F|Q-֚#9R=9 _r16"2v29;Y"BGzEQQC|~' U;RDx P}Q"A,A9YD=AFKTWQPi)-]?9pEď>$] [lCѡӘ*'8%!*R*20#ڽL[r=(pV_8՜?1_fKhtX!:"|"\؟qS,Q, N_zaZShWq(+ˠrA#;=Y22,]{!پ#<:pb4++,Zx6xZ6h+b2b++@37"%QΪc##U!UBIᆲi1&ϛYTbTsyDm| _ʂ#;"qمY:0;2Z~3h ;9M fR>'g܈\6Ҝu;#|A*9y/0UR5͂"E)Fu]Ns(}` $5~b/6Þ 6ͪ"/pՅX/ zF)m%OW"Pɏ1,"ގPoVO)!lY?(h@H{"V9az85,X^i xZ2 we2B;،)-`rՑLBÀZEɴ$q8[JnxD5&q>&oxptLZdW4=Wzpq~{Ur %E%0:B[Uq%+7_u3 Zmnuc:H+x'ŀ޲L"(uv7qL7hk0pi;'Xl{*g hJɡ sV7\Ҳm,x7Hu]v6F+3 t.=Sc陏 /]/٩RfsdLmu%";V!m)Ӝ`W:sW(r{as?R"x8aK[wz vmfp^_w! =c V)6" V Xji KPd@T5tbsbi%x{Ufዃ@FDd@SF\r#*LivLd,g1LD:ds(i!JVo)6LUA<H0i4QNt?{CR"-dCŎ$AxN28~[,!%MT0UbR %R?Z`dA*XeDsTOYiz%WDD|Ozܢ>d+?v$ ^D=sbjvEk)Oj\qb>D`g`qXFQk'sFD%+S/K=\?wlo젩/h V 2@CoZ|-#FD~!;@pgD#ZGMV&ȆI)S"gQ%H% -K$\;xb .VqZ+""A h,` Rq1*kBؔP"P9TGOStu _@>.C(xX́/p!%0Q!PBfq:$kaJc&jmhjZø&Ss\ 7N Z13 i8I &jW͈4m{Ш#ʁ\gŵ7 dY6Sm zNu0| ֱrFtPt@1Ud3Dė1yQ4}[fw; V&Aa;ޘ"(_xb`DUd"T, Hִ7fX*%dJ#bD:(I5"@xDo$8`M*].~y_ LFaR8ja x b.n =o8[o1XJ cKԊ$ -LR$dJ/nifJ %5O?zQ &>ч>yn?ۋȀ"Ta%L"AlYwnvI~d!?C*O!UttlC*Z3ըjh-V3V#Ub@XFfC#;u`lτRClrɯQv,݁eH 9Ԟ^z33!ilϽ-l|[!AТ3n3-7aBq .s RBp#<KhRp&'lG_#t " Ko"_`3tI5SHT]VDx[ P1 b _y_^J*#> #?bYiQV8\+'M'$DN euҤJKRb$"HIPڀHRg/ JF#(տKxb\s0 59p+ d X-hpPg3g9LFp HC‡R,ʙtd?y+BL@ ?f90)W 0p4Y p| "tP>ЬI|LFnVi^\q iAtP5C^T&!Y Ƴzg[}cLQQ=A `聓\Lc*MuVM"8!m<hdFT`?`>np)0a#ĕWyh?`v䂖H)ĠWS>[GTȘl^}  @!*e^ HUڐY>F`E[֦Xz H$ }%q[ ơ!QN΁7ϧV v@`y̍=9GĦR]3hlh(}E-lṢ%"fb/!d"0ʃv#9Y"c"'4^yC)(UUba[aTQYVTdGI9 l|יA y80,$]QTBx9KW`DņNFXDs H:(}tx)b,neSw4'sb- fTDPS zNI`IC\KrG;lQ%?\9BAxK-I@,Gʣ"䂘K-td؈ CNbp!nam`S]%|F T@G:ma N"1H V$|NDHFLHv`0!J4D*||GjDAcv P.-n|L0΍m.;W"P>ǟRF}|p~ \]ݱ3A 'h +\^j!mυ52E%/1SB1P”+, šO b|n|E ) bݛ$ͅ $ LЈPGjۉM}fEPJ̡ "1|-QQ+4CDD-eh$JZEt3̏HZ-SzJ)`@T -#LU- `| 9yf(M\bul )]~HTwB]DHTFtTјNg/8oh :K[iP6ƧGV\qUZHD.?rX{ nde,{/ 4\uGMDB5W&&pbյ}F^A,&N]Ι{⡬LlA09;0X |cDGadh^IQ w --Fl F|bmIG\ &2 0O?44Sڨ8ǚ$ s@ IHd*QU]'Lu^g xmN$cvYx!Ęy؎dd#F9`K?؎ v@M X! nd̮<ޙf(BKEpĚ|o6njf4x ̝x *&Gsv0er/hfDrD,=ڢOG}D~\'N ^i Ҭ AԤЂҌСEM(":Fg] T U0}uA,\qMZߊ#""]/U!2dXDH%δvD88 mC٬?"d#TfW0sӉccN xJ{\G0~N\ypCM10 m5!$ٔʈ(2Fd{ڤHyΊd(‘,`PEJr3d%PA`YB#CqGZt3>66>nBQ ŐQQAB5tѥt*FN?2-}TFSMrT;L#CWʒ`1r$3 ɤv@*8U iVj勏snΏv^2]%`GFʲg(!G.O.! a2DQHDk׏|G1DsX^ N[D/b -8m53"2Z68fNۙy*SKt4H* ~iv 李pX*Sg`>jý=ŠFcf Ra aÛ٘IA@}E`x ϶ JN{FhēQȱ1th.T 3\F9`IȥJL}ǿx 3V7z+ n ~7+-$t%D?r*#tSOh6!T8#_KR R.P 7P' ~X a pa:B~-;5ldV٦'?aWK. 7kEG/5"S6(8265r߰E(b4#D8 Ba!8؈xDXVrKa9W rB2BE*MPKlIi{t)?LX)6xNޤ(D MDC,CݦtW?oBqŔ6FGEN#-u(ŋtPua 8K⤦Syɻ%4' \'%WhM'] pKHSӝ[$"Mhz8  bAVcQի ]!FJM0Ggë0{ۋ\6.eŒ+(q 䬈S*A kY،2/b *ڈk^G $[ L;Mg\" LYD jN&yrd&S)B x1$is۬,EᭊAIrJ lJL?p"H ^"28f쌏&H:]. Y gA@ v\@!vMW_cD"g ڢ(T,:(#7gvi)hl'O ড় QcG"=DiubzJz"!J ͏uf-nێ>&CJ>E1:X@Z}XDFt ]C$OUfzjUPY~֗/H-2%%de#w,1>^v!~DfV0 H%6{#p ]܂ TaTH"0vXUwn,iWApr^"#8#P ]8e:N4uI:jSJtmnYѼ$yU6ґ l`Cq' r^]CM. l2"Ŝ:GO4QcT.u L _/`qL&*JZ*& =i^R9>&ӹ|4Y~ԫ#(oa#}? ɟ=*zZɐ? t@4;G_]UyWzXGUտZBkֈ?:*V h$? ^sfW! ~9$ll%0jk%A-ܮq`` ȍj+ٸB٬B8kX0`R#R6ΒK ҧdfNZ %ML7I#E#,d5K )!Br I @@l$ 1n(~q@1RCF!,Fئm6E('E)$ : %Z,L~ƛT#8D4iyD"N)/Q̠'& >#{z6h6 SG&3eT&7viGԤ%Be8V`6`6|DOBz0 VO^: d^"mV/&` Ѡq,S>JT#OR ?bBZD )ڈl!-'8ENbp%cK.F > ڂ1ZiiIfgL:M·S2%$eZt:kd*QRStLF*n,51F ,@ pq@JD4#.J,6C"`u^t*Lf 5h"yi*zEz*) @"C2~Nc`mOccP&5kbF(#*v$ :[<mИ,$MOL*i 56.n$\lόq9O;9/6yq^`a>=1j!њ>se|O2̈́6L tӤ\?hb%f \c1h*c0Da#M#>pלrEFbIbfr >2$_ 1F eX!W(W2kj0&Ϥ7@MR}}hHP 0HE``qˠtrILߴrm n@BA؀в䚰B`' KdRdc,.H.PGrqp #Pjz&()`&qzSP(7xF38EDD3G$fb. !܆Q `J{~{lbR4g)*tM\P2,F6FzE [E X'lnht"p G>m>BwAq$tP&f?uDL (-Qss!ndbe%e[(%)>*JuGR,4(Vr4* K@&iSDg? bvP#ckgjvO^"5i2.$Ihl'P3;?6~jS*#<` u_ϓ=;_<3vσ3m !TFbkح!5D!HK\"F3Ȣ0cg#+ gh2#qv 0hn2\f (5@HFyvenD+wQtzi$e7:J*)M Lm<#di%"B@KK #p U` -,D d`DoHqt?DMzp(&$'{KSlnM & n$#bnrH7|Lw΍(i2ba WuZnK#Y@0"z[.ܕ~77Q; `~~~;_@__ 8_!'x=58u>ΪXJbJ0D#<&f&` 83BPHȁ3#ELb>6 Yf2zdLHrRD(7֤Ȅ(›l,7Ȳxyi|hST60h&)* l)^*Ec:9=Fo+-Wppp,!3ȢY5yȨrxyMIntiDhd S;t 8B"%rk#L$<{x;J4e67QZ:` S|Q^q_!؀!@3Փ)qӣUtHzBM+#?\:H 1^V#S*#/`-DiX&E/E^n8ee]ʮ Nllɤ?m'vR*~P-dyo}R$2"☳tX -M-[ *{VKCW(|28^GD *2M9gDxWL8F caPd#j̰6apGtl@tսe(Σ:MTP1LM@E6l@u:8>*Y9Y @bvcKqƼpC+ExMDmg=ϑ Ph=(.(; >|ꬼ$*6ؚ7\r =DN ! --ҲͲ#۲"-p; Iq0H i֝Ҡp$Լn*5>&eZ@9eFC 5954UxVxdLr]KY݊EF^$ze>jSsrLbl!٭q*'8JzcOLrQ;! :lb¦Mφ ?+ÿ o!hOSߋAr +ֿ~c 7~X(7\CՌU3E^L x̿";ҚKLD%Cؚfp/3v(#+׏Pw76o( 1"k:D5iCHFF*tvہ ߴcmy?gH󯎯f͒KDE"?椷d9T,۳O{gR=$M2 lb 4v`w8"ZT?Z|TiY2qYeYV5vZuK#dAD0YE`ƸgA#SAXJODDAF b[F̙hdm\AH\1v~?Pf(塃6k"ָ%f&e2b5BP2 Ϝqrm Ī@J + EyIѩ*n+%PDVD P@1$M/m[N8DM>  2bGE 8p;@oZֿYfPpʈxB#s?a2Ì$ńW6v?|t_]ceA7rb]UmQ;o5ݛqYv-7/&-q%ot )x#$lx|{' 4# 3a:dhAƅ☣5h+TT< V׹9je@8]i?7?dƥS`#D#8rf3UEh:qyB y=G%RfȚ~:FgY2OG0oO I4*VլpU+[jWG\>#P6^mĄ򕫔:+X~@\8H,. '?I c~^YA zK_OhĽP1c{ɗnĮ%r\wX10d@ ɂ!L Jjv`e:E09A#6@.]geCUp$iNsbPEEZDqȎ;7n 6'pa|>2Բ?|>.3=C$ ;,♋"E(AҔ&6ސ,ys+<LkN#~Ò/|$iȅw;_HNI<E숗y3lߔ=.#KnE hi>$dT:Ȱ{48ldsQE8 D B>B0,Uт(V CRXiZUhJ1|8B'hyЃ΂VGd adsw%xJe\ c1HQFb `L_7b J6q/z @*BK\Bk#3`R.vf&N2H"-+TKZv0Pjf!ҙ6Hxorc4g9%f0eDv![!p,gПXb{k?2z`Cpsʹ"@c_w̸VZx0[ٰH blT"f3bXxt ~fP*$/;%M!͛ J\Gu:W~uiyZ/řQ2΄/T-&*:`h2|V$TC*²U1F 8  wŬ bիv߰ꐳ9a li,7MPu v@BZpHN k"v]è,*{ڨ5 -rx´R#adT5xHFK!ڐA͕x<`AG2k\} GɑN3bmot(ѐPI h^,#E_`Pas,ފ× x/7~^dHDAl?n8 0fΠE8hYD!R@A $i,h4ޝX&h]Pa)"Dx>$$x9V@q'$_ OJ@Ծ<# o{%TGZbȂ^;V F/>IAXj*/Vyj58@綮+T A&!U!p*jENW'H鍤4ZQ"Pƣ\ZE/) Q8d `%v1|}aCwmy9#fbE@'ˡ*7'c'!;.K=K^^7q%ה0vr+DŽGV)v(vQhou^8v$GvdGr` –B``Ѐ;Hx1x"%Y%Xr$\uCR;08~٘HP<8c9$׷;$؆JP iw9W\Kr[fC~?*@A1*ofjbNՋ+Az7řiUThU%C`hn5Bk+]A.U ]15FBq ԷlF>_cQPOGQ@Dj@00Z#A$Yp} d5$ZwZ`E6 YPm$ Zb1i[SB;Y4"QMS.x5CR7`X`Pٔ^ĔNyL iOc($`$b* ڠnw$ܡWPus_baf%<]&Br)!,śOcaIx- Ah-B$,h *B,6gxiA,,BAM5*Sq*/ӧ K@ __@ %|GWG~O`f"tP $ll0ey}UF ڔ%>!u%QV2!.*#K dp W(Q4#x/)E\6~Q C BAq%^ŃTzpY}E$g<ͣ!mzЊ϶BA<: iK[E+A,AAAKgFRY-]U4o$X9|xRQ:vt+#4!s[A=l_B>?>fl} ;`҄B=0b ;`b"?SSA #5/@.1VD m˃GqG^P \ Ǧ@ֆQP&Ēw-9%3"sdT?Rb<Q8~ٴ ʥrBA^+ap r'&$țxucw;+;dIAv@bviʻ(SNQ5ݼ'k->:]'UhBAφ+Bh+1ъM;)ĹU؝A1N[bN<6mw##uX*gYAyEdX1_ɝ`9\۪O8źKQ#9`[3ٳE[=$Ȳ9aW9ܑrv<Æ$9]$N&N=b ^*em *80_(h@_ O@ ZXQF mF 4YG @P A?u9S͚=T@ΐ, +6<}bńn\j6^wΎ"0  QhEdDM`.u G@YwP.ad/><4]zʿ=ZS)}K4I{|K/옂chqWS98ph8ÿ(r=AR~̙ciΌTfXGŏ0Jۼ[Mf na;J)ER`O.KDP.[5P9̬50@ L\BtPCF)eqC^ı!wi:p\1 "H&,rJ*K:G,,AƄ.I ތ"u%XÐ$?HX6̢K0'7.#LG532sy(x.$BP7`-@dQE_r+vڤX꟬[uEW0`U'1Xԩ4@ в("$ȣ iBRIs"ɣɦz"`%" $V# '6g*j~ЊeU30q5X M SRlLJ(B #F^ˮ3lD3y M`/pAЅD+m*\h p=< C|8Ў'9T#BKT86&ECic >APK9Ў[P.>Scó܌,KB BѮK Gϊ]\sRFGu:,lG3x(L7d:eļ/[3N=N2(UϕD,=M4 zrPGOFDL*{ڴO5~?Ƞ(hAn)Պ># Pf*>ܠZІ'l 7xDh)S8? , R 0C4bhK" )F.x^GIȥ.k& W(.}=#! ElQ&Jd*`Aaay %{y_hHd?XaV_`Edw)H/m2:sM'Ʒ͠5|-nUk1n T lNs8':NsZhI5Q|`5x&SyCh-%a@"xy9/1@P%08>Ũ5ЪVdA"b^E"& >RҒLuI}k?pKb #WPi pNNvrQpdPQJ>0o/cBeVE(B? ^&/}k =N)06F;UX\h@"B_ Sp4AYȲ Uh!B4 j!d=IsiD _D`bpd%,Y2.)\ !K"ED^EP@#$ 3neu%aIA F! PnB <b6$Kc34VR dC5h|*U9\r9ofSv06iF@&t`hțS,o~2qBeG8o;ݹ{pOE&@w'D̡m -B3QC2e6 mE};&aW(ɪ`SܽEI?ғ@jC (4jAMS9JRrޙ Sj&G]$ֶnWNGWP^~]@c=4Z5ִː,V"= F.LD\D"­,vq#, eAᢵ,!|/PJS0f@G@V30UqB8+qЅlf UBD0 yo,v=#Ujm܌O7N2hZ0j׷F8q~Ҭ P4xp g |iD* _<. (6g h{zØ++^6!tE 7.M}Pv*Hu[sFRYʪ#)GYI3yM#Kh&J1No}ƃ7vLBmj $(\#i AĤ%u; pWu{ Z,u,@I k45Dԏl'F%e?Zş$1Z-B#b {k+Q0 p> (ɚkјԉ=]&UUښq%SlȌp_`#r 󲌙%Oc ᨚ$I9 #=Y:Ѕ$cOқ3p % a 1#&@FJə Qtb);Q; 4BFXaĹD>>D; 84Q(EУK%p/s6ԫ, C3Q)ɂ7PE2:U,+''j˃>+:hWK",!: h,zlvy!z %ꗈ◅!#b A'(`2Q/`Aܙx4I%^&֘ &Tʥ Y>Br._pP*I]P0A0BٸJl%XC1IgR&/щ 3:%TB]A1|%QpÎ`1C '@C\;Š4MN, tM4M;NDNĈĉ(Rl2a̐ڙŊ<(0<4:q5>#Eh=HIS lI,,ZQ OY'i=1<+01|tLw\51PzTXSR??}G\,0-6uK!`+љhma#Z (M#3)"ɚ u,9!% JQ & KK 񙰩L &$O}ӌ,x l}[4 Lp@[KN)K/x%,û[kjS`Ե4JLQKkC, [D9'kT)2S_(zGHD \ ^mM>8^VUęD^DӬMY&#IỴV!Y((a]ֱ+C4@9' 0I*O>BI4XLAS3_1\)H˩*Iҩ3t|cA!W=dy5zTz-,U0Yu\sDmY6 6l.b?H p hK(51$\L沚&/ɛʧ욮A'&P.9U| Q@j` }Ú (6M8;\B60}\6a%,0m=k.)8 ]<>R؍MdQdQꕓ=Y@i?Ѐ#"6(z^P?ecQ808۸ \\Sy/ʥ˚X&&%AI M[R2[`; I0,OV@K/(Dɍ1虫)%e\ OگA\?6TpKZ%\وd܀BHT֋9(;;LŀC\Ub-^5敊Pf؀ -a c5kֻMg,Qݹ%&My0<1It,,qe|E4]l>3)!3<&>lEb!ݾyDŠUf hYv+6s9 ! ZiVՉ(b-Єkx:G(ATЉECj9[۫o &"2ILQ3DC ̚/x{zK(n/ߋINJ0 ߀d)$]B7* YddMZTDKJb$i*;>JI'*kv*#`Z bvedf悙fXf h~ifVnpWP2tNgtfdM54(MjWa34FcDs<++>ב"X9GrEihPѼtXdQо5bP+,U51j x@a6rx!Mh$׉P i2Yčŕ2ҩ꼍%EX$(#h+?sۯb 9~R? %4DTk,h@ӧ$j8dL$PæA(Zp¸Ⱦ rJx=r3YӒC)JI'"pbHdJ:Uy1"U#hp\{; :1 q eZ5`ed&~  lvPdn`E,rF촾kkDѴjc]g$# NbbLq\POApZ2!iҁ~ F屇>_},VCdAddigy/PiQd`MݼAMi'!Ox b!<)/)&9++pEA}TL.GE`=1Rt V[ҧSŁ 1[ DFlXgʮ0𮢺:L'ܷO͸<:\ ؽ rX$P%uK/Y'g=.01'a]C8='I#"kMהp[p[v n_ـp~oc'w`~H歊;^^eLL$M_=wy+!#3f2d&K#€%"Q6xpAE`(Ĥ$2e(:dnLus>u$QEz2m4Mu ԩ MM\u֞aZmڨ!B4\ P`W!::tv\y2(H4 i cSk Aߚ%Q,K.E0.Ŏ>qv-ڽ _x)%x,/ aWknĦ=zgiϿ&Gk$=l|ԮZ"K#F(@\/0PbF 9Y9RQ_C0vG#=%DFTD$f'بKh?d9#xԹ 94i?@8/W"4ea#rk`` f'RY?(5 m+נt@6hO8唤{Ij6? 1jLp**nIO|z*&mFW )DA(dCe Y>FFyRI4I -'!1JRtnG7K=崮~PT.5)PYE!ZXcid1oSƠEHV\U^ 8;58@2 /8f=AϰɉO(?eDϹ֓"Ŗno-Ruj=-e7?RUWmD%BĔ/v"|_zM^|f{lxCkÃSiA B"CRJsYdDK%:r59Y'T) nRj >ؤ't9 6)r"HWGĎj*Ü8h}gD)u A&(ߔ3 ^Wziv?VN/UA-pb5M XmWLBٵKB¢`xDd|$I$[R Kd$+YBL.b-4 %Ze:(F1,?LS,4 s[5V.[_&Ё y*pA`Omx5C(Sh+ .?ˑHoig6W7)gwD9VQClU!ZDӥټmq-7]|;L/@8q%""td›dQB,(=1J_ 2ӳe8_H2EA ;z Q8=h|@Mvr?& TN@s'DQQDJZNt@2%TQO`zb{sFRS2G.ZP:%PL^:Ё S'T~L(^&\ҠՒd娬s[/4 auG(eȢiȓwRD$'b-\ ĮLd"EP*SbV•d_W{40`-k$F,c'$ BƐ!E)@Em9zR :[DXY 3JT:90,C-}` }Ys( YP) #-̡9S;@q7{fdPEB#-v  @t@p 'XkJ;D"O$Q!X% B0B/kJ:i$,$,(A4jߤXSEw!k%֨9F?ST(TAՑů~=>,K4l}Si<57]bxk0(Ϋ>X$x|S"ۓVVHv*_b,P @".p䋬UGy-nq+fJ[?䢈渔@y_jk77jS3IHOYk%JX|}0rFsht OH'ҙ&^dSbSXI 79iWjVd'5 9[MX%LI{&@{*Sdguk>u# U+;`k$f@JSzesAW_|e~_5HmjfůKtQ1T>ꨊj)ZMW ̧]=!1)B"ǪHANs%bЫ4Dj'6ʸ }ix{\;ųJlxE+Ig}`;e<~H hjLO%(Qm%L(Б$dlt u-I MрI&1eW~ȃU(*HD IdAzeuhW2EY*A iHTY a@'Y Sud#PO֔]^܋DdOiLSӥT1NN \@TA!DHoAzˠ̗CI1ށYM5^ĢɅ!"!-=YP͙ D4ʡ$Jm ( iТu˱*]uF)UEyKڕc_>֧C)/ڕD1_OŮ%۲QEu?td-@U@#1T!ߴQOmի|`ԑ%`v5Nu4`Wtpr<͂pYD)D F¹i?DfAQ VwyPM pqݏXJAT24 Wװ0 vEȿNx* NޕgehO 9eiRJ21 ̘KD찚uDhh؍Bi܁]vFɋ! "$>%"" ^!"#.b'Տ$R# ͞IP4݋`DaS `|ah~J|jm .Җc0n-'`0Җ)2NAIV)SPeAeh1E7ETjİ#L ?jE4 ӸvqRojDD`Bil pyEhdHձ4]2čQ DBdI3) @1 x-FU8F-Ҕ8SΐUQ.Ō%a#%8]e@t̸4GWR扝SHi!ݐ!STIFR@b&SaO݅4%"&".Ogy.Sa'5`Uy^g`Fh"SIZE!|oW}0'j?'qjOjO'&kުo" 0cI-۲UX:h+}+SX1!AgQ8 XCAaSC`qtRq1Fi$)xudGh;%QT )q|!2ƺ,ԍ-h儗=$ =h?PXIF<#<\)$XFNmOɝ@f䊭Lz,STґbhQbdAqˠj=o5EUbo0s(37!(L@3Q\@QúUB,@s{lj SUG[rd;:BOO,D[&ă6! I0]ʴԌ^,6R!-rZ0>IE]S4SxK&RТ4IxE3SׁɄKOpN)@:[ @ɄYq-3Ș!;ƎjjinR ҵ ! ~D?m5WD˞<%GhxUVJ2ED)[7qHP7#m?( hwi3i[ls^L,w𯉉1xFLӏX [WoM!9RD ETԏt,E_7n8m uV=<21]"?@ $\C0Āa?CcW\ǏCɍ~@0A6kڴ5H7f PHGQH~@@WwScWe*` 'Wڸcӏ/h/mѢu/M.Y\;aŋ / @ Be"K\y2̙,?ϦIs8:i ;6!m˾8qH O̙+T^}?i?ZmГ}&ÇO3g(1dE-XCZ\ɈB!#!C  ԨJ(0!/?Rʌ˻ :+@+6JJ%;O-j &>)AB ?Q\: HtX#"T4 lńW]M0 gȯ%,:P0J ̇!2;83Ed%'a?|.M*ĚSt|$X Fe&kܜL^Tʌ<r :*$(@,İFʶOKTt)ʐZdDt!]ЄOAr璗.m ztkGg56:N㴤|ע\R~&ou_G\s*b{g7vk6 Q?}3&QE3jDhajl] 6Cߕ<Lg0OtKQeftƂhْ-Ž:h=j̕갩Na1X dHbTMg" c%EM>UtBMzEB/=#m $")[W3fEtzv0qBL0u>B}`M Q\j"90J9h0 8+d pp,ȳ1,樂r4B.Av^8l&c+{CK E2 K=j)Z*n0tuL5J !~$<4Tf+`f+sjE` pQQ6}4m':3aTc耮&3L5b`5A߶}u f3pq7ep_#>TUsr%r.2^<uCs_0)D(*DQ5d@5mn,7CN>vދfg##>c#`h7vjjT,(rP!@L)6ʓ,˒GVE.-A6&)&KQ3vofw"fo W+˴Lπ.ۚE$4S,A}L/f`Oyg&j*͗SȆlm6*68"mSA8@ur gr-2"#_4|O74 FXCNX 7dC.JRX/+Zfgˉ\ #pJ*2Ay)$t:thI6)+*4ƸJcXX 66"|z15 5C>CUn_s^辪RIbBg/bygVP 8.,%w%1m #USf4&&2.6zv J92$ q`xq8mȲ6Ɇ31nhCx[11_sG4Tm(fR8/ˏ-|L p"/~ ƌH(,|7hTk`e5҅[8_P5zvjу(0_IfFZBDipj'LTR D"8!Y &-B!b`(Cq?D CABЅ2D,-Ht  ݌?tJd'dFk:N 5(;-np,B In#۔t q?i޴d$.pl wH$N\*A &! 82# bNִG%3SB)qɧ\&LZύi"a 6H5l[ P2 'Í^Ҫ)&4rj#5&=Liʖ5KhĠe/m2T4(L&-zIk Pf̰bl=ts8"bm=i6#w/{nG4Pσnmb+{ǂ7ae֜SZցgL. Po\U]V\ /Ϫl <1ȗiaQXX0 Ve&naLU'N2PaOtT !ug1~o+c)aD%DHyd,nK*V͎a|[~𶯹Q1pfiHm@76R΋ ?QbT$sz[E L9Ʉ'/aYIW<Ԇa :"O`-=}͍?Ycк1%^oh@ra׾.!a]Sփ&5Ϩ{+#Nu/]t}L].U~U`C? Tb zMC* KԒ \xJ+1b3P47N!67b/TR!ID(bfasK@BT3TTH5c6 sd"Ov77Qvqx)UBzwr' P#<'I`e$N6@6At4"h2"4&$Av儃3l8G$l4(iVsU0UP%w !5!5|"AKe9m8@EPy:QKkyrl6(f"p(G.\\ԇ}|q= ~Z+%W}.}Q_(@dW>P!;pCauB-B`b:fCT1 )VqS;dLTIsIo`郎5GU Ifa?awU~de"q%+I 6G[6lv' WPhSWO%P7K33W}H/Xxf268~vl"dwmVIA@8%w5["20P"PKmytH[oIfWD`@k$ʐfNb@;;'xiv"qKQ0z6;lv=NJGlmգl5|mtqm|,pN-=Ԍw}I~Nrָn9nro%~!LU9A1[OBbG 'qPgPhnbIf03 )4 "wR"E4?d䎪WwQ#)(r%w'1m3lSe&GiC ; ik4 4vrv7["F'~3hd86VrS["}oJ"`ujI qmpٖ21 E0 xQ@]ʗ}Ickİkkpyg l]xY3G/RH-= a+VlClZh|RyA/R.n(=C=G}XNUSk=?yPd+i@d/Õ+wL3RA+1"-l3"-(/ԲO,6=_s?c2G bf"D+!Ůd:w9m(ZYIV!jq1tuI$y6=YKipq8swU;"bI{'%gFK$sA 5AF.5+@i5rIH iKP@]] `DQ+KpHfH yQn4g"!E-fb7lɖX)`,rk&~nXMwA=Kn^D_^BU=|0OƮQ%1:F;ßB] "?U8܃,d+I@mB.jNjYqd?gQ 5>/E.8j(@b&f0@'FfzdtuG3UX&@X2er&Jٱ A\B:Vu"4 C#zwAf"͑T119;m KuQږE@mZK@Q POH˗dy*jB[F')5){:a>B6]zw{hP=;]ic{U}Kn[ ?k}v1/Ăf \ !eja݉/t`SdSW+b&xFL3я3W+zkfCʣ- rJ7eع}G[9wj%dU'W6曡yJF%HH75"Ja8dJAiv4f"k$h5^$ae;!=J#q6[5/rFڤM:7W jSZPyF(|4L+Rd@0dpZj KjqÙV(5Mjн;\3  (n2MqѩƵ+LV,bӧh}hư+Ҹ\BĜL U,/11jb^R-oSx{}ny!x=.ml !O>r*bst)%RlzEC)]3Jwb8PkjN'Rѿ| HqUfG3&˿THtTғ|Y$mitQJ?;=#(R3|H"MKOJK;PfPkEXZ`Qp0HX _ y'=؃PWY#;2T8`n !FgJbHM`LF/*M{UD X>D~7ōVAz=t5{/zN׹ #Au=sɃ+ Fu_,h*Lwn˃>%rh1rBE ea9ZsV`)G\SPFyb!fVjٵ.'Aud;xxS81Bfrۻy6'RVI4@=. #C` Ar(1wؐs8]E ~cB LǏOۚ5HwOz/d-sڤ(Y4!$wM 7h@:y(%7t&C֧/&ބ[~g5hTc7P&`>* 71D>XM6ich' ha830`G"Hf7,`"rY,@) 0yGt-$#($"S5t, eqeXL \b 2bO>/,|!_DEH2Hsbi*j* BhAF d+IJ b$JM*NAF:I%b+,C`ehi'h QQQ-)QvJ*4j! ꣏ƒ 7*! ɬJ* C0"h1!tl'0#:x:sI2^lAb6ZM7fY.7v!9n %j 6PҤ" ;zۮ[O!!Z>ˎeo#pYm4p@d[A6oVo +|EmsE :uB0!J017#JC/0tDILډ?QG61GN,@#qTIJAyG|$QQ@H 5a Fa+ t5r_[RM"N5_ ! V[o+Fzd$#I G,8f2&YI*V1@|XHn+hᨮ%*K+Z9r- "S!HP>{'xb*ՑJ)!$ jXt v(C̄щf@@2.G7FEf L rv7y?`Ci4[N#5RiJ $V0`ClhA?a~ѷ +V 44!1AkP'0|evZ5%lHجHP&-sIPR eF g#z']B#2vHkBb $zk(gHJUU:k\+VG; p1 $ v;#AM'H PQqkU$<Ry*f\wC*GdIŰ~?Cl+qib8<1%9E4El2M+rш&K@TFr>F`f @7` *bٚ-g-N|A4aZ6K#6H^m|"I[4@Q ?Vt~} . EhH) v[!ƩEWLCWGtpwb P'9<:?oz/ijz=(fO i23zmp$V? SDֶ@QvU #iQȥ-tXT?AE:Fiߙ~*)Ie@ ,R \*2 _r!쩮*,GKA.JEDWi}4[4`b>^]t*,- \4G69DnQ@"% ϪgfLӚkUxL;I2lT`5*;dzKu`?q.lF6٨ڠ ڈ)B̗[$@.-!ioꋚ[-P$3ڎ@FjEREƚ-Ґn"7m{- Ix茵qv\1t%Έ?[7v+̸G_ ̰.9&ɉP&\ B s=/&G`SfZGY//pz{˒K@*1mnI2 @1Hk-dyl)4)SQ1 0C, (dmCD2+ 0 )!X:L/:C !s:6#2"DC@(;1jAk99Y5y(Gc,-p U)dkʊR3m:0C*B*R+M",*@mZJSA l5s9>KiB(8eӖb:2|1?S( S?:3 EݼF[ݓ#Vk `iN?? 2*#KL,Xuc?`r6RTˢ#1tw!QBXHՙ|'_xJ 9F38;q@ޑ,Y2˜=ćI4e*9ٚ/k;Et:RSa|ZS(];Ë  0 b)#SCk[ɤۿMԼŘOD< pԳê0b `8QmqKLR$ЕFj ┋cMP@I]ݚ aX úN?p=$a* { nI[I3EEJVJp\j%հń60_2߆h@Y-h/<15 t/: ԉ7 a"4"P(-`-8d[ +h VVX`A09d;![Y]ڥY0Y)N3lJY391Jv9oQP$Z |  0̆8-[\T:.( 5,ĂXch6nXYCP眩ύC>9lU^#==Ui e] ,MF}eV?@t̐ViUe ʈ-JT$EǎM{H;GU\PzQ_H,h2Ɍk'JerLny8𙘶-ޥhnC^hn hmZ1늖 #n“>* 9%):d1uB 3H)DL)H ,E \Mh=J5 čRUqb?r=B1cܴϕݴ ƣkꁙ`}ו]~'6XHheX)Fv+gˉ3VWbI R`e O iZPԑQ0 Cf[KgZ@9hg8ܾsXA;,cv" |Q5s \tnȭC D);"K))`bo`gZbE#٨]vrv}YR^8­B"zTYR8 3Jn)#+[SaMDz;[)IEMG+,\0 ؀ 506)KYFlEU NJ굶 -?k (??ݣɘ>>͛>٭S1dd33l8X~EIQ\sɾ{?$̷TK/E8Bվ" =co6pubHG 84P%=mebPh=fiö2;;`ҏhuvu;n'/f&awuvowK :5B̴ bDM Ch餞G 0XT8wjH;(W)Jj76DPk z\? CAhP{DaȐ4 @dʑ ^!MzhΥ;m6S$6`ݰbń|LD EΎJlmb0ٿc֎e䉬kךGc8`X2dѣGyD.;rIQ9E%``̎8lg6Wܸ1a ?"B(0N P@Ca (#>&ԃB0Jr@F`BӃ&]ɟ $?PDQ#D)IIfdf!f/pRG%WIxSORN?Ӯ[RJdSJlmV q&t [lё.~Y3n# &r?u Cf ?@s%-–9piFj1:2|CsEpAWRQS2t4zx!vG! ^z<`|- ^ 5m9~Z_ I?|HmuXo4z#H(*C4_@N#C]"P&YJx ]dՉP*Da?jMJݱe&hcjDC 3q` irڃ1:3𼩴37Fڪ(D $GB@O%@P6>J,YIV6+|X^@r,HmIW9!8)4ȉ̀fP?0>4cF1Ґ` !jЦ7JH+8*ph qNv3)Hvl=yÐ-plTB1 }S@_!- RW1 00*á*F`'D0NLEHAz8[fQ+XJulӜ' KA B<>ԧ>%#HHP "\ϒ"97"PɭP^$$fGdbΝD>_*-(E sZ fT(Q9V|5Yr*yG[XYVaف<?n A%08A҂ !+D :f13NZ_C[iGb 1F F@lD=OAt+(D}筍k6׃?);{V4 qZ4x$WSH֢eNO1 QU+:y8GbxXSzxa ܀”!0=@$S L2q.L, 3tedCZ /ii*Bs":f jlfd &~֮TRA7n;0$-8&p6N,<k:yk?`HqXCFgP/X4-P c -} 0Dl"R9Y\8(<)|wck?=L i"M*°,bE->ոY@hӡZfl=M XRV$$(B[&.$ՓAxQ;<{U PP[PNKCy`EO qK@l? $ C MC `M@ е@00VɎ=)4@  J|:C6?0?Di!ڱ!ڵ]HȐ=YMm@ޅRAvlN%5tDx8Zȇ Vau~ޖ|g9aAւڦmJJ,5"$EYm̀HHo  H '8)󹗿H_u#M7NiA U㽩V5"J!ͧ$}|6-t6%J5ݣDhA Fd?IL$EzDY b'1ۀRH>@P@UXŪ&d 0МJ@)RT?~@2NeK@@Uf\_(C$ ƀb(FX1ɐEp^ Ae[-gUH@ v{ć*ezTaY")Ѥ"v&֨< H։zC& 9?@$ئnn<? Gb$FIqIǑ4b\1@-=W(+Ȍٟ1DـMLӢD3qz ~ z #<|O|Gu k\\)NOPD`\QEN$>uI]X+aƭĤ)a,ʡOMvOM &R.iMY2`@eT%P0~ ?K]`@kb[ΐW YK)ΥӄdyUc5 f1Y *ѡR&$Exbl"}$p R橇Yf}10z4 Oʚ0jICm "Q/2c)Έ>GHc]H-=yUkӀ~xHRϐ3-BDtT{ HߧhY#8J$DHR@cAf-/[B N &N"^,TAo0ȔCP?$ UTN?@@ 0@e  ip-kLFl ͆2T=\X &d`QRs-ڌ (9f_A",M`Mm"Z%Ҵ!=J= Y.իDmȪl@,Iq U`_N\ ~sHTqzrB߅(w㉬ȩt#e$@⇢5]$JP> 7Y,D$< .uD+iDhO?mƪ҈օ9$+[(Xl:C 4 Î , J i;&LA9i!H4Cd@ $ Ȱ֐Jn1 lpA!1p(qWHts@G^AkrΩL <^-_EZy^a}3Gd2cVmqM$)ĤL!dI ,J]l:]JXJAKdO'C*4B'GЈw$^QM)bs#Ch9F`N Dn@s|73Adr37ȒLNK1 =wzwy׬s Sz-EG K4JW- qp8iJop4qJԴ;)uPJ-rNs4b,tL*HDfV}s*ĊގZ,b3Xs{?D]I], 8 u!,P4xABl?$Sh:osrûNrSL:sL5{ʠwWM%!CW0 {l0!/; @!CX,B7ɀ0ᜂ7D,i/x+bM݃ѽ*y{RG"ƻ)V (Јr~`꾓G&*LјJI;9l&I5|ߞO@<[' ( jР)_E 9vר# 7I%YpR$Bc ̤IN42bdFqb#OB<)0x(!RE@={ ge5T(!JL`6?@‡FA%G XoWr3ZhMƌ5`{FW*(DJ7'Nk?7o ޢ BWq@CP|?pSZ? :u 8&XV; h !"Ф? JM6^㨴(Ȥx(0:,X1ȖJ:r'Bb+x'2XekϚĄȄY(XBJ.,l'sC(j BdF b#5T#D$:KMOS),cnɦp#B#Ba`Z*+2[?+ j-f{x4KCƻ k/Md[ % Cz2j J hȲ|{Pm-Z#M8_ n#0R (w 1f;NPc~ Y.8e8M)- @zzJ!6M46D83hAMl \lـ(nb"y2h`hXt U,$ĉW]ڶI \M81M*9ϲM- kLM '΅ s:1K778R,H *xWE44:I9I{#Qe5ӡ@ 'rj}z'W8T(>=0Y%8ͼc eAA&g !B 1]Q Y3@u%2X=&20 5:l4M"?\"LN5}9*@sœ) NE#jO Bt')OxH399҂##G8Bt63`? -[Eh@ - Y &n]LRBz@*"|7j\Jp?.>l8u sR:ǑcM*`Nݝ"rA`Nȟ2$-NyAQFQqD")e"=YbRyO%2UK~ddo&#W@ l&$&1nnSBpZ&:I.$ ^`.n^BDJ iBB.0,x^ĸ8nQl!!ih+{ {%:%pTwҬdH'ƬE "~-%ff8CZ 1B7g-֨7 ~`8L+- #N|(b+ (, JDюh,Bj OU@\C875N .jRFn[1n5ZZA2F#b@=7^'lȦAUE!`C`bDC4a^2zmN#=2%UNo3N)vA6xv,If!:.*e yt%ވ'"Rx'*hVI-lhr$RČZKkjJ}L|L#jGx` ckp&,@ ܐ -b[j3(6ccO4ױf2gvBZBR[2V7U~'*+d)^N'Jw4`7 @`7:xvW9[aؒ߃qw֬Shv;z;dU;f!@;F-]cr q@>'|đQ}l }HN- HD)+Ǖl,0 1$CUt`+R2O &qvXPŷH4 .`y V3y b)Gh+ⅭK g+}{riSzh*}Rj"sΟX%T*kVe( c2z[@ 92RMf~îdpo|CZkثë#pM8Z˱x2I{=Ҩ )2XB&*fbVf("B[É;ʮnWrWq"wJ!"Ã>ڬw:{Y:]m;gf{6W.ȣS*!C@}'`yu0t6ڦ@:"yqB$vqGuf#`+%7Jb-v0 e[D_b6I,s2"8"got5cHg+$23DiЇ?# OEߠ t*ojG=L&f>id9F@)JfJ:&2 dv0;dhڴ8YWg6M>vcPEO#R+ jc_c//r@ g Q;7;٭ϑ" 1ѱ:ձU-f#]g{pof((R`}wo 1\083FIh*FMG :R)`=]r~%?Y0~`#F"5 {lPfMLɅyyG}jf_$@ggo@荆;IszxX9܇'Hq^:ৰ‰MѸUf[VJhLF Z{/i-k[힌_jnȵՖ#Ɂxy{qˏ~1S!"F~K<ӆ׳ ˬ}_vW?kGK1:Y9o(=([`˷1ǖ9טG|`P~=Ba2M0ſ)SPTB2ʢ8":?0T 7Z V{M[u{(h0(gPBH8_ fW@A OO<Γ=+g_hp2A0ps hP 20!lP"hPs"!!mHHu5҈Y8jW<Dh!vH"*8$QF餑HQQ !La>pdVt&S*ق Q`fBP$!@SQuTHuH%ĐY8%CFWE1BB5JEKLu OhV$Y-EgIP+M1TRjN4_٥U 4PXrkIȔc)_XMWyX^M[e9무!Ƙpm0[kl ?۹[BC5!Y']YTnܡه_7! 2xDLAsM"̅ń!rP`b}c:cB3Rv ihWW6-eWfWEvTB9*Gm֑-S%cDhΙTrRh PnNE*, '1-De#BVjhJH{FKԕW;g%vjJ;ItŴDXiu{E ;H eG6VC!-Ju_|1ֲᲊf-pVMa~hCOZ?^@`k ,`VP7!x 944VxNT= 1}`?0!8 A5cP !#&DD4"Q6C6шB„P4b¸}b,X6 mc3RB"Mo[Q*M2(RA*K!S䄦HE*PS JB%PV#c% ĪRX38P)HCb $"h2VT.•t%UGLNbn BU(&C[幄8s,r,1t!ߴnr/'(BAUP<>;/R̪*^@ }_G-/ ,5Wn?(3r w%fQOECTPB(t1!"Њ39P2Z qUgFKVّTjgcar2,c wV+R4"j_*44oxZABF6/8/)F#Abˑٮ8R1QYlfI]"ƘAȱ~ YVŎ4ES^rҞV9ibFkU暶x9nD\$ MgIAt&-H:,@;I?~9J5quS([&G^.vj] l7h a(e(D"̖?jXj^IM{ҵRkɨΔ$vZAr3AgeRgJx I(`#^Vj%]x&4! >=SST=NMn(b<BNE`k`E`;_ T#!hAƸ·؞b3,wqs!C! RrL"4rR0"XSH&e'ddR#bVbdX57"#jSeeWbs6\#ԡ%g3r%65F1uB"%Mzd/;aiW iKyTI* * HtF&8Ht"Ig8"/*aa(Bh AiUiJ6jhsk#)-K[FzlR|lj"QJقl[l]a`^EW,B}u_b}_n}=aS tRtAeQp'pѸ@6{Dbb'cFbr3R bDQr"?3EaEU4`4e"H5X75T`59# I#"5he F]SJ#j#Kv1iUD$adf!@Ept$wE7b'8^%[TXqvyv8]8y&t5YwHVJzBz_a{1:1Kxb9VZw[ሎX)TJ0\SYY8vSA*XLTL>B)ͧhaDΣvТy!R|O*“p_ŘHH 7y U1PQxR'aRA`vVa'RGEcErH!I3pT%E4T7VH6H6sMV+U"9ž\9G1 gF)#yE*F֐dCC40bdU V$rU>"26Q5^PO7 ѓ-@.[xg}Xwt8LqH4q1-xJd{H+AK,R:NEzxii[oR ik1>SQ8pLkCwD2>1M#Z"ylK|ڦm"|;򊜩.( 7%/` [U0 D5 $Q)/雬1WS4UD"ɀa"%WDJԝ ET&4")/'#)d&I1)FZS#*9J5G"YQsU@QJ4) U Ѫ j 8xD3a ` z5uy 9)8N'hTX_آ(vS,z&a9v,!#iF! \S! C^f(NCTia,91\(GmD{KI99*k;EzULSOT\v9>f-g5AT(mѕԕ_%=PtXMu?A/ @T=BoEQ/20vȍ B4OESh3q"2ر QAdQ4P35WM1 6V?45GUd!de!$r B:3sT8 ځT T[jEC^2gOoJu$c&_HdBk8C.alȇk*]~X(<k1MjCbMmh,b+BjfzkK#+&`K-`NtG'-9jaO2|!'Y(f9^ecXEQQHĜXĜ9-j8~uFؒv]I>:,z[R__ͥ͸>-hgiiE=E TKj2Mcqz^z[K5$]vF:y1, ZO:^ì'vD^aMOۭ*vjJ}` 0 ޸N%Ybd!!~ѸK/͘{e+EV][f:vqvki'21p^9= w* me-:Β;51Ѥ?_ݚŸMOGhB*pj8z'RMaARߚF V4xZSÁpR#kC.6鮂QMVQ"հZBU$&@ ç_) ߮&&dYvp¢W@h6 (T-[kJ(#d?*wBD <"|aCpB9F7cbfbɓE Dg%9g:&(_IPNL8bS?gny TK[ ȃ#mȑ.SNlϞ!B= ?eX!biN1buY>t0c rg=`XP 6j@Bn޺}`$,>*T^]v۽OG:G@ݳc}z/Ј~j).` . .XbPBSɌ4C-:2-H̴PBin1BQ' (!= ;AH<H(@'y$(򪦃( ᨦJª"Դ)Lb 7'̇Xt &Z1N=ˍ PR:(Zrbڨ@k'*(5%*l!TƬ jሆp^ 6δp "/,+̰$[1Ţ1i,јU3L 5pÍ6ڐc77ۄ i@N;n'Ϣ&Ͻv j3F "@ @B й/ o DOg7N)˫JlPPhИ4ZPaH")2kZOHZ'*0S4O:l0[XR5{Tj*L"^?a%Y jIQ=VoVlr:ˠ z]ԩr*>}|W]m)2LڽD _'Kf 3hi7(LCI3+[?MF*pNޅM8n{^}>NAV܇:t2V@> O|R @y=B AHe*aC4F 53E3["4a$+ U! ƨL8'$$9lQzٶIPA(8 or7I*AY֔$`M!ENJpӛĩpSHI48*&E<fdÒj HL/ $'I8UƳPN~(- SSjSQī#dƃ^<Dǒ#c-h{ &˨#|| F)цZ,?"A@dPP A̸9Sn)0KHqh|ы͊YPX}RFHIJ\t uiQdBȱĎ|k~$LvYHL+}<$0V`{\HF%>qQ#X:.%ΐx;SWRQ&1Dh4Y-,)XQDh\2WD;]nebFEN 05aյZL=k2VT#t(\3p LT?|?F ^>Qgg{+Tb/| `Q^c (ź;!X|ֱ !%D(HhdXҧiٷjȢC4"\zmjmahȌ14q)`HOe*SER PFDa4JQ,DKK:0s/I][$:)R:X8CSǢ-.w&!kEM`W^57 #u{PVVr89YHK(ͪ䲂'PT12Wɣۧ%*dʱT`)(GJ2!j=F2'6QxhB#Ά5us.3n|c/ݸס})PV.py>O4x.3`bpccV@@RŠ>݌!2aJ|+8+'U  "ނS RHL\<% JҬ5*]VL$v76O*AlG9D"ɒE7ڙ#kuyjE^SHH1{V\Vnxmqz NSyWf+ Zd N0=/–yH T8S('fn%cMCĐZ{^r}y Q1 hYHt!$.jWzn׾7/{Gf-z ^􂩙E !BJ X)C31*gS1!ˀ⡔:i_a9Ҩ 8@*'923 .jҒI貃)5#6 ȝXP$`5IX%@VXBx>b*k7 k ʘeFZp2 0c@ +':3n#@ir٦Ϙa997@сq9! P %0;.j 'H%<Ɉ-Hi%!?EҤ&ԓ>HI锟t\ h [J2DD@Mr<;9%K1;)[ # 4(2.F5^᪋4 4`[ ؖګrn*ŊB @JZtЀnS2/\L7nD~bwsͅ/Mw3? Z0ee|{sr4qLqW u|)g;N|r2虞O=}.Yl9qK۪N -tH3R:"D73֙#$ĺʮxF PIOi+¯:Z C{4<  BƉ!K  \ @-L7\KҢP HpY#H=X&I i)6Dj n ClQqE=UL1/Po+>],̈́?>3ԘM:~(ke \P P*Mt r0 * kǒ鰈; @8ZU! iGcC_OrHFв *! ,ۊ5'!4A`3$<:ے,:+1-dTKr /B/S4H#J;ؓѭKtLC-> mt/at՜ٌ~þFžTOpB #0ٷY0P0朸L])!ŭNr)"8ʌ^@5#1%V"tA}| pPש$̋#I9٪:Q/ :3ʬ,8YEiXq/3YAC`=k7JU١3s"-@02z1Y.5-0/]@`PDLKmTG $:oۃ8Rl@r%8q:> -O቟ѬϢ}їpl~l͹u#Kb TIWgNf&TBH&AlִURRH,HF`Y Pj G% .v&*o"")!guZgaT~ԯKUF0uF7iOԀhGEƃhPȰ +}8vo?)~hYp9 c)H!]7%,u5(`*N--.Pޝ+>t m VG&,q_dJުy:](D.$} /z-\n, Fax[chkvNd_M~i/a!/wZ2د!XE(ZbӐx8*j{oX~bJ5A}RGÀ$!rHs%eX$փ#BYh=[[V$SRIo64ćbYI WO$CORWAF)ӂ!, %C RI?")RYd=B DW$?3!L'J*$L6tP5T6)GM>TUUR[_}՗YSV\*"ZBbp`{ ,5samg(-w1hOhi EZVAxv 7oUefHAWsA'dYuVez!7z$SP2|G|~%ן5|#2_P/d ]xHT +fjV1~#ĊG:[i (avY'vX^Ae9'04eF!p P&HAT_  Ii"DB ]YE5^tьO=yz8-I=IzM֔:=PӥUAjS Yu9fhOu^5^{ aila(ed_gvimvof6[WưCGb be<0} $ !NV >!"pe)~`Űf4Lf9vaDh ZxD-S[%VPґAFC Y6mok;dcmu[KzBD8%Aڈ$ OCӞle#)I҂R*(@Q2(0(Bݥ\W)S<JPRk:B_E}J<JK2K|"JzZZĠ4t.b_uo2"`:d/39V %_\{^q_tIqN:)ρJ H$(ԂBw:ȏ Xv\ (W#eYIyT%:Mi5C]d Shԛ!D1EfOFAO&SmOR ΦKe2ZKdR#&Z#QJ|#Ĉ+%]]y%Yđ(s.z3#MA  6 ʬZH7UQ4, 1H4:Nۘ&lgP9aXd#1}W=.@j8 Ny!,Ce%3 \~, KP7و,MKEÕLEJPt6x$)MiFVd&dJc$= P)HA2#!#k"W>rzR恸GI.M2(9z#}T2=ԪUK^HSXp[01]|~9jV0@PK- ,d OA~y湢 p˺6wP s0Jl˖֋ E8-xGHLa?1ɸ?(!xa%%O{C|JB6%J`!D~V 5'8)$2l\VԃQLy8=`eI] eI5R=M0]ҥfR`RIĚH<,l#؁ْ_TOi`lJZZ$2AȰEb<^I `$M!P:(WpeprF,GygGܚG<!RSyz5bdnGd^h4 (:_ !}*FJKT9XY EҨX[`ȅ[9XI][0 V© lEH =ɍXҍ u`D<~&a鑝̜#>[!_i֎ H&a`ԡ'Y`P`M`IFf@D|D,yi]ieU0GY!2ɒַmިe%r=f GihwaGDmv8O1BPo󹐹W2Jà\پ%G }ۂYؾY*~ʹ.jui\E\1.n \-%eJ̓ʉcyfy܏QI ɘUHEY <#oQ=>YYNS ~΍|'Z]s vYKIxnBFrF"Ũ4ȡ!ZU'RD1AIV`D 1Uaj](Ӏ Y4A tJOgaBQ|ڸx yT1KFݏ bqeX !"5#n$\IԉK_FH D`(.]("̤bb(բ @0JTԅY&ؼu!)ψXQZKNfQLUmݘTc Wfp&fp&DNYc;V.j9#mۜʩ, !nP+%uDu&ag'툫cmFjgڨxͨ{L Lb.dZj ~>&23]N&"WbPs7I!H,fu^n!zôhsZ"O:|0  u "м =)d~naNNAn؇\$r_0&,D5j$\&:ȹ͖U|`5LɌ֚U<o͌͌[DJڮ-J@ f+ V'^ jxbdF~g%!H|gQKE-0DU![d>h H05aa5-P~SV|mŒkPPS( ZjS& UA-%Z^F \4!iX_)"րN \J0.fa.&Ț/Gb3\;_ʘFUT}ڼlrXMfɊ;Y\uU8z0ɜFp$n J$ _ Cduu -vj-yTaRj-%A RLahŗgޥVOnJ5petaQFbPPs!mK|ixn^WW՛) %a/[ MYLMeyY&:]%[P\)90[a..&b L+oc_Ӏe/$i-s+Y\{m :Ns\T 6CUM ͣ`1]-SxD-;o ڮ;ҫ:h'r'3*zvG"1{GvV]5B/O]EBI]̔%F2I$F^Xt@ Nd^G}ih+Mq iQGr}lPJ QǪi_$)e$`F Z.2X!&o,XXw)+)*ciz\\\Nm+o#0/XIWu\\zМT1sHp`m6c:ZJ:7,:s֬iu~^ZamQ.2%2hhN`4ba,sqI?W2^tu MfƠŏ қW+rQr!PPr[d~}`2Zzi lW[PDž ܅'x0"}WF/,-i[f3FK,}%5Ǫ&OsccoUM5ϦUdk3:vcR)9-,MS0BLl$fȡ훗G6nVH~n6B /I'IE 'H@DGpp8BAB9pA# 8 4< , oQLP@ Z"zB q 1A 1'#Z 2ʅ j$ZFh"h"L*i!T 3Fa&2˦ʩL*RJ0tIO+ƨ0<J*:.魹 SP=20]h1O'+ALκ,R-:`959'ڹ `~v7:M7 ؒ4eSB:X;ܓOHZ8dBDY<B9F8[0P4qAPelC+>"HfFq!ug%Z &<()2ʇH& IMRfj B5`MU,`6dl<,ٶaPSN-1or[UF7%-vӔ':L{b㔽j!|Bdm2`&aXLlE:-UJċ =ϥcgbLN@4m6# N4Kjhņ$ML+P4 %Žq':*6R]pR>B0f`b$k?KAH}݌4d1e( =f?a-dG#i04x")JH?B%$-I r\-C"'C$=* )d-K! 4C7,ҥ79`**EaՔO3oy1pOUd0s*߲p%.Q%5F+XRcgKt]H)Wr6j]V_<˻Zruώ{%`{.؃- @ ɜt$m}*B#т ;YXk9f 5aͬ=k;Κ ,GbPt+$3J&nABS5R Blm#ZA@P1T57ќ++ `2O1jQ% rv7tCA^_p[GRIaN/WmOI*(ucJԸ u3 :Fx2HD\b DyM{\Iv,Z]*Mth׷j/<+/%' '@iLވ>s_Wc? +f'2llL]h1l&5vrȰ3m4$br[ڀ.Ѱ `.\,#dLļQ>` G+S|Aê cvʸ-pE7 E bHZ*cN5+}. w&,!>xΆ#U2%KTݘKwQ\7ky$wF5سMo9i\Kw;X 4}/,G"}+(%~ɔ4byhpvmal$!񬖻@x Nz„ -Ki%¤LD"fMӘ%쪊}J Lj.n,%U֦.,ں'NRTTs:U.(WVXs/ R0f@o^%m jx_Z̒E\^ƃ/H Mܥ4~\|< ϗadc<.If&E Q kjfƉD"ƛjic2دIzI Ogcgϊ%p "ꠥ!!K.-L¤#imD&.̬6}jW#3"[oBD*<-r6'tƭ #hP(.Dl*ʨ:3C'Zo(*w4B45 -Jk$PXY,Yvl[Ґz~onz G7c_@4>K5cmCc%fh2&mR4F6@  (DȩxzfgRGgDJ`qbJrdq%k&Mj8bƿ(&L&*ZJ?'/TnPbC%gS∏LgnFE.6'2 0@. O2'oݚ*ڶj2 X U#8*ijc24ᅕZɢxjXP7'G>5yI՞ PR%-fh&"Kc"Hڏ3uQ2Ds\*hdYZ(.Nå:VB#j45ЇIkK5 8J4R YM"'He"®Z5~o7> .= L(&a&.SʪN=c(0دPdx&fRm ,zOiccЯ(雊Q;dD82>>fKД.T$ iDI~I\L" @@_]?oQOJL>䒻3NHތZN)0*Rb>JV~3qذq6(e(nbTGő\ ŧF%.3ze8tGb']]#Zd6WB:2]it*_ #$ $Lu%G|N)+N(V&aJx}VDz$gZ GҠ`=WNcV@PYigC"ĠHU bShFBTrT ""F,խAVJNqru6`(@C/(0 R̢' Q.\F-4[,4Hf3rqyzc%B"GWt O`#/w$aSmv!& kDNgF?{DGhjDcrbPB4–NP5sD/JBQG%mJ3~6}TLD@7~/'n%Fp"cIWS4%, [)D.F6D *B7*Gm"UF"̑l S)1UfI JNn6b4yjt"J:n[$GaVv7va׳ fa7Gty=w=c#fUndA Dj 8 kk Zj/9Jj.$TIĢ0b4i"B(c>7=a`*jҐXY0T恓e)(TTf/(Ѩ/qG7/0eV?p#rw4 3wvܤpKe¼t^_"]iH7[V&eȖ`~7bX2xZrF?Ă4(Ff(X01l&za)WEJ8$ &g1(i A Yi^Ji$.j3jI&/ ےlmZZd!%[\*k-NtpLc0j֘_s22H eWW SPktH؍fg0L|BSXPq]{|W!ĮT,.Uz.{䢰 ȸKׁuOV\V9VlGhf+;'' ՛X|eaa'ZLF:Adr{nW|<{۟B ju+Cr$.^ngZl]نWbws$lPC),SY3p/D=V5G׈Mp*20fŖG1t؆Ԕ 2WH/)r]ߵEVw^4 I{5RwWo>>\t>kW%O[#K@*[ӟg&ff7h&Κxf^(5׸@YdFPSn9281q\`A 2|,Qp򟪎/i'cǜ{ 4D -?@ ( cQv<_IZ UrBi LKxo@Ԫm[mkN+wJ5oZU_{&Nĉ)Qll;Uvsg7#|ݪmvfKRU6vnV{=񀀞vx8T{`ǂۀt HBE$S(o=(1Cx b{ؿ_G࿟FySi@i{,h_ }j}P$!GC=DrPSB #?B#E5HdSN8NGaH IIA?1ҏ Eb@!nNdtMPjEX_%@SrU|5Y|q)םn]xM]`XF oeWV%?F '$@}q&liqygSXVJڪV=5tTyPEuSֺkpKV5W` 9k@Vc5ǔv *@VZї^$K,~wD|9.-,B hEѫ`-FF[i)z"(*..DcC5vIRbyQHK,S/q䒓-;:Ip l;=ݝP}UlDrhh@ 'FE\Aٗ`X~!XdPKnimݓќvfY v}^^Af7ޛaח%:tVP\=!t#t^Db*(qk` 癎>zvQ|ꢻ_vA}+ӹW.8Nom`1QO >fD?,x1lVDc#%FL7F+TG> TQv]j9zT|RN2Ek]#@"KYJSA2Wʴ+>0 ֑ur|7#JS+Zɦpk А6E(*N:֙- a[[!ԕ60>J{-^Àp7OvXUc! !f<{AȻFqd8yHt '($H$L(RM#)pKY2T%k{P1=) (de][OB*3f@Gq*rJUDP gBJXr%1܏1'2l*9trexIV_P+(ft3"`lbLPFZ2-W9QXs(7n-2&)&FmwWʵʕ&sdyy'eNv75(WAp8Ɂoqm "xUU b|_O,)me\XrC:HqgE5 "Sr*a{x/C~Ui 2R~ij~G~x|T$ s2HOH$u>#ST#J#C9Ax3UkkFk`34aN6%c`VB$,&Ǧ\c&iubۄK92'Kwx\h&;v76e@3)@̘mBm*TeK4X!`θ3!aC{`XBZ@J!9fWedA1m; ecfsyEI vx}]c}~t SPt0St(9t#^"^E!$$2%#1CR2*.STbvAa$IC$$ƀG%>gbHF4BZP6B%9!MUcVI-I[օxZp?4lYc4xƒN=sOwBqS'`![)Y2qR-׏xU+LAw+܁"&kemr,u{-y懙Fi?70F~>Q;(t~FRrY$c"<=S1"\S!,c!!H>IUS)yK RBхl6(eBonKxM6m+xbx$viU%,,F3pG'vA8pmfgJ1&Yߡ> Y8%D' &f%X)Deo[\6V@Xgl(}هcgbCUF/REi.T $XTUIEP>n+YiC?bBa;pj7۩?&b%mȺ|rV',"a{(FweiCaW89 G+SZ_"ZUy+#CB;g;WV@gW1k%m:TgEw*AU;B!gѵFi,)Fuį<ԉEWtRp!;$?1T-Ѻ0s-3;T_41?)a44^VXS=q08g,2b4(Y Kn("Txbc)p9&jK`4rB*z|> oxs\Cz4 lC`Lq7$:U<:זVumpf%׆$I~7CV*䛔/$Yvh7BH0CuCF0h#; [3>0#;3T@_28K)X8qRf@^UxjlQtQ>s>܃݃"Vq9ejMG#ރu=EBWp v %=1 L#6 <3?H{\v<5)+V8沓tG@rﲉh\<ɉ)ƣ"3#˵G=@RU$[bGǙ}$0L'#%LuSwh+Mm8`  -Mm !-#M%m')+-/ 1-3M5m79;=? A-CMEmGIKMO Q-SMUmWY[]Dr`S0 Pdg=vc]x-U}}`Uw}Qdf-t1+nPQulգ ]8`"p׽U!n=ݞ=A۽m]B03ۮ=-UMۅm BUat]޾֤ڿػ޿!VaP~ =%m߆-V13P ]=.Bזn$@-=axM@=P֯؍ = 9+@^V#]04EU;Cܿ=YQg^O_5޺6Gčvv=`pUbpئtxz>%l@]aU1aG^>`.؝.ܽ!؟}@ABphBPߢ}݁9!`f..L=词@&.PGtMQU!;n&S-s `+nNVAAM}s}n8aގ/no-mVb`nA^?G~9A\ػrA!.Qa?. n/~g xا٧?VqxOov]>!Rt^vg'rA0\֩V $X  {)OEe,#EzE$YI)Ud˖<^t"B{3 <.! AXsNG#̹gЗ5¤Z5MKO6gWaŎ%[VN*e[qΥ[.̀!,3 '4G5BgIR8%XBK4_EN! T9DwQUW@IǭU=GK9I[BKG D18fEIO9F0nOWdGOط5%-0hYrbڶĶ{c]VWW+wbC p& bYnXdbtZtH_CHD&# ʹdWiLUO!ޯp_e?rLQǘzUWӪL6Aڈeȝ黡ΩQm]<ȆdX[_̒h:0;jA/h(YUwZ``jX6 ڍjhڔe= E2<ӅdR>JtpH7E^R)nIuJIw͑xPMyZS57|tغjKNwT\V?Ozߝ̫{Egg\|SW1'ي]mONgEE3@`=?h诅d-SLŭ_BH.*nGH͵=*5Ү[[QNUSʁeS7>F$he4$-ۦ~pTql`DgrTvDxՀZН}wh٪N$SӉng`Ј^5#(ʉڞx鿙ΤȨ݂MyŸW#aۙpY\XMuP}Ƃl͈gK4vA2\Js9%dOϗrW9`=&)C,Ůz֔m:_ᴖoQ3QQQgLʩÒvK>ҵS?]|icccչpppKM6@"cb *\ȰÇ#JHŋ3jȱǏ CIɍXɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴʦPJJիXjʵ͔`ÊKٳhӪ]˶۷pʝKݻx˷߿*(K2+^̸ǐ#KLe0,pm˭˨S?7O*h!eB7c&#?#?O=tx"uޑ@t;})(@Ǣ@N^(|y`Vl `?lYaihlp)盶x@$H–P\&xbx?nv|3~6݈/Z9:z@K ":?s*무j뭸f[ t"YR)ohX@hV,z@ݳl薷 ^JDcJKsq6V>Rb@%c#YG:@adbaq,uf3weq80ȦT@.cJlXŞz*0%0tQh-e?pZplJ,)7*FnX ) IB|"F:򑐌$'IJZ̤&7Nz (GIRL*WJ2a$„.2^ ,"́<bSg&XJâO~*,q`NyR1dr,SnL 5yi)bFS+6S͗#g:w[Ԛ æ!{*M-\]R{@*;'̿r}6%*-f~*|eOIɂ氻EpM>V9dX\P޻b[\O]%هNUNiOؖXqdeda8 YҴyӴaa&[Wz j(HrdAkb9&{9bPSS'58l%mllEg\MV||VK\ONQW7x\6nf `nfbugxmVluvew%wlV~v^kVp7UuXe0z_e`5eW?`pbtO$nUtTNumKd\dYq.Պ5MʔRϴ &bT'zvzub45Sˆb4b9f&v{7SS,F{A{6d<DTGJtu6]Lmt}|R|'Pxn4 @fGl֏_xjֆuV^u浇?PsuVhPzXzh_֑tu|Af gx}\` 6uSfHq5iցfjxdZ#zϔ5*ܤ.2(cOk7u{[=[h!5jd{a%Yh|WahCǎ|tP/YSGK_ŗiU$c`VjflovXVVphgo)` 9Yphv__yah!rᏵ9Ӡ7*YOeŗU]U8qqBiHauy̥fZhzEjEeze'*gzX[,&{6cXc/l^y[5j{%Y{AxҖ`@dtGxK*pNX 4yi 8 'm~UomfU^fUPiPmhsW)~&hkvqHF:X*&눎TO|euK^*mjiœgC){'gZISJISYbMaaw HSE僇:\UIΦT(aQwGT]K/9L[ u|a *`xu! ** iVif)9g2*`蕣gՇ^u`1)f:9n)NĎygy`ک|w\7hUMb*u~Z2*kfA[6ʖ\\:'L]ک/`_v]pT}~EtPڭ=롐PhWh7^%nYmop8 zȬuuܺNmeǀ}mGY*Jaʄ^*ş!DZzx{Fl`Aڱh9)'y]t]`&g9k9*<볹껾JV %pv(ګ4V{w6`ǽ )Ju۾JK8rus{Iةa~KYd5rqRHyd/bOyhqyT‹hѸ[kfbK豢6* Z.z`}/eė2kػz?~km7KvWkVlhE )zeЇ0j9g pѵfzKʻS雀YXmx40)ÚK ri̎'kj_ZVKzpZcm1v'aaL샓vdܯhP}{4\óL*[ë8Ƌ" m-#"- ҢG{ YL)\66=L˵/ ;L{uI4 :i!Zv4ӽ(;j=}H䬐aa֪Qj--rݭF{lu-s fLKx({K ۓ+na'ɳGٕiɟyy #N;={' Vu*, =s}]఩/bQL~K םvxOս̆Ӑ=٫TMYeՐdfq:փIMNt=ueKuڮ< t5mгjCaPIjNY\nNAڡaQ>>2ЋP ȀYڮٮ`F>Er4[F\ Pm[~RخܝXl^գ)n'pF ~p q|*OT}]ېź6㤻ښ|Ҫmї|znd>,Vm7Dc5{ި8^:- ]vܿnK^]ܶ YJ̼P>c|gߞRDKŭvn[zs!b~ -h2*N*Ƌ-ר0ӒiY*k?>/[4FW_rL>Hj> ˭?@D*9>]POOQm^vxQZ/nT^\2hۘxgp?kA{uNb {ɝN6 k1ډ/o? 7b;6Q"$!d_; $'e@I$J*Ud HvYp$dE'A( DqҘF;?: jRyߏ%ێ؉hQܲo۰ݟL%ժՂN b@*uӦ'_0fΝcLη3zّc^wh|k2|]6!kōr>p`s!0BmG?Z+b3eKϛ{)f> Jr " zPʈ*op/ؒ/b 0L2:JZ(~b)# |lPzO'F͠Bk; J)57m8'9&Ǽ+91.LC9޺ɕ3$D/<mIz2Erj(ED R\̊qC$B2kD $nD~)N_FFۏirG%LȘ 5P5V 6'|J(svxKnmZs-̂ts"d.6Z{OφD =Q`4HdSRs*J-E(+`0 *`J]-T?D5WBP[,>( X̌ϱ&j Aٻ ,(u,v 3R!zfd_nζN" N ڣsϕu|adiY|Z]1cY5+cMb0Ɣ ['Zm-S}f]&ZKx* I-㘧Ɛ,+dž^XepEɭċ3 &!KȖ.o&7cҶJ]׾ALg2򗷉1^[ lmKokMF IdbD?qI|PL'4'\}"]  䱐,0y]Y^7l;9BDwesZ,(JTD&1UBEŦ-f8Mq,vHN np\nHv:qS޲u~ɣD摠x_C=yB"HA9wkEi  4n3)R4nϒܫ(P $AŔ:7M+Z#M1/:ZvLWP\ƒ_j ĺ2gN@ Y/D1U +dV=փ2MKB˞D2r҂spaQ} [7- e:S"GY0m]\iuZDPy =ZĥD&F$!dƂbS˽e O4Tը2 3]Hex:׍[b"eiAZPg\Y:3(I]);[R1ALېO>' "N0:\vŰg5bXƝ=snex g!\>Á4 ->NV ׍8TcN \f @e+?.jԣZt-TtIժ?/sh^bLP|_w'Mq\rDyTWlK$p_-amuOZck/jSPatD< o[uŦ؝#`vvJ5OUD喡Mi9`Ns,#/ 8fޮZ(qTg]ŽgOo̲<`CeI/ANR\.-(C|lM!!putP˘2̦|w|2IC͆aNX[ I7\OWs}=] ":.n\cزx:duglU;o `D攥|[w$7InkpсK,T=us\D3?V~I`pmT.pt-[pCz%^_x $y͠7E'8D4OX^|DL/8&%7xR>;i/=Qݓ^47mJa].?c b yAR67Ղ,zwݢ6&S˻> ۰#PR7ZꤛK!x#S<3AӃ8<%3 /ً/AcB#8+)7%>K#>@07(>1+ Hʸ˩c {sC#K:Wx!}:1:?亯Gc+0y(SB<;2g(yh,\ۻ 88;԰6ؾH<7[CwkJɲ{.a2)Õ>s+TdNHvȕ''?k56i\T@C0qDcsĆHD;I̱3i8j5EH?Ѱݠ9 ԭCE<0qʧ,a H/9xSCƃ.^d<'E'\L!;dTƷAhhFfhp8otnl8=*G=̌sɽvtLlǓG{3C0CG:.ʝ;qCs@2DW47c'ټB:q,) I1`+@+N[Dd13QI`1MdH-DO,1|" ҭ +aCt,\<\$:CT<0<ˣ1 {ü{S[ePg˂"DK"KPo/ku|LȜ˕G$C"K04\OOҝ|OscȂ@;Rڴ͉H]rpDD?ܿ*N3,D<҂gɕzIg ŕ*J<7%`Mx҆RKODRc 0$M%>\90G< FyѣpPΣ`gL!,+ = %'ĸ 5^G[BBG8BvtF fTQɴGjLkVQV-T#M"-R"5:'m8tO@-TC D;uO}DٖUM2bYU7oŷ}lVlYZVQ;[j;ZA~Z~Vl%Z F`HQCT-Nf,͌vkhuMc<ގMTCsbe;{^5d#RӉxl{661,FD'∕1(4^8fBU\h\=.OEMl茞ϞφhP>EfM!QK\i%nKFZK#0Ze ѩUP]շ8sj8xdH!_j까<[ifnu[CᑆfOfivk!])mؾM9^RֆM\\0lVrx}؅ΉXxn5%i9jlQz~KXul3lNA8c'?AmT~h k$c؆׾ZZ.K$n^itU_M_-۟f5wi}98TU'e``h6}sVov0 ecGYc Q`[{[p>6f67&o^)g$f%hG\) atata@Rg#T]0qu_ ?((8͂9Xvx:1R#qlqqn'O@H %^n6uTWr&'$!a܎`ߞKN~e-rH|w5_s#Xxnus^霖u=nUbUV_P'n-tlU)GaOR@~gwUocu7upsrxTXu #9u`'pu'vd'hr1)>u\`lgܺ] @{r'%wrzu?<>O>\ncNT7.gieFw/7x3XP}'5xV7AxVnUsttkoB_yZ_9Qho|?&0_kkA땅ɅG '-? '?Hz_c(zznmiAO('"8`'JϢA)q%*TP Go1%ʘ0g"YN Ϟ *!RD"t4)TN:gUWZjd+V_ 5ٱf;_EK;#ŋH v.,8_- Jo}j2̚7#=/["\+Z.Cb `j6,צO5ODտ oZo/y 3PJ\.%˕3O;G}8iBY?pPﯿ?~ǞIA! PAB.Ta$*R$md-ubIErK$J(.t)(s8qTJ;SQqP!9pO%[QGfUmEXXyXX~եYdY5Vi^f^cW\y&\q \{ FX\EMeq-Xe=ւcmF(B Q])7bvu)Yk`QX&*SVeSĪKURKSG-yM+y9)TEyHgYzH5ЀZRam|8 "T*H л7a =R!qB&IF5HI&R-,ScT#Rϱ=y\Rr|}:q$ej(饖1O6cEVy5| _m)c%]YR.j(-`nPImϞYufXpV3qS2-[qIJrF5[#B9>u7uuÎIf˞Ղyi-}Iq.B'nR6'xyC*8Cg?^C#hP$ e2 ?d&]#S,)ӧDݸ"T/!2-YLVqF -uIK6[Ҧ u)oiU`eB 4$m1~̟(,*SÌ♾LꁟI)fmb9aЦª<* 7WM*);229B%EqKJ9n`f!J:(eI(?:hq[P?~ ZT?p\Vd y-h j⠅v ]jG wytWyJZd"dEiJNAHIsB+Vj7#Y>mI1>12g_TTIg3 {AZ'Vm1T̠U9Ot5[ EM3[P$N*!g\6̲&K^ؾ$O. ק>(pQdCY Pwbu:R'"$J%Ei!r@F3"͖}D-n+*\ (]q*v dD4"i@0PrX{ꋚ0'&6P!* g$#OF'JK/ JβЗxYL?I a$s&y5C<әZ dM P$ʤ>hΨM ʚ7-+ r֫̐F*ߪ\_*n<,BJBD]{PLۉe͗qVw+% G&p}3TćFaCYHFIdqAuR!=%_<>:jf6%g>"9gQfP Ζ(>E3,f**N+dƂr%^]QRt^ڢTY~K(? ĥ̥ދh$T`ދ2fSH (bc=^7:ݠ j8:)g&z憅zUzbiV&QfIN@2d4 %BFA:$CE ߐy롡EBgF^t*rdRiVvFvN*LvalR;#yc:" jJ*)g^||'9ݜ%ޙĀ\)Ya&łbN=:R1tV. ӦxxRT%5ڲLhC(]N⎢b4FcY5&e5^e*j˥fjh:zc&JHjnlV,AC"EBR$\)i,P$&gp @̪a'caG"R^?(2 m1 tn,vŒi#Mlx"Qi`z&Ebb$9F1l93\6'*j-(R ^+"\jsuхQIGyKǷd[f%hE/hҨ&T1xG_)-ܞFsVv #v֊&lNa6L,ing1q'ӪiiѪ)A',C*-A2'bI$:FYdѬlF l"DmҒ,&^l6fZj]A&fppj`Fi2.n/ Q譪3-έim--Zfn%%RleWbuvק`XW)qefk-Th$A1Y$qH{ްYpƤ . jn #P!pg,P&CrR$*Fo~iZJ[^vlBr"Ҿ"0˺iAi1a)Z$o/= m&򯢂pC*_Rl>pwZ,amRl2<Ī ^9C2::s0&#' .g 2 ® n .h-@ł⭂qCC+E3B%.n[6Ien"Z.]NDqAj !pRn 2>ʭ?;0g&𢰔rbsҠs:>:9?XKlFoJ/f5@^/F$-$+?3lB/ *+D/2e,3J/ -^05nfi&#839k0lKp=c$s;3zf!CF2s u!eAB.BBB-u'EFt?,q1lF?8eڵ,ݧse%Iwh11m1:vCC~1|y+tMK~TIi(8-nYx#:t$z~mu;C-wDB{:⁧qsA+#Ŧx -r #h{';B@5Ov$#E8' ;k{"5/5ظx1!@8"$5B@u]8`ܒ_/?`ϲ|o!yj3|Ll^G/z$l(2ikvo7jhxՆywm>;svB٧sTx'o:{;Q!s#u#E[cwt?(E7GkF_PYkձwȁZz+.ZIG4۷MA18M;tBP~} SS nix!;=٧}ګ}$#8;8Rv_?+'B"x"(m*4%;Q&KFd! BٵW[_gRcK?5mCm WM8ps_(k!a1I8K2B9Mg&8kLr/9}"G^G;wp3^lb _15xղG"+w)!E_dj ZPw͊6?;FDxDJ EH  {hB^p!,iBI"h6R/BhD/^蟈8鐌v/&GDXDFfjA?Cb:X/0{*'x!#  " 4BR rJO+MҢ/#Y.GCB%a-<4LM",bknP! C4Ц4@ pZ bM3ۭ|!LEH5m.gƨ Sf\Q5bC0>X(c~1}Tj6[~Ӿ W ;qe H) !% L7&0>p54 k_CpLe!gY D AijytE1f$G䳂47EgQ[ dd%qϮ4$BJzL; P0 ;5?D>4Jů)qpХ,XX$՗80B cXCw3G̱vSdbeلsHCЙP$jWl4ScX'3ÀJw1C<[0"\lK2jQ<٫)%("'!x+_w%` {f( ec XC0#,L6@Kmdv^$f;p!; &( T@YPvx mB5(LRɆ`Z6v1kC>112mFfdGO~UD&B.܉fy8d[)`7Q2C¬P1dbהWU#щ4dj\խ6ǂݩ$T(j)UVJTh 塋]KeZTuY@۷J;OC2V%T)L7om VͅuMJ‹&RG֌-B/sE6TIH>Q32 aZAoP4K*dGL$p1.BNp&tȀp\*7$V"h?m(iN\4~dS>MĨ&)L: LR4aԋg 7A(Y+q\1ʣMٵJX Zu4$MVFuhk"?< T5&`۝:8%mtmQ[GohHچYsJ1A{fDft;wDjwDI Z&Aa!_֗f{a[6 uR:`A D:!@ `B:3SIͧG9mTawЀ& %6 QEvwIY*$UsւŸWFUd\aI>>LZ)9%k.qrX;ΔqVUJrlf8,6$*ӟ\J,B[驾a\E" 4n~5 9:"A&]j0s#]Vc͸AHZ0 C^g{u^^nHHހ7#`Aa!+oWDnֈSE2SSq d;'_o*WbdXpKo:Lx0eſzrY%HY!ȼUhFeIrWL5*?-L0땊G,%h)G/pf ]"]A a#<N@҃ )nV|GHMBPj kI԰dFl˟bm  n 򶫅*| L +$ְ M#j @eIdRzڪi& MM}Z `|OXpBB 0PP,SbK!2PaOCRV !v!,q*$nX^Ȋi %4L53*dNmNc svL^ !h_̖f'3 8GĔ+Qn  m֍n4qm4Ff!}ȭn"oDLFXV-+$"D%%KK&ТF/ CIH4m& ݤ2D#0U&%4r*EZM`0+C V1%3ҲRرO0 `1H8U,'qtFC1w<uf790Ev΍*m!P Ҳ !+H,Ea) ; +-Qr!| +Bˇ9k$@ `!:MB :R&E-6H=s in$ o " ?o& 8BԢ (@CifFLcsmnkR#0$hM"3R|goB 1~v0EQB9.7Q Qd*QM=R!8^II/>ir6 u.PV! +I4ɐ8TNGS'Mg.&27Ơ9H^P,(0閎O<6y1/$1 7! a &URyBn.To9SB9at:S*:UA"-V:^V6r$krnո02?IU)5]];ջIr@;;/UC;7 [k==zu&)z{ܠ UIr ˻e)_疈OtVMc]^ut!hVRw&b|zݓ@6%ZY5tsQcz'4G2lϯwLOO_){CO- ]O8YPR{^ӿo{q%rw镾X2(P`;_ 7Jx䍑!E82 I7TLMKYdQ,5yܹMYԤHQЈDDԩWҿjڪYF1?bo[rZkVu~7hRu?uF6w'a ?GcҦ7dF_+bHBс6EO? *!oedDhO#RGt1c*S.svcޅG!qS/@b#!͋D0b"1{\!f$Ũ%eKɎB2xǎ-S!EX7u z2f %1KP/J4 D&EC2"y]NE r8wYaB]sC B}FRe|dlҒN!O,R*9f*PU+Zb8Z(1b#flH%g`ԏmASr5D@҇(FaЧ@Bdtq@9 @)!GUƆO9WQjIч!)ّ&ҹ|en` ԀS97%BS&h؞cr3=_”ɓ KI I )0&Jٓ)HA ) ` ('irqS?2z` %\2LW O͐망ى37% @Gi y%)%jع%G' ( :9OI:z=i9YIړ{@iiHLY٨k}ϗLA|{,LI{$*2(cKE2تWzr%(GMgt1S]16syCC>6Q l1QR z7 qaf&7r#2m*%zq7"P*o:\" %@%_"_Tc>'v) G%ʴjqUʴQ݀%Gy~ ɳ^BGIڀ *8 2~._ђC{saquC׮HT1U{,`!71$i22}1B~+cr"$j*z`Zp RQhSR~$sApDx6 D¤vQ YZE8:VX!6jfyM!0Lt5X?hPrdH%%N{3j Ұ +Y YA[ Sÿ[HɓG9&>ɓl<K F[b2HcRxo[Vu's: ^pJtp:Lĝ`Lj&WC0LK96"M1yv;r,Ͱ6W<XLB)@d1#j#1"s|2<ȔS>y˰ 1ȵSNt3Ptp"YJlDv 8 qə%KQ6y#GsV][1qG_kJ%$y\ysJyyu~36[&Iiʓ$j)Y#ͪQ H1@PǪJ{K{ t@AYq22 K+@;54VX!|g)&PQfۜ// hz]1>eUZy\Y\2k%F+9J 欠l ` =J =M qڈ`~h :Ռ 0]N PAbAZa&&( |MpÙ3]( \܉TũƜK|@1\2~hKFj*Q7ӅBXIUO |z|71sSA7t#q$;jFRr{"֞XTvrQabh4\dSB6vg(^$8회mqh%5 <;)k٦!z)dN d>h~dlNt..'5wN8w~>osޠ' I@ R_sp p0AR@čjVβf,?~9,#0UM  JX0t3߰!Fp:obT7RaVlpCXibDqbAYB,qr4`K)H#GslR %Gs,i!iҥ!kDLZHM ȠV(RGDz>…\H2ԫRB:%2ĝjP)f*T<3hQ " F!X}K`M:naCf"&-, :;,㌱ jF.qӑ}%жe= #d7LneB^;iY!BSRxaێb3g޻C;#kr.oz/A dpb~BCD6Bs1!Y,jưuRF!lmHKT%lJ>g>Gɲ,=mOS jFƵJӡʔ| \:/iR$yHtltφ"7<$FH$GkgH%P, Pʄ9DxB5^'(7(HU)F B Xa5j=KpeebF}l[Xh6i qY鸆%k$m8Cb(6H i%DA`.,9i YB(l: 12G<Oγ0e4|ч#Xb8pDQ!%Zf-3{Lf1HAC#|lDQFEiKVd#tG;Rی6Q䒴%$oscGNo4׍.m ¤8ǹi H&0%TIQ Ę( (NHbTDOˆ/Ň8&GɄVRA19pufc/"_E ZV-e.J"P( ql_׿N#/̦ ¿FAb CS`calZˆ0<wz\8L`D-31tgYXf3 eH$h(A JH(uf==#cveB`Ŋܘ5B.sQ[a?ƨl1"B]6!MK*W&EJ~#)98 Np %tIǩrK[J28xLC:<,HHQaOHhC!Hbfv]*m'(W]!jHriq.YOfq62 !҂,\&/Ӌ |!Q.\H:f1P _i  b1X TdxhȺE*mq1Q0Qx(v*<0OzÞbLe;q{խ DCdE? Qj\E*JQ0*dqY#C(FhM1B8Տo5[|W# G*"8EZog.u,4(8iJ M&r!mCF[KMsβ9 l#2tvЃ%.Az{q9+UXk* uj?R[=*^h`l{b20v^mX@oh?+W}Kt c_%Հ&]FqP/*μzxdRTg3v'= *`o':>qQBF`pr /6lkyvLy7o>:.k^Dp |,)WWpnɕÐ⯔*R+-HlS#d@ψe/F0 ÈD7eV܂[)":Ң+$"A(BB'ru"J&"AXWX_XkJB*;'+r:ٹi*)8hI$K$Ks;xbb0 T@XL@XH(BqMH؂q؂ MB)H~-HKф5(WNWTHlD5؂&@4h5LLW τ&NWПŠ) 8 kPPdX8 x 0 J O8Rp-sOϛ k8wj8 m64h j jӶfpq0pr;Dm> mD&@DμhIĈNҴJ LI?ȈH,iTChI?X!!}')zkcB,Ku7뫋P0 Ge&.448406uGt6Zrsysvd >. eY4Qh\#eEN D8WL(Ȍ9I}\LT(ca [ḧ"0I ڸshUj~ yA8""Cֈ9LLj`b'5^5 UPEUR^BxZ0̙#UU%[(R{%5@L&DuWW8ʞ^`U\LEJ#W)mK^dX` \h\zeR@oV5Y@QAp1PXjr YS0saQ!Z!f)hYMΈGw bC0hYXzXhha/EX76pYY4Nݖq㹈cQpa}ZkE®Z ĈC80tdQGmgJEYl6Ȯ8xB|&hbhm pN hNXQHLɕHȈt̐L8L5V<@@׉RӸS.wÈCphqNzhݘcʕi}UB 5@}.ubI;@UY s^]UDLDnDH"\U@g\H i&`AVL]%Lcä1AJ9Sԓ^ǴV&scL hLЕ3VC8ZUYFxL! *fk kMє*)UG=w8aPRXkH:ѬNgC`fÈ| C@N$l]aZn>&/n{hhh8^.쪶΋PH`u0#-&XM`Qc #5R` l܉eHYLx! LŌ8e@'H98RH4:ckR͈V_N(8XpBH2 BhU@ќV'j"+{EaH(.UXBÄN8$1PMhHx p_J\\YBPU~S]pTgH Ĵ#rV)o18X1*O`jLΆ^j,E\ XMюNYftN.Ps @A?k*F )%X֢NtƬNj0j S h[dEfHh W0Vg |DNUrV _$UP22 m `< KH2@q q]^8yWXdW5Zp%ˇFpbgl` GDg[Pw(WAHP@rnelhmh` C\mV8hwh?s*5e`wo-Η um]EG( LGW}ω;볮 0)/b\w -: qDgǾ]?zxx[EwhN%`4dbhh0hzb..؎^05+Z& L/D5+/sߖe8LTЕA h2 YtS8 AV2Qx@%޸q˔E?RCEJSdNQE@g)eLA]hNk҄;QDXjyP5i,-k*/rUؿZxSjMCޠn ?1uE&E8HpDŖ-<@…[VSR yjНuUu}߹S+Wj9CLc"4јUT8ѣcb-8sVyO1%#qgkBX!P9V`-WLbbak@ $!+ωȢkȂ -$$"F $k$8¨K4r 6D!a!\S 3T'\&C|i?^hs I &?@.(u.Y cV4'R`t iՆ]vu,h*6"p+=JI?*RHO@*!֕mFDL D8⊫V.DF51N)DlIM@,RHAܽ^AC P PQ!6)va<Opp|W*0w1[pلHGbX\^]sDBj̊ jV2۬,Z5$ KT* jT}!mM8A! "߄srj;ꐃ/ap9ɹN|qa_g]8 X@v#c's&9<gXHUEx V*j3e,)YR,f9]T2~ r6t13h꣦#.8 򔷾V.h|#X; HE:j4BAԥ+ Wz!ں4L@УR DO)v0Y"HE @,;EhG`5]cmB>C&ӑl*# LEtjYy7C`Ǥ@8:7<Y4{k\1IɃm?`%)4"z$Z鎍CN6ؕ C5u$ʌy̧Id EEMDFʰ~:\π"xOӷCv:Нrڳľ1!RWPsňćxvu"Df~jń&s_Aܦᩇ@ aFLLNd&DzR*y[k ! >E fřxTTd2I//E-! htÂBq$J@K UY1R-JEJ=[؄Btγ\^-&hߪ3Mo cb}ZOֳ!'@ A5( `Y[F DM؋2ĈLȟAFmP8h UFeRD ý8DJ؋#ыՄ,n&.F߉h+ X?X=\ZpɬPB( ܘYB 3\CtaKIa:J!']ft5ǁxeHRX ~D8-th?DBfCuRl JtSm2 By)XI!fF$ؑ]$qDiG+ؑ9F=f\5 U<hEObݟcDL]]*KNH^L@ ):.ˮ;̢Qڨ[pO>:ϩp]O\H[8O DCؒ-=J[XdH VJKRB@B UQYxtzB$(xx('"5L<@»e(ɼLlK<@dXF S~ He :$WlI$Ma!uA`i)%%a4JeLՉ$Rh W,bCX$?T,ψ%ODhpp|2H83~_ G(pL͓~ImV:(۩ꀆhBa4eSBBS([X%RNLS5͍L*]+*H//Hb`S8cIA2 (H5*EU6^cJ͐@EV-zY &QIRc7ԧLʗJZ^,@J#bc-˅YNI-C>J ƹ ydM G> ^0Qd@ \K7# =AQ"UC!%QL 5K V&Xz(K\c(žўR)_UUIk 郢 0_۱L66CQB3'^^!_h {Y(ڧA(Ozv1CDG"vk?-B'ۨߩP _K]O^8N@_I3^^Η}sK`/S~s6 ^FPHxG0DW0G y Z^qdD;G3)E%~O$Px-dMDDŽDB CxCBBR$*S%>UZp"]-3BmUj+4HObeBr81FB'ѠY1U\a4Ts4A+\:oܐ(I'2BńCI)DȤfEEYPCPqQf2'qg-,DRdG?T@UY+A%UU@#hrN'h\ r"2ڎB:::L@3C"-H!+Xi*F"*݉;^{ojJl)h)J -!ĕN--dChkDĀW<\U%Yl5lR6sL HoB$ IR-Kg+ᒼ'&/m{q 9"W2\ "OUh'Uv 1iOUH79aK) 0Q̌{:< `i#%ڢP5GDJ)x0H-:? JOA q@ Gp*@L6ǩF5Ԕ&eRtG03? E<ⱌ-lS:9WLG*NE%bǎ.[~ +Cf8R-,,,u\Y S`<陜 t\E{:@ "F:2:А `ODBeh6hA F!xL|Qnj fD7ѥ*^tE(1Yo&+]j %8 dt.jF`B|ġNBӚG8b4TDZi3ǖd #J)$}_8z'=UCjU2J;ňDЂceAao$3 8E*""bIxƣ}㈇ ,l\ d6⑏Xj[.d)F2H  q2:#OyJ퍛b'(FwSM-#x #WJ'bW7æ+_I W}+) QA2l΢!ȀPPA9|I:\5{j%#0 R2Г U,r ]\dr'IG7ͽ#yFC.>Qh j 1:ɢ3+[Epƪxy]# ď~(mR5c%+)꺗8M0ǡ傕qD[Itad ,g mIxCR PQo1&@Xvbkv]0R`;)Hɐt,鮡íI L#Ԅ , JV" WԀ хLRJO0 #=(UaC{tGIhhkԤG =N33=5~r!Dsd/Kjsa.ĬE0Q%bT f R `tJ8{a†ՐR]kLmǣ4<҈wQQjw?H^ǣD]o{ 4_ h/]50r%-*1,hF!Ke!k8 es3|PU3T&[rOE)NS[B\Dt;PӰ<.7ANɠFzxIJ$v>I]r um:HL⑝\ J몯|#,𠆭Pa<=nu @2&xKR:=ၨЦ/O<^!}!t።0t,7Zm0<%9ݨ~q9~ҧO*t/!ɷJ(gب20&pS'ǡak M|)"P`'P( "2jmHi`v@v L.P=.Cb\7z !h? fm?#F`6,pZiL,h 3sr6|#;K*u(b-0"7M#DKb ,bF-F:,CvidCD:hIbvp,B$MtVxGj`xKgH,*, !((U^%+$UL:j-+N;gӎ'D i捔歑6zuBǚv$vlo2PڍݮK):fH$.vH @BP#@l@M:Du~(RJ4ie[CjB(c@[j&#ffhfD-ii|wxIIvߐ v)P 20u>01 mS@nz1HvC8:6k ` T "NB.F@ RXb 7D+d{TET$:;D.>dd*D'D6|lH2iFVά/haf0Jr4-zn I^>Zz wأRC3J ' P*5V΂tגI0 av-U>Ȉ8}Q@ `9)s9S`:$( ^(S'*<N'S'ײJF̉Xc~đ#Ҧq2kĢFdFmJ42|23LЭ/!/Ą7 @62C B@BA f6I-Nn-3-= K4G46$X 5cnLI Jty@JNT1,*Rh'ᬠ ~n?6w-~⧁@"(nWmczCE tN(^ @:R >*[u[*5ZURS]s]Z}vzqȞ۳N"P e8e.$F `aR42܊ڴmf\e Bb5MӮ!hQJfaGւqâA$`n#1*nJJ^x^`={3Iv4&m2$b l4I~njB.:2I,  C m@fD~!ngt L28Đ&8,A+5(ʲ 3q|Ft)dlD8 WxLڋ,hu B9( C0ڀPTRZDSULH c=H3xQH Qy4]u;+^+b zW'2bGNGG9WtxΎUkRa\iZ`}@~@~}[@ٗZoU\5X Zs9 X:+U](8_u$7ߊfnhn(DހOJ8JƅJBDCi@nXӌZ @|"E a K b- Ҧ1BIbF)8{Nˠ㠆Pݍ|Ljiiz|L3 CQTZРփ x娀>ːK,Fn "a..2+űLufXi0C8x qF8LJ Aw>YT PnHluIMCDPUvQ" ŇAEAq0Qa 0#V,La8W"ee,C`9l.d :e@)KFR& wCЅ6 3FHg7@c: lpJl[ * +&| VB8'O90Mɪ"\2(R֑kx^F6~$g"H?d$ nHg$Y aHjXD;t (,YjVz ' <F㺤wjAyVj>Nڏm`\@*! BPF2Z[tQ B0dDRU(h9(L҅@@bW]O-B:<.?O} w'VM eEL z' O.(E61N"1LeGâ09L`8lZҖ;!pX(#k )aH@7Ghri MMHG;qy#5fc1T55 \"*lY3U¦%a*Ī"Hk*oHR*B 8cqJ~DMjC3Q`E ifgl)q+@|wDDE@3(Ё!@w\ ΀!Z0{ѐ*񿵙T  z¦BBo&@rR PM[=* lb[i4{mbs!•CvA0RKWAyZCǎZ)!JW ]k/*H`VRK'n PøK^}W-l*2- Zjqkي Ȋ@!螉X֎6a?6IGa 9ce8`8yxғD I FB "+W8wx>EW}_) Q2mC3!#[vy@ \m3TSȲ; <8I$I/{G)(yOPG)u ͕s]j8|Bq  D; dpQ 7CR`?Vxae^vzY^X Cz7)(! C.s"SquHXjmWlJh@`#kP whX}vx 3;Zg$EҹE҇VEg&.If00LY!^04BKu9)Ak `@QP;q Puj pluwppɵ 𸢬 @cPEO@cEd@ϡ kp|<;LvP̿0;WP#@G+N~2(SS<{k[ks*‡%~gq4XLsK',֑Hl?,'=^?QB)1qB雠kE}%JmN|=u!wݸr|V'0>a?A_BF2~D gIiDZ/3?R}~|MŐVc!4 UA_B|?PK;:v, R'nywEw'(yժu OɉluKɖɠ\ xc3f$Qv,̪PI< q ,@v{$IOf4p8J,?ݪT)3*kq}=û {G ϛ)W""&]VLBC21񑰖B=++ HU{)<+%A+Ӌe)6J X PkSb*qd>EbO9!C>>05tF. D^,i*&5#F] `|mp!J`Ck [;6L!QvmץRgK^ͽ^,AyA+6W(0H+ k0ڢ]٤ɃpP.ʠmڑjm(̤p˲C۱ KKÓC=䙼nLvFr;DFRfGpܝ/֕5MN6#225Bg6F3޺1K%iBT[3gQB)*R>@Wb%#58(9K!|&C3pjGz nt`W)Aɍ+MQ2N(}\d E6/, 0MEE֢+gvprA= p@ ! t[`!@s,. <}!I:?n3 c8$ ˨h@V1ەag3XRr*)@팈:A ]x+ϒW9jj>6[ k韞[ɥ>ꣾmqo Pbq6ng3 fcA&b(B tP/b6q%nkx\Y%8^'TdE /ұDi1Pl0D0;(kxPkdo6 hH'FI(I!UΰD6,WjW>ܢ!%&VJ#JJ}/)2fAy)ROpLl dtUtEESNt%>_G4IMgđBBR oyTB$e*&Q!Sz $ț(J6GLT>У T*O Cj)! QD %q~08e1ٚ Mf’pWU(qFù|.uD`c0t'ˉ΢|\HA6ƅ+ yVą.@B$^!dQlj(? 4k)c#:ht}N\CdTH$$δ"T TAc[-TE1Pq'?S Ph!wRjr0f$B ɤ>2~'I_VnT% jyxs[Rjt`TSnJѨ'5%OMv+Js6UY 3&܅JiN[!r@m-OH)DpjWq6\ i~[Fwų66o='˳ʉhc}Q 8*Ѐ"Ѐo77@|K@S{`P1F $FXHX{:KM7aґI^d8C[8)g@R(RyqHPa[RX5 )3Qc,8;*80hH<Չg5&HBۂ[B9)sBL2M<%W1> 7) w.!")[Cj>i Ѝ!4QMa(OVQ2YP .Oj衂6ȒX $=х-QF1=IY* .C؅@QHcI9 HЂ^Np% "z4p?>ɖ5@"x?&Zf+-RIsa ؀H #т|*6 l6 c JJܫ AEOJ*a WF#Y"ёy G"ExRP&DX*D1[H¬ q[ʸ+-9 Ì39*dD)xh gW =,M(6q+Bp2:,YZ,DA;K!X\$xŵRb:bH:$>:# W;Uq(ʞ Ah`!9*'$ %RܨJ #Si+ eH\ϚS "(E(9!L.huBꈷ`z:P]өЩYq i Ǹ=dpBCC$8Ĝ/8ްEf1 H݂閘!iWʏ<)c؆5[Ai[$#8\ϲ$?CƖUlY6md߱o :[P!PN>=^y.?˜ыC!!%[?>Җp[8CIc?+e)[5,\Cu6L*md: !ۿU`vуX0c).x;PI%5%ZB趸S^%p9pv ,d R.s%;nnElp_`)dnAK0|y0!(ׁo]r~[c+L MCƃHP o [J5x  *pAΥAWUؘ(7>s#asir{sqIfu;Rl»FZ*F 8 Z.U(vb"c1ßAeKm)Q*]N#Kꏌia^KЇȬUHlۋH?PBR'(dSѦR^[]sKÒnAe5[^^7IGŁ=p>8)yq0fIL~/SoôY%nF^5hKIuqD 8Up1V۔%YK9vo^UE|ե-p׉^s8KZXM[r/gq𱑝Mǘmף!sqgT%@Ah'=芇0z!5rNCr [06ES.i{ Ϊ7 2MQ5&(pRYFS ,c)+<#Cȷa Eћ[t!D ݒU ~ȣ⅒t!B{>+<Ī!_A~5abxŕ$ UxrW\(Wyv6x_  ΂ h@6nvK$Ɨ )p`>94kȜ04 H$Feq e,Nj&bD@ pv'JO$'k&J-9У!b4 n`Pvh Ho[ʸ\: 7$n15C)p+0E"gza#F*Pҡt<Y)x|&9iDkS}SICC@qGbh-OG (!,H*O %SnX$1P栔2N ) 1Ud6@G>fJKG[%WHDKyuA}QdxZ˳T I4d, A !J RYPP0_|˯s, AF/mnOb Q M(R1E(vc0 #qKHDdVP$(7idrͅ?DHQ츔!L"IJR~YMJ'@|lc/#dM)a6DLd"HDe>LY'nsi5n5i*^E48AЋ {.ttBd%+ᮠÝ,GHJ̃h*ijz@n; SD@&2Jx7q+COV sWR(+M0]t 񪅸 P>-@#Z-nz8ΛzE*""*jxWpW"D|=V(GuO_4*׵&]ax1A2c4~aAh:hPѠ~e Q}ceV(ė|5Fja~ ,`=Ta0Av` m(Ed_!sxυ?xNgfa;7\B I!v։h"C D'A&X?]ppa'ds|B L/1H@2_K Oա@QXBfqyj}>-U2O19.6^d%B(x]\ឪ,cGؕdZm[~\U^Q! ] D H ^Š5?4`!"(r?~ї}KU4TKZ_d@s$jі)RO^.6?l@mR26}xǀe&P ljlLl zW',g10G _0u%PBu+*GʸqsR?ٰWݒyMM\|h" es0L|\ YJ~QZq? uY:??tbwbb]$ff"[(E^6F}s(Zx? )g+g0lT_ h)Vr(*qT O?4Rʩi6b һ- py[o5`4v~`͗h^WL$e$_ ,Zɨ^u7F["?𴫝.HЗ&GZ_h'́ '%m)Ҧ"~"sv#G򛖶ᖈ seQpm2p+j%.uԟE,._҃ 4Iǧ4 276{S5{! ¸ƙq߼Ԇ?\5C:B3^-)|դjVjV7YL!,GM T̖:6tn=s?T σA1)m{S4Hh\Hˀcg™1շVr$fh6) D~"OQjV>ida؉)j8nWӠ0m M:[xc#s>sm XRj̓ he9;vΌL/ rT3~3".ka?gwoZ GL9F1XJ充{bz,@_MGDŽ /^V'C 0C,# 8c !9Jac t ҡ!6ls 5OcэRB 1kҥլͬ&qDhf:t!3g.DE(KK8s,5H'%\NioM8V2/ G=Q4J+eR2S UQ)bͨ=;b5X󒈱_[VY-*Ք,#fuK"=1 T[KCцP{< @$rQ`ņeOVWb#6&1ŏ].ˏ$~FY;g$R͆'+)JFC3i yӅqd)"xҲ1'% feX \0|ًIj`)YCpJJ#tbfU*(DEXr`qu9bp0ՙ@p l@a8LK{ CjobFs`MdeHArr[?h#-4M"e` Mֵ2zQp[S$/Ѳg΀\.%#\䃙tG]='pT"Dk!E9d&id"1YC!$ AKYCe1>j)bI|dQbhIZR*,pX5,c l>/-H+Oj^ԗ$H,SW.M__$]yS4@x#j?vT0iydAVMf=ZV;oQiҔX>t]SqFn( %UNh@n̚Mp4i#%jƺuj{{(}4WErdⳁh:Z@Ia¥rKQ``CNg:u|vZJe/WY9 9q&\lKE6jiR# udtVNxʧmk0oؒ"bիbuqQ,)A a)NPb JMz7{\RM:eea򺺜XIhgstz %V>s7U]9vL~k0sE :^ZMKSz#5Ln6mֶ>V$E]Qjv5lojӿI&j+|2>~K a[%Aab+ 0@$ C@" eaRV.)t0-6fcTne"\V". aF.._$DN&^RN@l\n0^p#v7(gX6v.G%B@rA~dP+ȊN6쥞h<RNP".IŒHO^^" DnO~)2V l,K!v ;#fg;+* Ҽ -u=F#]&>b^KՒCtqhϵjMoLR`flNxoyz$ZGϵrMH$K/. O`  F iZ!,bO8$\z4pbl%U*~Vr(B"3Va L8D.r0D h7H6ʏ68ϔdN6$WR sC(C,:(#E&0""&6L"KՊh D61HA ^`J/rC.*m~dNnBvcfCNѳ@@.hffjo qc0]6hC.-i$i8QӨ&=tn|1=3W>@8|d؀ c`mdj@s$F.ov.7C7mQ"8 ac/} La12a>NeߨnTl4zb4N4:c#EYNYhņz()B$(1*fBj$nBn5#Ք:ʑ:ΫCNAJ4*:d,n:hܦ^P,vx(֫^"$^B42쁢 D^_dC*k\RFF0eTFN-ꏄ=,NOh4G1(2? Q$i7%"=eGN4U8vMH~/s017u>0qiZRU=]LzKD p#džeVLAZF3XX8T%!sUK.@%,&9@z0($,+8kXu^_/EH(QCn-3Una lUFl%.1prpB l gʋGvȑS*Q SRʂp4H2H6̆GBTl-ɒ(1k6@0Բ.cY1kOw:T; fʬ O9:n#nq>΃7=5R.<0S6Uu15EU7}153iro!5pi.p}$Uu<tGU7MPWG LQm%q" Z\2kzW:aƆ~3vA4,^Lr?uw{Cb@B(mҦ5?EFh-8hV25P>TCGMl]B"l},cK{mNNH*Kcbp,킣4ߘ QGԩR.Elf-mRa e |T"e `NꈱШ m6 O9#n:o8|djz3==CXe0eh23=H41qv&k+QR1ms1 F1l'UA€J:Hܺ6j6B2,B% R8v&9B [U$h@4l#hq".Gk drAr޷RNzZrOOSkap~95YS~:aX]^QjQ+(QkTQlGe_Vbf) T kʦ:+ez҆1P -dS"_-7甮LڪOV8J0&ѐc궦'7.+6o>eք2uU7RU̓פ$Ӑxd>@m9qj25 $r0䖖D!SOLomb#e#~%)FJ7{9F"AH_CC&dm#B=(m*qWjp-K7U c0."96.kכ/XhqXᠼGl : f1gˌ+G78jFhoju6lm Q5 h&el:x2]f7G*oHzsM/\7o-:}Qe&ݯXݛ9W!'sl;;1IR"f]5B)Rwl n)iiĴ6^`M?7V%UjYMCqSkO(.72گT3C8I_N"㥟.GBBqT(v砠R( :Ix)X2biGksx8ΒfIJl==h8 fN'@VLVzuu:={;h}ǣ8f]Ӫ}>DQT۷5S3[_)5:`fuc׽Ӥ8C 9!2s^ tƏ:xUofä֋*(!ycʦ2Gm7v?Yc moӸoB" ( *D`=5 OL@qCGJˤN8,l?$4AD*]; ~˛;߰ 685w{y$/оyWj7$4_j?_yw뱖^M(|]U8{e"Hl,OieWsQIpWK~`"6X`!C ^ff5HEHc ee6T%K8rKX Aih[fPfvW.֣F6h;!P 5Ó7d]y(xaYiP&tfW㞍"qVDuCWBGxR`{FҙR.(F i:UZcmԔ&TjPVIhXebJ <𚖐|U{uҫsW&y2fQMBrWJ] YB($j"%Pm'ґ8L$=LbOͫ5B+Xzc_:=]uHqu%XPp  fZbbOJ=~" T]e2+@@8l@6 p@ ^XrLȰV?1atNz„7_Rm>̆=̙#l(6&0l7`2k[Qxԇ*5yh؊PhEPyP.glOː3sE`4)iS5VGPJ? Y)aI3;w*ISz`=`"k@Ӗ4]%MkJ(*AʅH*mw!Ė*]aA9XԖ]$;Ę*nN&S)R+9 KVR$ĞPtO$%F]OY˪<žP+ԹUMM0yXγ_Y r/ ^U#Gw~bIa{cRd Z)HU$d&Yte1#&.UKeԓUa;ol6X68m,<|V* '$H/Ѩl=s! j0-k5{M'm3X[I˝*,KW:ASB<($d\TVY{K B?:,abB5S"' vA(KB*JtlPB;?UV ^ U>\)&Ky7⠩;%va f=fT}ϒ<kI5G7)ui&"U2D gS@XP֍8TGKyb`?:֙YVΘF'PwxSy{ "8C+A]>c<)ydV6v x`?fTvҖn77&?|LfAק^ Lь'KzeIf݅`<јEjP5{$49C(r9AlV432k&׽$EnAg+900'WNDF7q1T_r0q3dbAr<&F*dA gcsd:a>0Hs 8cAV4EaBfdX_`x;x7$hK|V`4v^T`@H ci'1u1VSqqRUu2:J V#8|)8Qn\qjOk L&=,P `1yB6ŶD a^(rl%H="s0_|;k-e|PPfuc9@U~Ƒ~g0".hApXQpFr#77Rbr8so\"t_"" $ pJdVpAV>pCGbH-WP-XHa%aq#WG'm9F/o'!!i2|wKJV2S!3q2=2Cb"aZv&3?)\ז[7nHG&`uvv5.`zw(}&G0hQp s8˸n4A5Aa553/~y6bxc /Q,/erT@AYAcrJG s(ea0rX/pBЗ)dV%T88 .t)i%cL ST 1*m*9CFd8%rq<@R+4ȁ vh_IS&`<߲7yqH<^BBy@)K1 Bh=qqzulW^a/~W5>H I|BONf|29w*f}h.}f?6}|TrQ a"Цɦ5`` 0P )-aJ {+>Hەa5ȖN<>>RI!?xQ*fA}: YSAo$1碯7A%~ 6(.cj 2E`Twé05v`{¡Fd VS"fo4#t"jeŘ9ȩT7dAQKAmĸ0耙qs%ԗKk<7#D2dI& E` !PDS Rc嚠aE9 w28֟AqsR6ʫa!f𸍬o',`gXfå(#e5j=1 O-`qѱf(Mױ`z@ pam&r.%upY'Ȋ3K6 YoqLz.ⓠ1t"l\ %933ySp.Bahe5jTVV V=adۧqA5 #aeewa bH©p狖k0\|QF-RuzVV蚩9MVsp"˹^Eeu&pVQ Lkr/`Q2tʹz;r f 3j[-t޸BABb+¸9^&(J}IW7N6 ppאpl K{fӌh(,(NyJ)jTL18!7k)˾ns%%]q'ѠUp;a8V]al@,`yNMpxp@~jAj0\\D!uFm~9$Xsābq?&sKP QmՎ&C3[`J6z "ʛj1ˬ!>5/ ZB5%qq.%FrA,![JS1K1ڙm<\9۶f>&#_Qz'j⫝̸%xDJ%ۭ?:.QӨG"]Fb"=auƎ\3f5.H0~K\komَDd9!kU>F66_!b!CvEU\S;!#GF5qIG)ۼ%6's(F1|f*]Iwv=i{BFYٹ{\DZ rmK{ﲋ![(ɼɂk-[~*aY&Cd 9Af18%"WD< `0 1C|X l1N[b%7`3IoرB!G4La^AihVK KĞi+%djrXԬٌ1sxg~I0ڌ~cA-^E#IDNPX4; !NUx sj\oL\3"0:125R%DQֻʁyvt !B\  f1DݿbTqm hӿ92#IBIz0#Nf)G,eISQ:gNG4ZDQES )Ѓ 6Ӡj( YK 5ݵCRa/+lCG¬.@$W;qV0װ= B .!A?ٰ…%fμz>lG;|y<0X Do٣W(.x|#>!;P Q +:D =QpP`3 pQN| pB;-HIOH>Λ<$a&m Zֺ)Q’H2,G2mܠ ޔ3N8I8PTR4r Ȥ8Cx(Kj2͔!J " K*>%H4'`p)饓Ldnzi\H'8F*bc:$")P4) `TJҠ$Β+= +bUWzW0!H 6ڠCHSy0`*,"nP=*Œ\CT/@$`cꎋo%D~ `v6"mL@}/>v|`:ۮ dO;cӸ- C@5cC3;Ÿat ,$ĒrD<4_2;DObNc>g*_5RK,]ʴK7l$ vNSv>X*ӤU=0TXETK/KJ "M;M5>Fp5וh%^M"IV\yr*a*)d7F ^*k}JN;r$"b.\_`?jЗF0"( ,H !_tXl!`]2LG:Ű!abNу8]h5yZk5,ai\rZ63g:+#Yu<(@iCG@t-;Ӊov9g@3LAqmw8<.G{VEY[pc!_g7!tM< &AY\A@"09tɎFLUQ|tCO'RC!uø.5Hܝ%wIO\UH(cG`TA&cp!={lb X%N,p@)!'HB?@%PcTz-Z2e*g@z | #^+aS؀^œP ((!Ӵn,b Ys_M|#J,dYJ26(3o$`(TEqmc=V64 t%tT!X*bif.ʛW< 

LI 됐1C @[ iB"}bEUtBZ*t9}1fK?DfIOoG)hMoC4H&jctMz䓠g>GG85` (sHr6 Rn"`7XMXFD.Rt IHЄނVժ8oU"曒KHnYA9b,P]Pt!]ú r^7?%J&\8`CIdw~sfEʢGd(C Z# U[݈bx ZR %N(oC8&\bDR( A/y1!$F'  ?üx ,P"ɄF%b{nwڷ'ޔ=9~mYʹH%ܰy6>F&7g #>юP .-lYP7 tӉQBz6G>f&*4̐\ѳR 䝻2(=qzD-.rRA=B~K$)Զc6*)ErAUD:(ț: r*\ y"X 4 .)\8&8 Шh,kⰵаx  6s! ( #/s!B: 3h h]h: z I.7y:Jp5G83$ pwp( qiO>Sk#2=۠*;?󏻺`z5;b[<>(A.?X`z؉,a9(ʎ6z y݀ȳa"1 qS+2-#ѢJ8U{95Gr %!bB d2/ȮCw{7ob!yO)Çy?W]XÁh'A1p89( I ▰(ӰB􄍚70 !HJ! ȗ|,h,J,]|1 )!K}{kz˷l 2t88O@AY19JD'*#@S ZxDSƄ<ȣ*BG 񣶱[xMj`%*Xû<;۳./3ad q+r9Li Żh%F=@#h6bz`rGGB X̊8 vkrOn C;TaC@iSsvZ']K8 @y8(>Eq2Q 0prSQ  $ (ə`? !;QzP&B4+J4J)|JŘ@:H4Hi1P~ h4Y 8~ɠX` 38ݘ1z5#*X@@0r: 0GƌcL= *Mz4ᓳ E &o;2»a 3;?,F64;G\MQ)=ese9VH[h ѓtCXxG@rt:7{yRˆ(@* X E 6 P P =AX hhAur 1%{ -En 1pAR2Čh1)K 7:mJ,m^ʒ2kK9C8҃4h4 hHDhD^;YC7Qab,ʌK-'LHT`ID˴;/+#2EaҬ@+>U )ڐ I Y+ Mꪥ ]m%z+3+\sb̳"#">-BI#Ww! t׬x׊)׊@$;N12&CC:sZ@v"PPuB83~ h{" aD!"<0:ٶHڃ9P e.l)9l mA:n 1]шY1<h:S$6`}aڮl6' *ªRKCˁ9SZP@m[ : [^@D&۽=8=c7nXtH0[QbV]'\ȪɝTȵhob\YR u؃^k m 顲 Qoɞi+_y25By!  )81nb8)*P)bʏ*J8RZ-5>[8Vc9Y[=vc)Y@헒p'ӬKƐ:^h rA3ܠȝpxiaE9gմ!OcO\X 7$nau{7~%Py0d(D)B! ac /0a"T^,N!b"d1KFm^#̏=Ө?: e`2MDrH(R iPDO6L B .evɅ]ڵGVQˆ&4ׇiF>i#e/cN?#σgeͿ^zf;waٷm5샰mh-5ˆ_ &/NÕt] 50́'L mx} Gz+U|lO ( ] %0!3(0E`1"pI&X##8<1 D#D(<Y81b 88@~hX"*ϗ1"Ld @UUiVէ}&&hIhPh.CrBO{ D )Xaťt'~a 5 <t**AE$E6xTFyE (QPQ/K2M|J6@QZN+ 'd CHQDU)0@`uVrv[lՖ]HpA^˽fVAb Xdg^f]ٺmC&ە[lqpe -_2xe2n` onu_e-vlF]QGvI&g6AYvY~^B뽗^zQyRu si(v!%P "zd.^"CNӏ?m7cX0C6{6oyg) HjRUc~2*rbfP$ 9q5@ 'L@ 1yb !:)(!ED p@lv'{8*s4 rRD  ^NvG=y 0H+ a3bH109?L=,/ΊV5{!X45j\rò΋bDG!tve6գ$&Բ6L36Mڽ*+Y6hLtFg{5ɀM& zl@$]E=O$JIPp BɍP }H AGDNT`H*!C:љDJQ ?DO خXՏ4ũB <]T lHٺ`WXiYpX%ėiVaAߝpȌ܋ a،֤Y^Y؍\YXI@XՅh hQ!.`ϨFtZw4M&&eG!a#ڐ#1$qMfٚY 4'̒-pRH6=PN TWy9Q qp02PyE@ Uɀ$H]$߁mB`};W\E9^`BOoYA|\1B Đ)OݩT?FCB5\@5TCM "KJʏ]C$A FY` 5LŹl~Lt<e c }ʘ_ PxޑWaݜ\UnEU(4EZ bbkPYF!b)p_d!] fWa֞l1z٨i5tQ&SA$e  H`S9MSdiW!ሶY_aWP!1yYSp۹=X8 "@ş{%r&g`(ч| ?գ Tl|mjMO>F}ʃUMAR @ed9P5NBl."$ބf ?\e MDOՄȔ OIĤSߐ(!Gehƈ ][T@A`nfUVU^a%-VQg5RXYYFŝkZFVUr]RϘ<u,FF`$&fx^e^diY[ *PT^t&[,6-R/"rȋHMf Mslވd[w!Ӎ46ú'eI$)/N} qc=Z=Z@ezLfYk1?*y&|#I$|@e F.0?BN?(;¾o'B菅R}L9THMZEANbJ U"PvhՌiZ]l| ,Fe%Y Ɯپ])Ykr8zXWZyLhǨF̺XČ aeMVifguEEWlqS؍,bvfКf oƧΦquɋPPA*pȒͰ6Or^MWrR0{qjR. &1*RRR}M`=ᣵ"z4lk)d'@ <¿kB ?N~hJBCAhAB\B$ļ&"V݀BB\C5xOYB:X G\(VX6PE] U6!@jZ(ʀ0.ipeTV@Ï&ďXm)0]!(E^WTՆev(Ms ռ\֐&2 1/)&I 9MU=7^(豉,_ƊX\TioFV$(,(XmYhvXY1)Qob#6'Ⱥ*NOgrNg) &o%q~fRa&\R)Fk $&?e@`X&d&#P@%İ]r?@`@??o0?/"?d54\C >,HxA:MJNʶXThX0((TVTFBp>ɕ%_I0UaߡvJ[%YTX]eM땙y]]xȔȔdS툍K.Vz3GeGmL !^RRخ Y_h MWXmyu("'Qln[''mnG7GY츍u0vdq/3>RagS+͢ʼnI A& ¼Z` x‡F^)q' gfto B;@5l5 \? <># ވhwbOβi!2EVgw,6,a͆UYKzվWN՗rUgf\Pq]ir,r%H0 y5]'"d f`کE` ^!x\3M%4X(rhy!2#EbI7NZS#ׁ'K$tvHu ,F6iffҕ&.~'S0Tk @nL 'H?( qk&?`r:rkA`F 遲@ x5lFZ;;+%tCyKC:TDE8 I4M/68TdkVlT4j=R! @ C%'h.]Ԏt˓J)u)yە]lgpkހ0ðer?$@s` %?P5A5k&.B)DЫ4@, Up+x\B׿8N Qմ9$Ӎ$.eXY y #@i׬\7N]]XMl w&\B` m(O@"E"Q+yRHH|*G6(P†8!@0a"xѡ>ӤjTD"tAc#\0%$\X`\DxN% vepqDDDQ^RG(#N5`=xfΏ]2O'O pLP|(O~y8n; uB'G:z:;LL2V$(JW^O:b"S,`>Cڦ*2kJy>)Y\- rv=QoH$#`" \9gpup )<Db$0<1 Դfa)TlS2 ;_Nh0NԚBh6-/:ZS1<|xVϊ 71OMO46ka`C0=2n*0A6Ion`oJdE6A ַL`(kNR Η-$K (& hL8 crM T:v;@U:C%/;6A *!f=Mx;Ce&ܥ{EC>d|0I⾓@QBA PILz_r&@!Pe,H "ˤ)M)Z(3UGͼw)QFHBp{Z50ne)@ WA%:aI̜2f)# &D)MOFh(D#8U eRmB֛o 2/ț.dqm("'vx貄=f $QƎJVD`P+CJJC@2nn~H؃p`2Qg4=< h.pn>]*2` SzGL-+QNyRt7PS(=L, }HC f*1,7 (nF:1%cu5abtܭӈ q*Vuxd*R-چ+<!S `y<@M$hDA(ٗ> ApK$<Wm&F"Izi8imLw"t+Mm3z+Tgl6S=z͉s}z.oВl#8P\i2=X 'ɲu8,9'%q4 iySR!kQZF- ۄi"yX]@^ꊺ0#4"wAKL̅Q # n FI_͛!D푙*4aocE iǍ>}!., :Hb'˶I~e-hH@#[h  $@IO/,`"LO.D,'),74̗t{6Bw/XB+MSv4e;_"8(s|f#D[Q )e:dKWf>/RP%U2ad #NMBNrhxLd\(d5NMnpC̔:j)c،"Lr ΑޮA>>C,D @ .MpC .Aӂ`on B#2'(6GK2  hV@׬ ln-Limm @K!nEҏ~~ ')Yh4d>'Oc ‚!$̑lPwILњA,6Cvtv +B@ dlX !0 >8ChPGBJM"r@A2-FE:JE-`~?.t6'n"'$l)1O Ee zxa"_z#,bpEU_o #v%Opr-8ȭv))Υ"ۂuñW֥ QƎvT(*TO7!nb4Z(an 3.0h.tL{< LAlذ0m@xk' Pdp+)%a vvjGtR'b#V`84+N(RRz8AUo_ &`Pvxl u p@ZNrR FNZfXABZqfdWgAljKniX?tjNm%E%S[TRszIEAΘx/x{mSSU`E2SS nY"Bp:B8f[~M%£ [D8q.ZL-8nXg0y(%iw"YsRvGZzp92Z;b̈6CCǠ̧5|)5xxl8&hO h0r@hHA @inVP~9 vvEB["4.B|(J4%7.! T`Ҟ 4*p^ZR*k# Iro6$I$q\ *Fh"vG D!(yX[.4J{ޚpqC6(&js6"2?fjz y 9VbҼ%.OtOo‚DG^vIv pwQnIAPc(ca`U2C\1ɀ wҶ=.҅~Hd hEa+y96@ hmm n.@۹6XR2O@LIF1Q!B) +or 4mD")| DmZ[8LdJd&F"A(+(j@hvMEFmAkdTܲtD24Gd+T)?ǟ/hξzB"@'`\Vu,]*:2Df0b9e\MAu\0i!A`󙂡ft _ fBS㟀nZx1œfR?P0ˠL|Y B*h /4Fw9 p!VG}C qՃ"A%LlI8_KUT[G&ztQWsx$VfӖQ)L~׾z`(Qj7g8 -v䑒?tƥj`No̖mlpŝA)8c{ܕ6u؉B]v =u wxe"1 A.ebPT0JFQh`(2]]AN1ULY` x ]f?]S'`LwaxB,:Jlig xNO{fnϠGA s6ϔjjZ Xi@A(ƚ?VX4Q |AHR) ភ Y@6* |-ȈL& .emJ&P]C\ܒ8&^,F02QPdR#Z7jjPl. *%Dl@x.4yMQۘeǍmr3㼬(@!Ys#u:. a;K!/ы0FRcS@PJ hA J Ji &wn <dj*`%iIKc &F&CvDe;ő.S# SjRC G , 'O*guKl2;KA^%(\49-\tMJf'$*o ^*$P `WDث]ʀ"@,%6y1Đ1&3DAym eDXуXw%z^2`X$#E&7bƈucLCE1cEMh6F/b < Y^#ƌ``ְڈ:e-qm -uH H(QAK> Ё({.2fH `96Pa\3{ʧ.>F?ݘ(Ɗ`]vl 2=8Z턐;%ʟA)A \S=䞹U(vh䉠HꓟԤ4'(ԷPw%pA=ܯV$ R,Y6Q2ǀX Yzt_]RLtY.IWy/B-G%,Qa5D(V&3L2V),HcU4ŝcIuDW% JSZf_NætGM-'lV n^ OA94iLUAꀈϠS ХڞQnSr;QT$0;k&ts^,;ͬNr %_t/44fM3gQg Oxmӂ`)p㓋i( '\t'JIBm$V~b^BSZ*lR `E]==r (wx(c$;^R!W!v~'qХ'};O%qr=!ub*K7u0a P+{_"/f.( tZdGS-T6ffh1UyfW53jyjFT4jȡyt g*Tb=r:7*j[z)A` lJr76=D!e'`r6'smu}egȧ}ר\q637>s]HLm7WN{'G7p SN5N:eROS<ט[<Haj\]Aa)֓_`a %s/*>6s9c>hRl@tB(hW,}de;=pP/26lJߒiB'/g,BnG>5A`#i wf cDLhE~EewV0Z^DYhG#C2rj7jWx'O u7 Q6Y*=șE!*j&g 6R}Cntac(EQ\6&yC=7h\K2Q ܠ$ 90>~2a pjcf&FQ!bNƏ;vg&֐d(~q#wRn)mSrt#!Â/`%uP?+ @$)1#5ٔ IKq"W}22UgenJZvłfjuj!,jzA* e.@@JjFqgG#AVV#E~HooEx)2jj7yF3SjPHW(#k=P21k!%_ҙ2!8\%_|;V`P_bB`ézs7߶I!)>{aAp/h&pw!wc' e\HqُW,;A<'y'e\{<7t`yp8 z;!h2Ob!(~=1 5A7@I.+a8QChFevaBEm&U|`$ԣ/,P۲ zȤgI$#~V0YVzLEqUWWc+cG3yi~3Eyiy 4z3pHAR\p)䝨2ZX*i6GJjcaǀ7Fy%&:ZNN``'ws%a*@')W~u%NVN;3]\W"¸as;%:SNNs;n]A Qja`H۹Ec;ƽ:s"eދ@zTTfJW21u ^7BAvtU$D%!v#)tE@!w3qtg$~?DU*AxE1`$H-hB,CTXVۘ ¤bbk'k8k\tKp&XsZl2Q&& Ks7PB7:''gh:_eƌo")g_B!T!Ob 866fRjj|AQ&SqE'γmr;c<]\ q~"8gSO7]> nڥ>b'JyZTc\sEtR!5dJԴSXGTuZVZfbGR,UL0zq$#$1dhC\1D3%LPQW!$&LI;Fx! ࣎[:G{g2f ط@0 ;h˽B;cT]Acjg $d]H͍F@.Qd\Ivײ_E0gWJZY1zGxWE\o5^ F!G1Fdz xmx/1=7ݵ zxbw!7l{ïmEy |X6`2 ӡʩ-9=i}7-Pn|;)0%ddbhc_]Xԭ YOa|6 \*~kgO8>V Ǜg) tw)U!@%6cE0'ZЈkPj|/+U,Qڤ"8Mv΁xw}qhx$c^<tEQzɈƗ@$#8(X,iiGss$E XEI=A<=ÿ!=6BJm'й,|*z|kq&i~;M,mrb ͺȦZ&wPPM7k\7r}y\]`iY!w})< N'9~ή>(Q@|b s@n}(r RSs'L+?#ov*9|Sxl8t,礽>REFJ*P,W4MWTS$9eϔ0|E~xycE{وKpD3>#ЎF(2X2Xԭ-s Ha 3Eq$7" sާbP-ъ_yJP|zݩfB>&.` WK$- ׷#n N[pb:Ә[%ԺᴹǗČJazO 7;<; >\s꣫B !{9 ~J֙ǎgx#aGQ k6lO""s H ϑM$( ` S%L2< MN 8߃Hq.8} )ذwោ%,a5\]B,UX.ٴ_ײVd^|˒+uKN{a Z3wHʔ\/˗BKrHPD$P \Lqm\8 m0M;'13t $w]b$ x,c!1> X:6=t I7pč(@P찻A3#$:cpC 9Q"MjPB.; 'J`N@7$0Ynca FQP$`Ec4)) 3L/4#A ɁM6?ȁ&=- A큠J%Q昣HTp#Bӓb%Tç|H)TJ͉'g'X`+ȇve***+a㯸BL+0B쭼Kھ-Ő]Bs=w :!CI\F:#5{;@3¸$b##Δߌg~& ~p ` Mq"@&;h<3u} ~D/W0B#<ھ S^lp],1 @{ȉhHHMIf$=cnIkq ǒ 40A/4J n^dS:'#=cAx8 < (y$Hĝ'h><.~ Mj1DjQ?Yы$!i: ۉ^.mf$?uێD! l\O "LIAUZQzT4nK $&4H?JYM@a2Suw@\w+ TBPJI9$^QWez J{6[GludquDf GGj51Πų8H8$"sC6DjDPbP٬hϙȗMJl:]'$nI,# '%(-Sx /z-6R~SRYx.4iSl#g%Kof( \A2eiiڀ" ph:Ӄ :k~G[~~\(j]hE@ S| %Rsi5Z-Kzv J d1E*C*j@ވS`!#N1Q8-:24C:23J#J#c;kk-#3 E;QGc'I!J$a,!1٬ )F;("j಩Ϡ9Yʌ@3=Ď`._=sGtqiEP"@ v c ER@+`ʼnprE:!0y5s0HgI v 0i C P1 - %gA8o|[DC2r4XH 2%2+P",1* 53#퀙0hȜk9+';Anz3"\{8Iy1B%?$ 5 ­äC ).Q: |(qGz 'tS,965r9/I!Ր@DAd=*DԨGY @KShًGLn.E(HvqK[/!LQP,(/>sjLxE 8 my RGQA{Kpz5{B*K沿D (iH9 ##Nې r%l6 %!IMS "Y{:@A-qȪ25N!k4 IU9@$©KB;)xI/<#9QI!ЂrQjSCXs;%́ :dGBJ]3 a; PD (I[ERŲW4:%K;Z p0*ؠu/5'd,8ͭDpHu@EJ"#! W?ƦNX٘`ӡ,B"_eԯ"*I뻥 ^5^Ȩ ;(ROp4мӡ93E 1 3֙IF@(;-"^с;)4XnQn( 9Q D#R?)R]::KE 'RhRғasBT<cEu3Su+E;œzL;WLZzLdZ$k̬> "a$?ěKCT,_lؐ5ғwY|a![.xvl-4ZUS1J%D:>"GJb ,ڪ2/bA3NP8l#AIA4 H>b/+EZ;/t؊:˂,Il9E. LF3XZiC}n(_\+"u_%Y1`?]`DuҸt`+S@N7uSU G3>f`Z ZQ ( [w.zx0H^54WҥM8 %X38 qd! mh4݀ F(G:P$6N&)' :xP;#1 'elSt^qVgNghmsv`ume7 ^/:ZZ_`` 銹hrىvQ e< 8lM?yT"ò80 ﰞ-K<J53=9[7VZbGB 2Qb֐UH@+iĢ2iVCׯi]/ j= 4cՕz98L.<:ЏWٕ]BAֽjpz.6 ( Vuu` }%CN蠪7X2Ѣ\U18%klrXr4C9) l|5Z0V8]D=/eΞer0mx`u> <tpy`ʨqVEy>y6 VZC'|^ }xZYSA f5_Jn.1e+#ei#|N5]:W]@Q#,P\ gw:+⾙鸞›֒,i,"ܥV7>&jxqq"zݨ>4 8舏^rQxm,. 3%+QeVPsQrؘɼlbv_aD%*k_E_(RٙvCז_̰46| lnNۓv_7 MRi$ 0e[#v͏ɁMu: Y9#+*c=0Ж`, Hx * BQ>>3jHG<$,=ǰ¨69+@#lw珶J;^HvX2 Tzk֒:(q1FmCWr€@ ƍK*Xb+jqG+P恄0x?1c߄& 3͠BtFb9jъN5_UZBŒ43RX*ŪZGu$R.oɒ^4>V>Hf/WD,# Ga 4 P?| ?~fD8:Đ#) Ch8 ㈙`w]r3uX-51wDT1rHNC)FЍO8m]4wrӣ݇?&N'PsWTU*:IIORRDhs H2^BA5k*7GkiWm$J^N'ei"Z. 2MZP4dg(r"X1%B[dsާ7uuښHΧ0ҊV?/zV >0[͂ʵB&\oa_h@(T+Rlo~cԬpB 4-"5d@f$<v2șa`JR",;lcI"dP^Dq {ee|41)8i-(ntC9B[]f5<͇8Wr?3n>Y)uZ:@ivl ˁTQ%ulv(QmX#xEQ|@Ac(IYEȂzPM(d;bp {爘 |Iй#[陋Gƈ5R[Qr[ dkmHL$eNRV!guhU!%pHՆE BVpHe #B-bHX. 4J""@"&ir筊6wI]3q$x`Ŵ%VxWP\ŖSt G _^<, ˺" TDfPP'NaNP` hڽ'XE0GDIrVw]ބ+_rq"N@QQ&RvtLfLvLgwX\ewfɕH8B $S`~yX utȃ xdIM ݬdU:<]]hnMALny։؇R֎JT␌aCh pDDP%K\XJl?)]l4]OVp9irI#eW%\H`Nބ_:'I8EϮ̢, |!EMPx&G(mE@ H=jdHG& MLP>(tL>lH _qyUʨLyhL-]Q5Ih@xxΑBfǂD͈4EЩ\''ɧJȄȎܜ$ Ht$]P ɢIVdl}$ىUP뼲 k.A$AĎBOVVUJ!NE@KJ8XfleaJ ^Kll#:^[^tExi`o`,[옶=ѢcG bӂ.ޢ߄eVi5y&qԣ52 8muGtN6MVGF"I,} mB ?#vv"YNGy A j{'T{ HAG`i|ȑ!D?KG) v(&oVh%JN*'DA@ԨFU\̚9SP"KŖFLlEp^KJ8i0Z p_Nf)|;}M6o;˱:e8E䀩k6n'x&< ^@2Nc0 (7PߝG #FϔLs@$t̔鉟jnQަT!!Yd@m-vTE[۬]$"`iHclj+x\GZ2n rI 5h2'H,,܄]lLEFHad* 3G@v1[,g32 wZb Bv/XX0Btn?m3GHf6 nro d@ r(Qs_ :Yf‰ڥ8Gsvt&iA̞?sl؊%|Ѵ\%uE78H KyuPIg%)ɏə I !BkRc1.G._mqRPVVZLik]2yDJ|@5,{"iWvm,&,nsJJX/vV[v3ygW3jJ![X\_ fBee=@g.bf?/r-pvvop 9s05f2w_SRpM7t-y#QmBIw \#}mRv,~]IK;kO 9N ; *Ď r GLlE6c ǁx1 Q, ?%I2I% $ \C8Q!"Jz30 *00E̋ti#!D^H̜. )(t J"&I&ԡuңb ֲ Ԟ)/ҊЊ\J_ ]c:+"#2[Y"¬4kˠe5s[kX-6nM7yq^9&7}#|s8DE6 Fٮ; ;+܋/*KU>S,-˯TUРLpGB  #+KK/*-FQ%(Mp1wf}4)trJ6$;I.D;J>n *1iǔ#"(3"īБ6*r5!lJ(=G "SF ,bt*KR?JJV]^Q}tF-]׶. x*/N/X B%ìۿ/-1 4&3 3^["} zgzo 8|@7 a o0 @,< 4fX@@`lf?DA4+S/xF#!ha!UIZ2rD#3@~#qMD CjPd& "*RF2ȍR+Y),x@\֨TpiJCQFDe$JE6:3-cE7=sNQ(LZ5H*jW2,nﮢ],UZJ1_,[r (3u+v܇2_2\o[f_~ m}o6߿^ k4pŦ WP8'X(K EY* ZVȔNzم~&&]QDFЇPHpb#ZTQ֖'Jg!Ц&| 0WH$St<-ij (&-UWE"cW DE%C^2IL>J0e$dru*ZK";2+X2FucQ|nZLz)X.It:LP&I!EA"\zo| Y9YEdrb")q%F\mibòϷRffwԨ 5-m)H#AX DI΅fa ;jT˛t[=OwYn:4&=QX3ь7k!9Q()C٬)EPb\5(jxыk, EqrJGʧ1ŖH9LE"yfɝpƍ8HjR?ǜ)!/:u,_J bfbc_˺l:(-$LY/ ñ...22| |'V #ь' bw癶Eeg.}.=$/=8:af+6Pa O;b-iEmJ2m"tD۰|/lpH|$F5\ TH(LR-!.$pub.@b(b1s,/VtLb)#SUJ%pMxkx*)SVwV'.Iw* \.IꄧY--̎LP[p,1NBMx͊i3))crk,n;v!ղo ;" W;f- +=(h=kJ C@*Pf؊Mkr&B(A`1*>@hLdmhhInDXĥLR݂R4쉖JOHl*5O-L8L*+-*%b!HNGį /%i/%t,HH*EnFRUT`QX Nђ&u ΨnW` \d.>01EGOZgPhX|ǰ&1-ooB~<;  !"aap## B$ l0F $ P@ D@fAąZBg8Ji:igDDi)L)qDZLM8g=bF*ML.4*,P i}'-9".r\qJttR.r4b"lv $F,sR8U HET*{/-!r(֌"fLHK4y)('45'*$3xL+^"4j4<8%OО .6s<'H;P R:F #!(Fƣ#j-:=Ff+ &e2d`h?'(CfmhJ|'X$) EŒ2n$iB)q,BN+R4NHB-T4qϨ-Bt&"B")ޚ1B+j4d)Da(0:Hk,/]'[NΌJ=Lj zj3űwe$Wn%q6Q7Wi1?O+ %omPb:%(PX$f:Gnr j"8jJ`-k M&<jA3=C%dmQ$Ѕ$ lIBW{26ID EҥqAmON)_b*OP.NF"s+ 6Btj#/HOL$R/礧=Ki+^#p2nd?)D@DW 'CC GZBMުonêEpD.swLrN|".@1*-s*&"'0B8eUuba7Sc3+Yne%pdbeLwWz.$LFJgq# 7.Z4eu Q'ƫ=Jrlk9 "ق@ X6i Ϙy!9X6 a#j ?J,B-`Ne-tBJr C&:sjl шu@LQR@ΟEe'ʟ͒&\1t`q<$Q,52gʬꍇGbjnL"O̮$nJٍgU2i!Vt4#!Աa7'Vf3X©U6񽇚P,J蒺0'I#D b3kCl!h¯h .:ۤi{Z ;㸰sb=A%{DląVJVչ#3IphKf@XA++*< J>C覲$2F @M<,LT[I<[".wXPb#.qF770+,ZsbB;N{/-ZH"X(ZyO+tֻl3(z{{3K=[zK2Y})eNgu=of.>)e\-$]lP bbHgYQ+ Gs F:a\jöP>{B& KMBd+.C"dJu۴d|#qc 2-KjHT,mOx{hO6OrUs.n`aue[%vפAS[!Vw{!4UW2?(b=[2wڿ1=,jdG^kUL=S[YFK= !< @gÕ:c<"Wiۻ]8^{ #=sejf"A>IlnvgZOl|҆DIpqEly.hN1>,%K"URLrR"*Il{!V iڜ_Wg:G7>ߖ{Huqygcޮ<5 \m. E((aÆ*>tx0ō^x F AE* %o8` )SiNLx敏  *5֠ar\zjQ\P쿲sץQmG6Qz~bZT(y.8eUVEUZUj5ʞlZ \v!?x1*WUyMaĘdMfimj/᪪ɦmZe'X`ng}( vm0!ErQHF=z>lq]TGn+-GjEEUav[ ho`'p;E.X ?cWq C t9FJPB(^]Q ݔtI%I- TX*M2QlTQP`Y5DTYU]Ue*[E[,Z)YnU`(݂ I6S`i*`*hiaxj뼚y&6$\Cq\]{bGzsnT{Zr$VNp6ggYȹz#9 ڝvQ tÛ6#F .qGwtvYDb29:!AuP}.!HGձ'0Q_͋S#@7{t/I 2(G,}@Dt[3g`\4pMB20WSXBëia Nn0M?(P %ADն6\0J<m}J`bA k\brY,88I^1A2L2(XPLARHeT'C~."=pCi>wUҎ`5"\;Fr@N/ȩ$]g˖b%|$-/!WƑ e#=:JL c @g?7d'PilT&d*IANC$%x\%.0hs݀yыu979Qpm|+zSQRU\5 kl4rUqx/y߫wģt:=sd%9QA(' ,r:?iU_¸uQxQqE ;&C/9z>?vFJR3) 6)42MWoĂ!3d;ՎMAZqT #PD/EJa?zAq't~c*Eu`T^8(982.;!=-U嶄E:=Vb;#zley.|VJ1^W,U oq$JM ?Y 7&h#3QBY*|H&Q/!}q#G~hv5~ZDZ4tfzZO(AtqPG6=Ċ;sxtH5D8YRrE ]WVEj%.eR¨9"S`:VfcxT?C?0mr;`u%V1.OU=>y bm9"c1bY3;{pYqp[]M7&MoFifNA`q}镈t7&Z'GsHQx~QJsXttFt s XEjcv Pkbm",IMnHfDW0E0*Kp5d{ԣCXWoDKY%MQ"lW%eVb"8sբTAk2c~7;i}$'MZj r8r>5N5>2tDPxW@RozQ))5%^\y\畋&9R1ʲ*Svtsd4}0 ʠw5[Cf`-c=/F:!֖Ux'6a /`0p/>Hc2rttQ#wXU"y*/s$~I @%T:Zz84zrE&ԓi֧)1~zwu:3G$YW L64 ifǜj6OZ؜:qN5\fc~.\eyQ-詰viq]]W7[Imiْ "8sаFg\|VJolܱ$=plafP2T!,]޽z~TQ'zA+1!Dc Z}QԵmTK%sbn'4tk@aA6HgkʷWVͽ5:xffMYޔ)5qOrM!ru4N~&REfެr|mϺZ$g]{pehqiGPr ]b*9Yc#u+[R!9 G~kQO]6ySM{8[ƶ0a E odq|@T2>75}ܿ&a;!A0fcԱd]^$T\ʥ"0=:vVJ1 Yo_dyVNۥ+9}g# EZ)0B}o*A9;UC\ΞćV\EƊka9فiQYR:N7%Kڢ]ë{\DK zl?/,& Glj3 &?om\c>,,l E޾^祵!Z%e۽OR\2=Goķ??d:9m6Y( *K"#@C `f8@0 0 c)elS,cѳ(rͿ.us)SN2 )V@ >CYҾvٳ Ŋ -ܺr2C_6a8`^\ af3VAcT`8ܺ -Q31Nќ0)ׇ?|! #O"xdljw3dQ<)G9wv3 $?.o?D; 03: @Bp K ; 5Pmh낋-ؠKE `jH#ljȠb#؊H""HX:ɫb)'Rh*l'jL(F*+RS%TJ?mK,rP k. 04LCф0 ,8,hp0)C 1yAP3 j= u=bE9{*O Hn LorebR9ZUllL^dȀ&#W> WtDC$VMnl12(a|846y$ ɐdvd%+J/ @sF' zyzb&@ROG+.T*jb6[I㶯AL)E%0RnVX@]{ @5Z3NEUY J/2  ȥFZgϔ'Ho8 ot3p 1KV^tTxc>ÞCL3U7ƢDaYV- %H3jdkQ,u'hƲJ ! ~1͒T*<$$!@D$KYJ$ K^ S CL#`&i 4@) bJj8kkXB .z[Y(r h7Xo8Le/8P`c..KY w!hDx0D.E]x[#rxWOj^)Bhzx4p9'Q.n0SL;\BD!~/ԓ'(H "[mfJpb{MKƒ- ]M4)WkʼnƩ{/RZ ?1N^á/㌗m/C-Ur_? @@,@<@L@\@l@|@@ @ @ @ @ @@@ AA,AtEA @GCM,AF3y 95rX>drhP R@BRcEEWEt`z^E($8$?^a,TLa,F6d^DFBgdNDsr3?Df(p$^LTSI1LÌkeSBlƜHhI F|?=$ !ʃǍFURw .#ۑojZ|T믃шm`鸩W\̝aVl\mGITnNL}ovHDcG̪Uxä_;>שۍ]rTÜN$طFla~E{B.ֱg@ރMT6]J|㫂ѓZ>eG4WLL4t;&iyNIym9X51`W! ċp嵕g@?ĭۘOOOlʪR>cccָvvvn\_GJXW*BCƄ *\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ϟ@ JѣH*]ʴӧPJJիXjʵ+V`-HI6Xa˚]ٷn㢝 ܺx7o߽~w‚ #&ǍӞ̸2ˑ1[yg͠ v~^͚l>[˞M۸sͻ Nȓ$߾PcޚٱcӮC/0ZF}i˟O n{J(|_[tO[ Tf:tj(r8%")(Wei@IGiPx ϐ,BPF=Y@}( Fh&js@oYو?йfkz矀*蠄j衈&z{ B!)И<.ؤ<Ǥ@ߐ}朣s ٦@ZPP@]ꪢ+keIdi)iL語;dݳ JBid[ֶdw.vyZ8druЪciJ쨗A[-\dI/0TfL«}<*F ,p̖pue0<ǗӱZ!論hJ"glLT碕R\VǿWmAڷ >7g-< Se7#] wJ(r䲭˺y_?_1nm7%̽e?FZ#P9xƤ>rʫ{\{n?cφlOv L7F^9|J,mȳԫE-_]/@觯/o HL:'H ZF}Ƞ7z GH(L W0 gH8̡WHÇ@M H"%P0DrXX̢Ml?(r c&ָ.qaF9@Gأ $ )B! GԎv[#H9Zn%x6Òi4͘1~H(2QSD,gIKYP A-u[Ň IL&2Y ęq&4#xL3񲖲,K)ŕLl0ĉR))guu''HOsg[3(CP0чZxЃ*ԉqInO\$]ţ)(H/icdlL&L)ZĊΔTq UIYYJp4PϦڳ6M;uғ$' Ёz-*Y:ӘT8-Y%ДoK3RBF2(x İ3;boSMόmz]Z%f۲ԁbg1Z&5yQ9|@کxĭlUpr QϙTx`=?ٚYR1fњȖź'%\{j6 or$QrA)_Xw7< { u~\)U5RӑV V QRl{kfgT[Fۚq*AψPZ֬ofUlђfeRF־yomcj`w -MFC&l:nK]yRθ8C ݲ8 ZUv jgKo~&LUxΆn=B;sikU-Ak`֍I˲]:3nmlEH^ȡ`Ri[bR:Ìo|<7/+$C@q NMKg5 $tgng=VS2ܖŵE4mḰ/L_/pkvMKԤI9M7ʥE׻Yx1Hײ9ԨX/nhZ9[:֚5̻7Z7=% 6-U:ㆶ"S8% ORrxGvZ E{~Tj2)h |©wKV5.ˬgWrEyYպx乐 U긼/ýLymigϵwz{Ӕ O{8hPݜvi챉Q0bk[Uj[;w+Wi^J]x&w-~pK1iB\LGc)xuWU^EVq"'jU^7 Xr\PryWX'yDw9rL L+zgwuG~f~4{sSSS?ă?lKJVfa[|en|ޑ}|eaam!dmGZo'6FDž%cHVdssjS5MnHnUw%pzǂX|8_DcG~8RcdjxQ{ x6eX EXyQraj8#LVr'z(rLy؊viYY7vffjxbăh6ZsI$T@em)1Z[EHgnZ"/0I Wd}d&~ f]Vl,e(Yu7s$qX`ez X¤8 M'ɇjq5j>qA^ (XqxՈxHyy8ajX/8LXkȂz06cpxk\voQpSSSM<7J9`I7T\'}mAemշ|HQm`iۈ}maDhfsYgDqX]ʦl$!pחԓok|p |ti 98IQd*c{E^{5 Q8ry QyWM6R! ())+ŏn咦LXhRvhRDɆΤsVSCSJYRmIkFgå(@dH^T؄]D !WhT9Mt(QdXv5]q8wNpqŗr8_pŘvxQBQy^q>֑ xx 'j@hH91i.9U79Lzٗ9{)WF]kvS DcƃW'aZr幄I;Xalj uXaeٞjfX2E~Zy]ARzKrLy0u'L2_PFYLARE 9Q)$Ydy6ʉ6 5jjx4֣.Y9f?@>TH٭ 66tFm\j|_ gtjZPxZX IYnoJگڨ gZ[}{$ȧzJS:*lNPtبqXw1];wI cǠ Z8z :8d1Lꐎiəz9w )ꑧy/1z*aIDZGڗ'hd p+jo:x`Ty oWEtj!vdaaGAQ16gmTX):dWmR[oRRqH0yp ڠQzؘ0>y)ȡY=#EyCQB[yB RB O 18)1zz;ʏłʵ˂hL.KcY S:D̦||ށ;Rij |+ZiagEǀPF9zT=ٺKh[w뾋jL&.qрq^9{˪[ܼj[wJ;ʽg4 ǵAT;Z)1+ @?=:= M:(?HC I@( 5t Rp uX@l ",),wQY>z:[tfu9,Ɋ:p)̰kJ\jqIJ POSLS, =eOlټu 뚔Kk<uLuY]K ȺЩ[z;V\ Tp޺ɷ/aʄ;ʴ)"Mp i nJ˿AlE@l>ȫ{:Bkb컩hz0\Ωꡬ_ܼܳXy\Ϫ6+ɴKKgm!t<Y/Q(ZeDZ`oi8;V)1Y>(-6 >u{}`._n5 r/lŊͰAd;NX+kq(w]K~[y)*!۫wld-@|b FLmX}+;^P VxZ;Ҿ|Q36ʐdܴ4 ?]…KWZ`a FՋ5dNg.Ѯ3ǶR*eޑѶiΣ.A \ 1K^ֈם. ע[n +kq]ؠ yz).ml̲]wtf)ݍ񚰹 [MXR@q <H>ʎܭILP>-}};ݫ9U>N3ȵ~q(i(%1(2'DK}c }L? P1QL!H6Dj?z ةK1k^/{y_v@. J?XnY@qÍMNa<--NlMr_ɿ+ο~_Ob B Xć%zQA2-d!a,];+qE1ah3UM=IsNuAo@M>O:TZ֦4[iCZ$hiZ,$Es޽{/݃z|n%<,pᬀBi/8XE.f*{gI?´d֒/{wU*N0M-R&I[Jꬣ-EesItkɎF8x=7޼"!¾ '_Ì7zHӈډ%h:phjʥɦ:%P5+(鱴""$F^hFrˠb/H K< ϩP|. 3*M3f4NJ1t*^{۞ZMM.i77/I-⤈\1/24AK-\g#S'-o#;1DŽ ȄǾȂk?amGj!&Bp㕎E7Hs[f|w5 K]pԱ}*K}fY~{1ֹCըL'j*zZtL9j^c[7N!YAK())pY(/38bgٌn'tLWO+ūSInZ||5aU>U}Yךj;`34凪*-5l#-DCժ0kذ>sj:q:7+ڎs2 9|C9ʅ<˹bȧ䮦\[4UD;? ,@=*/=m#] 5X!0G |6 tHGKb<+MB0[h5hg p<)kxbaL+tK^d/C IM;˹L\O(NYC T- {ԒC4Q8HΖ-8ސH-ZU_) )6 Nާ25dڽ]ӄJVOU;Y4ULK~P=ʄ&@ D@>j =m8h8mY1Z1_]I] ieS87&#e2Vb*MVUeUXЦX׵l?3 eh1#tVu入5`e=Z^bkb[P6ga -g.fhuf5kenu;[ogq>\<eApŖ \ghKM"ׯp glΎ&6KZ&γ)f@&[NUO2^3$^_妓_mEv2Q Ta^_k`cZ|bvppg.fQ.f 6 wpj$V”a fonKq_KlNqľQf5 Gം mxj |~>(nVcr\)_fJܮhX1F_@ُ} :V 9&YI땸FinS-VwoH"uiiN~oo߯ҪNh;~rYb>"[VT@O˲>ⲮV` V` fb^RKY \iPWQ?\MZk<_v_ p `tB up:"- e"fbY>&>d^l(oU+?or߶C2/F n>n52Si~sjhbhNߡ%n䗻nfOX\3tEGY]mHV`~bty '\p aUSGV; uglKuuĆ;aOl\aȝqI;e[kjuȃvȓ˞j'zzl\^ەj,j'#mUWNw*Wew =n jwc>w锌"IEޣ-=Go;&Wo4UorxV̽3u_'{jY}ayNGfVOo?zTok/[aukuzop%e'l\vElVXP` Ґ È'RtpH1`qC<?,׿*Sf\I1b˔2Nc%ścfND'ҤLC QAQTL11eړ4u}&M0l6۸iJ+TR֜8MJ411;&B Fx%5Q]`8cMM#aӉUGs$(zqqf-+Cơ}{BNI$=|vŘ&j/,F:-a}1㷗euQ)/5 'Y"xlZ#gN1i^zޫ)Q3$ +1 L( J>ɾLYfK`rRfi&2vh.my659ˣ6xxk<*=gH\礀kμ"D]WusPVsSǺ7n{])#HC^Ug<"E&;8:)>6اB,ۤQK]RH^fY_l\i \ T& ]1ymۙN(-Wt-brMסaW.ZW.V1Gm0;x֕`1K"E#_8$=.aM`aq8.)q)"E-U+1Ȍ:Of1šMH^!=)fe=!&2bD(" QbjB`@db;vW"V (6ϥrݟ+eYrqן)u5D"1ΤyWcvE}x;T1N]iH9}v-zw M#qWz,6gV q%&ݽmb'f"'jT£ݑ;F>:&f?ꤲ-@d!Np^Yɼ乸X顂 TW|g_Q JR@N'2a(_q@ bp$EbA"*TT^biyeWb%(>*_e(bzݢs-qu2 uuD]%%EI`yHwU5<1N]c3jN%R`RS'ߔ~"fai:uiVr;fSm)R5Q&>gU} d'e-S%١r64CFdD[)edENȄxJayJ4LL,rEM$q$N{dpՄN_>#rOe"UFe;z}WzbޠbZ)eb+VJIx"= FD#bnn׸ހ`@Z?ب;kb>+Hi "ӽD0JeV+*&,tTezbp`eX]+(z)kk)NT*(l?,<!a~gĥ*q$N!?DPD[]^HCHB* JaDgTmr՞|ʬ'g)^'""#ڮʭTrVleb%7ZNDa(. Jk6)hZݥYD+hG"]2`]B]vU1&Z`Vb^~x5.1cdHXfe.NrU%h&)Jb脂i+ JS£Wv,z,jn˺l9N, ogrğ.)謇144dtr!*]'Ř[[, W j]KgTʏ)@) S~椲QVp,,.D Q#Z6vV/Vnn*k&.2(&Rډ6 ueeUDp/J]k&Ү\c]~"E61IZRbu-1b 62ײZpD&XJ kk2"U20 dIVU2˒')R?488l+rL[T0ŤFUsx:0ަdr*C`\jq‰2j*3 f,s$bl6"l;/:<{l~ `?%Xt>4^ks6K1V DģYnN^*ieDJZ|vqf1.Ǯ3+쒱]]GI?ZAtv1.zhe.oQoe*5A@?one;;gr;o%2C˖z'0ʒ)&E,Cl*wJ].$ʀd&-^8S!Z-vFB-4L^d`A5ӬpZ6 3Z,9C;6kkovUmpV!n?oBu>-qr.J#"4EPrnEnCg/Ft?`1`]2a+.I1q2 ?{OD(/tywS BsB>7/ /"'BVso7ãjmWuɾloCl%3ʂo9'rZB$Biv˯3ox8Bz_ӛ쥡m3\EQDdv,A^pc 4GDµ3$/4“U3g)2k j(Kl[2=k;/DVoU33Ue@"S&"?c(r"q3wZ:t4EX1s,D%wx߱w]fz3r1GwB}q4~73ʺ`ֺ7wftMۥN?CG1-V)/w?/u{q{oocnsxVuyUR3s#FDkS6ߩ^8/0ę¾?3eO+C,ul.:SD*my]`SE8wBɎ002Ϗ4lyf9e_-]]A"/$8 2ʊv6 5yɖ/\UU=v#C=@K?W+G0tvx=z{WA&'7~?Bdc1x5zٺ`η.IwսL?~M_w7z3:W.O(o+3z>6oު>nǶ>8k/ls~&llW_Ȝ;߅D`s*W^2-cjE2Gv,9RCI5_[4o~&ɓE#BgOs#̛2)48W8@`K oѶxFp 7㣊ŏ!E`˒i)eL0*ʌy%D"Fs?GxB]LG]4'kf 1r+S^g5`~*ʧ#^ϋ„ KcǏ2eU/ŚsF~rhsY͗.]ߔ]26K8+`vp#C.Oܸ`B lty"WK76P'+θq \GmݿWzPA% 牁d8O҈B7pC ݐ;7s L!;J 7΍DZ$, cF(‘ bI8Fmy$2ZI7G#h-/2%T&&`R&G(;I;Ψ:*b -ȒK㓫ө* ]TR&/H*lQLc1$3l. P *h - ͩ<]"H;WҀ1B(^K'J/ӵ^bK[v<ιE%"sD є=ŔƉC{d W#fz>xAL 8L&eм ;O̫̔sxIRj'SF`(g \Iw"?#6hK#426inx)NЀasbLJՖ5Ͷсʄ'>,4TҧWB,Շ ATQd.o&UPOڊ[A)`[)`6# 9egjʲiL-8ݐ^qɝQE]6'I1}D;ar hҺpnW,\&aLM-gKX81R}Fkq# Z*>_R <0S}cQUR2G[ )9eps[#=}X#h;@#J0\5-Ke$eʤ8t;ޫZ"s`OZ"@5әC9 CX翂Y I!,ڞuxnGET0т7~"V +wj~Ihe;F$EV)"(?O21Ppdb}c ZeŨUOqTcUt1/aj Õ$y+[QFo:ݮ<Ỷ&)sް-)J"@¾ιKAa:^9yl1ŧ}!Hc\fNƹgٓ4'_Dng< t,!<ĺ~rUo !5+*KC + 'FPH1'TQjA8ZDg/Wt0 cJs'8xeM1Ǭ h@}[0 yjh7CeXccr2McPr5݅}GP?8n!5(Yy='鵄zԋ98+$bCL:=b֧1Vsy?q8A'C]PD~B*<Prt}ںBuERbnK6qְyč -p}{ @Y(a[,c / n]Ʉ|a>>wGa>MGQދyow?߯"vYS,bMdl jFVuiN:Ս)eox!uSBR?0Z%e\vA1ͧ_g܇5 ~I@P%A "G}</C(+dlF4(/+la` R,m Lb ZO go-PЀO [sߊ5@Vjߖ+-Htz.4\mM(4. OʏN7B *!֯(vp_瀮^IC6또ic.ތ5P J@b F!~|C=@!(![aQZ..[%fƒc=C}bq b%pa$1ζЇ SCC4CʁӑTqr ܑ/: quq8 @aRtne O42Fp"F#͐ =U>oj$# 'SLFL2hm<'@_eK`)ie)=EW !S: ,':q-]b-OQ2N.׏[!j0栀RFd5]˺KF703 '~"@ @@ %"c~1`0 m50=0ʮ Q6 cbB7Q7[S P/Pb8(vR7qXD,GdSKԀ Fu4s N(S%dzغ0?_U lV T y5'p?1?@0m((Y+^AB A׳PŘ &l4+UKCooR S-,9wEW5/.m5p f)ɴTx1>}%?J$K ~g>ރ3=`'LC05]T?kFa]/a/lVPg.92 :2h=SwAi1ir ܕa"o46TyT!T+ B 0lEjԀ [?)P&s, $3W 3X Xu aX-YapG%Pq?uZvk+r)v/XcjqQRDu@f+_wt5+C|=.P}Nn"a~I2ia@2P"H4FӃ8dmenMm2ܔiTu3.b7M17EmNL1hsD2P hUDtQ/nQHtUSGSKUu%v;O"V 0s+Ж2013V&["]ܽh9]u)AG~֛5ݥی ` ǙI gH>0C`ZdU A/]Fe6@}}9.Q20PU\%2>ݛťiޭ};[S7կ-Z7u+D%@ſ|h8 AS,%bϠʯ%Ϝm/f(Ї 24J Br !2LrȐ!=J,dAX Ba2&bGfr T?qdQ3J:-aBRѳԘQut]L)ZT(BddVmqIL^(x ! \80̐P|@XW"RIB٭]3n':[Qv"ΔFm2etvLMڼ*S7rj"[m={ֱ<s|,?>>AMyӟzh5O1aY!T6Q V@S B\ .Vh`{C0 As'Љ%`5b "4# xS A75[o-g-aF)N,`MƔSKU]p P? tV_Q#RLASN ՔnbS-)Rqsi e[mT\6^~!!-K6Qcxt)^YuD"ÚjvKomZnF+pgƩr!nB\A2't٢B= WЉ֮b{#j-~ے_ t15H#fA59L9m1"eFR&Әٌ(WyT@)Va/Wː9hTCces։u҅xzLw"r[y;y H|T?x™(lrDbj&f#FX2JT.h}PSԖ,6Y.'G YoTsьfd= = "A/OD0AvӜ,aK"q6&LX>NyD%H <0a͠$y'3#$o')6sb2U,zT<`6cc]Xώ iit*R>\QP3Jȑ rX'6Qa=*ZJ.ȑ#_ nj_X )# ɝ+6S\nj)1JVN<ޱ@cF9 Ҳ5[[Od&Q?(-)bt TzCIFBO/+ 1WV4l.rVҮo] _GY,󂨖7hlW}ݷ%MpUR/`_}e?uzFR- ]G]:kм<,w+W!ڬzAUm6O@) gl>m6[uIHc&}M2G#d&_ |+ۄo%ݐxDNyI1.LpHq]4bi+ e{rvQdEmGlfpf077w:QeveS2f4|w\r(TYVC`a&yx3fD\2w2bz7EdTP1Or(p R31hPw) *FD{z#fm6]8S1@^TEa9Ff$SRkVK$}VIi~7B2 _Ї"Gj`}>Pn h1DH~~ b_hS2W{ge' ؅v%]Fvv!/W 65(MEAF&&øؤAI*M2F Y5b!xD)7kGrq2A0<j[1.e?W!@/H!7~>\u1Q<2=ѳI S0E>I007a=S!&^?Tt |Ҳhߡ1 1Ք:hO=a"eeax{X9F1 ZWZ)WlQ!6nroSv3Ԥ'FNCvxaBX&aXx{n+;Hchl<(sB2 "3:" x͵\/H*1ExQk p?#,Je:آStS!h>He<3Q  p P٠ِ/$U[> >c)@<<ӳT5) @III /;Ј!jSE)}$ak6u6Qk-vGVtq܇H8)(Fy(y%_15\rC!tdŨA2F*D4-ah6]Ai-RB-7#;!d*U0 RV"V0@/h-1< s)0%!0ˣPː șṞ yʣɝPIא/٨*:zґ JE?.XJ6.`sh?u1TN*KUTb sxK?hsr42CL fC6і7XT5][S X%&eGAPD"zՀ1+EGGoydIM7#ϐZ$ %`"j ؒ˃ h "6t  ڙ|*Uh"8K0Cjbj8*Q*Q[ȹ2ۉY(yIʝJZHVߩg&-0⒬tᇇ{;?.t3*:ɜy:|YZީ9\/,01q'ióAЈrTO =*|<# Ït RVr }v :"F|A-Բ|'KʊlE}u&2O7O9LEX;XOA1%GMB+B!(sዃYLz3ʖ+gRȑ{2sٰPv# u1U̒"{1e˶ B jՐ̉K<\꩞ kp ش99#= qAj/>_m͂^P;`t*; r¸J t?iTR P""s "!"!?wG>5-`:\="!"$"m`";C|4_IllA )D65(5(yA7}D.ǐ.H y" /Q5 Ò[۶{א*،ݩ6-ڰ Zn- /Re #뻨s/o/ W ~ -/<. Lm ur`8,I  ݙЕ-eKluhGUutqsim}! % !0)q )Ʉ.%2BbŪ PخL* (f.#g|v29r2ټt;CRm͒2ٙll sQ;QS a- `-16o0|B{U] =4OٞLZ?# ݇/ ٳڃ:%m꣠ vT *_HUko!o b.=uI:LJkf ѱaFVӃ%}2)oG DZO(Qe7D1vQ~QffOpp wʘ|71&Ⰿ_/fRDn/I//g ̨劚= % A%߀ ݿL \ m<ؐ<q5K%,hP91 64,2}XҤAClҥ> R9 `o*֬_ʒR44QTAsbԩә]*ɖ+M`uN!8`hR !p2W$e( 9 $8Р}6蚳ࠐykEX [%#Ə{S7๊oXoXiV{VJ^hڳb,Ơl0ФktpkPB /0 +BO:GH<"HLJib9_B4G4sr :42\>\qhnhFsVDO)à! $"KPBmQEu1H2 ŐAq(# ɢ"C2A$1|2&2-$WvV[ՠӕV^XC0bS U&M+"JJzBJ"d0eX2x4 M**Ǎ84v( ٗ}b ͈ǸL+$0訓i-"S3"oƊ+ 7ZCM2qDDCOOz$u<$O:IG2ZMW ,4:Ҡǯd"D: :Ht b' l QVZC RcQ(]u]p5%,ԺUMBc+cz9pA P g=!X!h5Y!`^!NZt] b(2=;g498J ʘŁ?#r gU7H,EdBU4Ap5fŏVƪfվOV1/5ʸ+/qƣHí[G!c`EW}Q?< qr# t8ڱs䚅d&ho-&9l!Z!ky"AH-"monz+&dԕD t2ʴٶdsDW=t-/QG?D˄T|Ҽ@EX1aT\W6ct.wqQ3,(TuMJ{re>`j1߯E~+B iV$k="- \XT -65b =l/wDGG:Jud1Q^hB: zTğ)g,pψJ`S2̨͘ffIS c-|,B#he2PyBUc֡L$l#, O "!bB>ZҎ~A$NQlF^'ydDo."eom9\ֶ.IpYN)t-pUwQULh^&MO4;mpsqi3~ f_JVU`,4<)vQ8cX&p`H`Ā!pKdhD,*w^xZϋ,,Q4-n:0 (&0񏛟 -,! jt9M9<-!`\e*NsUףUXVɘŋ?uYt41qlFCwƆh%m#?RFS%xE<#[jIr֐('[_[֝;; e+D"`d# >q{?>$= mcoثÍ cLr=$ ~2jW ̰۾SCL_ ap-$ o!?Hwy870@"?h7!1 @ *xc1s1@As 2HňiQ"*3*j5#H[@°k9 2:+7cPP-·*#mѐ3YC9;l+-j>,#O Z4Bd$F5ɭ)`+b;DIΑDѹ-^ 6Kb1 $aC?X>/ݻ*ZE/1U\E UFs(hW, 0 yc n7Zm҈|L ]'8 {y !Ϙ0 1^и?b ڨq H+󱖊Ԡ{'uxjx9jL9@ 2! qAH:oAX(G]dȃ8ЁO⅃;@MN1WcĞ`@RN}MN\N,΂ma6 MI,G@XXXG8X'#>bɀO{7b!?xْ A~ B;rJȆ;AhƻXJws? (^EՔ ]S0 5 \S!EҒD83uF, ,=]4G@!}Z eQ7S Ӓ9=mES<ڪ[i4 P [Q{O ePuq 0 756R˭pbF \U gW18XU~ o*6fE/x6؁✂6e?:p9Ù)1V_k^E>A`adfSD@XOƔ>[tWM6B #3dƑ>^ANQEE1@\W3jelR>UAJ &B͂P.hK XTN=dBTe{0?00a(xs?26⒊`@E7`H.e GmD?+~P 8N.؆ ZxZłmxm(vJ4ݽOBQD)=\Z؆!NEMم6U`)gO,)O ]Wy^CS1^RX^s4&nP6`pqm6RQh^ B&ws.?74 ήe?!Jx6BNaE7=[P c "[*)?^m[0TlYm!e1S5uXJF]Ǯ2?A}0<fjPYiJHeGNdH330 1 ^2=w{c=w{7VǰH Guw5S L^⻰ԣNfULh5Qp/ō70dž'iUʖ+Hi,Hrn.hQFlժWSE\k JX@h4;R0 08P8N8R8\3'^ .EjA8髿U#@zQi-LߝNn9_kDW0/m.w3x'kpt{e m,=_` OUn='?ޖ8M85=S̓]hL(`ՅMXISZUZȃGՉzAT,m!IR6D؆7wUHeUG]N`e.0,?`9H"gTu?7x5 /-ZJ4pJH2C/$ibY>LԨ$?B O C2h6!UES)DptTfn !ذkCRARjQE'h*i' 6BkBӧ`H#GOALGs,YәgwR ݐTDCtR޷wykYbm {St"u;31H?֛!q"uJp^Mpܱmݱ`mvPw.+B.%Q2Ty")TC:%ю%AU㐻dI)GCg օe xU/9UQQ 㢃<rJ&m"`Q3kbbV5qR2zZ*J 6 g6vĒd$[."8"61X:wÜRГVN `FqS0NXg,e10,n6pćajN0F1Ed!V',L`!"QT#6O,1F,%Uy|ui& ` RTƩf Ǟ UM@jbD] z{0?Ъͦ*ڋ%-i[;u[%)wWNvluw;sE&;G#QtAPZ.UmX*;9W<:S+ִؗEhN8ٯw 94<7=?gdT0IY!̳ XrhWN7#ŝ=q:-D! ?c"Sv_e+(QsD҉T, &6=t]Uq+2fZAůq`C4P 5, %# j!leOmY8T2La [zPSH5,W`HMbC&QթUyC*JD``kV`!EcO,)4`d EH`P5T J,m%cmEѮQseKHhQHDG7|Te{P΀\$+S\A+:]N4XL8D0YYXG*QWxseI{a#LXLp GpqwPMP?F+FWGvx! pb)ڭ{ND?@@>A^AЁ8+BqB==d| L.#<#Q|DșuGM 2ڠMETd싘9DpB&g(Hԉu xt99:Fd[ht_TXPSlT0JI4R MuQpiIDOյD۩@ [Cx4hxRVp -JlI-N.BXLXMd,_I,$F@ )VQ DpdYRz UqH:D'9}?]LwX/Y8{\%|G ޜ96"XGW|Rqf&-l{,"qN]9.שe* A ':8?  99bRK%G ]H ]FIȾ\ܙCDGyv3R8/UyrOf.榔gcC(S""" a1G GU=L+|3'x6(np:!ٻ%{<;yj*-0ZAkaTS;9D+D6B*u i;tp)tFjG95^NAaHOoEyETET𡤈]%A #Rk@9՗da`D|LS I&a~=vQF34q3Ca# ,mKY #8.SeL`DV؎퓒E\bHXH]傁 -![L.dEtɡX1~݊EM&MBFj@&x BLCpMWFRAV0hB 5V`eKF CQ!gXW*9-+G@e95FB$F`9wݹ=.?r;θʸ8?j+o2T1|prNT=h|SIT+n֘RF̴CbN{G lPc #…XE(T(k8uWO(U"|ʙY:2r$gHȡU5r<LEd#&5EZš6ŀj48. HG>{JC`MQ  LXA4vD` ٤E4OHJ`NA"B(tqm礼^B2GWuzjX !8` =\rNVǴQ`:΄vw7hߓVD׮GK<7͉o|t+]psH3p//8L8)JٔIYpS]ݯC`rD.4FOTAꍧijŝ2hCW@Cÿ?*lqB5\Ӧ*D9XC^ɺ8l$E %s;uaR=Q$s%JPmtT6tt?McwtbPDKVlkaiǎhGAU;Xpp y 5L,vQ>(ˠ)_I5Hhkd>zSiMUP8 :q$ 31L?B1Fѡ qL21! %^F2c4L u4%4̢эk^n4RGF=ZCJ*'c0F #ݨ _*RHz+?Pje˭db4fw*HB,E:BR, RRdG`w N D~"D AD;~$w'sZqZD `h3x)'1 h٦F3i<`D=8R׻AAN3C΄Dg /FߘS'F"=iu$yIFqEd,,{J);C&n+N/R;82O 8g UOT/lH1Hؑi]a s駈pBu%gr$R8`MZ~9? f > W.rxj+dDrzs< _$Kģgsife G&(JNÑJMJ =B ?ß1PT F,-NA`-I>d c.pF2XUQ5j!Xrz&L;d6H H&C@K(/ `$AHSȀ24ZIKhU,BF91M>Bi?6!DB8Et;=KRg:B܇~w/   rBB}3mlG U#[q!ğ y?JTT0 Cթ.94  O2%.(jS(A6 > RyQ-iGN!$q.1'b/!Rt!/@|'G8P0x/$q V'] RIll0k D@24gB:q,qj(`$V.Q @5P`U).r- 0x6o$ 0[ϲ0{¥7njB635lj8&4G|4lU06VjVI ˱<,| &80s,3N :\!%8b OfJ܂Q,M.v\1o<˲.SPwp'1i!kX"k#,Fʱ$>koDY&2]D1eb["Uo?b*So \b t >b!.F6cB}X1a4|B8oRQBb2]b bݬ"&&P V`kx%<;Fb?N@e*G R/Sv.t< I; tO]  ,WO 7^7^.s<+wQ"^]b.RsN4D7\,pn}v&ici p2i4%t6Xqn˖px}p77īKQq?C^cY;˸`8/W.)EW\'5$]G\Z\t <". xT5v`Vf,Ib,<Dp.bPW,10!O4h,^X慷O&b JlndVDg13h2C*p05.\rO& ¸x!blE+mBXw$,0u; ;Ψ3] !.KN XMP3sC "xN ?ÑE,NX 4FcA&nªҥ'ZCYEB€"2"x,,xyfCG?^DCXԥ)L/E/biόBR(ьqV!'=I:JA6JԪpFn)̐h^5G'&U6l :ۯA;ٓc!,Ab !:=E[ZEs6yps;] )/sC[]1Q7'kp hvi76 ` jc7NтqPiO  TtĄ> 'M&qA yZ* 30p˭'[0iP݄˞ P9˭'\!Cn,ht)4T,,'Ƭ!WG (޷̰zVla68s§TeO~1%"E!|ӅB*<6 @Y<HT"fS8 Ɉ2g"Ic#\@4B!™AG%.r =hx= BFI5'Z(2Q5ff2!Wݖ4/v,]8lt6 -!Xt'{9N:5y"Z!F!` ؠZ@{_=ۯG-b!Y ׁ={=__ׅݒ]qu]c;t,!q_Oۿ}$,ԗ:v >b(ӨQY8!/O2&T,b!꟨>O"U|_K!?LAj(hI9Ϗ!g;cO^pt+'U*ˇ.tl-lom+ز ُTce5cD-v kÆ57eSByʚ6)UF9jRXbcEBq:ZGms*^ȑRo?:;Tߚ]%3ɶQУ?J:Dɘ֯On);W""?:$[6La(!brykTЀp itS w:Xc56X*lB{*آ (N@PȐ*l00*DH%8qޖ\~!?[THz !_A:J)$ l' D矄a$DFH py^V >ʧ~%XH$Ƣ*ˆvAp%:t8,tWc`B+RKb "Db! =!EPഃV$?Lr̾ OO؞dRKrLJ gkLViiy]+6+$Cfɔkuz(a' W`З; SbYcdDWdkh!B"xf5nMl6ՁL;쐙 W\֨t=tgXIwp7xg3ȖǞʧ?@9}(Ξ-1h)wN7G6@ rd"Ѵ7f?eEqq걅f2Zkg AI* }ףJ*BNkZѓM!Ud&Y-Bz*?)P =? #Idž>E)ԣF-h|`HR+FWj*@ Snu+-JXòCh5C Ol$&rHۿ2#ܡ)b]Sf1D H0 "K+Bb/doY(l'>",]#_lQc^ yB^AG/SηGwЮ DdR:`!()nSdFCb)s`SRk\ ,kify#;,u@!3; &DL$\E,aaGߘ +Y@~yN\Nq3Iz /$o#2)h@PB\ؙ/wLCGNdf2Lf- `+ntXB%م+Ёa_j8Yj 2QZ>=Gǒ?pU*i$?*JiaXEV#:p9LUʥ$ Q]aW@j%9V9PtbLA!(H[]Oqa^֊eu.aؒf} mFh F Uvs5 ChԠVc UQmh2ͬ#kZStH O$3(%P9Aje( V9Y4HA^6#,ID4aKXa8/ a-;XfpF)Pfa78C4[0P:Zּ"ďqᏈˇH|4T'@#44p`#BGPIG^PhY@ 5X+4CejZe}++ߘ}9##Q$DE8!xծ@0hJ InJb&i FO|D̊)BKxS " hDTY߬,Zdfi1^\܆PH;bm%àU;6tAIA630g\r߅3~<߇4nwfns+zlV)b'^S7?HD6u/m;qƼ%ߎ :ml>o$,+j۲iϦ5()P0hh gf'qzʇHstjwt 1i!Hv%# %{C[4kiԿPС,Dg2Ij|zH)NIC0U"#g:Ox $X`ʪFU-`J ``X1sD**ӟ*"Uq1 :+ahY0s<WIHA_W#e 'c]'4˄C4oi|qp 1ݙ$2_?F$HTo$4$#QA[P[pSm1e12&!!p"pp ^0^ p p5576qPrĤ~ECaa j۵c$!!i>T!FbqZ+23`fQ6s:$gFd!;14C;sQf|(2V['BrHNw"iOLRM0 Sww#&JCQx>Hh&{C#tB0HgTxf~gJ *SbUZU]V0B`yrUWAF{$$#Q$@{{#i@+0>5<3/V/&=b1"r}FF!l>Џ.|',b7& ISnI5o0ErL !h[[ @H#q> 4@4mрSbc#Q rQǴcj9:P D5`p&hi70H^'7Hq ^d@DrR!&6+7:]N83A1mpȄb Bl%w7tQ!>hRja a8Fsn'nv4+.eazЉw{%.;\FrIP9Q "M4Mp@yӚH89[I~z@F}R 4%֝xTȌ#z{+Pdu%)$BiFix" 3>c</b0WXQd.3aE,_W|!сnr!6C&@13y8!J;UVj&!!-:\&7&SkP9ySݣ;k9tIKL[&M=9 J@ Y^/(qi`MI]ڥաyQMjF„CrDWã#&Gb*δ7Y𨏪0$.Ĥ15Q]87Ow]it#tSډwQ9ybc56C[1הz\cڲPMGN{%w{Y>k"$'Ü#h@P9(yb?Er7yR?"4B:@M??B{x%B2*<<٬,?C9C#N=>+*,Cl, h0M  WEs~2ˇ JL~^ 31.RhT!*v:itm`6<_SFz8>25~S AJm9 x0 Ӑ WKYic`pl^,f^YJ^eqaqĦnUIMԃ8_aId`V#9Ɇ4!_4P#"Gr 5jT4"G j|]'-Ox#?ټͫ{#a9Yu]TT  c#Au}3݁TxOU$?>6 \8w'GuB*z9l8g?J?zyH$T8p% XQxW$`j#$dl WN19B#b#1 P~2bߒ@ +/,COc"а=9^ Z%X1c%:>$-69GTS1fʵ\sWr` 1J ~{nn`pp#EY` FI-q#h/肗`pQ7U9y3PtOMF"PC)jj QeSItMpre ]!פJ`k6 |đSNh!+~$jP﬊N@+jX*tQGQ:*A#&R"m"9@}g}'vRgf 8i ʜJzB'[Ҿ[y)%zf(DrC2R%L?rW@$8pz'<+6r. D,C##8<='ch,Yh >B a b  ~ :!FZ"Z4 lrj<`=! Zp0qTesk2[2#xۣ,bg @ ^`pҐ0P٦ F`ɓ@K5^ m5pxS5QVa5ې;"2]j#A#-Br$ Kk*ֈQ LʜѴ7T͞FUqw;FOW")wG9b<# '+#{$'$O ?{9 |9C IS"J9GFrS?@1] {K<(B|hI@yƮ#!A~'P=@B$N+wDt0Q<+Rı2%Q8c+Q=1˂$[m00>\% 1X[6 pys7Y`3Æ׏ =DG:$CwQG]l\SN ٟ9R; }ىpwr ڠmک\lkp낶KyAq530T9` SY4Mm켭^+Ŧ a6%|f׍NvtiZ!bd{8שׂM :ddpƅ9Ц[1݇!w=/ "C$i#{'Lץ"GIO0ՀY @4B{uiC劕*BB|۸[BC^G}EBpcVݣ&(~Q2UZg40LbEB)2nÏ-pvX{ 1}t>ɮ۵ۋ f\) j^~dx~FjOz ]f(zꨮμS'zа^gpr;ȅ`M ٗ~v9q:ڏ-S05OK/K<Dt-sNLS! 37p) 'tD GD:\k!J)lpآ R%@c?A%(A"0&1F$4x17pLSxDD8C!G 3)(±;.|(@8y2#KC"3Y$B,&º&'<y Nc>ċ` k$YÚ# E-PIPPN h!8Dz#Ў>56pb Z)dW6ȚM H􀊪Z%*dv LjJ :+  0`;㬐*쵗 `Mb>6P fR=ނXzUR&#=Ј,㤔hc-co)Ko-֨ԡדpQFo!@DPC$OZ(E8a9B NθDڐ?*889\B8Bkb@)r+=:J:*OWHFǔeLӼ i:3_m`JBSIe"OG貆El݁ ձm,pVCFU ":DcXGCP.WI-Hip#CZU b&B/k 6؁jW:+)*MJ=lc o.ZT 1Mdv8Q/=K9L4.cYp g.+k~֙(1lfӚU$kFDȍ\'l WؤHpk(#ځO&!jrsxB1Ѕ X%[j;w Ԏ?p)|`bAJPI$cl`)vPN@A/袽/5.n^#INd4ME$O5WIt*wؕDҫ'?y*Fp,rUYñq>U1 z֯X"+ m |:+$D@+\d_ .j~1D`NZ' ]jEsH*Cj;1.ZJps!icqI* FlG rK\>"eEd3@zfidv1GG2+Kv]`Oˤk8s]x-d{Im.il{bnA E+G ղ&Q"ؖ7%8Z1usLVtMoShi'.: a>D=gQg+aVu aWADt rGQlʍHS2шQVDrCK'6ٴ.4My&281R:6+%)14ӂUpmцEjQ ECP!A4m,d%p& [GЮe SJm',}8.I=j"P]R?Ҩ[=I" v Jb_x }Z."L N8w A޲AD$!\Aߎq7/Y/i`G?. FR2ɚ$3D8=LFaRaôZ+( ok. @9,L:;Z m]p2t3l zZ-ND<?3 f{D9`TAyg0Y#N(᩽];lWl!3WX`ա!E8|sNIyxPR":Dl~"L.!$:JtL¢z yȝO#TQ؅IHwvs|d5M._C`}YͲ$WIXbDi pa"8NQYn[9׳v(\JkK-."<nC?0fR(a4&0`ƀHx7E7z 0@ 8G0@A7$ B#Q$8 p A $X8ABZB #pH&Y dȉV0K<0ˉ9h+J&z9y 1m9;Ix1AFx',H?1,K'UU)RIM@ ZAԱ0*1ůV8@ ʌ>4A=rࣺ (AA BP8+BH`L e*Ÿ9Q4l|ٗ|AZqR4H'cD0 D1H4!DD,LDİz pB]CRH4E2QO\=YuR'u 'UVi93L "S(&X@'F#xQ=Ș. Oh-t=@2HbM*%H,% \Y {)!m9njDُŠ"xѳwy=qt0 ɧHȊi"QV`I-0,/`*AԷTJt<.lS:K #=7MK$/r/9FJO@0 9-)(%(I%×;ѵ0,ҪR~<,18  %uZd쩹y ΰ'KˑQyߌjEDyjUAL;$Y)5N j!XO=AD3@LȄp'&\ƪcڑ` 3U[+8J8^+0ȻZА:3;VYMR'yDc,(VR)H|j5bu'3yZ-5 sNSuΙ1ѫG;&;]pճ˄Q[m4՟2щY(|=UGzA !:y,O@, OQpNSVqcyfᓃ`r<5Dۉ%1٢|@3. 1CJ[.@؃p{s]\\d~{A48mA PS Ԓ9<P˲TD?_N˴bx8PfJd "10 NP{ T3JJ(usㄊP>_Ti3= t"m6͕\= `5Pޠ0?-!hWOiOSEV!9zm잭= c4[lðCE4(  .Xm0/m@PܶRMܨ̷ƥJkSJ_f.DݷD5SHKBf7ex- ڍEݓr-P.2NE08ap6< DnMuD)#A`X]MRMxy;BT8utƑAXJ?)5<>ƌ3Rhp *X:D8p *UΠg[4)Ϥ&Nb"ƌqI mE=1϶GB(=zDS`j|D1ITLGHMBA OɎRGN&FWdsۿJ()RwvgE nx&#N !blH?1͎vx泍)  @UN.?۶Ww)V[zi-ҥz׬] uW\ML6uK_߅)ڷK:耈eq` B<4"  rƁkTpDfqǁp'+$mhwp++ Uk7ErLqwM`CI9D33CX_|Q 9i@kY " s } (@ 030zON NdiZ?8с a " aHdk(  "O.19{FQYDeQ\AK!v0g:C?ђGW}!ՐQ&5UVw$bU%տ~!P=%SM5 _Z$rDƒ<Ƅ=Je1!'>&HeeT!jctkNKI9[n2ѩ q)\sm{W\cyױwz_O5tqO_j v|`zMhSៀa Xay[?+b:XEw1VX)Yb,^ Gc6Mv} ʒ5wFR9 Ŗ^ ?0 2 j?&Yty#}_~JiR(*#?gq;RZ(@$ U'BA,b1KD/Ph)`$f$S"gY" 1"<$.4bqQdWúdīdaxH#ɗA?c_"WO0L\:$uUpaHЯFVļ8bF!=FF Ё.W6 rY+thD@ )ɦiR$%sJV2U$o 䐲9T7lmpS[ܠ37GPiJAh MG(HLB H K.tLh! ŊPtDD4~  䄊BW@ZC@~l`Ma?).|oy[JD<1J ( @p jJ9ѩN>OR2ԠPJPOOԥ@u'\@0 zHF29)XL`Z" !NEJ&eWU]k" ?ӀXCBêfbR)~ZԅF0Q+}(' RB0\=AX Gq a+\ V,`.n 5TTj[,F!1|rPrV@ >{&ɈIJr}$6 `C HNdj%%r\Bϡyҗ%)5*A[+R+쮿 5k Z4:nrsCg5p(.lRég๟t"ԏ4,3PRɠUb?43͠z@,* k\%+Ow)4P!H9S,-M+ @ x70Vp-ɥ+8.))0qqBT01)pK0,(eA#H(FJ[3L­b!Au4B&RZX %lح\ iX31G06ՠ|źHYrt-0p H >m 04Ip0w`Du2b7 ]N*X9ϐD8} L4L&g);єJN+8vg,77ND1~x?ٹN?ylT$rl/}J9nCQ%1juZNKJ,}$o*4@iIXWXhwP1 ަXTHi Hm8"R`5섍uI][bm h a(XW~(pZ̊f[2Tb2^ l +. [m(h !`'xKŠH^Hp6i_yNDѹmFfHw쀻jƼ 0DB,A,D  @ `uURt5o|)M|pmx$ oTRqd u$h@!܊X0Ƈ\\(HYDŽD?pGA҅FdGwEXqv䐶 !߹ElfPDgx- g-Bb4@jțj%wRbEt6klBCXDTs١0ޢ"ɍf+xy\1y Czpe-6ʖ5u0,VEH ȇpҎʌx!wF#k NLB b:QNuzFur5H8-`oH$!ͱ|4 c l w!?Di C}I@%6`cx'0!.l8r @RĞ D,C,*p2p2o%W`/g Wn.3SbR*{E3v85@X7h io>CyMj9GSl(stS2xLD9k$}>O0uзt#Xd8fC5CMEfOXM5@@Jp-Ԛu SM< ~Ƈl^dc5 a'Њ5NtfANDgDueFhqZGFUOS(6\uŭ(l9gf$`Q6j[5FIh8N2)֙a96 \+dƹ HeN8{ =($+:4tjcqƔj[޶)*ߩ7q{np7r2W XvvvRę72 TvA27q=a!·ޤFzi>x }||+| ,3s?F0Q$N\"D tЯlNFPA'ZT@4@ E4ʢ zΩ=[(xyzY3lz[?11yPpge-)9f?|F((2=2EDp!Bx݋u)p񖺭搭E, !*%MgQyam[K~BںWlhzΈzc>b4t:Ld7> ֗хBS+MxzjC;+ "7ErpCʤO{nPJ_"njFŸ:%wGGx8~Ozay>۠o/@g =ze„>LH? %x"C-"#6\He˖3f3B(0 LP!Pą @h@U(+@u⊨)gQʑcǿ`Ut$&w ead$N&,F?1 S-W`&TDuX1\GkƏW!it墖;]T]DTO`| N5[  $_PAk>5dUHQAhA $ qQv*>$?K.lh5^\#Ao=$1ƠI; ȲK -*RRN;( bHIJ4H؀@UVQ⠓.RIR$L #,j?6R(@ (4?pQ!TX!5\QbO-J(@LE\JVYZٟjPfIg""h Bj+8"d` ͎8;8I/)k#7C#49kD`5},ѭ)\ F{ \tb.߷J?+OBĐAN 8:GDpk+,$ $\[1L%Pn\rU&os‹wHDm]q:l9<Q75J61Hl^#VqHJ u1*2gKؽS.{OVK;,, "ATQuBu@ BMU8T%?UGUATQU]/[{~^}ͿW|%iwտ?j#!!HB,X f $[,Q@iI;9 PTtwv@!JwSmmgBB^DGaYe b{,3<74!WvVdxCF1 6\4ӨF-=SMXؼ@dkGM 60 M^v7r"#7NJf$h{u$IT6 \AShQi@hJSn- eq]]ab, ING:FQzHJXX%lveݘ%2IM]W`%u2ޝ;1OK聟={*#ʖmnG]r>TRp1o}JAB?-&'$'XS @u=PuoTYQ(&{PA8T/mMYR^CrD m8e@)ǘ'´@oYN}D1YI"}Rm:`󁟹hIfmd3 Ѱ , dXm kqp&4B0L98r UhWmmh :XNӠFE$ .fOαUlw!So[IUiHl3 UXysV&3L@RX5S Z'ߪ oP=G i<{b$>eYo}ǹu W&Nw:*UDG nVFN1.n c9Us~D!"+D̊I%hQ{O- VLkj ħHBQq砉a]rx!9Uh,Hgnv)X5`X&YiN`\ evsrn;!D֟n\P5mc] dfqe`f5LP:]#H53lg{u5qAG&_sӸ6©A$Ңc @U;$ "]霐m) yP$'NvR-+]+l|R Ӏ`y/q=~J <\M.uxT!Ҍ7Oݏ_&/|! M׹ԁ !WJVGL&$62P`*$%kwPIX]T-|8T (I xDnpۣyxybgϤK1 wnm`a.rXs^m6Cúӟ>Ry?9JfII.[m:O_9< uK~;+|rjftt{>S?II66: :`C sV4f%"n{76n:5@IHtdJJTG$nf+"P%n*\,6*k@NPx#DyLQlLĢ*u*VrNbbHgPƬIzGGnz P`f.fd(L@ Fh`,`-\؀J ƯIȏΌȇ:fff↤@N6GZV2sbWI :GBLĢ* OtƯ1 d~ :HhRdRf~į n~$J@JJDIejm@\-Um\nH0ok@k.zaI s!%R2KJiKv$! KؤuDYKK EO0'Y)T*o' yBL碎RgƨxG{LhJTODOج'r +'l"'X˼e.2.`.Ш%0E@*|a@ ^:ćF& ; mc;:fVXcl㋊ dZ"YG`nè nT}|~:;a5VyVųk]NG7-B$*~p%U65 *$NZ$ĔK=WW5>I8.LJD VMG`AZ?-<1 " e!^!K a1e.*%>nM8CvЩuڤ`QPPDNdF@IJ_4QJ|x颎zN+'sRQh[e%DJKgG r(R [.)D@NE0"*LAfms`懊mg:z \%E$D%$$.#55@ ˼L~Pj[U ~|tw2[<PgtV<VuՕ\)/;@@SHLU<\.y^l+QJ!z]In _iIMƯ|]B<;37g@^Կ8..2P #+W`M8c=dOPn%WE%RiOI%n!QORXJoJ~v }R+sNgO`=xgyJTVjee4꬐Ǣ΀#jYnH(.+Ж$."t^6~Doր E w5qx5g TfXY&r]!n(qBXR gÈ6pWJUg wJJ99v,!a .v瞰v}`.WƎ7m2 wzzDszdW tvA(QGGuO9 Qvuf RF92! 4e[sND\AS4ŨG mL)NuzPaUY9zܪٚ;yzy,az/ܮy{ ~7LuYgcglsΈI(^7ٗbڹ.Mx#-rY\&V4VD]0dFuڞZ ly,PJ)P`7nK A?:zJt+-$OiyLNP.GJiJ!@xҀLJ.K\MڴA Uf#_52xHԂe~DTMQpSH5Ţ $"򧣆rk{HY֯Zk'cxzTOiTAܹut6[fB$hJd5SߊΧu!3[ěUv !?zך<;~a6= (tVi gbWWn9cH,aDMwCYӶ8/Hҟ;B?z\r ` 4iGևYz PǂUgA+<=%dxL|\ d ,q:V6Ox-LnL.ݴYx  q֧:Ң@VGHo@DҦ6]n8wt}J7ZIA% HIbH% ]6_cA &K.*(%,`ʞ$Ly+}PIJ1m,}^U YvWe7C}Cҡ\_˞ט%:יJ 79 D]lzE֤Os0a aX,⒊ϻ9,*D;b$ɝP E%\`>_cajMe{'A<Ǧ'@<Ȧ%-**B@V 0XBJOW|JV8R1ɑ(?l(p?'t:餦Κ5;= 8W * T ͿHDOZiz+P@ +H,)$%[#;@;4ddHA(3"?:4Be4#U"Ōqmb:zӁێ۷ s+AhQ4bBSqėJ:I͆v,lfå4{5n jyb@-CЀ5pAsA T`<HH? IahW~5_!`Q 8D1h?aR,#Dc8&]CڥdK*iN!(h ^zcf* XP4KB:EH*R+ CI@vGE&aRC8*SUOJjSP&uU!P]U|XXaED ]{+t?)bl Tm5Fg+Qe:Zf"lr:U,{mpqK[bCGqpua aE|| 4}0v/mfm%+yQZ*M$[<hA A5 D ^PAA !.?T4HuT&[5;lR7ڨ#0@v ()&IJB}!v evgYP# kZ @&Ӈ#b}i'uR+4RoqpN?ٚ zwNQcjQmU;AAپ)*VXf,=Y5 hm#,-`LZ{6yn R1IN Ǖ@Lj6`m0\/)cX` {AINefbӀ *_!ϫPUtg ^viYz؟?0T%AL|Ҕ fOGR4uCVQӸ%iqNb׬ YQfV-gB r kze6Q@fO#(PD"RC-HhCPRx5$YoĩMJI!B JRlgNx<i^::8A8TbC`V'U n5ʤ jw;,c Ȳ@l){rd$ +a/KbH EҒx18Òp` 'LoAeihÈH$0əMZK}W~H`-P83IbYB2Sg qU{3G }׿%/bx8G󐑖#(`#qӜvD wht'C~EDg)TJg)Q1&?l/X J kS,fˆ둅/fK+M._%5;Mb[6m?l:)JQ(FIw(*(~:k:c'K#f7a (Q NQ'W0-C- p0'' 1Bs1?g?*<_+X+"+F+A,eDHdAhH3[HD4N QWUVuvDTuZDŽZ6ufujbT+`h%WYfxFgiNhEhawHuNxC'^n8DYQ#{fg!iyE%'& 8Z'@:؍:rD;0(`q4"- ##>ԙ[a!ٞ퉑I,Iq׳+x C-pDP4IAeMW4jzi# TKPz *Y.fIaVh*xIG PdQv Ax8J8'j:Eqv547taI P#6jF9D%+n)\2)93zaKDT૰ؽXl]%` [лJ< SyY6V\[B4"_NƸEKC3YyW93!HH3he}uOWazvI!^CKkfғmfZ=4w$f+tot>@;ﴀƱ(@CCYB":'ůE1\oS2Bd'3A?34Kui`+_jMNUO /Stj=td5  .LHp]BL\1ń%jDPŌ҈#0cʄ)PငɳOABQ7a(ܹg+ઓNRQ@@µ "tm҃7*} _G kYKAMN sjBn官xj[rRo9 1Ύ"26kNH㟢@bPĈQoA;ƴ @-!:$.r>:;,Y{ǒ_ՃsAs?֋n@ΉXe  n#XrpXt0 @Fd#6PX1b!KH" ?zc1A+l* !в6 k6k6 ,M7 ,(N hx7SO@$4!."H/ M ".B"R5+:褷.}% RɠdiUڪ vꩀzj(r]H"Š'Bתz2dW8 5)z@Gr.(eF=2ji`ܰ},,x-/נLk0ֵ )RM]d#b |#C 骫V@@!K{=;SAn ,1t¸2Gk qHrCq@P 4EcTBA?~WfH(/t!(dq΍L`xLr9EG]`M=O\(5Pؤ#*/Hz+D7"Ӽ jQ\JJuјZG.ZmBteH b}ҩ\fr_ g yх O(n)Mq+\3e01rd".@2*BBÐ |id5+vE A0 bfsp 0"qv6Z1.֤ՐIL2:V#cm!Y "ZuXl=PĈ&9Z26(r&6hd.yipxCT V$ 6@OZ)ܔ A"QD ' f_r$]M N˄ns..u̥RQ_o"ݲ4uOeS%JE=U SgBQ|eN+8'Y#q` 0qJ 0U6d !_HR(f!`1`[` 22`e " Ikf읅'\MlҡQjlohF14 Q<-3"CRf$1iI`U?il`g;MѼ5kgEڒ9э$曻Blk5ME,rqUtO "Fɠ+0)AkBYza4"m:uRVaáQKszҘ\Ӌ#.'DOsILd SDQ m&=y::JR([K8,ApfF+,0`tT/<.P&6 <Lo[%KG ZX[MzyA&$LYje~l=wj˚nz6 OwfB]TļЛۀjn"s¶'D\Qݵ3؁w M|rPeiJ$=1ؼ8ĝqN7 h8xW Deˌ A| -= ՜fZ=Zu2: $q:İ;0Q,ؠlap-nTHS u2݆F ^5ۆKfSAf7Y̊ի- XubZҼ4Ƴ"R̽9* ý ( :\ my p@ܛmAʦHP@jt8++?q'G1h'ڊR.plGx.˩ȓx<]>l{F ԰sP XBs#?18Z7vB:§ZQ9Y‹ڲ<NA!9TJ%*2&J4 B,)TJ <,i㈚+ٚaFx;#0 ;)@➄XE[Fjģ 0|m5q&>ؖodssi|Z?1H荞b0 VԷĹ` `{=H0!弸6r{&xH@ȍX(p 슦̀EYa{bɱ7|ъ: #@OZQB:-Һ-Bstңʂ /ԫ@q9$K) ٣V;|ۊ >K=C$%Gc$$J?ӤLL̤Cܬ*XkXGݬHmTG]nj? 5*nP1$Mté!*:2S є< RqOCaH Fx X֓xVNa [ Gx5m-'˴D= +) UrpEd׉WI[N8=WBqj;80\ 8о0@"gȀ30 ?ӷ{YKSUH:*Ѩʎ!$(K@-hĢMY_ cR$=sE#Ғ9ڜ+5-ӣ=:K,RG.D).QE³S==$қT)G,P%\8HRPkXT!T?h$H$SN %Ra9`TkXL9h`5/OKL$PrE'M)aℝcF҉h̽k=Jl@ FiF,-rX@Yu5-; s@pѥ`yöh^sӜ~->9-\(th.f%oXD n ĐK AA ЊbQ9hYܣC::*̏*c9\ZRI0ڲ\;0m?0jJIIv*VS8][/\ѤɹLHBIJ$y2SJPK8(BN;H\DVR@D\NQ[6$Q =p-$PR$JJ]kD814TFeC0;CTVu]j!# h?y{=#7(N Ɖ ^U h ^  {0Zh4l>KfeV_i8<+o%pYc."p ؉ -[$DENlYP`+3h!`Q&Fa A22K[M""M%U+HЕ/ +Ԋ@`hEzb,겼 b(<2S4딬=Tc鑺aM0T̒DN#;@,;(;8&R>1\v]NOsAH>=gz8AHDa᪮Jihp8`.αp^ma 7)6YM!XպѡbXy AshI U#-Z f;:,+5S+-ٻ ZQ[K<,{AADBHFC]Ť]\FFV\ASO1`F4LDKV5rM^tSL ~e#mAY7m\nx̰d&K|6}Ͷ[rn~unܓva pWرփ,m]qc؛  Ŷkoa=ΡWYNh<>)&a &=6 {56t֋b`J91on n z :AvVZ᳘/=da(3)k!9`քR8(,~P %"Ӱ³/d0mK[Sb*kWR'M󮕳O{/I,U@¡u$LWhQ8MV;uǮFv*ЬMl=nL5N3uŸNUf|F6^uZτYO1OژUUyZFeS"0v_B6 >)jgvql ꥟X yA e @i+&^}w:PC4 #91TKođF1yfP Z8^P XcXF @"gBHJ9^cY$DD*"tBJ4P"tj I$QEQKy?LL#I,3d:%e]F6BsTUDp?p"XY+ [{5P_e]%a ٫}X[ @#0Ŝ]˓gaY Ș#@#g"aF8E]< $YVP% c#A,ꂗ OPAH dQdAB2PEO! l48/#K,`M)A M:XӺ(pMO,A1`;BPA[tjh"R_0d.#R F@DjA Z*%d`KKbd4 I $Ii6@cZI,!4Zd#CN,7xT̈́3 13!#Edѐ"C*ҢKbrv5 Be+\`!(S{< *C!!)f2= ⳃc(r C#UT; uD摌DlsT0?R'&J:Ux'&2)՝lS^FU`Pr %&eJ"('vAڷ"RFgT]Vin1*V{5, y௤7Ϝ%"cI U*Zf;`ʛ0&Bn/~/Y C-\皑)+hxm'hXNzԠ$jtrIPɣLGY7qCL03-4h@QNQǕIk6XoO=R>mp>'j+sk2k'@`4@)]TV"]8#}&po1_ \@TAi}4 Y2"OxĈ.4ź: KF}8PngMV1Tlu~I ?8"W&SK3[0U@,S_Y@EӒT3"K J@Rfh'!Q7%-piE#W";Sqa}F@Dy|V&@51Xd$4N47:ew4 LfN#AVerLg6M!B@ߍP3V@-%HiFٚ:X<֨n8'Ek#pYc}F\ibwm\!-fxIA-sKH5ϫ#n唯}]rrjԓ Z#vӀG LL<$~5MPpTd -':UN~Rg.epOY)qDh>=-62mz2ur{u0ME\?P60ƙQHe%fžb0WKҖ`?O? r||g/2v=u|rM$F"uXf\dJH!j\0 FO,bin< A֬ Ăj MioQoM*L9NA;–k9~&a+Qȯpc%wnk1kw؟ ^^Q 8I}ƗE'A6-$Th\ <T=g9}T0dII5dAkC·bX܎ ݬ0 JF$hNԍQ*g~dp#x^]?(sVBV}EXEWpU.[ RXhJKPAҕ_%j>!!f)E͢Zںmd걌D)^j@jء&ĭAHf_G, ILQ¨Jj:4j'5sVxF4 **Ĵ gVwlñuSF߶HN(Uh^X7pW7t0vPcK։%Sr\BF|?P#cHa$eا  $X6>`~O}1ˁorH N\YDTDg\@`PA\5 .5TJ3l; I$=dD1I3 qFRuFg(]UXVdaPZ^B0  =D[G3EB$Q9P>ԓ&qjAH\8b~ m:KdՓMG^Dxjɠt,,E7051EtB@FtB'$?Uq9w.sB&uRpA.yAu\o{ğ֬TߋP0RtmWT^DvAIP=V,6|@C|>~u6AuFHDh+.;hifl+,r:Ĺn:fSD5iT5%Dp 0H1wQr/-qLdȆQPг;?EJv[ՎEI{ Ű[Ϸ֖;DT1\Qꟼ< ;bQAZ p| '`A .pnf3KvQ?L( PЄֱ]Vpjs 4pϽn~:o~8u X`?-=xy,PpxW \"b.X6+G@C@ "@{ h DNCLx,QOKC _X *8*"4!Q3| ϗ B' x$rHͨ)}Cl @`f/4 q ssM=KS T%HB} H!,:J\hӌk@>D$'VQboQu;1X :(`e( ,Ɏd m#) eFxx3![/TiQ +ZH҇T!I%"HTl&h K @%e]):g Kt©2V Q񁂴 rP ]w])_("8EAF4`fl0b!tS×=eѡ̬#2X(sv,fY8fDLEYFQ/5eY321*5/4"Y]$'@΄@3]-`C両iiCii;j%5D($C^c?Q V0ByF3RDs&< 4Y 0&iJDTDDOcNv`̡p7fQQyIF=*!ϥ#5qRy2%9؃cz!a`qo|% @n |)$ +=WDA 2DW@1|«HX6pBઋ]@D  agӻQ-hI"1L! eV qIb^8q>Qfb$ˑsC%4s!_S{jɘ5g7;HgᕓtI7nt5Hd" k4՟l:zGbA*7@ jBP ap_@@V@_1%聄 R v1)H1$+ Nň zdiI`TfxyW( a54RM<Umԓ̪Z̘h3S#0'Ё% $@^d-;7f pD T5 v8裇6Ɉ豙dR0AMvj AG 2322#HKfɸ$KK$QΤmPɧ d "܃4oŸD 4@&Lb(((%@ÎB!R`| pBIBq~\p&EcMM>#̣^Y"(PPh'x."j"(&&@4Fc!MVHjcu%]2ˌC6 bReê:~,H #.BC_#= @_aW 8)N }'V"^b#x=Ú_EYu||!!9~=(dNCMF/wmBɏcGdG!7&/pH4p8o z)F[C'Mg'MExR/0o/@F3| UskxnD=zGBkfA28ЖGlădO T76jSpIW0 @ A<6` ֜9+ .slT# B .h00+^Tvb3;P#U;8dhI+ꆹ;~dJc<6= Wu#|]`۬ù<1(f?OۦjlkG,kD<H75>7.*I%a(b1aֵ #!v@zMQ9*87Vd^%S]1a24>@'^xn~gPDEu<]$Ҫ!f?!iuĊƛk4lvDm)܆z%@m"I.x]Ye1X9H^qxr]ό K3\e3LYx8{HR2!(` rߞ=;pȃ &RW_0ɋ> ?SҨ83L X4D8 bB=' ABXN8ukRB հ@- "t'O[/ Kx* x,DPU|*4@+Qc5Hz+@{@-(@eo+B rlPSHX&~fnr&`‚+_A>X{>Xb?)R#@?F`=E+XTO1\J)N$$`G`" "baA.ы:R_IE|D"|/ODT4t$*Xp + ZL`50+ A(:]Rq/ `UtZ s,FeJ chfBN(Ac:tcj"(PD(0ID"ɍZb@3MO8IpH!rOF5j @lD^AHnɑ/nmHz"8$zIZԢ -E)2\\&p3μHۡDbsFLu)uXW3YSLR8M3]vx7S j`(TPZ*ld1 QA=8Z 8,JҙATOp)")DTxG^_s);a%] R([ڀL/”+4 !`\K` ƅ*^ Q %_4i08,6$ hy@ȵw"#~?fSPE-jd@Pgd!bty:l;xIFBlfg󏇘Ӡ2Y’e$ Z'M}1|3waI+U#XHE/Kz7'A[u4?R6]0]ՈFX\xJ41vINzc0$纬sΖ..LӖ$(iVcHa |pto,:P gKSe Alh ێܶ''}E r8a B`0,Iŵ D5+L#@5& QbBW f 8 j5 @ DM` Dᘢ;`El@ 0Z9RDO,='p4(Bh8Yp!2@ ہb ETre- zq:[o-scq1nF-xc]egCΑ]%Rsz^DD--ufF*P(dg[P9E}T=@-D {H0PLWJ A_*V_mZGxaP+XKDOUK6v)FJ"r34)Kzӊ?<5 TkZb` 4jwf4P}* "XسTlxQ !| |@f:tNU̮lQuMk 䶠O ]^A#k-HR7KcdgOi@h[id옘dm²@>qޏv܀{\V2Ey6dYmAY)w3u}fL[LT9&3d&b_^ d;@$3p`$A_0@@Ps- c'-`@ Aa0&--^gu0=*A"BxGxa3\Ӥ(s&NamEg.DO]ugqQO(%waIyQ1Gfd/2vq7e[&.T5ff{f~/d^&e r6UC2W.,D0PqEEWTYElEG =Fif!zBI&3B2ekY2l6 4Pz Vf1%!-"m\QQҖm?z#<]#]j597%$F:X%o#;`2_&%N&c_@@ c D' p*E3uOFkZ_Ęk|13b+6!'!1}m78i#9B~#]؅3nnL9tot_Am!c?0ɓ#a!(XECO-"xS1.Q@4PUhhfe+LV@TFAAeAO70(;N(;7_h: AV)ح"QO)UHIbC.Te.4 `ϋydKvA5hs?gD[=0C".>- :e9 0RAJQe-,eD.l.2F%Bj/QDGU(:-_-@?zPFi*2Y*-iߴ'*BAB=(=)űC+ Mĺz0hQ#է*RJ\I#d \J/\)5긐۸YeaKyLFcUYgCd10Ⱥ*DOTT!`g/=:19SbQUPd|XKdQ8W-00AL0G1PYgދA:+devfȿBfCzT>eMx3elVvrTeS8BHh͋G1X~+-67*,e~T-TRbfufQr4/;&$HaB . !H +QƌnX2bD+L/ʁAS@4_y91H' x3B0$yv*D(:\ ( RA]"`?{QwA˃@; 6l A(.\o!+.)_ZT`  +(#p#!Z?xl4D@\,Eomx 1>9s 2;/:6a@ۧ/9~|3@3ToA NH) A 8(H?$H"NHhA` Km VK5}-6dW\mm.`cߖv 7c۶cS= ټ*y= (0?@ ڃdP?*`С400AP:L:PEILB8h䚡R H;M@H;ɁdI/Ĩ+)2H1($0O@"'qlTO|DN&Es]l G/CX:iXrAi-LN@>E@ yʉۄNkd3׆4VH%GֆX xs% n^"XD N*`IYNJΤE5 IB޶%?]#) b9l24jeת @JStr+Ƭ%ΊY=+^0T D"b87Y 7 ;}`2cx&d<ml Ork1h/mU}޳:TvPwBBfT 2V,<'Nou ۆ4PiK]5peRįpX Ӱ$$[`)  I0i4 !hQQbS -F@"Odk\CuHhmuq3z۲MPm+Pt^ 1r5 5ФT?eYr ho)$vIh>5~/e\z JWbZ+ h+{A$X@/K,do}xf E3іb|;6ݾ|ebM/ `;C#{w.$51B83Iq ^[-XI谐YH019,!)29A 3K5Q̂=[ "NQY1)q;,#/ABiA:IKk2- B1z #a<, sIA5Њ̻\qIq"=H HLMMD _P8>ahch6F` EPhCfryQ'} kF谁ipksn8P?ɡ 0xF@ tG,@s0N$k8\> @Aːh@,* :D ;)9K!3E :MS4ɚ9:BAY4z4(B,*I<>m,39=!&B39aQ#1-ٛh XHщК?Ĩ$A@ Z љaj߲5WLNo oDx@ E\&LE`ރEUiFK`(Fia(IhMlƕ (L0 9 o1@@DPrNpc=_ k)@C, A%HH2  !̬C7b+0",0iK;"T:{43H9;ݖ=@uAMoAHm]寑¿z8|8u > \J,\ΒTPDH&;Dd!ːLO)\; A|H'!ъÉ>*09!ܟLE TR3;+mWJW ʟz%H$*,&@B:¢ʐјЙ 8䓑[UU \K+RD܉&a E *؃L˗R/R*x[d, @4`f`K6S.U@ejڄXMkt@E>Iԑq!)ZaTJ q!z [5x}$-N`Q(KTR$Jv4 T'F\\V^$K:D4IA5K:qVݷL׸j]ANI4QCЎ *ђ{0P }.)ʬXLϊLq%WR:D6DCn-C^ځ@QS@X . `rbd2=LR,?MO SLSY `fف`ӳPͨUSݟRM z¶FZ fT)Z)GU옠"!S @NP$̊ۼbTFUo$PX ASL6V;:<5Y}Э7ósзW#$)$V{ݞh3<d"K< ?RQCGBPXJILd 9eD 씘HPhDVaYaJY@K]e.R*L  l>-`&dl&K76<Zu?p.2ktDMQЏHZ/  9 0}FXھJ{n@%!nN܃Ӂx[Ķw) ЀBAG Q@H2  ByA:+K0@&V$Ad oƼ ̨ a0FΏ"?svΩ`lᯙ79NuA3L>պB˓`NL#=؃%B,4Vb0\Qj:)N&_^+ )=9 2ppݽH+ B1 SLR,+%L*4D/mLI9J%% 5OYYk9ݪND|M c8@@-@S' 0a(smr(Z?=w hC)|H MNfNfQZQUP?i,,}یҀ)EVY8Hr$A4_2=baDwD:CBױ`9Q$Ad{m ed0)F;(@4Hs P(NOd!|WX؇S.~$!x"UҶ$ F$&@ LH{80nY *ض>0V&o&/,@i~2w,h  M(`PĈ bC&nܨDŽT!,HH%d&B76*ߨ(fhB ! TfOSPP 25BM$]% ?3VB` #`‰?N  8K]kVȥ,Sf6$pC Zg=z.hЉ380WG(VFa-PۿQ/SXjר`7^=jK&oVOu W7`y7]a7'|_? 63P |A20ه 0 @@!(CQdQ)@DT(PD\DAB @+$ILRPY+P e%%f dF&\P@&Q[TOD5DݩCay(Ē2R #M KPCHQԦ{@{ab'lAUUUtjBTWWhYXrf^|q! x]|i@qem wAw%DkcbvXڊW/`w\V%s,uֵ&N1lMl`qZ piPS}V-lVV/xYAހu?~!P^ !3>[}4 )B5B7ꨐO UT|Ր 4#Y)@PVdZ4i$mc _nY&fy7}f qGy MTQCA{oI#@JEdnA,1JB$=ɅQ@#jxU D2*Sg(Z5 ŷljoXXv`0@ o~FeV8?|UM09`8H% VB_.'11_YSb05Yu,eO}&C>-TA7Ђ مt!̠Ch?$h Ha1RBn": .P]kHVɭp-5+|RHL%Aލ tc$@*qtHV"5bX$"+6JP&hK[V'3JԆu"e2"Za 5\Ȳf (,ØjMS-z9A gg_vӈ2)-B2uֳ` Vd#\5g1F{8 pr,0/:aroGp: [5o\ai:jaԎi~ӹ祿V^ MhRp!LCP9dWjҔ'UEbXi8*X=BkӸǯP#d% A@GHBI#x3UyJ$îզNN3C49zVLT\\PEҴHK WN߃"ot:SmB ar kALIB LBx IdӤI,NIBNAF !:NLN(Y1N|A Љ*DKkPEȒ/\/`ՒWp^DẀSDT@x\A'TO]eW "WaW4F%cG׽T||ƶK\޸&F5*&eEETF"."9XVț5/rY2OPyD\Pm4n#\)6&̀Xɝ\ (ĉY)MDHW1 qB !4#? dݼ`E(Y ]_GGd]EhEwgHHJt@Ȥ?hŅg,ْ@?9|q(5W,.AtS|%e:=%)eBŵhU9Af|# @aP<8_^[!~[nZY gLp ^)g\\gG4T;6e؁'$iըfE$y"DDۉVB!MrBdB\B*e@U \hQJnB|ESćRƘ5jT̄QT,G!WbG!i b Ny$)w&bxh$F b(_z` qCFRr@Xb0 F Ai1J܅2"xdfˠ,=d洊Q b2Hjc bf[[ `FD*mk;)%6-dGJQl°ƿ%&T-b)qVSL쪔,+l8)$˜ ƩRZcc$D}TQYVp՞e04g0oUV-MV`sXkm 7-A-eug$' 0:'$=C`@I8aDJ(ODKB|,fJ"nV8$@Oh#V@iȅEST%b9WwFLŲȴiZE,%a2`׹):=R$npBQ3vFCmrJ]aFƖ2abaF!}2ii{fHtΦ/P݅9Ն >T-0ER|'4@5$(@ggCg6h>eӭsByIF- JCBC-IZdqf6牏j0J(CjBj.nDE |O)ʅH13DN(jS-EL%' ~EC}(G}ak F-O|FOho}b,tlt5ۅI,ab)-J'$Oal ȍXv[\Q#~>M@}2($ @$@TA-BD F0A 0?*ĦQQCְh4ܣDU"&EQ) p . nK  \>EȢr&N9,n'HnsNksDAI .ѫJ4=*Uu,|׵eW Wт_p2iSZl$`3geM79_ prC|\֑ 9эrA<:Թu1Pg<{,eʊ2Gf4nƳ-A,3D&d=-YNsZT|FUĚb$mkaҠW6IJֶMIe?fdLf@wqt Dhv@l"i 0-@NAJ\R&zQ v%(GY񤲫caduayҐŖձN)I[VG@RsqZu 됹-|$Cje C9B3>jf37b'^P0 h1̀ bC|9&l,;#\YCU2Ր١r(!q@ `EƴdD_PXHm$ikZ"# $uK85>I%y+Ô&:1pu G@*l|:HB%ňr¢k@*pd L"X&(7uQ+*GfRK!^RRV+L[zPն= zJV4Ȇ[Zd8%#,*9=C 5ϛ2+٘8 :Axf(BUݎ)lÜ!HA 렁d+1`XjReOsEԒ*nT4G 2" i J2#K̐9-U$UX0YUaSʷN\H!c,v/0yBHn(;ImgmR>yh ߊo,v,ђ]5,\ j8-aY]R.&•4j͕.è&9ۇ:_1z^r\I Ts F8ar2L (uGbt UuKCD9k/ lzPD[KĒJ$Q`5hX|t1 mF:ҷ4VTtqSMT3խWVlB&Rr Qb2]\9ʒ;V(HZU4E2A≌,h*=ne_;ʚ ,#R(DL&к8=Ѕzd\'^%DW |S]!g3l^ oy6Lh߶Yҥ+]U| _Ü'4۽1:ah@&ά2G.Z(׷GCםJ<~lSS`J5xFbA#!;a#HHBC)j*: .p_zJnU1ETb*T@( A3z<}sng_~bׂ,h XcB*/kJVğZxЫQI {u4% c 5(㜊c^)F 510B404. 7(-؅7Xc #nnf6h FhzAx& :bjV#  \jM٬Pm u@f` *XHrFIjO TH J &aR0`T kTTj"#P%(0bhb*+nxovHs&%Vo⎅tIT%G௲.@KlpipNfD220x #]c2,2 904 (`"g41.C`1&H mg𢸆AfA+l,:|j0fn!JͣM(ľR+ZJE`&@FbFfFlĦʪ"mČXO*Q2I:Bf MppŎcf0SOvr%'"qngB'J)VoP+* bvn*bV.ԏpQtZZ|"{.T>NYbu%.8-/k23Si+Ye3,-ޅ^z)'f21&`]L&)4)6h7(]$)B4(:@ 9J:@@L8 ګ3!!Sgo󣈃" ?J,p0oD&4O% ik~G$l&"%HE !S{݂r |/&li,NEu|' n\|L'BEZ)Di'OW4-e"nbx-Ԃo1ͯG//oX3Q0;5LLHܬ,uk{E82b "^ڧL9P_cĎ29&"@N $ j !@O9DB7 29;!/X@"#Eh$;Dd޶TO$u(!(Bf&kr!I-  *OB5`i) 'Ft"(5XXǘvVq)Zo UN*gWޒZqXʘ|l"W #.H0XWe_) N6e1%x/C7L)N%ZG9uQ (m]1bK\±}LI}2je 8_B h`g@8Os&g4 0! 3:ս4 ~`gK g#b&#f#kPȦ:k=O`BUY""Q0UPh0WD1]sP#Rv/W.x&I+xv/͂uE*/'²TJì~Eՙ )F(@NLXHIIkQ_=s)\BIe`FAKUW)_R3w" a1V@bbdwK[kK6y+hSD怊BVA3!jiQ9qPk梞:3 W|V 8i-$8VB!d,|mj>5\bGrLr l-,?ۖ%0,s'hwnoRnA="pŬ4q&i Y+.*s\NC[jI`2t .RNǙy^Dˏ(0TroxH2^yDxq2#L2{tB3l4Z"6cgЄ(R3-e.lśZK7{'`1F7^6fd dB*O2pVPsg3g b算0Q  DrF$$OEDPZۈjU'ubLP(G!JHHBNЅu/)Eg,OT%ro2#u*%qiX7"X? +GUY5p)cIɊYNʏ:X4K[ S,.GSR)Ko(!`7镏n1L#ɛ0l1o1<(MnyE9`tϷ`Z0`6,}ǐ g(rhnP"1i䖍3uz\"@ o"ifZH20`*;E q "Xdm$0d F…i/ t,EI#>)\TqC&"T~pE r'-x*/̕feW'{uFI-E{+"`ЌU>3EGx"Cbxώa:W"מnxlITc] po ZZ>̔7c6g4/ʮAz9+Bh:4ww@J~y68*JȚchh P_H-*x NT @q9ۤ9|\SR8ۦJN…_8qu0_g@"/D{L/W quv&up{xw R ."UVWb+϶.]w'-v-k I6%RQc{xdڦ}GL;0ώ5KV{1v2RwaC`tMh"}Ur:tקs!1ع5Å :G:ڥssg,V^⦛byy''`,vu^/#'.Z4e`yz_'⇄w %X @H p'l`„#EH$[&P f ,i $ȿ:q͡D} S@NP"tj4h2e:QJ5+VOh_| zl vst  e@h`` |0^3SǏ%; (9F986!B{@h#LC#K 4} EćwP? țgG]en}٫kwݼq+?<h0`l)B ܦA P6uaaiaᅡuYHj&&tZ#jjh(䐄3􏍪 Tb  DatPEAE'HZI.4I/DI,ɴL6!NGUTDF,T?tBg1{E՞e՟YA^0u _pYe9O\niĨ\ts^w_3X^1Mc@gii)71bl X@h9mv mr NkmgbP)'y䭖r0&&yG݇v"kUs:gA>Zxm}3>1ǧi@B  @>T# (kI2ђѓ`>9K54I"}E2R<VuY9Sw5WYOeCVAS@IYOt$YZ'Zŷa2 Fꩉg%I.g 2nqA l!k˨}iJcP?`kx™&6L!u+tx[:w}<|!m7=H~̝}or}Ϧ]\lZ[H?}L2H)ŲylƐi"`:#\$(Z6b%$j7ɒHwN%D(Bv(P'4 mh  B+xq&`ݠonYK^2E/{_%~ 6W9X 2 09Ŕ~)o%vk@#.ơ]iEM?!ۗrix6m>dBąn99jx; Zz׀0lFQ{"hE OǛHY-HbB6@ED-HMDSf q` 0$#ADJa$4,[Zk" I)'l“t…g!J@x/ij(+tO)US٨R" U%Ʌ8<nB(,{#.vыw`P%3US]Eȼ qLqx{%KϘHZP7):f0`) *40fM/C…j{rp̈7M%fv/{nyK81-2RԩOtR>*W|VcR^Vvdl*xp1'Mt:]2L21bg4Sf$N$KZe,&2DTg^bs<7v4hV',@0]\i8Q i_NjK4UQ3^])S)Re*8wF׈+t.@`v< 0!ĂTK/b>i/> #`BW=PyG҆c06/b/fuW֒0߱Ha<K|X17Y ?"I"# @7Y,e@ڷL Yݤ> "fAQyA~p~$LMCsHB$t5E&Sv4sIg5(QXiWu؋d)%Rv6k#QFsւ^|aqp1"`q0"cXW`id.E{3nRȆ<=AޖV(f I6pab/B!ax|ARXxh@',"L}2ӹ2}u2s$Y-BZx(T1ZN*T[6Ush5d%c(9Bt6U`\buf xaiU6Q2E6"^~A8u'xktwGw3`)#3ebPFLqe-bA".In"6醗v%HV=3 0E=S{A"K#9d9?1sS|ͧ.#͖[ur$3MgFr%Z9rAZA&!&NCH5gbCE*āK7?7t74EF6rQ&ŀjfZs]@00^b$Akvsu?B|?]x!h`GC7.yWxbF;AW :Fy('luXWUQEf,b.ڬd/?&d3)Ʉd)2Zˆk1°'#crt pG*(@r1BB uWb5FCʁsELE EgGF,d6uvuu u\W]5;w)7&8FsIm)j8.wsD@S]d W1J>HS_uͲByK ;p,Sb<1K>YDT!٘wnpHÄAbe7A4R-Rs$דZ%s%uPGFVh*;dqBkx2Qx8 d+% hҠ6sbF%kyv^Ɩ_|Q#VSq*pe}?ΖMbTfubpsY-eH9ȱb" )"?@L{O( k8?q/R}!5!90Ň۹hdװԗY a)>ɜtArLQ5B.W[CEs6EC,QNcwgEOB9t':u(fd fBJ53{,uɴ$XSFjgFKC(A@say2d3xtH&:wC½)Gb/DoiVA4 #a>qzEb)t+@y #" S&1pƜM:13H[!4?!wTZ9#nZa~(D[+TdW]r&$i"@6ŀȀ;slu{TݥmFkv )T+ʴȋcQNGx B}!%;-A1Qn8:Pn2Zr?r/a!,= #"ԉUVCG R"͖s|yq3BGщ|pEZ Or4k%k3(Nov!Cu|  (A @? % ̞28Cѣ@@B2X1f 9Cʗ+edI,lO:gqЏI&H7!jY&MD֫IHz`쉥0MK [7]+?~0!ܰ0 Ld[I3Z_?nK_nJ1=Z ?xݻqɓ+Umo-fNfڝO'__ģ/ ~vhH>}/Q˂r5# Š>JA :G! +RH!&(*&lp)'RġTBIE_򉨡RqʉoI *a<$^.h 8Z3:$2#H1< [ 1BL%&hȲtHhI=88$8M d* -~N *1H*Nv[Ue9ZkͲ++2T ϏJ:#=k=#;/?6v¨E0A°0U0 P4D{|#EJEJ$k %nF=*3GBIգ_1$}* f7?M?Ds.(RT6sXrI ?H-_ * p. QZ=WԦ;fN3unRէ֛WU~Vl\˲ HKhOjf6l: 23O[ `{Koj+wj! ڝ0łB8*%|0` @ .7%z1b)(AF4)(=Y䒣Tz kĊtN/2<2HGL-Ю2K2Y&@@2a_`S J]"%Y*6ꊩҕ Q x84m8 [c7ܼo"!mpob?Z%q#&DR'2ʋJU2U ನ$$H?#RH9WqfR81EkX`6h2;0/Qg Aaꅮg`4,)87ŕ*9V,CGK䉊 .DeGNܲ.P -OV7b˅)L_ &f=()N@JOD#tԤ&4@dK, 1M(b-VBʨ*6QKͻV~tj_P11O6 ޲S@ n)PUÆD#+<)"VOК *~PRl#ҭ<[7%J1ԯHNIqnf\czn0hsFGigSƣcUR ߝ ;5/)\ӂ 4|iJb Pj"ѿ-OxhJW}ղMT>Ƥ*fe: xa9 euh#pH%SSkgD07296nEΪG*4#bd"B?C%!=f4%`*aYe(Q G|sRtGh'@;QO%iI5ޞQ@#഑:^js_4-IPO,bjo$͔dWA0VJUvhBTPx'ztl֒$dy,1!؃v=6>s$dX?H r@Ȏ(!CG ]%%'i~۫.I7=NuO]H:,iD"{W C 0wU},/AV)GP";I$#zAI[@H󣦟{WTDD0)_d[RF?%EDVr:X+@<@L@\@l@|@@ @ @ @ @ @@@ AA,AC?XΰKBLJJ>Tͤ`<@EyXy|O4xͤ@ULʝXP|PdN HJ\:N,Ѱ ϺGtK \D/B\OM LQXN d>hM\HTG}E Ē=Q=^LHGPI,MLMQ(H3]OU1ySAlӨpRʤ@/4R(E ?̂R,R"ˤ¨@J:U%G4́KGMD/tP+PeϾW Uƫ$ŇTF0S>}R)FrctX1ʹ{dnLRq[C&$kYڊg d?vbYVӪ)؆WdWp`tLR y_qPVzR=JaCIƕw^VʇeZ^ȁc;QjS(vIȝV?Nhܕfغ҅eR69ʒiN6BY0$񹍙bXZTm]ΫH6Df^nJ鼤ϑjAlVVwmJKh讄ۏo_{zX=)5ecvWwT\eݦ}__<"ن`TUsIJd.qHTN|Hqb]Sh_=Aŭk7&wª;0;͵L+#H$tzPOyۛtgZTW]dKێ_ʊ}SUDѠfܫxNKӉmZɂlQNVxpG-,GM=J҇\uC۲laΤjǧ¡~DewB2X#^Ǚ~ͬ[K\Cu˦I5߃Nxl9ӗrS7b:9_oӒeZ}jژŰ\M5q U3.o鹛SSS>%W8NETDdddqqq}}}KL6A/KH]\ޯHk  *\ȰÇ#JHŋ3jȱǏ CIɍ\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXj`_}JvL T[k㾕 wݺx꽻7/߿~ j UxqcƇB\8.ȗ3?ތΠ?(K]T@[c˞M۸sv .i+ ߽Y/vOνËOgO mHOpCOhvC~sW 6F(!wtNON&∲̓NJ ω<͓:OQV~BՈ[{$@ďOC"P$L"O,$P3|THԔ%6`n!>ew?gV^^eOT9:<'Ϝ1? 's?Nό?'reJ':} ģ>rjY(O>" +r?!!k tOJskC*k&6,wtp."@ l<)C,Xcsd=I=φI m# \tUfQ$\fAHOG_\76RYP=F0tbC?o:86pdJ i~}bұ d>QpHȕP(0()ҺSV򀥌eEJxr(#.e^\J*IL_ L25Ќ4IjZ̦6nz 8IrL:v~ @JЂMBІ:D'JъZͨF7у HGJҒ(MJWҖ0LgJӚ8ͩNwӞ@闢u G%"Ԧ6EˀTᓩZU *jTծz` 2 d=+Y׊VI]G\*׺vH\׽uU1V~fMXUrձPe`kTZȬf7$HIjQG{D)J)u'l+TමͭnuvY%p+Y>\R%)Gvr^^=^店]| ߁7Q N+޶@x [Ķ50S3(DeJkZ=j%V&,Ԋ(ejf_k`V^e8f,cq'7^%XKL7=||wҭo{_V*Sy(-ox[&ż\J{p')NaiRO8$Ii0U0zmkLx7v7}yf%[J^| օvll_[TA:Q;֗f/r98s_bXxxEa+=@BSp_;"b Ytd;D9N^vN cʘ~wQ`\7~U뮗ؠlP66Ca;܃o~s[Z XzV]b Ɵ^HGiCoL=7q mu}lgZbnIYd^8VPfl&d;AmQzWtzz&It;qffffthFU(_rguc/XgtU'|q]YJTVT;~>XZevC8}gۧwps' gaBwxLp}>hZVvE`|A|fgcmnUrDXS'l>d5]RlPs)_vCatzv/@@1Y^OuHU+rt[hcrnx!q̧ofx+փ+jqWbjdW}Twah W88C֌E7a pHTY;gȆgr5r3n5dwX`]ʕ6]8XV(l?W;!tm)n5X=o^={{dž7hFUNoEex%|~~W Gj wh~w=Aq@)"ЈT`8oǔL`Y)`iqH_HXk9&YFd6s{_ ^^(q$lsyVf)%H9 fʼnUxkn8[`q8`9bƗNIpEUDA}7ViViogiICy&#Gexu| UXH(阑'yfi_(Xd99Ǐtw&/e؆ 9$KtHfR]_ tac d)_ #Y|]'F[+&Iw χv[D;szn6>!k*>aµ;ɴb|˖DC˅9ؽ% ̜~a m+uZk ZjllLܿʰIIgFŸ$:wIԕӫoqm І\ҏ|KU"#I^M”ݳZXϖΆKǗMzj0 0MU;5mxuA-Hػ I&Yf̾c{OЃumyzN?ЬʂRGᆞ쾭5һ}UuzLۓ@ULU<՜f1L-)AV[ k5ۿԵ~j䖎}*_ׅ~.L)l/ʠ JPΩQ%U Ikx]XG2,4,gT&RH'E #I?ȐaD G8^{!,Q@˒ r^=/=[4׭g-uyt Zr֢> WX㈋_,xÄǣċpL0 DNӦAq__~Uߊ&IH ,"h"K҂0c뽾HJ%E,1ǦC<;"Ŧ1:Ҁ:]ǁrM5#c{-7%q+n8' ',8* L[MD48Ҡl2c3;8 3=dO jHx+B R-ʩ+j*I 5,%ȫ?H*MXbB]VB&|j> 3\)#[? a/h &4W`Bfj$3vF&ڑ6TkFپ,Iڶ \݄ +4bnHոm5jv. :S:~7}# յ#SϠg>=,hѢц]Ũʌ/y jMy@ H A*ԭw @5(Q`a ?ψg2=Zk#;k;kjK\Nm$nM"GCr$o1%/y9һpdMG T${1!6Un0ړ>is"Wa8(,S]YbGHoGEqQ'gx*X RF-fO!R',9iKBYL%C|3I/crLr%f Q$UZl\?& >Cm8) A|I%jAo~;M/Ё$>q`HD4|^^'u1Y#B6 DQ4.]SLU6+NIX;N}c G I|x: Yx %f5#"J{FVӥfcC#$@0MRXO L`㚙HJQfjm@^ au]JJVڤanm12#viG$tj @0 Ę`Lje,i$yir qϜ4aO@ Q,Vҵ)%fW+>49B 1*tSa4SO[2< FC ճBm䖔&A)@R}~)#>IZx/v Q^c k ,kYK\)6W* He, ·椵5)H0i^>R,v2qfJP2>)%4dWQZ'SChב۝R(.n.Ѳ ;W%ZUE.hC ɽn #-;hi"oVw9iZ*6k pOY…Fjt.cX()WnPނ3r'1ms9킓'Sj7 ]tPީjΖrs#ҴG^/sS%4U.=HhBAl=PxCyuWy_B5Cgٍ3٫)te!ږ?R轷X65wU4@EvQo(?#F^ާk]YGz3y-s\Z܉ދ )h.=xU@[dySc 4Pf 'ۏfn Eyd \0v)S9:0S5kڬmK@Yuե, " h4{^C!cc@԰ʫs6Kz0J$$yn.>o롶HS?$Q*:?jA I+%3Xd9DQ?0? ۵W/G4/,(0 A>`9z9_/CCb.X9*9 9:{ASFͣ~ZR9ssѓ2*S ƒ8%wڛ "3C ǍBtK X BC>BgDo31b>`E:Iũ>/K,EV,!*I˹8I @ L\[☆O, 2_2#%RDS\?dɼڑ $6+Ŭd@K]L_`)EC9bC_$2|gD<סJ2<m住k8L/:'k:.5lM4I>FLKS ?,/4SXdSsB}@U ''LOT Hm3O4%POQPÜ/5~ EA z͢U< Ռ2d'\_݅aFV/ڢֻ22}Øn0[L3=b[pWVL*L9bX=W\} զա%41E|R@cKmIPE=X=%*ILēt:e]2DI'P:N;  05Y L\JԘuOVT,P M}`ٞ}P,M Ӌܣ $Rڨ~Z̫ZK5X1QoGd;`HdLJY QfL`+#hc%jL -[7(H;Z/MME/RK\E7uI%N&VbINΓL]bIM (^ ,?ՀbIi T Рb0mqٺ51Y|^jQM]>JtIbY$6JE#Α !M͋HeԼUs0֫M2R=9n|eZX`˼23N=LenL^6ؘ ٣m 6Ԋw[A$ZOrIF-aM5wIφ6bI|սbK,XubA]2cſ?'p4EՉhh :}O?N1N+ʁh]՘;ԄPԁTm$$g]_tiͧ+ VcmֶZUodQ֊!nc\` 3`en 4af`JAfekLՉ5ook%Nan-2ykR&edm =>gti}!N.]D}d؅bX%+N}Vnmd h hM㎾hpiR2&Y0N-6Idd܄ϗ}Tn^PRFg˽I.Yա` V~ ֿj~eZY6F(pN0,VLۂ8+֋ۃclfhF :pCbEHȕܦڟME:ͦ&I6ֵ"mV.h.,2! 2J.wch 6n2إ 2gs E)n4nCniM5dy6X˖lE j^ Itcuj\]jU5%o>Vok]&ap?7kS?=p:6Opʌ f낈N >  h4vMi%b ̎nmmo]!bq]m4홛+(/,m4;N0 wX nA$0](pnn7n*ao\GorΣ ="fo`GgG_#qeVn>1ytY [߷n'Wp,:̸U ?8wOGOkJ_]Ha<,GjOvǍN~Aj_XXxf#źOɦm'/w)q'mrob+b]9O+](|z' h--0ws+7~ [!dcއn  ">ͫ::rb(tE_yD?v6W`MjTѤZjoHL~۷ELSp6u_։Np%zou`֘ue>flA[3տƬ7!D8<ńq]F&p%VdXeɜ9_|×УEͲjSnD0Y5dbǒ%O'e튌dN@"4 ݛW߹:I1p)o†SL yc 3s^9ТG֛ܹuMlv߮nHֹk'BWmt`"E:/ϵNBYr^P5[jV"^}wunsCܟѢ~QC A "`Bgh?g@aWDP'͆v!Hlq r*ƘPCQa$J"gdH,}ԓ@zU M?KIeILUET]TiS EVjVН5֞kijk96`y4`,*Qc^)Zl=fm guVZlv(`vvwp 'YwڥVl)SSPo&&PUGPI%?T$I?%D4}??Se9~  n4&6 H{ahf!r&`Bl4*.8Fk l@ԣ:49c|4CeD?LKSRiS4酷u@Tu٭fƮBtGéWkqtkmqIڪƨ] &()h:_qFZgzzꨤBFvhd&_(5ZY+]9SK/GiU=USTRm]BU|Ry۞7scHRF讁8>Z B x|Q#0]mdR:0]A|A$?R;CsK2JK$QKԝA6qf-l*AiϴU * 1"G9UkX>UOkڠ\ofTbA*Qd6m nyg&7!venHd sI2iJ"!w$t&SҒqomˀD`>j5YL㳊FqfA;Ujxrhf8)&&-c[%)Fa3gfF!&3P!)B3JThOP4Ia҂X]9FN;q$ϲΰF`8Ź9mr΀rǝqtLz)DvEZq΁ȍr1^^^K(U=(!"HF\e)1V]zT@&Q"[]qD5dQ]d5Udڒ< <-IɥZ$M9m.isgΩ-l1K"Bɨ93tB? 7n1mi>Ƈ=l>@ԡ}W(s*h1]d.ZEz6髪7.d:kDU0ƍxΎ2FVa> fzd,yd̋#ݩtI*dAW[^q^$2LV,4("0qa@ՁD!SD!̰3描,5Uϒq5aXl\535;`[)%l&oy7OR;]!T"W:,AӘ@ndxNHkGJZT}|~7|{QvPV/mW"IY/ D~y=$95Ci AU'99sLaGHA^*͘*BGC5R!>HnWF;i ]\B( L֬JJqׁٹWeT^B٫ٕ Qр߭`rDBlQ )HH)˶ȲT=፨yō``5naISٚ4Y!6]E:ٙI\BMxaVF| \ܙVӝ5! hTb&&_&?(b(Z1+,"u_ȅ .F>ha:b`4`5~m ja r!G]`M!DE,9 V:B |8WX9Y剈7Ē:$@ VAU a]aXe!>dў5~힑=3̡]P5d *_ava󹤗6-"- d -6%~A@-Y'%\L@cbD-+:B!iM- + XW$2/D.#S./a!cM(%3ڑ Y$ Z$D>Ht3M%!3f@WQ0Tۼx!f:EՃ)gLOdڝ14i "F az$Bc`_Zv`#!!x"xSKNZDžEOy' ?@%$~f'TBe@_TN(Z0W -zPv_Y"OFhQ"H$KvL'wNZ牖݉``sJ#A &'qn!r?Ldhe 鏾3,đn:veX=R[y' >nH> l:$XncB(E(`':6Ξ&hZ9Gvʡ!vzY]KVKjCm( :eWB$r"U\"QSg}\}2eT.F@TrSAB*_*]* _`(dW" +<=*ZV􉨈a[ xjnDW_vkvf`Fø⩸hBEb#7k`Ð)e(f+Xcz\OU+FL&eRUĨ#*cvB&nj_)ASi]'GHd0)bfJZ`fW('L66+jò""bXZ|z{N}j}]Fb<8%jBBeJeDAFō>W P_j}VAYF&IJ*ƭx"HFjͮ+}|F'rкrD1?|RQDf P&*9x?blćUHE<7tigȹm>Bil:ENJ džBmnB'sƨa:gv+a艺?bjhܪyj5-bӖ'朧NTщmS"߫6-ؾ_ʪ2@ ʭ{D'bYޭ\"Zm;lϖjáfknkq;N`Z( fWc~F`q.d.:mfF,l& DlqB[7TrՒf)o*oB&)j,f"'%l 21vԂ?`%Y?BڬC*үKoI+ײhb|禂?mp*BAA%2g-:e2'sS*4")NA/nUl*p}*0 -+%K m(dnZH5k'(Og:nBk1 3'E+o:7&&!HLG{Ǽ<v)hk5>P{5'^x.u{SSxcAK#;B ?6nsF@O`-#C!F|X1)8Q%qHTؤdh=mf7ܸsN vۙiRlAcnjv2TQɜJ(%V -%p437ap'\,8PZ + ?0~XȊ#sѬp3ڴyrI̅:5jש?CI [!em[v\?(xL9~{J#83ЩSw [X}-cޢ;7n^hX#D!lGxh6 l[P!0B{h5W $-4S; 45L! E3%Z 3r !sb!sh1ꑍ<2ʎ'4I%h)lzH EѼ| L8c")$Tz*≢+$!8hyO8(Qftň(Z̰K1.+!T1ҾD!!"[M n\7hnrkGȥ߲\ \8‘眃8D+Z@O"sIt϶#g㝯[q$$P Vs ?[GJ-3Q 1"RTcGCk rLJxJ(QfgȬ"3L*$zJLڨ0˟$ )R꩔P*)ΩΩBkszda䊋ldZFv~4dGȲO1Ѳ-2㉋-0S#8Rwb6!_,.ߎUꀢ\md䬍6;hn {½ݺt{/v <Ѓ7yuO?B,~[Wr}s ]SCS&Lx %2KAc˻/71k:,#3;%b`EkX9 DPw.m)"L 2)$1$mN5S‘f&-0Z"٢DF#!cQD-i31lj7+79i/W5ktP]NgjIr!5s X]Sxy1#-4v1ֽFI)DZ3l/|*)!TA1ˁ)rDD_%,8De><ead0َYd>fGʓB~$'I^LK JNx ě Ӑ& *Sq4B|1<`FVd aōd~j1B.")M3JlQQnoY`$xpI:

ﶱ=QGzi6w "\W>Fм9r-K[9QzlRgXA'eR#} 5.^|:=GQyJ=pϨ!Hb#8].*zʓ{Fu+:Z WDz]mIn#JBp vӒܐk~C{0(dts!6J?e2i!Ihpcf$vƓi־N1S,ybš*/j0O"R;3R4E4%"lP+0+yp4AO(E/P7Qq"Hܬ grB")h"8 KR'LdOB &5&_( qܓ qX iY'qRd` R@|*[LܸAA=CvbQ424TrRC/.n ꊱ/'0 E 31 ذG".\=znJIEr;.Bt-CbQI-,BD(g-AoIB%*M` ӍlsϜPR!(yl "s' #)+ 7rL̩>R%O ::аLi%0j,#ϙ !#"o3>%F@enVVaA!Wc5nAL?ż4"A,YYC4#Is-TH-eJaEuEnWj/-m5Fx&01s1A2'm[7S/KN3rD2EJtC_,3>]S"|Qo,+r'lS "z7W70 #OAksfA*p 5(D$'3҉L$4Ln2j'r''Q!v())2 jRmT暫+kr#BaVZXʒ-VUpUpq[+V>N\`!u0M;ڀ9Ԡ 'TǽEqqEtoKZ1JuwwwCV4>V!5i$tWR!`z=W76 @߀@ IVa P O]+"lfNL0$$I%;+;;(;"℠ĵ:"TBes=O(>7?TVހ)R@ Rw)wzcyyT!b!5Y5oa[a.p(wo`sr`/kraF5sE﫿81y"HPBP7Q_!‹DQ[<JZAp5QDGaX-+uWXwnw#6V@@dO!7)Y8[ '2$J Mh9 Ec"%{vp%9fi,fBkD5=ۓ"l*(YSl{kMw*G8cƪ nT#y!bYopW[Gt 8',Yn2+{11BtXsstK7SzJ_)¢W' ؈Xr  J.4őJ-oab5-tx'ę5SS!LX4D!39| SHuΌ3"8Y9K²PfɌ(ӂI,W4M")|fTk}ٳ=qX /@w7+@s5"vmcl "n!B79y#r8Qsy7ٞy˘9]nz{tKWs`.tKڡ%"t X (e>+Bum4R:Y8/T!ؠ :$w}X!n[z{k; #N봯%YO}SKU!2Y g2͘M$ Ϻi"g=#%@$'xR|ڂ{{wV7іE*'1zYڅ/a6ayWawa!J8wٽW4C.HzrtXs̥ؠ{2}ۡ_;Z;z';7Z"2;\tE7 '"=" 4% ?e@e\MN!Ɨ'=zP iPYB)*>h" ;<|&OTE\v—S WYM@MX7lI8bE}'n y[KxݻYӘax75q4Ky¥X ^ >GڠM#1z%͑ؖ\)} =D]!!AY孁uv`!}}^!r=!|>]!JA"*}#v 5]\HA?W=iS{ƕzK]'R3L&CSYS|!$]j[=P\>:-؂݄@ۨ?MԇCݑO轳I;"4>YwY" 3",#ޠu'tջ!>́缷[w{;ҵIyon>gğ^ѿb>q~K!>蛾Y<0*lȐaԅ A,uT=`[UN>o Nᛝ4ii3谡=?%vt *;lxCu5+v['de+®lz &|d'F"aF#ͣ7xϟ? fd 3[Z&H_jլ&:%Bi e= Pp4z(#rX!H E sdN{jOdjOe~c; AhA xP3a:? AbC!C3bw=5ԁBaHmvPKYB]FfA 6+CWR 8O?RIFWTyXh%t BpI7VIUT )A_x%8Iy]c4m6SDLf:ew!1`#¤a;V~+KlpLLW$w S!=%/хJ_YLH3z5O'(ɐ cBv(!d%1kt5N{"3E&!G%9GL59'ED$>gXk3wv,ǁ¡ Rh,|Ar!W%8`k yrdup;|oWސ%_Iv ) 3ycP:=>s NMIt97M%hKYp,I8Q"50rr8&&LP#Mh6ͬe'8DD)ե*UKr,} wg[D,'jRZa%N 5L ƓHeq ܲ*3EKYjR[}ˮ:iҖ gA&q;aOYEV34R`Ȫuk(xB jWp]ly*#Y)VX-SD]c*dy$ld=/OVO4)C ,S|gχ+\^ɕ~؟UD\[IB@MDhUBYrpTu"&-IItܦ6/TH!LC_Ǥ8MSTNnS?j1)3ʝ- C,`ʍ!nV1(iP;QifCw`7mYrVe h@`jvKe9WS($r6cƗ0lR("Vy"MH* ~ȹs Q&%a&#ٔ»-K.{ff,5PN8 aاX A,3.i&9Iۘ7wfh!:5Z :;Lu+Ar3A6qBuqB-g]SOApd=4 T Y@Gckg^v#iAA~!vkZPσMl_ˎ<`VqsrsȣB'*\iH7Ei ׍B3= M(3= O,Yg/l+Syh"%{lbfk<.ۅYmb`U,|:)-Ϥ_Zihy l:2Iu$; s}`TRjG:!e5Pzn_e.K֠w4 b Ew@b@ĠPzѰvt8gwiV"h]Fw0wFgt h%v2f!vFǁHtCX@сCt-8-xUdqR,T7^]f7x6hYh,[LבISALsSW*W $>yz9hnD< $NY.q2R%%25@f&Z0(rzlWNxgps{3qݷisrxR{@x@h ҀHA Xt T̠6ȁ0v]Bw8 8t8w xt %$x-؂xs68Wwւ)vt/HE~FjTUs7'}!L5qLB,Fe"Z8hZ,}7^ȑb7!]fpSЍ S0)H@QwG84n{zC"3`8bGuGuXCqq<̣9n<G]&D:G!]v\T*ӧǢ>ET.9<7w@'Xq ah HiG_I$ ƒ$ fu8wXb Ā]v?ʍ~H}Kc5 AAߧvĘxhHv_*7Zt-_+!bz8.c8`x5rgS1'!x*4`)6p;JPdR l(3op 1 o@Q9 4CCCzbJB'I'p<<#:DrqDFqb>DFF}xzl$*'?p!Ge2qـ j Ri6vX褐 aYM؏\'LxY*˄bвJx C 8@p z C[IDGMn88<<0G-ܙi-_h8u}̤HҳXv BB@*+{hs}}Jhٱ{P+>kT@@rfV@MU[u>ǫp}E}[Wؐ[J(Q3n!3s0s2 zL$z<&p;GAUH&y"ǽeW*"2S f fsiI yu(Fȱ$ 4^8ta:P(t*\Z@0`%5(HAsһQrGת'a1sa(B9gy׽QJ!JW-+U};e\ ˋђ󻀽 HDjȎB蚫i* ܲ(0+18 \J W |]h 8 YzH8wms' s- j7kquQ> CLea4z:+8RL.GTA6_s"ByfV4USUB@کRH-#w!zѫ[)dխKz ˬf3?ȸ+a$s02.s8'<4{G;i\g(!/ŢAu# ˊy'(li:Z)F.Hx4LxDH)31\b Qp `0 ƍ]˽8weR 5݄ @`DˍhH | Xp#MԃkId%$+ Ӗ$SCkIC+Ĺ} elpҷIRe!e G#0 kd` Ы e>"\)\'#``z Q3:k3:/B!L0w4XE)eRXx)n+Mu.Xf ,/Ű;% ؚ$͐]}ܹ}|ꚾγ0ĝ]p}Xu tL7@s M XJ= JΚP p2+8 NQ}@L` uP{z:n PEȞHȰ(1 0[ ~/Vm40ꬣ z&ڬLf1aHnaNbÐJEdJDb|QEp]誠n'u^9@[eAHm׆Rr6M1pݯSeQe6:R Rl\LAbP] ?wdMM pܲ~@ѝMdCp0k0  }MW` 7 KLNM`PB`.#> ? }0 @?ې[^_"ò.U@[`ՠ;6`c)XG9\bX1G9 kHձP*1c 9񣹏 l 蟸6\?;vPAiCP:T%Gx9ÊehPpo0yT;jԭVQPpˆf.U>FYreQkGjwٱФsWiu5Sڬ_Fao.ܿhɣKoysbΉEXu쓮k'_ayL#b oXh$^i/fGHr)ۻfZDĜ)#׉fƻ6!@Ɔ64ѷn$2EpmBmGiD%lh/ii@th7)flFN7'l! A#* /TR)'Eh7&M)Jc#QD.Uq "V~!2, 'HG()j-R*qr* EepfY6b!TĹ,֣bUVI*Z #ƄJ*{@ Dj}GCM`L벴Ȋ-lpK)0n踏)rλJ.c=̃ٽcksO9j@*0#Tf!pB7 3; ;++x,Ɔ&>Ȝ4G"$Rm&G/gm7({)oG""PC0!,f0<(c0:!Xݡv-0A z#_ gjf",M [c0Ѽ4 Al\05aykY c`q,FilcKG: '6l &*N?ѩضC2L1#}cIXg<{OdzF6-mD5|ֳciEHhZT) k#{HiF&qK~mD'V !7BQrv!#9.zeCa-bG7t1{YLҺcB|AHBeNEãE6Vd ~A.*׻obDOS ZQb,FBX}\QXJ ?*ItVe'_tw$Ѕ(D E ̆-MZSM~0шKb|px9rD,2\EbUM"7EZ+6'Qs6fEc%͏Z4qY^AH[6m.[Z,63Kv#@X)l0iWue,}`-@&Ԡ'5 O&x` Iz(K Dfla Aڻun!@컅Da>'+hꟅo: tE 'pPX>10* JUBbEYBE 蛔 d_qvY`nѐ#k2z׽@c6HFR&s(#_j V0Ӕ nT& "@qXgbFl1UquNC<&ʤjmq;SMf5GCؽ]41#)"|(~%&Y[a6fo?zzvC9ld"˜mrQ!g9)YdxM P% ;Cld#$?S6 { g8 !/(P]]} %j,NV'*+Yhi˟rlag7Q@h< Z"X~ZͲS@)g˹I* rB~2 a(^,0N90BoTepW\47(oDD/gd1|+i`z/ Vhb5ts'" Pʁb)s;b1jHBGS1<#wGI[gOڷ9̉;Ȏ:I&1I` G5ݐhW_Ʈ0_v.}o۔чуi<ν3Y31SX7J/zZZ'~'NMx*/M-:1q'#A8>`P;N21 `'Xay %hk!fq96p%pg`91o蟔 Tpb B%(( {B(Bi*ıeBqb]y p_CJ$Zb]9[x'Fd[D/K̆W'j/+8;>83>8XA:.:y+h\?:<03i429ȅ:pZp\Tϳk\cT^׳l[=cF X3h,r"?ha vHȉ "=Yx:)x՛#+&c`k>h66=iI{\F^c?1 4  _D1Od@Vrc /~ BsЕx'00s->>P|ʲӕ1 aA1$B B(|Bce$L- C-ZbC8ZZl}gZ-L,DM;!TZZ80gL1t''0߼MȁcSչ^S> @;5ؒEk@u"IIʁIZlg/9 iP偅N[73E YZ0]$J 'tq3¼0 Ċ :dJ90|ZlLf1 C lD{ѬNPhT1Xl0̭ۤ'8JΌ 8]@X3xU['N'#K@\FO? Rj Rij#`. Y͉iz8!"5^"YnX웁u9&욥71!Sn n W ɼ*5ԩ6ݿb^bS>m;%*6d\^?.I7/\0X? ˅+->Et G/dމgD Wt'ʤC$$ m0)d7Ou%lL`eEMuNJs EjLJ4/8JZBEGK1UTIc^䰾%-@ІцWd/:^Y>(5He/F/AgY-@6sKtI[R27>XFKSQDhN ˅EW1a9rݯ9MeT̙t\Oؕg@WGO O~E 8FG@`:F.8qڦmM/*T6TXJ-@S8iD.h}Z`_(M8͆___X i!ƒ#Z<8[S؂Ҥ|"Άޤ%@ID p}mh߂+X08DpAwsD= $pR~ O3P:pP R`Ρ1+kf v(u.,n;cU4EkI` Xk/69i2&f e%V-ȁ&EjT>ІmdP\En%m>m Fmv)#YQ3Q%Z:xf- &!fL]VEӥƃ6I_aarIe(Ƒ [zE;qLtp F[^'~-@8Xpr:m4PNO!F t)kSS8~5%5xS-G @D,B(s>%_EU/g^lg&v6e} RcR')t7uii{4 ef@?"P:@@`2&q6bF!0>\|蟗);rGj`_F*xEHn$7?""dL\TX0@9Pܒ㘕9. h۶@x"9 +W>Gg>[:`@CQo(]6nb.:)gQ5 eBӵCY NE:RQYkj#GdÂHMؙ氒l(;OJ˖Zh-_H833O&xsƁ*xS`lL13s3- ㌊{)A94GIsJ { )b ,V0b/W^6%*R{$x?dDGp|9#|B -<3'o2^13(~?ft藯3EJ3L?&FH>8SB0?NMoSvSB [9_\Xam6]B}űSBY^Ig$n`黅bJXLb%iǁADG885DOk?JGDSfM7\p'l'z)BTGu%DPMF)%9c J7а B7dF&lD:9qFZH +:ގ|R_GRzR{G 'd)Qj?::37Hi,%mp~26y˙m\|ve#mڷ6GM60>D@ t d.j W[^WTPV,RCA. D.$eKY C3d#Dlw<)܋^exQōૉ)< y'PX+sXw9Ld[OҖeJ*nxģe/Mn % c"2E䇛3zUVTҒa 04BOiDT$-؃DfHV t`ߝC:=9S$ ,bB8%B/h%ev$$B&^a. T@Cv,<%'9ʕs' ]CvMvRPaNq'܀ P%w~z,#?ɧ>E`h8`AZ:/kNMycL916-8Fv@OKӝ|P غA6' 3ճ uUbBSłd7X$1J4‹!DG|(F XA7Ax?HaBҋs. 0}Ȏ }IOerĊtR$őXna~i~|U!RlS/jP+fa(Hq0P@iGJQ 7aC.r@:re&ɧ/Լb"HO9Od>y!Y(F)9H abNq%~OQ,NuvF$!.C3@Py Ul$>)3}(bP)gH{"}Hn s'+F6&M|` S5*Wy#s{֏؍6iY2\أPgHa% G 0W( 'DV@]ljS,^ {x CBU&&bE*QYY벰0,`1 +PRd"JnoZZt1f *VAnr淎Q1O czGpe t\ Jв5W4-T̐-mi\Cxk^}h}Zp)(+\@U/rFp#5!.%5ԣbt1`'p= 6-S7yolOt*ޓrs gdgnhv00|4д(1? 7R`qcJ2"$ "4hC@p\їF|XEΛ)}iohr1Ţ)AShB V>2A̻ k&uC'8&H'kzIA]rR_B2 L./}_~I1Q]xf0ŷ[L _LOi"9ƒԑȀiPV_lA,@uL6Ɇuj (P\:FkXU֤]sQ/HI5OΉI6-`!J a|O( uC9B؜C)Ft,Y 8\#$-Ɉ 497U9Ί䔈6]I[xlZi| O Y PЄ(NȚ `D^IԛED,i 5NPZ )]ϘH@ʘ)zP `Ɩt ["LѫMCaw7L7@,Etp_ l,0l޹- 0],D\MNfđeU @ J.l oDM#<%JL(l+L8C3? YFG.8%'h%Q= nȆdIj ~P/a-nH18"84Ff5S6t}G$ox yP %@68QO}Be|X\C'H'<̈| + fR@lJ FC1FAy)ҧLD|DJvޠ4=2gg#JwB fJ >q Kyz@"4ѽ|@WO jdc }ԥL D¹)MF`qN /dDEV4T6688 iFBE^]EXLdJUQUE Tt hVlfxO`)sm&Ť8|ll\dTʠGQ%mX`DAfAIO0ށh_L_a@3B\ԧtJ,Y7gA&½8Q}a#4 AMQ:d)uJ@٥DZ5&2ī痭ZEJd 1EJ-U$AA^Z{DZ]) 8 @0Z9nDD XED$=JHҜ)D` `ŷ[fby Ơ5I( hf8R%R醟Ac pl]j_,gͽQ?`˰GX{\"́OJ́P!$j{ p0|P (ǜ<'\lCΗ DDRZN"U 9ٞYT+vP3<_} J TG_݆SYpǀmK{'K<#lB/([F5As?Kb?An . DM 䖩,}|AɜAX96bZ BnD(z&(LI_^IEN*Z Ԥ@CAR @b@HP-,2#7C yi[ɅT L snj̉yUnpTxbq/Z+Bke.ߴ@IB106ס.2/$`I0`nVݑ_fBPinJ_REВE]a]D T# * }OJhJ dRO߆UmpO  xODL C$sod gKt'5Zj&0SO5 $&J \D](M%m} Z5B #`=cKt'*WmߝK|IJ^cާصИ,e=g6r.f'W=G# N\ E SAFZSl#Y˥r>_WhM1ʡ^R;q kd܈L ?P !|Wn0T㰘ň055׽j_'P_PErxDi$r;Yc] 08i߅RJ `:ih{D'j8C<`0xLT LPe! -E @'Yߖqr-ER-oDϊ[F1hps}FQi ĘMIVV3*Q\Ä_FPh)o_7v1UJt-)_KH边Ah:%!jDWr$ ,4)cp ]+}p ~܆ Zu ]G\d l DOUHKEu'0_;ZTE,Vdsk9 2/I^ˇgws-gijZpqF5JU:L7cƿ#Z߿$Y2ȔGVAdM8k`ϦOCqa(ő2)eIX֒J+~i.#‹^:b6-3όɯ::/<.G".E =Fq$Dtf!f9f5llI m`.>c@T )f(Sۏ=ɍ%iF *Z :joZ]0 %Q8,,|{(7% P! FȐX4 QRJ)f󕃬+¢4ZXf@1ZW1l`1@St0B㟠_v ^N6-km:霳XX[)jvX4ix1oAn3nx{p;yb$">q}H\3&?WYSb;@ ;u\-i6ڔ'^RFV Izz¡,)5E-@Z$QQ>E b&F0ɦ6)ljJrĨ>q&0*NB(1gL>rE)f qOk^كa={ВegDSj*NqR&גb<\_?!(Ra ABesB6afPDbGyAQ6}69P Z.֣\̣Pn-Haǂ+6 ╍-2e]RXsVDΰ<<#LA5pL9f309mt#Fq n+2DFoLQSKI6Aӷc-i ˟*sb$4IOp\`AT|sM'bC’m'~th"92AZt>0))< t><*36sթθ!ɂR-.ĊWH4{"WOImН| 췔0NsH,xGOQ_ ;yAw)tTx<8PerU'St:,;"VEG JDF .7H`R0 R:`oẰ4h=oXCQԧޢFWa*1e8}XHٿe%SMkp! ? _vfT/ "4h]HFoB8x2@$)"mHf&f8bAo0ȃLgd9DhXj\F70i$hn"n,0."j<Ҁl>Bg<@<@bC\gh ~%%IvHȦY 82@_ W#!AdAAa0 Pj<$n hÌ&Fvզ+qab5CBG6R:S/~l$QVbj"'HyG`G #VcM~))(n~> bha be ƌ)QԖ B ֮&|`",%@,1f f.$'<",NҐc$f`ߘf5X,b>gn`` + N2%u%ZĝT"a9V#6\,p`C O s1haS958\B 13  4%3U=2k2밐CXVC_Sh8 x~|8}S7 m8Ub5N~@"%Ҥ*& rd`'P6!²:f` &3a+ T< D:mnlՔ@af.FʘrM^8B-B/%0H_ak` ")-ل#`p,͸#iX#9I8,^Rk^04&%D#n$~IM bl? 'CQp<8',pCsPNU=喐6 o  + J:!%PSOD#dC2j=ƨ<*_URV1`TSYuYd0 @RSw{w10A$52a0 XWCo %%DdDr7oS7mQOʖo`$^NLbV<z3Hpd*@0?<~ϭ3_S*i(f 6RGd+tG8*F6΄7F]܂M 5$D pBAp4k x#B @%>6D|b#L-OZ쫸.*jD*"#F2@foc\PAY0^tRo@h@2pi27D#JE[䕾''TnBg2rtG s7% C@Su^7ZSgWu9bb'\ jE` G*"0`fMc|HpJaJڡD@E8 B3$ HAG+^tûɁqW)?֣F>ȇ<g v@X@o';&K>Qi_ @F,zx.1.$|̯*f$d˸ڈF_!DK#R"=-&n&01?̠hMrCjl(~+к8#X6pzTM;pJTp EN! as7V+3 7FU: ?}\"'0]P*X#bRoMRu4E`wu〘 3Yc7JUTEST ӚOv0wS0 tXUku3q2uX:Z*e^wPJNF7͂_ `' u I%"tNE' _Hmׁ#s@_>$^#|/ vli>%'l)mVcL,8CWBi퐘gr+z"aoVkCDP.=?Jfq;o]o+3@ȱOI>& &KOx7@ع*bpӸ(PN@i d pT*e!xƌ\! 9kkYC04N 7%.Y+S¾{Sٻ]!8$@AFuSۓEu{v}9/k g)"GZv ZuMXGG=n)b,J_Fdˤ*h&P74bG!W56,;T D0G&%z"skW$좰EbxË&pC?a!pJo?_5~ Y!:kblS"`TkdA$dfm+6iBȸ,.#6oF[Ll#+<qK҈QȂs]QbC|S|@s]-`O!^|sGK3p]09Do5 !&¿& 7B c/N(bW'+˗+ )ʚjL2CDaQ? pib< 9>\rVkRl D BYBfm#S[f"Mꦯ7jɕNԙQ˔̘<,,XlQM Kًt f0N׌mۚ3sc7<㶙ǿˡU߶ϴ[AF#SxyU(?~'8'/ߧ_X᢭(udwĀ5D԰f`Zf,6۽tdH+R GYifEƊ4Zj čd<<Ǐ?6"dib+"R"!&d3dG^\$7fKCngCj%gfX7GDC":@F<ŽK> AMv 't椓rmC?cD1?)I$Aj@h@CNZ?ƺk4`A(@D%BEDQP;E 1- ]Q(Ք O!EB'@N-gPGq`lJQN` uSX]Pk1^mZoL)C կuvz e<eEib e̙msmAxO ps-Z=?h՗G)#sBhS6G}lp1'Y_97N@nPtf`f-8Eۅʱd9hhBb$f5\ױH@O#dN6bwap6Y%( r.&/@i@fBPyӼ6C#fPNbvGbDa5')ϮA l| @`lu& qAt<$Y@!BZjH4!*ֳ:ȑxuK p.z d0RlX$:a?6P )hb(.%!rG]PR$:Ghq`y,D]Pcfc9(BsHCDFMM$#^(gIMB`#knPR:؍((bm([habltC.7ćVJ (N!e{ˌsTL3;RlDHHsq΂Ӊ@P`3eg24uY}7QbDt'tJLAO1qj3w@ 287+$-IK^G,.YR)~_S#dAH)Xh An%AWA M@ 1U0Z(L eyV2@r@I!+\YTk^;_W#Q؅c3C<5@m,ւ4bp)[&B^ˆ!M(z j&ֆY"c`9DsX04l ޔZKrPa]kuf0/TlPW#ol99FO|@LNsa-6-s9ۦr$D j@`%:Gp0 N~T$QQB!"^xM}L3Ù0A.zRtVShh42+Dp; A@)XʣL1.qa)*W@Vկx5",0BTE& X`gIM"IȬfW|kuZ]BD]ၽHlYOFM$(@^D< P12 X\(VZ{y-l jYsS4Q NhTnɩNƒ0^ix{1hqm^c؎:NRaC:Cn*TV[*eK'= ༀ-dE %9-H347):OUG Ec0:xh:2`LK`[#TiBp0Hc`F5ۄvgs?MXkY ~,halPN527j@Y022JGjR2`UU⑐7--zNyD$djN3 G ceP@d5hSa?*LCuUD$4舛5X&U SArU(ZD$uި zMȍbE.dxK3ьRaYZ.ڐX28 ձ8:#E\ vt: rq/2 >F/8Rq%22<@<[!"9<0qBg$G#*N$=҆/eM*(u@b)bb)U#=:Yc>$ 9"j&l%|s{b± )@Dw\GEf, Z,@A|0)B H?g,f+LU"+1-A-1D-(fn h@C>pWO0$W{#G|x|U8L2%lG1~[0Kr~We : 7H3#Gq4DBeF"&f)Cw)Q?PgtP X/7 ܠ\ gÁ4o44iKH K7oS xCgslS7J7uv#E~c !c~%Ed'c5)8"BR;GseM-=7׎>VV!9p0uLE/Z!WC%$rl@Et8>.2;8;0☎I iptm(eӐI$`Q*99N28e9Xi|i6Rݖ:3`m[fw(f ,gF+d ,wrT4 ++t@T8V  8TWmu@SnhjiH7kq|V1k}0 HJEmtjVs 09n9VF|"$Z9RY;x3aCBC0w/%$<6R 3!6h30JKڤā83J6UZm6 7MIpudV u$>v 39er>!ooX;2,S q Lb<+'~s7  w~ԗ%!X!;$b"D*jq=QOiD@CVn\vn:MM3X96D(vuG?izp*?ycB-.wE+2B &yR+-OFA !~j@(*N6)~+4@jU& nU@Gi0"W.D3t8W -$CJuUa *ˠ-85uQL-P!"2|3jÇ#%nQ%^ -3ٖn'dq{C~ t q4\i@Z0"?( O3!\28}@SIPcAÓ Ʃ3x9[(8 cxMg#Op{V#" Pjw* W-8&=2U%{Mb\aII@ܙ*"ğef xye+';)lujJٿ{:rؼ'.9Yup1lQ|?:5^ p{LH81LuO`gZLZgCVI4/=_qqb)&:2&:jtVsIjl{oJq{fs {륵 ȁ[$Rpt/,d\/hӷcj7xspЅsSs4b:)5%yQr}+痒9[8! ѻVBLuuDy:H¾! 9r#C:se©S{>Mzu_[kFaFn28M6 N$v4 "?z aƣ 9ͣ17^Y]HisK`f \ٌȏ ŔL9p`18S%Ĝ%^ 5d9Lcz_7 \ ir?%-ٱ̽{9cL(Orto"d$C!ZQ%ure沫ݻ*V{Nt&!3?=™y.y\+aF++~G뽮BѺA "fd&n]:A@#bud'aMc-H'`0A4\#oeù<>`NG ]X8^`u tf[f+ Snu &C"52GY5)%P{"(D?W+$] ~DFjP œJzo] r P [R T9tc%97S VSs9S-ݙ}R U3Ӽm2!K!XUPXB8ܥN8sQEa%c q<0sr6סіt9;$| d>傫?|^*$ZKveYtT` C4y-VX3f[7"=d-੃ȑ8aAČ(Qi!;!#q 7qhj DTs=an9zӢ'pZ>=K!ur3r- dLc7?|L/b":] >fԈk :@ mᆴ#rg(|"*lhɦZٜg>Ck0Oš+QRW_5eTQuq"Y 1moyFzN :GO=R(b:VKwuSQ Wx?5JbUt4!vCt܈H0s?`XYE=HaW`.>eЈ@< R#YΚVtXZ?\pBpu:qN)5WXR+(=em$U)Kp/V%]Uj>P IKKd3N_0 \ʁ;,L P ?`~1 {'>9eÖȐ^ 9laZw)0{kSEV!hNH-pTn6ezOo@Ü%ĹaJvFΛF[GtrɈZ[Peu=i#Eq_SS|_JCP\h*c+ N F`@ YԓOU*OaWǻk)A횺Xؙ\ V݁Ұiȱlm"( P u ЈHȃ %X -"!Ȣ?pQ 5 `Q$6Q|["ra )x"iBI L':Dcؙ$ǠS`\3011=`8`AQ:]>%6TF0BRZf|/9BB9/c)|й$X8 C5Ct0% CZ@K+55 ۆ9iT=$.EP2EJĹ،)@@Yօ`xF2AWËU̓XS јD(ZA=CAaJ~ɓhjŵ)X 0I<*=DJ40*X!AF9F(Ra+ P^Ȉ4QMH&RHeb "*Qn]c""Q΢%s6&@c 8(ݪD`&ц hd}%(ڽ 8 B0Ȏ2a\X0+d+1S]8ȥIƣ$L-daZZ]+Y O]KW%JGވԺ$TXLqBK8h:YcG!(F و1^%=ȷn~Gx<H\[E!Q#^,Y,'&ژ(Q66@ ˲,ѫHȪȖc6@`cY28>%+J'Az19'1uӱ0 }2MԾ.1 dʄ:Y$LB VMMZ0F^"UT/ "e\j1Tfc@ LnO7M1`^nR9 -Uq> !ЭH no(=oшF` h*R߈ļ{D*Lp|.Y=_<Փ$)Yxʘ)I١3 a Si % uЈjj4т]%\X,m 0"b`CQqAk,dHUZ%5m `6-@*A>Q@2gO lƽL:܈0.l.+. dBKMufåWbe4WU/SldMCKNך?eYzei:cufCjfW 5f8:1e馺4a18I[LتDD@;QIȌ.wh HAح鈄MI4L2@M\+IdVBQ{.)JfDhM6~]i:P@ Rٻu57*HuFNr Mru5)YMf $ƅs0#вbB{5b_;#k_Hpv?.?&Oю3&1].Vϟlc ` _ϗQ=Qӭ⎎;SgDΎ[zjp%mK!M\1i\Vhܽ8V.niqhܪ= \ɑW*rGr ETH |{w")AIIៈiFf0b1?="G俓'5K)=>FOfvM 3fL%>tXi:3 eʔ3ߌ:aR:H1lBYЭAD ݺzYaa3˷d̚g6pљ Н= < Huf4a,X‚%p!Xoo /qr3C0ܺZk} h!!O"ƒ۲9nLjSqbP9pa?6 : '2H-|Q-|avX ~X¡-zLJ|xV)9`VV~V BO ?hf&CrP1R߆rY9UBx6Qk'DžHf :EǕVCh@!VG@B -8X:df6fIz?B 1.KI#Cr:GRplMq>C+j-%(Xc^[GVru ] Pu-ZG ŮY]@af | (Q8DAC1Hy,?yO .siy ̭LLafK.Ygfd4wy@w!yM= (?@!$8-f*/&X~ rQ-w"6Rr>(ǃiϊ.δ$2%}f LՇ))&Cx8R6}wiTq?G2SVx c9d9أ?RMMd up?03GBp_b AIGLPdP>q@Lq.$2' XN}3 ⁦cZk{bL/Y{#{9L Cf,hdSp@"= 5 C^[fCL$@F8 tXG 8+BGy\C<w zaH :Y1{{5SIR~TD1Y ,W S~hmApRt.A2Y\<lPHJH( =dKǡ AA^PhٵhGP!=&ja-IT]ՐIHO}a  =? A[O UyDbi YR=Uԟ@dP04N) Nq$ĠBMED8݅y]#e|(LQHD ,,? L iE`L#1EHG<sXp yAfW x,B"G$BADP|OU0E3)||Y(WޱHTf#ڎ-QtKq4PI=deD9P|:cF؇pR$F!!BAV "QJ_Zxfi&P@CWDJQl|,lPԀ(Q%[ 9ԙPqs~^1#UfTt/^2E=JQ!#AQ6:H8Ud 9aD#aaDLM٣7h#\_B* 8eC{ L(/\eNQAGBVh|=60,ʳG l RmdGl-$4#e p$)!uQ :GYDiJPv CE 5??<øEhX mWI^e)0}GpEf&fXFd_Dɡ0FS%aݡKG Y #8ŽhP dKdX5L*33XJ)C)&P&%"dtUυCM";$³&GU QO]0ƙ.1b'Qyu譫0fg e DƧ>)XƏع*^ƅFK42=(ȣVlTG/AHH/|-bł#^h{ADlH+EZdk֍j[Vl?(L؂IzD*@CԜs̄uL!BiAB*:?ؐ &dO-%UؒGB2ݥ6hCșȝX4XOf*?JX ͽhnn_mPHJW]">`טnTٜХV2KY x;nךQ)`-񩡤*O|Zm6,Jb)0C@+O z'!!0F'k1fs/uo1fF U]Pkx>P0# T^{+N ZdTPFP<^r }CQJ{MlIDHH|l"I ,,ZօfJI DEG ֋Fhm~AF$rG Ws4o,x Oo ,UmYɢ`92:lPLe8O..p aOBb0+;khjxQeZ٭<%JlO֙@^}\¦}*-/Gf-=T ?Fq)VY. oZ(Nuro֬,:'¿/ZWt`Ԙ/ۛQG^)p _YlzFpDF`DA6CODCpHL|JDDJ

~$=Nl4.ldfM]G7Qܨ' `d`& 2@HT}!CfH2o`H $ȇȃEu )ʐB'Hj$P H#Bt!ŁT&JUQ]>zu"\ǁ""Hӣ_5 ݞT`)5x'*&[Jr*R%'++0>2fL+y. K0H)cſ7k=cb*.G QHrEeIihPh9/$c&2Pg-gm!첅?.GKd}E q=a3=W6d{Tlσ00HcSP07|ޞyfa@ö䢻h[LvɮQk$ JTAJ"<+I*+DaֳK&3ݠ5t3<O !'Np@yT{bH!l$TRR SH9R\W_wo[5z?L$KYZku((NI90[8  (@scM2& T>CΘC9xKhB14F2} e0diB?@5!W# /Q4dq1Hl>=m??C@d1mttFɈ*%2QW0!D_.@#!Ї>0!y4biC7Db DxlJfTGoOqU: m7mcnA"Cd[,<LYlEpE1LHPӑԁ,+IP@l6![0iwl]T=Sxob?$!~jȟgTGy??S+~(OQRE} "[jR?F. VP*_To'K1"0HEQ  X K`U''q^2קx2l 7dKaaL$F$!D=0Y1߈,d/ZN>9-rQy$Y(KHR=6)M(*Ԑ_n(Of}C#gA~&-Q3ь6Iȶ62&kZ7GrA΋֢y UsլhxM]bQ 2,13e)()^r'&Ob.(Bh-0qKFyvP,-a4,ח\/8iqC֝gIf7iºk+4t\{1;MwU )dJ.~,&$n~P} b:JOwJ*  :jbU$O|Pe$F|%|[[ b " ` @)2C:b&F3ZCJ>AdjBpopx*lZ P?|ﵾO{^ku^RbN|DG. :z r&MGPHKNKFH BIڋKt FοxP)P鑞Qy0ˢ,$NPp 4@HThNƌ&ĿDNB&abV|jp'(妤b*˒. +`\?_&fj*R@c b-VVXBղnkƑ`DPqve|f&sB ,&!  Vpo('^j(ANɮh%:lzÀ!~ lqi/VFl&o<TkZK*.BQ/e9:VyrGN$ ℤIK܍1(-;mtrx>j,DM #LHs""yѿ$ $F"UGR$gA#nB>_ >Td{tEg|'& * `J+Ə⅑ Beȅ4?ȀR HՎ$Sln"1!B!,GU~ "M"% A1 r)s0VR@$BqEqs63qg,2idea`F|-p]hv/Du`K#`dS.JŲzi7P'ɩHI `LIuO\4*P޾Nk:B٤N3N4xG$qxSSO,p=$W0 лL#ͭAĜd,"L`&.B\p1jO^OhCsE"b\@L( [r @'1+\Ш@IƏ= c+³F_<eG0gBn60e}P07qwO5pm*61*U4q1׶4Cb,#.P9qFPlM@GLku7(UZnubtq< B$ =)_Y~x)g,"$$`^$A#u_AyI~$NiBt>Q5~@QDwc"(&H(2d P&u dPŅ:4pJG.C㔪@^I7Tq@6F#e6lL6`8R$sekihBx 0t!Tw5rxt131MH Rktc7bg0pQ rbq3VQiUKS]@57gU-44QUO .e?`@P"ug°rDs,s"UYL$VgBh;EJd[Q7~IW,>yky=#;rx `i} L`}Y~ѯLMeMl"`yNAN,Wy(*Lv&"xu U,X^d_,.!pզ^4ivk G~}.!@sR`SbpY%h%aZpdxO,vHM^LO*&XՊ z6ffrCppR|Dr&*6mU,y*Uq68Տme0pP)A-.D-+rŦeBG*Y}ɝə߫ΫYu"zrJk[ߚ)֝ X `9z=&tuHVwK΄w L9L5w&װ!`My>`a=?JuL@ PoJ~uf) Ni,ud%7 sfhTZpj.}6!@.s1{U_IR=Ս#ߤU̯_U)o| LAŅ?F&B9h"*-[7˘+ukUYR!t+M6SNO`&A}n`R:Rw(bƸ#ecχ:+4YI%xdW6)J-9~iqyկ+}iDKO9],$JjK|ϑYKI?\v6&X`Ìym8e8wĠ~X~35 7jWL^&)9y=ѯ`A'2y;n_ L50XkVb"h6 wksÏPVNstn͔bB&J2*+W,ĽJ1KEa4)U盢$+1[U˙y+:wY\ۜդHsKݠb]J-bQ~ib} VݖwTy$EȈ§vJP\N!BE H'|lZ}m%7SRG*rQb]Ap"1r"ˢ/=N@`oWxHd;=ܕ-<&SNk9&k:&us@vM8? ݘн'oT/US&C+HGng|1rmzQ$#̱DFHx⽬ 7 "MOhij`  / :|1„q 1ƍ0E  &&;TT@& :0Y3L;{$Ȁ£oh!VZhĩرd 0 ,Y`?- 8ONO*d'_*ũ%(q< s"8pcNIjX{͚liIRfI8 wXEhЦ׫}!t'uH5;ń'|N S σOe_=Xe(H#H"Jzu !"zeuF?""?@숃EA80XgωEZ9@J*H hCԅĀK4@5,?r&k.QSM>'_>RG%TP9%]BNuS>B U1KtE*@&RR6DfMQybDXP%B3_'ZdCZiWO>? HXKu\zEElCNfE8,[fQv&}iPAV?Y LpmކnX&wQ%X%)B QqgWEQ %'va0ݗ4O8`8,HHC|#'&fXN!y$!bT(;A8Ao89ֺ`mC5"檐)'p9t*X4+RH%SdPԢM4)C*t c^),TH!g.Dh&TkQSeS9v,*IcU[l)`lEMx}]C@\d=ْ\q.8>i,ը&0쳗~#7RrL6_ɍr)UHt㨊ED,YRj؜H;?# 0=NZL*)̬ ~3( ?" UB>H'#u 3dm"F93 Q6F !Y;Q(TEf  2fLRd="K $Ur"s=iݝbW&eLh2I=IR)(R?) K})+>Li,y+*ËGM={ޠ^U5s9߲T>ȳ}s)ǦDƜCyHဗ%^y?D,aQ__fiYb  /ʰ4Cc9Oh7ԮPzLcl;UT6s3F}&u>SnF3 P'Lh>p: fO+"GFv$cԢE#56BiPP"K17mGO`ƑyI` U/6xbai^b&H@&S\uZ6iv:'t{*-%z:Eu@\D/T@ Kf73=E巨jSo[ymE Mf)^Y~lRW,pZI9Rm  b0FucC(eRt4+1Wφ,!8ʇS _ԧJna)], 0 d|9zΞp-2\ЈipQ Kc1LJ1T$Z* dŀL,I2*)"$ $!㡈$D%htʸVp9-nY'VN<TZ,-wNY[[2å媞huĎo]ɷ 6YOLx7q<6Vj|Y%CKݭJmw p||e^Y0jnd 0\ N>t,ƉC =^!iwohYLWzNBn,{]UZְC>.*-7ԹU%W4&r'[zS(c2N뤻-${qʻݦ--]齃|(|}u+r|09Kuʕοn+g0Nź/L /ml.(]B B;FK=S3VC[q);bS)C+{b`7yI"7/42sHE^D^DsR#5Lt-80E)BuWWa0"a2`7#1v02#6vvkw7H$1P04A^^Qс !Z?2TQM #_dy&]rNJ%kfkckz&ےOr[mqdkcLl\[ivˆ9d"M_]?xc,,ԗ/whqvoN%NDi) 2JaSHa:u' {=1R; a)aRc(s;{Fkur45dsJO(#G#FM3 Hu vsV40I~@)0.I# @K`g ppQy{X9elj79B'K &z fy|&M9(9clĉQ(Li*cu(&o9*_T:t,~7A}Nj|9̲>1pV1d\`R1 q+˵H'2Ecs(O1A,(:$:\sOA:Z,)1I0Q"Q/PkW$4EX]EE R ]&d 62u.VqDVuwc JԒ@ Uw"b$[hV]8 .qaw^xf`!2gax0Mv&('d-gp-L_LZzRz&'֊l R&%<;u2|蘑99s*+Yo^s}~智]F(0tq񏴁,%G1Xr[[za2&a&JJ-(95:b,:+jI*'cQr;,JB5Y}.7 QGDsN3b&fEg3Sf#5eg UbQv.&y5Fh+ ڮڮ&sW(!) !374R^A~AB?$bh7$V%c#_b>S 9J"ApU#suWA :: AXU2;6Wp'd`Aw1. fh@34} 7\8ա'{ӈhK04kOGzDJm[tlmg*&f7Г: qv>$_XYn~jqh 9E>wp-CC8CT;Z[JG&*Z(c3&k:S)Lv(؉:j7DqʱWp 2@DF 4wA쑇e6_CARH`KZW&cp5:6ۛ&H:S`Ĩ uuE}1JEK6=C k7F+J4%dl().GnO5N4+jmbk1KzVE#[ʃ\gr(`9n[M09:t?)s1+{.4_=PLroZOz19O+ֵX+<@du1]Z=!㔝4zb|?} <42G;rp w'txBC@!i8#,chaɓLV05j#uPsezG*Ѡpb.( ܐuWP?$[C~ dh\2@3ǯ 3vl7f@9W 60a͐ 3̤n"y²\-k;ܽ}ks&&QJ @Z\J:9% }^;$O=,#n}.ɵ؁i* }c&)aϴfnpIf1{_, 2k5]o[J9B[ZӕW+ݫ_5-{N:"}^}#h6(&KָJ:ҷb(ŸS"bJjfu!u{$Դ0f:[N,+aQKrQ1E.A#GD4$#NQe tg3|*HuFHN/fN#X"*-y*x4BDI`k.q'x,usˊ4ReW4<Viv1B@EѮInWy2\Gw-z!0▽}_d9Zނ Y:m]Qk"reW9mw鋧ް_%{QjۘsNBQK?zM9%l K(퍂+|B4\:uz)oB,+$!k  ?||/ <7=#e[5ePw%scJ ;a  犐+\yJ%<9pSEёƿ>&IBCC 'OsR/9L‏MAmA<%UI\QC q30ˠ]ZjApW?z,ApK,XPObZ pQo-EF/HM8g_iQhEXPڀY_` L&ǻw)"y6_)G_:;};?k/P;͸ܖ>3@ .܋nC@P?>.K/ .P8|0.ʀh@IǒP>#ɃT$DD|h$F(Ç2(-D!2 5'vAhNW "!A` 6cO6@K?$W(TH0 "3"DSDi-`$*+Ih'2i!'|Zlk[AiRӊrIArOjS`4/c,,-,p +53-bm^a; A\E␳af4-2諺j$ UH) PC I3+gc4:; [,@b BK 9BUZ|/_̮&b<f=;O`5QϣHq)KI|+Ae}xB(j,CL p-K)(1ͫ|+8AObF=7OB-E=-8*b.N0"7>/ &&IX_znMI]uՃ4 Y#u "' QPLCR%m9n,x@a]!N߂L.? AH49?e-ƄhD4^[Dy9f^;5[;=̬6R@)$ YDv-Apj",G#-#d|'Z(I Ք"4L%*?x$c ?-J-21P)0XQ0$$`$hBAx bJemWk܄")XUR5@JR r0̪*FF%.,lKʊRA0IC$E,N>P:G-Hm Al&dŘ%3!*dLJV_ U9 iD>/q>vKn7ˍf\o&[2qµAZEU`|DMeV29ti ųq'fM 2k(ṵvH>%+vpˤC#J+iZ3p|'Y' B ᨘsA (%߈%z}yϏbc T$FGяy\pp:6]e9iPEf@ 24MNHB=7s!rxf!j*g'DTDi 8fx$V6Ez) 4ZH!0 riȴP$J3N Ӌӣ=@=Q5<[ 1XpJ!`#"BxR S1&Y,p i; +7Ǒ@.IF?, 7B{[&)꩞;:>IRMO0- $0dAL zßeWx(Aʡ,BB$| a^ F]ɜ[z12B(/)<؃#)\:K<=nq 3PL<=@AI)2D!>q鋔Ir M)$Dp0 SQ,-h=´S4|EÔS!S{ESU4!ܼ%ٳUX|ͻ ˜35`N8(:wyF\tFnLOz6 =cJ?ѩԒ tT4%m;7:8 HP ZP%7"h?ݓ H@BBوG4l + M T T4;EX!ڔy S  ގ0!P0دB\UޜUdҚ?HeQP >5A 5x 4T*r,5bؤq@b3lDB4ʐrߪ[ahO_%8߭crA7ͫ!"k"ݘ yF{7&Z ſܹ?pAxJ|Yh.̎0IɭPt F>A} 2<fAeIҪJ"~(3(9 .Ṵ܃a+nKE۹T۵9on ڼi4@N=&kü[X=ĒbݏJM43rXȥq=L[Udž iUʾkJ=l d :6 dzN&z+\@QwpaxJI 3A k(/꤭"$(9.j!xf(P072q%3|0vx7:"8@4 YLưc9NH00.7Y ל +^O7J!9U ٭ St;MϳM݌|tYd:sS`fT\He`9hXCM ۈp'u>_07Yh:шi w_$jo_{gթoXOPR0Wq` cymIp DIdY(N / Q0a&>aJ7 ϟ/5Ïw/yhѢA $EH$HP$Ed -,˖-)@&A a&34D =ĵ$.j1?Vt!^PDffAlM`J-H],̍ Ă%J-=lp.R, MecUn.t^XM%Q-,ڬfng}>{g h8puO:1 "ċMZiu E dXɹF@uX OHK%\qT5PVeeFDSdnhUMDMF*f!bX āpTtN@CM5H*`IEDP Iژ9h­OF? 2 JrMRS{vIɽO2'IOH٘rAxɌ?،1_z&AYpj=mcUa\ŽF"KFЀkN\nHCO7O  % GYт8qf»]et8WNK]oq<b՝xd 4$I<5dHHӿ+V3` ¿ 8p(PB hP@JVt2$@"+QqSD1b7iBĮPRcԳ 80T0+)4 2*?EG#@  @ v6A/MdB#,P10!$glܙK'y2.!2̳/Fm!bkQqAcBnYࡌe=!?۟՘J$` ^8hYx ƖX!\p BHyK. $. $ s-C8J A&0\sD, Ӕ 3,/P GEl@HcHs|@)+ EUD :j1@/%-6N=ڋ+. HQ ȕ"""J(A84$MRK #2Ir騜fJ(^0`M&f* J! Ѩ h#D%R0ʠd 喫0<- _7:̲߄ *#:2̰Fˠ-WJăLJ2( J$2g.2ohcPl тxȸ<в{4JNqK3h0rTNbcyJD&orDJ%SRţ 0|30tC͂9?S?&Lj4]8} lYɦzUUM#)x^K ^4*D4A#Zǖk ф v%bMnf2Db~f2e:Lp+rQ$41L:$ 9@ 6*֪0i` HBb qD/ɀH9 @yHyXi#̈ヱhf Ʈ>v\h@ 2&S:za ,hqVb4 mD=#nlH!D#,m_0\GT)J ^L&Oue@,u{ NJWJhQv:XngDT\~& N+@ AyK@uME/ҳI4+!# 8I(Y׈C9*RS)(:A?@ sZFupu2lE-k p"4)LI $KuJs rx nPYu&!03( !JSʰlFc,\Q٬:%ӈ,Ғ",eJEC ]ZVl9L[/Jji0!55(I,DpcxDWqn!3խoc`pMb &I1'R]$2s'aJTxXǺѾ(Bg;*aG2Iu$KtuI3R"`+"O!iTU GM[dNvX)B `ɚ',< XT_ 1(bm:PjK+E7fH!n1Fa54S+nc@4 ,H<"똎G,y-1^*t<UA:g[BpafBP&O&{! eQoaKc46 PP('cњ8DXc᜴/(]FFe(A z1 T~"ǘHlaC+]Z/3͡A#mQ7:,aG<鱄TB&rmJxDiWyWV V66ؐWi83tԣ(ڃWQ{o2뽰nT8$R"HX#;ݩNOfXL%Yq{-+%Ԅ&iMvі35OkVYCo#lVܤqޘs#QG= ޒ~Xx+'GR#8܇sd%h_X P#()GRkPm|վfҌ28:rKҏ%Ҩ|2FZۡ $+khu55YM"tU*vF֮ δ$;*r"ppE>P]. @x0?(lipA<0f5#jDCHC8tG@>hj0v(9 oJI,c?N'K1$q#/dD$F"J)Jɳn/CPgs^Jm4&KK,?fMؤK]D>ք>@G/@@SxՌI~Tl)MWpzNo$J$rE¹pZ4xn,h`[ƃ`"ae"-e.Q`wP P˗tJd2lP N*DGxc2 2d* \d 2ܑPq:OtO:@.1^K$r.<`dmhJ5Dfk22ʼ稌c 5 hЃ6jJ 8F&MFfJDJD F SX˔#1PDNxH- d?1)MCic@#T. JJP|2"y|yd l"x·&1Sv#NO)@1y-Xn& WA 6C/U%`4{AH" &`de<҂B!:QX. +.>+c50MP93iFj@:0EHIw<Rnw%j0">&7igZ+D^MN X(C L$V$UA&3;; BY3bH-HF!wl t5 G>ro@F[#jLAj<# Tb_^jlP7/#~ GIl!DRt (+pV|+4rJlj1zKF$Tr !+s"gtR#(4F5tS".OPMCoNO$ &4ASxb'Ġ &52)FA%6FCd w"x~81]F#M#;SbE "gLr2RjDWO3r(q 3Ĝ3> rUR:(z U6Edmf phHAʨ]1rjaryc禬\*0F29I2z5BH7&((Kn G, b=JL(ϨmdmGx@S#THw84El!\ˆFp>mc2#!JMD8 GoRASn3G~nLmT#b22AUUk2#`1sB a '!W&m/;E):bf0x̸ITz6Q!XF;c[z7R"9B.\EM ~N 3b0_,BX V<<PYe5^;1p*Y T?N-EqyI*Fr3I >6~c444#EgJo @lv_7$e!U#J#w$M_Y}atep䷣%HԌofDB* G G"zHή.^@kT)VS{Pѹ2 $2H7^^ty6" $R)5תgWN2Ջ25ј X+"os#}V@/PVn|"t'‹5m7ጟ ƍ-|ncB#H3bmmUMb{[ 5B4lg.P##XW^1G O2ð{E$Ú;u/[<>_wp <5;k4fEKzFj"#$AL꫖?j@pF7r_{6wA5Wم_472{U׵Bw Il,\vnA)4V@B{%rCV #Թ\"|.nHRHDfco54x+B3{@Z~>'r(G\ƉP}m '@ 4 A#M#Y2S%9Gz o\8RF1Y+"䌃&Px،~PߌM" W?c6]4p„+H2FP 9@%"o&ڤI ɛ7 ?@}j vh?8.X@0X _ ڵ@QqfZ5B܁q*H"(l&kW`ѶmSLjA!p)XBFm5-,5hԸPhMXrE3Vc&ǙyΟ'0[>_iÛ$|꽶G [aͦ0/U_A OG'@T hlBE ^p1?p@Id @Ki@WL0D#E9`@P!U TlVYj-QS? (XID?nQ_@ETL7ɝv֩41~AͩBW)t'CU0D-)'`@%G )$52$?O?5Pt@Y6TYp pXdy5sXr5c9O 6aWkŖ[qa:ER-Y0Ih`mfo`f0kfZ! kbeZ]v}1NMG?X\^'uy5@{^Y}A@$֜"I9? &j~đPA4ч }9߁% 26`@X T-QVg8 .%*DHNU~sf6)^#aĩEqN4^!A9hCjɩӶ@(M LFG:f)A+BsW<@줼l\LYSbok dqeɍ蔽pۘPD6 a"f= @PpI?cf43΄3 v0Facj6A L,\Jr#,-iye JV2 <6\YutCk<7YX|#QP8LiX*jRWD ;-tiݤ(eGM D:x7$wA99"HN)Tc'Q|)Rь~2ô\IJfp5e@18\k_B+֋ a K.Py S/u*bRXe+  >,c)V* "y\2mge1̀X<$ٹv4Z5-^v/n E#QX!sg@FO~ FH8EV iB2©Rx^ #J sSz$H@N{ڳT)3 ĔB MAXYM;Q"+tʴ-QeUGtezSD (D?<7)W`LҸ-T2?\dH  WO8t2u^0z$AeK ^ke2Yث߲cT/@hB@[@Qٕf@4!Mz5Xn0R &,,#r l ̒%G:\4eC" *z2!z,u!*hN͙ C eWA%}[^TʂhF?n3e 2N"ӝUs\u;5 u"H?zt"e0u'Mr@v܉ml38ũv4\ 9W ramDWocS0K:d0 :7AK=0$MH o%mbcn$w*$pt3KmV {6cJʛ(l8*qcdD݄ONԎL wS"%#K&䁔SCW,<9^kQTR9vp?,`s>[h'^sjME2- U$8@^:a뾟$noQD^=MN C\WnnO@nsrؤvTEfdYn[h alѣQ.})Re5͑{]^-$42v (3O 2uJkWH/L3 ÈR( ĠRsgb.(7S!w!r#'SQCcc@S)7x3KdR9W4SV4(! S'Qe\e4=8c!/H5r(c3!3#y)up6b7(9#`WG3j&HI_2GjFY4M#V35b!'qLG+GPx:6i7xWv#ƐxC(zxyWc[U6srk Tbp `#j!U;LR*̈́"%NeH$MM?q?BEQ6!S,@[12qiA_${-`,5, 8$U~ 5"qT!Aa1RCnVbԒa Re!-q3c6c 8*r?rGy@%hd?ws(tɴ4eESFVz!yf@dvf([:f Dt59,yQ9GB&iVSvrwW0=k[)Cwnzwhg:H76c3o8ZwG6K(L~('4Gu[bЖZ 96##Gãz$zB4o=!@N"@Q4?g0J=Qv\A3+4D>t" =,֚ `ܢ`ȋZo ~SQud6R ōW0d0 gW1Za1t-A%g9&G Xͧc=E+71dh Swd@"u!F87 4WE!y7nc96QOwx'6+hUGx 716C'Gi#-ytXbatCV#:"XeBV)$i&5"ka"%u%ZsZ5KV)Q…kX H[Gt5'&;lZ<SE ? @$AQ{Gy=דnQԒe-ч7,` f}O1LjZO$$I! bH0#b1ڪCBġzyHӎ*qAc!2#S8By>ucy$_bE*DUDt"* dV]vehJIb'W]Mb*7:8Qbg59 qFjf7Ym#XoˆL}$F!FI|ZYj"Io*iKKw,A'?;:T,t)[p7)e[w'_2kXlHZvR,Q+"ByqZ{| PrF )Ȳ=Pa}pַ֋Zw{~ʛKbpؘS0An8*䆜٪p#Dѫ?hB1ZSJ2ԑBcXQA=d5G&5;sY"ScuUTEc"ҭC"J چy UzˆWၕVY\:6Zɒ 'k&!B\$iCʽ/j=S)=b"ZK6aG8bYx'0%L3's7;LEv\>{l./7_H/k*?N3 4W_Tn$e1rN7@8m;z m;Z01!ظbэƑRb1bB$t-冹 lC0f '3լ,S;H+Id d.*Hsh&YK72k9m(m07؃ [~ɠqu6q&ZGMyFVR"'1^wĽhjNh8k&?*Ұ::);6iZRO8:j2Gz 0ElJE\ ̓uk2#L@|`{%p3RaҖ[޸_Lea7ҁw1\=Nh^}$O"03"srGT_k$$r.~%^$Iy!`#jCJmuPVz<~(5T@{5My}JMԻ9-\הbd4a8*F 6+G)+h(ik5wF=zc5kI0ng .l"mv|Qy$` q lU,l(;! l֥l%J0:C }B=}ޘ Om]QOlE߼!%T~-mšfWMa NM@$J>CQbB8Xn2St3QmI8TVJ Ä/-ɖ8h Ȩ 9 A K0C Ѐqs G"|@PB/pB+pC1D,|OBt=pq*h N3 k)M\H(%"\+&\K*d1IGQ R!4'=N;ti> ώȶ RFU:qII*63 dԟ\-꧚hZ*)MC\y ~V" cj}Wck} h!?2|]zLceԐf4!Lԇ!j , nC@0X~buJ%< Mx?l$* CP gk@hƁXqiRPa1$B#FQDn䴊FQKNU#A4B SH plH4HC!BRt8KPM"rLԕh'I6Om2d#nJ]NgH$2$g6JRTJ^HQ! GVҧe@IW"L~=Dqlliժ5KG *PiʨA5mft6\}A n9'@f`[ ܙ"ϝeha~\! l]{Ix13 &8 CMF0 %0bD146֑!u%g>aCp ':խ\GC!I1cx/+ II]64HQ#c F38kpw^Ql_&_Nm%8ђ梾yw Gzg0nHӣB&>` Q ; QL&T鉪VAN|'BV46{4A(CԶ82F-SE˻Z9vuA\*h^FUt#ε2 %$1 W]Km(MlIJ6Q0"4f!&=lH u==C]G';R"C< f©FEIP͢(ڴ\]51~] G %X]u(Bŋi}#30E2 b ["X0 $Ȟ9C CA$j @@+I#j/*#*99¦:ZM:/H:1ɲ!:h_%9ǩKD2L";D;$;dȊ;+Ee<,HD-.IZMH&4,4$!516,9\xY!']5t2^RdKF|Ćw*6;K  /(U(A{{z0608?biˉy8tL@jsQ5qzk*Ң9+B#3(c1u:u; +9J1P!C8A6JkDDǖ<$K6A%)e3N39ciriƑOAŠЩ lF<ɧتH(ɞ䭣B'7l 8C;tU&84b0Ɔ@DUQtѫxDֳ=' Pks4!(YK(JyK:zyK4BLļ 8ӀH b^JYiT G!ٺ$Fk9-M12#CG2ܜs142:jaT::B*Af$>z-|GsB 3pJOZr`A$qj;w,7D8Y: ,aI4AÔ5 J(=0&ʿ@MJdW(/@ PQʫPDd RQtK`=K!H|k}˷'RX 0 bi * #15 1=tĞLV ÊR Z Sq;9"3IQ@u#C#13ٹk Гt%夣H 9!i$Aj3cE"&۱pM",+)ђ)23IT$Zr%=Bչ}HJE\?;9 ?=9CkP55o5*|C "TK)]'tFsJ^aW|{U| ؆( 1!㳨P=[XD]>ݘWy5l Z !/ES}mSuŞ1}08jhAii,?M2C,+K$GB*I>INqNyhݲ4A**"6q9[+$2`k_*I"Te +Ǖ 9PNQPXP(b5:P@hÙl95^2_)zW)^Hhe&PQˊOJa ՋDRQ$*^R9YecÔX)K(L(E_|=HYи_[Ƙ0_Liܞ14xË[CFH)n.BQ 2+a}GE=@J:Ჵ᷂tI"\IN;aCmԝ,t]A2&1 ʡ1!N%g2FϦ+OcH=c͒AM@M$QV'7qWB Y/"D jd 3 WO&Xޫ@ c=lx*ek[$!Le_6غƍB0(*_EҘ Mb.fcZU9FQ1$حMo=ViSIAsǨɹ) Ԉ"+J%Aa6[<+-Ē3){ᶑnp4CQ0xtp3yi0~>)暢qm8qӪ- )츟 YgwFBb9nE3D1s,MNT-b2 d%Þp(Ne1HFsJz3BЇ! UHhM@~QG[o#FdtQ$lCS6lLGLIJ{70Y)䈙B.pkL"OyDMnnDPS͕;єDPU9ס&0N%5)Jrד. # tRBD @n&'vSHtr@ձ'NzxНOF_dd_X!L{[@)ٝHVZ܍dn?D)$IEl]^2EFŲYR,ZS>`aTk,ENjH刞TFh|h.ˊ2дFنTYXĝpe  (Uwđ_ݥ_HHD#ʸ4Ib҉-.$\$H"i,Ai2fgj 4l a&1ʍ(Hp*0*G&9*&u'fUfjR*oDZzV Z@r ^:~JJl;*}쀅ʎd)%Dx nauKK! I^2=KdJ&F`qO D6nֈ+j4jkxnƋJ,ڨ ,jJ+R 9łƴȰPrT bAIM&FPʆ@U.H˒^>Ae04OT٘K@[<ݗ^]n:*~ך*& nٚm*u ZڎNV ptDLrߺjnXJW'q?^W kYU.^`4]I.H+p1Q]K1w^mDkQ.)NqDbmDBT鬄-o٠@>._b } Ȣ+{e_f ,YAԜ2,"o/23)0?#W%39#FDq`Fy\1&/Og Z*R=&jZm6UnN@o6*u^3p)suʭ;ՉF1GݖsXW^z])-t@@1-mN1noJ꧳4+rq1rT_@(.ah˷ʩEa!wE;eUF.x.YV WڨX-DNq$@[|"fVHPHr_F)@`^·2+Qb?o.hA_' *3ɉl2__gm@e7Km | L?DF` \щ v ^&l]nmZ; ϰ+Y'2G+p*wvK3 'kR!D_ר*RJoXO]ݯy1j:)1{SI1r9mo .6u(h!O#Ey h%mVP@~K[}('L aE6I p`Zo_D`iKMA_T]ߵr,9Ǭoa;6NaSMqeWvbye-H`GI(Cjp: ^j:kJ*nl#r*p?0op?''* pq %quVVrjK*'78tF>CwO+|ޝ|bV3zcKAisBD4a0[| 8>; Z )FRORG IƖ!st i_T= GZ,(f XKwj45 %},uٸ,8F\-&,r_l`_&2"~U)F4-uȄe`A*n٭mae<&Ω3muܕ6mqvzDuWMР :*=tӳw}ַrȷX!|:s'F+=hqDտݧHzWO~J,i$WI;J%u0ulW<=&QT LXl&[(n, Ia ǍэLGJ;x^<絑 ^_b?y4f)Jr o\4[v |f'R"V*ODԺq9&]0p;+YG [=6s3}J rD-@p(@$a 80P"C )q w`dAth ,@̚4idyq!K4 КFM&=Zœ>FeCZ( wBa*`qӕ oѮ[v лbpa5@1c =N̓@ <`g< 6_.5@7,ޠO<`b @>x0&DU~{د7Qȏ&x>u3bˆ>Lp$" ,3$o'?t0(BLAd"Fp"(2$q+DFq"#q>qBb%ZO~@BQ-P*JKӺESNGhE1D1ӫ23UQ]AjP;]O`X@Vǖ|bG.8bW΢}Ȏ@κn; "%.n~_W?}8`*<ЄIvf{;?-̿?SGֳEώtT*D^!-g3pJ03I %HeMTm&OEr '@FrPiXxȔ9q +;,HAdhEnUfPx̡H SyE6)M1LB%12gъiUBBwԔnl``i\nvr;9Sδ-rONx+zy(zg`1yBO>9h2*1h1`KbcJȘU*@}91'٨f({JgoG+8If$( r^ɾkeBY INϒy_W~+&zTϨmS9Dg*ftD\D[XKd#PDʦJ+`zR2mJ܆9e+/rNj-B5gT;*}u.0ie](x=J,t peT^pRױauCP~Ɖ\i".oshɥ.l@ X j#llJ:x $bl˶g9Y+6/Fg}>?sR_CȳD#%=Zm bChvh8.JijKAP"ֆ*%#nU Ph+fs,6P\g8^g8xCvgݺԅ8cĠZ,^`z^^#|,ƗH@ov"fɳ'8."$Ĝ$HB&bge.&(&xEfgCfLfF2QDHd (KjK "E! $BXkl>pUzj!Sjmqmwu/bbRfj0SxR-QEQ=n<2 J 6fWEW # #wf'ṿv@.9lYx!6 )}@E%1qB\`vIb )"n>I_N1-@t, (F*ijϜ)hJ$C2%+$cirNDD0ObN#ġ eMԂ hiK'կ¦h4m#0M*ʻNf,hRH\)UNeT!X*qxm׆SjP".Sg2Rp -47=P2g!# 7e"|"C|zݰ#pJ {)~d|f+`d->H'LzR@R  6FCجb$*(Ψ)>rh`k a|p.> c;m@^ɳe%(Ռb7deTzD^}OVf fIf"Hffpb U&4F?q0B9F 'kI.@;"jHr &DB3rq`p8pz`0pN7.EI4JT`45A`R2BtXtmƴ40v# cwv`<&2wur8wG9G9R2:3f5Apc L;g;.r*cx?*P;Ų=QKNnV3C ĮBq;sDKXOUX4/P>tCE 0%m-v,5.7Gpˁ0L$(dBF Izu MH$&,nRR$~)= w,p,Ufc ΨO$l_~? A+Yk@l>fu,鉞XBْZמ*BhQID<.N\+i(p5,܅4"b2H"N=l4;sv`VaadwaOSIY Gb?'D3)Lg MC#yMZt8fϥ ɂV$v/4|d|g"  kDL08D.1 aIi8R6β`dX܌C 'D@Kh:!,`Tr@k%@X,9hHKH8k%PTHgOfx).ÿ ,tHpͧ(Sn6EIyCTwI!V`5A @5!I=*Vl%f4 ֥?6"dɃ]~-X\VEbgDȌ^|Un[d̰$e)@Ec2')DPkĕ'fl/6CڳjD,G&"C/ Wr([k=#䥁/ dv[yJ:tI:B\x1F;#>B.01ce.fpp13H1z/b,XIaa4O"!zuTIQ%Fbg."6,u%dŭlgBL8Jx<0Lrm908hdG >k Ba>DC^nqjK==H'6 ڗ \FK'! A`\ $TLX/H"?$Ӟ[+갿Eb({Y&2zj^1y8HkdaXU{"`&8JMst0¸F'Liei7W'$wc ;"Lz5_m@2.$lq}xb&!2_{ʂ%@TѰbjd-L_ȀʬZOFvB@@7hAGzXOXN'* qUxSF؅&aOK +7s1 ^L\ŕ#8>צ- /]۵ 'a\;eY5Vz0W667܍}vHlv#YL(%c%G(^%YNB @KVI+`n5 G9lWK?K0pcgTiU?MFWn~n٬?4SK~bEg*e=!"-h,O{pGmiˆIM &7F~r$S™4'j#x8uveݵݵ8%_JJIst~ ]3c MtY8͇LWE6{ ngP5@`|~CeoˆT~>arD8!Dib)˸_'YBkb]Qqy!h8"$ThD[_3P_ (Q߿ h"$r$!B9J$PңD,X__\͖G̡1=\/Q6Mh*QbH*&լ&yuT[Ҥ_M70$ 躀k(B`{cby$6טcȅ/I^9F23f!լW3/P6ڄΫi0a̍ ?=6ku0-K|pؓsȯ[6rػw_yO#T _o*gk!i.hGHmV! pUhqX%fXmx`zPDAE!uJATO+4RQ!K9O2%ҐTR:A&UYEUZIU!L"QXa!Sܰ MMfW]{]~F .z[D$GA% %x_vfZhɁڢ顦PԩDhEP5Xv F'r:dw[tɵ_qCu_GD)W]6\|>;{]xawxji*4~FFDqK.oD0SHp':̚CGD8cH%(SG%S+KԓO4dP=RSaD Y%4[yf`]!& \{矁֠Jyar:U_c)nhɺv7Xj݆'/E-h]^g_{8r*9uɞǷJGsyvJXGZ^+`Gn޺챇00z²g8q+dqC mC yA:F G#uTdKbIDL(RlS;IEeRIL }2Iv'kGi\X ȴ6ML3D'waI$0A\A܀Jvt>Z'qP`sfT M!P7\ ;!h XO })"ԋH_%9τhFq[GUѦ^JjDa1]M7!G? \}SrjY%Y&3 $_LR)DTФ|G@_>%}T.I\$ a>ʃiTO8'[oHGQ%X2YuV n9;iI/|&"cgy%EP֪h;݋sHpE&RxݱAKQzeTv,O@aRE)5y1 Qr&W/V5PS4اX䔒^?_^%*`ڂӄ@ILhGD -{(+6 |}"Npd5iC4SrXRnD>>9q-\A蜳Q"[ UtDUA+V]{1 @=iΜ|k7ewK@RvAP)IL9Ogf/\jHI)j}̔gkZ &FŮN\I,7nXSd Ek(/ M(/:;rȢriu5Y ?֠"*ٯD׸.gP!kG:(o';*c-װ($ 3EF);Kt4J%K܇s*QD M%od=Ic9Q{ϓGVo0#dJ3ˏBK> gz֔.0J6*TXc bW"{ bM/F)ecxmZ7X&D@*X֝ 9]VڳZNʹmk"bc&"3s;;ǎ\a==[$r:-MKOi=Cf@*=ӕ,*W9B E&t ]2}VfKjCXClh3]bAvw,b vX)R&G\H9X\91@DqR#'qfr5{c"S0fCW]Rn]UvJc/qTf!y7/E.Wr(])70*bI S#S^G1#6~2l>N}tXi1_r'NMqiafaW&R1a*aRQf 7W5M{1(fKЖkWtwd-:f2;G""FE0)S59f*{wB3t#G1ZhDBW%n e/TDF2a)"8TJH3T; 5/ˢf-ucr0`0Er=1jh^41rXU'H>>'KF"Hj}T~Y~1>Qj^r耛)pk)6_BfWdbXmq(vX; 80cKhCA2Ӳ*Q J1XG67ERS$! ܃}D6208Br=tsٕ/eEpd)>ep7U1@*ꈎ*x!ı:).XH|#U^A9sg R#s[IV:5XiR}&9UQbjGȒ]BW`FӈWW @ QcN*j|1W6AxqM|9Ah7!C}J"1ݓ)_1CTO>B$_ f]Ukm M_+PApX;1p&?Y7A]F[eVG1|"hH^BGu#A T&12 (#샐}1#$$@U?QtV')TBv"M&RW%@љ '#"l(6b& MTA蹊附EI陃!r*3Cp3Tě蟳Rl)hF%bzN&iYdMtWwđ(a氫%&bQ)5Q7ㄯ'w16;v:ٻ 6I2;0%H2J̼:d85 Z##mAڽL ;Pi{i)%4qp8r<*I7bp>{fZqqT\@ ˃/gc.;^3zyF˽l2(x*_9R#m(˚u?Tj%)\t#3CTjaj*t4;N׆WVŇѻ\LNɀ](]{ՙȸ\d RB2hO[zG9% zP J!!Szd 884dip˫hÅ;C=SgS ^2{oQߍ,_'1y̤t~ץ&~rmde7\53]ؾkj$Mc3vta[6uWw«a |"cy¾i{wao׌1TݷDkC1JAAǟ}`AA\,Сޜ3ؓnpZWSon[%HwH^K=r<)aΙ_;>ei2ƌ#3#\~s=3~tsMJ>%X٬K59q5;v[-N}ءhMi~XW;Ykw:ց*aL+COyK٣ZG;2dI{'}Q]*q &" J={> b ׀Uܣɷ*ZOY=rmƎqg *0n>Fy!hflp􍂺Ls!:"H2Ǽ̬nb'\?`X~y~^M`3\M'MK؄tW]Jl h) sWmg[,DNQL^O͢޾3Kh"]̾eN e-:`a@9ƹ*W/,H=7R dKfw%/|(!~Qm*|6Ɩ>6:O䧷 ӮBXa,A%֯<u}1NNtNb[5Mc h!LC@7(,H R?~\#ɓ!C쨐%$]XM9uPS@u4Ӆ@C,jP:uIRM7]UVZ HP֧uluҿ[*dܿ] @[mIUxÎ&L8!X#紥IBwtCSi`7}UΦ]ve hM਋n0|7…K dȹΗS8I9NhbDj-JZPGdwb-?LAMCcFBIL2'$SpAtA#pB +B 3pC;CCqDK4DSTqE[tEcqFkFsqG{G rH"4H$TrI&tI(rJ*J,rK%OK0sL24L4TsM6tM8sN:N7;KB 5PD[T)MQH#tRJ3tSNF;uTRK1J;< qUGO''K_ցh}'YB]zqC\z&{nV!`Ig2d\1n]=WBryyW)hٖޛ7݁ĽdM5\mBuvBtggo@߁ƹW'큘܆5ݒ-x]X!Y']rgK` V@vRhqqʹBm眸uYbG!FZgIXy |pY`1\ƶX ^ixJngcjٛ1!lG߰#c0Vq \wi=v遊 [ɹֱ1uM f]b˕OdCVRyenxO|yt~]mޱsB{_mhwt0ݪaF> {:<׎I s8ѴA`kB*x n0B"qƙnYR쁎·X=y$1ʪ[jC[/rt䢂t7ojKek"'jh6 3Jpƈg7*pw+cM6 5o1+1!Nڇ;D_H $B6NoȢ&JlԉqbPNֻZǭ. b޸ s.&FH c)[D, iBfd|S5!xm8H3A4 Xe=]9ʖ g,)3٣uY2ZCc[qn@ ʠ~F(X3*\dƔ{8 XS7M0e]y&ڷFXf=tB _-1|dQo8hL:uҒ J< 2 O)Ǡ๠ qV(+'NZtǂ7]δ4qx4,.(y YCɠ eպp8|a! ӫKFI[KKA#RϿݭZ"⥔j߃>9 _;m`?V} 4<n<mc4h-`p؂@?CT$lG@$[+6zXfirq}`l ji8PKBNi`"$Z/p@x։D:J(fzcv?橧6)SO[꫰*무j뭸z+-J΋0jV)-N@@ޛԪ8~W$rʢ<-+P޲3nQϔ۬C}CζRl'Ϫ*ծwkf ?cnHNM,Px@A)-)}Kzl3Z-l-H'>T l`JWiϴ0O;WOJ.6Bp65)#=]6Lo,FxC&͈{ w+%.} ெ#B >m cn)$j(Ȕ-L U@4P#'R?ep(` aɕ,YRy)oK 0IbL2f:Ќ4IjZ̦6nz 8IrL:vӝ}~ @JЂMBІ:DˊZͨF7юz HGJҒ(MJWҖ0LgJӚ8 S@PSHM*RUԦ Ir<êTUլz^*V*ֲ*jUrֶbu+\ E^׽9P T,uHbf?ZAZ)t$BóH!2 T MjWZѢVAgcA]Tب]az*[Ĺ* <\׵n/.ݼnnwz %y޶6FmQsŴha~㐶>HIO=diY$8)p4 Gˉm[Kߔ Oz^#(.q׾rȅq/fܿD+\uKsν{ Y.r^"}oa e V2p$Fp9˪F nLgⴂ+2v9-D7 bEqbx5n4soܭқVK]غujyEf2xCPIE,fķО-4ؠ~@(0j- t13oeh.@lYhQG}=Ͼv~_'Å@Ab^i}nY=?fqzIX{н*t;jO/x[d?vxw{=aw;ބ`FK;\qv͠Qb.i:ۼ7+{s;/¹yčFm]A{[Ď^q>NU\左S8rM Uu^˛EFˢyC堮wv:sע%wr0{90K f:[ pM7H!zlpo6i aφÊ,[7vzqh$uF2ﻮ@7iLVgCiU݊oyi*^7ݸx{_@{xz-`iFsyf=ayv!zБzae'xghAeM_w{}U3V|eovTiev|Jcv6x]@6}\iەU1vtG|wRwbWqWr!fZurrUXZGlul@mvy5s:7y Fx+WHx'zVu{UgugosWUo{}16|0\b4X/lcEWBdg]t}dۧT{^JwGhnUxf[LgZX 8kWl8af8Yfylv h sm؀ wEWtǨnxLkhh'^6bVq~ŷWioU6QVv'}\xqp*&^bF8ddq)t{r\ĆՅ(794xmm&>i(mi (YḀq(o(jtu2z!f{8򨓟~~!uu^H|gfb~f])]Ucd\}5#%x6})d8djHwzhChfiaXa#~w{Džd~bh8^8sWyg5y5y(؆mfxm)fXZrhkF!Ћ%~lɏ'xr piivTA銡FYiVdjdswI|b()iLX095i)mh&s>_)ml)\@m.y刔axSq&6Y_Y)0 \(Lz'yV(uD^oc1{Fh\9ow W아"b}J$_F^/z[6h%3& IsvɆZ`d&s1 kfA:z)y#@knņTx29anGeUXUl} UJ(ve cF٭,ୄY veGwե1e^ ~^ ^Rgq{aL:brYg5WHl <mJy_'j\s:j9ʆV1{Z*rH:~*iu址WVjx7IhWgcR ]8#Z;\+Qcw)X\)}ov^zh9㇯|&hY!Dˌm;k f ;U%J#ک{f0j`A`< *ۛ8BmgJJCrƜr^0ٷVazȫ^0~ z)8ėsWiWiZ5I ^F)mF\U];jYW w[<*Mʳ6JJְˇl@![l3ǹK {ʙ&k=&P+3{n zkr[yzeU*ꅬN\p~ʧLhk5I r1뫵_e Jv cI}::U JȃLwLkùZX˹Q&*D.m6`+m(û1g{.:ld6ȌˇkE񋿘jHLeN7ŽJ蠒il#[% a竾⼾j[\pJh8z(`w ŷշ0(/͸ п̇kɹɒɝL ʢ 2 (ʺSz\@Zl֚ßY:ʱҰ6l^XnɓaȻΤ->LG ~IʞbN~rdiʓ}_=i-ulr\nܞQz(} ~j4N<зn|ٖ^o`k >ڤ>t *Ү⵬,o3 8iC=쁮TܷһCcpL_۪vڛ)ߞY^[ݽ`=^MɦkgL H~+~KE x}ԉ}{ L Pْ| ;@ /"é91-6} x?>I}^yx=^KqwIj )!.ߎ}|ce[hO7 y }O컊- Pῂ 4QÆFg,@trX?.%;YRȑ$U:\E5mę<)ЄCa%L:(E~ aJE7(-6j:lܲsvk…^`1fb,+Y2di(UOEJqJΛKP"K0f~8,q!5fX2a}7 }ޥ6[e ^v2\H!ĈdQF=ԈnG;C}0e,xI@R Hh)"J! P2񼲨:Zzι!2./k,1J,G3Gq 42LH /:R+%ij*#XMKւӰSGC.q2:s(jO(!蛨 62rͨ#HO#$oGO)(C(?,JiU*:+>3 ^ʮXK.Y//?-0GҢxۚ<2" IF2K%I5nbl,c&nm[W0dX1r"/4uY-;!jPB*ZYm#Nt#?M=zoA] JU%l V4@D.Ċ[-SѡC8dL2[jŭdXHfi2@R i: 4rM5y6^)u+6Ƕmm220ZKL薥 صsߪ_sm,^ve2=;^O/ڨ:$IY9KM~oӚe^&Y^TwȨLhH֥li ^U0T:>:XP ?ɩۢw2mC$4z jܵvp:~~7Uʑn2M 3삌0AFØ^Ћ u }6‹@!"#v kO,Rx+2,&q dC8dDI3Cg:#%4 y≚N4>d[I貳Q( 1í d.T!8Qf-!dmA*S x2+DA Iqj438+e5%kL`r 0`X dDKk`!e3aZ +;s! v>*c$b(v"kbFv0L[WiJSJEŜ&jC8*Jz8hffdD+NƇbcE~5}nXg"l:xU0N!iC*(TQHn$Yyr\%@J n3$S/3pHF,MUM*KMlf34 7Bbyg:qH;h|̲')2d1#:ܧKYA=20N;( QttGOժ{dC+v{CHqs-(`fis`+SO MsR?N-h_&hMPFfl<*W'JFmB=to x^HnLO$=9KӲ:й߼3` Ż~nF0K ~qe Sk(4B˔CzAR3\EfA\$A̫w30qG8 ւiuŰ@t¹825`}vn6!܂PS>m|r-o=}fv++4Ɩ#) F4r|2hq ՚% 9I INE/16\7}OLirG:yrSE*c_YfnYryAq,/lm$MbBs4.6.Ir`z$b͒6 \vUdۂov6 nsdDGōPGɔwNdQhc,z*̼Ѭmf u2XNGYV""J]{}_?ByTw=˅2lnŗ*eIb+ }ռ܂]ͥp=z} /__c0@$B>r#p" q{{k@; >$_Ӷq+- @#kĚ2›2 uPѲಀ37 D@ @+539w$:.ŢC#17&0ثá8=Pd@+|k9mHm8hL1$,#P %πƚнFOj" 5 =5\\?\;`8{Ŵ3>?@BBLB $qMܼ@Q}-ɛҀ?IޒQlH31_NfS O5J K>9LWpL4O 1Ќ) )0T"(č8 ?TKC+4-4+Ы$xٰ̉.E9N4ʜYExU[QʬQ[EМQRtbUHLg הG-\U̶,Y5NU]}]!{W_5Ֆv$tDԆ0t]StF۝OMKn KIs9XH A%1JUcH^hcJl )'v0XGYm5".bLV^XU^\z_ߧe_ `4[.۰ e][0gȉD*ҺV ~e ~[f}ͼ`HJeUrevWT涫Lu[%H\X\ `E}5BFbgUݛ(֝b:,݉t9i4]l@c9Xڥ vG] &wt0|ԜF]60H6LmEΝdܪda^aLfYtRPZeQF_=Uvē`e &6܉eS0TIÅ.m%\ Hf}Ƚ L$_,QFk~O!&bp9h 'bb%v⊽݉kg12VRZl*x&ĖŖ A1+>4vUHTHMT-YFU`TTmoK:<'N! I~LTlfdGd{UZՉTNLiB_Q-nNi%fdVq j\FjvyM\4l_jT.c-fs%fdڬ;{V%uoT&pMpNnVL\x}uo. gg'~v>nG ȶgXlHpS"5%8Xw,mZh9c֞)mdkw/TmIq%1'F&vuGnxZsln;<ꎷLAxzoTVfeS6yiT`_^I KityP?VQgaWd6TjOfGLFYxxddUbwqlPV{H{{)eSSwi|qN%v!v^vp_TkҖ8h/-6vmU^xTJ}h}--'?'u{W{\PgxIdGvZ8d˝zsvKWnTz>eD$Fլ[J7j꽅!L_aĘ\`>7pejx@ g` 248YMH"E\%JKcă?-,yPɔ-Lv0~d?rjRP,h#&Qڒl?*N R*5eըTPjW'iŘ`2Fi%(w='?{aKJl|?4uqd0W/rdϟQM Rֱ%HC H\{M)nā(H_!cz1,.A/I_&1ߎw>~2`?P xhЁ2 u1PB=WrA*q"D$ .ŶDФJ4&A4x4G@i4SN9Ta?USPB6RQBT7UX]?\WmUeEƙq4fE]o44W`z5T%Lq qM ;] hEkDSf9&̼kGxI0"H T"no"!A h"B\I%԰'wG{q'-zN}]z&~Ǡ `u[t!~Uq :kp:ۈ-ZoG/TMjN%tM26tTT` @Twб^7xΪ.]+_7_Mn?zǃm~nI׾nK)9B^ O1W*/y:7E$4#<>0l?dh@MӓNQ-#}rI|;;+4 GM _A)b -l \a8$QPb3]S \JF2ZJ nl&Ry)o'D!;/qp"A8-n>ؓnt*B-ҭ)+u:1v hb x{bcoD"ZUp'UIom169${*)R!'";Ƙ4NKJGH*Пj/P }B xS$Eh/xdv3F3?JEj9L C&3?`0FɹmrC"GD")ru(r}VC#X!)2jnYs'X*aE F5ZB촅FglhźዛCN,.@UB*!aw;qZHt|,APh"v9m;AYj!"[JXM3 %*z[KTAbWiLKJbA;3h`fVJ%bBE-)Q,am5N # sTGZ"ujŠXDMK[ w} q]D ] p!E_-cH !Q},6eq8z58-Nj˷~R!{OI/z/<݆T"@j:ْ cYM'`Q'X_XU(4R+ ;.iˬ,o!ZJ NH_D<5E0&>jdQE.fdF2!h۵Pk[)QӽF;PkEUsS"q܎pBg)Eι A;D]s#gxCb+^L'a.K8+sCs#QF=+Ad1$]3NbX5.{זi+ Oƿ]:T^.e/ra:%q`6lL.'\ASMEaCIf/iI߁W6jRc.ͥV>Gjm>H,TW:܂B J>oSD1I DAϙ>:?H.Dž6(2OJQqd\J@5ie^9mZ>Q3%WUJcO ~j'ی+*0}B|fT\M䙜JF̬ }n%NٝlkvY [zYo A47ig_\?;ws&o[qSq.F i0eUǏ# ҅^OSA=\yS$-U-ّݨA0Aݯm_] TR؈mK̕9@䌋DI\؎P XIN`8E5 ^1EQa8_mߛNU=ץ~ء9R*ā-BܕR ďW٢A䕲 Ό RZQXE[X Rh6ڢ6]R6Je-Ģ5 a[ڿmٕc$dg$A"$!F$CI\DnoIY$asܕ̜Iȡ&HBCDY'h$B.h$]eңbjg%`"- )Q'RA..ր]-֧Wic`]؝[C^L1^~(#\YU^0ј5ATe5JeT2}7Geט`.cHBC:ٵhOB]'eVtfafÉs pfi:$)%i bk!AFW6FEMEL!Ni>䕈?BZfr皂r$M!Yab'?J--xca+(~7"⥞`U%}/~ޝ R 2( ⒁Ut4(e[LՀT^"__Fݺ &&`tOaCAT1ܟ-CZ+idcuNg."B!ᘒ)Rd}k^Fe_٦l.Dl&ڷVG~j:i\IƩI©Ks!`pbtZYZkzJy0'y] k9+5*_'T_fI qˈEE+L=h_j5rc]De%^'B$l+ O+thRa]k^'uZtfNL'1Y\hޜk"R^DZھm߿bn.Do擆%p i$B)FlB>pk.N'Ni /JB'賦̖B:BD'Zm-Ve]?V VZ U-%X8`T]`-JeP zmpc$ma>/,(NAL""z,Ra/\j,Ye/'ޮ~+pi_p鞦o a' /+.¦}ofIH1z".).Olfso.-"oޚ{,x+:B "cRogI^yo/|N--,ѸA%YJP-5ԈUBt\$#/I-DUf(!熞r*DCo2JpT!k(rW/+q12-4BqA B ['Al4\tJ6kI=c< &D΅AI8wsY38d.)Mpp.4B#B4S-Fs#43313#oJ?r AHL+?A B% rܝ"[-P~RXI8vU`ۗpҊX$D1E]r}v/)s Ԣ*,dL$+2\;L>+2sh113731i743c3v46k3Jb/5g7W68+.C4:Cg{6A:w:CAjD' h3"OA9L6"6ECSKABmpA 6J$?`:)@L!҆ȿS kc … j3qbLcF?&l>޺JE(;Tq̄l0΄\sP$4Zh$*QջwRrJְT3bhՈ+hSu7QNUuΠAjH (rbĔg8Ɨ_Tre#m>.F_`;%XnwF`N N1^cƘ25_'S 1${BD~]J膇.yP &n't36rɱ8oJ0?! n#^[M!8";餄>'B41"9ѧRt'fhګ:2è )3LHЂ 2ˬBewRˍ)ȘłұR"e9gTdEKœBϖퟑeEah gP*9چ#f8cO#S(B$!]s:ZǼܸTYH:Y0E=Ua#h#1pbuZb8iw#bi7b j( )w%ڨ] 5s7œOR`L~M pDXx+͘~GZ+IH06JʯT'ڒ ́+*3H5K͆q Qd)'?) -BQ] IjW;6s7-ˍळNPvW鞝Vٕ].YWb  rqMA(ZXUu[R?RE, P* 5]yJHaDB=pC QRUAELఔ`661Ho#1gI(˒C(O*&c3*{.J0d{ R8ojiDDLP%HF^'Ƒ0B̙B$t{PPIFTq 92+;(\B棬 އ>{27NX+8{[VrZa!F5)^Sq\!cm # mR8 _G^J07B`r"9 QyAĀ=u*XVN敯+Q _\F% fr5D0FyЀBJ_9ʤPo$I(5E| $LT\GqFч^ˠAR@SND&6XXF4"h톀 I8g|~M!nXk4*o}p R IR1qƏ_?ܘplx_0MƑQ/HT큅,Yd2Fv4a~AQ=6[RZGTh(+HQ߭U(F˜ A2/Xb{>PA cͼ预(n7Sp`a'ȓh !|xdu`78ڬ*! r8X%ǵ '6# 6& YTchBjAenB| ԍ$ 'MiwM ` IO 4-aw T?#룊V8HRVRQ;4RM^2ՙCx_R㕗YiBpXU)0_h+H@OpBQ*E-`9B}97m8=&NZ$: "d' y_cOݜ:ZKc6fn2oEQz%w#t/L7!{vA:/@ᔎx?~Z#1F&u{^}r5eW4ƲȶQ FսHSz 6Rx׫0:3^ &E,: c]AWr_ mq܄\SCpx<{؍MmǮ;7⍇29}%+GX:|Oh7eԊcY9, tNpHtN4OYj 5c*_3HFp3xOF1qz 14Gݍ1);ϯRT{=T,cK~=od1UDŽ:^Ӎ{lgU:&:U3=0uG6^byþCqF=^x23L:<&1rKSnݚ|2w$u O[2r#lV:; /L 㤏 2#p7Q Q1>c' q54 r4D(T;|i"#2,C mr'K̽҄+Fb ɾJ b"+u,G*",-nGpJL`ή@ 1 @ JЗϸJqs.G?U?aR'ȴ Q)&/>iS 7=2!p#"nE rO8; bvO 22#5:i#cb R9S6/$C}ylcW6} 2gٗ _$HmRg3:UP;Xh588: R0qs !! .V<s@RvmtjzxovWY BwH8"TYK0[7ؐ^FKM6H7&· X.-.)(zr/q hvK0HI `7b`MIJ)Qy{{X4+9 jw%c5o&W&Eؔ9b}Ok3O{GjI h=RjkɹQ6!V: >!7,ٰٛ;B9"Ĺ6H[93,4֦w?٤xYU/Xr#-VJci,RմK88h(h*cv0MzSxKPIϚ2 CӦC V?'9~b׻ݻ-M]r#V%eRZj,;Q):QI!yYـU;bEfB:zIIiZ]ƛegف9n##z:5Ъ1k=kgy1)17"Y4K;BxZ" [Bp -„H6adZ_,;!9#5|m#>kų#}z-ݧۙ}#6BMhCH$-xD$t.ǧ§/'34,a_ף+8_﵎7,.[SkiمVoliVe\Z_ \,_8 颎WݑK&fʩWerjidb?驪^{PUyu?Hi<kDHMOޤF~/ݧ~""(㐅Nӡ@b-u$J3vM/x}D,B)*ABN5SQ]uds *o^ E^Fҕ evcg9Z ijT l-p eQnu*Y(<aASSTj㾲SF(Tӌ8!Y{O+51{ͪvtDvQ(PtF'nPѸDPzt+1EWW5YS4Ԟ^:ι[h8sp%K\t j@`aE^fjygt%Tg$YilES0uC"*}J5PpkW2$= \5 WAyCm 8 d.fdD ڛ^#%*ƒ-i`*YrCm(i83$1{rETO\T1FC1LEDj"TBe>yFQQ #3lo=kKp;⬦P#bդyAW.ai!]`I4sM ,aѢO]HR2;:%EЂY# =Q? hGZ<0l]kR bإH ZLDp.CAps!8Åp?y|sg6 ~f ݣkrjQ<MibQ( JE+ګ_zGlij.@khu#RYo(ߴHB'&I$o"yL0ĒaiTG4ٞRӚŌJ ev5$#³e0$fr_&P S2WzM {8GR.gKy"epV#3L Amp@,nG8Mu Cj5rЅ 6Q[ZܒЭiuS: m5-i \j3`iC$DCC΢خ$ႢCE]Yh4>:D&EɜOT_{E<cӱ$Y@QI˔7%(%/cT˜`4E^TGF jLP`dpeð<cTTy.jQ`r 9 )fV҅QLAnVEu4`9a3CpA(MԚuidmo~uږε9AfG70Z."l5G>Rnz_F!LrD {WzC†S gAm5j2S/Ӥ(,yOIԸeu`ƒw Ď7aOEB*.U陱'֯f0)!c;r™  7ens\=Mӆ6[?Cai@oj{gp1un?moPSR` vM[ a[vVZpwpȍ w 0xe 17` Ve0X"298H"-.%LTE1,97Rcgd{ <'c# }=i$+1wAC$5JyzZa{[FT!EL!|p.UBUX(oZJaX1"eXWxAwtXuw PZ>GZـZ8hrXjGtxFef e  <yZ.h8188 gqgY6 gpNP dOC"CD/6z]bH,D uI@ DDXR 9 i _I 渏ҩ8Bzf$w,R,"B pH",w e_j/2&+)bAB h /'BGP =$!Zi8AQq1j$Wuz4h >°աI[C=bBUGZ,2M3k >c$̀ĉD (\gQj?7jftxphJfYljg@˦I mqYs ĈXb*\Y`` dzgdJf^th Q =wi0 PCpeOD h'_,be W.R>:i9/ (y*e62 Mj`ҺHA,p;T"LH6g6 JZqkA 0>a$@a?u z$ %;GگA;rA$ {?YaSZCy T+gZY|&8n%gI/;q HxK |teu]zt=@GC whmLۦsp@yF] VH0xZx &igDK>uPh9жs[ L;4`8鉟f=ktX0aP8ѫ`ez t `sV6 {<~<p0pA p@Ȫ_> S LpLpWaAɿr2p K1z;4G+k# I|a.(GwuWTi`2|DZDZp.V('p eY[w`e=FtLG{g9CiʦV% v -.EX21|/$8 @\ SSjmP ak 隗ypS ZCʎmג=Z,ذ ˥ʤi*F<eHKq~ ̻ >e臮4ژ5L9Ji)q{&>5N|#ͽ@1J?b3o",^u˿3aXܐ$)M|th\͘gdf d~gNf\V˻nЛu.lÙ!yfg!]B@ Qs>hGOh(Y+;>?0 >OI锎;ɒLLFOWNևsLj 8! !1`؋|n+ vMe断d:Qq~Rh 4aq.u_0쿮_v+?hb%АR &oajR t`vD:03 Y915J#DٱkیE23A1!%Os1Ρ/_]q1ݵw{,gruvLPGM}#1/r$0':isyA  ↛ pN DQ&e\hofgyf K,RB2 2,, K4,̲K.4C3.-s.:H.$ ¢zH*zI#4E1!<8S@ *D8ɔr UZ ]*N գxhPP(`YjbUUlˬbk@ڲ /R װq5C72h,͉ y57N#-pxMb6x辳ĠN:Q;cG")n:ZYVރo$jrYgh  +di >E"ëRaT&c{"wTfGVHTR!rGrKK%ߎ(C( zgh -ĒE5@~PCC >C-QBm$!p`-DUCRDD$Q iltFHr#,D4cAn = Q ܎neMuH:)TEl4qBwtEA]b WB6PEVB"(X+@wTJp9ˉ=@<8@NaHi_vuSb 1O41D&X?K[$ Cz WER(Eј 2 KAA3HBр4)da -C)So\8BQmvs8 ?JC;Zš ԉDu ١9|h%bG$0,Rδ3pbZ׾1E_%6 IEa .b-j _㮾61~hWTBS re{ I,kh ƁX2%6L@ͤ' ҌvCqLa 0M^wMUh}٪%EnXB^)3ќA$MiJIflCSb+7a|+qM y={&w^67|:vrWDžֳ5gpC#03R.E=z@"0\@ :8ti@p []Rt][vS( (,Dr1caiqƳT8C \Zca*-\U*&B aMCc7W` ›:D"Է1M`H6j0A D*R=T;9AW-ZkK#@/Pri.i6h 1S rmL8lƇ $}`7-! MI=&tݷx61tӸqDظɠ2ڼ' pȾF6dmW$e/嗻0ֵpT)0Rd31@o ;7$zsSLbtC4ph  w3y03Lz+IaNld_.L +Y{E;ᠭOɆ; XN9{dǘ]y}4.1XHɤp_&HB z`P d'cCo؜hEkY4Z#UHX])H#QA Sx5[ӾqL"5 3#C˿H㓅"8ȃ\@E4k=AXY@T(H707~U49؈3?;) B+4tK YӿH?Rc] H$*2 w\+EMX ~AT)B%HBc$b6;;xKd*T K6HK` `( * 86$$t;XK0@swR 㱊b L3(19L} }|÷D`KiDq9 qRRY> YÔ ` Dh;C0 sāÆl{@٠Z, >31xʅ"), )Lljl8fxA  YwD@ l61\%X@rX⸎r* >;;Z>Tᣴ(Me+i#KZ<ѠI rHH=l0I )G|* Ӹ8hqIP7u(DNvzKܯ*AA(TA CMAMA*(T'MΖVONˉ p}R4 h!Z0P al |=sP(UNy#D8i g$d D@>"-=8n;6Xh3% maGE t7F}Tfj;1L@6%e 31XɊYFxt5[a@jJE80K(?\IɘR@5XqېQFJ3@%"F0aku+WRD p[TqF%M\GT8TaHBmҝ[#0l\p\ˣfx CSUDR|zFB h_50xڹkLL(V<$0D0E8p#piiMQ:}BC V&; \kr1c;6 T8["ȏ 8P lYL٨57n37@018=H[>B־UAqz ڠ; "5[/QI!H`I?O $d%5(H16_D4dPx< \a]ˆȯ<%UԁP @@ոlp;0e3@((xR%6DO(Aބ*uA&HVS88 i'HJA<=Vy7ČquC76=;_]֔CLN (ӬdEcZL.@l!2%%4r%XiZdXAA%j$eө|]#ZȪcfC<< UI=6:-FiMxE ̘Q|4*5[= SOb[`Ľlm&0l8(cP.4B>"uH;S?ǚ KdC )YWxm1JӴmО<4V+~S[N][F),J G11n ,,;4,:;F gv9 e` 6Kb .%8-&#t9|_(PD;zCÆ4r2(DT4.y74B`0=KBփ+$j8hԃ H$`!XSA>X5 MW{Xe UDyc56&(;]ΰC7D; 8p6FP +lFOR0@CmZ**_v!gy~󷠽,6 ń͵f +L$]폹)EJ> L3ªd@R86ZK[=5Ki2sWthﳳU0I!@[=^/T4YX?@ Yh[8MYTtL;>qkygOuFnӀJ5HşLFyW<@;d74Bo6?qVh]r"ޝC<Doz3.|{CN)Ƿ{VɥB6#>=#( #8(*?#pzAXȃ5kD `vc#;;mZ 9τh66h _J$p ̻;HqFhKmr5yruxP> !2VVAޠ 'y\cO3A[=a4ޓB0~V?"i!zoVW׳w4~5[ĴDht؃Hòncd3O0A;l~AhJQR%88IVm&Ǎޤ͒KKR%H)9FbOcM|%EB_sa,ʛ7|RnP"mX0a%2bP JTf\tDiD=l*T82_6IC`D_+X/Ō5)XI'?y4k񊆦L-D)ذ ݇t/ڶ'YpN&~:!vCK޼Fgw<&Ï]Һ)S$PN¶ IknjAJӗzql3C?$Qa|(}j`G 43 C DcwB6XkÔ-=P5anlKDIdt0 B98p(E@tc ;R*"3ffrP 1 c+4J,KApu9ՑLe$$T\Ŵ"q HRĨ㵯|v$=H2ҪTuKIF1qĢⰊ0-T634=Jy+ըg;3\zҐV7(Us!HAuY!P8(F % L`sQ8( 2\b" 00E|)Vؠ3&!ŚSX*`MP[8ei!EDV im"i&О9xK Eg۹ZΆ%8iq]B;?N0(;q[n,%~&8y@ 7(C9h &A['UNv. Q~H(&NO|"'() hB ИUAWh2J,b$)r1N4Gmxp}'8;1#nKߤzr8͙FJ<}])T Mmd+X Y'RmPˈe!2L-WX(p„™QdPθ1b*m#T^c k/jz u/7ATATU`9ZqU^A1)AU\\9Va_8A! 4E@.x+ 4 k$`]xG 6NmHXqzLW0 z5u49X݄yPF@]IċPEyP#X9 J77CC@C#HO@]́MG`OiOqy?T(B~8X4  E\!oT]Q8 t uE'E [,YeQBڅHē= YD6S=Jᑣԍ",lEhd5ahćUJLhL N|SNʬhg(@dqafgFɤ3=Jtl[` HN `P`[IJC[ MjLcI4 $PFR--Z͕TPlaL-6.$A))?)Z~]?HWN.d &W^tMdYy0tqy8 ԑDՌ;bKha"`-@!(r"$^ @?|A)Ӫ0c-- lE ńJ@ݽˈ 0p~㩠KLi؋tIH*`K"LAWv¥)Prtr.%YL'pBA9 ecX)/d9L, E|zދEK$^XE)@KAABP6VLzhb?@_TY՚(Ud 5uFCNhTFah$Zv9LаWR]C[c9`QQ Bl)eN[R&`)ڄ,?ۢ?ڬZҚP CxYBbaH֡eO%j]M@zv` GIDJX :fNKp?ȐDKTK*TH&&K5e.L&`B-)S =JKt=J?cQIՎLcLJY'jDXJPa .(Zޫb)HY"֭H~=R)ϵ l½TE\]Q^J9il|fmBL4D.DEp9L.M°$ _[EUla4NP )l(m5,-ӲbF!(L@1pLDŽi5݁8A)EY 4Ua`, f|V=RHIi ~I1elA NH=UPQX{J1+ V H1DC4nݨZYraE\P8(L/T<K(!TRO,5/F Ԍ\%JB^I-L1ݩةʸRE}E{IՏ+=qB<}4OƸteP k?ON@P8O$p(lSckfd$dkk$-.1bUDa`㗆=7yj-M/ʨPj(LC D+ۤ`RtD\EQv[V}4AFVId=_va$V)oJT"_:`$ߧAOS 2i2!2j[Zc S,.E^,òm kl[Y1xj:čkªI4E…Jı4z  }DOr)PDM9J}6݅m)::|˓F#J 8k&U!P7PE Th.u¢xAH2NB NHO/HADŽxxKJiZb0·BxOc0@Z}O=\Md|T,suK2; ʔ;E1K}gp$LRPZն]PZDʖtL}foߺ)%Fsú5B{0(:\.ǻ wGwO4䋾phŲ(XVlHQ"2YΨt_:|KD\0E\Ht*<̙g퉆蟩Sa[㒋pQ#yJ?Eެlɲd*REJE&K%1nͿCpm* Ca4PIv_NRqaDIX7cQGBhVI[=s ';Cܩ0߿C+Bb$Lؿ3͘q?GWHx *T J 3RY=ի3&YVxj+7L75?oæS&F0,d=,aAbrDQ~SQ(@ M(juD7,\b@tc.!9Mb9#N U3 e'4@ PE* ;A e,ȅܠC hZ겐w !r]3$/z1 ×pl}Lfc kR6|e6F1uF a`9}V~6< (MԜbA ̚hUJq@+>8+:HA%I8&Ê b $G7\ "_D/~_GA Կ9#X4*K?^ kSw?@K&rH$DB"DKg8 Xšt(KlN'f#aldh)FXJ,\5۩Fvgjd#%0I rԅilaM*,J@v" "LQV5"$+FZ1pL)U hQUr* [51D#QUu}OR&QMXg 1w259c+2+P鶮 j KmUP\RE1;T,!4&^ X;.QNKa4PΒEx:` 0^|vdiL13́,464nR* YL5e<}9i(GaFA@RiDәa1Mz -laX]iIB/,Xi};tw,  q#[PE!}ufT>%FCJ#&aLl>͙)+c3٠A6X|ԉ!\&L8w0q6ri@x.U-J8VmYH"(jk־p=.6,ngE!>#FlY.@Eo.95:ZD79N1`NNhf.:Z%Xyx ^<I%Q/1,(JQ68e2f0S 3tDE~$6' D2FZ.g5I֠nKN` V>|'>Yބm#Y8ifk_>#b4h@5  #` zzQAd1r HL? gpkl^f2G@+ A1!<-/2Q+ &dm1 "RJW0/Kך8B"&!$D!FX&WrLE0@G3T,sDDa*%1P!}fcވ2X ؀3/tEr$t} 5i ߈# N(ᜢ &,;I ",f.p4G>36Y!h D).B`i"8؃{81n2B‚ b(夎DJ/\F`Dd\PH S0J@hmb3oQy@{1!==۳a.?Ҭ`!*h @?lAŌgJw c$2 c1B 84LHZ^%sERB4o@-!( &!%p"PV""DJF(`ތjK^4@",c 0E+3N }&TaLs&//ڴD d3r&M#Jd-AcAP\02@ɘ @.wȥ,"d$tosj)`//[1;{@s.2> 3DC(M0) g`OeO+G8 II/$3Ųvdh,6gz`V V@[ l1S*%q@/Xt^eZ@v1`+#a!V>b9b1B0>a?@a!-O,Od15]v#e|.ۚA*!h"~—$~BMa KP4p!Bj!t'Ha 0#j:a$E< @$WBK BHTcu.ETGp](O#t40aZ.."qm DlfddFT@PC (U@2aƕ2kDQ7ˀTDl1~d/3f@`LdG,g i8cU-q$Sl,(-Fm,-lN FuÞ2N1ed$G(L(` r^SS?`\ml"psAS`rR4OL@C.K.R1'."O0 @Q6 VS>9v0>//1O?X1e[eC1MbBWkA"0`,FB[C|Prc"CljiiBBY'!xl-:.nSHy`Ed(SdFJشC@sLDS@ 3@ #lS@ ܂r.^T7@Ifxck+o`aAt>"- ley# 0-i-bqG`Itrb^C6LfeƬd ^9>*)Bb Dd EKL˲/mBH}Lyl`?i`֠.`# !1'8 !ȫ3B3MtX8hѧaw7!%Q{a`=L ݓ&'6>s8--֢,/`al1rdLbW"^XƁ!ꋧ5 "BhGHBtaH!-r1pvBè-E=!.{ ̤YeNp w^TlҊ 4 q6 > 4@tbC@)Cfo&gr& G7F8npFڀ:);HjBC ˸ i{!8cfD 9d(ȨۍČJ63;$cjU)ufbBԲr\) E 476#~dSUmsf35c`L Dzp`qKmfU18(E0i4d)%#~[E#Ѩ[#ևwX+!7`emea!Ag͌?!T%'+1W&XjH*jO2 gñkC*&Q{@)CBmB>E.L7ID?.nt-U 6SE4u jM :.4), tD5GxlD) ލ 7?< c3x$t趴鍝V Av[|˷67ਁz:az\\f!jmbxaIL~yCdxĊ,hs\7tA*n\C?mӶ]C*&-lBMS}M[^ŽN1_VוSe. ̋.P7k`.n=MTDOPULT_D>`!V@a!?#:9t9 & g NN":$ C$QOD% Aa_$ ĠĈABX$Ix|R$5C(HD%Oq@s ;zM҈W)*qRqȐ K%fܜDOx)Jqi^B}  FVY$ȉҜX[mJDySgȿ#nckKŽ9_A3X ++zS:@?gd+3YЃBG Dc:XjFU{>a+߾0`ya?ky! `&| )ZUfXsA !B#?͋/!CT #L S08cX`ŃG_$^u%q?:C]TVCw "Egdyeef^LiCU%ER$eQTVɥYQFVP lGBJK$*qL?Drix 3?Ǩ1olF'  cB Ć]jW54U٥NuWgPUVVvITJࠄcJT!l5U,N=:nQ^NxTwvĿ(Y9]sNUD99FP.`A+aIe6&lB1ܢp! ^m`pqZyQRXaWpsMrTFtխ@v0|E^ ^x{L7g_~5&h" 6x`X&.υfl|.GHt(a״2R0p ":#058$( B躍8d#ĶFEVEy.7<"ْwWod>DA( f" 6DPu.|"q U^&5,SO|-"} BNh}&"Qq4@j.x^j/0$d+*cD;k84ߵ%D Dl slgW8q$RmB3-uYg)0Dmu #ny8f #V965&31qlnl)+=Cqg8Ձr~3h=A8 8]#T(r2Бr ]A5tNsLrt0P]5ULLŐsM JSJ!,#_a4 Bu OT:w 7Mkk+T,a2??cxxFkޢdXwd=vDxx8d-E1'lZV~2F1׆S#Acp q8P @g'Thi2$z$ ɐ(*H2)ӏgʷ Xx *ݩ-K% "T%BRD!C~#o2VwP:)PCMz ?-7pKB=/YS XG4u7f-3ZҁM!m]W UFb/1%c2iYspyفٴp`4`ZA J8u8_%9rU^R !څpih ƺ^ I4c!4rmV`!S9|uCBxaMaUpN9y1 V FnSlW {d`I:W#) $ ;dSbkt1pWzryDq.SDx 3 Wx S{w*Z0Kճ򳘢)if`ԷkYi1XzG3Mz)cg2q&^hE`cO9^q,$q)*[wdi, X&(CxqH&8M: @ʦTwcf~<J B@t@ =Vǹ0GYp* R 3!6cّyq5 M%uyMNt_T^:%'s4Ё] Džۘ;n0A3;0ʀJLIi<:  ya3p쒉.FOk7PWC<X\-(‰GТP``]U`w°XPP=e!X(0;wM BT܍dző o \Tpp,ɒo#5HL 3a1Ŵgh9|c*<^%ȮTvG)j2x 2e2k@O=C;FM48[.I1S k;<%uA/%Cl8X B8 GL8FIgyAS&嗁mk l ;-WZsP +,w8j $MRc^$U+0= @͞hx Ț\n5'nr)zq[xnZZAjJ#@CAٚ >X[R<3LRU+ Q4eɜ@ G\!*T*f-v c:zHc7.2;0!CWȌbOZ]N٠7:a Zވj?ӳKש`*|e|} N~c`\o$Yb3 $CaCa }(*FggK{HC1&}CDDH菐FԴx4iC -hlkʴvCW85oa9Lv&cI3ܔ, (jy3p N7Jta@a|[3$JQ5pm@pΪ!o٘\p q鶫 ghG̊qt aDFC`Y&WP61~YQ%r2b<9U1" рIDvq-!@[KR~bX3 $ &*,1Cn#v=y0ZBL;[#5_ E0up5w}hb,1e>U^!AeZȦQgg؏[;䐡}`؏xg]^}%X5i? g_/>`11 2UN#x!oA^ ]?|mus ZEmfoqmk@8]4|CF'Nב<u= %s%s.5<51ˇʪ5 ,|n?j!͘VG8Pxw$MH{lݎ o +IvאvL杝Pj>/.}Np$S+gqXurItF%{m:sAC`y^c =`0ǿ++T1qſ&8~$KɕT@Ɛ!3f zFX134t{?kU_Yt0Q`ĚW0uͿDsdH N9/y9gFTp $wF%J8 MaR?`„ UHM3J„i2ӿ1YMEQTxĉ+j&!K/1Ë \0XJIX5i2YG*̀+hi'Pa#an9_rnH$\U)TRQdᖈF|i$ܚED@2p 8=j|,w 1C#$/0ӫ.'lH ܃ǽDr2/%rل\nd4A_K9o (=%ZT oѱ$m +N1ƈ<̓!!-҃TԈT1l*fu [mŏV>W>Dqk]gh55H g󀶠 VXȈo`*  iTbɁhV$zer]r z Ȩr +b+ZA&룍<ָb1#$fd수aǂ# BKP>iDzh@c '|;Ry#ϹA{MH?,< $ް7Lzl@-aVY%HqqɅ+"/|T")kEF^DCp3fttLQFog;G'.ëGy#tO(2xROV;A/A?0X|˳1<%Jɯ/IS>61N&QۄAN|gRIF q@#CK3UA0BVNV3QX1Y["0 ,h ,L+H%.R #*bs}$zJvk_7b 'P~łD^;L1l,]CS 8-;J6FH)`+^ M@+3K~_ 0:`(IM/4)K*pC&M A:h 饇:peaukQxpY8\U!,w \b_ܠUXq!8?A|Ә[E$NqsQtzt!&O sX!MlhSG#=d&wZY$9QFn2zݡ08IUm2g*-&27Q)ԉ?RC”eM(O 44#DևKQzHU >OZ'وg2:Tj$pe2 XX:5eE& _F#ZYA  4aÃc! M9N d\"E ړL^HKڕ./_cr2/dDR15+_IF,[Jv0`Cj $T6@~;(M' H'6NL~jς:mg=mi (; yLf23lo[1Ǘa+3ה"tEN+|qbD\8Yb9KcI4A0ŠZ'؍JJe*f-tRf)aD*ɹLte${;iOZ .LxS(JMHFORGGT: nQDmFEU )meUr$P!:5B ӔIY(!MVE`Fs׼WIOw钙Ċ#g%](k3Tlr=#xBGĕKN"IrrFN;jD7O5{ nQHބyHr„r也G4fBC<(Rė%V!qQ)h8ڃ|[X߀舱ٛ0fub&;*S: 0Y\I=ŽF%bS6{hHy* 8X{; Jb*`I|(@2Z.C*[@M3􁏒(=ix a$ьӣ3>iX=YBAK%K)Kɓ F= :ZI"qpٟU ʸ$' KuP _C"Hb36ۀX Hmk6-*:@ȉI*DILI-`5R#X bȆOȆϘ[\j T1P#FFH4aqA8A"/yj X|A"kQ19 %xM ˥"(bRIB{3D1rB˙9QT4H`%b)30]hRFSPA;€cٕ[55(ۼKM.sKڳH!̣мU鑑♝V= F;ddϵj,OA13 aY2F#X3`=j9!Y P 9(K T?؀S؀eexgȌ)pȇtv)#62֪8`@R`b @M$i ILf ]Xm4Rr$eC+ 9MMs s'ӨE2GO2#kݲ(J%[24Y*M)*<591e˗ M))OP2 _ >+u#U{;ы30ٳ[Pڨ3Gr9" H 66b+H<98mmPu% @R @Hp -݉!Pb|6H)9p8-q٧&p[௽IS% [A:CDI]+S-d,PPU5ABq8WBgt^ha!_[_y bŻ J 8 ({DJ_D\&< RܵQ`=kɓIH8;A9;SzP3ȠEҙFVV! @*0'aaS8!6Ȃ$@HL*YsH zaɨ=kk-Z-eF@Ml:/}=sJ4{DM8XT\zJTśDۘS`D[K)ۛT2YZ|"ӵ:3C 33Qd\xKu8'3(1p!0 -Մqqs 82z#`}c窸Pٻyf gwV *ٟwC`flX1aN|3<0OF3 aiޱ brG{\W3'> ȕ_ P}6>?!s0jH.ʈ-l?(g{QkExZF!i K)Hk=JwL_@t=|#>nʺ]E^RE&F&UMulnAXwӑ4;`ʬ9_mm:is'l XwǁN 47 ƈ Yt:Y88YF~2i?STyrР G̰544-X!Ć&N\D,jhqcƉ`8.xE̫sߝ!w* aSzH WW#dW}|RHi7OD'>\ &no? ڳgOUb$H| @^ο&"po}8@>}A8Ё A50@O00R')SN(+@D'4qZb"+H"[+*uHxH"5ƊDHnK6&XFWspEM.? aSYaLB$os19"y9L1Ym!Kh!B\NrO[a`㦛Sŧct"}e$)`ƩĴqYh&bLDD \l"(YLnphtWlvDUH1 00~dѸBDJ t(JָDp1Mtp*  F킴$lJR̀V]UXXMf\7\ׅ^J(!fA$q2WPDˉ\YeOfw4+hiCUUmU<\U M5PUB/G@G"<c?LEymyeqy  40}&|ȁן N ?B0#0lCuH",ID.D&sR$>z(Hd\mF#Fn&J[*",|#ljI֚t>Y'ct2E7 z)oNglGn?)B$f-" "L?L ( YQK  (Z`8TX\ [زȶ+ D $K &-pE"tHI殔hk]TQ"/yd`#"DXB Jx0xGYYfz1Fƃ34+5Ɋ hk7S$$atkP M IӘ6LE*LB^ypdq&S@Gf#,Ktm?ȓX jA$я_@ V[q)]O ,ΐ30LUƀG/NS$RMuPL<(NeɘFWjN&46A oO|` h=bW0l+8c{pv[BbAEc`hC<#h S (E^| 'ubWdV\E2"pmh9RINle+T敕!JnfK4$*0ͦ5nv3S*!>t5Xؾv6M\/e=#(J$uk`jPP|GmU49]D$ g|vIJ D]pW6'&hf&j%( TB`_FIf!2MDXr-%IVK~[a)VL4 V*.hĠV8 >őq[T)AyLiN$½4.60nzel =д ʠdh\_qh?xu X\t}U/ A :4*6Ndhgg 00q wN&Ύfr4FkB&ЙO"նRܪ׀RmkYmFvҙh'~ v_pVZS b 3dD@?Ul!uhNlX hE)AA0hpE(rZк? ?# u0C6K h%\q1mі$vfXmnfժj61km1iI߯2F0A]5I]\ɼ/]%emhNVOTEPD LDUt2((DK)RR%ViR\xngC*,q*_vی].EιM $tS8?h*)bAo(8Pc!ʞ1;[mY }J%݉"0(n(dDU@pX,t9ȼg5'|*iD' WArY`}/E̺^'%Cɂ9jL?\KN|0MӴ@p(%S fiP{<3"ܙ;SZ]U$`C01]1,u$-ERG\GZu_NZSY+[r1LV-b5FKX." YDdtO 5BQTdvp؋(DhrRRBBD` &@H2]PҋS.^>Y*vl0znGz "!]kS5/B6gg !88ag S s:EcI;(w"J '8ZT`z%׆!rqzqaEn D˃?km sY!KR5| WkF?x?UL*O SW(+60Uќ W9g+9(yvnT?fFE܋ ռ J\It~\Q}(S(kki( @̆³e] qDrky@un"aTN1}a0aZX;}n0#:]{("fpo&6J9Uq& SR ܋^%*"@РJ5k1 AU8tXeC gV@FPè_Pw9Ǚ;g詩L(cߝ$AN  V$Qj_6 Ub"ٮf˺T*OȐ!* A tȿ!l 5QFdd#8C h Ϟ,(00`0DZHD-lcaB/d/r=ӡU'XY@C|)x,h^?zkۏs 0@P\,A J%(u%k݆rR(7U# ۷ θp^!+gЬy>CHO=SWA=֕@ۯCx}oW*;0 -'nBQA#D3ZctF_QLII&a , Υ!*ArKff⌻nF6j,ޚV0;XCsYIijbRH*hP )qON]ꧧ|(} ?`ARH0)yE>$AB-8+$ # , 8hA#sJ52X\!lH %B8d/$('ؤ)L,F  ?8v+Yon#ڨ,7JV ,fl6l\dHg`մF>M>`K|]*WU13R|H?T!/VE\abI-]e $6+%I;rJ_.8ՒoY % 谇#FW`!LMn!ӉqH&:`Y ~C.HX2mJǔ&olԐir CPhPuXXHmjc,4}gr$I%m6!Jl$ ժdыT #ȭxBrM\-QҀE uHqS,idBOKBlD%O9+`'prJyOqqYEAh \;9ASaޯVD "GϹ"+|"}E2 [㔨d".3{,aW.vBIxE5`P A9`eT]r}ksn슾9T33qZ?gs]PgEhA.CDIzα~+$@-J2gmdFjvBw& DFB'80ߏ=  sdz;m0A@m((\a<)I(ipAI9 `(E].,RiqF.r 4hMI L#o00Rb BQ%NOcdg24mZQ "VCX:C` T6.}.Ɓ`a2cP+죢"RtEJlHe \PjdT43PC9;C5hΌܶ a %tch5l(;3*(+ }f򆨑TcJ)c!{FdOC9prWM5kʒmU΃Dn>&HNFhJ@dKK@ K@͘M!M 8@Qx&E" "b >L2"lFp!BE#) mC#A0i4А8B",%:Y%QHHcLb*TNgy.Rk /Y~S0 %4Ǵ0 ň\ GWxe $ ΣH^`$c(׎,&i5PÈ`/j˱W&&>v#gH/BLdOϸn /\DI5Kn;x&2c6;PB:;A%r1Xf/R<>.NkB'xb*6 drbl ÒƎ P, N+ 7#tb ]T((3Ϯl "rB]>ifDpA5*P ,AJiܦ"MP4u& J=O&b1&4cET"*[%("+[zi@.E7B~Heb7- )05C { R%ңǐlLbRN!jI%6 _Q5R`CKpcRg00 Kh/+7C:nq8/PY;.P4*%9RUSTQ;$O:WU8l%`%fZ6qk;CaslC<pPlrvu# %GQ%1@pW:$9cЩZ~hKAMb,,l*h%cT 3EGiIPX4Jfu\"NHWP4`ZE?>j~$K^9N7T;4͢Hc58:pf96CNf;Tвo?;rUU5Xq'Wy1'`5(G\(X[cL4sSsksV UG&+k Bh`<ʃM& GL`msJtpILZˑ˱ zThf%wJb Ypƺh{Io! oJi<>9Ak9ylo6H6776gLwa8&QdL UХE¢ " +U\LNTO/3zf[vH?.frfp5C&:DQ%?fAʀ%hVH ,WB.-ذ.->c#u&5X*7X5boOs;3sEur8O76Tus:ɬ/;ƳzM.o58^c|ljHm&dV}zXW/I<7s$ [KR"K˘^Z LAȆ\.;PBp6LXQv0PBQWgw:GuB'mH:3c:zU{9;|6w{`Da olP* X,T _bjc6{H]9ÂovO.3Qo],֢`|b##Hj#f`omrB4 #U8f69kЏK)|4080ezuq68rr1\GLΞZGFx[/k#ơd`ɽ5p̪Ȉ6ȺcW`,ãBTW$頒G:vGQⰭ %iP9Xv@0?T n1`5&$c|z5C4920YNppzdv<%j;3}Mz̞éxbOãlо, m)yja _8*A1Qp]3=%۽%O 0+N,j2F7bBB-Yt.C5̄JjS,Ns~Í}Ɋo}mޡOFTB9ya?E c dijVQtm,bgFPtcxTF qx{ӛ>G7nZPo}]uPEq* i3\њj"#$N>G PMJTI#X !CtIu$xƒ! NARHL༘(Uĉ9G"7-J$TRÀ-z%  *A{%& %?i1Y+躞P$iCl9~#\08nIW6&)4[:Jb ;rWFAb7Hrذ9m!F9;( ¨!3-bi}HŘMSVv1X=K8R` irfЛ*>%dUaVk]%WTRF;#HC*F!sn@f0#LofܚV'vMH\ՖN/B.dL햺<&WLש3H: 2gQJ ' kb MDU,gyi! #L #`Nb Mo$Ą #P F]CKm5f^E]J+H]&Ih.(yTJQffi"/M@5IlrS!1 w4bAt *HAN P6 Fp*qΰ-5fL%-U)` W48dGPF+ Tbh !0gk"ŵSL_6[.װS^NfH5k«6w0l;{Ix,Hv]xԏj5%0t K(!RH٥7K)Q" P:Ƃ!?dAnX;kLUql&&$A"waOl!_{50!d/@uHS #qA7 w zUـ2_u3Et[eVDK#uJa@6@d CSPB}ŏ(sB1qf9ƁIuD)PUA UCSq1tE#^ Iϰ+=HdUT,D2>Bg!VP5!r}UP"KGwZ#}h76$$m%(4rx70^ aI=^9 @hIkIxl#R)7i#%JKcdc["&㗃)A8:Ar\B\U\E5Y {m']48Ap'*7uxCN!Bфjw`1wD0xz$xrz'vSA)albKaQ)~q^LXq爍DbIs#r߲jABMtS2VSUpAASWYH bTA4B 3b0jJj f^O!R6 RC1975gkX&:!'OF1niW @O[TKit$[J)jɷ6x#pr k)%Qx:<6CY2Ujyfhӗj"$(I[g'~ 1])"<EMk|G0IMi6\A҂?Rj?aO8goV$28G:ZR&:e8$"%z"^"HEqWi$5qëx/0ROzq>Mc D1Ds<zdY 9yD@ 3ڠW Eb TPEOC!u tĬda+u [Cv~,rAeP W3  0r,vg&7xY$pɤ^)VP:8{31SYLzHx]xQH(7H&hw`h&[Jf'3LiCy !h y01)PC٨Z?*v|X ?tP \Ǜ㣊;V:ZqB48'$aw뫏Kt[7a? HGQz w@W F:q:VQDWvE.& sQ4uZs3dcO"ju?Ͳ͢Ogǃ0Ï3|3TCx ?0!pda-$xi` `7ч6ᖭ6>rHn)Ju9j{·Jiygkxb-uCb]Y“ *\F|\¢v1aGҲX ?7TrziW\8$$DgAJIhիGZvXT|B rvs6gKYUb$ osJTcFy 誂2VR=UEsbUTV8vG1dѰC;U#4}>)uE OCW8go.M2H2"BkH8TJ=VH9V**ki^#x:$!J#T+#gSk|Zg[ȵA.PHE{ B M_| 1q |Iƍ$^yp.B~tN83:=vŕ[cwA7z@y#lwi3;X 70𳀴yuB4XE* +FRWϡU5)DbtrV==Lu6HKϠ!bXO0Q}Ca,$*.25Lpv<=U^u"#PS!?u oI ~N8mxxb)LrЇ- £yK.}H7#fj+'Y'4Y*а U)< -!Hq]]IK,|%7QWRNMpCB;sLߦLi>Nm6˜F~vq5Wy8%*R$.@S AS!}\AFa=DTU4f[] =1,TID\^Q8xb#9 "T Z2OF+EY~8= NۍN|5#ֆx6HDۡKmy[KhIs:l3%`PM qKICI*!H'E좥ҹ&ÞƧ.]Pn^=Fy%8 {u,%c˪Dq\SRщA-J.7E-WVNFd I#FT%CGETVG٠1YA3ZG^BK9v])u93!TA#f'$-{oOQ-_4M᠂pNhAN1~?mZ\=8Y>Bh> J *K* webmIY 쥗xZ Ĩ蘰GW˂ ÿ3A`fA%%w ;:~C(}߷m;63>rXyq¾Q'6u$:$qq% $-ƺ R[t[pAHF34%gFU?#0yu,*#]vb/ڑ 2!" f-  ,X0\ab!W0? Ѥ)h!GjĊ9!gP )DD*LpF+wgK@0U*'U! 'Z}q>U!H1(*E+q*Yb ڬ3`۾@@N#0˾ƽ,K;kw /0.+/л.VS8bӨ(xEkc D$ b LPndfH'Bī[o=<+@9-@.P.֭{!d /P+*-̚jEE;REQD(!`JV黂 Epdf < bƜ`132oM3)dr^ ?@,"=LX8a'˝j2oL5ldSO$'JWC! ) =OQzd1h>] Ӏqq.w?H̊"LmAhVj0̊*`k BtD$~ u  ơDSjI8 [?@) PJ8`WŰ9j9r2Хr+F*BPv wC(!D)Py :yIDSzU:ƪ! a[g<ِ$C0L%\ yHAXhT2_QmQR#MXDQ\ |πX242yL[rk-KE/,$4T ^L$CFaf^qOY@XD˧8QA(@b+PpB6Vq13{~%h"ь'0O%Q9Ukē5,aZ!:c GӬ܏~hE ?)5Ÿl&ٓK΀J}kImONcPl0 ?QO6@В&32%X˧N0ӝ\ZA `^%QԁTRPiH}':\\?<<7($6snO6܃MU*o yH !U8=R:g+ A_ʕQaa#җbrqJeHwP\!WPRe.g$ څ4YIeĔ&@2PʚܐW}ŧ, cAuM0p: #]4g U@{\dvhw5;8(N`-:Uz _h.-AN]S5^1ZsP*ٯ@ iSTZE]P32_[I}J fp7܎rIGX#`8+c H&%ǹ vt۰6f DGzު"S LI$4"C5mhշʠdC9UR=G\lc3M`VgDbi||B2@(EF*'J2aCq=(ɓ3!1Ƿ/_XBȘLƯ;֓ajB=W}:,XK(xf4fΘg,RjWW̠$j]췪iF+5A .eg\?4(eG?ڌeF9V]|o,~mX$*V GӠV+iY&"(iSStvf}-lyR%TV䯌Yac;aNjnH7-"w?&w#3-݀B&Q`NM98uR$pipA'0#DAt=pXZ)()h # p%@A t7@ T4%& #t8$*q( :9+vyzBJ #똡bH<k؍([#p%0+;caa /HKq<2+G3 G˂3DC<,8VCI9xŰk+"ًg!?98"PܸAV  Oq ʉO˹pۜh.%Q9;Q1b&Ma&PD?;nb<06 X Ad5HYl-uR'WP#|ɖāDA@A%;x8ߐ-lțT1#XJ\(NpIS011P(6 9BX 3C(R2  2;9܎V*טpܩ`qkۉS EX㻐&"3 &ޑ^4 0ͽDoYcKlp]3xg D+4 -:@$*vMpVϤ>}m]^ds_:iB H` KVFp@FQbB?6O.0AM Yft2`x+O"J}l@y!Netօt F\ Hm^s!v _mE>xpٙ=bKt'3ќY&)9x3I*I(0HsUJP,j!_թ&y%/×D@c~f>\vԐA DьNF<Ns4q٩/)ķwpY՝?_<@΋YFL˪U>#sN|r̡/k=raK.+oaDdVܷ?c?AROC%WBLK"0Ur1-WBa09X ?.U  @LWW?8?0b0` nLAK>e F֕fՃ^?=xycn1 AElu5kQg1DH FwrFA!x)%il 1w$!?nPt PBwe 'ՓQzQxT lۙTUL_17Ahݘ[pI\ |?_ոb@Z%6/g1NV6e3Yd-LZj7 (}dM6ce6oiVܼƁ%^!\s1Ws}]X73!z!|G'0ȁx"L\D8h'2!8o0?)^8"P{W9 `Wȍ2% W0f%Zz; KgI$YZ'eZIK2? FyF 3AGTqDTҫ QDn(nJĨ!)n (ă[T d 5% 'AtieZ\J@VW%s -WHSDt145 Tӱua^d8t[\'[☋E5>RC7r oVfeQs4 A җUGfc"4hIZ AGi,6 Y% ҚfFT6}uAVN CHHd݂"͍2b "} FzGq=b CNj=@JD2υ&bJc D:&-蒇̑v3M/Ap(B`R~;{w;v: 9/e/yJ?]$x9_?U#i HI hŚ s6‰F,(1I r0%N䰭TE,ҹ8& 0`r_R*UnÀ @BQD6/4WQVi9t,4/.ƀ '&#(HB=hFƾTggɩׯi/B4 $Y,c񃗧A*P$`iVbu х IlAP4"y K򔕀Zp MW#,#̹%&uoq"әV1@  R;sz?$u AOzIv"٨o:S#= yA'nZ %fkUY RYK U`@@h)+YmeE`,e`r#y!! ;< B8WWHBmRK&x۠6 Q:bu7Qp4c;8Yk\{ӸMcsA`3"6-F%*alQ*- 'T_BX-0ڹUcRj7]+xtLMD/͝vX0/2J7eȄ3鴼FC6UbUn<S]g\$OWjSF ^91u_VAȷ%^}_ka!b Is,&ihBO+1`nh)) |e0gYg0ƇL錳Rgq>"%k+5T~-b(^R0EbSF&o3/R/rmE]`Z :hX<, YL'/8`!Y0" rD623&̞L LŔ`eP"CL @BcEzd.G*vQ|bō :_]']:=2u cm:Vo(}KC>"_o֗$D9EID6q0qEBħ"LЛQYlEHH%] tFjǴٌ\N$w]BHE1DA FWFWlVOLENG=Fe eKKjEi X} saߑXS A(N <8<)^TaޓH"aL`h"d0q èVikAc0kHs]K !W%19 E@sE0ILuXgKs!0tE mW|?B\h|WJӰG |80B0TE Aa3A}l}@ª :?8AdW{bJ|XDă F%]^k`& a?O$KSڳ|YqH1OTųdJ ]dxd\ qLGP-!aTV(HE>]m idXVET!KU`Xi $yC1pc V98uڧb^&^njֈo iA"֠.M X<1`r)T`4@M0\\g˼DM_nҖR 䁝c G!1I B K21 P؈&@AS(WN)SGF&-׭RR4t >Ri܈oDȹK#/+Vt龕GYPOcZ4uFY$IF bUplEuc=CUEϬc ~]-ު1{i1S1$˾cX7Ѐ 59f{aED0+$@;=˪."F, G*'EaYŴ7:)MPF0 -T{iI'3]? ,L @A%7B}fJMMCUos-l%ͪ.CRȧ``TXg䕧eQ$PV +&98>;X{Xc_~٬j !iVQ5 kj^K.LJvHּ^B 2(Xy_ L' X͒&58tPƄ5IR߀ dP62Ԥd6YhSdGfZ]/f9ly HhHe`I@z |%a P9#UF f amoXŪ $rCI `P+0Ich$!Rv%MiOVArYh7 VNIs#TZNu&%ńDzHo6;.G0+=Y)VT(tOaɦxqM\* QUA z^[b R)뀾Ae3 M\h2(@ ?R%)cY nbJsKv˥I&XT"VG& 2X+*{c`ь`UݳGAm)r9AP6֗U{"E. #3>VmE#D QJd-CI#2mRjyUZ%MHHh7GW6=-(P'2Yd6Rg?⥯\!h Y R(I6 ̣MX|Bo  9I|}FEQ9ZQ|w(xIPW %)@7Q0]XxVĔe L^ delBⵜ؅ImR.ʍOu/geiMtxq4F^I u TV*'i* /*j F@][hc{:'-]+` $󤇸EIM2kYbO56!gӥK[Z'x-o%O`vkm_;2.%#`";ukD鬰P7-P|m'YE+[TnW鷀)rire0%hDhK7ZI.SfE/v\%Ґ"2 0[S @7×^X8!J]D X!ue^_d%<,W\ebYi*ut2a "g,<P7{C\aͨpF>>5y4NSqs=T2Z/֟-dt&U`8զ$D,7Q٪x`Є#8[pňiEX{2obA)Ȃ|/_gjXƲLJr[U?.Df`a* (e6N@.e* ,pE %o\P3D&7n-t/ǘc|eJhC:N:PN{J&Bʊƪnʪ,Ɗ@ @H` kAl%N%l䢛bybDI"oizFz#%Nʭ (fMRK@-Tas /^"0vP SKK'pbIz.BTg KV,ff0P:f*4ΩexJXiZ垰M*Fg 9~ĕ\iLiwп/m,b/ !:N1"..F:ȅ ~XXB.""(ɁJO8}0*7QcfHŜ#G:c$'f/(uFvN7?H62 j$$jrN LA"V^4j&y>aKv#z%ͻ*ʳn'!΂ r$+*kv%Z)` !V"VI֒I',bgoNz\^p4c9f7$,bڤbN)~T~0+PMrQܾD%4 %`k1^R% ") C‚.nB.'"&9>x*bJ2-$_.(~"($m;S7(KjBL<+hpΌ ƪ"_bC.$`8 j,!CHRc%t dNAj2/#c?XB"Ac#+*A"nW.G<` HRJ ;j'T)/wE)[V' \ѧDL0shGB_'~{ "&DI" #/Ҕg{,aNIXԧ(bNP3!rTO_lQФrPaIsb3 Ӑb jg31c?ڃH;Q,`8/#! <  wOOS:YC9lb6 62l- #>>$Jtȕl5j%ܪ dߊB8A!K8銮JAl%،AD0^B."AB^bMHI.;$hj(0GE2@L L$rڄ*B|'5pS\/KǩL6OB ?yn H$^CjDB `>ɬN:D A >67ȵ!쑎PV֎I" '堄We!o+{DH})Mekk,٩HM-4 &d DGV=X"<]ԔD ( (N|*)*-,NC0#nomLs6 gl eb_cSq1h: 13ޯ&1`Cpq8T NA醆lX+&82ش1Bfu/v"s/;v{e'@`Vl6Cw-=?z7\Y0">ʀAW@,v0^{{脎(ƈ|#inb%jTt"rR {I\n5ʔ)4wD|ko^e@ Ik)+#ƛ.?Dp# *!6i iobh-LIh/00(j*wnGP 1 -DSoG!qRX";`dgE0-!f,edne R%[P܆drN3ע-"( , US c"a`Lނ6L @u bRzn@ЪcK}BZ.Lk*X";{t!> #hBo{{Wԙ{]]C`!Br x۴kA6? #hD># k.Fbdn{5 x&cųDoK RM-L8Wo5#"Rd-#b }keoȢIj)(K J[>|D* "~ (NZR"%PJ5ja P_|r֩_ɪ) .6[2:1H34c6 D =$ lj/-1ڈC?y$!=ջ 3l?V3:dB849]8~\>@u% t$A}$y]` ` "ߴ7h0:{yQ2.}#v]cDaV% ,Ug '$ÚrM uHb>؀m{F "<(btD׎84o--1boJ *_d^@,o~N%OBZprTv %|)gvpr@ bhAc0B$Y F0D q 8pH$p@B\A"tp88uzߢ,[vP? MsP$pzQNF9r t٢;,:dQ),dHP'T]9)Au@* T4ߖe\PY%| \ Ug9X,Xv7kl,59s4_K2!S@>s<8: &VA㼦 IB0 D?Iq5xB'dqL ?9t&\x ńLȀLӃ]!? ?Ŵ#@8~O$& T3 N!^Yp^Yח^by^Zi%fna)pj'Ba8О|g~"$ʔP)Đ D p*EYlxQFe1)i*B[!&څ Tkõn+Zh![V)&gUmPBǁ[m!@{/ ,h Gg=LhR\zUaji!2]uqF@F8A Ì.|08d@(LBdTӈHDSN)Hf&)f}ЄiB~]>gwnf'P*dAʤBBCYF^Pݾ2-TuD"5J9IA$@وEa'UjeLO=[lUVY$AI BOI dR%L r `NrT9/ydGO3 mָF8-P62S7*_m+ vd_/3Lh` M->0Z@| ?K"Ѐ! IHT!4ah#!!ϙD`` =A%؃+-nkQfAɊDґh*/ (89 qk'$4JU K T96eJoS<'UItPwEc2yAD(^ʤ#(wCNDI4E)sfP/xw1PxyN)>Ɉ|(hҬkpl8B,Ք| Vx)GZ:T EO2Z*Y> 8Nnk`L8dRE|AHc '@>l O"G9 N\+YΘ3)FXAzE&*XE)T@I'8us;"QB`nA"|* =BD8. $+< (!TF53e2iS5erw@*=еxݡh}Qեu;Ȥc "7!L nddL@ 0A9KAtXyU+ZyZߺ.Pd&3 gfm)6nb"6iێ:HM`G"mR9.pRE& v2CÚvwN!)Qٹ՚wzm,(<Y(,0ԅ. QofNXaB%?xƳ*"m eDf]^W{W@`gbo,K= ߂L5"h)í܊(D9"`c#agdBUP4+0n_83=W /K<5il TmS̔6XSMcߗ"RD @RхTFQ%`D)[H0s U G#@*e);qPZL2FOr`>,1O.s>!"A_AP8v>13.(Ta\E?W VOD#UWQM]&uHdJ]҃ f!pV(EeGvv!%rH=B7e' s#` &4I!1Ya6Y{'Yg9]"j8j(jjJ hB5o!vZg(GyjgK:2k[aLq MR+L=M/LP=lإ]BC>!Gq2A,YO"P|$d  wfR!a4g~2_G(Hs=>$"cCcbR)!q)uB( nq21f0+8)=/ĸ20<9l0RƂ eXJXSn zfE%A!Lu 9aGG$c#6G#/4O"/=W5^.w5YGY%ie9g(58%c58wIUl"['L'[![ukH{"=*+QAxVp嗟!1`a|f6|sU!vRqH4q`O!҈A1XA45E77c%.h :If Xi%jwtJ'Vj\ :j[G'yt[ys! "BCs2M<+Q~9N^W{a v ?Q0_^EaR*Q~3v/Ǜie=#)1!(qbA3n_pra/s>H X1ɗQqW Q&P WO Re rqV!B Zorf@xeKxX(KG EEIs$=sOWwADi_b%^b`g9!TJ 8 84 ury8'j#j@a[EZHZ( Kb;m'lzBm8NQbיADydAXQ}fZ)dB409S:%1#Sηqgc/cH%A=}V٩?Gbr~jNI47-fSh"r+b:S=-.žH)R$E0@#aYPG!>ɮKӒI:=i#YH i\FhKYft&h"9{V1ZxIwכ[J_ V:!hk2KGʾ^ p)*ЉMzryz϶+~fw/ ?`pqWh~}hBO~OS1i~#SNp*3Tە~DTÎk{!QqK3BQ}>V=8|se@-4SE!|֙Z|Kx$8#xK2tِtl<#Y k7GgjBlV"1vVHgZ"ֻfbY}xRuU a!ZrZAYkjJ,y'yVfEJl/*͓8GF,AtzY]Ma` ~J=/Ep lCn<,# ,T853OٖOGnS 3ÒaLY˶^7ew jD 4#/Sˠx1>7}]TҕK'BQ$EW9ct IUY  P :WBhdT'y&-ɮ,v2QtpaOq8tQ+SWO 7#%޳(A$ܙ.ezϥ2!1N2/L-XN,ڲ(=%M`6 :.Gj PP6 I&B@=E}!^R!*#{{!T d*"z%"&J۫8~wʝC[jW+#I!Ӈ8X@Q@F*uK&IOm n-TIc;Ó+==WxsU(MpԁDztyƹ1P3` Nd UY A] At8KfS]K"Nn*H(n*_wqcZjmH˟p[ӟ[|G)RzA.sڪuQ.R)\Kr YzK!![{dž^&436|8Ӭ|Ĝ`9v}^X|*Y;;\(BkO|q0!^8VbG\ŦyE,]Es˶squGA'~/Ei>e ^05dN  {\%k9Y]zar Gwj4!:D?~;ש8RS%P@@H `;u׼GB=B J@e,ӑҬJV,$Zj)GU!Wi KҠr꨼K);t+bJ)%Gh"g紈Nh+`,&2˫RkpbؽpJ"ʘ*20 9 1iw4Ã~z',ɩ.L`#M.V{6p|8`.c+X@`X9 ;:/C 9Rڗ`qj"&_& 21ּ7$TP?ijMG %P$h*G#wZ#M'{ Ӫ \$)(YQvT8Xp儩`|`6/\yu!Zv"_|-grKtwit EA+3]Ɩ82[pWh2-.jPf4| ܬ`10!YI&zl #fc@= hF Bi@HyD gZ2! eN!R0yY`SkR`(~( %j)Pz@WP[@d'[hq hRQ &]1Ib<#VIBi1+V\YVܽ+!U%X͡. 1yY-kY3Sp=!H=pgPҋ#)M7bLbWp3 Wnjk㴌0(jR0 x"UUmgIYՁ%=`ن*` caPl×z ȚP$`m[Kt39X[>zx3wA pr 'xN;80h " Z21B[Y@#2"P@\v(눡 dA2 +;A9òDAK+s[3s+A9#aɁ?C,AY,@k,9 ityB w!GX(Aqd,Ĥx+(q5!7Q%gY>Iq57EX N Ӕ`tN4D@t&AdgR^3/ ^ rʭx.CD;K8j/ pzI@̲k<Vy#VbCq ھ˃ 4xKd|FF11^g8cz< ;@G1 J+c 26D.#+ O-9lHAk+rl#NƑәEƋc.x3 Bzs J6D|I3 I*б謠DR[ǰ"S-a"X(he#0OiQL!xCQR=.pcK[y'" D P ]rfQ(~u)c/cB Xδ}k0 SƀC ۰ˈƁ ʪPF+Zj?c 04NsT+ḡx!}I^T%_7RMrǻ6!ޜ=(ZSSBXmPq@ݨmkQOy ((&(:h ځ^C~mUQ9:'WħHL&SvzDEuy'zY 0tpx 4!)~Tɬh۠,+1to&N&(~(G4:220\1^\$֝&c6n7|$,@>r&ЭB9?󺽡f POв  s%]]0h4 f܈pҁ/D"x!0a&6Bᥥ j)ΚLMNMɔÒ5YIىaXӯUyc<mӶ==R\ߺ =ޙkok EtIEKzEs|J3 h^LA ݀c\0f(Y)n<ۜ;ؽ .bnoŎN)1\ 0Uio-ig\ ;ii~p`Ϩvk@:pC&A%!jIm-;(#EjI +( d& 0^ՉWr;r7| /r%aDvB-<^ Q'D  2R @I$ [m.`sLm I {L|뭘k\`Sc?"#^v-i#liZel&pUɕcd3 fBwAC'@ 8 k,AԣEWX!Gz'sKK*P{:J5Be `Rg2. k7РH(0B XbA%c5NXcR~[7'ch'%:o#/dȑ#94`˖ P,б@2E0)9[H-#bk-"BpH UrxБO#\? 8-o?,,CȂ$!!XbӥW,`3 ` 0U PFm5n=b`-zu_~5Z*U+ wEY `Y`z?X@!5@i]0c]8rэyEَe8xQ:MFfEE9GIp'"E EEyd~KQA$Ci(ԐDA7Жe6c2?t ׾X3/{f@fÀl7 .l7&dXĈC4t~lO1찇dOAjg4|cf;9:U!,iQBE,tEj?,5|7QXYV pD -, *H ANRA &gAepeaVb& t QLS䔆!,BXJ@NbrJ,kS%L5>9JǩeT592;U:HRpEx/."PL#R%3Zj9' 0z] `Ĉ o_cض}@B @G.F^ڙ 6 7X` aECXwCCp=3;P PQQ 54Osڟv=z u"( Z1ZF0i,B"UkiV"9Hf-po}H^"8H :#/rrՃ# 2L v\Т,䕱DҵF)9Js. P:K@ ?IR'%&nk9=$]k3:"(^F/6]dZ L]`;1۪ͧ}elɶHy @vl6 C1`9ި(&_ 2sO"v?7~Blꭏ^'5'KP7NSB/.R`A@S)y? QA4`8E@YU 9ו at9Z A$tə#Aė8ە(4ਝR N^MEř4*iV(`i5D <TSڕI0C] I ^Q^ONPIҬZqWrq9K^گ]Zy`F`d@۸pKaϷdxeF@U}-1+ sITDWxLD KЈ)\ c0℡!PMT pHd1y76 jQ "FiL9)PN"N#=٠`Jt`V E^\&TC^ S,E)i ֒RIR\ zDD*1D%Dx($j  HEkJo^RzAplSYS[c߰tZ} j]쏷%MKlxbWt̊դ @*>bsq!}hpJNݐT}lT9{́d L @Xl@8R $ mr.`9#0UtX@`KȏmE^$ thsӱiKrW`GECn\Hca4>ଅ(! *CP &/gLF$RA,kiJBx AO!0e%!֍ 9-Qe4giя(wY(P`?%_\ ߽4@UX ^e*F`׿DZ >ڢ9ܗ~|fXA!AjfPMD pF \pX l#8n6`NtQ9v=\dΒܒQ]> tSP B$.9E_ 6$[ $4#(Z,ڦ"< Sh8v~OgT$KdHEBՄV VSNPHPHP0Al M%,+jrh<$*yh^}f}_ѸeQ]D*%A aFiBe&n~ ~јӬKuI.o*#57:`vEjAS8q"v_DqڦbAꡆ$W@N&ښjA@@@Eױ@zjE * ͠Hd)hD)j˭&Kr*a-CHfjE+)B^k^VOP@4Ml!Vm S>@x hKK&uR]Oq_L^:9_8;)FYJ ƍBF΋}FGMěȢ©^RZ)̂lt.EvNi x)I F>`S%8&l0.*@^7~A&g*90* g>r( Œ N\Zt礙gE,E8*JIBb`/^%Y1S\硩g@Aqcܯȍ_ x菙^zVvEov+ _$a@w]^K}|U6o[eEXMBsЯe~i}i,̲.)^)̀cN]Sq96m߀n^j -[ZӾՕO0Z3\Q?pёٮ-MZ*vYmC 0ٝed3˦β.\x1tP@ʣHtdP~AkDN QJ%uKJZ $!gK&q"sZTVɍ$`$5&zam@2Uχ()X(eo( @Yլ_/*fibAԲf^f<<ŸSMXFHo6m4Q72m82 /^LZsqeԎ헤9f6]I/?O܎!"zV>Ev'#{Rjj1{*?vmq-NdP MZ4jk}1ApaI+ y QĚ^吡NwLMOT` b^du sRX8SCod^izuB,LgKitǹ/X5b8gc,,5̲,(2^Cs&jm[;P\48i9B&8.X C69k0mZ9oB-\I:_D~_ٛ^?QMn *V@gҚ'M6D'xb0]/DW4@^RWPNA\NҦa%񯌏 ZraQ\ ;EW) SaƁl RUcAzWxVXiljYuh*GGleZE c F7fl^p&)%cx)EL\9DD橐KKꩻ f6# 8FycOm#68 /gEorm@ ]Yc)g WC*D6uɛ'`Cf@n%709#]sy *FPE6IWӵq_meLgL `mkq=y|kd9pS<*tz=el%=X2b2|PPy}RFYDžEc>j:;`i WHElCk\Il70b^L5v_69 ԦgUć:fs9͕ܙ/VZZju3ᤪr"͙0s( zAx*Ud!ɪoi1E@(#[$<9ny#9Avĸe$Gs.>FĿ,]Ɣ)BDi|?}==ЇO8aTq'`TèΦjmۇmپ]DmwVZUm0!qcvzjNFw*9?< 0O@O0}oYAYE̘y:Wt磝7>ZtrEk6 !ZwB!~4! |꾢?j3UCm(| # Cdj=aB PP5T{Dh,@n|ȡx(28` B*2>"ZIz%Z%)i&,*(K9Qx"M܊'|B'8J;ڠTeP-z.H" 0H0!4QŬ*::<;̳W7MSyvՒjC4*#-PTg lvERQ*Ѥu7j)P[Kw/= SLZauvS_RVӬ7EIfwG8ʌP ^#[T5_p)҅{ܐ:#?Nz~C:Z>ǏFhc l߀ D$CM?0 ~ zoW`GLYXjtJ$j癄@ Ie&¬t%,I6,"҈$ʉfD "˸L'dd)el3 *DN ʡ&xbʢFf'(+Fn+-@ q@1{1u P^F;Qp:noXpG]jR .ᔌDEp"7DRH}jhVHLEeFhfHPB'Q q%B8Hxr<'qo4#ڈAyswE3ۈcq7|k /1)2vհq :Pry&E sK?j5饳_Kor aLi 'v9=h׃6(&$[R*NVdQN䉝X{!{{ "OHȞ *&> rVjAF1bA-oR3e-=@\ՏFG 50CYosr7QgaYwi1mmZN7|TYÒeCXTc5BL@8ѯ+ޢ޴"3KJP;Ts?pt=LD>bwOd ȠEhhRIF< %"d{{b,w=yOc%kKJN+WT%#NAjS@ςЂ+E9-Ny'4eu-Y#hXAؑcy;~vp3žX8ҺZCU8^8GjNŅq*A\I)X65 U`$tͅ` !L/RbXE*hȩ婁$SID5@rO%zoV{X+H:٤{wfu=ivH2HVϩwbk2-{'Xtm1 {y5P%o!Ƀ4xy5l( VWPZevvþztwy/m0cWOM[ ; $/χeIU =Đŕ=` N`v 2v' n~ʔ˛;uf$<`;*W;O<{w¤ݸ-iV2h6g}MNdOBuOBOIŒGE[1B1ToDSrep r'^$ @$GPŅm[Ȏl u#CqH*M2@R ǂkn0&-<"yNC \|'|u՗B=h|5s(n8}n(apftPM %GF,vHu/2A5FdIKB[NMQKY?H%FtUP7 NyEUXWuYg [tŜsP^yɗ^~y_zUWZ)TvTWEeldUiYdif݆k)g МE)Abo!' Ȑ:XI] } Pxax|Ƚg\V$G1jz E"rGܴ:&rHEr$>o4PA%7FūoF kp+R0,ANi %TMITYZ`6efEUM9EeXRMAj FםqELiɟugnaTV=)e|v(ig=yzBu#Tkƛ}7P]$J!y7x]G{V~Xфng`~nyq"5"tzo1;枫u'!3vV7pK"!~G$!*Ru> b⬚-tY>#d8S<0}NdFdKH1ӓ~]$'^S~\RYLь.ju$L=O{RCYQ"'xRq Gq|3M*A 51ߠ7  D "1L{6"Hp&!,+Ocqetؚ݄S9yZJvr]z$UȎ,Ѕ.w.MhKgVyQ$yd#o]!cȐBI#j/9ȰXœ$&K")g-LeZBH~'`V?pha/E0tBH1RJ_4g3)2SA6۶U!,C%I܈D_7X.HKQPk4\܄oxSQADEse/B~">;<H=VT`O C%I:*X=$%Bju'lRRtߚ&-f^Ёw %u 4{4k\¦=# b3!64%Tb;bz[몆@, ES.!5~;Q1y"{ع"fSiǑэ4#oI;h%W\Uv8w{j+v֫% bH!CƜ[M&0P> klf3ַJT RTl@g)j|R2 =iu: [aaGheS èS=x*N!Zc#Id_)I~yB &6VVyKEQERvP;~ڨ\QӉF c7Ńn3TXt" qc3d7QnaE(#PsɵxXѺt\U"tYp8*IE0< f{togz$Gvy$61Y#L0aI*Jd|d*(9GJN³fCSLVڦ<G!/ԖbGrv0I4ZtIAqKT"6!JG&dr{sa_v2(;sVi%}sA` @w'&1tAoP'`MQXNau5))&N]Y1N=sJd HGjfrۦ"W" Tf1A1$aQuDKAe!*guT!_UW8$ Om=\ Zł{GT]2=]## >:g!wI12A5" i)C|J,chcRhUv2Χ?X~04o P_}jLٗ} QLa~A~VM&Nci5+Fb&avxPͱc-i.Ł=TU=P^Z:1fZ(3(Cw\0I?x "%>R+/Rxpd& .X/HT0b8d0Ì4A2X>"-!)WEVbBKehqKS8J_U}O82E;a>hO 2Ib>HhTVVSDV%KMej(:i5 RJSS )AvJ_ =crHW^ j2$P+xe8xҩf[%豌r&L![![ɱ:/^qi 8D <"eSxǫgҴ{."J&z&WiXoSyb_OTBeh? VCEJp(`[k)*~IZ4Ev?;UAY)fBNZbfUGa漓 &1am( |7e\Y+-[/UkP 73+/:FHcEÇ9q;J2h6_$]; IRUXsVΊk(FMķE5Fq!kAMrɤq) l+![Y-UA&K2$cGNR;ꛓ̇J1a_u|ڕjGz{S 4".Uc\o7Ed#Z0Ѡ3'^ʇl5h\1(\% iK?"b#`FE& H*'6k&kHjY}K Md#8M,N *e笛~ӔAjܪ`ɟ!xAթ3,:xf>+UMlr$ymiŊr1hF KPz8=\Z^9R#GYfq;] ;U%TDZ:s(ȼ s83sǧ|&csd2iw2c-xq-د&Aa A@gD(ĸPtkG26Q<.IF;"?gdy YgJ(`$$5h+rt$*lHLttK-̆d(Dp1,(:"N*ۂN5 J˕58׉gЂRJI204u#+t ?s=()j1a%8u-UAٸvY@,WH[% [aW-qsLtcvJ!SLT(u`W\jHm j'͔)Mjae3 MVdg aߊVg$ ShK I}=R_81ۆP~sDɾi|?O_[핺1ց'բBMgQu'Tȅ'Sj>֑fVo z]SJg mE6糭f-Bsܕ t3zpahOټaak_ 4}]p b=[Yۤߒx޾#T[A kdӥ˶ދbV_z!b~w3ԮE !|u>j]ZZlwŤjYIĭgElr)j$ }v$?J{H &Or3T f%io!aQ3i$8y1U:&0Cڢ%C0.8dgMᅊ#H1(UŲlB{K.wv0$]|}qQΨDD >'S. 1QulӮ8gNmcK񞷁gWOdiss Lp"!j.U:7߂҃6W!NygRo!Gc1-3 /6&{D!M$HtU\'?sǪόY',W#S7- v)=ieڲBq R$`"E 4H.Dm'd\%=I5Q.OUSq1 OfR|YjKr0Jj*e>u3'jW[\zUc-R@!,3 42(gIR8 %XAKG4AfEHxRUD18T9CJ9HV?I`ENhY/O8EH"6,eGOU غ鼤kB˒i0 hT(kNWΫXT_oLSܖeuOSۏnzEhjMStIItJPߝqPVfwT[U67yV{EmIH-+АX[Fچ_鬀ލeuuaTRb,pRxd8vVu|ŭҊmрY]=BW]TMd3$ʹݦ}dUե0~Ox٘sC[[\uDmc<<\aɋN*"jN49Y@ӓh؍]]©cG|ΤK4ǧbʄlwٳ]YάT! uA3oޠx˱r8#eP߮?&)j˨Ҝ{ĕya>l9`b~`NT4yC.XJ5#'벇ĭoRa]sOHQ;鹚SSS̖ݨbbbHHHpppJLEFzY)zzzOƅ *\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳh2{᪝Kݻxݛ>~pr*^\vz2!TEu̸ H^Mwy<6 옟l扰 T3X~^.iK7yO;!y;eo{v^ӫkN}|FW}yY?E&P=? $==O݆@(f=W?bO~&]6}0ƸsE^JRȨcXȅ)@ (?!ןu* "?"H䕃hە?Y#gU?U'n7pƩTryy@ 㗱'=u0M(Ж[IFx~b?5&i]$erz #C'O(\) Yg٤\sd)9*۽) :# ܱNS/H]%W}斫[= , i;gd (t! d;yN$ƬъnJ+$-gR:Ffki=(9/Sb&B)j }47 rM ۄPZz?[%62Qb-cOwiӓ)q< tۈhvis9P>z?.O@ tz fgޜUqRP z搣Δc~n>5:h 7V ;rR;Yn0'򲾼WG/Wozfo}/~o~蟯~~/o߯(L A8'H Z̠7z GH(L W, gH8̡w@ H"HL&PH*ZX̢.z` H2hL6pB."%wHG 9B# Ld`F:d$1J.#&NR*22G(Wy?d)˰)Ae*wK&G9IL|df:󙈌"HT(HB6q}7rÜ@ԙud<9xJȔs $@ i&IO9LČ@AUZTU%n0a  'z2RE)Te(e*K MyP *1dS‰e=jONv . B[HXwN^S:tN:$| ,! ԠVUf.aqK$C~E:ZYь3ġ؊NtlNࣕ26jXvDgaЙ4?&yuI\pnJ۩85jSJ\yp^*r;ց47mYeܢ4kjK `šh)Kꌁ(!]F+kYNl.|Y 淥(7_ 8-uA'_"C)O SI]%;>cuG>*AYrUuz+^nq(z`t=ËGؠOKRl*AֱŨyG؉ʪ|o|aTYײfKz_&f L`S4/%QFN1<۔t‡n@a?q'$qPEĽ*z\u^U3:\ur)fdP WV_ӦH)IZ2_/z^gt}{4_o}\RR6u |_&شiI [9(@UM%TnM?ߺV=؎JnQ;bғWM;Ɯ12p,Nbܓ$D5 d;aPH޵Cs`{ӌRcӛQUR9P3Zٞ/'|f0'v}]600mJtgTa\7'WaMBqvhPQivU0Uʥ\iuNx]cW;AxxGapMs8v|T 'n H|0X^Z%(he-GQXz4z!lWfBe!KllGDARRum7`LSDg|=H|w6kLkn[VFM7Mjwh}}xv@a.w)Qimgi[~bwcwWNh1q5$qgĨjuT6qFu^X%4Ir^%l8 s#z'K<m/HtuY0RSf'ut9|u~xS8HOvuWq;xXi VθvN&UYUՈbvU_UcToLadIN(MܤHHw$PuuyuRwuy)X)d98^98Url؈"(z$%=tKWz {#,s(8f+)`7x9:xgHAgu]EՓ=i Л(bI)W%iƙo9FwY%ie\ɕaExYXkg1NWWF>qדFuvjTnǀ@T5|^Q^xe8s.`AK#٠eAqYuY6fSoP =HO'|:vynta7HP8Y6)jE8C ~ULƙmLifK9NG<1VTj](цWMNI}qr8q(}czMndggYTmw|)qė%xe(X Q0z7K&Q#z^8{y{"页"Q4S.IHx|snxn6Zma`Wi}ףvONqgL*i4iGoPiɪwiR _9w8wZIGCB[$q8dj!r>!zy3KYz14;)At0(RRٶ+Y/|6=Azhq)o8y>۳DiHMEwCJnwN ΕɚU唤v<>^˭fص*xT=QJ9?1l٥Fvtb3+HqkHy뚼V| |[y(?)!z^ ; _ ܘ {u{.zo)۲WJ |H5KqF ׻{JLx>Rl9 Evq'F ׫KɺU:[_ؚM!H*NYt<۳|jsv>V4ڢAz z \N!z6ɹ0"K#@ +=q&(œ 0 _:}{ wۺNUW|tI뿅vȶiK4;|,dzG P tNQ V<K^|iRUklQK ;_{]zЭAc UvjZ;}| ?՗5[WD|˒J,i|Qs_ 0msk|*•Z0<H>ȷ`I 6EX-ۻJ\8}|=a͵=vj@ HDbnkiUޚ.WuZNCŗ}~>kk|]؄mX xz-ߌ{}b9ꛈt\پBLĴ[[η}|].K10K҈--=_KA.ms%xKɘg7Πzt؎J?`w#n Ǭ~Ƞ^\}rcM\V|p=EDKONU ?-q@j͝.mAg},*x\3~ezEB^HN+,L.'mC;AH?Oޠn٘.~߬\ qm*O5 Dp`k >bD#Jxpp(BA y4)3LIdiOD:H5*.UNU U.\puS g+VZ=Ȅbś&_HJ -KaJux1^5dfujv;s۶a͒VԘVFRRYs29s)OU D,7Y"TGܛW?2ʄE^dh7}L)f|h1ąGꡜeK'gi'|8@B0(&m)\,J564Tc4JEjF 31 xH0G4crɁ:3栰0*׬Bg)m +n>8sj9{n:=:N ^%Ӯ:NZE:E=&S>$D .TwSN^%&X7(6 ;-+MCIS+ JTˠRakFa⑰Fl0 3r20!ђ4#İ(2!0_v NeBSV锳)sϕZjt @[@F mt!4L+":ϠO=>PU@!s@t&WmK)-q +_>:g2VvѪّ ivkmD Ӷ"!kq2'/3h3:M+'s+^HD:`D6y{!~ؤF:ˎt%=;Ww=*=RS>="QGD&jZwF(gL(C 7rI{ e0"o?Ǻ$sȼKzz4c̹6"|FT"(,LP0"8 BPq\($a M->М jrt59pat3\Gx}JԢNQ!Kb2Ў" iB@ %URcF]c!k_6ԥF?rLۀ42Czڥ oW:K`mł#$S qt]J(Y E.]6G&5 ;WC=]gas t"ȀxTH}гD"[@aw 9gx7RV\l}9 8 BR`x%E!Vd<1&^3$^6HFɑ2Z [L*zuy׹rI%5z[28dMN!( zЃgd+RK[%Q 2O] lj0D)< *fMjd0O}#0=t9)RMlxfe$ N]S`0/l#n.5L c^ηЄM_ G/䚍-E/ILZ\ &=WI.ΌUhDc :D.]8 Q*aP}F84Q!KdDS!si'0'bT!VeH<|,RgMB$L*"AΙY; `%as`ղ')?ӘO液)*7A`jjjڰ@3ŏb{qvHr@a]R$N>tjkIĦ٠_A8^ˍl -9Gt_ǕҼ9ׅ0aRdHz,VU# '8ŻTv/K`բ  Գ\2%iQ#m4إ\QOR%F:CH}MȌpD¸ipml·&.wY[7f^2\j+7mYv;[erTrSr=w#wv)y0a^#XGVJis/mhف94_w -W^ն0?Cn\/ʇ:Z0yyZF,W!ٔEyRUD;͑M'^2ҋYOz\Tor7`A,u[:K21îv/fgJA|i F7x4_VNHaRakk{ykiK\ϧzQTy b+ b/BWkf/B7n&Q#sԿ\6!fx}Z m*=9"43Q<`8>OCK.:S9Pu49@j1H5i5c9-S 94ê>=>830?ˋ+3,?j3184IY;49A@:J{3AICh@ |j6_Bö9hwO<T4AZ[A IWZEQzGh?;~=TA5(# N$Gr>騴4J33/K,FƳBljĝL2aFDCcTI#hXɁT!ERE$?=3 QVIYEp͘ =^,9ALB z- 2 ȶ:>HB oL<:#ꚙs[?ZLd>9dC}TPP| ;G~/=28l?5?t-LJS8?JĄ(d>jI\:<́Iބ $t19w8/j1oyENXEЁ/\AʣKB"\{C)l[˷ HDO H<7tLK}s4vtvĴ8C ƬLZ UhQ Q3k`PҋCz: Ȏ(QHjԲz "ղĻ%,1N NW#PC҄R $ ,JYEsyE  4)bN12:sRK*Oet$F"%|O d@t JlщOMOωPEG ? LUPV;|UU mPdPQ P}^]QVa?E30GhBk}3OOnȌTKKK،"=uuJv]W,\E ) $*@)UP$3XؼXMuH;1wPNt,` 69ZX:2)ӦlKL|חeF,RHj|KHKH ME͉K PEZU4lڱ{3tU3ZkUP6L fXU G ]V7_PG>L]%Vbe+QQ--@Q}ց U8KԃO_YjFi\)F\M\tf=b@??Uhx- ~@łRI؄=;5iINMw9 UEA9^c By,9lW{UEKYM\OZQoVCZV`WZœU Ǭ[\Pɩ[]UUG_UC}۶5 6V8[rV^[>H7I[rDGs_jO[܊_Nm_Y_eKlߴ\_Υzb\ԁmW_l]u4w@Dj(c3O1ؘ]^ ރ15cYbӯEX،:J?%9^$I3cYB]&\UҚ=HO.bN=m.G=Uu*k>L6%LnZe`XU 恐`Fa UDŽagmabVC[V}elNZTv*U-6eT#Ʌ\\$T=mKg'޹+>+Wyb~RM4įSux:.ްϪ5j`DRO -1&BEdpXpW`1=bFs&g6eTMЉ[T&Xfer,4$qU^NC[kf;L a^;d>hikfive5kW&#\qm\OT-g#6guvl~f͞ʆ+>:*c,)M<]M}]h9A՞EDw2.cFcPI1mh]I^X j<XZ^~EVdEbuJ]dC=>%M_vuHFb <5RZp݂ZneR[XUQ\-QnM,g UQh^-ۂvZBLZ.Q,"FPȎ#{F]F^{>pPpP/զEuPզMhXym^7n^jR?1I\4F=hB1i?(JݔA}K>_%WP$$HPu< 8#fK_L=]Vn[_\`U~YmP[k`b6 FEq`naif뻽3VVoLQwOCg"HUXԞe#gGu&ORϖleldӝrҦA//XwPs5=}=G1`:m4@龸0O&piԕtbpE]OW)4zu)mFTOTuoXQDuXePd!Gom5Ἦ^bvR4[p v &aef 0 >,ȹg?w|qkun{}Q_uFQzHO}zA$=zyMm\ z]9E2?2g5^m>]:^:Xca^V`n7ZynVޏy^֭^FKGbCE#X: AP &DAixQ/_C~$(_d2$ !%(R/DAѤCQȬm:*ԪZ\j_7kSŚ0*Q--Y_mnTWn.lOzEkܦlZk-8U;ժ\Ѻfy6TfkD4=B}yfa:ƺ,p1Kr-F.w A)WΨ^z;nS!?"+ȊD7o,V_) Jp1N r}KaMHر1g:0YIւn X"LZb&12ZB5`*k"LbH+qd T E0XaH0i0ֱadkэx!ӑs ȣ!9 ђP2lv Μe FЄ .gB4L "jS!@5E`kZ|QY@\%/h[_D̠F"H7a0[^0~"J\Z562NXӜ5jfFBSuh&pqN1Ӛi'I,d ! &zO^қD˹+{O,욗/i&GJUxFdM$Y- eH%tB D39Un85puoz)1D#r\P!l>ˢB07D?] "]v*a+aD@}9[\&w2yj ?ըki86)UsMCa=x1t], ǜ:+'jw Ԓ!9r5d\clJ1/D$1%¼TF\}KCF<f/_P_$M,?}V2dعQJH`ud6CN9 :Au$!1lS sn;'SB}tPTӦ2pCnͮE6-Ň*1Q 6ûvaYMŻM Ôt1AEV+Upz5+Dp=بv}{i^'l#q jQMˢ✤5ckf=1YJ'>;vk}{uer\ld-{?A 2 ? Cߌm1K9tz9Sh?&ہH;|hvУ *ia60[i4AF#fӞ[{fhba(eTjWKU6)PZ3O j,N>yhbnF'H1I[ 4NtώάE-S[EfYpkR9=㎛};^|B/O{Z8-|3\" 4ZށAe 0- &cM4@jѳB,ӟtjsy?|keضYF4C54ݤi!*`IDC:[Ze`eWT(x] G ]Z]atTŝAAzA ߁ bThԁiݓZеY҉N<1O\a}ESQ_{c 1ÿ\@]m(Y^YQ\PO{h\m_Gȍ)%5\ʽ@ 5Q@l#͉͡_jma^!]o9 /bEQ 1Ħe!#fDy)^FIEZwM7΀  ^FaZaVJ4.c#3#bQp1<`p!G-vVӐ!щbKΑЅX8UUʹYY2(??hC6|1F|4=M~$hEQRY'š&Xi$ib)**_beU$Ia/f1/-Ee< !Bci񥪡`vԦњEfyI̠b8Z:a@dG堝,#acS#E]^2gD4af>J`-6]C%l5R$_*r%FGL&_(HʁIZ"I&2$߻XIHH}LO KBb0!%R6xJg$%I4TV}f%^'dR,CvS-}86lceai(p&4֙ `v67r }Twm- L c`Y HD e;c#gb&6] : )&J)SUBa4Cӑnfi)oh!G 'THک2I2hr*xO=\TmOOMR`} UGRg'-V}ʁ!)Ƞ)Va)zߚ֭VݮB~BEx6 06 lV1k]* -Ɠcgjd^ a jkv(*|G`ڱ+ @ūE\feVfSȀ V ]2fhNMkLiab5)&j^&*$f,"ÚbYªE(é2BI)IzH,JՔEOԒ9ٽH䇔YU+l_{~*uJ|*|NS'U_ Dɾ_j~(&li+H+݊itlac*`D,DJ]b(T+hh vwQf~Tk.fw#kƝ Z Nҝټcafb+==Ƴ2ƳfZou?B6vfnl3iښVӮ,IJiI$Jj$]LdSYv.ɂ,!N<^e_Q"c$BR2|*xou3s 3:ph۳Bh=Cvn=S@S4M6n%n1m--D(--pw@ " @wt E34F %|.JDA%Gk:ze.H 4taIthK6i,lm66mblOBkC K B"9elem$W6c0'ru'guVk|WJluaoŤ>`&5,0Z_Ol$LRNB{tJO8sIj$|&x4s5IbGv0Dv ca@u+Xv*p9wvhgxC8O);sFxNKkkk׶l3o#oۂo wg77Zt+t(tS7m7Gw{xGl7xov+b Ú:yA$w4O?tS@?8Ctnm߶\Vvat{Hx69׭my8(xt/30?$&3tVVw})2J.**o-*f.,ˁ\gx5Qg\-2X9a'4{#v5 C/ACxdWT<̟0:9B:s̓3kC;?{;='=k}6vp[Dp;1VO=56:q3c;wtCczsد]/Kfzh7 %%Dx=ދ?+ޗh$awa⫴zwS\8;Ca@pK/ 0"8p=[m>+~+vЋݾ>k7y7E|00VʚoFj$D.V +Y\ ,rܲ^=?a[BYWJNp"tzy3g*AØKv$m+ ;:?@zj`6JB#/տ6#Ѹ1?3~(-"Q~іlc1x9L,ڋ\κw@i@ D#82CH80̂^0D IDC "Ef`1<iηf<Q SR!*2B2"ܨD:)7(1Dj%2,)5 4ʣ6 *4Ӱ,A=Ӱ-#+:A=CkJƊ2ӣd00 C2R24h)d)&Tc K.SK!`36@2J7h7ކ6ZX}k= ?v[zz3ϣ-蝔 y?XLxϽ9~g= ipI*]ǐ9c19T,dniFV#XyG2$H H#gtv&urJ˰R'_aҒ%Qfl(X|s<2†4*K*S:ғkF-AB-OzF}OˈH{,N8.F ;N 2U4'8죜f-Kˆխ#琔he\6r搳L:f.;hqE2%="/=cygoS=DԆ$p\Pm91ቓkYp6: YR +.+[u)hf }gt3:C9@3\ ,`5l06>m^_S:Ķ/| b"QOA, 1s43aYϩяLňT!eX%8ahӣ}p99G%GyI{:T0^24$}阨0:D"#I`l($d2z4J^Gܡ@ D&IU PJ4&?\CX"9aI'U:d&3Ge7(:%- 6-5gXBXBAmcH~֞ThsO<| {(F+'>Q|SKи xQ/-VX“U`KYeB΃!Ԓ#;BhEoJ阃˺Efg9z2)Y;,vIXhvLxq|)wVO>%U$ȃWBjG ٕAO˘ ͕- lpLFԞzGG5Tiy oɲNaDOuTv=幟x>>-q:-ڋp(HO%iX 0}]L1o˝u)6ШH'ۘPHkLSJYm^5bFI8oե6Ĥ ;)v.#p'*ʎar1=d;$1o*YIL#|+nX<]  oKxe'h,4ڐ6mɜEdAiӆеsV힥D+@nOEK\&:7P}; 2EEX 3Z&d,L4s4j;sl~Dovm)# >u6K;DR2k5%;O#FI'Ӛ/YAq썒# kG>o<y #b %pW2|7qk6p2 ,`ϊp~Y[mN{-|>:Egzu k р-I/>$eQnŻ+P, .,D%..jGXP>*ւh8J*?jVtc2 % 񾬴LNO" M".:M$0O>*Fx*Ąx 3HiR;>f?ꊕ @A<FbJ<8b8wv)n: 1 Ɋ VF#Om6۸ Lx̂D#1v*n3J(%KkS g겎Ӽ6%/.PN.,*gg?T`07eԄR(_0iDmqc12M!S":e:# RQck~L1x@/*;J8 W _j?PBC|,}"'!Q.<#1ɀ #>ae>`*2., Pf,OklL&,Q1ri0iQPR+ .\0ϪQ0Qn,0D,0q+S,UդqS#PA$.Y\.d-Q ?6 2r "8?b*2"':O !;-=F -?E -c_>`l?Jgj|P@|()#7.4.<* OO#4ʲ C z C.u=sѧv7OX4%72PFQ0EF/0[M113#2.Faő"/D8J4hV 601e#h6&g۔RtaFTҎJqE"48-"S$5G@./|'x;p,<^LɔhR=Q_> 3³?f@- @82*P8#AA,`,ۚM,BuC5D ΏC_E1OǴ/q-^oPj1KPdψT_1H/SIv_6.2t32KLKQ1H1RϨd鶜b5T@ME6mM۴p k3gMh?BPm"-ZoAQ%UQH$*#wxU85;CLyPFUzNU#=g&m`S%=45WǎO&* +U+4QurA)B3t3ȕ5hul ]wU"OQ7Uw.Evd^o5QaMFwvO_H1mawI?c4ӮtyqbuS`yK_sQ6G6kw*d9=N]Og ܸUϘG7sh-#+-)j%S"4/Myb1Lw5:zf4-!{w5k35k5wYVlٖ5 &{D9A:="s1QE?Vo֜}ӭ'D|̖T^p ßlc@m@p>|Ba怹0/ q8/%K+Gq3/C5CZt'\K!t Ys_ڀVE.w] Rgvgivu~e7G\|VӒz|Wyt9bk{AÚ?Y{ U<=>!wE"/H=°zYV wtQ`;\*XLҍlgಿL6ܸY1oR-[#Vv=yn;6i>YclskBS:kCp[qX#j%:r* Zu%i)YX=wsҍwuNNo؀e^2fq:fwe}}ce}}k-S:ɹzpȃë4K;Y{ S3/v`f!?bڽ=bq>yq|'ݯ>~^ ~{Ky߯&|5Yz=A}9G%%Q*(*kVx;u/SBTOlzPɷ-# %P)6EO{{S W?%=ѽ#<ҷ[Q1T[-[Uf_[u7ukemmgo=%]5Sbw-|HV$=ڥ=1M9S]Լ}b>?պѺӝA)a!affa؝w޷A$f#]]#[ }#&;p<ّcEEZD%y;/Z}kAin}UVbݝ; x'Pƒb5)"'x9sSdHOs &'lĥfڜӿ'9g:ϟB916]zPtD?Gfu+!?cq=;VخDq䖫?;׮Vu{7_:0OL',qʜ f3`]5-xf}Zhq=96wVۯߊWqf}s}9p̧wۮvu5sZ؏gu{\ۯO>ꛋ5 Ax &Z_Rd3TMR&RAhETQ%t"Aws1a DL**ԐB4QAEd·b,J'䤒IcOA!TI}TPSbe?`HUSQuWkyXYuWxȀtE`~Egb)h`s6=rfe_ǚ~VjՇ70(w71xي\6TxMvAʹgecetA&(uɩUV5UR)/-'&}tADndE7 IbA%"d.oB M+($s|dTNO̱NSŪ~NBQyM?2fMshR&W'^&Yx hx%b~vh^MKwh_g 7ulAfk:A ޵w {ǒxn8ih˖79cB4`5VZqUUR~yK~J&ts$w@\PX"|AH|{ 8E!~Lj[M'%qM0U%"觾`KjTaN h:0fjuBprf䦛 =XxX#&UQbSM `L@}Sj .o%t\ "kvM8`$#BQR &;F2R{!J9L٤[$euv&qJ|mAߖrce8 _馚1[nRTvKfCT Lljڣ0MlFR g9S6 yS=!Oy {Nݰj={P,I:[͊h5Lդ^bje2:PIvVcKf["ѝG /!z=9dCDP'SX Y697~hYXd<*?n|7KP#^Ftm꬚O;9MYk4d4VYA2M!אsb6ސaWq  Ѐ0 ² а $x+Nr7 87 7Ρw+$pp=mFHv$wl3y38)! (\Oy3B 6iMYEH4 zNs6T37Req 311=QBHυGQ/w<w0!/WFF!dS7sB)T>sh70 A3&Y3x,rclm ЋX+)S*+0fy7VN,m  A8hxuӀ|3A3AXA( 8 8.xAx X69Gws XŒ)FX1aByY*4!gWM5Q3(s`kю@re2ecBKez|{{8;)..B\ b0}%6a9fÕȢ~O['HbW+H$9mi+| +X+V ):0֗&A6 9. 7!)7-(ɢܠ,s V0@g8g&0c 0$x$(3Z.b+fYCUxvCfY'0*BecW7*"M13!O6XT&2sp1Qj.F$c&1#"%#qff]BѠ137Lc1gYs2a&}l@WNXsӥ)i)2qH+7q=+X8Ȥސki 8 ۂb)B O&,0PK?:$VwWDr=gm:' 14k4k󱻶REYg6! ' "&dè8P!E֢ ږAg-ْr &.?q &I4 5QuF9yG#=S=eê3fyFb atWʉ5~K>ƕ^։*sx71iKk鸘!+0خI 8!`igU< @TбUX} ` `hq}}KV &׫}2 2bx8 8VN4v,m1b!r< kqZV{( x$¸ ;`B4BR{*w#7dMZhvrӌ+6!v ?qd yey2>]&>:s@2^;1[ ʠhdKF~X5DЄ y`*&Xw7k*鸁]jƛqRP3U ;i U  U qɓ!,Gʱ ;cI,/w1؂hh h \Pšmy3&T0lR3!!}|@(TV"K$YaHD8BMCOA'OYujsiQ' \hsT ikYS ?XLqI$#S[U_I>O"!K3K'&iiQ @WSD-Bvpρa{ d;Q3 9iFɧb-`q`e֮+t- W]kՙ 砮;> 1pz!8 <̼iQccH6͂9sԳf(Y( ȋ|m! 6ИaZp3t3BVY\ i<M19?Owі$q!Q1g$&.11ep7!!4?-~iVcr|yze MeOwamt {><iilF|   w}ʛiM3p=tq]э_ @+ɷKhyuPR>u@A+pChu u e|#"` ㋨ܜ 5Y7VBbՋC `x6`هd'U"4` Pg起F[Qܠn hA1Mݺq{?Iv-S=wk .FSXQ[q!a"Fѷ`I=]?PvPzrls5~eBNtOHNK]icȫȫƋQ/: )Ѝr>^lmpm1u=D3?>X -~13*PPаu̹ f\B?u*, "Ϳ~u዁NMo~@B!P` 9Jo 6駎N` Gn w/^CLit_Đi 6ݰN 2d۝C&ŝy M g[ۭ%2BzP\25a\`*SF`_ަߓ n\ ;=F{SC&q4W`XNseպ wt6l)zF ΎE Azqm \_mW` *C*H:u &ܖ$$PSLHp*.Y?! ag@aX_%*>~cUWVG B6 9h6L2Մ&YgϿH .+}h̉޺'dL" c2(g͚?2pn@O_~??i:ϿO5wQBb^ <9˞ppV~ś~Rym쵑7gn}k/pNw'{`ȜO<+Kq‰ KP B:$$7?>?P1l #BƇs-kG"~IH3#^B*{"^MoSvۖ߇K艇i+J"+ɘ;!8OIX9V4 $&93@s)`V:`[J '0B1qzQ 0ps nn2o(hJ0Ft S,,Lƛ_DS/6L<56(&@LO@h!|#f5r+W|sE,f1C΃Kz!JF0#R brt.0Ȩm:ʑxY$GCdȼrIytL (d$Ҹ)NqEiLAMKT:WC.!Adgl 5)LV'<t9y(F!jQ;a *\:PP@rb+%'ϛIOMUG.Kg=5,}^u%A1HV oK VBB ZWG(2f8̅*(V&5t?07!ɢD3?lQ\cj0%Ju&K!"G;1~VV8Kkf-UWZbń,?+ZtjCn5H ~LDŽ!݄T@&JKr#TR &KIȁRLS<0)?ʈIstm&)VD*_Nv<1f6S 7CPn.7+jY=.9++YpI+^ ^נ9 Ԡ+h*F mam=AW@'4T erJʴF(MMc ҄l6"3\DK XAf(l׽6Hc(dXOyȌ/;zU&:=M|OE@e."[;eZz,ށejNVO3JM U+!R r$%3>'ZPNnqhF9V6nqE g]%QշeL L[JذK1[tVxeBv)cX^'tY*PF.'hOW A&4G8B 2ȼ 4?ִ5FA!<O h90<.-p gqZcH]"ABap)c kx#`HF r֍,u] t\q| 3! OQHC:\N gA*1vPj]* vmOG %jv7GǶ-qx7zzKKyK44H{ 3(l3(8>K@ 2  2Ը A!* ةDXY[: Z2p1h992mՠ :8:2. ;P^P6"{e8C6,e(^(k@ø2˂*8PP:9SR*8ȡ^`?"ؐ…),O^H, BERaHaX"DF 1;9c lxkxɸ X+!t<[< ^tC K9[!,!HIjl&GjCc88`BJaxh@7qO,ׂ>񓗸@A%Ф,4hh@nٖځ400aaH́ؿ>8z wy7CL0,0 ; 9SS0ny !Jxl0BP KlU 3߸!J#5Bc0.Bێe DGtP+{D2P3tG;CCC0?T^,,OdC0ÙC\*%J%Z,ȃ,RE8QaΨ:C:6LDpĄxQDL,hM"|W,W,BX̍9Y,9 rτ y$FtGPz|7 Cx0PkIr ɄkI4`I:E*i2HP@@hQm؆,}E M$ҋ=I P ݿ4/H>؁܁B@@ @#' ';+0LH7DxË@K |Bh!s(SƌJz K1 D2 ҌtK܈1fſzYd4'@! π*ZD@|9x֘5Ԇ>EY|O! MD ؤMPTMCLd،T̃lDҴUVN@$E9(lW,x!"G|W6*D8`DD[mpDgTtUN ؑ!Z9)9[ F v$CuМ0P%+xzh0"70)Y)x Y 0|G8U;RH@ 'lTG|KJ~JR( 8P8 8ɖ# M <(8(5ӁRyJSc |t>ɣ8 F|6GB=9\O( Uō҈$ٽhX&.X. *.4 $/~k6kr0k.0/ Єg`’(cMY++rY(oq|QAPS ʇ>DeeAM!KP8P#xfGPZEQ[@'Hx9Iu\@ mLf-u) z%dz3w#hM-oY^iYUn[x!I0%[@e>u :ئMTF a\ (>ύhCKSŞgDhnb?dQ דvzmp}THT`CH[ }\P[xT@_fdcӌL^0eN_XTO+pI8TrU\WKX`Q*tU,`zåb_aK1\S,pE#@-#k!kA k/x뱶&bm`gvs@oQ5ܭ' S[^qJ|=PE΁E8DPP!C m$H 5UŁY4XnߝJ!kIzX>>5TF % Ju|vnƵhCho Em`U4j!fۑn.OxJ7HR&0PVƠJgqh'%+pZbf0pHgMM\D$MP4W5߱fJ`mjnMgCG~s>G`EE,9T\bJ܈Ϻ\$NuˋmP*0m(Q(קG5m&t0E8#~ Jxog|*%G!m7pq#HXvYQ0HEݾuSzmEY(.r.  m'p!}JXC (s1Cm: ɒ#Rh#B9 qD81? BV&L51E&6)$y5}:pBrԢ sHI#2L"c EߑIH%o$NSR!&JF }ך2 %z D oTQJYdJ$!bˠ}1;Пe\R*>OS( 9p V1Ax?8AA#X"ABA^ :Ra[nq.< 1z)5i#S 6#x$JLLN4)89I ZW8c$.t9[܂0arBPXdH}hl,(Mm2MiȐ2+R[ qArڣټ* p;dvqph+_ZM|uCK#r/5faau#A.k7Ck $6,\PFIE.ևMI]=)E,bTʧ06FfƌIG|қac&j :}h$" MTBy _J3kZ_TO|F$r5 [90#L)o@8N+G1$ 9+,b 8XBjXNd%Z e6Zi"ECj\ ]bb"Ė$v"I@b DC}\K8#RL <%olWMAc.9ĉ<Dkz UJyrI%zc`=5狦QDP..VcM@WT“AE:, \O9V ދz4}Kgd(eӈL-ts)% mLz ^%?AiLg 'Eԥj $@ oK-HUNyS(V5qD! WGTث8Ú`U(j-DBö '=Ȳx3MBP]HO21щf_[L cY"q ; LIS-L %Zj+ڌe?~-ʮY@h;,47٦9;4ut_؈W</== -FaƂb#IfEzvM9g;W&7ItS+ ˈ rp $bz" Fx)T;Lo ~L 8ǚ%='OOcFn%̉**Ihy1F*4anӞs>3:IˍafY :_@y 1*2P0al3AR ~Y,YA p %3*@,X3O8]v0("S-B(쪖$QQ!A+C-6Bqߟԗz@ 4щ3Cl30 Dhܵ ) J\DuMpƻ!NG4 κB`8+P?OABsM$+q(C80 G8[S8țq5S$ TRPFHBT?0 ~a[8{MzݗANkwRl@k8HdWFHDԖl D^Pe@`J-UT ̈Ql"qq P (L!LE /Bku9^yhRyuIkI Z|ʤ A5NJJs&on$"Rᩦݤ bIhҹ"-]Q1;YA7%_ЄVVOE5Ґ4Aj(Hcȝ>TrmȻqoORDG[(`6%]r z2'W ytn*sm~$T)eFkDFI- D31<-PtQ]ThCKthƌ`!YFI)-pl;I-K3yΖ8hţVä5& 1@TI:BX:JAClU^vY5Zs Gg!xJ= X_\L)@l5g6Zy\ Ì;+#| AR!6 /]`؞ly"i%Х A$E@3H^8a1HjX LE3D@gʎN#QJmb֜*YmKib{DpII0_*-&T/Wyȃ*sGsѶ~Fd62&ȋ$EB[ 177_Tq[^UOYL;^cLHe%ԅZ3 uNu@4t`Y(t[<[`lOA\l _EY(^OqΉUB- ' O3P"U,XxO|nuRՑ8 vs KPj@p 8~X4l uPl xbq#>졬Vwu/ lRSpA6tw^01]P X -HZ?2Cse|1ΨLX&geMNzBaCA*0TIcP:jmDޮ#_(؀#6nLB%ks\m3j| l7~ o`BImqH`sy\y@>@;E PUbv7* Xt (8;P`?ᤏK@,LZÄXiO"jΓ]X(]I$E@ - qk\$*dh[\NO86cK? (+v;?`刏40<qN'7"h;f^P*e+Ip\谞J1y6S^;5mñ\SM`dD"~ RLqN`ϙԳyo%afjx@Xx*pqD;rG ?쌫jڊj`0v,/2ܜ9=>E/;2ô-^6ewd$!uzʥl&JY+i0Tʡ&KSQO\{{F?L+&T?ۇifӦŻm i(CE4GٻA?G-}I2bNA҄>ThDݥm/  te+xS8 `u*Rp*FDW p,r{ D 4]u{E#$Qh=\S۳whY2|rH´Cwa@HJb-8ft(lF#ir%+^3BxtG1E$~]J`t٘c`eHbghr_ 'Йzh) %-:"8%(MlQYr,QȰՎ Pb0 N7 V0@M63eAGGю|5RVTBGnlfT@5IMHȇ~S mrZъb$]R yT+H^<21y%j $0%SE(XEmSxt).0!DAcۨ6(@02 Q٨T QU TcdR\5RyV =ë^<,B24e CePbƐBy^:e0i#l6fH,zCf#AiPm"Lp,) .|gebLW()lB*y8ґp 4A(98D6iO{a^SR~@m{JAKRabW"xBiXT3siF(4 CVFM5ޖ5#B(;㓁@%GERh9N{OJX8Kd(I3v2Q;(\!l&Ƈ* F  Oħa8^ Jz)bAJr-\ Ŋ U1mj WFE$XnWq47pyb]7i-iK҆TяǼьT0Y,e:(X$&%'v6ҡ(.3l+3[vLPgHꥮ#r%Mn}!Yao,OR {~So,62Segqq8.oeVd= + 7+x$t"b_RQDT(P&qvF"z -AZ!+@C1hhpyR 2BչǹζM˴K՗2_U:6#6ads;X"8͡a;ž<"|vs@uEF_A{s wRImeD}"̦ne/{ :ULWҹZMӜfR0h8 4BmJ6nH SO|e-:ͨF3x ^&rX#9 LS*i RGv [3饈AH Ͳݼ)/I D`$j9Ieh)H #p7iBOg`͗&c a7`=4gAmB`2a@ `)!x¥Z("$*? `'F11'(6Jd4 AP bxN撊8$H"Hh >bTnE5VXo"&:)a=d`=G"&fs.P"szc$Kk|)8=J,DŽá$ #).X%R"VNciQTgTgVfh%6/(HpA"bf::Ұ /0vBe(W a BH"*-%:$/.&mދaNPBMJh)%Ƥ䐁""+(##64c1j16fʈ4Lcݎɿب8V8:0ߺpLp&GOUXpvl?f?(AR?bR$/B"oTeS` $ p  "-2 4A(°XNNaD  0l*(:K5""LT̑2's2+NƓL´IED(Ѿ:2#x AVh)I>#" p`7 6L~G,`bVS5,WWl1: s0i&(zV3!R&F1ւa{ h>ʭ€ I|Qh`b:B`jo/ւ$M`(ƌ>>˰e/q/j81{Ch)`"bBcBF9j h֍ 0X!8kfTI '4-I@ Kd4v`b/2tBT:*3hN RI@ t IA   PޢCb;pV ΊA*hjꂒ0Vjڐ3VdE<"3lVIT$`8tS|vSL` T-!$$w>l` }L.*Lϥ4^b(̒sX !V$2:QB2 Kdɩ<.FC#F##$Ebo*t*_8(Bh^yⷲ! mjy ޮ@OIT .(AD_rT"L"B<%4Fs5 2i_ 6yrkN3@ 2@2 pTOt r,2 T ,2LxKP V W"6 ?FRf{vJo*B(" $=-"[d`cfpc(KeKh0d5rbcwBðCr τ&"!eF<- 4"g;$6%MɏU@DzV>+`z:ue5cRcܸx `W,@ `k_23dt'RbTV!TCPo89pv'`I(' Հ,9qW֣õUꠓAׅb%W,-ف ;sgrPc;'D9Yuc08<@GTS#""S*Ж0e)u"lS@hX@h!=۳OE]/X =`m7XLXB0@/تAت0a 638+v5v0/uV vVp`H"Łh"%đ$#HB2$6\7vp̢)~mƍ cY&2 pR.\%!/,_'#tGᑗR|C^CFx9Lr@ I @^_q7 p `W{}](|=! `kN-kK,6OVI}X`Nr :5 t%ǣJ$f@0crj!L@Vdjd 6J@#MTH#G7oɑÒ#yDd# ,c͚=pO&~LERN{4m F cѿWqڜ攜@+C V"FRQ7ܰQxGe/ofR%TCl嘑cIL R}lǣs& ҨIiaVBD"IE@B \V_\e6HIE2d:Fv<QoB}N;N*fj#M\ CFWɃor)T8# F?M#BN$X`@H#W6ep\)?{ࡆ@QHҡ$vjAG dP fJeu$Sjtæwan," p_5Ed VY c]?LW/#d!dIdžtW_"IB`FV0wHKTIfJ<7(\fQ'!{?Gwp%T I S iiPY/U奝m詷pÅgJ6T|xxRפ1K09UEy[n?o<^!c4"qE ĥ0_FQq=^qv(Y$FDD4_ifA]r &_F?)gd/'a&3?ZvOJYgUI 袊fC?> B@)91 NNd Xh٫nF" 8HT+\Id؆rSQ gï "-P\ W50F3 cFzINڨ+'*kc[d3x!btI!*f1+#za1ɅcȂ>Iv1 k3c Ujʨ=_KZTk6,0%80I>2N#C['[sʘk\5˷ g8)r37m2~K6IxŸ55B$=r)nb#Ӝf%FPaDqHP v9ŘCYrEF/J Hp 4Qp?JĠ9)+xRh%L@SF)'u$&9/@~'j@dL濾_NtT"Gh/f_UF6s kHX l &!9!*c;) WWŕ+AaSaflQDJH`&j۾&PHNmȂ{A11#,+ 2ec3(:m6AryTHĀFf++ fvH@,ĆPuÈFX G*24] tRЈm0zm`4Jd qq?MQ8X&@i3#bi 7 61'm^AawS]!jE`G=9C$(!G=D)'X@h"ㄚx)HD%!0mIN$ '(Lu^xT d=R (-⦁F9.U\m م ,>ÏN-*6"+A ܑH&NEN;aeS+Q+@^7 &,IiExy`["2c]}pP,'8m\PۗQkC4iv=4^;S?׍-e "edؕ-;joZ;'< }5 rǠ2lkPd^qGXEK, l(<YM\qӜY&%w`&*5e{;3P|'| y tqg)K+@y<>Bh`g 7, [V+o1h  f qvj%g.o +*TEE(7u547F**!w}j"A:"\CU׏Rp ʀrr@1 )БrlhFF`Fe1À1{G @`m`G a&96I9AUDkosAV>ET.)Immdb2bI7I˒s9=^84Ln h;#( i?;җRxS>?_YHgDE?,,H I8K!1. )sttfffyN","/VQ-K6Á_fR$pP9;f`f9yIc4ffBeNw JxS鋣v*RX%[$x'{G'hQ`ySS>BqqxgOO$5TRm+e*e*K% !E$B*iT% ~$+Oۀg`)*H2}0B*1k;pi/_P7#971y: q:۰ ` ! 0#J rבUZeFP p̀ b %lf M `GpʦA ,A(”TLLo5ѕ82']9@ bYM{d'8p1(]I,@["p Y*( K)r>n rg#!XDڙD q)$Gِ(g("$yȉRK0$a xGcfC(Šgd+(rgЁ*@wx,ԏ}&*ر)u5mP UEV+A%]zqB}#!@5 "+V`M1Y M p { h4 YF{Y0 G`!%v$ bN|jt`m $C2f!u|:Ma>H5 %ҙ݅h Bop/9<F]ďY 2iP$rlcj2+ZLqiNW0(9qۇ T!L}ˊcaKɷ zqtyyɮO"`c@ K K¹%Gx{Z4j2OkRWIal~r9C ,!̀$p0Gکz1pVزr6C Y)B1d%>6Y)rԅ!HjAJ_Z<>J 4f:"y9[HOdJ`PP`P*vqw < $ɮ?Ø* rZ56:hS#g">U$ )P)S):J Wm5TCaEp/ )AlorB Ab*0o9!mQŇ`!a} 3i 2{B2UƏ1)QlSL7*W1i4lKY @` #Zu뤐{ y_ya) db ܆GYk[JRͨL]N|Z&˕c2y~xӔ'T4!sm\ݓ*Q}2ҵd*ޱap w 4!-[VDIEÏՁ1JD{>(>BK)'7҄bS5(P(-ÑW;%;cVD2d1E"J(t7cKMv^F<9KHųB޶i ؖŖ`1kmPƍ!<>(A` av&M*iМu]SU@x+!.V@UM*s;+yۍda "1휣+H;A;kBءʨ̸{a9x1̴^158(~ޭ\-hʡILk@jo)HU3Dm .EsM!ౙDC麽{#'.? :rTs⮪>ͮ1't'x2un7ѠN`P P e(5հ:D2G# MciSru<Qy%'A  ʴ\EuWzhV7B4"HaJU#A}6@*ʞ #Gm<7*` `*(A{4p=#eK1TPR-o 59/l*.ס}PT@s4яt# l耬lA9AJT:Hj@I$R JI37oHJŰY3I#%H*@R'b3l̈qH2TGEg5o.5#GgU~v裬ce{tdZi|ȠC \VZ%ŋLyfƅK6r䊑\p7Wb AoqcgxQDjjym߾]A#j ڵ|7#P@m3p2wUL2+/m{wmlj)pfijS!G|0A * 4VXmH(A0Aa B $Qh]t$&2' !($,6h$F!)-,l$6ڠ%7h 29BlIeQ,A!Zr=0+0)."0Q If *N!IeD<C u̢Th Ẅ́($sVKȡ'*ˊR eHs'WTʈa)*Tj䟁6:R韙h#2>:@z^t]h"zʦ0JJןKY c1qI4X"_J )A.:BfVX|240+: PC(Z 7:Cp7"7,"8讹C 8N?{JcUn[O9|37k;<0)l@\둵p(q2w=Q*  +GC2HSM[l9L2V$#SW^)(4}1^ q3\@CL hE8^$|!Q4S0Uz1 2Uy S*25IB"qd,?|,+8KDNňAT$ybXҒ+$)$pK9ґfRZa_{Xk*; 2:p(^XfD3Yb +VȖB+]d&%tVS`@)A$S0+,mOh\355A k@kЩXP:k6pmCT6`i&:r '70Ld#Ml +,4G=)F etFglPS e L *<";z50Yᅶ"X`6zfN5%Vy6{H&7EI\p7oyA&<$, !@* (Cȁ~:3FSUeBkRQCxh$*ڻpe3]jW#ft3  JQvrh,)aq1^n" M}=)?FD))RQUڐw @ktQbIC'Z$b}#!;+ `$B*HQŰ 9 ʹt "aHpJӺ@B' 2/x"V Q/| @~iiH_1Iڜ8Ӵwމlٴi 64 7qg 0Ozس4uN.:;y>!F?2#l1;yO.i LG::(;UTتd+OVDd&SfP yE#h%)~KaqYMZ2DNg,йrӣnSQNG v IGAUNq2 j{ T=z(% QI"ʀ5,d +t]^:,#"2k0-+%\IՒJ}hm1[)V4nEzGMO~K 1V: !<`@ D4t &0Gb *cH] m̐4Nv\fYk8" ި9ogovxcLndk[5f nI:-9<<3D1z` B9`[' !VjPŎ%3ᓔ4Ias+Sp$R'Qův:fQE\$0rx=OGg*QJ&2< i2ELhB,)W}C$?G "" P4 ?;tp(ݼ%+9t)k=XЈ0ŭJ++ؤ&II@k8P%Z#8"IH y+HS@d˷)1J2%<~쮈8 +?󫣔8-c"h"- 8 ds7rCIEX 2&s7=J@s2*-j29YjyA( " %K(sGYRa;!BɘYhP`K11 Ѐ/,dB39$A  i:[x@:Q&0C۰3pC$ `;M0M5p-º#Aĉ;Z/Asy68sIo{//yZ-)VY3 p9 JVy8+:kDkd3,j*m::k$n|4i2C[Q? -鳷J>&t b Sʮ~L"HH7)Q+ rKr% ى!2" ! "w zE2 j0K'-h@.{4Aީ8,R",xBd0:cc(ڡ3'LK0 @ K,Bʼ&/$:e ô̌=<0,(Ci 0:0E@bQeIdSh" W W4M1ٔ(3QO `$OH,Wے:ӳ- If pMWjB8H'k + ~7hHй8Rܮ*YcY񃻙 6l5J6X"QJs5Aڡ(:: * ՛伞N9W'=;P$)NDBٜ>Y!,)55":ZӮ?!B>MڈB1*|KP@TpK@X% Ź;]h&k*&0CY9j߰ eCk]͔UQ%⍂s8M  U=z; 9NWq,l΃^͊d FXT( e[o)*q<[=Mk<("`|<= , &F7yQ[(L)}2hSG~P5!ٸ*Y8xUxaر +#N$܉sKP ˰?5eZɊo ++Ҏ 3)! PژC7HY5baɽµa9$5H[ ܣyI=84 '%pKA5 P e[F-txѭxѥԯ<1d0aC\,cFCP siԒ|rycT/ YFru=6kuh`-o턼E2X+(E74rc;>r; 8=ƀ0+TXt3o*!ɒfTh$m'c!Oa<5<%K==K)U80ЌXñPK];="! PйQk::_xs&W)!=v0)l411)N{F W+V&Ԣ>h4si+5QX$Q4A&wd^q"Ӵ6i$?H {ʄV ;;(W{ P/gu$(R2*?57gu8ð %6Z(J6x r.?T|Y҉-^,rR(Y!GA:uG'Rl 4xƭ )uOK1诙`JK忍bBbB.hG'QȀ`N:5LcH\ +]dˁ@#5zw/MTMRJ)lCTB&N|OҨFqԬ#F^$Em$LMw萐7o)͛& Hc%!J5צ6M>=dKH͝oJm4@JQlht3S$#&Aߐt!LmCVٵ ddE01Ef @J )4tʞ+ oհW|=שW^'pA"~T㧊b3@pǥĊԷk9U?._ឳ)}(zdĈ9لOfYbiG(~mURI`(`iXI .8TPa‰'Vf VH"S#]Yf&p# )$*/IR\J(!#b# KH T8aAA?? XPz)eZ,hluDB1\!4I NC1 $PC:U+2FI5҈$4Q*"@#I+,(̒A\TNX2N FcY aF@uXقV!k O_V[`Q ?AJHeoO4P85Mc%K ;L7uGiS\;GЧ 7\p*9gFnhy#}Z_ \1$(8XdF̠B 7VQ q` c 0b#>b0Zֶe&`Y 8Xf׭@뭳^Lhʑ?ԎM>"l٥\z))M d,q|,jKǢY K@gP>n6Jioih&jB @An3`XB,`Ie+1-.XJhysB7P/[q (b"J`fWظ"/Y [ևH Q#i =<c؋ 7l`5 2 aW^ 0* +6 (51D! eTȜ^dŨG2 iaٸ GL%;miՠFh p&A(MrU29Yij7yҹDT3X 1(ccTFčHA٬#XvMA>1^GvV:סI/i`;R>I#[xPlI X"F7!y H@ymW\ NSRRPJ%" @*U FI 2n:u2`Q)k~0Asc z!c&Yk+$)+A2U d $3 #*$hI Oh2&Πbׁb0E->IC> 02h2  +a~ Dl: s@ ! cp҆2&gA +@t&!b[SdV媡nKA f@#ݐLvhBo G[SZz G5Ԯ$#)I i !8s< T~"qMF,$|@GX|?8,b32FAg|`wt!GX'm 8MiaRRwP0xbH^ BiT5<*ɡ(D=UwxT*h9/ PMM=(RD_jCRUl:8ViQ 8a|UB0KrţKIK!ZYg7zY#,SH&XA`T41jWq͎ ?F"AZ$&Фؖ&*^?Ks 40:M AqPOr5xs݅GWj͠"KHfIЕZhmX.Ȗ 1VDjVuD?"t#bUr򔋘 iՊS?Zpl1߅B8vmWr?W°=Q\(E>M8<T[YFXN[$J2_!d [[LQRL] gqC6 S*&ؗ(~Y)? ?XWu]^.auќuIif$-$EAؘRnsUWZERz5 uH5SZٕi_=\XEʪ!":]ٵ"הP|ʪ?`pe?]8aGD"F߹iD^9^B14!14OEY0fT-HܔA&h@e@ChDNE9YvZtHMūVᚄ[AX $݄ d#N:z]^@EJEj1 ä I65 m`2R̖$LMn DH(F`)N z΅V\@[E>PUNYN葼߰4l |m V"a(AW#]JZbĩ%H,!A…%^kTRА^V\ס@\)M6!۔HM(JDXJa?dG=]!FuHHM%jjF%H9ӌ"pA!Njġ&9gX-@r-@DlD""8"vbvրDYeYDiT,A,T㚭3rF6N#&O)7?&lC| L(K [ j1S! !(Qg5o/}VgN__1  AXF~Ju[ ^yۂMP݌~Umn 8d$)E`'F [@oSŁj0HgIX)۹GS(#V |&Ԇ,~)*DA AW$*j(6B\]BW]J<Bjs-kt!~ML%je$q.HQd/4]iD{@uPF@fuLGMlΦB+ަlë֩!HqƒrީFr,jv.bvb t/"O=OYlA5O ,HՔ,@1TM1A*T*iL 'a(YTmhHD"]Mr e,|e-4`nNfJFFi!JF }ZT^Sх\ Y\&?[JO, & 0ⴅFU'n6jV"qhBbځ&Y^V2*%J.vF<ܥ>ǽM" Pj-WjW+*aFЬ)hGռ!!JY\ut8MVtFЎJktȌhgp!I=-,it+0k0BA0?AalJvv4,jž&2/Ӣ]09_ÜiU$⣄ emڡW+iBbm[ 8@/ $mnuֻPŠ,=LDX]H:Uk&V?4dMZ\VB!NXXP #Q P% ,:IVfb)yY*JOr@?d@R-r,7ꡨ֥eF%aVa1iRvXpJHSUqb՘bs0Cg9 ;Rd*Vdu?I^jHtXT<>~n~IRR$I%=z;L?s: 2.ᘎgL rr $ؠWߥFnF,z BhD+]ʹgZ@HeE1V )8D"1f(BkԐ&K]Lird%#QAM0]1gP\DJ:4' 2X:GF)ґH;vt}z"fP&ت]5TTZyք~K^1x0 ChN,Me W!́AHeVo ͘3bVZSVL>qjM[+a s zmۖ04o#]op8P.nu1i3vJ${A+X (HLD ;8@b D$ 91E ,8԰Qdq+pC 50 <:t3YES+FS^DVlU$0OrS;MR0L^=@M0PB3gDL3l̔ r*J UԆ"*9s(){)45D*ɤ%02 %B!` XILٛi Pڠ2P(^(&! IL()-v{W8ڻ^DLԓ1#rl lN`kVw\.:b#xk;G(Ѝp#0(', q,V /B1(SQFk{L8Q @LRwLK/#Sr|aE^]ώqwd/#+&SMBJuROw6 {xԜ&`J"pG>`"HZ~?PWI $Ch`il!xI^3 p/`k q`֝$#hn毧4Bs 2BEDE0>" ;S*xp6 \HD5+@_+6.2 &bhsXFQ6۩ .2ڴ#ɬlDd"c{.KhXOb5ÐH9 +QbbD'JuKkFD)GČL4ow[&Dyi2)jz5B6MƠ/ -^F`B|ff**z["$sڐUId~Ն!M#HlE䣱L\'DPV[CP*2³w\{fk" f1Z:Նʁm լ)o6;2xYbȴ޶խd~-݀$;m5ud(5h|MANANѩAa!d~S1FZ͎>7^0Y~GAˈEl; xÛF\҂fC$kaq(B,}lf}+]nIfzd]Α7"AGʹ&Un3R)T7/R!v3Pn UP5aoD $=z HFp@8m2JWx!rx aHsƕ#E`1@O> pk‖!As*Fš-:)d4;^ʱi Y-`@X6eeE2풛Hֿz]:~Y(m[R22S㚕nH MxGޔΔ)y,vołLckH0>)4!$*ŪLOLmX9#ҍ;AP(x( 1rr4\GZ8ꚩmz{G(!7'AtpknwFP/#BfoIDH {*NG:L.e JDN#2 T&2Hl#b~ JYD #4*Da0*@(繠K[Q tNHh-H1nS M`θKP/P&  BbnϽ̈j^ q4jvnOD#Pノ & 0{5 C2wXJ3%gpno..BC` @ `YrD`|)|"v Hot@@PGmpH.o$pH@K#KGH ʑ̀"H!!# 6О. J x̤LFU/&KR !*KVD0sXTtN'T 4 &0R)UrQ2!4Z9+nf`&yjM%ѰJD% MdMB֫{$R,.^p "Dot0cKA݀}&1 L/K/#a ހHnF4a\\VPBSV, X@@2cFfg5ң5D$ )0AQI|'sYnb' 2:3ܜQeG.Ξ&󆞞HisH@i/0k"sRi2"S}!dH$Aˑ1Bq#ftiPpO2nu6.V!DD$KVH,!Xr EYZJ RX`"GܠV&9t#8!B+ . B|b7d&,R̲J. 3OLng$4D=/MQnP PPo9Ff39 Id54F)/^S )4/44 DTW",>Oj0:Q1 "JuHdA Bo dH/Q3[p~ #R<)2#峙G)RI Y%R _s`pJpH!s:%0a"4B'""P#"(pcu + Od{\Ծ^&GZ$HR\l.0zp HPX@%.N5R6^!n,'2ք,4dOFe22$x`gv`uHP״E[ u0jv~5*5+5k2$$/3˫44l[7Y1VD1u&RUt5)X୊:fary(B!D7 nDQ>ADCOiűP'[1b'6 |A!0"^{n+NN 7t@F tIF_}~ 4 `Agrv+g$#r#q|/2V#ids$=$˄L 6#_=뷶U ӏ?ad"ϯ i6`PjOPԂe3RuV4ate34@74S5#na1Z+pO2W1 A^xD)dIIhǦo0zȕA/"+2ILX"D| BQ_M@xpK[W _'H|rMCy {/ў7r|#$b!2A P.%VRJv^@Jl!!\%Y'n'RbԎceL.ZD(Q.sx &Dss^+NsB3}Sc+93"1?_k}_k#11R [J5cC2wƗ7uvuM9lds(U[VVuS"DWt0!15Œ\x Vߪid9FBUHD:Zŕ5{:UFVt0%]:")r6{BFisQ^x1#/CYFw˟ïcĽ{|XV۾%pd&NǚLgNРDmAZf%B_YjB.'|ֆbgF+#4|&42[T#&t򟊩x='M5"ob-2鸬/|:`FkK כ`p ʠ*l5D1>5Gy$Γse5U)4ao𶅦6.UxҀ)0m> [AF (HpE25S'gqF&a#Rb!<|_\]C<8Z1Q5"k|k{6$4M9_nHcёIA5soO$ AC޳76םWEbzZ[aC:ۗ"w|ZaœcA{WC乾#Y|L#~"Fzpq_;Fݽz;p4BGD;"1V52̌@$l`h&e߅PPGpߝ 41xfDKYyoRiaB 3no= ^BпL*'(= c&dȋ9y$t+p̙2c$ɒ%2|g;{,Nx"oX%b n-oEKH8{l͎FMt-:n{Eixe_E1s}_SEǚΝ#! V6CQIX}BӋ+5i'LH3JZL }*ذ 5w!D^}9 {|m&ɲ&/7|'Y')q?)PXP`2w`}laOn!f|AMf2.PC2*:*JFP 9@LH!{ Q&K,|T@,TO^T`uP(PBABUp\$ik aGR JBydGxH'S}&}-P?Whi&Fی{xQpDz|^=$MBJzTS~}v&UaZUtrU V8mUXlIpYHm4%7tѵHUy"vXC)?YdfǟKEQEhI`EK˷ߐ7/l h#|$=^IUFqKgr Lcs(S! _^$@"{o4,-}9O$+A 8_1<5YL6O2Vmɮ]@Gqc01\YYEpU XHQh,, `Tp,+ n`cꅯ:T?!4 SdB'.rd0df+ Vĕ5*L0?" Ipv>9js]:lUg!>FȳBj%[c";tmNf!@nG[5( lD)@nbUDBq;er)-n(* M/ɋ'="N9Jr|4\)K v%ҹes/2I %d-)L{y"b@aUdCHBdfCz͐*D>y7Y2GP+1H6.2k,ܞ&UEY]VjiKrc m(9‚btZd E[GElƧ@L sp)WA,(!T@N `%@+`T LfcYaX:( zѣWFeb2չNسVJp[Μ٠ lm&"$7BaC` AT,|59EĶEEڭn'$$YI4' v=B*^ 4bR9r"b)KuP*Bѯ~}K*^n^n;.!xߘЫ/M=zE&U7 q نĪ?+Jyy½LŮN@ڰVLrU)i:|e#\qFV@& ^4 [ nǻǨljrT#+!9KL Ic95 C8傐OcƃI(UZ3j)ƬeItĊŴnb+ɛݹ, nb4x,EE.olV6gƝw*=IHj }:DM+z5eDH֑VQJR~Tf@,+p%0n[wF~IA;6 DdKUpn2r+ z+6:\yFn15"G"]p U a9?RQ E`SRQn-ޢ5  PPAGL8(/1.3GuR[ahJCʔ @Md(DOó'=j!pEq.332cgG$EG"nt"͑wgvh&6G5iU\k6BXj:>y54'^ud{:R[ {E9TG0 ;``"P:ecH,03u'B[^R#)n7vg_36}B*`1GpzE8(?>~i$ Q>Op!ɡ3&o9Fǹ1F}iWF}pa$5E "5%}Th89T.a,q@Ad(eTtrZr )uV3C6/;Qt4h 9PXSA6 /hQu#Tc2M(RA`6s`~șymzW}g<=">;QPM IB ɠ *TSKס2I;,-gq q L4"4'+!ԄGqLsB68@f2hՇo%q;0fR'Kg(Eّ1wL\i釋G;"4oZesZrwoV^H#צN#H(vT[xJ(VG ]sy1k2D [Ez6"W""BXyi3! ,B?J4527`t}waL#b)"ٷ11/`ƊTXaTp 2psB5CPa- Vp: qa,ʹA&K|t,Kgْ- -\q J)K2IU N"2Cpaa,1DSDnV{%`2 w!lh&' '{ڦBzf3ؕ'[a x\y!n6i H)ǩxZgkxp#O[8 0hp Ćl8\+8 TwI~5= #1 Qfx@P mBDBD:O}ٷH4H0{H$2XOd i3ڸ4pLF|Ÿ3?i9+9eV(ޥ +Ȃ .ӁH0Q: T3d$J4 ꎒ A/3 $(F$!ܫSȷKUah<5i = -_>㙤Ѫ1X\ k:&+g3LW t'V^`.+xN4qhX6p%6Ȥsy tPz -zb#KA$31<4,8H29;` \!pH31m=/_ oדM"FqEh`ŲDj2`]mH++?,vmdB"B !=-1pADaJLŊE% C ۠JR A/t4UBE5<%fu lWC 0qăQ¡.)fSNaaWN_*F,*bDLA@1V|wdh^fy^E==:?; 2c!u(2#9[qq ",C9x!mA,&+(EvpD1?114qDF'8a"GGϱD <5VYpAƶ +'Hج`g\!q;frOy4%_]R;NqRT&Q$ỻL>uHLf-q ,r k8PᶾWP, -$(u].NRlb%=jӀ 'd0T2;e}Aw @j&cfR)%v2f%!3Zɋ$͡ tHjvYX3Lm(S<)bPWۘ5 2GF9$9%x!ߴՍ `Wl9œG8Q~zEXS1E9NON Wgܪ'Nh740U")suNQN sD$egC27ުQr-D\q0L-߲ cuPX+X P,K0V,:*N`B6r*<&=@J^q'AA][ZۙIMHE`9:˲.΀*a"l}_VE:`Nx1=]6̡8jf*L81W#qw֡1_I{HW0;9ZtV{6J++y^+ n͹O/ (ٓRTqS%e(1CUyfrϲ0jh(v(OÇ $:D"f_:QD腦)r%ʕQ-h?%ijO ifÞn(#3i)kA4A)pQE-SR:b+Vp2d!*R"L9S@R"$\zz)|I h ;PcZk3&xԈ⦕P]:雁 VYmUu蠃r qAJN/ #R1: RL 3%k:43!߆ 6d4 7y B-@Gp..3p[la |x*f9h@ϯB0 0zB'7\p4 PivM, W̷Ă'4θqA$,jzwn$/r L ytP*#q;jU*s4! s1O Lӄܓoh_!+:s>W@ }S*u c02 DP2B4*L"`nJŞv Ķ!Rla_TnjPL(V-2@DZ!NRѥ@肧Zӓ:`*bc+Fͅ!:kP̋6uB͌~b%)˲\\]ĠT8A )Ր n6^ĕYծ$HTT'qOo0؋1J̛Ck@e 3}C% e)۶O$; -:!mRҢм’͸ܦ 24ckꢒՎS YH"_5r !(;Z,}8lCRr68J>lώ{Qn\b˶KA]$,p. EuvսGM /7 8~/N mB1R@xt -y:0c2DT+xX1#:G[9H?!#GS!4B,b(LSšMr`TxBA* A٠ F=)6jsx%h&*;СYZC9*2(@"@$b ?h A (-2U0(2 0v),Ѝ7aVCV3]|C `xyx۬;;#۫ ¹ e;w)'%Q Q2ct KXh0![7M4ԥ>\m&BIk SE摯j"%moQo.)'XTqJ :P8 0-9 t$(24Kl+1k! \+B"*źY+[Y[14&1ˌb(JH46ᙞHhx%6Ӌ# ]\{a,<\Sܻ`FM -*ܣ^io$ٛHr2ȱȎ:;)a7 eQIKP1li 8kUZa` X Yq'[/'P'd 04!(2(ɚb9&A #|iiEņx#G/ªHEМX*9)0#؁-9 /0=H8H=0Q)*οcMdƆ>b˜ڡ%q PDELDcxM -BJ)_QźEǠM`<{A d,FxaTBU6 d<̰ Tc!G.P+R%KB1J kO_jOO? Oa-|5PK㑐7 /RL|:aAX ]&̄XP- ۺhI=^zj<#AJ ˢ,¡(- ٤-nasDlk';WXv3vYK}É7YBPʩb% = :(58< 9Bߐ 8Y_= I&d—eكTA:p(ԹR.%#0"=%˧lKNbBPG.Mچ%c2 4V>H3+0mFSK㬘S>#<<>u1!UЀZ븟ŢdH2Յ]-Q}(6H==-*!Π,!-)*dNԲuM-m-ߐ) "gaY˱&fb4E0aR'R5KS9ҧ-(Sb>i0b>-Mj1~j4N4P[/j7&S2mch 4X:ؠH>TFfՆ`-\D ^>`f!dDi;rj;)4 US ǎ2 V5[=.Oa1 SժR^=Z===^^m˸]ܩ HYK g ,xĩ7J-$o<amqWox]ҥu.Pϙ~ 0SM7Up 8 ^,K.Xݧ v(9Go P)rHl S48FR2K,0 #~5LH+˟.ubMS2 [0##H/۰~%O%: ї%==(ܹd&4sm Ҩm#hMEM?յS@U@?E@śAE0 oђvgP UMKµ^e&\U۵,!EZ\%\m!ےjŠjN 9&P)%YO7u`SHz]Рj!B9!z+kWo!B 9UXda mЄX 'a庀=؏]E)RYL Uؚ:KEeRlZR(żʞ+ix[.=3j6nF*Wb+H tK"H6sosk H's2KAn~UHHv@Aj.q.`sg9#5PF7 `YE N~) ^ ^־!߽.΂k[ @"F?Θ{Q#،m45jTGfĐ*mU.W22%%n8ݝXD|}~ p׏cotvz `X aR8VYP`F+ak㺎xڰ{ ])ӕNdD. 88z1e &6Ptd#Fvs9c#T6zχTQ!ce#B HLii҃NetѠ25QrMQ`,X8x߃ V BA"&Ro޼uݛ B ! Ȍ X2]@M3бcg{2"{vWXt7SA5xT\o CA |庅w.nk}ACT~h15Wt!AmAAFd AA"A^(h+n\ /Q 7$B ?7SY\FZ9$On0L l% &4Tgj%&P ɔ (OJ}@J,n?nčpwj*jFpjixaj*A*?{qm DakH>L "TO?=LSLQ"N:QP^ R2DbUOySTc4HP $ujLgu_~=| 6p?uP]vY|U@wiAg+!Ĺhk{ ,k/*9nM֢t&ipMRef!Pw[ G\ri}BCן ʗ[~weVTeiEE2a`ᡉb!t!&@1҈ 7cLAF.E))O*eWϔ96a&a9&gi:&S*`gxA\ŝk.r)2)![oe)SbOL i*̒FڪqJ묬]!H6\JѮ$KP*CQ0%ժ_2 9R%O X` 4䕣,"dܕ5 Ăazy F%1 ^$_rClG3gX$?DQ m2'LIRԍ! )*@s%,-@>Ot0jyB6j-OsZFYMID"#ngkZ2 TЎ$XE xdZQ`XpЃ$ EOLڠ D&)-tpu$~ L/aA*vа` yEAc9yfEǚ=);Z2B2eJX 6*A 8@hyPF$jp*2 ~g.\VF!xFfD#ARC@!8O`77g,eJBMEzV6L'v#R0rvdRo6;nAt:X'<-sԧ|)a^Bgмd'!Az3y\OLR';8´|"%'" IĂءR#‘Dp!IBl@>:!tjK|MFb<$B,rea _`r.7}X-df:4+Ŏ!Qd&2*슗%"tC 9?BN}35:k[*sq.I˫aI S;M#ɚMl#"Yq(o$ 1_iOvZ=7Ѐř{\8+=); H8BySdY)v2K"uAP[)rTOY ê8viW)E~d%שNNU/MAzp D$P Z?a H@zJ g6#BX>Z$z0lŒ N)O\' cJ\B99M 0.HfRZ 25xsC1ilsdik&؟-|zX;#QmִRh3b&6uZmpKlRF>wM/?qǩFNZSضq&[&_?돳gZLb]֪XW4Ye$_{̝E}&mp,n Iԡ#[D~ǾCp+0nT$=VHL0܍\RD7py\ITE\tP1FI\н4 aN[(A S8ET S A _0Q(t8Gm$AFn[ E]EŕVt~G{KcUu{L)H1Z}O%}?#xIL飀IFh\X#4lÏCK))$*-́ ^ٔMUOe[e ޅ ҠQC (g<Ō,0OUE&^ PȱiF T[R=@\Yy : R-oL \T~y&\T֍K"Yh n!}Fi͈Y8˘^e^fEu2wuHe23o)-ba`W좟 /js!2v X,lQ ZB##ٍgxFk;kc8)@#G\$N9c1PguR'?0Š!ԅVFEqs6t1ɘA)&@`:G.a P‘Ղ2Q M ItDU.ʤ j`6irxu( U_fș}VR6% S ]HeTa!]LYJVS` YaBف,BZ^~n5DޮH("e28ӂaV+eGeSMXW&SXW/^_,hgh"EhL[NmkA*YXfpjpLXX ?'u'^Ȍ*,B$C2&C2$Ec I$14l)*@&\Iּd쇌`bF[hð   ^jN](XU!]v۱_](R-R6ٍ2]D,S ER !~GD!9`k[幈Ĉ%?`%6N~)MM~ h[)Z ęZ{"0)c)R]ٞ)@Hp&xy=hljJuFZtĦmJg(RfMl2lZqA& )*C9E+ CFlV,5+CtAA|DΒ)1V@P6t#Ϊ]ieb{ ]P1S+S_L +Qfv:PaU`Q ź HY (^(|4S%\m壍ˁ6DZ0gΰXF֐}vHL/b F\иQ*0-Xp]o Oa̶ h^RekjSΔhΔx03!k1ilȚVٱ[Gw# \Ew۸9߸y&7 MX)( F Dh;fВ ?0WoUb.b 3XIx%r-)thf8=W1QWOldBw<NBLnTAN rY;;yZ9r D9?&ywJ/t7h9bnD/Nm\ e ;+o{a8-:}Jzv;]MnYbln6|,֯P~ob︂̶iCA\>F/FJZDjzYqsZ[5ӈ5W<6}([ͬSyLd0[FgX --EڔKM80ҾUtWsT!eXxFȁ~24mD@`I l 6xo#SJ6В*5*7ST2<2 "3QH!F(" !< A#i@.@0g%^Ԅ \d*)884VHZǩd42a"b8E{4"7ƺ%vv .R/ ׂ@W$$c1z)10>L˵7E3 74rX6\,խc( @(O^G[!baQ61AB "G8IGo҃[,#q"Q~#B *䢣pDJR*QvsJ=+ҕ kTvN񑥟v=I~I#̈0K`M\ϺL0s$-\Q^$ՈK2rp*((?J QLUHrP$^`Ѓޥ[ޢK^tY%\'!y)68F >A$GBuf `e a(C7>8[XJpQԤ8 qC󐄘+ Z$Zv>A44g4t4/*BRZ]8aX[UNb@FkcUI'DtKK4$UrD!`T#GO.!e'&ɵ5deBN ԱմXk[Ҷ'{A5סk@(U*q5pRO՜kMoc !p1_풄JX|IcHIn U)zV@ʧgYG9)XKF5{x2)qD C7)e{yt`& 5QЕ(,;nNz#ƒX$վfNEKM34* h,MDFt5bM_RK#ax:y">^ "8t`K#Qlp@hmB8LNɦJz:ԲY7][6;mYZ'(@^9SA*RءnJTyTe$׫ @xWWx$^kc D1߫h&Mc'U`y\Y% @w5MP[. C&ݳu*:Gd3lrt.:d u ȂlQC VbwC jgV4J-@4vFAΨip72^`2 ҆bD6k0X4"F04lDDt2K#'NFܬBFLpѦF8m^4nCDo?N˶(hajIPM( Ruu45ԌvT}zPo2"+~ k$n& B xOZ׎G#4A4AH1!#j omNa.6D,ԢL c*n 0,#avh8F6(n>D`NZPQ$.1 GC(c";+;"R r0r?(#ۊİ43\ 18LJ8 E`mh" FކDpPl>5>F&ǫ"!v]VlJF t />6P?n$T,h5@R,\u$5ZOngRmS.+؊TN/)"żĩZj *B%qVe`$(`f#e%lOY+'`j҂ `,ZP#-E4jQ5 2\*bbb,` lUp NC0D H`*d@ (" 3[ &O-b\g&3sD'cNFHf 3vh͔.!l*f TlFqbA|׆FJʰކImD:. tDM.gr 2b7k>%)o& CDBnr p)Gu`*=$>5HKDg$TZ2"M׺.[ٞK|E)K|0}kkUN"+nF!`$$S^@"BwP[QE[$ePCD¢nfm`$6?5TFm`CCv6Q1:~3B-H.J-.¨ :U;b#"lKOl C5@_8:~s=ojf=Wc>=Hŧ$#6 Ϟm0 dQ+KBI@E!5GAxSB@LF\4z"|tH()[r$Fs utG[Eq NraZ5!475o98Ǭ$c\ar3S#Fr 0(ZT#GBĒrPHB G'(Nq"0E- &'34|5>B|VI,HnԒ N lF1,0"@M@S@eTkc%ר-.g6NkbtWWlz v#Dby" S  |x4ތjwlT.,@ʢ؃ԖU6F01dHm"*`S56q7!vj^C(42pJK€xVwlbQ7-D*OF3Al$r@ DD5?aDvcfh鴕77H1@E92E=^,|61t +ZRBmDю2gZ@2y0  'lDH T\FA}$I JIJ>J]bD X:&qxNP#x b  \cay4!pgi9ل8#6:J/!&TL  @zZ}'g2Eq ¨+hDJQSc4r_(Al =GǃVjEk\"@$snQll0檥r08`0H>CiB(A:<Ȓ k3^FOv#:HLU@x{PU&ry$W,ljdF*%LT-AKD0|p,B}#HF͐4PI$A7mrs0ӂs;S 5zQşm-mb/co-")h !z N[> TL-+»ܒ0oʧ$P%e} IO1!N`+"vU$Ҋ^0&U9Ju_0nc55I8k&@ *!MЄC"lkgw;j9C j3=hP08né5Uo[>7l'ywC!Gx1̔ x`}*@xTFm1O;gUB\%2ydy,=_Cr?P"!BaTca㣑?SF#)pp9 NP)'T'؍,i-{Xh@څ8=x/oUçg @=i(aWiQ +V֒ .W TA'H@;\#^ecn @ |Ɣl~IeFl]O6{#Z S vuvѺʡ"/ZO @-B9͒B?H$S]5y7L08\nb؜\%3CŸu^^ÔAyT!򳔕18xR.^*[@$|$^wm y~e-tb/J/٠%A3%% ,=^+NKL2b(Q(FONHfXh6UBZjU٨݃tg}g1K }Kڡȩ he#* ݛ-'PO͚B"FT)$©i)ےOީL!^]P-: 8蠂Tx@"kH?&xDIrP @A $PNJYNJ~)`*6,ZdJ SOBRX@xB>@$[.ڶhך0DHa '8 ?ǎ7Nȑ-?fܸe'L dXK'&ru׭|^@@ʯ#/'¿|  7〬‡zʯ@y@0 p^`p‰%,(X?bMT DM?]Ht$Nj]#H4X?]T?X?>" -(e4##T&Tn2Db ]đ?@?LCv|G@p^E BdwrN1h"/\HnA!S.eEk5TB90X_g" s̡TQd8eN=)akTǯ#AAQ1]EXdME;,H TpǂeB~-[q]-Ha ƚE *IfbUgE6/gf=i%§9 EVt] _ϙdB Hh%| lP^ z8^pd]&7@ʢ69@p,X_  W WAXV€4?%Xfw]@r-f@颍}UXy狃c~"x$IR%;Y+)ߐ^vOY4-0g ȣ- B14 n\%lRL/ Jo xB+^ ]Ba$I*ONS9aU0$)K!UԦ8v}!)Z8E] L3_D#R4 f4_.;R$B*iMackB,JLpE$ ILӽ?HB(MgSu&Kbѣ6 KBP X] 5Z#&@ 6`J ȴ8U\Rҋw Rv\v99GGd##hG:H49͹NecMN8'=N[uEhP(tUhbxCb0XU[IyyKAa E"f$,%,Uß ^V#ɭ\eDX$ڍY ޥ :R/8F0DUb_ Ux,iP%&$4k _c$ J1\h|@3cD(&@$a:S Xm8Z >d}dWX-0#Ft?ڈ#H'E8VZXFCQvN NtڑrHM"lW*K^* aS2Is,W Ir} f$&iI-gNuU]^uw?Da CVIk@AE =dOTܚQ.<@|s % Qt*U+2VJռ Z(ޜzB:A<`5%LI3˽:ULed2+fv¡p s/Ǚ! + 5jzEA&<@fP$?3h;kNvRc@42~D'hKF ;ՑTbʴJa8&<+Ŷk3^S9Zhgcc=_1NF8|+;7Ml%bǹzp[j&,ҜxAF*J8 ^ (rn9WOXdFA̐!] CF_!e` +O)(A׷>X (AfT7asX4N1E]q1 'Oq$^/_*)z&F1@*^L S.:UTB'DTK# pmm~.@>3iiLN'Kjb t8>JܡWS>tb"HFLSOp`c>qvҽ'uQ ظ$]G2{9M+I6-ьzօ rjɴ-|th qE,(w  }($*B?y.z1F"FŪ4*/QJDpRpI$$ r+vBR.)@0oa0sF%HJsKBQS p@dbF"Y\!P4Ggugv]Vg6vۡ"rrI:rwh Sg#u\K2bwk"<:w4lx4#AX Eat1]j3Z1wv\ck93w$$h4$I"4C{h]x3;<{T24Q29{2HG$I7:`5c |Q@nr`(QnF+N k A=v02*qas7A/(ıN "k0fA3c%GO'pA hף"cA /'Hd9uB=@@Bc/muIDADzu@E u'DAhAE"h2!#222+#:)F #6y6zvk&;G"fL;|$U a[D`HR#Fz%z4LǵoɗSRR%Cc%98B'8rGuA2pCDWG+6}ַ?D<1^ ،/-w0A"PJQ qu+R?prtXBr((.3rRA3V@FS4tJd=WC?5#X9S8f`aW*\`i"uZ68A> ][ Ñv#5wXwGr:[!4 P#5J);w”xHIQ)lZkSG##j]$&h]4'$Jd%Ph]˜L'|+bX2LĦQGq^#}wMD1q1MUer/b}/j0qJa>I!)O~aa F&F#6/1bh@wq.չ8 ؝ٙbRcqY238ds< I #|y'd5SBgJ&!٭+I]DVIU!"qKp ](m7\R%8"4yzFkMyk 42Ҋ>9S9{^m$UՖ{"%'vl3 t'EwIl# fj:6svg9k(Vr{jʯ/X@ l" {xhu2wMzܻG#Ӈk#S'gy|:E#K6i:|XhK X+-#&Qmm#IїXa89<ήX.CKFnX!g͇^E?+L?vON~۵ 1Ѩo!AR`~ѹ),r*01e5Q=qJ.`&.&oֹo2OfSCvd9ehL[0j%! bȡeZe|&v]_Ih)#CP"$"{2#Ft!G$!dѷxA O_.4 N,>vjL/0dGBGIf@u_FzAH2{ rí.ѯ(I,:;#@>e[CNF#\z\keA` ݤ%9~G;&ۑ8CobFd']}ÿO$H^RiD"GG" ̦| HVμ΀ R~n3s(Nn=+566^.;;f`OA)b&!/pr85u4W6==s=+cK  F\6KU3f2u*uuUmf:Ö"\swkoV326{KryWk4(p`Xs=+l"(dNlu>IEVgozn9kH; &$+|߅ '@@ '\Qc/b9V Y >|g';(y߂5J5uQN ~*@ʁ*I1d(ZkնmrX , lo.THD={B BPh@OE2˓VϿ[H#S(ɲ炒(A /EU<1KA쑾l9:.h- DO> ih4g3*4`KX`E,=KuJE*@:+ƞ쟷6{K.\qyXP~׫-b#6_'g[d){,|dVZF4mUX Xk~ǟ-[Z@  xy0q9t`8Z b`c{ 1\'0m>4@SX @ s@À.T!5d>"Dh>3@-eQ:V#rAҐDlH)A>bcB, *c In Ȓ(q(C.ZFGؤ&)mrwɧ>ED(B9sTJUr—d&VrMG4 zk<$ҋ2ɖ0AKwα&Tҷ3вhbq #DkX`]P ͉[ !t0Gq(FxtQczpMqI-z8E 1qkR\|v( il\"4drQVz6Hz@$&u!IPTH4#NvS, &"xc:xd%IJc9ds|P&B 6F+* vn(EntK*𝶘Ǡx%1LmWR "]󍯝8yrf} ?i&|dqhHA愐>uFI8@GBDa>$G%PɎM铟g-\{C8d!=<3Hg'3|T,EOޤ"=cjD5iJiug1Yߒ&ڠ'\7 ZX%eF~h]6P#w=Yhc:;e+R..,{ф_eV Ic&V {G;K1I=l$#eТ!2. "cya 3*'ۚ@ 2y5Z 6A@(149'8ÏHR951323SzBjD3{4k4DɈU*d BSR-% "8X^ Z@{"0H951.)3ȯ2*yXP"Ƿ(0:Z1j̫ :$I:񛍡)HpЛ 0 x s Di g{/Y=ֳ=ݣܓXmJ PPHYpC3Q:ȭs E!Jj:&K𪌹 cm 0K3٘e# kzSLXhM )0LjAc|IQaJmJ$ *"$!b0p !b0b]\!Aǟ!͢b@yw !ȽA@߬/+2ڄd!>];·$R%A\1I)ME6Jۣ ʷ] Ss4*\BPKCDёQ52t-^* P-].=-;_aR㹧kkj#`8f%x'6mߑ x7(w^åV%=i X5Z\E1X謎@3)+"]K]""a$(Hbd)9IAz֐yV(G[3\)~d F0 3"h㞖b=Td5O]ö́H>r9x'){ GP4QIk@ `ueR>:SRm0_^ h ޝbfLXfEmn;ml>/L"((oY&`>(ɻXQ}n}3QHOC+vb 򮐿i@!M8:m 3 $oBC@pTc5) لmv Ѣsc'+w]/xU@Lq]}^#^ 'ɠ=bB&wCS4On냏"^L4S/9Q%5])x[`ʀy˖l<ĭ@W Xq8'NtӶosVmKm>o!٠E`Q*`ΈBٷHBGUŢLxa0훉(;?hEn! 9~J)VP%b$Gt4}L@F^NcU#V9?+H)N aTwlw%9?s9)v|eW'0 u p0aPe^iQO.gyF'׊R&g%(<}_։ 쏵ьOshmDhzKc@p .$(`D|a .^txX6BT:hY @BIB(*TJ*\9*V-¿aC*CeU \@`¿ Nq P8@ лat%84htG3b d.T?\ۀU6@s͚%XcP8EC È[߮=@4w#1ڴ3=3K_?#srʕX[i  pMt-h؂XZl=(kA)^?텁]@ ҡ9Υc#\]I#M CĂV,B9?!U>$@9A d@Ęvuufnu*Q鹧F G}vԑdzT( 4QDN$CID PD eZ9?@TPd K3M:D!5RUSN5To'Wh(gVTS\!tX?p@_~ӃC)Va!vbvqsd?GlEXkF"mfe mxSyXEf! 0`fɈu WR|}T~A6?Ŋ5b!6x0Ai)`I&A0SЈA(-R5`sc?6ֽD2O:)*-e)OBNPS?ac&sNux"+Qmt}:" iAQdiAK.A^iPGRIA\@C+A6|l=JSU(5UvUX >lݡ\: Xc=acfnar5\g0ca&:hF0K kBԚM(\Pn#24@o Akg\ 3U22C=Ftг0> "A8PQ2\ŨHCh$,I0Y+[&-5Ent69(^bHn~$%-{  EKJP,9@&P|quh>PNLpzq"UCFKNud dQ,LM!"SRĂxF<JdRDtR47:JQ~LVQ-:M_ !HIbTa4 ',xL~`J,yT)J)2 Kxt`/43׽=2<0bA%0NZ Η57fO:QH5#˻ Oeao8C #!aR aY L3 b8,fNՙ~a,owuFbST69lKI ټ6娏As )ST˛D>"NZ;NS^05N9Iҟ,G8r)A|2RLS+Lg&!<1x*p^ aN,n)Q$#>W4,SAKn_Oq$ 5YbR@d,Ubys 56l$&ꕍa:D~@h6? e҈S4⪡K<ߧ&sqNJ}ŋ` ϔGLCUY~՘u͝܄pЉI@[aQqՈ^5C@ HC $R"ID",*bA2}05!ٍgAIMZ,흟|ZaԎB֤YގC\J1G坊UJ b@Wx?R4[칂[(U i=Y>XHXqW`RQ@2F.bM @1 վ9cr Lp@lF |fa\# M`0 -Q8FC9Xyd UCXYhVH9^]a_t[yv&q D4͏f Fiեkec`hv(ѝ͗}@]z`ݬJ"5," L'C6OnUILJތ6AQ$Oa0Q bZ|ISJ<%tpō (he ^灞:"r'd !JF]w֤jjӂ\5.AIĬaL@8Fy_9X^YwMclia`TU uABOuFYc7pnRPpLmp!U }Aj\ѵH j ] \ш.ݗSME` d]|(F(0#-ɭdID~g~Nlb%a+2II!Z$X0aaSR  [O<Ӳd Bo ~YC6lne!^'V/Jw/ 9k<]j)-f=x VtcF"FaTcO_TlZU },ωaD&IYFOMGOu,ɔwl\֐nnR*ꗞ$Q9FBqWqMm\9YE`'v.=d0ݯD kٚe]AȅDZ*@@E.LJ'H+OFJ/ab@ X.mi D, <Z@ V/ZVeF!z)gY* +W/̨V"ƌ,u~Δ9zj`,lΗ#6Y_4]Ϲ`e m1K5/͈ %))xG j:oXnf \:̘}tn|Q,\\-٨:D CڬMV 8<܌" L.B00j.xNJ$/lIDOr n/OΫ !D 瘚߱@ $ @][m(2*,,c/+s[w!Z+U22nt0?Q^ n_0I4K~N@iFldt[_ul Ng')AAY2U6 ֖3P)\m}+:ŔL { P*r#bQ>hUPgЁ,]/ɖٜB4ywWB.ADu"KK|IZ(S3DNN'/.tNg"S?(r&x!r"k[E-HEsVN*lĺY]rը)*WE,+lu^C88浞|fa ">Qs,_DaO'0}^͊K22`9_0gTtKlyelp\LfFsGTr'14?)Czّ/M fv芓`]ᚥHMEJ}#f)p7!O:SDzž+SRCJTs!?x"5APK!,!vuKƉUN5 R/)upou/r5,oeF0,o] \vdllnK\%ci_E` t[3#||}Wv g)kc͘=詙 yW # 4WfQD%HtpHx%$G8S>qOz;%;@ίӮS7@dh+8ﮱ\UB/{·傊N^*42>â8nzFhK_gY/˾90{\~-F1V~@B#N3«E]T1Ic69Pf>"6 u<-`KHm͆Կ7M=1w=wm1@8P04H!Å 5$qD <8߀P?#B LRBpBiK h?K`ODcLʀϿ&H`?T0jFE AUmkUNUh"1kĐ/+Zj3:`6pCno #8 k 4ӖgL덵tz9樳 }-w1D?:"n<^p𿐣 G y ld 3@J gP $!(d9#Dg4QtjMsn*9iMڔƘ'UikW*ID0dLD `\R`#Y8GK*t)HW-bHɨENWfWYIf㻊k;SvPZ)gj:F9c^Gv%]rK\oVr˴쯐Œ6.^?|s"󐇀\р8|Ld9qVa_D6DD: != J|Ғ$ÁHmIA3╀"q1'i lv򾋝?Ț䝄GK!"&F8Ҍb(J'?O(Q9q4UtTNR"-cŜ`zV FMb+WHf,H ie`TyҬF n{]n.@gYs#L58kj, V9Ïe [\1<Mdc3BF+9h#9d "la s-jv|泞 s}O>9rl-2 @>IS+RB*|=*:( $Ld" .PAMFF2H&FTKv01&#(j.N>GhA%$`cK t D!&'P'QEP"؎bQ`ڬr>0\k(Vr֭ 3 8T[Ri8l6|°4zE9<w*l4n/h3vCgc'O 4tEpɕ-,Og8:Bf8&K\BT$>"0c>=L = f/?hQ'02f,e2:4I$ERw$Ꟙ9MnX&P02 H_ȣh Bl.f8BMl-"b.b((ʨT!_ %B@ %Q (v":S)F-D^6^RoWp yM&6DCE48Ip/^MT 6xT7tI~~d3PRۜ]k.'K #E_(➉=+/(79mM!T0&jJHQH . jB@bM1^ն#"crV*db EU9p "pmR0$ )B;b;3 pXO<0`Rn.I~L7fce~|(kc(AwOLn{Czj˂<3LoЯɱ+OkhQqމ-qI^N_V&TY,Y ~<*(1$=B-83H@3bHK6 FHTk>lFjK&!Hps.Fnʨ  D-('~jPHtzp'b(t )Bj* l$BT8,vs<]=s'4*54L6S3(eg*u[E6vҭ/0zO%Il8*ŲA `|&q`rYO|,Gs'<|C3.?g&E3P/9C8jU4^ 7CE Н0h1BSY20 &mJ"HJtJ!h3I'XHJ 6!5?b7Ok7ƽX"\J&O0'Ipj"&gUePQh(`R@rMĠRM +T[Иl'>/%BWVDl42W/?2yl*y5%lﯲW&B{*GBW8(B%X!4. [Ѳ3& 9&qXc.;q% ~B&O&3UwHW>ExgY`˟v`JT4UP!ԑ&M2-iH$#,`cK.xr0YzK KOhb"ʧ|"9 {" "b͎ؔՐIk&by)UU'i?Cs'O58IZDP6U/qSj54AWURo4DU*t@]x9ă/MW[p/_V:$qqr]1#$G1t CsK^UfH?J5vaˎ͸jaWdj [ࡾ>Tzz# nϋ &(|HbODg5P Qu*@y~Aos =8Mwi"kuB Tk-Ђ(6Ls[mjW?'ɚrk4))%!9q)rXq]wp/uWqssu=^I]' 59C`XEix,WS2xtXvc!#w xjwyH~ C PHLzh;;fH$VP&Tdc upZ% 7b*3$-Dyre %぀7 B8h,wv5,';5$үd#ƴ0>8K6x=Xi(6*,6궗ZY̘\+򚯹Zcxx Mmg 7m>Ra>0V[.tqsQ t_]9ct`WW[JPˆ9sahj $"ú"JyCh`SZQ h* M7knL%{[%^%bJ/(VB 395Y''lj'ܷS 3sxw\EsvίƐ/62LQSc+nzZ5{[%h#̮: y*ԚLwLq:BO7ny^u_C=Z'7IЦQ8uz5qoWzyJ丩Nm1Ĺ GxyQZѢ `bdA"{Wnﺗ&"+ӗ0}7PgM$/NU<9 …7hW֌ryh#j_b6j^bE@})P[Ȥ%)[ʒ7:2^\siTI}|ѽ~%CڃbU]71OqjWNW0C֧_#`i 4ơHas4X}xٸH|h& H Aлۤ^3\Ѷ1kNH܋O_-&(/ھSڷuURs3_kq Ά+u\2?LICU53"fz|ɒe56`'\y]d {8{+"^#~+3x".B=d Gg)[Cwڇqg+9YIw˗xsVіJğMpj桨 b͎H{;塟a`!|; 4BD% \d _.y Mō-g'IEbԨ_Ո&U*ֳ5%jeܯq墥 Żh+؃SL81X`Oc)52f0w. Zs<`ÀUc ߅ &֦-;7me6_8\0m1p-PE CP_ ŗ)Sѿԃ-pvcaDbcr-X5H345\τ֐DKtX RKxb!h? 0ċ"E#CC PA5@ V_%ZgEAABa0@O( B?$J-UKu$UPeHQ-ŦN)4IyPG-NR TFeXxe^It$] QY#G5Ei\ )X1`=cgY}&bZ&ڐE&`MZ–ltqB'\do5眴6[S]Եp-pw_|ⱗ^U _0Hgw]6[]2Ql` f l(DZ?!3P$጑N$lLJ"dC.t%_+Uc0CqKDqp?(nE4QKphRRVR[P@eEUayOV!TUN9UЖ\)M,M%X-FԥV=#YFwץLrNTjЄYE~DhjDifڬzZ*WlF7u1[qoe²><ч<꽻^2{ xEo^)Ocs4T(Y䧲 ,ZѝR_f'8Vqev#ͳ3`tz`i Y(0G|, Ëz3 y}x^:k'T6Ґ3>䱉>ob  l,yN/g\(aE!vkh&noyjzS“tjD*|Zc%|ҕ @ 5{R#41y98z6UyG«E0TCSQ5)v, ˏV3)wn$R ۭ:jRj=Tr]c6Vgs]x&xk NkB^OcohC'`cc|i$5CV(4'w1Ŭj lb4󍜩NQҦ"iBXvbth*>'t*E75&Y e&̝qo(մokt{C=]u됚HS6v Jб2 Iaٱwruw$/ta{.14!/ x " f1y #?~07?ndL1.BouP\5D&F@Qe{pG!&bb;B %NfD^'FjVN+1Q2_F8T\(fMm3tÄW8t$Qm)9֥3Rg4j%A0sS_uuGk;TTMv|-$p.xa(mbU/_aa}< qJVDx}U;0* V! K6֌68ybyx1CdLA2$ߧ5iwkQGtz8ӵ7V7Z8(QXrnCefZrO1B)N70gd2D,OVrcDy%1DPrkXRQFPN(SRFG+^R^(Aa:Sj,1?Uv;kރb`';ޡJĶ.=XF=ȁhm#VI xt0 X; ࠌ/f1̸>WW7L2"A$Qfd\3PdrP(wXYSjug4BDY\rnR4qtBdяgXg3M+O2r;#7ńErPgyh Qҗ8MH~G^^iEt]!G1LG+1zt&, u8U0e,̱|_ew-r><8BŃH1HJUt7=be"xJfmh$CTr>Kf0،KΈWW%K83@U}X4vV$EeF8.\YB5Fz@tC[(.4LehCCRF2%}exEsq-+p P{#UhYvi]fԛ8t)G0^)9_.ɒ:H:IJG0XN?yfT( )vJAvwfV<"=\vǁ>h> "-W !KʖѨKbw9@ġ"{~f 8% qs$&&2'&D|o2Վ"AKh&ܚ+wS1X*Z>EQ"u*9S.g_M'ApZ uDc}:꧌TvԩybǑ.vŦ=&da^Uxփ.\ybi*Cco9?l0 `W"!GLS,ESp蘵4p=sb*+ 40̚)5jtޤYJ))Cukh8A M@J\5r$]]mԛ祭BRntXbt8+39I՝>ŧBvv{kTY-?9;K5/M%EVII.rQl!e.j%X5VUp.!-m!^ >Ì ۾ "!aɌ+LJ;@[;srҶ0 _-ieںweL ZZXr- :rJ#,PBrjPQeY!PB4sAU>p}3v(ËLRՈjy 1u_-jVl0 `T#gUUxWeUVCp#X\L|5xޫ{e?!k Z4[cs!'; A5˜g=me2t:5,uGtY; Z(z'dڵ3!eέ/BErtA!PBM˜ZTV=A.a8(H̀8^LԅͿtGjĸv_Y_ς j.tlI }U9wڜ©m`0TK壾;rx(,{Kd%dݸh=R,+1Gu f3XvP 8QeY,Y] ]P4+{i<<1T0̑q:[gqA1b4˼WpC#{B营Q"RcYh:_HNj4ܧJ)Ar.ZIճQ^U%8۬-"JÕ ; m -MCKoM i7AHw5 mChEA`tAar:,=8M,deG|5eO(W4@.5"{^P4QYcÒ,jӌ+"AfG{ׅ3[ՈA:KTҮ65L->>8ƶMqdKyZKȘюȧ2ʍݞB+!{p4@<$4\d9m:eK=,â#Zjq l, rz:N:OB_ײAG+.{WdCAaz:g9l2'յBJ+N٪ĨA{$Kk ! @O>KyITͩM4?x|ut-tEc-b̴oLP ;No~oZep?^#5vE?a,o-xMݿ 0kzsᭉg?`%D?W 70`C@Ä LX"fTqG:bj=Z5bQ޾NuxqP;\R+<?jNÄZR;[0G U澧vt_.tyf~3@40n)Asn"2`j$,hE=c ;3iO'B.:* òxꦬ̛&2r*4|.4 i\ /3C̕0:4,3rl1 T f>sl4"-4K m64PeCRK Q)lC0:6¨ 쮛[;^Ѥ*й.Zh)&Is1 bL0<ML 42ZK-1Ό1r45s4$u۶H=DmO? Խk ~ ,C:,Wo $r}q[kI̟Tju;6G8&CƝh(+B)H˨V|QrS.BA[-" FH%1O*!'jzV7X.|:㛂-2(s+S5P3 #}~s M1zy4sȔǛ0YU4=Q!?T PHI7Ak˭.Aj:ի?,Ľ |j[|ShwEhoJg׼]w le7^;\RڕG7vze6#ڔ;+ι8[R[~\!IxGn!T G~ʀ:2g_7y8t><9ȭ }啡>t]!)O.ď7B+! 9;Lbyye.?'9Fx˙nB{R{ءyNn.=MpԪsMuw2)pLiz&4/+c.GN{.r&yGyrS[!({+A+˵8+ih@=x]!w'_;e~x Rn矼P9#+./Ĵ,Z6p:2[<\s':þ;#R3ikC(v'7~x2/CeK~k>fkKk(j-;& ޛA!5D贲C@;;K9sQ$Ew0E\{TĹ\Ls'_+v3?Uk>[p5:Sr@H-܇+;F؇z8=C;;,C6S,9CFK:7Ž4(":H5z9/LzB?T1tLŜL4{@Lı!,fHQxRV' 1G5B(&XAJ3T9D`ENV=GeDHK9IhYD07\CK8!O8DH!WV-A 5! 6%,3 C&#۸Ȁc`WrcuZ䴛ǭ8fFMTUǖxp_ʆeiKSR>Jm\{dpKQʹlNVx^`CHӪօWqYV<,8 SvcuMRmV齣0 q]ڰjW[Tͫܺd?j>X0$H7EڈfܗhVgvIB"̒hcWٺE2=҆evfYqPVtixYY\: | mI=__ΒlNN`<>٥DڐpF,+U)ڛui}V]T69鮄️isrH͟t}ՋmecV?NtIJyEb]TMƜtUo|Yf^܎fc,e4$ŭD͵ªymGIN*!Q#QNhbCP;H|ȃlτ]KL5>yQP0~NcOl`܇^VQ^\bFh\@yOJH2׍^Їl]ԧwڪ {C0Ӕlǧ}hٲq>άíT7Ȱe]ms;(љwփ_̉ZHsyX4/ۘN34O9ƍͤ|YpA7LLLYYYgggK@ttt?F.UYY|||߫:ACNNaƅ *\ȰÇ#JHŋ3jȱǏ CIɌSXɲ˗0cʜI͛8sɳϟ@ JѣH*]T()JJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿\WLU˧0ǐ#KL˘W?}*8/|*O^`y۸Q3O*Squ^>ǹ+]| RV=/괱{Ovӫ_5"թ[wb`~xSdZUFl%`Y|ETZނ5E;'PsRSU; V \ç@!H;Q@BsH?-?݆)Z t%UO<aJIjJ*+WO|0=eU#U=1" 5I$8ON+kz@[;;Ĭ@:egkJZ5DN\g Y~\[-svm|zz:³=U[3@&5$׫AiT"d[]UTZT~sJjcTi;ޮ-WmnrQŻi OQmfñT 픧A&ω'-ɒRz([r_;*ڷ;= )@}mgyJ{=7\:cMk371|J5 zs|?kdEcf-ѯü <}sB]簷oaOeb J dV> '\\n:CV'n+Ua _6qM ăU?6M*70)0/,\VdNRaTtxݵ}`YN"^F!:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$'IJZ̤&7Nz 'HRL*WV򕰌,gIZ̥.w^l"IbL2f:Ќ4IjZ̦6nz 8Ij',4HI:N|'1zĞ'=9~:JЁT-(=ձЁh?$Z0XD0LţGHВ UAҖԟg>g*Ӛړ*J hӞ|W@ԢHMRڊ4Nj+Ԭ< iTqj+էBEHQNxWjԡ(E[M>C w}F^gD]SBQY` M3ؾX+ds*ʚ%M1kDųujU2Zj]mU!+WcK[u9jSc[զzT*p}RP3[Y}ڔMI ġuMd׾_W d-]FYd+rQsYԝg5k[ ɝXZmnr[ViVn{a8\IUP_+M'h]$TU(u]Xo4[^Nt 'L7,wibMZݸg9T *fUXv׸A]12V-h!U cYe646[b<_ɬR8p[YX`k[uz>k}Ljׯ={-D!#OɵJ|WP3TմW;l`^.;0ٟ}糏+Q5t={xƒFW&lTf2s1c_ӘNI1%K^eo`벼- 2v}rU"4U{Sc-onhGE ۚzT/-p(\,zd)rk*kx+7^UjG}jtg&R)1RdY!~Yq]OFOo\hx)euTyWbb@)f%؆*Yufyl5n;Z^xTeemg@ohJl+O*h)beOS1v w&]AfvѧvC6QfdXAׄRRKVnG1P~]~5[|;1xf䆇F&dVa}gI<nyVhHhHhlyݨQx{S*iNXge]ηqUd5dTv!YAw}zauX,yX-aRއwE_}瑀7O'G|u]hUrאrxvhq؍q(tȕ%XtgݦmՈ8z) ZljfVuۘp| ؈i(Whflŗ_go"vד6dg^& }QqQO-)R!Q196ً]RwNdexUEiudo)`2x]ySŹ^yT fXdgIm)"V{uu|{82ȉGu9o`_feH9Xj5^=jEQ83 6YQqXɓ~|9xCI0_W8%|O2NɢLٜنjt[iITY{lgU]6zyi[!0oy晗(8 y Oɔfe(8u^6>y^EV(bq8JrDŽPx Q=a8"S":Cy~Y(JxKSԉF)!{i=ʆ~D*eɎZT KzOyN!jz~yɍوx T.:YYSUqk=v%yJVu z*ڧ!YUʧ; zw~{ؓmJSq@Qqch1P#KjY4&ۊu)ЉrɕXVa9fbq y:DE+bG:hڬxȗ(ȥ(S0U#%)QYV!}Fvupuj"!Яۯ0R*6 :LFV1_Ąхi5%k;fꢨ`J -˺ܚϚ7:{m5 l[ѻZ3wI+@ zƤܐ[z zBZڻGj{ʩbِd님 ˸jRS1**5}!Y+LP" RqQA [RAۧE2ɠ:+Yx'x1 5 𻭐ɺP z*Vl:+x8 ;+Be9TAL\˛QR8XɴZ+SndfLY;TA/ in&Vqwe{bῙ \w*܄ | wLp}k}JM,Z}\HJ56OڶmKO]v+; Oƭ[<,;Qax:ۆc)GZF,RƲ2wQT<̼WS!n|V_ <ʽ<ʣK9><cۢnL1 +K7,l,]῀+ ,ѵɗ쯅Ɂ wȚy'Z%LiRi),)A˩4˿ҪG,7JUͼ Ʊ:\k،ة\}b][ Q fLUl*3o(+.¥+<ӧǛK|-\a^[S ҵX R .?` A¬Hͻ>b.[},UNaWQellG8 $w.k}^n/N}赙 }~y_/Uя  َ|/ѓ>Zщ,Y~w ^J,09+kDƼ> m̝)1RbW\Ư֝oSțIIfc>KUw퉽N*=~mj݊JMO@5cpARiJO DC&0 !ʍ-pI4_ YSN.c$OB-:ӿ1>TTGUV J0a-K0@jZqnu`^ho^ $\01yn2EɓU|e` ˗=Ǥ2thRMUT]?m:R}um/xo,#ْb5ZP!NtaWN$!Hdɲ͜0 Ҳ>NG7ejm)^k j+Js+"mjk z+3"Ȯa4kDcJL0̯'ZtG> k0r:담$ $ 6b[v;p(|KܭŘ#(99pbEZ κμt!b"<,"b=M%ŕT`%TFU"(L hu׻t͵[.V(^\Vc1p1jC  &/2R $3Mf5zTO}72̍LL⢙I8k~ ;I2;F7JHQ4qb<6d3F|ZLft5H0ʑ9o#_$2c$YAU_ZF71!`&vb!Zӑypb";UnlPA@G'Dt,!ܧS0&ۡ%G^ vw%&BƃR(1O Hv0iZ|@.^O4ý&|VS-7RKgҶt[ h 0ҍcJ4-5(qf m1ב\EU Te+Y91 JTL)p#AHDLd%c82ag1I2y"rIfRMkT}P7%yҀvje_9S2q /b@긑C]LKmjF31Pp7+^?14df*-p!Ik8%TlR-FicUFl-i̝h֠쩭3J99Q [ܥ̐1;X5L6Y M.RreQ$ezcy1YvɊnnH/uvdN/aVl=k^ )]4yYHᏑyA@ %Q,B2ATo1x66} O|l v΀]sܿ=ޗd6Y6$ qU D_ͻ`05 {;_ D p0jh:{ń 0?;Gx-sSLrk։Q89(;5+ʩKA<"C<ʓ? ԋ[R~ @=c9&=&oZ>+>){,[;*s6;Bӣ+B{>eHv+23RBµS+[c>*; &!@c ;Al @4dM@jو+͓ "ō8UrNXDYLr $ؿQƍt bDY̵H|>.$|>KlQuDG 7!!{"7B}Գ++F'#H-*¡MAE ZF_cb &`dl=KMcҲďL4ɠ4@3SڈDaIIXTH, L?इ a9؃b`J|O LHCC賬 GǺsT0JLTL1L} qc-Q:óLʼlteBHΌ$=DA3 䡈 ;Կcb=![O!M"H`b͎$ĻDM4I( d5䴠-ITJNVbVl1VN3.^͏ .ō<%O$ɧ R_ "ԂI?HQ!\Fe%LBQG ]мN]5U\0\3(p#wDG PvGyƌL e -kFCMUL>4͟pT;AHŽ[MJ l%T! TqA|HH$fXIZd( 7R*r|R| )///15~8@ 3!K\Axl=E >,pAuY=fe$D;:='Ff;TVTP-US%GT5 zQP ZY-CZ-7ZqcD>`MP /2o|+B?TB"|Kg.aFedׂJrmYǽ` 2 bb\%]זIJҏ](E%&+8Rs D4H)ɑR9hݜ%tWt$J&0LS=U>MYt}փ,EGmTJ>BOE˻]>}[EQTe0%KL Zаխ-`UZP<#Qe[_0BKմ;CbTO@ӌ FىȖbJҲ\%YcW6JK,+r(bW#NQ+ӍH)VNrX 3}UӇޏAM]$>Œ,A Vl=6\E=(C$TPK_USMG`u$LoZyڭ0,QSۘ@[LQy`vdsr\_M`AF[&?vԛŽncmOc!\ 4vaХЍX͔<".bW@~̩I)&(~ي1bN)HgefOs sG&_J[L[ZU[ %MZY݈OGReO6eTV\ў~̞jTUoBHj[%۫Y?ai?VF6*5Fؙ$U.fQTIhW5 FbrVbn8Nwbygxllu%>1۽tX#b,5blfm%=FhSAVJi>ҋ^dnjn?Nma\aM^$B` i}`>JXU̯mG=P^꥾ڦ>Hife"dij\Q] emT.n&&Bf~k Jg~aLkvE^I%c aEr8b|W瘈ʦlb5lP~Mg&~U"Ĕ9Ëfmxc s^f0ٖq^YJ E\aDuTY=)ޭVei\_Lv ѦDN`ov Z%RN6PP8 ]{t`uVdPK[VQr,ku6?fnl^k>nJ }蘨a XIJvvSkv'|DI|%E&IFHth؅͆w6r) Lb]rV$gԦw}.ln?mh?uf\ƭ:Wvcc:A:s'nfjտaava^ֿcin l GF~eY`tUjz"qC[9uS]%PizWUeM[=Ou:-ausnMO _v7ffˍfx=U׈f?YMe.79q"^Ƴ@N5|oyt}wll{T%}w%X΁/]&GWxK,Ys| >~>ix7|7/| 'gfnwy]yltAB'Id Yzq#_MN"DX&T0@'! oa4TǍ0`,HRaI@,)qBHdtH&E7oʼИA!9hP?}VP~jMgժB_NVllW֦6Z?vbvݻf0Sl9&(.wWa99h" ӐN:ҧaBw4e"(Y#?ʌQ&wع~`vCի޻Pjv-P:to['TU+Vuܧ|Hme UI)e !DMKa:M(D0aHGCnQBt,bA(A/bCEĐ 4D)iQFސQH&uH 5CRTDTV)LD EJ=x JTFAe?QTU[C_y5Wq֝W{j9\ 3^`|9$eEv]=:` cYol͆jFkjing]*qM* ݅ <*Q@sbh[U*ztym ߷[WV (nTMS ՙRu]N@Aa;3 Hэ1mP3(r-=xB!9$ $NL`a /xhj`Ҕ 0mMTһpj\nGٵvu E-J:q݄CR5Lέ06B *qbH3ͪ7of^P1V| +Xڎ^U@kr|TWݷ:,Z@ Iz"JTL}餁LiP[GϏڝh*p'fY+i {igu[%15[N#7IV3ĉ,!#hi>SWʉRtMntܡΉiV^XΌ+Vz)Tu|GfV} (]¯Ҥ:Oe5L0z0Wʣ`;kY3p}mpʆ`FUB$^ $`:LY;xAu@&T,E]KYn!B-SbIa3wZkש=l;78@#9HĞMj˳դqiXbh1FyxWT :'{I/vr{%4>4|DAa:RTy1p#HV/_SBJ%ClJQ~BL0psD&2X^#Z460H`LqOzlY.XTljt{zC0-5ZYVo:0unHf+Zq1hU!i:\*6Jn>WnEEmxQY|BQ(q'm\c~Kd nOVNt=`Rd^C>#0U Yw[!: z0`a5;+맢 ªT% eىEb5'zx kpH(]2 e1doɗCN"іn )pmS1~mBuzHDBe5QݰO͵mb`g)|XF?r[spNN#;ә"UDӽC)Q}]A?,\2|z ؝]A݉^T [QDۉ5`0]-".X"`n2 2DT h޽1M!ύT9y]u)qY ǦYpJl0ԝ >8rq0Ga#j |U)ZzM:IK)_|a|NM ?hA,""2ܘ؍}@ "V``5 [`+]^N Rc>̶^2NQ!~aޢ .-빞D[*&d7}aAa6PLDfFbBtdV*ɁnP\`ChC=Ѧ);CGZGn?dDF"9qꝞ)M@Z >."-Dt0N >[ Zd]H 3* : *e N#5^ D (^-->Q[c\Z g/ 0&#>WiB du|Sh^Bަh[4CDZ$%R"Grb99rڤf=Aokt\T9I:$bri?hK{bCqJ$壭IAV>%VdV^ZTd~A"("(B1X|-N;% 0I9_%&()fN 7F8 ":#* t>`[`>{Zk`kZVi$BfTBfThl!}DLop%{!O!CmaA@g?J@q ΨMfFrL6hOVz\^HGrw`jH1>~⤅BNAT H Ch"b-NZ"YjV&z2ձJdڊB@ke1 af`Ҩh ~ȇi ڥh(ފI"]~c"C[Z(A.i-BaX"+GցۗRC۩va*Bæ4{Ħ)('%^jml~,ڤb]vF dm$6rPzNrF%bĂx,{jNnjB-z檔叕>e-"R0J\N`V/|`#e6 67Rm-^`ffBj*J)bVA"hdnHd:l7IoC1讚Z$r$ion(Du1&S!ړC,$=*%_ʩrצnj 1AH D-'L"(jkfmRi:D"NDb-.DT~AJV #c2U BC ?00^ (n*pFUz!Sm|(S/ CnpN cNᩰ o2H305/B30VCJ7p8S.;r;qkVh-:0K>cqֶ&2nBoVj{oPrȦg"Fj8\Fo5LDȁynNz&DΪnl#o^#/(t4|H' ?pP t`) r?˪d1*W;'5;+1.3p3 3Xp S2u B% WC cBl 0_06@$ 6?D^O u`p6cKXXD~%9\;cH31*ϲ=OU;R'5O+*CTl*nnqov©6DJ'nBqBl9I!$'wo#˴ʯ D/ HPoQGQKDw),gS2Vǭ(jRynfcS6ds]/Ym3 \S0_ 5 O x?vN`3۵CB,Dc;bϒDx5SՃcB\Bc?Hri2jjl2)89V? 4 {ߴn/t7tC72DǹrNb2m47l44oPϯ49P ll׷-H~g-óT3Wc2C3cD4s ϵ wx_58_O^wBLBp4/;D 6øㆳDl #?{GXc-ZhX݆6s=2K9gm߷/պBt{AA+Bfx4):s7G[/]*ѝ5/gϾD5 KD 9 foHeK8/DX~pTek;D3?BڶB|q$o&?tåAyLlprzjy*IÝ|1il\ mBAdq?jv'2Dô4B7oMyѧ|+'(kR*:k:EpC10o0@`AW[LpbłLROUjQ.O$8⟚H. DD3,hJ8޴EU `Ӣ b7$jĆH9,(/ -j n R#( Dp/A-}Wo"A2w#&Hd*+36ksh4imѦ?pF_i. loХ ~;wQhoyCrP;|Y4݈i&gd% SL Ï d``: '|˷l'R˷‰r*#(%< 3>#-Ю4QnStx L.7:崠rZ9R 4Xs4; ƻȣl2B9Pi(]"G@S?UOp ͹+L[: LjlAs[,u%%tW!p'0:ɤIR餁[*1Agjjš4(F ( Jط|Mɘ| JADpC ˱qbU6yHEuJSA,e9!tCW HiLMKO=ش]炔 dmAJB $xm/4L\H@x&qDA]襒# F tHl3QN"L7^Kjb ($*#eBf>x](D?Xc"/X& j^Q-hԶxe1GwM'"p!جc X9aS08p#l6xMAQ" ;r6=ȚC'4SqeF-|.%pՎ T .ev)-d.X&5G,V'] )Z!#M ^@y(/ƒ*7a!B*P{jOs?t [j0 :`1i:\@zq#* SPU 4b kjɒf+>x3ڢBjR* bkfO'01OMmť9@@ `ƠX*cj]4i..Θ&3.uyI $-Z:ux{ TT\ApĽ&OY SC!툩Axr %ǾGU`Xkʗ~%o`3ػH\2䚝H_d^YXA `0M6YWH4ցk\Tڸ!%n1jvКoJ6$ 3"{66:X [xk $ AO+A\%oy^^um5K"b佢tOo.`fȰj" @W# WXL;XT8>(L[F`x4A`w?0IƲn3q%`x U  `͉|b\Y!Ց|rNGS QRm K9dA6u.-gm26֌awAƓsq-hu \ τnkna w{oX+?X:K5M{P7a$#Tw^U#%N=W Bq2V{}-e}SYu&H-z׃57&.cy-,۽`[%Z齫$wQL,YVsY X[h*Syrx*m4Itsn ׏"_LdK~D@<~ҿh$ew4x]F?qBE%K#x Юg," ؎|"('԰*~*"iٮ.`kn/j &-L&OojD4 ":b~lpzC3ƛ63i5^ x6̆mm: f(/A/2xl+q 1H.LpL Kl$@@qH1 f\λŔnu(ͬ/ԄBo(o p$$p~*%Pc^M`6P<)(ހ @CI NG\´.~`M$D+yvp4bNy0pnA>MqQ  K PҔNt2O$ 5L Ͱb|ȮF%'2oPaõUP%7䩝L 'A'u6䩇A(9j je%kJ p/+i+ݯn PH j -Y*O oop*nacA/n1|dޱ21N13u 23&c8pt ,ޠ @s R7212N1ex16ybAߋa38Y:Y8N q.9.n Mt3 !R:Ò 5q#JNoݮͦh=c vK%4 VB^ln bR'K7&!R#)A͞+$Ln ToO"Ɉڏ,r, -Ra N{C'q m.R7 (d06ԲԖ) 12K-4 ,%6=0aQzq 4 NL73qâ~76+baqOs1Ԡߊ S Qs JFS9,EG"95 %rEIS :#Ar# L2)ci&6lh8' \9Xh>oo>G|ް,sCTEDh\G75*:!Qke8p9 ز /}tuﲖ T6s6Tb-639PyMJy KL34?SMϴeX6$ emWb`'K[K7d dK35s jyI9 RRSS2;,0lGIt϶;slu ތhܳ7i,Ex nr)sYiR#Vh AoZB5nLC5:[9+oFtN\C"9]7R8Q;_5v78yT`}w } tAw|Qy{g4171K#i`2KM-3d BLW4Cd|Yv}[MY7A"~є b7|Q4a |~Of}Af! fwNbz9VFEX$6T)mYu C$BAސBZS8o/bd XynvXc;8'˲T""k [uBUR a A؁xB 엚yaفٙę fdwuGjsS2U I#lY,ltxnm>ClVo]Rn艉8hW bfUnq9QBtlfRN MmelOt?utЄW99kv v_؎mvqא9 .ِx!yoyZyv&GДѹLyO9Kٔ3E| dY%rYB~){yۘY yAz dA&؛#ؙ#x7~ML- cz98s89lR,M HxA֭FV7#0Ç}R^coUeposWt%e/ϦƋ ks),oDt6"כ,+ֽi7vy_vVwuW \ys63!1! *|*-\9 $\34sM٬Esov g7Yy   Yk\= da<` `]{xSLZ!~UwZX5u,Y{ϻ70CY$Qr9w,Lìo3@RWb>9 "2Utĺ(r+W/2 ۅCׅA];ԓS8XS[8|6yZ۱&\ؽ)j1<&IS5,F|a,jܚW=y<܉~ ({ɝ#8' = 8dQdEߧ}15ׁ؁;vx9Uؘ+','n{{t} 6@Ӣg#[h6@uW8PO3[C2tAXtsSMuUT;S9u9/8cR~ɼc=>ې}쯚!yy "&=MQ= rق}A= (j|y'9O#} }(fw]ך-؉}x^ B9KSV? ɻM/#mE$ ota5\&>K5,ţ+W Ub )( sϟE 3=6,/;S;k;@VBBUu"paĆ+.Hq:qc'$u5jx2忔X62&.5{M5k6ᠠC 5z_ 6}(TLPmhU*\Oibձx:ߩSz}VVZnK+*N _~VtA]t&iL+OVnHͺ>v :牣 ,xڠjH dK[jےa` qƛ7|r톴Cik]6pr(v7*TWOtpҵ9w9RVJ[{aMW;'E0 Vmm$=dCD !FCRGiQqQGKf3c5ӏ9TQU4cOEE`M9UUPTVQVUVwBE\rYXkVoɅUm֕L$bB-RNP39'M0yM7dSLbD9Di)tbBBLUl:h܂ py)|A!\7]vyWQ7uMgԯzS)rm Ɠ.K["`}`6l -AͻZ y]4hM SBqde8>WdcXc铒}GGEl1d#OXȴ0͠n(9s)ZJZ4APl)"?nP}bŒ[[Ҙb, 4| xęLQ%.m@K8+c(,BM4kNhc Qı3(tӲɄmȢVejM+ִ< YrVK% j +lXGz³'..1Uu)I؊:mH֘u/‘fɂYM^7KPe;q!5$o& #^QUC7*7/'8ȡp&M3C( ۃ\IJFhT@MLzs*pjr"q ?͑U^! Ic 1pR':r$b"H+ }l+Yi{uMl1[(E,Xecy"ѾD*]4cBSu|"Иt͡ 6 Q?s_X#ԛ4g7ϐ%mkq9ک/%XL ;kiJѾ:qL.KVeM 2)MpLDIc4ZrNXjj-#U(Dr2W9@dn+T=иƔ߰vQ(rG1 th98* Ymۣ3kb|jߋVce; [O*V7iKLq<ۿgG)v~4c>ZVtEZgǐKigxtv&uFL'h$Zcusbh>$A t Kp_ ``3PPE(jJ%J!HA=r#CNL]WG2Nh4$skJyxc!K sP~I=!<%$'r"G2D`a1n>`>E{3s E"a nz b.b0-F p-aJĆ$ygyw2v @vkY%s~iUsSG\%g聑XEiWGh g(YBWHvZfYLVh'kKiqfKe+ .r @ ؎or_"kcA#x2P13j0  8 q1=c1W]0WdAqxA"3Fa4tJ5Rf?C `2` 6b Ci vh v Ұ KٔEHDTQI+hy*a{S "SIh(4_ER$8y}]Vb?+24?`)hv5v [mg5ZZv͸ZXv5g`ZNHq 61p0jg01H71 [`_']0 鎃D@'r j I0 ?IH>.xscf_'s_fV&(Yф_]c:!d #!9e #sEN(HNZ>'(kLf2WNUy%Yf4<Ua #`=U H P0jQE 6`ЈL+MQR`Y LD|Gml3Doh/2pD%}* p'O'rRYTcdLm@V3goJWgh \g_\gyuygKGg6gi  TezP41 fN&P:LL* ` :i7&oŠN s9W r'j4jW׺W|]IA3:> 'AY'RyAdiEc2T] Jiq$|m q 5lԀ:>T.# sӔvS,=ʈ|D]ɱg{*D1@Jmp-)4T)УVT'Rs:ukbcUZj}ǔȍGk(sXZ4ZTgOwOGumpH1`TagÚToK}Z3Fggih P T X iM`Sd*[瀀IdR )=Zuj( zK19~KÔBV$zTr^BJq q=P+VpfJ|@ (H] A\]3$QuʨK2=msKL!h J՜֒Ai#p v=ɣgU Cpl旝` Y9 *7te^1q1099%ڢhk}2`[p- {L{9m7||{ ppp!W7m+ȡ7!RD ȍ f2U] >!#)dy> ڛG 5zP& c n RF1>ģ@ &ܶN]w9qa{QSUMRD`iL`?e !0-^2L:e ]cl d9T~ŁRu.y˵ Ćҫ *F:l 5mVF "nI |L,Lq*\6 ^E^@ dp(<g'f47hsC4ܿ!D̦RTY&نd8hSN K =o I'k Dck .\H"jU$\qՁbϚE3v`.SL5p[g`wqGjb0OZeҤ*?7t[ݭ[nb#[v6f[om (ɑc.nM3b?V:OF5U_l((* EASx0 鰡GGQ<_|_cjFkrsL|kǚ#t($5ZKL2rʁ.d D)h"+bqҊ0˴0,L64I:3p27d́ B"G eGJ(ltM'H b)iԓFgOK5'*OtH5B@p \aiڲa;Ck-*r"V.م2L2ɂe*,B,.4AF#ic^[n 4b\b-֍贑Cs埏b\ch5iăc=]kfӯoh^^*:i~pC*, h6ê=ZkqŁ\[Fnqc^l{."Q$3i2IJt | +j ũ̻4AS9d3;%̈tSE J'*H. 򒡋*DvJ]HRK`L3DYT.\ՁU>uĄc5ᩆ^X#7|O=)Roسr РmQe,m X-e }Ak bh*h)Ȑ2LE/׌ Uկ4 [pӐCF@rG;dCxh1,c#(,&1'8;deqYy: =yOs0I#8P3P7)zD 0!66ak^,4HD$Z\ hE-j۔$ɴ $Gi""IBWS 1Ghy9FHC.0i)M}.'+| R)'R8&c& 8Q8!]~8rPb;2  y ׾L]zǽ9{[ |./opɪIt}RD$-1+jW+/dܲ&|?/j ^V@"m҄]b A^)y2+ \B& ! 9ءaXG9*r`VsU脕! dHmCF y-@f|̬-̀@@ 4@lbįAV]ie7(QZ5u\ ڶeQX~d2?|I0h/nClޒ@D!3!.vDž,!XwCИء1?`}T/{5yw<" #JݪYQֆAЛB"?l`h‘$c;<(4I,ó7X7DI,ȆIȆ~r1As0$ijPH$`'2; Y(He'YZiIHUI:W0[sXSyAb:U0(X z*XA麮ip!C 77T11,Ѓk(07^@x(; $۠ڮZ ay=yY੅!`ƔҵE a?S)b`Gó@=_UN;@D(ٞ`:OqKC5h'|bWIi3EcƂVDX!(΂8K77 "ʊ(!sJ@'èbd±h Ƈ 0?ksظFX74Ђ@,ʪ>tO ݘ>8]G]GܩK2.@ʺq;h ..8#@JBBcGk!@;*ܐǰʴ?CnTI3x2 ) hK@0csс\ҌHx-0mG9S(2?Ӂp)?@(Xm(8R;MD%H@Է\qy:XMȬ77j(8d챱K8:Y;fMrȀkAÈHClvPʪöWaCkOY1j K8_W؉V,8[ Јv6l2 R@A@җWs1ȴ7ƠZPFϿ8PЩ) T˩BHjz8BCG7C4;xF???2@4=7[Y.U]7K0U1 =D XE5s4S_?=y]#?h4ߣ!{ IEI ɐ)X 0ewAvG$y1X\K+\/G`EL%L%GpD9\BSХ0nT.s؆G:S/H{٭BMQ@!<ucXΝw6\8U{11:HCҜ071hDS]QI|7 SLE=D zKӊۊՈkEvAF `A6͉@,pXq㻩E*;_ў;0S @l\,8*94r4p4JqZ-YI6Ec ۜ 3Ԃ1h$ eSKЂT]1, H#D˿0>q|BE?bcǗ5{\ț㛜d߃dII:fWTX̸7|ӧBSXG9),]TLm0]'9FmTY0 RqӦ8EL;U B8|z Ӛ VU:aD8;DK穫d8&o.eHd kce֌;=֜7XΛ8VDh7 sHߩߜۉ1sX&AAO`L05W" < bdE,J˩>CFAQԵi]Hxv[h{O&pm 4N'5@p(Tp(B^{8BO]Dv2QZ9_@%P \l~kҔ:~'d`EhC8|gH^XapP&$,Y>%8(8 8p2pM{V fŅ.U(87^`vŨK8T\hhd{ڔ*a1ŗ~i,7CvPX0~Q S~CgJ@BLLAA2-u s3UG -R _Ȇ$w#-c2z!ʴx$[.ӵ@a\3FK4IÆ١*#*ᐫji8;M܋G@%ݍu{J#[IuY{748Zjg>G@4@k4r628uva\Jp/=Emܖ LNs3S qߠ̷1AP`,L^$tk¬B%\&$,(@85\J46F40dڨ0| =2֓x)kyo>bgPkRϪO*+pmW4퐃Pg"Q獰z\s4X/>H4p!Hbx\vytE{B8.tF<qo6G_$ f!B>d( 䒥V-Kw/;gtÁW[y?D ~rţ,cdIF"ӥT:&]u00d!,Ch+URJd햙U)(qH5E&q/,Y~R5f1 ,N;i.\p94hlIy?I-;nt5jz6G ˞_NsC4h$sYn\mj`iDNȐ~2\&*HA"Im!#A YqL((&r4hh$B 6`?ؐӣ6=I6HBIr#8P%9<hSΖN:^f%@٤QR&)!McmI?xډc&9u43 ^HPl51m:3ߦ:"Jg2Ae?/*D'"PhatF4M0O*$KdL:5"w-"Im{T3x[G'iLUFG2#̰IAnK 3˾9pZ%(/``5pP #?/pdbV[h OlYYiQSܹ-lPZuhZRZp4)TG&_GktaM5dY-jM٬P$C$KgnA,h=E< K@Kd/adkrTx-0'C $s"(*'C9 6r5hn&Mb94?͍?&xH٦{ơ04AH@2=m29xbhh+C̣z(B i)^|_{D ҇>#TrAZPIJbD ڢԧJM!.&M !I 2N HAU?fHÇK\8DV62p+ "B-9(CD#Т#fETPF$k_({+J!;} xfQB8%P qBU\fSxf2gf,9#cD;E[f2JDqad(Ho"KBT|Yچ)aoHՔ58Źz2# ${29j*bK $R(Q{HntCSwj'=hQjT)S@'҉ MTx,G}sJFؘldndIՆqF3 &* Cjlf lې$fAWVSAo};+ RM"A]WJ6'@Ap[L%T 9p?.AK3@`-p&1r`DB"sn(,Iы9Ĭd Z8gf;itE=zb2!,DB@H$d8Cf")6Y/hAqLJƪ  8B%@bi^@@|_o#D.?L¸bI-AaAф9VR%T Q^I9`lqG΋ _ՇUYT8em W|@j ,1,XXT>Dy94%rfk8 4zE%qTY:yfe-l%B,аCJ]x?X8fʯ*E6PATA#uLΌj#'&z"fٹӮ*KF49j١B1VK FxADLfׁ]'v}W` B5$:19x;;H/GmITJ#X*E)BHr 9x++ǁG C_+ )ʩRHZ62| 0pxyS}DUZ`U$9O6 XЩv 5p؃ A!KN4FA&'hENE0GOQP{[O=qܲBeYemٛ ZۣYaEQBmmu䕞V!Lۺձm)] #!!2A 4iVF\M`&_|MըbveC)>&'k 1P)HNM#MǗy)CTHOd*KPA2t2(-Ǭ֠}'l? t5܁)`Y5SԈӊ0+K0#:E q@ *Bx%.kdCy>nV)\  <4XCO]Ue F.b4M} pdYJ 4R H!AP'l~49s.CDxw 0/XI-9d!_y dё񾤖XUۺM_^[Z[TֽEG 8EA.,FeBAnQi 5o'~uk%'nVGr/*opDR`r (]#|m1abn,#U` #e(Q큒EWq1uvNlQ%@d_5tO/VWd.ƅR')fȠl?L,uy90v}N)3Ktsj5B|T"DAThf5H9=BTTIJq pMO0n{h,Dz0Mƛ,/a!:؂X|0QLo #ۼ]EϹbKWH^nwxו TuDna af odG@BTm_fŒ1VIDZȢ1P A0ET*LCz"qb&(t%[Id(O&@ Ƃ%mDlɆՐȒH"ɹ~Ȣ:ImIQDs"k' QD34QCa|BF=3E% /4˒_< fUO,HP>[ 80XK5 LӓO.љk0(d+SA @(\Pl~Kd́**o˘e:moz}vfZ.3#FP"12%uYxJ(|73:#sS| Ewޙ?Z\%DB _b6>"jxx{ړD^cD{_?+$J*&2!M$,+'<CO wEuWUаZrDP5Dqʻ 0x,P  a_WKP)0Ul,?$~xAĀѝHd4iPDԱ;"r3=\rᶻAAL)n2Шrh(z4Mq/c)s\ܦ$ѨDIaɑ$rI]EBd("ГjWQ6,tPPEM&7yIzTy t@ < d PyۓJU> s2`EnuN{2OQj$ >*`uNmUB$H+V0Q!Ү\K<-p)ENxI|:X +>0u[1aģ(HxIh*V@iA2@Qcch"UH6wK`"M &0iXA´Lc1%hԵ.YI%+FIJY79Xd#+ $t.5G61Sr>k$0ɪs#g.YP)0#U"O*UKAg +|+V ,r%6CFa_a<)x(@ԬK`n{=HȨ,kY;? ;Rr9>֡PKp4:l`*|R *RRYЭ/_7/|cc~m~[y?*ݨL[bV"tKl3 c^=(jJaH Bh⒌ǶkR#8T#ih9=k$Ⰾ$b)&f'jc`n BSN I ^A: P w@ M.> b1,*L&-(H ?woZȥzh@ zA v`0{^l pz> *( " "tB'&N n F|8(zV|&KV%jqѐͪg 4o "a8dRfd$`D~^>^;$J >h)lh B)," "Qm:d+L B#ޯ(ne(ѠC,J:~g&$G2 U%UTEZHUa҉ ";z'&u8 whg$9cÖcj p !v,`| -A ]L$HvY~ <:C{lpm܆$bDz%"BZZ 2C!!3FSV,qŮ0@bgհ6'< HjO /~n4lrLLAap|qʸYE7g,B g}pEja<Ez;^"9)r c&DH19>C@ $M,$PGk~%ƦX)t;*i$C` MC# #KF@-k  B(!njI\6IAv,"nK6)^xZ4 zJN¤JԎL_>c)&}c(KkrcV_: 00Lok;4d> J0u?.qeA5(h%g֢4 hψ܌hamc# d%+*hGki+0g\,U+H`)Bh69vpb2RK8X /\҅@ =N"KV5B Z7jdU"7U#n6y%4P"Z馮uY5Ţ_Mb'&H h luQ2 O54Vb;1r0JI$jYƤP&RD`Lp*#2)ڄei;DJV^<n,£>VG} <W #fG-XcgfjڶQI^BfCUB4Hʯ/k9b8:?eCPCXo\Z4hh4 E"&A,CK6֒"bwB>I(bƎjg)PV(LD{-FtKcJ >yO"6"υA@1Ln 3wUN ]u$xfW"Ρ4zW%wXQڐ5,7}%|W Y|]75NdR$ESLDx Yh*v<-xΌ_ CEE&".B#HBaWDaAXZV)l/{Xk$heBeH%4@@4&-RR t.r .0 L4L4tPGe "-p^pra/&v0}:؎u*(*ԴbmA),'o;,`ֶ;dnS>KwȢA(hf:vn9r;t@LZ"[Fi@(f#!bPy3lffRbKb9pj3iDHފ ᗋ5%b`ֲ ;k`UwV#xy7z9S1z+ŹW&wr+w9Y- mQ9X78 XEҌM^y*x6ubdɮ#"f m7ge&^@8XJj<X蓲у,d_GF)CnTBr ,Jė-R@$A Gb3`CXŋZԣ:Jx榹&&/[9NuvHf,%P^)eMȔ[>fAstċI -;8Ckأ(G?jNpxbhփ(æ''u]ؼlz;0(":CH P aZ#DȪ*)BI#:Cƾ2} $a{-}Tww+˛@y9V5y72u0RNJU|j)oYkEŢZϰD^%y$ل9"*Y?=q'D-XR"#4>#-@ƹ4=~rm`#Tɑub++ :ң7LʐFHIp >G)*<\=و9UL'bxFub!'+&ktuLk(+0*ڳ%nҹp%"[-[@AcV`ћye23y (@P`a͚8#JEqcH($*,CI((eȀd"\?(9&ed #_ѠEQd8ICU#tk'%dV*UBA󦓖:x3Z'2(Q$ʔuS?ԙDm/ޗxY5#f6fL3@?5-iCw*2*ՙ=Z MY oW|eaw(zHuvڅKo5K]bG3o0`@"U,2t~ Z\N{92K%!ItH:^T,Tb!tN2ceX5*D:G"䑈D"cRڏXW\zb`E$BB"E8E&bE?awG/?s(1?SՐh >(Zã1G 0@@tO |JJ f6B s Jdb )F?đ˘{.GlvHQ0?eL']P@Q$T%,:nB JgUW kzp&,7 '/VU2yq:'`d jcZHr$R[*64 kZk$ݑ ?tJgV vU6uza=vuY.9]M<?%U ~Yi\umaђl.#c*G"8ETlu>K"2pZXUhQdF̑f*eN4ە^coWF%M+AJB * > T?ArCv`[ #|7‘c$ɈF @QR."C6-]VM5r(\eGX2H Z! e8A O4"Z&lm,`XX1B 3@imw@Xv@e4k ۤfy bggC4"Yb H{&u򭖐/ybCʨ%/aJC'ه*# ٪"͒'3sD8A%NS!єo}`%$(Ts ʈ:,."c".G$^TP$`JQz"j';z:*# N*AP%*4 @Ôo6CNJ|+ KA>d|Z?‡0JQ>NY`@U5#tF:1N蠪6R@Y퀁 t' Fe"MN@'y$ hMRA((ZF@ 1sn.YQ` D!Li;O륫 %E"g2BF1p~ƪEzAQ'BG"2F0-59qӚ֨5YlR6npVl8dC!"y]b6?#T#0 H'AI1eK.#Oh<& \ 1B"0:ґ}Soh} H3#RFQ(C7bl V91h0]=+R*ᨡ2k<y@bW\u#:iCșhHh\Ѷcf%) V(E)AaɃxғ0O쀖 0*2Ve^Ts_`<5s)( D6dh5D @ n6o~368!d8N!@4-) @ƑG0q Bf`, c5B*J.n[~` L.& Sn:?0+  t K}e.Pҁ_X$u8biQ %DBqC!YK0 3s Ġ@ P`\G3dPPgY0@2Z` uqMT؄nE[$E5qI]d6.TzDcz#qsX$  Ǚ7O%%viYS2GyxHWGlcO`OY#4c5v3 V1?f5{}ɉM+gG"21!8 b" 19axO&&ߤMF"5  ; R)"#%Rl拼8,ۨi"t<`"A RTjiv}g=!x}gvd`Qe  6 I;`yG ea ,C(u4Y-Za-QkGdDN6#NCB$Q6}cw[SF=ZNїo` .Xo'(ЕPHZapkɖ;@`+ cІkx2ɑMr$ 4@{q$A]2w1C7wPOH]z' %J%9Q WaG YnCLQJ7Z!O`vr:aJ#ފ;2"q, U+ M&9.:M,aYAaIei79Ȟ:RUx KxtğSG(&(&۸A#AgN&,`xStzA}2 ! !&1#C:g 3yDh7Y]6GZ@hp>'C^[W tNzrXWDDJ;:aPH!FMY!(+3Uo@ A$i:q)`Y~6 ut1%:oH$R2N@Sե4޷ _PExu$UyOڬ%s7cAL:gOx\j6%;d m/꾅A1̔9VA'e "Fb9CB'{FATUG() {+RzPU+Jʯ*T:!RK(ə²)Qэ#PYyZD۠js,F-#A;bmuV"7.LD:/r;2T  P:A ɑV x٠] =wgp;عu7xu!7&aQ &V p31\VDp[hrY`xeik J#^ Y;6'Eؼ? >w{3^z(_ ;]ͫu0ISȩn]v4;+TK+f`;L:`Dsks!_f61~1atFdr,UJx 'A uf#'\C(5(Sz +(gR: )U k>,|++Rd7&Ƴ8gxD`bA,<3JS jhUҳU _Kq. m0stP* q ~ԖC l,׀Z`ػ[ͥQv_p|Ж\[uAɇDp7ʜ (CA;~$cߒ1mZ6dU@#7>YGOץ׭O+$F2M2U_Y:':2X JCY1:#1wZ/( 'ʒ9&}'9& 8 .j W5iS%SSh(XU..<y6/9?Rrh-|?>x(S>()` D9cR&Lz&RSԜ|-BZ%PP)"V!rG_K,KWaSK- f,=svGliƁlЗfG^!\˽[}30cpTeY. wEmD0AkfE[_3QT<%5wrV1[UN n㙲 FGϭ2@g.`ƺދLec[`r2[1߿:~@8LpID(P @2Q2xb%G$Lt_2ʔe")qT L=gA4 (H ,&=OlqVkcVI3 %dW?Ԩߏ!"3aׁ}Čc.*%.\ O g I*t_~2S33##?RTRa pBD!3@PRiT?Q )Dɸ ܋Zb!@H $FD<) J'z ,H"D,T&tP$DAgC >I `:3MA̋rpb)A8,>T"(+H'* "ɥJr䩧JsDDt5́\1u2(Yz+ j;*쭗xJ^k.P 5|pk쪁֊,\ C6w"sXcm .謴85֘M3i(mgi3rHʅ~Ʉt (;@n1?Ԓ,a\}0^/A 'Ͽ @ OF;$I%_lbTQEWP .," -jᢖZXeIɇ*[[ (2l/ 3fb{M'V7MDe~_:TDt=x>UlK{|F_>5VPVjk x:+D w І C"LwGp&7uLQd'ȫɶD>䞛.2a(0I`d'՚IG<O`&Є&%bD%/K0+" q2Qe4dt c1Cl3#K,pDDL+2\9]ϥa IeA BZ*¶iZd͘|WL@O Q"Ã$=gE9:np (TչGnZE# !\s"D[@͓)U$xNm5t[eCYYzFYئXuNIȓ< rpPݴz?VzvbVR?Ї*QhJXo[-YIB>XTN␇* Q,)jBt I"rDӄ%|' d 72KcrKpt-)U,8e` M@ 6p``5F}t,bGEq1zDm$`8q]mX`LeAI/ȵf s` `Ep,7S:!DUWs"(UOX9^H݁Q2|pKK Z6 OFfC @$H?Q&tMkRG,ByM?\ ^ZbHdW|ӟ@LfSY(@WZK󏔤)C"Dt[VEc5=!NV'/X~h?`aTJdk2OK9;kGܴ;UTqI~L[+%v3 8? Mpko T̤@w`TΙE'yN%;Gʽ7ɉ-B2Oy@>@$s{h U͆|G0_v+SuZM%I_g6)!o40juwrvJuY@ք-RHX.GnMdWP--G mjv-m^3h &0.< il`F+x1? APa(i*-qFaAG֑`HE8<+ASB)4B8JяykY яk ph=vX|HXr=`'W惢2 3 Z1wY5"\P5 (C%9+JZ)ߋ(!Oj6h&[P;ދ3pN,K]4ؼ@@8 4AqBq8q*ٚ9sDR+Ma;@:(ȗp\ p{.<01PDH?X`6HERඍ1a;È *飐 hP 2@<"1=Ci "b_z+̯ 9e2qhm@X8ʂ`%WZ*⏾YTȯ?#&l!3<$#&.I4K:P ,'+(Y0! 5{P\̅"88E} p@Klz2eR;;0j$-Az m1DkKɕ b=<=!!V !dXь^=GۗJ(x𤏘H;Ҵ5{baa 0 &H1(b++bY 87##-?щ?m # ܭ={G%I@V*En**mUT\B\qՕ\%=X*^a`y!`$l\Aq#l";KSTnHi܋ dh[ hvNے"1V[0 ! Gg G$h҄ߥVX /A8գagxEUV( %<4)ZmD9>nZz6i9lIaA?y%2a46i 1-9N _,vԺu)2pK 'o{G0j#uYW?($.(+b%HE(ډZͶ7VQ6:P @:1Ocj#)DIBI)]j>'ۋk_*-8/ݩhƎf1^l0T n{H7hˆ?]T>,WD]nBv^W8$R`qcD~$r. `rYt_ q^Vڰ}Վ58 ӌ BRp^MR"p{%{柯Rs> 1ȩB݌$P Wlf4lfm(r&j:wAD8Gǁ?@ + ȭ,bcP hkŘ?Z#?̢;oDRZ;fb)d*=" r%*t2dXFFw\$\Aiεq8jy1WzYH}5i')`)ߧ}f!V:Z KI?dZN$ n0q/ٖXP3H--q 檙$B*qG(驙6?=]wO`+AՊJ@Tf BȡuH_I&4M܎Q:% dAA QIIF.WAQY%,9h%mqW2le?fAÄ\Wxb/u\YcMʗeAyfDFdfZ3;YΤN8*m 4q [c?@4tpsQFNcK{ XYpr/6GI㢽ISgpm'`Mf BhvEKi'b ߂Htf>E]8*3,#٣iD8$dK/^Wɟ`Чf-jLVJfcCi| ,QHQvzPʤfbD5f Y>@ei "E VgyDaBHd!*:-VID"ő$M(Q*u8[Z ({`eps0{u^@G#,rbU)jR K[t+% X␫HY;R:PB/JZ1LhN30L6dlf9m8`rM͓n:#R(JUf75/Kp O1#̔Q"\M\:ם I$"$;!s.?VDbݸ:+Ny3%lŎGI64l '|M!xSޗװ6t ֹ,\@II&e4I` { 2Y,i B^ѐzS?j0">Qw@vR3UN,TURgy+^HD!GSj ς9"&d$ $C\nv&.iqX`g $EJKf26`0N1ebhJ0 -/'Ee uLRzuxR$~+ >6Əg@E20{!oF:7i!KY(@(R':0 sBт0"`,!pӬʌ$aLs2W `҂ @8>AiJ~7to?~;J{"n%zd$p"!,җ#XgY0ݓ%N;!q$f܆"t d䪵4U.H@Xj g=H RԡϞ+Ě@75JȰr FDYg@e5X_W³-*ɾX-8˴Yz)^^b6kE:VT1(6 q) Q"$\aZҒ.Q h<,z=яf W3ٌj4Cpw956h*P\G)R&$ҧI?_P[x6mp(Ca @Z,B:K'MuoY]¤rKAP4Q$8y焈6,k9W6%2@IF:I xԩ,̀DR;XcraNPAg#g1}ATPLԝWA?̣\D>@?$@_=fŻhMW$B <J\ECZ( q̽A#mI$EPRT+| ӐR+)aŶ5?D|ݠ h5 5a RU[4IH^-WEZVFYVQ!~(3iϑ)Q8~P<ĘUINMMظJjI=-cA= E^B!B1L[(Ty D؀mS: ȑ:*\$d\MՔD[n} 0BOyMaJ^ 400>g2f/鵀u/c0w2`U1@W,V`e`^*QQ<(d@h@$6hfg* "ʢXla 6J,h WY ,#K^ KEi?u M*pքB)DYZO]Xu4UW>8me\H8^ V ?d Y̛)ZY@Gl )VX#Kݝ4TS KE!U(=_"#WQY)[',*b$脸@6jT !6 }JN8eє)+xxgO #́1r.8GTk2>1&ck2PDTuVbl@x^%P46FE_͂^fP_f}rb%\dAD7@$TDAX =Z( A ̆ lE lŴ"vj9B`T_#?0ʼxisgmh$)w1f "yI(t$:L"`HIuI-}QݟE <%*gj[%lE QV\X 9:~E YbDԩiM䊪eE YSbܥI݋@%j YZĤϦ&nȌ\SȪgA)DAXhe+> b䔺ڙXJ(tiss8GsXgffoFYVgЏ`FL OʩU], O#c@E,^VEp]tEpMMVY>߯QQcIa:fjdP\#E(hcFrMtU()* G @$Wvۅ`]2ė4XD1'8&V##BXj!a$PER=?L [`%[#ܣR!zʝQ8̹.W훲i֧6v̮F è6_lF$ J "#$&xGHؤrTs b0 VᢱoUUPp6+I*Jo:_ CeQMXf~ .#(h@˰Ej8rL$\uyAw )N&pЁ*eF55;Oc$.%~n1WdD*|bѦbQNL`2 F&%[`DYQ_6TP%%\N& w!#{Wc)iA"l[j)jݠɮ|.ŧ6-kh;$3^~ffV!GlQ!/iyꖰ2 F}Mڧ"jM+) iyY֬=GxMuhEs?_ KpQB7~KTEbkPE_\nwL DPTCSDkGAVBf|xe$L8'%%$qEh4#iF$uA-y 0xz3ySmz1 2Z5,R"gjVud#Zey2X6BJɹx]y#jJ_\E:_Oc x_ z%_Kĸjgcc,j2QŦzo6VAؐ-\hĺlfa ©XVVT!"̫ѪJuS&adnug4PneJ5Vr*G:#;c z/sFHo0Gtu^#> [ta9@JHD#8_E`48HAһHsD(Ig [YʫuEnFWYx[0۰| [x Ay WIE[XڤE<@؇`AkZB\q &RY `!Fgɨc2rL9JD‘@7q6Sb@t$  h E^"BU9Т%-2][ ޼2"GALDcǍńXbEZмY`^ւb5f?EVmA֛qQX[H$<>^2r㍉tgf6ȣ({vwvo;`߆>eî10DN9+'Lg ^QFgFvHCP @+⟨)@JTq 1jA %x8l8H'q(Z.E#5M/3pm^8M>rM=4O3S EeSE@!%K襗d`B FzԳ^(2G`.>Xi¦:Ipp*XW\Y:`:bk@rdJ/萓%(800Ӭ˚U;"<Д|e`ZNTx5hQaϒ|,(bk+αPN@%^Ÿ6느Yfr)"ykK=ʣ=O~ƈFc׸:Lku;+`%2<T"D#!PVl1&Wq [P$3,Z#K5M6 㴁׬/Etn{6/mB$ԇ9-BK<} xa!,3-Y2E^yX#M+Z(_զ&զ x'<~ d '?Yh)̸I0R!-/l c,,*L 8E&Lq ,`ᘞʴ')L i6p@ù!M3DV%P8Ɋ4ǰ8k0D &Q`S~*B,cŁes5ꈱIBּ0E ccJ$ %)IHrLd9p? $!`YF$ GQ ̉qh'g-OSJ=:Rvfa)M8Y֮Cx^L30է6)A1^5M$ D+])>& Oԇ,?P~HpKa@W? `_)`$0j|>(ސ6j6͐."rJRw =(Zt#<@zҶc?z쇒q65㜑<-&ƙ*=U3 ePlҳT0e-zH2>p5ca0:dYBù>ZN s0j@Ȃh*zs@HHG +IbI;NM.JK )͞Dx쓟v`ԪqZKI\c||IcVv,u(D aY l'JޜQN(Y{4ܹO2T?) S)S?@Jl2A`yRƢhŨfx0xq4_$N;n;KAJhL$>UږmG:z0Vtba`1 eoMjl1֦48#^AQJYX[/UlI?DFͬgj\Id| XVFXBۑp"֯~v>Ťq`;v`YA4:6 v ޚn7ג!r[H[m]e?%Q_Xk ”&杫K+Aq+gYk`<dasʊVMOv^˺/@E@/~QATwZ-RPӚ4.H-sdi3x4W8rR6 ʭθe\YPé,zm 25|:̣JN]9i.e3QP0(0 X0{;fIP63ͶG%3wDI3T[?ldi5Y5XG;Zf$q4]zQӟDxWί&Oꓳ"1i"a֐#7D,cLcIz&^A)nx'G~- |PDK N>$PM 4CLD2Pf-DڰHHj(InL&L I/'$P"M ! .< 3.rǨ9*%Xbۆ#V@''|G}i)Ȑ`럈\D^`ge0Rb\%_<c>͹. 8K-dz6! ,jgHz --p*K z-$ Rnmx PK-n.HB$"֊^, Z, %N0yZvm0=/ǒ l H8裞$4%~O#K#N.W('I6%YB PAl@@/f$GZCf1#!^_c7D&N.˴diZ2f INPvP[&vP}Z f *gp ՚2le&(/.#J=zH!TI$4&LIjD,t JT_%}RO@#$l#)t0E)k&HFF؋Ȱ* p..ю _ǯxr+ڦJm.>$'&3KZfG SE t ʠ1NT N/5iOsFJ$S>BJQUdq8p|-6]A}·g2G+ ,eC&!94$DH%nGVGqE(m%XI Q؄b-)D 0|/ԗs Unlike FreeImage, SAIL doesn't allow compiling external dependencies into a single library and I have no plans to allow that. You can still achieve that using external build systems like `vcpkg`. If you prefer compiling SAIL manually as a shared library, you can compile it against the static vcpkg triplet like `x64-windows-static`. For example: ``` # Install vcpkg using the official installation guide into your preferred path. # For example, into F:/vcpkg. # Install SAIL in vcpkg just to install all its dependencies # as static libs. We'll compile SAIL manually later. cd F:/vcpkg/ vcpkg install sail[all] --triplet x64-windows-static # Go to the cloned SAIL sources cd F:/sail/ # Compile SAIL against vcpkg mkdir build cd build cmake -DSAIL_COMBINE_CODECS=ON -DCMAKE_TOOLCHAIN_FILE=F:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static .. cmake --build . --config Release ``` This way all codecs and their dependencies will be compiled into `sail-codecs.dll`. ## Are there any C/C++ examples? Yes. See the `examples` directory in the source tree. ## Are there any bindings to other programming languages? Yes. Currently SAIL supports the following bindings: 1. C++ Pull requests to support more programming languages are highly welcomed. ## How many image formats are you going to implement? Ksquirrel-libs supported around 60 image formats. I don't plan to port all of them. However, the most popular image formats will be definitely ported from ksquirrel-libs. ## I have problems with include paths with vcpkg without CMake Add `VcpkgInstalledDir/include/sail` to the project include path. See https://learn.microsoft.com/en-us/vcpkg/users/buildsystems/msbuild-integration. ## How to embed SAIL as a subproject? Embedding SAIL is not fully supported. SAIL alters global CMake variables like `CMAKE_C_FLAGS`, so embedding it is not recommended. One of the possible options is to build SAIL separately. ## Does SAIL support big-endian platforms? No. Currently SAIL supports little-endian platforms only. ## I have questions, issues, or proposals Opening a GitHub [issue](https://github.com/HappySeaFox/sail/issues) is the preferred way of communicating and solving problems. Pull requests are always welcomed. sail-0.9.8/FORMATS.md000066400000000000000000000331261475535176100141400ustar00rootroot00000000000000
N Image Format Can Load Cannot Load Can Save Cannot Save Dependencies
1 APNG Grayscale: 1-bit, 2-bit, 4-bit, 8-bit, 16-bit. Indexed: 1-bit, 2-bit, 4-bit, 8-bit. RGB: 24-bit, 48-bit. RGBA: 32-bit, 64-bit.

Content: Static, Animated, Meta data, ICC profiles.

Special properties: Key: "apng-frames". Description: Number of frames in the animation. Possible values: unsigned int. Key: "apng-plays". Description: Number of plays of the animation. Possible values: unsigned int.
Blend operations with pixel formats other than BPP16-GRAYSCALE-ALPHA, BPP32-GRAYSCALE-ALPHA, BPP32-RGBA, BPP64-RGBA. Unsupported - libpng+APNG patch
2 AVIF YUV: 8-bit, 10-bit, 12-bit.

Content: Static, Animated, Meta data, ICC profiles.
- Unsupported - libavif
3 BMP Indexed: 1-bit, 4-bit, 8-bit (DIB only). RGB: 16-bit, 24-bit, 32-bit.

Compressions: NONE, RLE4, RLE8.

BMP Versions: V1 (DDB), V2, V3, V4, V5.

Content: Static, Meta data, ICC profiles.
Indexed: 8-bit (in DDB images).

Compressions: ALPHABITFIELDS, BITFIELDS, CMYK, CMYK-RLE4, CMYK-RLE8, JPEG, PNG.

BMP Versions: OS/2.
Unsupported - -
4 GIF Indexed: 8-bit.

Content: Static, Animated, Meta data.
- Unsupported - giflib
5 ICO and CUR Bit depth: Same to BMP.

Content: Static, Multi-paged.

Special properties: Key: "cur-hotspot-x". Description: X coordinate of the hotspot. Possible values: unsigned int. Key: "cur-hotspot-y". Description: Y coordinate of the hotspot. Possible values: unsigned int.
PNG contained images Unsupported - -
6 JPEG Grayscale: 8-bit. RGB: 565 16-bit[1], 24-bit. BGR:[1] 24-bit. YCbCr: 24-bit. RGBA:[1] 32-bit. BGRA:[1] 32-bit. ARGB:[1] 32-bit. ABGR:[1] 32-bit. CMYK: 32-bit. YCCK: 32-bit.

Content: Static, Meta data, ICC profiles.
- Grayscale: 8-bit. RGB: 565 16-bit[1], 24-bit. BGR:[1] 24-bit. YCbCr: 24-bit. RGBA:[1] 32-bit. BGRA:[1] 32-bit. ARGB:[1] 32-bit. ABGR:[1] 32-bit. CMYK: 32-bit. YCCK: 32-bit.

Content: Static, Meta data, ICC profiles.

Tuning: Key: "jpeg-dct-method". Description: JPEG DCT method. Possible values: "slow", "fast", "float".
Key: "jpeg-optimize-coding". Description: Compute optimal Huffman tables. Possible values: true or false.
Key: "jpeg-smoothing-factor". Description: Smooth the image. Possible values: Unsigned int range from 1U to 100U.
See the libjpeg docs for more.
- libjpeg or libjpeg-turbo
7 JPEG 2000 Grayscale: 8-bit, 16-bit. RGB: 24-bit, 48-bit. YCbCr: 24-bit. RGBA: 32-bit, 64-bit.

Content: Static.
Pixel formats: YCCK, CMYK, LAB, XYZ, and other.

Content: Meta data, ICC profiles, images with non-zero position, images with bits per channel greater than 16.
Unsupported - jasper
8 JPEG XL Grayscale: 8-bit, 16-bit. RGB: 24-bit, 48-bit. RGBA: 32-bit, 64-bit. CMYK: 32-bit, 64-bit. CMYKA: 40-bit, 80-bit.

Content: Static, Animated, Meta data, ICC profiles.

Special properties: Key: "jpegxl-bits-per-sample". Possible values: unsigned int.
Key: "jpegxl-exponent-bits-per-sample". Possible values: unsigned int.
Key: "jpegxl-intensity-target". Possible values: float.
Key: "jpegxl-min-nits". Possible values: float.
Key: "jpegxl-relative-to-max-display". Possible values: bool.
Key: "jpegxl-linear-below". Possible values: float.
Key: "jpegxl-color-channels". Possible values: unsigned int.
Key: "jpegxl-extra-channels". Possible values: unsigned int.
Key: "jpegxl-alpha-bits". Possible values: unsigned int.
Key: "jpegxl-intrinsic-width". Possible values: unsigned int.
Key: "jpegxl-intrinsic-height". Possible values: unsigned int.
See the JxlBasicInfo structure documentation in libjxl for more.
Wide color gamut data gets clipped. Unsupported - -
9 PCX Indexed: 1-bit, 4-bit, 8-bit. RGB: 24-bit. RGBA: 32-bit.

Content: Static.

Compressions: NONE[2], RLE.
- Unsupported - -
10 PNG Grayscale: 1-bit, 2-bit, 4-bit, 8-bit, 16-bit. Indexed: 1-bit, 2-bit, 4-bit, 8-bit. RGB: 24-bit, 48-bit. RGBA: 32-bit, 64-bit.

Content: Static, Meta data, ICC profiles.
- Grayscale: 1-bit, 2-bit, 4-bit, 8-bit, 16-bit. Indexed: 1-bit, 2-bit, 4-bit, 8-bit. RGB: 24-bit, 48-bit. RGBA: 32-bit, 64-bit.

Content: Static, Meta data, ICC profiles.

Tuning: Key: "png-filter". Description: PNG filters to apply. Possible values: "none", "sub", "up", "avg", "paeth". It's also possible to combine filters with ';' like that: "none;sub;paeth".
See the libpng docs for more.
- libpng
11 PNM Grayscale: 8-bit, 16-bit. Indexed: 1-bit. RGB: 24-bit, 48-bit.

Content: Static, Meta data.

Special properties: Key: "pnm-ascii". Description: True if the image pixels are encoded in ASCII mode. Possible values: bool.
- Unsupported - -
12 PSD Grayscale: 8-bit, 16-bit. Indexed: 1-bit, 8-bit. RGB: 24-bit, 48-bit. RGBA: 32-bit, 64-bit.

Compressions: NONE, RLE.

Content: Static (Preview Image Only).
Grayscale: 32-bit. RGB: 96-bit. RGBA: 128-bit. Pixel formats: Multichannel, Duotone, LAB.

Compressions: ZIP.

Content: Layers, masks, etc.
Unsupported - -
13 QOI RGB: 24-bit. RGBA: 32-bit.

Content: Static.
Linear color space. RGB: 24-bit. RGBA: 32-bit.

Content: Static.
Linear color space. -
14 SVG Bit depth: 32-bit.

Content: Static.

See resvg support table when compiled with resvg.
Content: Animated, Meta data, ICC profiles.

See resvg support table when compiled with resvg.
Unsupported - resvg or nanosvg
15 TGA Grayscale: 8-bit. Indexed: 8-bit. RGB: 24-bit. RGBA: 32-bit.

Content: Static, Meta data.
Content: Thumbnail images. Unsupported - -
16 TIFF Bit depth: 1-bit, 2-bit, 4-bit, 8-bit, 16-bit, 24-bit, 32-bit, 48-bit, 64-bit.

Compressions:[1] ADOBE-DEFLATE, CCITT-RLE, CCITT-RLEW, CCITT-T4, CCITT-T6, DCS, DEFLATE, IT-8BL, IT8-CTPAD, IT8-LW, IT8-MP, JBIG, JPEG, JPEG-2000, LERC, LZMA, LZW, NEXT, NONE, OJPEG, PACKBITS, PIXAR-FILM, PIXAR-LOG, SGI-LOG24, SGI-LOG, T43, T85, THUNDERSCAN, WEBP, ZSTD.

Content: Static, Multi-paged, Meta data, ICC profiles.
- RGBA: 32-bit.

Compressions:[1] ADOBE-DEFLATE, CCITT-RLE, CCITT-RLEW, CCITT-T4, CCITT-T6, DCS, DEFLATE, IT-8BL, IT8-CTPAD, IT8-LW, IT8-MP, JBIG, JPEG, JPEG-2000, LERC, LZMA, LZW, NEXT, NONE, OJPEG, PACKBITS, PIXAR-FILM, PIXAR-LOG, SGI-LOG24, SGI-LOG, T43, T85, THUNDERSCAN, WEBP, ZSTD.

Content: Static, Multi-paged, Meta data, ICC profiles.
- libtiff
17 WAL Indexed: 8-bit.

Content: Static, Multi-paged.
- Unsupported - -
18 WEBP Bit depth: 24-bit, 32-bit.

Content: Static, Animated, Meta data, ICC profiles.
- Unsupported - libwebp
19 XBM Bit depth: 1-bit.

Content: Static.

Specifications: X10, X11.
Content: Multi-paged, C-style /*...*/ comments. Unsupported - -
## References 1.
If supported by the underlying codec like libjpeg. 1. Even though uncompressed PCX files are not considered valid by the spec. sail-0.9.8/LICENSE.INIH.txt000066400000000000000000000027441475535176100150560ustar00rootroot00000000000000The "inih" library is distributed under the New BSD license: Copyright (c) 2009, Ben Hoyt All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Ben Hoyt nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY BEN HOYT ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BEN HOYT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.sail-0.9.8/LICENSE.MUNIT.txt000066400000000000000000000021221475535176100152110ustar00rootroot00000000000000µnit Testing Framework Copyright (c) 2013-2016 Evan Nemerson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. sail-0.9.8/LICENSE.txt000066400000000000000000000020641475535176100143230ustar00rootroot00000000000000The MIT License Copyright (c) 2020 Dmitry Baryshev Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. sail-0.9.8/README.md000066400000000000000000000265531475535176100137700ustar00rootroot00000000000000

Squirrel Abstract Image Library

The missing fast and easy-to-use image decoding library for humans (not for machines).

Travis Build Status Latest release Buy me a coffee

Target AudienceFeaturesImage FormatsGetting StartedFAQ

# SAIL is a format-agnostic cross-platform image decoding library providing rich APIs, from one-liners to complex use cases with custom I/O sources. It enables a client to load and save static, animated, multi-paged images along with their meta data and ICC profiles. :sailboat:

GIF Demo Screenshot

## Target audience - Image viewers - Game developers - Anyone who needs to load or save images in different image formats with a clean and comprehensive API ## Features overview - [x] Easy-to-use thread-safe C and C++ interfaces - [x] Versatile APIs: `junior`, `advanced`, `deep diver`, and `technical diver` - [x] Input/output: files, memory, custom I/O streams - [x] Load by file suffixes, paths, and [magic numbers](https://en.wikipedia.org/wiki/File_format#Magic_number) - [x] Save pixels as close as possible to the source - [x] Codec-specific tuning options like PNG filters. See [FORMATS](FORMATS.md) - [x] Meta data support: text comments, EXIF, ICC profiles - [x] Access to the image properties w/o decoding pixels (probing) - [x] Access to the source image properties - [x] Adding or updating image codecs with ease demonstrated by Intel \[[*](#intel)\] - [x] The best MIME icons in the computer industry :smile: \* One day Intel demonstrated the advantages of their [IPP](https://wikipedia.org/wiki/Integrated_Performance_Primitives) technology in speeding up decoding [JPEG](https://web.archive.org/web/20091009223918/http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-for-linux-optimizing-jpeg-coding-in-the-ksquirrel-application-with-intel-ipp) and [JPEG 2000](https://web.archive.org/web/20091009224048/http://software.intel.com/en-us/articles/performance-tools-for-software-developers-application-notes-intel-ipp-jpeg2000-and-jasper-in-ksquirrel) images with the help of [ksquirrel-libs](FAQ.md#how-old-is-sail), the predecessor of SAIL. ## Features NOT provided - [ ] Image editing capabilities (filtering, distortion, scaling, etc.) - [ ] Color space conversion functions - [ ] Color management functions (applying ICC profiles etc.) - [ ] EXIF rotation ## Supported image formats | N | Image format | Operations | Dependencies | | -- | --------------------------------------------------------------------| ------------- | ----------------- | | 1 | [APNG](https://wikipedia.org/wiki/APNG) | R | libpng+APNG patch | | 2 | [AVIF](https://wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVIF)) | R | libavif | | 3 | [BMP](https://wikipedia.org/wiki/BMP_file_format) | R | | | 4 | [GIF](https://wikipedia.org/wiki/GIF) | R | giflib | | .. | ... | | | | 6 | [JPEG](https://wikipedia.org/wiki/JPEG) | RW | libjpeg-turbo | | 7 | [JPEG 2000](https://wikipedia.org/wiki/JPEG_2000) | R | jasper | | 8 | [JPEG XL](https://wikipedia.org/wiki/JPEG_XL) | R | libjxl | | 9 | [PCX](https://wikipedia.org/wiki/PCX) | R | | | 10 | [PNG](https://wikipedia.org/wiki/Portable_Network_Graphics) | RW | libpng | | .. | ... | | | | 12 | [PSD](https://en.wikipedia.org/wiki/Adobe_Photoshop#File_format) | R | | | 13 | [QOI](http://qoiformat.org) | RW | | | 14 | [SVG](https://wikipedia.org/wiki/Scalable_Vector_Graphics) | R | resvg | | 15 | [TGA](https://wikipedia.org/wiki/Truevision_TGA) | R | | | 16 | [TIFF](https://wikipedia.org/wiki/TIFF) | RW | libtiff | | .. | ... | | | | 18 | [WEBP](https://wikipedia.org/wiki/WebP) | R | libwebp | | .. | ... | | | See the full list [here](FORMATS.md). Work to add more image formats is ongoing. ## Benchmarks

Benchmark

Time to load and output default pixels (without explicit conversion) was measured. See [BENCHMARKS](BENCHMARKS.md). ## Preferred installation method - Windows: [Conan](https://conan.io/center/recipes/sail), `vcpkg` - macOS: [brew](https://formulae.brew.sh/formula/libsail), [Conan](https://conan.io/center/recipes/sail), `vcpkg` - Linux: native packages if available, [Conan](https://conan.io/center/recipes/sail), `vcpkg` See [BUILDING](BUILDING.md). ## APIs overview SAIL provides four levels of APIs, depending on your needs. Let's have a quick look at the `junior` level. #### C: ```C struct sail_image *image; SAIL_TRY(sail_load_from_file(path, &image)); /* * Handle the image pixels here. * Use image->width, image->height, image->bytes_per_line, * image->pixel_format, and image->pixels for that. * * In particular, you can convert it to a different pixel format with functions * from libsail-manip. With sail_convert_image(), for example. */ sail_destroy_image(image); ``` #### C++: ```C++ sail::image image(path); // Handle the image and its pixels here. // Use image.width(), image.height(), image.bytes_per_line(), // image.pixel_format(), and image.pixels() for that. // // In particular, you can convert it to a different pixel format with image::convert(). ``` It's pretty easy, isn't it? :smile: See also [FAQ](FAQ.md). ## Programming languages **Programming language:** C11
**Bindings:** C++11 ## Competitors - [FreeImage](https://freeimage.sourceforge.io) - [DevIL](http://openil.sourceforge.net) - [SDL_Image](https://www.libsdl.org/projects/SDL_image) - [stb_image](https://github.com/nothings/stb) - [Boost.GIL](https://www.boost.org/doc/libs/1_68_0/libs/gil/doc/html/index.html) - [gdk-pixbuf](https://developer.gnome.org/gdk-pixbuf) - [imlib2](https://docs.enlightenment.org/api/imlib2/html) - [CImg](https://github.com/dtschump/CImg) - [WIC (Windows only)](https://docs.microsoft.com/en-us/windows/win32/wic/-wic-about-windows-imaging-codec) ## Differences from other image decoding libraries - Easily extensible with new image format plugins - Easy-to-use API providing expected business entities - images, palettes, pixels etc. - Access to source pixel data (supported by the most codecs) - Access to the image properties w/o decoding pixel data (probing) ## Have questions or issues? Opening a GitHub [issue](https://github.com/HappySeaFox/sail/issues) is the preferred way of communicating and solving problems. See [FAQ](FAQ.md) for more. ## Architecture overview SAIL is written in pure C11 w/o using any third-party libraries (except for codecs). It also provides bindings to C++. ### SAIL codecs SAIL codecs is the deepest level. This is a set of standalone, dynamically loaded codecs (SO on Linux and DLL on Windows). They implement actual decoding and encoding capabilities. End-users never work with codecs directly. They always use abstract, high-level APIs in `libsail` for that. Every codec is accompanied with a so called codec info (description) file which is just a plain text file. It describes what the codec can actually do: what pixel formats it can load and output, what compression types it supports, and more. By default, SAIL loads codecs on demand. To preload them, use `sail_init_with_flags(SAIL_FLAG_PRELOAD_CODECS)`. ### libsail-common libsail-common holds common data types (images, pixel formats, I/O abstractions etc.) and a small set of functions shared between SAIL codecs and the high-level APIs in `libsail`. ### libsail libsail is a feature-rich, high-level API. It provides comprehensive and lightweight interfaces to decode and encode images. End-users implementing C applications always work with libsail. ### libsail-manip libsail-manip is a collection of image manipulation functions. For example, conversion functions from one pixel format to another. ### libsail-c++ libsail-c++ is a C++ binding to libsail. End-users implementing C++ applications may choose between libsail and libsail-c++. Using libsail-c++ is always recommended, as it's much more simple to use in C++ applications. ## Building See [BUILDING](BUILDING.md). ## Philosophy Philosophy of SAIL is modularization and simplicity. Image codecs are architectured to be standalone dynamically loaded files. Any future hypothetical improvements will be implemented as separate client libraries. So a user is always able to choose what to use (i.e. to link against) and what not to use. ## Support If you like the project, please consider starring the repository. ## Author Dmitry Baryshev ## License Released under the MIT license. ``` Copyright (c) 2020-2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` sail-0.9.8/cmake/000077500000000000000000000000001475535176100135565ustar00rootroot00000000000000sail-0.9.8/cmake/JoinPaths.cmake000066400000000000000000000014571475535176100164660ustar00rootroot00000000000000# This module provides function for joining paths # known from most languages # # SPDX-License-Identifier: (MIT OR CC0-1.0) # Copyright 2020 Jan Tojnar # https://github.com/jtojnar/cmake-snips # # Modelled after Pythons os.path.join # https://docs.python.org/3.7/library/os.path.html#os.path.join # Windows not supported function(join_paths joined_path first_path_segment) set(temp_path "${first_path_segment}") foreach(current_segment IN LISTS ARGN) if(NOT ("${current_segment}" STREQUAL "")) if(IS_ABSOLUTE "${current_segment}") set(temp_path "${current_segment}") else() set(temp_path "${temp_path}/${current_segment}") endif() endif() endforeach() set(${joined_path} "${temp_path}" PARENT_SCOPE) endfunction() sail-0.9.8/cmake/sail_check_alignas.cmake000066400000000000000000000012511475535176100203420ustar00rootroot00000000000000# Intended to be included by SAIL. # function(sail_check_alignas) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/sail_check_alignas.c " int main(int argc, char *argv[]) { _Alignas(int) unsigned char data[4]; return 0; } ") message(STATUS "Performing Test _Alignas()") try_compile(SAIL_HAVE_ALIGNAS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/sail_check_alignas.c C_STANDARD 11 C_STANDARD_REQUIRED ON) if (SAIL_HAVE_ALIGNAS) message(STATUS "Performing Test _Alignas() - Success") else() message(STATUS "Performing Test _Alignas() - Failed") endif() endfunction() sail-0.9.8/cmake/sail_check_builtin_bswap.cmake000066400000000000000000000033361475535176100215740ustar00rootroot00000000000000# Intended to be included by SAIL. # function(sail_check_builtin_bswap) cmake_push_check_state(RESET) check_c_source_compiles( " int main(int argc, char *argv[]) { __builtin_bswap16(0); return 0; } " SAIL_HAVE_BUILTIN_BSWAP16 ) # This variable is used for displaying the test result with message() # in the main CMake file. # # The cache SAIL_HAVE_BUILTIN_BSWAP16 variable that is created by the test # has a value of 1 or an empty string which is not a user friendly value. # if (SAIL_HAVE_BUILTIN_BSWAP16) set(SAIL_HAVE_BUILTIN_BSWAP16_DISPLAY ON CACHE INTERNAL "") else() set(SAIL_HAVE_BUILTIN_BSWAP16_DISPLAY OFF CACHE INTERNAL "") endif() check_c_source_compiles( " int main(int argc, char *argv[]) { __builtin_bswap32(0); return 0; } " SAIL_HAVE_BUILTIN_BSWAP32 ) if (SAIL_HAVE_BUILTIN_BSWAP32) set(SAIL_HAVE_BUILTIN_BSWAP32_DISPLAY ON CACHE INTERNAL "") else() set(SAIL_HAVE_BUILTIN_BSWAP32_DISPLAY OFF CACHE INTERNAL "") endif() check_c_source_compiles( " int main(int argc, char *argv[]) { __builtin_bswap64(0); return 0; } " SAIL_HAVE_BUILTIN_BSWAP64 ) if (SAIL_HAVE_BUILTIN_BSWAP64) set(SAIL_HAVE_BUILTIN_BSWAP64_DISPLAY ON CACHE INTERNAL "") else() set(SAIL_HAVE_BUILTIN_BSWAP64_DISPLAY OFF CACHE INTERNAL "") endif() cmake_pop_check_state() endfunction() sail-0.9.8/cmake/sail_check_c11_thread_local.cmake000066400000000000000000000012561475535176100220160ustar00rootroot00000000000000# Intended to be included by SAIL. # function(sail_check_c11_thread_local) cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}/src) check_c_source_compiles( " #include \"sail-common/compiler_specifics.h\" int main(int argc, char *argv[]) { static SAIL_THREAD_LOCAL int i = 0; return 0; } " SAIL_HAVE_THREAD_LOCAL ) cmake_pop_check_state() if (NOT SAIL_HAVE_THREAD_LOCAL) message(FATAL_ERROR "Currently selected ${CMAKE_C_COMPILER_ID} compiler doesn't support C11 thread local variables.") endif() endfunction() sail-0.9.8/cmake/sail_check_include.cmake000066400000000000000000000011311475535176100203440ustar00rootroot00000000000000# Intended to be included by SAIL. # macro(sail_check_include) set(SAIL_CHECK_INCLUDE ${ARGV0}) # Build "SAIL_HAVE_STDIO_H" # string(TOUPPER ${SAIL_CHECK_INCLUDE} SAIL_HAVE_THIS_H) string(REGEX REPLACE "[/\\.;]" "_" SAIL_HAVE_THIS_H ${SAIL_HAVE_THIS_H}) set(SAIL_HAVE_THIS_H SAIL_HAVE_${SAIL_HAVE_THIS_H}) check_include_files(${SAIL_CHECK_INCLUDE} ${SAIL_HAVE_THIS_H}) if (NOT ${${SAIL_HAVE_THIS_H}}) message(FATAL_ERROR "${SAIL_CHECK_INCLUDE} include file is not found. Please check the required development packages are installed.") endif() endmacro() sail-0.9.8/cmake/sail_check_init_once_execute_once.cmake000066400000000000000000000016371475535176100234310ustar00rootroot00000000000000# Intended to be included by SAIL. # function(sail_check_init_once_execute_once) cmake_push_check_state(RESET) check_c_source_compiles( " #define _WIN32_WINNT 0x0600 #include static BOOL CALLBACK OnceHandler(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *lpContext) { (void)InitOnce; (void)Parameter; (void)lpContext; return FALSE; } int main(int argc, char *argv[]) { InitOnceExecuteOnce(NULL, OnceHandler, NULL, NULL); return 0; } " SAIL_HAVE_INIT_ONCE_EXECUTE_ONCE ) cmake_pop_check_state() if (NOT SAIL_HAVE_INIT_ONCE_EXECUTE_ONCE) message(FATAL_ERROR "Currently selected ${CMAKE_C_COMPILER_ID} compiler doesn't support InitOnceExecuteOnce().") endif() endfunction() sail-0.9.8/cmake/sail_check_openmp.cmake000066400000000000000000000043221475535176100202240ustar00rootroot00000000000000# Intended to be included by SAIL. # function(sail_check_openmp) # This may require setting OpenMP_ROOT on macOS # find_package(OpenMP COMPONENTS C) if (OpenMP_FOUND) # We want OpenMP 3.0 to support unsigned integers in loops. # The default OpenMP implementation in MSVC 2022 still supports 2.0, # so switch to the LLVM option with OpenMP 3.1. # # Don't use "if (MSVC)" as some compilers (Clang-CL) may simulate MSVC, # but don't support /openmp:llvm. # if (CMAKE_C_COMPILER_ID STREQUAL "MSVC") set(SAIL_OPENMP_FLAGS "/openmp:llvm" CACHE INTERNAL "") else() set(SAIL_OPENMP_FLAGS ${OpenMP_C_FLAGS} CACHE INTERNAL "") endif() set(SAIL_OPENMP_INCLUDE_DIRS ${OpenMP_C_INCLUDE_DIRS} CACHE INTERNAL "") # Build a list of direct paths to libraries. This is needed on macOS with brew specifically # as the installed libomp version lays in /usr/local/opt/libomp and is not globally visible. # foreach(lib IN LISTS OpenMP_C_LIB_NAMES) set(SAIL_OPENMP_LIBS ${SAIL_OPENMP_LIBS} "${OpenMP_${lib}_LIBRARY}" CACHE INTERNAL "") endforeach() # Try to compile a sample program to make sure the compiler # supports at least OpenMP 3.0 with unsigned integers in for loops. # cmake_push_check_state(RESET) set(CMAKE_REQUIRED_FLAGS ${SAIL_OPENMP_FLAGS}) set(CMAKE_REQUIRED_INCLUDES ${SAIL_OPENMP_INCLUDE_DIRS}) set(CMAKE_REQUIRED_LIBRARIES ${SAIL_OPENMP_LIBS}) check_c_source_compiles( " #include int main(int argc, char *argv[]) { unsigned i; #pragma omp parallel for for (i = 0; i < 10; i++) { printf(\"%d\", i); } return 0; } " SAIL_HAVE_OPENMP ) cmake_pop_check_state() endif() if (SAIL_HAVE_OPENMP) set(SAIL_HAVE_OPENMP_DISPLAY ON CACHE INTERNAL "") else() set(SAIL_HAVE_OPENMP_DISPLAY OFF CACHE INTERNAL "") endif() endfunction() sail-0.9.8/cmake/sail_codec.cmake000066400000000000000000000067221475535176100166540ustar00rootroot00000000000000# Intended to be included by every codec. Sets up necessary dependencies, # installation targets, codec info. # # Creates SAIL_CODEC_TARGET variable with the created target name. # macro(sail_codec) cmake_parse_arguments(SAIL_CODEC "" "NAME;ICON" "SOURCES;LINK;DEPENDENCY_COMPILE_DEFINITIONS;DEPENDENCY_INCLUDE_DIRS;DEPENDENCY_LIBS" ${ARGN}) if (NOT SAIL_CODEC_NAME MATCHES "^[a-z0-9]+$") message(FATAL_ERROR "Invalid codec name '${SAIL_CODEC_NAME}'. Only lower-case letters and numbers are allowed.") endif() # Use 'sail-codec-png' instead of just 'png' to avoid conflicts # with libpng cmake configs (they also export a 'png' target) # and possibly other libs in the future. # set(SAIL_CODEC_TARGET sail-codec-${SAIL_CODEC_NAME}) # Add a codec # if (SAIL_COMBINE_CODECS) add_library(${SAIL_CODEC_TARGET} OBJECT ${SAIL_CODEC_SOURCES}) else() add_library(${SAIL_CODEC_TARGET} MODULE ${SAIL_CODEC_SOURCES}) sail_enable_asan(TARGET ${SAIL_CODEC_TARGET}) endif() # Disable a "lib" prefix on Unix # set_target_properties(${SAIL_CODEC_TARGET} PROPERTIES PREFIX "") # Rename to 'sail-codec-png.dll' # set_target_properties(${SAIL_CODEC_TARGET} PROPERTIES OUTPUT_NAME sail-codec-${SAIL_CODEC_NAME}) # Depend on sail-common # target_link_libraries(${SAIL_CODEC_TARGET} PRIVATE sail-common) # Depend on user-defined targets # target_link_libraries(${SAIL_CODEC_TARGET} PRIVATE ${SAIL_CODEC_LINK}) # This hack is needed for static builds where we have the following dependencies # ("->" is "links to"): # # sail-codecs-objects -> bmp -> bmp-common # # When object libraries (bmp) link to other object libraries (bmp-common), CMake pulls # just their usage requirements, but not the actual objects. So sail-codecs-objects never # contains the bmp-common objects which leads to a linking error. We pull the dependent # objects and export them to the outer world explicitly. # # See also https://gitlab.kitware.com/cmake/cmake/-/issues/18090 # foreach (LINK_DEPENDENCY ${SAIL_CODEC_LINK}) if (TARGET ${LINK_DEPENDENCY}) get_target_property(TARGET_TYPE ${LINK_DEPENDENCY} TYPE) if (TARGET_TYPE STREQUAL "OBJECT_LIBRARY") target_sources(${SAIL_CODEC_TARGET} INTERFACE $) endif() endif() endforeach() # Link against the found libs # target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE ${SAIL_CODEC_DEPENDENCY_COMPILE_DEFINITIONS}) target_include_directories(${SAIL_CODEC_TARGET} PRIVATE ${SAIL_CODEC_DEPENDENCY_INCLUDE_DIRS}) target_link_libraries(${SAIL_CODEC_TARGET} PRIVATE ${SAIL_CODEC_DEPENDENCY_LIBS}) # Generate and copy .codec.info into the build dir # configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${SAIL_CODEC_NAME}.codec.info.in ${CMAKE_CURRENT_BINARY_DIR}/sail-codec-${SAIL_CODEC_NAME}.codec.info @ONLY) # Installation # if (NOT SAIL_COMBINE_CODECS) install(TARGETS ${SAIL_CODEC_TARGET} DESTINATION "${CMAKE_INSTALL_LIBDIR}/sail/codecs") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sail-codec-${SAIL_CODEC_NAME}.codec.info" DESTINATION "${CMAKE_INSTALL_LIBDIR}/sail/codecs") endif() # Install icon # install(FILES "${SAIL_CODEC_ICON}" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/sail/icons") endmacro() sail-0.9.8/cmake/sail_enable_asan.cmake000066400000000000000000000033511475535176100200220ustar00rootroot00000000000000# Intended to be included by applications. Enables ASAN for executables if possible. # macro(sail_enable_asan) cmake_parse_arguments(SAIL_ASAN "" "TARGET" "" ${ARGN}) # Enable ASAN on the specified target in DEV mode only. We try to compile and run # a test program with -fsanitize=address as ASAN may be accessible in MSVC 2019 on Windows 7, # but the resulting program fails to run due to missing symbols in kernel32. # if (SAIL_DEV) if (NOT MSVC OR MSVC_TOOLSET_VERSION GREATER 141) cmake_push_check_state(RESET) set(CMAKE_REQUIRED_FLAGS "-fsanitize=address") # GCC and Clang require to link ASAN as well if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang") set(CMAKE_REQUIRED_LIBRARIES "-fsanitize=address") endif() check_c_source_runs( " int main(int argc, char *argv[]) { return 0; } " SAIL_HAVE_ASAN ) cmake_pop_check_state() endif() if (SAIL_HAVE_ASAN) message("${SAIL_ASAN_TARGET}: ASAN is enabled") target_compile_options(${SAIL_ASAN_TARGET} PRIVATE "-fsanitize=address") # GCC and Clang require to link ASAN as well if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang") target_link_libraries(${SAIL_ASAN_TARGET} PRIVATE "-fsanitize=address") endif() else() message("${SAIL_ASAN_TARGET}: ASAN is not supported with this ${CMAKE_C_COMPILER_ID} compiler.") endif() endif() endmacro() sail-0.9.8/cmake/sail_enable_pch.cmake000066400000000000000000000006311475535176100176500ustar00rootroot00000000000000# Intended to be included by SAIL libraries to enable precompiled headers with CMake >= 3.16 # macro(sail_enable_pch) cmake_parse_arguments(SAIL_PCH "" "TARGET;HEADER" "" ${ARGN}) # Enable precompiled headers on the specified target # if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") target_precompile_headers(${SAIL_PCH_TARGET} PRIVATE ${SAIL_PCH_HEADER}) endif() endmacro() sail-0.9.8/cmake/sail_enable_posix_source.cmake000066400000000000000000000006221475535176100216200ustar00rootroot00000000000000# Intended to be included by SAIL libraries to enable _POSIX_C_SOURCE on UNIX # macro(sail_enable_posix_source) cmake_parse_arguments(SAIL_POSIX_SOURCE "" "TARGET;VERSION" "" ${ARGN}) # Enable _POSIX_C_SOURCE on the specified target # if (UNIX) target_compile_definitions(${SAIL_POSIX_SOURCE_TARGET} PRIVATE _POSIX_C_SOURCE=${SAIL_POSIX_SOURCE_VERSION}) endif() endmacro() sail-0.9.8/cmake/sail_enable_xopen_source.cmake000066400000000000000000000006141475535176100216100ustar00rootroot00000000000000# Intended to be included by SAIL libraries to enable _XOPEN_SOURCE on UNIX # macro(sail_enable_xopen_source) cmake_parse_arguments(SAIL_XOPEN_SOURCE "" "TARGET;VERSION" "" ${ARGN}) # Enable _XOPEN_SOURCE on the specified target # if (UNIX) target_compile_definitions(${SAIL_XOPEN_SOURCE_TARGET} PRIVATE _XOPEN_SOURCE=${SAIL_XOPEN_SOURCE_VERSION}) endif() endmacro() sail-0.9.8/cmake/sail_install_cmake_config.cmake000066400000000000000000000024631475535176100217300ustar00rootroot00000000000000# Intended to be included by SAIL libraries to install their .cmake configs # macro(sail_install_cmake_config) cmake_parse_arguments(SAIL_CMAKE_CONFIG "" "TARGET;VERSION;FOLDER" "" ${ARGN}) install(EXPORT ${SAIL_CMAKE_CONFIG_TARGET}Targets FILE ${SAIL_CMAKE_CONFIG_TARGET}Targets.cmake NAMESPACE SAIL:: DESTINATION lib/cmake/${SAIL_CMAKE_CONFIG_FOLDER}) include(CMakePackageConfigHelpers) configure_package_config_file(cmake/${SAIL_CMAKE_CONFIG_TARGET}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${SAIL_CMAKE_CONFIG_TARGET}Config.cmake INSTALL_DESTINATION lib/cmake/sail NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${SAIL_CMAKE_CONFIG_TARGET}ConfigVersion.cmake VERSION ${SAIL_CMAKE_CONFIG_VERSION} COMPATIBILITY SameMajorVersion) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SAIL_CMAKE_CONFIG_TARGET}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${SAIL_CMAKE_CONFIG_TARGET}ConfigVersion.cmake DESTINATION lib/cmake/${SAIL_CMAKE_CONFIG_FOLDER}) endmacro() sail-0.9.8/cmake/sail_install_pdb.cmake000066400000000000000000000010271475535176100200630ustar00rootroot00000000000000# Intended to be included by SAIL libraries to install their debug PDB files # macro(sail_install_pdb) cmake_parse_arguments(SAIL_INSTALL_PDB "" "TARGET;RENAME" "" ${ARGN}) if (MSVC AND BUILD_SHARED_LIBS) if (SAIL_INSTALL_PDB_RENAME) install(FILES $ DESTINATION bin RENAME ${SAIL_INSTALL_PDB_RENAME} OPTIONAL) else() install(FILES $ DESTINATION bin OPTIONAL) endif() endif() endmacro() sail-0.9.8/cmake/sail_test.cmake000066400000000000000000000013561475535176100165540ustar00rootroot00000000000000# Intended to be included by every test. # macro(sail_test) cmake_parse_arguments(SAIL_TEST "" "TARGET" "SOURCES;LINK" ${ARGN}) # Add a test # add_executable(${SAIL_TEST_TARGET} ${SAIL_TEST_SOURCES}) sail_enable_asan(TARGET ${SAIL_TEST_TARGET}) if (WIN32) add_test(NAME "${SAIL_TEST_TARGET}" WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin COMMAND ${SAIL_TEST_TARGET}) else() add_test(NAME "${SAIL_TEST_TARGET}" COMMAND ${SAIL_TEST_TARGET}) endif() # Depend on sail-munit # target_link_libraries(${SAIL_TEST_TARGET} PRIVATE sail-munit) # Depend on LINK # if (SAIL_TEST_LINK) target_link_libraries(${SAIL_TEST_TARGET} PRIVATE ${SAIL_TEST_LINK}) endif() endmacro() sail-0.9.8/examples/000077500000000000000000000000001475535176100143145ustar00rootroot00000000000000sail-0.9.8/examples/c++/000077500000000000000000000000001475535176100146645ustar00rootroot00000000000000sail-0.9.8/examples/c++/qt/000077500000000000000000000000001475535176100153105ustar00rootroot00000000000000sail-0.9.8/examples/c++/qt/advanced-with-c++-api/000077500000000000000000000000001475535176100211435ustar00rootroot00000000000000sail-0.9.8/examples/c++/qt/advanced-with-c++-api/.gitignore000066400000000000000000000004311475535176100231310ustar00rootroot00000000000000*.exe *.app obj CMakeLists.txt.user *.pro.user* *~ *.autosave *.a *.core *.moc *.o *.obj *.orig *.rej *_pch.h.cpp *_resource.rc *.qm .#* *.*# core !core/ tags .DS_Store .directory *.debug Makefile* *.prl *.app moc_*.cpp ui_*.h qrc_*.cpp Thumbs.db *.res /.qmake.cache /.qmake.stash sail-0.9.8/examples/c++/qt/advanced-with-c++-api/CMakeLists.txt000066400000000000000000000026441475535176100237110ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.6.0) # Enable strict C++17 # set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS OFF) # Option to ensable ASAN on supported platforms # option(SAIL_ASAN "Enable ASAN with supported compilers." ON) project(advanced-with-c++-api) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) if (CMAKE_VERSION VERSION_LESS "3.7.0") set(CMAKE_INCLUDE_CURRENT_DIR ON) endif() # Manifest to support Windows 10 is embedded into our RC file # set(RC_FILE "") if (WIN32) set(RC_FILE "qtsail.rc") set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST:NO") endif() add_executable(advanced-with-c++-api main.cpp qtsail.cpp qtsail.ui "${RC_FILE}") target_include_directories(advanced-with-c++-api PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..") # Enable ASAN # if (SAIL_ASAN) if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(advanced-with-c++-api PRIVATE "-fsanitize=address") target_link_libraries(advanced-with-c++-api "-fsanitize=address") else() message("ASAN is not supported with this compiler.") endif() endif() # Add SAIL dependency # find_package(SailC++ REQUIRED) target_link_libraries(advanced-with-c++-api SAIL::sail-c++) # Add Qt5 dependency # find_package(Qt5 COMPONENTS Widgets REQUIRED) target_link_libraries(advanced-with-c++-api Qt5::Widgets) sail-0.9.8/examples/c++/qt/advanced-with-c++-api/main.cpp000066400000000000000000000031321475535176100225720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "qtsail.h" int main(int argc, char **argv) { QApplication app(argc, argv); // You could point SAIL to search codecs in a different location //qsetenv("SAIL_CODECS_PATH", "/some/other/location"); sail::log::set_barrier(SAIL_LOG_LEVEL_TRACE); QtSail qt; qt.resize(800, 500); qt.show(); return app.exec(); } sail-0.9.8/examples/c++/qt/advanced-with-c++-api/qtsail.cpp000066400000000000000000000226111475535176100231460ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#define SAIL_CODEC_NAME jpeg //#include #include "qtsail.h" #include "ui_qtsail.h" #include "qimage_sail_pixel_formats.h" #include "multi-paged-impl.cpp" QtSail::~QtSail() { } sail_status_t QtSail::init() { QTimer::singleShot(0, this, [&]{ QMessageBox::information(this, tr("Features"), tr("This demo includes:" "
    " "
  • Linking against SAIL CMake packages
  • " "
  • Playing animations
  • " "
  • Conversion with alpha blending
  • " "
")); }); return SAIL_OK; } sail_status_t QtSail::loadImage(const QString &path, QVector *qimages, QVector *delays) { qimages->clear(); delays->clear(); sail::image image; sail::image first_image; // Initialize loading. // sail::image_input image_input(path.toLocal8Bit().constData()); // Load all the available image frames in the file. // sail_status_t res; while ((res = image_input.next_frame(&image)) == SAIL_OK) { // Mutate alpha into a green color. // const sail::conversion_options options{ SAIL_CONVERSION_OPTION_BLEND_ALPHA, sail_rgb24_t{ 0, 255, 0 } }; if (!first_image.is_valid()) { first_image = image; } SAIL_TRY(image.convert(SAIL_PIXEL_FORMAT_BPP24_RGB, options)); // Convert to QImage. // QImage qimage = QImage(reinterpret_cast(image.pixels()), image.width(), image.height(), image.bytes_per_line(), QImage::Format_RGB888).copy(); delays->append(image.delay()); qimages->append(qimage); } if (res != SAIL_ERROR_NO_MORE_FRAMES) { return res; } SAIL_LOG_DEBUG("Loaded images: %d", qimages->size()); m_ui->labelStatus->setText(tr("%1 [%2x%3] [%4 → %5]") .arg(QFileInfo(path).fileName()) .arg(first_image.width()) .arg(first_image.height()) .arg(sail::image::pixel_format_to_string(first_image.source_image().pixel_format())) .arg(sail::image::pixel_format_to_string(first_image.pixel_format())) ); return SAIL_OK; } sail_status_t QtSail::saveImage(const QString &path, const QImage &qimage) { const sail::codec_info codec_info = sail::codec_info::from_path(path.toLocal8Bit().constData()); if (!codec_info.is_valid()) { SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } sail::image image(const_cast(qimage.bits()), qImageFormatToSailPixelFormat(qimage.format()), qimage.width(), qimage.height(), qimage.bytesPerLine()); // SAIL tries to save an image as is, preserving its pixel format. // Particular image formats may support saving in different pixel formats: // RGB, Grayscale, etc. Convert the image to the best pixel format for saving here. // // You can prepare the image for saving by converting its pixel format on your own, // without using conversion methods. // SAIL_TRY(image.convert(codec_info.save_features())); sail::save_options save_options; SAIL_TRY(codec_info.save_features().to_options(&save_options)); // This filter will be handled and applied by the PNG codec only. // Possible values: "none", "sub", "up", "avg", "paeth". // // It's also possible to combine PNG filters with ';' like that: // "none;sub;paeth" // save_options.tuning()["png-filter"] = std::string("none;sub"); sail::image_output image_output(path.toLocal8Bit().constData()); image_output.with(save_options); SAIL_TRY(image_output.next_frame(image)); SAIL_TRY(image_output.finish()); return SAIL_OK; } QStringList QtSail::filters() const { QStringList filters { QStringLiteral("All Files (*.*)") }; const std::vector codec_info_list = sail::codec_info::list(); for (const sail::codec_info &codec_info : codec_info_list) { QStringList masks; const std::vector extensions = codec_info.extensions(); for (const std::string &extension : extensions) { masks.append(QStringLiteral("*.%1").arg(extension.c_str())); } filters.append(QStringLiteral("%1 (%2)") .arg(codec_info.description().c_str()) .arg(masks.join(QStringLiteral(" ")))); } return filters; } void QtSail::onOpenFile() { const QString path = QFileDialog::getOpenFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = loadImage(path, &m_qimages, &m_delays)) == SAIL_OK) { m_currentIndex = 0; onFit(m_ui->checkFit->isChecked()); detectAnimated(); } else { QMessageBox::critical(this, tr("Error"), tr("Failed to load '%1'. Error: %2.") .arg(path) .arg(res)); return; } } sail_status_t QtSail::onProbe() { const QString path = QFileDialog::getOpenFileName(this, tr("Select a file")); if (path.isEmpty()) { return SAIL_OK; } QElapsedTimer elapsedTimer; elapsedTimer.start(); auto [image, codec_info] = sail::image_input(path.toLocal8Bit().constData()).probe(); QMessageBox::information(this, tr("File info"), tr("Probed in: %1 ms.\nCodec: %2\nSize: %3x%4\nSource compression: %5\nSource pixel format: %6\nOutput pixel format: %7") .arg(elapsedTimer.elapsed()) .arg(codec_info.description().c_str()) .arg(image.width()) .arg(image.height()) .arg(sail::image::compression_to_string(image.source_image().compression())) .arg(sail::image::pixel_format_to_string(image.source_image().pixel_format())) .arg(sail::image::pixel_format_to_string(image.pixel_format())) ); return SAIL_OK; } void QtSail::onSave() { const QString path = QFileDialog::getSaveFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = saveImage(path, m_qimages.first())) != SAIL_OK) { QMessageBox::critical(this, tr("Error"), tr("Failed to save '%1'. Error: %2.") .arg(path) .arg(res)); return; } if (QMessageBox::question(this, tr("Open file"), tr("%1 has been saved succesfully. Open the saved file?") .arg(QDir::toNativeSeparators(path))) == QMessageBox::Yes) { if ((res = loadImage(path, &m_qimages, &m_delays)) == SAIL_OK) { m_currentIndex = 0; onFit(m_ui->checkFit->isChecked()); detectAnimated(); } else { QMessageBox::critical(this, tr("Error"), tr("Failed to load '%1'. Error: %2.") .arg(path) .arg(res)); return; } } } sail-0.9.8/examples/c++/qt/advanced-with-c++-api/qtsail.h000066400000000000000000000044761475535176100226240ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef QT_SAIL_H #define QT_SAIL_H #include #include #include #include #include namespace Ui { class QtSail; } class QImage; class QTimer; namespace sail { class codec_info; } class QtSail : public QWidget { Q_OBJECT public: QtSail(QWidget *parent = nullptr); ~QtSail(); private: sail_status_t init(); sail_status_t loadImage(const QString &path, QVector *qimages, QVector *delays); sail_status_t saveImage(const QString &path, const QImage &qimage); sail_status_t codecInfo(const sail::codec_info &codec_info) const; QStringList filters() const; void detectAnimated(); void updateCurrentFrameLabel(); private: // slots void onOpenFile(); sail_status_t onProbe(); void onSave(); void onFit(bool fit); void onPrevious(); void onNext(); void onStop(); private: QScopedPointer m_ui; QVector m_qimages; QVector m_delays; bool m_animated; QScopedPointer m_animationTimer; int m_currentIndex = 0; QString m_suffix; }; #endif sail-0.9.8/examples/c++/qt/advanced-with-c++-api/qtsail.manifest000066400000000000000000000015511475535176100241720ustar00rootroot00000000000000 QtSail sail-0.9.8/examples/c++/qt/advanced-with-c++-api/qtsail.rc000066400000000000000000000000241475535176100227620ustar00rootroot000000000000001 24 qtsail.manifestsail-0.9.8/examples/c++/qt/advanced-with-c++-api/qtsail.ui000066400000000000000000000077011475535176100230040ustar00rootroot00000000000000 QtSail 0 0 757 435 Qt SAIL demo [advanced] Open file... Probe file... Save image... Fit large true Qt::Horizontal 40 20 75 true Stop Previous frame Next frame 75 true QFrame::Box QFrame::Sunken Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse true 0 0 733 353 pushOpen pushProbe pushSave checkFit pushStop pushPrevious pushNext scrollArea 5 5 true true true sail-0.9.8/examples/c++/qt/advanced-with-c-api/000077500000000000000000000000001475535176100210155ustar00rootroot00000000000000sail-0.9.8/examples/c++/qt/advanced-with-c-api/.gitignore000066400000000000000000000004311475535176100230030ustar00rootroot00000000000000*.exe *.app obj CMakeLists.txt.user *.pro.user* *~ *.autosave *.a *.core *.moc *.o *.obj *.orig *.rej *_pch.h.cpp *_resource.rc *.qm .#* *.*# core !core/ tags .DS_Store .directory *.debug Makefile* *.prl *.app moc_*.cpp ui_*.h qrc_*.cpp Thumbs.db *.res /.qmake.cache /.qmake.stash sail-0.9.8/examples/c++/qt/advanced-with-c-api/CMakeLists.txt000066400000000000000000000027551475535176100235660ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.6.0) # Enable strict C++17 # set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS OFF) # Option to ensable ASAN on supported platforms # option(SAIL_ASAN "Enable ASAN with supported compilers." ON) project(advanced-with-c-api) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) if (CMAKE_VERSION VERSION_LESS "3.7.0") set(CMAKE_INCLUDE_CURRENT_DIR ON) endif() # Manifest to support Windows 10 is embedded into our RC file # set(RC_FILE "") if (WIN32) set(RC_FILE "qtsail.rc") set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST:NO") endif() add_executable(advanced-with-c-api main.cpp qtsail.cpp qtsail.ui "${RC_FILE}") target_include_directories(advanced-with-c-api PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..") # Enable ASAN # if (SAIL_ASAN) if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(advanced-with-c-api PRIVATE "-fsanitize=address") target_link_libraries(advanced-with-c-api "-fsanitize=address") else() message("ASAN is not supported with this compiler.") endif() endif() # Add SAIL dependency # find_package(Sail REQUIRED) target_link_libraries(advanced-with-c-api SAIL::sail) find_package(SailManip REQUIRED) target_link_libraries(advanced-with-c-api SAIL::sail-manip) # Add Qt5 dependency # find_package(Qt5 COMPONENTS Widgets REQUIRED) target_link_libraries(advanced-with-c-api Qt5::Widgets) sail-0.9.8/examples/c++/qt/advanced-with-c-api/main.cpp000066400000000000000000000031361475535176100224500ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "qtsail.h" int main(int argc, char **argv) { QApplication app(argc, argv); // You could point SAIL to search codecs in a different location //qsetenv("SAIL_CODECS_PATH", "/some/other/location"); sail_set_log_barrier(SAIL_LOG_LEVEL_TRACE); QtSail qt; qt.resize(800, 500); qt.show(); return app.exec(); } sail-0.9.8/examples/c++/qt/advanced-with-c-api/qtsail.cpp000066400000000000000000000311321475535176100230160ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#define SAIL_CODEC_NAME jpeg //#include #include "qtsail.h" #include "ui_qtsail.h" #include "qimage_sail_pixel_formats.h" #include "multi-paged-impl.cpp" QtSail::~QtSail() { sail_finish(); } sail_status_t QtSail::init() { QTimer::singleShot(0, this, [&]{ QMessageBox::information(this, tr("Features"), tr("This demo includes:" "
    " "
  • Linking against SAIL CMake packages
  • " "
  • Playing animations
  • " "
  • Conversion with alpha blending
  • " "
")); }); return SAIL_OK; } sail_status_t QtSail::loadImage(const QString &path, QVector *qimages, QVector *delays) { qimages->clear(); delays->clear(); /* * Always set the initial state to NULL in C or nullptr in C++. */ void *state = NULL; /* * Save this for displaying in the status bar. */ SailPixelFormat source_pixel_format; SailPixelFormat pixel_format; unsigned width = 0, height = 0; /* * Starts loading the specified file. */ SAIL_TRY_OR_CLEANUP(sail_start_loading_from_file(path.toLocal8Bit(), NULL, &state), /* cleanup */ sail_stop_loading(state)); /* * Load all the available image frames in the file. */ sail_status_t res; struct sail_image *image; while ((res = sail_load_next_frame(state, &image)) == SAIL_OK) { /* Mutate alpha into a green color. */ const struct sail_conversion_options options = { SAIL_CONVERSION_OPTION_BLEND_ALPHA, { 0, 255 * 257, 0 }, { 0, 255, 0 } }; struct sail_image *image_converted; SAIL_TRY_OR_CLEANUP(sail_convert_image_with_options(image, SAIL_PIXEL_FORMAT_BPP24_RGB, &options, &image_converted), /* cleanup */ sail_stop_loading(state), sail_destroy_image(image)); if (width == 0) { source_pixel_format = image->source_image->pixel_format; pixel_format = image_converted->pixel_format; width = image_converted->width; height = image_converted->height; } /* * Convert to QImage. */ QImage qimage = QImage(reinterpret_cast(image_converted->pixels), image_converted->width, image_converted->height, image_converted->bytes_per_line, QImage::Format_RGB888).copy(); qimages->append(qimage); delays->append(image->delay); sail_destroy_image(image_converted); sail_destroy_image(image); } if (res != SAIL_ERROR_NO_MORE_FRAMES) { sail_stop_loading(state); return res; } SAIL_LOG_DEBUG("Loaded images: %d", qimages->size()); /* * Finish loading. */ SAIL_TRY(sail_stop_loading(state)); m_ui->labelStatus->setText(tr("%1 [%2x%3] [%4 → %5]") .arg(QFileInfo(path).fileName()) .arg(width) .arg(height) .arg(sail_pixel_format_to_string(source_pixel_format)) .arg(sail_pixel_format_to_string(pixel_format)) ); return SAIL_OK; } sail_status_t QtSail::saveImage(const QString &path, const QImage &qimage) { const struct sail_codec_info *codec_info; SAIL_TRY(sail_codec_info_from_path(path.toLocal8Bit(), &codec_info)); /* * Always set the initial state to NULL in C or nullptr in C++. */ void *state = nullptr; struct sail_image *image; SAIL_TRY(sail_alloc_image(&image)); const int sizeInBytes = qimage.bytesPerLine() * qimage.height(); image->pixels = malloc(sizeInBytes); memcpy(image->pixels, qimage.bits(), sizeInBytes); image->width = qimage.width(); image->height = qimage.height(); image->pixel_format = qImageFormatToSailPixelFormat(qimage.format()); image->bytes_per_line = sail_bytes_per_line(image->width, image->pixel_format); /* * SAIL tries to save an image as is, preserving its pixel format. * Particular image formats may support saving in different pixel formats: * RGB, Grayscale, etc. Convert the image to the best pixel format for saving here. * * You can prepare the image for saving by converting its pixel format on your own, * without using sail-manip. */ struct sail_image *image_converted; SAIL_TRY_OR_CLEANUP(sail_convert_image_for_saving(image, codec_info->save_features, &image_converted), /* cleanup */ sail_destroy_image(image)); sail_destroy_image(image); image = image_converted; /* * Create save options to pass PNG filters. */ struct sail_save_options *save_options; SAIL_TRY_OR_CLEANUP(sail_alloc_save_options_from_features(codec_info->save_features, &save_options), /* cleanup */ sail_destroy_image(image)); SAIL_TRY_OR_CLEANUP(sail_alloc_hash_map(&save_options->tuning), /* cleanup */ sail_destroy_save_options(save_options), sail_destroy_image(image)); /* * This filter will be handled and applied by the PNG codec only. * Possible values: "none", "sub", "up", "avg", "paeth". * * It's also possible to combine PNG filters with ';' like that: * "none;sub;paeth" */ struct sail_variant *value; SAIL_TRY_OR_CLEANUP(sail_alloc_variant(&value), /* cleanup */ sail_destroy_save_options(save_options), sail_destroy_image(image)); sail_set_variant_string(value, "none;sub"); sail_put_hash_map(save_options->tuning, "png-filter", value); sail_destroy_variant(value); SAIL_TRY_OR_CLEANUP(sail_start_saving_into_file_with_options(path.toLocal8Bit(), nullptr, save_options, &state), /* cleanup */ sail_destroy_save_options(save_options), sail_destroy_image(image)); sail_destroy_save_options(save_options); SAIL_TRY_OR_CLEANUP(sail_write_next_frame(state, image), /* cleanup */ sail_destroy_image(image)); SAIL_TRY_OR_CLEANUP(sail_stop_saving(state), /* cleanup */ sail_destroy_image(image)); sail_destroy_image(image); return SAIL_OK; } QStringList QtSail::filters() const { QStringList filters { QStringLiteral("All Files (*.*)") }; for (const sail_codec_bundle_node *codec_bundle_node = sail_codec_bundle_list(); codec_bundle_node != nullptr; codec_bundle_node = codec_bundle_node->next) { const sail_codec_info *codec_info = codec_bundle_node->codec_bundle->codec_info; QStringList masks; for (const sail_string_node *extension_node = codec_info->extension_node; extension_node != nullptr; extension_node = extension_node->next ) { masks.append(QStringLiteral("*.%1").arg(extension_node->string)); } filters.append(QStringLiteral("%1: %2 (%3)") .arg(codec_info->name) .arg(codec_info->description) .arg(masks.join(QStringLiteral(" ")))); } return filters; } void QtSail::onOpenFile() { const QString path = QFileDialog::getOpenFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = loadImage(path, &m_qimages, &m_delays)) == SAIL_OK) { m_currentIndex = 0; onFit(m_ui->checkFit->isChecked()); detectAnimated(); } else { QMessageBox::critical(this, tr("Error"), tr("Failed to load '%1'. Error: %2.") .arg(path) .arg(res)); return; } } sail_status_t QtSail::onProbe() { const QString path = QFileDialog::getOpenFileName(this, tr("Select a file")); if (path.isEmpty()) { return SAIL_OK; } QElapsedTimer elapsedTimer; elapsedTimer.start(); // Probe sail_image *image; const struct sail_codec_info *codec_info; sail_status_t res; if ((res = sail_probe_file(path.toLocal8Bit(), &image, &codec_info)) != SAIL_OK) { QMessageBox::critical(this, tr("Error"), tr("Failed to probe the image. Error: %1").arg(res)); return res; } QMessageBox::information(this, tr("File info"), tr("Probed in: %1 ms.\nCodec: %2\nSize: %3x%4\nSource compression: %5\nSource pixel format: %6\nOutput pixel format: %7") .arg(elapsedTimer.elapsed()) .arg(codec_info->description) .arg(image->width) .arg(image->height) .arg(sail_compression_to_string(image->source_image->compression)) .arg(sail_pixel_format_to_string(image->source_image->pixel_format)) .arg(sail_pixel_format_to_string(image->pixel_format)) ); sail_destroy_image(image); return SAIL_OK; } void QtSail::onSave() { const QString path = QFileDialog::getSaveFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = saveImage(path, m_qimages.first())) != SAIL_OK) { QMessageBox::critical(this, tr("Error"), tr("Failed to save '%1'. Error: %2.") .arg(path) .arg(res)); return; } if (QMessageBox::question(this, tr("Open file"), tr("%1 has been saved succesfully. Open the saved file?") .arg(QDir::toNativeSeparators(path))) == QMessageBox::Yes) { if ((res = loadImage(path, &m_qimages, &m_delays)) == SAIL_OK) { m_currentIndex = 0; onFit(m_ui->checkFit->isChecked()); detectAnimated(); } else { QMessageBox::critical(this, tr("Error"), tr("Failed to load '%1'. Error: %2.") .arg(path) .arg(res)); return; } } } sail-0.9.8/examples/c++/qt/advanced-with-c-api/qtsail.h000066400000000000000000000042751475535176100224730ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef QT_SAIL_H #define QT_SAIL_H #include #include #include #include namespace Ui { class QtSail; } class QImage; class QTimer; class QtSail : public QWidget { Q_OBJECT public: QtSail(QWidget *parent = nullptr); ~QtSail(); private: sail_status_t init(); sail_status_t loadImage(const QString &path, QVector *qimages, QVector *delays); sail_status_t saveImage(const QString &path, const QImage &qimage); QStringList filters() const; void detectAnimated(); void updateCurrentFrameLabel(); private: // slots void onOpenFile(); sail_status_t onProbe(); void onSave(); void onFit(bool fit); void onPrevious(); void onNext(); void onStop(); private: QScopedPointer m_ui; QVector m_qimages; QVector m_delays; bool m_animated; QScopedPointer m_animationTimer; int m_currentIndex = 0; QString m_suffix; }; #endif sail-0.9.8/examples/c++/qt/advanced-with-c-api/qtsail.manifest000066400000000000000000000015511475535176100240440ustar00rootroot00000000000000 QtSail sail-0.9.8/examples/c++/qt/advanced-with-c-api/qtsail.rc000066400000000000000000000000241475535176100226340ustar00rootroot000000000000001 24 qtsail.manifestsail-0.9.8/examples/c++/qt/advanced-with-c-api/qtsail.ui000066400000000000000000000077011475535176100226560ustar00rootroot00000000000000 QtSail 0 0 757 435 Qt SAIL demo [advanced] Open file... Probe file... Save image... Fit large true Qt::Horizontal 40 20 75 true Stop Previous frame Next frame 75 true QFrame::Box QFrame::Sunken Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse true 0 0 733 353 pushOpen pushProbe pushSave checkFit pushStop pushPrevious pushNext scrollArea 5 5 true true true sail-0.9.8/examples/c++/qt/junior-with-c++-api/000077500000000000000000000000001475535176100207045ustar00rootroot00000000000000sail-0.9.8/examples/c++/qt/junior-with-c++-api/.gitignore000066400000000000000000000004311475535176100226720ustar00rootroot00000000000000*.exe *.app obj CMakeLists.txt.user *.pro.user* *~ *.autosave *.a *.core *.moc *.o *.obj *.orig *.rej *_pch.h.cpp *_resource.rc *.qm .#* *.*# core !core/ tags .DS_Store .directory *.debug Makefile* *.prl *.app moc_*.cpp ui_*.h qrc_*.cpp Thumbs.db *.res /.qmake.cache /.qmake.stash sail-0.9.8/examples/c++/qt/junior-with-c++-api/CMakeLists.txt000066400000000000000000000027371475535176100234550ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.6.0) # Enable strict C++17 # set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS OFF) # Option to ensable ASAN on supported platforms # option(SAIL_ASAN "Enable ASAN with supported compilers." ON) project(junior-with-c++-api) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) if (CMAKE_VERSION VERSION_LESS "3.7.0") set(CMAKE_INCLUDE_CURRENT_DIR ON) endif() find_package(PkgConfig REQUIRED) # Manifest to support Windows 10 is embedded into our RC file # set(RC_FILE "") if (WIN32) set(RC_FILE "qtsail.rc") set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST:NO") endif() add_executable(junior-with-c++-api main.cpp qtsail.cpp qtsail.ui "${RC_FILE}") target_include_directories(junior-with-c++-api PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..") # Enable ASAN # if (SAIL_ASAN) if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(junior-with-c++-api PRIVATE "-fsanitize=address") target_link_libraries(junior-with-c++-api "-fsanitize=address") else() message("ASAN is not supported with this compiler.") endif() endif() # Add SAIL dependency # pkg_check_modules(SAIL_CXX IMPORTED_TARGET REQUIRED libsail-c++) target_link_libraries(junior-with-c++-api PkgConfig::SAIL_CXX) # Add Qt5 dependency # find_package(Qt5 COMPONENTS Widgets REQUIRED) target_link_libraries(junior-with-c++-api Qt5::Widgets) sail-0.9.8/examples/c++/qt/junior-with-c++-api/main.cpp000066400000000000000000000030071475535176100223340ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "qtsail.h" int main(int argc, char **argv) { QApplication app(argc, argv); // You could point SAIL to search codecs in a different location //qsetenv("SAIL_CODECS_PATH", "/some/other/location"); QtSail qt; qt.resize(800, 500); qt.show(); return app.exec(); } sail-0.9.8/examples/c++/qt/junior-with-c++-api/qtsail.cpp000066400000000000000000000136051475535176100227120ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include #include #include //#define SAIL_CODEC_NAME jpeg //#include #include "qtsail.h" #include "ui_qtsail.h" #include "qimage_sail_pixel_formats.h" QtSail::QtSail(QWidget *parent) : QWidget(parent) { m_ui.reset(new Ui::QtSail); m_ui->setupUi(this); QLabel *l = new QLabel; l->setAlignment(Qt::AlignCenter); m_ui->scrollArea->setWidget(l); connect(m_ui->pushOpen, &QPushButton::clicked, this, &QtSail::onOpenFile); connect(m_ui->pushSave, &QPushButton::clicked, this, &QtSail::onSave); } QtSail::~QtSail() { } sail_status_t QtSail::loadImage(const QString &path, QImage *qimage) { sail::image_input image_input; sail::image image = image_input.load(path.toLocal8Bit().constData()); if (!image.is_valid()) { return SAIL_ERROR_BROKEN_IMAGE; } // Convert to RGBA // SAIL_TRY(image.convert(SAIL_PIXEL_FORMAT_BPP32_RGBA)); // Construct QImage from the loaded image. // *qimage = QImage(reinterpret_cast(image.pixels()), image.width(), image.height(), image.bytes_per_line(), QImage::Format_RGBA8888).copy(); m_ui->labelStatus->setText(tr("%1 [%2x%3]") .arg(QFileInfo(path).fileName()) .arg(image.width()) .arg(image.height()) ); return SAIL_OK; } sail_status_t QtSail::saveImage(const QString &path, const QImage &qimage) { const sail::codec_info codec_info = sail::codec_info::from_path(path.toLocal8Bit().constData()); if (!codec_info.is_valid()) { SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } sail::image_output image_output; sail::image image(const_cast(qimage.bits()), qImageFormatToSailPixelFormat(qimage.format()), qimage.width(), qimage.height(), qimage.bytesPerLine()); // SAIL tries to save an image as is, preserving its pixel format. // Particular image formats may support saving in different pixel formats: // RGB, Grayscale, etc. Convert the image to the best pixel format for saving here. // // You can prepare the image for saving by converting its pixel format on your own, // without using conversion methods. // SAIL_TRY(image.convert(codec_info.save_features())); SAIL_TRY(image_output.save(path.toLocal8Bit().constData(), image)); return SAIL_OK; } QStringList QtSail::filters() const { return QStringList { QStringLiteral("All Files (*.*)") }; } void QtSail::onOpenFile() { const QString path = QFileDialog::getOpenFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = loadImage(path, &m_qimage)) == SAIL_OK) { fit(); } else { QMessageBox::critical(this, tr("Error"), tr("Failed to load '%1'. Error: %2.") .arg(path) .arg(res)); return; } } void QtSail::onSave() { const QString path = QFileDialog::getSaveFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = saveImage(path, m_qimage)) != SAIL_OK) { QMessageBox::critical(this, tr("Error"), tr("Failed to save '%1'. Error: %2.") .arg(path) .arg(res)); return; } QMessageBox::information(this, tr("Success"), tr("%1 has been saved succesfully.").arg(path)); } void QtSail::fit() { QPixmap pixmap; if (m_qimage.width() > m_ui->scrollArea->viewport()->width() || m_qimage.height() > m_ui->scrollArea->viewport()->height()) { pixmap = QPixmap::fromImage(m_qimage.scaled(m_ui->scrollArea->viewport()->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); } else { pixmap = QPixmap::fromImage(m_qimage); } qobject_cast(m_ui->scrollArea->widget())->setPixmap(pixmap); } sail-0.9.8/examples/c++/qt/junior-with-c++-api/qtsail.h000066400000000000000000000034631475535176100223600ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef QT_SAIL_H #define QT_SAIL_H #include #include #include #include namespace Ui { class QtSail; } class QtSail : public QWidget { Q_OBJECT public: QtSail(QWidget *parent = nullptr); ~QtSail(); private: sail_status_t loadImage(const QString &path, QImage *qimage); sail_status_t saveImage(const QString &path, const QImage &qimage); QStringList filters() const; private: // slots void onOpenFile(); void onSave(); private: void fit(); private: QScopedPointer m_ui; QImage m_qimage; }; #endif sail-0.9.8/examples/c++/qt/junior-with-c++-api/qtsail.manifest000066400000000000000000000015511475535176100237330ustar00rootroot00000000000000 QtSail sail-0.9.8/examples/c++/qt/junior-with-c++-api/qtsail.rc000066400000000000000000000000241475535176100225230ustar00rootroot000000000000001 24 qtsail.manifestsail-0.9.8/examples/c++/qt/junior-with-c++-api/qtsail.ui000066400000000000000000000051751475535176100225500ustar00rootroot00000000000000 QtSail 0 0 757 435 Qt SAIL demo [junior] Open file... Save image... Qt::Horizontal 40 20 75 true QFrame::Box QFrame::Sunken Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse true 0 0 737 361 scrollArea pushOpen pushSave 5 5 true true true sail-0.9.8/examples/c++/qt/junior-with-c-api/000077500000000000000000000000001475535176100205565ustar00rootroot00000000000000sail-0.9.8/examples/c++/qt/junior-with-c-api/.gitignore000066400000000000000000000004311475535176100225440ustar00rootroot00000000000000*.exe *.app obj CMakeLists.txt.user *.pro.user* *~ *.autosave *.a *.core *.moc *.o *.obj *.orig *.rej *_pch.h.cpp *_resource.rc *.qm .#* *.*# core !core/ tags .DS_Store .directory *.debug Makefile* *.prl *.app moc_*.cpp ui_*.h qrc_*.cpp Thumbs.db *.res /.qmake.cache /.qmake.stash sail-0.9.8/examples/c++/qt/junior-with-c-api/CMakeLists.txt000066400000000000000000000031241475535176100233160ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.6.0) # Enable strict C++17 # set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS OFF) # Option to ensable ASAN on supported platforms # option(SAIL_ASAN "Enable ASAN with supported compilers." ON) project(junior-with-c-api) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) if (CMAKE_VERSION VERSION_LESS "3.7.0") set(CMAKE_INCLUDE_CURRENT_DIR ON) endif() find_package(PkgConfig REQUIRED) # Manifest to support Windows 10 is embedded into our RC file # set(RC_FILE "") if (WIN32) set(RC_FILE "qtsail.rc") set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST:NO") endif() add_executable(junior-with-c-api main.cpp qtsail.cpp qtsail.ui "${RC_FILE}") target_include_directories(junior-with-c-api PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..") # Enable ASAN # if (SAIL_ASAN) if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(junior-with-c-api PRIVATE "-fsanitize=address") target_link_libraries(junior-with-c-api "-fsanitize=address") else() message("ASAN is not supported with this compiler.") endif() endif() # Add SAIL dependency # pkg_check_modules(SAIL IMPORTED_TARGET REQUIRED libsail) target_link_libraries(junior-with-c-api PkgConfig::SAIL) pkg_check_modules(SAIL-MANIP IMPORTED_TARGET REQUIRED libsail-manip) target_link_libraries(junior-with-c-api PkgConfig::SAIL-MANIP) # Add Qt5 dependency # find_package(Qt5 COMPONENTS Widgets REQUIRED) target_link_libraries(junior-with-c-api Qt5::Widgets) sail-0.9.8/examples/c++/qt/junior-with-c-api/main.cpp000066400000000000000000000030071475535176100222060ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "qtsail.h" int main(int argc, char **argv) { QApplication app(argc, argv); // You could point SAIL to search codecs in a different location //qsetenv("SAIL_CODECS_PATH", "/some/other/location"); QtSail qt; qt.resize(800, 500); qt.show(); return app.exec(); } sail-0.9.8/examples/c++/qt/junior-with-c-api/qtsail.cpp000066400000000000000000000151351475535176100225640ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include #include #include #include //#define SAIL_CODEC_NAME jpeg //#include #include "qtsail.h" #include "ui_qtsail.h" #include "qimage_sail_pixel_formats.h" QtSail::QtSail(QWidget *parent) : QWidget(parent) { m_ui.reset(new Ui::QtSail); m_ui->setupUi(this); QLabel *l = new QLabel; l->setAlignment(Qt::AlignCenter); m_ui->scrollArea->setWidget(l); connect(m_ui->pushOpen, &QPushButton::clicked, this, &QtSail::onOpenFile); connect(m_ui->pushSave, &QPushButton::clicked, this, &QtSail::onSave); } QtSail::~QtSail() { } sail_status_t QtSail::loadImage(const QString &path, QImage *qimage) { struct sail_image *image; SAIL_TRY(sail_load_from_file(path.toLocal8Bit(), &image)); struct sail_image *image_converted; SAIL_TRY_OR_CLEANUP(sail_convert_image(image, SAIL_PIXEL_FORMAT_BPP32_RGBA, &image_converted), /* cleanup */ sail_destroy_image(image)); // Construct QImage from the converted image pixels. // *qimage = QImage(reinterpret_cast(image_converted->pixels), image_converted->width, image_converted->height, image_converted->bytes_per_line, QImage::Format_RGBA8888).copy(); m_ui->labelStatus->setText(tr("%1 [%2x%3]") .arg(QFileInfo(path).fileName()) .arg(image_converted->width) .arg(image_converted->height) ); sail_destroy_image(image_converted); sail_destroy_image(image); return SAIL_OK; } sail_status_t QtSail::saveImage(const QString &path, const QImage &qimage) { const struct sail_codec_info *codec_info; SAIL_TRY(sail_codec_info_from_path(path.toLocal8Bit(), &codec_info)); struct sail_image *image; SAIL_TRY(sail_alloc_image(&image)); image->pixels = malloc(qimage.sizeInBytes()); memcpy(image->pixels, qimage.bits(), qimage.sizeInBytes()); image->width = qimage.width(); image->height = qimage.height(); image->pixel_format = qImageFormatToSailPixelFormat(qimage.format()); image->bytes_per_line = sail_bytes_per_line(image->width, image->pixel_format); /* * SAIL tries to save an image as is, preserving its pixel format. * Particular image formats may support saving in different pixel formats: * RGB, Grayscale, etc. Convert the image to the best pixel format for saving here. * * You can prepare the image for saving by converting its pixel format on your own, * without using sail-manip. */ struct sail_image *image_converted; SAIL_TRY_OR_CLEANUP(sail_convert_image_for_saving(image, codec_info->save_features, &image_converted), /* cleanup */ sail_destroy_image(image)); sail_destroy_image(image); image = image_converted; SAIL_TRY_OR_CLEANUP(sail_save_into_file(path.toLocal8Bit(), image), /* cleanup */ sail_destroy_image(image)); sail_destroy_image(image); return SAIL_OK; } QStringList QtSail::filters() const { return QStringList { QStringLiteral("All Files (*.*)") }; } void QtSail::onOpenFile() { const QString path = QFileDialog::getOpenFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = loadImage(path, &m_qimage)) == SAIL_OK) { fit(); } else { QMessageBox::critical(this, tr("Error"), tr("Failed to load '%1'. Error: %2.") .arg(path) .arg(res)); return; } } void QtSail::onSave() { const QString path = QFileDialog::getSaveFileName(this, tr("Select a file"), QString(), filters().join(QStringLiteral(";;"))); if (path.isEmpty()) { return; } sail_status_t res; if ((res = saveImage(path, m_qimage)) != SAIL_OK) { QMessageBox::critical(this, tr("Error"), tr("Failed to save '%1'. Error: %2.") .arg(path) .arg(res)); return; } QMessageBox::information(this, tr("Success"), tr("%1 has been saved succesfully.").arg(path)); } void QtSail::fit() { QPixmap pixmap; if (m_qimage.width() > m_ui->scrollArea->viewport()->width() || m_qimage.height() > m_ui->scrollArea->viewport()->height()) { pixmap = QPixmap::fromImage(m_qimage.scaled(m_ui->scrollArea->viewport()->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); } else { pixmap = QPixmap::fromImage(m_qimage); } qobject_cast(m_ui->scrollArea->widget())->setPixmap(pixmap); } sail-0.9.8/examples/c++/qt/junior-with-c-api/qtsail.h000066400000000000000000000034631475535176100222320ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef QT_SAIL_H #define QT_SAIL_H #include #include #include #include namespace Ui { class QtSail; } class QtSail : public QWidget { Q_OBJECT public: QtSail(QWidget *parent = nullptr); ~QtSail(); private: sail_status_t loadImage(const QString &path, QImage *qimage); sail_status_t saveImage(const QString &path, const QImage &qimage); QStringList filters() const; private: // slots void onOpenFile(); void onSave(); private: void fit(); private: QScopedPointer m_ui; QImage m_qimage; }; #endif sail-0.9.8/examples/c++/qt/junior-with-c-api/qtsail.manifest000066400000000000000000000015511475535176100236050ustar00rootroot00000000000000 QtSail sail-0.9.8/examples/c++/qt/junior-with-c-api/qtsail.rc000066400000000000000000000000241475535176100223750ustar00rootroot000000000000001 24 qtsail.manifestsail-0.9.8/examples/c++/qt/junior-with-c-api/qtsail.ui000066400000000000000000000051751475535176100224220ustar00rootroot00000000000000 QtSail 0 0 757 435 Qt SAIL demo [junior] Open file... Save image... Qt::Horizontal 40 20 75 true QFrame::Box QFrame::Sunken Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse true 0 0 737 361 scrollArea pushOpen pushSave 5 5 true true true sail-0.9.8/examples/c++/qt/multi-paged-impl.cpp000066400000000000000000000102041475535176100211600ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ QtSail::QtSail(QWidget *parent) : QWidget(parent) { m_ui.reset(new Ui::QtSail); m_ui->setupUi(this); QLabel *l = new QLabel; l->setAlignment(Qt::AlignCenter); m_ui->scrollArea->setWidget(l); m_animationTimer.reset(new QTimer); m_animationTimer->setSingleShot(true); connect(m_animationTimer.data(), &QTimer::timeout, this, [&]{ onNext(); }); connect(m_ui->pushOpen, &QPushButton::clicked, this, &QtSail::onOpenFile); connect(m_ui->pushProbe, &QPushButton::clicked, this, &QtSail::onProbe); connect(m_ui->pushSave, &QPushButton::clicked, this, &QtSail::onSave); connect(m_ui->checkFit, &QCheckBox::toggled, this, &QtSail::onFit); connect(m_ui->pushPrevious, &QPushButton::clicked, this, &QtSail::onPrevious); connect(m_ui->pushNext, &QPushButton::clicked, this, &QtSail::onNext); connect(m_ui->pushStop, &QPushButton::clicked, this, &QtSail::onStop); init(); } void QtSail::onFit(bool fit) { QPixmap pixmap; if (m_qimages.empty()) { return; } const QImage &qimage = m_qimages[m_currentIndex]; if (fit) { if (qimage.width() > m_ui->scrollArea->viewport()->width() || qimage.height() > m_ui->scrollArea->viewport()->height()) { pixmap = QPixmap::fromImage(qimage.scaled(m_ui->scrollArea->viewport()->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); } else { pixmap = QPixmap::fromImage(qimage); } } else { pixmap = QPixmap::fromImage(qimage); } qobject_cast(m_ui->scrollArea->widget())->setPixmap(pixmap); } void QtSail::onPrevious() { if (m_qimages.size() <= 1) { return; } if (m_currentIndex == 0) { m_currentIndex = m_qimages.size()-1; } else { m_currentIndex--; } SAIL_LOG_DEBUG("Image index: %d", m_currentIndex); onFit(m_ui->checkFit->isChecked()); updateCurrentFrameLabel(); } void QtSail::onNext() { if (m_qimages.size() <= 1) { return; } if (m_currentIndex == m_qimages.size()-1) { m_currentIndex = 0; } else { m_currentIndex++; } SAIL_LOG_DEBUG("Image index: %d", m_currentIndex); onFit(m_ui->checkFit->isChecked()); if (m_animated) { m_animationTimer->start(m_delays[m_currentIndex]); } updateCurrentFrameLabel(); } void QtSail::onStop() { m_animationTimer->stop(); m_animated = false; } void QtSail::detectAnimated() { m_animated = std::find_if(m_delays.begin(), m_delays.end(), [&](int v) { return v > 0; }) != m_delays.end(); if (m_animated) { m_animationTimer->start(m_delays.first()); } updateCurrentFrameLabel(); } void QtSail::updateCurrentFrameLabel() { m_ui->labelFrame->setText(QString("%1/%2").arg(m_currentIndex+1).arg(m_qimages.size())); } sail-0.9.8/examples/c++/qt/qimage_sail_pixel_formats.h000066400000000000000000000040171475535176100226720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef QIMAGE_SAIL_PIXEL_FORMATS_H #define QIMAGE_SAIL_PIXEL_FORMATS_H #include #include inline SailPixelFormat qImageFormatToSailPixelFormat(QImage::Format format) { switch (format) { case QImage::Format_Mono: return SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE; case QImage::Format_Grayscale8: return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; case QImage::Format_Indexed8: return SAIL_PIXEL_FORMAT_BPP8_INDEXED; case QImage::Format_RGB888: return SAIL_PIXEL_FORMAT_BPP24_RGB; case QImage::Format_RGBX8888: return SAIL_PIXEL_FORMAT_BPP32_RGBX; case QImage::Format_RGBA8888: return SAIL_PIXEL_FORMAT_BPP32_RGBA; case QImage::Format_ARGB32: return SAIL_PIXEL_FORMAT_BPP32_ARGB; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } #endif sail-0.9.8/examples/c/000077500000000000000000000000001475535176100145365ustar00rootroot00000000000000sail-0.9.8/examples/c/sail-sdl-viewer/000077500000000000000000000000001475535176100175455ustar00rootroot00000000000000sail-0.9.8/examples/c/sail-sdl-viewer/CMakeLists.txt000066400000000000000000000032631475535176100223110ustar00rootroot00000000000000add_executable(sail-sdl-viewer sail-sdl-viewer.c) # Add SDL2 dependencies # if (SAIL_VCPKG) if (UNIX) target_link_libraries(sail-sdl-viewer PRIVATE SDL2::SDL2-static SDL2::SDL2main) else() target_link_libraries(sail-sdl-viewer PRIVATE SDL2::SDL2 SDL2::SDL2main) endif() else() # On OSX and brew, SDL2_INCLUDE_DIRS points to .../SDL2 which makes impossible # inclusion of SDL2/SDL.h. For some reason, /usr/local/include is not included # into the search paths, so we do it explicitly. # if (APPLE) find_path(SAIL_SDL2_INCLUDE_DIR NAMES SDL2/SDL.h) target_include_directories(sail-sdl-viewer PRIVATE ${SAIL_SDL2_INCLUDE_DIR}) endif() # Some SDL2 configs export SDL2::SDL2, some ${SDL2_LIBRARIES} # if (TARGET SDL2::SDL2) target_link_libraries(sail-sdl-viewer PRIVATE SDL2::SDL2) else() # Strip whitespaces. # # Some SDL2 versions have buggy CMake config with extra whitespaces. # Configuration can fail with: # # Target "sail-sdl-viewer" links to item "-L/usr/lib/x86_64-linux-gnu -lSDL2 # " which has leading or trailing whitespace. This is now an error according # to policy CMP0004. # string(STRIP ${SDL2_LIBRARIES} SDL2_LIBRARIES) target_include_directories(sail-sdl-viewer PRIVATE ${SDL2_INCLUDE_DIRS}) target_link_libraries(sail-sdl-viewer PRIVATE ${SDL2_LIBRARIES}) endif() endif() # Depend on sail # target_link_libraries(sail-sdl-viewer PRIVATE sail) # Depend on sail-manip # target_link_libraries(sail-sdl-viewer PRIVATE sail-manip) # Enable ASAN if possible # sail_enable_asan(TARGET sail-sdl-viewer) sail-0.9.8/examples/c/sail-sdl-viewer/sail-sdl-viewer.c000066400000000000000000000100041475535176100227130ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include int main(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return 1; } if (SDL_Init(SDL_INIT_VIDEO) != 0) { fprintf(stderr, "Failed to init video: %s\n", SDL_GetError()); return 1; } /* Load the image. */ struct sail_image *image; SAIL_TRY(sail_load_from_file(argv[1], &image)); /* Convert to BPP32-RGBA. */ struct sail_image *image_converted; SAIL_TRY(sail_convert_image_with_options(image, SAIL_PIXEL_FORMAT_BPP32_RGBA, NULL, &image_converted)); /* We don't need the original image anymore. */ sail_destroy_image(image); image = NULL; SDL_Surface *surface = SDL_CreateRGBSurfaceFrom(image_converted->pixels, image_converted->width, image_converted->height, 32, image_converted->bytes_per_line, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000); if (surface == NULL) { fprintf(stderr, "Failed to create surface: %s\n", SDL_GetError()); return 1; } SDL_Window *window; SDL_Renderer *renderer; /* Create a new window and a renderer. */ if (SDL_CreateWindowAndRenderer(800, 500, SDL_WINDOW_RESIZABLE, &window, &renderer) != 0) { fprintf(stderr, "Failed to create a window: %s\n", SDL_GetError()); return 1; } SDL_SetWindowTitle(window, "SDL SAIL demo"); /* Scale textures nicely. */ SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); /* Create a new SDL texture. */ SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface); if (texture == NULL) { fprintf(stderr, "Failed to create a texture: %s\n", SDL_GetError()); return 1; } /* We don't need the image data anymore. */ sail_destroy_image(image_converted); SDL_FreeSurface(surface); while (true) { /* Handle events. */ SDL_Event event; if (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { break; } } /* Draw the texture. */ SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_RenderPresent(renderer); } SDL_DestroyTexture(texture); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return SAIL_OK; } sail-0.9.8/examples/c/sail/000077500000000000000000000000001475535176100154665ustar00rootroot00000000000000sail-0.9.8/examples/c/sail/CMakeLists.txt000066400000000000000000000007451475535176100202340ustar00rootroot00000000000000add_executable(sail-app sail.c) set_target_properties(sail-app PROPERTIES OUTPUT_NAME sail) # Depend on sail # target_link_libraries(sail-app PRIVATE sail) # Depend on sail-manip # target_link_libraries(sail-app PRIVATE sail-manip) # Enable ASAN if possible # sail_enable_asan(TARGET sail-app) # Install PDB # if (SAIL_INSTALL_PDB) sail_install_pdb(TARGET sail-app RENAME sail.app.pdb) endif() # Installation # install(TARGETS sail-app DESTINATION "${CMAKE_INSTALL_BINDIR}") sail-0.9.8/examples/c/sail/sail.c000066400000000000000000000266371475535176100166000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include /* atoi */ #include #include #include static void print_invalid_argument(void) { fprintf(stderr, "Error: Invalid arguments. Run with -h to see command arguments.\n"); } static sail_status_t convert_impl(const char *input, const char *output, int compression) { SAIL_CHECK_PTR(input); SAIL_CHECK_PTR(output); const struct sail_codec_info *codec_info; void *state; struct sail_image *image; /* Load the image. */ SAIL_LOG_INFO("Input file: %s", input); SAIL_TRY(sail_codec_info_from_path(input, &codec_info)); SAIL_LOG_INFO("Input codec: %s", codec_info->description); SAIL_TRY(sail_start_loading_from_file(input, codec_info, &state)); SAIL_TRY(sail_load_next_frame(state, &image)); SAIL_TRY(sail_stop_loading(state)); /* Save the image. */ SAIL_LOG_INFO("Output file: %s", output); SAIL_TRY(sail_codec_info_from_path(output, &codec_info)); SAIL_LOG_INFO("Output codec: %s", codec_info->description); /* Convert to the best pixel format for saving. */ { struct sail_image *image_converted; SAIL_TRY(sail_convert_image_for_saving(image, codec_info->save_features, &image_converted)); sail_destroy_image(image); image = image_converted; } struct sail_save_options *save_options; SAIL_TRY(sail_alloc_save_options_from_features(codec_info->save_features, &save_options)); /* Apply our tuning. */ SAIL_LOG_INFO("Compression: %d%s", compression, compression == -1 ? " (default)" : ""); save_options->compression_level = compression; SAIL_TRY(sail_start_saving_into_file_with_options(output, codec_info, save_options, &state)); SAIL_TRY(sail_write_next_frame(state, image)); SAIL_TRY(sail_stop_saving(state)); /* Clean up. */ sail_destroy_save_options(save_options); sail_destroy_image(image); return SAIL_OK; } static sail_status_t convert(int argc, char *argv[]) { if (argc < 4 || argc > 6) { print_invalid_argument(); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } /* -1: default compression will be selected. */ int compression = -1; /* Start parsing CLI options from the third argument. */ int i = 4; while (i < argc) { if (strcmp(argv[i], "-c") == 0 || strcmp(argv[i], "--compression") == 0) { if (i == argc-1) { fprintf(stderr, "Error: Missing compression value.\n"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } compression = atoi(argv[i+1]); i += 2; continue; } fprintf(stderr, "Error: Unrecognized option '%s'.\n", argv[i]); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } SAIL_TRY(convert_impl(argv[2], argv[3], compression)); return SAIL_OK; } static bool special_properties_printf_callback(const char *key, const struct sail_variant *value) { printf(" %s : ", key); sail_printf_variant(value); printf("\n"); return true; } static void print_aligned_image_info(const struct sail_image *image) { printf("Size : %ux%u\n", image->width, image->height); if (image->resolution == NULL) { printf("Resolution: : -\n"); } else { printf("Resolution: : %.1fx%.1f\n", image->resolution->x, image->resolution->y); } printf("Pixel format : %s\n", sail_pixel_format_to_string(image->source_image->pixel_format)); printf("ICC profile : %s\n", image->iccp == NULL ? "no" : "yes"); printf("Interlaced : %s\n", image->source_image->interlaced ? "yes" : "no"); printf("Delay : %d ms.\n", image->delay); if (image->meta_data_node != NULL) { printf("Meta data :\n"); for (const struct sail_meta_data_node *meta_data_node = image->meta_data_node; meta_data_node != NULL; meta_data_node = meta_data_node->next) { const struct sail_meta_data *meta_data = meta_data_node->meta_data; const char *meta_data_str = NULL; if (meta_data->key == SAIL_META_DATA_UNKNOWN) { meta_data_str = meta_data->key_unknown; } else { meta_data_str = sail_meta_data_to_string(meta_data->key); } printf(" %-12s: ", meta_data_str); sail_printf_variant(meta_data->value); printf("\n"); } } if (image->source_image->special_properties != NULL) { printf("Special properties :\n"); sail_traverse_hash_map(image->source_image->special_properties, special_properties_printf_callback); } } static sail_status_t probe_impl(const char *path) { SAIL_CHECK_PTR(path); /* Time counter. */ uint64_t start_time = sail_now(); struct sail_image *image; const struct sail_codec_info *codec_info; SAIL_TRY(sail_probe_file(path, &image, &codec_info)); uint64_t elapsed_time = sail_now() - start_time; printf("File : %s\n", path); printf("Codec : %s [%s]\n", codec_info->name, codec_info->description); printf("Codec version : %s\n", codec_info->version); printf("Probe time : %lu ms.\n", (unsigned long)elapsed_time); print_aligned_image_info(image); sail_destroy_image(image); return SAIL_OK; } static sail_status_t probe(int argc, char *argv[]) { if (argc != 3) { print_invalid_argument(); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } SAIL_TRY(probe_impl(argv[2])); return SAIL_OK; } static sail_status_t decode_impl(const char *path) { SAIL_CHECK_PTR(path); const struct sail_codec_info *codec_info; SAIL_TRY(sail_codec_info_from_path(path, &codec_info)); printf("File : %s\n", path); printf("Codec : %s [%s]\n", codec_info->name, codec_info->description); printf("Codec version : %s\n", codec_info->version); /* Time counter. */ uint64_t start_time = sail_now(); /* Decode. */ void *state; SAIL_TRY(sail_start_loading_from_file(path, codec_info, &state)); struct sail_image *image; sail_status_t status; unsigned frame = 0; while ((status = sail_load_next_frame(state, &image)) == SAIL_OK) { printf("Frame #%u\n", frame++); print_aligned_image_info(image); sail_destroy_image(image); } if (status != SAIL_ERROR_NO_MORE_FRAMES) { sail_stop_loading(state); fprintf(stderr, "Error: Decoder error %d.\n", status); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } SAIL_TRY(sail_stop_loading(state)); uint64_t elapsed_time = sail_now() - start_time; printf("Decode time : %lu ms.\n", (unsigned long)elapsed_time); return SAIL_OK; } static sail_status_t decode(int argc, char *argv[]) { if (argc != 3) { print_invalid_argument(); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } SAIL_TRY(decode_impl(argv[2])); return SAIL_OK; } static sail_status_t list_impl(bool verbose) { const struct sail_codec_bundle_node *codec_bundle_node = sail_codec_bundle_list(); for (int counter = 1; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next, counter++) { const struct sail_codec_info *codec_info = codec_bundle_node->codec_bundle->codec_info; printf("%2d. [p%d] %s [%s] %s\n", counter, codec_info->priority, codec_info->name, codec_info->description, codec_info->version); if (verbose) { if (codec_info->load_features->tuning != NULL) { printf(" Tuning: "); for (const struct sail_string_node *node = codec_info->load_features->tuning, *prev = NULL; node != NULL; prev = node, node = node->next) { if (prev != NULL) { printf(", "); } printf("%s", node->string); } printf("\n"); } } } return SAIL_OK; } static sail_status_t list(int argc, char *argv[]) { (void)argv; if (argc < 2 || argc > 3) { print_invalid_argument(); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } bool verbose; if (argc == 2) { verbose = false; } else { verbose = strcmp(argv[2], "-v") == 0; } SAIL_TRY(list_impl(verbose)); return SAIL_OK; } static void help(const char *app) { fprintf(stderr, "SAIL command-line utility.\n\n"); fprintf(stderr, "Usage: %s \n", app); fprintf(stderr, " %s [-v | --version]\n", app); fprintf(stderr, " %s [-h | --help]\n", app); fprintf(stderr, "Commands:\n"); fprintf(stderr, " list [-v] - List supported codecs.\n"); fprintf(stderr, "\n"); fprintf(stderr, " convert [-c | --compression ] - Convert one image format to another.\n"); fprintf(stderr, "\n"); fprintf(stderr, " probe - Retrieve information of the very first image frame found in the file.\n"); fprintf(stderr, " In most cases probing doesn't decode the image data.\n"); fprintf(stderr, " decode - Decode the whole file and print information of all its frames.\n"); } int main(int argc, char *argv[]) { if (argc < 2) { help(argv[0]); return 1; } if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0) { help(argv[0]); return 0; } if (strcmp(argv[1], "-v") == 0 || strcmp(argv[1], "--version") == 0) { fprintf(stderr, "SAIL command-line utility 1.5.0\n"); fprintf(stderr, "SAIL library %s\n", SAIL_VERSION_STRING); return 0; } sail_set_log_barrier(SAIL_LOG_LEVEL_WARNING); if (strcmp(argv[1], "convert") == 0) { SAIL_TRY(convert(argc, argv)); } else if (strcmp(argv[1], "list") == 0) { SAIL_TRY(list(argc, argv)); } else if (strcmp(argv[1], "probe") == 0) { SAIL_TRY(probe(argc, argv)); } else if (strcmp(argv[1], "decode") == 0) { SAIL_TRY(decode(argc, argv)); } else { print_invalid_argument(); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } printf("Success\n"); sail_finish(); return 0; } sail-0.9.8/extra/000077500000000000000000000000001475535176100136215ustar00rootroot00000000000000sail-0.9.8/src/000077500000000000000000000000001475535176100132655ustar00rootroot00000000000000sail-0.9.8/src/bindings/000077500000000000000000000000001475535176100150625ustar00rootroot00000000000000sail-0.9.8/src/bindings/sail-c++/000077500000000000000000000000001475535176100163605ustar00rootroot00000000000000sail-0.9.8/src/bindings/sail-c++/CMakeLists.txt000066400000000000000000000103431475535176100211210ustar00rootroot00000000000000add_library(sail-c++ abstract_io.h abstract_io_adapter.cpp abstract_io_adapter.h arbitrary_data.h at_scope_exit.h codec_info.cpp codec_info.h compression_level.cpp compression_level.h context.cpp context.h conversion_options.cpp conversion_options.h iccp.cpp iccp.h image.cpp image.h image_input.cpp image_input.h image_output.cpp image_output.h io_base.cpp io_base.h io_base_private.h io_file.cpp io_file.h io_memory.cpp io_memory.h load_features.cpp load_features.h load_options.cpp load_options.h log.cpp log.h meta_data.cpp meta_data.h ostream.h ostream.cpp palette.cpp palette.h resolution.cpp resolution.h sail-c++.h save_features.cpp save_features.h save_options.cpp save_options.h source_image.cpp source_image.h special_properties.h suppress_begin.h suppress_c4251.h suppress_end.h tuning.h utils.cpp utils.h utils_private.cpp utils_private.h variant.cpp variant.h) # Build a list of public headers to install # set(PUBLIC_HEADERS abstract_io.h arbitrary_data.h at_scope_exit.h codec_info.h context.h conversion_options.h compression_level.h iccp.h image.h image_input.h image_output.h io_base.h io_file.h io_memory.h load_features.h load_options.h log.h meta_data.h ostream.h palette.h resolution.h sail-c++.h save_features.h save_options.h source_image.h special_properties.h suppress_begin.h suppress_c4251.h suppress_end.h tuning.h utils.h variant.h) set_target_properties(sail-c++ PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} PUBLIC_HEADER "${PUBLIC_HEADERS}") sail_enable_asan(TARGET sail-c++) sail_enable_pch(TARGET sail-c++ HEADER sail-c++.h) if (SAIL_INSTALL_PDB) sail_install_pdb(TARGET sail-c++) endif() # Definitions, includes, link # target_include_directories(sail-c++ PUBLIC $) if (MSVC) target_compile_options(sail-c++ PRIVATE "/EHsc") endif() target_link_libraries(sail-c++ PUBLIC sail-common sail sail-manip) # pkg-config integration # get_target_property(VERSION sail-c++ VERSION) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/sail-c++.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sail-c++.pc" @ONLY) # Installation # install(TARGETS sail-c++ EXPORT SailC++Targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail-c++") # Install development packages # install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sail-c++.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") sail_install_cmake_config(TARGET "SailC++" FOLDER "sailc++" VERSION "${VERSION}") sail-0.9.8/src/bindings/sail-c++/abstract_io.h000066400000000000000000000110321475535176100210200ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_ABSTRACT_IO_CPP_H #define SAIL_ABSTRACT_IO_CPP_H #include /* std::size_t */ #include #include /* seek whence */ #include #include #include namespace sail { /* * Abstract I/O stream represents an input/output abstraction. */ class SAIL_EXPORT abstract_io { public: /* * Destroys the I/O stream. */ virtual ~abstract_io() = default; /* * Returns the I/O stream features. See SailIoFeature. */ virtual int features() const = 0; /* * Reads from the underlying I/O object into the specified buffer. In contrast to strict_read(), * doesn't fail when the actual number of bytes read is smaller than requested. * Assigns the number of bytes actually read to the 'read_size' argument. * * Returns SAIL_OK on success. */ virtual sail_status_t tolerant_read(void *buf, std::size_t size_to_read, std::size_t *read_size) = 0; /* * Reads from the underlying I/O object into the specified buffer. In contrast to tolerant_read(), * fails when the actual number of bytes read is smaller than requested. * * Returns SAIL_OK on success. */ virtual sail_status_t strict_read(void *buf, std::size_t size_to_read) = 0; /* * Writes the specified buffer to the underlying I/O object. In contrast to strict_write(), * doesn't fail when the actual number of bytes written is smaller than requested. * Assigns the number of bytes actually written to the 'written_size' argument. * * Returns SAIL_OK on success. */ virtual sail_status_t tolerant_write(const void *buf, std::size_t size_to_write, std::size_t *written_size) = 0; /* * Writes the specified buffer to the underlying I/O object. In contrast to tolerant_write(), * fails when the actual number of bytes written is smaller than requested. * * Returns SAIL_OK on success. */ virtual sail_status_t strict_write(const void *buf, std::size_t size_to_write) = 0; /* * Sets the I/O position in the underlying I/O object. * * Possible 'whence' values: SEEK_SET, SEEK_CUR, or SEEK_END declared in . * * Returns SAIL_OK on success. */ virtual sail_status_t seek(long offset, int whence) = 0; /* * Assigns the current I/O position in the underlying I/O object. * * Returns SAIL_OK on success. */ virtual sail_status_t tell(std::size_t *offset) = 0; /* * Flushes buffers of the underlying I/O object. Has no effect if the underlying I/O object * is opened for reading. * * Returns SAIL_OK on success. */ virtual sail_status_t flush() = 0; /* * Closes the underlying I/O object. * * Returns SAIL_OK on success. */ virtual sail_status_t close() = 0; /* * Assigns true to the specified result if the underlying I/O object reached the end-of-file indicator. * * Returns SAIL_OK on success. */ virtual sail_status_t eof(bool *result) = 0; /* * Finds and returns a first codec info object that can theoretically read the underlying * I/O stream into a valid image. * * Returns an invalid codec info object if no suitable codec was found. */ virtual sail::codec_info codec_info() = 0; }; } #endif sail-0.9.8/src/bindings/sail-c++/abstract_io_adapter.cpp000066400000000000000000000107121475535176100230570ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { /* * Private functions. */ static sail_status_t wrapped_tolerant_read(void *stream, void *buf, size_t size_to_read, size_t *read_size) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.tolerant_read(buf, size_to_read, read_size)); return SAIL_OK; } static sail_status_t wrapped_strict_read(void *stream, void *buf, size_t size_to_read) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.strict_read(buf, size_to_read)); return SAIL_OK; } static sail_status_t wrapped_tolerant_write(void *stream, const void *buf, size_t size_to_write, size_t *written_size) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.tolerant_write(buf, size_to_write, written_size)); return SAIL_OK; } static sail_status_t wrapped_strict_write(void *stream, const void *buf, size_t size_to_write) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.strict_write(buf, size_to_write)); return SAIL_OK; } static sail_status_t wrapped_seek(void *stream, long offset, int whence) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.seek(offset, whence)); return SAIL_OK; } static sail_status_t wrapped_tell(void *stream, size_t *offset) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.tell(offset)); return SAIL_OK; } static sail_status_t wrapped_flush(void *stream) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.flush()); return SAIL_OK; } static sail_status_t wrapped_close(void *stream) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.close()); return SAIL_OK; } static sail_status_t wrapped_eof(void *stream, bool *result) { sail::abstract_io &abstract_io = *reinterpret_cast(stream); SAIL_TRY(abstract_io.eof(result)); return SAIL_OK; } class SAIL_HIDDEN abstract_io_adapter::pimpl { public: explicit pimpl(sail::abstract_io &other_abstract_io) : abstract_io(other_abstract_io) { sail_io.features = abstract_io.features(); sail_io.stream = &abstract_io; sail_io.tolerant_read = wrapped_tolerant_read; sail_io.strict_read = wrapped_strict_read; sail_io.tolerant_write = wrapped_tolerant_write; sail_io.strict_write = wrapped_strict_write; sail_io.seek = wrapped_seek; sail_io.tell = wrapped_tell; sail_io.flush = wrapped_flush; sail_io.close = wrapped_close; sail_io.eof = wrapped_eof; } sail::abstract_io &abstract_io; struct sail_io sail_io; }; abstract_io_adapter::abstract_io_adapter(sail::abstract_io &abstract_io) : d(new pimpl(abstract_io)) { } abstract_io_adapter::~abstract_io_adapter() { } struct sail_io& abstract_io_adapter::sail_io_c() const { return d->sail_io; } } sail-0.9.8/src/bindings/sail-c++/abstract_io_adapter.h000066400000000000000000000037201475535176100225250ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_ABSTRACT_IO_ADAPTER_CPP_H #define SAIL_ABSTRACT_IO_ADAPTER_CPP_H #include #include #include struct sail_io; namespace sail { class abstract_io; /* * Adapter to make abstract I/O streams suitable for C functions. */ class SAIL_HIDDEN abstract_io_adapter { public: /* * Constructs a new I/O wrapper with the specified abstract I/O stream to wrap. */ explicit abstract_io_adapter(sail::abstract_io &abstract_io); /* * Destroys the I/O wrapper. */ ~abstract_io_adapter(); /* * Returns the I/O stream suitable for passing it to C functions. */ struct sail_io& sail_io_c() const; private: class pimpl; const std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/arbitrary_data.h000066400000000000000000000027301475535176100215230ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_ARBITRARY_DATA_CPP_H #define SAIL_ARBITRARY_DATA_CPP_H #include #include namespace sail { /* * A list of bytes of arbitrary data. Used to hold binary EXIF data, for example. */ using arbitrary_data = std::vector; } #endif sail-0.9.8/src/bindings/sail-c++/at_scope_exit.h000066400000000000000000000050161475535176100213610ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_AT_SCOPE_EXIT_CPP_H #define SAIL_AT_SCOPE_EXIT_CPP_H namespace sail { /* * Helper class for SAIL_AT_SCOPE_EXIT. Not intended to be used by developers. */ template class scope_cleanup { public: explicit scope_cleanup(F f) : m_f(f) { } ~scope_cleanup() { m_f(); } private: F m_f; }; } /* * Executes the specified code when the scope exits. This macro could be used to perform * complex cleanup procedures that cannot be achieved by using destructors. * * For example: * * void do_something() { * acquire_resources(); * * SAIL_AT_SCOPE_EXIT( * release_resources(); * ); * * SAIL_TRY(...); * SAIL_TRY(...); * } */ #define SAIL_AT_SCOPE_EXIT(code) \ auto sail_local_cleanup_lambda = [&] { \ code \ }; \ sail::scope_cleanup \ sail_local_cleanup_lambda_executor(sail_local_cleanup_lambda); \ do { \ (void)sail_local_cleanup_lambda_executor; \ } while(0) #endif sail-0.9.8/src/bindings/sail-c++/cmake/000077500000000000000000000000001475535176100174405ustar00rootroot00000000000000sail-0.9.8/src/bindings/sail-c++/cmake/SailC++Config.cmake.in000066400000000000000000000003351475535176100233170ustar00rootroot00000000000000include(CMakeFindDependencyMacro) find_dependency(Sail REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR}) find_dependency(SailManip REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR}) include(${CMAKE_CURRENT_LIST_DIR}/SailC++Targets.cmake) sail-0.9.8/src/bindings/sail-c++/codec_info.cpp000066400000000000000000000165561475535176100211710ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { class SAIL_HIDDEN codec_info::pimpl { public: pimpl() : sail_codec_info_c(nullptr) {} const sail_codec_info *sail_codec_info_c; std::string version; std::string name; std::string description; std::vector magic_numbers; std::vector extensions; std::vector mime_types; sail::load_features load_features; sail::save_features save_features; }; codec_info::codec_info() : d(new pimpl) { } codec_info::codec_info(const codec_info &ci) : codec_info() { *this = ci; } codec_info& codec_info::operator=(const codec_info &ci) { d->sail_codec_info_c = ci.d->sail_codec_info_c; d->version = ci.version(); d->name = ci.name(); d->description = ci.description(); d->magic_numbers = ci.magic_numbers(); d->extensions = ci.extensions(); d->mime_types = ci.mime_types(); d->load_features = ci.load_features(); d->save_features = ci.save_features(); return *this; } codec_info::codec_info(codec_info &&ci) noexcept { *this = std::move(ci); } codec_info& codec_info::operator=(codec_info &&ci) noexcept { d = std::move(ci.d); return *this; } codec_info::~codec_info() { } bool codec_info::is_valid() const { return d->sail_codec_info_c != nullptr && !d->name.empty() && !d->version.empty(); } const std::string& codec_info::version() const { return d->version; } const std::string& codec_info::name() const { return d->name; } const std::string& codec_info::description() const { return d->description; } const std::vector& codec_info::magic_numbers() const { return d->magic_numbers; } const std::vector& codec_info::extensions() const { return d->extensions; } const std::vector& codec_info::mime_types() const { return d->mime_types; } const load_features& codec_info::load_features() const { return d->load_features; } const save_features& codec_info::save_features() const { return d->save_features; } const char* codec_info::codec_feature_to_string(SailCodecFeature codec_feature) { return sail_codec_feature_to_string(codec_feature); } SailCodecFeature codec_info::codec_feature_from_string(const std::string &str) { return sail_codec_feature_from_string(str.c_str()); } codec_info codec_info::from_magic_number(const std::string &path) { const struct sail_codec_info *sail_codec_info; SAIL_TRY_OR_EXECUTE(sail_codec_info_by_magic_number_from_path(path.c_str(), &sail_codec_info), /* on error */ return codec_info{}); return codec_info(sail_codec_info); } codec_info codec_info::from_magic_number(const void *buffer, size_t buffer_size) { const struct sail_codec_info *sail_codec_info; SAIL_TRY_OR_EXECUTE(sail_codec_info_by_magic_number_from_memory(buffer, buffer_size, &sail_codec_info), /* on error */ return codec_info{}); return codec_info(sail_codec_info); } codec_info codec_info::from_magic_number(sail::abstract_io &abstract_io) { sail::abstract_io_adapter abstract_io_adapter(abstract_io); const struct sail_codec_info *sail_codec_info; SAIL_TRY_OR_EXECUTE(sail_codec_info_by_magic_number_from_io(&abstract_io_adapter.sail_io_c(), &sail_codec_info), /* on error */ return codec_info{}); return codec_info(sail_codec_info); } codec_info codec_info::from_path(const std::string &path) { const struct sail_codec_info *sail_codec_info; SAIL_TRY_OR_EXECUTE(sail_codec_info_from_path(path.c_str(), &sail_codec_info), /* on error */ return codec_info{}); return codec_info(sail_codec_info); } codec_info codec_info::from_extension(const std::string &suffix) { const struct sail_codec_info *sail_codec_info; SAIL_TRY_OR_EXECUTE(sail_codec_info_from_extension(suffix.c_str(), &sail_codec_info), /* on error */ return codec_info{}); return codec_info(sail_codec_info); } codec_info codec_info::from_mime_type(const std::string &mime_type) { const struct sail_codec_info *sail_codec_info; SAIL_TRY_OR_EXECUTE(sail_codec_info_from_mime_type(mime_type.c_str(), &sail_codec_info), /* on error */ return codec_info{}); return codec_info(sail_codec_info); } std::vector codec_info::list() { std::vector codec_info_list; for (const sail_codec_bundle_node *codec_bundle_node = sail_codec_bundle_list(); codec_bundle_node != nullptr; codec_bundle_node = codec_bundle_node->next) { codec_info_list.push_back(codec_info(codec_bundle_node->codec_bundle->codec_info)); } return codec_info_list; } codec_info::codec_info(const sail_codec_info *ci) : codec_info() { if (ci == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::codec_info(). The object is untouched"); return; } d->sail_codec_info_c = ci; std::vector magic_numbers; std::vector extensions; std::vector mime_types; // magic numbers for (const sail_string_node *magic_number_node = ci->magic_number_node; magic_number_node != nullptr; magic_number_node = magic_number_node->next) { magic_numbers.push_back(magic_number_node->string); } // extensions for (const sail_string_node *extension_node = ci->extension_node; extension_node != nullptr; extension_node = extension_node->next) { extensions.push_back(extension_node->string); } // mime types for (const sail_string_node *mime_type_node = ci->mime_type_node; mime_type_node != nullptr; mime_type_node = mime_type_node->next) { mime_types.push_back(mime_type_node->string); } d->version = ci->version; d->name = ci->name; d->description = ci->description; d->magic_numbers = magic_numbers; d->extensions = extensions; d->mime_types = mime_types; d->load_features = sail::load_features(ci->load_features); d->save_features = sail::save_features(ci->save_features); } const sail_codec_info* codec_info::sail_codec_info_c() const { return d->sail_codec_info_c; } } sail-0.9.8/src/bindings/sail-c++/codec_info.h000066400000000000000000000211741475535176100206260ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_INFO_CPP_H #define SAIL_CODEC_INFO_CPP_H #include #include #include #include #include #include struct sail_codec_info; namespace sail { class abstract_io; class load_features; class save_features; /* * codec_info represents codec information. */ class SAIL_EXPORT codec_info { friend class image_input; friend class image_output; public: /* * Constructs an invalid codec info object that can be later initialized with, * for example, from_magic_number(). */ codec_info(); /* * Copies the codec info object. */ codec_info(const codec_info &ci); /* * Copies the codec info object. */ codec_info& operator=(const codec_info &ci); /* * Moves the codec info object. */ codec_info(codec_info &&ci) noexcept; /* * Moves the codec info object. */ codec_info& operator=(codec_info &&ci) noexcept; /* * Destroys the codec info object. */ ~codec_info(); /* * Returns true if the codec info object is valid. */ bool is_valid() const; /* * Returns the codec version as a semver string. For example: "1.2.0". */ const std::string& version() const; /* * Returns the short codec name in upper case. For example: "JPEG". */ const std::string& name() const; /* * Returns the codec description. For example: "Joint Photographic Experts Group". */ const std::string& description() const; /* * Returns the list of supported magic numbers. It can be empty. For example: "FF D8" for JPEGs. * See https://en.wikipedia.org/wiki/File_format#Magic_number. */ const std::vector& magic_numbers() const; /* * Returns the list of supported file extensions. It can be empty. For example: "jpg", "jpeg". */ const std::vector& extensions() const; /* * Returns the list of supported mime types. It can be empty. For example: "image/jpeg". */ const std::vector& mime_types() const; /* * Returns the load features of the codec. */ const sail::load_features& load_features() const; /* * Returns the save features of the codec. */ const sail::save_features& save_features() const; /* * Returns a string representation of the specified codec feature. See SailCodecFeature. * For example: "STATIC" is returned for SAIL_CODEC_FEATURE_STATIC. * * Returns NULL if the codec feature is not known. */ static const char* codec_feature_to_string(SailCodecFeature codec_feature); /* * Returns a codec feature from the string representation. See SailCodecFeature. * For example: SAIL_CODEC_FEATURE_STATIC is returned for "STATIC". * * Returns SAIL_CODEC_FEATURE_UNKNOWN if the codec feature is not known. */ static SailCodecFeature codec_feature_from_string(const std::string &str); /* * Returns a first codec info object that supports the magic number read from the specified file. * Returns an invalid codec info object if no suitable codec was found. * The comparison algorithm is case insensitive. * * Typical usage: codec_info::from_magic_number() -> * image_input::start() -> * image_input::next_frame() -> * image_input::stop(). */ static codec_info from_magic_number(const std::string &path); /* * Returns a first codec info object that supports the magic number read from the specified memory buffer. * Returns an invalid codec info object if no suitable codec was found. * The comparison algorithm is case insensitive. * * Typical usage: codec_info::from_magic_number() -> * image_input::start() -> * image_input::next_frame() -> * image_input::stop(). */ static codec_info from_magic_number(const void *buffer, size_t buffer_size); /* * Returns a first codec info object that supports the magic number read from the specified I/O source. * Returns an invalid codec info object if no suitable codec was found. * The comparison algorithm is case insensitive. * * Typical usage: codec_info::from_magic_number() -> * image_input::start() -> * image_input::next_frame() -> * image_input::stop(). */ static codec_info from_magic_number(sail::abstract_io &abstract_io); /* * Returns a first codec info object that supports loading or saving the specified file path by its file extension. * Returns an invalid codec info object if no suitable codec was found. * The comparison algorithm is case insensitive. For example: "/test.jpg". The path might not exist. * * Typical usage: codec_info::from_path() -> * image_input::start() -> * image_input::next_frame() -> * image_input::stop(). * * Or: codec_info::from_path() -> * image_output::start() -> * image_output::next_frame() -> * image_output::stop(). */ static codec_info from_path(const std::string &path); /* * Returns a first codec info object that supports the specified file extension. * Returns an invalid codec info object if no suitable codec was found. * The comparison algorithm is case-insensitive. For example: "jpg". * * Typical usage: codec_info::from_extension() -> * image_input::start() -> * image_input::next_frame() -> * image_input::stop(). * * Or: codec_info::from_extension() -> * image_output::start() -> * image_output::next_frame() -> * image_output::stop(). */ static codec_info from_extension(const std::string &suffix); /* * Returns a first codec info object that supports the specified mime type. * Returns an invalid codec info object if no suitable codec was found. * The comparison algorithm is case-insensitive. For example: "image/jpeg". * * Typical usage: codec_info::from_mime_type() -> * image_input::start() -> * image_input::next_frame() -> * image_input::stop(). * * Or: codec_info::from_mime_type() -> * image_output::start() -> * image_output::next_frame() -> * image_output::stop(). */ static codec_info from_mime_type(const std::string &mime_type); /* * Returns the list of found codec info objects. Use it to determine the list of possible * image formats, file extensions, and mime types that could be hypothetically loaded or saved by SAIL. */ static std::vector list(); private: /* * Makes a deep copy of the specified codec info and stores the pointer for further use. * When the SAIL context gets uninitialized, the pointer becomes dangling. */ explicit codec_info(const sail_codec_info *ci); const sail_codec_info* sail_codec_info_c() const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/compression_level.cpp000066400000000000000000000074761475535176100226320ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { class SAIL_HIDDEN compression_level::pimpl { public: pimpl() : sail_compression_level(nullptr) { SAIL_TRY_OR_EXECUTE(sail_alloc_compression_level(&sail_compression_level), /* on error */ throw std::bad_alloc()); } ~pimpl() { sail_destroy_compression_level(sail_compression_level); } struct sail_compression_level *sail_compression_level; }; compression_level::compression_level(const sail::compression_level &cl) : compression_level() { *this = cl; } compression_level& compression_level::operator=(const sail::compression_level &compression_level) { d->sail_compression_level->min_level = compression_level.min_level(); d->sail_compression_level->max_level = compression_level.max_level(); d->sail_compression_level->default_level = compression_level.default_level(); d->sail_compression_level->step = compression_level.step(); return *this; } compression_level::compression_level(sail::compression_level &&compression_level) noexcept { *this = std::move(compression_level); } compression_level& compression_level::operator=(sail::compression_level &&compression_level) noexcept { d = std::move(compression_level.d); return *this; } compression_level::~compression_level() { } bool compression_level::is_valid() const { return d->sail_compression_level->min_level < d->sail_compression_level->max_level && d->sail_compression_level->default_level >= d->sail_compression_level->min_level && d->sail_compression_level->default_level <= d->sail_compression_level->max_level; } double compression_level::min_level() const { return d->sail_compression_level->min_level; } double compression_level::max_level() const { return d->sail_compression_level->max_level; } double compression_level::default_level() const { return d->sail_compression_level->default_level; } double compression_level::step() const { return d->sail_compression_level->step; } compression_level::compression_level() : d(new pimpl) { } compression_level::compression_level(const sail_compression_level *cl) : compression_level() { if (cl == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::compression_level(). The object is untouched"); return; } d->sail_compression_level->min_level = cl->min_level; d->sail_compression_level->max_level = cl->max_level; d->sail_compression_level->default_level = cl->default_level; d->sail_compression_level->step = cl->step; } } sail-0.9.8/src/bindings/sail-c++/compression_level.h000066400000000000000000000063701475535176100222670ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_COMPRESSION_LEVEL_CPP_H #define SAIL_COMPRESSION_LEVEL_CPP_H #include #include struct sail_compression_level; namespace sail { /* * Compression level. */ class SAIL_EXPORT compression_level { friend class save_features; public: /* * Copies the compression level. */ compression_level(const sail::compression_level &cl); /* * Copies the compression level. */ compression_level& operator=(const sail::compression_level &compression_level); /* * Moves the compression level. */ compression_level(sail::compression_level &&compression_level) noexcept; /* * Moves the compression level. */ compression_level& operator=(sail::compression_level &&compression_level) noexcept; /* * Destroys the compression level. */ ~compression_level(); /* * Returns true if min_level() < max_level() and default_level() is within the range. */ bool is_valid() const; /* * Returns the minimum compression value. For lossy codecs, more compression * means less quality and vice versa. For lossless codecs, more compression * means nothing but a smaller file size. */ double min_level() const; /* * Returns the maximum compression value. For lossy codecs, more compression * means less quality and vice versa. For lossless codecs, more compression * means nothing but a smaller file size. */ double max_level() const; /* * Returns the default compression value within the min/max range. */ double default_level() const; /* * Returns the step to increase or decrease compression levels in the range. * Can be used in UI to build a compression level selection component. */ double step() const; private: compression_level(); /* * Makes a deep copy of the specified compression level. */ explicit compression_level(const sail_compression_level *compression_level); private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/context.cpp000066400000000000000000000031341475535176100205510ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { sail_status_t context::init() { SAIL_TRY(init(0)); return SAIL_OK; } sail_status_t context::init(int flags) { SAIL_TRY(sail_init_with_flags(flags)); return SAIL_OK; } sail_status_t context::unload_codecs() { SAIL_TRY(sail_unload_codecs()); return SAIL_OK; } void context::finish() { sail_finish(); } } sail-0.9.8/src/bindings/sail-c++/context.h000066400000000000000000000132511475535176100202170ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CONTEXT_CPP_H #define SAIL_CONTEXT_CPP_H #include #include #include /* * SAIL context. * * SAIL context enumerates and holds a list of available codec info objects and a list of loaded codecs. * It's a global static object being created on demand by all SAIL loading, saving, and probing functions. * If you want to allocate SAIL context explicitly, use init(). All SAIL loading, saving, and probing * functions will re-use it then. * * SAIL context modification (creating, destroying, loading and unloading codecs) is guarded with a mutex * to avoid unpredictable errors in a multi-threaded environment. */ namespace sail { class SAIL_EXPORT context { public: context() = delete; context(const context&) = delete; context& operator=(const context&) = delete; /* * Initializes a new SAIL global static context with default flags. Does nothing * if a global context already exists. See also init(flags). * * In general, SAIL initializes a new global static context automatically. You can use * this method if you want to initialize it explicitly for some reason. * * Returns SAIL_OK on success. */ static sail_status_t init(); /* * Initializes a new SAIL global static context with the specific flags. Does nothing * if a global context already exists. Builds a list of available codecs. See SailInitFlags. * * Use this method when you need specific features like preloading codecs. If you don't need * specific features, using this method is optional. All loading or saving functions allocate * a global static context implicitly when they need it and when it doesn't exist yet. * * Codecs path search algorithm (first found path wins): * * 1. Conan recipe on any platform * Codecs are combined into a dynamically linked library, so no need to search them. * * 2. VCPKG port on any platform * Codecs are combined into a dynamically linked library, so no need to search them. * * 3. Manually compiled on any platform with SAIL_COMBINE_CODECS=ON * Codecs are combined into a dynamically linked library, so no need to search them. * * 4. Manually compiled on Windows with SAIL_COMBINE_CODECS=OFF (the default) * 1. SAIL_CODECS_PATH environment variable * 2. \lib\sail\codecs * 3. Hardcoded SAIL_CODECS_PATH in config.h * * 5. Manually compiled on Unix (including macOS) SAIL_COMBINE_CODECS=OFF (the default) * 1. SAIL_CODECS_PATH environment variable * 2. Hardcoded SAIL_CODECS_PATH in config.h * * /lib is added to LD_LIBRARY_PATH. * * Additionally, SAIL_THIRD_PARTY_CODECS_PATH environment variable with a list of ';'-separated paths * is searched if SAIL_THIRD_PARTY_CODECS_PATH is enabled in CMake (the default), so you can load * your own codecs from there. * * Returns SAIL_OK on success. */ static sail_status_t init(int flags); /* * Unloads all the loaded codecs from the global static context to release memory occupied by them. * Use this method if you want to release some memory but do not want to deinitialize SAIL * with finish(). Subsequent attempts to load or save images will reload necessary SAIL codecs * from disk. * * Warning: Make sure no loading or saving operations are in progress before calling unload_codecs(). * Failure to do so may lead to a crash. * * Typical usage: This is a standalone method that can be called at any time (with the restriction above). * * Returns SAIL_OK on success. */ static sail_status_t unload_codecs(); /* * Destroys the global static context that was implicitly or explicitly allocated by * loading or saving functions. * * Unloads all codecs. All pointers to codec info objects, load and save features, and codecs * get invalidated. Using them after calling finish() may lead to a crash. * * It's possible to initialize a new global static context afterwards, implicitly or explicitly. * * Warning: Make sure no loading or saving operations are in progress before calling finish(). * Failure to do so may lead to a crash. * * Typical usage: This is a standalone method that can be called at any time (with the restriction above). */ static void finish(); }; } #endif sail-0.9.8/src/bindings/sail-c++/conversion_options.cpp000066400000000000000000000101031475535176100230170ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include namespace sail { class SAIL_HIDDEN conversion_options::pimpl { public: pimpl() : conversion_options(nullptr) { SAIL_TRY_OR_EXECUTE(sail_alloc_conversion_options(&conversion_options), /* on error */ throw std::bad_alloc()); } ~pimpl() { sail_destroy_conversion_options(conversion_options); } sail_conversion_options *conversion_options; }; conversion_options::conversion_options() : d(new pimpl) { } conversion_options::conversion_options(int options, const sail_rgb48_t &rgb48) : conversion_options() { set_options(options); set_background(rgb48); } conversion_options::conversion_options(int options, const sail_rgb24_t &rgb24) : conversion_options() { set_options(options); set_background(rgb24); } conversion_options::conversion_options(const conversion_options &co) : conversion_options() { *this = co; } conversion_options& conversion_options::operator=(const conversion_options &co) { set_options(co.options()); set_background(co.background48()); set_background(co.background24()); return *this; } conversion_options::conversion_options(conversion_options &&co) noexcept { *this = std::move(co); } conversion_options& conversion_options::operator=(conversion_options &&co) noexcept { d = std::move(co.d); return *this; } conversion_options::~conversion_options() { } int conversion_options::options() const { return d->conversion_options->options; } sail_rgb48_t conversion_options::background48() const { return d->conversion_options->background48; } sail_rgb24_t conversion_options::background24() const { return d->conversion_options->background24; } void conversion_options::set_options(int options) { d->conversion_options->options = options; } void conversion_options::set_background(const sail_rgb48_t &rgb48) { d->conversion_options->background48 = rgb48; d->conversion_options->background24 = { static_cast(rgb48.component1 / 257), static_cast(rgb48.component2 / 257), static_cast(rgb48.component3 / 257) }; } void conversion_options::set_background(const sail_rgb24_t &rgb24) { d->conversion_options->background24 = rgb24; d->conversion_options->background48 = { static_cast(rgb24.component1 * 257), static_cast(rgb24.component2 * 257), static_cast(rgb24.component3 * 257) }; } sail_status_t conversion_options::to_sail_conversion_options(sail_conversion_options **conversion_options) const { SAIL_CHECK_PTR(conversion_options); SAIL_TRY(sail_alloc_conversion_options(conversion_options)); **conversion_options = *d->conversion_options; return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/conversion_options.h000066400000000000000000000101651475535176100224740ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CONVERSION_OPTIONS_CPP_H #define SAIL_CONVERSION_OPTIONS_CPP_H #include #include #include #include #include struct sail_conversion_options; namespace sail { /* * Image conversion options. */ class SAIL_EXPORT conversion_options { friend class image; public: /* * Constructs an empty conversion options object. */ conversion_options(); /* * Constructs a new conversion options object out of the or-ed SailConversionOption-s * and the 48-bit color to blend 48-bit images. * If the options argument is zero, SAIL_CONVERSION_OPTION_DROP_ALPHA is assumed. * Additionally, calculates and sets a new 24-bit background color to blend 24-bit images. */ conversion_options(int options, const sail_rgb48_t &rgb48); /* * Constructs a new conversion options object out of the or-ed SailConversionOption-s * and the 24-bit color to blend 24-bit images. * If the options argument is zero, SAIL_CONVERSION_OPTION_DROP_ALPHA is assumed. * Additionally, calculates and sets a new 48-bit background color to blend 48-bit images. */ conversion_options(int options, const sail_rgb24_t &rgb24); /* * Copies the conversion options object. */ conversion_options(const conversion_options &co); /* * Copies the conversion options object. */ conversion_options& operator=(const conversion_options &co); /* * Moves the conversion options object. */ conversion_options(conversion_options &&co) noexcept; /* * Moves the conversion options object. */ conversion_options& operator=(conversion_options &&co) noexcept; /* * Destroys the conversion options object. */ ~conversion_options(); /* * Returns the or-ed SailConversionOption-s. */ int options() const; /* * Returns the 48-bit background color to blend 48-bit images. */ sail_rgb48_t background48() const; /* * Returns the 24-bit background color to blend 24-bit images. */ sail_rgb24_t background24() const; /* * Sets new or-ed SailConversionOption-s. If zero, SAIL_CONVERSION_OPTION_DROP_ALPHA is assumed. */ void set_options(int options); /* * Sets a new 48-bit background color to blend 48-bit images. * Additionally, calculates and sets a new 24-bit background color to blend 24-bit images. */ void set_background(const sail_rgb48_t &rgb48); /* * Sets a new 24-bit background color to blend 24-bit images. * Additionally, calculates and sets a new 48-bit background color to blend 48-bit images. */ void set_background(const sail_rgb24_t &rgb24); private: sail_status_t to_sail_conversion_options(sail_conversion_options **conversion_options) const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/iccp.cpp000066400000000000000000000060251475535176100200050ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { class SAIL_HIDDEN iccp::pimpl { public: pimpl() { } void reset() { data.clear(); } arbitrary_data data; }; iccp::iccp() : d(new pimpl) { } iccp::iccp(const void *data, std::size_t data_size) : iccp() { set_data(data, data_size); } iccp::iccp(const arbitrary_data &data) : iccp() { set_data(data); } iccp::iccp(const sail::iccp &ic) : iccp() { *this = ic; } iccp& iccp::operator=(const sail::iccp &iccp) { d->reset(); if (iccp.is_valid()) { set_data(iccp.data()); } return *this; } iccp::iccp(sail::iccp &&iccp) noexcept { *this = std::move(iccp); } iccp& iccp::operator=(sail::iccp &&iccp) noexcept { d = std::move(iccp.d); return *this; } iccp::~iccp() { } bool iccp::is_valid() const { return !d->data.empty(); } const arbitrary_data& iccp::data() const { return d->data; } void iccp::set_data(const void *data, std::size_t data_size) { d->reset(); copy(data, data_size); } void iccp::set_data(const arbitrary_data &data) { set_data(data.data(), data.size()); } iccp::iccp(const sail_iccp *ic) : iccp() { if (ic == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::iccp(). The object is untouched"); return; } set_data(ic->data, ic->size); } sail_status_t iccp::to_sail_iccp(sail_iccp **iccp) const { SAIL_CHECK_PTR(iccp); sail_iccp *iccp_local; SAIL_TRY(sail_alloc_iccp_from_data(d->data.data(), static_cast(d->data.size()), &iccp_local)); *iccp = iccp_local; return SAIL_OK; } void iccp::copy(const void *data, std::size_t data_size) { d->data.resize(data_size); if (data_size > 0) { memcpy(d->data.data(), data, data_size); } } } sail-0.9.8/src/bindings/sail-c++/iccp.h000066400000000000000000000060051475535176100174500ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_ICCP_CPP_H #define SAIL_ICCP_CPP_H #include /* std::size_t */ #include #include #include #include struct sail_iccp; namespace sail { /* * ICC profile. */ class SAIL_EXPORT iccp { friend class image; public: /* * Constructs an invalid ICC profile. */ iccp(); /* * Constructs a new ICC profile from the binary data. The data is deep copied. */ iccp(const void *data, std::size_t data_size); /* * Constructs a new ICC profile from the binary data. */ explicit iccp(const arbitrary_data &data); /* * Copies the ICC profile. */ iccp(const sail::iccp &ic); /* * Copies the ICC profile. */ iccp& operator=(const sail::iccp &iccp); /* * Moves the ICC profile. */ iccp(sail::iccp &&iccp) noexcept; /* * Moves the ICC profile. */ iccp& operator=(sail::iccp &&iccp) noexcept; /* * Destroys the ICC profile. */ ~iccp(); /* * Returns true if the ICC profile data is not empty. It doesn't validate the data. */ bool is_valid() const; /* * Returns the ICC profile binary data. */ const arbitrary_data& data() const; /* * Sets new ICC profile binary data. The data is deep copied. */ void set_data(const void *data, std::size_t data_size); /* * Sets new ICC profile binary data. */ void set_data(const arbitrary_data &data); private: /* * Makes a deep copy of the specified ICC profile. */ explicit iccp(const sail_iccp *ic); sail_status_t to_sail_iccp(sail_iccp **iccp) const; void copy(const void *data, std::size_t data_size); private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/image.cpp000066400000000000000000000533461475535176100201610ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include // std::move #include #include #include namespace sail { class SAIL_HIDDEN image::pimpl { public: pimpl() : sail_image(nullptr) , pixels_size(0) , shallow_pixels(false) { SAIL_TRY_OR_EXECUTE(sail_alloc_image(&sail_image), /* on error */ throw std::bad_alloc()); } ~pimpl() { if (shallow_pixels) { sail_image->pixels = nullptr; } sail_destroy_image(sail_image); } void reset_pixels() { if (!shallow_pixels) { sail_free(sail_image->pixels); } sail_image->pixels = nullptr; pixels_size = 0; shallow_pixels = false; } struct sail_image *sail_image; sail::resolution resolution; sail::palette palette; std::vector meta_data; sail::iccp iccp; sail::source_image source_image; std::size_t pixels_size; bool shallow_pixels; }; image::image() : d(new pimpl) { } image::image(const std::string &path) : image() { load(path); } image::image(SailPixelFormat pixel_format, unsigned width, unsigned height) : image() { set_dimensions(width, height); set_pixel_format(pixel_format); set_bytes_per_line_auto(); d->pixels_size = static_cast(height) * bytes_per_line(); SAIL_TRY_OR_EXECUTE(sail_malloc(d->pixels_size, &d->sail_image->pixels), /* on error */ throw std::bad_alloc()); } image::image(SailPixelFormat pixel_format, unsigned width, unsigned height, unsigned bytes_per_line) : image() { set_dimensions(width, height); set_pixel_format(pixel_format); set_bytes_per_line(bytes_per_line); d->pixels_size = static_cast(height) * bytes_per_line; SAIL_TRY_OR_EXECUTE(sail_malloc(d->pixels_size, &d->sail_image->pixels), /* on error */ throw std::bad_alloc()); } image::image(void *pixels, SailPixelFormat pixel_format, unsigned width, unsigned height) : image() { set_dimensions(width, height); set_pixel_format(pixel_format); set_bytes_per_line_auto(); set_shallow_pixels(pixels); } image::image(void *pixels, SailPixelFormat pixel_format, unsigned width, unsigned height, unsigned bytes_per_line) : image() { set_dimensions(width, height); set_pixel_format(pixel_format); set_bytes_per_line(bytes_per_line); set_shallow_pixels(pixels); } image::image(const image &img) : image() { *this = img; } image& image::operator=(const sail::image &image) { set_dimensions(image.width(), image.height()); set_bytes_per_line(image.bytes_per_line()); set_resolution(image.resolution()); set_pixel_format(image.pixel_format()); set_gamma(image.gamma()); set_delay(image.delay()); set_palette(image.palette()); set_meta_data(image.meta_data()); set_iccp(image.iccp()); set_source_image(image.source_image()); set_pixels(image.pixels(), image.pixels_size()); return *this; } image::image(sail::image &&image) noexcept { *this = std::move(image); } image& image::operator=(sail::image &&image) noexcept { d = std::move(image.d); return *this; } image::~image() { } bool image::is_valid() const { return d->sail_image != nullptr && d->sail_image->width > 0 && d->sail_image->height > 0 && d->sail_image->bytes_per_line > 0 && d->sail_image->pixel_format != SAIL_PIXEL_FORMAT_UNKNOWN && d->sail_image->pixels != nullptr; } bool image::is_indexed() const { return is_indexed(d->sail_image->pixel_format); } bool image::is_grayscale() const { return is_grayscale(d->sail_image->pixel_format); } bool image::is_rgb_family() const { return is_rgb_family(d->sail_image->pixel_format); } unsigned image::width() const { return d->sail_image->width; } unsigned image::height() const { return d->sail_image->height; } unsigned image::bytes_per_line() const { return d->sail_image->bytes_per_line; } const sail::resolution& image::resolution() const { return d->resolution; } SailPixelFormat image::pixel_format() const { return d->sail_image->pixel_format; } unsigned image::bits_per_pixel() const { return sail_bits_per_pixel(pixel_format()); } double image::gamma() const { return d->sail_image->gamma; } int image::delay() const { return d->sail_image->delay; } const sail::palette& image::palette() const { return d->palette; } const std::vector& image::meta_data() const { return d->meta_data; } std::vector& image::meta_data() { return d->meta_data; } const sail::iccp& image::iccp() const { return d->iccp; } const sail::source_image& image::source_image() const { return d->source_image; } void* image::pixels() { return d->sail_image->pixels; } const void* image::pixels() const { return d->sail_image->pixels; } void* image::scan_line(unsigned i) { return reinterpret_cast(pixels()) + i * bytes_per_line(); } const void* image::scan_line(unsigned i) const { return reinterpret_cast(pixels()) + i * bytes_per_line(); } std::size_t image::pixels_size() const { return d->pixels_size; } void image::set_resolution(const sail::resolution &resolution) { d->resolution = resolution; } void image::set_resolution(sail::resolution &&resolution) noexcept { d->resolution = std::move(resolution); } void image::set_gamma(double gamma) { d->sail_image->gamma = gamma; } void image::set_delay(int delay) { d->sail_image->delay = delay; } void image::set_palette(const sail::palette &palette) { d->palette = palette; } void image::set_palette(sail::palette &&palette) noexcept { d->palette = std::move(palette); } void image::set_meta_data(const std::vector &meta_data) { d->meta_data = meta_data; } void image::set_meta_data(std::vector &&meta_data) noexcept { d->meta_data = std::move(meta_data); } void image::set_iccp(const sail::iccp &iccp) { d->iccp = iccp; } void image::set_iccp(sail::iccp &&iccp) noexcept { d->iccp = std::move(iccp); } sail_status_t image::load(const std::string &path) { image_input input(path); image img; SAIL_TRY(input.next_frame(&img)); *this = std::move(img); return SAIL_OK; } sail_status_t image::save(const std::string &path) { image_output output(path); SAIL_TRY(output.next_frame(*this)); return SAIL_OK; } bool image::can_convert(SailPixelFormat pixel_format) { if (!is_valid()) { return false; } return sail_can_convert(d->sail_image->pixel_format, pixel_format); } sail_status_t image::convert(SailPixelFormat pixel_format) { SAIL_TRY(convert(pixel_format, conversion_options{})); return SAIL_OK; } sail_status_t image::convert(SailPixelFormat pixel_format, const conversion_options &options) { if (!is_valid()) { SAIL_LOG_ERROR("Conversion failed as the input image is invalid"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } sail_conversion_options *sail_conversion_options = nullptr; sail_image *sail_img = nullptr; SAIL_AT_SCOPE_EXIT( if (sail_img != nullptr) { if (sail_img->palette != nullptr) { sail_img->palette->data = nullptr; } sail_img->pixels = nullptr; sail_destroy_image(sail_img); } sail_destroy_conversion_options(sail_conversion_options); ); SAIL_TRY(options.to_sail_conversion_options(&sail_conversion_options)); SAIL_TRY(sail_alloc_image(&sail_img)); sail_img->width = d->sail_image->width; sail_img->height = d->sail_image->height; sail_img->bytes_per_line = d->sail_image->bytes_per_line; sail_img->pixel_format = d->sail_image->pixel_format; sail_img->pixels = d->sail_image->pixels; if (d->palette.is_valid()) { SAIL_TRY(sail_alloc_palette(&sail_img->palette)); sail_img->palette->data = const_cast(reinterpret_cast(d->palette.data().data())); sail_img->palette->color_count = d->palette.color_count(); sail_img->palette->pixel_format = d->palette.pixel_format(); } sail_image *sail_image_output = nullptr; SAIL_TRY(sail_convert_image_with_options(sail_img, pixel_format, sail_conversion_options, &sail_image_output)); d->reset_pixels(); d->sail_image->bytes_per_line = sail_image_output->bytes_per_line; d->sail_image->pixel_format = sail_image_output->pixel_format; d->sail_image->pixels = sail_image_output->pixels; d->pixels_size = static_cast(sail_image_output->height) * sail_image_output->bytes_per_line; d->shallow_pixels = false; sail_image_output->pixels = nullptr; sail_destroy_image(sail_image_output); return SAIL_OK; } sail_status_t image::convert(const sail::save_features &save_features) { SAIL_TRY(convert(save_features, conversion_options{})); return SAIL_OK; } sail_status_t image::convert(const sail::save_features &save_features, const conversion_options &options) { if (!is_valid()) { SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } SailPixelFormat best_pixel_format = closest_pixel_format(d->sail_image->pixel_format, save_features); if (best_pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_ERROR("Failed to find the best output format for saving %s image", sail_pixel_format_to_string(d->sail_image->pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } if (best_pixel_format == d->sail_image->pixel_format) { return SAIL_OK; } else { SAIL_TRY(convert(best_pixel_format, options)); } return SAIL_OK; } sail_status_t image::convert_to(SailPixelFormat pixel_format, sail::image *image) const { SAIL_TRY(convert_to(pixel_format, conversion_options{}, image)); return SAIL_OK; } sail_status_t image::convert_to(SailPixelFormat pixel_format, const conversion_options &options, sail::image *image) const { SAIL_CHECK_PTR(image); if (!is_valid()) { SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } sail_conversion_options *sail_conversion_options = nullptr; sail_image *sail_img; SAIL_TRY(to_sail_image(&sail_img)); SAIL_AT_SCOPE_EXIT( sail_img->pixels = nullptr; sail_destroy_image(sail_img); sail_destroy_conversion_options(sail_conversion_options); ); SAIL_TRY(options.to_sail_conversion_options(&sail_conversion_options)); sail_image *sail_image_output = nullptr; SAIL_TRY(sail_convert_image_with_options(sail_img, pixel_format, sail_conversion_options, &sail_image_output)); *image = sail::image(sail_image_output); sail_image_output->pixels = nullptr; sail_destroy_image(sail_image_output); return SAIL_OK; } sail_status_t image::convert_to(const sail::save_features &save_features, sail::image *image) const { SAIL_TRY(convert_to(save_features, conversion_options{}, image)); return SAIL_OK; } sail_status_t image::convert_to(const sail::save_features &save_features, const conversion_options &options, sail::image *image) const { if (!is_valid()) { SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } SailPixelFormat best_pixel_format = closest_pixel_format(d->sail_image->pixel_format, save_features); if (best_pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_ERROR("Failed to find the best output format for saving %s image", sail_pixel_format_to_string(d->sail_image->pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } if (best_pixel_format == d->sail_image->pixel_format) { *image = *this; return SAIL_OK; } else { SAIL_TRY(convert_to(best_pixel_format, options, image)); } return SAIL_OK; } image image::convert_to(SailPixelFormat pixel_format) const { image img; SAIL_TRY_OR_EXECUTE(convert_to(pixel_format, &img), /* on error */ return img); return img; } image image::convert_to(SailPixelFormat pixel_format, const conversion_options &options) const { image img; SAIL_TRY_OR_EXECUTE(convert_to(pixel_format, options, &img), /* on error */ return img); return img; } image image::convert_to(const sail::save_features &save_features) const { image img; SAIL_TRY_OR_EXECUTE(convert_to(save_features, conversion_options{}, &img), /* on error */ return img); return img; } image image::convert_to(const sail::save_features &save_features, const conversion_options &options) const { image img; SAIL_TRY_OR_EXECUTE(convert_to(save_features, options, &img), /* on error */ return img); return img; } SailPixelFormat image::closest_pixel_format(const std::vector &pixel_formats) const { return sail_closest_pixel_format(d->sail_image->pixel_format, pixel_formats.data(), pixel_formats.size()); } SailPixelFormat image::closest_pixel_format(const sail::save_features &save_features) const { return sail_closest_pixel_format(d->sail_image->pixel_format, save_features.pixel_formats().data(), save_features.pixel_formats().size()); } sail_status_t image::mirror(SailOrientation orientation) { SAIL_TRY(sail_mirror(d->sail_image, orientation)); return SAIL_OK; } bool image::can_convert(SailPixelFormat input_pixel_format, SailPixelFormat output_pixel_format) { return sail_can_convert(input_pixel_format, output_pixel_format); } SailPixelFormat image::closest_pixel_format(SailPixelFormat input_pixel_format, const std::vector &pixel_formats) { return sail_closest_pixel_format(input_pixel_format, pixel_formats.data(), pixel_formats.size()); } SailPixelFormat image::closest_pixel_format(SailPixelFormat input_pixel_format, const sail::save_features &save_features) { return sail_closest_pixel_format(input_pixel_format, save_features.pixel_formats().data(), save_features.pixel_formats().size()); } unsigned image::bits_per_pixel(SailPixelFormat pixel_format) { return sail_bits_per_pixel(pixel_format); } unsigned image::bytes_per_line(unsigned width, SailPixelFormat pixel_format) { return sail_bytes_per_line(width, pixel_format); } bool image::is_indexed(SailPixelFormat pixel_format) { return sail_is_indexed(pixel_format); } bool image::is_grayscale(SailPixelFormat pixel_format) { return sail_is_grayscale(pixel_format); } bool image::is_rgb_family(SailPixelFormat pixel_format) { return sail_is_rgb_family(pixel_format); } const char* image::pixel_format_to_string(SailPixelFormat pixel_format) { return sail_pixel_format_to_string(pixel_format); } SailPixelFormat image::pixel_format_from_string(const std::string &str) { return sail_pixel_format_from_string(str.c_str()); } const char* chroma_subsampling_to_string(SailChromaSubsampling chroma_subsampling) { return sail_chroma_subsampling_to_string(chroma_subsampling); } SailChromaSubsampling chroma_subsampling_from_string(const std::string &str) { return sail_chroma_subsampling_from_string(str.data()); } const char* image::orientation_to_string(SailOrientation orientation) { return sail_orientation_to_string(orientation); } SailOrientation image::orientation_from_string(const std::string &str) { return sail_orientation_from_string(str.data()); } const char* image::compression_to_string(SailCompression compression) { return sail_compression_to_string(compression); } SailCompression image::compression_from_string(const std::string &str) { return sail_compression_from_string(str.c_str()); } image::image(const sail_image *sail_image) : image() { if (sail_image == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::image(). The object is untouched"); return; } std::vector meta_data; for(const sail_meta_data_node *node = sail_image->meta_data_node; node != nullptr; node = node->next) { meta_data.push_back(sail::meta_data(node->meta_data)); } set_dimensions(sail_image->width, sail_image->height); set_bytes_per_line(sail_image->bytes_per_line); set_resolution(sail::resolution(sail_image->resolution)); set_pixel_format(sail_image->pixel_format); set_gamma(sail_image->gamma); set_delay(sail_image->delay); set_palette(sail::palette(sail_image->palette)); set_meta_data(meta_data); set_iccp(sail::iccp(sail_image->iccp)); set_source_image(sail::source_image(sail_image->source_image)); if (sail_image->pixels != nullptr) { SAIL_TRY_OR_EXECUTE(transfer_pixels_pointer(sail_image), /* on error */ return); } } sail_status_t image::transfer_pixels_pointer(const sail_image *sail_image) { SAIL_CHECK_PTR(sail_image); sail_free(d->sail_image->pixels); d->sail_image->pixels = nullptr; d->pixels_size = 0; d->shallow_pixels = false; if (sail_image->pixels == nullptr) { return SAIL_OK; } d->sail_image->pixels = sail_image->pixels; d->pixels_size = static_cast(sail_image->height) * sail_image->bytes_per_line; return SAIL_OK; } sail_status_t image::to_sail_image(sail_image **image) const { SAIL_CHECK_PTR(image); sail_image *image_local = nullptr; SAIL_AT_SCOPE_EXIT( // Pixels are shallow copied if (image_local != nullptr) { image_local->pixels = nullptr; } sail_destroy_image(image_local); ); SAIL_TRY(sail_alloc_image(&image_local)); // Pixels are shallow copied image_local->pixels = d->sail_image->pixels; image_local->width = d->sail_image->width; image_local->height = d->sail_image->height; image_local->bytes_per_line = d->sail_image->bytes_per_line; // Resulting meta entries sail_meta_data_node **last_meta_data_node = &image_local->meta_data_node; for (const sail::meta_data &meta_data : d->meta_data) { sail_meta_data_node *meta_data_node; SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node)); SAIL_TRY_OR_CLEANUP(meta_data.to_sail_meta_data(&meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); *last_meta_data_node = meta_data_node; last_meta_data_node = &meta_data_node->next; } if (d->resolution.is_valid()) { SAIL_TRY(d->resolution.to_sail_resolution(&image_local->resolution)); } image_local->pixel_format = d->sail_image->pixel_format; image_local->delay = d->sail_image->delay; if (d->palette.is_valid()) { SAIL_TRY(d->palette.to_sail_palette(&image_local->palette)); } if (d->iccp.is_valid()) { SAIL_TRY(d->iccp.to_sail_iccp(&image_local->iccp)); } if (d->source_image.is_valid()) { SAIL_TRY(d->source_image.to_sail_source_image(&image_local->source_image)); } *image = image_local; image_local = nullptr; return SAIL_OK; } void image::set_dimensions(unsigned width, unsigned height) { d->sail_image->width = width; d->sail_image->height = height; } void image::set_pixel_format(SailPixelFormat pixel_format) { d->sail_image->pixel_format = pixel_format; } void image::set_bytes_per_line(unsigned bytes_per_line) { d->sail_image->bytes_per_line = bytes_per_line; } void image::set_bytes_per_line_auto() { const unsigned bytes_per_line = image::bytes_per_line(d->sail_image->width, d->sail_image->pixel_format); set_bytes_per_line(bytes_per_line); } void image::set_pixels(const void *pixels) { set_pixels(pixels, height() * bytes_per_line()); } void image::set_pixels(const void *pixels, std::size_t pixels_size) { d->reset_pixels(); if (pixels == nullptr || pixels_size == 0) { return; } SAIL_TRY_OR_EXECUTE(sail_malloc(pixels_size, &d->sail_image->pixels), /* on error */ return); memcpy(d->sail_image->pixels, pixels, pixels_size); d->pixels_size = pixels_size; d->shallow_pixels = false; } void image::set_shallow_pixels(void *pixels) { set_shallow_pixels(pixels, height() * bytes_per_line()); } void image::set_shallow_pixels(void *pixels, std::size_t pixels_size) { d->reset_pixels(); if (pixels == nullptr || pixels_size == 0) { return; } d->sail_image->pixels = pixels; d->pixels_size = pixels_size; d->shallow_pixels = true; } void image::set_source_image(const sail::source_image &source_image) { d->source_image = source_image; } } sail-0.9.8/src/bindings/sail-c++/image.h000066400000000000000000000656671475535176100176370ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IMAGE_CPP_H #define SAIL_IMAGE_CPP_H #include /* std::size_t */ #include #include #include #include #include #include #include #include #include #include struct sail_image; namespace sail { class conversion_options; class meta_data; class save_features; /* * Image representation with direct access to the pixel data. */ class SAIL_EXPORT image { friend class image_input; friend class image_output; public: /* * Constructs an invalid image. */ image(); /* * Constructs a new image out of the specified file path. Reads just a single frame * from the file. */ explicit image(const std::string &path); /* * Constructs a new image out of the specified image properties and allocates the pixels * for the specified pixel format. The pixels have uninitialized values. * Assumes the pixels have no padding bytes in the end of every scan line. */ image(SailPixelFormat pixel_format, unsigned width, unsigned height); /* * Constructs a new image out of the specified image properties and allocates the pixels * for the specified pixel format. The pixels have uninitialized values. */ image(SailPixelFormat pixel_format, unsigned width, unsigned height, unsigned bytes_per_line); /* * Constructs a new image out of the specified image properties and the pixels. * Assumes the pixels have no padding bytes in the end of every scan line. The pixels * must remain valid as long as the image exists. */ image(void *pixels, SailPixelFormat pixel_format, unsigned width, unsigned height); /* * Constructs a new image out of the specified image properties and the pixels. * The pixels must remain valid as long as the image exists. */ image(void *pixels, SailPixelFormat pixel_format, unsigned width, unsigned height, unsigned bytes_per_line); /* * Makes a deep copy of the image. */ image(const image &img); /* * Makes a deep copy of the image. */ image& operator=(const sail::image &image); /* * Moves the image. */ image(sail::image &&image) noexcept; /* * Moves the image. */ image& operator=(sail::image &&image) noexcept; /* * Destroys the image and the deep copied pixel data. */ ~image(); /* * Returns true if the image has valid dimensions, pixel format, bytes per line, * and the pixel data. */ bool is_valid() const; /* * Returns true if the image pixel format is indexed with palette. */ bool is_indexed() const; /* * Returns true if the image pixel format is grayscale. */ bool is_grayscale() const; /* * Returns true if the image pixel format is RGB-like (RGBA, BGR, etc.). */ bool is_rgb_family() const; /* * Returns the image width. * * LOAD: Set by SAIL to a positive image width in pixels. * SAVE: Must be set by a caller to a positive image width in pixels. */ unsigned width() const; /* * Returns the image height. * * LOAD: Set by SAIL to a positive image height in pixels. * SAVE: Must be set by a caller to a positive image height in pixels. */ unsigned height() const; /* * Returns the bytes per line. * * LOAD: Set by SAIL to a positive length of a row of pixels in bytes. * SAVE: Must be set by a caller to a positive number of bytes per line. */ unsigned bytes_per_line() const; /* * Returns the image resolution. * * LOAD: Set by SAIL to a valid resolution if this information is available. * SAVE: Must be set by a caller to a valid image resolution if necessary. */ const sail::resolution& resolution() const; /* * Returns the image pixel format. See SailPixelFormat. * * LOAD: Set by SAIL to a valid image pixel format. * SAVE: Must be set by a caller to a valid input image pixel format. Pixels in this format will be supplied * to the codec by a caller later. The list of supported input pixel formats by a certain codec * can be obtained from save_features.pixel_formats. */ SailPixelFormat pixel_format() const; /* * Returns the number of bits per pixel (depth) of the image. * For example, for SAIL_PIXEL_FORMAT_RGB 24 is returned. * Returns 0 on unknown pixel format. */ unsigned bits_per_pixel() const; /* * Returns the image gamma. * * LOAD: Set by SAIL to a valid gamma if it's available. 1 by default. * SAVE: Must be set by a caller to a valid gamma. Not all codecs support saving * gamma. */ double gamma() const; /* * Returns the delay in milliseconds to display the image on the screen if the image is a frame * in an animation or -1 otherwise. * * LOAD: Set by SAIL to a non-negative number of milliseconds if the image is a frame * in an animation or to -1 otherwise. * For animations, it's guaranteed that all the frames have non-negative delays. * For multi-paged sequences, it's guaranteed that all the pages have delays equal to -1. * SAVE: Must be set by a caller to a non-negative number of milliseconds if the image is a frame * in an animation. */ int delay() const; /* * Returns the image palette if the image has it. * * LOAD: Set by SAIL to a valid palette if the image is indexed and the requested pixel format * assumes having a palette. * SAVE: Must be set by a caller to a valid palette if the image is indexed. */ const sail::palette& palette() const; /* * Returns the image meta data. * * LOAD: Set by SAIL to a valid map with meta data (like JPEG comments). * SAVE: Must be set by a caller to a valid map with meta data (like JPEG comments) if necessary. */ const std::vector& meta_data() const; /* * Returns the editable image meta data. * * LOAD: Set by SAIL to a valid map with meta data (like JPEG comments). * SAVE: Must be set by a caller to a valid map with meta data (like JPEG comments) if necessary. */ std::vector& meta_data(); /* * Returns the embedded ICC profile. * * Note for animated/multi-paged images: only the first image in an animated/multi-paged * sequence might have an ICC profile. * * LOAD: Set by SAIL to a valid ICC profile if any. * SAVE: Must be set by a caller to a valid ICC profile if necessary. */ const sail::iccp& iccp() const; /* * Returns the source image properties. * * LOAD: Set by SAIL to valid source image properties of the original image. * SAVE: Ignored. */ const sail::source_image& source_image() const; /* * Returns the editable pixel data if any. The channels are interleaved per pixel. * The pixels are organized row by row, left to right, top to bottom. * * LOAD: Set by SAIL to valid pixel data. * SAVE: Must be set by a caller to valid pixel data. */ void* pixels(); /* * Returns the constant pixel data if any. The channels are interleaved per pixel. * The pixels are organized row by row, left to right, top to bottom. * * LOAD: Set by SAIL to valid pixel data. * SAVE: Must be set by a caller to valid pixel data. */ const void* pixels() const; /* * Returns a pointer to the pixels scan line with index i. */ void* scan_line(unsigned i); /* * Returns a pointer to the pixels scan line with index i. */ const void* scan_line(unsigned i) const; /* * Returns the size of the pixel data in bytes. */ std::size_t pixels_size() const; /* * Sets a new resolution. */ void set_resolution(const sail::resolution &resolution); /* * Sets a new resolution. */ void set_resolution(sail::resolution &&resolution) noexcept; /* * Sets a new gamma. */ void set_gamma(double gamma); /* * Sets a new delay for an animated frame in a sequence. */ void set_delay(int delay); /* * Sets a new palette. */ void set_palette(const sail::palette &palette); /* * Sets a new palette. */ void set_palette(sail::palette &&palette) noexcept; /* * Sets new meta data. */ void set_meta_data(const std::vector &meta_data); /* * Sets new meta data. */ void set_meta_data(std::vector &&meta_data) noexcept; /* * Sets a new ICC profile. */ void set_iccp(const sail::iccp &iccp); /* * Sets a new ICC profile. */ void set_iccp(sail::iccp &&iccp) noexcept; /* * Replaces the image with the image from the specified file path. Reads just a single frame * from the file. * * Returns SAIL_OK on success. */ sail_status_t load(const std::string &path); /* * Saves the image with into the specified file path. * * Returns SAIL_OK on success. */ sail_status_t save(const std::string &path); /* * Returns true if the image can be converted into the specified pixel format. */ bool can_convert(SailPixelFormat pixel_format); /* * Converts the image to the specified pixel format. Use can_convert() to quickly check if the conversion * can actually be done. * * Updates the image pixel format and bytes per line. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use the overloaded method with conversion_options. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert(SailPixelFormat pixel_format); /* * Converts the image to the specified pixel format using the specified conversion options. * Use can_convert() to quickly check if the conversion can actually be done. * * Updates the image pixel format and bytes per line. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert(SailPixelFormat pixel_format, const conversion_options &options); /* * Converts the image to the best pixel format for saving. Use can_convert() * to quickly check if the conversion can actually be done. * * Updates the image pixel format and bytes per line. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use the overloaded method with conversion_options. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert(const sail::save_features &save_features); /* * Converts the image to the best pixel format for saving using the specified conversion options. * Use can_convert() to quickly check if the conversion can actually be done. * * Updates the image pixel format and bytes per line. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert(const sail::save_features &save_features, const conversion_options &options); /* * Converts the image to the specified pixel format and assigns the resulting image to the 'image' argument. * Use can_convert() to quickly check if the conversion can actually be done. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use the overloaded method with conversion_options. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert_to(SailPixelFormat pixel_format, sail::image *image) const; /* * Converts the image to the specified pixel format using the specified conversion options * and assigns the resulting image to the 'image' argument. * Use can_convert() to quickly check if the conversion can actually be done. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert_to(SailPixelFormat pixel_format, const conversion_options &options, sail::image *image) const; /* * Converts the image to the best pixel format for saving and assigns the resulting image to the 'image' argument. * Use can_convert() to quickly check if the conversion can actually be done. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use the overloaded method with conversion_options. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert_to(const sail::save_features &save_features, sail::image *image) const; /* * Converts the image to the best pixel format for saving using the specified conversion options * and assigns the resulting image to the 'image' argument. * Use can_convert() to quickly check if the conversion can actually be done. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns SAIL_OK on success. */ sail_status_t convert_to(const sail::save_features &save_features, const conversion_options &options, sail::image *image) const; /* * Converts the image to the specified pixel format and returns the resulting image. * Use can_convert() to quickly check if the conversion can actually be done. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use the overloaded method with conversion_options. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns an invalid image on error. */ image convert_to(SailPixelFormat pixel_format) const; /* * Converts the image to the specified pixel format using the specified conversion options * and returns the resulting image. * Use can_convert() to quickly check if the conversion can actually be done. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns an invalid image on error. */ image convert_to(SailPixelFormat pixel_format, const conversion_options &options) const; /* * Converts the image to the best pixel format for saving and returns the resulting image. * Use can_convert() to quickly check if the conversion can actually be done. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use the overloaded method with conversion_options. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns an invalid image on error. */ image convert_to(const sail::save_features &save_features) const; /* * Converts the image to the best pixel format for saving using the specified conversion options * and returns the resulting image. * Use can_convert() to quickly check if the conversion can actually be done. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * Returns an invalid image on error. */ image convert_to(const sail::save_features &save_features, const conversion_options &options) const; /* * Returns the closest pixel format from the list. * * This method can be used to find the best pixel format to save the image into. * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if no candidates found at all. */ SailPixelFormat closest_pixel_format(const std::vector &pixel_formats) const; /* * Returns the closest pixel format from the save features. * * This method can be used to find the best pixel format to save the image into. * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if no candidates found at all. */ SailPixelFormat closest_pixel_format(const sail::save_features &save_features) const; /* * Mirrors the image horizontally or vertically. * * Only SAIL_ORIENTATION_MIRRORED_HORIZONTALLY and SAIL_ORIENTATION_MIRRORED_VERTICALLY * values are accepted. When mirroring horizontally, the image pixel size must be a multiple of 8, * e.g. 8, 16, 24 etc. * * Returns SAIL_OK on success. */ sail_status_t mirror(SailOrientation orientation); /* * Returns true if the conversion or updating functions can convert or update from the input * pixel format to the output pixel format. */ static bool can_convert(SailPixelFormat input_pixel_format, SailPixelFormat output_pixel_format); /* * Returns the closest pixel format to the input pixel format from the list. * * This method can be used to find the best pixel format to save an image into. * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if no candidates found at all. */ static SailPixelFormat closest_pixel_format(SailPixelFormat input_pixel_format, const std::vector &pixel_formats); /* * Returns the closest pixel format to the input pixel format from the save features. * * This method can be used to find the best pixel format to save an image into. * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if no candidates found at all. */ static SailPixelFormat closest_pixel_format(SailPixelFormat input_pixel_format, const sail::save_features &save_features); /* * Returns the number of bits per pixel of the specified pixel format. * For example, for SAIL_PIXEL_FORMAT_RGB 24 is returned. Returns 0 on unknown pixel format. */ static unsigned bits_per_pixel(SailPixelFormat pixel_format); /* * Returns the number of bytes per line needed to hold a scan line of the given width * without padding. * * For example: * bytes_per_line(12, SAIL_PIXEL_FORMAT_BPP1) == * (12 pixels * 1 bits per pixel + 7) / 8 == * (12 * 1 + 7) / 8 == * (12 + 7 ) / 8 == * 19 / 8 == * 2 bytes per line */ static unsigned bytes_per_line(unsigned width, SailPixelFormat pixel_format); /* * Returns true if the specified pixel format is indexed with palette. */ static bool is_indexed(SailPixelFormat pixel_format); /* * Returns true if the specified pixel format is grayscale, * with or without alpha. */ static bool is_grayscale(SailPixelFormat pixel_format); /* * Returns true if the specified pixel format is RGB-like (RGBA, BGR, etc.). */ static bool is_rgb_family(SailPixelFormat pixel_format); /* * Returns a string representation of the specified pixel format. * For example: "BPP32-RGBA" is returned for SAIL_PIXEL_FORMAT_BPP32_RGBA. * * Returns NULL if the pixel format is not known. */ static const char* pixel_format_to_string(SailPixelFormat pixel_format); /* * Returns a pixel format from the string representation. * For example: SAIL_PIXEL_FORMAT_BPP32_RGBA is returned for "BPP32-RGBA". * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if the pixel format is not known. */ static SailPixelFormat pixel_format_from_string(const std::string &str); /* * Returns a string representation of the specified chroma subsampling. * For example: "311" is returned for SAIL_CHROMA_SUBSAMPLING_311. * * Returns NULL if the chroma subsampling is not known. */ static const char* chroma_subsampling_to_string(SailChromaSubsampling chroma_subsampling); /* * Returns a chroma subsampling from the string representation. * For example: SAIL_CHROMA_SUBSAMPLING_311 is returned for "311". * * Returns SAIL_CHROMA_SUBSAMPLING_UNKNOWN if the chroma subsampling is not known. */ static SailChromaSubsampling chroma_subsampling_from_string(const std::string &str); /* * Returns a string representation of the specified orientation. See SailOrientation. * For example: "NORMAL" is returned for SAIL_ORIENTATION_NORMAL. * * Returns NULL if the property is not known. */ static const char* orientation_to_string(SailOrientation orientation); /* * Returns orientation from the string representation. See SailOrientation. * For example: SAIL_ORIENTATION_NORMAL is returned for "NORMAL". * * Returns SAIL_ORIENTATION_NORMAL if the orientation is not known. */ static SailOrientation orientation_from_string(const std::string &str); /* * Returns string representation of the specified compression type. See SailCompression. * For example: "RLE" is returned for SAIL_COMPRESSION_RLE. * * Returns NULL if the compression is not known. */ static const char* compression_to_string(SailCompression compression); /* * Returns a compression from the string representation. See SailCompression. * For example: SAIL_COMPRESSION_RLE is returned for "RLE". * * Returns SAIL_COMPRESSION_UNKNOWN if the compression is not known. */ static SailCompression compression_from_string(const std::string &str); private: /* * Makes a deep copy of the specified image. The pixels are transferred. The caller must set the pixels * in the sail_image object to NULL afterwards to avoid destructing them in sail_destroy_image(). */ image(const sail_image *sail_image); sail_status_t transfer_pixels_pointer(const sail_image *sail_image); sail_status_t to_sail_image(sail_image **image) const; void set_dimensions(unsigned width, unsigned height); void set_pixel_format(SailPixelFormat pixel_format); void set_bytes_per_line(unsigned bytes_per_line); void set_bytes_per_line_auto(); void set_pixels(const void *pixels); void set_pixels(const void *pixels, std::size_t pixels_size); void set_shallow_pixels(void *pixels); void set_shallow_pixels(void *pixels, std::size_t pixels_size); void set_source_image(const sail::source_image &source_image); private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/image_input.cpp000066400000000000000000000123361475535176100213720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { class SAIL_HIDDEN image_input::pimpl { public: pimpl(sail::abstract_io *abstract_io_ext) : abstract_io(abstract_io_ext) , abstract_io_ref(*abstract_io) , abstract_io_adapter(new sail::abstract_io_adapter(abstract_io_ref)) , state(nullptr) , override_codec_info(false) , override_load_options(false) { } pimpl(sail::abstract_io &abstract_io_ext) : abstract_io() , abstract_io_ref(abstract_io_ext) , abstract_io_adapter(new sail::abstract_io_adapter(abstract_io_ref)) , state(nullptr) , override_codec_info(false) , override_load_options(false) { } sail_status_t start(); private: const std::unique_ptr abstract_io; sail::abstract_io &abstract_io_ref; public: const std::unique_ptr abstract_io_adapter; void *state; bool override_codec_info; sail::codec_info codec_info; bool override_load_options; sail::load_options load_options; }; sail_status_t image_input::pimpl::start() { if (!override_codec_info) { codec_info = abstract_io_ref.codec_info(); } const sail_codec_info *sail_codec_info = codec_info.sail_codec_info_c(); sail_load_options *sail_load_options = nullptr; SAIL_AT_SCOPE_EXIT( sail_destroy_load_options(sail_load_options); ); if (override_load_options) { SAIL_TRY(load_options.to_sail_load_options(&sail_load_options)); } SAIL_TRY(sail_start_loading_from_io_with_options(&abstract_io_adapter->sail_io_c(), sail_codec_info, sail_load_options, &state)); return SAIL_OK; } image_input::image_input(const std::string &path) : d(new pimpl(new io_file(path))) { } image_input::image_input(const void *buffer, std::size_t buffer_size) : d(new pimpl(new io_memory(buffer, buffer_size))) { } image_input::image_input(const sail::arbitrary_data &arbitrary_data) : image_input(arbitrary_data.data(), arbitrary_data.size()) { } image_input::image_input(sail::abstract_io &abstract_io) : d(new pimpl(abstract_io)) { } image_input::~image_input() { if (d) { finish(); } } image_input::image_input(image_input &&other) { *this = std::move(other); } image_input& image_input::operator=(image_input &&other) { d = std::move(other.d); other.d = {}; return *this; } image_input& image_input::with(const sail::codec_info &codec_info) { d->override_codec_info = true; d->codec_info = codec_info; return *this; } image_input& image_input::with(const sail::load_options &load_options) { d->override_load_options = true; d->load_options = load_options; return *this; } sail_status_t image_input::next_frame(sail::image *image) { if (d->state == nullptr) { SAIL_TRY(d->start()); } sail_image *sail_image = nullptr; SAIL_AT_SCOPE_EXIT( sail_destroy_image(sail_image); ); SAIL_TRY(sail_load_next_frame(d->state, &sail_image)); *image = sail::image(sail_image); sail_image->pixels = nullptr; return SAIL_OK; } image image_input::next_frame() { sail::image image; SAIL_TRY_OR_EXECUTE(next_frame(&image), /* on error */ return {}); return image; } sail_status_t image_input::finish() { sail_status_t saved_status = SAIL_OK; SAIL_TRY_OR_EXECUTE(sail_stop_loading(d->state), /* on error */ saved_status = __sail_status); d->state = nullptr; return saved_status; } std::tuple image_input::probe() { const sail_codec_info *sail_codec_info; sail_image *sail_image = nullptr; SAIL_AT_SCOPE_EXIT( sail_destroy_image(sail_image); ); SAIL_TRY_OR_EXECUTE(sail_probe_io(&d->abstract_io_adapter->sail_io_c(), &sail_image, &sail_codec_info), /* on error */ return {}); return std::tuple{ image(sail_image), codec_info(sail_codec_info) }; } } sail-0.9.8/src/bindings/sail-c++/image_input.h000066400000000000000000000073161475535176100210410ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IMAGE_INPUT_CPP_H #define SAIL_IMAGE_INPUT_CPP_H #include /* std::size_t */ #include #include #include #include #include #include #include namespace sail { class abstract_io; class codec_info; class load_options; /* * Probes and loads images from files, memory, and custom I/O sources. */ class SAIL_EXPORT image_input { public: /* * Constructs a new image input from the specified image file. */ explicit image_input(const std::string &path); /* * Constructs a new image input from the specified memory buffer. */ image_input(const void *buffer, std::size_t buffer_size); /* * Constructs a new image input from the specified memory buffer. */ explicit image_input(const sail::arbitrary_data &arbitrary_data); /* * Constructs a new image input from the specified I/O source. */ explicit image_input(sail::abstract_io &abstract_io); /* * Finishes loading and destroys the image input. */ ~image_input(); /* * Moves the image input. */ image_input(image_input &&other); /* * Moves the image input. */ image_input& operator=(image_input &&other); /* * Overrides the automatically detected codec info used to load the image. */ image_input& with(const sail::codec_info &codec_info); /* * Overrides the load options used to load the image. */ image_input& with(const sail::load_options &load_options); /* * Continues loading the image. Assigns the loaded image to the 'image' argument. * * Returns SAIL_OK on success. * Returns SAIL_ERROR_NO_MORE_FRAMES when no more frames are available. */ sail_status_t next_frame(sail::image *image); /* * Continues loading the image. * * Returns an invalid image on error. */ image next_frame(); /* * Finishes loading and closes the I/O stream. Call to finish() is optional. * * Returns SAIL_OK on success. */ sail_status_t finish(); /* * Loads the image and returns its properties without pixels and the corresponding * codec info. * * This method is pretty fast because it doesn't decode whole image data for most image formats. * * Returns an invalid image on error. */ std::tuple probe(); private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/image_output.cpp000066400000000000000000000114061475535176100215700ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { class SAIL_HIDDEN image_output::pimpl { public: pimpl(sail::abstract_io *abstract_io_ext, const sail::codec_info &other_codec_info) : abstract_io(abstract_io_ext) , abstract_io_ref(*abstract_io) , abstract_io_adapter(new sail::abstract_io_adapter(abstract_io_ref)) , state(nullptr) , codec_info(other_codec_info) , override_save_options(false) { } pimpl(sail::abstract_io &abstract_io_ext, const sail::codec_info &other_codec_info) : abstract_io() , abstract_io_ref(abstract_io_ext) , abstract_io_adapter(new sail::abstract_io_adapter(abstract_io_ref)) , state(nullptr) , codec_info(other_codec_info) , override_save_options(false) { } sail_status_t start(); private: const std::unique_ptr abstract_io; sail::abstract_io &abstract_io_ref; public: const std::unique_ptr abstract_io_adapter; void *state; sail::codec_info codec_info; bool override_save_options; sail::save_options save_options; }; sail_status_t image_output::pimpl::start() { const sail_codec_info *sail_codec_info = codec_info.sail_codec_info_c(); sail_save_options *sail_save_options = nullptr; SAIL_AT_SCOPE_EXIT( sail_destroy_save_options(sail_save_options); ); if (override_save_options) { SAIL_TRY(save_options.to_sail_save_options(&sail_save_options)); } SAIL_TRY(sail_start_saving_into_io_with_options(&abstract_io_adapter->sail_io_c(), sail_codec_info, sail_save_options, &state)); return SAIL_OK; } image_output::image_output(const std::string &path) : d(new pimpl(new io_file(path, io_file::Operation::ReadWrite), sail::codec_info::from_path(path))) { } image_output::image_output(void *buffer, std::size_t buffer_size, const sail::codec_info &codec_info) : d(new pimpl(new io_memory(buffer, buffer_size), codec_info)) { } image_output::image_output(sail::arbitrary_data *arbitrary_data, const sail::codec_info &codec_info) : image_output(arbitrary_data->data(), arbitrary_data->size(), codec_info) { } image_output::image_output(sail::abstract_io &abstract_io, const sail::codec_info &codec_info) : d(new pimpl(abstract_io, codec_info)) { } image_output::~image_output() { if (d) { finish(); } } image_output::image_output(image_output &&other) { *this = std::move(other); } image_output& image_output::operator=(image_output &&other) { d = std::move(other.d); other.d = {}; return *this; } image_output& image_output::with(const sail::codec_info &codec_info) { d->codec_info = codec_info; return *this; } image_output& image_output::with(const sail::save_options &save_options) { d->override_save_options = true; d->save_options = save_options; return *this; } sail_status_t image_output::next_frame(const sail::image &image) { if (d->state == nullptr) { SAIL_TRY(d->start()); } sail_image *sail_image = nullptr; SAIL_TRY(image.to_sail_image(&sail_image)); SAIL_AT_SCOPE_EXIT( sail_image->pixels = nullptr; sail_destroy_image(sail_image); ); SAIL_TRY(sail_write_next_frame(d->state, sail_image)); return SAIL_OK; } sail_status_t image_output::finish() { sail_status_t saved_status = SAIL_OK; SAIL_TRY_OR_EXECUTE(sail_stop_saving(d->state), /* on error */ saved_status = __sail_status); d->state = nullptr; return saved_status; } } sail-0.9.8/src/bindings/sail-c++/image_output.h000066400000000000000000000070221475535176100212340ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IMAGE_OUTPUT_CPP_H #define SAIL_IMAGE_OUTPUT_CPP_H #include /* std::size_t */ #include #include #include #include #include namespace sail { class abstract_io; class codec_info; class image; class save_options; /* * Saves images to files, memory, and custom I/O targets. */ class SAIL_EXPORT image_output { public: /* * Constructs a new image output to the specified image file. * Detects the image format based on the file extension. */ explicit image_output(const std::string &path); /* * Constructs a new image output to the specified memory buffer. */ image_output(void *buffer, std::size_t buffer_size, const sail::codec_info &codec_info); /* * Constructs a new image output to the specified memory buffer. */ image_output(sail::arbitrary_data *arbitrary_data, const sail::codec_info &codec_info); /* * Constructs a new image output to the specified I/O source. */ image_output(sail::abstract_io &abstract_io, const sail::codec_info &codec_info); /* * Finishes saving and destroys the image output. */ ~image_output(); /* * Moves the image output. */ image_output(image_output &&other); /* * Moves the image output. */ image_output& operator=(image_output &&other); /* * Overrides the automatically detected codec info used to save the image. */ image_output& with(const sail::codec_info &codec_info); /* * Overrides the save options used to save the image. */ image_output& with(const sail::save_options &save_options); /* * Continues saving into the I/O target. * * If the selected image format doesn't support the image pixel format, an error is returned. * Consider converting the image into a supported image format beforehand. * * Returns SAIL_OK on success. */ sail_status_t next_frame(const sail::image &image); /* * Finishes saving and closes the I/O stream. Call to finish() is recommended * if you want to ensure the I/O stream is flushed and closed successfully. * * Returns SAIL_OK on success. */ sail_status_t finish(); private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/io_base.cpp000066400000000000000000000057211475535176100204720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include namespace sail { io_base::io_base(struct sail_io *sail_io) : d(new pimpl(sail_io)) { } io_base::~io_base() { } int io_base::features() const { return d->sail_io_wrapper->features; } sail_status_t io_base::tolerant_read(void *buf, std::size_t size_to_read, std::size_t *read_size) { SAIL_TRY(d->sail_io_wrapper->tolerant_read(d->sail_io_wrapper->stream, buf, size_to_read, read_size)); return SAIL_OK; } sail_status_t io_base::strict_read(void *buf, std::size_t size_to_read) { SAIL_TRY(d->sail_io_wrapper->strict_read(d->sail_io_wrapper->stream, buf, size_to_read)); return SAIL_OK; } sail_status_t io_base::tolerant_write(const void *buf, std::size_t size_to_write, std::size_t *written_size) { SAIL_TRY(d->sail_io_wrapper->tolerant_write(d->sail_io_wrapper->stream, buf, size_to_write, written_size)); return SAIL_OK; } sail_status_t io_base::strict_write(const void *buf, std::size_t size_to_write) { SAIL_TRY(d->sail_io_wrapper->strict_write(d->sail_io_wrapper->stream, buf, size_to_write)); return SAIL_OK; } sail_status_t io_base::seek(long offset, int whence) { SAIL_TRY(d->sail_io_wrapper->seek(d->sail_io_wrapper->stream, offset, whence)); return SAIL_OK; } sail_status_t io_base::tell(std::size_t *offset) { SAIL_TRY(d->sail_io_wrapper->tell(d->sail_io_wrapper->stream, offset)); return SAIL_OK; } sail_status_t io_base::flush() { SAIL_TRY(d->sail_io_wrapper->flush(d->sail_io_wrapper->stream)); return SAIL_OK; } sail_status_t io_base::close() { SAIL_TRY(d->sail_io_wrapper->close(d->sail_io_wrapper->stream)); return SAIL_OK; } sail_status_t io_base::eof(bool *result) { SAIL_TRY(d->sail_io_wrapper->eof(d->sail_io_wrapper->stream, result)); return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/io_base.h000066400000000000000000000106431475535176100201360ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_BASE_CPP_H #define SAIL_IO_BASE_CPP_H #include /* std::size_t */ #include #include namespace sail { /* * Base I/O stream. */ class SAIL_EXPORT io_base : public abstract_io { public: /* * Operations on I/O streams. */ enum class Operation { /* * Reading only. */ Read, /* * Reading and writing. */ ReadWrite, }; /* * Construct a new base I/O stream. */ explicit io_base(struct sail_io *sail_io); ~io_base(); /* * Returns the I/O stream features. See SailIoFeature. */ int features() const override; /* * Reads from the underlying I/O object into the specified buffer. In contrast to strict_read(), * doesn't fail when the actual number of bytes read is smaller than requested. * Assigns the number of bytes actually read to the 'read_size' argument. * * Returns SAIL_OK on success. */ sail_status_t tolerant_read(void *buf, std::size_t size_to_read, std::size_t *read_size) override; /* * Reads from the underlying I/O object into the specified buffer. In contrast to tolerant_read(), * fails when the actual number of bytes read is smaller than requested. * * Returns SAIL_OK on success. */ sail_status_t strict_read(void *buf, std::size_t size_to_read) override; /* * Writes the specified buffer to the underlying I/O object. In contrast to strict_write(), * doesn't fail when the actual number of bytes written is smaller than requested. * Assigns the number of bytes actually written to the 'written_size' argument. * * Returns SAIL_OK on success. */ sail_status_t tolerant_write(const void *buf, std::size_t size_to_write, std::size_t *written_size) override; /* * Writes the specified buffer to the underlying I/O object. In contrast to tolerant_write(), * fails when the actual number of bytes written is smaller than requested. * * Returns SAIL_OK on success. */ sail_status_t strict_write(const void *buf, std::size_t size_to_write) override; /* * Sets the I/O position in the underlying I/O object. * * Possible 'whence' values: SEEK_SET, SEEK_CUR, or SEEK_END declared in . * * Returns SAIL_OK on success. */ sail_status_t seek(long offset, int whence) override; /* * Assigns the current I/O position in the underlying I/O object. * * Returns SAIL_OK on success. */ sail_status_t tell(std::size_t *offset) override; /* * Flushes buffers of the underlying I/O object. Has no effect if the underlying I/O object * is opened for reading. * * Returns SAIL_OK on success. */ sail_status_t flush() override; /* * Closes the underlying I/O object. * * Returns SAIL_OK on success. */ sail_status_t close() override; /* * Assigns true to the specified result if the underlying I/O object reached the end-of-file indicator. * * Returns SAIL_OK on success. */ sail_status_t eof(bool *result) override; protected: class pimpl; const std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/io_base_private.h000066400000000000000000000032431475535176100216660ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_BASE_PRIVATE_CPP_H #define SAIL_IO_BASE_PRIVATE_CPP_H #include #include #include #include namespace sail { class SAIL_HIDDEN io_base::pimpl { public: pimpl(struct sail_io *other_sail_io) : sail_io_wrapper(other_sail_io, sail_destroy_io) { } ~pimpl() { } std::unique_ptr sail_io_wrapper; }; } #endif sail-0.9.8/src/bindings/sail-c++/io_file.cpp000066400000000000000000000050051475535176100204720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { class SAIL_HIDDEN io_file::io_file_pimpl { public: io_file_pimpl(const std::string &path) : codec_info(sail::codec_info::from_path(path)) { } const sail::codec_info codec_info; }; static struct sail_io *construct_sail_io(const std::string &path, io_file::Operation operation) { struct sail_io *sail_io; switch (operation) { case io_file::Operation::Read: SAIL_TRY_OR_EXECUTE(sail_alloc_io_read_file(path.c_str(), &sail_io), /* on error */ throw std::bad_alloc()); break; case io_file::Operation::ReadWrite: SAIL_TRY_OR_EXECUTE(sail_alloc_io_read_write_file(path.c_str(), &sail_io), /* on error */ throw std::bad_alloc()); break; default: { throw std::runtime_error("Unknown file operation"); } } return sail_io; } io_file::io_file(const std::string &path) : io_file(path, Operation::Read) { } io_file::io_file(const std::string &path, io_file::Operation operation) : io_base(construct_sail_io(path, operation)) , file_d(new io_file_pimpl(path)) { } io_file::~io_file() { } codec_info io_file::codec_info() { return file_d->codec_info; } } sail-0.9.8/src/bindings/sail-c++/io_file.h000066400000000000000000000041361475535176100201430ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_FILE_CPP_H #define SAIL_IO_FILE_CPP_H #include #include #include namespace sail { /* * File I/O stream. */ class SAIL_EXPORT io_file : public io_base { public: /* * Opens the specified file for reading. */ explicit io_file(const std::string &path); /* * Opens the specified memory buffer for the specified I/O operations. */ io_file(const std::string &path, Operation operation); /* * Destroys the file I/O stream. */ ~io_file() override; /* * Finds and returns a first codec info object that supports the file extension of the path. * The comparison algorithm is case insensitive. * * Returns an invalid codec info object on error. */ sail::codec_info codec_info() override; private: class io_file_pimpl; const std::unique_ptr file_d; }; } #endif sail-0.9.8/src/bindings/sail-c++/io_memory.cpp000066400000000000000000000060451475535176100210700ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { template static sail_io *construct_sail_io(BufferType buffer, std::size_t buffer_size); template<> sail_io *construct_sail_io(void *buffer, std::size_t buffer_size) { struct sail_io *sail_io; SAIL_TRY_OR_EXECUTE(sail_alloc_io_read_write_memory(buffer, buffer_size, &sail_io), /* on error */ throw std::bad_alloc()); return sail_io; } template<> sail_io *construct_sail_io(const void *buffer, std::size_t buffer_size) { struct sail_io *sail_io; SAIL_TRY_OR_EXECUTE(sail_alloc_io_read_memory(buffer, buffer_size, &sail_io), /* on error */ throw std::bad_alloc()); return sail_io; } io_memory::io_memory(void *buffer, std::size_t buffer_size) : io_base(construct_sail_io(buffer, buffer_size)) { } io_memory::io_memory(const void *buffer, std::size_t buffer_size) : io_base(construct_sail_io(buffer, buffer_size)) { } io_memory::io_memory(void *buffer, std::size_t buffer_size, Operation operation) : io_base(construct_sail_io(operation == Operation::Read ? const_cast(buffer) : buffer, buffer_size)) { } io_memory::io_memory(sail::arbitrary_data &arbitrary_data) : io_memory(arbitrary_data.data(), arbitrary_data.size()) { } io_memory::io_memory(const sail::arbitrary_data &arbitrary_data) : io_memory(arbitrary_data.data(), arbitrary_data.size()) { } io_memory::io_memory(sail::arbitrary_data &arbitrary_data, Operation operation) : io_memory(operation == Operation::Read ? const_cast(arbitrary_data).data() : arbitrary_data.data(), arbitrary_data.size()) { } io_memory::~io_memory() { } codec_info io_memory::codec_info() { return sail::codec_info::from_magic_number(*this); } } sail-0.9.8/src/bindings/sail-c++/io_memory.h000066400000000000000000000056511475535176100205370ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_MEMORY_CPP_H #define SAIL_IO_MEMORY_CPP_H #include /* std::size_t */ #include #include namespace sail { /* * Memory I/O stream. */ class SAIL_EXPORT io_memory : public io_base { public: /* * Opens the specified memory buffer for reading and writing. */ io_memory(void *buffer, std::size_t buffer_size); /* * Opens the specified memory buffer for reading. */ io_memory(const void *buffer, std::size_t buffer_size); /* * Opens the specified memory buffer for the specified I/O operations. */ io_memory(void *buffer, std::size_t buffer_size, Operation operation); /* * Opens the specified memory buffer for reading and writing. */ explicit io_memory(sail::arbitrary_data &arbitrary_data); /* * Opens the specified memory buffer for reading. */ explicit io_memory(const sail::arbitrary_data &arbitrary_data); /* * Opens the specified memory buffer for the specified I/O operations. */ io_memory(sail::arbitrary_data &arbitrary_data, Operation operation); /* * Destroys the memory I/O stream. */ ~io_memory() override; /* * Finds and returns a first codec info object that supports the magic number read * from the memory buffer. The comparison algorithm is case insensitive. After reading * a magic number, rewinds the I/O cursor position back to the previous position. * * Not all codecs support magic numbers. That's why it's not guaranteed that this method * returns a valid codec info object. * * Returns an invalid codec info object on error. */ sail::codec_info codec_info() override; }; } #endif sail-0.9.8/src/bindings/sail-c++/load_features.cpp000066400000000000000000000064431475535176100217100ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { class SAIL_HIDDEN load_features::pimpl { public: pimpl() : sail_load_features_c(nullptr) {} const sail_load_features *sail_load_features_c; sail::supported_tuning supported_tuning; }; load_features::load_features(const load_features &rf) : load_features() { *this = rf; } load_features& load_features::operator=(const sail::load_features &load_features) { d->sail_load_features_c = load_features.d->sail_load_features_c; d->supported_tuning = load_features.d->supported_tuning; return *this; } load_features::load_features(sail::load_features &&load_features) noexcept { *this = std::move(load_features); } load_features& load_features::operator=(sail::load_features &&load_features) noexcept { d = std::move(load_features.d); return *this; } load_features::~load_features() { } int load_features::features() const { return d->sail_load_features_c->features; } const sail::supported_tuning& load_features::supported_tuning() const { return d->supported_tuning; } sail_status_t load_features::to_options(sail::load_options *load_options) const { SAIL_CHECK_PTR(d->sail_load_features_c); SAIL_CHECK_PTR(load_options); sail_load_options *sail_load_options; SAIL_TRY(sail_alloc_load_options_from_features(d->sail_load_features_c, &sail_load_options)); *load_options = sail::load_options(sail_load_options); sail_destroy_load_options(sail_load_options); return SAIL_OK; } load_features::load_features() : d(new pimpl) { } load_features::load_features(const sail_load_features *rf) : load_features() { if (rf == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::load_features(). The object is untouched"); return; } d->sail_load_features_c = rf; for (const sail_string_node *node = rf->tuning; node != nullptr; node = node->next) { d->supported_tuning.push_back(node->string); } } const sail_load_features* load_features::sail_load_features_c() const { return d->sail_load_features_c; } } sail-0.9.8/src/bindings/sail-c++/load_features.h000066400000000000000000000071221475535176100213500ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_LOAD_FEATURES_CPP_H #define SAIL_LOAD_FEATURES_CPP_H #include #include #include #include #include struct sail_load_features; namespace sail { class load_options; /* * Load features. Use this class to determine what a codec can actually read. * See codec_info. */ class SAIL_EXPORT load_features { friend class codec_info; public: /* * Copies the load features. */ load_features(const load_features &rf); /* * Copies the load features. */ load_features& operator=(const sail::load_features &load_features); /* * Moves the load features. */ load_features(sail::load_features &&load_features) noexcept; /* * Moves the load features. */ load_features& operator=(sail::load_features &&load_features) noexcept; /* * Destroys the load features. */ ~load_features(); /* * Returns the supported or-ed features of loading operations. See SailCodecFeature. */ int features() const; /* * Returns supported codec-specific tuning options. For example, a hypothetical ABC * image codec can allow disabling filtering with setting the "abc-filtering" * tuning option to 0 in load options. Tuning options' names start with the codec name * to avoid confusing. * * The list of possible values for every tuning option is not current available * programmatically. Every codec must document them in the codec info. * * It's not guaranteed that tuning options and their values are backward * or forward compatible. */ const sail::supported_tuning& supported_tuning() const; /* * Builds default load options from the load features. Can be used to build * default load options and then slightly modify them before passing to image_input. * * Returns SAIL_OK on success. */ sail_status_t to_options(sail::load_options *load_options) const; private: load_features(); /* * Makes a deep copy of the specified load features and stores the pointer for further use. * When the SAIL context gets uninitialized, the pointer becomes dangling. */ explicit load_features(const sail_load_features *rf); const sail_load_features* sail_load_features_c() const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/load_options.cpp000066400000000000000000000074151475535176100215650ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { class SAIL_HIDDEN load_options::pimpl { public: pimpl() : sail_load_options(nullptr) { SAIL_TRY_OR_EXECUTE(sail_alloc_load_options(&sail_load_options), /* on error */ throw std::bad_alloc()); } ~pimpl() { sail_destroy_load_options(sail_load_options); } struct sail_load_options *sail_load_options; sail::tuning tuning; }; load_options::load_options(int options) : d(new pimpl) { set_options(options); } load_options::load_options() : d(new pimpl) { } load_options::load_options(const load_options &ro) : load_options() { *this = ro; } load_options& load_options::operator=(const sail::load_options &load_options) { set_options(load_options.options()); set_tuning(load_options.tuning()); return *this; } load_options::load_options(sail::load_options &&load_options) noexcept { *this = std::move(load_options); } load_options& load_options::operator=(load_options &&ro) noexcept { d = std::move(ro.d); return *this; } load_options::~load_options() { } int load_options::options() const { return d->sail_load_options->options; } sail::tuning& load_options::tuning() { return d->tuning; } const sail::tuning& load_options::tuning() const { return d->tuning; } void load_options::set_options(int options) { d->sail_load_options->options = options; } void load_options::set_tuning(const sail::tuning &tuning) { d->tuning = tuning; } load_options::load_options(const sail_load_options *ro) : load_options() { if (ro == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::load_options(). The object is untouched"); return; } set_options(ro->options); set_tuning(utils_private::c_tuning_to_cpp_tuning(ro->tuning)); } sail_status_t load_options::to_sail_load_options(sail_load_options **load_options) const { SAIL_CHECK_PTR(load_options); sail_load_options *load_options_local; SAIL_TRY(sail_alloc_load_options(&load_options_local)); load_options_local->options = d->sail_load_options->options; SAIL_TRY_OR_CLEANUP(sail_alloc_hash_map(&load_options_local->tuning), /* cleanup */ sail_destroy_load_options(load_options_local)); SAIL_TRY_OR_CLEANUP(utils_private::cpp_tuning_to_sail_tuning(d->tuning, load_options_local->tuning), /* cleanup */ sail_destroy_load_options(load_options_local)); *load_options = load_options_local; return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/load_options.h000066400000000000000000000104141475535176100212230ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_LOAD_OPTIONS_CPP_H #define SAIL_LOAD_OPTIONS_CPP_H #include #include #include #include #include struct sail_load_options; namespace sail { /* * load_options represents options to modify loading operations. See image_input. */ class SAIL_EXPORT load_options { friend class image_input; friend class load_features; public: /* * Constructs empty load options. */ load_options(); /* * Constructs new load options from the or-ed manipulation options. See SailOption. */ load_options(int options); /* * Copies the load options. */ load_options(const load_options &ro); /* * Copies the load options. */ load_options& operator=(const sail::load_options &load_options); /* * Moves the load options. */ load_options(sail::load_options &&load_options) noexcept; /* * Moves the load options. */ load_options& operator=(sail::load_options &&load_options) noexcept; /* * Destroys the load options. */ ~load_options(); /* * Returns the or-ed manipulation options for loading operations. See SailOption. */ int options() const; /* * Returns editable codec-specific tuning options. For example, a hypothetical ABC * image codec can allow disabling filtering with setting the "abc-filtering" * tuning option to 0 in load options. Tuning options' names start with the codec name * to avoid confusing. * * The list of possible values for every tuning option is not current available * programmatically. Every codec must document them in the codec info. * * It's not guaranteed that tuning options and their values are backward * or forward compatible. */ sail::tuning& tuning(); /* * Returns constant codec-specific tuning options. For example, a hypothetical ABC * image codec can allow disabling filtering with setting the "abc-filtering" * tuning option to 0 in load options. Tuning options' names start with the codec name * to avoid confusing. * * The list of possible values for every tuning option is not current available * programmatically. Every codec must document them in the codec info. * * It's not guaranteed that tuning options and their values are backward * or forward compatible. */ const sail::tuning& tuning() const; /* * Sets new or-ed manipulation options for loading operations. See SailOption. */ void set_options(int options); /* * Sets new codec tuning. */ void set_tuning(const sail::tuning &tuning); private: /* * Makes a deep copy of the specified load options and stores the pointer for further use. * When the SAIL context gets uninitialized, the pointer becomes dangling. */ explicit load_options(const sail_load_options *ro); sail_status_t to_sail_load_options(sail_load_options **load_options) const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/log.cpp000066400000000000000000000025641475535176100176540ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { namespace log { void set_barrier(SailLogLevel max_level) { sail_set_log_barrier(max_level); } } } sail-0.9.8/src/bindings/sail-c++/log.h000066400000000000000000000032731475535176100173170ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_LOG_CPP_H #define SAIL_LOG_CPP_H #include #include #include namespace sail { /* * Logging functions. */ namespace log { /* * Sets a maximum log level barrier. Only the messages of the specified log level or lower will be displayed. * * This function is not thread-safe. It's recommended to call it in the main thread * before initializing SAIL. */ SAIL_EXPORT void set_barrier(SailLogLevel max_level); } } #endif sail-0.9.8/src/bindings/sail-c++/meta_data.cpp000066400000000000000000000125461475535176100210130ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include // std::move #include #include namespace sail { class SAIL_HIDDEN meta_data::pimpl { public: pimpl() : sail_meta_data(nullptr) { SAIL_TRY_OR_EXECUTE(sail_alloc_meta_data(&sail_meta_data), /* on error */ throw std::bad_alloc()); } ~pimpl() { sail_destroy_meta_data(sail_meta_data); } struct sail_meta_data *sail_meta_data; std::string key_unknown; variant value; }; meta_data::meta_data() : d(new pimpl) { } meta_data::meta_data(SailMetaData key, const variant &value) : meta_data() { set_key(key); set_value(value); } meta_data::meta_data(SailMetaData key, variant &&value) noexcept : meta_data() { set_key(key); set_value(std::move(value)); } meta_data::meta_data(const std::string &key_unknown, const variant &value) : meta_data() { set_key(key_unknown); set_value(value); } meta_data::meta_data(const std::string &key_unknown, variant &&value) : meta_data() { set_key(key_unknown); set_value(std::move(value)); } meta_data::meta_data(std::string &&key_unknown, variant &&value) noexcept : meta_data() { set_key(std::move(key_unknown)); set_value(std::move(value)); } meta_data::meta_data(const sail::meta_data &md) : meta_data() { *this = md; } meta_data& meta_data::operator=(const sail::meta_data &meta_data) { if (meta_data.key() == SAIL_META_DATA_UNKNOWN) { set_key(meta_data.key_unknown()); } else { set_key(meta_data.key()); } set_value(meta_data.value()); return *this; } meta_data::meta_data(sail::meta_data &&meta_data) noexcept { *this = std::move(meta_data); } meta_data& meta_data::operator=(sail::meta_data &&meta_data) noexcept { d = std::move(meta_data.d); return *this; } meta_data::~meta_data() { } SailMetaData meta_data::key() const { return d->sail_meta_data->key; } const std::string& meta_data::key_unknown() const { return d->key_unknown; } const variant& meta_data::value() const { return d->value; } void meta_data::set_key(SailMetaData key) { d->sail_meta_data->key = key; d->key_unknown = std::string{}; } void meta_data::set_key(const std::string &key_unknown) { d->sail_meta_data->key = SAIL_META_DATA_UNKNOWN; d->key_unknown = key_unknown; } void meta_data::set_key(std::string &&key_unknown) noexcept { d->sail_meta_data->key = SAIL_META_DATA_UNKNOWN; d->key_unknown = std::move(key_unknown); } void meta_data::set_value(const variant &value) { d->value = value; } void meta_data::set_value(variant &&value) noexcept { d->value = std::move(value); } const char* meta_data::meta_data_to_string(SailMetaData meta_data) { return sail_meta_data_to_string(meta_data); } SailMetaData meta_data::meta_data_from_string(const std::string &str) { return sail_meta_data_from_string(str.c_str()); } static inline std::string empty_string_on_nullptr(const char *str) { return str == nullptr ? std::string{} : str; } meta_data::meta_data(const sail_meta_data *meta_data) : sail::meta_data() { if (meta_data == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::meta_data(). The object is untouched"); return; } if (meta_data->key == SAIL_META_DATA_UNKNOWN) { set_key(empty_string_on_nullptr(meta_data->key_unknown)); } else { set_key(meta_data->key); } set_value(variant(meta_data->value)); } sail_status_t meta_data::to_sail_meta_data(sail_meta_data **meta_data) const { SAIL_CHECK_PTR(meta_data); struct sail_meta_data *meta_data_local; SAIL_TRY(sail_alloc_meta_data(&meta_data_local)); SAIL_AT_SCOPE_EXIT( sail_destroy_meta_data(meta_data_local); ); meta_data_local->key = d->sail_meta_data->key; if (d->sail_meta_data->key == SAIL_META_DATA_UNKNOWN) { SAIL_TRY(sail_strdup(d->key_unknown.c_str(), &meta_data_local->key_unknown)); } SAIL_TRY(d->value.to_sail_variant(&meta_data_local->value)); *meta_data = meta_data_local; meta_data_local = nullptr; return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/meta_data.h000066400000000000000000000124531475535176100204550ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_META_DATA_CPP_H #define SAIL_META_DATA_CPP_H #include #include #include #include #include #include struct sail_meta_data; namespace sail { class variant; /* * meta_data represents a meta data element like a JPEG comment or a binary EXIF profile. */ class SAIL_EXPORT meta_data { friend class image; public: /* * Constructs an empty meta data entry. */ meta_data(); /* * Constructs a new meta data entry out of the known meta data * key and the value. */ meta_data(SailMetaData key, const variant &value); /* * Constructs a new meta data entry out of the known meta data * key and the value. */ meta_data(SailMetaData key, variant &&value) noexcept; /* * Constructs a new meta data entry out of the unknown meta data * string key and the value. */ meta_data(const std::string &key_unknown, const variant &value); /* * Constructs a new meta data entry out of the unknown meta data * string key and the value. */ meta_data(const std::string &key_unknown, variant &&value); /* * Constructs a new meta data entry out of the unknown meta data * string key and the value. */ meta_data(std::string &&key_unknown, variant &&value) noexcept; /* * Copies the meta data entry. */ meta_data(const meta_data &md); /* * Copies the meta data entry. */ meta_data& operator=(const sail::meta_data &meta_data); /* * Moves the meta data entry. */ meta_data(sail::meta_data &&meta_data) noexcept; /* * Moves the meta data entry. */ meta_data& operator=(sail::meta_data &&meta_data) noexcept; /* * Destroys the meta data entry. */ ~meta_data(); /* * Returns the meta data key when it's well known like Artist or Comment. * When key() returns SAIL_META_DATA_UNKNOWN, use key_unknown() to get the * key string representation. */ SailMetaData key() const; /* * Returns the meta data string key representation when key() returns SAIL_META_DATA_UNKNOWN. * For example: "Person on the Image". */ const std::string& key_unknown() const; /* * Returns the actual meta data value. */ const variant& value() const; /* * Sets a new known meta data key like Artist or Comment. Resets the saved unknown key to an empty string. */ void set_key(SailMetaData key); /* * Sets a new unknown meta data string key representation. Resets the saved key to SAIL_META_DATA_UNKNOWN. * For example: "Person on the Image". */ void set_key(const std::string &key_unknown); /* * Sets a new unknown meta data string key representation. Resets the saved key to SAIL_META_DATA_UNKNOWN. * For example: "Person on the Image". */ void set_key(std::string &&key_unknown) noexcept; /* * Sets a new meta data binary value. Resets the saved string value. */ void set_value(const variant &value); /* * Sets a new meta data binary value. Resets the saved string value. */ void set_value(variant &&value) noexcept; /* * Returns a string representation of the specified meta data key. See SailMetaData. * For example: "Author" is returned for SAIL_META_DATA_AUTHOR. * * Returns nullptr if the meta data key is not known. */ static const char* meta_data_to_string(SailMetaData meta_data); /* * Returns a meta data key from the string representation. See SailMetaData. * For example: SAIL_META_DATA_AUTHOR is returned for "Author". * * Returns SAIL_META_DATA_UNKNOWN if the meta data key is not known. */ static SailMetaData meta_data_from_string(const std::string &str); private: /* * Makes a deep copy of the specified meta data. */ explicit meta_data(const sail_meta_data *meta_data); sail_status_t to_sail_meta_data(sail_meta_data **meta_data) const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/ostream.cpp000066400000000000000000000043641475535176100205450ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include std::ostream& operator<<(std::ostream &os, SailPixelFormat pixel_format) { os << sail_pixel_format_to_string(pixel_format); return os; } std::ostream& operator<<(std::ostream &os, SailChromaSubsampling chroma_subsampling) { os << sail_chroma_subsampling_to_string(chroma_subsampling); return os; } std::ostream& operator<<(std::ostream &os, SailOrientation orientation) { os << sail_orientation_to_string(orientation); return os; } std::ostream& operator<<(std::ostream &os, SailCompression compression) { os << sail_compression_to_string(compression); return os; } std::ostream& operator<<(std::ostream &os, SailMetaData meta_data) { os << sail_meta_data_to_string(meta_data); return os; } std::ostream& operator<<(std::ostream &os, SailResolutionUnit resolution_unit) { os << sail_resolution_unit_to_string(resolution_unit); return os; } std::ostream& operator<<(std::ostream &os, SailCodecFeature codec_feature) { os << sail_codec_feature_to_string(codec_feature); return os; } sail-0.9.8/src/bindings/sail-c++/ostream.h000066400000000000000000000036731475535176100202140ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_OSTREAM_CPP_H #define SAIL_OSTREAM_CPP_H #include #include #include SAIL_EXPORT std::ostream& operator<<(std::ostream &os, SailPixelFormat pixel_format); SAIL_EXPORT std::ostream& operator<<(std::ostream &os, SailChromaSubsampling chroma_subsampling); SAIL_EXPORT std::ostream& operator<<(std::ostream &os, SailOrientation orientation); SAIL_EXPORT std::ostream& operator<<(std::ostream &os, SailCompression compression); SAIL_EXPORT std::ostream& operator<<(std::ostream &os, SailMetaData meta_data); SAIL_EXPORT std::ostream& operator<<(std::ostream &os, SailResolutionUnit resolution_unit); SAIL_EXPORT std::ostream& operator<<(std::ostream &os, SailCodecFeature codec_feature); #endif sail-0.9.8/src/bindings/sail-c++/palette.cpp000066400000000000000000000107531475535176100205300ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include namespace sail { class SAIL_HIDDEN palette::pimpl { public: pimpl() : sail_palette(nullptr) { SAIL_TRY_OR_EXECUTE(sail_alloc_palette(&sail_palette), /* on error */ throw std::bad_alloc()); } ~pimpl() { sail_destroy_palette(sail_palette); } void reset() { sail_palette->pixel_format = SAIL_PIXEL_FORMAT_UNKNOWN; sail_palette->color_count = 0; data.clear(); } struct sail_palette *sail_palette; arbitrary_data data; }; palette::palette() : d(new pimpl) { } palette::palette(SailPixelFormat pixel_format, const void *data, unsigned color_count) : palette() { set_data(pixel_format, data, color_count); } palette::palette(SailPixelFormat pixel_format, const arbitrary_data &data) : palette() { set_data(pixel_format, data); } palette::palette(const palette &pal) : palette() { *this = pal; } palette& palette::operator=(const sail::palette &palette) { d->reset(); if (palette.is_valid()) { set_data(palette.pixel_format(), palette.data()); } return *this; } palette::palette(sail::palette &&palette) noexcept { *this = std::move(palette); } palette& palette::operator=(sail::palette &&palette) noexcept { d = std::move(palette.d); return *this; } palette::~palette() { } bool palette::is_valid() const { return d->sail_palette->pixel_format != SAIL_PIXEL_FORMAT_UNKNOWN && d->sail_palette->color_count > 0 && !d->data.empty(); } SailPixelFormat palette::pixel_format() const { return d->sail_palette->pixel_format; } const arbitrary_data& palette::data() const { return d->data; } unsigned palette::color_count() const { return d->sail_palette->color_count; } void palette::set_data(SailPixelFormat pixel_format, const void *data, unsigned color_count) { d->reset(); SAIL_TRY_OR_EXECUTE(copy(pixel_format, data, color_count), /* on error */ return); } void palette::set_data(SailPixelFormat pixel_format, const arbitrary_data &data) { d->reset(); const unsigned bytes_per_pixel = (sail_bits_per_pixel(pixel_format) + 7) / 8; if (bytes_per_pixel != 0) { set_data(pixel_format, data.data(), static_cast(data.size() / bytes_per_pixel)); } } palette::palette(const sail_palette *pal) : palette() { if (pal == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::palette(). The object is untouched"); return; } set_data(pal->pixel_format, pal->data, pal->color_count); } sail_status_t palette::to_sail_palette(sail_palette **palette) const { SAIL_CHECK_PTR(palette); SAIL_TRY(sail_alloc_palette_from_data(d->sail_palette->pixel_format, d->data.data(), d->sail_palette->color_count, palette)); return SAIL_OK; } sail_status_t palette::copy(SailPixelFormat pixel_format, const void *data, unsigned color_count) { SAIL_CHECK_PTR(data); const unsigned palette_size = sail_bytes_per_line(color_count, pixel_format); d->data.resize(palette_size); memcpy(d->data.data(), data, palette_size); d->sail_palette->pixel_format = pixel_format; d->sail_palette->color_count = color_count; return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/palette.h000066400000000000000000000104661475535176100201760ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PALETTE_CPP_H #define SAIL_PALETTE_CPP_H #include #include #include #include #include struct sail_palette; namespace sail { /* * palette represents an image palette used in indexed images. */ class SAIL_EXPORT palette { friend class image; public: /* * Constructs an invalid palette. */ palette(); /* * Constructs palette from the data. The palette stays invalid if the pixel format * is SAIL_PIXEL_FORMAT_UNKNOWN, or the color count is 0, or the data is null. * The channels are interleaved per pixel. The pixel data must not have gaps, i.e.: * RGBRGB... */ palette(SailPixelFormat pixel_format, const void *data, unsigned color_count); /* * Constructs palette from the data. Calculates the color count from the data size * and the pixel format. The palette stays invalid if the pixel format * is SAIL_PIXEL_FORMAT_UNKNOWN or the data is empty. * * The channels are interleaved per pixel. The pixel data must not have gaps, i.e.: * RGBRGB... */ palette(SailPixelFormat pixel_format, const arbitrary_data &data); /* * Copies the palette. */ palette(const palette &pal); /* * Copies the palette. */ palette& operator=(const sail::palette &palette); /* * Moves the palette. */ palette(sail::palette &&palette) noexcept; /* * Moves the palette. */ palette& operator=(sail::palette &&palette) noexcept; /* * Destroys the palette. */ ~palette(); /* * Returns true if the palette has non-empty data, known pixel format, and a positive color count. */ bool is_valid() const; /* * Returns the palette pixel format. */ SailPixelFormat pixel_format() const; /* * Returns the palette pixel data. The channels are interleaved per pixel. * The pixel data has no gaps, i.e.: RGBRGB... */ const arbitrary_data& data() const; /* * Returns the number of colors in the palette. */ unsigned color_count() const; /* * Sets new palette data, pixel format, and colors count. Makes the palette invalid * if the pixel format is SAIL_PIXEL_FORMAT_UNKNOWN, or the color count is 0, * or the data is null. */ void set_data(SailPixelFormat pixel_format, const void *data, unsigned color_count); /* * Sets new palette data, pixel format, and colors count. Calculates the color count * from the data size and the pixel format. Makes the palette invalid if the pixel * format is SAIL_PIXEL_FORMAT_UNKNOWN or the data is empty. */ void set_data(SailPixelFormat pixel_format, const arbitrary_data &data); private: /* * Makes a deep copy of the specified palette. */ explicit palette(const sail_palette *pal); sail_status_t to_sail_palette(sail_palette **palette) const; sail_status_t copy(SailPixelFormat pixel_format, const void *data, unsigned color_count); private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/pkgconfig/000077500000000000000000000000001475535176100203275ustar00rootroot00000000000000sail-0.9.8/src/bindings/sail-c++/pkgconfig/sail-c++.pc.in000066400000000000000000000004551475535176100225620ustar00rootroot00000000000000prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@ libdir=@SAIL_LIBDIR_FOR_PKG_CONFIG@ includedir=@SAIL_INCLUDEDIR_FOR_PKG_CONFIG@/sail Name: sail-c++ Description: SAIL C++ client library Version: @VERSION@ Requires: sail sail-manip Libs: -L${libdir} -lsail-c++ Cflags: -I${includedir} sail-0.9.8/src/bindings/sail-c++/resolution.cpp000066400000000000000000000066541475535176100213020ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { class SAIL_HIDDEN resolution::pimpl { public: pimpl() { resolution.unit = SAIL_RESOLUTION_UNIT_UNKNOWN; resolution.x = 0; resolution.y = 0; } sail_resolution resolution; }; resolution::resolution() : d(new pimpl) { } resolution::resolution(SailResolutionUnit unit, double x, double y) : resolution() { set_unit(unit); set_x(x); set_y(y); } resolution::resolution(const resolution &res) : resolution() { *this = res; } resolution& resolution::operator=(const resolution &res) { set_unit(res.unit()); set_x(res.x()); set_y(res.y()); return *this; } resolution::resolution(resolution &&res) noexcept { *this = std::move(res); } resolution& resolution::operator=(resolution &&res) noexcept { d = std::move(res.d); return *this; } resolution::~resolution() { } bool resolution::is_valid() const { return d->resolution.unit != SAIL_RESOLUTION_UNIT_UNKNOWN && d->resolution.x > 0 && d->resolution.y > 0; } SailResolutionUnit resolution::unit() const { return d->resolution.unit; } double resolution::x() const { return d->resolution.x; } double resolution::y() const { return d->resolution.y; } void resolution::set_unit(SailResolutionUnit unit) { d->resolution.unit = unit; } void resolution::set_x(double x) { d->resolution.x = x; } void resolution::set_y(double y) { d->resolution.y = y; } const char* resolution::resolution_unit_to_string(SailResolutionUnit resolution_unit) { return sail_resolution_unit_to_string(resolution_unit); } SailResolutionUnit resolution::resolution_unit_from_string(const std::string &str) { return sail_resolution_unit_from_string(str.c_str()); } resolution::resolution(const sail_resolution *res) : resolution() { if (res == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::resolution(). The object is untouched"); return; } d->resolution = *res; } sail_status_t resolution::to_sail_resolution(sail_resolution **resolution) const { SAIL_CHECK_PTR(resolution); SAIL_TRY(sail_alloc_resolution(resolution)); **resolution = d->resolution; return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/resolution.h000066400000000000000000000074421475535176100207430ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_RESOLUTION_CPP_H #define SAIL_RESOLUTION_CPP_H #include #include #include #include #include struct sail_resolution; namespace sail { /* * resolution represents image resolution unit and values. */ class SAIL_EXPORT resolution { friend class image; public: /* * Constructs a new resolution with unknown units and zero values. */ resolution(); /* * Constructs a new resolution with the specified unit and values. */ resolution(SailResolutionUnit unit, double x, double y); /* * Copies the resolution. */ resolution(const resolution &res); /* * Copies the resolution. */ resolution& operator=(const resolution &res); /* * Moves the resolution. */ resolution(resolution &&res) noexcept; /* * Moves the resolution. */ resolution& operator=(resolution &&res) noexcept; /* * Destroys the resolution. */ ~resolution(); /* * Returns true if the resolution has known units and positive x/y values. */ bool is_valid() const; /* * Returns the resolution unit. */ SailResolutionUnit unit() const; /* * Returns the resolution x value. */ double x() const; /* * Returns the resolution y value. */ double y() const; /* * Sets a new resolution units. */ void set_unit(SailResolutionUnit unit); /* * Sets a new resolution x value. */ void set_x(double x); /* * Sets a new resolution y value. */ void set_y(double y); /* * Returns a string representation of the specified resolution unit. See SailResolutionUnit. * For example: "Micrometer" is returned for SAIL_RESOLUTION_UNIT_MICROMETER. * * Returns NULL if the resolution unit is not known. */ static const char* resolution_unit_to_string(SailResolutionUnit resolution_unit); /* * Returns a resolution unit from the string representation. See SailResolutionUnit. * For example: SAIL_RESOLUTION_UNIT_MICROMETER is returned for "Micrometer". * * Returns SAIL_RESOLUTION_UNIT_UNKNOWN if the resolution unit is not known. */ static SailResolutionUnit resolution_unit_from_string(const std::string &str); private: /* * Makes a deep copy of the specified resolution. */ explicit resolution(const sail_resolution *res); sail_status_t to_sail_resolution(sail_resolution **resolution) const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/sail-c++.h000066400000000000000000000050021475535176100200240ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_CPP_H #define SAIL_SAIL_CPP_H // Universal include // #include #include #include #include #ifdef SAIL_BUILD #include #include #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif sail-0.9.8/src/bindings/sail-c++/save_features.cpp000066400000000000000000000122451475535176100217240ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include namespace sail { class SAIL_HIDDEN save_features::pimpl { public: pimpl() : sail_save_features_c(nullptr) {} const sail_save_features *sail_save_features_c; std::vector pixel_formats; std::vector compressions; sail::compression_level compression_level; sail::supported_tuning supported_tuning; }; save_features::save_features(const save_features &wf) : save_features() { *this = wf; } save_features& save_features::operator=(const sail::save_features &save_features) { d->sail_save_features_c = save_features.d->sail_save_features_c; d->pixel_formats = save_features.d->pixel_formats; d->compressions = save_features.d->compressions; d->compression_level = save_features.d->compression_level; d->supported_tuning = save_features.d->supported_tuning; return *this; } save_features::save_features(sail::save_features &&save_features) noexcept { *this = std::move(save_features); } save_features& save_features::operator=(sail::save_features &&save_features) noexcept { d = std::move(save_features.d); return *this; } save_features::~save_features() { } const std::vector& save_features::pixel_formats() const { return d->pixel_formats; } int save_features::features() const { return d->sail_save_features_c->features; } const std::vector& save_features::compressions() const { return d->compressions; } SailCompression save_features::default_compression() const { return d->sail_save_features_c->default_compression; } const sail::compression_level& save_features::compression_level() const { return d->compression_level; } const sail::supported_tuning& save_features::supported_tuning() const { return d->supported_tuning; } sail_status_t save_features::to_options(sail::save_options *save_options) const { SAIL_CHECK_PTR(d->sail_save_features_c); SAIL_CHECK_PTR(save_options); sail_save_options *sail_save_options; SAIL_TRY(sail_alloc_save_options_from_features(d->sail_save_features_c, &sail_save_options)); *save_options = sail::save_options(sail_save_options); sail_destroy_save_options(sail_save_options); return SAIL_OK; } save_features::save_features() : d(new pimpl) { } save_features::save_features(const sail_save_features *wf) : save_features() { if (wf == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::save_features(). The object is untouched"); return; } d->sail_save_features_c = wf; // Output pixel formats std::vector pixel_formats; if (d->sail_save_features_c->pixel_formats != nullptr && d->sail_save_features_c->pixel_formats_length > 0) { pixel_formats.reserve(d->sail_save_features_c->pixel_formats_length); for (unsigned i = 0; i < d->sail_save_features_c->pixel_formats_length; i++) { pixel_formats.push_back(d->sail_save_features_c->pixel_formats[i]); } } d->pixel_formats = pixel_formats; // Compressions std::vector compressions; if (d->sail_save_features_c->compressions != nullptr && d->sail_save_features_c->compressions_length > 0) { compressions.reserve(d->sail_save_features_c->compressions_length); for (unsigned i = 0; i < d->sail_save_features_c->compressions_length; i++) { compressions.push_back(d->sail_save_features_c->compressions[i]); } } d->compressions = compressions; // Compression level if (wf->compression_level != nullptr) { d->compression_level = sail::compression_level(wf->compression_level); } // Supported tuning for (const sail_string_node *node = wf->tuning; node != nullptr; node = node->next) { d->supported_tuning.push_back(node->string); } } const sail_save_features* save_features::sail_save_features_c() const { return d->sail_save_features_c; } } sail-0.9.8/src/bindings/sail-c++/save_features.h000066400000000000000000000112671475535176100213740ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAVE_FEATURES_CPP_H #define SAIL_SAVE_FEATURES_CPP_H #include #include #include #include #include #include #include struct sail_save_features; namespace sail { class save_options; /* * Save features. Use this structure to determine what a codec can actually write. * See codec_info. */ class SAIL_EXPORT save_features { friend class codec_info; public: /* * Copies the save features. */ save_features(const save_features &wf); /* * Copies the save features. */ save_features& operator=(const sail::save_features &save_features); /* * Moves the save features. */ save_features(sail::save_features &&save_features) noexcept; /* * Moves the save features. */ save_features& operator=(sail::save_features &&save_features) noexcept; /* * Destroys the save features. */ ~save_features(); /* * Returns the list of supported pixel formats that can be written by this codec. */ const std::vector& pixel_formats() const; /* * Returns the supported or-ed features of saving operations. See SailCodecFeature. */ int features() const; /* * Returns the list of supported pixels compression types by this codec. If the list has more than * two entries, compression levels are ignored. * * For example: * * 1. The JPEG codec supports only one compression, JPEG. compression_level() can be used * to select its compression level. * 2. The TIFF codec supports more than two compression types (PACKBITS, JPEG, etc.). * Compression levels are ignored. */ const std::vector& compressions() const; /* * Returns the compression type to use by default. */ SailCompression default_compression() const; /* * Returns the supported compression level range or an ivalid object if * compression levels are not supported by the codec. */ const sail::compression_level& compression_level() const; /* * Returns supported codec-specific tuning options. For example, a hypothetical ABC * image codec can allow disabling filtering with setting the "abc-filtering" * tuning option to 0 in load options. Tuning options' names start with the codec name * to avoid confusing. * * The list of possible values for every tuning option is not current available * programmatically. Every codec must document them in the codec info. * * It's not guaranteed that tuning options and their values are backward * or forward compatible. */ const sail::supported_tuning& supported_tuning() const; /* * Builds default save options from the save features. Can be used to build * default save options and then slightly modify them before passing to image_output. * * Returns SAIL_OK on success. */ sail_status_t to_options(sail::save_options *save_options) const; private: save_features(); /* * Makes a deep copy of the specified save features and stores the pointer for further use. * When the SAIL context gets uninitialized, the pointer becomes dangling. */ explicit save_features(const sail_save_features *wf); const sail_save_features* sail_save_features_c() const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/save_options.cpp000066400000000000000000000111531475535176100215760ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { class SAIL_HIDDEN save_options::pimpl { public: pimpl() : sail_save_options(nullptr) { SAIL_TRY_OR_EXECUTE(sail_alloc_save_options(&sail_save_options), /* on error */ throw std::bad_alloc()); } ~pimpl() { sail_destroy_save_options(sail_save_options); } struct sail_save_options *sail_save_options; sail::tuning tuning; }; save_options::save_options() : d(new pimpl) { } save_options::save_options(int options) : d(new pimpl) { set_options(options); } save_options::save_options(const save_options &wo) : save_options() { *this = wo; } save_options& save_options::operator=(const sail::save_options &save_options) { set_options(save_options.options()); set_compression(save_options.compression()); set_compression_level(save_options.compression_level()); set_tuning(save_options.tuning()); return *this; } save_options::save_options(sail::save_options &&save_options) noexcept { *this = std::move(save_options); } save_options& save_options::operator=(sail::save_options &&save_options) noexcept { d = std::move(save_options.d); return *this; } save_options::~save_options() { } int save_options::options() const { return d->sail_save_options->options; } SailCompression save_options::compression() const { return d->sail_save_options->compression; } double save_options::compression_level() const { return d->sail_save_options->compression_level; } sail::tuning& save_options::tuning() { return d->tuning; } const sail::tuning& save_options::tuning() const { return d->tuning; } void save_options::set_options(int options) { d->sail_save_options->options = options; } void save_options::set_compression(SailCompression compression) { d->sail_save_options->compression = compression; } void save_options::set_compression_level(double compression_level) { d->sail_save_options->compression_level = compression_level; } void save_options::set_tuning(const sail::tuning &tuning) { d->tuning = tuning; } save_options::save_options(const sail_save_options *wo) : save_options() { if (wo == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::save_options(). The object is untouched"); return; } set_options(wo->options); set_compression(wo->compression); set_compression_level(wo->compression_level); set_tuning(utils_private::c_tuning_to_cpp_tuning(wo->tuning)); } sail_status_t save_options::to_sail_save_options(sail_save_options **save_options) const { SAIL_CHECK_PTR(save_options); sail_save_options *save_options_local; SAIL_TRY(sail_alloc_save_options(&save_options_local)); save_options_local->options = d->sail_save_options->options; save_options_local->compression = d->sail_save_options->compression; save_options_local->compression_level = d->sail_save_options->compression_level; SAIL_TRY_OR_CLEANUP(sail_alloc_hash_map(&save_options_local->tuning), /* cleanup */ sail_destroy_save_options(save_options_local)); SAIL_TRY_OR_CLEANUP(utils_private::cpp_tuning_to_sail_tuning(d->tuning, save_options_local->tuning), /* cleanup */ sail_destroy_save_options(save_options_local)); *save_options = save_options_local; return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/save_options.h000066400000000000000000000104541475535176100212460ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAVE_OPTIONS_CPP_H #define SAIL_SAVE_OPTIONS_CPP_H #include #include #include #include #include #include struct sail_save_options; namespace sail { /* * Options to modify saving operations. */ class SAIL_EXPORT save_options { friend class image_output; friend class save_features; public: /* * Constructs empty save options. */ save_options(); /* * Constructs new save options from the or-ed manipulation options. See SailOption. */ save_options(int options); /* * Copies the save options. */ save_options(const save_options &wo); /* * Copies the save options. */ save_options& operator=(const sail::save_options &save_options); /* * Moves the save options. */ save_options(sail::save_options &&save_options) noexcept; /* * Moves the save options. */ save_options& operator=(sail::save_options &&save_options) noexcept; /* * Destroys the save options. */ ~save_options(); /* * Returns the or-ed manipulation options for saving operations. See SailOption. */ int options() const; /* * Returns the compression type. For example: SAIL_COMPRESSION_RLE. See SailCompression. * Use save_features to determine what compression types or values are supported by a particular codec. * * If a codec supports more than two compression types, compression levels are ignored in this case. * * For example: * * 1. The JPEG codec supports only one compression, JPEG. save_features.compression_level() can be used * to select a compression level. * 2. The TIFF codec supports more than two compression types (PACKBITS, JPEG, etc.). Compression levels * are ignored. */ SailCompression compression() const; /* * Returns the requested compression level. Must be in the range specified in * save_features.compression_level(). */ double compression_level() const; /* * Returns modifiable codec tuning. */ sail::tuning& tuning(); /* * Returns constant codec tuning. */ const sail::tuning& tuning() const; /* * Sets new or-ed manipulation options for saving operations. See SailOption. */ void set_options(int options); /* * Sets a new compression type. */ void set_compression(SailCompression compression); /* * Sets a new compression level. */ void set_compression_level(double compression_level); /* * Sets a new codec tuning. */ void set_tuning(const sail::tuning &tuning); private: /* * Makes a deep copy of the specified save options and stores the pointer for further use. * When the SAIL context gets uninitialized, the pointer becomes dangling. */ explicit save_options(const sail_save_options *wo); sail_status_t to_sail_save_options(sail_save_options **save_options) const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/source_image.cpp000066400000000000000000000117571475535176100215410ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include namespace sail { class SAIL_HIDDEN source_image::pimpl { public: pimpl() : sail_source_image(nullptr) { SAIL_TRY_OR_EXECUTE(sail_alloc_source_image(&sail_source_image), /* on error */ throw std::bad_alloc()); } ~pimpl() { sail_destroy_source_image(sail_source_image); } public: struct sail_source_image *sail_source_image; sail::special_properties special_properties; }; source_image::source_image() : d(new pimpl) { } source_image::source_image(const source_image &si) : source_image() { *this = si; } source_image& source_image::operator=(const source_image &si) { d->sail_source_image->pixel_format = si.pixel_format(); d->sail_source_image->chroma_subsampling = si.chroma_subsampling(); d->sail_source_image->orientation = si.orientation(); d->sail_source_image->compression = si.compression(); d->sail_source_image->interlaced = si.interlaced(); d->special_properties = si.special_properties(); return *this; } source_image::source_image(source_image &&si) noexcept { *this = std::move(si); } source_image& source_image::operator=(source_image &&si) noexcept { d = std::move(si.d); return *this; } source_image::~source_image() { } bool source_image::is_valid() const { return d->sail_source_image != nullptr; } SailPixelFormat source_image::pixel_format() const { return d->sail_source_image->pixel_format; } SailChromaSubsampling source_image::chroma_subsampling() const { return d->sail_source_image->chroma_subsampling; } SailOrientation source_image::orientation() const { return d->sail_source_image->orientation; } SailCompression source_image::compression() const { return d->sail_source_image->compression; } bool source_image::interlaced() const { return d->sail_source_image->interlaced; } const sail::special_properties &source_image::special_properties() const { return d->special_properties; } source_image::source_image(const sail_source_image *si) : source_image() { if (si == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::source_image(). The object is untouched"); return; } d->sail_source_image->pixel_format = si->pixel_format; d->sail_source_image->chroma_subsampling = si->chroma_subsampling; d->sail_source_image->orientation = si->orientation; d->sail_source_image->compression = si->compression; d->sail_source_image->interlaced = si->interlaced; d->special_properties = utils_private::c_tuning_to_cpp_tuning(si->special_properties); } sail_status_t source_image::to_sail_source_image(sail_source_image **source_image) const { SAIL_CHECK_PTR(source_image); sail_source_image *source_image_local; SAIL_TRY(sail_alloc_source_image(&source_image_local)); source_image_local->pixel_format = d->sail_source_image->pixel_format; source_image_local->chroma_subsampling = d->sail_source_image->chroma_subsampling; source_image_local->orientation = d->sail_source_image->orientation; source_image_local->compression = d->sail_source_image->compression; source_image_local->interlaced = d->sail_source_image->interlaced; SAIL_TRY_OR_CLEANUP(sail_alloc_hash_map(&source_image_local->special_properties), /* cleanup */ sail_destroy_source_image(source_image_local)); SAIL_TRY_OR_CLEANUP(utils_private::cpp_tuning_to_sail_tuning(d->special_properties, source_image_local->special_properties), /* cleanup */ sail_destroy_source_image(source_image_local)); *source_image = source_image_local; return SAIL_OK; } } sail-0.9.8/src/bindings/sail-c++/source_image.h000066400000000000000000000103251475535176100211740ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SOURCE_IMAGE_CPP_H #define SAIL_SOURCE_IMAGE_CPP_H #include #include #include #include #include struct sail_source_image; namespace sail { /* * source_image represents source image properties. The class is used in loading operations only * to preserve the source image properties. It's ignored in saving operations. */ class SAIL_EXPORT source_image { friend class image; public: /* * Constructs an empty source image with unknown pixel format and zero properties. */ source_image(); /* * Copies the source image. */ source_image(const source_image &si); /* * Copies the source image. */ source_image& operator=(const source_image &si); /* * Moves the source image. */ source_image(source_image &&si) noexcept; /* * Moves the source image. */ source_image& operator=(source_image &&si) noexcept; /* * Destroys the source image. */ ~source_image(); /* * Returns true if the source image is valid. The source image is always valid * except when a memory allocation failure occurs. */ bool is_valid() const; /* * Returns the source image pixel format. See SailPixelFormat. * * LOAD: Set by SAIL to a source image pixel format of the original image. * SAVE: Ignored. */ SailPixelFormat pixel_format() const; /* * Returns the source image chroma subsampling. See SailChromaSubsampling. * * LOAD: Set by SAIL to a source image chroma subsampling of the original image. * SAVE: Ignored. */ SailChromaSubsampling chroma_subsampling() const; /* * Returns the source image orientation. * * LOAD: Set by SAIL to the source image orientation. * SAVE: Ignored. */ SailOrientation orientation() const; /* * Returns the source image compression type. See SailCompression. * * LOAD: Set by SAIL to a valid source image compression type. * SAVE: Ignored. */ SailCompression compression() const; /* * Returns the source image interlacing. * * LOAD: Set by SAIL to true if the source image is interlaced. * SAVE: Ignored. */ bool interlaced() const; /* * Returns image format-specific properties that cannot be expressed * in a common way. For example, a cursor hot spot. * * Special properties' names start with the codec name to avoid confusing. * For example, "cur-hotspot-x". * * LOAD: Set by SAIL to valid source image special properties. * SAVE: Ignored. */ const sail::special_properties &special_properties() const; private: /* * Makes a deep copy of the specified source image. */ explicit source_image(const sail_source_image *si); sail_status_t to_sail_source_image(sail_source_image **source_image) const; private: class pimpl; std::unique_ptr d; }; } #endif sail-0.9.8/src/bindings/sail-c++/special_properties.h000066400000000000000000000030631475535176100224270ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SPECIAL_PROPERTIES_CPP_H #define SAIL_SPECIAL_PROPERTIES_CPP_H #include #include #include namespace sail { /* * Image format-specific properties that cannot be expressed * in a common way. For example, a cursor hot spot. */ using special_properties = std::unordered_map; } #endif sail-0.9.8/src/bindings/sail-c++/suppress_begin.h000066400000000000000000000023561475535176100215670ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifdef _MSC_VER #pragma warning(push) #endif sail-0.9.8/src/bindings/sail-c++/suppress_c4251.h000066400000000000000000000030621475535176100212340ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifdef _MSC_VER /* * load_options.h: warning C4251: 'sail::load_options::d': class 'std::unique_ptr<...>' * needs to have dll-interface to be used by clients of class 'sail::load_options'. * * To fix this warning we need to stop exporting whole classes and start exporting * individual methods. Just silence this warning. */ #pragma warning(disable: 4251) #endif sail-0.9.8/src/bindings/sail-c++/suppress_end.h000066400000000000000000000023551475535176100212500ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifdef _MSC_VER #pragma warning(pop) #endif sail-0.9.8/src/bindings/sail-c++/tuning.h000066400000000000000000000030271475535176100200370ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_TUNING_CPP_H #define SAIL_TUNING_CPP_H #include #include #include #include namespace sail { /* * Codec tuning. */ using tuning = std::unordered_map; /* * Supported codec tuning. */ using supported_tuning = std::vector; } #endif sail-0.9.8/src/bindings/sail-c++/utils.cpp000066400000000000000000000056121475535176100202300ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include namespace sail { void print_errno(const char *format) { sail_print_errno(format); } std::uint64_t now() { return sail_now(); } bool path_exists(const std::string &path) { return sail_path_exists(path.c_str()); } bool is_dir(const std::string &path) { return sail_is_dir(path.c_str()); } bool is_file(const std::string &path) { return sail_is_file(path.c_str()); } sail_status_t file_size(const std::string &path, size_t *size) { SAIL_TRY(sail_file_size(path.c_str(), size)); return SAIL_OK; } sail_status_t read_file_contents(const std::string &path, sail::arbitrary_data *contents) { SAIL_CHECK_PTR(contents); size_t size; SAIL_TRY(file_size(path, &size)); contents->resize(size); SAIL_TRY(sail_file_contents_into_data(path.c_str(), contents->data())); return SAIL_OK; } sail_status_t read_io_contents(sail::abstract_io &abstract_io, sail::arbitrary_data *contents) { SAIL_CHECK_PTR(contents); sail::abstract_io_adapter abstract_io_adapter(abstract_io); /* Resize the buffer to the I/O size. */ size_t data_size_local; SAIL_TRY(sail_io_size(&abstract_io_adapter.sail_io_c(), &data_size_local)); contents->resize(data_size_local); /* Read the contents. */ SAIL_TRY(sail_io_contents_into_data(&abstract_io_adapter.sail_io_c(), contents->data())); return SAIL_OK; } template<> SAIL_EXPORT std::uint16_t reverse_bytes<>(std::uint16_t v) { return sail_reverse_uint16(v); } template<> SAIL_EXPORT std::uint32_t reverse_bytes<>(std::uint32_t v) { return sail_reverse_uint32(v); } template<> SAIL_EXPORT std::uint64_t reverse_bytes<>(std::uint64_t v) { return sail_reverse_uint64(v); } } sail-0.9.8/src/bindings/sail-c++/utils.h000066400000000000000000000056701475535176100177010ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_UTILS_CPP_H #define SAIL_UTILS_CPP_H #include #include #include #include #include namespace sail { class abstract_io; /* * Prints the recent errno value with SAIL_LOG_ERROR(). The specified format must include '%s'. */ SAIL_EXPORT void print_errno(const char *format); /* * Returns the current number of milliseconds since Epoch or 0 on error. */ SAIL_EXPORT std::uint64_t now(); /* * Returns true if the specified file system path exists. */ SAIL_EXPORT bool path_exists(const std::string &path); /* * Returns true if the specified file system path is a directory. */ SAIL_EXPORT bool is_dir(const std::string &path); /* * Returns true if the specified file system path is a regular file. */ SAIL_EXPORT bool is_file(const std::string &path); /* * Retrieves the file size. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t file_size(const std::string &path, size_t *size); /* * Reads the specified file into the memory buffer. The memory buffer is resized to fit the contents. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t read_file_contents(const std::string &path, sail::arbitrary_data *contents); /* * Reads the specified I/O stream into the memory buffer. The memory buffer is resized to fit the contents. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t read_io_contents(sail::abstract_io &abstract_io, sail::arbitrary_data *contents); /* * Reverses the input value byte order. Only std::uint16_t, std::uint32_t, std::uint64_t, * and their equivalent types are supported. Other types will fail to link. * * Returns the reversed value. */ template T reverse_bytes(T v); } #endif sail-0.9.8/src/bindings/sail-c++/utils_private.cpp000066400000000000000000000042551475535176100217640ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include namespace sail { tuning utils_private::c_tuning_to_cpp_tuning(const sail_hash_map *c_tuning) { if (c_tuning == nullptr) { return tuning{}; } tuning tuning; sail_traverse_hash_map_with_user_data(c_tuning, sail_key_value_into_tuning, &tuning); return tuning; } sail_status_t utils_private::cpp_tuning_to_sail_tuning(const tuning &cpp_tuning, sail_hash_map *c_tuning) { sail_clear_hash_map(c_tuning); for (const auto &kv : cpp_tuning) { struct sail_variant *sail_variant; SAIL_TRY(kv.second.to_sail_variant(&sail_variant)); sail_put_hash_map(c_tuning, kv.first.c_str(), sail_variant); sail_destroy_variant(sail_variant); } return SAIL_OK; } bool utils_private::sail_key_value_into_tuning(const char *key, const sail_variant *value, void *user_data) { tuning *cpp_tuning = reinterpret_cast(user_data); cpp_tuning->emplace(key, variant(value)); return true; } } sail-0.9.8/src/bindings/sail-c++/utils_private.h000066400000000000000000000035221475535176100214250ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_UTILS_PRIVATE_CPP_H #define SAIL_UTILS_PRIVATE_CPP_H #include #include #include struct sail_hash_map; struct sail_variant; namespace sail { class SAIL_HIDDEN utils_private { public: static tuning c_tuning_to_cpp_tuning(const sail_hash_map *c_tuning); static sail_status_t cpp_tuning_to_sail_tuning(const tuning &cpp_tuning, sail_hash_map *c_tuning); private: // Needs to be in utils_private to allow creating sail:variant from sail_variant static bool sail_key_value_into_tuning(const char *key, const sail_variant *value, void *user_data); }; } #endif sail-0.9.8/src/bindings/sail-c++/variant.cpp000066400000000000000000000430561475535176100205400ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include namespace sail { namespace { const std::unordered_map cpp_to_sail_variant_type_mapping { { std::type_index(typeid(bool)), SAIL_VARIANT_TYPE_BOOL }, { std::type_index(typeid(char)), SAIL_VARIANT_TYPE_CHAR }, { std::type_index(typeid(unsigned char)), SAIL_VARIANT_TYPE_UNSIGNED_CHAR }, { std::type_index(typeid(short)), SAIL_VARIANT_TYPE_SHORT }, { std::type_index(typeid(unsigned short)), SAIL_VARIANT_TYPE_UNSIGNED_SHORT }, { std::type_index(typeid(int)), SAIL_VARIANT_TYPE_INT }, { std::type_index(typeid(unsigned int)), SAIL_VARIANT_TYPE_UNSIGNED_INT }, { std::type_index(typeid(long)), SAIL_VARIANT_TYPE_LONG }, { std::type_index(typeid(unsigned long)), SAIL_VARIANT_TYPE_UNSIGNED_LONG }, { std::type_index(typeid(float)), SAIL_VARIANT_TYPE_FLOAT }, { std::type_index(typeid(double)), SAIL_VARIANT_TYPE_DOUBLE }, { std::type_index(typeid(std::string)), SAIL_VARIANT_TYPE_STRING }, { std::type_index(typeid(sail::arbitrary_data)), SAIL_VARIANT_TYPE_DATA }, }; } class SAIL_HIDDEN variant::pimpl { public: pimpl() : type(SAIL_VARIANT_TYPE_INVALID) { } ~pimpl() { destroy_value(); } void destroy_value() { switch (type) { case SAIL_VARIANT_TYPE_STRING: v_string.~basic_string(); break; case SAIL_VARIANT_TYPE_DATA: v_arbitrary_data.~vector(); break; default: { break; } } } template SailVariantType type_to_sail_variant_type() { auto it = cpp_to_sail_variant_type_mapping.find(std::type_index(typeid(T))); return it == cpp_to_sail_variant_type_mapping.end() ? SAIL_VARIANT_TYPE_INVALID : it->second; } union { bool v_bool; char v_char; unsigned char v_unsigned_char; short v_short; unsigned short v_unsigned_short; int v_int; unsigned int v_unsigned_int; long v_long; unsigned long v_unsigned_long; float v_float; double v_double; std::string v_string; arbitrary_data v_arbitrary_data; }; SailVariantType type; }; variant::variant() : d(new pimpl) { } // Allow only specific types. Other types will fail to link. // template<> SAIL_EXPORT void variant::set_value<>(const bool &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_BOOL; d->v_bool = value; } template<> SAIL_EXPORT void variant::set_value<>(const char &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_CHAR; d->v_char = value; } template<> SAIL_EXPORT void variant::set_value<>(const unsigned char &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_UNSIGNED_CHAR; d->v_unsigned_char = value; } template<> SAIL_EXPORT void variant::set_value<>(const short &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_SHORT; d->v_short = value; } template<> SAIL_EXPORT void variant::set_value<>(const unsigned short &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_UNSIGNED_SHORT; d->v_unsigned_short = value; } template<> SAIL_EXPORT void variant::set_value<>(const int &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_INT; d->v_int = value; } template<> SAIL_EXPORT void variant::set_value<>(const unsigned int &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_UNSIGNED_INT; d->v_unsigned_int = value; } template<> SAIL_EXPORT void variant::set_value<>(const long &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_LONG; d->v_long = value; } template<> SAIL_EXPORT void variant::set_value<>(const unsigned long &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_UNSIGNED_LONG; d->v_unsigned_long = value; } template<> SAIL_EXPORT void variant::set_value<>(const float &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_FLOAT; d->v_float = value; } template<> SAIL_EXPORT void variant::set_value<>(const double &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_DOUBLE; d->v_double = value; } template<> SAIL_EXPORT void variant::set_value<>(const std::string &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_STRING; new (&d->v_string) std::string; d->v_string = value; } template<> SAIL_EXPORT void variant::set_value<>(const sail::arbitrary_data &value) { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_DATA; new (&d->v_arbitrary_data) arbitrary_data; d->v_arbitrary_data = value; } template variant::variant(const T &value) : variant() { set_value(value); } void variant::clear() { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_INVALID; } // Allow only specific types. Other types will fail to link. // template SAIL_EXPORT variant::variant(const bool &); template SAIL_EXPORT variant::variant(const char &); template SAIL_EXPORT variant::variant(const unsigned char &); template SAIL_EXPORT variant::variant(const short &); template SAIL_EXPORT variant::variant(const unsigned short &); template SAIL_EXPORT variant::variant(const int &); template SAIL_EXPORT variant::variant(const unsigned int &); template SAIL_EXPORT variant::variant(const long &); template SAIL_EXPORT variant::variant(const unsigned long &); template SAIL_EXPORT variant::variant(const float &); template SAIL_EXPORT variant::variant(const double &); template SAIL_EXPORT variant::variant(const std::string &); template SAIL_EXPORT variant::variant(const sail::arbitrary_data &); using sail_variant_type_workaround_alias_const = const sail_variant *; using sail_variant_type_workaround_alias_non_const = sail_variant *; template<> SAIL_EXPORT variant::variant(const sail_variant_type_workaround_alias_const &variant) : sail::variant() { if (variant == nullptr) { SAIL_LOG_TRACE("NULL pointer has been passed to sail::variant(). The object is untouched"); return; } switch (variant->type) { case SAIL_VARIANT_TYPE_BOOL: set_value(sail_variant_to_bool(variant)); break; case SAIL_VARIANT_TYPE_CHAR: set_value(sail_variant_to_char(variant)); break; case SAIL_VARIANT_TYPE_UNSIGNED_CHAR: set_value(sail_variant_to_unsigned_char(variant)); break; case SAIL_VARIANT_TYPE_SHORT: set_value(sail_variant_to_short(variant)); break; case SAIL_VARIANT_TYPE_UNSIGNED_SHORT: set_value(sail_variant_to_unsigned_short(variant)); break; case SAIL_VARIANT_TYPE_INT: set_value(sail_variant_to_int(variant)); break; case SAIL_VARIANT_TYPE_UNSIGNED_INT: set_value(sail_variant_to_unsigned_int(variant)); break; case SAIL_VARIANT_TYPE_LONG: set_value(sail_variant_to_long(variant)); break; case SAIL_VARIANT_TYPE_UNSIGNED_LONG: set_value(sail_variant_to_unsigned_long(variant)); break; case SAIL_VARIANT_TYPE_FLOAT: set_value(sail_variant_to_float(variant)); break; case SAIL_VARIANT_TYPE_DOUBLE: set_value(sail_variant_to_double(variant)); break; case SAIL_VARIANT_TYPE_STRING: set_value(std::string(sail_variant_to_string(variant))); break; case SAIL_VARIANT_TYPE_DATA: { const void *data = sail_variant_to_data(variant); sail::arbitrary_data arbitrary_data(variant->size); memcpy(arbitrary_data.data(), data, variant->size); set_value(arbitrary_data); break; } case SAIL_VARIANT_TYPE_INVALID: break; } } template<> SAIL_EXPORT variant::variant(const sail_variant_type_workaround_alias_non_const &variant) : sail::variant(const_cast(variant)) { } variant::variant(const sail::variant &var) : variant() { *this = var; } variant& variant::operator=(const sail::variant &variant) { switch (variant.d->type) { case SAIL_VARIANT_TYPE_BOOL: set_value(variant.d->v_bool); break; case SAIL_VARIANT_TYPE_CHAR: set_value(variant.d->v_char); break; case SAIL_VARIANT_TYPE_UNSIGNED_CHAR: set_value(variant.d->v_unsigned_char); break; case SAIL_VARIANT_TYPE_SHORT: set_value(variant.d->v_short); break; case SAIL_VARIANT_TYPE_UNSIGNED_SHORT: set_value(variant.d->v_unsigned_short); break; case SAIL_VARIANT_TYPE_INT: set_value(variant.d->v_int); break; case SAIL_VARIANT_TYPE_UNSIGNED_INT: set_value(variant.d->v_unsigned_int); break; case SAIL_VARIANT_TYPE_LONG: set_value(variant.d->v_long); break; case SAIL_VARIANT_TYPE_UNSIGNED_LONG: set_value(variant.d->v_unsigned_long); break; case SAIL_VARIANT_TYPE_FLOAT: set_value(variant.d->v_float); break; case SAIL_VARIANT_TYPE_DOUBLE: set_value(variant.d->v_double); break; case SAIL_VARIANT_TYPE_STRING: set_value(variant.d->v_string); break; case SAIL_VARIANT_TYPE_DATA: set_value(variant.d->v_arbitrary_data); break; case SAIL_VARIANT_TYPE_INVALID: { d->destroy_value(); d->type = SAIL_VARIANT_TYPE_INVALID; break; } } return *this; } variant::variant(sail::variant &&variant) noexcept { *this = std::move(variant); } variant& variant::operator=(sail::variant &&variant) noexcept { d = std::move(variant.d); return *this; } variant::~variant() { } bool variant::is_valid() const { return d->type != SAIL_VARIANT_TYPE_INVALID; } template bool variant::has_value() const { return d->type == d->type_to_sail_variant_type(); } // Allow only specific types. Other types will fail to link. // template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; template SAIL_EXPORT bool variant::has_value() const; // Allow only specific types. Other types will fail to link. // template<> SAIL_EXPORT const bool& variant::value() const { return d->v_bool; } template<> SAIL_EXPORT const char& variant::value() const { return d->v_char; } template<> SAIL_EXPORT const unsigned char& variant::value() const { return d->v_unsigned_char; } template<> SAIL_EXPORT const short& variant::value() const { return d->v_short; } template<> SAIL_EXPORT const unsigned short& variant::value() const { return d->v_unsigned_short; } template<> SAIL_EXPORT const int& variant::value() const { return d->v_int; } template<> SAIL_EXPORT const unsigned int& variant::value() const { return d->v_unsigned_int; } template<> SAIL_EXPORT const long& variant::value() const { return d->v_long; } template<> SAIL_EXPORT const unsigned long& variant::value() const { return d->v_unsigned_long; } template<> SAIL_EXPORT const float& variant::value() const { return d->v_float; } template<> SAIL_EXPORT const double& variant::value() const { return d->v_double; } template<> SAIL_EXPORT const std::string& variant::value() const { return d->v_string; } template<> SAIL_EXPORT const arbitrary_data& variant::value() const { return d->v_arbitrary_data; } sail_status_t variant::to_sail_variant(sail_variant **variant) const { SAIL_CHECK_PTR(variant); struct sail_variant *variant_local; SAIL_TRY(sail_alloc_variant(&variant_local)); SAIL_AT_SCOPE_EXIT( sail_destroy_variant(variant_local); ); variant_local->type = d->type; switch (d->type) { case SAIL_VARIANT_TYPE_BOOL: SAIL_TRY(sail_set_variant_bool(variant_local, d->v_bool)); break; case SAIL_VARIANT_TYPE_CHAR: SAIL_TRY(sail_set_variant_char(variant_local, d->v_char)); break; case SAIL_VARIANT_TYPE_UNSIGNED_CHAR: SAIL_TRY(sail_set_variant_unsigned_char(variant_local, d->v_unsigned_char)); break; case SAIL_VARIANT_TYPE_SHORT: SAIL_TRY(sail_set_variant_short(variant_local, d->v_short)); break; case SAIL_VARIANT_TYPE_UNSIGNED_SHORT: SAIL_TRY(sail_set_variant_unsigned_short(variant_local, d->v_unsigned_short)); break; case SAIL_VARIANT_TYPE_INT: SAIL_TRY(sail_set_variant_int(variant_local, d->v_int)); break; case SAIL_VARIANT_TYPE_UNSIGNED_INT: SAIL_TRY(sail_set_variant_unsigned_int(variant_local, d->v_unsigned_int)); break; case SAIL_VARIANT_TYPE_LONG: SAIL_TRY(sail_set_variant_long(variant_local, d->v_long)); break; case SAIL_VARIANT_TYPE_UNSIGNED_LONG: SAIL_TRY(sail_set_variant_unsigned_long(variant_local, d->v_unsigned_long)); break; case SAIL_VARIANT_TYPE_FLOAT: SAIL_TRY(sail_set_variant_float(variant_local, d->v_float)); break; case SAIL_VARIANT_TYPE_DOUBLE: SAIL_TRY(sail_set_variant_double(variant_local, d->v_double)); break; case SAIL_VARIANT_TYPE_STRING: SAIL_TRY(sail_set_variant_string(variant_local, d->v_string.c_str())); break; case SAIL_VARIANT_TYPE_DATA: { const sail::arbitrary_data &arbitrary_data = d->v_arbitrary_data; SAIL_TRY(sail_set_variant_data(variant_local, arbitrary_data.data(), arbitrary_data.size())); break; } case SAIL_VARIANT_TYPE_INVALID: break; } *variant = variant_local; variant_local = nullptr; return SAIL_OK; } bool operator==(const sail::variant &a, const sail::variant &b) { if (!a.is_valid() || !b.is_valid() || a.d->type != b.d->type) { return false; } switch (a.d->type) { case SAIL_VARIANT_TYPE_BOOL: return a.d->v_bool == b.d->v_bool; case SAIL_VARIANT_TYPE_CHAR: return a.d->v_char == b.d->v_char; case SAIL_VARIANT_TYPE_UNSIGNED_CHAR: return a.d->v_unsigned_char == b.d->v_unsigned_char; case SAIL_VARIANT_TYPE_SHORT: return a.d->v_short == b.d->v_short; case SAIL_VARIANT_TYPE_UNSIGNED_SHORT: return a.d->v_unsigned_short == b.d->v_unsigned_short; case SAIL_VARIANT_TYPE_INT: return a.d->v_int == b.d->v_int; case SAIL_VARIANT_TYPE_UNSIGNED_INT: return a.d->v_unsigned_int == b.d->v_unsigned_int; case SAIL_VARIANT_TYPE_LONG: return a.d->v_long == b.d->v_long; case SAIL_VARIANT_TYPE_UNSIGNED_LONG: return a.d->v_unsigned_long == b.d->v_unsigned_long; case SAIL_VARIANT_TYPE_FLOAT: return a.d->v_float == b.d->v_float; case SAIL_VARIANT_TYPE_DOUBLE: return a.d->v_double == b.d->v_double; case SAIL_VARIANT_TYPE_STRING: return a.d->v_string == b.d->v_string; case SAIL_VARIANT_TYPE_DATA: { const auto &a_arbitrary_data = a.d->v_arbitrary_data; const auto &b_arbitrary_data = b.d->v_arbitrary_data; return a_arbitrary_data.size() == b_arbitrary_data.size() && memcmp(a_arbitrary_data.data(), b_arbitrary_data.data(), a_arbitrary_data.size()) == 0; } case SAIL_VARIANT_TYPE_INVALID: return false; } return false; } bool operator!=(const sail::variant &a, const sail::variant &b) { return !(a == b); } } sail-0.9.8/src/bindings/sail-c++/variant.h000066400000000000000000000071601475535176100202010ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_VARIANT_CPP_H #define SAIL_VARIANT_CPP_H #include #include #include #include struct sail_variant; namespace sail { /* * Variant with limited possible data types. Supports only the following data types: * - bool * - char * - unsigned char * - short * - unsigned short * - int * - unsigned int * - long * - unsigned long * - float * - double * - std::string * - sail::arbitrary_data */ class SAIL_EXPORT variant { friend class meta_data; friend class utils_private; friend SAIL_EXPORT bool operator==(const sail::variant &a, const sail::variant &b); public: /* * Constructs an invalid variant. */ variant(); /* * Constructs a new variant from the value. */ template variant(const T &value); /* * Copies the variant. */ variant(const variant &var); /* * Copies the variant. */ variant& operator=(const sail::variant &variant); /* * Moves the variant. */ variant(sail::variant &&variant) noexcept; /* * Moves the variant. */ variant& operator=(sail::variant &&variant) noexcept; /* * Destroys the variant. */ ~variant(); /* * Returns true if the variant has some value stored. */ bool is_valid() const; /* * Returns true if the value stored in the variant is of the requested type. */ template bool has_value() const; /* * Returns the current value. The behavior is undefined if the requested type doesn't match * the actual type stored in the variant. Use has_value() to check the stored data type. */ template const T& value() const; /* * Sets a new value. */ template void set_value(const T &value); /* * Resets the variant to the invalid state and deletes the stored value. */ void clear(); private: sail_status_t to_sail_variant(sail_variant **variant) const; class pimpl; std::unique_ptr d; }; /* * Returns true if the variants have the same type and value. */ SAIL_EXPORT bool operator==(const sail::variant &a, const sail::variant &b); /* * Returns true if the variants have different types or values. */ SAIL_EXPORT bool operator!=(const sail::variant &a, const sail::variant &b); } #endif sail-0.9.8/src/config.h.in000066400000000000000000000060551475535176100153160ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CONFIG_H #define SAIL_CONFIG_H #define SAIL_VERSION_MAJOR @PROJECT_VERSION_MAJOR@ #define SAIL_VERSION_MINOR @PROJECT_VERSION_MINOR@ #define SAIL_VERSION_PATCH @PROJECT_VERSION_PATCH@ #define SAIL_VERSION_STRING "@PROJECT_VERSION@" #define SAIL_BUILD_VERSION(major, minor, patch) ((major << 16) | (minor << 8) | (patch)) #define SAIL_VERSION SAIL_BUILD_VERSION(@PROJECT_VERSION_MAJOR@, @PROJECT_VERSION_MINOR@, @PROJECT_VERSION_PATCH@) /* Unused when SAIL_COMBINE_CODECS is ON. */ #cmakedefine SAIL_CODECS_PATH "@SAIL_CODECS_PATH@" #cmakedefine SAIL_UNIX #cmakedefine SAIL_WIN32 #cmakedefine SAIL_MINGW #cmakedefine SAIL_CYGWIN #cmakedefine SAIL_APPLE #cmakedefine SAIL_HAVE_ALIGNAS #ifdef SAIL_HAVE_ALIGNAS #define SAIL_ALIGNAS(x) _Alignas(x) #else #define SAIL_ALIGNAS(x) #endif /* Do we compile for VCPKG (port or client)? */ #cmakedefine SAIL_VCPKG /* Build static libs. SAIL_SHARED_[ON|OFF] is a helper macro, use SAIL_STATIC instead. */ #define SAIL_SHARED_@BUILD_SHARED_LIBS@ #ifdef SAIL_SHARED_OFF #define SAIL_STATIC #endif /* Combine all codecs into a single library. */ #cmakedefine SAIL_COMBINE_CODECS /* Buffer size to read from I/O sources to detect file types by magic numbers. */ #cmakedefine SAIL_MAGIC_BUFFER_SIZE @SAIL_MAGIC_BUFFER_SIZE@ /* Load third-party codecs from SAIL_THIRD_PARTY_CODECS_PATH. */ #cmakedefine SAIL_THIRD_PARTY_CODECS_PATH /* Enable working in multi-threaded environments. */ #cmakedefine SAIL_THREAD_SAFE /* Enable __builtin_bswap16. */ #cmakedefine SAIL_HAVE_BUILTIN_BSWAP16 /* Enable __builtin_bswap32. */ #cmakedefine SAIL_HAVE_BUILTIN_BSWAP32 /* Enable __builtin_bswap64. */ #cmakedefine SAIL_HAVE_BUILTIN_BSWAP64 /* Enabled built-in codecs. */ @SAIL_HAVE_CODEC_DEFINES@ /* OpenMP scheduling algorithm. */ #cmakedefine SAIL_OPENMP_SCHEDULE @SAIL_OPENMP_SCHEDULE@ #cmakedefine SAIL_WINDOWS_UTF8_PATHS #endif sail-0.9.8/src/sail-codecs-archive/000077500000000000000000000000001475535176100170725ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs-archive/CMakeLists.txt000066400000000000000000000061211475535176100216320ustar00rootroot00000000000000# Generate built-in codecs info and compile it into the combined library. # Needed for the configure_file() command below. # foreach(codec ${ENABLED_CODECS}) get_target_property(CODEC_BINARY_DIR sail-codec-${codec} BINARY_DIR) set(SAIL_ENABLED_CODECS "${SAIL_ENABLED_CODECS}\"${codec}\", ") file(READ ${CODEC_BINARY_DIR}/sail-codec-${codec}.codec.info SAIL_CODEC_INFO_CONTENTS) string(REPLACE "\"" "\\\"" SAIL_CODEC_INFO_CONTENTS "${SAIL_CODEC_INFO_CONTENTS}") # Add \n\ on every line string(REGEX REPLACE "\n" "\\\\n\\\\\n" SAIL_CODEC_INFO_CONTENTS "${SAIL_CODEC_INFO_CONTENTS}") set(SAIL_CODEC_INFO_CONTENTS "\"${SAIL_CODEC_INFO_CONTENTS}\",\n") set(SAIL_ENABLED_CODECS_INFO "${SAIL_ENABLED_CODECS_INFO}${SAIL_CODEC_INFO_CONTENTS}") set(SAIL_ENABLED_CODECS_DECLARE_FUNCTIONS "${SAIL_ENABLED_CODECS_DECLARE_FUNCTIONS} #define SAIL_CODEC_NAME ${codec} #include \"layout/v8.h\" #undef SAIL_CODEC_NAME ") set(SAIL_ENABLED_CODECS_LAYOUTS "${SAIL_ENABLED_CODECS_LAYOUTS} { #define SAIL_CODEC_NAME ${codec} .load_init = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_init_v8), .load_seek_next_frame = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_seek_next_frame_v8), .load_frame = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_frame_v8), .load_finish = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_finish_v8), .save_init = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_init_v8), .save_seek_next_frame = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_seek_next_frame_v8), .save_frame = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_frame_v8), .save_finish = SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_finish_v8) #undef SAIL_CODEC_NAME },\n") endforeach() string(TOUPPER "${SAIL_ENABLED_CODECS}" SAIL_ENABLED_CODECS) set(SAIL_ENABLED_CODECS "${SAIL_ENABLED_CODECS}NULL") # List of enabled codecs and their info # configure_file(${CMAKE_CURRENT_SOURCE_DIR}/enabled_codecs.c.in ${CMAKE_CURRENT_BINARY_DIR}/enabled_codecs.c @ONLY) # Add a combined library # add_library(sail-codecs ${CMAKE_CURRENT_BINARY_DIR}/enabled_codecs.c) target_link_libraries(sail-codecs PRIVATE sail-common) sail_enable_asan(TARGET sail-codecs) if (SAIL_INSTALL_PDB) sail_install_pdb(TARGET sail-codecs) endif() # BUILD_INTERFACE is needed as CMake tries to export all the sail-codec-${CODEC} dependencies # in the below install(TARGETS) command even though they are OBJECT libraries. # foreach(CODEC ${ENABLED_CODECS}) target_link_libraries(sail-codecs PRIVATE $) endforeach() target_include_directories(sail-codecs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../sail) install(TARGETS sail-codecs EXPORT SailCodecsTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sail/sail-codecs) sail_install_cmake_config(TARGET "SailCodecs" FOLDER "sailcodecs" VERSION 1.0.0) sail-0.9.8/src/sail-codecs-archive/cmake/000077500000000000000000000000001475535176100201525ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs-archive/cmake/SailCodecsConfig.cmake.in000066400000000000000000000003021475535176100247130ustar00rootroot00000000000000include(CMakeFindDependencyMacro) find_dependency(SailCommon REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR}) include(${CMAKE_CURRENT_LIST_DIR}/SailCodecsTargets.cmake) @SAIL_CODECS_FIND_DEPENDENCIES@ sail-0.9.8/src/sail-codecs-archive/enabled_codecs.c.in000066400000000000000000000031351475535176100225570ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include SAIL_EXPORT const char * const sail_enabled_codecs[] = { @SAIL_ENABLED_CODECS@ }; SAIL_EXPORT const char * const sail_enabled_codecs_info[] = { @SAIL_ENABLED_CODECS_INFO@ }; @SAIL_ENABLED_CODECS_DECLARE_FUNCTIONS@ SAIL_EXPORT struct sail_codec_layout_v8 const sail_enabled_codecs_layouts[] = { @SAIL_ENABLED_CODECS_LAYOUTS@ }; sail-0.9.8/src/sail-codecs/000077500000000000000000000000001475535176100154535ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/CMakeLists.txt000066400000000000000000000137511475535176100202220ustar00rootroot00000000000000# Common dependencies that can be re-used by different codecs # add_subdirectory(common/bmp) # List of codecs # set(HIGHEST_PRIORITY_CODECS gif jpeg png tiff) set(HIGH_PRIORITY_CODECS bmp svg) set(MEDIUM_PRIORITY_CODECS avif jpeg2000 jpegxl webp) set(LOW_PRIORITY_CODECS ico pcx pnm psd qoi tga) set(LOWEST_PRIORITY_CODECS wal xbm) set(CODECS ${HIGHEST_PRIORITY_CODECS} ${HIGH_PRIORITY_CODECS} ${MEDIUM_PRIORITY_CODECS} ${LOW_PRIORITY_CODECS} ${LOWEST_PRIORITY_CODECS}) list(SORT CODECS) # Expand codecs priorities to actual codecs. # macro(sail_expand_priorities) set(TEMP_LIST) foreach (codec IN LISTS ${ARGV0}) if (codec STREQUAL "highest-priority") list(APPEND TEMP_LIST ${HIGHEST_PRIORITY_CODECS}) elseif (codec STREQUAL "high-priority") list(APPEND TEMP_LIST ${HIGH_PRIORITY_CODECS}) elseif (codec STREQUAL "medium-priority") list(APPEND TEMP_LIST ${MEDIUM_PRIORITY_CODECS}) elseif (codec STREQUAL "low-priority") list(APPEND TEMP_LIST ${LOW_PRIORITY_CODECS}) elseif (codec STREQUAL "lowest-priority") list(APPEND TEMP_LIST ${LOWEST_PRIORITY_CODECS}) else() list(APPEND TEMP_LIST ${codec}) endif() endforeach() set(${ARGV0} ${TEMP_LIST}) endmacro() # Check if the input codecs list matches the existing codecs list # and fail with an error if any of the input codecs doesn't exist. # # For example: sail_check_codec_presence(jpeg;png jpeg;png;tiff) succeeds # sail_check_codec_presence(jpeg;png ico;jpeg;tiff) fails # function(sail_check_codec_presence VAR_INPUT_LIST CHECK_AGAINST_LIST) foreach (codec IN LISTS ${VAR_INPUT_LIST}) if (NOT ${codec} IN_LIST CHECK_AGAINST_LIST) message(FATAL_ERROR "Codec '${codec}' doesn't exist in the list of the valid codecs '${CHECK_AGAINST_LIST}'") endif() endforeach() endfunction() sail_expand_priorities(SAIL_ONLY_CODECS) sail_expand_priorities(SAIL_ENABLE_CODECS) sail_expand_priorities(SAIL_DISABLE_CODECS) list(REMOVE_DUPLICATES SAIL_ONLY_CODECS) list(REMOVE_DUPLICATES SAIL_ENABLE_CODECS) list(REMOVE_DUPLICATES SAIL_DISABLE_CODECS) sail_check_codec_presence(SAIL_ONLY_CODECS "${CODECS}") sail_check_codec_presence(SAIL_ENABLE_CODECS "${CODECS}") sail_check_codec_presence(SAIL_DISABLE_CODECS "${CODECS}") # Filter out codecs # if (SAIL_ONLY_CODECS) set(ENABLED_CODECS "") foreach (codec IN LISTS CODECS) if (${codec} IN_LIST SAIL_ONLY_CODECS) list(APPEND ENABLED_CODECS ${codec}) list(APPEND FORCED_CODECS ${codec}) else() list(APPEND DISABLED_CODECS ${codec}) endif() endforeach() else() set(ENABLED_CODECS ${CODECS}) if (SAIL_ENABLE_CODECS) foreach (codec IN LISTS SAIL_ENABLE_CODECS) list(APPEND FORCED_CODECS ${codec}) endforeach() endif() endif() if (SAIL_DISABLE_CODECS) foreach (codec IN LISTS ENABLED_CODECS) if (${codec} IN_LIST SAIL_DISABLE_CODECS) list(REMOVE_ITEM ENABLED_CODECS ${codec}) list(REMOVE_ITEM FORCED_CODECS ${codec}) list(APPEND DISABLED_CODECS ${codec}) endif() endforeach() endif() foreach (codec IN LISTS FORCED_CODECS) string(TOUPPER ${codec} codec_upper) set(SAIL_CODEC_${codec_upper}_REQUIRED_OPTION "REQUIRED") endforeach() # Add enabled codecs. # foreach (codec ${ENABLED_CODECS}) add_subdirectory(${codec}) # Codecs can disable themselves due to missing dependencies. # if (NOT TARGET sail-codec-${codec}) list(REMOVE_ITEM ENABLED_CODECS ${codec}) list(APPEND DISABLED_CODECS ${codec}) endif() endforeach() # Export extra dependencies like giflib for static builds to the parent scope # if (NOT BUILD_SHARED_LIBS) foreach (dependency IN LISTS SAIL_CODECS_FIND_DEPENDENCIES) string(REPLACE "," ";" dependency ${dependency}) list(GET dependency 0 dependency_search_mechanism) if (dependency_search_mechanism STREQUAL "find_dependency") list(GET dependency 1 dependency_name) list(GET dependency 2 dependency_link_target) set(SAIL_CODECS_FIND_DEPENDENCIES_EXPANDED "${SAIL_CODECS_FIND_DEPENDENCIES_EXPANDED} # ${dependency_name} find_dependency(${dependency_name} REQUIRED) set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${dependency_link_target}) ") elseif(dependency_search_mechanism STREQUAL "find_library") list(GET dependency 1 dependency_release_names) list(GET dependency 2 dependency_debug_names) # Get "webp" from "webp libwebp" set(dependency_release_names_as_list ${dependency_release_names}) string(REGEX REPLACE " +" ";" dependency_release_names_as_list ${dependency_release_names_as_list}) list(GET dependency_release_names_as_list 0 dependency_name) set(SAIL_CODECS_FIND_DEPENDENCIES_EXPANDED "${SAIL_CODECS_FIND_DEPENDENCIES_EXPANDED} # ${dependency_name} find_library(${dependency_name}_RELEASE_LIBRARY NAMES ${dependency_release_names}) find_library(${dependency_name}_DEBUG_LIBRARY NAMES ${dependency_debug_names} ${dependency_release_names}) if (NOT ${dependency_name}_RELEASE_LIBRARY OR NOT ${dependency_name}_DEBUG_LIBRARY) message(FATAL_ERROR \"Missing dependency: ${dependency_name}\") endif() set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES \$<\$:\${${dependency_name}_RELEASE_LIBRARY}> \$<\$:\${${dependency_name}_DEBUG_LIBRARY}>) ") else() message(FATAL_ERROR "Unsupported dependencies search mechanism '${dependency_search_mechanism}'") endif() endforeach() set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES_EXPANDED} PARENT_SCOPE) endif() # Export the list of codecs to the parent CMake file to print statistics # set(ENABLED_CODECS ${ENABLED_CODECS} PARENT_SCOPE) set(DISABLED_CODECS ${DISABLED_CODECS} PARENT_SCOPE) sail-0.9.8/src/sail-codecs/avif/000077500000000000000000000000001475535176100164005ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/avif/CMakeLists.txt000066400000000000000000000012321475535176100211360ustar00rootroot00000000000000find_package(libavif CONFIG ${SAIL_CODEC_AVIF_REQUIRED_OPTION}) if (NOT libavif_FOUND) return() endif() # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_dependency(LIBAVIF REQUIRED) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES avif) # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_dependency,libavif,avif" PARENT_SCOPE) # Common codec configuration # sail_codec(NAME avif SOURCES helpers.h helpers.c io.h io.c avif.c ICON avif.png DEPENDENCY_LIBS avif) sail-0.9.8/src/sail-codecs/avif/avif.c000066400000000000000000000216671475535176100175050ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include "helpers.h" #include "io.h" /* * Codec-specific state. */ struct avif_state { const struct sail_load_options *load_options; const struct sail_save_options *save_options; struct avifIO *avif_io; struct avifDecoder *avif_decoder; struct avifRGBImage rgb_image; struct sail_avif_context avif_context; }; static sail_status_t alloc_avif_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct avif_state **avif_state) { void *ptr; /* avifIO */ SAIL_TRY(sail_malloc(sizeof(struct avifIO), &ptr)); struct avifIO *avif_io = ptr; *avif_io = (struct avifIO) { .destroy = NULL, .read = avif_private_read_proc, .write = NULL, .sizeHint = 0, .persistent = AVIF_FALSE, .data = NULL, }; /* buffer */ const size_t buffer_size = 8*1024; void *buffer; SAIL_TRY_OR_CLEANUP(sail_malloc(buffer_size, &buffer), /* on error */ sail_free(avif_io)); /* avif_state */ SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(struct avif_state), &ptr), /* on error */ sail_free(buffer), sail_free(avif_io)); *avif_state = ptr; **avif_state = (struct avif_state){ .load_options = load_options, .save_options = save_options, .avif_io = avif_io, .avif_decoder = avifDecoderCreate(), .avif_context = (struct sail_avif_context) { .io = io, .buffer = buffer, .buffer_size = buffer_size, } }; #if AVIF_VERSION_MAJOR > 0 || AVIF_VERSION_MINOR >= 9 (*avif_state)->avif_decoder->strictFlags = AVIF_STRICT_DISABLED; #endif avifDecoderSetIO((*avif_state)->avif_decoder, (*avif_state)->avif_io); (*avif_state)->avif_io->data = &(*avif_state)->avif_context; return SAIL_OK; } static void destroy_avif_state(struct avif_state *avif_state) { if (avif_state == NULL) { return; } avifDecoderDestroy(avif_state->avif_decoder); sail_free(avif_state->avif_context.buffer); sail_free(avif_state->avif_io); sail_free(avif_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_avif(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct avif_state *avif_state; SAIL_TRY(alloc_avif_state(io, load_options, NULL, &avif_state)); *state = avif_state; avif_state->avif_decoder->ignoreExif = avif_state->avif_decoder->ignoreXMP = (avif_state->load_options->options & SAIL_OPTION_META_DATA) == 0; /* Initialize AVIF. */ avifResult avif_result = avifDecoderParse(avif_state->avif_decoder); if (avif_result != AVIF_RESULT_OK) { SAIL_LOG_ERROR("AVIF: %s", avifResultToString(avif_result)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_avif(void *state, struct sail_image **image) { struct avif_state *avif_state = state; avifResult avif_result = avifDecoderNextImage(avif_state->avif_decoder); if (avif_result == AVIF_RESULT_NO_IMAGES_REMAINING) { return SAIL_ERROR_NO_MORE_FRAMES; } if (avif_result != AVIF_RESULT_OK) { SAIL_LOG_ERROR("AVIF: %s", avifResultToString(avif_result)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } const struct avifImage *avif_image = avif_state->avif_decoder->image; struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); avifRGBImageSetDefaults(&avif_state->rgb_image, avif_image); avif_state->rgb_image.depth = avif_private_round_depth(avif_state->rgb_image.depth); if (avif_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = avif_private_sail_pixel_format(avif_image->yuvFormat, avif_image->depth, avif_image->alphaPlane != NULL); image_local->source_image->chroma_subsampling = avif_private_sail_chroma_subsampling(avif_image->yuvFormat); image_local->source_image->compression = SAIL_COMPRESSION_AV1; } image_local->width = avif_image->width; image_local->height = avif_image->height; image_local->pixel_format = avif_private_rgb_sail_pixel_format(avif_state->rgb_image.format, avif_state->rgb_image.depth); image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); image_local->delay = (int)(avif_state->avif_decoder->imageTiming.duration * 1000); /* Fetch ICC profile. */ if (avif_state->load_options->options & SAIL_OPTION_ICCP) { SAIL_TRY_OR_CLEANUP(avif_private_fetch_iccp(&avif_image->icc, &image_local->iccp), /* cleanup */ sail_destroy_image(image_local)); } struct sail_meta_data_node **last_meta_data_node = &image_local->meta_data_node; if (avif_state->load_options->options & SAIL_OPTION_META_DATA) { /* Fetch EXIF. */ SAIL_TRY_OR_CLEANUP(avif_private_fetch_meta_data(SAIL_META_DATA_EXIF, &avif_image->exif, last_meta_data_node), /* cleanup */ sail_destroy_image(image_local)); if (*last_meta_data_node != NULL) { last_meta_data_node = &(*last_meta_data_node)->next; } /* Fetch XMP. */ SAIL_TRY_OR_CLEANUP(avif_private_fetch_meta_data(SAIL_META_DATA_XMP, &avif_image->xmp, last_meta_data_node), /* cleanup */ sail_destroy_image(image_local)); if (*last_meta_data_node != NULL) { last_meta_data_node = &(*last_meta_data_node)->next; } } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_avif(void *state, struct sail_image *image) { struct avif_state *avif_state = state; const struct avifImage *avif_image = avif_state->avif_decoder->image; avif_state->rgb_image.pixels = image->pixels; avif_state->rgb_image.rowBytes = image->bytes_per_line; avifResult avif_result = avifImageYUVToRGB(avif_image, &avif_state->rgb_image); if (avif_result != AVIF_RESULT_OK) { SAIL_LOG_ERROR("AVIF: %s", avifResultToString(avif_result)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_avif(void **state) { struct avif_state *avif_state = *state; *state = NULL; destroy_avif_state(avif_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_avif(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_avif(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_avif(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_avif(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/avif/avif.codec.info.in000066400000000000000000000010661475535176100216660ustar00rootroot00000000000000# AVIF codec information # [codec] layout=8 version=0.9.0 priority=MEDIUM name=AVIF description=AV1 Still Image File Format # ????ftypavif;????ftypavis magic-numbers=?? ?? ?? ?? 66 74 79 70 61 76 69 66;?? ?? ?? ?? 66 74 79 70 61 76 69 73 extensions=avif;avifs mime-types=image/avif;image/avif-sequence [load-features] features=STATIC;ANIMATED;META-DATA;ICCP;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/avif/avif.png000066400000000000000000000004041475535176100200310ustar00rootroot00000000000000PNG  IHDRR'PLTEFFFNNN'=tRNS@fbKGDH pHYs  tIME 7"VIDATcp ƙ3gJv&@.Fy9l  ^`1"EVIM-BYg3`,v#56l IENDB`sail-0.9.8/src/sail-codecs/avif/helpers.c000066400000000000000000000127011475535176100202070ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "helpers.h" enum SailPixelFormat avif_private_sail_pixel_format(enum avifPixelFormat avif_pixel_format, uint32_t depth, bool has_alpha) { switch (avif_pixel_format) { case AVIF_PIXEL_FORMAT_NONE: { return SAIL_PIXEL_FORMAT_UNKNOWN; } default: { switch (depth) { case 8: { return has_alpha ? SAIL_PIXEL_FORMAT_BPP32_YUVA : SAIL_PIXEL_FORMAT_BPP24_YUV; } case 10: { return has_alpha ? SAIL_PIXEL_FORMAT_BPP40_YUVA : SAIL_PIXEL_FORMAT_BPP30_YUV; } case 12: { return has_alpha ? SAIL_PIXEL_FORMAT_BPP48_YUVA : SAIL_PIXEL_FORMAT_BPP36_YUV; } default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } } } enum SailChromaSubsampling avif_private_sail_chroma_subsampling(enum avifPixelFormat avif_pixel_format) { switch (avif_pixel_format) { case AVIF_PIXEL_FORMAT_YUV444: return SAIL_CHROMA_SUBSAMPLING_444; case AVIF_PIXEL_FORMAT_YUV422: return SAIL_CHROMA_SUBSAMPLING_422; case AVIF_PIXEL_FORMAT_YUV420: return SAIL_CHROMA_SUBSAMPLING_420; case AVIF_PIXEL_FORMAT_YUV400: return SAIL_CHROMA_SUBSAMPLING_400; default: { return SAIL_CHROMA_SUBSAMPLING_UNKNOWN; } } } enum SailPixelFormat avif_private_rgb_sail_pixel_format(enum avifRGBFormat rgb_pixel_format, uint32_t depth) { switch (depth) { case 8: { switch (rgb_pixel_format) { case AVIF_RGB_FORMAT_RGB: return SAIL_PIXEL_FORMAT_BPP24_RGB; case AVIF_RGB_FORMAT_RGBA: return SAIL_PIXEL_FORMAT_BPP32_RGBA; case AVIF_RGB_FORMAT_ARGB: return SAIL_PIXEL_FORMAT_BPP32_ARGB; case AVIF_RGB_FORMAT_BGR: return SAIL_PIXEL_FORMAT_BPP24_BGR; case AVIF_RGB_FORMAT_BGRA: return SAIL_PIXEL_FORMAT_BPP32_BGRA; case AVIF_RGB_FORMAT_ABGR: return SAIL_PIXEL_FORMAT_BPP32_ABGR; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } case 16: { switch (rgb_pixel_format) { case AVIF_RGB_FORMAT_RGB: return SAIL_PIXEL_FORMAT_BPP48_RGB; case AVIF_RGB_FORMAT_RGBA: return SAIL_PIXEL_FORMAT_BPP64_RGBA; case AVIF_RGB_FORMAT_ARGB: return SAIL_PIXEL_FORMAT_BPP64_ARGB; case AVIF_RGB_FORMAT_BGR: return SAIL_PIXEL_FORMAT_BPP48_BGR; case AVIF_RGB_FORMAT_BGRA: return SAIL_PIXEL_FORMAT_BPP64_BGRA; case AVIF_RGB_FORMAT_ABGR: return SAIL_PIXEL_FORMAT_BPP64_ABGR; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } uint32_t avif_private_round_depth(uint32_t depth) { if (depth > 8) { return 16; } else { return 8; } } sail_status_t avif_private_fetch_iccp(const struct avifRWData *avif_iccp, struct sail_iccp **iccp) { SAIL_CHECK_PTR(avif_iccp); SAIL_CHECK_PTR(iccp); if (avif_iccp->data != NULL) { SAIL_TRY(sail_alloc_iccp_from_data(avif_iccp->data, avif_iccp->size, iccp)); SAIL_LOG_TRACE("AVIF: Found ICC profile %u bytes long", (unsigned)avif_iccp->size); } else { SAIL_LOG_TRACE("AVIF: ICC profile is not found"); } return SAIL_OK; } sail_status_t avif_private_fetch_meta_data(enum SailMetaData key, const struct avifRWData *avif_rw_data, struct sail_meta_data_node **meta_data_node) { if (avif_rw_data->data != NULL) { struct sail_meta_data_node *meta_data_node_local; SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(key, &meta_data_node_local->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_set_variant_data(meta_data_node_local->meta_data->value, avif_rw_data->data, avif_rw_data->size), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); *meta_data_node = meta_data_node_local; } return SAIL_OK; } sail-0.9.8/src/sail-codecs/avif/helpers.h000066400000000000000000000042211475535176100202120ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_AVIF_HELPERS_H #define SAIL_AVIF_HELPERS_H #include #include #include #include #include #include struct sail_meta_data_node; SAIL_HIDDEN enum SailPixelFormat avif_private_sail_pixel_format(enum avifPixelFormat avif_pixel_format, uint32_t depth, bool has_alpha); SAIL_HIDDEN enum SailChromaSubsampling avif_private_sail_chroma_subsampling(enum avifPixelFormat avif_pixel_format); SAIL_HIDDEN enum SailPixelFormat avif_private_rgb_sail_pixel_format(enum avifRGBFormat rgb_pixel_format, uint32_t depth); SAIL_HIDDEN uint32_t avif_private_round_depth(uint32_t depth); SAIL_HIDDEN sail_status_t avif_private_fetch_iccp(const struct avifRWData *avif_iccp, struct sail_iccp **iccp); SAIL_HIDDEN sail_status_t avif_private_fetch_meta_data(enum SailMetaData key, const struct avifRWData *avif_rw_data, struct sail_meta_data_node **meta_data_node); #endif sail-0.9.8/src/sail-codecs/avif/io.c000066400000000000000000000045201475535176100171540ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "io.h" avifResult avif_private_read_proc(struct avifIO *io, uint32_t read_flags, uint64_t offset, size_t size, avifROData *out) { if (read_flags != 0) { SAIL_LOG_ERROR("AVIF: Read flags must be #0, but got #%u", read_flags); return AVIF_RESULT_IO_ERROR; } struct sail_avif_context *avif_context = io->data; SAIL_TRY_OR_EXECUTE(avif_context->io->seek(avif_context->io->stream, (long)offset, SEEK_SET), /* on error */ return AVIF_RESULT_IO_ERROR); /* Realloc internal buffer if necessary. */ if (size > avif_context->buffer_size) { SAIL_TRY_OR_EXECUTE(sail_realloc(size, &avif_context->buffer), /* on error */ return AVIF_RESULT_IO_ERROR); avif_context->buffer_size = size; } size_t size_read; SAIL_TRY_OR_EXECUTE(avif_context->io->tolerant_read(avif_context->io->stream, avif_context->buffer, size, &size_read), /* on error */ return AVIF_RESULT_IO_ERROR); out->data = avif_context->buffer; out->size = size_read; return AVIF_RESULT_OK; } sail-0.9.8/src/sail-codecs/avif/io.h000066400000000000000000000031151475535176100171600ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_AVIF_IO_H #define SAIL_AVIF_IO_H #include #include #include #include struct sail_avif_context { struct sail_io *io; void *buffer; size_t buffer_size; }; SAIL_HIDDEN avifResult avif_private_read_proc(struct avifIO *io, uint32_t read_flags, uint64_t offset, size_t size, avifROData *out); #endif sail-0.9.8/src/sail-codecs/bmp/000077500000000000000000000000001475535176100162315ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/bmp/CMakeLists.txt000066400000000000000000000001371475535176100207720ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME bmp SOURCES bmp.c LINK bmp-common ICON bmp.png) sail-0.9.8/src/sail-codecs/bmp/bmp.c000066400000000000000000000111561475535176100171570ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "common/bmp/bmp.h" /* * Codec-specific state. */ struct bmp_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; bool frame_loaded; void *common_bmp_state; }; static sail_status_t alloc_bmp_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct bmp_state **bmp_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct bmp_state), &ptr)); *bmp_state = ptr; **bmp_state = (struct bmp_state) { .io = io, .load_options = load_options, .save_options = save_options, .frame_loaded = false, .common_bmp_state = NULL, }; return SAIL_OK; } static void destroy_bmp_state(struct bmp_state *bmp_state) { if (bmp_state == NULL) { return; } sail_free(bmp_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_bmp(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct bmp_state *bmp_state; SAIL_TRY(alloc_bmp_state(io, load_options, NULL, &bmp_state)); *state = bmp_state; SAIL_TRY(bmp_private_read_init(io, bmp_state->load_options, &bmp_state->common_bmp_state, SAIL_READ_BMP_FILE_HEADER)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_bmp(void *state, struct sail_image **image) { struct bmp_state *bmp_state = state; if (bmp_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } bmp_state->frame_loaded = true; SAIL_TRY(bmp_private_read_seek_next_frame(bmp_state->common_bmp_state, bmp_state->io, image)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_bmp(void *state, struct sail_image *image) { struct bmp_state *bmp_state = state; SAIL_TRY(bmp_private_read_frame(bmp_state->common_bmp_state, bmp_state->io, image)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_bmp(void **state) { struct bmp_state *bmp_state = *state; *state = NULL; if (bmp_state->common_bmp_state != NULL) { SAIL_TRY_OR_CLEANUP(bmp_private_read_finish(&bmp_state->common_bmp_state, bmp_state->io), /* cleanup */ destroy_bmp_state(bmp_state)); } destroy_bmp_state(bmp_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_bmp(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_bmp(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_bmp(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_bmp(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/bmp/bmp.codec.info.in000066400000000000000000000006671475535176100213560ustar00rootroot00000000000000# BMP codec information # [codec] layout=8 version=1.1.2 priority=HIGH name=BMP description=Bitmap Picture magic-numbers=42 4d;02 00 extensions=bmp;ddb;dib mime-types=image/bmp;image/x-bmp [load-features] features=STATIC;META-DATA;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/bmp/bmp.png000066400000000000000000000003721475535176100175170ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLL7.tRNS@fbKGDH pHYs  tIME 76UIDATc0c̙Pd)A 1Μ8QRr&1q̙"@\ 7d)df; ܺ Q*IENDB`sail-0.9.8/src/sail-codecs/common/000077500000000000000000000000001475535176100167435ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/common/bmp/000077500000000000000000000000001475535176100175215ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/common/bmp/CMakeLists.txt000066400000000000000000000004071475535176100222620ustar00rootroot00000000000000add_library(bmp-common OBJECT helpers.h helpers.c bmp.h bmp.c) target_include_directories(bmp-common PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../..) target_link_libraries(bmp-common PRIVATE sail-common) sail-0.9.8/src/sail-codecs/common/bmp/bmp.c000066400000000000000000000525521475535176100204540ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include "bmp.h" #include "helpers.h" /* Compression types. */ static const uint32_t SAIL_BI_RGB = 0; static const uint32_t SAIL_BI_RLE8 = 1; static const uint32_t SAIL_BI_RLE4 = 2; static const uint32_t SAIL_BI_BITFIELDS = 3; #if 0 static const uint32_t SAIL_BI_JPEG = 4; static const uint32_t SAIL_BI_PNG = 5; static const uint32_t SAIL_BI_ALPHABITFIELDS = 6; static const uint32_t SAIL_BI_CMYK = 11; static const uint32_t SAIL_BI_CMYKRLE8 = 12; static const uint32_t SAIL_BI_CMYKRLE4 = 13; #endif /* BMP identifiers. */ static const uint16_t SAIL_DDB_IDENTIFIER = 0x02; static const uint16_t SAIL_DIB_IDENTIFIER = 0x4D42; /* ICC profile types. */ #if 0 static const char SAIL_PROFILE_LINKED[4] = { 'L', 'I', 'N', 'K' }; #endif static const char SAIL_PROFILE_EMBEDDED[4] = { 'M', 'B', 'E', 'D' }; /* Sizes of DIB header structs. */ #define SAIL_BITMAP_DIB_HEADER_V2_SIZE 12 #define SAIL_BITMAP_DIB_HEADER_V3_SIZE 40 #define SAIL_BITMAP_DIB_HEADER_V4_SIZE 108 #define SAIL_BITMAP_DIB_HEADER_V5_SIZE 124 /* * Codec-specific state. */ struct bmp_state { /* These two are external. */ const struct sail_load_options *load_options; const struct sail_save_options *save_options; int bmp_load_options; enum SailPixelFormat source_pixel_format; enum SailBmpVersion version; struct SailBmpDdbFileHeader ddb_file_header; struct SailBmpDdbBitmap v1; struct SailBmpDibFileHeader dib_file_header; struct SailBmpDibHeaderV2 v2; struct SailBmpDibHeaderV3 v3; struct SailBmpDibHeaderV4 v4; struct SailBmpDibHeaderV5 v5; struct sail_iccp *iccp; sail_rgb24_t *palette; unsigned palette_count; unsigned bytes_in_row; /* Number of bytes to pad scan lines to 4-byte boundary. */ unsigned pad_bytes; bool flipped; }; static sail_status_t alloc_bmp_state(struct bmp_state **bmp_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct bmp_state), &ptr)); *bmp_state = ptr; if (*bmp_state == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_MEMORY_ALLOCATION); } (*bmp_state)->load_options = NULL; (*bmp_state)->save_options = NULL; (*bmp_state)->bmp_load_options = 0; (*bmp_state)->iccp = NULL; (*bmp_state)->palette = NULL; (*bmp_state)->palette_count = 0; (*bmp_state)->bytes_in_row = 0; (*bmp_state)->pad_bytes = 0; (*bmp_state)->flipped = false; return SAIL_OK; } static void destroy_bmp_state(struct bmp_state *bmp_state) { if (bmp_state == NULL) { return; } sail_destroy_iccp(bmp_state->iccp); sail_free(bmp_state->palette); sail_free(bmp_state); } static sail_status_t read_bmp_headers(struct sail_io *io, struct bmp_state *bmp_state) { size_t offset_of_bitmap_header; SAIL_TRY(io->tell(io->stream, &offset_of_bitmap_header)); SAIL_TRY(bmp_private_read_v2(io, &bmp_state->v2)); /* If the height is negative, the bitmap is top-to-bottom. */ if (bmp_state->v2.height < 0) { bmp_state->v2.height = -bmp_state->v2.height; bmp_state->flipped = false; } else { bmp_state->flipped = true; } switch (bmp_state->v2.size) { case SAIL_BITMAP_DIB_HEADER_V2_SIZE: { bmp_state->version = SAIL_BMP_V2; break; } case SAIL_BITMAP_DIB_HEADER_V3_SIZE: { bmp_state->version = SAIL_BMP_V3; SAIL_TRY(bmp_private_read_v3(io, &bmp_state->v3)); break; } case SAIL_BITMAP_DIB_HEADER_V4_SIZE: { bmp_state->version = SAIL_BMP_V4; SAIL_TRY(bmp_private_read_v3(io, &bmp_state->v3)); SAIL_TRY(bmp_private_read_v4(io, &bmp_state->v4)); break; } case SAIL_BITMAP_DIB_HEADER_V5_SIZE: { bmp_state->version = SAIL_BMP_V5; SAIL_TRY(bmp_private_read_v3(io, &bmp_state->v3)); SAIL_TRY(bmp_private_read_v4(io, &bmp_state->v4)); SAIL_TRY(bmp_private_read_v5(io, &bmp_state->v5)); if (memcmp(&bmp_state->v4.color_space_type, SAIL_PROFILE_EMBEDDED, sizeof(SAIL_PROFILE_EMBEDDED)) == 0) { SAIL_TRY(bmp_private_fetch_iccp(io, (long)(offset_of_bitmap_header + bmp_state->v5.profile_data), bmp_state->v5.profile_size, &bmp_state->iccp)); } break; } default: { SAIL_LOG_ERROR("BMP: Unsupported file header size %u", bmp_state->v2.size); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_FORMAT); } } return SAIL_OK; } /* * Decoding functions. */ sail_status_t bmp_private_read_init(struct sail_io *io, const struct sail_load_options *load_options, void **state, int bmp_load_options) { /* Allocate a new state. */ struct bmp_state *bmp_state; SAIL_TRY(alloc_bmp_state(&bmp_state)); *state = bmp_state; /* Shallow copy load options. */ bmp_state->load_options = load_options; bmp_state->bmp_load_options = bmp_load_options; if (bmp_load_options & SAIL_READ_BMP_FILE_HEADER) { /* "BM" or 0x02. */ uint16_t magic; SAIL_TRY(io->strict_read(io->stream, &magic, sizeof(magic))); SAIL_TRY(io->seek(io->stream, 0, SEEK_SET)); if (magic == SAIL_DDB_IDENTIFIER) { bmp_state->version = SAIL_BMP_V1; SAIL_TRY(bmp_private_read_ddb_file_header(io, &bmp_state->ddb_file_header)); SAIL_TRY(bmp_private_read_v1(io, &bmp_state->v1)); } else if (magic == SAIL_DIB_IDENTIFIER) { SAIL_TRY(bmp_private_read_dib_file_header(io, &bmp_state->dib_file_header)); SAIL_TRY(read_bmp_headers(io, bmp_state)); } else { SAIL_LOG_ERROR("BMP: 0x%x is not a valid magic number", magic); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_FORMAT); } } else { SAIL_TRY(read_bmp_headers(io, bmp_state)); } /* Check BMP restrictions. */ if (bmp_state->version == SAIL_BMP_V1) { if (bmp_state->v1.type != 0) { SAIL_LOG_ERROR("BMP: DDB type must always be 0"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (bmp_state->v1.planes != 1) { SAIL_LOG_ERROR("BMP: DDB planes must always be 1"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (bmp_state->v1.pixels != 0) { SAIL_LOG_ERROR("BMP: DDB pixels must always be 0"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (bmp_state->v1.bit_count != 1 && bmp_state->v1.bit_count != 4 && bmp_state->v1.bit_count != 8) { SAIL_LOG_ERROR("BMP: DDB bpp must be 1, 4, or 8"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } } else if (bmp_state->version >= SAIL_BMP_V3) { if (bmp_state->v3.compression == SAIL_BI_BITFIELDS && bmp_state->v2.bit_count != 16 && bmp_state->v2.bit_count != 32) { SAIL_LOG_ERROR("BMP: BitFields compression is allowed only for 16 or 32 bpp"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (bmp_state->v3.compression != SAIL_BI_RGB && bmp_state->v3.compression != SAIL_BI_RLE4 && bmp_state->v3.compression != SAIL_BI_RLE8) { SAIL_LOG_ERROR("BMP: Only RGB, RLE4, and RLE8 compressions are supported"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_COMPRESSION); } if (bmp_state->v3.compression == SAIL_BI_RLE4 && bmp_state->v2.bit_count != 4) { SAIL_LOG_ERROR("BMP: RLE4 compression must only be used with 4 bpp"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (bmp_state->v3.compression == SAIL_BI_RLE8 && bmp_state->v2.bit_count != 8) { SAIL_LOG_ERROR("BMP: RLE8 compression must only be used with 8 bpp"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } } SAIL_TRY(bmp_private_bit_count_to_pixel_format(bmp_state->version == SAIL_BMP_V1 ? bmp_state->v1.bit_count : bmp_state->v2.bit_count, &bmp_state->source_pixel_format)); if (bmp_state->version < SAIL_BMP_V3) { SAIL_LOG_TRACE("BMP: Version(%d)", bmp_state->version); } else { SAIL_LOG_TRACE("BMP: Version(%d), compression(%u)", bmp_state->version, bmp_state->v3.compression); } /* Read palette. */ if (bmp_state->version == SAIL_BMP_V1) { SAIL_TRY(bmp_private_fill_system_palette(bmp_state->v1.bit_count, &bmp_state->palette, &bmp_state->palette_count)); } else if (bmp_state->v2.bit_count < 16) { if (bmp_state->version == SAIL_BMP_V2) { bmp_state->palette_count = 1 << bmp_state->v2.bit_count; } else { bmp_state->palette_count = (bmp_state->v3.colors_used == 0) ? (1U << bmp_state->v2.bit_count) : bmp_state->v3.colors_used; } if (bmp_state->palette_count == 0) { SAIL_LOG_ERROR("BMP: Indexed image has no palette"); SAIL_LOG_AND_RETURN(SAIL_ERROR_MISSING_PALETTE); } void *ptr; SAIL_TRY(sail_malloc(sizeof(sail_rgba32_t) * bmp_state->palette_count, &ptr)); bmp_state->palette = ptr; if (bmp_state->version == SAIL_BMP_V2) { sail_rgb24_t rgb; for (unsigned i = 0; i < bmp_state->palette_count; i++) { SAIL_TRY(sail_read_pixel3_uint8(io, &rgb)); bmp_state->palette[i].component1 = rgb.component1; bmp_state->palette[i].component2 = rgb.component2; bmp_state->palette[i].component3 = rgb.component3; } } else { sail_rgba32_t rgba; for (unsigned i = 0; i < bmp_state->palette_count; i++) { SAIL_TRY(sail_read_pixel4_uint8(io, &rgba)); bmp_state->palette[i].component1 = rgba.component1; bmp_state->palette[i].component2 = rgba.component2; bmp_state->palette[i].component3 = rgba.component3; } } } /* Calculate the number of pad bytes to align scan lines to 4-byte boundary. */ if (bmp_state->version == SAIL_BMP_V1) { SAIL_TRY(bmp_private_bytes_in_row(bmp_state->v1.width, bmp_state->v1.bit_count, &bmp_state->bytes_in_row)); bmp_state->pad_bytes = bmp_state->v1.byte_width - bmp_state->bytes_in_row; } else { SAIL_TRY(bmp_private_bytes_in_row(bmp_state->v2.width, bmp_state->v2.bit_count, &bmp_state->bytes_in_row)); bmp_state->pad_bytes = bmp_private_pad_bytes(bmp_state->bytes_in_row); } return SAIL_OK; } sail_status_t bmp_private_read_seek_next_frame(void *state, struct sail_io *io, struct sail_image **image) { struct bmp_state *bmp_state = state; struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (bmp_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = bmp_state->source_pixel_format; image_local->source_image->orientation = bmp_state->flipped ? SAIL_ORIENTATION_MIRRORED_VERTICALLY : SAIL_ORIENTATION_NORMAL; image_local->source_image->compression = (bmp_state->v3.compression == SAIL_BI_RLE4 || bmp_state->v3.compression == SAIL_BI_RLE8) ? SAIL_COMPRESSION_RLE : SAIL_COMPRESSION_NONE; } image_local->width = (bmp_state->version == SAIL_BMP_V1) ? bmp_state->v1.width : bmp_state->v2.width; image_local->height = (bmp_state->version == SAIL_BMP_V1) ? bmp_state->v1.height : bmp_state->v2.height; if (bmp_state->version >= SAIL_BMP_V3 && bmp_state->v3.compression == SAIL_BI_RLE4) { /* We expand RLE-encoded 4-bit pixels to 8-bit. TODO: Unpack into 4-bit indexed image. */ image_local->pixel_format = SAIL_PIXEL_FORMAT_BPP8_INDEXED; image_local->bytes_per_line = bmp_state->bytes_in_row * 2; } else { image_local->pixel_format = bmp_state->source_pixel_format; image_local->bytes_per_line = bmp_state->bytes_in_row; } if (bmp_state->palette != NULL) { SAIL_TRY_OR_CLEANUP(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, bmp_state->palette_count, &image_local->palette), /* cleanup */ sail_destroy_image(image_local)); unsigned char *palette_ptr = image_local->palette->data; for (unsigned i = 0; i < bmp_state->palette_count; i++) { *palette_ptr++ = bmp_state->palette[i].component3; *palette_ptr++ = bmp_state->palette[i].component2; *palette_ptr++ = bmp_state->palette[i].component1; } } /* Resolution. */ if (bmp_state->version >= SAIL_BMP_V3) { SAIL_TRY_OR_CLEANUP( sail_alloc_resolution_from_data(SAIL_RESOLUTION_UNIT_METER, bmp_state->v3.x_pixels_per_meter, bmp_state->v3.y_pixels_per_meter, &image_local->resolution), /* cleanup */ sail_destroy_image(image_local)); } /* Seek to the bitmap data if we have the file header. */ if (bmp_state->bmp_load_options & SAIL_READ_BMP_FILE_HEADER) { if (bmp_state->version > SAIL_BMP_V1) { SAIL_TRY_OR_CLEANUP(io->seek(io->stream, bmp_state->dib_file_header.offset, SEEK_SET), /* cleanup */ sail_destroy_image(image_local)); } } *image = image_local; return SAIL_OK; } sail_status_t bmp_private_read_frame(void *state, struct sail_io *io, struct sail_image *image) { struct bmp_state *bmp_state = state; /* RLE-encoded images don't need to skip pad bytes. */ bool skip_pad_bytes = true; for (unsigned i = image->height; i > 0; i--) { unsigned char *scan = sail_scan_line(image, bmp_state->flipped ? (i - 1) : (image->height - i)); for (unsigned pixel_index = 0; pixel_index < image->width;) { if (bmp_state->version >= SAIL_BMP_V3 && bmp_state->v3.compression == SAIL_BI_RLE4) { skip_pad_bytes = false; uint8_t marker; SAIL_TRY(io->strict_read(io->stream, &marker, sizeof(marker))); if (marker == SAIL_BMP_UNENCODED_RUN_MARKER) { uint8_t count_or_marker; SAIL_TRY(io->strict_read(io->stream, &count_or_marker, sizeof(count_or_marker))); if (count_or_marker == SAIL_BMP_END_OF_SCAN_LINE_MARKER) { /* Jump to the end of scan line. +1 to avoid reading end-of-scan-line marker twice below. */ pixel_index = image->width + 1; } else if (count_or_marker == SAIL_BMP_END_OF_RLE_DATA_MARKER) { SAIL_LOG_ERROR("BMP: Unexpected end-of-rle-data marker"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } else if (count_or_marker == SAIL_BMP_DELTA_MARKER) { SAIL_LOG_ERROR("BMP: Delta marker is not supported"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_FORMAT); } else { bool read_byte = true; uint8_t byte = 0; uint8_t index; for (uint8_t k = 0; k < count_or_marker; k++) { if (read_byte) { SAIL_TRY(io->strict_read(io->stream, &byte, sizeof(byte))); index = (byte >> 4) & 0xf; read_byte = false; } else { index = byte & 0xf; read_byte = true; } *scan++ = index; } /* Odd number of bytes is accompanied with an additional byte. */ uint8_t number_of_unencoded_bytes = (count_or_marker + 1) / 2; if ((number_of_unencoded_bytes % 2) != 0) { SAIL_TRY(io->seek(io->stream, 1, SEEK_CUR)); } pixel_index += count_or_marker; } } else { /* Normal RLE: count + value. */ bool high_4_bits = true; uint8_t index; uint8_t byte; SAIL_TRY(io->strict_read(io->stream, &byte, sizeof(byte))); for (uint8_t k = 0; k < marker; k++) { if (high_4_bits) { index = (byte >> 4) & 0xf; high_4_bits = false; } else { index = byte & 0xf; high_4_bits = true; } *scan++ = index; } pixel_index += marker; } /* Read a possible end-of-scan-line marker at the end of line. */ if (pixel_index == image->width) { SAIL_TRY(bmp_private_skip_end_of_scan_line(io)); } } else if (bmp_state->version >= SAIL_BMP_V3 && bmp_state->v3.compression == SAIL_BI_RLE8) { skip_pad_bytes = false; uint8_t marker; SAIL_TRY(io->strict_read(io->stream, &marker, sizeof(marker))); if (marker == SAIL_BMP_UNENCODED_RUN_MARKER) { uint8_t count_or_marker; SAIL_TRY(io->strict_read(io->stream, &count_or_marker, sizeof(count_or_marker))); if (count_or_marker == SAIL_BMP_END_OF_SCAN_LINE_MARKER) { /* Jump to the end of scan line. +1 to avoid reading end-of-scan-line marker twice below. */ pixel_index = image->width + 1; } else if (count_or_marker == SAIL_BMP_END_OF_RLE_DATA_MARKER) { SAIL_LOG_ERROR("BMP: Unexpected end-of-rle-data marker"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } else if (count_or_marker == SAIL_BMP_DELTA_MARKER) { SAIL_LOG_ERROR("BMP: Delta marker is not supported"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_FORMAT); } else { for (uint8_t k = 0; k < count_or_marker; k++) { uint8_t index; SAIL_TRY(io->strict_read(io->stream, &index, sizeof(index))); *scan++ = index; } /* Odd number of pixels is accompanied with an additional byte. */ if ((count_or_marker % 2) != 0) { SAIL_TRY(io->seek(io->stream, 1, SEEK_CUR)); } pixel_index += count_or_marker; } } else { /* Normal RLE: count + value. */ uint8_t index; SAIL_TRY(io->strict_read(io->stream, &index, sizeof(index))); for (uint8_t k = 0; k < marker; k++) { *scan++ = index; } pixel_index += marker; } /* Read a possible end-of-scan-line marker at the end of line. */ if (pixel_index == image->width) { SAIL_TRY(bmp_private_skip_end_of_scan_line(io)); } } else { /* Read a whole scan line. */ SAIL_TRY(io->strict_read(io->stream, scan, bmp_state->bytes_in_row)); pixel_index += image->width; } } /* Skip pad bytes. */ if (skip_pad_bytes) { SAIL_TRY(io->seek(io->stream, bmp_state->pad_bytes, SEEK_CUR)); } } return SAIL_OK; } sail_status_t bmp_private_read_finish(void **state, struct sail_io *io) { (void)io; struct bmp_state *bmp_state = *state; *state = NULL; destroy_bmp_state(bmp_state); return SAIL_OK; } sail-0.9.8/src/sail-codecs/common/bmp/bmp.h000066400000000000000000000042131475535176100204500ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_BMP_COMMON_H #define SAIL_BMP_COMMON_H #include #include struct sail_image; struct sail_io; struct sail_load_options; enum SailBmpReadOptions { /* * No specific BMP flags. This will: * 1. Skip the BMP file header */ SAIL_NO_BMP_FLAGS = 0, /* * Read BMP file header. BMP files have file headers, while * ICO files have no BMP file headers. */ SAIL_READ_BMP_FILE_HEADER = 1 << 0, }; SAIL_HIDDEN sail_status_t bmp_private_read_init(struct sail_io *io, const struct sail_load_options *load_options, void **state, int bmp_load_options); SAIL_HIDDEN sail_status_t bmp_private_read_seek_next_frame(void *state, struct sail_io *io, struct sail_image **image); SAIL_HIDDEN sail_status_t bmp_private_read_frame(void *state, struct sail_io *io, struct sail_image *image); SAIL_HIDDEN sail_status_t bmp_private_read_finish(void **state, struct sail_io *io); #endif sail-0.9.8/src/sail-codecs/common/bmp/helpers.c000066400000000000000000000241331475535176100213320ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "helpers.h" sail_status_t bmp_private_read_ddb_file_header(struct sail_io *io, struct SailBmpDdbFileHeader *ddb_file_header) { SAIL_TRY(io->strict_read(io->stream, &ddb_file_header->type, sizeof(ddb_file_header->type))); return SAIL_OK; } sail_status_t bmp_private_read_v1(struct sail_io *io, struct SailBmpDdbBitmap *v1) { SAIL_TRY(io->strict_read(io->stream, &v1->type, sizeof(v1->type))); SAIL_TRY(io->strict_read(io->stream, &v1->width, sizeof(v1->width))); SAIL_TRY(io->strict_read(io->stream, &v1->height, sizeof(v1->height))); SAIL_TRY(io->strict_read(io->stream, &v1->byte_width, sizeof(v1->byte_width))); SAIL_TRY(io->strict_read(io->stream, &v1->planes, sizeof(v1->planes))); SAIL_TRY(io->strict_read(io->stream, &v1->bit_count, sizeof(v1->bit_count))); SAIL_TRY(io->strict_read(io->stream, &v1->pixels, sizeof(v1->pixels))); return SAIL_OK; } sail_status_t bmp_private_read_dib_file_header(struct sail_io *io, struct SailBmpDibFileHeader *fh) { SAIL_TRY(io->strict_read(io->stream, &fh->type, sizeof(fh->type))); SAIL_TRY(io->strict_read(io->stream, &fh->size, sizeof(fh->size))); SAIL_TRY(io->strict_read(io->stream, &fh->reserved1, sizeof(fh->reserved1))); SAIL_TRY(io->strict_read(io->stream, &fh->reserved2, sizeof(fh->reserved2))); SAIL_TRY(io->strict_read(io->stream, &fh->offset, sizeof(fh->offset))); return SAIL_OK; } sail_status_t bmp_private_read_v2(struct sail_io *io, struct SailBmpDibHeaderV2 *v2) { SAIL_TRY(io->strict_read(io->stream, &v2->size, sizeof(v2->size))); SAIL_TRY(io->strict_read(io->stream, &v2->width, sizeof(v2->width))); SAIL_TRY(io->strict_read(io->stream, &v2->height, sizeof(v2->height))); SAIL_TRY(io->strict_read(io->stream, &v2->planes, sizeof(v2->planes))); SAIL_TRY(io->strict_read(io->stream, &v2->bit_count, sizeof(v2->bit_count))); return SAIL_OK; } sail_status_t bmp_private_read_v3(struct sail_io *io, struct SailBmpDibHeaderV3 *v3) { SAIL_TRY(io->strict_read(io->stream, &v3->compression, sizeof(v3->compression))); SAIL_TRY(io->strict_read(io->stream, &v3->bitmap_size, sizeof(v3->bitmap_size))); SAIL_TRY(io->strict_read(io->stream, &v3->x_pixels_per_meter, sizeof(v3->x_pixels_per_meter))); SAIL_TRY(io->strict_read(io->stream, &v3->y_pixels_per_meter, sizeof(v3->y_pixels_per_meter))); SAIL_TRY(io->strict_read(io->stream, &v3->colors_used, sizeof(v3->colors_used))); SAIL_TRY(io->strict_read(io->stream, &v3->colors_important, sizeof(v3->colors_important))); return SAIL_OK; } sail_status_t bmp_private_read_v4(struct sail_io *io, struct SailBmpDibHeaderV4 *v4) { SAIL_TRY(io->strict_read(io->stream, &v4->red_mask, sizeof(v4->red_mask))); SAIL_TRY(io->strict_read(io->stream, &v4->green_mask, sizeof(v4->green_mask))); SAIL_TRY(io->strict_read(io->stream, &v4->blue_mask, sizeof(v4->blue_mask))); SAIL_TRY(io->strict_read(io->stream, &v4->alpha_mask, sizeof(v4->alpha_mask))); SAIL_TRY(io->strict_read(io->stream, &v4->color_space_type, sizeof(v4->color_space_type))); SAIL_TRY(io->strict_read(io->stream, &v4->red_x, sizeof(v4->red_x))); SAIL_TRY(io->strict_read(io->stream, &v4->red_y, sizeof(v4->red_y))); SAIL_TRY(io->strict_read(io->stream, &v4->red_z, sizeof(v4->red_z))); SAIL_TRY(io->strict_read(io->stream, &v4->green_x, sizeof(v4->green_x))); SAIL_TRY(io->strict_read(io->stream, &v4->green_y, sizeof(v4->green_y))); SAIL_TRY(io->strict_read(io->stream, &v4->green_z, sizeof(v4->green_z))); SAIL_TRY(io->strict_read(io->stream, &v4->blue_x, sizeof(v4->blue_x))); SAIL_TRY(io->strict_read(io->stream, &v4->blue_y, sizeof(v4->blue_y))); SAIL_TRY(io->strict_read(io->stream, &v4->blue_z, sizeof(v4->blue_z))); SAIL_TRY(io->strict_read(io->stream, &v4->gamma_red, sizeof(v4->gamma_red))); SAIL_TRY(io->strict_read(io->stream, &v4->gamma_green, sizeof(v4->gamma_green))); SAIL_TRY(io->strict_read(io->stream, &v4->gamma_blue, sizeof(v4->gamma_blue))); return SAIL_OK; } sail_status_t bmp_private_read_v5(struct sail_io *io, struct SailBmpDibHeaderV5 *v5) { SAIL_TRY(io->strict_read(io->stream, &v5->intent, sizeof(v5->intent))); SAIL_TRY(io->strict_read(io->stream, &v5->profile_data, sizeof(v5->profile_data))); SAIL_TRY(io->strict_read(io->stream, &v5->profile_size, sizeof(v5->profile_size))); SAIL_TRY(io->strict_read(io->stream, &v5->reserved, sizeof(v5->reserved))); return SAIL_OK; } sail_status_t bmp_private_bit_count_to_pixel_format(uint16_t bit_count, enum SailPixelFormat *pixel_format) { switch (bit_count) { case 1: *pixel_format = SAIL_PIXEL_FORMAT_BPP1_INDEXED; return SAIL_OK; case 4: *pixel_format = SAIL_PIXEL_FORMAT_BPP4_INDEXED; return SAIL_OK; case 8: *pixel_format = SAIL_PIXEL_FORMAT_BPP8_INDEXED; return SAIL_OK; case 16: *pixel_format = SAIL_PIXEL_FORMAT_BPP16_BGR555; return SAIL_OK; case 24: *pixel_format = SAIL_PIXEL_FORMAT_BPP24_BGR; return SAIL_OK; case 32: *pixel_format = SAIL_PIXEL_FORMAT_BPP32_BGRA; return SAIL_OK; } SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_BIT_DEPTH); } sail_status_t bmp_private_fetch_iccp(struct sail_io *io, long offset_of_data, uint32_t profile_size, struct sail_iccp **iccp) { SAIL_TRY(io->seek(io->stream, offset_of_data, SEEK_SET)); void *profile_data; SAIL_TRY(sail_malloc(profile_size, &profile_data)); SAIL_TRY_OR_CLEANUP(io->strict_read(io->stream, profile_data, profile_size), /* cleanup */ sail_free(profile_data)); SAIL_TRY_OR_CLEANUP(sail_alloc_iccp_from_shallow_data(profile_data, profile_size, iccp), /* cleanup */ sail_free(profile_data)); return SAIL_OK; } sail_status_t bmp_private_skip_end_of_scan_line(struct sail_io *io) { uint8_t marker; SAIL_TRY(io->strict_read(io->stream, &marker, sizeof(marker))); if (marker == SAIL_BMP_UNENCODED_RUN_MARKER) { SAIL_TRY(io->strict_read(io->stream, &marker, sizeof(marker))); if (marker != SAIL_BMP_END_OF_SCAN_LINE_MARKER) { SAIL_TRY(io->seek(io->stream, -2, SEEK_CUR)); } } else { SAIL_TRY(io->seek(io->stream, -1, SEEK_CUR)); } return SAIL_OK; } sail_status_t bmp_private_bytes_in_row(unsigned width, unsigned bit_count, unsigned *bytes_in_row) { switch (bit_count) { case 1: *bytes_in_row = (width + 7) / 8; return SAIL_OK; case 4: *bytes_in_row = (width + 1) / 2; return SAIL_OK; case 8: *bytes_in_row = width; return SAIL_OK; case 16: *bytes_in_row = width * 2; return SAIL_OK; case 24: *bytes_in_row = width * 3; return SAIL_OK; case 32: *bytes_in_row = width * 4; return SAIL_OK; } SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_FORMAT); } unsigned bmp_private_pad_bytes(unsigned bytes_in_row) { const unsigned remainder = bytes_in_row % 4; return (remainder == 0) ? 0 : (4 - remainder); } sail_status_t bmp_private_fill_system_palette(unsigned bit_count, sail_rgb24_t **palette, unsigned *palette_count) { switch (bit_count) { case 1: { *palette_count = 2; void *ptr; SAIL_TRY(sail_malloc(sizeof(sail_rgb24_t) * (*palette_count), &ptr)); *palette = ptr; (*palette)[0] = (sail_rgb24_t) { 0, 0, 0 }; (*palette)[1] = (sail_rgb24_t) { 255, 255, 255 }; return SAIL_OK; } case 4: { *palette_count = 16; void *ptr; SAIL_TRY(sail_malloc(sizeof(sail_rgb24_t) * (*palette_count), &ptr)); *palette = ptr; (*palette)[0] = (sail_rgb24_t) { 0, 0, 0 }; (*palette)[1] = (sail_rgb24_t) { 128, 0, 0 }; (*palette)[2] = (sail_rgb24_t) { 0, 128, 0 }; (*palette)[3] = (sail_rgb24_t) { 128, 128, 0 }; (*palette)[4] = (sail_rgb24_t) { 0, 0, 128 }; (*palette)[5] = (sail_rgb24_t) { 128, 0, 128 }; (*palette)[6] = (sail_rgb24_t) { 0, 128, 128 }; (*palette)[7] = (sail_rgb24_t) { 192, 192, 192 }; (*palette)[8] = (sail_rgb24_t) { 128, 128, 128 }; (*palette)[9] = (sail_rgb24_t) { 255, 0, 0 }; (*palette)[10] = (sail_rgb24_t) { 0, 255, 0 }; (*palette)[11] = (sail_rgb24_t) { 255, 255, 0 }; (*palette)[12] = (sail_rgb24_t) { 0, 0, 255 }; (*palette)[13] = (sail_rgb24_t) { 255, 0, 255 }; (*palette)[14] = (sail_rgb24_t) { 0, 255, 255 }; (*palette)[15] = (sail_rgb24_t) { 255, 255, 255 }; return SAIL_OK; } } SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_BIT_DEPTH); } sail-0.9.8/src/sail-codecs/common/bmp/helpers.h000066400000000000000000000111561475535176100213400ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_BMP_HELPERS_H #define SAIL_BMP_HELPERS_H #include #include #include #include #include struct sail_iccp; struct sail_io; /* RLE markers. */ enum { SAIL_BMP_UNENCODED_RUN_MARKER = 0, SAIL_BMP_END_OF_SCAN_LINE_MARKER = 0, SAIL_BMP_END_OF_RLE_DATA_MARKER = 1, SAIL_BMP_DELTA_MARKER = 2, }; /* * V1: Device-Dependent Bitmap (DDB). */ /* File header. */ struct SailBmpDdbFileHeader { uint16_t type; /* Always 2. Top bit set if discardable. */ }; /* Bitmap16. */ struct SailBmpDdbBitmap { uint16_t type; /* Always 0. */ uint16_t width; uint16_t height; uint16_t byte_width; uint8_t planes; /* Always 1. */ uint8_t bit_count; uint32_t pixels; /* Always 0. */ }; /* * V2+: File header + DIB headers. */ /* File header. */ struct SailBmpDibFileHeader { uint16_t type; /* "BM" */ uint32_t size; uint16_t reserved1; uint16_t reserved2; uint32_t offset; }; /* DIB headers. */ struct SailBmpDibHeaderV2 { uint32_t size; int32_t width; int32_t height; uint16_t planes; /* Always 1. */ uint16_t bit_count; }; struct SailBmpDibHeaderV3 { uint32_t compression; uint32_t bitmap_size; int32_t x_pixels_per_meter; int32_t y_pixels_per_meter; uint32_t colors_used; uint32_t colors_important; }; struct SailBmpDibHeaderV4 { uint32_t red_mask; uint32_t green_mask; uint32_t blue_mask; uint32_t alpha_mask; uint32_t color_space_type; int32_t red_x; int32_t red_y; int32_t red_z; int32_t green_x; int32_t green_y; int32_t green_z; int32_t blue_x; int32_t blue_y; int32_t blue_z; uint32_t gamma_red; uint32_t gamma_green; uint32_t gamma_blue; }; struct SailBmpDibHeaderV5 { uint32_t intent; uint32_t profile_data; uint32_t profile_size; uint32_t reserved; }; enum SailBmpVersion { SAIL_BMP_V1 = 1, SAIL_BMP_V2, SAIL_BMP_V3, SAIL_BMP_V4, SAIL_BMP_V5, }; SAIL_HIDDEN sail_status_t bmp_private_read_ddb_file_header(struct sail_io *io, struct SailBmpDdbFileHeader *ddb_file_header); SAIL_HIDDEN sail_status_t bmp_private_read_v1(struct sail_io *io, struct SailBmpDdbBitmap *v1); SAIL_HIDDEN sail_status_t bmp_private_read_dib_file_header(struct sail_io *io, struct SailBmpDibFileHeader *fh); SAIL_HIDDEN sail_status_t bmp_private_read_v2(struct sail_io *io, struct SailBmpDibHeaderV2 *v2); SAIL_HIDDEN sail_status_t bmp_private_read_v3(struct sail_io *io, struct SailBmpDibHeaderV3 *v3); SAIL_HIDDEN sail_status_t bmp_private_read_v4(struct sail_io *io, struct SailBmpDibHeaderV4 *v4); SAIL_HIDDEN sail_status_t bmp_private_read_v5(struct sail_io *io, struct SailBmpDibHeaderV5 *v5); SAIL_HIDDEN sail_status_t bmp_private_bit_count_to_pixel_format(uint16_t bit_count, enum SailPixelFormat *pixel_format); SAIL_HIDDEN sail_status_t bmp_private_fetch_iccp(struct sail_io *io, long offset_of_data, uint32_t profile_size, struct sail_iccp **iccp); SAIL_HIDDEN sail_status_t bmp_private_skip_end_of_scan_line(struct sail_io *io); SAIL_HIDDEN sail_status_t bmp_private_bytes_in_row(unsigned width, unsigned bit_count, unsigned *bytes_in_row); SAIL_HIDDEN unsigned bmp_private_pad_bytes(unsigned bytes_in_row); SAIL_HIDDEN sail_status_t bmp_private_fill_system_palette(unsigned bit_count, sail_rgb24_t **palette, unsigned *palette_count); #endif sail-0.9.8/src/sail-codecs/gif/000077500000000000000000000000001475535176100162205ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/gif/CMakeLists.txt000066400000000000000000000013131475535176100207560ustar00rootroot00000000000000find_package(GIF ${SAIL_CODEC_GIF_REQUIRED_OPTION}) if (NOT GIF_FOUND) return() endif() # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_dependency(GIF REQUIRED) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES GIF::GIF) # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_dependency,GIF,GIF::GIF" PARENT_SCOPE) # Common codec configuration # sail_codec(NAME gif SOURCES helpers.h helpers.c io.h io.c gif.c ICON gif.png DEPENDENCY_INCLUDE_DIRS ${GIF_INCLUDE_DIRS} DEPENDENCY_LIBS ${GIF_LIBRARIES}) sail-0.9.8/src/sail-codecs/gif/gif.c000066400000000000000000000410571475535176100171400ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include "helpers.h" #include "io.h" static const int InterlacedOffset[] = { 0, 4, 2, 1 }; static const int InterlacedJumps[] = { 8, 8, 4, 2 }; /* * Codec-specific state. */ struct gif_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; GifFileType *gif; const ColorMapObject *map; unsigned char *buf; int transparency_index; int first_frame_height; int disposal; int prev_disposal; int current_image; unsigned row; unsigned column; unsigned width; unsigned height; unsigned prev_row; unsigned prev_column; unsigned prev_width; unsigned prev_height; unsigned char **first_frame; unsigned char background[4]; /* RGBA */ }; static sail_status_t alloc_gif_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct gif_state **gif_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct gif_state), &ptr)); *gif_state = ptr; **gif_state = (struct gif_state) { .io = io, .load_options = load_options, .save_options = save_options, .gif = NULL, .map = NULL, .buf = NULL, .transparency_index = -1, .disposal = DISPOSAL_UNSPECIFIED, .prev_disposal = DISPOSAL_UNSPECIFIED, .current_image = -1, .row = 0, .column = 0, .width = 0, .height = 0, .prev_row = 0, .prev_column = 0, .prev_width = 0, .prev_height = 0, .first_frame = NULL, }; return SAIL_OK; } static void destroy_gif_state(struct gif_state *gif_state) { if (gif_state == NULL) { return; } sail_free(gif_state->buf); if (gif_state->first_frame != NULL) { for(int i = 0; i < gif_state->first_frame_height; i++) { sail_free(gif_state->first_frame[i]); } sail_free(gif_state->first_frame); } sail_free(gif_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_gif(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct gif_state *gif_state; SAIL_TRY(alloc_gif_state(io, load_options, NULL, &gif_state)); *state = gif_state; /* Initialize GIF. */ int error_code; gif_state->gif = DGifOpen(gif_state->io, my_read_proc, &error_code); if (gif_state->gif == NULL) { SAIL_LOG_ERROR("GIF: Failed to initialize. GIFLIB error code: %d", error_code); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Initialize internal structs. */ if (gif_state->gif->SColorMap != NULL) { gif_state->background[0] = gif_state->gif->SColorMap->Colors[gif_state->gif->SBackGroundColor].Red; gif_state->background[1] = gif_state->gif->SColorMap->Colors[gif_state->gif->SBackGroundColor].Green; gif_state->background[2] = gif_state->gif->SColorMap->Colors[gif_state->gif->SBackGroundColor].Blue; gif_state->background[3] = 255; } else { memset(&gif_state->background, 0, sizeof(gif_state->background)); } void *ptr; SAIL_TRY(sail_malloc(gif_state->gif->SWidth * sizeof(GifPixelType), &ptr)); gif_state->buf = ptr; gif_state->first_frame_height = gif_state->gif->SHeight; SAIL_TRY(sail_malloc(gif_state->first_frame_height * sizeof(unsigned char *), &ptr)); gif_state->first_frame = ptr; for (int i = 0; i < gif_state->first_frame_height; i++) { SAIL_TRY(sail_calloc(gif_state->gif->SWidth, 4, &ptr)); /* 4 = RGBA */ gif_state->first_frame[i] = ptr; } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_gif(void *state, struct sail_image **image) { struct gif_state *gif_state = state; struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (gif_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = SAIL_PIXEL_FORMAT_BPP8_INDEXED; image_local->source_image->compression = SAIL_COMPRESSION_LZW; } gif_state->current_image++; gif_state->prev_disposal = gif_state->disposal; gif_state->disposal = DISPOSAL_UNSPECIFIED; gif_state->transparency_index = -1; gif_state->prev_row = gif_state->row; gif_state->prev_column = gif_state->column; gif_state->prev_width = gif_state->width; gif_state->prev_height = gif_state->height; struct sail_meta_data_node **last_meta_data_node = &image_local->meta_data_node; /* Loop through records. */ while (true) { GifRecordType record; if (DGifGetRecordType(gif_state->gif, &record) == GIF_ERROR) { SAIL_LOG_ERROR("GIF: %s", GifErrorString(gif_state->gif->Error)); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } switch (record) { case IMAGE_DESC_RECORD_TYPE: { if (DGifGetImageDesc(gif_state->gif) == GIF_ERROR) { SAIL_LOG_ERROR("GIF: %s", GifErrorString(gif_state->gif->Error)); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } image_local->width = gif_state->gif->SWidth; image_local->height = gif_state->gif->SHeight; gif_state->row = gif_state->gif->Image.Top; gif_state->column = gif_state->gif->Image.Left; gif_state->width = gif_state->gif->Image.Width; gif_state->height = gif_state->gif->Image.Height; if (gif_state->column + gif_state->width > (unsigned)gif_state->gif->SWidth || gif_state->row + gif_state->height > (unsigned)gif_state->gif->SHeight) { sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCORRECT_IMAGE_DIMENSIONS); } break; } case EXTENSION_RECORD_TYPE: { int ext_code; GifByteType *extension; if (DGifGetExtension(gif_state->gif, &ext_code, &extension) == GIF_ERROR) { SAIL_LOG_ERROR("GIF: %s", GifErrorString(gif_state->gif->Error)); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (extension == NULL) { break; } switch (ext_code) { case GRAPHICS_EXT_FUNC_CODE: { /* Disposal method. */ gif_state->disposal = (extension[1] >> 2) & 7; /* Delay in 1/100 of seconds. */ unsigned delay = *(uint16_t *)(extension + 2); /* * 0 means as fast as possible. However, this makes the frame * almost invisible on modern CPUs. Let's make a small delay of 100 ms * in this case. */ image_local->delay = (delay == 0) ? 100 : delay * 10; /* Transparent index. */ if (extension[1] & 1) { gif_state->transparency_index = extension[4]; } break; } case COMMENT_EXT_FUNC_CODE: { if (gif_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY_OR_CLEANUP(gif_private_fetch_comment(extension, last_meta_data_node), /* cleanup*/ sail_destroy_image(image_local)); last_meta_data_node = &(*last_meta_data_node)->next; } break; } case APPLICATION_EXT_FUNC_CODE: { if (gif_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY_OR_CLEANUP(gif_private_fetch_application(extension, last_meta_data_node), /* cleanup */ sail_destroy_image(image_local)); last_meta_data_node = &(*last_meta_data_node)->next; } break; } } /* We don't support other extension types, so just skip them. */ while (extension != NULL) { if (DGifGetExtensionNext(gif_state->gif, &extension) == GIF_ERROR) { SAIL_LOG_ERROR("GIF: %s", GifErrorString(gif_state->gif->Error)); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } break; } case TERMINATE_RECORD_TYPE: { sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } default: { break; } } if (record == IMAGE_DESC_RECORD_TYPE) { gif_state->map = (gif_state->gif->Image.ColorMap != NULL) ? gif_state->gif->Image.ColorMap : gif_state->gif->SColorMap; if (gif_state->map == NULL) { sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_MISSING_PALETTE); } if (gif_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { if (gif_state->gif->Image.Interlace) { image_local->source_image->interlaced = true; } } image_local->pixel_format = SAIL_PIXEL_FORMAT_BPP32_RGBA; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); break; } } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_gif(void *state, struct sail_image *image) { struct gif_state *gif_state = state; const int passes = gif_state->gif->Image.Interlace ? 4 : 1; const int last_pass = passes - 1; unsigned next_interlaced_row = 0; for (int current_pass = 0; current_pass < passes; current_pass++) { /* Apply disposal method on the previous frame. */ if (gif_state->current_image > 0 && current_pass == 0) { for (unsigned cc = gif_state->prev_row; cc < gif_state->prev_row+gif_state->prev_height; cc++) { unsigned char *scan = (unsigned char *)image->pixels + image->width*4*cc; if (gif_state->prev_disposal == DISPOSE_BACKGROUND) { /* * Spec: * 2 - Restore to background color. The area used by the * graphic must be restored to the background color. * * The meaning of the background color is not quite clear here. My idea was that * it's the color specified by the background color index in the global color map. * However, other decoders like XnView treat "background" as a transparent color here. * Let's do the same. */ memset(gif_state->first_frame[cc] + gif_state->prev_column*4, 0, gif_state->prev_width*4); /* 4 = RGBA */ } memcpy(scan, gif_state->first_frame[cc], image->width * 4); } } /* Read lines. */ for (unsigned cc = 0; cc < image->height; cc++) { unsigned char *scan = (unsigned char *)image->pixels + image->width*4*cc; if (cc < gif_state->row || cc >= gif_state->row + gif_state->height) { if (current_pass == 0) { memcpy(scan, gif_state->first_frame[cc], image->width * 4); } continue; } /* In interlaced mode we skip some lines. */ bool do_read = false; if (gif_state->gif->Image.Interlace) { if (cc == gif_state->row) { next_interlaced_row = InterlacedOffset[current_pass] + gif_state->row; } if (cc == next_interlaced_row) { do_read = true; next_interlaced_row += InterlacedJumps[current_pass]; } } else { do_read = true; } if (do_read) { if (DGifGetLine(gif_state->gif, gif_state->buf, gif_state->width) == GIF_ERROR) { SAIL_LOG_ERROR("GIF: %s", GifErrorString(gif_state->gif->Error)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } memcpy(scan, gif_state->first_frame[cc], image->width * 4); for (unsigned i = 0; i < gif_state->width; i++) { if (gif_state->buf[i] == gif_state->transparency_index) { continue; } unsigned char *pixel = scan + (gif_state->column + i)*4; *(pixel+0) = gif_state->map->Colors[gif_state->buf[i]].Red; *(pixel+1) = gif_state->map->Colors[gif_state->buf[i]].Green; *(pixel+2) = gif_state->map->Colors[gif_state->buf[i]].Blue; *(pixel+3) = 255; } // for } if (current_pass == last_pass) { memcpy(gif_state->first_frame[cc], scan, image->width * 4); } } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_gif(void **state) { struct gif_state *gif_state = *state; *state = NULL; if (gif_state->gif != NULL) { DGifCloseFile(gif_state->gif, /* ErrorCode */ NULL); } destroy_gif_state(gif_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_gif(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_gif(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_gif(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_gif(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/gif/gif.codec.info.in000066400000000000000000000007241475535176100213260ustar00rootroot00000000000000# GIF codec information # [codec] layout=8 version=1.3.1 priority=HIGHEST name=GIF description=Graphics Interchange Format magic-numbers=47 49 46 38 37 61;47 49 46 38 39 61 extensions=gif mime-types=image/gif [load-features] features=STATIC;ANIMATED;META-DATA;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/gif/gif.png000066400000000000000000000003771475535176100175020ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLLgttRNS@fbKGDH pHYs  tIME 8 G8ZIDATcPc̙IPd( B13'O9Ȱ46<$bi 3aj .9 K&3ݡ!?^᥈IENDB`sail-0.9.8/src/sail-codecs/gif/helpers.c000066400000000000000000000054461475535176100200370ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "helpers.h" static sail_status_t save_str_in_meta_data(const char *str, unsigned length_wo_null, enum SailMetaData key, struct sail_meta_data_node **meta_data_node) { SAIL_CHECK_PTR(str); SAIL_CHECK_PTR(meta_data_node); struct sail_meta_data_node *meta_data_node_local; SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(key, &meta_data_node_local->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_set_variant_substring(meta_data_node_local->meta_data->value, str, length_wo_null), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); *meta_data_node = meta_data_node_local; return SAIL_OK; } sail_status_t gif_private_fetch_comment(const GifByteType *extension, struct sail_meta_data_node **meta_data_node) { SAIL_CHECK_PTR(extension); const unsigned length = *(unsigned char *)(extension); if (length == 0) { return SAIL_OK; } SAIL_TRY(save_str_in_meta_data((const char *)extension + 1, length, SAIL_META_DATA_COMMENT, meta_data_node)); return SAIL_OK; } sail_status_t gif_private_fetch_application(const GifByteType *extension, struct sail_meta_data_node **meta_data_node) { SAIL_CHECK_PTR(extension); /* 8 bytes as per the spec. */ SAIL_TRY(save_str_in_meta_data((const char *)extension + 1, 8, SAIL_META_DATA_SOFTWARE, meta_data_node)); return SAIL_OK; } sail-0.9.8/src/sail-codecs/gif/helpers.h000066400000000000000000000032311475535176100200320ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_GIF_HELPERS_H #define SAIL_GIF_HELPERS_H #include #include #include #include struct sail_meta_data_node; SAIL_HIDDEN sail_status_t gif_private_fetch_comment(const GifByteType *extension, struct sail_meta_data_node **meta_data_node); SAIL_HIDDEN sail_status_t gif_private_fetch_application(const GifByteType *extension, struct sail_meta_data_node **meta_data_node); #endif sail-0.9.8/src/sail-codecs/gif/io.c000066400000000000000000000037501475535176100170000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "io.h" int my_read_proc(GifFileType *gif, GifByteType *buffer, int buffer_size) { struct sail_io *io = gif->UserData; size_t nbytes; sail_status_t err = io->tolerant_read(io->stream, buffer, buffer_size, &nbytes); if (err != SAIL_OK) { SAIL_LOG_ERROR("GIF: Failed to read from the I/O stream: %d", err); return 0; } return (int)nbytes; } int my_write_proc(GifFileType *gif, GifByteType *buffer, int buffer_size) { struct sail_io *io = gif->UserData; size_t nbytes; sail_status_t err = io->tolerant_write(io->stream, buffer, buffer_size, &nbytes); if (err != SAIL_OK) { SAIL_LOG_ERROR("GIF: Failed to write to the I/O stream: %d", err); return 0; } return (int)nbytes; } sail-0.9.8/src/sail-codecs/gif/io.h000066400000000000000000000027331475535176100170050ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_GIF_IO_H #define SAIL_GIF_IO_H #include #include SAIL_HIDDEN int my_read_proc(GifFileType *gif, GifByteType *buffer, int buffer_size); SAIL_HIDDEN int my_write_proc(GifFileType *gif, GifByteType *buffer, int buffer_size); #endif sail-0.9.8/src/sail-codecs/ico/000077500000000000000000000000001475535176100162255ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/ico/CMakeLists.txt000066400000000000000000000001511475535176100207620ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME ico SOURCES ico.c helpers.c LINK bmp-common ICON ico.png) sail-0.9.8/src/sail-codecs/ico/helpers.c000066400000000000000000000073361475535176100200440ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "helpers.h" sail_status_t ico_private_read_header(struct sail_io *io, struct SailIcoHeader *header) { SAIL_TRY(io->strict_read(io->stream, &header->reserved, sizeof(header->reserved))); SAIL_TRY(io->strict_read(io->stream, &header->type, sizeof(header->type))); SAIL_TRY(io->strict_read(io->stream, &header->images_count, sizeof(header->images_count))); return SAIL_OK; } sail_status_t ico_private_read_dir_entry(struct sail_io *io, struct SailIcoDirEntry *dir_entry) { SAIL_TRY(io->strict_read(io->stream, &dir_entry->width, sizeof(dir_entry->width))); SAIL_TRY(io->strict_read(io->stream, &dir_entry->height, sizeof(dir_entry->height))); SAIL_TRY(io->strict_read(io->stream, &dir_entry->color_count, sizeof(dir_entry->color_count))); SAIL_TRY(io->strict_read(io->stream, &dir_entry->reserved, sizeof(dir_entry->reserved))); SAIL_TRY(io->strict_read(io->stream, &dir_entry->planes, sizeof(dir_entry->planes))); SAIL_TRY(io->strict_read(io->stream, &dir_entry->bit_count, sizeof(dir_entry->bit_count))); SAIL_TRY(io->strict_read(io->stream, &dir_entry->image_size, sizeof(dir_entry->image_size))); SAIL_TRY(io->strict_read(io->stream, &dir_entry->image_offset, sizeof(dir_entry->image_offset))); return SAIL_OK; } sail_status_t ico_private_probe_image_type(struct sail_io *io, enum SailIcoImageType *ico_image_type) { size_t saved_offset; SAIL_TRY(io->tell(io->stream, &saved_offset)); const unsigned char check[] = "\x89PNG"; unsigned char buffer[4]; SAIL_TRY(io->strict_read(io->stream, buffer, sizeof(buffer))); SAIL_TRY(io->seek(io->stream, (long)saved_offset, SEEK_SET)); *ico_image_type = (memcmp(buffer, check, sizeof(buffer)) == 0) ? SAIL_ICO_IMAGE_PNG : SAIL_ICO_IMAGE_BMP; return SAIL_OK; } sail_status_t ico_private_store_cur_hotspot(const struct SailIcoDirEntry *ico_dir_entry, struct sail_hash_map *special_properties) { struct sail_variant *variant; SAIL_TRY(sail_alloc_variant(&variant)); SAIL_LOG_TRACE("CUR: X hotspot(%u)", ico_dir_entry->planes); sail_set_variant_unsigned_int(variant, ico_dir_entry->planes); sail_put_hash_map(special_properties, "cur-hotspot-x", variant); SAIL_LOG_TRACE("CUR: Y hotspot(%u)", ico_dir_entry->bit_count); sail_set_variant_unsigned_int(variant, ico_dir_entry->bit_count); sail_put_hash_map(special_properties, "cur-hotspot-y", variant); sail_destroy_variant(variant); return SAIL_OK; } sail-0.9.8/src/sail-codecs/ico/helpers.h000066400000000000000000000044571475535176100200520ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_ICO_HELPERS_H #define SAIL_ICO_HELPERS_H #include #include #include struct sail_io; /* File header. */ struct SailIcoHeader { uint16_t reserved; uint16_t type; /* 1 = ICO, 2 = CUR. */ uint16_t images_count; }; struct SailIcoDirEntry { uint8_t width; uint8_t height; uint8_t color_count; /* 0 when full color. */ uint8_t reserved; uint16_t planes; /* CUR: x hotspot. */ uint16_t bit_count; /* CUR: y hotspot. */ uint32_t image_size; uint32_t image_offset; }; enum SailIcoImageType { SAIL_ICO_IMAGE_BMP, SAIL_ICO_IMAGE_PNG, }; SAIL_HIDDEN sail_status_t ico_private_read_header(struct sail_io *io, struct SailIcoHeader *header); SAIL_HIDDEN sail_status_t ico_private_read_dir_entry(struct sail_io *io, struct SailIcoDirEntry *dir_entry); SAIL_HIDDEN sail_status_t ico_private_probe_image_type(struct sail_io *io, enum SailIcoImageType *ico_image_type); SAIL_HIDDEN sail_status_t ico_private_store_cur_hotspot(const struct SailIcoDirEntry *ico_dir_entry, struct sail_hash_map *special_properties); #endif sail-0.9.8/src/sail-codecs/ico/ico.c000066400000000000000000000171211475535176100171450ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include "common/bmp/bmp.h" #include "helpers.h" #define SAIL_ICO_TYPE_ICO 1 #define SAIL_ICO_TYPE_CUR 2 /* * Codec-specific state. */ struct ico_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; struct SailIcoHeader ico_header; struct SailIcoDirEntry *ico_dir_entries; unsigned current_frame; void *common_bmp_state; }; static sail_status_t alloc_ico_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct ico_state **ico_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct ico_state), &ptr)); *ico_state = ptr; **ico_state = (struct ico_state) { .io = io, .load_options = load_options, .save_options = save_options, .ico_dir_entries = NULL, .current_frame = 0, .common_bmp_state = NULL, }; return SAIL_OK; } static void destroy_ico_state(struct ico_state *ico_state) { if (ico_state == NULL) { return; } sail_free(ico_state->ico_dir_entries); sail_free(ico_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_ico(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct ico_state *ico_state; SAIL_TRY(alloc_ico_state(io, load_options, NULL, &ico_state)); *state = ico_state; SAIL_TRY(ico_private_read_header(ico_state->io, &ico_state->ico_header)); if (ico_state->ico_header.images_count == 0) { SAIL_LOG_ERROR("ICO: No images found"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } /* Check the image type. */ switch (ico_state->ico_header.type) { case SAIL_ICO_TYPE_ICO: case SAIL_ICO_TYPE_CUR: break; default: { SAIL_LOG_ERROR("ICO: Invalid image type %u", ico_state->ico_header.type); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } } void *ptr; SAIL_TRY(sail_malloc(sizeof(struct SailIcoDirEntry) * ico_state->ico_header.images_count, &ptr)); ico_state->ico_dir_entries = ptr; for (unsigned i = 0; i < ico_state->ico_header.images_count; i++) { SAIL_TRY(ico_private_read_dir_entry(ico_state->io, &ico_state->ico_dir_entries[i])); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_ico(void *state, struct sail_image **image) { struct ico_state *ico_state = state; /* Skip non-BMP images. */ enum SailIcoImageType ico_image_type; do { if (ico_state->current_frame >= ico_state->ico_header.images_count) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } SAIL_TRY(ico_state->io->seek(ico_state->io->stream, (long)ico_state->ico_dir_entries[ico_state->current_frame++].image_offset, SEEK_SET)); /* Check the image is not PNG. */ SAIL_TRY(ico_private_probe_image_type(ico_state->io, &ico_image_type)); } while (ico_image_type != SAIL_ICO_IMAGE_BMP); /* Continue to loading BMP. */ struct sail_image *image_local; SAIL_TRY(bmp_private_read_init(ico_state->io, ico_state->load_options, &ico_state->common_bmp_state, SAIL_NO_BMP_FLAGS)); SAIL_TRY(bmp_private_read_seek_next_frame(ico_state->common_bmp_state, ico_state->io, &image_local)); /* Store CUR hotspot. */ if (ico_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { if (ico_state->load_options->options & SAIL_OPTION_META_DATA) { if (ico_state->ico_header.type == SAIL_ICO_TYPE_CUR) { if (image_local->source_image == NULL) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); } SAIL_TRY_OR_CLEANUP(sail_alloc_hash_map(&image_local->source_image->special_properties), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(ico_private_store_cur_hotspot(&ico_state->ico_dir_entries[ico_state->current_frame - 1], image_local->source_image->special_properties), /* cleanup */ sail_destroy_image(image_local)); } } } /* * The contained image is twice the height declared in the directory. * The second half is a mask. We need just the image. */ image_local->height /= 2; *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_ico(void *state, struct sail_image *image) { struct ico_state *ico_state = state; SAIL_TRY(bmp_private_read_frame(ico_state->common_bmp_state, ico_state->io, image)); SAIL_TRY(bmp_private_read_finish(&ico_state->common_bmp_state, ico_state->io)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_ico(void **state) { struct ico_state *ico_state = *state; *state = NULL; if (ico_state->common_bmp_state != NULL) { SAIL_TRY_OR_CLEANUP(bmp_private_read_finish(&ico_state->common_bmp_state, ico_state->io), /* cleanup */ destroy_ico_state(ico_state)); } destroy_ico_state(ico_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_ico(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_ico(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_ico(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_ico(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/ico/ico.codec.info.in000066400000000000000000000007161475535176100213410ustar00rootroot00000000000000# ICO codec information # [codec] layout=8 version=0.4.2 priority=LOW name=ICO description=Windows Icon magic-numbers=00 00 01 00;00 00 02 00 extensions=ico;cur mime-types=image/x-icon;image/vnd.microsoft.icon [load-features] features=STATIC;MULTI-PAGED;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/ico/ico.png000066400000000000000000000003701475535176100175050ustar00rootroot00000000000000PNG  IHDRRgAMA a!PLTEEEELLLhtRNS@fbKGDH pHYs  SIDATc0cժU3 c0R40Hb0KK34&S7d)df; ~$mIENDB`sail-0.9.8/src/sail-codecs/jpeg/000077500000000000000000000000001475535176100164005ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/jpeg/CMakeLists.txt000066400000000000000000000042601475535176100211420ustar00rootroot00000000000000find_package(JPEG ${SAIL_CODEC_JPEG_REQUIRED_OPTION}) if (NOT JPEG_FOUND) return() endif() # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_dependency(JPEG REQUIRED) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES JPEG::JPEG) # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_dependency,JPEG,JPEG::JPEG" PARENT_SCOPE) # Check for JPEG ICC functions that were added in libjpeg-turbo-1.5.90 # cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${JPEG_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES}) check_c_source_compiles( " #include #include int main(int argc, char *argv[]) { jpeg_read_icc_profile(NULL, NULL, NULL); jpeg_write_icc_profile(NULL, NULL, 0); return 0; } " HAVE_JPEG_ICCP ) cmake_pop_check_state() # Used in .codec.info # if (HAVE_JPEG_ICCP) set(JPEG_CODEC_INFO_FEATURE_ICCP ";ICCP") endif() # Check for libjpeg-turbo # cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${JPEG_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES}) check_c_source_compiles( " #include #include int main(int argc, char *argv[]) { J_COLOR_SPACE ext = JCS_EXT_RGB; return 0; } " HAVE_JPEG_JCS_EXT ) cmake_pop_check_state() # Used in .codec.info # if (HAVE_JPEG_JCS_EXT) set(JPEG_CODEC_INFO_WRITE_EXT "BPP24-RGB;") endif() # Common codec configuration # sail_codec(NAME jpeg SOURCES helpers.h helpers.c io_dest.h io_dest.c io_src.h io_src.c jpeg.c ICON jpeg.png DEPENDENCY_INCLUDE_DIRS ${JPEG_INCLUDE_DIR} DEPENDENCY_LIBS ${JPEG_LIBRARIES}) # Add compile options to the target based on our findings # if (HAVE_JPEG_ICCP) target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE SAIL_HAVE_JPEG_ICCP) endif() if (HAVE_JPEG_JCS_EXT) target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE SAIL_HAVE_JPEG_JCS_EXT) endif() sail-0.9.8/src/sail-codecs/jpeg/helpers.c000066400000000000000000000222201475535176100202040ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "helpers.h" void jpeg_private_my_output_message(j_common_ptr cinfo) { char buffer[JMSG_LENGTH_MAX]; (*cinfo->err->format_message)(cinfo, buffer); SAIL_LOG_ERROR("JPEG: %s", buffer); } void jpeg_private_my_error_exit(j_common_ptr cinfo) { struct jpeg_private_my_error_context *myerr = (struct jpeg_private_my_error_context *)cinfo->err; (*cinfo->err->output_message)(cinfo); longjmp(myerr->setjmp_buffer, 1); } enum SailPixelFormat jpeg_private_color_space_to_pixel_format(J_COLOR_SPACE color_space) { switch (color_space) { case JCS_GRAYSCALE: return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; case JCS_RGB: return SAIL_PIXEL_FORMAT_BPP24_RGB; #ifdef SAIL_HAVE_JPEG_JCS_EXT case JCS_RGB565: return SAIL_PIXEL_FORMAT_BPP16_RGB565; case JCS_EXT_RGB: return SAIL_PIXEL_FORMAT_BPP24_RGB; case JCS_EXT_BGR: return SAIL_PIXEL_FORMAT_BPP24_BGR; case JCS_EXT_RGBA: return SAIL_PIXEL_FORMAT_BPP32_RGBA; case JCS_EXT_BGRA: return SAIL_PIXEL_FORMAT_BPP32_BGRA; case JCS_EXT_ABGR: return SAIL_PIXEL_FORMAT_BPP32_ABGR; case JCS_EXT_ARGB: return SAIL_PIXEL_FORMAT_BPP32_ARGB; #endif case JCS_YCbCr: return SAIL_PIXEL_FORMAT_BPP24_YCBCR; case JCS_CMYK: return SAIL_PIXEL_FORMAT_BPP32_CMYK; case JCS_YCCK: return SAIL_PIXEL_FORMAT_BPP32_YCCK; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } J_COLOR_SPACE jpeg_private_pixel_format_to_color_space(enum SailPixelFormat pixel_format) { switch (pixel_format) { case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: return JCS_GRAYSCALE; case SAIL_PIXEL_FORMAT_BPP24_RGB: return JCS_RGB; #ifdef SAIL_HAVE_JPEG_JCS_EXT case SAIL_PIXEL_FORMAT_BPP16_RGB565: return JCS_RGB565; case SAIL_PIXEL_FORMAT_BPP24_BGR: return JCS_EXT_BGR; case SAIL_PIXEL_FORMAT_BPP32_RGBA: return JCS_EXT_RGBA; case SAIL_PIXEL_FORMAT_BPP32_BGRA: return JCS_EXT_BGRA; case SAIL_PIXEL_FORMAT_BPP32_ABGR: return JCS_EXT_ABGR; case SAIL_PIXEL_FORMAT_BPP32_ARGB: return JCS_EXT_ARGB; #endif case SAIL_PIXEL_FORMAT_BPP24_YCBCR: return JCS_YCbCr; case SAIL_PIXEL_FORMAT_BPP32_CMYK: return JCS_CMYK; case SAIL_PIXEL_FORMAT_BPP32_YCCK: return JCS_YCCK; default: return JCS_UNKNOWN; } } sail_status_t jpeg_private_fetch_meta_data(struct jpeg_decompress_struct *decompress_context, struct sail_meta_data_node **last_meta_data_node) { SAIL_CHECK_PTR(last_meta_data_node); jpeg_saved_marker_ptr it = decompress_context->marker_list; while(it != NULL) { if(it->marker == JPEG_COM) { struct sail_meta_data_node *meta_data_node; SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_COMMENT, &meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); SAIL_TRY_OR_CLEANUP(sail_set_variant_substring(meta_data_node->meta_data->value, (const char *)it->data, it->data_length), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); *last_meta_data_node = meta_data_node; last_meta_data_node = &meta_data_node->next; } it = it->next; } return SAIL_OK; } sail_status_t jpeg_private_write_meta_data(struct jpeg_compress_struct *compress_context, const struct sail_meta_data_node *meta_data_node) { while (meta_data_node != NULL) { if (meta_data_node->meta_data->value->type == SAIL_VARIANT_TYPE_STRING) { jpeg_write_marker(compress_context, JPEG_COM, (JOCTET *)sail_variant_to_string(meta_data_node->meta_data->value), (unsigned)meta_data_node->meta_data->value->size - 1); } else { SAIL_LOG_WARNING("JPEG: Ignoring unsupported binary key '%s'", sail_meta_data_to_string(meta_data_node->meta_data->key)); } meta_data_node = meta_data_node->next; } return SAIL_OK; } #ifdef SAIL_HAVE_JPEG_ICCP sail_status_t jpeg_private_fetch_iccp(struct jpeg_decompress_struct *decompress_context, struct sail_iccp **iccp) { SAIL_CHECK_PTR(iccp); JOCTET *data = NULL; unsigned data_size = 0; SAIL_LOG_TRACE("JPEG: ICC profile is %sfound", jpeg_read_icc_profile(decompress_context, &data, &data_size) ? "" : "not "); if (data != NULL && data_size > 0) { SAIL_TRY_OR_CLEANUP(sail_alloc_iccp_from_shallow_data(data, data_size, iccp), /* cleanup */ sail_free(data)); } return SAIL_OK; } #endif sail_status_t jpeg_private_fetch_resolution(struct jpeg_decompress_struct *decompress_context, struct sail_resolution **resolution) { SAIL_CHECK_PTR(resolution); /* Resolution information is not valid. */ if (decompress_context->X_density == 0 && decompress_context->Y_density == 0) { return SAIL_OK; } SAIL_TRY(sail_alloc_resolution(resolution)); switch (decompress_context->density_unit) { case 1: { (*resolution)->unit = SAIL_RESOLUTION_UNIT_INCH; break; } case 2: { (*resolution)->unit = SAIL_RESOLUTION_UNIT_CENTIMETER; break; } } (*resolution)->x = (float)decompress_context->X_density; (*resolution)->y = (float)decompress_context->Y_density; return SAIL_OK; } sail_status_t jpeg_private_write_resolution(struct jpeg_compress_struct *compress_context, const struct sail_resolution *resolution) { /* Not an error. */ if (resolution == NULL) { return SAIL_OK; } switch (resolution->unit) { case SAIL_RESOLUTION_UNIT_INCH: { compress_context->density_unit = 1; break; } case SAIL_RESOLUTION_UNIT_CENTIMETER: { compress_context->density_unit = 2; break; } default: { compress_context->density_unit = 0; break; } } compress_context->X_density = (UINT16)resolution->x; compress_context->Y_density = (UINT16)resolution->y; return SAIL_OK; } bool jpeg_private_tuning_key_value_callback(const char *key, const struct sail_variant *value, void *user_data) { struct jpeg_compress_struct *compress_context = user_data; if (strcmp(key, "jpeg-dct-method") == 0) { if (value->type == SAIL_VARIANT_TYPE_STRING) { const char *str_value = sail_variant_to_string(value); if (strcmp(str_value, "slow") == 0) { SAIL_LOG_TRACE("JPEG: Applying SLOW DCT method"); compress_context->dct_method = JDCT_ISLOW; } else if (strcmp(str_value, "fast") == 0) { SAIL_LOG_TRACE("JPEG: Applying FAST DCT method"); compress_context->dct_method = JDCT_IFAST; } else if (strcmp(str_value, "float") == 0) { SAIL_LOG_TRACE("JPEG: Applying FLOAT DCT method"); compress_context->dct_method = JDCT_FLOAT; } } } else if (strcmp(key, "jpeg-optimize-coding") == 0) { if (value->type == SAIL_VARIANT_TYPE_BOOL) { const bool optimize_coding = sail_variant_to_bool(value); if (optimize_coding) { SAIL_LOG_TRACE("JPEG: Optimizing coding"); compress_context->optimize_coding = optimize_coding; } } } else if (strcmp(key, "jpeg-smoothing-factor") == 0) { if (value->type == SAIL_VARIANT_TYPE_UNSIGNED_INT) { SAIL_LOG_TRACE("JPEG: Smoothing the image"); compress_context->smoothing_factor = sail_variant_to_unsigned_int(value); } } return true; } sail-0.9.8/src/sail-codecs/jpeg/helpers.h000066400000000000000000000054161475535176100202210ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_JPEG_HELPERS_H #define SAIL_JPEG_HELPERS_H #include #include #include #include #include #include struct sail_meta_data_node; struct sail_resolution; struct jpeg_private_my_error_context { struct jpeg_error_mgr jpeg_error_mgr; jmp_buf setjmp_buffer; }; SAIL_HIDDEN void jpeg_private_my_output_message(j_common_ptr cinfo); SAIL_HIDDEN void jpeg_private_my_error_exit(j_common_ptr cinfo); SAIL_HIDDEN enum SailPixelFormat jpeg_private_color_space_to_pixel_format(J_COLOR_SPACE color_space); SAIL_HIDDEN J_COLOR_SPACE jpeg_private_pixel_format_to_color_space(enum SailPixelFormat pixel_format); SAIL_HIDDEN sail_status_t jpeg_private_fetch_meta_data(struct jpeg_decompress_struct *decompress_context, struct sail_meta_data_node **last_meta_data_node); SAIL_HIDDEN sail_status_t jpeg_private_write_meta_data(struct jpeg_compress_struct *compress_context, const struct sail_meta_data_node *meta_data_node); #ifdef SAIL_HAVE_JPEG_ICCP SAIL_HIDDEN sail_status_t jpeg_private_fetch_iccp(struct jpeg_decompress_struct *decompress_context, struct sail_iccp **iccp); #endif SAIL_HIDDEN sail_status_t jpeg_private_fetch_resolution(struct jpeg_decompress_struct *decompress_context, struct sail_resolution **resolution); SAIL_HIDDEN sail_status_t jpeg_private_write_resolution(struct jpeg_compress_struct *compress_context, const struct sail_resolution *resolution); SAIL_HIDDEN bool jpeg_private_tuning_key_value_callback(const char *key, const struct sail_variant *value, void *user_data); #endif sail-0.9.8/src/sail-codecs/jpeg/io_dest.c000066400000000000000000000141011475535176100201670ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "io_dest.h" /* * Most of this file was copied from libjpeg-turbo 2.0.4 and adapted to SAIL. */ #define OUTPUT_BUF_SIZE 4096 /* choose an efficiently fwrite'able size */ /* * Initialize destination --- called by jpeg_start_compress * before any data is actually written. */ static void init_destination(j_compress_ptr cinfo) { struct sail_jpeg_destination_mgr *dest = (struct sail_jpeg_destination_mgr *)cinfo->dest; /* Allocate the output buffer --- it will be released when done with image */ dest->buffer = (JOCTET *)(*cinfo->mem->alloc_small)((j_common_ptr)cinfo, JPOOL_IMAGE, OUTPUT_BUF_SIZE * sizeof(JOCTET)); dest->pub.next_output_byte = dest->buffer; dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; } /* * Empty the output buffer --- called whenever buffer fills up. * * In typical applications, this should write the entire output buffer * (ignoring the current state of next_output_byte & free_in_buffer), * reset the pointer & count to the start of the buffer, and return TRUE * indicating that the buffer has been dumped. * * In applications that need to be able to suspend compression due to output * overrun, a FALSE return indicates that the buffer cannot be emptied now. * In this situation, the compressor will return to its caller (possibly with * an indication that it has not accepted all the supplied scanlines). The * application should resume compression after it has made more room in the * output buffer. Note that there are substantial restrictions on the use of * suspension --- see the documentation. * * When suspending, the compressor will back up to a convenient restart point * (typically the start of the current MCU). next_output_byte & free_in_buffer * indicate where the restart point will be if the current call returns FALSE. * Data beyond this point will be regenerated after resumption, so do not * write it out when emptying the buffer externally. */ static boolean empty_output_buffer(j_compress_ptr cinfo) { struct sail_jpeg_destination_mgr *dest = (struct sail_jpeg_destination_mgr *)cinfo->dest; sail_status_t err = dest->io->strict_write(dest->io->stream, dest->buffer, OUTPUT_BUF_SIZE); if (err != SAIL_OK) ERREXIT(cinfo, JERR_FILE_WRITE); dest->pub.next_output_byte = dest->buffer; dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; return TRUE; } /* * Terminate destination --- called by jpeg_finish_compress * after all data has been written. Usually needs to flush buffer. * * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding * application must deal with any cleanup that should happen even * for error exit. */ static void term_destination(j_compress_ptr cinfo) { struct sail_jpeg_destination_mgr *dest = (struct sail_jpeg_destination_mgr *)cinfo->dest; size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer; /* Write any data remaining in the buffer */ if (datacount > 0) { sail_status_t err = dest->io->strict_write(dest->io->stream, dest->buffer, datacount); if (err != SAIL_OK) ERREXIT(cinfo, JERR_FILE_WRITE); } sail_status_t err = dest->io->flush(dest->io->stream); /* Make sure we wrote the output file OK */ if (err != SAIL_OK) ERREXIT(cinfo, JERR_FILE_WRITE); } /* * Prepare for output to a SAIL I/O stream. * The caller must have already opened the stream, and is responsible * for closing it after finishing compression. */ void jpeg_private_sail_io_dest(j_compress_ptr cinfo, struct sail_io *io) { struct sail_jpeg_destination_mgr *dest; /* The destination object is made permanent so that multiple JPEG images * can be written to the same file without re-executing jpeg_stdio_dest. */ if (cinfo->dest == NULL) { /* first time for this JPEG object? */ cinfo->dest = cinfo->mem->alloc_small((j_common_ptr)cinfo, JPOOL_PERMANENT, sizeof(struct sail_jpeg_destination_mgr)); } else if (cinfo->dest->init_destination != init_destination) { /* It is unsafe to reuse the existing destination manager unless it was * created by this function. Otherwise, there is no guarantee that the * opaque structure is the right size. Note that we could just create a * new structure, but the old structure would not be freed until * jpeg_destroy_compress() was called. */ ERREXIT(cinfo, JERR_BUFFER_SIZE); } dest = (struct sail_jpeg_destination_mgr *)cinfo->dest; dest->pub.init_destination = init_destination; dest->pub.empty_output_buffer = empty_output_buffer; dest->pub.term_destination = term_destination; dest->io = io; } sail-0.9.8/src/sail-codecs/jpeg/io_dest.h000066400000000000000000000032061475535176100202000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_JPEG_IO_DEST_H #define SAIL_JPEG_IO_DEST_H #include #include #include struct sail_io; struct sail_jpeg_destination_mgr { struct jpeg_destination_mgr pub; /* public fields */ struct sail_io *io; /* target stream */ JOCTET *buffer; /* start of buffer */ }; SAIL_HIDDEN void jpeg_private_sail_io_dest(j_compress_ptr cinfo, struct sail_io *io); #endif sail-0.9.8/src/sail-codecs/jpeg/io_src.c000066400000000000000000000210761475535176100200300ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "io_src.h" #define INPUT_BUF_SIZE 8192 /* choose an efficiently fread'able size */ /* * Most of this file was copied from libjpeg-turbo 2.0.4 and adapted to SAIL. */ /* * Initialize source --- called by jpeg_read_header * before any data is actually read. */ static void init_source(j_decompress_ptr cinfo) { struct sail_jpeg_source_mgr *src = (struct sail_jpeg_source_mgr *)cinfo->src; /* We reset the empty-input-file flag for each image, * but we don't clear the input buffer. * This is correct behavior for reading a series of images from one source. */ src->start_of_file = TRUE; } /* * Fill the input buffer --- called whenever buffer is emptied. * * In typical applications, this should read fresh data into the buffer * (ignoring the current state of next_input_byte & bytes_in_buffer), * reset the pointer & count to the start of the buffer, and return TRUE * indicating that the buffer has been reloaded. It is not necessary to * fill the buffer entirely, only to obtain at least one more byte. * * There is no such thing as an EOF return. If the end of the file has been * reached, the routine has a choice of ERREXIT() or inserting fake data into * the buffer. In most cases, generating a warning message and inserting a * fake EOI marker is the best course of action --- this will allow the * decompressor to output however much of the image is there. However, * the resulting error message is misleading if the real problem is an empty * input file, so we handle that case specially. * * In applications that need to be able to suspend compression due to input * not being available yet, a FALSE return indicates that no more data can be * obtained right now, but more may be forthcoming later. In this situation, * the decompressor will return to its caller (with an indication of the * number of scanlines it has read, if any). The application should resume * decompression after it has loaded more data into the input buffer. Note * that there are substantial restrictions on the use of suspension --- see * the documentation. * * When suspending, the decompressor will back up to a convenient restart point * (typically the start of the current MCU). next_input_byte & bytes_in_buffer * indicate where the restart point will be if the current call returns FALSE. * Data beyond this point must be rescanned after resumption, so move it to * the front of the buffer rather than discarding it. */ static boolean fill_input_buffer(j_decompress_ptr cinfo) { struct sail_jpeg_source_mgr *src = (struct sail_jpeg_source_mgr *)cinfo->src; size_t nbytes; sail_status_t err = src->io->tolerant_read(src->io->stream, src->buffer, INPUT_BUF_SIZE, &nbytes); if (err != SAIL_OK || nbytes == 0) { if (src->start_of_file) /* Treat empty input file as fatal error */ ERREXIT(cinfo, JERR_INPUT_EMPTY); WARNMS(cinfo, JWRN_JPEG_EOF); /* Insert a fake EOI marker */ src->buffer[0] = (JOCTET)0xFF; src->buffer[1] = (JOCTET)JPEG_EOI; nbytes = 2; } src->pub.next_input_byte = src->buffer; src->pub.bytes_in_buffer = nbytes; src->start_of_file = FALSE; return TRUE; } /* * Skip data --- used to skip over a potentially large amount of * uninteresting data (such as an APPn marker). * * Writers of suspendable-input applications must note that skip_input_data * is not granted the right to give a suspension return. If the skip extends * beyond the data currently in the buffer, the buffer can be marked empty so * that the next read will cause a fill_input_buffer call that can suspend. * Arranging for additional bytes to be discarded before reloading the input * buffer is the application writer's problem. */ static void skip_input_data(j_decompress_ptr cinfo, long num_bytes) { struct jpeg_source_mgr *src = cinfo->src; /* Just a dumb implementation for now. Could use fseek() except * it doesn't work on pipes. Not clear that being smart is worth * any trouble anyway --- large skips are infrequent. */ if (num_bytes > 0) { while (num_bytes > (long)src->bytes_in_buffer) { num_bytes -= (long)src->bytes_in_buffer; (void)(*src->fill_input_buffer) (cinfo); /* note we assume that fill_input_buffer will never return FALSE, * so suspension need not be handled. */ } src->next_input_byte += (size_t)num_bytes; src->bytes_in_buffer -= (size_t)num_bytes; } } /* * An additional method that can be provided by data source modules is the * resync_to_restart method for error recovery in the presence of RST markers. * For the moment, this source module just uses the default resync method * provided by the JPEG library. That method assumes that no backtracking * is possible. */ /* * Terminate source --- called by jpeg_finish_decompress * after all data has been read. Often a no-op. * * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding * application must deal with any cleanup that should happen even * for error exit. */ static void term_source(j_decompress_ptr cinfo) { /* no work necessary here */ (void)cinfo; } /* * Prepare for input from a SAIL I/O stream. * The caller must have already opened the stream, and is responsible * for closing it after finishing decompression. */ void jpeg_private_sail_io_src(j_decompress_ptr cinfo, struct sail_io *io) { struct sail_jpeg_source_mgr *src; /* The source object and input buffer are made permanent so that a series * of JPEG images can be read from the same file by calling jpeg_stdio_src * only before the first one. (If we discarded the buffer at the end of * one image, we'd likely lose the start of the next one.) */ if (cinfo->src == NULL) { /* first time for this JPEG object? */ cinfo->src = cinfo->mem->alloc_small((j_common_ptr)cinfo, JPOOL_PERMANENT, sizeof(struct sail_jpeg_source_mgr)); src = (struct sail_jpeg_source_mgr *)cinfo->src; src->buffer = (JOCTET *)(*cinfo->mem->alloc_small)((j_common_ptr)cinfo, JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); } else if (cinfo->src->init_source != init_source) { /* It is unsafe to reuse the existing source manager unless it was created * by this function. Otherwise, there is no guarantee that the opaque * structure is the right size. Note that we could just create a new * structure, but the old structure would not be freed until * jpeg_destroy_decompress() was called. */ ERREXIT(cinfo, JERR_BUFFER_SIZE); } src = (struct sail_jpeg_source_mgr *)cinfo->src; src->pub.init_source = init_source; src->pub.fill_input_buffer = fill_input_buffer; src->pub.skip_input_data = skip_input_data; src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */ src->pub.term_source = term_source; src->io = io; src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */ src->pub.next_input_byte = NULL; /* until buffer loaded */ } sail-0.9.8/src/sail-codecs/jpeg/io_src.h000066400000000000000000000033601475535176100200310ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_JPEG_IO_SRC_H #define SAIL_JPEG_IO_SRC_H #include #include #include struct sail_io; /* * Expanded data source object for input. */ struct sail_jpeg_source_mgr { struct jpeg_source_mgr pub; /* public fields */ struct sail_io *io; /* source stream */ JOCTET *buffer; /* start of buffer */ boolean start_of_file; /* have we gotten any data yet? */ }; SAIL_HIDDEN void jpeg_private_sail_io_src(j_decompress_ptr cinfo, struct sail_io *io); #endif sail-0.9.8/src/sail-codecs/jpeg/jpeg.c000066400000000000000000000337211475535176100174770ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include "helpers.h" #include "io_dest.h" #include "io_src.h" /* * Codec-specific data types. */ static const double COMPRESSION_MIN = 0; static const double COMPRESSION_MAX = 100; static const double COMPRESSION_DEFAULT = 15; /* * Codec-specific state. */ struct jpeg_state { const struct sail_load_options *load_options; const struct sail_save_options *save_options; struct jpeg_decompress_struct *decompress_context; struct jpeg_compress_struct *compress_context; struct jpeg_private_my_error_context error_context; bool libjpeg_error; bool frame_loaded; bool frame_saved; bool started_compress; }; static sail_status_t alloc_jpeg_state(const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct jpeg_state **jpeg_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct jpeg_state), &ptr)); *jpeg_state = ptr; **jpeg_state = (struct jpeg_state) { .load_options = load_options, .save_options = save_options, .decompress_context = NULL, .compress_context = NULL, .libjpeg_error = false, .frame_loaded = false, .frame_saved = false, .started_compress = false, }; return SAIL_OK; } static void destroy_jpeg_state(struct jpeg_state *jpeg_state) { if (jpeg_state == NULL) { return; } sail_free(jpeg_state->decompress_context); sail_free(jpeg_state->compress_context); sail_free(jpeg_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_jpeg(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct jpeg_state *jpeg_state; SAIL_TRY(alloc_jpeg_state(load_options, NULL, &jpeg_state)); *state = jpeg_state; /* Create decompress context. */ void *ptr; SAIL_TRY(sail_malloc(sizeof(struct jpeg_decompress_struct), &ptr)); jpeg_state->decompress_context = ptr; /* Error handling setup. */ jpeg_state->decompress_context->err = jpeg_std_error(&jpeg_state->error_context.jpeg_error_mgr); jpeg_state->error_context.jpeg_error_mgr.error_exit = jpeg_private_my_error_exit; jpeg_state->error_context.jpeg_error_mgr.output_message = jpeg_private_my_output_message; if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { jpeg_state->libjpeg_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* JPEG setup. */ jpeg_create_decompress(jpeg_state->decompress_context); jpeg_private_sail_io_src(jpeg_state->decompress_context, io); if (jpeg_state->load_options->options & SAIL_OPTION_META_DATA) { jpeg_save_markers(jpeg_state->decompress_context, JPEG_COM, 0xffff); } if (jpeg_state->load_options->options & SAIL_OPTION_ICCP) { jpeg_save_markers(jpeg_state->decompress_context, JPEG_APP0 + 2, 0xFFFF); } jpeg_read_header(jpeg_state->decompress_context, true); /* Handle the requested color space. */ if (jpeg_state->decompress_context->jpeg_color_space == JCS_YCbCr) { jpeg_state->decompress_context->out_color_space = JCS_RGB; } else { jpeg_state->decompress_context->out_color_space = jpeg_state->decompress_context->jpeg_color_space; } /* We don't want colormapped output. */ jpeg_state->decompress_context->quantize_colors = false; /* Launch decompression! */ jpeg_start_decompress(jpeg_state->decompress_context); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_jpeg(void *state, struct sail_image **image) { struct jpeg_state *jpeg_state = state; if (jpeg_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } jpeg_state->frame_loaded = true; if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { jpeg_state->libjpeg_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (jpeg_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = jpeg_private_color_space_to_pixel_format(jpeg_state->decompress_context->jpeg_color_space); image_local->source_image->compression = SAIL_COMPRESSION_JPEG; } /* Image properties. */ image_local->width = jpeg_state->decompress_context->output_width; image_local->height = jpeg_state->decompress_context->output_height; image_local->pixel_format = jpeg_private_color_space_to_pixel_format(jpeg_state->decompress_context->out_color_space); image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); /* Read meta data. */ if (jpeg_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY_OR_CLEANUP(jpeg_private_fetch_meta_data(jpeg_state->decompress_context, &image_local->meta_data_node), /* cleanup */ sail_destroy_image(image_local)); } /* Fetch resolution. */ SAIL_TRY_OR_CLEANUP(jpeg_private_fetch_resolution(jpeg_state->decompress_context, &image_local->resolution), /* cleanup */ sail_destroy_image(image_local)); /* Fetch ICC profile. */ #ifdef SAIL_HAVE_JPEG_ICCP if (jpeg_state->load_options->options & SAIL_OPTION_ICCP) { SAIL_TRY_OR_CLEANUP(jpeg_private_fetch_iccp(jpeg_state->decompress_context, &image_local->iccp), /* cleanup */ sail_destroy_image(image_local)); } #endif *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_jpeg(void *state, struct sail_image *image) { struct jpeg_state *jpeg_state = state; if (jpeg_state->libjpeg_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { jpeg_state->libjpeg_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } for (unsigned row = 0; row < image->height; row++) { unsigned char *scanline = sail_scan_line(image, row); JSAMPROW samprow = (JSAMPROW)scanline; (void)jpeg_read_scanlines(jpeg_state->decompress_context, &samprow, 1); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_jpeg(void **state) { struct jpeg_state *jpeg_state = *state; *state = NULL; if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { destroy_jpeg_state(jpeg_state); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (jpeg_state->decompress_context != NULL) { jpeg_abort_decompress(jpeg_state->decompress_context); jpeg_destroy_decompress(jpeg_state->decompress_context); } destroy_jpeg_state(jpeg_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_jpeg(struct sail_io *io, const struct sail_save_options *save_options, void **state) { *state = NULL; struct jpeg_state *jpeg_state; SAIL_TRY(alloc_jpeg_state(NULL, save_options, &jpeg_state)); *state = jpeg_state; /* Create compress context. */ void *ptr; SAIL_TRY(sail_malloc(sizeof(struct jpeg_compress_struct), &ptr)); jpeg_state->compress_context = ptr; /* Sanity check. */ if (jpeg_state->save_options->compression != SAIL_COMPRESSION_JPEG) { SAIL_LOG_ERROR("JPEG: Only JPEG compression is allowed for saving"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_COMPRESSION); } /* Error handling setup. */ jpeg_state->compress_context->err = jpeg_std_error(&jpeg_state->error_context.jpeg_error_mgr); jpeg_state->error_context.jpeg_error_mgr.error_exit = jpeg_private_my_error_exit; jpeg_state->error_context.jpeg_error_mgr.output_message = jpeg_private_my_output_message; if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { jpeg_state->libjpeg_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* JPEG setup. */ jpeg_create_compress(jpeg_state->compress_context); jpeg_private_sail_io_dest(jpeg_state->compress_context, io); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_jpeg(void *state, const struct sail_image *image) { struct jpeg_state *jpeg_state = state; if (jpeg_state->frame_saved) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } jpeg_state->frame_saved = true; /* Error handling setup. */ if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { jpeg_state->libjpeg_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Compute output pixel format. */ const J_COLOR_SPACE color_space = jpeg_private_pixel_format_to_color_space(image->pixel_format); if (color_space == JCS_UNKNOWN) { SAIL_LOG_ERROR("JPEG: %s pixel format is not currently supported for saving", sail_pixel_format_to_string(image->pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } /* Initialize compression. */ jpeg_state->compress_context->image_width = image->width; jpeg_state->compress_context->image_height = image->height; jpeg_state->compress_context->input_components = sail_bits_per_pixel(image->pixel_format) / 8; jpeg_state->compress_context->in_color_space = color_space; jpeg_state->compress_context->input_gamma = image->gamma; jpeg_set_defaults(jpeg_state->compress_context); jpeg_set_colorspace(jpeg_state->compress_context, color_space); /* Save resolution. */ SAIL_TRY(jpeg_private_write_resolution(jpeg_state->compress_context, image->resolution)); /* Compute image quality. */ const double compression = (jpeg_state->save_options->compression_level < COMPRESSION_MIN || jpeg_state->save_options->compression_level > COMPRESSION_MAX) ? COMPRESSION_DEFAULT : jpeg_state->save_options->compression_level; jpeg_set_quality(jpeg_state->compress_context, /* to quality */ (int)(COMPRESSION_MAX-compression), true); /* Handle tuning. */ if (jpeg_state->save_options->tuning != NULL) { sail_traverse_hash_map_with_user_data(jpeg_state->save_options->tuning, jpeg_private_tuning_key_value_callback, jpeg_state->compress_context); } /* Start compression. */ jpeg_start_compress(jpeg_state->compress_context, true); jpeg_state->started_compress = true; /* Save meta data. */ if (jpeg_state->save_options->options & SAIL_OPTION_META_DATA && image->meta_data_node != NULL) { SAIL_TRY(jpeg_private_write_meta_data(jpeg_state->compress_context, image->meta_data_node)); SAIL_LOG_TRACE("JPEG: Meta data has been written"); } /* Save ICC profile. */ #ifdef SAIL_HAVE_JPEG_ICCP if (jpeg_state->save_options->options & SAIL_OPTION_ICCP && image->iccp != NULL) { jpeg_write_icc_profile(jpeg_state->compress_context, image->iccp->data, (unsigned)image->iccp->size); SAIL_LOG_TRACE("JPEG: ICC profile has been written"); } #endif return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_jpeg(void *state, const struct sail_image *image) { struct jpeg_state *jpeg_state = state; if (jpeg_state->libjpeg_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { jpeg_state->libjpeg_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } for (unsigned row = 0; row < image->height; row++) { JSAMPROW samprow = (JSAMPROW)sail_scan_line(image, row); jpeg_write_scanlines(jpeg_state->compress_context, &samprow, 1); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_jpeg(void **state) { struct jpeg_state *jpeg_state = *state; /* Subsequent calls to finish() will expectedly fail in the above line. */ *state = NULL; if (setjmp(jpeg_state->error_context.setjmp_buffer) != 0) { destroy_jpeg_state(jpeg_state); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (jpeg_state->compress_context != NULL) { if (jpeg_state->started_compress) { jpeg_finish_compress(jpeg_state->compress_context); } jpeg_destroy_compress(jpeg_state->compress_context); } destroy_jpeg_state(jpeg_state); return SAIL_OK; } sail-0.9.8/src/sail-codecs/jpeg/jpeg.codec.info.in000066400000000000000000000012511475535176100216620ustar00rootroot00000000000000# JPEG codec information # [codec] layout=8 version=1.3.4.1 priority=HIGHEST name=JPEG description=Joint Photographic Experts Group magic-numbers=FF D8 extensions=jpg;jpeg;jpe;jif;jfif;jfi mime-types=image/jpeg [load-features] features=STATIC;META-DATA@JPEG_CODEC_INFO_FEATURE_ICCP@;SOURCE-IMAGE tuning=jpeg-dct-method;jpeg-optimize-coding;jpeg-smoothing-factor [save-features] features=STATIC;META-DATA@JPEG_CODEC_INFO_FEATURE_ICCP@ pixel-formats=BPP8-GRAYSCALE;@JPEG_CODEC_INFO_WRITE_EXT@BPP24-YCBCR;BPP32-CMYK;BPP32-YCCK compressions=JPEG default-compression=JPEG compression-level-min=0 compression-level-max=100 compression-level-default=15 compression-level-step=1 tuning= sail-0.9.8/src/sail-codecs/jpeg/jpeg.png000066400000000000000000000004011475535176100200260ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLLtRNS@fbKGDH pHYs  tIME 8!^\IDATcPc̙IPd( B12([Z4 fO  O2&`50]ps@MfCFIENDB`sail-0.9.8/src/sail-codecs/jpeg2000/000077500000000000000000000000001475535176100167025ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/jpeg2000/CMakeLists.txt000066400000000000000000000013611475535176100214430ustar00rootroot00000000000000find_package(Jasper ${SAIL_CODEC_JPEG2000_REQUIRED_OPTION}) if (NOT JASPER_FOUND) return() endif() # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_package(Jasper) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${JASPER_LIBRARIES}) # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_dependency,Jasper,\${JASPER_LIBRARIES}" PARENT_SCOPE) # Common codec configuration # sail_codec(NAME jpeg2000 SOURCES helpers.h helpers.c jpeg2000.c ICON jpeg2000.png DEPENDENCY_INCLUDE_DIRS ${JASPER_INCLUDE_DIR} DEPENDENCY_LIBS ${JASPER_LIBRARIES}) sail-0.9.8/src/sail-codecs/jpeg2000/helpers.c000066400000000000000000000044211475535176100205110ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "helpers.h" enum SailPixelFormat jpeg2000_private_sail_pixel_format(jas_clrspc_t jasper_color_space, int bpp) { switch (jasper_color_space) { case JAS_CLRSPC_FAM_GRAY: { switch (bpp) { case 8: return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; case 16: return SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE; default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } case JAS_CLRSPC_FAM_RGB: { switch (bpp) { case 24: return SAIL_PIXEL_FORMAT_BPP24_RGB; case 32: return SAIL_PIXEL_FORMAT_BPP32_RGBA; case 48: return SAIL_PIXEL_FORMAT_BPP48_RGB; case 64: return SAIL_PIXEL_FORMAT_BPP64_RGBA; default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } case JAS_CLRSPC_FAM_YCBCR: return SAIL_PIXEL_FORMAT_BPP24_YCBCR; default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } sail-0.9.8/src/sail-codecs/jpeg2000/helpers.h000066400000000000000000000027661475535176100205300ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_JPEG2000_HELPERS_H #define SAIL_JPEG2000_HELPERS_H #include #include #include #include SAIL_HIDDEN enum SailPixelFormat jpeg2000_private_sail_pixel_format(jas_clrspc_t jasper_color_space, int bpp); #endif sail-0.9.8/src/sail-codecs/jpeg2000/jpeg2000.c000066400000000000000000000327141475535176100203040ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "helpers.h" /* * Codec-specific state. */ struct jpeg2000_state { const struct sail_load_options *load_options; const struct sail_save_options *save_options; bool frame_loaded; void *image_data; jas_stream_t *jas_stream; jas_image_t *jas_image; jas_clrspc_t jas_color_space_family; int channels[4]; int number_channels; jas_matrix_t *matrix[4]; /* Channel depth in bits scaled to a byte boundary. For example, 12 bit images are scaled to 16 bit. */ unsigned channel_depth_scaled; unsigned shift; }; static sail_status_t alloc_jpeg2000_state(const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct jpeg2000_state **jpeg2000_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct jpeg2000_state), &ptr)); *jpeg2000_state = ptr; jas_init(); **jpeg2000_state = (struct jpeg2000_state) { .load_options = load_options, .save_options = save_options, .frame_loaded = false, .image_data = NULL, .jas_stream = NULL, .jas_image = NULL, .number_channels = 0, .matrix = { NULL, NULL, NULL, NULL }, .shift = 0, }; return SAIL_OK; } static void destroy_jpeg2000_state(struct jpeg2000_state *jpeg2000_state) { if (jpeg2000_state == NULL) { return; } if (jpeg2000_state->jas_image != NULL) { jas_image_destroy(jpeg2000_state->jas_image); } if (jpeg2000_state->jas_stream != NULL) { jas_stream_close(jpeg2000_state->jas_stream); } for (int i = 0; i < 4; i++) { if (jpeg2000_state->matrix[i] != NULL) { jas_matrix_destroy(jpeg2000_state->matrix[i]); } } jas_cleanup(); sail_free(jpeg2000_state->image_data); sail_free(jpeg2000_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_jpeg2000(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct jpeg2000_state *jpeg2000_state; SAIL_TRY(alloc_jpeg2000_state(load_options, NULL, &jpeg2000_state)); *state = jpeg2000_state; /* Read the entire image to use the JasPer memory API. */ size_t image_size; SAIL_TRY(sail_alloc_data_from_io_contents(io, &jpeg2000_state->image_data, &image_size)); /* TODO This function may generate a warning on old versions of Jasper: conversion from size_t to int. */ jpeg2000_state->jas_stream = jas_stream_memopen(jpeg2000_state->image_data, image_size); if (jpeg2000_state->jas_stream == NULL) { SAIL_LOG_ERROR("JPEG2000: Failed to open the specified file"); SAIL_LOG_AND_RETURN(SAIL_ERROR_OPEN_FILE); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_jpeg2000(void *state, struct sail_image **image) { struct jpeg2000_state *jpeg2000_state = state; if (jpeg2000_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } jpeg2000_state->frame_loaded = true; /* Get image info. */ jpeg2000_state->jas_image = jas_image_decode(jpeg2000_state->jas_stream, -1 /* format */, NULL /* options */); if (jpeg2000_state->jas_image == NULL) { SAIL_LOG_ERROR("JPEG2000: Failed to read image"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } jpeg2000_state->jas_color_space_family = jas_clrspc_fam(jas_image_clrspc(jpeg2000_state->jas_image)); /* Initialize image channels. */ switch (jpeg2000_state->jas_color_space_family) { case JAS_CLRSPC_FAM_GRAY: { jpeg2000_state->channels[0] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_GRAY_Y)); jpeg2000_state->number_channels = 1; break; } case JAS_CLRSPC_FAM_RGB: { jpeg2000_state->channels[0] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_R)); jpeg2000_state->channels[1] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_G)); jpeg2000_state->channels[2] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_RGB_B)); jpeg2000_state->channels[3] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_OPACITY)); jpeg2000_state->number_channels = jpeg2000_state->channels[3] > 0 ? 4 : 3; break; } case JAS_CLRSPC_FAM_YCBCR: { jpeg2000_state->channels[0] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_YCBCR_Y)); jpeg2000_state->channels[1] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_YCBCR_CB)); jpeg2000_state->channels[2] = jas_image_getcmptbytype(jpeg2000_state->jas_image, JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_YCBCR_CR)); jpeg2000_state->number_channels = 3; break; } default: { SAIL_LOG_ERROR("JPEG2000: Unsupported pixel format"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } /* Check channels ids are valid. */ for (int channel = 0; channel < jpeg2000_state->number_channels; channel++) { if (jpeg2000_state->channels[channel] < 0) { SAIL_LOG_ERROR("JPEG2000: Channel #%d is missing", channel); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } } const unsigned width = jas_image_width(jpeg2000_state->jas_image); const unsigned height = jas_image_height(jpeg2000_state->jas_image); /* Check image parameters per channel. */ for (int i = 0; i < jpeg2000_state->number_channels; i++) { const unsigned channel_width = jas_image_cmptwidth(jpeg2000_state->jas_image, jpeg2000_state->channels[i]); const unsigned channel_height = jas_image_cmptheight(jpeg2000_state->jas_image, jpeg2000_state->channels[i]); if (channel_width != width || channel_height != height) { SAIL_LOG_ERROR("JPEG2000: Channel #%d dimensions (%ux%u) don't match image dimensions (%ux%u)", i, channel_width, channel_height, width, height); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (jas_image_cmptsgnd(jpeg2000_state->jas_image, jpeg2000_state->channels[i]) != 0) { SAIL_LOG_ERROR("JPEG2000: Channel #%d has signed data type", i); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (jas_image_cmpttlx(jpeg2000_state->jas_image, jpeg2000_state->channels[i]) != 0 || jas_image_cmpttly(jpeg2000_state->jas_image, jpeg2000_state->channels[i]) != 0) { SAIL_LOG_ERROR("JPEG2000: Channel #%d has non-zero position", i); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (jas_image_cmpthstep(jpeg2000_state->jas_image, jpeg2000_state->channels[i]) != 1 || jas_image_cmptvstep(jpeg2000_state->jas_image, jpeg2000_state->channels[i]) != 1) { SAIL_LOG_ERROR("JPEG2000: Channel #%d has subsampling factor not equal to 1", i); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } } /* Allocate matrix per channel for reading. */ for (int i = 0; i < jpeg2000_state->number_channels; i++) { if ((jpeg2000_state->matrix[i] = jas_matrix_create(1, width)) == NULL) { SAIL_LOG_ERROR("JPEG2000: Matrix allocation failure"); SAIL_LOG_AND_RETURN(SAIL_ERROR_MEMORY_ALLOCATION); } } /* Detect image format. */ const unsigned channel_depth = jas_image_cmptprec(jpeg2000_state->jas_image, 0); jpeg2000_state->channel_depth_scaled = ((channel_depth + 7) / 8) * 8; if (jpeg2000_state->channel_depth_scaled != 8 && jpeg2000_state->channel_depth_scaled != 16) { SAIL_LOG_ERROR("JPEG2000: Unsupported bit depth %u scaled from %u", jpeg2000_state->channel_depth_scaled, channel_depth); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_BIT_DEPTH); } jpeg2000_state->shift = jpeg2000_state->channel_depth_scaled - channel_depth; SAIL_LOG_TRACE("JPEG2000: Channels: %d, Channel depth %d (scaled to %d), shift samples by %u", jpeg2000_state->number_channels, channel_depth, jpeg2000_state->channel_depth_scaled, jpeg2000_state->shift); const enum SailPixelFormat pixel_format = jpeg2000_private_sail_pixel_format(jpeg2000_state->jas_color_space_family, jpeg2000_state->channel_depth_scaled * jpeg2000_state->number_channels); if (pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_ERROR("JPEG2000: Unsupported pixel format"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } /* Allocate image. */ struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (jpeg2000_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = pixel_format; image_local->source_image->compression = SAIL_COMPRESSION_JPEG_2000; } image_local->width = width; image_local->height = height; image_local->pixel_format = pixel_format; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_jpeg2000(void *state, struct sail_image *image) { const struct jpeg2000_state *jpeg2000_state = state; for (unsigned row = 0; row < image->height; row++) { for (int channel = 0; channel < jpeg2000_state->number_channels; channel++) { if (jas_image_readcmpt(jpeg2000_state->jas_image, jpeg2000_state->channels[channel], 0 /* x */, row /* y */, image->width /* width */, 1 /* height */, jpeg2000_state->matrix[channel]) != 0) { SAIL_LOG_ERROR("JPEG2000: Failed to read image row #%u", row); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } } if (jpeg2000_state->channel_depth_scaled == 8) { unsigned char *scan = sail_scan_line(image, row); for (unsigned column = 0; column < image->width; column++) { for (int channel = 0; channel < jpeg2000_state->number_channels; channel++) { *scan++ = (unsigned char)(jas_matrix_getv(jpeg2000_state->matrix[channel], column) << jpeg2000_state->shift); } } } else { uint16_t *scan = sail_scan_line(image, row); for (unsigned column = 0; column < image->width; column++) { for (int channel = 0; channel < jpeg2000_state->number_channels; channel++) { *scan++ = (uint16_t)(jas_matrix_getv(jpeg2000_state->matrix[channel], column) << jpeg2000_state->shift); } } } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_jpeg2000(void **state) { struct jpeg2000_state *jpeg2000_state = *state; *state = NULL; destroy_jpeg2000_state(jpeg2000_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_jpeg2000(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_jpeg2000(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_jpeg2000(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_jpeg2000(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/jpeg2000/jpeg2000.codec.info.in000066400000000000000000000007531475535176100224740ustar00rootroot00000000000000# JPEG2000 codec information # [codec] layout=8 version=0.4.0 priority=MEDIUM name=JPEG2000 description=JPEG 2000 magic-numbers=00 00 00 0C 6A 50 20 20 0D 0A 87 0A;FF 4F FF 51 extensions=jp2;j2k;jpf;jpm;jpg2;j2c;jpc;jpx mime-types=image/jp2;image/jpm [load-features] features=STATIC;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/jpeg2000/jpeg2000.png000066400000000000000000000003741475535176100206430ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLLbꮮg\tRNS@fbKGDH pHYs  tIME 813NWIDATcPc̙IPd( B1g!Pc5i< nRL`w(020"?̻IENDB`sail-0.9.8/src/sail-codecs/jpegxl/000077500000000000000000000000001475535176100167445ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/jpegxl/CMakeLists.txt000066400000000000000000000054041475535176100215070ustar00rootroot00000000000000# Don't use SAIL_CODEC_JPEGXL_REQUIRED_OPTION as it requires CMake 3.18 # find_library(JPEGXL_LIBRARY jxl NAMES jxl jxl-static) find_library(JPEGXL_THREADS_LIBRARY jxl_threads NAMES jxl_threads jxl_threads-static) find_path(JPEGXL_INCLUDE_DIRS jxl/decode.h) if (NOT JPEGXL_LIBRARY OR NOT JPEGXL_THREADS_LIBRARY OR NOT JPEGXL_INCLUDE_DIRS) if (SAIL_CODEC_JPEGXL_REQUIRED_OPTION STREQUAL "REQUIRED") message(FATAL_ERROR "JPEGXL: Missing dependencies") else() return() endif() endif() # Find dependencies for static builds as libjxl doesn't provide CMake configs # to find them automatically. # find_library(HWY_LIBRARY NAMES hwy ${SAIL_CODEC_JPEGXL_REQUIRED_OPTION}) find_library(BROTLI_COMMON_LIBRARY NAMES brotlicommon brotlicommon-static ${SAIL_CODEC_JPEGXL_REQUIRED_OPTION}) find_library(BROTLI_DEC_LIBRARY NAMES brotlidec brotlidec-static ${SAIL_CODEC_JPEGXL_REQUIRED_OPTION}) if (NOT HWY_LIBRARY OR NOT BROTLI_COMMON_LIBRARY OR NOT BROTLI_DEC_LIBRARY) return() endif() # For static builds libjxl requires -DJXL_STATIC_DEFINE # if (JPEGXL_LIBRARY MATCHES "jxl-static") set(JXL_STATIC_DEFINE "JXL_STATIC_DEFINE") endif() # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_library(jxl_RELEASE_LIBRARY NAMES jxl jxl-static) # find_library(jxl_DEBUG_LIBRARY NAMES jxl jxl-static) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$:${jxl_RELEASE_LIBRARY}> $<$:${jxl_DEBUG_LIBRARY}>) # # etc. # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_library,jxl jxl-static,jxl jxl-static") set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_library,jxl_threads jxl_threads-static,jxl_threads jxl_threads-static") set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_library,hwy,hwy") set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_library,brotlicommon brotlicommon-static,brotlicommon brotlicommon-static") set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_library,brotlidec brotlidec-static,brotlidec brotlidec-static") set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} PARENT_SCOPE) # Common codec configuration # sail_codec(NAME jpegxl SOURCES helpers.h helpers.c jpegxl.c memory.h memory.c ICON jpegxl.png DEPENDENCY_COMPILE_DEFINITIONS ${JXL_STATIC_DEFINE} DEPENDENCY_INCLUDE_DIRS ${JPEGXL_INCLUDE_DIRS} DEPENDENCY_LIBS ${BROTLI_COMMON_LIBRARY} ${BROTLI_DEC_LIBRARY} ${HWY_LIBRARY} ${JPEGXL_LIBRARY} ${JPEGXL_THREADS_LIBRARY}) sail-0.9.8/src/sail-codecs/jpegxl/helpers.c000066400000000000000000000317621475535176100205630ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include /* size_t */ #include /* memmove */ #include #include #include "helpers.h" SAIL_HIDDEN bool jpegxl_private_is_cmyk(JxlDecoder *decoder, uint32_t num_extra_channels) { for (uint32_t i = 0; i < num_extra_channels; i++) { JxlExtraChannelInfo extra_channel_info; if (JxlDecoderGetExtraChannelInfo(decoder, i, &extra_channel_info) != JXL_DEC_SUCCESS) { return false; } if (extra_channel_info.type == JXL_CHANNEL_BLACK) { return true; } } return false; } enum SailPixelFormat jpegxl_private_source_pixel_format_cmyk(uint32_t bits_per_sample, uint32_t alpha_bits) { SAIL_LOG_TRACE("JPEGXL: CMYK bits per sample(%u), alpha bits(%u)", bits_per_sample, alpha_bits); switch (bits_per_sample) { case 8: return alpha_bits > 0 ? SAIL_PIXEL_FORMAT_BPP40_CMYKA : SAIL_PIXEL_FORMAT_BPP32_CMYK; case 16: return alpha_bits > 0 ? SAIL_PIXEL_FORMAT_BPP80_CMYKA : SAIL_PIXEL_FORMAT_BPP64_CMYK; default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } enum SailPixelFormat jpegxl_private_source_pixel_format(uint32_t bits_per_sample, uint32_t num_color_channels, uint32_t alpha_bits) { SAIL_LOG_TRACE("JPEGXL: Bits per sample(%u), number of channels(%u), alpha bits(%u)", bits_per_sample, num_color_channels, alpha_bits); /* * Also update jpegxl_private_pixel_format_to_num_channels() with new pixel formats. */ switch (num_color_channels) { case 1: { switch (bits_per_sample) { case 8: return alpha_bits > 0 ? SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA : SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; case 16: return alpha_bits > 0 ? SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA : SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE; default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } case 3: { switch (bits_per_sample) { case 8: return alpha_bits > 0 ? SAIL_PIXEL_FORMAT_BPP32_RGBA : SAIL_PIXEL_FORMAT_BPP24_RGB; case 16: return alpha_bits > 0 ? SAIL_PIXEL_FORMAT_BPP64_RGBA : SAIL_PIXEL_FORMAT_BPP48_RGB; default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } enum SailPixelFormat jpegxl_private_source_pixel_format_to_output(enum SailPixelFormat pixel_format) { switch(pixel_format) { case SAIL_PIXEL_FORMAT_BPP32_CMYK: return SAIL_PIXEL_FORMAT_BPP24_RGB; case SAIL_PIXEL_FORMAT_BPP64_CMYK: return SAIL_PIXEL_FORMAT_BPP48_RGB; case SAIL_PIXEL_FORMAT_BPP40_CMYKA: return SAIL_PIXEL_FORMAT_BPP32_RGBA; case SAIL_PIXEL_FORMAT_BPP80_CMYKA: return SAIL_PIXEL_FORMAT_BPP64_RGBA; default: { return pixel_format; } } } unsigned jpegxl_private_pixel_format_to_num_channels(enum SailPixelFormat pixel_format) { switch(pixel_format) { case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: return 1; case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: return 2; case SAIL_PIXEL_FORMAT_BPP24_RGB: case SAIL_PIXEL_FORMAT_BPP48_RGB: return 3; case SAIL_PIXEL_FORMAT_BPP32_RGBA: case SAIL_PIXEL_FORMAT_BPP64_RGBA: return 4; default: { return 0; } } } JxlDataType jpegxl_private_pixel_format_to_jxl_data_type(enum SailPixelFormat pixel_format) { switch(pixel_format) { case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP24_RGB: case SAIL_PIXEL_FORMAT_BPP32_RGBA: return JXL_TYPE_UINT8; case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP48_RGB: case SAIL_PIXEL_FORMAT_BPP64_RGBA: return JXL_TYPE_UINT16; default: { return JXL_TYPE_UINT8; } } } sail_status_t jpegxl_private_fetch_iccp(JxlDecoder *decoder, struct sail_iccp **iccp) { size_t icc_size; if (JxlDecoderGetICCProfileSize(decoder, #if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0, 9, 0) /* unused */ NULL, #endif JXL_COLOR_PROFILE_TARGET_DATA, &icc_size) != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to get ICC size"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } struct sail_iccp *iccp_local; SAIL_TRY(sail_alloc_iccp_for_data((unsigned)icc_size, &iccp_local)); if (JxlDecoderGetColorAsICCProfile(decoder, #if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0, 9, 0) /* unused */ NULL, #endif JXL_COLOR_PROFILE_TARGET_DATA, iccp_local->data, iccp_local->size) != JXL_DEC_SUCCESS) { sail_destroy_iccp(iccp_local); SAIL_LOG_ERROR("JPEGXL: Failed to get ICC profile"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } *iccp = iccp_local; return SAIL_OK; } sail_status_t jpegxl_private_read_more_data(struct sail_io *io, JxlDecoder *decoder, unsigned char *buffer, size_t buffer_size) { size_t remaining = JxlDecoderReleaseInput(decoder); if (remaining > 0) { memmove(buffer, buffer + buffer_size - remaining, remaining); } size_t bytes_read; SAIL_TRY(io->tolerant_read(io->stream, buffer + remaining, buffer_size - remaining, &bytes_read)); if (bytes_read == 0) { JxlDecoderCloseInput(decoder); return SAIL_OK; } if (JxlDecoderSetInput(decoder, buffer, bytes_read + remaining) != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to set input buffer"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } sail_status_t jpegxl_private_fetch_special_properties(const JxlBasicInfo *basic_info, struct sail_hash_map *special_properties) { struct sail_variant *variant; SAIL_TRY(sail_alloc_variant(&variant)); SAIL_LOG_TRACE("JPEGXL: bits_per_sample(%u)", basic_info->bits_per_sample); sail_set_variant_unsigned_int(variant, basic_info->bits_per_sample); sail_put_hash_map(special_properties, "jpegxl-bits-per-sample", variant); SAIL_LOG_TRACE("JPEGXL: exponent_bits_per_sample(%u)", basic_info->exponent_bits_per_sample); sail_set_variant_unsigned_int(variant, basic_info->exponent_bits_per_sample); sail_put_hash_map(special_properties, "jpegxl-exponent-bits-per-sample", variant); SAIL_LOG_TRACE("JPEGXL: intensity_target(%.1f)", basic_info->intensity_target); sail_set_variant_float(variant, basic_info->intensity_target); sail_put_hash_map(special_properties, "jpegxl-intensity-target", variant); SAIL_LOG_TRACE("JPEGXL: min_nits(%.1f)", basic_info->min_nits); sail_set_variant_float(variant, basic_info->min_nits); sail_put_hash_map(special_properties, "jpegxl-min-nits", variant); SAIL_LOG_TRACE("JPEGXL: relative_to_max_display(%s)", basic_info->relative_to_max_display ? "yes" : "no"); sail_set_variant_bool(variant, basic_info->relative_to_max_display); sail_put_hash_map(special_properties, "jpegxl-relative-to-max-display", variant); SAIL_LOG_TRACE("JPEGXL: linear_below(%.1f)", basic_info->linear_below); sail_set_variant_float(variant, basic_info->linear_below); sail_put_hash_map(special_properties, "jpegxl-linear-below", variant); SAIL_LOG_TRACE("JPEGXL: num_color_channels(%u)", basic_info->num_color_channels); sail_set_variant_unsigned_int(variant, basic_info->num_color_channels); sail_put_hash_map(special_properties, "jpegxl-color-channels", variant); SAIL_LOG_TRACE("JPEGXL: num_extra_channels(%u)", basic_info->num_extra_channels); sail_set_variant_unsigned_int(variant, basic_info->num_extra_channels); sail_put_hash_map(special_properties, "jpegxl-extra-channels", variant); SAIL_LOG_TRACE("JPEGXL: alpha_bits(%u)", basic_info->alpha_bits); sail_set_variant_unsigned_int(variant, basic_info->alpha_bits); sail_put_hash_map(special_properties, "jpegxl-alpha-bits", variant); SAIL_LOG_TRACE("JPEGXL: intrinsic_xsize(%u)", basic_info->intrinsic_xsize); sail_set_variant_unsigned_int(variant, basic_info->intrinsic_xsize); sail_put_hash_map(special_properties, "jpegxl-intrinsic-width", variant); SAIL_LOG_TRACE("JPEGXL: intrinsic_ysize(%u)", basic_info->intrinsic_ysize); sail_set_variant_unsigned_int(variant, basic_info->intrinsic_ysize); sail_put_hash_map(special_properties, "jpegxl-intrinsic-height", variant); sail_destroy_variant(variant); return SAIL_OK; } sail_status_t jpegxl_private_fetch_name(JxlDecoder *decoder, uint32_t name_length, struct sail_meta_data_node **meta_data_node) { struct sail_meta_data_node *meta_data_node_local = NULL; void *ptr; SAIL_TRY(sail_malloc(name_length + 1, &ptr)); char *name = ptr; if (JxlDecoderGetFrameName(decoder, name, name_length + 1) != JXL_DEC_SUCCESS) { sail_free(name); SAIL_LOG_ERROR("JPEGXL: Failed to get frame name"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_node(&meta_data_node_local), /* cleanup */ sail_free(name)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_NAME, &meta_data_node_local->meta_data), /* cleanup */ sail_free(name), sail_destroy_meta_data_node(meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_set_variant_shallow_string(meta_data_node_local->meta_data->value, name), /* cleanup */ sail_free(name), sail_destroy_meta_data_node(meta_data_node_local)); *meta_data_node = meta_data_node_local; return SAIL_OK; } sail_status_t jpegxl_private_fetch_metadata(JxlDecoder *decoder, struct sail_meta_data_node **meta_data_node) { JxlBoxType type; if (JxlDecoderGetBoxType(decoder, type, JXL_FALSE) != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to get box type"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } SAIL_LOG_TRACE("JPEGXL: Box %c%c%c%c", type[0], type[1], type[2], type[3]); enum SailMetaData meta_data; if (strncmp(type, "Exif", 4) == 0) { meta_data = SAIL_META_DATA_EXIF; } else if (strncmp(type, "xml ", 4) == 0) { meta_data = SAIL_META_DATA_XMP; } else if (strncmp(type, "jumb", 4) == 0) { meta_data = SAIL_META_DATA_JUMBF; } else { return SAIL_OK; } uint64_t size; if (JxlDecoderGetBoxSizeRaw(decoder, &size) != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to get box size"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } void *data; SAIL_TRY(sail_malloc(size, &data)); struct sail_meta_data_node *meta_data_node_local; SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_node(&meta_data_node_local), /* cleanup */ sail_free(data)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(meta_data, &meta_data_node_local->meta_data), /* cleanup */ sail_free(data), sail_destroy_meta_data_node(meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_set_variant_shallow_data(meta_data_node_local->meta_data->value, data, size), /* cleanup */ sail_free(data), sail_destroy_meta_data_node(meta_data_node_local)); JxlDecoderReleaseBoxBuffer(decoder); JxlDecoderSetBoxBuffer(decoder, data, size); *meta_data_node = meta_data_node_local; return SAIL_OK; } sail-0.9.8/src/sail-codecs/jpegxl/helpers.h000066400000000000000000000054631475535176100205670ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_JPEGXL_HELPERS_H #define SAIL_JPEGXL_HELPERS_H #include #include #include #include #include #include struct sail_hash_map; struct sail_iccp; struct sail_io; struct sail_meta_data_node; SAIL_HIDDEN bool jpegxl_private_is_cmyk(JxlDecoder *decoder, uint32_t num_extra_channels); SAIL_HIDDEN enum SailPixelFormat jpegxl_private_source_pixel_format_cmyk(uint32_t bits_per_sample, uint32_t alpha_bits); SAIL_HIDDEN enum SailPixelFormat jpegxl_private_source_pixel_format(uint32_t bits_per_sample, uint32_t num_color_channels, uint32_t alpha_bits); SAIL_HIDDEN enum SailPixelFormat jpegxl_private_source_pixel_format_to_output(enum SailPixelFormat pixel_format); SAIL_HIDDEN unsigned jpegxl_private_pixel_format_to_num_channels(enum SailPixelFormat pixel_format); SAIL_HIDDEN JxlDataType jpegxl_private_pixel_format_to_jxl_data_type(enum SailPixelFormat pixel_format); SAIL_HIDDEN sail_status_t jpegxl_private_fetch_iccp(JxlDecoder *decoder, struct sail_iccp **iccp); SAIL_HIDDEN sail_status_t jpegxl_private_read_more_data(struct sail_io *io, JxlDecoder *decoder, unsigned char *buffer, size_t buffer_size); SAIL_HIDDEN sail_status_t jpegxl_private_fetch_special_properties(const JxlBasicInfo *basic_info, struct sail_hash_map *special_properties); SAIL_HIDDEN sail_status_t jpegxl_private_fetch_name(JxlDecoder *decoder, uint32_t name_length, struct sail_meta_data_node **meta_data_node); SAIL_HIDDEN sail_status_t jpegxl_private_fetch_metadata(JxlDecoder *decoder, struct sail_meta_data_node **meta_data_node); #endif sail-0.9.8/src/sail-codecs/jpegxl/jpegxl.c000066400000000000000000000426641475535176100204150ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include /* size_t */ #include #include #include #include #include #include #include "helpers.h" #include "memory.h" /* * Codec-specific state. */ struct jpegxl_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; struct sail_source_image *source_image; bool libjxl_success; bool frame_header_seen; JxlBasicInfo *basic_info; JxlMemoryManager *memory_manager; void *runner; JxlDecoder *decoder; /* For progressive reading. */ unsigned char *buffer; size_t buffer_size; }; static sail_status_t alloc_jpegxl_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct jpegxl_state **jpegxl_state) { void *ptr; /* JxlMemoryManager */ SAIL_TRY(sail_malloc(sizeof(JxlMemoryManager), &ptr)); JxlMemoryManager *memory_manager = ptr; *memory_manager = (JxlMemoryManager) { .opaque = NULL, .alloc = jpegxl_private_alloc_func, .free = jpegxl_private_free_func, }; /* buffer */ const size_t buffer_size = 8192; void *buffer; SAIL_TRY_OR_CLEANUP(sail_malloc(buffer_size, &buffer), /* on error */ sail_free(memory_manager)); /* jpegxl_state */ SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(struct jpegxl_state), &ptr), /* on error */ sail_free(buffer), sail_free(memory_manager)); *jpegxl_state = ptr; **jpegxl_state = (struct jpegxl_state) { .io = io, .load_options = load_options, .save_options = save_options, .source_image = NULL, .libjxl_success = false, .frame_header_seen = false, .basic_info = NULL, .memory_manager = memory_manager, .runner = NULL, .decoder = NULL, .buffer = buffer, .buffer_size = buffer_size, }; return SAIL_OK; } static void destroy_jpegxl_state(struct jpegxl_state *jpegxl_state) { if (jpegxl_state == NULL) { return; } sail_destroy_source_image(jpegxl_state->source_image); sail_free(jpegxl_state->basic_info); sail_free(jpegxl_state->memory_manager); JxlResizableParallelRunnerDestroy(jpegxl_state->runner); JxlDecoderCloseInput(jpegxl_state->decoder); JxlDecoderDestroy(jpegxl_state->decoder); sail_free(jpegxl_state->buffer); sail_free(jpegxl_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_jpegxl(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct jpegxl_state *jpegxl_state; SAIL_TRY(alloc_jpegxl_state(io, load_options, NULL, &jpegxl_state)); *state = jpegxl_state; /* Init decoder. */ jpegxl_state->runner = JxlResizableParallelRunnerCreate(jpegxl_state->memory_manager); jpegxl_state->decoder = JxlDecoderCreate(jpegxl_state->memory_manager); if (JxlDecoderSetCoalescing(jpegxl_state->decoder, JXL_TRUE) != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to set coalescing"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (JxlDecoderSubscribeEvents(jpegxl_state->decoder, JXL_DEC_BASIC_INFO | JXL_DEC_BOX | JXL_DEC_COLOR_ENCODING | JXL_DEC_FRAME | JXL_DEC_FULL_IMAGE) != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to subscribe to decoder events"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (JxlDecoderSetParallelRunner(jpegxl_state->decoder, JxlResizableParallelRunner, jpegxl_state->runner) != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to set parallel runner"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_jpegxl(void *state, struct sail_image **image) { struct jpegxl_state *jpegxl_state = state; if (jpegxl_state->libjxl_success) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } struct sail_image *image_local = NULL; SAIL_TRY(sail_alloc_image(&image_local)); struct sail_meta_data_node **last_meta_data_node = &image_local->meta_data_node; for (JxlDecoderStatus status = jpegxl_state->frame_header_seen ? JXL_DEC_FRAME : JxlDecoderProcessInput(jpegxl_state->decoder); status != JXL_DEC_NEED_IMAGE_OUT_BUFFER; status = JxlDecoderProcessInput(jpegxl_state->decoder)) { switch (status) { case JXL_DEC_ERROR: { sail_destroy_image(image_local); SAIL_LOG_ERROR("JPEGXL: Decoder error"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } case JXL_DEC_NEED_MORE_INPUT: { SAIL_TRY_OR_CLEANUP(jpegxl_private_read_more_data(jpegxl_state->io, jpegxl_state->decoder, jpegxl_state->buffer, jpegxl_state->buffer_size), /* cleanup */ sail_destroy_image(image_local)); break; } case JXL_DEC_BASIC_INFO: { void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(JxlBasicInfo), &ptr), /* cleanup */ sail_destroy_image(image_local)); jpegxl_state->basic_info = ptr; if (JxlDecoderGetBasicInfo(jpegxl_state->decoder, jpegxl_state->basic_info) != JXL_DEC_SUCCESS) { sail_destroy_image(image_local); SAIL_LOG_ERROR("JPEGXL: Failed to get image info"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Source image. */ SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&jpegxl_state->source_image), /* cleanup */ sail_destroy_image(image_local)); if (jpegxl_private_is_cmyk(jpegxl_state->decoder, jpegxl_state->basic_info->num_extra_channels)) { jpegxl_state->source_image->pixel_format = jpegxl_private_source_pixel_format_cmyk( jpegxl_state->basic_info->bits_per_sample, jpegxl_state->basic_info->alpha_bits); } else { jpegxl_state->source_image->pixel_format = jpegxl_private_source_pixel_format(jpegxl_state->basic_info->bits_per_sample, jpegxl_state->basic_info->num_color_channels, jpegxl_state->basic_info->alpha_bits); } jpegxl_state->source_image->compression = SAIL_COMPRESSION_UNKNOWN; /* Special properties. */ if (jpegxl_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { if (jpegxl_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY_OR_CLEANUP(sail_alloc_hash_map(&jpegxl_state->source_image->special_properties), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(jpegxl_private_fetch_special_properties( jpegxl_state->basic_info, jpegxl_state->source_image->special_properties), /* cleanup*/ sail_destroy_image(image_local)); } } SAIL_LOG_TRACE("JPEGXL: Animation(%s)", jpegxl_state->basic_info->have_animation ? "yes" : "no"); if (jpegxl_state->basic_info->have_animation) { SAIL_LOG_TRACE("JPEGXL: Animation parameters: num(%u), denom(%u), loops(%u)", jpegxl_state->basic_info->animation.tps_numerator, jpegxl_state->basic_info->animation.tps_denominator, jpegxl_state->basic_info->animation.num_loops); } JxlResizableParallelRunnerSetThreads( jpegxl_state->runner, JxlResizableParallelRunnerSuggestThreads(jpegxl_state->basic_info->xsize, jpegxl_state->basic_info->ysize)); break; } case JXL_DEC_FRAME: { JxlFrameHeader frame_header; if (JxlDecoderGetFrameHeader(jpegxl_state->decoder, &frame_header) != JXL_DEC_SUCCESS) { sail_destroy_image(image_local); SAIL_LOG_ERROR("JPEGXL: Failed to get frame header"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (jpegxl_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_copy_source_image(jpegxl_state->source_image, &image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); } if (jpegxl_state->load_options->options & SAIL_OPTION_META_DATA) { if (frame_header.name_length > 0) { SAIL_TRY_OR_CLEANUP(jpegxl_private_fetch_name(jpegxl_state->decoder, frame_header.name_length, last_meta_data_node), /* cleanup*/ sail_destroy_image(image_local)); last_meta_data_node = &(*last_meta_data_node)->next; } } image_local->width = jpegxl_state->basic_info->xsize; image_local->height = jpegxl_state->basic_info->ysize; image_local->pixel_format = jpegxl_private_source_pixel_format_to_output(jpegxl_state->source_image->pixel_format); image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); if (jpegxl_state->basic_info->have_animation) { float ms = frame_header.duration * 1000.f * jpegxl_state->basic_info->animation.tps_denominator / jpegxl_state->basic_info->animation.tps_numerator; image_local->delay = (int)ms; SAIL_LOG_TRACE("JPEGXL: Frame delay(%d) ms.", image_local->delay); } break; } case JXL_DEC_BOX: { if (jpegxl_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY_OR_CLEANUP(jpegxl_private_fetch_metadata(jpegxl_state->decoder, last_meta_data_node), /* cleanup*/ sail_destroy_image(image_local)); if (*last_meta_data_node != NULL) { last_meta_data_node = &(*last_meta_data_node)->next; } } break; } case JXL_DEC_COLOR_ENCODING: { SAIL_TRY_OR_CLEANUP(jpegxl_private_fetch_iccp(jpegxl_state->decoder, &image_local->iccp), /* cleanup */ sail_destroy_image(image_local)); break; } case JXL_DEC_SUCCESS: { sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } default: { sail_destroy_image(image_local); SAIL_LOG_ERROR("JPEGXL: Unexpected decoder status %u", status); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_jpegxl(void *state, struct sail_image *image) { struct jpegxl_state *jpegxl_state = state; JxlPixelFormat format = { .num_channels = jpegxl_private_pixel_format_to_num_channels(image->pixel_format), .data_type = jpegxl_private_pixel_format_to_jxl_data_type(image->pixel_format), .endianness = JXL_NATIVE_ENDIAN, .align = 0 }; JxlDecoderStatus status = JxlDecoderSetImageOutBuffer( jpegxl_state->decoder, &format, image->pixels, image->bytes_per_line * image->height); if (status != JXL_DEC_SUCCESS) { SAIL_LOG_ERROR("JPEGXL: Failed to set output buffer. Error: %u", status); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } jpegxl_state->frame_header_seen = false; struct sail_meta_data_node **last_meta_data_node = &image->meta_data_node; for (status = JxlDecoderProcessInput(jpegxl_state->decoder); !jpegxl_state->frame_header_seen && !jpegxl_state->libjxl_success; status = JxlDecoderProcessInput(jpegxl_state->decoder)) { switch (status) { case JXL_DEC_ERROR: { SAIL_LOG_ERROR("JPEGXL: Decoder error"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } case JXL_DEC_NEED_MORE_INPUT: { SAIL_TRY(jpegxl_private_read_more_data(jpegxl_state->io, jpegxl_state->decoder, jpegxl_state->buffer, jpegxl_state->buffer_size)); break; } case JXL_DEC_FULL_IMAGE: { break; } case JXL_DEC_FRAME: { jpegxl_state->frame_header_seen = true; break; } case JXL_DEC_BOX: { if (jpegxl_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY(jpegxl_private_fetch_metadata(jpegxl_state->decoder, last_meta_data_node)); if (*last_meta_data_node != NULL) { last_meta_data_node = &(*last_meta_data_node)->next; } } break; } case JXL_DEC_SUCCESS: { jpegxl_state->libjxl_success = true; break; } default: { SAIL_LOG_ERROR("JPEGXL: Unexpected decoder status %u", status); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_jpegxl(void **state) { struct jpegxl_state *jpegxl_state = *state; *state = NULL; destroy_jpegxl_state(jpegxl_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_jpegxl(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_jpegxl(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_jpegxl(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_jpegxl(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/jpegxl/jpegxl.codec.info.in000066400000000000000000000007071475535176100225770ustar00rootroot00000000000000# JPEGXL codec information # [codec] layout=8 version=0.3.1 priority=MEDIUM name=JPEGXL description=JPEG XL magic-numbers=FF 0A;00 00 00 0C 4A 58 4C 20 0D 0A 87 0A extensions=jxl mime-types=image/jxl [load-features] features=STATIC;META-DATA;ICCP;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/jpegxl/jpegxl.png000066400000000000000000000004051475535176100207420ustar00rootroot00000000000000PNG  IHDRRgAMA aPLTEEEELLL0`tRNS@fbKGDH pHYs  tIME  "^TAPIDATcPc̙IPd( B1ai fL͜l7d)d&;@"AAsiIENDB`sail-0.9.8/src/sail-codecs/jpegxl/memory.c000066400000000000000000000027451475535176100204300ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "memory.h" void *jpegxl_private_alloc_func(void *opaque, size_t size) { (void)opaque; return sail_malloc_std_signature(size); } void jpegxl_private_free_func(void *opaque, void *address) { (void)opaque; sail_free(address); } sail-0.9.8/src/sail-codecs/jpegxl/memory.h000066400000000000000000000027651475535176100204370ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_JPEGXL_MEMORY_H #define SAIL_JPEGXL_MEMORY_H #include /* We want to allocate/free with sail_malloc()/sail_free(). */ SAIL_HIDDEN void *jpegxl_private_alloc_func(void *opaque, size_t size); SAIL_HIDDEN void jpegxl_private_free_func(void *opaque, void *address); #endif sail-0.9.8/src/sail-codecs/pcx/000077500000000000000000000000001475535176100162455ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/pcx/CMakeLists.txt000066400000000000000000000001431475535176100210030ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME pcx SOURCES helpers.h helpers.c pcx.c ICON pcx.png) sail-0.9.8/src/sail-codecs/pcx/helpers.c000066400000000000000000000163011475535176100200540ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include "helpers.h" /* 256-color palette signature. */ static const unsigned SAIL_PCX_PALETTE_SIGNATURE = 0x0C; static const unsigned char SAIL_PCX_MONO_PALETTE[] = { 0, 0, 0, 255, 255, 255 }; sail_status_t pcx_private_read_header(struct sail_io *io, struct SailPcxHeader *header) { SAIL_TRY(io->strict_read(io->stream, &header->id, sizeof(header->id))); SAIL_TRY(io->strict_read(io->stream, &header->version, sizeof(header->version))); SAIL_TRY(io->strict_read(io->stream, &header->encoding, sizeof(header->encoding))); SAIL_TRY(io->strict_read(io->stream, &header->bits_per_plane, sizeof(header->bits_per_plane))); SAIL_TRY(io->strict_read(io->stream, &header->xmin, sizeof(header->xmin))); SAIL_TRY(io->strict_read(io->stream, &header->ymin, sizeof(header->ymin))); SAIL_TRY(io->strict_read(io->stream, &header->xmax, sizeof(header->xmax))); SAIL_TRY(io->strict_read(io->stream, &header->ymax, sizeof(header->ymax))); SAIL_TRY(io->strict_read(io->stream, &header->hdpi, sizeof(header->hdpi))); SAIL_TRY(io->strict_read(io->stream, &header->vdpi, sizeof(header->vdpi))); SAIL_TRY(io->strict_read(io->stream, header->palette, sizeof(header->palette))); SAIL_TRY(io->strict_read(io->stream, &header->reserved, sizeof(header->reserved))); SAIL_TRY(io->strict_read(io->stream, &header->planes, sizeof(header->planes))); SAIL_TRY(io->strict_read(io->stream, &header->bytes_per_line, sizeof(header->bytes_per_line))); SAIL_TRY(io->strict_read(io->stream, &header->palette_info, sizeof(header->palette_info))); SAIL_TRY(io->strict_read(io->stream, &header->hscreen_size, sizeof(header->hscreen_size))); SAIL_TRY(io->strict_read(io->stream, &header->vscreen_size, sizeof(header->vscreen_size))); SAIL_TRY(io->strict_read(io->stream, header->filler, sizeof(header->filler))); return SAIL_OK; } sail_status_t pcx_private_sail_pixel_format(unsigned bits_per_plane, unsigned planes, enum SailPixelFormat *result) { switch (planes) { case 1: { switch (bits_per_plane) { case 1: *result = SAIL_PIXEL_FORMAT_BPP1_INDEXED; return SAIL_OK; case 4: *result = SAIL_PIXEL_FORMAT_BPP4_INDEXED; return SAIL_OK; case 8: *result = SAIL_PIXEL_FORMAT_BPP8_INDEXED; return SAIL_OK; } break; } case 3: { switch (bits_per_plane) { case 8: *result = SAIL_PIXEL_FORMAT_BPP24_RGB; return SAIL_OK; } break; } case 4: { switch (bits_per_plane) { case 1: *result = SAIL_PIXEL_FORMAT_BPP4_INDEXED; return SAIL_OK; case 8: *result = SAIL_PIXEL_FORMAT_BPP32_RGBA; return SAIL_OK; } break; } } SAIL_LOG_ERROR("PCX: Unsuppored combination of bits per plane(%u) and planes(%u)", bits_per_plane, planes); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } sail_status_t pcx_private_build_palette(enum SailPixelFormat pixel_format, struct sail_io *io, uint8_t palette16[48], struct sail_palette **palette) { switch (pixel_format) { case SAIL_PIXEL_FORMAT_BPP1_INDEXED: { SAIL_TRY(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, 2, palette)); memcpy((*palette)->data, SAIL_PCX_MONO_PALETTE, 6); break; } case SAIL_PIXEL_FORMAT_BPP4_INDEXED: { const int palette_colors = 16; /* 256 RGB entries. */ const int palette_size = 16 * 3; /* 256 RGB entries. */ SAIL_TRY(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, palette_colors, palette)); memcpy((*palette)->data, palette16, palette_size); break; } case SAIL_PIXEL_FORMAT_BPP8_INDEXED: { const int palette_colors = 256; /* 256 RGB entries. */ const int palette_size = 256 * 3; /* 256 RGB entries. */ /* Seek to offset. */ size_t saved_offset; SAIL_TRY(io->tell(io->stream, &saved_offset)); SAIL_TRY(io->seek(io->stream, (long)-(palette_size + 1), SEEK_END)); uint8_t signature; SAIL_TRY(io->strict_read(io->stream, &signature, sizeof(signature))); if (signature != SAIL_PCX_PALETTE_SIGNATURE) { SAIL_LOG_ERROR("PCX: Palette has invalid signature %u, must be %u", signature, SAIL_PCX_PALETTE_SIGNATURE); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } struct sail_palette *palette_local; SAIL_TRY(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, palette_colors, &palette_local)); SAIL_TRY_OR_CLEANUP(io->strict_read(io->stream, palette_local->data, palette_size), /* cleanup */ sail_destroy_palette(palette_local)); SAIL_TRY_OR_CLEANUP(io->seek(io->stream, (long)saved_offset, SEEK_SET), /* cleanup */ sail_destroy_palette(palette_local)); *palette = palette_local; break; } default: { break; } } return SAIL_OK; } sail_status_t pcx_private_read_uncompressed(struct sail_io *io, unsigned bytes_per_plane_to_read, unsigned planes, unsigned char *buffer, struct sail_image *image) { for (unsigned row = 0; row < image->height; row++) { unsigned char *target_scan = sail_scan_line(image, row); /* Read plane by plane and then merge them into the image pixels. */ for (unsigned plane = 0; plane < planes; plane++) { SAIL_TRY(io->strict_read(io->stream, buffer, bytes_per_plane_to_read)); for (unsigned column = 0; column < bytes_per_plane_to_read; column++) { *(target_scan + column * planes + plane) = *(buffer + column); } } } return SAIL_OK; } sail-0.9.8/src/sail-codecs/pcx/helpers.h000066400000000000000000000051651475535176100200670ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PCX_HELPERS_H #define SAIL_PCX_HELPERS_H #include #include #include #include enum SailPcxVersion { SAIL_PCX_V0 = 0, SAIL_PCX_V2 = 2, SAIL_PCX_V3 = 3, SAIL_PCX_V4 = 4, SAIL_PCX_V5 = 5, }; enum SailPcxEncoding { SAIL_PCX_NO_ENCODING = 0, SAIL_PCX_RLE_ENCODING = 1, }; struct SailPcxHeader { uint8_t id; uint8_t version; uint8_t encoding; uint8_t bits_per_plane; /* 1, 2, 4, 8. */ uint16_t xmin; uint16_t ymin; uint16_t xmax; uint16_t ymax; uint16_t hdpi; uint16_t vdpi; uint8_t palette[48]; uint8_t reserved; uint8_t planes; /* 1, 3, 4. */ uint16_t bytes_per_line; /* Per plane. */ uint16_t palette_info; uint16_t hscreen_size; uint16_t vscreen_size; uint8_t filler[54]; }; SAIL_HIDDEN sail_status_t pcx_private_read_header(struct sail_io *io, struct SailPcxHeader *header); SAIL_HIDDEN sail_status_t pcx_private_sail_pixel_format(unsigned bits_per_plane, unsigned planes, enum SailPixelFormat *result); SAIL_HIDDEN sail_status_t pcx_private_build_palette(enum SailPixelFormat pixel_format, struct sail_io *io, uint8_t palette16[48], struct sail_palette **palette); SAIL_HIDDEN sail_status_t pcx_private_read_uncompressed(struct sail_io *io, unsigned bytes_per_plane_to_read, unsigned planes, unsigned char *buffer, struct sail_image *image); #endif sail-0.9.8/src/sail-codecs/pcx/pcx.c000066400000000000000000000223661475535176100172140ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include "helpers.h" /* PCX signature. */ static const unsigned SAIL_PCX_SIGNATURE = 0x0A; /* RLE markers. */ static const uint8_t SAIL_PCX_RLE_MARKER = 0xC0; static const uint8_t SAIL_PCX_RLE_COUNT_MASK = 0x3F; /* * Codec-specific state. */ struct pcx_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; struct SailPcxHeader pcx_header; unsigned char *scanline_buffer; /* buffer to read a single plane scan line. */ bool frame_loaded; }; static sail_status_t alloc_pcx_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct pcx_state **pcx_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct pcx_state), &ptr)); *pcx_state = ptr; **pcx_state = (struct pcx_state) { .io = io, .load_options = load_options, .save_options = save_options, .scanline_buffer = NULL, .frame_loaded = false, }; return SAIL_OK; } static void destroy_pcx_state(struct pcx_state *pcx_state) { if (pcx_state == NULL) { return; } sail_free(pcx_state->scanline_buffer); sail_free(pcx_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_pcx(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct pcx_state *pcx_state; SAIL_TRY(alloc_pcx_state(io, load_options, NULL, &pcx_state)); *state = pcx_state; /* Read PCX header. */ SAIL_TRY(pcx_private_read_header(pcx_state->io, &pcx_state->pcx_header)); if (pcx_state->pcx_header.id != SAIL_PCX_SIGNATURE) { SAIL_LOG_ERROR("PCX: ID is %u, but must be %u", pcx_state->pcx_header.id, SAIL_PCX_SIGNATURE); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (pcx_state->pcx_header.bytes_per_line == 0) { SAIL_LOG_ERROR("PCX: Bytes per line is 0"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } SAIL_LOG_TRACE("PCX: planes(%u), bytes per line(%u), compressed(%s)", pcx_state->pcx_header.planes, pcx_state->pcx_header.bytes_per_line, (pcx_state->pcx_header.encoding == SAIL_PCX_NO_ENCODING) ? "no" : "yes"); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_pcx(void *state, struct sail_image **image) { struct pcx_state *pcx_state = state; if (pcx_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } pcx_state->frame_loaded = true; enum SailPixelFormat pixel_format; SAIL_TRY(pcx_private_sail_pixel_format( pcx_state->pcx_header.bits_per_plane, pcx_state->pcx_header.planes, &pixel_format)); struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (pcx_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = pixel_format; image_local->source_image->compression = (pcx_state->pcx_header.encoding == SAIL_PCX_NO_ENCODING) ? SAIL_COMPRESSION_NONE : SAIL_COMPRESSION_RLE; } image_local->width = pcx_state->pcx_header.xmax - pcx_state->pcx_header.xmin + 1; image_local->height = pcx_state->pcx_header.ymax - pcx_state->pcx_header.ymin + 1; image_local->pixel_format = pixel_format; image_local->bytes_per_line = pcx_state->pcx_header.bytes_per_line * pcx_state->pcx_header.planes; /* Scan line buffer to store planes so we can merge them later into individual pixels. */ void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(image_local->bytes_per_line, &ptr), /* cleanup */ sail_destroy_image(image_local)); pcx_state->scanline_buffer = ptr; /* Build palette if needed. */ SAIL_TRY_OR_CLEANUP(pcx_private_build_palette(image_local->pixel_format, pcx_state->io, pcx_state->pcx_header.palette, &image_local->palette), /* cleanup */ sail_destroy_image(image_local)); if (pcx_state->pcx_header.hdpi > 0 && pcx_state->pcx_header.vdpi > 0) { SAIL_TRY_OR_CLEANUP(sail_alloc_resolution_from_data(SAIL_RESOLUTION_UNIT_INCH, pcx_state->pcx_header.hdpi, pcx_state->pcx_header.vdpi, &image_local->resolution), /* cleanup */ sail_destroy_image(image_local)); } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_pcx(void *state, struct sail_image *image) { const struct pcx_state *pcx_state = state; if (pcx_state->pcx_header.encoding == SAIL_PCX_NO_ENCODING) { SAIL_TRY(pcx_private_read_uncompressed(pcx_state->io, pcx_state->pcx_header.bytes_per_line, pcx_state->pcx_header.planes, pcx_state->scanline_buffer, image)); } else { for (unsigned row = 0; row < image->height; row++) { unsigned buffer_offset = 0; /* Decode all planes of a single scan line. */ for (unsigned bytes = 0; bytes < image->bytes_per_line;) { uint8_t marker; SAIL_TRY(pcx_state->io->strict_read(pcx_state->io->stream, &marker, sizeof(marker))); uint8_t count; uint8_t value; /* RLE marker set. */ if ((marker & SAIL_PCX_RLE_MARKER) == SAIL_PCX_RLE_MARKER) { count = marker & SAIL_PCX_RLE_COUNT_MASK; SAIL_TRY(pcx_state->io->strict_read(pcx_state->io->stream, &value, sizeof(value))); } else { /* Pixel value. */ count = 1; value = marker; } bytes += count; memset(pcx_state->scanline_buffer + buffer_offset, value, count); buffer_offset += count; } /* Merge planes into the image pixels. */ unsigned char * const scan = sail_scan_line(image, row); for (unsigned plane = 0; plane < pcx_state->pcx_header.planes; plane++) { const unsigned buffer_plane_offset = plane * pcx_state->pcx_header.bytes_per_line; for (unsigned column = 0; column < pcx_state->pcx_header.bytes_per_line; column++) { *(scan + column * pcx_state->pcx_header.planes + plane) = *(pcx_state->scanline_buffer + buffer_plane_offset + column); } } } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_pcx(void **state) { struct pcx_state *pcx_state = *state; *state = NULL; destroy_pcx_state(pcx_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_pcx(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_pcx(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_pcx(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_pcx(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/pcx/pcx.codec.info.in000066400000000000000000000006461475535176100214030ustar00rootroot00000000000000# PCX codec information # [codec] layout=8 version=0.8.1 priority=LOW name=PCX description=Picture Exchange magic-numbers= extensions=pcx mime-types=image/x-pcx;image/vnd.zbrush.pcx [load-features] features=STATIC;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/pcx/pcx.png000066400000000000000000000003751475535176100175520ustar00rootroot00000000000000PNG  IHDRRgAMA a!PLTEEEELLL tRNS@fbKGDH pHYs  XIDATc0cժU3 c#- 0Rr0(b0/,,2 A"R^.)50]ps@MfÀW' RVIENDB`sail-0.9.8/src/sail-codecs/png/000077500000000000000000000000001475535176100162375ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/png/CMakeLists.txt000066400000000000000000000024251475535176100210020ustar00rootroot00000000000000find_package(PNG ${SAIL_CODEC_PNG_REQUIRED_OPTION}) if (NOT PNG_FOUND) return() endif() # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_dependency(PNG REQUIRED) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES PNG::PNG) # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_dependency,PNG,PNG::PNG" PARENT_SCOPE) # Check for APNG features # cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${PNG_INCLUDE_DIRS}) set(CMAKE_REQUIRED_LIBRARIES ${PNG_LIBRARIES}) check_c_source_compiles( " #include #include int main(int argc, char *argv[]) { png_get_first_frame_is_hidden(NULL, NULL); return 0; } " HAVE_APNG ) cmake_pop_check_state() # Used in .codec.info # if (HAVE_APNG) set(PNG_CODEC_INFO_EXTENSION_APNG ";apng") set(PNG_CODEC_INFO_FEATURE_ANIMATED ";ANIMATED") endif() # Common codec configuration # sail_codec(NAME png SOURCES helpers.h helpers.c io.h io.c png.c ICON png.png DEPENDENCY_INCLUDE_DIRS ${PNG_INCLUDE_DIRS} DEPENDENCY_LIBS ${PNG_LIBRARIES}) sail-0.9.8/src/sail-codecs/png/helpers.c000066400000000000000000000663601475535176100200600ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "helpers.h" /* * Private functions. */ static sail_status_t skip_raw_profile_header(const char *data, const char **start) { SAIL_CHECK_PTR(data); SAIL_CHECK_PTR(start); char key[16]; int n; char c; int bytes_consumed; /* Skip "\nexif\n 1234 " before the actual HEX-encoded data. */ #ifdef _MSC_VER if (sscanf_s(data, "%s %d %c %n", key, (unsigned)sizeof(key), &n, &c, 1, &bytes_consumed) != 3) { #else if (sscanf(data, "%s %d %c %n", key, &n, &c, &bytes_consumed) != 3) { #endif SAIL_LOG_ERROR("PNG: Failed to parse raw profile header"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } *start = data + bytes_consumed - 1; return SAIL_OK; } static sail_status_t write_raw_profile_header(char *str, size_t str_size, enum SailMetaData key, size_t hex_data_size) { SAIL_CHECK_PTR(str); const char *key_str; switch (key) { case SAIL_META_DATA_EXIF: key_str = "exif"; break; case SAIL_META_DATA_IPTC: key_str = "iptc"; break; case SAIL_META_DATA_XMP: key_str = "xmp"; break; default: { SAIL_LOG_ERROR("PNG: Cannot save '%s' meta data key as a raw profile", sail_meta_data_to_string(key)); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } } /* Write "\nexif\n 1234\n" before the actual HEX-encoded data. */ if (snprintf(str, str_size, "\n%s\n %u\n", key_str, (unsigned)hex_data_size) < 0) { SAIL_LOG_ERROR("PNG: Failed to save raw profile header"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } return SAIL_OK; } static sail_status_t hex_string_to_meta_data_node(const char *hex_str, enum SailMetaData key, struct sail_meta_data_node **meta_data_node) { const char *start; SAIL_TRY(skip_raw_profile_header(hex_str, &start)); void *data; size_t data_size; SAIL_TRY(sail_hex_string_to_data(start, &data, &data_size)); struct sail_meta_data_node *meta_data_node_local; SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_node(&meta_data_node_local), /* cleanup */ sail_free(data)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(key, &meta_data_node_local->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local), sail_free(data)); SAIL_TRY_OR_CLEANUP(sail_set_variant_data(meta_data_node_local->meta_data->value, data, data_size), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local), sail_free(data)); meta_data_node_local->meta_data->key = key; sail_free(data); *meta_data_node = meta_data_node_local; return SAIL_OK; } /* * Public functions. */ void png_private_my_error_fn(png_structp png_ptr, png_const_charp text) { (void)png_ptr; SAIL_LOG_ERROR("PNG: %s", text); } void png_private_my_warning_fn(png_structp png_ptr, png_const_charp text) { (void)png_ptr; SAIL_LOG_WARNING("PNG: %s", text); } void* png_private_my_malloc_fn(png_structp png_ptr, png_size_t size) { (void)png_ptr; return sail_malloc_std_signature(size); } void png_private_my_free_fn(png_structp png_ptr, void *ptr) { (void)png_ptr; sail_free(ptr); } enum SailPixelFormat png_private_png_color_type_to_pixel_format(int color_type, int bit_depth) { switch (color_type) { case PNG_COLOR_TYPE_GRAY: { switch (bit_depth) { case 1: return SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE; case 2: return SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE; case 4: return SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE; case 8: return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; case 16: return SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE; } break; } case PNG_COLOR_TYPE_GRAY_ALPHA: { switch (bit_depth) { case 8: return SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA; case 16: return SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA; } break; } case PNG_COLOR_TYPE_PALETTE: { switch (bit_depth) { case 1: return SAIL_PIXEL_FORMAT_BPP1_INDEXED; case 2: return SAIL_PIXEL_FORMAT_BPP2_INDEXED; case 4: return SAIL_PIXEL_FORMAT_BPP4_INDEXED; case 8: return SAIL_PIXEL_FORMAT_BPP8_INDEXED; } break; } case PNG_COLOR_TYPE_RGB: { switch (bit_depth) { case 8: return SAIL_PIXEL_FORMAT_BPP24_RGB; case 16: return SAIL_PIXEL_FORMAT_BPP48_RGB; } break; } case PNG_COLOR_TYPE_RGB_ALPHA: { switch (bit_depth) { case 8: return SAIL_PIXEL_FORMAT_BPP32_RGBA; case 16: return SAIL_PIXEL_FORMAT_BPP64_RGBA; } break; } } return SAIL_PIXEL_FORMAT_UNKNOWN; } sail_status_t png_private_pixel_format_to_png_color_type(enum SailPixelFormat pixel_format, int *color_type, int *bit_depth) { SAIL_CHECK_PTR(color_type); SAIL_CHECK_PTR(bit_depth); switch (pixel_format) { case SAIL_PIXEL_FORMAT_BPP1_INDEXED: { *color_type = PNG_COLOR_TYPE_PALETTE; *bit_depth = 1; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP2_INDEXED: { *color_type = PNG_COLOR_TYPE_PALETTE; *bit_depth = 2; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP4_INDEXED: { *color_type = PNG_COLOR_TYPE_PALETTE; *bit_depth = 4; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP8_INDEXED: { *color_type = PNG_COLOR_TYPE_PALETTE; *bit_depth = 8; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE: { *color_type = PNG_COLOR_TYPE_GRAY; *bit_depth = 1; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE: { *color_type = PNG_COLOR_TYPE_GRAY; *bit_depth = 2; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE: { *color_type = PNG_COLOR_TYPE_GRAY; *bit_depth = 4; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: { *color_type = PNG_COLOR_TYPE_GRAY; *bit_depth = 8; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: { *color_type = PNG_COLOR_TYPE_GRAY; *bit_depth = 16; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: { *color_type = PNG_COLOR_TYPE_GRAY_ALPHA; *bit_depth = 8; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: { *color_type = PNG_COLOR_TYPE_GRAY_ALPHA; *bit_depth = 16; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP24_RGB: case SAIL_PIXEL_FORMAT_BPP24_BGR: { *color_type = PNG_COLOR_TYPE_RGB; *bit_depth = 8; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP48_RGB: case SAIL_PIXEL_FORMAT_BPP48_BGR: { *color_type = PNG_COLOR_TYPE_RGB; *bit_depth = 16; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP32_RGBA: case SAIL_PIXEL_FORMAT_BPP32_BGRA: case SAIL_PIXEL_FORMAT_BPP32_ARGB: case SAIL_PIXEL_FORMAT_BPP32_ABGR: { *color_type = PNG_COLOR_TYPE_RGB_ALPHA; *bit_depth = 8; return SAIL_OK; } case SAIL_PIXEL_FORMAT_BPP64_RGBA: case SAIL_PIXEL_FORMAT_BPP64_BGRA: case SAIL_PIXEL_FORMAT_BPP64_ARGB: case SAIL_PIXEL_FORMAT_BPP64_ABGR: { *color_type = PNG_COLOR_TYPE_RGB_ALPHA; *bit_depth = 16; return SAIL_OK; } default: { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } } sail_status_t png_private_fetch_meta_data(png_structp png_ptr, png_infop info_ptr, struct sail_meta_data_node **target_meta_data_node) { SAIL_CHECK_PTR(png_ptr); SAIL_CHECK_PTR(info_ptr); SAIL_CHECK_PTR(target_meta_data_node); struct sail_meta_data_node **last_meta_data_node = target_meta_data_node; png_textp lines; int num_text; png_get_text(png_ptr, info_ptr, &lines, &num_text); for (int i = 0; i < num_text; i++) { struct sail_meta_data_node *meta_data_node; /* Legacy EXIF and friends. */ if (strcmp(lines[i].key, "Raw profile type exif") == 0) { SAIL_TRY(hex_string_to_meta_data_node(lines[i].text, SAIL_META_DATA_EXIF, &meta_data_node)); } else if (strcmp(lines[i].key, "Raw profile type iptc") == 0) { SAIL_TRY(hex_string_to_meta_data_node(lines[i].text, SAIL_META_DATA_IPTC, &meta_data_node)); } else if (strcmp(lines[i].key, "Raw profile type xmp") == 0) { SAIL_TRY(hex_string_to_meta_data_node(lines[i].text, SAIL_META_DATA_XMP, &meta_data_node)); } else { enum SailMetaData meta_data; if (strcmp(lines[i].key, "XML:com.adobe.xmp") == 0) { meta_data = SAIL_META_DATA_XMP; } else { meta_data = sail_meta_data_from_string(lines[i].key); } SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node)); if (meta_data == SAIL_META_DATA_UNKNOWN) { SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_unknown_key(lines[i].key, &meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); } else { SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(meta_data, &meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); } SAIL_TRY_OR_CLEANUP(sail_set_variant_string(meta_data_node->meta_data->value, lines[i].text), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); } *last_meta_data_node = meta_data_node; last_meta_data_node = &meta_data_node->next; } png_bytep exif; png_uint_32 exif_size; if (png_get_eXIf_1(png_ptr, info_ptr, &exif_size, &exif) != 0) { struct sail_meta_data_node *meta_data_node; SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_EXIF, &meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); SAIL_TRY_OR_CLEANUP(sail_set_variant_data(meta_data_node->meta_data->value, exif, exif_size), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); *last_meta_data_node = meta_data_node; last_meta_data_node = &meta_data_node->next; } return SAIL_OK; } sail_status_t png_private_write_meta_data(png_structp png_ptr, png_infop info_ptr, const struct sail_meta_data_node *meta_data_node) { SAIL_CHECK_PTR(png_ptr); SAIL_CHECK_PTR(info_ptr); /* Count PNG lines. */ unsigned count = 0; for (const struct sail_meta_data_node *meta_data_node_it = meta_data_node; meta_data_node_it != NULL; meta_data_node_it = meta_data_node_it->next) { count++; } if (count > 0) { void *ptr; SAIL_TRY(sail_malloc(count * sizeof(png_text), &ptr)); png_text *lines = ptr; /* Indexes in 'lines' that must be freed. 1 = free, 0 = don't free. */ SAIL_TRY(sail_malloc(count * sizeof(bool), &ptr)); int *lines_to_free = ptr; memset(lines_to_free, 0, count); unsigned index = 0; /* Build PNG lines. */ for (; meta_data_node != NULL; meta_data_node = meta_data_node->next) { const struct sail_meta_data *meta_data = meta_data_node->meta_data; if (meta_data->key == SAIL_META_DATA_EXIF) { if (meta_data->value->type == SAIL_VARIANT_TYPE_DATA) { /* Skip "Exif\0\0" if any. */ if (meta_data->value->size >= 4 && memcmp(sail_variant_to_data(meta_data->value), "Exif", 4) == 0) { SAIL_LOG_TRACE("PNG: Saving raw EXIF %u bytes long w/o header", (unsigned)meta_data->value->size - 6); png_set_eXIf_1(png_ptr, info_ptr, (png_uint_32)meta_data->value->size - 6, ((png_bytep)sail_variant_to_data(meta_data->value)) + 6); } else { SAIL_LOG_TRACE("PNG: Saving raw EXIF %u bytes long", (unsigned)meta_data->value->size); png_set_eXIf_1(png_ptr, info_ptr, (png_uint_32)meta_data->value->size, meta_data->value->value); } } else { SAIL_LOG_ERROR("PNG: EXIF meta data must have DATA type"); } } else { const char *meta_data_key = NULL; char *meta_data_value = NULL; if (meta_data->key == SAIL_META_DATA_UNKNOWN) { meta_data_key = meta_data->key_unknown; meta_data_value = (char *)meta_data->value; } else { if (meta_data->key == SAIL_META_DATA_IPTC) { meta_data_key = "Raw profile type iptc"; char raw_profile_header[64]; SAIL_TRY_OR_EXECUTE(write_raw_profile_header(raw_profile_header, sizeof(raw_profile_header), meta_data->key, (meta_data->value->size - 1) * 2), /* on error */ continue); char *hex_string; SAIL_TRY_OR_EXECUTE(sail_data_to_hex_string(sail_variant_to_data(meta_data->value), meta_data->value->size, &hex_string), /* on error */ continue); SAIL_TRY_OR_EXECUTE(sail_concat(&meta_data_value, 2, raw_profile_header, hex_string), /* on error */ sail_free(hex_string); continue); sail_free(hex_string); lines_to_free[index] = 1; } else { meta_data_key = sail_meta_data_to_string(meta_data->key); meta_data_value = sail_variant_to_string(meta_data->value); } } lines[index].compression = PNG_TEXT_COMPRESSION_zTXt; lines[index].key = (char *)meta_data_key; lines[index].text = meta_data_value; index++; } } png_set_text(png_ptr, info_ptr, lines, index); /* Cleanup. */ for (unsigned i = 0; i < index; i++) { if (lines_to_free[i] == 1) { sail_free(lines[i].text); } } sail_free(lines_to_free); sail_free(lines); } return SAIL_OK; } sail_status_t png_private_fetch_iccp(png_structp png_ptr, png_infop info_ptr, struct sail_iccp **iccp) { SAIL_CHECK_PTR(png_ptr); SAIL_CHECK_PTR(info_ptr); SAIL_CHECK_PTR(iccp); char *name; int compression; png_bytep data; unsigned data_size; bool ok = png_get_iCCP(png_ptr, info_ptr, &name, &compression, &data, &data_size) == PNG_INFO_iCCP; if (ok) { SAIL_TRY(sail_alloc_iccp_from_data(data, data_size, iccp)); SAIL_LOG_TRACE("PNG: Found ICC profile '%s' %u bytes long", name, data_size); } else { SAIL_LOG_TRACE("PNG: ICC profile is not found"); } return SAIL_OK; } sail_status_t png_private_fetch_palette(png_structp png_ptr, png_infop info_ptr, struct sail_palette **palette) { SAIL_CHECK_PTR(png_ptr); SAIL_CHECK_PTR(info_ptr); SAIL_CHECK_PTR(palette); png_colorp png_palette; int png_palette_color_count; if (png_get_PLTE(png_ptr, info_ptr, &png_palette, &png_palette_color_count) == 0) { SAIL_LOG_ERROR("PNG: The indexed image has no palette"); SAIL_LOG_AND_RETURN(SAIL_ERROR_MISSING_PALETTE); } png_bytep transparency = NULL; int transparency_length = 0; #ifdef PNG_tRNS_SUPPORTED if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) != 0) { if (png_get_tRNS(png_ptr, info_ptr, &transparency, &transparency_length, NULL) == 0) { SAIL_LOG_ERROR("PNG: The image has invalid transparency block"); SAIL_LOG_AND_RETURN(SAIL_ERROR_MISSING_PALETTE); } } #endif if (transparency == NULL) { SAIL_TRY(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, png_palette_color_count, palette)); } else { SAIL_TRY(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP32_RGBA, png_palette_color_count, palette)); } unsigned char *palette_ptr = (*palette)->data; for (int i = 0; i < png_palette_color_count; i++) { *palette_ptr++ = png_palette[i].red; *palette_ptr++ = png_palette[i].green; *palette_ptr++ = png_palette[i].blue; if (transparency != NULL) { *palette_ptr++ = (i < transparency_length) ? transparency[i] : 255; } } return SAIL_OK; } #ifdef PNG_APNG_SUPPORTED sail_status_t png_private_blend_source(void *dst_raw, unsigned dst_offset, const void *src_raw, unsigned src_width, unsigned bytes_per_pixel) { SAIL_CHECK_PTR(dst_raw); SAIL_CHECK_PTR(src_raw); memcpy((uint8_t *)dst_raw + dst_offset * bytes_per_pixel, src_raw, (size_t)src_width * bytes_per_pixel); return SAIL_OK; } sail_status_t png_private_blend_over(void *dst_raw, unsigned dst_offset, const void *src_raw, unsigned width, enum SailPixelFormat pixel_format) { SAIL_CHECK_PTR(src_raw); SAIL_CHECK_PTR(dst_raw); const unsigned bytes_per_pixel = sail_bits_per_pixel(pixel_format) / 8; switch (pixel_format) { case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: { const uint8_t *src = src_raw; uint8_t *dst = (uint8_t *)dst_raw + dst_offset * bytes_per_pixel; while (width--) { const double src_a = *(src+1) / 255.0; const double dst_a = *(dst+1) / 255.0; *dst = (uint8_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint8_t)((src_a + (1-src_a) * dst_a) * 255); src++; dst++; } break; } case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: { const uint16_t *src = src_raw; uint16_t *dst = (uint16_t *)((uint8_t *)dst_raw + dst_offset * bytes_per_pixel); while (width--) { const double src_a = *(src+1) / 65535.0; const double dst_a = *(dst+1) / 65535.0; *dst = (uint16_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint16_t)((src_a + (1-src_a) * dst_a) * 65535); src++; dst++; } break; } case SAIL_PIXEL_FORMAT_BPP32_RGBA: { const uint8_t *src = src_raw; uint8_t *dst = (uint8_t *)dst_raw + dst_offset * bytes_per_pixel; while (width--) { const double src_a = *(src+3) / 255.0; const double dst_a = *(dst+3) / 255.0; *dst = (uint8_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint8_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint8_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint8_t)((src_a + (1-src_a) * dst_a) * 255); src++; dst++; } break; } case SAIL_PIXEL_FORMAT_BPP64_RGBA: { const uint16_t *src = src_raw; uint16_t *dst = (uint16_t *)((uint8_t *)dst_raw + dst_offset * bytes_per_pixel); while (width--) { const double src_a = *(src+3) / 65535.0; const double dst_a = *(dst+3) / 65535.0; *dst = (uint16_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint16_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint16_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint16_t)((src_a + (1-src_a) * dst_a) * 65535); src++; dst++; } break; } default: { SAIL_LOG_ERROR("Pixel format %s is not supported for blending operations", sail_pixel_format_to_string(pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } return SAIL_OK; } sail_status_t png_private_skip_hidden_frame(unsigned bytes_per_line, unsigned height, png_structp png_ptr, png_infop info_ptr, void **row) { SAIL_CHECK_PTR(png_ptr); SAIL_CHECK_PTR(info_ptr); SAIL_CHECK_PTR(row); SAIL_TRY(sail_malloc(bytes_per_line, row)); png_read_frame_head(png_ptr, info_ptr); for (unsigned i = 0; i < height; i++) { png_read_row(png_ptr, (png_bytep)(*row), NULL); } sail_free(*row); *row = NULL; return SAIL_OK; } sail_status_t png_private_alloc_rows(png_bytep **A, unsigned row_length, unsigned height) { void *ptr; SAIL_TRY(sail_malloc(height * sizeof(png_bytep), &ptr)); *A = ptr; for (unsigned row = 0; row < height; row++) { (*A)[row] = NULL; } for (unsigned row = 0; row < height; row++) { SAIL_TRY(sail_malloc(row_length, &ptr)); (*A)[row] = ptr; /* Set to the transparent background as per the APNG spec. */ memset((*A)[row], 0, row_length); } return SAIL_OK; } void png_private_destroy_rows(png_bytep **A, unsigned height) { if (*A == NULL) { return; } for (unsigned row = 0; row < height; row++) { sail_free((*A)[row]); } sail_free(*A); *A = NULL; } sail_status_t png_private_store_num_frames_and_plays(png_structp png_ptr, png_infop info_ptr, struct sail_hash_map *special_properties) { struct sail_variant *variant; SAIL_TRY(sail_alloc_variant(&variant)); const unsigned num_frames = png_get_num_frames(png_ptr, info_ptr); const unsigned num_plays = png_get_num_plays(png_ptr, info_ptr); SAIL_LOG_TRACE("PNG: Number of frames: %u", num_frames); sail_set_variant_unsigned_int(variant, num_frames); sail_put_hash_map(special_properties, "apng-frames", variant); SAIL_LOG_TRACE("PNG: Number of plays: %u", num_plays); sail_set_variant_unsigned_int(variant, num_plays); sail_put_hash_map(special_properties, "apng-plays", variant); sail_destroy_variant(variant); return SAIL_OK; } #endif sail_status_t png_private_fetch_resolution(png_structp png_ptr, png_infop info_ptr, struct sail_resolution **resolution) { SAIL_CHECK_PTR(resolution); int unit = PNG_RESOLUTION_UNKNOWN; unsigned x = 0, y = 0; png_get_pHYs(png_ptr, info_ptr, &x, &y, &unit); /* Resolution information is not valid. */ if (x == 0 && y == 0) { return SAIL_OK; } SAIL_TRY(sail_alloc_resolution(resolution)); switch (unit) { case PNG_RESOLUTION_METER: { (*resolution)->unit = SAIL_RESOLUTION_UNIT_METER; break; } } (*resolution)->x = (float)x; (*resolution)->y = (float)y; return SAIL_OK; } sail_status_t png_private_write_resolution(png_structp png_ptr, png_infop info_ptr, const struct sail_resolution *resolution) { /* Not an error. */ if (resolution == NULL) { return SAIL_OK; } int unit; /* PNG supports just meters. */ switch (resolution->unit) { case SAIL_RESOLUTION_UNIT_METER: { unit = PNG_RESOLUTION_METER; break; } default: { unit = PNG_RESOLUTION_UNKNOWN; break; } } png_set_pHYs(png_ptr, info_ptr, (unsigned)resolution->x, (unsigned)resolution->y, unit); return SAIL_OK; } bool png_private_tuning_key_value_callback(const char *key, const struct sail_variant *value, void *user_data) { png_structp png_ptr = user_data; if (strcmp(key, "png-filter") == 0) { if (value->type == SAIL_VARIANT_TYPE_STRING) { const char *str_value = sail_variant_to_string(value); int filters = 0; struct sail_string_node *string_node_filters; SAIL_TRY_OR_EXECUTE(sail_split_into_string_node_chain(str_value, &string_node_filters), /* on error */ return true); for (const struct sail_string_node *node = string_node_filters; node != NULL; node = node->next) { if (strcmp(node->string, "none") == 0) { SAIL_LOG_TRACE("PNG: Adding NONE filter"); filters |= PNG_FILTER_NONE; } else if (strcmp(node->string, "sub") == 0) { SAIL_LOG_TRACE("PNG: Adding SUB filter"); filters |= PNG_FILTER_SUB; } else if (strcmp(node->string, "up") == 0) { SAIL_LOG_TRACE("PNG: Adding UP filter"); filters |= PNG_FILTER_UP; } else if (strcmp(node->string, "avg") == 0) { SAIL_LOG_TRACE("PNG: Adding AVG filter"); filters |= PNG_FILTER_AVG; } else if (strcmp(node->string, "paeth") == 0) { SAIL_LOG_TRACE("PNG: Adding PAETH filter"); filters |= PNG_FILTER_PAETH; } } sail_destroy_string_node_chain(string_node_filters); png_set_filter(png_ptr, 0, filters); } } return true; } sail-0.9.8/src/sail-codecs/png/helpers.h000066400000000000000000000075171475535176100200640ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PNG_HELPERS_H #define SAIL_PNG_HELPERS_H #include #include #include #include #include #include struct sail_hash_map; struct sail_iccp; struct sail_meta_data_node; struct sail_palette; struct sail_resolution; struct sail_variant; SAIL_HIDDEN void png_private_my_error_fn(png_structp png_ptr, png_const_charp text); SAIL_HIDDEN void png_private_my_warning_fn(png_structp png_ptr, png_const_charp text); SAIL_HIDDEN void* png_private_my_malloc_fn(png_structp png_ptr, png_size_t size); SAIL_HIDDEN void png_private_my_free_fn(png_structp png_ptr, void *ptr); SAIL_HIDDEN enum SailPixelFormat png_private_png_color_type_to_pixel_format(int color_type, int bit_depth); SAIL_HIDDEN sail_status_t png_private_pixel_format_to_png_color_type(enum SailPixelFormat pixel_format, int *color_type, int *bit_depth); SAIL_HIDDEN sail_status_t png_private_fetch_meta_data(png_structp png_ptr, png_infop info_ptr, struct sail_meta_data_node **target_meta_data_node); SAIL_HIDDEN sail_status_t png_private_write_meta_data(png_structp png_ptr, png_infop info_ptr, const struct sail_meta_data_node *meta_data_node); SAIL_HIDDEN sail_status_t png_private_fetch_iccp(png_structp png_ptr, png_infop info_ptr, struct sail_iccp **iccp); SAIL_HIDDEN sail_status_t png_private_fetch_palette(png_structp png_ptr, png_infop info_ptr, struct sail_palette **palette); #ifdef PNG_APNG_SUPPORTED SAIL_HIDDEN sail_status_t png_private_blend_source(void *dst_raw, unsigned dst_offset, const void *src_raw, unsigned src_width, unsigned bytes_per_pixel); SAIL_HIDDEN sail_status_t png_private_blend_over(void *dst_raw, unsigned dst_offset, const void *src_raw, unsigned width, enum SailPixelFormat pixel_format); SAIL_HIDDEN sail_status_t png_private_skip_hidden_frame(unsigned bytes_per_line, unsigned height, png_structp png_ptr, png_infop info_ptr, void **row); SAIL_HIDDEN sail_status_t png_private_alloc_rows(png_bytep **A, unsigned row_length, unsigned height); SAIL_HIDDEN void png_private_destroy_rows(png_bytep **A, unsigned height); SAIL_HIDDEN sail_status_t png_private_store_num_frames_and_plays(png_structp png_ptr, png_infop info_ptr, struct sail_hash_map *special_properties); #endif SAIL_HIDDEN sail_status_t png_private_fetch_resolution(png_structp png_ptr, png_infop info_ptr, struct sail_resolution **resolution); SAIL_HIDDEN sail_status_t png_private_write_resolution(png_structp png_ptr, png_infop info_ptr, const struct sail_resolution *resolution); SAIL_HIDDEN bool png_private_tuning_key_value_callback(const char *key, const struct sail_variant *value, void *user_data); #endif sail-0.9.8/src/sail-codecs/png/io.c000066400000000000000000000045221475535176100170150ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "io.h" void png_private_my_read_fn(png_structp png_ptr, png_bytep bytes, png_size_t bytes_size) { if (png_ptr == NULL) { return; } struct sail_io *io = png_get_io_ptr(png_ptr); sail_status_t err = io->strict_read(io->stream, bytes, bytes_size); if (err != SAIL_OK) { png_error(png_ptr, "Failed to read from the I/O stream"); } } void png_private_my_write_fn(png_structp png_ptr, png_bytep bytes, png_size_t bytes_size) { if (png_ptr == NULL) { return; } struct sail_io *io = png_get_io_ptr(png_ptr); sail_status_t err = io->strict_write(io->stream, bytes, bytes_size); if (err != SAIL_OK) { png_error(png_ptr, "Failed to write to the I/O stream"); } } void png_private_my_flush_fn(png_structp png_ptr) { if (png_ptr == NULL) { return; } struct sail_io *io = png_get_io_ptr(png_ptr); sail_status_t err = io->flush(io->stream); if (err != SAIL_OK) { png_error(png_ptr, "Failed to flush the I/O stream"); } } sail-0.9.8/src/sail-codecs/png/io.h000066400000000000000000000031131475535176100170150ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PNG_IO_H #define SAIL_PNG_IO_H #include #include #include SAIL_HIDDEN void png_private_my_read_fn(png_structp png_ptr, png_bytep bytes, png_size_t bytes_size); SAIL_HIDDEN void png_private_my_write_fn(png_structp png_ptr, png_bytep bytes, png_size_t bytes_size); SAIL_HIDDEN void png_private_my_flush_fn(png_structp png_ptr); #endif sail-0.9.8/src/sail-codecs/png/png.c000066400000000000000000000621661475535176100172020ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include "helpers.h" #include "io.h" /* * Codec-specific data types. */ static const double COMPRESSION_MIN = 1; static const double COMPRESSION_MAX = 9; static const double COMPRESSION_DEFAULT = 6; /* * Codec-specific state. */ struct png_state { const struct sail_load_options *load_options; const struct sail_save_options *save_options; png_structp png_ptr; png_infop info_ptr; int color_type; int bit_depth; int interlace_type; struct sail_image *first_image; int interlaced_passes; bool libpng_error; bool frame_saved; int frames; int current_frame; /* APNG-specific. */ #ifdef PNG_APNG_SUPPORTED bool is_apng; unsigned bytes_per_pixel; png_uint_32 next_frame_width; png_uint_32 next_frame_height; png_uint_32 next_frame_x_offset; png_uint_32 next_frame_y_offset; png_uint_16 next_frame_delay_num; png_uint_16 next_frame_delay_den; png_byte next_frame_dispose_op; png_byte next_frame_blend_op; bool skipped_hidden; png_bytep *prev; /* Temporary scanline to read into. We need it for blending. */ void *temp_scanline; /* Scan line for skipping a first hidden frame. */ void *scanline_for_skipping; #endif }; static sail_status_t alloc_png_state(const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct png_state **png_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct png_state), &ptr)); *png_state = ptr; **png_state = (struct png_state) { .load_options = load_options, .save_options = save_options, .png_ptr = NULL, .info_ptr = NULL, .color_type = 0, .bit_depth = 0, .interlace_type = 0, .first_image = NULL, .interlaced_passes = 0, .libpng_error = false, .frame_saved = false, .frames = 0, .current_frame = 0, /* APNG-specific. */ #ifdef PNG_APNG_SUPPORTED .is_apng = false, .bytes_per_pixel = 0, .next_frame_width = 0, .next_frame_height = 0, .next_frame_x_offset = 0, .next_frame_y_offset = 0, .next_frame_delay_num = 0, .next_frame_delay_den = 0, .next_frame_dispose_op = PNG_DISPOSE_OP_BACKGROUND, .next_frame_blend_op = PNG_BLEND_OP_SOURCE, .skipped_hidden = false, .prev = NULL, .temp_scanline = NULL, .scanline_for_skipping = NULL, #endif }; return SAIL_OK; } static void destroy_png_state(struct png_state *png_state) { if (png_state == NULL) { return; } #ifdef PNG_APNG_SUPPORTED sail_free(png_state->temp_scanline); sail_free(png_state->scanline_for_skipping); if (png_state->first_image != NULL) { png_private_destroy_rows(&png_state->prev, png_state->first_image->height); } #endif sail_destroy_image(png_state->first_image); sail_free(png_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_png(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct png_state *png_state; SAIL_TRY(alloc_png_state(load_options, NULL, &png_state)); *state = png_state; /* Initialize PNG. */ if ((png_state->png_ptr = png_create_read_struct_2(PNG_LIBPNG_VER_STRING, NULL, png_private_my_error_fn, png_private_my_warning_fn, NULL, png_private_my_malloc_fn, png_private_my_free_fn)) == NULL) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if ((png_state->info_ptr = png_create_info_struct(png_state->png_ptr)) == NULL) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Error handling setup. */ if (setjmp(png_jmpbuf(png_state->png_ptr))) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } png_set_read_fn(png_state->png_ptr, io, png_private_my_read_fn); png_read_info(png_state->png_ptr, png_state->info_ptr); SAIL_TRY(sail_alloc_image(&png_state->first_image)); if (png_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY(sail_alloc_source_image(&png_state->first_image->source_image)); } png_get_IHDR(png_state->png_ptr, png_state->info_ptr, &png_state->first_image->width, &png_state->first_image->height, &png_state->bit_depth, &png_state->color_type, &png_state->interlace_type, /* compression type */ NULL, /* filter method */ NULL); /* Convert to little-endian. */ png_set_swap(png_state->png_ptr); png_state->first_image->pixel_format = png_private_png_color_type_to_pixel_format(png_state->color_type, png_state->bit_depth); png_state->first_image->bytes_per_line = sail_bytes_per_line(png_state->first_image->width, png_state->first_image->pixel_format); /* Fetch palette. */ if (png_state->color_type == PNG_COLOR_TYPE_PALETTE) { SAIL_TRY(png_private_fetch_palette(png_state->png_ptr, png_state->info_ptr, &png_state->first_image->palette)); } /* Fetch resolution. */ SAIL_TRY(png_private_fetch_resolution(png_state->png_ptr, png_state->info_ptr, &png_state->first_image->resolution)); png_state->interlaced_passes = png_set_interlace_handling(png_state->png_ptr); SAIL_LOG_TRACE("PNG: Interlaced passes: %d", png_state->interlaced_passes); #ifdef PNG_APNG_SUPPORTED png_state->bytes_per_pixel = sail_bits_per_pixel(png_state->first_image->pixel_format) / 8; png_state->is_apng = png_get_valid(png_state->png_ptr, png_state->info_ptr, PNG_INFO_acTL) != 0; png_state->frames = png_state->is_apng ? png_get_num_frames(png_state->png_ptr, png_state->info_ptr) : 1; if (png_state->frames == 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } if (png_state->is_apng) { SAIL_TRY(png_private_alloc_rows(&png_state->prev, png_state->first_image->bytes_per_line, png_state->first_image->height)); if (png_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { if (png_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY(sail_alloc_hash_map(&png_state->first_image->source_image->special_properties)); SAIL_TRY(png_private_store_num_frames_and_plays( png_state->png_ptr, png_state->info_ptr, png_state->first_image->source_image->special_properties)); } } } #else png_state->frames = 1; #endif if (png_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { png_state->first_image->source_image->pixel_format = png_private_png_color_type_to_pixel_format(png_state->color_type, png_state->bit_depth); png_state->first_image->source_image->compression = SAIL_COMPRESSION_DEFLATE; if (png_state->interlaced_passes > 1) { png_state->first_image->source_image->interlaced = true; } } /* Read meta data. */ if (png_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY(png_private_fetch_meta_data(png_state->png_ptr, png_state->info_ptr, &png_state->first_image->meta_data_node)); } /* Fetch ICC profile. */ if (png_state->load_options->options & SAIL_OPTION_ICCP) { SAIL_TRY(png_private_fetch_iccp(png_state->png_ptr, png_state->info_ptr, &png_state->first_image->iccp)); } /* Fetch gamma. */ if (png_get_gAMA(png_state->png_ptr, png_state->info_ptr, &png_state->first_image->gamma) == 0) { SAIL_LOG_TRACE("PNG: Failed to read the image gamma so it stays default"); } #ifdef PNG_APNG_SUPPORTED if (png_state->is_apng) { SAIL_TRY(sail_malloc(png_state->first_image->bytes_per_line, &png_state->temp_scanline)); } #endif return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_png(void *state, struct sail_image **image) { struct png_state *png_state = state; if (png_state->current_frame == png_state->frames) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } if (setjmp(png_jmpbuf(png_state->png_ptr))) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (png_state->libpng_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } struct sail_image *image_local; SAIL_TRY(sail_copy_image(png_state->first_image, &image_local)); #ifdef PNG_APNG_SUPPORTED if (png_state->is_apng) { /* APNG feature: a hidden frame. */ if (!png_state->skipped_hidden && png_get_first_frame_is_hidden(png_state->png_ptr, png_state->info_ptr)) { SAIL_LOG_TRACE("PNG: Skipping hidden frame"); SAIL_TRY_OR_CLEANUP(png_private_skip_hidden_frame(png_state->first_image->bytes_per_line, png_state->first_image->height, png_state->png_ptr, png_state->info_ptr, &png_state->scanline_for_skipping), /* cleanup */ sail_destroy_image(image_local)); png_state->frames--; /* We have just a single frame left - continue to reading scan lines. */ if (png_state->frames == 1) { png_state->next_frame_width = png_state->first_image->width; png_state->next_frame_height = png_state->first_image->height; } else if (png_state->frames == 0) { sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } } png_state->skipped_hidden = true; png_read_frame_head(png_state->png_ptr, png_state->info_ptr); if (png_get_valid(png_state->png_ptr, png_state->info_ptr, PNG_INFO_fcTL) != 0) { png_get_next_frame_fcTL(png_state->png_ptr, png_state->info_ptr, &png_state->next_frame_width, &png_state->next_frame_height, &png_state->next_frame_x_offset, &png_state->next_frame_y_offset, &png_state->next_frame_delay_num, &png_state->next_frame_delay_den, &png_state->next_frame_dispose_op, &png_state->next_frame_blend_op); } else { png_state->next_frame_width = image_local->width; png_state->next_frame_height = image_local->height; png_state->next_frame_x_offset = 0; png_state->next_frame_y_offset = 0; png_state->next_frame_dispose_op = PNG_DISPOSE_OP_BACKGROUND; png_state->next_frame_blend_op = PNG_BLEND_OP_SOURCE; } if (png_state->next_frame_width + png_state->next_frame_x_offset > image_local->width || png_state->next_frame_height + png_state->next_frame_y_offset > image_local->height) { sail_destroy_image(image_local); SAIL_LOG_ERROR("PNG: Frame %u,%u %ux%u doesn't fit into the canvas image %ux%u", png_state->next_frame_x_offset, png_state->next_frame_y_offset, png_state->next_frame_width, png_state->next_frame_height, image_local->width, image_local->height); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCORRECT_IMAGE_DIMENSIONS); } SAIL_LOG_TRACE("PNG: Frame #%u: %u,%u %ux%u, canvas image: %ux%u", png_state->current_frame, png_state->next_frame_x_offset, png_state->next_frame_y_offset, png_state->next_frame_width, png_state->next_frame_height, image_local->width, image_local->height); if (png_state->next_frame_delay_den == 0) { png_state->next_frame_delay_den = 100; } image_local->delay = (int)(((double)png_state->next_frame_delay_num / png_state->next_frame_delay_den) * 1000); } #endif png_state->current_frame++; *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_png(void *state, struct sail_image *image) { struct png_state *png_state = state; if (png_state->libpng_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (setjmp(png_jmpbuf(png_state->png_ptr))) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } for (int current_pass = 0; current_pass < png_state->interlaced_passes; current_pass++) { #ifdef PNG_APNG_SUPPORTED if (png_state->is_apng) { for (unsigned row = 0; row < image->height; row++) { unsigned char *scanline = sail_scan_line(image, row); memcpy(scanline, png_state->prev[row], png_state->first_image->bytes_per_line); if (row >= png_state->next_frame_y_offset && row < png_state->next_frame_y_offset + png_state->next_frame_height) { png_read_row(png_state->png_ptr, (png_bytep)png_state->temp_scanline, NULL); /* Copy all pixel values including alpha. */ if (png_state->current_frame == 1 || png_state->next_frame_blend_op == PNG_BLEND_OP_SOURCE) { SAIL_TRY(png_private_blend_source(scanline, png_state->next_frame_x_offset, png_state->temp_scanline, png_state->next_frame_width, png_state->bytes_per_pixel)); } else { /* PNG_BLEND_OP_OVER */ SAIL_TRY(png_private_blend_over(scanline, png_state->next_frame_x_offset, png_state->temp_scanline, png_state->next_frame_width, image->pixel_format)); } /* Workaround: Apply disposal method only for images with bpp >= 8. */ if (png_state->bytes_per_pixel > 0) { if (png_state->next_frame_dispose_op == PNG_DISPOSE_OP_BACKGROUND) { memset(png_state->prev[row] + png_state->next_frame_x_offset * png_state->bytes_per_pixel, 0, (size_t)png_state->next_frame_width * png_state->bytes_per_pixel); } else if (png_state->next_frame_dispose_op == PNG_DISPOSE_OP_NONE) { memcpy(png_state->prev[row] + png_state->next_frame_x_offset * png_state->bytes_per_pixel, scanline, (size_t)png_state->next_frame_width * png_state->bytes_per_pixel); } else { /* PNG_DISPOSE_OP_PREVIOUS */ } } } } } else { for (unsigned row = 0; row < image->height; row++) { png_read_row(png_state->png_ptr, sail_scan_line(image, row), NULL); } } #else for (unsigned row = 0; row < image->height; row++) { png_read_row(png_state->png_ptr, sail_scan_line(image, row), NULL); } #endif } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_png(void **state) { struct png_state *png_state = *state; *state = NULL; if (png_state->png_ptr != NULL) { if (setjmp(png_jmpbuf(png_state->png_ptr))) { destroy_png_state(png_state); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } if (png_state->png_ptr != NULL) { png_destroy_read_struct(&png_state->png_ptr, &png_state->info_ptr, NULL); } destroy_png_state(png_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_png(struct sail_io *io, const struct sail_save_options *save_options, void **state) { *state = NULL; struct png_state *png_state; SAIL_TRY(alloc_png_state(NULL, save_options, &png_state)); *state = png_state; if (png_state->save_options->compression != SAIL_COMPRESSION_DEFLATE) { SAIL_LOG_ERROR("PNG: Only DEFLATE compression is allowed for saving"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_COMPRESSION); } /* Initialize PNG. */ if ((png_state->png_ptr = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL, png_private_my_error_fn, png_private_my_warning_fn, NULL, png_private_my_malloc_fn, png_private_my_free_fn)) == NULL) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if ((png_state->info_ptr = png_create_info_struct(png_state->png_ptr)) == NULL) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Error handling setup. */ if (setjmp(png_jmpbuf(png_state->png_ptr))) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Handle tuning. */ if (png_state->save_options->tuning != NULL) { sail_traverse_hash_map_with_user_data(png_state->save_options->tuning, png_private_tuning_key_value_callback, png_state->png_ptr); } png_set_write_fn(png_state->png_ptr, io, png_private_my_write_fn, png_private_my_flush_fn); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_png(void *state, const struct sail_image *image) { struct png_state *png_state = state; if (png_state->frame_saved) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } png_state->frame_saved = true; /* Error handling setup. */ if (setjmp(png_jmpbuf(png_state->png_ptr))) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } int color_type; int bit_depth; SAIL_TRY_OR_CLEANUP(png_private_pixel_format_to_png_color_type(image->pixel_format, &color_type, &bit_depth), /* cleanup */ SAIL_LOG_ERROR("PNG: %s pixel format is not currently supported for saving", sail_pixel_format_to_string(image->pixel_format))); /* Save meta data. */ if (png_state->save_options->options & SAIL_OPTION_META_DATA && image->meta_data_node != NULL) { SAIL_TRY(png_private_write_meta_data(png_state->png_ptr, png_state->info_ptr, image->meta_data_node)); SAIL_LOG_TRACE("PNG: Meta data has been written"); } png_set_IHDR(png_state->png_ptr, png_state->info_ptr, image->width, image->height, bit_depth, color_type, (png_state->save_options->options & SAIL_OPTION_INTERLACED) ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); /* Save resolution. */ SAIL_TRY(png_private_write_resolution(png_state->png_ptr, png_state->info_ptr, image->resolution)); /* Save ICC profile. */ if (png_state->save_options->options & SAIL_OPTION_ICCP && image->iccp != NULL) { png_set_iCCP(png_state->png_ptr, png_state->info_ptr, "ICC profile", PNG_COMPRESSION_TYPE_BASE, (const png_bytep)image->iccp->data, (unsigned)image->iccp->size); SAIL_LOG_TRACE("PNG: ICC profile has been written"); } /* Save palette. */ if (image->pixel_format == SAIL_PIXEL_FORMAT_BPP1_INDEXED || image->pixel_format == SAIL_PIXEL_FORMAT_BPP2_INDEXED || image->pixel_format == SAIL_PIXEL_FORMAT_BPP4_INDEXED || image->pixel_format == SAIL_PIXEL_FORMAT_BPP8_INDEXED) { if (image->palette == NULL) { SAIL_LOG_ERROR("PNG: The indexed image has no palette"); SAIL_LOG_AND_RETURN(SAIL_ERROR_MISSING_PALETTE); } if (image->palette->pixel_format != SAIL_PIXEL_FORMAT_BPP24_RGB) { SAIL_LOG_ERROR("PNG: Only BPP24-RGB palette is currently supported"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } /* Deep copy palette. */ png_set_PLTE(png_state->png_ptr, png_state->info_ptr, image->palette->data, image->palette->color_count); } /* Save gamma. */ png_set_gAMA(png_state->png_ptr, png_state->info_ptr, image->gamma); /* Set compression. */ const double compression = (png_state->save_options->compression_level < COMPRESSION_MIN || png_state->save_options->compression_level > COMPRESSION_MAX) ? COMPRESSION_DEFAULT : png_state->save_options->compression_level; png_set_compression_level(png_state->png_ptr, (int)compression); png_write_info(png_state->png_ptr, png_state->info_ptr); if (image->pixel_format == SAIL_PIXEL_FORMAT_BPP24_BGR || image->pixel_format == SAIL_PIXEL_FORMAT_BPP48_BGR || image->pixel_format == SAIL_PIXEL_FORMAT_BPP32_BGRA || image->pixel_format == SAIL_PIXEL_FORMAT_BPP32_ABGR || image->pixel_format == SAIL_PIXEL_FORMAT_BPP64_BGRA || image->pixel_format == SAIL_PIXEL_FORMAT_BPP64_ABGR) { png_set_bgr(png_state->png_ptr); } if (image->pixel_format == SAIL_PIXEL_FORMAT_BPP32_ARGB || image->pixel_format == SAIL_PIXEL_FORMAT_BPP32_ABGR || image->pixel_format == SAIL_PIXEL_FORMAT_BPP64_ARGB || image->pixel_format == SAIL_PIXEL_FORMAT_BPP64_ABGR) { png_set_swap_alpha(png_state->png_ptr); } if (png_state->save_options->options & SAIL_OPTION_INTERLACED) { png_state->interlaced_passes = png_set_interlace_handling(png_state->png_ptr); } else { png_state->interlaced_passes = 1; } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_png(void *state, const struct sail_image *image) { struct png_state *png_state = state; if (png_state->libpng_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Error handling setup. */ if (setjmp(png_jmpbuf(png_state->png_ptr))) { png_state->libpng_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } for (int current_pass = 0; current_pass < png_state->interlaced_passes; current_pass++) { for (unsigned row = 0; row < image->height; row++) { png_write_row(png_state->png_ptr, sail_scan_line(image, row)); } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_png(void **state) { struct png_state *png_state = *state; /* Subsequent calls to finish() will expectedly fail in the above line. */ *state = NULL; /* Error handling setup. */ if (png_state->png_ptr != NULL) { if (setjmp(png_jmpbuf(png_state->png_ptr))) { destroy_png_state(png_state); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } if (png_state->png_ptr != NULL && !png_state->libpng_error) { png_write_end(png_state->png_ptr, png_state->info_ptr); } if (png_state->png_ptr != NULL) { png_destroy_write_struct(&png_state->png_ptr, &png_state->info_ptr); } destroy_png_state(png_state); return SAIL_OK; } sail-0.9.8/src/sail-codecs/png/png.codec.info.in000066400000000000000000000015601475535176100213630ustar00rootroot00000000000000# PNG codec information # [codec] layout=8 version=1.1.3 priority=HIGHEST name=PNG description=Portable Network Graphics magic-numbers=89 50 4E 47 0D 0A 1A 0A extensions=png@PNG_CODEC_INFO_EXTENSION_APNG@ mime-types=image/png [load-features] features=STATIC@PNG_CODEC_INFO_FEATURE_ANIMATED@;META-DATA;INTERLACED;ICCP;SOURCE-IMAGE tuning=png-filter [save-features] features=STATIC;META-DATA;INTERLACED;ICCP pixel-formats=BPP1-INDEXED;BPP2-INDEXED;BPP4-INDEXED;BPP8-INDEXED;BPP1-GRAYSCALE;BPP2-GRAYSCALE;BPP4-GRAYSCALE;BPP8-GRAYSCALE;BPP16-GRAYSCALE;BPP16-GRAYSCALE-ALPHA;BPP32-GRAYSCALE-ALPHA;BPP24-RGB;BPP24-BGR;BPP48-RGB;BPP48-BGR;BPP32-RGBA;BPP32-BGRA;BPP32-ARGB;BPP32-ABGR;BPP64-RGBA;BPP64-BGRA;BPP64-ARGB;BPP64-ABGR compressions=DEFLATE default-compression=DEFLATE compression-level-min=1 compression-level-max=9 compression-level-default=6 compression-level-step=1 tuning= sail-0.9.8/src/sail-codecs/png/png.png000066400000000000000000000004001475535176100175230ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLLatRNS@fbKGDH pHYs  tIME 9'.l[IDATc0c̙Pd)A 1X()8sęP $2@j, vv! IENDB`sail-0.9.8/src/sail-codecs/pnm/000077500000000000000000000000001475535176100162455ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/pnm/CMakeLists.txt000066400000000000000000000001431475535176100210030ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME pnm SOURCES helpers.h helpers.c pnm.c ICON pnm.png) sail-0.9.8/src/sail-codecs/pnm/helpers.c000066400000000000000000000132561475535176100200620ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "helpers.h" sail_status_t pnm_private_skip_to_letters_numbers_force_read(struct sail_io *io, char *first_char) { char c; do { SAIL_TRY(io->strict_read(io->stream, &c, 1)); if (c == '#') { do { SAIL_TRY(io->strict_read(io->stream, &c, 1)); } while(c != '\n'); } } while (!isalnum(c)); *first_char = c; return SAIL_OK; } sail_status_t pnm_private_skip_to_letters_numbers(struct sail_io *io, char starting_char, char *first_char) { if (isalnum(starting_char)) { *first_char = starting_char; return SAIL_OK; } SAIL_TRY(pnm_private_skip_to_letters_numbers_force_read(io, first_char)); return SAIL_OK; } sail_status_t pnm_private_read_word(struct sail_io *io, char *str, size_t str_size) { if (str_size < 2) { SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } char first_char; SAIL_TRY(pnm_private_skip_to_letters_numbers(io, SAIL_PNM_INVALID_STARTING_CHAR, &first_char)); unsigned i = 0; char c = first_char; bool eof; SAIL_TRY(io->eof(io->stream, &eof)); if (eof) { *(str + i++) = c; } else { while (isalnum(c) && i < str_size - 1 && !eof) { *(str + i++) = c; SAIL_TRY(io->strict_read(io->stream, &c, 1)); SAIL_TRY(io->eof(io->stream, &eof)); } } /* The buffer is full but no word delimiter found. */ if (i == str_size - 1 && !eof) { SAIL_LOG_ERROR("PNM: No word delimiter found"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } *(str + i) = '\0'; return SAIL_OK; } sail_status_t pnm_private_read_pixels(struct sail_io *io, struct sail_image *image, unsigned channels, unsigned bpc, double multiplier_to_full_range) { for (unsigned row = 0; row < image->height; row++) { uint8_t *scan8 = sail_scan_line(image, row); uint16_t *scan16 = sail_scan_line(image, row); for (unsigned column = 0; column < image->width; column++) { for(unsigned channel = 0; channel < channels; channel++) { char buffer[8]; SAIL_TRY(pnm_private_read_word(io, buffer, sizeof(buffer))); unsigned value; #ifdef _MSC_VER if (sscanf_s(buffer, "%u", &value) != 1) { #else if (sscanf(buffer, "%u", &value) != 1) { #endif SAIL_LOG_ERROR("PNM: Failed to read color value from '%s'", buffer); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (SAIL_LIKELY(bpc == 8)) { *scan8++ = (uint8_t)(value * multiplier_to_full_range); } else { *scan16++ = (uint16_t)(value * multiplier_to_full_range); } } } } return SAIL_OK; } enum SailPixelFormat pnm_private_rgb_sail_pixel_format(enum SailPnmVersion pnm_version, unsigned bpc) { switch (pnm_version) { case SAIL_PNM_VERSION_P1: case SAIL_PNM_VERSION_P4: return SAIL_PIXEL_FORMAT_BPP1_INDEXED; case SAIL_PNM_VERSION_P2: case SAIL_PNM_VERSION_P5: { switch (bpc) { case 8: return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; case 16: return SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } case SAIL_PNM_VERSION_P3: case SAIL_PNM_VERSION_P6: { switch (bpc) { case 8: return SAIL_PIXEL_FORMAT_BPP24_RGB; case 16: return SAIL_PIXEL_FORMAT_BPP48_RGB; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } sail_status_t pnm_private_store_ascii(enum SailPnmVersion pnm_version, struct sail_hash_map *special_properties) { struct sail_variant *variant; SAIL_TRY(sail_alloc_variant(&variant)); switch (pnm_version) { case SAIL_PNM_VERSION_P1: case SAIL_PNM_VERSION_P2: case SAIL_PNM_VERSION_P3: { sail_set_variant_bool(variant, true); break; } default: { sail_set_variant_bool(variant, false); } } sail_put_hash_map(special_properties, "pnm-ascii", variant); sail_destroy_variant(variant); return SAIL_OK; } sail-0.9.8/src/sail-codecs/pnm/helpers.h000066400000000000000000000045641475535176100200710ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PNM_HELPERS_H #define SAIL_PNM_HELPERS_H #include /* size_t */ #include #include #include struct sail_image; struct sail_io; enum SailPnmVersion { SAIL_PNM_VERSION_P1, SAIL_PNM_VERSION_P2, SAIL_PNM_VERSION_P3, SAIL_PNM_VERSION_P4, SAIL_PNM_VERSION_P5, SAIL_PNM_VERSION_P6, }; static const char SAIL_PNM_INVALID_STARTING_CHAR = '\0'; SAIL_HIDDEN sail_status_t pnm_private_skip_to_letters_numbers_force_read(struct sail_io *io, char *first_char); SAIL_HIDDEN sail_status_t pnm_private_skip_to_letters_numbers(struct sail_io *io, char starting_char, char *first_char); SAIL_HIDDEN sail_status_t pnm_private_read_word(struct sail_io *io, char *str, size_t str_size); SAIL_HIDDEN sail_status_t pnm_private_read_pixels(struct sail_io *io, struct sail_image *image, unsigned channels, unsigned bpc, double multiplier_to_full_range); SAIL_HIDDEN enum SailPixelFormat pnm_private_rgb_sail_pixel_format(enum SailPnmVersion pnm_version, unsigned bpc); SAIL_HIDDEN sail_status_t pnm_private_store_ascii(enum SailPnmVersion pnm_version, struct sail_hash_map *special_properties); #endif sail-0.9.8/src/sail-codecs/pnm/pnm.c000066400000000000000000000252221475535176100172060ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include "helpers.h" static const uint8_t SAIL_PNM_MONO_PALETTE[] = { 255, 255, 255, 0, 0, 0 }; /* * Codec-specific state. */ struct pnm_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; bool frame_loaded; enum SailPnmVersion version; double multiplier_to_full_range; unsigned bpc; }; static sail_status_t alloc_pnm_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct pnm_state **pnm_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct pnm_state), &ptr)); *pnm_state = ptr; **pnm_state = (struct pnm_state) { .io = io, .load_options = load_options, .save_options = save_options, .frame_loaded = false, .multiplier_to_full_range = 0, .bpc = 0, }; return SAIL_OK; } static void destroy_pnm_state(struct pnm_state *pnm_state) { if (pnm_state == NULL) { return; } sail_free(pnm_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_pnm(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct pnm_state *pnm_state; SAIL_TRY(alloc_pnm_state(io, load_options, NULL, &pnm_state)); *state = pnm_state; /* Init decoder. */ char str[8]; SAIL_TRY(pnm_private_read_word(pnm_state->io, str, sizeof(str))); const char pnm = str[1]; SAIL_LOG_TRACE("PNM: Version '%c'", pnm); switch (pnm) { case '1': pnm_state->version = SAIL_PNM_VERSION_P1; break; case '2': pnm_state->version = SAIL_PNM_VERSION_P2; break; case '3': pnm_state->version = SAIL_PNM_VERSION_P3; break; case '4': pnm_state->version = SAIL_PNM_VERSION_P4; break; case '5': pnm_state->version = SAIL_PNM_VERSION_P5; break; case '6': pnm_state->version = SAIL_PNM_VERSION_P6; break; default: { SAIL_LOG_ERROR("PNM: Unsupported version '%c'", pnm); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_FORMAT); } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_pnm(void *state, struct sail_image **image) { struct pnm_state *pnm_state = state; if (pnm_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } pnm_state->frame_loaded = true; char buffer[32]; /* Dimensions. */ unsigned w; SAIL_TRY(pnm_private_read_word(pnm_state->io, buffer, sizeof(buffer))); #ifdef _MSC_VER if (sscanf_s(buffer, "%u", &w) != 1) { #else if (sscanf(buffer, "%u", &w) != 1) { #endif SAIL_LOG_ERROR("PNM: Failed to read image dimensions"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } unsigned h; SAIL_TRY(pnm_private_read_word(pnm_state->io, buffer, sizeof(buffer))); #ifdef _MSC_VER if (sscanf_s(buffer, "%u", &h) != 1) { #else if (sscanf(buffer, "%u", &h) != 1) { #endif SAIL_LOG_ERROR("PNM: Failed to read image dimensions"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } /* Maximum color. */ if (pnm_state->version == SAIL_PNM_VERSION_P2 || pnm_state->version == SAIL_PNM_VERSION_P3 || pnm_state->version == SAIL_PNM_VERSION_P5 || pnm_state->version == SAIL_PNM_VERSION_P6) { SAIL_TRY(pnm_private_read_word(pnm_state->io, buffer, sizeof(buffer))); unsigned max_color; #ifdef _MSC_VER if (sscanf_s(buffer, "%u", &max_color) != 1) { #else if (sscanf(buffer, "%u", &max_color) != 1) { #endif SAIL_LOG_ERROR("PNM: Failed to read maximum color value"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (max_color <= 255) { pnm_state->bpc = 8; pnm_state->multiplier_to_full_range = 255.0 / max_color; } else if (max_color <= 65535) { pnm_state->bpc = 16; pnm_state->multiplier_to_full_range = 65535.0 / max_color; } else { SAIL_LOG_ERROR("PNM: BPP more than 16 is not supported"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_FORMAT); } SAIL_LOG_TRACE("PNM: Max color(%u), scale(%.1f)", max_color, pnm_state->multiplier_to_full_range); } else { pnm_state->multiplier_to_full_range = 1; pnm_state->bpc = 1; } enum SailPixelFormat pixel_format = pnm_private_rgb_sail_pixel_format(pnm_state->version, pnm_state->bpc); if (pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_ERROR("PNM: Unsupported pixel format"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (pnm_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = pixel_format; image_local->source_image->compression = SAIL_COMPRESSION_NONE; if (pnm_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY_OR_CLEANUP(sail_alloc_hash_map(&image_local->source_image->special_properties), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(pnm_private_store_ascii(pnm_state->version, image_local->source_image->special_properties), /* cleanup */ sail_destroy_image(image_local)); } } image_local->width = w; image_local->height = h; image_local->pixel_format = pixel_format; image_local->delay = -1; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); if (pixel_format == SAIL_PIXEL_FORMAT_BPP1_INDEXED) { SAIL_TRY_OR_CLEANUP(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, 2, &image_local->palette), /* cleanup */ sail_destroy_image(image_local)); memcpy(image_local->palette->data, SAIL_PNM_MONO_PALETTE, 6); } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_pnm(void *state, struct sail_image *image) { const struct pnm_state *pnm_state = state; switch (pnm_state->version) { case SAIL_PNM_VERSION_P1: { for (unsigned row = 0; row < image->height; row++) { uint8_t *scan = sail_scan_line(image, row); unsigned shift = 8; for (unsigned column = 0; column < image->width; column++) { char first_char; SAIL_TRY(pnm_private_skip_to_letters_numbers_force_read(pnm_state->io, &first_char)); const unsigned value = first_char - '0'; if (value != 0 && value != 1) { SAIL_LOG_ERROR("PNM: Unexpected character '%c'", first_char); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (shift == 8) { *scan = 0; } *scan |= (value << --shift); if (shift == 0) { scan++; shift = 8; } } } break; } case SAIL_PNM_VERSION_P2: { SAIL_TRY(pnm_private_read_pixels(pnm_state->io, image, 1, pnm_state->bpc, pnm_state->multiplier_to_full_range)); break; } case SAIL_PNM_VERSION_P3: { SAIL_TRY(pnm_private_read_pixels(pnm_state->io, image, 3, pnm_state->bpc, pnm_state->multiplier_to_full_range)); break; } case SAIL_PNM_VERSION_P4: case SAIL_PNM_VERSION_P5: case SAIL_PNM_VERSION_P6: { for (unsigned row = 0; row < image->height; row++) { SAIL_TRY(pnm_state->io->strict_read(pnm_state->io->stream, sail_scan_line(image, row), image->bytes_per_line)); } break; } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_pnm(void **state) { struct pnm_state *pnm_state = *state; *state = NULL; destroy_pnm_state(pnm_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_pnm(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_pnm(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_pnm(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_pnm(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/pnm/pnm.codec.info.in000066400000000000000000000010371475535176100213760ustar00rootroot00000000000000# PNM codec information # [codec] layout=8 version=0.6.5 priority=LOW name=PNM description=Portable aNy Map magic-numbers=50 31;50 32;50 33;50 34;50 35;50 36 extensions=pbm;pgm;ppm;pnm mime-types=image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-portable-anymap [load-features] features=STATIC;META-DATA;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/pnm/pnm.png000066400000000000000000000004721475535176100175500ustar00rootroot00000000000000PNG  IHDRagAMA a pHYs  tIME   zIDAT8˥10=@ @G3P<)8"+tֲmDıMPm۟bU%MSwUU<σiH,I,;QueQUfFDܲ,!i8_"I彾ۏeɛdME'o_Ue_x,7^F$IENDB`sail-0.9.8/src/sail-codecs/psd/000077500000000000000000000000001475535176100162415ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/psd/CMakeLists.txt000066400000000000000000000001431475535176100207770ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME psd SOURCES helpers.h helpers.c psd.c ICON psd.png) sail-0.9.8/src/sail-codecs/psd/helpers.c000066400000000000000000000107411475535176100200520ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "helpers.h" sail_status_t psd_private_get_big_endian_uint16_t(struct sail_io *io, uint16_t *v) { SAIL_TRY(io->strict_read(io->stream, v, sizeof(*v))); *v = sail_reverse_uint16(*v); return SAIL_OK; } sail_status_t psd_private_get_big_endian_uint32_t(struct sail_io *io, uint32_t *v) { SAIL_TRY(io->strict_read(io->stream, v, sizeof(*v))); *v = sail_reverse_uint32(*v); return SAIL_OK; } sail_status_t psd_private_sail_pixel_format(enum SailPsdMode mode, uint16_t channels, uint16_t depth, enum SailPixelFormat *result) { switch (mode) { case SAIL_PSD_MODE_BITMAP: { switch (channels) { case 1: *result = SAIL_PIXEL_FORMAT_BPP1_INDEXED; return SAIL_OK; } break; } case SAIL_PSD_MODE_INDEXED: { switch (channels) { case 1: *result = SAIL_PIXEL_FORMAT_BPP8_INDEXED; return SAIL_OK; } break; } case SAIL_PSD_MODE_GRAYSCALE: { switch (channels) { case 1: { switch (depth) { case 8: *result = SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; return SAIL_OK; case 16: *result = SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE; return SAIL_OK; } break; } } break; } case SAIL_PSD_MODE_RGB: { switch (channels) { case 3: { switch(depth) { case 8: *result = SAIL_PIXEL_FORMAT_BPP24_RGB; return SAIL_OK; case 16: *result = SAIL_PIXEL_FORMAT_BPP48_RGB; return SAIL_OK; } break; } case 4: { switch (depth) { case 8: *result = SAIL_PIXEL_FORMAT_BPP32_RGBA; return SAIL_OK; case 16: *result = SAIL_PIXEL_FORMAT_BPP64_RGBA; return SAIL_OK; } break; } } break; } case SAIL_PSD_MODE_CMYK: { switch (channels) { /* TODO: 5 channels? */ case 4: { switch (depth) { case 8: *result = SAIL_PIXEL_FORMAT_BPP32_CMYK; return SAIL_OK; case 16: *result = SAIL_PIXEL_FORMAT_BPP64_CMYK; return SAIL_OK; } break; } } break; } default: { break; } } SAIL_LOG_ERROR("PSD: Unsuppored combination of mode(%u) and channels(%u)", mode, channels); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } enum SailCompression psd_private_sail_compression(enum SailPsdCompression compression) { switch (compression) { case SAIL_PSD_COMPRESSION_NONE: return SAIL_COMPRESSION_NONE; case SAIL_PSD_COMPRESSION_RLE: return SAIL_COMPRESSION_RLE; case SAIL_PSD_COMPRESSION_ZIP_WITHOUT_PREDICTION: return SAIL_COMPRESSION_ZIP; case SAIL_PSD_COMPRESSION_ZIP_WITH_PREDICTION: return SAIL_COMPRESSION_ZIP; default: return SAIL_COMPRESSION_UNKNOWN; } } sail-0.9.8/src/sail-codecs/psd/helpers.h000066400000000000000000000046311475535176100200600ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PSD_HELPERS_H #define SAIL_PSD_HELPERS_H #include #include #include #include /* PSD pixel formats. */ enum SailPsdMode { SAIL_PSD_MODE_BITMAP = 0, SAIL_PSD_MODE_GRAYSCALE = 1, SAIL_PSD_MODE_INDEXED = 2, SAIL_PSD_MODE_RGB = 3, SAIL_PSD_MODE_CMYK = 4, SAIL_PSD_MODE_MULTICHANNEL = 7, SAIL_PSD_MODE_DUOTONE = 8, SAIL_PSD_MODE_LAB = 9, }; /* PSD compressions. */ enum SailPsdCompression { SAIL_PSD_COMPRESSION_NONE = 0, SAIL_PSD_COMPRESSION_RLE = 1, SAIL_PSD_COMPRESSION_ZIP_WITHOUT_PREDICTION = 2, SAIL_PSD_COMPRESSION_ZIP_WITH_PREDICTION = 3, }; struct sail_io; SAIL_HIDDEN sail_status_t psd_private_get_big_endian_uint16_t(struct sail_io *io, uint16_t *v); SAIL_HIDDEN sail_status_t psd_private_get_big_endian_uint32_t(struct sail_io *io, uint32_t *v); SAIL_HIDDEN sail_status_t psd_private_sail_pixel_format(enum SailPsdMode mode, uint16_t channels, uint16_t depth, enum SailPixelFormat *result); SAIL_HIDDEN enum SailCompression psd_private_sail_compression(enum SailPsdCompression compression); #endif sail-0.9.8/src/sail-codecs/psd/psd.c000066400000000000000000000266661475535176100172130ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "helpers.h" static const unsigned SAIL_PSD_MAGIC = 0x38425053; static const unsigned char SAIL_PSD_MONO_PALETTE[] = { 255, 255, 255, 0, 0, 0 }; /* * Codec-specific state. */ struct psd_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; bool frame_loaded; uint16_t channels; uint16_t depth; enum SailPsdCompression compression; unsigned bytes_per_channel; unsigned char *scan_buffer; struct sail_palette *palette; }; static sail_status_t alloc_psd_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct psd_state **psd_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct psd_state), &ptr)); *psd_state = ptr; **psd_state = (struct psd_state) { .io = io, .load_options = load_options, .save_options = save_options, .frame_loaded = false, .channels = 0, .depth = 0, .compression = SAIL_PSD_COMPRESSION_NONE, .bytes_per_channel = 0, .scan_buffer = NULL, .palette = NULL, }; return SAIL_OK; } static void destroy_psd_state(struct psd_state *psd_state) { if (psd_state == NULL) { return; } sail_free(psd_state->scan_buffer); sail_destroy_palette(psd_state->palette); sail_free(psd_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_psd(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct psd_state *psd_state; SAIL_TRY(alloc_psd_state(io, load_options, NULL, &psd_state)); *state = psd_state; /* Init decoder. PSD spec: https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_89817 */ uint32_t magic; SAIL_TRY(psd_private_get_big_endian_uint32_t(psd_state->io, &magic)); if (magic != SAIL_PSD_MAGIC) { SAIL_LOG_ERROR("PSD: Invalid magic 0x%X (expected 0x%X)", magic, SAIL_PSD_MAGIC); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } uint16_t version; SAIL_TRY(psd_private_get_big_endian_uint16_t(psd_state->io, &version)); if (version != 1) { SAIL_LOG_ERROR("PSD: Invalid version %u", version); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_psd(void *state, struct sail_image **image) { struct psd_state *psd_state = state; if (psd_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } psd_state->frame_loaded = true; /* Skip dummy bytes. */ SAIL_TRY(psd_state->io->seek(psd_state->io->stream, 6, SEEK_CUR)); /* Read PSD header. */ SAIL_TRY(psd_private_get_big_endian_uint16_t(psd_state->io, &psd_state->channels)); uint32_t height; SAIL_TRY(psd_private_get_big_endian_uint32_t(psd_state->io, &height)); uint32_t width; SAIL_TRY(psd_private_get_big_endian_uint32_t(psd_state->io, &width)); SAIL_TRY(psd_private_get_big_endian_uint16_t(psd_state->io, &psd_state->depth)); uint16_t mode; SAIL_TRY(psd_private_get_big_endian_uint16_t(psd_state->io, &mode)); uint32_t data_size; SAIL_TRY(psd_private_get_big_endian_uint32_t(psd_state->io, &data_size)); /* Palette. */ if (data_size > 0) { SAIL_LOG_TRACE("PSD: Palette data size: %u", data_size); SAIL_TRY(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, 256, &psd_state->palette)); /* Merge RR GG BB... to RGB RGB... */ unsigned char buf[256*3]; SAIL_TRY(psd_state->io->strict_read(psd_state->io->stream, buf, sizeof(buf))); unsigned char *palette_data = psd_state->palette->data; for (unsigned i = 0; i < 256; i++) { for (unsigned channel = 0; channel < 3; channel++) { *palette_data++ = buf[256 * channel + i]; } } } else if (mode == SAIL_PSD_MODE_BITMAP) { SAIL_TRY(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, 2, &psd_state->palette)); memcpy(psd_state->palette->data, SAIL_PSD_MONO_PALETTE, 6); } /* Skip the image resources. */ SAIL_TRY(psd_private_get_big_endian_uint32_t(psd_state->io, &data_size)); SAIL_TRY(psd_state->io->seek(psd_state->io->stream, data_size, SEEK_CUR)); /* Skip the layer and mask information. */ SAIL_TRY(psd_private_get_big_endian_uint32_t(psd_state->io, &data_size)); SAIL_TRY(psd_state->io->seek(psd_state->io->stream, data_size, SEEK_CUR)); /* Compression. */ uint16_t compression; SAIL_TRY(psd_private_get_big_endian_uint16_t(psd_state->io, &compression)); if (compression != SAIL_PSD_COMPRESSION_NONE && compression != SAIL_PSD_COMPRESSION_RLE) { SAIL_LOG_ERROR("PSD: Unsuppored compression value #%u", compression); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_COMPRESSION); } psd_state->compression = compression; /* Skip byte counts for all the scan lines. */ if (psd_state->compression == SAIL_PSD_COMPRESSION_RLE) { SAIL_TRY(psd_state->io->seek(psd_state->io->stream, (long)height * psd_state->channels * 2, SEEK_CUR)); } /* Used to optimize uncompressed readings. */ if (psd_state->compression == SAIL_PSD_COMPRESSION_NONE) { psd_state->bytes_per_channel = ((unsigned)width * psd_state->depth + 7) / 8; void *ptr; SAIL_TRY(sail_malloc(psd_state->bytes_per_channel, &ptr)); psd_state->scan_buffer = ptr; } SAIL_LOG_TRACE("PSD: mode(%u), channels(%u), depth(%u)", mode, psd_state->channels, psd_state->depth); enum SailPixelFormat pixel_format; SAIL_TRY(psd_private_sail_pixel_format(mode, psd_state->channels, psd_state->depth, &pixel_format)); /* Allocate image. */ struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (psd_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = pixel_format; image_local->source_image->compression = psd_private_sail_compression(psd_state->compression); } image_local->width = width; image_local->height = height; image_local->pixel_format = pixel_format; image_local->palette = psd_state->palette; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); /* Palette has been moved. */ psd_state->palette = NULL; *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_psd(void *state, struct sail_image *image) { const struct psd_state *psd_state = state; const unsigned bpp = (psd_state->channels * psd_state->depth + 7) / 8; if (psd_state->compression == SAIL_PSD_COMPRESSION_RLE) { for (unsigned channel = 0; channel < psd_state->channels; channel++) { for (unsigned row = 0; row < image->height; row++) { for (unsigned count = 0; count < image->width; ) { unsigned char c; SAIL_TRY(psd_state->io->strict_read(psd_state->io->stream, &c, sizeof(c))); if (c > 128) { c ^= 0xff; c += 2; unsigned char value; SAIL_TRY(psd_state->io->strict_read(psd_state->io->stream, &value, sizeof(value))); for (unsigned i = count; i < count + c; i++) { unsigned char *scan = (unsigned char *)sail_scan_line(image, row) + i * bpp; *(scan + channel) = value; } } else if (c < 128) { c++; for (unsigned i = count; i < count + c; i++) { unsigned char value; SAIL_TRY(psd_state->io->strict_read(psd_state->io->stream, &value, sizeof(value))); unsigned char *scan = (unsigned char *)sail_scan_line(image, row) + i * bpp; *(scan + channel) = value; } } count += c; } } } } else { for (unsigned channel = 0; channel < psd_state->channels; channel++) { for (unsigned row = 0; row < image->height; row++) { SAIL_TRY(psd_state->io->strict_read(psd_state->io->stream, psd_state->scan_buffer, psd_state->bytes_per_channel)); for (unsigned count = 0; count < psd_state->bytes_per_channel; count++) { unsigned char *scan = (unsigned char *)sail_scan_line(image, row) + count * bpp; *(scan + channel) = *(psd_state->scan_buffer + count); } } } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_psd(void **state) { struct psd_state *psd_state = *state; *state = NULL; destroy_psd_state(psd_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_psd(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_psd(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_psd(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_psd(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/psd/psd.codec.info.in000066400000000000000000000006541475535176100213720ustar00rootroot00000000000000# PSD codec information # [codec] layout=8 version=0.8.1 priority=LOW name=PSD description=Photoshop Document magic-numbers=38 42 50 53 extensions=psd mime-types=image/vnd.adobe.photoshop [load-features] features=STATIC;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/psd/psd.png000066400000000000000000000004131475535176100175330ustar00rootroot00000000000000PNG  IHDRRgAMA a!PLTE4FFFNNN/ˢtRNS@fbKGDH pHYs  fIDATc0VcժUE3 bc܀H @EQAEDDPQ"a8*" UB 0]J0sAh'smGIENDB`sail-0.9.8/src/sail-codecs/qoi/000077500000000000000000000000001475535176100162435ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/qoi/CMakeLists.txt000066400000000000000000000001171475535176100210020ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME qoi SOURCES qoi.c ICON qoi.png) sail-0.9.8/src/sail-codecs/qoi/qoi.c000066400000000000000000000177611475535176100172130ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #define QOI_MALLOC sail_malloc_std_signature #define QOI_FREE sail_free #define QOI_IMPLEMENTATION #define QOI_NO_STDIO #include "qoi.h" /* * Codec-specific state. */ struct qoi_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; bool frame_loaded; bool frame_saved; void *image_data; size_t image_data_size; void *pixels; qoi_desc qoi_desc; }; static sail_status_t alloc_qoi_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct qoi_state **qoi_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct qoi_state), &ptr)); *qoi_state = ptr; **qoi_state = (struct qoi_state) { .io = io, .load_options = load_options, .save_options = save_options, .frame_loaded = false, .frame_saved = false, .image_data = NULL, .image_data_size = 0, .pixels = NULL, }; return SAIL_OK; } static void destroy_qoi_state(struct qoi_state *qoi_state) { if (qoi_state == NULL) { return; } sail_free(qoi_state->image_data); sail_free(qoi_state->pixels); sail_free(qoi_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_qoi(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct qoi_state *qoi_state; SAIL_TRY(alloc_qoi_state(io, load_options, NULL, &qoi_state)); *state = qoi_state; /* Cache the entire file as the QOI API requires. */ SAIL_TRY(sail_alloc_data_from_io_contents(io, &qoi_state->image_data, &qoi_state->image_data_size)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_qoi(void *state, struct sail_image **image) { struct qoi_state *qoi_state = state; if (qoi_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } qoi_state->frame_loaded = true; /* Decode the image. */ /* TODO Remove (int) when QOI supports size_t. */ qoi_state->pixels = qoi_decode(qoi_state->image_data, (int)qoi_state->image_data_size, &qoi_state->qoi_desc, 0); if (qoi_state->pixels == NULL) { SAIL_LOG_ERROR("QOI: Image is broken without any details"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (qoi_state->qoi_desc.colorspace != QOI_SRGB) { SAIL_LOG_ERROR("QOI: Only RGB images are supported"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } enum SailPixelFormat pixel_format; switch (qoi_state->qoi_desc.channels) { case 3: pixel_format = SAIL_PIXEL_FORMAT_BPP24_RGB; break; case 4: pixel_format = SAIL_PIXEL_FORMAT_BPP32_RGBA; break; default: { SAIL_LOG_ERROR("QOI: Number of channels is %d, but only RGB24 and RGB32 images are supported", qoi_state->qoi_desc.channels); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } /* Construct the SAIL image. */ struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (qoi_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = pixel_format; image_local->source_image->compression = SAIL_COMPRESSION_QOI; } image_local->width = qoi_state->qoi_desc.width; image_local->height = qoi_state->qoi_desc.height; image_local->pixel_format = pixel_format; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_qoi(void *state, struct sail_image *image) { const struct qoi_state *qoi_state = state; const size_t pixels_size = (size_t)image->bytes_per_line * image->height; memcpy(image->pixels, qoi_state->pixels, pixels_size); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_qoi(void **state) { struct qoi_state *qoi_state = *state; *state = NULL; destroy_qoi_state(qoi_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_qoi(struct sail_io *io, const struct sail_save_options *save_options, void **state) { *state = NULL; struct qoi_state *qoi_state; SAIL_TRY(alloc_qoi_state(io, NULL, save_options, &qoi_state)); *state = qoi_state; /* Sanity check. */ if (qoi_state->save_options->compression != SAIL_COMPRESSION_QOI) { SAIL_LOG_ERROR("QOI: Only QOI compression is allowed for saving"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_COMPRESSION); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_qoi(void *state, const struct sail_image *image) { struct qoi_state *qoi_state = state; unsigned char channels; switch (image->pixel_format) { case SAIL_PIXEL_FORMAT_BPP24_RGB: channels = 3; break; case SAIL_PIXEL_FORMAT_BPP32_RGBA: channels = 4; break; default: { SAIL_LOG_ERROR("QOI: %s pixel format is not currently supported for saving", sail_pixel_format_to_string(image->pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } int written; qoi_state->pixels = qoi_encode(image->pixels, &(qoi_desc){ .width = image->width, .height = image->height, .channels = channels, .colorspace = QOI_SRGB }, &written); if (qoi_state->pixels == NULL) { SAIL_LOG_ERROR("QOI: Encoding failed without any details"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_qoi(void *state, const struct sail_image *image) { struct qoi_state *qoi_state = state; const size_t pixels_size = (size_t)image->bytes_per_line * image->height; SAIL_TRY(qoi_state->io->strict_write(qoi_state->io->stream, qoi_state->pixels, pixels_size)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_qoi(void **state) { struct qoi_state *qoi_state = *state; /* Subsequent calls to finish() will expectedly fail in the above line. */ *state = NULL; destroy_qoi_state(qoi_state); return SAIL_OK; } sail-0.9.8/src/sail-codecs/qoi/qoi.codec.info.in000066400000000000000000000006571475535176100214010ustar00rootroot00000000000000# QOI codec information # [codec] layout=8 version=0.9.0 priority=LOW name=QOI description=Quite OK Image magic-numbers=71 6F 69 66 extensions=qoi mime-types= [load-features] features=STATIC;SOURCE-IMAGE tuning= [save-features] features=STATIC pixel-formats=BPP24-RGB;BPP32-RGBA compressions=QOI default-compression=QOI compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/qoi/qoi.h000066400000000000000000000453461475535176100172200ustar00rootroot00000000000000/* QOI - The "Quite OK Image" format for fast, lossless image compression Dominic Szablewski - https://phoboslab.org -- LICENSE: The MIT License(MIT) Copyright(c) 2021 Dominic Szablewski Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions : The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- About QOI encodes and decodes images in a lossless format. Compared to stb_image and stb_image_write QOI offers 20x-50x faster encoding, 3x-4x faster decoding and 20% better compression. -- Synopsis // Define `QOI_IMPLEMENTATION` in *one* C/C++ file before including this // library to create the implementation. #define QOI_IMPLEMENTATION #include "qoi.h" // Encode and store an RGBA buffer to the file system. The qoi_desc describes // the input pixel data. qoi_write("image_new.qoi", rgba_pixels, &(qoi_desc){ .width = 1920, .height = 1080, .channels = 4, .colorspace = QOI_SRGB }); // Load and decode a QOI image from the file system into a 32bbp RGBA buffer. // The qoi_desc struct will be filled with the width, height, number of channels // and colorspace read from the file header. qoi_desc desc; void *rgba_pixels = qoi_read("image.qoi", &desc, 4); -- Documentation This library provides the following functions; - qoi_read -- read and decode a QOI file - qoi_decode -- decode the raw bytes of a QOI image from memory - qoi_write -- encode and write a QOI file - qoi_encode -- encode an rgba buffer into a QOI image in memory See the function declaration below for the signature and more information. If you don't want/need the qoi_read and qoi_write functions, you can define QOI_NO_STDIO before including this library. This library uses malloc() and free(). To supply your own malloc implementation you can define QOI_MALLOC and QOI_FREE before including this library. This library uses memset() to zero-initialize the index. To supply your own implementation you can define QOI_ZEROARR before including this library. -- Data Format A QOI file has a 14 byte header, followed by any number of data "chunks" and an 8-byte end marker. struct qoi_header_t { char magic[4]; // magic bytes "qoif" uint32_t width; // image width in pixels (BE) uint32_t height; // image height in pixels (BE) uint8_t channels; // 3 = RGB, 4 = RGBA uint8_t colorspace; // 0 = sRGB with linear alpha, 1 = all channels linear }; Images are encoded from top to bottom, left to right. The decoder and encoder start with {r: 0, g: 0, b: 0, a: 255} as the previous pixel value. An image is complete when all pixels specified by width * height have been covered. Pixels are encoded as - a run of the previous pixel - an index into an array of previously seen pixels - a difference to the previous pixel value in r,g,b - full r,g,b or r,g,b,a values The color channels are assumed to not be premultiplied with the alpha channel ("un-premultiplied alpha"). A running array[64] (zero-initialized) of previously seen pixel values is maintained by the encoder and decoder. Each pixel that is seen by the encoder and decoder is put into this array at the position formed by a hash function of the color value. In the encoder, if the pixel value at the index matches the current pixel, this index position is written to the stream as QOI_OP_INDEX. The hash function for the index is: index_position = (r * 3 + g * 5 + b * 7 + a * 11) % 64 Each chunk starts with a 2- or 8-bit tag, followed by a number of data bits. The bit length of chunks is divisible by 8 - i.e. all chunks are byte aligned. All values encoded in these data bits have the most significant bit on the left. The 8-bit tags have precedence over the 2-bit tags. A decoder must check for the presence of an 8-bit tag first. The byte stream's end is marked with 7 0x00 bytes followed a single 0x01 byte. The possible chunks are: .- QOI_OP_INDEX ----------. | Byte[0] | | 7 6 5 4 3 2 1 0 | |-------+-----------------| | 0 0 | index | `-------------------------` 2-bit tag b00 6-bit index into the color index array: 0..63 A valid encoder must not issue 7 or more consecutive QOI_OP_INDEX chunks to the index 0, to avoid confusion with the 8 byte end marker. .- QOI_OP_DIFF -----------. | Byte[0] | | 7 6 5 4 3 2 1 0 | |-------+-----+-----+-----| | 0 1 | dr | dg | db | `-------------------------` 2-bit tag b01 2-bit red channel difference from the previous pixel between -2..1 2-bit green channel difference from the previous pixel between -2..1 2-bit blue channel difference from the previous pixel between -2..1 The difference to the current channel values are using a wraparound operation, so "1 - 2" will result in 255, while "255 + 1" will result in 0. Values are stored as unsigned integers with a bias of 2. E.g. -2 is stored as 0 (b00). 1 is stored as 3 (b11). .- QOI_OP_LUMA -------------------------------------. | Byte[0] | Byte[1] | | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | |-------+-----------------+-------------+-----------| | 1 0 | green diff | dr - dg | db - dg | `---------------------------------------------------` 2-bit tag b10 6-bit green channel difference from the previous pixel -32..31 4-bit red channel difference minus green channel difference -8..7 4-bit blue channel difference minus green channel difference -8..7 The green channel is used to indicate the general direction of change and is encoded in 6 bits. The red and green channels (dr and db) base their diffs off of the green channel difference and are encoded in 4 bits. I.e.: dr_dg = (last_px.r - cur_px.r) - (last_px.g - cur_px.g) db_dg = (last_px.b - cur_px.b) - (last_px.g - cur_px.g) The difference to the current channel values are using a wraparound operation, so "10 - 13" will result in 253, while "250 + 7" will result in 1. Values are stored as unsigned integers with a bias of 32 for the green channel and a bias of 8 for the red and blue channel. .- QOI_OP_RUN ------------. | Byte[0] | | 7 6 5 4 3 2 1 0 | |-------+-----------------| | 1 1 | run | `-------------------------` 2-bit tag b11 6-bit run-length repeating the previous pixel: 1..62 The run-length is stored with a bias of -1. Note that the run-lengths 63 and 64 (b111110 and b111111) are illegal as they are occupied by the QOI_OP_RGB and QOI_OP_RGBA tags. .- QOI_OP_RGB ------------------------------------------. | Byte[0] | Byte[1] | Byte[2] | Byte[3] | | 7 6 5 4 3 2 1 0 | 7 .. 0 | 7 .. 0 | 7 .. 0 | |-------------------------+---------+---------+---------| | 1 1 1 1 1 1 1 0 | red | green | blue | `-------------------------------------------------------` 8-bit tag b11111110 8-bit red channel value 8-bit green channel value 8-bit blue channel value .- QOI_OP_RGBA ---------------------------------------------------. | Byte[0] | Byte[1] | Byte[2] | Byte[3] | Byte[4] | | 7 6 5 4 3 2 1 0 | 7 .. 0 | 7 .. 0 | 7 .. 0 | 7 .. 0 | |-------------------------+---------+---------+---------+---------| | 1 1 1 1 1 1 1 1 | red | green | blue | alpha | `-----------------------------------------------------------------` 8-bit tag b11111111 8-bit red channel value 8-bit green channel value 8-bit blue channel value 8-bit alpha channel value */ /* ----------------------------------------------------------------------------- Header - Public functions */ #ifndef QOI_H #define QOI_H #ifdef __cplusplus extern "C" { #endif /* A pointer to a qoi_desc struct has to be supplied to all of qoi's functions. It describes either the input format (for qoi_write and qoi_encode), or is filled with the description read from the file header (for qoi_read and qoi_decode). The colorspace in this qoi_desc is an enum where 0 = sRGB, i.e. gamma scaled RGB channels and a linear alpha channel 1 = all channels are linear You may use the constants QOI_SRGB or QOI_LINEAR. The colorspace is purely informative. It will be saved to the file header, but does not affect en-/decoding in any way. */ #define QOI_SRGB 0 #define QOI_LINEAR 1 typedef struct { unsigned int width; unsigned int height; unsigned char channels; unsigned char colorspace; } qoi_desc; #ifndef QOI_NO_STDIO /* Encode raw RGB or RGBA pixels into a QOI image and write it to the file system. The qoi_desc struct must be filled with the image width, height, number of channels (3 = RGB, 4 = RGBA) and the colorspace. The function returns 0 on failure (invalid parameters, or fopen or malloc failed) or the number of bytes written on success. */ int qoi_write(const char *filename, const void *data, const qoi_desc *desc); /* Read and decode a QOI image from the file system. If channels is 0, the number of channels from the file header is used. If channels is 3 or 4 the output format will be forced into this number of channels. The function either returns NULL on failure (invalid data, or malloc or fopen failed) or a pointer to the decoded pixels. On success, the qoi_desc struct will be filled with the description from the file header. The returned pixel data should be free()d after use. */ void *qoi_read(const char *filename, qoi_desc *desc, int channels); #endif /* QOI_NO_STDIO */ /* Encode raw RGB or RGBA pixels into a QOI image in memory. The function either returns NULL on failure (invalid parameters or malloc failed) or a pointer to the encoded data on success. On success the out_len is set to the size in bytes of the encoded data. The returned qoi data should be free()d after use. */ void *qoi_encode(const void *data, const qoi_desc *desc, int *out_len); /* Decode a QOI image from memory. The function either returns NULL on failure (invalid parameters or malloc failed) or a pointer to the decoded pixels. On success, the qoi_desc struct is filled with the description from the file header. The returned pixel data should be free()d after use. */ void *qoi_decode(const void *data, int size, qoi_desc *desc, int channels); #ifdef __cplusplus } #endif #endif /* QOI_H */ /* ----------------------------------------------------------------------------- Implementation */ #ifdef QOI_IMPLEMENTATION #include #include #ifndef QOI_MALLOC #define QOI_MALLOC(sz) malloc(sz) #define QOI_FREE(p) free(p) #endif #ifndef QOI_ZEROARR #define QOI_ZEROARR(a) memset((a),0,sizeof(a)) #endif #define QOI_OP_INDEX 0x00 /* 00xxxxxx */ #define QOI_OP_DIFF 0x40 /* 01xxxxxx */ #define QOI_OP_LUMA 0x80 /* 10xxxxxx */ #define QOI_OP_RUN 0xc0 /* 11xxxxxx */ #define QOI_OP_RGB 0xfe /* 11111110 */ #define QOI_OP_RGBA 0xff /* 11111111 */ #define QOI_MASK_2 0xc0 /* 11000000 */ #define QOI_COLOR_HASH(C) (C.rgba.r*3 + C.rgba.g*5 + C.rgba.b*7 + C.rgba.a*11) #define QOI_MAGIC \ (((unsigned int)'q') << 24 | ((unsigned int)'o') << 16 | \ ((unsigned int)'i') << 8 | ((unsigned int)'f')) #define QOI_HEADER_SIZE 14 /* 2GB is the max file size that this implementation can safely handle. We guard against anything larger than that, assuming the worst case with 5 bytes per pixel, rounded down to a nice clean value. 400 million pixels ought to be enough for anybody. */ #define QOI_PIXELS_MAX ((unsigned int)400000000) typedef union { struct { unsigned char r, g, b, a; } rgba; unsigned int v; } qoi_rgba_t; static const unsigned char qoi_padding[8] = {0,0,0,0,0,0,0,1}; void qoi_write_32(unsigned char *bytes, int *p, unsigned int v) { bytes[(*p)++] = (0xff000000 & v) >> 24; bytes[(*p)++] = (0x00ff0000 & v) >> 16; bytes[(*p)++] = (0x0000ff00 & v) >> 8; bytes[(*p)++] = (0x000000ff & v); } unsigned int qoi_read_32(const unsigned char *bytes, int *p) { unsigned int a = bytes[(*p)++]; unsigned int b = bytes[(*p)++]; unsigned int c = bytes[(*p)++]; unsigned int d = bytes[(*p)++]; return a << 24 | b << 16 | c << 8 | d; } void *qoi_encode(const void *data, const qoi_desc *desc, int *out_len) { int i, max_size, p, run; int px_len, px_end, px_pos, channels; unsigned char *bytes; const unsigned char *pixels; qoi_rgba_t index[64]; qoi_rgba_t px, px_prev; if ( data == NULL || out_len == NULL || desc == NULL || desc->width == 0 || desc->height == 0 || desc->channels < 3 || desc->channels > 4 || desc->colorspace > 1 || desc->height >= QOI_PIXELS_MAX / desc->width ) { return NULL; } max_size = desc->width * desc->height * (desc->channels + 1) + QOI_HEADER_SIZE + sizeof(qoi_padding); p = 0; bytes = (unsigned char *) QOI_MALLOC(max_size); if (!bytes) { return NULL; } qoi_write_32(bytes, &p, QOI_MAGIC); qoi_write_32(bytes, &p, desc->width); qoi_write_32(bytes, &p, desc->height); bytes[p++] = desc->channels; bytes[p++] = desc->colorspace; pixels = (const unsigned char *)data; QOI_ZEROARR(index); run = 0; px_prev.rgba.r = 0; px_prev.rgba.g = 0; px_prev.rgba.b = 0; px_prev.rgba.a = 255; px = px_prev; px_len = desc->width * desc->height * desc->channels; px_end = px_len - desc->channels; channels = desc->channels; for (px_pos = 0; px_pos < px_len; px_pos += channels) { if (channels == 4) { px = *(qoi_rgba_t *)(pixels + px_pos); } else { px.rgba.r = pixels[px_pos + 0]; px.rgba.g = pixels[px_pos + 1]; px.rgba.b = pixels[px_pos + 2]; } if (px.v == px_prev.v) { run++; if (run == 62 || px_pos == px_end) { bytes[p++] = QOI_OP_RUN | (run - 1); run = 0; } } else { int index_pos; if (run > 0) { bytes[p++] = QOI_OP_RUN | (run - 1); run = 0; } index_pos = QOI_COLOR_HASH(px) % 64; if (index[index_pos].v == px.v) { bytes[p++] = QOI_OP_INDEX | index_pos; } else { index[index_pos] = px; if (px.rgba.a == px_prev.rgba.a) { signed char vr = px.rgba.r - px_prev.rgba.r; signed char vg = px.rgba.g - px_prev.rgba.g; signed char vb = px.rgba.b - px_prev.rgba.b; signed char vg_r = vr - vg; signed char vg_b = vb - vg; if ( vr > -3 && vr < 2 && vg > -3 && vg < 2 && vb > -3 && vb < 2 ) { bytes[p++] = QOI_OP_DIFF | (vr + 2) << 4 | (vg + 2) << 2 | (vb + 2); } else if ( vg_r > -9 && vg_r < 8 && vg > -33 && vg < 32 && vg_b > -9 && vg_b < 8 ) { bytes[p++] = QOI_OP_LUMA | (vg + 32); bytes[p++] = (vg_r + 8) << 4 | (vg_b + 8); } else { bytes[p++] = QOI_OP_RGB; bytes[p++] = px.rgba.r; bytes[p++] = px.rgba.g; bytes[p++] = px.rgba.b; } } else { bytes[p++] = QOI_OP_RGBA; bytes[p++] = px.rgba.r; bytes[p++] = px.rgba.g; bytes[p++] = px.rgba.b; bytes[p++] = px.rgba.a; } } } px_prev = px; } for (i = 0; i < (int)sizeof(qoi_padding); i++) { bytes[p++] = qoi_padding[i]; } *out_len = p; return bytes; } void *qoi_decode(const void *data, int size, qoi_desc *desc, int channels) { const unsigned char *bytes; unsigned int header_magic; unsigned char *pixels; qoi_rgba_t index[64]; qoi_rgba_t px; int px_len, chunks_len, px_pos; int p = 0, run = 0; if ( data == NULL || desc == NULL || (channels != 0 && channels != 3 && channels != 4) || size < QOI_HEADER_SIZE + (int)sizeof(qoi_padding) ) { return NULL; } bytes = (const unsigned char *)data; header_magic = qoi_read_32(bytes, &p); desc->width = qoi_read_32(bytes, &p); desc->height = qoi_read_32(bytes, &p); desc->channels = bytes[p++]; desc->colorspace = bytes[p++]; if ( desc->width == 0 || desc->height == 0 || desc->channels < 3 || desc->channels > 4 || desc->colorspace > 1 || header_magic != QOI_MAGIC || desc->height >= QOI_PIXELS_MAX / desc->width ) { return NULL; } if (channels == 0) { channels = desc->channels; } px_len = desc->width * desc->height * channels; pixels = (unsigned char *) QOI_MALLOC(px_len); if (!pixels) { return NULL; } QOI_ZEROARR(index); px.rgba.r = 0; px.rgba.g = 0; px.rgba.b = 0; px.rgba.a = 255; chunks_len = size - (int)sizeof(qoi_padding); for (px_pos = 0; px_pos < px_len; px_pos += channels) { if (run > 0) { run--; } else if (p < chunks_len) { int b1 = bytes[p++]; if (b1 == QOI_OP_RGB) { px.rgba.r = bytes[p++]; px.rgba.g = bytes[p++]; px.rgba.b = bytes[p++]; } else if (b1 == QOI_OP_RGBA) { px.rgba.r = bytes[p++]; px.rgba.g = bytes[p++]; px.rgba.b = bytes[p++]; px.rgba.a = bytes[p++]; } else if ((b1 & QOI_MASK_2) == QOI_OP_INDEX) { px = index[b1]; } else if ((b1 & QOI_MASK_2) == QOI_OP_DIFF) { px.rgba.r += ((b1 >> 4) & 0x03) - 2; px.rgba.g += ((b1 >> 2) & 0x03) - 2; px.rgba.b += ( b1 & 0x03) - 2; } else if ((b1 & QOI_MASK_2) == QOI_OP_LUMA) { int b2 = bytes[p++]; int vg = (b1 & 0x3f) - 32; px.rgba.r += vg - 8 + ((b2 >> 4) & 0x0f); px.rgba.g += vg; px.rgba.b += vg - 8 + (b2 & 0x0f); } else if ((b1 & QOI_MASK_2) == QOI_OP_RUN) { run = (b1 & 0x3f); } index[QOI_COLOR_HASH(px) % 64] = px; } if (channels == 4) { *(qoi_rgba_t*)(pixels + px_pos) = px; } else { pixels[px_pos + 0] = px.rgba.r; pixels[px_pos + 1] = px.rgba.g; pixels[px_pos + 2] = px.rgba.b; } } return pixels; } #ifndef QOI_NO_STDIO #include int qoi_write(const char *filename, const void *data, const qoi_desc *desc) { FILE *f = fopen(filename, "wb"); int size; void *encoded; if (!f) { return 0; } encoded = qoi_encode(data, desc, &size); if (!encoded) { fclose(f); return 0; } fwrite(encoded, 1, size, f); fclose(f); QOI_FREE(encoded); return size; } void *qoi_read(const char *filename, qoi_desc *desc, int channels) { FILE *f = fopen(filename, "rb"); int size, bytes_read; void *pixels, *data; if (!f) { return NULL; } fseek(f, 0, SEEK_END); size = ftell(f); if (size <= 0) { fclose(f); return NULL; } fseek(f, 0, SEEK_SET); data = QOI_MALLOC(size); if (!data) { fclose(f); return NULL; } bytes_read = fread(data, 1, size, f); fclose(f); pixels = qoi_decode(data, bytes_read, desc, channels); QOI_FREE(data); return pixels; } #endif /* QOI_NO_STDIO */ #endif /* QOI_IMPLEMENTATION */ sail-0.9.8/src/sail-codecs/qoi/qoi.png000066400000000000000000000003721475535176100175430ustar00rootroot00000000000000PNG  IHDRRgAMA a!PLTEEEELLLQmtRNS@fbKGDH pHYs  UIDATc0cժU c#- 0R0hbhhl2$;$2@*j:!, v3(6IENDB`sail-0.9.8/src/sail-codecs/svg/000077500000000000000000000000001475535176100162525ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/svg/CMakeLists.txt000066400000000000000000000057511475535176100210220ustar00rootroot00000000000000find_library(RESVG_LIBRARY resvg) find_path(RESVG_INCLUDE_DIRS resvg.h) # Check the ReSVG version is fresh enough # if (RESVG_LIBRARY AND RESVG_INCLUDE_DIRS) cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${RESVG_INCLUDE_DIRS}) set(CMAKE_REQUIRED_LIBRARIES ${RESVG_LIBRARY}) check_c_source_compiles( " #include int main(int argc, char *argv[]) { resvg_options *resvg_options = resvg_options_create(); return 0; } " HAVE_RESVG_OPTIONS_CREATE ) cmake_pop_check_state() if (HAVE_RESVG_OPTIONS_CREATE) set(SAIL_RESVG ON) cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${RESVG_INCLUDE_DIRS}) check_c_source_compiles( " #include int main(int argc, char *argv[]) { resvg_fit_to resvg_fit_to = { RESVG_FIT_TO_ORIGINAL, 0 }; return 0; } " HAVE_RESVG_FIT_TO ) cmake_pop_check_state() set(SVG_LIBRARY ${RESVG_LIBRARY}) set(SVG_INCLUDE_DIRS ${RESVG_INCLUDE_DIRS}) # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_library(resvg_RELEASE_LIBRARY NAMES resvg) # find_library(resvg_DEBUG_LIBRARY NAMES resvg) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$:${resvg_RELEASE_LIBRARY}> $<$:${resvg_DEBUG_LIBRARY}>) # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_library,resvg,resvg" PARENT_SCOPE) endif() endif() # Fall back to NanoSVG # if (NOT SAIL_RESVG) # Don't use SAIL_CODEC_SVG_REQUIRED_OPTION as it requires CMake 3.18 # find_path(NANOSVG_INCLUDE_DIRS nanosvg/nanosvg.h) if (NANOSVG_INCLUDE_DIRS) set(SVG_INCLUDE_DIRS ${NANOSVG_INCLUDE_DIRS}) else() if (SAIL_CODEC_SVG_REQUIRED_OPTION STREQUAL "REQUIRED") message(FATAL_ERROR "SVG: Missing dependencies (ReSVG or NanoSVG)") else() return() endif() endif() endif() # Common codec configuration # sail_codec(NAME svg SOURCES svg.c ICON svg.png DEPENDENCY_INCLUDE_DIRS ${SVG_INCLUDE_DIRS} DEPENDENCY_LIBS ${SVG_LIBRARY}) if (SAIL_RESVG) target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE SAIL_RESVG) if (HAVE_RESVG_FIT_TO) target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE SAIL_HAVE_RESVG_FIT_TO) endif() else() target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE SAIL_NANOSVG) # NanoSVG requires the math library # find_library(MATH_LIBRARY m) if (MATH_LIBRARY) target_link_libraries(${SAIL_CODEC_TARGET} PRIVATE ${MATH_LIBRARY}) endif() endif() sail-0.9.8/src/sail-codecs/svg/svg.c000066400000000000000000000167221475535176100172250ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #ifdef SAIL_RESVG #include #else #define NANOSVG_IMPLEMENTATION #include #define NANOSVGRAST_IMPLEMENTATION #include #endif #include /* * Codec-specific state. */ struct svg_state { const struct sail_load_options *load_options; const struct sail_save_options *save_options; bool frame_loaded; #ifdef SAIL_RESVG resvg_options *resvg_options; resvg_render_tree *resvg_tree; #else NSVGimage *nsvg_image; NSVGrasterizer *nsvg_rasterizer; #endif }; static sail_status_t alloc_svg_state(const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct svg_state **svg_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct svg_state), &ptr)); *svg_state = ptr; **svg_state = (struct svg_state) { .load_options = load_options, .save_options = save_options, .frame_loaded = false, #ifdef SAIL_RESVG .resvg_options = NULL, .resvg_tree = NULL, #else .nsvg_image = NULL, .nsvg_rasterizer = NULL, #endif }; return SAIL_OK; } static void destroy_svg_state(struct svg_state *svg_state) { if (svg_state == NULL) { return; } #ifdef SAIL_RESVG if (svg_state->resvg_options != NULL) { resvg_options_destroy(svg_state->resvg_options); } if (svg_state->resvg_tree != NULL) { resvg_tree_destroy(svg_state->resvg_tree); } #else nsvgDeleteRasterizer(svg_state->nsvg_rasterizer); nsvgDelete(svg_state->nsvg_image); #endif sail_free(svg_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_svg(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct svg_state *svg_state; SAIL_TRY(alloc_svg_state(load_options, NULL, &svg_state)); *state = svg_state; /* Read the entire image as the resvg API requires. */ void *image_data; size_t image_size; SAIL_TRY(sail_alloc_data_from_io_contents(io, &image_data, &image_size)); #ifdef SAIL_RESVG svg_state->resvg_options = resvg_options_create(); const int result = resvg_parse_tree_from_data(image_data, image_size, svg_state->resvg_options, &svg_state->resvg_tree); sail_free(image_data); if (result != RESVG_OK) { SAIL_LOG_ERROR("SVG: Failed to load image"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } #else svg_state->nsvg_image = nsvgParse(image_data, "px", 96.0f); sail_free(image_data); if (svg_state->nsvg_image == NULL) { SAIL_LOG_ERROR("SVG: Failed to load image"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } svg_state->nsvg_rasterizer = nsvgCreateRasterizer(); if (svg_state->nsvg_rasterizer == NULL) { SAIL_LOG_ERROR("SVG: Failed to create NanoSVG rasterizer"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } #endif return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_svg(void *state, struct sail_image **image) { struct svg_state *svg_state = state; if (svg_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } svg_state->frame_loaded = true; struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (svg_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = SAIL_PIXEL_FORMAT_BPP32_RGBA; image_local->source_image->compression = SAIL_COMPRESSION_NONE; } #ifdef SAIL_RESVG const resvg_size image_size = resvg_get_image_size(svg_state->resvg_tree); image_local->width = (unsigned)image_size.width; image_local->height = (unsigned)image_size.height; #else image_local->width = (unsigned)svg_state->nsvg_image->width; image_local->height = (unsigned)svg_state->nsvg_image->height; #endif image_local->pixel_format = SAIL_PIXEL_FORMAT_BPP32_RGBA; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_svg(void *state, struct sail_image *image) { const struct svg_state *svg_state = state; memset(image->pixels, 0, (size_t)image->bytes_per_line * image->height); #ifdef SAIL_RESVG #ifdef SAIL_HAVE_RESVG_FIT_TO const resvg_fit_to resvg_fit_to = { RESVG_FIT_TO_ORIGINAL, 0 }; resvg_render(svg_state->resvg_tree, resvg_fit_to, image->width, image->height, image->pixels); #else resvg_render(svg_state->resvg_tree, resvg_transform_identity(), image->width, image->height, image->pixels); #endif #else nsvgRasterize(svg_state->nsvg_rasterizer, svg_state->nsvg_image, /* x */ 0, /* y */ 0, /* scale */ 1, image->pixels, (int)image->width, (int)image->height, (int)image->bytes_per_line); #endif return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_svg(void **state) { struct svg_state *svg_state = *state; *state = NULL; destroy_svg_state(svg_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_svg(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_svg(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_svg(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_svg(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/svg/svg.codec.info.in000066400000000000000000000006571475535176100214170ustar00rootroot00000000000000# SVG codec information # [codec] layout=8 version=0.1.2 priority=HIGH name=SVG description=Scalable Vector Graphics magic-numbers=3C 3F 78 6D 6C extensions=svg;svgz mime-types=image/svg+xml [load-features] features=STATIC;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/svg/svg.png000066400000000000000000000004021475535176100175530ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLLh 1?tRNS@fbKGDH pHYs  tIME 9F_$]IDATcPc̙IPd( B12(Ϝ #include #include #include #include #include "helpers.h" static const uint16_t TGA2_EXTENSION_AREA_LENGTH = 495; sail_status_t tga_private_read_file_header(struct sail_io *io, struct TgaFileHeader *file_header) { SAIL_TRY(io->strict_read(io->stream, &file_header->id_length, sizeof(file_header->id_length))); SAIL_TRY(io->strict_read(io->stream, &file_header->color_map_type, sizeof(file_header->color_map_type))); SAIL_TRY(io->strict_read(io->stream, &file_header->image_type, sizeof(file_header->image_type))); SAIL_TRY(io->strict_read(io->stream, &file_header->first_color_map_entry_index, sizeof(file_header->first_color_map_entry_index))); SAIL_TRY(io->strict_read(io->stream, &file_header->color_map_elements, sizeof(file_header->color_map_elements))); SAIL_TRY(io->strict_read(io->stream, &file_header->color_map_entry_size, sizeof(file_header->color_map_entry_size))); SAIL_TRY(io->strict_read(io->stream, &file_header->x, sizeof(file_header->x))); SAIL_TRY(io->strict_read(io->stream, &file_header->y, sizeof(file_header->y))); SAIL_TRY(io->strict_read(io->stream, &file_header->width, sizeof(file_header->width))); SAIL_TRY(io->strict_read(io->stream, &file_header->height, sizeof(file_header->height))); SAIL_TRY(io->strict_read(io->stream, &file_header->bpp, sizeof(file_header->bpp))); SAIL_TRY(io->strict_read(io->stream, &file_header->descriptor, sizeof(file_header->descriptor))); return SAIL_OK; } sail_status_t tga_private_read_file_footer(struct sail_io *io, struct TgaFooter *footer) { SAIL_TRY(io->strict_read(io->stream, &footer->extension_area_offset, sizeof(footer->extension_area_offset))); SAIL_TRY(io->strict_read(io->stream, &footer->developer_area_offset, sizeof(footer->developer_area_offset))); SAIL_TRY(io->strict_read(io->stream, &footer->signature, sizeof(footer->signature))); return SAIL_OK; } enum SailPixelFormat tga_private_sail_pixel_format(int image_type, int bpp) { switch (image_type) { case TGA_INDEXED: case TGA_INDEXED_RLE: { return SAIL_PIXEL_FORMAT_BPP8_INDEXED; } case TGA_TRUE_COLOR: case TGA_TRUE_COLOR_RLE: { switch (bpp) { case 16: return SAIL_PIXEL_FORMAT_BPP16_BGR555; case 24: return SAIL_PIXEL_FORMAT_BPP24_BGR; case 32: return SAIL_PIXEL_FORMAT_BPP32_BGRA; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } case TGA_GRAY: case TGA_GRAY_RLE: { switch (bpp) { case 8: return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; default: return SAIL_PIXEL_FORMAT_UNKNOWN; } } default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } enum SailPixelFormat tga_private_palette_bpp_to_sail_pixel_format(int bpp) { switch (bpp) { case 15: case 16: case 24: return SAIL_PIXEL_FORMAT_BPP24_RGB; case 32: return SAIL_PIXEL_FORMAT_BPP32_RGBA; default: { SAIL_LOG_ERROR("TGA: Palette bit depth %d is not supported", bpp); return SAIL_PIXEL_FORMAT_UNKNOWN; } } } sail_status_t tga_private_fetch_id(struct sail_io *io, const struct TgaFileHeader *file_header, struct sail_meta_data_node **meta_data_node) { struct sail_meta_data_node *meta_data_node_local; SAIL_TRY(sail_alloc_meta_data_node_and_value(&meta_data_node_local)); struct sail_meta_data *meta_data = meta_data_node_local->meta_data; SAIL_TRY_OR_CLEANUP(sail_alloc_variant(&meta_data->value), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); meta_data->key = SAIL_META_DATA_ID; meta_data->value->type = SAIL_VARIANT_TYPE_STRING; meta_data->value->size = file_header->id_length + 1; SAIL_TRY_OR_CLEANUP(sail_malloc(meta_data->value->size, &meta_data->value->value), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); SAIL_TRY_OR_CLEANUP(io->strict_read(io->stream, meta_data->value->value, meta_data->value->size - 1), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); (sail_variant_to_string(meta_data->value))[meta_data->value->size - 1] = '\0'; *meta_data_node = meta_data_node_local; return SAIL_OK; } sail_status_t tga_private_fetch_extension(struct sail_io *io, double *gamma, struct sail_meta_data_node **meta_data_node) { /* Find the last node. */ struct sail_meta_data_node **last_meta_data_node = meta_data_node; while (*last_meta_data_node != NULL) { last_meta_data_node = &(*last_meta_data_node)->next; } /* Extension area length. */ { uint16_t length; SAIL_TRY(io->strict_read(io->stream, &length, sizeof(length))); if (length != TGA2_EXTENSION_AREA_LENGTH) { SAIL_LOG_WARNING("TGA: Don't know how to handle extension area length of %u bytes (expected %u)", length, TGA2_EXTENSION_AREA_LENGTH); return SAIL_OK; } } /* Author. */ { char author[41]; SAIL_TRY(io->strict_read(io->stream, author, sizeof(author))); author[40] = '\0'; if (strlen(author) > 0) { SAIL_TRY(sail_alloc_meta_data_node(last_meta_data_node)); SAIL_TRY(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_AUTHOR, &(*last_meta_data_node)->meta_data)); SAIL_TRY(sail_set_variant_string((*last_meta_data_node)->meta_data->value, author)); last_meta_data_node = &(*last_meta_data_node)->next; } } /* Comments. */ { char comments[80*4 + 1]; SAIL_TRY(io->strict_read(io->stream, comments, 81)); SAIL_TRY(io->strict_read(io->stream, comments + strlen(comments), 81)); SAIL_TRY(io->strict_read(io->stream, comments + strlen(comments), 81)); SAIL_TRY(io->strict_read(io->stream, comments + strlen(comments), 81)); comments[80*4] = '\0'; if (strlen(comments) > 0) { SAIL_TRY(sail_alloc_meta_data_node(last_meta_data_node)); SAIL_TRY(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_COMMENT, &(*last_meta_data_node)->meta_data)); SAIL_TRY(sail_set_variant_string((*last_meta_data_node)->meta_data->value, comments)); last_meta_data_node = &(*last_meta_data_node)->next; } } /* Date/time stamp. YYYY.MM.DD hh:mm:ss. */ { uint16_t month, day, year, hour, minute, second; SAIL_TRY(io->strict_read(io->stream, &month, sizeof(month))); SAIL_TRY(io->strict_read(io->stream, &day, sizeof(day))); SAIL_TRY(io->strict_read(io->stream, &year, sizeof(year))); SAIL_TRY(io->strict_read(io->stream, &hour, sizeof(hour))); SAIL_TRY(io->strict_read(io->stream, &minute, sizeof(minute))); SAIL_TRY(io->strict_read(io->stream, &second, sizeof(second))); if (month != 0 || day != 0 || year != 0 || hour != 0 || minute != 0 || second != 0) { struct tm time_tm = { .tm_sec = second, .tm_min = minute, .tm_hour = hour, .tm_mday = day, .tm_mon = month - 1, .tm_year = year - 1900, .tm_wday = 0, .tm_yday = 0, .tm_isdst = 0 }; const unsigned long timestamp = (unsigned long)mktime(&time_tm); SAIL_TRY(sail_alloc_meta_data_node(last_meta_data_node)); SAIL_TRY(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_CREATION_TIME, &(*last_meta_data_node)->meta_data)); SAIL_TRY(sail_set_variant_unsigned_long((*last_meta_data_node)->meta_data->value, timestamp)); last_meta_data_node = &(*last_meta_data_node)->next; } } /* Job Id. */ { char job[41]; SAIL_TRY(io->strict_read(io->stream, job, sizeof(job))); job[40] = '\0'; if (strlen(job) > 0) { SAIL_TRY(sail_alloc_meta_data_node(last_meta_data_node)); SAIL_TRY(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_JOB, &(*last_meta_data_node)->meta_data)); SAIL_TRY(sail_set_variant_string((*last_meta_data_node)->meta_data->value, job)); last_meta_data_node = &(*last_meta_data_node)->next; } } /* Job Time. */ { uint16_t hour, minute, second; SAIL_TRY(io->strict_read(io->stream, &hour, sizeof(hour))); SAIL_TRY(io->strict_read(io->stream, &minute, sizeof(minute))); SAIL_TRY(io->strict_read(io->stream, &second, sizeof(second))); if (hour != 0 || minute != 0 || second != 0) { char timestamp[20]; snprintf(timestamp, sizeof(timestamp), "%05d:%02d:%02d", hour, minute, second); SAIL_TRY(sail_alloc_meta_data_node(last_meta_data_node)); SAIL_TRY(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_TIME_CONSUMED, &(*last_meta_data_node)->meta_data)); SAIL_TRY(sail_set_variant_string((*last_meta_data_node)->meta_data->value, timestamp)); last_meta_data_node = &(*last_meta_data_node)->next; } } /* Software. */ { char software[41]; SAIL_TRY(io->strict_read(io->stream, software, sizeof(software))); software[40] = '\0'; if (strlen(software) > 0) { SAIL_TRY(sail_alloc_meta_data_node(last_meta_data_node)); SAIL_TRY(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_SOFTWARE, &(*last_meta_data_node)->meta_data)); SAIL_TRY(sail_set_variant_string((*last_meta_data_node)->meta_data->value, software)); last_meta_data_node = &(*last_meta_data_node)->next; } } /* Software Version. */ { uint16_t version; uint8_t version_letter; SAIL_TRY(io->strict_read(io->stream, &version, sizeof(version))); SAIL_TRY(io->strict_read(io->stream, &version_letter, sizeof(version_letter))); if (version != 0) { char version_string[10]; const double version_divided = version / 100.0; if (version_letter == ' ') { snprintf(version_string, sizeof(version_string), "%.2f", version_divided); } else { snprintf(version_string, sizeof(version_string), "%.2f.%c", version_divided, version_letter); } SAIL_TRY(sail_alloc_meta_data_node(last_meta_data_node)); SAIL_TRY(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_SOFTWARE_VERSION, &(*last_meta_data_node)->meta_data)); SAIL_TRY(sail_set_variant_string((*last_meta_data_node)->meta_data->value, version_string)); last_meta_data_node = &(*last_meta_data_node)->next; } } /* Key Color. */ SAIL_TRY(io->seek(io->stream, 4, SEEK_CUR)); /* Pixel Aspect Ratio. */ SAIL_TRY(io->seek(io->stream, 4, SEEK_CUR)); /* Gamma. */ { uint16_t gamma_num, gamma_denom; SAIL_TRY(io->strict_read(io->stream, &gamma_num, sizeof(gamma_num))); SAIL_TRY(io->strict_read(io->stream, &gamma_denom, sizeof(gamma_denom))); if (gamma_denom != 0) { *gamma = (double)gamma_num / gamma_denom; } } return SAIL_OK; } sail_status_t tga_private_fetch_palette(struct sail_io *io, const struct TgaFileHeader *file_header, struct sail_palette **palette) { size_t element_size_in_bytes = ((size_t)file_header->color_map_entry_size + 7) / 8; size_t bytes_to_skip = file_header->first_color_map_entry_index * element_size_in_bytes; if (bytes_to_skip > 0) { SAIL_TRY(io->seek(io->stream, (long)bytes_to_skip, SEEK_CUR)); } enum SailPixelFormat palette_pixel_format = tga_private_palette_bpp_to_sail_pixel_format(file_header->color_map_entry_size); if (palette_pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } unsigned palette_elements = (unsigned)file_header->color_map_elements - file_header->first_color_map_entry_index; struct sail_palette *palette_local; SAIL_TRY(sail_alloc_palette_for_data(palette_pixel_format, palette_elements, &palette_local)); unsigned char *palette_data = palette_local->data; for (int i = file_header->first_color_map_entry_index; i < file_header->color_map_elements; i++) { SAIL_ALIGNAS(uint16_t) unsigned char data[4]; SAIL_TRY_OR_CLEANUP(io->strict_read(io->stream, data, element_size_in_bytes), /* cleanup */ sail_destroy_palette(palette_local)); switch (file_header->color_map_entry_size) { case 15: case 16: { const uint16_t *data_as_word = (const uint16_t *)data; *palette_data++ = (unsigned char)(((*data_as_word & 0x1f) << 3) << 0); *palette_data++ = (unsigned char)(((*data_as_word & 0x3e0) >> 5) << 3); *palette_data++ = (unsigned char)(((*data_as_word & 0x7c00) >> 10) << 3); break; } case 24: { *palette_data++ = data[2]; *palette_data++ = data[1]; *palette_data++ = data[0]; break; } case 32: { *palette_data++ = data[2]; *palette_data++ = data[1]; *palette_data++ = data[0]; *palette_data++ = data[3]; break; } default: { SAIL_LOG_ERROR("TGA: Internal error: Unhandled palette pixel format"); sail_destroy_palette(palette_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } } *palette = palette_local; return SAIL_OK; } sail-0.9.8/src/sail-codecs/tga/helpers.h000066400000000000000000000062731475535176100200510ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_TGA_HELPERS_H #define SAIL_TGA_HELPERS_H #include #include #include #include struct sail_io; struct sail_meta_data_node; struct sail_palette; enum TgaColorMapType { TGA_HAS_NO_COLOR_MAP = 0, TGA_HAS_COLOR_MAP = 1, }; enum TgaImageType { TGA_NO_IMAGE = 0, TGA_INDEXED = 1, TGA_TRUE_COLOR = 2, TGA_GRAY = 3, TGA_INDEXED_RLE = 9, TGA_TRUE_COLOR_RLE = 10, TGA_GRAY_RLE = 11, }; struct TgaFileHeader { uint8_t id_length; uint8_t color_map_type; /* See TgaColorMapType. */ uint8_t image_type; /* See TgaImageType. */ uint16_t first_color_map_entry_index; uint16_t color_map_elements; uint8_t color_map_entry_size; /* 15, 16, 24, 32. */ uint16_t x; uint16_t y; uint16_t width; uint16_t height; uint8_t bpp; /* 8, 16, 24, 32. */ uint8_t descriptor; /* bits 3-0: n of alpha bits, bit 4: flipped H, bit 5 = flipped V. */ }; struct TgaFooter { uint32_t extension_area_offset; uint32_t developer_area_offset; uint8_t signature[18]; /* "TRUEVISION-XFILE.\0" */ }; SAIL_HIDDEN sail_status_t tga_private_read_file_header(struct sail_io *io, struct TgaFileHeader *file_header); SAIL_HIDDEN sail_status_t tga_private_read_file_footer(struct sail_io *io, struct TgaFooter *footer); SAIL_HIDDEN enum SailPixelFormat tga_private_sail_pixel_format(int image_type, int bpp); SAIL_HIDDEN enum SailPixelFormat tga_private_palette_bpp_to_sail_pixel_format(int bpp); SAIL_HIDDEN sail_status_t tga_private_fetch_id(struct sail_io *io, const struct TgaFileHeader *file_header, struct sail_meta_data_node **meta_data_node); SAIL_HIDDEN sail_status_t tga_private_fetch_extension(struct sail_io *io, double *gamma, struct sail_meta_data_node **meta_data_node); SAIL_HIDDEN sail_status_t tga_private_fetch_palette(struct sail_io *io, const struct TgaFileHeader *file_header, struct sail_palette **palette); #endif sail-0.9.8/src/sail-codecs/tga/tga.c000066400000000000000000000234121475535176100171470ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "helpers.h" static const char * const TGA_SIGNATURE = "TRUEVISION-XFILE."; static const int TGA_FOOTER_SIZE = 26; /* * Codec-specific state. */ struct tga_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; struct TgaFileHeader file_header; struct TgaFooter footer; bool frame_loaded; bool tga2; bool flipped_h; bool flipped_v; }; static sail_status_t alloc_tga_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct tga_state **tga_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct tga_state), &ptr)); *tga_state = ptr; **tga_state = (struct tga_state) { .io = io, .load_options = load_options, .save_options = save_options, .frame_loaded = false, .tga2 = false, .flipped_h = false, .flipped_v = false, }; return SAIL_OK; } static void destroy_tga_state(struct tga_state *tga_state) { if (tga_state == NULL) { return; } sail_free(tga_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_tga(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct tga_state *tga_state; SAIL_TRY(alloc_tga_state(io, load_options, NULL, &tga_state)); *state = tga_state; /* Read TGA footer. */ SAIL_TRY(tga_state->io->seek(tga_state->io->stream, -TGA_FOOTER_SIZE, SEEK_END)); SAIL_TRY(tga_private_read_file_footer(io, &tga_state->footer)); SAIL_TRY(tga_state->io->seek(tga_state->io->stream, 0, SEEK_SET)); tga_state->tga2 = strcmp(TGA_SIGNATURE, (const char *)tga_state->footer.signature) == 0; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_tga(void *state, struct sail_image **image) { struct tga_state *tga_state = state; if (tga_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } tga_state->frame_loaded = true; SAIL_TRY(tga_private_read_file_header(tga_state->io, &tga_state->file_header)); tga_state->flipped_h = tga_state->file_header.descriptor & 0x10; /* 4th bit set = flipped H. */ tga_state->flipped_v = (tga_state->file_header.descriptor & 0x20) == 0; /* 5th bit unset = flipped V. */ enum SailPixelFormat pixel_format = tga_private_sail_pixel_format(tga_state->file_header.image_type, tga_state->file_header.bpp); if (pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (tga_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); if (tga_state->flipped_h) { image_local->source_image->orientation = SAIL_ORIENTATION_MIRRORED_HORIZONTALLY; } else if (tga_state->flipped_v) { image_local->source_image->orientation = SAIL_ORIENTATION_MIRRORED_VERTICALLY; } switch (tga_state->file_header.image_type) { case TGA_INDEXED_RLE: case TGA_TRUE_COLOR_RLE: case TGA_GRAY_RLE: { image_local->source_image->compression = SAIL_COMPRESSION_RLE; break; } default: { image_local->source_image->compression = SAIL_COMPRESSION_NONE; } } } image_local->width = tga_state->file_header.width; image_local->height = tga_state->file_header.height; image_local->pixel_format = pixel_format; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); /* Identificator. */ if (tga_state->file_header.id_length > 0) { SAIL_TRY_OR_CLEANUP(tga_private_fetch_id(tga_state->io, &tga_state->file_header, &image_local->meta_data_node), /* cleanup */ sail_destroy_image(image_local)); } /* Extension area. */ if (tga_state->tga2 && tga_state->footer.extension_area_offset > 0) { /* Seek to offset. */ size_t offset; SAIL_TRY_OR_CLEANUP(tga_state->io->tell(tga_state->io->stream, &offset), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(tga_state->io->seek(tga_state->io->stream, (long)tga_state->footer.extension_area_offset, SEEK_SET), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(tga_private_fetch_extension(tga_state->io, &image_local->gamma, &image_local->meta_data_node), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(tga_state->io->seek(tga_state->io->stream, (long)offset, SEEK_SET), /* cleanup */ sail_destroy_image(image_local)); } /* Palette. */ if (tga_state->file_header.color_map_type == TGA_HAS_COLOR_MAP) { SAIL_TRY_OR_CLEANUP(tga_private_fetch_palette(tga_state->io, &tga_state->file_header, &image_local->palette), /* cleanup */ sail_destroy_image(image_local)); } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_tga(void *state, struct sail_image *image) { struct tga_state *tga_state = state; switch (tga_state->file_header.image_type) { case TGA_INDEXED: case TGA_TRUE_COLOR: case TGA_GRAY: { SAIL_TRY(tga_state->io->strict_read(tga_state->io->stream, image->pixels, (size_t)image->bytes_per_line * image->height)); break; } case TGA_INDEXED_RLE: case TGA_TRUE_COLOR_RLE: case TGA_GRAY_RLE: { const unsigned pixel_size = (tga_state->file_header.bpp + 7) / 8; const unsigned pixels_num = image->width * image->height; unsigned char *pixels = image->pixels; for (unsigned i = 0; i < pixels_num;) { unsigned char marker; SAIL_TRY(tga_state->io->strict_read(tga_state->io->stream, &marker, 1)); unsigned count = (marker & 0x7F) + 1; /* 7th bit set = RLE packet. */ if (marker & 0x80) { unsigned char pixel[4]; SAIL_TRY(tga_state->io->strict_read(tga_state->io->stream, pixel, pixel_size)); for (unsigned j = 0; j < count; j++, i++) { memcpy(pixels, pixel, pixel_size); pixels += pixel_size; } } else { for (unsigned j = 0; j < count; j++, i++) { SAIL_TRY(tga_state->io->strict_read(tga_state->io->stream, pixels, pixel_size)); pixels += pixel_size; } } } break; } } /* TODO: We can avoid this by putting pixels in reverse order like in the BMP codec. */ if (tga_state->flipped_v) { sail_mirror_vertically(image); } if (tga_state->flipped_h) { sail_mirror_horizontally(image); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_tga(void **state) { struct tga_state *tga_state = *state; *state = NULL; destroy_tga_state(tga_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_tga(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_tga(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_tga(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_tga(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/tga/tga.codec.info.in000066400000000000000000000006701475535176100213420ustar00rootroot00000000000000# TGA codec information # [codec] layout=8 version=0.7.2 priority=LOW name=TGA description=Truevision TGA magic-numbers= extensions=tga;vda;vst;icb;tpic mime-types=image/x-targa;image/x-tga [load-features] features=STATIC;META-DATA;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/tga/tga.png000066400000000000000000000004001475535176100175010ustar00rootroot00000000000000PNG  IHDRR!PLTEFFFNNNtRNS@fbKGDH pHYs  tIME 9!oXIDATcPc̙IPd( B12(Zljae XcXA "0]ps@MfC0 IENDB`sail-0.9.8/src/sail-codecs/tiff/000077500000000000000000000000001475535176100164035ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/tiff/CMakeLists.txt000066400000000000000000000132671475535176100211540ustar00rootroot00000000000000find_package(TIFF ${SAIL_CODEC_TIFF_REQUIRED_OPTION}) if (NOT TIFF_FOUND) return() endif() # This will add the following CMake rules to the CMake config for static builds so a client # application links against the required dependencies: # # find_dependency(TIFF REQUIRED) # set_property(TARGET SAIL::sail-codecs APPEND PROPERTY INTERFACE_LINK_LIBRARIES TIFF::TIFF) # set(SAIL_CODECS_FIND_DEPENDENCIES ${SAIL_CODECS_FIND_DEPENDENCIES} "find_dependency,TIFF,TIFF::TIFF" PARENT_SCOPE) # Check for TIFF features set(TIFF_CODECS ADOBE_DEFLATE CCITTRLE CCITTRLEW CCITT_T4 CCITT_T6 DCS DEFLATE IT8BL IT8CTPAD IT8LW IT8MP JBIG JPEG JP2000 JXL LERC LZMA LZW NEXT NONE OJPEG PACKBITS PIXARFILM PIXARLOG SGILOG24 SGILOG T43 T85 THUNDERSCAN WEBP ZSTD) foreach (tiff_codec IN LISTS TIFF_CODECS) # Check compression definitions # cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${TIFF_INCLUDE_DIRS}) check_c_source_compiles( " #include int main(int argc, char *argv[]) { int compression = COMPRESSION_${tiff_codec}; return 0; } " HAVE_TIFF_${tiff_codec} ) cmake_pop_check_state() # Check if we can actually save defined compressions # if (SAIL_VCPKG OR CMAKE_CROSSCOMPILING) # Enable compression and hope for the best. The reason is that check_c_source_runs() # fails in VCPKG or cross-compilation mode. # # For VCPKG, it fails as it cannot find tiff.dll, see https://github.com/microsoft/vcpkg/issues/16793 # message("-- Skipping Test and Explicitly Enabling HAVE_TIFF_WRITE_${tiff_codec}") set(HAVE_TIFF_WRITE_${tiff_codec} ON) else() cmake_push_check_state(RESET) set(CMAKE_REQUIRED_INCLUDES ${TIFF_INCLUDE_DIRS}) set(CMAKE_REQUIRED_LIBRARIES ${TIFF_LIBRARIES}) check_c_source_runs( " #include #include #include int main(int argc, char *argv[]) { TIFF *tiff = TIFFOpen(\"${CMAKE_CURRENT_BINARY_DIR}/file.tiff\", \"w\"); if (tiff == NULL) { return 1; } /* * This check is not quite correct as some codecs may not support * these parameters. For example, JBIG doesn't support RGBA. */ TIFFSetField(tiff, TIFFTAG_IMAGEWIDTH, 1); TIFFSetField(tiff, TIFFTAG_IMAGELENGTH, 1); TIFFSetField(tiff, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); TIFFSetField(tiff, TIFFTAG_SAMPLESPERPIXEL, 4); TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, 8); TIFFSetField(tiff, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); TIFFSetField(tiff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); TIFFSetField(tiff, TIFFTAG_COMPRESSION, COMPRESSION_${tiff_codec}); TIFFSetField(tiff, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(tiff, (uint32)-1)); unsigned char scan[4]; memset(scan, 255, sizeof(scan)); if (TIFFWriteScanline(tiff, scan, 0, 0) < 0) { return 2; } TIFFClose(tiff); return 0; } " HAVE_TIFF_WRITE_${tiff_codec} ) cmake_pop_check_state() endif() if (HAVE_TIFF_WRITE_${tiff_codec}) # Match the SAIL namings # string(REPLACE "_" "-" tiff_codec_fixed ${tiff_codec}) string(REPLACE "CCITTRLE" "CCITT-RLE" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "CCITTRLEW" "CCITT-RLEW" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "IT8BL" "IT8-BL" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "IT8CTPAD" "IT8-CTPAD" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "IT8LW" "IT8-LW" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "IT8MP" "IT8-MP" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "JP2000" "JPEG-2000" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "JXL" "JPEG-XL" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "PIXARLOG" "PIXAR-LOG" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "PIXARFILM" "PIXAR-FILM" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "SGILOG24" "SGI-LOG24" tiff_codec_fixed ${tiff_codec_fixed}) string(REPLACE "SGILOG" "SGI-LOG" tiff_codec_fixed ${tiff_codec_fixed}) # Used in .codec.info # list(APPEND TIFF_CODEC_INFO_COMPRESSIONS ${tiff_codec_fixed}) endif() endforeach() # Default compression. Used in .codec.info # if (JPEG IN_LIST TIFF_CODEC_INFO_COMPRESSIONS) set(TIFF_CODEC_INFO_DEFAULT_COMPRESSION JPEG) else() set(TIFF_CODEC_INFO_DEFAULT_COMPRESSION NONE) endif() # Common codec configuration # sail_codec(NAME tiff SOURCES helpers.h helpers.c io.h io.c tiff.c ICON tiff.png DEPENDENCY_INCLUDE_DIRS ${TIFF_INCLUDE_DIRS} DEPENDENCY_LIBS ${TIFF_LIBRARIES}) foreach (tiff_codec IN LISTS TIFF_CODECS) if (HAVE_TIFF_${tiff_codec}) target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE SAIL_HAVE_TIFF_${tiff_codec}) endif() if (HAVE_TIFF_WRITE_${tiff_codec}) target_compile_definitions(${SAIL_CODEC_TARGET} PRIVATE SAIL_HAVE_TIFF_WRITE_${tiff_codec}) endif() endforeach() sail-0.9.8/src/sail-codecs/tiff/helpers.c000066400000000000000000000414551475535176100202220ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include "helpers.h" void tiff_private_my_error_fn(const char *module, const char *format, va_list ap) { char buffer[160]; vsnprintf(buffer, sizeof(buffer), format, ap); if (module != NULL) { SAIL_LOG_ERROR("TIFF: %s: %s", module, buffer); } else { SAIL_LOG_ERROR("TIFF: %s", buffer); } } void tiff_private_my_warning_fn(const char *module, const char *format, va_list ap) { char buffer[160]; vsnprintf(buffer, sizeof(buffer), format, ap); if (module != NULL) { SAIL_LOG_WARNING("TIFF: %s: %s", module, buffer); } else { SAIL_LOG_WARNING("TIFF: %s", buffer); } } enum SailCompression tiff_private_compression_to_sail_compression(int compression) { switch (compression) { #ifdef SAIL_HAVE_TIFF_ADOBE_DEFLATE case COMPRESSION_ADOBE_DEFLATE: return SAIL_COMPRESSION_ADOBE_DEFLATE; #endif #ifdef SAIL_HAVE_TIFF_CCITTRLE case COMPRESSION_CCITTRLE: return SAIL_COMPRESSION_CCITT_RLE; #endif #ifdef SAIL_HAVE_TIFF_CCITTRLEW case COMPRESSION_CCITTRLEW: return SAIL_COMPRESSION_CCITT_RLEW; #endif #ifdef SAIL_HAVE_TIFF_CCITT_T4 case COMPRESSION_CCITT_T4: return SAIL_COMPRESSION_CCITT_T4; #endif #ifdef SAIL_HAVE_TIFF_CCITT_T6 case COMPRESSION_CCITT_T6: return SAIL_COMPRESSION_CCITT_T6; #endif #ifdef SAIL_HAVE_TIFF_DCS case COMPRESSION_DCS: return SAIL_COMPRESSION_DCS; #endif #ifdef SAIL_HAVE_TIFF_DEFLATE case COMPRESSION_DEFLATE: return SAIL_COMPRESSION_DEFLATE; #endif #ifdef SAIL_HAVE_TIFF_IT8BL case COMPRESSION_IT8BL: return SAIL_COMPRESSION_IT8_BL; #endif #ifdef SAIL_HAVE_TIFF_IT8CTPAD case COMPRESSION_IT8CTPAD: return SAIL_COMPRESSION_IT8_CTPAD; #endif #ifdef SAIL_HAVE_TIFF_IT8LW case COMPRESSION_IT8LW: return SAIL_COMPRESSION_IT8_LW; #endif #ifdef SAIL_HAVE_TIFF_IT8MP case COMPRESSION_IT8MP: return SAIL_COMPRESSION_IT8_MP; #endif #ifdef SAIL_HAVE_TIFF_JBIG case COMPRESSION_JBIG: return SAIL_COMPRESSION_JBIG; #endif #ifdef SAIL_HAVE_TIFF_JPEG case COMPRESSION_JPEG: return SAIL_COMPRESSION_JPEG; #endif #ifdef SAIL_HAVE_TIFF_JP2000 case COMPRESSION_JP2000: return SAIL_COMPRESSION_JPEG_2000; #endif #ifdef SAIL_HAVE_TIFF_JXL case COMPRESSION_JXL: return SAIL_COMPRESSION_JPEG_XL; #endif #ifdef SAIL_HAVE_TIFF_LERC case COMPRESSION_LERC: return SAIL_COMPRESSION_LERC; #endif #ifdef SAIL_HAVE_TIFF_LZMA case COMPRESSION_LZMA: return SAIL_COMPRESSION_LZMA; #endif #ifdef SAIL_HAVE_TIFF_LZW case COMPRESSION_LZW: return SAIL_COMPRESSION_LZW; #endif #ifdef SAIL_HAVE_TIFF_NEXT case COMPRESSION_NEXT: return SAIL_COMPRESSION_NEXT; #endif #ifdef SAIL_HAVE_TIFF_NONE case COMPRESSION_NONE: return SAIL_COMPRESSION_NONE; #endif #ifdef SAIL_HAVE_TIFF_OJPEG case COMPRESSION_OJPEG: return SAIL_COMPRESSION_OJPEG; #endif #ifdef SAIL_HAVE_TIFF_PACKBITS case COMPRESSION_PACKBITS: return SAIL_COMPRESSION_PACKBITS; #endif #ifdef SAIL_HAVE_TIFF_PIXARFILM case COMPRESSION_PIXARFILM: return SAIL_COMPRESSION_PIXAR_FILM; #endif #ifdef SAIL_HAVE_TIFF_PIXARLOG case COMPRESSION_PIXARLOG: return SAIL_COMPRESSION_PIXAR_LOG; #endif #ifdef SAIL_HAVE_TIFF_SGILOG24 case COMPRESSION_SGILOG24: return SAIL_COMPRESSION_RLE; #endif #ifdef SAIL_HAVE_TIFF_SGILOG case COMPRESSION_SGILOG: return SAIL_COMPRESSION_SGI_LOG; #endif #ifdef SAIL_HAVE_TIFF_T43 case COMPRESSION_T43: return SAIL_COMPRESSION_SGI_LOG24; #endif #ifdef SAIL_HAVE_TIFF_T85 case COMPRESSION_T85: return SAIL_COMPRESSION_T43; #endif #ifdef SAIL_HAVE_TIFF_THUNDERSCAN case COMPRESSION_THUNDERSCAN: return SAIL_COMPRESSION_THUNDERSCAN; #endif #ifdef SAIL_HAVE_TIFF_WEBP case COMPRESSION_WEBP: return SAIL_COMPRESSION_WEBP; #endif #ifdef SAIL_HAVE_TIFF_ZSTD case COMPRESSION_ZSTD: return SAIL_COMPRESSION_ZSTD; #endif default: { return SAIL_COMPRESSION_UNKNOWN; } } } sail_status_t tiff_private_sail_compression_to_compression(enum SailCompression compression, int *tiff_compression) { SAIL_CHECK_PTR(tiff_compression); switch (compression) { #ifdef SAIL_HAVE_TIFF_WRITE_ADOBE_DEFLATE case SAIL_COMPRESSION_ADOBE_DEFLATE: *tiff_compression = COMPRESSION_ADOBE_DEFLATE; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_CCITTRLE case SAIL_COMPRESSION_CCITT_RLE: *tiff_compression = COMPRESSION_CCITTRLE; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_CCITTRLEW case SAIL_COMPRESSION_CCITT_RLEW: *tiff_compression = COMPRESSION_CCITTRLEW; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_CCITT_T4 case SAIL_COMPRESSION_CCITT_T4: *tiff_compression = COMPRESSION_CCITT_T4; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_CCITT_T6 case SAIL_COMPRESSION_CCITT_T6: *tiff_compression = COMPRESSION_CCITT_T6; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_DCS case SAIL_COMPRESSION_DCS: *tiff_compression = COMPRESSION_DCS; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_DEFLATE case SAIL_COMPRESSION_DEFLATE: *tiff_compression = COMPRESSION_DEFLATE; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_IT8BL case SAIL_COMPRESSION_IT8_BL: *tiff_compression = COMPRESSION_IT8BL; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_IT8CTPAD case SAIL_COMPRESSION_IT8_CTPAD: *tiff_compression = COMPRESSION_IT8CTPAD; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_IT8LW case SAIL_COMPRESSION_IT8_LW: *tiff_compression = COMPRESSION_IT8LW; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_IT8MP case SAIL_COMPRESSION_IT8_MP: *tiff_compression = COMPRESSION_IT8MP; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_JBIG case SAIL_COMPRESSION_JBIG: *tiff_compression = COMPRESSION_JBIG; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_JPEG case SAIL_COMPRESSION_JPEG: *tiff_compression = COMPRESSION_JPEG; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_JP2000 case SAIL_COMPRESSION_JPEG_2000: *tiff_compression = COMPRESSION_JP2000; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_JXL case SAIL_COMPRESSION_JPEG_XL: *tiff_compression = COMPRESSION_JXL; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_LERC case SAIL_COMPRESSION_LERC: *tiff_compression = COMPRESSION_LERC; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_LZMA case SAIL_COMPRESSION_LZMA: *tiff_compression = COMPRESSION_LZMA; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_LZW case SAIL_COMPRESSION_LZW: *tiff_compression = COMPRESSION_LZW; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_NEXT case SAIL_COMPRESSION_NEXT: *tiff_compression = COMPRESSION_NEXT; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_NONE case SAIL_COMPRESSION_NONE: *tiff_compression = COMPRESSION_NONE; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_OJPEG case SAIL_COMPRESSION_OJPEG: *tiff_compression = COMPRESSION_OJPEG; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_PACKBITS case SAIL_COMPRESSION_PACKBITS: *tiff_compression = COMPRESSION_PACKBITS; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_PIXARFILM case SAIL_COMPRESSION_PIXAR_FILM: *tiff_compression = COMPRESSION_PIXARFILM; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_PIXARLOG case SAIL_COMPRESSION_PIXAR_LOG: *tiff_compression = COMPRESSION_PIXARLOG; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_SGILOG24 case SAIL_COMPRESSION_RLE: *tiff_compression = COMPRESSION_SGILOG24; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_SGILOG case SAIL_COMPRESSION_SGI_LOG: *tiff_compression = COMPRESSION_SGILOG; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_T43 case SAIL_COMPRESSION_SGI_LOG24: *tiff_compression = COMPRESSION_T43; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_T85 case SAIL_COMPRESSION_T43: *tiff_compression = COMPRESSION_T85; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_THUNDERSCAN case SAIL_COMPRESSION_THUNDERSCAN: *tiff_compression = COMPRESSION_THUNDERSCAN; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_WEBP case SAIL_COMPRESSION_WEBP: *tiff_compression = COMPRESSION_WEBP; return SAIL_OK; #endif #ifdef SAIL_HAVE_TIFF_WRITE_ZSTD case SAIL_COMPRESSION_ZSTD: *tiff_compression = COMPRESSION_ZSTD; return SAIL_OK; #endif default: { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_COMPRESSION); } } } enum SailPixelFormat tiff_private_bpp_to_pixel_format(int bpp) { switch (bpp) { case 1: return SAIL_PIXEL_FORMAT_BPP1; case 2: return SAIL_PIXEL_FORMAT_BPP2; case 4: return SAIL_PIXEL_FORMAT_BPP4; case 8: return SAIL_PIXEL_FORMAT_BPP8; case 16: return SAIL_PIXEL_FORMAT_BPP16; case 24: return SAIL_PIXEL_FORMAT_BPP24; case 32: return SAIL_PIXEL_FORMAT_BPP32; case 48: return SAIL_PIXEL_FORMAT_BPP48; case 64: return SAIL_PIXEL_FORMAT_BPP64; case 72: return SAIL_PIXEL_FORMAT_BPP72; case 96: return SAIL_PIXEL_FORMAT_BPP96; case 128: return SAIL_PIXEL_FORMAT_BPP128; default: { return SAIL_PIXEL_FORMAT_UNKNOWN; } } } void tiff_private_zero_tiff_image(TIFFRGBAImage *img) { if (img == NULL) { return; } img->Map = NULL; img->BWmap = NULL; img->PALmap = NULL; img->ycbcr = NULL; img->cielab = NULL; img->UaToAa = NULL; img->Bitdepth16To8 = NULL; img->redcmap = NULL; img->greencmap = NULL; img->bluecmap = NULL; } sail_status_t tiff_private_fetch_iccp(TIFF *tiff, struct sail_iccp **iccp) { unsigned char *data; unsigned data_size; if (TIFFGetField(tiff, TIFFTAG_ICCPROFILE, &data_size, &data)) { SAIL_TRY(sail_alloc_iccp_from_data(data, data_size, iccp)); } return SAIL_OK; } static sail_status_t fetch_single_meta_data(TIFF *tiff, int tag, enum SailMetaData key, struct sail_meta_data_node ***last_meta_data_node) { char *data; if (TIFFGetField(tiff, tag, &data)) { struct sail_meta_data_node *meta_data_node; SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(key, &meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); SAIL_TRY_OR_CLEANUP(sail_set_variant_string(meta_data_node->meta_data->value, data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node)); **last_meta_data_node = meta_data_node; *last_meta_data_node = &meta_data_node->next; } return SAIL_OK; } sail_status_t tiff_private_fetch_meta_data(TIFF *tiff, struct sail_meta_data_node ***last_meta_data_node) { SAIL_CHECK_PTR(last_meta_data_node); SAIL_TRY(fetch_single_meta_data(tiff, TIFFTAG_DOCUMENTNAME, SAIL_META_DATA_DOCUMENT, last_meta_data_node)); SAIL_TRY(fetch_single_meta_data(tiff, TIFFTAG_IMAGEDESCRIPTION, SAIL_META_DATA_DESCRIPTION, last_meta_data_node)); SAIL_TRY(fetch_single_meta_data(tiff, TIFFTAG_MAKE, SAIL_META_DATA_MAKE, last_meta_data_node)); SAIL_TRY(fetch_single_meta_data(tiff, TIFFTAG_MODEL, SAIL_META_DATA_MODEL, last_meta_data_node)); SAIL_TRY(fetch_single_meta_data(tiff, TIFFTAG_SOFTWARE, SAIL_META_DATA_SOFTWARE, last_meta_data_node)); SAIL_TRY(fetch_single_meta_data(tiff, TIFFTAG_ARTIST, SAIL_META_DATA_ARTIST, last_meta_data_node)); SAIL_TRY(fetch_single_meta_data(tiff, TIFFTAG_COPYRIGHT, SAIL_META_DATA_COPYRIGHT, last_meta_data_node)); return SAIL_OK; } sail_status_t tiff_private_write_meta_data(TIFF *tiff, const struct sail_meta_data_node *meta_data_node) { SAIL_CHECK_PTR(tiff); for (; meta_data_node != NULL; meta_data_node = meta_data_node->next) { const struct sail_meta_data *meta_data = meta_data_node->meta_data; if (meta_data->value->type == SAIL_VARIANT_TYPE_STRING) { int tiff_tag = -1; switch (meta_data->key) { case SAIL_META_DATA_DOCUMENT: tiff_tag = TIFFTAG_DOCUMENTNAME; break; case SAIL_META_DATA_DESCRIPTION: tiff_tag = TIFFTAG_IMAGEDESCRIPTION; break; case SAIL_META_DATA_MAKE: tiff_tag = TIFFTAG_MAKE; break; case SAIL_META_DATA_MODEL: tiff_tag = TIFFTAG_MODEL; break; case SAIL_META_DATA_SOFTWARE: tiff_tag = TIFFTAG_SOFTWARE; break; case SAIL_META_DATA_ARTIST: tiff_tag = TIFFTAG_ARTIST; break; case SAIL_META_DATA_COPYRIGHT: tiff_tag = TIFFTAG_COPYRIGHT; break; case SAIL_META_DATA_UNKNOWN: { SAIL_LOG_WARNING("TIFF: Ignoring unsupported unknown meta data keys like '%s'", meta_data->key_unknown); break; } default: { SAIL_LOG_WARNING("TIFF: Ignoring unsupported meta data key '%s'", sail_meta_data_to_string(meta_data->key)); } } if (tiff_tag < 0) { continue; } TIFFSetField(tiff, tiff_tag, sail_variant_to_string(meta_data->value)); } else { SAIL_LOG_WARNING("TIFF: Ignoring unsupported binary key '%s'", sail_meta_data_to_string(meta_data->key)); } } return SAIL_OK; } sail_status_t tiff_private_fetch_resolution(TIFF *tiff, struct sail_resolution **resolution) { SAIL_CHECK_PTR(resolution); int unit = RESUNIT_NONE; float x = 0, y = 0; TIFFGetField(tiff, TIFFTAG_RESOLUTIONUNIT, &unit); TIFFGetField(tiff, TIFFTAG_XRESOLUTION, &x); TIFFGetField(tiff, TIFFTAG_YRESOLUTION, &y); /* Resolution information is not valid. */ if (x == 0 && y == 0) { return SAIL_OK; } SAIL_TRY(sail_alloc_resolution(resolution)); switch (unit) { case RESUNIT_INCH: { (*resolution)->unit = SAIL_RESOLUTION_UNIT_INCH; break; } case RESUNIT_CENTIMETER: { (*resolution)->unit = SAIL_RESOLUTION_UNIT_CENTIMETER; break; } } (*resolution)->x = x; (*resolution)->y = y; return SAIL_OK; } sail_status_t tiff_private_write_resolution(TIFF *tiff, const struct sail_resolution *resolution) { /* Not an error. */ if (resolution == NULL) { return SAIL_OK; } uint16_t unit; switch (resolution->unit) { case SAIL_RESOLUTION_UNIT_INCH: { unit = RESUNIT_INCH; break; } case SAIL_RESOLUTION_UNIT_CENTIMETER: { unit = RESUNIT_CENTIMETER; break; } default: { unit = RESUNIT_NONE; break; } } TIFFSetField(tiff, TIFFTAG_RESOLUTIONUNIT, unit); TIFFSetField(tiff, TIFFTAG_XRESOLUTION, resolution->x); TIFFSetField(tiff, TIFFTAG_YRESOLUTION, resolution->y); return SAIL_OK; } sail-0.9.8/src/sail-codecs/tiff/helpers.h000066400000000000000000000050551475535176100202230ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_TIFF_HELPERS_H #define SAIL_TIFF_HELPERS_H #include #include #include #include #include #include struct sail_meta_data_node; struct sail_resolution; SAIL_HIDDEN void tiff_private_my_error_fn(const char *module, const char *format, va_list ap); SAIL_HIDDEN void tiff_private_my_warning_fn(const char *module, const char *format, va_list ap); SAIL_HIDDEN enum SailCompression tiff_private_compression_to_sail_compression(int compression); SAIL_HIDDEN sail_status_t tiff_private_sail_compression_to_compression(enum SailCompression compression, int *tiff_compression); SAIL_HIDDEN enum SailPixelFormat tiff_private_bpp_to_pixel_format(int bpp); SAIL_HIDDEN void tiff_private_zero_tiff_image(TIFFRGBAImage *img); SAIL_HIDDEN sail_status_t tiff_private_fetch_iccp(TIFF *tiff, struct sail_iccp **iccp); SAIL_HIDDEN sail_status_t tiff_private_fetch_meta_data(TIFF *tiff, struct sail_meta_data_node ***last_meta_data_node); SAIL_HIDDEN sail_status_t tiff_private_write_meta_data(TIFF *tiff, const struct sail_meta_data_node *meta_data_node); SAIL_HIDDEN sail_status_t tiff_private_fetch_resolution(TIFF *tiff, struct sail_resolution **resolution); SAIL_HIDDEN sail_status_t tiff_private_write_resolution(TIFF *tiff, const struct sail_resolution *resolution); #endif sail-0.9.8/src/sail-codecs/tiff/io.c000066400000000000000000000055651475535176100171710ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "io.h" tmsize_t tiff_private_my_read_proc(thandle_t client_data, void *buffer, tmsize_t buffer_size) { struct sail_io *io = (struct sail_io *)client_data; size_t nbytes; sail_status_t err = io->tolerant_read(io->stream, buffer, buffer_size, &nbytes); if (err != SAIL_OK) { TIFFError(NULL, "Failed to read from the I/O stream: %d", err); return (tmsize_t)-1; } return (tmsize_t)nbytes; } tmsize_t tiff_private_my_write_proc(thandle_t client_data, void *buffer, tmsize_t buffer_size) { struct sail_io *io = (struct sail_io *)client_data; size_t nbytes; sail_status_t err = io->tolerant_write(io->stream, buffer, buffer_size, &nbytes); if (err != SAIL_OK) { TIFFError(NULL, "Failed to write to the I/O stream: %d", err); return (tmsize_t)-1; } return (tmsize_t)nbytes; } toff_t tiff_private_my_seek_proc(thandle_t client_data, toff_t offset, int whence) { struct sail_io *io = (struct sail_io *)client_data; sail_status_t err = io->seek(io->stream, (long)offset, whence); if (err != SAIL_OK) { TIFFError(NULL, "Failed to seek the I/O stream: %d", err); return (toff_t)-1; } size_t new_offset; err = io->tell(io->stream, &new_offset); if (err != SAIL_OK) { TIFFError(NULL, "Failed to get the current position of the I/O stream: %d", err); return (toff_t)-1; } return (toff_t)new_offset; } int tiff_private_my_dummy_close_proc(thandle_t client_data) { (void)client_data; return 0; } toff_t tiff_private_my_dummy_size_proc(thandle_t client_data) { (void)client_data; return (toff_t)-1; } sail-0.9.8/src/sail-codecs/tiff/io.h000066400000000000000000000033751475535176100171730ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_TIFF_IO_H #define SAIL_TIFF_IO_H #include #include SAIL_HIDDEN tmsize_t tiff_private_my_read_proc(thandle_t client_data, void *buffer, tmsize_t buffer_size); SAIL_HIDDEN tmsize_t tiff_private_my_write_proc(thandle_t client_data, void *buffer, tmsize_t buffer_size); SAIL_HIDDEN toff_t tiff_private_my_seek_proc(thandle_t client_data, toff_t offset, int whence); SAIL_HIDDEN int tiff_private_my_dummy_close_proc(thandle_t client_data); SAIL_HIDDEN toff_t tiff_private_my_dummy_size_proc(thandle_t client_data); #endif sail-0.9.8/src/sail-codecs/tiff/tiff.c000066400000000000000000000300711475535176100175000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include "helpers.h" #include "io.h" /* * Codec-specific state. */ struct tiff_state { const struct sail_load_options *load_options; const struct sail_save_options *save_options; TIFF *tiff; uint16_t current_frame; bool libtiff_error; int save_compression; TIFFRGBAImage image; int line; }; static sail_status_t alloc_tiff_state(const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct tiff_state **tiff_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct tiff_state), &ptr)); *tiff_state = ptr; **tiff_state = (struct tiff_state) { .load_options = load_options, .save_options = save_options, .tiff = NULL, .current_frame = 0, .libtiff_error = false, .save_compression = COMPRESSION_NONE, .line = 0, }; tiff_private_zero_tiff_image(&(*tiff_state)->image); return SAIL_OK; } static void destroy_tiff_state(struct tiff_state *tiff_state) { if (tiff_state == NULL) { return; } TIFFRGBAImageEnd(&tiff_state->image); sail_free(tiff_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_tiff(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; TIFFSetWarningHandler(tiff_private_my_warning_fn); TIFFSetErrorHandler(tiff_private_my_error_fn); /* Allocate a new state. */ struct tiff_state *tiff_state; SAIL_TRY(alloc_tiff_state(load_options, NULL, &tiff_state)); *state = tiff_state; /* Initialize TIFF. * * 'r': reading operation * 'h': read TIFF header only * 'm': disable use of memory-mapped files */ tiff_state->tiff = TIFFClientOpen("sail-codec-tiff", "rhm", io, tiff_private_my_read_proc, tiff_private_my_write_proc, tiff_private_my_seek_proc, tiff_private_my_dummy_close_proc, tiff_private_my_dummy_size_proc, /* map */ NULL, /* unmap */ NULL); if (tiff_state->tiff == NULL) { tiff_state->libtiff_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_tiff(void *state, struct sail_image **image) { struct tiff_state *tiff_state = state; if (tiff_state->libtiff_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); /* Start reading the next directory. */ if (!TIFFSetDirectory(tiff_state->tiff, tiff_state->current_frame++)) { sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } /* Start reading the next image. */ char emsg[1024]; if (!TIFFRGBAImageBegin(&tiff_state->image, tiff_state->tiff, /* stop */ 1, emsg)) { SAIL_LOG_ERROR("TIFF: %s", emsg); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } tiff_state->image.req_orientation = ORIENTATION_TOPLEFT; /* Fill the image properties. */ if (!TIFFGetField(tiff_state->tiff, TIFFTAG_IMAGEWIDTH, &image_local->width) || !TIFFGetField(tiff_state->tiff, TIFFTAG_IMAGELENGTH, &image_local->height)) { SAIL_LOG_ERROR("TIFF: Failed to get the image dimensions"); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Fetch meta data. */ if (tiff_state->load_options->options & SAIL_OPTION_META_DATA) { struct sail_meta_data_node **last_meta_data_node = &image_local->meta_data_node; SAIL_TRY_OR_CLEANUP(tiff_private_fetch_meta_data(tiff_state->tiff, &last_meta_data_node), /* cleanup */ sail_destroy_image(image_local)); } /* Fetch ICC profile. */ if (tiff_state->load_options->options & SAIL_OPTION_ICCP) { SAIL_TRY_OR_CLEANUP(tiff_private_fetch_iccp(tiff_state->tiff, &image_local->iccp), /* cleanup */ sail_destroy_image(image_local)); } /* Fetch resolution. */ SAIL_TRY_OR_CLEANUP(tiff_private_fetch_resolution(tiff_state->tiff, &image_local->resolution), /* cleanup */ sail_destroy_image(image_local)); image_local->pixel_format = SAIL_PIXEL_FORMAT_BPP32_RGBA; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); /* Source image. */ if (tiff_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { int compression = COMPRESSION_NONE; if (!TIFFGetField(tiff_state->tiff, TIFFTAG_COMPRESSION, &compression)) { SAIL_LOG_ERROR("TIFF: Failed to get the image compression type"); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = tiff_private_bpp_to_pixel_format(tiff_state->image.bitspersample * tiff_state->image.samplesperpixel); image_local->source_image->compression = tiff_private_compression_to_sail_compression(compression); } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_tiff(void *state, struct sail_image *image) { struct tiff_state *tiff_state = state; if (tiff_state->libtiff_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } if (!TIFFRGBAImageGet(&tiff_state->image, image->pixels, image->width, image->height)) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } TIFFRGBAImageEnd(&tiff_state->image); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_tiff(void **state) { struct tiff_state *tiff_state = *state; *state = NULL; if (tiff_state->tiff != NULL) { TIFFCleanup(tiff_state->tiff); } destroy_tiff_state(tiff_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_tiff(struct sail_io *io, const struct sail_save_options *save_options, void **state) { *state = NULL; struct tiff_state *tiff_state; SAIL_TRY(alloc_tiff_state(NULL, save_options, &tiff_state)); *state = tiff_state; /* Sanity check. */ SAIL_TRY_OR_EXECUTE(tiff_private_sail_compression_to_compression(tiff_state->save_options->compression, &tiff_state->save_compression), /* cleanup */ SAIL_LOG_ERROR("TIFF: %s compression is not supported for saving", sail_compression_to_string(tiff_state->save_options->compression)); return __sail_status); TIFFSetWarningHandler(tiff_private_my_warning_fn); TIFFSetErrorHandler(tiff_private_my_error_fn); /* Initialize TIFF. * * 'w': writing operation * 'm': disable use of memory-mapped files */ tiff_state->tiff = TIFFClientOpen("tiff-sail-codec", "wm", io, tiff_private_my_read_proc, tiff_private_my_write_proc, tiff_private_my_seek_proc, /* libsail will close for us. */ tiff_private_my_dummy_close_proc, tiff_private_my_dummy_size_proc, /* map */ NULL, /* unmap */ NULL); if (tiff_state->tiff == NULL) { tiff_state->libtiff_error = true; SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_tiff(void *state, const struct sail_image *image) { struct tiff_state *tiff_state = state; if (tiff_state->libtiff_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } tiff_state->line = 0; TIFFSetField(tiff_state->tiff, TIFFTAG_IMAGEWIDTH, image->width); TIFFSetField(tiff_state->tiff, TIFFTAG_IMAGELENGTH, image->height); TIFFSetField(tiff_state->tiff, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); TIFFSetField(tiff_state->tiff, TIFFTAG_SAMPLESPERPIXEL, 4); TIFFSetField(tiff_state->tiff, TIFFTAG_BITSPERSAMPLE, 8); TIFFSetField(tiff_state->tiff, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); TIFFSetField(tiff_state->tiff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); TIFFSetField(tiff_state->tiff, TIFFTAG_COMPRESSION, tiff_state->save_compression); TIFFSetField(tiff_state->tiff, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(tiff_state->tiff, (uint32_t)-1)); /* Save ICC profile. */ if (tiff_state->save_options->options & SAIL_OPTION_ICCP && image->iccp != NULL) { TIFFSetField(tiff_state->tiff, TIFFTAG_ICCPROFILE, image->iccp->size, image->iccp->data); SAIL_LOG_TRACE("TIFF: ICC profile has been saved"); } /* Save meta data. */ if (tiff_state->save_options->options & SAIL_OPTION_META_DATA && image->meta_data_node != NULL) { SAIL_LOG_TRACE("TIFF: Saving meta data"); SAIL_TRY(tiff_private_write_meta_data(tiff_state->tiff, image->meta_data_node)); } /* Save resolution. */ SAIL_TRY(tiff_private_write_resolution(tiff_state->tiff, image->resolution)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_tiff(void *state, const struct sail_image *image) { struct tiff_state *tiff_state = state; if (tiff_state->libtiff_error) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } for (unsigned row = 0; row < image->height; row++) { if (TIFFWriteScanline(tiff_state->tiff, sail_scan_line(image, row), tiff_state->line++, 0) < 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } if (!TIFFWriteDirectory(tiff_state->tiff)) { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_tiff(void **state) { struct tiff_state *tiff_state = *state; /* Subsequent calls to finish() will expectedly fail in the above line. */ *state = NULL; /* Destroy internal TIFF objects. */ if (tiff_state->tiff != NULL) { TIFFCleanup(tiff_state->tiff); } destroy_tiff_state(tiff_state); return SAIL_OK; } sail-0.9.8/src/sail-codecs/tiff/tiff.codec.info.in000066400000000000000000000007541475535176100216770ustar00rootroot00000000000000# TIFF codec information # [codec] layout=8 version=1.0.1 priority=HIGHEST name=TIFF description=Tagged Image File Format magic-numbers=49 49 2A 00;4D 4D 00 2A extensions=tif;tiff mime-types=image/tiff;image/tiff-fx [load-features] features=STATIC;MULTI-PAGED;META-DATA;ICCP;SOURCE-IMAGE tuning= [save-features] features=STATIC;MULTI-PAGED;META-DATA;ICCP pixel-formats=BPP32-RGBA compressions=@TIFF_CODEC_INFO_COMPRESSIONS@ default-compression=@TIFF_CODEC_INFO_DEFAULT_COMPRESSION@ tuning= sail-0.9.8/src/sail-codecs/tiff/tiff.png000066400000000000000000000003741475535176100200450ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLLtRNS@fbKGDH pHYs  tIME 9.b rWIDATc0c̙Pd)A 1Μ8qL CRpDIAcD4 nR`w0eBkryIENDB`sail-0.9.8/src/sail-codecs/wal/000077500000000000000000000000001475535176100162365ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/wal/CMakeLists.txt000066400000000000000000000001431475535176100207740ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME wal SOURCES helpers.h helpers.c wal.c ICON wal.png) sail-0.9.8/src/sail-codecs/wal/helpers.c000066400000000000000000000151601475535176100200470ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "helpers.h" /* Public domain Quake2 palette. See https://quakewiki.org/wiki/Quake_palette */ static const unsigned WAL_PALETTE_ELEMENTS = 256; static const unsigned char WAL_PALETTE[256 * 3] = { 0, 0, 0, 15, 15, 15, 31, 31, 31, 47, 47, 47, 63, 63, 63, 75, 75, 75, 91, 91, 91, 107, 107, 107, 123, 123, 123, 139, 139, 139, 155, 155, 155, 171, 171, 171, 187, 187, 187, 203, 203, 203, 219, 219, 219, 235, 235, 235, 99, 75, 35, 91, 67, 31, 83, 63, 31, 79, 59, 27, 71, 55, 27, 63, 47, 23, 59, 43, 23, 51, 39, 19, 47, 35, 19, 43, 31, 19, 39, 27, 15, 35, 23, 15, 27, 19, 11, 23, 15, 11, 19, 15, 7, 15, 11, 7, 95, 95, 111, 91, 91, 103, 91, 83, 95, 87, 79, 91, 83, 75, 83, 79, 71, 75, 71, 63, 67, 63, 59, 59, 59, 55, 55, 51, 47, 47, 47, 43, 43, 39, 39, 39, 35, 35, 35, 27, 27, 27, 23, 23, 23, 19, 19, 19, 143, 119, 83, 123, 99, 67, 115, 91, 59, 103, 79, 47, 207, 151, 75, 167, 123, 59, 139, 103, 47, 111, 83, 39, 235, 159, 39, 203, 139, 35, 175, 119, 31, 147, 99, 27, 119, 79, 23, 91, 59, 15, 63, 39, 11, 35, 23, 7, 167, 59, 43, 159, 47, 35, 151, 43, 27, 139, 39, 19, 127, 31, 15, 115, 23, 11, 103, 23, 7, 87, 19, 0, 75, 15, 0, 67, 15, 0, 59, 15, 0, 51, 11, 0, 43, 11, 0, 35, 11, 0, 27, 7, 0, 19, 7, 0, 123, 95, 75, 115, 87, 67, 107, 83, 63, 103, 79, 59, 95, 71, 55, 87, 67, 51, 83, 63, 47, 75, 55, 43, 67, 51, 39, 63, 47, 35, 55, 39, 27, 47, 35, 23, 39, 27, 19, 31, 23, 15, 23, 15, 11, 15, 11, 7, 111, 59, 23, 95, 55, 23, 83, 47, 23, 67, 43, 23, 55, 35, 19, 39, 27, 15, 27, 19, 11, 15, 11, 7, 179, 91, 79, 191, 123, 111, 203, 155, 147, 215, 187, 183, 203, 215, 223, 179, 199, 211, 159, 183, 195, 135, 167, 183, 115, 151, 167, 91, 135, 155, 71, 119, 139, 47, 103, 127, 23, 83, 111, 19, 75, 103, 15, 67, 91, 11, 63, 83, 7, 55, 75, 7, 47, 63, 7, 39, 51, 0, 31, 43, 0, 23, 31, 0, 15, 19, 0, 7, 11, 0, 0, 0, 139, 87, 87, 131, 79, 79, 123, 71, 71, 115, 67, 67, 107, 59, 59, 99, 51, 51, 91, 47, 47, 87, 43, 43, 75, 35, 35, 63, 31, 31, 51, 27, 27, 43, 19, 19, 31, 15, 15, 19, 11, 11, 11, 7, 7, 0, 0, 0, 151, 159, 123, 143, 151, 115, 135, 139, 107, 127, 131, 99, 119, 123, 95, 115, 115, 87, 107, 107, 79, 99, 99, 71, 91, 91, 67, 79, 79, 59, 67, 67, 51, 55, 55, 43, 47, 47, 35, 35, 35, 27, 23, 23, 19, 15, 15, 11, 159, 75, 63, 147, 67, 55, 139, 59, 47, 127, 55, 39, 119, 47, 35, 107, 43, 27, 99, 35, 23, 87, 31, 19, 79, 27, 15, 67, 23, 11, 55, 19, 11, 43, 15, 7, 31, 11, 7, 23, 7, 0, 11, 0, 0, 0, 0, 0, 119, 123, 207, 111, 115, 195, 103, 107, 183, 99, 99, 167, 91, 91, 155, 83, 87, 143, 75, 79, 127, 71, 71, 115, 63, 63, 103, 55, 55, 87, 47, 47, 75, 39, 39, 63, 35, 31, 47, 27, 23, 35, 19, 15, 23, 11, 7, 7, 155, 171, 123, 143, 159, 111, 135, 151, 99, 123, 139, 87, 115, 131, 75, 103, 119, 67, 95, 111, 59, 87, 103, 51, 75, 91, 39, 63, 79, 27, 55, 67, 19, 47, 59, 11, 35, 47, 7, 27, 35, 0, 19, 23, 0, 11, 15, 0, 0, 255, 0, 35, 231, 15, 63, 211, 27, 83, 187, 39, 95, 167, 47, 95, 143, 51, 95, 123, 51, 255, 255, 255, 255, 255, 211, 255, 255, 167, 255, 255, 127, 255, 255, 83, 255, 255, 39, 255, 235, 31, 255, 215, 23, 255, 191, 15, 255, 171, 7, 255, 147, 0, 239, 127, 0, 227, 107, 0, 211, 87, 0, 199, 71, 0, 183, 59, 0, 171, 43, 0, 155, 31, 0, 143, 23, 0, 127, 15, 0, 115, 7, 0, 95, 0, 0, 71, 0, 0, 47, 0, 0, 27, 0, 0, 239, 0, 0, 55, 55, 255, 255, 0, 0, 0, 0, 255, 43, 43, 35, 27, 27, 23, 19, 19, 15, 235, 151, 127, 195, 115, 83, 159, 87, 51, 123, 63, 27, 235, 211, 199, 199, 171, 155, 167, 139, 119, 135, 107, 87, 159, 91, 83 }; sail_status_t wal_private_read_file_header(struct sail_io *io, struct WalFileHeader *wal_header) { SAIL_TRY(io->strict_read(io->stream, &wal_header->name, sizeof(wal_header->name))); SAIL_TRY(io->strict_read(io->stream, &wal_header->width, sizeof(wal_header->width))); SAIL_TRY(io->strict_read(io->stream, &wal_header->height, sizeof(wal_header->height))); SAIL_TRY(io->strict_read(io->stream, &wal_header->offset, sizeof(wal_header->offset))); SAIL_TRY(io->strict_read(io->stream, &wal_header->next_name, sizeof(wal_header->next_name))); SAIL_TRY(io->strict_read(io->stream, &wal_header->flags, sizeof(wal_header->flags))); SAIL_TRY(io->strict_read(io->stream, &wal_header->contents, sizeof(wal_header->contents))); SAIL_TRY(io->strict_read(io->stream, &wal_header->value, sizeof(wal_header->value))); return SAIL_OK; } sail_status_t wal_private_assign_palette(struct sail_image *image) { SAIL_TRY(sail_alloc_palette_from_data(SAIL_PIXEL_FORMAT_BPP24_RGB, WAL_PALETTE, WAL_PALETTE_ELEMENTS, &image->palette)); return SAIL_OK; } sail_status_t wal_private_assign_meta_data(const struct WalFileHeader *wal_header, struct sail_meta_data_node **meta_data_node) { struct sail_meta_data_node *meta_data_node_local; SAIL_TRY(sail_alloc_meta_data_node(&meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_NAME, &meta_data_node_local->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); SAIL_TRY_OR_CLEANUP(sail_set_variant_string(meta_data_node_local->meta_data->value, wal_header->name), /* cleanup */ sail_destroy_meta_data_node(meta_data_node_local)); *meta_data_node = meta_data_node_local; return SAIL_OK; } sail-0.9.8/src/sail-codecs/wal/helpers.h000066400000000000000000000035571475535176100200630ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_WAL_HELPERS_H #define SAIL_WAL_HELPERS_H #include #include #include struct WalFileHeader { char name[32]; unsigned width; unsigned height; int offset[4]; char next_name[32]; unsigned flags; unsigned contents; unsigned value; }; SAIL_HIDDEN sail_status_t wal_private_read_file_header(struct sail_io *io, struct WalFileHeader *wal_header); SAIL_HIDDEN sail_status_t wal_private_assign_palette(struct sail_image *image); SAIL_HIDDEN sail_status_t wal_private_assign_meta_data(const struct WalFileHeader *wal_header, struct sail_meta_data_node **meta_data_node); #endif sail-0.9.8/src/sail-codecs/wal/wal.c000066400000000000000000000136471475535176100172000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "helpers.h" /* * Codec-specific state. */ struct wal_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; unsigned frame_number; struct WalFileHeader wal_header; unsigned width; unsigned height; }; static sail_status_t alloc_wal_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct wal_state **wal_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct wal_state), &ptr)); *wal_state = ptr; **wal_state = (struct wal_state) { .io = io, .load_options = load_options, .save_options = save_options, .frame_number = 0, .width = 0, .height = 0, }; return SAIL_OK; } static void destroy_wal_state(struct wal_state *wal_state) { if (wal_state == NULL) { return; } sail_free(wal_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_wal(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct wal_state *wal_state; SAIL_TRY(alloc_wal_state(io, load_options, NULL, &wal_state)); *state = wal_state; /* Read WAL header. */ SAIL_TRY(wal_private_read_file_header(wal_state->io, &wal_state->wal_header)); wal_state->width = wal_state->wal_header.width; wal_state->height = wal_state->wal_header.height; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_wal(void *state, struct sail_image **image) { struct wal_state *wal_state = state; if (wal_state->frame_number == 4) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } if (wal_state->frame_number > 0) { wal_state->width /= 2; wal_state->height /= 2; } struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (wal_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = SAIL_PIXEL_FORMAT_BPP8_INDEXED; image_local->source_image->compression = SAIL_COMPRESSION_NONE; } image_local->width = wal_state->width; image_local->height = wal_state->height; image_local->pixel_format = SAIL_PIXEL_FORMAT_BPP8_INDEXED; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); SAIL_TRY_OR_CLEANUP(wal_private_assign_palette(image_local), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(wal_private_assign_meta_data(&wal_state->wal_header, &image_local->meta_data_node), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(wal_state->io->seek(wal_state->io->stream, wal_state->wal_header.offset[wal_state->frame_number], SEEK_SET), /* cleanup */ sail_destroy_image(image_local)); wal_state->frame_number++; *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_wal(void *state, struct sail_image *image) { struct wal_state *wal_state = state; SAIL_TRY(wal_state->io->strict_read(wal_state->io->stream, image->pixels, (size_t)image->bytes_per_line * image->height)); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_wal(void **state) { struct wal_state *wal_state = *state; *state = NULL; destroy_wal_state(wal_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_wal(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_wal(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_wal(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_wal(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/wal/wal.codec.info.in000066400000000000000000000006231475535176100213600ustar00rootroot00000000000000# WAL codec information # [codec] layout=8 version=0.2.0 priority=LOWEST name=WAL description=Quake2 Texture magic-numbers= extensions=wal mime-types= [load-features] features=STATIC;MULTI-PAGED;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/wal/wal.png000066400000000000000000000003771475535176100175360ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLL6 =CtRNS@fbKGDH pHYs  tIME 7tnZIDATcPc̙IPd( B12h[4 dXZZOFf(Ol90 #include #include "helpers.h" void webp_private_fill_color(uint8_t *pixels, unsigned bytes_per_line, unsigned bytes_per_pixel, uint32_t color, unsigned x, unsigned y, unsigned width, unsigned height) { uint8_t *scanline = pixels + y * bytes_per_line + x * bytes_per_pixel; for (unsigned row = 0; row < height; row++, scanline += bytes_per_line) { for (unsigned column = 0; column < width * bytes_per_pixel; column += bytes_per_pixel) { memcpy(scanline + column, &color, sizeof(color)); } } } sail_status_t webp_private_blend_over(void *dst_raw, unsigned dst_offset, const void *src_raw, unsigned width, unsigned bytes_per_pixel) { SAIL_CHECK_PTR(src_raw); SAIL_CHECK_PTR(dst_raw); if (bytes_per_pixel == 4) { const uint8_t *src = src_raw; uint8_t *dst = (uint8_t *)dst_raw + dst_offset * bytes_per_pixel; while (width--) { const double src_a = *(src+3) / 255.0; const double dst_a = *(dst+3) / 255.0; *dst = (uint8_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint8_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint8_t)(src_a * (*src) + (1-src_a) * dst_a * (*dst)); src++; dst++; *dst = (uint8_t)((src_a + (1-src_a) * dst_a) * 255); src++; dst++; } } else { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_BIT_DEPTH); } return SAIL_OK; } sail_status_t webp_private_fetch_iccp(WebPDemuxer *webp_demux, struct sail_iccp **iccp) { SAIL_CHECK_PTR(webp_demux); SAIL_CHECK_PTR(iccp); const uint32_t webp_flags = WebPDemuxGetI(webp_demux, WEBP_FF_FORMAT_FLAGS); if (webp_flags & ICCP_FLAG) { WebPChunkIterator chunk_iterator; if (WebPDemuxGetChunk(webp_demux, "ICCP", 1, &chunk_iterator)) { SAIL_TRY_OR_CLEANUP(sail_alloc_iccp_from_data(chunk_iterator.chunk.bytes, (unsigned)chunk_iterator.chunk.size, iccp), /* cleanup */ WebPDemuxReleaseChunkIterator(&chunk_iterator)); WebPDemuxReleaseChunkIterator(&chunk_iterator); } } return SAIL_OK; } sail_status_t webp_private_fetch_meta_data(WebPDemuxer *webp_demux, struct sail_meta_data_node **last_meta_data_node) { SAIL_CHECK_PTR(webp_demux); SAIL_CHECK_PTR(last_meta_data_node); const uint32_t webp_flags = WebPDemuxGetI(webp_demux, WEBP_FF_FORMAT_FLAGS); if (webp_flags & XMP_FLAG) { WebPChunkIterator chunk_iterator; if (WebPDemuxGetChunk(webp_demux, "XMP ", 1, &chunk_iterator)) { struct sail_meta_data_node *meta_data_node; SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_node(&meta_data_node), /* cleanup */ WebPDemuxReleaseChunkIterator(&chunk_iterator)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_XMP, &meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node), WebPDemuxReleaseChunkIterator(&chunk_iterator)); SAIL_TRY_OR_CLEANUP(sail_set_variant_substring(meta_data_node->meta_data->value, (const char *)chunk_iterator.chunk.bytes, chunk_iterator.chunk.size), /* cleanup */ sail_destroy_meta_data_node(meta_data_node), WebPDemuxReleaseChunkIterator(&chunk_iterator)); WebPDemuxReleaseChunkIterator(&chunk_iterator); *last_meta_data_node = meta_data_node; last_meta_data_node = &meta_data_node->next; } } if (webp_flags & EXIF_FLAG) { WebPChunkIterator chunk_iterator; if (WebPDemuxGetChunk(webp_demux, "EXIF", 1, &chunk_iterator)) { struct sail_meta_data_node *meta_data_node; SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_node(&meta_data_node), /* cleanup */ WebPDemuxReleaseChunkIterator(&chunk_iterator)); SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_EXIF, &meta_data_node->meta_data), /* cleanup */ sail_destroy_meta_data_node(meta_data_node), WebPDemuxReleaseChunkIterator(&chunk_iterator)); SAIL_TRY_OR_CLEANUP(sail_set_variant_data(meta_data_node->meta_data->value, chunk_iterator.chunk.bytes, chunk_iterator.chunk.size), /* cleanup */ sail_destroy_meta_data_node(meta_data_node), WebPDemuxReleaseChunkIterator(&chunk_iterator)); WebPDemuxReleaseChunkIterator(&chunk_iterator); *last_meta_data_node = meta_data_node; last_meta_data_node = &meta_data_node->next; } } return SAIL_OK; } sail-0.9.8/src/sail-codecs/webp/helpers.h000066400000000000000000000040511475535176100202230ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_WEBP_HELPERS_H #define SAIL_WEBP_HELPERS_H #include #include #include #include #include SAIL_HIDDEN void webp_private_fill_color(uint8_t *pixels, unsigned bytes_per_line, unsigned bytes_per_pixel, uint32_t color, unsigned x, unsigned y, unsigned width, unsigned height); SAIL_HIDDEN sail_status_t webp_private_blend_over(void *dst_raw, unsigned dst_offset, const void *src_raw, unsigned width, unsigned bytes_per_pixel); SAIL_HIDDEN sail_status_t webp_private_fetch_iccp(WebPDemuxer *webp_demux, struct sail_iccp **iccp); SAIL_HIDDEN sail_status_t webp_private_fetch_meta_data(WebPDemuxer *webp_demux, struct sail_meta_data_node **last_meta_data_node); #endif sail-0.9.8/src/sail-codecs/webp/webp.c000066400000000000000000000317051475535176100175170ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include "helpers.h" /* * Codec-specific state. */ struct webp_state { const struct sail_load_options *load_options; const struct sail_save_options *save_options; struct sail_image *canvas_image; WebPDemuxer *webp_demux; WebPIterator *webp_iterator; unsigned frame_number; uint32_t background_color; uint32_t frame_count; unsigned bytes_per_pixel; unsigned frame_x; unsigned frame_y; unsigned frame_width; unsigned frame_height; WebPMuxAnimDispose frame_dispose_method; WebPMuxAnimBlend frame_blend_method; void *image_data; size_t image_data_size; }; static sail_status_t alloc_webp_state(const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct webp_state **webp_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct webp_state), &ptr)); *webp_state = ptr; **webp_state = (struct webp_state) { .load_options = load_options, .save_options = save_options, .canvas_image = NULL, .webp_demux = NULL, .webp_iterator = NULL, .frame_number = 0, .background_color = 0, .frame_count = 0, .bytes_per_pixel = 0, .frame_x = 0, .frame_y = 0, .frame_width = 0, .frame_height = 0, .frame_dispose_method = WEBP_MUX_DISPOSE_NONE, .frame_blend_method = WEBP_MUX_NO_BLEND, .image_data = NULL, .image_data_size = 0, }; return SAIL_OK; } static void destroy_webp_state(struct webp_state *webp_state) { if (webp_state == NULL) { return; } if (webp_state->webp_iterator != NULL) { WebPDemuxReleaseIterator(webp_state->webp_iterator); sail_free(webp_state->webp_iterator); } sail_free(webp_state->image_data); WebPDemuxDelete(webp_state->webp_demux); sail_destroy_image(webp_state->canvas_image); sail_free(webp_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_webp(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct webp_state *webp_state; SAIL_TRY(alloc_webp_state(load_options, NULL, &webp_state)); *state = webp_state; /* Read the entire image. */ SAIL_ALIGNAS(uint32_t) char signature_and_size[8]; SAIL_TRY(io->strict_read(io->stream, signature_and_size, sizeof(signature_and_size))); webp_state->image_data_size = *(uint32_t *)(signature_and_size + 4) + sizeof(signature_and_size); SAIL_TRY(io->seek(io->stream, 0, SEEK_SET)); void *ptr; SAIL_TRY(sail_malloc(webp_state->image_data_size, &ptr)); webp_state->image_data = ptr; SAIL_TRY(io->strict_read(io->stream, webp_state->image_data, webp_state->image_data_size)); /* Construct a WebP demuxer. */ const WebPData data = { webp_state->image_data, webp_state->image_data_size }; webp_state->webp_demux = WebPDemux(&data); SAIL_TRY(sail_malloc(sizeof(WebPIterator), &ptr)); webp_state->webp_iterator = ptr; /* Frame count and other image info. */ webp_state->background_color = WebPDemuxGetI(webp_state->webp_demux, WEBP_FF_BACKGROUND_COLOR); webp_state->frame_count = WebPDemuxGetI(webp_state->webp_demux, WEBP_FF_FRAME_COUNT); /* Construct a canvas image. */ struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (webp_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->chroma_subsampling = SAIL_CHROMA_SUBSAMPLING_420; image_local->source_image->compression = SAIL_COMPRESSION_WEBP; } image_local->width = WebPDemuxGetI(webp_state->webp_demux, WEBP_FF_CANVAS_WIDTH); image_local->height = WebPDemuxGetI(webp_state->webp_demux, WEBP_FF_CANVAS_HEIGHT); image_local->pixel_format = SAIL_PIXEL_FORMAT_BPP32_RGBA; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); webp_state->bytes_per_pixel = image_local->bytes_per_line / image_local->width; /* Fetch ICCP. */ if (webp_state->load_options->options & SAIL_OPTION_ICCP) { SAIL_TRY_OR_CLEANUP(webp_private_fetch_iccp(webp_state->webp_demux, &image_local->iccp), /* cleanup */ sail_destroy_image(image_local)); } /* Fetch meta data. */ if (webp_state->load_options->options & SAIL_OPTION_META_DATA) { SAIL_TRY_OR_CLEANUP(webp_private_fetch_meta_data(webp_state->webp_demux, &image_local->meta_data_node), /* cleanup */ sail_destroy_image(image_local)); } webp_state->canvas_image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_webp(void *state, struct sail_image **image) { struct webp_state *webp_state = state; /* Start demuxing. */ if (webp_state->frame_number == 0) { if (WebPDemuxGetFrame(webp_state->webp_demux, 1, webp_state->webp_iterator) == 0) { SAIL_LOG_ERROR("WEBP: Failed to get the first frame"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } /* Allocate a canvas frame to apply disposal later. */ size_t image_size = (size_t)webp_state->canvas_image->bytes_per_line * webp_state->canvas_image->height; void *ptr; SAIL_TRY(sail_malloc(image_size, &ptr)); webp_state->canvas_image->pixels = ptr; /* Fill background. */ webp_private_fill_color(webp_state->canvas_image->pixels, webp_state->canvas_image->bytes_per_line, webp_state->bytes_per_pixel, webp_state->background_color, 0, 0, webp_state->canvas_image->width, webp_state->canvas_image->height); } else { switch (webp_state->frame_dispose_method) { case WEBP_MUX_DISPOSE_BACKGROUND: { webp_private_fill_color(webp_state->canvas_image->pixels, webp_state->canvas_image->bytes_per_line, webp_state->bytes_per_pixel, webp_state->background_color, webp_state->frame_x, webp_state->frame_y, webp_state->frame_width, webp_state->frame_height); break; } case WEBP_MUX_DISPOSE_NONE: { break; } default: { SAIL_LOG_ERROR("WEBP: Unknown disposal method"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } if (WebPDemuxNextFrame(webp_state->webp_iterator) == 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } } webp_state->frame_number++; webp_state->frame_x = webp_state->webp_iterator->x_offset; webp_state->frame_y = webp_state->webp_iterator->y_offset; webp_state->frame_width = webp_state->webp_iterator->width; webp_state->frame_height = webp_state->webp_iterator->height; webp_state->frame_dispose_method = webp_state->webp_iterator->dispose_method; webp_state->frame_blend_method = webp_state->webp_iterator->blend_method; /* Construct image. */ struct sail_image *image_local; SAIL_TRY(sail_copy_image_skeleton(webp_state->canvas_image, &image_local)); if (webp_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { image_local->source_image->pixel_format = webp_state->webp_iterator->has_alpha ? SAIL_PIXEL_FORMAT_BPP32_YUVA : SAIL_PIXEL_FORMAT_BPP24_YUV; } if (webp_state->frame_count > 1) { /* Fall back to 100 ms. when the duration is <= 0. */ image_local->delay = webp_state->webp_iterator->duration <= 0 ? 100 : webp_state->webp_iterator->duration; } *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_webp(void *state, struct sail_image *image) { struct webp_state *webp_state = state; switch (webp_state->frame_blend_method) { case WEBP_MUX_NO_BLEND: { if (WebPDecodeRGBAInto(webp_state->webp_iterator->fragment.bytes, webp_state->webp_iterator->fragment.size, (uint8_t *)webp_state->canvas_image->pixels + webp_state->canvas_image->bytes_per_line * webp_state->frame_y + webp_state->frame_x * webp_state->bytes_per_pixel, (size_t)webp_state->canvas_image->bytes_per_line * webp_state->canvas_image->height, webp_state->canvas_image->bytes_per_line) == NULL) { SAIL_LOG_ERROR("WEBP: Failed to decode image"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } break; } case WEBP_MUX_BLEND: { if (WebPDecodeRGBAInto(webp_state->webp_iterator->fragment.bytes, webp_state->webp_iterator->fragment.size, image->pixels, (size_t)image->bytes_per_line * image->height, webp_state->frame_width * webp_state->bytes_per_pixel) == NULL) { SAIL_LOG_ERROR("WEBP: Failed to decode image"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } uint8_t *dst_scanline = (uint8_t *)sail_scan_line(webp_state->canvas_image, webp_state->frame_y) + webp_state->frame_x * webp_state->bytes_per_pixel; uint8_t *src_scanline = image->pixels; for (unsigned row = 0; row < webp_state->frame_height; row++, dst_scanline += webp_state->canvas_image->bytes_per_line, src_scanline += webp_state->frame_width * webp_state->bytes_per_pixel) { SAIL_TRY(webp_private_blend_over(dst_scanline, 0, src_scanline, webp_state->frame_width, webp_state->bytes_per_pixel)); } break; } default: { SAIL_LOG_ERROR("WEBP: Unknown blending method"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNDERLYING_CODEC); } } memcpy(image->pixels, webp_state->canvas_image->pixels, (size_t)image->bytes_per_line * image->height); return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_webp(void **state) { struct webp_state *webp_state = *state; *state = NULL; destroy_webp_state(webp_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_webp(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_webp(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_webp(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_webp(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/webp/webp.codec.info.in000066400000000000000000000007141475535176100217050ustar00rootroot00000000000000# WEBP codec information # [codec] layout=8 version=0.7.1 priority=MEDIUM name=WEBP description=Web Picture magic-numbers=52 49 46 46 ?? ?? ?? ?? 57 45 42 50 extensions=webp mime-types=image/webp [load-features] features=STATIC;ANIMATED;META-DATA;ICCP;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/webp/webp.png000066400000000000000000000003741475535176100200570ustar00rootroot00000000000000PNG  IHDRRPLTEEEELLLtRNS@fbKGDH pHYs  tIME :WIDATc0c̙Pd)A 1N8Sr&DDRR"d@D`, vIENDB`sail-0.9.8/src/sail-codecs/xbm/000077500000000000000000000000001475535176100162415ustar00rootroot00000000000000sail-0.9.8/src/sail-codecs/xbm/CMakeLists.txt000066400000000000000000000001431475535176100207770ustar00rootroot00000000000000# Common codec configuration # sail_codec(NAME xbm SOURCES helpers.h helpers.c xbm.c ICON xbm.png) sail-0.9.8/src/sail-codecs/xbm/helpers.c000066400000000000000000000030441475535176100200500ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "helpers.h" static const unsigned char reverse_lookup_4bits[] = { 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf, }; unsigned char xbm_private_reverse_byte(unsigned char byte) { return (reverse_lookup_4bits[byte & 0xF] << 4) | reverse_lookup_4bits[byte >> 4]; } sail-0.9.8/src/sail-codecs/xbm/helpers.h000066400000000000000000000025511475535176100200570ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_XBM_HELPERS_H #define SAIL_XBM_HELPERS_H #include SAIL_HIDDEN unsigned char xbm_private_reverse_byte(unsigned char byte); #endif sail-0.9.8/src/sail-codecs/xbm/xbm.c000066400000000000000000000202111475535176100171670ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include /* atoi() */ #include #include #include "helpers.h" static const unsigned char SAIL_XBM_MONO_PALETTE[] = { 255, 255, 255, 0, 0, 0 }; enum SailXbmVersion { SAIL_XBM_VERSION_10 = 10, SAIL_XBM_VERSION_11 = 11, }; /* * Codec-specific state. */ struct xbm_state { struct sail_io *io; const struct sail_load_options *load_options; const struct sail_save_options *save_options; bool frame_loaded; enum SailXbmVersion version; }; static sail_status_t alloc_xbm_state(struct sail_io *io, const struct sail_load_options *load_options, const struct sail_save_options *save_options, struct xbm_state **xbm_state) { void *ptr; SAIL_TRY(sail_malloc(sizeof(struct xbm_state), &ptr)); *xbm_state = ptr; **xbm_state = (struct xbm_state) { .io = io, .load_options = load_options, .save_options = save_options, .frame_loaded = false, }; return SAIL_OK; } static void destroy_xbm_state(struct xbm_state *xbm_state) { if (xbm_state == NULL) { return; } sail_free(xbm_state); } /* * Decoding functions. */ SAIL_EXPORT sail_status_t sail_codec_load_init_v8_xbm(struct sail_io *io, const struct sail_load_options *load_options, void **state) { *state = NULL; /* Allocate a new state. */ struct xbm_state *xbm_state; SAIL_TRY(alloc_xbm_state(io, load_options, NULL, &xbm_state)); *state = xbm_state; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_seek_next_frame_v8_xbm(void *state, struct sail_image **image) { struct xbm_state *xbm_state = state; if (xbm_state->frame_loaded) { SAIL_LOG_AND_RETURN(SAIL_ERROR_NO_MORE_FRAMES); } xbm_state->frame_loaded = true; char buf[512 + 1]; /* Read width. */ SAIL_TRY(sail_read_string_from_io(xbm_state->io, buf, sizeof(buf))); if (strncmp(buf, "#define ", 8) != 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } char *ptr; if ((ptr = strstr(buf, "_width ")) == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } unsigned width = atoi(ptr + 6); /* Read height. */ SAIL_TRY(sail_read_string_from_io(xbm_state->io, buf, sizeof(buf))); if (strncmp(buf, "#define ", 8) != 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if ((ptr = strstr(buf, "_height ")) == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } unsigned height = atoi(ptr + 7); /* Skip other defines. */ do { SAIL_TRY(sail_read_string_from_io(xbm_state->io, buf, sizeof(buf))); } while(strstr(buf, "#define ") != NULL); if ((ptr = strchr(buf, '[')) == NULL || strchr(ptr, '{') == NULL) { SAIL_LOG_ERROR("XBM: C array declaration is not found"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } if (strstr(buf, "short") != NULL) { xbm_state->version = SAIL_XBM_VERSION_10; SAIL_LOG_TRACE("XBM: Version 10"); } else if (strstr(buf, "char") != NULL) { xbm_state->version = SAIL_XBM_VERSION_11; SAIL_LOG_TRACE("XBM: Version 11"); } else { SAIL_LOG_ERROR("XBM: Data format must be [unsigned] char or [unsigned] short"); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } /* Construct image. */ struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); if (xbm_state->load_options->options & SAIL_OPTION_SOURCE_IMAGE) { SAIL_TRY_OR_CLEANUP(sail_alloc_source_image(&image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); image_local->source_image->pixel_format = SAIL_PIXEL_FORMAT_BPP1_INDEXED; image_local->source_image->compression = SAIL_COMPRESSION_NONE; } image_local->width = width; image_local->height = height; image_local->pixel_format = SAIL_PIXEL_FORMAT_BPP1_INDEXED; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); /* Black and white palette. */ SAIL_TRY_OR_CLEANUP(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, 2, &image_local->palette), /* cleanup */ sail_destroy_image(image_local)); memcpy(image_local->palette->data, SAIL_XBM_MONO_PALETTE, 6); *image = image_local; return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_frame_v8_xbm(void *state, struct sail_image *image) { const struct xbm_state *xbm_state = state; unsigned literals_to_read; if (SAIL_LIKELY(xbm_state->version == SAIL_XBM_VERSION_11)) { literals_to_read = ((image->width + 7) / 8) * image->height; } else { literals_to_read = (((image->width + 7) / 8 + 1) / 2) * image->height; } SAIL_LOG_TRACE("XBM: Literals to read(%u)", literals_to_read); char buf[512 + 1]; unsigned char *pixels = image->pixels; for (unsigned literals_read = 0; literals_read < literals_to_read; ) { SAIL_TRY(sail_read_string_from_io(xbm_state->io, buf, sizeof(buf))); unsigned buf_offset = 0; unsigned holder; char comma; int bytes_consumed; #ifdef _MSC_VER while (sscanf_s(buf + buf_offset, "%x %c %n", &holder, &comma, 1, &bytes_consumed) == 2) { #else while (sscanf(buf + buf_offset, "%x %c %n", &holder, &comma, &bytes_consumed) == 2) { #endif if (SAIL_LIKELY(xbm_state->version == SAIL_XBM_VERSION_11)) { *pixels++ = xbm_private_reverse_byte((unsigned char)holder); } else { *pixels++ = xbm_private_reverse_byte((unsigned char)(holder & 0xff)); *pixels++ = xbm_private_reverse_byte((unsigned char)(holder >> 8)); } literals_read++; buf_offset += bytes_consumed; } } return SAIL_OK; } SAIL_EXPORT sail_status_t sail_codec_load_finish_v8_xbm(void **state) { struct xbm_state *xbm_state = *state; *state = NULL; destroy_xbm_state(xbm_state); return SAIL_OK; } /* * Encoding functions. */ SAIL_EXPORT sail_status_t sail_codec_save_init_v8_xbm(struct sail_io *io, const struct sail_save_options *save_options, void **state) { (void)io; (void)save_options; (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_seek_next_frame_v8_xbm(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_frame_v8_xbm(void *state, const struct sail_image *image) { (void)state; (void)image; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } SAIL_EXPORT sail_status_t sail_codec_save_finish_v8_xbm(void **state) { (void)state; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail-codecs/xbm/xbm.codec.info.in000066400000000000000000000006341475535176100213700ustar00rootroot00000000000000# XBM codec information # [codec] layout=8 version=0.7.0 priority=LOWEST name=XBM description=X BitMap magic-numbers= extensions=xbm mime-types=image/x-xbitmap;image/x-xbm [load-features] features=STATIC;SOURCE-IMAGE tuning= [save-features] features= pixel-formats= compressions= default-compression= compression-level-min=0 compression-level-max=0 compression-level-default=0 compression-level-step=0 tuning= sail-0.9.8/src/sail-codecs/xbm/xbm.png000066400000000000000000000004021475535176100175310ustar00rootroot00000000000000PNG  IHDRRgAMA a!PLTEFFFNNNS-~tRNS@fbKGDH pHYs  ]IDATc0c̙IFf` ` `p᪅ U@)A$K fҴ4L`#USYIENDB`sail-0.9.8/src/sail-common/000077500000000000000000000000001475535176100155035ustar00rootroot00000000000000sail-0.9.8/src/sail-common/CMakeLists.txt000066400000000000000000000102331475535176100202420ustar00rootroot00000000000000# Options # option(SAIL_COLORED_OUTPUT "Enable colored console output on supported platforms" ON) # Export options to the parent cmake file to print statistics # set(SAIL_COLORED_OUTPUT ${SAIL_COLORED_OUTPUT} PARENT_SCOPE) add_library(sail-common common.h common_serialize.c common_serialize.h compiler_specifics.h compression_level.h compression_level.c export.h hash_map.c hash_map.h hash_map_private.h iccp.c iccp.h image.c image.h io_common.c io_common.h linked_list_node.c linked_list_node.h load_features.c load_features.h load_options.c load_options.h log.c log.h memory.c memory.h meta_data.c meta_data.h meta_data_node.c meta_data_node.h palette.c palette.h pixel.c pixel.h resolution.c resolution.h sail-common.h save_features.c save_features.h save_options.c save_options.h source_image.c source_image.h status.h string_node.c string_node.h utils.c utils.h variant.c variant.h variant_node.c variant_node.h) # Build a list of public headers to install # set(PUBLIC_HEADERS common.h common_serialize.h compiler_specifics.h compression_level.h export.h hash_map.h iccp.h image.h io_common.h load_features.h load_options.h log.h memory.h meta_data.h meta_data_node.h palette.h pixel.h resolution.h sail-common.h save_features.h save_options.h source_image.h status.h string_node.h utils.h variant.h variant_node.h) set_target_properties(sail-common PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} PUBLIC_HEADER "${PUBLIC_HEADERS}") sail_enable_asan(TARGET sail-common) # fileno sail_enable_posix_source(TARGET sail-common VERSION 200112L) sail_enable_pch(TARGET sail-common HEADER sail-common.h) if (SAIL_INSTALL_PDB) sail_install_pdb(TARGET sail-common) endif() # Definitions, includes, link # if (SAIL_COLORED_OUTPUT) target_compile_definitions(sail-common PRIVATE SAIL_COLORED_OUTPUT=1) endif() target_include_directories(sail-common PUBLIC $ $) # pkg-config integration # get_target_property(VERSION sail-common VERSION) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/sail-common.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sail-common.pc" @ONLY) # Installation # install(TARGETS sail-common EXPORT SailCommonTargets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail-common") # Install development packages # install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sail-common.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") sail_install_cmake_config(TARGET "SailCommon" FOLDER "sailcommon" VERSION "${VERSION}") sail-0.9.8/src/sail-common/cmake/000077500000000000000000000000001475535176100165635ustar00rootroot00000000000000sail-0.9.8/src/sail-common/cmake/SailCommonConfig.cmake.in000066400000000000000000000001121475535176100233530ustar00rootroot00000000000000@PACKAGE_INIT@ include(${CMAKE_CURRENT_LIST_DIR}/SailCommonTargets.cmake) sail-0.9.8/src/sail-common/common.h000066400000000000000000000251651475535176100171550ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_COMMON_H #define SAIL_COMMON_H #include #include /* * Common data structures and functions used across SAIL, both in libsail and in image codecs. */ /* Pixel format */ enum SailPixelFormat { /* * Unknown or unsupported pixel format that cannot be parsed by SAIL. */ SAIL_PIXEL_FORMAT_UNKNOWN, /* * Formats with unknown pixel representation/model. */ SAIL_PIXEL_FORMAT_BPP1, SAIL_PIXEL_FORMAT_BPP2, SAIL_PIXEL_FORMAT_BPP4, SAIL_PIXEL_FORMAT_BPP8, SAIL_PIXEL_FORMAT_BPP16, SAIL_PIXEL_FORMAT_BPP24, SAIL_PIXEL_FORMAT_BPP32, SAIL_PIXEL_FORMAT_BPP48, SAIL_PIXEL_FORMAT_BPP64, SAIL_PIXEL_FORMAT_BPP72, SAIL_PIXEL_FORMAT_BPP96, SAIL_PIXEL_FORMAT_BPP128, /* * Indexed formats with palette. */ SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP2_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP16_INDEXED, /* * Grayscale formats. */ SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA, SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA, /* * Packed formats. */ SAIL_PIXEL_FORMAT_BPP16_RGB555, SAIL_PIXEL_FORMAT_BPP16_BGR555, SAIL_PIXEL_FORMAT_BPP16_RGB565, SAIL_PIXEL_FORMAT_BPP16_BGR565, /* * RGB formats. */ SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_BGR, SAIL_PIXEL_FORMAT_BPP48_RGB, SAIL_PIXEL_FORMAT_BPP48_BGR, /* * RGBA/X formats. X = unused color channel. */ SAIL_PIXEL_FORMAT_BPP16_RGBX, SAIL_PIXEL_FORMAT_BPP16_BGRX, SAIL_PIXEL_FORMAT_BPP16_XRGB, SAIL_PIXEL_FORMAT_BPP16_XBGR, SAIL_PIXEL_FORMAT_BPP16_RGBA, SAIL_PIXEL_FORMAT_BPP16_BGRA, SAIL_PIXEL_FORMAT_BPP16_ARGB, SAIL_PIXEL_FORMAT_BPP16_ABGR, SAIL_PIXEL_FORMAT_BPP32_RGBX, SAIL_PIXEL_FORMAT_BPP32_BGRX, SAIL_PIXEL_FORMAT_BPP32_XRGB, SAIL_PIXEL_FORMAT_BPP32_XBGR, SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP32_BGRA, SAIL_PIXEL_FORMAT_BPP32_ARGB, SAIL_PIXEL_FORMAT_BPP32_ABGR, SAIL_PIXEL_FORMAT_BPP64_RGBX, SAIL_PIXEL_FORMAT_BPP64_BGRX, SAIL_PIXEL_FORMAT_BPP64_XRGB, SAIL_PIXEL_FORMAT_BPP64_XBGR, SAIL_PIXEL_FORMAT_BPP64_RGBA, SAIL_PIXEL_FORMAT_BPP64_BGRA, SAIL_PIXEL_FORMAT_BPP64_ARGB, SAIL_PIXEL_FORMAT_BPP64_ABGR, /* * CMYK formats. */ SAIL_PIXEL_FORMAT_BPP32_CMYK, SAIL_PIXEL_FORMAT_BPP64_CMYK, SAIL_PIXEL_FORMAT_BPP40_CMYKA, SAIL_PIXEL_FORMAT_BPP80_CMYKA, /* * YCbCr formats. */ SAIL_PIXEL_FORMAT_BPP24_YCBCR, /* * YCCK formats. */ SAIL_PIXEL_FORMAT_BPP32_YCCK, /* * CIE LAB formats. */ SAIL_PIXEL_FORMAT_BPP24_CIE_LAB, /* 8/8/8 */ SAIL_PIXEL_FORMAT_BPP40_CIE_LAB, /* 8/16/16 */ /* * CIE LUV formats. */ SAIL_PIXEL_FORMAT_BPP24_CIE_LUV, /* 8/8/8 */ SAIL_PIXEL_FORMAT_BPP40_CIE_LUV, /* 8/16/16 */ /* * YUV formats. */ SAIL_PIXEL_FORMAT_BPP24_YUV, /* 8-bit */ SAIL_PIXEL_FORMAT_BPP30_YUV, /* 10-bit */ SAIL_PIXEL_FORMAT_BPP36_YUV, /* 12-bit */ SAIL_PIXEL_FORMAT_BPP48_YUV, /* 16-bit */ SAIL_PIXEL_FORMAT_BPP32_YUVA, SAIL_PIXEL_FORMAT_BPP40_YUVA, SAIL_PIXEL_FORMAT_BPP48_YUVA, SAIL_PIXEL_FORMAT_BPP64_YUVA, }; /* Chroma subsampling. See https://en.wikipedia.org/wiki/Chroma_subsampling */ enum SailChromaSubsampling { SAIL_CHROMA_SUBSAMPLING_UNKNOWN, SAIL_CHROMA_SUBSAMPLING_311, SAIL_CHROMA_SUBSAMPLING_400, SAIL_CHROMA_SUBSAMPLING_410, SAIL_CHROMA_SUBSAMPLING_411, SAIL_CHROMA_SUBSAMPLING_420, SAIL_CHROMA_SUBSAMPLING_421, SAIL_CHROMA_SUBSAMPLING_422, SAIL_CHROMA_SUBSAMPLING_444, }; /* Orientation. */ enum SailOrientation { SAIL_ORIENTATION_NORMAL, SAIL_ORIENTATION_ROTATED_90, SAIL_ORIENTATION_ROTATED_180, SAIL_ORIENTATION_ROTATED_270, SAIL_ORIENTATION_MIRRORED_HORIZONTALLY, SAIL_ORIENTATION_MIRRORED_VERTICALLY, SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_90, SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_270, }; /* Pixels compression types. */ enum SailCompression { /* Unknown compression. */ SAIL_COMPRESSION_UNKNOWN, /* No compression at all. */ SAIL_COMPRESSION_NONE, SAIL_COMPRESSION_ADOBE_DEFLATE, /* Deflate compression, as recognized by Adobe. */ SAIL_COMPRESSION_AV1, /* AOMedia Video 1. */ SAIL_COMPRESSION_CCITT_FAX3, /* CCITT Group 3 fax encoding. */ SAIL_COMPRESSION_CCITT_FAX4, /* CCITT Group 4 fax encoding. */ SAIL_COMPRESSION_CCITT_RLE, /* CCITT modified Huffman RLE. */ SAIL_COMPRESSION_CCITT_RLEW, /* #1 w/ word alignment. */ SAIL_COMPRESSION_CCITT_T4, /* CCITT T.4 (TIFF 6 name). */ SAIL_COMPRESSION_CCITT_T6, /* CCITT T.6 (TIFF 6 name). */ SAIL_COMPRESSION_DCS, /* Kodak DCS encoding. */ SAIL_COMPRESSION_DEFLATE, /* Deflate compression. */ SAIL_COMPRESSION_IT8_BL, /* IT8 Binary line art. */ SAIL_COMPRESSION_IT8_CTPAD, /* IT8 CT w/padding. */ SAIL_COMPRESSION_IT8_LW, /* IT8 Linework RLE. */ SAIL_COMPRESSION_IT8_MP, /* IT8 Monochrome picture. */ SAIL_COMPRESSION_JBIG, /* ISO JBIG. */ SAIL_COMPRESSION_JPEG, /* JPEG DCT compression. */ SAIL_COMPRESSION_JPEG_2000, /* Leadtools JPEG 2000. */ SAIL_COMPRESSION_JPEG_XL, /* JPEG XL. */ SAIL_COMPRESSION_JPEG_XR, /* JPEG XR. */ SAIL_COMPRESSION_LERC, /* ESRI Lerc codec. */ SAIL_COMPRESSION_LZMA, /* LZMA2. */ SAIL_COMPRESSION_LZW, /* Lempel-Ziv & Welch. */ SAIL_COMPRESSION_NEXT, /* NeXT 2-bit RLE. */ SAIL_COMPRESSION_OJPEG, /* !6.0 JPEG. */ SAIL_COMPRESSION_PACKBITS, /* Macintosh RLE. */ SAIL_COMPRESSION_PIXAR_FILM, /* Pixar companded 10bit LZW. */ SAIL_COMPRESSION_PIXAR_LOG, /* Pixar companded 11bit ZIP. */ SAIL_COMPRESSION_QOI, /* Quite OK Image. */ SAIL_COMPRESSION_RLE, /* RLE compression. */ SAIL_COMPRESSION_SGI_LOG, /* SGI Log Luminance RLE. */ SAIL_COMPRESSION_SGI_LOG24, /* SGI Log 24-bit packed. */ SAIL_COMPRESSION_T43, /* !TIFF/FX T.43 colour by layered JBIG compression. */ SAIL_COMPRESSION_T85, /* !TIFF/FX T.85 JBIG compression. */ SAIL_COMPRESSION_THUNDERSCAN, /* ThunderScan RLE. */ SAIL_COMPRESSION_WEBP, /* WEBP. */ SAIL_COMPRESSION_ZIP, /* ZIP. */ SAIL_COMPRESSION_ZSTD, /* ZSTD. */ }; /* Meta data. */ enum SailMetaData { /* Unknown meta data type. */ SAIL_META_DATA_UNKNOWN, SAIL_META_DATA_ARTIST, SAIL_META_DATA_AUTHOR, SAIL_META_DATA_COMMENT, SAIL_META_DATA_COMPUTER, SAIL_META_DATA_COPYRIGHT, SAIL_META_DATA_CREATION_TIME, SAIL_META_DATA_DESCRIPTION, SAIL_META_DATA_DISCLAIMER, SAIL_META_DATA_DOCUMENT, SAIL_META_DATA_EXIF, /* This one may or may not start with "Exif\0\0". */ SAIL_META_DATA_ID, SAIL_META_DATA_IPTC, SAIL_META_DATA_JOB, SAIL_META_DATA_JUMBF, SAIL_META_DATA_LABEL, SAIL_META_DATA_MAKE, SAIL_META_DATA_MODEL, SAIL_META_DATA_NAME, SAIL_META_DATA_PRINTER, SAIL_META_DATA_SOFTWARE, SAIL_META_DATA_SOFTWARE_VERSION, SAIL_META_DATA_SOURCE, SAIL_META_DATA_TIME_CONSUMED, SAIL_META_DATA_TITLE, SAIL_META_DATA_URL, SAIL_META_DATA_WARNING, SAIL_META_DATA_XMP, }; /* Resolution units. */ enum SailResolutionUnit { SAIL_RESOLUTION_UNIT_UNKNOWN, SAIL_RESOLUTION_UNIT_MICROMETER, SAIL_RESOLUTION_UNIT_CENTIMETER, SAIL_RESOLUTION_UNIT_METER, SAIL_RESOLUTION_UNIT_INCH, }; /* Codec features. */ enum SailCodecFeature { /* Unknown codec feature used to indicate an error in parsing functions. */ SAIL_CODEC_FEATURE_UNKNOWN = 1 << 0, /* Can load or save static images. */ SAIL_CODEC_FEATURE_STATIC = 1 << 1, /* Can load or save animated images. */ SAIL_CODEC_FEATURE_ANIMATED = 1 << 2, /* Can load or save multi-paged (but not animated) images. */ SAIL_CODEC_FEATURE_MULTI_PAGED = 1 << 3, /* Can load or save image meta data like JPEG comments or EXIF. */ SAIL_CODEC_FEATURE_META_DATA = 1 << 4, /* Can load or save interlaced images. */ SAIL_CODEC_FEATURE_INTERLACED = 1 << 5, /* Can load or save embedded ICC profiles. */ SAIL_CODEC_FEATURE_ICCP = 1 << 6, /* Can preserve the source image information. */ SAIL_CODEC_FEATURE_SOURCE_IMAGE = 1 << 7, }; /* Load or save options. */ enum SailOption { /* * Instruction to load or save image meta data like JPEG comments or EXIF. * Loading special properties in source images is also affected by this option. */ SAIL_OPTION_META_DATA = 1 << 0, /* Instruction to save interlaced images. Specifying this option for loading operations has no effect. */ SAIL_OPTION_INTERLACED = 1 << 1, /* Instruction to load or save embedded ICC profile. */ SAIL_OPTION_ICCP = 1 << 2, /* * Instruction to preserve the source image information in loading operations. * Specifying this option for saving operations has no effect. */ SAIL_OPTION_SOURCE_IMAGE = 1 << 3, }; #endif sail-0.9.8/src/sail-common/common_serialize.c000066400000000000000000000721251475535176100212150ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "sail-common.h" const char* sail_pixel_format_to_string(enum SailPixelFormat pixel_format) { switch (pixel_format) { case SAIL_PIXEL_FORMAT_UNKNOWN: return "UNKNOWN"; case SAIL_PIXEL_FORMAT_BPP1: return "BPP1"; case SAIL_PIXEL_FORMAT_BPP2: return "BPP2"; case SAIL_PIXEL_FORMAT_BPP4: return "BPP4"; case SAIL_PIXEL_FORMAT_BPP8: return "BPP8"; case SAIL_PIXEL_FORMAT_BPP16: return "BPP16"; case SAIL_PIXEL_FORMAT_BPP24: return "BPP24"; case SAIL_PIXEL_FORMAT_BPP32: return "BPP32"; case SAIL_PIXEL_FORMAT_BPP48: return "BPP48"; case SAIL_PIXEL_FORMAT_BPP64: return "BPP64"; case SAIL_PIXEL_FORMAT_BPP72: return "BPP72"; case SAIL_PIXEL_FORMAT_BPP96: return "BPP96"; case SAIL_PIXEL_FORMAT_BPP128: return "BPP128"; case SAIL_PIXEL_FORMAT_BPP1_INDEXED: return "BPP1-INDEXED"; case SAIL_PIXEL_FORMAT_BPP2_INDEXED: return "BPP2-INDEXED"; case SAIL_PIXEL_FORMAT_BPP4_INDEXED: return "BPP4-INDEXED"; case SAIL_PIXEL_FORMAT_BPP8_INDEXED: return "BPP8-INDEXED"; case SAIL_PIXEL_FORMAT_BPP16_INDEXED: return "BPP16-INDEXED"; case SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE: return "BPP1-GRAYSCALE"; case SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE: return "BPP2-GRAYSCALE"; case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE: return "BPP4-GRAYSCALE"; case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: return "BPP8-GRAYSCALE"; case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: return "BPP16-GRAYSCALE"; case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA: return "BPP4-GRAYSCALE-ALPHA"; case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA: return "BPP8-GRAYSCALE-ALPHA"; case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: return "BPP16-GRAYSCALE-ALPHA"; case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: return "BPP32-GRAYSCALE-ALPHA"; case SAIL_PIXEL_FORMAT_BPP16_RGB555: return "BPP16-RGB555"; case SAIL_PIXEL_FORMAT_BPP16_BGR555: return "BPP16-BGR555"; case SAIL_PIXEL_FORMAT_BPP16_RGB565: return "BPP16-RGB565"; case SAIL_PIXEL_FORMAT_BPP16_BGR565: return "BPP16-BGR565"; case SAIL_PIXEL_FORMAT_BPP24_RGB: return "BPP24-RGB"; case SAIL_PIXEL_FORMAT_BPP24_BGR: return "BPP24-BGR"; case SAIL_PIXEL_FORMAT_BPP48_RGB: return "BPP48-RGB"; case SAIL_PIXEL_FORMAT_BPP48_BGR: return "BPP48-BGR"; case SAIL_PIXEL_FORMAT_BPP16_RGBX: return "BPP16-RGBX"; case SAIL_PIXEL_FORMAT_BPP16_BGRX: return "BPP16-BGRX"; case SAIL_PIXEL_FORMAT_BPP16_XRGB: return "BPP16-XRGB"; case SAIL_PIXEL_FORMAT_BPP16_XBGR: return "BPP16-XBGR"; case SAIL_PIXEL_FORMAT_BPP16_RGBA: return "BPP16-RGBA"; case SAIL_PIXEL_FORMAT_BPP16_BGRA: return "BPP16-BGRA"; case SAIL_PIXEL_FORMAT_BPP16_ARGB: return "BPP16-ARGB"; case SAIL_PIXEL_FORMAT_BPP16_ABGR: return "BPP16-ABGR"; case SAIL_PIXEL_FORMAT_BPP32_RGBX: return "BPP32-RGBX"; case SAIL_PIXEL_FORMAT_BPP32_BGRX: return "BPP32-BGRX"; case SAIL_PIXEL_FORMAT_BPP32_XRGB: return "BPP32-XRGB"; case SAIL_PIXEL_FORMAT_BPP32_XBGR: return "BPP32-XBGR"; case SAIL_PIXEL_FORMAT_BPP32_RGBA: return "BPP32-RGBA"; case SAIL_PIXEL_FORMAT_BPP32_BGRA: return "BPP32-BGRA"; case SAIL_PIXEL_FORMAT_BPP32_ARGB: return "BPP32-ARGB"; case SAIL_PIXEL_FORMAT_BPP32_ABGR: return "BPP32-ABGR"; case SAIL_PIXEL_FORMAT_BPP64_RGBX: return "BPP64-RGBX"; case SAIL_PIXEL_FORMAT_BPP64_BGRX: return "BPP64-BGRX"; case SAIL_PIXEL_FORMAT_BPP64_XRGB: return "BPP64-XRGB"; case SAIL_PIXEL_FORMAT_BPP64_XBGR: return "BPP64-XBGR"; case SAIL_PIXEL_FORMAT_BPP64_RGBA: return "BPP64-RGBA"; case SAIL_PIXEL_FORMAT_BPP64_BGRA: return "BPP64-BGRA"; case SAIL_PIXEL_FORMAT_BPP64_ARGB: return "BPP64-ARGB"; case SAIL_PIXEL_FORMAT_BPP64_ABGR: return "BPP64-ABGR"; case SAIL_PIXEL_FORMAT_BPP32_CMYK: return "BPP32-CMYK"; case SAIL_PIXEL_FORMAT_BPP64_CMYK: return "BPP64-CMYK"; case SAIL_PIXEL_FORMAT_BPP40_CMYKA: return "BPP40-CMYKA"; case SAIL_PIXEL_FORMAT_BPP80_CMYKA: return "BPP80-CMYKA"; case SAIL_PIXEL_FORMAT_BPP24_YCBCR: return "BPP24-YCBCR"; case SAIL_PIXEL_FORMAT_BPP32_YCCK: return "BPP32-YCCK"; case SAIL_PIXEL_FORMAT_BPP24_CIE_LAB: return "BPP24-CIE-LAB"; case SAIL_PIXEL_FORMAT_BPP40_CIE_LAB: return "BPP40-CIE-LAB"; case SAIL_PIXEL_FORMAT_BPP24_CIE_LUV: return "BPP24-CIE-LUV"; case SAIL_PIXEL_FORMAT_BPP40_CIE_LUV: return "BPP40-CIE-LUV"; case SAIL_PIXEL_FORMAT_BPP24_YUV: return "BPP24-YUV"; case SAIL_PIXEL_FORMAT_BPP30_YUV: return "BPP30-YUV"; case SAIL_PIXEL_FORMAT_BPP36_YUV: return "BPP36-YUV"; case SAIL_PIXEL_FORMAT_BPP48_YUV: return "BPP48-YUV"; case SAIL_PIXEL_FORMAT_BPP32_YUVA: return "BPP32-YUVA"; case SAIL_PIXEL_FORMAT_BPP40_YUVA: return "BPP40-YUVA"; case SAIL_PIXEL_FORMAT_BPP48_YUVA: return "BPP48-YUVA"; case SAIL_PIXEL_FORMAT_BPP64_YUVA: return "BPP64-YUVA"; } return NULL; } enum SailPixelFormat sail_pixel_format_from_string(const char *str) { /* * The switch doesn't look very nice, I know :) However, it's fast and doesn't require * extra data structures and initializations. It's not C++11, so we choose between two evils: * * 1. Introduce extra data structures and their initializations to work with hashes. * 2. Use a single ugly looking switch/case. */ switch (sail_string_hash(str)) { case UINT64_C(229442760833397): return SAIL_PIXEL_FORMAT_UNKNOWN; case UINT64_C(6383902552): return SAIL_PIXEL_FORMAT_BPP1; case UINT64_C(6383902553): return SAIL_PIXEL_FORMAT_BPP2; case UINT64_C(6383902555): return SAIL_PIXEL_FORMAT_BPP4; case UINT64_C(6383902559): return SAIL_PIXEL_FORMAT_BPP8; case UINT64_C(210668784270): return SAIL_PIXEL_FORMAT_BPP16; case UINT64_C(210668784301): return SAIL_PIXEL_FORMAT_BPP24; case UINT64_C(210668784332): return SAIL_PIXEL_FORMAT_BPP32; case UINT64_C(210668784371): return SAIL_PIXEL_FORMAT_BPP48; case UINT64_C(210668784433): return SAIL_PIXEL_FORMAT_BPP64; case UINT64_C(210668784464): return SAIL_PIXEL_FORMAT_BPP72; case UINT64_C(210668784534): return SAIL_PIXEL_FORMAT_BPP96; case UINT64_C(6952069880834): return SAIL_PIXEL_FORMAT_BPP128; case UINT64_C(13257949335914442470): return SAIL_PIXEL_FORMAT_BPP1_INDEXED; case UINT64_C(13257950742323060711): return SAIL_PIXEL_FORMAT_BPP2_INDEXED; case UINT64_C(13257953555140297193): return SAIL_PIXEL_FORMAT_BPP4_INDEXED; case UINT64_C(13257959180774770157): return SAIL_PIXEL_FORMAT_BPP8_INDEXED; case UINT64_C(13237225848150241308): return SAIL_PIXEL_FORMAT_BPP16_INDEXED; case UINT64_C(12552958524517323328): return SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE; case UINT64_C(12554490103502587777): return SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE; case UINT64_C(12557553261473116675): return SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE; case UINT64_C(12563679577414174471): return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE; case UINT64_C(8431824423011809526): return SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE; case UINT64_C(9367569596161118198): return SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA; case UINT64_C(12512997289017890810): return SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA; case UINT64_C(3292614999547101481): return SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA; case UINT64_C(5929884054553197927): return SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA; case UINT64_C(13257949683479278997): return SAIL_PIXEL_FORMAT_BPP16_RGB555; case UINT64_C(13257949682853687701): return SAIL_PIXEL_FORMAT_BPP16_BGR555; case UINT64_C(13257949683479279030): return SAIL_PIXEL_FORMAT_BPP16_RGB565; case UINT64_C(13257949682853687734): return SAIL_PIXEL_FORMAT_BPP16_BGR565; case UINT64_C(249836535348735093): return SAIL_PIXEL_FORMAT_BPP24_RGB; case UINT64_C(249836535348717685): return SAIL_PIXEL_FORMAT_BPP24_BGR; case UINT64_C(249836535431749563): return SAIL_PIXEL_FORMAT_BPP48_RGB; case UINT64_C(249836535431732155): return SAIL_PIXEL_FORMAT_BPP48_BGR; case UINT64_C(8244605665295060974): return SAIL_PIXEL_FORMAT_BPP16_RGBX; case UINT64_C(8244605665294486510): return SAIL_PIXEL_FORMAT_BPP16_BGRX; case UINT64_C(8244605665295288718): return SAIL_PIXEL_FORMAT_BPP16_XRGB; case UINT64_C(8244605665295271310): return SAIL_PIXEL_FORMAT_BPP16_XBGR; case UINT64_C(8244605665295060951): return SAIL_PIXEL_FORMAT_BPP16_RGBA; case UINT64_C(8244605665294486487): return SAIL_PIXEL_FORMAT_BPP16_BGRA; case UINT64_C(8244605665294462167): return SAIL_PIXEL_FORMAT_BPP16_ARGB; case UINT64_C(8244605665294444759): return SAIL_PIXEL_FORMAT_BPP16_ABGR; case UINT64_C(8244605667721455340): return SAIL_PIXEL_FORMAT_BPP32_RGBX; case UINT64_C(8244605667720880876): return SAIL_PIXEL_FORMAT_BPP32_BGRX; case UINT64_C(8244605667721683084): return SAIL_PIXEL_FORMAT_BPP32_XRGB; case UINT64_C(8244605667721665676): return SAIL_PIXEL_FORMAT_BPP32_XBGR; case UINT64_C(8244605667721455317): return SAIL_PIXEL_FORMAT_BPP32_RGBA; case UINT64_C(8244605667720880853): return SAIL_PIXEL_FORMAT_BPP32_BGRA; case UINT64_C(8244605667720856533): return SAIL_PIXEL_FORMAT_BPP32_ARGB; case UINT64_C(8244605667720839125): return SAIL_PIXEL_FORMAT_BPP32_ABGR; case UINT64_C(8244605671674130033): return SAIL_PIXEL_FORMAT_BPP64_RGBX; case UINT64_C(8244605671673555569): return SAIL_PIXEL_FORMAT_BPP64_BGRX; case UINT64_C(8244605671674357777): return SAIL_PIXEL_FORMAT_BPP64_XRGB; case UINT64_C(8244605671674340369): return SAIL_PIXEL_FORMAT_BPP64_XBGR; case UINT64_C(8244605671674130010): return SAIL_PIXEL_FORMAT_BPP64_RGBA; case UINT64_C(8244605671673555546): return SAIL_PIXEL_FORMAT_BPP64_BGRA; case UINT64_C(8244605671673531226): return SAIL_PIXEL_FORMAT_BPP64_ARGB; case UINT64_C(8244605671673513818): return SAIL_PIXEL_FORMAT_BPP64_ABGR; case UINT64_C(8244605667720923565): return SAIL_PIXEL_FORMAT_BPP32_CMYK; case UINT64_C(8244605671673598258): return SAIL_PIXEL_FORMAT_BPP64_CMYK; case UINT64_C(13817570042892262125): return SAIL_PIXEL_FORMAT_BPP40_CMYKA; case UINT64_C(13817570213366034033): return SAIL_PIXEL_FORMAT_BPP80_CMYKA; case UINT64_C(13817569962846953645): return SAIL_PIXEL_FORMAT_BPP24_YCBCR; case UINT64_C(8244605667721702563): return SAIL_PIXEL_FORMAT_BPP32_YCCK; case UINT64_C(13237269438873232231): return SAIL_PIXEL_FORMAT_BPP24_CIE_LAB; case UINT64_C(13237356636207563173): return SAIL_PIXEL_FORMAT_BPP40_CIE_LAB; case UINT64_C(13237269438873232911): return SAIL_PIXEL_FORMAT_BPP24_CIE_LUV; case UINT64_C(13237356636207563853): return SAIL_PIXEL_FORMAT_BPP40_CIE_LUV; case UINT64_C(249836535348743198): return SAIL_PIXEL_FORMAT_BPP24_YUV; case UINT64_C(249836535383134907): return SAIL_PIXEL_FORMAT_BPP30_YUV; case UINT64_C(249836535390250433): return SAIL_PIXEL_FORMAT_BPP36_YUV; case UINT64_C(249836535431757668): return SAIL_PIXEL_FORMAT_BPP48_YUV; case UINT64_C(8244605667721722782): return SAIL_PIXEL_FORMAT_BPP32_YUVA; case UINT64_C(8244605668934919965): return SAIL_PIXEL_FORMAT_BPP40_YUVA; case UINT64_C(8244605669248003109): return SAIL_PIXEL_FORMAT_BPP48_YUVA; case UINT64_C(8244605671674397475): return SAIL_PIXEL_FORMAT_BPP64_YUVA; } return SAIL_PIXEL_FORMAT_UNKNOWN; } const char* sail_chroma_subsampling_to_string(enum SailChromaSubsampling chroma_subsampling) { switch (chroma_subsampling) { case SAIL_CHROMA_SUBSAMPLING_UNKNOWN: return "UNKNOWN"; case SAIL_CHROMA_SUBSAMPLING_311: return "311"; case SAIL_CHROMA_SUBSAMPLING_400: return "400"; case SAIL_CHROMA_SUBSAMPLING_410: return "410"; case SAIL_CHROMA_SUBSAMPLING_411: return "411"; case SAIL_CHROMA_SUBSAMPLING_420: return "420"; case SAIL_CHROMA_SUBSAMPLING_421: return "421"; case SAIL_CHROMA_SUBSAMPLING_422: return "422"; case SAIL_CHROMA_SUBSAMPLING_444: return "444"; } return NULL; } enum SailChromaSubsampling sail_chroma_subsampling_from_string(const char *str) { switch (sail_string_hash(str)) { case UINT64_C(229442760833397): return SAIL_CHROMA_SUBSAMPLING_UNKNOWN; case UINT64_C(193434202): return SAIL_CHROMA_SUBSAMPLING_311; case UINT64_C(193435257): return SAIL_CHROMA_SUBSAMPLING_400; case UINT64_C(193435290): return SAIL_CHROMA_SUBSAMPLING_410; case UINT64_C(193435291): return SAIL_CHROMA_SUBSAMPLING_411; case UINT64_C(193435323): return SAIL_CHROMA_SUBSAMPLING_420; case UINT64_C(193435324): return SAIL_CHROMA_SUBSAMPLING_421; case UINT64_C(193435325): return SAIL_CHROMA_SUBSAMPLING_422; case UINT64_C(193435393): return SAIL_CHROMA_SUBSAMPLING_444; } return SAIL_CHROMA_SUBSAMPLING_UNKNOWN; } const char* sail_orientation_to_string(enum SailOrientation orientation) { switch (orientation) { case SAIL_ORIENTATION_NORMAL: return "NORMAL"; case SAIL_ORIENTATION_ROTATED_90: return "ROTATED-90"; case SAIL_ORIENTATION_ROTATED_180: return "ROTATED-180"; case SAIL_ORIENTATION_ROTATED_270: return "ROTATED-270"; case SAIL_ORIENTATION_MIRRORED_HORIZONTALLY: return "MIRRORED-HORIZONTALLY"; case SAIL_ORIENTATION_MIRRORED_VERTICALLY: return "MIRRORED-VERTICALLY"; case SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_90: return "MIRRORED-HORIZONTALLY-ROTATED-90"; case SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_270: return "MIRRORED-HORIZONTALLY-ROTATED-270"; } return NULL; } enum SailOrientation sail_orientation_from_string(const char *str) { switch (sail_string_hash(str)) { case UINT64_C(6952538422510): return SAIL_ORIENTATION_NORMAL; case UINT64_C(8245347034976125518): return SAIL_ORIENTATION_ROTATED_90; case UINT64_C(13842035122278411070): return SAIL_ORIENTATION_ROTATED_180; case UINT64_C(13842035122278412126): return SAIL_ORIENTATION_ROTATED_270; case UINT64_C(11926570361219790885): return SAIL_ORIENTATION_MIRRORED_HORIZONTALLY; case UINT64_C(13156374894390392277): return SAIL_ORIENTATION_MIRRORED_VERTICALLY; case UINT64_C(2303160910968993403): return SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_90; case UINT64_C(2217333767138568491): return SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_270; } return SAIL_ORIENTATION_NORMAL; } const char* sail_compression_to_string(enum SailCompression compression) { switch (compression) { case SAIL_COMPRESSION_UNKNOWN: return "UNKNOWN"; case SAIL_COMPRESSION_NONE: return "NONE"; case SAIL_COMPRESSION_ADOBE_DEFLATE: return "ADOBE-DEFLATE"; case SAIL_COMPRESSION_AV1: return "AV1"; case SAIL_COMPRESSION_CCITT_FAX3: return "CCITT-FAX3"; case SAIL_COMPRESSION_CCITT_FAX4: return "CCITT-FAX4"; case SAIL_COMPRESSION_CCITT_RLE: return "CCITT-RLE"; case SAIL_COMPRESSION_CCITT_RLEW: return "CCITT-RLEW"; case SAIL_COMPRESSION_CCITT_T4: return "CCITT-T4"; case SAIL_COMPRESSION_CCITT_T6: return "CCITT-T6"; case SAIL_COMPRESSION_DCS: return "DCS"; case SAIL_COMPRESSION_DEFLATE: return "DEFLATE"; case SAIL_COMPRESSION_IT8_BL: return "IT8-BL"; case SAIL_COMPRESSION_IT8_CTPAD: return "IT8-CTPAD"; case SAIL_COMPRESSION_IT8_LW: return "IT8-LW"; case SAIL_COMPRESSION_IT8_MP: return "IT8-MP"; case SAIL_COMPRESSION_JBIG: return "JBIG"; case SAIL_COMPRESSION_JPEG: return "JPEG"; case SAIL_COMPRESSION_JPEG_2000: return "JPEG-2000"; case SAIL_COMPRESSION_JPEG_XL: return "JPEG-XL"; case SAIL_COMPRESSION_JPEG_XR: return "JPEG-XR"; case SAIL_COMPRESSION_LERC: return "LERC"; case SAIL_COMPRESSION_LZMA: return "LZMA"; case SAIL_COMPRESSION_LZW: return "LZW"; case SAIL_COMPRESSION_NEXT: return "NEXT"; case SAIL_COMPRESSION_OJPEG: return "OJPEG"; case SAIL_COMPRESSION_PACKBITS: return "PACKBITS"; case SAIL_COMPRESSION_PIXAR_FILM: return "PIXAR-FILM"; case SAIL_COMPRESSION_PIXAR_LOG: return "PIXAR-LOG"; case SAIL_COMPRESSION_QOI: return "QOI"; case SAIL_COMPRESSION_RLE: return "RLE"; case SAIL_COMPRESSION_SGI_LOG: return "SGI-LOG"; case SAIL_COMPRESSION_SGI_LOG24: return "SGI-LOG24"; case SAIL_COMPRESSION_T43: return "T43"; case SAIL_COMPRESSION_T85: return "T85"; case SAIL_COMPRESSION_THUNDERSCAN: return "THUNDERSCAN"; case SAIL_COMPRESSION_WEBP: return "WEBP"; case SAIL_COMPRESSION_ZIP: return "ZIP"; case SAIL_COMPRESSION_ZSTD: return "ZSTD"; } return NULL; } enum SailCompression sail_compression_from_string(const char *str) { switch (sail_string_hash(str)) { case UINT64_C(229442760833397): return SAIL_COMPRESSION_UNKNOWN; case UINT64_C(6384332661): return SAIL_COMPRESSION_NONE; case UINT64_C(10962109560604417378): return SAIL_COMPRESSION_ADOBE_DEFLATE; case UINT64_C(193450669): return SAIL_COMPRESSION_AV1; case UINT64_C(8244633541513328571): return SAIL_COMPRESSION_CCITT_FAX3; case UINT64_C(8244633541513328572): return SAIL_COMPRESSION_CCITT_FAX4; case UINT64_C(249837380045871852): return SAIL_COMPRESSION_CCITT_RLE; case UINT64_C(8244633541513771203): return SAIL_COMPRESSION_CCITT_RLEW; case UINT64_C(7570829698359793): return SAIL_COMPRESSION_CCITT_T4; case UINT64_C(7570829698359795): return SAIL_COMPRESSION_CCITT_T6; case UINT64_C(193453343): return SAIL_COMPRESSION_DCS; case UINT64_C(229420447642554): return SAIL_COMPRESSION_DEFLATE; case UINT64_C(6952347705973): return SAIL_COMPRESSION_IT8_BL; case UINT64_C(249846519511114451): return SAIL_COMPRESSION_IT8_CTPAD; case UINT64_C(6952347706314): return SAIL_COMPRESSION_IT8_LW; case UINT64_C(6952347706340): return SAIL_COMPRESSION_IT8_MP; case UINT64_C(6384174593): return SAIL_COMPRESSION_JBIG; case UINT64_C(6384189707): return SAIL_COMPRESSION_JPEG; case UINT64_C(249847773225217050): return SAIL_COMPRESSION_JPEG_2000; case UINT64_C(229428625552444): return SAIL_COMPRESSION_JPEG_XL; case UINT64_C(229428625552450): return SAIL_COMPRESSION_JPEG_XR; case UINT64_C(6384250027): return SAIL_COMPRESSION_LERC; case UINT64_C(6384272729): return SAIL_COMPRESSION_LZMA; case UINT64_C(193462818): return SAIL_COMPRESSION_LZW; case UINT64_C(6384322116): return SAIL_COMPRESSION_NEXT; case UINT64_C(210683986298): return SAIL_COMPRESSION_OJPEG; case UINT64_C(7571380909080566): return SAIL_COMPRESSION_PACKBITS; case UINT64_C(8245245943922754206): return SAIL_COMPRESSION_PIXAR_FILM; case UINT64_C(249855937694635640): return SAIL_COMPRESSION_PIXAR_LOG; case UINT64_C(193467886): return SAIL_COMPRESSION_QOI; case UINT64_C(193468872): return SAIL_COMPRESSION_RLE; case UINT64_C(229439900388407): return SAIL_COMPRESSION_SGI_LOG; case UINT64_C(249860051522976925): return SAIL_COMPRESSION_SGI_LOG24; case UINT64_C(193470240): return SAIL_COMPRESSION_T43; case UINT64_C(193470374): return SAIL_COMPRESSION_T85; case UINT64_C(13844775339661004164): return SAIL_COMPRESSION_THUNDERSCAN; case UINT64_C(6384644819): return SAIL_COMPRESSION_WEBP; case UINT64_C(193477496): return SAIL_COMPRESSION_ZIP; case UINT64_C(6384768458): return SAIL_COMPRESSION_ZSTD; } return SAIL_COMPRESSION_UNKNOWN; } const char* sail_meta_data_to_string(enum SailMetaData meta_data) { switch (meta_data) { case SAIL_META_DATA_UNKNOWN: return "Unknown"; case SAIL_META_DATA_ARTIST: return "Artist"; case SAIL_META_DATA_AUTHOR: return "Author"; case SAIL_META_DATA_COMMENT: return "Comment"; case SAIL_META_DATA_COMPUTER: return "Computer"; case SAIL_META_DATA_COPYRIGHT: return "Copyright"; case SAIL_META_DATA_CREATION_TIME: return "Creation Time"; case SAIL_META_DATA_DESCRIPTION: return "Description"; case SAIL_META_DATA_DISCLAIMER: return "Disclaimer"; case SAIL_META_DATA_DOCUMENT: return "Document"; case SAIL_META_DATA_EXIF: return "EXIF"; case SAIL_META_DATA_ID: return "ID"; case SAIL_META_DATA_IPTC: return "IPTC"; case SAIL_META_DATA_JOB: return "Job"; case SAIL_META_DATA_JUMBF: return "JUMBF"; case SAIL_META_DATA_LABEL: return "Label"; case SAIL_META_DATA_MAKE: return "Make"; case SAIL_META_DATA_MODEL: return "Model"; case SAIL_META_DATA_NAME: return "Name"; case SAIL_META_DATA_PRINTER: return "Printer"; case SAIL_META_DATA_SOFTWARE: return "Software"; case SAIL_META_DATA_SOFTWARE_VERSION: return "Software Version"; case SAIL_META_DATA_SOURCE: return "Source"; case SAIL_META_DATA_TIME_CONSUMED: return "Time Consumed"; case SAIL_META_DATA_TITLE: return "Title"; case SAIL_META_DATA_URL: return "URL"; case SAIL_META_DATA_WARNING: return "Warning"; case SAIL_META_DATA_XMP: return "XMP"; } return NULL; } enum SailMetaData sail_meta_data_from_string(const char *str) { switch (sail_string_hash(str)) { case UINT64_C(229444052301365): return SAIL_META_DATA_UNKNOWN; case UINT64_C(6952072423676): return SAIL_META_DATA_ARTIST; case UINT64_C(6952075980216): return SAIL_META_DATA_AUTHOR; case UINT64_C(229420847338040): return SAIL_META_DATA_COMMENT; case UINT64_C(7570887966294228): return SAIL_META_DATA_COMPUTER; case UINT64_C(249839307110380862): return SAIL_META_DATA_COPYRIGHT; case UINT64_C(16658027699238675945): return SAIL_META_DATA_CREATION_TIME; case UINT64_C(13821659157043486569): return SAIL_META_DATA_DESCRIPTION; case UINT64_C(8244735206874071778): return SAIL_META_DATA_DISCLAIMER; case UINT64_C(7570930199009348): return SAIL_META_DATA_DOCUMENT; case UINT64_C(6384018865): return SAIL_META_DATA_EXIF; case UINT64_C(5862386): return SAIL_META_DATA_ID; case UINT64_C(6384154261): return SAIL_META_DATA_IPTC; case UINT64_C(193461344): return SAIL_META_DATA_JOB; case UINT64_C(210678448633): return SAIL_META_DATA_JUMBF; case UINT64_C(210681275781): return SAIL_META_DATA_LABEL; case UINT64_C(6384317315): return SAIL_META_DATA_MAKE; case UINT64_C(210682966998): return SAIL_META_DATA_MODEL; case UINT64_C(6384353318): return SAIL_META_DATA_NAME; case UINT64_C(229437749136105): return SAIL_META_DATA_PRINTER; case UINT64_C(7571569592229392): return SAIL_META_DATA_SOFTWARE; case UINT64_C(7030316421278646518): return SAIL_META_DATA_SOFTWARE_VERSION; case UINT64_C(6952773348182): return SAIL_META_DATA_SOURCE; case UINT64_C(7676100867491355186): return SAIL_META_DATA_TIME_CONSUMED; case UINT64_C(210691070471): return SAIL_META_DATA_TITLE; case UINT64_C(193472344): return SAIL_META_DATA_URL; case UINT64_C(229446134771803): return SAIL_META_DATA_WARNING; case UINT64_C(193475450): return SAIL_META_DATA_XMP; } return SAIL_META_DATA_UNKNOWN; } const char* sail_resolution_unit_to_string(enum SailResolutionUnit resolution_unit) { switch (resolution_unit) { case SAIL_RESOLUTION_UNIT_UNKNOWN: return "Unknown"; case SAIL_RESOLUTION_UNIT_MICROMETER: return "Micrometer"; case SAIL_RESOLUTION_UNIT_CENTIMETER: return "Centimeter"; case SAIL_RESOLUTION_UNIT_METER: return "Meter"; case SAIL_RESOLUTION_UNIT_INCH: return "Inch"; } return NULL; } enum SailResolutionUnit sail_resolution_unit_from_string(const char *str) { switch (sail_string_hash(str)) { case UINT64_C(229444052301365): return SAIL_RESOLUTION_UNIT_UNKNOWN; case UINT64_C(8245152247842122364): return SAIL_RESOLUTION_UNIT_MICROMETER; case UINT64_C(8244682978514626197): return SAIL_RESOLUTION_UNIT_CENTIMETER; case UINT64_C(210682625058): return SAIL_RESOLUTION_UNIT_METER; case UINT64_C(6384187463): return SAIL_RESOLUTION_UNIT_INCH; } return SAIL_RESOLUTION_UNIT_UNKNOWN; } const char* sail_codec_feature_to_string(enum SailCodecFeature codec_feature) { switch (codec_feature) { case SAIL_CODEC_FEATURE_UNKNOWN: return "UNKNOWN"; case SAIL_CODEC_FEATURE_STATIC: return "STATIC"; case SAIL_CODEC_FEATURE_ANIMATED: return "ANIMATED"; case SAIL_CODEC_FEATURE_MULTI_PAGED: return "MULTI-PAGED"; case SAIL_CODEC_FEATURE_META_DATA: return "META-DATA"; case SAIL_CODEC_FEATURE_INTERLACED: return "INTERLACED"; case SAIL_CODEC_FEATURE_ICCP: return "ICCP"; case SAIL_CODEC_FEATURE_SOURCE_IMAGE: return "SOURCE-IMAGE"; } return NULL; } enum SailCodecFeature sail_codec_feature_from_string(const char *str) { switch (sail_string_hash(str)) { case UINT64_C(229442760833397): return SAIL_CODEC_FEATURE_UNKNOWN; case UINT64_C(6952739426029): return SAIL_CODEC_FEATURE_STATIC; case UINT64_C(7570758658679240): return SAIL_CODEC_FEATURE_ANIMATED; case UINT64_C(13834645239609548286): return SAIL_CODEC_FEATURE_MULTI_PAGED; case UINT64_C(249851542786072787): return SAIL_CODEC_FEATURE_META_DATA; case UINT64_C(8244927930303708800): return SAIL_CODEC_FEATURE_INTERLACED; case UINT64_C(6384139556): return SAIL_CODEC_FEATURE_ICCP; case UINT64_C(14115912967723543398): return SAIL_CODEC_FEATURE_SOURCE_IMAGE; } return SAIL_CODEC_FEATURE_UNKNOWN; } sail-0.9.8/src/sail-common/common_serialize.h000066400000000000000000000131501475535176100212130ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_COMMON_SERIALIZE_H #define SAIL_COMMON_SERIALIZE_H #include #include #ifdef __cplusplus extern "C" { #endif /* * Returns a string representation of the specified pixel format. * For example: "BPP32-RGBA" is returned for SAIL_PIXEL_FORMAT_BPP32_RGBA. * * Returns NULL if the pixel format is not known. */ SAIL_EXPORT const char* sail_pixel_format_to_string(enum SailPixelFormat pixel_format); /* * Returns a pixel format from the string representation. * For example: SAIL_PIXEL_FORMAT_BPP32_RGBA is returned for "BPP32-RGBA". * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if the pixel format is not known. */ SAIL_EXPORT enum SailPixelFormat sail_pixel_format_from_string(const char *str); /* * Returns a string representation of the specified chroma subsampling. * For example: "311" is returned for SAIL_CHROMA_SUBSAMPLING_311. * * Returns NULL if the chroma subsampling is not known. */ SAIL_EXPORT const char* sail_chroma_subsampling_to_string(enum SailChromaSubsampling chroma_subsampling); /* * Returns a chroma subsampling from the string representation. * For example: SAIL_CHROMA_SUBSAMPLING_311 is returned for "311". * * Returns SAIL_CHROMA_SUBSAMPLING_UNKNOWN if the chroma subsampling is not known. */ SAIL_EXPORT enum SailChromaSubsampling sail_chroma_subsampling_from_string(const char *str); /* * Returns a string representation of the specified image property. See SailOrientation. * For example: "NORMAL" is returned for SAIL_ORIENTATION_NORMAL. * * Returns NULL if the property is not known. */ SAIL_EXPORT const char* sail_orientation_to_string(enum SailOrientation orientation); /* * Returns an image property from the string representation. See SailOrientation. * For example: SAIL_ORIENTATION_NORMAL is returned for "NORMAL". * * Returns SAIL_ORIENTATION_NORMAL if the orientation is not known. */ SAIL_EXPORT enum SailOrientation sail_orientation_from_string(const char *str); /* * Returns string representation of the specified compression type. See SailCompression. * For example: "RLE" is returned for SAIL_COMPRESSION_RLE. * * Returns NULL if the compression is not known. */ SAIL_EXPORT const char* sail_compression_to_string(enum SailCompression compression); /* * Returns a compression from the string representation. See SailCompression. * For example: SAIL_COMPRESSION_RLE is returned for "RLE". * * Returns SAIL_COMPRESSION_UNKNOWN if the compression is not known. */ SAIL_EXPORT enum SailCompression sail_compression_from_string(const char *str); /* * Returns a string representation of the specified meta data key. See SailMetaData. * For example: "Author" is returned for SAIL_META_DATA_AUTHOR. * * Returns NULL if the meta data key is not known. */ SAIL_EXPORT const char* sail_meta_data_to_string(enum SailMetaData meta_data); /* * Returns a meta data key from the string representation. See SailMetaData. * For example: SAIL_META_DATA_AUTHOR is returned for "Author". * * Returns SAIL_META_DATA_UNKNOWN if the meta data key is not known. */ SAIL_EXPORT enum SailMetaData sail_meta_data_from_string(const char *str); /* * Returns a string representation of the specified resolution unit. See SailResolutionUnit. * For example: "Micrometer" is returned for SAIL_RESOLUTION_UNIT_MICROMETER. * * Returns NULL if the resolution unit is not known. */ SAIL_EXPORT const char* sail_resolution_unit_to_string(enum SailResolutionUnit resolution_unit); /* * Returns a resolution unit from the string representation. See SailResolutionUnit. * For example: SAIL_RESOLUTION_UNIT_MICROMETER is returned for "Micrometer". * * Returns SAIL_RESOLUTION_UNIT_UNKNOWN if the resolution unit is not known. */ SAIL_EXPORT enum SailResolutionUnit sail_resolution_unit_from_string(const char *str); /* * Returns a string representation of the specified codec feature. See SailCodecFeature. * For example: "STATIC" is returned for SAIL_CODEC_FEATURE_STATIC. * * Returns NULL if the codec feature is not known. */ SAIL_EXPORT const char* sail_codec_feature_to_string(enum SailCodecFeature codec_feature); /* * Returns a codec feature from the string representation. See SailCodecFeature. * For example: SAIL_CODEC_FEATURE_STATIC is returned for "STATIC". * * Returns SAIL_CODEC_FEATURE_UNKNOWN if the codec feature is not known. */ SAIL_EXPORT enum SailCodecFeature sail_codec_feature_from_string(const char *str); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/compiler_specifics.h000066400000000000000000000037201475535176100215200ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_COMPILER_SPECIFICS_H #define SAIL_COMPILER_SPECIFICS_H /* Thread local flag used with static variables. */ #if defined __GNUC__ #define SAIL_THREAD_LOCAL __thread #elif defined _MSC_VER #define SAIL_THREAD_LOCAL __declspec(thread) #elif defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L #define SAIL_THREAD_LOCAL _Thread_local #elif defined _Thread_local #define SAIL_THREAD_LOCAL _Thread_local #else /* Syntax error. */ Do not know how to define thread local variables for this compiler. #endif /* Branch predictions. */ #ifdef __GNUC__ #define SAIL_LIKELY(x) (__builtin_expect((x), 1)) #define SAIL_UNLIKELY(x) (__builtin_expect((x), 0)) #else #define SAIL_LIKELY(x) (x) #define SAIL_UNLIKELY(x) (x) #endif #endif sail-0.9.8/src/sail-common/compression_level.c000066400000000000000000000035371475535176100214070ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "sail-common.h" sail_status_t sail_alloc_compression_level(struct sail_compression_level **compression_level) { SAIL_CHECK_PTR(compression_level); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_compression_level), &ptr)); *compression_level = ptr; (*compression_level)->min_level = 0; (*compression_level)->max_level = 0; (*compression_level)->default_level = 0; (*compression_level)->step = 0; return SAIL_OK; } void sail_destroy_compression_level(struct sail_compression_level *compression_level) { if (compression_level == NULL) { return; } sail_free(compression_level); } sail-0.9.8/src/sail-common/compression_level.h000066400000000000000000000052161475535176100214100ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_COMPRESSION_LEVEL_H #define SAIL_COMPRESSION_LEVEL_H #include #include #ifdef __cplusplus extern "C" { #endif /* * Compression level. */ struct sail_compression_level { /* * Minimum compression value. For lossy codecs, more compression means less quality * and vice versa. For lossless codecs, more compression means nothing but a smaller * file size. */ double min_level; /* * Maximum compression value. For lossy codecs, more compression means less quality * and vice versa. For lossless codecs, more compression means nothing but a smaller * file size. */ double max_level; /* * Default compression value within the min/max range. */ double default_level; /* * Step to increase or decrease compression levels in the range. * Can be used in UI to build a compression level selection component. */ double step; }; typedef struct sail_compression_level sail_compression_level_t; /* * Allocates a new compression level. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_compression_level(struct sail_compression_level **compression_level); /* * Destroys the specified compression level. Does nothing if the compression level is NULL. */ SAIL_EXPORT void sail_destroy_compression_level(struct sail_compression_level *compression_level); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/export.h000066400000000000000000000033321475535176100171760ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_EXPORT_H #define SAIL_EXPORT_H #if defined _WIN32 || defined __CYGWIN__ #ifdef SAIL_STATIC #define SAIL_IMPORT #else #define SAIL_IMPORT __declspec(dllimport) #endif #ifdef SAIL_BUILD #define SAIL_EXPORT __declspec(dllexport) #else #define SAIL_EXPORT SAIL_IMPORT #endif #define SAIL_HIDDEN #else #define SAIL_EXPORT __attribute__((visibility("default"))) #define SAIL_IMPORT #define SAIL_HIDDEN __attribute__((visibility("hidden"))) #endif #endif sail-0.9.8/src/sail-common/hash_map.c000066400000000000000000000175601475535176100174400ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "sail-common.h" /* * Private functions. */ static inline uint64_t calculate_hash(const char *key) { return sail_string_hash(key) % SAIL_HASH_MAP_SIZE; } /* * Public functions. */ sail_status_t sail_alloc_hash_map(struct sail_hash_map **hash_map) { SAIL_CHECK_PTR(hash_map); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_hash_map), &ptr)); *hash_map = ptr; for (size_t i = 0; i < SAIL_HASH_MAP_SIZE; i++) { (*hash_map)->buckets[i] = NULL; } return SAIL_OK; } void sail_destroy_hash_map(struct sail_hash_map *hash_map) { if (hash_map == NULL) { return; } sail_clear_hash_map(hash_map); sail_free(hash_map); } sail_status_t sail_put_hash_map(struct sail_hash_map *hash_map, const char *key, const struct sail_variant *value) { SAIL_CHECK_PTR(hash_map); SAIL_CHECK_PTR(key); SAIL_CHECK_PTR(value); struct sail_variant_node **key_variant_node; for (key_variant_node = &hash_map->buckets[calculate_hash(key)]; *key_variant_node != NULL; key_variant_node = &(*key_variant_node)->next->next) { struct sail_variant_node *value_variant_node = (*key_variant_node)->next; if (strcmp(sail_variant_to_string((*key_variant_node)->variant), key) == 0) { if (!sail_equal_variants(value_variant_node->variant, value)) { /* Overwrite value. */ sail_destroy_variant(value_variant_node->variant); SAIL_TRY(sail_copy_variant(value, &value_variant_node->variant)); } return SAIL_OK; } } struct sail_variant_node *local_variant_node; SAIL_TRY(sail_alloc_variant_node_and_value(&local_variant_node)); SAIL_TRY_OR_CLEANUP(sail_set_variant_string(local_variant_node->variant, key), /* cleanup */ sail_destroy_variant_node_chain(local_variant_node)); SAIL_TRY_OR_CLEANUP(sail_alloc_variant_node(&local_variant_node->next), /* cleanup */ sail_destroy_variant_node_chain(local_variant_node)); SAIL_TRY_OR_CLEANUP(sail_copy_variant(value, &local_variant_node->next->variant), /* cleanup */ sail_destroy_variant_node_chain(local_variant_node)); *key_variant_node = local_variant_node; return SAIL_OK; } bool sail_hash_map_has_key(const struct sail_hash_map *hash_map, const char *key) { if (key == NULL) { return false; } for (const struct sail_variant_node *key_variant_node = hash_map->buckets[calculate_hash(key)]; key_variant_node != NULL; key_variant_node = key_variant_node->next->next) { if (strcmp(sail_variant_to_string(key_variant_node->variant), key) == 0) { return true; } } return false; } struct sail_variant* sail_hash_map_value(const struct sail_hash_map *hash_map, const char *key) { if (key == NULL) { return NULL; } for (struct sail_variant_node *key_variant_node = hash_map->buckets[calculate_hash(key)]; key_variant_node != NULL; key_variant_node = key_variant_node->next->next) { if (strcmp(sail_variant_to_string(key_variant_node->variant), key) == 0) { return key_variant_node->next->variant; } } return NULL; } unsigned sail_hash_map_size(const struct sail_hash_map *hash_map) { unsigned size = 0; for (size_t i = 0; i < SAIL_HASH_MAP_SIZE; i++) { for (struct sail_variant_node *key_variant_node = hash_map->buckets[i]; key_variant_node != NULL; key_variant_node = key_variant_node->next->next) { size++; } } return size; } void sail_traverse_hash_map(const struct sail_hash_map *hash_map, bool (*callback)(const char *key, const struct sail_variant *value)){ for (size_t i = 0; i < SAIL_HASH_MAP_SIZE; i++) { for (const struct sail_variant_node *key_variant_node = hash_map->buckets[i]; key_variant_node != NULL && callback(sail_variant_to_string(key_variant_node->variant), key_variant_node->next->variant); key_variant_node = key_variant_node->next->next) { } } } void sail_traverse_hash_map_with_user_data(const struct sail_hash_map *hash_map, bool (*callback)(const char *key, const struct sail_variant *value, void *user_data), void *user_data) { for (size_t i = 0; i < SAIL_HASH_MAP_SIZE; i++) { for (const struct sail_variant_node *key_variant_node = hash_map->buckets[i]; key_variant_node != NULL && callback(sail_variant_to_string(key_variant_node->variant), key_variant_node->next->variant, user_data); key_variant_node = key_variant_node->next->next) { } } } void sail_erase_hash_map_key(struct sail_hash_map *hash_map, const char *key) { if (key == NULL) { return; } for (struct sail_variant_node **head_variant_node = &hash_map->buckets[calculate_hash(key)], *key_variant_node = *head_variant_node, *prev_key_variant_node = NULL; key_variant_node != NULL; prev_key_variant_node = key_variant_node, key_variant_node = key_variant_node->next->next) { if (strcmp(sail_variant_to_string(key_variant_node->variant), key) == 0) { struct sail_variant_node *next_key_variant_node = key_variant_node->next->next; sail_destroy_variant_node(key_variant_node->next); sail_destroy_variant_node(key_variant_node); /* Erase from the head. */ if (key_variant_node == *head_variant_node) { *head_variant_node = next_key_variant_node; } else { /* Erase from the middle/end. */ prev_key_variant_node->next->next = next_key_variant_node; } return; } } } void sail_clear_hash_map(struct sail_hash_map *hash_map) { for (size_t i = 0; i < SAIL_HASH_MAP_SIZE; i++) { sail_destroy_variant_node_chain(hash_map->buckets[i]); hash_map->buckets[i] = NULL; } } sail_status_t sail_copy_hash_map(const struct sail_hash_map *source_hash_map, struct sail_hash_map **target_hash_map) { SAIL_CHECK_PTR(source_hash_map); SAIL_CHECK_PTR(target_hash_map); struct sail_hash_map *hash_map_local; SAIL_TRY(sail_alloc_hash_map(&hash_map_local)); for (size_t i = 0; i < SAIL_HASH_MAP_SIZE; i++) { SAIL_TRY_OR_CLEANUP(sail_copy_variant_node_chain(source_hash_map->buckets[i], &hash_map_local->buckets[i]), /* cleanup */ sail_destroy_hash_map(hash_map_local)); } *target_hash_map = hash_map_local; return SAIL_OK; } sail-0.9.8/src/sail-common/hash_map.h000066400000000000000000000074551475535176100174470ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_HASH_MAP_H #define SAIL_HASH_MAP_H #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_hash_map; struct sail_variant; /* * Allocates a new hash map. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_hash_map(struct sail_hash_map **hash_map); /* * Destroys the specified hash map. Does nothing if the hash map is NULL. */ SAIL_EXPORT void sail_destroy_hash_map(struct sail_hash_map *hash_map); /* * Puts a new key-value pair into the hash map. The value gets deep copied. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_put_hash_map(struct sail_hash_map *hash_map, const char *key, const struct sail_variant *value); /* * Returns true if the hash map contains the specified key. */ SAIL_EXPORT bool sail_hash_map_has_key(const struct sail_hash_map *hash_map, const char *key); /* * Returns the key associated value or NULL. */ SAIL_EXPORT struct sail_variant* sail_hash_map_value(const struct sail_hash_map *hash_map, const char *key); /* * Returns the number of keys stored in the hash map. */ SAIL_EXPORT unsigned sail_hash_map_size(const struct sail_hash_map *hash_map); /* * Traverses the hash map in random order and calls the callback function on every key-value pair. * If the callback returns false, the loop stops at the current element. */ SAIL_EXPORT void sail_traverse_hash_map(const struct sail_hash_map *hash_map, bool (*callback)(const char *key, const struct sail_variant *value)); /* * Traverses the hash map in random order and calls the callback function on every key-value pair. * Additionally passes the specfied user data to the callback. * If the callback returns false, the loop stops at the current element. */ SAIL_EXPORT void sail_traverse_hash_map_with_user_data(const struct sail_hash_map *hash_map, bool (*callback)(const char *key, const struct sail_variant *value, void *user_data), void *user_data); /* * Erases the key-value pair from the hash map. */ SAIL_EXPORT void sail_erase_hash_map_key(struct sail_hash_map *hash_map, const char *key); /* * Removes all the key-value pairs from the hash map. */ SAIL_EXPORT void sail_clear_hash_map(struct sail_hash_map *hash_map); /* * Makes a deep copy of the specified hash map. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_hash_map(const struct sail_hash_map *source_hash_map, struct sail_hash_map **target_hash_map); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/hash_map_private.h000066400000000000000000000030741475535176100211720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_HASH_MAP_PRIVATE_H #define SAIL_HASH_MAP_PRIVATE_H struct sail_variant_node; enum { SAIL_HASH_MAP_SIZE = 32 }; /* * A pretty limited hash map implementation. */ struct sail_hash_map { /* * Values follow keys in the chain, e.g. key1 -> value1 -> key2 -> value2 -> NULL. */ struct sail_variant_node *buckets[SAIL_HASH_MAP_SIZE]; }; #endif sail-0.9.8/src/sail-common/iccp.c000066400000000000000000000062601475535176100165710ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "sail-common.h" sail_status_t sail_alloc_iccp(struct sail_iccp **iccp) { SAIL_CHECK_PTR(iccp); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_iccp), &ptr)); *iccp = ptr; (*iccp)->data = NULL; (*iccp)->size = 0; return SAIL_OK; } sail_status_t sail_alloc_iccp_from_data(const void *data, size_t data_size, struct sail_iccp **iccp) { struct sail_iccp *iccp_local; SAIL_TRY(sail_alloc_iccp_for_data(data_size, &iccp_local)); memcpy(iccp_local->data, data, data_size); *iccp = iccp_local; return SAIL_OK; } sail_status_t sail_alloc_iccp_from_shallow_data(void *data, size_t data_size, struct sail_iccp **iccp) { SAIL_CHECK_PTR(data); SAIL_CHECK_PTR(iccp); SAIL_TRY(sail_alloc_iccp(iccp)); (*iccp)->data = data; (*iccp)->size = data_size; return SAIL_OK; } sail_status_t sail_alloc_iccp_for_data(size_t data_size, struct sail_iccp **iccp) { SAIL_CHECK_PTR(iccp); struct sail_iccp *iccp_local; SAIL_TRY(sail_alloc_iccp(&iccp_local)); SAIL_TRY_OR_CLEANUP(sail_malloc(data_size, &iccp_local->data), /* cleanup */ sail_destroy_iccp(iccp_local)); iccp_local->size = data_size; *iccp = iccp_local; return SAIL_OK; } void sail_destroy_iccp(struct sail_iccp *iccp) { if (iccp == NULL) { return; } sail_free(iccp->data); sail_free(iccp); } sail_status_t sail_copy_iccp(const struct sail_iccp *source_iccp, struct sail_iccp **target_iccp) { SAIL_CHECK_PTR(source_iccp); SAIL_CHECK_PTR(target_iccp); struct sail_iccp *iccp_local; SAIL_TRY(sail_alloc_iccp(&iccp_local)); SAIL_TRY_OR_CLEANUP(sail_malloc(source_iccp->size, &iccp_local->data), /* cleanup */ sail_destroy_iccp(iccp_local)); memcpy(iccp_local->data, source_iccp->data, source_iccp->size); iccp_local->size = source_iccp->size; *target_iccp = iccp_local; return SAIL_OK; } sail-0.9.8/src/sail-common/iccp.h000066400000000000000000000060441475535176100165760ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_ICCP_H #define SAIL_ICCP_H #include /* size_t */ #include #include #ifdef __cplusplus extern "C" { #endif /* * ICCP represents an ICC profile. */ struct sail_iccp { /* ICC profile binary data. */ void *data; /* The size of the data. */ size_t size; }; typedef struct sail_iccp sail_iccp_t; /* * Allocates a new ICC profile. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_iccp(struct sail_iccp **iccp); /* * Allocates a new ICC profile and deep copies the specified ICC profile data into it. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_iccp_from_data(const void *data, size_t data_size, struct sail_iccp **iccp); /* * Allocates a new ICC profile and copies the external pointer to another ICC data into it. * Do not free the external pointer. It will be freed in sail_destroy_iccp(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_iccp_from_shallow_data(void *data, size_t data_size, struct sail_iccp **iccp); /* * Allocates a new ICC profile for the specified ICC profile data size. * * Use this function to allocate an ICC profile and fill its data later with * some algorithm (memcpy or for-loop, for example). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_iccp_for_data(size_t data_size, struct sail_iccp **iccp); /* * Destroys the specified ICC profile and all its internal allocated memory buffers. * Does nothing if the profile is NULL. */ SAIL_EXPORT void sail_destroy_iccp(struct sail_iccp *iccp); /* * Makes a deep copy of the specified ICC profile. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_iccp(const struct sail_iccp *source_iccp, struct sail_iccp **target_iccp); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/image.c000066400000000000000000000177231475535176100167430ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include "sail-common.h" sail_status_t sail_alloc_image(struct sail_image **image) { SAIL_CHECK_PTR(image); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_image), &ptr)); *image = ptr; (*image)->pixels = NULL; (*image)->width = 0; (*image)->height = 0; (*image)->bytes_per_line = 0; (*image)->resolution = NULL; (*image)->pixel_format = SAIL_PIXEL_FORMAT_UNKNOWN; (*image)->gamma = 1; (*image)->delay = -1; (*image)->palette = NULL; (*image)->meta_data_node = NULL; (*image)->iccp = NULL; (*image)->source_image = NULL; return SAIL_OK; } void sail_destroy_image(struct sail_image *image) { if (image == NULL) { return; } sail_free(image->pixels); sail_destroy_resolution(image->resolution); sail_destroy_palette(image->palette); sail_destroy_meta_data_node_chain(image->meta_data_node); sail_destroy_iccp(image->iccp); sail_destroy_source_image(image->source_image); sail_free(image); } sail_status_t sail_copy_image(const struct sail_image *source, struct sail_image **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); struct sail_image *image_local; SAIL_TRY(sail_copy_image_skeleton(source, &image_local)); /* Pixels. */ if (source->pixels != NULL) { const unsigned pixels_size = source->height * source->bytes_per_line; SAIL_TRY_OR_CLEANUP(sail_malloc(pixels_size, &image_local->pixels), /* cleanup */ sail_destroy_image(image_local)); memcpy(image_local->pixels, source->pixels, pixels_size); } /* Palette. */ if (source->palette != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_palette(source->palette, &image_local->palette), /* cleanup */ sail_destroy_image(image_local)); } *target = image_local; return SAIL_OK; } sail_status_t sail_copy_image_skeleton(const struct sail_image *source, struct sail_image **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); struct sail_image *image_local; SAIL_TRY(sail_alloc_image(&image_local)); image_local->width = source->width; image_local->height = source->height; image_local->bytes_per_line = source->bytes_per_line; if (source->resolution != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_resolution(source->resolution, &image_local->resolution), /* cleanup */ sail_destroy_image(image_local)); } image_local->pixel_format = source->pixel_format; image_local->gamma = source->gamma; image_local->delay = source->delay; SAIL_TRY_OR_CLEANUP(sail_copy_meta_data_node_chain(source->meta_data_node, &image_local->meta_data_node), /* cleanup */ sail_destroy_image(image_local)); if (source->iccp != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_iccp(source->iccp, &image_local->iccp), /* cleanup */ sail_destroy_image(image_local)); } if (source->source_image != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_source_image(source->source_image, &image_local->source_image), /* cleanup */ sail_destroy_image(image_local)); } *target = image_local; return SAIL_OK; } sail_status_t sail_check_image_skeleton_valid(const struct sail_image *image) { SAIL_CHECK_PTR(image); if (image->pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_PIXEL_FORMAT); } if (image->width == 0 || image->height == 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_INCORRECT_IMAGE_DIMENSIONS); } if (image->bytes_per_line == 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_INCORRECT_BYTES_PER_LINE); } return SAIL_OK; } sail_status_t sail_check_image_valid(const struct sail_image *image) { SAIL_CHECK_PTR(image); SAIL_TRY(sail_check_image_skeleton_valid(image)); if (sail_is_indexed(image->pixel_format)) { SAIL_CHECK_PTR(image->palette); } SAIL_CHECK_PTR(image->pixels); return SAIL_OK; } sail_status_t sail_mirror_vertically(struct sail_image *image) { SAIL_TRY(sail_mirror(image, SAIL_ORIENTATION_MIRRORED_VERTICALLY)); return SAIL_OK; } sail_status_t sail_mirror_horizontally(struct sail_image *image) { SAIL_TRY(sail_mirror(image, SAIL_ORIENTATION_MIRRORED_HORIZONTALLY)); return SAIL_OK; } sail_status_t sail_mirror(struct sail_image *image, enum SailOrientation orientation) { switch (orientation) { case SAIL_ORIENTATION_MIRRORED_VERTICALLY: { SAIL_TRY(sail_check_image_valid(image)); void *line; SAIL_TRY(sail_malloc(image->bytes_per_line, &line)); for (unsigned row1 = 0, row2 = image->height - 1; row1 < row2; row1++, row2--) { memcpy(line, sail_scan_line(image, row1), image->bytes_per_line); memcpy(sail_scan_line(image, row1), sail_scan_line(image, row2), image->bytes_per_line); memcpy(sail_scan_line(image, row2), line, image->bytes_per_line); } sail_free(line); break; } case SAIL_ORIENTATION_MIRRORED_HORIZONTALLY: { SAIL_TRY(sail_check_image_valid(image)); const unsigned bits_per_pixel = sail_bits_per_pixel(image->pixel_format); if (bits_per_pixel % 8 != 0) { SAIL_LOG_ERROR("Only byte-aligned pixels are supported for the horizontal mirroring"); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } const unsigned bytes_per_pixel = bits_per_pixel / 8; void *pixel; SAIL_TRY(sail_malloc(bytes_per_pixel, &pixel)); for (unsigned row = 0; row < image->height; row++) { unsigned char *scan = sail_scan_line(image, row); for (unsigned col1 = 0, col2 = (image->width - 1) * bytes_per_pixel; col1 < col2; col1 += bytes_per_pixel, col2 -= bytes_per_pixel) { memcpy(pixel, scan + col1, bytes_per_pixel); memcpy(scan + col1, scan + col2, bytes_per_pixel); memcpy(scan + col2, pixel, bytes_per_pixel); } } sail_free(pixel); break; } default: { SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } } return SAIL_OK; } void* sail_scan_line(const struct sail_image *image, unsigned row) { if (SAIL_UNLIKELY(image == NULL || image->pixels == NULL)) { return NULL; } return (uint8_t *)image->pixels + image->bytes_per_line * row; } sail-0.9.8/src/sail-common/image.h000066400000000000000000000201471475535176100167420ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IMAGE_H #define SAIL_IMAGE_H #include #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_iccp; struct sail_meta_data_node; struct sail_palette; struct sail_resolution; struct sail_source_image; /* * sail_image represents an image. Fields set by SAIL when loading images are marked with LOAD. * Fields that must be set by a caller when saving images are marked with SAVE. */ struct sail_image { /* * Image pixels. The channels are interleaved per pixel. The pixels are * organized row by row, left to right, top to bottom. * * LOAD: Set by SAIL to an allocated array of pixels. * SAVE: Must be set by a caller to an allocated array of pixels. */ void *pixels; /* * Image width. * * LOAD: Set by SAIL to a positive image width in pixels. * SAVE: Must be set by a caller to a positive image width in pixels. */ unsigned width; /* * Image height. * * LOAD: Set by SAIL to a positive image height in pixels. * SAVE: Must be set by a caller to a positive image height in pixels. */ unsigned height; /* * Bytes per line. * * LOAD: Set by SAIL to a positive length of a row of pixels in bytes. * SAVE: Must be set by a caller to a positive number of bytes per line. A caller could set * it to sail_bytes_per_line() if scan lines are not padded to a certain boundary. */ unsigned bytes_per_line; /* * Image resolution. * * LOAD: Set by SAIL to a valid resolution or to NULL if this information is not available. * SAVE: Must be set by a caller to a valid image resolution if necessary. */ struct sail_resolution *resolution; /* * Image pixel format. See SailPixelFormat. * * LOAD: Set by SAIL to a valid image pixel format. * SAVE: Must be set by a caller to a valid input image pixel format. Pixels in this format will be supplied * to the codec by a caller later. The list of supported input pixel formats by a certain codec * can be obtained from sail_save_features.pixel_formats. */ enum SailPixelFormat pixel_format; /* * Image gamma. * * LOAD: Set by SAIL to a valid gamma if it's available. 1 by default. * SAVE: Must be set by a caller to a valid gamma. Not all codecs support saving * gamma. */ double gamma; /* * Delay in milliseconds to display the image on the screen if the image is a frame * in an animation or -1 otherwise. * * LOAD: Set by SAIL to a non-negative number of milliseconds if the image is a frame * in an animation or to -1 otherwise. * For animations, it's guaranteed that all the frames have non-negative delays. * For multi-paged sequences, it's guaranteed that all the pages have delays equal to -1. * SAVE: Must be set by a caller to a non-negative number of milliseconds if the image is a frame * in an animation. */ int delay; /* * Palette if the image has a palette and the requested pixel format assumes having a palette. * Destroyed by sail_destroy_image(). * * LOAD: Set by SAIL to a valid palette if the image is indexed and the requested pixel format * assumes having a palette. NULL otherwise. * SAVE: Must be allocated and set by a caller to a valid palette if the image is indexed. */ struct sail_palette *palette; /* * Image meta data. Codecs guarantee that values are non-NULL. * * LOAD: Set by SAIL to a valid linked list with meta data (like JPEG comments) or to NULL. * SAVE: Must be allocated and set by a caller to a valid linked list with meta data * (like JPEG comments) if necessary. */ struct sail_meta_data_node *meta_data_node; /* * Embedded ICC profile. * * Note for animated/multi-paged images: only the first image in an animated/multi-paged * sequence might have an ICC profile. * * LOAD: Set by SAIL to a valid ICC profile or to NULL. * SAVE: Must be allocated and set by a caller to a valid ICC profile if necessary. */ struct sail_iccp *iccp; /* * Source image properties which are usually lost during decoding. * For example, one might want to know the source image pixel format. * * LOAD: Set by SAIL to valid source image properties of the original image. * SAVE: Ignored. */ struct sail_source_image *source_image; }; typedef struct sail_image sail_image_t; /* * Allocates a new image. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_image(struct sail_image **image); /* * Destroys the specified image and all its internal allocated memory buffers. The image MUST NOT be used anymore * after calling this function. Does nothing if the image is NULL. */ SAIL_EXPORT void sail_destroy_image(struct sail_image *image); /* * Makes a deep copy of the specified image. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_image(const struct sail_image *source, struct sail_image **target); /* * Makes a deep copy of the specified image without its pixels and palette. * * This function could be used in pixel conversion procedures when you need to preserve all the image info * except pixels. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_image_skeleton(const struct sail_image *source, struct sail_image **target); /* * Returns SAIL_OK if the given image has valid pixel_format, dimensions, and bytes per line. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_check_image_skeleton_valid(const struct sail_image *image); /* * Returns SAIL_OK if the given image has valid dimensions and pixels. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_check_image_valid(const struct sail_image *image); /* * Mirrors the image vertically. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_mirror_vertically(struct sail_image *image); /* * Mirrors the image horizontally. The image pixel size must be a multiple of 8, * e.g. 8, 16, 24 etc. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_mirror_horizontally(struct sail_image *image); /* * Mirrors the image horizontally or vertically. * * Only SAIL_ORIENTATION_MIRRORED_HORIZONTALLY and SAIL_ORIENTATION_MIRRORED_VERTICALLY * values are accepted. When mirroring horizontally, the image pixel size must be a multiple of 8, * e.g. 8, 16, 24 etc. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_mirror(struct sail_image *image, enum SailOrientation orientation); /* * Returns the scan line at the given row. * Return NULL if the image or its pixels is NULL. */ SAIL_EXPORT void* sail_scan_line(const struct sail_image *image, unsigned row); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/io_common.c000066400000000000000000000116441475535176100176340ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-common.h" sail_status_t sail_alloc_io(struct sail_io **io) { SAIL_CHECK_PTR(io); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_io), &ptr)); *io = ptr; (*io)->features = 0; (*io)->stream = NULL; (*io)->tolerant_read = NULL; (*io)->strict_read = NULL; (*io)->tolerant_write = NULL; (*io)->strict_write = NULL; (*io)->seek = NULL; (*io)->tell = NULL; (*io)->flush = NULL; (*io)->close = NULL; (*io)->eof = NULL; return SAIL_OK; } void sail_destroy_io(struct sail_io *io) { if (io == NULL) { return; } if (io->close != NULL && io->stream != NULL) { SAIL_TRY_OR_EXECUTE(io->close(io->stream), /* on error */ sail_print_errno("Failed to close the I/O stream: %s")); } sail_free(io); } sail_status_t sail_check_io_valid(const struct sail_io *io) { SAIL_CHECK_PTR(io); if (io->tolerant_read == NULL || io->strict_read == NULL || io->tolerant_write == NULL || io->strict_write == NULL || io->seek == NULL || io->tell == NULL || io->flush == NULL || io->close == NULL || io->eof == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_IO); } return SAIL_OK; } sail_status_t sail_io_size(struct sail_io *io, size_t *size) { SAIL_TRY(sail_check_io_valid(io)); SAIL_CHECK_PTR(size); /* Save the current position. */ size_t saved_position; SAIL_TRY(io->tell(io->stream, &saved_position)); size_t size_local; SAIL_TRY(io->seek(io->stream, 0, SEEK_END)); SAIL_TRY(io->tell(io->stream, &size_local)); SAIL_TRY(io->seek(io->stream, (long)saved_position, SEEK_SET)); *size = size_local - saved_position; return SAIL_OK; } sail_status_t sail_io_contents_into_data(struct sail_io *io, void *data) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(data); unsigned char buffer[4096]; unsigned char *data_ptr = data; size_t actually_read; sail_status_t status; /* Read stream. */ while ((status = io->tolerant_read(io->stream, buffer, sizeof(buffer), &actually_read)) == SAIL_OK) { memcpy(data_ptr, buffer, actually_read); data_ptr += actually_read; } if (status != SAIL_ERROR_EOF) { SAIL_LOG_ERROR("Failed to read from the I/O stream, error #%d", status); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_IO); } return SAIL_OK; } sail_status_t sail_alloc_data_from_io_contents(struct sail_io *io, void **data, size_t *data_size) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(data); SAIL_CHECK_PTR(data_size); size_t data_size_local; SAIL_TRY(sail_io_size(io, &data_size_local)); /* Read stream. */ void *data_local; SAIL_TRY(sail_malloc(data_size_local, &data_local)); SAIL_TRY_OR_CLEANUP(io->strict_read(io->stream, data_local, data_size_local), /* cleanup */ sail_free(data_local)); *data = data_local; *data_size = data_size_local; return SAIL_OK; } sail_status_t sail_read_string_from_io(struct sail_io *io, char *str, size_t str_size) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(str); if (str_size < 2) { SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } unsigned i = 0; do { SAIL_TRY(io->strict_read(io->stream, str + i++, 1)); } while(i < str_size - 1 && str[i - 1] != '\n'); /* Buffer is full and no trailing \n was seen. */ if (str[i - 1] != '\n') { SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_IO); } str[i] = '\0'; return SAIL_OK; } sail-0.9.8/src/sail-common/io_common.h000066400000000000000000000161401475535176100176350ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_COMMON_H #define SAIL_IO_COMMON_H #include #include /* size_t */ #include #include /* SEEK_CUR */ #include #include #ifdef __cplusplus extern "C" { #endif /* * Reads from the underlying I/O object into the specified buffer. In contrast to sail_io_strict_read_t, * doesn't fail when the actual number of bytes read is smaller than requested. * Assigns the number of bytes actually read to the 'read_size' argument. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_tolerant_read_t)(void *stream, void *buf, size_t size_to_read, size_t *read_size); /* * Reads from the underlying I/O object into the specified buffer. In contrast to sail_io_tolerant_read_t, * fails when the actual number of bytes read is smaller than requested. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_strict_read_t)(void *stream, void *buf, size_t size_to_read); /* * Writes the specified buffer to the underlying I/O object. In contrast to sail_io_strict_write_t, * doesn't fail when the actual number of bytes written is smaller than requested. * Assigns the number of bytes actually written to the 'written_size' argument. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_tolerant_write_t)(void *stream, const void *buf, size_t size_to_write, size_t *written_size); /* * Writes the specified buffer to the underlying I/O object. In contrast to sail_io_tolerant_write_t, * fails when the actual number of bytes written is smaller than requested. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_strict_write_t)(void *stream, const void *buf, size_t size_to_write); /* * Sets the I/O position in the underlying I/O object. * * Possible 'whence' values: SEEK_SET, SEEK_CUR, or SEEK_END declared in . * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_seek_t)(void *stream, long offset, int whence); /* * Assigns the current I/O position in the underlying I/O object. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_tell_t)(void *stream, size_t *offset); /* * Flushes buffers of the underlying I/O object. Has no effect if the underlying I/O object * is opened for reading. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_flush_t)(void *stream); /* * Closes the underlying I/O object. Using the I/O object after closing it * has undefined behavior. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_close_t)(void *stream); /* * Assigns true to the specified result if the underlying I/O object * reached the end-of-file indicator. * * Returns SAIL_OK on success. */ typedef sail_status_t (*sail_io_eof_t)(void *stream, bool *result); /* I/O features. */ enum SailIoFeature { /* * The I/O object is seekable. When this flag is off, the seek callback * must return SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_IO_FEATURE_SEEKABLE = 1 << 0, }; /* * sail_io represents an input/output abstraction. Use sail_alloc_io_read_file() and brothers to * allocate I/O objects. */ struct sail_io { /* * Or-ed I/O features. See SailIoFeature. */ int features; /* * I/O-specific data object. For example, a pointer to a FILE. */ void *stream; /* * Tolerant read callback. */ sail_io_tolerant_read_t tolerant_read; /* * Strict read callback. */ sail_io_strict_read_t strict_read; /* * Tolerant write callback. */ sail_io_tolerant_write_t tolerant_write; /* * Strict write callback. */ sail_io_strict_write_t strict_write; /* * Seek callback. */ sail_io_seek_t seek; /* * Tell callback. */ sail_io_tell_t tell; /* * Flush callback. */ sail_io_flush_t flush; /* * Close callback. */ sail_io_close_t close; /* * EOF callback. */ sail_io_eof_t eof; }; typedef struct sail_io sail_io_t; /* * Allocates a new I/O object. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_io(struct sail_io **io); /* * Closes and destroys the specified I/O object and all its internal allocated memory buffers. * The I/O object MUST NOT be used anymore after calling this function. * * Note for technical divers: sail_destroy_io() DOES NOT destroy the underlying I/O stream. * It must be destroyed (if necessary) in the sail_io.close callback. * * Does nothing if the I/O object is NULL. */ SAIL_EXPORT void sail_destroy_io(struct sail_io *io); /* * Returns SAIL_OK if the given I/O object has valid callbacks and a non-zero id. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_check_io_valid(const struct sail_io *io); /* * Retrieves the I/O stream size. The stream must be seekable. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_io_size(struct sail_io *io, size_t *size); /* * Reads the specified I/O stream until EOF into the memory buffer. Reads the stream * from the current position. The buffer must be large enough. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_io_contents_into_data(struct sail_io *io, void *data); /* * Allocates a memory buffer and reads the specified I/O stream until EOF into it. * Reads the stream from the current position. * * The size of the memory buffer is stored in 'data_size'. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_data_from_io_contents(struct sail_io *io, void **data, size_t *data_size); /* * Reads a string ended with '\n' from the I/O stream. Trailing new line characters * are not stripped. The string buffer size must be >= 2 to hold at least "\n". * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_read_string_from_io(struct sail_io *io, char *str, size_t str_size); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/linked_list_node.c000066400000000000000000000115361475535176100211630ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "sail-common.h" sail_status_t sail_private_alloc_linked_list_node(struct linked_list_node **node) { SAIL_CHECK_PTR(node); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct linked_list_node), &ptr)); *node = ptr; (*node)->value = NULL; (*node)->next = NULL; return SAIL_OK; } sail_status_t sail_private_alloc_linked_list_node_and_value(linked_list_value_allocator_t value_allocator, linked_list_value_deallocator_t value_deallocator, struct linked_list_node **node) { SAIL_CHECK_PTR(node); struct linked_list_node *node_local; SAIL_TRY(sail_private_alloc_linked_list_node(&node_local)); SAIL_TRY_OR_CLEANUP(value_allocator(&node_local->value), /* cleanup */ sail_private_destroy_linked_list_node(node_local, value_deallocator)); *node = node_local; return SAIL_OK; } void sail_private_destroy_linked_list_node(struct linked_list_node *node, linked_list_value_deallocator_t value_deallocator) { if (node == NULL) { return; } value_deallocator(node->value); sail_free(node); } sail_status_t sail_private_copy_linked_list_node(const struct linked_list_node *source, struct linked_list_node **target, linked_list_value_copier_t value_copier, linked_list_value_deallocator_t value_deallocator) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); struct linked_list_node *node_local; SAIL_TRY(sail_private_alloc_linked_list_node(&node_local)); void *ptr; SAIL_TRY_OR_CLEANUP(value_copier(source->value, &ptr), /* cleanup */ sail_private_destroy_linked_list_node(node_local, value_deallocator)); node_local->value = ptr; *target = node_local; return SAIL_OK; } void sail_private_destroy_linked_list_node_chain(struct linked_list_node *node, linked_list_value_deallocator_t value_deallocator) { while (node != NULL) { struct linked_list_node *node_next = node->next; sail_private_destroy_linked_list_node(node, value_deallocator); node = node_next; } } sail_status_t sail_private_copy_linked_list_node_chain(const struct linked_list_node *source, struct linked_list_node **target, linked_list_value_copier_t value_copier, linked_list_value_deallocator_t value_deallocator) { SAIL_CHECK_PTR(target); if (source == NULL) { *target = NULL; return SAIL_OK; } struct linked_list_node *node_local = NULL; struct linked_list_node *linked_list_node_current = NULL; while (source != NULL) { struct linked_list_node *linked_list_node = NULL; SAIL_TRY_OR_CLEANUP(sail_private_copy_linked_list_node(source, &linked_list_node, value_copier, value_deallocator), /* cleanup */ sail_private_destroy_linked_list_node_chain(node_local, value_deallocator)); if (node_local == NULL) { node_local = linked_list_node; linked_list_node_current = node_local; } else { linked_list_node_current->next = linked_list_node; linked_list_node_current = linked_list_node_current->next; } source = source->next; } *target = node_local; return SAIL_OK; } sail-0.9.8/src/sail-common/linked_list_node.h000066400000000000000000000110251475535176100211610ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_LINKED_LIST_NODE_H #define SAIL_LINKED_LIST_NODE_H #include #include #ifdef __cplusplus extern "C" { #endif /* * Represents a linked list node. It can be used together with the linked list API * to build type-specific linked lists which is achieved in C++ by using templates. * * Type-specific linked list nodes must have exactly two members: a pointer to a value * followed by a pointer to the next node. This way pointers to type-specific linked list * nodes can be casted to pointers to linked_list_node and the linked list API can be used. */ struct linked_list_node { /* * Node value. */ void *value; /* * Pointer to the next node or NULL. */ struct linked_list_node *next; }; typedef sail_status_t (*linked_list_value_allocator_t)(void **value); typedef sail_status_t (*linked_list_value_copier_t)(const void *source_value, void **target_value); typedef void (*linked_list_value_deallocator_t)(void *value); /* * Allocates a new linked list node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_private_alloc_linked_list_node(struct linked_list_node **node); /* * Allocates a new linked list node and the nested value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_private_alloc_linked_list_node_and_value(linked_list_value_allocator_t value_allocator, linked_list_value_deallocator_t value_deallocator, struct linked_list_node **node); /* * Destroys the specified linked list node. */ SAIL_EXPORT void sail_private_destroy_linked_list_node(struct linked_list_node *node, linked_list_value_deallocator_t value_deallocator); /* * Makes a deep copy of the specified linked list node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_private_copy_linked_list_node(const struct linked_list_node *source, struct linked_list_node **target, linked_list_value_copier_t value_copier, linked_list_value_deallocator_t value_deallocator); /* * Destroys the specified linked list node. * Repeats the destruction procedure recursively for the stored next pointer. */ SAIL_EXPORT void sail_private_destroy_linked_list_node_chain(struct linked_list_node *node, linked_list_value_deallocator_t value_deallocator); /* * Makes a deep copy of the specified linked list node chain. If the source chain is NULL, it assigns NULL * to the target chain and returns SAIL_OK. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_private_copy_linked_list_node_chain(const struct linked_list_node *source, struct linked_list_node **target, linked_list_value_copier_t value_copier, linked_list_value_deallocator_t value_deallocator); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/load_features.c000066400000000000000000000034551475535176100204730ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-common.h" sail_status_t sail_alloc_load_features(struct sail_load_features **load_features) { SAIL_CHECK_PTR(load_features); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_load_features), &ptr)); *load_features = ptr; (*load_features)->features = 0; (*load_features)->tuning = NULL; return SAIL_OK; } void sail_destroy_load_features(struct sail_load_features *load_features) { if (load_features == NULL) { return; } sail_destroy_string_node_chain(load_features->tuning); sail_free(load_features); } sail-0.9.8/src/sail-common/load_features.h000066400000000000000000000053741475535176100205020ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_LOAD_FEATURES_H #define SAIL_LOAD_FEATURES_H #include #include #ifdef __cplusplus extern "C" { #endif struct sail_string_node; /* * Load features. Use this structure to determine what a codec can actually load. */ struct sail_load_features { /* Supported or-ed features of loading operations. See SailCodecFeature. */ int features; /* * Codec-specific tuning options. For example, a hypothetical ABC image codec * can allow disabling filtering with setting the "abc-filtering" tuning option * to 0 in load options. Tuning options' names start with the codec name * to avoid confusing. * * The list of possible values for every tuning option is not current available * programmatically. Every codec must document them in the codec info. * * It's not guaranteed that tuning options and their values are backward * or forward compatible. */ struct sail_string_node *tuning; }; typedef struct sail_load_features sail_load_features_t; /* * Allocates load features. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_load_features(struct sail_load_features **load_features); /* * Destroys the specified load features object and all its internal allocated memory buffers. The load features * MUST NOT be used anymore after calling this function. Does nothing if the load features is NULL. */ SAIL_EXPORT void sail_destroy_load_features(struct sail_load_features *load_features); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/load_options.c000066400000000000000000000061621475535176100203460ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-common.h" sail_status_t sail_alloc_load_options(struct sail_load_options **load_options) { SAIL_CHECK_PTR(load_options); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_load_options), &ptr)); *load_options = ptr; (*load_options)->options = 0; (*load_options)->tuning = NULL; return SAIL_OK; } void sail_destroy_load_options(struct sail_load_options *load_options) { if (load_options == NULL) { return; } sail_destroy_hash_map(load_options->tuning); sail_free(load_options); } sail_status_t sail_alloc_load_options_from_features(const struct sail_load_features *load_features, struct sail_load_options **load_options) { SAIL_CHECK_PTR(load_options); struct sail_load_options *load_options_local; SAIL_TRY(sail_alloc_load_options(&load_options_local)); load_options_local->options = 0; if (load_features->features & SAIL_CODEC_FEATURE_META_DATA) { load_options_local->options |= SAIL_OPTION_META_DATA; } if (load_features->features & SAIL_CODEC_FEATURE_ICCP) { load_options_local->options |= SAIL_OPTION_ICCP; } if (load_features->features & SAIL_CODEC_FEATURE_SOURCE_IMAGE) { load_options_local->options |= SAIL_OPTION_SOURCE_IMAGE; } *load_options = load_options_local; return SAIL_OK; } sail_status_t sail_copy_load_options(const struct sail_load_options *source, struct sail_load_options **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); struct sail_load_options *target_local; SAIL_TRY(sail_alloc_load_options(&target_local)); target_local->options = source->options; if (source->tuning != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_hash_map(source->tuning, &target_local->tuning), /* cleanup */ sail_destroy_load_options(target_local)); } *target = target_local; return SAIL_OK; } sail-0.9.8/src/sail-common/load_options.h000066400000000000000000000063331475535176100203530ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_LOAD_OPTIONS_H #define SAIL_LOAD_OPTIONS_H #include #include #ifdef __cplusplus extern "C" { #endif struct sail_hash_map; struct sail_load_features; /* * Options to modify loading operations. */ struct sail_load_options { /* Or-ed manipulation options for loading operations. See SailOption. */ int options; /* * Codec-specific tuning options. For example, a hypothetical ABC image codec * can allow disabling filtering with setting the "abc-filtering" tuning option * to 0 in load options. Tuning options' names start with the codec name * to avoid confusing. * * Can be NULL. * * The list of possible values for every tuning option is not current available * programmatically. Every codec must document them in the codec info. * * It's not guaranteed that tuning options and their values are backward * or forward compatible. */ struct sail_hash_map *tuning; }; typedef struct sail_load_options sail_load_options_t; /* * Allocates load options. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_load_options(struct sail_load_options **load_options); /* * Destroys the specified load options object and all its internal allocated memory buffers. The load options * MUST NOT be used anymore after calling this function. Does nothing if the load options is NULL. */ SAIL_EXPORT void sail_destroy_load_options(struct sail_load_options *load_options); /* * Allocates and builds default load options from the load features. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_load_options_from_features(const struct sail_load_features *load_features, struct sail_load_options **load_options); /* * Makes a deep copy of the specified load options object. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_load_options(const struct sail_load_options *source, struct sail_load_options **target); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/log.c000066400000000000000000000147171475535176100164420ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifdef SAIL_COLORED_OUTPUT #ifdef SAIL_WIN32 #include #include #include #define SAIL_ISATTY _isatty #define SAIL_FILENO _fileno #else #include #define SAIL_ISATTY isatty #define SAIL_FILENO fileno #endif #endif #include #include #include #include #include "sail-common.h" /* ANSI terminal color escapes. */ #define SAIL_COLOR_RED "\033[0;31m" #define SAIL_COLOR_BOLD_RED "\033[1;31m" #define SAIL_COLOR_GREEN "\033[0;32m" #define SAIL_COLOR_BOLD_GREEN "\033[1;32m" #define SAIL_COLOR_YELLOW "\033[0;33m" #define SAIL_COLOR_BOLD_YELLOW "\033[1;33m" #define SAIL_COLOR_BLUE "\033[0;34m" #define SAIL_COLOR_BOLD_BLUE "\033[1;34m" #define SAIL_COLOR_MAGENTA "\033[0;35m" #define SAIL_COLOR_BOLD_MAGENTA "\033[1;35m" #define SAIL_COLOR_CYAN "\033[0;36m" #define SAIL_COLOR_BOLD_CYAN "\033[1;36m" #define SAIL_COLOR_WHITE "\033[0;37m" #define SAIL_COLOR_BOLD_WHITE "\033[1;37m" #define SAIL_COLOR_RESET "\033[0m" #define SAIL_LOG_FPTR stderr #define SAIL_LOG_STD_HANDLE STD_ERROR_HANDLE /* for Windows */ static enum SailLogLevel sail_max_log_level = SAIL_LOG_LEVEL_DEBUG; static sail_logger sail_external_logger = NULL; static bool check_ansi_colors_supported(void) { static SAIL_THREAD_LOCAL bool ansi_colors_supported_called = false; static SAIL_THREAD_LOCAL bool ansi_colors_supported = false; if (ansi_colors_supported_called) { return ansi_colors_supported; } ansi_colors_supported_called = true; #ifdef SAIL_COLORED_OUTPUT bool is_atty = (SAIL_ISATTY(SAIL_FILENO(SAIL_LOG_FPTR)) != 0); if (is_atty) { /* * This requires the application to target Windows 8.1 or later. Otherwise it always returns false. * * See https://docs.microsoft.com/ru-ru/windows/win32/sysinfo/targeting-your-application-at-windows-8-1 */ #ifdef SAIL_WIN32 /* MinGW 8.1 in particular doesn't define this flag. */ #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING #define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 #endif if (IsWindows10OrGreater()) { HANDLE stderrHandle = GetStdHandle(SAIL_LOG_STD_HANDLE); DWORD consoleMode; if (GetConsoleMode(stderrHandle, &consoleMode)) { consoleMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; if (SetConsoleMode(stderrHandle, consoleMode)) { ansi_colors_supported = true; } } } #else ansi_colors_supported = true; #endif } #endif return ansi_colors_supported; } void sail_log(enum SailLogLevel level, const char *file, int line, const char *format, ...) { /* Filter out. */ if (level > sail_max_log_level) { return; } if (sail_external_logger != NULL) { va_list args; va_start(args, format); sail_external_logger(level, file, line, format, args); va_end(args); return; } const char *level_string = NULL; switch (level) { /* Something weird. */ case SAIL_LOG_LEVEL_SILENCE: break; /* Normal log levels. */ case SAIL_LOG_LEVEL_ERROR: level_string = "E"; break; case SAIL_LOG_LEVEL_WARNING: level_string = "W"; break; case SAIL_LOG_LEVEL_INFO: level_string = "I"; break; case SAIL_LOG_LEVEL_MESSAGE: level_string = "M"; break; case SAIL_LOG_LEVEL_DEBUG: level_string = "D"; break; case SAIL_LOG_LEVEL_TRACE: level_string = "T"; break; } const bool ansi_colors_supported = check_ansi_colors_supported(); if (ansi_colors_supported) { switch (level) { case SAIL_LOG_LEVEL_SILENCE: break; case SAIL_LOG_LEVEL_ERROR: fprintf(SAIL_LOG_FPTR, "%s", SAIL_COLOR_BOLD_RED); break; case SAIL_LOG_LEVEL_WARNING: fprintf(SAIL_LOG_FPTR, "%s", SAIL_COLOR_BOLD_YELLOW); break; case SAIL_LOG_LEVEL_INFO: fprintf(SAIL_LOG_FPTR, "%s", SAIL_COLOR_BOLD_CYAN); break; case SAIL_LOG_LEVEL_MESSAGE: break; case SAIL_LOG_LEVEL_DEBUG: fprintf(SAIL_LOG_FPTR, "%s", SAIL_COLOR_BOLD_BLUE); break; case SAIL_LOG_LEVEL_TRACE: fprintf(SAIL_LOG_FPTR, "%s", SAIL_COLOR_BOLD_WHITE); break; } } /* Print log level. */ va_list args; va_start(args, format); fprintf(SAIL_LOG_FPTR, "SAIL: [%s] ", level_string); /* Print file and line. */ #ifdef SAIL_WIN32 const char *name = strrchr(file, '\\'); #else const char *name = strrchr(file, '/'); #endif fprintf(SAIL_LOG_FPTR, "[%s:%d] ", name == NULL ? file : name+1, line); /* Print the rest of arguments. */ vfprintf(SAIL_LOG_FPTR, format, args); if (ansi_colors_supported) { fprintf(SAIL_LOG_FPTR, "%s", SAIL_COLOR_RESET); } fprintf(SAIL_LOG_FPTR, "\n"); va_end(args); } void sail_set_log_barrier(enum SailLogLevel max_level) { sail_max_log_level = max_level; } void sail_set_logger(sail_logger logger) { sail_external_logger = logger; } sail-0.9.8/src/sail-common/log.h000066400000000000000000000063651475535176100164470ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_LOG_H #define SAIL_LOG_H #include #include #ifdef __cplusplus extern "C" { #endif enum SailLogLevel { /* Special log level for setting as a barrier to silent all messages. */ SAIL_LOG_LEVEL_SILENCE, /* Normal log levels. */ SAIL_LOG_LEVEL_ERROR, SAIL_LOG_LEVEL_WARNING, SAIL_LOG_LEVEL_INFO, SAIL_LOG_LEVEL_MESSAGE, SAIL_LOG_LEVEL_DEBUG, SAIL_LOG_LEVEL_TRACE, }; typedef void (*sail_logger)(enum SailLogLevel level, const char *file, int line, const char *format, va_list args); SAIL_EXPORT void sail_log(enum SailLogLevel level, const char *file, int line, const char *format, ...); /* * Sets a maximum log level barrier. Only messages of the specified log level or lower will be displayed. * * This function is not thread-safe. It's recommended to call it in the main thread * before initializing SAIL. */ SAIL_EXPORT void sail_set_log_barrier(enum SailLogLevel max_level); /* * Sets an external logger to pass all filtered log messages into. * * This function is not thread-safe. It's recommended to call it in the main thread * before initializing SAIL. */ SAIL_EXPORT void sail_set_logger(sail_logger logger); /* * Log an error message. */ #define SAIL_LOG_ERROR(...) sail_log(SAIL_LOG_LEVEL_ERROR, __FILE__, __LINE__, __VA_ARGS__) /* * Log a warning message. */ #define SAIL_LOG_WARNING(...) sail_log(SAIL_LOG_LEVEL_WARNING, __FILE__, __LINE__, __VA_ARGS__) /* * Log an important information message. */ #define SAIL_LOG_INFO(...) sail_log(SAIL_LOG_LEVEL_INFO, __FILE__, __LINE__, __VA_ARGS__) /* * Log a regular message. */ #define SAIL_LOG_MESSAGE(...) sail_log(SAIL_LOG_LEVEL_MESSAGE, __FILE__, __LINE__, __VA_ARGS__) /* * Log a debug message. */ #define SAIL_LOG_DEBUG(...) sail_log(SAIL_LOG_LEVEL_DEBUG, __FILE__, __LINE__, __VA_ARGS__) /* * Log a verbose trace message which is usually interesting only for developers. */ #define SAIL_LOG_TRACE(...) sail_log(SAIL_LOG_LEVEL_TRACE, __FILE__, __LINE__, __VA_ARGS__) /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/memory.c000066400000000000000000000043731475535176100171660ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "sail-common.h" sail_status_t sail_malloc(size_t size, void **ptr) { SAIL_CHECK_PTR(ptr); void *ptr_local = malloc(size); if (ptr_local == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_MEMORY_ALLOCATION); } *ptr = ptr_local; return SAIL_OK; } void* sail_malloc_std_signature(size_t size) { void *ptr; SAIL_TRY_OR_EXECUTE(sail_malloc(size, &ptr), /* on error */ return NULL); return ptr; } sail_status_t sail_realloc(size_t size, void **ptr) { SAIL_CHECK_PTR(ptr); void *ptr_local = realloc(*ptr, size); if (ptr_local == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_MEMORY_ALLOCATION); } *ptr = ptr_local; return SAIL_OK; } sail_status_t sail_calloc(size_t nmemb, size_t size, void **ptr) { SAIL_CHECK_PTR(ptr); void *ptr_local = calloc(nmemb, size); if (ptr_local == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_MEMORY_ALLOCATION); } *ptr = ptr_local; return SAIL_OK; } void sail_free(void *ptr) { free(ptr); } sail-0.9.8/src/sail-common/memory.h000066400000000000000000000043751475535176100171750ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_MEMORY_H #define SAIL_MEMORY_H #include /* size_t */ #include #include #ifdef __cplusplus extern "C" { #endif /* * Interface to malloc(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_malloc(size_t size, void **ptr); /* * Calls sail_malloc() and returns the allocated pointer or NULL in case of error. * One can pass sail_malloc_std_signature() to memory management functions in third-party * imaging libraries to force them to use sail_malloc(). * * Returns SAIL_OK on success. */ SAIL_EXPORT void* sail_malloc_std_signature(size_t size); /* * Interface to realloc(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_realloc(size_t size, void **ptr); /* * Interface to calloc(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_calloc(size_t nmemb, size_t size, void **ptr); /* * Interface to free(). * * Returns SAIL_OK on success. */ SAIL_EXPORT void sail_free(void *ptr); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/meta_data.c000066400000000000000000000103061475535176100175660ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "sail-common.h" sail_status_t sail_alloc_meta_data(struct sail_meta_data **meta_data) { SAIL_CHECK_PTR(meta_data); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_meta_data), &ptr)); *meta_data = ptr; (*meta_data)->key = SAIL_META_DATA_UNKNOWN; (*meta_data)->key_unknown = NULL; (*meta_data)->value = NULL; return SAIL_OK; } sail_status_t sail_alloc_meta_data_from_known_key(enum SailMetaData key, struct sail_meta_data **meta_data) { SAIL_TRY(sail_alloc_meta_data(meta_data)); (*meta_data)->key = key; return SAIL_OK; } sail_status_t sail_alloc_meta_data_from_unknown_key(const char *key_unknown, struct sail_meta_data **meta_data) { struct sail_meta_data *meta_data_local; SAIL_TRY(sail_alloc_meta_data(&meta_data_local)); SAIL_TRY_OR_CLEANUP(sail_strdup(key_unknown, &meta_data_local->key_unknown), /* cleanup */ sail_destroy_meta_data(meta_data_local)); meta_data_local->key = SAIL_META_DATA_UNKNOWN; *meta_data = meta_data_local; return SAIL_OK; } sail_status_t sail_alloc_meta_data_and_value_from_known_key(enum SailMetaData key, struct sail_meta_data **meta_data) { struct sail_meta_data *meta_data_local; SAIL_TRY(sail_alloc_meta_data_from_known_key(key, &meta_data_local)); SAIL_TRY_OR_CLEANUP(sail_alloc_variant(&meta_data_local->value), /* cleanup */ sail_destroy_meta_data(meta_data_local)); *meta_data = meta_data_local; return SAIL_OK; } sail_status_t sail_alloc_meta_data_and_value_from_unknown_key(const char *key_unknown, struct sail_meta_data **meta_data) { struct sail_meta_data *meta_data_local; SAIL_TRY(sail_alloc_meta_data_from_unknown_key(key_unknown, &meta_data_local)); SAIL_TRY_OR_CLEANUP(sail_alloc_variant(&meta_data_local->value), /* cleanup */ sail_destroy_meta_data(meta_data_local)); *meta_data = meta_data_local; return SAIL_OK; } void sail_destroy_meta_data(struct sail_meta_data *meta_data) { if (meta_data == NULL) { return; } sail_free(meta_data->key_unknown); sail_destroy_variant(meta_data->value); sail_free(meta_data); } sail_status_t sail_copy_meta_data(const struct sail_meta_data *source, struct sail_meta_data **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); struct sail_meta_data *meta_data_local; SAIL_TRY(sail_alloc_meta_data(&meta_data_local)); meta_data_local->key = source->key; if (source->key_unknown != NULL) { SAIL_TRY_OR_CLEANUP(sail_strdup(source->key_unknown, &meta_data_local->key_unknown), /* cleanup */ sail_destroy_meta_data(meta_data_local)); } if (source->value != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_variant(source->value, &meta_data_local->value), /* cleanup */ sail_destroy_meta_data(meta_data_local)); } *target = meta_data_local; return SAIL_OK; } sail-0.9.8/src/sail-common/meta_data.h000066400000000000000000000115441475535176100176000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_META_DATA_H #define SAIL_META_DATA_H #include #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_variant; /* * Represents a meta data element like a JPEG comment or a binary EXIF profile. * * For example: * * { * key = SAIL_META_DATA_UNKNOWN, * key_unknown = "My Data", * value = { SAIL_VARIANT_TYPE_STRING, "Data" } * } * * { * key = SAIL_META_DATA_COMMENT, * key_unknown = NULL, * value = { SAIL_VARIANT_TYPE_STRING, "Holidays" } * } * * { * key = SAIL_META_DATA_EXIF, * key_unknown = NULL, * value = { SAIL_VARIANT_TYPE_DATA, } * } * * Not every image codec supports key-values. For example: * * - JPEG doesn't support keys. When you try to save an image with meta data, * only values are saved. * - TIFF supports only a subset of known meta data keys (Artist, Make, Model etc.). * It doesn't support saving unknown keys (SAIL_META_DATA_UNKNOWN). * - PNG supports both keys and values. * * When saving images, SAIL codecs don't necessarily use sail_meta_data_to_string() to convert * keys to string representations. PNG, for example, uses hardcoded "Raw profile type exif" key name * for EXIF tags. */ struct sail_meta_data { /* * If the key is SAIL_META_DATA_UNKNOWN, key_unknown contains an actual string key. * If the key is other than SAIL_META_DATA_UNKNOWN, key_unknown is NULL. */ enum SailMetaData key; char *key_unknown; /* * Meta data value. */ struct sail_variant *value; }; /* * Allocates new meta data. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_meta_data(struct sail_meta_data **meta_data); /* * Allocates new meta data from the specified known key. * The key must not be SAIL_META_DATA_UNKNOWN. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_meta_data_from_known_key(enum SailMetaData key, struct sail_meta_data **meta_data); /* * Allocates new meta data from the specified unknown key. Makes a deep copy of the key. * Sets the key to SAIL_META_DATA_UNKNOWN. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_meta_data_from_unknown_key(const char *key_unknown, struct sail_meta_data **meta_data); /* * Allocates new meta data from the specified known key and the nested value. * The key must not be SAIL_META_DATA_UNKNOWN. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_meta_data_and_value_from_known_key(enum SailMetaData key, struct sail_meta_data **meta_data); /* * Allocates new meta data from the specified unknown key and the nested value. * Makes a deep copy of the key. Sets the key to SAIL_META_DATA_UNKNOWN. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_meta_data_and_value_from_unknown_key(const char *key_unknown, struct sail_meta_data **meta_data); /* * Destroys the specified meta data. */ SAIL_EXPORT void sail_destroy_meta_data(struct sail_meta_data *meta_data); /* * Makes a deep copy of the specified meta data. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_meta_data(const struct sail_meta_data *source, struct sail_meta_data **target); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/meta_data_node.c000066400000000000000000000066041475535176100206010ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "sail-common.h" sail_status_t sail_alloc_meta_data_node(struct sail_meta_data_node **node) { SAIL_TRY(sail_private_alloc_linked_list_node((struct linked_list_node **)node)); return SAIL_OK; } sail_status_t sail_alloc_meta_data_node_and_value(struct sail_meta_data_node **node) { SAIL_TRY(sail_private_alloc_linked_list_node_and_value((linked_list_value_allocator_t)&sail_alloc_meta_data, (linked_list_value_deallocator_t)&sail_destroy_meta_data, (struct linked_list_node **)node)); return SAIL_OK; } void sail_destroy_meta_data_node(struct sail_meta_data_node *node) { sail_private_destroy_linked_list_node((struct linked_list_node *)node, (linked_list_value_deallocator_t)&sail_destroy_meta_data); } sail_status_t sail_copy_meta_data_node(const struct sail_meta_data_node *source, struct sail_meta_data_node **target) { SAIL_TRY(sail_private_copy_linked_list_node((const struct linked_list_node *)source, (struct linked_list_node **)target, (linked_list_value_copier_t)&sail_copy_meta_data, (linked_list_value_deallocator_t)&sail_destroy_meta_data)); return SAIL_OK; } void sail_destroy_meta_data_node_chain(struct sail_meta_data_node *node) { sail_private_destroy_linked_list_node_chain((struct linked_list_node *)node, (linked_list_value_deallocator_t)&sail_destroy_meta_data); } sail_status_t sail_copy_meta_data_node_chain(const struct sail_meta_data_node *source, struct sail_meta_data_node **target) { SAIL_TRY(sail_private_copy_linked_list_node_chain((const struct linked_list_node *)source, (struct linked_list_node **)target, (linked_list_value_copier_t)&sail_copy_meta_data, (linked_list_value_deallocator_t)&sail_destroy_meta_data)); return SAIL_OK; } sail-0.9.8/src/sail-common/meta_data_node.h000066400000000000000000000060571475535176100206100ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_META_DATA_NODE_H #define SAIL_META_DATA_NODE_H #include #include #ifdef __cplusplus extern "C" { #endif struct sail_meta_data; /* * Represents a meta data node. */ struct sail_meta_data_node { /* * Meta data value. */ struct sail_meta_data *meta_data; /* * Pointer to the next node or NULL. */ struct sail_meta_data_node *next; }; /* * Allocates a new meta data node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_meta_data_node(struct sail_meta_data_node **node); /* * Allocates a new meta data node and the nested value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_meta_data_node_and_value(struct sail_meta_data_node **node); /* * Destroys the specified meta data node. */ SAIL_EXPORT void sail_destroy_meta_data_node(struct sail_meta_data_node *node); /* * Makes a deep copy of the specified meta data node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_meta_data_node(const struct sail_meta_data_node *source, struct sail_meta_data_node **target); /* * Destroys the specified meta data node and all its internal allocated memory buffers. * Repeats the destruction procedure recursively for the stored next pointer. */ SAIL_EXPORT void sail_destroy_meta_data_node_chain(struct sail_meta_data_node *node); /* * Makes a deep copy of the specified meta data node chain. If the source chain is NULL, it assigns NULL * to the target chain and returns SAIL_OK. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_meta_data_node_chain(const struct sail_meta_data_node *source, struct sail_meta_data_node **target); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/palette.c000066400000000000000000000074131475535176100173120ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "sail-common.h" sail_status_t sail_alloc_palette(struct sail_palette **palette) { SAIL_CHECK_PTR(palette); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_palette), &ptr)); *palette = ptr; (*palette)->pixel_format = SAIL_PIXEL_FORMAT_UNKNOWN; (*palette)->data = NULL; (*palette)->color_count = 0; return SAIL_OK; } void sail_destroy_palette(struct sail_palette *palette) { if (palette == NULL) { return; } sail_free(palette->data); sail_free(palette); } sail_status_t sail_copy_palette(const struct sail_palette *source_palette, struct sail_palette **target_palette) { SAIL_CHECK_PTR(source_palette); SAIL_CHECK_PTR(target_palette); struct sail_palette *palette_local; SAIL_TRY(sail_alloc_palette(&palette_local)); const unsigned bits_per_pixel = sail_bits_per_pixel(source_palette->pixel_format); const unsigned palette_size = source_palette->color_count * ((bits_per_pixel + 7) / 8); SAIL_TRY_OR_CLEANUP(sail_malloc(palette_size, &palette_local->data), /* cleanup */ sail_destroy_palette(palette_local)); palette_local->pixel_format = source_palette->pixel_format; palette_local->color_count = source_palette->color_count; memcpy(palette_local->data, source_palette->data, palette_size); *target_palette = palette_local; return SAIL_OK; } sail_status_t sail_alloc_palette_for_data(enum SailPixelFormat pixel_format, unsigned color_count, struct sail_palette **palette) { SAIL_CHECK_PTR(palette); struct sail_palette *palette_local; SAIL_TRY(sail_alloc_palette(&palette_local)); palette_local->pixel_format = pixel_format; palette_local->color_count = color_count; const unsigned palette_size = sail_bytes_per_line(color_count, pixel_format); void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(palette_size, &ptr), /* cleanup */ sail_destroy_palette(palette_local)); palette_local->data = ptr; *palette = palette_local; return SAIL_OK; } sail_status_t sail_alloc_palette_from_data(enum SailPixelFormat pixel_format, const void *data, unsigned color_count, struct sail_palette **palette) { SAIL_CHECK_PTR(palette); struct sail_palette *palette_local; SAIL_TRY(sail_alloc_palette_for_data(pixel_format, color_count, &palette_local)); const unsigned palette_size = sail_bytes_per_line(color_count, pixel_format); memcpy(palette_local->data, data, palette_size); *palette = palette_local; return SAIL_OK; } sail-0.9.8/src/sail-common/palette.h000066400000000000000000000072271475535176100173220ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PALETTE_H #define SAIL_PALETTE_H #include #include #include #ifdef __cplusplus extern "C" { #endif /* * sail_palette represents an image palette used in indexed images. */ struct sail_palette { /* * Pixel format. * * LOAD: Set by SAIL to a valid palette pixel format if the image is indexed (palette is not NULL). * SAIL guarantees the palette pixel format is byte-aligned. * SAVE: Must be set by a caller to a valid palette pixel format if the image is indexed. */ enum SailPixelFormat pixel_format; /* * Pixel data. The channels are interleaved per pixel. The pixel data has no gaps, i.e.: * RGBRGB... * * LOAD: Set by SAIL to a valid pixel array if the image is indexed. * SAVE: Must be allocated and set by a caller to a valid pixel array if the image is indexed. */ void *data; /* * Number of colors in the palette. * * LOAD: Set by SAIL to a valid number of colors if the image is indexed or to 0. * SAVE: Must be set by a caller to a valid number of colors if the image is indexed. */ unsigned color_count; }; typedef struct sail_palette sail_palette_t; /* * Allocates a new palette. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_palette(struct sail_palette **palette); /* * Destroys the specified palette and all its internal allocated memory buffers. * Does nothing if the palette is NULL. */ SAIL_EXPORT void sail_destroy_palette(struct sail_palette *palette); /* * Makes a deep copy of the specified palette. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_palette(const struct sail_palette *source_palette, struct sail_palette **target_palette); /* * Allocates a new palette to be filled later with data. * * Use this function to allocate a palette and fill its data later with * some algorithm (memcpy or for-loop, for example). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_palette_for_data(enum SailPixelFormat pixel_format, unsigned color_count, struct sail_palette **palette); /* * Allocates a new palette and deep copies the specified data. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_palette_from_data(enum SailPixelFormat pixel_format, const void *data, unsigned color_count, struct sail_palette **palette); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/pixel.c000066400000000000000000000051611475535176100167730ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "sail-common.h" sail_status_t sail_read_pixel3_uint8(struct sail_io *io, struct sail_pixel3_uint8 *pixel) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(pixel); uint8_t a[3]; SAIL_TRY(io->strict_read(io->stream, a, sizeof(a))); pixel->component1 = a[0]; pixel->component2 = a[1]; pixel->component3 = a[2]; return SAIL_OK; } sail_status_t sail_read_pixel4_uint8(struct sail_io *io, struct sail_pixel4_uint8 *pixel) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(pixel); uint8_t a[4]; SAIL_TRY(io->strict_read(io->stream, a, sizeof(a))); pixel->component1 = a[0]; pixel->component2 = a[1]; pixel->component3 = a[2]; pixel->component4 = a[3]; return SAIL_OK; } sail_status_t sail_read_pixel3_uint16(struct sail_io *io, struct sail_pixel3_uint16 *pixel) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(pixel); uint16_t a[3]; SAIL_TRY(io->strict_read(io->stream, a, sizeof(a))); pixel->component1 = a[0]; pixel->component2 = a[1]; pixel->component3 = a[2]; return SAIL_OK; } sail_status_t sail_read_pixel4_uint16(struct sail_io *io, struct sail_pixel4_uint16 *pixel) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(pixel); uint16_t a[4]; SAIL_TRY(io->strict_read(io->stream, a, sizeof(a))); pixel->component1 = a[0]; pixel->component2 = a[1]; pixel->component3 = a[2]; pixel->component4 = a[3]; return SAIL_OK; } sail-0.9.8/src/sail-common/pixel.h000066400000000000000000000103301475535176100167720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_PIXEL_H #define SAIL_PIXEL_H #include #include #include #ifdef __cplusplus extern "C" { #endif /* * sail_pixel3_uint8 represents a pixel with 3 8-bit components. Typically, it's RGB. */ struct sail_pixel3_uint8 { uint8_t component1; uint8_t component2; uint8_t component3; }; typedef struct sail_pixel3_uint8 sail_rgb24_t; typedef struct sail_pixel3_uint8 sail_bgr24_t; typedef struct sail_pixel3_uint8 sail_ycbcr24_t; /* * sail_pixel4_uint8 represents a pixel with 4 8-bit components. Typically, it's RGBA. */ struct sail_pixel4_uint8 { uint8_t component1; uint8_t component2; uint8_t component3; uint8_t component4; }; typedef struct sail_pixel4_uint8 sail_rgbx32_t; typedef struct sail_pixel4_uint8 sail_bgrx32_t; typedef struct sail_pixel4_uint8 sail_xrgb32_t; typedef struct sail_pixel4_uint8 sail_xbgr32_t; typedef struct sail_pixel4_uint8 sail_rgba32_t; typedef struct sail_pixel4_uint8 sail_bgra32_t; typedef struct sail_pixel4_uint8 sail_argb32_t; typedef struct sail_pixel4_uint8 sail_abgr32_t; typedef struct sail_pixel4_uint8 sail_cmyk32_t; typedef struct sail_pixel4_uint8 sail_ycck32_t; /* * sail_pixel3_uint16 represents a pixel with 3 16-bit components. Typically, it's RGB. */ struct sail_pixel3_uint16 { uint16_t component1; uint16_t component2; uint16_t component3; }; typedef struct sail_pixel3_uint16 sail_rgb48_t; typedef struct sail_pixel3_uint16 sail_bgr48_t; /* * sail_pixel4_uint16 represents a pixel with 4 16-bit components. Typically, it's RGBA. */ struct sail_pixel4_uint16 { uint16_t component1; uint16_t component2; uint16_t component3; uint16_t component4; }; typedef struct sail_pixel4_uint16 sail_rgbx64_t; typedef struct sail_pixel4_uint16 sail_bgrx64_t; typedef struct sail_pixel4_uint16 sail_xrgb64_t; typedef struct sail_pixel4_uint16 sail_xbgr64_t; typedef struct sail_pixel4_uint16 sail_rgba64_t; typedef struct sail_pixel4_uint16 sail_bgra64_t; typedef struct sail_pixel4_uint16 sail_argb64_t; typedef struct sail_pixel4_uint16 sail_abgr64_t; typedef struct sail_pixel4_uint16 sail_cmyk64_t; /* * Reads a sail_pixel3_uint8 pixel byte by byte from the I/O stream. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_read_pixel3_uint8(struct sail_io *io, struct sail_pixel3_uint8 *pixel); /* * Reads a sail_pixel4_uint8 pixel byte by byte from the I/O stream. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_read_pixel4_uint8(struct sail_io *io, struct sail_pixel4_uint8 *pixel); /* * Reads a sail_pixel3_uint16 pixel byte by byte from the I/O stream. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_read_pixel3_uint16(struct sail_io *io, struct sail_pixel3_uint16 *pixel); /* * Reads a sail_pixel4_uint16 pixel byte by byte from the I/O stream. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_read_pixel4_uint16(struct sail_io *io, struct sail_pixel4_uint16 *pixel); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/pkgconfig/000077500000000000000000000000001475535176100174525ustar00rootroot00000000000000sail-0.9.8/src/sail-common/pkgconfig/sail-common.pc.in000066400000000000000000000004341475535176100226220ustar00rootroot00000000000000prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@ libdir=@SAIL_LIBDIR_FOR_PKG_CONFIG@ includedir=@SAIL_INCLUDEDIR_FOR_PKG_CONFIG@/sail Name: sail-common Description: SAIL common client library Version: @VERSION@ Libs: -L${libdir} -lsail-common Cflags: -I${includedir} sail-0.9.8/src/sail-common/resolution.c000066400000000000000000000044531475535176100200600ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-common.h" sail_status_t sail_alloc_resolution(struct sail_resolution **resolution) { SAIL_TRY(sail_alloc_resolution_from_data(SAIL_RESOLUTION_UNIT_UNKNOWN, 0, 0, resolution)); return SAIL_OK; } sail_status_t sail_alloc_resolution_from_data(enum SailResolutionUnit unit, double x, double y, struct sail_resolution **resolution) { SAIL_CHECK_PTR(resolution); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_resolution), &ptr)); *resolution = ptr; (*resolution)->unit = unit; (*resolution)->x = x; (*resolution)->y = y; return SAIL_OK; } void sail_destroy_resolution(struct sail_resolution *resolution) { if (resolution == NULL) { return; } sail_free(resolution); } sail_status_t sail_copy_resolution(struct sail_resolution *source, struct sail_resolution **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); SAIL_TRY(sail_alloc_resolution(target)); (*target)->unit = source->unit; (*target)->x = source->x; (*target)->y = source->y; return SAIL_OK; } sail-0.9.8/src/sail-common/resolution.h000066400000000000000000000044651475535176100200700ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_RESOLUTION_H #define SAIL_RESOLUTION_H #include #include #include #ifdef __cplusplus extern "C" { #endif /* * Image resolution unit and values. */ struct sail_resolution { enum SailResolutionUnit unit; double x; double y; }; /* * Allocates a new resolution. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_resolution(struct sail_resolution **resolution); /* * Allocates a new resolution and initializes its fields with the specified values. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_resolution_from_data(enum SailResolutionUnit unit, double x, double y, struct sail_resolution **resolution); /* * Destroys the specified resolution. */ SAIL_EXPORT void sail_destroy_resolution(struct sail_resolution *resolution); /* * Makes a deep copy of the specified resolution. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_resolution(struct sail_resolution *source, struct sail_resolution **target); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/sail-common.h000066400000000000000000000045271475535176100201020ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_COMMON_H #define SAIL_SAIL_COMMON_H /* Universal sail-common include. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef SAIL_BUILD #include #include #endif #endif sail-0.9.8/src/sail-common/save_features.c000066400000000000000000000044441475535176100205110ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-common.h" sail_status_t sail_alloc_save_features(struct sail_save_features **save_features) { SAIL_CHECK_PTR(save_features); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_save_features), &ptr)); *save_features = ptr; (*save_features)->pixel_formats = NULL; (*save_features)->pixel_formats_length = 0; (*save_features)->features = 0; (*save_features)->compressions = NULL; (*save_features)->compressions_length = 0; (*save_features)->default_compression = SAIL_COMPRESSION_UNKNOWN; (*save_features)->compression_level = NULL; (*save_features)->tuning = NULL; return SAIL_OK; } void sail_destroy_save_features(struct sail_save_features *save_features) { if (save_features == NULL) { return; } sail_free(save_features->pixel_formats); sail_free(save_features->compressions); sail_destroy_compression_level(save_features->compression_level); sail_destroy_string_node_chain(save_features->tuning); sail_free(save_features); } sail-0.9.8/src/sail-common/save_features.h000066400000000000000000000075301475535176100205150ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAVE_FEATURES_H #define SAIL_SAVE_FEATURES_H #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_string_node; /* * Save features. Use this structure to determine what a codec can actually save. */ struct sail_save_features { /* * A list of supported pixel formats that can be written by this codec. */ enum SailPixelFormat *pixel_formats; /* The length of pixel_formats. */ unsigned pixel_formats_length; /* Supported or-ed features of saving operations. See SailCodecFeature. */ int features; /* * A list of supported pixels compression types by this codec. If the list has more than * two entries, compression levels are ignored. * * For example: * * 1. The JPEG codec supports only one compression, JPEG. compression_level can be used * to select a compression level. * 2. The TIFF codec supports more than two compression types (PACKBITS, JPEG, etc.). * Compression levels are ignored. */ enum SailCompression *compressions; /* The length of compressions. */ unsigned compressions_length; /* Compression type to use by default. */ enum SailCompression default_compression; /* * Supported compression level range. If compression levels are not supported * by the codec, compression_level is NULL. */ struct sail_compression_level *compression_level; /* * Codec-specific tuning options. For example, a hypothetical ABC image codec * can allow disabling filtering with setting the "abc-filtering" tuning option * to 0 in load options. Tuning options' names start with the codec name * to avoid confusing. * * The list of possible values for every tuning option is not current available * programmatically. Every codec must document them in the codec info. * * It's not guaranteed that tuning options and their values are backward * or forward compatible. */ struct sail_string_node *tuning; }; typedef struct sail_save_features sail_save_features_t; /* * Allocates save features. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_save_features(struct sail_save_features **save_features); /* * Destroys the specified save features object and all its internal allocated memory buffers. * The save features MUST NOT be used after calling this function. It does nothing if the save features is NULL. */ SAIL_EXPORT void sail_destroy_save_features(struct sail_save_features *save_features); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/save_options.c000066400000000000000000000071401475535176100203620ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-common.h" sail_status_t sail_alloc_save_options(struct sail_save_options **save_options) { SAIL_CHECK_PTR(save_options); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_save_options), &ptr)); *save_options = ptr; (*save_options)->options = 0; (*save_options)->compression = SAIL_COMPRESSION_UNKNOWN; (*save_options)->compression_level = 0; (*save_options)->tuning = NULL; return SAIL_OK; } void sail_destroy_save_options(struct sail_save_options *save_options) { if (save_options == NULL) { return; } sail_free(save_options); } sail_status_t sail_alloc_save_options_from_features(const struct sail_save_features *save_features, struct sail_save_options **save_options) { struct sail_save_options *save_options_local; SAIL_TRY(sail_alloc_save_options(&save_options_local)); save_options_local->options = 0; if (save_features->features & SAIL_CODEC_FEATURE_META_DATA) { save_options_local->options |= SAIL_OPTION_META_DATA; } if (save_features->features & SAIL_CODEC_FEATURE_INTERLACED) { save_options_local->options |= SAIL_OPTION_INTERLACED; } if (save_features->features & SAIL_CODEC_FEATURE_ICCP) { save_options_local->options |= SAIL_OPTION_ICCP; } save_options_local->compression = save_features->default_compression; save_options_local->compression_level = save_features->compression_level == NULL ? 0 : save_features->compression_level->default_level; *save_options = save_options_local; return SAIL_OK; } sail_status_t sail_copy_save_options(const struct sail_save_options *source, struct sail_save_options **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); struct sail_save_options *target_local; SAIL_TRY(sail_alloc_save_options(&target_local)); target_local->options = source->options; target_local->compression = source->compression; target_local->compression_level = source->compression_level; if (source->tuning != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_hash_map(source->tuning, &target_local->tuning), /* cleanup */ sail_destroy_save_options(target_local)); } *target = target_local; return SAIL_OK; } sail-0.9.8/src/sail-common/save_options.h000066400000000000000000000070111475535176100203640ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAVE_OPTIONS_H #define SAIL_SAVE_OPTIONS_H #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_hash_map; struct sail_save_features; /* * Options to modify saving operations. */ struct sail_save_options { /* Or-ed manipulation options. See SailOption. */ int options; /* * Compression type. For example: SAIL_COMPRESSION_RLE. See SailCompression. * Use sail_save_features to determine what compression types or values are supported by a particular codec. * * If a codec supports more than two compression types, compression levels are ignored in this case. * * For example: * * 1. The JPEG codec supports only one compression, JPEG. save_features->compression_level can be used * to select a compression level. * 2. The TIFF codec supports more than two compression types (PACKBITS, JPEG, etc.). Compression levels * are ignored. */ enum SailCompression compression; /* * Requested compression level. Must be in the range specified in save_features.compression_level. */ double compression_level; /* Codec-specific tuning options. */ struct sail_hash_map *tuning; }; typedef struct sail_save_options sail_save_options_t; /* * Allocates save options. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_save_options(struct sail_save_options **save_options); /* * Destroys the specified save options object and all its internal allocated memory buffers. * The save options MUST NOT be used anymore after calling this function. It does nothing * if the save options is NULL. */ SAIL_EXPORT void sail_destroy_save_options(struct sail_save_options *save_options); /* * Allocates and builds default save options from the save features. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_save_options_from_features(const struct sail_save_features *save_features, struct sail_save_options **save_options); /* * Makes a deep copy of the specified save options object. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_save_options(const struct sail_save_options *source, struct sail_save_options **target); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/source_image.c000066400000000000000000000057241475535176100203210ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "sail-common.h" sail_status_t sail_alloc_source_image(struct sail_source_image **source_image) { SAIL_CHECK_PTR(source_image); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_source_image), &ptr)); *source_image = ptr; (*source_image)->pixel_format = SAIL_PIXEL_FORMAT_UNKNOWN; (*source_image)->chroma_subsampling = SAIL_CHROMA_SUBSAMPLING_UNKNOWN; (*source_image)->orientation = SAIL_ORIENTATION_NORMAL; (*source_image)->compression = SAIL_COMPRESSION_UNKNOWN; (*source_image)->interlaced = false; (*source_image)->special_properties = NULL; return SAIL_OK; } void sail_destroy_source_image(struct sail_source_image *source_image) { if (source_image == NULL) { return; } sail_destroy_hash_map(source_image->special_properties); sail_free(source_image); } sail_status_t sail_copy_source_image(const struct sail_source_image *source, struct sail_source_image **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); struct sail_source_image *target_local; SAIL_TRY(sail_alloc_source_image(&target_local)); target_local->pixel_format = source->pixel_format; target_local->chroma_subsampling = source->chroma_subsampling; target_local->orientation = source->orientation; target_local->compression = source->compression; target_local->interlaced = source->interlaced; if (source->special_properties != NULL) { SAIL_TRY_OR_CLEANUP(sail_copy_hash_map(source->special_properties, &target_local->special_properties), /* cleanup */ sail_destroy_source_image(target_local)); } *target = target_local; return SAIL_OK; } sail-0.9.8/src/sail-common/source_image.h000066400000000000000000000076701475535176100203300ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SOURCE_IMAGE_H #define SAIL_SOURCE_IMAGE_H #include #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_hash_map; /* * sail_source_image represents source image properties. The structure is used in loading * operations only to preserve the source image properties which are usually lost during decoding. * For example, one might want to know the source image pixel format. * It's ignored in saving operations. */ struct sail_source_image { /* * Source image pixel format. See SailPixelFormat. * * LOAD: Set by SAIL to a source image pixel format of the original image. * SAVE: Ignored. */ enum SailPixelFormat pixel_format; /* * Source image chroma subsampling. See SailChromaSubsampling. * * LOAD: Set by SAIL to a source image chroma subsampling of the original image. * SAVE: Ignored. */ enum SailChromaSubsampling chroma_subsampling; /* * Source image orientation. * * LOAD: Set by SAIL to the source image orientation. * SAVE: Ignored. */ enum SailOrientation orientation; /* * Source image compression type. See SailCompression. * * LOAD: Set by SAIL to a valid source image compression type. * SAVE: Ignored. */ enum SailCompression compression; /* * Source image interlacing. * * LOAD: Set by SAIL to true if the source image is interlaced. * SAVE: Ignored. */ bool interlaced; /* * Image format-specific properties that cannot be expressed * in a common way. For example, a cursor hot spot. * * Can be NULL. * * Special properties' names start with the codec name to avoid confusing. * For example, "cur-hotspot-x". * * LOAD: Set by SAIL to valid source image special properties. * SAVE: Ignored. */ struct sail_hash_map *special_properties; }; typedef struct sail_source_image sail_source_image_t; /* * Allocates a new source image. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_source_image(struct sail_source_image **source_image); /* * Destroys the specified source image and all its internal allocated memory buffers. The source image MUST NOT be used * anymore after calling this function. Does nothing if the source image is NULL. */ SAIL_EXPORT void sail_destroy_source_image(struct sail_source_image *source_image); /* * Makes a deep copy of the specified source image. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_source_image(const struct sail_source_image *source, struct sail_source_image **target); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/status.h000066400000000000000000000120571475535176100172040ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_STATUS_H #define SAIL_STATUS_H #include /* * Common status type to return from all SAIL functions. */ enum SailStatus { /* * Success. */ SAIL_OK = 0, /* * Common errors. */ SAIL_ERROR_NULL_PTR = 1, SAIL_ERROR_MEMORY_ALLOCATION, SAIL_ERROR_OPEN_FILE, SAIL_ERROR_READ_FILE, SAIL_ERROR_SEEK_FILE, SAIL_ERROR_CLOSE_FILE, SAIL_ERROR_LIST_DIR, SAIL_ERROR_PARSE_FILE, SAIL_ERROR_INVALID_ARGUMENT, SAIL_ERROR_READ_IO, SAIL_ERROR_WRITE_IO, SAIL_ERROR_FLUSH_IO, SAIL_ERROR_SEEK_IO, SAIL_ERROR_TELL_IO, SAIL_ERROR_CLOSE_IO, SAIL_ERROR_EOF, SAIL_ERROR_NOT_IMPLEMENTED, SAIL_ERROR_UNSUPPORTED_SEEK_WHENCE, SAIL_ERROR_EMPTY_STRING, SAIL_ERROR_INVALID_VARIANT, /* * Encoding/decoding common errors. */ SAIL_ERROR_INVALID_IO = 100, /* * Encoding/decoding specific errors. */ SAIL_ERROR_INCORRECT_IMAGE_DIMENSIONS = 200, SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT, SAIL_ERROR_INVALID_PIXEL_FORMAT, SAIL_ERROR_UNSUPPORTED_COMPRESSION, SAIL_ERROR_UNSUPPORTED_META_DATA, SAIL_ERROR_UNDERLYING_CODEC, SAIL_ERROR_NO_MORE_FRAMES, SAIL_ERROR_INTERLACING_UNSUPPORTED, SAIL_ERROR_INCORRECT_BYTES_PER_LINE, SAIL_ERROR_UNSUPPORTED_IMAGE_PROPERTY, SAIL_ERROR_UNSUPPORTED_BIT_DEPTH, SAIL_ERROR_MISSING_PALETTE, SAIL_ERROR_UNSUPPORTED_FORMAT, SAIL_ERROR_BROKEN_IMAGE, /* * Codecs-specific errors. */ SAIL_ERROR_CODEC_LOAD = 300, SAIL_ERROR_CODEC_NOT_FOUND, SAIL_ERROR_UNSUPPORTED_CODEC_LAYOUT, SAIL_ERROR_CODEC_SYMBOL_RESOLVE, SAIL_ERROR_INCOMPLETE_CODEC_INFO, SAIL_ERROR_UNSUPPORTED_CODEC_FEATURE, SAIL_ERROR_UNSUPPORTED_CODEC_PRIORITY, /* * libsail errors. */ SAIL_ERROR_ENV_UPDATE = 400, SAIL_ERROR_CONTEXT_UNINITIALIZED, SAIL_ERROR_GET_DLL_PATH, SAIL_ERROR_CONFLICTING_OPERATION, }; typedef enum SailStatus sail_status_t; /* * Log failure and return. */ #define SAIL_LOG_AND_RETURN(code) \ do { \ SAIL_LOG_ERROR("%s", #code); \ return code; \ } while(0) /* * Helper macros. */ #define SAIL_CHECK_PTR(ptr) \ do { \ if (SAIL_UNLIKELY(ptr == NULL)) { \ SAIL_LOG_ERROR("'%s' argument is NULL", #ptr); \ SAIL_LOG_AND_RETURN(SAIL_ERROR_NULL_PTR); \ } \ } while(0) /* * Tries to execute the specified SAIL function. If it fails, executes the rest of the arguments which * can be separated by commas or by semicolons. * Use do/while to require ';' at the end of a SAIL_TRY_OR_EXECUTE() expression. */ #define SAIL_TRY_OR_EXECUTE(sail_func, ...) \ { \ const sail_status_t __sail_status = sail_func; \ \ if (SAIL_UNLIKELY(__sail_status != SAIL_OK)) { \ __VA_ARGS__; \ } \ } do{} while(0) /* * Tries to execute the specified SAIL function. If it fails, returns the error code. */ #define SAIL_TRY(sail_func) SAIL_TRY_OR_EXECUTE(sail_func, return __sail_status) /* * Tries to execute the specified SAIL function. If it fails, ignores the error and continues execution. */ #define SAIL_TRY_OR_SUPPRESS(sail_func) SAIL_TRY_OR_EXECUTE(sail_func, (void)0) /* * Tries to execute the specified SAIL function. If it fails, executes the rest of the arguments which * can be separated by commas or by semicolons (so called cleanup), and returns the error code. */ #define SAIL_TRY_OR_CLEANUP(sail_func, ...) SAIL_TRY_OR_EXECUTE(sail_func, __VA_ARGS__; return __sail_status) #endif sail-0.9.8/src/sail-common/string_node.c000066400000000000000000000075601475535176100201720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "sail-common.h" sail_status_t sail_alloc_string_node(struct sail_string_node **node) { SAIL_TRY(sail_private_alloc_linked_list_node((struct linked_list_node **)node)); return SAIL_OK; } void sail_destroy_string_node(struct sail_string_node *node) { sail_private_destroy_linked_list_node((struct linked_list_node *)node, (linked_list_value_deallocator_t)&sail_free); } sail_status_t sail_copy_string_node(const struct sail_string_node *source, struct sail_string_node **target) { SAIL_TRY(sail_private_copy_linked_list_node((const struct linked_list_node *)source, (struct linked_list_node **)target, (linked_list_value_copier_t)&sail_strdup, (linked_list_value_deallocator_t)&sail_free)); return SAIL_OK; } void sail_destroy_string_node_chain(struct sail_string_node *node) { sail_private_destroy_linked_list_node_chain((struct linked_list_node *)node, (linked_list_value_deallocator_t)&sail_free); } sail_status_t sail_copy_string_node_chain(const struct sail_string_node *source, struct sail_string_node **target) { SAIL_TRY(sail_private_copy_linked_list_node_chain((const struct linked_list_node *)source, (struct linked_list_node **)target, (linked_list_value_copier_t)&sail_strdup, (linked_list_value_deallocator_t)&sail_free)); return SAIL_OK; } sail_status_t sail_split_into_string_node_chain(const char *value, struct sail_string_node **target_string_node) { SAIL_CHECK_PTR(value); SAIL_CHECK_PTR(target_string_node); struct sail_string_node *result_string_node = NULL; struct sail_string_node **last_string_node = &result_string_node; const char *separator = ";"; while (*(value += strspn(value, separator)) != '\0') { size_t length = strcspn(value, separator); struct sail_string_node *string_node; SAIL_TRY(sail_alloc_string_node(&string_node)); SAIL_TRY_OR_CLEANUP(sail_strdup_length(value, length, &string_node->string), /* cleanup */ sail_destroy_string_node_chain(result_string_node), sail_destroy_string_node(string_node)); *last_string_node = string_node; last_string_node = &string_node->next; value += length; } *target_string_node = result_string_node; return SAIL_OK; } sail-0.9.8/src/sail-common/string_node.h000066400000000000000000000054761475535176100202030ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_STRING_NODE_H #define SAIL_STRING_NODE_H #include #include #ifdef __cplusplus extern "C" { #endif /* * Represents a string node. */ struct sail_string_node { /* * String value. */ char *string; /* * Pointer to the next node or NULL. */ struct sail_string_node *next; }; /* * Allocates a new string node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_string_node(struct sail_string_node **node); /* * Destroys the specified string node. */ SAIL_EXPORT void sail_destroy_string_node(struct sail_string_node *node); /* * Makes a deep copy of the specified string node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_string_node(const struct sail_string_node *source, struct sail_string_node **target); /* * Destroys the specified string node and all its internal allocated memory buffers. * Repeats the destruction procedure recursively for the stored next pointer. */ SAIL_EXPORT void sail_destroy_string_node_chain(struct sail_string_node *node); /* * Makes a deep copy of the specified string node chain. If the source chain is NULL, it assigns NULL * to the target chain and returns SAIL_OK. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_string_node_chain(const struct sail_string_node *source, struct sail_string_node **target); /* * Split a ';'-separated list of strings. */ SAIL_EXPORT sail_status_t sail_split_into_string_node_chain(const char *value, struct sail_string_node **target_string_node); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/utils.c000066400000000000000000000600351475535176100170130ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #ifdef SAIL_WIN32 #include #include /* _SH_DENYWR */ #include #else #include #include #include #endif #include "sail-common.h" /* * Private functions. */ static sail_status_t hex_string_into_data(const char *str, size_t str_length, void *data, size_t *data_saved) { unsigned char *data_local = data; *data_saved = 0; unsigned byte; int bytes_consumed; #ifdef _MSC_VER while (str_length > 1U && sscanf_s(str, "%02x%n", &byte, &bytes_consumed) == 1) { #else while (str_length > 1U && sscanf(str, "%02x%n", &byte, &bytes_consumed) == 1) { #endif str += bytes_consumed; str_length -= bytes_consumed; data_local[(*data_saved)++] = (unsigned char)byte; } return SAIL_OK; } /* * Public functions. */ sail_status_t sail_memdup(const void *input, size_t input_size, void **output) { if (input == NULL) { *output = NULL; return SAIL_OK; } if (input_size == 0) { SAIL_LOG_ERROR("Cannot duplicate 0 bytes"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } SAIL_TRY(sail_malloc(input_size, output)); memcpy(*output, input, input_size); return SAIL_OK; } sail_status_t sail_strdup(const char *input, char **output) { if (input == NULL) { *output = NULL; return SAIL_OK; } void *ptr; SAIL_TRY(sail_memdup(input, strlen(input) + 1, &ptr)); *output = ptr; return SAIL_OK; } sail_status_t sail_strdup_length(const char *input, size_t length, char **output) { if (input == NULL) { *output = NULL; return SAIL_OK; } if (length == 0) { SAIL_LOG_ERROR("Cannot duplicate 0 characters"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } void *ptr; SAIL_TRY(sail_malloc(length+1, &ptr)); *output = ptr; memcpy(*output, input, length); (*output)[length] = '\0'; return SAIL_OK; } sail_status_t sail_concat(char **output, int num, ...) { if (num < 1) { SAIL_LOG_ERROR("The second argument of %s() must be >= 1", __func__); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } SAIL_CHECK_PTR(output); va_list args; /* Calculate the necessary string length. */ va_start(args, num); const char *arg; size_t length = 1; /* for NULL */ int counter = num; while (counter--) { arg = va_arg(args, const char *); length += strlen(arg); } va_end(args); void *ptr; SAIL_TRY(sail_malloc(length, &ptr)); *output = ptr; (*output)[0] = '\0'; /* Concat strings */ counter = num; va_start(args, num); while (counter--) { arg = va_arg(args, const char *); #ifdef _MSC_VER strcat_s(*output, length, arg); #else strcat(*output, arg); #endif } va_end(args); return SAIL_OK; } void sail_to_lower(char *str) { if (str == NULL) { return; } size_t length = strlen(str); for (size_t i = 0; i < length; i++) { str[i] = (char)tolower(str[i]); } } sail_status_t sail_to_wchar(const char *input, wchar_t **output) { SAIL_CHECK_PTR(input); SAIL_CHECK_PTR(output); size_t length = strlen(input); void *ptr; SAIL_TRY(sail_malloc((length+1) * sizeof(wchar_t), &ptr)); wchar_t *output_local = ptr; #ifdef _MSC_VER size_t ret; if (mbstowcs_s(&ret, output_local, length+1, input, length) != 0) { sail_free(output_local); SAIL_LOG_ERROR("Multibyte conversion failed"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #else if (mbstowcs(output_local, input, length) == (size_t)-1) { sail_free(output_local); SAIL_LOG_ERROR("Multibyte conversion failed"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #endif *output = output_local; return SAIL_OK; } uint64_t sail_string_hash(const char *str) { if (str == NULL || *str == '\0') { return 0; } const unsigned char *ustr = (const unsigned char *)str; uint64_t hash = 5381; /* Magic number, never explained. */ unsigned c; while ((c = *ustr++) != 0) { hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ } return hash; } unsigned sail_bits_per_pixel(enum SailPixelFormat pixel_format) { switch (pixel_format) { case SAIL_PIXEL_FORMAT_UNKNOWN: return 0; case SAIL_PIXEL_FORMAT_BPP1: return 1; case SAIL_PIXEL_FORMAT_BPP2: return 2; case SAIL_PIXEL_FORMAT_BPP4: return 4; case SAIL_PIXEL_FORMAT_BPP8: return 8; case SAIL_PIXEL_FORMAT_BPP16: return 16; case SAIL_PIXEL_FORMAT_BPP24: return 24; case SAIL_PIXEL_FORMAT_BPP32: return 32; case SAIL_PIXEL_FORMAT_BPP48: return 48; case SAIL_PIXEL_FORMAT_BPP64: return 64; case SAIL_PIXEL_FORMAT_BPP72: return 72; case SAIL_PIXEL_FORMAT_BPP96: return 96; case SAIL_PIXEL_FORMAT_BPP128: return 128; case SAIL_PIXEL_FORMAT_BPP1_INDEXED: return 1; case SAIL_PIXEL_FORMAT_BPP2_INDEXED: return 2; case SAIL_PIXEL_FORMAT_BPP4_INDEXED: return 4; case SAIL_PIXEL_FORMAT_BPP8_INDEXED: return 8; case SAIL_PIXEL_FORMAT_BPP16_INDEXED: return 16; case SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE: return 1; case SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE: return 2; case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE: return 4; case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: return 8; case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: return 16; case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA: return 4; case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA: return 8; case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: return 16; case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: return 32; case SAIL_PIXEL_FORMAT_BPP16_RGB555: case SAIL_PIXEL_FORMAT_BPP16_BGR555: case SAIL_PIXEL_FORMAT_BPP16_RGB565: case SAIL_PIXEL_FORMAT_BPP16_BGR565: return 16; case SAIL_PIXEL_FORMAT_BPP24_RGB: case SAIL_PIXEL_FORMAT_BPP24_BGR: return 24; case SAIL_PIXEL_FORMAT_BPP48_RGB: case SAIL_PIXEL_FORMAT_BPP48_BGR: return 48; case SAIL_PIXEL_FORMAT_BPP16_RGBX: case SAIL_PIXEL_FORMAT_BPP16_BGRX: case SAIL_PIXEL_FORMAT_BPP16_XRGB: case SAIL_PIXEL_FORMAT_BPP16_XBGR: case SAIL_PIXEL_FORMAT_BPP16_RGBA: case SAIL_PIXEL_FORMAT_BPP16_BGRA: case SAIL_PIXEL_FORMAT_BPP16_ARGB: case SAIL_PIXEL_FORMAT_BPP16_ABGR: return 16; case SAIL_PIXEL_FORMAT_BPP32_RGBX: case SAIL_PIXEL_FORMAT_BPP32_BGRX: case SAIL_PIXEL_FORMAT_BPP32_XRGB: case SAIL_PIXEL_FORMAT_BPP32_XBGR: case SAIL_PIXEL_FORMAT_BPP32_RGBA: case SAIL_PIXEL_FORMAT_BPP32_BGRA: case SAIL_PIXEL_FORMAT_BPP32_ARGB: case SAIL_PIXEL_FORMAT_BPP32_ABGR: return 32; case SAIL_PIXEL_FORMAT_BPP64_RGBX: case SAIL_PIXEL_FORMAT_BPP64_BGRX: case SAIL_PIXEL_FORMAT_BPP64_XRGB: case SAIL_PIXEL_FORMAT_BPP64_XBGR: case SAIL_PIXEL_FORMAT_BPP64_RGBA: case SAIL_PIXEL_FORMAT_BPP64_BGRA: case SAIL_PIXEL_FORMAT_BPP64_ARGB: case SAIL_PIXEL_FORMAT_BPP64_ABGR: return 64; case SAIL_PIXEL_FORMAT_BPP32_CMYK: return 32; case SAIL_PIXEL_FORMAT_BPP64_CMYK: return 64; case SAIL_PIXEL_FORMAT_BPP40_CMYKA: return 40; case SAIL_PIXEL_FORMAT_BPP80_CMYKA: return 80; case SAIL_PIXEL_FORMAT_BPP24_YCBCR: return 24; case SAIL_PIXEL_FORMAT_BPP32_YCCK: return 32; case SAIL_PIXEL_FORMAT_BPP24_CIE_LAB: return 24; case SAIL_PIXEL_FORMAT_BPP40_CIE_LAB: return 40; case SAIL_PIXEL_FORMAT_BPP24_CIE_LUV: return 24; case SAIL_PIXEL_FORMAT_BPP40_CIE_LUV: return 40; case SAIL_PIXEL_FORMAT_BPP24_YUV: return 24; case SAIL_PIXEL_FORMAT_BPP30_YUV: return 30; case SAIL_PIXEL_FORMAT_BPP36_YUV: return 36; case SAIL_PIXEL_FORMAT_BPP48_YUV: return 48; case SAIL_PIXEL_FORMAT_BPP32_YUVA: return 32; case SAIL_PIXEL_FORMAT_BPP40_YUVA: return 40; case SAIL_PIXEL_FORMAT_BPP48_YUVA: return 48; case SAIL_PIXEL_FORMAT_BPP64_YUVA: return 64; } return 0; } enum SailPixelFormatComparisonPrivate { SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_LESS, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_LESS_EQUAL, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_EQUAL, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_GREATER_EQUAL, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_GREATER, }; static sail_status_t sail_compare_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2, enum SailPixelFormatComparisonPrivate op) { if (pixel_format1 == SAIL_PIXEL_FORMAT_UNKNOWN || pixel_format2 == SAIL_PIXEL_FORMAT_UNKNOWN) { return false; } const unsigned pixel_format_bits1 = sail_bits_per_pixel(pixel_format1); const unsigned pixel_format_bits2 = sail_bits_per_pixel(pixel_format2); switch(op) { case SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_LESS: return pixel_format_bits1 < pixel_format_bits2; break; case SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_LESS_EQUAL: return pixel_format_bits1 <= pixel_format_bits2; break; case SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_EQUAL: return pixel_format_bits1 == pixel_format_bits2; break; case SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_GREATER_EQUAL: return pixel_format_bits1 >= pixel_format_bits2; break; case SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_GREATER: return pixel_format_bits1 > pixel_format_bits2; break; } return false; } bool sail_less_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2) { return sail_compare_bits_per_pixel(pixel_format1, pixel_format2, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_LESS); } bool sail_less_equal_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2) { return sail_compare_bits_per_pixel(pixel_format1, pixel_format2, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_LESS_EQUAL); } bool sail_equal_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2) { return sail_compare_bits_per_pixel(pixel_format1, pixel_format2, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_EQUAL); } bool sail_greater_equal_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2) { return sail_compare_bits_per_pixel(pixel_format1, pixel_format2, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_GREATER_EQUAL); } bool sail_greater_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2) { return sail_compare_bits_per_pixel(pixel_format1, pixel_format2, SAIL_PIXEL_FORMAT_COMPARISON_PRIVATE_GREATER); } unsigned sail_bytes_per_line(unsigned width, enum SailPixelFormat pixel_format) { const unsigned bits_per_pixel = sail_bits_per_pixel(pixel_format); return (unsigned)(((double)width * bits_per_pixel + 7) / 8); } bool sail_is_indexed(enum SailPixelFormat pixel_format) { switch (pixel_format) { case SAIL_PIXEL_FORMAT_BPP1_INDEXED: case SAIL_PIXEL_FORMAT_BPP2_INDEXED: case SAIL_PIXEL_FORMAT_BPP4_INDEXED: case SAIL_PIXEL_FORMAT_BPP8_INDEXED: case SAIL_PIXEL_FORMAT_BPP16_INDEXED: { return true; } default: { return false; } } } bool sail_is_grayscale(enum SailPixelFormat pixel_format) { switch (pixel_format) { case SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: { return true; } default: { return false; } } } bool sail_is_rgb_family(enum SailPixelFormat pixel_format) { switch (pixel_format) { case SAIL_PIXEL_FORMAT_BPP16_RGB555: case SAIL_PIXEL_FORMAT_BPP16_BGR555: case SAIL_PIXEL_FORMAT_BPP16_RGB565: case SAIL_PIXEL_FORMAT_BPP16_BGR565: case SAIL_PIXEL_FORMAT_BPP24_RGB: case SAIL_PIXEL_FORMAT_BPP24_BGR: case SAIL_PIXEL_FORMAT_BPP48_RGB: case SAIL_PIXEL_FORMAT_BPP48_BGR: case SAIL_PIXEL_FORMAT_BPP32_RGBX: case SAIL_PIXEL_FORMAT_BPP32_BGRX: case SAIL_PIXEL_FORMAT_BPP32_XRGB: case SAIL_PIXEL_FORMAT_BPP32_XBGR: case SAIL_PIXEL_FORMAT_BPP32_RGBA: case SAIL_PIXEL_FORMAT_BPP32_BGRA: case SAIL_PIXEL_FORMAT_BPP32_ARGB: case SAIL_PIXEL_FORMAT_BPP32_ABGR: case SAIL_PIXEL_FORMAT_BPP64_RGBX: case SAIL_PIXEL_FORMAT_BPP64_BGRX: case SAIL_PIXEL_FORMAT_BPP64_XRGB: case SAIL_PIXEL_FORMAT_BPP64_XBGR: case SAIL_PIXEL_FORMAT_BPP64_RGBA: case SAIL_PIXEL_FORMAT_BPP64_BGRA: case SAIL_PIXEL_FORMAT_BPP64_ARGB: case SAIL_PIXEL_FORMAT_BPP64_ABGR: { return true; } default: { return false; } } } void sail_print_errno(const char *format) { if (strstr(format, "%s") == NULL) { SAIL_LOG_ERROR("Format argument must contain %%s"); return; } #ifdef _MSC_VER char buffer[80]; strerror_s(buffer, sizeof(buffer), errno); SAIL_LOG_ERROR(format, buffer); #else SAIL_LOG_ERROR(format, strerror(errno)); #endif } uint64_t sail_now(void) { #ifdef SAIL_WIN32 static SAIL_THREAD_LOCAL bool initialized = false; static SAIL_THREAD_LOCAL double frequency = 0; LARGE_INTEGER li; if (!initialized) { initialized = true; if (!QueryPerformanceFrequency(&li)) { SAIL_LOG_ERROR("Failed to get the current time. Error: 0x%X", GetLastError()); return 0; } frequency = (double)li.QuadPart / 1000; } if (!QueryPerformanceCounter(&li)) { SAIL_LOG_ERROR("Failed to get the current time. Error: 0x%X", GetLastError()); return 0; } return (uint64_t)((double)li.QuadPart / frequency); #else struct timeval tv; if (gettimeofday(&tv, NULL) != 0) { sail_print_errno("Failed to get the current time: %s"); return 0; } return (uint64_t)tv.tv_sec * 1000 + (uint64_t)tv.tv_usec / 1000; #endif } bool sail_path_exists(const char *path) { if (path == NULL) { SAIL_LOG_ERROR("Path is NULL"); return false; } #ifdef SAIL_WINDOWS_UTF8_PATHS wchar_t *wpath; SAIL_TRY_OR_EXECUTE(sail_multibyte_to_wchar(path, &wpath), /* on error */ return false); bool result = _waccess(wpath, 0) == 0; sail_free(wpath); return result; #else #ifdef _MSC_VER return _access(path, 0) == 0; #else return access(path, 0) == 0; #endif #endif } bool sail_is_dir(const char *path) { if (path == NULL) { SAIL_LOG_ERROR("Path is NULL"); return false; } #ifdef SAIL_WINDOWS_UTF8_PATHS wchar_t *wpath; SAIL_TRY_OR_EXECUTE(sail_multibyte_to_wchar(path, &wpath), /* on error */ return false); struct _stat attrs; if (_wstat(wpath, &attrs) != 0) { sail_free(wpath); return false; } sail_free(wpath); return (attrs.st_mode & _S_IFMT) == _S_IFDIR; #else #ifdef _MSC_VER struct _stat attrs; if (_stat(path, &attrs) != 0) { return false; } return (attrs.st_mode & _S_IFMT) == _S_IFDIR; #else struct stat attrs; if (stat(path, &attrs) != 0) { return false; } return S_ISDIR(attrs.st_mode); #endif #endif } bool sail_is_file(const char *path) { if (path == NULL) { SAIL_LOG_ERROR("Path is NULL"); return false; } #ifdef SAIL_WINDOWS_UTF8_PATHS wchar_t *wpath; SAIL_TRY_OR_EXECUTE(sail_multibyte_to_wchar(path, &wpath), /* on error */ return false); struct _stat attrs; if (_wstat(wpath, &attrs) != 0) { sail_free(wpath); return false; } sail_free(wpath); return (attrs.st_mode & _S_IFMT) == _S_IFREG; #else #ifdef _MSC_VER struct _stat attrs; if (_stat(path, &attrs) != 0) { return false; } return (attrs.st_mode & _S_IFMT) == _S_IFREG; #else struct stat attrs; if (stat(path, &attrs) != 0) { return false; } return S_ISREG(attrs.st_mode); #endif #endif } sail_status_t sail_file_size(const char *path, size_t *size) { SAIL_CHECK_PTR(path); bool is_file; #ifdef SAIL_WINDOWS_UTF8_PATHS wchar_t *wpath; SAIL_TRY_OR_EXECUTE(sail_multibyte_to_wchar(path, &wpath), /* on error */ return false); struct _stat attrs; if (_wstat(wpath, &attrs) != 0) { sail_free(wpath); return false; } sail_free(wpath); is_file = (attrs.st_mode & _S_IFMT) == _S_IFREG; #else #ifdef _MSC_VER struct _stat attrs; if (_stat(path, &attrs) != 0) { return false; } is_file = (attrs.st_mode & _S_IFMT) == _S_IFREG; #else struct stat attrs; if (stat(path, &attrs) != 0) { return false; } is_file = S_ISREG(attrs.st_mode); #endif #endif if (is_file) { *size = attrs.st_size; } else { SAIL_LOG_ERROR("'%s' is not a file", path); SAIL_LOG_AND_RETURN(SAIL_ERROR_OPEN_FILE); } return SAIL_OK; } sail_status_t sail_file_contents_into_data(const char *path, void *data) { SAIL_CHECK_PTR(path); SAIL_CHECK_PTR(data); size_t size; SAIL_TRY(sail_file_size(path, &size)); #ifdef SAIL_WINDOWS_UTF8_PATHS /* FIXME: We convert to UTF-8 twice, in sail_file_size() and here. */ wchar_t *wpath; SAIL_TRY(sail_multibyte_to_wchar(path, &wpath)); FILE *f = _wfsopen(wpath, L"rb", _SH_DENYWR); sail_free(wpath); #else #ifdef _MSC_VER FILE *f = _fsopen(path, "rb", _SH_DENYWR); #else FILE *f = fopen(path, "rb"); #endif #endif if (f == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_OPEN_FILE); } if (fread(data, 1, size, f) != size) { fclose(f); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } fclose(f); return SAIL_OK; } sail_status_t sail_alloc_data_from_file_contents(const char *path, void **data, size_t *data_size) { SAIL_CHECK_PTR(data); SAIL_CHECK_PTR(data_size); size_t size; SAIL_TRY(sail_file_size(path, &size)); void *data_local; SAIL_TRY(sail_malloc(size, &data_local)); SAIL_TRY_OR_CLEANUP(sail_file_contents_into_data(path, data_local), /* cleanup */ sail_free(data_local)); *data = data_local; *data_size = size; return SAIL_OK; } sail_status_t sail_hex_string_into_data(const char *str, void *data) { SAIL_CHECK_PTR(str); SAIL_CHECK_PTR(data); size_t data_saved; SAIL_TRY(hex_string_into_data(str, strlen(str), data, &data_saved)); return SAIL_OK; } sail_status_t sail_hex_string_to_data(const char *str, void **data, size_t *data_size) { SAIL_CHECK_PTR(str); SAIL_CHECK_PTR(data); SAIL_CHECK_PTR(data_size); const size_t str_length = strlen(str); void *ptr; SAIL_TRY(sail_malloc(str_length / 2, &ptr)); unsigned char *data_local = ptr; size_t data_saved; SAIL_TRY_OR_CLEANUP(hex_string_into_data(str, str_length, data_local, &data_saved), /* cleanup */ sail_free(data_local)); *data = data_local; *data_size = data_saved; return SAIL_OK; } sail_status_t sail_data_into_hex_string(const void *data, size_t data_size, char *str) { SAIL_CHECK_PTR(data); SAIL_CHECK_PTR(str); char *str_local_copy = str; const unsigned char *data_local = data; size_t data_local_index = 0; for (size_t i = 0; i < data_size; i++) { #ifdef _MSC_VER sprintf_s(str_local_copy, 3, "%02X", data_local[data_local_index++]); #else snprintf(str_local_copy, 3, "%02X", data_local[data_local_index++]); #endif str_local_copy += 2; } return SAIL_OK; } sail_status_t sail_data_to_hex_string(const void *data, size_t data_size, char **str) { SAIL_CHECK_PTR(data); SAIL_CHECK_PTR(str); void *ptr; SAIL_TRY(sail_malloc(data_size * 2 + 1, &ptr)); char *str_local = ptr; SAIL_TRY_OR_CLEANUP(sail_data_into_hex_string(data, data_size, str_local), /* cleanup */ sail_free(str_local)); *str = str_local; return SAIL_OK; } uint16_t sail_reverse_uint16(uint16_t v) { #if defined(SAIL_HAVE_BUILTIN_BSWAP16) return __builtin_bswap16(v); #elif defined(_MSC_VER) return _byteswap_ushort(v); #else const uint8_t *view = (uint8_t *)&v; return (view[0] << 8) | view[1]; #endif } uint32_t sail_reverse_uint32(uint32_t v) { #if defined(SAIL_HAVE_BUILTIN_BSWAP32) return __builtin_bswap32(v); #elif defined(_MSC_VER) return (uint32_t)_byteswap_ulong(v); #else const uint8_t *view = (uint8_t *)&v; return (view[0] << 24) | (view[1] << 16) | (view[2] << 8) | (view[3] << 0); #endif } uint64_t sail_reverse_uint64(uint64_t v) { #if defined(SAIL_HAVE_BUILTIN_BSWAP64) return __builtin_bswap64(v); #elif defined(_MSC_VER) return (uint64_t)_byteswap_uint64(v); #else const uint8_t *view = (uint8_t *)&v; return ((uint64_t)view[0] << 56) | ((uint64_t)view[1] << 48) | ((uint64_t)view[2] << 40) | ((uint64_t)view[3] << 32) | (view[4] << 24) | (view[5] << 16) | (view[6] << 8) | (view[7] << 0); #endif } #ifdef SAIL_WINDOWS_UTF8_PATHS sail_status_t sail_multibyte_to_wchar(const char *str, wchar_t **wstr) { SAIL_CHECK_PTR(str); SAIL_CHECK_PTR(wstr); /* Detect buffer size. */ int chars_needed = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0); if (chars_needed <= 0) { SAIL_LOG_ERROR("MultiByteToWideChar() failed. Error: 0x%X", GetLastError()); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } wchar_t *wstr_local; SAIL_TRY(sail_malloc(chars_needed * sizeof(wchar_t), &wstr_local)); /* Actually convert. */ int result = MultiByteToWideChar(CP_UTF8, 0, str, -1, wstr_local, chars_needed); if (result <= 0) { sail_free(wstr_local); SAIL_LOG_ERROR("MultiByteToWideChar() failed. Error: 0x%X", GetLastError()); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } *wstr = wstr_local; return SAIL_OK; } #endif sail-0.9.8/src/sail-common/utils.h000066400000000000000000000211211475535176100170110ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_UTILS_H #define SAIL_UTILS_H #include #include /* size_t */ #include #include #include #include #include struct sail_image; /* Min/max macros. */ #define SAIL_MIN(a, b) (((a) < (b)) ? (a) : (b)) #define SAIL_MAX(a, b) (((a) > (b)) ? (a) : (b)) #ifdef __cplusplus extern "C" { #endif /* * Duplicates the specified memory buffer and stores a new buffer in the specified output. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_memdup(const void *input, size_t input_size, void **output); /* * Duplicates the specified string and stores a new string in the specified output. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_strdup(const char *input, char **output); /* * Duplicates the specified number of bytes of the specified input string and stores * a new string in the specified output. Length must be greater than 0. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_strdup_length(const char *input, size_t length, char **output); /* * Concatenates 'num' number of strings together and puts the result into the specified output string. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_concat(char **output, int num, ...); /* * Converts the specified string to a lower case. */ SAIL_EXPORT void sail_to_lower(char *str); /* * Converts the specified char* string into a wchar_t* string. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_to_wchar(const char *input, wchar_t **output); /* * Computes a unique hash of the specified string. It utilizes the djb2 algorithm proposed by Dan Bernstein. * * Returns 0 if the string is NULL or empty. */ SAIL_EXPORT uint64_t sail_string_hash(const char *str); /* * Returns the number of bits per pixel of the specified pixel format. * For example, for SAIL_PIXEL_FORMAT_RGB 24 is returned. Returns 0 on unknown pixel format. */ SAIL_EXPORT unsigned sail_bits_per_pixel(enum SailPixelFormat pixel_format); /* * Returns true if the first pixel format occupies less bits than the second one. */ SAIL_EXPORT bool sail_less_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2); /* * Returns true if the first pixel format occupies less or the same number of bits than the second one. */ SAIL_EXPORT bool sail_less_equal_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2); /* * Returns true if both the pixel formats occupy the same number of bits. */ SAIL_EXPORT bool sail_equal_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2); /* * Returns true if the first pixel format occupies more or the same number of bits than the second one. */ SAIL_EXPORT bool sail_greater_equal_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2); /* * Returns true if the first pixel format occupies more bits than the second one. */ SAIL_EXPORT bool sail_greater_bits_per_pixel(enum SailPixelFormat pixel_format1, enum SailPixelFormat pixel_format2); /* * Returns the number of bytes per line needed to hold a scan line of the given width * without padding. * * For example: * sail_bytes_per_line(12, SAIL_PIXEL_FORMAT_BPP1) == * (12 pixels * 1 bits per pixel + 7) / 8 == * (12 * 1 + 7) / 8 == * (12 + 7 ) / 8 == * 19 / 8 == * 2 bytes per line */ SAIL_EXPORT unsigned sail_bytes_per_line(unsigned width, enum SailPixelFormat pixel_format); /* * Returns true if the given pixel format is indexed and assumes having a palette. */ SAIL_EXPORT bool sail_is_indexed(enum SailPixelFormat pixel_format); /* * Returns true if the given pixel format is grayscale, with or without alpha. */ SAIL_EXPORT bool sail_is_grayscale(enum SailPixelFormat pixel_format); /* * Returns true if the given pixel format is a kind of RGB, packed or not. E.g. RGBA, BGRA, RGB555 etc. */ SAIL_EXPORT bool sail_is_rgb_family(enum SailPixelFormat pixel_format); /* * Prints the recent errno value with SAIL_LOG_ERROR(). The specified format must include '%s'. */ SAIL_EXPORT void sail_print_errno(const char *format); /* * Returns the current number of milliseconds since Epoch or 0 on error. */ SAIL_EXPORT uint64_t sail_now(void); /* * Returns true if the specified file system path exists. */ SAIL_EXPORT bool sail_path_exists(const char *path); /* * Returns true if the specified file system path is a directory. */ SAIL_EXPORT bool sail_is_dir(const char *path); /* * Returns true if the specified file system path is a regular file. */ SAIL_EXPORT bool sail_is_file(const char *path); /* * Retrieves the file size. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_file_size(const char *path, size_t *size); /* * Reads the specified file into the memory buffer. The buffer must be large enough. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_file_contents_into_data(const char *path, void *data); /* * Allocates a memory buffer and reads the specified file into it. * The size of the memory buffer is stored in 'data_size'. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_data_from_file_contents(const char *path, void **data, size_t *data_size); /* * Decodes the specified HEX-encoded string into the specified memory buffer. * The memory buffer must be large enough. Every encoded byte must be in form of two HEX characters. * For example: 04 or 5A. Skips any white spaces. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_hex_string_into_data(const char *str, void *data); /* * Allocates a memory buffer and decodes the specified HEX-encoded string into it. * Every encoded byte must be in form of two HEX characters. For example: 04 or 5A. * Skips any white spaces. The size of the decoded block is stored in 'data_size'. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_hex_string_to_data(const char *str, void **data, size_t *data_size); /* * Encodes the specified memory buffer into the HEX-encoded string. The string must be large enough. * Every encoded byte will be in form of two HEX characters. For example: 04 or 5A. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_data_into_hex_string(const void *data, size_t data_size, char *str); /* * Allocates a string and HEX-encodes the specified memory buffer into it. * Every encoded byte will be in form of two HEX characters. For example: 04 or 5A. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_data_to_hex_string(const void *data, size_t data_size, char **str); /* * Reverses the input value byte order. * * Returns the reversed value. */ SAIL_EXPORT uint16_t sail_reverse_uint16(uint16_t v); /* * Reverses the input value byte order. * * Returns the reversed value. */ SAIL_EXPORT uint32_t sail_reverse_uint32(uint32_t v); /* * Reverses the input value byte order. * * Returns the reversed value. */ SAIL_EXPORT uint64_t sail_reverse_uint64(uint64_t v); /* * Converts a character string to a UTF-16 string. Available on Windows only. * * Returns SAIL_OK on success. */ #ifdef SAIL_WINDOWS_UTF8_PATHS SAIL_EXPORT sail_status_t sail_multibyte_to_wchar(const char *str, wchar_t **wstr); #endif /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/variant.c000066400000000000000000000302011475535176100173070ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "sail-common.h" /* * Private functions. */ static sail_status_t set_variant_value(struct sail_variant *variant, enum SailVariantType type, const void *value, const size_t size) { SAIL_CHECK_PTR(variant); void **ptr = &variant->value; SAIL_TRY(sail_realloc(size, ptr)); memcpy(variant->value, value, size); variant->type = type; variant->size = size; return SAIL_OK; } static sail_status_t alloc_variant(enum SailVariantType type, const void *value, const size_t size, struct sail_variant **variant) { SAIL_CHECK_PTR(variant); struct sail_variant *variant_local; SAIL_TRY(sail_alloc_variant(&variant_local)); SAIL_TRY_OR_CLEANUP(set_variant_value(variant_local, type, value, size), /* on error */ sail_destroy_variant(variant_local)); *variant = variant_local; return SAIL_OK; } /* * Public functions. */ sail_status_t sail_alloc_variant(struct sail_variant **variant) { SAIL_CHECK_PTR(variant); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_variant), &ptr)); *variant = ptr; (*variant)->type = SAIL_VARIANT_TYPE_INVALID; (*variant)->value = NULL; (*variant)->size = 0; return SAIL_OK; } void sail_destroy_variant(struct sail_variant *variant) { if (variant == NULL) { return; } sail_free(variant->value); sail_free(variant); } sail_status_t sail_set_variant_bool(struct sail_variant *variant, bool value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_BOOL, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_char(struct sail_variant *variant, char value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_CHAR, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_unsigned_char(struct sail_variant *variant, unsigned char value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_UNSIGNED_CHAR, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_short(struct sail_variant *variant, short value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_SHORT, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_unsigned_short(struct sail_variant *variant, unsigned short value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_UNSIGNED_SHORT, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_int(struct sail_variant *variant, int value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_INT, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_unsigned_int(struct sail_variant *variant, unsigned int value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_UNSIGNED_INT, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_long(struct sail_variant *variant, long value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_LONG, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_unsigned_long(struct sail_variant *variant, unsigned long value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_UNSIGNED_LONG, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_float(struct sail_variant *variant, float value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_FLOAT, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_double(struct sail_variant *variant, double value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_DOUBLE, &value, sizeof(value))); return SAIL_OK; } sail_status_t sail_set_variant_string(struct sail_variant *variant, const char *value) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_STRING, value, strlen(value) + 1)); return SAIL_OK; } sail_status_t sail_set_variant_shallow_string(struct sail_variant *variant, char *value) { SAIL_CHECK_PTR(variant); sail_free(variant->value); variant->type = SAIL_VARIANT_TYPE_STRING; variant->value = value; variant->size = strlen(value) + 1; return SAIL_OK; } sail_status_t sail_set_variant_substring(struct sail_variant *variant, const char *value, size_t size) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_STRING, value, size + 1)); char *str = variant->value; str[size] = '\0'; return SAIL_OK; } sail_status_t sail_set_variant_data(struct sail_variant *variant, const void *value, size_t size) { SAIL_TRY(set_variant_value(variant, SAIL_VARIANT_TYPE_DATA, value, size)); return SAIL_OK; } sail_status_t sail_set_variant_shallow_data(struct sail_variant *variant, void *value, size_t size) { SAIL_CHECK_PTR(variant); sail_free(variant->value); variant->type = SAIL_VARIANT_TYPE_DATA; variant->value = value; variant->size = size; return SAIL_OK; } bool sail_variant_to_bool(const struct sail_variant *variant) { return *(bool *)(variant->value); } char sail_variant_to_char(const struct sail_variant *variant) { return *(char *)(variant->value); } unsigned char sail_variant_to_unsigned_char(const struct sail_variant *variant) { return *(unsigned char *)(variant->value); } short sail_variant_to_short(const struct sail_variant *variant) { return *(short *)(variant->value); } unsigned short sail_variant_to_unsigned_short(const struct sail_variant *variant) { return *(unsigned short *)(variant->value); } int sail_variant_to_int(const struct sail_variant *variant) { return *(int *)(variant->value); } unsigned int sail_variant_to_unsigned_int(const struct sail_variant *variant) { return *(unsigned int *)(variant->value); } long sail_variant_to_long(const struct sail_variant *variant) { return *(long *)(variant->value); } unsigned long sail_variant_to_unsigned_long(const struct sail_variant *variant) { return *(unsigned long *)(variant->value); } float sail_variant_to_float(const struct sail_variant *variant) { return *(float *)(variant->value); } double sail_variant_to_double(const struct sail_variant *variant) { return *(double *)(variant->value); } char* sail_variant_to_string(const struct sail_variant *variant) { return (char *)(variant->value); } void* sail_variant_to_data(const struct sail_variant *variant) { return variant->value; } sail_status_t sail_check_variant_valid(const struct sail_variant *variant) { SAIL_CHECK_PTR(variant); if (variant->type == SAIL_VARIANT_TYPE_INVALID || variant->value == NULL || variant->size == 0) { SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_VARIANT); } return SAIL_OK; } sail_status_t sail_copy_variant(const struct sail_variant *source, struct sail_variant **target) { SAIL_CHECK_PTR(source); SAIL_CHECK_PTR(target); SAIL_TRY(alloc_variant(source->type, source->value, source->size, target)); return SAIL_OK; } bool sail_equal_variants(const struct sail_variant *variant1, const struct sail_variant *variant2) { SAIL_TRY_OR_EXECUTE(sail_check_variant_valid(variant1), /* on error */ return false); SAIL_TRY_OR_EXECUTE(sail_check_variant_valid(variant2), /* on error */ return false); if (variant1->type != variant2->type || variant1->size != variant2->size) { return false; } else { return memcmp(variant1->value, variant2->value, variant1->size) == 0; } } int sail_printf_variant(const struct sail_variant *variant) { return sail_fprintf_variant(variant, stdout); } int sail_fprintf_variant(const struct sail_variant *variant, FILE *f) { if (variant == NULL) { return -1; } switch (variant->type) { case SAIL_VARIANT_TYPE_BOOL: return fprintf(f, "%s", sail_variant_to_bool(variant) ? "true" : "false"); case SAIL_VARIANT_TYPE_CHAR: return fprintf(f, "%d", sail_variant_to_char(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_CHAR: return fprintf(f, "%u", sail_variant_to_unsigned_char(variant)); case SAIL_VARIANT_TYPE_SHORT: return fprintf(f, "%d", sail_variant_to_short(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_SHORT: return fprintf(f, "%u", sail_variant_to_unsigned_short(variant)); case SAIL_VARIANT_TYPE_INT: return fprintf(f, "%d", sail_variant_to_int(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_INT: return fprintf(f, "%u", sail_variant_to_unsigned_int(variant)); case SAIL_VARIANT_TYPE_LONG: return fprintf(f, "%ld", sail_variant_to_long(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_LONG: return fprintf(f, "%lu", sail_variant_to_unsigned_long(variant)); case SAIL_VARIANT_TYPE_FLOAT: return fprintf(f, "%f", sail_variant_to_float(variant)); case SAIL_VARIANT_TYPE_DOUBLE: return fprintf(f, "%f", sail_variant_to_double(variant)); case SAIL_VARIANT_TYPE_STRING: return fprintf(f, "%s", sail_variant_to_string(variant)); case SAIL_VARIANT_TYPE_DATA: return fprintf(f, "", (unsigned)variant->size); case SAIL_VARIANT_TYPE_INVALID: return fprintf(f, ""); } return 0; } int sail_snprintf_variant(const struct sail_variant *variant, char *str, size_t str_size) { if (variant == NULL) { return -1; } switch (variant->type) { case SAIL_VARIANT_TYPE_BOOL: return snprintf(str, str_size, "%s", sail_variant_to_bool(variant) ? "true" : "false"); case SAIL_VARIANT_TYPE_CHAR: return snprintf(str, str_size, "%d", sail_variant_to_char(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_CHAR: return snprintf(str, str_size, "%u", sail_variant_to_unsigned_char(variant)); case SAIL_VARIANT_TYPE_SHORT: return snprintf(str, str_size, "%d", sail_variant_to_short(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_SHORT: return snprintf(str, str_size, "%u", sail_variant_to_unsigned_short(variant)); case SAIL_VARIANT_TYPE_INT: return snprintf(str, str_size, "%d", sail_variant_to_int(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_INT: return snprintf(str, str_size, "%u", sail_variant_to_unsigned_int(variant)); case SAIL_VARIANT_TYPE_LONG: return snprintf(str, str_size, "%ld", sail_variant_to_long(variant)); case SAIL_VARIANT_TYPE_UNSIGNED_LONG: return snprintf(str, str_size, "%lu", sail_variant_to_unsigned_long(variant)); case SAIL_VARIANT_TYPE_FLOAT: return snprintf(str, str_size, "%f", sail_variant_to_float(variant)); case SAIL_VARIANT_TYPE_DOUBLE: return snprintf(str, str_size, "%f", sail_variant_to_double(variant)); case SAIL_VARIANT_TYPE_STRING: return snprintf(str, str_size, "%s", sail_variant_to_string(variant)); case SAIL_VARIANT_TYPE_DATA: return snprintf(str, str_size, "", (unsigned)variant->size); case SAIL_VARIANT_TYPE_INVALID: return snprintf(str, str_size, ""); } return 0; } sail-0.9.8/src/sail-common/variant.h000066400000000000000000000262011475535176100173210ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_VARIANT_H #define SAIL_VARIANT_H #include #include /* size_t */ #include /* FILE */ #include #include #include #ifdef __cplusplus extern "C" { #endif /* * Type of variant data. */ enum SailVariantType { SAIL_VARIANT_TYPE_BOOL, SAIL_VARIANT_TYPE_CHAR, SAIL_VARIANT_TYPE_UNSIGNED_CHAR, SAIL_VARIANT_TYPE_SHORT, SAIL_VARIANT_TYPE_UNSIGNED_SHORT, SAIL_VARIANT_TYPE_INT, SAIL_VARIANT_TYPE_UNSIGNED_INT, SAIL_VARIANT_TYPE_LONG, SAIL_VARIANT_TYPE_UNSIGNED_LONG, SAIL_VARIANT_TYPE_FLOAT, SAIL_VARIANT_TYPE_DOUBLE, SAIL_VARIANT_TYPE_STRING, SAIL_VARIANT_TYPE_DATA, SAIL_VARIANT_TYPE_INVALID, }; /* * Variant with limited possible data values. */ struct sail_variant { /* * Value type. */ enum SailVariantType type; /* * Pointer to the actual variant value. */ void *value; /* * The size of the allocated memory for the value. For strings, it's strlen() + 1. */ size_t size; }; /* * Allocates a new invalid variant without any value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_variant(struct sail_variant **variant); /* * Destroys the specified variant. */ SAIL_EXPORT void sail_destroy_variant(struct sail_variant *variant); /* * Sets the specified boolean value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_bool(struct sail_variant *variant, bool value); /* * Sets the specified char value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_char(struct sail_variant *variant, char value); /* * Sets the specified unsigned char value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_unsigned_char(struct sail_variant *variant, unsigned char value); /* * Sets the specified short value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_short(struct sail_variant *variant, short value); /* * Sets the specified unsigned short value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_unsigned_short(struct sail_variant *variant, unsigned short value); /* * Sets the specified int value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_int(struct sail_variant *variant, int value); /* * Sets the specified unsigned int value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_unsigned_int(struct sail_variant *variant, unsigned int value); /* * Sets the specified long value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_long(struct sail_variant *variant, long value); /* * Sets the specified unsigned long value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_unsigned_long(struct sail_variant *variant, unsigned long value); /* * Sets the specified float value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_float(struct sail_variant *variant, float value); /* * Sets the specified double value as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_double(struct sail_variant *variant, double value); /* * Sets a deep copy of the specified string as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_string(struct sail_variant *variant, const char *value); /* * Sets a shallow copy of the specified string as a new variant value. * Transfers the ownership of the string to the constructed variant. * Do not free the string pointer. It will be freed in sail_destroy_variant(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_shallow_string(struct sail_variant *variant, char *value); /* * Sets a deep copy of the specified substring as a new variant value. * * The size of the substring must not include a null character. Adds a null character to the end * of the constructed variant value, i.e. its final size is size + 1. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_substring(struct sail_variant *variant, const char *value, size_t size); /* * Sets a deep copy of the specified data buffer as a new variant value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_data(struct sail_variant *variant, const void *value, size_t size); /* * Sets a shallow copy of the specified data buffer as a new variant value. * Transfers the ownership of the data pointer to the variant. * Do not free the data pointer. It will be freed in sail_destroy_variant(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_set_variant_shallow_data(struct sail_variant *variant, void *value, size_t size); /* * Returns the variant value as a boolean. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to bool*, and then dereferences the resulting pointer. */ SAIL_EXPORT bool sail_variant_to_bool(const struct sail_variant *variant); /* * Returns the variant value as a char. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to char*, and then dereferences the resulting pointer. */ SAIL_EXPORT char sail_variant_to_char(const struct sail_variant *variant); /* * Returns the variant value as an unsigned char. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to unsigned char*, and then dereferences the resulting pointer. */ SAIL_EXPORT unsigned char sail_variant_to_unsigned_char(const struct sail_variant *variant); /* * Returns the variant value as a short. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to short*, and then dereferences the resulting pointer. */ SAIL_EXPORT short sail_variant_to_short(const struct sail_variant *variant); /* * Returns the variant value as an unsigned short. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to unsigned short*, and then dereferences the resulting pointer. */ SAIL_EXPORT unsigned short sail_variant_to_unsigned_short(const struct sail_variant *variant); /* * Returns the variant value as an integer. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to int*, and then dereferences the resulting pointer. */ SAIL_EXPORT int sail_variant_to_int(const struct sail_variant *variant); /* * Returns the variant value as an unsigned int. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to unsigned int*, and then dereferences the resulting pointer. */ SAIL_EXPORT unsigned int sail_variant_to_unsigned_int(const struct sail_variant *variant); /* * Returns the variant value as a long. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to long*, and then dereferences the resulting pointer. */ SAIL_EXPORT long sail_variant_to_long(const struct sail_variant *variant); /* * Returns the variant value as an unsigned long. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to unsigned long*, and then dereferences the resulting pointer. */ SAIL_EXPORT unsigned long sail_variant_to_unsigned_long(const struct sail_variant *variant); /* * Returns the variant value as a float. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to float*, and then dereferences the resulting pointer. */ SAIL_EXPORT float sail_variant_to_float(const struct sail_variant *variant); /* * Returns the variant value as a double. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to double*, and then dereferences the resulting pointer. */ SAIL_EXPORT double sail_variant_to_double(const struct sail_variant *variant); /* * Returns the variant value as a string. Behavior is undefined if the variant is invalid. * Effectively, it casts the value pointer to char*, and returns the resulting pointer. */ SAIL_EXPORT char* sail_variant_to_string(const struct sail_variant *variant); /* * Returns the variant value as a binary data. Behavior is undefined if the variant is invalid. */ SAIL_EXPORT void* sail_variant_to_data(const struct sail_variant *variant); /* * Checks the variant is not NULL and holds a valid value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_check_variant_valid(const struct sail_variant *variant); /* * Makes a deep copy of the specified variant. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_variant(const struct sail_variant *source, struct sail_variant **target); /* * Returns true if both the variants are valid and contain equal values. */ SAIL_EXPORT bool sail_equal_variants(const struct sail_variant *variant1, const struct sail_variant *variant2); /* * Calls printf() to print the value of the variant. If the variant is NULL, * doesn't print anything and returns -1. * * Returns the result of printf(). */ SAIL_EXPORT int sail_printf_variant(const struct sail_variant *variant); /* * Calls fprintf() to print the value of the variant into the file. * If the variant is NULL, doesn't print anything and returns -1. * * Returns the result of fprintf(). */ SAIL_EXPORT int sail_fprintf_variant(const struct sail_variant *variant, FILE *f); /* * Calls snprintf() to put the value of the variant into the string. * If the variant is NULL, doesn't print anything and returns -1. * * Returns the result of snprintf(). */ SAIL_EXPORT int sail_snprintf_variant(const struct sail_variant *variant, char *str, size_t str_size); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-common/variant_node.c000066400000000000000000000065261475535176100203310ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "sail-common.h" sail_status_t sail_alloc_variant_node(struct sail_variant_node **node) { SAIL_TRY(sail_private_alloc_linked_list_node((struct linked_list_node **)node)); return SAIL_OK; } sail_status_t sail_alloc_variant_node_and_value(struct sail_variant_node **node) { SAIL_TRY(sail_private_alloc_linked_list_node_and_value((linked_list_value_allocator_t)&sail_alloc_variant, (linked_list_value_deallocator_t)&sail_destroy_variant, (struct linked_list_node **)node)); return SAIL_OK; } void sail_destroy_variant_node(struct sail_variant_node *node) { sail_private_destroy_linked_list_node((struct linked_list_node *)node, (linked_list_value_deallocator_t)&sail_destroy_variant); } sail_status_t sail_copy_variant_node(const struct sail_variant_node *source, struct sail_variant_node **target) { SAIL_TRY(sail_private_copy_linked_list_node((const struct linked_list_node *)source, (struct linked_list_node **)target, (linked_list_value_copier_t)sail_copy_variant, (linked_list_value_deallocator_t)&sail_destroy_variant)); return SAIL_OK; } void sail_destroy_variant_node_chain(struct sail_variant_node *node) { sail_private_destroy_linked_list_node_chain((struct linked_list_node *)node, (linked_list_value_deallocator_t)&sail_destroy_variant); } sail_status_t sail_copy_variant_node_chain(const struct sail_variant_node *source, struct sail_variant_node **target) { SAIL_TRY(sail_private_copy_linked_list_node_chain((const struct linked_list_node *)source, (struct linked_list_node **)target, (linked_list_value_copier_t)sail_copy_variant, (linked_list_value_deallocator_t)&sail_destroy_variant)); return SAIL_OK; } sail-0.9.8/src/sail-common/variant_node.h000066400000000000000000000057611475535176100203360ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_VARIANT_NODE_H #define SAIL_VARIANT_NODE_H #include #include #ifdef __cplusplus extern "C" { #endif struct sail_variant; /* * Represents a variant node. */ struct sail_variant_node { /* * Variant value. */ struct sail_variant *variant; /* * Pointer to the next node or NULL. */ struct sail_variant_node *next; }; /* * Allocates a new variant node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_variant_node(struct sail_variant_node **node); /* * Allocates a new variant node and the nested value. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_variant_node_and_value(struct sail_variant_node **node); /* * Destroys the specified variant node. */ SAIL_EXPORT void sail_destroy_variant_node(struct sail_variant_node *node); /* * Makes a deep copy of the specified variant node. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_variant_node(const struct sail_variant_node *source, struct sail_variant_node **target); /* * Destroys the specified variant node and all its internal allocated memory buffers. * Repeats the destruction procedure recursively for the stored next pointer. */ SAIL_EXPORT void sail_destroy_variant_node_chain(struct sail_variant_node *node); /* * Makes a deep copy of the specified variant node chain. If the source chain is NULL, it assigns NULL * to the target chain and returns SAIL_OK. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_copy_variant_node_chain(const struct sail_variant_node *source, struct sail_variant_node **target); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-manip/000077500000000000000000000000001475535176100153175ustar00rootroot00000000000000sail-0.9.8/src/sail-manip/CMakeLists.txt000066400000000000000000000042351475535176100200630ustar00rootroot00000000000000add_library(sail-manip cmyk.c cmyk.h conversion_options.c conversion_options.h convert.c convert.h manip_common.h manip_utils.c manip_utils.h sail-manip.h ycbcr.c ycbcr.h ycck.c ycck.h) # Build a list of public headers to install # set(PUBLIC_HEADERS conversion_options.h convert.h manip_common.h sail-manip.h) set_target_properties(sail-manip PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} PUBLIC_HEADER "${PUBLIC_HEADERS}") sail_enable_asan(TARGET sail-manip) sail_enable_pch(TARGET sail-manip HEADER sail-manip.h) if (SAIL_INSTALL_PDB) sail_install_pdb(TARGET sail-manip) endif() # Definitions, includes, link # target_include_directories(sail-manip PUBLIC $) if (SAIL_HAVE_OPENMP) target_compile_options(sail-manip PRIVATE ${SAIL_OPENMP_FLAGS}) target_include_directories(sail-manip PRIVATE ${SAIL_OPENMP_INCLUDE_DIRS}) target_link_libraries(sail-manip PRIVATE ${SAIL_OPENMP_LIBS}) endif() target_link_libraries(sail-manip PUBLIC sail-common) # pkg-config integration # get_target_property(VERSION sail-manip VERSION) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/sail-manip.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sail-manip.pc" @ONLY) # Installation # install(TARGETS sail-manip EXPORT SailManipTargets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail-manip") # Install development packages # install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sail-manip.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") sail_install_cmake_config(TARGET "SailManip" FOLDER "sailmanip" VERSION "${VERSION}") sail-0.9.8/src/sail-manip/cmake/000077500000000000000000000000001475535176100163775ustar00rootroot00000000000000sail-0.9.8/src/sail-manip/cmake/SailManipConfig.cmake.in000066400000000000000000000002411475535176100230060ustar00rootroot00000000000000include(CMakeFindDependencyMacro) find_dependency(SailCommon REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR}) include(${CMAKE_CURRENT_LIST_DIR}/SailManipTargets.cmake) sail-0.9.8/src/sail-manip/cmyk.c000066400000000000000000000035571475535176100164400ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include void convert_cmyk32_to_rgba32(uint8_t c, uint8_t m, uint8_t y, uint8_t k, sail_rgba32_t *rgba32) { #if 0 const uint8_t C = (uint8_t)(c / 100.0); const uint8_t M = (uint8_t)(m / 100.0); const uint8_t Y = (uint8_t)(y / 100.0); const uint8_t K = (uint8_t)(k / 100.0); *r = (uint8_t)((1-C) * (1-K) * 255); *g = (uint8_t)((1-M) * (1-K) * 255); *b = (uint8_t)((1-Y) * (1-K) * 255); #else rgba32->component1 = (uint8_t)((double)c * k / 255.0 + 0.5); rgba32->component2 = (uint8_t)((double)m * k / 255.0 + 0.5); rgba32->component3 = (uint8_t)((double)y * k / 255.0 + 0.5); rgba32->component4 = 255; #endif } sail-0.9.8/src/sail-manip/cmyk.h000066400000000000000000000030741475535176100164370ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CMYK_H #define SAIL_CMYK_H #include #include #include /* * CMYK to RGB conversion. It's known for being not 1:1 exact by design. See https://sourceforge.net/p/libjpeg-turbo/patches/15 */ SAIL_HIDDEN void convert_cmyk32_to_rgba32(uint8_t c, uint8_t m, uint8_t y, uint8_t k, sail_rgba32_t *rgba32); #endif sail-0.9.8/src/sail-manip/conversion_options.c000066400000000000000000000034641475535176100214320ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include sail_status_t sail_alloc_conversion_options(struct sail_conversion_options **options) { SAIL_CHECK_PTR(options); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_conversion_options), &ptr)); *options = ptr; (*options)->options = SAIL_CONVERSION_OPTION_DROP_ALPHA; (*options)->background48 = (sail_rgb48_t){ 0, 0, 0 }; (*options)->background24 = (sail_rgb24_t){ 0, 0, 0 }; return SAIL_OK; } void sail_destroy_conversion_options(struct sail_conversion_options *options) { if (options == NULL) { return; } sail_free(options); } sail-0.9.8/src/sail-manip/conversion_options.h000066400000000000000000000051561475535176100214370ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CONVERSION_OPTIONS_H #define SAIL_CONVERSION_OPTIONS_H #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* * Options to control image conversion behavior. */ struct sail_conversion_options { /* * Or-ed SailConversionOption-s. If zero, SAIL_CONVERSION_OPTION_DROP_ALPHA is assumed. */ int options; /* * 48-bit background color to blend into other 16-bit color components instead of alpha * when options has SAIL_CONVERSION_OPTION_BLEND_ALPHA. */ sail_rgb48_t background48; /* * 24-bit background color to blend into other 8-bit color components instead of alpha * when options has SAIL_CONVERSION_OPTION_BLEND_ALPHA. */ sail_rgb24_t background24; }; typedef struct sail_conversion_options sail_conversion_options_t; /* * Allocates new conversion options. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_conversion_options(struct sail_conversion_options **options); /* * Destroys the specified conversion options and all its internal allocated memory buffers. * The options MUST NOT be used anymore after calling this function. Does nothing if the options is NULL. */ SAIL_EXPORT void sail_destroy_conversion_options(struct sail_conversion_options *options); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-manip/convert.c000066400000000000000000001310361475535176100171470ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include /* * Private functions. */ struct output_context { struct sail_image *image; int r; int g; int b; int a; const struct sail_conversion_options *options; }; typedef void (*pixel_consumer_t)(const struct output_context *output_context, uint8_t **scan8, uint16_t **scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64); static inline void pixel_consumer_gray8(const struct output_context *output_context, uint8_t **scan8, uint16_t ** scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64) { (void)scan16; if (rgba32 != NULL) { fill_gray8_pixel_from_uint8_values(rgba32, *scan8, output_context->options); } else { fill_gray8_pixel_from_uint16_values(rgba64, *scan8, output_context->options); } (*scan8)++; } static inline void pixel_consumer_gray16(const struct output_context *output_context, uint8_t ** scan8, uint16_t **scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64) { (void)scan8; if (rgba32 != NULL) { fill_gray16_pixel_from_uint8_values(rgba32, *scan16, output_context->options); } else { fill_gray16_pixel_from_uint16_values(rgba64, *scan16, output_context->options); } (*scan16)++; } static inline void pixel_consumer_rgb24_kind(const struct output_context *output_context, uint8_t **scan8, uint16_t **scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64) { (void)scan16; if (rgba32 != NULL) { fill_rgb24_pixel_from_uint8_values(rgba32, *scan8, output_context->r, output_context->g, output_context->b, output_context->options); } else { fill_rgb24_pixel_from_uint16_values(rgba64, *scan8, output_context->r, output_context->g, output_context->b, output_context->options); } *scan8 += 3; } static inline void pixel_consumer_rgb48_kind(const struct output_context *output_context, uint8_t ** scan8, uint16_t **scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64) { (void)scan8; if (rgba32 != NULL) { fill_rgb48_pixel_from_uint8_values(rgba32, *scan16, output_context->r, output_context->g, output_context->b, output_context->options); } else { fill_rgb48_pixel_from_uint16_values(rgba64, *scan16, output_context->r, output_context->g, output_context->b, output_context->options); } *scan16 += 3; } static inline void pixel_consumer_rgba32_kind(const struct output_context *output_context, uint8_t **scan8, uint16_t ** scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64) { (void)scan16; if (rgba32 != NULL) { fill_rgba32_pixel_from_uint8_values(rgba32, *scan8, output_context->r, output_context->g, output_context->b, output_context->a, output_context->options); } else { fill_rgba32_pixel_from_uint16_values(rgba64, *scan8, output_context->r, output_context->g, output_context->b, output_context->a, output_context->options); } *scan8 += 4; } static inline void pixel_consumer_rgba64_kind(const struct output_context *output_context, uint8_t ** scan8, uint16_t **scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64) { (void)scan8; if (rgba32 != NULL) { fill_rgba64_pixel_from_uint8_values(rgba32, *scan16, output_context->r, output_context->g, output_context->b, output_context->a, output_context->options); } else { fill_rgba64_pixel_from_uint16_values(rgba64, *scan16, output_context->r, output_context->g, output_context->b, output_context->a, output_context->options); } *scan16 += 4; } static inline void pixel_consumer_ycbcr(const struct output_context *output_context, uint8_t **scan8, uint16_t ** scan16, const sail_rgba32_t *rgba32, const sail_rgba64_t *rgba64) { (void)scan16; if (rgba32 != NULL) { fill_ycbcr_pixel_from_uint8_values(rgba32, *scan8, output_context->options); } else { fill_ycbcr_pixel_from_uint16_values(rgba64, *scan8, output_context->options); } *scan8 += 3; } static bool verify_and_construct_rgba_indexes_silent(enum SailPixelFormat output_pixel_format, pixel_consumer_t *pixel_consumer, int *r, int *g, int *b, int *a) { switch (output_pixel_format) { case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: { *pixel_consumer = pixel_consumer_gray8; *r = *g = *b = *a = -1; /* unused. */ break; } case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: { *pixel_consumer = pixel_consumer_gray16; *r = *g = *b = *a = -1; /* unused. */ break; } case SAIL_PIXEL_FORMAT_BPP24_RGB: { *pixel_consumer = pixel_consumer_rgb24_kind; *r = 0; *g = 1; *b = 2; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP24_BGR: { *pixel_consumer = pixel_consumer_rgb24_kind; *r = 2; *g = 1; *b = 0; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP48_RGB: { *pixel_consumer = pixel_consumer_rgb48_kind; *r = 0; *g = 1; *b = 2; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP48_BGR: { *pixel_consumer = pixel_consumer_rgb48_kind; *r = 2; *g = 1; *b = 0; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP32_RGBX: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 0; *g = 1; *b = 2; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP32_BGRX: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 2; *g = 1; *b = 0; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP32_XRGB: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 1; *g = 2; *b = 3; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP32_XBGR: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 3; *g = 2; *b = 1; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP32_RGBA: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 0; *g = 1; *b = 2; *a = 3; break; } case SAIL_PIXEL_FORMAT_BPP32_BGRA: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 2; *g = 1; *b = 0; *a = 3; break; } case SAIL_PIXEL_FORMAT_BPP32_ARGB: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 1; *g = 2; *b = 3; *a = 0; break; } case SAIL_PIXEL_FORMAT_BPP32_ABGR: { *pixel_consumer = pixel_consumer_rgba32_kind; *r = 3; *g = 2; *b = 1; *a = 0; break; } case SAIL_PIXEL_FORMAT_BPP64_RGBX: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 0; *g = 1; *b = 2; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP64_BGRX: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 2; *g = 1; *b = 0; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP64_XRGB: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 1; *g = 2; *b = 3; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP64_XBGR: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 3; *g = 2; *b = 1; *a = -1; break; } case SAIL_PIXEL_FORMAT_BPP64_RGBA: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 0; *g = 1; *b = 2; *a = 3; break; } case SAIL_PIXEL_FORMAT_BPP64_BGRA: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 2; *g = 1; *b = 0; *a = 3; break; } case SAIL_PIXEL_FORMAT_BPP64_ARGB: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 1; *g = 2; *b = 3; *a = 0; break; } case SAIL_PIXEL_FORMAT_BPP64_ABGR: { *pixel_consumer = pixel_consumer_rgba64_kind; *r = 3; *g = 2; *b = 1; *a = 0; break; } case SAIL_PIXEL_FORMAT_BPP24_YCBCR: { *pixel_consumer = pixel_consumer_ycbcr; *r = *g = *b = *a = -1; /* unused. */ break; } default: { return false; } } return true; } static sail_status_t verify_and_construct_rgba_indexes_verbose(enum SailPixelFormat output_pixel_format, pixel_consumer_t *pixel_consumer, int *r, int *g, int *b, int *a) { if (verify_and_construct_rgba_indexes_silent(output_pixel_format, pixel_consumer, r, g, b, a)) { return SAIL_OK; } else { SAIL_LOG_ERROR("Conversion to %s is not supported", sail_pixel_format_to_string(output_pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } static sail_status_t convert_from_indexed(const struct sail_image *image, const unsigned input_bit_shift, const unsigned bit_shift_decrease_by, const unsigned input_bit_mask, const unsigned bit_mask_shift_by, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { sail_status_t status = SAIL_OK; unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) shared(status) for (row = 0; row < image->height; row++) { #pragma omp flush(status) if (status == SAIL_OK) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width;) { unsigned bit_shift = input_bit_shift; unsigned bit_mask = input_bit_mask; const uint8_t byte = *scan_input++; while (bit_mask > 0 && column < image->width) { const uint8_t index = (byte & bit_mask) >> bit_shift; sail_rgba32_t rgba32; SAIL_TRY_OR_EXECUTE(get_palette_rgba32(image->palette, index, &rgba32), /* on error */ status = __sail_status); #pragma omp flush(status) pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); bit_shift -= bit_shift_decrease_by; bit_mask >>= bit_mask_shift_by; column++; } } } } return SAIL_OK; } static sail_status_t convert_from_bpp1_indexed(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_indexed(image, 7, 1, /* 10000000 */ 0x80, 1, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_bpp2_indexed(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_indexed(image, 6, 2, /* 11000000 */ 0xC0, 2, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_bpp4_indexed(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_indexed(image, 4, 4, /* 11110000 */ 0xF0, 4, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_bpp8_indexed(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_indexed(image, 0, 0, /* 11111111 */ 0xFF, 8, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_grayscale_up_to_bpp8(const struct sail_image *image, const unsigned input_bit_shift, const unsigned bit_shift_decrease_by, const unsigned input_bit_mask, const unsigned bit_mask_shift_by, const unsigned multiplicator_to_255, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width;) { unsigned bit_shift = input_bit_shift; unsigned bit_mask = input_bit_mask; const uint8_t byte = *scan_input++; while (bit_mask > 0 && column < image->width) { const uint8_t index = (byte & bit_mask) >> bit_shift; sail_rgba32_t rgba32; spread_gray8_to_rgba32((uint8_t)(index * multiplicator_to_255), &rgba32); pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); bit_shift -= bit_shift_decrease_by; bit_mask >>= bit_mask_shift_by; column++; } } } return SAIL_OK; } static sail_status_t convert_from_bpp1_grayscale(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_grayscale_up_to_bpp8(image, 7, 1, /* 10000000 */ 0x80, 1, 255, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_bpp2_grayscale(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_grayscale_up_to_bpp8(image, 6, 2, /* 11000000 */ 0xC0, 2, 85, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_bpp4_grayscale(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_grayscale_up_to_bpp8(image, 4, 4, /* 11110000 */ 0xF0, 4, 17, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_bpp8_grayscale(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { SAIL_TRY(convert_from_grayscale_up_to_bpp8(image, 0, 0, /* 11111111 */ 0xFF, 8, 1, pixel_consumer, output_context)); return SAIL_OK; } static sail_status_t convert_from_bpp16_grayscale(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { sail_rgba64_t rgba64; spread_gray16_to_rgba64(*scan_input++, &rgba64); pixel_consumer(output_context, &scan_output8, &scan_output16, NULL, &rgba64); } } return SAIL_OK; } static sail_status_t convert_from_bpp16_grayscale_alpha(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { sail_rgba32_t rgba32; spread_gray8_to_rgba32(*scan_input++, &rgba32); rgba32.component4 = *scan_input++; pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); } } return SAIL_OK; } static sail_status_t convert_from_bpp32_grayscale_alpha(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { sail_rgba64_t rgba64; spread_gray16_to_rgba64(*scan_input++, &rgba64); rgba64.component4 = *scan_input++; pixel_consumer(output_context, &scan_output8, &scan_output16, NULL, &rgba64); } } return SAIL_OK; } static sail_status_t convert_from_bpp16_rgb555(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba32_t rgba32 = { ((*scan_input >> 0) & 0x1f) << 3, ((*scan_input >> 5) & 0x1f) << 3, ((*scan_input >> 10) & 0x1f) << 3, 255 }; pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input++; } } return SAIL_OK; } static sail_status_t convert_from_bpp16_bgr555(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba32_t rgba32 = { ((*scan_input >> 10) & 0x1f) << 3, ((*scan_input >> 5) & 0x1f) << 3, ((*scan_input >> 0) & 0x1f) << 3, 255 }; pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input++; } } return SAIL_OK; } static sail_status_t convert_from_bpp16_rgb565(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba32_t rgba32 = { ((*scan_input >> 0) & 0x1f) << 3, ((*scan_input >> 5) & 0x3f) << 2, ((*scan_input >> 11) & 0x1f) << 3, 255 }; pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input++; } } return SAIL_OK; } static sail_status_t convert_from_bpp16_bgr565(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba32_t rgba32 = { ((*scan_input >> 11) & 0x1f) << 3, ((*scan_input >> 5) & 0x3f) << 2, ((*scan_input >> 0) & 0x1f) << 3, 255 }; pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input++; } } return SAIL_OK; } static sail_status_t convert_from_bpp24_rgb_kind(const struct sail_image *image, int ri, int gi, int bi, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba32_t rgba32 = { *(scan_input+ri), *(scan_input+gi), *(scan_input+bi), 255 }; pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input += 3; } } return SAIL_OK; } static sail_status_t convert_from_bpp48_rgb_kind(const struct sail_image *image, int ri, int gi, int bi, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba64_t rgba64 = { *(scan_input+ri), *(scan_input+gi), *(scan_input+bi), 65535 }; pixel_consumer(output_context, &scan_output8, &scan_output16, NULL, &rgba64); scan_input += 3; } } return SAIL_OK; } static sail_status_t convert_from_bpp32_rgba_kind(const struct sail_image *image, int ri, int gi, int bi, int ai, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba32_t rgba32 = { *(scan_input+ri), *(scan_input+gi), *(scan_input+bi), ai >= 0 ? *(scan_input+ai) : 255 }; pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input += 4; } } return SAIL_OK; } static sail_status_t convert_from_bpp64_rgba_kind(const struct sail_image *image, int ri, int gi, int bi, int ai, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint16_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { const sail_rgba64_t rgba64 = { *(scan_input+ri), *(scan_input+gi), *(scan_input+bi), ai >= 0 ? *(scan_input+ai) : 65535 }; pixel_consumer(output_context, &scan_output8, &scan_output16, NULL, &rgba64); scan_input += 4; } } return SAIL_OK; } static sail_status_t convert_from_bpp32_cmyk(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { sail_rgba32_t rgba32; convert_cmyk32_to_rgba32(*(scan_input+0), *(scan_input+1), *(scan_input+2), *(scan_input+3), &rgba32); pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input += 4; } } return SAIL_OK; } static sail_status_t convert_from_bpp24_ycbcr(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { sail_rgba32_t rgba32; convert_ycbcr24_to_rgba32(*(scan_input+0), *(scan_input+1), *(scan_input+2), &rgba32); pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input += 3; } } return SAIL_OK; } static sail_status_t convert_from_bpp32_ycck(const struct sail_image *image, pixel_consumer_t pixel_consumer, const struct output_context *output_context) { unsigned row; #pragma omp parallel for schedule(SAIL_OPENMP_SCHEDULE) for (row = 0; row < image->height; row++) { const uint8_t *scan_input = sail_scan_line(image, row); uint8_t *scan_output8 = sail_scan_line(output_context->image, row); uint16_t *scan_output16 = sail_scan_line(output_context->image, row); for (unsigned column = 0; column < image->width; column++) { sail_rgba32_t rgba32; convert_ycck32_to_rgba32(*(scan_input+0), *(scan_input+1), *(scan_input+2), *(scan_input+3), &rgba32); pixel_consumer(output_context, &scan_output8, &scan_output16, &rgba32, NULL); scan_input += 4; } } return SAIL_OK; } static sail_status_t conversion_impl( const struct sail_image *image, struct sail_image *image_output, pixel_consumer_t pixel_consumer, int r, /* Index of the RED component. */ int g, /* Index of the GREEN component. */ int b, /* Index of the BLUE component. */ int a, /* Index of the ALPHA component. */ const struct sail_conversion_options *options) { const struct output_context output_context = { image_output, r, g, b, a, options }; /* After adding a new input pixel format, also update the switch in sail_can_convert(). */ switch (image->pixel_format) { case SAIL_PIXEL_FORMAT_BPP1_INDEXED: { SAIL_TRY(convert_from_bpp1_indexed(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP2_INDEXED: { SAIL_TRY(convert_from_bpp2_indexed(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP4_INDEXED: { SAIL_TRY(convert_from_bpp4_indexed(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP8_INDEXED: { SAIL_TRY(convert_from_bpp8_indexed(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE: { SAIL_TRY(convert_from_bpp1_grayscale(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE: { SAIL_TRY(convert_from_bpp2_grayscale(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE: { SAIL_TRY(convert_from_bpp4_grayscale(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: { SAIL_TRY(convert_from_bpp8_grayscale(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: { SAIL_TRY(convert_from_bpp16_grayscale(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: { SAIL_TRY(convert_from_bpp16_grayscale_alpha(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: { SAIL_TRY(convert_from_bpp32_grayscale_alpha(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP16_RGB555: { SAIL_TRY(convert_from_bpp16_rgb555(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP16_BGR555: { SAIL_TRY(convert_from_bpp16_bgr555(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP16_RGB565: { SAIL_TRY(convert_from_bpp16_rgb565(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP16_BGR565: { SAIL_TRY(convert_from_bpp16_bgr565(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP24_RGB: { SAIL_TRY(convert_from_bpp24_rgb_kind(image, 0, 1, 2, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP24_BGR: { SAIL_TRY(convert_from_bpp24_rgb_kind(image, 2, 1, 0, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP48_RGB: { SAIL_TRY(convert_from_bpp48_rgb_kind(image, 0, 1, 2, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP48_BGR: { SAIL_TRY(convert_from_bpp48_rgb_kind(image, 2, 1, 0, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_RGBX: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 0, 1, 2, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_BGRX: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 2, 1, 0, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_XRGB: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 1, 2, 3, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_XBGR: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 3, 2, 1, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_RGBA: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 0, 1, 2, 3, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_BGRA: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 2, 1, 0, 3, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_ARGB: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 1, 2, 3, 0, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_ABGR: { SAIL_TRY(convert_from_bpp32_rgba_kind(image, 3, 2, 1, 0, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_RGBX: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 0, 1, 2, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_BGRX: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 2, 1, 0, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_XRGB: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 1, 2, 3, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_XBGR: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 3, 2, 1, -1, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_RGBA: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 0, 1, 2, 3, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_BGRA: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 2, 1, 0, 3, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_ARGB: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 1, 2, 3, 0, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP64_ABGR: { SAIL_TRY(convert_from_bpp64_rgba_kind(image, 3, 2, 1, 0, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_CMYK: { SAIL_TRY(convert_from_bpp32_cmyk(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP24_YCBCR: { SAIL_TRY(convert_from_bpp24_ycbcr(image, pixel_consumer, &output_context)); break; } case SAIL_PIXEL_FORMAT_BPP32_YCCK: { SAIL_TRY(convert_from_bpp32_ycck(image, pixel_consumer, &output_context)); break; } default: { SAIL_LOG_ERROR("Conversion from %s is not currently supported", sail_pixel_format_to_string(image->pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } return SAIL_OK; } /* * Public functions. */ sail_status_t sail_convert_image(const struct sail_image *image, enum SailPixelFormat output_pixel_format, struct sail_image **image_output) { SAIL_TRY(sail_convert_image_with_options(image, output_pixel_format, NULL /* options */, image_output)); return SAIL_OK; } sail_status_t sail_convert_image_with_options(const struct sail_image *image, enum SailPixelFormat output_pixel_format, const struct sail_conversion_options *options, struct sail_image **image_output) { SAIL_TRY(sail_check_image_valid(image)); SAIL_CHECK_PTR(image_output); int r, g, b, a; pixel_consumer_t pixel_consumer; SAIL_TRY(verify_and_construct_rgba_indexes_verbose(output_pixel_format, &pixel_consumer, &r, &g, &b, &a)); struct sail_image *image_local; SAIL_TRY(sail_copy_image_skeleton(image, &image_local)); image_local->pixel_format = output_pixel_format; image_local->bytes_per_line = sail_bytes_per_line(image_local->width, image_local->pixel_format); const size_t pixels_size = (size_t)image_local->height * image_local->bytes_per_line; SAIL_TRY_OR_CLEANUP(sail_malloc(pixels_size, &image_local->pixels), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(conversion_impl(image, image_local, pixel_consumer, r, g, b, a, options), /* cleanup */ sail_destroy_image(image_local)); *image_output = image_local; return SAIL_OK; } sail_status_t sail_update_image(struct sail_image *image, enum SailPixelFormat output_pixel_format) { SAIL_TRY(sail_update_image_with_options(image, output_pixel_format, NULL /* options */)); return SAIL_OK; } sail_status_t sail_update_image_with_options(struct sail_image *image, enum SailPixelFormat output_pixel_format, const struct sail_conversion_options *options) { SAIL_TRY(sail_check_image_valid(image)); int r, g, b, a; pixel_consumer_t pixel_consumer; SAIL_TRY(verify_and_construct_rgba_indexes_verbose(output_pixel_format, &pixel_consumer, &r, &g, &b, &a)); if (image->pixel_format == output_pixel_format) { return SAIL_OK; } const bool new_image_fits_into_existing = sail_greater_equal_bits_per_pixel(image->pixel_format, output_pixel_format); if (!new_image_fits_into_existing) { SAIL_LOG_ERROR("Updating from %s to %s cannot be done as the output is larger than the input", sail_pixel_format_to_string(image->pixel_format), sail_pixel_format_to_string(output_pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } SAIL_TRY(conversion_impl(image, image, pixel_consumer, r, g, b, a, options)); image->pixel_format = output_pixel_format; return SAIL_OK; } bool sail_can_convert(enum SailPixelFormat input_pixel_format, enum SailPixelFormat output_pixel_format) { /* After adding a new input pixel format, also update the switch in conversion_impl(). */ switch (input_pixel_format) { case SAIL_PIXEL_FORMAT_BPP1_INDEXED: case SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP2_INDEXED: case SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP4_INDEXED: case SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP8_INDEXED: case SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE: case SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA: case SAIL_PIXEL_FORMAT_BPP16_RGB555: case SAIL_PIXEL_FORMAT_BPP16_BGR555: case SAIL_PIXEL_FORMAT_BPP16_RGB565: case SAIL_PIXEL_FORMAT_BPP16_BGR565: case SAIL_PIXEL_FORMAT_BPP24_RGB: case SAIL_PIXEL_FORMAT_BPP24_BGR: case SAIL_PIXEL_FORMAT_BPP48_RGB: case SAIL_PIXEL_FORMAT_BPP48_BGR: case SAIL_PIXEL_FORMAT_BPP32_RGBX: case SAIL_PIXEL_FORMAT_BPP32_BGRX: case SAIL_PIXEL_FORMAT_BPP32_XRGB: case SAIL_PIXEL_FORMAT_BPP32_XBGR: case SAIL_PIXEL_FORMAT_BPP32_RGBA: case SAIL_PIXEL_FORMAT_BPP32_BGRA: case SAIL_PIXEL_FORMAT_BPP32_ARGB: case SAIL_PIXEL_FORMAT_BPP32_ABGR: case SAIL_PIXEL_FORMAT_BPP64_RGBX: case SAIL_PIXEL_FORMAT_BPP64_BGRX: case SAIL_PIXEL_FORMAT_BPP64_XRGB: case SAIL_PIXEL_FORMAT_BPP64_XBGR: case SAIL_PIXEL_FORMAT_BPP64_RGBA: case SAIL_PIXEL_FORMAT_BPP64_BGRA: case SAIL_PIXEL_FORMAT_BPP64_ARGB: case SAIL_PIXEL_FORMAT_BPP64_ABGR: case SAIL_PIXEL_FORMAT_BPP32_CMYK: case SAIL_PIXEL_FORMAT_BPP24_YCBCR: { int r, g, b, a; pixel_consumer_t pixel_consumer; return verify_and_construct_rgba_indexes_silent(output_pixel_format, &pixel_consumer, &r, &g, &b, &a); } default: { return false; } } } /* Sorted by priority. */ static const enum SailPixelFormat GRAYSCALE_CANDIDATES[] = { /* After adding a new output pixel format, also update this list. */ SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP24_YCBCR, SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_BGR, SAIL_PIXEL_FORMAT_BPP48_RGB, SAIL_PIXEL_FORMAT_BPP48_BGR, SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP32_BGRA, SAIL_PIXEL_FORMAT_BPP32_ARGB, SAIL_PIXEL_FORMAT_BPP32_ABGR, SAIL_PIXEL_FORMAT_BPP32_RGBX, SAIL_PIXEL_FORMAT_BPP32_BGRX, SAIL_PIXEL_FORMAT_BPP32_XRGB, SAIL_PIXEL_FORMAT_BPP32_XBGR, SAIL_PIXEL_FORMAT_BPP64_RGBA, SAIL_PIXEL_FORMAT_BPP64_BGRA, SAIL_PIXEL_FORMAT_BPP64_ARGB, SAIL_PIXEL_FORMAT_BPP64_ABGR, SAIL_PIXEL_FORMAT_BPP64_RGBX, SAIL_PIXEL_FORMAT_BPP64_BGRX, SAIL_PIXEL_FORMAT_BPP64_XRGB, SAIL_PIXEL_FORMAT_BPP64_XBGR, }; static const size_t GRAYSCALE_CANDIDATES_LENGTH = sizeof(GRAYSCALE_CANDIDATES) / sizeof(GRAYSCALE_CANDIDATES[0]); /* Sorted by priority. */ static const enum SailPixelFormat INDEXED_OR_FULL_COLOR_CANDIDATES[] = { /* After adding a new output pixel format, also update this list. */ SAIL_PIXEL_FORMAT_BPP24_YCBCR, SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_BGR, SAIL_PIXEL_FORMAT_BPP48_RGB, SAIL_PIXEL_FORMAT_BPP48_BGR, SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP32_BGRA, SAIL_PIXEL_FORMAT_BPP32_ARGB, SAIL_PIXEL_FORMAT_BPP32_ABGR, SAIL_PIXEL_FORMAT_BPP32_RGBX, SAIL_PIXEL_FORMAT_BPP32_BGRX, SAIL_PIXEL_FORMAT_BPP32_XRGB, SAIL_PIXEL_FORMAT_BPP32_XBGR, SAIL_PIXEL_FORMAT_BPP64_RGBA, SAIL_PIXEL_FORMAT_BPP64_BGRA, SAIL_PIXEL_FORMAT_BPP64_ARGB, SAIL_PIXEL_FORMAT_BPP64_ABGR, SAIL_PIXEL_FORMAT_BPP64_RGBX, SAIL_PIXEL_FORMAT_BPP64_BGRX, SAIL_PIXEL_FORMAT_BPP64_XRGB, SAIL_PIXEL_FORMAT_BPP64_XBGR, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, }; static const size_t INDEXED_OR_FULL_COLOR_CANDIDATES_LENGTH = sizeof(INDEXED_OR_FULL_COLOR_CANDIDATES) / sizeof(INDEXED_OR_FULL_COLOR_CANDIDATES[0]); enum SailPixelFormat sail_closest_pixel_format(enum SailPixelFormat input_pixel_format, const enum SailPixelFormat pixel_formats[], size_t pixel_formats_length) { if (input_pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { return SAIL_PIXEL_FORMAT_UNKNOWN; } const enum SailPixelFormat *candidates; size_t candidates_length; if (sail_is_grayscale(input_pixel_format)) { candidates = GRAYSCALE_CANDIDATES; candidates_length = GRAYSCALE_CANDIDATES_LENGTH; } else { candidates = INDEXED_OR_FULL_COLOR_CANDIDATES; candidates_length = INDEXED_OR_FULL_COLOR_CANDIDATES_LENGTH; } size_t best_index_candidate = UINT_MAX; size_t best_index_result = 0; bool found = false; /* O(n^2) (sic!). */ for (size_t i = 0; i < pixel_formats_length; i++) { for (size_t k = 0; k < candidates_length; k++) { if (pixel_formats[i] == candidates[k]) { if (k < best_index_candidate) { best_index_candidate = k; best_index_result = i; found = true; break; } } } } return found ? pixel_formats[best_index_result] : SAIL_PIXEL_FORMAT_UNKNOWN; } enum SailPixelFormat sail_closest_pixel_format_from_save_features(enum SailPixelFormat input_pixel_format, const struct sail_save_features *save_features) { return sail_closest_pixel_format(input_pixel_format, save_features->pixel_formats, save_features->pixel_formats_length); } sail_status_t sail_convert_image_for_saving(const struct sail_image *image, const struct sail_save_features *save_features, struct sail_image **image_output) { SAIL_TRY(sail_convert_image_for_saving_with_options(image, save_features, NULL, image_output)); return SAIL_OK; } sail_status_t sail_convert_image_for_saving_with_options(const struct sail_image *image, const struct sail_save_features *save_features, const struct sail_conversion_options *options, struct sail_image **image_output) { SAIL_TRY(sail_check_image_valid(image)); SAIL_CHECK_PTR(save_features); SAIL_CHECK_PTR(image_output); enum SailPixelFormat best_pixel_format = sail_closest_pixel_format_from_save_features(image->pixel_format, save_features); if (best_pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_ERROR("Failed to find the best output format for saving %s image", sail_pixel_format_to_string(image->pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } if (best_pixel_format == image->pixel_format) { SAIL_TRY(sail_copy_image(image, image_output)); } else { SAIL_TRY(sail_convert_image_with_options(image, best_pixel_format, options, image_output)); } return SAIL_OK; } sail-0.9.8/src/sail-manip/convert.h000066400000000000000000000276101475535176100171560ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CONVERT_H #define SAIL_CONVERT_H #include #include /* size_t */ #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_conversion_options; struct sail_image; struct sail_save_features; /* * Converts the input image to the pixel format and saves the result in the output image. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use sail_convert_image_with_options(). * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile is not involved in the conversion procedure. * * The resulting image gets updated pixel format and bytes per line. Other properties are copied from * the original image. * * Allowed input pixel formats: * - Anything except LUV and LAB * * Allowed output pixel formats: * - SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE * - SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE * * - SAIL_PIXEL_FORMAT_BPP24_RGB * - SAIL_PIXEL_FORMAT_BPP24_BGR * * - SAIL_PIXEL_FORMAT_BPP48_RGB * - SAIL_PIXEL_FORMAT_BPP48_BGR * * - SAIL_PIXEL_FORMAT_BPP32_RGBX * - SAIL_PIXEL_FORMAT_BPP32_BGRX * - SAIL_PIXEL_FORMAT_BPP32_XRGB * - SAIL_PIXEL_FORMAT_BPP32_XBGR * - SAIL_PIXEL_FORMAT_BPP32_RGBA * - SAIL_PIXEL_FORMAT_BPP32_BGRA * - SAIL_PIXEL_FORMAT_BPP32_ARGB * - SAIL_PIXEL_FORMAT_BPP32_ABGR * * - SAIL_PIXEL_FORMAT_BPP64_RGBX * - SAIL_PIXEL_FORMAT_BPP64_BGRX * - SAIL_PIXEL_FORMAT_BPP64_XRGB * - SAIL_PIXEL_FORMAT_BPP64_XBGR * - SAIL_PIXEL_FORMAT_BPP64_RGBA * - SAIL_PIXEL_FORMAT_BPP64_BGRA * - SAIL_PIXEL_FORMAT_BPP64_ARGB * - SAIL_PIXEL_FORMAT_BPP64_ABGR * * - SAIL_PIXEL_FORMAT_BPP24_YCBCR * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_convert_image(const struct sail_image *image, enum SailPixelFormat output_pixel_format, struct sail_image **image_output); /* * Converts the input image to the pixel format and saves the result in the output image. * * Options (which may be NULL) control the conversion behavior. * * The conversion procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile (if any) is not involved into the conversion procedure. * * The resulting image gets updated pixel format and bytes per line. Other properties are copied from * the original image. * * Allowed input pixel formats: * - Anything except LUV and LAB * * Allowed output pixel formats: * - SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE * - SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE * * - SAIL_PIXEL_FORMAT_BPP24_RGB * - SAIL_PIXEL_FORMAT_BPP24_BGR * * - SAIL_PIXEL_FORMAT_BPP48_RGB * - SAIL_PIXEL_FORMAT_BPP48_BGR * * - SAIL_PIXEL_FORMAT_BPP32_RGBX * - SAIL_PIXEL_FORMAT_BPP32_BGRX * - SAIL_PIXEL_FORMAT_BPP32_XRGB * - SAIL_PIXEL_FORMAT_BPP32_XBGR * - SAIL_PIXEL_FORMAT_BPP32_RGBA * - SAIL_PIXEL_FORMAT_BPP32_BGRA * - SAIL_PIXEL_FORMAT_BPP32_ARGB * - SAIL_PIXEL_FORMAT_BPP32_ABGR * * - SAIL_PIXEL_FORMAT_BPP64_RGBX * - SAIL_PIXEL_FORMAT_BPP64_BGRX * - SAIL_PIXEL_FORMAT_BPP64_XRGB * - SAIL_PIXEL_FORMAT_BPP64_XBGR * - SAIL_PIXEL_FORMAT_BPP64_RGBA * - SAIL_PIXEL_FORMAT_BPP64_BGRA * - SAIL_PIXEL_FORMAT_BPP64_ARGB * - SAIL_PIXEL_FORMAT_BPP64_ABGR * * - SAIL_PIXEL_FORMAT_BPP24_YCBCR * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_convert_image_with_options(const struct sail_image *image, enum SailPixelFormat output_pixel_format, const struct sail_conversion_options *options, struct sail_image **image_output); /* * Updates the image to the pixel format. If the function fails, the image pixels * may be left partially converted. * * Drops the input alpha channel if the output alpha channel doesn't exist. For example, * when converting RGBA pixels to RGB. If you need to control this behavior, * use sail_update_image_with_options(). * * Doesn't reallocate pixels. For example, when updating 100x100 BPP32-RGBA image * to BPP24-RGB, the resulting pixel data will have 10'000 unused bytes at the end. * * The updating procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile (if any) is not involved into the conversion procedure. * * The image gets updated pixel format and bytes per line. Other properties stay as is. * * Allowed input pixel formats: * - Anything that produces equal or smaller image except LUV and LAB which are not supported * * Allowed output pixel formats: * - SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE * - SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE * * - SAIL_PIXEL_FORMAT_BPP24_RGB * - SAIL_PIXEL_FORMAT_BPP24_BGR * * - SAIL_PIXEL_FORMAT_BPP48_RGB * - SAIL_PIXEL_FORMAT_BPP48_BGR * * - SAIL_PIXEL_FORMAT_BPP32_RGBX * - SAIL_PIXEL_FORMAT_BPP32_BGRX * - SAIL_PIXEL_FORMAT_BPP32_XRGB * - SAIL_PIXEL_FORMAT_BPP32_XBGR * - SAIL_PIXEL_FORMAT_BPP32_RGBA * - SAIL_PIXEL_FORMAT_BPP32_BGRA * - SAIL_PIXEL_FORMAT_BPP32_ARGB * - SAIL_PIXEL_FORMAT_BPP32_ABGR * * - SAIL_PIXEL_FORMAT_BPP64_RGBX * - SAIL_PIXEL_FORMAT_BPP64_BGRX * - SAIL_PIXEL_FORMAT_BPP64_XRGB * - SAIL_PIXEL_FORMAT_BPP64_XBGR * - SAIL_PIXEL_FORMAT_BPP64_RGBA * - SAIL_PIXEL_FORMAT_BPP64_BGRA * - SAIL_PIXEL_FORMAT_BPP64_ARGB * - SAIL_PIXEL_FORMAT_BPP64_ABGR * * - SAIL_PIXEL_FORMAT_BPP24_YCBCR * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_update_image(struct sail_image *image, enum SailPixelFormat output_pixel_format); /* * Updates the image to the pixel format. If the function fails, the image pixels * may be left partially converted. * * Options (which may be NULL) control the conversion behavior. * * Doesn't reallocate pixels. For example, when updating 100x100 BPP32-RGBA image * to BPP24-RGB, the resulting pixel data will have 10'000 unused bytes at the end. * * The updating procedure may be slow. It converts every pixel into the BPP32-RGBA or * BPP64-RGBA formats first, and only then to the requested output format. No platform-specific * instructions (like AVX or SSE) are used. * * The image ICC profile (if any) is not involved into the conversion procedure. * * The image gets updated pixel format and bytes per line. Other properties stay as is. * * Allowed input pixel formats: * - Anything that produces equal or smaller image except LUV and LAB which are not supported * * Allowed output pixel formats: * - SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE * - SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE * * - SAIL_PIXEL_FORMAT_BPP24_RGB * - SAIL_PIXEL_FORMAT_BPP24_BGR * * - SAIL_PIXEL_FORMAT_BPP48_RGB * - SAIL_PIXEL_FORMAT_BPP48_BGR * * - SAIL_PIXEL_FORMAT_BPP32_RGBX * - SAIL_PIXEL_FORMAT_BPP32_BGRX * - SAIL_PIXEL_FORMAT_BPP32_XRGB * - SAIL_PIXEL_FORMAT_BPP32_XBGR * - SAIL_PIXEL_FORMAT_BPP32_RGBA * - SAIL_PIXEL_FORMAT_BPP32_BGRA * - SAIL_PIXEL_FORMAT_BPP32_ARGB * - SAIL_PIXEL_FORMAT_BPP32_ABGR * * - SAIL_PIXEL_FORMAT_BPP64_RGBX * - SAIL_PIXEL_FORMAT_BPP64_BGRX * - SAIL_PIXEL_FORMAT_BPP64_XRGB * - SAIL_PIXEL_FORMAT_BPP64_XBGR * - SAIL_PIXEL_FORMAT_BPP64_RGBA * - SAIL_PIXEL_FORMAT_BPP64_BGRA * - SAIL_PIXEL_FORMAT_BPP64_ARGB * - SAIL_PIXEL_FORMAT_BPP64_ABGR * * - SAIL_PIXEL_FORMAT_BPP24_YCBCR * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_update_image_with_options(struct sail_image *image, enum SailPixelFormat output_pixel_format, const struct sail_conversion_options *options); /* * Returns true if the conversion or updating functions can convert or update from the input * pixel format to the output pixel format. */ SAIL_EXPORT bool sail_can_convert(enum SailPixelFormat input_pixel_format, enum SailPixelFormat output_pixel_format); /* * Returns the closest pixel format to the input pixel format from the list. * * This function can be used to find the best pixel format to save an image into. * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if no candidates found at all. */ SAIL_EXPORT enum SailPixelFormat sail_closest_pixel_format(enum SailPixelFormat input_pixel_format, const enum SailPixelFormat pixel_formats[], size_t pixel_formats_length); /* * Returns the closest pixel format to the input pixel format from the save features. * * This function can be used to find the best pixel format to save an image into. * * Returns SAIL_PIXEL_FORMAT_UNKNOWN if no candidates found at all. */ SAIL_EXPORT enum SailPixelFormat sail_closest_pixel_format_from_save_features(enum SailPixelFormat input_pixel_format, const struct sail_save_features *save_features); /* * Converts the image to be suitable for saving in the output format described by the save features * (from the appropriate codec info). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_convert_image_for_saving(const struct sail_image *image, const struct sail_save_features *save_features, struct sail_image **image_output); /* * Converts the image to be suitable for saving in the output format described by the save features * (from the appropriate codec info). * * Options (which may be NULL) control the conversion behavior. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_convert_image_for_saving_with_options(const struct sail_image *image, const struct sail_save_features *save_features, const struct sail_conversion_options *options, struct sail_image **image_output); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail-manip/manip_common.h000066400000000000000000000041371475535176100201510ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_MANIP_COMMON_H #define SAIL_MANIP_COMMON_H /* * Options to control color conversion behavior. */ enum SailConversionOption { /* * Drops the input alpha channel if the output alpha channel doesn't exist. * For example, when we convert RGBA pixels to RGB. * * SAIL_CONVERSION_OPTION_DROP_ALPHA and SAIL_CONVERSION_OPTION_BLEND_ALPHA are mutually * exclusive. If both are specified, SAIL_CONVERSION_OPTION_BLEND_ALPHA wins. */ SAIL_CONVERSION_OPTION_DROP_ALPHA = 1 << 0, /* * Blend the input alpha channel into the other color components if the output alpha channel * doesn't exist. For example, when we convert RGBA pixels to RGB. * * Formula: * opacity = alpha / max_alpha (to convert to [0, 1]) * output_pixel = opacity * input_pixel + (1 - opacity) * background */ SAIL_CONVERSION_OPTION_BLEND_ALPHA = 1 << 1, }; #endif sail-0.9.8/src/sail-manip/manip_utils.c000066400000000000000000000405031475535176100200110ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include /* https://en.wikipedia.org/wiki/Grayscale */ static const double R_TO_GRAY_COEFFICIENT = 0.299; static const double G_TO_GRAY_COEFFICIENT = 0.587; static const double B_TO_GRAY_COEFFICIENT = 0.114; sail_status_t get_palette_rgba32(const struct sail_palette *palette, unsigned index, sail_rgba32_t *rgba32) { if (index >= palette->color_count) { SAIL_LOG_ERROR("Palette index %u is out of range [0; %u)", index, palette->color_count); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } switch (palette->pixel_format) { case SAIL_PIXEL_FORMAT_BPP24_RGB: { const uint8_t *entry = (uint8_t *)palette->data + index * 3; rgba32->component1 = *(entry+0); rgba32->component2 = *(entry+1); rgba32->component3 = *(entry+2); rgba32->component4 = 255; break; } case SAIL_PIXEL_FORMAT_BPP32_RGBA: { const uint8_t *entry = (uint8_t *)palette->data + index * 4; rgba32->component1 = *(entry+0); rgba32->component2 = *(entry+1); rgba32->component3 = *(entry+2); rgba32->component4 = *(entry+3); break; } default: { SAIL_LOG_ERROR("Palette pixel format %s is not currently supported", sail_pixel_format_to_string(palette->pixel_format)); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } } return SAIL_OK; } void spread_gray8_to_rgba32(uint8_t value, sail_rgba32_t *rgba32) { rgba32->component1 = rgba32->component2 = rgba32->component3 = value; rgba32->component4 = 255; } void spread_gray16_to_rgba32(uint16_t value, sail_rgba32_t *rgba32) { rgba32->component1 = rgba32->component2 = rgba32->component3 = (uint8_t)(value / 257.0); rgba32->component4 = 255; } void spread_gray8_to_rgba64(uint8_t value, sail_rgba64_t *rgba64) { rgba64->component1 = rgba64->component2 = rgba64->component3 = (uint16_t)value * 257; rgba64->component4 = 65535; } void spread_gray16_to_rgba64(uint16_t value, sail_rgba64_t *rgba64) { rgba64->component1 = rgba64->component2 = rgba64->component3 = value; rgba64->component4 = 65535; } void fill_gray8_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, const struct sail_conversion_options *options) { sail_rgb24_t rgb24; if (rgba32->component4 < 255 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba32->component4 / 255.0; rgb24.component1 = (uint8_t)(opacity * rgba32->component1 + (1 - opacity) * options->background24.component1); rgb24.component2 = (uint8_t)(opacity * rgba32->component2 + (1 - opacity) * options->background24.component2); rgb24.component3 = (uint8_t)(opacity * rgba32->component3 + (1 - opacity) * options->background24.component3); } else { rgb24.component1 = rgba32->component1; rgb24.component2 = rgba32->component2; rgb24.component3 = rgba32->component3; } *scan = (uint8_t)((R_TO_GRAY_COEFFICIENT * rgb24.component1) + (G_TO_GRAY_COEFFICIENT * rgb24.component2) + (B_TO_GRAY_COEFFICIENT * rgb24.component3)); } void fill_gray8_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, const struct sail_conversion_options *options) { sail_rgb24_t rgb24; if (rgba64->component4 < 65535 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba64->component4 / 65535.0; rgb24.component1 = (uint8_t)((opacity * rgba64->component1 + (1 - opacity) * options->background48.component1) / 257.0); rgb24.component2 = (uint8_t)((opacity * rgba64->component2 + (1 - opacity) * options->background48.component2) / 257.0); rgb24.component3 = (uint8_t)((opacity * rgba64->component3 + (1 - opacity) * options->background48.component3) / 257.0); } else { rgb24.component1 = (uint8_t)(rgba64->component1 / 257.0); rgb24.component2 = (uint8_t)(rgba64->component2 / 257.0); rgb24.component3 = (uint8_t)(rgba64->component3 / 257.0); } *scan = (uint8_t)((R_TO_GRAY_COEFFICIENT * rgb24.component1) + (G_TO_GRAY_COEFFICIENT * rgb24.component2) + (B_TO_GRAY_COEFFICIENT * rgb24.component3)); } void fill_gray16_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint16_t *scan, const struct sail_conversion_options *options) { sail_rgb48_t rgb48; if (rgba32->component4 < 255 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba32->component4 / 255.0; rgb48.component1 = (uint16_t)(opacity * (rgba32->component1 * 257) + (1 - opacity) * options->background48.component1); rgb48.component2 = (uint16_t)(opacity * (rgba32->component2 * 257) + (1 - opacity) * options->background48.component2); rgb48.component3 = (uint16_t)(opacity * (rgba32->component3 * 257) + (1 - opacity) * options->background48.component3); } else { rgb48.component1 = rgba32->component1 * 257; rgb48.component2 = rgba32->component2 * 257; rgb48.component3 = rgba32->component3 * 257; } *scan = (uint16_t)((R_TO_GRAY_COEFFICIENT * rgb48.component1) + (G_TO_GRAY_COEFFICIENT * rgb48.component2) + (B_TO_GRAY_COEFFICIENT * rgb48.component3)); } void fill_gray16_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint16_t *scan, const struct sail_conversion_options *options) { sail_rgb48_t rgb48; if (rgba64->component4 < 65535 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba64->component4 / 65535.0; rgb48.component1 = (uint16_t)(opacity * rgba64->component1 + (1 - opacity) * options->background48.component1); rgb48.component2 = (uint16_t)(opacity * rgba64->component2 + (1 - opacity) * options->background48.component2); rgb48.component3 = (uint16_t)(opacity * rgba64->component3 + (1 - opacity) * options->background48.component3); } else { rgb48.component1 = rgba64->component1; rgb48.component2 = rgba64->component2; rgb48.component3 = rgba64->component3; } *scan = (uint16_t)((R_TO_GRAY_COEFFICIENT * rgb48.component1) + (G_TO_GRAY_COEFFICIENT * rgb48.component2) + (B_TO_GRAY_COEFFICIENT * rgb48.component3)); } void fill_rgb24_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, int r, int g, int b, const struct sail_conversion_options *options) { if (rgba32->component4 < 255 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba32->component4 / 255.0; *(scan+r) = (uint8_t)(opacity * rgba32->component1 + (1 - opacity) * options->background24.component1); *(scan+g) = (uint8_t)(opacity * rgba32->component2 + (1 - opacity) * options->background24.component2); *(scan+b) = (uint8_t)(opacity * rgba32->component3 + (1 - opacity) * options->background24.component3); } else { *(scan+r) = rgba32->component1; *(scan+g) = rgba32->component2; *(scan+b) = rgba32->component3; } } void fill_rgb24_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, int r, int g, int b, const struct sail_conversion_options *options) { if (rgba64->component4 < 65535 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba64->component4 / 65535.0; *(scan+r) = (uint8_t)((opacity * rgba64->component1 + (1 - opacity) * options->background48.component1) / 257.0); *(scan+g) = (uint8_t)((opacity * rgba64->component2 + (1 - opacity) * options->background48.component2) / 257.0); *(scan+b) = (uint8_t)((opacity * rgba64->component3 + (1 - opacity) * options->background48.component3) / 257.0); } else { *(scan+r) = (uint8_t)(rgba64->component1 / 257.0); *(scan+g) = (uint8_t)(rgba64->component2 / 257.0); *(scan+b) = (uint8_t)(rgba64->component3 / 257.0); } } void fill_rgb48_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint16_t *scan, int r, int g, int b, const struct sail_conversion_options *options) { if (rgba32->component4 < 255 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba32->component4 / 255.0; *(scan+r) = (uint16_t)(opacity * (rgba32->component1 * 257) + (1 - opacity) * options->background48.component1); *(scan+g) = (uint16_t)(opacity * (rgba32->component2 * 257) + (1 - opacity) * options->background48.component2); *(scan+b) = (uint16_t)(opacity * (rgba32->component3 * 257) + (1 - opacity) * options->background48.component3); } else { *(scan+r) = rgba32->component1 * 257; *(scan+g) = rgba32->component2 * 257; *(scan+b) = rgba32->component3 * 257; } } void fill_rgb48_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint16_t *scan, int r, int g, int b, const struct sail_conversion_options *options) { if (rgba64->component4 < 65535 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba64->component4 / 65535.0; *(scan+r) = (uint16_t)(opacity * rgba64->component1 + (1 - opacity) * options->background48.component1); *(scan+g) = (uint16_t)(opacity * rgba64->component2 + (1 - opacity) * options->background48.component2); *(scan+b) = (uint16_t)(opacity * rgba64->component3 + (1 - opacity) * options->background48.component3); } else { *(scan+r) = rgba64->component1; *(scan+g) = rgba64->component2; *(scan+b) = rgba64->component3; } } void fill_rgba32_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options) { if (a < 0 && rgba32->component4 < 255 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba32->component4 / 255.0; *(scan+r) = (uint8_t)(opacity * rgba32->component1 + (1 - opacity) * options->background24.component1); *(scan+g) = (uint8_t)(opacity * rgba32->component2 + (1 - opacity) * options->background24.component2); *(scan+b) = (uint8_t)(opacity * rgba32->component3 + (1 - opacity) * options->background24.component3); } else { *(scan+r) = rgba32->component1; *(scan+g) = rgba32->component2; *(scan+b) = rgba32->component3; } if (a >= 0) { *(scan+a) = rgba32->component4; } } void fill_rgba32_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options) { if (a < 0 && rgba64->component4 < 65535 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba64->component4 / 65535.0; *(scan+r) = (uint8_t)((opacity * rgba64->component1 + (1 - opacity) * options->background48.component1) / 257.0); *(scan+g) = (uint8_t)((opacity * rgba64->component2 + (1 - opacity) * options->background48.component2) / 257.0); *(scan+b) = (uint8_t)((opacity * rgba64->component3 + (1 - opacity) * options->background48.component3) / 257.0); } else { *(scan+r) = (uint8_t)(rgba64->component1 / 257.0); *(scan+g) = (uint8_t)(rgba64->component2 / 257.0); *(scan+b) = (uint8_t)(rgba64->component3 / 257.0); } if (a >= 0) { *(scan+a) = (uint8_t)(rgba64->component4 / 257.0); } } void fill_rgba64_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint16_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options) { if (a < 0 && rgba32->component4 < 255 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba32->component4 / 255.0; *(scan+r) = (uint16_t)(opacity * (rgba32->component1 * 257) + (1 - opacity) * options->background48.component1); *(scan+g) = (uint16_t)(opacity * (rgba32->component2 * 257) + (1 - opacity) * options->background48.component2); *(scan+b) = (uint16_t)(opacity * (rgba32->component3 * 257) + (1 - opacity) * options->background48.component3); } else { *(scan+r) = rgba32->component1 * 257; *(scan+g) = rgba32->component2 * 257; *(scan+b) = rgba32->component3 * 257; } if (a >= 0) { *(scan+a) = rgba32->component4 * 257; } } void fill_rgba64_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint16_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options) { if (a < 0 && rgba64->component4 < 65535 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba64->component4 / 65535.0; *(scan+r) = (uint16_t)(opacity * rgba64->component1 + (1 - opacity) * options->background48.component1); *(scan+g) = (uint16_t)(opacity * rgba64->component2 + (1 - opacity) * options->background48.component2); *(scan+b) = (uint16_t)(opacity * rgba64->component3 + (1 - opacity) * options->background48.component3); } else { *(scan+r) = rgba64->component1; *(scan+g) = rgba64->component2; *(scan+b) = rgba64->component3; } if (a >= 0) { *(scan+a) = rgba64->component4; } } void fill_ycbcr_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, const struct sail_conversion_options *options) { sail_rgba32_t rgba32_no_alpha; if (rgba32->component4 < 255 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba32->component4 / 255.0; rgba32_no_alpha.component1 = (uint8_t)(opacity * rgba32->component1 + (1 - opacity) * options->background24.component1); rgba32_no_alpha.component2 = (uint8_t)(opacity * rgba32->component2 + (1 - opacity) * options->background24.component2); rgba32_no_alpha.component3 = (uint8_t)(opacity * rgba32->component3 + (1 - opacity) * options->background24.component3); } else { rgba32_no_alpha = *rgba32; } convert_rgba32_to_ycbcr24(&rgba32_no_alpha, scan+0, scan+1, scan+2); } void fill_ycbcr_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, const struct sail_conversion_options *options) { sail_rgba32_t rgba32_no_alpha; if (rgba64->component4 < 65535 && options != NULL && (options->options & SAIL_CONVERSION_OPTION_BLEND_ALPHA)) { const double opacity = rgba64->component4 / 65535.0; rgba32_no_alpha.component1 = (uint8_t)((opacity * rgba64->component1 + (1 - opacity) * options->background48.component1) / 257.0); rgba32_no_alpha.component2 = (uint8_t)((opacity * rgba64->component2 + (1 - opacity) * options->background48.component2) / 257.0); rgba32_no_alpha.component3 = (uint8_t)((opacity * rgba64->component3 + (1 - opacity) * options->background48.component3) / 257.0); } else { rgba32_no_alpha.component1 = (uint8_t)(rgba64->component1 / 257.0); rgba32_no_alpha.component2 = (uint8_t)(rgba64->component2 / 257.0); rgba32_no_alpha.component3 = (uint8_t)(rgba64->component3 / 257.0); } convert_rgba32_to_ycbcr24(&rgba32_no_alpha, scan+0, scan+1, scan+2); } sail-0.9.8/src/sail-manip/manip_utils.h000066400000000000000000000100161475535176100200120ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_MANIP_UTILS_H #define SAIL_MANIP_UTILS_H #include #include #include struct sail_conversion_options; struct sail_palette; SAIL_HIDDEN sail_status_t get_palette_rgba32(const struct sail_palette *palette, unsigned index, sail_rgba32_t *rgba32); SAIL_HIDDEN void spread_gray8_to_rgba32(uint8_t value, sail_rgba32_t *rgba32); SAIL_HIDDEN void spread_gray16_to_rgba32(uint16_t value, sail_rgba32_t *rgba32); SAIL_HIDDEN void spread_gray8_to_rgba64(uint8_t value, sail_rgba64_t *rgba64); SAIL_HIDDEN void spread_gray16_to_rgba64(uint16_t value, sail_rgba64_t *rgba64); SAIL_HIDDEN void fill_gray8_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_gray8_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_gray16_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint16_t *scan, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_gray16_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint16_t *scan, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgb24_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, int r, int g, int b, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgb24_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, int r, int g, int b, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgb48_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint16_t *scan, int r, int g, int b, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgb48_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint16_t *scan, int r, int g, int b, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgba32_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgba32_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgba64_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint16_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_rgba64_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint16_t *scan, int r, int g, int b, int a, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_ycbcr_pixel_from_uint8_values(const sail_rgba32_t *rgba32, uint8_t *scan, const struct sail_conversion_options *options); SAIL_HIDDEN void fill_ycbcr_pixel_from_uint16_values(const sail_rgba64_t *rgba64, uint8_t *scan, const struct sail_conversion_options *options); #endif sail-0.9.8/src/sail-manip/pkgconfig/000077500000000000000000000000001475535176100172665ustar00rootroot00000000000000sail-0.9.8/src/sail-manip/pkgconfig/sail-manip.pc.in000066400000000000000000000004651475535176100222560ustar00rootroot00000000000000prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@ libdir=@SAIL_LIBDIR_FOR_PKG_CONFIG@ includedir=@SAIL_INCLUDEDIR_FOR_PKG_CONFIG@/sail Name: sail-manip Description: SAIL image manipulation library Version: @VERSION@ Requires: sail-common Libs: -L${libdir} -lsail-manip Cflags: -I${includedir} sail-0.9.8/src/sail-manip/sail-manip.h000066400000000000000000000031441475535176100175240ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_MANIP_H #define SAIL_SAIL_MANIP_H /* Universal sail-manip include. */ #include #include #include #include #ifdef SAIL_BUILD #include #include #include #include #endif #endif sail-0.9.8/src/sail-manip/ycbcr.c000066400000000000000000000512521475535176100165720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "cmyk.h" /* * Pre-compiled for YCbCr -> RGB conversion like that: * * for (int i = 0; i < 256; i++) { * CR_R[i] = (int)round(1.40200 * (i - 128)); * CB_G[i] = (int)round(0.34414 * (i - 128)); * CR_G[i] = (int)round(0.71414 * (i - 128)); * CB_B[i] = (int)round(1.77200 * (i - 128)); * } * * See also https://en.wikipedia.org/wiki/YCbCr */ static const int16_t CR_R[256] = { -179, -178, -177, -175, -174, -172, -171, -170, -168, -167, -165, -164, -163, -161, -160, -158, -157, -156, -154, -153, -151, -150, -149, -147, -146, -144, -143, -142, -140, -139, -137, -136, -135, -133, -132, -130, -129, -128, -126, -125, -123, -122, -121, -119, -118, -116, -115, -114, -112, -111, -109, -108, -107, -105, -104, -102, -101, -100, -98, -97, -95, -94, -93, -91, -90, -88, -87, -86, -84, -83, -81, -80, -79, -77, -76, -74, -73, -72, -70, -69, -67, -66, -64, -63, -62, -60, -59, -57, -56, -55, -53, -52, -50, -49, -48, -46, -45, -43, -42, -41, -39, -38, -36, -35, -34, -32, -31, -29, -28, -27, -25, -24, -22, -21, -20, -18, -17, -15, -14, -13, -11, -10, -8, -7, -6, -4, -3, -1, 0, 1, 3, 4, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 20, 21, 22, 24, 25, 27, 28, 29, 31, 32, 34, 35, 36, 38, 39, 41, 42, 43, 45, 46, 48, 49, 50, 52, 53, 55, 56, 57, 59, 60, 62, 63, 64, 66, 67, 69, 70, 72, 73, 74, 76, 77, 79, 80, 81, 83, 84, 86, 87, 88, 90, 91, 93, 94, 95, 97, 98, 100, 101, 102, 104, 105, 107, 108, 109, 111, 112, 114, 115, 116, 118, 119, 121, 122, 123, 125, 126, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 142, 143, 144, 146, 147, 149, 150, 151, 153, 154, 156, 157, 158, 160, 161, 163, 164, 165, 167, 168, 170, 171, 172, 174, 175, 177, 178 }; static const int16_t CB_G[256] = { -44, -44, -43, -43, -43, -42, -42, -42, -41, -41, -41, -40, -40, -40, -39, -39, -39, -38, -38, -38, -37, -37, -36, -36, -36, -35, -35, -35, -34, -34, -34, -33, -33, -33, -32, -32, -32, -31, -31, -31, -30, -30, -30, -29, -29, -29, -28, -28, -28, -27, -27, -26, -26, -26, -25, -25, -25, -24, -24, -24, -23, -23, -23, -22, -22, -22, -21, -21, -21, -20, -20, -20, -19, -19, -19, -18, -18, -18, -17, -17, -17, -16, -16, -15, -15, -15, -14, -14, -14, -13, -13, -13, -12, -12, -12, -11, -11, -11, -10, -10, -10, -9, -9, -9, -8, -8, -8, -7, -7, -7, -6, -6, -6, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, 37, 37, 38, 38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, 42, 43, 43, 43, 44 }; static const int16_t CR_G[256] = { -91, -91, -90, -89, -89, -88, -87, -86, -86, -85, -84, -84, -83, -82, -81, -81, -80, -79, -79, -78, -77, -76, -76, -75, -74, -74, -73, -72, -71, -71, -70, -69, -69, -68, -67, -66, -66, -65, -64, -64, -63, -62, -61, -61, -60, -59, -59, -58, -57, -56, -56, -55, -54, -54, -53, -52, -51, -51, -50, -49, -49, -48, -47, -46, -46, -45, -44, -44, -43, -42, -41, -41, -40, -39, -39, -38, -37, -36, -36, -35, -34, -34, -33, -32, -31, -31, -30, -29, -29, -28, -27, -26, -26, -25, -24, -24, -23, -22, -21, -21, -20, -19, -19, -18, -17, -16, -16, -15, -14, -14, -13, -12, -11, -11, -10, -9, -9, -8, -7, -6, -6, -5, -4, -4, -3, -2, -1, -1, 0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 11, 12, 13, 14, 14, 15, 16, 16, 17, 18, 19, 19, 20, 21, 21, 22, 23, 24, 24, 25, 26, 26, 27, 28, 29, 29, 30, 31, 31, 32, 33, 34, 34, 35, 36, 36, 37, 38, 39, 39, 40, 41, 41, 42, 43, 44, 44, 45, 46, 46, 47, 48, 49, 49, 50, 51, 51, 52, 53, 54, 54, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61, 62, 63, 64, 64, 65, 66, 66, 67, 68, 69, 69, 70, 71, 71, 72, 73, 74, 74, 75, 76, 76, 77, 78, 79, 79, 80, 81, 81, 82, 83, 84, 84, 85, 86, 86, 87, 88, 89, 89, 90, 91 }; static const int16_t CB_B[256] = { -227, -225, -223, -222, -220, -218, -216, -214, -213, -211, -209, -207, -206, -204, -202, -200, -198, -197, -195, -193, -191, -190, -188, -186, -184, -183, -181, -179, -177, -175, -174, -172, -170, -168, -167, -165, -163, -161, -159, -158, -156, -154, -152, -151, -149, -147, -145, -144, -142, -140, -138, -136, -135, -133, -131, -129, -128, -126, -124, -122, -120, -119, -117, -115, -113, -112, -110, -108, -106, -105, -103, -101, -99, -97, -96, -94, -92, -90, -89, -87, -85, -83, -82, -80, -78, -76, -74, -73, -71, -69, -67, -66, -64, -62, -60, -58, -57, -55, -53, -51, -50, -48, -46, -44, -43, -41, -39, -37, -35, -34, -32, -30, -28, -27, -25, -23, -21, -19, -18, -16, -14, -12, -11, -9, -7, -5, -4, -2, 0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 18, 19, 21, 23, 25, 27, 28, 30, 32, 34, 35, 37, 39, 41, 43, 44, 46, 48, 50, 51, 53, 55, 57, 58, 60, 62, 64, 66, 67, 69, 71, 73, 74, 76, 78, 80, 82, 83, 85, 87, 89, 90, 92, 94, 96, 97, 99, 101, 103, 105, 106, 108, 110, 112, 113, 115, 117, 119, 120, 122, 124, 126, 128, 129, 131, 133, 135, 136, 138, 140, 142, 144, 145, 147, 149, 151, 152, 154, 156, 158, 159, 161, 163, 165, 167, 168, 170, 172, 174, 175, 177, 179, 181, 183, 184, 186, 188, 190, 191, 193, 195, 197, 198, 200, 202, 204, 206, 207, 209, 211, 213, 214, 216, 218, 220, 222, 223, 225 }; /* * Pre-compiled for RGB -> YCbCr conversion like that: * * for (int i = 0; i < 256; i++) { * R_Y[i] = (int)round(0.299000 * i); * G_Y[i] = (int)round(0.587000 * i); * B_Y[i] = (int)round(0.114000 * i); * R_CB[i] = (int)round(0.168736 * i); * G_CB[i] = (int)round(0.331264 * i); * B_CB[i] = (int)round(0.500000 * i); * R_CR[i] = (int)round(0.500000 * i); * G_CR[i] = (int)round(0.418688 * i); * B_CR[i] = (int)round(0.081312 * i); * } * * See also https://en.wikipedia.org/wiki/YCbCr */ static const uint8_t R_Y[256] = { 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 64, 64, 64, 65, 65, 65, 65, 66, 66, 66, 67, 67, 67, 68, 68, 68, 68, 69, 69, 69, 70, 70, 70, 71, 71, 71, 71, 72, 72, 72, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 76, 76, 76, }; static const uint8_t G_Y[256] = { 0, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11, 12, 12, 13, 14, 14, 15, 15, 16, 16, 17, 18, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 26, 27, 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37, 38, 38, 39, 39, 40, 41, 41, 42, 42, 43, 43, 44, 45, 45, 46, 46, 47, 48, 48, 49, 49, 50, 50, 51, 52, 52, 53, 53, 54, 55, 55, 56, 56, 57, 58, 58, 59, 59, 60, 60, 61, 62, 62, 63, 63, 64, 65, 65, 66, 66, 67, 68, 68, 69, 69, 70, 70, 71, 72, 72, 73, 73, 74, 75, 75, 76, 76, 77, 77, 78, 79, 79, 80, 80, 81, 82, 82, 83, 83, 84, 85, 85, 86, 86, 87, 87, 88, 89, 89, 90, 90, 91, 92, 92, 93, 93, 94, 95, 95, 96, 96, 97, 97, 98, 99, 99, 100, 100, 101, 102, 102, 103, 103, 104, 104, 105, 106, 106, 107, 107, 108, 109, 109, 110, 110, 111, 112, 112, 113, 113, 114, 114, 115, 116, 116, 117, 117, 118, 119, 119, 120, 120, 121, 122, 122, 123, 123, 124, 124, 125, 126, 126, 127, 127, 128, 129, 129, 130, 130, 131, 131, 132, 133, 133, 134, 134, 135, 136, 136, 137, 137, 138, 139, 139, 140, 140, 141, 141, 142, 143, 143, 144, 144, 145, 146, 146, 147, 147, 148, 149, 149, 150, }; static const uint8_t B_Y[256] = { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, }; static const uint8_t R_CB[256] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, }; static const uint8_t G_CB[256] = { 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 52, 52, 52, 53, 53, 53, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 64, 64, 64, 65, 65, 65, 66, 66, 66, 67, 67, 67, 68, 68, 68, 69, 69, 69, 70, 70, 70, 71, 71, 71, 72, 72, 72, 73, 73, 73, 74, 74, 74, 75, 75, 75, 76, 76, 76, 77, 77, 77, 78, 78, 78, 79, 79, 79, 80, 80, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 84, 84, 84, }; static const uint8_t B_CB[256] = { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, }; static const uint8_t R_CR[256] = { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, }; static const uint8_t G_CR[256] = { 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, 18, 18, 18, 19, 19, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 25, 25, 26, 26, 26, 27, 27, 28, 28, 28, 29, 29, 30, 30, 31, 31, 31, 32, 32, 33, 33, 33, 34, 34, 35, 35, 36, 36, 36, 37, 37, 38, 38, 39, 39, 39, 40, 40, 41, 41, 41, 42, 42, 43, 43, 44, 44, 44, 45, 45, 46, 46, 46, 47, 47, 48, 48, 49, 49, 49, 50, 50, 51, 51, 51, 52, 52, 53, 53, 54, 54, 54, 55, 55, 56, 56, 57, 57, 57, 58, 58, 59, 59, 59, 60, 60, 61, 61, 62, 62, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 67, 67, 67, 68, 68, 69, 69, 70, 70, 70, 71, 71, 72, 72, 72, 73, 73, 74, 74, 75, 75, 75, 76, 76, 77, 77, 77, 78, 78, 79, 79, 80, 80, 80, 81, 81, 82, 82, 82, 83, 83, 84, 84, 85, 85, 85, 86, 86, 87, 87, 88, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 93, 94, 94, 95, 95, 95, 96, 96, 97, 97, 98, 98, 98, 99, 99, 100, 100, 100, 101, 101, 102, 102, 103, 103, 103, 104, 104, 105, 105, 106, 106, 106, 107, }; static const uint8_t B_CR[256] = { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, }; void convert_ycbcr24_to_rgba32(uint8_t y, uint8_t cb, uint8_t cr, sail_rgba32_t *rgba32) { rgba32->component1 = (uint8_t)(SAIL_MAX(0, SAIL_MIN(255, y + CR_R[cr]))); rgba32->component2 = (uint8_t)(SAIL_MAX(0, SAIL_MIN(255, y - CB_G[cb] - CR_G[cr]))); rgba32->component3 = (uint8_t)(SAIL_MAX(0, SAIL_MIN(255, y + CB_B[cb]))); rgba32->component4 = 255; } void convert_rgba32_to_ycbcr24(const sail_rgba32_t *rgba32, uint8_t *y, uint8_t *cb, uint8_t *cr) { *y = (uint8_t)( 0 + R_Y[rgba32->component1] + G_Y[rgba32->component2] + B_Y[rgba32->component3]); *cb = (uint8_t)(128 - R_CB[rgba32->component1] - G_CB[rgba32->component2] + B_CB[rgba32->component3]); *cr = (uint8_t)(128 + R_CR[rgba32->component1] - G_CR[rgba32->component2] - B_CR[rgba32->component3]); } sail-0.9.8/src/sail-manip/ycbcr.h000066400000000000000000000030371475535176100165750ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_YCBCR_H #define SAIL_YCBCR_H #include #include #include SAIL_HIDDEN void convert_ycbcr24_to_rgba32(uint8_t y, uint8_t cb, uint8_t cr, sail_rgba32_t *rgba32); SAIL_HIDDEN void convert_rgba32_to_ycbcr24(const sail_rgba32_t *rgba32, uint8_t *y, uint8_t *cb, uint8_t *cr); #endif sail-0.9.8/src/sail-manip/ycck.c000066400000000000000000000206731475535176100164240ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "cmyk.h" #include "ycbcr.h" /* * Pre-compiled intermediate values for YCCK -> RGB conversion like that: * * for (int i = 0; i < 256; i++) { * CR_R[i] = (int)round(1.40200 * i); * CB_G[i] = (int)round(0.34414 * i); * CR_G[i] = (int)round(0.71414 * i); * CB_B[i] = (int)round(1.77200 * i); * } * * See also https://en.wikipedia.org/wiki/YCbCr */ static const uint16_t CR_R[256] = { 0, 1, 3, 4, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 20, 21, 22, 24, 25, 27, 28, 29, 31, 32, 34, 35, 36, 38, 39, 41, 42, 43, 45, 46, 48, 49, 50, 52, 53, 55, 56, 57, 59, 60, 62, 63, 64, 66, 67, 69, 70, 72, 73, 74, 76, 77, 79, 80, 81, 83, 84, 86, 87, 88, 90, 91, 93, 94, 95, 97, 98, 100, 101, 102, 104, 105, 107, 108, 109, 111, 112, 114, 115, 116, 118, 119, 121, 122, 123, 125, 126, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 142, 143, 144, 146, 147, 149, 150, 151, 153, 154, 156, 157, 158, 160, 161, 163, 164, 165, 167, 168, 170, 171, 172, 174, 175, 177, 178, 179, 181, 182, 184, 185, 186, 188, 189, 191, 192, 193, 195, 196, 198, 199, 200, 202, 203, 205, 206, 207, 209, 210, 212, 213, 215, 216, 217, 219, 220, 222, 223, 224, 226, 227, 229, 230, 231, 233, 234, 236, 237, 238, 240, 241, 243, 244, 245, 247, 248, 250, 251, 252, 254, 255, 257, 258, 259, 261, 262, 264, 265, 266, 268, 269, 271, 272, 273, 275, 276, 278, 279, 280, 282, 283, 285, 286, 287, 289, 290, 292, 293, 294, 296, 297, 299, 300, 301, 303, 304, 306, 307, 308, 310, 311, 313, 314, 315, 317, 318, 320, 321, 322, 324, 325, 327, 328, 329, 331, 332, 334, 335, 336, 338, 339, 341, 342, 343, 345, 346, 348, 349, 351, 352, 353, 355, 356, 358, }; static const uint16_t CB_G[256] = { 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, 37, 37, 38, 38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 52, 52, 52, 53, 53, 53, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 64, 64, 64, 65, 65, 65, 66, 66, 66, 67, 67, 67, 68, 68, 68, 69, 69, 70, 70, 70, 71, 71, 71, 72, 72, 72, 73, 73, 73, 74, 74, 74, 75, 75, 75, 76, 76, 76, 77, 77, 77, 78, 78, 78, 79, 79, 79, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 84, 84, 84, 85, 85, 85, 86, 86, 86, 87, 87, 87, 88, }; static const uint16_t CR_G[256] = { 0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 11, 12, 13, 14, 14, 15, 16, 16, 17, 18, 19, 19, 20, 21, 21, 22, 23, 24, 24, 25, 26, 26, 27, 28, 29, 29, 30, 31, 31, 32, 33, 34, 34, 35, 36, 36, 37, 38, 39, 39, 40, 41, 41, 42, 43, 44, 44, 45, 46, 46, 47, 48, 49, 49, 50, 51, 51, 52, 53, 54, 54, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61, 62, 63, 64, 64, 65, 66, 66, 67, 68, 69, 69, 70, 71, 71, 72, 73, 74, 74, 75, 76, 76, 77, 78, 79, 79, 80, 81, 81, 82, 83, 84, 84, 85, 86, 86, 87, 88, 89, 89, 90, 91, 91, 92, 93, 94, 94, 95, 96, 96, 97, 98, 99, 99, 100, 101, 101, 102, 103, 104, 104, 105, 106, 106, 107, 108, 109, 109, 110, 111, 111, 112, 113, 114, 114, 115, 116, 116, 117, 118, 119, 119, 120, 121, 121, 122, 123, 124, 124, 125, 126, 126, 127, 128, 129, 129, 130, 131, 131, 132, 133, 134, 134, 135, 136, 136, 137, 138, 139, 139, 140, 141, 141, 142, 143, 144, 144, 145, 146, 146, 147, 148, 149, 149, 150, 151, 151, 152, 153, 154, 154, 155, 156, 156, 157, 158, 159, 159, 160, 161, 161, 162, 163, 164, 164, 165, 166, 166, 167, 168, 169, 169, 170, 171, 171, 172, 173, 174, 174, 175, 176, 176, 177, 178, 179, 179, 180, 181, 181, 182, }; static const uint16_t CB_B[256] = { 0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 18, 19, 21, 23, 25, 27, 28, 30, 32, 34, 35, 37, 39, 41, 43, 44, 46, 48, 50, 51, 53, 55, 57, 58, 60, 62, 64, 66, 67, 69, 71, 73, 74, 76, 78, 80, 82, 83, 85, 87, 89, 90, 92, 94, 96, 97, 99, 101, 103, 105, 106, 108, 110, 112, 113, 115, 117, 119, 120, 122, 124, 126, 128, 129, 131, 133, 135, 136, 138, 140, 142, 144, 145, 147, 149, 151, 152, 154, 156, 158, 159, 161, 163, 165, 167, 168, 170, 172, 174, 175, 177, 179, 181, 183, 184, 186, 188, 190, 191, 193, 195, 197, 198, 200, 202, 204, 206, 207, 209, 211, 213, 214, 216, 218, 220, 222, 223, 225, 227, 229, 230, 232, 234, 236, 237, 239, 241, 243, 245, 246, 248, 250, 252, 253, 255, 257, 259, 260, 262, 264, 266, 268, 269, 271, 273, 275, 276, 278, 280, 282, 284, 285, 287, 289, 291, 292, 294, 296, 298, 299, 301, 303, 305, 307, 308, 310, 312, 314, 315, 317, 319, 321, 323, 324, 326, 328, 330, 331, 333, 335, 337, 338, 340, 342, 344, 346, 347, 349, 351, 353, 354, 356, 358, 360, 361, 363, 365, 367, 369, 370, 372, 374, 376, 377, 379, 381, 383, 385, 386, 388, 390, 392, 393, 395, 397, 399, 400, 402, 404, 406, 408, 409, 411, 413, 415, 416, 418, 420, 422, 424, 425, 427, 429, 431, 432, 434, 436, 438, 439, 441, 443, 445, 447, 448, 450, 452, }; void convert_ycck32_to_rgba32(uint8_t y, uint8_t cb, uint8_t cr, uint8_t k, sail_rgba32_t *rgba32) { rgba32->component1 = (uint8_t)(SAIL_MAX(0, SAIL_MIN(255, y + CR_R[cr] - 179.45600))); rgba32->component2 = (uint8_t)(SAIL_MAX(0, SAIL_MIN(255, y - CB_G[cb] - CR_G[cr] + 135.45984))); rgba32->component3 = (uint8_t)(SAIL_MAX(0, SAIL_MIN(255, y + CB_B[cb] - 226.81600))); rgba32->component4 = 255; rgba32->component1 = 255 - rgba32->component1; rgba32->component2 = 255 - rgba32->component2; rgba32->component3 = 255 - rgba32->component3; convert_cmyk32_to_rgba32(rgba32->component1, rgba32->component2, rgba32->component3, k, rgba32); } sail-0.9.8/src/sail-manip/ycck.h000066400000000000000000000026671475535176100164340ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_YCCK_H #define SAIL_YCCK_H #include #include #include SAIL_HIDDEN void convert_ycck32_to_rgba32(uint8_t y, uint8_t cb, uint8_t cr, uint8_t k, sail_rgba32_t *rgba32); #endif sail-0.9.8/src/sail/000077500000000000000000000000001475535176100142155ustar00rootroot00000000000000sail-0.9.8/src/sail/CMakeLists.txt000066400000000000000000000101731475535176100167570ustar00rootroot00000000000000if (SAIL_THREAD_SAFE) set(THREADING_SOURCES threading.h threading.c) endif() add_library(sail codec.c codec_bundle.h codec_bundle_node.c codec_bundle_node.h codec_bundle_node_private.c codec_bundle_node_private.h codec_bundle_private.c codec_bundle_private.h codec_info.c codec_info.h codec_info_private.c codec_info_private.h codec_layout.h codec_priority.h context.c context.h context_private.c context_private.h ini.c ini.h io_file.c io_file.h io_memory.c io_memory.h io_noop.c io_noop.h sail.h sail_advanced.c sail_advanced.h sail_deep_diver.c sail_deep_diver.h sail_junior.c sail_junior.h sail_private.c sail_private.h sail_technical_diver.c sail_technical_diver.h sail_technical_diver_private.c sail_technical_diver_private.h ${THREADING_SOURCES}) # Build a list of public headers to install # set(PUBLIC_HEADERS codec_bundle.h codec_bundle_node.h codec_info.h codec_priority.h context.h io_file.h io_memory.h io_noop.h sail.h sail_advanced.h sail_deep_diver.h sail_junior.h sail_technical_diver.h) set_target_properties(sail PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} PUBLIC_HEADER "${PUBLIC_HEADERS}") sail_enable_asan(TARGET sail) # setenv sail_enable_posix_source(TARGET sail VERSION 200112L) sail_enable_pch(TARGET sail HEADER sail.h) if (SAIL_INSTALL_PDB) sail_install_pdb(TARGET sail) endif() # Definitions, includes, link # target_include_directories(sail PUBLIC $) # Simplify the INIH parser target_compile_definitions(sail PRIVATE INI_ALLOW_MULTILINE=0 INI_ALLOW_INLINE_COMMENTS=0 INI_CUSTOM_ALLOCATOR=0 INI_STOP_ON_FIRST_ERROR=1 INI_MAX_LINE=500 INI_API=SAIL_HIDDEN) if (SAIL_COMBINE_CODECS) # Transfer user requirements # target_link_libraries(sail PRIVATE sail-codecs) endif() target_link_libraries(sail PUBLIC sail-common) if (SAIL_THREAD_SAFE) if (WIN32) sail_check_init_once_execute_once() elseif (UNIX) # pthread_once() find_package(Threads REQUIRED) target_link_libraries(sail PUBLIC ${CMAKE_THREAD_LIBS_INIT}) # pthread_mutexattr_settype() sail_enable_xopen_source(TARGET sail VERSION 500) target_link_libraries(sail PRIVATE dl) endif() endif() # pkg-config integration # get_target_property(VERSION sail VERSION) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/sail.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sail.pc" @ONLY) # Installation # install(TARGETS sail EXPORT SailTargets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail") # Install layouts for debugging codecs # install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/layout/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail/layout") # Install development packages # install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sail.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") if (SAIL_COMBINE_CODECS) set(SAIL_CODECS_FIND_DEPENDENCY "find_dependency(SailCodecs REQUIRED PATHS \${CMAKE_CURRENT_LIST_DIR})") endif() sail_install_cmake_config(TARGET "Sail" FOLDER "sail" VERSION "${VERSION}") sail-0.9.8/src/sail/cmake/000077500000000000000000000000001475535176100152755ustar00rootroot00000000000000sail-0.9.8/src/sail/cmake/SailConfig.cmake.in000066400000000000000000000003501475535176100207200ustar00rootroot00000000000000include(CMakeFindDependencyMacro) find_dependency(SailCommon REQUIRED PATHS ${CMAKE_CURRENT_LIST_DIR}) # sail depends on sail-codecs if it's enabled @SAIL_CODECS_FIND_DEPENDENCY@ include(${CMAKE_CURRENT_LIST_DIR}/SailTargets.cmake) sail-0.9.8/src/sail/codec.c000066400000000000000000000205761475535176100154500ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #ifdef SAIL_WIN32 #include #else #include #endif #include /* * Private functions. */ static sail_status_t alloc_codec(struct sail_codec **codec) { SAIL_CHECK_PTR(codec); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_codec), &ptr)); *codec = ptr; (*codec)->layout = 0; (*codec)->handle = NULL; (*codec)->v8 = NULL; return SAIL_OK; } #ifdef SAIL_COMBINE_CODECS static sail_status_t load_combined_codec(const struct sail_codec_info *codec_info, struct sail_codec *codec) { #ifdef SAIL_STATIC /* For example: [ "gif", "jpeg", "png" ]. */ extern const char * const sail_enabled_codecs[]; extern struct sail_codec_layout_v8 const sail_enabled_codecs_layouts[]; #else SAIL_IMPORT extern const char * const sail_enabled_codecs[]; SAIL_IMPORT extern struct sail_codec_layout_v8 const sail_enabled_codecs_layouts[]; #endif for (size_t i = 0; sail_enabled_codecs[i] != NULL; i++) { if (strcmp(sail_enabled_codecs[i], codec_info->name) == 0) { *codec->v8 = sail_enabled_codecs_layouts[i]; return SAIL_OK; } } SAIL_LOG_ERROR("Failed to find combined %s codec", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } #endif static sail_status_t load_codec_from_file(const struct sail_codec_info *codec_info, struct sail_codec *codec) { #ifdef SAIL_WIN32 HMODULE handle = LoadLibraryEx(codec_info->path, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32 | LOAD_LIBRARY_SEARCH_USER_DIRS); if (handle == NULL) { SAIL_LOG_ERROR("Failed to load '%s'. Error: 0x%X", codec_info->path, GetLastError()); } #else void *handle = dlopen(codec_info->path, RTLD_LAZY | RTLD_LOCAL); if (handle == NULL) { SAIL_LOG_ERROR("Failed to load '%s': %s", codec_info->path, dlerror()); } #endif if (handle == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_LOAD); } codec->handle = handle; #ifdef SAIL_WIN32 #define SAIL_RESOLVE_FUNC GetProcAddress #define SAIL_RESOLVE_LOG_ERROR(symbol) \ SAIL_LOG_ERROR("Failed to resolve '%s' in '%s'. Error: 0x%X", symbol, codec_info->path, GetLastError()) #else #define SAIL_RESOLVE_FUNC dlsym #define SAIL_RESOLVE_LOG_ERROR(symbol) \ SAIL_LOG_ERROR("Failed to resolve '%s' in '%s': %s", symbol, codec_info->path, dlerror()) #endif #define SAIL_RESOLVE(target, handle, symbol, name) \ { \ char *full_symbol_name; \ SAIL_TRY(sail_concat(&full_symbol_name, 3, #symbol, "_", name)); \ \ /* To avoid copying name, make the whole string lower-case. */ \ sail_to_lower(full_symbol_name); \ \ target = (symbol##_t)SAIL_RESOLVE_FUNC(handle, full_symbol_name); \ \ if (target == NULL) { \ SAIL_RESOLVE_LOG_ERROR(full_symbol_name); \ sail_free(full_symbol_name); \ SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_SYMBOL_RESOLVE); \ } \ \ sail_free(full_symbol_name); \ } do{} while(0) SAIL_RESOLVE(codec->v8->load_init, handle, sail_codec_load_init_v8, codec_info->name); SAIL_RESOLVE(codec->v8->load_seek_next_frame, handle, sail_codec_load_seek_next_frame_v8, codec_info->name); SAIL_RESOLVE(codec->v8->load_frame, handle, sail_codec_load_frame_v8, codec_info->name); SAIL_RESOLVE(codec->v8->load_finish, handle, sail_codec_load_finish_v8, codec_info->name); SAIL_RESOLVE(codec->v8->save_init, handle, sail_codec_save_init_v8, codec_info->name); SAIL_RESOLVE(codec->v8->save_seek_next_frame, handle, sail_codec_save_seek_next_frame_v8, codec_info->name); SAIL_RESOLVE(codec->v8->save_frame, handle, sail_codec_save_frame_v8, codec_info->name); SAIL_RESOLVE(codec->v8->save_finish, handle, sail_codec_save_finish_v8, codec_info->name); return SAIL_OK; } /* * Public functions. */ sail_status_t alloc_and_load_codec(const struct sail_codec_info *codec_info, struct sail_codec **codec) { SAIL_CHECK_PTR(codec_info); SAIL_CHECK_PTR(codec); if (codec_info->layout != SAIL_CODEC_LAYOUT_V8) { SAIL_LOG_ERROR("Failed to load %s codec with unsupported layout V%d (expected V%d)", codec_info->name, codec_info->layout, SAIL_CODEC_LAYOUT_V8); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_CODEC_LAYOUT); } /* * When SAIL_COMBINE_CODECS is ON, we can load built-in codecs with empty paths, * and client codecs with non-empty paths from disk. * * When SAIL_COMBINE_CODECS is OFF, we can load only codecs with non-empty paths from disk. */ #ifndef SAIL_COMBINE_CODECS if (codec_info->path == NULL) { SAIL_LOG_ERROR("Failed to load %s codec with empty path when SAIL_COMBINE_CODECS is disabled", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } #endif const bool fetch_combined_codec = codec_info->path == NULL; struct sail_codec *codec_local; SAIL_TRY(alloc_codec(&codec_local)); codec_local->layout = codec_info->layout; if (fetch_combined_codec) { SAIL_LOG_DEBUG("Fetching V%d functions for %s codec", codec_info->layout, codec_info->name); } else { SAIL_LOG_DEBUG("Loading %s codec from %s", codec_info->name, codec_info->path); } void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(struct sail_codec_layout_v8), &ptr), /* cleanup */ destroy_codec(codec_local)); codec_local->v8 = ptr; #ifdef SAIL_COMBINE_CODECS if (fetch_combined_codec) { SAIL_TRY_OR_CLEANUP(load_combined_codec(codec_info, codec_local), /* cleanup */ destroy_codec(codec_local)); } else { SAIL_TRY_OR_CLEANUP(load_codec_from_file(codec_info, codec_local), /* cleanup */ destroy_codec(codec_local)); } #else SAIL_TRY_OR_CLEANUP(load_codec_from_file(codec_info, codec_local), /* cleanup */ destroy_codec(codec_local)); #endif *codec = codec_local; return SAIL_OK; } void destroy_codec(struct sail_codec *codec) { if (codec == NULL) { return; } if (codec->handle != NULL) { #ifdef SAIL_WIN32 FreeLibrary((HMODULE)codec->handle); #else dlclose(codec->handle); #endif } sail_free(codec->v8); sail_free(codec); } sail-0.9.8/src/sail/codec.h000066400000000000000000000041301475535176100154410ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_H #define SAIL_CODEC_H #include #include #include struct sail_codec_info; struct sail_codec_layout_v8; /* * SAIL codec. */ struct sail_codec { /* Layout version. */ int layout; /* System-specific library handle. */ void *handle; /* Codec interface. */ struct sail_codec_layout_v8 *v8; }; typedef struct sail_codec sail_codec_t; /* * Loads the specified codec by its info and saves its handle and exported interfaces into * the specified codec instance. * * Returns SAIL_OK on success. */ SAIL_HIDDEN sail_status_t alloc_and_load_codec(const struct sail_codec_info *codec_info, struct sail_codec **codec); /* * Destroys the specified codec and all its internal memory buffers. * Does nothing if the codec is NULL. */ SAIL_HIDDEN void destroy_codec(struct sail_codec *codec); #endif sail-0.9.8/src/sail/codec_bundle.h000066400000000000000000000033231475535176100167750ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_BUNDLE_H #define SAIL_CODEC_BUNDLE_H #include #ifdef __cplusplus extern "C" { #endif struct sail_codec_info; struct sail_codec; /* * A structure representing a codec information and a codec interface (functions). */ struct sail_codec_bundle { /* Codec information. */ struct sail_codec_info *codec_info; /* Codec instance. */ struct sail_codec *codec; }; typedef struct sail_codec_bundle sail_codec_bundle_t; /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/codec_bundle_node.c000066400000000000000000000027371475535176100200050ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include const struct sail_codec_bundle_node* sail_codec_bundle_list(void) { struct sail_context *context; SAIL_TRY_OR_EXECUTE(fetch_global_context_guarded(&context), /* on error */ return NULL); return context->codec_bundle_node; } sail-0.9.8/src/sail/codec_bundle_node.h000066400000000000000000000041351475535176100200040ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_BUNDLE_NODE_H #define SAIL_CODEC_BUNDLE_NODE_H #include #ifdef __cplusplus extern "C" { #endif struct sail_codec_bundle; /* * A structure representing a codec information linked list. */ struct sail_codec_bundle_node { /* Codec bundle. */ struct sail_codec_bundle *codec_bundle; struct sail_codec_bundle_node *next; }; typedef struct sail_codec_bundle_node sail_codec_bundle_node_t; /* * Returns a linked list of found codec info nodes. Use it to determine the list of possible image formats, * file extensions, and mime types that could be hypothetically loaded or saved by SAIL. * * Returns a pointer to the first codec info node or NULL when no SAIL codecs were found. * Use sail_codec_bundle_node.next to iterate. */ SAIL_EXPORT const struct sail_codec_bundle_node* sail_codec_bundle_list(void); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/codec_bundle_node_private.c000066400000000000000000000037441475535176100215360ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include sail_status_t alloc_codec_bundle_node(struct sail_codec_bundle_node **codec_bundle_node) { SAIL_TRY(sail_private_alloc_linked_list_node((struct linked_list_node **)codec_bundle_node)); return SAIL_OK; } void destroy_codec_bundle_node(struct sail_codec_bundle_node *codec_bundle_node) { sail_private_destroy_linked_list_node((struct linked_list_node *)codec_bundle_node, (linked_list_value_deallocator_t)&destroy_codec_bundle); } void destroy_codec_bundle_node_chain(struct sail_codec_bundle_node *codec_bundle_node) { sail_private_destroy_linked_list_node_chain((struct linked_list_node *)codec_bundle_node, (linked_list_value_deallocator_t)&destroy_codec_bundle); } sail-0.9.8/src/sail/codec_bundle_node_private.h000066400000000000000000000040761475535176100215420ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_BUNDLE_NODE_PRIVATE_H #define SAIL_CODEC_BUNDLE_NODE_PRIVATE_H #include #ifdef __cplusplus extern "C" { #endif struct sail_codec_bundle_node; /* * Allocates a new codec bundle node. * * Returns SAIL_OK on success. */ SAIL_HIDDEN sail_status_t alloc_codec_bundle_node(struct sail_codec_bundle_node **codec_bundle_node); /* * Destroys the specified codec bundle node and all its internal allocated memory buffers. */ SAIL_HIDDEN void destroy_codec_bundle_node(struct sail_codec_bundle_node *codec_bundle_node); /* * Destroys the specified codec bundle node and all its internal allocated memory buffers. * Repeats the destruction procedure recursively for the next stored pointer. */ SAIL_HIDDEN void destroy_codec_bundle_node_chain(struct sail_codec_bundle_node *codec_bundle_node); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/codec_bundle_private.c000066400000000000000000000034231475535176100205230ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include sail_status_t alloc_codec_bundle(struct sail_codec_bundle **codec_bundle) { SAIL_CHECK_PTR(codec_bundle); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_codec_bundle), &ptr)); *codec_bundle = ptr; (*codec_bundle)->codec_info = NULL; (*codec_bundle)->codec = NULL; return SAIL_OK; } void destroy_codec_bundle(struct sail_codec_bundle *codec_bundle) { if (codec_bundle == NULL) { return; } destroy_codec_info(codec_bundle->codec_info); destroy_codec(codec_bundle->codec); sail_free(codec_bundle); } sail-0.9.8/src/sail/codec_bundle_private.h000066400000000000000000000033471475535176100205350ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_BUNDLE_PRIVATE_H #define SAIL_CODEC_BUNDLE_PRIVATE_H #include #include struct sail_codec_bundle; /* * Private codec bundle functions. */ /* * Allocates a new codec bundle. * * Returns SAIL_OK on success. */ SAIL_HIDDEN sail_status_t alloc_codec_bundle(struct sail_codec_bundle **codec_bundle); /* * Destroys the specified codec bundle and all its internal allocated memory buffers. */ SAIL_HIDDEN void destroy_codec_bundle(struct sail_codec_bundle *codec_bundle); #endif sail-0.9.8/src/sail/codec_info.c000066400000000000000000000240011475535176100164460ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include sail_status_t sail_codec_info_from_path(const char *path, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(path); SAIL_CHECK_PTR(codec_info); SAIL_LOG_DEBUG("Finding codec info for path '%s'", path); const char *file_name; /* * Consider only the file name component: * - For "/home/rob/1.jpeg" we check for dots starting from "1.jpeg". * - For "scr.png" we check for dots starting from the beginning of the path. */ const char *path_separator = strrchr(path, '/'); if (path_separator == NULL) { path_separator = strrchr(path, '\\'); if (path_separator == NULL) { file_name = path; } else { file_name = path_separator + 1; } } else { file_name = path_separator + 1; } const char *dot = strrchr(file_name, '.'); if (dot == NULL || *(dot+1) == '\0') { SAIL_LOG_ERROR("Path '%s' has no extension", path); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } SAIL_TRY(sail_codec_info_from_extension(dot+1, codec_info)); return SAIL_OK; } sail_status_t sail_codec_info_by_magic_number_from_path(const char *path, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(path); SAIL_CHECK_PTR(codec_info); struct sail_io *io; SAIL_TRY(sail_alloc_io_read_file(path, &io)); SAIL_TRY_OR_CLEANUP(sail_codec_info_by_magic_number_from_io(io, codec_info), /* cleanup */ sail_destroy_io(io)); sail_destroy_io(io); return SAIL_OK; } sail_status_t sail_codec_info_by_magic_number_from_memory(const void *buffer, size_t buffer_size, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(buffer); SAIL_CHECK_PTR(codec_info); struct sail_io *io; SAIL_TRY(sail_alloc_io_read_memory(buffer, buffer_size, &io)); SAIL_TRY_OR_CLEANUP(sail_codec_info_by_magic_number_from_io(io, codec_info), /* cleanup */ sail_destroy_io(io)); sail_destroy_io(io); return SAIL_OK; } sail_status_t sail_codec_info_by_magic_number_from_io(struct sail_io *io, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(codec_info); struct sail_context *context; SAIL_TRY(fetch_global_context_guarded(&context)); size_t saved_offset; SAIL_TRY(io->tell(io->stream, &saved_offset)); /* Read the image magic. */ unsigned char buffer[SAIL_MAGIC_BUFFER_SIZE]; SAIL_TRY(io->strict_read(io->stream, buffer, sizeof(buffer))); /* Seek back. */ SAIL_TRY(io->seek(io->stream, (long)saved_offset, SEEK_SET)); /* \xFF\xDD => "FF DD" + string terminator. */ char hex_numbers[sizeof(buffer) * 3 + 1]; /* Debug print. */ { char *hex_numbers_ptr = hex_numbers; for (size_t i = 0; i < sizeof(buffer); i++, hex_numbers_ptr += 3) { #ifdef _MSC_VER sprintf_s(hex_numbers_ptr, 4, "%02x ", buffer[i]); #else snprintf(hex_numbers_ptr, 4, "%02x ", buffer[i]); #endif } *(hex_numbers_ptr-1) = '\0'; SAIL_LOG_DEBUG("Read magic number: '%s'", hex_numbers); } /* Find the codec info. */ for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { const struct sail_codec_bundle *codec_bundle = codec_bundle_node->codec_bundle; const struct sail_string_node *magic_number_node = codec_bundle->codec_info->magic_number_node; /* * Split "ab cd" into bytes and compare individual bytes against the read magic number. * Additionally, we support "??" pattern matching any byte. For example, "?? ?? 66 74" * matches both "00 20 66 74" and "20 30 66 74". */ while (magic_number_node != NULL) { size_t buffer_index = 0; const char *magic = magic_number_node->string; char hex_byte[3]; int bytes_consumed = 0; bool mismatch = false; SAIL_LOG_TRACE("Check against %s magic '%s'", codec_bundle->codec_info->name, magic); #ifdef _MSC_VER while (buffer_index < sizeof(buffer) && sscanf_s(magic, "%2s%n", hex_byte, (unsigned)sizeof(hex_byte), &bytes_consumed) == 1) { #else while (buffer_index < sizeof(buffer) && sscanf(magic, "%2s%n", hex_byte, &bytes_consumed) == 1) { #endif if (hex_byte[0] == '?') { SAIL_LOG_TRACE("Skipping ? character"); } else { unsigned byte = 0; #ifdef _MSC_VER if (sscanf_s(hex_byte, "%02x", &byte) != 1 || byte != buffer[buffer_index]) { #else if (sscanf(hex_byte, "%02x", &byte) != 1 || byte != buffer[buffer_index]) { #endif SAIL_LOG_TRACE("Character mismatch %02x != %02x", buffer[buffer_index], byte); mismatch = true; break; } } magic += bytes_consumed; buffer_index++; } if (mismatch) { magic_number_node = magic_number_node->next; } else { *codec_info = codec_bundle->codec_info; SAIL_LOG_DEBUG("Found codec info: %s", (*codec_info)->name); return SAIL_OK; } } } SAIL_LOG_ERROR("Magic number '%s' is not supported by any codec", hex_numbers); SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } sail_status_t sail_codec_info_from_extension(const char *extension, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(extension); SAIL_CHECK_PTR(codec_info); SAIL_LOG_DEBUG("Finding codec info for extension '%s'", extension); struct sail_context *context; SAIL_TRY(fetch_global_context_guarded(&context)); char *extension_copy; SAIL_TRY(sail_strdup(extension, &extension_copy)); /* Will compare in lower case. */ sail_to_lower(extension_copy); for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { const struct sail_codec_bundle *codec_bundle = codec_bundle_node->codec_bundle; const struct sail_string_node *extension_node = codec_bundle->codec_info->extension_node; while (extension_node != NULL) { SAIL_LOG_TRACE("Check against %s extension '%s'", codec_bundle->codec_info->name, extension_node->string); if (strcmp(extension_node->string, extension_copy) == 0) { sail_free(extension_copy); *codec_info = codec_bundle->codec_info; SAIL_LOG_DEBUG("Found codec info: %s", (*codec_info)->name); return SAIL_OK; } else { SAIL_LOG_TRACE("Extension mismatch '%s' != '%s'", extension_copy, extension_node->string); } extension_node = extension_node->next; } } sail_free(extension_copy); SAIL_LOG_ERROR("Extension %s is not supported by any codec", extension); SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } sail_status_t sail_codec_info_from_mime_type(const char *mime_type, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(mime_type); SAIL_CHECK_PTR(codec_info); SAIL_LOG_DEBUG("Finding codec info for mime type '%s'", mime_type); struct sail_context *context; SAIL_TRY(fetch_global_context_guarded(&context)); char *mime_type_copy; SAIL_TRY(sail_strdup(mime_type, &mime_type_copy)); /* Will compare in lower case. */ sail_to_lower(mime_type_copy); for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { const struct sail_codec_bundle *codec_bundle = codec_bundle_node->codec_bundle; const struct sail_string_node *mime_type_node = codec_bundle->codec_info->mime_type_node; while (mime_type_node != NULL) { SAIL_LOG_TRACE("Check against %s MIME type '%s'", codec_bundle->codec_info->name, mime_type_node->string); if (strcmp(mime_type_node->string, mime_type_copy) == 0) { sail_free(mime_type_copy); *codec_info = codec_bundle->codec_info; SAIL_LOG_DEBUG("Found codec info: %s", (*codec_info)->name); return SAIL_OK; } else { SAIL_LOG_TRACE("MIME type mismatch '%s' != '%s'", mime_type_copy, mime_type_node->string); } mime_type_node = mime_type_node->next; } codec_bundle_node = codec_bundle_node->next; } sail_free(mime_type_copy); SAIL_LOG_ERROR("MIME type %s is not supported by any codec", mime_type); SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } sail-0.9.8/src/sail/codec_info.h000066400000000000000000000175761475535176100164760ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_INFO_H #define SAIL_CODEC_INFO_H #include /* size_t */ #include #include #include #ifdef __cplusplus extern "C" { #endif struct sail_io; struct sail_load_features; struct sail_save_features; struct sail_string_node; /* * A structure representing codec information. */ struct sail_codec_info { /* Full path to the codec. NULL when SAIL_COMBINE_CODECS is ON. */ char *path; /* * The codec loader will use the codec's layout version to correctly handle the codec. * Unsupported codec layout versions will be reported. This field must be the very first key * in a codec information file. */ int layout; /* * Codec priority. SAIL uses this property to sort the enumerated codecs by priority * to speed up search of popular image formats by functions like sail_codec_info_from_path(). */ enum SailCodecPriority priority; /* Codec version. For example: "1.5.2". */ char *version; /* Short codec name in upper case. For example: "JPEG". */ char *name; /* Codec description. For example: "Joint Photographic Experts Group". */ char *description; /* * A linked list of supported magic numbers. It can be NULL. For example: "FF D8" for JPEGs. * See https://en.wikipedia.org/wiki/File_format#Magic_number. */ struct sail_string_node *magic_number_node; /* A linked list of supported file extensions. It can be NULL. For example: "jpg", "jpeg". */ struct sail_string_node *extension_node; /* A linked list of supported mime types. It can be NULL. For example: "image/jpeg". */ struct sail_string_node *mime_type_node; /* Load features of the codec. */ struct sail_load_features *load_features; /* Save features of the codec. */ struct sail_save_features *save_features; }; typedef struct sail_codec_info sail_codec_info_t; /* * Finds a first codec info object that supports loading or saving the specified file path by its file extension. * For example: "/test.jpg". The path might not exist. * * The assigned codec info MUST NOT be destroyed. It is a pointer to an internal data structure. * * Typical usage: sail_codec_info_from_path() -> * sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Or: sail_codec_info_from_path() -> * sail_start_saving_into_file() -> * sail_load_next_frame() -> * sail_stop_saving(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_codec_info_from_path(const char *path, const struct sail_codec_info **codec_info); /* * Finds a first codec info object that supports the magic number read from the specified file. * The comparison algorithm is case insensitive. * * The assigned codec info MUST NOT be destroyed. It is a pointer to an internal data structure. * * Typical usage: sail_codec_info_by_magic_number_from_path() -> * sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_codec_info_by_magic_number_from_path(const char *path, const struct sail_codec_info **codec_info); /* * Finds a first codec info object that supports the magic number read from the specified memory buffer. * The comparison algorithm is case insensitive. * * The assigned codec info MUST NOT be destroyed. It is a pointer to an internal data structure. * * Typical usage: sail_codec_info_by_magic_number_from_memory() -> * sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_codec_info_by_magic_number_from_memory(const void *buffer, size_t buffer_size, const struct sail_codec_info **codec_info); /* * Finds a first codec info object that supports the magic number read from the specified I/O data source. * The comparison algorithm is case insensitive. After loading a magic number, this function rewinds the I/O * cursor position back to the previous position. That's why the I/O source must be seekable. * * Not all codecs support magic numbers. That's why it's not guaranteed that this function * returns a valid codec info object. * * The assigned codec info MUST NOT be destroyed. It is a pointer to an internal data structure. * * Typical usage: sail_codec_info_by_magic_number_from_io() -> * sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_codec_info_by_magic_number_from_io(struct sail_io *io, const struct sail_codec_info **codec_info); /* * Finds a first codec info object that supports the specified file extension. * The comparison algorithm is case insensitive. For example: "jpg". * * The assigned codec info MUST NOT be destroyed. It is a pointer to an internal data structure. * * Typical usage: sail_codec_info_from_extension() -> * sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Or: sail_codec_info_from_extension() -> * sail_start_saving_into_file() -> * sail_load_next_frame() -> * sail_stop_saving(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_codec_info_from_extension(const char *extension, const struct sail_codec_info **codec_info); /* * Finds a first codec info object that supports the specified mime type. * The comparison algorithm is case insensitive. For example: "image/jpeg". * * The assigned codec info MUST NOT be destroyed. It is a pointer to an internal data structure. * * Typical usage: sail_codec_info_from_mime_type() -> * sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Or: sail_codec_info_from_mime_type() -> * sail_start_saving_into_file() -> * sail_load_next_frame() -> * sail_stop_saving(). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_codec_info_from_mime_type(const char *mime_type, const struct sail_codec_info **codec_info); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/codec_info_private.c000066400000000000000000000451761475535176100202200ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include /* * Private functions. */ static int pixel_format_from_string(const char *str) { return sail_pixel_format_from_string(str); } static int compression_from_string(const char *str) { return sail_compression_from_string(str); } static sail_status_t parse_serialized_ints(const char *value, int **target, unsigned *length, int (*converter)(const char *str)) { SAIL_CHECK_PTR(value); SAIL_CHECK_PTR(target); SAIL_CHECK_PTR(length); struct sail_string_node *string_node; SAIL_TRY(sail_split_into_string_node_chain(value, &string_node)); *length = 0; for (struct sail_string_node *node = string_node; node != NULL; node = node->next) { (*length)++; } if (*length > 0) { void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc((size_t)*length * sizeof(int), &ptr), /* cleanup */ sail_destroy_string_node_chain(string_node)); *target = ptr; int i = 0; for (struct sail_string_node *node = string_node; node != NULL; node = node->next) { *(*target + i++) = converter(node->string); } } sail_destroy_string_node_chain(string_node); return SAIL_OK; } static int codec_feature_from_string(const char *str) { return sail_codec_feature_from_string(str); } static sail_status_t parse_flags(const char *value, int *features, int (*converter)(const char *str)) { SAIL_CHECK_PTR(value); SAIL_CHECK_PTR(features); struct sail_string_node *string_node; SAIL_TRY(sail_split_into_string_node_chain(value, &string_node)); *features = 0; for (struct sail_string_node *node = string_node; node != NULL; node = node->next) { *features |= converter(node->string); } sail_destroy_string_node_chain(string_node); return SAIL_OK; } struct init_data { struct sail_codec_info *codec_info; }; static sail_status_t codec_priority_from_string(const char *str, enum SailCodecPriority *result) { switch (sail_string_hash(str)) { case UINT64_C(229425771102513): *result = SAIL_CODEC_PRIORITY_HIGHEST; return SAIL_OK; case UINT64_C(6384110277): *result = SAIL_CODEC_PRIORITY_HIGH; return SAIL_OK; case UINT64_C(6952486921094): *result = SAIL_CODEC_PRIORITY_MEDIUM; return SAIL_OK; case UINT64_C(193462455): *result = SAIL_CODEC_PRIORITY_LOW; return SAIL_OK; case UINT64_C(6952460323299): *result = SAIL_CODEC_PRIORITY_LOWEST; return SAIL_OK; default: return SAIL_ERROR_UNSUPPORTED_CODEC_PRIORITY; } } static sail_status_t inih_handler_sail_error(void *data, const char *section, const char *name, const char *value) { /* Silently ignore empty values. */ if (strlen(value) == 0) { return SAIL_OK; } struct init_data *init_data = (struct init_data *)data; struct sail_codec_info *codec_info = init_data->codec_info; if (strcmp(section, "codec") == 0) { if (strcmp(name, "layout") == 0) { codec_info->layout = atoi(value); } else if (strcmp(name, "version") == 0) { SAIL_TRY(sail_strdup(value, &codec_info->version)); } else if (strcmp(name, "priority") == 0) { SAIL_TRY_OR_CLEANUP(codec_priority_from_string(value, &codec_info->priority), /* cleanup */ SAIL_LOG_ERROR("Failed to parse codec priority: '%s'", value)); } else if (strcmp(name, "name") == 0) { SAIL_TRY(sail_strdup(value, &codec_info->name)); } else if (strcmp(name, "description") == 0) { SAIL_TRY(sail_strdup(value, &codec_info->description)); } else if (strcmp(name, "magic-numbers") == 0) { SAIL_TRY(sail_split_into_string_node_chain(value, &codec_info->magic_number_node)); for (struct sail_string_node *node = codec_info->magic_number_node; node != NULL; node = node->next) { if (strlen(node->string) > SAIL_MAGIC_BUFFER_SIZE * 3 - 1) { SAIL_LOG_ERROR("Magic number '%s' is too long. Magic numbers for the '%s' codec are disabled", node->string, codec_info->name); sail_destroy_string_node_chain(codec_info->magic_number_node); codec_info->magic_number_node = NULL; break; } sail_to_lower(node->string); } } else if (strcmp(name, "extensions") == 0) { SAIL_TRY(sail_split_into_string_node_chain(value, &codec_info->extension_node)); for (struct sail_string_node *node = codec_info->extension_node; node != NULL; node = node->next) { sail_to_lower(node->string); } } else if (strcmp(name, "mime-types") == 0) { SAIL_TRY(sail_split_into_string_node_chain(value, &codec_info->mime_type_node)); for (struct sail_string_node *node = codec_info->mime_type_node; node != NULL; node = node->next) { sail_to_lower(node->string); } } else { SAIL_LOG_ERROR("Unsupported codec info key '%s' in [%s]", name, section); SAIL_LOG_AND_RETURN(SAIL_ERROR_PARSE_FILE); } } else if (strcmp(section, "load-features") == 0) { if (strcmp(name, "features") == 0) { SAIL_TRY_OR_CLEANUP(parse_flags(value, &codec_info->load_features->features, codec_feature_from_string), /* cleanup */ SAIL_LOG_ERROR("Failed to parse codec features: '%s'", value)); } else if (strcmp(name, "tuning") == 0) { SAIL_TRY_OR_CLEANUP(sail_split_into_string_node_chain(value, &codec_info->load_features->tuning), /* cleanup */ SAIL_LOG_ERROR("Failed to parse codec tuning: '%s'", value)); } else { SAIL_LOG_ERROR("Unsupported codec info key '%s' in [%s]", name, section); SAIL_LOG_AND_RETURN(SAIL_ERROR_PARSE_FILE); } } else if (strcmp(section, "save-features") == 0) { if (strcmp(name, "features") == 0) { SAIL_TRY_OR_CLEANUP(parse_flags(value, &codec_info->save_features->features, codec_feature_from_string), /* cleanup */ SAIL_LOG_ERROR("Failed to parse codec features: '%s'", value)); } else if (strcmp(name, "pixel-formats") == 0) { SAIL_TRY_OR_CLEANUP(parse_serialized_ints(value, (int **)&codec_info->save_features->pixel_formats, &codec_info->save_features->pixel_formats_length, pixel_format_from_string), /* cleanup */ SAIL_LOG_ERROR("Failed to parse output pixel formats: '%s'", value)); } else if (strcmp(name, "compressions") == 0) { SAIL_TRY_OR_CLEANUP(parse_serialized_ints(value, (int **)&codec_info->save_features->compressions, &codec_info->save_features->compressions_length, compression_from_string), /* cleanup */ SAIL_LOG_ERROR("Failed to parse compressions: '%s'", value)); } else if (strcmp(name, "default-compression") == 0) { codec_info->save_features->default_compression = sail_compression_from_string(value); } else if (strcmp(name, "compression-level-min") == 0) { if (codec_info->save_features->compression_level == NULL) { SAIL_TRY(sail_alloc_compression_level(&codec_info->save_features->compression_level)); } codec_info->save_features->compression_level->min_level = atof(value); } else if (strcmp(name, "compression-level-max") == 0) { if (codec_info->save_features->compression_level == NULL) { SAIL_TRY(sail_alloc_compression_level(&codec_info->save_features->compression_level)); } codec_info->save_features->compression_level->max_level = atof(value); } else if (strcmp(name, "compression-level-default") == 0) { if (codec_info->save_features->compression_level == NULL) { SAIL_TRY(sail_alloc_compression_level(&codec_info->save_features->compression_level)); } codec_info->save_features->compression_level->default_level = atof(value); } else if (strcmp(name, "compression-level-step") == 0) { if (codec_info->save_features->compression_level == NULL) { SAIL_TRY(sail_alloc_compression_level(&codec_info->save_features->compression_level)); } codec_info->save_features->compression_level->step = atof(value); } else if (strcmp(name, "tuning") == 0) { SAIL_TRY_OR_CLEANUP(sail_split_into_string_node_chain(value, &codec_info->save_features->tuning), /* cleanup */ SAIL_LOG_ERROR("Failed to parse codec tuning: '%s'", value)); } else { SAIL_LOG_ERROR("Unsupported codec info key '%s' in [%s]", name, section); SAIL_LOG_AND_RETURN(SAIL_ERROR_PARSE_FILE); } } else { SAIL_LOG_ERROR("Unsupported codec info section '%s'", section); SAIL_LOG_AND_RETURN(SAIL_ERROR_PARSE_FILE); } return SAIL_OK; } /* Returns 1 on success. */ static int inih_handler(void *data, const char *section, const char *name, const char *value) { SAIL_TRY_OR_EXECUTE(inih_handler_sail_error(data, section, name, value), /* on error */ return 0); return 1; } static sail_status_t check_codec_info(const struct sail_codec_info *codec_info) { if (codec_info->name == NULL || strlen(codec_info->name) == 0) { SAIL_LOG_ERROR("Codec validation error: the codec currently being parsed has empty name"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } for (size_t i = 0; i < strlen(codec_info->name); i++) { if (!isupper(codec_info->name[i]) && !isdigit(codec_info->name[i])) { SAIL_LOG_ERROR("Codec validation error: %s codec has invalid name. Only upper-case letters and numbers are allowed", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } } if (codec_info->version == NULL || strlen(codec_info->version) == 0) { SAIL_LOG_ERROR("Codec validation error: %s codec has empty version", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } if (codec_info->description == NULL || strlen(codec_info->description) == 0) { SAIL_LOG_ERROR("Codec validation error: %s codec has empty description", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } if (codec_info->magic_number_node == NULL && codec_info->extension_node == NULL && codec_info->mime_type_node == NULL) { SAIL_LOG_ERROR("Codec validation error: %s codec has no identification method (magic number or extension or mime type)", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } const struct sail_save_features *save_features = codec_info->save_features; /* Check save features. */ if ((save_features->features & SAIL_CODEC_FEATURE_STATIC || save_features->features & SAIL_CODEC_FEATURE_ANIMATED || save_features->features & SAIL_CODEC_FEATURE_MULTI_PAGED) && (save_features->pixel_formats == NULL || save_features->pixel_formats_length == 0)) { SAIL_LOG_ERROR("Codec validation error: %s codec is able to save images, but output pixel formats are not specified", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } /* Compressions must exist if we're able to save this image format.*/ if (save_features->features != 0 && (save_features->compressions == NULL || save_features->compressions_length == 0)) { SAIL_LOG_ERROR("Codec validation error: %s codec has empty compressions list", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } /* Compression levels and types are mutually exclusive.*/ if (save_features->compressions_length > 1 && save_features->compression_level != NULL && (save_features->compression_level->min_level != 0 || save_features->compression_level->max_level != 0)) { SAIL_LOG_ERROR("Codec validation error: %s codec has more than two compression types and non-zero compression levels which is unsupported", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } for (unsigned i = 0; i < save_features->compressions_length; i++) { if (save_features->compressions[i] == SAIL_COMPRESSION_UNKNOWN) { SAIL_LOG_ERROR("Codec validation error: %s codec has UNKNOWN compression", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } } if (save_features->compressions_length > 0 && save_features->default_compression == SAIL_COMPRESSION_UNKNOWN) { SAIL_LOG_ERROR("Codec validation error: %s codec has UNKNOWN default compression", codec_info->name); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } if (codec_info->save_features->compression_level != NULL) { if (codec_info->save_features->compression_level->min_level > codec_info->save_features->compression_level->max_level) { SAIL_LOG_ERROR("Codec validation error: %s codec has incorrect compression levels of min(%.1f), max(%.1f)", codec_info->name, codec_info->save_features->compression_level->min_level, codec_info->save_features->compression_level->max_level); SAIL_LOG_AND_RETURN(SAIL_ERROR_INCOMPLETE_CODEC_INFO); } } return SAIL_OK; } static sail_status_t alloc_codec_info(struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(codec_info); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_codec_info), &ptr)); *codec_info = ptr; (*codec_info)->path = NULL; (*codec_info)->layout = 0; (*codec_info)->version = NULL; (*codec_info)->name = NULL; (*codec_info)->description = NULL; (*codec_info)->magic_number_node = NULL; (*codec_info)->extension_node = NULL; (*codec_info)->mime_type_node = NULL; (*codec_info)->load_features = NULL; (*codec_info)->save_features = NULL; return SAIL_OK; } static sail_status_t codec_read_info_from_input(const char *input, int (*ini_parser)(const char*, ini_handler, void*), struct sail_codec_info **codec_info) { struct sail_codec_info *codec_info_local; SAIL_TRY(alloc_codec_info(&codec_info_local)); SAIL_TRY_OR_CLEANUP(sail_alloc_load_features(&codec_info_local->load_features), destroy_codec_info(codec_info_local)); SAIL_TRY_OR_CLEANUP(sail_alloc_save_features(&codec_info_local->save_features), destroy_codec_info(codec_info_local)); struct init_data init_data; init_data.codec_info = codec_info_local; /* * Returns: * - 0 on success * - line number of first error on parse error * - -1 on file open error * - -2 on memory allocation error (only when INI_USE_STACK is zero). */ const int code = ini_parser(input, inih_handler, &init_data); /* Success. */ if (code == 0) { if (codec_info_local->layout != SAIL_CODEC_LAYOUT_V8) { SAIL_LOG_ERROR("Unsupported codec layout version %d. Please check your codec info files", codec_info_local->layout); destroy_codec_info(codec_info_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_CODEC_LAYOUT); } /* Paranoid error checks. */ SAIL_TRY_OR_CLEANUP(check_codec_info(codec_info_local), /* cleanup */ destroy_codec_info(codec_info_local)); *codec_info = codec_info_local; return SAIL_OK; } else { destroy_codec_info(codec_info_local); switch (code) { case -1: SAIL_LOG_AND_RETURN(SAIL_ERROR_OPEN_FILE); case -2: SAIL_LOG_AND_RETURN(SAIL_ERROR_MEMORY_ALLOCATION); default: SAIL_LOG_AND_RETURN(SAIL_ERROR_PARSE_FILE); } } } /* * Public functions. */ void destroy_codec_info(struct sail_codec_info *codec_info) { if (codec_info == NULL) { return; } sail_free(codec_info->path); sail_free(codec_info->version); sail_free(codec_info->name); sail_free(codec_info->description); sail_destroy_string_node_chain(codec_info->magic_number_node); sail_destroy_string_node_chain(codec_info->extension_node); sail_destroy_string_node_chain(codec_info->mime_type_node); sail_destroy_load_features(codec_info->load_features); sail_destroy_save_features(codec_info->save_features); sail_free(codec_info); } sail_status_t codec_read_info_from_file(const char *path, struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(path); SAIL_CHECK_PTR(codec_info); SAIL_LOG_DEBUG("Loading codec info '%s'", path); SAIL_TRY(codec_read_info_from_input(path, ini_parse, codec_info)); return SAIL_OK; } sail_status_t codec_read_info_from_string(const char *str, struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(str); SAIL_CHECK_PTR(codec_info); SAIL_TRY(codec_read_info_from_input(str, ini_parse_string, codec_info)); return SAIL_OK; } sail-0.9.8/src/sail/codec_info_private.h000066400000000000000000000040011475535176100202030ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_INFO_PRIVATE_H #define SAIL_CODEC_INFO_PRIVATE_H #include #include struct sail_codec_info; /* * Private codec info functions. */ SAIL_HIDDEN void destroy_codec_info(struct sail_codec_info *codec_info); /* * Reads SAIL codec info from the specified file and stores the parsed information into the specified * codec info object. * * Returns SAIL_OK on success. */ SAIL_HIDDEN sail_status_t codec_read_info_from_file(const char *path, struct sail_codec_info **codec_info); /* * Reads SAIL codec info from the specified string and stores the parsed information into the specified * codec info object. * * Returns SAIL_OK on success. */ SAIL_HIDDEN sail_status_t codec_read_info_from_string(const char *str, struct sail_codec_info **codec_info); #endif sail-0.9.8/src/sail/codec_layout.h000066400000000000000000000035321475535176100170430ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_LAYOUT_H #define SAIL_CODEC_LAYOUT_H #include /* * Currently supported codec layout version. */ #define SAIL_CODEC_LAYOUT_V8 8 struct sail_codec_layout_v8 { sail_codec_load_init_v8_t load_init; sail_codec_load_seek_next_frame_v8_t load_seek_next_frame; sail_codec_load_frame_v8_t load_frame; sail_codec_load_finish_v8_t load_finish; sail_codec_save_init_v8_t save_init; sail_codec_save_seek_next_frame_v8_t save_seek_next_frame; sail_codec_save_frame_v8_t save_frame; sail_codec_save_finish_v8_t save_finish; }; #endif sail-0.9.8/src/sail/codec_priority.h000066400000000000000000000033231475535176100174050ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_PRIORITY_H #define SAIL_CODEC_PRIORITY_H /* Codec priority. */ enum SailCodecPriority { /* One of the most popular image formats like JPEG. */ SAIL_CODEC_PRIORITY_HIGHEST, /* Pretty popular and common image format like SVG. */ SAIL_CODEC_PRIORITY_HIGH, /* Moderate popularity. */ SAIL_CODEC_PRIORITY_MEDIUM, /* Pretty rare image format. */ SAIL_CODEC_PRIORITY_LOW, /* Very rare and/or too specific and/or ancient image format. */ SAIL_CODEC_PRIORITY_LOWEST, }; #endif sail-0.9.8/src/sail/context.c000066400000000000000000000033201475535176100160430ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include sail_status_t sail_init(void) { SAIL_TRY(sail_init_with_flags(0)); return SAIL_OK; } sail_status_t sail_init_with_flags(int flags) { struct sail_context *context; SAIL_TRY(fetch_global_context_guarded_with_flags(&context, flags)); return SAIL_OK; } sail_status_t sail_unload_codecs(void) { SAIL_TRY(sail_unload_codecs_private()); return SAIL_OK; } void sail_finish(void) { destroy_global_context(); } sail-0.9.8/src/sail/context.h000066400000000000000000000134341475535176100160570ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CONTEXT_H #define SAIL_CONTEXT_H #include #include #ifdef __cplusplus extern "C" { #endif /* * SAIL context. * * SAIL context enumerates and holds a list of available codec info objects and a list of loaded codecs. * It's a global static object being created on demand by all SAIL loading, saving, and probing functions. * If you want to allocate SAIL context explicitly, use sail_init() or sail_init_with_flags(). * All SAIL loading, saving, and probing functions will re-use it then. * * SAIL context modification (creating, destroying, loading and unloading codecs) is guarded with a mutex * to avoid unpredictable errors in a multi-threaded environment. */ /* * Flags to control SAIL initialization behavior. */ enum SailInitFlags { /* * When SAIL is compiled with SAIL_COMBINE_CODECS disabled (the default), * preload all codecs in sail_init_with_flags(). Codecs are lazy-loaded * by default. When SAIL is compiled with SAIL_COMBINE_CODECS enabled, * this option has no effect. */ SAIL_FLAG_PRELOAD_CODECS = 1 << 0, }; /* * Initializes a new SAIL global static context with default flags. Does nothing * if a global context already exists. See also sail_init_with_flags(). * * In general, SAIL initializes a new global static context automatically. You can use * this function if you want to initialize it explicitly for some reason. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_init(void); /* * Initializes a new SAIL global static context with the specific flags. Does nothing * if a global context already exists. Builds a list of available SAIL codecs. See SailInitFlags. * * Use this method when you need specific features like preloading codecs. If you don't need * specific features, using this function is optional. All loading or saving functions allocate * a global static context implicitly when they need it and when it doesn't exist yet. * * Codecs path search algorithm (first found path wins): * * 1. Conan recipe on any platform * Codecs are combined into a dynamically linked library, so no need to search them. * * 2. VCPKG port on any platform * Codecs are combined into a dynamically linked library, so no need to search them. * * 3. Manually compiled on any platform with SAIL_COMBINE_CODECS=ON * Codecs are combined into a dynamically linked library, so no need to search them. * * 4. Manually compiled on Windows with SAIL_COMBINE_CODECS=OFF (the default) * 1. SAIL_CODECS_PATH environment variable * 2. \lib\sail\codecs * 3. Hardcoded SAIL_CODECS_PATH in config.h * * 5. Manually compiled on Unix (including macOS) SAIL_COMBINE_CODECS=OFF (the default) * 1. SAIL_CODECS_PATH environment variable * 2. Hardcoded SAIL_CODECS_PATH in config.h * * /lib is added to LD_LIBRARY_PATH. * * Additionally, SAIL_THIRD_PARTY_CODECS_PATH environment variable with a list of ';'-separated paths * is searched if SAIL_THIRD_PARTY_CODECS_PATH is enabled in CMake (the default), so you can load * your own codecs from there. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_init_with_flags(int flags); /* * Unloads all the loaded codecs from the global static context to release memory occupied by them. * Use this function if you want to release some memory but do not want to deinitialize SAIL * with sail_finish(). Subsequent attempts to load or save images will reload necessary SAIL codecs * from disk. * * Warning: Make sure no loading or saving operations are in progress before calling sail_unload_codecs(). * Failure to do so may lead to a crash. * * Typical usage: This is a standalone function that can be called at any time (with the restriction above). * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_unload_codecs(void); /* * Destroys the global static context that was implicitly or explicitly allocated by * loading or saving functions. * * Unloads all codecs. All pointers to codec info objects, load and save features, and codecs * get invalidated. Using them after calling sail_finish() may lead to a crash. * * It's possible to initialize a new global static context afterwards, implicitly or explicitly. * * Warning: Make sure no loading or saving operations are in progress before calling sail_finish(). * Failure to do so may lead to a crash. * * Typical usage: This is a standalone function that can be called at any time (with the restriction above). */ SAIL_EXPORT void sail_finish(void); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/context_private.c000066400000000000000000000671171475535176100176130ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #ifdef SAIL_WIN32 #include /* FindFirstFile */ #else #include /* opendir */ #include #endif #include /* * Private functions. */ static struct sail_context *global_context = NULL; #ifdef SAIL_THREAD_SAFE static sail_mutex_t global_context_guard_mutex; static bool global_context_guard_mutex_initialized = false; /* Must be called by threading_call_once() to guarantee atomic operation. */ static void initialize_global_context_guard_mutex_callback(void) { SAIL_TRY_OR_EXECUTE(threading_init_mutex(&global_context_guard_mutex), /* on error */ return); SAIL_LOG_DEBUG("Allocated new global context mutex"); global_context_guard_mutex_initialized = true; } static sail_status_t initialize_global_context_guard_mutex(void) { static sail_once_flag_t once_flag = SAIL_ONCE_DEFAULT_VALUE; SAIL_TRY(threading_call_once(&once_flag, initialize_global_context_guard_mutex_callback)); if (!global_context_guard_mutex_initialized) { SAIL_LOG_AND_RETURN(SAIL_ERROR_CONTEXT_UNINITIALIZED); } return SAIL_OK; } #endif #ifdef SAIL_WIN32 static sail_status_t add_dll_directory(const char *path) { SAIL_CHECK_PTR(path); SAIL_LOG_DEBUG("Add '%s' to the DLL search paths", path); wchar_t *path_w; SAIL_TRY(sail_to_wchar(path, &path_w)); if (!AddDllDirectory(path_w)) { SAIL_LOG_ERROR("Failed to update library search path with '%s'. Error: 0x%X", path, GetLastError()); sail_free(path_w); SAIL_LOG_AND_RETURN(SAIL_ERROR_ENV_UPDATE); } sail_free(path_w); return SAIL_OK; } static sail_status_t get_sail_dll_path(char *dll_path, int dll_path_size) { HMODULE thisModule; if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCSTR)&get_sail_dll_path, &thisModule) == 0) { SAIL_LOG_ERROR("GetModuleHandleEx() failed with error code 0x%X. sail.dll location will not be added as a DLL search path", GetLastError()); return SAIL_ERROR_GET_DLL_PATH; } else if (GetModuleFileName(thisModule, dll_path, dll_path_size) == 0) { SAIL_LOG_ERROR("GetModuleFileName() failed with error code 0x%X. sail.dll location will not be added as a DLL search path", GetLastError()); return SAIL_ERROR_GET_DLL_PATH; } else { /* "...\bin\sail.dll" -> "...\bin". */ char *last_sep = strrchr(dll_path, '\\'); if (last_sep == NULL) { return SAIL_ERROR_GET_DLL_PATH; } else { *last_sep = '\0'; } } return SAIL_OK; } #endif #ifndef SAIL_COMBINE_CODECS static const char* sail_codecs_path_env(void) { static SAIL_THREAD_LOCAL bool codecs_path_env_called = false; static SAIL_THREAD_LOCAL const char *env = NULL; if (codecs_path_env_called) { return env; } codecs_path_env_called = true; #ifdef _MSC_VER _dupenv_s((char **)&env, NULL, "SAIL_CODECS_PATH"); #else env = getenv("SAIL_CODECS_PATH"); #endif return env; } #endif #ifdef SAIL_THIRD_PARTY_CODECS_PATH static const char* client_codecs_path(void) { static SAIL_THREAD_LOCAL bool codecs_path_called = false; static SAIL_THREAD_LOCAL const char *env = NULL; if (codecs_path_called) { return env; } codecs_path_called = true; #ifdef _MSC_VER _dupenv_s((char **)&env, NULL, "SAIL_THIRD_PARTY_CODECS_PATH"); #else env = getenv("SAIL_THIRD_PARTY_CODECS_PATH"); #endif if (env == NULL) { SAIL_LOG_DEBUG("SAIL_THIRD_PARTY_CODECS_PATH environment variable is not set. Not loading codecs from it"); } else { SAIL_LOG_DEBUG("SAIL_THIRD_PARTY_CODECS_PATH environment variable is set. Loading codecs from '%s'", env); } return env; } static sail_status_t client_codecs_paths_to_string_node_chain(struct sail_string_node **string_node) { const char *client_codecs_path_value = client_codecs_path(); if (client_codecs_path_value == NULL) { *string_node = NULL; } else { SAIL_TRY(sail_split_into_string_node_chain(client_codecs_path_value, string_node)); } return SAIL_OK; } #endif static sail_status_t alloc_context(struct sail_context **context) { SAIL_CHECK_PTR(context); void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_context), &ptr)); *context = ptr; (*context)->initialized = false; (*context)->codec_bundle_node = NULL; return SAIL_OK; } static sail_status_t allocate_global_context(struct sail_context **context) { SAIL_CHECK_PTR(context); if (global_context == NULL) { SAIL_TRY(alloc_context(&global_context)); SAIL_LOG_DEBUG("Allocated new context %p", global_context); } *context = global_context; return SAIL_OK; } static sail_status_t destroy_context(struct sail_context *context) { if (context == NULL) { return SAIL_OK; } destroy_codec_bundle_node_chain(context->codec_bundle_node); sail_free(context); return SAIL_OK; } static sail_status_t preload_codecs(struct sail_context *context) { SAIL_CHECK_PTR(context); SAIL_TRY(lock_context()); SAIL_LOG_DEBUG("Preloading codecs"); for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { const struct sail_codec *codec; /* Ignore loading errors on purpose. */ (void)load_codec_by_codec_info(codec_bundle_node->codec_bundle->codec_info, &codec); } SAIL_TRY(unlock_context()); return SAIL_OK; } static int codec_bundle_priority_comparator(const void *elem1, const void *elem2) { const int priority1 = (*(struct sail_codec_bundle_node **)elem1)->codec_bundle->codec_info->priority; const int priority2 = (*(struct sail_codec_bundle_node **)elem2)->codec_bundle->codec_info->priority; return priority1 - priority2; } /* * Space complexity: O(n) * Time complexity: O(n * log(n)) */ static sail_status_t sort_enumerated_codecs(struct sail_context *context) { /* 0 or 1 elements - nothing to sort. */ if (context->codec_bundle_node == NULL || context->codec_bundle_node->next == NULL) { return SAIL_OK; } /* Count the number of codecs. */ unsigned codecs_num = 0; for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { codecs_num++; } /* Copy codecs to an array. */ struct sail_codec_bundle_node **codec_bundle_array; void *ptr; SAIL_TRY(sail_malloc(sizeof(struct sail_codec_bundle_node *) * codecs_num, &ptr)); codec_bundle_array = ptr; { unsigned i = 0; for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { codec_bundle_array[i++] = codec_bundle_node; } } /* Sort the array. */ qsort(codec_bundle_array, codecs_num, sizeof(struct sail_codec_bundle_node *), codec_bundle_priority_comparator); /* Reconstruct the linked list. */ struct sail_codec_bundle_node *codec_bundle_node_sorted_it = codec_bundle_array[0]; struct sail_codec_bundle_node *codec_bundle_node_sorted = codec_bundle_node_sorted_it; for (unsigned i = 1; i < codecs_num; i++) { codec_bundle_node_sorted_it->next = codec_bundle_array[i]; codec_bundle_node_sorted_it = codec_bundle_node_sorted_it->next; } codec_bundle_node_sorted_it->next = NULL; context->codec_bundle_node = codec_bundle_node_sorted; /* Cleanup */ sail_free(codec_bundle_array); return SAIL_OK; } static sail_status_t print_enumerated_codecs(struct sail_context *context) { SAIL_CHECK_PTR(context); const struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; if (codec_bundle_node == NULL) { return SAIL_OK; } /* Print the found codec infos. */ SAIL_LOG_DEBUG("Enumerated codecs:"); for (int counter = 1; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next, counter++) { const struct sail_codec_info *codec_info = codec_bundle_node->codec_bundle->codec_info; SAIL_LOG_DEBUG("%d. [p%d] %s [%s] %s", counter, codec_info->priority, codec_info->name, codec_info->description, codec_info->version); } return SAIL_OK; } #if !defined SAIL_COMBINE_CODECS || defined SAIL_THIRD_PARTY_CODECS_PATH /* Add codecs_path/lib to the DLL/SO search path. */ static sail_status_t add_lib_subdir_to_dll_search_path(const char *codecs_path) { #ifdef SAIL_WIN32 char *full_path_to_lib; SAIL_TRY(sail_concat(&full_path_to_lib, 2, codecs_path, "\\lib")); if (!sail_is_dir(full_path_to_lib)) { SAIL_LOG_DEBUG("Optional DLL directory '%s' doesn't exist, so not loading DLLs from it", full_path_to_lib); sail_free(full_path_to_lib); return SAIL_OK; } SAIL_TRY_OR_CLEANUP(add_dll_directory(full_path_to_lib), /* cleanup */ sail_free(full_path_to_lib)); sail_free(full_path_to_lib); #else char *full_path_to_lib; SAIL_TRY(sail_concat(&full_path_to_lib, 2, codecs_path, "/lib")); if (!sail_is_dir(full_path_to_lib)) { SAIL_LOG_DEBUG("Optional LIB directory '%s' doesn't exist, so not updating LD_LIBRARY_PATH with it", full_path_to_lib); sail_free(full_path_to_lib); return SAIL_OK; } char *combined_ld_library_path; char *env = getenv("LD_LIBRARY_PATH"); if (env == NULL) { SAIL_TRY_OR_CLEANUP(sail_strdup(full_path_to_lib, &combined_ld_library_path), sail_free(full_path_to_lib)); } else { SAIL_TRY_OR_CLEANUP(sail_concat(&combined_ld_library_path, 3, env, ":", full_path_to_lib), sail_free(full_path_to_lib)); } sail_free(full_path_to_lib); SAIL_LOG_DEBUG("Set LD_LIBRARY_PATH to '%s'", combined_ld_library_path); if (setenv("LD_LIBRARY_PATH", combined_ld_library_path, true) != 0) { SAIL_LOG_ERROR("Failed to update library search path: %s", strerror(errno)); sail_free(combined_ld_library_path); SAIL_LOG_AND_RETURN(SAIL_ERROR_ENV_UPDATE); } sail_free(combined_ld_library_path); #endif return SAIL_OK; } static sail_status_t build_full_path(const char *sail_codecs_path, const char *name, char **full_path) { #ifdef SAIL_WIN32 SAIL_TRY(sail_concat(full_path, 3, sail_codecs_path, "\\", name)); #else SAIL_TRY(sail_concat(full_path, 3, sail_codecs_path, "/", name)); #endif return SAIL_OK; } static sail_status_t build_codec_bundle_from_codec_info_path(const char *codec_info_full_path, struct sail_codec_bundle_node **codec_bundle_node) { SAIL_CHECK_PTR(codec_info_full_path); SAIL_CHECK_PTR(codec_bundle_node); /* Build "/path/jpeg.so" from "/path/jpeg.codec.info". */ char *codec_info_part = strstr(codec_info_full_path, ".codec.info"); if (codec_info_part == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_MEMORY_ALLOCATION); } /* The length of "/path/jpeg". */ size_t codec_full_path_length = strlen(codec_info_full_path) - strlen(codec_info_part); char *codec_full_path; #ifdef SAIL_WIN32 static const char * const LIB_SUFFIX = "dll"; #else static const char * const LIB_SUFFIX = "so"; #endif /* The resulting string will be "/path/jpeg.plu" (on Windows) or "/path/jpeg.pl". */ SAIL_TRY(sail_strdup_length(codec_info_full_path, codec_full_path_length + strlen(LIB_SUFFIX) + 1, &codec_full_path)); #ifdef _MSC_VER /* Overwrite the end of the path with "dll". */ strcpy_s(codec_full_path + codec_full_path_length + 1, strlen(LIB_SUFFIX) + 1, LIB_SUFFIX); #else /* Overwrite the end of the path with "so". */ strcpy(codec_full_path + codec_full_path_length + 1, LIB_SUFFIX); #endif struct sail_codec_bundle_node *local_codec_bundle_node; /* Parse codec info. */ SAIL_TRY_OR_CLEANUP(alloc_codec_bundle_node(&local_codec_bundle_node), /* cleanup */ sail_free(codec_full_path)); SAIL_TRY_OR_CLEANUP(alloc_codec_bundle(&local_codec_bundle_node->codec_bundle), /* cleanup */ destroy_codec_bundle_node(local_codec_bundle_node), sail_free(codec_full_path)); SAIL_TRY_OR_CLEANUP(codec_read_info_from_file(codec_info_full_path, &local_codec_bundle_node->codec_bundle->codec_info), destroy_codec_bundle_node(local_codec_bundle_node), sail_free(codec_full_path)); local_codec_bundle_node->codec_bundle->codec_info->path = codec_full_path; /* Save the parsed codec info into the SAIL context. */ *codec_bundle_node = local_codec_bundle_node; return SAIL_OK; } static sail_status_t enumerate_codecs_in_paths(struct sail_context *context, const struct sail_string_node *string_node) { SAIL_CHECK_PTR(context); /* Used to load and store codec info objects. */ struct sail_codec_bundle_node **last_codec_bundle_node = &context->codec_bundle_node; struct sail_codec_bundle_node *codec_bundle_node; for (; string_node != NULL; string_node = string_node->next) { const char *codecs_path = string_node->string; SAIL_TRY(add_lib_subdir_to_dll_search_path(codecs_path)); SAIL_LOG_DEBUG("Enumerating codecs in '%s'", codecs_path); #ifdef SAIL_WIN32 const char *plugs_info_mask = "\\*.codec.info"; size_t codecs_path_with_mask_length = strlen(codecs_path) + strlen(plugs_info_mask) + 1; void *ptr; SAIL_TRY(sail_malloc(codecs_path_with_mask_length, &ptr)); char *codecs_path_with_mask = ptr; #ifdef _MSC_VER strcpy_s(codecs_path_with_mask, codecs_path_with_mask_length, codecs_path); strcat_s(codecs_path_with_mask, codecs_path_with_mask_length, plugs_info_mask); #else strcpy(codecs_path_with_mask, codecs_path); strcat(codecs_path_with_mask, plugs_info_mask); #endif WIN32_FIND_DATA data; HANDLE hFind = FindFirstFile(codecs_path_with_mask, &data); if (hFind == INVALID_HANDLE_VALUE) { SAIL_LOG_ERROR("Failed to list files in '%s'. Error: 0x%X. No codecs loaded from it", codecs_path, GetLastError()); sail_free(codecs_path_with_mask); continue; } do { /* Build a full path. */ char *full_path; /* Ignore errors and try to load as much as possible. */ SAIL_TRY_OR_EXECUTE(build_full_path(codecs_path, data.cFileName, &full_path), /* on error */ continue); SAIL_LOG_DEBUG("Found codec info '%s'", data.cFileName); if (build_codec_bundle_from_codec_info_path(full_path, &codec_bundle_node) == SAIL_OK) { *last_codec_bundle_node = codec_bundle_node; last_codec_bundle_node = &codec_bundle_node->next; } sail_free(full_path); } while (FindNextFile(hFind, &data)); if (GetLastError() != ERROR_NO_MORE_FILES) { SAIL_LOG_ERROR("Failed to list files in '%s'. Error: 0x%X. Some codecs may not be loaded from it", codecs_path, GetLastError()); } sail_free(codecs_path_with_mask); FindClose(hFind); #else DIR *d = opendir(codecs_path); if (d == NULL) { SAIL_LOG_ERROR("Failed to list files in '%s': %s", codecs_path, strerror(errno)); continue; } struct dirent *dir; while ((dir = readdir(d)) != NULL) { /* Build a full path. */ char *full_path; /* Ignore errors and try to load as much as possible. */ SAIL_TRY_OR_EXECUTE(build_full_path(codecs_path, dir->d_name, &full_path), /* on error */ continue); /* Handle files only. */ if (sail_is_file(full_path)) { bool is_codec_info = strstr(full_path, ".codec.info") != NULL; if (is_codec_info) { SAIL_LOG_DEBUG("Found codec info '%s'", dir->d_name); if (build_codec_bundle_from_codec_info_path(full_path, &codec_bundle_node) == SAIL_OK) { *last_codec_bundle_node = codec_bundle_node; last_codec_bundle_node = &codec_bundle_node->next; } } } sail_free(full_path); } closedir(d); #endif } return SAIL_OK; } #endif /* Initializes the context and loads all the codec info files. */ #ifdef SAIL_COMBINE_CODECS static sail_status_t init_context_impl(struct sail_context *context) { SAIL_CHECK_PTR(context); /* Externs from sail-codecs. */ #ifdef SAIL_STATIC /* For example: [ "gif", "jpeg", "png" ]. */ extern const char * const sail_enabled_codecs[]; extern const char * const sail_enabled_codecs_info[]; #else SAIL_IMPORT extern const char * const sail_enabled_codecs[]; SAIL_IMPORT extern const char * const sail_enabled_codecs_info[]; #endif /* Load codec info objects. */ struct sail_codec_bundle_node **last_codec_bundle_node = &context->codec_bundle_node; for (size_t i = 0; sail_enabled_codecs[i] != NULL; i++) { const char *sail_codec_info = sail_enabled_codecs_info[i]; /* Parse codec info. */ struct sail_codec_bundle_node *codec_bundle_node; SAIL_TRY_OR_EXECUTE(alloc_codec_bundle_node(&codec_bundle_node), /* on error */ continue); SAIL_TRY_OR_EXECUTE(alloc_codec_bundle(&codec_bundle_node->codec_bundle), /* on error */ destroy_codec_bundle_node(codec_bundle_node); continue); SAIL_TRY_OR_EXECUTE(codec_read_info_from_string(sail_codec_info, &codec_bundle_node->codec_bundle->codec_info), /* on error */ destroy_codec_bundle_node(codec_bundle_node); continue); *last_codec_bundle_node = codec_bundle_node; last_codec_bundle_node = &codec_bundle_node->next; } #ifdef SAIL_THIRD_PARTY_CODECS_PATH /* Load client codecs. */ struct sail_string_node *client_codecs_paths; SAIL_TRY(client_codecs_paths_to_string_node_chain(&client_codecs_paths)); SAIL_TRY_OR_CLEANUP(enumerate_codecs_in_paths(context, client_codecs_paths), /* cleanup */ sail_destroy_string_node_chain(client_codecs_paths)); sail_destroy_string_node_chain(client_codecs_paths); #endif return SAIL_OK; } #else /* SAIL_COMBINE_CODECS=OFF. */ static const char* sail_codecs_path(void) { static SAIL_THREAD_LOCAL bool codecs_path_called = false; static SAIL_THREAD_LOCAL const char *path = NULL; if (codecs_path_called) { return path; } codecs_path_called = true; #ifdef SAIL_WIN32 char dll_path[MAX_PATH]; /* Construct "\bin\..\lib\sail\codecs" from "\bin\sail.dll". */ if (get_sail_dll_path(dll_path, sizeof(dll_path)) == SAIL_OK) { char *lib_sail_codecs_path; #ifdef SAIL_VCPKG /* "\bin" -> "\bin\sail\codecs" */ const char *CODECS_RELATIVE_PATH = "\\sail\\codecs"; #else /* "\bin" -> "\bin\..\lib\sail\codecs" */ const char *CODECS_RELATIVE_PATH = "\\..\\lib\\sail\\codecs"; #endif if (sail_concat(&lib_sail_codecs_path, 2, dll_path, CODECS_RELATIVE_PATH) == SAIL_OK) { path = lib_sail_codecs_path; } else { SAIL_LOG_ERROR("Failed to concat strings. Falling back to loading codecs from '%s'", SAIL_CODECS_PATH); path = SAIL_CODECS_PATH; } } else { path = SAIL_CODECS_PATH; SAIL_LOG_ERROR("Failed to get the sail.dll path. Falling back to loading codecs from '%s'", path); } #else path = SAIL_CODECS_PATH; #endif return path; } static sail_status_t init_context_impl(struct sail_context *context) { SAIL_CHECK_PTR(context); /* Our own codecs. */ const char *env = sail_codecs_path_env(); const char *our_codecs_path; if (env == NULL) { our_codecs_path = sail_codecs_path(); SAIL_LOG_DEBUG("SAIL_CODECS_PATH environment variable is not set. Loading codecs from '%s'", our_codecs_path); } else { our_codecs_path = env; SAIL_LOG_DEBUG("SAIL_CODECS_PATH environment variable is set. Loading codecs from '%s'", env); } /* Construct a list of paths to search. */ struct sail_string_node *codecs_paths_node; SAIL_TRY(sail_alloc_string_node(&codecs_paths_node)); SAIL_TRY_OR_CLEANUP(sail_strdup(our_codecs_path, &codecs_paths_node->string), /* cleanup */ sail_destroy_string_node(codecs_paths_node)); #ifdef SAIL_THIRD_PARTY_CODECS_PATH SAIL_TRY_OR_CLEANUP(client_codecs_paths_to_string_node_chain(&codecs_paths_node->next), /* cleanup */ sail_destroy_string_node_chain(codecs_paths_node)); #endif SAIL_TRY_OR_CLEANUP(enumerate_codecs_in_paths(context, codecs_paths_node), /* cleanup */ sail_destroy_string_node_chain(codecs_paths_node)); sail_destroy_string_node_chain(codecs_paths_node); return SAIL_OK; } #endif static void print_no_codecs_found(void) { const char *message = "\n" "\n*** No codecs were found. You could try the following: ***" "\n*** - Inspect the error messages printed in stderr. ***" #ifdef SAIL_STATIC "\n*** - Make sure the application is linked against the sail-codecs ***" "\n*** and sail-codecs-objects libraries using the 'whole archive' option. ***" #elif defined SAIL_COMBINE_CODECS "\n*** - Make sure the application is linked against the sail-codecs library. ***" #else "\n*** - Check the installation directory. ***" #endif "\n"; SAIL_LOG_ERROR("%s", message); } static void print_build_statistics(void) { SAIL_LOG_INFO("Version: %s", SAIL_VERSION_STRING); #ifdef SAIL_VCPKG SAIL_LOG_INFO("Build type: VCPKG"); #else SAIL_LOG_INFO("Build type: Standalone"); #endif #ifdef SAIL_STATIC SAIL_LOG_INFO("Static build: yes"); #else SAIL_LOG_INFO("Static build: no"); #endif #ifdef SAIL_COMBINE_CODECS SAIL_LOG_INFO("Combine codecs: yes"); #else SAIL_LOG_INFO("Combine codecs: no"); #endif #ifdef SAIL_THREAD_SAFE SAIL_LOG_INFO("Thread-safe: yes"); #else SAIL_LOG_INFO("Thread-safe: no"); #endif #ifdef SAIL_THIRD_PARTY_CODECS_PATH SAIL_LOG_INFO("SAIL_THIRD_PARTY_CODECS_PATH: enabled"); #else SAIL_LOG_INFO("SAIL_THIRD_PARTY_CODECS_PATH: disabled"); #endif } /* Initializes the context and loads all the codec info files if the context is not initialized. */ static sail_status_t init_context(struct sail_context *context, int flags) { SAIL_CHECK_PTR(context); if (context->initialized) { return SAIL_OK; } context->initialized = true; /* Time counter. */ uint64_t start_time = sail_now(); print_build_statistics(); /* Always search DLLs in the sail.dll location so custom codecs can hold dependencies there. */ #ifdef SAIL_WIN32 char dll_path[MAX_PATH]; if (get_sail_dll_path(dll_path, sizeof(dll_path)) == SAIL_OK) { SAIL_TRY_OR_SUPPRESS(add_dll_directory(dll_path)); } #endif SAIL_TRY(init_context_impl(context)); if (context->codec_bundle_node == NULL) { print_no_codecs_found(); } SAIL_TRY(sort_enumerated_codecs(context)); SAIL_TRY(print_enumerated_codecs(context)); if (flags & SAIL_FLAG_PRELOAD_CODECS) { SAIL_TRY(preload_codecs(context)); } SAIL_LOG_DEBUG("Initialized in %lu ms.", (unsigned long)(sail_now() - start_time)); return SAIL_OK; } /* * Public functions. */ sail_status_t destroy_global_context(void) { SAIL_TRY(lock_context()); SAIL_LOG_DEBUG("Destroyed context %p", global_context); destroy_context(global_context); global_context = NULL; SAIL_TRY(unlock_context()); return SAIL_OK; } sail_status_t fetch_global_context_guarded(struct sail_context **context) { SAIL_TRY(fetch_global_context_guarded_with_flags(context, /* flags */ 0)); return SAIL_OK; } sail_status_t fetch_global_context_unsafe(struct sail_context **context) { SAIL_TRY(fetch_global_context_unsafe_with_flags(context, /* flags */ 0)); return SAIL_OK; } sail_status_t fetch_global_context_guarded_with_flags(struct sail_context **context, int flags) { SAIL_CHECK_PTR(context); SAIL_TRY(lock_context()); SAIL_TRY_OR_CLEANUP(fetch_global_context_unsafe_with_flags(context, flags), /* cleanup */ unlock_context()); SAIL_TRY(unlock_context()); return SAIL_OK; } sail_status_t fetch_global_context_unsafe_with_flags(struct sail_context **context, int flags) { SAIL_CHECK_PTR(context); struct sail_context *local_context; SAIL_TRY(allocate_global_context(&local_context)); SAIL_TRY(init_context(local_context, flags)); *context = local_context; return SAIL_OK; } sail_status_t sail_unload_codecs_private(void) { SAIL_TRY(lock_context()); if (global_context == NULL) { unlock_context(); SAIL_LOG_DEBUG("Context doesn't exist so not unloading codecs from it"); return SAIL_OK; } struct sail_context *context; SAIL_TRY_OR_CLEANUP(fetch_global_context_unsafe(&context), /* cleanup */ unlock_context()); int counter = 0; for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { struct sail_codec_bundle *codec_bundle = codec_bundle_node->codec_bundle; if (codec_bundle->codec != NULL) { destroy_codec(codec_bundle->codec); codec_bundle->codec = NULL; counter++; } } SAIL_TRY(unlock_context()); SAIL_LOG_DEBUG("Unloaded codecs number: %d", counter); return SAIL_OK; } sail_status_t lock_context(void) { #ifdef SAIL_THREAD_SAFE SAIL_TRY(initialize_global_context_guard_mutex()); SAIL_TRY(threading_lock_mutex(&global_context_guard_mutex)); #endif return SAIL_OK; } sail_status_t unlock_context(void) { #ifdef SAIL_THREAD_SAFE SAIL_TRY(threading_unlock_mutex(&global_context_guard_mutex)); #endif return SAIL_OK; } sail-0.9.8/src/sail/context_private.h000066400000000000000000000045641475535176100176150ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CONTEXT_PRIVATE_H #define SAIL_CONTEXT_PRIVATE_H #include #include #include struct sail_codec_bundle_node; /* * Context is a main entry point to start working with SAIL. It enumerates codec info objects which could be * used later in loading and saving operations. */ struct sail_context { /* Context is already initialized. */ bool initialized; /* Linked list of found codec info objects. */ struct sail_codec_bundle_node *codec_bundle_node; }; typedef struct sail_context sail_context_t; SAIL_HIDDEN sail_status_t destroy_global_context(void); SAIL_HIDDEN sail_status_t fetch_global_context_guarded(struct sail_context **context); SAIL_HIDDEN sail_status_t fetch_global_context_unsafe(struct sail_context **context); SAIL_HIDDEN sail_status_t fetch_global_context_guarded_with_flags(struct sail_context **context, int flags); SAIL_HIDDEN sail_status_t fetch_global_context_unsafe_with_flags(struct sail_context **context, int flags); SAIL_HIDDEN sail_status_t sail_unload_codecs_private(void); SAIL_HIDDEN sail_status_t lock_context(void); SAIL_HIDDEN sail_status_t unlock_context(void); #endif sail-0.9.8/src/sail/ini.c000066400000000000000000000203631475535176100151440ustar00rootroot00000000000000/* inih -- simple .INI file parser SPDX-License-Identifier: BSD-3-Clause Copyright (C) 2009-2020, Ben Hoyt inih is released under the New BSD license (see LICENSE.txt). Go to the project home page for more info: https://github.com/benhoyt/inih */ #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) #define _CRT_SECURE_NO_WARNINGS #endif #include #include #include #include "ini.h" #if !INI_USE_STACK #if INI_CUSTOM_ALLOCATOR #include void* ini_malloc(size_t size); void ini_free(void* ptr); void* ini_realloc(void* ptr, size_t size); #else #include #define ini_malloc malloc #define ini_free free #define ini_realloc realloc #endif #endif #define MAX_SECTION 50 #define MAX_NAME 50 /* sail-common. */ #include /* Used by ini_parse_string() to keep track of string parsing state. */ typedef struct { const char* ptr; size_t num_left; } ini_parse_string_ctx; /* Strip whitespace chars off end of given string, in place. Return s. */ static char* rstrip(char* s) { char* p = s + strlen(s); while (p > s && isspace((unsigned char)(*--p))) *p = '\0'; return s; } /* Return pointer to first non-whitespace char in given string. */ static char* lskip(const char* s) { while (*s && isspace((unsigned char)(*s))) s++; return (char*)s; } /* Return pointer to first char (of chars) or inline comment in given string, or pointer to NUL at end of string if neither found. Inline comment must be prefixed by a whitespace character to register as a comment. */ static char* find_chars_or_comment(const char* s, const char* chars) { #if INI_ALLOW_INLINE_COMMENTS int was_space = 0; while (*s && (!chars || !strchr(chars, *s)) && !(was_space && strchr(INI_INLINE_COMMENT_PREFIXES, *s))) { was_space = isspace((unsigned char)(*s)); s++; } #else while (*s && (!chars || !strchr(chars, *s))) { s++; } #endif return (char*)s; } /* Similar to strncpy, but ensures dest (size bytes) is NUL-terminated, and doesn't pad with NULs. */ static char* strncpy0(char* dest, const char* src, size_t size) { #ifdef _MSC_VER strncpy_s(dest, size, src, size - 1); #else strncpy(dest, src, size - 1); #endif dest[size - 1] = '\0'; return dest; } /* See documentation in header file. */ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, void* user) { /* Uses a fair bit of stack (use heap instead if you need to) */ #if INI_USE_STACK char line[INI_MAX_LINE]; int max_line = INI_MAX_LINE; #else char* line; size_t max_line = INI_INITIAL_ALLOC; #endif #if INI_ALLOW_REALLOC && !INI_USE_STACK char* new_line; size_t offset; #endif char section[MAX_SECTION] = ""; char prev_name[MAX_NAME] = ""; char* start; char* end; char* name; char* value; int lineno = 0; int error = 0; #if !INI_USE_STACK SAIL_TRY_OR_EXECUTE(sail_malloc(INI_INITIAL_ALLOC, &line), /* on error */ return -2); #endif #if INI_HANDLER_LINENO #define HANDLER(u, s, n, v) handler(u, s, n, v, lineno) #else #define HANDLER(u, s, n, v) handler(u, s, n, v) #endif /* Scan through stream line by line */ while (reader(line, (int)max_line, stream) != NULL) { #if INI_ALLOW_REALLOC && !INI_USE_STACK offset = strlen(line); while (offset == max_line - 1 && line[offset - 1] != '\n') { max_line *= 2; if (max_line > INI_MAX_LINE) max_line = INI_MAX_LINE; SAIL_TRY_OR_EXECUTE(sail_realloc(&new_line, line, max_line), /* on error */ sail_free(line), return -2); line = new_line; if (reader(line + offset, (int)(max_line - offset), stream) == NULL) break; if (max_line >= INI_MAX_LINE) break; offset += strlen(line + offset); } #endif lineno++; start = line; #if INI_ALLOW_BOM if (lineno == 1 && (unsigned char)start[0] == 0xEF && (unsigned char)start[1] == 0xBB && (unsigned char)start[2] == 0xBF) { start += 3; } #endif start = lskip(rstrip(start)); if (strchr(INI_START_COMMENT_PREFIXES, *start)) { /* Start-of-line comment */ } #if INI_ALLOW_MULTILINE else if (*prev_name && *start && start > line) { #if INI_ALLOW_INLINE_COMMENTS end = find_chars_or_comment(start, NULL); if (*end) *end = '\0'; rstrip(start); #endif /* Non-blank line with leading whitespace, treat as continuation of previous name's value (as per Python configparser). */ if (!HANDLER(user, section, prev_name, start) && !error) error = lineno; } #endif else if (*start == '[') { /* A "[section]" line */ end = find_chars_or_comment(start + 1, "]"); if (*end == ']') { *end = '\0'; strncpy0(section, start + 1, sizeof(section)); *prev_name = '\0'; #if INI_CALL_HANDLER_ON_NEW_SECTION if (!HANDLER(user, section, NULL, NULL) && !error) error = lineno; #endif } else if (!error) { /* No ']' found on section line */ error = lineno; } } else if (*start) { /* Not a comment, must be a name[=:]value pair */ end = find_chars_or_comment(start, "=:"); if (*end == '=' || *end == ':') { *end = '\0'; name = rstrip(start); value = end + 1; #if INI_ALLOW_INLINE_COMMENTS end = find_chars_or_comment(value, NULL); if (*end) *end = '\0'; #endif value = lskip(value); rstrip(value); /* Valid name[=:]value pair found, call handler */ strncpy0(prev_name, name, sizeof(prev_name)); if (!HANDLER(user, section, name, value) && !error) error = lineno; } else if (!error) { /* No '=' or ':' found on name[=:]value line */ #if INI_ALLOW_NO_VALUE *end = '\0'; name = rstrip(start); if (!HANDLER(user, section, name, NULL) && !error) error = lineno; #else error = lineno; #endif } } #if INI_STOP_ON_FIRST_ERROR if (error) break; #endif } #if !INI_USE_STACK sail_free(line); #endif return error; } /* See documentation in header file. */ int ini_parse_file(FILE* file, ini_handler handler, void* user) { return ini_parse_stream((ini_reader)fgets, file, handler, user); } /* See documentation in header file. */ int ini_parse(const char* filename, ini_handler handler, void* user) { FILE* file; int error; #ifdef _MSC_VER errno_t err = fopen_s(&file, filename, "r"); if (err != 0) return -1; #else file = fopen(filename, "r"); #endif if (!file) return -1; error = ini_parse_file(file, handler, user); fclose(file); return error; } /* An ini_reader function to read the next line from a string buffer. This is the fgets() equivalent used by ini_parse_string(). */ static char* ini_reader_string(char* str, int num, void* stream) { ini_parse_string_ctx* ctx = (ini_parse_string_ctx*)stream; const char* ctx_ptr = ctx->ptr; size_t ctx_num_left = ctx->num_left; char* strp = str; char c; if (ctx_num_left == 0 || num < 2) return NULL; while (num > 1 && ctx_num_left != 0) { c = *ctx_ptr++; ctx_num_left--; *strp++ = c; if (c == '\n') break; num--; } *strp = '\0'; ctx->ptr = ctx_ptr; ctx->num_left = ctx_num_left; return str; } /* See documentation in header file. */ int ini_parse_string(const char* string, ini_handler handler, void* user) { ini_parse_string_ctx ctx; ctx.ptr = string; ctx.num_left = strlen(string); return ini_parse_stream((ini_reader)ini_reader_string, &ctx, handler, user); } sail-0.9.8/src/sail/ini.h000066400000000000000000000133421475535176100151500ustar00rootroot00000000000000/* inih -- simple .INI file parser SPDX-License-Identifier: BSD-3-Clause Copyright (C) 2009-2020, Ben Hoyt inih is released under the New BSD license (see LICENSE.txt). Go to the project home page for more info: https://github.com/benhoyt/inih */ #ifndef INI_H #define INI_H /* Make this header file easier to include in C++ code */ #ifdef __cplusplus extern "C" { #endif #include #include /* Nonzero if ini_handler callback should accept lineno parameter. */ #ifndef INI_HANDLER_LINENO #define INI_HANDLER_LINENO 0 #endif /* Visibility symbols, required for Windows DLLs */ #ifndef INI_API #if defined _WIN32 || defined __CYGWIN__ # ifdef INI_SHARED_LIB # ifdef INI_SHARED_LIB_BUILDING # define INI_API __declspec(dllexport) # else # define INI_API __declspec(dllimport) # endif # else # define INI_API # endif #else # if defined(__GNUC__) && __GNUC__ >= 4 # define INI_API __attribute__ ((visibility ("default"))) # else # define INI_API # endif #endif #endif /* Typedef for prototype of handler function. */ #if INI_HANDLER_LINENO typedef int (*ini_handler)(void* user, const char* section, const char* name, const char* value, int lineno); #else typedef int (*ini_handler)(void* user, const char* section, const char* name, const char* value); #endif /* Typedef for prototype of fgets-style reader function. */ typedef char* (*ini_reader)(char* str, int num, void* stream); /* Parse given INI-style file. May have [section]s, name=value pairs (whitespace stripped), and comments starting with ';' (semicolon). Section is "" if name=value pair parsed before any section heading. name:value pairs are also supported as a concession to Python's configparser. For each name=value pair parsed, call handler function with given user pointer as well as section, name, and value (data only valid for duration of handler call). Handler should return nonzero on success, zero on error. Returns 0 on success, line number of first error on parse error (doesn't stop on first error), -1 on file open error, or -2 on memory allocation error (only when INI_USE_STACK is zero). */ INI_API int ini_parse(const char* filename, ini_handler handler, void* user); /* Same as ini_parse(), but takes a FILE* instead of filename. This doesn't close the file when it's finished -- the caller must do that. */ INI_API int ini_parse_file(FILE* file, ini_handler handler, void* user); /* Same as ini_parse(), but takes an ini_reader function pointer instead of filename. Used for implementing custom or string-based I/O (see also ini_parse_string). */ INI_API int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, void* user); /* Same as ini_parse(), but takes a zero-terminated string with the INI data instead of a file. Useful for parsing INI data from a network socket or already in memory. */ INI_API int ini_parse_string(const char* string, ini_handler handler, void* user); /* Nonzero to allow multi-line value parsing, in the style of Python's configparser. If allowed, ini_parse() will call the handler with the same name for each subsequent line parsed. */ #ifndef INI_ALLOW_MULTILINE #define INI_ALLOW_MULTILINE 1 #endif /* Nonzero to allow a UTF-8 BOM sequence (0xEF 0xBB 0xBF) at the start of the file. See https://github.com/benhoyt/inih/issues/21 */ #ifndef INI_ALLOW_BOM #define INI_ALLOW_BOM 1 #endif /* Chars that begin a start-of-line comment. Per Python configparser, allow both ; and # comments at the start of a line by default. */ #ifndef INI_START_COMMENT_PREFIXES #define INI_START_COMMENT_PREFIXES ";#" #endif /* Nonzero to allow inline comments (with valid inline comment characters specified by INI_INLINE_COMMENT_PREFIXES). Set to 0 to turn off and match Python 3.2+ configparser behaviour. */ #ifndef INI_ALLOW_INLINE_COMMENTS #define INI_ALLOW_INLINE_COMMENTS 1 #endif #ifndef INI_INLINE_COMMENT_PREFIXES #define INI_INLINE_COMMENT_PREFIXES ";" #endif /* Nonzero to use stack for line buffer, zero to use heap (malloc/free). */ #ifndef INI_USE_STACK #define INI_USE_STACK 1 #endif /* Maximum line length for any line in INI file (stack or heap). Note that this must be 3 more than the longest line (due to '\r', '\n', and '\0'). */ #ifndef INI_MAX_LINE #define INI_MAX_LINE 200 #endif /* Nonzero to allow heap line buffer to grow via realloc(), zero for a fixed-size buffer of INI_MAX_LINE bytes. Only applies if INI_USE_STACK is zero. */ #ifndef INI_ALLOW_REALLOC #define INI_ALLOW_REALLOC 0 #endif /* Initial size in bytes for heap line buffer. Only applies if INI_USE_STACK is zero. */ #ifndef INI_INITIAL_ALLOC #define INI_INITIAL_ALLOC 200 #endif /* Stop parsing on first error (default is to keep parsing). */ #ifndef INI_STOP_ON_FIRST_ERROR #define INI_STOP_ON_FIRST_ERROR 0 #endif /* Nonzero to call the handler at the start of each new section (with name and value NULL). Default is to only call the handler on each name=value pair. */ #ifndef INI_CALL_HANDLER_ON_NEW_SECTION #define INI_CALL_HANDLER_ON_NEW_SECTION 0 #endif /* Nonzero to allow a name without a value (no '=' or ':' on the line) and call the handler with value NULL in this case. Default is to treat no-value lines as an error. */ #ifndef INI_ALLOW_NO_VALUE #define INI_ALLOW_NO_VALUE 0 #endif /* Nonzero to use custom ini_malloc, ini_free, and ini_realloc memory allocation functions (INI_USE_STACK must also be 0). These functions must have the same signatures as malloc/free/realloc and behave in a similar way. ini_realloc is only needed if INI_ALLOW_REALLOC is set. */ #ifndef INI_CUSTOM_ALLOCATOR #define INI_CUSTOM_ALLOCATOR 0 #endif #ifdef __cplusplus } #endif #endif /* INI_H */ sail-0.9.8/src/sail/io_file.c000066400000000000000000000156131475535176100157750ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include /* size_t */ #include #include #include #ifdef _MSC_VER /* _SH_DENYWR */ #include #endif #include struct io_file_state { FILE *fptr; size_t file_size; }; /* * Private functions. */ static sail_status_t io_file_tolerant_read(void *stream, void *buf, size_t size_to_read, size_t *read_size) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(buf); SAIL_CHECK_PTR(read_size); struct io_file_state *io_file_state = stream; *read_size = fread(buf, 1, size_to_read, io_file_state->fptr); return SAIL_OK; } static sail_status_t io_file_strict_read(void *stream, void *buf, size_t size_to_read) { size_t read_size; SAIL_TRY(io_file_tolerant_read(stream, buf, size_to_read, &read_size)); if (read_size != size_to_read) { SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_IO); } return SAIL_OK; } static sail_status_t io_file_tolerant_write(void *stream, const void *buf, size_t size_to_write, size_t *written_size) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(buf); SAIL_CHECK_PTR(written_size); struct io_file_state *io_file_state = stream; *written_size = fwrite(buf, 1, size_to_write, io_file_state->fptr); return SAIL_OK; } static sail_status_t io_file_strict_write(void *stream, const void *buf, size_t size_to_write) { size_t written_size; SAIL_TRY(io_file_tolerant_write(stream, buf, size_to_write, &written_size)); if (written_size != size_to_write) { SAIL_LOG_AND_RETURN(SAIL_ERROR_WRITE_IO); } return SAIL_OK; } static sail_status_t io_file_seek(void *stream, long offset, int whence) { SAIL_CHECK_PTR(stream); struct io_file_state *io_file_state = stream; if (fseek(io_file_state->fptr, offset, whence) != 0) { sail_print_errno("Failed to seek: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_SEEK_IO); } return SAIL_OK; } static sail_status_t io_file_tell(void *stream, size_t *offset) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(offset); struct io_file_state *io_file_state = stream; long offset_local = ftell(io_file_state->fptr); if (offset_local < 0) { sail_print_errno("Failed to get the current I/O position: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_TELL_IO); } *offset = offset_local; return SAIL_OK; } static sail_status_t io_file_flush(void *stream) { SAIL_CHECK_PTR(stream); struct io_file_state *io_file_state = stream; if (fflush(io_file_state->fptr) != 0) { sail_print_errno("Failed to flush file buffers: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_FLUSH_IO); } return SAIL_OK; } static sail_status_t io_file_close(void *stream) { SAIL_CHECK_PTR(stream); struct io_file_state *io_file_state = stream; if (fclose(io_file_state->fptr) != 0) { sail_print_errno("Failed to close the file: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_CLOSE_IO); } sail_free(io_file_state); return SAIL_OK; } static sail_status_t io_file_eof(void *stream, bool *result) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(result); struct io_file_state *io_file_state = stream; if (feof(io_file_state->fptr)) { *result = true; } else { size_t offset; SAIL_TRY(io_file_tell(stream, &offset)); *result = (offset >= io_file_state->file_size); } return SAIL_OK; } static sail_status_t alloc_io_file(const char *path, const char *mode, struct sail_io **io) { SAIL_CHECK_PTR(path); SAIL_CHECK_PTR(mode); SAIL_CHECK_PTR(io); SAIL_LOG_DEBUG("Opening file '%s' in '%s' mode", path, mode); /* Try to open the file first */ FILE *fptr; #ifdef _MSC_VER fptr = _fsopen(path, mode, _SH_DENYWR); #else /* Fallback to a regular fopen() */ fptr = fopen(path, mode); #endif if (fptr == NULL) { sail_print_errno("Failed to open the specified file: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_OPEN_FILE); } void *ptr; SAIL_TRY(sail_malloc(sizeof(struct io_file_state), &ptr)); struct io_file_state *io_file_state = ptr; io_file_state->fptr = fptr; SAIL_TRY_OR_CLEANUP(sail_file_size(path, &io_file_state->file_size), /* cleanup */ fclose(io_file_state->fptr), sail_free(io_file_state)); SAIL_TRY_OR_CLEANUP(sail_alloc_io(io), /* cleanup */ fclose(io_file_state->fptr), sail_free(io_file_state)); (*io)->stream = io_file_state; return SAIL_OK; } /* * Public functions. */ sail_status_t sail_alloc_io_read_file(const char *path, struct sail_io **io) { SAIL_TRY(alloc_io_file(path, "rb", io)); (*io)->features = SAIL_IO_FEATURE_SEEKABLE; (*io)->tolerant_read = io_file_tolerant_read; (*io)->strict_read = io_file_strict_read; (*io)->tolerant_write = sail_io_noop_tolerant_write; (*io)->strict_write = sail_io_noop_strict_write; (*io)->seek = io_file_seek; (*io)->tell = io_file_tell; (*io)->flush = sail_io_noop_flush; (*io)->close = io_file_close; (*io)->eof = io_file_eof; return SAIL_OK; } sail_status_t sail_alloc_io_read_write_file(const char *path, struct sail_io **io) { SAIL_TRY(alloc_io_file(path, "w+b", io)); (*io)->tolerant_read = io_file_tolerant_read; (*io)->strict_read = io_file_strict_read; (*io)->tolerant_write = io_file_tolerant_write; (*io)->strict_write = io_file_strict_write; (*io)->seek = io_file_seek; (*io)->tell = io_file_tell; (*io)->flush = io_file_flush; (*io)->close = io_file_close; (*io)->eof = io_file_eof; return SAIL_OK; } sail-0.9.8/src/sail/io_file.h000066400000000000000000000035441475535176100160020ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_FILE_H #define SAIL_IO_FILE_H #include #include #ifdef __cplusplus extern "C" { #endif struct sail_io; /* * Opens the specified image file for reading and allocates a new I/O object for it. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_io_read_file(const char *path, struct sail_io **io); /* * Opens the specified image file for reading and writing, and allocates a new I/O object for it. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_io_read_write_file(const char *path, struct sail_io **io); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/io_memory.c000066400000000000000000000227011475535176100163620ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include struct mem_io_buffer_info { /* Total buffer size. */ size_t length; /* * The length of accessible buffer length. * * For example: * * 1. Reading * - open buffer of 10 Mb for reading * - accessible length now is 10 Mb * * 2. Writing * - open buffer of 10 Mb for writing * - write 100 Kb * - accessible length now is 100 Kb */ size_t accessible_length; /* Current stream position. */ size_t pos; }; struct mem_io_read_stream { struct mem_io_buffer_info mem_io_buffer_info; const void *buffer; }; struct mem_io_write_stream { struct mem_io_buffer_info mem_io_buffer_info; void *buffer; }; /* * Private functions. */ static sail_status_t io_memory_tolerant_read(void *stream, void *buf, size_t size_to_read, size_t *read_size) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(buf); SAIL_CHECK_PTR(read_size); struct mem_io_read_stream *mem_io_read_stream = (struct mem_io_read_stream *)stream; struct mem_io_buffer_info *mem_io_buffer_info = &mem_io_read_stream->mem_io_buffer_info; *read_size = 0; if (mem_io_buffer_info->pos >= mem_io_buffer_info->accessible_length) { SAIL_LOG_AND_RETURN(SAIL_ERROR_EOF); } size_t actual_size_to_read = (mem_io_buffer_info->pos + size_to_read > mem_io_buffer_info->accessible_length) ? mem_io_buffer_info->accessible_length - mem_io_buffer_info->pos : size_to_read; memcpy(buf, (const char *)mem_io_read_stream->buffer + mem_io_buffer_info->pos, actual_size_to_read); mem_io_buffer_info->pos += actual_size_to_read; *read_size = actual_size_to_read; return SAIL_OK; } static sail_status_t io_memory_strict_read(void *stream, void *buf, size_t size_to_read) { size_t read_size; SAIL_TRY(io_memory_tolerant_read(stream, buf, size_to_read, &read_size)); if (read_size != size_to_read) { SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_IO); } return SAIL_OK; } static sail_status_t io_memory_tolerant_write(void *stream, const void *buf, size_t size_to_write, size_t *written_size) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(buf); SAIL_CHECK_PTR(written_size); struct mem_io_write_stream *mem_io_write_stream = (struct mem_io_write_stream *)stream; struct mem_io_buffer_info *mem_io_buffer_info = &mem_io_write_stream->mem_io_buffer_info; *written_size = 0; if (mem_io_buffer_info->pos >= mem_io_buffer_info->length) { SAIL_LOG_AND_RETURN(SAIL_ERROR_EOF); } size_t actual_size_to_write = (mem_io_buffer_info->pos + size_to_write > mem_io_buffer_info->length) ? mem_io_buffer_info->length - mem_io_buffer_info->pos : size_to_write; memcpy((char *)mem_io_write_stream->buffer + mem_io_buffer_info->pos, buf, actual_size_to_write); mem_io_buffer_info->pos += actual_size_to_write; *written_size = actual_size_to_write; /* Update the accessible length in case of overflow. */ if (mem_io_buffer_info->pos >= mem_io_buffer_info->accessible_length) { mem_io_buffer_info->accessible_length = mem_io_buffer_info->pos; } return SAIL_OK; } static sail_status_t io_memory_strict_write(void *stream, const void *buf, size_t size_to_write) { size_t written_size; SAIL_TRY(io_memory_tolerant_write(stream, buf, size_to_write, &written_size)); if (written_size != size_to_write) { SAIL_LOG_AND_RETURN(SAIL_ERROR_WRITE_IO); } return SAIL_OK; } static sail_status_t io_memory_seek(void *stream, long offset, int whence) { SAIL_CHECK_PTR(stream); struct mem_io_buffer_info *mem_io_buffer_info = (struct mem_io_buffer_info *)stream; size_t new_pos; switch (whence) { case SEEK_SET: { new_pos = offset; break; } case SEEK_CUR: { new_pos = mem_io_buffer_info->pos + offset; break; } case SEEK_END: { new_pos = mem_io_buffer_info->accessible_length + offset; break; } default: { SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_SEEK_WHENCE); } } /* Correct the value. */ if (new_pos >= mem_io_buffer_info->length) { new_pos = mem_io_buffer_info->length; mem_io_buffer_info->accessible_length = mem_io_buffer_info->length; } else if (new_pos >= mem_io_buffer_info->accessible_length) { mem_io_buffer_info->accessible_length = new_pos + 1; } mem_io_buffer_info->pos = new_pos; return SAIL_OK; } static sail_status_t io_memory_tell(void *stream, size_t *offset) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(offset); struct mem_io_buffer_info *mem_io_buffer_info = (struct mem_io_buffer_info *)stream; *offset = mem_io_buffer_info->pos; return SAIL_OK; } static sail_status_t io_memory_flush(void *stream) { SAIL_CHECK_PTR(stream); return SAIL_OK; } static sail_status_t io_memory_close(void *stream) { SAIL_CHECK_PTR(stream); sail_free(stream); return SAIL_OK; } static sail_status_t io_memory_eof(void *stream, bool *result) { SAIL_CHECK_PTR(stream); SAIL_CHECK_PTR(result); struct mem_io_buffer_info *mem_io_buffer_info = (struct mem_io_buffer_info *)stream; *result = mem_io_buffer_info->pos >= mem_io_buffer_info->accessible_length; return SAIL_OK; } /* * Public functions. */ sail_status_t sail_alloc_io_read_memory(const void *buffer, size_t length, struct sail_io **io) { SAIL_CHECK_PTR(buffer); SAIL_CHECK_PTR(io); SAIL_LOG_DEBUG("Opening memory buffer of size %lu for reading", length); struct sail_io *io_local; SAIL_TRY(sail_alloc_io(&io_local)); void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(struct mem_io_read_stream), &ptr), /* cleanup */ sail_destroy_io(io_local)); struct mem_io_read_stream *mem_io_read_stream = ptr; mem_io_read_stream->mem_io_buffer_info.length = length; mem_io_read_stream->mem_io_buffer_info.accessible_length = length; mem_io_read_stream->mem_io_buffer_info.pos = 0; mem_io_read_stream->buffer = buffer; io_local->stream = mem_io_read_stream; io_local->tolerant_read = io_memory_tolerant_read; io_local->strict_read = io_memory_strict_read; io_local->tolerant_write = sail_io_noop_tolerant_write; io_local->strict_write = sail_io_noop_strict_write; io_local->seek = io_memory_seek; io_local->tell = io_memory_tell; io_local->flush = sail_io_noop_flush; io_local->close = io_memory_close; io_local->eof = io_memory_eof; *io = io_local; return SAIL_OK; } sail_status_t sail_alloc_io_read_write_memory(void *buffer, size_t length, struct sail_io **io) { SAIL_CHECK_PTR(buffer); SAIL_CHECK_PTR(io); SAIL_LOG_DEBUG("Opening memory buffer of size %lu for reading/writing", length); struct sail_io *io_local; SAIL_TRY(sail_alloc_io(&io_local)); void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(struct mem_io_write_stream), &ptr), /* cleanup */ sail_destroy_io(io_local)); struct mem_io_write_stream *mem_io_write_stream = ptr; mem_io_write_stream->mem_io_buffer_info.length = length; mem_io_write_stream->mem_io_buffer_info.accessible_length = length; mem_io_write_stream->mem_io_buffer_info.pos = 0; mem_io_write_stream->buffer = buffer; io_local->features = SAIL_IO_FEATURE_SEEKABLE; io_local->stream = mem_io_write_stream; io_local->tolerant_read = io_memory_tolerant_read; io_local->strict_read = io_memory_strict_read; io_local->tolerant_write = io_memory_tolerant_write; io_local->strict_write = io_memory_strict_write; io_local->seek = io_memory_seek; io_local->tell = io_memory_tell; io_local->flush = io_memory_flush; io_local->close = io_memory_close; io_local->eof = io_memory_eof; *io = io_local; return SAIL_OK; } sail-0.9.8/src/sail/io_memory.h000066400000000000000000000036601475535176100163720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_MEMORY_H #define SAIL_IO_MEMORY_H #include /* size_t */ #include #include #ifdef __cplusplus extern "C" { #endif struct sail_io; /* * Opens the specified memory buffer for reading and allocates a new I/O object for it. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_io_read_memory(const void *buffer, size_t length, struct sail_io **io); /* * Opens the specified memory buffer for reading and writing, and allocates a new I/O object for it. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_alloc_io_read_write_memory(void *buffer, size_t length, struct sail_io **io); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/io_noop.c000066400000000000000000000055461475535176100160350ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include sail_status_t sail_io_noop_tolerant_read(void *stream, void *buf, size_t size_to_read, size_t *read_size) { (void)stream; (void)buf; (void)size_to_read; (void)read_size; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_strict_read(void *stream, void *buf, size_t size_to_read) { (void)stream; (void)buf; (void)size_to_read; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_seek(void *stream, long offset, int whence) { (void)stream; (void)offset; (void)whence; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_tell(void *stream, size_t *offset) { (void)stream; (void)offset; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_tolerant_write(void *stream, const void *buf, size_t size_to_write, size_t *written_size) { (void)stream; (void)buf; (void)size_to_write; (void)written_size; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_strict_write(void *stream, const void *buf, size_t size_to_write) { (void)stream; (void)buf; (void)size_to_write; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_flush(void *stream) { (void)stream; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_close(void *stream) { (void)stream; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail_status_t sail_io_noop_eof(void *stream, bool *result) { (void)stream; (void)result; SAIL_LOG_AND_RETURN(SAIL_ERROR_NOT_IMPLEMENTED); } sail-0.9.8/src/sail/io_noop.h000066400000000000000000000061001475535176100160250ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_IO_NOOP_H #define SAIL_IO_NOOP_H #include #include /* size_t */ #include #include #ifdef __cplusplus extern "C" { #endif /* * No-op callbacks for I/O streams when specific operations cannot be executed. * For example, when we open a file for reading, its tolerant_write callback is set to * sail_io_noop_tolerant_write. */ /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_tolerant_read(void *stream, void *buf, size_t size_to_read, size_t *read_size); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_strict_read(void *stream, void *buf, size_t size_to_read); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_seek(void *stream, long offset, int whence); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_tell(void *stream, size_t *offset); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_tolerant_write(void *stream, const void *buf, size_t size_to_write, size_t *written_size); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_strict_write(void *stream, const void *buf, size_t size_to_write); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_flush(void *stream); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_close(void *stream); /* * No-op callback that just returns SAIL_ERROR_NOT_IMPLEMENTED. */ SAIL_EXPORT sail_status_t sail_io_noop_eof(void *stream, bool *result); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/layout/000077500000000000000000000000001475535176100155325ustar00rootroot00000000000000sail-0.9.8/src/sail/layout/v8.h000066400000000000000000000176761475535176100162610ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* * This is a codec layout definition file. * * It's intedened to be used as a reference how codecs V8 are organized. It's also could * be used by codecs' developers to compile their codecs directly into a test application * to simplify debugging. * * Include guards are not used as the header may be included multiple times with different * SAIL_CODEC_NAME definitions. */ #include #ifdef __cplusplus extern "C" { #endif #ifndef SAIL_CODEC_NAME /* * Generate syntax error. * * Usage: * * #define SAIL_CODEC_NAME jpeg * #include */ Please define SAIL_CODEC_NAME before including this header. #endif #define SAIL_CONSTRUCT_CODEC_FUNC_CONCAT2_IMPL(a, b) a##_##b #define SAIL_CONSTRUCT_CODEC_FUNC_CONCAT2(a, b) SAIL_CONSTRUCT_CODEC_FUNC_CONCAT2_IMPL(a, b) #define SAIL_CONSTRUCT_CODEC_FUNC(name) SAIL_CONSTRUCT_CODEC_FUNC_CONCAT2(name, SAIL_CODEC_NAME) /* * Decoding functions. */ /* * Starts decoding the specified io stream using the specified options. * * libsail, the caller of this function, guarantees the following: * - The IO is valid and open. * - The load options is not NULL. * * This function MUST: * - Allocate an internal state object with internal data structures necessary to decode a file, * and assign its value to the state. * * STATE explanation: Pass the address of a local void* pointer. Codecs will store an internal state * in it and destroy it in sail_codec_load_finish_v8(). States must be used per image. DO NOT use the same state * to load multiple images in the same time. * * Returns SAIL_OK on success. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_init_v8)(struct sail_io *io, const struct sail_load_options *load_options, void **state); /* * Seeks to the next frame. The frame is NOT immediately loaded or decoded by most SAIL codecs. * SAIL uses this method in loading and probing operations. * * SAIL uses sail_codec_load_frame_v8() to actually load the frame. * * libsail, the caller of this function, guarantees the following: * - The state points to the state allocated by sail_codec_load_init_v8(). * * This function MUST: * - Allocate the image and the source image (sail_image.sail_source_image). * - Fill the expected image properties (width, height, pixel format, image properties etc.) and meta data. * The image pixel format must be as close to the source as possible. * - Seek to the next image frame. * * This function MUST NOT: * - Allocate the image pixels. They will be allocated by libsail and will be available in * sail_codec_load_frame_v8(). * * Returns SAIL_OK on success. * Returns SAIL_ERROR_NO_MORE_FRAMES when no more frames are available. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_seek_next_frame_v8)(void *state, struct sail_image **image); /* * Reads the next frame of the current image. The image pixels are pre-allocated by libsail. * * libsail, the caller of this function, guarantees the following: * - The state is valid and points to the state allocated by sail_codec_load_init_v8(). * - The image points to the image allocated by sail_codec_load_seek_next_frame_v8(). * - The image pixels are allocated. * * This function MUST: * - Read the image pixels into sail_image.pixels. * - Output pixels with the origin in the top left corner (i.e. not flipped). * - Output pixels in format as close to the source as possible. * * Returns SAIL_OK on success. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_frame_v8)(void *state, struct sail_image *image); /* * Finilizes loading operation. No more loadings are possible after calling this function. * This function doesn't close the io stream. It just stops decoding. Use io->close() or sail_destroy_io() * to actually close the io stream. * * libsail, the caller of this function, guarantees the following: * - The state points to the state allocated by sail_codec_load_init_v8(). * * This function MUST: * - Destroy the state and set it to NULL. * * This function MUST NOT: * - Close the IO. * * Returns SAIL_OK on success. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_load_finish_v8)(void **state); /* * Encoding functions. */ /* * Starts encoding the specified io stream using the specified options. The specified save options * will be deep copied into an internal buffer. * * libsail, the caller of this function, guarantees the following: * - The IO is valid and open. * - The save options is not NULL. * * This function MUST: * - Allocate an internal state object with internal data structures necessary to decode a file, * and assign its value to the state. * * STATE explanation: Pass the address of a local void* pointer. Codecs will store an internal state * in it and destroy it in sail_codec_save_finish_v8(). States must be used per image. DO NOT use the same state * to save multiple images to different targets in the same time. * * Returns SAIL_OK on success. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_init_v8)(struct sail_io *io, const struct sail_save_options *save_options, void **state); /* * Seeks to a next frame before saving it. The frame is NOT immediately written. Use sail_codec_save_frame_v8() * to actually save a frame. * * libsail, the caller of this function, guarantees the following: * - The state points to the state allocated by sail_codec_save_init_v8(). * - The image is valid. * * This function MUST: * - Seek to the right position before saving the next image frame. * * Returns SAIL_OK on success. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_seek_next_frame_v8)(void *state, const struct sail_image *image); /* * Writes a next frame of the current image. * * libsail, the caller of this function, guarantees the following: * - The state is valid and points to the state allocated by sail_codec_save_init_v8(). * - The image is valid. * * This function MUST: * - Write the image pixels and meta data into the IO. * * Returns SAIL_OK on success. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_frame_v8)(void *state, const struct sail_image *image); /* * Finilizes saving operation. No more savings are possible after calling this function. * This function doesn't close the io stream. Use io->close() or sail_destroy_io() to actually * close the io stream. * * libsail, the caller of this function, guarantees the following: * - The state points to the state allocated by sail_codec_save_init_v8(). * * This function MUST: * - Destroy the state and set it to NULL. * * This function MUST NOT: * - Close the IO. * * Returns SAIL_OK on success. */ sail_status_t SAIL_CONSTRUCT_CODEC_FUNC(sail_codec_save_finish_v8)(void **state); /* extern "C" */ #ifdef __cplusplus } #endif sail-0.9.8/src/sail/layout/v8_pointers.h000066400000000000000000000042561475535176100201720ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_CODEC_LAYOUT_FUNCTIONS_POINTERS_H #define SAIL_CODEC_LAYOUT_FUNCTIONS_POINTERS_H #include /* * Decoding functions. */ typedef sail_status_t (*sail_codec_load_init_v8_t)(struct sail_io *io, const struct sail_load_options *load_options, void **state); typedef sail_status_t (*sail_codec_load_seek_next_frame_v8_t)(void *state, struct sail_image **image); typedef sail_status_t (*sail_codec_load_frame_v8_t)(void *state, struct sail_image *image); typedef sail_status_t (*sail_codec_load_finish_v8_t)(void **state); /* * Encoding functions. */ typedef sail_status_t (*sail_codec_save_init_v8_t)(struct sail_io *io, const struct sail_save_options *save_options, void **state); typedef sail_status_t (*sail_codec_save_seek_next_frame_v8_t)(void *state, const struct sail_image *image); typedef sail_status_t (*sail_codec_save_frame_v8_t)(void *state, const struct sail_image *image); typedef sail_status_t (*sail_codec_save_finish_v8_t)(void **state); #endif sail-0.9.8/src/sail/pkgconfig/000077500000000000000000000000001475535176100161645ustar00rootroot00000000000000sail-0.9.8/src/sail/pkgconfig/sail.pc.in000066400000000000000000000004351475535176100200470ustar00rootroot00000000000000prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_PREFIX@ libdir=@SAIL_LIBDIR_FOR_PKG_CONFIG@ includedir=@SAIL_INCLUDEDIR_FOR_PKG_CONFIG@/sail Name: sail Description: SAIL client library Version: @VERSION@ Requires: sail-common Libs: -L${libdir} -lsail Cflags: -I${includedir} sail-0.9.8/src/sail/sail.h000066400000000000000000000041471475535176100153240ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_H #define SAIL_SAIL_H /* Universal sail include. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef SAIL_BUILD #include #include #include #include #include #include #include #include #include #ifdef SAIL_THREAD_SAFE #include #endif #endif #endif sail-0.9.8/src/sail/sail_advanced.c000066400000000000000000000151711475535176100171430ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include sail_status_t sail_probe_io(struct sail_io *io, struct sail_image **image, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(io); const struct sail_codec_info *codec_info_noop; const struct sail_codec_info **codec_info_local = codec_info == NULL ? &codec_info_noop : codec_info; SAIL_TRY(sail_codec_info_by_magic_number_from_io(io, codec_info_local)); const struct sail_codec *codec; SAIL_TRY(load_codec_by_codec_info(*codec_info_local, &codec)); struct sail_load_options *load_options_local; SAIL_TRY(sail_alloc_load_options_from_features((*codec_info_local)->load_features, &load_options_local)); void *state = NULL; SAIL_TRY_OR_CLEANUP(codec->v8->load_init(io, load_options_local, &state), /* cleanup */ codec->v8->load_finish(&state), sail_destroy_load_options(load_options_local)); sail_destroy_load_options(load_options_local); struct sail_image *image_local; SAIL_TRY_OR_CLEANUP(codec->v8->load_seek_next_frame(state, &image_local), /* cleanup */ codec->v8->load_finish(&state)); SAIL_TRY_OR_CLEANUP(codec->v8->load_finish(&state), /* ceanup */ sail_destroy_image(image_local)); *image = image_local; return SAIL_OK; } sail_status_t sail_probe_memory(const void *buffer, size_t buffer_size, struct sail_image **image, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(buffer); struct sail_io *io; SAIL_TRY(sail_alloc_io_read_memory(buffer, buffer_size, &io)); SAIL_TRY_OR_CLEANUP(sail_probe_io(io, image, codec_info), /* cleanup */ sail_destroy_io(io)); sail_destroy_io(io); return SAIL_OK; } sail_status_t sail_start_loading_from_file(const char *path, const struct sail_codec_info *codec_info, void **state) { SAIL_TRY(sail_start_loading_from_file_with_options(path, codec_info, NULL, state)); return SAIL_OK; } sail_status_t sail_start_loading_from_memory(const void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, void **state) { SAIL_TRY(sail_start_loading_from_memory_with_options(buffer, buffer_size, codec_info, NULL, state)); return SAIL_OK; } sail_status_t sail_load_next_frame(void *state, struct sail_image **image) { SAIL_CHECK_PTR(state); SAIL_CHECK_PTR(image); struct hidden_state *state_of_mind = (struct hidden_state *)state; SAIL_TRY(sail_check_io_valid(state_of_mind->io)); SAIL_CHECK_PTR(state_of_mind->state); SAIL_CHECK_PTR(state_of_mind->codec); struct sail_image *image_local; SAIL_TRY(state_of_mind->codec->v8->load_seek_next_frame(state_of_mind->state, &image_local)); if (image_local->pixels != NULL) { SAIL_LOG_ERROR("Internal error in %s codec: codecs must not allocate pixels", state_of_mind->codec_info->name); sail_destroy_image(image_local); SAIL_LOG_AND_RETURN(SAIL_ERROR_CONFLICTING_OPERATION); } /* Allocate pixels. */ const size_t pixels_size = (size_t)image_local->height * image_local->bytes_per_line; SAIL_TRY_OR_CLEANUP(sail_malloc(pixels_size, &image_local->pixels), /* cleanup */ sail_destroy_image(image_local)); SAIL_TRY_OR_CLEANUP(state_of_mind->codec->v8->load_frame(state_of_mind->state, image_local), /* cleanup */ sail_destroy_image(image_local)); *image = image_local; return SAIL_OK; } sail_status_t sail_stop_loading(void *state) { /* Not an error. */ if (state == NULL) { return SAIL_OK; } struct hidden_state *state_of_mind = (struct hidden_state *)state; /* Not an error. */ if (state_of_mind->codec == NULL) { destroy_hidden_state(state_of_mind); return SAIL_OK; } SAIL_TRY_OR_CLEANUP(state_of_mind->codec->v8->load_finish(&state_of_mind->state), /* cleanup */ destroy_hidden_state(state_of_mind)); destroy_hidden_state(state_of_mind); return SAIL_OK; } sail_status_t sail_start_saving_into_file(const char *path, const struct sail_codec_info *codec_info, void **state) { SAIL_TRY(sail_start_saving_into_file_with_options(path, codec_info, NULL, state)); return SAIL_OK; } sail_status_t sail_start_saving_into_memory(void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, void **state) { SAIL_TRY(sail_start_saving_into_memory_with_options(buffer, buffer_size, codec_info, NULL, state)); return SAIL_OK; } sail_status_t sail_write_next_frame(void *state, const struct sail_image *image) { SAIL_CHECK_PTR(state); SAIL_CHECK_PTR(image); struct hidden_state *state_of_mind = (struct hidden_state *)state; SAIL_TRY(sail_check_io_valid(state_of_mind->io)); SAIL_CHECK_PTR(state_of_mind->state); SAIL_CHECK_PTR(state_of_mind->codec_info); SAIL_CHECK_PTR(state_of_mind->codec); /* Check if we actually able to save the requested pixel format. */ SAIL_TRY(allowed_write_output_pixel_format(state_of_mind->codec_info->save_features, image->pixel_format)); SAIL_TRY(state_of_mind->codec->v8->save_seek_next_frame(state_of_mind->state, image)); SAIL_TRY(state_of_mind->codec->v8->save_frame(state_of_mind->state, image)); return SAIL_OK; } sail_status_t sail_stop_saving(void *state) { SAIL_TRY(stop_saving(state, NULL)); return SAIL_OK; } sail-0.9.8/src/sail/sail_advanced.h000066400000000000000000000167751475535176100171630ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_ADVANCED_H #define SAIL_SAIL_ADVANCED_H #include /* size_t */ #include #include #ifdef __cplusplus extern "C" { #endif struct sail_codec_info; /* * Loads an image from the specified I/O source and returns its properties without pixels. * The assigned codec info MUST NOT be destroyed because it is a pointer to an internal * data structure. If you don't need it, just pass NULL. * * This function is pretty fast because it doesn't decode whole image data for most image formats. * * Typical usage: This is a standalone function that could be called at any time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_probe_io(struct sail_io *io, struct sail_image **image, const struct sail_codec_info **codec_info); /* * Loads an image from the specified memory buffer and returns its properties without pixels. * The assigned codec info MUST NOT be destroyed because it is a pointer to an internal * data structure. If you don't need it, just pass NULL. * * This function is pretty fast because it doesn't decode whole image data for most image formats. * * Typical usage: This is a standalone function that could be called at any time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_probe_memory(const void *buffer, size_t buffer_size, struct sail_image **image, const struct sail_codec_info **codec_info); /* * Starts loading the specified image file. Pass codec info if you would like to start loading * with a specific codec. If not, just pass NULL, and SAIL will detect it automatically. * * Typical usage: sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Or: sail_codec_info_from_extension() -> * sail_start_loading_from_file() -> * sail_load_next_frame() -> * sail_stop_loading(). * * STATE explanation: Pass the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_loading. States must be used per image. DO NOT use the same state * to start loading multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_loading_from_file(const char *path, const struct sail_codec_info *codec_info, void **state); /* * Starts loading the specified memory buffer. * * Typical usage: sail_codec_info_from_extension() -> * sail_start_loading_from_memory() -> * sail_load_next_frame() -> * sail_stop_loading(). * * STATE explanation: Passes the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_loading(). States must be used per image. DO NOT use the same state * to start loading multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_loading_from_memory(const void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, void **state); /* * Continues loading the file started by sail_start_loading_from_file() and brothers. * * Returns SAIL_OK on success. * Returns SAIL_ERROR_NO_MORE_FRAMES when no more frames are available. */ SAIL_EXPORT sail_status_t sail_load_next_frame(void *state, struct sail_image **image); /* * Stops loading the file started by sail_start_loading_from_file() and brothers. * Does nothing if the state is NULL. * * It is essential to always stop saving to free memory and I/O resources. Failure to do so * will lead to memory leaks. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_stop_loading(void *state); /* * Starts saving into the specified image file. Pass codec info if you'd like to start saving * with a specific codec. If not, just pass NULL, and SAIL will detect it automatically. * * Typical usage: sail_start_saving_into_file() -> * sail_write_next_frame() -> * sail_stop_saving(). * * Or: sail_codec_info_from_extension() -> * sail_start_saving_into_file() -> * sail_write_next_frame() -> * sail_stop_saving(). * * STATE explanation: Pass the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_saving. States must be used per image. DO NOT use the same state * to start saving multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_saving_into_file(const char *path, const struct sail_codec_info *codec_info, void **state); /* * Starts saving the specified memory buffer. * * Typical usage: sail_codec_info_from_extension() -> * sail_start_saving_into_memory() -> * sail_write_next_frame() -> * sail_stop_saving(). * * STATE explanation: Passes the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_saving. States must be used per image. DO NOT use the same state * to start saving multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_saving_into_memory(void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, void **state); /* * Continues saving started by sail_start_saving_into_file() and brothers. Writes the specified * image into the underlying I/O target. * * If the selected image format doesn't support the image pixel format, an error is returned. * Consider converting the image into a supported image format beforehand with functions * from sail-manip. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_write_next_frame(void *state, const struct sail_image *image); /* * Stops saving started by sail_start_saving_into_file() and brothers. Closes the underlying I/O target. * Does nothing if the state is NULL. * * It is essential to always stop saving to free memory and I/O resources. Failure to do so * will lead to memory leaks. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_stop_saving(void *state); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/sail_deep_diver.c000066400000000000000000000102261475535176100175000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include sail_status_t sail_start_loading_from_file_with_options(const char *path, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state) { SAIL_CHECK_PTR(path); const struct sail_codec_info *codec_info_local; if (codec_info == NULL) { SAIL_TRY(sail_codec_info_from_path(path, &codec_info_local)); } else { codec_info_local = codec_info; } struct sail_io *io; SAIL_TRY(sail_alloc_io_read_file(path, &io)); SAIL_TRY(start_loading_io_with_options(io, true, codec_info_local, load_options, state)); return SAIL_OK; } sail_status_t sail_start_loading_from_memory_with_options(const void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state) { SAIL_CHECK_PTR(buffer); const struct sail_codec_info *codec_info_local; if (codec_info == NULL) { SAIL_TRY(sail_codec_info_by_magic_number_from_memory(buffer, buffer_size, &codec_info_local)); } else { codec_info_local = codec_info; } struct sail_io *io; SAIL_TRY(sail_alloc_io_read_memory(buffer, buffer_size, &io)); SAIL_TRY(start_loading_io_with_options(io, true, codec_info_local, load_options, state)); return SAIL_OK; } sail_status_t sail_start_saving_into_file_with_options(const char *path, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state) { SAIL_CHECK_PTR(path); const struct sail_codec_info *codec_info_local; if (codec_info == NULL) { SAIL_TRY(sail_codec_info_from_path(path, &codec_info_local)); } else { codec_info_local = codec_info; } struct sail_io *io; SAIL_TRY(sail_alloc_io_read_write_file(path, &io)); /* The I/O object will be destroyed in this function. */ SAIL_TRY(start_saving_io_with_options(io, true, codec_info_local, save_options, state)); return SAIL_OK; } sail_status_t sail_start_saving_into_memory_with_options(void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state) { SAIL_CHECK_PTR(buffer); SAIL_CHECK_PTR(codec_info); struct sail_io *io; SAIL_TRY(sail_alloc_io_read_write_memory(buffer, buffer_size, &io)); /* The I/O object will be destroyed in this function. */ SAIL_TRY(start_saving_io_with_options(io, true, codec_info, save_options, state)); return SAIL_OK; } sail_status_t sail_stop_saving_with_written(void *state, size_t *written) { SAIL_TRY(stop_saving(state, written)); return SAIL_OK; } sail-0.9.8/src/sail/sail_deep_diver.h000066400000000000000000000155341475535176100175140ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_DEEP_DIVER_H #define SAIL_SAIL_DEEP_DIVER_H #include /* size_t */ #include #include #ifdef __cplusplus extern "C" { #endif struct sail_codec_info; struct sail_io; struct sail_load_options; struct sail_save_options; /* * Starts loading the specified image file with the specified load options. Pass codec info if you would like * to start loading with a specific codec. If not, just pass NULL, and SAIL will detect it automatically. * If you do not need specific load options, just pass NULL. Codec-specific defaults will be used in this case. * * The load options are deep copied. * * Typical usage: sail_start_loading_from_file_with_options() -> * sail_load_next_frame() -> * sail_stop_loading(). * * Or: sail_codec_info_from_extension() -> * sail_start_loading_from_file_with_options() -> * sail_load_next_frame() -> * sail_stop_loading(). * * STATE explanation: Passes the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_loading(). States must be used per image. DO NOT use the same state * to start loading multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_loading_from_file_with_options(const char *path, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state); /* * Starts loading the specified memory buffer with the specified load options. If you do not need specific load options, * just pass NULL. Codec-specific defaults will be used in this case. * * The load options are deep copied. * * Typical usage: sail_codec_info_from_extension() -> * sail_start_loading_from_memory_with_options() -> * sail_load_next_frame() -> * sail_stop_loading(). * * STATE explanation: Passes the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_loading(). States must be used per image. DO NOT use the same state * to start loading multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_loading_from_memory_with_options(const void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state); /* * Starts saving the specified image file with the specified save options. Pass codec info if you would like * to start saving with a specific codec. If not, just pass NULL, and SAIL will detect it automatically. * If you do not need specific save options, just pass NULL. Codec-specific defaults will be used in this case. * * The save options are deep copied. * * Typical usage: sail_start_saving_into_file_with_options() -> * sail_write_next_frame() -> * sail_stop_saving(). * * Or: sail_codec_info_from_extension() -> * sail_start_saving_into_file_with_options() -> * sail_write_next_frame() -> * sail_stop_saving(). * * STATE explanation: Passes the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_saving(). States must be used per image. DO NOT use the same state * to start saving multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_saving_into_file_with_options(const char *path, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state); /* * Starts saving the specified memory buffer with the specified save options. If you do not need specific * save options, just pass NULL. Codec-specific defaults will be used in this case. * * The save options are deep copied. * * Typical usage: sail_codec_info_from_extension() -> * sail_start_saving_into_memory_with_options() -> * sail_write_next_frame() -> * sail_stop_saving(). * * STATE explanation: Passes the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_saving. States must be used per image. DO NOT use the same state * to start saving multiple images at the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_saving_into_memory_with_options(void *buffer, size_t buffer_size, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state); /* * Stops saving started by sail_start_saving_into_file() and brothers. Closes the underlying I/O target. * Assigns the number of bytes written to the 'written' argument. Does nothing if the state is NULL. * * It is essential to always stop saving to free memory and I/O resources. Failure to do so * will lead to memory leaks. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_stop_saving_with_written(void *state, size_t *written); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/sail_junior.c000066400000000000000000000134741475535176100167100ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include /* * Private functions. */ static sail_status_t probe_file_with_io(const char *path, struct sail_image **image, const struct sail_codec_info **codec_info) { struct sail_io *io; SAIL_TRY(sail_alloc_io_read_file(path, &io)); SAIL_TRY_OR_CLEANUP(sail_probe_io(io, image, codec_info), /* cleanup */ sail_destroy_io(io)); sail_destroy_io(io); return SAIL_OK; } /* * Public functions. */ sail_status_t sail_probe_file(const char *path, struct sail_image **image, const struct sail_codec_info **codec_info) { SAIL_CHECK_PTR(path); const struct sail_codec_info *codec_info_noop; const struct sail_codec_info **codec_info_local = codec_info == NULL ? &codec_info_noop : codec_info; SAIL_TRY_OR_EXECUTE(sail_codec_info_from_path(path, codec_info_local), /* cleanup */ SAIL_TRY(probe_file_with_io(path, image, codec_info))); const struct sail_codec *codec; SAIL_TRY(load_codec_by_codec_info(*codec_info_local, &codec)); struct sail_load_options *load_options_local; SAIL_TRY(sail_alloc_load_options_from_features((*codec_info_local)->load_features, &load_options_local)); struct sail_io *io; SAIL_TRY_OR_CLEANUP(sail_alloc_io_read_file(path, &io), /* cleanup */ sail_destroy_load_options(load_options_local)); void *state = NULL; SAIL_TRY_OR_CLEANUP(codec->v8->load_init(io, load_options_local, &state), /* cleanup */ codec->v8->load_finish(&state), sail_destroy_io(io), sail_destroy_load_options(load_options_local)); sail_destroy_load_options(load_options_local); struct sail_image *image_local; SAIL_TRY_OR_CLEANUP(codec->v8->load_seek_next_frame(state, &image_local), /* cleanup */ codec->v8->load_finish(&state), sail_destroy_io(io)); SAIL_TRY_OR_CLEANUP(codec->v8->load_finish(&state), /* cleanup */ sail_destroy_image(image_local), sail_destroy_io(io)); sail_destroy_io(io); *image = image_local; return SAIL_OK; } sail_status_t sail_load_from_file(const char *path, struct sail_image **image) { SAIL_CHECK_PTR(path); SAIL_CHECK_PTR(image); void *state = NULL; SAIL_TRY_OR_CLEANUP(sail_start_loading_from_file(path, NULL /* codec info */, &state), /* cleanup */ sail_stop_loading(state)); struct sail_image *image_local; SAIL_TRY_OR_CLEANUP(sail_load_next_frame(state, &image_local), /* cleanup */ sail_stop_loading(state)); SAIL_TRY_OR_CLEANUP(sail_stop_loading(state), /* cleanup */ sail_destroy_image(image_local)); *image = image_local; return SAIL_OK; } sail_status_t sail_load_from_memory(const void *buffer, size_t buffer_size, struct sail_image **image) { SAIL_CHECK_PTR(buffer); SAIL_CHECK_PTR(image); void *state = NULL; SAIL_TRY_OR_CLEANUP(sail_start_loading_from_memory(buffer, buffer_size, NULL /* codec info */, &state), /* cleanup */ sail_stop_loading(state)); SAIL_TRY_OR_CLEANUP(sail_load_next_frame(state, image), /* cleanup */ sail_stop_loading(state)); SAIL_TRY_OR_CLEANUP(sail_stop_loading(state), /* cleanup */ sail_destroy_image(*image)); return SAIL_OK; } sail_status_t sail_save_into_file(const char *path, const struct sail_image *image) { SAIL_CHECK_PTR(path); SAIL_TRY(sail_check_image_valid(image)); void *state = NULL; SAIL_TRY_OR_CLEANUP(sail_start_saving_into_file(path, NULL /* codec info */, &state), sail_stop_saving(state)); SAIL_TRY_OR_CLEANUP(sail_write_next_frame(state, image), sail_stop_saving(state)); SAIL_TRY(sail_stop_saving(state)); return SAIL_OK; } sail_status_t sail_save_into_memory(void *buffer, size_t buffer_size, const struct sail_image *image, size_t *written) { SAIL_CHECK_PTR(buffer); SAIL_TRY(sail_check_image_valid(image)); void *state = NULL; SAIL_TRY_OR_CLEANUP(sail_start_saving_into_memory(buffer, buffer_size, NULL /* codec info */, &state), sail_stop_saving(state)); SAIL_TRY_OR_CLEANUP(sail_write_next_frame(state, image), sail_stop_saving(state)); if (written == NULL) { SAIL_TRY(sail_stop_saving(state)); } else { SAIL_TRY(sail_stop_saving_with_written(state, written)); } return SAIL_OK; } sail-0.9.8/src/sail/sail_junior.h000066400000000000000000000073531475535176100167140ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_JUNIOR_H #define SAIL_SAIL_JUNIOR_H #include /* size_t */ #include #include #ifdef __cplusplus extern "C" { #endif struct sail_image; struct sail_io; struct sail_codec_info; /* * Loads the specified image file and returns its properties without pixels. * The assigned codec info MUST NOT be destroyed because it is a pointer to an internal * data structure. If you don't need it, just pass NULL. * * This function is pretty fast because it doesn't decode whole image data for most image formats. * * Typical usage: This is a standalone function that could be called at any time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_probe_file(const char *path, struct sail_image **image, const struct sail_codec_info **codec_info); /* * Loads the specified image file and returns its properties and pixels. * * Typical usage: This is a standalone function that could be called at any time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_load_from_file(const char *path, struct sail_image **image); /* * Loads an image from the specified memory buffer and returns its properties and pixels. * * Typical usage: This is a standalone function that could be called at any time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_load_from_memory(const void *buffer, size_t buffer_size, struct sail_image **image); /* * Saves the specified image into the file. * * If the selected image format doesn't support the image pixel format, an error is returned. * Consider converting the image into a supported image format beforehand with functions * from sail-manip. * * Typical usage: This is a standalone function that could be called at any time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_save_into_file(const char *path, const struct sail_image *image); /* * Saves the specified image into the specified memory buffer. * * If the selected image format doesn't support the image pixel format, an error is returned. * Consider converting the image into a supported image format beforehand with functions * from sail-manip. * * Saves the number of bytes written into the 'written' argument if it's not NULL. * * Typical usage: This is a standalone function that could be called at any time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_save_into_memory(void *buffer, size_t buffer_size, const struct sail_image *image, size_t *written); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/sail_private.c000066400000000000000000000121231475535176100170420ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include /* * Private functions. */ static void print_unsupported_write_pixel_format(enum SailPixelFormat pixel_format) { SAIL_LOG_ERROR("This codec cannot save %s pixels. Use its save features to get the list of supported pixel formats for saving", sail_pixel_format_to_string(pixel_format)); } static sail_status_t load_codec_by_codec_info_unsafe(const struct sail_codec_info *codec_info, const struct sail_codec **codec) { SAIL_CHECK_PTR(codec_info); SAIL_CHECK_PTR(codec); struct sail_context *context; SAIL_TRY(fetch_global_context_unsafe(&context)); /* Find the codec in the cache. */ struct sail_codec_bundle *found_codec_bundle = NULL; for (struct sail_codec_bundle_node *codec_bundle_node = context->codec_bundle_node; codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { struct sail_codec_bundle *codec_bundle = codec_bundle_node->codec_bundle; if (codec_bundle->codec_info == codec_info) { if (codec_bundle->codec != NULL) { *codec = codec_bundle->codec; return SAIL_OK; } found_codec_bundle = codec_bundle_node->codec_bundle; break; } } /* Something weird. The pointer to the codec info is not found in the cache. */ if (found_codec_bundle == NULL) { SAIL_LOG_AND_RETURN(SAIL_ERROR_CODEC_NOT_FOUND); } if (found_codec_bundle->codec == NULL) { SAIL_TRY(alloc_and_load_codec(found_codec_bundle->codec_info, &found_codec_bundle->codec)); } *codec = found_codec_bundle->codec; return SAIL_OK; } /* * Public functions. */ sail_status_t load_codec_by_codec_info(const struct sail_codec_info *codec_info, const struct sail_codec **codec) { SAIL_CHECK_PTR(codec_info); SAIL_CHECK_PTR(codec); SAIL_TRY(lock_context()); SAIL_TRY_OR_CLEANUP(load_codec_by_codec_info_unsafe(codec_info, codec), /* cleanup */ unlock_context()); SAIL_TRY(unlock_context()); return SAIL_OK; } void destroy_hidden_state(struct hidden_state *state) { if (state == NULL) { return; } if (state->own_io) { sail_destroy_io(state->io); } sail_destroy_load_options(state->load_options); sail_destroy_save_options(state->save_options); /* This state must be freed and zeroed by codecs. We free it just in case to avoid memory leaks. */ sail_free(state->state); sail_free(state); } sail_status_t stop_saving(void *state, size_t *written) { if (written != NULL) { *written = 0; } /* Not an error. */ if (state == NULL) { return SAIL_OK; } struct hidden_state *state_of_mind = (struct hidden_state *)state; /* Not an error. */ if (state_of_mind->codec == NULL) { destroy_hidden_state(state_of_mind); return SAIL_OK; } SAIL_TRY_OR_CLEANUP(state_of_mind->codec->v8->save_finish(&state_of_mind->state), /* cleanup */ destroy_hidden_state(state_of_mind)); if (written != NULL) { /* The stream cursor may not be positioned at the end. Let's move it. */ SAIL_TRY_OR_CLEANUP(state_of_mind->io->seek(state_of_mind->io->stream, 0, SEEK_END), /* cleanup */ destroy_hidden_state(state_of_mind)); state_of_mind->io->tell(state_of_mind->io->stream, written); } destroy_hidden_state(state_of_mind); return SAIL_OK; } sail_status_t allowed_write_output_pixel_format(const struct sail_save_features *save_features, enum SailPixelFormat pixel_format) { SAIL_CHECK_PTR(save_features); for (unsigned i = 0; i < save_features->pixel_formats_length; i++) { if (save_features->pixel_formats[i] == pixel_format) { return SAIL_OK; } } print_unsupported_write_pixel_format(pixel_format); SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT); } sail-0.9.8/src/sail/sail_private.h000066400000000000000000000045061475535176100170550ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_PRIVATE_H #define SAIL_SAIL_PRIVATE_H #include #include /* size_t */ #include #include #include struct sail_codec_info; struct sail_codec; struct sail_save_features; struct hidden_state { struct sail_io *io; bool own_io; struct sail_load_options *load_options; struct sail_save_options *save_options; /* Local state passed to codec loading and saving functions. */ void *state; /* Shallow pointers to internal data structures so no need to free these. */ const struct sail_codec_info *codec_info; const struct sail_codec *codec; }; SAIL_HIDDEN sail_status_t load_codec_by_codec_info(const struct sail_codec_info *codec_info, const struct sail_codec **codec); SAIL_HIDDEN void destroy_hidden_state(struct hidden_state *state); SAIL_HIDDEN sail_status_t stop_saving(void *state, size_t *written); SAIL_HIDDEN sail_status_t allowed_write_output_pixel_format(const struct sail_save_features *save_features, enum SailPixelFormat pixel_format); #endif sail-0.9.8/src/sail/sail_technical_diver.c000066400000000000000000000047171475535176100205250ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include sail_status_t sail_start_loading_from_io(struct sail_io *io, const struct sail_codec_info *codec_info, void **state) { SAIL_TRY(sail_start_loading_from_io_with_options(io, codec_info, NULL, state)); return SAIL_OK; } sail_status_t sail_start_loading_from_io_with_options(struct sail_io *io, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state) { SAIL_TRY(start_loading_io_with_options(io, false, codec_info, load_options, state)); return SAIL_OK; } sail_status_t sail_start_saving_into_io(struct sail_io *io, const struct sail_codec_info *codec_info, void **state) { SAIL_TRY(sail_start_saving_into_io_with_options(io, codec_info, NULL, state)); return SAIL_OK; } sail_status_t sail_start_saving_into_io_with_options(struct sail_io *io, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state) { SAIL_TRY(start_saving_io_with_options(io, false, codec_info, save_options, state)); return SAIL_OK; } sail-0.9.8/src/sail/sail_technical_diver.h000066400000000000000000000132301475535176100205200ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_TECHNICAL_DIVER_H #define SAIL_SAIL_TECHNICAL_DIVER_H #include #include #ifdef __cplusplus extern "C" { #endif struct sail_codec_info; struct sail_io; struct sail_load_options; struct sail_save_options; /* * Starts loading the specified I/O stream. * * Typical usage: sail_alloc_io() -> * set I/O callbacks -> * sail_codec_info_from_extension() -> * sail_start_loading_from_io() -> * sail_load_next_frame() -> * sail_stop_loading() -> * sail_destroy_io(). * * STATE explanation: Pass the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_loading. States must be used per image. DO NOT use the same state * to load multiple images from different sources in the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_loading_from_io(struct sail_io *io, const struct sail_codec_info *codec_info, void **state); /* * Starts loading the specified I/O stream with the specified load options. If you don't need specific load options, * just pass NULL. Codec-specific defaults will be used in this case. The load options are deep copied. * * Typical usage: sail_alloc_io() -> * set I/O callbacks -> * sail_codec_info_from_extension() -> * sail_start_loading_from_io_with_options() -> * sail_load_next_frame() -> * sail_stop_loading() -> * sail_destroy_io(). * * STATE explanation: Pass the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_loading. States must be used per image. DO NOT use the same state * to load multiple images from different sources in the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_loading_from_io_with_options(struct sail_io *io, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state); /* * Starts saving into the specified I/O stream. * * Typical usage: sail_alloc_io() -> * set I/O callbacks -> * sail_codec_info_from_extension() -> * sail_start_saving_into_file() -> * sail_write_next_frame() -> * sail_stop_saving() -> * sail_destroy_io(). * * STATE explanation: Pass the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_saving. States must be used per image. DO NOT use the same state * to save multiple images to different targets in the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_saving_into_io(struct sail_io *io, const struct sail_codec_info *codec_info, void **state); /* * Starts saving the specified I/O stream with the specified save options. If you don't need specific save options, * just pass NULL. Codec-specific defaults will be used in this case. The save options are deep copied. * * Typical usage: sail_alloc_io() -> * set I/O callbacks -> * sail_codec_info_from_extension() -> * sail_start_saving_into_io_with_options() -> * sail_write_next_frame() -> * sail_stop_saving() -> * sail_destroy_io(). * * STATE explanation: Pass the address of a local void* pointer. SAIL will store an internal state * in it and destroy it in sail_stop_saving. States must be used per image. DO NOT use the same state * to save multiple images to different targets in the same time. * * Returns SAIL_OK on success. */ SAIL_EXPORT sail_status_t sail_start_saving_into_io_with_options(struct sail_io *io, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state); /* extern "C" */ #ifdef __cplusplus } #endif #endif sail-0.9.8/src/sail/sail_technical_diver_private.c000066400000000000000000000143001475535176100222440ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include /* * Private functions. */ static sail_status_t check_io_arguments(struct sail_io *io, const struct sail_codec_info *codec_info, void **state) { SAIL_CHECK_PTR(io); SAIL_CHECK_PTR(codec_info); SAIL_CHECK_PTR(state); return SAIL_OK; } static sail_status_t allowed_write_compression(const struct sail_save_features *save_features, enum SailCompression compression) { SAIL_CHECK_PTR(save_features); for (unsigned i = 0; i < save_features->compressions_length; i++) { if (save_features->compressions[i] == compression) { return SAIL_OK; } } SAIL_LOG_AND_RETURN(SAIL_ERROR_UNSUPPORTED_COMPRESSION); } /* * Public functions. */ sail_status_t start_loading_io_with_options(struct sail_io *io, bool own_io, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state) { SAIL_TRY_OR_CLEANUP(check_io_arguments(io, codec_info, state), /* cleanup */ if (own_io) sail_destroy_io(io)); *state = NULL; void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(struct hidden_state), &ptr), /* cleanup */ if (own_io) sail_destroy_io(io)); struct hidden_state *state_of_mind = ptr; state_of_mind->io = io; state_of_mind->own_io = own_io; state_of_mind->load_options = NULL; state_of_mind->save_options = NULL; state_of_mind->state = NULL; state_of_mind->codec_info = codec_info; state_of_mind->codec = NULL; SAIL_TRY_OR_CLEANUP(load_codec_by_codec_info(state_of_mind->codec_info, &state_of_mind->codec), /* cleanup */ destroy_hidden_state(state_of_mind)); if (load_options == NULL) { SAIL_TRY_OR_CLEANUP(sail_alloc_load_options_from_features(state_of_mind->codec_info->load_features, &state_of_mind->load_options), /* cleanup */ destroy_hidden_state(state_of_mind)); } else { SAIL_TRY_OR_CLEANUP(sail_copy_load_options(load_options, &state_of_mind->load_options), /* cleanup */ destroy_hidden_state(state_of_mind)); } SAIL_TRY_OR_CLEANUP(state_of_mind->codec->v8->load_init(state_of_mind->io, state_of_mind->load_options, &state_of_mind->state), /* cleanup */ state_of_mind->codec->v8->load_finish(&state_of_mind->state), destroy_hidden_state(state_of_mind)); *state = state_of_mind; return SAIL_OK; } sail_status_t start_saving_io_with_options(struct sail_io *io, bool own_io, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state) { SAIL_TRY_OR_CLEANUP(check_io_arguments(io, codec_info, state), /* cleanup */ if (own_io) sail_destroy_io(io)); *state = NULL; /* * When save options is not NULL, we need to check if we can actually output the requested compression. * When save options is NULL, we use the default compression which is always acceptable. */ if (save_options != NULL) { SAIL_TRY_OR_CLEANUP(allowed_write_compression(codec_info->save_features, save_options->compression), /* cleanup */ if (own_io) sail_destroy_io(io)); } void *ptr; SAIL_TRY_OR_CLEANUP(sail_malloc(sizeof(struct hidden_state), &ptr), /* cleanup */ if (own_io) sail_destroy_io(io)); struct hidden_state *state_of_mind = ptr; state_of_mind->io = io; state_of_mind->own_io = own_io; state_of_mind->load_options = NULL; state_of_mind->save_options = NULL; state_of_mind->state = NULL; state_of_mind->codec_info = codec_info; state_of_mind->codec = NULL; SAIL_TRY_OR_CLEANUP(load_codec_by_codec_info(state_of_mind->codec_info, &state_of_mind->codec), /* cleanup */ destroy_hidden_state(state_of_mind)); if (save_options == NULL) { SAIL_TRY_OR_CLEANUP(sail_alloc_save_options_from_features(state_of_mind->codec_info->save_features, &state_of_mind->save_options), /* cleanup */ destroy_hidden_state(state_of_mind)); } else { SAIL_TRY_OR_CLEANUP(sail_copy_save_options(save_options, &state_of_mind->save_options), /* cleanup */ destroy_hidden_state(state_of_mind)); } SAIL_TRY_OR_CLEANUP(state_of_mind->codec->v8->save_init(state_of_mind->io, state_of_mind->save_options, &state_of_mind->state), /* cleanup */ state_of_mind->codec->v8->save_finish(&state_of_mind->state), destroy_hidden_state(state_of_mind)); *state = state_of_mind; return SAIL_OK; } sail-0.9.8/src/sail/sail_technical_diver_private.h000066400000000000000000000040641475535176100222570ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_SAIL_TECHNICAL_DIVER_PRIVATE_H #define SAIL_SAIL_TECHNICAL_DIVER_PRIVATE_H #include #include #include struct sail_codec_info; struct sail_io; struct sail_load_options; struct sail_save_options; SAIL_HIDDEN sail_status_t start_loading_io_with_options(struct sail_io *io, bool own_io, const struct sail_codec_info *codec_info, const struct sail_load_options *load_options, void **state); SAIL_HIDDEN sail_status_t start_saving_io_with_options(struct sail_io *io, bool own_io, const struct sail_codec_info *codec_info, const struct sail_save_options *save_options, void **state); #endif sail-0.9.8/src/sail/threading.c000066400000000000000000000110131475535176100163220ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #ifdef SAIL_WIN32 struct callback_holder { void (*callback)(void); }; static BOOL CALLBACK OnceHandler(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *lpContext) { (void)InitOnce; (void)lpContext; const struct callback_holder *callback_holder = (struct callback_holder *)Parameter; callback_holder->callback(); return TRUE; } #endif sail_status_t threading_call_once(sail_once_flag_t *once_flag, void (*callback)(void)) { SAIL_CHECK_PTR(once_flag); #ifdef SAIL_WIN32 struct callback_holder callback_holder = { callback }; if (SAIL_LIKELY(InitOnceExecuteOnce(once_flag, OnceHandler, &callback_holder, NULL))) { return SAIL_OK; } else { SAIL_LOG_ERROR("Failed to execute call_once. Error: 0x%X", GetLastError()); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #else if (SAIL_LIKELY((errno = pthread_once(once_flag, callback)) == 0)) { return SAIL_OK; } else { sail_print_errno("Failed to execute call_once: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #endif } sail_status_t threading_init_mutex(sail_mutex_t *mutex) { SAIL_CHECK_PTR(mutex); #ifdef SAIL_WIN32 InitializeCriticalSection(mutex); return SAIL_OK; #else pthread_mutexattr_t attr; if (SAIL_LIKELY((errno = pthread_mutexattr_init(&attr)) == 0)) { if (SAIL_LIKELY((errno = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) == 0)) { errno = pthread_mutex_init(mutex, &attr); pthread_mutexattr_destroy(&attr); if (SAIL_LIKELY(errno == 0)) { return SAIL_OK; } else { sail_print_errno("Failed to initialize mutex: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } } else { pthread_mutexattr_destroy(&attr); sail_print_errno("Failed to set mutex attributes: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } } else { sail_print_errno("Failed to initialize mutex attributes: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #endif } sail_status_t threading_lock_mutex(sail_mutex_t *mutex) { SAIL_CHECK_PTR(mutex); #ifdef SAIL_WIN32 EnterCriticalSection(mutex); return SAIL_OK; #else if (SAIL_LIKELY((errno = pthread_mutex_lock(mutex)) == 0)) { return SAIL_OK; } else { sail_print_errno("Failed to lock mutex: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #endif } sail_status_t threading_unlock_mutex(sail_mutex_t *mutex) { SAIL_CHECK_PTR(mutex); #ifdef SAIL_WIN32 LeaveCriticalSection(mutex); return SAIL_OK; #else if (SAIL_LIKELY((errno = pthread_mutex_unlock(mutex)) == 0)) { return SAIL_OK; } else { sail_print_errno("Failed to unlock mutex: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #endif } sail_status_t threading_destroy_mutex(sail_mutex_t *mutex) { SAIL_CHECK_PTR(mutex); #ifdef SAIL_WIN32 DeleteCriticalSection(mutex); return SAIL_OK; #else if (SAIL_LIKELY((errno = pthread_mutex_destroy(mutex)) == 0)) { return SAIL_OK; } else { sail_print_errno("Failed to initialize mutex: %s"); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } #endif } sail-0.9.8/src/sail/threading.h000066400000000000000000000047261475535176100163440ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_THREADING_H #define SAIL_THREADING_H #include #include #include #ifdef SAIL_WIN32 #include #else #include #endif /* * Threading support. * * Why this file is needed: C11 introduces threading support with mutexes, atomics, threads etc. * However, the most popular C compiler for Windows, MSVC, still supports nothing from it. We need * to implement our own threading support based on OS-specific APIs. */ /* Call once. */ #ifdef SAIL_WIN32 typedef INIT_ONCE sail_once_flag_t; #define SAIL_ONCE_DEFAULT_VALUE INIT_ONCE_STATIC_INIT #else typedef pthread_once_t sail_once_flag_t; #define SAIL_ONCE_DEFAULT_VALUE PTHREAD_ONCE_INIT #endif SAIL_HIDDEN sail_status_t threading_call_once(sail_once_flag_t *once_flag, void (*callback)(void)); /* Mutexes. */ #ifdef SAIL_WIN32 typedef CRITICAL_SECTION sail_mutex_t; #else typedef pthread_mutex_t sail_mutex_t; #endif SAIL_HIDDEN sail_status_t threading_init_mutex(sail_mutex_t *mutex); SAIL_HIDDEN sail_status_t threading_lock_mutex(sail_mutex_t *mutex); SAIL_HIDDEN sail_status_t threading_unlock_mutex(sail_mutex_t *mutex); SAIL_HIDDEN sail_status_t threading_destroy_mutex(sail_mutex_t *mutex); #endif sail-0.9.8/tests/000077500000000000000000000000001475535176100136405ustar00rootroot00000000000000sail-0.9.8/tests/CMakeLists.txt000066400000000000000000000007231475535176100164020ustar00rootroot00000000000000# Test images # set(SAIL_TEST_IMAGES_PATH ${CMAKE_CURRENT_SOURCE_DIR}/images) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/images/test-images.h.in ${PROJECT_BINARY_DIR}/include/test-images.h @ONLY) # Dependencies # add_subdirectory(munit) add_subdirectory(sail-comparators) add_subdirectory(sail-dump) # Actual tests # add_subdirectory(sail-common) add_subdirectory(sail) add_subdirectory(sail-manip) if (SAIL_BUILD_BINDINGS) add_subdirectory(bindings/c++) endif() sail-0.9.8/tests/bindings/000077500000000000000000000000001475535176100154355ustar00rootroot00000000000000sail-0.9.8/tests/bindings/c++/000077500000000000000000000000001475535176100160055ustar00rootroot00000000000000sail-0.9.8/tests/bindings/c++/CMakeLists.txt000066400000000000000000000015321475535176100205460ustar00rootroot00000000000000sail_test(TARGET can-load-c++ SOURCES can-load.cpp LINK sail-c++) sail_test(TARGET iccp-c++ SOURCES iccp.cpp LINK sail-c++) sail_test(TARGET image-c++ SOURCES image.cpp LINK sail-c++) sail_test(TARGET load-features-c++ SOURCES load_features.cpp LINK sail-c++) sail_test(TARGET load-options-c++ SOURCES load_options.cpp LINK sail-c++) sail_test(TARGET meta-data-c++ SOURCES meta_data.cpp LINK sail-c++) sail_test(TARGET palette-c++ SOURCES palette.cpp LINK sail-c++) sail_test(TARGET save-features-c++ SOURCES save_features.cpp LINK sail-c++) sail_test(TARGET save-options-c++ SOURCES save_options.cpp LINK sail-c++) sail_test(TARGET utils-c++ SOURCES utils.cpp LINK sail-c++) sail_test(TARGET variant-c++ SOURCES variant.cpp LINK sail-c++) sail-0.9.8/tests/bindings/c++/can-load.cpp000066400000000000000000000174341475535176100202000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "munit.h" #include "test-images.h" static MunitResult test_can_load_path(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); const sail::image image(path); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitResult test_can_load_memory(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); sail::arbitrary_data arbitrary_data; munit_assert(sail::read_file_contents(path, &arbitrary_data) == SAIL_OK); const sail::codec_info codec_info = sail::codec_info::from_path(path); munit_assert(codec_info.is_valid()); sail::image_input input(arbitrary_data); input.with(codec_info); sail::image image; munit_assert(input.next_frame(&image) == SAIL_OK); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitResult test_can_load_io_file(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); sail::io_file io_file(path); sail::image_input input(io_file); sail::image image; munit_assert(input.next_frame(&image) == SAIL_OK); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitResult test_can_load_io_memory1(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); sail::arbitrary_data arbitrary_data; munit_assert(sail::read_file_contents(path, &arbitrary_data) == SAIL_OK); const sail::codec_info codec_info = sail::codec_info::from_path(path); munit_assert(codec_info.is_valid()); sail::io_memory io_memory(arbitrary_data.data(), arbitrary_data.size()); sail::image_input input(io_memory); input.with(codec_info); sail::image image; munit_assert(input.next_frame(&image) == SAIL_OK); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitResult test_can_load_io_memory2(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); sail::arbitrary_data arbitrary_data; munit_assert(sail::read_file_contents(path, &arbitrary_data) == SAIL_OK); const sail::codec_info codec_info = sail::codec_info::from_path(path); munit_assert(codec_info.is_valid()); sail::io_memory io_memory(arbitrary_data); sail::image_input input(io_memory); input.with(codec_info); sail::image image; munit_assert(input.next_frame(&image) == SAIL_OK); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitResult test_can_load_io_memory3(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); sail::arbitrary_data arbitrary_data; munit_assert(sail::read_file_contents(path, &arbitrary_data) == SAIL_OK); const sail::codec_info codec_info = sail::codec_info::from_path(path); munit_assert(codec_info.is_valid()); sail::io_memory io_memory(arbitrary_data.data(), arbitrary_data.size(), sail::io_memory::Operation::Read); sail::image_input input(io_memory); input.with(codec_info); sail::image image; munit_assert(input.next_frame(&image) == SAIL_OK); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitResult test_can_load_io_memory4(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); sail::arbitrary_data arbitrary_data; munit_assert(sail::read_file_contents(path, &arbitrary_data) == SAIL_OK); const sail::codec_info codec_info = sail::codec_info::from_path(path); munit_assert(codec_info.is_valid()); sail::io_memory io_memory(arbitrary_data, sail::io_memory::Operation::Read); sail::image_input input = std::move(sail::image_input(io_memory).with(codec_info)); sail::image image; munit_assert(input.next_frame(&image) == SAIL_OK); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitResult test_can_load_io_memory5(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); sail::arbitrary_data arbitrary_data; munit_assert(sail::read_file_contents(path, &arbitrary_data) == SAIL_OK); const sail::codec_info codec_info = sail::codec_info::from_path(path); munit_assert(codec_info.is_valid()); std::unique_ptr io_memory { new sail::io_memory(arbitrary_data, sail::io_memory::Operation::Read) }; sail::image_input input = std::move(sail::image_input(*io_memory).with(codec_info)); sail::image image; munit_assert(input.next_frame(&image) == SAIL_OK); munit_assert(image.is_valid()); return MUNIT_OK; } static MunitParameterEnum test_params[] = { { (char *)"path", (char **)SAIL_TEST_IMAGES }, { NULL, NULL }, }; static MunitTest test_suite_tests[] = { { (char *)"/can-load-path", test_can_load_path, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { (char *)"/can-load-memory", test_can_load_memory, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { (char *)"/can-load-io-file", test_can_load_io_file, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { (char *)"/can-load-io-memory1", test_can_load_io_memory1, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { (char *)"/can-load-io-memory2", test_can_load_io_memory2, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { (char *)"/can-load-io-memory3", test_can_load_io_memory3, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { (char *)"/can-load-io-memory4", test_can_load_io_memory4, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { (char *)"/can-load-io-memory5", test_can_load_io_memory5, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/iccp.cpp000066400000000000000000000074351475535176100174400ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include /* move */ #include #include #include #include #include #include "munit.h" static sail::arbitrary_data construct_data() { sail::arbitrary_data data(8092); for (std::size_t i = 0; i < data.size(); i++) { data[i] = 50; } return data; } static MunitResult test_iccp_create(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::arbitrary_data data = construct_data(); sail::iccp iccp(data); munit_assert(iccp.is_valid()); munit_assert(iccp.data() == data); } { sail::iccp iccp; munit_assert(iccp.data().empty()); munit_assert(!iccp.is_valid()); } return MUNIT_OK; } static MunitResult test_iccp_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::arbitrary_data data = construct_data(); sail::iccp iccp(data); munit_assert(iccp.is_valid()); sail::iccp iccp_copy = iccp; munit_assert(iccp_copy.data() == iccp.data()); } { sail::iccp iccp; munit_assert(!iccp.is_valid()); sail::iccp iccp_copy = iccp; munit_assert(iccp_copy.data().empty()); munit_assert(!iccp_copy.is_valid()); } return MUNIT_OK; } static MunitResult test_iccp_move(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::arbitrary_data data = construct_data(); sail::iccp iccp(data); munit_assert(iccp.is_valid()); sail::iccp iccp_copy = std::move(iccp); munit_assert(iccp_copy.data() == data); munit_assert(iccp_copy.is_valid()); } { sail::iccp iccp = sail::iccp{}; munit_assert(iccp.data().empty()); munit_assert(!iccp.is_valid()); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/create", test_iccp_create, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_iccp_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/move", test_iccp_move, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++/iccp", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/image.cpp000066400000000000000000000144371475535176100176040ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2024 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include /* move */ #include #include "munit.h" static MunitResult test_image_create(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::image image; munit_assert(image.pixel_format() == SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert_null(image.pixels()); munit_assert_false(image.is_valid()); } { sail::image image(SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16); munit_assert(image.pixel_format() == SAIL_PIXEL_FORMAT_BPP24_RGB); munit_assert_uint(image.width(), ==, 16); munit_assert_uint(image.height(), ==, 16); munit_assert_not_null(image.pixels()); munit_assert_true(image.is_valid()); } { sail::image image(SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16, 50); munit_assert(image.pixel_format() == SAIL_PIXEL_FORMAT_BPP24_RGB); munit_assert_uint(image.width(), ==, 16); munit_assert_uint(image.height(), ==, 16); munit_assert_uint(image.bytes_per_line(), ==, 50); munit_assert_not_null(image.pixels()); munit_assert_true(image.is_valid()); } { // Peek a random pointer void *pixels = &user_data; sail::image image(pixels, SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16); munit_assert(image.pixel_format() == SAIL_PIXEL_FORMAT_BPP24_RGB); munit_assert_uint(image.width(), ==, 16); munit_assert_uint(image.height(), ==, 16); munit_assert_ptr_equal(image.pixels(), pixels); munit_assert_true(image.is_valid()); } { // Peek a random pointer void *pixels = &user_data; sail::image image(pixels, SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16, 50); munit_assert(image.pixel_format() == SAIL_PIXEL_FORMAT_BPP24_RGB); munit_assert_uint(image.width(), ==, 16); munit_assert_uint(image.height(), ==, 16); munit_assert_uint(image.bytes_per_line(), ==, 50); munit_assert_ptr_equal(image.pixels(), pixels); munit_assert_true(image.is_valid()); } return MUNIT_OK; } static MunitResult test_image_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::image image(SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16); munit_assert_true(image.is_valid()); sail::image image_copy = image; munit_assert(image_copy.pixel_format() == image.pixel_format()); munit_assert_uint(image_copy.width(), ==, image.width()); munit_assert_uint(image_copy.height(), ==, image.height()); munit_assert_uint(image_copy.bytes_per_line(), ==, image.bytes_per_line()); munit_assert_ptr_not_equal(image_copy.pixels(), image.pixels()); munit_assert_true(image_copy.is_valid()); } { char pixels[16*16*3]; sail::image image(pixels, SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16); munit_assert_true(image.is_valid()); sail::image image_copy = image; munit_assert(image_copy.pixel_format() == image.pixel_format()); munit_assert_uint(image_copy.width(), ==, image.width()); munit_assert_uint(image_copy.height(), ==, image.height()); munit_assert_uint(image_copy.bytes_per_line(), ==, image.bytes_per_line()); munit_assert_ptr_not_equal(image_copy.pixels(), image.pixels()); munit_assert_true(image_copy.is_valid()); } return MUNIT_OK; } static MunitResult test_image_move(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::image image(SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16); munit_assert_true(image.is_valid()); sail::image image_copy = std::move(image); munit_assert(image_copy.pixel_format() == SAIL_PIXEL_FORMAT_BPP24_RGB); munit_assert_uint(image_copy.width(), ==, 16); munit_assert_uint(image_copy.height(), ==, 16); munit_assert_not_null(image_copy.pixels()); munit_assert_true(image_copy.is_valid()); } { char pixels[16*16*3]; sail::image image(pixels, SAIL_PIXEL_FORMAT_BPP24_RGB, 16, 16); munit_assert_true(image.is_valid()); sail::image image_copy = std::move(image); munit_assert(image_copy.pixel_format() == SAIL_PIXEL_FORMAT_BPP24_RGB); munit_assert_uint(image_copy.width(), ==, 16); munit_assert_uint(image_copy.height(), ==, 16); munit_assert_not_null(image_copy.pixels()); munit_assert_true(image_copy.is_valid()); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/create", test_image_create, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_image_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/move", test_image_move, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++/image", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/load_features.cpp000066400000000000000000000061031475535176100213260ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include "munit.h" static MunitResult test_load_features(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const std::vector codecs = sail::codec_info::list(); munit_assert(codecs.size() > 0U); const sail::codec_info first_codec = codecs.front(); // Copy { const sail::load_features load_features = first_codec.load_features(); munit_assert(load_features.features() == first_codec.load_features().features()); munit_assert(load_features.supported_tuning() == first_codec.load_features().supported_tuning()); } // Move { const sail::load_features load_features1 = std::move(first_codec.load_features()); const sail::load_features load_features = std::move(load_features1); munit_assert(load_features.features() == first_codec.load_features().features()); munit_assert(load_features.supported_tuning() == first_codec.load_features().supported_tuning()); } // Construct load options { sail::load_options load_options; munit_assert(first_codec.load_features().to_options(&load_options) == SAIL_OK); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/load-features", test_load_features, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/load_options.cpp000066400000000000000000000116441475535176100212110ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include #include #include "munit.h" static MunitResult test_load_options_construct(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::load_options load_options; munit_assert(load_options.options() == 0); munit_assert(load_options.tuning().empty()); } { sail::load_options load_options(SAIL_OPTION_META_DATA); munit_assert(load_options.options() == SAIL_OPTION_META_DATA); munit_assert(load_options.tuning().empty()); } return MUNIT_OK; } static MunitResult test_load_options_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const sail::codec_info first_codec = sail::codec_info::list().front(); { sail::load_options load_options; munit_assert(first_codec.load_features().to_options(&load_options) == SAIL_OK); munit_assert(load_options.tuning().empty()); const sail::load_options load_options2 = load_options; munit_assert(load_options.options() == load_options2.options()); munit_assert(load_options.tuning() == load_options2.tuning()); } { sail::load_options load_options; munit_assert(first_codec.load_features().to_options(&load_options) == SAIL_OK); load_options.tuning()["key"] = 10.0; munit_assert_double(load_options.tuning()["key"].value(), ==, 10.0); const sail::load_options load_options2 = load_options; munit_assert(load_options.options() == load_options2.options()); munit_assert(load_options.tuning() == load_options2.tuning()); } return MUNIT_OK; } static MunitResult test_load_options_move(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const sail::codec_info first_codec = sail::codec_info::list().front(); { sail::load_options load_options; munit_assert(first_codec.load_features().to_options(&load_options) == SAIL_OK); sail::load_options load_options2 = load_options; const sail::load_options load_options3 = std::move(load_options2); munit_assert(load_options.options() == load_options3.options()); munit_assert(load_options.tuning() == load_options3.tuning()); } { sail::load_options load_options; munit_assert(first_codec.load_features().to_options(&load_options) == SAIL_OK); load_options.tuning()["key"] = 10.0; munit_assert_double(load_options.tuning()["key"].value(), ==, 10.0); sail::load_options load_options2 = load_options; const sail::load_options load_options3 = std::move(load_options2); munit_assert(load_options.options() == load_options3.options()); munit_assert(load_options.tuning() == load_options3.tuning()); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/load-options/construct", test_load_options_construct, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/load-options/copy", test_load_options_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/load-options/move", test_load_options_move, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/meta_data.cpp000066400000000000000000000101111475535176100204220ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include /* move */ #include #include #include #include #include #include "munit.h" static MunitResult test_meta_data_create(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { const sail::variant value(std::string("Mike")); const sail::meta_data meta_data(SAIL_META_DATA_AUTHOR, value); munit_assert(meta_data.key_unknown().empty()); munit_assert(meta_data.key() == SAIL_META_DATA_AUTHOR); munit_assert(meta_data.value() == value); } { const sail::meta_data meta_data(SAIL_META_DATA_AUTHOR, sail::variant(std::string("Mike"))); munit_assert(meta_data.key_unknown().empty()); munit_assert(meta_data.key() == SAIL_META_DATA_AUTHOR); munit_assert(meta_data.value() == sail::variant(std::string("Mike"))); } { const sail::meta_data meta_data("Unknown Key", sail::variant(std::string("Mike"))); munit_assert(meta_data.key_unknown() == "Unknown Key"); munit_assert(meta_data.key() == SAIL_META_DATA_UNKNOWN); munit_assert(meta_data.value() == sail::variant(std::string("Mike"))); } return MUNIT_OK; } static MunitResult test_meta_data_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const sail::variant value(std::string("Mike")); const sail::meta_data meta_data(SAIL_META_DATA_AUTHOR, value); const sail::meta_data meta_data2 = meta_data; munit_assert(meta_data2.key_unknown().empty()); munit_assert(meta_data2.key() == SAIL_META_DATA_AUTHOR); munit_assert(meta_data2.value() == value); return MUNIT_OK; } static MunitResult test_meta_data_move(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const sail::variant value(std::string("Mike")); sail::meta_data meta_data(SAIL_META_DATA_AUTHOR, value); const sail::meta_data meta_data2 = std::move(meta_data); munit_assert(meta_data2.key_unknown().empty()); munit_assert(meta_data2.key() == SAIL_META_DATA_AUTHOR); munit_assert(meta_data2.value() == value); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/create", test_meta_data_create, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_meta_data_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/move", test_meta_data_move, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++/meta-data", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/palette.cpp000066400000000000000000000126531475535176100201560ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include /* move */ #include #include "munit.h" static sail::arbitrary_data construct_data() { sail::arbitrary_data data(8092); for (std::size_t i = 0; i < data.size(); i++) { data[i] = 50; } return data; } static MunitResult test_palette_create(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::arbitrary_data data = construct_data(); const unsigned color_count = static_cast(data.size() / 2); sail::palette palette(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, data.data(), color_count); munit_assert(palette.pixel_format() == SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE); munit_assert(palette.data() == data); munit_assert(palette.color_count() == color_count); munit_assert(palette.is_valid()); } { sail::arbitrary_data data = construct_data(); sail::palette palette(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, data); munit_assert(palette.pixel_format() == SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE); munit_assert(palette.data() == data); munit_assert(palette.color_count() == (data.size() / 2)); munit_assert(palette.is_valid()); } { sail::palette palette; munit_assert(palette.color_count() == 0); munit_assert(palette.data().empty()); munit_assert(palette.pixel_format() == SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert(!palette.is_valid()); } return MUNIT_OK; } static MunitResult test_palette_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::arbitrary_data data = construct_data(); const unsigned color_count = static_cast(data.size() / 2); sail::palette palette(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, data.data(), color_count); munit_assert(palette.is_valid()); sail::palette palette_copy = palette; munit_assert(palette_copy.color_count() == palette.color_count()); munit_assert(palette_copy.data() == palette.data()); munit_assert(palette_copy.pixel_format() == palette.pixel_format()); munit_assert(palette_copy.is_valid()); } { sail::palette palette; munit_assert(!palette.is_valid()); sail::palette palette_copy = palette; munit_assert(palette_copy.color_count() == 0); munit_assert(palette_copy.data().empty()); munit_assert(palette_copy.pixel_format() == palette.pixel_format()); munit_assert(!palette_copy.is_valid()); } return MUNIT_OK; } static MunitResult test_palette_move(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::arbitrary_data data = construct_data(); const unsigned color_count = static_cast(data.size() / 2); sail::palette palette(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, data.data(), color_count); munit_assert(palette.is_valid()); sail::palette palette_copy = std::move(palette); munit_assert(palette_copy.color_count() == color_count); munit_assert(palette_copy.data() == data); munit_assert(palette_copy.pixel_format() == SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE); munit_assert(palette_copy.is_valid()); } { sail::palette palette = sail::palette{}; munit_assert(palette.color_count() == 0); munit_assert(palette.data().empty()); munit_assert(palette.pixel_format() == SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert(!palette.is_valid()); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/create", test_palette_create, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_palette_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/move", test_palette_move, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++/palette", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/save_features.cpp000066400000000000000000000101711475535176100213450ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "munit.h" static MunitResult test_save_features(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const std::vector codecs = sail::codec_info::list(); munit_assert(codecs.size() > 0U); const sail::codec_info first_codec = codecs.front(); // Copy { const sail::save_features save_features = first_codec.save_features(); munit_assert(save_features.features() == first_codec.save_features().features()); munit_assert(save_features.compression_level().is_valid() == first_codec.save_features().compression_level().is_valid()); if (save_features.compression_level().is_valid()) { const sail::compression_level &l1 = save_features.compression_level(); const sail::compression_level &l2 = first_codec.save_features().compression_level(); munit_assert(l1.min_level() == l2.min_level()); munit_assert(l1.max_level() == l2.max_level()); munit_assert(l1.default_level() == l2.default_level()); munit_assert(l1.step() == l2.step()); } munit_assert(save_features.supported_tuning() == first_codec.save_features().supported_tuning()); } // Move { const sail::save_features save_features1 = std::move(first_codec.save_features()); const sail::save_features save_features = std::move(save_features1); munit_assert(save_features.features() == first_codec.save_features().features()); munit_assert(save_features.compression_level().is_valid() == first_codec.save_features().compression_level().is_valid()); if (save_features.compression_level().is_valid()) { const sail::compression_level &l1 = save_features.compression_level(); const sail::compression_level &l2 = first_codec.save_features().compression_level(); munit_assert(l1.min_level() == l2.min_level()); munit_assert(l1.max_level() == l2.max_level()); munit_assert(l1.default_level() == l2.default_level()); munit_assert(l1.step() == l2.step()); } munit_assert(save_features.supported_tuning() == first_codec.save_features().supported_tuning()); } // Construct save options { sail::save_options save_options; munit_assert(first_codec.save_features().to_options(&save_options) == SAIL_OK); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/save-features", test_save_features, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/save_options.cpp000066400000000000000000000130161475535176100212230ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "munit.h" static MunitResult test_save_options_construct(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { sail::save_options save_options; munit_assert(save_options.options() == 0); munit_assert(save_options.tuning().empty()); } { sail::save_options save_options(SAIL_OPTION_META_DATA); munit_assert(save_options.options() == SAIL_OPTION_META_DATA); munit_assert(save_options.tuning().empty()); } return MUNIT_OK; } static MunitResult test_save_options_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const sail::codec_info first_codec = sail::codec_info::list().front(); { sail::save_options save_options; munit_assert(first_codec.save_features().to_options(&save_options) == SAIL_OK); munit_assert(save_options.tuning().empty()); const sail::save_options save_options2 = save_options; munit_assert(save_options.options() == save_options2.options()); munit_assert(save_options.compression() == save_options2.compression()); munit_assert(save_options.compression_level() == save_options2.compression_level()); munit_assert(save_options.tuning() == save_options2.tuning()); } { sail::save_options save_options; munit_assert(first_codec.save_features().to_options(&save_options) == SAIL_OK); save_options.tuning()["key"] = 10.0; munit_assert_double(save_options.tuning()["key"].value(), ==, 10.0); const sail::save_options save_options2 = save_options; munit_assert(save_options.options() == save_options2.options()); munit_assert(save_options.compression() == save_options2.compression()); munit_assert(save_options.compression_level() == save_options2.compression_level()); munit_assert(save_options.tuning() == save_options2.tuning()); } return MUNIT_OK; } static MunitResult test_save_options_move(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const sail::codec_info first_codec = sail::codec_info::list().front(); { sail::save_options save_options; munit_assert(first_codec.save_features().to_options(&save_options) == SAIL_OK); sail::save_options save_options2 = save_options; const sail::save_options save_options3 = std::move(save_options2); munit_assert(save_options.options() == save_options3.options()); munit_assert(save_options.compression() == save_options3.compression()); munit_assert(save_options.compression_level() == save_options3.compression_level()); munit_assert(save_options.tuning() == save_options3.tuning()); } { sail::save_options save_options; munit_assert(first_codec.save_features().to_options(&save_options) == SAIL_OK); save_options.tuning()["key"] = 10.0; munit_assert_double(save_options.tuning()["key"].value(), ==, 10.0); sail::save_options save_options2 = save_options; const sail::save_options save_options3 = std::move(save_options2); munit_assert(save_options.options() == save_options3.options()); munit_assert(save_options.compression() == save_options3.compression()); munit_assert(save_options.compression_level() == save_options3.compression_level()); munit_assert(save_options.tuning() == save_options3.tuning()); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/save-options/construct", test_save_options_construct, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/save-options/copy", test_save_options_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/save-options/move", test_save_options_move, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/utils.cpp000066400000000000000000000066141475535176100176600ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "munit.h" static MunitResult test_reverse_uint16(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_uint16(sail::reverse_bytes((std::uint16_t)0), ==, 0); munit_assert_uint16(sail::reverse_bytes((std::uint16_t)100), ==, 25600); munit_assert_uint16(sail::reverse_bytes((std::uint16_t)1000), ==, 59395); return MUNIT_OK; } static MunitResult test_reverse_uint32(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_uint32(sail::reverse_bytes((std::uint32_t)0), ==, 0); munit_assert_uint32(sail::reverse_bytes((std::uint32_t)100), ==, 1677721600); munit_assert_uint32(sail::reverse_bytes((std::uint32_t)1000), ==, 3892510720); munit_assert_uint32(sail::reverse_bytes((std::uint32_t)100000), ==, 2693136640); return MUNIT_OK; } static MunitResult test_reverse_uint64(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_uint64(sail::reverse_bytes((std::uint64_t)0ull), ==, 0ull); munit_assert_uint64(sail::reverse_bytes((std::uint64_t)100ull), ==, 7205759403792793600ull); munit_assert_uint64(sail::reverse_bytes((std::uint64_t)1000ull), ==, 16718206241729413120ull); munit_assert_uint64(sail::reverse_bytes((std::uint64_t)100000ull), ==, 11566933792459325440ull); munit_assert_uint64(sail::reverse_bytes((std::uint64_t)10000000000ull), ==, 64188750128742400ull); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/reverse-uint16", test_reverse_uint16, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/reverse-uint32", test_reverse_uint32, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/reverse-uint64", test_reverse_uint64, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++/utils", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/bindings/c++/variant.cpp000066400000000000000000000170731475535176100201650ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "munit.h" template static MunitResult test_set_type(const T &value) { { const sail::variant variant(value); munit_assert(variant.is_valid()); munit_assert(variant.has_value()); munit_assert(variant.value() == value); } { sail::variant variant; variant.set_value(value); munit_assert(variant.is_valid()); munit_assert(variant.has_value()); munit_assert(variant.value() == value); } return MUNIT_OK; } template static MunitResult test_equal(const T &value) { const sail::variant variant1(value); const sail::variant variant2(value); munit_assert(std::equal_to()(variant1, variant2)); munit_assert(std::equal_to()(variant2, variant1)); return MUNIT_OK; } template static MunitResult test_not_equal(const T1 &value1, const T2 &value2) { const sail::variant variant1(value1); const sail::variant variant2(value2); munit_assert(std::not_equal_to()(variant1, variant2)); munit_assert(std::not_equal_to()(variant2, variant1)); return MUNIT_OK; } template static MunitResult test_clear_type(const T &value) { sail::variant variant(value); variant.clear(); munit_assert(!variant.is_valid()); munit_assert(!variant.has_value()); return MUNIT_OK; } static MunitResult test_set_value(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; test_set_type(true); test_set_type('a'); test_set_type('a'); test_set_type(-5); test_set_type(5566); test_set_type(-500); test_set_type(0xFFFF5); test_set_type(-500); test_set_type(0xFFFF5); test_set_type(-5.0f); test_set_type(120.0); test_set_type("abc"); const sail::arbitrary_data arbitrary_data(/* size */ 500, /* value */ 121); test_set_type(arbitrary_data); return MUNIT_OK; } static MunitResult test_move(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; constexpr short reference_value = -500; sail::variant variant; variant.set_value(reference_value); sail::variant variant2 = std::move(variant); munit_assert(variant2.is_valid()); munit_assert(variant2.has_value()); munit_assert(variant2.value() == reference_value); return MUNIT_OK; } static MunitResult test_compare(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; // == test_equal(true); test_equal('a'); test_equal('a'); test_equal(-5); test_equal(5566); test_equal(-500); test_equal(0xFFFF5); test_equal(-500); test_equal(0xFFFF5); test_equal(-5.0f); test_equal(120.0); test_equal("abc"); const sail::arbitrary_data arbitrary_data(/* size */ 500, /* value */ 121); test_equal(arbitrary_data); // != test_not_equal(true, false); test_not_equal('a', 'b'); test_not_equal('a', 'a'); test_not_equal('a', 'b'); test_not_equal('a', 'a'); test_not_equal(5, 10); test_not_equal(5, 5); test_not_equal(5, 10); test_not_equal(5, 5); test_not_equal(500, 501); test_not_equal(500, 500); test_not_equal(500, 501); test_not_equal(500, 500); test_not_equal(500, 501); test_not_equal(500, 500); test_not_equal(500, 501); test_not_equal(500, 500); test_not_equal(-5.0f, -10.0f); test_not_equal(-5.0f, 1); test_not_equal(-5.0, -10.0); test_not_equal(-5.0, 1); test_not_equal("abc", "def"); test_not_equal("abc", 6); const sail::arbitrary_data arbitrary_data1(/* size */ 500, /* value */ 66); const sail::arbitrary_data arbitrary_data2(/* size */ 400, /* value */ 66); const sail::arbitrary_data arbitrary_data3(/* size */ 500, /* value */ 90); test_not_equal(arbitrary_data1, arbitrary_data2); test_not_equal(arbitrary_data1, arbitrary_data3); test_not_equal(arbitrary_data1, 777); return MUNIT_OK; } static MunitResult test_clear(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; test_clear_type(true); test_clear_type('a'); test_clear_type('a'); test_clear_type(-5); test_clear_type(5566); test_clear_type(-500); test_clear_type(0xFFFF5); test_clear_type(-500); test_clear_type(0xFFFF5); test_clear_type(-5.0f); test_clear_type(120.0); test_clear_type("abc"); const sail::arbitrary_data arbitrary_data(/* size */ 500, /* value */ 121); test_clear_type(arbitrary_data); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/set-value", test_set_value, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/move", test_move, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/compare", test_compare, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/clear", test_clear, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bindings/c++/variant", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/external/000077500000000000000000000000001475535176100154625ustar00rootroot00000000000000sail-0.9.8/tests/external/README.md000066400000000000000000000002661475535176100167450ustar00rootroot00000000000000Tests in this directory may be compiled and executed by build pipelines to make sure SAIL is minimally usable from external projects, i.e. a client app is able to link against SAIL. sail-0.9.8/tests/external/link/000077500000000000000000000000001475535176100164175ustar00rootroot00000000000000sail-0.9.8/tests/external/link/c++/000077500000000000000000000000001475535176100167675ustar00rootroot00000000000000sail-0.9.8/tests/external/link/c++/.gitignore000066400000000000000000000004311475535176100207550ustar00rootroot00000000000000*.exe *.app obj CMakeLists.txt.user *.pro.user* *~ *.autosave *.a *.core *.moc *.o *.obj *.orig *.rej *_pch.h.cpp *_resource.rc *.qm .#* *.*# core !core/ tags .DS_Store .directory *.debug Makefile* *.prl *.app moc_*.cpp ui_*.h qrc_*.cpp Thumbs.db *.res /.qmake.cache /.qmake.stash sail-0.9.8/tests/external/link/c++/CMakeLists.txt000066400000000000000000000011021475535176100215210ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.10) project(external-c++-api-link) # Enable strict C++11 # set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) include(CheckCSourceRuns) include(CMakePushCheckState) set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../../../../cmake" "${CMAKE_MODULE_PATH}") include(sail_enable_asan) add_executable(external-c++-api-link main.cpp) sail_enable_asan(TARGET external-c++-api-link) # Add SAIL dependency # find_package(SailC++ REQUIRED) target_link_libraries(external-c++-api-link PRIVATE SAIL::sail-c++) sail-0.9.8/tests/external/link/c++/main.cpp000066400000000000000000000026341475535176100204240ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include int main(int argc, char **argv) { const std::vector codec_info_list = sail::codec_info::list(); return codec_info_list.size() > 0 ? 0 : 1; } sail-0.9.8/tests/external/link/c/000077500000000000000000000000001475535176100166415ustar00rootroot00000000000000sail-0.9.8/tests/external/link/c/.gitignore000066400000000000000000000004311475535176100206270ustar00rootroot00000000000000*.exe *.app obj CMakeLists.txt.user *.pro.user* *~ *.autosave *.a *.core *.moc *.o *.obj *.orig *.rej *_pch.h.cpp *_resource.rc *.qm .#* *.*# core !core/ tags .DS_Store .directory *.debug Makefile* *.prl *.app moc_*.cpp ui_*.h qrc_*.cpp Thumbs.db *.res /.qmake.cache /.qmake.stash sail-0.9.8/tests/external/link/c/CMakeLists.txt000066400000000000000000000006731475535176100214070ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.10) project(external-c-api-link) include(CheckCSourceRuns) include(CMakePushCheckState) set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../../../../cmake" "${CMAKE_MODULE_PATH}") include(sail_enable_asan) add_executable(external-c-api-link main.c) sail_enable_asan(TARGET external-c-api-link) # Add SAIL dependency # find_package(Sail REQUIRED) target_link_libraries(external-c-api-link PRIVATE SAIL::sail) sail-0.9.8/tests/external/link/c/main.c000066400000000000000000000030261475535176100177320ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include int main(int argc, char **argv) { unsigned enumerated_codecs = 0; for (const struct sail_codec_bundle_node *codec_bundle_node = sail_codec_bundle_list(); codec_bundle_node != NULL; codec_bundle_node = codec_bundle_node->next) { enumerated_codecs++; } return enumerated_codecs > 0 ? 0 : 1; } sail-0.9.8/tests/images/000077500000000000000000000000001475535176100151055ustar00rootroot00000000000000sail-0.9.8/tests/images/avif/000077500000000000000000000000001475535176100160325ustar00rootroot00000000000000sail-0.9.8/tests/images/avif/bpp24-yuv.iccp.exif.xmp.avif000066400000000000000000000144021475535176100231240ustar00rootroot00000000000000ftypavifavifmif1miaf meta!hdlrpictpitmFilocD@`1Gx*aiinfinfeav01)infemimeapplication/rdf+xmlinfeExif(irefcdsccdsciprpipcocolrproflcms@mntrRGB XYZ   6acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGB av1C ispe pixiipmamdat image/jxl Death Stranding 1920 1080 Kingston 1080 1920 1 GIMP 2023-10-11T10:18:15+03:00 2023-10-11T10:18:15+03:00 gimp:docid:gimp:e4884706-3a95-4322-a905-8f49a92bcaf0 saved /metadata xmp.iid:01e8db6e-6832-4694-a2d1-14706617c64a GIMP 2.99.16 (Windows) 2023-10-11T10:18:10 saved / xmp.iid:41befade-bdff-4af9-8361-a019ba9b0947 GIMP 2.99.16 (Windows) 2023-10-11T10:18:15 xmp.iid:bda8dba0-877e-4ea6-936e-0052e309f71e xmp.did:0e733e7f-ec16-4e9c-b394-0ca637b2bd7e ExifII* z(1 2i%)[)[GIMP 2.99.162023:10:11 10:18:15023201008 ? 2TFIs n_AK&pm:A8=f+.~/).Օ0Zmg!2&~= #Ybsail-0.9.8/tests/images/bmp/000077500000000000000000000000001475535176100156635ustar00rootroot00000000000000sail-0.9.8/tests/images/bmp/bpp1-indexed.bmp000066400000000000000000000004221475535176100206410ustar00rootroot00000000000000BM| #.#.BGRssail-0.9.8/tests/images/bmp/bpp1-indexed.not4.bmp000066400000000000000000000006221475535176100215260ustar00rootroot00000000000000BM|! #.#.BGRssail-0.9.8/tests/images/bmp/bpp24-bgr.bmp000066400000000000000000000062121475535176100200630ustar00rootroot00000000000000BM |  #.#.BGRssail-0.9.8/tests/images/bmp/bpp24-bgr.not4.bmp000066400000000000000000000064121475535176100207500ustar00rootroot00000000000000BM |!  #.#.BGRssail-0.9.8/tests/images/bmp/bpp32-bgra.bmp000066400000000000000000000102121475535176100202160ustar00rootroot00000000000000BM|  #.#.BGRssail-0.9.8/tests/images/bmp/bpp32-bgra.not4.bmp000066400000000000000000000104121475535176100211030ustar00rootroot00000000000000BM |!  #.#.BGRssail-0.9.8/tests/images/bmp/bpp4-indexed.bmp000066400000000000000000000013121475535176100206430ustar00rootroot00000000000000BM| #.#.BGRs""""ffff""""ffff""""ffff""""ffff""""ffff""""ffff""""ffff""""ffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3333wwww3333wwww3333wwww3333wwww3333wwww3333wwww3333wwww3333wwwwsail-0.9.8/tests/images/bmp/bpp4-indexed.not4.bmp000066400000000000000000000015121475535176100215300ustar00rootroot00000000000000BMJ|" #.#.BGRs""""ffffU""""ffffU""""ffffU""""ffffU""""ffffU""""ffffU""""ffffU""""ffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDUDDDDUDDDDUDDDDUDDDDUDDDDUDDDDUDDDDU3333wwwwU3333wwwwU3333wwwwU3333wwwwU3333wwwwU3333wwwwU3333wwwwU3333wwwwUsail-0.9.8/tests/images/bmp/bpp4-indexed.rle.bmp000066400000000000000000000010121475535176100214210ustar00rootroot00000000000000BM | @#.#.BGRs"f"f"f"f"f"f"f"fUUUUUUUUDDDDDDDD3w3w3w3w3w3w3w3wsail-0.9.8/tests/images/bmp/bpp4-indexed.rle.not4.bmp000066400000000000000000000011121475535176100223050ustar00rootroot00000000000000BMJ|" #.#.BGRs"fU"fU"fU"fU"fU"fU"fU"fUUUUUUUUUUUUUUUUUDUDUDUDUDUDUDUDU3wU3wU3wU3wU3wU3wU3wU3wUsail-0.9.8/tests/images/bmp/bpp8-indexed.bmp000066400000000000000000000023521475535176100206540ustar00rootroot00000000000000BM| #.#.BGRs Dn.!$H2,!$                                sail-0.9.8/tests/images/bmp/bpp8-indexed.not4.bmp000066400000000000000000000025521475535176100215410ustar00rootroot00000000000000BMj|# #.#.BGRs Dn.!$H2,!$                                sail-0.9.8/tests/images/bmp/bpp8-indexed.rle.bmp000066400000000000000000000012521475535176100214330ustar00rootroot00000000000000BM| #.#.BGRs Dn.!$H2,!$                                        sail-0.9.8/tests/images/bmp/bpp8-indexed.rle.not4.bmp000066400000000000000000000013521475535176100223170ustar00rootroot00000000000000BM|# #.#.BGRs Dn.!$H2,!$                                        sail-0.9.8/tests/images/gif/000077500000000000000000000000001475535176100156525ustar00rootroot00000000000000sail-0.9.8/tests/images/gif/bpp8-indexed.comment.gif000066400000000000000000000006651475535176100223000ustar00rootroot00000000000000GIF89a nD .!$H,2!$!Created with GIMP,  `Q챼#2Iں0M#jՂ|5 @+4Q%3e}"[" Sc/n pdI?ADEF:IMORSUXYZN]acfgilmnbӕqvy),z~o ]+=te9xQQ+,pJ%:Faј6UeLJ3׀`SN4jjYMl!;sail-0.9.8/tests/images/ico/000077500000000000000000000000001475535176100156575ustar00rootroot00000000000000sail-0.9.8/tests/images/ico/bpp24-bgr.ico000066400000000000000000000062761475535176100200650ustar00rootroot00000000000000  ( @$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$HHHH....HHHH....HHHH....HHHH....HHHH....HHHH....HHHH....HHHH....2,2,2,2,!!!!߀2,2,2,2,!!!!߀2,2,2,2,!!!!߀2,2,2,2,!!!!߀2,2,2,2,!!!!߀2,2,2,2,!!!!߀2,2,2,2,!!!!߀2,2,2,2,!!!!߀!!!! Dn Dn Dn Dn!!!! Dn Dn Dn Dn!!!! Dn Dn Dn Dn!!!! Dn Dn Dn Dn!!!! Dn Dn Dn Dn!!!! Dn Dn Dn Dn!!!! Dn Dn Dn Dn!!!! Dn Dn Dn Dnsail-0.9.8/tests/images/ico/bpp8-indexed.ico000066400000000000000000000042761475535176100206530ustar00rootroot00000000000000 ( @ Dn.!$H2,!$                                sail-0.9.8/tests/images/jpeg/000077500000000000000000000000001475535176100160325ustar00rootroot00000000000000sail-0.9.8/tests/images/jpeg/bpp24-ycbcr.comment.iccp.jpeg000066400000000000000000000026471475535176100233170ustar00rootroot00000000000000JFIF++Created with GIMPICC_PROFILElcms@mntrRGB XYZ  0acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C      $tz1m :ʩz4(97>}TRB6 (UZQ#DABC?>8m`5j{'6XԱM5<§BCA?Kʴm pxS\ ? i뢚@6>5 ?! K[ܐ @?!= A?/* 0? NX)_sail-0.9.8/tests/images/jpeg/bpp8-grayscale.comment.iccp.jpeg000066400000000000000000000016571475535176100241110ustar00rootroot00000000000000JFIF++Created with GIMP0ICC_PROFILE lcms@mntrGRAYXYZ  acspMSFT-lcmsdescncprt<6wtpttkTRC dmnd$dmddRmluc enUSRGIMP built-in D65 Grayscale with sRGB TRCmluc enUSPublic DomainXYZ Qparaff Y [mluc enUSGIMPmluc enUS6D65 Grayscale with sRGB TRCC       )uUqo* ?O(VcU1 0?!6>+ A?i)ڌ?sail-0.9.8/tests/images/jpeg2000/000077500000000000000000000000001475535176100163345ustar00rootroot00000000000000sail-0.9.8/tests/images/jpeg2000/bpp24-rgb.jp2000066400000000000000000000021451475535176100204520ustar00rootroot00000000000000 jP ftypjp2 jp2 -jp2hihdr colruuidK=KCզII*  #  mtr@@TXAWGS 84|jp2cOQ/ R \B@d%Created by OpenJPEG version 2.1.2 OGPS jXi,!P:[;@q4]gA|Ca섌@abHHpzs^qr"GRȏNUy0@G%a!/`?,?YU!}hM%yq!"YGإ))p $%F!,p٧$$K8 G8$$K8 " <8.0L$$K8BD01N$$K8>4Gܦr#SDϛlJqB!]lHb}=e]{9cSgabGܦ`4kWc't )0I",}BwvOG =8M6/yq!"YG%yq!"YG { #T x?Ht)}h, #S x?Htϒ;B+qa,u(05:;!a~pM%yqr$,؄7C{H bR94HK0@x*sail-0.9.8/tests/images/jpegxl/000077500000000000000000000000001475535176100163765ustar00rootroot00000000000000sail-0.9.8/tests/images/jpegxl/bpp24.iccp.jxl000066400000000000000000000005771475535176100207720ustar00rootroot00000000000000 G@Bq!*CŴ mma c0Hbqa2   t*{PdgL~9VBoUS6r,I؏ߣf.RaB Q)/o.qo+'S$7-9!(/F:ɘaBs Q'M!t$)WJ*k!JGluN/I'1rA=`LCc2 j,Y?;JAjK/a~Yf r3B[ρ6N&dA?#:66ῃw ԆJ 2\Oy;DO>>T>wxVJuNsail-0.9.8/tests/images/pcx/000077500000000000000000000000001475535176100156775ustar00rootroot00000000000000sail-0.9.8/tests/images/pcx/bpp8-indexed.pcx000066400000000000000000000024011475535176100206770ustar00rootroot00000000000000 ,,                                  nD .!$H,2!$sail-0.9.8/tests/images/png/000077500000000000000000000000001475535176100156715ustar00rootroot00000000000000sail-0.9.8/tests/images/png/bpp4-indexed.comment.iccp.png000066400000000000000000000012071475535176100232400ustar00rootroot00000000000000PNG  IHDR TggAMA aiCCPICC profile(}=H@_ӖT !Cu *(U,Vh/hbHR\ׂUg]\AIEJ_Rhq?{ܽff`P5$b"^D/1SOer_.γ9H9j88F˔= Pr e0PLTEP pHYs.#.#x?vtEXtCommentbpp4-indexedR=IDAT(c`c (@0@@@pJ`n x%i@p vIENDB`sail-0.9.8/tests/images/pnm/000077500000000000000000000000001475535176100156775ustar00rootroot00000000000000sail-0.9.8/tests/images/pnm/bpp1-grayscale.ascii.pbm000066400000000000000000000022101475535176100222730ustar00rootroot00000000000000P1 32 32 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 00000000 11111111 11111111 11111111 00000000 11111111 11111111 11111111 00000000 11111111 11111111 11111111 00000000 11111111 11111111 11111111 00000000 11111111 11111111 11111111 00000000 11111111 11111111 11111111 00000000 11111111 11111111 11111111 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000sail-0.9.8/tests/images/pnm/bpp1-grayscale.raw.pbm000066400000000000000000000002111475535176100217730ustar00rootroot00000000000000P4 32 32 sail-0.9.8/tests/images/pnm/bpp24-rgb.ascii.pnm000066400000000000000000000226731475535176100212130ustar00rootroot00000000000000P3 # Created by GIMP version 2.10.36 PNM plug-in 32 32 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 0 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 0 128 128 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 1 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 1 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 sail-0.9.8/tests/images/pnm/bpp24-rgb.raw.pnm000066400000000000000000000060731475535176100207100ustar00rootroot00000000000000P6 # Created by GIMP version 2.10.36 PNM plug-in 32 32 255 sail-0.9.8/tests/images/pnm/bpp8-grayscale.ascii.pgm000066400000000000000000000072731475535176100223250ustar00rootroot00000000000000P2 # Created by GIMP version 2.10.36 PNM plug-in 32 32 255 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 0 0 0 0 0 0 0 0 62 62 62 62 62 62 62 62 110 110 110 110 110 110 110 110 124 124 124 124 124 124 124 124 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 30 30 30 30 30 30 30 30 70 70 70 70 70 70 70 70 114 114 114 114 114 114 114 114 192 192 192 192 192 192 192 192 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 128 128 128 128 128 128 128 128 130 130 130 130 130 130 130 130 220 220 220 220 220 220 220 220 248 248 248 248 248 248 248 248 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 70 70 70 70 70 70 70 70 145 145 145 145 145 145 145 145 228 228 228 228 228 228 228 228 255 255 255 255 255 255 255 255 sail-0.9.8/tests/images/pnm/bpp8-grayscale.raw.pgm000066400000000000000000000020731475535176100220170ustar00rootroot00000000000000P5 # Created by GIMP version 2.10.36 PNM plug-in 32 32 255 >>>>>>>>nnnnnnnn||||||||>>>>>>>>nnnnnnnn||||||||>>>>>>>>nnnnnnnn||||||||>>>>>>>>nnnnnnnn||||||||>>>>>>>>nnnnnnnn||||||||>>>>>>>>nnnnnnnn||||||||>>>>>>>>nnnnnnnn||||||||>>>>>>>>nnnnnnnn||||||||FFFFFFFFrrrrrrrrFFFFFFFFrrrrrrrrFFFFFFFFrrrrrrrrFFFFFFFFrrrrrrrrFFFFFFFFrrrrrrrrFFFFFFFFrrrrrrrrFFFFFFFFrrrrrrrrFFFFFFFFrrrrrrrrFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsail-0.9.8/tests/images/psd/000077500000000000000000000000001475535176100156735ustar00rootroot00000000000000sail-0.9.8/tests/images/psd/bpp24-rgb.psd000066400000000000000000000044261475535176100201100ustar00rootroot000000000000008BPS 8BIM++8BIM8BIMlcms@mntrRGB XYZ  .acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBXT B8BIMnormX bpp24-bgr.bmp8BIMluni bpp24-bgr.bmp8BIMlclrsail-0.9.8/tests/images/psd/bpp8-indexed.psd000066400000000000000000000036761475535176100207060ustar00rootroot000000000000008BPS nꀀ,$D.!$HӚ 2!8BIM++8BIM8BIMlcms@mntrRGB XYZ  .acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGB                                 sail-0.9.8/tests/images/qoi/000077500000000000000000000000001475535176100156755ustar00rootroot00000000000000sail-0.9.8/tests/images/qoi/bpp24-rgb.qoi000066400000000000000000000007321475535176100201100ustar00rootroot00000000000000qoif ƟJ523-523-523-523-523-523-523-}ZƟJ.+,&.+,&.+,&.+,&.+,&.+,&.+,&sail-0.9.8/tests/images/svg/000077500000000000000000000000001475535176100157045ustar00rootroot00000000000000sail-0.9.8/tests/images/svg/bpp32-rgba.svg000066400000000000000000000022201475535176100202600ustar00rootroot00000000000000 sail-0.9.8/tests/images/test-images.h.in000066400000000000000000000065511475535176100201140ustar00rootroot00000000000000#ifndef SAIL_TEST_IMAGES_H #define SAIL_TEST_IMAGES_H #include #include static const char * const SAIL_TEST_IMAGES[] = { #ifdef SAIL_HAVE_BUILTIN_AVIF "@SAIL_TEST_IMAGES_PATH@/avif/bpp24-yuv.iccp.exif.xmp.avif", #endif #ifdef SAIL_HAVE_BUILTIN_BMP "@SAIL_TEST_IMAGES_PATH@/bmp/bpp1-indexed.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp1-indexed.not4.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp4-indexed.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp4-indexed.not4.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp4-indexed.rle.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp4-indexed.rle.not4.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp8-indexed.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp8-indexed.not4.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp8-indexed.rle.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp8-indexed.rle.not4.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp24-bgr.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp24-bgr.not4.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp32-bgra.bmp", "@SAIL_TEST_IMAGES_PATH@/bmp/bpp32-bgra.not4.bmp", #endif #ifdef SAIL_HAVE_BUILTIN_GIF "@SAIL_TEST_IMAGES_PATH@/gif/bpp8-indexed.comment.gif", "@SAIL_TEST_IMAGES_PATH@/gif/bpp8-indexed.interlaced.gif", #endif #ifdef SAIL_HAVE_BUILTIN_ICO "@SAIL_TEST_IMAGES_PATH@/ico/bpp8-indexed.ico", "@SAIL_TEST_IMAGES_PATH@/ico/bpp24-bgr.ico", #endif #ifdef SAIL_HAVE_BUILTIN_JPEG "@SAIL_TEST_IMAGES_PATH@/jpeg/bpp8-grayscale.comment.iccp.jpeg", "@SAIL_TEST_IMAGES_PATH@/jpeg/bpp24-ycbcr.comment.iccp.jpeg", #endif #ifdef SAIL_HAVE_BUILTIN_JPEG2000 "@SAIL_TEST_IMAGES_PATH@/jpeg2000/bpp24-rgb.jp2", #endif #ifdef SAIL_HAVE_BUILTIN_JPEGXL "@SAIL_TEST_IMAGES_PATH@/jpegxl/bpp24.iccp.jxl", #endif #ifdef SAIL_HAVE_BUILTIN_PCX "@SAIL_TEST_IMAGES_PATH@/pcx/bpp8-indexed.pcx", #endif #ifdef SAIL_HAVE_BUILTIN_PNG "@SAIL_TEST_IMAGES_PATH@/png/bpp4-indexed.comment.iccp.png", #endif #ifdef SAIL_HAVE_BUILTIN_PNM "@SAIL_TEST_IMAGES_PATH@/pnm/bpp1-grayscale.ascii.pbm", "@SAIL_TEST_IMAGES_PATH@/pnm/bpp1-grayscale.raw.pbm", "@SAIL_TEST_IMAGES_PATH@/pnm/bpp24-rgb.ascii.pnm", "@SAIL_TEST_IMAGES_PATH@/pnm/bpp24-rgb.raw.pnm", "@SAIL_TEST_IMAGES_PATH@/pnm/bpp8-grayscale.ascii.pgm", "@SAIL_TEST_IMAGES_PATH@/pnm/bpp8-grayscale.raw.pgm", #endif #ifdef SAIL_HAVE_BUILTIN_PSD "@SAIL_TEST_IMAGES_PATH@/psd/bpp8-indexed.psd", "@SAIL_TEST_IMAGES_PATH@/psd/bpp24-rgb.psd", #endif #ifdef SAIL_HAVE_BUILTIN_QOI "@SAIL_TEST_IMAGES_PATH@/qoi/bpp24-rgb.qoi", #endif #ifdef SAIL_HAVE_BUILTIN_SVG "@SAIL_TEST_IMAGES_PATH@/svg/bpp32-rgba.svg", #endif #ifdef SAIL_HAVE_BUILTIN_PNG "@SAIL_TEST_IMAGES_PATH@/png/bpp4-indexed.comment.iccp.png", #endif #ifdef SAIL_HAVE_BUILTIN_TGA "@SAIL_TEST_IMAGES_PATH@/tga/bpp8-grayscale.extension.rle.tga", "@SAIL_TEST_IMAGES_PATH@/tga/bpp8-indexed.extension.rle.tga", "@SAIL_TEST_IMAGES_PATH@/tga/bpp24-bgr.extension.rle.tga", #endif #ifdef SAIL_HAVE_BUILTIN_TIFF "@SAIL_TEST_IMAGES_PATH@/tiff/bpp8.deflate.tiff", "@SAIL_TEST_IMAGES_PATH@/tiff/bpp24.tiff", #endif #ifdef SAIL_HAVE_BUILTIN_WAL "@SAIL_TEST_IMAGES_PATH@/wal/bpp8-indexed.wal", #endif #ifdef SAIL_HAVE_BUILTIN_WEBP "@SAIL_TEST_IMAGES_PATH@/webp/bpp24-yuv.webp", #endif #ifdef SAIL_HAVE_BUILTIN_XBM "@SAIL_TEST_IMAGES_PATH@/xbm/bpp1-indexed.x10.xbm", "@SAIL_TEST_IMAGES_PATH@/xbm/bpp1-indexed.x11.xbm", #endif NULL, }; #endif sail-0.9.8/tests/images/tga/000077500000000000000000000000001475535176100156605ustar00rootroot00000000000000sail-0.9.8/tests/images/tga/bpp24-bgr.extension.rle.tga000066400000000000000000000510671475535176100226610ustar00rootroot00000000000000 Truevision(R) Sample Image@@Ricky TrueSample 24 bit run length compressed true color image TGA UtilitiesTGAEdit , .PTRUEVISION-XFILE.sail-0.9.8/tests/images/tga/bpp8-grayscale.extension.rle.tga000066400000000000000000000210671475535176100240000ustar00rootroot00000000000000 Truevision(R) Sample ImageLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL@@LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRicky TrueSample 8 bit run length compressed black and white image TGA UtilitiesTGAEdit ,. TRUEVISION-XFILE.sail-0.9.8/tests/images/tga/bpp8-indexed.extension.rle.tga000066400000000000000000000220671475535176100234470ustar00rootroot00000000000000 Truevision(R) Sample Image!Bc |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Ricky TrueSample 8 bit run length compressed color mapped image TGA UtilitiesTGAEdit ,."TRUEVISION-XFILE.sail-0.9.8/tests/images/tiff/000077500000000000000000000000001475535176100160355ustar00rootroot00000000000000sail-0.9.8/tests/images/tiff/bpp24.tiff000066400000000000000000000076441475535176100176510ustar00rootroot00000000000000II*       (S s % % lcms@mntrRGB XYZ  acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBbpp24-bgr.bmpsail-0.9.8/tests/images/tiff/bpp8.deflate.tiff000066400000000000000000000047261475535176100211740ustar00rootroot00000000000000II*:xɷ 1Mfm))^̾G@FÂLDƅ?Q  1  (@(Ss(% % Xi{w",pR&0i8io&odRpRR0iii(1wjm+p0+jm`+xfwx+fw+? (Hxh+? x'? \+xxNi \R+sd \++sx+(EbB/ \++B/ \PDb++x+R5? \x \x:6 5xc \cPՄ5 Kba+p+c+ \a>+ >+ +? ++2>++ ?>lcms@mntrRGB XYZ  acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBbpp24-bgr.bmpsail-0.9.8/tests/images/wal/000077500000000000000000000000001475535176100156705ustar00rootroot00000000000000sail-0.9.8/tests/images/wal/bpp8-indexed.wal000066400000000000000000000026641475535176100206740ustar00rootroot00000000000000e1u1/black dddִrrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr rrrrrrrr mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmִrrrr rrrr rrrr rrrr mmmmmmmmmmmmmmmmִrr rr mmmmִr msail-0.9.8/tests/images/webp/000077500000000000000000000000001475535176100160425ustar00rootroot00000000000000sail-0.9.8/tests/images/webp/bpp24-yuv.webp000066400000000000000000000014701475535176100204730ustar00rootroot00000000000000RIFF0WEBPVP8X ICCPlcms@mntrRGB XYZ   $acspMSFT-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBVP8Li/@ 4X< !4 '; S(EVYӶ5D)B )B )B 0 0}"UjNlxsvsail-0.9.8/tests/images/xbm/000077500000000000000000000000001475535176100156735ustar00rootroot00000000000000sail-0.9.8/tests/images/xbm/bpp1-indexed.x10.xbm000066400000000000000000000012051475535176100212700ustar00rootroot00000000000000#define bpp1_indexed_width 32 #define bpp1_indexed_height 32 static unsigned short bpp1_indexed_bits[] = { 0xffff, 0x5577, 0xffff, 0xdbdd, 0xffff, 0x566b, 0xffff, 0xb5de, 0xffff, 0x556b, 0xffff, 0xd6dd, 0xffff, 0xadbb, 0xffff, 0xb56b, 0xffff, 0x00dd, 0xffff, 0x00b5, 0xffff, 0x005b, 0xffff, 0x00eb, 0xffff, 0x005e, 0xffff, 0x00ea, 0xffff, 0x005b, 0xffff, 0x00ee, 0xdfff, 0x0000, 0x2955, 0x0000, 0xaaaa, 0x0000, 0x2aaa, 0x0000, 0x5555, 0x0000, 0x5b6b, 0x0000, 0xaaaa, 0x0000, 0x2aad, 0x0000, 0xaaff, 0x0000, 0x11ff, 0x0000, 0x2aff, 0x0000, 0x4aff, 0x0000, 0x51ff, 0x0000, 0x15ff, 0x0000, 0x52ff, 0x0000, 0x24ff, 0x0000 }; sail-0.9.8/tests/images/xbm/bpp1-indexed.x11.xbm000066400000000000000000000016201475535176100212720ustar00rootroot00000000000000#define bpp1_indexed2_width 32 #define bpp1_indexed2_height 32 static unsigned char bpp1_indexed2_bits[] = { 0xff, 0xff, 0x77, 0x55, 0xff, 0xff, 0xdd, 0xdb, 0xff, 0xff, 0x6b, 0x56, 0xff, 0xff, 0xde, 0xb5, 0xff, 0xff, 0x6b, 0x55, 0xff, 0xff, 0xdd, 0xd6, 0xff, 0xff, 0xbb, 0xad, 0xff, 0xff, 0x6b, 0xb5, 0xff, 0xff, 0xdd, 0x00, 0xff, 0xff, 0xb5, 0x00, 0xff, 0xff, 0x5b, 0x00, 0xff, 0xff, 0xeb, 0x00, 0xff, 0xff, 0x5e, 0x00, 0xff, 0xff, 0xea, 0x00, 0xff, 0xff, 0x5b, 0x00, 0xff, 0xff, 0xee, 0x00, 0xff, 0xdf, 0x00, 0x00, 0x55, 0x29, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0x2a, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x6b, 0x5b, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0xad, 0x2a, 0x00, 0x00, 0xff, 0xaa, 0x00, 0x00, 0xff, 0x11, 0x00, 0x00, 0xff, 0x2a, 0x00, 0x00, 0xff, 0x4a, 0x00, 0x00, 0xff, 0x51, 0x00, 0x00, 0xff, 0x15, 0x00, 0x00, 0xff, 0x52, 0x00, 0x00, 0xff, 0x24, 0x00, 0x00 }; sail-0.9.8/tests/munit/000077500000000000000000000000001475535176100147745ustar00rootroot00000000000000sail-0.9.8/tests/munit/CMakeLists.txt000066400000000000000000000004561475535176100175410ustar00rootroot00000000000000add_library(sail-munit STATIC munit.c) set_target_properties(sail-munit PROPERTIES VERSION "0.4.1" SOVERSION 0) # Definitions, includes, link # target_include_directories(sail-munit PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) sail-0.9.8/tests/munit/munit.c000066400000000000000000002044241475535176100163020ustar00rootroot00000000000000/* Copyright (c) 2013-2018 Evan Nemerson * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /*** Configuration ***/ /* This is just where the output from the test goes. It's really just * meant to let you choose stdout or stderr, but if anyone really want * to direct it to a file let me know, it would be fairly easy to * support. */ #if !defined(MUNIT_OUTPUT_FILE) # define MUNIT_OUTPUT_FILE stdout #endif /* This is a bit more useful; it tells µnit how to format the seconds in * timed tests. If your tests run for longer you might want to reduce * it, and if your computer is really fast and your tests are tiny you * can increase it. */ #if !defined(MUNIT_TEST_TIME_FORMAT) # define MUNIT_TEST_TIME_FORMAT "0.8f" #endif /* If you have long test names you might want to consider bumping * this. The result information takes 43 characters. */ #if !defined(MUNIT_TEST_NAME_LEN) # define MUNIT_TEST_NAME_LEN 37 #endif /* If you don't like the timing information, you can disable it by * defining MUNIT_DISABLE_TIMING. */ #if !defined(MUNIT_DISABLE_TIMING) # define MUNIT_ENABLE_TIMING #endif /*** End configuration ***/ #if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE < 200809L) # undef _POSIX_C_SOURCE #endif #if !defined(_POSIX_C_SOURCE) # define _POSIX_C_SOURCE 200809L #endif /* Solaris freaks out if you try to use a POSIX or SUS standard without * the "right" C standard. */ #if defined(_XOPEN_SOURCE) # undef _XOPEN_SOURCE #endif #if defined(__STDC_VERSION__) # if __STDC_VERSION__ >= 201112L # define _XOPEN_SOURCE 700 # elif __STDC_VERSION__ >= 199901L # define _XOPEN_SOURCE 600 # endif #endif /* Because, according to Microsoft, POSIX is deprecated. You've got * to appreciate the chutzpah. */ #if defined(_MSC_VER) && !defined(_CRT_NONSTDC_NO_DEPRECATE) # define _CRT_NONSTDC_NO_DEPRECATE #endif #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) # include #elif defined(_WIN32) /* https://msdn.microsoft.com/en-us/library/tf4dy80a.aspx */ #endif #include #include #include #include #include #include #include #include #if !defined(MUNIT_NO_NL_LANGINFO) && !defined(_WIN32) #define MUNIT_NL_LANGINFO #include #include #include #endif #if !defined(_WIN32) # include # include # include #else # include # include # include # if !defined(STDERR_FILENO) # define STDERR_FILENO _fileno(stderr) # endif #endif #include "munit.h" #define MUNIT_STRINGIFY(x) #x #define MUNIT_XSTRINGIFY(x) MUNIT_STRINGIFY(x) #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__SUNPRO_CC) || defined(__IBMCPP__) # define MUNIT_THREAD_LOCAL __thread #elif defined(_WIN32) # define MUNIT_THREAD_LOCAL __declspec(thread) #elif defined(_Thread_local) # define MUNIT_THREAD_LOCAL _Thread_local #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201102L) # define MUNIT_THREAD_LOCAL _Thread_local #endif /* MSVC 12.0 will emit a warning at /W4 for code like 'do { ... } * while (0)', or 'do { ... } while (1)'. I'm pretty sure nobody * at Microsoft compiles with /W4. */ #if defined(_MSC_VER) && (_MSC_VER <= 1800) #pragma warning(disable: 4127) #endif #if defined(_WIN32) || defined(__EMSCRIPTEN__) # define MUNIT_NO_FORK #endif #if defined(__EMSCRIPTEN__) # define MUNIT_NO_BUFFER #endif /*** Logging ***/ static MunitLogLevel munit_log_level_visible = MUNIT_LOG_INFO; static MunitLogLevel munit_log_level_fatal = MUNIT_LOG_ERROR; #if defined(MUNIT_THREAD_LOCAL) static MUNIT_THREAD_LOCAL munit_bool munit_error_jmp_buf_valid = 0; static MUNIT_THREAD_LOCAL jmp_buf munit_error_jmp_buf; #endif /* At certain warning levels, mingw will trigger warnings about * suggesting the format attribute, which we've explicity *not* set * because it will then choke on our attempts to use the MS-specific * I64 modifier for size_t (which we have to use since MSVC doesn't * support the C99 z modifier). */ #if defined(__MINGW32__) || defined(__MINGW64__) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wsuggest-attribute=format" #endif MUNIT_PRINTF(5,0) static void munit_logf_exv(MunitLogLevel level, FILE* fp, const char* filename, int line, const char* format, va_list ap) { if (level < munit_log_level_visible) return; switch (level) { case MUNIT_LOG_DEBUG: fputs("Debug", fp); break; case MUNIT_LOG_INFO: fputs("Info", fp); break; case MUNIT_LOG_WARNING: fputs("Warning", fp); break; case MUNIT_LOG_ERROR: fputs("Error", fp); break; default: munit_logf_ex(MUNIT_LOG_ERROR, filename, line, "Invalid log level (%d)", level); return; } fputs(": ", fp); if (filename != NULL) fprintf(fp, "%s:%d: ", filename, line); vfprintf(fp, format, ap); fputc('\n', fp); } MUNIT_PRINTF(3,4) static void munit_logf_internal(MunitLogLevel level, FILE* fp, const char* format, ...) { va_list ap; va_start(ap, format); munit_logf_exv(level, fp, NULL, 0, format, ap); va_end(ap); } static void munit_log_internal(MunitLogLevel level, FILE* fp, const char* message) { munit_logf_internal(level, fp, "%s", message); } void munit_logf_ex(MunitLogLevel level, const char* filename, int line, const char* format, ...) { va_list ap; va_start(ap, format); munit_logf_exv(level, stderr, filename, line, format, ap); va_end(ap); if (level >= munit_log_level_fatal) { #if defined(MUNIT_THREAD_LOCAL) if (munit_error_jmp_buf_valid) longjmp(munit_error_jmp_buf, 1); #endif abort(); } } void munit_errorf_ex(const char* filename, int line, const char* format, ...) { va_list ap; va_start(ap, format); munit_logf_exv(MUNIT_LOG_ERROR, stderr, filename, line, format, ap); va_end(ap); #if defined(MUNIT_THREAD_LOCAL) if (munit_error_jmp_buf_valid) longjmp(munit_error_jmp_buf, 1); #endif abort(); } #if defined(__MINGW32__) || defined(__MINGW64__) #pragma GCC diagnostic pop #endif #if !defined(MUNIT_STRERROR_LEN) # define MUNIT_STRERROR_LEN 80 #endif static void munit_log_errno(MunitLogLevel level, FILE* fp, const char* msg) { #if defined(MUNIT_NO_STRERROR_R) || (defined(__MINGW32__) && !defined(MINGW_HAS_SECURE_API)) munit_logf_internal(level, fp, "%s: %s (%d)", msg, strerror(errno), errno); #else char munit_error_str[MUNIT_STRERROR_LEN]; munit_error_str[0] = '\0'; #if !defined(_WIN32) strerror_r(errno, munit_error_str, MUNIT_STRERROR_LEN); #else strerror_s(munit_error_str, MUNIT_STRERROR_LEN, errno); #endif munit_logf_internal(level, fp, "%s: %s (%d)", msg, munit_error_str, errno); #endif } /*** Memory allocation ***/ void* munit_malloc_ex(const char* filename, int line, size_t size) { void* ptr; if (size == 0) return NULL; ptr = calloc(1, size); if (MUNIT_UNLIKELY(ptr == NULL)) { munit_logf_ex(MUNIT_LOG_ERROR, filename, line, "Failed to allocate %" MUNIT_SIZE_MODIFIER "u bytes.", size); } return ptr; } /*** Timer code ***/ #if defined(MUNIT_ENABLE_TIMING) #define psnip_uint64_t munit_uint64_t #define psnip_uint32_t munit_uint32_t /* Code copied from portable-snippets * . If you need to * change something, please do it there so we can keep the code in * sync. */ /* Clocks (v1) * Portable Snippets - https://gitub.com/nemequ/portable-snippets * Created by Evan Nemerson * * To the extent possible under law, the authors have waived all * copyright and related or neighboring rights to this code. For * details, see the Creative Commons Zero 1.0 Universal license at * https://creativecommons.org/publicdomain/zero/1.0/ */ #if !defined(PSNIP_CLOCK_H) #define PSNIP_CLOCK_H #if !defined(psnip_uint64_t) # include "../exact-int/exact-int.h" #endif #if !defined(PSNIP_CLOCK_STATIC_INLINE) # if defined(__GNUC__) # define PSNIP_CLOCK__COMPILER_ATTRIBUTES __attribute__((__unused__)) # else # define PSNIP_CLOCK__COMPILER_ATTRIBUTES # endif # define PSNIP_CLOCK__FUNCTION PSNIP_CLOCK__COMPILER_ATTRIBUTES static #endif enum PsnipClockType { /* This clock provides the current time, in units since 1970-01-01 * 00:00:00 UTC not including leap seconds. In other words, UNIX * time. Keep in mind that this clock doesn't account for leap * seconds, and can go backwards (think NTP adjustments). */ PSNIP_CLOCK_TYPE_WALL = 1, /* The CPU time is a clock which increases only when the current * process is active (i.e., it doesn't increment while blocking on * I/O). */ PSNIP_CLOCK_TYPE_CPU = 2, /* Monotonic time is always running (unlike CPU time), but it only ever moves forward unless you reboot the system. Things like NTP adjustments have no effect on this clock. */ PSNIP_CLOCK_TYPE_MONOTONIC = 3 }; struct PsnipClockTimespec { psnip_uint64_t seconds; psnip_uint64_t nanoseconds; }; /* Methods we support: */ #define PSNIP_CLOCK_METHOD_CLOCK_GETTIME 1 #define PSNIP_CLOCK_METHOD_TIME 2 #define PSNIP_CLOCK_METHOD_GETTIMEOFDAY 3 #define PSNIP_CLOCK_METHOD_QUERYPERFORMANCECOUNTER 4 #define PSNIP_CLOCK_METHOD_MACH_ABSOLUTE_TIME 5 #define PSNIP_CLOCK_METHOD_CLOCK 6 #define PSNIP_CLOCK_METHOD_GETPROCESSTIMES 7 #define PSNIP_CLOCK_METHOD_GETRUSAGE 8 #define PSNIP_CLOCK_METHOD_GETSYSTEMTIMEPRECISEASFILETIME 9 #define PSNIP_CLOCK_METHOD_GETTICKCOUNT64 10 #include #if defined(HEDLEY_UNREACHABLE) # define PSNIP_CLOCK_UNREACHABLE() HEDLEY_UNREACHABLE() #else # define PSNIP_CLOCK_UNREACHABLE() assert(0) #endif /* Choose an implementation */ /* #undef PSNIP_CLOCK_WALL_METHOD */ /* #undef PSNIP_CLOCK_CPU_METHOD */ /* #undef PSNIP_CLOCK_MONOTONIC_METHOD */ /* We want to be able to detect the libc implementation, so we include ( isn't available everywhere). */ #if defined(__unix__) || defined(__unix) || defined(__linux__) # include # include #endif #if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) /* These are known to work without librt. If you know of others * please let us know so we can add them. */ # if \ (defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 17))) || \ (defined(__FreeBSD__)) # define PSNIP_CLOCK_HAVE_CLOCK_GETTIME # elif !defined(PSNIP_CLOCK_NO_LIBRT) # define PSNIP_CLOCK_HAVE_CLOCK_GETTIME # endif #endif #if defined(_WIN32) # if !defined(PSNIP_CLOCK_CPU_METHOD) # define PSNIP_CLOCK_CPU_METHOD PSNIP_CLOCK_METHOD_GETPROCESSTIMES # endif # if !defined(PSNIP_CLOCK_MONOTONIC_METHOD) # define PSNIP_CLOCK_MONOTONIC_METHOD PSNIP_CLOCK_METHOD_QUERYPERFORMANCECOUNTER # endif #endif #if defined(__MACH__) && !defined(__gnu_hurd__) # if !defined(PSNIP_CLOCK_MONOTONIC_METHOD) # define PSNIP_CLOCK_MONOTONIC_METHOD PSNIP_CLOCK_METHOD_MACH_ABSOLUTE_TIME # endif #endif #if defined(PSNIP_CLOCK_HAVE_CLOCK_GETTIME) # include # if !defined(PSNIP_CLOCK_WALL_METHOD) # if defined(CLOCK_REALTIME_PRECISE) # define PSNIP_CLOCK_WALL_METHOD PSNIP_CLOCK_METHOD_CLOCK_GETTIME # define PSNIP_CLOCK_CLOCK_GETTIME_WALL CLOCK_REALTIME_PRECISE # elif !defined(__sun) # define PSNIP_CLOCK_WALL_METHOD PSNIP_CLOCK_METHOD_CLOCK_GETTIME # define PSNIP_CLOCK_CLOCK_GETTIME_WALL CLOCK_REALTIME # endif # endif # if !defined(PSNIP_CLOCK_CPU_METHOD) # if defined(_POSIX_CPUTIME) || defined(CLOCK_PROCESS_CPUTIME_ID) # define PSNIP_CLOCK_CPU_METHOD PSNIP_CLOCK_METHOD_CLOCK_GETTIME # define PSNIP_CLOCK_CLOCK_GETTIME_CPU CLOCK_PROCESS_CPUTIME_ID # elif defined(CLOCK_VIRTUAL) # define PSNIP_CLOCK_CPU_METHOD PSNIP_CLOCK_METHOD_CLOCK_GETTIME # define PSNIP_CLOCK_CLOCK_GETTIME_CPU CLOCK_VIRTUAL # endif # endif # if !defined(PSNIP_CLOCK_MONOTONIC_METHOD) # if defined(CLOCK_MONOTONIC_RAW) # define PSNIP_CLOCK_MONOTONIC_METHOD PSNIP_CLOCK_METHOD_CLOCK_GETTIME # define PSNIP_CLOCK_CLOCK_GETTIME_MONOTONIC CLOCK_MONOTONIC # elif defined(CLOCK_MONOTONIC_PRECISE) # define PSNIP_CLOCK_MONOTONIC_METHOD PSNIP_CLOCK_METHOD_CLOCK_GETTIME # define PSNIP_CLOCK_CLOCK_GETTIME_MONOTONIC CLOCK_MONOTONIC_PRECISE # elif defined(_POSIX_MONOTONIC_CLOCK) || defined(CLOCK_MONOTONIC) # define PSNIP_CLOCK_MONOTONIC_METHOD PSNIP_CLOCK_METHOD_CLOCK_GETTIME # define PSNIP_CLOCK_CLOCK_GETTIME_MONOTONIC CLOCK_MONOTONIC # endif # endif #endif #if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200112L) # if !defined(PSNIP_CLOCK_WALL_METHOD) # define PSNIP_CLOCK_WALL_METHOD PSNIP_CLOCK_METHOD_GETTIMEOFDAY # endif #endif #if !defined(PSNIP_CLOCK_WALL_METHOD) # define PSNIP_CLOCK_WALL_METHOD PSNIP_CLOCK_METHOD_TIME #endif #if !defined(PSNIP_CLOCK_CPU_METHOD) # define PSNIP_CLOCK_CPU_METHOD PSNIP_CLOCK_METHOD_CLOCK #endif /* Primarily here for testing. */ #if !defined(PSNIP_CLOCK_MONOTONIC_METHOD) && defined(PSNIP_CLOCK_REQUIRE_MONOTONIC) # error No monotonic clock found. #endif /* Implementations */ #if \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME)) || \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_CLOCK)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_CLOCK)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_CLOCK)) || \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_TIME)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_TIME)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_TIME)) # include #endif #if \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_GETTIMEOFDAY)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_GETTIMEOFDAY)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_GETTIMEOFDAY)) # include #endif #if \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_GETPROCESSTIMES)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_GETPROCESSTIMES)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_GETPROCESSTIMES)) || \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_GETTICKCOUNT64)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_GETTICKCOUNT64)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_GETTICKCOUNT64)) # include #endif #if \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_GETRUSAGE)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_GETRUSAGE)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_GETRUSAGE)) # include # include #endif #if \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_MACH_ABSOLUTE_TIME)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_MACH_ABSOLUTE_TIME)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_MACH_ABSOLUTE_TIME)) # include # include # include #endif /*** Implementations ***/ #define PSNIP_CLOCK_NSEC_PER_SEC ((psnip_uint32_t) (1000000000ULL)) #if \ (defined(PSNIP_CLOCK_CPU_METHOD) && (PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME)) || \ (defined(PSNIP_CLOCK_WALL_METHOD) && (PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME)) || \ (defined(PSNIP_CLOCK_MONOTONIC_METHOD) && (PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME)) PSNIP_CLOCK__FUNCTION psnip_uint32_t psnip_clock__clock_getres (clockid_t clk_id) { struct timespec res; int r; r = clock_getres(clk_id, &res); if (r != 0) return 0; return (psnip_uint32_t) (PSNIP_CLOCK_NSEC_PER_SEC / res.tv_nsec); } PSNIP_CLOCK__FUNCTION int psnip_clock__clock_gettime (clockid_t clk_id, struct PsnipClockTimespec* res) { struct timespec ts; if (clock_gettime(clk_id, &ts) != 0) return -10; res->seconds = (psnip_uint64_t) (ts.tv_sec); res->nanoseconds = (psnip_uint64_t) (ts.tv_nsec); return 0; } #endif PSNIP_CLOCK__FUNCTION psnip_uint32_t psnip_clock_wall_get_precision (void) { #if !defined(PSNIP_CLOCK_WALL_METHOD) return 0; #elif defined(PSNIP_CLOCK_WALL_METHOD) && PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME return psnip_clock__clock_getres(PSNIP_CLOCK_CLOCK_GETTIME_WALL); #elif defined(PSNIP_CLOCK_WALL_METHOD) && PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_GETTIMEOFDAY return 1000000; #elif defined(PSNIP_CLOCK_WALL_METHOD) && PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_TIME return 1; #else return 0; #endif } PSNIP_CLOCK__FUNCTION int psnip_clock_wall_get_time (struct PsnipClockTimespec* res) { (void) res; #if !defined(PSNIP_CLOCK_WALL_METHOD) return -2; #elif defined(PSNIP_CLOCK_WALL_METHOD) && PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME return psnip_clock__clock_gettime(PSNIP_CLOCK_CLOCK_GETTIME_WALL, res); #elif defined(PSNIP_CLOCK_WALL_METHOD) && PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_TIME res->seconds = time(NULL); res->nanoseconds = 0; #elif defined(PSNIP_CLOCK_WALL_METHOD) && PSNIP_CLOCK_WALL_METHOD == PSNIP_CLOCK_METHOD_GETTIMEOFDAY struct timeval tv; if (gettimeofday(&tv, NULL) != 0) return -6; res->seconds = tv.tv_sec; res->nanoseconds = tv.tv_usec * 1000; #else return -2; #endif return 0; } PSNIP_CLOCK__FUNCTION psnip_uint32_t psnip_clock_cpu_get_precision (void) { #if !defined(PSNIP_CLOCK_CPU_METHOD) return 0; #elif defined(PSNIP_CLOCK_CPU_METHOD) && PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME return psnip_clock__clock_getres(PSNIP_CLOCK_CLOCK_GETTIME_CPU); #elif defined(PSNIP_CLOCK_CPU_METHOD) && PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_CLOCK return CLOCKS_PER_SEC; #elif defined(PSNIP_CLOCK_CPU_METHOD) && PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_GETPROCESSTIMES return PSNIP_CLOCK_NSEC_PER_SEC / 100; #else return 0; #endif } PSNIP_CLOCK__FUNCTION int psnip_clock_cpu_get_time (struct PsnipClockTimespec* res) { #if !defined(PSNIP_CLOCK_CPU_METHOD) (void) res; return -2; #elif defined(PSNIP_CLOCK_CPU_METHOD) && PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME return psnip_clock__clock_gettime(PSNIP_CLOCK_CLOCK_GETTIME_CPU, res); #elif defined(PSNIP_CLOCK_CPU_METHOD) && PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_CLOCK clock_t t = clock(); if (t == ((clock_t) -1)) return -5; res->seconds = t / CLOCKS_PER_SEC; res->nanoseconds = (t % CLOCKS_PER_SEC) * (PSNIP_CLOCK_NSEC_PER_SEC / CLOCKS_PER_SEC); #elif defined(PSNIP_CLOCK_CPU_METHOD) && PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_GETPROCESSTIMES FILETIME CreationTime, ExitTime, KernelTime, UserTime; LARGE_INTEGER date, adjust; if (!GetProcessTimes(GetCurrentProcess(), &CreationTime, &ExitTime, &KernelTime, &UserTime)) return -7; /* http://www.frenk.com/2009/12/convert-filetime-to-unix-timestamp/ */ date.HighPart = UserTime.dwHighDateTime; date.LowPart = UserTime.dwLowDateTime; adjust.QuadPart = 11644473600000 * 10000; date.QuadPart -= adjust.QuadPart; res->seconds = date.QuadPart / 10000000; res->nanoseconds = (date.QuadPart % 10000000) * (PSNIP_CLOCK_NSEC_PER_SEC / 100); #elif PSNIP_CLOCK_CPU_METHOD == PSNIP_CLOCK_METHOD_GETRUSAGE struct rusage usage; if (getrusage(RUSAGE_SELF, &usage) != 0) return -8; res->seconds = usage.ru_utime.tv_sec; res->nanoseconds = tv.tv_usec * 1000; #else (void) res; return -2; #endif return 0; } PSNIP_CLOCK__FUNCTION psnip_uint32_t psnip_clock_monotonic_get_precision (void) { #if !defined(PSNIP_CLOCK_MONOTONIC_METHOD) return 0; #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME return psnip_clock__clock_getres(PSNIP_CLOCK_CLOCK_GETTIME_MONOTONIC); #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_MACH_ABSOLUTE_TIME static mach_timebase_info_data_t tbi = { 0, }; if (tbi.denom == 0) mach_timebase_info(&tbi); return (psnip_uint32_t) (tbi.numer / tbi.denom); #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_GETTICKCOUNT64 return 1000; #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_QUERYPERFORMANCECOUNTER LARGE_INTEGER Frequency; QueryPerformanceFrequency(&Frequency); return (psnip_uint32_t) ((Frequency.QuadPart > PSNIP_CLOCK_NSEC_PER_SEC) ? PSNIP_CLOCK_NSEC_PER_SEC : Frequency.QuadPart); #else return 0; #endif } PSNIP_CLOCK__FUNCTION int psnip_clock_monotonic_get_time (struct PsnipClockTimespec* res) { #if !defined(PSNIP_CLOCK_MONOTONIC_METHOD) (void) res; return -2; #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_CLOCK_GETTIME return psnip_clock__clock_gettime(PSNIP_CLOCK_CLOCK_GETTIME_MONOTONIC, res); #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_MACH_ABSOLUTE_TIME psnip_uint64_t nsec = mach_absolute_time(); static mach_timebase_info_data_t tbi = { 0, }; if (tbi.denom == 0) mach_timebase_info(&tbi); nsec *= ((psnip_uint64_t) tbi.numer) / ((psnip_uint64_t) tbi.denom); res->seconds = nsec / PSNIP_CLOCK_NSEC_PER_SEC; res->nanoseconds = nsec % PSNIP_CLOCK_NSEC_PER_SEC; #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_QUERYPERFORMANCECOUNTER LARGE_INTEGER t, f; if (QueryPerformanceCounter(&t) == 0) return -12; QueryPerformanceFrequency(&f); res->seconds = t.QuadPart / f.QuadPart; res->nanoseconds = t.QuadPart % f.QuadPart; if (f.QuadPart > PSNIP_CLOCK_NSEC_PER_SEC) res->nanoseconds /= f.QuadPart / PSNIP_CLOCK_NSEC_PER_SEC; else res->nanoseconds *= PSNIP_CLOCK_NSEC_PER_SEC / f.QuadPart; #elif defined(PSNIP_CLOCK_MONOTONIC_METHOD) && PSNIP_CLOCK_MONOTONIC_METHOD == PSNIP_CLOCK_METHOD_GETTICKCOUNT64 const ULONGLONG msec = GetTickCount64(); res->seconds = msec / 1000; res->nanoseconds = sec % 1000; #else return -2; #endif return 0; } /* Returns the number of ticks per second for the specified clock. * For example, a clock with millisecond precision would return 1000, * and a clock with 1 second (such as the time() function) would * return 1. * * If the requested clock isn't available, it will return 0. * Hopefully this will be rare, but if it happens to you please let us * know so we can work on finding a way to support your system. * * Note that different clocks on the same system often have a * different precisions. */ PSNIP_CLOCK__FUNCTION psnip_uint32_t psnip_clock_get_precision (enum PsnipClockType clock_type) { switch (clock_type) { case PSNIP_CLOCK_TYPE_MONOTONIC: return psnip_clock_monotonic_get_precision (); case PSNIP_CLOCK_TYPE_CPU: return psnip_clock_cpu_get_precision (); case PSNIP_CLOCK_TYPE_WALL: return psnip_clock_wall_get_precision (); } PSNIP_CLOCK_UNREACHABLE(); return 0; } /* Set the provided timespec to the requested time. Returns 0 on * success, or a negative value on failure. */ PSNIP_CLOCK__FUNCTION int psnip_clock_get_time (enum PsnipClockType clock_type, struct PsnipClockTimespec* res) { assert(res != NULL); switch (clock_type) { case PSNIP_CLOCK_TYPE_MONOTONIC: return psnip_clock_monotonic_get_time (res); case PSNIP_CLOCK_TYPE_CPU: return psnip_clock_cpu_get_time (res); case PSNIP_CLOCK_TYPE_WALL: return psnip_clock_wall_get_time (res); } return -1; } #endif /* !defined(PSNIP_CLOCK_H) */ static psnip_uint64_t munit_clock_get_elapsed(struct PsnipClockTimespec* start, struct PsnipClockTimespec* end) { psnip_uint64_t r = (end->seconds - start->seconds) * PSNIP_CLOCK_NSEC_PER_SEC; if (end->nanoseconds < start->nanoseconds) { r -= (start->nanoseconds - end->nanoseconds); } else { r += (end->nanoseconds - start->nanoseconds); } return r; } #else # include #endif /* defined(MUNIT_ENABLE_TIMING) */ /*** PRNG stuff ***/ /* This is (unless I screwed up, which is entirely possible) the * version of PCG with 32-bit state. It was chosen because it has a * small enough state that we should reliably be able to use CAS * instead of requiring a lock for thread-safety. * * If I did screw up, I probably will not bother changing it unless * there is a significant bias. It's really not important this be * particularly strong, as long as it is fairly random it's much more * important that it be reproducible, so bug reports have a better * chance of being reproducible. */ #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_ATOMICS__) && !defined(__EMSCRIPTEN__) && (!defined(__GNUC_MINOR__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ > 8)) # define HAVE_STDATOMIC #elif defined(__clang__) # if __has_extension(c_atomic) # define HAVE_CLANG_ATOMICS # endif #endif /* Workaround for http://llvm.org/bugs/show_bug.cgi?id=26911 */ #if defined(__clang__) && defined(_WIN32) # undef HAVE_STDATOMIC # if defined(__c2__) # undef HAVE_CLANG_ATOMICS # endif #endif #if defined(_OPENMP) # define ATOMIC_UINT32_T uint32_t # define ATOMIC_UINT32_INIT(x) (x) #elif defined(HAVE_STDATOMIC) # include # define ATOMIC_UINT32_T _Atomic uint32_t # define ATOMIC_UINT32_INIT(x) ATOMIC_VAR_INIT(x) #elif defined(HAVE_CLANG_ATOMICS) # define ATOMIC_UINT32_T _Atomic uint32_t # define ATOMIC_UINT32_INIT(x) (x) #elif defined(_WIN32) # define ATOMIC_UINT32_T volatile LONG # define ATOMIC_UINT32_INIT(x) (x) #else # define ATOMIC_UINT32_T volatile uint32_t # define ATOMIC_UINT32_INIT(x) (x) #endif static ATOMIC_UINT32_T munit_rand_state = ATOMIC_UINT32_INIT(42); #if defined(_OPENMP) static inline void munit_atomic_store(ATOMIC_UINT32_T* dest, ATOMIC_UINT32_T value) { #pragma omp critical (munit_atomics) *dest = value; } static inline uint32_t munit_atomic_load(ATOMIC_UINT32_T* src) { int ret; #pragma omp critical (munit_atomics) ret = *src; return ret; } static inline uint32_t munit_atomic_cas(ATOMIC_UINT32_T* dest, ATOMIC_UINT32_T* expected, ATOMIC_UINT32_T desired) { munit_bool ret; #pragma omp critical (munit_atomics) { if (*dest == *expected) { *dest = desired; ret = 1; } else { ret = 0; } } return ret; } #elif defined(HAVE_STDATOMIC) # define munit_atomic_store(dest, value) atomic_store(dest, value) # define munit_atomic_load(src) atomic_load(src) # define munit_atomic_cas(dest, expected, value) atomic_compare_exchange_weak(dest, expected, value) #elif defined(HAVE_CLANG_ATOMICS) # define munit_atomic_store(dest, value) __c11_atomic_store(dest, value, __ATOMIC_SEQ_CST) # define munit_atomic_load(src) __c11_atomic_load(src, __ATOMIC_SEQ_CST) # define munit_atomic_cas(dest, expected, value) __c11_atomic_compare_exchange_weak(dest, expected, value, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) #elif defined(__GNUC__) && (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) # define munit_atomic_store(dest, value) __atomic_store_n(dest, value, __ATOMIC_SEQ_CST) # define munit_atomic_load(src) __atomic_load_n(src, __ATOMIC_SEQ_CST) # define munit_atomic_cas(dest, expected, value) __atomic_compare_exchange_n(dest, expected, value, 1, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) #elif defined(__GNUC__) && (__GNUC__ >= 4) # define munit_atomic_store(dest,value) do { *(dest) = (value); } while (0) # define munit_atomic_load(src) (*(src)) # define munit_atomic_cas(dest, expected, value) __sync_bool_compare_and_swap(dest, *expected, value) #elif defined(_WIN32) /* Untested */ # define munit_atomic_store(dest,value) do { *(dest) = (value); } while (0) # define munit_atomic_load(src) (*(src)) # define munit_atomic_cas(dest, expected, value) InterlockedCompareExchange((dest), (value), *(expected)) #else # warning No atomic implementation, PRNG will not be thread-safe # define munit_atomic_store(dest, value) do { *(dest) = (value); } while (0) # define munit_atomic_load(src) (*(src)) static inline munit_bool munit_atomic_cas(ATOMIC_UINT32_T* dest, ATOMIC_UINT32_T* expected, ATOMIC_UINT32_T desired) { if (*dest == *expected) { *dest = desired; return 1; } else { return 0; } } #endif #define MUNIT_PRNG_MULTIPLIER (747796405U) #define MUNIT_PRNG_INCREMENT (1729U) static munit_uint32_t munit_rand_next_state(munit_uint32_t state) { return state * MUNIT_PRNG_MULTIPLIER + MUNIT_PRNG_INCREMENT; } static munit_uint32_t munit_rand_from_state(munit_uint32_t state) { munit_uint32_t res = ((state >> ((state >> 28) + 4)) ^ state) * (277803737U); res ^= res >> 22; return res; } void munit_rand_seed(munit_uint32_t seed) { munit_uint32_t state = munit_rand_next_state(seed + MUNIT_PRNG_INCREMENT); munit_atomic_store(&munit_rand_state, state); } static munit_uint32_t munit_rand_generate_seed(void) { munit_uint32_t seed, state; #if defined(MUNIT_ENABLE_TIMING) struct PsnipClockTimespec wc = { 0, }; psnip_clock_get_time(PSNIP_CLOCK_TYPE_WALL, &wc); seed = (munit_uint32_t) wc.nanoseconds; #else seed = (munit_uint32_t) time(NULL); #endif state = munit_rand_next_state(seed + MUNIT_PRNG_INCREMENT); return munit_rand_from_state(state); } static munit_uint32_t munit_rand_state_uint32(munit_uint32_t* state) { const munit_uint32_t old = *state; *state = munit_rand_next_state(old); return munit_rand_from_state(old); } munit_uint32_t munit_rand_uint32(void) { munit_uint32_t old, state; do { old = munit_atomic_load(&munit_rand_state); state = munit_rand_next_state(old); } while (!munit_atomic_cas(&munit_rand_state, &old, state)); return munit_rand_from_state(old); } static void munit_rand_state_memory(munit_uint32_t* state, size_t size, munit_uint8_t data[MUNIT_ARRAY_PARAM(size)]) { size_t members_remaining = size / sizeof(munit_uint32_t); size_t bytes_remaining = size % sizeof(munit_uint32_t); munit_uint8_t* b = data; munit_uint32_t rv; while (members_remaining-- > 0) { rv = munit_rand_state_uint32(state); memcpy(b, &rv, sizeof(munit_uint32_t)); b += sizeof(munit_uint32_t); } if (bytes_remaining != 0) { rv = munit_rand_state_uint32(state); memcpy(b, &rv, bytes_remaining); } } void munit_rand_memory(size_t size, munit_uint8_t data[MUNIT_ARRAY_PARAM(size)]) { munit_uint32_t old, state; do { state = old = munit_atomic_load(&munit_rand_state); munit_rand_state_memory(&state, size, data); } while (!munit_atomic_cas(&munit_rand_state, &old, state)); } static munit_uint32_t munit_rand_state_at_most(munit_uint32_t* state, munit_uint32_t salt, munit_uint32_t max) { /* We want (UINT32_MAX + 1) % max, which in unsigned arithmetic is the same * as (UINT32_MAX + 1 - max) % max = -max % max. We compute -max using not * to avoid compiler warnings. */ const munit_uint32_t min = (~max + 1U) % max; munit_uint32_t x; if (max == (~((munit_uint32_t) 0U))) return munit_rand_state_uint32(state) ^ salt; max++; do { x = munit_rand_state_uint32(state) ^ salt; } while (x < min); return x % max; } static munit_uint32_t munit_rand_at_most(munit_uint32_t salt, munit_uint32_t max) { munit_uint32_t old, state; munit_uint32_t retval; do { state = old = munit_atomic_load(&munit_rand_state); retval = munit_rand_state_at_most(&state, salt, max); } while (!munit_atomic_cas(&munit_rand_state, &old, state)); return retval; } int munit_rand_int_range(int min, int max) { munit_uint64_t range = (munit_uint64_t) max - (munit_uint64_t) min; if (min > max) return munit_rand_int_range(max, min); if (range > (~((munit_uint32_t) 0U))) range = (~((munit_uint32_t) 0U)); return min + munit_rand_at_most(0, (munit_uint32_t) range); } double munit_rand_double(void) { munit_uint32_t old, state; double retval = 0.0; do { state = old = munit_atomic_load(&munit_rand_state); /* See http://mumble.net/~campbell/tmp/random_real.c for how to do * this right. Patches welcome if you feel that this is too * biased. */ retval = munit_rand_state_uint32(&state) / ((~((munit_uint32_t) 0U)) + 1.0); } while (!munit_atomic_cas(&munit_rand_state, &old, state)); return retval; } /*** Test suite handling ***/ typedef struct { unsigned int successful; unsigned int skipped; unsigned int failed; unsigned int errored; #if defined(MUNIT_ENABLE_TIMING) munit_uint64_t cpu_clock; munit_uint64_t wall_clock; #endif } MunitReport; typedef struct { const char* prefix; const MunitSuite* suite; const char** tests; munit_uint32_t seed; unsigned int iterations; MunitParameter* parameters; munit_bool single_parameter_mode; void* user_data; MunitReport report; munit_bool colorize; munit_bool fork; munit_bool show_stderr; munit_bool fatal_failures; } MunitTestRunner; const char* munit_parameters_get(const MunitParameter params[], const char* key) { const MunitParameter* param; for (param = params ; param != NULL && param->name != NULL ; param++) if (strcmp(param->name, key) == 0) return param->value; return NULL; } #if defined(MUNIT_ENABLE_TIMING) static void munit_print_time(FILE* fp, munit_uint64_t nanoseconds) { fprintf(fp, "%" MUNIT_TEST_TIME_FORMAT, ((double) nanoseconds) / ((double) PSNIP_CLOCK_NSEC_PER_SEC)); } #endif /* Add a paramter to an array of parameters. */ static MunitResult munit_parameters_add(size_t* params_size, MunitParameter* params[MUNIT_ARRAY_PARAM(*params_size)], char* name, char* value) { *params = realloc(*params, sizeof(MunitParameter) * (*params_size + 2)); if (*params == NULL) return MUNIT_ERROR; (*params)[*params_size].name = name; (*params)[*params_size].value = value; (*params_size)++; (*params)[*params_size].name = NULL; (*params)[*params_size].value = NULL; return MUNIT_OK; } /* Concatenate two strings, but just return one of the components * unaltered if the other is NULL or "". */ static char* munit_maybe_concat(size_t* len, char* prefix, char* suffix) { char* res; size_t res_l; const size_t prefix_l = prefix != NULL ? strlen(prefix) : 0; const size_t suffix_l = suffix != NULL ? strlen(suffix) : 0; if (prefix_l == 0 && suffix_l == 0) { res = NULL; res_l = 0; } else if (prefix_l == 0 && suffix_l != 0) { res = suffix; res_l = suffix_l; } else if (prefix_l != 0 && suffix_l == 0) { res = prefix; res_l = prefix_l; } else { res_l = prefix_l + suffix_l; res = malloc(res_l + 1); memcpy(res, prefix, prefix_l); memcpy(res + prefix_l, suffix, suffix_l); res[res_l] = 0; } if (len != NULL) *len = res_l; return res; } /* Possbily free a string returned by munit_maybe_concat. */ static void munit_maybe_free_concat(char* s, const char* prefix, const char* suffix) { if (prefix != s && suffix != s) free(s); } /* Cheap string hash function, just used to salt the PRNG. */ static munit_uint32_t munit_str_hash(const char* name) { const char *p; munit_uint32_t h = 5381U; for (p = name; *p != '\0'; p++) h = (h << 5) + h + *p; return h; } static void munit_splice(int from, int to) { munit_uint8_t buf[1024]; #if !defined(_WIN32) ssize_t len; ssize_t bytes_written; ssize_t write_res; #else int len; int bytes_written; int write_res; #endif do { len = read(from, buf, sizeof(buf)); if (len > 0) { bytes_written = 0; do { write_res = write(to, buf + bytes_written, len - bytes_written); if (write_res < 0) break; bytes_written += write_res; } while (bytes_written < len); } else break; } while (1); } /* This is the part that should be handled in the child process */ static MunitResult munit_test_runner_exec(MunitTestRunner* runner, const MunitTest* test, const MunitParameter params[], MunitReport* report) { unsigned int iterations = runner->iterations; MunitResult result = MUNIT_FAIL; #if defined(MUNIT_ENABLE_TIMING) struct PsnipClockTimespec wall_clock_begin = { 0, }, wall_clock_end = { 0, }; struct PsnipClockTimespec cpu_clock_begin = { 0, }, cpu_clock_end = { 0, }; #endif unsigned int i = 0; if ((test->options & MUNIT_TEST_OPTION_SINGLE_ITERATION) == MUNIT_TEST_OPTION_SINGLE_ITERATION) iterations = 1; else if (iterations == 0) iterations = runner->suite->iterations; munit_rand_seed(runner->seed); do { void* data = (test->setup == NULL) ? runner->user_data : test->setup(params, runner->user_data); #if defined(MUNIT_ENABLE_TIMING) psnip_clock_get_time(PSNIP_CLOCK_TYPE_WALL, &wall_clock_begin); psnip_clock_get_time(PSNIP_CLOCK_TYPE_CPU, &cpu_clock_begin); #endif result = test->test(params, data); #if defined(MUNIT_ENABLE_TIMING) psnip_clock_get_time(PSNIP_CLOCK_TYPE_WALL, &wall_clock_end); psnip_clock_get_time(PSNIP_CLOCK_TYPE_CPU, &cpu_clock_end); #endif if (test->tear_down != NULL) test->tear_down(data); if (MUNIT_LIKELY(result == MUNIT_OK)) { report->successful++; #if defined(MUNIT_ENABLE_TIMING) report->wall_clock += munit_clock_get_elapsed(&wall_clock_begin, &wall_clock_end); report->cpu_clock += munit_clock_get_elapsed(&cpu_clock_begin, &cpu_clock_end); #endif } else { switch ((int) result) { case MUNIT_SKIP: report->skipped++; break; case MUNIT_FAIL: report->failed++; break; case MUNIT_ERROR: report->errored++; break; default: break; } break; } } while (++i < iterations); return result; } #if defined(MUNIT_EMOTICON) # define MUNIT_RESULT_STRING_OK ":)" # define MUNIT_RESULT_STRING_SKIP ":|" # define MUNIT_RESULT_STRING_FAIL ":(" # define MUNIT_RESULT_STRING_ERROR ":o" # define MUNIT_RESULT_STRING_TODO ":/" #else # define MUNIT_RESULT_STRING_OK "OK " # define MUNIT_RESULT_STRING_SKIP "SKIP " # define MUNIT_RESULT_STRING_FAIL "FAIL " # define MUNIT_RESULT_STRING_ERROR "ERROR" # define MUNIT_RESULT_STRING_TODO "TODO " #endif static void munit_test_runner_print_color(const MunitTestRunner* runner, const char* string, char color) { if (runner->colorize) fprintf(MUNIT_OUTPUT_FILE, "\x1b[3%cm%s\x1b[39m", color, string); else fputs(string, MUNIT_OUTPUT_FILE); } #if !defined(MUNIT_NO_BUFFER) static int munit_replace_stderr(FILE* stderr_buf) { if (stderr_buf != NULL) { const int orig_stderr = dup(STDERR_FILENO); int errfd = fileno(stderr_buf); if (MUNIT_UNLIKELY(errfd == -1)) { exit(EXIT_FAILURE); } dup2(errfd, STDERR_FILENO); return orig_stderr; } return -1; } static void munit_restore_stderr(int orig_stderr) { if (orig_stderr != -1) { dup2(orig_stderr, STDERR_FILENO); close(orig_stderr); } } #endif /* !defined(MUNIT_NO_BUFFER) */ /* Run a test with the specified parameters. */ static void munit_test_runner_run_test_with_params(MunitTestRunner* runner, const MunitTest* test, const MunitParameter params[]) { MunitResult result = MUNIT_OK; MunitReport report = { 0, 0, 0, 0, #if defined(MUNIT_ENABLE_TIMING) 0, 0 #endif }; unsigned int output_l; munit_bool first; const MunitParameter* param; FILE* stderr_buf; #if !defined(MUNIT_NO_FORK) int pipefd[2]; pid_t fork_pid; int orig_stderr; ssize_t bytes_written = 0; ssize_t write_res; ssize_t bytes_read = 0; ssize_t read_res; int status = 0; pid_t changed_pid; #endif if (params != NULL) { output_l = 2; fputs(" ", MUNIT_OUTPUT_FILE); first = 1; for (param = params ; param != NULL && param->name != NULL ; param++) { if (!first) { fputs(", ", MUNIT_OUTPUT_FILE); output_l += 2; } else { first = 0; } output_l += fprintf(MUNIT_OUTPUT_FILE, "%s=%s", param->name, param->value); } while (output_l++ < MUNIT_TEST_NAME_LEN) { fputc(' ', MUNIT_OUTPUT_FILE); } } fflush(MUNIT_OUTPUT_FILE); stderr_buf = NULL; #if !defined(_WIN32) || defined(__MINGW32__) stderr_buf = tmpfile(); #else tmpfile_s(&stderr_buf); #endif if (stderr_buf == NULL) { munit_log_errno(MUNIT_LOG_ERROR, stderr, "unable to create buffer for stderr"); result = MUNIT_ERROR; goto print_result; } #if !defined(MUNIT_NO_FORK) if (runner->fork) { pipefd[0] = -1; pipefd[1] = -1; if (pipe(pipefd) != 0) { munit_log_errno(MUNIT_LOG_ERROR, stderr, "unable to create pipe"); result = MUNIT_ERROR; goto print_result; } fork_pid = fork(); if (fork_pid == 0) { close(pipefd[0]); orig_stderr = munit_replace_stderr(stderr_buf); munit_test_runner_exec(runner, test, params, &report); /* Note that we don't restore stderr. This is so we can buffer * things written to stderr later on (such as by * asan/tsan/ubsan, valgrind, etc.) */ close(orig_stderr); do { write_res = write(pipefd[1], ((munit_uint8_t*) (&report)) + bytes_written, sizeof(report) - bytes_written); if (write_res < 0) { if (stderr_buf != NULL) { munit_log_errno(MUNIT_LOG_ERROR, stderr, "unable to write to pipe"); } exit(EXIT_FAILURE); } bytes_written += write_res; } while ((size_t) bytes_written < sizeof(report)); if (stderr_buf != NULL) fclose(stderr_buf); close(pipefd[1]); exit(EXIT_SUCCESS); } else if (fork_pid == -1) { close(pipefd[0]); close(pipefd[1]); if (stderr_buf != NULL) { munit_log_errno(MUNIT_LOG_ERROR, stderr, "unable to fork"); } report.errored++; result = MUNIT_ERROR; } else { close(pipefd[1]); do { read_res = read(pipefd[0], ((munit_uint8_t*) (&report)) + bytes_read, sizeof(report) - bytes_read); if (read_res < 1) break; bytes_read += read_res; } while (bytes_read < (ssize_t) sizeof(report)); changed_pid = waitpid(fork_pid, &status, 0); if (MUNIT_LIKELY(changed_pid == fork_pid) && MUNIT_LIKELY(WIFEXITED(status))) { if (bytes_read != sizeof(report)) { munit_logf_internal(MUNIT_LOG_ERROR, stderr_buf, "child exited unexpectedly with status %d", WEXITSTATUS(status)); report.errored++; } else if (WEXITSTATUS(status) != EXIT_SUCCESS) { munit_logf_internal(MUNIT_LOG_ERROR, stderr_buf, "child exited with status %d", WEXITSTATUS(status)); report.errored++; } } else { if (WIFSIGNALED(status)) { #if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 700) munit_logf_internal(MUNIT_LOG_ERROR, stderr_buf, "child killed by signal %d (%s)", WTERMSIG(status), strsignal(WTERMSIG(status))); #else munit_logf_internal(MUNIT_LOG_ERROR, stderr_buf, "child killed by signal %d", WTERMSIG(status)); #endif } else if (WIFSTOPPED(status)) { munit_logf_internal(MUNIT_LOG_ERROR, stderr_buf, "child stopped by signal %d", WSTOPSIG(status)); } report.errored++; } close(pipefd[0]); waitpid(fork_pid, NULL, 0); } } else #endif { #if !defined(MUNIT_NO_BUFFER) const volatile int orig_stderr = munit_replace_stderr(stderr_buf); #endif #if defined(MUNIT_THREAD_LOCAL) if (MUNIT_UNLIKELY(setjmp(munit_error_jmp_buf) != 0)) { result = MUNIT_FAIL; report.failed++; } else { munit_error_jmp_buf_valid = 1; result = munit_test_runner_exec(runner, test, params, &report); } #else result = munit_test_runner_exec(runner, test, params, &report); #endif #if !defined(MUNIT_NO_BUFFER) munit_restore_stderr(orig_stderr); #endif /* Here just so that the label is used on Windows and we don't get * a warning */ goto print_result; } print_result: fputs("[ ", MUNIT_OUTPUT_FILE); if ((test->options & MUNIT_TEST_OPTION_TODO) == MUNIT_TEST_OPTION_TODO) { if (report.failed != 0 || report.errored != 0 || report.skipped != 0) { munit_test_runner_print_color(runner, MUNIT_RESULT_STRING_TODO, '3'); result = MUNIT_OK; } else { munit_test_runner_print_color(runner, MUNIT_RESULT_STRING_ERROR, '1'); if (MUNIT_LIKELY(stderr_buf != NULL)) munit_log_internal(MUNIT_LOG_ERROR, stderr_buf, "Test marked TODO, but was successful."); runner->report.failed++; result = MUNIT_ERROR; } } else if (report.failed > 0) { munit_test_runner_print_color(runner, MUNIT_RESULT_STRING_FAIL, '1'); runner->report.failed++; result = MUNIT_FAIL; } else if (report.errored > 0) { munit_test_runner_print_color(runner, MUNIT_RESULT_STRING_ERROR, '1'); runner->report.errored++; result = MUNIT_ERROR; } else if (report.skipped > 0) { munit_test_runner_print_color(runner, MUNIT_RESULT_STRING_SKIP, '3'); runner->report.skipped++; result = MUNIT_SKIP; } else if (report.successful > 1) { munit_test_runner_print_color(runner, MUNIT_RESULT_STRING_OK, '2'); #if defined(MUNIT_ENABLE_TIMING) fputs(" ] [ ", MUNIT_OUTPUT_FILE); munit_print_time(MUNIT_OUTPUT_FILE, report.wall_clock / report.successful); fputs(" / ", MUNIT_OUTPUT_FILE); munit_print_time(MUNIT_OUTPUT_FILE, report.cpu_clock / report.successful); fprintf(MUNIT_OUTPUT_FILE, " CPU ]\n %-" MUNIT_XSTRINGIFY(MUNIT_TEST_NAME_LEN) "s Total: [ ", ""); munit_print_time(MUNIT_OUTPUT_FILE, report.wall_clock); fputs(" / ", MUNIT_OUTPUT_FILE); munit_print_time(MUNIT_OUTPUT_FILE, report.cpu_clock); fputs(" CPU", MUNIT_OUTPUT_FILE); #endif runner->report.successful++; result = MUNIT_OK; } else if (report.successful > 0) { munit_test_runner_print_color(runner, MUNIT_RESULT_STRING_OK, '2'); #if defined(MUNIT_ENABLE_TIMING) fputs(" ] [ ", MUNIT_OUTPUT_FILE); munit_print_time(MUNIT_OUTPUT_FILE, report.wall_clock); fputs(" / ", MUNIT_OUTPUT_FILE); munit_print_time(MUNIT_OUTPUT_FILE, report.cpu_clock); fputs(" CPU", MUNIT_OUTPUT_FILE); #endif runner->report.successful++; result = MUNIT_OK; } fputs(" ]\n", MUNIT_OUTPUT_FILE); if (stderr_buf != NULL) { if (result == MUNIT_FAIL || result == MUNIT_ERROR || runner->show_stderr) { fflush(MUNIT_OUTPUT_FILE); rewind(stderr_buf); munit_splice(fileno(stderr_buf), STDERR_FILENO); fflush(stderr); } fclose(stderr_buf); } } static void munit_test_runner_run_test_wild(MunitTestRunner* runner, const MunitTest* test, const char* test_name, MunitParameter* params, MunitParameter* p) { const MunitParameterEnum* pe; char** values; MunitParameter* next; for (pe = test->parameters ; pe != NULL && pe->name != NULL ; pe++) { if (p->name == pe->name) break; } if (pe == NULL) return; for (values = pe->values ; *values != NULL ; values++) { next = p + 1; p->value = *values; if (next->name == NULL) { munit_test_runner_run_test_with_params(runner, test, params); } else { munit_test_runner_run_test_wild(runner, test, test_name, params, next); } if (runner->fatal_failures && (runner->report.failed != 0 || runner->report.errored != 0)) break; } } /* Run a single test, with every combination of parameters * requested. */ static void munit_test_runner_run_test(MunitTestRunner* runner, const MunitTest* test, const char* prefix) { char* test_name = munit_maybe_concat(NULL, (char*) prefix, (char*) test->name); /* The array of parameters to pass to * munit_test_runner_run_test_with_params */ MunitParameter* params = NULL; size_t params_l = 0; /* Wildcard parameters are parameters which have possible values * specified in the test, but no specific value was passed to the * CLI. That means we want to run the test once for every * possible combination of parameter values or, if --single was * passed to the CLI, a single time with a random set of * parameters. */ MunitParameter* wild_params = NULL; size_t wild_params_l = 0; const MunitParameterEnum* pe; const MunitParameter* cli_p; munit_bool filled; unsigned int possible; char** vals; size_t first_wild; const MunitParameter* wp; int pidx; munit_rand_seed(runner->seed); fprintf(MUNIT_OUTPUT_FILE, "%-" MUNIT_XSTRINGIFY(MUNIT_TEST_NAME_LEN) "s", test_name); if (test->parameters == NULL) { /* No parameters. Simple, nice. */ munit_test_runner_run_test_with_params(runner, test, NULL); } else { fputc('\n', MUNIT_OUTPUT_FILE); for (pe = test->parameters ; pe != NULL && pe->name != NULL ; pe++) { /* Did we received a value for this parameter from the CLI? */ filled = 0; for (cli_p = runner->parameters ; cli_p != NULL && cli_p->name != NULL ; cli_p++) { if (strcmp(cli_p->name, pe->name) == 0) { if (MUNIT_UNLIKELY(munit_parameters_add(¶ms_l, ¶ms, pe->name, cli_p->value) != MUNIT_OK)) goto cleanup; filled = 1; break; } } if (filled) continue; /* Nothing from CLI, is the enum NULL/empty? We're not a * fuzzer… */ if (pe->values == NULL || pe->values[0] == NULL) continue; /* If --single was passed to the CLI, choose a value from the * list of possibilities randomly. */ if (runner->single_parameter_mode) { possible = 0; for (vals = pe->values ; *vals != NULL ; vals++) possible++; /* We want the tests to be reproducible, even if you're only * running a single test, but we don't want every test with * the same number of parameters to choose the same parameter * number, so use the test name as a primitive salt. */ pidx = munit_rand_at_most(munit_str_hash(test_name), possible - 1); if (MUNIT_UNLIKELY(munit_parameters_add(¶ms_l, ¶ms, pe->name, pe->values[pidx]) != MUNIT_OK)) goto cleanup; } else { /* We want to try every permutation. Put in a placeholder * entry, we'll iterate through them later. */ if (MUNIT_UNLIKELY(munit_parameters_add(&wild_params_l, &wild_params, pe->name, NULL) != MUNIT_OK)) goto cleanup; } } if (wild_params_l != 0) { first_wild = params_l; for (wp = wild_params ; wp != NULL && wp->name != NULL ; wp++) { for (pe = test->parameters ; pe != NULL && pe->name != NULL && pe->values != NULL ; pe++) { if (strcmp(wp->name, pe->name) == 0) { if (MUNIT_UNLIKELY(munit_parameters_add(¶ms_l, ¶ms, pe->name, pe->values[0]) != MUNIT_OK)) goto cleanup; } } } munit_test_runner_run_test_wild(runner, test, test_name, params, params + first_wild); } else { munit_test_runner_run_test_with_params(runner, test, params); } cleanup: free(params); free(wild_params); } munit_maybe_free_concat(test_name, prefix, test->name); } /* Recurse through the suite and run all the tests. If a list of * tests to run was provied on the command line, run only those * tests. */ static void munit_test_runner_run_suite(MunitTestRunner* runner, const MunitSuite* suite, const char* prefix) { size_t pre_l; char* pre = munit_maybe_concat(&pre_l, (char*) prefix, (char*) suite->prefix); const MunitTest* test; const char** test_name; const MunitSuite* child_suite; /* Run the tests. */ for (test = suite->tests ; test != NULL && test->test != NULL ; test++) { if (runner->tests != NULL) { /* Specific tests were requested on the CLI */ for (test_name = runner->tests ; test_name != NULL && *test_name != NULL ; test_name++) { if ((pre_l == 0 || strncmp(pre, *test_name, pre_l) == 0) && strncmp(test->name, *test_name + pre_l, strlen(*test_name + pre_l)) == 0) { munit_test_runner_run_test(runner, test, pre); if (runner->fatal_failures && (runner->report.failed != 0 || runner->report.errored != 0)) goto cleanup; } } } else { /* Run all tests */ munit_test_runner_run_test(runner, test, pre); } } if (runner->fatal_failures && (runner->report.failed != 0 || runner->report.errored != 0)) goto cleanup; /* Run any child suites. */ for (child_suite = suite->suites ; child_suite != NULL && child_suite->prefix != NULL ; child_suite++) { munit_test_runner_run_suite(runner, child_suite, pre); } cleanup: munit_maybe_free_concat(pre, prefix, suite->prefix); } static void munit_test_runner_run(MunitTestRunner* runner) { munit_test_runner_run_suite(runner, runner->suite, NULL); } static void munit_print_help(int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)], void* user_data, const MunitArgument arguments[]) { const MunitArgument* arg; (void) argc; printf("USAGE: %s [OPTIONS...] [TEST...]\n\n", argv[0]); puts(" --seed SEED\n" " Value used to seed the PRNG. Must be a 32-bit integer in decimal\n" " notation with no separators (commas, decimals, spaces, etc.), or\n" " hexidecimal prefixed by \"0x\".\n" " --iterations N\n" " Run each test N times. 0 means the default number.\n" " --param name value\n" " A parameter key/value pair which will be passed to any test with\n" " takes a parameter of that name. If not provided, the test will be\n" " run once for each possible parameter value.\n" " --list Write a list of all available tests.\n" " --list-params\n" " Write a list of all available tests and their possible parameters.\n" " --single Run each parameterized test in a single configuration instead of\n" " every possible combination\n" " --log-visible debug|info|warning|error\n" " --log-fatal debug|info|warning|error\n" " Set the level at which messages of different severities are visible,\n" " or cause the test to terminate.\n" #if !defined(MUNIT_NO_FORK) " --no-fork Do not execute tests in a child process. If this option is supplied\n" " and a test crashes (including by failing an assertion), no further\n" " tests will be performed.\n" #endif " --fatal-failures\n" " Stop executing tests as soon as a failure is found.\n" " --show-stderr\n" " Show data written to stderr by the tests, even if the test succeeds.\n" " --color auto|always|never\n" " Colorize (or don't) the output.\n" /* 12345678901234567890123456789012345678901234567890123456789012345678901234567890 */ " --help Print this help message and exit.\n"); #if defined(MUNIT_NL_LANGINFO) setlocale(LC_ALL, ""); fputs((strcasecmp("UTF-8", nl_langinfo(CODESET)) == 0) ? "µnit" : "munit", stdout); #else puts("munit"); #endif printf(" %d.%d.%d\n" "Full documentation at: https://nemequ.github.io/munit/\n", (MUNIT_CURRENT_VERSION >> 16) & 0xff, (MUNIT_CURRENT_VERSION >> 8) & 0xff, (MUNIT_CURRENT_VERSION >> 0) & 0xff); for (arg = arguments ; arg != NULL && arg->name != NULL ; arg++) arg->write_help(arg, user_data); } static const MunitArgument* munit_arguments_find(const MunitArgument arguments[], const char* name) { const MunitArgument* arg; for (arg = arguments ; arg != NULL && arg->name != NULL ; arg++) if (strcmp(arg->name, name) == 0) return arg; return NULL; } static void munit_suite_list_tests(const MunitSuite* suite, munit_bool show_params, const char* prefix) { size_t pre_l; char* pre = munit_maybe_concat(&pre_l, (char*) prefix, (char*) suite->prefix); const MunitTest* test; const MunitParameterEnum* params; munit_bool first; char** val; const MunitSuite* child_suite; for (test = suite->tests ; test != NULL && test->name != NULL ; test++) { if (pre != NULL) fputs(pre, stdout); puts(test->name); if (show_params) { for (params = test->parameters ; params != NULL && params->name != NULL ; params++) { fprintf(stdout, " - %s: ", params->name); if (params->values == NULL) { puts("Any"); } else { first = 1; for (val = params->values ; *val != NULL ; val++ ) { if(!first) { fputs(", ", stdout); } else { first = 0; } fputs(*val, stdout); } putc('\n', stdout); } } } } for (child_suite = suite->suites ; child_suite != NULL && child_suite->prefix != NULL ; child_suite++) { munit_suite_list_tests(child_suite, show_params, pre); } munit_maybe_free_concat(pre, prefix, suite->prefix); } static munit_bool munit_stream_supports_ansi(FILE *stream) { #if !defined(_WIN32) return isatty(fileno(stream)); #else #if !defined(__MINGW32__) size_t ansicon_size = 0; #endif if (isatty(fileno(stream))) { #if !defined(__MINGW32__) getenv_s(&ansicon_size, NULL, 0, "ANSICON"); return ansicon_size != 0; #else return getenv("ANSICON") != NULL; #endif } return 0; #endif } int munit_suite_main_custom(const MunitSuite* suite, void* user_data, int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)], const MunitArgument arguments[]) { int result = EXIT_FAILURE; MunitTestRunner runner; size_t parameters_size = 0; size_t tests_size = 0; int arg; char* envptr; unsigned long ts; char* endptr; unsigned long long iterations; MunitLogLevel level; const MunitArgument* argument; const char** runner_tests; unsigned int tests_run; unsigned int tests_total; runner.prefix = NULL; runner.suite = NULL; runner.tests = NULL; runner.seed = 0; runner.iterations = 0; runner.parameters = NULL; runner.single_parameter_mode = 0; runner.user_data = NULL; runner.report.successful = 0; runner.report.skipped = 0; runner.report.failed = 0; runner.report.errored = 0; #if defined(MUNIT_ENABLE_TIMING) runner.report.cpu_clock = 0; runner.report.wall_clock = 0; #endif runner.colorize = 0; #if !defined(_WIN32) runner.fork = 1; #else runner.fork = 0; #endif runner.show_stderr = 0; runner.fatal_failures = 0; runner.suite = suite; runner.user_data = user_data; runner.seed = munit_rand_generate_seed(); runner.colorize = munit_stream_supports_ansi(MUNIT_OUTPUT_FILE); for (arg = 1 ; arg < argc ; arg++) { if (strncmp("--", argv[arg], 2) == 0) { if (strcmp("seed", argv[arg] + 2) == 0) { if (arg + 1 >= argc) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "%s requires an argument", argv[arg]); goto cleanup; } envptr = argv[arg + 1]; ts = strtoul(argv[arg + 1], &envptr, 0); if (*envptr != '\0' || ts > (~((munit_uint32_t) 0U))) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "invalid value ('%s') passed to %s", argv[arg + 1], argv[arg]); goto cleanup; } runner.seed = (munit_uint32_t) ts; arg++; } else if (strcmp("iterations", argv[arg] + 2) == 0) { if (arg + 1 >= argc) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "%s requires an argument", argv[arg]); goto cleanup; } endptr = argv[arg + 1]; iterations = strtoul(argv[arg + 1], &endptr, 0); if (*endptr != '\0' || iterations > UINT_MAX) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "invalid value ('%s') passed to %s", argv[arg + 1], argv[arg]); goto cleanup; } runner.iterations = (unsigned int) iterations; arg++; } else if (strcmp("param", argv[arg] + 2) == 0) { if (arg + 2 >= argc) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "%s requires two arguments", argv[arg]); goto cleanup; } runner.parameters = realloc(runner.parameters, sizeof(MunitParameter) * (parameters_size + 2)); if (runner.parameters == NULL) { munit_log_internal(MUNIT_LOG_ERROR, stderr, "failed to allocate memory"); goto cleanup; } runner.parameters[parameters_size].name = (char*) argv[arg + 1]; runner.parameters[parameters_size].value = (char*) argv[arg + 2]; parameters_size++; runner.parameters[parameters_size].name = NULL; runner.parameters[parameters_size].value = NULL; arg += 2; } else if (strcmp("color", argv[arg] + 2) == 0) { if (arg + 1 >= argc) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "%s requires an argument", argv[arg]); goto cleanup; } if (strcmp(argv[arg + 1], "always") == 0) runner.colorize = 1; else if (strcmp(argv[arg + 1], "never") == 0) runner.colorize = 0; else if (strcmp(argv[arg + 1], "auto") == 0) runner.colorize = munit_stream_supports_ansi(MUNIT_OUTPUT_FILE); else { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "invalid value ('%s') passed to %s", argv[arg + 1], argv[arg]); goto cleanup; } arg++; } else if (strcmp("help", argv[arg] + 2) == 0) { munit_print_help(argc, argv, user_data, arguments); result = EXIT_SUCCESS; goto cleanup; } else if (strcmp("single", argv[arg] + 2) == 0) { runner.single_parameter_mode = 1; } else if (strcmp("show-stderr", argv[arg] + 2) == 0) { runner.show_stderr = 1; #if !defined(_WIN32) } else if (strcmp("no-fork", argv[arg] + 2) == 0) { runner.fork = 0; #endif } else if (strcmp("fatal-failures", argv[arg] + 2) == 0) { runner.fatal_failures = 1; } else if (strcmp("log-visible", argv[arg] + 2) == 0 || strcmp("log-fatal", argv[arg] + 2) == 0) { if (arg + 1 >= argc) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "%s requires an argument", argv[arg]); goto cleanup; } if (strcmp(argv[arg + 1], "debug") == 0) level = MUNIT_LOG_DEBUG; else if (strcmp(argv[arg + 1], "info") == 0) level = MUNIT_LOG_INFO; else if (strcmp(argv[arg + 1], "warning") == 0) level = MUNIT_LOG_WARNING; else if (strcmp(argv[arg + 1], "error") == 0) level = MUNIT_LOG_ERROR; else { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "invalid value ('%s') passed to %s", argv[arg + 1], argv[arg]); goto cleanup; } if (strcmp("log-visible", argv[arg] + 2) == 0) munit_log_level_visible = level; else munit_log_level_fatal = level; arg++; } else if (strcmp("list", argv[arg] + 2) == 0) { munit_suite_list_tests(suite, 0, NULL); result = EXIT_SUCCESS; goto cleanup; } else if (strcmp("list-params", argv[arg] + 2) == 0) { munit_suite_list_tests(suite, 1, NULL); result = EXIT_SUCCESS; goto cleanup; } else { argument = munit_arguments_find(arguments, argv[arg] + 2); if (argument == NULL) { munit_logf_internal(MUNIT_LOG_ERROR, stderr, "unknown argument ('%s')", argv[arg]); goto cleanup; } if (!argument->parse_argument(suite, user_data, &arg, argc, argv)) goto cleanup; } } else { runner_tests = realloc((void*) runner.tests, sizeof(char*) * (tests_size + 2)); if (runner_tests == NULL) { munit_log_internal(MUNIT_LOG_ERROR, stderr, "failed to allocate memory"); goto cleanup; } runner.tests = runner_tests; runner.tests[tests_size++] = argv[arg]; runner.tests[tests_size] = NULL; } } fflush(stderr); fprintf(MUNIT_OUTPUT_FILE, "Running test suite with seed 0x%08" PRIx32 "...\n", runner.seed); munit_test_runner_run(&runner); tests_run = runner.report.successful + runner.report.failed + runner.report.errored; tests_total = tests_run + runner.report.skipped; if (tests_run == 0) { fprintf(stderr, "No tests run, %d (100%%) skipped.\n", runner.report.skipped); } else { fprintf(MUNIT_OUTPUT_FILE, "%d of %d (%0.0f%%) tests successful, %d (%0.0f%%) test skipped.\n", runner.report.successful, tests_run, (((double) runner.report.successful) / ((double) tests_run)) * 100.0, runner.report.skipped, (((double) runner.report.skipped) / ((double) tests_total)) * 100.0); } if (runner.report.failed == 0 && runner.report.errored == 0) { result = EXIT_SUCCESS; } cleanup: free(runner.parameters); free((void*) runner.tests); return result; } int munit_suite_main(const MunitSuite* suite, void* user_data, int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main_custom(suite, user_data, argc, argv, NULL); } sail-0.9.8/tests/munit/munit.h000066400000000000000000000423771475535176100163160ustar00rootroot00000000000000/* µnit Testing Framework * Copyright (c) 2013-2017 Evan Nemerson * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #if !defined(MUNIT_H) #define MUNIT_H #include #include #define MUNIT_VERSION(major, minor, revision) \ (((major) << 16) | ((minor) << 8) | (revision)) #define MUNIT_CURRENT_VERSION MUNIT_VERSION(0, 4, 1) #if defined(_MSC_VER) && (_MSC_VER < 1600) # define munit_int8_t __int8 # define munit_uint8_t unsigned __int8 # define munit_int16_t __int16 # define munit_uint16_t unsigned __int16 # define munit_int32_t __int32 # define munit_uint32_t unsigned __int32 # define munit_int64_t __int64 # define munit_uint64_t unsigned __int64 #else # include # define munit_int8_t int8_t # define munit_uint8_t uint8_t # define munit_int16_t int16_t # define munit_uint16_t uint16_t # define munit_int32_t int32_t # define munit_uint32_t uint32_t # define munit_int64_t int64_t # define munit_uint64_t uint64_t #endif #if defined(_MSC_VER) && (_MSC_VER < 1800) # if !defined(PRIi8) # define PRIi8 "i" # endif # if !defined(PRIi16) # define PRIi16 "i" # endif # if !defined(PRIi32) # define PRIi32 "i" # endif # if !defined(PRIi64) # define PRIi64 "I64i" # endif # if !defined(PRId8) # define PRId8 "d" # endif # if !defined(PRId16) # define PRId16 "d" # endif # if !defined(PRId32) # define PRId32 "d" # endif # if !defined(PRId64) # define PRId64 "I64d" # endif # if !defined(PRIx8) # define PRIx8 "x" # endif # if !defined(PRIx16) # define PRIx16 "x" # endif # if !defined(PRIx32) # define PRIx32 "x" # endif # if !defined(PRIx64) # define PRIx64 "I64x" # endif # if !defined(PRIu8) # define PRIu8 "u" # endif # if !defined(PRIu16) # define PRIu16 "u" # endif # if !defined(PRIu32) # define PRIu32 "u" # endif # if !defined(PRIu64) # define PRIu64 "I64u" # endif #else # include #endif #if !defined(munit_bool) # if defined(bool) # define munit_bool bool # elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) # define munit_bool _Bool # else # define munit_bool int # endif #endif #if defined(__cplusplus) extern "C" { #endif #if defined(__GNUC__) # define MUNIT_LIKELY(expr) (__builtin_expect ((expr), 1)) # define MUNIT_UNLIKELY(expr) (__builtin_expect ((expr), 0)) # define MUNIT_UNUSED __attribute__((__unused__)) #else # define MUNIT_LIKELY(expr) (expr) # define MUNIT_UNLIKELY(expr) (expr) # define MUNIT_UNUSED #endif #if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L || (__STDC_VERSION__ >= 201112L && defined(__STDC_NO_VLA__)) || defined(__PGI) # define MUNIT_ARRAY_PARAM(name) #else # define MUNIT_ARRAY_PARAM(name) name #endif #if !defined(_WIN32) # define MUNIT_SIZE_MODIFIER "z" # define MUNIT_CHAR_MODIFIER "hh" # define MUNIT_SHORT_MODIFIER "h" #else # if defined(_M_X64) || defined(__amd64__) # define MUNIT_SIZE_MODIFIER "I64" # else # define MUNIT_SIZE_MODIFIER "" # endif # define MUNIT_CHAR_MODIFIER "" # define MUNIT_SHORT_MODIFIER "" #endif #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L # define MUNIT_NO_RETURN _Noreturn #elif defined(__GNUC__) # define MUNIT_NO_RETURN __attribute__((__noreturn__)) #elif defined(_MSC_VER) # define MUNIT_NO_RETURN __declspec(noreturn) #else # define MUNIT_NO_RETURN #endif #if defined(_MSC_VER) && (_MSC_VER >= 1500) # define MUNIT__PUSH_DISABLE_MSVC_C4127 __pragma(warning(push)) __pragma(warning(disable:4127)) # define MUNIT__POP_DISABLE_MSVC_C4127 __pragma(warning(pop)) #else # define MUNIT__PUSH_DISABLE_MSVC_C4127 # define MUNIT__POP_DISABLE_MSVC_C4127 #endif typedef enum { MUNIT_LOG_DEBUG, MUNIT_LOG_INFO, MUNIT_LOG_WARNING, MUNIT_LOG_ERROR } MunitLogLevel; #if defined(__GNUC__) && !defined(__MINGW32__) # define MUNIT_PRINTF(string_index, first_to_check) __attribute__((format (printf, string_index, first_to_check))) #else # define MUNIT_PRINTF(string_index, first_to_check) #endif MUNIT_PRINTF(4, 5) void munit_logf_ex(MunitLogLevel level, const char* filename, int line, const char* format, ...); #define munit_logf(level, format, ...) \ munit_logf_ex(level, __FILE__, __LINE__, format, __VA_ARGS__) #define munit_log(level, msg) \ munit_logf(level, "%s", msg) MUNIT_NO_RETURN MUNIT_PRINTF(3, 4) void munit_errorf_ex(const char* filename, int line, const char* format, ...); #define munit_errorf(format, ...) \ munit_errorf_ex(__FILE__, __LINE__, format, __VA_ARGS__) #define munit_error(msg) \ munit_errorf("%s", msg) #define munit_assert(expr) \ do { \ if (!MUNIT_LIKELY(expr)) { \ munit_error("assertion failed: " #expr); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_true(expr) \ do { \ if (!MUNIT_LIKELY(expr)) { \ munit_error("assertion failed: " #expr " is not true"); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_false(expr) \ do { \ if (!MUNIT_LIKELY(!(expr))) { \ munit_error("assertion failed: " #expr " is not false"); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_type_full(prefix, suffix, T, fmt, a, op, b) \ do { \ T munit_tmp_a_ = (a); \ T munit_tmp_b_ = (b); \ if (!(munit_tmp_a_ op munit_tmp_b_)) { \ munit_errorf("assertion failed: %s %s %s (" prefix "%" fmt suffix " %s " prefix "%" fmt suffix ")", \ #a, #op, #b, munit_tmp_a_, #op, munit_tmp_b_); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_type(T, fmt, a, op, b) \ munit_assert_type_full("", "", T, fmt, a, op, b) #define munit_assert_char(a, op, b) \ munit_assert_type_full("'\\x", "'", char, "02" MUNIT_CHAR_MODIFIER "x", a, op, b) #define munit_assert_uchar(a, op, b) \ munit_assert_type_full("'\\x", "'", unsigned char, "02" MUNIT_CHAR_MODIFIER "x", a, op, b) #define munit_assert_short(a, op, b) \ munit_assert_type(short, MUNIT_SHORT_MODIFIER "d", a, op, b) #define munit_assert_ushort(a, op, b) \ munit_assert_type(unsigned short, MUNIT_SHORT_MODIFIER "u", a, op, b) #define munit_assert_int(a, op, b) \ munit_assert_type(int, "d", a, op, b) #define munit_assert_uint(a, op, b) \ munit_assert_type(unsigned int, "u", a, op, b) #define munit_assert_long(a, op, b) \ munit_assert_type(long int, "ld", a, op, b) #define munit_assert_ulong(a, op, b) \ munit_assert_type(unsigned long int, "lu", a, op, b) #define munit_assert_llong(a, op, b) \ munit_assert_type(long long int, "lld", a, op, b) #define munit_assert_ullong(a, op, b) \ munit_assert_type(unsigned long long int, "llu", a, op, b) #define munit_assert_size(a, op, b) \ munit_assert_type(size_t, MUNIT_SIZE_MODIFIER "u", a, op, b) #define munit_assert_float(a, op, b) \ munit_assert_type(float, "f", a, op, b) #define munit_assert_double(a, op, b) \ munit_assert_type(double, "g", a, op, b) #define munit_assert_ptr(a, op, b) \ munit_assert_type(const void*, "p", a, op, b) #define munit_assert_int8(a, op, b) \ munit_assert_type(munit_int8_t, PRIi8, a, op, b) #define munit_assert_uint8(a, op, b) \ munit_assert_type(munit_uint8_t, PRIu8, a, op, b) #define munit_assert_int16(a, op, b) \ munit_assert_type(munit_int16_t, PRIi16, a, op, b) #define munit_assert_uint16(a, op, b) \ munit_assert_type(munit_uint16_t, PRIu16, a, op, b) #define munit_assert_int32(a, op, b) \ munit_assert_type(munit_int32_t, PRIi32, a, op, b) #define munit_assert_uint32(a, op, b) \ munit_assert_type(munit_uint32_t, PRIu32, a, op, b) #define munit_assert_int64(a, op, b) \ munit_assert_type(munit_int64_t, PRIi64, a, op, b) #define munit_assert_uint64(a, op, b) \ munit_assert_type(munit_uint64_t, PRIu64, a, op, b) #define munit_assert_double_equal(a, b, precision) \ do { \ const double munit_tmp_a_ = (a); \ const double munit_tmp_b_ = (b); \ const double munit_tmp_diff_ = ((munit_tmp_a_ - munit_tmp_b_) < 0) ? \ -(munit_tmp_a_ - munit_tmp_b_) : \ (munit_tmp_a_ - munit_tmp_b_); \ if (MUNIT_UNLIKELY(munit_tmp_diff_ > 1e-##precision)) { \ munit_errorf("assertion failed: %s == %s (%0." #precision "g == %0." #precision "g)", \ #a, #b, munit_tmp_a_, munit_tmp_b_); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #include #define munit_assert_string_equal(a, b) \ do { \ const char* munit_tmp_a_ = a; \ const char* munit_tmp_b_ = b; \ if (MUNIT_UNLIKELY(strcmp(munit_tmp_a_, munit_tmp_b_) != 0)) { \ munit_errorf("assertion failed: string %s == %s (\"%s\" == \"%s\")", \ #a, #b, munit_tmp_a_, munit_tmp_b_); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_string_not_equal(a, b) \ do { \ const char* munit_tmp_a_ = a; \ const char* munit_tmp_b_ = b; \ if (MUNIT_UNLIKELY(strcmp(munit_tmp_a_, munit_tmp_b_) == 0)) { \ munit_errorf("assertion failed: string %s != %s (\"%s\" == \"%s\")", \ #a, #b, munit_tmp_a_, munit_tmp_b_); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_memory_equal(size, a, b) \ do { \ const unsigned char* munit_tmp_a_ = (const unsigned char*) (a); \ const unsigned char* munit_tmp_b_ = (const unsigned char*) (b); \ const size_t munit_tmp_size_ = (size); \ if (MUNIT_UNLIKELY(memcmp(munit_tmp_a_, munit_tmp_b_, munit_tmp_size_)) != 0) { \ size_t munit_tmp_pos_; \ for (munit_tmp_pos_ = 0 ; munit_tmp_pos_ < munit_tmp_size_ ; munit_tmp_pos_++) { \ if (munit_tmp_a_[munit_tmp_pos_] != munit_tmp_b_[munit_tmp_pos_]) { \ munit_errorf("assertion failed: memory %s == %s, at offset %" MUNIT_SIZE_MODIFIER "u", \ #a, #b, munit_tmp_pos_); \ break; \ } \ } \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_memory_not_equal(size, a, b) \ do { \ const unsigned char* munit_tmp_a_ = (const unsigned char*) (a); \ const unsigned char* munit_tmp_b_ = (const unsigned char*) (b); \ const size_t munit_tmp_size_ = (size); \ if (MUNIT_UNLIKELY(memcmp(munit_tmp_a_, munit_tmp_b_, munit_tmp_size_)) == 0) { \ munit_errorf("assertion failed: memory %s != %s (%zu bytes)", \ #a, #b, munit_tmp_size_); \ } \ MUNIT__PUSH_DISABLE_MSVC_C4127 \ } while (0) \ MUNIT__POP_DISABLE_MSVC_C4127 #define munit_assert_ptr_equal(a, b) \ munit_assert_ptr(a, ==, b) #define munit_assert_ptr_not_equal(a, b) \ munit_assert_ptr(a, !=, b) #define munit_assert_null(ptr) \ munit_assert_ptr(ptr, ==, NULL) #define munit_assert_not_null(ptr) \ munit_assert_ptr(ptr, !=, NULL) #define munit_assert_ptr_null(ptr) \ munit_assert_ptr(ptr, ==, NULL) #define munit_assert_ptr_not_null(ptr) \ munit_assert_ptr(ptr, !=, NULL) /*** Memory allocation ***/ void* munit_malloc_ex(const char* filename, int line, size_t size); #define munit_malloc(size) \ munit_malloc_ex(__FILE__, __LINE__, (size)) #define munit_new(type) \ ((type*) munit_malloc(sizeof(type))) #define munit_calloc(nmemb, size) \ munit_malloc((nmemb) * (size)) #define munit_newa(type, nmemb) \ ((type*) munit_calloc((nmemb), sizeof(type))) /*** Random number generation ***/ void munit_rand_seed(munit_uint32_t seed); munit_uint32_t munit_rand_uint32(void); int munit_rand_int_range(int min, int max); double munit_rand_double(void); void munit_rand_memory(size_t size, munit_uint8_t buffer[MUNIT_ARRAY_PARAM(size)]); /*** Tests and Suites ***/ typedef enum { /* Test successful */ MUNIT_OK, /* Test failed */ MUNIT_FAIL, /* Test was skipped */ MUNIT_SKIP, /* Test failed due to circumstances not intended to be tested * (things like network errors, invalid parameter value, failure to * allocate memory in the test harness, etc.). */ MUNIT_ERROR } MunitResult; typedef struct { char* name; char** values; } MunitParameterEnum; typedef struct { char* name; char* value; } MunitParameter; const char* munit_parameters_get(const MunitParameter params[], const char* key); typedef enum { MUNIT_TEST_OPTION_NONE = 0, MUNIT_TEST_OPTION_SINGLE_ITERATION = 1 << 0, MUNIT_TEST_OPTION_TODO = 1 << 1 } MunitTestOptions; typedef MunitResult (* MunitTestFunc)(const MunitParameter params[], void* user_data_or_fixture); typedef void* (* MunitTestSetup)(const MunitParameter params[], void* user_data); typedef void (* MunitTestTearDown)(void* fixture); typedef struct { char* name; MunitTestFunc test; MunitTestSetup setup; MunitTestTearDown tear_down; MunitTestOptions options; MunitParameterEnum* parameters; } MunitTest; typedef enum { MUNIT_SUITE_OPTION_NONE = 0 } MunitSuiteOptions; typedef struct MunitSuite_ MunitSuite; struct MunitSuite_ { char* prefix; MunitTest* tests; MunitSuite* suites; unsigned int iterations; MunitSuiteOptions options; }; int munit_suite_main(const MunitSuite* suite, void* user_data, int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)]); /* Note: I'm not very happy with this API; it's likely to change if I * figure out something better. Suggestions welcome. */ typedef struct MunitArgument_ MunitArgument; struct MunitArgument_ { char* name; munit_bool (* parse_argument)(const MunitSuite* suite, void* user_data, int* arg, int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)]); void (* write_help)(const MunitArgument* argument, void* user_data); }; int munit_suite_main_custom(const MunitSuite* suite, void* user_data, int argc, char* const argv[MUNIT_ARRAY_PARAM(argc + 1)], const MunitArgument arguments[]); #if defined(MUNIT_ENABLE_ASSERT_ALIASES) #define assert_true(expr) munit_assert_true(expr) #define assert_false(expr) munit_assert_false(expr) #define assert_char(a, op, b) munit_assert_char(a, op, b) #define assert_uchar(a, op, b) munit_assert_uchar(a, op, b) #define assert_short(a, op, b) munit_assert_short(a, op, b) #define assert_ushort(a, op, b) munit_assert_ushort(a, op, b) #define assert_int(a, op, b) munit_assert_int(a, op, b) #define assert_uint(a, op, b) munit_assert_uint(a, op, b) #define assert_long(a, op, b) munit_assert_long(a, op, b) #define assert_ulong(a, op, b) munit_assert_ulong(a, op, b) #define assert_llong(a, op, b) munit_assert_llong(a, op, b) #define assert_ullong(a, op, b) munit_assert_ullong(a, op, b) #define assert_size(a, op, b) munit_assert_size(a, op, b) #define assert_float(a, op, b) munit_assert_float(a, op, b) #define assert_double(a, op, b) munit_assert_double(a, op, b) #define assert_ptr(a, op, b) munit_assert_ptr(a, op, b) #define assert_int8(a, op, b) munit_assert_int8(a, op, b) #define assert_uint8(a, op, b) munit_assert_uint8(a, op, b) #define assert_int16(a, op, b) munit_assert_int16(a, op, b) #define assert_uint16(a, op, b) munit_assert_uint16(a, op, b) #define assert_int32(a, op, b) munit_assert_int32(a, op, b) #define assert_uint32(a, op, b) munit_assert_uint32(a, op, b) #define assert_int64(a, op, b) munit_assert_int64(a, op, b) #define assert_uint64(a, op, b) munit_assert_uint64(a, op, b) #define assert_double_equal(a, b, precision) munit_assert_double_equal(a, b, precision) #define assert_string_equal(a, b) munit_assert_string_equal(a, b) #define assert_string_not_equal(a, b) munit_assert_string_not_equal(a, b) #define assert_memory_equal(size, a, b) munit_assert_memory_equal(size, a, b) #define assert_memory_not_equal(size, a, b) munit_assert_memory_not_equal(size, a, b) #define assert_ptr_equal(a, b) munit_assert_ptr_equal(a, b) #define assert_ptr_not_equal(a, b) munit_assert_ptr_not_equal(a, b) #define assert_ptr_null(ptr) munit_assert_null_equal(ptr) #define assert_ptr_not_null(ptr) munit_assert_not_null(ptr) #define assert_null(ptr) munit_assert_null(ptr) #define assert_not_null(ptr) munit_assert_not_null(ptr) #endif /* defined(MUNIT_ENABLE_ASSERT_ALIASES) */ #if defined(__cplusplus) } #endif #endif /* !defined(MUNIT_H) */ #if defined(MUNIT_ENABLE_ASSERT_ALIASES) # if defined(assert) # undef assert # endif # define assert(expr) munit_assert(expr) #endif sail-0.9.8/tests/sail-common/000077500000000000000000000000001475535176100160565ustar00rootroot00000000000000sail-0.9.8/tests/sail-common/CMakeLists.txt000066400000000000000000000021631475535176100206200ustar00rootroot00000000000000sail_test(TARGET bytes-per-line SOURCES bytes_per_line.c LINK sail-common) sail_test(TARGET compare-pixel-sizes SOURCES compare_pixel_sizes.c LINK sail-common) sail_test(TARGET hash-map SOURCES hash_map.c LINK sail-common sail-comparators) sail_test(TARGET hex-data SOURCES hex_data.c LINK sail-common) sail_test(TARGET iccp SOURCES iccp.c LINK sail-common) sail_test(TARGET integrity SOURCES integrity.c LINK sail-common) sail_test(TARGET load-options SOURCES load_options.c LINK sail-common) sail_test(TARGET malloc SOURCES malloc.c LINK sail-common) sail_test(TARGET meta-data SOURCES meta_data.c LINK sail-common sail-comparators) sail_test(TARGET palette SOURCES palette.c LINK sail-common) sail_test(TARGET save-options SOURCES save_options.c LINK sail-common) sail_test(TARGET utils SOURCES utils.c LINK sail-common) sail_test(TARGET variant SOURCES variant.c LINK sail-common) sail-0.9.8/tests/sail-common/bytes_per_line.c000066400000000000000000000237111475535176100212310ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "munit.h" static MunitResult test_indexed(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 1-bit indexed. */ munit_assert(sail_bytes_per_line(7, SAIL_PIXEL_FORMAT_BPP1_INDEXED) == 1); munit_assert(sail_bytes_per_line(8, SAIL_PIXEL_FORMAT_BPP1_INDEXED) == 1); munit_assert(sail_bytes_per_line(9, SAIL_PIXEL_FORMAT_BPP1_INDEXED) == 2); /* 2-bit indexed. */ munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP2_INDEXED) == 3); munit_assert(sail_bytes_per_line(12, SAIL_PIXEL_FORMAT_BPP2_INDEXED) == 3); munit_assert(sail_bytes_per_line(13, SAIL_PIXEL_FORMAT_BPP2_INDEXED) == 4); /* 4-bit indexed. */ munit_assert(sail_bytes_per_line(9, SAIL_PIXEL_FORMAT_BPP4_INDEXED) == 5); munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP4_INDEXED) == 5); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP4_INDEXED) == 6); /* 8-bit indexed. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP8_INDEXED) == 10); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP8_INDEXED) == 11); return MUNIT_OK; } static MunitResult test_grayscale(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 1-bit grayscale. */ munit_assert(sail_bytes_per_line(7, SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE) == 1); munit_assert(sail_bytes_per_line(8, SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE) == 1); munit_assert(sail_bytes_per_line(9, SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE) == 2); /* 2-bit grayscale. */ munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE) == 3); munit_assert(sail_bytes_per_line(12, SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE) == 3); munit_assert(sail_bytes_per_line(13, SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE) == 4); /* 4-bit grayscale. */ munit_assert(sail_bytes_per_line(9, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE) == 5); munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE) == 5); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE) == 6); /* 8-bit grayscale. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE) == 10); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE) == 11); /* 16-bit grayscale. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE) == 20); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE) == 22); return MUNIT_OK; } static MunitResult test_grayscale_alpha(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 4-bit grayscale-alpha. */ munit_assert(sail_bytes_per_line(9, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA) == 5); munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA) == 5); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA) == 6); /* 8-bit grayscale-alpha. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA) == 10); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA) == 11); /* 16-bit grayscale-alpha. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA) == 20); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA) == 22); /* 32-bit grayscale-alpha. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA) == 40); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA) == 44); return MUNIT_OK; } static MunitResult test_rgb_555_565(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* RGB-555. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP16_RGB555) == 20); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP16_RGB555) == 22); /* BGR-555. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP16_BGR555) == 20); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP16_BGR555) == 22); /* RGB-565. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP16_RGB565) == 20); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP16_RGB565) == 22); /* BGR-565. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP16_BGR565) == 20); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP16_BGR565) == 22); return MUNIT_OK; } static MunitResult test_rgb(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 24-bit RGB. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP24_RGB) == 30); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP24_RGB) == 33); /* 48-bit RGB. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP48_RGB) == 60); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP48_RGB) == 66); return MUNIT_OK; } static MunitResult test_rgba(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 32-bit RGBA. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP32_RGBA) == 40); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP32_RGBA) == 44); /* 64-bit RGBA. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP64_RGBA) == 80); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP64_RGBA) == 88); return MUNIT_OK; } static MunitResult test_cmyk(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 32-bit CMYK. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP32_CMYK) == 40); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP32_CMYK) == 44); /* 64-bit CMYK. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP64_CMYK) == 80); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP64_CMYK) == 88); /* 40-bit CMYKA. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP40_CMYKA) == 50); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP40_CMYKA) == 55); /* 64-bit CMYK. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP80_CMYKA) == 100); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP80_CMYKA) == 110); return MUNIT_OK; } static MunitResult test_ycbcr(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 24-bit YCbCr. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP24_YCBCR) == 30); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP24_YCBCR) == 33); return MUNIT_OK; } static MunitResult test_ycck(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 32-bit YCbCr. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP32_YCCK) == 40); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP32_YCCK) == 44); return MUNIT_OK; } static MunitResult test_cie_lab(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* 24-bit CIE-LAB. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP24_CIE_LAB) == 30); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP24_CIE_LAB) == 33); /* 40-bit CIE-LAB. */ munit_assert(sail_bytes_per_line(10, SAIL_PIXEL_FORMAT_BPP40_CIE_LAB) == 50); munit_assert(sail_bytes_per_line(11, SAIL_PIXEL_FORMAT_BPP40_CIE_LAB) == 55); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/indexed", test_indexed, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/grayscale", test_grayscale, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/grayscale-alpha", test_grayscale_alpha, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/rgb-555-565", test_rgb_555_565, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/rgb", test_rgb, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/rgba", test_rgba, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/cmyk", test_cmyk, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/ycbcr", test_ycbcr, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/ycck", test_ycck, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/cie-lab", test_cie_lab, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/bytes-per-line", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/compare_pixel_sizes.c000066400000000000000000000245051475535176100222740ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "munit.h" static MunitResult test_less(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP2_INDEXED)); munit_assert(sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP32_RGBA)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_UNKNOWN)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_less_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_UNKNOWN)); return MUNIT_OK; } static MunitResult test_less_equal(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP2_INDEXED)); munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP32_RGBA)); munit_assert(!sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP2_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(!sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_UNKNOWN)); munit_assert(!sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_less_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_UNKNOWN)); return MUNIT_OK; } static MunitResult test_equal(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_BGR)); munit_assert(sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP32_RGBA)); munit_assert(sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP32_BGRA)); munit_assert(!sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP2_INDEXED)); munit_assert(!sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(!sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP32_RGBA)); munit_assert(!sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_UNKNOWN)); munit_assert(!sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_UNKNOWN)); return MUNIT_OK; } static MunitResult test_greater_equal(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP2_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP2_INDEXED)); munit_assert(!sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(!sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP32_RGBA)); munit_assert(!sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_UNKNOWN)); munit_assert(!sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_greater_equal_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_UNKNOWN)); return MUNIT_OK; } static MunitResult test_greater(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP2_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP4_INDEXED)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP4_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP8_INDEXED)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP8_INDEXED, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP24_RGB)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP32_RGBA)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_UNKNOWN)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_BPP1_INDEXED)); munit_assert(!sail_greater_bits_per_pixel(SAIL_PIXEL_FORMAT_UNKNOWN, SAIL_PIXEL_FORMAT_UNKNOWN)); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/less", test_less, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/less-equal", test_less_equal, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/equal", test_equal, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/greater-equal", test_greater_equal, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/greater", test_greater, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/compare-pixel-sizes", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/hash_map.c000066400000000000000000000303221475535176100200020ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #include #include "sail-comparators.h" #include "munit.h" static MunitResult test_put(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_hash_map *hash_map; munit_assert(sail_alloc_hash_map(&hash_map) == SAIL_OK); const double reference_value1 = 11.5; const int reference_value2 = 101; /* Value 1. */ struct sail_variant *value1; munit_assert(sail_alloc_variant(&value1) == SAIL_OK); sail_set_variant_double(value1, reference_value1); munit_assert(sail_put_hash_map(hash_map, "ktop", value1) == SAIL_OK); sail_destroy_variant(value1); munit_assert(sail_hash_map_has_key(hash_map, "ktop")); const struct sail_variant *value_in_map1 = sail_hash_map_value(hash_map, "ktop"); munit_assert_not_null(value_in_map1); munit_assert_double(sail_variant_to_double(value_in_map1), ==, reference_value1); munit_assert(sail_hash_map_size(hash_map) == 1); /* Value 2. */ struct sail_variant *value2; munit_assert(sail_alloc_variant(&value2) == SAIL_OK); sail_set_variant_int(value2, reference_value2); munit_assert(sail_put_hash_map(hash_map, "range", value2) == SAIL_OK); sail_destroy_variant(value2); munit_assert(sail_hash_map_has_key(hash_map, "range")); const struct sail_variant *value_in_map2 = sail_hash_map_value(hash_map, "range"); munit_assert_not_null(value_in_map2); munit_assert_int(sail_variant_to_int(value_in_map2), ==, reference_value2); munit_assert(sail_hash_map_size(hash_map) == 2); /* Cleanup. */ sail_destroy_hash_map(hash_map); return MUNIT_OK; } static MunitResult test_put_erase_many(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; srand((unsigned)time(NULL)); /* Construct a large array of keys to force collisions in the hash map. */ enum { ARRAY_SIZE = 2500 }; char* keys[ARRAY_SIZE] = { NULL }; for (size_t i = 0; i < ARRAY_SIZE; i++) { const size_t length = 5 + 1; void *ptr; munit_assert(sail_malloc(length, &ptr) == SAIL_OK); keys[i] = ptr; for (size_t l = 0; l < length - 1; l++) { keys[i][l] = (char)(1 + rand() % 255); } keys[i][length - 1] = '\0'; } /* Value. */ const double reference_value = 24.5; struct sail_variant *value; munit_assert(sail_alloc_variant(&value) == SAIL_OK); sail_set_variant_double(value, reference_value); struct sail_hash_map *hash_map; munit_assert(sail_alloc_hash_map(&hash_map) == SAIL_OK); for (size_t i = 0, prev_size = 0; i < ARRAY_SIZE; i++) { munit_assert(sail_put_hash_map(hash_map, keys[i], value) == SAIL_OK); munit_assert(sail_hash_map_has_key(hash_map, keys[i])); munit_assert(sail_hash_map_size(hash_map) == ++prev_size); } for (size_t i = 0, prev_size = ARRAY_SIZE; i < ARRAY_SIZE; i++) { sail_erase_hash_map_key(hash_map, keys[i]); munit_assert(!sail_hash_map_has_key(hash_map, keys[i])); munit_assert(sail_hash_map_size(hash_map) == --prev_size); } /* Cleanup. */ for (size_t i = 0; i < ARRAY_SIZE; i++) { sail_free(keys[i]); } sail_destroy_variant(value); sail_destroy_hash_map(hash_map); return MUNIT_OK; } static MunitResult test_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_hash_map *hash_map1; munit_assert(sail_alloc_hash_map(&hash_map1) == SAIL_OK); const double reference_value1 = 11.5; const int reference_value2 = 101; /* Value 1. */ struct sail_variant *value1; munit_assert(sail_alloc_variant(&value1) == SAIL_OK); sail_set_variant_double(value1, reference_value1); munit_assert(sail_put_hash_map(hash_map1, "ktop", value1) == SAIL_OK); sail_destroy_variant(value1); /* Value 2. */ struct sail_variant *value2; munit_assert(sail_alloc_variant(&value2) == SAIL_OK); sail_set_variant_int(value2, reference_value2); munit_assert(sail_put_hash_map(hash_map1, "range", value2) == SAIL_OK); sail_destroy_variant(value2); struct sail_hash_map *hash_map2; munit_assert(sail_copy_hash_map(hash_map1, &hash_map2) == SAIL_OK); munit_assert(sail_test_compare_hash_maps(hash_map1, hash_map2) == SAIL_OK); /* Cleanup. */ sail_destroy_hash_map(hash_map2); sail_destroy_hash_map(hash_map1); return MUNIT_OK; } static MunitResult test_overwrite(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_hash_map *hash_map; munit_assert(sail_alloc_hash_map(&hash_map) == SAIL_OK); const double reference_value1 = 11.5; const double reference_value2 = 125.5; /* Value. */ struct sail_variant *value; munit_assert(sail_alloc_variant(&value) == SAIL_OK); sail_set_variant_double(value, reference_value1); munit_assert(sail_put_hash_map(hash_map, "ktop", value) == SAIL_OK); /* Overwrite. */ sail_set_variant_double(value, reference_value2); munit_assert(sail_put_hash_map(hash_map, "ktop", value) == SAIL_OK); munit_assert(sail_hash_map_size(hash_map) == 1); const struct sail_variant *value_in_map = sail_hash_map_value(hash_map, "ktop"); munit_assert_double(sail_variant_to_double(value_in_map), ==, reference_value2); /* Overwrite #2. */ munit_assert(sail_put_hash_map(hash_map, "ktop", value) == SAIL_OK); munit_assert(sail_hash_map_size(hash_map) == 1); value_in_map = sail_hash_map_value(hash_map, "ktop"); munit_assert_double(sail_variant_to_double(value_in_map), ==, reference_value2); /* Cleanup. */ sail_destroy_variant(value); sail_destroy_hash_map(hash_map); return MUNIT_OK; } static struct sail_hash_map *generate_specific_hash_map_for_erasing(int value) { struct sail_hash_map *hash_map; sail_alloc_hash_map(&hash_map); /* Value 1. */ struct sail_variant *variant; sail_alloc_variant(&variant); sail_set_variant_int(variant, value); sail_put_hash_map(hash_map, "z", variant); sail_put_hash_map(hash_map, "i1", variant); sail_put_hash_map(hash_map, "h2", variant); sail_destroy_variant(variant); return hash_map; } static MunitResult test_erase(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* * The current hashing algorithm puts "z", "i1", and "h2" keys in the same bucket. * Let's test this specific use-case. */ struct sail_hash_map *hash_map; int reference_value; const struct sail_variant *value_in_map; /* Erase non-existing. */ reference_value = 444; hash_map = generate_specific_hash_map_for_erasing(reference_value); sail_erase_hash_map_key(hash_map, "oops"); munit_assert(sail_hash_map_has_key(hash_map, "z")); munit_assert(sail_hash_map_has_key(hash_map, "i1")); munit_assert(sail_hash_map_has_key(hash_map, "h2")); munit_assert(sail_hash_map_size(hash_map) == 3); value_in_map = sail_hash_map_value(hash_map, "z"); munit_assert_not_null(value_in_map); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); value_in_map = sail_hash_map_value(hash_map, "i1"); munit_assert_not_null(value_in_map); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); value_in_map = sail_hash_map_value(hash_map, "h2"); munit_assert_not_null(value_in_map); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); sail_destroy_hash_map(hash_map); /* Erase "z". */ reference_value = 555; hash_map = generate_specific_hash_map_for_erasing(reference_value); sail_erase_hash_map_key(hash_map, "z"); munit_assert(!sail_hash_map_has_key(hash_map, "z")); munit_assert(sail_hash_map_size(hash_map) == 2); value_in_map = sail_hash_map_value(hash_map, "i1"); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); value_in_map = sail_hash_map_value(hash_map, "h2"); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); sail_destroy_hash_map(hash_map); /* Erase "i1". */ reference_value = 666; hash_map = generate_specific_hash_map_for_erasing(reference_value); sail_erase_hash_map_key(hash_map, "i1"); munit_assert(!sail_hash_map_has_key(hash_map, "i1")); munit_assert(sail_hash_map_size(hash_map) == 2); value_in_map = sail_hash_map_value(hash_map, "z"); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); value_in_map = sail_hash_map_value(hash_map, "h2"); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); sail_destroy_hash_map(hash_map); /* Erase "h2". */ reference_value = 777; hash_map = generate_specific_hash_map_for_erasing(reference_value); sail_erase_hash_map_key(hash_map, "h2"); munit_assert(!sail_hash_map_has_key(hash_map, "h2")); munit_assert(sail_hash_map_size(hash_map) == 2); value_in_map = sail_hash_map_value(hash_map, "z"); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); value_in_map = sail_hash_map_value(hash_map, "i1"); munit_assert_int(sail_variant_to_int(value_in_map), ==, reference_value); sail_destroy_hash_map(hash_map); return MUNIT_OK; } static MunitResult test_clear(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_hash_map *hash_map; munit_assert(sail_alloc_hash_map(&hash_map) == SAIL_OK); /* Clear an empty hash map. */ sail_clear_hash_map(hash_map); const double reference_value = 11.5; /* Value. */ struct sail_variant *value; munit_assert(sail_alloc_variant(&value) == SAIL_OK); sail_set_variant_double(value, reference_value); munit_assert(sail_put_hash_map(hash_map, "ktop", value) == SAIL_OK); sail_destroy_variant(value); /* Clear. */ sail_clear_hash_map(hash_map); munit_assert(sail_hash_map_size(hash_map) == 0); /* Cleanup. */ sail_destroy_hash_map(hash_map); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/put", test_put, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/put-erase-many", test_put_erase_many, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/overwrite", test_overwrite, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/erase", test_erase, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/clear", test_clear, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/hash-map", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/hex_data.c000066400000000000000000000124411475535176100200010ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "munit.h" static MunitResult test_hex_string_to_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; void *data; size_t data_size; { const char *str = "61 62\n63"; munit_assert(sail_hex_string_to_data(str, &data, &data_size) == SAIL_OK); munit_assert(data_size == 3); munit_assert_memory_equal(data_size, data, "abc"); sail_free(data); } { const char *str = " 61\r\n62\n63 "; munit_assert(sail_hex_string_to_data(str, &data, &data_size) == SAIL_OK); munit_assert(data_size == 3); munit_assert_memory_equal(data_size, data, "abc"); sail_free(data); } { const char *str = "0A410A"; munit_assert(sail_hex_string_to_data(str, &data, &data_size) == SAIL_OK); munit_assert(data_size == 3); munit_assert_memory_equal(data_size, data, "\nA\n"); sail_free(data); } { const char *str = "616263"; munit_assert(sail_malloc(3, &data) == SAIL_OK); munit_assert(sail_hex_string_into_data(str, data) == SAIL_OK); munit_assert_memory_equal(3, data, "abc"); sail_free(data); } { const char *str = "0A410A"; munit_assert(sail_malloc(3, &data) == SAIL_OK); munit_assert(sail_hex_string_into_data(str, data) == SAIL_OK); munit_assert_memory_equal(3, data, "\nA\n"); sail_free(data); } { /* Odd length. */ const char *str = "0A4"; data = NULL; munit_assert(sail_hex_string_to_data(str, &data, &data_size) == SAIL_OK); munit_assert_memory_equal(1, data, "\n"); sail_free(data); } { /* NULL strings must fail. */ data = NULL; munit_assert(sail_hex_string_to_data(NULL, &data, &data_size) != SAIL_OK); munit_assert_null(data); } return MUNIT_OK; } static MunitResult test_data_to_hex_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; char *str; void *ptr; { str = NULL; const char *data = "abc"; munit_assert(sail_data_to_hex_string(data, strlen(data), &str) == SAIL_OK); munit_assert_not_null(str); munit_assert(strlen(str) == 3*2); munit_assert_string_equal(str, "616263"); sail_free(str); } { str = NULL; const char *data = "\nA\n"; munit_assert(sail_data_to_hex_string(data, strlen(data), &str) == SAIL_OK); munit_assert_not_null(str); munit_assert(strlen(str) == 3*2); munit_assert_string_equal(str, "0A410A"); sail_free(str); } { const char *data = "abc"; munit_assert(sail_malloc(3*2+1, &ptr) == SAIL_OK); str = ptr; munit_assert(sail_data_into_hex_string(data, strlen(data), str) == SAIL_OK); munit_assert(strlen(str) == 3*2); munit_assert_string_equal(str, "616263"); sail_free(str); } { const char *data = "\nA\n"; munit_assert(sail_malloc(3*2+1, &ptr) == SAIL_OK); str = ptr; munit_assert(sail_data_into_hex_string(data, strlen(data), str) == SAIL_OK); munit_assert(strlen(str) == 3*2); munit_assert_string_equal(str, "0A410A"); sail_free(str); } { /* NULL data must fail. */ str = NULL; munit_assert(sail_data_to_hex_string(NULL, 0, &str) != SAIL_OK); munit_assert_null(str); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/hex-string-to-data", test_hex_string_to_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/data-to-hex-string", test_data_to_hex_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/hex-data", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/iccp.c000066400000000000000000000116021475535176100171400ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "munit.h" static MunitResult test_alloc_iccp(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_iccp *iccp = NULL; munit_assert(sail_alloc_iccp(&iccp) == SAIL_OK); munit_assert_not_null(iccp); munit_assert_null(iccp->data); munit_assert(iccp->size == 0); sail_destroy_iccp(iccp); return MUNIT_OK; } static MunitResult test_copy_iccp(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_iccp *iccp = NULL; munit_assert(sail_alloc_iccp(&iccp) == SAIL_OK); iccp->size = 1024; munit_assert(sail_malloc(iccp->size, &iccp->data) == SAIL_OK); munit_assert_not_null(iccp->data); memset(iccp->data, 15, iccp->size); struct sail_iccp *iccp_copy = NULL; munit_assert(sail_copy_iccp(iccp, &iccp_copy) == SAIL_OK); munit_assert_not_null(iccp_copy); munit_assert(iccp_copy->data != iccp->data); munit_assert(iccp_copy->size == iccp->size); munit_assert_memory_equal(iccp->size, iccp_copy->data, iccp->data); sail_destroy_iccp(iccp_copy); sail_destroy_iccp(iccp); return MUNIT_OK; } static MunitResult test_iccp_from_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const unsigned data_size = 1024; void *data = NULL; munit_assert(sail_malloc(data_size, &data) == SAIL_OK); memset(data, 15, data_size); munit_assert_not_null(data); struct sail_iccp *iccp = NULL; munit_assert(sail_alloc_iccp_from_data(data, data_size, &iccp) == SAIL_OK); munit_assert_not_null(iccp); munit_assert(iccp->size == data_size); munit_assert_memory_equal(data_size, iccp->data, data); sail_destroy_iccp(iccp); sail_free(data); return MUNIT_OK; } static MunitResult test_iccp_from_shallow_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const unsigned data_size = 1024; void *data = NULL; munit_assert(sail_malloc(data_size, &data) == SAIL_OK); memset(data, 15, data_size); munit_assert_not_null(data); struct sail_iccp *iccp = NULL; munit_assert(sail_alloc_iccp_from_shallow_data(data, data_size, &iccp) == SAIL_OK); munit_assert_not_null(iccp); munit_assert(iccp->size == data_size); munit_assert(iccp->data == data); data = NULL; sail_destroy_iccp(iccp); return MUNIT_OK; } static MunitResult test_iccp_for_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const unsigned data_size = 1024; struct sail_iccp *iccp = NULL; munit_assert(sail_alloc_iccp_for_data(data_size, &iccp) == SAIL_OK); munit_assert_not_null(iccp); munit_assert_not_null(iccp->data); memset(iccp->data, 15, data_size); sail_destroy_iccp(iccp); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/alloc", test_alloc_iccp, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_copy_iccp, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-data", test_iccp_from_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-shallow-data", test_iccp_from_shallow_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/for-data", test_iccp_for_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/iccp", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/integrity.c000066400000000000000000001201161475535176100202410ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "munit.h" /* * Error macros. */ static sail_status_t check_value_is_2(int value) { if (value == 2) { return SAIL_OK; } else { return SAIL_ERROR_INVALID_ARGUMENT; } } static MunitResult test_error_macros(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; /* Check if SAIL_TRY_OR_EXECUTE() is able to continue loops. */ { int result = 0; for (int i = 0; i < 4; i++) { SAIL_TRY_OR_EXECUTE(check_value_is_2(i), /* on error */ continue); result++; } munit_assert_int(result, ==, 1); } /* Check SAIL_TRY_OR_SUPPRESS(). */ { SAIL_TRY_OR_SUPPRESS(check_value_is_2(5)); } return MUNIT_OK; } /* * Pixel formats. */ static MunitResult test_pixel_format_to_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_UNKNOWN), "UNKNOWN"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP1), "BPP1"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP2), "BPP2"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP4), "BPP4"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP8), "BPP8"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16), "BPP16"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP24), "BPP24"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32), "BPP32"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP48), "BPP48"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64), "BPP64"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP72), "BPP72"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP96), "BPP96"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP128), "BPP128"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP1_INDEXED), "BPP1-INDEXED"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP2_INDEXED), "BPP2-INDEXED"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP4_INDEXED), "BPP4-INDEXED"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP8_INDEXED), "BPP8-INDEXED"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16_INDEXED), "BPP16-INDEXED"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE), "BPP1-GRAYSCALE"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE), "BPP2-GRAYSCALE"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE), "BPP4-GRAYSCALE"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE), "BPP8-GRAYSCALE"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE), "BPP16-GRAYSCALE"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA), "BPP4-GRAYSCALE-ALPHA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA), "BPP8-GRAYSCALE-ALPHA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA), "BPP16-GRAYSCALE-ALPHA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA), "BPP32-GRAYSCALE-ALPHA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16_RGB555), "BPP16-RGB555"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16_BGR555), "BPP16-BGR555"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16_RGB565), "BPP16-RGB565"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP16_BGR565), "BPP16-BGR565"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP24_RGB), "BPP24-RGB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP24_BGR), "BPP24-BGR"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP48_RGB), "BPP48-RGB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP48_BGR), "BPP48-BGR"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_RGBX), "BPP32-RGBX"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_BGRX), "BPP32-BGRX"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_XRGB), "BPP32-XRGB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_XBGR), "BPP32-XBGR"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_RGBA), "BPP32-RGBA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_BGRA), "BPP32-BGRA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_ARGB), "BPP32-ARGB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_ABGR), "BPP32-ABGR"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_RGBX), "BPP64-RGBX"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_BGRX), "BPP64-BGRX"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_XRGB), "BPP64-XRGB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_XBGR), "BPP64-XBGR"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_RGBA), "BPP64-RGBA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_BGRA), "BPP64-BGRA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_ARGB), "BPP64-ARGB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_ABGR), "BPP64-ABGR"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_CMYK), "BPP32-CMYK"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_CMYK), "BPP64-CMYK"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP40_CMYKA), "BPP40-CMYKA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP80_CMYKA), "BPP80-CMYKA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP24_YCBCR), "BPP24-YCBCR"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_YCCK), "BPP32-YCCK"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP24_CIE_LAB), "BPP24-CIE-LAB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP40_CIE_LAB), "BPP40-CIE-LAB"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP24_CIE_LUV), "BPP24-CIE-LUV"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP40_CIE_LUV), "BPP40-CIE-LUV"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP24_YUV), "BPP24-YUV"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP30_YUV), "BPP30-YUV"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP36_YUV), "BPP36-YUV"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP48_YUV), "BPP48-YUV"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP32_YUVA), "BPP32-YUVA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP40_YUVA), "BPP40-YUVA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP48_YUVA), "BPP48-YUVA"); munit_assert_string_equal(sail_pixel_format_to_string(SAIL_PIXEL_FORMAT_BPP64_YUVA), "BPP64-YUVA"); return MUNIT_OK; } static MunitResult test_pixel_format_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_pixel_format_from_string(NULL) == SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert(sail_pixel_format_from_string("Some") == SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert(sail_pixel_format_from_string("UNKNOWN") == SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert(sail_pixel_format_from_string("BPP1") == SAIL_PIXEL_FORMAT_BPP1); munit_assert(sail_pixel_format_from_string("BPP2") == SAIL_PIXEL_FORMAT_BPP2); munit_assert(sail_pixel_format_from_string("BPP4") == SAIL_PIXEL_FORMAT_BPP4); munit_assert(sail_pixel_format_from_string("BPP8") == SAIL_PIXEL_FORMAT_BPP8); munit_assert(sail_pixel_format_from_string("BPP16") == SAIL_PIXEL_FORMAT_BPP16); munit_assert(sail_pixel_format_from_string("BPP24") == SAIL_PIXEL_FORMAT_BPP24); munit_assert(sail_pixel_format_from_string("BPP32") == SAIL_PIXEL_FORMAT_BPP32); munit_assert(sail_pixel_format_from_string("BPP48") == SAIL_PIXEL_FORMAT_BPP48); munit_assert(sail_pixel_format_from_string("BPP64") == SAIL_PIXEL_FORMAT_BPP64); munit_assert(sail_pixel_format_from_string("BPP72") == SAIL_PIXEL_FORMAT_BPP72); munit_assert(sail_pixel_format_from_string("BPP96") == SAIL_PIXEL_FORMAT_BPP96); munit_assert(sail_pixel_format_from_string("BPP128") == SAIL_PIXEL_FORMAT_BPP128); munit_assert(sail_pixel_format_from_string("BPP1-INDEXED") == SAIL_PIXEL_FORMAT_BPP1_INDEXED); munit_assert(sail_pixel_format_from_string("BPP2-INDEXED") == SAIL_PIXEL_FORMAT_BPP2_INDEXED); munit_assert(sail_pixel_format_from_string("BPP4-INDEXED") == SAIL_PIXEL_FORMAT_BPP4_INDEXED); munit_assert(sail_pixel_format_from_string("BPP8-INDEXED") == SAIL_PIXEL_FORMAT_BPP8_INDEXED); munit_assert(sail_pixel_format_from_string("BPP16-INDEXED") == SAIL_PIXEL_FORMAT_BPP16_INDEXED); munit_assert(sail_pixel_format_from_string("BPP1-GRAYSCALE") == SAIL_PIXEL_FORMAT_BPP1_GRAYSCALE); munit_assert(sail_pixel_format_from_string("BPP2-GRAYSCALE") == SAIL_PIXEL_FORMAT_BPP2_GRAYSCALE); munit_assert(sail_pixel_format_from_string("BPP4-GRAYSCALE") == SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE); munit_assert(sail_pixel_format_from_string("BPP8-GRAYSCALE") == SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE); munit_assert(sail_pixel_format_from_string("BPP16-GRAYSCALE") == SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE); munit_assert(sail_pixel_format_from_string("BPP4-GRAYSCALE-ALPHA") == SAIL_PIXEL_FORMAT_BPP4_GRAYSCALE_ALPHA); munit_assert(sail_pixel_format_from_string("BPP8-GRAYSCALE-ALPHA") == SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE_ALPHA); munit_assert(sail_pixel_format_from_string("BPP16-GRAYSCALE-ALPHA") == SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE_ALPHA); munit_assert(sail_pixel_format_from_string("BPP32-GRAYSCALE-ALPHA") == SAIL_PIXEL_FORMAT_BPP32_GRAYSCALE_ALPHA); munit_assert(sail_pixel_format_from_string("BPP16-RGB555") == SAIL_PIXEL_FORMAT_BPP16_RGB555); munit_assert(sail_pixel_format_from_string("BPP16-BGR555") == SAIL_PIXEL_FORMAT_BPP16_BGR555); munit_assert(sail_pixel_format_from_string("BPP16-RGB565") == SAIL_PIXEL_FORMAT_BPP16_RGB565); munit_assert(sail_pixel_format_from_string("BPP16-BGR565") == SAIL_PIXEL_FORMAT_BPP16_BGR565); munit_assert(sail_pixel_format_from_string("BPP24-RGB") == SAIL_PIXEL_FORMAT_BPP24_RGB); munit_assert(sail_pixel_format_from_string("BPP24-BGR") == SAIL_PIXEL_FORMAT_BPP24_BGR); munit_assert(sail_pixel_format_from_string("BPP48-RGB") == SAIL_PIXEL_FORMAT_BPP48_RGB); munit_assert(sail_pixel_format_from_string("BPP48-BGR") == SAIL_PIXEL_FORMAT_BPP48_BGR); munit_assert(sail_pixel_format_from_string("BPP32-RGBX") == SAIL_PIXEL_FORMAT_BPP32_RGBX); munit_assert(sail_pixel_format_from_string("BPP32-BGRX") == SAIL_PIXEL_FORMAT_BPP32_BGRX); munit_assert(sail_pixel_format_from_string("BPP32-XRGB") == SAIL_PIXEL_FORMAT_BPP32_XRGB); munit_assert(sail_pixel_format_from_string("BPP32-XBGR") == SAIL_PIXEL_FORMAT_BPP32_XBGR); munit_assert(sail_pixel_format_from_string("BPP32-RGBA") == SAIL_PIXEL_FORMAT_BPP32_RGBA); munit_assert(sail_pixel_format_from_string("BPP32-BGRA") == SAIL_PIXEL_FORMAT_BPP32_BGRA); munit_assert(sail_pixel_format_from_string("BPP32-ARGB") == SAIL_PIXEL_FORMAT_BPP32_ARGB); munit_assert(sail_pixel_format_from_string("BPP32-ABGR") == SAIL_PIXEL_FORMAT_BPP32_ABGR); munit_assert(sail_pixel_format_from_string("BPP64-RGBX") == SAIL_PIXEL_FORMAT_BPP64_RGBX); munit_assert(sail_pixel_format_from_string("BPP64-BGRX") == SAIL_PIXEL_FORMAT_BPP64_BGRX); munit_assert(sail_pixel_format_from_string("BPP64-XRGB") == SAIL_PIXEL_FORMAT_BPP64_XRGB); munit_assert(sail_pixel_format_from_string("BPP64-XBGR") == SAIL_PIXEL_FORMAT_BPP64_XBGR); munit_assert(sail_pixel_format_from_string("BPP64-RGBA") == SAIL_PIXEL_FORMAT_BPP64_RGBA); munit_assert(sail_pixel_format_from_string("BPP64-BGRA") == SAIL_PIXEL_FORMAT_BPP64_BGRA); munit_assert(sail_pixel_format_from_string("BPP64-ARGB") == SAIL_PIXEL_FORMAT_BPP64_ARGB); munit_assert(sail_pixel_format_from_string("BPP64-ABGR") == SAIL_PIXEL_FORMAT_BPP64_ABGR); munit_assert(sail_pixel_format_from_string("BPP32-CMYK") == SAIL_PIXEL_FORMAT_BPP32_CMYK); munit_assert(sail_pixel_format_from_string("BPP64-CMYK") == SAIL_PIXEL_FORMAT_BPP64_CMYK); munit_assert(sail_pixel_format_from_string("BPP40-CMYKA") == SAIL_PIXEL_FORMAT_BPP40_CMYKA); munit_assert(sail_pixel_format_from_string("BPP80-CMYKA") == SAIL_PIXEL_FORMAT_BPP80_CMYKA); munit_assert(sail_pixel_format_from_string("BPP24-YCBCR") == SAIL_PIXEL_FORMAT_BPP24_YCBCR); munit_assert(sail_pixel_format_from_string("BPP32-YCCK") == SAIL_PIXEL_FORMAT_BPP32_YCCK); munit_assert(sail_pixel_format_from_string("BPP24-CIE-LAB") == SAIL_PIXEL_FORMAT_BPP24_CIE_LAB); munit_assert(sail_pixel_format_from_string("BPP40-CIE-LAB") == SAIL_PIXEL_FORMAT_BPP40_CIE_LAB); munit_assert(sail_pixel_format_from_string("BPP24-CIE-LUV") == SAIL_PIXEL_FORMAT_BPP24_CIE_LUV); munit_assert(sail_pixel_format_from_string("BPP40-CIE-LUV") == SAIL_PIXEL_FORMAT_BPP40_CIE_LUV); munit_assert(sail_pixel_format_from_string("BPP24-YUV") == SAIL_PIXEL_FORMAT_BPP24_YUV); munit_assert(sail_pixel_format_from_string("BPP30-YUV") == SAIL_PIXEL_FORMAT_BPP30_YUV); munit_assert(sail_pixel_format_from_string("BPP36-YUV") == SAIL_PIXEL_FORMAT_BPP36_YUV); munit_assert(sail_pixel_format_from_string("BPP48-YUV") == SAIL_PIXEL_FORMAT_BPP48_YUV); munit_assert(sail_pixel_format_from_string("BPP32-YUVA") == SAIL_PIXEL_FORMAT_BPP32_YUVA); munit_assert(sail_pixel_format_from_string("BPP40-YUVA") == SAIL_PIXEL_FORMAT_BPP40_YUVA); munit_assert(sail_pixel_format_from_string("BPP48-YUVA") == SAIL_PIXEL_FORMAT_BPP48_YUVA); munit_assert(sail_pixel_format_from_string("BPP64-YUVA") == SAIL_PIXEL_FORMAT_BPP64_YUVA); return MUNIT_OK; } /* * Chroma subsampling. */ static MunitResult test_chroma_subsampling_to_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_UNKNOWN), "UNKNOWN"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_311), "311"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_400), "400"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_410), "410"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_411), "411"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_420), "420"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_421), "421"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_422), "422"); munit_assert_string_equal(sail_chroma_subsampling_to_string(SAIL_CHROMA_SUBSAMPLING_444), "444"); return MUNIT_OK; } static MunitResult test_chroma_subsampling_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_chroma_subsampling_from_string(NULL) == SAIL_CHROMA_SUBSAMPLING_UNKNOWN); munit_assert(sail_chroma_subsampling_from_string("Some") == SAIL_CHROMA_SUBSAMPLING_UNKNOWN); munit_assert(sail_chroma_subsampling_from_string("UNKNOWN") == SAIL_CHROMA_SUBSAMPLING_UNKNOWN); munit_assert(sail_chroma_subsampling_from_string("311") == SAIL_CHROMA_SUBSAMPLING_311); munit_assert(sail_chroma_subsampling_from_string("400") == SAIL_CHROMA_SUBSAMPLING_400); munit_assert(sail_chroma_subsampling_from_string("410") == SAIL_CHROMA_SUBSAMPLING_410); munit_assert(sail_chroma_subsampling_from_string("411") == SAIL_CHROMA_SUBSAMPLING_411); munit_assert(sail_chroma_subsampling_from_string("420") == SAIL_CHROMA_SUBSAMPLING_420); munit_assert(sail_chroma_subsampling_from_string("422") == SAIL_CHROMA_SUBSAMPLING_422); munit_assert(sail_chroma_subsampling_from_string("444") == SAIL_CHROMA_SUBSAMPLING_444); return MUNIT_OK; } /* * Orientation. */ static MunitResult test_orientation_to_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_NORMAL), "NORMAL"); munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_ROTATED_90), "ROTATED-90"); munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_ROTATED_180), "ROTATED-180"); munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_ROTATED_270), "ROTATED-270"); munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_MIRRORED_HORIZONTALLY), "MIRRORED-HORIZONTALLY"); munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_MIRRORED_VERTICALLY), "MIRRORED-VERTICALLY"); munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_90), "MIRRORED-HORIZONTALLY-ROTATED-90"); munit_assert_string_equal(sail_orientation_to_string(SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_270), "MIRRORED-HORIZONTALLY-ROTATED-270"); return MUNIT_OK; } static MunitResult test_orientation_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_orientation_from_string(NULL) == SAIL_ORIENTATION_NORMAL); munit_assert(sail_orientation_from_string("Some") == SAIL_ORIENTATION_NORMAL); munit_assert(sail_orientation_from_string("NORMAL") == SAIL_ORIENTATION_NORMAL); munit_assert(sail_orientation_from_string("ROTATED-90") == SAIL_ORIENTATION_ROTATED_90); munit_assert(sail_orientation_from_string("ROTATED-180") == SAIL_ORIENTATION_ROTATED_180); munit_assert(sail_orientation_from_string("ROTATED-270") == SAIL_ORIENTATION_ROTATED_270); munit_assert(sail_orientation_from_string("MIRRORED-HORIZONTALLY") == SAIL_ORIENTATION_MIRRORED_HORIZONTALLY); munit_assert(sail_orientation_from_string("MIRRORED-VERTICALLY") == SAIL_ORIENTATION_MIRRORED_VERTICALLY); munit_assert(sail_orientation_from_string("MIRRORED-HORIZONTALLY-ROTATED-90") == SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_90); munit_assert(sail_orientation_from_string("MIRRORED-HORIZONTALLY-ROTATED-270") == SAIL_ORIENTATION_MIRRORED_HORIZONTALLY_ROTATED_270); return MUNIT_OK; } /* * Compression types. */ static MunitResult test_compression_to_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_UNKNOWN), "UNKNOWN"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_NONE), "NONE"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_ADOBE_DEFLATE), "ADOBE-DEFLATE"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_AV1), "AV1"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_CCITT_FAX3), "CCITT-FAX3"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_CCITT_FAX4), "CCITT-FAX4"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_CCITT_RLE), "CCITT-RLE"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_CCITT_RLEW), "CCITT-RLEW"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_CCITT_T4), "CCITT-T4"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_CCITT_T6), "CCITT-T6"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_DCS), "DCS"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_DEFLATE), "DEFLATE"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_IT8_BL), "IT8-BL"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_IT8_CTPAD), "IT8-CTPAD"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_IT8_LW), "IT8-LW"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_IT8_MP), "IT8-MP"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_JBIG), "JBIG"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_JPEG), "JPEG"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_JPEG_2000), "JPEG-2000"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_JPEG_XL), "JPEG-XL"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_JPEG_XR), "JPEG-XR"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_LERC), "LERC"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_LZMA), "LZMA"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_LZW), "LZW"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_NEXT), "NEXT"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_OJPEG), "OJPEG"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_PACKBITS), "PACKBITS"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_PIXAR_FILM), "PIXAR-FILM"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_PIXAR_LOG), "PIXAR-LOG"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_RLE), "RLE"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_SGI_LOG), "SGI-LOG"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_SGI_LOG24), "SGI-LOG24"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_T43), "T43"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_T85), "T85"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_THUNDERSCAN), "THUNDERSCAN"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_WEBP), "WEBP"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_ZIP), "ZIP"); munit_assert_string_equal(sail_compression_to_string(SAIL_COMPRESSION_ZSTD), "ZSTD"); return MUNIT_OK; } static MunitResult test_compression_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_compression_from_string(NULL) == SAIL_COMPRESSION_UNKNOWN); munit_assert(sail_compression_from_string("Some") == SAIL_COMPRESSION_UNKNOWN); munit_assert(sail_compression_from_string("UNKNOWN") == SAIL_COMPRESSION_UNKNOWN); munit_assert(sail_compression_from_string("NONE") == SAIL_COMPRESSION_NONE); munit_assert(sail_compression_from_string("ADOBE-DEFLATE") == SAIL_COMPRESSION_ADOBE_DEFLATE); munit_assert(sail_compression_from_string("AV1") == SAIL_COMPRESSION_AV1); munit_assert(sail_compression_from_string("CCITT-FAX3") == SAIL_COMPRESSION_CCITT_FAX3); munit_assert(sail_compression_from_string("CCITT-FAX4") == SAIL_COMPRESSION_CCITT_FAX4); munit_assert(sail_compression_from_string("CCITT-RLE") == SAIL_COMPRESSION_CCITT_RLE); munit_assert(sail_compression_from_string("CCITT-RLEW") == SAIL_COMPRESSION_CCITT_RLEW); munit_assert(sail_compression_from_string("CCITT-T4") == SAIL_COMPRESSION_CCITT_T4); munit_assert(sail_compression_from_string("CCITT-T6") == SAIL_COMPRESSION_CCITT_T6); munit_assert(sail_compression_from_string("DCS") == SAIL_COMPRESSION_DCS); munit_assert(sail_compression_from_string("DEFLATE") == SAIL_COMPRESSION_DEFLATE); munit_assert(sail_compression_from_string("IT8-BL") == SAIL_COMPRESSION_IT8_BL); munit_assert(sail_compression_from_string("IT8-CTPAD") == SAIL_COMPRESSION_IT8_CTPAD); munit_assert(sail_compression_from_string("IT8-LW") == SAIL_COMPRESSION_IT8_LW); munit_assert(sail_compression_from_string("IT8-MP") == SAIL_COMPRESSION_IT8_MP); munit_assert(sail_compression_from_string("JBIG") == SAIL_COMPRESSION_JBIG); munit_assert(sail_compression_from_string("JPEG") == SAIL_COMPRESSION_JPEG); munit_assert(sail_compression_from_string("JPEG-2000") == SAIL_COMPRESSION_JPEG_2000); munit_assert(sail_compression_from_string("JPEG-XL") == SAIL_COMPRESSION_JPEG_XL); munit_assert(sail_compression_from_string("JPEG-XR") == SAIL_COMPRESSION_JPEG_XR); munit_assert(sail_compression_from_string("LERC") == SAIL_COMPRESSION_LERC); munit_assert(sail_compression_from_string("LZMA") == SAIL_COMPRESSION_LZMA); munit_assert(sail_compression_from_string("LZW") == SAIL_COMPRESSION_LZW); munit_assert(sail_compression_from_string("NEXT") == SAIL_COMPRESSION_NEXT); munit_assert(sail_compression_from_string("OJPEG") == SAIL_COMPRESSION_OJPEG); munit_assert(sail_compression_from_string("PACKBITS") == SAIL_COMPRESSION_PACKBITS); munit_assert(sail_compression_from_string("PIXAR-FILM") == SAIL_COMPRESSION_PIXAR_FILM); munit_assert(sail_compression_from_string("PIXAR-LOG") == SAIL_COMPRESSION_PIXAR_LOG); munit_assert(sail_compression_from_string("RLE") == SAIL_COMPRESSION_RLE); munit_assert(sail_compression_from_string("SGI-LOG") == SAIL_COMPRESSION_SGI_LOG); munit_assert(sail_compression_from_string("SGI-LOG24") == SAIL_COMPRESSION_SGI_LOG24); munit_assert(sail_compression_from_string("T43") == SAIL_COMPRESSION_T43); munit_assert(sail_compression_from_string("T85") == SAIL_COMPRESSION_T85); munit_assert(sail_compression_from_string("THUNDERSCAN") == SAIL_COMPRESSION_THUNDERSCAN); munit_assert(sail_compression_from_string("WEBP") == SAIL_COMPRESSION_WEBP); munit_assert(sail_compression_from_string("ZIP") == SAIL_COMPRESSION_ZIP); munit_assert(sail_compression_from_string("ZSTD") == SAIL_COMPRESSION_ZSTD); return MUNIT_OK; } /* * Meta data keys. */ static MunitResult test_meta_data_to_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_UNKNOWN), "Unknown"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_ARTIST), "Artist"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_AUTHOR), "Author"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_COMMENT), "Comment"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_COMPUTER), "Computer"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_COPYRIGHT), "Copyright"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_CREATION_TIME), "Creation Time"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_DESCRIPTION), "Description"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_DISCLAIMER), "Disclaimer"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_DOCUMENT), "Document"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_EXIF), "EXIF"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_ID), "ID"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_IPTC), "IPTC"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_JOB), "Job"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_JUMBF), "JUMBF"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_LABEL), "Label"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_MAKE), "Make"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_MODEL), "Model"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_NAME), "Name"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_PRINTER), "Printer"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_SOFTWARE), "Software"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_SOFTWARE_VERSION), "Software Version"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_SOURCE), "Source"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_TIME_CONSUMED), "Time Consumed"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_TITLE), "Title"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_URL), "URL"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_WARNING), "Warning"); munit_assert_string_equal(sail_meta_data_to_string(SAIL_META_DATA_XMP), "XMP"); return MUNIT_OK; } static MunitResult test_meta_data_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_meta_data_from_string(NULL) == SAIL_META_DATA_UNKNOWN); munit_assert(sail_meta_data_from_string("Some") == SAIL_META_DATA_UNKNOWN); munit_assert(sail_meta_data_from_string("Unknown") == SAIL_META_DATA_UNKNOWN); munit_assert(sail_meta_data_from_string("Artist") == SAIL_META_DATA_ARTIST); munit_assert(sail_meta_data_from_string("Author") == SAIL_META_DATA_AUTHOR); munit_assert(sail_meta_data_from_string("Comment") == SAIL_META_DATA_COMMENT); munit_assert(sail_meta_data_from_string("Computer") == SAIL_META_DATA_COMPUTER); munit_assert(sail_meta_data_from_string("Copyright") == SAIL_META_DATA_COPYRIGHT); munit_assert(sail_meta_data_from_string("Creation Time") == SAIL_META_DATA_CREATION_TIME); munit_assert(sail_meta_data_from_string("Description") == SAIL_META_DATA_DESCRIPTION); munit_assert(sail_meta_data_from_string("Disclaimer") == SAIL_META_DATA_DISCLAIMER); munit_assert(sail_meta_data_from_string("Document") == SAIL_META_DATA_DOCUMENT); munit_assert(sail_meta_data_from_string("EXIF") == SAIL_META_DATA_EXIF); munit_assert(sail_meta_data_from_string("ID") == SAIL_META_DATA_ID); munit_assert(sail_meta_data_from_string("IPTC") == SAIL_META_DATA_IPTC); munit_assert(sail_meta_data_from_string("Job") == SAIL_META_DATA_JOB); munit_assert(sail_meta_data_from_string("JUMBF") == SAIL_META_DATA_JUMBF); munit_assert(sail_meta_data_from_string("Label") == SAIL_META_DATA_LABEL); munit_assert(sail_meta_data_from_string("Make") == SAIL_META_DATA_MAKE); munit_assert(sail_meta_data_from_string("Model") == SAIL_META_DATA_MODEL); munit_assert(sail_meta_data_from_string("Name") == SAIL_META_DATA_NAME); munit_assert(sail_meta_data_from_string("Printer") == SAIL_META_DATA_PRINTER); munit_assert(sail_meta_data_from_string("Software") == SAIL_META_DATA_SOFTWARE); munit_assert(sail_meta_data_from_string("Software Version") == SAIL_META_DATA_SOFTWARE_VERSION); munit_assert(sail_meta_data_from_string("Source") == SAIL_META_DATA_SOURCE); munit_assert(sail_meta_data_from_string("Time Consumed") == SAIL_META_DATA_TIME_CONSUMED); munit_assert(sail_meta_data_from_string("Title") == SAIL_META_DATA_TITLE); munit_assert(sail_meta_data_from_string("URL") == SAIL_META_DATA_URL); munit_assert(sail_meta_data_from_string("Warning") == SAIL_META_DATA_WARNING); munit_assert(sail_meta_data_from_string("XMP") == SAIL_META_DATA_XMP); return MUNIT_OK; } /* * Resolution Unit. */ static MunitResult test_resolution_unit_to_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_string_equal(sail_resolution_unit_to_string(SAIL_RESOLUTION_UNIT_UNKNOWN), "Unknown"); munit_assert_string_equal(sail_resolution_unit_to_string(SAIL_RESOLUTION_UNIT_MICROMETER), "Micrometer"); munit_assert_string_equal(sail_resolution_unit_to_string(SAIL_RESOLUTION_UNIT_CENTIMETER), "Centimeter"); munit_assert_string_equal(sail_resolution_unit_to_string(SAIL_RESOLUTION_UNIT_METER), "Meter"); munit_assert_string_equal(sail_resolution_unit_to_string(SAIL_RESOLUTION_UNIT_INCH), "Inch"); return MUNIT_OK; } static MunitResult test_resolution_unit_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_resolution_unit_from_string(NULL) == SAIL_RESOLUTION_UNIT_UNKNOWN); munit_assert(sail_resolution_unit_from_string("Some") == SAIL_RESOLUTION_UNIT_UNKNOWN); munit_assert(sail_resolution_unit_from_string("Unknown") == SAIL_RESOLUTION_UNIT_UNKNOWN); munit_assert(sail_resolution_unit_from_string("Micrometer") == SAIL_RESOLUTION_UNIT_MICROMETER); munit_assert(sail_resolution_unit_from_string("Centimeter") == SAIL_RESOLUTION_UNIT_CENTIMETER); munit_assert(sail_resolution_unit_from_string("Meter") == SAIL_RESOLUTION_UNIT_METER); munit_assert(sail_resolution_unit_from_string("Inch") == SAIL_RESOLUTION_UNIT_INCH); return MUNIT_OK; } /* * Codec features. */ static MunitResult test_codec_feature_to_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_UNKNOWN), "UNKNOWN"); munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_STATIC), "STATIC"); munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_ANIMATED), "ANIMATED"); munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_MULTI_PAGED), "MULTI-PAGED"); munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_META_DATA), "META-DATA"); munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_INTERLACED), "INTERLACED"); munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_ICCP), "ICCP"); munit_assert_string_equal(sail_codec_feature_to_string(SAIL_CODEC_FEATURE_SOURCE_IMAGE), "SOURCE-IMAGE"); return MUNIT_OK; } static MunitResult test_codec_feature_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert(sail_codec_feature_from_string(NULL) == SAIL_CODEC_FEATURE_UNKNOWN); munit_assert(sail_codec_feature_from_string("Some") == SAIL_CODEC_FEATURE_UNKNOWN); munit_assert(sail_codec_feature_from_string("UNKNOWN") == SAIL_CODEC_FEATURE_UNKNOWN); munit_assert(sail_codec_feature_from_string("STATIC") == SAIL_CODEC_FEATURE_STATIC); munit_assert(sail_codec_feature_from_string("ANIMATED") == SAIL_CODEC_FEATURE_ANIMATED); munit_assert(sail_codec_feature_from_string("MULTI-PAGED") == SAIL_CODEC_FEATURE_MULTI_PAGED); munit_assert(sail_codec_feature_from_string("META-DATA") == SAIL_CODEC_FEATURE_META_DATA); munit_assert(sail_codec_feature_from_string("INTERLACED") == SAIL_CODEC_FEATURE_INTERLACED); munit_assert(sail_codec_feature_from_string("ICCP") == SAIL_CODEC_FEATURE_ICCP); munit_assert(sail_codec_feature_from_string("SOURCE-IMAGE") == SAIL_CODEC_FEATURE_SOURCE_IMAGE); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/error-macros", test_error_macros, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/pixel-format-to-string", test_pixel_format_to_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/pixel-format-from-string", test_pixel_format_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/chroma-subsampling-to-string", test_chroma_subsampling_to_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/chroma-subsampling-from-string", test_chroma_subsampling_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/orientation-to-string", test_orientation_to_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/orientation-from-string", test_orientation_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/compression-to-string", test_compression_to_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/compression-from-string", test_compression_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/meta-data-to-string", test_meta_data_to_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/meta-data-from-string", test_meta_data_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/resolution-unit-to-string", test_resolution_unit_to_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/resolution-unit-from-string", test_resolution_unit_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/codec-feature-to-string", test_codec_feature_to_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/codec-feature-from-string", test_codec_feature_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/integrity", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/load_options.c000066400000000000000000000073361475535176100207250ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "munit.h" static MunitResult test_alloc_options(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_load_options *load_options = NULL; munit_assert(sail_alloc_load_options(&load_options) == SAIL_OK); munit_assert_not_null(load_options); munit_assert(load_options->options == 0); munit_assert_null(load_options->tuning); sail_destroy_load_options(load_options); return MUNIT_OK; } static MunitResult test_copy_options(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_load_options *load_options = NULL; munit_assert(sail_alloc_load_options(&load_options) == SAIL_OK); load_options->options = SAIL_OPTION_ICCP; struct sail_load_options *load_options_copy = NULL; munit_assert(sail_copy_load_options(load_options, &load_options_copy) == SAIL_OK); munit_assert_not_null(load_options_copy); munit_assert(load_options_copy->options == load_options->options); munit_assert_null(load_options_copy->tuning); sail_destroy_load_options(load_options_copy); sail_destroy_load_options(load_options); return MUNIT_OK; } static MunitResult test_options_from_features(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_load_options *load_options; struct sail_load_features load_features; load_features.features = SAIL_CODEC_FEATURE_META_DATA | SAIL_CODEC_FEATURE_INTERLACED | SAIL_CODEC_FEATURE_ICCP | SAIL_CODEC_FEATURE_SOURCE_IMAGE; munit_assert(sail_alloc_load_options_from_features(&load_features, &load_options) == SAIL_OK); munit_assert(load_options->options == (SAIL_OPTION_META_DATA | SAIL_OPTION_ICCP | SAIL_OPTION_SOURCE_IMAGE)); munit_assert_null(load_options->tuning); sail_destroy_load_options(load_options); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/alloc", test_alloc_options, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_copy_options, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-features", test_options_from_features, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/load-options", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/malloc.c000066400000000000000000000063601475535176100174760ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "munit.h" static MunitResult test_malloc(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const size_t size = 10 * 1024; void *ptr = NULL; munit_assert(sail_malloc(size, &ptr) == SAIL_OK); munit_assert_not_null(ptr); memset(ptr, 0, size); sail_free(ptr); return MUNIT_OK; } static MunitResult test_calloc(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const size_t size = 1; const size_t members = 1024; void *ptr = NULL; munit_assert(sail_calloc(members, size, &ptr) == SAIL_OK); munit_assert_not_null(ptr); unsigned char *cptr = ptr; for (size_t i = 0; i < size * members; i++, cptr++) { munit_assert(*cptr == 0); } sail_free(ptr); return MUNIT_OK; } static MunitResult test_realloc(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const size_t size = 10 * 1024; size_t current_size = size; const double factor = 1.2; const int iterations = 10; int iteration = 0; void *ptr = NULL; while (iteration++ < iterations) { munit_assert(sail_realloc(current_size, &ptr) == SAIL_OK); munit_assert_not_null(ptr); memset(ptr, 0, current_size); current_size = (size_t)(current_size * factor); } sail_free(ptr); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/malloc", test_malloc, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/calloc", test_calloc, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/realloc", test_realloc, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/malloc", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/meta_data.c000066400000000000000000000160271475535176100201470ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-comparators.h" #include "munit.h" static MunitResult test_alloc_meta_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_meta_data *meta_data = NULL; munit_assert(sail_alloc_meta_data(&meta_data) == SAIL_OK); munit_assert_not_null(meta_data); munit_assert_null(meta_data->key_unknown); munit_assert_null(meta_data->value); sail_destroy_meta_data(meta_data); return MUNIT_OK; } static MunitResult test_alloc_meta_data_from_known_key(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_meta_data *meta_data = NULL; munit_assert(sail_alloc_meta_data_from_known_key(SAIL_META_DATA_COMMENT, &meta_data) == SAIL_OK); munit_assert_not_null(meta_data); munit_assert(meta_data->key == SAIL_META_DATA_COMMENT); munit_assert_null(meta_data->key_unknown); munit_assert_null(meta_data->value); sail_destroy_meta_data(meta_data); return MUNIT_OK; } static MunitResult test_alloc_meta_data_from_unknown_key(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const char *key = "Some Key"; struct sail_meta_data *meta_data = NULL; munit_assert(sail_alloc_meta_data_from_unknown_key(key, &meta_data) == SAIL_OK); munit_assert_not_null(meta_data); munit_assert_not_null(meta_data->key_unknown); munit_assert_string_equal(meta_data->key_unknown, key); munit_assert_null(meta_data->value); sail_destroy_meta_data(meta_data); return MUNIT_OK; } static MunitResult test_alloc_meta_data_and_value_from_known_key(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_meta_data *meta_data = NULL; munit_assert(sail_alloc_meta_data_and_value_from_known_key(SAIL_META_DATA_COMMENT, &meta_data) == SAIL_OK); munit_assert_not_null(meta_data); munit_assert(meta_data->key == SAIL_META_DATA_COMMENT); munit_assert_not_null(meta_data->value); sail_destroy_meta_data(meta_data); return MUNIT_OK; } static MunitResult test_alloc_meta_data_and_value_from_unknown_key(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const char *key = "Some Key"; struct sail_meta_data *meta_data = NULL; munit_assert(sail_alloc_meta_data_and_value_from_unknown_key(key, &meta_data) == SAIL_OK); munit_assert_not_null(meta_data); munit_assert_not_null(meta_data->key_unknown); munit_assert_string_equal(meta_data->key_unknown, key); munit_assert_not_null(meta_data->value); sail_destroy_meta_data(meta_data); return MUNIT_OK; } static MunitResult test_copy_known_string_meta_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const char *value = "Comment 1"; struct sail_meta_data *meta_data = NULL; munit_assert(sail_alloc_meta_data_from_known_key(SAIL_META_DATA_COMMENT, &meta_data) == SAIL_OK); munit_assert_not_null(meta_data); munit_assert(sail_alloc_variant(&meta_data->value) == SAIL_OK); munit_assert(sail_set_variant_string(meta_data->value, value) == SAIL_OK); munit_assert_not_null(meta_data->value); struct sail_meta_data *meta_data_copy = NULL; munit_assert(sail_copy_meta_data(meta_data, &meta_data_copy) == SAIL_OK); munit_assert_not_null(meta_data_copy); munit_assert(sail_test_compare_meta_datas(meta_data_copy, meta_data) == SAIL_OK); sail_destroy_meta_data(meta_data_copy); sail_destroy_meta_data(meta_data); return MUNIT_OK; } static MunitResult test_copy_unknown_string_meta_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const char *key = "Some Key"; const char *value = "Comment 1"; struct sail_meta_data *meta_data = NULL; munit_assert(sail_alloc_meta_data_from_unknown_key(key, &meta_data) == SAIL_OK); munit_assert_not_null(meta_data); munit_assert(sail_alloc_variant(&meta_data->value) == SAIL_OK); munit_assert(sail_set_variant_string(meta_data->value, value) == SAIL_OK); munit_assert_not_null(meta_data->value); struct sail_meta_data *meta_data_copy = NULL; munit_assert(sail_copy_meta_data(meta_data, &meta_data_copy) == SAIL_OK); munit_assert_not_null(meta_data_copy); munit_assert(sail_test_compare_meta_datas(meta_data_copy, meta_data) == SAIL_OK); sail_destroy_meta_data(meta_data_copy); sail_destroy_meta_data(meta_data); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/alloc", test_alloc_meta_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/alloc-from-known-key", test_alloc_meta_data_from_known_key, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/alloc-from-unknown-key", test_alloc_meta_data_from_unknown_key, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/alloc-with-value-from-known-key", test_alloc_meta_data_and_value_from_known_key, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/alloc-with-value-from-unknown-key", test_alloc_meta_data_and_value_from_unknown_key, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy-known-string", test_copy_known_string_meta_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy-unknown-string", test_copy_unknown_string_meta_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/meta_data", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/palette.c000066400000000000000000000120601475535176100176570ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "munit.h" static MunitResult test_alloc_palette(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_palette *palette = NULL; munit_assert(sail_alloc_palette(&palette) == SAIL_OK); munit_assert_not_null(palette); munit_assert_null(palette->data); munit_assert(palette->color_count == 0); munit_assert(palette->pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN); sail_destroy_palette(palette); return MUNIT_OK; } static MunitResult test_copy_palette(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_palette *palette = NULL; munit_assert(sail_alloc_palette(&palette) == SAIL_OK); palette->pixel_format = SAIL_PIXEL_FORMAT_BPP24_RGB; palette->color_count = 10; const unsigned data_size = palette->color_count * 3; munit_assert(sail_malloc(data_size, &palette->data) == SAIL_OK); munit_assert_not_null(palette->data); memset(palette->data, 15, data_size); struct sail_palette *palette_copy = NULL; munit_assert(sail_copy_palette(palette, &palette_copy) == SAIL_OK); munit_assert_not_null(palette_copy); munit_assert(palette_copy->data != palette->data); munit_assert(palette_copy->pixel_format == palette->pixel_format); munit_assert_memory_equal(data_size, palette_copy->data, palette->data); munit_assert(palette_copy->color_count == palette->color_count); sail_destroy_palette(palette_copy); sail_destroy_palette(palette); return MUNIT_OK; } static MunitResult test_palette_from_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const enum SailPixelFormat pixel_format = SAIL_PIXEL_FORMAT_BPP24_RGB; const unsigned color_count = 100; const unsigned data_size = color_count * 3; void *data = NULL; munit_assert(sail_malloc(data_size, &data) == SAIL_OK); memset(data, 15, data_size); munit_assert_not_null(data); struct sail_palette *palette = NULL; munit_assert(sail_alloc_palette_from_data(pixel_format, data, color_count, &palette) == SAIL_OK); munit_assert_not_null(palette); munit_assert(palette->pixel_format == pixel_format); munit_assert_memory_equal(data_size, palette->data, data); munit_assert(palette->color_count == color_count); sail_destroy_palette(palette); sail_free(data); return MUNIT_OK; } static MunitResult test_palette_for_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const enum SailPixelFormat pixel_format = SAIL_PIXEL_FORMAT_BPP24_RGB; const unsigned color_count = 100; const unsigned data_size = color_count * 3; struct sail_palette *palette = NULL; munit_assert(sail_alloc_palette_for_data(pixel_format, color_count, &palette) == SAIL_OK); munit_assert_not_null(palette); munit_assert(palette->pixel_format == pixel_format); munit_assert_not_null(palette->data); munit_assert(palette->color_count == color_count); memset(palette->data, 15, data_size); sail_destroy_palette(palette); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/alloc", test_alloc_palette, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_copy_palette, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-data", test_palette_from_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/for-data", test_palette_for_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/palette", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/save_options.c000066400000000000000000000113611475535176100207350ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "munit.h" static MunitResult test_alloc_options(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_save_options *save_options = NULL; munit_assert(sail_alloc_save_options(&save_options) == SAIL_OK); munit_assert_not_null(save_options); munit_assert(save_options->options == 0); munit_assert(save_options->compression == SAIL_COMPRESSION_UNKNOWN); munit_assert(save_options->compression_level == 0); sail_destroy_save_options(save_options); return MUNIT_OK; } static MunitResult test_copy_options(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_save_options *save_options = NULL; munit_assert(sail_alloc_save_options(&save_options) == SAIL_OK); save_options->options = SAIL_OPTION_ICCP; save_options->compression = SAIL_COMPRESSION_JPEG; save_options->compression_level = 55; struct sail_save_options *save_options_copy = NULL; munit_assert(sail_copy_save_options(save_options, &save_options_copy) == SAIL_OK); munit_assert_not_null(save_options_copy); munit_assert(save_options_copy->options == save_options->options); munit_assert(save_options_copy->compression == save_options->compression); munit_assert(save_options_copy->compression_level == save_options->compression_level); munit_assert_null(save_options_copy->tuning); sail_destroy_save_options(save_options_copy); sail_destroy_save_options(save_options); return MUNIT_OK; } static MunitResult test_options_from_features(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_save_features *save_features; struct sail_save_options *save_options; munit_assert(sail_alloc_save_features(&save_features) == SAIL_OK); munit_assert(sail_alloc_compression_level(&save_features->compression_level) == SAIL_OK); save_features->default_compression = SAIL_COMPRESSION_JPEG; save_features->compression_level->min_level = 1; save_features->compression_level->max_level = 100; save_features->compression_level->default_level = 81; save_features->compression_level->step = 1; save_features->features = SAIL_CODEC_FEATURE_META_DATA | SAIL_CODEC_FEATURE_INTERLACED | SAIL_CODEC_FEATURE_ICCP | SAIL_CODEC_FEATURE_SOURCE_IMAGE; munit_assert(sail_alloc_save_options_from_features(save_features, &save_options) == SAIL_OK); munit_assert(save_options->options == (SAIL_OPTION_META_DATA | SAIL_OPTION_INTERLACED | SAIL_OPTION_ICCP)); munit_assert(save_options->compression == save_features->default_compression); munit_assert(save_options->compression_level == save_features->compression_level->default_level); munit_assert_null(save_options->tuning); sail_destroy_save_features(save_features); sail_destroy_save_options(save_options); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/alloc", test_alloc_options, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_copy_options, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-features", test_options_from_features, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/save-options", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/utils.c000066400000000000000000000063211475535176100173640ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2023 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "munit.h" static MunitResult test_reverse_uint16(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_uint16(sail_reverse_uint16(0), ==, 0); munit_assert_uint16(sail_reverse_uint16(100), ==, 25600); munit_assert_uint16(sail_reverse_uint16(1000), ==, 59395); return MUNIT_OK; } static MunitResult test_reverse_uint32(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_uint32(sail_reverse_uint32(0), ==, 0); munit_assert_uint32(sail_reverse_uint32(100), ==, 1677721600); munit_assert_uint32(sail_reverse_uint32(1000), ==, 3892510720); munit_assert_uint32(sail_reverse_uint32(100000), ==, 2693136640); return MUNIT_OK; } static MunitResult test_reverse_uint64(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; munit_assert_uint64(sail_reverse_uint64(0ull), ==, 0ull); munit_assert_uint64(sail_reverse_uint64(100ull), ==, 7205759403792793600ull); munit_assert_uint64(sail_reverse_uint64(1000ull), ==, 16718206241729413120ull); munit_assert_uint64(sail_reverse_uint64(100000ull), ==, 11566933792459325440ull); munit_assert_uint64(sail_reverse_uint64(10000000000ull), ==, 64188750128742400ull); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/reverse-uint16", test_reverse_uint16, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/reverse-uint32", test_reverse_uint32, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/reverse-uint64", test_reverse_uint64, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/utils", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-common/variant.c000066400000000000000000000267601475535176100177010ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2022 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "munit.h" static MunitResult test_alloc(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_variant *variant = NULL; munit_assert(sail_alloc_variant(&variant) == SAIL_OK); munit_assert_not_null(variant); munit_assert(variant->type == SAIL_VARIANT_TYPE_INVALID); munit_assert_null(variant->value); munit_assert(variant->size == 0); sail_destroy_variant(variant); return MUNIT_OK; } static MunitResult test_copy(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; const int reference_value = 64; struct sail_variant *variant; munit_assert(sail_alloc_variant(&variant) == SAIL_OK); munit_assert(sail_set_variant_int(variant, reference_value) == SAIL_OK); struct sail_variant *variant_copy = NULL; munit_assert(sail_copy_variant(variant, &variant_copy) == SAIL_OK); munit_assert_not_null(variant_copy); munit_assert(variant_copy->type == SAIL_VARIANT_TYPE_INT); munit_assert(sail_variant_to_int(variant_copy) == reference_value); munit_assert(variant_copy->size == sizeof(reference_value)); sail_destroy_variant(variant_copy); sail_destroy_variant(variant); return MUNIT_OK; } #define TEST_VARIANT_FROM_VALUE(VALUE_TYPE, VALUE, SETTER, VARIANT_TYPE, ACCESSOR) \ do { \ VALUE_TYPE s = VALUE; \ \ struct sail_variant *variant; \ munit_assert(sail_alloc_variant(&variant) == SAIL_OK); \ munit_assert(SETTER(variant, s) == SAIL_OK); \ \ munit_assert(variant->type == VARIANT_TYPE); \ munit_assert(ACCESSOR(variant) == s); \ munit_assert(variant->size == sizeof(VALUE_TYPE)); \ \ sail_destroy_variant(variant); \ } while(0) static MunitResult test_from_value(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; TEST_VARIANT_FROM_VALUE(bool, true, sail_set_variant_bool, SAIL_VARIANT_TYPE_BOOL, sail_variant_to_bool); TEST_VARIANT_FROM_VALUE(char, 'a', sail_set_variant_char, SAIL_VARIANT_TYPE_CHAR, sail_variant_to_char); TEST_VARIANT_FROM_VALUE(unsigned char, 'b', sail_set_variant_unsigned_char, SAIL_VARIANT_TYPE_UNSIGNED_CHAR, sail_variant_to_unsigned_char); TEST_VARIANT_FROM_VALUE(short, 2110, sail_set_variant_short, SAIL_VARIANT_TYPE_SHORT, sail_variant_to_short); TEST_VARIANT_FROM_VALUE(unsigned short, 2110, sail_set_variant_unsigned_short, SAIL_VARIANT_TYPE_UNSIGNED_SHORT, sail_variant_to_unsigned_short); TEST_VARIANT_FROM_VALUE(int, 0xFFFF5, sail_set_variant_int, SAIL_VARIANT_TYPE_INT, sail_variant_to_int); TEST_VARIANT_FROM_VALUE(unsigned int, 0xFFFF5, sail_set_variant_unsigned_int, SAIL_VARIANT_TYPE_UNSIGNED_INT, sail_variant_to_unsigned_int); TEST_VARIANT_FROM_VALUE(long, 0xFFFF6, sail_set_variant_long, SAIL_VARIANT_TYPE_LONG, sail_variant_to_long); TEST_VARIANT_FROM_VALUE(unsigned long, 0xFFFF6, sail_set_variant_unsigned_long, SAIL_VARIANT_TYPE_UNSIGNED_LONG, sail_variant_to_unsigned_long); TEST_VARIANT_FROM_VALUE(float, 160.f, sail_set_variant_float, SAIL_VARIANT_TYPE_FLOAT, sail_variant_to_float); TEST_VARIANT_FROM_VALUE(double, 29555.0, sail_set_variant_double, SAIL_VARIANT_TYPE_DOUBLE, sail_variant_to_double); return MUNIT_OK; } #define TEST_VARIANT_FROM_STRING(VALUE, SETTER, VARIANT_TYPE, ACCESSOR) \ do { \ void *ptr = (void *)VALUE; \ struct sail_variant *variant; \ munit_assert(sail_alloc_variant(&variant) == SAIL_OK); \ munit_assert(SETTER(variant, ptr) == SAIL_OK); \ \ munit_assert(variant->type == VARIANT_TYPE); \ munit_assert(strcmp(ACCESSOR(variant), ptr) == 0); \ munit_assert(variant->size == strlen(ptr) + 1); \ \ sail_destroy_variant(variant); \ } while(0) static MunitResult test_from_string(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; TEST_VARIANT_FROM_STRING("abc", sail_set_variant_string, SAIL_VARIANT_TYPE_STRING, sail_variant_to_string); const char *copy_from = "xyz"; const size_t copy_size = strlen(copy_from) + 1; char *str; { void *ptr; munit_assert(sail_malloc(copy_size, &ptr) == SAIL_OK); str = ptr; } #ifdef _MSC_VER strcpy_s(str, copy_size, "xyz"); #else strcpy(str, "xyz"); #endif TEST_VARIANT_FROM_STRING(str, sail_set_variant_shallow_string, SAIL_VARIANT_TYPE_STRING, sail_variant_to_string); return MUNIT_OK; } #define TEST_VARIANT_FROM_DATA(VALUE, VALUE_SIZE, SETTER, VARIANT_TYPE, ACCESSOR) \ do { \ void *ptr = (void *)VALUE; \ struct sail_variant *variant; \ munit_assert(sail_alloc_variant(&variant) == SAIL_OK); \ munit_assert(SETTER(variant, ptr, VALUE_SIZE) == SAIL_OK); \ \ munit_assert(variant->type == VARIANT_TYPE); \ munit_assert(memcmp(ACCESSOR(variant), ptr, VALUE_SIZE) == 0); \ munit_assert(variant->size == VALUE_SIZE); \ \ sail_destroy_variant(variant); \ } while(0) static MunitResult test_from_data(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; TEST_VARIANT_FROM_DATA("abc", 3, sail_set_variant_data, SAIL_VARIANT_TYPE_DATA, sail_variant_to_data); const char *copy_from = "xyz"; const size_t copy_size = strlen(copy_from) + 1; char *str; { void *ptr; munit_assert(sail_malloc(copy_size, &ptr) == SAIL_OK); str = ptr; } #ifdef _MSC_VER strcpy_s(str, copy_size, "xyz"); #else strcpy(str, "xyz"); #endif TEST_VARIANT_FROM_DATA(str, 3, sail_set_variant_shallow_data, SAIL_VARIANT_TYPE_DATA, sail_variant_to_data); return MUNIT_OK; } static MunitResult test_set(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; struct sail_variant *variant; munit_assert(sail_alloc_variant(&variant) == SAIL_OK); munit_assert(sail_set_variant_bool(variant, true) == SAIL_OK); munit_assert(sail_variant_to_bool(variant) == true); munit_assert(sail_set_variant_char(variant, 6) == SAIL_OK); munit_assert(sail_variant_to_char(variant) == 6); munit_assert(sail_set_variant_unsigned_char(variant, 7) == SAIL_OK); munit_assert(sail_variant_to_unsigned_char(variant) == 7); munit_assert(sail_set_variant_short(variant, 19) == SAIL_OK); munit_assert(sail_variant_to_short(variant) == 19); munit_assert(sail_set_variant_unsigned_short(variant, 29) == SAIL_OK); munit_assert(sail_variant_to_unsigned_short(variant) == 29); munit_assert(sail_set_variant_int(variant, 0xFFFF9) == SAIL_OK); munit_assert(sail_variant_to_int(variant) == 0xFFFF9); munit_assert(sail_set_variant_unsigned_int(variant, 0xFFFFFF9) == SAIL_OK); munit_assert(sail_variant_to_unsigned_int(variant) == 0xFFFFFF9); munit_assert(sail_set_variant_long(variant, 0xFFFF9) == SAIL_OK); munit_assert(sail_variant_to_long(variant) == 0xFFFF9); munit_assert(sail_set_variant_unsigned_long(variant, 0xFFFFFF9) == SAIL_OK); munit_assert(sail_variant_to_unsigned_long(variant) == 0xFFFFFF9); munit_assert(sail_set_variant_string(variant, "abc") == SAIL_OK); munit_assert(strcmp(sail_variant_to_string(variant), "abc") == 0); munit_assert(sail_set_variant_substring(variant, "abc", 2) == SAIL_OK); munit_assert(strcmp(sail_variant_to_string(variant), "ab") == 0); munit_assert(sail_set_variant_data(variant, "abc", 4) == SAIL_OK); munit_assert(strcmp((char *)sail_variant_to_data(variant), "abc") == 0); sail_destroy_variant(variant); return MUNIT_OK; } static MunitResult test_snprintf(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; char buffer[32]; struct sail_variant *variant; munit_assert(sail_alloc_variant(&variant) == SAIL_OK); sail_set_variant_bool(variant, true); munit_assert(sail_snprintf_variant(variant, buffer, sizeof(buffer)) == 4); munit_assert_string_equal(buffer, "true"); sail_set_variant_bool(variant, false); munit_assert(sail_snprintf_variant(variant, buffer, sizeof(buffer)) == 5); munit_assert_string_equal(buffer, "false"); sail_set_variant_int(variant, 105); munit_assert(sail_snprintf_variant(variant, buffer, sizeof(buffer)) == 3); munit_assert_string_equal(buffer, "105"); sail_destroy_variant(variant); return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/alloc", test_alloc, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/copy", test_copy, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-value", test_from_value, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-string", test_from_string, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/from-data", test_from_data, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/set", test_set, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/snprintf", test_snprintf, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/variant", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail-comparators/000077500000000000000000000000001475535176100171205ustar00rootroot00000000000000sail-0.9.8/tests/sail-comparators/CMakeLists.txt000066400000000000000000000007641475535176100216670ustar00rootroot00000000000000add_library(sail-comparators STATIC sail-comparators.h sail-comparators.c) set_target_properties(sail-comparators PROPERTIES VERSION "1.0.0" SOVERSION 1) # Definitions, includes, link # target_include_directories(sail-comparators PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(sail-comparators PRIVATE sail-common) target_link_libraries(sail-comparators PRIVATE sail-munit) sail-0.9.8/tests/sail-comparators/sail-comparators.c000066400000000000000000000212501475535176100225440ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include "sail-comparators.h" #include "munit.h" sail_status_t sail_test_compare_resolutions(const struct sail_resolution *resolution1, const struct sail_resolution *resolution2) { munit_assert_not_null(resolution1); munit_assert_not_null(resolution2); munit_assert(resolution1 != resolution2); munit_assert(resolution1->unit == resolution2->unit); munit_assert(resolution1->x == resolution2->x); munit_assert(resolution1->y == resolution2->y); return SAIL_OK; } sail_status_t sail_test_compare_palettes(const struct sail_palette *palette1, const struct sail_palette *palette2) { munit_assert_not_null(palette1); munit_assert_not_null(palette2); munit_assert(palette1 != palette2); munit_assert(palette1->pixel_format != SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert(palette1->pixel_format == palette2->pixel_format); munit_assert(palette1->color_count == palette2->color_count); munit_assert_not_null(palette1->data); munit_assert_not_null(palette2->data); unsigned palette_size = sail_bytes_per_line(palette1->color_count, palette1->pixel_format); munit_assert(palette_size > 0); munit_assert_memory_equal(palette_size, palette1->data, palette2->data); return SAIL_OK; } sail_status_t sail_test_compare_variants(const struct sail_variant *variant1, const struct sail_variant *variant2) { munit_assert_not_null(variant1); munit_assert_not_null(variant2); munit_assert(variant1 != variant2); munit_assert(variant1->type == variant2->type); munit_assert_memory_equal(variant1->size, variant1->value, variant2->value); munit_assert(variant1->size == variant2->size); return SAIL_OK; } static bool compare_key_value_callback(const char *key, const struct sail_variant *value, void *user_data) { const struct sail_hash_map *hash_map2 = (struct sail_hash_map *)user_data; const struct sail_variant *value2 = sail_hash_map_value(hash_map2, key); munit_assert(sail_test_compare_variants(value, value2) == SAIL_OK); return true; } sail_status_t sail_test_compare_hash_maps(const struct sail_hash_map *hash_map1, const struct sail_hash_map *hash_map2) { munit_assert_not_null(hash_map1); munit_assert_not_null(hash_map2); munit_assert(sail_hash_map_size(hash_map1) == sail_hash_map_size(hash_map2)); sail_traverse_hash_map_with_user_data(hash_map1, compare_key_value_callback, (void *)hash_map2); return SAIL_OK; } sail_status_t sail_test_compare_meta_datas(const struct sail_meta_data *meta_data1, const struct sail_meta_data *meta_data2) { munit_assert_not_null(meta_data1); munit_assert_not_null(meta_data2); munit_assert(meta_data1 != meta_data2); munit_assert(meta_data1->key == meta_data2->key); if (meta_data1->key == SAIL_META_DATA_UNKNOWN) { munit_assert_not_null(meta_data1->key_unknown); munit_assert_not_null(meta_data2->key_unknown); munit_assert_string_equal(meta_data1->key_unknown, meta_data2->key_unknown); } munit_assert(sail_test_compare_variants(meta_data1->value, meta_data2->value) == SAIL_OK); return SAIL_OK; } sail_status_t sail_test_compare_meta_data_nodes(const struct sail_meta_data_node *meta_data_node1, const struct sail_meta_data_node *meta_data_node2) { munit_assert_not_null(meta_data_node1); munit_assert_not_null(meta_data_node2); munit_assert(meta_data_node1 != meta_data_node2); munit_assert(sail_test_compare_meta_datas(meta_data_node1->meta_data, meta_data_node2->meta_data) == SAIL_OK); return SAIL_OK; } sail_status_t sail_test_compare_meta_data_node_chains(const struct sail_meta_data_node *meta_data_node1, const struct sail_meta_data_node *meta_data_node2) { munit_assert_not_null(meta_data_node1); munit_assert_not_null(meta_data_node2); munit_assert(meta_data_node1 != meta_data_node2); while (meta_data_node1 != NULL) { munit_assert_not_null(meta_data_node2); munit_assert(sail_test_compare_meta_data_nodes(meta_data_node1, meta_data_node2) == SAIL_OK); meta_data_node1 = meta_data_node1->next; meta_data_node2 = meta_data_node2->next; } munit_assert_null(meta_data_node2); return SAIL_OK; } sail_status_t sail_test_compare_iccps(const struct sail_iccp *iccp1, const struct sail_iccp *iccp2) { munit_assert_not_null(iccp1); munit_assert_not_null(iccp2); munit_assert(iccp1 != iccp2); munit_assert(iccp1->size > 0); munit_assert(iccp1->size == iccp2->size); munit_assert_memory_equal(iccp1->size, iccp1->data, iccp2->data); return SAIL_OK; } sail_status_t sail_test_compare_source_images(const struct sail_source_image *source_image1, const struct sail_source_image *source_image2) { munit_assert_not_null(source_image1); munit_assert_not_null(source_image2); munit_assert(source_image1 != source_image2); munit_assert(source_image1->pixel_format == source_image2->pixel_format); munit_assert(source_image1->chroma_subsampling == source_image2->chroma_subsampling); munit_assert(source_image1->orientation == source_image2->orientation); munit_assert(source_image1->compression == source_image2->compression); munit_assert(source_image1->interlaced == source_image2->interlaced); if (source_image1->special_properties == NULL) { munit_assert_null(source_image2->special_properties); } else { munit_assert(sail_test_compare_hash_maps(source_image1->special_properties, source_image2->special_properties) == SAIL_OK); } return SAIL_OK; } sail_status_t sail_test_compare_images(const struct sail_image *image1, const struct sail_image *image2) { munit_assert_not_null(image1); munit_assert_not_null(image2); munit_assert(image1 != image2); munit_assert(image1->width > 0); munit_assert(image1->width == image2->width); munit_assert(image1->height > 0); munit_assert(image1->height == image2->height); munit_assert(image1->bytes_per_line > 0); munit_assert(image1->bytes_per_line == image2->bytes_per_line); munit_assert_not_null(image1->pixels); munit_assert_not_null(image2->pixels); const unsigned pixels_size = image1->height * image1->bytes_per_line; munit_assert_memory_equal(pixels_size, image1->pixels, image2->pixels); if (image1->resolution == NULL) { munit_assert_null(image2->resolution); } else { munit_assert(sail_test_compare_resolutions(image1->resolution, image2->resolution) == SAIL_OK); } munit_assert(image1->pixel_format != SAIL_PIXEL_FORMAT_UNKNOWN); munit_assert(image1->pixel_format == image2->pixel_format); munit_assert(image1->delay == image2->delay); if (image1->palette == NULL) { munit_assert_null(image2->palette); } else { munit_assert(sail_test_compare_palettes(image1->palette, image2->palette) == SAIL_OK); } if (image1->meta_data_node == NULL) { munit_assert_null(image2->meta_data_node); } else { munit_assert(sail_test_compare_meta_data_node_chains(image1->meta_data_node, image2->meta_data_node) == SAIL_OK); } if (image1->iccp == NULL) { munit_assert_null(image2->iccp); } else { munit_assert(sail_test_compare_iccps(image1->iccp, image2->iccp) == SAIL_OK); } if (image1->source_image == NULL) { munit_assert_null(image2->source_image); } else { munit_assert(sail_test_compare_source_images(image1->source_image, image2->source_image) == SAIL_OK); } return SAIL_OK; } sail-0.9.8/tests/sail-comparators/sail-comparators.h000066400000000000000000000052711475535176100225560ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_COMPARATORS_H #define SAIL_COMPARATORS_H #include #include SAIL_EXPORT sail_status_t sail_test_compare_resolutions(const struct sail_resolution *resolution1, const struct sail_resolution *resolution2); SAIL_EXPORT sail_status_t sail_test_compare_palettes(const struct sail_palette *palette1, const struct sail_palette *palette2); SAIL_EXPORT sail_status_t sail_test_compare_variants(const struct sail_variant *variant1, const struct sail_variant *variant2); SAIL_EXPORT sail_status_t sail_test_compare_hash_maps(const struct sail_hash_map *hash_map1, const struct sail_hash_map *hash_map2); SAIL_EXPORT sail_status_t sail_test_compare_meta_datas(const struct sail_meta_data *meta_data1, const struct sail_meta_data *meta_data2); SAIL_EXPORT sail_status_t sail_test_compare_meta_data_nodes(const struct sail_meta_data_node *meta_data_node1, const struct sail_meta_data_node *meta_data_node2); SAIL_EXPORT sail_status_t sail_test_compare_meta_data_node_chains(const struct sail_meta_data_node *meta_data_node1, const struct sail_meta_data_node *meta_data_node2); SAIL_EXPORT sail_status_t sail_test_compare_iccps(const struct sail_iccp *iccp1, const struct sail_iccp *iccp2); SAIL_EXPORT sail_status_t sail_test_compare_source_images(const struct sail_source_image *source_image1, const struct sail_source_image *source_image2); SAIL_EXPORT sail_status_t sail_test_compare_images(const struct sail_image *image1, const struct sail_image *image2); #endif sail-0.9.8/tests/sail-dump/000077500000000000000000000000001475535176100155335ustar00rootroot00000000000000sail-0.9.8/tests/sail-dump/CMakeLists.txt000066400000000000000000000010111475535176100202640ustar00rootroot00000000000000add_library(sail-dump STATIC sail-dump.h sail-dump.c) set_target_properties(sail-dump PROPERTIES VERSION "1.0.0" SOVERSION 1) # Definitions, includes, link # target_include_directories(sail-dump PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(sail-dump PRIVATE sail-common) # Application to dump images # add_executable(sail-dump-app sail-dump-app.c) target_link_libraries(sail-dump-app PRIVATE sail sail-dump) sail-0.9.8/tests/sail-dump/sail-dump-app.c000066400000000000000000000040321475535176100203470ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-dump.h" int main(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "Usage: %s ", argv[0]); return 1; } void *state = NULL; SAIL_TRY_OR_EXECUTE(sail_start_loading_from_file(argv[1], NULL, &state), /* on error */ return 2); sail_status_t res; struct sail_image *image; while ((res = sail_load_next_frame(state, &image)) == SAIL_OK) { SAIL_TRY_OR_EXECUTE(sail_dump(image), /* on error */ return 3); sail_destroy_image(image); } if (res != SAIL_ERROR_NO_MORE_FRAMES) { sail_stop_loading(state); return res; } SAIL_TRY_OR_EXECUTE(sail_stop_loading(state), /* on error */ return 4); return 0; } sail-0.9.8/tests/sail-dump/sail-dump.c000066400000000000000000000475251475535176100176070ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include #ifdef SAIL_WIN32 /* _fsopen() */ #include #endif #include #include "sail-dump.h" /* * Private functions. */ static void skip_whitespaces(FILE *fptr) { #ifdef _MSC_VER int ret = fscanf_s(fptr, "%*[ \r\n]"); #else int ret = fscanf(fptr, "%*[ \r\n]"); #endif (void)ret; } static sail_status_t read_hex(FILE *fptr, size_t data_size, uint8_t **value) { void *ptr; SAIL_TRY(sail_malloc(data_size, &ptr)); uint8_t *value_local = ptr; for (unsigned i = 0; i < data_size; i++) { skip_whitespaces(fptr); unsigned v; #ifdef _MSC_VER if (fscanf_s(fptr, "%2x%*[ \r\n]", &v) != 1) { #else if (fscanf(fptr, "%2x%*[ \r\n]", &v) != 1) { #endif sail_free(value_local); SAIL_LOG_ERROR("DUMP: Failed to read hex element at index %u", i); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } *(value_local + i) = (uint8_t)v; } *value = value_local; return SAIL_OK; } static sail_status_t print_hex(uint8_t *data, size_t data_size) { if (data_size == 0) { return SAIL_OK; } if (data == NULL) { SAIL_LOG_ERROR("DUMP: Data length is %u but data is NULL", data_size); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } for (unsigned i = 0; i < data_size; i++) { printf("%02x ", *(data + i)); } printf("\n"); return SAIL_OK; } static sail_status_t read_image(FILE *fptr, struct sail_image *image) { /* * 124 124 62(bpl) BPP4-INDEXED NORMAL(orientation) */ char pixel_format[64]; #ifdef _MSC_VER if (fscanf_s(fptr, "%u %u %u %s", &image->width, &image->height, &image->bytes_per_line, pixel_format, (unsigned)sizeof(pixel_format)) != 4) { #else if (fscanf(fptr, "%u %u %u %s", &image->width, &image->height, &image->bytes_per_line, pixel_format) != 4) { #endif SAIL_LOG_ERROR("DUMP: Failed to read IMAGE properties"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } image->pixel_format = sail_pixel_format_from_string(pixel_format); if (image->pixel_format == SAIL_PIXEL_FORMAT_UNKNOWN) { SAIL_LOG_ERROR("DUMP: Read image with unknown pixel format: '%s'", pixel_format); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } SAIL_LOG_DEBUG("DUMP: Image properties: %ux%u bytes_per_line(%u), pixel_format(%s)", image->width, image->height, image->bytes_per_line, sail_pixel_format_to_string(image->pixel_format)); return SAIL_OK; } static sail_status_t read_source_image(FILE *fptr, struct sail_image *image) { /* * BPP4-INDEXED UNKNOWN(chroma subsampling) NORMAL(orientation) NONE(compression) 1(interlaced) */ SAIL_TRY(sail_alloc_source_image(&image->source_image)); char pixel_format[64]; char chroma_subsampling[16]; char orientation[64]; char compression[64]; int interlaced; #ifdef _MSC_VER if (fscanf_s(fptr, "%s %s %s %s %d", pixel_format, (unsigned)sizeof(pixel_format), chroma_subsampling, (unsigned)sizeof(chroma_subsampling), orientation, (unsigned)sizeof(orientation), compression, (unsigned)sizeof(compression), &interlaced) != 5) { #else if (fscanf(fptr, "%s %s %s %s %d", pixel_format, chroma_subsampling, orientation, compression, &interlaced) != 5) { #endif SAIL_LOG_ERROR("DUMP: Failed to read SOURCE-IMAGE properties"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } image->source_image->pixel_format = sail_pixel_format_from_string(pixel_format); image->source_image->chroma_subsampling = sail_chroma_subsampling_from_string(chroma_subsampling); image->source_image->orientation = sail_orientation_from_string(orientation); image->source_image->compression = sail_compression_from_string(compression); image->source_image->interlaced = interlaced; SAIL_LOG_DEBUG("DUMP: Source image properties: pixel_format(%s), chroma_subsampling(%s), orientation(%s), compression(%s), interlaced(%s)", sail_pixel_format_to_string(image->source_image->pixel_format), sail_chroma_subsampling_to_string(image->source_image->chroma_subsampling), sail_orientation_to_string(image->source_image->orientation), sail_compression_to_string(image->source_image->compression), image->source_image->interlaced ? "yes" : "no"); return SAIL_OK; } static sail_status_t read_resolution(FILE *fptr, struct sail_image *image) { /* * 1 1 CENTIMETER */ SAIL_TRY(sail_alloc_resolution(&image->resolution)); char unit[32]; #ifdef _MSC_VER if (fscanf_s(fptr, "%lf %lf %s", &image->resolution->x, &image->resolution->y, unit, (unsigned)sizeof(unit)) != 3) { #else if (fscanf(fptr, "%lf %lf %s", &image->resolution->x, &image->resolution->y, unit) != 3) { #endif SAIL_LOG_ERROR("DUMP: Failed to read RESOLUTION properties"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } image->resolution->unit = sail_resolution_unit_from_string(unit); SAIL_LOG_DEBUG("DUMP: Resolution properties: %.1fx%.1f unit(%s)", image->resolution->x, image->resolution->y, unit); return SAIL_OK; } static sail_status_t read_animation(FILE *fptr, struct sail_image *image) { /* * 0(delay) */ #ifdef _MSC_VER if (fscanf_s(fptr, "%d", &image->delay) != 1) { #else if (fscanf(fptr, "%d", &image->delay) != 1) { #endif SAIL_LOG_ERROR("DUMP: Failed to read ANIMATED properties"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } SAIL_LOG_DEBUG("DUMP: Animated properties: delay(%d)", image->delay); return SAIL_OK; } static sail_status_t read_meta_data(FILE *fptr, struct sail_image *image) { /* * 2(number of entries) * Artist * noop (ignored) * STRING 144(data length) * 00 11 22... * UNKNOWN * Some Unknown Key * DATA 144(data length) * 00 11 22... */ struct sail_meta_data_node **last_meta_data_node = &image->meta_data_node; unsigned n_of_entries; #ifdef _MSC_VER if (fscanf_s(fptr, "%u%*[\r\n]", &n_of_entries) != 1) { #else if (fscanf(fptr, "%u%*[\r\n]", &n_of_entries) != 1) { #endif SAIL_LOG_ERROR("DUMP: Failed to read META-DATA number of entries"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } for (unsigned e = 0; e < n_of_entries; e++) { char key[32]; char key_unknown[256]; char type[16]; unsigned data_size; #ifdef _MSC_VER if (fscanf_s(fptr, "%[^\n]%*[\r\n]%[^\n]%*[\r\n]%s%u%*[\r\n]", key, (unsigned)sizeof(key), key_unknown, (unsigned)sizeof(key_unknown), type, (unsigned)sizeof(type), &data_size) != 4) { #else if (fscanf(fptr, "%[^\n]%*[\r\n]%[^\n]%*[\r\n]%s%u%*[\r\n]", key, key_unknown, type, &data_size) != 4) { #endif SAIL_LOG_ERROR("DUMP: Failed to read META-DATA properties"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } uint8_t *value; SAIL_TRY(read_hex(fptr, data_size, &value)); enum SailMetaData meta_data = sail_meta_data_from_string(key); enum SailVariantType variant_type; if (strcmp(type, "STRING") == 0) { variant_type = SAIL_VARIANT_TYPE_STRING; } else if (strcmp(type, "DATA") == 0) { variant_type = SAIL_VARIANT_TYPE_DATA; } else { SAIL_LOG_ERROR("DUMP: Unknown meta data type '%s'", type); SAIL_LOG_AND_RETURN(SAIL_ERROR_PARSE_FILE); } struct sail_meta_data_node *meta_data_node; SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_node(&meta_data_node), /* on error */ sail_free(value)); if (meta_data == SAIL_META_DATA_UNKNOWN) { SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_from_unknown_key(key_unknown, &meta_data_node->meta_data), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); SAIL_TRY_OR_CLEANUP(sail_alloc_variant(&meta_data_node->meta_data->value), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); if (variant_type == SAIL_VARIANT_TYPE_STRING) { SAIL_TRY_OR_CLEANUP(sail_set_variant_string(meta_data_node->meta_data->value, (const char *)value), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); } else { SAIL_TRY_OR_CLEANUP(sail_set_variant_data(meta_data_node->meta_data->value, value, data_size), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); } } else { SAIL_TRY_OR_CLEANUP(sail_alloc_meta_data_from_known_key(meta_data, &meta_data_node->meta_data), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); SAIL_TRY_OR_CLEANUP(sail_alloc_variant(&meta_data_node->meta_data->value), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); if (variant_type == SAIL_VARIANT_TYPE_STRING) { SAIL_TRY_OR_CLEANUP(sail_set_variant_string(meta_data_node->meta_data->value, (const char *)value), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); } else { SAIL_TRY_OR_CLEANUP(sail_set_variant_data(meta_data_node->meta_data->value, value, data_size), /* on error */ sail_destroy_meta_data_node(meta_data_node), sail_free(value)); } } *last_meta_data_node = meta_data_node; last_meta_data_node = &meta_data_node->next; sail_free(value); SAIL_LOG_DEBUG("DUMP: Meta data properties: key(%s) key_unknown(%s), type(%s), size(%u)", sail_meta_data_to_string(meta_data_node->meta_data->key), meta_data_node->meta_data->key_unknown, type, meta_data_node->meta_data->value->size); } return SAIL_OK; } static sail_status_t read_iccp(FILE *fptr, struct sail_image *image) { /* * 126(data length) * 00 11 22... * 00 11 22... */ unsigned data_size; #ifdef _MSC_VER if (fscanf_s(fptr, "%u%*[\r\n]", &data_size) != 1) { #else if (fscanf(fptr, "%u%*[\r\n]", &data_size) != 1) { #endif SAIL_LOG_ERROR("DUMP: Failed to read ICCP data length"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } uint8_t *value; SAIL_TRY(read_hex(fptr, data_size, &value)); SAIL_TRY_OR_CLEANUP(sail_alloc_iccp_from_data(value, data_size, &image->iccp), /* on error */ sail_free(value)); sail_free(value); SAIL_LOG_DEBUG("DUMP: ICCP properties: data_size(%u)", data_size); return SAIL_OK; } static sail_status_t read_palette(FILE *fptr, struct sail_image *image) { /* * BPP24-RGB 3(color count) 144(data length) * 00 11 22... */ unsigned data_size; unsigned color_count; char pixel_format[64]; #ifdef _MSC_VER if (fscanf_s(fptr, "%s%u%u%*[ \r\n]", pixel_format, (unsigned)sizeof(pixel_format), &color_count, &data_size) != 3) { #else if (fscanf(fptr, "%s%u%u%*[ \r\n]", pixel_format, &color_count, &data_size) != 3) { #endif SAIL_LOG_ERROR("DUMP: Failed to read PALETTE properties"); SAIL_LOG_AND_RETURN(SAIL_ERROR_READ_FILE); } uint8_t *value; SAIL_TRY(read_hex(fptr, data_size, &value)); enum SailPixelFormat pixel_format_enum = sail_pixel_format_from_string(pixel_format); if (pixel_format_enum == SAIL_PIXEL_FORMAT_UNKNOWN) { sail_free(value); SAIL_LOG_ERROR("DUMP: Read palette with unknown pixel format: '%s'", pixel_format); SAIL_LOG_AND_RETURN(SAIL_ERROR_BROKEN_IMAGE); } SAIL_TRY_OR_CLEANUP(sail_alloc_palette_from_data(pixel_format_enum, value, color_count, &image->palette), /* on error */ sail_free(value)); sail_free(value); SAIL_LOG_DEBUG("DUMP: Palette properties: pixel_format(%s), color_count(%u), data_size(%u)", sail_pixel_format_to_string(pixel_format_enum), color_count, data_size); return SAIL_OK; } static sail_status_t read_pixels(FILE *fptr, struct sail_image *image) { /* * 00 11 22... */ const unsigned data_size = image->bytes_per_line * image->height; uint8_t *value; SAIL_TRY(read_hex(fptr, data_size, &value)); image->pixels = value; SAIL_LOG_DEBUG("DUMP: Pixels properties: data_size(%u)", data_size); return SAIL_OK; } /* * Public functions. */ sail_status_t sail_read_dump(const char *path, struct sail_image *images[]) { SAIL_CHECK_PTR(path); /* To scanf dots in floats. */ setlocale(LC_NUMERIC, "C"); char *path_dump; SAIL_TRY(sail_concat(&path_dump, 2, path, ".dump")); SAIL_LOG_DEBUG("DUMP: Opening file '%s'", path_dump); #ifdef _MSC_VER FILE *fptr = _fsopen(path_dump, "r", _SH_DENYWR); #else FILE *fptr = fopen(path_dump, "r"); #endif if (fptr == NULL) { SAIL_LOG_ERROR("DUMP: Failed to open '%s'", path_dump); SAIL_LOG_AND_RETURN(SAIL_ERROR_OPEN_FILE); } struct sail_image *image_local = NULL; size_t current_image = 0; /* For reading categories: IMAGE, PALETTE etc. */ char buffer[32]; #ifdef _MSC_VER while (fscanf_s(fptr, "%[^\n]%*[\r\n]", buffer, (unsigned)sizeof(buffer)) == 1) { #else while (fscanf(fptr, "%[^\n]%*[\r\n]", buffer) == 1) { #endif SAIL_LOG_DEBUG("DUMP: Found category '%s'", buffer); if (strcmp(buffer, "IMAGE") == 0) { if (image_local != NULL) { images[current_image] = image_local; images[current_image+1] = NULL; current_image++; } SAIL_TRY(sail_alloc_image(&image_local)); SAIL_TRY(read_image(fptr, image_local)); } else if (strcmp(buffer, "SOURCE-IMAGE") == 0) { SAIL_TRY(read_source_image(fptr, image_local)); } else if (strcmp(buffer, "RESOLUTION") == 0) { SAIL_TRY(read_resolution(fptr, image_local)); } else if (strcmp(buffer, "ANIMATION") == 0) { SAIL_TRY(read_animation(fptr, image_local)); } else if (strcmp(buffer, "META-DATA") == 0) { SAIL_TRY(read_meta_data(fptr, image_local)); } else if (strcmp(buffer, "ICCP") == 0) { SAIL_TRY(read_iccp(fptr, image_local)); } else if (strcmp(buffer, "PALETTE") == 0) { SAIL_TRY(read_palette(fptr, image_local)); } else if (strcmp(buffer, "PIXELS") == 0) { SAIL_TRY(read_pixels(fptr, image_local)); } else { SAIL_LOG_ERROR("DUMP: Unknown category '%s'", buffer); SAIL_LOG_AND_RETURN(SAIL_ERROR_PARSE_FILE); } /* Skip two line breaks. */ skip_whitespaces(fptr); } /* Save the last loaded image. */ images[current_image] = image_local; images[current_image+1] = NULL; fclose(fptr); return SAIL_OK; } sail_status_t sail_dump(const struct sail_image *image) { SAIL_TRY(sail_check_image_valid(image)); /* To print dots in floats. */ setlocale(LC_NUMERIC, "C"); printf("IMAGE\n%u %u %u %s\n\n", image->width, image->height, image->bytes_per_line, sail_pixel_format_to_string(image->pixel_format)); if (image->source_image != NULL) { printf("SOURCE-IMAGE\n%s %s %s %s %d\n\n", sail_pixel_format_to_string(image->source_image->pixel_format), sail_chroma_subsampling_to_string(image->source_image->chroma_subsampling), sail_orientation_to_string(image->source_image->orientation), sail_compression_to_string(image->source_image->compression), image->source_image->interlaced); } if (image->resolution != NULL) { printf("RESOLUTION\n%f %f %s\n\n", image->resolution->x, image->resolution->y, sail_resolution_unit_to_string(image->resolution->unit)); } { printf("ANIMATION\n%d\n\n", image->delay); } { unsigned meta_data_count = 0; for (const struct sail_meta_data_node *meta_data_node = image->meta_data_node; meta_data_node != NULL; meta_data_node = meta_data_node->next) { meta_data_count++; } if (meta_data_count > 0) { printf("META-DATA\n%d\n", meta_data_count); for (const struct sail_meta_data_node *meta_data_node = image->meta_data_node; meta_data_node != NULL; meta_data_node = meta_data_node->next) { const struct sail_meta_data *meta_data = meta_data_node->meta_data; printf("%s\n", sail_meta_data_to_string(meta_data->key)); printf("%s\n", meta_data->key_unknown == NULL ? "noop" : meta_data->key_unknown); const char *type_str = NULL; switch (meta_data->value->type) { case SAIL_VARIANT_TYPE_STRING: type_str = "STRING"; break; case SAIL_VARIANT_TYPE_DATA: type_str = "DATA"; break; default: { SAIL_LOG_ERROR("DUMP: Unknown meta data value type #%d", meta_data->value->type); SAIL_LOG_AND_RETURN(SAIL_ERROR_INVALID_ARGUMENT); } } printf("%s %u\n", type_str, (unsigned)meta_data->value->size); SAIL_TRY(print_hex(meta_data->value->value, meta_data->value->size)); } printf("\n"); } } if (image->iccp != NULL) { printf("ICCP\n%lu\n", (unsigned long)image->iccp->size); SAIL_TRY(print_hex(image->iccp->data, image->iccp->size)); printf("\n"); } if (image->palette != NULL) { unsigned palette_size = sail_bytes_per_line(image->palette->color_count, image->palette->pixel_format); printf("PALETTE\n%s %u %u\n", sail_pixel_format_to_string(image->palette->pixel_format), image->palette->color_count, palette_size); SAIL_TRY(print_hex(image->palette->data, palette_size)); printf("\n"); } { printf("PIXELS\n"); const unsigned pixels_size = image->bytes_per_line * image->height; SAIL_TRY(print_hex(image->pixels, pixels_size)); printf("\n"); } return SAIL_OK; } sail-0.9.8/tests/sail-dump/sail-dump.h000066400000000000000000000030511475535176100175760ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SAIL_DUMP_H #define SAIL_DUMP_H #include #include /* * Reads a dump file from path + ".dump". */ SAIL_EXPORT sail_status_t sail_read_dump(const char *path, struct sail_image *images[]); /* * Prints the image dump. */ SAIL_EXPORT sail_status_t sail_dump(const struct sail_image *image); #endif sail-0.9.8/tests/sail-manip/000077500000000000000000000000001475535176100156725ustar00rootroot00000000000000sail-0.9.8/tests/sail-manip/CMakeLists.txt000066400000000000000000000001271475535176100204320ustar00rootroot00000000000000sail_test(TARGET closest-conversion SOURCES closest-conversion.c LINK sail sail-manip) sail-0.9.8/tests/sail-manip/closest-conversion.c000066400000000000000000000135061475535176100217020ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include #include "munit.h" static MunitResult test_best_conversion_grayscale(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP24_RGB }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE); } { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE); } { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP1_INDEXED, SAIL_PIXEL_FORMAT_BPP2_INDEXED }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_UNKNOWN); } return MUNIT_OK; } static MunitResult test_best_conversion_indexed(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP24_RGB, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP8_INDEXED, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP24_RGB); } { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP24_RGB }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP1_INDEXED, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP24_RGB); } { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP1_INDEXED, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE); } return MUNIT_OK; } static MunitResult test_best_conversion_rgb(const MunitParameter params[], void *user_data) { (void)params; (void)user_data; { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP32_RGBA, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP24_RGB, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP32_RGBA); } { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP32_RGBA }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP24_RGB, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP32_RGBA); } { const enum SailPixelFormat pixel_formats[] = { SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE, SAIL_PIXEL_FORMAT_BPP16_GRAYSCALE }; const size_t pixel_formats_length = sizeof(pixel_formats) / sizeof(pixel_formats[0]); munit_assert_int(sail_closest_pixel_format(SAIL_PIXEL_FORMAT_BPP24_RGB, pixel_formats, pixel_formats_length), ==, SAIL_PIXEL_FORMAT_BPP8_GRAYSCALE); } return MUNIT_OK; } static MunitTest test_suite_tests[] = { { (char *)"/grayscale", test_best_conversion_grayscale, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/indexed", test_best_conversion_indexed, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { (char *)"/rgb", test_best_conversion_rgb, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/best-conversion", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); } sail-0.9.8/tests/sail/000077500000000000000000000000001475535176100145705ustar00rootroot00000000000000sail-0.9.8/tests/sail/CMakeLists.txt000066400000000000000000000001451475535176100173300ustar00rootroot00000000000000sail_test(TARGET io-produce-same-images SOURCES io-produce-same-images.c LINK sail sail-comparators) sail-0.9.8/tests/sail/io-produce-same-images.c000066400000000000000000000061471475535176100212000ustar00rootroot00000000000000/* This file is part of SAIL (https://github.com/HappySeaFox/sail) Copyright (c) 2020-2021 Dmitry Baryshev The MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include #include #include "sail-comparators.h" #include "munit.h" #include "test-images.h" static MunitResult test_io_produce_same_images(const MunitParameter params[], void *user_data) { (void)user_data; const char *path = munit_parameters_get(params, "path"); struct sail_image *image_file = NULL; munit_assert(sail_load_from_file(path, &image_file) == SAIL_OK); munit_assert_not_null(image_file); void *data; size_t data_size; munit_assert(sail_alloc_data_from_file_contents(path, &data, &data_size) == SAIL_OK); munit_assert_not_null(data); munit_assert(data_size > 0); /* Codec info for loading from memory. */ const struct sail_codec_info *codec_info; munit_assert(sail_codec_info_from_path(path, &codec_info) == SAIL_OK); void *state; munit_assert(sail_start_loading_from_memory(data, data_size, codec_info, &state) == SAIL_OK); struct sail_image *image_mem = NULL; munit_assert(sail_load_next_frame(state, &image_mem) == SAIL_OK); munit_assert_not_null(image_mem); munit_assert(sail_stop_loading(state) == SAIL_OK); munit_assert(sail_test_compare_images(image_file, image_mem) == SAIL_OK); sail_free(data); sail_destroy_image(image_mem); sail_destroy_image(image_file); return MUNIT_OK; } static MunitParameterEnum test_params[] = { { (char *)"path", (char **)SAIL_TEST_IMAGES }, { NULL, NULL }, }; static MunitTest test_suite_tests[] = { { (char *)"/io-produce-same-images", test_io_produce_same_images, NULL, NULL, MUNIT_TEST_OPTION_NONE, test_params }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; static const MunitSuite test_suite = { (char *)"/io-produce-same-images", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE }; int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) { return munit_suite_main(&test_suite, NULL, argc, argv); }

)?C)?L^i L&-Â$9.cC!$p$C傊&sh r%FD;ʊ``DQ4x#dhc`BUHQb*MaHfZ)ZoH L+.,|cI5*c.o>+iVV[v0toɒGNT 1%=M ¬$X" Jn`n@VJ`5? ɝSX6~`7jTONjFU@e^KsvrvpVv=lL(Mf!O0P'JOjsO#wD[/ U[?P$DBn%'78uju@b\6APzۢ- W&!oLFK@&JB0& oʺ;!lP&nVQCnOFJdG?t+dFo`dNo TIcJiva6$i1&T ӗ0m~7nwٮ+tGM֒pxjqnlkkko%6H 2""9cJ@ttxX6RsVGR)Y }o7m7Em0b_1(d|.^ 3^kvvr"Kg QgihRѲQ֓!gL r,wavioL'1>4d=$SCD;e>ejo]]@{` .yUN5Ddfm:D}}UΧ@5, lܢ DgP5xLNFN4f)Me^P 5O2)I+IG+GF. t2%s,1u\1$qf?F l0NYy+pFonI3'&`M()8:4'!V"^f!,Eu@TAT!ڪXV'xI T}vf`dCV=HF  E 2)q1[ф cPH- {gluLGg'*I++Un7T\**w_,-.88 &2Ddt.pJC@Dhyܯ44 :NjlGIqlBl& ~ -¡gVlN!ɇfi/Sipp+MQ0SZi5 ¥mx9;{:VkM&58("Hy:SQɘmƩooSѧ68(T"p*H0C{َnGgI/*evD{ZıDm6;1]3&Дi…xW. 4v2,\ib9mbz ` L n  ?%d9E\^}EDCA l0 %]ꢰ|sK~*L& iC)[+d{DEEd MP`FHF6|1֡z)gC+gMY S§GXḯ&eg(R"yBũA%$6QxG@JǓ@sbX|+8*+J|[s GCȼVc 9e֯^7D,'/N /<<3=i)pncU&ԅ&B9^?B\ڢx] ! ӝ BdJ:twEn=;ms]y "hA ؄!=vpϬZɛ: ꈛk&I ldjdiMb+p 5*p$ЯѰ$/ vK4o*!"JfA XPƬ2dHD2e#TQjIyW¹ʕ?~(* P_Z>j .Аq 63s|Msc5f8%pqA׭]n֣[ZUTW/,X(% *稒#cSˀe, @q$z$"-d" ԗ@RD /P+A_(WU)#!e#۠,qRGP@ VxkZk/&}B@(?? 5\r%Y\H" N1"6"cO8V&=b=:c(? ӎ>O+Q$Cc-DbـGsf ezjyY^f ؝@@ i&d*Yh}Pa}K) 4P%ΒB 5P?Ld2:|@W~I)@+)@9`COIhGY4RTf}RE5Heyb ^e&fRX営}m T[t%b%Ydů G"٘e渗5kOql`TBp ؜ѽ stI, j3ÑG}^(; Rz#(}_~ls0 8ps 2>ff?{"W2eXP #k{ԣPqr(H0?Lvf DRJC+M-8"DSzɼdo;AOtT9HV>ǸXÉ"u$Ur.YK*s`*bH+tt"3, Si,݊N,l SJD.)-cq@wY8YD0" ʐA袀pW[&i.[zI-m)JR%.M#Y2=hŢQ8o-Ϟӛ^f=~J$#PFQ<$5?+R"@X9a.7E0,BD) EaHC!e(9J =T֏S4aNJ 5S_rSDu(T=a9eGz#ꑭqT8C Pp#Jl|?.HR(#lbZU;)^E?,5ujvԌ,<p-N?Ls^++`{k'nC#Vv`aX/RM J,T܍q2uK$sE7 3]. Ҽ̕.Sjf#w̉XQߌ̟wSkriUS$Hr9! 8$䫰Pѫ ?4F"tN Y +Xei!|j#齙/*IHDTo[\A%;_N>%&Gك5gW;U $#4e 2Wf'@ kg?Ԡ'9310Y)x(HI.zV-v?f'KR)W"?R6DHkW [U]f(Fy-"L+غe袓e_CM(F;%w&Irn'ŔF~ˠI2SLwnNѩNѿtjyCdN*`? a Wa @W9K#506!sV-b2){acItSc_R0N[;tA5Q6.$dMBedt5GXMulT۲Z79D6a7jdgD"WG&j&0\DgR |j P ehvi,"&4g `!Eg` jNrQFvzeCdՂ+6G%GuL9!v%t^J$=$l sq6+>$C?¨JR~9xM'S%>JH'r^(҃7?_ƣNR >q@H !pّ`%V tJ\3QߨCuj)h(l!SG_N(=%$>.9%*tF'FgO5tJgs?cNnr0K&cQN-PrBS RVSE`9EMgjwQPUQ WVQr3huuxAA2g]EASqp1N! "U6!R(R1W+gSZ}-f*g CJCAo^'Bt@8T p'mR|2"QJaϕ[1c\b:"c]+")#E;~b%ŤS(LoR)~ Y)PЁ!!spCqxOdJ"-he(%8bsQci?;-ɒG&(=Xq:Jh.2%Pq95<5Xh' TE1EGmD1PT ġuRGSr-&ix 1*2A2j} /`xrvh!F2ZHY)?ag@ke$n!7'd#:pb6lf6!RJ#̦|8!|x#ét#YR$LJ]Jœn;2NN)9eR 3 O%P)+`ۓٓNY8lanAe.5fQR4_-{s M/TdSS. exBT8(A`עP EeѕK%X^;jD!EE~2^E^EFWWoDGҴ0և58EÎwٰz7CxPd6CE1IT5?C$QH 5)v_e#sAsA"$eV2;]8Q8!6#2m;V77L4vcl62$ӜVL"K*B{H<`*igZ  Y>u(B$"" ZAQK\#8lV#Nfcc.RƒTT 7J0%E j&\Xġmv piq1('ەەt84,f 3n4& "j 6dNWrjdSڵDj=tfivZ%0z[o$%c!1z%ee{"?$,3##3QҨ|zc 9[#vS\/b{u%˨9:8AK6\L7(,dj(a6z2ɰ1eoSUtvWɱ %U;Fx4Fd*4qFptaQng٤'9s'B֯yG\C\V%C^+BOWB)S/Ua%2TC툥o XV-˒NPVqt,͏0LaAxnaQbB-/H]-]ܢU)YBj3z66Zk5{e׿?S?Fm6ztTlQ =ucnC5R4,zCߖk+2RK>I|;$LV();TROЃgZxf8ppLT LMFޤÑۑ z~{.^ `KRb#K$e"?;6҂H.ys;('.S$jIݻC_?DH%ZDgS7:9GhE⁤fe F 35}HiIo [΂!qCa/CQ@i!}q6nC). N)wIHD4-??X1j7 Bji^3lR[t,AТ--aH7/?\}  ːR"/M}+%0ڋ+B%ٰaǎ=o~[WlFcwRsBLI>LHSc=Z/d넎bsT)Κ>^R+̪VbFd{aq}{yd5伃{ $ @~aO{5 O*1<mA AQ?P(Pȣ#C2$ hDλ@%8GHHdȡdp {r10Hp2ZwȮ*1@4S A5BSM|S6;Pa@C@lp@@< "( ,#LPDI%&j!1/S$PP{aָ)(GX%% ep6a)J l J2)?J [ V7%J_8k,LBL+CY,8Mf%WPƸ5QFsqE/ތ3I9XQb`}&{ɻOhϽPygmCYyF{  :<>PEc@ ;nޞ 5G9ਡ2&ap ʡ1IxtaJjs$ `X#x0|(T6tͿO%SSMAO@0$d?  4A,u H{UǣӠFHG,҈bҎD2/7oOj ו5 z`EaHJO~TdA+)X 4HUFPG, E ԕE.ʋĵ)\J˼ˆ^*#tï_$v杂J1{@F@T! `$(hB芉 >a&,dj7:BdHD.`5{<E(BH@ K8?Gb*_sR@2П6s*@7M!6)CT U.#'F NvB9dRH:_uK9"4>FgBlOB!t~L"*ID:Rq`t5Ӧ4M|UުhlԌRiQvlRGӥN4w&P\l;OAIۢN|bA=$PtiwzS< ]v*ZK!MHv6:48{ihg?"#b* 6u?|8KPLxt!a( &ϥ,Q!N'l*{2a9^L4vIO:֤43aݫe~fiR+:5Q%ʀieB~p:!#A[Ol$ՓYjĔ`zrԠ$0 V|bo|v!P"6@y9Q'>AQ>Mc]G=(/1;)[&z0.ᔴ?Y ?9-KA3CQ8wR?A0 0??q8 4/A, ((${21(T Z )]x6 1Z@ b& Bm9`2긒`;@u (w;"!:". 48!. &3 %" 24X TY`_IUPӁ]+!95QBYȁT$5]S>C>꓾#K>뛁囄;H0g$%jC?˶~:?,,ا #j?ɭZ@ʃ7(V31)%ԉ5,:=S/>9%S-6,Ii{x3rRF9Cƒʹh [;Wq3琌Ԉ"+$ ! `i KÖ P# I$@ :`;j:, yirDJ:\:s֙DBHɛɘ(E"ڈP=\rb]]tS*&ɜLMF#6`Ӿ˾>r,GtLu |a ?6ArK6B-h +AD-kl'牞 ?I{G{,|QxJY 8),)`{@%腔Qu @8XP}0,0CIQ\W~3%?=!,B'!i0!H )B"b2Cš2(k>:<:/x y>M9}Ӳ;>eVzS@tx Z% ILa<$L8(P>K$=~#iFA䤜\5b FKdt,-c;^,-d3cdM_+G=>--6OSrzzO%8CztO?i{,.;LՒ % \1S9O+ #) jߘWzA8(K=8E>XOEPER U!#ѢJgq-d$NdZuNeȽ]ݑg4#`%6"ŏe"IHH,Vc][>6^Lӫ@^ӧ-0,G񏟔O,kSGxf}vP 8  HXJ|8)Xa`/SM 눸^X{;G7IEx޸y>QYV)AY 3A; Z>@VqBUbu܉Z#mK2 CӸ/Yc2yS|Sqa)S0ސmc C)c 8PXX(⠕#]\&];Jj 5kjjd -X noJCόLDYz8l/,w܇Y8(u:`+Mغ)0ikі;ϦΈ S2 = 6=UN7L;dB,ጱ  `_9Ԙcf 80[`"D=n"ɒ5H?S"Ϛ8qH8Ti,=s_%+DNpT2VuZZPP,yDO:Y lݾJ2(]mJ /`T#  `@c (/2* -S]`4CIJ֝)8@ 1m,cʄ Ȕ)`8J|Qc; BP{ݶ" !@b O?'omT+f ! y!h|矀 ~V!m(b!m(alxE$@H!IF* hn5J)#$,ۀ Q@D#SJ/#a}xtlIզؗ d AǛ[df '|ـaڵ[D0(h 'fP PCsAt@FiJjG}:()\o, kQN;ēNAQLP Pm1;K%E9"mY L%@ɮ\@1Pʒn^r@EF_;Zc@f90eXK-pimqh\U蝩 ;(rU2thc$rX )Xm酹byx}YG_^| Xua-aV#afum@3 "X,#b,i;$)96L:H)R2?w9[ކ~ws"d& X4:_׀m[fth 3Ǖ {"n4pDa-wnxGt<$2Ommd*sfI׳ýB_EH%W{$ @lQ2l[e[@Mϵ E(vVTYX]Ŭ^R(`:0rLcc'`  ֯I&2qh"vQ3lC#oTFf|l9yt(}; X`O&.GfC5f@} fjplh*ЃD MHBJ!yHDN$)"yU\eŮeB@v"~~ۤJ`D(*ػ 슓ytJ>.1цt~"jI7.xJsˆf !f e( Q"! ]fI#e'"YD"IHj"eU*ς.Y8hH8QR +-&X?@& ::E Ud0< 蘀y6K)*M4%ia US6^ni֥,9BNJ*J#aY( 3l6,rZLl, wW E=ށ,B#-Rma '&7O]ۤ6@gFc%j!ĸIr^RLD51I8-PFQ*G*xt6׆! !Xm26y&TqU/"H (*y$zt<-Y)#%kˀ1Y!I,rO((2@)i •tA? ##C.I˕G_+xHg6g1lbؤ[a@C10qRNDpv%g: x<`ͣc>&6-OjFAH)dZ'mP򊵝 v?b{;H a-W.CgdE(!adQ'!_Lv";hKi%ۭ=q3җќt-zN%]l3nI\8s0Qn@dQxc[چ&M]7m鮌TXAGE98OPO %5AxE,ЋPt9P"AV% #%xD)%j,;no }GFD-i)'b@AcR_uBEHh]Sz ; X'XnNUH3<h]0 ֯U`S-ZiIABٓy)\A̛< @Q\m]cƋn1F<AAY qFkTZ)ևt NdG9_ֵJgDj8ek݀͘iU iSe%VP\ uMA!"tQ`b &؀U`)إ`j")h)+BhRLJ xRoŢyNomIa`DE5/Jm eHn%xe׋8 )x޸u_cC.A"?Ԁ`  @? +# @#?x? ~@E @?;~C)DǙz%AQZ@E^X˹SAm[|ͅ vM\dP稔 P` iVl2Π$U@Hk ]!]\1QŴFS:eilѽ\(xQрY^؀M!ZH)]Q  & xI_UmiEW)1&4&'ALfRlI)^UL ),ɘp.bjzQ 4QWf卪Bt]2zal!2%5:'2v 7 GxOp'yZ)̣ ~@(l"{Af)| }Ľ OTS@8@l8&6 ,+U RɶX̑&Y i(`M  UўbIBݏ"TVԌ؍Epqi<fPA% ɝ)Uȍ*Mwl_ג"|Sx$5_Ԍ[\zLR`숖@XAR0R*TЖAʚ#lr?pj蘙QFea5. Ύ&lv[Ijk٥ܼH5BOn_E Z?X9d8'4WAާ#& #G]uπ D/qDf`RM XzmbfhB`ilƾtx+lw0uH) Z<5 O Ol)]^ִM,c,GDke~mڒ)W1tFL[gĐ ՙn}N "8ID‘Ǣgh51!Ɨ eKcu YM v%ubW b)JP0ĞWE K CTC0‚1'z0 g6f$z(XA&z=96?j}h/' qVgTU #0H/N3AD5_ǖhxUiBPLhi8KLcd|rE_58_VzYVY +^`bp$s2dťTm_"]Lzqfk,팧;di" jK.u@'yJb*b,"m-;q`ƶpi9?j tG' jtuq?@r3@&:ĤUvX7dog\B~?B+ۗ 7#DA߉HD^^e s`b^gNb FFV{1L \7I|hYĸŰeS˷&x|WjcGs<{ @)pq@pF<2u e^Ãѕ VejYsX *ޱڱTX(pǠ 0?!*`?hd0Hĉ$йxQaÑ@$̖Z$)&/cJrșA"hhRK F Yk5ΰ-_kp 2p`@^i<M/^4OoVd:w9+;_uE3NY^ (I]QDX(T9Za\B  Ppe P@L;P'P1=ol o &tO>ȺvakHE%\|Q xEF3ءzn+l@#AEh$HTP+!9 Ýt01J N,ϨZ N>WS<[HȨl#:t49zBRGh(8njJ>:jSR Ή(] V+, { ' g`- d1/ .FcpAo=̳Z8ƕd͵R(l+|{+Cha8樊, Z`iX8$h'?;`O r`d92 /?D=#AQF3uFB9ɘq%RDF&qFZl%a+#!Gr'd@4ҁ$?.0)x:\/*5']tq˳:(Py+QQ j蟆2!#$;H!"ԏ` vRȿV؝*==UyHc-/Ww[q]|^*v:v.M64d}6mך-d "6*;Dqx/ɖE W&/5?f'#Jg8 B1P*k.dN}Rw IM:vt%e~ 궴G Xbq24MWҜ4\D9"D.:jF(+dCXe9Z@\)_J9)f%:CĴ H '$z৯ssN; gB"I#kӤT"=Xd#SB|(QXtD( >™3 mhBU.a-*4%ŎxǭpGYIQm'xM!'%JG60Ct'@幤4,ex()Ok"xdi:ӓτv|tp:aNiÆ(HLg O?DEF!|Qe?" _bb}jXq'XFzزF>:Zj%Y(7XZ B&'9-E2&9["%$67l$6?4 ddCѬ&OVͲLYhI=rBk'9yDotT7U(qo$& @=8"~nFeĹ[m3#7 rRE*Ygei'+ \"Ra&4\pHs`ʔD2e+ MP=GI^i)# B9Ʊ.>̋='VBhe?|rDhBK)np % ("V?wcsȱjPB{00,i'Ki8IҤi3@X7`oqt_DFB*YLsrәf'_8#ddw RͫڴW\w SxNZLb3^I'3dֽ6j>nulc+LOZB}7"H8$>eY_gいdPFD&R$3@[H/m1rτBf04V hh&lSchc e bs ' ##>X D,hp((^~iڼw*EpXJX#Ej~cʎj8rnE't??tdIJnoJD ?dL$iȃL(48-v"!1eF8$CDFd\ TN\ DVDPBNeuhcux-vaX` "+%"@vn܄wr PxDۖ Vmxb>:\i'X10ſ~gJEڱ2+ Aȏ0E}} +&n'c.48R,JLnJ pLktGW:LhN!8d CcsLC$ੰ%D薦f:!+xf+d4'dȮ9vD&& (Ef'fUV%"swMLҸ*mdA0(=0+2K'/?2ba/vu,brf8,R8#h&ƦEtr-t>u.LBKB`OhsTh>trtӼ/3Mv0CkkSrܤ%+u:b@cC(pH -~g "?&u/Xb! `JJ'sN"+ B-UGxvId.ԭ.6YZvխ~ *18 9CX+15rWwG*wG422(c',+[s=Ǒ ,C/YX8V ]e- ] R_` .`QvǬ9c 9%f#>XDEMW$y>Nui;L(ˮNHck(+vT _GlxGHQ$KJ/rPJ>GJMT?cA8AiɴL g jqj$+6M<:I4E/T$Q+8omMI``o &@,0&-`BP}s'2@-V}VZ`:(M$ (g3xTTIIB@.04..X `A. ڏ]۵;ctWW9vbYE%Le+6h'Lyow.Ԣ“gGЕrWB|w^-P e(cB1SN\KqvNVC7%#d%]N\@b t8BeEf,Ǵ"}`'LdYBd9jO6:܎#>'ќ.h>ggd4kT Btx@,M1Mj@~L'/]Ԏ8e;R"u>tT#`28lswFC¿N0}2\82f/v_5s-(2s# ;d(xbbZ6ǔD(,N6*}N8ʭxG!lɔDA,>}imɊ(i˔@CT9é֊XG-=?aVܨI<.` V'6͘-(J-Y ~R~@<}=[.!:.4veӘqSi͌k'+|mKDgv j.Bկ~Cm'%Yww=yIA=ғoXu=Eq^%Lw%j- A{# 0 З!YJHqΨo.&+yY!xݨ Xg&jN6,^hRۨ+ڈ*]dw)(@g.J#o{>.1{gYfr*i}.=jҥM-.q4Ny0Gf'xx/OQj..P"" .xH^w`?" c!6+*WdRL& XR '"*ܷtС  I)8UQ#!NJö^֊,G?RsKHj.[ڍٲd_uխ+J$Mqޕ H6,!Cڵ1 M 8%ϝcԫTGETHC::IRPP@vo@50p8` ?1 >߄UCJe' Rb:@y#9ŊXס*"*`!:R"?W|!FGdC—PB?HQ{[nNTid8q$@+o?dWv? ( @i4]@ EDhADcZDTPE /$zj^[JHSPFIt ~LADGTtFZZPapĤZ׭acQĤث?^GIX鑗e- vFv7<`(H 6~1܅bU{xwG:XGD%_ȵB `ЂV3hD~*]_UZU]RXـ xc/":&uӼ"=L 8щ+nePVy␋ᥒ\8Xv+GTR9'j?zMI&)B QhU@AbU-Z$qĒi \f TF*uq]ˏGeGjaҗ uxLBB=&oy|L\"`v^Բ/8,[ cԋ^|l7 #vH5, (R" g+T\fxx䬻nQT" gNcRDVEnqL\*7%$-sW.+E@|c"R8"Ddvr)E @R1-^Ni< wZ.+[2M=뙘F?0` [&K`y.*eNJ/}iC- w  syY>`~6̥-ӃϹNv]O"e˶PI„D"| \v+\£Vd& $,PՒ׬p TK8G(Q aE8N)RAJuFp,g'o@抳'"A\Z 1@etЃ62)p P6TH>s@"9E'Jlϰj8G>򑉌d$%OR.I&%#l|@I$#t`l, ` ym^)̆,'Cr(anRy7-K!J4/{)1#b~|0 JW;a+H{|+d'Dd~8s#h0]ZL`% Œ >w)o%/=)I%(N R0pX,F+?G&5pƥɜv* @<Mꎒ}RuHB"ѲصiQ&E?e՜&mE*P"U*٠Dw+ #qӊƷIac!YI"nr'%NRɳHA9φLM$ <@%vrB̅,j:Z;2 v#A6 FZCmY/&/0\@*b! )21YbG]0agȦ6eDT|wU"e`"F u26@SLqf+:ȃFd f!JD4"w"uXy#5s7'7a8hzHP48Y$DYF8%ex%xZ&y凕%{)$ky(r\JBLO*0c'%q {qՔ2|݃|!.sLsm*2DMWO:f-#1*8]* 6^aR^dB'-Vn5Bv"+p( >*7_A`S/ =em%({!R!g(R!ޑ0rUCӐ[f@.lVAu.AL8K!l6'W>7#wGm##2"$Rgv"Xs#-“dhXh(xF$gxn(IEBiI]2iׇEO$ @Jb4)-<<)'zS- s~{D{(+vB{mm1({{YM=w@+*bl~#+:'ӘB$(@pc`Bu}؈JR PRnӛ3eA `Q : (EcJ !s ;4uXgbH!2$J& !0%E.->F DA:F$لVhg#"THYW4L47CH.#? ʅAG~$ÆJIQ8k(%E%%i4y#Z0~MrZk)# 1L3z7ó:=~v**1?S06&+ц0#أ='*0MX#&Oq0+coaA4ha)tMb~4@4a_b-Jr)Y77c}:7qX(ʛZ>J T@&WC2?!3X,aXr4aIU<B86AF"6d+ 73rgx$"p/Yg#pghH8:H9xY%$kXIhJiUIi[v(y(&'jai)h[8lDfQuRٴ{J,Q]%mJZMF=ݦ4~aQjmezao%ƣ'|w.tyM 3Qj T(! ꢍx 1(ZQ,Сc61JPCtKAáđccGdځ١QJꩬF`WH8u]Fʄs7xUg d1\" y"8KH=-bڮ $H iC$YvuZcbMi\akkf?E[#)x_'0*\Cw*O*mh0 ]km9x~zXjP7+cLX"eJ0*d<oL`'ud$ /u?.DB9K*^n3%b#~(&~@  RSA xs >dfh ,d&QTށO&8uZFi!#9#Yvp\w+ygJ3i3$D@hQw$SBB47Eȃ8s"w=#qU sBZM;^xb(5?W) KeX0.NJRQR%._0ل])] FP4A0Q0ؑݡK$`h hl#9Wse5:y6"Wrl7|8d iDShd$mRD2C$Np K4bH% #K J{Key PӖ*m~nv+RјPJ}%kM&m{!0-/5Amwэ"?HZPb@ke$x0O 7=_*'_~2A,JX,&Sr?12CD,1COͶ:/%_;48:eCx ZCML 5PQqU632&s2QDKV5:sB$jt1K$yyj$[h<(S''+|*bL)ۦ.}CoSmmp0\vzMM*fkp_,Pv,A͒1,kkZ⧨e'+VD/??A&aVC b1>1^ >CSwc-孪80YfJt4U91!9M8}TDDR!Uw/R8 B'@@h _rIM2).MbdHvETqdA6 @&tF,TC[2)z_)2jB[:,Jym[3:-{=g{3+ n]B|H{xIs{}'l0ڝ mc>-8k?US|b\VJr\`$ ?v ¸{aQ_)0qMSy1@et C!h/2;UCPC sy`2- D2DKR%BV>|p{-2녲͔`$`FN3U[:(S+9茛E.\cH.ccϿ[ /)0ֈQI0Bg ck`ȭ#pS\# @2#wTr2/&r"̻$u,I%*H  /$V|9=M*x 2lROH-? ;l(HMI3K1L-* kWea骫`ZSqTYWEIHI$]"^?(t V[˯l U0R1u:h`؅64+/2 g4Sj&ƅ r|"& njd"as<1hgO~C5 )<*T#kK8"0e+@61\/b6xYd$C̄o3I!?rIwT")G=JUO<'*t ݚLґ|NAdi:A擀TV@I'vDBH=U-u*8dʙfbrR$SR߮D"ya!e73,1Y^"?/ƒ"ZA0%"bε.u-5RLC?f`2^`hG7ѐ4&Xð+ƥK Ӟ,c1)d3?B)PS%>,gbVEW05 NĠ0JMc6%Ysz9Q&K/%cPlfdHH@)H@܎W5)FPtDȒATPd#RKnIs+ @ :9M&ժ 'T:5U42GA # m'a{cKRj!f72m3{[9Ŝ1HKv6M+N+AK=B @?/(J520\?0bc(ȈP|Fȗ2`FX` ajFW"Nwp*h=wc1f5!CgKljU15hQ+@أ&}UjZc Q.sqWBՊ*b!`\![|HAVrU8#M;*% ywCT>NS~]Kg3/aP\ANܓEb@G59P[Rho5¨#DS 6a"M벘o @!DMriXB2+#˫U5~5w!Pnqk(WJS6l;5((!E ̄ p]WRx jƣj2ٌG;bX H P91 Ŋ [hXDxE[/s (#pcbti|;; J lF+0?r$KSRP9ӱԩ~)G##y9Ta)yq H5K+ڟk{dък<£A6lBP fDBWQ6^ )61C,6iDA9T C#|QDKRݚE褶d)̘ˑP[DXÜ#S3d 3QE=dX'ʹHUi$ u `( 70!c7?@`N݁sTo( vz@|"T\*ȦSAX2̚Q Pj٧wR`W%j:;Z$&,&,2ä `U&F,($Lc$ HJl'Q)9;%Yf Ӳ؃ 3Q PDJ31+YԃRXsL &Hq˵4-0˾2Х-;QZq q‘NYPYi|S M\ED 73Ld\ڼ+(ԨT)R*@N8tNȍ0Vc"[T N\O"#\X22`+)kGiGim;b4 M]n@q% JW?#I,P$נt,9^\-(y*6U:<κCWr =_JAd1+LҜ.ǑL%4K H4'u5Pė- .RO jۉ Z02MZUeDy 0X` [dDeǍ7y 6ay)TF;R( 3?:2[ΛYG\V ta.OE*')8֗\,"'SV"HmOcց!q5's5u$#ɦXTI"uQ=* 5*`yQ ;J;E 0L4CV<]6=KB$!-H)€<\1,ْrRDXlbOZNYSu a{DaZ^2]s X Z?EATCT:ּŰðF6;6C 0rRSw`8 @kJAOT #ԙ`eϝ4vڹ Y󹠃3OӽE-F Phݻ = 4c 6PPjQ:դli4™^*6 dI;48X;ɞQSQ)N+,]Ku8lݒf/Kj,Bi }5(UH ,`:+QቴKXL &MB4Y`0)+?ӋB= Xnha|+F h @hF͠cɨ (⎂hr:*9(萆G`^Ui.5H*\#rkxdj\^p ߋnŮ:6P^FD+䑠ؤd`k[$S0e4IQ4WÉ9,/9>5*tM ,l6Ch(1EQ3s4.'2 O`. y:mM_뛓[7r5#<@!Fh4LhnG6o "Vնh:x"F.chb#(v>f^UF$oCqU/i'c:mbd:oP!L^7bQt݈P_|$D5aB!ؓ_53d. BͪQSSr*NS&[{ 'XdjתG!Ŷ&mNa? SV5w}\BW~u{f]eYLF\~hGy^ ӭ$0Ր l!M(nsMcYNb2lM֙P֝ d—\(CdL$ Iы2 JB0GA6 (l%YC.R5IQkUYؤTkHZBdV趵ف+ &)FMN ܌pR$p9)t"݉ ^a&t2;\`h}LyJ.&T25KSaC|ţ/doI±d H_eI#7 G"ڊJQD׋_P:NXy')NLRT#t8&N,VɈ`vt,1ɞUyoR{ԣhWR<)D%:K@ P%*B[]=ԥ5 oZ{]>o1LcElui&c;O^}m`Wo(d/v`)- a擆US"\ XQr/ "Ī7=-&3jxx>;>jQ Q[5wh/9W͐}؈YMQXQ?d$lI$-#99V`%ͬ%j!D JҌq]Rq DGN1DBajMRί]޽WH0!nPp)TPu @a mE)BсF|͡{1W y8osQ Q6,="C1PeK%)NYTQ5Dh, 9&R@֩0FB 0Qą,DfUQEX|34%Ip_a6\ߔXUX ͝_QdҨLi`,!ɘ@zdَ(Mq)ؐiaJݢlң-ĩ|VJCʬHT<qd(@a䵨.a95ʡ}a=r?(!ZTQC|"Ci$q&zɎ (aeeL"+E5c-"5<!h3D|ܟU3JTM) IC($܌QWI6`HAQ I(p%c xDiR )HL$`1,!ZNNx߉C$bɊ"LE'A}r}$Qef %<(QnP\-FgFHJȒfd(MGeb[L4ØeWjb&V"q"$AUb^eX|T|$ߋg jyJ`M1f"}Ċa͇4 ՜db1IdHSL#iy׸lfWQP)\4WYܰl*nnPT p#Yr'r",YP*rR(y+hYDqlJ0x6ASƠ JVUPETHPrԧL"@B}K"OŲvR:(hAB@eel яXƄ- qeCn:deu}em*k*hD]V"IhC,*"^*`_DL<&RACǞD3v܋ ADLDM ʏY#W}l.IX̬lif LXZ`-8M]?#BT-e@jETJeE,N褄F͘GY_`5Vb*'yfjP7 EJCF(GLFQ79@jeʁ肒fƂZBbK^C\CDe_FD NW%& .T񝨋BChh%C=)Q쐥+YDE*lu^ƭRi^ZH)Uie_b")LIgkl4cXM)4 -)XY0m␉$ B\NmlJ-"vXyeҦ%pe͂Ї, !,C4a' }JtHnAU:n^1n.+` _lf|.4..XDه-%F$c^b1lL殌BbkR߄A C$[V_h$W~-ؑTL%Ag/P}|D1l06e3ou+T/Tl)WMaꍓQM1c)-݇ZBpvq9tRt* k~e2(iM]$"FfJ-Ă.y0q=JQӦeUPoKpR&q.DkFw045DYUc6^B_M׮Lh˘hLeYXhN";L&;o}G&n;{mU/DC1I|Ǟo]u%eDHX#0۲f̵xXe-#+I]؄ YY^AIAjQBa60D(3CxmnqΛXӌ`4e6NqDyRh$nJRdo1F`WBjt_we4Fnw[.g6CdϜl2R5Ԉ߉+UCE Cu;h nbUr$%S;8)~'T LYl)1f2|&}5IfiʊgFtz̮j \/1II],3%uMP6hsvM{yUB°! W*N*-\-L*\/!ঐgwyRDVd90&aPH"t387.[vu5e3&OQHcL_fI:%hhj|Tu%^O^ؕG$'¨ =r"Vb+tZ7&cU_ij[ #ɺo2ɕ2uO;|1`0`LВ6bB0Ehe\hWD B-[836ٞ z: El[{kg!ndC}tʟ ?qQq`:wCY.TB$D7}xC@=~ ҄B$8"DrMzc1(a\C,޵m(8=Xëh;/ q%9$;v/O>Cl|@)y GNƅri\߻WQ04h٬ٻ|Ρc8"|2֦B`*$[|U[@@J7C*`] <'μ-I}}|u<,Y,mnsJ-rp]i|B_JQlk(@(p@ "t‚ #hbE t0oAM&4Y!C 8b6yͿGj Ν0)npTJ+40sN9t-7*sӗ: 5SǺ 7۱KvUfݱRlPSXS)f,7K}*NJ{Vl3<:Z&ض{4gҿgҞ;'7M@N_Go9tӧ`gGA8pJ_??H&'9a+$ H*0>hLж ,B*&% %&DBBaE2È"Gb< 񙑞E1҈  HH3. 4)jҭ T'FĄ6* (b+*Dجz2&*L$̂,@DfErfdD#-|h1`BluB*-*B*EMt"l.cТmnh&$xD/sJ/ SMHQ&KMhpV*-`Ln@b*phBIhCC3 40-T$09ꨬtsr'L87OtgXb LOG=ˇ,|)мjH⚮=? &\I\Q-Fİ 2IeDxEE)DI<M˄vLHxFZhDsHn쾋0o`+321D$%nb',O,nPXM OĂ )K*.& '[(3s##Ur3PT 1"~3$=%ЮJR,RȊ[ g2h&%"Ȏl;%]#d lfl@Ĭ̳,1Q%oZqB2-EDC@-+"2L&HYJTq1b2~(If-005"1yp#&:b! INr"'L֦iV$*b*@'%c@dĤJ6KFn(BR؆Mh؊sl2E5F`B0p6G 0P 8s R"Gs~3˔j(;sj&sS +3 LH5'}o=]nV,Vc8ttcі7$z^"o~L傕B˧˚>q~D~ O~&,+ -CU[7DUDIK F<,O=,(E/mmGIaGh{F`-@ CUmcB 6.h2mHdabQvNas ӱ912Qb +,xpq*.9) <e:h(%"2|"M61N$WUI'al y#'{2VE{B$%W-Ʊ YIZe +;+X[QXpSQHC "[ D . "7r+pQ\f$C'%L D4fE^D>( #󋓑r23uDVBY4c9%ڣk\MdAqVVUhM:)*BpώC~B%q0#TFV' A,<1%Z'5X2ZBe&13-X\ƐNXz<8 QF@)2Ka I \iwDIA)r!r,B\U(tϞQq=v+Dvyk^/5 ՟ b:T8wnx;x0j!E:M0EMڠ&9qlؗ'O%SP6e1RXmR-NOoMģ7-"oJhse'29U쮚B%grTQRT3og3Vj;>)+nˮ9)E*n%QXoX5-7rY‡} y[i#2@CPeD-;Hjɡkf gN#n" h,%&4VN|'n%$ROD;Ħg܂1 -D/h8fN3 "OsJ|;0{cbĴɊim4_I[7v9[ek&>b 8SyţT .`ϥcۈ,jK8aP@rv0T乢^:Q6o p17j꘹jOl_Q5\;/)3J#|U=3N$ïb{X|ܧ?@lgϯ4٣\ur]۹ŽA+.!n|%]ȹgaF*Ef\[f~}^o۶q_{hbdH1O?/e%+ ",P|Ej/Vs"1(dt@0<"B-7LKJb$d-o"%7տT/R} -j]Ŷ6٭E"!X%3`( 38bA/^sa &ZD`ƃb7!ddž JNhD^H"G3R.Y M4iߥ6aB W*\!­Y5akXa;4;ZYv;`Cxʍ!`&h߁B+  $851oQ8 =0`j.`` 7@ڴ=>p͆#GN} pƌ񬦳[:AG{?OW︳|Ϧ ]Ot{ (~`G`}v?!ԕ`Zi[jt?ux_V @UBXPe5DeF.V8A!C!EU %J1dKN=NCŕSNLUOT,Bc՜vBYiDBVZo'Xlv_%^x9?&Ԥvn,ibUEV^gۭai6v]w)gg[s=Wѽf\ݭ\\ކ?amY+NZj\rfzfkax}'`ЉgY)A ah\`0x$0L $AG<&Mtdq$ iuP(TfR!%S4%%N75S7)SPESSMIA+AhWn VZ QhVuh\66vPF̍v AKm͊}h|djtŶbUypaܭa-j1v9ݲv/]Q~rso`ۥogYW3$WRʗ*# &19sΛgRñ+?[Rχ._3tWhZ׮9LO"^8C5izsW*y1δ|!qt[G8կmTצih uԈu!S3iMZ;R+|f"B/V|* (ئl/Ԭ) ;)Xk8|BBD"c?bj ?7!1Ih&[dž=S2d (,7XkքL24B+d]a'Yw2,ylZOu\;,3pG+O9I -8})Bd0aPu_9ύy.TwBXvRR 3E[CXqP]/}2QS[DI c\Jt V w511x=VKV1'1#1iR?yGrf1shfF0th$MtAB%o'dV4FdTRM&[5%5^esȧgY6qG pe6r]pagD5M!QBQsQw :QG;_'"5G!B_GW]#-r7*TT/VG'u1xa'AT#)Xa0# ÁNHh7P$p2E!.y_w(bx!,G"wgG8*bVD<ff+`Gx=ivgEOksI/U1X'72'+1 S>4@X!=rbR>Xyvm# ?A򖄆5%T"p@7YB!NEcAOTds}5T'shW&gq|XƆO'q_Sfl6P~hͩ}%"3*@i"kC>B2T!81CY֓@D! 퓀!fB'=qP=g̨DPlU!1TΙ8yh0im8(2ɢ?莛Lq$L}LG4zpaX cIYi6Q0Qd36&L"W`e[N!NǗu39B)fpG )1o2]ѓki3Sse1ҝ6*bycx)RHFsE)EYsh.n܆2hIBv ѨJE/(QBa:WD0/(Q*/1jX}CawŪ#8x犭  zL@ !@t&?QCS11Q50Za{Ykqa#eYpH)$(|FPOZI)U} B2Ы$BTѨw=*7頾K *l!2v+r"Q4@g1DV1hVJR4YTKd'Rb3+a ؕu!IwǺriqJXf1)r"2>Wk"h<#F$ QpyfApOԤO=dT &@%g3ʐ԰qYn8qeezeЧ"$o6v{$hxءLI~v"YaF2xHXp/F"!"<in0u c`뽗N'>PD[LP'kpS$Tq(<.[շ &/ &K?IWÇ!Y#bh5*?HW!/?Xѵ:C@0$ZJ:1+ FӅ4z 45%q{鞶ץGWeZt|4qt uN^R9lPh 1Kx x+'(_/ gu9t_ձv Hzɀ׸1fiem#yqpsIHFȺHϢ %Q2XjPe*irN]j|]ɴNtptqnr)j`a%}CUG°a={,;L@j1l  qG1*ɂѸ"rbQva,T"s`R~4v"I$!p+٧K=Kh'19C@MN,C< ׺ٚOB1$)Qچ'KuZksj!OMqxrsa$H*PܣX'_2]h0z 3F0 u؍kf~qBQKdJh<.R؜+ȕxx9r,ldI)y٠`2)V~M4JVvh2y$)K$Q3cZB,$,MBϬ{h¤A鋂qpM"W_z$t{ШUqss|s*vw\җ#q+!UDR+.͖˩  L\s"c=mpP{c- w8P!rzk%T~Dh_D;C403tE胴kW~TKmm3L1؊K9@ +obzٵ)zU;wc\ZeLB7`ɓXۜV>^P;"2/eAWZq^@G/X' ,8q 5n̈Q# VXdI PM&4rcH56љCL~*IўzrPA]Z ϋ{[Pkט# jNj$1RŃgά ܺGc˻r~'ӱs2%[8ḦgD wpFH;O΍x]x)\99aMh[n1֢ŸW x]НL׹ 1VQctĵkpB+(px '~< E͟O!zNDyj?{4<$"*0 ɪj#hi8䐧'کJrcqFkFsqG{F}|aHP-wPS\aȮ;b{\i|zS.\'bx~6Hu(gh'l7/^#ۡYr|]+^0}l)U@\O'NX0~/wjDddƓ\)&Ѻ'ŒnN2Z:B>aȂMXF؁%v ]O 3NpqM`"D)ԷYk>>(I4WD1#㨠aucJ=F cFL־!w/ddHfӈ<(q#﫚q:Y'3IhRt9lE]h=AI=]dFtyQ=G:YQ`e36RֱʼnpK 6uQd]b~L!c&2H" w_XE Q߻[>^#E'P~lQ>d*Ҋb859. )Õ2eN7RP\9u)?,ok* EnHȕT; @ D) x,XG?j̙Lzrϭ3LrZQ^q,J!<1m> ^+;)#Fإt#R>J\BHǀeͨfGNշr\< TUF3>؆Wɟ5&-mWvcuYE'# P8Cd?<,8qlMNQ59pOUɖwh^0 {dbZjWхfuNR^VXbCH\1%Z_m]whڈe̓j a;=dbtGiG,+rHI齥jAyY譂xPLPYTmJwDغϒZTwT[{eܕeV?N^Q$̪ۜviօ^a,|N;ItҊnF$UŭteiqHk6&̴žtsU?$!w|W\ڒpQNۦ~sɄmڎgF0TO[zA.EשܙnѠ٧cPaI5Sڌn^[[\g[>xNS1+WcFT`b|lkdwǙۍ\ʊT6ձ}Ebӗs~NwYHm9~ӓiPGO7ﲄ߄Mڗ궒ҍb5$(tĎp@5OOOߵ켞߂\dddtttۻ[[[6BVU0K9wq>@ޯHSR%i *\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳh&7P ӷܡU˷߿ LXmzFO#O 3DEETϝPң,Ju[>C w_%ڃrwR*\`Gt 7vG{&b=&=TWOמ^ fU< ?ij[8xFOfkv})A7P;qKvZ?@"}؟]֢TVT.0A!O-@]xh>9"9Pr<7iv&fh& =?hN. 璎Y}A*ЇFh`z]i,Y"yA"%9@"\.eq;aӊ2k 8P.y)QV@=N?ѦdىsZTrR=?`d[*,S)͚Ejgٮ);CiѲ)p;6+׭m26O`jZwXkQJ휕"(}4bKVW&ՁsW "*Pw݇cOq>aunqӏ=4Tۦ<bJxNvGP ~-Np38\P"7@ g=P^|Vbúyt4?zm~:DnAp.+@Hw䩂xyp0 p ,U~P8"%:Tr?YaPJ> "H"HL&:PH*ZX̢.z` H2hL6p8@x̣> IBL"F:򑐌$'IJZ&7Nz (GIRL*WV򕰌,gIZ2ȥ.w^ 0IbL2f:Ќ4IjZ̦6yq !~2rcf"1[]9oJ(݉*x4Qzq9͛Rf2}‚O~?}^'oQ<Ȯz c@$mӰ .jac3S׺0(]bA.ݓR4)5Vx^G"Ȕ;k֔Crj=P,w䧨3Ү%t-o{gxWSmq/%upRz\z}?Xv:{zXam2!'rVwT'q76vfV5fǃ=aZc9W`u^%Az\e# _8ktcXc{W 3W{(2m֨{؃HQhr&g|h;i|V}["hx5x=v?1~gx>cdxzEĈ=a]xK!6#Pph8tGGd{ .ztxRjvUA}AGh[ghXŇɷqFQ=wxz(6c;hv8;9c}xcmXN((tX8TE]ȑ\FO(h?!mAcsh~s(d_ɇ>a]i]i`?haHIq|vx!Hagh_!׀zz8xSm'GvWir75])pйk6MZ~BzGU`%XM?\\xg ɋ)YT"FgdFaiYE!ikΘD8Sg *4`9Q6 Hc,g*z% 8x'*fGჽ)>U鍆wxUz`ɠ XpBauɸ)iyHOp^UPo<9ll  0Y`IiyT_8yVǝriyGSȧ|ꧻs5yA:9)3Y8;qHGc%Ț!ZMQ48aù *; ڙ 6'<198%镒A't])XI dYXZlp(f`*f({ -јDʇ<Kت$WJxַ az~g,՘hx>8Xe].:c4;`Yٙ }X%mM˚z<`vފF ]jhbaf:ڦip,0]۵PX:I J4ř9{46yVJq8 !& paet򘱶 wkٱ(4}8)ѯ:~Z46CaC^= oٳJ!6\]Afzgzļsjkzww^:eyW/)Yk+`iwK@fȇ舚qcՔ_q|A跼;Jyؾ{8c m++=cc1ˊ ;N|]aJ`Z]z;!ˋl t*AfY2z+)PxÚŃ/Z.:f*;ڠˣ{ C|"j| J)Ը?!xaxT)7xh4Wjwx닜\ ꫬ;1;"(l R,AUY }}*$|{ʍ{;+zpU-vm΅aozEyhlGYǬ WzMHc, } =OИ,юG@5 o]<JܻŽݟNǛ'~$$Pk^*-=#PļIZ4SkؤdڽH ؠX Nkxfg[]v=.xb3~l܏ t]Ryw &f j䂍Zљ9+ ]ͬQFݘ=af{X P(.8@'-]lB<@],xԋ-Լ>Iξ:ጰ}`^b[]aN2^w쀜>H8z  <ɧk؀Ц}L^`^yNᖮĤ' 8&^njSK.<}oX,ryK6羮<*K>! 77 .0\nބ7@c~(e.qL|}{}}W=.F -PX ޖaS61nusHljK7?ⷌ^NK!^_Yۿ 2< /ьe-^?H.MTݹ7|7gw<>A?BY0^hQoD0,osc?Je oڵ`ِHY7; ߥo))!T  i8?J8BƋ=Z/@Y -C|LBZ? ={P;-! 2<ʔS3 f1kV5݊Ul0ʃk؉kd,Mu;Qݽc֬WM ~{X׼{*uTRyE?Aĩ`ќK6MDZÜSŒРD{mέq7ŋ; tH x΄!qLh1Խg`B;_ą1ܢqϿ_07keԯ1Ză\@ XZPy/32ь)ȀJCD C0Bq0N*ڪĴqF1G(G?2.⊱˩!, ),.̰Jd%pPSM AI D<hB7݄F"A(NO9 .!K:$ n<:H="S#Տ?M5$4I@1oH-!(̣"$0Ȣ<C 0a 2*L:T$ +P<+pEWZƶƒ+Wɪ5sij'(Ҳ 3.+]{pK$3M,HXz#4Kz7[8m7cN)Z!ԋN>밣9O;K1D iVW"f׫Lǐ07ZWCr"L&m+Bf_[\'8k&}!G6m0eWb 1sNʊ攫̀SaOL=D0jv$EL?l&;7\$}3i<ƣyjQBH:CV* *2 OeQ\RLAj XIm, QҖ6ynmPA Ck)Eߺ帺%Edab ‰Ж9׌8Ę(0 ~ "ǴW\жsLife'A4yeBd&N'kW;S05-nLl2Ԧ>2yfQQYTǢ5>2#5~DZ'"T5bYD"&N5ִ ]Vtd~2I Ø ?e_Q:psd1apS &:N-&45ODƄ:񭴋P;(#FG~ʰYu DRJD8\GQwr3pyATC (BZU~h;ϭ OR.IQl _~n>S!40Uu̦SGmTw ݂d R{\zP1Ru\@_B,R ZNQImj4)xeRVt55XX\xwIe\Am*EҢsYcYQޑ&Kz utب=0O}Njf$jM]TZ{c]׺uN ζΫMLx'sn}WYfvic2c,-rjWYQqTĔeTRU।f=t6hy y!MdJw{k7SYt,huƩ;Z<]Fl)CKAr>4d}5!OԷ d%dH:h2rIi2K1*G&?D)g~ 3\wyj0Gf KzyHwaiC=4~{ؚ&w~/6, W~ (yL0hs a]K]k8T Aѐacyzӏ}=.ZF\a„) 6mw5=n98miM={s?{p'7[7oYT|5>CSSN4= 8X-*ӦYrx֫m!'p4Nk>.9&N <~ <|*? !n*ۉ6/㦱c)4:S>B*SC>5K1;1# ʲ,J1[;аa66B:ՂE1[-c ER)E b ˿DLD󿔘4v8=(s̩2M4 3w77;S$A[{tA{뻽6S_dA`dbyrA+ocn?Cl+?Yf3Bs p9߻4h 5hs)s-L5 ;n |$5Kct0pY@:,t ۳=LKB-j?˿,=NZ=tJ< @r[)dlH̄{sKEIꪆQ}3y#5duDxr r7z !|āM,brt05#ax8457t9\t mt>JQ(7"CKúGʲL396GKaxNqCC$|pHCr=>ٱ9MM+ND?:I+]Kp ˕Lb^^]֭Y3}Ozُxy;Y?la+YW Y}iKi)e6nH9, )WHac mGW}Z_t@]Q05OXU_Geѯ̱V9[Z=Qg_ _RP7VRKM="-{s^`Lco` . F7uDCXHW(よ5XxfiFag P1 eafaag|r ]NE".i܎B=3ZazK}Y߽/%;{lfOW@Wpne5H8:Vr\ȉ->U@nG:_KIe(QK0UߙH_pHLc%55BZ[Uv~[&u|[K \` 4 ]>wf:iT3I 纆q^Xs΄]dgX6cgpwV3ͮ)Ǯ.]$5]S@ snfc/>\2FsnckfHFގ|h446ʨDA)N3aԸ^.ukjNPBm؞s텎M%}WmWS nm`WeƁdJyn~IdH.AMߜcd j5DM[=pK_t7o|f`櫞WxUM`]Nuق8pN~fV˴kriv W`_r2q&rkpa)(rxX76oOx &qopn }aw6ma^mEefn;r,ꂧҙ;fx4n5osm7x8tQs>GHu@7yCodzUSRZJtIуKWouZ[^FUuU[S'DW'D,fKcRceW Zwa2w ?{Oif{g6gg?`k7q{Xn<>0vp^|p#׋s!raOU\q.orahz?mҶAw{ivR润zN*z.=4&s*S6'ͅdLTZr~=^U_L幗d>iHfu(`NGߒOїN6XZ_LgSvyJ= A=IH Ap߀{ )XͿ/)CZW1eZ,i2?9IŊ3VΞYBz\iSLQeѪFJ $ذbǒٮjfIHa ,X'w4Wo_7"!!ς]ȯ_R51RTJi̖.UcP)&c S$N3sl)V'Ȱ~CQdƋW goȼtKW89+;&qv<II#?IH! M8x&z|zء ^$64uue\HࠠFE-tF+RE!dJE$?D qSLFP֔Rn= SZM%Ut6TMWf5V]sT']$[~\w`]|%\R8!l9dFH]Ʃf}اZŦVk]JTn"eOUBy+4nƅ$K`%'ְt3HZ Eͱ`x}xേz'_|·^"58~ .;!.;3`zŽ&^n!^w&&ԐIau,2tH I\F*G!' wRnN$n,d[Be*`:ٕf&eWVv4ZL5ӗUyW{NyՀ"2`#gXhclW4 ILI4bQ橩_I *Red8J;6LLkLJ.L{K 9Bm| x:3Rh%+IId_H:O߷;|3X".Nz7R RE=QNG\}RK!|,ǼSAQɔmjslV!1Til2@Y4`njP5kh<(¯qmlWۚLh ,-Th J&RNSKQSJSAPeUE[`QN DqWRJ+S4W9irK4gj$ƒ 2:<+$ЂS-Յuһ3 U(y9Byox`yW EB }0xHD`Nd'S>8'csIR"y+uY,shIQX|iMa & )g1pAEdI4 ImV iA)497,"H6Ú{næMC <Wxf!Z(" eRQAHԈTjuіa,wU29GH҂RYxK'nؚ]9>SmN=y K~cp'~@*?iP* k^&wDxa)8IRsiYKX2c%pH ˎvej9^& %34kLSO3$nc9'زF&1AnB f?zm6Bikld!K&ְ Fg @dWg_RR*:Xpsե-A"ҋQ:e,%\QRoxJeJNusN;e=|H^|x r{SPv{NA ¢YEB#Ot\eVl^L׻L K2%O6"YcXUcX>yӄ^; cjF8k]v坳U!XZzZӶGZ~kYq#M8Gy,Pfɴܟu5)n!/˫J΍!i" g%`}KS/\((? CӻP%gL6XI99pQI^0le.Azۃvnl%bY" YŢ;=v?`[ Nb^S '}/Y,ٚC+Td9Rղl"Ym ,1v̛ sn|7yodu( 4&)y,%ş+rПXtn~s&| =F92z_ʜ^zәiׁ[:z`}ddhHD.@ :&& zI>ĞJBuބO;]~g/M-颣tN4S`$蠽D||H`aǾf3Y|4o0WmrX[5oyˎR! Y+Akg5*G9C?cEOHME߼и O `@]xNXVnlpwmɧ=yo'1ҥH,#&J)f/[%`&7&on7z#mfIHf7&Jc[e[8!izV>@C>!gn&g:)Fl gifCj措c`c"vc2 Ff24[a5a&#tJ1|ߟduFgu*vJgXMM؄yڰX'"02OmOd\]Vr%W]5bDMB&h h.&ih)ti!d!%_i2hG n$E &aE f(tc6&Xh^6a8?dC k^?h!D!ثh#+Xik;,ŽTtIA3A9dfb?(7ivc/0ovdX,k-+`~±##JiMŸhVVNK؁Q H$̝h>]j³,ChB.&hٚ[2!-t˲iZI+mo&&쌥), BƨrĂEfg(C3̫kEޫhREXgF#DnP`hX%)'$[L)Xnk2ƸeÆEeJf%.~cq,,n4n4i)XiG‰rEv?,vjt-Ά%N6B(8e|h]Qz"e&)R G-$mB{(Zmmz]]Xv$¬21h&J-ܺeX,hB2 %C6+ְjChȖh9jd/<kkƫHk8kVIk.0n;6)?< n2Σnᮽi߱"kXA8)9#/^,.&gv h^I$C '%#,)i̞tZg"m"dW}gVz՗I$Sn*~䯩X ۩N30ԭW+_r"<(b0%*&)'c '2$C!$ 0;;;WFFo-*+.FnHD.&^+ ++4G0'>A&# =6FcX^vY텄C?Jcfϫ+q8Hl@7C!ˮO%lpR"gHHB'D'D(&0*v֪.CH,CuX'v/~-ep TK-ŋ>%ȵUGo1X22\3,1,|XO(pk!l:w8{Jjޖfi/+;v%suH /Q_!E3PH4Cv@Is@kB _q%4rkBP!H?CqHT4XpX=cu3Kqy#!DjH4q!r rH41?0q#k'QO$)Gvi #hI녃ن/Xo*Y?X/9uѪN(£Rه0{/I*EcK0dCc1?hd-s:gI BTrp3xkv/Ń7rv?6+oC.n붹& l$?x t ntx=>'F 7'cty7X!\z8!Į̳X\:Ku+oIcv}HpHh:JW ??/7X _2ٌšqS!^~&5a0UH0OʰEJ1w*UM 5IӤWMe]5ѿe a-6P؜*3 7m#!7O=Nݯ!6+?OGT(Aǒ#B( A`0?r# 1E#蟇hp>1lb( `(D>jBԫpi)K)[lYNt7: +ͬ4y+eiKM"RRHIȳ1R d;.Pt5J(4dNի i5RN![F IcdNz:IzvZ+ Q é" Wr1MhC#,w[! )C:AX@@x4!gG Ez"6!ią!i#s~Jƻ^l V )Vrḡxcڭ֒Mjք9˯FH?ㆳ#}bQuElnYÓ48D#e^ҢTq;kUܼ5qbu cު5al5a([|JFXbsHecvWn'i]=fR>jow/!؏L@vKMW!7_ >sǰO!^*qLh$呢]g/ɓ2NIGN/2^ecHQgΡ2t)ġU~9-- ؄9I.wZ_|m S6B1bU6l"30֨.-x#,BU&pK[YU֪Bl[3Xs 3:.'cK:=u .P2H =B ߶vj$wZ%<- a $0G=t% W7O!T6dʿKȇ`7`Lp lWbr>f(ʘhiY_3 ;F7gdH1aNsM! Ӗ4)5kl&5NJ-lo+;*SCqg;f2 F(k0e%SWޤERFiIX1q[ڊabqhB1 QaQWMkbp5w$ucGL#d{A2W V%15tޙHxjkK'%zɯ r{+CwLG#:*$yHP]}ec.~[uɂnZ.&3h.ufʼn2V}mmәN '4R;U΄ "hp.2eCr _C&4q#%F<\c d;L$;hNKn"Ū)Ĺgao+b*4sdDg+u.)ZԢ 5x2@.%.13ZճjW*V̧weoַ ^Xy%2ed$/2E&e+FW6ygXbzXٖ?V1A>zL YժVu(5g؂q`9 6!Ři:[Th1 nL$7aI[ŷPM*$2")LJĄ+Qfl & ;pW!vÊ]QM\;8Esc|q;Fs3թNmmgc\?\[ʖ d4GV&UV1D.wyaļ`"$wWNHί"Ag¡YHQ Pc>c2<7,HxX FhC$گr(*痹603ms5 r>l3H%4N*M9k\C sԕ"9Vn]nX!mRx_w1@1jFۦ)P`)E2`*~iU4c?3p thc-jGvlmB:e80 sYyr>CY^,9 5$p>'{{X5) fI /8~\.3$ vCae&ͪDJPI ~n΄ΨšB0ir-꤮P7K,&L(!k>NbOBt2l+ c.şb.7tMDpb++pmnUȌzc > y*., !쬍H>LpZPd̢d"``,!"-@RN!ђA ,A +" !`Rm@!1 /D 4Θ4K1!G PaPAźJͼApNQQOs.JЊ (oѤAnV~C.x^к\/d0OfhDpH0EPRMlQNe2S,e/:JNa- 0ؼȋNȧzc 8m[Y̺Jms"R.!Bޯ1:6qѯ{=Hq-JV.Y1" r0nI- ꫸סYQ!)NŘpNe0 9,,',s4 bʸpaKJh9k\952enf-4mF"smHP8O5T@ 3-*1feU^逫 m 2o|3'G p P6 6W\!B]g^I;D3OJޯ")@BEoFmJi "e"4/!^"4!2Jc/D.R/EI,a?zLMw[!o tOA631P_S  1 p)'|Є+8m8#2B^0U:a-23N<1$O4,=ݳޤOb 98r,Z5p@( {2AyA 3QB\] *ĪN Q++ϔo11FkG daY2./IH9dJeC8K)BE` z ,qRIHe90DbaUb4_ڀF},BQQ#tQRij@q3.6'3*Q?(9CTUQUU!B:h#EFV&o.C1ȆoY".do q@Yl pp 9? t[þ6PRBu]vDq]]4o1I.1yEbeddNzGwa  ._/HzgRITcQ}Ev>8V!8CtW!|7Hf7! 7JT~/X}oAdu4[RRp /58c "sS󅗵L"7f l"V&"ogU"Ո!*EГ!\P؞v 6lU8 -Q[ {R[հ[AjvQB]o7k7uIS]!9x,y_I+q_ v1d9ɑ )" ΂ XT!r{ӗg2YJ4w40g!!!|~7!!!|!Bmd wwKvN3Pm#UkRx?˜Y1hx u &kx8$K/k#&Wq5ЮkDpwThqӂZ.% M9sq7ZujZ%QkijQMثl7!j QWvw_x^!7z!EzGaŒ{KK } XI.}HWQ.7]vy[Cj7)YsYB^Z-YLw^yQiA7wӱ&eC l,1(4ƞqo6S2 C;ΈxZck|?[!xo/WsS7'ۣs@WWvQMj[CZv]4xywڨ^!dse{1-¾{i{ܲ-.Qy҂":mb)b`Z⚙:WY}W}Gb ;_{zw8i)i댄S 鐵$W>Z0Uo;q4*% eS!=w I>Y 4wra2}|"k{37c"{B֤/[kx/a˛:zr_1YreEגaG;yLbWaYX}­3Z+q}}`ݷġݓG!bEuEKV}+tXi)T97yۃ3 YI7/]0SHnHnn(n<=Al20 95v>;'& ќ"k95'=Л1ޛo6p isuIƙR?B=kiУ=eѻ'+/F!nfn.T!!xƗ!C|Aׯ>~+}=I|z0}[t+7+[}|䙛؄9o++rC51 !W34F;opB;=V=mn^Rak$ۓ1|-UcRU/0CzKz 6+v}ƭ{ЛҗzzӾ)}۾鍴gZW]>8R/HjO܈c_kϴiߡH 4(= @ 0?"ЄF j?~8PH '1$Cg\QEEG|tcw$q]Afv.)L)Ss1H6TR%BuYSSIEgR=Vuaia[n~ו~5[g Zf BM7iu@ɴ_VI(SxQRPp7ysMԤ5DSq8ISOMWرdJJEH>IRQ%„/¦|.@xMA>TPvW$V rO D̶ #ķߚ8AHQxcc{u ݬ*$w١G-=ԓ:MQPU~lkZ1SZjTV]d@fHv#\Etm&䜉T%Mn5h4\զ@5 _[m [1p7?@\NN+LFGav&t zkLXRn@L$" W?.Jc [35N%Z OZO!'$*9FE/WOaFRuGpGm?1ܿK=يtړvQp6W喏fu%4I>MoVꄗgo1΢6 ,+8P"oZLvh&4-z?lq7oDDpTP}B 'iS/d,@̚մjd<+U; MC#uŋ]BTpDb=y9ĊE2$0"R9-$ F,`>`Tv*eX`=1-6@&*`AҘf|Z8䌜usLg #3ICnUPl[L@jifZ6d YrLjW#Ņڬ'U4z #BG T$. 9PR {FETJv*B|10V#JjUbU)v؄dXrekjEcR\HePJr#H0-41Qb2(wFV-:p^] ASSH@䯱<C#<᝱C6Z\bWm+"m$F Wjxmʋq|n(qU|N7խj?Z@ʀÕ5:;a ]A%a{]s#/+ET)*" 3aZfGPrzdJ'hOLS'2sfiW8lAjG i=$ h|kNU jXi;TZR}w ]]^ȓ_퀓3v> : {۸E}[$q/'[ W(+8@)ZHS u]b^E<뮘Rp y,a^ 9~E0׆h?~K/j MBv-3yRW&7?yQHfd)YHײ=LY3oؐ3Ku6?R 'p xjO6"5EuvSH&tekbtgG7xbp+6"a;`y@fm4VV.vЦU]r bƒTsc{wAgrgḊ^#Bk"7|7nS9|szZ_~.`'"prWvFw?UCE!@XuDŽj05"% װr !Hw)(T fw0oƃUUwnUE;XuT/afbvT#6dp Cfy T#  6b&'=Ep舕<ʶnG`UF@gFwQI6"P38yX0nES9<ؒň=h 9]`qIwX;Efآ(eV:v%k @7gfR6A7` a0 a` a19Gs%(2)#(`?s[%$ssz&qLuK"XP+/—-Xe,defyoypwmycW`+TBEo&nyT b#Df"&bKZ]  b"Y V„!U&3НT`G8xr0r` wNE!zDG m<m$;&pk_\5a 3WdUfygI)yI}-*I!2{ kr~r|"~A m'DK<q5%dI#7aS6-h"!\-C%[ [`g 7RA-<ۥ5JU-^Ƃ ^-^2GvwUT坖go^U"+bydɑ搑i#"99% a *pJwVnGۆTZEju kPVڠ m:VB/pzoGJ!b  c aIS@7jb V}cx qKE|PT9|m9!C #+E"Zp1Zg F ]OtqBCQ2)yh`QH$sCRg)9D 9%-e^/"_fbeS-8wboYU)xzfa*ʫzȊ{؊ΊxkZ#) ] W'&ˑa>F@;P Tǔjšk ka*W@+ kS%a(< SIvpAA  b DR9pk0JJR ,RU_"1Rb,2I7[dژAFRa8s) N1Ü9h `ˀ@TM~jm%r;u[@AZq1ވ 1uA^/f# /jz4GئTvWHƞZֻ"6깝ZkxZ,ȱ+#Vjkp`Vj VIUᙹ@&i, &* %%P&5ḍpלv1RbPέT *2)I7cc*R"A,ʀ cj czrA < E m_R.B HU;ȵ@q`3 pB , /, ¨=<=|8J2tը?LKaCR,T,_.qZ#P_`Sk^ffD5,upi%yGwWmжGƄ:#ƹ]кkFx+9]P VəPKFTp`dUr p"ێ  \!aIt_ _A e}A0 hg.؂P|(ެ-7B< ('tѶ·82Ky ېb(X O1УR1݌--=/ '^ 5M0.~' '0ؠhxLL6ORru+580/L#ŽX6aZ(g-Gqg֚cZUlbZyJȽZȜ;Iاxw 0{ ,=b\@;pɛVږ.>"!J۷40۾۽ꬎ645K l <νkA JH2 R%m9x\b 7-7>OKI  @N ȵct* Ү< ==U-MX^-'3f@3؀/Q9A܄Xq . R~s|,թqG%:JZ^eGg=?EuxhBِsz}査9 ,L}ʪP՚~؂~ȋ]-\ʓٱl $#i\L i`i/|%nJ^,4)`r|IYaN TSlard~Θ$O7?a@]~B`_'%XNA[K!>î2q+/]32- @-@,d.^49h3CqnGp7; $B;vsp3Ҥ-,&m˿b[,*W)M25:׮#p濙ט)I eH2g 4Ĩiݶ֭^YFVQ6Vq2wx^2oKt/ ,0\2̸BDENر]losa͚"lfa[@aeaY 2v%%JtI#$#asHsTy $iKwxqa"m?Ny{ɗs9!fY@b0%huYXVca # Y0 / Ec)0poXoqGtr44Y-)d\ [.IJY+r*\lPBho& :]P;*t҈@Q@xrW\j)(f6XVheVbJ_zbث j!gܺk"r+檌k(kq0>c1>;V׳LS5r JH 4N8$ŽsC9k0,..\NXث@=89  1ZoF8Cp[HI|1 [\IԄ BF텦F&Y%MQ rD'42\pfLJDij͇3PA@ t!KK4u"Q;-h HmtF7$Hv0O9IOr A8\ThZd6j:c3-~YP)oc6,Y`"vX-J}c*@2l -V`D(FU|!p(%h%0e\f(x5Hj4L` J`.)DІ"B_q`K ?p2 hqCt֟lg)ZfF2AGЙy8 %?: <"A+ d(C߱ϋckX0FNnȴ\1xSw}1C^\ȶut%l놡ͥ`3O eᐠw(t#c`3܀%Xcs-=W`&c `=X qB` fV+d @?9Df` dy=Vy G,Cضf1@D*718A%)-Fs"ԫR$ zc~K($3ѻFj.Zo!c1b aFӻr0?':Mx!C9:;ɹ˦+e1Iб10)5Ӱe@0m 6 0+y0@t006L)1QccDx;"0M/6Dy.Z;/B"A.I0IزC<IX0H0HR2e?*N(F#+!Y4@qF +prnx>@ x{>Gs=5e5*2i@6#z =r#0*R*:$C. Ai$WR \J<eX¸YeˬA \8\l_91:+K04`i36K>Hd[dSBq 6)̑`978 K KMAddJ`\#1^6$:LîۻNJF#λAC\99ID/H‰`C+($:"7ё»t1 ;|[Fda$G[J8 2+5>چU{+\}~4P||tPU">Ђv#8C# 8ª>C7tKۄ L*@ZG3N9 %uS2;==Z4=5_Lk]86I=+?\˵?5Xa1=A* T4ϲУmѡMAC\bD =fB+!TӼ/ Ks˷HOz/Ȝ/$kODL?-D,d$₷^@$,!i^hS裈9m 0xc9ñ`$Xd19/NT:2nВn+׿\FhKL$!(t-/D}ݻaA RQ@p5Q5mІ*Z--XY+0 ]UY|Op k$k 5-)3He#!& * R9mZ˛1`ÐŲ>=RC8lCfQ,hHk1h=C=@S@hɢ@\3m#0<[,l6^cJ<$:mQU 9ERES:4ьzZxJ a KLZ؉x JRi\]E[RڤҨAZPcEY$:MtԻъV^U.[؂^|EhKVEJm K^/Ù{ɤBHXHh7kJ@iu^V1^x%:|t 3έ<`d/;;C0|M@|TԄxA(4#2Rb(+NCFdtҙ2kdǛP!fǚ] ̒5kOdGhuY>a)pᬉ(*T4#il\UݵpAD[ MS:Z:lh=VL3SP[#X>dk/{{Lc,m J7=C,]0-1=r(%-# T\, M4DeV ՏCT89M$YK`, PON?XfdT35;fˈl-AT t!N0r:29bm-!a.R&0:>(QMQȄdn5nÍƹ\=:nht1#[Z˧z7ν..;K/iB˙{?¹C[*\ReeY(؃0jkb&4-0kbbb؁5,@[,3Eۣ{ER>88](ePFփ؃ýK#`>Q*F[Pd{VP+zc`m303+[ 47--4~"8 ]@ =bJPNSSn\.2 p$- ۚ^LIj%b$U)oPY.+)A>*VZKĎS@Aj ӻB֍tFG-onUA) <$R:ĝ۹& (0. 0{tDw*y0ό1i3JF8EyM=l$`K9=S:E@LRpF԰ɻT-q23_S>N **l.\*\uFl:nO6b6fkrLd}\EGꛂ+Hd xP%P+063]c0/9voG[ eH[S0Weu$O~%#Y#rpCbVDʐ[eEp_ @B3ut{=I+[k<>RҵSO9 NsC/2Gf J(sbEh 2K2cr|-h <hӃG&oo(_&;&` ;lX"G9&O&PEJs99>r8zc֔gTAvc1COJЅ@k@n5$Wf`AܙS/ܻA[љ/A3=ӣrcA@[(}a2-[uڣ=./%O=wܵCo`RGs\{PEUm rt3 ];^; / ۞L:\bXQCN)ԺA_JxJa`C1S*LG163b\0 TF"II*;?N-?nV #F;8ۡ FXG1R$IJWfi&(#Fy4Ɗ1:H1Dǎ%cՌB`&¦Ǚ圕?lVNnޱۉ G8츞m4ov-_}Qہ~zvٱU'BOS"M-},}j=USw"=u&9VI)X07` bHTH!"(|$"c&eՋ_ZX)Y%Gu? #SHQoQ'c%?XXYfEFb () >9"&VUT_|[_|1myTti Ö_/Qrhr#,*~S" Dʌ GAaGPA?V:.R<Q%*%T!ETRrjSJ$#dUHSKA&!5x0?3pWXGP/;\AQ{B\?EGq.'nd!WlX%|TbZe&!I!125Yn`g_7$hmku~֚QajؤH"9lMCXlv?y!mgSP?լk:K2h96UHeu UO㋇Xn8b"<F"f#3z#h)?Q) Mds*hdFX0Y%+n)GAFRe8`fT ԇc p p[ϟsՁ7(O_/S H8# ̃LŔJ)!R^* X D%*QD)B mn-(<1UEGQȸãT+R"ňGܗf'=e_KW^ 0!)Gf-;E3p@KF()`>%d' vGЂBf~vsi0#SSoFO7t-821 (7#) A7(G7vn5ɆΘl$Mj{{=D 0)l,q4gA \?赃#̠ :,BA ePӝu =(7@5)O`" () QNC-j5b1 b."dҐ{$]#*Pu>ʝFM ng La:թQ,`OEB@U֍X: I<(QFZ0%BdMQJJzr#'4Q #=b?|+zN)n`0 =9n0" mRkB(`a֖|8B#"IH_\3Y.#pc oi.I^!A ,ei2Pޙ330#,#7L!]bZ3'7W>i26Zi#@W#0T|C>D#C K\Ĩ _Mp_D^ĭŘֿDcid夷Q2|m1 XH6/BX&auPp~eA۽ WZSĜ&I}G}D3LPJ|?4KT.`EDhK.(_P\)T(ۓH^~[%`C@Ñ! eNVr9 Q_Ta%C`ȋ$!f=U]tjQ*Ə;SSNO"M Ub*Z2NbI"A#ŤET!b1Mߠ5Bى~ZYE?K']MI? 7.ߡp?:P@ '<$PTEU8 UW@WTdEQG"DK|ժHaIJ• Eeb}b,ܓ$O ѕ_РV(`x+8\c@YQ[f%XQ[teI͌F[Y%)Q HqR%5F}l$TD#\EEVLAj hI\ ƬK`D8dC)(J=x_DxINȖtQN(8&x`fHeSIop^3DOt(L]? YEh Df)UꙅY LԔم"ɑ=:6?E[4=9)`gM1ɚ1Ph4NZ?CTQefq–T'# ,'T@FM.LGNS<:j#3vYXYYCRζn>UIDUB@S[{PtFnނ_)5Tl9D`nNa (O*{Y\h>x[]l'mlE@;)ZS('̢,0S1"> >~>0eQ z.,(7=QLENM8 UŔd.Ԙ,KO('a/-,EFqṊ 9HY05|Dtf\^|G|W&abWE- a5DDq BH)ȸa pV7.TCRV/,'A8`HiVhhQTt6S,Kdl|9ei#Q4SY"HY>=3Q' j$ufnSsiHkOK5\ j6LE=/JW_luPX6HS@1k;J[L4+OtL{?+ ʢ,pVl<ˆhdR[3_NEDIpf%aզVh!H8DT\ZűG H9HBnK= DE~\1ʼnTn\"гi%19c "2` Kx <σ 2QEEmsZl;(: L?epO/rPog6uۇ |K;k%I_:g|X/i'@&E8otfQW,6-ѿT3N#r+D(L޾ <%kʫSc)rMŧb 00QQˢqpvW|rU(AC+G^*a`̰|DH(ȍXKTB<;ޕ 7Y ebqD(]n)Cq@QirUD:$QxZa"ח-0BQ(iRmϹU,l` JaLn;@A"XTfY,hA~(8Q:h~T?"iA1VJTOA^& kZmY_0hAyȍj~@ hH_xQ?4؄WhT􋛂),X sJ= cʿ?3Pgߞ CY(|)I_"GqÔFv0aFUnSM_8xa)K3c̊1^%ԿP[uū13cɎ*kZ݈9u-C=x7wׯʺ*W9Ud0*U)F'xD;Z6rW Wvx#3xW{?1葛W[7oϽ{>ߌ#s}GuqōժJ_%J # d7., Є;膃8nA'N;-%Dۡ#\{X X/(fYJ@ 3^rH)+p +b+|(I$z'hDtEͲ8KeX愥XyF0&,|Ig4uF RSGF+AJtPd4a<-R*ӥRuH"ㆁ4B)p֦UFŠcی2H?BF2 B@<# z,ǘIA ezEXtY+ڋ+F YE,3cA+/b.Jh.ʁ+(Y1F6#M9̫ݢ%T NfCF8X8Q;m>%CPxN-^HI[Tr1ge>=nY @f+BWJu_Bv+ R^vE qKf#4-s e Q jAE _ڃ"#n*L'rm 35+AF7WRJGg[!QXO)*FBpuF!k HBg}K$e0!" >a$%yƂhT/ lyX@(!_T ~+"E%pL&ӕLZe800Yb)$Q1a`L fiv]P SB¥O*3fJx|+'"hV#3Dl$箦"ls] !'8kW4NkZQCi鐇4BŁܐ׈5nLTrsMIu^ɮu,Nww?$%MZv!yy^z%I!e2PMcZ!:InX$3ڠDi vIK]@SRW5H#9 WRQ٩2Ae6 '7(@*(KCa1tHCtTMַGPa"YRcUí ? V` hY!ƒ,elc;BTcD/" 1G#t`t {0Ax9xe(Vb@k_K,^?hp)gBoߌ_:F,#gMYӖcoSp›l iҼƵ}hsMw6ނ|b! TmsafI5&jF)e$⦛C gt ftݍ%BQS ;ClP0DXȆ( цb@4Ql4ȍ Fb5Jk p˂NV&V*-M6/#1hiFWW UCmFXܐj5BYQn&(7͗GzH4DJ y2O{Y?>O:^FL/6-gTb8֕2^Uzq^3F Pn0T36??QXԤ(2]r*M哸UҀd5-uw;p8]a'k67N(nP!#UD25&2ެ} gΨ : 3,fӢO$.DMkBԅv .*,H @AnFFA2$b RPR%+%Wi2p Jo&iAxJ4xĵT,KMr 99AXԢ?C B#`d-f"l;@DNR?FAX3,4 #\#5lSD4$$BL260Fr(/wT$P"5lT %TL*>DiN7-XM* z {$,!R$Bc&ĢDՀ(Ⲩ +4pmH0<"p%h.O0%"3+6TCbĠXFn!*f DWwÄ7AbA4eFUj %EZN# + `"֤Ȅ1QSAAaJ"x9b,એ JϷ}*R*k!5'3Y&bdC"[(xDz.v!W\\`\c\ JAT8tahE 8E@d'E$%DVtҢgl)$-Hxů 6 H ikiii'EVZbxms?ݱT&J0 iBrp!<X7"I2Dz$ͅO dL6o}s^yM[\4߈+)ʂ:uZN!JO1VOhd6'rQ#ȬSc+^ɥ%& jZ+NTbQtBE f<9GujP0_1`VM⊟/ HI?8i ỻ`ۼ>N!@*z)"lBg%p5ZѶE!^w3p$x#rb&"uäD\c$Q"TxO>Yq8pٿB#~;T%.Ÿo'4Ot.M,Ƨ;g}_7#'ISI\DE"$BT$> Fm4˿\I̋˷iŚi'ڬ:w+@G6G#S2@EX:sKlIvnUG3&;27J#B=4tqIV+4"X*$R|4xS6jC4&\#~rsd9w"4"Y"uMv'=s,UDmfpF & q@ {5 ̝yۻxa!$iXDRf0M1AehUczDn4gPgcE*Dzo(f'J(<NDBgPDYh&>Ҿ]l/Hʗt;ȣpc>5n&⸻JgQҤE}MϤeu#PW` -~dJ zfJKyb 6- `#FϞ :<́jq *9b`|+r^DfkE>)k,IlDթkS5tcC~\bs654ts> E䣕vE##\ŹK11{6<'DXd O> }ܿ?ܧy >Hݭfqy tر_ ~ Eu8qE #Xc AR#U0Fv|ŠM+8=7TX_1\aNSЬi殫i5όׯƾN7ز_:e8VD>I9Wڻb8 oSyMa>#9y3*J,bVveŘ-P4%v95ߚ+ !_$HX|9b: φ26ʈ^F_Ƴ+VdC;20R yiF5TG1PXK%R'`0rǀq1v(oTɦ" 3H,+N92~aQGh ?adue f@"eF=xPKX4N3TRKT=RK3DHF$7yKXUqՁ]9EcNxVB ZD +V̩fhE6AX@rzv(9 ) LhԱz6Я2Ql?}yb\򒗠pC2cT*i!vAAP0 v%b1{ #,5)?7Y(1<`T)C,fxAjR<ltd8"B `&h- 3XNYȄt(,'8`@8Yxr* ( WA[4ـ:Scz\|M,rp.֟)ӯc3B9ern!JG6y` ?ɝsC9YjrX.*\@1Ŧf \QIN`A٨=$C7LRUPZiUfI0{*$V -󾖺y1 x'Ur8kH9pg4yAxdNQPC7`lg pUljG'>;oa1s bԢ)a1GB"bkC8O)%E%Oꥤ xOLHH)y yP(w%PX2De=x9]ք4>M_L%0Y(a/ *P "aQA0g`78zWA%4MFw=Z0 ElE8^%/a-֮!CDKMl`E#&_r E [B G$Yh@ GH &NVX2oF.tSE7XWGa@8u[y; 7'C&f5Q7?P645!EN1mDXuydPAca _56JI_c_$]+_LbD%3v!I9`m p'?,%w#V"g8&r%-"{'jv ,xb%33P",W &d&t1ddv$wsn wfay^ p `Rbzffs aP W?P AA @|* =v& )*R||r j1#9iy}0h?h<0zAkVY%=zAu[k*ex&T2A Xmr5U!y%XqJtL X7p=Ԕ5p^GqbA!go`K6tHlF518Lp54r͑ aNEd 0I/4YUq[[gx6 ad_^5ākprp l61#tl"<+6ȴ p8#M#w#UB;$7=;a7;X  AfA1dXpvC'ʠ S|(gwMHG3xD: ,9rt7%3(b_ǰ ,oV(*8{R e&Ps+B SmE D_$I&^ 6I Myu`ppq]y HYQqyrd6ĕyjK; vXmr77݁I$gh am^`m؃"jrK ^9 3BD7Ƕ ɒCtyd-+2N[7A"dڪ~$${P P (Fx WgsV 췜 bu$i"**9rGpp% &>ft{{ HnpnMAq*q| w6(*(7S* *\,t=҈Y )66zyTBҒз',^[W??Xz7y<%[Ual[(cJZ iypYOи&_wXbb\Hu4Kc_⦉O06PJ]V!m{B_;Y&s_6dr`cે^/2l68zc(&vAjIO{)@{#~P psSz) Xp?r%\L*OvNSRgOC!:q.{ ʠ, (fo& a jtejS;ˉM.UE|F-ѲS#X|V)Ax!ԝ@f f~SqUU$=C-4G!:3@s1\Z;-vu@'1c,i&q3Ջe$x_707!y/DC18  v:sq rO5{rx_Xm6hu]R3!g\c3r+RHK[._Q ŗdya2Z"5b3r-G3t47ZV|`|#ꮽt #Zjz  ,SzWJ"}8f!] qk : >)U( {W  h8a,xFq*Q20 c=3WHe0kLh{vv{Pc1}N<eŃ(A~5 b ZTCQjCBB}K}' $n*jW*.vL&Vc1.Ih:t(24o1g2nn`7W3qr])^A{Lʾ*G 9gR(=c_Ƭc]q<3^R2t3x)mꍗdZƻjBP Q(`:#0'F'53Mk~bE4eЩƎ" а ,)S)$S((TgʐI%@*wR(3Rz`㗢RPqfA>g {x 9;P$$%MN.;P+/CPsn nI0 A0HEU0 E*Rhbע0y7h}v|/k~Qk7E[$,fq[Pؚuے>&HJ$JK7aB2ana8y|5y`R6:3 u+J `-i\y0ܟ!\]W]ӝjkƝN]aʗ' w{:ݼ,G˧[D&+b8+d1y6v#ua)qv,??>%+f,f,\ਖj?()|" gћɰz>7g7F+o=*U>%>fVr @:^yd5xj"gǹ;n$,1~.2TU.QD5SjqnF;:N c7UL8J#;:p Lp¿+(`ds KȞ*M!Vؔ SMi[W#EopXRK;F&vDXg{Ô)N{vlŠI|Ȏ#K?'h*t,_"p` ,C/)B -^2/"230˾,4#NDшQ Q)l|*|O\ •A^"KJ^>I {)(dyZq l`BAJa$!I3ь #87g E8S6&XL 9@& @|Ufc!/7)l4̳ȁ;ME1Y~6FX"(:ab.@d́)ddr"hjrFN1̒XDf)*L`@BNkWΔ3'e.!+4RZ81j<Ntf_\G wC@mW#- w~')ϡ ,(t{rޘ=8G6L:H4i5+cL~]' V!rfZT"R&Eq7g=+ops4k|[W?Bd ,µpć,I\`aeD{VK5/< Rl,fJSEe[Px 3>Ax# 7}DR[8MZ (̐LF2QʬPH3.e ʄ5t+ŠTGI5V!QJ+: INk4ޜRöን9o.BιkqVWKbѾ$0T7rޠ0n'쐽l0d l37=YX?$;h\v˜QghxLE,e8Lkdrf9$yIJ#0&aN$`0 X9yëkrX`aq eY *E1J]1  G4xs(f 7+&%k9 i0b! BGҐv!+a HlC\T3]]OUm!!S>3Y$E^"ܡOoڋ~ݯL{,e ժr`!ZئcЁXz.2Be<N0%YMJ(Bu.w@qGܭH ]T>8 d"[e2&ko_:H%w)ϋ^)Ah3'7 9@<5cwhڌpb*ݷ>s'#GDq'pIzB "Yo4q`Òau2I$X+9YmBgIL $)N/\ .RwK\ Nf0ˮ )x[j}uc GVތQ+. \c)Bff;u+#^/8@^X;0t@7x#$*y@WӰPPtJ i qXO1{c $ʹ0%F09K B/e^0B](9[U :eÂGPuz0󀤉@Wj/a[ 䦑7 c9#19S1($&( XF&s2>Ls;K|;2)2IK39(45X%Q-;1`l@4CJ=P[OKk!P h\ +k4FhR 0!=**r ?G"z pA"`#"IH /D30pO8+"Q QP8F28X:k_! / Pd@4|7t]X7 lx @DqXcX`PבaBQ$ ِΡ J@Jh /9e/f҈b¼*ehG']:@#!Q11pM*"4xXHEܬLHFDGDNKD 8;NE3μ:>yŎX<[ܝ dhx=DÊDb<̋SjD=RRFc,PFhC9g*ҭ1PK =6T1 'I`P`QaHHDG6 +auI1\ @}4ܫ4dUQGAF"Y^ 8Irѕ:ӕ ucRª*eB2ָ3$U4 A#řM0(g+z: @]<9_*1XhN"H&x߉r_]hmM(HE\DdtD.C3;q=WD;&#WQ% 4HH.hgibffAaؤa=p&D{=JP+oc4I5(f9P9cB]8p V;B +ཁg:B,@00PbC!PмP5kȧms weUIQ웪))O!#iZ\܅Ό -/[ҴGHK.S*]&VzjYap°i渑`;2AiA?r+?Y#ԂB\f;җ#:>TVfUױ@D K6F pl 24#'|Ź+}%TÌL@`09&-e "7 jsOR!arlРR{{=$&£?Ƃ  0ƪG0欼PB4d.Ғ"|(~a:*j ҅10&Ǹݲ LG, m912T1ʋGt700NhP6@(]Pu=kca` ގ$8 w1SI-}ɂ'xu(l[WfdX~Nd\buGn8rG!r jWJ wf-fP d˙xJpw##W9x1_;%ʑ //rxbGwaQ?\ 2gA*UT>P!@Eq#ڤS42StTv&k1f(wJ@M glȜ vLsD&.lda1Ȇ)Ӌr 泘?<"sh&袉$p@2A<t17zNl Ѕn?X}:ҍts0MKF/Z%`7x#e|DQGM`+I( d<) {Z⬀ /U#(ȔfY;&2M 9(?V*zmV-ONmb5+ VSTATF?*E 1U3%XZ9 .ш+D0"Ma~-(~MBT1_a`aIE' l Z,'_r`kvFejgۉg<3p-iHoC3 g!#=A"|lХCSQ1wTq"(:jc=G:(D ]42Idd)?DwM̡p H)"L zps&$'yC&Iblb%$4*hAcO?|ǩȺKܣ w:J. yrLZ-;S(3GiT}lS4l1#EuWcmU@2Nws⪄\N,)H*W3v RJwfV$\J]Q8{GLKE$ DPb8Ţ8]R%N)P8v %`]#8` h]"ckxk8 m g"2 wg8+7Aj֤pTJ v*F&}LH#;n'! N7g wga@qgԺ25 (! NpQxB7S1p92j917>e4?߾aہwTK3FDj y–d !mrr%m6= IKȚL.GP"JŒX!Oth)27{"[X F~JxS ++Nu:NOxX1\oٿ>'}-z^ 򉤙J@\ c: v5J(Bz5Mp=*v؝p/`q*J,N f,\`pQt{ 6`m0ǩ&1`bD ФwpRaPR%BAK (BT F є)D uM^ s.MW u7n\: m)NH6!A q!E ?0TxU ޑsZHi-$'םljK;>yjSA#$U?-/8xqSwޱfŋYfiJ'Z{zZ&]kl)s@eA,pV1 Ga+[C@\l@Y̚mL@Җ 'Q,#/m1Xq/,ȣ<~<y˙/}y샇?O{sBBAhpަ /:'BU2%3ˌ.ZE`ŅNH4(~ r&xG(4+@'( ., !cY*, )ZeZ h6d #9'Jh 81@PԳs=:<Pjc!J1R2FF"JJN⮳ɦp!:;J 9]Ϣ7CZȊ)zi*YŠ:*j*+Y)IܒUE 1ʫ]3 P <^8YaL1Bʃ33NȲ'J+v-0Eж@y1hP]@ٮ#\ΰFKS[@x矣!`eA3ØP#0B3kgE3 ꘤DrɌ 3LP`qQxH#H ? %(AK '؅$l5"7a@A?O$$CɖlPs( Uʰd?7XHEDffӘ,2\61T\0$􄙙iJC0=aXuJny{\, (ee<[z2Χ0*IhD|umUc[F8r DekPs(.Rh1?6$|3R(;(l ( M_(n.]>"k(eNXժse39YDbrRƢfIά[0 \lyOd|10zjdٝ{Τ9k,&i-#Г"gy<2mG.C”pΡJA:y6Prupsp%M66i p3 L5М[BzӠNuc'x}Tt<'j+9brb-0 :ZWPQq W°5]2df^nU@ihn^eMf;[tujv C ȟ\;/0R^42 _jTQ,IK(B|z,SG`}@5&pS-6A,\[}wz?D!ɐ搬ŢVRf޶smծ~j:&2*UŹQPĐz=K%/ \FY6#f_Lg~Dti~0X^1Jy@9CxWP.),#ľՖlɲ$KGL(J`D͠b&iC넦X(Mj>HMV NCL#X Mcn"rn. ,   JDL L!Ma& DovGxD'< 6m F T@aR#rhom:%JPt~ai㧒*-OnL˶DbzJʪ~FڼjĦ aN`m v-ь`q q+`G< .+H$0QL- 3g\ 5P"j!*tOxˉCɸЊ0?\xf t$LlOB%5̐ N"U<܄9n)b!FKXbT42h )fI0 Wc5&@Lv7@O( L/Q0p$ t0G;p>jB& ׀`l.|.b(B"$6*h>(d> 9:Lfxh.̠q!LUl@hbO픱 D[\N-Nބ2")&%zCsZub|_'rFD~Ѷ(-jih\^`pSwEy4rRjhc:XFhP7Rb&fB',upTp$^bmFb"[XBBCS;98x@*B!O"t?K0EJ:[KP-"/'o 2 0}c;%1,l鄨=fPH FJ@c&$L&3 W1EJ*t0QL"s".}/ wʺW9.,29Œ,WJl93NYȆh)xg{6h]R`)gsԃ2`DV fUxpVH2f.p SCco9bov&Q>hiٲrcdj+dj-d ijL˴؊aksLs ȶM0ƌ 猗ms  ^]KC_iE5@hq% 9b&+MWeMt0ݐ;̤q* zbPFHQ ԃ0qB\BeE$ԇ.b; ad2 @{ĥ(Ng&҃c)=p$fa;10fO՚w&r1 ;(E;@hq4bgcJd8nhg4vigX=:<څ8,Zn4`|TWlfIfsVv؈*D"B8:`Ck1|! (o vl1N< :錑$R/<1xn5J.lt&%_ WnM+,3VUȬh Fw9!v`]J%] gڄoPzt & ;+d,B/+b[cAݠiy8AZߑQLD1>x!q!60$_Z;A$΁UuK9Bdz_#2B2jV5f4b2NjCaUgi=R & 4|NU!T*\K%!\fS }d.b5hL}spA 㯸TB֥eZfL/k/M@Mf`( !ɌM\8"1d<j`QÍk"B0N Շt5t0[,Y-͜ '; UC}C{IQt*Ŏ,q?GuV*;U/+b-[iy²Zi;0#&qGY_P;O GA+``XRC#oM,q}3йQceݿQIث|h}7O U ]j˩}gF\'HRIpǻہ2Τ8jC0g`8­=|`ȟXp"W<@ =k &ŝ CÉ~\PeNt׽P5_ z6l0d~N80)@翆9(O$߀ut|LNtJu}~G("x1Ƙfxa?.8UfL9v20p Ci2Ft@;|!BRV^OPh?K@ᥖ_,@ yD 4+d!?Yc 9<1OMC !AKP" o"}t% xzRJ*K0R݁CCܥWf1'3ƋX/ܱ?iWE4Xy]A\ZyuT'nTF_IQVgVjq*MfH{R"%c ֬ՙ^8 mhXQZia-`!L?ƛtӛQP(Dž Q?eҕ|^u\W^r 3ɤ^}L2+O']z؀ar1u}q!GO@ SwjJt)D$Dq0&.Ve##2G 3ÐWPR8_(xX^)B^Z>?)d\uI$udF!4P\Ư$i޹N4F~J u7Cy ӻo7R4xǮ5 `up@?XWH;^GaU,kE"̡-*%[ #}z.=O!e0si+ `^R80LY`XmŦ#-Mw?@(ɀn1؀NɬeL[Gg}YLPUDtlf3L:EX4thy$qiֶ5f+yA"HD%2x(n/I3Xa {[ IH7@Ɠ}a:8(li H2#IbL(bK0;ܡ>7,!URd$5IEFOY H3Vyy$w S$Mŏ6݉6A(P8%+Lp#̠ ?P~`2 kDthY xkq@<@0@$}Gm`_)ґPE $4! гan$v2HFHÝgh?c9%*1iڑ)s&?hWe`cʳ/YLvEdYN}6U?XXļ y[W>Q>gd(C5;Fm[2"5fo(pDFMk*ΔSnd6)k R\숞+pI 0C W=FL(pc{^褹۞vY!xrWQc{yy9F";4\]`05| ?`h K E EďHѐfj$';XvʫBxǫ EGl~O "& 8cr>e`Yz:X]sSUOMB9 {9`K*2Iv,`~ПPwaQbp%!r55Kr r@V@UZ+dS0EfOS?f'gItFq+;QQTn2w5#YU]!gqEHWUi"Vbik&c3+zEkVggF?S4ҁ4kvL!!N2)V} qAX~cO0"x#%j$ `gF%PRzck4kV2u:SeQf7[Ss٣{u_QmGUa^+!V5w3!Epv}ҷ;Է}g;C)d^otSnB9~N0(,P͒/g%//a֠5qGbWq&'bR$(!V0 U4%s366Gd/57"^ "&oI_c%t*tAQAz) s('*nU148Rfi7iU_GMXkV"V́!\eoglegBTK%QYEL$)B{x pO630%r^ 6kwI8370P;cJZg#J"PKU\`#Va/S!1ZA "/pp@ùW"6ŞQdPKS:C,ȂEdI01+hźsߙ+;11~GZn V{fv: 0]u!ءu٠lƮڡ+f1(J&D&(n]4X6Ud"y#?U7@R3 PGSy"! n8"UsD_]r(<]XnY!Iq3G;)HLC}s](1Yڟك''(\>Sq,LβbՒ>7ZB1Bӈa‣+Ssœ sbX5(RRd&`CO0CZGFjV00ΚS0S3 jS*<d;qU<vSXf_ׄljUbR'UEoveD+f PJdg0s%; {l"LQ")b i2y6Jhj#3ppHi)"d_{RJG l5ekV]d:U%,C3Vs8CkK}SlڋO4E#!u}emVr],0ӬS$\vx_y`=?>=K\;cB9AKA)a6gO… 5E(qe*P"ȎS(xyRkw/M4W<7}~:vn&m<1 Oqr ]x,!O~ǿ"(,ށ+W^Т~# XaX(@"P ט  9p p W'c,[E;N9 F !iG{|.i<+K!^ )X\a2h!OBI0\2)lm&,,(c")p`"[j>  E,hC.r PmT*%zY7}'S4$H#~32u"4b6N0,7NR7gmdR /9ܩ:9N C!-S=` >+EC TPܐ1THC GBkr!@6w '`fdϛTH#}3LBQhJc0˞V+rtͽkJ*CaQkPPSomf9ogK/YTQeUVB暫$ Jiі85W?J!P3V Ok 1TM,׭0\(KQJxŬ^1Pv(]J> Olp-DJWFup6` h/K!Ya,l2/UFHS Լ/'|IdB8EF/z Cvd m'= /vaA!r?^ 4Y84 E$.jT?rB"y!m(fC  ݞТ"- T H?BE!H!JZH筳X #/6-1%2G%c+Mbƥ4)ZJS˞(d,W€F h{tc<(Y̚y 8m 6_THgЊDL-`K! W^j<- eR#buEzCbiЖ|e)K<[$oT^0.dwiDmL 0Q)"gW5b@_*ɀʩ/(cD[P# ҵ% ]g-1rҝF)hQ^pǒڇ;rē4G@r5mH-bP#HvA ZmXzTħ)/=R+Ei\j^NTJy&1NsU@ J4=5:BdgC4fP* q:wlg"|>wXE"9 _@]U%D!V(D$ y6+\yFw"AX1s-\', r,5iIxJM§$2l \ [CE 0h,;TAM`/|+1AQ_)\ceBFvaHt?ei kmz(PǥEi, J|!9tHsu J k`mW(NB~5GGtr7l'9xr FVl :3r0I. Fpa*S@ě@ڻ`ZxRs np\? *X.pg=z?X W]`;.D,CRqA5ྛYnǙ7 G!۩GRY0i?";c.t /]0/u* t:/*8~܃0|S['\'|8 9l'Ò 9ˈ%H0 pʊ@ 4w?0"n% ;|ܵ\ 6.yY+J!:Ľ@ljDKT ~9( "R xNdptI+rQ$2  T#,RY5k.y-b>s;22_hdNeTA:1CfX>6*"Y3F-oBK%?DOS(hP0#+Ȏn 8&{0S; NPЎ?@078|_:X:39D$̳ 0W)BE.a81%'!Ӯ@G񣑷O45 -1J*J ;C0*V9ۗ!J3!ь!Z!iɋ3 B<(Em3HKA)ZM8N{#y8X0y#,BXΚ󝶳MI+;aeMayJ9VԞ,o5NNb8Owċqy4iGY-˛DzcLc 0/+h H x#7{[0U=IpSvPTAuR#XbM["ADA(+B#M$;#};9t(<X*=&)-Q2MWS,EPܵhƱ8 @$Qᨗ*͐ P3r?d~*! }#̈zZ۵ژ0$8T=rMݠ4U,P`UޫtH-)e(VT.@JLaN@eMaߕ]N2l18Z,ԓoq, %YS5Bᒥ"QJ˿-4=Yґ܄ޡ9<"5ʞ=RV!#5(""$RpR"-J!dƍa1¤%4Q8)iyf̂,+Ɲ+#+H"2 R )桏"0cʌ 1K \6'xC+Q TQJKEܸjFUͯfizC, 6^f4JJ>eLfNP'kL{cch "jT=k(7R<2,j1"1C J~ݻ^U KVإRFe2(Ju:|-G>OȖQ?>9m?nu wss;g..0/`rm ݁n&"P6Qɤa5(`~ sv DzqͰR1K=V1",JΠxRPO™BG f8D:W&?Vဉ&* Y9+\y!!)qc2q{gjoqx14CӘԑX-:XU G=SPQВ d/kJDCOA%Gel/uqdnPWsc4PT Հ?؋sw%&ՖP? =j&*)PfR耍(=Sułn-9XRB$Lc Ro$D!9N8Z8ڬiev,ߵ /Jp(ǬrBCTzP9ےp5f[!g#lōqI0:xX̯2P#o`#f]~HgN,@@ `ÆX#Ox'$E/OH' d0AN*)r"-a5\tJTÌN6tg*=M3~Ee4 kf)zia Oa$J6jG$@sNuo7JvOW t:EC 9Qq{=!ҥiIDH}7eNн^@uu $T$hc.KrX>W,_?9`Lh9pyK/Vf<Óy f$\^??~ea#BZ57BJ" B7K9Gd>2&[AJ@+J+惀 D"ҙBv{M[v!)k DfGFDc߄Dk@D &"&Zv7-p zeYҒ4X(4tApvwP˨!O6찆O;fvnǑ%X͑f61F&JV=\WPNWbT< J(0`i Ԃ\2@4'Lix0 pY[àJЊc (Ё4\̼&Y%dbh2Nu ar"&lz7*SKx8#'@ F1YʶB )"g]TI&7E5"a57yO$"mȱQRpU,c=tTt u" _&904116 ]%A쫈 9̆qJ$ExH>(ӏt[cq;JHo#`Zy6!@W8x5eMnΠTV#l$:U`;4NO\dװQ<+akJ@\:o$ɪ:A/sH|b?uZoQ\L? \ԶB1Ai0C` ,@A ЀJ  -\OAfg<1JKM T5UL0P .MWpX=8QTis\GG_~A`YݛI4s dIG)GHDǜA m n0_HՔ͢ _5XHRgyւA'-(FR!E|Zc?tؕ 2We_0.0t-JA2)Ĵ y3Մ {p#|6N3~ I Ag;X}VX(x@m0dx,$ p`@0dJH@?tB'|*I@J`Bf6'0g5 }I0Y՞?ʔ q9W =A?<Uo]zb~WLN]]eZ:ǍLa\.%_5Ub_% Q%PQjOZ0gMVd6VUĈHa((R^ %v\-ff/TR[C(x 5rNAqH q-[E`DQ&G9|\ĩIv$eȟxJiyzIX?dCcSuX.@\H|jG08C@F@FFEz`|HNOK쁻Jl,-! ENLONN0JAVĠVoiY<&s Q[fn@LGW-UV*gba[&iV&il#::(bRd )0~5 (Ҡf#gaOomPކ& mkIhtΒ emr҆qtfsՉFpEcDC(DLuE8mcs*Q D}ݑtzu4SoE]xEPǀ#|rO<}GƄLt|ĄQI'AҢ0H|>FH@?C 4#+©K8@e6?B+؋^(BˬG /Af Yj܄OZjNі i&r QVg)wYZnpiʇP#f s@i3KݯّNO;D"-8#҆O"[]0 g7_ȯwà nzoX-+2SN(`  # ApB. !`Q'Gh|'Jav GPG@ >5G K+xL+c8HXQh"!lkʪlKj4p &F#X"R>r,@}*&MMe :[n̆#l_d&f`M> \9Rp0"#!D GH"GC%T1 $pQdl n郻(|`II"I/p HǶL ~c57劓dUj94Wܷ-S*-YT<)NŮ,9*Pة  yɀr >5Lcٽ@ { %ttdj<ҭ<5Z]y\sY#u#|ܣ>gaN` !;6c*bPCB9T9(TD#3ehQȣW?B?S҆R"h jHPZV@>ukHVtD$C1 5BYZv@,n E" #Wk ٠7, JR=4RBAtUz dņ,#Ԑ١_ѳ0գ'r\["$ZO(iIS*@6 F(ƚ|W\HEyĤBd@p%(Zat`p9f 2 *0 4#]kDHPy pV ]ZWo)6g' ?h"Qd1Y2[L= N,U;N9 ദd lEt+O#LO2[X[D@2^3Ud$c$qYwn4U.{pk[IͲ8xQW5"Qv_"dG6O %#a1O4\Ux b';@1(ƇG.^Lcy&Su&`nvQI+Jн٨EZMZb"FĎӬ .ƚ?4>KJ|#>ʡTsb\€6~`eN i[!8,:6,(ˍ+74I=ORڮ`[҈ϴdx+*;D8NtE1Q|v9tSԒny:H}kZ%NGUo"9 uc. $g2zۡC2'C{O_ ݷ<<`90 |;>M >( }p~~qa(NLjxf4h~FI<lHڈEd|@`l@ $d&r N *IPm} E$Ќ9LR,,x&eyk[lh$p#ԫ:.bo=#."*"bO!r!@볒nN"Ÿ.>qEF|Ʀܨ:)0jQ+P.AJL FnFh8,$ % hODLq̡">bKr""#>+>#}T)2=0#2f .<+!"`IԄC,5#qRv6E{"~{&BUt2RSh F/Rv/Tt% l&T%N{^bnQBt2j m(lH#j)R >: 8 # t8 qg2E4"F3Xsb#$ >x)E0()2ohU;hSpF4pI5Of_`X &Y]ƺ?*?=tPc9?Vf >D:I JЍs"ưA Za=i#x=vU"qxhzZWGHQ 0Blʤ2L+~G<ђs<_"]p#lxaw2s9Cs ֮Zrb$#'ÛHCƃ&M @!B!0!@˝Y/"ؐEkR+6'x6YK,_-\p-‚*Ae.Lrj[l4ܔ/iu7kskw3P\#3; $]OUφp G` TMoe q&[q:Ar.r* qou*sGlu?c`)7 E5HnĦȮK,wuFx7kUE9sŬ<] U\HF["A@]Lh0oG0dЈn2a--# ):BE)/68'qgr.G.^0'L&*HNVPNY4W iv(/B,k&hGV6LI[N/>/2Nؿ;ONk8\^>ݴ5E9PyfIxέsHx(M#F{<)u7gmdY䮜gư>ٰڗӒ3@xlBbvaOlOԶ_sűWS/*w@]cĐ%Y:'0L~9A**@B3̼ΠJ"fJqEYFĎujpw1wU ' 8(aB2QDPĈTA?/uJ# JPE"~,X#pP!L1  ZJqذĦ,=!)vJ=*_׷ߣ92ax"*y2T)/mR=:BΠ#$@֫"tڰ_˖s7o@~q{"xpCou2Aљ(^z7(9.胸C{a=p|w@}L@_|aK%UOat"E]\Q\P/VR2G=PO!9L4EN8E\S_H}RTbY\v SIt=TAB&CQ Yš=tbBcPOXG!R"uQ 'D4R-q)MFG9p vRQ?:5TWDUdEVV5Ym)"oݵIeC_=WbUu-6bM5e]@ fhVfj6luF/hnvq/g\pmGwUSu=lޅW1w* B"}W} 2EmxHXhs|1Ya S꩒J^X"J40>y?E2jYKH8\s&2@"ɔ)z¤]0]}= SgrJ"҈Inum4c 4D5('A}.gwӠV{đB utvO%??`YATbJ5deŻY)|UYekVUժpdJY6$V_PX`''L?4("vWVj3wF^!/֨+ n\0Ӝ& ,\c$ǃYXr쀇"wV؄0=9!fLP?$`@7Y%,C@>YH ,B@bF5]v/a IXQ'!5 k>XIeD;u\'8 tq1ж̉F+QѰL/aR"Jt\6djit:=$R':99"fqKز +,$%)0 G&P?ְwpXJ2N g,+PvEW%,hVR+ eTŬz%@ۂ &pPf2I(V1VO@z%p6 ֜& Xy, Zc y|:7AP>  ೢ1H*@PЇZD,B% 4#5XRHBQ"GmC03uMpbI\䐆@If:Ɂ k[@ ,KCI..aSEp{ & 2w'UZOd(tᵰ-(ԑ6. 1Wj&eCmDs * `*St%=Ue5\ٞU2UUU&,1b?e?4}T 0L? `g"]n(K5xH060I7|7",E\08lb1 T0e\jG,'4U>L*?dE9eqt-*"56 xWiɕMJ4 VG|qo"ȠbqUm*MIG`ioЍDIJR3n1NhhWѣKK^#ml嶹r ѥ!X6D1 b &_O.}g$^gŜ^If"]ՊXl^Z,X0N[VR*зֆ A ># ,n4`5A}9^M&0xӛqoۃ s…IL)>V}GEc8JR +8yVÚЦiy`Jq'$|h)eQτxՑ'f! @6dw30SGyW?5Fe6HsH~e5ICctf\*&S'f295*Ae!Fo:&A#%:T"a)&7EoZreRI!u/ y[Swvx:"pd(HՅsKewCS)7$k&\k6kLyyUyò =l!li+O!>-m'__=1x. KB@,tQ`lrAv}0#5bʱ0@Bܗ} bܷ0~ 1#~,UMǘT̑=%2!qH59F3C@4Ac"QsEsj# `s{H/5':.G?4d5|vv%jaES" bŴu"!bIa)-уV#u3D8EwGg$1VUCLF`w}҅6XwmZr37Txi'w92хH6+TB|aHQM U.CQpI|XA(aor0q8}!]Zr!2BcOE3;t&H Ubc!C=4!q&>s1!fMC12uH5m%HYhuJy pvE&I&(Y"2%~X)uvZ1'm.W5!{wd[PH6 w4(=O)6PwxADy;oHO@"Jkt&Ztxk<"0γ(8'py%>.+C҉B|fAщQ 2VN&ե 1K l]U!]#T9*a]>+9~i) ,3!7 Y ]kY"v\!Ve47(s!Y*e~WlWa5e=fҸ:d 7=[hC#yIoĨOu\X%If&sbtTSJ47 y9R) 9y$2YQi!Lp;nÔJkVˋkD|F1*DNޛl9Qi!5_1DJy+ņ|˧`aA([aAȡHl!YAn)*5Na91 9#@8tMk` rCg'TWq:(XrQE"gk>WW H E#!^dbV8DZš6dz&Ga%"vV'_\m\%)4YR&5hՒ :~r7f$+B(Z KH9AHe`KLis$e`$ar-$$چ `\7|;6Ezd+~+N S!l{m?҉M8QQ`Rڲ쿭R(baM!`t jt;5ѳC@DN4"D/|/|!2طdH&uw" йu5vU4S#-6Lȷq4GYܣqh8IZ2FZ;,8%D~qA"/%_#f%a!FW'zT 20%ۼ5Z}V]T[CZ\))(GS"Hkk}pɾqE<5=<ʼ{M?}?L̶ f/q$#R#R/+bƑkq;˖?ʈ!U?DP)Js'RDM5;p4w%Y7!hqU/~!R4b1ܙUvIEQJ)KHwu,KE4"Zsrf_(`"m4~!?'5d\1({8ˍW@!kJv9~U sLV7ᚒ]2H69H k )"Ckpp x Oo@dD=Tz,<m&oYu4^ oHۊ02}z3jHM kYB)XqAr;rLe7RIKET:%yb"i' xL;r"2:re/GN\s9,Ig# e5&Pbr >kq,/^>Q21}9/.@ B0)9\Bp@ )PtP?=zφ BR?$!)Ѳ?>hIP|B!`zЀF !R@MW p_ڳV}L P%D0‡ VPL$#Ck7oȒk$܃q[ ѣ,!5׬WnKn̙x+djSNriЬMO%XΚ+Uk ߤ “L"JU D"@'c)@ZIʠ s5iE0 D2DFa~GQTc5Xa tܱ N4(0 "(!!5cj0*ArP\"#$ RDK1̅4#6S3 3!?\s!**E @Q>#4 韔,@\G<}3T}҈E 6jƒ +[m= 9 `j,:"6D`c2;/(ضZ<lo#l<6#M#Dի2D#Z*1נ+6Y!#2>7j+CϵƦ# ʰMH/8;8C {Nnf y'a˰:le,tz7: VqFqFG1GmQm"Bj%(+ "34ho{7H >ijN LHO0WhdhF@T}"]&P4RaJpaa}*8?xMA,1AR PC-G|5dE Q\8rZ#  KXږ$iLқƩI i"CI+4') ~ӞT!(0b$N%ڝ9rmC % `n+ގt80-Rp{A/ S I<8QZnHnCU% Ԉ,%5%DGT7)*!t4dh=R  <RYA 9Lp͋I+NLǰP6L;2Ɖa.C `{ϐOyCO(P/'dYWq: " >iY\8>݃^'{) ז4^de|S KdT鬨 jBVBP(Pb!3iUQ䪕Yk0,|f]v6. p Ҧ1f.d6s?E6!ӝ 9>iҒ&ʉr#eTZhB@>H;Ke*&.qD||Ѭ90n'!A\|:AsaHr 8&>h]9%WL̄߷5t풖gsӤQMp^ykKAͤQ#~mo7D 2Ret6&< VbxW]F[!5N:fx$q4>KFn7ShS{Z@4r%sM֐,UNӲa2eĽ w[^ š<>K"N=?MsAD)'@1DPJ+ETYζF" 2Ƥ/$e^ݲ:ހC_A+}"&;le;;KRn nH]- x2t_€^R9r`h=7e;noy&sg+lY w:o\z? |#D P@zoU% K2 Q5x#@J98Rm*d33H)3+3B,;2Ⱥѓ9A TRIpe"Rx;4` &N;5#!nb I!2ZZ7{Ip5 ;\񰉗̐áQr h|Ǡ Z;&r'b?ǀNpAk҈-1U)dH(8tp۹0A#389q@pAN<3>D HwLt<%A3Vb<;@B2BI˥!i YpQx ѝbR ቒj&&R8[#F\^3 <<`.wjzYj'CI hA4m mę*x  2Q+>M*ڠ 'y R<. J8 ) Y)8;<$8S*؏Ń%z?a8&y-R&&is4H; 1=rԆq||Mm+@JwGB<#%ǀ cA=Q HxzAY4t 1*9,a+ CǨzB6 Li.'6lv5F$[[i L ă0}ݠEM  "p M&E} 1@"ѓP?'F ;"e"骪?`QMɁ#ٚۜot@Ԇ95(.M"aG83 Hںc#dN̺9<0EXȇEjUXbdLӺ-*ĥJcOIBL#IL[d G*V*2( 8(˥SK;?>zd[vF#]-=KA6U& んc2Mf#kL(a?u)Z . aވӓ&xm΁rnvmLNAz$< &TqV*<I{;*Lii7A{6i[ V爉H bl=/KPRa5XkE:4]K]ˆ ڧ o| Ж21Vk2zyjᨲ֋K˯*DFV_ qZQ׈LU hV_ qk66zr2"8|_@R!AGU)Z'=2̆#vo1Q2:pA:K%7sq窛&0gStE[3!HMZ$ @N VyRuDaa ZզbAL>Z rV*vFlKS=:38y7\84ҌbtPVĭ!X'( *5dݻ@= BcgH#QkrCo&E_9ߒELˌY['"@BМL .s2oMY+Z#7G`9F : Z=aN@0m~8zp-6b -dAn6nvd zQmUvMgtUs`Нj zv YhrC{ eVmQL*V!oa ?#~Hba]&!%ՋT\Hc'؈5GY5L. N$Z:Zj9f+k$dNC$D%Z"Ԓ"DeF3ib'D)DQ" $O LQ#k$?>;@'H`It_);CTWG?'ǡMZ׶+?mnd+AWE.ث_aξ*c%b7v*IP}ĸ1D =ؽ.M>?\dr hb 36LC1D4j|fAVԗS/AUњG2ը6hFDHBjц6um@lѱr#T֐&0AN$SLD(=k4ȍ|Q)FR.hdԨRhX0QxJWba!+b HUÞ'ľi+F *b 'Mf\87.ּ^9 *!'Or-`Nt-H,8x-|1`p f`ԹOg "e)( =f0 ux!7 %WbWȕ)]J}y46UH5YFTW@!E-cckI%HJ?hǩ !ujA궆1Ï]%92r-Z[R(k_(`R'H!:љGQ8++ꔲaٙ>$xvzlcqNDYJs [t,Ad=\@^`N@/'dz \r )HsZ%Py.~yK"@:{Bg] =SRK~ {&`2LyUS )Y&o-j VQA ua1! y Ƃep?.s![;u"LF(Vs KBeLVdȰJq{Qe-k)Ysƶ;ܑ zx4~h)kC7ߋkMѶ)(]J24v=J~S 8Խ%hummR'J x_J`Oo0tz/Ba?S9DGah.RAW:AhR{MH7["1F@;r~3nUy%xWҵwMh(L$2~` nUqTE*i&aѠbAćRa% TERDԖŤ9LݙXJՖXeOL Mh]C ڕ VQAO<=ĮGq Яq s>ehf}i^}!̱LAi`~KġHQ<~)FML9XIäv@DLP0XJ)V$=C,\XA`= QX!ǩU #HUʕ)\]D U`aa]+=VՒS-JcLi@KA` 5v unԌq >hmY5JZn c<<i@f"T@ }mȋV AR&,RJTŧ<)? LHa_J*i ^"faS d*2[ -M8f`4F҈0,g M >VA Vbְn۝){Gq]} Bgz)Eg)Kr|WiZw cd[K'E!L6Ұ( b]UdX9u_2JIE@I&(VΆbkfhe Zet `kD|ʙ=D-ޜzLhK% US iEL:#WJSbq2eguE:b08^޺f̔nH,*̠ͩ]IJ &X79Ə gX$ Tx iSKBҫw-aIq&PuAx|T|$k$1^$~x|ܡ}ԯenH}TeuQN0?)S*k$ք0U`d%6pF+\# _PdS-`-"`Ou=U὞؉^kiU"3$b-)Snٞ--f`OJ59,laUiʢOؕcٖrFD'p]ܝ]qk0 sB*蟡oBu1+6vYaU,JqcN{q42͘%r*?))Kl~f.Ӊ-tnPŜ8FKU_@lޱjhS&fpPqTrl5MF`٥5XS);8ք<.'l&ǺԖGuW9ms4EJv^8 =e"Cv_۝Jt DQIONDUPt:}PXحnO*A76Hwqm{i),i Eq`A I/F 73:*4Lg* bf=c )$ ~R}/PҼc^rڗ}or~Ws>R̗ 'W7lusuUݻϮ,w-a*~ Oy!0~=k0ϴnpȼ̽H c3_Sχ]vmv:h[KDhҦUk'@vA@1S-JbM?Eo\vcbsy 34Nq]4Juߴ7ڼ.#bL+l+ C_h `ºu?fY:%G/˗P=TDm=5=Ͻkbӧ5x]ܣ ]y'*tm} 0*צ'1g‹0*дɑ{4K31xٖ0JH0"%!Ɋ_i'nlE" ʺhǨq -ms(MwnD.l7nM3nrIr2_|PJ@`Ԩ@U>V6?0|P\jËW޽ h!\zD*TOct<1|&҉?$<@HML? Բg~;7 $JHL.Qf|2ӱSnL5P!? IG~yIh_bC$x?"KB>*B"hs,& )43A ;L4$B?E԰Dh"ԫȡ(b辄K $4Hm%B|.]WG4\}IѼC8m->* KEKmQ:(T!.Í)9B KH6R#.B!})S/W.:̥gjʝtz'$,(¤l+|X=LT ^-]+:,UK Kj#MMhLTJ5`.Ǧ[U*J4Hu`]@6\#VsqU߈68ˮ93w a"\rwYc7%+>;p^29>]};5o{p֬ H MtNF֘䋋 KgrlG7I(s &C I%ܯ!:EN A$&t2ȍ(>me+UZH%m4`[ "mP[ŲQTV5B} .QW7EKJu7UTRZ%a Hj[aVM@a7S?%-i '\ܸݑav(}r [՟ucπ|w9-"u/DS%L[,j>f4}O3/{ .2Ax %JYA6h 9Ă<dJ"5iI R{JZrίl3v(C0QEԵ>jGЬT@?!dvM"aYqGQ395)#n<Krov3퐋 C4wؑ{s_lOyޛWD=](|^c_zL\#j$qYHK DDNd$O~r2]b Hpj$֓t%Qt @),'[x9z ^QW!KnVV*nI^*\ Cc޲*m 9j+Ԝ%`Rb醼Z-%W \E*vJ$=9bH< '6|d>udxTUǓ)˟sQ? I #&n5ޒבr1d"#|3-}n8AhiKks26%@̛TNݟH&X";BfU ":S14VxgB"\Ual#2wHyowv,? L}^7 jZi$8Yɢ%r0:*}c$BH$5o^)8 /wz%l`XpSe>UP9Y,@J` h[TQ(EzuyG1Mi_sq9L@ XZj&μP 9#bĖ6!\DlK"Hj\ aj0N='yFޣSʓC D$|4^Vz#BvOBD@?0G&9rb *? ¯z g HVX/ZɐBl% &B($%mHQ"n0͘-BIMQeQ/&c^ X!J 'w(/~ˇR.^͋bbErX14ΆF*"t0s@-5 dc5cvt DG$(;$,xg""<N}z#|`i^2^qCEƃC"L!? h'{ r~-c=S3#B  +Ȟ*Dܨh Lf(xo# "O:.F$צ̌2.> Pn Q&R/  <3FQQh>/>hHrF磚vEsTt@m̲.|JNA&T,z&h]^I Lcf &Gg_tI3ȥ[3rFe@:[JT S4׭`NHIt _®&NJdLpI(6F62J}*bL $2b,$2HLiRsk=R&O';u<}K(e&% &U*5G,-?)Uh0 5dc,S{EwVÂHYnDC"!:a#1A0L=} s8YD٠Gyz 8Cj8sZiw4"("BOO~D jΧ^{3LS(#XLH+%aP3B2$Â8[ui MN'mbLPœwcc˳3'MCOl*N<U44r$:-A?5,GW؈6!Ԗ"P4EBj[>?0 3̑Dļ ERB0TDh71X\?F\ ^q67(!S'"MB +k# >6C:bw[W&f hæǖKhY䚞b pu.ؔM@$/_ xzzmRu^TIYݣ'6Z&* /}UW뱕B9gcen2=rjts204י>ҶvF+H6m}b[a:O!|89=๞'v4ٟۉa: ӍCUn:.z?)?O42M@m؏#D A$J5bC`_1dPTfIQ2v0di!V -FaBڄhE!ƔcirGl C93)Xp%/M)NRBuJb\-@e8K>1;B%U}fD%Sp >eew 1샂1(E, $l3[?捗м1c(\kH(IM{+b,>+l .dtLKaJ)7*!-VB[>@Rs6XGc0-9Xr d  4p䃠hp$YH@28n#ƆJJXҀB 7f\I B$h'O?Z%ѤI:gӝ@%zu֭\.]*S!4;  Zj]6/[06Ci8V1 >*G3_ Zѝ:Av\4jG4:9z} H]"w. "].]8pGݶw>t' Dqɏ#h~;$|_={joBD<\*`@XUA(S:b(L @UDPETC4FDEAB-beVYčv]BMBD>>EDdM a:!5UXOFO >5TbTd1dBfE4VRkfSj`DjE[zڥWz: SX~0?=X$YM9Vh mvlF0 [oPqwo!au% [.F ʆk&=^wݑ^g}QA}_Է{޷{^)@FDJ`da@hV^bS*)8 ]]L  yD>q%S}hSհ"_ɐVF2OHoW9Vu̒[p|*cx4Tw`Nhb.T[Y4fT"+Ph1ZkF#%l*uBjܮ~7ܫQBveBRAu{--Z) ?n%B~D«#N& L EVciX AMeDYT-$cH,RYuB7uADeO&6F(ID:"iuy>F]^/3ϛsZV?/ OD JQFJ dyGg(;"3:Q8C[ZcBV6@| V sna ^c%?Q"GgE2ܵE"6= +>bFgu^^Ȅ72*AwQx!a5ɉ1>0)|kd4l̆43.2+`H'WڐBBE})$~8& IC`&멉%S[f.*ZZye/x\@D1q FG2)S!Ά*UZ a8 Mrvj7t\A+LVvNBQBDrȲ ' mZSJH}wETZU!irRp)Oz1ʠMb Va hO1@ELa[̛|28E"Q9f5MlfBv 7u!2'p^`JX)(PS4pVch-<x0b,btP"E2ud J wR˔RPcɽ0IMo2˴N*0r.HV&_ 1VhpIdbaeZ1bLP%Ty}Hoa_XfcJTi]11y4=13& CRƱΰ퓘Uڤ*sm&D;YeponPIǶi'ma67*lZ84삫r+f%ix.IIv+)U)l|,KiQi..PRBN!~bêU Gv%*ATOeuB{+eH0u"6UCVWiygIIKm y5TW&@Scv3gev1a[kX$0n*6(n-p0K6B\IKPڤzʝ6IΣh'}Z5/1bT{]քSh3E7BV"4R3}x'3(:edrMhЀwp [7PW4XxMK+hq6Uk+M P_yMk Ƞ,J[ZPf6ħLÊ~R2.k^6$5q;..l8bKqcY6$Vy;Gx]?mHeeY~SR<^ zL k0kگ|ejʕtZQ yMD%-ҾJ@ăI Nc$Rw2%ѶE;Smw0_BIS3ji VX_ׁM#)^BdYvyTYyy7*6'ZM&7H{H+A7Xv8J,S{@qf\sr 8Gs(}y9|EbsNAF025]#߃vt1Y<_1oXGOAw@GE5jTibwģ`f@T!c'tG&bb3EQy't0QKX'tQcLX7VSw2c`Ëjny\7A%*E6#yͨouNSxGtHHepsj"qCM[qPV8QP$wF(9..7R.QRx !^A#pJ u5_XBBx?04JZ/[&0b<q5UZGymH&BaS_f`DyRn{4H$j(AjMj6Y rk1Y8rs,ݨBAf(!!NXe*2Qg|[G)7R}(F:W$(%|I& "KSۤGAIR]GF%;HW"BTizؐD°2'w"2R; LdnWl/> 0VQ]H?c4g%l@%m^SFR^1LtAՇ6^MY$y*ٌWpc7JVzQ,+TPXf8pqq}8{ F-8Kre!&ÙHmh5*"1] -j;w Q"O5qC^&/冂LSJlFJZ6R@S@ ę;9wnʝ5_C>Vxw5b[؇Hy#dU昄IZoCՈ,CeCe[DNWfbpf 8Q"%}Əi*E,#ȕG>wTw]%ؒQpeO+UQRT+pQxJM[[ Q!5+ 9E]fs5X[*\YwR ѳ:KUFZ[mꈟDKf5;QpkG/4x[ [INIQzTYy܈{k{jpk3zgcp G]VhqPSBA9R$14]u9.1s"E/竾˾ +K [;:",|싿l;Ll l!]', ( 7<ꛜ=? A,CLElGIKMO Q,SLUlWY[]_ a,cLelgikmo q,sLulwy{} ȁ,ȃLȅlȇȉȋȍȏ ɑ,ɓLɕ<&ɘ!@&* d"pɤNL "ASOaʵ˰ɁP?Ōɶ<" Nq̦ɖ,C!bA^qp <#L,Oq0#b"]6"QDd"*͆*:OdPq,@[\d4[]$M09^{ !TpM ]!AZ@MPͬ#M Mu=y]L|o\q\1N]#\q!OcSA$g@'~@N.^-F>_>-;*P SbbWo>N  `#SJ"U2N.b=MfMmD)^*D1޻LГ}\lr˲N厾p{>ҵ~mm-֣ޑҮLC=g]rݾTk̭^-׬CٲL~iXN}iF"XC[Tα @:|υ1ҳN^䤮0^!й 1? m^4#mD[]R$+} @_!w}3n!AMJ?>/DNMHxRViYH!o_ԴrbD07]BI4dFO^DNI9H=B ! D&"iKSP8D-ǭWV-6%+ɆeQ=JvXE3=zcǀemWuNSǖynLS1vcM:Hr\x^ B!tIh^ԫeXׅU鼣͵kNWTU[UkXYUXڸd@tJMܸ_WrH-+ޛuRX0%T55ډg̪^^nNNхezP+"hВ{qPWɞxWU)ޜ9zFmI~^˓k꬀ܸuhbXY[lCmGJc]ectܖeP#َpن_}Tdgعؤ~Ҋn`C=)5eyQPŭɆmf5&c;;ΣW\ٷ͵a,;0;vHeOoWɋTזrx҇\USk^=ARN5"Ċ/j1cǍCH$O`Ô0 S%M&1Y'N?}*hУ;%*]aJJիXjʵׯ`ÊKٳhӪ]V}Ƕݻx; Ux)P< 26/{3LR:ԌSKT KBUNYӠx.o^Ylm -q@ҥCt6Tk=]ËoBދ*{ɻsl%KutM%!3?wcs5)D@]tOva} @(ߊ,ׄCn%{K=⎠@)×C@Yn <:H: 3‡Jq?93DW@Tm*y(T6JTR:瞌SAHI$`쐨@~.dSD ӨRMԃuJ'Йv]iQf6GA)ccMzSA*lY"4;RϋXJU,F[qn)x{<,W6Uh&ʜc TYubqkkZ<)e 79_lLzaAۊ1BnHDM#g#10zD @5s<Ŏll̜h kt@mؼh,"U0셀TzȵX #h aickX˓”(.nbSO,r,pR xU#4;ASN~!(bBI~yh th:С%`ډ&.wu5+a#ʣ ;=` TKXYD7%TJϔH}\,~@ϿOS$G@Q~@&Oaf~["@ p3z (L W0 gH8̡w@ H"q#L&:PH*ZX̢.z` H2hLr6pH:x̣> IBL"F:|"?$IɯdS4I\,SBR%*MMxE,cIYڲ%.o)KE&1LW3L?6̲Uy3ŢJt'BJv 8)It3+YG:t-'WN2WBU mmPeQ*+UJ\TwWժV"Ox^5ffmS֥$[q'oUV՟ /Pkݜ_5WD}MʭݨJCLJa,f"Z0,, #4D&[JÊ&^U*uHNZVr[A+M:[{N,` q>.@+U:.ԝʍͲݫ̕ĭx%YS+] '!ONSi +ߗC!69pV,p2uIvgeوY5):X3;<ֶ߭BnAbu!Y(vTq{^uXoU/R,WnJ塶CK 6|l"Ľ6*hž6/B0gF)5Jy+/I3gM7^J5StL,ݝJ#uZ?VVq\$0s Uص>6VN{^d1[,bzJrO#qv7SfRi~/KQv%RJeM*R>R˄e }A znVmӉNzr6{.հ6uV*k5nrW˻lVxS{3B9&6k!l<(肣͆2e۵MS DqM,mkNN'yǀ XOڥ]>qDrQ%\gy5l5U4k..W/sq@c[TN HSsiEejxaWUWSu5SWtnWiuZ5MF lv`'קLx!Ztv7LVQ&RG}`%MhYgh G^W{*V9edqH{7zZEy\Wuyey?VsU%(2sTqzyJ1]N1fO(({w{mxg^auVW[I|X`ϧ7,UvnV4^LdrLpGL|6Qu`F\Wpf5X$@SivumKq6mz8W&GUjIgcTXr\chURs \r6 ȑ<‚Vr%F{?uTttmxUGS-|]XufhSPfYKAڷ}Q)[eV9LHQpgQYo~`5}XfaTqS8SiVmȃĒ (Iy8!TGbƦ=Th0ϥc 9z\P剙 lkJqqY{s$Op mm>ua֋6fhƈ||f`njPqJq_LKWS٘Kp7L Xfip6XwJx>[S H&)qa@y dvh)8H&cB瀰IVwȢ5u郘DUP0W OhXЉ_xոM۹[!vG~A&nh$%xS!7bT 8I|%IpxPlXx,6zإd cIr\~ʧVk&WUTy֨i9U!񑨉bx5-P'USrI|ś32oX{PJ XOvVZ}S}LQyQTzW~nGK)ԕX gIwX~(cLP,`pSA:SspNFw殀zFvX zLŠjUr5gh` 8s : 'ʡKqU$*E=eufJS;m7Af6MP|Χ::)D*QKsp7N ^ TϪٹiv\~]klQZbN(( rk]uڗ TɘTxtPܻ$nmv0lll nj` -zw[}RaT VЙ } Llg!Q0$~t():W4j>I6,=g@L> |۬*1:Wl:ל`[X~Rka9 oL/_ ܗxץF| 0g }zJ+iR1"}\Xn}{ӳ{k6ĹfA=Dk_HGML=Eíݍ+Z b<hX5'dh)ì}7׮ɾ$Zz݂z ׁxy ЃVMQlٝ\ ࡭#Ғړ(uNk*AS?ZGQ+E 5}P[ȭ }ͭblpS-qU!|o-q{l,xXVVzK< 9l'xyɠxK[r7UQ.۹:FZJ̾Z1Ŧ>ŽQRK TM,Zb7QB͚ BPޣ=ȉ{^ ӕ]ang9KT~߀b̧؂J#mXQ}ٚ} #=$}dJiW<魍6֚,>;,Bk ۤ۬<ë/6nJ>56K[@~[b Mf.Yފgfi.u[.y KKa pfRQaaKQ.Q'L}K;}= ~QϽRνZ~7ElkSЯoܮԟQ<9h MS4d"*JJ4p%2C҃<%"" 롁k&{ 2lGzL0d>@ GIЩ5FC2դm4lov!2iTl",I4|΄"=COP'҈#BQPboQcˡ"$O/PK 9̩)T)DX VNZ&֮%!R-ZD@e!fǖp̓O2HzQlT&,4tԴL4,u8-\mlEP! 9S.9Ӕ]<۱a&&P'JPQH,EIG-%N};9Q=ϜoKc:+dU\2,< 1-ΘB\x_>IGl<1Hzo2JĘD&6USֶJ^nz].zM,5M69Nurfjcc7fϘB'єi l -i);j)>fاIY95z! CM-3Z!_|!a|?}_Z!`z7H r[{7['a$ $@]8xR*:h*KR&QZѐG`s#0飲s6K2s֬"5_L7a??G)0 \d#$\&Uڍ]lGL 8eMW/W&aM YL!0^Ӓ ojkFl7:#f%焨sK;:8qVMT" P{Sۧ/4%APX)xN+Y*=TfB4|CJmHoW̷S 6~7lP6dHsP 8QlS+%!i4RU@TBh/%A؄u^f%SZ7KcΚTFJ4fʚ$f(i,0p]-#Zψ[+ِ@cD:1K ";K1LhZ:D92O)5QHH(^Q̊rEYG^Ϝ<1]!&Kg4,$+_ BkSKb0"Hp*+,,Y5R6hk.e}&ToHӴ'p3|#! Ĭ!AMb_.^IB{|/KASd# <}D>N%z:+:*-bQ<->O0]|1ۇ٦F@dvƨmU8fAYN\v9#g41$REC:mI. l?a-R:{ ez9R'gbSYhUV'o8R6+ 9þ.›k)!47rd > A RS4Z S@5S#);H,Tۗ!i >Q8f)K4;T6cR)*H)!绮 T92#"{<̣<"{ٙA}C-L~Fc8.R' 1Q (&cZ=89:F!,,L7壦.|9řEBk)6LÈlj@6AC;Bsd$I:@K435sDO; ۺD=E!$!?H693;>VŠrzH:&s#Z>3b1$BdL2wJA7RB&NY!Kij8~n8F *࡭},9hLnj ȄL((b=,c=G0CABd94lȩ$EM6,<ڬC= D>4D9٫A4@4" 4k?S{ĴDxG0KIZ1aLOIN+ ;\E)csX͠6MtM_4Ë,7\>.47;FL#c 'f hQ3+'˾t˿44(18(K5c22@BMLƄKd hh'%B{=(}H.-|nJĄ5P09*:Ed@>P9]|Ot;ӎIakG|DD5NOč(OiZ2eLe@ {OJsDʏO3U|lH,|MzҙE4Hm7# ŷT#  =ћKhDmA0ϣ"MiLsuL%}K%GB}x}`*Д#AB(*=4M Ӭ4P}\SeeCN6Aӎ6-I0TD<;@}IΗ5㘂D=!k05|?FH0dB!8Z0R!=\@@Q}3M Vu-05X^\F9ҳ@BB* Pbq'EVA2jdteULgMQÍ)sQ58-(IIXO%sṷLmԄLvP{%&Wl,m[.E͵]ۆ7]]35SuXcCU=eTC,Y9͏4TREڎ,^D{YD[TΪ[JPٰJ=& @%T-&YEJe\|XXެj]* K`%a[`]W$$[0"Uy"x\~[˿hQh66QEX0c3Uiu\\t=RwL~'n2K,}``@²X[LfH4u3cLctzc߄I#ΐU@9O<T@%tNkHY䓤YB65_Ι$_-ߪ;@}mMc<-L-^ϟe{!E4 [5^cLeZڭ]1V~~b-?:%:& wbaࠨ[1Q, !aق=nju^anpV\rQarm$ܔ#aЭu{%d-,hcNf.fbP4厮M۽X=5^dJF^9ӏ<.ICfhC>Si% d5dBF^)8ZcY6&n ًM^fno]I#dSG\NNf %vJfI\Oڙjd]_rH1!oW}S1|wAƇ b dyW Au(:/\\0Ç,=}PrH߂0YF>EJ`cb K!MA(fj /nT2%0(W3B52 X.A` V2fb%Tʄ( MV2K )6=uҪ8A$w(VG$pD%ݹ"wHH} Ѕ$}GSuxQ!ň#X7N!^,cKOZyѥ>ݩ](h|Hh; QXHUtv#'e%J"=?v)Pbe+U$EfH瘛7Kڲ<,$@։ p*ciRP/ˤ_rlE+iJJU Pj+V,H5썍ڣj#"YP¥d}"Ȓ pJ(3@Ԓ CFH؏Agx(õ8ǍxTXRlK]VO;/{Է-҈D~^ A*|Z^F#whC؋_~[quOW]EP(b񲆭g_ xMk;^Cu}U`ysC**;WD؅/,aZ(qkְYFAU(|T* f[ ]b|إ1!xɒ?5/Q^yi^] c" C$γ19V'.j>ۛP7EmOs; qW)& ]( VR(g:5~u@콯A̛ᄋu(^Y-\=}%o vE"b% L*]4My [Q`~%+PG?Fȅ-t/,?5Y=Jb%wV4I+4 PE5^HLZE=E9UDցY5%AH~X6&t5D $`X0N޼^ZaE٢K"ߍ)_\.501ICDX%I5A=cKTȩ_g-Fg$-V繁!Q "Q//^CjnZ,2N@M.^KbQ?LcI4*546n#؁E#RFi;NC& ^Eܔ~da@$ f CplA!)x7.hV]'veB$-HB`.a* 2:_Oݡ*!7ȢCe6sU'chiMMj_Ɂ$ح6g? :/WU5hP@YЀ%)j.}(|h+jЈV_e -_%{`&(h: RjVj*4@*beKu9*^& ^,kQQmVlOM @ƒmҋ`Blop)qƀ,* szli:)~9I T.-H^*E FmddioDbL"t{m{(ΜK rm/ 'ꪯ^Ocف X>k$t?߂-F6ĸjE/-rKe!..֫_ZN*:D:R&u~Ն}fhޝ~ V,ƶNCQk ڦlc# toMM!A&di,rGiCtsR l&ւV;V*D6iKT)|KTAiOjƜٚ Wĭ Rm/A\2U*Wdch(q+nkfŸNrns. \\馮jcChp*qԁ!x֮-q/jlf\@avi^l>ololFT?>?&&2睞Ҁ'V,iCT8[?cޔ0E6m)(:VN/nDZ&M0;k%Fp̱0-ܶ '=-6.-_E04QVz],. D򩢶6t>hS.j g|A[sF%nmZ?_A:tk01L'UA*U*dc-L lKfE$fK:4!o.j.i2ł#,0SM[rX`*Z+T $)o A)2-(i;uF?20` Zk*rETr3lC4nEF_Fˁv}CWwׁү1N{?=3?S/3-3W#u?8;'o{g);Ȯ`8D}'Ax x!ʲoEr!??uG5@'_A &TEATAS,5L8qMXǂPn,(Mڿ 9s[7o̹-?nIe'СC JBNScpTbM`pk^c ~Q1jߢe F l 7K|qZ06 |nI(J(_D~6oMVZrUjvu uJN+ZeTM%zKgHvK U*E lL?,,(L4S~9BID%&(S%\)3Bꩂ ␫S;Bn WF",- #CP?"]&8L 9G ', m {de&! yȗi"L-R*4!O SZIi ˗ę/M0 =z*+Yz쭐JERTnZ+Rt2K K,1 z)M;S8+c mv+7^/+9+ଂןS!ٺ c۟۝ <5jlK]~_ _zB HN=a_C-8,.WBcBC b1Ѐcp06hTPBXԳ=ihLGw)%XK&'~Å,/yUCDe(;٢r=% {E HܮLDjoxSSzj!$D2[Sj eh9-j.vV`<ڡ|$o|#?EYgp; *[Q0: l; V'<2f }V=">,*_gJWKM" +)ؗ>m},xgx2p\دG@8b@@یȾYp̚?\M\HQ8h#s˄a")E 44-r>\"Q$(4 ΄4bV3Ga5T-Eu>Q7e-Daa<*6)D $e.CgƛC%u>PWZ0+(/֬? /bpИ6!rn&h3;)p H@@bƜ^NY@[βio%LJOA*ýP (M(:ѹRH(Ę  i]A$")Jmi)h0S,/IJT|Q Seoxˬj:1jn_*G;$1pIRޭ VxiVel0)Q?xU$ ]+I\S_D[_/=Q̚ìA0@pĬpLX;Y;f M1Hf+p UMzB,%{K?+fr{B7+G 'tQhA:iWL a/M j/}S3I٪jI28pAZx8ʰ2{ EN 5rUXG qzV`HDyi!Y"4LLnIj6O*B NwkP6t1-TBVaWٯ+pnٱ,<f"߄0G7:72\AFmXjaN $gAN.7L3ηMEDmY9KUA@Q7*J續C QrmS$.Hw{Uη-r0inuK0T}Z$2gUನDRnB ڝ$ Camݞmm+GևatE\kH:}oyBE!BS1dGp D*7'[LPd7Fٙ]fEZ\ýprYYG;Z!l8 e "Cf),`Ladf y^ kd!X)h>@%Va1: \F(< e&FMΉȽnދ-b*W$&DAHpSqC]TN͍ĘZ  lprGŬ B@w.||/OAIt/$dh/ z+H"f2K2˺lB  o)bL PI کl΂1I 2ɚdKB,0"x <2MK-!* .!\f.a[ok' b bZdJo30`" OTo&.8'-4/5 26 RrLo;ppXvp&FQԾ \)-)$`Vp*Yn "߬n^A]o4.O-L1D2NbRϯYNodB n)щހ P!dף5ndqd4pd q,c$ՓV$s&RP6jY@ r?qSn(R)G 옲z)ut3PCN]UOQi"EL_ nTGmYtv`iG-fGMqˊH5N4! NI@4VdXLBnBNo&Spv0TN!TVeOd4MY. "ME&OݲEaG{t|g_h Gui,,BieS6b+ji"V!.R 7 2T@5 R9Gu&@P=hr&V% 1P1D>#Xq/64"6ڢ0nbSpmy2E atle/\{7%1RB b*!U7oPmEMuS]SuNFW^W_F7!|M3niVh`-{-&4/E vdRcdGVMWe}E6e'sp&T$a@4/P`qh;`{w5zhVa x ^6]wwjgbI6kl!u^ <W3!V!I9TpNU048T W!&SJ3h(o$n]B/n5 ?'E(@RuTwu[Ag7[P;)R a*IT^54^u],_Eaxa,1Yz}LayaGot˾GKHD3OvNYcC.d54Ԗ5VIt~KctiLΜe1ngTN^}| !8`V;y;8!iI㕑&jmB[#)YXuw󱎏2!\rSV!Hm3Z=lsMuNFCR$(,1W0W50!s R969?Ze8َ[ۻ>#]iO^ac;R5E]U]--Yzα7ݠv^~  B BAaF!r5!*:!  M%co,EC9?4O3 "̸ѓ0b@ t?G:%^\$,*9@EiQE^vIwLV2YnI!URJReV]}Zde_?(l5? *Ȧ2a ĆZ96@6_aU6h[ABKjkR1({[QC,{4L9]M6#iSLy+suWyg^BD|^|D}g~S&p%=LrQ$2LSE 3) ѕWRQx9"3D+r92\Ge#Y63u9dD4T]jJ߬%Ԏ&dS׮yD'N^$PN5TOنkT-h}ec86%P]t~2Z)fXZiժdWFgMmyO 7mx'nC'n"UPǁ 6N78؆*I^zu{UWkz˯~kTI AjRtQ(D/f0"v<7 uOJ eܱr9 fC0+5bF@P 2 ˆֈfHHhD$ތG\ڗԈ =MLr`>_bkm3,Z̑Qec(&$n66[ErL757Az|T[$sWHU67[|؁.QctBJ$=-%0>2WauQuHjb(5J2cB2vaMEAĉ;4Vo@Ne21 0oE!mf/4O6χ ʇ8hP;n5+7{͂[h`<2S}o*mQ)GfɅ)#gy6̒7zn7[Ct=0=n0 p lk y=@ Ԑ{FD1F%;'`ns;T|<,/=V*Typ%,r>W׈8SQ @ "TX96&9AI@0CLQ3PD4gYCXE@d$3)?_G#(tWSa0+BDRqIB О4AtMWYuM2  *y@.3$T4I  301Z'94!YRAOcUk~0ZBTI#aVw~ d=jet%U v5݂n@|uG:z`vڒW?7~<LaiGGq8CBoy)ȍjA\pO:A69Sx .XK7uhclGLe22D# ȳ}}2QAx41JNPcµE R 5 5 G}N8P{$䐫wDyĺi Z⚫ܺJJ ? ;z}z?Y;;@M6Y"B&F#XlZG&t>(\VH8zŴ=ďĤ$ cNeH7'._茲-E R`1\ %WQ} )ݐwEEx#Dw_0 fx <hfR `\k0 Nh4QQ2J/:h35 JY@ HYT׸ کڬ?<:N5\U35u˞ӊQo+N3# 1 IAm/##Np9 mX>ᢦ5fK4>܈jZ-X+! ֻf˗w:}DIPnGUqW+#d U)hv*b gűyx HX|x'kό' ShWeRtb:S,b>C?!z˸t:| Ĕğ? "2@0ӟ*JJ* 3QYڴK4zWᕋM SU\6 ?& ILͫ(l@ ĺ mi  P ` ѽд@͠СaCw0C^02G%]W}1@=3p#cJ9AYƶTl?*- !%͝opY}!+W=#=]5->]!VU!VY(N"2#(j B%Wx ǃB q=; Yo+]4gg؞fcH:nWlujT"P/2S3Bi͵ާT +Ɛ[ۦ  s+Nm}㊸Pݯʮ^pp` ^0,@bLXkZiHI$S TKк0Y$NA1S@д9YLc[:`C! (-(N(>nBmuȢ 6b`"541G&uI'V>d ěeC, -q1H^RogfLLT#UjzBIi$$ Bbևőާaiњ-Dlz]] -Z N.з.~WP~9n{L -  y03l>3Tw@$K02np:t6@!eDRkB&b!NBW+ֱ^뵛AG"?bmvbl2 t+tEȐp&+& Y 7Ҩh3:U";h O8蟒`:EY2I&>ZidrrqSOJWJ FՏXk#*B,BB 'r+F"XR +0k1ĨU 2$1.2l!M::#RST m߂=19=K([=Ƒ]tY!>>$+L oӥfB.4oeKH?0 (M3| 77 ILD^@cE$cd[LA/P@4-22 2'l{˄.l3G1sK &cU !ŐVqpJZ{P?I"/;/I<* 3Є>N?\TQ?&9s+j Q~'"Qc}h`*!j]C؄z묶KYd/k0W J1:c.\r'm0w6f6 kx#ެdI'8bXBiο#L> BTО$b_ɹ?H?">2@RPسgSV*F,"?`XxEHҋ>31*omۘfٍl{T&m wD>2&$ BДf8M}.OE2 љD}P6Li/r 8͵r _Xe2Sr,992*~HB`HՄw<NlO 'ăQIjy <؊z Y>bNe{kqYaVBꩾ`#!Z>?1D'y `B8+\F9Q\p I:uTr$!!Na'9aOk*LQ)b(E$E J$$"\Q40BH L}'Ƅ'&.]) Tʔ.w|c-ĎH"BxA$6AL@jI0A#N"C ;l.ekMJVCmHh[1̖*siJR:3'fQ<^ 8bUV*!+JXݖe{cIK[[>^%.ufY~6E-XV8S2`4_h(#YE5@,7 )G_Dk<̚#0eqX2Fey T7; -Ps`Xf*DD.V1!UKZ..Ua5VxUZ.?e,_F.`W:^Kidqp,D$ i"}*+9M:d\C AL%li#h)9; y-S˵eB QC aC WbW[YluBDvtA|gl*YI%zՓYxW]1a^e/YI_bn{u_~Nfcr>ӯP55̥ 06H[', 'n8épa}U]Bqx3Ӹ_-KH$:m|qanr'iYKNoAa-2&3 9\b˟PZV76FNܕxW@Zaiˣ_]16=a`,Jl7m2쐘E"#v![DHҗiGZF7/SkվC1ՎalSkU:nuHb҃׼?[Bi^s4e^8C)O)9{*Wխ׫ {[/d$K_Cu ` Zhf-{3"hn>! N 1)n7#Y*PI@0@@\ "" {@KJ@9 ? ?@ s3S#4ZA5J:8)2KÅ`x 02x)('C<+9Ģ$ACY(j@J>*_-[<2YD(JKœVbU¼%J5Y*[;=Y =U`Qp=S1X]B-ZEқI3gx?.nȃ  p7ȃ ra! rPFJ3{`Fir ¯،ۧ یlL w`)(l갯`0R 1tѰ(` A"0$t {(0(PLj;$ xlHB ɒ ɐ ,9Id:A9" )D;=CBa8aYD PKY;6\88;lK@\ѹ̃ZZDQ-ْ%Z6`ϫ]SDDlS-5ֻ5ޚ-DBKDѼ5&t!Cq%&M)!iܤ Oprp:It!\I"pJ!/'I`ᕓ 3\pAv`9Geao/5…ap3*\P4o55(bQ( 2ҿ[|88 5{ fQ8Ȥ430IQQ31Ja%+b"];:$;k3d`Y 6A@#Js 5YA4O̩0%R4>-D=D>T-D^^nH^TCTPL_5{S3T)>Z6UU-Z*_;(M#%LC^-(Z::DddU/URHR(>j;HdJ"T`qP<q}?ɳ)!#qM$;D*YA00v,Sdta#7LS_c8Xp/Ђa/O@te>rYA( @r e!Ir hFHo83BI4 -ILɔL"`bX--0P-J$\Y]9-3,CxuRb;33mMa&1lS60MWEWa54%>QrL2TGL<:|ҵjTBjTLEV]R>9Vdj-]-X<^V <0\V4^]TKN,1_ȳTU9K9^kR`VgecVluk2m2ekӖ@˸4oC˳3yOvO=?@WIT?88-@ /aدY/`큨M#ݘyQՁЁ,]YZq 'q܋p;+/I&Z`4ZeX$.8Z95B"L7`+`dIMId䄐dL:0JZYL[TeB?pLb\B"=Œ*}o$,|*32 0f0X).8崸}|%J/}R& sQ!Wa T)9ɲlV9U0?}ɨE?a vVONd9udZ_"r~׫^Q/i`;ׯ)g $[jPMi~G7nާWBz|`h햚uԐSgpLCh/ʸ1.BlaYF6 S23Rr-ˏ??e^H$T(j5Zٗ\u,)! Ӏ9Wm~12%k] ɡ@VYaũ.!E b+=iUHF2@s,`X/lD ԁy|g" ', %P#XRA~1:-xWA LȐ49`DAB6J=  ReԤH@6TKHa*,sE d}R kΡ)0f+u.s&loGP ͠dجm~R@*6q}8XCcxSE隸 c`$F;Q9ԮZ!;q`IK|h%a ,?`e<("bz߾jFZBCd0(n>C@$4wE+PB`VSgJ{Vv4PƇG"bH ]"QA3'ñWjѷe&"! 0!-0,3@4׬hVo?EEF[BT@KQ 6̷[ 'ALqT˿ّhxR"%ˌVqDm|)B9 <]XS4 zC*ņϨ4?=EZӞV-1  f,@\,Ht\5E`4ES4̚ }, Lh7!Zh8d# Y TÖUaIGMOHp-^4?b ľE "^a ďSR]Pp G*ƛ 8A0'N,·@ ǨQ"ZDyXFQ{H9?l?CI Aa-Z{iVe0dd0ʬhL(L $^B!-iѵ!\/i TiusM Td!qQɔ TiTdQ[Qly~R~0M-م V#L6 %LIP,@@`H{Ձb]1T;A8@ԕ])j\,]0 U AQDBAA@;X B  8S A)@8b']% X8u#娦8f1ЀoVZ?$v,˜b$"XQ'w,,.^P 1™PQ JwqW/rm{wb49L;N4T|1@yZܕ\f DT|B8q-h)0b,By2]ADFh@]_eF]T_^iE/\ьXsY@q8ZG iX.@B*h0%ipCʐih(OTdS6LaK>f\h%YRpVʢ툚,t&I)u !Q9(Q&pڨc l*FE ] t\nަUv\ QЦ%bBa1ȝlpF(@A 8*&~@H8,1OǓAdªIY^u"X}IO+2j|H"{ܧd A`ɕA4>PS@X\&n2†m#;d69PPm!-hĩ1-l^fP 3 3dPD* ReX XBgP(a2eKvn٤fASԗ|żWl18/&CTd }]wn!ݑB}WĂ0\%`N& 8|Iݬ9aH ܝEHF+E̝d?ȣrɩɝfIjD媀 AE݁@tAB B! GDhU0D Ģ),qJ c'!#L[ ԢATH'쌀KSٜd@b͒.F 0N6d5 5Aj-ZgN)VXX2dنSiQDmŖ ԁ%">d8(L9WZj)e_!a%$Bll8V$C'g ˬLʐ( /Q,вX璥?]d9c:/ɣDۭ"^]Gp#!vbED<>o۱b ؕjT.G@JbFI8']BkFhoyTIHyHs$Ckn 4s $Vk;qf+S BK!Fiڇ\t A@D/%EDCNreZky1Ch˝2I-KPFVXqL!Ft?PA!xRXdPėK,fZ(m{exZF~Z$mW/m*h LWDtK T)DNmD> }!fLH.|ȕ7е){B2B{)(fE1-%@Aʈ0jXJ$(DfPn i@c$N7Q ]'13EAZ4Mv+].{>TxgI.iPxt>CGgFBFձ@kZ|È(JTuVUJ'b˟@݅u*PZQ5ba[|mAiAȉXg XuhyReLF[8dL[(i$fAJ@0\tzp -|"d4_^!ISA#)ІzEyHfTbXU22\!bкrnlAtѺ&~S8*{ 4y5OCH妃i4Sk‚8\;usbݮ!B&wv%]Nre u+2'd"vb]]uMɀf~-S 8>:#RxnHTjq&.O@oz9x1dttM | OʠȞQX,2Rl0V@bJ-5Em&/ oV)I*leٟdPF9ڧ$}i+i̬Z["dL .7Nl.h|?1l=m6u<#xb47?ʎ$bS@YjN"N71e:#4E3 SƍbǝȨV!M:5i T^m A/RCCaCC`zplUp"(d/B/BửJwX:to?:&4l!>Tg\Y ϾAqϞ"s&Ju0a~f [j_y%챪fÊ:UZVSp t˭eK)t).$-/?3a$8J>c8pOJX` BYPl&GX*b`XhSXbȥrTOHT@R%'G!M1EH'2".%e0acYb;Hub 3\rA4ow+ ̰OCH1&[ |S )޿ ri5,yY׋wS6Cp'@B 崋I%xN-Ph+Rm5.㵝 ʁZ+Jo*Y>"f%-X0 A(-h@ΈVۙBG Mc x(\r`ȃ'r"\s%.u;tpA3 0k`}US&HTHM%0!֬x3t&9v!;֭sUH-ٗ*ʓu}c83nPUQ-;WΏ1"1珤$umM1&i Ґ S.Yt0S8UC1 =T`R YBb]H0".dD#t  xLU0&|tZI}t R*WX\=MðC1L[!::M7m\(!Jg*:` T1)V' {b~O=Bp7z;^3IYBz{vfGJRD5Ro>S ޼'0ā(IJR=(Q]2Pg?#Zɟ?rV} $ aqTi>a☦FYӒ84lG9$"Q18Eח\Yd@r7d[ht{ _@DzO ٻFA2dd cBc>:3`ԬF U&+"?hnF$<33DHt"k\'H,  P @ @ *(DFADCzX` Þ %0,NB@AE\ CJ^BD$%\j RL$P:Jm$ĞL"*.n,P}!"$En=lg E~"s0#0#* 8,P a2En1w@!0*0H1g/ 1x/0\ 5J!$e(bD0g)1ʿ)r)T&"}?l"pb4NpCf u䤰0|:S(RZʥZ*R윂${b*{FؼGh!`! RN@:gdn6%% $J: 8/@:`QJE: <mLQyc`\BxbȤb* `^J_( B2CXEFN V&Ps P A` A+]b@!(@ svq (j(mm@ Dpr)qpPE]",_~$k$٦Go''2@jIժ< j.ʄ gBop^P\:F4\< @-t`O&$BN++r@]N2ǿ6tWdNTİ. +a|n(&Q'E/Dpƴ)"2*ZbExe*D $SDPetlm|\B&d.eP42-sT~^WW'D*$& 6O9Q :FZ!55"Z!\9%:a^Q1$ fh_5yHA>+&haĔrA tNtU\:cc1V@@ct+\q")&(G)S)T p ^ b$Eeg0y%otp(E"Ac_j_>dfCuBeDoKå!ދWrҦ*a%28o>F>SrrVfFPu.o RShMPl%gD[ARhRRWhMHg*",SPX;ES R .g$Vfs|TxɇO &Oa*zUDF@w 0zExx-@Z0A[\\w^#ANW\}#[[[%4~^-G4,*/4tK2J8 n\^Țp N::}Hl !8Y8]uASvA))2Ǩ8*1g$ζ)JL]%(4Ae8nt-`p&א"_bmKFe]bc(JF} dAFg& RD"TQXD& >`u|ˇE(STQJ(@FjȉOe hdĜ 3)Nb°ndsR"B|IZY婌 T[~G~ace8` tdu ZA7\ ǧV=B=\B d +VMM|"A) Z2\[a@A f\g:Vu!f%46cSVAU6Oux,Y\Bp@ lz[e*(ejzfn\bVܢZ^Ц0L'Apb͔L&7 Ď7 7ՏERAXXBV RF{UR./ O2!QhV/!ydn$.UIa箙OU!r.꬈Ѩ7b#s,"%xwtdN*P>Rut*̻+,&2P* Gt `$"8'R 9P@\W ׆A` eP{S([b(N! N9O$(%FP`:w 9%('%ІTȀ N^_` a`%vZgXN+Yʇ%Nezp2|̽:k.F`.>2' )ث'M1ǐ 6^ʄ;Τ}g,זq ? q'D$W;r q*YTeDGE&rTWXS̫.qutΰ$`B8W pji怊&lEr Rշ~\Fe_v䂳e5Y土*Y;{2( (7YyWUnjG.f$CZ1\Usms>bMw~TA 1Iɗ$9 #L4Hd37ÓO"a"|ȗ-TTq!({EsiT|sRg'QD!%RiA8%-w4pA3AAO0З~I×@XTQ=3 HM91#2dL3Ӭue멝w)j9m.V5 ஻?ے"0pt]-6%z_3N֊b($&ZgucAKOUJI2?^f8Qpx.oԐ4s̵N[7tS;0DK]}$?ah!v-їO<(!J&%:f=Lq!GB>q("KM \G 2֑L)!G/scQ?uK2^Eǘ\ܟ@W>(+=uK2 {u }SҞp=S9wCTOY"jT6yC{ġ(Vg{ag)^ e ^UjU8J̠5`JԊYqI0#8 (JY_*a )&LHCme{W?:Zd'"Q(C^6A'88YEd-+.q*T݅/h_COaZd%HcG $ lRˤp(o}܉$w45/EQQK N6"wWSB4%R5l=-UPeE<Oj8aZs2z:H{ UAl1HW(9rIpcHjR|nG;r#znXD몰*B ^xP}Ț|L({b\s%Bt6c^jnf{$*W&O ?9@> 嚃d͏!jjb 5suчxBG%n(:7%KF$$UHH4>yʦ8*$ENHBÃo!rAcQ$NvrCp':NzauH>*bpM Ob'w>U?5RKT %(܆YE1hzX@e*N%~>m5kЩӇFh‡HA) xȭ Yr# R bH hs%-QVK-gTJ7*DBoYם *2IdLH5q$K'Ca. [",OY͎vfh U܅إmK%zcvK,B 2>*8?X< ##2Xv\7S3ּf}bEyYNٌfG<7pnAnCn'լ`U$Р 7"+J{;q5%QDN@^pߒ#REtp uVTzŮZ8`.aXL NlKR[n)⿘t[^I /958t731C1='Hc)q &z&p<#74(,w\>R'AAHpnj[12TH:OcAgǙ{'2mvx'{.?[H\@~t\.T;D{5(eCcOwu Dʯkxm K[W[72&Hwнߛx6D߈/E~1 G.ZUs().cNBdR`'sC7 (353 PBÑnS78XENKPY9TU8郰 >@l˓sr Sp6))m u|,7p09`Z_@`*3:5ҷ9 txJ /¸0La$Z 3[N#A- :tB'&eKPJzBL^8U/:ta_U~tvGBel"@$g2J3ɬ='M 2`"撿m[q wdn(w{Z.k.W<#c[%[ymW˽[G9/ \CCIS o.!uGԉ,=>+ pꂰhq 9mE~堆 (P'jyD HP!?Rq"233B^3c*ű7 `Nf̢A3$ 3 &p Y;I wKK+B^֥o5Z|$:x c:9,{ hIȌL$K⇷NXhV83b:VM-iBd7dA VR,ຯ:U@&3kwn38MҊUUYE7R@k!t6}j`{rĚ謲w%(;HVg-2{z[ Z1 g .aϙg&xX[X\!G /g[qx%%/ 3SگiV1AS0)Dxuεu.Ap*.Nm.y  M  =Q |דzHކx{(24ыgz5p2ȷZ6kO /(ymm]Q¶cm"*|kQ4/ h! ]8ϯ6/ϭbAewV[nq13 ^ڱ}UnM&p %p13ǐ-tv~ asO1ى+fmZ UC, 34G;6S@ CPp`&^P <2b#0 p/rɞ)9S3PCn*cr-zU^@wNT(r b{Bg&)A DBVA-!HYUAh<|mcv2%eҍQ#UTBQa@<A # $Ĉ|ٳF.3E|8&$,UrATV"!i O|v$h"F6|D*2ej4֜dlZUر"a6Z8|%I,լ j B#f8LxQćTSΈkϠA?eL0oNpp'ɿSt-Yyg?%a(II {|?G?~C_[anJT%!C¤ RI@'d@9F-$xNO.8~ᦏRVLFRb=PbI%YtLRz_RCb /8f`P *bu0QJ`@HyMRflJG@RH@P`c:IoyOBTR7 $6i h`h:[df]9 : rSUά@ܮ@e1j-""l#@ bm#r0=\n!"%Ѕ&N$h)`G' $j`Lp: Dpj37K*~ K00@+4άjL3o*~*[~!<@c:7C@RN#l3F1hB R)R\DmA=0ϐ@Q,򌪦uM ^uRKeTJgge$ӧ?叟Dk?9SF$>qJOUd5S;jUbۇ(!Pb*U֖pdq'BjCp]dwHFpȭX\պ\[ C2Cݨd^O xS/]H%xB0#\XP`E$E Nby8@JP66Gl/Uы4d&sZ1 TY`b&HEbU 33 OрSfYHC\E39k.#}pm:"x5Jԁ%^Z< !,j❔$9m4䰋{֡G\O nSA=]ĩ0 qX 6(ar~$RLmukDX% Q:`U*/uU9#EȮt ?۝,g )E>/ljO:#bFE d::/Y!ߚD&92CqlЗŲtЃܩjv8ɪy-K^1,FK݆E'M +?^;6.cyp[,У``6|0 h2@7Pخ.ØR /R* S?kRy;2,\0B1C'yҟ8{7sx͑TkBBA@3B @ #1w̡:s (9*$BHC";\89䒈aa j)[%r!(D=rqH0鲑K)HJ i)H)*Z#TEqHEVD< )`_i;Ӱ _"Ia&! :,qF2 XӐ24yiB2 @eYN{ui yоH-}V$񻀪G`` jãCH@.m:ݺ@ 8O: /Q T ୧1I?ҊiV3T 9 rz AQyABqP18[A)<Iz1wJ33(< \x-%a4ZaʪYrkk1Ȁǔ;{3;rW;9&!rU1+R+ă q% »_p @Pc%Y%ِ$9CZ4QքFTX<$S\P/Nk;1$| |{x  $Hز#6< ZȄ 8. It s$|0 x@%>%`?4H ŪIUQJBT";!mR'&Y[Pc1EHK1}0KIKCK LdX͙2S7K8%=$Ecy]{PsԌ 6uHtQu٫s1Lm !%XS> l -- ;Z8M1;5;k YE4XM2/:%%S B@)R\ YK2OO*"Lsܴ yˊ$K$X*ekBB?ٲ#ں-H6@ "I1-7 ِEV8%+W=Y{$̩:&K!Ҍ3ҟ# )R;Ҧ=KllbkS0R@a[P:/K&:8m,Qê";!hX 4m JJ\M- sTZ5˥aI2Nõk+۵2hNXY@`0"_\ ghX$y:zS)UJ\\:c-O&rd2wa xau 06c(|Wh@ȁ0G`سp ZA 6 m-% dѴط@@ ќeX 'aoEhZS(auKAj$5=s&0h2ICC S&#dX*Tر1R>;>A0B0a0?1C(FX )CB=G[fO{`tTzTIZ Kݟ٫ݝI_*}E咸+!/13^l^_lgM=UԏXH,Տ5eMeMehJeo+Ɉ+lW\2kͅ(;/ըԠ ONľ4*ux5(X_ 4,e6p~:&I@ j,Ӟ Ro ӬtH01%$aX} ЁUXp5ЈNP (`ހpX? &鈕 pC @. E; rr 'h]_kI{< ; )7ĠxθB yAeM(Nޫ|=oٱlʓ4hRF(sIkcR0?~l=BFߖx"V2 Oj ЙHIBIBi)=P̊60j 83#d L%тi6(^#q2^;f3om[XP!=!wlr=ȍF+1HJbp),(x)g PD  'P`* Py''_eH fq0ю؍?jPrN$%6л6%B?-J?4C~&sdK7Wۧjg*lljm/RE}CG'91`${doɐT1E?~#t'An %mSbnt)wNooo fgqN61U(uϏ4T bߐ 1\„CLJfHx> A Ȑ{H'˒%(@9e攂' àBSB GcQPU )d'C+X%vv;ĭ@@A*`'X0C!&8L\DF,‚iZHcT:@Ҥ :п@itZfwiazVٲ]c}카Z.q?T!-RWncy!=4Bz1 πWg¬ ?p|s pX|ptsZ2=!Hi1},@ 4d )i,'52>*ӊ6 pĐY%2J\'!8d! "|"(IV9$,IhRJ=IzKLNV EPm&Q\@CTܵy1VbU'N*WR qF0``4_$% hӀ6`QIp`!)ΰTAjJ3 Azf,g~LAb$HRrgpL(:dI#L)SCo" ֠3\hn!9)r61N&"g"qQ BhGn=Cj#%Cm$+Tk$:<-YtJƛj'&I(SJUdy6TT}(! i~YRTJVZ9ժ @E+ъv`(#'iMƊ /H (a"k!| kLѽگd`pSҟ~X Q"TGlֳ+h"x)Ngh/ , 6~P;B#(B'0ښw;wHu[_QW&M+Ӟ 9CҬ3k|_ [![ &}t7f*C#Mc8(.\4Ng"bif(69`AHgd܈OZXܞ_Aʐ1KO肒ptAe?p0?b'!P@-$$JʣJ%?kӷn T͏Lil͛2$zѩnjN2HE]7uP9MJZ!uË4 U1Ai(A!ċvrp2D[W6V`0wbaqC0ZC5Q Xs"ʾӿ[~O~1 6A V S@thoҽ!Lȵ|@)''P]6ʬؘWӉȋIW{P|?C?aZ\ sTa4A4.TXZ ՄEŏNݒu?t@ C܍A!b!2C!EUI"OTޕК5U } *"ɴ"(AZ8? C/։IĚe %Jʧ ?%ɩж,HE)h6J @0O#LTb=S,mTLVPLV M9IE\QUpF^`kP3A-ݗ. tAW2 ,O VX5XLJ~L| R‰\Si5``S~lu0tǏ| ۀԍ݇VaP<!έ 2ΝA{!؈Uuɠ}]S6Řa L *(n}B퐏XD<ddCfڡa .b]f26" r  _+ڬ!OЄl |"1UdW^٘,&CLJHq? n^1 T5iUN\T䎔H Ħl#ّ&8S߲_D@NѣɣAֱAeVL脆? \ F`@]m@d00G܁ hSYgj%,З+[(V`6A`4BYrJE>)Z,^,4Pۨ̌r܌uiY(rZ %Rنْ 4`X!R h،9nB!tM Fb),Ԁ,Kn^EM6=eKىd6 iQ_f^0aEB+  Q1_EiԔkIB@(O4>U$aTU=DTB|IP + InZD2渊T/UEx3يeAHL}j|z`Զt dFB>؀XڀAd9QYrVDB@AVZUHOp+@$t x63*QUOONd]%b*"Ѳel U KTÀrHʲ,l Ѕ*p P )+ ńNt0UD#,Bmܮmx(BqfMb,IEӮ? 9 FD G,P읤1\uJ'*&%P4 B.C#pS,> B@8R{؆n@RVXbd-U\%=fʑĄ.Oj*k ?/kQhjGDJU0 am"LwB뢵NGPx+z+FoD8KtGoos4&nɳRFxT57P VIWqK%*Y Q;0g peA[gQEƎ0D@P!*ĊJF4CnV90K3T-D\Յd )IARGR'>)xD0D焲nqqK/b-tVJoV6LF߶F@ u Jʤ`gC6B-2vb5c7)C)fH@Ѐ}4!1‚QWfe(uɐ lj02|O,ҲCj^o.Vő2koj:QMр~MkN ^ L1j DxĮ١pIq :  pIHb}wTƯI9SxY(ڒB >APn i(/P,mP|4H{s,UXXV?*0KK`@MD4'x[m)bVӉUZ]Ϝ|_OfmzIY?Pe2r yGT,`9sRuRSAZAbsP3^[`d7#z3*  Y1ċ6- d L6vԀN.mӶCꡇV%p+LqEP( jq3ߧ<7(Ĕ8FAL <8/*LX5WZ!O|vv$JbEiT9pgO~IIΠFu:s AHI*W.A$_Mr._MmTcSw8d/L|O#x{{z0{ %S"|+_C3${ كx6[) GMs?pF6?B? Q% :;8xg#8:ϝPG$Ɠ.dxrH p ` )H0P0x¾Pق/&`qy"6>C>PF2!̪K..HDLN+ =(L Y!($0 :$4R[(` `,0]nJ ;tJYm4!+V+m+<ֳ+*ʹ1D|TK4_Kt,* Rj-ܒbZ-TCMhF l*,Ź*![Y%j"ٻegNZߴ#4b;Ze3x:!;ņЯO,`CУ.@C†H2/E0?,:{ɿėιL0/DNj.ڕI T{<\޿hHr +> "uED_'Vs``5 *HSD 5葉"礐?)U[? ", iKKfjЈ8XWע2PeB%R)3Edj UH X%- L2I@c.!R-v;a/#T M-2N@(x/&MO9D" L-:zvn=e)Ba#(u"T*U+ hq+`t}IPd _, 4ppF*&_u40V%P _xd:YS.bڣr 41ٴ<]e,gyȾbA6܆(˻l$tf0hݜbhk+3P,nQ*Kgܪf.f"L*\ 9/_*t;EYRbdҖY{ft+'2w9d$!G ^4< 'Mziuwo;zWq&4m3^R2TYBM16R!CE`IbOYʟ}$'bUPq$= +7^y%hC@Z͏X9Re3Ϧz})IYW^ƒ_^8 r$DdCG@Гn(DHէ oPrad+DJCȕntqku?w1zLPOfXQg# Jz`1ijīcX1+E7êdk#:S%ũG:̎%ҚKQl#DE/07z۽<m@[n@xūѧ %}4suεߴyn{|7o(QOzCaǨ:X|W |#&,2,d`"N"d|J ze|,n24jB8p<#^ZA٢K@b*hN@N4/Lgʦǚh&np@ꥨdʂ6kK ^E.@bHm$c/^e t8!H f,LfNJЌ"0S^[2搁e/ iPkni$XAT BolFOϓ˻fONaGZpmsMԘ?-@*r&踆 `P3q k^08.TFofq+sԤI)^inV̯1bI)ddEct@`aΑQġ.!TL%<"6d`# dqWm|!, BDilMB0s:p EF-L0+b.XrIev n-#eG ?(Ԙjb >Z.Ȋ !j@cP#92؅삨s̐ i*&Z*JH2<&JPoP )Hrl d x>fC@Ae"QA4@DQb f1sR/Ȃ,v.M #yK4}\PoF&ӓ2k@/!&s2` {iIP)NzRϛ+6eRdE&a(qqQ&|D !6Gr_O[/'򲼤53@Oooo*OLd4gh?f7]&]2! m&gӻR̻*4kD~낊:', i"4~D$Vϼ 9'j gved*4_!L/:pX.ʡV.DDBM+Y L̹/*,loTvkXC8eC(AH,Q)%@O2VoZz­S"[Snp\4:W7@fu68'SB@We7XQ)vI2M$,IF);)xQfg[5[ÓyiAh@\KE:"U]>ߕJ>ɷ>&B>#b,, "} @.D`nF!V5&*XLS{semW6!6!\u{Q6uUC ujF?V@ːg"~/,oBx'v=C&(h&*b0L;KK-̠&(YϾ jk L^0l~ $HJ>$ S 8!V p5Q"p_K8eb/,@USk2|Vt')lUF 0ض3XPB"Vs5VIwXS/wDp+Th EyY@<A) !iбz!NT Bg#v`^#@W@+ Y,J/?&obW!7a̓w2SssE5RcWж:V!cG'nu?xnXU?bk6MK\Vk!|羞#gh ܣ==fh"9BLi(mv;4L- 9.8L!/EJ{:!(4KӔmJـ2vJgu'UCI2?SSR?)1m$YX96u7Q)XX:W3#A?N!00sztet1d@8iWAQ 5$ \K!~8%OMxn:iPEz;Z yb ] S;B0! W& %WVMZ (~tƬk : ɕJ7luP=R-g DB0@\ _dIWrM}skK0XQw?>&n0Dkli= n&;I _U֚tYOx'E>~R4E8} I;za=U#0>uӷAڡZ 4HrKB뀌L;k/D&B2D/;kdedW07]p EYՕau8C![wCRCZB]0C$()hL -H)I6p;ɗD.;EahD' @P_S/+0T4``@W  j#D%Ѹq1#땮ݻΦ'`?nҥO86Kd? 3z{60/  V#ɸ>bH2eR ݼgO Gs|"LxXP~?)8ϜT^RyߞT(dE X?.00  @UAYTP+ Ad؅]]`YpWZGka]׎&i0Y.&u| ԉM2Y]f1?+E6lM2$/݁wpqQCIHqGE5YI?=7rgs<(CĉK `$ RHquRAc/ B9ItE)=jH@0 *dZO8{N5PG)TJ[? XRVXAuXbEYY .i/Wv/} wRRz%`zCc d[+uY}YVPV#aU^yl Lx(˻ ap2/G\M,LWwQu4 MC1:7=C A!#0,9;SZxsm4H,t `3x@<Lm=`tMi$+(!S:H hdB2Hny)JP]xɠ"q6b\NŸ5jYBce)bIWtmU OV,aX)^q]x!8`tމ' } UBE%EĨG9dv?ǫC% B3PhMXVO{jA *<$6Y҆eRa%UhKDۼ%{EJJZ0.* Y)%/J׺/(%t;,e"DBF_2b:d(z `3*'$"nE,CpXF 8ϙѦw&B's#A . 5r>)A 6Y@LIMa"!$j Kz[ ✻-e-E//t9%laM8.RqfƌZiK<-X7sMICu*a=yIU<AG?Q)$VCŤ){C7!OD3 ̯ ^8E-ei''5؅o(+!(grկ4PVpZ\eۊ%nmWRAtL` Ь] vfN+zJ.-?_R.u϶ a2.(C [L^.8AH6:B,8L`NZ~ ~2B[ YhSeRmpwFn3[n/SDy#-o~Y/+J3AёLXb%l&B„ALReO3A0\8 5X^ ~I"?* a§H K)|1^MNB+qD(O\O F(Hd\PN :$32Ҍ{)6-̀G:PbA)!Vv@WirTre-$VEWn/qIGte ;#,llژ .Ti<ޱtYOw:(ΜNիV5h YV %5Q=KJB9),:b.P,`.) weRmaۦK'r>kY7Kh|xKy8;[" g@,0pKpO6qw& ubFP)P^)x++ _/Qb2&T&2:'L?Z%;v!'$B Z SFfK6>#uBtv#$vQZVSTXƄ„*awMCULg%#8Ʉ@Ln6172ggx\'hNlXyH3{$Vzh'3j4Fzg5{P PZV'-Cr4%"UȤ>tOGm7a1Beb$}q\q1T Kbjь~G.ߧ~QTAmve/E.Q9B%+6;&o#v'p/44y2NQ'I*Q *D YJ a<C+=ǀ(F!HsI4Hc!/692% C#mJLqEfd QZlPuQPeta R.Li ēKؓV"BL`VUn[5]"$V"H}XKwXE{h2h)ȇ\'NiMsG7 G{iFzxFbĘz#{/{R{G)AYQ]r(aG0e$07Pd@tOv.R6\˨.ve |\VtDۦ6d~z3}nBr,,Isu isn*4cuv]׹("'PTIq!Rf$Xn'\J!~ֳyx)s.3GF 5~bYtYVl*3;ls코%H-O'/k\PT_v]7v;STLxc}}k#0ҍ}샔DtDhh2u* X #S+A. 6=w}ymF0JAd+-_\&X,t,z,]n$32q EV29;AtO&%w:A9LZ#:0tT^-K [{͙ͪ$K> ~Nle$/ )c k-!Ci$['ZlQ'"lq'$qvVtoH^2&rphJ5袋r"QrL<.|š ;1GH=S)&U=J.BTKcr^&XC} ʢZMw(V-dض-fݚv.B +t-Y>eLX V (3 # ,/Ә_RͩFV/ ~76xbI &%3@Ơhl<܉Ǻk UxēӐw ͧe.C~#LC? $EKY(g򐈎V$gډFmFi;۹hT;щ֊'#gRs7!G؛@&)K]3ɂp\{TPIgJ(w94s։ Dq뜜ԹGyni%NOAJJs *^2mm%S "ud%ldh$@yu";`(pa|@ZвBq?O0#Vb$++2 C&|dwrnx~%g7 F?8~0`IIGNa3 )h"6x~8,+i!V\Rx ;[H^XRPhH 7`җ,@tF$A=.C Ƈ+QiyW2K["'8G0O"dH_gL y礶sA%|)ȕjHTbǗPXFRQEq̱cp[t =PR31avW!W6KcW@RBp!4`CScluA~ia9j0Q G)oy3J̻3p<K<sJvwimz88)f!{QfS)hA;X!Pր5 uTU ^Fa Q]H׻1H,22Br]R6ǂ PjNQ$ &$(d29%Ֆ$BJmo$dL$k29V@ 8."B刲r;Q3=⫺C;BVP$KjNZ$9,,D|F$71F"ԣ +SO|'~=P ' $=Nak`[@J"% 72ZSa>3 6 QH? 9Ϩb33 x@.;3 @C,"LKꚫ౐vፀc 8 r A1JIBv螌1"|s蹟2*@Dc*-<q /Bz,DH129ثCqi8€J9.h+Qp<+-)<$%áNjCl4M>7)r(L/9M;3̧ 7WqX聺 ;'$$" Ɵb8M1ɖ-[%蚦o& MFq h+!L1'J 9bZGx N?)7$ N{50% a9jA`0P΄1)(NJ14)b? [IhI)58ψ00O#~ZՌM$hʐxY,8;+ó3.= }lY%;G*9UL<ʰD `(Lq |ZŹ MXߤ4FT */r  M8$F88`3YT3(3 ؋d8`x OF6HҔN' "$aSD:(؄ 2xu:$H|(ъ2AH [Bt\41$+!$I찈#5/%#{,̹=%$y l M# 2:,9J*Ar$x}$C-ES X ƽ0\BSXFN͖egXSeX8VV8 b^\YЅ`-,JpNQlݔf- JxNQ݀e5(᭮[:e8B`SR <)=d,(3{M,is30z8Js΁01 9P) tNZ1 F8A[R. X%ř$ٮbBR5*bc#C ؕC@A@#.b#'vڈ7 +@)9,954A,#D<%<I>$8&QL4VHVh%PEx ."-FlcU_L]UӅSpUW5YM\dЕUe>W$?%. ?M)me-͍e,$9T?)0t8W ؑI aɴ=XK=qv A NIH E L H ڰ sL`A!H|1 52|aӷ*[DԒ&n}5@\3_볾e#b(+C1+uQ;cC☳%a[S,dj1B.'gԅ?օc q_QF'HfMXb3duU]<]U^\ؕ]!x>a3kIpRome%ÔLme`ZZ&ˉYL1E)pv $,ױlz()QK_!=PuY\Nxv6`o} 01E VZQ(6Ԉϭ@_:*+iBJj,ˀ#NI@q׵][&F)_9O$5bR+*嘶*eV"h_=ړZ, yB!T#)T(Fq0 .rE.Q͈U^;ٝ]%d>O.{n֎tIZ9N7 cp .GVK"қz(q-7.l҃(t1tg]x^gXSoVsn HGDQxV$;pd*ЙZCio6<_w]PϨ} Q_⊹X9;٦m<.4HwrH'Έ-/UX\X Q_l]8UMs=8l-i,tlZnV^ft{69ߕcb1u^oEpir~C9ɬ,[ &֌T o(vOT8WC1hj%q8to1Fiq_E&G#Beb{~9ߘӉ7lj~( xK>52q/I:3Eݢp|aY8"߿.GI(PC@HpD2 2)'H" 2 %ICJq:^1A&HJ@:ȩӁ5ǰch \qL=J0&BP㧒C )T@`mJG nJ{w_~7%pn` AZ;fCO.?FHB;Eó0@'ఘHf"op "!A4PDoa\Lwb_w@ ?ڥw;gO?tFbj݁цE9&!mM$Y{ aC|2H!EI(2 C8? 䏌b5?HJ=$9dcZD% cgct!aDzt?6DY &8q-<>!A$[ B 蠆*BuqH%A(#KY:I59AN9DOFSMS YeAWJR,V0d=Z l\;|[tus`uX^k-ƘckǞq晿H2qeUk-l[M6X١QqGp69dZ{sQ@xؑrwEW{%(~dzvvݞ~ENt*(tH78aBGJHC"gKHQHR4b3J+c`e}^]IiFڍ@H X*GS9h=&m uqqGZddAc 9QJ'r/W?-;T2xGDQJ&u*LY/&#.~=}"$wl:KE.Zak I[ @[ q+#Whs⛝9px\Úࠕq:}9 ;t X9!Nwx_/HQc]g>Fs =b̴CibGe(ɱ2 NnlR-ZӃ3/.J'1fo|c 2IȪ"=$2j"ёs$V8Ar^v!6Um.'<bN/uh^>f4!s)F)EowHUNgg܃)p GxW>O'J>Sd{Ds_U,i[{^Uлԅx%6-",G]5!_,CH)symbCJuY;((OXH.б3>5o+Z6OzZ8;$$7p nyŮ)g.ߞ>AovNYG6&oZ|]GE>P-Fwp{b,V} + +hB4b9 ZC\C D+YN dPAl%]ᇎo0Х)ul||Xb8!!^Gwd]4~o-})YݭYX?ߑ(ե)`M<&ް@a(K¤NȆ䜅nIlЎh^q *HkNBL!A&g (_Y[wMF/i gdB&xS|_D8p6N`SD'4C4٨H3AE`e@ `AaK[K[-G%|AY\LthK \:-Lk PF ˥j؈ , ͐Mao `^@v܇ J W *JfWat4xxXPGT]YA$ 9lA MҀE<&͈~̤̣EIߜfϥ%efEZ<$&q=D EAb%򖧽΍=мl"a͎IG [IoU1=DB tAoԕ}wp[ gH0Le kƶ-6`-T- 8[9J94QQO|9啝f Z zlI >FTXޣэeO`(_0DK]X%GQuJVeD$hM)b$Ѹ(FMx Y'$KCQIfGϔ]~TdjMrY$դZ!Y T!Sh]Li/ YX=< c'FAV#,(c|փ"$$d&Z@")^cbtp )/q@Tܼ"x]bkz?+Rc~ڈHP??@DwقBrQė7rB0^)Vfc&a(1Ȑ%O+$DBUd\6! vVP, j͈}gxv]LR }({^ ($i+Q$H#I䢹w̢mxD҂ VEL}|imƧL`F1H%Q(E-MI%ii[%ΖL~lIAb$FFݸe'L\bK VY==ᜅCA (C&,,hP*&|)F0C%@\A%hH%T64;Q|B#ԗ6nS3|EX_g@^z,4a+@ Zxc&vhр Opa+4, YE+^(URE:E1Ի`ń/ 1 bV{RlᇐLM]> vk LsT :"**%<Ɋed&-Z:l \EbquFHmZmc0&Ҝݙ H\m"t4Q"o r< KGWqHuF+xDDkƢ2DB|? ? @\A@ 6TTB?@3P}6\{}E0S)}.*%XB 4iMK  T0}`X1^]ж TT]*+uLu 0,vkb2ҫOQwTl#5,Uotax4L} He߇v8u31hAjRf\F謆=Zl#F +%?Ƭei0 /cpɏE֌i}ސ8the=Z sҘ%J[ȤBGDŔqk yN`p1A$ eA +\A0D8\14L@94?nL@3[3[9$Ze@.er@ ɟ0pJ,+Q+#\@e1h!K$N4f<A+KKD oxgaYԷ`kokڇue990uu4%̄3 =[LCeA a@w$Vɒ(F+k[ 6w]n.h}0ȰVs I.TshthF; lA( E@\Ǵ5*DRbg`?1AVAq@ ?t%CHgQ\'A3ڂ4:'o.-A%)IYw]VKb0[Vf'v :nI2XԸ~1'@Z/aDKwS B(o\tvq;YO!oJMwTmLwObs ;c=6ZvZA]bC?tlfb,X&l xaHcǠ18 Ga&7-3H'p Q pȑ+DCn%Jj@'#lqԸ5AT7nA8ڂ-A88 `AX؂%D;w[r I%x.Y)(j=p`_8V Y$IT!`f"Pΐ4s sÎ0 ߎ2CPiJ!UzpWa74ivl m\;zH.to`@`0 046qdȐ5hW9W!ЁI5w߶I7.ׯ:R{.e@SU)M wH"Kunu2ʀpKT 異 }HNT u[j \4xL#" 00 5C:ڠ"LY $DZay4E~?B 5+ MH` *B L4CZ$ܔ8艍Hϔ <*&04J(K: B0@@r 7bMDj T@iu nʅRGմkL|L`* , N{YդVZ-V+ep7I*8*λ;'L.bA=s@k î;_"$Ɗ` ij?NH% cOZj33 `#G.|ז9C pCRa}Kd1ȢԸ+lƖ/+#|iǜM grh2#mL;̇ZSP g]D :;.LnVB:*a>3,`rVL-[e]57ruuU6'BW)+d Se  \3²3m(ZjlZ J(lK:NtXAߐpV':s7);@Qv?v<<"08ec{ØO?M<}0,@2ԩ xIB ]`d *0 ACiZ"Z$ ` A-QRa/mGD!Ξc6;Haia!Ha 6mp~|F p9G>C'Z޲zU.&JIe*ST5:Dǐˡ'*PE,K^G0|IS*7 OCc.Fs js*g %$ԣh\p-dot(Il+&ao߰:XWjqU)jWv\-%OK4ȿLcZI tAOAt Kjt) t<nE*axC tGv`,~(-jQ%Jp`EKB@0`!'f4Ìi'Ql`B(9QU$7Q *1PM,]B< S*7PZ[u aQ˅:saBJr^ɥ(zn,,0W%xKF7d|)Vo˛I vN,\!I9MIU_*`g; ɞl2?)5O1@^D")!`B#Hze"Y.YŨp+,!l$G<:z,Xh,:)4f)Hx?EM$5-"FldLGۤLkB9r!dJ)'8 LN%pHF p˪2, os":{-e(!$W"L2ȔKPIfCw̲eāO--CgǗ*abg62f=lu )ȀfN&~i838Ųr9WNQy.=L/DPY,p0 +Vb]|/TؘC*eNҡywTCk?nCṛ6VÍB2@@IUrҒƽ h PS,MiF%tl͌CH.VD G=MEs$ar"oBǜQN9 G&mI@0Rtсn( ;MA^9Ub(&}~B;yF 2 tg _EVMљtHd`ț,5'+B#.~v4g];.S>S;`n$Xtfa?avʱݎ}Ee3Ww~%VJe}PH*0F$"{sƒ/|a@ %iWp6@a((,/` z3z{lTJ \(`)UgBMnb k6q +6c`$E*f ٌ*؆rZBR8 DoYԃ_+΂hKxk^ -݊/ I /j*4H -,kDBT V IPM*`J܄MO"n"N*<(>H;^ &t"Vbk(C ke#3@.M2C7퐰#!ͭ2[j"^iP' ݧ:%+')1 hn/opJ&`;4`̀F/B)& rKʭLF$݌,CQ R.i+JIiNFHHvDl!NI .IvыP@," ,eo8B>aѠ;^bK:6|\ i0;pQtq#}O@<`x*:S4d*H+貃6gМE+vlp3BGuC#0 =3 #mDlBqsq49X&g"렄< %#P$-l?y傫 U|:p-5C_d& ^AX0uRFT=8O  Nbl@PD9 = YjrF_Ual^tb+HM21$J *VL@JD I4k* HKMg$ T Dœ+M B,n9kO P`4EqɮGr VPrqڣSYXe8p@u=:oـ n3n?NZ_d#5lZvBŵ~5# #ܳ#XU?mlz \n;6_8E9 CXa8B]b:/M `x_՚bl8O* `da@v.+!td+t+4.DI/+bzdsh@ȍE!ޜ+AB"N0C# e_'Pg)h⑌]0O`?Zd%=@L6OBDlĿRSBS::Fk=#˼'wc{N6 ,lT#X'7UY"&XsXa.Gu`vq$V-* VGʭtd`j?\+daf785yY HC}hEۅ{[D0QFW$݂Ɓ}=;J7qIMv*8IJ@W$deÏ\3Dbl(6k9WBd٩\1shS4b+2RWDB$Q)+4N+6C6d_f6`T)7{6Ҙ0$#s-$N*WsMڌ9r#a6C;g3A33oMW]ZB[ = | %tb'Gi"W'3҂ڧ,ܝ؝ݗm#=rp!j)XaF8d`( Av+mKr(9,Y>i:⃆Y@J!E|6ÚhD>3BK2 `(A!@?"tÇXՊ9$P1¿3Ʉ ph&?lg?=9MX?~СN&D0`d*'SjjC`Gj&lٓ4[$ɿ%(P '*DfPawFԜ0sϝ}(ZtQ/ɚqc4Ѐ"pth6_7~.WbG v}C6(A`?O>}}t/@ O2 x R`D2( |Fڱ +c1F +?hd%@J*p@i?4*ғ(P3ՓN$$M $T֊;YXb "i9TBU Cn-* hDmp %M3%?xX?YՓ\ eXTMU]TSrAHa]jBjY]82ә (OM*]p$ڲ-\{Wl#A'U.2'W';(?_З QA6Q11X`.DR~ Cv)!Gp?oDR>aGt:gedp6k34fYrYU:5Ib+=qdvX[LW}$L7VFsS3;Kb<Ђy;Lyf75Qjxq[ TrU676?)7a&48 p&o4iY׎ْg*?ᅶoaEa'ŋXR=4pNJpwD3aGX*26Q'7b0'sxh5@bc$9)?796cs|fyxÛM7v]G[fhR<e(;Rd9K38󝏢 :n%=@ȴ"Y+␏"c:y& fMsW7؎&c!uZZ($4{8P\{wu.bJG?]R`0|E'`PA_ 0nqg߁BƊBx1h` e `1-a`[px9D1CS(ӤZ+*p7G卞j4@6Hr9nH7Vs6%; Hvs őz:HGx`8R%ș%u<)s:A8fգ:zgV=FUr$dHLL}תґfwbz1z6u48fZ8T jZZ:q6;eM&]I/RՒ-xrݪz唫7?aڮ>1AG% PA:}sIQq[1A#1֌y~( +2$2,#!SK5dMPC#ællc؍݈U657sdMv7?WxG}Tie7qWGG79#WYfi Whs׵F+\G*Aufy+pgXTWu:p=$8h[ah>EXhu&2ux㬧4Iz;U6wrqUAT?SDʼ1sB܇UȆ\!k!.SRwa}`bQ _<1BS<E"6+3c$'y%r47əiZ(,F8F5rVzD)VbRbRW;G]RrG Le*tG7ΔGt)W{؜A($MR⁃7^⚳6Wvvs*8gz5[bFaʹht:({fU7U/QGg&a7(4d3ឍtf-+a"ے^4čk>Wܛ]Z, s1z['kzON}Se)B_|pn!&a1xyB;D*!ۗ!uaDB*Q:'-R.E7T4B&d4M;d@TbrL%/$52 vIփ۸pطgH|b7>erH2̌cjVɩP8yԵh(d4V=Y%*w;D?bE_$y*YЬL`=uXpЖfnfdFfg=J/=n8p⮖n>tl<u*  n B o}QL!k 2 ~? Gnazn“n+!EcEbL^#hT@*Q60Fs (}v(-=ԩA=M(d> &#n&ҭ{ʷ E1_~Gþ{:ъ}S䷋A|P'_*HE `=7f'\>S}l `VMEr۸rF1wdh1f]eYyY*]v&}|SOF+E_hQEa FAOndRR2Xh!6!aB?(PP6?$F$ះ62l! B . !IN< A*%R&mYTK&XBPX6ؓ'zEk** `A +#yo`  ``IA'o(AM#P:ԩQ۽{ٵ w2)e [4pK@Eb!P{ W8A.ppYWp @@0deM4(!j(3(  ("O J":hb2u Qնr  2G5OBzUHGDm]ib(4_VZxbVzf6](,&5{9ò-zk4|ol$J^UjAi6z-0YS0!0`xdtr0p+ Ird6d/[VT!U~tD&ѲGBӥD{R5K*4d!7jIX9"ޖXMƈy$p4fYG?taqIa\@ɰ%_끔4)d 71$B.WS*KNmmXGemo{¼,WI\LzUbmFòuȒLei `JcZ4MOL4`e w6↠.h`Mj0د> 3 `tCFGM7R@Iӑ&?D,t):A3&N-NHhb)#ZsG[!9rYE  ˸a*+q:p:3:[R2В@zI,:ihp/i9=:rY-I鑝X*x\;+ZRq x»BxkYC_q0dz^Q!0 }A}?#(򂯻y6eG IL@M iv #ؘ3\y> {sh%а]a!""BLJ1 #ȫY1 od?(oܪi&++:@bY:9ṋ@@1@+:"Q&ĩ9ǢG,HS=s2ˤ: 9r,"48*J#\p! 4-0] W{RB/Sޢn&; ߻Pi; qC=AL=z (=ݠDI IDpKC` qEZYپ0\L췔Љp0LHAXH1!ri%"AHC!Z1pFtA[n# DZ) y$9Z >xM?|9q$3-:M,kWґ|Si͇!9-ԙI=#"4)G9X-;+#(EۂI8<橮-tMC=覣$ b7tCHÿP63|B'C@ (JI JL| 6ppUDT,b$ƬB]Šȴ͂G٬KA O4rB$I)1""ъF3it* /,GcpT&*iP6R23ۤN0B ̒1#řr72=ۑ>HG388B{|OH_5 K%x)O^q5d!C}5,pP&0Cn 50]  |h/B FDi(,NKD 0K ˄ ѽʟuC0=ř! [<̔ ؂%`y Xp" P(R/K9U03᱑"k0J#K#THY2m2S"@0,%94%+2$l`I,5p[N"FA$AGk$9,!L9QIU4LV;OH G+!խ[>ݾ3:4nV]``&Yi!A  QrkJK ܸz}D JHĽm dQȐUب WXr˿c7y3(EX 3N x+%) aY''C+l4A5 X00"L'{4Fۈ,I)M8+`+z. ǽ*}B+':kͻ}qHZr"FY"B\X]I4IcI%M%\BBoq54KpЃӝ`Ѕ6]m]nRPd i<=y"ߵڳ %{Mzz}фE^m^茦,QQR^8ZIY YPߛ F((YL- +"?(Q3q\]/#G`F9+cDF5nfSG 02ia4aH.Y@a[ HK3N`3NX]%lS}Ȃ)2BuOZ-Å;d-XЙIVڲ LO( #\4iiݞU.Y YS6v]ׅ֝ea,( ic}P?DKlѣ& Gpj xmd p `z{ZH (Ud)[߶Nżj( TSJ̐k0er"=?_{K J$@ 98Mè`۠`"+/b=U#!NTSZ#`i,aE]*k:c1ëڮ?G.al0!r4b`N;8yOATuOø|b-b\_)đy dc, K`4[R&po}a`VmՅV;ܾJc?>ׯtAGj{W٫cQGFݯޟ21q˨Z 0>C[!7b!K4%b8e<9P,g[< 2; )##3cff*Ɩ+C+4ʿ%q1E+ֱ6᎘Y;O긢s[~4#Te>\91:vO'nT+u\= *(ob$FvePU&^9CYW.hixno 8C_wcubYie]Gt`0Jy{ M PѠAp Vuט"0p^ғika Y{_?ya9V 1?a`8; )b)6˿ʫ)*;hg㿭M"Ui9'&QshZ<;j&93i1`6D=gyѾFG}TC:ݶmZJAQ%I`?s"(HHh/eK_蚕q-. hHI\2ru]dWYHc:$9uحiM]`G@eg@Fi^pK@{5N }'}Np %jJxȏх% 7]z_ ,8)|"eD,k^CT*"mvNF屈ܝp /KN?$9RZ>zӍJSBs x(0\h@!*dP6Dz$9RɎ8URǎjfrRO͟1E 1c*(jT G`P&FФI&H鿮1/͑cB!# CK?,g ˿.^Œ1`I'O.? UHA +ӦKk`8Ug0?ݑ7n;Q`ӣУ7wNQΉWA| H~G;ah|Ha@|EL]QXaW\UQBG`Q!uXaySRTGuBD) Q$QDؑ?AcԏB %F DPmp9RG9U6RK1٤$)`q"#F[5+0YnVWO55XqW&t(UZkG9\+F-pZWrD\\P!5,a FX_ @YDG#?6<р O$ri `Xb7e[T$כq-^qysz5#IquKn %Cnq|^TQO .DucPUYGU^,ZHZVƃ zVPY9VC)ieCM4ۅ1(8TQ*tvVGF% Ympt'f)-PBAa=5EA~6mQQy!d1 %uШL>Vd}WL5?T VUy:XvfEZw#WlM^-H`5m_Q;krO`C0ïn+Y0nK/"oL2` p0C;Mup1L̉v Apgc +Cd%x >AT24T: "*BMY,MɊVNɧN]w@XE,-ECɥb3$AZ"ImHykR'nO9?3 6ME.NQHA,§Uj2D4IiLPxщ.&0M DuO *H-m!T8t*ؐZO, v,BB2D!GAb`'NqF5\So\j_%H~ٟ%31IAaI!V=b<(nXp66#6ld=a NX>1;Cv1aU(BOBXX ,RK/!%vUR@TCQP@V$-mxdڎt* #nr"bR& $[GTJM:B҈ E#A(u9URQ0)NZI͢ĕ! ,}h^@+*(h&3&sJ3"߅+G}RU+.U!rM"xOKb f$#^ˌfXSq5̧Qm@ 8s{ 8X e(ts9׍6`' !w>i OJK4P(h@ M;"lC6"Z]吵kȦ6|R$dR渘F8i]eh$L"kD6;y E6TZț)'jo(3>%xn 0f sIՠ^"Ǣ) v! Y2TI:FuKGlꔔ|-W,Uqx2qL\891:&UՒMr2Rd$=ًG9,%EiqwC5^1r>AEAڋ>9 M&DNH's5%3a%~o}Y<5H=B~4ݪҳ%﹋eyMU,f\av/j.Z:6il}o\J'd @Yh:nYĞ-RhUmٸ'O (7_-,b& ?߳MOٕn~*6Z񊩲5)*:Ä%52m;NrnIJz줸?ɀTI`}I`qIA Θm-YύB=LV\ #׵ JIԙfOOp} ؅4S-JRtqmm1]nEiyETѧ6ELZqE^0W8( 7a܋%Tᶐaj޸G1 C=Ե^~M}aP#Hꡞu^s0[p,"LjȀ͈ +HzP@pO 1}@ڽ ݛ}<*.1eEiэp(_X!H/ Fdɐxц@Y $#_YEĝ͍[}UW qQX/\i`::MQb)VV}BYӅ (Y]L U}Z,& T4V,bQS إMZ _.&@5YYN[JK)?S:K`@K%CUe^f[B >Ty5LGL|I]* ťJ E؊G}]L_+b٨ZJdVZ^LnVE _Ѣ3"XUPF ꕞ 6'BMTp"ǹf&=f 6好ե^"XTݝI)j_)(V)) n~WʤqgJD,hchi9Yk%Yp m%ɩbMbiUb c5FlVO@sjuZgةhEwډR۪BU@cJMj)@Im5]Na'md'EPK|Ha TaZk^'dh.X["jh@&`\S3[ΐ)B[T݅Y}P*T[E 2an:,mt R՛܌&X( M ͍=[uI$ɜbRǡ\```቗&Zb7֒ٞ-@x*B,$ke*ւI QRvjB-"Ӵ\[$Y@$D:lKVOG%Ȥp`rE FHQHb84nG>!=Ƈn!!NSG 9XheT|WP`ҼcLl61_hf[vlG"^ 1[!:"S/g]S,/Hi W`ђo|k7I@ǩi^扝̈<b٣& uBg DgQPQ 4VjSLbmH g9Jņnv^}^|FGl$zk&tB Px,(L5ZUћf,kT. =X\:I1_^ћ J_1$&tj>)]ʓVYXv'{(-[d-{r, j=N%Z/"-EUHR3WsjtWI&R$EE ۽֖!mJVV 3Z<ӦD9SOK" -p<L~O `jS>sL?!XD%4J1͠Jiye?骨ftJe.YQIvEJӮJoutXt.fPl8Z30T G(q~2-lJQg]cZ9BuѹPejMBZѲuOŨTNE1bE22yIRCVp4o pM}!FJQ -m=fd"'*ZdZ&KpXFb/uάx '+ٮ1%(*yTGZE`b,^F(FoP|Sz5x:މuՈ5 ͭ\Yӈa5VWy.pن515D0sS#CgIdjp E栊92}idΩJ&c[pa" O!uȞ0*s1 ckHb+GK |Wr{vʑL1sg4J1T =rkf.lq|[I7V)*BRؿfzU1^VU#/oiMfD@YYeWIV-{-_tTPYqftJ H]U4 v`׊JFfq-:pɭ-5p >^ptq]%:nyq3べ7n̅L1ewLftɧ|Lձ(B T'^i v_r,uлݪC&`fr.ӫ-@Hp@`D <,` `tp@<iѠǑI20Ą/' $"id4MJ|fGA Pt DmTA *W^'ֱb.UcO[7MP?&9pƒ{3ACܹȼ NJ5 h*N~DN*T\G!lXvB!@~{8 `V^?o~ؙ_bN=}|y;?|8=Ó'`\~?:|H K>3lNoJ!@ 0nB>Ov*1#LX274lH%$ B\)²$2HK@11}*̈2#LH/@z $Dʊ68xj)J M>\kA/Xଶ Dr KHBѮ.ƾR/kR2Sl9>l3VX(X [ydf 5hspn ؀p+kQP=[ګ.\[/<#Aq C(^3wpxMBɣD O= /Ō5F0 1԰{Ul&!wRHnR I&t*'cI K.Ԓh&*ȓ4ӞTA)ܓ*OuEEQ›JSnD(dP} o*SnԲ,3XE[a4P^O@f 5cXJp!hkeM !p1n[=3Ͻ[chA>PwZy\(;p{+ {Yeȇca_wFl3~_T"y"M?+j6 iHA65& HpBD;ȐN&y_L$r&`L)Db8n;q T(dņ_ A1,liDM459goaC4-&y{ TuH3d FcZF3;M<1;ZG UX+vҞI[E)vΛ#ɇ{C#C=)W"K|1b_6D/ A t-0xg?h*6ߍK2kNL$F! ʷh9Hd|iLD Pi&%=+̞'-a>nsZ 0إ/uI X&O9G/cTQI>XNWZ).GӔF5Uj`+XI6@<271/Gr ytLWrQ@@w ^݉kdDX0s @)HF u<$a#!.~e3z :s5%l;4lbD@ f}n0Xi{*'_ :x>{E bʐ`CJD劂^R$BbiECᔯfD~4fJ4H bG 1喯aVbNh+X1V!d*QnOB"`$,c1. -KOv(̆+"Cv}"b'b0Š%Fj2(2cTN@UKV2#mn4Ȧjs L[DYL7B;vx@%ecI4ɴ-@'C[#;|zjūևc}?8.x3&.r#mȇ` %~*~0FZ@DGhJ<FV/JjKS(BM-+b %EKVb* RR+N4"P R  bbk8Xm.RqT33V1kVlrzͥreyE/2 [y*]dFgEKg.ϫ:xJ0n@B0;J_$ k^l |0(#B8S*Zj -k9~HQ?Zҁ*ꌃ*n/^'/^ !9P^qn j,98~1,2- -1.g0⋠q"C9:!hC#VH0Q4W1s65m22WGȃP]PybDDa#:ܥZ«D_#0a{~)>B)b,,|#! G!Fm(ΐ9E"ĖsO6Q 1f. Kcp!tO4DS~~G'sBQ牶4eS&x*NS,,͆@T ,X T-ZAi,!,!`gV8ж.mBC3 gYMP0QnQDIs 3V,[:[;Ai[)Oܨj6G6"?ůdM8D 7-0N'ASK#^;6ꐮ0r^^r,dJbCc9/%Wfqo"\B*H;Qw'5& (=0@T Ow? ކ)RORv6 lvV g5xw.KoV2`/3CYqD]E*4TJV`4Eݨ4p'E \<ɑxd>^ lB +Lו'J0^^s?9waJEViJ2*Jy53D|W?j.kf{L*+JSUWhSnB@KL]jUj'4B-Հi-Ѐ!0-@8C,1@q0xrrQEKCVZke5:a:[3&> xg^83f4 ]5 EҊ!f^ ##z 07s^ .%=V83ԋv47~ u&nB&<׌Wd^^3(eԞQh= O05Qn9E*5} ~2@sV`qz1(n%_44DtsUh*[t,6*owszeNN DP>ҭAts%BŬ8?xoa5^y -" QW'bY> ;|OYwP:񅡉S?.Π Tzx/p6~*@P,P>QFn?jyQ#Vۨm7ڨw-C@@ѮM.J_eRʾnQѬmEEl1 FCixgwPL!:mU?TI&l }J`5'Br)'#%8uM}3O:XǠN$xDvSͿ*!V'޻\oԀmXyQ&r=ھ.80K1;o%oY9D݌y4xzvܯZ)JpSEPHQ7?sKK|^h @ 6CJ܌`aIF`qOIRqP'UFR$~bЈN,"#P~K/U!y̋. ŀwVk5gV ~ί&>#"+>EkmXl;1 !'E嫑cnU~r҇g )ƵF@')>MOא~xBxv{4\lWD^ -/! F ϠB>H/Ą # (СEB481ȑ>,IqƎ,3|i`WrL0;agfН`"AҏHUdT  ( m8,ߏ%[?l۲Zs:Ǐ!7QcXͿj\xXTreW*ĩ̚%7V8"!Zls}W[<C,Aw%6_GJILQbV)9}4|Ӣu&MC IE PO NM8MDM aE=䒈%TC&J(wb?ދ#EaO>”L9%AE ٓCE´S TF*$NT@xF%T]U]uuYee][\x]WDa^}X{ZaQac56eqf?ahmVYhYb` D Qm[rr:r'pu꩏X7lP1,ޑ$"y&'%=j$GDs{my wDF`CH?(уBUR(Ca 0Lت$,H5Շ H?nxqE1q)p&R`pUXEt&&Xt TurzjXlUcsڧT[e^fAudqhZ?4X6۫-kruՍwDˉw!+p+P!ݲf.EGN{H1m1^P  Ix2k k /ߩI/UT~Ҷd_JKhb)Cny{WF5G̊/T$D7 2|k$d& L-%0A*c4t tZay5֚p4D.o\¢'5L*Qac&@*SL1t&"ٌc6Q/@X^UoMX+]Vo M/uӗaQq׬!ɑʃņI=HDSE U5:`H kP8+]jLb!JPL?l+1]D\a=ժ?PEIoBݒyP $|!sҵH(ɒJ4l~lhxeRY&0rj ]fs'K S`%&1:!&aJ*!HSB͜-5(J&OsMVW=}uO[W #2q=0D.B('s TԦ8%V$"Gkuc],F\ y(ϓܢb*9)rdIH%ʧRV{HYҗϑ(KxE~ ӛp6,X)mb ԕ!X[\aQfS8+EH=ʃ)&3ʐ3$_r;= +aUgWUqhi+67H8ДYXQg5uC[ \跀4xAEBGҮ@cJgX#HGf} uS9V88Eb ar&ff&f&v3{f?h׀V\Su7VؚhErޢ-'r6mّ#rB;F3f)#VWPOPMɞĆH9$B3KVVVak 0iraUka"WKiB lΡ'&b+TmT`%XfB(DNBpN$QWQzey#ƎGƏIք;4z+'oHXge[p2!!/ '\4=)I{( H4cq-ti4f߹^ɜR7}K{XpU}'}6<{k|JfPqGuG[9՞rThX fmBXK{e7^gp~;?@pav&eі!M6oYb~բl'x,f6{wc+tbA Q%@!q;x+M6Қ4dAZ6Z?|d&ON6Pt2@Fpi)%Q#-1_͂U+h%]+s&q&|jnƑGS]93L5Y#<{)C.E;]4}b~hI jWSTG9M6J1$'GSfN[oR&&zQeH n_!KW^ˌb(y'ƫ*vb c!nZ'Wƺ@b|QHYnEFI!DwC>):B's;.QI]S!\cK&o2qHyf\ӷ& [HU^kb&j=<˓. -qp6%09T㹨7;>#[qlVq:֊Z>ۊcO "f~4ӆx{!q/+$QMHS#0Eq)\9t= qHF'%+2DjQ5$D;JqDVɊI=d)|dxm1X !gY cd()b<wbƁ|'McWVnI9CD6$;I.<4t;ƼnLS1[BL/hٺdU9M>+S3دrhX %$b?g8,h^H3igwC{GWIxlAJ=XYJvqJfl64v s!j|rw66*{74(|)X9(WdNMs˘OdDJZdL!01Uj@DWͰ8ڼ:24K~`\չ>sp}> S6؈5QE}v5AWM"Ss? T88quC͕fPK @q`V7sy :vjIv8s Mrl<5M4☂* OCǡ~?N/Zy7DX#@;gyv ,QW}"1mady߽,}98@X0 'XG}V97ջ,=N.L7쬬5. ~ Ll0 ,MnA~J4A>@q!WYjKj!K Fl],1A.NAb imH=."l {~+7`Z2HxJá.Nn꧎#.Nn뷎빮.Nnǎɮ.Nn׎ٮ.Nn.Nn/Oo _)zP?. O8O!40,7/1#%?A[`$"1p+U X?P OZ[X$!a'g,\`/!QL tXq/0#Q?o/qtOu˒X1_Qo@V$AD/T8/#!"1QށOQ W[路.".B5dď(+K0s̘Α&+5 9, Iu+(H,HHl4Z*܁'xZ8BcH!z\Hڀo?!F˧h*RM|u.]sdTm7,"/W`%D ˊS8 B. $JoNZ $isGARSER(S"ʔ7D&tФ&XXv|ّj&U(\K/wFR`K'cg1Z# DR+‘5UwCٹM?bKIaib3@h#'Xʽ$:2*υ!{n(2/*ߝ&EE@FU-CqFKdNr%*mg 5*24-ОÓmZ*)JM u;P#?J׺~x  T[>h^1:Clv~{OJ([>L,fw}f9~~!,3 T9DxRT'G6CgIR&XAJ3eDHV=GJ9I7 D18G /WVhY]BH! P=J=6ƺp^DMC jKSU?LTTǭ5%,O9Fʇe\UtI+ƗzȁcڸdWrcuX> U*vNQǝkNWfGMԪ ׇXx]͵F3>)mVbFOC&$m]跘bXxڛu{dvcmNNh]X1 ̪a<>gˑis]غ͏Z^Y0%r`хfe?i܉e/iVڍmsJPmIqPVەf{Em^}QMf}8o[T67SjߞoLS讄H-)ҋn\\M) N$zbXTڔqb]|F$EuUelCtIIRc1]mGJM7Bz]ͥڥ~輤ŭ؆b=)4Ɓjvª̴dcĤ;0;ڎ`t[VwT[xV0ПTM_vDW\[T{Qr۫ʇn]CMf_íցQvbAndOzB0N48Җrh@ͫ|Ј]`bm9)R1+\'DӐgq~hʯyfG,1뼡M9xG1YGԔسV7c82^yČm9o~ZQ5Ы㳓pA7޷JALLLYYYfffuuu6B-XWfexn?A x*\ȰÇ#JHŋ3jȱǏ CIɌSXɲ˗0cʜI͛8sɳϟ@ JѣH*]T艕)JJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿re È+^̸F~LwJh}oRJ#jw lX哺ɛ'm#.@恜_evj{c } ]xk7Ͽ_&g]R Uqt\{U3O7O=miZԃkQC܉8Sω0H F #JwDH>19UJ(?SBUVf\v`)d9fh$9P zpA@!I)7rq m "O P }gs::>*7rf@\wϕfꪬ꫰Y|Uk%ωy jIgy=)b8s(Ϣl (Q]Uh g$hn jeR{jZ2Дk+W+~٭# wڸuWE(( ٜS)I<<*kBzf$!1b(\U̞Rչa;`)1Zh@|^Ё  vk*3;Ph)#tօUw|+TVUkS\l<:=WjO ޲lx%dټCXsO9r+~O P-`qɶΚ,!룏n 4Z`RF-lV'ooc=Ăw,~Ql3b* 0L"F:򑐌$'IJZ̤&7Nz (GIRL*S ,[XWJ.Kr ($f1r,-G4Z69KWzsT&Y(rL:v'<V'=Yul (@O|ޓ?Pt&ԜuhCrN2%Fcke))H͢ WAUfԙ)U)S\*4"ΨTӖ-oYKU,(9SЦ:PmDԁ8?ihJ*~z^5+Յn>:wk\zר,*5U9Ve֤6iMfOrS|+%J4٩<2tJkҴpD4ӰT֨ciҖTnkXƚE~aה4UpU:׽ܧAZЮUjkTXl?2^6ԩ+UJNmw*ý{+[Ej~kY)jr]Fl/06ؗļiULZ8/튃Y6qV^QԖPjmb.~m [сV6pz!I2]R'In[ʊW*RU9^fV/WP,66U1޽*fG+:s%5Y`f¢p1gAXƢFݯ,{b6?rl6^16!jW-[Y{A܁Hv "m=`jjX̮łP"mQ#],抢R84 vfgQ{ZmjaLI&tW:joeGet iQޘR1Vc{=]C=Uի'<䴲\Z(KP^y*W؃GiɂeVrnL ,d&~:Zr7$7˱"{^Kӛu,KtU2syxV[}++.[;3fy f)iR*:[fN+9yTDS"t6/җz +'>#lW#wTNWe<Ƀe'[W#uXZO1Iμϵ-5?5n^T0&Xh$p[l-v<sU{&0q6?'tqz K g`taw{_nT!z'6uhlVf[gb\Mi8vi'}i]&Q}uj'W jGWdddZ%]ddGkWRxd$^lckPWe%\ Z&M6i'XXM9hT>(v9eu`8hF)YqmtzF)((Zn+HhXUhovh9giavVT|DieFCFqMKxNe^}#wxu5qPtq6~[UWdH~^A)aqaue7\=cY&U{hzhcrc vhvq|f6ws751MG|U`)zRWTq7L4Fn&R^fK{Y[hfB}hvfhEh^f}e9VP7(\ՌkGPkdȔ)aHOpRjup j>f}ԇsX*gc7ixS'vLȐAY3R1{L`YhviT! lp&$yS}ay8i%eQHRq \pjVYX%(KVk g8yՠ(\PWr g^ '\^هffi Xv\5cV,s5z>Kzz9 S ݦlguUqX`y}էV}`i\N(QlNUejENWբݸfU9YUN)~G{T^U8ZYjv阇ڤȇߙ$Nn|xŝXG1wbhVhYhYYSQpjSQaAh (`o٠A Հ[yQ+)9vKh'K핇^YepNTV}'Z*Z:4J9~-*;ř5`O~HVuأP%r0iՉL:K:hkWi*|xyoI#6sxp|s{ %(m:g 6ymzsrtQ1oJꟅ)hL 6:&sI[aXzJN6@ GXff8KuyWp vPʅqd*cz9*~ezc]H=ZAvŪשxK{x:iT{|ços]{ly)TQeJzj :giZw I):jragƥ 58Wk֚ 8H[pI5Yph'!^Bu5JӨV֍* Q2x  X@ۺwիrkPŊ2IMȪiJǶd'.TyxQW[ )cRQ y`%8Qyv| z7 ƿQ1!hUs{ž+.˜9/2\KNn*\) ~1SQQKS7pOxGJZxG7̝xTkv̑8c`zimzwJ  \rJȎzjL+󻭉k+j%‘yJZN8I!  GXH[dqt{g:{;<{YP1ITY}[,rhSq hTa¤|aʲ;|:=>'t x+]` oJȑ,ު8RevbƤ,b”1}N[ʄ"ú<,0*QKTMiUMԾ8P6p/鄠K*f (lqܵs ZЪwug |xKp*wBLô~5Û[L˟;W [:MK΢}X:\LwY;tkiq؏m=- цiMdk ي6<'&l+ª -•{S,;ڡ|#)Vud~xKY Y79jE>όmS<[-ެܨH7]<9Zk}!+ﻞ p}ᡍ\+؁s ,Q= MX В-ss1hh^ M߁-纶l[p:~w[V !ș {~ MЦuNznU!Xh%'].M⩌#¨⴬$ ^==ͫE|̲۱WUL\kN=.CmVFKXdnGHYܾMȰMm bTǀ~ Nzܦ }..,m j=//ڝ֎̠$˽̠n$O~BK~ٔB@NmDNZpv+˷Z\3ܠ+c Kjsb잶r }?pOAC?4CP >Dhh%J8qrL1'#YrbG-RS?0i´4dfDmP(JOԥS4tMJGVU#V"UZܪ_5tΝ{.ºj%Fxd+.`Q s&TOlp~ZMJ,?LQ4M(A\J!gnYQwExNpa2Lʏ??ɡL`*h] vL?͗];!GOVߴlk?MAOL) D))R*rLQNK.: 0q/j 50x+,2]ln'/!< Lcd{ƒHުGnhˇLc 3"4tn9䖣A:::1i\*hOS#h5EEj$DHG>I11),Ƕ1%lѬ0B :ƚCVҪ"QH63KSHTrl"Bӵ.}I'J$RHoJҶR"7$56KxS]#vZ81L%,SM6t8 ; "%@ӻLhiЋ*fD6rIz)4nEE;SͿo1l5eԫ~*ßUU~-pkⲋاK ""u@V-cj5T9䖍M$RZm\-܇ Mwފ2!# |hM|o~sNs Ɯ5ωΒ-H!Dunew=wlOdJdod(CF)?m) <"@Rah덾jW_Ԟ,\o I׹xZX𠒒4B,U k}m!M;p\QXYf<)M+!x8!8}MNud& 8!^2ŃAʇJ$Ў$NB{~w@K,Q5]Bh& 1Oy.Q[Be%0̂JH(E׺'  _4UW"˰bhV¢%)}p3Jm(|p2)$5 $Q0E|H /1H; ]Pu:au2<Nȹq65P AKY8&[1|X ӰN=,GY@&.TOx %mEEC%$JYPƫψnf߬Gi-<_ZȣKHɘ4'-d|Г uQ&'wI*.dNzI7<6RJR1K kCp“2i&*ȉa aH0h.Le5O%#ninJ0J$% E%StJ6||OxeT):B351B e$D#w\´Zi-0 V`8Ȅlm8;na5+XU-e yd49J3MWb:]Ռ3t]]v?DrI%D;K:,t„.ϔ8_B1tB3O/ )Œ`ԛn[ r3}`/<Sq&DqY'%1T36b p!,$iD(T~ %Zfٚj;l< -JUj)Dk15&*eʗ5ybLJupuk3}#sE QgS;뙨Ƴ%mNpSDԖL5a9a}ⷿoℰa3"&ʒtkyy b6ZLTj~SWBtK3\94Pf5`gN|? eͻ4 2ըJj?Ǧ5itY/%K ;mkqD@'Q9\@l|ޱ[+;otX[{?-n/!uO<X_R4qʲ_㎲h71)h"*XֽY (m hc<siKs(k;٧ܾxq{p0$fv8{~)P~ZH{J?fK  '}6M_}4;^ /,XJ&W)>q@cL+}?5bP6^3>|I[c Y[I/:4jAXX9eA9HSk`,&LjbZ39$=ph8%hAH* #:YþXC&b"b?:{ź'_S3c?b<:B?,cDF`#HH2 7RS Զl8*F?e12/kU2h"_C:^+0r5KhCQ`A;d 4[=Eh9]ƒ=/=!t+8G(G[%T*)=7y={B]l&SÈnFhl !KC:AADӝD_+.[DcCcDHls?͢Dz,+@ɘPIeo(Q,Eo;TTcYjJID {?בE[< I3THb =K.,DF܁C"8LCқIi|FYZlT&)D"4sts,\KG`BK43)\ xltn> 0lD|*jTF>+ KHlC˄,KD:KX+5hM$l3=sACø4RL d]L}I\ԙ]O=IH@DXT@<|}\{{mȃ[MTsVZUVզ}wu A/˰Ủ@B_=[qVMs8V'8,Ѓ=[f]B$̯(DB$tmk`nBnײqLFQu+$W TuZ!HRUF|҇RE&EƉLZJM=DXO]B])?J2IY8Dp6NI<@@?D]E]NuYUIϒ]I6IDHDXx N ]M_EF]HV~کWX}W/I \ K~LBRaEa[x[cۄ[}։/V(Lh Vmmk D-\-Bam>*̟[|ܦ"Hi`zMC,$2 d؄T]6eDtp@ⵊHΙ^1?A~M]#E}Yu=]$_NYـPL_}bM夅}WZwMCWZ[vZ]`Ю]P˜}`|`I3a=ۺ}'`]iֿEnV$oaP!p!!h!tM{%_dϭb{HM]}]R-2]Ec^Ec؊]c~hkc>cf^@=NHIkd @ddT#HOD{McATI>FXN:,ݣ+W ~eXWZ9P[ ˏkXL<`HtaffheMmLpƬkBmMlzp&nq5iu\Rm=R6UTcZ+f=ډd.Nf%ٖh4^8NBh 6I N Nޙ^8,#HvdޘL^JDdH=e/.hԩjS]mPe&ͮe v׮#/[%fLeN>ַu kfh5ʼfjB7XalƄV`mbulFxt.V=8!*~UW;}d/N1^ݎX,r4.I$n^h@\D^4i=X~nEnXHnN@jK=Smo}][Y1ַ,>.}U!Pr_j$V-'qw[ZK[FpEuX۵xN'up5aufF/q EmmovaMluDŽm7n>oѭEW|v HStVPwom]e^hݤIh.h,ޗHh@7xӗcL؉sF:dΌSsGݍ.cMNMt.m~gr$vJKV\&w'w.?W ep0z f _ s}q~YV/vmvivVzi{hLuZ˄nUYeLvW=M|!|owwzw=8vt؀x.yesE1 N%@x-t ܐ ~^t|NV}~E|ww|~wdMwY.z/zurSkw%pz['Vu{]'E'X\Xװx?7+Zǎn\y Ɏ|L>|yFH;!7aSH7!=RhZ *P%BR%DjUV!kIե]nOc ݻxq71|,` #*JN\0FCpGgLpÕjVM6ܺwS[7͊W/~fne2绵qͪRZVX>;w. ?-G~RF;n?Q AR@NH9N `PDB&D+HҊ,ԒH-aL#TӏtÇNBфTM| 9TW?M1TS]TAAiwXP]m[s}7x~EwYdYv0ٟVgnPihl}flA)e[4R*r5XAe7n vNtѵ*z\e][|z)n1ŔUXW(m~UC)r[`T ѡ aq:TEQDY'i"DJ>  LDSFH"ULGDmWW~YW~RtVTbҪfA׮{]V͉i󠚥VТеutl-I8FPKmW5׸ `=/ŗy2*v&m3^ak1Q֗Rc }~+uVK ?4n,RXpㆾGz-C)NT/EboE-qt#H7f 1?G;$V'_WqW P[w%f-pWvL+jجq\ J]z[k&}4 PRHbGy&ST'2AMj חi!Uu6lyN#n[&G-Oʇ=jRvH[#0W6)UDwFC=H tKT.0,Fn$ɿ*.qI#\'![EЋd^r"  ("G S@D(X}ObmR|cȺ7vXDK 톳(#a6ikAEa^]NjRYg KD Qg>N8ll"jJ6MXPiflaBϬ*Hi]YVmt_ OeX^RdY$p= IE1zK5Qf1r!p _>jR%E#.qE(kT[w)C;<>&Ox7DRJ4% /!J<ꗆ0KW):u\m-+jڴ샊jZ5Z J-ؕ%b.}T33(!_e&(Y<$kE 4E84A׌eT ڸ22#0 #ڷokEv\ڵpmpDO7ͥ- LJ>P DPu2Q(\JquuWtYBcnHAݥ|' htApER;Fͅ"N腮Db"D.2*LĜc8q8̶u>;Ռ>wY3ȰMaNL[w@-.e,\̋?c w#QmY@{lU3%67[6+GZl`Q˷wf 1P֖EtC A8C*WzPq1 }.(VK)ve("uq\?Xg RUUV:kza; q!H'S6#~oRڙylvįۭe+?J'> afY+.Zg۬LǙ!w`U2g-(ȶ} 2OaE?ق?`7 䠼|s 6/ǜ1& 1`]Yf27[[56*\aѳzu]D DENQQR ՙWӁ?HQCdKЍ4 rrq9n`]QU m wQY[xX0ʼnVA%0@剖AቔL,1`=^n9cF'fi힑2m|@eS@h[`.F-5_UZ%ha> K ^pG{qO`?LF@A88T1A(]iTnbmTmӱKK6Ȥ" 6ڢB!,-W  ߩ"%ZU@*^Yj_A>![]iB򆊹n! lE?䞏\"eUAƓ" j?LI -E-S9mVib >V#{\Aa$>mAb?$\Y)^bO>IBXTb%AD.4Le" 0R6:9]ZWӡU5Bݾ`8z"`Dc:ccfC9` : c]V*C#?f@JYl&mrM\B>mnJfaHMR^2^H6mbA-X֜jf4ă["ZVh\e#ntCצԈ>D3FY4Vz`6F| R(M5fc*Zd"d :b$-D#de}IT RXbVE}&q^"9CPnN$pDΞ^[O^&4ASAYiefA.$n_ndr~qapbO!E"'gQF^$)j9R'v)URFQ=3ĭ^n4>R5X>Ą܃nLb(0JɈ}3>D_|z=5N7v#8O(. W%SC"%4)%P%ZۭڪCb.,"oC*AHlrK eiӛRp*q"gFҞm)dldf@^ujaؒ-ɶ!ƩQv&e?A|BaS$EZ"3FAj‚F-) )M("eB"`t cd2>_h".yU]`n]TbITdJ&4d莮뎺kW)I>3ClAjZeV)V lQ!h>3,Pn$b"*g-)mlFo͖/JiFZ'K/$xa"*B @vMfY*u)VoF0Ujb}*ȵA!Pv.ڢؚ캰2CHCOHа4@hA.CT(pD0bXnA #?F1b+=Qw lxhH2c2&J&TV4 1Ļhf2ۢnj %1X,Bl!KmD2# ԚU%SJ308Z" ~c fd),rHoKC⩤wtlM*f{4+۩pdP9#>R&ga2:djm#+"0~Y>C 0D"i t@ t p '? 34ñ40R4Aq n6&cHe*w= AApEX3&c0ApzbJjCk #) 1 jڪ.UlD55!p3?3PV2#/Y&(/n(?3^]3*5+*\r$4/A$u֯!sf$3*в @#jӦ(mo+ 2i-7Yu#w0arg2$!P5uqw#]_7^`IM빰 %yq bb-qRtOP4(75+RqAcB SF@AT׳-5rXs!n0@F$s VJ-\K/A5]Sȵ`12._^v1@*B$4d[v" 0?DEue"̎6ж2j9i47-A8c:3XmY_r&32oDC? w#X#jqӳ GCt?\7n+nD;C77.E17jG7zn8cGJWw#L􁯠MW4"K4(BBt Bxs.A{BOE8ڳq{jqr{ C3H-(uA2])&9`;_G|*DrO'y$*?@b wFIv$d"DS'9 1d6K.\_w  _9:e7mg][S)]?zn\2q#kz3A٣{ºt; jC:N4 chseLt~h>J3覑4Dz7t|hDԴ4>w{K_x68;wxUgsz2wX75|%/wG`)P=)1Z|3vǷ_ *v *|FB%\y Xʼd >ٗi%D$=,A@DZ-ȋ:\E&h A~d*$2e+C-2_dY-$Y1"m|fК :jHj\U+gϺ^Y!'(k*@ҒퟴٲI_DFb"Ke/ܸUͥZ MuѭP?=Lyf/nj# Ƒ#>8{C᫅-(oCq^ ug{ՏyR`|zYjkG$ ũ`"☗P( _: |P 1p kzB0D"aTN<1c@E"ń^Ph(B!D&:Ə^ɇԑ*褐N?"I)/I0\-겦ȩʰ/$o+=C*+=ЯϻBR˯/Äk9 (2qġ203@J;M4ZsaMs`fvRk6+F9Z :Z.`#nN<8<*9⍯^B 7>LPB&EB!< l J/,w*bËQ)&QycbE.ReiȡJ(D4!&;J|8ĐRN*&)ꨝ*SiO@7C<WCҕ*m5-4"w΋ Ř} lZZSkBRy:+;RЏ3/2xF6-'\b#DL(iҟHfY8FQ`֐E/0- H:"# m y X4M0Hi$|KFhe)'+~V1qIj[P:D(7НBXD J⼴]Zċf1lf6y$ ^s"Մ^` kH; J"vDqZKp$).I:)BI(WrnD#qh5ZX]/Wd 3eENQO{% R#j1BSdCu%]aJjH(;:XN`&<ݲ*j!B {J d\Vʘ*dzqyn;HyEdhGE$9C|DMkPC f0d]P+?ba )A7"`Ќ#3mM΄v6Gy5 I$QnԧI,}1~䘘]b$N݄*o+#7Q>zٛdl J׆c# xhŪ@*.I[ NA$lӪ짍NHrHG=pÕ݇?RFh:%"zV-v[5K.d <.V(8w s %WP F<-y}EAGT$MvȆD|˞5&m..MH 4?=y `^AOEH{AӉS} 8!*93ev]D7l W'=@uuaBĨԚQ^,;8Hq'dIB)1l=6qVw|0R|+]$| g`Fx;T}[ xT 0\G.aybqwTJ_Qu0JP.:._09kficK~`fVIb⁲) $&I($(b (.hk`N.Hj)'b֮j ҏ`Vx׆*@bNJH؈mMل*B  t%3ֈJ"P/MW. $Ht>&$'80޼ .ko*OŬ0.fB; vob4QǦOkM 믞@D\Kbxӌɳ)/tno¬nԴ J1e-r&$g Ѥ=p @)j*VHH W/bγQj [qя0#lmuQך*גB E \jR";3r>4*hXzh%i1Tt Q6 oj>#7Rd-N+; v\*AѣD!].J1o1E|12^F1P螎 Rϖ2?1Ib23{|KLM ԉ$DB1g0g$."WM!Wqr*-u C \",Ҋ&%* q0P$ $B'36c\J&R K&%>M6eYJ7Ī)Ê ϥO( dAvB,Ow48=4pAll 8&v // m b./_BkR0x03D%qN22PJA3-H*:s4҉0Q2d/=ks6tjBG484OWELD0 K9PAٖ:Ir P$512HZ/';VTST[ C%:GI?*.,Ă *PA"BA#=h78-47ʊ68qtAᲺXM6{{8dwvea`6QO~UI3Iߎxx8K7$Tpz y A*:Vcw @!?J`W5x[G6CyeM1k$V$g[q@w6Gt.+Th6{$:r#mj:I@ $A"S1;U2>*lOxH5IUMs $^:qB,0uZjx:!##up CpY2*N8\w,\EԊ3hEɏsts1)zh1/6|A9x^ LGl@cWw֍ubCձ3nb_uڝ٨Acw{'5vz w??^SԘULT|/6UԀi8$ʡ$[uL.5kY:9i[i!$%joo;3;gT22lۦ̰=sUq]3^56Fr0mR@ :8XqpAg{[OvDx h9\AD7tUg7zu߀t;/[GzI7cza:``#f:mz*DkzIz33A׿?{%"$J$${Q|_L뛾{8$6ewV̮=q*ix* $ ׁ#Rj)x@1uY@S_ ;=s'5J'5*bȫS QYI"BwAA5ǩ5mi;̹[[A[MW]_ov#ݤ3/m/:)v5M)5`IYԹz{nEk/6{33wy۝zK=c$$Fn=a4 igCm⟢G1X`6T]o{_Cvm|J],Vdʕ _zi)S86xa` mga6F.Ft#4qIi_Jjm84>II_Wdls=lFS`?f42) B(G%,fQٕڢdH2LPB qF66F* UBUޮU[ֲCqO  t#9P-xϫ8ı¿^a 'Oo:a[L ܨw#ƮMB^H<یPxhI@JOztD\Gy j| c{`M±Ic'PBieY1PF @mN,ybTR-ъw D&lNb1y"HF86 M -j$80t {Ҟ!шԱg82.xHT::Jz⑞Hc ٣J[jː2i+kʚt4V>2lZ_Qq$La̴_.(*V1U/F.BIm_zfh5*Z_EGVM9EZe';:Uw|He0;x|nϦԶde{R4(ǡ%/j(G?zވTlt^O rd&{KLBhijr1@\"DI$U)j)y2+ehRUQzZ_ 4H7JC}UFu,:!fpbSg՞4^'!s I )[k?sJySxd} Qh- @clv6VEVa1<w7vynE:˙18S&>Ief.KD!q>'=beĤih"м2І2ҐPֈ3b H ? 0c|F@xH̱/6Ɵws_m   ذGg ݡ1kp k U T%(+]3Sh*r##A@`r|[rb7v 7 \BbV7(`NHq0FH0z7 PnxS:Tl NEGy,5X.NĂCJTmF ! 'Q! o`zOAF:j4F }EBH6\M({+\1 0 p}5|_ \u5?b~r@Q' ` ڐڠ p}ta~؀ X~hhИ''˜؋XJ4tJS(Kcp hV@eYq^%Ug(Ő,ǐ $e4 )IpR5/HQₐ«1&ƏvZ_=/qo22@q6ǶMф@Mdu[BӌA7r-*N@H}Mo|xSMFu/ fR<DRg`KI17e2 UJ<,a:(t]jѨGȗʅ˵nmːPْ-߫vnE YPŌȎ|u!'緘qҫtQ: x@ڂ/]MJU1T\Nоp7D@Dr >3H)PM(Mxe{QEAygqQ8Bb7@ A N>|@#K ?ZFU6NPS;>%B#B'P<;$$FHȊXjF&+N &Vj#'`}[_'Z"Ʃ2**cY"BK[Ak-g%bv۴fq f/ǰuS 2v{L1v,s2$H63H:컀4X5\d*RePfbrӘM,z%Ge %ryBlS>[""HDv 7 h뮹ZG4y֯?:`m`XC`Xs(Q"to"l%L)%#t"ӄ-|ĊPT)2)s^r5pW%rf(?s}P= ߁ ËF 5tG#r"RLWG` _jWa5*]_^*Y_k iZG "Җ@@%/̹%0rÎx+r 畯$3 $B _3i0$hI1] c jPoHl8Ύ|P  DBh cS44*AӔvF7>M?B⣁Q0?"aCFDXC[H  86E aޕ T^,ݗ+kMYWU(CgDx6b(&!.e!v"< ?f0ыiZ2֜$IdJ/@?*".%#܍uCͪnJ"6DZIE!9?"BRH+ҏ&Q.MaR&6 XdIֺSviI%ӻSz"jDG= y{7׫<᭗z͹,xs(|uOK\p0 b%\x}S)Tዃ6b |LPRي=ke-|6-[|ً]\X")e80, .q 0r2q ږ'Yч*5;u@mղkC` F^032fI@dMEw3OSV@ WȎ'8aAT?6Br[ JԤ*G27Ҭ'4F1o$6\wXD65g"w5#A^uwO'9>ҋ8o~t׾ ntҧG#a<p5G lpiQ 1@Y45xKH#Fj$y+[F9L4 o1< Ί[AFKsFr$ RمxHr4l: e=s!2){1 4,eӋP"p4Ij;Ё:@GTsGGqG ei@p6D}i?:gK!7R,R웾y#C7(Xixc-(=5O5&X =(a RZdI$F_W@Jj_P_jؐY i0В<6Uiо=Q(s?,9$99e?٦yHiI PlR)=Q+⩿iؾT?ȁLQRќəIDӜ2dIɊd& !m JHOST#j0-(A1 t"ЄLEO9pJ66Xϻl4HCC0MOJ$ASHKEBPȪJՕ9;6 Ը;.h8h&@ mIL(!01# b!$R4ɺU4\[%M,()xJHAE84;0MKēD3TJE%O\2xL44L9EEQ6xG}TZ ,B /P' [9yPC" Rk" aR.j/E(7\Ŋ4=- M&,? H>RZ61S"52mRl,e??ӘIH&AEKO?DlIAdG>{d5Hi]QQ'5>U4݊.qH ЗJڟ٣4-9hAOOO-1[,). Xˊ@Di`::hULvP3&*8 m)(BfL`D;M"E#O$CY3jZXRW̫? mF:PB+UD)HE8N;s,#4A4ɫH cPB#6EtԊ=b$2PMJ=)ID9%q ;2KTڻ# 5_ Z/r8 5򓒤&C>jЭX؅iAZ]i&CS>Z>][egIM!-@ISk-Ԥ>DK2i1-ɴS}䅣IO.eIdA}\h*?iQD(X[@#QF mu]5 ^O@5Hp6cuM@gzab8`U\X_hx_땈"(UPV3ˊ-D<:LN+ÒҜ":`aEE1+?`.?+F:O)LE$ׅWA`W,!KE݅WiS|S}`&ۥ뵊2؅$E(%|̹d *YՄ ѐ97VQmҊΓW@r Z_I]\#CQU̓?ȘʩTo=TFkӒE)d6lSŴEZBU&m慼t&ȢQU u쨋mxCog@gzpzs؆[0 hh{eE8BA\rX"Q͐ AK%f8^|Ǐ(4tiE c&<}e )A !#p6tl\?`\ _Cb/{ ?\YG!l! yTH$4us"iu~XZpNHxd Z;ː0(DW]VL/.++TFҘAb@%f3ȂP WL5Wjl@ְ)t"ُ'cSr#$!ȷ |>%+"R IhL*QS$U0W^;$ pPUnZ6,Djb]LX^kifya0!~6Ӥ,blx~~ Wn gl4Kfi"Q ̀Kw$1,RUSYL!QژBCbd̎-Ѭo&Y4fE$Ҕl1l!gƙ#ec/ /9^5q9Ҋbd3rV {ւC l`qx+%+:߹STG &%I]вP  韉Ӯ_)LEAvlg EB^|5>/\Ė60H$ oTB4 ndgb^R Q-jԩ ilP]EO?Q.>hSpIK| 9bD9t$R@ғvu)V%|UzVGQjhz/ J7UǕRLcʰ$iw%W DBÜ(DB̽ HAsG$9nQ`slӸ-`i@O'RȘF$8HGhG*qA*^d4[iUŀqTp̌DU ddȍ\'`B.0B, \>!4|MAGG1=28?hSVhSA5?8yWv;tIST]MSIw40Յpa1x-x-EcC[(4OPY9OrFWM (*R6C2h9h?h/8Z蔁3IdZ@lILPCJTHYLB8A\*O$MRe5&[0*QRJFETږjGO(nyqMrx.%ƙ *jFn\vxLK> |uiPeM(yx ^ljXgEAsI> E,lF9NwFCDWhM)/ i)ˢ}&J~SXG[ȱ OKB1 OPOQ@27rA8&&j')GNDXmAt/҈^e¯ C0 C^t&u eLcƨ5q$BɔAtUN8noxh!QP]^Ҡ>IƘRˁgiۿefTmA$\4g40 .{xr **sE-nGvn'x1OUF4(aBx^-:9{A.Cx́ r:~aѝ/FvZd))ks*UDRV{e/BZ1J0E<<ΑUЙ5JKam& upDLМE*DЈO#w#DC$?|A@P Kuֺ>m#G9Io?" I%΄Ӛ + @B8/pxjVW"eɸTi|LLVR: n@ hvpe PH դKfMOX_I<=A8p ]judp BP`x]E+zW|R% jr9xgG)p_ԗ.w. .{d{jX2! ?x+BZUd)Sƞ $YkV̈́/P]DOJXbPF\ŋ7X#6Ma=1jII`u%rΌ0 `#Ou[ Ġ(Tϙ5m\4…DD0v$y[b5~|Rg nCi<[P lI, 91 MӪ,,2b%AFtN`k $%- Gm` ra TA= |.y]S ' c 9Ġp00n6B{2 2IJF B4Rb9TҕSOйTR4i$Љ4 /y[@E0nZ(;}Q?4)yiӧny'ȯB^ڂhAf+TC! Nq/p! YAJtI%D!B&y׻R#vWWt+D)zH&aMXNF2=- C eU&3 ce7 n:jR1XdcAQr ,PY$6fcd Ҙ(E5dDWHVhtHmnp RLTӴP`-k!INz1FǕЮv+JXm`W`-xB ث^ 8} I,Я3lap1&igc;JEH DJѴ5M&EiL~"m1&CAr8YL&(8E3gU@.ǩ'`>]znJ Q$P!tlC;ᖹ򄅼U?S2JjT_3B X-'iD:3@ Eh:y1fлd#\Wrd YS=heEfKK<.F:03.ma{]#Gxz]G@z^^CC{ۻ} ˡ 'IQHf a0Vb?\BUU |-Ds`#jQVT:Ә¤߆XL̓%Iy9qI;v'5JI2J Ý(<7Ӳ2,27)aS2u̳:2V7gxA.ؘHAKReLMP*Fmz?`) Й$ldQ:e>j !2$ a9nc8Ccwze%B*䛠d8"OrQ4 N NaN:cB4$1 )$2\b* MHmr!  qLЌBKvɥa\`ՀN(|wz'4NzLs Nٌe FYaP1>#B\`T".D&#(X@jHXffKhc"ܪwz͋@16bF ?`==У#?}!+ o ) R.b)X0,@BAE>""RQkk XJ,MTܧrL%AHQ$Q3B2wIw4 Bx!9, OnNe~~dqH`z  H s;Wa1S3?qf`1Fc]BA;J;>m+ V!;s= s CC7!kmRA~+O#1-*KӲP 㔎e @' ThM[Dbfq~< *?B0C&Q!M%?Kl-Ddz>BM(#^ + xOO =:N0 Q$A~V nn`R?O2a/c>DB2 6:Uy z6 9.2n֋m+~u 4>T҇LY]WfTMo O0²NLڐ[{ |IpG>AVTdU  AyQD9t3aC9tD D ƬYujd1D<{;;;yVbVN!!KMbl&=ZlՖ:Gw=t0^*T)GQʠ!?I0+EKԋ$hiX`wEdM|"Q>xfO׃?ΆO 0OFTQ O+9ºB’#B8uH Cp D؄g0LX$}ЫWUoϼo4 h W=uR0eoXTy4Lol&'iЉXl lABI5Tf ~T G!`| ' fe=ݳ! +Aa W4t!+x֘f +Dr"`ư 4&$ ZĢPxSxmnl,y ;-d|"L($SF5 ՀwI5]Gq LUXPO;O5X3X %b2SG$E6юi{]1N?:OJ%xn `ڛ #GQ[Ip W$qD /LBR[OoxMz!~`z"h!x`_8^Qt3_ǞYWGNk'4_u"m-[/nK'B09*~O(Y#>I+I7ZzG>tt{>JzD#=ŷ_)=U{Τöx׹u$Xzt e$LRr`HHDu,+]%19SFyy0E L^N `8,L{" ٹTN%?t؋ ^J5D E,:Mn\j]A0p"B> ZXG>F3G>J%A8QtjIẺurXĤB'p x P xI ޝ5~\1>qbO!E ~ |! A7T;eD]egW, 2Sv&ˣah8Ԏ/Y'1 \IֻkA;%+Zy>>dzoQ UQ9P |A RA2j?p3%o V,P?)1( !2ha]ͥ!D XA"SԩM:q BЊpႃ)ФtIp@(S(GBa$e 0a4?8|b8UZz' r6Q8`:J7&]vp8RfHdVapЇ>@2e-[~Яϼ҈NO1Q%V'1l}rm?v]v}=j5L&U=5 0U PL@b8z{x=C@A(O+pHŽ$#w4)Evd8BąL LbȄ7TFSRI%ɍ72c%E,RD33T *蠄h4?JFbhD%\M&̖e:GbcRI3Ok\\gMIr\aCPS$ 3H!^3FHuh^PHRpјrnTs̵J`Μ'P ū4J˫1)bcu(0hT O `ބMaPFLňKE耑FDNFJP҅ OSiUW/Z UTSZhH0S"co()ġ䒜a&6QۜOMO6?Ֆf~˛‹g"Zi~hr@呤]}QHt_L7ppU Z]4?SPMRڡxjMP}{ÕYן@ pJH@B"Oˆx2_XωMvi%V) ^F>{U.[-h哿ϖ735Jp.cBM$s[qBK.{瞢jhH$EHJ ETD?Eܩ#HQ9GzJҏ:Qӌ 3ZXBV_U+\Ex!BCBXbҖn<,d.\'IU_ÍA ֛4.HDM:S`M_ L,jSD \ "zQqE-0JdbnW*T\h-@73p /Sݬ4HdhDcFHh:ֱXR"SC&}ri9ړtpH*h2'(+<߉x65="/=vs .Pqc\@r,9Tt(:aCS XtEf Ђ5e)oI@DC '&9Y e5v%_GIN␅XKWP#%}vߏ삑4S54)K#S]$oL&9P3Аz?>\U*5h (t0Fr bB+,4K'DnS|zH,i-(ޤZdAJ"%-`gf0jVǜLe-h[Td5C'jbSYksQ1T:ZCe~H~saeqυkGKtJϖ212EDpaoГtjYE.GG{0f7YX`18yqq eCk .5FTN@$rb1`0vJ Z0{Kuc64J uH!EWSs2'`X9KdDujaB2&u*!vt, > VZU bkq OU3eEg.4 /bx. d">2FG`V|q;X%(ce:K8ӂ-t}a5DtQ)-QL"";B![BL4y-%I\6MkP֚ˠ޲Hʑ0k'; T@8NNG$%U8Kߴtʎ*ګ\{aPLZj:X㞉f"@ 05u8Iq׼f!@p̶6a<8ŵ}|rQb0GLr2dLk2I{BK$zD袋NIVЋKc(zW 1h L-CZ#!ثKEt4A|=U&.v0/H^U]R = >>щb8 dN1fJ.p͘|`׌ B,9)9< Ba$&)aid$P?ص#\$0bStK3!!!cG!ݖ!ځmsrVnA1-ԁ1a(l1r؅GHQeX ΕU`.qC1:Z'"d`A| !'_5VA[7:W?rKsL#aMsb 8 G' .tT@? Nxaa!3"Mq-J3v9pm5;Y~RQr-RP #0#'ou]]ax,] tOF9pu&vԔϑбUnHUmU/n*GT!1anؑ"&^sgڃp":9RO!u&2(0WxLt#t?,A9` 4a[0qjp.BGtљ6@am%"!ArRa1J.ȂXfœLRj~7KK AF}bR5O/D?`0hD#Q)3x*])7]vǝW@T@ +)A !ǑP4bR0 $uI#< V%4  [dgr [j8+y:S +#ER>2g {Die%jm-J{5 ŏb;1s]\\-A(lkɑ|tw-Zt(<hbْDR; ,WDtesTGU+̫51 ü]W^b7vm˿|k3:˗R{̬s@_pdl{: qDA`u37}m׶D 1 b »6כ NLt. W pO365G?:~k&$A$GR Z;5AaL$i ye0z]P t{3V~PvK(:bm Jб@ Pz 3p lW֯ HhTq [ >/%&HSy?b(a.!By]iT$*طx*,a|w[ -cl^!*n'7SwGtmB.JDQ^cqjvK[:Xn_[*B ZͫI G$& 1 L8E1b𑍈="H0-] ?1)X/#7cK)rJ4Ed SUCicʿ08 _PȴVU:8ET穨|[Rˡ'!{66mƅ mü ?8b I!TDt\ᢣ:hUѕfߢHʴiӲL6i~E߯x2He3Ԩ{Ř'c7%J(ԠgOc48&&bf M %J iC O9!EOxē?#$PB:-bO=g-)p@ 0, r6M% A G:F% 4*SA @nȥPn=[ȵ'n*`bteVPiUvm"aH5DG 0SL8" !#a|PRBb" b2``/~( @jja_J'j-ZsCL k.X"*gY)\ 8 %%ˬgØ"4Bh$Q-St*DoE6k̷AgIdvg{f y&Lڴ4At %1 9TR01JXv"`MYF] 4"CCRhmN脅>O\,2L6|ˬ2dA gmҐaLc 3Npb h l&DP[q-:ULSBfQT hf46  Ђ$&1"ve-) Qd-,k(#@Fh)\L .&`]-YE!aqb "= ())AJVl3%TaXK@( |^2X?LMLj)Փ8c!K) #> WEHg(j^i.5$"{R F%M,iDip&?cI;w`q'L4Bf{ꖞKqy!qɞP4PA茑 u#*Έr3-B@:P#1} 0Әa?N)ԡG$X1"H25?-1%Q?65MJ4AhGA8@[$y )!2z.)U0&X>Uy IM%-`,tXr0.9Vb ʊJ'b3b풅(ՄN^mAd"AP,0Tch V`|lXKjʗ5nRE"c1(TmWiT)83 `UǭZD6a57 ԑ2<42Wz}Oԡq?#8y SݐSο-YpC~ހCg\ 4Ѐs1?j8=Je,  ;& bE( Us1?Qig ֪EhQ`.*~'Mp3̧ʯkR(MQ0؉G=6eˤy:-^&hT2Qp*i*N _ ۫\,\tpʩa|'nr(І0npu!#%(;8=='~a6MD,lQJziK KAꄱ:sFYal=ĘN-P10 sRҤ;I5岜ӊ֦5AI@F'%43T;anl3A SadYqL'ЮvX^ ߏD9.ye#fyzjk@W%/P7*(=P@l &`7ژ{CꊷjEj 䣌i2 xc/xXIh`.i aӽB5Qb4 I#8xg7Bహ#kS:qB!٦z1#87 =C(CY'(ZҐ( />Ψ :ǂ@ KA:G؃Z&D55[4VTDT4둖/\IIE M$i '!_x G iXꠒM!SYXAKǻ@h/\ yD$Ѝa 2B %XXa p>ky خ#5`+HL+p@k@<=.~[ ~k$ t;0..Љ` {H,%S:%劤@JȢΘhJ),q)4PC5Y›hʳS+˸0-ixȉ㐎2@`qڎ@lyKpC5 +pRL@'CXD%ѨD)H"ab\NNܢ C* ڛ#1=ۈr%X *p*ZS5jӦKK|K\ ذ8>8˛˰0E 69T'tJ9g2LTɉxռ쒿iS}__:k 㰰4 Jxک"@"0DCBXj(%PX6r j1dh[8q%\fq HVzY5i @ٲKI c`a2`z%`YVM b X:!h)m(b`"-Y!wTR%P9Yg )SV{e:-'/jaӲ,+Tړl udNkx$@I`ģЀ@ @'t#"Aۉp#[h I8('~4Y,ϛͳ3(?} cWVC51+6!A̷ ؒ2+* 6xn"Lr CM h:C~RȍlLf"x)J`9T8@`+Z]Z?( u 0$_=_dP-Պhx_;ȚQ% P;JNtBp^"Ƣ=YғZ픸J '+;9&&BS޻xmRƳS8ɰ˹4*W¿ɎFL?@L2&9in:C%9TC-m#;2dF3" + Pxƀ:XPpM Ȋ 001?5NXjxc$41O8V6igX%zEQ̻i&a4lX߈nm&OY0ZƖK̞vP^aq fV9F#g4hg5֡ x6ws=km#pokV4Tpb0Nږk3FaX(4^Fg9n@yCǦt;7m lF@B$P##?ZE %ʔ+Dykda0SP{*`oO.T9Q^gݢ*m[2 dWj>e*#Xf)]yNtzՋ)A@/ _CPb ,)$] E'R$_HE2\8[ 4HhxLlFݤF)cL"яxS8$"),&i ! Hy"h lB4Z wmd '*&K蒇R!Xnp;PqcB9 arҴNp3\<)HAz@@GJґ޹ X P$$G hff,zKS<0eqATplgqԡHK>BU#Cߚhc(#6ZKyê%uP$HEs-b*fVA9XPcDG$f1 T"ŒngBe@[ziG:/UJjj>"4D veLəhl?/} `CD~̈{lĨ/X (x6b ^(X Tyq!d$JWKPjM iLch-?׵8HYb-Vnc &I4<-uB;JRalc+KMVY +Xwq# ;,QFKibʦAJE1҄?nbB` IòPP5@0 j葏4%tK>U97Z0ѩ#ǪȐ$i2HStVH!)-Wt^dM["T$ՄZ)d)zq 31g\P'WAOQcDM"Q3.8ZѪ.q]%xM@-"J6@ZY1TEjTCfn  Daw/5P s: VA?D)B//l /ߏB6F x ̌7dUK)߰,l$O¤b%~ \;Z4xl0u0nxH% ]#NwjRn;Nsp2=0D@B9a K(rҰ5M]鋓 "lt[ H邰H0F߹$v'adE8ƒ#zCI,;%|@~1w‡!Rb+Yˌe 'bxwCCtƒ%Zpލ ^K8FIHA'@Y_qn( L(}\AxÑ^ׄ =#pDlZKD7bPW1cEI"jAUMZ7ʆ]잦8@KڵDGK& g1)6KPP[6B]\EP΍IdB$lhaIaND~_Lߘvq:WEM$MwYs5l[fhm)]QvVیM2 2љ"C{Q{ vh"R$I ͕QRЍ@fŎ?I$Y}EQ,*U*DSA^68S940a 6N8_6ӄA5Y0 e$@]9)gC> ;aE|Wn(ZpA4ʨb( ozMGsXYYt+|XkshI8R' l=0Wm"s(+lqu}Yi t!i`#O7ަm9g9+yA\F9>K0ϰJpaI,R\+ZXd~9E:2jE$쁏HɆ!h؉ȊRAɗa UwB. $E`-tlM<[|'m)%x Mx˙j i)\ iغ"Ƴ"ЈlەA҅w|Rl-YΆXA$ V*35f=S2ĮZC0 b2fAPXL@R!n?!?Xx4 9qڵ&\E%Z`%r^+pj2m^ȒllMoEOR)6|הWa Ep`o]\"ZOx y}'KH&FllF\J젘]"u͹n>Wpڬ:Y\?(jȏd&fҶS]lIfӌ~OA ‘k}4[DNřrlj⚖Y qx P%ߢ KޠUB#`y!IK%@p@)r`uaRr |x)D4QΪ覘@S.ӥ:.Cځ/ˮ &42..YÈ|0؁/Rfꮥ">?@Xt\ZtX*9߯Ę Rְ.LƷ>)=wOVtrYȆ)&#E( qx+ʂ+?)wzg1~J/'Fm- ʗK4%ލYEU.DMoMW.l*CJ?,a(e#!!V$؏ 9Ɏب OXQ<`I' n"z)3uqݬ, YlzLz4L V`\U\ H.2)jaQJLzRw%.&_lOG؄MuY¶"zd۬2Wȏ`f-/a:Z6/6AA'2'@q_L3;X$/ dĎ;(6r_Á(֜EyytɰzWA3gu<ӅҷMɅ$Ї@lXr^^)Bs8v`WNrx4B\yRr-8z?x?wGC1obA ֨YJܙaHYH\Y=eiB¶B -;1!ޓUV[XֆǖD`̰@ zG)Ɉ2!1f3=Kwb:\TE UMQd+#_j6s 1{ lMqPk Wqi{*l ]^nCgo+.6MتTHblotK7 a Y*y}gcu;\Q‹a^g̞@a󺧇WВE{ rנXlR=\Ȇ9J{.ٶ Ҍp 5U( f9Gh2VLsߪsۼ,&THT =Izd;%e*rI2% Fˆ]\uW^IOj6b$W\D!`Q9M Ɏ2v|dAoW2?@0Eg&fl)l,y1cI?6z]D`hQWG)2-|](c#*YI%O/@7O'7T?8z2b Q|B-L YhI<~4F˖Zxc"MUny db 78tKX,`QU"E. ׆pԩ_i6Qm0Mpm[u(2E)u<0!PY=,GGR Xg!hB6GȒIrM#G$&:Z\B4y&LO!\!2,9 $p>a<} S⾤ _,.@Sh:AAPBɥP{/p):A@,jb!Z*# xjdZϱGЂ3,O%DRa, ,y@k쨒2HPq e(Iskի9B:8 wD `%6*Vdm4,aTIh4yJZGy:lÏ;3MqoO?NR TxfA1 XZLվ=61|LGUQk)`}`@ Hy lہ@p mD\RB(!ɲnu|7։`#$r[p8scZ/=>I@V''8ͮraSl\%`D"Q| 8om#g)hX3煏<!(I{س|x)Q %)@-7EC駞hF_MQkg-e/+ Lp$\JJ} ) / $!.#GT GP4N266 eiY,5W AH.0yТc͑@ώ.gۣMudA5de9F=$>ьEtie` i,DvBTTq؃4cc%Rs5Y%;c;s,Y]frd$I8dd" LhQq;u9td%NwQ<6豑y~>7*-=URr=#[<̟ W$tS h;sIS^ơꙀzZ;4$ݘ8;qf1 F~Fk!YHIItIG3ŒtTKb捻 ?Ty'뵚BpȰP:$I+wAو7{cآ.gTgsnfYŕ pDƬ1%9Y̆bmu9R;hSӖxe VF c^cX` #d!LulܐHIM*ȌD1?bEz?nuIOn ynaBt;e3Jͦ5L҅摲D \#/$n,Fq W\`-F],b*qQd@p!CLJ NI? dTMT":HRhq ogpg0ޣ"J}cɸv}z$P?X+%6#|#ĥteN>$EhR#j"4bY1*p.HHȫolʃh< @4Җ$ 2*2y"m".iaB/Q1+"m.if"`*'pzJIf,='BQJ ~H HʬJ ٮkI@IÑ$nN"M|"*M3@ L~@@131-0(CBapWDXX<;aR>@5YS X@ O+ds/٘ถOLQ@ K$Qo@eB2jCf$r pq6P&2PfO2Oc`NFV&1Ռ+3M*1 0?#/2 q*"c/ o2mqt~P& &_42!Dv"D jhpúgTXlɂb(;jFe.wT#% s}(+2D3J+%̈So6&* o!K)/g@/32`/> ,ݓK*1 52%QQ?*i3M7H(F4C>:S?XfLTY`bsa Ԃ/ $8aOڄ XQSLFUxN.l޲s/2LOP 51j1q<S@ 3!(0qOo^)q?su3T"FBm@*jP B b] 00D|q"Z{B{X\([\&C"Ut\fQU4М  .?L/0<(0 m1Te8FD# +03- >/ TP z(4fOSQ-c-%*uoQ^@>k3E/G`Cjf}e O1n˸(v #{3G1I>̠DÉu_)^ {W$ϐ/\tNTc6`AЊב62X[#\QP?س=t34fFpjfZ/fCClQr/rm! ?Ds9W > t 8E7wIWw8O8 `Qs^gNhC ƪBY>RPG Ply_1^͕^602 =3KF г|7yYzW1Sz<'#co@9x˜Тԭ&e/b-ڥAPy,+b|r'mdY"=a#/2KJl10cQea-7TPhԡu?J,"e%DP9D?,…7܀c!+N*1hO=fqOuf26? -n#T(ړPhhP?pTuYuĆQ6?dh (!B? PWP}TI.C*Q+$F)1U$I0% Ljd듶E%V=$IlwTJAޙKZ[p}J\OU^G.\`p,_I1 h ,T<!0c&OA8pQrlo7\ B.q#r i5B:Մъ祇^Y@ŚDk̖Rx JYeUm5aLa앴Iݡwk!Glk)vW݊"5>XO_IցPD*N>JQ?`;{)&fty(qhCbV7w2j'XSN5Q=ԩٔP#VHE]#8~A'4ZzTԪU 8HXsiC!FP<DR$B=E@pKL(╰,"u|M`_ ,E(TU@^\& аg>ЉcE@f )8h0&q0Y ZSp}Mn&gA38SȮtM=pRZbOAƆZ,LY r#B&,كJu7MfoĢլس@eݺ"d@KQ ֘!4Z` K Eb*QTnKD%D%صtB1a|'xBC)tZp`,I Gn=IMLŽ7eSh2*oK(20< ` B@C  DgH2nQ8(Blea``3`5> :c0@$JH<88DA+!HW@k #jG[">iH|R<BHM^$bdɿ`avhMeH8X%odΡ S5M)TBM]7+ ,I JYZ3+g.Fޤm'g!y:3'Bh7(Q'4QeHe{; C=BR.PC6VdLm!ԣL|*96-@ uBi$eMHC吗$t*0 X’2,We ,V/`sZ> 0& #+Ǵ)H#S]˚C0xSP&g°l 4#'$GGVOHB`$aj֒41K!)+$Ppũl-r+gڬn.toI†uif?LE_rFWEތ"1Hxs"*$ n!(&꠵ ؐ䉜VтmtnF[4&z:)dHlS^('BЄ<"<SZ#!-۱0d禪/m uYP~UHM'Ƭ9b9)Td2O"d*%y_q(\F|B]u/ph`DB2Sa.6 k*_`p֔Zvx@?- GpP=T!Ojyvw'ӛ` ts Vkr%6W$UM%R}v RvDb f*]§LXw~Ex:cN#R&mV!.` '< r+4e=pP6?AU(6U6q :d?Q4LJ66mQDd +2cs !c dbvF>_6USU R&>ugCr_xsw|w}#OPWQMhSW\@FFDy i _v@zXjgYzG 0 BR 8bCaSf!Z$l%[G 1U,C}ca\,- W!"(\I{~!q-RsPE)55&""9K^D_ބ ,@%&RPM$Os ǐ1;p(e` qIc"S9`6#'^*,Hrj(B 4+"B q0FAQsPt9tȷcJcc5F4P7S;ل/*CS[TuF`xWGvRAA99R9"-iFh&s-/o/~w35LHC#dy ^{2^2%@2Dh60yV~`vvpGHgYG?GA:F3R~4I[J62+Х5>ytgtT!+\c}xbT"p2n';#G$E0MޔMo13 T":q9% 1b( q( OO`qg0r'n"ֳ&0({bBQs"T.Y* RPQtJfS6E|R+#0HAR !tB+buZc](ch>\jyC6T|w7t99TF`WLh,V S0ىkUDikCgFXjWv0 Z@#) RAAT*=\9k QIRGe\Glz@ ,e[Q^Qk/?JҜ̩йeP~3r&#Dp^5MExEM@MB %9NXptbPAaHCEOZՂq0raph#O!Zܥ4=ޑ1>(&5-F1 >c*"7dfc£.ZcBף:J4D# %{K263=>s[URhSUB !eA/3nj Vv/S9 F#Rxw$SLD2~*Cp2$|QVfUz'V~wv!9 7>#YaiH!8IFCzl*Ru5jk'amSV|7HB{Uiv\Iw׋<j0i"U#$"(huFӤ']T1DRN 88q& U-g `=НL~5L 4"4)"4P/E;I)?-39eUYQl\9S$60%ut@#@'k2ũ67B7d0cWUguF{/բL*2g QSk\eC7-5B^Y:i*SvԴGZp#AtxŅȵ_0 \ŠaCQjsH5^X6q5e[u쪜{IeJ6N!wm A 7qj\)Ha"*2TMBC*O$OCL;B9߉N6brn{(eSȁKO 6'Q#(zd# ^Cff]9PA128q*`8 \6} Accl?ZȱYDв@*3K !L#,$.+ -R8X7@F}ocxUi#œCDCTwj2if2I|Xa`yL%ugR\ ]98Z,{4 PO7]Kl2*ԣ4J~85+$-OZI+˅i6Ԝ!Fb9T"'⎙n%:ut$xOB<|`_20!x"Pz'`p#T! sD9S#3&>4>Cfv8䦝$bE`J$(,vC+sMg=,uܹӆGw%Q7j@]+07+ t::>8c<¤F+R?H?J})_g^U^X#2_x=Cq8B%uz R!> D[[[-+8Ϭ!!@*vr67,aUלrB̂uj$$:MIM ɫ؎۟Lb;L;'}mP>uF#𣠧'p뾸3& Zv p3nK';1B)b()/ket6K8r7g ,GYm-0>.4MH .d=egV+*Ǻm&<@ͣY@4ʮϛZ& tN RZ2R]tgr0tK0;_'=XF"XLዉV_uZfzO L`]«JԜ7ej{bE#8A!!3Ā~EAǒ'Ur 㞒))^8pK:Ғ =?n1$&L(Tš\U*T)8ī.Et":JTX '7ZtlM K"G{8Æ%v$%cI%m^(Ϊ-/&!8[;ű6 `)߭awTM*Tz=ck_K7ZH E4O?6*oxE9Y`{ 3A p:9p>/>ރH)@. H!@q D(9XPbJyTO; 'nh晽C P `s@VPzi [A)P髡0Îo@|/!R N5~60G %o\rG8 y0X\[l' <( МK3|OzN9l:@-yB'TхN ?CtjFݠr0 jJhGQeOWgR\A"}(z|H2!sdCkE·{OzIhR}J%U*u({~DW7`C0O(?q,ҪXF*la Ea4e) k.xŴ1AHދ#$@eNX*0)T уUa) IRHG TGcYr~Ĕ{8O܇5qt~2'?W})cP 5UPT= l GvE2͏dSgPsL{5 'q,g:FtR7.YU*Qߢ2p|ҕ|قN7dL3 s92L4)ɽ_Ey@(g/'k6|q'<S1Tqu#WcTN3Q\Rp=Q@VU-#d*O@2'=Ν9`tr]Vq9zMNrvU rjRN&`@|&6F3zY;Uo5(a"đGLSd\JT&AhMsZM/p48E<Ё) E+\ށxyjo1f 4OتRs^\[lRs{U7s+D݌TB=P7IzC`[ O<%GR /Yq A% s薊4PK Z *)p  15ɘĹ( !s+*`:븎Ѫ`:غ#"6-6r0Z;;<k44r{P50 }<9w <Bc,859K,JB X#5c88D  {5ă!/YC 3 XPcr+C8'Ey6rxb&shivrtFcL0ƧqsCaYIѲ뉳|3U9"𐟾8'y `䖋];)S@=C1"R#I1˱T dcr.X!@N*˕.3,;+BB*k/#IAd\p?h=^C?X t!)pLD"=2Ʌ98dxJOh \m 'i."() B) Jڱ${84ybpn\*& ?7yC@K Pk%Ȩ0B1;.tG<Ȉ\*ȨʐHH$5$+]љqOu+;'7~Q"/և! !/ h٩HR%1Zh. HWU N(-E(JhJ'b'$EhEPS tD5=-۸4Krq02-Y 'Hut"-TY Q]>ZY'lZ虀+(>]1FyۥO(_52z~y}ER0؈*;>; 35(B(YÕ|f63B_ڈZVc>K`MKjc1Wx`@º= \>G-eڿl/ D{ey*h:Φ N7i$# ecN]]7R ?|NMyb'u*Haf#<#0+{ڿx^Ufo@,$w> + ƈ35"np_Xn,×C#x*($++3"-26V9gò  .Ht lh3)O9 /v%ցEpcbv$WbihQ `ZlۇDS1c4(>Lț#,_̓T]#һc?%n) z-PP}1 C՜@s3|ޞXrՇghƎi& 9isع]*'YE%(n:0 36cAf]f55S@(Hf Z#Rk^H8! ^n8Ђ …OJ2r;P| :V`g-; j8Pz PٝMWxR.ZBpyRbp Gwi~b&&p7[L EɬS3 q!SD[@I)4o3bEai b !i{m'szR 帢[|8i8i7@=7l&I'tNj;E_{?tR7PLW53|U8my 2 W5By? ΂ܱ[,u"Regv{{K?>"%b%٧:yQmh/x_bYY=Sz'™&.$x_ig^&Zpqpmx0$4@aŤ lP6X!qEĉW xpC" `` A HIe=jzT&J8=I c*j ݳǀRNQ 5T$H ^eC?Z7Z=֪Sx8b hAC &? -@PYs^Γ5C9ox5d<:CѮG3f b L>iNy?]ߒ(ER9'Qaz&uTWؿ7_h|U&)Tˢ)/m-^., }df@*x?$T=7\uՃjT?qe|@|o`}%0WƉ]CCR}qH(TGOK?Oa?8|5A\\tӡQǙ::x"RI$P,R'vgrQCQGPHq@#"H$$?8j:ԪEAzE  dIDTq ʥS 0,K.Q'IbJ^ UV]X?l2)lFZzPn Wg=`5`;jev{FjyYidf=pghu IXC¥r]EB!-YA5:(qJ'}VgE)EDJĉƚ#JiPAMj/B *BC*b++"lKjaT8a(.QIPk*`qM`+JE-XX ^E&"@>ð^14HC2)Ǽ0bFXT'dPmC@8ZĢʴX9-Aى)$h!<~64) ZS,dgWW1@U? T^+Tȱ!.6I8B)SJ8(DŽH(c\o6F?G$8V`4={H1c';=I[wr 4JuٻB oxG)ORQ:%LM>+;`)/+A9 P}a!B UӚ!Xy%@hqX ԛ[B, RPDBO\1f.jˎ}b $5q5 C3yĈȰͼ4N9մ0{ Gu)˂E/NAtZ M;OxBxhW0ʮ.Wc@ d])(@韰)vk "&݃b4,7'SmR+_ q.Kģ7MeXR٦*,ݣtL5=v7+u1W^s6cSM:^)=M:{y4wf\ZL S,@v*~J}S_NE`p#` 2@Z®(4I]&@ HgXT8QޔaA*d+[R27>6` k%f3GL0L*P09j5ąv"$ʛD0woz25ʵYVOJT'Њ! =py${?AVXȖ6beX^'8 JaK VPГsSeB_M#W7Uڰ1QL0 ڃ8ȟ!AZƂXIr\pJ ^]݅KQ&Z"ebmԆZ/R(xLϘQ.܀=[uMx=|Iu <59mC0`CvY|y|vpGtGL۝Pt~!D ϫ (\Ԋ(9_H͟mMhJ$ R@EQ˶VA&b.TʹM!թd `cS >Oi@_ @ "ә ` VFcXeLIL UYkX}Eds?R!9neH|}\ MFvH|`qCxM ]ARfDKL|P#MF_. eaf"_r"_G_~lenrT|A/}Yڥ_ubi‚K5HǛ65A2W[7i_ wLl0,t}L DM#cH cd)\e geMd_G">ĈQ=!$MlhhLW'}dH \ ``@@dlUCH(1MU%hRP B^8LmVAk$á2[$N$RGy?\K#X !_QHPykGb)gyFV!ZՔuJ<RRF--͙a)_ ^)aV'iEi9MXLcL Tt@[Q&ETxE\Qmn]}$hmAM99J{ |*[Y# Mӄ[_` qDe-wBZ_$cdd:S%>1XbIhK[ DINH`j kkQج^_&]Пzb)QЄ5MeƚS(GInD-B-˲pXfGRVu1I&?C7?TA _܀;,#tz whB4٤96ia'v0*#_e+F+JȮ.kM)iRA MLDf8GʠPrg !(t~J(eLlct@`ſ*K^!he!R FrVƾ j$}L M\<N0ˉlVN #Z:Dv~U! =++F~GOQnPm̰})%}~ݚdv 躎pWX-pDX QԄt&zlUfJ=[)0ybid #-v)@mЇ]^lC ED0V? QsDFK'1t>]Fp`̨f[|C?(C/p4'(7$WW(78B!;$C2 ("›=ħƦw".*V42` 9!O"hTBp7zC];gVSōTREEP_r(aiaalDkGi QͯObU6"Y /$M8W]`QT ~%8݅ wfn RhAV`x"}K^)nTnP}W`~XVl ځSaPr^ר+<hD͍MoPʴ\Ud 4*hCu PR*<;|@t$C8 H (#&2O>9`6U\6*;%0gS!c,ai7`{ʊ2}H7E4 ȍ_a ly 6PuފkiveoCD_ FT ӕQhhUFlqh1 C6CEF.plI*@FE Z劃m2)HAw%i` "  X^bl` ZN:aKDZYKrQHvY깴*HȅP\ LxsC+AK@8C⺃9=Dx l66(cL6hcC0SCl$.eĥ`y7'CDׯ+uc0EQ@J(牀fad<)fp$iJjԭ|G`G\DB٢sfվ4 Q6LRP}eE4hVg# '卻&K.Xj7;.Oh.BGVOƃҜ{̹iIʵ^VBXD.E:? FU$;F]oHYRlUYmE"p\#(C'7C$@8CD: sUw* Dw[ UqǑ$pQLIy34'`ğd)pbҿI 4՞= LPੀ485˔O?1`ʞ=jcݖunW=k@a#.oE{6ܠkR-kr+Ff mXsvaċm{+H=nY۞}Łi#jЫ5P :2ګ>R @Oi֩_PϮ4i~'Zt- |J;9~Z˫)@O~z<0B@ 1(Q*]|Ahb%yˀx4@=G$|~`#H  QFS$QI$ 8FL2%03Ϳ 84!v:ڪ Y` o8F)UH`JUVÝ܉cJP,I'2jA*3 \,hȠO dEZKUÑgVH4X]ln͝l6ì3Ѥi]oG1kMt#ʶMؖCJ6j;0\صX5u/^d[,K[Hhze b ),XYϬv OC2pƟիJ?bQO,πB2%qH'< UWMK̘Ȏ>:¤#D$m Ao w٦HD TopCL?0 ,(8q&VkJ'h0C uUj*{ШWnŏ`gSA=$n_tA:?2k+`Ԁ&0JLjc)gaFF 3Lo/bcs:ɶ\e;Y1Mw<<'<YOb&3e,NYdÔmgC ~RZ,iJUXBbZ7*(ODij?胑VGA@x ?6<;r$<)/3 g3oa2"pD 8!&@! $>$$ e$bRS] ' BO3c,MDFN$x/_ ( Ger$zd3QC`[1Whtͫ[he] 4U sMc  8lH*R}<6BK<6 s!8f10"dE;4R&3)J 3,1X)[ Po&eE3*ĺ1&'*05"ezDmXCG:͎yU{( H 2=jۃUQn"T&8Qt`ݛ8{?OD0;ŎoRO``'M3 t 9 &`5uT8UCK7} P:fL -AJʻ^2A)Hu2(f8p]N YK3#!ir?ik.XǴpcR u {e`i"ݬeZgdǧ: `֔h)A@ҒJ)CqӇ.n-@jP9kPc%Ww-^|%Uoi`kG.n3$* @ '#7I-t*`dO"t"xd|Phr?}r+I\FxHoq8"=&BLS%1z3VH=v\]wUê5Z,R߅zl:)A]`vs;FtN[zG@vD6a?"7h o&gv99r@@ ym!'OQmX2s"FqŧqkJ۔'~]M6+"Ļ*.Գ,>F QSfuסI*lLqӘt s9xD*u"` :nnOUd7S:]O)jӓU aԪ@P`ObtkkL@vYH˄f@>.~f)#gǜE8,c\FLG0alL`"o(ǖ< N@M8 D&Ǔ$ P .rDuJILФ <M`&~Pվ0 TZxbZ)Cr/" b3 ٔb>\ϻiEgjh:$H2/= :ân\@JFFF`ZQZ0@L5"2:bn 0"L{G*Ʃl*§ʉJNh(x*@@jxl@ăV.ɔ*@PUģ4FGPߐL Df—$MqhI0&bn>rA.BබMH$Q'B"lԐ a."'{"sN0g"Jubk"`"`R[/O2t !!ON ;S4w AƈC,Eb1,in%bO,ةe,`q@ @$^T](#щl,`DWiDaz#P}e`8a"8!|r{8 NFwψpt$$5u?u]w^!'b^Mu]Px`аy/t>n/(4 D^:`q`^$!NV_Wze-)Pl3pz{E*6>skjq&0 e (eX"JhF|֛c7J-`E /×wC 1 *xN .Ui'2ӄ j2Ӝ4G41yjXXR- ȰHb7ȼk@ L$FdfmJ(nm' p6ȼj`XK8`& SbU+ :pYiLXS?M$ Vsz"y^!A\ ! PY =rxas._'&I 'SG&MX{ʫw{\OeWH ךπ'Q*v3DU# c 8P8CN}ږϺ'pu%-#q|̀odqPǪ $nQ&RvSvjl+n)eO/f~i5{UfCIF)l{KzBM{μوh#2۴-2#|Of*-9xIg]VO;S zGx[M8O} Pϩr5 {bf,\uY5lWhE@X8` p(fsY:B$*`ʴ|=DR|1#_Ax"KȎo:#͝qu8ȋ$O[UYU?W7ܭ--'|Q\Z5'r" xȃ~|k&Rd)/ČBd6{eЗj٢sgLe|bбCҬ*{ /G$AE`רnh|)؀BVԋ2K5\(q5Ic:ce=ٍ*i%3 3GX+~Ż׍68սkO}J5bR7p?S"*:-P"\@@Knr K:Xu'bS!pu@&N@Xc1R")Ɏr pFmr0#uZc $yp$0#Bă"D% AA 8"BvpG'K IHbC$I#3JL="Uq8RD?WZj  쿱eV(¶;g"``aU juK8^ D0HI H2@E e5A X5 J.gXS B[_BÊ۸6A޾x(СsoyIGDo"7|ȧGdB῏O_=ܷI( [+eyi z%W\d0 da0c%vB `?0`xa EX+cƊ?(b2fH2EBvEKPBt%x1f%s"B-ƔD>uK;gDI<5B?ˀA@*RIХ )S \ n1 SQ!бCD -<dUYX` k#ib Pq%[z]uqyfEڹc{HjPdfeU}EW h]¸i_#_ EssQ\pM]tYGa#]w}|G3߬3w2){OPl iW]z.eq1xXJc3ŔVH&CnRB`| \&mU`K%X{٥_5Z[lc5C$9L#tURD Q)A!*T 4C~RH ߻SD$<Ԡ+ÞtpA"T cY;U8X9Τk,,e)-i\YrxB[QѿR,U.:p& B.j_E5J K~yr `7cj 5 OL8D zBNIeGL3%61fp\(W0,Hx #`2-bbKX0"[TRWTC"!0K!uP(Dn&AImrPBǐR-JSIRа64 R֔TIvI,/x|®x\0w ?Cw )vJv֌Q뾗L*q@ީ\^^A>W.l9ڒ,-:d?2Ƶ^8{4"\iH@PkD>qєoE,b1pg?{H܇1ʆd#1̘ D=yDŪbq>*IlsP۞ab6E=Q`י`($+Bt>$jyb ZGBA TCHYAsWW$qv|V0GtkzmrAlgD! t)bCMDExlO[̳FH/G{ `#$Q+&NLN(C^D䢧y?kvlπ)-~041(1xQ2ϱcc=C$VS  6fc,$cC5ٱ>e?&8CA@0@r TMUE,Sy3Ot8PtdC 0 *4#. g irDgd#p"gz"m#}Vq'(yqMRQ)≎blS(r(uk/G_=%[hlk#ñB=:av9<ಘ¦Q;0m{Y3|(ڵI`jrx'5xMh̢q9%tqvA,%R'tB1(t#5.Ly+'(dCfc2.3e22A|Dt3ŠsLcB73klL#CWhV^;u)IƤ6v['M0:1+issLvw3G+,;tPV [e q|Ws9#ݬ$͟k*}=:~-1Ȗڅ6á!"F'wy[>]Ȓ˒G= 8ՖDwP:7"N%5b9'bH֫Nض\s(D.LJ=G۵XU^~AK֪'o~%K7J@65;Ynެ=tpg*&u! AQ1 AI;+OFbѤD?.EB C2d %樔0qB2?3r|x~!d CDBtpI,:D(#x8b'$4>YHqEJ1#hGZ!J!4H D%W\D rJ K$F%L,#h3 (NN2WHD$I4 Hh&hHP8*TBB*kBj6)rj)xUz*` Ch5B@*!:Y(k1IB8̰c/,p#LE*3B`!1̴⌱vl*:(b3ڂB`:‸ŜE::tE䶣;6ՁDK#P>S@$T&~$h~P&(xexi$A hF@|Ң&qRlφq üѣG,!FxCGHT't%RJ-Բ*Ĉq8nLrs@s>1 ]#BQ!f]PG-ȡP!bw3G;RJ #U%TC9R*V*Z% [ 61anc6&6j`֒K6 L2Y flAF2cG.ix-G P7tt.˗~3 Za]8dFW◐,;qR j1-@AOgQ x PG:7|eXCvC 4&XCh#a ]T.OLwAHtmP#H o48(ቐK:ܕ %MpU' "/qLP0sPJP(ݢl!^WэjgM?;1`GĈ68*ɉ^DQVV+h/WX T–+,̡jBPe \}/3KC. c 0\ ˬk|Ae@'; aX#Q H` ib51 ?ɐCF>_B*f . io3fjp!l( Q= M_"@Ơ̇̄rtnG:҉$%ͭod+yiJpDQ cjLZ7 .y,i2;vÓ0Kh~vLG2Urv9DńC[aҪՊUW1] F! cpS-b[r%:a [e,1 4uFQ03pOhܓ̋55Ri- _6OnDž L%qlCô"X'vp2 u5qD ̢:UU8Ѳ/k3Qi`zxGġqPԠ @%ˆǃ)#`Q$Ql8$K h$of48BI$ƽC&LIR:oseG28 2~"c.0F݈wCRAj"$WKPSi_3|'cq^E.jQha!qKBçaSdĻdd 5iPH>g+-m~` p2_;pIS!eQb3? 9rf4*b Bd|?Y}Y+;!qpv1C ,bb+zRN\/Rf9^)sg-]Z9L*3V+8"U.+;CШk1zZ߷Q1oڿ AȰ5aXl[ mďCIoqu}m]g/QK`04n4YH Up'j  ~ۘ0ȧ| 00nɯ x8 )_DHK!p Ө `Yvqʿ?)q@!s!ῲxF 8Dm:*" R*S3:A -qrv."$`Hw4:5+® @ALTbXl1E ` ä=cLH J `{(7[ c qm1 0M`"F觅 7(͠ot0q ?qt{yŁGB &!!7 d@zl QjD*Sg9H MP PIA+wALڢoH@b86!;@3a+;К;s+yHLPVjJ9́7l%A -KGɛ]@ RX@NǚCad cBiRɕ)aEH>3Xҋϸ PeX| Mɀb>GxkQ/pS}M5F 49!bZKSG: U<6ꗚ1c"" &X^=QH:'AH: 7{+˂,"`PP5{q%VBCcsA(B/B,CyecVj6i 7,R>a!=#D1%JL=DtKQ0B7ϝ([6[8R% 3)hb) Z YBQ0qS̠Ș 8 L|kBF}du+ ySmL/6G1 H*.l"UXj9$ j9d36a)|!v4|@ܟ>pȟ cȂ.2:Ȋ<]@kA+:43P A8{,iW]¼CN[͊-W AQј` eM[Q捜:<<܈uEifZ4R@2% M3YшY 8XR0)$UMhe)0 / yEQ3T>? ufK1=qxS 'GXNARU¿w73X1RdryN `0QMQϩ*`{R䙢c,0:U]2֝I, 0ɬהH5S3҈)G F1dE;CJ%Sœ(AQ5$ؗeA7Np$%s I(2CԩZ*2\cU=NK&D~Eىz(xPdGDeshF@qS@; B` )1}FМZy6Zps*HsϠ!l(?L P>  S]b#ib \e)J*^g@ 0 PٔcEㇴX8`ve+{"Y#IABvj Q91ÁdB^̤kIޞLC2!eʹ7QÆ9Ó(SBѝXv&J`RX( (j_@hqDQ:X_b(> N1!~Y62}B6{.  ~@h~r0( 3wk  3~˗z6yM(Ⱦ .!v, K%)~4P0)F\ݰq $"3"1`oci흚J=~3H:8@_pIHI, "JF6;,$ Ѱ7^%т@eLKOQuv0X(Xy#HhDU@,_ @Xf! LK[fRY]667SԆYH 6 L g`H[ih|G[G+{S sԠdtհWgU姰A␘"3h8-Z!o ,H^}te\3]mGr]fFI43OsGXrϺCC={KCNL؂%ށg5ѪweeA Uslg ^Dz#:"F)j_ ,'2*G)˧Ql*7`j:{fs.Mڌ( }m&/1/a)7B1fi&ڢ-f,򷞂EM7mUSWTJ[ bۄxa28t9ۥe!]jG[sC8o@i&a, i]Cp]qrƫn_p2+8 Pw'¼b&VW(j&Cр}91mC7$Xx4YkU!suZYވGiJx(w+l \R|˕lҪ:f(DR %! ! 00?: -*80;A($;Lbgs@t`C rɁH\6PвHXZ5D:;8sB +qB5jm{mɐ%疌*eN!%eP$G_?wɫw轂( I*no7 3( @9H< !=0' !'31`L8 ND04M$+@#h00?9"?0pd6>r}2QJ FUY% YD"]z%}He}X&ŔAt6F uLa4Zdi4VIMUFCL M9N/%@?qEG[HqpRK?SăN1UD;|XtՑEbZj%kC]\IW%$]JS\5MdZ@6Gp6DZ*??[BM>mmmjc0 Q2cvAQuvdptM7Sx9@w?m,{('}<L( ,Ⅳtx?("ڬI_H4+~_cP0h࣎;dL2̓0grMVʀ?g}߉&x*2!@UdPA9Di6F})+U*ULyh04l]Fi TDG}L3j@T@]mEaъY[r=IPA5Paz 2}ād\X/єcg/߮L nC޷.q5Bi0 =I!y@ :gbv7s1Lb݉$=jL>6acq(#;>HbF3A2j"(iG+چ&EyhiZ""$&\$ "ɨFAĄV#mlG2R8bׁnҜ5EIo}W䷙$BQE< ggqǫUt (S:)EŨ+4 'TZu)Im+H v]R@@+] cG+[, ( h{M`udӓR8|R <B԰&~bT0R92i O dC 6W4>Pt7q2ZT9LXtc0:tsz`8g+Y|؁e.!Ӵ1PTT2UA Du?L|"h0$LB^أ7 G9O8o|:O4*MJ}P ,y)K<?{~N0HBW#3p6h:CYC3 YpTD1h%F]'4a$58 󂧕q2?gʝ"-ql=r:utśV˸GT L2*4D}TvF&zK@N" ꮙ3iHU/٤6 ͖сi2 mb NڝЅ/oxԐ)7(f"#وR (fCHHҪZ>5?) kqF2*P$1$ 6%Nj&5љY tqB{r66oԤ0aQĖ>''S@ Xc-LeZCt) ՈE=QKRqAIo"TUBsU@]03fmڗi ffA?$ ݠAe9JXDL_!М֡/Ny^$#dhrv!Ik70Ը O0dyl]+/yY(ZLp sEs:t`S[K5-w)+{)R. 7#KK=1~*.ݱn]&-ڠRWm$-F_҅p: $0W\/|!yR\SgH<|0QQȇ(HY0QD@Q4̜a`ՈMLQH!1r IM M [*HF"ɴqL pD D[WOyF{y' `( ^V@WN"T=EG!(^l˶}][MD}"!t/DqIEY :1"c͙È Ɉ{U#g_G Ǎ؈>9 !LOM?*AUF+ YN"s}K\K^3JXP޺k,)D f::D`%DFƦ))(=SfGvޭ-ˬB9klm/ɶlGl:GrTq ZiX2˘|L 722[rB5S`5&M(Ke,>0*M茡̖\F$Aيm / p?m@0} 0?mbd꺉tpi$B $~+!ا>LIHB.bAPLdSVWUR2ׁm!titmhW )"R$gzM&%7VZc@Pa}EkpMFT q/ Dw1[(b M4Gim20.0M P˼;S GYv=߳- 6=,mY`?۰ .?s tYߖAboe]ݏ-Aqoc)R )w6bvVAi<.O4IPENδ綫hQKS%  845.*T W ;&"v2&\ruś-t,j%XM l;8'n 6qp\HWofJ :cN:cH=ܛDQ6KyxFp8BvI-kXmvl r^j9p o@vEƐb'&7ta䳟H2.R=-B[GGw@t@6 gIMtT7 lJԧN}{7Zj!RWXdD]`(VO$1=m[^ms@}͋VޛM\20mcpp_pT/E}јp̈́ - r)P#m&7G;YGy@@Ar|@V=hDxd B|όr<[?])'@Cg >:yst {jFڗ~(f+籞*4%=Mw{+L+kzwG+4Vg}ɝD9Uh:mcR`ާkƭ[0v~ `xqCyg.0 , xnnQ4 y8O==x 48LdxrY:wK!f!!apA;@Sh*P )̨(1Ë (*):-KƂ\̈Fˠȡ"YJȣ$N J2CH %E*)% K nr%vJȦʪ& *+$r,6"p*+j* s- T-;:x(@4-$l0I)Z/ c)CQZtL4,ME+JKYi( `6Npkl{z@08 䰛.岓9鮓QZ3s+W NܻU!W!BO Aqhi2 "UP(` & qBS p JL_$Ezldžr"π"& !SJ`'$RԢ𩧤f󧪲b:+Gw(r@fS'-עN*O8zjgΚJ_3࠴SF/$%aT OEP]@UV4 f-4vmWaUȚj3Yb}cٍhN[n;y\"\!C ˠh†8!. %9+ȹƬFG{Ww_/ C-7cWT$\}83k7N[fˤq $>L33h/ILc Ud٬`hBCPk,P6%!eP4ĂHR J'-(@27)nCNk4UKeaq d03g ``` |Ȭ@'6psj6Bn fY°$!<`k)Pl;ui8JJ$F+ (i}Pb=YzҠG *HFgA{ A,~kAŤdv)0r F"+ $)ie2$jaL洑$LvVb&@Y & !pONSqDMmLkѐ3.f±\`zŒ4SSHJk .29c{)> ^p5a',b , $7QpI;n;ٲ*MdvpD'x%]3dD}Vg۞di+"@T0AzF鱑mB%Bc8/s 1(r*Y$y{ZѨD1=yO)iN'r$ S\ѨBC(r0*( GĪ7_\e_%7%/'mZә jEjU*FcYE3b0@KiN.X yjn,a=6\%"պc冫`V>;R[)@) IS}:ZZo-l 2~Dr6AƠfD!&iH ?}0+dc}ϔ "o!rH\( (JMtLe^4fD͕HhIG%nBՌdKz/"+tjQKfMpa@(M 0T8N3(RQn"2gҚW-5z*8<bM7J:e)kNvR!v9r~<^XrzHfC0 uPF4.ZgjцHZUCGl7`Q7oJ$E Lrh0jsw&JPSC$[I R]-9c!wQ}K:K1FRA;[Zq*yK`xb"-cs+ꨩ\S9캰KYnŬ NY%P NfKl6 8q}a#,1{޾4!{ S~ˀ|O]/9n9;dSV.*s[.!z'GIďْN6&th)X󨀬HY3$nH(&*%֋&WgkKR".p0ftJ{$rt !B؆-2\!6"nyv5-5N]l~W6"iĪMB,8fŰm8vdDG>jI{iaDKz | ^D chODr/ n>A,#oLCg^z+ƴDD` o(G("IP ""b@DOc8JkxN dI$z(کAΈ.n鶋Fk&*`.>.r8Ƌ؋oJ ` r(/SQ2T}l*>Gp"!@٠ jg6v472oƍܒ^L g I" ćːlzLv~l ^$.o>jBbQF/%5 oFʦ"I$'>"`Ib/Q^m"(lɇhq+˝ #FP", &M4mH)Nլ-L%Vo./1"/"GF$rn2,gjG^v4ʐqW|| XPc Gux*: |do-?2"M4$ G/jPjA'H/Pb N&f\ej %U3H;1e>x+)EћN6ѢreR*䞔+N&KIEP$z(%"$RBQB}(-8br*N(EE4QJCF%E`bE.ſp/ 3MB2(UT>H\ oUy|4yh5QϩW$unX2 O z}J%79;}0"Fz: З._>,QdC&=,D?$&SEivC^DdO^^Ũ]t )= KRۖ%Z |sv' E"Ӱ ;Mܴ^o'1 SMϯ0K,N|^An0—L$(Ww+& nB%h*&|bVֶJd~BU~d6Uo2qV˜}WQ#r4@ VAIl;B3tJ"4*#XO-(N@K 4dъHZupeTo0 FI#0}k?ήQ !@!hrWp5DC^U463tJ46=`"%ZvqvPLr۾79d߆cLt J2V/"Pc3zT蔗#%D22; mR"Ḭh "|qvj(=fV˙pJ<?ց:nHԛ7apWOFmL}kU|MbV.TcKC`d_00]wqo5Y4pRN.dTo5Uh.>j]5oXUmB2ᑏ\_),WTcy5Y=luGLeBaYu0 MMo 8~J+J8b#;m #h—B"f@RSb>Dc>|)9T$&'=ȳPCu~eD+1zH{FI逫LBenx&DV%;igBn+jQr[ڢ-r_OCkdx\s8K vr}AyG/Y%U:j5 o”-6 5a#/YvK87va*b W q?te,oT ;Dp03T:O%v aL@yʊ 擔'xJBd/q>? .ke#rق.$D|զ_,YYRCp10D/Y 5^tWJY8!z耋@(ryؔH5XtZy 5u5=jtt7wɸv8a*N߶(88y hc4~ySi~-AƗ0vCг^Qf D6dO/A!P֜x֜^ddTwE6j8~ҖU킂Ch`6+5] &-˽IQcC@WW%w gx6ļ'u:tK#snqT%4F$V%1—)xf0bqAײӜD@|b.кŹ뮵 :o)5HY3<9AIB~+4I]OFۙYfSaa[s ð|笤1Iw'd%5&d0Bg^[=%qyi= >Db2dDQS %ջ.L9:~[${B{uV?:{"@fCam'm*E',R4Y['RpZپQՋx]/W1مXyGK|M|AxX'7؅~71t8O'ȇK)kǡO浣w -.VtH;,bW7F <r%jC_U;0eG'̙1}hE{9e%Yqx^{8䰣`tPAWEu{%| A0Ha\ ~"]H"h1)@GA96:D] #qDII'"Q$L4#SJnQ%99Ą6tNZfT]"ȅ"YUp^Cm[a+E@P ME6)(m_.:eA*Peh)^{@9ӕArlsk\ WZ߼t@q'c8uhx5k^f,n u7{ -ㆫWUnHb!!R/ˀaj<ŠLhnA:Fp< Q1GF"ԑ,4eMMV9RMfMQNNaes`N& E*2 ҋTT/T8nUԆ45)!gf)2lrx(N ps[N((rD$ فo(Ĝi.N CkiK[*OR? qbd`]%y`#$C#FDL0Q `F?&ƣ'myH@R#$H}hGФ̓*NV\(6{ӗ#Q7  3ʪ.+\ʠ"H l‹ }ʰ1xia39TOW+)XpS aFäH w8+VDnĥ8KUPQ+1\?(Ot $`z:wiހTr$ PD! 6Z#'eb=*G, U"QIJRrⱏJSEt$W~ITq8*I'u\%1f*Q*FCš͂$KoLcNE2 6n>^UCz8L"d-ruhDDE . ?̀来ygEC.a!;r(~LeԼcL!%C;m z9u9*~+ zE_c[$Ȩjz$&_Ū"e^isd%uZ_5jF1S@K~4~ P37D@STK` B~n)~BvV'xԓnJnR(4@m')BNx6_qjƂZB,ag[5P4H[Q[aEՃb-'zɥgquℑR|S#gS^xTh^Wq^rs4G}!#5=B0H >>T>G1i1Kj7 n2?tDqfuuD4C\ #+wffP CYs'!@U@ʶ5!:)YKTzH8Bmmn7D%D*@ĨPŊpBszSE9eW b-s"PU-5V>!&OpQ&'.E7V1AaE`)A: 5 Kf0@F Q'A~1eWs4.bԓG#G&:d77OO77lg99s[[9yeY #k pb"{1^G-Ersr(hxG{yHg8{\}d#:pH<#_cI#:j@I{X 陫sAt"LttBKdSE4=nB'Bֹ03(@efm9nqȩ&ۉPK+1c.^Jl*r`]꣱!n߹OxI4le8.-9cU9D8.-롃G*-\J3oe #/6]FG|Ga;ʇSq('h r;crJ,e\#ƆaidT߃#(ߗ=(j$F`+ F+= 9I3g`ٞSwg9wѦϑhY$IZQVSt4Y2٭l.$3 f?#;# rJz< OʧnDuyt:q9$Ro#uzgq_*{x{*%H|}r~/+!ؕ/S3H#=td#NU"T@s$$BSģV#{G8o9n@V᮹F -sHd4+u8<{mǷv*m3qV gKr 4Ɉ9[Sv:b\a)zZ+ȕ= /`F>;qSu!}` Td8SR煎ESP]l;]rVsdFe={T=9vH<ׇ"j+ŭ[QaF&DZEJ'tp[& 9 ^*"A')B'I$•ئNfP ؒ"ZK+~T9X:6x998F19/]d"ru{3/C/<;uFr#Wݵ稠.wGؕZ"S5TFX1;#9iG"!`FTYc+[4c&^l&YA@vjK'^RHp9ZZƁ۸*V$c:WY!.S@q.ڪEƱD8~+ۣ QL'7|K:1Qa]-fZ!g0?eH8b(R$_+{@Hug?eHEBI0šviĚ#ِsSssJZVZauC1xzȮ)QDփz+ȹwQA=>'w4Y!A|/oj-tPx7+g<TE]r&1ׄlTuڗHÚjTI~H}?ע?l kBx em'MRaL+Q4;"VdK٦sdE濬8 "L&a]mC#@ZpY4fuKHzK<fVEҟg)-.؊4nH;M"#F #W9eH M!f\F(2{T =Ѓ_T1TiއIۦܤKjlkڱ(A!3ZYd]B4l'@ʒ+E=E?iQK ."6isj+*9eE~+7̸oS[fl53oiyCb)a9J!"0"0λp;4V =AVƃ%_fo/B:!ȳogr mRN⩺g#)1F (%eѡt_;2}I$)M㼧}"FWРA.d$ w obŃfi*_D0a;H 2(!@9ФF8 vLCT<0$'å&ذA  z+Wa bKVB%`ت5bvTWAw8KxGZ$@$kCV\܁qA:&v-='J$낀 k<۠l1a= ʔ^p@c,F#qE,po9mepPdIop4 e4HNR8VDž:qLOo <g0;8K754o.8.1wg> @S4=ۓ3ҹ@4嬳M9hOnEٮp kؠKu8M9:;!@8ݛ/C/A0\( Lvu]x'ރ}w_~_x` 6`Vxava#xb+b3xc;cCydK6dSVye[vecyfkfsyg{gzh6hVzivizjjzkkuWxl<'6<jLl j]Ri଻>wQw黡>/!s {5j|!<FW[p{wgxEGAA+mx')$ ^yC,HzxvGx_!zWpK?z/>DxMo Q bC!ҫA?~bL>9x1y)s 79`l0kbi>y!hW=jȐ q9$=aMD%уQ4hB40^/g@D0 odc.(Rx a9Bg6!==BA!-vB*9zeX!@ɴ;ŵ.,T`V/&VU n)ED:0X#K7mu^ÜO1 8&3T.[mA PŒġ UЊŢ )<{Zr;AMpxAPiI[mAz̳VGmK@uKga+B̅!f㮀K!68A8Lp5+_ S`J :IÀ.(Pjswg 8nVn$><)7tp l`!7Wm ed{a>;7{x@fA7Nhu=m3i;8SJ|;X:9jAjd dA28tVXtZp嗑H![t-ۖvcO~t5Vvdc,Uq=u eX#vCLpE|AQ4q?Fuܳ[DW>TΘ^\ K^Vטpvq;1c5Kq(gy"ri!,gIRT9DfEHG5B3 (&XAK4V@IxRUG!' $/ଗWVB hYwa7 Q=JE07Ɇf=K:IU*5~g;0;魁yVèk_M6@ŭ̏gD͵}N]A^<@Ta,guu?.?%%uˉoswTZَa~Eb@I ɊρeΤSW\]T6۳j߈]{|fOcەlO7˱cn;஌ڟxrњxJ7ruq߄MvXH~[aOyaژD0[쳈빘QQQɪtD;̛___Ȳ6Bsssjjj/XXzzzޯG?ATSwI آ*\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8!ɳϟ@ J̔H*]ʴӧPJJիXjʵׯ`ÊKٳ;۷pʝKݻxߏ: Lx0a%U,ǐ#KL˘3k<={*L,P47Hbן 4} N$]μ)ιsWZ ? wn^|)9b?U@˟O`z3MZMYJ!5; 94;̓SM Feրl$':'~ɭ8 cLh8<@)H"sbl,N&q8tu;NvuC<,^w(PwMQ?9Oh=eux6;J裐F*餔VjHݣ_J6Bu騤j*t@*Ȫ4='^I)x\ >WNĆ+dVIlB^gŖ}kV %U稐1{{ }qy}?t>G۔m](J1x{K;y{3J觟(WuW/Sx='9Py\7{gKҮc7~yē-D'q ~ IHA6,"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,5Z̥.w^ 0IbL2f:Ќ4IjZ̦6n2)@)rÜ:Ϲb4Uzړ)XXF>Oг@JЂAp CQeQfaDSВ&]JU~ӡ'@B b8ͩNwӚӦS ?JT+HRԦ:NJթZU SJVիzUJUúT&)\g9*wu @\mӷek^W敟]89XuGbeA GiV@:&,S2ё:t ?@ Zp-ijW "e@d$k]ۚT qnEYKUc E*]l_eYrc=ksSrݤ+si0;{}J +_,M,bG@eAjIZǣF/ ﲪ-(@Z{Xm; XpT܉W .vqMcSޔqsa ';^"uoJ1]0}?6lV@JgWds)cVW{c@WpN{Acz ޫ?_Z4^ د#xla%hB3:Hk6E)Yî(iL`ϦHqkb71Om7ke')\>i֪bAF6[Rc;V=,7`DnE^RV"O]wS,Ta_ַuJ{T/SX擱/_k`Uc3-B*T)- :ҝըQͪء}GSEq:8ߚ~3<ߚkVWlt3)U8)?{Of;[=*^ϲc5J/rüvr3]NXίyVZoχw~M| |CZ'O\|f'Y sxlһ\_0l c|.cլ~{㝻tz:E:yˌseҝ6Mf6yI:Tmi?wxM'yr9}sO.ﺽ9|yxfXW wU`hF`M!yz{qhhhP'P)8fZb%s&s}ZS@Pg5c:t:{{cE~$G]AtvdOWunYUS'}uu7mV^baege{}t]wdnP8dgwfˆvܕtjNi5NnpUWg8c[GOx-X'xy6XXY`uiy'ip)rLQR#$-_)6h`bEX3cSc@Ng96E?xTG(fff\ lEl_U]SU]'eRf}`HuU6u0aeݗeWvńȦN]Ttv~$\{NpC5T1N26[uvszeZO `WՈshzXŀX7(fXiiJQs`jUO=wHS Hs.ǃAf1SP锸FTJs(NUSuTM||H!Ϸ|KGmguXemmmZuN֏ٕlsxH^ph|oLJ备vVD(C5khg`AgWR8Wg_hx%Ȁ$q'ؒXh&y8b`FZ&yeؓ%E]aB%o)9֕pF+ɕ)Ј~UFhSG]y\Sfeaem۶JmjtY|bdgV?|>礡D +p{ t5zXD_}VO_ x%[)AWC*iy,VL! 3T!fZ# c&5XH#:ƔC ʦ9vGוW^LRv\]TEԥUmiuo)ШvHS `U|dM7L(^lX~IUʡ N¸" dJT#jWSHk0hK/ǂ}I_遅ẀWţI1OqaD֊JڒܺHqyCNځ/9r/7Z朣rԓH)aaF3Ȕ Hs$=(T^ybɞV~ٰgŞO}ڱw8^+Յq9]j})HS_GbeQنvڸNV9^i+pG'FtdL8LQ)8WXPo74g`֬JJ9ʒEjjK0ywX!YSPZ=)٥3ůSKGU?W;cۃ])Tr: EGGLXlv}Z^ڗߨ*KJu)mQdQPqkwT=[nΖNKlBHBۼ7Ŵj 8$ 1HT@5Y17ge)5# @`<)qu:Kڭ鶖WOYw[#ʜlFA5HScXYIٝ'*M{Dg˰i湞RI~U@U5SY:)q٨q|9qa|OeQuvKaUjC&[y1xY^eJHyXʂg]gHgXxdK'X򋉙HP)nKg),̛^1QYɠ[:2zԛcs>8PYLky;. <-LUXܠ8lWuu]yeTqͻɬ\Wv:*[oGcJ@ml7 g X 4DzeOh v+`h{(ʛoCɓLyq;һmCIJLʃ˯a:<˘YKQtc:Y^Yܰ:vl1,ĬX|ڈ~k ԕ]VALeZŎegeMuL KͿYȧ;̩;kޥdwΛt!ˀmG˴Gz$JL<̫ َ--o=fȋ BjwҔѭ i)X*:=H+T|IHżsŽgfQfĜTWMn߼|IĎ*蝎gεu}mVƻVHf'ǷlV\΋t{#Z {k5 9˹Ɣ N u<ݾªX! NSє׶.9PQ)$,(] <8ҥ\dM`\@,F}MJAlV YTvX(̈́z.{.[nٜoޟU6v\mIQߥՋ9NG, dɭI;M)=͔ S!(i[ڮ./0~]  Ӻl>̙j:#@^MKIKMc,F]ˢX>ۍvJ^ uUѨ8uxtuN  }f|G)a |]~nz~ ]>=<г%#,,#|\ɫ)9eQ!9208GƓM]kDͰ.}H>ޞ^TM8ORmnqerXfmcpmm\lU>n}~})!ꪐ_஌~$F_~WڀWO?  >DQ"+ᠸF7~C$FmM^$Li2"LF9LXv< 3f4JTiQA jAS^XT/Tv F,'0)jŚv"HO}{uς#z1 Һ{|f8 |8C_ō!=N.HYs+ZWg }-Ai -lj& 6o#`r̕; ݪBX`J*nеC!\9cGK~td™ӄY&X' +ozhZ(!p+ N*D 9‚L|*4 Bi/p&KR& .jlhϖϔd2J)MRK4VrB\[H426p$v ߈DNN F3B(6{Q&H؛$4i$FP2iT`,ȿGմ@r!ƩVŇ2dt18IĭvJ/n+/{U *0Nۻ\O%)4Zk Rh5%V#fwBU6s3M7-8P:X| <3tb2ͻxrt)T`<٤!ST>Iv iT[2]UY6)hhv®.0j0n,/R0 נjAiQ>p"nD*HNk%127(9ԤxQR{5 P\Na$h`z+X΄s;Óa">I%PNPER<ш$ʏ2JO7!sȥ1||lV ƞaX=lvD/*Zo1q_ǽ0$:I4Dyƀj|^aR5&_ 96r\|Ӱ:pst@YkF=D7",34𤹿fFKAIP !ʎXU8q k{M;'U:҇>jVܗ? RmxAK2"qE')3xhij/Q@T6Mx>/Tl2N cOCZf:fQ Iƴ`pvIjpg O341D<(B3pB%g4 VtKÞDƨ+j!kXF4ƏVcN)LD"gI$46%iIBk2Q%JޘT&UJ0Z|aTpkg3RZP Gr1dP`[SSdӞs'*/&lSԅ4E-O2 1%DB V(P66-yyV3ð7TǣVvϱaBLIWz e+:4 0v:m W jDI<1'B՚}SJv\> (6 D'UA 6WDEOcx-pmw6I%w綳dMYLp#2a20iS)y:`WWY)Ă&4w@1b+NήG=VY=9Mn+Iz30*൮u5:4 i֩ SkI.lZ-U PrXWāQ͌F^h3y+K$`HHfl(;ֱ&3 9#1h,i@lҢb?zu_%}s˯<,qIҴ9g~rsio!DQI0u(9ۯvan2nݜ ]JTh ׇ1ʿV_ ꢣµo z+:ͩsuŌl-HϷ~hYj"5~}ORX`PK*R9ؐ-Nγd%-FhM}C[lxc ̎35hͶtP%j`gʍY lsž'Nx)vCTG*R7NqO;~6ob얔J*n-%ґʅNõI:Wu~i$$sS)kQuz`?F'5CL,dZˢ6.6hk;۬WP2۪6+=}.vl7;0qhx H\0L?D>^e;>ES4܋;k$(\6{=l3T: @(_xK=7=t2mϳB78QKƇГŠ*)ʓ An yP ԬxZ@Ͳ¢l-L,Ek,5[+ͼ"*|C𞛻9͂sLADt+LV|W2IF#th΂ 0HL/\xe+HZst;^3'|EЗ J$TpKT7J|}УI )c7a=w8M( 3,<̵)D6H[C_5tIY͇0\1Jc:,IݔS+#`U8ZU@6P=}YmVECEXXXodCCbIF8 g7LuKOj̼D5U|Yٽ YX]OLA WDڤU}GZYũ_\N,4d 8|GgQPW 1Z͒W nV?#U'5A:R<[LM`pİ4M>LS… X5\d؃G%:SŢ|>}FX\OXG]X٫ƵٵзT uԼG%)K\U|= NvVeǤU;AS݂̝<: SHs\U\g5D,U[`uے빉ֺ=`PR$tN:1kW=\ƥ|RR/|IkчpQ_s}SNU[ ]=]aWk݌S?]}C}]eb:Bϒ] EL5^F8j\!bD :F1cKcƻ BO%^+Z |}=~Y؃?şL_ ȇRXG-eeׂ0sJf`DM}+m:QJ`մD=p 98@S8UIorxŽ .aFvFvHza|za҉d]ڃDXх6"S}q~^o"XBeYXݜK^/Vgh4fY>pDhF %X|vEs;q;Ѓf]1UMQĪd g[dG~rJKdv]Mkk5P9aj .X =/U+a?I8x>W6*e[F)v_eMē0扈a#i㥕afػ;YD׍$Xv⭼+.^}YmTvbIE%-TצO]t6v]t&Wl~=\k#5@aٷ~}ƅ\`d5^dX.ImumVt NMC40҃qeZXeG[/(]qn>曔kRk=ka g]XgFqsgfbx{~OuVU6l̮hTقm#`OnT X+g&f#^(mS%^fA.ߗnH_sQvJtu kjv.P^o oMl}oSV<W/peKFάiװN7( NcfdsMQf =a =Xelwq^n&"uq͎r06rFrr26Nh6-Wvkgh3h4;vv`cpinnwIыniiJ6QEG+v`t۴H L>t%#A|[մeFin/󖖐oup] Asosv`_qe_qpFgfo]?z%՞qq \n'qƶ_{r_ٹ^x'/x6mg%H|ym݋@nNqu|pqcfaw:;oxxC7Woa!IvtmEꇨ A` F jsnp\gs5dw~z/zul5^ NrQEdC"I)t,x[1#LJ`cA6O!#G5e`ThT!dFVEZTyeL^w^`&_IVfae蘳?u&h&k$(m6ln\oϦ)Aduz\p]2wGtץp%=0V^&{E^þ'Ѱ e%.UeYfE-SZAԵI2mQ $T6tnOTDFaI"."!X +Q8SRBF2蠒&TQ'eXuVlEY2|l5 &{yЙ4p^v4ЖqYe}zV~:Hi#&ڡfA\ij^^-i)ЪRǪrtw̫zrL-K%~D~V~j>Vm+2g-1P-(!L]B~OFomE0H"ۢJēk[L҇A=I߰BՀUe;QGjqx-YkmekW4K&]bv=3`9&2) &S'mK[LNu~RiMұtLjrc ۊ3*gUU@%C_⒫,N"Cm Lb(1sb8򑮌Eh=.^?oqAύ;F ~wQ׽G R%,)R"1{Y(H@uAyPCԱ`P!YFL(a,eȰ>P syKiIUtcMiJL^?TYЈv==3if utpjV5D*Q_ÍmF6*8M %2zʆafQ z@,b?+8XŢK[2c|~gKSKTe.-jIC_4c[iL(F*Rsi\ݹ9br,g5oUP[v]'r%uF0lYC4Ljas;OvT ̭eAV4 :!Mn*J 69-OmQ EknõpI`;ͥfh5mngUJp0ńF䡬A/v7庎^KX e)W*FyIGRzTu0iґfo[ŤCtcQGґ5J.زdTaQ[mݨ)EM_4.mVv) `dni f0(DB[ !m{'RkA]C:l5 i#Zxofo:ӳF֛cs{)t x^ \1T. uH[]+2_ַkyQLsS7o+Rw[g/yQ-sum<{f$5Br"  Eb=%%ɥ!9宎#S i]7gݸ)RGTaByAZy91LD[HMI'8'葭Z%"I-D]i}ޫVK!TTZ!>J%`Xـ aCXZ!?~4Z@3?[̭AN%g$H%CD\51CUYŅP4ol͡ɵYbDbJȃ! Z@\uݕ]& ) ݖJWb/I10D 02D٭2DC5Rc 27^ n#H$UYD! WaDlK9HiU12ĪţzQGjQ:~[|BϖX-2 [,N^⽱ŝ\%Yi 9dAML5!bL4Á6i FׄSc垧Cި%_ib5p a"+n!\B-Н޲p2@vOn@BAcG>]\֥!A#5# &^ \#;aN *U ]i@ ` Ce$}C$~qGHZJD_QХy]mT\bAFAJBzmaD]A][\$bMq"SDP MV)„ R\e\kiЙk =$Fbt&NG~"VCU]1Woo炶~ۃ[~c1|(]bIɁ`&}[Ld]Ҡ٨8ZCDe`fZ $&z(~#l2>#]r]d0@:WVD)G+kڦk\~(2J[JW-BJĮB,oD+~rC1橝 qjQ`gvMƈ :MVšjjAжvȞю$GF-~)g^-"+rNnNa: R^2+N4(>+g^Jõb#bi~ķh7eG@G@cAQ&຅2~Ɂ`DH!+"ң2,$RhNʈ1Tf%i~'2'i9Mna$fj}6GA\PmAljn'l /^¨כ2/T*ԒB2^B xmV&A:1ڪڶ-4mvڭݲ0R+~rh8DNdZfCX.Lh.><1 >'P1g bn~(ή.׮~(cD1/J?@Fa1pl=oZavPV"vo~FNSA̢Dlެl`"lj/^Ѷ͞]r0r^ B!p/Hxdo0 C:3@bC*)6 ˚Ұƚ5jk[[P3D51h?c 523a~뉢.3D-k7۪6q55@2c1^d1b1L2N+Ro,,coR%_&GvDEP٥֦^/&No! !_MC7\$0KBQ /63Kgp33?8]9I66n3m4ƚA2Hkd/&jcϗn1 f>0#]( s:.0ff۶ 5n9Ats;Fg-Fn1#~hdmE 0 HhvC683s7I{76t6D]KyGHvC[7plMXAM55zuO-pk \D0S7uxvTԌiJ>27Xl~ߴZ_{x[ӵ5Kp x Kt0;?818w4+w1d6[?0E3AdS;!$9dc#f?9񉦮~?*on A5#*!X.dZiöD0|MOynG1h_q 073r.D0FyEW7Gw2mGfv04z5:K:z :%{zwC1z7wMz1w0~3|^/z7QS5)''wl!VФkO 5+?hW~-*A z15{ 3:* ]z08K;5Ht2@Cvsz/KD2[DSt6b6VG9Bnn) ]ʋ9b;7OCDNDGǼ#!7?@8п4Wb Khh!E1bcG "S7=iXK%Y<ْc, ON˝< 3΢%4g2FE5N L0&.b36Ac _^cbWl%>qpg"[z g򷌡.ќߺt0zQtg]>l0T\BLrm=rlGa;,X3xU .9Ur/: -ouvaqV &EJhrPXf2 .] #,餘 zÙfR71NzDBTRȠhP(G^C >ҿ!Q(G4h( 3Z&pɗ @ Гl*(z#K$j ʂ8=f;hꆮ.bnEla&ՃK\KóOK ͠B utDM 5`g2 C88]]TjAKe @02<=c[kJܱ+$Rs͎AzdJO Cd+>$LrD 1'H8R 9bAfw40("OI|'H_jK~4(ptx3s7FKla;k9ϋZDEaQ0Lj2Y5HQ[L%Uu<۵L_.hHm5^UKY:ser.;:i,Њ8Z]+rZiݽd?j_AAIBdCV$cw cfYe4W(M%)/#&?Gn)g8k Uj[0rق(}!YZQq@rm#^{*u4fܢc C0pIq/2ٓF*%#i G\I<R(JimL#w/7c18HwY "SG.oXGiA*_y+ ##bmc,`uGp$d`tbI؆),t74VN3͈Dun U@)ȸVt'p|8GLiQ;#Na# fb\o8f00`[N)IfY֗W٘@r((h"e'HLo6UdNwɌLIy/I$W2)FD) s?"Ivъkqd?nm[ckW2@bd4!՚% z%΢ga=UBt#=5ljX Tn2Ҹ`+LIDyGaoW7m/r[oƆ!2weIW(J^J۝g:ۗ{1h@c4A?c2Bhe+$^7DT+ #ǡG0:Qͪr z]퟉z5]F8/a!FĎ SM2-2ܔ:|9 o i fdFK0H u S#V:h&L/Bt.3ێ#>L@,D# x)ƆݘLԩ2B8o 4P0oZ#nf#6).BeR.omr 8BROR֤A Jf fM.! {O,l'# s0oH-D "-B#R&d0B沯#k(B-({nHzB\JI/Pn~8;pw0p/\͆$ 3" ; 0׊6L/ "2ž|ݲ<"XLhE;BVo2E5IVdelC௄W+O. |I&O  7L p UO eO0@ Ox^ڐ`QS LJ$#h$ ϢoGLGND b:#tR$Jz D+Жd6(]P*?T1#RQ ,+52!߂k"p1 NNؤR :j?їtP?؆4Ű HH$k5 2e2bml"7qGQD,{S>i jBq;3@3% 9p#;r+3 m uM-6َ #P!DE4#N0ki \ofokTx ~ B6*::WRDC1Y5#.5.O!.9R A p s0!7wo"s9הX99t##s$$*SRIJ.=; 5; d@NQsi >9']>3 R=b=D>bQYd'A oD?A2?O1@g##TNt$#p(4T1\ 6SO/.9"kRZMZ`3mZt +#qSnh45o"oV81ҍ3*U4Z.I!0.".J"JA J a }"0 + #^Mb!f-tM{kW`DA4FOOeA%iDN%sR&0&O&PC.;_n4DR;YNSQ>2>ERՓ= )R>YV~8bU 8*G{ds$kO$?A%O"dftWݐN?"ci6ibW9RubXN.Y.C4 9B5rUt sST>CFutGg̚|E/l{ HD [1XsfJ "p6q6vXgL{n#ry"Ŋ!dO90$S972J$$eiVdfP0;i6=Ea~YTirh/SEQ#x>q9O~E`k(Skgky}SUfd9OV| BSA9 P%3A!ٞ9vq#YlDxqU_1T4#[M2Vc@7/t[h8Ƒ6+R)E{eF3BvDߒXU/6P9c99929zNi63`%-م1O%ŗUrMfH9~[3UY~KXfY)Par 㻧ySϟ5<C8#|/R|?2UTUti7 #u=H\5٤`4xJ/PtJ3Ÿa!y-ݽ <yIrA\Uec7W%+|efW6<~T~Y]سęY>#{ۀOE@z9"=ba n#n|"=] R/1]9 ~$ß<#ל< ܦ ?F%zG#O{2#2r6s`6Wcn5 ިiF=׶>?[W!G9}?9fs}@W~׉\"Tx۞vXœ\}߷[~ŭ}Ž=I~~ _!.G7n}w?~zQeCiA9z{^h` VYwH 702477ZV~tyZfk!J]#$i6_{X;˯\+R˳Ֆ~}O蝾GY@ӷ#B5Qs+XA SPD&>qgzرF[0|_-%S#ʕ+=dJ5u4СDzlL)_ԨR>l 4*Sz8YVjK=Pf#jeKϿo| PiHKԩWFz(gzjَ 98?2?)=J)D-ʚWfǙ{U*!'r(iG ]?bsiilU 6#{ab)/w U !] Wc+󗴑-Mmzu1fint۱C7jGZ:Ș$ikBj!sEQZtYZ%+?$WRҨF'!$Bn[ր@h71kXK#6SNc<;e2Wtf3anfG;~| x@oMCsXd8~QҼ:1o9)GvWag9i5mx>mlk+}ŸW\bw8-H# wyC!GՒE"5ݕ"eZ7pHjďs;gBÌ-s8SpC^ $3aL1+%<ʜ"8rzG$)D#mѨFٌb>!%ФQQ#}5ª茌APɬyd\Uټv6&u=r#[ (hKoA$3B K8Lq3ǹ9RpPsc ]ut YN,H&'iDt8\(KP/,fԲϘ,ve( ey5cd);L-̣ѳJaO^r[pUyC!YII1 g|¢eP`A \ZJA9_hkwJ ҪP>kLK/W(J,BJW\JS6ʽ)I#U'ji KuP7ՠ&sAJWPx56Nm"葢[(S~f[,cz  eUeT7UUA<\d K ȅLXtQB>uSǷ'/vʺ:\"ã${'6j'@a?XM:B4qc1P/?(4OcX;(W ICy:ۧ!#zբХŇL+PVk!{Pȑ I?2D |"ϔ" 1kի(gx$Zś(2Ur"*fύ^I2͘(IQ ~X[Z?^oC CF>s։xAB?ħ, =deJ?ȓBziz۰ wXa .ja@aD I9udSv @ +.xumvQvW#Guuwgw?vpv2(ljT @Jz*(R8 W*xx9gq$"jM>a+VO4bWC1M0b%.rSzNu6x [HVE0 vjvU祥)6v)؏ۈg7NqYJ:$IVQJRyGr PbMǠe1R:'Fy@,VX:s9yuU9*q 5Vq ` &Y]b1F65IE?o[m\Q2O)=F2TH_sdyh Wxq"."p%xb(9ȏrgWI@wkv: fvIwn9 t0 1ӗcyl X/u@Ab6RQ/MЦGwxuoJ#pNjpzj [l"D1;02z! "Щb"W"wMb!s/zv uu vJ?2Z =%[%4|xA|MIZœ^+C\6LH-.vCNMcQNJvYvO88v9Eh v)7Aj7 TX 0 ,Ȃ{ ;Fu9$E  A1^Qg$CppֲJkZǗAJ:^7 eZ"` `mͦ= yiY8 (%3y?QD o.Ba .$k1 jJ -P ހ D@ԑZ5SC{r'NIq&c2V*CoB!@6+G#OB8 Iq:.I{ |/j/;w:hqP&hhk'H,ˎ؎hfh R˱ۂ{'$E%Cp NPuYNawV1x\C a1$DAM]<{oXZ[/j+#jk" /ѨnD4yHw,Iy6q.X͆EMT0i!"s"in,ya `[TEH 5Ar PͣoZZFqPA54E1&\aV %jZ0aAkd1z9:vpǙT'8W+ %;9~о2` 2 aرfʨɎ S<{u}MH@] l$<mǂVf[k .Do/U @F\ބ0M 21d;(d;xp 8L&z#Q+h[*@jҫ!21. 5cl%){r2kLIdct?u,CA$,;YE-'Dq]0|9Lv}Yv}I `ʥ 郦wDTǽ-؎L|  뾠iM˓@!:0  ݎ\ ٗݾ!{> p)=| LxYJכ} 5z^ 0[! X3K&q5؋h Ӎf`a@nXls1 @1>u@S߂WlAaV|@;t -=/-2S~ *|U{F5Q&"N5+(Fc i/lX %c!y+\ɓ<)q̨x=׬|l˻[_n 0m˶:ٕ Y*= ̜D }W}vI1ʴ2>P!L Hն]Hj0ު0h݊ @q<75PŁ&h hpMhay5 ^ (j T ]q .+c/F'gpNӚƛ;Fm4(^`?ɓ@E R rc" !6")_z)w jKU WM%+ˍ庼[F؎n%8%8wPP \] @A A|AA z4`˜ m4Ð f0괾q< &:%sנ& ^>fpߎ^W ~(ݸ$}+! H ?`{_rҸOpGI g@}q QcQE}k~Q *^h U>)',̑81Μ%̘p3[D:O Ԣʕ ge֬_6]&Ξ>ʑ#QBRlPJ6-ܿpW:_K%6ٲhզkڳ&m+WuʰTBS}eQQ I8I_?樣-$̗3cQ]Q<'3?IHb ql XU:(V O8xA/<)!Jmhl!ƵÆ_>yF>װ\x_/ؿcyVz5PQOLHA3G<$, D A3ACoD SLDF(&dN BKY1LHwBnaaZ1g@~ 3*F/A1#B%d i'ԚAqD)>{DYǛ CRES6*l2!QaG@ҕ,D7jג+d3sN:tSoocC tM=B16"kH)dw'#LMh `R PL%BIX'Y)jt娫jkZZMK~z]lEx{-r-@2| ʬ+!A|Y1: $,\Æ$bKs\(0F93LrV,!H&äd2ɒ6DQgIքЀcl !Mf/C#WkZF4FhAl76l2ٮQ  Hzk`rđD{*٤Gr$J+bxA+!J,A.OR&0K<ҹ(7L|]-&=kƏY!^JgT4"M&JUt*X%1SH% :_$ 1W)V=Ǯ%KHYC/D@X+\(5K2 3F0(9. A&G11_p58!%@Gj(EKU2 6?;!&ƳYH M)G(D=yXO.r!^HCG፷A J! ztG\ :8v#FmPf"G"*8qOGB`?Ը'9r]ҒTJ,m]Qit/IKue[Xֲtڴ&`&qM)( wh{,&HH$dU&Z"C+<"38y2q++KHׄXli I]c!e*-!Y ӫUgZ8I|97qIj<Ѕ"uS徴ZbE]("lǢ务 !6XIhM7jVUGɅʋzbe΀♓9" L\x ~(|M A;ŹM go¦OOgQę 9y`g"x"siT # 3ldcj߷3~ L/t[n! k 6 $x?J&D]8? ъ%MB־va\ۛe{V>&C ɵ %1 C 9<<@CxYxn^׆g:ud#?DCQ""o,_tӆ54VRVv!7p5u5\*F1 G&8IM,__ ,YDp[F7D3Kn @ġ GB@@GpECP @H 4 E#T 4Za30hbA^h aX+ahA^ȅtK"Lq$i4HE@:74 tCˎQ(dBLx0h*BH%<9E%0ĨCЀVhxi9+ ch (hilHH4 eDH C[8[H[ S 8RL.2;İ;1" ۆ[xBPbƄ@}#4xK8\xK#Ϋ+4o3)ѳJ34zCd++ao0, ^`AA*?b`$G8>?룒K*n(\?0?59CbhȆ,KH) ,%2 ,Kbb0=8(S-;?, n膅44,!AG`G 6 JFr bXP\@ê@3#"9E 3llA#dx)TBB@C20;C0Ex2@x (8LQDQCLCLr(-ӲJ؁%%ڬnЏ-3 0( 3|[+Gx4Q|-\²k9DI!OdE[s;1:]t3ϯ{τX31@A9Et\Lǣ<|>j*ѭ4ɧ-뾄>Tp$VK$d0t3W ?9ɵR3<ʡ,;;]Ғn ۑ-GF:KDJVx={HdO=`3̲; !X"ӻя!WYU\; h;۰((D Hb&!(h0̈́[-N:2)Q0mp73u7cB6dWEG@E!M +{݆l(T`Dl]O)2* @F,FeB@dȆ\I6̓^0V++4u<5?SH??W;5ύ!2 439l\:> nȭ<%"Z%tЙmDKۧ@0JWvhX\<+FTGRS\[]\DF4; (Ƴ G}c$Me1>83K0t;gՄv^_u^gE snIH^%ψ35 Ӧ& 3+#*3CsCYq 0#$6 2(̼VRݼJ`eڵ]A3(9Qa`3u@'H+5b@%ի˶rņے4%Q ĆHGZ4t;00C3d]@MUQuD3҆r@-Qx$;kA…[W URneTG%?;]Tz-H*+ _VdmE Wh[(׈ n(^6߄ Џm_o WVc=*ϝ" !g\<20H7&L%Ch<5<[ if2>%{ք{(%7$IrѤ؆CxӀat̜aj i4<{,jdB3zFvCdٴIPE3sG0#sX^N&C1tT;elW=6'e,l5G^XSJȸlKh8S>=u;SSS;H5!bdϰRd*%tL.N2<92NB!*0_7ONsr]%{ 9|ܫmAc0@;:k3 ggأ Lž26XATB'3ȴҒm^;30j^N-EDS.l.^O2a>:Qv`c#P~=`[ȵ,C>d'5USm>] R@]n \QjA8| $mpԭX18AbA*PcXq#ŋus䊕#jJX1/̿hXs#Z [ʄAfi0h2kVZ&drС7ZeRT r#{(?4o+#6! b۪׭Y٢IFmݺ=da H`>D". ɖ'lH?Iߝ|?DG &L\%BH0D^wXohÄ" 4)Bư̄hCTDɋyJ S /È|1E?$HStЙ7#S ?z8S=I&fYPB P @Y q)ceXUDCGTRLQBL,V QR4KQ$sJ#=5!^J--GJP9pSNv;pJD\|;(~O))a;z򹧦vdǞQjH"b)Jed jBGCBdT/H,5l MEݨJOAd5LCREdDP+> D溄 +( D !1;A?LRĺQabqfFic7bq"9|\ًQAwKt]&*Pkn X>X W4 (@4 4RKuEċyՁ~l߀aĢ{J8jӴ!z_sG͔a RRnj0.#&`DaY1fZ]dʎ;Bt R'6u|$LM5 {gvs(ũ{2" 6 ϚyڒjzF7S% a˚+ ->?(Ɏa>GzA&***IEP ž +#!)Y[׼^2/V!7I0 ւ7h 24RUD'#:c1% zJ@&\^xnm)YQ4C,,/"%KSat^7%%Mb%4:s Z2M,gY=E)DB^tqZ9KNw`Z`mFhLbTC ZEhŅSu?p;n$ΈH|NL @AǁɆl2e[+ VV![ TRXR  `D\ r$ ,tYWzjDT:y tQR"[zG~wL66M|M\0 ev|A{W@GbR|Ǐ^`zX\X$B$Z(-`,bDpPaIUjM2l3Bau\y]Ԛ5 EaöpUBE6pv I 68CDtOz}a,NzM0ĵd0+}DE35f9bW܄)`1%Y9JУA#ɸ (N8BP#( Y_EtFghj AC܈@GKOxЕ,~.DL?RAG!h̎4&lC.Y57}"4-D`2{훻咓~@TAZ@_ZX#EU+ qZ1 X 5xVđ"UXV(dYt֏aTei%.Yp}rnA :ɭ ` fx%.:I"SZn!&mvXo#DrqAo <-rvvlhjW7d499t9A35NNfEHD@c (EDzDED}DL LKMg;NX3FS4,Hᗖ4`v,GLjD8f>c4 ʼnˊ >+|b ^N4OmzЁ_ٮZLf|R+h Ae:gȟVHJV@ooA4kNhe-xWZ^q4pD,1'Q}^ М Ĝ7AhĬJˀŚ?gvb¾YlVyf|ƚW(XnS }LB!ߌ@ysLաSp`x`꾟!72ppwAM ,GF~s,3s GXo4W$tDsQO~O߅Xell"lz2̎ J#4NĄ [ƪ D3!cՅr.]*)|dypXoAxd߰焃TԬU^! ~dOX/FDc%7[! k"'7հ%6_2ۺ2S9Ō:LLh##>"̐Ɵg,vlWo<7nno rX;) D(m:estOcB%jƀLh˱RdFR̓'Mfߘ{7 EƠAE'+t"[M!G',ȡ&z@$L<[aNkm9e< Ú0Ѫ ECM3}EhaReG7r40JmPB\Go- (d͈/E"裎td:d`I&NɹbEG~")B Q}7 5Oްʪ7}cjӂ6t7-4#/ʰc;c$~ľ $. q XbB MVZrMbpfb 5ē[" #h4zOũ z6Chsi{M @7QʚsϻNA6>1] Z.l2ެ[[>CƵ7 E4ƌp 4!'5y*!k/(}]YXP8z>$PIdX-(Lu+4Q%drD߸ &.pNQ7u'Ud"+HAzJQNKH.!AN媌d#0#6,#1+pB崪U#!gy9EbhFE]!]͂үe` r/?F. M(VK+@EL ` B"!E9zS35Lx?`#,' r\7O~RDr?HpDh֤RI[XY1g:[lQZJ~_Ғ8`\$T!( @QYaRf:w>?vAOwV@! w 'aazsچ0 U6堶"rVxQFa<3Nb.]h'9* _Ab؀x5,"r.ABH#%#mĉlU2`M+ fܲ-ٔ {ӪEQR}Ԗrhf)$G:v7ϐ@'A +x)g@Ib/-{iтpBD%iL@dPɨ~D>$3u)VMdi,eCH553̜ج)?&z]U `Qe;^*NXp o=yLfSZb8,Jp-)B,\77&/ T&/z5!<^YiMk71FԭQO6f5mom&8e+1j&bGa2FڑU 9(MZkeIM4 vЌM;h|}*(+RyI eC 6iJsJTYn&/ )U'%kRdt#(HA*?Q x9yt<$`=b!OZqE 2:QNEO_ kh2P'ttca(cu'j %o$HŒeD,&U*k;Lf.UՠcT>"S׾zc%–P5H.Q/"ȹMFPzhTZɡ~bصeRΚa"Hlv.Hv@qF])c8tsd#7`sCFuv0wogSmE24P j ȼxM4jfEV7nkj DSTSBE"cҭ1lF2 &\&@A` P M&P@ NvALg pźPu X`9\ \h[`,zpQ $%7`CX F bA p P| a !Mآ,fpR-b/N@~n0#1)*a ,B_b/n10TPJAZ4J„D,``".,j# `()mDcs¥@KD"d/0f겖 0sJNNeh\kc"BʎdAh`geNp?> vJBN@6很d2pNNH+`G@dI4e$, &0orۮMklfk )ǧ7Z?.p u,F.uN kn'A:э9P.P R ţ8B(i#bA= !0.-R ,,2 @4N3 @4+1$δV d.3-ұҭd q, cfd2goNLyHUx!#9#@PebLL1C/0֘ !@jRe"4bnE.$R-/vNd>+AFQpB؏& *B}rN1ӱI4Ci+h@5-(Bo/D@DڮMn4pMF6&2c(c@33 GzGI'ۏF+-n4pAΫ 2) ")Q镂&gVI*mG]fDI ccRI;pJHpr ò },-w༪ZAAUQd$܈>FS5\l= bAPj0D,@SKp`*Id` ` b aAAĀ 5$5/aB!-*c22|ڍ 022Kb2C'P`@u^a]U@MYlf.T C3>c@VHa/\$~RJ~* qȳr-~*AeAѱ-%--:Do6#X ` `f"{VAB1f:#DRNF hH6E-2Q2,uOtjGIGfIPe9\$D@%pP *apAF&P(sg*D+mul&6ũIpOOK3ԍ*Pki6pgPDr 47gDHZ4gp$AD.D.rVseu @ 7-wd P U 5@X$5a{Au`p, ܈--}.HdGIݨHuk1j0JPhЀ k W&+^jղ") D GosʓX C5Fc7D: TBEPvBuP;dr#} AzmUfJ).8^fA-<3 @x $]F5+6hp]kEmp|M%RiGl]NE(̦n'~Rd(8,UoNp;B8q$uyX@44&KB4Qʠ8)t64t Af"mAnÔk+".0j_UaBq3RHM6II a 5bY b9{˙ X÷|2$8qpI31QџlqN@H/kᖦ]cH+!O?0LyarJb&dCb+g'I2a Hvj/L;ejm6ː=y~Z+\Φ明m1d25 P` ;H @  WX9 ! H} ٽཋ߯`|;I39u ~G4-L`tű3Kb bB+b" AWւU: e``VmG?q|av@*^3 Bf9ʩAˡکAs"!ax@b"%d! eyBǹ>~.bBOp~\]Cp*31}3\A+4SdTO2\qcĒYʧ+DY*D/o &gj"彂%GrrkZ4DDSDmCiJ)0AxcʍB "qƭxe]_ HWU`Y`{z`ޣ? H [ 7:u}\|Lx vMo¿O,~(QP͒]ta_M4ye 6q;0u&5[m*թb+]raaǒKvKMmBI8%Hg_\-L"?$08l +c]U[ЈFSPke`c:PnP]@]XolưAƄx2 ktTQD+첣w\?{?Kزi} ƃ+dy;s|ӵTb;āwhO<fA|P w@P@?@q?|@qIOhE%5*cT OI`$aʒd!I*fH9`]YȤu5olLCdhYzÊ !">uœ! #X !d|_?&0@Q.C?)Q"+)$A2 ?N"}@B QF DV|"d%+b$q KTp(BAUHMYRC5oT@qTMM)טVWZ-RO< uѥFq1{Wy W%2e׀%r_4[pHRsmְnrJwn֛1@?Dqš&z\Sk^uC!`Ys|8uփ]BLuU!Ƈ<8xn ^ ~yd+h9kwhJ4*~-It-J0<%cw-Kj@eTbĤez]9<ݛaT=ca@c}|iV؂(ecOzBB !>*RET@@HH <^[W$` XJdX?.${:_DC*JćyKE>A0!o$NOK⦢$_ㆻFE.֡pr\"X†a,x#rfLtLc` aS"M?_Pʄ/"&,Ɯ@+Єa a8hxl&uC7Q +rsKPL0?PXa5L@Qe49E(B98REfI"W Oh@XbUx3-Ǥ@y\jPSI9R|c, ѹDviH+EC! }H ē@$D6R\JN1UGac$ŧe9Ƀv1@ohE9T[BE "'vzɛ`Ŗ;IFG+ASz2A * ..D0 JU@B+\ #U"%>R:P#,|6%ɈF7D?I$"AV3SlR8BU"bP(eH ̭5hz/ &X2֕CaN VD㔎x?pQ27.+MN0%h`\%+ U2!_#!A9 4Kj%EH<[J(3=fiA&5:ngBA'NXw*p-@@CICShHnE$)I K!W"x9ŽB "t>z;YBI g+[J u3f"*KFDN`B@ @h tbEiRW@ R,#0X)խѲGv`!kl OOD$"q%,YF|X Z})̴u؋D!0q4X;kAG(ByC+xv\ɑ,?C~߅x#bQ.NM$]cܸhؤ0Ίd8oȃIQbLzYn&!~ъ ҐFt ^D mE; &D+MC\g;s!*\_IeE܁Cٓd3H bIw OAb&`:8kZk^ytJ QdN5Mj4-:[ @Ġ TMʭnNZEU7["WLV a%2ɛNt%a=B%0zѠ UFu&B1 :$AP_!J sC@UɂE Qխwl}:yZ=!ߎ=Y>1q"^Rv %_Jd3/2m3,&0sFnQa Ð\p  h [ ۠p9cu QdcE\F n P p EPP4a4!rϕ fpA DXS^qdH^0sJtM"PRsV8Gd(p$SJtJ' LLKɁu|Xq\[7M!vb%cQwQ#5b;i!1"B-͢>kve12>5#:2>%usgVwA>ӂS=d"&x :ʈRBfw>t-B ~dpd~ӢR>'a{#;&S=6BQT *)3 140?* ~}gd x~dP~zSޢC ?XaNAEb=%1_u @xQAs3mtDC!0IAM0MP/ǀ1 ]a8o UYojt [L}6nup0 0gP g Qq  J/  \ hpK5RXRr 5kȇ&<$2p/9Js9' _uun膈e(!$FaLaKk3TNpQzN(aB*uzqwvRB"#"2R%2> 1 ,n~xD@vg({.2`)dn -Սw=f"?c.@h YS%t~1h)F zQ{"$C1( B,R*&@,|c)m"%(8"CX$'&N47 Zo`1\X*[C`\q$6n Fw5% <󂊀^Zmpq'edrxnaP ]KĔ1]E#.r``o牞ViT#đ2#ĸs5OQVxP&knЍ{zH"1"yF#R #Yp?_ %'PBRW&Pif?U>4T)B 5|@+} g}@D DtAc !` &xEn{!|ӥh9C2Y$kt[ 㤟auɀSE^t*JWS(ت{*oPEhtp8ɦUDQ3f P qM ꗏ +[ v!&v4x\^rq ~tj^ua`ºuK攇_|^9:7S__Q$M#M#f`ud|}Gx$e`)pf&MLKF6kOxF(CZSRl P">~gBp-,_0B&kXB~yc%RF* HՈHKDB~jfb|ECiq'P PŠ-Q-*ğDr(2 Q,<g+DC77T5qpZp3u%vZ𸜼JBH/A^ʿH<M)Mʧ]`uDE7 6Av6uIOqY! k_ĸc3ϊ)Jts5M[qX71$KraNE%ϗNEaSbegM`[y&v,u7:z1L e6(IGfWF;sf>\"> ! @W~Ð@ 7>B 0EVD]ԯdПx)Km|*&x%f3WMĊ!*@1)VR-[&0&eK#,!X,_In-VBէ?> @eDGxG=ljEr3uo@񬨍ځKP4)GQʟԘpha+1q@`, z3Z{H͕q!q[]J_ꥏdE9k6GcIQڻksJ"vueP paT"uTL[_&v1mGxzNCzؙ-):(*&]S9!E~u}ԇgkg{,}b{ aTD $jA9n )"1hfʡ*ˡTmC{jET[VV☌s(F7g׭Hi-rٌ֭B>#@NI:f+ H&67bKL*] Mګډ \h HlJ$is$/\*e`4R3~ zZ!@;oaٜd~x\t:\QysMbߎ35˽-uKBYuaa &bSguIbZ7 \h" L KWD8Aa N'rg{@f"5#'n;Bh&q.6kfwlwv.BB:vwвkhP~~AL)VĢT_] `h]&k%HjΟb`NgjM)x7g"2"9Xg.4}_jxgw hqN;m!dp֡7 6v<ӥ] کm^#Jj `ʽXӘuYHRs]pp HX0)H[%sN/ccM5A̼|$`˘K^m~LZs_aȓ! <̑Đ.]b,^?C4$xC6<*o9* aA& 2zT(L %gߐ&M( |<><7 >Ih2 wY<sdIM'5%DF{JB!I@gVYb‚1c!@| D&\sCy]Έ lc Ox# ,7yaq T;_q<ɌK]VvчS6}Ww3:^"D4ig4Y%2ꢉ* Z" 4c*0 6ȈB:C 1#4ND2  C^ BH&#&nƚu{l!@fHdIc1&Kl./'1K. 1Y12lK-sX9Eny8Jhv ,(FJݡ%r6a%.t%b Ǔ2V]QWle\UHt}cVH,CÏ*HhHuIŪ@,XRA6jCH(N {2a+!n2 Ă'rpbbhبc6 ' e(bc⋚G3b0-R>` d- t! `ιL9l|scCH2׻o茊 ֛O㯿7v+A Ya(B6r!16)k;ctI'օ&a}$u<kLe<1 &&KlK0L+糼:&=x)Ԃ2꧉%6X :(;! @oTIV(h!ZH 1X\@`f*W/zѬn  C"4qȲ h)^( "?d)&ĹbUtiZ/5 #~̉OU*rmA{n1d$ C" `[ުvpՋ)Ns-e e6# 9i6 6k89t~7<kH sV3GjsRm HP kf\j9+.-NVX/A5]1| v&i2cJ7j4;"ɮG:b?'MI(9ѐ %)K .}ӳ*5tI CB['G(p&(3yXLR&r  da3I]bR@h2!jE%Gx#yy+v#a ņ!P%D$I&B%bXЅDp+р++X k# $T _xS411J]a6t ʪPb> H;@IҾ^M$,m$TY/6_m`6G :p48m5^Ztf\ZÍRIUMjeS%̰kc-2B!8Orƛ(o0aD-^} Q;bp :(JZg#%FQ6z d&8CAi( \XQorڸu:t t*s'KsJ )a%44(9 \"!*3K!aV'd!~y)Q ?*c:cP"32P(K_þ>;@ zĸ2D./ٻ g*Κ&(2eBP) H,YŌ0M􏼫%` X3IcbL=dc`=3 p27 EFڋLړ+nį0Gi auHiGIKI"z)-P ,D4<"\Į`DC`?"P p U ЁM?PI8nk(.} !8؂/]j/xM>#L<9Q(AZ_Q+*<9Ѹ$mB \ tZ49֡4([:9%$''!*K&#aד~0 (&4'B"y&p:/lB + `Ƚ 'hҤԴE[\;E F4 hH*ͩ:R! Y؜MYZE*4l b438F00X=֣+,|= A1mܓ/ILC1ګ˘%2xε 8- G4 ^cDClHHjj{UȈ ȍm#I pQ1X KZҚJ/7]%9R_H1 `*kY| ih+Waar+ܦ1Ctb0s0 :Ɉ!B9!L9p² KX DM\FmT99 (w`!m xkE ]l؋N㋵;+0 Lj"0(8 (F .MJKȜ Xd `(zDj5IT=jit=|ёiʂXD -;)Yо̇L*#;ዌP ݊ > ,8HiȌx@QXX(QJ QQɂ, 5@Ɉh $ך( |*򼲭A&Ao ZLЙ̈̋t0-7uӺ小o't4F|7F S))\IEPY^Qɽ7;EۧY^IN7hʹQ8 >LֲŦp#^n͗ [V`];FU)pصX }Ж4ϓi"}YJ 3ritUNCM]WAʌW.i4W!NեXȄ ,[ؾN2^j)E Э@a`݋Ȉ]EL 5DEPH] 8їE"Ȁ"( ( M'ƀ %xQrI|,=% .bu25 J82]78pB[!$jHxjs]`Y!{J CQǵ ҕ:<%y#aAIO%7ԕmGdZ~@]AmbnNp0ތX΍-a^(wX0&#!B<_w`Ɗ:\Vx)C ,z ܁.PرsHQ n;(ЦxGg=fm猰Ux-֒>cza{5W{Js$8;s+ƀm@>כ/CFё !pHA1&z㿍W\Т^ HY$%*c/b۞M6P*E2!i:tf2bdAݻss_"}rE$@XMHgԀ?~9AE OY0D %3ăTb!QC1% Fxo!0艋.8#8b C4l4 qG6aKL2! :QDREM ]1gWdz?r*Gg$Bkb<jDvA̫Զ ؜oC %8߰m@wE1 LGe'5ݍGPHO$0;0A](R[UREhU@yhK&Z Yh܂m?" &Idǰ?^xTHZfϖ?&MaRfj)?lϾġU0*r'!vƢ!hh"-d MBn#Vr/NEp@DC(|88itׅ1Iy0ɒQ,) ߐ-w&=<^<#tE/zN9%$F C_6Fn4YU ycu@1qW#A aF|ZT 1$^0\{.0JIP$Aɸe-̥Vp- ^nJ$v5Vb B( ,f()Z z 7CRi jV۸SMS& _@kX25/cMmd?,"mHLeDpΆFM>0k(.@w;$"$|`K %nit`J%v+/F)QlQf[C8,p<х`k"bT/ƑLQ)GFZ ?nۺ-m'i3 :?έC݋ jT& hq?6Duyz@A F$M%?vM%l)W(EZ+Q򙧼^iQ䆔n9t<' G 8KE : uS2ʗI <1G<ɅB4^,;e@CNOV27c܅vi| Z]UfӺ_S،J<ϵnpi̗أɆ-$C!X8c{5,:Kx"pu%gQ{,i%kb}u`06Z’*r+kJIM0`ϕcƌQ`07q^kP]-'H[2)FkpQ$)qP, ԛ!&@)im S?EXSJ\i ̀=CB (B둍:%YS :-?M\aQ^CX=5M@|ILx֥14ICjLTĝb,]ݱ΢I݅&a4؅{^HDP)IL}|j  uU=Z- /KȕMXƬCEQS DBK[ ]EAA8D̮t?HDE8#]-AJTE[^caJMcDХH|̵V%$uE CN( ̌)@?td$WqF*W&Fn@siVБy%D`Sp|5NSCꑚP`Q`B8#B XYZEŋCU%,DEP<OZT\^  ɐ4 YE ɚX;%I%]Y!ȘNH E%%8VK,K]٤Ũ{,^)ݟ$ğ&OآSL@+4/cxa0٨b} I8S:A _JA(CEiA^ZX#MDЪ+ZhlDw c(i(,f9Ȓ(jRkPnFlCw%ݗ-qP߹\h6._!(7b8Y1vz:e,| S@v)Z\UaZMU)YNߪU2aC9ѪE񤉑I L`BS!^%^eLO%L F"AȃjQɈyaľR(0SW2[U؀!좊8R<\ D68Z aE6QBd'9 D]$ִRjSQH (箬QgdFȠy=Mƒ*ŀ Fr0PX$ ?VpLm,A&̴ot|(Cq64Nj*Ԣm^sKmPV:e0huD&GtuM2Q5a/&$axĵˆ52QW)$/AZz $r"W|1@`.P< 댲 j\ąijأZ^& &FV iOnx3d{GH(3g~Ht S;0IgoVJ9)L8̠ P7h0\ y#yc9_Ni@^tE6A"l#T35](mj,?x SAEʲEBʒlm,K!t0PTx-(1O%1ԗ@~þJx,dL၊DVuE |Q|L.{9c־-"n3!_:O-:\kiuh`3DhyYEb]]|4!!,T` SO; ,<6> i]P^L Ì̘[EStɪ¿0tAʒB@B;AA8@<1`AbdĐ(柘/qcG= dILrPǎ,YҊ VՔiɿ' GLOI߄MB%$Q}XGW=>m:서2A|[A RBJl? ƶ1d@35.̦˿& p5Cf'4"$@E;J&QFcD. 9aZ(| Ν ի#ѓ5fH%CXT‚!ȍ /YЛZt~<\`=8:pTB!]j xD8gx;NN:  9\v n„vJI%/ V tR-2 RH-G30HN "l+RjH1 c 2 G /& @&!E8#a%&X)9P )dڅrp +j-]gj a$Ϭ.է*Z+ȂR'`J 4(s0/FȲ W&llRbA]7&)ԓdP&N dըPcxn=Y4J/;K:7Ԥ ,h{݆ۂ!xdcIDYo ) ,`upq ! !M(嬃J`SiЃު'Ss4=@CA@5U L!C#Vm #iL܆Pti I `7X%V&*n_?DXn"Kj? \  SAPgv ∁qԣ,;٦xx*SB+ju+UѴ# %Th~{ݐ>0h g)9$>[L¾~=К'AwxCUn(?)'Biȶ@DK"0D$0990m%9G,JbGx[@0P ~"4n4+i&R|0})avQ;WSN1Ik53"P6y%M)FsQn8Xh=_qS J9KB*ƴt$a4'F(<`Ѕd(C]XM')bALhF32uq4 I*;!siO1"*DЛLsފ5AT刧BH)䟘9aX"ZE;#%evC"%)5ldb*i K6MDAb r@aVX5b֮ր4 -JַL(/-܄rtNh?d(#JVePyHz7nl/{;GC,)i7`hAF)#锝$<ZY CRl\(L`8āqH0[ fhNXbt?‚D#*6hJ )P#j NpVp6Vg$,"$E ܀)Ro(aO7b n۶+ō i #@iA &ϟ&!-|R(b _+"j,̨,фKn$Qj#C-,$snL$IlqV< AߠZOn/dsQnfm2D"L` q])67`MJ"//X4#  ̰ 8QQRbQmǯ~" RIk<#tg<+?3/ g%.u"RY/ CFHH#@&dbܔ憌Lȶk>+.6c *z *Ȧ)əhn ]HR`Umʰ".@t*  Ơ) -y$.$!ܨSԮsM@ Mӊir/l"y`&TBN&e;3C,k*a"5R#STn,2GdV\E5Ts4irHO6+PN)TI&tSf7eڢ ,f裠b#6H/[tU+R %?-KkTiHbRrgw83x~'կHuH3"#s#*ZZE'*j/CBAERA&$B!C f&SRV|JFea@`_|DRH%hSeTѪ=46 7V[t*w,B O k= "%qxLSflMMݖGƶ"p,Motgu BC;UC4IJ5"u"uDD@DDki4=ATk/N3LLN2$Cmmhpd)`q2 X7`f`8?vSI˶7v# Oo݀'xv|uI&E|~'|{G od>Qt@!#/"2a`@D&JCBdH.b=r$0!CA J$/ISr5&*n2>Dt YVec笲܂ r\h"B ؃QҗRص̾ VI/^! kp["_/ ΰ(/.ܔojVlOnQ?0Kn*-!1]< Ӷ#S>G1SIJOrIbSO9hѴU]USe\`L 'ي7w"؊ 5J4RImqz-]wr_E=HٗݔD{w6",."D^B/<@ D+IBIyK4H*PgHfgNG3X`]EOQ'#Nob؇Tg"{p $Rh]7$&~ k/s|vL=њ(D&^ZRslnOMW2M("~Ȋ#A e<@@;,qڏw3qVn*qa4S4_O+*Aqr1k6OpHɔpWgJvv7a [f`M" z#)Ƙ-+0? NC&BRD!/VB"2)]b3Eegاu&j1*`1Z N NŸmN!v*"# L+[i6DgIsIEڹ፤ٶ[:y9[w9ó[3\[ő#..Q'Tak :?5w/LiGo,)z-CC\D6+23O`TkqJqwB 膒WGNEVm3Qhw>7UX{OM ؏~eڝHU[I9=E?{;]UwWbKOu]Zeb-ԯ33z ̸a7j#BMd*XX2brO6Թ#|}&9naacK90z 9*X$LdPӅ,~x4r ""TBQ ޘ;|X&SᎦKXT gK36CvԽ˒%ˣYAyŌ3P B_dJPʐ T0!æ:(C}B¨+Xa  @ċ//Kr ` }ݐqcb7YDF!ƈ?K\ MҼ)t+_я?h?>@Ql4`%Hq l#x?< B` M 1@pÍP$B^GbH#BW1~WH"I61:TD6>L WqE"R? %fIB!cnId|gE1@[B"B)\{Ys9Gpvܠ)4iB!Pz 0| $zZH~-9PwFdIYSOAلS9 I5TTRAճ L O3~dUYgUCT;TrnYeյz-{o vP0#S5B QAdYfeqmo H?џB|'D| GQ~3YIJ(ҹq>h]1s|;4axh&_eClç!!NCP7[ABʋRi`+V**h>OQgCj~V?tk^; !"ǐ0,T"ҠL>[d˹肖.鷖¤j_Ó/U4=P$uua?45(>aV S"ja=xnQc3Y#D/#rTZ !!uZ֓FR$~bIc] MCA1ȒGp , 9CIBJܼU=TF<)hNORz*OqbJA yA@Є?hveLv@,XaQ Z8*V ` fJAiNu$1 @Dfj&"M+AaP 0:DlK7ؒ yr-Mp?)W[Lt'p(wCx)GYݴC(=nF $)XNCZo!dQ$l"K^>AolpLg&@ sxs$ #_BՇu5'>:_i}|$X#nQ,ZۂJ2 ,p@Cΰ_.uƂMQʀΌckDX"Hi0`!͈WP,{-so=lĭwO3Dt;iay3_hӜЄ%@2A Bf>z׽!xm][ .\ms|< k跻݌+1UbkjEkZwYj~b?Ai&+r2w)O`bqr!a`1U)*hrRa *"r<Fs3f V@vLy :@1`(wqVDQw 31!&$EHTYZ=Z$)7)À3gD=4]zyWzvy++F_B`G{]ZkF%k֊(!+bkl306D01}s*%An4I8\0nof$ Eo;2cp}Nh,NWꑀ6Cq1cWhoh>1цw1wF=E= `R=$O=V dtw2b<z}h~X() N&vihV@VOqsAS8X=q=[YWH;aI .itDe {AusaP.oqzgyv0V:Jw3pVAD'FX3$y(|'(u92q\:75|w2G{9aJ G4Xufyvb6;1Z2]e$kيJtc8H\BMWk#ZfOp :e^u !V$}1L DI99Vo^'F`#96 34:M@Reٗ끖pPP7#?<ˣ''P' wItgW`DI) ОwҞ>%C8̉iT-_KukwSwQBd{Q/ OXKnJ'SO0hW1Cw Az1y 'a_W7zmcbW(`=3 j(S#qXXGNSR1c:;2ARQ?'k/9 {8!V!pk!Q\ բAAIbZFb%wW9ba?ø#9f4%S1-nƹCJ9͉8tU6HyzG7*g Yb4;&3D ^8kH̻[aH q")fĬA>qU-N/LSB;0T~1/듏neF!˱P 65 fv̻(;3P.Pp5Ra`GXLirxHk)XELGQ;DvWk:OFz9A蕾 Bt`tFqk!||TyPp BQ9bƞA9u*K?:ӛcfC8uHBgI9Ga:e26ٴw:$kG35r4JGI#wUa#v,\-x)9lۼٻڛꊕg굏4{]0aQb /bTQfuHTijN er2aI\^D E៸ܼ-VY!'(1Y>uD́quIA<؄/Wv3bU ˹5J KQyM@JXa`X5&,y`O3:W! Ҟ,Y GQX'ʹAʠvÌEq26_S2Iy1-2!6PlY$dc:o3&a#*&ƜE0gDǫ)S" LN9:_9-lqw vw 9yڥ\ڧ@Jk~W*±(r 2:e=18Z/^eBhcA@'Sf' Ϝw2P&F8;S)}x9cO =:p qg GqDz]GLSc+%Apj2۵8;HK҈4MdsT/t䀫Qc&(&glIL<wKd.RͶƿPvdض  tiAυR[:ii'X(s`t`xEOQ3 ץ)q;ud[hF3\+-a %Ão.{w BcÕ'\W OeS5-w%c&&$Q??_Pm?X}@#…W,7?1 \@f࿂ s2d0b墘/nV/P?C ;P̒ (NC8P2p(H%\J2+PhN4z BH+.*P &b!Y& ݀|'qJ2'>4 `6d 3NHpRN>"1tAD :0:h!!jȥ2rC< (2pë,uEDH+B#@mBURyRUJW_j+B! !-),+/.OReϰ\k\k2+ݵzW872ƀEG~@,,,9˭w0.5İklQ利Nim1,0<8` XIrabS6 6xG8*<*/LH6N%1\wU NkIqZV>$(`}=?sY!0Hw:!27Ѳkn6/HcX w> VcڒEr˜u%^!8}QP22HA 5 (m4k$%L$4#Ƙ#qgj3\OΊ3%(h7Y Qj4Wp jҋ dApXs ][=!F SnQ(/r%=IG7H% 8H9|\D(LF T9`@%d(OqSZ:_hd vZ]LRA! 1y&KLuxN\VDa^OJb+$#CuH1)!)!"kQ<@t([ )uW f1\!ڟ] #Brf^˸3$sxĥ;͖ b.p +L`>\Q2% QcS*wHG:qpQ>y($.hh&(r QYF2΀Xnvb9vlN@B:*OEvEaXRx0%JE@L1QJ͉hHhIqMerA!PPNID*ex6qBN5{+:KHo%2Aw-`A'8:a!kf7tjjCZMp!B[\*F8k8fpR<}A] 3.~Xevzje9>Z!lDyԐq걜|;ʤv6ML@v.3 h@CΎvV1hpLsQ{^b~ьmG1(IJ0MZA$ 4es†H/@8͉頛B1H.9G]n) &O$6dB/4kH/BAG 2YAׄa]v)qL 5b񳘨Y(` Jp8*)K>н@Z+\2/f Ck1ɂ  R)O\J$ ǜ02jհvt7oQJTDgaڮŝehn!Utf׃YseʂV'DCC#>PQ߬Ak;IMd#aҩ?rT󀨴@6rL ?π2(VA:-kiYN~boWkA̺_v(f$W (b#X3S) k#@wXRYZO5k7H%D[38ʰJ(Q#A Є՘ 6؁ k((A 4&xAbb9M؄b  “[vQ lі  riC2.4*01o d";~&s33,4kB+3s8s zi+, #BS8SMy&ʋCҔQ QA(' ܀IVR2/䘼ؼ_0.YFA+?LDqDDl=eFLʐCI 07qĬ`LbL[ѴX 689&A*娭*|Bڌx?bY(dV=;1㙞+:,6?ڴP3\ϝ8<]8 @b-ld4)4[80SRȥƓK@DeM#. )i&ޝpZ$t}T@r.6DȪ;D/gK@|w&ې *94`-]mx}FChtn'y4htQbIuia.a+9Kfa@ a M#.llqE[8˚2%F5u"P yr*/Ct+#\7k@=]cC q< kR<=wdkLLu18cCa'ͭo/908)pmR%e"s:eH:7!i/"% 'te/IM`nqS{!nqFn߼(WR@0%E`]%.WH-`Q&ifeX^aQ$a9^av1ڤ R.4 fAgq}* oZʪe5MH,G/ j;׻SGL#Ż7rS4ˢf+4;4)EkckC>؉ *KL(QJ%8-ˤ|lV 1rJeVo!;d3,CZQQ㋓Vמ%v= Iq@_)~qB",= uHSVwu,9 Wk >}e ɸ(9L]UZG&M'3wb$*2"QJ)D%CC oFqx ܘۻx,3~J\KD8E+%{ê+& C pB>$apB>~ LĈ @oe̖5e2fLH$_K.: ?RuAE3] r_,`lDZB#DČ<uZ+,&|I3q6b2$VHiɒ;ZQa; wlY# /} Vg> =}H"!`jYV"lm,EQ7 'r d“,^Qn'Z&g:K:9;ntvR')sp-Q0yuRp`pN))pS0)c$J5A&+\mJ(@RslE O&6J|" z )) TѲҒ m/^|LAJC(+IIjR0}TdhZ@!I"c~$2nq6al&7SÆ '7{~C V*W0G5w`cNYac 78>RZȯ|)IYHCP|F"ïzE*u cb:)]JFeEZ ,d^ՍUY ۂUFn֞5fgIf2 S䌬3YgÊd#8B cMh*'R4>Ed%$!1Q(6_X:+BhS!EF, ܾ0h4͠K\ 2$`*HA8 .͠H:bgmڒ<)O\SsjNrR0i׽YBW#UmdzL=;_zZ!O;b#_L,QVS:7Š\Ǚ@%4 ghq g[:ӓ 4 h)\ۘμ\&h9"#VA6)9&#ȓ?tjn/F6 3O LlBr,"M19|XX\83Lz;h@dVA۞r ƴ5qD_Z֢zS}:)D) fǓoMn2Qw:a鮧n&dױNPF~ۧW5/&7[lwiTUt0H/pC4NmۏbT_Y%P!JC+w)EU8VhHEad|- VhO5`VȘI `J٘\!\KbŒi-zh.XtDW B(4LC*C8LA8ttp2v7dnE̛l䕠X?Ʉ`1%bޭф$R]ءUQD-EBTEڡ f1 )dS\E\HU\TWEO]@rB @niEEL|X|8EEv 8)$εO di% 4AX}; ;1BC0F*?$0afx@ZMB*rЌm9 TM0Nŝ@O ^ "=>섢P^P t''ѹ%p/n,)HR eb@1t!HgLIgN1.߷%0ښr }N25R#1A㝰dTErfgm= ܄ 0 A ߽L@(" DFEj8 A^EVOz"D(D"D\E~@\DX'A G\zAHk $pJU @0$@$D|2 (jL$L4p41pLęEdFMӡhy*ES4bTЏ̈́J1V [ 1b|_nKZZ0fe_.I]|g gҢfbq&Rd&u.^/ӚtWIxqWxmob3),Qi&.AdAEP9=EgtgyQ(%y AP_Cmi> EJ?V^!Mhړ9J>'N~>՟@K (D^{TMRKՇޖ@XDVv @$SH$:($eC@n@(6a/h72HY=S8Eܓ>ES4=+L5Y4 ^IY:Z}[Re6 ԖZ$~ZGXlHG1fgj.궵h*j*jmPf*\pfVYWL@c4 ~NzUw1o$eIeV*-,N@1=H}=OTbow \^؝`EqY+鞨(eI]@Qh#HV\V+]Nū)cHIaŠDQ9D )X<gHGL7H? 8?ɒl$@ب$X:%u2LAx:ܗ:\$]pHM)"^Hq [8R@&:]8Z[+z͋hK*`Ae ,Z߶f&qkop1&j .&gZלWob4*-ioF[ if, Yioa] >&!ԗ<ZF-ԴPioy1->yػХ^ԏk` >BNHc,(3132; n $gX?H CRɢ;??$@F?h07C6LH$P?̨L7C:ZؤLAj@T4^E1'IM|H^̀$^%يQ| PQHGTZ|4 cR/" )j @ti:'4M߲1!S*12E۠ppnjaОIj* !KPI=I9S0Ժțt粎g8YeRDԇD!/3K؄BbSDkq/v"eTEhOkf*]‚BRs|$9`3@BoDNPǢAw72$HB8ЁL^JB~?SLDT(-eYa-lI!b`-gH)Z"t$8ߡҵ,nIO195(~a!waɇn8*&x3סLθf3#5bRK)ߢ!o Q55vcHc)#0q8P8+agro`JlŠ#p퐗qUUD=%/E^؃)8^Q@BIH+8 ceë]s&~L8_\$3`ƏM$6>|`; 0zi*A^j %J/D` #4az5BJj(! I#LqF֘H oqlj6ʨʼnT!Tl!\R2c 2yE'D(7r"8dK\sm:& :pIpS&@'Ξ|t (\@.*BivBTB (MTBL"*Lʮ(Uډ(˯ES1bL,2,óD[@ h@ n xp&ynuR$(Xׁ dPG ++X>JD 2 @D"4(@@[Bp7IA(|*Q+*0 9/D6$6C"H9#kzeF9k4kM4/%L$|u0)տ=P^i#H:?>HL(#B#&!@a=phz jӘvH`AOR99ә>yIG='v ,QT,-XV&Wk['GTQ f5uֱIFp(#ɦ!Iݔ`Җ$!]2AXԢ0 "Hlr8FiMt+ִI^k5 cVĩ"Xg}f4!TpeORR«ĖD-R'*TmJIGX6$ĚKԮ&Z)PǿDY!w٬nU'A9 =voB'0 JHCb L&E*Xo/lbP(R@ hTB+ΒG}\`RԓUL4ʨ\pB$kS 8Lq2&y6mBF4iᔔM z]̠ja#r.ґGR7Y?WϚW5;0iN,ڈ&6kt:Ț; +Q^`H;گĽʃ ՁwJnU6퉚MՋt =!_sݔnkuN^9[m&Dֺ 08 0@>ss @C Kt(8++P8N8icЀ0 &0H"}!|HӎOh?^ rnm)*^ ѲL+Q̓I5EYz6Ȭ ,i*uzAMYֳ%Y$$x~4Ȇ9ܔ{Sxǻ1+;kQOs- 肓,řJ\)p)0_] %xXAӺ;q7Jq M?{ۉ6ʌ7 s+B M>wnXBE#|Q`eBX O@GD Z/ 09$(P dP`ا^LCHTZ& B()n.p lSA\ cCULoxFj46dr\GnMBgM (Ko.2 L$H.EBgGF MN 00fM F $v&T@/하JCu,P%zzBd•|&F0zfobo%E!KR"Q鏊ǛrnbQt@B bk H _ďa 9dBn*,]h_A:\jBH r&DlT>?% 񌩨Dz)|T,6SjԸҤ&~kBPR`r)[7T&֢ Q @+H0i'xmSZQOj (ASL_#T4i~ N㠼Q 6%9ps%HnSSm9 3lLA 5͍ZJ&0*de?Ia$=suz+ TjԞLGkr4Y%. (]),O;u^J]y%B"es@1g4 ¹>͛BcCעP6 [.@LUi c;Lx(r"/m UrO0t ͖xVG%ln@VHsNT e;[ (652UA9DTSA.95 c8!4+|s(K$ H6O2zî{oʼn&a_P|dO*S7Ua^ esoq77> %M NvۃSezgzS<yB-{͗B3a͟?18W2dϙO,$i:+F}XF_FFr rrTr - ۹(HoH_֥d %c]qD. c@2@4w+ۘ}(dEgpRBBPqDPlS(6YW6MuI'2@;6AYeb`{5.WzI%AbpoeFdڿHܸH8Z;[q 6ei L1B$PXG࿄ ,TbCD2Hʕ>} XQH@JA\)@A :DTӪIZejUÊBh+ _]+f& w&EQL %?B"5 R_}"3._ƌy͌5k^CG&@4k^vM5cŲoE ;x  O^$?)R9]ߎʓg3 P~lp"WQqʪFӰ BAT T E ` @E!EQ1)\@B hG0щAPRE+JQ@E╖aE*؞z @ `X !C&o'QhRfFiEjifA@F觛qfuP_' h m:}`*JM0!F UAԓc@SO_Q|eU 8uV5OB$S`)c 0P7EQ[p`[&8l} jR:T.0S䪧@fdAqЮ6l[hfolV&AoEEqthGI]GqE_r!V&:lb&ОA* VU@?!$pxMx LAD5>P?U!@Ax9 -3pFQPE w\ $M7,%KL(H?:ϕS.E3 vsHaz?nyb؞K9EqAn ?q"9'RQa2BfM"$)cXa0yة4+PqS.UR?-W&YBrLiuS-%_79VRM9N? E0@'=IE>ue ⅚|k7AMӯ `#Ȏ30z- :+Bĺ1TGbs3)lc,D:6e.KypU0aB4#4VR`e&y1Z,X 3LBukXeӔf5|"oc4*rRhp9+ -KXb:aN 0p8 rb)bh@>P`B{P4 f ZCF)"j$ɠrBF/il)`#<2Knu$%ʳI* R$zG;HLd#(6: L-Qe36QN,TEڰH2wd@萺6vcnюse6`=*#3S. H@DkT.8:(6B>ØO|.:]%nVƝ; ҿ /J Mi,c)uLe0p&LO:Qw1p %.[5/ j8aFYSB"L+9@eXtj6up(c2`KW]`Ҕp$51#7ox\1a ١ŶcqU B+& kAPV(4)1,`fZn$5AdBYjVؐhZq21EI.f7E^ق!qVju 'Z"&bZ)I]G"]/ɨҕ%;&ʞ ENGp7`:DAn[6bsqt? шH ND&,70AW}8l(=:)U>\BA݉$br}f!VvB~0`w]آ(jB3o@x4y`a wH_RT W~'b;8OcrP?+EUH F6 B4F?s8d:447!`VR:EpW,Z!P6(WuH`YvgWjpWxWJ[x#K6\fa\IvqFhi(rTI6Rjb9ihrVkGhe7:FKajcw92& r;R#y8dTpF# -=^QmuVF*쵈2^Hml?.`!Ps+?+8n@@P `g}~u.}۷&t#RA'~Cb(b#R/# 0b:Rq4qa1CTp03"F  YHsLD/E-׀F&Y"ePF%@ &dh4tUwS'tjW(84runc&[j9T&ur(|eTwh%8=(b&it'awTI b4axt931#;(6t#7]8X1m{D>1l1N؆m?ܶ];`+u a @`&/VAk}zyAe/m'b'2-pp CB@12+bCEaB<6CWeUV2'r`d '"?dI4 !R sZD434Fra&"(nIĥ_2\oF'oYfmgExwdFK,y[Z9wD&VGjg1vSF#k%=g&(&hky"$xShKuKaW$Fj1ɠz7I2T9!] |Azg8^F7UlLIMmTRimw|Éc@,w$Q@foeWQ&o$bp'1 p09C34u7USB0=0A1038q1A&5َHVH:-x*ۉyQYtp4)"h#bwhEIΙIU#)`RW$ H;WdS"%p58>23la'r;9wd3?Z7dHK 9"HР:%XҔeNQ2]'C1,cQȢIlU:,n!9sI@$UՊ3`~Qk/aW 0OJSa"u0c&fR<4,E, A-KzH`5RcӚUHDseTr cyT6F76Fɪ1udvFTIyx:`#6KhR3#zxhr\z2w',f;b'Y)`㒐v8yD:ki8'xx:39+[%K~L5*G"Oٕ +,#la$ԇ*! tFSH//;&qk ǘ#c)TAV3Ρ!)B%We q!(r3Dj""XbN)yg@WoFWGs*8u&^bG Jej~bX6 9ZQgYf4Gn瑹ўzym9?SYʟzxFѬhxK7oryFXAhx!;S$4!2^[yQ'%OC!>s%O1mm8PawKʗQڷaˋB"$"pWY 3 }A&R1'{XS3 /u56+f N%lTj"pulkZ()&yewɄT!WWV!W[fuZuwIy"8L 3dv3_J漨Va"f\Yk$xE*y:d̊:0S:m(~VE B T@x Q*g˖1!zQ롼3EQ:msno+͛/FoQPMb7"k/LjQ!U~ D."g-(''SA2A@aT Ѳj:AEZY\U.rxڿOQi>lF3 p-LYٮrwZVn͑`F)!"8jk'CiW"%vwlW4,"%q?'`hFjk3c xRkkВĥ[f}kcf:DUN@_N*bl+$ @m8sl%`S9?Qq"Qa+;R=$e "%1iԧ#`j`.e]R.O211^2|Ua4j8:#p%ZfBDURf3"ZXj6v%2ih`#HT(u٤͝:\C|8Jh❈ڂ㫣<Q4B% 56>,̑6vuiw o;b07ݺTz04vъYLK{ivKV|UV G4K 'l!}v 0kmaL`6E]7x0vQѰaRU UBYaa1W-#8S5emfMPR1~;!"b>'Hs_DF:M.5?bj;FX5%r`f٠wb!qe#/"&itCqkyp[~RtVvyaF);BL 0 iJ=Ž[yXCܞw1uJhgy{= g~t^ֆT:|ި2[˃ E=a F,,#Q3,}.Zsi1tr.WbNQLVlpPմOo D@@]ˉ6`*٥ 0U3rXAa7k5A5ikAsrKR#5bsBvq%"[LhX+i H0Zk-q Bl70! ($/A $N@# * xJ*` ![< h bB:J8)Kš* Bদh RҪ2iZȨ*`: )7HD#, *S%C#p, )FQHϪ*i3eԉ6* Iʬ%K X-#⋵dxRK,0c6p tz '!ȌMp +dMdιh#7Í3swA茛M@uî;Rxs^YON,'֯MF^N6J A_~ʢDBVZЁC12K$YȢɢ4l+$Nk".gŠJ2b K}੆̾iP2Φj)%s@#H BWjCp(LT'6ӄZ!L=\4g]E(Ǟ$2JQ[ /v5!$Xju/e S,Q,ZjVq^ì3s! UKm7Mfp5b5פX:wW78;ú-,? ӏu3q +/P=X@p'!߀v CE[`f6uaMxw3J#X]-H Jt@71&Pň0Q4"EHh'%DJGB% KlzXg԰)fHD6+)5QTP3-vTE .J8¸@%.#$Cv$n%xT'kPUP;C*UAE'9b]B+,,]x+XL0`Qg"Z` %D3ߋH||1_xU}kj.&DQޅ+w:ˎo0H>>}ñ"ǁfA-@Q1H/ iH1HFXVIU>3 e" 69ZB`D#.im2"5ipG2҈6Ir`enjSO=dsK\B6J!i#ݴ ,#XB(˜!W#bq۫BA "kHL FMDJLI.I:+e= l%W:tSHyYa‘f-+Ym  Ax\qAfMҸ\#5:o$vr` ccPNv}+}3ǁјQֳ;9H$%GYhVvi] wI FZztB*, (9ZdGHQv*84>&A >EՉŊ$&֌iMy l6.)J^%(E_GWHIsRZLH qRN1kenk#<8Err"&=S-k.3cP/u0,1 Ib[HH/?dD8Mie>/7Յu‰S[w':UXwOvPbm(z:];ƞV;boQ /`CpF`Ff JвEݥ^s .YZ q`n"G8F *\Q(A(MzW@D,I$',ʫ-EﲊɄ|7 "L8V*ƍO|'ƾ#2x]2Cr=}3RF)\o l@\WgXό˨1_Ծ,11胦52}utԟ|6qvQg!vc׃ 6x$/O?;]wbFo: =yصncd3 E"6JDo.r6ք{aBH1h;Pdq(+ .IPjvX7@\/.鏜Mo&G2Z>NQ$xY+^#3ERؿɤ ҪIsG8J*hAHJ?@Z*"ậۺHY A|塖deRpL; bAHP;!5((q@.YÏ-ԁ bxb} z<:6uɀd  i3 ic01(ܓĄys-:0\Rj Jɓ` Z9 ,< ⢙qʝ8k?/9<{ 2j?(IFZ3Ch91< ##) HL ! bGZ"%WIi8qAH~{ 0\P `mY;ܢTTHa>pBLR(P5K.#J'2x'v;HiS9 x  j>%39֐)LQiäL1%ۈpq$ ̈6 I;[ӔEG0EI??C𻱫y!:T448CU(a 􋸈 HuŸɈ` L(l ,װP<a+x< c(> DʯpmC 0)HDL4 zia aA \Δ%ّ!y^`z&19 \,K )/"4,i/R+03: S,ӔN!;E2)qF2G? YѸࢱ`̺x[!Q5~ 4"@C㊂ՂշX4B0hhB^¸ոhJ;kQIBci/mc./b# r iP9|A#5t({ɩ~A`0LF8"WـYȋj:K%9$+;0QﳱĴ8N5aۑ:EE[9݄2s p< *a%+ F: *#@309 D."ȱU - I8,1$9:TU%۲x  A-$E_^տ\kQCV(;H. u j}Ik06@J< 4 } sՠs sDߘ((PFW-!JO E!Xa0 DQJخQB `\4N͚ , $򝘻xR 2J}LBhz6$K%h< ۔==F!U2Eي$"P8PK|ط`R1AG[5hUJHȀЁ\P5bT;8bLbkI'50&A<ix*͵u.2WQ>JUG- H(YK;ǁē* #4]$ Bƭ.$VٵF^4*J/ #h>jIHň|R%UA Nx[JX-TH;RmC#Umab4VdM1+0h!;pɦ(`-$-]փ] 2ɇ 7 焠؅csc1"Aԏ0s1!J1)Jb;iX!XG^yK-?S 'K1e&+ݸSn)(k$+]˩#vY˛PL+ `ֹp&$X@<͐=eՉ qA1:{8Y:mTAm&QYaAT<a 4a+UeH焈c Sl>Tg[MnϿhHȑ<0 !Ip螆Q \Ȁ:Vd  o5 K`oeiuØŊ P%0lQ)}j R jiEn4 )zUժwR&M"7Bf<_9[4jL+Ff"s9'1AijYƟ>֐RGim 1Ž` v@3 sTOu$٩5_m/uۼ|[Z!U ga|RtޡQ ܁\Jܖ~hcM辂id no6 p5cI :5ޘ V׆Piu_GBDWP4| t` ժD >X/床GZ H4Y,dN1\p9)H`6/I LmfhΗ3MV08F5[Fi $A)HxSa3|6";37ckQM~ھ:ҙ>N> j*1DnF"6t^n1>H;nZ5oñ܄XuB鍡voK(UWh bi+iv' " NJ*vBf|JTph:]Q$el:ı %Z,pdQKW1߀" l.?kԸ[v`'Tn >#TyPJ+1 wx{$ġB+ Y ް[@|eAKoՑԝA!@ئQm޸P Vi %*T1Qƌh#$uIRȑ}Lr࿖}Is@Ʌt J(̤JCJP- Td*Yf"R*R,Y2R[d;7SHٴ k8 0# A"0(X<#p"5"sϓ&UѴH~Ȑ_AЏ@4h z d,eH_.RSm; IW<U`@}ǕB}yG<P!uO}%Us@ء7 ؕ( 0iǝw((8@lp?\yA U@2g$=0O wgrD| 17x )@adfvf(IyS}rMsKPFQr%E@T%%a VB5U%\gW\rj!UD~IS~@?Зeƣ@/&g0$$ךvD [Cn\rL5`$?@!yv1 )tx ƜUU^‚i!y T&" r~~{uꋡ}W3 @ۙ#,":#$9R~@{ueQYVEKu $h)P7гvGO{fT}6 R"1TKWL" OՔՎ9LlTWnZ*]\kTzu R Sbd` 8/cJI i1SXҠ_᧋[h9da$&SqRmtȀw$X޳`bљa%ai@c0Bǁ:+ a ~}A&r3!B)Ou81mg9CXH賟#ڊ4(AzJ4 ^H#ũiM:RrȱTJe"D67E#i GnzVb& O|48iD ('D*'hRH'@$pZ URU;QYU܂0e %2-SY %mnW&~'aq XI < Ir@<=k HfR,$xI t"F@P:ȵ401ЖyA&H`"?$M."P5ID)O ? 04=n1ulavQP@X!yV IƺeٺE01t '}ǪH%e 9@jR(Ek:]pist=IS<85joqpa'} KDk\%(i(]SrF%Ud&:UŔiVzjK\Yw) h ^ º 2b*KYl^xMRD-B]eJJx帬1غZ6*` L2)4)HD9JP<+tUiWc֚ͭxש1_نd @4&mjd\vq8*`pq x} I)I嗠 ҲQtJlerJ̒UKڒם])BV 0k0 ale  [a"1|l#[#zg7/Sv= ^QRcljxp0ןIo(^O ^+@}}D |_ZY2_ G~tvH9jQivЕ#9$IVҝlZ XVS$RLn'EQ0-AFoV0)ӣ ֢!lQv>ω9E!ddvQy%p G@AF@g׸GtzH~^Sgyxʓt@hЌT WnвH΀P 9Ⱦ ]!uLhyK>dIVe{)f0C#%D&=e5c Dgg` )d#Hx5ic\%m(mvTRi=fR  ,g*NgJ 8-2 3]o]8D0]`DʖCz'lVo9$q,yV|"I*ʇ{aX!K:qQf{"bȮF9;!hazdh{=b!RS!XU_%~z ]PxhivAb_cݍ Rĥ٬oafL(bbȂDFn4٥pĕQ(i6"g) @ϙU@kd٦κ[cvE 1*h,ad0-B„S"ڥ2C2(2%GNd &HGT\9X?1V'J-{zR^߾ęOO:+u-tl^|СBqŰ$m($!SG [RׄKDmP{@Ƶ!`HAuRȽM5U K.րO*2r!܇5WuTFr 1voZLD>#+ibxD@@hibm9Vd`l@n5 \jacua`)o6p@L꣍}pU$ddo-p`'b1!@("ydŤJMbIVdnSj'g`F's|[N6yLgf*]s>2 gq-0q'JbJ.QF Zᮙa_aa>INr0 M{)@ + .y(PGoýM@SKT´n+tEWEyLMx_s!/-2GaE2mؘ<"clzvr@B6BRUY /HYlύDJP̍= 2 5#*1ߵxa䧯 rکe*nYdo E.K0!mus0qMeeg@x.:1ͳDZ#XC#YDqH`R膖n RHSlM-.'O2/0Y-C] ~ckam1k Lzs?׆3vu3վjuIrz3Gdj0St/$pKf 6R[=\{a43 N.˯<@5\6o53`#45mrksy;AG0G.LSFr̐g7W@ߋ1F eew݄ ǚjr4ɜb2j*KԈ#H̩Ay@bI/\b9yH|z'n@R ШJoC QN%RT-N?k ,b.rZ"ldW-[ Rc#Q2TaeL՘+$T \K{{vӯ3-̿Ѯa51XtޅxË򐾽5qa3/A0R?$)Ј/ue4b^"hL:∍|lH I‘())!|} P!bK[Z䥦dM-^or'e OnUE(ÙB?A(G1JT<*+N \BM RkIJtΜJ% 828c^a5NqnW>Fc$bf#+p&3bV_EM:x,׀ƈ2pγH9>OvMH'] f1M0RM #=_Ji#` jO(F:?y}cWր)He|OJh" hE9JnDpdaAF e?ar$ksƥЇC MW#%qm4ٔ6'tPn EJ RECI`ۡ(GERhO;FuF< ! k1:HE5uv툷نAqeۈsMzc%G:C "s.sFoDqyŝTg3R}[?|DJ퇙xhl<ҟX!H)!6=W] 2fHg)"h!`=)3̥+0g!`"'9$|eH!r0Us4}W_Ww+j$7leSLiOşX\Sƪ<ꋁN"URAMTu86a6YIr\dǒ&3fםTNTYkJy%pLsHnwdYXn5D~eƬ\\c[˲gU\nXYZ{Z&Ѭ,{!m^*,~s7wM8 cnvlF/v=,d ul0 /lZЮ4z6DHrRNЇKm w%h*NVpILʆ|&tG8E*LBJU4)A*6Smo"2a lKSaETXb6(+wp[CX1LqN&vg=U6,ǫR$VhyH0 hpHڶ9T{/ꊘ%Ub'~O{c@ ,/k09?0|zA >$'/!BQ+ At2&t>@L='#YH\IsJo/@|1 챈?Ѯn/K2mT*ӎ)RJX[2v` pTSu,ȧ۰m*;Zjv,n<_kV&^MmbQz3qd!sbM;%r\rIW1NКW*8bciY]fv1cW0,`,97@l䯝Dd6d.:܎HJ-Rh$F"F# T8(#( #0"fe*,%&m(D'$ٖp$ٞ"ŋ(Qb(,RUB̪gWBJ&(\=$|DrZg/1vOJg`LV1c;t'%Ъ3P_ZG:2Ǵ$|9:/ؤ*\Z l7pɔao-}BB6@Y,c]ُЈЈq _dcRHgB"0Ο`L N'@.DhɃN!B`pQtDF FZ˼$:椠j')"(!bښ- O) Q,<&#A>p=Dh"0rX,3Rg587p9l5h48#/Odu"wi8 7ƒ\cq#v:yn pn)%.(x ccN3- 76,(T%+]Q=CˏJlZZ(/8($,G:$z'>bPⶀ'\n4b^qA,,O 䀩]-iQ/MڲCYدvCPd+F$i>脚h.|45=m(3! ZЮ4+$hPh.$5\S2jAKqj& "|mj+;W%̎8ـ8S%#ON&*"QffS`#O:0V`$#-+d8 2C1dp-C6zczT@:7X#k::[2I:yv#&'w04;A+h.@xlF&@qJ+pK„I! `]s%3.NP ¼"'|m&;+;s cN$2!4Pn3e+RN:Ъz#rhc6G+ ƸJޚj3Vj;6fZnCxrg;C( [$zZ-4G7L:Kn߂;"+ᢑԏ=cюUYo1-UcfU]j`/rEW4)GG4 c`F 7}5+ ` K3וx .]THݱGPa``]s15+ n#{CU'#6#媆*QiS3<#h'ZT=C48d7ȊmU"M/8X><>2qhk̖P_yEeoLj) wvmw$sESh $*lUaKױy5``5v/(gJsI؄m!O7ƉfOP*D贊"!("oz[Fr(,sXWB28#T ¿m*boв4r$ɸXQV= W2@1x`W#=luwQy'CG:LwV?@᪭7p5x329~eS#Wô/9<2YYͰWo,. PqF= wgN *pxXٙI/TtאTs*5+A)K[c9e˃];a!Is&N(t ;mM(n؊?2$>N+zS \Br''t#IJMȍ4jPtU\imy#~~WߔO)?'8He[5xH:yxx0UVݾ 4p… :|1? `၍J䨐#H#nF$J5GmE/YDĥ PP!P@& $]S eUW%0'RvSBY[q6e:i3)v fb՘xĦ2Tga}O*X7.knHnk[p ǫ%0r[`!prC $˪imCNxo;`v Njp~+ox7r£K ɤ|wkK o{ f'x'\.:ONЕ?td%ZєZ.5(DAJHPE)E!XT6ii!#SW4df)ԟ0 0Scs7M0A*5 HfT7 JteM  ɮeGP1o&K b#K&blKE1T)("JUA]jKS"=,.,T\-RbS1nl f1r{>8881QӬ\*\hF}39ڈlƨK,cp:|NR=tL|cIY^eC~;x%_JM =E`Ww4 I,GߓO擭#塩cV!Apaڲ!0ew՘h1HE"<5YP@hBQ @ gCF®-,(a ABR%=дЇ8,aK7-#NMLq&f4b"kxьUœln!TP)ˣ,Bb/QA y 0Akx UQM W>I8{tFT_LdspA\)KF[ᙫR)ӔLI\}~$#(ybu uPB6 zKsf=2n Tu҅lbLPz3QrmmCӆτl]MDŮZ2*JtU|(t16߽Hes |79ڱeL=DB!P6X͆Ύ!\ǾyjCm}뷚XAj<7%DJ9$kϤW*/6{`X|W:wfD(]ʗdB%*_*ʥeRɧHDB pY@ib͵:>զݳˑ!,ffm.4 h|:4B'C`cg,l`腌Q8q R[u@V{K"SRaKd%% ;$i@-NRXb7C,Pl 1^#nT%.2e.Zfu 3v,"١uL 7ҔB! *Q3ʮ>r圫!K*STX<6Ot0:4i,&1 b춘?=f-LB0WhiQY5YT\@Jk%Y- 9 Of=$6N?&'|X\anbU7!w}}Lq&V?2VS"F*FuLDxg%>X3481cXXsl4dJOAAmBsimeia'd!Bm!O~y.7OoRC:D7z/zRPjT&EMDQPTgF~gV3A||`t9}؆CWk-+nߧ@[sd7s? B~+8kU@YWbUk5G8g1}P CEQME6~6ZZTnrJ!a.T^$L>#-&w2AMwccJ5LGWYYJcwae8uoWOg6T6eC^C6pu7e5}j%B-N\{wgU|%8!ga+$5^3VqC4*wT]x[ަPx>sDa U[f&?ZRmuE@b5Ss}6v3ͅgawj#VU<Ĕa#LMq2t1X(?1'&c2&Xcx QYDSQ莓joDewyeDOE?f[V5)RhaowqDv6!hEuEhZ*3P*O3BGF28s idsdI+VmeD#%VMB!LM;$s~g6%qs#y>mX#whĆ:8[AZ9'AcL!A}WQd'wbNnQfe(y*eZg[Qz{uAD)4yg7koQ\8j\DQygerSEl2&q}4sɔ#i%|u˘nn~Z)PF9؈AxH3L4xf1U؉WJR%iD5k¤@ǦaR&xLQAG%fY8yFdNtBaS4{Ifi68PW}à~SBkј7ZRQUQxVra\աGEUi 2b7k#a:|jڇnH" mX !A%dJƦX,CVj 5ၜ9r&AfIn5G1ab wvbզTऑ߶dقrA~5gNP'.B2t,J)') T&{o'4*iA*\b]1\PT*)*-+}úR*Bt)KrcݦjdjXYE1}rш%&2'_‘o1!2W74<f[#s;%I:J$(6@c޺ʼnnԫ27٧AYXe5׺̩w!SrڟpX9( pXO7"(ybZk \ig6k{ڳhEڳQfWl:}x[*!vl/N?@A\_هaITMDMVeY>ItYVd UA_is?6j$M2Fvג$Aѡ3S_A8r?qH7eN'BxyqtџHTHgd5P!0{AjX[4zb+w+K 32AvkX|RiUHR%d d/-F=5j!%m e&H{23 AB@%ȉM`nv4eₙ!d21SaN{(mṆyg3Ìj(7Wfd+)-&0{&ջcoG\8DLqOZxē%*QQ1QX , :GkqSC<TK-ۋ}!Enmq\G$m:0 U4QkdVGúi/kWzc'C?ɰҝl#V tvȸ4xi %دf7AZq^ø,n>5i{yBb7+?ZjzKp5*X{H4gjLLrΜͧZ*Vq؜*,㜢WDm#]G6ZGe_:|*L'緦uv@"ɺ1w]b& S y<?q>"*J344Cvi(&j&A0u-X&nTSxBFdoDrBg7Z{B% RDq\dͶ̅P!4@ 0 >qւ1Q+Pd|&2s Rh('.+aÖA2͍9}TpB) 1}l p0 %q:Sz̬^ ӇDCqG1侁 s- U.X)ގb;rF RRA20Umn1AU!f)Bjb{[6('t~ey'Rިeڨ&[Eb\ ̷KIvEcQvVQ'+N&WE§!Qyڻm1nǎɮ.Nn׎ٮ.Nn.Nn/Oo /Oo"*A$"O # a($S0%*05o@/* q 8*0A7] AccK_M_.uABA Ri[3o{1@F 1K{__ {?)Cɑ>Ha  f/o_/A=$#DPǟSFP !iN_rO1ho;D$BU$gbHs/bI)UdK1eΤY͘xl?6 Q#EQ6xr(CLRW`tUK bzDkO\6eOM_1^tỆmKdcȑ%OL^ѷ U̓*m$),s$MA\,h*S#]|v!vDY[`Rկg޽z/W7j=k>m07V?ki/!k"ǵȫVK A멞2P%o4ȼ@,.2z.]G 22eEL*쥐8J˾va3 bYʇegFLU*C&#zcnMM]DMƗz:6%+E3=s]ǝ̳ڸ6rcӪp<-T56W1'dXOVZc˧kӉkcJ0a@\aw]uD`aӐeͬڍ\yS6zU\ҚwdB+2زL5M49uQF1}ElAo;,yɓpXJ_Nl8_74|g}YxRRRhMJ?䴓tӵ⹢ʪeeeẉsssQArRZCHIJ/ih (¿\H?V #2'ċ3jȱǏ CIɓ(S\ɲ˗0crGSྗ)ϟ@ j'OPE%XbàSL iիXj ק7%~:ƱO/RD˶۷pʝKݻxj<KoC} `-*5ney >ϠCM.Ȱ(5sׯj8QC:~Lːv} [g+QrкbEسkνËO~Rwl@*Fl0 LaaCtRHnIOY"O̚()U(A%n-ɒґ$7 :T5Ktt 5L;2s TISz<qK1SƏ8cF`ʒ1$ebF/΢s-b$)IN3L|e*O{sBQzիd<.YoK#.KsgD +:ӣkF:pԣ>݈*{@ -,HɄ8ObEc@.L\U%.qcyKuoJrBVz oF5L2Di -荈?#?qV37&#kr_m]_D8:N0"AgT^Q}%ǚO>ѭ(7UhLZi1*дԥ*pauq.91Q&a{7䖌ԏeUzYV.])J<{୔V_vɒ _dw`Pھig5zÅඩd,ZcR"-;Ou{ֈȆ{d"1?4 &7/,rTɆ( )6#U𣏕'@ ,.'\lh#"NJpft-l w~Dm[LB񝝔stY)g&jVDI㲭 1\i{k:0Hp:z=sˋFztU6bA]He 83^_DXap5E[͗Xഁi|g>jB-Lrlgw9Omc%S(&wrύn¡$* DW eK[n!%,md|9D7M4ԦpB|Ճlq?XE|Gq3Uůij`ςv (2HH6N*-U 10 Hkb^ZϭٵHZ-Ix|yy{<n o[^=ɫ~D&ë 8K~zڦ٦hI7KPgʱ h #+1– ] ԿY¦KJ hOX{J=L?o" Bζv-rspD8392d":挳΁sĴh# Ph3QȠ+5FԲф)3xi$BS** 9, C[kX1G0zq%\d׿.P0c-*{,)hGlɍ$)[IlXJ)%IS%4j/̂":t ^5cfW΂n'1N;f OK| 7s4I Җ]S>=I!#+9+ OP @L>iR\uުK%c Uve>m1J§\I7ڻ^bYna'8\ g}s% Oܳ،+K}770,7Sτf]I[I Z'CW MѓzIKOeRw<^'(S~ dzڜY>+eNaIG: 4rŕΟ`ѫyM/2ۉl6.1|Yz q*SZ@<).\!z⚜ Ói9rXQ1ݗUэLҗԦݬNaqNtZGPV$0ݎ ]tQZG& w&yG6\4hdaٸ]z4APNn-Og*rV I)ޤ2-&EtԊ-P*.Z\T?*XcQO?͒;_,jI*F[M[ HRzԃleN\\CfM8 9Kxp4N_pLwdEm =1BdW©Fn "B v$c@=S*ȵQ,p 7tJrmK4rRhiiF<-'.hqTj.:*tE6YʪOL+ZI$d}[P1IcPdE?AS59M䰜APf4q$ ̝] ?0"Ȓ^1my?Ufn>zAMB Є ;8^EՏ{Bĭoq,aXHT(Y jz* juJ- [;e;X^%YKlIՙn+_"7֕טӨF: 7-6 a˕Mbu m5ӅW;Y"ʼnH' Yv@(^v B4E%F#;J ,X{'.жHDY3-d’N+4Y"'lseqqVe!p8\k=n8c^o[O+ܢpj7d@y5$W"X1_"shF 4pL|*-R\o4koe&o'r6;[d]g!;t4ENe-kf[v:0: 2Y,*,Oгk[qBjigkնﶾmG=4nf:t'%$ri!#Q;tIM<7Vw4FFf%rJ#: BvgVX`Kg O֚+˱6yhQpe;6M>m#XzgǾu1u*2?6Rz/2x3ZP2*;ɻ|rh겛(i 39B ):A<; v0 .ʮ?/Rڸ|ڋ[14 Di8/KPۋ9>#s=iRT;(JxӾz_CC_50~QC>{ ?å:;;+6x?g[c S &;2y:#+5*2+ܫL zlA?K+2Df1{: FP|dC_H`;|D[7.M.SGےDXC@ù¸U$F"˥W̥`J?Q͋X1`ԕʁXHY)88ϳUTTTJxU=jWܓ*G+GN$[sг]QtV_;%,;4Q2"?1]v6TҶluҌ H5Guֺ\%Qv<؀MC--G=[@b]ӾlS/ŭݸX]-3][J.̖4ɩ-z Gzk}RLͼV+}R\;QV.M:C=mw٬Qp ?GHŌc`#L4݁ Pp,GbӸΐUJ>SZhA\FT}cL:_%cxޜ녧ѻ^%=L%ztP+",tuW"ik>͔:\ \ I"-[/$0/U]'b=۱X*<`NX$b=N=mtcN^n_e UR]كޚJ=^TdJMd|Y<,_}^Fi1Uښ`U_"1K}b^Xs9^eXetg $b|V4Vw<f fcfdQ*kӔH wűffj.A`Vڼ?<zֻujQ]e1)6G 5ˍ l1N.-YNV7Ԗchٜٜ]T?nAn 4pp߶E/RB0@NJ=OEK^eN}hI1i4ˣiňM&Fo`-rW^bjzoi]gj`teV n a,1c&?z f!PgK%l]fqpj/M.M[z-# 'ƈNgI[nl,e]%vNTjz^l>b+1bi4^/SfP=1PEꥋ=<ُ^ 8?A %7n_=_4螅01nv醆_Uц1i5 MOUE j̦1o(rF\YVwC\au;"t /wh+Jk@,.,qiurtY %lށ!'T/‰~0cZt~SX~O4FNm炥UA%Չ1(tm@A<;sH=H%%A'tFfHnEtLPz0N>Ŗߍ䕘rNG}{f-YoYve'euwL[_D^_{6fn뻟 ' wgkpmo{%k] &ܾvꁄ-<Qr[uOL(K^-Fî_.0gy?xbm=ف2V .x1NEt:^smgh/o;d^TYCoƛo_z"a _NmM霞B}w}}jZQ'@iQDÆ Qa whlǏGZa?&lҢKRڈN.mY7=Mt )?!A j)֢QY2jԮ^];v̞5ײ\kc۔3=qX,a/J3q`J\@ "Hv$~7{hr}fKoNjoAHC:2H^aҤAoKAp)+3F1'}RJ*E'3WR޼ՑF%ObsY{/W´=8Mlp L`0FIp2QS^e55OQ1<()F bͥD %k@R-nyz&m,NK7[VNwjXĂS7lNU%mqz~ĭAgքFS;zvk% #`:xG)悂 :"9KwNQ@a|۷fw.}k s4㡮.Z2"̹Em'? #cN֥lK%<+x%^5QѴ)`FBT1yu>"Pھod%-a[Ļ1-:UN8XjRQiU'Y-BK,_K'ࣶ ȗ- 0M=Ϋ"6 jauLd9MiaMED۴PjXSe2EH't[ފzЂB=,RZhQB]e 9 jBǎ,b\j(GӰʼ1)6r_V'1!g%4P~qu\- i(t>h_-hϪ3?'s4=)#J53h(z]oMo8QaTح׵Z2 =۽K&ށ`&[[ER鄄QK(YSu ~W|[) V $̌i%%(IĊ嗀u^=C] N]KeL#N"Jiýaif˗6hEYLSs܏AsԜx#Z}܁h]ȅoNaڃH-_Y ±bL@+K!1\"dQ/ОKh0cPh 1B#01[`I#:7@-K,\1[}#>8~[z)9WYU]^$`ߵ 3>(=c^0-f Z 0zrE^d!G3yKaqD>_>ZhŲ < "tYDbz qG&&R Eߘݟ ?d!WdU-.c"ZeD]e`K,]Ai=#a7X(>c=֣8 a DK?@DRXy ㏈N'B'>gyn6tCxjh**-R#\ yt_} QP<]@_xgʁîjK8%1Á!+&޶AB*<1*NHB+A*lrҬqz+F΢ple1e\1$\j`21&øҩmN#zi>Blbcl*W=H`U^\镶R X`&#|):okic3(?]%n&l«>ڨ .1l#/z~/&lnzE yv6 æxR*ygޞɝ˝jt^!*b㈇xYϵ- bGjjNtmNto~* t'VkrRo\c[nLD(^z2#> dB2Xo oDffg),ل~bb:^ ;^66fLtcʫ=f/4(}:qO1f waU,/RnΒ(0B*;jp..,?s>Ӧ .'RmD:BzEʁG= Y Bx@~BZ81Rr6HB s79!tCtC-D!3-*=??1q>l͎rnVF4KWDqFcthz4E.D&,IŎC)qKPALȴ5<?" $oMLZiK$rs,R" w_楙kKhtjfHni2@tvuL4?؁(12Cx)4/ֲK8n,tւ?g^C<x /+YĩJ˖uDDbL6ks 01mLHm*h;„vC=s]˲'<'L'*b'4(,Y'DCr5VuNt7wU_4j4E?7vO4vDRtc^tǪ?ô ti&4Lg 44L5O}L rcM˷N7e#7!Cuv3H/FS7uB4D#CqӬrp82Y\wj׭a3sjN:5jjh1Wyp^3j3C/:34mrv3z(>8CC>{>8ꁉDrK7|W3Btu/C2fHtI_z:&z;I7L 4 رL4y $/L_ZCOgB8 :7{t#+z|?q7x3>zE2:,A瑷uwxR ?y*y^^I30Nts1sM9-]/V"24gA]6ۂfsh:3s76K39p'wp9KuxswgpW,?x{1=|?Iw 4{LC:{#y:k:qk7;q2E#z^̘xx#M?;*0Kr@Ns8Á;RbXD2<'?ǭ|_s4A*mQ g7>İ.3n7B-P|'ӹ6xL/toms⹆{BZg˳ܷ<̻D<ޓtc =oѷw{5z5PK;lPtL??@X/@ &T0!#&dH.$bO#B$XCNK e&F(\f'Q?5p¢;:iP3((:HF>I! `ډBA %V:2,Ätĉ(R16PQ(*2 +  뎰b1Zk0yDx(k-ɄBk G+~ร,Hb>êR4fA ]h@#*_tJj \2I'-8v (&t>SIԁ)$$\xC"H>ҳ  `u> vo cC)ӂ\bێ("ɄH"UBJҍhL4P+tR2z*pޚd$u G:!!!29AR!ȰcH/,*8!)2!0aّZ,ʀL8&$=3!מ7٠6ۤiPH 98.l&r3ܑƍ\RTWtoTee!aܩi _;W-#**;lT2 = ՝PIc)mʩW,7v&#сEGԩ-_Hyj*qtNs!N&K`^Ğq -cg!D2t.0,;Ȟ h`9ԡB`@5FqMd+*E; ldTfFGo"Hn YIUzp@S+*Σ, !|cEH܊rbR9i @NaDpp7 F(n QE* ϶ >ԔU5p"QȣhCZ*9-3V$&$,s!L2e/Q߉7 B1Lfc:)3!U̓+Sch< 6LB p-da|1<r ?(R[y6$ b#C̅R; YQQ "oH| 2}<G@i"+H6ʪV-hZ%D>q۹(τxkRxV$d%tEr@P.vɁPa ^U ٌ{$R(,D0n hI=-3r?àh)bG?Y1p dU#ț.9P3*<7"Ck I Ntr"UR1#BztbKmƂP$" G\h@ ||FZCUY\nNk'>F&(.9Taw_Nv'x&E|Q-Br?)T؄, làUH[C;DJ2(VVW}%܂ r-뙐GiAU aheX`ZҙTB°a lԶ9szf9_x*iR_t_}u6EwF17 ?O0!oGe!.=U($^tm*v N} 'Qόen!\fȖlkt$AށY1Ű E)ڊ}n$L(l8|*RqTykQ]a/bOڏ(Gz ot-U0#yMNȁ،d4!0xlͲa%!6+mxlRr)וI/Sf|c^@'f#@[LŸ ٦puf&ǯz&dxyG1 3G)< 1F.V(⟞|"V`ЪȊp!>UK9z Y\> , ?90B._(8n Q'Rik"o!kban0IT KG ߧF؇*J>f :Tc\̮ʢMˆx P gob&ld&Xn~/؎/$q)A1䪒 K.+b;5Z.AI҆~|..(.Vzz1#-p010q!\/ߠx ȸ̸M!Oh8"QjԲҞ//QRL5c=P,ÏD]-LTnNL`NwM*/Hk7~8A' Qs! :cB$;1oۤp"8.'J~֭f8n*FhM a/ؐ qO'Ȕ){ɘ&4 d֦uN1#0TNCM`ȵ[ITUI,1L FaFRFkIKcԚθtp/hԼH5I'R V 6IWJ0M>2Y0FCF;-]AON1u\5Ԥ.M5ojfSp67V!(nrO 9Q٠„:c@) /BTYi>#~B"vZ5I2: aنMްWuU6i@ 'uhׂ6r)Qu *WZO*XsZQ6t34NM5l,t\WE)L+)P!d3]O!d ^x!A`V5bqF*! 4J{hJcq!jqe-ӟ`uBv!Nd}9fKn0TsKs/TsRsWhq{y)tiioqF&ق/:%/cfcd-ȖdHdVi-G;!'!ʢvX$,HF* #i6Q TriuRvu7#WhU/Nx05s855T\]4uU4Ev^'3=x_xxWGSq/_/!v؀ a{wbB9ǔ7!uxo qjyiyI|~ ڔex 4!(X!OpmoQU OjE"!25(-SoSpT .6=p0Tl Z$!M+s &Ș &kri t}{(pLsxe!xR65M*U\[SӍK59a]x~aY= ;I_M[Y/H֗a}ya6InIZ=("GraAZZcC {1'! ~BuǵgV!/:6}q_PX!ijR$ m MJRU眹S!ع߹RcGqi;ArƂpbوat8u(@r5ظ[3zz r=P*˵˵M\xewMMA~OAEu'v;Ϗuz;O!wڔH򨝚y \޺as‹9|A"«E'­z  ڮxMqIQ~{;!:* q?@Y@5w숃p:1,c\0A( ]lK;6KD#/+5H*u *ފAŠk@zs@۸@{ea{aDe;bݴM'puid;yzx Y|e:Kym]0]]cS\!!&؁ZÉ+A} ^Dz"x5L=rh]PVQ\ 9O3#O'yc8u!̷˖PU-ZƇ+BÐ$3f |qγy|"RQu?s ݢ玣5*=i^sM=fQ\xò=pQsYyIOY._֙ܫ.8={y=(sڕ=!^!=墳ۺUZW<( 89b-!01ڼ)-k!Q~.zovl̍k-$;]/Xʫ^*^Rn p@֚K>X 4י!W!Ӂ5wѸs[VN_3f=۔ÿ)Tӻ;w~Oٔ1<+࿃fĉաxƍ;Vd.p" 9\*Y0inOE,5fsaCD%w꟱:}z ? '5m۶U,Y 3kjٮ}KqNbtV]h$sd8D7WEɔYHdyGGz17¿ib^x.;X9(7Və/s,?6mYh {xYwﲶժIZUUY)|WQUTS RK tCFBE5FD}bDb.°$J)ꤒ B:OA%F= NdLRH)SYU~mXYi\%^}5mZag}gEdvҹ؝iĘr~v?Ʀ'rliu5] qyEQqZF%uaB][fgm7gJzQdUG6IXA:QPBYPENQD$bN(("uQFbHхE5P2kdR 9հZ1iaMdBJele!]%o{)E&ahDJpʩd,wZc#f#\ `&9TJ-ėDw\zYiq=qY^]*Mg*+~r`JY 1 1 0W_9 U]g0UQ9J9 /T1?Jk cmXѽ޺:n493҄0<*ӷ݋GD(OGܳnTV\%h7 kDy$ehe4 5C;ɥThYq,!B(,0ˉR)긅`NJF3W᳿@*moToRj7i)nrɅ~ qx-6;xF$E-N@\H&Y EO'cc%R0VTr5 G)Ed+8C<M"d 7r0䉅a%PfG@i1+k+pC$ZA,+)V` wGϡΉ ](򇉬9NOT(fr=T(ksZ&-*L[$GHpP$.D:a\PH@;b zNrj\?Q҅m<-FI? ފ7XE (!C)+q#Pe9j)Ud㐥WźT2MLI*B(J|": 84W':3ӤfS[m(Z)EU!-G-rLtt ]6HmX|ȂV7(!Z`/f+TaFCf!q"=Gpt[| Y5b@/CQ"Ѕ*$1is|VI|zԢ^>L]Ԭ:>㮮s(2QL [ȄH!R M t_萣|9 Gѣ&eU~٬HK 43yoH(I?X19͸ ?7LfWԮ5qp#,vnF+3`yZ/b",Ph^PS@?쌒g yA9M5k\P9YիUpV_5W+}ԑs M졎4% wHC;ݕ~i\ChuK]׳Nxw`*02&]չ9FOֽ-iDxdz *D졠KkOuU)8ǙӔ%njḂ9¦8I&N -,fU)K|rۯS\< [ k+C? at* OgFNw"0 UiӐ @qFWQOኾRTV6$L25_(B&V?L%1(Q@ w03,s?@֣LSMDSdLLev }M1h)-jEK)zXd/6b`(zGf" q"ehC7vvj8؏jЍgF8{(j6jjWj}Vi% %XE %wGx%{8!)g" Y` T בC(Py#!2ix57[-E QRsleF!&V̦4sCs!s-;"!*yrW y!d65Ѓ*%B_a {HY4!h4J Ô!=J=pDS:B14 Qa$X-ruG/DW6z;qPq"[ȏUNs@wjVi[j֍Q(:xa'xuu k['(yS0ITY{ 5i)Ya+ .' 
-b,œ;ttbPC!A&uY G5qg6<!%s煬϶ꬲ#jlpj-vL>2~H>4LCs1ZV2!&|wѯqs04)^LlAM4eBʲ QQ$h} dsOr)t:ZµhhhՈ(t'RZig_)'}Fi:x[צU'm u 0 5u)%x&]Ajk5%]@ jGg ]ty Лz!dPf#s)A{f@8'7ngaR=)iFf:;d#x)K8QNf>W|iSxS AR`"`a ŐO3 EhJ3&H##d{&MmFS` 9MY}XrDJOkdW(h駲dˁ%蘀ɘx'^/:\u\BnZLH{JFPPKFu~VxmzuH j)%Xw$/jQ]\u:*]Ą m+#2w` bܸ2G45Z^Z!DQ!#^#xp@F#`dsovDJlsIlfR_64ZnMvV`PqZUR 2|1L ⼉ԼT)YI 1&1c1|@Yˁ\(47C d\!K9 XHu[Ťe{ Fi6x<]Wux"<[ ++8FM0< /F 0LL@L[^h'}j` 2 Y+`5.M/p մ iz^!sǪ^_ܞ6WsKfsqQ Q v@0_DtR;y4Q Pezmqe~Ueh1lqk1{c4 )*6<& 1GА=FIZs[3@!/XDzY@}זBCv4b]|&"Tvvs3ha݇û:m= MP+| ( ]  2  ]#qGඐٙҦҢi|Lq+X F 0.<27Ƃ#8uОէ 8Q㿓ס  fM [{h\fh  ʠڠˠw ^vX[ jjѠ `gYli78GQ TcLpکpːsZfˋb&QCԯLj6^V1D$JAۗ{qf#qEhh5Hv<|Y,*u!L!!J}Z-LK0 -/FPP== q~. n_tKjI||4W  b TP˥%JC˫3~z NEw.ʨ(K1[Z)Q%,]}SQS0N;iDkuysNVaakVu YavmYˊױY#ݺu3خ]b 3(Į+V9uJs1DVTNKLG"18ݎvsOth}׻70KGNbu]4VCgo6Gvq$ʏ8.#l4fIJ_B\\isɥ(пfpCfDYWgUZTfFkQFg#G3N4b!$R# "r2"#쒜 Hr"LVD4IVaq> ( jQD'("HJc {#2!L!TS?iŤsBZ@J2uTTLrkaaV )OȈ,ʕ0K,h"Khڪ-,<",r;W.F%jL]ֈɉc&7\{̥- 64 bC#YfA 7qCx8渹ӈ;h fqO?#b>+G'|A3f, 5Q?Pi\%sıGnĔI%\!E2I!K.t,AʹL99;'χR@! KZхTO%2藌J@H]#iy@y*|x`B(#B(՜fڸ· \vom?pKܹl"I %E5Ť1hɽ".uE- &"p+& haj6kXl$c6$22cnaD:Ce!"#XG:Hc 9_#"xXu`h\7o!ׂć?TbJDAYho8$&9BR2.׶IdGb:'uZڍO8q@Ȫ'2  zӫ+` l: H%xD]v3"0n@6P">!`2BQPU/ ;[@%#. LX~t7P‚A`w h*ҌAI'Ob)o K)Kg+bU6V#KDڐ6&+Zm^:a-<1vhn?j"l 'NTt 0FIt#<ɢJT!vX+|^׭Yy/!` ~@E=JX-1> ,? [#5  k =ɰg9 X0<ó(Z8=[=0p ˜: p{( +; l/rxQuQ &r/€@zKؿA8D tQRJ'j"6Q/RxHh=8K4J塯]9szR 'ݑ/R)RGT?4Kr>KSu2Äe8U B+hX]8>Cш= J.L[*P]q>AJE-BE/QLh͕Ry1*\q;BI8Ie/$1\şpF28ҬEcG&Px =:NI[<53RVF[ Q =Y_T(P Nt f_xЃZ-hZҋeK95kibfPCH#6BGftlO*E߂Wx؀UόU@8ˌ0VQTH=3L217(+Zqp@| .ڢe#&'8&ˈXZqi.p[s@e/{t* }ʯc)\@?>'Xy= 0͊-_zd9s^_0HRH R VFU#=L|]uXYVݤȈHپ[d%]\SuffÅ2{Uþ S3H3ф L&m >CKιl]99h>ثl4::;F[[e<ŞƄmXFC_G;f^A:K4;C64fTdLnHO0j +W tQmDmO |hA_0X G\TWEd[ R,^/)b`a1:;> @'cy҈ڬ(#`p]Sdtdd詃 0 4E5ʊ>)3;dpR0K\p˕U)Ёvp6nA84.x]s#D8=&޻>2x\CmMU–\Ao>=Gkwd̃>T=>͇9U, 2*UA/蠻nJu>'GӸ5؃ O]9<dO7v `Em8WFO[ 4W@01טL_hFj^FCe13 mΓnN"/Ņ0P͸ CGnfM^l_v<Рo.Z(0(ht-J /T&A\A˂;?7:טTHO+O~d857pFS\1hDmr07km`/1bE֔qY8rcq010XXw{C4%߂{<fÚnīzGlOKDkCГfXlWkd2gaXP}sr$9 Q`^s}f1JJ$ȃ\эȐCsB^mmHR~k X@U,]ѝ)-Z `Rcq8߿,913yxLο>]$DIԧ&OA2Q\ef(T2 O<2W\CfٚPB)%sЩU{"PR-M܂ lQmQkVVթ9@d`"Ğ0!Cߒ ]A`RYZݺiYkj US{2}ZJ[??ھPu?@DPc93mKgPsm"LnO~ے;,whC AJ*̤2hkJ-zF?qsqȜ6M*`*Z?xg7zFPh¥[kiGoM$R!p0b1'ҶM$KdLoV/),TZҖtD+K¶_G΀7cHDN M,v"C&ۨs[фFT9ifff [\z+)L*4vSCiwg0 [*RbA"G&\`Qf0$Ca\%&&0"QRX.G9jNR&E%oap(.[d%+3 U".L U$+RA5ۂJvKf S򔦬^N[P)w}YJ.<+%Q x.+Tl 8&v)DĊ10ul,QWp骜#l:LpF@9D&`s';hb# qqLZZ$=9^䡞 NaC qm '֝W;VO=Voy6Ȩ@CXZr À^R,f,9CFq̈́ɧ&czga<}z, T(@h1L6*uS'ZLٌw( |B^J*+ 2 Ј^ԣ&ob;qxML&.0LII1e" ED693)xW_0a(AvrAG8B $iA"ZK}fHB&RTȰE {d A~, aZDCd aSԺ׾:SBs1q0 qt j >IFYL8e@"> !F5 ӝ/fd/Pd[l3HM5-nu ])i~!l;D-@"uַ9":-]i<Nv+-(<ljaZh35\V#.G&$ g5苪yCH󗏂TޒtLۻX?ֶv qrD &20u1A*RB #q)E%Ŕ"t0/) ,.pXI(KAS2"Ёo%-IKR୞#5q,Ôtli>NI_FMZ*?Q~R}x(eRkfueM!_MC6Aa#}:ԠUAb( <Y `hT#5"Ԝ@%^EcD PP A~ 蟳P=(XųNW]_QXx\ЩOOLoT@:d,EMH%FAML> bNl^540`?HSO"ždjEAĥ% zBW|F'2N [!ȋMȾHZI0ӎЩ!' Y x,WA4I-\I4\g3H-FD'hYTdfaFHMԚ@)l+X ,JƬAtO)J TJdFH]Dbho.MA)*AAD@Z{(Tw"a+Q)A6'ՙa) ^bD V)ʝ A NTh<iƗZ*ip]X>IG!4`,8r%qLr 3<`rBZ:*?lfDN%TDI+A\L iiλ K(ŗ1fڐ`#I(ƘٜrGЌjSPk_lJIo rG PSLY( [BeQg)` 3$9FL#2TB Ot"{2ID(Pw$K%:_0Տ$ hM$RĈJ'k ߦm@ :J6,%߆ XRcXp$@9lKnPO(DAM@[NE.V=ݵXL>mg ψj`fmf2Ʉ`&vmf JK S,CaJjϨƤFff.eaIA(3avf2P 솠hf(@[M=ڱ_J(EAV/$"4bAݤLƞB%FOԌhN2F]D"$oYe}n*xHfhSr&3Ƃtq0OI< 2$Peo"o(t{R5R(+g, CϜm'Dcbdo"96@ʫOC C0զO Zy@{zΝq(d$4pnԺ9Al> OسR,YXIjf4Мj^&)kϔI9}_@S֩.P̤bĥ>ڗHZmƏ V N\DB۳ @[(P- DՒnhM6EYxƖe}nBeS231ɖ0|ƈ Hwtčш6|FԌjJ>I䳡چ hڝDpM+n*l pT:"=c ١+LHb<ިt q,QDD D3Ĭ D ER5eLӚԁ,Ifm@4FYɦ4+$ r,8I8myQݲiE !$rQ"μ&NCdV0 ڊh-*Dz)F.#EdPFjsDAf\IU`6$C֦6(B(7uJvV2 9 @duv[ŌVT3T<23OnfL.j3$7 R͎v94=I->3G3/nH>.t14J)bt,1}.뢬MdHSxBAA80xH|D_D<CHĮ c? DLZuwd\LIH-mN[37[S l-4CIOTE9dlXӁ H[М9͚mN\'0aG ``YE1ڡDxFk6fIXxM jrLo:M(H݈aąYUlbP0 $>I4O@X eDUNZ?Nw[LL&=P@BwOielJJ\A8>V#Q꩷ A>>-Q%<#s pv4^II7%v RI0fI-ijR|`)TTj\SxgciK BpwΘYcVvV?+Hã@4b;UgUQ4yu [TSI8.\c`Ō=;J_uAnuRSLP͐5A](#9$BP\ iГF[Ib> {Knz3?h:Dž:{B,$v(_Kn扌ƕ>RhFLT $d#D%\5}~=_d"HuApy?t{7A:Dpi@=š ̴ "B{J6CҷoT~TJ c_"Y3D1u( K$R%JzTɒMQ=R)3T9$o&dP2ZH! +tQ0LѢ8iucÆ>13Pv .gep g{rTخpڔs9gu@}:\d'JQ|:w_? sM~~?'_Ů!+d0!OBi%WB"-oPs:d/  2D E3q) :PYB,bZP% kG eZRTR(Ce(Tғ-XÎ0 L;h0 Yfe22Z&@j.: k☣++uN I"PON"-P;Ai#N‰08K^[nQc[25_(;*=].bo(C?H(J7]#5j$ (JXK,+r5k tXpx "e\ڋ'?Å . H,)L3@!B.H 2LRMS-6֜^^z5XÙ|`k긳C Y6?YƽYt;zu:*rLBdQP2 qGAEh32qoC!OnW~%!$) KOjGnF+s2Dɤ=nA*D\keC-vǠpQHJ+4R0`T+0r*Y94ZWlPϰAa!Z&( b+, bW0īqArFuF!" h+\ʷ$)2Đ)TwI`R@y0hHeZ/# ec ,8Uiիv&69ԊTf6 Zk]tjtM'uRk) D|^G$X* aIL%x5bBJ(@94eu0Bd cP3 C $P?csd.D!cHNlG⢎uq }GǨi<')Ui(ZS,">FO&S d"@<*yBf _԰o}"oNs?OQ*T$ %u@*XwvCgBFencXA6 F|cXB! WL@ ,T xEUWLG(Uf,YObAR,E8UV FǬAOEFS–@lAW v n0yyy+i Qn,8I6Z'%85ȆjPJt i6fB4g⼩OPTZR %$X$* LYNx !"&T_XȕJ,d^p 4dF ۰.:FT1uBNԌpvB R$T4xvX8$7ή\FDAG;؂' +urg\JSf89 TyFlAe _q*Hd%GU2 Kr5VY9VX` lzf`Tٌ1> XMʷ0}Os+ bcDXE+Z4:d7 H!E+|[rRv|uYKٷjJņ Y*Ȉ溩ΐ-D\!? xWw ];8!5&y >?dZݑ9$WBRPJ<Ʌ*XI쁓p lqvӃNNW$T87dK?6DZčӟJ9P i\laؼ:s[ %0<52R3ȶ:/93:@GjυB ơyB!@q>8ppWň_%$YAD62õu)E9t k fYA9У;U b :,[寥1ddU&Y\P?VH+femHDĀ^"^@[)ݞ $‰J $R%5@,2 @@0%g20Vp 1$dPMMh~F@Ba.ㆤGㄢd $cyVgv^tddRfDA/g^ y{zUV*Zre: 1"RdGFP6jnxd :IzgbIvB0;8V~E~br?<=hzZxlƂ-@9뚐 $S^-c@S ,p9 @H¶4%A*JAH`fOX兼qK6V$Q*Tʡ&Ё^F%&cUb%F[  A@&*V `fbb+v//8%pe fjF 110L2R`6J]qH1X(#( D0Q0P Y*&N뽶$y?&)HB[cRbVd  `0W00aS'[@eNRT4 \$ޑΨ`ܦ25B~&q6'va'Glk-ֆu$E^e:Wh%~ `RJT1"h 6obJ~,/$*-h`"0%Yb,lV69m|v..kt ɐnmgrDަ2g`<F(JA@%_ 0862*v-p2p^h>1P16+М VNa tʹ"t_fFa1!F$)11Xp1n%c>L1 *A.E\FJ2a,Q>@šHLùk0M h$aTMUKUaUM$s1S11 k4lu4L% hXTJ,J`?JG|d%.@ 5?Jd[?BBcLn/pI9Abv袇$,:ه8V5((c8==On *d q,% cʣ@3^Yb,&1v] *+tI)UtN cv~F*CB40^aF M4OGRihx$e fo*:SjY "c$V 2 m *!%%L!_ p%$*A(A (! FY(4gٳ4O$dsZoM6fHJJX5 wC$AVU^@h@@wUYxAzwh1zNKA@vhI>Cbcj4)@V\ũM,#D@ @nldɵ::VSspg:`KF:R(9ևAĖa\ԧ)d춶p)9O,n+cjHRR1ҢbVۖ~gN_@$JF'Ce XP3֙dq2?4wT#υ![-e+0 2ex&"?cjh6 2")D&i62 D"%V^IJb*OkA!FY N=o?HɊ!N$xit^ "F*$o+$ @ :B_6R"@$M+@jcYEWp4|&|h$^yA"!9VA"WaW1A1!zyrD+#*!vYDé6}SCLm=me8 bF`DP@lCR!X Ac3gQ}W":d8usqBuѵ8QNb·dHb̥+nz0x8Ja1Vx>X,'D  :@$ 7Y ".|,0ro@ƶ+tΖ̼z.b8=D))éX@÷!nI42  DUK2^4>$ 'q& .bOxt+AqB?+(iBCbRd I'*%IԲ ".@ .)C$,80XAnƺ9D RyPt0 T9y9ywY!9yyyYVhz<2j2c"6@B"+4,W̦"//`ZbdFȕQ.ZH.bE@c,8+Q:Q8 oQ."eeł$+TlK*C$R̼ %Mb<Աg71w6Fzh.Z bbElF8S KOK 2nyUf0 5(i4ґ*c!IchTgǢ)f(Qm}P.ܙV+ f9Y`e'0e_lb,m"V=c@amy1 )4 mJ5R+!Mh@$[W#蛾WbU#AVyUVW'%1.#&y%B}2fܯ3q,&[u#ōůR^|3v,RW|S Xʹч^q> =VQG!Z\zGyĒ%T@Zg\A@+   ڼ > #bSQsj/rfb1)y|OGAHO<1vh xF#4hsn%}]: c gEtĿ@'R 䤫T :BU] HիVݶXչ:tA+䟎)!_r2$Wg3TdPG%ӧMp!u\!ܿR}'cl&b=(D~BڂJ/T[ƬnjcY6ۘ4b%ʏ[L'@q8E]]OcM C[mS)6c@ж "@ )PX^u5c+XpH@LEGHBESM;qA"큈 2p%.c)@LqB]}9$橨RISGD?56nNOV")OW \TV+)N5e=]nVjUTseaP $ q2b{tk. `&`Q(a؆A6cTKt}~U *0yhW x۝g33i.|'3G2.qL9!?£VY9[9YgM) bٸ)h ε v҉hp>:M s#c]RAS@Uop" $1\uZ `O) '@әd&.9K\b$*T]'IMԂ3j NؕO IIN0Vx²N- >yŸb9p$*AWHKǂp.yIðR!%'KDׂ1%bR|2Ǩ$TȪA $*laUܢ]LA'@@{ C2Ƞ*0\a$3xav=M[OvQ̭m@2s03n~?4' !\ܘq8Qll~p~t"7:RЩutmt`E n[Tb"wuwB J;B`Ntw&Aiв@ ! bhC"fRQ&Jgb>8I \^Joxmz?7M !!,@SBw .{Y +RԽ z4At)@  Xҟ"j?0؇Xk>aD$r@D!IDBY iخ3Th Z5?08 }k&rn 6) n.FIŎc$ڒQ0$Y-! d0F=e_آ.hV`'ғ.؇Bd`*rr "@*@ [L @,c}WL $PJ|"U%R@fDfY?J!>WPX xa1VB @z}ۘ6@IYȲ)gX |B\b 4kn/ ;w :'0@A/B7T8's~E+eE*0>e- K@d"P|Zn̨Eֻ8s`fGEYs&`a zȻ|Pcx/t qhb=b3|d%|%ߢvUƓj8ף,WEӝg9ѳr"jRotE5H㍂c!@.ueL4 'K'Ħ6%DYYy+1$UQ蘆ǼpFjݤJRZϘ="0@r 1 2R%[ R  `mDD+,Ch"a D4T.xPZDEVoB/!oje$71@!$=u""r3b@pz>Qqqarqqm^% ]}q)^: ױuZ'7kF0ss%_E(1q(W0laL p7@ ڐ U7`Ȥ77܄8b?gztiwbMmMX6zw>Q pe#q;"qwywdG dc~yGe"a?qz/-b#&".ctUUU rf9"($w%R/CA\g̃&bT|٧ C/Xo 96U0O0>iVhH%6jEΐO jUZF/<(?qP[%m&W2BBiYEO, Ѐl2( 4 01S2"Wp9A1+.O,,>P%PZ%Ce,j} 2/,FC1vW*b>JzkPr3_:SI*SrP1g8Q'^MP(7`; 򕚨s8@t!9\6k L6e' l#0zszv iS d` (wja7wwYcz(Kx4z.FcdxdK'LVc}by'y(QH ׇe_w:_$U>(q +AB$$) @OiG|[+vG0bZR/Ѓ7JEooB,ES-5 jb@/ j\nFj@ZPpTZSjU)j~/E~E(~S#2"`e!j en4O |%+l{ rNQ0?4-0-`\IEdi솨?/riEb՗=$!1Y0S7R{هa5 ؇a>Ta2H(6Bga7q# pwj`Ժ:wg3`s4A 8ʴu85v[ ʉ6@ɰ @( d^ tjiӬ)IJt:Wb/F`y'0 N}O*bvR;!((Ǎ\ " 2lT"¡hW!" Sp@f>*F`*i[R}71R%Ay:XCBny/?/@"/6\'SJ|[;)y*Bf%fk[b&0ǒ?V ˹Zi&S BlJRV%a)n_F06n+1CSB/gDHBOqrx"6Ot'Q4e([L ɀvlg8Ivv36rHL+!ט4Lɴur`veiCL{Br4K 4a(gHb(Mw *b(KbTcxHdyA\dbPTP)5s0+ KUQ?; xu]UqW6"W&f|gaƷu$H@0 0+s=RU,dZ,r,J,./fE8<:od, o>n <*V$r[pA!ȟZOdȚ&F|ዑR*`LDF[jhl,4Y;g%>yX-t? ;Hx5[<6#۫Jb PLbb$V6|R(6ww6@t&K 45 &@ls /g`guJ B4Iaɗ55+m$wbx@.:0VcIdI+ |i(zPHtoQ3QԻ_LtT_afd1&o=-%S$ȏW|.[C7Q0[`&8,wl ` o>B?I<ɕ|ˬɄ5ڃ)Y>AjVo2j |f-QEF yP*QvM3СHv ܽQ' tk zp(aMdMbJ;@Jʑ {tGcר3T 5ʱ8=L>Az I8Qiy04wNb' W6H e%d&:="'-+λ? kAB {]b1F21U Fҕ@Ta&E2A]B~RA&DR>1`!(,,’I)PBj[,nZ,.PU5],MZojZ~헣e9Qe9a:bbQ¡2- oکڟF# +JB1G], !`Rf23> 4J4v њw(tb;SaMjW`%dyImgpcLF1Ѭё6Aϟ~ JT&`xQ`"'2;4 IY3'Kv xF.$;uPe>RNcD!5:R;y>H#!1#u9zT%HC*᳒0N$ͅG WRd1'1l`!r_cpNBo}1oIZg }jh+,ʆRP>;Xƿ@X^-Zn'9tjnOE+y%N>5R>~~Y$I}*eyEΠ%6r#hEGo<{$(Љ@Wt+eBR+dpq׭JUU)٭~,;vwRɓ)Y#FLQ2}I3$HYɏ40cֆ!J&EH5-*PU1D! 2 @&XA?0PH/"R+VY@0DG+t\qb LR/_{%ޒ%˔n)Zuŋ: 16lRKKxߥzn2B q89q 2zjONJRۛxyчCreAGhB!B} ;FD@haPl@P .!H+x')Ҕ'h8T Y*_p&(`j.L1 %(` 7EP#Q]N7S'gt@>t?9931Ì,8=aEgg@_OWY'0p:^yg1C)# %<"Ll-2(*[*dLRi&sϕIc]1n $;@kp7 } C )*6ڈN_ .XQ2~hC_fd#${?C!*D~/j31) V Ns=dP`("ڹ/bf 4\0aLf[mbӡ03.za_ 3gɦ*AOk`[gjH)&!ģ@q9ZA/h/"Nrʘ-jݪ<0hW868VCgP9O?'"$TDT ,^'$0Q@a0khM꩏N=(= -LD|}cUuq4%0@UaU>D`OuBXQ TaB{8ؙo 8@u3akgENTBˆP->)J܅.t&FK@|D ۗ0ŊFҐ}L]bP(&ue_Fї *X cc!-Hv`]^x2Ȝu0Z+24wfA;{]loY5qtEi#J wJ"pF! U]L|8#OPS7/:L*]@PXj70z v&jEKnȭPiЈu\vE0SE4D$JVQLaQlW]K1L,?.u: ztf@E[]>ݾ2JTLtfbJeF0:P8yVENOtr z=[qwsfc^,jy`Q _<:/B1 "0dlD# m*S$;K7!>F<`_ J(G'gD# D/ò@}iޙ܈=o TQHB$A9K8_e] Aq@a9 Er#^h`Lhtmo,aJL=D%$v( P^}u&}ڮv1(Dk䈂X`:AP:NY@rFwc,W1M,q 30ѕ-ɐb P&I'i  2N4[)4 hYr 븎8 5X_57c+0&h)*4\^1yP#i'989C3HM!@ܹ!S/jX33;بFD0iKLػD"E2Y<# 2p/py &`C il@ 5":>U#a68#~ӹ+Pt0I9h9j2ÁzBNl@Llq0(pI Š RXR$^DؔML Jt DJ ?5@-8ۂJ!\-0ۡd؃͢@ 0^A8@<4AAhYq4'LXgmkC@HtL?ÑL@1LDB ;;Dd;Ђ[H2(A$H+Da)a28ʳ0B2Zd?SH,=2=LPKƊ4JF@.P@itۣTK5Fmi[H壾0O@ SG%Z@Ȅ(` ߪ! ʎm˂nj!Ȍ|A;4P NˆB?-)-4 RZڙQLcp*a01 ,ڥ<&2QxJ!XB6JTX7 ;!P?%S4%=4K`1Nɏ!1i#L0ҎM%MMѕ!-&tR zZ{qLVL' B /^E$2-G"D$@D1H2+J;[G3<ņKND3P b!Apԁ%+$_1,%)[us1*=!J_8S?S7S 2?=?S7A5eEEA۱zZ[)fi]I I0 ߥ-jfz2^mUW\L^EЂhh;jȁ(_h%//KčĽI%;BY6)8ٲ';Xt2Q贂D^A!lDΉM4nQ琍=Wf "clf\Mc gD BO%ˆX 蠈OX٨> 2=0ݏȄLL`bA5]⩙b*: i[ڭ,юQ}&i \m*!:&[}LT\j #6Cgr @K0@ə@9hJ?:]>ܰS)"E% n佽9D޻e3ef]iܢ0)|LȜË$C3n?˧q1^U!h|.ӌX#D$DDl2QR;Il{E935 q%  &܀QiϰW=mL.xXƤa[ i`"$̌ akROύaڿi c\,*b/b*q TKj@Aڑlh I "[MKǹrFR9Fvd䵥~xUqgRQx*T$J/'-4SBTn,We|@hKeB]`8~BHHmo) WZ!C Ԩh֯[{_DtTR梩H&[" ԝS&O:]Pq8ӧLd$CfL.2o"Sj&S"PASHx rȑHHX?(!8QB!8. ]P\G:6ԇfy-8p(E&.U91ǘBBfaA\9`P_/ ~qgj I}G"Wq8%Hʑbx?GSNH sD&Iȣ#FNnP"N^.Q3.G"bŰ#ZbH&((|?`Hҵ/M6M:ENK#xa, tO>cHgMP H2,&BH *k)|qv)2dV^7r$㧟'O9VJ{^p='Wu)f{C D&p#'?qph]q:\t`x}xxw6y\}?j pbrfO2}|E*(\siSwES8NZd}$mDRx?k)"r$kRd+~!t&IEˮ /G s6njп8~vp&X%('7P;~Ib) N E rŨBESYnGbnT>(uyD. ")HJ QBb hmd+т-\+?n\,H p!$AP8`i"Ԑ( A# (c X$a `(bs .~^2A8PqQQ 5m'+T(C*Sفx 0ջdJ!=.8djLš: ]m4U<ԱxsTڦ,?{D8eb@{L Q>@| G!"qSR*H\9 A@TFY"Lis$DB?q9@KYh2A FʥE8Z)Z 2ɒvGId+()Hx4 2? j,lRBiD (7HP%'D9BH iȇBppNPTGtUS#)NOPDXzX'JZ5J\Caq 8v#] yF EP-WD7ҕLj1">$dr@Ь4`>Y B㐧[BaPEHG1L}0Ěf5u(cT{0z3]ng@bTC<Pna[bCY`8-4i=g֩2r{lSq+dӛ 07"$5YC(e e  $P9$0" OבDsdqX"t1 l&V[JhZ0BP-g9%~ac>%AtIq򓍌`(d%[a_E5@l|IvX iȰM&24%N'nIČnt{_Als΂؈Fm4;p;#qڌ!p c'Yv xϩڰ^ To}C%Jο.p*A?DLN_q=9 80nU# \GAud ]*(b*?6buxX%S r$H wa-ʥN8Bk7cN~Дi4lїw!D\Q~1i%/H0< IhvFDorg#%6.OBGf,ի(H깱nZ ޴"`%YE$? B]\F '0k ޟKAa]qe*Vd7͞BKHs Sx\mANEpqEpIʝITlDM` `Nn`MA 9F,L@ҁ< 4 7ύ zOs@/H/ ,~G؁IFGm ωNI&J}[E}PYY:q _YiCa h]h̔ XA<"ã~_p@Z@f ?4۰\PJ|JVo-bʢFM`" 7Nu>ITT̂J[@$VOmd'\Ņ!Eې~A/B}2F<G~lj`PHAOIN6e];UՍX;˾[;Um֩>EcôLJ Bf"B6PLb%t %ʪO<Mۼ$Tզ% +0&n^ުb-T#}R\s"ɐK=E|HF\PFXAFdu](d7cBgŧU#]]ݕ;?J_aFڬaM̄P@I;Iz$lH`A 1`Q^J$vI'Tl1@ G K$X"D ̟)JKԺqSʏ$d|[ <bOږ!җ[. 0ؗ: /k@Fp^% P _e ]P) YB\$$Bb J;9<)(SDdkt&̄FqϘgAqJ6YKXYmbO&O n&0++]+FΤr^%XǨi]ԖmOu2CDĩ Glnna(dѧ@]Z9c$D; #caU] PSZ)HC %^0* SU -1 T 41<-T ))fKJP1帰=T` R` VKHVC.bεpHeԒzd%) `55Td 84Lj);)̦*¦km(Ar*AۧZEYa#E羫%xLa]Oz1^ȏ6+l訪 A3Cn?`7 RҔ$JIit ) )W}FYԯ`0㱐>CPױgBWp8_CG?Kd#qL|5<(5I@S,H(Fҁ8‰C !N7m&8H.DՍuLIC Ѯ'#HEpnVokflJf@J ?Ү\?TDIJ|`nɑ1@qN-@?8JMNbq h*2y b$q( d,N8! A_/)snBފM&_x cI.,50EgtFSpwtGĸ Q8Qhb oM5VtLp>TS uB0A(8̈Q?mku*_U_"~(ڝP ZJ>T誆8SoXCxD0Kb` v`6Z繜s`ϛ%֐~/a~$BILE"ʆ"LI!ʥZ HVQ]2{l۶ab:O L۟[uRL/u77|4ځSJJ#qo^o BHPI<y_fIqzI]TDFi.& OL]wمܯ-{َ$%Y #0Dn;b8FKlp^]0G˄ 84M);a Y>XhķWGȒĚg6DBAȰ+CmdM$ o}mؒY c+1UJKN7D3ua9ۛ6vRv/[E"V#N\ي᤿tHd'T1B|ŶZX[Q#V1NubNI9,Ki`ό&Y ?uWR{7{=?tZN"F8Ì @#9;n7qޔ^(}$vA^,BF :>V=5Ya [—c=*]#@4?rjFH &pS'Hd `Gw]If !p3@O}%Ly_V8sfͮ!"vt3O"*lq/,ܺ}^Xnjq/n-ەӂD+,1ir/y?B&="ȉ}ʕ)W:Ow `s"<7# @C.J.{+P|ѧVG+gNe)9f*x0K )")8@(D)- ݲČ #Vޣn'3jT}p(ժ"Xe_"SgïcL'5r=YXU4)3edlr8- qc"R&r@ URo qd~nʐ l+ԟ;ع.PRt@+ aNs"d2F=;y"%p28?ph@ Xɪ"F0"o~GS 4Iwv3Ɍ  (-GK Px? 7~\=撔4'J\X dq! %Vk@K ٓ.NGBHʒp$j kkAbbl] tv2Nf"B,$c\ w8Ej]<9{@#4E :ŸJ[H9.*f.E+@me'Z!+3J+,}h5X%[ݛLH/ zi1%k9̍tдƣ`{ 0 ()d@ @5A6k!? 9YkH$8b GBW5d{Drю^v&FkLRg1SS!?KP@ &#'G෠(kЃ;%jvե|\<`@(M!hRЬu !]Ws\J3(1|Gyp⒅)4@QfHh?Hcz1.L.t1肚u! ;We>xi'pbpLIb) @~*+ J@@Bx'x > )"V~ZlL^&^eZZ @?0bc ?^ f~mN N4h@.܅,Ąp,)ko324Le6&o6F8z d5DQ9IAeh2-'b>3&`eb;Khj&D'‚J(e+libzDc1Z|((H E6]spsr$R\ WbH 'jpOqHfq^|=gJJA$0Ȅ'n>nMD*n;)#K"Df& *S`S!0 .jP~. ! 0C XZ?Nb#@,,a,"{BnʬEN.A"N(+ Tj0}LM#=D*bF'O7J>!4 F"ijOeĘ Q`&,^b,/'&c1C1" \%ɤ/{xEم:fEMEzŢ@$ƌS P*$`C+*na>raL>yĤwn%V|{8bn }T i(  B)$k=>g). 9"li4,!j ˒,aL~ꠀ[R3[R P늢0[[8O(6 簰,$1!ʨDD; 0UlOsdćC֌&0d`~$\YC~2k҂7OE'pp긥(0&(l&@ :'/l[0<]J(ݒ fd^T)۬@1-^7j6]EpJLMs͚*r$tn& a!VT &EBD=HLdo#I#/!Ab8nLnDQ7^G0Hg f$~{ υ=.=R^3Z?׾ԲR LAɪ2P̎NL넌/ե릌POn\m>4Bbbh;RmMDS/87 0UT!iW%Ԭpoֺ=. 4:%V1,pЁ,n'u2$'t#l*H p?uYM\˒[}[zI5]^^ [lOD>s*JBnZa tB L(,A0HC?rDKd=#WLL CK DlT 0SvV 6!~4 s(GVТE윳d JKjsbhJy+ A-mmV\I_Joem)%L,LYm [u,=]-~$(uG&C(8#L0s1r?>r@s17 XF]UԲl+^U=hZ7J OZ _>=w$@FJ(E)BpȬP ׎ uVʮ\|ZsԠ-%3. 閃eʺ|]ӳJ6 ]=P|W'DEF«7D/)#L"MdPGk%W"&n]!H W`AK'8Pn6FY{0%P:pAagv"rxuxT~ ^a?(…ojZl?z LĖyX{dM۲Ԃe2ܰR֫Wϔ<HZCmʀ3fXACg,54 d YC9N6h&F:];&GRdhb3^PabL~%p[@o2[0v*ҩ즕,Z4h@nLO/(N)-(||ٜշY_(wJ:'a:EJ ot7dB۽9uy 8VH!AIzAeOe=xHEA|L"{g ;1rDy3T5FTU]._V5_#=WI{ '^.ˈ*#.!lZ Ͷ[t;ս%, %-mشE\E̾$?N\+G $EtZD.Fd8$C&DKɽ+!aWVH!.M`EbѩL<˟-BNMCp6%Znp@ p8,s DaVnkv] +'(Iw w|j)-ŚڢF4]ȝlM)ɶ-Xʹzƒ؂얥IO3Қ~fe8P88|`22!`<7sr# -q-DM2 vVc%9UgDѳ8=pN"Z}\Ε̪,Ҳ? uԭ-?ȱ̲,)?A -l?ثPZ_I^_}}MI$qk.HݚBf}f%/ȄAE{"'.6˄LmLB[KD%CQHZ^xsV A\! s?ƿ'Oh(zA?E>R"b8R#HK䒏JLd %"(#H3+4%WUSicF(| ѵ?L%H ȑ'kHVPb92 йsd5&?*$SYʿ@'ĵXB+ &F806eJ IgL(% .4?ͧ+`N5^uUMe*P0 G0~LkLT(RL+f< `JhF@+wGRtEɄTTBt ]) pu BX@ ) A2Ecl`LwHN҇A!G EY,-O1OdDqPQJ)+ `_ t~e NdqBO$Fh48|jDs)DA@ P4 ,`4DjtP?XQ-DҮQ M;tPBQ4TIAJKQ1XމەFV"EQ\G H&%6(XeL /KuiFikbB8tB20r7 +np 'BH aVQEO^|Fd-U[QEj5GzFq {f˗ELhIᲲ"B>1GLEm4DOpU3ޅ='?!211Nq9!dDb1j@B)b D9@){xgS᧟'8a  $H$2C9iZi4j饞:4Uا]?wD)@!<1KSYOX,R+t 6቎bx\c[@cwb {KA=002 (/_7?DHB"EHFCb;&±夆 s<2d 0@g9đVT 9N,d}ZWp*ApA:A9PSN?ݏ%dBdo,T:i4$o4y=!Aj>dr H67_2XA`F90 SJF56˅"][99̊'5OLm3M XBYZȞg uxRҼEY{ȧ! #SI(M34Dy$&!tִ?р?Q&J }kO0~rK]>ɗ6 u(akK؍n:ox|K`I[.Pa%$ysZB퉋yj9o~y*Ү1uo'#pG(M/Qdp?4Ia!ǀCK<#74!76}F@ *\2 rr1w/6T!tRfQsC!eBe/zatHTo\Z\FPw!"Qug EpfUM􃾁vqrdqg3rW1P .PP"JX4p5bH#I ZQO,Q>6&Uo U j~~}ZPA!PGQ }9C(c{m' :::p;G^"<ŧLKt9"lg( `1 Ah}p}}_)2oE ԰O"GJyf#p  UE"5,+,HMqqR--+QK ΰ Q77A[i%uq/{ADc4:7+p}@/Yt6(%؄Ac#1cjAdv>fBF%KevRhv1Q*18a"" 2!~yyrH*+Ieؘ hIx(~YX}Hp47HhFKHZ @2 3:Չe{c]&vRPq&m"9MLʳe[X\rp}pB(=}s(=Ԁ9OW~_^P0#_ K6k3!` V ]pWi醊HaBY-xRDK8,<1@X,>c,GJSh`rEQ3c*Wb]BbewvCXxU(SG#4vJY,/u"3T447uYTZ\4y+y ?io)&I4V*vs8%4fQG"$fI9me|~2&sltMc3-PND(9c?1qAHS>G%T6+q"pFR,"K3 ޺ +ݪ #gniL#s?P T`&7dMGcZU*id1uD);A"@Z)ftuy.uf$4A1; @Qݡ7#R1DHdkRbYLqx5e㤧~5z+d2>OWq8L5y8,+WkQA8%$O9I%'s'wr;S;9]v9xk^y}mx  xn2Ro>Z3aZ8x%5G֬>RR#%&FaYqGzĻ4qdXAwha0#ߪΐ# enBsA&2D"8NpN,;B<Kf7݁7BgywF[FNNmN$1gW1Uha8S^!Rwb=Wn'G`l7F4ᱭƬhYwRzdט6RI&(yIO#i#aU㳥 F-H]Z9]:^C'W%q Ɖz9˃qN69j+1sl?rǻB^0> P#p)IӨI{Y]Sz.QHE5a( 6 uID,Xt59b)=B8͛#ySiQl H?i& 1]47/'4(yutH(0WJ*znxE<5Ay5A1O|M98ylM}L|ݴL3()k} kpAdžc{?fm3\A5px5؉ JHG؍paY5 ćOÉY沈Z\ Bׇ$KLԶL]DXMM}4EY(|vi(ԋys@pNk=\0Vs PHPϝ#jHox9|^a':-6zQ@:,׊$խӲ-Na5^ږ:=ƶ) ZXS( >9uhxVBlumC4P3p>a *Iέ[g53²9#hv#*>18[a =!6!~J3QT~oA_Q>_N~OOXʖJl-!.aAY8bF?AY" :BH'*xBb -$ " .b0}7}sL3]H^pSQQ@QA$(CoI%P WA5̢5[ahTmsF#k,io/ৈ.nb {Dly5+Qg̖eϦMCa Ek5_+R9j"5^p)…D ܹ+ X 'So?] t,-@O N=ZS4LQ^y&(0A&HDn$Q@I<2S0Dx"⩗ZTE5{*8P#(t \>+HJ*}T#ֆT `|rE2NEEh43|A%.T F' <3F$ SAGX`]}4PA3A ]x ÅS@S+.CՔbEiY[ŒZYn2Ž#XJTEt2o*Z3g?}A kgbgWڦ.H!SSLy|"=Al 4XK99)yޘ0%l߮3g=r8|⃉piE Soyk\CyNf0C0qLt0r mX'EդsǧhR{SvoD{#r<%B}8E)yZ)D)P XOO^u%7 ޣ!R+r^J:yKW>$(HD:1 '0Phڴ+ҠR} 12< P00L]e*CCy2 Ja `Ha+XָE7]u:nn&!QKf+Rg$⠝b B%S.2H9˱drLDem?OϐH k r`Oy1x\A&r-Ɓ"༚],8mY(01Q1s#ć0Z嵚}l~Q_t^hmO5Bc9˒D$OmJ+T=^+@p P+ $ f𫤶-0Cv%}w| F@B gu,'ΎsO*ed$#,DjB.NUeuqʦhXQU%+25=*#D5A#Iڐ;jd(0Q%V(`%iP q6c+ #Ϊ Rhaو6x3'nE'pԁGpphY|Ȗ-: (R  )?vۦE?TY'K kH4ӓqr y8;1p$kda#ă+fhlA /:z|S$ :3+B(l '| 麛 BBZ!P C9R X Ors20ip"zr ?8FjijK<NS8W"4ɜT i%\3f4.MZ|hN9mΈl G{,l |,84,R4qX4]Ў`x 3 qBFQH0>H=yCݙM;39k ;z-0ʂzA#],<>藠*2(s3 *yB2',+슫 2'}'uH;aҿXYz π ӑN-@a`?L>#9u*?2A-J ȦSL\E;C= q/w8 $Z5%ے& 5[aeUⴍ!Z%q)X>hlN A?r,ROnO*O0qVn Fn1'&Y/ 0HWjz 8q0}RT)تKα5K#> t նzLRQNa%:CzɝW2Qh*%›J Ⱥq#QJ&94ЂE9/:MT,$xp;}q8} MTcYA ȝA: *!yuaB $0aY{(R`RAbuCL˲0 4%%ơuc# O=}<_LRM#98˳4cL4.R9$8~ɐΑk㠙I>ś #<#W! дȵ$Hvʒ@ag 9<Ŏ ]=R(,UH^ H^o^̈́=W[V\~ '@6)/Yl}mH|}'/|]@@+cEzX 7u.e-I1U<Ӝ!z*`} pd"y>a"tA ^R9a'B!a~!JaI 쩴߬WMb 6&O8j#A+X8ƽ>ʣ 95۱\ricrH@jr*==Qxg?%cd=#651`%-V;Ҡ"<>c񙉝h +3p-"3Gl^K ޿ nYG[e]^=(OȄZ.oMm^c&H# ;BAa:J x(Up+sZ‡k!vi4!(+i4+_-iBkfA$B*"AZ'&qjqbA9fF>P)D9Υ𣽮FJZ%.d]b(ݿ+0{|G?ǿ2#,kЖs8ӎ^VWBqmMCQ@TjPW_Da=)kBgVmS!Z#S 㛫΀E$y%`© /u) )ҧ :+R}pf ZR/-`J +k+c*ܑ*"OdiyXqqPۣи 0/ABz7Q/vr2N)0+&@ῆ^W+Bt!ą| "E4 H*Q@e ,@!͚6oF0'% }ShC(Fըq+3 :t%ο8@#׆T:q AGe9 'S wC TRп+W8[5 &S``#Msh/^FYuU8}߈=~>i0S` aez. 1:a}. POX&}=ɧA"JK5? 6!l*,σ&6aR bZ!+jxbC Fhr(#֠`C րF`5,eL+D"jB -?-qė LF!`QD'Qd"0e5hOSP ,o~jB Q:P$ (  tBwtu=` 'C.IKFhj?*)g g >Eu^]Cu4L.ש+QBTyԫPn_Q(L<SN@UhKgj11,YhK .B]!5 kX#/ +C⠽`!f9+ `Fð4nLPc6 mvD YpB`s5?ujt0|!9x0"|$ YG!s] qMof2R$!_" E|FIG(or#;TR"+)"*%LM\4w< ȑLv&*hQP0(9H j ҐJ"M|SEiuzVU'>ӧc<¤8Zb=+=beq+Qz`-nX'' ˒. ~NiHA- GQ40G`J@:?2k02) su0'8X86IG2^gHc62ш-d+\M4CQhIbSPrtCMC*j%/Y}ZU jyDO6AR) %$YG!X6dMtc5gjk&7k1)ca955͛0O~BBUNz͕S_ռW@is.֗{6)KgNؤtI`*V"Ƽe 9J.0! ?xǜp'0S\EvirC. 5IgFv6]m@ Ј]o gS|Z]N(9[4f!X?[uE!j7ymCwddoW8BzMCdݐήo$&!Y!цCB-"р :DI R\LFdM ¥DuBhK ot6iNA f)$@Q pM5 %4֋$a;eSs /P*g_{᳧ z&.PMYI,a$"cR@ CMqZR#mcZc;7q. ΘOԦ4GIL,pahP*aXғ$({;˸!۲,oNpc1 tN3)ЉR PCI}0nrk!3͒u 5ٵM:R[ި ni˯:4+[nHAbspy2{w2Nl͡]N|I BLd̲RxAt"f2EޮrzȑIT͓!$:xߦC7+X<~W}sx@cqH8C3 MXaqDyȁvIXXbx` L '\:A8C-}F$UhtL!nƕ5Ĥߤ4 FlnY@$(tWm ב CH+E8|XLt]^]nQ9;919k%CM!Ѝfy} DTHoHVH!YeQRga"YޡŚabMs DtLLE aDZ΢ġ,FV1131}܎ SӤ9D,6:JD;WٽӾ=Af\5KA҃81\:EBRuXyѝvdɛpmIްy -иM4C L: ]  ͉̒eLBF> qL5M,,Yg0ݗ%) U9!f@!4%l o}a^=S ^u1I"Uީ amt  TT d&al ڍ%F"PD1cч~IqL*+We50_.6QMN,o<ʢqN0%#2FaW PJEQqss=lo2ſn =O(ȭD;> +S{ͼ x#]y}dY丰 :?p:?**L 8: 0CC&sգLr -F.RшN(S-m9y1ǧ ̟uC{!{AJ}Mt9mej-g[Di!VmNeju-N"!em'I<c- M*s]Y9「pdUClhk pYv(f("Ĥ&Cȗ |՛:M%p2mW9ۑ%nڟ6jq[Rc:ɛa R H|y^"I 787$'!C}8L7p> (08k,:\H PC$4EhaӆrT Ɨy A0 lML$O+ rQ@V(gemKV΢Q"Q ) @*ھ䊟BIУ )fSߑ 5Wp*7)NL MȊ`GIy QXA$L,UkCIC7@C( \%49?CC\Á&0:oHBWEtCCFBFD/IJLHJƇ^U:Tq,nf9֜U 8l~ |^WHb4 ߈H0v)[Zؼe_zZ"ѡa-pHZ⬫EH%^ W:Vn(L rDf\B"4q֍R1N +y2@N# O.8Q|O s9g<XQ<lk&OQ6`$(?A&+Z&*'p(A(? C?54D Î0g^5(8P>:XrWM@$tWuUB,xd3 fLJh$ cPJ6 T:DZAʤ G.rLH)}lZ:^mجp*-[npmt16ĨFV)[F;Kq+-3q⍃Lm(5jV%-Èa[ qV.jtD/1,Io nhOKw13MJi YF@p6__rptb c)IP a6Tgѱ# [H $x\"L/Sr$8pMD3+nvD47D(| ~/8s:?s$v ).i=Od-AsH"ąҢY{׆0f!ڧ[+}c~LDLaH GRoKe*RF-ҍM/-l m)Ooe1 C!ӊ^Qm Rm[Ԃ NKFYbxaո0x,rLb,(Nih{Wj@< 2*ځ(J`xَ`Mv9)n7>8'mOaDBaCd%W9p+9 ȧvCD?<2O:oG?pB끊CC*|v/{/94@C<6:>d>IhRsTWM\U;!1bJɼ5%+ܑiHJ_,HzZsM.mЄjh FҾ{Ho酇 xemW4k쐅kFkD0f0S9&gemǿc|RL{PZpH>;4WMd8Fk̆[[sjCd;4ސIW3y[s2-A  8ែ `&6D$e)YtK@L9ggИ4 @ Ep_#1GX5@79R Gضm7pvAK]Bx2<":N98đCSS/T E4 HzGF W9.j‚ ^(*$iK<)A/o~ ~ٲ H#߿ D?/ 4@D0AP;#䋏P@DPhFTl[Œ(qDQg1y'IGpZ˕K-\-Bzn$,pL’M|͋vijmt袇!9¨8|t$|*WrN SIP} 'bH z+"B璮)%`(,n(c9R‴a-"@ɇ!58Y0n6%(@"8H03p^iA0L06IM!$B:aG6$ 'H" )o?:B Ȥ87+d\JS`,K9ܕ,"t2JSŴd';nQZHz ED!'E"A+MǖGD?Sd 2€ij r1960c\AAh (H9ʑk\3?aup` XlR($$#R TL>TC"h7 jSF"jJ%Ԫر9"Jʺ,CZd,e1&h\[zE=^Cyƴ٣aQS"ʩA"S2˪i;#g'RrLQ|RuȞ"R2DF ;ͱ5] G4pfv#&LӦd4!MbbPD8 p _ Q_{3a!# ? xpN_q$?,#nx_(8`DM0рiͪbzƘnvWEeD!I""ě!)z);h~d& M[D@je$gD[]X9DE#b~#Yg9=KbZd-Qif'8-q";vc8^sLkԎRZRm[S$btO7ehRd:ݬL2Yx:-tb$ !U׳USp-s,7(Y `(Y?( HLpg=JΌ3WAqV0t;^%QXg#$ejlv^Msf\$b 0Bfũf4S4JDjz%Ȋi iʱ܎if?nDfHnDf%kzd$̏(B$ 9Bi|%rЂ 8.c ׀'TRX+>,J> %D$b *#d$<鸎+ĄN>>`K/&ϥP5,7XP"s$$hdDrKwL!Nl1ԃ=xHlʚP|˖ ҉Fir@fj&J*Dgw$1;4$* @dIjc0Bb>@(躌^B #%i8~濾脔J>upڱ#!ZG6µ9|A VJΧЗqp:9:#qsL$r`DxжtBf%idlbeCah8B.m׋#/B L*s2W63,3\X lM5Y,aa/ #3 #1 E``/L!5@ƃ 'Ɋ=CQ"'8|' & iJ.-p#,1KXK )/fi%p%#`P<"JK@s*GxF x w@JKXFwFJO(OxEʴ'^^AnC`Ƨۚ"bq`2O4a`\l4+2Qb\,a3XRq4`/޶qo\-$NFb"aP7-GH q*#eFְP`  `#0<9VPj͋ӅTS*ϺZ#cGxGG4@Dij$B 2%fR&at& E0>&}rDODMcL4:eLlMg~ Q͔Pȴ pRдFB ܥAMMwx#+m9^HL wFU#HE!a&y'&2@e+KlS ^%MP;@[#QC5%O }}%%4%Yb6]$U o*".5aZ NdH#eW @:SR$OFv:b;Bf^*pP<g\ L$sAwdR9$z@o.Fkux9Fy\\;&dh%1$| g񃑔 S"e vO%P5Q9n2X V/2̠&x3c4-Epk~:p,RŬ5rB :775%HWaW`WW~%=+`eji8+cٙ8FgYBe ub}eի-bvXb +`Z"<+j6fG8Tq%J/e K1&9( w G##| ,( mZ3g%,ا!AN#a^%+vqXl h#l O")KtLDEoP"%(4߽+M_hnY|?ܧe4V6 +v.rBL1"@h\ZoBX Rj5ȑ%s97aȄu0)  P`?*=@!2(` CBDTʖ,{AC勛3 xѡO'%VDH"ыH ^`@O!V:/SQW`h+؈dn*V,ijhEʍ"u|FaƎ`jR8Qk:߀$Cb\/JH/]L2n0` ¿=Y 3d":d_D䒠|ikIQ k(P?ٖ?HoC0 @x a?&Q"(p"z&* (0`^D0^DC?>8d4b(&b7TsQ@DI LBa~> Q CDD`gIBDxÚ\m8Zm&Dّ9b hFA&ѭnrC!{dH=G$/AKnrF[Dx%ebD$h8sh"!NiMCP5{+&%(p0uD7@S6HPJlƉT 4}G;0"ȇ+OҾ~ܟ\ܗlᅚK B@[}_6Yd HPjk1u >3j V0 daZP@b0m B+EJƸc]ruEC݆=PmQoԧ6=dz3"]5)E y/35Gw>e. N@BnzS$<ApBBbbIHZ2o>Bd8aMq)599tPA+"Eis3HB\{ ެ0&! Nʙ~ 5K/bukEp׻AD 9q/hg B06ѡ6Ā"Ʃs㝔}MCrՎGPHo mlК-eRNtM! m* Xyd9\Ӏ2䬎A)-[x"&J/pzd+H!:2ώ&#M 5R"R%crCxjZ2R:h+uxzqQ&R N ìOBIl"TE˼{-N_W-KfQ.Ԃ@#P0 KrD!"G!b,)'b BD@1"r-bƑas1s.6g3dj7M' b53}d3a6EW8o&SI$nP @xu]'v@uFK3y.SJbR68]wqdz2LxD{w~6yw)2x>6'/C$X#3It$ ut 0bIr "8S9U!OjX2h2e;1LdW}=t52+c(RL/N|"M'(Lu'q="(wRS>7On^ nR,EMg~@Qq.P| T.~.!J0C)s%Wb.r:v2,@1)W.56c- xCNLf&dT5!#rt28tSwnWgtr39D1#p#E(#wE#@2Ux&98F#5Dt&v$EHh3HKWTFYIJTYDq#uu>(#GEziP 90jD0hLM| r0mi xĄ[Q8X)6VyYt^^^^R?}bQfqȸi_'_BPG-Qٍ@x|!@ D0CB@,br(qs50SS-ԏЩC0aA7g}M! "fq QTY&H"(h"MxY$$)I1`jX{v6QJN{'݁9i9{DhC#lgyg"%8|wmvEVXkxZy#u#9@h mwQ7pE[z$ƕ1La{Nmt[mIF0HLшȗDM{c0+]H^H &S}oQ,n6c!O,_w!qIPR)xA.2aZGp'h),wxr8mRә*!;c:YJ"5,"3ݹg`5tCs2(93PeU&MR#$Z2cH"JM8"7y"n9SCXg2 w ƒz"XVYz4>RYR uHYM hJVY] zp%'A>*GL{rIrtidmt0|V1}RԋB-",j?kA>~ -֢v`;,Ӹ  $Q@ QE:d2b*!Q+䎜c H7_2# @dЪj˒Syx$JD7yga3+iyMַ: &#"IU82HdgFvE1!Ӡy$t"HފwW2&\yhK&y)Ji AYwJX!;7A3X_>1ƾpOpo1pj_..'.N@ W. ؂5.9 Ѱa aȱ1j50 橸-DGp惜TxGUD:7#!28"ASշ;,-Ie!&ĚiPJ"SRJ6I\%yDy4-y2YgCEQ¹;8Wxc]\ 7mU9#JQyvSWź zh"zV+H(ֻ]MOmSQB{ 7}H _*,!Xqrb>Z^t~t*F%Pu6Oro|-n*<hüa2qzE.>!i!iC6B0!fA19urVeĪ z푫93ttkeOdIiwN֝<|gyDy}7*b#FH8 ^ AESEd z[# hњ9aYDb蕷 Y(yTu᪣Wi|" 9svz#q FXҺX91[ALws1XmĖKsq]L>T^H>n4k"侲ܾy~E>+a+Q8`1д`>CBV4Zcrr*dirFUJ$q6 !iQ&UEIwgѷL6FL5C8"$mHT6/2+i6Z,J<؍9zcgff5^ sO[~tp?z<̂R~+b>$O?RPhB ,!23A ABxŎ #\sa(BmJɝ 6'Ӡd3jw&}{խd-yws+֝2"EY652"(mu"1בTd]`^E7!s a7 !Aӓ$9ĎhxnEMAӾ³܎(_:>nnВ,l6.8'-%/U][NUKNAμarc!vRV$9VSW^0$-浕wMƅ|wD'#uEķݑ<d]T8iz!zpgOPW/oe9I̷jbW /=apcј3ݓrG2nq ӒyK.#.!93rE]Ti#F@J`V{zABߣ/L5h])Eܾ+c]>a>y^i"!>y}}-OWjO!?)a/Q@> yNDp!͖z'N]!g⹷n7TED;|9ܷqÁ@8W ,d1! ,k?P9n䣱?%II@ )?Yf={& BS X$rƟ>FJ7* >x)Abn/FFr܍rg\Ғ9nVE8\NnaAV'#/Fymx@(-8\3$4h $ nb2܈IDqo,z=T jM}2X?qSL*E5G8錈FD)$BF)-2)!H3,cИXjtJLƣJA5):**` &2( WtUl_s 0 YYY 1 XM%0"I _)Wqׄ|^ l{ kNn9 csA >b;,d 'vB,eFNr'6.{mb)fyj 4 :Qb9-4K{"P#0 B~d ,e B<ҺMle#QwG%|‼m#.CpaF84! KLL" BRE""t)S(=x*&Ȧr8pKvmx2;*~%Һn&SW'=h[i9K A4WÕau-!G8SfE0b׾jYK5H @_Y/רL?"0'e('<̠>4uB/<3,O^2>)z6֞l#$OCd'Eп\ _qDu%zIy 5i™G UEEQ1R8i,+ 6t J )` b@uT`}/k#̍lJ0IeÞ>.|L* oDjGb@8Lhh/ `)P}?&ġū^Zp?am71OF2R#FDD*y[ DRj SUH5t_\D8:*%oVr9At\{m8n#mH@ZO#"მ`h1>J́b&0*cn(mk'n$%W)LFNIZJW%=rӚ,8eì".b{+0y'^|z\I*T/w*p~.<Xnlʜԡ&Qİ9)U}?Hae;A/h@A$*#^#0IZ_M Q!hm5bFlN9 3!q)*K1-PbZm9 $/{,7Q3Z$$i:Ij3a6G#%cB;( P3I;{ I5ؔ2K@;NKH X*;"Xx,liX -\-h/"s2'sbĸ.N/ǀX#8/8Yp1ܛ=PٶWԶ90[\!ۍp(E #:ۀ A8H "n"Ǹ z.5E"W3WP1 iGy#2:@*,P*2;ĺQ&;48 +D/)CBF:80,A %"q hBD&[_JHK H J3||"Ji DYQ) 犧s1ظ A<0H'J=Ch nr'w"XˣQKl*6 0#Xz^ ˰7ɰQ 7[+' i %BNТ͓HHK *2 Yq8HȈ +#+4I4ȌW+D$6B:Ʌ:B񪛸١bI';HA§phB#dBPHS 25OZ1./8X9/L/ "࢈J){ʬTΈ|V$r"@Kj0 1D"54 8ccp'Y#HRqQ( S3 25 e A TWܶE|̐ CF<7{Me/(~ 1*cѵpT邵+% rؼTCGlj-;|I1♓4 +AA #əd)a N-4&71$I˫+*\]IttH#i儜A@)κq8 ͒[ylK L\HʿۊK J!@;$ث|/@ U -UX=ฬ߾catQҾe˿" k[{JS R>Ǵ8`Δ)go){(TeZ9Ӽp*BBc&ʋ5 "v)\ץ-3ъ0Rɝ";p9z,Xэ+::PcRAxߕOi=AHR36%v]TU<@IA2#lUPNO-^ Uc $EY QHш݈qWeT1݈}`.bĸ Jatٙ2ŕ)}6RKag#R _Bc jBV 4DЋ]"2Z: 5 D`K&gE;>>x<*ޱ~j,$i$J$,)} X=ܸs&NBF n.¾aUlIx5%`Bz){>`ź;\?[RRP9^UP# JԫX0HRۤ`H`%FǞ_\X"k&/* -p8D QlzDexA4x좑+7yʾRB"iKjNsEpNjs*9'\pڠ߷~PFz: ہ|\=N}Jwk#e1iT,9-m6#k$H~Gn Aȝ3V,-s}8BSűd|UH=n3{P݈GtI;/R)uLzH,}dl?nѪC"?8x`Hr#wa3Ί/lxdnl6M-+-rʞD\y( pErO&LB\ *\Ç +N\?e/"Ood"Ad.-r悅E):CTS#M^1֬Y*Xj*m X&O^(V;ҳھr;'`@BiMൃibxbr0 S?nBnrF{]ȘO"[死7ᇔ)[wMS HC <"@Hv̇|!81WPAF5QTGG pc$E )?I-B  )H?VT$((0@$ @5! & U`S"1DBxPA} РHr"55"U&EK4?Hȴ?6O6jQI9&TSiD3PW_S ~,(?-ja?_CDt(s%^)gDeE&Dfg.V_^hP_嚈cbk%u{D~)WtzEu^|7\bǮX?0{QoeHq Cm *hL蠄Xx" 8t_,$"zW.BhL RN%UD$J$QO:)ɓziL$QYK#T:lSiHvdQiPHˡ#)K6B#h&tj^ZP NMœOk$ѓPRIuFYE-XuvxWU tYׂsjGdᏸ/rdR< N-P!O%hM 97 Af{e`1 LÍFv…feC^@^e0Q7BT,1=u} l45%Xm$36\;щ7ƠE/zG)%ṾSTZҗ^ ~p3D!G.V 04٩MRYͪ2t}:gG'vuJANwԽQ F$ݥv[0S⻎xN@PV9Ȏ<[G^A 9iILI$W8C' q$בO L2zPVF67v5^0p}]ԗĨvӯl| 0.H3 k$&/Qv^(xy.ٰ] o\yUCCxpl~IV !Oĩ> )(AKG@:4k(ZIQ[yy|[ oeXo~$}Kc"d%.VpP\$2-REPH.'N$V)YNe,%bfN]:ѻӝljx%؄I4 HA uDhmL@&1ډ4D(A;IQprqZ1[HN&@t1>En*rPP@㕪(9`ы/C5 0Q:4!H.2[\dہqP,e1!!8ZBϒ~?f F~,Z @:'jU2 %y$r"(X*AڮCٚ]QGTŚB#7FJ`$[J9ZpH*!BKO)%h+MsZiMX m08s@K0/5A h? /AZxJ514M6aؚ`X-ZG@H#ޗMtDPS;U hxUM$KLG`qÄQm}\DP=W<>o`w&BVH^HR"0϶ p<.qcS0jv_dgG\3b n&F3r0 63 o"`G\*& >vPے܈<FQD#Gq _rM0Z Ud|DV  پ#Y_L$Z%KtLPXDPn"^iOZ^$>r_ LJa4B(,XB23]% "oEy@bfS 'z.{%2 >"'t'rԪd_EY "[86h_8f^#h:Ti6ts#:W-5LMa3͔qQ8p֢8mj' R t?"v<`/Œ'\0x (z[.L1"c䳢t]!|Iקa!M! 5!tϤ Z$AV4$UZBJvhylKV^`D%h[k򬍑#:o#*r%vZxRH*.Z\;%9b#vghEs9]pE4;&څC0m5cbGٛjsG0LU\W6XRGӆDm-msys6:3.S<-eW /6w`J@/Q.`_GC*CZW-D4طBhRI{xh.Z(hL Z @P? 5+}x5$kfb5 1soa%Cr{ %&bW` b:5$vŮ'?)6;}U+wZr8(稑I;HmdcrcF3dfo{_hds/j99rtxF]|d6 r98kfsKCGmOfq~8EȁeuOC歩c|0-{Bw+񈄍M@cP+CHM4I5dUP O4? 6zUKAou_v.ąѦ 5?žeSKxrb2oCB& 1&[ y,/.s*=]Nӄ-Gf[_s< iOyg8c/ ^<}_<=@{a`A%4Pa !|ÈFP CFQI hDHXLHō.Yi !O> A`,Μ T'FG J䟀^g#"ZRPKAZaj4$He&_CB 8 M- ;_Ps̙9N8"_ pJխtQE8~Wq\w=իf6dէ P1!<hRįRM߿99 sKO*b -oR-/ +Bsk0 sDt+i& GO "HH`+L@΂򟨦L,ҢhtL !*22H6ŠM|HN.h"H $<`lrPCi'K *()Oz+QRI ,4k& +2//# "$s(egMÍrCMxٴm7\/붻.l6b>:{ndF:劈N?o>KB 3P- pA\+C L1>V9G@:p3<1շЪQJhdR42G=KŠ*%$>#sEHT(ǩQ*ǃR` )FP3qsrKN{JCO_UQ0FdeUv_ ̯`Lh4+1>Ls+X6Xۖ5n4osm^7@on9{7 -Q;޽`6K?ǟ̈́_Yml飀dҠǢFfPL$=oUXM0T ѐ'Dm$A RIyEHAtx"_hԵMKm#(H7nJHI6GZ#:"' MǨGE)c[JP$%Ѕ(TU`FbRD DD$":Vt%_I`8?3caf22ӘP?0τ4KjWlU3tc@_wEg^j/;9 5@Jh:/Q}v(͌# Jv1ьe*؈BC0j X4 gZS Ԇрb4iz$I% P(Q $dk|Bv o J66m"<% NFD^B<&A bRL OȯVDI&³8uGdEKYYǺ\JKȭh_1̰$x-c%dyzFlm/5!@֙d~9Mgռa]ۦ1 fw? axAo4A ec$\y:DBH*TEUD Ah&h|XD}$_KRij$Ej/zxm3[F >Ranpz3MrbV &C*o0CRR_mi*VsiPrT#)|挫N䒐L9{+^.P'!Up1, 3eve+xMiN7usB *$ $TZՂG:s;Ng>T 1EᩴXҗ/ _ŅVR0cd[HA-"QZ 3O 18*ʷ(HiB"|w]3H4hm+ғҫ$kLHIhZ+`Tzt${pH"j@%(񤪒CXj~5r~],IVHȹL+$K: c.2`gȎ,)c ,\Lcbn,c%yûf*< 3lܜKN_v֮0ag^ىv~_s~O4#6 W:>V㵇u yC!.4Jߣ& i DZo#;.wߔGniu꣙)#.-mo4q=QOBB5xt$Q1Nb ]BTmUzTcK) aT%{QXHVRqh&풫\|!Rv'f2Ck1|GYZ)y2>2JCR2k['7L#00N/:EނHnN#glmfBND܇0AB0 =-eAn$e(:L$h_VH~/CKeH=h$"F orH8OhnkHpfj0j#\h1-?pPn@X,(' (B)(`Ǭ Fn %+, n18 ˲,v Ì8%YH32gw 4qnH} >r }r+쬩6'f]v~cc~cCh:|p~cf.$ɠCXB#_ $_LfDBTNhx(R@`nh>E\d& )#_OKKAjt'r*닾r +HMDmbdPn в  -SqJ/RXQ"/|4G}*Ư%T)00$?aoE)XGV<[v\b@1C Le1`L2Ngy4q[1p_^p|N>Ъi}f" }|6ݧQi.e*Aॺ8S:0("aKNdC^F(ȇ9/?9OgԎ\"T 4Y]fY=d\PGX Qؔ*UG^o4H(iP % rF?*%Rl))/5)Tr JJvbFhߪR%' 3apE"."W`'ST041p1p z/cxG3'3^p x$\k:ֱ;L@٘9 '&8):qDQ;h9}&F`1Dkl YMS 瞬U'hke:gؚyhhK-hMTCUBwh٢9*Bmi6TzH$-B5*cF<4j 5t) ǩP&\E},U-iT .`_H"/MGml g,Qvxwвw /*m.+QSd #~ o_ Ybm7~$_B@:w e4n (UPN>!P@V;lh$GeHdtpDˆ=pqɵhDj&׉'M{*Au\5B*jsU%rQ%Xv?^zWR/H%row*Qu]^; `0 `Į6v,>VF)LW}C10\,`dg}#}ݷ}40d;?7w#a&Hg°f2:~0V ^69U~mk:pAdT>f!-˶(d]fpVCnM@RoE?,Ml7wH$0jЇ27Jr5qrDG8BxZ\@fyS*).F\x &A/E)J-7Ɲ/9(ʫ b Wٗ͟: !Z\jZ'x*+5:q:\!:>1]QҵbE_굤ew^H'$ew[Gb`m:2-_<~{x ֪%$V4)W0Y7hgwŪI0̷/Ô+xN[9yw1?+Y5c|U7 i7Os+?6Nh0%Alq0Rծ; r;m]:F-@ pR2XGrxC7tCϏE(oB.%E"Yc*dA $G@2dI%|l@?ZYI5-IUhI&"RoRXvY6ROLQP)Vբ]a5W~YUxZxpU PuM܅ko嵗Yaf뭖zh=i|9\ZgV\hu6-ホiA^QXkJ+t(*^x[w'l(.=U2 *j1F"R2 yE!bKL P™B >\J ٓr mI|8!HGY e$H r&Re-kkK7k .Y\DѠvLm%oљTVI<+H[dI/ Jh΅2cM02|lz52q"SDqbdfv"jWzql{2U,|}',=R=߻O4 @zK%?ZP"0.%eP wee -IP`~f$ DcUf @0ZhB# Z!JD$i"(IPҵ5%d[SLd 0Ab4R6;]7\>$V ^84sbeO`gEؾ'LE>Uf1dP @)hIvQeP.Ls^ ]\3hLtU AgaD+TIaQhf 65if x]ę-q C'<-)5q}']I _v"IZ.ԥg>2֭eT>2bj( ϓ on4UgnƸ;v6Rk/E0'Dޏud)o=FEOkYɧ]> ?2oBtr99YNxGe(jܞS4zk>|5a98tUiv[($A"D]X!\WC&f7Q'&Q5^9!^pWk/B2c`%p6d<pUyyCsc!HʓUӁD,)-V14RL{co!SQpwG/{wpƇ 0r|Ee1udRbLrG%MQg%rz%29#/BzgVs9牞hsLA7tEt0Wt7\wBs"*d&!>PqCPsBF6 PEU6<6l Am#|‚pT>aJ'] B1{OT+D腞G}Q}{a"!YTbf'rdQ2)w?R!@:2yV#5FptxtLtMX\  (:s)32C"R&2i&UvU^FUA^8avAAkDAickJB2qKcd`!Gej{-$;y!2bڒ-ަa!c^F1DvAf +S-aJu9ptdV8WoRgtXLV}u0WLrFYc9}t! Y,wl~"R#Ey*NhRHHaBDg[)tb \(d#5i+'55^sAPp Q$AwvIt'L 8Qtc@GgXcxa?A34hF"YCz,. qF*3]7 Y1Rh'Z(Y ѓ3Z13.T1[JDKg5:ڠZJ>7e4q% aV#m9Vav#5DPaC{QJw_!>1LoĶl0,iT1!7#, .`Z*THEX- Zl plI aV)@YDClY.kMjdyVD*eΗ!Y6 #<-鳂(!rPB%B)21+"z"R$A#MPr\Jh^뵊CGXF'zdPՔ5A uG%gM]5cb5(um[]?50ӺE6fD:awql#$=J99Vd !VUae?['T<>(UMnˤJlWإ2bzZ2Q!!tqV1/6diVw{eh|d q} `q)#2!rT#2 L=1@Zr9s#/B$_۟JS) Hȕ ZtsJj!ib&CXuU_wC [vs?aHw"-(dZwS8ٳMEZa W;9+*qr q%KvI f;- ǢkJ %Vŕ:!UYVq*-tgd!!F\EKfdh)想aeg3ʰIʗUpSYДL3|k<E;@2Hg`{ Jt ʶAǠʜAgؕt;ZRYhXs1Bg"H+2Z^5]\%CTJEL{_ژGS8\#PERZVAt6cqKJKrL| c"1.1Y"O>9=>mQfl]1"" m3;)p4nY#aO&1]冧6lӁd%UCF݊Yԙ|;+rD*c>!sfc 1#s$2<%48\:Feݠ^lʔLhV4F[I\C]E*#(P[]WlB3׃MEDr(M_講(-!wxMl7ʽ4V !?n'! aLU U1% G(?*Z-`_k o( C*ubp,wq.ۑ0X{ 7%z'Œr M"IrL rR-f-B<43hU4!A^- [Y J9ZEOh@3[UuBX,*hu7i,A&vo+Æ-e6m4jx7>CbB~ނIvASa^~!>a?/x%(d-oG&~/XBԆH=Qx7IZ{%<)"Ycrh2R ~k4uFO~8!H(#`T/! ahwb5 FG1,ĈPR˗RӦ4h̉ w!7"=ԩFq)JI̙3|hԁƳUfvcVnr5ㆹv"AIF`|Y!>`t2eZsFC'VrGY|UBY)| a<$Ab,b%Bpù= em],Eڶpf>WfF$;;ȶ,؊;&k 2".Cvᷯ41L-#'a˰^-ժP#Zk. 1/$xث"= HԌ90"3+=?s>t]ON4܌<0k p2R-T71?FDP|0q6MO#>pK2Q#'%Z !42)K>#H#ӈViJ.%2q S͜N)zm~ +#3mY<ڠRv+Oی TjIې4]*#,Z5O-ءw &U $vЙu[SsMC7ne0"HuC6߯.WXt6< _}X%}o8q2CEZ|1D[ǚ/ɑf9f#e'`D2)I9Uh=#hi/z{auo]A{ǩWezw+/C=txWs5O wS}/Gm/iS%^-{WU!qso}ڟj9 n}T)/@ӷ>=Qлk?Lܣ̈A ԹyxA Z쓇4xH\0C@ܽ8=w{(<:!d<+lA7@?{Bȓ-̈{S¬38B<>?A>,A$>㺩k@Ck5{CNl$4\:vAR8,DU4B$:DjxêmYhD=Y=ѻ1#EŠCNFECTSM,#8=aDzk7 DEHrT=Dè;?쳸tԈ{0G7ҋ:ĸ[l8bA~\Ez~>EDj7UI7FPY[҅eH-+鼤kBsJPhڙs<1;{dnJ yVT|G񸌠f\zuVpWߝʉn̩iF>)5kVܖfҋoт]~~_yݧ~t箄TNz^ŅkŭP#L( Ӗr܎c͵mHJh5&ĢhgT^,wTZS1,̩ېpehl_W[ѠtvEyB0V{e٪]aOEuIGrkyΤqcEڋkjf_ӐfxձZIL8۟x]TG4\BӔSo=0Q4`84g?U8?]ځ]y~jʑq_NFm9Ŕw`wW8޷ɨNNN칗ѪⲑjjjtttxH[[[ڧ9CTT0U*2ޯG%CD H*\ȰÇ#JHŋ3jȱǏ CIɌSFXɲ˗0cʜI͛8sɳϟ@ JѣH*]T(JJիXjʵׯ8SKٳhӪ]˶۷pʝKݻx˷߿G5/eF(/ebKL˘3k̹h]@"i T6|=˞ zRߦ-07ȓo>~XTx cc+].yі+< ˟OqUW9@@Niez@ jKWge1qpZǧ@)S,0,4l6l z.;#ɲA+ *}^;3@ Wq{{pCx\oAT'='ӼлoWaX O;.b2^ޛ{O+ ;˅N4)Hgg v H,pFVX6D^bV4zݼכ*>QLhbJ +p-iL?&a2G-A2DR )H@,a(0f?x5p?9:Q,hLIGLU jK HH1.DL$ZXF6n|Vt$ JZr ̤&7IM값(GIRL*WV򕰌,gIZ̥.w^ 0IbL2e9f:Ќ4IjZ̦6nz 8IrL:vZ% !f dhN 7Hu9'Θ@}El! >kI_KPvr_,;SX}abX&qҍ@~O+|IUu]~efz'&hPnEwne~vxAgvW|a}اX%gr7vaYoV嗆wa~Y~'Sw~U v^V6m6ȇCVii.8y hIzjVlrbU[c6fc>asf197>]xy1Fr@xbWVbq1WqB5{Nd-]hSWwiKHfR^2uno_wRewf)ፕv^0W(~&~t}X~57P}{hGaw7O{&XxLJCŇHTӖE"xEjj)XCj 9s`j8&tV:&6&U z6t>+VeW3ZȋNWAF'q8b?eumY،eG_8|"@fIh___` fh8ا`]X(j7oZzVm`iIǎ wxQn6ȌpCp;xPx(q 9a;uT19m((rCTr* 8^Uy#IPhds(`hdzsdƚ7ē8{9--P Mǃ|Mwa 7ȏ?xf>efefWWFXL|sgx{ldv88} 7`oqwpXg*P{XIv^LOM(T'(`T!Z1Vnᚭ[Uyr[`嚜bђK5\jـNVWGT1XFbًdOک) s|a^oWm[Y|fUn\I|ggQhHy9v:oɟbo1:uXXuwȩdGa6_yʌ$JIY Nǐxx'Zȇ)9Ǧd&gjj*TE0):rycx5׉JZQtʵ pd):؋ى٦]-ƔY _w'5jhXki*t9s9o(*%oe}Ņ}:g 3;wJiur ժ)St+_FYx[ʚbTj%յUbr8f GdၛlᤘslFaTZaڋTWZWꮆ˃xŇE:xڸPF[9]k~wuh'z!៲kh}:or) }vٻ6vy 2[`)o`9 huUY_wJɫFHkɔjP˝TI{dGU*bcb]JU8z)6pA8{1d`\;leNuz&\KW)jʝY)x8pJ@h ǧg6n8g eQ&vokQYU"JPO|uV [}ogvEg~zٸfn7 0ln|P7q)Qk yȐ]y4ZTXV,Vͪre۵fKɳ9j\hcܒlmP6g)L:n[9]ˬR鷁kt z,ylzvܹ{)LroY_-涏}J_jf̎\<~)!~f'M#@kP Qcagߜ1Uh̕j @Kfay Ǡ ,kˌ a ;J*˓,c)ٶl;ܤv1 ,RJh8zzLL&ܝ;';۸o pҬrHkl_{fdÛ6d''Zɨb(Ƒj 꾂J?-#+;"k<\/!2"2)aQǀ,2034;GZ35=;I4d#`L4nH3Jn0PmIE N02<-.TúK/NƣKKW:oJ$B'{)_z/?a}??'QY[ Ƞ"l"&H$ p?i"QrA ݇pz)6< 7ϩQ$~H{2,-Š_L&IʻKö.U+0ZO:c$&qQ45AimЇ,6hY2Onz+s/AY;QMV:K')FKW6׮ȂX)ϨedPA Dq[;V܏TN*fEDu ^XtHfF) *ʊ!l*&'%omIʲ(Үg%5ՐM1cx 7z[;qq {FiVm>i5H:s$S S{˹QKᩮ8T[ƺǝmaێdЭJA0(!ȃr#@AHf. YO6A" W +)+uC{0*1@h:=@6]+i"\ըPKjss MlxUPncijfJ SŴӻWVOE+٬kCQּ9>y z~Og_]3g >Ʊe#P~[Nr&_/AIXEoGEmihI ުIi1EfzJZ0 IzB$A#!G wǕ-ͅCd!jNÀ]`akuU[%(ҕ{DzKYi͊WK=Nt2fXf)L,qŒotP4KcNrz NjUdhfTmj|x~ ٞ*f5 ͪWcf1 }w{b p)m juyBoPQ:O+9-,{C0*9xff9 p+Xe.w8%nOJâ)Ѷ8&C-_dQCՆ6M05}zDc1l5N5ZYS]~Uj {԰d94NvDZő~`֘1n$h7Z5x&ϳ=wϧ?ovsr4nw;)_\Oӥ\'s``ٓY9YCfdq[-UkWK.>4d}"fQke<4\`R$&<)ؔiҙNg?~Oӛv>8 jk ӫL0ç30>1;ȓΨ+6ˉh9˯;k1þEEC9±A37 ro 9s7@ek;MXˊ뻽 A6<r1 i 2\ ükx˼RcPΛ 9=г$2  yC {4*ٳ)P=*9=b #S?Grr3DĬ<̱==DA,@ >S4uZz4Dy0rqɑ>ص0~0 0 ExRE4IbJkGS9,ɲdƒl?[tg|ApsY:xN|eۓLkˊϑJ?MUD(5K(wkTI57lK|Ts{'x'KTMU PGǟZeգLdd]QU^5<}k K%͑fȶևHY»4Kk54Mn KO/L?LI3Də|0E5X t4-6mS60zNF\;]xҽхĕWKM F@PAAe6$OJmMٶEYzmٗ}TKԲPkVo^OԞcf#=Uս%#H eZMȄL)_zՖ |`Z= p$MmAMFUTCލl[O]]T ]ݛVBO8IuMDu ~u(wU:5zL#T3 sպ Xzbܣ0=;XX-݆5\ u 6IF<Sm /C]T  YAHe =' m<^OA.AּʻzrP](ʞl!6!YCt>\UfS+5N;jʦfG$`֕׹I.I.**5m]NY}7hV"ejKYejU^^Fm7ޑm.n2@G87i1hK䓖c8i:=^xf=yBhӲdZ~tRyf4?sr9"wjw)/u\>ֶc\7X':pez/_`/ql9tqG>pj:?X;qx8|gk^wrhw}$pXGXȯ  _ͧ%uk-mY8+mzOx5oem M_x>~p<̍?:?sse_xK^OQFdGgoβ WhLW<@xv7,w6.RS7}6>u~'ֶ2Klk _#È'4^r~)I$J#сlt1gCQr3(ShFJdX\MJ#rYs85 GX]h,$`] dؖ-ܸvqE@t=0a &'ǎE2Y1*5_8GT-k8&ZiT`k^_} {ђ8Gr3O.[v<:G-o/#hЅ)3VX1ûs ޽ݹǯwݏ7d:x@G 6xFFG uaH$qN9(@,1gS\Ƅ((@T9FS#%FEEPN1EvuA$F*YdV sCiXÐȂVCP]rY_]dzEfWd `=VhP%'xFZyɵ677 p bj[W]&&~$?٦u jVcخr'{&{ Ji\`d@m!hPW.TbTvĭG/q!*$b\6A@6n5"NGFFB ٣N9@^q4dUv\)Y %7sZj%qGƇl^5\5Rc7fz6I蠧Mʚ@AJҎbZӘv*jqVn)2q]}4a]pe5:vkY'r]s_nWcvRg42$p_ ]m$QEvH(!rcH9G" ׺5.M3bN("0K!Pk\B ;R#TFX)#YqC ;۵@u@&Ra+&b97m3T|mۥ،B[Td5Պ?MM zdl5TAg99wІ6xV>[.ض{uۛa2ez]g-!8H$@rp(CBT'u E]D'ЙN +B襓(  P-rGX)FzXW"10@eq# s]0y}{ۋ|2Œe(۞(O ,4DkߞٴPi6`OR\ppÿIG pSBOgGcP՛GlgYc434mr%Aeecg2BVe? 1'.D,.@b';P[ Ѓ򩡞s5?t G躚8'EPė`hCƑ1e)@hG)<YaW )-E-sT S^0pp c]K ? 'GIb*(aLJPdf6J/Rٟ* SJ%,[& .y2ƭVC&hC$V/xL.0+cb#yl*feC-6Ԣ"W1 @j*Wl,ZZ侥u(Hr:-lNsgeP#4HGu54,Yъ}d'*.80۱Н~ ɤF:,$GE+cs K@ HMy Ivs)|T1EPԬ xo G3BSGJdibe|)r506ly[u&n`)VEJ}[ _տ633qd8V=SȔ |Yf9p?-Žu9H{z>w9QC7gkO#GMn6u܈uhF{ υnuth'YEzty;1&aI0/lGL_d7MVO;$!"U=|d*{3_TAIXױ0I}2%9mg4Έsy f{˵zbR=+~JO$`+&XrcsV_!'Ԥl0HV)NrYo;ǍzЅ7"r sz;4\(9@ ~܉QTIq-B蠟;9|] JfRd#hVbYˈwL˨M_WW<>N\mT}k_G ęv.j-M\7ƚ-k/ڏ6tP ӏSG?.MաWG1{vs-!^%G$8M -qt[}rs0ԭ%Em8#s3q{u#z$|]Zr3z6Rs8:IImY`vey5M]t 7c;Nɏm\A1M`h'% @cc8ް$ic CeLL&M4$&b#KTY\tT#ND\[\"@y qD."G\eMQL KK\%"FiTs9#V"bvQ:1=`f!` #T`\O*#!Z&eʑeFegٸ Jވi^0:Ma?^$0!\5B2!!@F!ArG0|$\ >P䣸cX 罝I6G &I Ac֡$2d\&Gg{}ΓKe埁uYG0hSɖY)Im%*NCa"K4EFDhQ.R8G(1"!h~v}~} ĢR^&f7d“2 &iRi ^G&@fᦈ1F a-#\) pprDq@)D.5[M'./&:Z4iI8FgI>jd6FەYQn**L#~N]aL (#22脿r0\UrrBɉܝveqZ*.ýeh"Й}D5 2~j`"fj7|kMg7aKa$I~gI2)rEkF fqD &6[Il Jooƀ@?)q,rsGN'>G,H Uh X Βd }& ieЂrb ga"r(\?x7ׂFu.߂NI8ǁ%AV6)mљ*bDAC舺D_ B#eV"aŨ$ӆLMair?m&2)2&)f+I6̲E^b,5nc:񦚖ANARpp) )ƅtl>Ǣj+` ,>j^r鶤ݺj.d"0"T?J*unז7 GDPŹG*VVC欈3H8kh_sNΰ5/60Pz%0FVr/o*1.Hk +ྒo'/fm&$j>l-k$Ú@&d g Lޞ~ 'x'8!Z[fo\,D.E!l̢\wBg&"F.lLnB1HrKGopx2ʅ66xC?pz-.2H2<@Z_u AխWLxz 0FIkn"FZpԲ0`0t70ƅU`(O#*~r([`?rc'DM)")w^$C0.[y^.'$FDZnz,qp*|,,1Ⱦ| Ljq",iI:#on ?5?n>o=?rrKd".3Gp~V:[rK`6زWc5.r/ /-/w-YőYYLe k-_7T c0 .jFѰ s8ZcC8oсLh"8ò+{6V//)6߯ׯQ+5HgBsBDmwtNk6DRqCKjv,fBHީȚH)q,[f4[<,Nc\,I,#D t.k&kס?6Q/Sˤ"/*Uԭ@hvòWsW3EXrGp/C.#YC21GD庐\Э喇{Zĥ%Fas ?80 ?7|5rcÌd(V Vs6<x0# /ԥ6>g='k{IVqvzEmv8o t{wCqG4ljB7xlG)I9,r@ܱgpbwbqj7MȮwB;#.mwp?os?2uM xK?:U#yLu-[/P [#BxC{o0Tƭږ C5^5c";6+6c{bc :7-w:Vpʺ+W5#|Fu62;&s&;\x:ODž#d0gzBl w1o!B F t/*k@< ?,R< @*3',x7M4Ѓw?x #oҿ@#`fBhРȐbȐ]Hp?]UoF yeATlfMlwN޼"yTiO93A4WKg׍_)nMf,WAg|>ujgnDvr"tΡxOa7g6rsU)FوF&GL3ʔ+W H"d.:)7_vW% B)((aƃ_"Cb +Ÿg1Ej{:vI O& (WejJд*K҉'?\LgIAD% iH?`;IPJ#<O_dVa12:H(L!gN5֘)H-Ɛ]/gp4-9[v]C%FKbŅXZ\d#g %GV >KD* tJ-Zpf0{FIhE[朌di6M( sCiʠ@kU`W[5֨alIT-HĆ5ۅs[9 g V0]<QoD\7坵Bw $89.Ŝ#9|uJ{֥.uKԤpn9-xutqIW~ZdFޖ8\a8G; Mկ!(b o(CdC$&e,۴WY2?aZ.K.ŰgRX6u/Jd<INB60):NSv ) 5B~坭a ),6ܵՖAs ڏy5 &0o{&":nH0ʍ袷>=7iQԨV|+7[;=āvuξ; .wtp.G=#Nͪߋ fk 3ٷυs\.H2z <*n>#(On);H8Y+2&8J~J2q|p[<`gn1i$!T3*RIk_,vjYS 8dv濨& )L B\`&L8 p9.,ψׂ7`!.w'['sZCӦ.ҾFGh*\PM\Ψe.H .莇λ%kqjM;^К0 ~KV Ɛİ bn / + 0bJ*FJ H $*ΙN(Bf͖/KKdL.+o* ʕxO"$22"/FMAx, Saa5jܯ5*L\ o-f$I ϟ~dwNPw'F0.n\h0fӸ +N b-NnH%hmn X m%^l(/(8đ'''!m.F"} *nQHR jBȲD+X| .f/ۧ%PI)vf R1O!"3 € Ѕ03A )Q5l +l}R-L 0 ) dAK 58?2 p'ҦKR *)IsJ # Kwq0@)SHt.S@dPP6-BQN/Bm[A {AŐ P'PBQ)dQ%%(YP8+ M9mpVTP9ET#VǶ8r \6=CJm&TrS.whM83Y`REq+QZ@L6O0[Ű@r .3)βj4? H 0ADR1wq_4wd!M`'GJ.H߄H +AL|ii#,ⱌI[lfJwJIEY]w1 |Q() d}4*`7дfad?N[߰N#N4uv ]!gc0A g P;Q6i)Bi 868Q0k9etGrw%ӣ` XR%yfg e `뜳+sA  {_~WVd۝2vᕭReNfj$9ǚ} LڬGMetO(n$KGeys:߷} ~4 ;qø\{:MOQ:r tΑ^j%GϿY{o[N=Xaj])9.nuxO u޹I!B=`@Ի`SAM7"򹗻}$=~X!w@PsqqY{u!GrE@٦|}?s0^WܖOޖcaÓk1˲^Iq*v4-ry NjTC9j ,b2M? \xX7@d B < ?@ȸ5Ë:zѣȎBz#NG$CJ:dD)&6ad X -jP6=(TQO< U8Vsv'8jHvkӞPC6,ܱbv.qX n矞iaY++tVI2/g漕X9sz賦R9sĜ(fB?h9WMP‹GC%; HcD]ODpSMIfGqiKA$O9Sf=fLKVXR ZUTBoe%.^joEڥlm(Y2]}J:>D#:1DJ{4NN^5;`>뵽ZK;ZX+Q97N)@ ;M2Yw0闗yg 8+p#bm\2c*+a6,$9cQ=:`yV iC*u=IJւ3LIF(Rî&(H1b(IorN;RB4E)OW $LN5Zܣ(wKrT2Gi _`76Q,1Xw+0xc< E3 YHxU~e_N"`tpdD N$,i:!L_KF)$1 YsJ?lA BU̗Yԡc('" 1@p0{<075<9st0juNԚځuJ!OuP]c?sRR W`%*P<(:(ZՊR*ZwqT(H-Tx;Q5ksޒ ʱt8=$Nwțϐ~ߤR!)50$T+U8In}L5}rM_ZjHh ‚=nD05T c- _ykʓ^- fkIEFdt"udPIP=ar$/S Ecm1z"|GY7*wtdXx!$GÍ@NjhjSWE1 q`UkYU"^,ә;㠮V)%6 "ԚqWa8Z ;ќ3ust9 R k[S:р:j:Z~ jwGz+l+jk `Rj_2`C<+B,kxBk)ۈRFJf5'4 U xbaa.lccVo)KPw{7@8~M+d@7 DdjFZ Z59,/+j@!Rtuk3vۜx,zП1 2:<)S[*bJg8~+S;j+@˶ªjѹ|[*+Z#S|K6 A#!0HR;։-$Gѵ`VM%.BƫFP%k''^3-{bȡ I{tKq$(Jǯw؛pKa!&d$u @=y1s˂,*Ho4 2@k1O;,ě® @P1)PQ}yAsVQ MƮ ')i1G]9Sk[4/Gxrp($W l MNw.n,Kw0?1evig LqV݇]WUWmU%[0~wcNIb<͜CD6 [nvWlؔk.\9!d^^.L̓1R0ߗh+*lcq 羜z +GG8 G>+@ 8@ l¸"vTHJϧ^@Y 릡 lڶn^콮(W!k&-²jds&' ҅1&QthbUli> /_$Fz6b2;]oM*vY3ub&ZL-#YP<'UEP ^#ut <;˳  oFg,$BP"3 2:ɌH$ANcBMtv2K3}Al`hʵ9t9! ʓM|ٳ珗՜jL4=ĿզM3:'XQ=mZ7Rx~]UVg::uYig:#d>&Kn\O_ٶܦm CpG 4eB ȔlCCp4C5?!*'?`1FgT0ppxFgP& @#;aO<&:-Wn `BqzMjf4h >b!=#!&HЏ #:)$EWZԥEI'h\rit򉧞@ R?#)ZE !JN*ъK 4JGʢ/2Yf]i-@aM>4,i?ZTk2#2,?:zmc8k ..4ق>bj4V|}ؚjs%dYo]qEYYBd\n%2Yd\rrg#哮@w4EESFC5|Z Aʆ=E?:[T0~_1lrBrH@, @h@Eqų膕+;isL3.4q4ȠfB [!r Qv' Q_# +ݙ$RvҔNWjOKZ@) F DS.p^tLgpC!^cV+HA4`&Cl7!c 5fy\Qdd2;|C &C>IΎ&? Ŷe- b> aDLc6LMHllU?#x?qGxO!Ch%#I6)2E-JݮfnySZ !Np J$&JRNtt9P-ߐ =o3_M+]/D[ #H" "jI:rX3,Z{"$I*tn*{VU?'+W>'0}p-H|00!FE<*=;1 8F7p#Fpn 58dH"Hh6`$C@LkPԼ}deu]W5H\@B i(D,$pDֱwt,"x=,f?b>nl1 HGEp\ )mI}n=]*ĊY r#bIZHХL[Rצ벮h]Va)DaSI`uD(٦J@ nj 9RLS+۩U=K)(e'HaK|g>XĪVr,}k%4!0Q9ʊ +6 D1#\#>[X ˦"+?lx9,(\,z1q2%̫|İ$l. 3nb* WAlF"0P`-TepcFdH9u7pXG`jD! qjiY<^ȆĢ%9>JHسYJ˗`2}ΝC6tsBݜ^:ds1 SDAUDDiEVN^ķRh*5L-O+ӷ xr@VYW@Qi!ȧP [ !@hj121#0LXXC2Ѓб r:: %B%B=Ѓ=x'܃8^B,+2+B'Ա!ʪd8d(;"#3 \=,=t+dDa:F "4z<5a൨!rSa#ɼAҴɲ#;#Y#=D@Q,U{Es=󹏐=pڳߋSR5Cb\ aa@. 1 xFg%_^3 +풓#<f& HPX@pҔ|\ꑕsA)u@' tQQL8LA`K0KX9z)xSA a K@Ȧ蹔=8ЃC)!̠H t'd*hBAP0=(sz <04C9\ 1;K84a=dK\C, cE\.3Sh9l5+lh+ EEALȊ,ϒҲWULS[׃5c5ك=DD8Mŕ>\E33:˙H6 ˡ.`Z Аϡ2pcB8;=Y:7<@I)CB 6` <9oگl 4 TꙁKHAȀ0j@PO% 8  2%ЃQ`*ʨ$A(Jm¡1T¤r,ӘC2j:(قbs"+;{R3* [%mCj;SKܐFh&C5NԴA:aS4N |Y#5{EXUV\TW<5[U;5JZ# ypU0M 1#-PYjWUY" @KMҟ"8 ^:.Qh!2*-[^0H֩, k.V^sMЄx2̐!JȞ(^0 MG,8VȊdu¯oZxZZ* 0Q Ѩ^0H3ZTA=`Y(|Q͖J,J%ٝ=9pC)! H:Qßs.`"-xC60RD;#+D:;{RCRR1]= DiƳ˨̻0Ņl@SqCNj8E** В,C,(JH0bq uC P Xe0 i00(H8I|9()|B(,00xY0Y}YCHHp` 6=څ sWa j5kZ54Ҭ=[8[E:,R۸=TS^xUY3l4?R ˊ\841T9],B\E]lpН5l]]\EEp9†l\яŸdlV`d>j`c@jX߬=*B7CFhù"*5DKfӬ;1\[$ f2 i< ] JJS{j8 \ofX~ͥDhPU]N^\5w̏JRSPD]ޏЄ:oDfh p]lD oțS^oڅj.'KKvD5d^ +-ijK:;|޶Ln5lrBZUikH-ʢ|؃ Y6 %XaU8%-WQm(0vQ9gb&V(M*0ɪC"Sm.0b*K&\vB( -m}WkDPiSl)J($Q=-Q\!mG- ()AZ.BZc`Y_vM h;OU ~:*%#;s35Ǡ/8SǃS:EqC^HW/j:= 5ETpsVUxwޏKo_Vp8$h/-m]hgv`q ^K~eVӉNyZNowvFf%= Y><~?8ëO3Šh#ov6 ;W n 2I`hd1(ؕ j5Y5g0@^#{%p|y0(堚 C bϾ|<{>Qq2``/A?zGz!.Xc@}uGT/ƅ&\d?h5//7b?:$|?Y|BdC~K~H C"Gt@e"!I"Paf4 .OXf :?PBt Foa5LRhU)HjK2[B]z%'tmJrq5rAc+~hTRGE u?pg͆ոFeeGs RBxMtK2S)@{"%9)JVZ*d/./h?0֘" 2G*'#:Fd R3,om:Eӥ EvdضB;Ɇe-dиIfG'q𲅊$EȊc&$J w`$0s451NcG R؃g`\$J(t`Mp$؍i{| y`|$iFibo:!GPQt?HeDQs'IG 1dFHiv%s@႞rGObor¹&pjtHڋ*jXV#&Օ+WSQTA$Au[5aMqQhOln-q1j7_jr2\lA,]EAET0b@! Y6?lb*/(R B$[°k(>2oDA&PO,1Y "akف59׹)/7Ʉ-|A?D/ C%kE&2dHJ%̢byCS0LB$Et` HA >$8dzH8@!PܔHMp+Ӑ$A!mF/(L/>RR/?L‘@ p-s'(J21 ̂p$_܌,&)X,p|[bQPs;)Itґ.*'"C G'NtJ\A)eJ 3MAM+%R$3ĀrQ3gIs(Ū| \6y vF?(Em\42ZЫxJꢋPla pE; vH:# |p3&D61A?^ZL K0;-zXU n$( 6x"ce0:'ՋAx1[*rqOj \G$xԯ./+G Xz\!JW/YLfPk)jQ/l 7IudD3P[ }h&g) `uّGdwP` H13~ AY eP2$:Q&Q=4isSFԿ*Ȗj˽9G DU)KIOK%J͈6dH Ϩ&tV9ci%L MdcDIzc4]/B})n…yqdB@D=\;5 *$M@`okS$LLQ_4BͣYc>G(A)/T$PaH?蒓DBIS/܄au}X|'1N!e:a*1݄ 0#UC.Tp׵ &fHe+WjQ,f+o@+]ch6$IVꬾaᬪ%nA0/h5@`Qmn癥mVD*RXu+p6Q`FI PG0$jN8 ,-2;nh:a^+BTC-و.$H-X WvW,"mӮ-="/ QЛhn9DIK$Nh>VPB-AhW EœvQZ;&:Fbd&0W >&T .^Kqqe 'S TxtGwlA.Y!;I628RpAPs|-+*!~dB|MGp& ?܏lسXe2a,=1Aۤ@iN+'t^XsR(f"dDFШJ[ɉ߅*RuhEETC5t oy՘}ʘ~ܖ]Oə'<2zȍ0ɠX)@؍@2 ?UW 8} 13D !p8HI*<&)…"XHFn1^#C`r \u` NW!FNLl5µ C~ IQ P %^W`4B`E#a<Q.ϐ {fLҿ2L NbL.x m arLj]wa4*,}0.*,y0u{ks ^ ]<<=H =ѧR2n1^? vP87'vGa!gC74G7 =g"$e"+m~4r 8, Y cT`*N[ȋB\%IUӘzcoW!W[&܀5}u\a[*\IF3y4DCu}#\`A&\y057 fhR#/Et(l/<\ rSiuJETfUNDom. .Mxcj# -8niTd]JOl neX(%)΀՜&U(9..,C ,"3loBӡ ӖseΦ\<)r$䩯Χui7eޘJi2 0LF 3= by%Sxv]`2o_ңgN*VLA~&ֹza7a_|(QY>)dY|OTBb={HdQ+dO,*M0aRLA)wjS&]Ţ 0$jM20-)fn^ѣD ={08QC#fY3ϝX&Ct,z -[4amMժqfZh .^\]':UηSwW{ر#n{˿-doyϟOT$U1$Arn< o6\p3\Ì`-?6B-So]̚VslD ÌC,;$F:tC9 9 3L3j饟H 0FJ(HLC H 'b ("3R$R %NBܨō=uqпUiCFoamQI+E.LN8kS6x.R%;$ь`|3 FI3bx^}할TA**#Pفe^$Ð\uu33,^!trʫ;r X>з-BK.z +bXpPXaڋLl=Al6>l y  124S kZ1 XMfh5kH%$_6M[5ggѣzB k6~gSVL\~1CLo ]ЄcM<,3.q W5H考e#05L15~JAp*g)o3M ٞ[CmɄ >B&PT3pJҝh'C D1A\(ĦP^R"b1X^H ` p0 |QKư|+a371/8RAL!pHh2SlUch0&YI:+êUn /F نBSm4B6a@PN%h3"" n\By\r\^GP<?NQ9mp/nC#8p#Z3eFgjK/fCgb& LLH$эI4qKV@ ` b-m }Χo!ħpN+J 7*P|ja*XkϙWu-UQˣ5ŔKPR[C:eP%bV Vbk)MQwI(IYp. O-!MzŔFk,\|{ bi ‚ pH +J$2l,0YQBjKR& 1%Ald)R&)gRds*hF@)R+%ELJh|kZzԣϰEtOh&2l#!>CLc.Q$Zr+ID76qJpf\Æ_F:.BM0JMgf>Q6D&#lOyPG:t#YA RUFGRTͨeҽuKIV6D= 1 P$tȁ??Oo3)O%Nay0T2=Wu%`Dr KKASr "I2;]͘Wa}XB(D"(CxXnIlbUy%axuy M- ( Ȭh2)ai_ =@]"X&Cv&ш::X5\`i^%VVЂ҆UfhH(Bʴn6؂ XR4l>m@/\RtK53|i11G7Ki[yh7tqE `_ WAI6G&cLw,RNXs#(tbHFNYuB&'CE҇ GMKXҒlC32&K$ =Wp?%N.gad~B|'쪬L6j!-V5ko0nIhv0Eg50\#츘opL.fJ=lfvjJEx!肁5a cE)GŌH/0ڈD0 Jrb J:Fc8o >` o/ZĊ4* N|$F"'`gL G)Lxn  j H $ATͮ{@P$^%[Ro& &oWW| <$EX2%l=nVVʜdvD>+JJ#4$X, bO. F\ 0k4"o|2hfrCEhc9iTDhcnHoWKRLj1vB$"df73vff6J >m$ND$lCBė(B +$ f. sEj'F<)tf  !NfMA C+#yB0p1'x"q1<@A"$1-X#BȚb\``[L7Gq L83JJ @Y@e{qڎYjb. }bB% JjmbYx$%,/m g 3tL/3@%hfVG1Ewl*B*X#"H(b~ apt`O@`,K!STR@.jj8`iCV @tῈtH%¬>#'gtPx#j#*NJR2d%2rf8iV NQj0tD ,G ON uIj4R&\ CwH B&6|0$dL ÷rDcF5Hrco)Sc #)!$a-0-)p)5HGݲh 1ĸ u7wT o Jc6Us1WKdh(_ ('5=|9APu6%$>!1LƳ&>$^6bD!ĎYDb_|\^zb/r"(J\z)XH^14JȊ$&Oo{8N$0ZhkSz]}@"8B^/5;zL@ o#$B*0t5Y.@Fo Dq` BT`"{6CE Ӄ t*mb*+c*Tq}#8eXbᏉ#rKs{A1b$6dXl,ZNfBW2nt.K.6F0 l)>U2W2$ctdol L8CӞR׷vD/6#y(g,:ߨ b5>)LY D&xq:'dH c"JgWZ"KD'x I Zw &U!z94*2;BYB#/KK-bYBI]X\ŷ&MZl4XBw/%*w ; )"¶Wz%W&|(z@+ ؇9^.h"'2 20D cVDC 2.Ӕd MaM8'6#Rv 0 4R [{Ș q`$P c(AJZ!5 ?bD3؉j&RIj4PYC =@~Uc'z~ڄ+3:CjHO D{:J~"y%zq;1&8\]B~ v1!b "6\󂆉(ecZ<67[XI~.NR: Z<Ǔ)XY,. iX&1KQ@{ՃㄥV%t||:|Q%O%e[O5Lht d}eQL@T I܄WѮ)eПHn'e'fu݉g<[LdKDpS>eO-WT,\ù6# ڙ%!:7;̣"o| Q$@!bC^Lt"obY>:$(^b]B |%l)K\Q鋓|;cz~4BIENtal^L'/, aOj!^J>A:8w ψYF^@-]CoH%b(*@yj,. B6=7: &Za DԙLJ݈?X0}z h^q P(Kr%@RD78 Nx ,U&](Bs1 C2*6|U=WBڬLfR/nNB%%o|[,(N +%ؖ_RK2]j*Uj?MĀ ҡbNp(C &^Y%$ O>c dO$?OҧWYL0YLjW‡X?$NA*`X3ܺͫ׭ݸbN,w Ą%KOY2c̙3 Iaѯ:1z5ZuIfK}ڢ?_3qӆL+gjL}#O̙kaW9ZݴL} Pkڇ)?$!D*a ?X$h'C '!?N@M+!30!7$֊bY!~x%I$BbƑFi͑L!BqBQ̡͑Ǘz?Y&|f _v\즉DBJܙk'$G$(QJJ̡$TёQA}|O 95Teב NBBKJ$Ҫ"l . a4B /r2g"ey硺稝A%jeGfiQ?EaTejTeU|e^U=zu*M1a^բ}5Y/\M84, A9" c+XyR,EgqNڬqĕkղEm[n\䑒&]4h M[L5m4hOG4fd .e]azMU-W]}g?S觟YPHq`@ ` 1ch4N(f(F+nhZ+"h>~}# e!Q 5iwPyyYttߩ*-A˜aG2H\מCRқpgzYcRtF(1H}ĸKAA)Q¨F;J%!lVvUcWT"!!J fy`i.} TSlPɞ}RJ1UrT}M+Izfg*XQ`Xp `QE zKFXu@ǽёnqH֒IE+KH2:?mȡ$-bL LRJPN251},JP+3;Syq`YxE+4%B0XH i)܁4k 4q6#G iP44D Ah7A"n<"o8 w%1ˑGSL +RqT<(kBP{۳땩(0awKIR tc5"P#a1!*ձrŧIJ,C(H:& Mp"/!U4 6~lp!"LC]؈ "a g2=4TA]g&P9(Iu'%4dPUe6?e]RX0/RֲlA Ș|a rFr?/Zy1/PH5Fɩ~2Io2 2$K]HeJ-mle/vSƼ#%0:fbcDӚChP& c ix24-B48Ji:؟J:^.e<4f}ziPL暒g (&5X&7籩M0 娛 MAtdM" U0q'v; (E&n"EC B]4WGxBxA$Yy6 %DFTb$SȴP$9DS8C [kM3Ș$] 8#2? `ѪNu,m1bEv#CRDz(SvR5{i2I`J`f &rV27_~mmQEYðM7LLnpb7&(` _`Y .0FЀC :5)K4bH&lqnX9_VTL2U{3uDjW8\,aD;C }?^xEMh0g&7_iVx1AӴALs|qkT~INՄ 3 3MŒƹ%#$D0lJb!(!D*h"RF7ҌtY'},F!7dx)P L"ye+屏e PGϴo;:Z5ɴmvTf$Fav1%G"+BZtՆ1f7lLja5t^1Gax5CU-^dpu:52;# GуgSi:py!He;V/ 8 uB(8e?;  ! c`C'B0 h` M faZ'8 t:6BGȔLSw#fF3^A >v6w^@6Cd"d?@ ?F]Uds#6cQY `%5eyG\ ՠ V:CM(Sb(er*&1xs@yO6ch% wh+{||| br3S?!A3~}NAt24ڐ @n ɐ@}!H@!HAogjRR!cdH^hZ(Ғ!SG71dRY߷oX 1L 2&Glqp_pV>bc /q 0 :$ nOF:eqL}sӓy%@R&# kw`sܶC\CcH!4!Ɔ`!t8 rhakL__L}S}sLx( |du:!_'"#f3d1yn=5CdbB=c`x:}&= *K3hPr׸\` $4b([G.R0gs %@RTU ,RBg'#Th|Ȁ|BqJP zq>R޷[Eo1 WِI 0H>1WL5"oLӤ21Aj&YTATW$pGU`7q4zn5(jxn/V7b6n|!YGk ^:bFn$ YZx7 ڨniZO+w=Q6a4"we Ԅ##s@)9nHaf6F "AtC pur@ C~hʚ~HmA:(#&V5w5we{'{@=f=H&ecccwzG& UUâ3Pl@3;TRXL@!W9#{땃ѓ]d:k;p 0pnebFY;uWx]U#79b9N's a4u9$ !tqMCpsqZ}cEdbC:,R)$imU& <.5<<+ 1"m )C0{B`{" V y$kzW2%syl p{VW%|#U'{ &+|bA{ ?+i*hR ?KV)Z.FjrdL-yT{:7ʐb W3YH5BDy7k[vlapW HX٩7QU%61o4Z_Zt1;| 8ɚ0kF2"6:fIz M`:˰\˶YgV' [ҩpT{s_usV3\!8-鈟ڼ UMf`0?8ҔҴLԨ\ڇC*6}gAIq2.>S(ek>4,'ۮCUmec'a |'{Q lRdye5C*:H13) Y> 5j׍d>[XAu}KJG]ܲ2y1*6EX//W6tvl9O0dIG}rӪ_PLDTiA CXaxRlϿ χ)Ϧ1ܴZm"6E)Y{_ys_BH 7~3 Z C /k!V``k8.\߀FUԇ~8V9f4Os2w'4R>)!GyBR'*ᕑw+qgq1z6',n ez{h ^dӜ!&*) {|,p nPn3[  f`aD !^ng-;VmxՑ掔FVi( J aCQ0cYK7ZH<>I* *8Qe)piْE~wnTbgd-_##|K< 3O9vT_TVrkLw(usr"Wx~hʚ l߱L e:C7/$e LMd8Tu ^:r9Fr8v`\X`6 Y@8"v\-aH?!<(G3>A)L2yf>S9NU D'}fUBT7$ Z;Ѹ$Y)=rlDKegbN$5)C>Pp$i.g'V=i=D:7t9MC3(e?7@29- А>AO>+$m'm+&԰b`K,d$%>qE.%H(&H&z2 (jH(K()}KbaLB"M5XJ8*O,t>GAG/2PDihRꋆj("RR`T7'W VZA\6`"RdXRI觅"j=!\* T(!D:`j}Hb5W_3Fzĩ/ݽ#2R !!jQa5cD$2 N&B@7E,4Q @vB#ZލC|NZUQ$gΊ+'~k眃kˌ>X.#VF;O3A$,nV0A29k ODQ <U$_WHr1B ݂üHjTR "AѲK4(Xb)z8/S.Tڍb^Ч6}XCRL3 1Pb5 XlX5pVUy+XW4(lBuT1X/ż  U"ʽ@H,PQ},DU+\2V %,k(W> N$@yaRiW;. $ IE ƆNCeqPfTPf˔2}!ZD( (3њ.xdEqEDk2PØ".8bZH.%mwi !.y3r;4Fك! 1' |!Õ4 9Dz(p."۬4$6'M(C]8FZL'Uc(;abĢ%c+c|h .E $ii&aϢqW &DT$J Z GAj8V20W#~A`VU \X+(_E ! DL  \Kj:8CzлXs|[*T%K"T&.hPHC#P" ;bfe!Z-R6F@|1 f*1`"\%/*yNFĸ *5zk%w |b.pyf,S C8nR(<2$b7^AbPJ ũLN:W8e#{'6b!e )G"a.6"\h#3N$ݓ<# $".)SDQdq.6XL)*D$*OtF0JDrR#ŲD<,ݡ]^XtN GD8AԟU?IP\ <!U%2:"IkB^ T bTۮQy|W6B ,blY9 hf?@1(7Z ,c$̆J*KU[ьni憣<́\Oқ5<gn% Z8H}9oxH0yVf( 1̈ƺYҢK#]mSBWpZ!\nHqqqD! F1Bl1݋egwt^q!ɼ[BG<= TggT/ #[|Ģ=H }V{,F?p,dlҗnQ"Od@~u y!PdXE?3uM :iVU&8&.5lMzC@It.LeK,XD>vnt[+0X7'Mnp("33:x+ {ӷ}|.BN _D=P=ܹ 򰋴h,0") Q@#0;us y h [19 ;Ā A :#!`!ш8#q6P?v3(ZЅ60$0v9 ᫾821 ` @,KCPĹ893EO # h~! T #!;ғ@'Ӄ HM* RFX  %pEk5=4c*EK)X1 QGm?Y[-*P%tH#k ɄYu+  F8D. .! &IRH@s % "' =*u>):"0H?mJxd:1"Y!>X!!Gs'Q[ ^\UK" À P,0IP2` 3:1Ә̲L̈́̏2b6DsQ 9; kRÊRTň#_=r àG㕝`}їP:d1郈{ [ۓ{+c)<-vjsGAjuL1j{#A|Lwˡk{ ;?G!, $u-Pڒ`9 DєT[#AL̒)#+(Q;Jʂ*KÐ(䯷hJ12H!JѢ0( 1[XK^KąU\<}CK;(A!LLI)P4S0`5]zRH&̚9ATm6+ T؊S;M (̓M7^Ԁ^NBc=fŪNFVh s2;F `sŖ0SKv6<-m! ȀԿKG 9k !r׀-@$.@܃8%(+%b-f+:/a)Hw.%ZR)Sڒ(3+{6IZ~264r%iZ R="%뱝wZ?0_$^`6`܈~-@ X%3%eٕ]ٕ((.q)!!P &aԲ(D"򞊈VUՃ$)Yڼ͙Z؁a##8 HjЀՀ V] ^EkݕEk4 n<ƣb+Oz3nA&xWɐ|O\G%| :P0ؔQpG*6J~]*#ȖAuHfj9rH`Xa)vL88Gԃb=HQHb*a6D-ZJU7͓, ބ)ZBSh '띡[]5",5c5Tk;)r' -CFdC<6@ hҋ4ɖ51eU <*;]1]U5(&!"Y.:1M"#ޟj/_Nj^ݕD=n_=q4\V2*=_{FM[W݋==ʻG$W`'|W>a# &ع(䑅wH9R=XHkъp{ǘ F a P`n YiC"qhidi`q H0=8{ ! I3:)Z?Tݓ5]@1b*! b.H%zAȹA`S>`chy3>2,: B6E-و[Gȍј ٨dN.bS2);)f=c쉒)!* ;e OFZB1*>yT8+ޤMhn^h^#@ uu (o''@=Ncel4G+j}f+DkRZ"Zvl G B}m?iXqK~OP!6omh İ5,.0%SB (@e+82 AS9%/::iS!N S l<"@6+@5k364QU(Q)ɨ"RQXx#c-{ CH6֎NX&Є٨½JV]:mCB9e89>)䉡m)T 2Z@ S.16j-5^^on[,Vx戰j魀ux]DvkomNv>? g4No#GW),κ8vJj+-GmKm ȚAXOEj#~`@}舵#{H ^CBC)b!vvqɀqG*DhĩO9ȋF z @, &2,ᒢUXvکxa;Dw ⊧hST ^?9RѨ)YEtiq,h40,u ܈dkUM}@u툈W܉3K\/9!URV:Ar37]<;ݺ5U2~VPqfh6w!XuOww?k}4e?~l@ kϊ@ W`Qe |IV$ KѦm6:P1f> ]gR=ǐ!$iHԫW0lY2íQ(J*L0C@q;R9PGHM$ձQ&0CpÙHs A#C=g HtPBU_%g;%|LH>z$lǐ CCyi~&5j wLUG !8],eH0 _}ƽB†xHW_([)rZ"f0eؗfhf 'eE^Y#y=rk=vO~،2L?FPpH ~*?N$?4  U X+W!s++ +b l (*<􊕐ZG3Um+[2iIEO$ $B o,\ ğKsaX]h(+`X} \xX/{ 1ۃ2fcb/|{as'4L); $Tg9fP{d)A7 P)~C"L[~"!fP͐lV1Mpq!<T'66`Z75TNP@2P|kpqJQMyTJ1P 6uX5U`+ V#!Td JJ+>d¡#Wh+b>#?eՕZd YА. ߲}kKlsȐH0ctld1xs6EX!EF-f9ptd3 bI4vP50JuW q*P^k$@I>2Q_wMXZ$$݉ɗe:^ _F{݈:}XHܑ,YnD@uzLI@Q/ۙ-Hjܠsz-(yuANJD' lƗ(lj֚%o'~T𗿆%*E- @_C@!?0%{A8%W{ՑӐϪg gUxLǃCM_z$Z_aQSZo eH@bƐE$ƌ5o٣IvF\BFc&; ~-mP#ؠ!V\r\lVmP\I up 㥹erb^'ʌ:$|H&_<) <΍ >pN󹒒W>/I%O~5eeq<ڌ7Ows3z98\G6g ^¹z9Y~ĩtr,E "̈́x#1+_IBXӚ6yOzvXCHGLt K9¡$y4 Ʈd=Y~t؂]ɂb8}?2%x=qֽۨ)~P> S(9sAW9(mԡ(}t}8ĐtS>BU~,O{ Nlx:SpqGҒIa?0@ {G Zb\F˹0$I 0;49u9RM\?F5]Q?ԝ? #n H="^J  (r'|AYH,],iVБM\y^URΑ1GEZq99m<dUoXC oD_]QmQ6QeQdRYVn ^?Cd\5Fo0~OԤGX͎'qE5DR|`Fݎ5I~ ) ސ1T0$qM.btDŽIܜ Z` oܚ[)-S/[y ݒ SɄ,ar 琌ەĎ&m# )UWXVWہ\laĝz  bA\A!!Vݕa(L(e^$> 5ĦޤI!<l*Fm6]n[ (0Մ D]y( U PX]݁Hɕ(cv\/@apNiAeAs!4IRC 6D\heNp\aR ]475gH^̭x)|]'t')IHza^'4AYå>*c &dJ?PdV@ϥ< , ՏTOj@PQ?L* Nv"$U1\GWAr^+6s |dX{䎶Ɠs8sy"ǩaQRr>jI/( P눡}߯'-72d3Pa($Fl$Pm|@3|Z~臂(6(]Wu]'f Ν a`yҎ 5T~ FPKP JPߥ9z`y a 0NesGNA(ʷt}ͭo֋ag l !ޅ -MRFt}&uL`LRNlW\[o~(5҇~ADq-pN0Qu n*rR6)=uUuqCU?Bp_}cuoM GY7)t@?ICp؀wdïZsx]7D,iڼɚ\a'P@$a cfi/e/s@G$W&(lBY *.k"ks*g(HmKC'2&]/GiJiJryF7'Ђg6Cn"{Ś8H<Fuh \*vH,MAqRٝp]%7ydktn{GG0=􉢰^^=s@dC콂C\0Z ؆ BF=5R f H0DpаCQyD9;ϫ(DבrRo.SS%)}]סDխ8_LߔbH~ճLk9Xz-B#X Gb$ G(k#hB$Kg,Q02+s{&|R(33p{2əRʨa35^X{L#(T$QPIYv,QQkZ3&8ml30Ȕ,MJŗěbe`w {-Y3Y]#&`ITai5=WAE kd'q!Jp$ [׼6 `ldIܤm$T!!HawːT")bP#N(05p#4bIg# H ^%\Lh`36Lm2 f<0 ML]C L+mRxOzw$xvsYvYoH R 3m' J2AX+ %d+]~#Mڒg{ATԳy&8zU@yB|2٤ B-vQc|i/~Wwن!,fivC\jU23)ZȘ6ÑI\8C0  4t% ʞJh v@&fZ'Z)jDl-?$'YIKP2$ a&nDQR3EPBpQ RF7r"ͅs‚3wC%5Mo#&7ϙ,SKQg9S9P,L6QIJRɌ";cZ[=(gP82_K/NSœT He>*&K jb;vg\y&IZ(rj970Zx+\B4tQ2I@fҲL_QgX-cQJLe&K%F*LaTV&ܒ^zh,56b˦u ''L ܸ1+aB8}7 e'>I:u1IiH$67fЇḮdlemE8LM΄Bh" dXsj2aY?B w\ъV߬Yom6r܄Rgf FʼƋqz(% wJ#+d6[44y> ǩ>YJ=TP"4teO09m Pk)E+)ip줷4K`pb,Ym?9nBi p{c 5mp1 L9I΢YB@o3C*f@tL^W/IICX͞ }HϬYquJ-/, h K'ĥ:/û!Vۮy}h&vvq+iHUˠ%Ԙ- Ld)DMwm^3Yjv ̛+MKVtvPGw*D6@1e6&Nzgv$E):4q\EWtBdƍ8-H#LȩRVL%&BjW"&b⎈%ތL J< nOnO$ ce R ^a.~ F& [ /ADD$Do p˹︦rOF…-)^jr&H,I k?( $ ~dk\홚 Hi?Da*vRVЄ,Hf"`p2  cGK f'gEY.TjE9` a "`g@&?펊B>n >`<n( |e W@R(jsȩ3QvHm$)=D|p)6N 8ܢI? 2JM`B2 -͞b FJ"-ΐn d矤$];11d`>2ӐTf3e84+PM lk9Nj:dbep66!?A vS J' "`?`qDF$ EZIE-pbI:p !䄗02+?~/sq ߘtiқTJ Ou.༦"MdrL oI$bI<y:b"%t0Une&!&Vh/Wރ4Hڂ4~}.~V#hbԣH * J0v+tK$ !.|L\+& @n i,vKH1b7,tF6rM,Bj2T6*623aBްe ^( jO`Ֆ%Y7]M rCYQb AVefu&fUf"!raMjC=m8DDXD^RGR`; npI4 `&+I $))>/>S-7OV'@)7t"4J&@0lDΔBNDWrlZTF!`F@8bfg#8T|y̑NI=BĘtFN4{Js,7JG,2"jƂ*J6\̅\+7 NИH&1B&dCa,]@p$Q7iv[l2$JeF4jq>:e7_AYfTrR3c͠V JVg6iQ6g"\s9vHtbZ2fܚĵYO&KpRZo\gɖĕ\gfb&qNs{ݶ"ɷ?_39>5@@@֒Ď%'I wsΎd E4$c1,EzF%g;fRe]rdt&`6dr&f"ǬgQIiͭ}6| Qr*9Gs0LR!w*6C 8,",^&޼WqGmj"D t TbP: x0[ [Ap0pT8 5rYL5A.s77^GVuuW !V V59sW/79.H 'WfSU+YDZ7EoF: REu&tm/\밮)4*h, ?k?>qf"?^^O~VV sCM ֜L!dp[j{ Fc&vn&>obR`rfbN@@#lV. z4ST8{4*B,m,ѥL̿|XJq { +OPJ=qumDV'!tqh0LNI8p⚺E38EM3}#q^lB/95M:kg|3$!Vwe 1Y7Wgy..%^l  TkX9oZoolsys xEkf9aYJ,u? ]_ƚ_;֍~@毹@@?t\kk q*w:pa.| T#%Y"$ :頡:fcF+|%Ԣ#עG|v2bv|g hAnXs\6v$IBY[ atuZ yuޏ!IūXL9ACid*P\؆e$3TZ\e 4_aB&Ҳ:˯1ٰi6<UkX y8jb<0`ݬYAd&:D7lyp@&]&ڸ"\Aj;, *z_?YY? $~/N`f~ɹٜo9w1'}0i +zVZF%۹%eVhſB|3*=ݝL2HA] N ]$,nqSd 0tL}F|孚Q~2߬I љ^Ӌ {cbDMW[BJoRec1{֣ `HcZhZ/R &l"$Z.W`qu|&:XQ4YUHg^&8|7D3x[oW]:SoR ^\W[z܊9LU+&@lm@`+9`7w`[W s#{y]l[c̜͘RJ9~Rr:@۽e_R `"&Bn8ceaDz.L2n5@Lr)>ss(VM>)ƭ c&_H†6p. D_AF`GYT`~D ?XuS8ElH(?\4$Đ\x5q5֘AsA Ff>#`?%*M8SrD$C#pMJ1FLXTWN+Pk$M DgBVE^tO 1'N1? !|9$@]ԠbD}W_*i9&9EM5]tKk$L2AXC)@U*X%TRa ?RZ~(WH @YfMᙶw3EF0pd&(0@'' p'& EeY*U {F.hH QF,^f?Fq "vn"|?q@aa'ukH)\{7^yJr!~'}F_ G"uhb+8?URxQ2W>Jz#?z@H"P?f@x5pGU$T[V'Q_(UNr>t)&XfDyQ?juuƨ]l(_D4| dQazQzV7{F[W{vD1QAi;us:E:E: ( Q"a*S* R,eC*C;w@YJ@Ф3 ?%HWîdJ^~_&?&Y- [1FA5 YkbÚ,^dFYoV'\CdȮA"‰7fP#qIȋ|=|T*:w#"Ir~F8r\"Ze@ q$KP?6ǹ mt"=oH51`N. H(A0]ZNRLILQzD|PxCKI8N`aPh7 ;DtƳl$}*5yBwzCP}4Ȩ}o9IZyqG|Tȣ@5(o?AkE8jM3 6EdAY":PJbiI`Zh9q ,VWNn),]z f1jd&SXƒn 4M ʹbX`%ʘ1,M`Ӄ7s&*v[CNE9R4(ԾGF!=@TrS,i6L  'HDS)d$4L"C  K0MCP$  _x{MtҜ4C+Wgjж,VcwY'(S#(ǝR>;dzw1jmZ9{QIYh3HFGQ&ҝMy=TL(D@`o{$!jV+- XN(M$ 'H. L`_z0d]3㖴ʀXh+ ܱc!lz쯻?Ch,;uf'Dy9|&`@ K,;O}#䄈k r;Ghe=n _󹄋Ɉ+9 r- .f0s182R^%%2~S^ CDMq7! pk"pytQ'"|g@ldz,Q2^Q'|(QM+g3@;۱BsT$Ly( %T^^шhaյJ\f+hZHU23d uVtIb*Zhr?ghA18=`Dw,w>׾V q(P3"J'9u8(;;ܹ9{ Ԥ?OΣ@>+6oֶ^S@t^F?TRau)A uT8BF8D"moorzÑAB?/ZR'V JwpOB:-N1 0&?hbkaX'!(ACt3%O!R5+/q0q|d^]r-Lh-Ob,EA^;iS"Hs*vB'l$Ճ:SWg6#3*%YHVY0(ʑagGqsVg(9833gг28sig6"G( gkUBen)+vC&f,`Dl 0sDvUyT y"&W2 , : OE[E2}E!GhduDz؂ȒGG5Q =X Z.qkYIHG:w-t1g$@Y@W8P}8 LLJ`꧎Snt"M^b\' irg%!eY%P\DdNfB@Б\)(@;cAq6YiV*jY+ Ks܁s)5hD8sHJ<ف%c6B(jT@gH@gZBD&.he> ea60#0?t2j-,@BKIM\81Zxu9r% d,@:$Stx22xx2bKR>0rG)&U[ZRdͲJ; = *-wSG$0}ŤU9 LY,9v7$!Q o؝5%)!p7C$p_&d&u|9:p+;NmifX?(cu[%*3gYzj'&.iQڒ  JQsQGɡ:A:HtPBcsR'RA/:\˷APyJ_pÚ9T0siHaAEJE.0S\3WgS9GA2E`xa2) )pN`j9ozQZeYxG|gz*wG+Xk[= N':[fZb)'["A@: T%mgKə]K-2`Pl_1"ۅLtDo)`ʶ!J:: *6M8ԁ,!3i`:A„!kH<[A,<%O"Yɕ_]US9L m4= oN9ٰ!$:~<%ؤ8yy~|:MNRMȧ{>7:[ |*iF q;_+#34-V5QGfsY٪,i˓˴\˥],ۡJjԇˇa-T-A?*Dof-DѿܖrR1Z'3P3+Ta, $S2x28aQQoz]IT3= ꉩ6>&7bOS*QR+HL2 S[#qZ~<-\D\逎d̒S}_A˭CJ x~M-^̘J%"o\z-P"% aN0pָ"MMp^_`#z%[hhN9&:sp&B))F*jwF,zھ|˪˛mڥ}˜] yyڅ>鴼VG4yBd'- As({0aVi`'ΚLHw!-N岜C1wO wީg,6 -30i I#*߃DOkralH^i[(k('tE ̆:!޽%$^7v9hIC(똎o<5a-%ʂN;!35̪_B|[Jc6Rjdyi->uZ!CtRH 0U#3[s#0J|pˮٿ|詭Pq |j^@BD k-Vovwv v {V=MJ3 N2x_~.̮1Ñc chN0b@ݱ$GP|j=߂4ӓj BQy7l/IHHӰ2<,3&~{;z ;YgwCdUCHǎJ55QdhklBk-ZpZAN'L4?NQ֗/D>蟄D~R&0[[e 5MS0A*h2˿&X&%eMMu&%H/\ذkR\7t%h^8JvCc9 0GV # E N;@ 4$?"O次#;qxɛwLk† ؋ 2e2;wMQG%j,gĿѥKW{OA"P RbA>$/JGnS%Aϗp2V,.p@HH4 k #,*/~@A P3@C , rE% 0PI"p& kdK)h<ʭEC 4`M6Y͋j &H =4;k笳:DD G* jjb J)u Dӈ"!>"#;#nJ:Rjn6X5l0@kX,ҬbjaTZ)EQ@1J) 2!*7t L0 pL,Hв01" Ax#{H4',sXBs M7}G8䠻|(;P}":zc X$tXpR>𻏾S9蜧W_`m)CqIDqW/7CsHmClÄM4LJjI4R -`/51N7N:z̓.SdM@A ,0}A&^ "j  k^.b!Ln2lGf3s̄C: c=| =:L=(#lgBCBb!/hI6d>5A[#,qEd;[߾ / !D{ЇږȻȏQB rS/)qiZrp!HQe2xőK'',%vj'19ˉuRV!=fR)D#u&_,R"#& pZD ׬h=J(ܯzb&%Ś@E]\QZr+3,K6f'=)JQq2 d@X %/| jR  "q&2qL^4CPtSԋ5 ^rf7K]/1}"lꞃēI8.WE9cv֡Q?ٖ- hI+oAkY "!5$ <H m/P#7-Db$۷h(/B㎔IOFiO2K&W"D!`Xƒ9#9n+: & HouI5ɩxbB1'&&#Pw%&E*B70S7:6 !)srZH+(+ﴙLT0W,JW9-LRxB[>?)O;)JMIFUtI!f0CҔ2̓u,&3Ai`È5%_HlrrYov&D5"ѐ7QGʴ㚀@QgLɆ؎%H}up?z%K;NrSg@8F@'bȧ"hg,2r"\5$yvŜNgS;ܱoz3,ģT4.۬QמyW(7a.#E>3(9p @pi&11 1@H* `( GW9+ԣ3Y'^ 2y%c a36˃ ;:;JBF$))ӐE3#D$C'D q³B; IL#QAT: QC#Qȏ5Z-X|jڹ2Y­``=@qᥑ0 a.9qb fQ^3P&HT |Ep[0G8Eay" I`$ab3~+-"JbQ +.KovHb@YT>ᆖ@NxzI!@'H 1) 1 q.?t%F 1;a"ac# 3 Xʛ43…jB#*;E:˂4q #pD{;ӗP Q Y4ɛ4I64=L[)^2A6@=ܥH\i'cFCP,NM@E)N. yf3C G+Њ|" q0$i8UDqYL{ PMi0sp#"b7YuڳGrDYtN9]*7ґ/uQH@ 1 Ơ!`lDC[55v#1精Q$.: Ί@Bh9IaV H@Y} 됽Pȱ(A` D!=: p+XZ SS{.b9Ŭ =껳);$ʁ#ؐ!DKC[$!((mج ᤰ<[%`(_2ȵo I˝` (.uPhˈ^1ڹkU嫉[;%QB0P 3T,VDת(0c3A۫M5,xOOUۉD8q%a=U(8HP=蓳&$b'B1Ѐ0^-aVI],Gű8 h . hHPd5GH4A2=4qKDAq:y7H5 8d\mH.|hMX1_zЗ12;Pi)+IKېe\rW&)y0P;0hDZ}28DA7ep 责QQں(8OTINȞŭB yMƧ.mT/)@+pF= KuM*>zcIWN9c(Pc%=փACj:@cՓHZglzdL]){ #NMVӁȰIT x¦:X ɟ  C7` f5f c_3C ʚ'$Jֶ: * ,,ܦ-#$r&ͱʼB?nx^A>.[Y侮&ȟxϤA<UhlJhR6m kaTݫ n`"6,#iᾑ0?9P,-lr,I&a^y`@)(.E4V]M>O\(ܩ99H:8vCAB>D }rbMLV֩p 2E1]Y?gV9W{l]7tN0M+U-IJAsـNvQ yytf~؎=)3B)t둽 < Bo 2!M"5 nRc> > )~ Cv69]lSon/cGLNp5YGl,ɔ"e  ,n"H鴱9|LpbJX^p,0\5>/&<%9q%?v:d !?A(A! $rlrf]edr-1 bWH-s *m&!P:eꏒ/ =ώz3! QpBf a)Gg);9LwBXP'J7ю tv4 5'[g'ԋ2+܉}h ᒽ2=FK hpdL&;o'(@eɔ \R@? >" ALH@!X֬i֚/ bVMPbV¿Gp A[dcm[ \ȫwkk"JA*QDIU&V*Cǐ|/K Xa>6?^{-cղQZ¿ R6PW7n7Զ[/_4ŋ+}}BG!Q+grk`.kYQb|%#fa`X ^S ^vY1xEgTF7BQI96y$N0C#wh5 AcPAxg?&VIke C\ *gXl$S>2O(5cMY9?(_RS?49e]҃! H 1?5&+b$W~`PBJ(I*aPA&rtDG9C+5LT(C 7p4ABI&`S"c $,KcK@ RN?%ԯFMTђTMUV @ Wege_\b!Y `Wx0f "J*p*4f_WOUTdepYrձfjéjo.Kg[jƽ\r(9m9[u9vC\ܖmS)'*Y>Z(aU׿M az݈wȭwym#PA!O2R`8wRRrŃ HPn-$^K2U'RNYNUFee;VY_jI[ra)eJ,xb=J|/_q`$G  $??qsC( ODJ>@ «GH,Y01 L5c࿜'ίc !\"7Qem?E^dK¯ De_(4,adaj0+Aq€`ӯtIBVXҚxY@gj8ŔLf/YRQ0Xo|2̊iơYG49O1Xf> z?h@,t)H,]{ҵ f)n" &ow ӐGpՉ8E Aav ܒ$݅Io[CHct<`' 58dw&F=ЄؙE1xB ')էH?>0ӟI*VJHd2JVtq$lɟҀ`ɄXLH8 +Y-iVIZB@Z0PVɭoTiRE*kRB*j$!VaDJGGc RJh(FeVD̞)'>c˸LdW5p35gk4 uF8㱐4 0\+#:Ҡ$Emh8A~4$4;mѕ;,H@Q<+emMNS63o{e8ЍnPFPyd! C`2kjflwvY6sO|?P󲓝$Jy5h+J=! ‡=!P!č/pCiGf_YXºhGh(= Yn 3Z)U"l!L.f /ևrIZ_L1jS}¤Bl z,A>:@Z+rQ208(sWX͆gyu-fy%T, |TrB[샵XKJxt4$,cFX Te#[ i'H%AOcd-Q,9(2U]9̆#瀽6[Eeu6gkt\Zh}Ĩ 1h+R2蔨E_J`߹ N\-.ܴ4! q[kd\`1^tk'eNWJjzZm2H 1S{'=9TKZ$kB;)2_Q"`!"v_"x-5vbaQ\5I7ZHi!`DO%EKQȎS5VXJcd `h] % 5ɖi<]%UrEY̸k,FZݘqmam[Z) ՠiNڿKX|pSed-ζH%}5@XΊxGu8`B" -HHtRXI'.r2]QUhWUv5I^XNPcPRPe I0H (ћC@2f(0DDPb]#N؟I-KG!NH=:DH8K0:Nw&Eg+EhB`$U^TjF_xTS,GVdhLc`rD%lL~Lح݉ƚL5cORKn%tx(عla)ӕ$QLI|4U6h\ __ ]i]'Sy? 4¨A͊1C',VAԟD1݄EqOh@\vR@8 5p'!`jw yGN\UاR YGZTİǫ UW%^dƇ2hI]:KJK|o V]ۙN*!5(rYQ^U+]iYG` R^ZgQǯ qhgURc kE(fd ѺypMcQ ~bb-_A)q^UэMWemIh̛ܚN PхT_XTjǀC ߪSPP2131p d$حXc+•Nc9rgDȑtVT.։ }}@g0 SpQgBV cƇB(l$L.jox/k|jT!vo:YaJz\|x ^#Aɤgߨh̡LhMPL9Otk} ꥩɞ^p=mrqGqmhGTiGi`&xu<uܽ5G+ 9`d||Ť- ߺ:f|=?H4@%3tB' 7hDBؘp5A1wVjp\+Σie՟wNaŚDM^xSۺPJT{ESRH_TьƲllYoLdD0S~/1$[k$4GJZŞ[=I$xHL|4)QzV5)a;Uiɳ))bvZi}jJvbD0&VHTh"&)eƝv ]܁N pzg4 l-b1?H7`cWc??T N^3C(Pn0*BqBQFH. pć3$i5Zi!lY=HFJo=MK_ro|p]n/JnrLOd4L/.c(/S^BQ>.FZ~®ս*3[}\py+et󯾳A\Hr L8a\u~)'+})' YQЀVD_Ziڗ`_UQ'Eb|rFBR(7{tcc,O[8&x;%t36Q3C񈟱FKSL,ꈍKkhhK=svrsKkh)Z 3f6p`[y/,C@:hWdc[sTK0oOl0ye0h2ltl׍v/hn/XpuGLJ H]yG k̐k3H]&mҧS^|QH p6zFmmI!uxDÑzF{[3dp WuZ91HLՋݐЂdPwB'p꣒ulnN6l(,W`H' 8#0dH"-@gI ,ieI(GRcBB3eP2!81y4Зd:BԨLV2jHYK:ISdQEuBs $Hu۫? ֠BŠ X\ȀH, {=!7. #~Xdu^ӆ=[s͛LAW\yr˙7wVS^}!~^[2dHt\h> $`x2` @ih* "9`'C ǀ2i)inhV@r`#Nf!Gp!GZ Z8-=hˈ5.dA+(P̷l ,h:(.:9+trHZА~iRx Ң$^B 'J+d2%f&+ʬ[J,F Њ*`C} ͡+.Y#l;,Z yZ#mnO2C *+.1Vڌ\7m5vݽ|Y&+a ^9+&b;\+F0!/O %0 TgLɀI4VPâR$Y$NCGFhb>@6{I%bK,,\-9C"S1 1 Mf<$G@Do".%n+<ܡHC2 uN7]%M) }S } y:j-Qqux ֖d]ޮAZ ]J,d2$ce{D jgM2(X3 1m;45_r;x4 iK3MEf7I`ߜF yȔIXd(PIƄ)dsP.yqػ#< G)'{|DLF03 d=?8Ѹ! LY8G#P@7e&jHჳ>УGb>z[E85l}[!D`P]b$i¸HKZpHO^ItɗzSYsL:׹/9IRjIw Nt^RIJy2ULX’%0#9׬XJduSTNSƀť,!a[ BB 9˧c3zIMWCmr3l› 9'LD?B)lVa,2gcN tFc HB>MBɂ(̊@ L(BPHD*8 C!"wD (Й $P@Uv$p1C4 -%((|ֵͬ-Z%JIJX"4p`s?¤~ *<66 jtN_CXEDWV6)&h)Emv*H68N$.1ջS)DJJr5=8\QXN2\(SBDLs 4ܕӶr;c}ֻh,ޓ.Y: VQr6I(oP)68JMSFZdѹht2(>Z<3pd:/|d@f@B8`X,E` Z/zhCA"]"74,h!Prr H$ P\>Q<HrR2rJi_!%p <P /`c0p{4c`5ңxRvkZeNvlmH\[LEwK-vϭSX-YbrzCrYd2+ݕ:Fܰ9]%Te\Mɸb .oS"\k1N&Ѐ] w!yN*r;9h4`5`|8cXyÝ;.+Kr5G Of 8HbFl$+`ֈE/vPy'΂\"U!`r!@׸=Z%c3ecHgtWZo(C6!Ҁ^q-lv8kJ@ou]ʵ6}).%>/AmxNٶ=!]gy^`\$RJ yq^|jNST !RpdڨC6ؑ CbBB&k2:ʤ@EEvƊ:A$$Rɔ B`,lIpDgmtEIL0"$&(/+3v#l^b.b.m(rc4kr|2ޒl'6 ( qQQϗ>*9 A 6wue*NUTȇ O%>KSr $4p4  /o}Go`4j2"C/40-Q\,/*\0򬜄n J?d???'@k@p"@gQ7 T*FrMrn pO8,#1t/D 벵|BTH-&/x^Va!(H͖CWo$A"I+7c+ H$LHJ2Jw `pt+4ڋ' 3V2څLN\4cVK4Z|OP1o4ʏ95$$PvNjG\2UH9opBAp ppmblȠJ :AEnW * BDŽ>!#FiH8AnjJh2ruԓ$(ς@0h+@5." - .sP@m^`_yEnvްvf TR FwKb#&z(cyO)%&~c*2e7p74QSl-tDZF-g)#82H 4x7jbV`D]C#48J$F P4qn8Q׋lCyP($V %2v < Hg +o*UIdpCBxGflpw7y;%p*$jֈsZHL;Ab?8J06*˓r,_4w yw_b"v'w6*tZ _؊-$|GT-)U"ԴvhS (|IRؠwٙ*4V c~Od`d)WM֚q7E5bK#i0̃SrY e4 fCR 3!͂`phVlo޼ciτ. F%'*5)if6@F8D&䊛VpxCiȠ G:U;h@18}U`($BL8A$BYJ`W밤oFJ&6:6y(Y.i. ͔Rs2(UNՖ1䢀fE4{V15, 5,|"f<S~bU w~4HkS`zu_"1eyCdO(ę[8Sk/e4##qtL9ݤ6َĄVD 0$>bvbz!y ; #K좐c3c9.QGc0xV\Z„4 {Bv98k73T3^u_EW$z$fDbfb<$::JBBh=hh?Ffhi?DiD‘0Ñ`,BKtH45ˑ7pb>+";XR2T2 /ni|i)jq%PB| .1wUzԪ˺-+.9dS{(˙۸9I}[e.wb5`ͤ~V"3s8fťv.0P:dFa5C2JJ5d=ZBOɴ2q -F4'L$`ZqQ[|$x$ZŗeU0oFAĥ3BzF:f6h`LknVU`vɑ*]K$L.v3q@Uů kg%Gs7~P/8/.v>"D$.\.'gWb`%,-R_5m_Y[7)9RkIKV7}G](wԍM]e7c2MbL4[3-Yͥj@P/vb,W,f&=^h2HڅH̋\Ƕk61 8G%Uz¶* J@FZnp9D7; 9DB0pZCªXpoSw;k$:}$]%4ɴ)!'@WG4 VHDNÇG 2a #0Q &`Ѣ!PV $2BqH+0O "1ć (Ua҅*OGDA`(=ih`,' @Vc:|ns&˗{;n} Sb)"[a 3cͿ o<;?}֬9w b1Ԝ?'yka]5J\ס0ppQ]ŀp80Qyɏ%Ñl=mUF!XCi?b ǛTAu\ vOx(@;8p?SO <%8s%= R<: Q7OPy; 0FYE3'c8(|FB 1S adF#!&hO%C# !F,M L-DUc?)LpR3+C@QWE:eQ1!qjlP4AZg5qqeaq;Xb)m`=PlėkVAd=j~6h6kBpm{ioHAy5t,5V&,p}APh4м"5?1(C|_(`B( @< 5 "Ď"6Y6aq 0qB$tC4(:Y-$t 撡\Cc]zO]%M: [h#; >f|:@)4< ? UA 'XԚS>YDU,Z9zB:Tү"tQF1TM@DqC^m*Q2k<4X8B*SLŞ -Hˀl^肘n-\B`p"{L$.|m&3W6|&4'LjV~+2C&C.? oB=0C#+9  =8C*`w5kTgHDzLw$m QHbP$$VXXCbE(!8c5 ws"(?%rHd; tzT$̥J879r$ɲCXnOp "=OxnANJ2Q󢳼$jSMoK'=NQ=NTiUȕ8헒PP KX(8a-iK߲F. `rq'頿Xf^iʀ i ”jF^3L  І x6!#qz2:PY4I0qnZSw{ p"d 5OY"NByff~gĄvZj H` cP a"U Uȫ0jV:Tu2S%yc 9"{-rKLZe($5.q mߎ t@2DD' A r 5 HXbG *\%$rȬƙXADUb3EN}h3N3'h@Z@nY.18a4cD.zP*at&4%,M[Ϭp7ȼP#CCP#5Bx.!B03YŜv7 M1k]~0Mm3C֨ H@z@p5;=Momqy2X@/ 37@ I4!moW& _ZҗFm:9Qd[XJ>r-&ģPKRmgQrIM2]NUlv Gٮu.r `7UEv rk ;$.O e[/DxjQVIU: QnZ[Jx$` 5g dÒF v%rt'LWB$/.&kKfl!MY@}" ' [S|F1fWu:Y(@tZ?rH'8`VPӹig6h~1G8аW]=QLLm) te~o?%?1ζ}{%L< Y5DtiC!kBdvmcV6;9 5f?^-#cDR##ֺ[©푗*#+ FAoO}RUeLNyX  Pݜqؒp Q *0qaD!!CA/ab)/,r/0*-.$/0cSs/s<0TE44]2"2!2pW=L&d*U#S3xuS"r4AS;Si$j&&&#p;0\fv&pTvixw bx:GF B3%&}B1YLcfim5v`fgbyh6&9{$[r%Ą%g$ORZIOzC[I%k,r&>b\'teq̖|2[5Ed@vqVaulZ4Kc7?"Ggxs&31R#_r[ xux% yh0 azfumf{C\dՔl5Ps's%vxViJCLKt'zK98%vוt׈mIAv'Q C}NR,70l!Px.@A?aqR1/IqDqaxS 24q//h,R+S'4S8Yt!SP&#"C7P3]a "a>!a2vi(WÒ,)GpVl SjwfeLjgkRY$QB{5%]╱Od62vfL,B\V#La%y5Af}#DJ[Bt#O zXjT1J\6LU,Iz2!є5rm`0P1p6 !NrF*aOi F JpvQuA!8zqd/!WRȪ#)rr0#5qe(4D%dP5qea#0TEdiBiR3IFvd%gg2%'v`'gg;32l&r\jv#8`8]rgizid\93XȤ@3#c5dryZVb*Te$%<릛FY#4TD!ЧBbH6m 092v8Ei1˩h,3@r! 7V- .ZA xA Rqt)B(s'g/)r,r+ǟ/AYYW;&LeNsӮdۺxqyvfVXlwWЦ[Ƣ{'gvuvQ9#5V{KWL[yBfG)3;8\|'?A\ԔQ#30ii[E&=#W#1ҿd9OI˕j%Z/R"&IDBcMG5x!0R!rX1zšzF`/¶4<*t`r@>!r QQQqȸRr7S"s1ǂ(T(5Zr`Q#gdQ3A"}uIȮҡ6dHk31x$&v3e7g&w+#C"% r6YH%, b]Q!q,a3r> tQQA5I.٫ >2.".3cZB,x/-GR,cB+Zs,[EH\i&@hsAe$V@2Bl g$L_fp&#v# gQs'c#+ {fS :WEu$/rjLd?!xקO#7Bk%v́HPBddBtx 翡6P8A@-(EQ᫚~ka+q%Tq) }hCq|$qB00-_Ed߀(Äi mVi&; >ybVk&b&7YUV: @{ g@ވ%QYR1reeW@GK#t9k"VvpmUQZ"ve;mjJnsd{#MMHT8^D9̕ug%k{#=LQTs<FĚ]PT ނ ZB &R:QL('zj):5()P*Ӧ2h$c0kC-W "+4صM ma5U KK  30i: b2Mr 48; 5oC _Kβ2|#/`4᜛2C;c͹W<$.A>d=Q EkQ<\ [~fDAJdOtݢ!y~6m1G)x$;!b"=0C_00gG30DU*32p"|Ύ+@“"=CrBGHҪb KmRN*ʩfG&)Vײ`Z2\u@`,Gz gۢ^z`h,/ŠF} #VЌ] tV  Wf8haMk bl' V72ـ1-΀LbljC9=, EuKe"O@I! pP$] k: oT QP!"z5 WSE k Arѣ cQ-1Q'1Hw5#h/kY$`i"n lr-5d8"H'=i$I+HĖ* 낂&9y/#V%J'|l%=uӛ7%`2`6o2H%\s<Ԋ`tih=V}?vQk2C_՗|"ckU/H_`cc" 8±n,<Ց kcIg;X,6!epc^ 6:lZpCY4c񏋨䠡<eQ=MݙB@E k55&:hHw4 s>dr $H&i9Js_b ꓟLVbJ tRQ=6k&J joوDXY}E:,cGRc fU2Ld&2Qr;QSJKbWVòM<um -MR"(``t3 H&0 h@\}!BrAZ&8ԣFE0`s8dZF k u3S!:#U*&j7qlfC>Dv%9"~3Ƣ*`72*o&'RPW 0\iPF E, d.œ!ly Rzǹs9-G+ 5|&km#4IRE%k%'-B:$Lli?bip rdQJ15})sS fIrRn٦?l]QA.X%SjbKnA@XW3eWbLJhƠA/&'dppT?W4C1%^:5c*!Š60ഊ#l64'?Aa eC3'^eX6?भ@:eC Ī}g=ݿJ0y\W5BD$ᙐ<^1I{^KRҽb*^ [}Mk(DJJy&ޜBwۚM^6嗳.dֺwݮ]b8~$,,ilpcmyc}+!VYD0wޮ{wm 2SMl}nv jD؆ $83a\:瘻> ciuc4ݖ "j1a"9 T*" z$p+¸"'Z06Қ P ƺ3@ =8AiVB ̳@!:V $I,T07: x#b6yB1$ȋ1BKVQ2^%&UK5\R”;J;OVÞHOv2ao: X4zk99L=IBhq  v{q`Ӑ툾8 q>EYrH@q!#!{?Ĝ 1/Ȱr뽕ʍ\E uK1!ǑKY[_d@[jI bGyr!p 6~# Tك3H7t4<#ɐ$B(A,9К򲒽Bspә<@3L, aU&_k<ڙ ]j;Z;lCLha iZ8=b6l.zK\;/i(Űt `#0'8 y a (Q2bZ)@r2A'k2r[?DXE`i L8a%FPةjl:9PbU紗 D "<+HϜE>6j΄$1 9i$A$!9!$I<ɱTyYKDDW K[z0hZ^PۜBYS[t} Q7`2&`JQܥZ# y}=D]E'8`9JڦbcDR"k3qᐝҽA׃0/!R00Y0ِ]&G}E3W1L)" Yů:*AU7s AHŃԔ X>1ؤ;T;R@1*Yڔ{2'%B+~7>Y2](U S0kjTڜTگ@GtETN@'i猲K2ltȼU}ISԟ /.brAq2{ȍ/Bd-;̳1:ӑ&G# x pB4)H ;P]P%ךHÛeW|ʣGإ["ЂjJvbn* j ip 3iA3m~;d4rR_]7vR%#~>sX$++Lv!T Ǫ(>h(;} gGY{SB!v\O:IKpgY@Kl G &*Kùp E8'HE mY`}|K]cʅOd͑3:f >Рh؊V7,-]yJ49yѤsufʸL)aotz^[9 dN! '깆Qt2Vo(m$OE)(=_8٣" 0b`=\tYk#aqhDŽ L%n8tvS0^[zLn)H*R*AmSzZ70'o4YY eOIbb=uj31Xh'< ,Ç#!h g_ Klj KȻW ^dE&kw}Z g gv)Q^Nq `aFx)H\u(a#: HuLY_-CƤYJlG"6[蚐fA9XC`ʿ*o@ȱc 7c$`d$cVDC^*8cFKB CNHtŀPTQ[+ȪKs`%j0bvظY^@#!{>pH! 1,BF%˝.&f!G 2|5'׭L3jSG!A HQx㋗/1o8ċ_B;Sdߛ Я_&Pիg=۟w_N?:a? X h6Pӛv(!XوaB&`@ F"32bA)B(3K 8P,SK1%H34Y? )TPC94YT?-QT5[ `j uPC!O %UQ UgM(qc%Ge yWGOԑD=yO@RHzS]DRU$֒TWUP]TYiRwѵ]&U+,<_-XeV܆XeHq4mghi~#'KkaaHwx;6g0so@]A77vUyzqAyr$+`uN4`j?RA5Tj03oH>.eDOVi-F `AhuH;(s-QL6rw^yBY)F)Бp$wGx ~sRU'o=)iQI)DQM5 E|G1 H*%LeAV^ɟ|tHGzv9UT&XŗTp1lYfZ&<^aVȯU<=E`QqagXBVY!NO'TjF 5Z_k@r3e9r0 (8;yG> I)bÜ8a /Cj朂@@x?$T qfƇ?d[*H~TH1G)jsn`/BLlEWC2HXrTR$IB=m;B)Q/uq1*HrE5 .p*I@P8 #Qv6NȈbJq#Y@RkTL.7vCS(f`?JDq?TUڈW^EDVZ\H2U$zғ^%jKbƇDf}зµ1SjPĦ H5^Y 5,9!w8P,;! z: zXm=)|3p=NACPef 5B !H7̑BbEgъ+Y]\ia5iSe9ɗx5* %r7.&&D 6ҷɐ<jB;NUb;R~+[f8I [ ֲe`J `pOguaRwS][A%Z̮BC@8auUhjW[SbItB ,gqOm`3@Zu tȴ* Q{ [pHD|<kI  kKiYP?!!iV!A 'P C͐S!5!e TuYaBr$XM!)7LA-dl"2d@DYNl+(o1u$ @ &<$^,9Exr۠f>D) FRDI)^-wnnR = BYb#eo2dj Xs[jt[cYg%$ `IhZPs1i>c|/{0H0TKpoaG1 sx9٘ ? g.(Z :!8iR5] vyq]>9 UUR|$"`FeYRP,&5[ٕR( Ͼlp.l @N}c+EuG.MmjF+nSITC45M"s?R6svoғB`5l&ԎjJq[5DVFvfb] .+3 Hky銻uZEm4"-g=UӚu/_k/ڰ51&1 ~8ѓN8={S w qKӷYekg bX eRJabsy+bz"t@PFƌSQNO!hn(p$+ĔF``+Tt~#¨`Զ|F&~c0zFomb>2*XFntdD,~L& } } <04sPv;J3KaQo&FTg un}2GsNRHQE甤}^ݒ-CgIE.ݲvᔈXOE\YWnP^ tER5=' F셍aY),#fk{Wr}D<}0EYteӐ0903bs0w$HL I@̖ 4Á-k=z˄KwӣBDLJv[P)βg&,+`Ŋs=[wG߁;wpVYrĘӁ.,av\buH8`ta$a3 C(!0ڐ%7,qGnƆ(7\h"! Rxh&x -"#'($-1jF<!N%pr&4&R2kJΌA:!E Ɂrªp (T'N BծRL+0 rɎ(s 2xDﴁNT3t5ضm:z+wέ A 1ιyٍ(θ(<{=/L3³ZE+L! 8?> Uq LiZz$zD 1 /ÙGHely Fq<|%/W^4&9z+ *+'dtCL'hЍj:%u, @!*,u=+EF+ƖI&ęʨ9Ҍ DU*V 'Ի`,T.w0 'Q*͔f]D #{ [nq_qce:)+76k;[9#.:K<0iMIh8\">~,d1ED8$Mjp2,f0k@2lE#jZz4!1.rڏ4a LVԣYmH"W-iA"jxGvHcI͈1Z(2t)eґ mInF!A9B(Mq Lz"Ƴj%É栩čMRO5D%'a2(8N$:cőtYсtvz&7n RU^ʭ/ ݂֕2LL3iقtHO++44f{D&tA}f6 iG2ƌ =aN5+GFDh;"cEzkRޝ1rŔTO״zCBM{M?m&?ɖ[GfRbB+qw @g p%^^wU.oI(z+0x)N'JV3/>-om,mr}kCINbȸC.bQmiDNHC f:$`F0+gp!I`mkt&g;8)nBd$B*k)~J%Vvp1J"OPA k b"BJ ĦAhʦTĦ*\ώTlFmrI,gϭt-h,j'F. 3 3>#0R&e"AZ&M;y'3ZxY5T[:5C˜|6f|F`+C6 <Ȟx%ЄkpbEnMM*MKbIcDNc΅?&cLĻF͊v<1P CNGT$蕒(ֶWh0NA'kD$ ,*rh#Mܶ ōO q>&Hh#7HbJl(°U>&g)"sV dF& djVl.䃖2( dkG,I2#wX,\z0tcL\1ӥ_FR|R@-bvk1+(m2.d2$0b./ef1Fƈ^^HBdG@Mk˰):MgN-Q`J!C 2#45'nX bfx$Mḭ ̦+>:wHRrZ #DBDFTOOSq'ABZ@`(Tf `'0m*%nq.®J08U 1%u0b%<"I,C)ZNZԒ\ܒ{lRD3-D\O ծ2F"-we "j *0=FE!q 榶+H >&H3O*B aOMAd٠'HT$-={$* APrH\o=e(' m(SW"T)e 4r* NUbU,R=dfC]Ō…Č{#JkH΄t_nx@SI?"DQuK%Wb"( тB$5'i*vKG KdE cSSt~'j&C&8gf$}OD: 5nHLRhK,$A9GU  V iBghk!DU\O bS04@ylɒT.f+uYV`v-u 4`'wA1^/kɱfkzN#[i5f=*]E{r[d]Uw:\uvN3diCk~h-gYjELC(?N9vLn6y-kyy^ EcҮOU"n hqdN:KM0+i}mTHHS$ϐdSwi5GȖTlUQoW" jO"OWm98)Y>CqAQXA5C?IAX n&Cw /3j )\gs]`=X.a=X.^+@̴j1|f PbibB %MаdCndFE?0g´Gs4lWE6JπFmV0WPtnf 3 {V"4ؚN.Mrnׁ#Hl 1j7UluiaY=+-6TVrjbTBf~s tg Ȕ3pY\ߞAnYnZ:IȐP- &yJs)z2=6\<<7tٕݏس<+yQ[|}ҥ->vI1LʩP8.LbtkdG`x `aDjPyd G0dR0=Z0emyM[l9*C~3 wh>:j]ZY90S瑗{ĺe* 3nΆvUά-ljTmm3@lm?W-X.2Eժߞ%Ym3X@vyu( @lxd(/@wGF-Iznԣz9=C]C.z.{2tڠ|Eu7b+K4{:g %$'K(g#dNֲ0 [c= #ѧgԄ{dZs"@ fLjRHFjZzxߗZhVꪩ׶Kzq ԋa92onKOUSWd# p&"RA8/"ߌy*Iߜukg:w4{4/0")I.F)VPfODl]H×=.EZ>Z㊉6Iubu1ÁS{)}2ʑ% 2hFE9v0Wv=ml66WY:h*ӷKGt֐ƅDe=Yc֎ E`‰7pRMsdTwyXຘkU(tB0@8@$@C@P4W}9plYp1V5rۙC Qi٥Y=Rbt1?6 T߂4ݙ`+AǷyrq,}ֲ嵛Ռ7vy6ܻicw'\Rp,~&P3_@d_ y''rH~}99*Hu͗M 4!^q; ?;p[@dqA"VL>4P xBHЋa/fDBUT8>_A3"JFߑ]cO5RNR<eGQL1tOnTK BFI#I5gUfr(YUTaU Y[l%؀@\IdThq:ZUhe6Zdnh.k5iMn[o=7p=ks-b2+Ivqw]^u}GǑ| E wS]ΗT2@(&Ee ddOL8J y1F<5<#0%-|KU"+4Au*$OD\Us;[r;[DxE4Dy`wbf?9ThzM$VYƪ[Y&);a_%VbV%vɫm Z܎]72;sqfiyѦlŞܱ-Wr%Cv%Y'mѾ\tm%vK0}6ϧ|%uR*[sV9Dej& @5fA3FCEx4?++HK"!EPiKJHĤ{eh>4 j !R jMHq&Uf@$/AY2C]삗 ͭv9T,\8MA1a U_x`FU`F7y`XṞ*,ҏ~pӃMkwyUxϹuh?CȄ%*JI~5=3^}CL QwaHD$g9 3!He!l!/BHd#̘4N%͞IkLht0k݌AëdB2FC2{!76Q"0N2Z01PܥEX4EQ8yqcLk55" *C;Wⁱ|Z,fu$pìQK<ӎwjǻl;ؒ%y5uɤy 8 sdEeJY PKpkd+g6?Ik-׏0ay4(vDI8v1dLcI~2N\K nH^Zy–%V>A*^*P]1 [)ƭ@/.c`wopa,کvtg@sE.o /yRLtogs oǞˎ|Db%IdI^'4;ө@zWX%^}"G04M_%?FĴ otgaM_&)CAMrh$^#(FVPTLWx@BTLI֚d͹- ܐH*or!Ifgz֓)epw@m?\ph,f[.èHfm*`]&FbtʢXjM1)7Uŕ*bo{Lt܆tJ]:f9 fvS|?G݅%UlqR~W6d,c sfubY6 |}7ڐ$J2{i "& MfD%'[!}/Ha3}8,wV!{fyH<> &۾RT8 Q„d٧l5^^*< hIYnU+q!P_/r/q]u uZ^\WCvQjjc'q Qp))Xj߃G"lC` ,`CT6xTlɆHA-T;Fہaa Q4[CfQBg4w4;!a"q0'#"d2{Kʴ?15=1CTW QY'Xe #@$%fN$fN0'!gAX2bW'~G{5[cb]q)Y8DDW.(lS(qN'R]bi/3 R`Gv耹 _iGv%q%hQi67ly+,\G aT1V%LWW*=MhK4!b^euAAhL"1 2[!AS"'Ze3#Bz&$O\4!_KuBdE+ (*H %)εS91+Q⥋ju؋jgu 1hy&(.c7E61q`<`H:T>HTKEa}cErᗄezdɞ짩4SaC3CLiM5w6ACRizRS]啢%88 ثguƸP' 0jbvR4xy:Zu+GE:A%H\aU=HmSj]GcVnƯVVɥ6DS;@21"31t=I B33; n=ׯI&}1^\_7u#5uf}4Zz)V[ N-C5D~$NCQ3hM\pDhR\g3N"0t8(uʡrj`xk;:s{VY|uraw媍 `?q 6@u,`ՆKe=%.$qrqUޤ/)4NO=bA`5U<" h3&04v*A2#Vc\9yGY(ϻAA}ԄNׯJ&{֚ѴugsFZ!$DFW+`N_yFRDa^fYJ%: R\Ϊj*)jϊZ{YGRx_65}J`-f!iN&9#!3EuX\Z˹gI+*oYi2v^F+ 1.ˆ+Hiv$lG:!x3خ@,1KIBa& '&0!+wmG4g% "]\F4 D5%4wC"k-4DKUBe]\ʲTQ(4ղB}ٷdMAw8? s([YN}<8-!E4CE=BFF{uX ճ<.ʡpyH°l\^F)qS…l[, Tx:Dz&!kbyz46}Bgl(Q\;"SCX4-S bܔ@JXa\Q2!l`Icѯ&z)g#ac:'ݛývu1Wi'Cy6Ns<- ΋Dca+NSC؊\gtR\4kQ]߽ZĪjx\wIJwk^Jlxw^G1BZ:`>jT2<.hv1B0Yh}lA tE'?NϦպa=pR(NN_nA.هcZɵ75=AH081EtA:gA:T|#bX%YxH*@]ޮυfߵ"(%q8t8g[|30 l>lJ*vFqkYdjq=6*BL,gO̞:,Y7%/ހ]>I~Hý6K6힕(8M2օ)]=Bﲻ([+_V䤨2 F9 K}c\2Ȝ_R.|Z1Ň5zڽwhaws̵ D䭵I/7jԴ^IJczE#nˡ|˶L~|Mv6w\k^V` HyN`=*\#!/&DIQLHPN(4)@4Op3!+c&g.]*)  M)JfJV5p*_q$C $4ބرQ^0P6_9 s(S H)ZEAiH g0;=)7kϻu;*@ۤX `v| T}]Ōjo{wA:.u/]i?L0fg) DPPBBNb,H@.1¤0WLȈ]x6:' Ǎ~#҈$&ȣD:I%Wz &x3).v +sSJբ$7Ҹ+: L: *#/X@.p4(фH{jIJ̤Z ^SL´ pMO; jsjn YgJUeU5ЩLJT;`:n1ƲkDʁjXm;o\KfOA }3<DM"Q`$QIaa򲯠#ljXH!ȉHB(d2ɑTL3e<Iciad6rxi{G di=h+j~J?!*׿uP-PuS=QҬS9F Xa(!%fSg1̷]:46U-؟:Ocαv!4:4ƾ6*ڒݭB/q+!v~WK@OzCg_Py @PE#>1[ؾɟjh yd(dẅK22z2)JW Qg554I;ɦ^"lh$X3[:N\=I4ϩBY&DOYJf\h K"wզId7Ts M&/sb&&% QI1@RJ9ͳXE:C5tjJ3[XVĒ2>{]uk` п,HF~ȒZ#UC:@ -F d|VUeKXi,eInYHb=z'o= JS2Kn5 ^W2 32(0jSq$V(˒&DAeM2@Db;i#֔+a{L|G4QTےRZgP ΐIᷜ E/zslѬ&VArݬv\Z '%i ի5=&IJ&:iF cW[ʪBa;lY HHJ#d$;k-|a gXITX#&qM|bX+fq]bX3qm|cX;q}c YC&r|d$'YKfrd(GYSr|e,gY[re0Yc&s|f4Ykfsf8Yss|g;hLҎNM#5J^!JG!B͒[՝>ɯ } G+}9+)IRgj Q8lm6ӳ"mT4͒g/yḱaӕp4gX'ڎ@F!;(YI=q OKw@FvU o1fuCLr3ջ, Zr<ֹBW(90yjI8KpN鄈МҴY/i?nr(5sJ~vp(q[IQҎ(vn\VA!07TWy+!lC>7[K%7,k͒T& ^{(:;QÓ|؊z@}6OHϒI{=@c;[kj+L+ڷB44u;8VL7\ @ 8 k<=;r @Kx@c53c 4 `9 $B 5q$@,D69`fCs3A/-04K+ۼЋ5sӑdu+S4đ!k363t ;3;BK6,{7{73 d DnA54Q,EPB A8BM;&7ECx7E5C698•0^^K ßB7x@ lFSl8<#D8q =Ocx0#kCY4D[3X7sqwP+P> ^|K˶HH+g4Ȍ46S@H+FR449H`{I0?Ex4'+F@qMD [B DJ44k@\{:I+7F3JCJ 5T[ETG 쿲J\ B <P=J3EJ{ 6@I4 D x\D0D Z4PL̄E\K?{lԱ %L1qxpK3!91 M@|cƄMڬM7 ! ,fEI4& G4AfHQ2&XAJ2)! G!xRTE1:J:IWV[BJƬjLRT9C_EN=]UqLPvZ7 ybV?IC T57mNVhX-S*ǖxq_Q>JtOT`CH̴TT> 5U*5a;<ΔlQϑ輤ڈfb]חrmIV?OY[عdcڕf_khڜvޜxY讃J.'ǦɅl{W欔wtmIJۦ~@%$hg]gY:0;ŭʏisjҌoTOʲR@2=j8*xTZv@/r~GfsJJQLх\ގgP$eL[ڎoݪ\?esT٪_3'П؆_ʊqI,/OgxW\xNe_V­ąiUͣÝطάFwJ3\-k`ٳڍ\mT7ˊoZK_]af~YH:Gm:_zf@Aҍc_)p鶓g2!ʩO5RRRČSC껞?mmmaaarRZ季ۻ|||1;(XX0adSRJJqBO?D9PMIϓM3@3Nx?E;9Np;Ԏ*ϖtj+Zk=*j5l6{>+mNkm^mnmSϰ+ Jx FifJ#/ GG=xp,f(!;&8ǁYKqH#\&*. Aӓ+ C*aR* ӣm΁ES\P)? 3vzPvo?`u< a;m!_=|W|h3l0.Wngwy+e~Pn瑱\ó<8=l–kr['8Y۽ vO VBA g K(@@_ W}'VM?~XCD :+@TEڹ*Ȃ&Zxԃni9W\ɥ&UMnZ6E)O$@$!(xS(9gf(FNyLR4҄UI)J"hKt 65gR;,9*,JFꊏ|$1VFbfCb;*|>Cx2i ~̦QB'ƼZ4 8W2λd8hv2PRx2(崤6Zx% IІ%@9b01 VͨF}ЍzTGGQp(MJWҖ0LgJӚ8ͩNwӞ@ PJԢHMRԦ:PTJժVXͪVծz` XJֲhMZֶp\J׺xͫ]I׾ `KMb:d'KZͬf7z`b*ҚJ:*e.1-noKֶlW[W rwmns+Ѻ.tvw>y.u{2KMn{' Յk盖J־ͯ~KZ(= v0&^h2a@1| Ok_ O@\֦+-}cK d7s];u[!k {4'/qc@-b>aE.ޢXh Q{) JBV?>Hag>/=F Ј@$M Dh>sWӆ̟5ݻQ''>@H'L`Uq'jִ-.zk%1 d ؽ%*'VJci_~[-Os-qClN,@[=!JgZߐW1>C:}ʜW88 iwnu9(oiK\k{6YR+9.p_ƚodIw]N`@.]l)3;u2}Z_v(M[( ,8Û~'u/ ON8a'%Bw,X=0;}~<1[—fOyY歹a҇7r oS ';sܣ?/v7k<գm7iSl5'a_I&JگpgoG~;^ʜ} ˛M"H;}k\#|Xj!bm06_y_jr+l5\Cv \>srz^zXzs#hG\QlfmAyNWjf)r(n|hj|^Vo7o ԧEXro~O$hp\a@n vօgqB_3HbfGU'jk^0beyemvk)' Vf;wzkAtd\V{dGgzQFkt6f1(|V ]xjE]`gqA(bvWod vgꗋyo]2o  la=av+`VFQ WZax_mq_6e/ Hyf%\Ƈs@{ڵ](#dkQCad %hzxlOfO6e1eIvetyxy(|dFq)b;ovie nZ،(9g_x>woք{osh璇VwYp>6&o 6И`F` vxv_g8n&r+~^e,eX[fk/kL6lmq!xsX\XV{QƖy Idxsжt~٦jij"|(VUiUfؑHv&x%pXphFsFMh-w>BQX~U!i9oGFi``Ɗ*&n|Urf 5hfv8mzȈ6z$)pisykKVtSَHI[)|feV|^_8qFxX xq`ɡf)~ g~x~~1an8@i4`6a،veZIf9jל^q؆љy#l]yZ ez? cJXAdyJ{GFeȐ jrWciXfɃ)ƘS9ꊘYqCK9 gӸ7`o 'jh2gEфMxj1zpPJ`ڨ&ֈ떙 f+#VbKZ u2xt:/vbilxn(YkAa]jeZy!)W[&Љew:xq*ʧnګ*ذ@`5JpYء'vƋw¨:i:JZ`ӈ8Чjꖬ{z(7Hk:Ӧy,x[lIkJievj:sGdz?[cY @cʦɟ6fKw!w|Uejj:ȯAbn}vp*kڪzYwFo#D14zK@ 9,v7i?ڲYZƫ9犨GZJjmۧ6g7j\ƗRs@>Aѵ@R1_k>Q^;ȖMd{dk:eǝ ez fq٬:Z**b9hڲ%IxZ@zJhv~Fh+:-L/<vꗱ6`)+KK{D\Cn `)|*̛|Ozz[(7fujFmlkKlrizV1B1[7b+pP&m˖ZE xʿLix8Kj [vG?? v 6vv{g!!ۚ'P9g0,0*x<̙K*.K̬J?ռA܍;Jj;Js{\ɭ9k˗lj[swj[c+r|:lY@q˜ ŊP:@qA8F̻L̰&$= <¬ʙ6\-ԵAh Ha\@Lq5{V;oLܯj_ K:Kbi)`INǐqtJeNߊak-j+񵀍 h PD1z݂jп(cڳAȍMiħ G̼; +{ jx "ap<ӻ@?mMp4ۖ Ս۲](Ȋ-7G *}yM m `ldiڭOLkmXjGс:컾6Mr9j ]Ȃ֙ )>̊}ĥG ]Ͱ=$} P&ʤ&ʽ E.4#9=J!k>qMC A'䧩][쨳ݸ 4kALo +{imK[WemSkq-\n .J ]go|፽EeiLv fma-縞 Ļ~ҷ:ۿǬ='ۓj! a8p_LN~=@?YN\pap<(0KvQn蔏L(k=mM~`ltyɞAfW.Eс./0܏$O}m(tu= ~NY ߣ٥hem`m_MkFnѼ9NҚ^ҘڸL?`Nܭ|ӜʜZNZ^VNa0Ӕj_ùݔCQ |ikLA,~nя熟O[e< dP9nr 0@O1 0 O%_(ضpUR)&M$S; ӥ`;gY.d&d)*Lc}Ǐ8Fof١*|&hz%$HoB 7͙?_Vz3gLZֹ׵B />y,x<| ]ö_Bȴt褷`*2hI$|%a2̯ GaD뚮 *  Eꪂzx*( 9¢-S *XL`B\ʻ+Cli&k02"Kp*ITR m4Bc5Tm͡@-ȋ/&7<"-n8碻%u܎$;O? OG-Ku Re4ӏ?\)B(ճJk-*Nc3٘&p‚P˞JUljN,J(Ă)Ҡ22GyŮMQrz/L,6ڒh2e2b35=:7W; pNh6ih cbHt-$4gW.ӝ#vޮOԨ(gV%59{?ܫxEd8" մa?Z@5D6 xg+6K̴ݩ/,GLD?fQqǥ}Է}9Ra|`- &]ĺ [K~**3$i%QO?-*9ϒRVAO^9И{sTE}fp:SwQB Va-HXluׯ9豳M-K,Ph擢0(EqT\6_J $ .$W{-N*K\d$ O0qJ Oh&xS^řl7mӋbAe1Lh^4*!k ԎGA*7TfEEE6`3ٮ& `݉ьұM_&HQ p$1Se@o9>ؔ~=r' O)XbAzaq$QBDMbGG9X%d(@Ae[Ař88YA8Nű>3I8Ϸ<)pg5яeI\t> )YC24R٘Cg!n|%1iCo`s Dע ) JuW(ԜZV0J3 ]—:Ř2!Cμn !3D4;l&8pv5&N7cm߹Vug&Jv>7Ğ&ogJ$AlIJ_G6i!NL)Ih3&K(B. &*H2D9.lJ*z4WeUZz#Ջt-1XS"uRI. >9QMLp6' hpw$GvK(zH'%1}(Dڀ]7<Ƭjm={YZFycG+o9`%A{ӛ<ﰻJMb51Llxzw=V|Ȓf(&,OPn DPP,KF.8[t:P*d),WTH$ދ4}`;:}7tn1՜f6D9|Lp ܥU05u z E$U7?v|~8,A3^5ɚN9u\ `O1-!(pj$^cEW g(+JP #$&jHr\!x%"kL=q]|__5D,㮿{S6SÌk#8/Ȉ;\R?R *M+DDull?v ➥q07z1'[빒0H@SS@ <ĒEKB8C9B =8ʮ'6ø;ASq .l q, IB *$&Gjxz1W +rA&Ysy)¶+D?NHL J,!kLO^?HʮIO0t:?l F4TZ4MC@tb|KT69@h6PK2CP3l$#Ck<`j]ŭ5??XSENIL3NðF[ N5;,Ύ;z;MRB-ČeK`rHKҲAudтb‚<BѨl<켴-x۪\:G%oַ`X7%%sqQRֺPrU@@V]ՋR FR>@ ɓlI19`I3EX9eX@ʯB@LXHʹr4O ԨNN OuLE} +U>||M8ͅZ@M.Tu[B`5_e[Ĝa-Go0)VdM%q5)(ChppG`|ť 7b}q|(U_=/RaS],ؘ+,@uX׍]ޥ؅ؗΘS]IIbݒh8OD'9ب8b`9=_$:~EހUK.5>cRı3Z Z 5[Ds `ֳfѸuViL4&ԗ 6; sxe\[ H&Wƍ Us a^RsM^; -@!_>WR=U4CɑD]%&b#6]s8~݉ğ؆ىegOٚ{D/ĤXN,5ޔ c:ԷJ96^lI^^69~Ͻl{DiumaHWHFHs8寍N0lhޔ;O>hS! z.@Hh(^9g9~uSh]l&Ifia[ڳUna=^>L4aĴ=a%kbe`nur 7h^ђ[6N "-`Q-jz`|G6\YG>e. r岕rpi^/ &adL/jiBgeĆ➛X~؈XN؊D-بglcHJ/0:쒨XŦYI 5^;Nh=sum/-Np:sFƵar[Vbi4AOnshKjxrﮨtpoւV@5"A&D40pXe `bb]&dVoPRpC)`UvҴM Mva9v6F9#>#!6RȂŖlrgxY!4!Ɇw-mw-gBX}&ّ5m*rԮrU]ێv]޴Ďm9;~AT>U_"v h_Rg?>wV(Rads`B?7E'dHFnpnU6 -xze-tNoMWQOoVzzjzYeǔuWu]Wsd^%Ha?H3 \e7Rwva&I 7OgGgq/b5h`wvŗh0l %wNTlϖuώ*ϦrXr%TKvv.oo5"&G{3ox<yǁiE`N-&EwyisjO7V /%qo#|G.O_z_Rj4pj]&.sj[oX ,|*,bL D%$DǏԘlɑ*WTq/1eҜY?s,B?`Bc(" 0`8z?HcdU"WG@A,Y^%vC6ټxA^neȻw-IL9%~/[{3hu%b7GFed8KԒ^Ќ7>9hḑFy viP\E4t.@`~IJDK8FSn/1m;OO4NTeT>zP?}oMCZeY)duuru5fX^pI`&nfKWQK5juUڟzbe;uh~k) hO2Dn2JıP+yj2]+9\uGbRxI_zmʞ{*!ɗ~'x3^7+B8vA(BB)D-IJЉE$Q+馶Ro9֨/Y.TEt0OJ )V k(g]9,WwfuTumI%_w%t&a/+fZSəVKV5eU Hv0WEiW7UJ.Z5Dujrttvvw"uOJ?G~F888(3.x-v;]y V |xF|{nH>7?`"t?SK)I)Q;y pVU\֡^]WϖU%X~1K2e_-ۅ2{31R 5?Y/ϤYIWDV<2Ot{T"; `,Q]LO'j$b :g;TXMZHy+8D~e_G%zG@h58g2G'1:͹DNը8"T%6BmDZ/u_ԉ1aCj$#)-f+3VJBn@BgJҲ=/0iӘiNzR3H,L$fGI h `R @͎##`׊Wh$T[YA'I2Y%*ViGVZ* GlmH~=9'A)P9:l"쉠oC :GF$R׉0:"ԋc$?pFITۍDfY;l`G3e ^N+])y#iƨ*Lg# 0/| O+IifdV>wiVR`CEG|Fvhl9v c?:D929h3/"J_3_{>1`C- * Ӹ͓䨳7v;ҐF"ܢBߕE$u҈[_n&LA`ī>,%.OcM:=:L-E$Z']UOÒ qMmy!C3,4T4գJ-K[_>N$J5%aRJ-WY լ[JH%,2:Ң[+8!^6&x)B?fn5oËWCO ӟd.@6tи5nÖeA%]ЬE][32}͗\l-"vR˹ 3@å -[͘GRݨK 0.bCNs. Lz.JDʒu^_+ߩܷSH:y(PSܚF7MR":7NpK2{Yړ \uTH֡Pކ8Xӏ G )G.3Ε 1֜][ z4Ӻ6u딕<`֔Eo eqn4Ap[g&OΓFA,MUK_.! Xdψء X,*ai QFM7[rŹb ~gk`֍DۚE1 ?_س.jHIH8x{m3>oyXtG5(iPX9!4o J}vǫJmq2aU-xPGnr팂2^|;MAY}9$AľUdMfDpaeq  _ƎD P6Z,3eQ?X!#R!rܩ1ڤ#fH1!Az#!e%^b,('$_}&e}gg}UBhU]},"zHԃ[/jפuÆ夭yDh15JP:uJ t "^ QU.JU$ VF(bhKxؠލXej"DUՍJg*ޖ:$?>{,it! b[ F$D#Fਐ!q"g_n g̨J%abJpE"L^jfDdjx:bPdy %Pyb,^R"VO}(\)"ݪxA\2 h)^倆QhYf)eйE|FuJewr\+(\ PjיkuNFk.*hO^j)FTp! 橑2c4&5C3[d*BِJf8i=ңg#>Ū;G Y~ilnDcFCnJYlg-qc|` g 6j^>c=kNL:N*Md&NY:ZԤ0%{'/%J!~έFZT^柁_j,G70?XĢX M+I+%ԑeM>v+ rKFKz + VӶv`"`n-nD.K-DDiͲ6Cy@J4AoXꇉfj)v,.MI~U )iʆޒ3PAyPɯ/Z-.\#mp-FkhH20ǵ뻶Zq93$ׂ~mNrkyveP^"5%A%ʭDĭm-U.23qD͠@,ڧ Yv粅j니1$ZNgj*M^'HH@.KKH+q!nmm)/>oP/9|9GO!ǂ&~_1iJa$)D$į]"FPlo/Jd+/߫?n0 0 J sDn(.._g4O Fstjkw*g{mO% jzn)::]h媀2@}@=@.jk(U{4nj7_ݎ:֭Ū(BuqKtyՊ1IZ`KsqKR1 -asD(c "QG>@/.!#4I]"K$c{U Hx/'o2y M G)䑹?!5y25fD5 P?Ba! P#B4GZncq0n1['r16b-xb8DhӠYs<[nEFotQ߭l jD-*j@.o["s@?1) lCpD@D nmu.Zf1KAIJg^mbjGKvB'}KD'q7N o-$6`_5&r3uR2#SA3S/59L‚:/Qi-u~5iX8y(VA!x6u,52Q]51hP`/9s/_1$2's-r8{X!oquؘߴPa! *[o[#D/SS!,'! /8k/8'8b'xq-dydy'Ld'j|duyc{JAiiKv8| #6B6(pk<:Ev.. p0 p7+Drp=`y: p:gKk9}|qDhs01R'4O}Cp~7;d{߱dxw>W<1X; ,!_[,#H譲'V}#WguKyzb8 HZSAo[F8"2-~B7?6ǟo|0w_O<ȟ|NBJ?-9@WG`A$(PansXAe, cFHa'J @(*(zك̙4k!jI;cS? F& SQ B50:UџTըBZgQ,Gg{@ v&۳hզeZr.Y?~HѠY -&dSbE 6L@Z;=~\ʐk̚9O\kg D:`݌?* >HN 9*ξ#G.yA4]8׿߽?޻/ua=z]~*n @4 C,7* ab( Qm5PS;L2mD*DI@s Ià ܫ k1P#B(L&-'4ɧBɤDY.")L찣3=z͝C͹D[Jb?b :H(A)R|򭃮,IH2-$!$ljS(ՁVmǃhꈕl42ˬ_kImZ U35eo#CY -?7➳.Yukt;O@psszӯ9kA i@bp Y#I4v- &dr%9Z"sqZDgVl-h26pSU* H%eHIi^j2/(&)wj-X DS;\(7' inϡJ(Aj>ݣpDbz@ˑ T&2鑞6RN~ &ՊFz "U&to*F%!vI.$M6~}s6@nr= _ x}#re/{˗ /*0A bgc!C"*4wj%$1lhf)a\ghA$Ne2p`i'R4 #qIM.Kn MqI&6 ~*4 %@ XQn6d{#I 1*[%= 5 GaKLٔ h"$$F2(0HBMS$CL1٤A>@xy!@KYPV+&1aditK`g.sCs8tgԡk(. >\HZj(C# "NaE]2ٺzB%JbԞCV$O{Iw"DDԇ`a'@NQNhfa[(Q!JҧM-Ҝ \̓QDJqa\9` GS!'찐.|J2]d!!y$&֢'&[ւ 2'YNy5ky%ZʲINsr8[/= S;B1۵tGz^|ܣE9Θnmo[R9xAdw>X,D]w;#bU+޳Vrs4a P@ZuKf .9 KIn%DzR)&qlB~&\Ҏ]#R?o[V^Ɇ*mKmG?%JNɎ<4k*k\ r.\J87T ЮLY*PM.nJ~ r!NV!f hkLԔ/  fZ-nOv"fA pl@  0 &(* KLrOtRhfČ͠zHخ @ .Iip:F1"".RPo,bi>N鰌 zvG"K&k^/^L̙=D+@\` A\^ibjjx˶ aDDЮ"F&" 2ceg1 oN"A"j p0HBNf O(&OzN LNBVx`VAن`(VAڤmَR& M R b,쭇kHnf-[BM0n# "qР /0 t!c1 BG dQ dq:36".})<0^8k<G~L?ѵ 8Pqv`q 8yax`艞q!~ aP! r0s0{M/1z0"okUB2. OD$-W/.dBOnaByATxmM ,J))ªp(ب+,k#>l''LRۢJ-b?c R# qTIo3!ӓ0OȂ1Ysb:9 ?p3 [[~z> T';^.5 "]Ԭ) ~ 0)Q7߯008)8s9e1)S:S;  L! "Q b!nJ=ߓ=I߳"ahWo0ڒ,@,uX~tBC &N p l*l, )CDDÂDRZ/+ (HEO^-"pԈ~Q(0% B+l%RR{tYA| t"%bs5W+67/mP!KMAS":KWQSc:T/n7蘮3?N gPN PP)=L]*|euh_l`vZL,T!lmtFs  9MUSqT UWqT=oPRpsUdt=5Vc'2X *#0a:Ofof9t3 x3ME[%爖N;<P}9Lzr"g/e7UqRcn9s!nsVۖTSxM HV!Q5W@/bwX/|xY?3t vtKY۸s tEwZ['t)ߦul W MC)x)"+y`vx wc_I&a BzYn: vXH~ *iWw"yV 7qQd LKy1e1T/fkñxQF4:C;iمi4Ʉoz9疀n? 9QM_k?s-NY09{#sn:e喈3z;UsUKu0go1z{VRc}s}IY#2WrX=sAdz wUV1e嫹yοw D쟳hSwq'Ȑ \N@u92$GhX3u:*_"դL)EPUR!M@I4tG&uR&IqHmSšGE9EE["Q!NĕUO6uVV}SjOXgmZ[EWfV.a8d]8(Xabتb!&.$kYif뮬aۇ6P 7pNG]1g\}{?ۍ띸94^x z7@iԅ|^~מ;JӃ.vv,9 `$8@R?@ln wAr&7gyj$XC dF7ּc@z 9IRMb%TNWCAV :)iMd'vL1yͣMybOW;t^bՔn*Tq%iCbVh)]I҅[tݴ8=ت_6fgI0uv0vYg{+fzYg#ƛ"V8\*-Y-ik ewtV|ΥC=6'w^/~אk[^zgD!P h- QZ>՟p Ms:,(DD"/h&d3 NqI-kyFI *SaӦrq+YVtgk偂Kc#̜ dFtnuhLaW WѨ&7P;n r#瀇yū^2k<$KJFI!l(<D6ǽ2^{fy@=wK+?~T+T|u|_|N՚īCRh[GW.NZqfªsS9D"G) {*N`OĆ5Sbp ! z0Q?= AEf`Ji($8t.tQX2707{.͖{E:QD߭x Z8O@—!j~LV'j|j=zNWz?q\p{U'`\奅5K1 d\F6[~XX;W#Y#Y2E٠萭Y#sKnZ('zNNl!h5%O|ȟdXjsRvr0RE/)fjeVwhm:KR]id+ith m@|XD4xn6w(H%DCvdp`ep(Y__[ $` ^fp Uc W^=E8}7se_){gQrQxRFhVw)2ӗ;3 Dbc2mG/t/q%S/ql- 3vtV i53b7RF >B 0!i0OX@3SzK5_bZ|>{l  J m#kc3#-S-2az p -z2I}j;Jj?K xCECA=3$0 @|C$PqJИ4'AF]A"YOQ7:FI^ʶA_둝/ % ?m-/ 3mߣ1˿ʳ,Dm\3 [>  @Kz a ,!42ċA ;RG\9vD^GȜava6L@v ?wmPaÙ ~-;p2(2RX.+?fbxj~諸>/=pN?׀ r Q*|MMńmO4<byPzw(<,f\}8mzݶcѵA]Q^$BJB@c>||*ƀJ/K:ָ @ˎ ܿʜ@Ύ?N n <'<nՠ@u%"VsJ+aEK'V> g'>_W8cNP 3~ L N-O2` ,P!C!*CNY*!]S< oa9K1Ԣꋮ\u롾K2l30rjrԌ6쨡d5V'r_C&eH $ݘt#Έ荸C}I.犉:鰫N;0$C2Ko,@ G9bࡏP [ G`r>HgKhgrX !⟧G\FHrߤ)|%y0I?yx$nD#고t[X%%ál1l#rOft rLL"TM%01L%ǩMh^ל*ehxg¤(khW՚FVYRCXu0]{+%VYJ pY 3ΑZhkVh4sr%LAyHj@]*RH>f HsA #Lb <P|Pbazlc(11zL)N9e,C(4Cf8 P`ъ-z4r/v0b(+dOyX `B#$ t"@ld:C>im"1 (.5'`8O.Ԑ]9l)!%RLi0vW UL13H@n0xUhYd0W 2 Lj+y-  rUc8b+g30D;ݲ T^@/ {g<ԥ@Iv =80 XSیf:3@zO LQI1'89NMFăX Vp;y &JLY~ph?c UuP>2W,eNģd6řUbzJ33H=Q#YBG8 @ ;8X"Q,R=.IpM%I(0oqظG993(L$l,R*b#>!n*2 n-ELQO W6E\jUZ7 z\^f1\DT'h @> 2=#O!_Ai/׾w>`G?P8_gBc#u̦$alY32CTSpAmf61u i7"Tξ㜝9 S8 ih=kz, QP}np,dV _ 5#ȤHڬ>3#6ب5"jю"FZF9ȏH"@u{=a HYR< KBa@"8Ҿ)560A:E8*E{=TALN񢘴473XΖ΢ uZ^J~l/° YTMZ|'@TZ$ JW_C!{JV?`,tf/@w3Pq/8Eh]TQhXڞR>?k(EQ I4IR^#)B{N9H0fGHy*"MQ N1?Yty,@ EG tw"\V oziHiґ#i>Vڏl-mi"k 'Q, bWInjRViR#. o_{dfvD-rcr/9dۥ.He+jbSRJoKt)?=닫()v}'ʯ/s084@= { A/ÕU3 Oa 9ۀ)y9 A~I:"[sq)!؎뀏j'c9á) p.,.*q*/L %BY4s!{3 ?7#AI[ 4D8Ds,Et4IUTe~TdnTՀ=e&;ރ11+d'&%5=<0gʁ%%lb% XRAUz&`_}gSxG]eUĮr Vr[XB΀_ z߃w%|0c >߁fpN iib`U(W1Zl'gs u|߃[l1ab&ja.aI@k.jCV!~ ~k]hVa.PYXSZQ8]u-v]S:8p@hdJSS`ȆͽF~F&2޽`b=Z:/KBS.cv^ h# .BBxTUb11P\]ݷm'Y[‘qSEmfgNԈ@fPTȕT?L]nf 9BF5 dR2cVsng<8ƒgpgdW].vGU{ &b%X b(|XMxNV[iOyǰaZ85)SN>y/787_iC 䝆B ksW_ygQ b8gI:h0 wek'>`-rhkb ./`vRtK/Dx"GNio gZuQuZ gk&p/VUmP>D}\f;xoJm ^O^S^Du8*qm"Wf`qL ]Lʬ/ebAhĩ.-[ cjHZnqZjS?QTNNTm5WεLho`̋dTK|=ʼnbfcdm٤=ORs%FoJUx6?k$&htmxq`VSbdP\qLzd$bG?,Qo:i> a$&M^b TfHI5j%f{.5/sAgyO qOUߜgeVh) UzA}T n\vm\G΁Dž\1 4dH?v.5Mv\H2e_N',( `jn)q5)[. JyKA`#&EQ PXO!Ϟ<1O;LY!v<0:T=^p”@QCMLEjvQڱ(Q/ Bۨ0 iƒ' a=6ߴg>dxxIb)iQ |1B GClL` x8S}9(>n|ώ&!3>#*?| )ׂ DFq&Btv6%X`r#@9tJW$URuORAT}?AF0@@[<a {:!?+50v }Oj5 ,`ANĘ8R<]J!}XdȾ bDGzQ=c~ʕ{/ 5BE ЖB8P_ \Uh~Po2f@N*!E-jQׅ'>f>M4$j39 KczB.07|H67ȭ'}5ȝmso'Rx jiצ29}(Qh5lZ$$ 1d#MԐTH{5E:*?P H"(Fe B1CD bk:?W6l8KReUˮHNA`LIHixLjف\CILj0cB AUc1$AT?J(X(,AA'+Dq1)2l\ۍBH-Γȉ)X}V39h9G2MSNCakg4IyS3&Tb%B3)ϡę/myƋ؎X^}H=R1)0AN0L@uU #EiYa$DHi@ RBXI0ʣ41T|TE! (L #W9.դA  nC,B P외KPd. ChMd(#%@  DHZAj65\u,fQ2R)_`)_20u6H0H`O|gHzGFAԄEħ$ 4xʤ5ʷDT}:ʢd tU Ryl(8Al?Aj'j*vB_ET_XO`&t282tBҌ w\13]XAko*4Q5MYܶ#Fk.2Ḏ֕+h6ykwzX)ħzL'ek n[ AM'u&LpA tK[ xդQZe# /QʄQţ} P5٣Ķwu^C,2(Uz@ ,C(Rhі(<,,>툖?DO:¨ D(>??XCFK%R%/D F /}Ƃ@ˮtBD_ K"#ẗߖɂ,`^,zLBD˦ 쁤$JOhUlU.*ڠVr2A" E)hO,*\K QvyHDT`%HJo &pLع1a=bxT&>bXⰇ͘े59HoyǷ1fpr:T+^"#qeLPL ΀ Q9@ݣU ?y05Py^P6AT DhA hIZ]lR$)#*^T.Hg "F(f1RBl/lbm..?\{c p"^ d@60cZ HblQ Hte.T -b e]`C`KV2~P.j}Hn9!"H @LWKف(IVJPŨ*0WU| պ^u)ќC383^rd@ Υkxss-t"$o`.3(2,-D P4A:0kp k4t*M|pSXȕYYN!εEgND?E4 fԇ;rH$AENtV0(+LEUlCeg=Pʟt_J(pAT^E(N4&,2U#Z"CWW9h]E1|\O,1/C[B6-#.,?Y6hT```˔Q> 2LZ.>`Z$qXd`6+ 5z?I(kj]Xt8Bلt Iŋd^i˧8eM [. .0/<  Q02l":\5\dS}ǃ=`4X#\ňU"WDHjP jz`JlSB);fM1RhQFLlȤiXEN:D70xHDiPx{4J˨SNL'a' HXX-Ygȣz`%M'φM64.fk:jϔl5 <ڣ[` "jDQ٤J=<G N~;#-~cB|7:$@&JĠcؠdac6cXh柕e*qF fdfN-S3<"ֆ&NS͊?󠿬HI@Gt"&#'o>-;  $N$@b['>CF:֐<# &DžC9er%P Q(& 3v}$}Dt== DͼU#)X켶q)% ۏ | CA' TR]e0F^ JJDl"[*Jq*f V-OE8Y3U'ѿBIbxN(UQ0 u OB|NU1)F(\K i$HIqR"g_ Ru#pn+\uS}fm Fdl@ʀ2 H-c!S5! jVDi1B\>Bi,xPhSW[x qZi%_9"sMq0F Ak!} d 9qsыdg5\7p(`` :eoC(b G>Oznw=VP :ER XEMQ?II(DRxdveD/,)G F') U@2u>(֜j=Qm U*@.1QdVi<ëV%DnhkZI+DOJ#5'aPcBe,)n.v)Jeh;8"a,j3E1xKbU@ *H@"l[u om $ H|@ ַ\̿L8M_EBbXTD(,P imEM]KzEkHP#с C,7t[nm FNr&7'\p$*Y`(t-Dh&ZЀX0؄a"-(TL.ȋ"|ג!99Ml5 &X@F Ȼ&>ɩhT[ VAf/XZ(_z}S})G: "_HbCLP-G.j^+hzdff" aȹ5=y[Q8׹!IbHAW+Bh(QZzMH H&P{@R# IM"8j#LXDz[s=? s-. 0HLb6<ȉ{.p YfHƘ<0dYfB 8&co"e8)X>\5EbgݼYq¤sKSk_cy;&䂐"E.Œ;]쎰h [i7`o@yOi= zVHXc(T6iSV'&^)1[;BZSMu\z<5[|8mko|Үh>{S4l-3 <꼦)koEi p2 6dWl ֋ U/HC^d/IJ/j?5`B۪C΍P|(mv"lr`k"2?bAP^ޫ_DDM(O+*DQ SY*['L(k\{X/ @|DBz"8nNFA++ih! F0O,@Ģ xJZ ٢$^ G\JH>OXI#x܆m 'H<&;ƿ&n&pr(0dfaB Cڰ@k(ѦH+ \d(™[!:`>|rR00Z-j8.t-,i:- Cej2*% ,z=:dl=&l$îhF0'ev\NPY'uN ku yG+ #FͰ6i"D:$%( 2F|$%0bB0]"/;D`Z0q$E%ZlP̑KE%Āl(na>K꫶q4OB 8$aB9Ԍ"+t[@) $abM a,,  ]L\ J'JVAHEMJ^o3:# ÃMr۶mDzmarj!bAt'cΦfPmmP$+!cݠ' L-=OۃBTҿ%-b*&0f&57t 7 79FN,X0ľ)( Ǜ԰$S$;N;NBBn| v(Bd"zW]tRu52YM6 #x$32~G'~~fBgZ#5g&Os/0")I܆ئ鰭qtɴp L8@-=c*0(]&/)UZ'Lhn*J'U(†\T 9L-ñKq'hA+ gE%+`D^V4^VFi: F`# @G )=d&0z`lɖKlspIMm' *׆R= mԆkær&D䃚Rp}'CO$C= =mP.vcz$/v'+b@DbaTCOnViBa>ls@;$BӜ҃ {"iyYņX]W׃YS55UtbG!Uv¤@V<. ~E 9,"LGwx=LTmM}JV9,"lAD&Y8L=m>q>ZB1)וHA,!"@(A--bT#yDrH"gGJd\?28]`H`nTAI&020?oVO폌~ KCFqwkFrGptq4*R<002y39<>qmw-kmpലNo6Fjc>vC2ٛP=XH pavD|.(;V C$/&)slB5XzW*&`0i}؇!}٨ 7G@˿pCs=>"ڠ,2&#׸ޥ+ǰAK~:4MU><sFDoCb3PnZ*O48 x|G\V1x0-o1*NAVM̠`0Zf4 $#K (r?aB_q?< 4 aȍ_dQ@D,K;H"wwA'6aA:DnAyp'2ף}2'䜒uXl|:l5VfD#k0#j&g[p{nrp&;Yp'7= ӀD SoHGt+ 2&;mM1;I] %#! "706dhS%Ԭ9 ,΋ʹG"!B` / *q@rqփRSRB'[2fN "-q+o[l2NPhqr>.C}@hp –)’RnGp y#v0ɦ;fb {^20Hdk",€;,٠"z,Z A`55 I"!ċag<%/UPGp#li:Y8ʯge N~ĤœJ\š_>S0V6񃟃\28rڬ}+a(ah k30"%Z6buI #h˶'LlFDm,L #s̉0Cb<wrD+洱 p?t:As-P9@KIͱӁx=|yf+/Df7z\ Q_YjP2Pd8cc"p@? 5*̵aA} 1Ȅ&9,!GA%.QшN8$G$%χP"ÿ @өR?mj)]Sh*4 $H8 oس訥f?\a%6KD;z%Jj`R#F`Å]ÉE ;٣ r#7 jD)S!ܽCӜlfb {Qpe=,AAڻ{(Y̶N $IbNhu"V>1I #өQq{0!HvPCug?E#aȆ^ @q'ag-PEBI0DR$DB#_GcQ<&yqYbFk`@N%*Vn!cRx*:Ԣ+N8ulL "x.L,z qJ'a! )x")ROa)%j jPrfᆱj~b4$P*c!ѕC]AG~RU_ @,p4`?MPpM=DO?qPEۥ*T9+$TWQV ZiecW#(f ĒI\om0g m*$?ǶQ*I6"C7љ݁'C;{s1"1#Lx'q%twy&Kn-iA6 P?d ]:| Nh QK+*xJd`tX'%!h.8!pXG@xd4[ PHd42*`%&AŌ"L:00Y 1AMcZ Ia:NxDٝGJ&jb$@2 $67ml} ^Jx{q\ø`z BHOpNDQa| GPr#)"dSD7}.A@ ܉Nx !\&ox!42"ŨyrW,0y"vQVщN_'R  "0eH8Q#],IrRE(i"g=uJj ^CxX`"UF!;cזL@"JNxˬfuaQІ D@׺]BO@q %!=-$" y Zb}%t7V8,t%t'fQ%#aHL֖XF*&4q"\\9RA5KpsH&@6(8 R'qOA=ĐDx㨴򖺬O/yɇZC|S -nɘ6#*p*$lN%ډ6eh [H8҅p$']YedyjO Bj-%ARhV"$=N?qr:m8B $LKr q1},cY\$#JU#HOPX djSQ=Kb_4b-$,FsU0l`&B I뤅` ]Nk@ %Bux PĽV#J -a )QHcbG/Hp]ʻ]WqZR =q$:%&JVD!%+Nxkڬ"+wQ8cAVHֽ2f97R\⃇QB"NϾ3ی Qvۛ~鷢#7W>e3ED|ِ6ͽA@ <ݸUE9'Ǣ<nN)(Ht((H.א#9׉: xh2эex!D -S&WT-Ik戀`ͥR@$ PM,jQ`k)^H׈ KX:^QdhWU]Z&Ήd}pS%$ ;wdkKtwK E(.HWQWu+jNV (_![uAגP&-n\lpK% .=c|EZ_QXQ%WD&Tm[mvG@6y(2En4RmG0H2{p PPo0 JaPb`aDpH"#b )(7 !^q|p7R__X(^q7%7*=?4,R`>+tvP= Q` Ht(e2>u"T#Yg5X.%`1v'ts'"3#7#gT$GbC% #~;A<sv=ش ?93=ahd!q=ѣb)&=WzGQ;،-%i0{ +&d !0m2BBz^,!'k&i7CC7@7}X}pW:C."ͧvVg +F@9V  ;Wt0]n/,ZmȂ2SA[AN]gm82mmF>@F , aP W0IA L[h26(a? -8626^Ky"W Xu5eLi(@ *O tP@t!W'ak5s҈vxs(*g(t'䣚uuQ:`uJstٓң9F#5b$NV,r;S#iw#$XE4=t'b"V$: Q$ 0=)A- ! F!B(Ĥ-#c@dNF:nEF,3=hY4-9,m@ nGaPfpG(ЧR 0 tC 4_L>[ !K l KK؄ L&g(lP7Ur)rQX_a@("hx (Y>S.r` QO!tB{(@tzeu!~QTCQW'uvٳ"^`yi{2ec*D*+1+y/0EMFqN^:%sF؁hdG+#3ydKKe z02mDnb o(豩 `ۄ+!yz |*Iry$U!5(B :RL;J3'uHGlyI(eP>ge0 (vr'R'f*JV0CyM ʤPB(?UUzfZO@0rW|C5i& iR!.. Pѡ_.i`K57ҧlU ]#S-@-̤<kXC6&psB'_24?_>HQL7WHu`rar(f^qHv#( L@ a̒Ls** `(,> yͼ btCI>哇bt/d!QFA3bTa5x^$=9jYiP#g-dTXA2%+;djkV(t~iKhu딖ȐK.2o  S=mN`O?B[T]($LA2YT2t#W0a WNiI.ii;W`BQ Ep'L (aw5]#jm怜V==iI>u'B3! q8D9uSsP0'! esPDg r'}uCC&؂uD<)t@2<3A lѺYoDɛ4r~:(35ZZNyh2]Wi\^哛,pXAAUSBAA( |6RaQ#ELXjyG 5⑰@DV@p1d!C^v0b\2hO|4$`#$ ԇa ur d]b:b2V"?veyd+eeyW̸f؋+3әbJec(# DasZ;aA{1)սOyipqZyL+ơ+ H%,<\HlUA%aR @5 Xմ"Ѕ6aZ[Cm,{Cbء^y׾ŗ̨ F0S/@1tE^ MtWD<% $&*Hb./+-B&P˛dd"Z," ,H,g{Y)enDh ,¸3ʋ2@RIjū#{ ̂:JpZ񢣀ۉ3F{=2HcF0Re3=O&5b)r  B Id7 )8XAJ8O `;[;LDS?,$5F#HaqF9@幘  7R# IB(IЈ F/XF /9v܉6Tu$."{" B5˟U,#%#(иY/%g#9(r&,"I:Y{59 +78CD' )5|C\KL C'c D !q(w( `/T;Ĩ#RA 9AԔU\EҵYt3ڄ(c; 6 *ư2=A;+dY:X*Z1 HKl` O{ pR/2Gɗ ‹ Gq?J@A8"M Ø Х ]Z.PHd;Q>a Ϝ|z)H! PQJ?DQI gI@ь:> tX ♈˶Ũ7 Mk(G #X]bJ>j $Ɛ*U>#p i$@% g +0;!CȀYx!$ĜEm0r :rrwh7#;Չ#D$3}5H7-9|x [,6HAETųśs7+ũ<92) A0`h4n]*/RF~ ,yUR0ǟQ]b #@"P X* 5EyF?+T*!zjsPZ AZP =㙯9V&{SX:C=3BS%xY+  K31 #Þ :Q;sK"2#(TUUA*M\6b@:լձ0^XىIEMU)P b^b Vg, ͒-Uʪ,j"Y;+=^:=kR*_2#[RxOS$4)eZ :(X Xd` &8z7>2ZJXe/‹ ı?86?9:uEYI( D$lRRi JUX`ʉ{ZQ&5ذ1#8@F1qjc.Hɧ.Rxh` >dxR)dŰ%PXMD (e)C 9 iυ 1.B1e9nJ9;#@ȆBrbe? RXzk}SeC ꫩ1jO%H1Iкc0 ➥Q&iCyix/B}S AIn;%ĝX!HY\ܞAIm}]er깟#VvEu:(` #s] kPNYJєҩmμPh UmD3:ü񥊛 H>g"g=L @V!S *V Qy4ArfRrl a/՘>I Skgv۶ !ىrK }i:倍){jaUݣ)¡bZًx 2fbqX &f/J%[Z2Uȧ"郃8n  C)c]>Ev(UAu)|BiK~z="`mYmxמ `\7K:T期e]9 KjnKK=;[F즭|#~Q捔UDĎ, _-E@eȒ<'x. م甛ٚ,Jǔ&Axvbw7wkxP鉷=Ap;AAhDZ`T%&h2ctW)-yQ%/7(ajL_.7呿*a%#.Q$hD.'/eGb(%4/ <l@:w!b!b!qs5pQ $Ş ۈ /|r{2Y֙Ͱ2 >/iDy@.1 间z6uW W@mO^mv]gmpmYxmXX~Q *U1IgG]v2D'Ӑ=5|CE:~:U^z\j oPE< \o@=(P(3zx1@ $ "ER$27`ăGGIL 1:Ď=4YOMvzLZ(Q;{ڙj)קvy7 {hhRN̥ NTuBT) 0jp$H0bё5Q0D?p"03C[E!a5 "D܋rPq@P9S4Q$q Y#FU_.rfaSy5F,1п~q9 EQDeDxka4Oa]#$"#+~.@ #3!#jM&[jvaڐa`gD@( \qE4-OSaK԰j3,0䀛"#Br8`"衇>J@AX`:C-2Q"9T2CWԺ 2l .zcӰ=4$UpX+8)IMc(AAx`MUʀ2ЀUVYj,YD#LfVjQD2W 2@VrZӀ1Qe^ q K0DdLcXj [ ;abZ%~cJYJ܂W юq p[I!)/T^ːA 0h's$'jq649:Bm{dSzv r!~BÉ+v[ʬPdHIתZGh>GB%gv'`0< rpbc5djvD2AP #a` E Zq/ARBʐk>MG>!/|CB*R+<~+HT1DCQ 1]@uT eȪ]Ujy3_9n7v3 YxnBwn YVdq g-Wm+bW^P/^XS`IV#C/[' ɮ`S1oY/ nVfpZ#=&'<[`[KŒ) 1A? \HK.b|58TNq"C#NWu.U+ +g%h3wʛ!&d8N=5V/x!hky&pP"B̄c$ c8i} H%G*i[2p.cԓʹڸj",! h 2R 7蟕 J1D~4i@,CGpwbŠYJYn pc]*7N+xbϭ8&[5x]Pkxvalrf.&ˋ\5"MTj*X͐~=b31xԒ!' b/\%H9I(yE:[JBu4 Q&22z)qv{Z3q F4Mfξ$DQx!\Zi-^_M%Cv頜AƽiF}*(\y5{m #qFm X_MfɊFOdDOP9)T=d?PA`]%m $l0IGJ= ܡ!2 PTu{XFXЂlM-p%]]1D'btrZ=L,1%H GiMLb(m`)\^_nxh?ub\#hyN\%$ 6_'a`bƑ̉ CLɖi͎lܥ83ʂet(rIjJY [#:yآ_| 6} sH-w yh)%ƎŪb˰˔@@1bMh@ŁTD(Įf@Ð@4«qF:h;;Ie@1xX+۽(jFy]y\Pxo'e($ЁFN,Chl4p W%QN,! \6$_ibDd\)գ:֖}Rѣ@ =a1h|ʖZʖ|i1DɂlCM]![f̩~!ܡa?ja]RyHfh$^RXFtFe.odcWB҆UYqmHlV؂l“dmlIeh c;2JӕYێY.-߮CpYn"gj*,ܥT@ 4蝡zCp"wl)MH}mY0XӲ-2fsOslrXm#YdƁ^^-^#33!ɑlP%f 73&"J'WDNR V< N0dqphۘHs1s~J lce;v!t A,;It羊- A nUNHjN,]q O0<tЁ4 ͺjkWx,Q(LWamD-d&Cs-`tR R Ee6Dk5qC݌ HhC=#CndBf뉛T?N hrI_jv$$M5 tdH- _-_0oV>5Gg4XdT+t{(Vg*jxrfb_ʍ`a0pH%w|S|S9s?s8 /L0-Qkx.|Ǟś kg!(̧A'>mTBEGc(PȈq]#t`EA rdYQUNvyO9GGsI)pv@t5*Ccؙ~wȽt7.p۰d0ېJ(M-!>60_)br8(Yy^e_u=62 ?hAJؘe'.e[Z$Y^1O3GA'B&4(n[- ! & vq-#q lM(MG(v v|ƕ#SrX={{fF3Bۈ'MW.'Q+wj.p< [D]؍ |vLJWoH@C50A]H>уO8Va*]P5єnYB9ptAxPv ތށ[Ɛ2D莦CJd6tͬ5XMPHPW"φʵy4%kDDu5gJZI.+Ckj+ GTj]Cѩe '+]q܆ͷt=, Ӭh+ͬ&?S&̺rR5Yws QogXhYC8joԬG"{|&.//P*^(% +oap 5"@DF@0@0xF&ʰ( 2ТAɊ-EP#PKLx(Er)0H -oidpᢳ&J8WEYs؅XH[\kԩdzVZ_ -,xaU:BF" 7=)Ǝ˖,d??. FJ\ Q0 w5\APb8#Ѣei)F  ,X"@zg?RDsi&Mdܓq5)" $QKgODρ*`6""߮PB|&"` MY\Q$i_DGelq!!j@\H’--"KN:G+U$LiH,10_M9pk(Z\ JiR*Q ! #0%R6eԉQQ24F:(FHӅJցF0C4S 5z衍2`$ah MR P t^kR!4BVBWu밪R [#,I#<7_p9b.֠61*z  դz '&I6I'ϸР.F#4FhӀㄋ6 x`s#2(y Y,գl-+8`h!s較z: o?B=WyOms)>I$ ,dYȁ8Km 7|M+Gq3P+6j`$kܝ7ja(!EoAiQ6ȖyB%DC _[ ~ltҎRh}IS9B}K-m֚8VYLhtifG)ͧhғ)Q\2$!jOԛ}%,liFeRCӼ-ZKFiLu0PVԛ,mzCe KX[ HV |$$g!ӱ儋RV#8AT9jvg<jTFd)K0!`ҀѴl(dbjM:.p C"k;K=FHli& 2p"m4,@&oU d(LB+Z<7:3t1 f ]>9w#G APdiu3Qv"4Dݿ,%UKT4,׼dG,+Il<_,G\ 'K+?G'@S+M5?/V@&gAXU1E UhT L_B_2K$#6A&1 AH + ´R$Z+ l#esuR ' -u h!6 K`'$}>1HS_EW|ⱛl[\hwForYcgVJQbLXEdeaJgibpF0Ykpk}D}DMh$&IWHP@1!?CEJ8w-xC99kIk= {Sc5Q9ȫ Ezs%]NI*"Ăt$xH2bN%f ?b+E+ZCҡxTqc!ӿ4q%qA!Dd׾Lq#XZYP 9)88}" xYX XBdR#/V5ȯOS KX, @aIBWv;=i bqUAuKzX8bOR׼%E-Ph, G/TCqaj]i@ d"vуؤ&4) QU Tֺ=l ŭube;GykleCۑ`Bf\ 2~CQ%u_ jw\@809{DFn0;, .<9(,&.pFjfy(GN6 " NL:0$0LD|ILRJ8Lc't3l‹:Cz26C!(a!ap=D SN !<$y ^johk!C@dAΏ ΂ܱoԭң @d _xH !$`"P"!<$FBB&nI6gF fG^G$bznL.I~MnL\.Lk kV0%4D3q\RJ(>|W$ꡎ.45l&+I,7x.by|-!-&}@-%I0b0ИF$sǂZ"@+$e5&*H,KBBЫ8L^N <Ŧ`È&QH/`5)cN#D#e4Kt1uQu q'<7kq9A:iBHρdFf^ٸ/z#n-1ݬK&QFSA> "H~g"FH!p! ")2'p .4<?$$v"ZʂYXe:7x%ZPO늮RR֖3`IA;W3)b5nZ9*ҮfRʖH 1EGtvQ"8$^&s",qvv9N0 Li.H\(-Q{d,|O^^GXHNM{Nl%"6Y3Uaq&G/]u&6)dBvs6ksxuq'n-t!x"W`ac!(YQ:bX}WV;F k =Q A??Oݪ?A N1/Mj@ B:i"Aȱ"c+bk$#?&J$J&rPmGiE  Z't|vh_",„| b0I5``IaԶ쬆. b%V$LŮbiMc%J:EATUHx(DFasjDPzDfmhXZUbNHPL0UĺZ+ΤLhhAM_T_czF*BUG0XUkS1"f(p'tUWWo8/9'pd YOY9b:cp[z&b+,Y^͵, ]Ft+AړܞK?  n  @AjeH@gM,!)V|)BIU y!P}!&_* t:x:#;;$`c-c%2/1b%i8"+<8#EXD%F"e+sFB$^d!H|#̣C:DHHtXڥeڈk:$y*qʡ">)D%B"MX4MzFD:IHtaE֪ݹ)tw$E\a܁ OxS6TsFԘCwԔ(BM rJn$ZNsz)NTBt\&[(,efe'UYxz@ n7Be%4^4ނ*&C7ãyٮf;-$p;^[ c'4<4-؁+8n>TB훽fkY42Y{^ 6PZ"`̇}T^2@2A (>2.|3e"%  (!CB߿0E3\_#̗-[lt@AcZ iR LaT0jQ KZzuhPG5zuD -~lNp}j4?UEP >F8(Ң8_$fp&G9 :]jFjd"\hX|Y &v-^|"ˈ3r,^$G"UQ^EAH'=5G`s]?Ye%cx9? "SApXPATQE%ա *"boh$H# hA>?:򨣐 U$Z`"Z$V1uWY9%SS1qP4E`&0 fap?a]&4@PJzbhLxL!b衍!,jNF@@yjIc*4W@(6aHw F`'-P RYMeFytHEbRe-ҖZJEW2WgEVXGE9.~FeI#yD&u}(饗]F!qyb#b0-ic퍆 @0rDjiAöǥ`x\xg]^,.pE9vqwg[git4qȜvKJY{}c$YQUc𧠂28!T@?7 wE15Lra84wBc;䏈Yխ-U%TJyVNyQ H8鴰b>8' %4gDQy\Z?vʨvn(5v5LA1Wn!'A:P(J.AZ^'&(#J!k1V^u&-,PN;dbL5 qBZ#,(GRE~-Uui0p֗5r$ach&5,dp 2aFLL5.@4Nu=Gc2lXʘ@fEYʶ1=+B3=)/fĎE KUAMj4b@ U@4q)%nK%N# 7!.GD$0ͤZ/I[5sq%@˲H) G6[D> CL7.vsBUx@P=ʠvgb<@HP*a<@H5, b hrJ>PP@!HA&@ɕMzY1k#Wqɯ@$LRr>\.qэ'QH#5% E]4%7B"< Q2Pa) ox2qD9BmH2P !uL{bD(A*̀/Y3zP -G:FG,F1E1)eT^@E0ri|ۉ!i! 4\œ,'Y$Zo=iJߐ8 p8>nR[kY)sci\G3I[IYgY yUQAPM;{8T!Uh`uFń8OFy#^R* ]g^B({@Q/}#!Z% ąt@%эgKBKKM#jH3 H)\(o Yf+UAC׿7T/}U?"}n]t(0h!YyʣאmQ816%Nַ,u QĤ v}̨@ӤQE2a8֖E>p^wBq qA:tr/F&aJLqP-+VQpsUf] .6@(u#z#8?W#$JGgt>tI'Hts<-HZX!WAe*OZ@\&Kib !g'q&XOEzAf$D=ts1A`H4g2l"f#fpFyr4p0JuGuQyLWj~H ` ZT(A<".pR6"87{I{|[R88%C}VKuCj1m QC ÍA v*vdrOCgx'~n$(" 8*|{ٷu[\f$TRB81551ixjJ^RteՕںsɺ3(`ÏӴ^'9tU&ԣTJob*mZPXBW*II+kBsڠz,D%V1ZQ' #I"F#;G7Z &{+Zlc@q`7po?KUbgh&DxsOBGLm6s2(L6L\T ( sDeC\zGB dl"`3!,?)t;[Ż'8$ץgl9o|CK}1kb^ 槝 S`(ȁ,8@dnT҆fֆTaWCAO>b*N}|q2&jR+ˢb+,BZB r*/9NR ;t!@3M6,!U͹|6,<#>[}3#Dw$$xW Jg$3phh1]n!:9| !wAy}Нx˙&iTdf!1,0 % Bj "!U Fs{s!?"4bR@v3Ռ#[;c2%.LbER%^Yx7A56DCCm*V*p2>gVA`R`FB‹S^q1TB]y&b//iRR`tծS/tː]١P %))*0*+\|݌hCQͽM}nB!_gW&\2(QQPNU[:pQhh3|”&De MCILpѹT 6H#=VڛAAk@ē~{|adY>b,U96]VR)^;u7x`uDulLn\m\Ȩ5$1t&hnW,BYPk p(NU]Q-:lS"6]A/P>bI2%j$O #B?*\Ȇ#^#g+`b6 LHi!hUU|6~\U -p0fW710TdƎffOxeUݦp:,W>Cݜz1 Y Y'8,Z3n#aAkVDB#UJcO˦ņO}\3;&幸DcR&:|  cH"\$raσrH," 0-E#PWdfhpM h0C@3 QPVܠ]{?+7έ Ͱ+To4t `rd .d5@7 R'ѐY#0XD(tǤCB #[.$M2amf(֠c @FE:! m' *V!6@@#)*,J XR#R5.@L.Y#M R72L'Rl1Zl@˝S('0AHSh jM"(# & p"L Rjrʧ/ 6m'hʪ*U +I-r .v2w' :J2PNj O"3P:r2Lи<טmV***@n7R*Zc+p˭9W`hIE"ԣbbVP= } }(ƖFl} 3:;+ Q\dhd1 $>XA6ȏRr&2Q1 Xm,/)I6\&YWM4,>W=D ~Ls1Ŝ( \ !%#y~ IP_wB S5TKp֊j lCjC(h e)X:? c9YI(,A EMG\X?) Yn ..`%/>iJcB5. kz^r  j/S t&3Kws$':֡rZ(caز LeaNp06fbnԝ3hKc:<)b=j @ҟMiJjH[BH`%\@*4"MhB[ː-6ѡOrJvDPQؑT!r#i41KS*&` KqN$]<~7N14Tp턆cefR̼6Db3)Ge328 cψe o Yje h ͚5h/ dBI}>͐`)A+4Zk &>$JͶ xZ{ho|+a#[> MNrnK`R.IeTUI_R$-&uߝjFw` |ï.aӝ~ f${\cA)!ޥ R`$ i"Q?rDlOħLK#X.ІJҏT $_/˟RBs%oq`ŜR~/d$3u-uePa(m7Dbe:QHz3/8 Yr8 x,cW`]9x;lA lA,=I ^#C:ZyG`Ih( d tIM5 kgX71luNFY+@E7EX)IUܒқ&֭IPn4u)M@ftG& >Rlךpv͉9x"P}rQ~Po?J>WO|?*eY>m}YS1CF%H Qt&;љh#@;' AhcR%.5`]b'Ȏ_\t}3g.\Ă!8ҁlf_ KZHɬ;-΋jW;Fc tUIx@x20;c $[ %WZ8@OL$wz%`K\MB8n .vy㈆m"VtqcmG{Il49]"e3M&59\mRyNo@0^RMKM4;EtrƓPE9khtaV|2$(@@W)x0`{ 0 2 H2ubn927cmp 939r K! cz A$KC ڗzA\y\ 5H7 "( 48,H#b0[bIALCq* ϫ$1j ׋(|J?*N̼H Pp = ۓ!zŠP =:c+dzHk_p{:>cLm ;FH>e|ICxc+ ר!1$FyEpO3#%ct\4!t AT>z@1 8P35c(| a u f)7S I:X\ca+ S؟`'&xzB) ')ۺr 0 pȍ hjq [2T+< J9dA³ 1lBqlf":R (?sIJ{X<H`A%CHm  $}̈"!BDx ĶDE"ؙ 4\I kDJ IYLl z@J*DԠ-ٻAEE=BTo.Ӷ\0A8>T<&%yoMRݾyˢk&N%Y I.Cr2HQt\E @lO{ G d`ͺcȗxS!З)Xϝı[g8-|` ifW;ҝ?YH~#"1MA !*4' H5$h$LJLJC1BHP)ҼT8H@ij"I!ZqARáFF l)\ϳ4˶,SU\9Ռ NR}U Lwc,e,8bZBq*w@GwL]U:Ş{1٧ 8 VO1@ʴ45 ` ) P(fq3tM BΈ٣ h5Sӷ`!mql'HH?=IETpԜM -P =|)[\X`aD  (Yh)Hdr8{P"TI ؔ (͌l3:4xaA$, DC|.82"ؕqe\{2H˚ښDҋ H$i( M:^,ƿ \l\q>LMk+(\h\M Ni@~7͊0.r[F_TBɎ]0!eEK0px1 n@QX  `*@ú%^ FcvŠ0ݸS-`)w xJ˨PD4-Ap4s)EDѷJ `R[*XXE+-(9isp#Xh8(R1'` C:*8 Da.RY@81U"vJ1< zDZ(٬Cԋ?ŵr^}S\G"D]1F%;>ʦb\F>lbls6;B.P6$,",PJ%\y>4̹͎w68XcHq 5 pXflnMORǑDt^9 jAxW Ͻ+co1$#Q  n\eN9y jŅ #.EX]؅eIOyHoh h.(؃U؃==`;=ho>DKW3;12<ADZRE+6g#bNL[Lt Ա] !]Osߒ)MrF6pcjW='MK{d( 嘙%@\dcI022N)+%`-|%R觬H4 _IB~ '4K7}2] LH7Ak {^T2'e_q"ל/TְƗ*\Do E`eρcoُvoRvvA=mjr^gyR54< O~ygFĉq0=ЀOkT1+$ٚ *P*0Cq-+-V C o,(  `hB @aV V|x%A07_NVh| .)!7F :bQGnu֍Ypa!@ %k-6hc"`8Q@J9ʥۀ lEA 1FZWlgѢf m7$@%2iQcu. @Mp(d88/Y̚ ݂ٽk;k%K%m̡ b.pv?o)aQA AQD\䰈,H$ȅ*jLaG!#ja?PO{dNhD)N8! `@V WV`EU$I$$ITPV$dU yc6$ fvA WdWXbɐ 9٦fgYwgK wlmBVACdɘJw`0`gqMJsg֚(wVƟ]XyV AIuhY|Zb-.  \ ʼnTB$\v0Ѣ-D")?cR<a?4``I(h ܐzULV\&TY;K.zJ*qYʁAs\|Y6>DAa0w>*in=BoM\\a Ҕ5Ks>YDw%ID$5͒A~-Dd&$T%ZJ QmM J׹G+^(JWvĉOq z`aBĄđT/i=!YYG$x Y1+J z*tDQflvF8JЌ\>Hh#NsZyvX}L3yDGd>惋\02D!HBGV!nE&x|c?i`}XjJ˵iv, -،-E1HJ-LMN YY.YD1Č|JE-PMt\edJ!FyGH%hRKشԤIKULōdJ!.YKĒD!ք!KDR$%@Epe̚=n%؅8erF[ޔ!!ٗnjjOա] E왺gEl LRbUYdlDEKE8uFbbը D|JGAKqX~8pi#k *IMFALWj84C9H#/1-T*9> UORS[v^-bxi`ۉ^Fcσ˴FJ=t|:AJ|g8ZYR@EHOdGIqǘRhN%EcVSN+Iŝ4qeH}#XT)!~ yL ^\I!տ !}RFQ }FfDIyBzu\ǖ-f`ٙ~ 9|D\*df^_(_lfm2cv۴J}'qv%U{s(^ΕUzW4n܀\yghYY֌(F5OaqV"Y}Ǥ ObJE@ȇ *%|d!ݺJDLTI(2˱N<@QK.FbhN/NTRKheDce! t A!) 12jUJ0,xF|Er0\MQ҆ᙈ"6-E f}QD`-*E}Bh`MZ#xXjmZL0€2Bݐ@5C5 LTiW7WrbȪ35璉ͦ[Q('(ID+9ilh[n X\XB.K BƉQq$.j"r ,E}$IJR2o!*پ*/NX跜* EuREKD-MSA̲0o/KQL(!H}gIr<ӤEWFީAEx5%0ZR2 9@ATSCTѪ)6iZdҊEhpᙐ1uj̩XBCfC"p[P ju+τ!#EIo(E2DAC9t#A 2H4C5n0~SX쬱. TV|;[fw hCU ȧR%$ }>qܧtI2IhyD)đB رϝ,lPޤL*IjTrNffOH/ē=lI, nSw xUIտI[XUE5V3AlL0xn )63Xɹ,BWD*5DADGԙ%|%e"|8>VoSJLVHL`P酏@8C)'CNDTzOs+(B5xSQ:WėNN9[jzΑk">5" S|Lӛ#إ܇!dhbrPߧuy6B$Hd-(CjK/"JJ4KNīb[vDOE.rjvԩD2o//K&J IS~t|f @*bP SN>Z ]e!=rZgty+b}ۡBK֙{E 4"x%Rl00iU]A&&hB(E>1\??0@A%M hB9|%4WCG6h6x!h"sk3k ;yȡTLy.{(RS%HIQJWH™aF]T  ,9O<]̄jdf=Ks/:׫D/+Av6:!RhKIܕI2Z\KC}aRJD!Q|}1p)[.!-Ǡiwgi7 OY/z+0z'P|Dg>4GQ`S C50B %[# #458 ?$@ ?AL?E?C5;A%DOW'pPh?m ]b+-\yEiIf-xŇavSG> @ AcŒ7RpE5^tqfr'{qȯW,2j~pfϟk9~Տ(@` /;g=|0/B -0@, 0k C,8* >X lч1ؑ1W.jp @,r@ 0J(,!pr!cFYHʩᄓjRN@!2@ĕBĒP CJ".$([s2L̲4.Ζ4^ٻTSm! -5zYqe~#+>Cι$D# X>D*⮥[]؉?ʏxewUpa.tP'o޹E+D LD&EO @1)VGh!o$4G~ZkNp$(851)@9r!dg0ڒ,- P(Ӈ ,KMN"DWY[PAP,tP ZnP9 &c׉?h%&29*_HjTbU]Ϻ ws+6m: ӤvZ} C[dE7^t[lW/oG6My-Wj ~Cn Uh@; d1v቎t0@S3VlAÈa#Q:"ЁR E ZOm撝'g9+N 9gjԡ O,!,zHw*b]PN,AX {?dP  ?h(K ĥ]S?\60`LpzS9&;UJ 1tDP h\8e9eN$#ꂢBu$}!nJy{ӑRTyPt!OʈwP(Zժ5wc%[}eU2I 'Okѓ |bO[c^?sy^y˳xs80!|Ht4 F $T_ Ld!! ;( Bl&1!~) >IFSQ,QEs*U?H (fAtt"T8YU:lzrGh!{vY'qT y+"@(L1?6 ID 9n?.0s#KUiN"/[(R'h p)/''' 1-#\B!c.U2ԔJ˲ė^" q`WO@@Pa1+L);C ѫ kXz5aOľe^mi!T",vъC%Q̀hQ'eA(:Ak9. Dq!BYV5 B#PYHJ$GI(G@iNTmJmoi \bDzta3 ]Х:]t]`iձJ~W+膅2/Up-,Vg2?7O񁯾bp.W/S^Y l.G8J3eߴO 9yO>3Ltv9hboYHNkX'=5NoX?9Fr0h=7QUaӴ=UbZdԬ(gP2^" ɐs\!&A,^PK@+N` m^QcHq8鵱m)cڭ9iioyxLܻGN蜧!"*VTmLG_y[z~?{R|xs;ǙW Ze p7U0;=M-`ebg%,N,Jj8 a bbB&@*@?D`OC29+@A^=@Hq \l˦8"blDPaFD,H%6kJ!nϛnoR+Ӏbo pD"08VmGsf"tFQnz͈2$p#eDv$@|;D$LFRpW 4O^]Ϟ )P ԭ,( #e-O2+{E$N0cg1n,Z,I1 @ĚqS<1>cf;D9z:6P"#ln~j=&ShBce`b=zbBڢ!ZDج9(!>!B:G KdĴ<-K%Kn n!DKKmHkƄ,`t.`~)A)i@rL)JPp0/F+,d4Bb-c?q.2:(sHTȔU+  P}Z 1)il)^o~7. Z&*Z/32JO'10WA$Qq1QU*#`,l 2N1 0115_1qS7wZ ZxS1pdj;A~91.t}nx$q=vL(>, R&n -,-C!Sl #'>(if>}?uF,T &$K Ӻ[M@`2lDk l)`!0o`!`^4_'G ^@x RH_"Jsx<ouDGP%, ܼE000 5ceo0k|io~45΅~ L}GPO5iesM[ӛ`QUJj#57bD&L,2gZꪬ8Q=4 v6n,ej'&PIJS!_nR@=hB8q}qW<;"XuiNzb ?aϲ$BtZ0L@̕^uh 2,D+@ HC,d om)#Gqp!,`o@ ȢzKQGʂH3qce8؊-v' x/%oP'XeSe1]aVMXf .S/gA}Fj2o|La1IjAXBx!5C6o0K2w=(SN*&`A`bpd&BL:Z.P #$:`@$Hj:5D8nB 2@qe<bޢl-d B:BH(J'Nr!2@J %IwxIא7ɏ m!]@BN@B&%x +$NNI4aP&H"GlQ 1tFG#."%Nb*c[҅1 P4|XQwjKG8Uk6) D7-;I΁-hHLaz:}8$זJ}`9jbGf#(R>djVWJذ;V'&+XsaȊ>kzBЮp),Aat `z $,K+C19(kzW(2r\U ,8 NDJ0\a Xsp$|s{9I_etICbd؎mebUnOYY/qX}Pqb{11g M1[*0KQ˭W31GW:-6QPksd2VL:b*pc,&>9OhU۸4vBt2LLwV}w#J$l,n@1hB^53qe53m!d6Zj4<#r: ȀF&f[X fF,&&rD|W H [A E M7dHA $l tL'{Աɢ|TRudOmEC#"L{,2OWQ7eGlZk5Iܤ,>]#xI|^ɭ▱]ֹSD֫ۄE3Я ,:6 j2 aV&qhl8˘H1Db@L8\,+%x@K$O v(YpWS蚝=R`=Cڛ2]UFP,v@D hs2[iJhwIAʄmJL.m0ȗ\bBKl%˂ 4$O-@-Le!Zaaf͂)+OW[+VqlPŭ,jM@OG,׭;LckQēa =T"Y `;6*" LDxibOZJKD@e! Bi <`bG2;o R 3rG 1<-$dZ!V':j @h|vg7vE 4&1nj؉!>te``<0@䂓 JrA4:qa ,Dd@7PKti >^ u $@0V›$ h Xʖ-Z0[$*TPƲ%lcW1#F\!*BDtB͚!`Ib~PZ6iow쿶wNc|1F' w[0ߟÐtٗ/_}+U*Xa%p 7[[!Yj}%Vb`uRT@F.1Vbi#AdO% 2$K<%\!vgCvX?0 V~,lّU% ~uF?%yÖI$E2N0pK % 2`'ui z1@ )'?`T8$A1%j̟obtB21t) #`Ӈ5ֈJ 3C 0G `@ @bS,%S%հfUQSeU\aU`[_K\qQ ֳyW=T_mbiC..WrdDca"og jVkݦ\jƜsp ;\rǛeWymx0Hl: ְP[ sv@e!ɼlcƠl={L)I Oa?aZ&>C 2PIG.krqHҞkyd̨#%e#a2 *3 juYHiK!+tpdSd);1s !BBp eC3waz'"!BBG O:HY@Na(],"۱ c ZWbXeױ. ,?$X3-}|J $T!IԣҰ e0a@|@#cuxC;!"SUӤFeA BQ/ƐIbXȒGЊDC`T5ak!RּtjDzI`b^qjw@@:Fd#W@D2tq6E2Ђ ! FЙAqB@DCrw['ڶjFRa0]ɘ1&rs (c&wBV^$OȣH)Ԁsuf0zHd)MEۖH +#VĵI8ˁohf3P /ҋ| >Y6 -nRBqiSpo`S?Deَˀ)Gazc,D $ ɚp(ReJAO%X0RCzA02!'F6V&i (_pOJˍ |+ |.}ڋe)K?1DuD D@6Dr >Hb>UsOfDzDvV QqV+eR:R%G%Ь@,j)PƐhg5шKXu- T4"A!VaAQX%,u0*Er3ecz 5-ǁ*BƱC96T4SCAC3F$c!D)sKT?T9"0;-ItU1ih"7rOGJ*Rf"u6 #36F\7B9:dJ=$'E't|9-wsv#vmǥW ( by}P3YY+tP'h'[ρzӤ-K';q)&oLǕCCwb5)݅|u"f5PzOIvuP%d~u_Y`_1omqר po 4p' EVAq &a >6`Qaa#"7PqbaBr(AM6sF?AC1US!ǜ !A-AR&P!CG6<d ST%YQO&%SsDWss2tE4@CC X"y4#<R#hejԓtefd'z N}zs6awpww)wH9#F( +ФfY pI N)y+]gXSYg5jW)X2x;l\huj '\{ Ly';; AN)tS46!+] 6tDRF" hr/QT`UGV)gQdsoIQiqOu8qT``RArq3y/V1+C(>2iTڟs-s dO2!CF61 C$t@TjD2OgZ]W-*MQH"EW;)M =v#=5'-3X4*XQP=X\ws<鋾p@ (I(T({f3:nU29·Kt[')PkYć*{P[0+24t'XRmɳ]1  pKc_.p{̲%r$AS7pa'~iqOi|aq J} BFg PUPa 0"Rя6!cD4$d1BvH*5WcTJu'sGd2*dO֠# I#NƮk*/W6Y#dxf"㢭v6(!tWChH8mŠ /a>jwyv![z#:zB#(LQ;Yڱ#+wE=1"\z?rԘćZ)TXHX0 -;||*=3ERK3VRۈXD]_u?EC $IP$BUB81fx. QRVb-U}r˺{BESފcZ*TMV82QS;Kp2*RF' C26hw w%r˹F= *q66*m]m69H( @'WXp؉B1dp?nd?&S~1+pfΌg>ðT  c>61i?`MD^v="hxa@[$$ JxX)zI_RBC1ng֮: SU$&@d"}bJeǎTDL5?](Mp+.TCBp+^$SJ%BKNN~v.Ё5E25(g<5yÚ^',0.w^)T//sҁS)Co pш .!n M4y4M%}$zÑP:؎ìpM,  *(P6 *B rQ.4~(q7jO8Gӈ5AHP ?d%ƨli@H(l\j8H \5@9;EǻC$W!yr[p<nʧ`5YEUT-%e]R(2E#Gr+dpdrT9S$9P98a guR"4XҼKvMJ"곶:XE(WZ%lQ%0wՁ ļK^ F[_UM5kR s(kYнI+.6goxVatmwS,| F:ƻ@v?cYKѐY& 9Q(>ZBipE'XSw6 n0b o@q*H`jcH]0rm3Nxdr \ R4*ik_47G'_Z`R[.3ƶAnM[n2HLHB +|l#'d AC.)#~(@S9鏵bj֭ShJfjI.%EReP)%oa|R.[ޭ;zY@=M31)}KUGR}x'GZk@tؾ(0yBg`VoX=z$X p#~Eȣ")M 4hҷ ~3PQ3;/ ۈ㈎Z `:'1 3C*ςHɺ Vj˰*[#H`NZ; xLh7۬%%X#;?̪MY) Ƃ,NΩCL: Ĺ-bW(XzXԻ˥m ^:H.)=]3DaA6 Y؋5H5j._""SiԈ{J/rB6Zy[/ꓠY\c r0P(ƕ7?sa| [!jп ?qXYp y*j[Sʬ̌\ CE`May!`hEӜ7Y|Gr!GMZf Kx3/͌ 2pv"!OsI`,P7˹GaH&a*VП{O1ز Jش, 䦥:P;YBER$ĉGȰ˔8&)+o8S,8 $AnpHH#l55`ZQZ8ASUJ.h:R"ҰԄdcI "K]R y O1q Ⓨp@U:M r\ӀrZ(?|K@?ctgTK5sTJFX UzltF*Na x(<탊9 S(M <pTa ceF׌eTk!$X?yƅP8sw5Ę40 RPչQ\ȅ33-DQ+h(MB|,SS)]T8E; 'T;F3D1 hG9^ÈK  I3=3`<ߝö:ŊH `0 5 Y$~*{&_bup5 b 2a. 顡`x-gwk_DrGE?7;MbF ڰ\@hcs#k9^ آ4 11h &32,\ZÑ(ɨ]ˠ-]-K -x ۴5ᦑh$5Kuݸ`>>ѐjBa T&9c\QF ȕWAtӢ&SX66ߍ "l%)Lr' tw+ZfgbZd(  M$E{60TvMn!"n'}'6 |K.HsbL)^Yl,1h@>ɝdͥ@ʀ? ]H@ǥ= HȁP +@!Lꢐ:~;Y (pvPd%V,֚I6Za-l`XqÒ(3-T z&\=rҮ&*+Gqn=lmHYһ(`xzJ6xpLŏ30#Mc$uԱ]FB FgjKשlM~WxKPXݢŞgѥֺpǧ oB.N;I:ȭ3s,NuERעԃl^i"r^ߐ &`O\c>C&!pXյJoZj%ة7ȯB-dQjB,w')q%A۪*>H@l CfF ߭WNe5INT%ՍYDx!x0M)5xv\hB<`N -SQ2>T U0l(!#JlXƌ1^IocB&:[էCш:clfaF4ilj5QpD#v5FQX$t @jLi'Tkbځ!HJΉ&-rhŽl!ZG.ƛtH u"`D JliLv=j͆"TDveQ~kC~D rn1-Tٔ`КӬ%hO'*֑Oފ$<2#إ< (U̍«Ä,]LFUnu/!Bх~b̵4@>aZ;Fۤ H``6Pƥ=% eVІf qPy#c9!jo;8 >^7"zcf@7;ȆB!ʼnym Q>A _))sTHk9ygY:yxq:KHtV&휖QgN(Yf\ F\& kdFavo68M4!5NN4S56⺟uvt`dvtU F䍄+nqߊ?)p^4RhuYD';F4)Mv5RHa{< p2pO7*BLa+⇗_0T7 .tsy\ .z}SBd.M. W_)$R ho\5vLXWDmU}Fȟ=yUDUMMGY Йuu9-@]ELϰ]]]!׹I4DRT& Zg| 8'+]dSQʡDD/I0uE-@EBT|EhDUlD&  Y cɵ˱vTD͸em A`(ۆo KX 7xbMHY[jԘirGryX)_< YǷ}XC5nF)H[twT}Ԁ ƿE2j^Ec%v$B[s -a|ińGH)5%+raFF)#W= 0jjFCǀM]^#8 F\@K\m_xW49:GQ1܎-k|SLVH>N=yQty`?$:ټyFԭMLAϫeX$'`Fr!%Ν4N1E$G؝iħb$,d*hy+$]P0 hɞ0MŨao.S eh%~)\O^ dh,rt}ey61ψ"8UCL"kH}mrpXbrf-.F"syLAy&LA&a2G}\4 =L  wASg,Ѐ<`c\Ue`ts( w&ԑh$8 Ldҽ 6^F!`"-RSyVƝKddN((q+MDPD+=Q ESaIE pHPE|(FS @ʴF FF`eč:5 hG+[>ޕF%L?ix CS*f \ڈc68-r^)Ll082}Tn h$ }Շ P6Ґ7bцɕK4Q܇1")q͇޺ğkkjM윥㍱*a &B]D>ϗ+[eEY"ىM< ($dħxK$ҤҡD(Ep$𤨽!Sʭ6,FZSj:9$v,tWFLMkh٦#AFIx\TrbbPr<\̺ip)dvETӘeN[ mCq_2͇X ]- 긡n| =HmpbXr<Ǐ|Ջ MS! sI֣*$I?ww~jc ҅Dj[{YqVFzM`)+BbRmqNjn+pkN #19궡m . dn!K$^k$%G k%S>%rȂdQn/($m`z@#D0nļ/z*H} &WhjejnF sv-8%)6ڗ~L+*`rHuόk0bp})U<*OԐƆWx z -bDJYYYU^{2Kg?g|F.'RG_HGr(҄:]M6hEcaBBߩJQn?U$3e,%'oS n$3$+a ?**j1bPDobnDPx PW ~+bn*%k\m|sh3FoG{t[Mi hR-ߘg"Lm> !hK,/`,@"{Q*1e`rp?^kQ%+1FϵB4ALHSHJA٠ -#ydDSptdLM>(NqF$DOU}Ob{ZEV?l.o὎*bOroXFHM[+-[L84H YKXt@i޸ԟv+i4imT)ڈ0DՔ}H3sUoH ^yȨ-.H=- 3֓&b^N6fq:Xӄ sXmwn `j$\]Ucwr1QaBZzgCzޕK!`@JK ֛ô庚A|1$7A߱}Nwdm׺B"xص_8%B;S:ow&/e:"Z.V'{_^{MgHM||8##DM(\»y!r0b縐5tayA& -e"~y}^p_0K yxy?PՌ)v,jWVEQc|U,Ct?ʰ\ϑTv6q+$@'&D C2"FF&bd`$#2*|9RH DWOeˈ, 3!h:M.]ʌ?X%* pAԨ >P9߁K.ht+ãH.m ~(7`@r%]t]\;8(+bs3.8]sf n.=讓oN=7_4;/:JH OBԣxa6q@#4m{LEŔYhdFs~Rh!LdHI&t!r@?h +B($* ~r̒kds9ک7cЖ("DG m߄D6픬6SWPX P*]#kW\հI'+@m1t(PDQHo[ލĺ.GOFdȣsOa%oc;._+8~%v~ +ٿED4zPXOh"g3tH8/ʒz,h*A$YPZ e%]Mm*RF$!v2m Nl“E%>Sz, rp Tr)Lc F$@*f39/,"U%Tu LDBT/} JA3ɕJDջ2bQo"A34.guFٖvSp4o^fqN%6jsF?u:ӿi}Wxi?Ə{x9\Pb;@FYj wK5c .ʢ|8ԒtmC@KvDDt EJ $p*!lxТH`&1)Q)YIĶ 'q[߆00"p0yAQ)3}IOqST+ %XѥTS$D@N2sa(;JXV&*;Ec %'9˄MP&zzbbiX+r΀eoE:JW/݋=N.>~6L9 F1PF!ZM*!Ds6J@8r3)\)yheHA{şIhCIa*f-l![$FDӗĶ&!TTt&ɮ/-^R<] lV" BPv4XPtUYe\Ø=jWVBLּxuZkY;+]q&0CۡHƣ]Dn1+ɔ_{ә"^k$q#|sY-{9ky׿Gb,|ܰeާaUXgBrnD>oBm١U53 ΥH^2D3BlC,̢ V]H?d%ADX5w A)%G|(EC66գpdYLoY— p6NwONv0aH:ՎON"*1U;W9#T:I su,FƜ}Xo) ojwe>)WgZg<=a_N}Y, Q;WP2FgB7@ t.SxJJ:P / sJTP8V,Hb+tJoE1L%XMcL: (x7ux};Fppf5 F_X(CEfQfEPF6$%+hEeI@IQ\PMIP*,j f JT$km @d.  pB)>~ m stT"RJ>G\e JWTtPф2m Qn[n\]7lѯ&k*ܧ'(z7c>djGr0QC@Di>RF?S..5Vhf+G1ndH[QҮeMbp*$T5O5, Ò =e- E"sڲD P.,#J,@L.H2hL:M% `md% 3od% h*5T[BX˘ 8C]_7TNݧ[f*)k,,lc9Nc;f<Ɖi-kqqOgdv/NB-G:D^ājjH=)J@gxe+=At/K2dHpdIeѻVKQ[¤ʤl$LM]H. ),g7t60x3ܜ3.zfNm94SސT(LbTNL:Bj.R${ݶP66m:S>=6'M u2NghG3`R0/u^veH/ 1hrdEY5dS¢29 3:C>oZJ5(g%2N&g7,mQ6"Dzv/£7%KZIȠaBqtn-ZencF!H0jFU !d\ډBne&&JHGpi?5CGZWd#G.g\WghJHdJ23Ϯ3#VRaG"`ӽL=V%@V/P8P(z!ۂ,28B rL,1x"Ղ|/b#-X;]stuFR,XnӀ]N!  } "5>PiZ^6YAN(R;/t~zr?JNCf)tZquq@Z[G+ U]xDmEEB68$hv_qfIYtؘwIQQ""[d4#b4S"%NBD`zۤ 3( S  n8vVS p@EtJ'7}Jly-"w-lvf:_ %YepPTDZ8Cjtoq.GsOF\IzqDIFر$,@Qem%G xhHwMP` n b1>*&y_FqQz{d6e u'V7h$ntgq9Ƣr"O8?f+l(~/j,.(u^ΊN6 +}E 'Vv+ M?#X4Xu#;6..A-ezt(y(wxBc o!Z﯍o\r#LDÕ u(]k*iTU@2fX:58"N뢱6=:! ՜QV%&%9x.riLU8 AL,4 Pg!7T颧<<,tf%7[T}_@&opGT rj2sL3V'1wz)wڃ1Ⱥ z*=yC.. ;[zb@`q>Tɩ5"qZFkG2jHHǕtj@K$Ep˸v#"z8"ILQ5*|Py!d7i>}V3 Dqf}"7-YejeO}c:?9/ ܂GTtMSVRhEWlpjp8/lP 9QBYyDF@@i\CrDI""_H& ` iEGsyMcm:%}أӋww,RuZ 2ZϋHyoP,0S/,w-0` p@+;pG2䏐"*\AF"%ĕIp5e4*tQYH5@g>->g)LA Ti&Ne0S UO^ih^V,"Ք[Ejskd :)h꫍i)?QjeZר 0Ue#7F`MHm{Ilq#\1Ӳ'muCPka]Taz'n}qQʋII9`N?M@Ypg fDPI+e 02~ s#6D#B3$M6$!IM2X178K~ܴjSM ґPΦN'PLѿdz+Uj@~D,PEK/_V",0]$3.2\ɗ UHiɗdђiќsV+PSʗ 1 jPdC8E"9wskC@D 12u]{it]mqhRƚ{x%Ԏ O}cjS;Ic( v cks1'(W쮆82%*aK0C>}CB +GVu)&1)H*W^VY Uebٍ˃єzLf2n5 ܒvNN[J qk7gH⬫ gB2\m4s-MɜS'.d+](ϓhLf :.oQ̨R8kS}OgnZ1tLݺQL=@.wJ+R@ 篴8YZB().J)FP"bY6 cҘ9XtOdc~q72UG;_01!]ޕ2Nbֲw'S[Zg8"t-;boe+Yp#r7S(\NB:ʅ!I?t5ڡD1q#/=?˄;&1Y  "/0ze@h2zN&A_hZUN 44qGfVOR qq^36!6vF2OU}]OGu}$ֈ\-!xD>g IJ89Ss4GT]1Aec_` qbzclLH0zѨ$3!qXsbި2WnUG2 P1cL]2Z*t;cS8M_p)e,ҙIiᐯ%'WOZKq5LJ7rcq.T^zHC)B'1))h䗉F⇉<~/I~6B4']הsI9͡,-R]ݑ-?sqhI b;sebrd)cc Kx卑WWq21d ^ag9Z3ZV"$$42@Cqw˸ =2AY3=a:4I1xѐH3Z %Z'D'w|76S #+Fa(BQPvh6| !i~}3g }oڦߗ.q @xzm*t7CDTsW)]̱REF#GrkFFҕ-Q_\G7e-g-; Bq4ķ9Ú@aOd,i7"ݘ>wWdBKfP)%t(% xMQA5@S#23& a%C2LpB5A'yAR\g||kuOM*Ot ~~C}C-vjWy` |ʦl}KJ8s9W]BZ-%jq_lu񹩦_Y: 'Q@ kAl 5 ICֈYxy}I/θ;Έڙ9xǨ-}R)"j #F2DPGTp4(E*G+mҠRm\wH(O1"iulkr'FYA|D [p9t.#w(l)L '@!z=eF<M\- fc^Av`s(b-\{_3JAC3g:"H!|K͵، 6Mhm7c|U+R;MGO 9G:氣E;Hz%,*=8:X:oV@^VAA$DhF."(!ȁ@$ܔwC  )2j I)*,bs⹱,(]bJt!;G^p9C&<ŋ)$s]|)%I+yn bũaSr?! =#[$^ҲsaB⢐ M:0tdIgS*HBȟ G}'+&) _V#8m& Nj*AʹۣSGpQwH<{ Yry, =TO -7nI2&鐏 ;*Haf7pT DA>WM%T&̺:LObR 1,LP;y/[li_R)ԁ5 `@xz%`$: _OXD,)h1h.diIJR+jR$! c)M&!%DP:94'WUuPt+OsЇ?QL:$A`Zh Hmb*S!ǷUw&aY!N^9Jq 7HIǺi )zwtPRmD g:҄+J Q-K "!Y݉sJUz?>8u| P''"tRލNӝ$J`'KDy%0Arr !)_@ל ~(ZNs #=A ,PzAD z  .:ח?~xځuO/-<{6:oХA7:cG!~o ?|CH\x;9#.iCM/^y>`!AY{']N;dG{?<@>#?D?l6S [-y<;A`t[郋'l-̻{ 'Թ( "=@۳± >6 9t«oX96#D0@[÷oxDcƓ!4C BC=t:P  htϡkA?v897$YC/ñ` U#@-:i< JD:  f=LE?d,^#DKGBhFw$ɂ0ǀ >ʃCG,:CxG|Y< #$3ÓۺcȹA0xǫI,"ţv:Ja>C<,@-|˹?Fyp@ K냘>w@ԳȂȩ,͹:BNIqBOA<džS34KkڼŜ ZAdś?ɳFh< CjC|?ۺAA9sC\Mlϸ;cMJ;Jʫ @z;y(EHv ͸FAPù S MPSMPBPT QQLpK$˖ IcOR<$OAG]K?κAP\۔ [C$FN<μ+3 ElJ(9HClI:4Sk@qyvP;$u}CuPWAH R-ԌkI,Q (U9 aTHSSU@uXG[uT6Ubq Q@ 7e-j6&tViM7viVl;sail-0.9.8/.github/workflows/000077500000000000000000000000001475535176100160735ustar00rootroot00000000000000sail-0.9.8/.github/workflows/codeql.yml000066400000000000000000000020541475535176100200660ustar00rootroot00000000000000name: "CodeQL" on: push: branches: [ "master" ] pull_request: branches: [ "master" ] schedule: - cron: "15 0 * * 2" jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [ cpp ] steps: - name: Checkout uses: actions/checkout@v3 with: submodules: recursive - name: Install Packages run: | sudo apt-get update sudo apt-get install --yes build-essential libgif-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} queries: +security-and-quality - name: Autobuild uses: github/codeql-action/autobuild@v2 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 with: category: "/language:${{ matrix.language }}" sail-0.9.8/.gitignore000066400000000000000000000010121475535176100144600ustar00rootroot00000000000000# Build dir build/ # Bintray key dist/macos/bintray-key # Qt Creator CMakeLists.txt.user # Prerequisites *.d # Object files *.o *.ko *.obj *.elf # Linker output *.ilk *.map *.exp # Precompiled Headers *.gch *.pch # Libraries *.lib *.a *.la *.lo # Shared objects (inc. Windows DLLs) *.dll *.so *.so.* *.dylib # Executables *.exe *.out *.app *.i*86 *.x86_64 *.hex # Debug files *.dSYM/ *.su *.idb *.pdb # Kernel Module Compile Results *.mod* *.cmd .tmp_versions/ modules.order Module.symvers Mkfile.old dkms.conf sail-0.9.8/.gitmodules000066400000000000000000000001321475535176100146470ustar00rootroot00000000000000[submodule "extra"] path = extra url = https://github.com/smoked-herring/sail-extra.git sail-0.9.8/.travis.yml000066400000000000000000000114401475535176100146070ustar00rootroot00000000000000language: cpp notifications: email: false addons: homebrew: packages: - sdl2 - giflib - jasper - jpeg-turbo - jpeg-xl - libavif - libomp - libpng - libtiff - resvg - webp apt: packages: - libavif-dev - libgif-dev - libjpeg-dev - libpng-dev - libsdl2-dev - libtiff-dev - libwebp-dev update: true jobs: include: - os: windows name: "Windows Server" env: - PATH="/c/SAIL/bin:$PATH" cache: directories: - extra/B - os: linux dist: jammy name: "Ubuntu 22.04 Jammy" - os: osx osx_image: xcode14.2 name: "macOS 12.6" env: - CMAKE_PREFIX_PATH="/usr/local/opt/jpeg-turbo;$CMAKE_PREFIX_PATH" - OpenMP_ROOT=/usr/local/opt/libomp before_script: - |- case "$TRAVIS_OS_NAME" in windows) # Build non-existing extra libs if [ -d extra/B/bin ]; then extra_bin_time=$(stat -c %Y extra/B/bin) build_script_time=$(git log --pretty=format:%cd -n 1 --date=unix --date-order -- extra/build) if [ $build_script_time -gt $extra_bin_time ]; then extra/build fi else extra/build fi ;; linux) # Workaround ASAN bug in Jammy # See https://github.com/google/sanitizers/issues/1614 sudo sysctl vm.mmap_rnd_bits=28 ;; esac script: - |- fail_on_error() { if [ $# -eq 0 ]; then echo "Error: No arguments given for fail_on_error()" >&2 exit 1 fi set -e "$@" set +e } test_external_windows() { local project_path="$1" local sail_cmake_path="$2" local build_type="$3" local old_dir="$PWD" echo echo "External Windows Test '$project_path' '$build_type'" echo cd "$TRAVIS_BUILD_DIR" cd "$project_path" rm -rf build mkdir build cd build fail_on_error cmake -A x64 -DSAIL_DEV=ON -DCMAKE_PREFIX_PATH="$sail_cmake_path" .. fail_on_error cmake --build . --config $build_type cd "$old_dir" } test_external_unix() { local project_path="$1" local build_type="$2" local exe="$3" local old_dir="$PWD" echo echo "External Unix Test '$project_path' '$build_type'" echo cd "$TRAVIS_BUILD_DIR" cd "$project_path" rm -rf build mkdir build cd build fail_on_error cmake -DSAIL_DEV=ON -DCMAKE_BUILD_TYPE="$build_type" .. fail_on_error cmake --build . fail_on_error "$exe" cd "$old_dir" } build() { echo echo " *** Building with $@ ***" echo local cmake_parallel_options="--parallel 2" eval $@ cd "$TRAVIS_BUILD_DIR" rm -rf build mkdir build cd build case "$TRAVIS_OS_NAME" in windows) git -C .. apply .travis/disable-jpeg-test-files.patch CMAKE_INSTALL_PREFIX="C:/SAIL" fail_on_error cmake -A x64 -DBUILD_SHARED_LIBS="$BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \ -DSAIL_DEV=ON -DSAIL_COMBINE_CODECS="$SAIL_COMBINE_CODECS" .. fail_on_error cmake --build . --config $CMAKE_BUILD_TYPE $cmake_parallel_options --target install cd tests fail_on_error ctest -C $CMAKE_BUILD_TYPE --output-on-failure fail_on_error "$CMAKE_INSTALL_PREFIX/bin/sail" --version test_external_windows "tests/external/link/c" "$CMAKE_INSTALL_PREFIX/lib/cmake" "$CMAKE_BUILD_TYPE" test_external_windows "tests/external/link/c++" "$CMAKE_INSTALL_PREFIX/lib/cmake" "$CMAKE_BUILD_TYPE" rm -rf "$CMAKE_INSTALL_PREFIX" ;; osx | linux) CMAKE_INSTALL_PREFIX="/usr/local" fail_on_error cmake -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \ -DBUILD_SHARED_LIBS="$BUILD_SHARED_LIBS" -DSAIL_DEV=ON -DSAIL_COMBINE_CODECS="$SAIL_COMBINE_CODECS" .. fail_on_error cmake --build . $cmake_parallel_options fail_on_error sudo make install if [ "$TRAVIS_OS_NAME" = "linux" ]; then fail_on_error sudo ldconfig fi cd tests fail_on_error ctest --output-on-failure cd - fail_on_error "$CMAKE_INSTALL_PREFIX/bin/sail" --version test_external_unix "tests/external/link/c" "$CMAKE_BUILD_TYPE" "./external-c-api-link" test_external_unix "tests/external/link/c++" "$CMAKE_BUILD_TYPE" "./external-c++-api-link" xargs sudo rm -v < install_manifest.txt ;; esac } # DEBUG, SHARED build CMAKE_BUILD_TYPE=Debug BUILD_SHARED_LIBS=ON # DEBUG, SHARED, COMBINED build CMAKE_BUILD_TYPE=Debug BUILD_SHARED_LIBS=ON SAIL_COMBINE_CODECS=ON # DEBUG, STATIC if [ "$TRAVIS_OS_NAME" != "windows" ]; then build CMAKE_BUILD_TYPE=Debug BUILD_SHARED_LIBS=OFF fi sail-0.9.8/.travis/000077500000000000000000000000001475535176100140645ustar00rootroot00000000000000sail-0.9.8/.travis/disable-jpeg-test-files.patch000066400000000000000000000012171475535176100215110ustar00rootroot00000000000000diff --git a/tests/images/test-images.h.in b/tests/images/test-images.h.in --- a/tests/images/test-images.h.in +++ b/tests/images/test-images.h.in @@ -38,8 +38,15 @@ static const char * const SAIL_TEST_IMAGES[] = { #endif #ifdef SAIL_HAVE_BUILTIN_JPEG + /* + * These JPEG files fail to be read in Travis on Windows with a segfault. + * Probably it's a bug in MSVC 2017 used there. Tried to reproduce it locally + * with no luck. + */ + /* "@SAIL_TEST_IMAGES_PATH@/jpeg/bpp8-grayscale.comment.iccp.jpeg", "@SAIL_TEST_IMAGES_PATH@/jpeg/bpp24-ycbcr.comment.iccp.jpeg", + */ #endif #ifdef SAIL_HAVE_BUILTIN_JPEG2000 sail-0.9.8/BENCHMARKS.md000066400000000000000000000064171475535176100144450ustar00rootroot00000000000000Table of Contents ================= * [Conditions](#conditions) * [Results](#results) * [JPEG Gray](#jpeg-gray) * [JPEG YCbCr](#jpeg-ycbcr) * [PNG Gray](#png-gray) * [PNG RGBA](#png-rgba) ## Conditions | Condition | Value | | --------------------------------------- | -------------------- | | **Operating System** | Windows 7 x64 | | **Compiler** | MSVC 2019 x64 | | **Libraries Under Test (LUT)** | [Boost.GIL](https://www.boost.org/doc/libs/1_68_0/libs/gil/doc/html/index.html), [CImg](https://github.com/dtschump/CImg), [DevIL](http://openil.sourceforge.net), [FreeImage](https://freeimage.sourceforge.io), [OpenImageIO](https://github.com/OpenImageIO/oiio.git), [SAIL](https://github.com/HappySeaFox/sail), [SDL_Image](https://www.libsdl.org/projects/SDL_image), [stb_image](https://github.com/nothings/stb), [WIC](https://docs.microsoft.com/en-us/windows/win32/wic/-wic-about-windows-imaging-codec) | | **LUT Installation Mode (except SAIL)** | vcpkg | | **SAIL Installation Mode** | vcpkg | | **Benchmarks** | [sail-benchmark](https://github.com/HappySeaFox/sail-benchmark) | | **Measured Time** | Real (wall clock) | | **Measurement Units** | Microseconds | | **Output Pixels** | Default | | **Hardware** | Lenovo Thinkpad W540 | | **CPU** | Intel Core i7-4800MQ | | **Power Cable** | Connected | | **Power Plan** | Maximum Performance | ## Results ### JPEG Gray JPEG-Gray-100x67 JPEG-Gray-1000x669 JPEG-Gray-6000x4016 JPEG-Gray-15000x10040 ### JPEG YCbCr JPEG-YCbCr-100x67 JPEG-YCbCr-1000x669 JPEG-YCbCr-6000x4016 JPEG-YCbCr-15000x10040 ### PNG Gray PNG-Gray-100x71 PNG-Gray-1000x709 PNG-Gray-6000x4256 PNG-Gray-15000x10640 ### PNG RGBA PNG-RGBA-100x71 PNG-RGBA-1000x709 PNG-RGBA-6000x4256 PNG-RGBA-15000x10640 sail-0.9.8/BUILDING.md000066400000000000000000000072431475535176100142230ustar00rootroot00000000000000## Building SAIL ### Conan SAIL is available in [Conan](https://conan.io/center/recipes/sail) on all supported platforms. ### VCPKG SAIL is available in VCPKG on Windows, Linux, and macOS: ``` vcpkg install sail ``` ### CMake options overview - `SAIL_BUILD_APPS=ON|OFF` - Build client applications. Default: `ON` - `SAIL_BUILD_EXAMPLES=ON|OFF` - Build examples. Default: `ON` - `SAIL_COLORED_OUTPUT=ON|OFF` - Enable colored console output on Windows >= 10 and Unix platforms. Default: `ON` - `SAIL_COMBINE_CODECS=ON|OFF` - Combine all codecs into a single library. Static build always sets this option to ON. Default: `OFF` - `SAIL_DEV=ON|OFF` - Enable developer mode with pedantic warnings and possible `ASAN` enabled for examples. Default: `OFF` - `SAIL_DISABLE_CODECS="a;b;c"` - Disable the codecs specified in this ';'-separated list. One can also specify not just individual codecs but codec groups by their priority like that: highest-priority;xbm. Default: empty list - `SAIL_ENABLE_CODECS="a;b;c"` - Forcefully enable the codecs specified in this ';'-separated list. If an enabled codec fails to find its dependencies, the configuration process fails. One can also specify not just individual codecs but codec groups by their priority like that: highest-priority;xbm. Other codecs may or may not be enabled depending on found dependencies. When SAIL_ENABLE_CODECS is enabled, SAIL_ONLY_CODECS gets ignored. Default: empty list - `SAIL_ENABLE_OPENMP=ON|OFF` - Enable OpenMP support if it's available in the compiler. Default: ON - `SAIL_THIRD_PARTY_CODECS_PATH=ON|OFF` - Enable loading custom codecs from the ';'-separated paths specified in the `SAIL_THIRD_PARTY_CODECS_PATH` environment variable. Default: `ON` - `SAIL_THREAD_SAFE=ON|OFF` - Enable working in multi-threaded environments by locking the internal context with a mutex. Default: `ON` - `SAIL_ONLY_CODECS="a;b;c"` - Forcefully enable only the codecs specified in this ';'-separated list and disable the rest. If an enabled codec fails to find its dependencies, the configuration process fails. One can also specify not just individual codecs but codec groups by their priority like that: highest-priority;xbm. Default: empty list - `SAIL_OPENMP_SCHEDULE="dynamic"` - OpenMP scheduling algorithm. Default: dynamic ### Windows #### Tested environments - Windows 7 x64 #### Build requirements - git - cmake 3.12 or later - MSVC 2019 or later #### Build steps Open `Git Bash` (installed along with `git`) and execute the following commands: ``` git clone --recursive https://github.com/HappySeaFox/sail.git cd sail # Compile third-party dependencies cd extra ./build cd .. # Compile SAIL mkdir build cd build cmake -A x64 -DCMAKE_INSTALL_PREFIX="C:\SAIL" .. cmake --build . --config Release # Install cmake --build . --config Release --target install ``` ### macOS #### Tested environments - macOS 10.14 Mojave - macOS 10.15 Catalina - macOS 11.3 Big Sur #### Installation steps ``` brew install HappySeaFox/sail/sail ``` Or ``` brew upgrade sail ``` ### Linux #### Tested environments - LUbuntu 18.04 64-bit - LUbuntu 20.04 64-bit #### Build requirements - git - cmake 3.12 or later - GCC and G++ 7.5 or later - standard C/C++ development files installed (usually installed by metapackages like `build-essential`) - codec-specific development libraries installed. You can grab the list from `debian/control` #### Build steps ``` git clone --recursive https://github.com/HappySeaFox/sail.git cd sail # Install the required dependencies grabbed from debian/control sudo apt install ... # Compile SAIL mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make # Install ... distro-specific installation ``` Debian rules are provided as well. sail-0.9.8/CHANGELOG.md000066400000000000000000000165161475535176100143200ustar00rootroot00000000000000# ChangeLog SAIL is rebranded ksquirrel-libs rewritten in C, improved and with high-level APIs. Ksquirrel-libs was a set of C++ image codecs for the KSquirrel image viewer. See [http://ksquirrel.sourceforge.net](http://ksquirrel.sourceforge.net). See [README](README.md) for more. # SAIL (since 0.9.0) ## 0.9.0 2023-11-06 - 20 years anniversary! - codecs interface has been rewritten in C - implemented rich C and С++ client APIs to load and save images: junior, advanced, deep diver, technical diver - load from everywhere: files, memory, custom I/O sources - codec-specific tuning options like PNG filters - step-by-step loading of multi-paged or animated images - meta data support: text comments, EXIF, ICC profiles - implemented conversion functions (with limitations) - [SAIL website](https://sail.software) - 19 codecs in total: APNG, AVIF, BMP, CUR, GIF, ICO, JPEG, JPEG2000, JPEG XL, PCX, PNG, PSD, QOI, SVG, TGA, TIFF, WAL, WEBP, XBM # ksquirrel-libs (before 0.9.0) ## 0.8.0 2007-12-08 - added EPS (reading) - added PSP (reading) - 59 codecs in total - bugfix in PNM decoder on P3 PNMs - bugfix in CAMERA codec, when KSquirrel couldn't open raw fotos ## 0.7.5 2007-11-14 - CAMERA codec now uses dcraw v8.79 - update emails to ksquirrel.iv@gmail.com ## 0.7.4 2007-11-05 - no changes ## 0.7.3 2007-11-04 - added DDS (reading) - 57 codecs in total - JPEG2000 decoder is much faster now - check for errors when external converter programs are executed ## 0.7.2 2007-10-17 - added DICOM (reading, requires medcon) - added APNG (reading, see [http://en.wikipedia.org/wiki/APNG](http://en.wikipedia.org/wiki/APNG)) - 56 codecs in total - fixed rare crashes with some GIFs - added LJPEG missing data - added TIFF settings UI - SVG codec now uses rsvg-convert - code cleanup ## 0.7.1-try3 2007-09-21 - fixed random crashes with GIFs ## 0.7.1-try2 2007-09-14 - added LJPEG (reading) - 54 codecs in total - configure script now checks for libungif ## 0.7.1 2007-08-30 - added XFIG (reading, transfig package is required) - added Degas PI3 (reading) - 53 codecs in total - added mime types - TTF codec is designed for freetype 2.2.1 (it should work fine at least in Debian Etch) - CAMERA codec now uses dcraw v8.77 without modifications, so it doesn't violate dcraw license anymore - bugfixes in scripts ## 0.7.0 2007-05-13 - updated Qt examples ## 0.7.0-preview2 2007-04-09 - added LEAF, NEO, PI1, PICT, XIM via NetPBM package - 51 codecs in total - small fixes in configure.ac ## 0.7.0-preview1 2007-03-09 - added DjVu (reading, just single page via settings) - added AutoCAD DXF (reading, +settings) - added GIMP XCF (reading, +settings) - 46 codecs in total - fixed random segfaults on GIFs and some other codecs - CAMERA codec now uses dcraw 8.61 - added settings support to CAMERA, SVG - small fixes in configure script - configure output is more verbose now ## 0.6.2 2006-01-02 - API changes ## 0.6.1 2005-12-21 - MAC, MSP, IFF, and UTAH codecs are disabled as buggy (use --enable-devel to enable them) - ksquirrel-libs now installs a development library and header files - ksquirrel-libs now must be installed before KSquirrel - updated documentation ## 0.6.0 2005-12-10 - SVG: added ".svgz" extension - MNG: small fix in data types - KOALA: small fix in bitdepth (bitdepth was always '0') - security fixes ## 0.6.0-preview9 2005-11-09 - added TTF fonts support (ttf, pfa, pfb...) - added MNG, JNG (reading) - added JBIG (slow, reading)) - 43 codecs in total - XCUR: fixed segfault - PNM: small fix on pgm images - SGI: small improvements - CAMERA: new file extensions added - code cleanup - no more static libraries. Now SVG, GIF, OPENEXR, WMF, and JPEG2000 are optional ## 0.6.0-preview8 2005-10-10 - autoconf script cleanup and bugfixes - new options in configure script: `--disable-gif` `--disable-camera` `--disable-wmf` `--disable-svg` `--disable-openexr` `--disable-jpeg2000` `--disable-mng` `--disable-ttf` ## 0.6.0-preview7 2005-10-02 - added PXR (reading) - 40 codecs in total - code cleanup - added numerous image filtering functions ## 0.6.0-preview6 2005-08-31 - added MTV Ray-Tracer (reading, writing) - added AVS X (reading, writing) - added MAC (reading) - added MSP (reading) - 39 codecs in total - added writing features to PNM - some changes in the API - LIF: many bugfixes - SVG: removed useless "-lfontconfig" dependency which could lead to compile errors on some systems (e.g. Slackware) - PNG: fixed autoconf errors on some systems (e.g. Slackware) - added new image filtering functions ## 0.6.0-preview5 2005-08-11 - added JPEG2000 (reading) - added OpenEXR (reading) - added WAL Quake2 texture (reading) - added MDL HalfLife model (reading) - added KOALA (reading) - added HDR (reading) - added LIF (reading) - added SCT (reading) - 35 codecs in total - CUT decoder is now not-alpha ## 0.6.0-preview4 2005-06-26 - cosmetic changes ## 0.6.0-preview3 2005-05-27 - added SVG (reading, requires libxml2, freetype) - 27 codecs in total - some changes in the API makes prevew2 and prevew3 not compatible - TGA: small fix (in v0.7.1 flipping was ON by default, in v0.7.2 flipping is determined by image header) - XPM: small fix in decoding mechanism - new mime icons - added image filtering C++ utils ## 0.6.0-preview2 2005-04-17 - added CUT (reading) - added IFF (reading) - added WMF (reading) - added SUN Icon (reading) - added WBMP (reading) - added TIFF (writing) - added RAWRGB (reading, writing) - added RAW (photos from different cameras, e.g. CRW etc.) through dcraw - 26 codecs in total - changed installation path /usr/lib/squirrel -> /usr/lib/ksquirrel-libs - fully migrated to C++ and classes - added some examples (Qt, Qt+OpenGL) ## 0.6.0-preview1 2005-02-28 - added interface for write functions - added write features for PNG, JPEG, BMP - PNG: fixed issues with interlaced images, fixed memory leaks - XPM: fixed issues with multiline comments - ICO: added support of bit depth 24 and 32 - PSD: fixed issues with RGB images which have 3 channels instead of 4 - GIF: added comments support (comment extensions) - PNM: fixed issues with Windows-like line breaks (\r\n) ## 0.5.0 2005-02-20 - added X cursors - added Adobe PSD (RGB,CMYK,Grayscale,Indexed) - added FLI Animation - 18 codecs in total - GIF decoder is much better now (fixed issues with transparency) - small fixes in PNM and BMP codecs ## 0.5.0-preview4 2005-02-04 - added GIF (beta, including animated) - 15 codecs in total - migrated from Makefiles to autotools - migrated all the rest codecs to the new C++ format - interlaced PNG's - fixed random crashing on some PNGs ## 0.5.0-preview2 2004-10-02 - migrated to C++ (without classes so far) - have only three codecs migrated to C++: BPM, JPEG, PNG # libSQlibs (until 0.2.8.1) ## 0.2.8.1 2004-05-19 - added back the license file lost in 0.2.8 - added missing link rules for libjpeg, libpng, libtiff ## 0.2.8 2004-05-15 - added Makefiles - added RAS - 14 codecs in total ## 0.2.4 2004-04-27 - added LGPLv2 license - added ICO, PCX, PIX, PNM, SGI, XBM, XPM, XWD - 13 codecs in total ## 0.2.1 2004-04-06 - added TGA, TIFF - 5 codecs in total ## 0.2.0 2004-03-31 - added BMP, JPG, PNG - 3 codecs in total - codecs are written in C - codecs are compiled with shell scripts ## 0.0.0 2003-11-06 - started active development - first ideas about KSquirrel were published at [linux.org.ru](https://www.linux.org.ru/forum/development/421774) (in Russian) sail-0.9.8/CMakeLists.txt000066400000000000000000000316201475535176100152400ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.12) project(SAIL VERSION 0.9.8 DESCRIPTION "Squirrel Abstract Image Library" LANGUAGES C CXX) include(GNUInstallDirs) include(CheckIncludeFiles) include(CheckCSourceCompiles) include(CheckCSourceRuns) include(CMakeDependentOption) include(CMakePushCheckState) include(CTest) # Our own cmake scripts # set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}") include(sail_check_alignas) include(sail_check_builtin_bswap) include(sail_check_c11_thread_local) include(sail_check_include) include(sail_check_init_once_execute_once) include(sail_check_openmp) include(sail_codec) include(sail_enable_asan) include(sail_enable_pch) include(sail_enable_posix_source) include(sail_enable_xopen_source) include(sail_install_cmake_config) include(sail_install_pdb) include(sail_test) include(JoinPaths) # https://github.com/jtojnar/cmake-snips#concatenating-paths-when-building-pkg-config-files # join_paths(SAIL_LIBDIR_FOR_PKG_CONFIG "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}") join_paths(SAIL_INCLUDEDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") # Check features # sail_check_alignas() sail_check_builtin_bswap() sail_check_c11_thread_local() # Check for required includes # sail_check_include(ctype.h) sail_check_include(errno.h) sail_check_include(setjmp.h) sail_check_include(stdarg.h) sail_check_include(stdbool.h) sail_check_include(stddef.h) sail_check_include(stdint.h) sail_check_include(stdio.h) sail_check_include(stdlib.h) sail_check_include(string.h) sail_check_include(sys/stat.h) sail_check_include(sys/types.h) sail_check_include(wchar.h) if (UNIX) sail_check_include(dirent.h) sail_check_include(dlfcn.h) sail_check_include(sys/time.h) sail_check_include(unistd.h) endif() if (WIN32) sail_check_include(io.h) sail_check_include(share.h) sail_check_include(windows.h) sail_check_include("windows.h;versionhelpers.h") endif() # Options # option(SAIL_BUILD_APPS "Build applications." ON) option(SAIL_BUILD_BINDINGS "Build the C++ and other bindings." ON) option(SAIL_BUILD_EXAMPLES "Build examples." ON) option(SAIL_DEV "Enable developer mode. Be more strict when compiling source code, for example." OFF) option(SAIL_ENABLE_OPENMP "Enable OpenMP support if it's available in the compiler." ON) set(SAIL_ENABLE_CODECS "" CACHE STRING "Forcefully enable the codecs specified in this ';'-separated list. \ If an enabled codec fails to find its dependencies, the configuration process fails. \ One can also specify not just individual codecs but codec groups by their priority like that: highest-priority;xbm. \ Other codecs may or may not be enabled depending on found dependencies. \ When SAIL_ENABLE_CODECS is enabled, SAIL_ONLY_CODECS gets ignored.") set(SAIL_DISABLE_CODECS "" CACHE STRING "Disable the codecs specified in this ';'-separated list. \ One can also specify not just individual codecs but codec groups by their priority like that: highest-priority;xbm.") option(SAIL_INSTALL_PDB "Install PDB files along with libraries." ON) set(SAIL_ONLY_CODECS "" CACHE STRING "Forcefully enable only the codecs specified in this ';'-separated list and disable the rest. \ If an enabled codec fails to find its dependencies, the configuration process fails. \ One can also specify not just individual codecs but codec groups by their priority like that: highest-priority;xbm.") set(SAIL_OPENMP_SCHEDULE "dynamic" CACHE STRING "OpenMP scheduling algorithm.") option(BUILD_SHARED_LIBS "Build shared libs. When disabled, sets SAIL_COMBINE_CODECS to ON automatically." ON) cmake_dependent_option(SAIL_COMBINE_CODECS "Combine all codecs into a single library. When disabled, all codecs are implemented as \ dynamically loaded plugins." OFF "BUILD_SHARED_LIBS" ON) option(SAIL_THIRD_PARTY_CODECS_PATH "Enable loading third-party codecs from the ';'-separated paths specified in \ the SAIL_THIRD_PARTY_CODECS_PATH environment variable." ON) option(SAIL_THREAD_SAFE "Enable working in multi-threaded environments by locking the internal context with a mutex." ON) if (WIN32) option(SAIL_WINDOWS_UTF8_PATHS "Convert file paths to UTF-8 on Windows." ON) endif() if (SAIL_ENABLE_OPENMP) sail_check_openmp() else() set(SAIL_HAVE_OPENMP_DISPLAY "OFF (forced)" CACHE INTERNAL "") endif() # When we compile for VCPKG, VCPKG_TARGET_TRIPLET is defined # if (VCPKG_TARGET_TRIPLET) set(SAIL_VCPKG ON) else() set(SAIL_VCPKG OFF) endif() # Number of bytes to read from a file or memory to detect the image # format by its MIME type. # set(SAIL_MAGIC_BUFFER_SIZE 16) # Our bundled libs # if (WIN32 AND NOT SAIL_VCPKG) set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${PROJECT_SOURCE_DIR}/extra/B) # For check_c_source_runs() we need to update PATH # so checks are able to find bundled libs # set(EXTRA_LIBS "${PROJECT_SOURCE_DIR}/extra/B/bin") string(REPLACE "/" "\\" EXTRA_LIBS "${EXTRA_LIBS}") set(ENV{PATH} "$ENV{PATH};${EXTRA_LIBS}") endif() # Enable strict C11 # set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) # Enable strict C++11 # set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # Build position-independent targets # set(CMAKE_POSITION_INDEPENDENT_CODE ON) # Internal flag used to include SAIL headers locally with "header.h" or otherwise # add_definitions(-DSAIL_BUILD) if (SAIL_DEV) add_definitions(-DSAIL_DEV) endif() # Enable as many warnings as possible # if (MSVC) if (CMAKE_C_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else() string(APPEND CMAKE_C_FLAGS " " "/W4") string(APPEND CMAKE_CXX_FLAGS " " "/W4") endif() elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang") string(APPEND CMAKE_C_FLAGS " " "-Wall -Wextra") string(APPEND CMAKE_CXX_FLAGS " " "-Wall -Wextra") if (SAIL_DEV) string(APPEND CMAKE_C_FLAGS " " "-pedantic") string(APPEND CMAKE_CXX_FLAGS " " "-pedantic") endif() endif() # Disable undefined symbols # if (CMAKE_C_COMPILER_ID STREQUAL "GNU") string(APPEND CMAKE_SHARED_LINKER_FLAGS " " "-Wl,--no-undefined") string(APPEND CMAKE_MODULE_LINKER_FLAGS " " "-Wl,--no-undefined") elseif (CMAKE_C_COMPILER_ID MATCHES "Clang") string(APPEND CMAKE_SHARED_LINKER_FLAGS " " "-Wl,-undefined,error") string(APPEND CMAKE_MODULE_LINKER_FLAGS " " "-Wl,-undefined,error") endif() # Platform definitions used in config.h # if (WIN32) set(SAIL_WIN32 ON) endif() if (MINGW) set(SAIL_MINGW ON) endif() if (CYGWIN) set(SAIL_CYGWIN ON) endif() if (APPLE) set(SAIL_APPLE ON) endif() if (UNIX) set(SAIL_UNIX ON) endif() # Codecs & icons paths # set(SAIL_CODECS_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/sail/codecs") if (WIN32) string(REPLACE "/" "\\\\" SAIL_CODECS_PATH "${SAIL_CODECS_PATH}") endif() # Global include directory with generated configs # include_directories("${PROJECT_BINARY_DIR}/include") # Configure subdirs # add_subdirectory(src/sail-common) add_subdirectory(src/sail-codecs) if (SAIL_COMBINE_CODECS) add_subdirectory(src/sail-codecs-archive) endif() add_subdirectory(src/sail) add_subdirectory(src/sail-manip) if (SAIL_BUILD_BINDINGS) add_subdirectory(src/bindings/sail-c++) endif() if (SAIL_BUILD_APPS) add_subdirectory(examples/c/sail) endif() if (SAIL_BUILD_EXAMPLES) find_package(SDL2) set(SAIL_SDL_EXAMPLE OFF) if (SDL2_FOUND) set(SAIL_SDL_EXAMPLE ON) add_subdirectory(examples/c/sail-sdl-viewer) endif() endif() if (BUILD_TESTING) add_subdirectory(tests) endif() # Error check: This particular build of SAIL cannot load any image # if (NOT ENABLED_CODECS AND NOT SAIL_THIRD_PARTY_CODECS_PATH) message(FATAL_ERROR "No codecs are enabled and SAIL_THIRD_PARTY_CODECS_PATH is disabled.\nThis particular build of SAIL cannot load any image.") endif() # Install our bundled libs if they exist and when VCPKG is not used # if (NOT SAIL_VCPKG) # When SAIL_COMBINE_CODECS is ON, sail-codecs.dll directly depends on extra libs. # Copy them into the bin directory. Otherwise, client applications will fail to run. # # When SAIL_COMBINE_CODECS is OFF, SAIL loads codecs in runtime. In this case we can put # extra libs in a separate directory and update the DLL search path. # if (SAIL_COMBINE_CODECS) set(SAIL_EXTRA_LIBS_INSTALL_PATH "bin") else() set(SAIL_EXTRA_LIBS_INSTALL_PATH "lib/sail/codecs/lib") endif() if (WIN32) if (EXISTS "${PROJECT_SOURCE_DIR}/extra/B/bin") install(DIRECTORY "${PROJECT_SOURCE_DIR}/extra/B/bin/" DESTINATION ${SAIL_EXTRA_LIBS_INSTALL_PATH}) endif() if (EXISTS "${PROJECT_SOURCE_DIR}/extra/B/share/sail/licenses") install(DIRECTORY "${PROJECT_SOURCE_DIR}/extra/B/share/sail/licenses/" DESTINATION share/sail/licenses) endif() else() if (EXISTS "${PROJECT_SOURCE_DIR}/extra/B/lib") install(DIRECTORY "${PROJECT_SOURCE_DIR}/extra/B/lib/" DESTINATION ${SAIL_EXTRA_LIBS_INSTALL_PATH}) endif() endif() endif() if (ENABLED_CODECS) string(TOUPPER "${ENABLED_CODECS}" ENABLED_CODECS) foreach (codec IN LISTS ENABLED_CODECS) set(SAIL_HAVE_CODEC_DEFINES "${SAIL_HAVE_CODEC_DEFINES}#define SAIL_HAVE_BUILTIN_${codec}\n") endforeach() string(REPLACE ";" " " ENABLED_CODECS "${ENABLED_CODECS}") endif() if (DISABLED_CODECS) string(TOUPPER "${DISABLED_CODECS}" DISABLED_CODECS) string(REPLACE ";" " " DISABLED_CODECS "${DISABLED_CODECS}") endif() # Common configuration file # configure_file("${PROJECT_SOURCE_DIR}/src/config.h.in" "${PROJECT_BINARY_DIR}/include/sail-common/config.h" @ONLY) install(FILES "${PROJECT_BINARY_DIR}/include/sail-common/config.h" DESTINATION include/sail/sail-common) # Print configuration statistics # if (SAIL_COLORED_OUTPUT) set(SAIL_COLORED_OUTPUT_CLARIFY " (on Windows >= 10 and Unix)") endif() message("") message("***************************************") message("*") message("* Configuration statistics: ") message("*") message("* CMake version: ${CMAKE_VERSION}") message("* CMake C flags: ${CMAKE_C_FLAGS}") message("* CMake CXX flags: ${CMAKE_CXX_FLAGS}") message("* CMake shared link flags: ${CMAKE_SHARED_LINKER_FLAGS}") message("* CMake static link flags: ${CMAKE_STATIC_LINKER_FLAGS}") message("* CMake module link flags: ${CMAKE_MODULE_LINKER_FLAGS}") message("*") message("* SAIL version: ${PROJECT_VERSION}") message("* Developer mode: ${SAIL_DEV}") message("* VCPKG mode: ${SAIL_VCPKG}") message("* Shared build: ${BUILD_SHARED_LIBS}") message("* Combine codecs [*]: ${SAIL_COMBINE_CODECS}") message("* Thread-safe: ${SAIL_THREAD_SAFE}") message("* SAIL_THIRD_PARTY_CODECS_PATH: ${SAIL_THIRD_PARTY_CODECS_PATH}") message("* Colored output: ${SAIL_COLORED_OUTPUT}${SAIL_COLORED_OUTPUT_CLARIFY}") message("* Build apps: ${SAIL_BUILD_APPS}") message("* Build examples: ${SAIL_BUILD_EXAMPLES}") message("* Build SDL example: ${SAIL_SDL_EXAMPLE}") message("* Build bindings: ${SAIL_BUILD_BINDINGS}") message("* Build tests: ${BUILD_TESTING}") message("* Install PDB files: ${SAIL_INSTALL_PDB}") message("*") message("* SAIL_HAVE_BUILTIN_BSWAP16: ${SAIL_HAVE_BUILTIN_BSWAP16_DISPLAY}") message("* SAIL_HAVE_BUILTIN_BSWAP32: ${SAIL_HAVE_BUILTIN_BSWAP32_DISPLAY}") message("* SAIL_HAVE_BUILTIN_BSWAP64: ${SAIL_HAVE_BUILTIN_BSWAP64_DISPLAY}") message("* SAIL_HAVE_OPENMP: ${SAIL_HAVE_OPENMP_DISPLAY}") message("* SAIL_OPENMP_SCHEDULE: ${SAIL_OPENMP_SCHEDULE}") message("* SAIL_OPENMP_FLAGS: ${SAIL_OPENMP_FLAGS}") message("* SAIL_OPENMP_INCLUDE_DIRS: ${SAIL_OPENMP_INCLUDE_DIRS}") message("* SAIL_OPENMP_LIBS: ${SAIL_OPENMP_LIBS}") if (WIN32) message("* SAIL_WINDOWS_UTF8_PATHS: ${SAIL_WINDOWS_UTF8_PATHS}") endif() message("*") message("* [*] - these options depend on other options, their values may be altered by CMake.") message("* For example, if you configure with -DBUILD_SHARED_LIBS=OFF -DSAIL_COMBINE_CODECS=OFF,") message("* the final value of SAIL_COMBINE_CODECS will be ON.") message("*") message("* Install prefix: ${CMAKE_INSTALL_PREFIX}") message("* LIBDIR: ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") message("* INCLUDEDIR: ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") message("* DATADIR: ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}") message("*") message("* Enabled codecs: ${ENABLED_CODECS}") message("* Disabled codecs: ${DISABLED_CODECS}") message("*") message("***************************************") message("") sail-0.9.8/FAQ.md000066400000000000000000000514111475535176100134310ustar00rootroot00000000000000Table of Contents ================= * [SAIL Frequently Asked Questions (FAQ)](#sail-frequently-asked-questions-faq) * [How old is SAIL?](#how-old-is-sail) * [Is SAIL cross\-platform?](#is-sail-cross-platform) * [What's the preferred way of installation?](#whats-the-preferred-way-of-installation) * [Does SAIL support static linking?](#does-sail-support-static-linking) * [What are the competitors of SAIL?](#what-are-the-competitors-of-sail) * [Describe the high\-level APIs](#describe-the-high-level-apis) * [Does SAIL provide simple one\-line APIs?](#does-sail-provide-simple-one-line-apis) * [In what pixel format SAIL loading functions output images?](#in-what-pixel-format-sail-loading-functions-output-images) * [What pixel formats SAIL is able to write?](#what-pixel-formats-sail-is-able-to-write) * [Does SAIL support animated and multi\-paged images?](#does-sail-support-animated-and-multi-paged-images) * [Does SAIL support loading from memory?](#does-sail-support-loading-from-memory) * [How does SAIL support image formats?](#how-does-sail-support-image-formats) * [Does SAIL preload codecs in the initialization routine?](#does-sail-preload-codecs-in-the-initialization-routine) * [SAIL\_COMBINE\_CODECS is OFF](#sail_combine_codecs-is-off) * [SAIL\_COMBINE\_CODECS is ON](#sail_combine_codecs-is-on) * [How does SAIL look for codecs?](#how-does-sail-look-for-codecs) * [Conan recipe on any platform](#conan-recipe-on-any-platform) * [VCPKG port on any platform](#vcpkg-port-on-any-platform) * [Manually compiled on any platform with SAIL\_COMBINE\_CODECS=ON](#manually-compiled-on-any-platform-with-sail_combine_codecson) * [Manually compiled on Windows with SAIL\_COMBINE\_CODECS=OFF (the default)](#manually-compiled-on-windows-with-sail_combine_codecsoff-the-default) * [Manually compiled on Unix (including macOS) SAIL\_COMBINE\_CODECS=OFF (the default)](#manually-compiled-on-unix-including-macos-sail_combine_codecsoff-the-default) * [How can I point SAIL to my custom codecs?](#how-can-i-point-sail-to-my-custom-codecs) * [I'd like to reorganize the standard SAIL folder layout on Windows](#id-like-to-reorganize-the-standard-sail-folder-layout-on-windows) * [Describe the memory management techniques implemented in SAIL](#describe-the-memory-management-techniques-implemented-in-sail) * [The memory management technique implemented in SAIL](#the-memory-management-technique-implemented-in-sail) * [Convention to call SAIL functions](#convention-to-call-sail-functions) * [External pointers stay untouched on error](#external-pointers-stay-untouched-on-error) * [Always set a pointer to state to NULL (C only)](#always-set-a-pointer-to-state-to-null-c-only) * [Can I implement an image codec in C\+\+?](#can-i-implement-an-image-codec-in-c) * [Describe codec info file format](#describe-codec-info-file-format) * [Can I compile codecs dependencies (like libjpeg) directly into SAIL?](#can-i-compile-codecs-dependencies-like-libjpeg-directly-into-sail) * [Are there any C/C\+\+ examples?](#are-there-any-cc-examples) * [Are there any bindings to other programming languages?](#are-there-any-bindings-to-other-programming-languages) * [How many image formats are you going to implement?](#how-many-image-formats-are-you-going-to-implement) * [I have problems with include paths with vcpkg without CMake](#i-have-problems-with-include-paths-with-vcpkg-without-cmake) * [How to embed SAIL as a subproject?](#how-to-embed-sail-as-a-subproject) * [Does SAIL support big\-endian platforms?](#does-sail-support-big-endian-platforms) * [I have questions, issues, or proposals](#i-have-questions-issues-or-proposals) # SAIL Frequently Asked Questions (FAQ) ## How old is SAIL? SAIL is rebranded ksquirrel-libs rewritten in C, improved and with high-level APIs. Ksquirrel-libs was a set of C++ image codecs for the KSquirrel image viewer. See [http://ksquirrel.sourceforge.net](http://ksquirrel.sourceforge.net). Technically, SAIL (ksquirrel-libs) was founded in 2003 making it one of the oldest image decoding libraries. ## Is SAIL cross-platform? Yes. It's written in pure C11 and is highly portable. However, only the Windows, macOS, and Linux platforms are officially supported. SAIL may or may not compile on other platforms. Pull requests to support more platforms are highly welcomed. ## What's the preferred way of installation? - Windows: [Conan](https://conan.io/center/recipes/sail), `vcpkg` - macOS: [Conan](https://conan.io/center/recipes/sail), `brew`, `vcpkg` - Linux: native packages if available, [Conan](https://conan.io/center/recipes/sail), `vcpkg` See [BUILDING](BUILDING.md). ## Does SAIL support static linking? Yes. Compile with `-DBUILD_SHARED_LIBS=OFF`. This automatically enables `SAIL_COMBINE_CODECS`. ## What are the competitors of SAIL? - [FreeImage](https://freeimage.sourceforge.io) - [DevIL](http://openil.sourceforge.net) - [SDL_Image](https://www.libsdl.org/projects/SDL_image) - [stb_image](https://github.com/nothings/stb) - [Boost.GIL](https://www.boost.org/doc/libs/1_68_0/libs/gil/doc/html/index.html) - [gdk-pixbuf](https://developer.gnome.org/gdk-pixbuf) - [imlib2](https://docs.enlightenment.org/api/imlib2/html) - [CImg](https://github.com/dtschump/CImg) - [WIC (Windows only)](https://docs.microsoft.com/en-us/windows/win32/wic/-wic-about-windows-imaging-codec) ## Describe the high-level APIs SAIL provides four levels of high-level APIs: - `Junior`: I just want to load this JPEG from a file or memory - `Advanced`: I want to load this animated GIF from a file or memory - `Deep diver`: I want to load this animated GIF from a file or memory and have control over selected codecs and meta data - `Technical diver`: I want everything above and my custom I/O source ## Does SAIL provide simple one-line APIs? Yes. SAIL provides four levels of APIs, depending on your needs: `junior`, `advanced`, `deep diver`, and `technical diver`. `junior` is your choice. ## In what pixel format SAIL loading functions output images? SAIL always tries to output pixel format close to the source pixel format as much as possible. Ideally (but not always), it outputs the same pixel format as stored in the image. For example, SAIL outputs BPP24-BGR images from full-color BMP files without transparency. You can also consider conversion functions from `libsail-manip`. ## What pixel formats SAIL is able to write? SAIL codecs always try to support as much output pixel formats as possible. SAIL doesn't convert one pixel format to another in saving operations. Images are always written as is. The list of pixel formats that can be written by SAIL is codec-specific and is publicly available in every .codec.info file. It can be accessed through `sail_codec_info_from_extension() -> codec_info -> save_features -> pixel_formats`. ## Does SAIL support animated and multi-paged images? Yes. Just continue loading the image file until the loading functions return `SAIL_OK`. If no more frames are available, the loading functions return `SAIL_ERROR_NO_MORE_FRAMES`. ## Does SAIL support loading from memory? Yes. SAIL supports loading/saving from/to files and memory. For technical divers, it's also possible to use custom I/O sources. See `sail_start_loading_from_file()`, `sail_start_loading_mem()`, and `sail_start_loading_from_io()`. ## How does SAIL support image formats? SAIL supports image formats through dynamically loaded SAIL codecs. End-users never work with the codecs directly. They always work with the abstract high-level APIs. ## Does SAIL preload codecs in the initialization routine? ### `SAIL_COMBINE_CODECS` is `OFF` SAIL doesn't preload codecs in the initialization routine (`sail_init()`). It loads them on demand. However, you can preload them explicitly with `sail_init_with_flags(SAIL_FLAG_PRELOAD_CODECS)`. ### `SAIL_COMBINE_CODECS` is `ON` All codecs get loaded on application startup. ## How does SAIL look for codecs? Codecs path search algorithm (first found path wins): ### Conan recipe on any platform Codecs are combined into a dynamically linked library, so no need to search them. ### VCPKG port on any platform Codecs are combined into a dynamically linked library, so no need to search them. ### Manually compiled on any platform with SAIL_COMBINE_CODECS=ON Codecs are combined into a dynamically linked library, so no need to search them. ### Manually compiled on Windows with SAIL_COMBINE_CODECS=OFF (the default) 1. `SAIL_CODECS_PATH` environment variable 2. `\lib\sail\codecs` 3. Hardcoded `SAIL_CODECS_PATH` in config.h ### Manually compiled on Unix (including macOS) SAIL_COMBINE_CODECS=OFF (the default) 1. `SAIL_CODECS_PATH` environment variable 2. Hardcoded `SAIL_CODECS_PATH` in config.h `/lib` is added to `LD_LIBRARY_PATH`. Additionally, `SAIL_THIRD_PARTY_CODECS_PATH` environment variable with a list of ';'-separated paths is searched if `SAIL_THIRD_PARTY_CODECS_PATH` is enabled in CMake, (the default) so you can load your own codecs from there. ## How can I point SAIL to my custom codecs? If `SAIL_THIRD_PARTY_CODECS_PATH` is enabled in CMake (the default), you can set the `SAIL_THIRD_PARTY_CODECS_PATH` environment variable to a list of ';'-separated paths containing your custom SAIL codecs. On Windows, `sail.dll location` and `SAIL_THIRD_PARTY_CODECS_PATH/lib` are the only places where codecs DLL dependencies are searched. No other paths are searched. Use WIN32 API `AddDllDirectory` to add your own DLL dependencies search path. On other platforms, `SAIL_THIRD_PARTY_CODECS_PATH/lib` is added to `LD_LIBRARY_PATH`. If `SAIL_THIRD_PARTY_CODECS_PATH` is `OFF`, loading custom codecs is disabled. ## I'd like to reorganize the standard SAIL folder layout on Windows You can surely do that. However, with the standard layout SAIL detects the codecs' location automatically. If you reorganize the standard SAIL folder layout, you'll need to specify the new codecs' location by setting the `SAIL_CODECS_PATH` environment variable. ## Describe the memory management techniques implemented in SAIL ### The memory management technique implemented in SAIL Internally, SAIL always cleans up on errors. If you encounter a memory leak on error, please report it. **C only:** However, if an engineer encounters an error in the middle of loading or saving an image with the `advanced` or a deeper API, it's always a responsibility of the engineer to stop loading or saving with `sail_stop_loading()` or `sail_stop_saving()`. These functions execute a proper cleanup in the underlying codec. If you don't call `sail_stop_loading()` or `sail_stop_saving()` in this situation, be prepared for memory leaks. **C++ only:** C++ engineers are more lucky. The C++ binding executes the necessary cleanup automatically in this situation in `~image_input()` or `~image_output()`. ### Convention to call SAIL functions It's always recommended (but not required) to use the `SAIL_TRY()` macro to call SAIL functions. It's also always recommended to clean up in your code with the `SAIL_TRY_OR_CLEANUP()` macro if you need to. ### External pointers stay untouched on error External pointers that are allocated or modified by SAIL functions stay untouched on error. For example: ```C struct sail_image *image = NULL; SAIL_TRY(sail_alloc_image(&image)); /* * If sail_alloc_palette_for_data() fails, the palette pointer stays untouched (NULL). * This code prints NULL value on error. */ SAIL_TRY_OR_CLEANUP(sail_alloc_palette_for_data(SAIL_PIXEL_FORMAT_BPP24_RGB, color_count, &image->palette)); /* cleanup */ printf("%p\n", image->palette), sail_destroy_image(image)); ``` Or: ```C void *state = NULL; struct sail_image *image = NULL; SAIL_TRY(sail_start_loading_from_file(..., &state)); /* * If sail_load_next_frame() fails, the image pointer stays untouched (NULL). * This code prints NULL value on error. */ SAIL_TRY_OR_CLEANUP(sail_load_next_frame(state, &image), /* cleanup */ printf("%p\n", image), sail_stop_loading(state)); ``` ### Always set a pointer to state to NULL (C only) C loading and saving functions require a local void pointer to state. Always set it to NULL before loading or saving. For example: ```C void *state = NULL; SAIL_TRY(sail_start_loading_from_file(..., &state)); SAIL_TRY_OR_CLEANUP(sail_load_next_frame(state, ...), /* cleanup */ sail_stop_loading(state)); ``` ## Can I implement an image codec in C++? Yes. Your codec just needs to export a set of public functions so SAIL can recognize and use it. Theoretically, you can implement your codec in any programming language. ## Describe codec info file format Let's take a hypothetical codec info: ``` # This section describes the codec per se. # [codec] # Codec layout is a set of functions the codec exports. Different layouts generations are not compatible. # libsail supports just a single (current) layout. Cannot be empty. # layout=8 # Semantic codec version. Cannot be empty. # version=1.0.0 # Codec priority. SAIL uses this property to sort the enumerated codecs by priority # to speed up search of popular image formats by functions like sail_codec_info_from_path(). # # HIGHEST = one of the most popular image formats like JPEG # HIGH = pretty popular and common image format like SVG # MEDIUM = moderate popularity # LOW = pretty rare image format # LOWEST = very rare and/or too specific and/or ancient image format # priority=MEDIUM # Short codec name. Must be uppercase letters and numbers only. Cannot be empty. # name=ABC # Codec description. Any human-readable string. Cannot be empty. # description=Some ABC Format # ';'-separated list of hex-encoded magic numbers indentifying this image format. # Can be empty only if the list of file extensions below is not empty. # magic-numbers=34 AB # ';'-separated list of file extensions indentifying this image format. # Can be empty only if the list of magic numbers above is not empty. # extensions=abc;bca # ';'-separated list of MIME types indentifying this image format. Can be empty. # mime-types=image/abc # Section of various features describing what the image codec can actually load. # [load-features] # ';'-separated list of what the image codec can actually read. # Can be empty if the image codec cannot load images. # # Possible values: # STATIC - Can load static images. # ANIMATED - Can load animated images. # MULTI-PAGED - Can load multi-paged (but not animated) images. # META-DATA - Can load image meta data like JPEG comments or EXIF. # ICCP - Can load embedded ICC profiles. # SOURCE-IMAGE - Can populate source image information in sail_image.source_image. # features=STATIC;META-DATA;INTERLACED;ICCP # ';'-separated list of codec-specific tuning options. For example, it's possible # to disable ABC codec filtering with setting abc-filtering to 0 in load options. # Tuning options' names must start with the codec name to avoid confusing. # # The list of possible values for every tuning option is not current available # programmatically. Every codec must document them in the codec info file. # # For example: # - abc-filtering: Tune filtering. Possible values: 0 (disable), 1 (light), 2 (hard). # tuning=abc-filtering # Section of various features describing what the image codec can actually save. # [save-features] # ';'-separated list of what the image codec can actually write. # Can be empty if the image codec cannot save images. # # Possible values: # STATIC - Can save static images. # ANIMATED - Can save animated images. # MULTI-PAGED - Can save multi-paged (but not animated) images. # META-DATA - Can save image meta data like JPEG comments or EXIF. # INTERLACED - Can save interlaced images. # ICCP - Can save embedded ICC profiles. # features=STATIC;META-DATA;INTERLACED;ICCP # ';'-separated list of codec-specific tuning options. For example, it's possible # to disable ABC codec filtering with setting abc-filtering to 0 in save options. # Tuning options' names must start with the codec name to avoid confusing. # # The list of possible values for every tuning option is not current available # programmatically. Every codec must document them in the codec info file. # # For example: # - abc-filtering: Tune filtering. Possible values: 0 (disable), 1 (light), 2 (hard). # tuning=abc-filtering # ';'-separated list of pixel formats the image codec can write. # Can be empty if the image codec cannot save images. # # Note: SAIL doesn't convert images while saving. It writes them 1:1. The image codec # can take as input and save 8-bit indexed, 24-bit RGB, and 32-bit RGBA images. # pixel-formats=BPP8-INDEXED;BPP24-RGB;BPP32-BGRA # ';'-separated list of compressions the image codec can write. Cannot be empty if the image codec # can save images. If the image codec cannot select compressions, specify UNSUPPORTED. # compression-types=DEFLATE;RLE # Default compression from the list above to use when no explicit compression was selected # by a client application. Can be empty if the image codec cannot save images. # default-compression=DEFLATE # Minimum compression level. This parameter is not used and must be 0 if the list # of supported compressions has more than one compression or if the list is empty. # # The data type is double. C function atof() is used to convert the value to double. # Decimal-point character is determined by the current C locale. # compression-level-min=1 # Maximum compression level. This parameter is not used and must be 0 if the list # of supported compressions has more than one compression or if the list is empty. # # The data type is double. C function atof() is used to convert the value to double. # Decimal-point character is determined by the current C locale. # compression-level-max=9 # Default compression level to use when no explicit compression level was selected # by a client application. This parameter is not used and must be 0 if the list # of supported compressions has more than one compression or if the list is empty. # Must be in the range of the min/max limits above. # # The data type is double. C function atof() is used to convert the value to double. # Decimal-point character is determined by the current C locale. # compression-level-default=6 # Step to increment or decrement compression level. This parameter is not used # and must be 0 if the list of supported compressions has more than one compression # or if the list is empty. # # The data type is double. C function atof() is used to convert the value to double. # Decimal-point character is determined by the current C locale. # compression-level-step=1 ``` ## Can I compile codecs dependencies (like libjpeg) directly into SAIL?

8t?+'CPqJ]Kt]$ wͤ4A B:祗aY6)OQ6F a'ؠb#XyT:Jr}k7t5asՅԳV ֬-H4LsZC.EʟJTZBuc&Ӿ\&W 6 |V“IehR]AִjHHǐFrXiQ N_Sv,!1aD'9Bp2Q!(l"|" O>A26@(  BIK*MMr@jj!Z()/LRke0eMb 觠ɴ3_.a5Q"e-DćRL:Z PAq+]"a&ұ1Hd.2 􏙄[B#} 7𢗽Ȋ5:#glf%He( T9 ey"-cA-ltC! 4 LR샐> 3(D[d,P3"51p#D]M hj Z~߄,%D h#><5$wHk$:ґ<1`i+EWsBy:BM4WhQ+=`;@?pbd~X;Zi2Yy<#M5j@[H!uKȖp!ىHZ#rCG"m!j̋>ΨmLƾ蠙g\ȪQN癩`F{:{G鑹zc:|>ad8;C71O mB+ŒFXES(45Bi.Pu=[F"b%e܀*'4dRp;щlt9Hn'Ji; l$1ZE|B 8A ڔRK:*ưsw]MɔP'搆iT^ BR &Ux:ӡ4}ihՐXeHYnI8xB.fHa#~@T""EpHD(GDiwِ(miKGi3.qc-`ZpnRhI#IIW] ]K&85V34}䌇4omܴF{3 Mh dpOA ]ۜ h0`˘H56Ŝw\4DBXdD 6↎N%hNu4iGH<,8&َʼtaiHb-j c 7j2zƤ.IÓA KX?p/e&Mg]!AAkxhlz(}B)Tg gxFwB6Y"M= B/KTN%#+h HE0E~}1:!Bo 2v"O ~f $S`dXdP2>7,olF!)jMtQ,jb8CS0#}t D\#&&|BG&(b!5+xbq%aUҎhEGT ȚgBip@Zz 6DvFEk4ffn!d BQ̐d& 1P4O:p!XhF *dčgj< b!&rh7$bac0sFBc/ GCX9\Fjɀ2FFlDD:%"FcW#@Ě?DC0gDB'QbQ<5gh~@r2`?SqvB14nlƀHr!Hhφ2$1 C 5;R#90N|R+LvѠ1| ; 23|,%| ?F% {Qa,F )*CCafO?_C5r9Hdf9-ͺC"M1&"ì# "Q"qCo po % CX"Һ  )mNn mk/^f:/ C= xij";Lejjtof46o)Q3np6R655DH/"2RH $i4ptqW3bCCr"F T+P\DܲAv*l*v o6otd@0j.fF}ް00C7s!(3DR;LHLOoSOw:w J5[o>0c56,D1D@:t%a$IRDVKPPU4 DR!̼R?2Lwyp>?lx_}^ ||Q?tlf>]㽨27y=g2n&6+b2Z+D%&CV"VWhW%B'Q,&ϒjaD?vRے&L95Tjf9j9@Vۆh HȌJSFGFGJ5۲ 1x@8gs.Ċ xuIu`=?ϐ e7-kr!j,fS4dPBpp=1Ot=UTg!NL xT$O6 Ck7s ./L5Uwn4C"Eq1DkEF^)gn7Jf!}66^a=37R| C1QHJZN`C;p \ٌw]u@E `u pWfjV~g2C3B=Voq65헞f ӋCDdd&18fOg4Ai+eX1?ɊDIfK@/L ĉkbya!4^aX۾}l̀_yl6D~h6: ZJ[^@fX–!$djCwhc63:Cj~>ȎlAIs.) toZ} 5T9dc66x`!IE80]t4pLJ7-Ns%=u8XZL75O6C`:W:d03|!kթ͸?a_@YKٖo!oG;.w5.s >HV"QwmdVQh;&20 fCz#2U8kLBa[a8C`ak0/Otܚo}?"#r &VQ[]gԘ5^ffy57\ӄ5cs<#jsE%X԰UC>3,7n84^ ?S xAr[<6Փ`qSJRɟ\ǻz%CUxBM=3wdw gS8!M` ` R Wڒv d o~1CA;ԞNηў^?۴ ĸjD,Ek?vm) _e{Y=6D:`T” \n r/ Cp ׸8p~hpXܦ>SW55:RL* h}ɻkOA4 ؚI5NH"OLn ک ^ĺ&AfWa < #Iۊ<,H ," "/ 8 "/B|y!KQElXH @R`$)*T\_*`JHf_DY"EZ&=YrK*_cҩ"1֥!X.0lYf.oˊI)ᔂҗR+2eL0՚H`͚*&NجcJ";?5aa6bӨStPeM;ۭr[۷^6̋W/X?!n^(ݦrh. #wi6c1F{ؾuڢ-wM?C C*zZBQWЇ.(= D#HQ~QEFH4}!EJE'١T;bДNMzrkFN'h # B5% FrѨzd)Ӆʢ4U ɮT@Zu[N]9H;Ex&fIN  C)vYB %%b)XǕ$aSrq Yk&H/;k`TXD,4JE&X|J\&YEvF}Q3gFWVQaMhH7+2C!!&UdhS;<#dpHI=tB&!H┪-*r$"t!A:axe$>=ĀBD: ̨)H gm{q!LjQjufITHDtg0i(tktfQ7*?ty@m* PC7*Q:i)kϢ%?BR$_HAjDc1n2W"B"A#) _&ONPm")*X^o% YTKLJBL['IIMe5iEBg 5Y{9^G<VLQ1~#lf4UXê.\v2ڔ"EyAcMGC8\}1KN$$ Pr+rOzK܄8E-iC$"RvIN{t Dٻ^b'y&,WT!($P[u]? M_(:Es_Fucd@N ȻJn E_((.є9?TN}ǧt=1j'P7r$jC]@4Rn؟5ev-02"f3݂*@@_,Ͻc -Y O|"@:5:#/O}P-$^"$fj1X>}F43 aEݲSe%cv6}" I\i UmHeƥ#6;~`]ׄftц9tmFq P>Yi. d2=s3L*h)g 1%w'cL "T3&[2OZ_f2 s;q}!?~2n ESPsL0" P]!>[% PM$FPV>C'psI!e7fhu !RLϵRV$ /UKCmBSvI4WszgsWw!pefAoHwq"e0fdfBmWfygcvABE=SvRVVwxWAɲV;-b.e4Av/yK`Z01E42a1xzAF%F*cFt %4f3NjMH5ܡHa@\u1?S's[v^J>#W |l}FP+a?ۆ X']'%'QSo<2Q6b< BB@#BB@\F` P<@q%?#Vb|s0B6!YlT}mTIDL i;ޥ`ED`^2q`rŀ>%>C`s2)z3Cd+WH8";uPWhuց e,/LtewMltGhAug "wv9r(t;ėPT>yxAaB4{x5aAaARyGe.Wp! ]d`Y{'ciiFoTzH4 ěțA3 ќ)Hl's? :ܐg2bw3* ?%?d \PT 62%ՐSa e##**pAtKM# U?L8&<> I%i6!I!Y6W 5I?bmq"#3B%p;_$O4P`UQ<>T"p J%/QIcDM'Z|4/X" ea V!gI,$PƗ䈒醇`{Zwd,r)w pu*x0fGu)eY7x9d5p%edy0Qmve.%ĉq1c1-SjѪaiF aF %kl9 2Qj>Tb?:;:UVa!q=AQQB%7#uooNC:&8P mIX Lj)DxOt&H)DO=2 +"R8d|#)[R<5qQ8[3LɄ0c'sSC1-D12-+`8tkAdeoC=TtygQA{J|z{JY x w*A}ʧ&0븅 TtY[@=ؘ4|v8PaǗTBNU1Tȉi1y8@!#ci9'LFVbp3a30C5GȋN#_ p7K#'?`B\f 5*0Ms Ǡf p[#2+HI?iRcF` =r.O :!6oO [`C &0'oP &V:%iB<Ra"s8 Plm]jBßT:L(b6#Czb46'bs1"!caՃ"(" /z[vv8xd{x=,Pu0Ѩzu )p캢\xܧ }ๅh{xzFyFɺzwfI8fȌ1Aܪ923Z+?ע6 Ѐ aJGR" Ѿ.:(MB0$MtK:P+iq,ĥZ nB^D;J5CLOc:FI[ac C0b\a%~Pu=uԂOy';ăoa 6,o: JJFJ6ē P^&_,\"ҐZB$CmmC`@Wb0*͔Q ]? RQÅR҂-5"ԥE"d/v.}]eUB{kxʇmgur鈝짢 ʦ}S@ə]87>ˉXMF~QU'yUn/BnoTR:zyT{n!mMbc!H2E4Z:`pPR XXg\q\  p`@`4 ~ t[Cp}'?As(ruϢ`dG&+% NzӶEU7sCɐVGVFoTg&sHУ%N6?N94`ִ0r$6E?0vcIcNnS\Ja%.m|MBpuF!Ne7GPr 0ɈiI4>5ɮʭN˶mɇ}ڰlvxSS(wCiwxQü/F!"TV&B@A|G ޮE1KF"32{&|)Jzrt ʵ""H, #KHAC,%Q4E43)f {ԣ7fJF;IC44!9.5VP2$)'X:Br(2O 1,d h0^ ď_캫˰K F!Q(%Hc'hhAFE^Sl:y M5"T#.PlĆ9I/p/ $ ;tFj[jIC$gDBDBbn.H7yȆ9> L:B.t6/NM"6݋/TJGXoރ%i=FF(#&Pj 8 P<Q)5 [T'{%?p(k2G,Y<,E,IJ2AS9뤓{9%4C 4;A-P^`CEPw6O k,(X% A,T;Ho _Ёuj]cR2HD&4P.3 sE k.*3i"E)ʎv1ED/Pʩ 8`E u (×!c k 3&2e@ipx 71sIK-iЖ/45Ɉk&db O^é4IXhԆ4P!D/gnYtפm<HJ F@q}!EɘHr@2&f8(4-܂$9@ 0 ̍3D0P"s0PEz# - >\c) !)Geю1!zс:5@K\ŇV9}ON(ΗP, oЖC>Ծ*xA^*9F+pf~$ *``AU pUdiҌ4Nul_dIfr܄&9Ɂ%c6Fi1;!5^?"YzaȠ-i&N0Fc+&,1dЖ1d6Ԩ-hZS˜-[!>cؿ*J|tB"KG<τ6^=<wCR>8PA$4WԬHAoVBT (9ЍNtx(J&Z"Ic]Lx{ }H<)E qDI>Jy^ 7>@J 'b kb=B)J:|V'2{D龐T^lf٠[tj*W슳4dm"f5`]T^_6Xr@ך 56@ . Hy-CAuΔ-Y/cWnl蘽dl0JNNvŀ'Ln3j,̚Rm a."C-J)쫻eu)R"[416q;IĨjPOUhm| EbVlhu_0,^@(Kf2TSauK/vG[0%wC*sBjvK*y9L^sd \A2duL-hcp6RVP?6 j >ʃZ`7kA`":{+x%}˗7~3xPAn F"8X%A6); #r`m$H[9=@= ёI'21!92 q1Z:B*:0I#:’'q(H 2jl=*Jh l@ETt=V"Jy¢"A4]Qeׂv xp^Yh,̢rPP# FP(!09Gy0Vp7JFHr$f= ^@@x pFKHư$hQsvs+DJ>Dj`[ * zh:pALJA=`!+E@9c"'Z؎ط;3S tpA"ʇ꠷q#k#P0X˵"x08&< (<0ƙ/þ<91qjٰ#v8$;*(K;i+D(1G$*+"PUͲER̞P@ :, lTDET[XIȆlV;X,TH++Bc_?w.Nrc0#6x,`HƟ2H XA xI-7P7j#̮P9sPi$2E!h=s} Pϸj@5 tq^0 pH; Y31=A vh$iuؙP>}HH2p+Hy`#r $vK`c`O@&2#:kHcIS` *\Ҫa#V"d$AAufd ޛJ[:J?[ IAK<:(e;8;`D+SITY$[0n &_4U 2D0'kyhv 1$Q}:Q);%ݹtD I~uIfcЅڏl 닄bhm=$x#Qsk`kh`h)ShZ@G^;hN;V؁t |>? h"01'{y- nxaЅ& J*ڠ9zO)H 烝`#U8>Pwoibx76p3IN?-h^Xi(k v$@x#z49c + Uwi{IWz ~׶?1 8-;Bē3༐H:0m&LC?jt!$_`>7JitN|4vF TDB15 Y?G=hFKQKyZJ4M+ (`ϣRTQvmLiG %V9eAc8h yn#n;Lnc90fwa]u2ư'XQҸ }@ؐ nhtpB-TqpáoppHUHX6rU,q,֊ch"ۈxTXZ eXXi`t2O&ӚzFЉ ׉8*0X!yq9p! 'c;f?owW[Sʊ@@RSkcO҅A|l"'xV3JVIivF4=bG,S)bhUɒAAU]3)NCP o0s<\_nlZm9NBQt2'mtZ6:KօY>`55cm;]ۈh:hm5 >4n5Gf5FuVHXZ )fC3C-%8ևX$=PL_'da f|ENЬ^Ǩ"`gx-4㠨F5MZ)Acn6#!i:`$`!3xj ,"ּ3qZ:H,CtFhmh2?Pb=ڢ˿o{[zw%̇PsIneHrbl! 3&J5"dFc $'1 JRBpÔ!8hVҞI}$'?* '|"zT@I"|xo9!JQZN%E/T@R5 \ S:K Alu@8P`"F¶ Xo3Š5A~("RDh)bX. U*&FI̔I^`cWHqRD ~`0dp pQ8qh"jHEF‘$܀CB`8vGkA^s?&P~je%,AXh;kcQ %ߔ!x[hވ"y*t##m%g:׹1D"*]`;B)b v6:a:LaHg%H6VAJr>(oxR $.I~HJK);?,K2<%N[ZIR\?'*yW?'gFC%U@ @VAz+ک @Ձ"]UVĊU"FZzĭH% ;oH_HD^!Uq(/(%6lZ!lgkle{2ΎslRe*T1Qlrahp*@ B@YGc;Fkz6d`AhЂ|+Iupa-4{7:Q{Hh^3X7m ?z9#VnuQ^=PAg`顇F0a!]' ! 7ruw%<XHaا:^jv8[VYҹsreIReb6e?ɯqyo+3q9|? @7YyЫ)C C:+ zVvoݱ0|sW74n;4 ZӋ^:LKYׄv6E^W6boijz +qXa(Drd Y64?Ԃ4F2qԛ;kmr!U2[qlL$`CHG(Qlljv(.ؠlF-`5~~Q-/{Q@DTLHԁSm ]m!u؇Mҁ T]չյ؉?C ,YX @D "& !AEF2$fYJGFe{ǀe HYK\M1 ,TP >BuAb'bC4ޡ%Z@2AC(KYaHF\D5ZFl Q\KC q!p ^A_UQњ=>F>>9>㳵!E?N[(ҳŒt|=D CnGC׼(Gfm]S k@-WLCCh\tA0GuxnHtAWo0NȈPXX@Ԃ81aSJ6e rH9+@6`%$1a8@J1C91Kb Jx!O"劤}&xMlš!M M؞%~X!&%b |i /'G|LI1O ]ޑ}J--RkvA@5'! @tNtb4@QJ<) UA TZ3nCDED#Hd DԧHP }}ZM+ʪ?K†ڸ{<Rǭ0(@$`(D֟?WAڜ `H9JqQC2 dBgx^?\C׬ BG KFR2j.́8`←҂u`q}Hh-hMi<8-lSNNS.TS爓ZGABxtPC}9?~~፡S`QH'\LHN?8C1&> I aSLLDey۩涄hNNgieB "$1]{]@h &q)Nekv] `ڝk Y/JlJ @2AhC{гT[gxڦPin cM+H_BOU RdSrh҄DRdC>Bn ̢70~FF |=+4u4@:k-?T2o`+\- @2,P:A>`lcaH6C-6``NiC&|ܬG}zJ!\ G]~(Όh^*NȹSrjʓ}Xf?` Ս?Ԑ*jIp?ڭ*#jV&%ynB]&b%2BxvKo}ڹYlJgB^A'U W՞ԧF E8G I8#BTy .Sa$ӛ\IMO-P@Ag o&LC0bi/07gAX>۱޴z@&o2ޡm"B5r:4@I""# ! 3HCC@聽PC p 22' ECl!Hp^ ^7#ԚL4Nj] _4^0 r (n<7ݬr$1~Ga&wt:%?@TfTNgh55dkxÌG $$$ U?ae;HMfF;A:.1ȈN||*È_*n2b1c AaŒɐ܂}DNjM0$gr5KnlNIeTF}~Il:ш;'X@nmc(Y|8Y|04T_8"ڪr>?3#k5H2~m6grjg)o'g/i b/ ѐ??l@ CвUVuAF!8{Ht~"NTL=x M] |JȋNJnu&r&2+2H RG&y=1#S?485T5 C\hEEp[j p0VL NTO)x؝ː[8?׈ DWqW BO)4W 1˳x|fJEP>3KK.LJ]Ďh]ˏ0눌8o]m;NWjSun-%9#]"A5e@5B34X4xӞGm݄*==,W;BLIz܀I17j_Ɯ/G}|~$ $&>Skx̉|+~Yӫ>SK.;I$ !TaK!& %La :g,Rg א)FD`XXq@҄8$R!"|P&MhT+8C<."1 7996 =!)0P 08T 0PD1B<$74M1IG!zlHCTl <2Ϣ QUQf5P)43F&D9IӖ=mz-* :ZJ EicF>Z ./v'-uQ1F%k9a&9 Z*>=`͐O:^ڜ/N y7zTDnB%Q'N@쎂PZX?)B6,H>^bݨ( ?rʝIp VHB0NE$m PQEkQ! 玤 'ۄ'ŵn(-%4$+L 5U?SB ݔR`;= !@ @-E C R4<QAS#)CH0|JPWOVm~㪫!d ׃+kKXZH?4& t0Hl\1`~+/yK[!07W2h0Qcs 30}k׀.t)dg1X 1#O'W$4Vi:m # -:| B%99\ 7Eg Ds(! h OA H'Dl9IgЪM@eT )Dt%ơ=ojL6RQ1qD'ENnIְ3].܇L0bIvs&Miy@OSרG /Q:8(L5M8U)L)rA$4qC۔>)(bxW::E*c=`0r%! IB&Z5$3%SD 2Y20] dr8 -*D;Fх`,\F$U|`q1N!@IX *  )8u&JJQs"2%X>8r,cl ʴl#A`F\E/f'|Ѕf mn6QNIM Q1aR i9S$` 2F\6TL n152L3Nx"jL:-A zI =$ u rVd<ˆ+ WUF2ڱ$ ""ZxKZq-lQ6i8_a! 1 _ECXY!A?Th1 @V`uU\Չ8"kӉ7mv/ MGaSX9=CZJLE)D76?j)PW% dd7bT(ԡg1j 质` Nۋp[[T\0%I$/In.; \2t[!L:5I .$MŎuJAWxCPP!R::vҵ<{{$&AG{' Z@A/iƹ]Ȯ'3ٷ>5U"R'4bmB _좁pBGE$E# %]Ha veYcx?Gvt> ,b# \ t;b+w~';sCیh5"nIǐc0Cߥb"Y@%i[oJ\ڟ$j{XM9VJya-:c}:ͭiLό} n6Q5 N A9OR^D[!>LvK^Hg.g$N|P8({&.8(8l@&!>ͭ}> &(X\L!E,F!^(Vhb!, 2h`R(1 >nЎ8N!.$" ?8AXzdCFp F$OXALm@Lb%*IHhF-J&ɒz 4DDlkp(٬Ǔ~܆H CMڜOitѓ {؄LI`b)fO@PEx8Ego.dJxL{dԬmmD{T%S|QUl"4 |pU"lJe`TP}g:kN*X!+&+n2(d0X!1ڀ&ـl." 1EbhnɮC90; @cm5d𠤌ÌE+od^ D F.!+Ro(<2*+52 @fԆ$41b8|k֖϶h'J'I.d.'`r42E3M-vq %-a6 P xQey(y̩tt%It-KoI GL%9 i8ć8P! l'Al)L!8>>ݳ!QUF!DOp(#jr18cJJ,~1!Ƭh @!BU)t1>hϊ#ϾR aFƮx8fr|8F@f):Rdrt!FBi  jJKtjJ:~ ql&8*8);q3l?|8 8tO=d2;ĵ@Os)BFFBL4LdP0RYM֤R,e6٩x)x8O7}S!~ Pwڏ݄)9˩4%E@kK4DHM(zHdz+D!lJF?98A If!)<)C )P#6C`("h*^C1ZABNE/T%kZj` a A3 a~2,JT`i(?l988)/OZ)hIfe 98KNq@P$p4EP-OtCg{F4E(̔@X6*IUPX/NtnBxh-RfO֌v26OnUsD5: nO,%p뙒+6ѻPfUmS7 `O`.7s1r[OVA7W9qӝ{B ۢKnPL4diBPH|vȑImD!fkF8) )T ϵ!>;j8%b% H.r+f\AT2WE`vaa ,#!`g6!^Cc:l9>k(oȍ x yƒtDFFFhBm iMXJJvv Gx$;Aw9p6@ vix8q5iVB2IiCPrO!m9i LVn8RثPrܤIL,C 쫾Bս'R9T1РW7x(7s3 `8+xqou$Ms`).In$NzWᜢ^QU% hJepve㍄)kgezbb&oy&!%b6ab6k^B!^^V~ 6DCt c&cd??V!*+ǒ7:r+V Q ㊫X@`hC 'jeXNF+//2G{aQq8!>Q04)O 5-uOMzڊMCR$CK[PS vr+RxØM 9E7NQDU77`UکwӏW3y/RI!No ^:-ck Af$Bt @3I|p”q&dfgT;s^"DY&%.2}Vb"`yai*wc^X@[?^'l+B+"c㋶+,,,79l-;md4MK8P T t(/;rk4-!׊+p͓b oX26)SvPڟ֞v?I_S y9o/˭ u3qGTu)|ū!)/QP" |ΘL-SORzZzQG3W0KWiDjJm&'Ì< >s=*䖈F#أXe]T.a/#+0^kXTƉp?(3 c}hyC& .  ;#d+p;gy7 Jٲn*M\ي F gXO.oe3O&1goNEDCVlBXO9 8Q86doy#کu:PLyq佈qMU q<6 qϩ3<6O edP8G!ٓsZzpyvrdFZQUojgsy}d8lLDϏHj`Ι#Y*A?0HpqC4e _=Z^+2{є;:r ݂-^,/Q@eJ-2o"%Z;ݟQX~p.vȍLmL+ۚ4>F4ImˉVOh3u#C8'3/RnAĥސzxB<9}'tii7sG6@@ܿ s3U?7l8}7 uTKZMoV;қeǯIk._! pH$♌[|$JvԢ>^\w7c3ڃ#?nB:!?b!le߿Oo{镙Wܸ-*Z’%!p,[@ҁ@J't傘.dI)?X8C},޼iS,%puIӪc% Vfvsm ̓u w .:pF WcĄŠPfU,qb>f i#(mۺi.?Z[Å D Ls磻{g a'o4~҇O/`>5wYs sg!Bac5U&Zh߹!w] T`)B߽\)̅I*eI8DHQ .Y` ?f!/,dG~2?tb'TdC'W ?d54LD/HI'tJ8c)9@L{$O:^h,6x[g1@S=UIlDI`U$YN?%QNi\"h^y-` &֩"FYjJhgǙq}g[l -6lF!of[n \p-rt͋]tCzzGs%\t.[_wʶf]qĹtHU1!fw:HJE`>h`6sA"P,\k +^y׍7 ģ4#N{)f|bf ɵRkIu(O?b?meM4AYԥ؈39RI09cK{4Ō"Ӣx'X%0ugc1b!Xu :ASXk<XʪT%"΀>S )Y TɊ l/j,]"_{p=ŷq[m]prI_}0oAG`3Aj0X:W2v;qE<$Ykʔ"TTcCE(fTh =Ih" /~Om,UJռT v.2'+"lRD|MfxZ7oq@B!PgCj!&niJ2EUK$7P}S{\* a 殒VU*,{J\( 20t')JC h xVh2,c!V.2 zZM>g (8 нta{ks6#@9A;|Fo_[g>K0?љ@K {^oQٔ4W-31g*)NaKѤxxH])0]|&ox?#)" G;EK"؂T 0bƝ$#OR%ԨVvY HtX u.ԍ\Z|+NS0u4W ؎ 1BI aXҔH'd&dYH9h# lT$z. l@[>Fp~ysCALSkjYR+¨Bdo~LOgcɻI.b jڧ%OQqǧ6h7THpbƟ褍8F㔓LC T8#,zE*UMlqƛΓ/Ųlw$ ˹尤3]RH`Jv X@t#P,9C)*bȢeBDG$lMLiŜzY.S3.+\Ʃ-jLUcs8uNqS=wfچg`Nu6y?6<Φ6~=|~?h`.~Y?a5Yߺ]]\dgo|{ۊ+HJ#D&;{T 7Q%>yAd#'/ȿrDb%5/`$DE`e4 w:g@'X{TtE6nb(@u#IrWgqX!wuXuIQQgcg)F*H*aIxrFFw / Bx&&\Ut٠e^'/e)`GRQA3!B-ݢM\Mo=?MA]e]]ݶemflH@ɖ/A`l(k{z|QPk$ƈNr'oP'X]ogo~wY2S!(+9WV5Qsh(!1V4GACfs6^DP$U49b4 74e"a;wFef(8h%(mhsOt2493SH[!P:XA:Vq:4:l*I 9gs(J Є::`:Mn1F q5(FBƘxi,K)rhц=K>ͥ>qZ^÷]UdlN44{؉Ok)bg0ՖO04/ؗ=!}L"Ç(  Yd> 3~dA3/"RBoV1EGb8[Xr?D'qB>6%K52rw*B؎j%e 3cS 8BԠIy4*!# \G6aMv,r*sr֐ye_s /@ )` * `Nl`v(y Ph$u'I30-œ+D%!Q[11ۃ\P\1޵kfOXOE]NJ^OlW^/mzB~0 )PwIYny}@[ѧՓ- V=hx1""+1u"cU;5s"Buݡ4>DDPuSx؎pgRF"%5hH g9FG#vWIXFwvW ervՊ9UBQ*3:r'uv%#it&)*N` 0m0 ` l0`O BaW&`(37Jȓ=%)rsL:.G[Ri/9?W)C_jsmUjdÇ@wq0&0/1塖!4 bm dgjQ`S@YCQ-⤬ V ir }ڧ(Z[!.Q)433)~)3!fI8b gcu3" G;-rBhS'ycZRTpbQdDI iI#KeAwF>W)pe ُWIW!H1­暁(U) *lN `Z ʽ !O_aPq,*+4QU")r#++;+AdR LnS?0g{xlImkzQfO!@@1ҶmvmLk@X_0ns ) > —I?"pk ٶWۙeVdG~FZ"TD~m 2g "4rWǏsF)*J­w3ssrS(gWce8k0wSმ{ HG*gpLX(HX:9g׸A_A­&:I&Dnvн!@ jۜ,ڠBQذ@b#FD ! L,C +BJB Qs.-+/~x!@Hz{ŷA@_ӥ-,l(O{FTMdjRd ڮ.-لOXN ׬ÎͰ@6l*@m}~qrM!)&R-'ACrh#T0kOkAkV]NPz{7 _ƴ-}0%/@^B Bz@>R_zŶ\lFNZ-VƣI~cqcVBa#2,Ɍ%j=Hd:$vRQ vugwQR((E%CvSܚI*aqij :0݊0 z.)NP(p++KED%lԎ* o!+.!}й113?/+&<7GB;$]/#$.񔗄h-0O}(rȐP'?HBrB)\(EVDˤI&9LBO? QG.*oy@+7~*Yf6?+ҔJ T/!SA0E뿻 `jjWY 4q8ST4X$]v$p-7$;c'I VʢҟPٳ`_ OވN!2Zk7G6^S! p!! 7^Pp'":  2̐IBCC'KTAPU@rSO]V$b  m9Y! 0؉)c #]w(kX'}eK~+ۦ@*:Vүƅ1`L5@/RW^ShyCpPe9kTtA`)ͺ,cH@$$ . m@P+ Bk2\a e%\;QS>"}zGzĔ/$ \K iB^ lZۅΖr!KR8D/RI"Gu[#FHG\R872&TJjҚt2nswJbDEitxܖ a~ p*}w]U)lS'͇ 63r$A_9g, *#ɉrJ= s'I:o2JrO8)geʪG-+XB-h,+sNX+\%ry4#(1[:N(~冟 !е0|Q\Sv҆b@M,$"  Mg.oVP,r s` S40mgƞj ۂ lLY:l ?hPw(t6 bˈ,CcъRn|CR";ht#m I"M eSɥRfZet'ܲIM ^-m'H]dt\BJK0Rg-ϔ\5<@$69p@!,=]D"ʿD9et9y>]IR)@wmmKWBp`Cz)*b \ v$ IL2[Hae3X/fiavJ u !Sʱ%.XQ;FS*k 0pKt4;w,@V-1Z,-4BЕ ڂ@Yc#fA(PA6Ћz"HE$Iը#,^47D ioTE{9ޙ QfnDL_<;tVq=)-*}]DSp{I$&")Ag`'Bwwv[7eJJR}b$-G$QjSU$՚;4RL`P^SJ@'-ʗ]PI`7ړv)sJM| N}ݍg]}WTR$o{'=9821cgyhIX1 lq8zh8H p)HƐs 18 [ÌH[:X*tɋv 2 S!-Á(+1X/ZS(4⻱i0*j/X4ZTb&+*e-fE&TY`b,F[F[Q)Q7F{RˉxBucZvӦ@{*/' R/Z' DB@ʐ y"H:RL*h7"t鋏ӊzhZ:=!B $1X|P I؋-;/DC214h8C6J6p9;{;!#C<</k47dV(>/,6DQ*F`4F` 4!2GzDODM\L$IzDSDEٽ5k6:ޡEjkҥX*/sa˹@b6iTPQFk>Pi4F|n 6y Gmz?|{-'?u\tzy2 z)s t2z @j* t2pABXȉ!`a}1, :x llэ29Ѓ\$X -2 ( v ACQ*Z#4L3c:J6E8RB #@ʯ?)<9fCMA*5͙JRZe΍0/j .0i,t'|Fy {N^ mzG'j?t?N9u,! g̖,`0p8@r ';z $JQ!Ȏ<2`J)<(1 Wəz:I2:?:XHQLQ, ;;#03Dt6PREHR65LC#hKK7C 軛!O@ ;408#Dˣؐ8E >I5"ATL#IӼ,EJ$T[7rz:' 6EYfgS& .enST&M i< UUto{ #V|N=]||ѕ ֢ PpM|ؠQ QB ~ɉx RIcz*z{=$X ќ#2ȋx  p ܠ,($˳ Yʐ @;;hHHY%җ=#Y"仾#b(0:# @ CsaQHZQX, ڶ $ʐe `4$CʴTL[SkO4',K TTC@@#a5}FR)x' >WtO=پM9y5F9Zlnۈ5\s6tR/ZݞQ ?{㼿}3G#u\ZcN 8h}i` d~0#Oa2f8jWؠ1A_{񍦣I8! ՊWuaÖW UrЃЫ80" P93 IBZؐ+`B&ʬpj8Z!K+[{A#ٚ1apx bOSiLУ>mb=,KbJi."V8R~( C Gٜ35I}&J![4U;Ձ'[rNm.`e0p4*p̷ 2[S/wcNFNvx.ikF. z]ii_9s*Yc{9ܠJ ]K 9Y *r rha;3ۋM>j;.e,UG!" B~>k,ζ>?r-Gb5\UF?kF bexיʖ!ޏ ' , B"Чυɘ#tr0P!闒dB81!kHJE 5~*EQ4 ,!i iRMbϏA82i 6қIL@SoraF߾.2ǟ?X$T( fܼxo:E!? K؉/AFK;N8nDW!C&n 2cէ[uEow?XH~gAdA.! -b P#c& (%((p .b b.HaԸ*pd d *h4<RQr9h3dBa?afm9gr ?}@ ڐZjB)tHTPKńRFU4S)DTѩ*OLCrE5qd25hk(9!N[^W䅂4`op !J,5Pmub8*cc%0q6q~ܸgZx 7`|b3gd9;A\A.$c! 1b( I@PX$<)&xR٨ouPC(ESXIlv+݈I'b?. )a y,w.Lۀ0р;`Ή1蔧6P+f֎W6(GՎw"C"GQxSTK'$$i!^ԩP$C'>| `Bl0ɒU/,zpa9IJ?T,?nqW8-&bR@ri5 Be({넍g.d*OjҀ$ 0%|-bElB@ F8"ͶmNbp 9zn| L;(48 <0 ? D[58$$08lbi3"iHCl$#Qimyъ,8KG)Z~kán5f]h<'SHV*&(=m 琉 7i,׺ա rR2QǺHuәl">p/PR CdO5oT"Qt P`ޅiA^֏KE'zpaac!c5^WH6[$5tf00r^Է.52oQԂ]*1K.J>N kkX2Kܐ>|" P]Ü49eL ?()mct\ؠ*0 BY @= g W+ǹ &-,hAzЛx.Mhra,ӍB1|RC~E 'qLfVvN錰#1J2D.0+Ph K.Ld<},Q4psW޼ы oh,ZxN<I<c405[B9(! X,QckkA ͑d-[P׼w \ ۓn҆F̚F˝k"I΃CLQS 'b"od_ۙ环2I_j_ D|8J{סHVHBT;%KU`Dh`A<Yy99\KlɄClJ FT$ }Ea@4X9@9A6 D3 )ҵS)`TSE`Zhd(XSELOTS$VL`A[eܥq0XX\k PmXasUr,?D6F8ӄ^c @qy(e^C٘ ^lAHByh@A=lM ۿX%5FA=XP#A7z(AxVum+[#!wMD|[xۛx 5cx>ɛ2d41`B 8EQ9) KĄO(L6A8 ٵ Jcġ?x݋֤A Bðd`a a`bAؠa`m  336H+Fa!DDe@GPPaAc0 e Si˗Y XMa0E`IqHb>YLRZLA! (<"$,{ytT&C?4@BAA`^m++*)tR^A)g4rrpKZXui90٠Nn%eRR)DSSY8P5XreU-TQ|i\g](S2U] TFiAEX4WADɒYоſX֝<yF"-"^rFk%G< \D|ڥe@BD k20+Hg@lY6yhhr&jVђmuYF#PBg|l+̯ + C`_R:NI91^!_L2߅*3lt(@l{9-DhzQ˒8Id7MJDCdd(d.iy0G-Ќ!i0)OyLڜobFْKUTz6m1U6ԷyDee bTb,DgVi@@W!Z!vJƒa Z+q?PBkp FmA)eɦ/@ dm2@H'5h@0OcArb+DQBq 1&`R1Ɲ #:ϯz"ү?ֈA  [ȷ-i/ ߠ ,ɚ} ;tpO#C =IfSD9 D0.1N RҤِ(S{-Yni~ZeT^-jIUaJJ1gܢmҩp2nNIG:a42KVnSLQZDRи2 @c&ZLa݇hjlݥ1D@h@vvgG.Ghho$k@Pjgަ1lʘ`Z7DVv$8bxM|+Dd+"<#wﯽ-5vRv>@4 r.B(4C_(D?(`v0}f( ;HA:hGJW9mAoCM SnTFSFMsWcqSzSO՗BVXVwuf5XY|`F[fĞ:JNt#$.rPr90 !ZOd2dbA#4RP %#cȎyu&b(+6 ?icbg@.CgcfvZ0&o?f9Tf .jc޵BX#ֱM51pZ,8'Ȃk/~A??Asq'@  8lb[vyxd0cAbgS5>n#x)y鉃ˠӎ>l C8RqG8O'CÛR/Aᎍˍf5Y KǑK\-ev nnD]nMSs"/]{Euz4f& b+!PFIWd&'Uؠ \ڡ'll^@ :pCDhCD0f^v+֞h}"Az@.$0Y)8 $A$Us{س 1^̸֫3/|RDW~xv-l.jDC [dWAfxYM/t,398lG/)&|KGix-">EY%ImT%.Z&)hΜipiߔS80ѡB?NBbM4(hߊaîXQ쁳=].\mxPh2@Ra((QBǐ)KSLA%V/[4%lԮm"/¼RͿ// "XcC/oIsGsѣ (|̄ t&P (6// @ i>{Pf@ 5Pf@P 3E(i0i\r $ҨJljn[R'l¤,4vI#),J :$Hc!s4L2 ȔJ \X袊ԃIÛ8*b 'zԦK՛i1<KR-䂯1, X+(H  < ,(S梫+rPHBA74Hlhi& X`6r0{7tNjX"F$nPSTH!R@b9\2& T>/D=nvF|i.1/$=YDepD .keRoƳF1Ȉ*&J\&)+Q%揿/0XNJ2]gɁ9 h!2J$H$L"=TsmT=HG)' ^8b fR蟋cj+UT=ˬV:, _uLR."<|j 2eK2J ) op?L@^o| thz`?Pu14avT89 w0OE i1 pQ?*  ꐅD&6qDhn5 MA 洨NƵp#fň&g :&c(Aˆ&8J!2,[Ho4$p@Rz 4NqNy@ r0$: %j#zڳ;}L$dq1[d'-m6ɋr$ ZDIPpe'2HR`{$\B% .}) & VHSZ#I("@9;y̗5|*Ae')gsrVR’y 0R% *ĥ1UP,P0'4 YqCIQ!VH &'[0@ 4a [x'E0Cݠt:FNuF/(Daw.@;;Wb , Y 4~d2?FT+ZU'6HFP! >=YUf55BW"İ# l7^c;K[o${D‘אyoSn˄lvv JJJ K.7I%z)5a/ P2@ I$Inod܍.K8!v`w?w׌@೐7i lWN<̕$z=)?<.񋌃+#/{Q1M x|."^,A$J+H(#| 5AEJXuP83@HCN;Aړ(ѧ?]5"Vb1K,zh %j_$kΪ4-lt߈U̒4yoV,`jDļ^uui"`&d\BRD_p\r4V=qJ/ ([Wl#0ɏ n#xٿ~ްYss-D=Ch;WSj1,F4`,bX-3 Y)0߸bWz/jY&'(j(#L'J~jEm&B` p=ps'`8_@47FHt~ $A" !$=#c yhbclJ B,?xdCΚHΐh,*? $BPA.D(j d@MЈD ,  *+K*'L^TmFH%iC|D)",b nsrQ0ibX)[ĕ~mN-V#ߺ) ے"I,Ҁu`D H #!#Nr΍1&dhb4n}&܇ We-NEYT"6r ,/ Ha}̧.\иJ.+|j.J@@`2,0*`pT` h::'az^F,87j(`aB̸5n!!.f,Rb*B d>fڪ6 L̪*D̊(AH>&C ApQg3+-k035Ϗɲ4%QD X$&R=5f{P++Zi·8A!ϱF#)nѕX'h)" ǂ/vsB = <}#Б&@u,bt%Fnɫ>%ʩ|^5@.|"@:!{VTE-AV'0`#)0@DyLeWIW4LA1X J`5Rr. LO` pi6( 4(%&܀J zrL+4J=!< n,T0&FHg# (hȊ&B S0 p65MNm4dž4hIEE.FR}lިFL2P(kz@VqZ-"q 0'2GMQ rqs @@,$YB`b*8q#!<P2 mt.'nhxst!%-^%Z"" 0 gW8z}h#A<T/{8,CB :WWx+h-B{"."c2 C hG JG%tT@F)f fc(thqIJ^J`)O *j-L%n #!N wxf 1ve0O PO Μ($0e&𮜦Q- j/.4=T7ڨSOރLm^$(khBs53#XN%&)n"12" ,%V|q4+ ,2i+v'„&@: &Usܤ"H[{:9' @!_DBG!?ca)J(K'C,(2 b:p QnOV@g*A*?u†Fi@ϱ&8+ZU'@kN56#r/؏'A6Cs@V;DH^`iTjamYsЍ7u,VrDa#q EPy ` ! z`Y۷R{'x׾17i%U3"l[/.RWجSdOL:+}r`Y<k[GB$dc|G%jGgW%jVt6M ]p I:hpl}";6<HèPAYCȨ'&sFvdgPͺ`O[@{Vy^mco㴂={yB1"<7rY&r{r j |rG1upgtdO+DvOEzBb{@;>{=  ٷ#5}iHt])=BVdۂ~L,D7xL+cܛeg-2 CXi"sNfibhj(%!y* bcҲÏz4f c4rbNgdp'xUF {ǩZnji>ƪAnqa@q>@S0=*+4׼S; i"ɋ&i;V$%\H`c{1=L:}BB[޴sW:ִ7# 6z+ =[A]I)GB W Or7/? 鑼 uV1*z(BW^yy`=ج3 R./0 6-#n-W^g2dq~¿~hyqk:*flyb4 ¨0 wJxhJ?Ȫ 6؀b gA#Jq! -24虡'lƆ0b摚4i$fO2gΤ1hj*!RJ6)*Ҥ@aHӨ^!Ʌ=c!Odi"  #+DXAx oEŏFa68?[@L ?2P[jOjـ7qܒ[.I4Ԅ C,F1w$p|+G8Ot [uۜYϷ @F@ 0BFEOOIxg\?6?\PBbM*" DH!&Pb `?I`T?8B!ԴDK pUb%V"R"BM•Is5՛P@0CP h44PHJ*EJ'C mTѢ$4A+]J0P@ GN7EŕLH-UM9uULҚT.IWw#EY]P$ Fcb$ga4cIec>Ux~mxIJm&oW¾' ]MbsXQ]9^!_5a疇^i'}faIbG[-a> FR Hy&nx?Px)XB h"^t56a},]@R 8(*9fS(eXb% hyej)?)`4~BR0(BE-gCah )tC+%hzPgHDH|GK. %TVGRDD冷UY?Z̗ͣYM7k^eXkY{$}P@z5%0`ۘGa`?cqf_DT5nx/{BiT uST!4M~j-7~3X\Juj3ϴ1J3Bs¾>9kC֘f_|SI[JIT iЃ3D%4("QK =M ţ/z)J ?LMR1o&}^:UnOBHB:G$BFe(PJuzB7NsIJ Bl@%b+ÓIٔ95FY-bC6f~EMJ9%k;Nw5tKC2COH&['{̃ťı&K`l3Ikv]#\Xsˁ±MP7ɨp&9#Oc2y5O8})fY( -=@,́vFMBU a! }l*Jk2ԵiA2&Tx7TSp`SިDGjMRW~K~@0=r,E:'RbDO",iI:u\JB*=9ULZUR$'3I+4St7]e)&enu]"[]Xa:m-pa'wB&3jLoVb`).Q.4xUq]xxB-#p&4L cGJ )LDBA]O A(5ܢMYogN4Њuc$5]=cǟC! yѬԒXqSc#J}V83< a>[i Wd#Ra)yc3IRYn 6 J*Pi~teGn$}KP’%^ FZrUrl6Yn{X-m8 G׮ L@j–t{;=7wtX4ֻْU5⡹U~ ldf"W\Bo  }n#P7"p #87ÌԷ| JiHJ&&ktH'2"~C4uUh_2e9FJF5o_PE:Rk q4$axW &hH^RMŤfT] {&)Y'+ҏH1%DPG$JL%1F:NsQY2xv5Fu$&2`E)ҳEY^?~ml;x} tmmH;v XzH`@ zIٺf6Ov FF#@A/1R!aR.a7S1[UBOw.3 @7/}aHtR6-3=.2DFT`[7c6VU1*bSVUCu25pv!kuFe!6"Js4IwGPm&iHYIEthtR8_ч]r6Y'`9[7:/JHqkz6{0}KLA+ъ{u\\ALBTN:3MzRm!}(}'}7zxwwVvwNrz0N6,H1rnP $c.?.25`.??p!/ \PAJdqvW!Q'AiSydQ>T6psC 9-o/xsAD)_#05 6rdIG3J `#=t3q7T_u! 2Oa&Oe"84GlEV]S"$U19I!,U/wNC'קY@0'yX0'@oٌu8'Ŗxy%wjY%%Ybwy. !5yxB*;EQ)D2T2oPeJT>[mUS4ue15m4rtt!dVrFYsFdeK2>cT5y17I'mҨGxC'xiuXWm)}rYthbɥ`z,(-!DkC{xLJ-1!/8Fɠ2Aa~H0 CqBZbڬcvSr+s2.y4t2ؠ-C1R;3=/1>ɃbZGVHeJtE0J/FYXki6GAg1U. @ohy}sKї*˖j²OZ'7+`:Gxwy>K@{98*-ASҊI;"\,L{o,|v]#n( mnȌthY&k8PUXt$|$tt{j0# W@HQ1"r&OҝaQTf`8&D/(7 *rŸ"a1eP(T )2곒-sD SBԼ/>C9Y2gsUPRdUZf#3,U>uq5k5dw2"VRWFez0wDnV& 9uR({jOJ'3[xyٳv:bʙr/ѳD )*X{vkĴL3M%Y;U,FfxCx7`{{@%&QHE XL  TP  jƕ R O#6_5Qa@h"SqDad0jqJ|b @$<c 1BOP.Ot@DC UR 2`4 ˍ!g0Q4 uv_FK!;9Tsvp"Yhrf G6^Zd#6,H@ y<<wٖ/xYG2ws<*;5a;Ϻ;F{u¸:*PS{U<|UˆFďXE<)p@$b XGAH5AHq3$7A X8d`a 珅 `A">ret-KQyD/9Syq#%%ȯRb.1wɒKA!ڠBMwQ5ORV5J:^9 WUBv"JH# lF#WHevB-9 =33g.yQ*p!'(_ \Ǎܷ養H+*Q[7*RxG< *+;xz\Ćѽ||6}"==Z%*7|XaZL ,=X5q376Pdf`VKppwޙV2l3p@.~A7.tUqQT!rx0;~.rJ4Ż_C5|LPb+R!|"_۱mI8D̨yö~lXP߾{%X<7A#iP piƻP@9v-fCQPzRJ``bQ8A8sCbSq&EnK97cR22'As//|D+MC.D! B2 g 2 ?OOZEW$6deW4?ufcw![$"le #؜͌rێrmܗwm <+u->=?Ja?6]%6ΦNo1^zóBͷ߈CoJaw=B`e Ӹ <|AQkK^.o1ǙQ6*.zLR \ x@BxA)YÚ!eu/ 'a柬!ቀ Lo+6Th &B !Vw  ?-Ud*Wʔ/g!WhвAO,58zM>mzRPN*5֦[2H6 (8O (…q.o GJRJ\(P>W@s:gެ?M)[E4ȿAY=!lٮ_;7G|V}ĩsp$9& ;yS[S C?6X )3E?98 o?@Ԡ pR0!pʁ7(5&1vg] ܭ363M34J#-FfM8-6lε^g-v 7-4/;Cy#@9 00gJA)lj5x4LT.t çHD,޸zJ`$` 1Hs)ᬱ]T=,Z%;ujJWө'v,(DG9hO1  d$9=4̻S>E/DKп]љ5(2{J+(IIjhJ %QIZ V hI" "U^T"@ \ZٯJם"bֻBVYe':Zl/`k-`J`p5pܿB7r7  )ICk{;m&A 9Kv0 7Sp,V֔` !upŁ`0l!zΣ>NA}C3F[kNQҚBCRk0} b:QU9u֡ SH+$]j3AA:%phDI'_z9IᎅΕ Z΄l\Pu8XnZ~ 4}AY̠GMȚbM{3QjW5|m<ށwI)3"f:K"k NC%(Fj(q X|d|)"~rtg-! EC= I&Ǻ'Q**@IiWUZ%ql*z .Hrz:Q1]B:SF<{R'Wzy${jӚ-0W*6$&+J&yJySjo)>>딄eWK dætũgFgݦ Of;} iCmwغ}o_T 쿸|pe(7df83"f\?O0Sd48iVPSpEC0S 4 PCO>~*Pi00Mqz@⻃P8 q`F &/'y )4ۤMjC?4%QшI:GKcי%GI5+V&S]yR[,Y&P ؋Ek]A]g(P!0 RjDrĦ!(0wSK0!! E E^F+?:?JeL3f(rиJ MY، l* H ̛w 0:0't-t0S:E: Б4$;ABjH#-BN2B<"tOTA\q8 H[+ 얫(1P\!$ETL){Q= "X,f$ ;1bTێ;MtK?\9QV*ͧh L+8:&u$z6;!͉K *zϹε,ْ81SL%T#H$ Kr{Ղ2-I޲Ih:4|tI%IhU4C_ xwB Q:lw/( )j#QhᘶQP\?$MUdҦPEȈ!x 7-}Џ$1jF15? ) ِufPM"1( 퀫$cչ4u AOKzNùV99NhTx5PBj2*k * 4ˀ«AD]-O,.8OJ#[:Y A@ʟ{G AT H |B(-c!.T S8.BOs5vP( Rʩ%]=Q0E7 H(`! 6rD PKDRzK YŜ)~7X)5x9?j)*S YhdS6F `8S7u !-牒&=ZS &$A^Ե4K;ks W),Ba:N-U^3 JN#X+AU "#Vu% L%=Y{\FR0颳N[A,ܢ1cUe݊45T5f *4CE<;T4>f' == % |F'2"^zS| } hR *X@#_5TD)rv.Ȉ~mLL80*1*F 1SYԨفjiDU@9{ \Fd1i*+9O31.fȷAo T &*qkG=;f,fK~ɻZa(b 5[DVm5x EФxuV8je 4妽aۂ9 c `xL$ "MdUd=Q @]yur 0GmZJOvJrvfY}gi|o|<%D>4.79A/$_"G޳!8QfMlUtȡ.VKN^7#,,*c!O1#TI:?iQN9?. E&>PK:NO:E(99&m%cnj)]rɹgryĜz~'fpn:Ad Nȑ'@iGȋDehRO@ }edVԬȨD1a'eF+a(U0UTQ+JY=YkQfLG1b&؋9L_SZI1a&4!胚6Qn|86L֜a:iPu#`~d$#VJ4$&'©h:A +`mX\$VsY\̺!v'Yv̤1yЂ!3ԡf(*t^ /HeFIa8jL<%;)509:tٸ7"ɇ86}r*'-6~&B{258xx͸׽HEUEFvt_>nC17U TA D8?)qvC$FIDϝΓ,*7i'2%Vuۤ)G<.wɝ лr9/ bVHItYe 435M sZ?4ekO\K3Bob 7'YQS<{!cp7+}ePAg)/ByB߼/ DkqShZQpNz,-%t$aqd5Y#'p"Hx*vx ;sC <cđ.UDx@B*ӯj"5YSՠ8'c)H\QolfceHrOBV3dse,'Ê$ ŸP#e#L8z@8@ aO\-6z'ɔBuQsUo[,h lJ=ӜE`$.CZ\ý;`╓D(+@{IF^mU ]2I3.#tQĸ`RZ qfZ!SC%;&9sg=hX1Z:L7v1j*lekƾ1ȑ01ȣV)YͷdelJ 4XIz@]5;w4|;=G$c;:;wspǜZw:4sQҒ+ %)I`DxH4":!A5 F[A359VS&or$Yir]P[iωR~XJe 6H571fOp AX/vfH-YhEn[E MtG@!Ho'4|OyeiE _7-^\8zqOb6чx@MY)J Z HΥBĕfAtI]15ɚ ꔒ&Ed)ilt JeD DEJaL23-ӥI]nZ nDm1^VU@!䩚!U,˫US0tUMA xPmU8PzJVLǬANFKU\MZTrEFeş&  @E-I>iIFz ONP  a/U#IǍJȍ=cUՈR5HEJ]>J?hSԊRHNAjc@  VHmI'RNa MD ]X! $ XZkV\V X!E MJ&!UTKB[H!eHrW@?eƃ!d9XdP [^_F_n(O"pR)o<ՅaxG̀}Ѹ} HMi/m!̶^ʇ|ʍ,#pUAfU)64^.,f]HYQ 88 dY].Õ\PN5d fHMaDئ(Vn]`jՖFz3E Gfڨp OyV~a5?(!og<^5Oy$qmxN>%$wDf!^ TA L8*PZ~͐ a˼l]p SqIЁMn @E̻0O}۷fI4ٟMbRQS%+iGlhLIQem\ U%|,U uvi ́I6"JlQ#ΉRvƒR8]Ԋ[MYɦrGp]:)E8bIiLжẤq+qjEvۀKgVsX;Smgn m0YS1!='0JaN¨ + b V(zZV䐷u_Uرy@ Dpi|T^·?Q):"UCn *fK)3KKzhqXhD2SLc3Y8YEJ@rnN8M9/aA%82m t-25//#FZ~dv^:! NVERj!2Q20*Z k !ong3Hn$sJ= KVPj!J&QWakehKQɠEyh T_H4"U0&Ї HLqxPS44b_ &|,YtTti!w0U5U?r$K#5d)%E8202*EUdNM*8I @%u@/%2I͵%@ VcONFp\q32[gmq$cVP!Ab3ixV6o$^f6lk;0}Z~a|NNLHHPnZPnO:d eR&nӷ^Ÿ N7ihh&wR Olz7 ʆ]dnԷD4$DL uqKB&Q;@cAzR&8YS,KX麄/8B@9"D۱]v=/5{mh[@L$1m^On Jޓ5'vbpsx~3ܺ- C'SG"pl[oᖏqS>98vvyW\ I7s(4Zh$C=HLcqe &T/֔ߔTItzr}Z&}HDA2R]̝b *f!$+rԊ;;:Ć:zV4YS*^#gіxm?^1{KuZZp5Uv#~dH90A S'gWSU<< {?tP߂kVU$%7k&eSBy1b}[`Zԏٷ0*yXt7b1@0? P%DD=xh!cF)!O&A*oLHD"N> Nb tA5b:縉j; !!M8#b @&mnnf1c_/0X_ǎ7б2/\֬ 3bƏScšFot Q,_\@۬/wѪ7xm&w@ 6;a"n`ȇN_W>>}` p8?~;>3  @ Al@"XCvQ iq zqEjB 5VovB!ȅ 2*|b&&a("&iL-5P#ʓ,҈JʺIHz:‚a)1YР*Q:&J$IɊR&@-IJ z48 +0=! 2$cn2T LYİSbKh 8!J(9`4^N7+.7n0CM'JW>S>XW,/!(fO@ 8/;B^>QA Rz[G[,jTF S hģ'(z"'i&, 0H1AK,A",,RMɠ.NI[JErt]I(**. Ӳ@(G >CMcPQu //Va%n:,k,uub2a-k\K,v޻=W_ [m[̱ly77{U3^k-Wܦ}{M݆]ELoK̠K Oچ7~uO0Kc&d)pcp15[ ?D(D#a4)#[iK]5,Z1M"JOEq ɛ69M s Ԃ̱o3ȦYQnrW9B%S}ArqHt WJǽ߰.WU@_5vʺgnS2fZ :Z s%o\nilz4#7_vs.<8Е]!+%r7 gLdU =p= <@'' Z X£!$hy_&e"$@J,B$cȵ\k[xR(0'}_tpkXTH}eyҔAZ(ΎRIQEjիr*t 01`Jך`e U&ÿ˨v̶9,jwRVCsD2vJ2g^JV 0۽&]<&&lkxRygi עmf[u6tm'09o# 6b -yYzpj 9u\=DJAVF7cZ"[`eD@.m?,f;ɶ6}l7E&EU,w!rX,:BUظM#\5ȉŐ/?X#!8Nɺ%˞Ԓa䗀-[qC`l23Ρu/5Jl0i3L69.yw Ö}&Ucay,th|KPX05:'t:33t =Mʛr+0l=t `d*4:!1|ҩGbB$.ғkR$0Ŧ_;Kgf&0cmf^koHqғA܋0~:-hW=ocU ^H]0>ȭCx@Ȱ>X3PZ!=;g+u!3lem5>['|g8c}[V+1B`Z 7N0"9C=8?.cGL&=ʩ_ӊ DDDH KLbNͽdI2zЊ#D8  BB$$KLLg ̿0c p FێmtJ#'J2&"2%,荧ƋlA|oSBJGRo2TM4@J <@42 ~m2V2e$ ^}jCe{lɴ{ln7pzr#j58%F!lv:|)~000*pXt'& N9,0x >~#▐B05M .$*fҦNn 00gڲDBD¥̉ 1O OrFP00ڐ-t+J̪p0nlR"nZRn% **(w*e+?xeP+ D~,v v$3.c>;PAN_`.0n4^t#ZVzeO-8E:ZC#{,%l Bq5"!$s02h>BZJ.>҈C늎CBAĴ5 J 'kJN y5-͂ &:$ "!ÄPU< "Ld;ӋM%1* O6qJT&JuUqUW'MB 4CKqP#G,YEAF{lXZX 3j[t9PIZXO<$GOX,:R5j88c}\KJRzE'[6R2.!(IIc@J!HШ9փ`Gf=494ϔ K >olVf -8?kMk(2OTc "; 3! ω8"*?/R4 椧~©*& ='ZKVT%e+쓫n x2YN+[aMoY~lsO9'o~p+ Q #Hǐ )TK7̧@BOm(p2-j~j]TųTmkT2+Qy*;&4Hl&>Ò&-$H^x}^bt/u;VG}E]VtL8:T78x\ \LF ^-;7@Q5Dtu (hӠV3ձ_g/Md4Ew`>8DA p 6sj8OB7ЄvSc 7eω̰K Ր~*rgMg$̷;;?N7,V)l+*(ٓCRk60V&)b[6s\օ/A{ńibv"2 @+fkq䒩^C/%Z\xzFϾǖ9j)]mC\6gy4"0E*tC X\P`?z+`TCV 5P"dKvpcly7HKjJKHz L#m;p <·00wOKX#ѓVRxUj58Xbnꋶ=5DdJ X%;8.eq{tC^ 5kQJx¹lLYl\+4,z^Ѯ h#4m0yִH^~f!azk>0m=2!44MQN5W3872:f+:;S$ B7>` mNٓ?KBnƍ'*#>]PUk{#R8#Qyڕ2.wK4C @t|XlZT ;67]XUN /w[9M;ڬIH]}2钶iW< ?an}ܛÉeKq`1@#~79Zڲ wYs9~cz# {֐ov!u;RO彭({R ?k1ݓ èYٕۄ##K4E/>!Tq}0&d]ڒ2c5{?JP@P`KPB $PF 98Ĉ#;)P 4aʓ4O8@@5{ּ3OD&)IJ:ɔ&SQʰP8F9)W+"]ѣ4M` ۨqD`P]z pj <٘-ē.U?L}UMdә`EaYcQHd`+WX*\}2j}%b} M;4Y'Fjum5i]j6ib'*m]J[ppՖję_M=yᑂNuXzg{Tkz'YBT=yp\$4%Uߞ2ԤS%N=A*N eOVb&G/LڈYVE6E ; 1J$/JCJ/?Y1k_nKCelu%g% ?*xUb*X`eWIjeQhʎ=iև6fꦡę2d gF[ Z'w}7W^u;ls5,s˹'SWk}+[XPTn9mM>IgMqK_Ԯ1᷐=F6MYD4DQ;~uZ$$̏FM&Se-IjlTT|Y_)_YZwm@ivP w!FRR(5N%l5a@h@5f4JэywC:s}AXbU߈ y#QS8`Ib~h=f [>YNhA{FO퓁c,QpmD0e+T T?*]mcX6wݟg<'(;[6F9yD}ƥ˨b[& d Hl³qz$ҕt (I65"aP > /8献$&>]C樥IU@2`>tU3UreYCWPYn+KpOg[-iFdץeS]Ul+EbU-2nlflEaa<6::cm<$.(Ow &A&yF:p5QH'g%Qw<͖0xW&z?hN`7T;+aR(!{QQiA(51t>@]@/9fjL/t5QtEH6 V6堊K~;ᔋRݦ3w4VIMLQm&[9|AxglTe=A]{X̦,g>.o)'Q{I'ywQAS=H'oCy{Iz~z =!iWyjCOfgqA}yyegm|@x^T43)^*>*~h#.7os__DKD7J8!Vv2MTMâ8S#ыkwSDXX63Z5q4&:6깞2xwoOyliD$6pŦn*&(Xl Ou&de„ Ï)SRxj}uf6!q+戀I9`ِjhfHz 5ez7&V5^&her_ĔK*y_jk6 `LIWu졉ޙ`z=uN#zz hM;R$9oh$Ht1vW%yfciOilUofVv5@RR3*PbFBbYȶe==24f?#RtES4n]x}  yjRِiبRZWxG%GE2V@_0sU}Eg1tjʈdte2ttFTjjGCN y2UWREEq6xb* 8O&a3f⒛ӨՅ:#EO$u/ȫZPwR G &-U\G^IQA F:v媆tH"痾'|]}4^%Q@^KKqY~0i!tHBt]7$B3$uy- V4u2ؗ#DW`c7dx?Cnoil,ktmjdžHD(F& 2V.)Q(gzpSm^a1@s% t1JKJiȶy+|]vrZh)6*4A1lKs `t7 M!uՄMQV|$#$YH#Yxi);vx%8n2PnF5D_gNDdwH 5f#ua22zXY9\f&1>*b%鶗jI9guXxY?@g B3 \%7o1'K]9LatýB{j\WwtfYrZr窮?HvYlըH @ 80 zCI+ޚ8qcv/#񚁗g'k fb᦯ՕߢA[děn؅oDO鞇,d<oe|-mɫAcuU;7XY;L*Iw~KG,Ӟk@ ;M,7%RMMqLNc%T8  'eDdb@vfd=pg]\ ]w^}z}T*Zۥ7%$)]#]\pzUV~Ѱ@Ͱ>=̒@M VIݝ'H=m -Mm .Nn .Nn!.#N%n'$+-/1.3N5n79;=?A.CNEnGIKA(Q.SNNW^[]SNcNenJgmokit^Pp{5!^xn'瀞p''O'犞%>}}@|N^{NNnꨎp굾5q~4'P05'qٞՇr[%0*B灎3U>N.]e [/@*>Ag/e41o=`sns O[U$osP p7jޞOQH^.ޕﺄ_E_Ee0/4! \u os0#_W>qN>[0p/'!'\ O.PDOe̞Qg85ɼE1MN=e}[04 y>nu`'p_e0-_D/^ezv_i/^SE_YRD~WNOe o ..$(HCe9'@}U$_[-tGNEz !\7r + NS8t`K' ]IAGV' "Yiծe[qΥ[_ǡӻ=I7!a} . t$UB1^tJwcJ!8䁕][&A|'ٛq!TJt 8BGin8Ղ,%h12rD[ -\" tE+$HˠP,'lCM )Rr!!-+)SnBIH#tRJbGEKk*DI'*rd̄!l0-f-Z2oRCURk%98!g ԶBk6*0}#{p#A:b / SIH GU+^|KIKcj 0`]HKGKVX&յH8K(0HACa=?fKrMV ȎïT\ Y)uxQYL19,O:i~Ry v;ԍEe$O/,c~GncxNϖKlI[բU 7"FjĹIܩ +|!/|sHqˬ(K7tSW=_rc}vkvsĻvw~x7xW~ywy裗~F( !,J:IT9D3(2 &G5AXAJ-E18' fEIfIR^CK.V=G! xRVQ=JWV3@ 0 aXH"90;kOWǮ! aFPڸO9Fq\=CH7FsNS[Tʹhǖx6&/iLUtHͩ@/8c?7ժ[^ T7=eX؆WTTdaȞ<)55$+U&=1]fZcZjP߈$^߉Y"[.(h4`8<@)Dy'4ݍ/2I[fN1O>:n;)؎rLwO;On1N~CݍJ4OsrGn4ߗ $j~6O<4Y䣐F*餔VjA.3@5騤j*Z .*7<X8OvC_>A`jmyGvϝwX %Ԯy9\svkæ+Zzօm+=~Z⿥}{mYn+j>ב3pe?öS@"莸i㇃ ǰ'J&;Xv)wZJ @jD?JF Zi;sje5WV]taLVKr=#=]-$*Yvӭw_(Nn$/wc?N 2Z\ 4Imy8gY?MVjԩ ;svsk.*>ѯ?\n9f,53 t~e*"lmǰ ~%ЅѠ@# o0,֖%~y?h,6 !ň9AmD{M!XD,oÏ9@m^L#6pH:`ģ> IBL"F:򑐌$'IJ22̤&7IxRy %(G)RL%*WV򕮌%,g)Z%.w^ &0)bL&2iKN:Ќ4IjZ̦6nz 8IrL:vD?IϷ̧>yOSH2y,MBІ=D)T4@#шji?GJҒ7gJR 0gK)O()NɲS@ PJԢu GRԦ:-IKTJ՟ rjS FU=5'`ʖ$ (Z~om+\oTe^jQ,FCPð%l2:V U@A~T.a%Kf'ӷt_%KU."W:իV%mKk|V Ŭ`6[&o5pCVխl%nYWڵ}A`*XD؝[e6 @.V,o޺0}/ZӴXU-Gjc+zުk_ [AzM0F7 A wnp]3 /xëI@&.uKꖥeE]~5bQ ^kxi\ztin|U7A}Rڳ{_YfжAr_L ox&.;zu h[Z uJgU- &Z㝬E|>pa"KYzpTApX,Z^'_}pY`GrM7m0S>m#k6 - dh@z?zMy*{afo`t]elopR ӥ>9._ܾ⏈P]K.9X*Q}zzꚘ:Jq(pl#t&9Y4\Wt,+Ok^ ϒ-'?Ww^(rnLOLwlU Xzٗ}Yg{'MT Pdէ|})uUVe0f*Qkslk7VjubpvSlwSWSla!@apa6P(@aQgÕr('ma!&gesvb*fQhAWnQYdy#h!chDRq6OXORFz;%OV Fd"`Bp&S)8}ætgV`_e1vh!kqvƷqZE`ckef{]U}Q5 H(J}7}bo(5Unjtzh,W&&wPϦ~\y(Xm~4W5wh!*ph?XicEi"Ə8Xkt'tFgv t[E0u{'p%%*)H`ejVuh(*khpw`OT5y(qk`wH9{ňQ'H =zItVOiqV"7Ia[_ ڨxr-ri9bt%^!b&kaytXb4vV~nISHeFטOilIlX<5*x&&чd 6!Tu1jXZ?)eqHh'hqA)UU؉d(J:zdTyRtؐ_I&Ҩmaxthtx/irg! l8s(U]{){䖗Aem膀;vmHG~b)Yod RyOٔW&jvdi&uWfZ0jTTfqř ʉ7XGؤJ&yQȌi(\yZgVٌga\h9\%^2rf!vU|mȟJpXqH}ʧ~jmh~Hhai٘ ~uz[9h{X"Y*V593ښj/h_WȣagvY">ŚyHj& ܗٔـ^f*\H8nuadhrGmƟd;7bqhyjwd6{yQZ ׆EP)y(&YIwoLVTxɐ}vSjYzF}вT(uM7j㰣8[[ūjadm!jA~QJNҚH& ;zl Sʌٵĥ ٥KGj9EgAi$6jU4K4 D:F+( [)!hI}PIO+X _Hak{a@kװr+$bj*hjb韇jj+v:ǰeʶX O*ViY"*_QFiʺ&ں PkyU9:0 ki> 9hۼlċtN, J[ØKIX+Vz[jf_+ZXW('S~x:'oah iDŽkwqjk<iSzȥ{k#1*&Z{l .({-;7\Z<ܻ8<{DAkG̛*gsa "k#i*+pGLPJ~G_ۥt[&"'U:'x.M' ⃾j)(+請SJ'M>glK>:ކf e\nx٧ϯzMȾl_}}_^!Z,MnѬ80P`޲Mв, GO|QRᩍT9=>mf+xlx=*~˜SP-_Z` I mt ؏ qI4ٖv~{ru q}exܿ%]XynaN}ؐߏ.٢@I@o-Knpn6fQ+RoS?:ɩiAXz6_Ya.זƊk/Z;gjnE>sMCkMO! Q?:4d#EE"y8cHA( \9A!ՔSNIuɿ6YtĚU+\ Uد\ Mp;@s邸)Dv|8M3 <&)R16$0&E"'b b!.0$.?aR"06h}[w!]>hp/iCcQ 4/r#I1E"#~xpx4Ӧ^9U&ҧU_TԁWU}*RC#" P-(*$Chzɯ^3L0 ;lԾ ;*<#A 텅DshԶIFltn "sM&Q J(-8b{h i"n 07{22 .3#62a!"Tl2s(VfTQFq:ٽ,j) TLWՊQKA@+\V-t˭Tnu2U4WXfI&wׄ/z8"RmHg=-)Fo7*݇ ?ŚqHJbCn8y ȴJz 1(ڐT?VEˌM.B%6b<%S is׮ %CvQ`T yiKPTSf+R== A9?鿚p .r V&]0H>ͳ:i;t07DDufg9+Mu`5cN: Y-nM[ 9&6Gzc]o(G`sQ̽7 4rjHwd3"DE"E],2yڝ&@QBS|B3Fl(*ǡDH+z<>3$Be{f1Z7UҐ5=%7C \sc<} AF'P $GCmgbưȌ$hέYϲ t[{qNi#6.%A6,\!p. jxΒ`t@ $J-JbeC[&fZDxB1<-( bFRzI#eQLOA٠AO`bڽc)$Ѐ H&S3כM^R䔅1BI&ڄ?8;Y-Oz܊YL u;lNHGozAB EGV NkаGRVX0]0`5͖ȹ%tvV1K=hDY3HAʳ9+ˊń6%XS@"ݲRkTB"T;zQCiQv%YKj.w> {=iH,"~|V!$y`%oKa D*C:֖јXs@(u+2̹U|ӫ]5ᖖ Dj.ᑰ%:dҼL3j_CJ&d".B\ZbI[ u`rP>T-E-jQ#W6 NҸFd1J=jU-ꪀ6Sd8թv-@=ON ̪eTTVu/TU0J 6pKE~9*mjf;L]G$` x%V:K7673p=KX({@) qSk]? dS&Z'OA[7-@YisQ6cQݫҢyB:=RTeH'*յ|S&O%p~ꗻ/I+/xee0֒Hi22l`wUǭ#f kMfͳkL9!u"9H hiieB(v?oTVdF+wb&pe;] C9.7*ΎG٭x1~I @l?z>MدC|ټ!۹q <+TA5)x<2,͹R]9<$,{a !c'pn3g2|{;:)?B-{ , Y"{@-za̾sȵ$T,E|;F4KF v&qD)EndmtC=D$GKJxFQHLR*L3|Ǩ$GGP*QsRPKK&5(U[KM7aŮO,JN:|xBDB|BlOsIΘIF4Kh6Ź!`C+@r,{DmHJJC+ ĔJ#sђR\M@EsD~W}ՃH }ܼc, K KdЇFFc)-QGZ3V<@B?LxLnlQx8ۣQ WU= a>*EvW }RAwMmPi[J8ȇţm6'8B<ɐ,m,]]IKSP]ESk!@%  Y@ٞLٔuHm N$Dl6XeT"LJ1ܰffg.dAZ]__]~d]dm$`g}Q+QJF Vn``mM $=i`^9LK*KG Vav->KXM\aǵh\flN]U<;ξV翖!l(ݐg9l+g.nTvLĒPrM3kK}^^~c?^H\a#PWW&V>c`}2d_]~߭ZfZfPT>e3nRBWFLՊLn #Tj`_L>Mݼ_}B>_cua,ލ}8>?aVDX>]lD͆ɖ +gH|gǞ,+b|-b1cVm Kuԓ|ЦV;E l`r&᳌'g豞#T-~=d^MuLZdKi vǟn$ =nluG4*QBW9[%QХ9Khٴ/ Kf[ pnM\%p,uRu~ kؘtIA<ŒnFlI,@}~cDLlq]Mt/qqAJcqWw54fT#?vRwkQSvm$+kKmw-sm57<vVoT_нsUL"gsv-DP%fj3w߾U1 dJ(o;}Vx׸uydrrrtYџ(/v' m?IpTӮA(p 2lÈ'R?-r\hE +!xd )W48I(Ķ K鴉N@(lBLTQGjŲU(lXFҎ5+۴k]]# 52{380[Ȑg`^hbРG/ ѩS.z5ث[v4۬;1_Aw0;;O,bgN}XMݱz];[X=;5+VlY"mbj 6_9% * D C.QPmtɇqG$hbH+x!VdB( J>HKd 6 J `YVQU$HU{V]{]U~^zTX%wFG^~^1ė ]7?lvuc nשF7qc/ZmŦ(lVڤfmeUG_&$bVgtIƐ`}j]|E"fҚx᥹%^zn{YmeWX7Հy,6{1`Rh% TP%44H=EZQ#/C j4Q 2/C%{I"$RL- J9X OYL>QGBTQTA2{#{bf֖_ʥwkW~}' J]twJѬJtshst(R\j"5׎&g&`Iiojhĕfu&\J-DwyZwlnqT8KzGY8UKx-&d:JN:bE(sĈ7+;7X#&1lL$I7 PcRu!D(RV5UYvU}ჹ~z3:<39о4ִ4g>@@ 8X 5f5TTh0xRTC>x64nfB< O2 *i"3Cܴ^;0-J;}' tz02}@6RnUxCHХ.qD^kH:K^iCH;X*Bbo(GHDLzʔ(c%JP6H ;#ֳYB_ ,ꬔ[ M "!y;Ut~A@QD*5݀6%D[18CL_JN 4#Sy2*oMtz}jײ *aE{StB,E@nN OSw8ƴ.jWFp>%P @Kc"1hd"$˘BH:es4rJ&*|eXRYʭpV}s;ʳ̴hӉfukTp*,4`9zk5AIQl,ΈmӬ yIJM1`M6\,c9Vr~|wf©B@"o&OEKYZ%P'AybOG/.B|GR+< ةvWV_r]~48e"&_A*yC!BH'SJ%`Od$%*J:Z\6*yɫՙWZբ-mCX!mUV5TvͫZ:6fh\5SW3ͶnD1\GHZD0y 7f@^֕Q5`ɰeEB q{wð/qm"W ЁSM&|<9KpCd1Р#ޛh ###%]k!!iHrsiGQ" h{ϕPF!ϳX \5gi X^A%{aOYF`6mٝ>N++RE c01[ɠ!Š52`C@c[N5e5vD!c \^捥\R]#[I%:͞he=#-e>&= &2e&*@Z~Bdidi2C+xCk&=]\Flڦ-dpکAGjjC%xC9r.RAdAOv&u&@TB,C:eCb,၉%9&W 8.a#^e_֦5r -(^2c1 )&-nYVvij 'S#9y.CfhByVʽXB:&TQFirMRdzBdNH"pW f58toG$dLBb+d*k&kA:,䍦hAOBhgN'C$fjx^y6Dy'-ScCcrD.c{n(}& ~0Xb-eY%nm/tZ&([5.ĨǨRc[q`=嘬جefG"f፠Cl(4i>Fx!%hg$dfyfAhJNuf.&+dkMCgEP$GBC.\B|WuJ%HTqBG4b K(%M*%h陶i",QZ'wF+?,*L,nyg]Tg{Z*FjɢV'g%EC^h1%4l?@]6ϪeCB`jJ*VD*:-Jm*'gG}Z쵙h<]:kv'M(ƺmnkdv+Ofj6j!CP:H]\dEQmrwC!fҡAK#Kz&'6BB/%BܶAO-úu*'Bflښ-`fǂFĝR,}ɖˢNVbonB@%&3Jhv*2t¦\.2,FY "c_F/`j'ܮjq4rDN*kA0-ǚ[yblN+&,tjҤniiP++1^nW VK:o SiJ$FWhOlVk.O?AQCmyZ7kzqzq+#%G$ݡoo̦vUoBâX3Xb2"*"#%b2(n/"/'"b%]:pxJ0Ɇn*mjpsn/?. ¶..dEqC`+?)sD8TToFnqRRhsbnD!jXBӤ/d/. uV,v0d,B,rrz3x/*/+`1JS 4Lt~Eo_l'#!!GrCTr2&YwHsD#j5tEgl&2Ҵ۱%NW/`OrΛ]nBAJ73.RrRŖ(CNqB@un/)FpQ 5IpÓF6ﵐRE~kR/9- s;=3D\VlR5(AOD@C5o3GoCCtE51tbr%DcD{/-Դt$S#MOcH/D'44IK 4\>r]t' 7A'2uM%_u_!wono#{2}~rE^8DS;uCl6fK٦.=7dscKwCwW)Erz뿆B`.z넿 E!!.!2w86G6 G8#񊿳:dC`:ec13ŲzPls?yTAOĒ/yY9z3D_DLh_%[/RrM2?,:4?4BoC7pg&?wqW2oɗDt#$tt9l{}xqkS4/wD@ál-3?|[p ;:B2kH-A<-F\Կey\`TT#eŊdR'g`.-{!_/=t׍n =HӃbJժTr`:_ ۥN]p3SYݺl4">Th`V#E&ZllX&XOfgeeҌ1$I˧~D6tر!m0&߾Sߦ5ӳ=Ÿ&o 3p{75w&"v̓hOc M65Ѐo:;@8  BC4!&fbͤ"ɴXb 0 9ȘIl̑{ǁH) ʫb /+J #R'/չ$꠬"ͫ`c/+/:/Ϟ ϝdQeP-vܑX%2SF(eq C O3TI!T{+ #b v㍻#6kCξ䖳W欫N5 rgc 5E_D b;~-N ,,WC_J D' QD`R Z&I RH2)LtF5Qq ''zI寜|bۛ*tY8b5.eʇ"HH"$E'$0'+ӆsIXUstu9 WM+q?hQ:PZ,yJʩr;bUo2H6)*P p\WYiMb%>"VDdںyH!PeITPJ$W@kq 4{]Hb&4&plS.vQK>/ ծF vPNV]gkf@JUBd?%65{\(AMM{8.ǨTr %nԸ:E+B;h.w JW"*QcʕX=DqԩqâbG"UH+W\WjtZE@pJ' Eta~ʱu|,jYre0i?rYd.-UXeg;)> mU,T,{qv,=pЃ.”A9:Jr(-6۷ |(2EP9`#^B,Oy s@!tm,z݊p6͉9θ9չY+}tqԵxj3S?T֢tx-,x⣍vhmԦ9tDD?ЉD-L י+D6dgE0KIeP/J4,2@R?p`L&er4va_YeŢɐC 0iژ gkǝB1,q0aPZ;ST]U|6 mn4SOzX+Fj:sSR!^:ZwVM \ `ۛ.jQU;=9ڠ;w>k:G?z~D' nAx&U=ET֙"X=IzbUq0㦸 J, \y,hY~7s}HS$ /M Y/YQ !&ԟ[1> ̯,9(J'"\  \ o3ƃ?CA͢脭An؞NjdkH>kQN gN-vbp=Epj dp,$M*Ѯؒ,*|N>I^b. ӏ$ʟD "j+"Nĸ0"Le "(-ƠdJBCL+z"΢"Bh .dL.,N&.PB tB Whk@ /p c.L^ ,,Bo-*Pxp M:d#%xJ<^JӤc70[F]q ` Ff+![ hxcRjdל ~|q"%w1ϨbϦ0 ; =ά ?m,F LLڪL k T.bFi  b+ g',-vb'K*.KJH /k 5T0"LB8 Am0-/$夭 'jώ +R// B mN 12+KlYHDZ"Fp qt L+D"Cd*掑pyC aؖS9pv   //.;2.E/40 N. +s1pm4RLLWأ+u45O5OA^-MʹVͻ(h(QE9nī9{r;^p:H:RF0HG2&GFjs݆+ h2DA-\-Ȍ.,貾ɸ0@+٪͵.DgE1(-[ @1bl?R_PH{t/ A/TT&2IkSb'vbQK!3."u+is "5Nf_SOfg fSm d#;҈2}3*xeAZ6iO6[eu39&3TU$2$lsGuV+O B0%aWHj2)C2x 6+-Dh$L&lɠ[Gk@CGhIDgtߓ]v]%ׯ$uUw4H 8`Ը `7"y7xPa0" axb5Skc7w3TְB>dC"eSVs5w Z35]BQ~tOOM~gVOu` |Al g8㴁}fu@Ԃf5xOAx ^sZ´ 9?!`al'v#gXvdzUSFGVpEI=M unG/d@^l& Lzop,+,4+7M@b3ƮF1&.\k/ BDAtFAnM4KE_itGSv6. UUav 8!:xS!Zx.:b=b7CKwQpm:4({N5EM5ӗ}W } JO˃gvk6~GfOC mAlla ـ } yx B|f8X9Y?Wvb% jH{T$eQ.yEmrr]Yt]>XCxC+Z[ %&(Mff. qƉᘌXܪDKwg4S^u= u/_u tcάvc  ْx+9zqyp7L9#c]Q|gj+B}We=8gߔ~7~C+z xٚ [m|ۀ9⛽_st74+N}#b´]'L9qz0Gb "ٕ,in\"*zrQB΂})Ȳ*&9(p8\)X۵WT5YwFKQY4-u#Vl;Um: W9_[#B[ؒcC\!"L%|aL+_)B̷}tuZ~ߣ Z!‚!"cnڛma"۹e8ȉ\O4"HC|/  © s]q,hK\%[*)Y t)b*N0t[+7(& ޘHW\g/c]sV T5mG2Z$7v%v ֑S͒ \9/y\c;+GG­iٖ4Zgs rc-ò ";+gC[|#bN[SOB-Y^;1"vmwz]mV/Uu#V= ھcXgg0YZ?]ݵ{7 5\ԦޕkNY}:>7,wȥAX4!헞jL#k %?Nto 'N6L**Nh&ƍk2Ef"K^2%ݺlL\gN9/>VMҤذIhDNdS?fWV3̸Ɛh7JV) (zup`;Y8BĈ/~B)WNXsB5ѣ&-K܄+QٲҦ 4'n[g'ԑ?upyˣr~u%g>Qq\SwS9۶q1>mhavH!g N`Ab UDE] ZyVJ)IHu SN2OӌB5QKlbL̰z!RfhU4][j0,2}\N|"HiŅ!^v_s B$X cIXdPDN-g~NTi8L3' nwp 'rmaw EI7tDwv1狧;a]eTA'SNdi l:Db+*fA5T!Ej[n(Y"nR&dJ`RB-%DO#8ڋM2ɈcB8MC @& DƝ:W֛ieoT6O(biC^ETfn5ĐcF>He5 _Vl2[ݖ-3W-J \סiرGv9'ڤC˥6wjKBnNDn*~X>ͶZ& l==RR&ٵui!eM$fn!b9ѸW*%UL(B[JBQ{QXoPソ_D>"f PȒlL~''4N.6,1)P_3'{=\?6v7Ap}El7iI#P(ÑO&:EBt1B".DP=y&R a;aEgp[ݎ苻э8.txD(y+sp1d=!k]J 1\F36H{ԣR@318iAQP/)XjRSՐ{ m63\H"{H0-| $Zq]-%XaIn~1W ewK RVɼ O_׎X("0\' 4dqLcJ4j25b Ѹ@lKN@?KAS8j[ऒVH! Q챁 ]4POaU븧 D*q[E5tXm"tCzVD&£&\E7QJuႛ-7OjԧTLH5ZTjV֑yƶm;ɉD~F4jU6DG7>*du#- 3i4 5DV{(Bkн9k5*r}LJo+QD.F ԍw]5%,a*C]TSG"UuN|餭ى:嵭j&2A<2sǺ EP%MHbfѵeCoQ\N,L\K cQxģD>+ZiM&!&SDfl[ iOmUU7RB-A>CxF#A]\4.ZeR\THQmpbpi 4-\ u.N.|ј4!*z80}7z %5j3䮄j"ogJg5b\<)$m׈'"ƩS8 bWjNF/q\іwRg ֛ mk.k)IJpC"eL+bÊ$-K")9&sh54izz&4Ƕ$4Ѓݦэ:8lUQDZAآNȫGT0EL+Tc;!*J^掶эkҾHBN A>[JW'&ݽLo蠾=W+~'}k0sU~8<8]q45c~l⭓JTBhvHb()x $E$Ju,?Ts1$6e2TBZB!CL 4NL1Sˡg'qk6]/5Db?F~&vFmkڦQ?Fx0D_+X Tt7mkTG%SEX pk}7S 67S P7]w`EB6$o4{X$FU o+i_ 7]ViD)gPP`t5A8fdi!Ai6YG3A4(s4G# vnOh7}|sca8d8)b'fO 5 15a 03E6u1I)c.Vb%+')ge.H.Ss'..p̠.2r]IS&Iv1gteOgLs?^uUWǵ]D[ `?vC%],Hw-en2l6Xmv I`xx_unfmQ JBle FSv4z0uyG`'pi+чP Sy@ qP 2ISsD(r=y5FPXUPXE p8%v8V\fEHxiW}#bwU^ぁ*?iӀ BB>OL&3&8Nڢ- 0 &X!;*r%Ag;ěYXBIadCFG gZAQ5[T9 c[?*'&RGEփ._`fn05|JX& .`T ʒ % y:5R wjXC%:QGDSMG. AC"e 9uTTSRQ;YU+zW)`sH kŘfvYiTFejALA\e]}w cb[؁EuCUgDMZ#qA npWp [Hgh2Y!I@!IZrf@ қ%rp5TrlqTfPDc! ht2:CL LGhxciC\g5$PuBPvww`BȠ"IylQ6-Yv%yE6ZBZ:J7WZk|Q;a[_5amʐ k< @E;#T9n*6wST9n7i ۮqi_\OtuXЗ8%:-fP!Yuաo|2A\d4t t}!?@aB \9L! p:V0 qx{,!MI+x.2 ;Ź.䨫+.dolAZ2?~nf ݣL$ wuWY*Ab{ʭgByGj;xx&kJ5J.ɒb::[@ԛ;%4ۋڒm@ETόIR<N<:÷& P d=#aaD/4¾u0+^;k`7GGA_OkLvI E$oHz9Nѩ23Q+.Ū<ͩ&dvD(VQ݌l1.a \`MXZ¬UMreIDN 4пCӊ&Q-ӦE1MǖWaݲ-t+jXb,֚KWbD]tū^y˕X[*ݺ]"1kU,kx}7 ӣ8?ױ]Ö=;)#v{ϿqO!^r'Wn&b.A&7/\y:0uH4ӿӡ÷J?yrBhy7hd 9p ZD=#BEA+L07y 7|!qD\E*gGB=bĔP P~: ?҉P'#rbJ"Mg%Y2+AҦP3C2Zڌ컲.˚$΃df'9j셊^zqQ I!0tR*j?\qhS1:H>T`ȕ>0"%*}!6*RJiJ )Yj-򪬰*K" +R+20]D!L+ wU,J13 nyL#C8"?̵h^-kf84^N^{cNZMeܘx:蘂)HH C=أý;7xY:Xe(=GAN\ck;3VB|QEGt7lhn\B wT҉W q,Ci< ,\˛★ 2m =&țdu(wᬉ |wUA5%V J ŤOGUiԃ bN'핥VT-:T\5"6Z]U~\9 -%3j1'0'-ܥ+]i -oukZZ[pu-la ]\.p_11W afa{R/;DV  Ʀpl9)rsEܥvț-gCz(AjL#1i\[|Aw)EQg DlNmiT!F3IH2*l`7arA7"%"Đ,g8d)xC-iұ)%B'/Jқ!u 'E vezEQ̀I40oNO XS!|$ H=Q*UJ(?}1UE'WdD" (daVJUvիnL@jfp(rN<)OI2jQ+ ژ,l`SH B" ~ T [X'2]졸6B]"AB ]aNCIm"h*v1 #u4Koz\:NJJQ:5wޓ$;5.kn䠅1RJ̧ZE~#5IVp!Hz U,#v~dEv)z{YYBZ{̳B ÿYq ?>{ӿu̜2rM+5ֵ!x[~ ݣȨ9wRzN5؄7J060E-r:j@{8_{7}q ҅HYE8|9/R㴃7Lg)6H8B)-HHb78DB@N#GxQs`9; 4XK4>óXJZ+A/>X/:3WP,&Ļ0-p Q:91Y8F;EڋPc8C)K+ &IZ?]%3&*0W>XFy :oK"8X93 9K[ <\X3KVEWȼ;uz;o[G딯#f^>vԂ>lH3&+^FE$?â&EXRE\3T@; pTEɘٺɇ-6P P)IGh6'lyƒ8;PJ)A( @JpIKK*g؂N Z391T51A/xC8K ل a5~CSR\hk۲H.lSSʑ2tUL+?kCV.#CXS54:Q?4:/Y/Yӂ8.4I\*3#ă0E+>LO5`5kkf m"qރNў[l3NNA09QoyUA( 9Gd%95;G݋=3fY!Gm=Q񧑀dtF >k< iFEF)8HmG;.\UKP;XE5=e@# 3D9o49M95?23-H#XM[%9>Sp:5QDU!b2I H9#R$9-D70u[.[g k"j-`Aq`AЁOT99">S ; /BCW]K@EcCs9>.CT.8S"JSE{)=0Bx.֗L9R} .҆W ?U8Fq > (O K`>=6T9ȅͼSHVTX< MلI]Ia]SxB"U tUXh a7^Szmh'y:aݛȀ&9K9m@GLSVRƩ%%R5Q>6Ӿ3}28K"X8)ĥ[5jV [,@^[eX Qx62M5!bS;k3Z惰ÈQ+]X /pHt?BuAsnA)$@0 _1J 9CJc\3M;5ɜ!;o5.<:iߣC nQfT9xLS>;J@땅E3`-2fD TCH;FIcûh1;ɅփOX?}W9k=68XnXKڃ\XXj ѴE h78!bOzZZu4BT.IcB~㳠c?"T?{/ke0d3DcAKҳ"\"ZU#6;@[+%N8-GJ_/5ښ-I:-G-R-@PUNOZvӃX0R8G$+N؄}ZiJ6ͮepAN[7\ 5VRP=X4-PU5+p6zOrͶ9A4__KHNGҭ9}4M>csD,I`eGhIr>IJ5t?Bp w p_ ˆxIB\+\C6d\;ݗM.4$wZ,D3X6JيJ//p Ҝ "XyOS=o-لRq=öduO\%KV%˹_K ` 4!Q41Ed:sЕgURCeC&/סװFHuOYD\H@\txT4/pXݚSXlG#'jhTtt9FEA 2"ktiT3J:7E1aShyOf녻ֵ9@g<\tkUfu4+6IϽ;I.>9%.ҡN`ՋT JP?-K81Po#T?& IB,5k k~D#G5k$tј2 Rk";z)Tv* WSiT/^5h5#=wL*zP7L*m|Ii3͝67|qȿ ]eÆlgt`3s5k/AvN7kdWOʍfz;6o=J^ x(XB qz SLy?Sh/A?Xd\[=1y~^}+nFnC[pxO1\OT%t""*rK$쁊d M}$*H#rEi s$Tt,Ԅ?P+XXYMAW %ݰA+ *P%8V3'8y%iy8d Vj9Td%P!+OA]zyAbMBGp"ًA*9jRDz:P:PBvCjE(d#е\mug<H಑#SJ)EQ?1ڔԸ֨YxA39%`C-kGV\LOuni$\Z֬Ia'{aP2"UrLDmD>DXw{>@)vӳj+[lDl+ +@"yuE'!,JsG܂ȥAz]wFY?u핀[./VfݾTIBSTOD83K-Bms&kpH[ELɡAsF!'Aq'Wnlye]f.pzgX2h>o$fɑ+F{C_AJzFpRZ~G\*"ȯPQ̍?rk`:Y Ϩ.:E !/b 4-k#$Lq nMPBuA E/|eQ!.*PZe@aI\d/` QJT| j!v(J^9hp^5%LP̀MИ@DH t=IFB& 4HH( OtH antBJ2?'R:qz_y.iBaՐ h$*(g\iW@ĝ+t a8{ |^ƴ'!P6@c-@zXLCxֆ@dqDJ012E&4a#M@BZxr 6$$ k;('iB\QGdNOU --%jKx Llij@_l}.]1x!BiCX,|?<ǛOG0@P~TC< 0H\04T&Ǐ#h4 EDN^DlSX2l1 N!AO Bc>2D`ȁ ϯT2Ka [<_SLpH81]ǀ8A  _'ۼLːXbQPD |A))\?`gn@%mfU^U^ft|BPQ ƹ?`YYM0؆ml!EޅC5-ʼn.5|±qY2+ه@d~YG`ČQlDd bZ2D l Tď F#[?̞^%EލDZFbl jFfP% I:%A55 tAT@ ?)Y)Y)lPP X^(ee¢꩞LꞶ4fi4*[Kԅl&= mD 3 3ȡC%sGL ,@&GΤhpNQD ޛDhY.`zC]-cBFkhĞ2 zcFM@AdԧCdHb1űؗʪEE?l=N\lެ͂:%Fb8;91paU6![l'4pDUlE?0*+kj0D"B1[t`Hq!VX  a')W%{)AJ`b,D~֋)hFJq"nDxnd-?A.2f?o 82#s2;8F|?\yW[܅ _7/#yI&-q IXp@M_!-*9#BGquNiS4|+Q@-E-k|PE`H1J>FN~wTA)؊ƳB78_O %M4 ڴ_HJ:m"aITidd 0 /  rK#?|dLkqA01[Ց*\} $R^)$JIل{HL&Cb ē5$a(b jPr"#'̊Veʪw^*y7&^*,-9J8".rQC:93lxfG`ť0W 3CTsrX'ϊ B70z 8t-+顋 z߈hI GsB$:j :B&OB:+:)3R8UhfD0A̾ '|$/7ߌ3f>h&"צ_|K-(+O9{{HF7 pFyshl˨A GAbp{ʖRa9z#cM';F{EU !!Q!)R?H ';J楅x%e'JԉRzAz1l(f"dC(hPqRfaPۍ@oxy30y$XFMql _H$d~لj.$]Y e!@OiTK\" 3I@X9EC\xBZB݄=gA #FLtqrq-99e.$& 3ics"縊$ E՞Tx>%qOZ`ފ%ea cB@{۞-H[J![.xEhܨFQapܩ:t4$?F1UAU _`R$R:r6]MLh%A tv$ EH'`Qv92\AԵ8$7XKxt+b>y_gS5 RKؘBAӱYHfŌ,SM~6yMHHO\ 7Zpr5L:Ye4S7 Xn(/p HU# k<#f5(a tհlj@3Di8SqܜS5("(<ZbRt"?x#&7hl@@hf 1i90CrSBBIS;͔S84:.mFI9T"*U)( )$lt@ojDAކdf0u NTrq:nEFt^C#1~c3Fx\ j.aG%M'Cb5 *u'4kɚi|c܌G $(D缆Gx>zk+rJgv#vC2}P!<#^dEL5hhZɛD v&=N[`lGV Z13c;ECplnr6'(YX  S 4Վm!YcDe|j0|tXK|)2@zC8ZL9=f/$,bh[Uf/*C1LǬjz ʴr&SG; EZ:$sжVf3KdTGC:d4|$75dkaqLr4qG s]qOU.;zYPl45(uK" gL*M@j8JvFiS9KRj&(kQkj1%Fc=BHdI4dPɺ+cZ=tJrg"OKik=as&$TZOJ$K=5+j|X&J~vēw:HJ{Dj* ȖIN<*z?&byBŷ=O<:o~48~{,&C98UvVSe&` Dq^7ruvW#MVhC z Kh4KPߨߴ빈t5<6&iZ= (DN#DRYq3eOjiC`@54DQmg_YqpƠ"W{*ZN=0'1pC)x6>*wwMBywCX{eBQ=K;?R7tewR|@U`yr˽;BtId57UfF|ѐR̀h+h*CXIP/棿6UAo(B* ~7;ɋ횸5.qcPk5C(7TCE>j<>\p\ Atr;X8\t3xx\KPNdNG4_BrCmPc-UT0cƀ9Ӕ)TirJӥO/^RyyDLQJiӦ` _6|qE"#{tk!Rl~Ň56k_i% .bߗ iVvo [qPÁ[Vޏ*$\ʔGp+cvh?:۾k8ݺ7}|oٯ_Á`8h?"K,oW_[^ {c;2;,?O.$ {#?@B,%h?V%?va pAT Q 2.PBI)T?UH'HU`t.4 P#m C鄬q"mJ _֫%`ye<_'bhRy=A2X3&دA.j_Al:Ӧ1L?i,#c[ƪ2JjG`i7L`+ґ$wSR&X]Y9)\P[C!%pGJaRp*D)/D^R|젯 Akj!q6Y«qLl:1T`c>Gҳ٥f p>le9#,6aK],4b-8M:V8gh1KcBT5KDr659]OB# lbڲpI%ēAf mڏƸ1o \>ba F ue-T3l |Ԉ5 cq,9A fn BPQ' /*!AH:BVB@H (@YPfbnFLa"(d! yhJ&u)H+ZREdT$$&B@ KY(&pf7&Sr+D%H8*/,RAOrr*0Tk(搙3 @ %'oG"GoZ # qŢH@ 9C0B0_fx )*>hxT`>xj)rA=W WI1p}1T["(OKڍ^SJQBJE*ĸ[uI;̬|m!"\+F6OM"RR+qݗ-x ' voŃ=up=Bv r JJR Q r!҃ ϰ9m*G Z W_Mq86rO0`'C3ddFV@$GCrm~B)?KA0qx ܲSfy>PbDWcqR#K2F MwuDc_w;E@Pzpf;RL"o}S%b'NQ!zr#-1,twQTi*}-{'|'ɢ/D+D_ECS1y2C4t Q +w4/7QDv0-x43Z[D|?HE[|6Zjv!0wèE-FFh̨|.FjFfZAq}ӖTClQ(m amm`ÎTmt8U ֵҏ\K\7]S #OU+tpc(h_rBHB9RdxB,ydw`->,:ADd$f$@D6(.hdVN_!o9j^x |*1 TAvx&yiSA6 1?wB%PYa(d(g_hhb(b.t0!EgcYo||s7vUV|]IjiƚFF5yU4Q`| GFzhnFϡE6gaeUVGx4}755r#/y6Q6Ǖ!  P B8/6$ /1977*DVgo'C)A ;h F*kf'PТNe#uDS^ =w`Vm0 &7Q(f#@'L.O%&fg2`av2e|"#>)c Of:6Цmm#I"=k0* rRb  QYheb#PA5ؓB'A(=D"dۂ-= A/1Qaal;)V)Q|z|ZZ&WX(֚ҹHS4k[Wz{yi!ÊeQydmIA&iQ8\| 0b>J ץJ%/t#b %7Y"rQb'S'0^gAb|T "`gE ofCfUpPb VL+P=[tL*uE&ERzlvģ`-ijBT^P Ԁ ubk 7e&T%Zs4R1! LLcK_[8gRfʩO0%YRvlMВJL$I#mgy(DVbR̙w3QEP%kWz%]@OVV&|+&nFk ;휪Zٚxܭ\}YαVHCGz,E}YI GI]pJ%Md8Ww9&9a7v827y%P+RbBJLS A bШ˰ <+TI=ɣOC!\d&F@xM+n`aSMZ؃_ppp ؔ Q>6wtHBJa;|xڃ^Mr &Pv^Gɔ {f}ʢn ǒ)@_[5/nRJzRWcCz>ab'ݯiоJ.~ i➭  ,ὌyYwYϙhՉ46֧Fэu36cYY-@ q6!5~ 1=ԟ oagI p=`ZXm!CE?Z B^ >W<)LOWcPMZ_c- s^w因ٓTç!TAfrMAǂq jp$90;n%;@HB P,' 4PBh(j4,M B/}TGTRQN! (ZSFI2L5u hV2W[r؄ b@10Ҩ#>8%0]\b&^zi2܃0 (nE-֍k3z 7r\%j:(e!_[+/۠"翟gfHeѠ$qJ9C,G;'Sd(bT4p[afXHFB~$N:1x<=\ C#אNN9.$vB"bk6fN!z (N09$ˆ `N> ,1&N㻓0 L IIi#IJp@QK(@VT TQЧ$p!H  $<*%"!^}C, `ZВHk#ZiCnEORr! .YcVB'5U-U.80F*{t!x|KhGp{M+h2"3$@Nlx ph98ݦxg D3X&! u+Y8XTTa*t o8?̶ hmlkl˃rnq2 hi\玹x^PMxHwЧ5ſTJ77bhA35dTWtx@E*yq;S]6Pt;Ld2<%sB@tYqHRDsTJJ h}IhIx ߟpЧ:ԡwԠ *zEDKcDA[mhfVꕝ%)a/hIM&aZK‘%#!PrrLةՙX+Q5MrӾ4\lV$\˲e[HO/ݬY Fx`$/ w@RUY#3S-[5|c"/"~=G]XbTw߰Zu9!֓Umo}@8 Ml9_hA "nNH\Y !DÝb3r1OZnB_WXkрԉ3صy#6SƁg`j\ sLB3qz*2|&/1/=6z4+1L>9p^ p^ST)GsuVU49w*t4 GabhJP r$C,Y4\ɲH20a& FV\4Q7Ƙ\9qsPUH871: #x ([,_ؗ,`0&~zxE00&0X xsYB7<(уYÊ7A!ߨ%ۙ$TBb܈y;A' KB+7s#:"kIу6!Abz 1yk s0[+<*9k,@1 !;Py8RGthh,CK>d䪄j (# zNS+c # x5U[G" / 9"@xx㑉Cˊ<@g DT@hB@X0(_ 7 2\?<AhzR8z!ig8x*A/P$)6B!xx˞8 Jr1Y9NH1{JkB92 m!ɺ516le!'Q0^1${ҧ9/ #0|=6["8̰yq-;Eȃ*[D)E3N.XXPx\TEaA4[ R)ҳTIC(xGƅOJ!ƅ`B"LX +8P  @MP>Ȃ "8%] [`'" ܔ)l5xS'@8 L\X,p @1r7y\JV^H\=x $~j@6(5@h9bHH=0dxAX\#i9iAݍI0㷙A*\++ehQǀd#h#/,CWB7! 9?'M(L *0M:ID#֡}E0eUVy.8D̓P\ŕxCN.\Xq)D $*sφafܒF\b{BGnDPS-- H (銚骮ꒊ0Q =0X Hп˚`Ш#,ESQPSPbH 1=zїX= ˈ8BqوV-ڬ8XB¿)2:اbZ C@\;A)ӹ7`SShQ8aB"˱lSr8!$d;* /.ԮUO5 Ҭ! 1:)wR.Ƀ ŊI[eZЎ?@#^^-ߡ9&O}00k^k0xQX]BM8 hW\NtN(@ A!@ ^ kD!x@n}r BcX滈`Ђ 04#V*ɹ /+i*r)ۥk؄R%EhPo35)(P(,b 1* x]k*[Q:/Sٰ^qnM.a,X-)U[ zZ1FA% MX\ie4ފDhQ{CqԤsa&i1^A]9"a#6* O=xÐ Vx}çRk(əߙ,<%^Ma@;Ї;XVJ0J&9X`P^EV-nENX\lW<2u,ZCBXy Q *iL[)Xj4S#؋C ,y\# s{U 'UՀ9P)]e" X16QYVkq6D7ԃM[,Jt_hZ fsXP7XHl#KMľtыOe ^ ҍ &ym}S(vT k~TGR R)f:q6J]PSS^)tҮ(Ҍ5vƠ`DðhDl;loDtNguJjnmE-@RZȁȃEmΐuU3A;*E˩Kz!Hq wa&iE:?2P SᥓSBUz\^ B2(8BS lxj7o덼Ѣ o?#L(J?9 Qr╫] Ux ŬUG⵬]JW ո*;܍=>/xidVJ`AJ()Z@3sl[|rHb"AD\qbMj^6I&uy=ֽm_~;8pxh SII#b%IOz w0i8';;?ǧ GU%Z񔧟Zmd$<P{% ֺVQTZ 򏮚 ?aS=¯z8Y1UVu&f_C2ɇ`(FLb%6+TXkb[A`H#ՈpAGU(ۋyx̘B?q,5KR/Աb"6'I>qCQ -KYJ Qjdr{MjkdėCfE븦xx17P=Ո|0O͢7NA٢42,#m0)Ϸ5gx{^!3@C&4E FD*OyPu^JxW;oi'FeW0|e: ]cx-̞5x|@2F =tzkS ՐhSsLڮnP#%"kþv9|*`y1셈9!hZlٚg/aR4Q?VQ+V,~LKCZqjhz52I) vOrjMz  xitshHq*Pݤ)͗vĩf D|O#4mi M `7@s/pA M##XGG0z~ <=̡{a{z:J4.I mPaWv:[B<,I 72<}"OBs+czԣfG0n`CLe(?DsscU(1F$ؗ! uOkOkDׯ> `=>yCͷzq~3RS?A}|th`E9vqv\[Z?doQ ]A0CX΃H%ii ܿQmpT`+ћiRD A۴ ,F ~FhNkRm($1Gǥ ,Aȏ T渜uȆ)\#(-Pu- 3x~ѥ!‰lЍ+}tOȊd݂X hDdBFXC10ڑHԧE[]4KTT.>?.@nEA҄WXIMCXY貈ÌyhD fAg9, O9oYV]@0@'+vJNhD,<UL pJF`KrOL&@ Cz:%#IE"9{[{np s t l!='`t@rp%FĴV(0La(nD(Z!UtuIC`J0CdpqHIHɞ̉Hq_[Y]LƏ_6Џ)cՏF] 2읔 MA?ĉN4ISeLn ̂~LJ.aG,Ȃ/DH\3ysajr&$ n4Ksl Ɛams8z lc,FEo"\FZFD=4?thDBhTLPRgL4E?D[8Y/]020jD9"9TtJ3pBk~&ayxNlFDAOkl 8X ɜ?0@ ĸ_U(̅nF0Fl W/RUe'̨5J<ʣ3I\w M%^Sq)ߔ~ЏF#XJd \'J@:\ qb几)* z77Nl}]m#7ؔ2܋#Yڋ!`Ag\0ĥg<_p.\"/(>bɎh 7)ll96Ņ lхDD *P㤓Īƈrzr'*JxIʖJjI1Tr! y1砃.Ҽ4 찣?L)ɒZ2ʄ`'~r`FPI :z"4#2e((4#+I2)S jK>hi1t"Gt&b)*;l9Рg%A Bh*!q3 ¦*k2~'>{3P5E"@~yZqlC\| ֳA{j1:ӑQȎ唓u 1r'8ɁR!i2B\<3 MѹXP;GC(v>O:/b \ZGxHhJ/M#.#TCeTX%GZxf= |56üjRvgm2i kB[R*\D_"+ yaz5Fd,N1C@N4'5 FCE+J}:0"P$.1EKaC HEySsi,wH;|JN{HE Y9ͭNa)GZ4#!, f>]zD#y TRIvL]öVSyB9U\lZyഞD<Ԝt@< +ՓV=D&KjA GWy*b #{R vԂafbvEhBr,< Js!D\~J }9Vap)B%3mFNx Y{39I ԩHaYUɎu2?|ɵ!C~X;>̓AtO|VXѱk)Hbmү?QFS`AzP1bN$U/ ̪L L:4ͭԽY|$;LNj0Ǥu$*_.#b*-# 2Q,D) ZAu<خюW |(P8Au#J h=td3i^G2Up+' itVa* {&J!R\-iY6tH𮩓%CLHH"5$KY6QSG%yw |y#0DV)ykyYt]*XH0̥j O ! b/܂\ .@"/hd/r,0r, 1E* J2&ZW9Blg<,Lħ4/4=Oئ&&3͋wE232̎8!!` $+-_Ah րK21K 6PLmDJ$ m( %L8󊲷F$GFs %#sRI 0圔+Sq|NwNK3gp˜"M{V+̏eQکx"2#ď).%>a>l\ rB}\<0ChbA]/A"#b/u\ +(բz~3(Z_|*"#`'ˋ$t]'{z'=*542Gg"WK%)C3̤H+|/Ҩ4p ! 2L  OlvV L}G`NDKwfN7'QOvOGG"Jζvbj^BsQSgK{+R✺Q6oS5AB8O `tTfbRG)y*M,,EQ1mo1tuWX W!fJXkʡG>L:nBc.?ң梥fLb1\]%A "eAQ*^7#5^Cj_)')R1WXE" }Z&~2WH`JZeltyshK|~s-*O6HF8et h` Pg< (jC; TxJC8ƣ EPP-vT#Ыs4Ib$K JnobJjLr8o R<ǜR o@6h5]rU0`[Єz%B :_7 qt"Dאu%!pؐ?7߸KyxnUZf*e]* +2Hl.7ZNW\Xy]!R[e 嗧7z-2/W#A0(~x2 Ye"F)^ '$=T췈yBJvJ DDmWKzEw'3R!!doz$p6L<ʃ<&hZ#Gj JaaB΀B&GMw 6`w"֧rי+~oOuZ$WE,dW6}/61^Re$/#q$mw+kڞEk"GVMR87S7YtZ"x ԷKhtŁ0 S H.M0:J?UZy0u_"\{ml]*.x-[]zQ;{3W\CX"RB|Y`|fe`JŪTjeyB1;~S[sJJVZZsZ| 3QKFcEGRX8Ii= f&4pl^BF\1y#|\}Y=>◣\N\Xh[Y,VPޖ+" ܿ$zn;}U%|rXVPq*9C@<.{,u,uD꘮CCD)JͺaKuZRTr"\#^To oݝ:uugV}p+gv1zsxԑ:QV3%'ޞܐ1jsUG>Ǹ;oJ.* OѩйUԥ #9i,,? <a :xX⒊!X +V, `,pٰ$ x3g Q3JB`RI$x)#PZթҭIBeʚeڵԢ-mٶjp4_YƌgxLj y¿.)Ņ|kпAEOJ ]baAɑ nؚ9p` :|_6+u 35/pLY,8oYR$M!!$'_B| ?{N1T__WfU'l{b(_di5A$TA@z!>"Sue~Y`%`7ExR#%'`WFA (cK8J) 0J7K܈eL'eCf&T'IBmRFCEPy@%+q C E٤J;DP=%PTRG-!F?UMIeV"fu\dɷj c\^XpVrckjT`]`fm R|YíqqAlcv qA!l.dfGlȵ\ Huvj]vIdyY$xiG:p0~{2 !-߄Qxu׮F"~&T$Ȕ%(BxI7 C>#>G(% S7~ٵVb5[vɥ3K*t ԒHs7BDR%NI K\"i6a9PAU%S2*I:GXШ/U4~$VBl$%ɰZ2swsa[c[m6fLpknܺ-rAenS 56pb w75W},ڲer#1IbCxtiz6+nH d' LJ|V(TdRĚ,k]JDP%YAv򶐑$kB8:-"78D"~*IIHb6%L'cxB$T2]%Oi hG@攨Vh_BS]f1n.p YflK[ʥw!Vm"`KAf9LCҿ|_ !5C L p T?)(&'ca;1<@[LP)!|Y,,dC"lFYB(F!zt=yIeԴ? 4AlP $gE/$e 3%"IS熷DoJ'';) Ӝ0>m TQBFl;L8(e'#IHZ#+uڔl8O}=7DHz#2B#"dǢ4*L^f\"gSDŽVy3ڧt#[jkid&g`; 3=pq|;C0ci+r*b(gAskDY@@9О)C~SO!#PV&(pwR &^]4M heOФ(f1K$Zs^L&ş65#j3U}*qH8 $VJf@o?`9\D>"VѬqU5)TZidKnd̐)%RD5e2LffjW\Zɖ0*rwв;ܘ8`f0-e.19t|H:N-%lafs{/mjns2PFAHwarn`4% M-?PW&Y]LQŬTOIɮȻ$"l>mW:M(\ZR5N%2.CRKER 2㰚ԧbO!ArYc-;qFd G(b$N nV Bm4,$!jLg(XAOzewY;;UD%<.Ubc 1-V vڶ@Ѝn`dYE洱'Mݸ{ s*j\ti"+NF[jg- 0&ݭc'(W y?PSwwO|ѧw M 0oaw2lH,%:V"di}_A*JF@ȍ\dy8F-US^d)N/=%D\%!I&ZWq$#&2QW$D;;QwS9,fE5X%G !? dgba0'}9'#c(6UÍ'ʨD}HUމjDXZ؎o㙞ȝeYLp3t"*I?Se;u(*tt}?t\0?? N>\vw|%+@ dzyq L9!* u^71*2S2{ՕƆ+P_aP腤ƤQz^S Kd. \P@ o @U9[ wPX {ILv@Q#.R F#W"rHoSI!T1:'q@Fs;'&o\P7u8K8r8 [b AZhV*HEZycYY?P݉1Jh1f3+:֖m*UQxw݁48NQ?A\e7vN`Ă@3 ĖJ1P2†?.kNI],^1ek41̵ TOhl ljk{q wA{J.4:Upb*o@k+kg._=M+2GVW:.y%3d˫7qʨaժ[EvpVc'qG+&!a+8vDžC'A' K6ƹ!ac[F1VEʋl੺[T뺸ʝ%Va՝yC" Қ%#SF2"Y9.Y{,GYpzHygʵ= ̍+~a'!x q2/qhՐxG]^yvHz_y?n_%yI[2+ Vp&wX*PPb0-)zk0p"m*xF(g6^7je)^Ӳ_1\֕LÔ[Ч,RbZ o`"<`J Bm@ -1=[&w =<=_p -Pvfe)UQbQ6}"> ҊHa^c#Id#X%KM9@ǹUXpZ@ ǁ7xb hd]Gs7S6>ѹȿT髸ZnYp'Lׄ\\s5945HKfj lHz;{ ^Qڕ+;myQ:}t%J;xٌO+!8 Z qଐ71k'AUB1ȾQOUl>^ ]gpmƒ :9Z:%,Хw9=]Ƥ 5PvTa#> ?1_23#O:1J<4P2S7xZ*VBN/O]-d8(zcw}ebb)"1dZl`\ ڝ̝?l*E^fE`ta$x2Ʊp)51GzgHfHzϞ^{?P?u#2"AD$FA~Wx\N+Kj~4]OA1 D'czU2B>>,~.&Х7&3Ηz]3'hFۺB$uR"O,P$UL&Rc2&(ICzd*#h0>$x k~}8IKW0["(hk/`Z(ТaxeW!A BѤLy0<1ٗp`f; k6Zp1hqN.xD4(L"Jcj s#Lg Zp ? T5>IiU4 ʋ.H-&Jpk> j Ω轓H2i@ Su<@Y.80|KO&S)ێT$*:2{H; !ܐ& 4Ew5X;h„9+#H*>j;<-%">B+ـ@,7)i67xFxN#pKK*o vNeqvm4 o[mI5?S[U?[8<{?u휉 J&?N)rtPje@xȈ1#6ss9re3ĩ"aa$L2:BA~ ma &`DI:jX ;`!p{YRhؒѽJJa$ ʮ%]7-jOM p3SK4KKۑpٺ 8hhaiҳ)&7N 0%5d;m&ٙ=[pc3yY+ͽ78;ȁX >$`.I/iycܺUhiQU\WOOFNN\yI INV|?H0)J?eN S?/̗ݍZ^&e1x^Ai8&޿ =X2#P  &d^#V. =;!(`5Yœ )#\P qR8 nE '5AaT gˑ GO8JC-˱a[͜ nẝ&=-E݂޺]8q;[6 `E?jnC'7pj7PEXDeFTE(]eILWۻEt7_da=@/?f@ǨN8l(\Rcza 0 '"dz1#!Q2rB1{ r(@d91u9j} Pr.g#V٣P; 8 V g̡~ hRXNhFx7h`Q,Rx7p:Dix)yG0pbn^ZjfhZf%Zt_sb`b1%ⵢ.6_b61*dÝrUq 0 TwZ ؉XD{cFIWqݳ뷎AVrtu{\kܑ*Gl8wwL,:[u0]<! ?xU Gmq"s41)]K!#9+22Bmx5A/g݆W ⦉Z_&pMmcn[$@Iu3A\-Β~Z"[o=goy1hm4A[$Q{*=a.詀9pr75ÜPƜ7i;=6+7=&`j&d"j'gJc f^8~T'QYTT[96ͷu\BcMBG d5V飐#%^R:$`>0 @&o@rƹYF1kK("|pa"TBET@4BPEaH J%Jj 2RK[u*I;)jJe_IERTKdUO OlX|R F,OkaVe yU^֗]Fu`yU`H&?RoehEoY]%FjZk <@OLP&Ar  |M)Zp$rֹ@!"PcTw^]7)#mLKZMQB֝SazHL`?u=HT$GR1GvvHJf&pqUjURo)#'aiu&$ItIչ)xB6" R bLi$##yHMT@ILBm$zGV$'e3 T-5Pb򓡠ZQhQ ^\wUBLTBG?4Xڡ@i5q,d!2"lߤ0L( YRذ$5 2Qdt!M! plC 6<5SCC6gK`R PFJ:-\P갱 g&\`BW)#"LbA:@ɄP! )܅Cmʄ]\]\FLiY  ] b  A`P=?̘ \0LdNN1UƵ0i|C|ŖFЊm̉jYPU͌r|]%Y ްYUeQ^E whхvpa?`ё(adH8L00@(Ba` &rkL$I+Vݸi <ۛH WО`^﵀ )1' 1.cDC4p-,ҚDAs-G D0 ,8DD,ȟxi4۹sY=>HE~ĦQh @ Q5~ `Np`0)ŷď`pqV!gKGЙ4 c2Ș.P`%Bܜ=IE q Ka ^F틔OI VLȉjpN艞YU]\ʐ,5GUGYMYI1UQH4BXZIhMI$f1(^eLI`ڍV$$i.&IhԢlȦ͢5NRPU 2.'xB q"'('q'0#5ڔ ]InP- ;dW ICģBIwCA _zG E$D4KM`ө[(V0G(柲DAQp`(L$ppLop?dcd͠Pe%.?TIźܾTeI0B\0!WJX ˗ FEIET).jd(eÐA[FP#?TaMhQ `vGdCc-dWXI(jB@$N?dnb+ -++&4@*]^DLmԈ_44'rB JAٱ&r:gu^qaҚ$@X@WlO"Ȏv!:cpĊW4-JI8EEVLE ;(¹`Dp}JP c lalNh,f*lƎÆ}*ˋ*Ռ(^L  2TX½qOE%V6mkȚ@W]KT]  EV|\ىE~!M$yȠ^KU0x?B`D@d@f.Dc1Qbx"^]j2n&DB*:Mb,a &h@ h=隚I%}Vפk q(벶,܁*BBI5 5Z'e 怒7{IIxMJo{l{bʼӤpEގ?(׊*6D^hB5Xr9 =@&mNwZEʪq:|R~W>uGV3Gs;cysv3pr/^hV,0K GsR{ gED 8b;.D`$# ^ώJ{ŽK&HUdTKwqmᐴԸf8fLfWq(V7_uOĿ8A F8p!%`a>(Aʓ+ ZF0@)IN: j ÿ0`?:PLs„1{ڴ 1BcZa 혰ƇC.\[`/6$߆/p6# hFf! `j Z`f W{m۳s[p7>xي(.:NvteW'ȅ~yNwo$&c@&[1"eƎe.,D`;p@FܐHHH%a`bv䢼~ؑx,@2H$2ʂң:J*ꈑ'KDɋxj)Nr% ̧j(G> v (DiDѠ&Lóƀhc<›4SZ.+ @80v" (SiD 4-( }-[vm\߾=]z[bvۜ+69S.e:f< ^g듏PB!~oGR bL`\;$Oa$8dA, YH4CY~pZ1#yGZkv1$em$탲 )!36J-yJ`#8WS8lE&١Hj&@V0G[ $ %܁Y9KWxA~XmX/缋9*vEŕQ()O 8("I`= 73BAX}1P=EsBE6*چŌ !=Qf2L d8"2D0 SYBa0iQkڋ0ͨj[\j?f43mJpݔֶe !bJ)%TiJA$&DpSNr n% lF(IJ+Ahv#HWit2%p9&[["h`jPd҃8әyU=*WU,)zD"('5ْ'F 썺 @6?RɠPf s$z0Y` @B s@P#I sBYbav:>a6 Q!#ND dJ 35BYșɤʄ)$QAiB0KX:6Xʵ:q?IZ& 0f+]IIR %$Q4I8lqlf/ Z +UTK.'sC On)ϖreA|i Rv Dh4sU=xEX\YM1k^6Xn4fit%`};ˡo=./k^C9ߋj09Q.x(6' 缂[H*B>R')](\Do) NDPc\uU3 3VγnufƢwe,e!;ynO;vp|#uN-@`IA@/A : (%0v)aԤhEW Ӝ>(zLV\6áI,PFQSd9*AԘd53}@D\w'шI$VV&gLMG5G &q OS[47m)VȲ0(`Lp,Œ:IM/q4AD)@il]KDY(8J+ӯ4My8{PWFEYьU^ @V n{"dϙzl΄&4rG|& t[ ѣm @Bz@jP/ͩ |0 "D ;L |h^>`>JjntJC>&pŮcܨ2D LfhDCJx. '~$ 'ZEiN$^M>``^ڮNiIi҄lIm $ L62=x*(B&h"bT92k'DgNB&"z)Pl"OL'liZ1:b)DMԞCA fp s V6nV\vU`?X1.Kԩ4| b}۲C_e\إGk</jjx18>ޅ J7@SL> #.:(FJN6=C,F0;DDx$g$"*$gN|#; &SK@(HcƦnlP$t' 'uPlldF(' `^-'%v`Pb&`pd(HK)LV,%)^M(*Gw@n 2uJ)P&&vpiǵ0= 0OKq3P`;1M1DN60S>ƌ Շ,`XVHDFRN"=dCNNqB B&h| & lBPZivƒCB&"4 `6f*zĀv`~hlKlEI k((O.)*E "0 _ӎx"BJW 'bVRR/$ɘ9`Ge#.Ͷ%MD.!u(t=BR.󤖜V+D#*"S x.2V@,1;Y3nQKH34H|D5a T ܘ#(h7oTuJ?HDvHn5hܕha 5bDD"ˊ* r"J( %`Iv )T|1t3v`7~ % %(jF pdF}iR咤jF£PNϴd"|bM$`w$6讲NTJs&v*'o%W62+a/hB 0M'b+Lbk52k}"u".-2O)UhmVnI4oS/5$)Z"Y2A" wQHrd@sv>Zh~h<'4صA. vf_|Sr(ń CWA-)bZaS]y" :{5]=y+.w9q%r A }i'޴oNV2J9+qRXP}ׅ+>+gt"/.iKO'\B&Gc,Nz,ޗM.jV 4 ģZ"Jy{:b]r7}q+>^~%;>ޟ̡.x9,,w 1&4P!Ç A?'Mȑ"52L2dB#K \P_$0a 0dD> *H`#꿣H`aկb`(hEdE!v."2ۗn_\-$:B^YI[)`?=p6 &P`bEX@>kΠݰ`z@Ą>O-ЫAߋ7Y~4QWc1p|hQ##@Q<ES`&|` (C@?x,.((<"` 4E=hӍ;q(:ÇzĔ|8HxC}E*M7qwIfnFnPD2dSLLd1I& R]pU%iUGifQWvT^qj\V$_ C;[zupa)]rfb װ[`,yi4?t@g)ZYUfCblf Up)\?UȀo]tQ^te7vL Bu!է Mw? ^|9`C%kEL-× AKi! -hEXE+ >JmPE.P6xM*e]!WhPH4K@aZ 鄧 Ss;7w}R}_RJE/~ k@fVwgy^5_=ʯ[EaJ!`\r!*>A`թ]J^x2f.U%~ކ"E%vm%6:樝f[j+wYbUΧ#X9\g R\ H]HY(D LA22lC,d"&Zz֢"*"i*BXĢkCF$9)JO2Ҋ0%S>1V^ ӗ62G2E-"Lfr> hɞ%O HM&G%F~܉`(d[-')V"t3hW\j^Xfف.kUb;0ZCVQw\׫S\ɜ4g``&SAa"sQE_!B^e.K*K˹JԀ Sj G+x21Sas61aA&а >.@Rh4@"o8Õ1d@ a [RdC¡wh36!CVhĢhh.BQDA8Td|(ňEK"r2QA,5$x#-lxT2(MepZʐ?EIok H~kh#RQBU:;b9NHǛ3,?:+( Jj'+ {DlS V 0v*۾&zgJi.ֳ&.T_$l&/\AVrWܡ&MvSEMS7ciә~W{Bܰ/|~#Jl:Cs*W9)ZQ@ 'DT#`K3#шI)*USDI\p*6-`E 0ڒURi  V3oitR-C&:c؈QyvyN;ӎ6z9_\%+`veicbՃ\שXirꨰ NQvpJ^.9s*.Mj\'P< ju䀲8߯Ac e' `*XGg,f tp0waI`9tZ 42 ,?qn3D>浑'-GJ3QWXZ֖HsqJюL%!-!$B~NĬԛ_t$ jf:G]XfQ& eQ$us8Td= 4vEHuufW:qv%%~5$yUɂ.]:hU@#>iGq<%L.lvK*z'Xs`Juw|-w\lBfzb?io|gA>>k1Pc@?D>E_%Q5oR=MRtp'Nx\u6q7D qBB gCq( H"v3@b#@#9xhx%(JD3r/"c7fd!Is9W#ORf6RV6QVvr7qt$4`dC7ZHgAWgVq*SS.YpIa/%CXGTWv%`W`t ~C<Ys>i(">9ddzKd.ە?CyzKu1,Uw[+w5L]n/EP&]ۖ]mG..s|J(^^J%.w)Y ` qAo˸M t@%ppaw+Pp"8(C04C xc (؀i%R6#8#hs c%Js .sFb$왝,F(x%B't HsVaOTuffǡR3B;BBB2 $pq z`'LP-(1b@-KD8U:XPm=E;Y9Lw1sLx]EjNijLLnt)iwbIzdiщN\.W./FA/_7әd.e@_ #qa&^sMqgG-9\5CfV!j#RpZBC7hՙZHP9܉s*eةX'XF2٫#xV%9,%heqe!#w6uypZg-C:# "c#!d Юb*t]#0 ʯSp;Xc:(*b)vwI1"JQJP[u;cK&LCzK4jQ<[Ejq;[d)b?I0kawM/EPlPvm]q։j\sI˘!$JbV0A_#00_9A|M 4puŅR&q2թ۹!V*bKa4eV;۪+: eQFU A7{Rvg7_?TSz **B wq!'z:iм;ABF( (7£#LL%rNLruKwK;O9A4+/zU*Z]Ĵ!OSldV/w?çxjUS[P1B=d1(\&®5QW;MsmKtE72w1$!%Vwb6bM;#Vj{FT۪H#:]N8+%nt\AhK3/JBʭ~ p1`)Ю 2  p0 QKv<ڼ⼳jhJ1lݫwbO*dG)zpKs2y+Wj*iyLQjw:FZxg<0;c+pp;"5;=jji=̝\R)bwW(ǔI=Ŋ]8n.XYl.;nx`/ay3_-Z}/vmsmPdv`t,Ek í@ݶIP#!2$z}N,( ;Ń{ӒKҒN+x1FPfi6jdjRv{r$dv599X"κ} խ!b+!*ܻѻg-'մS`+ʢ:@*JSB OeQw ؙ=؃N΋]vy2;K}{;i̫5;y[(<U ]:YRmT*uȦ{$YxVntli19_l[UZAn7L(@qͶ<1>U]! Mt+* ت Nཞ(-f ޹jH0F!eNGst7xex2!>Tʭ *bb`»`B!]ݼ/B)Xh0JJц=Le[吧̙p;?XG;Nv!g;(kLm"ǍDl:\3/]#hY.RҥS-9hG1@>I,P/̚赍BQ̌w<1꩞<Q$qNکtO&bHNA~NH߶~%p!UJ7~xV?PIiDxqRR#CZM(joX Q L**)X<rY|wcOxVٱ3.t*6jty==Byhiw3zwa,X@B<\(@ t0dALN,/BMTi$8&92`Р9DPR 04'j|YA0h$ҾՐ$.Zh[dVp З căz@#-CYsf$= 8h@wg֨ 5ʱ_9G9rPCō粀?.$αĊ2K/A$h]|x4x>=wF~crs:;tH~:sI!@IA i#L0 @>BDVgU:l) I(R Ȁ]TBÛqG3 vѡv@7{ 4 "l)̩JDVa(=ljr騣(((#j!8ӴH &t!<'Sd2)ęjɱ*`):ફt<" rA &`UXt:B-0.] hXgCVRe 2:;-`3PRK 4ʠ63`Z"L6|m 븽c8. 8`#o[h#ZbRN|s'l:*]q'<0+(DvZu0Vx |5-@Xc c&衏zm/lɬ,4(IMmp=4jo6r+-:: η3 U l*H?$8a$>6A#?2I,f#Rp<퀂لxD=AQ&B#B %iY"2CDOHEe!^k%Jq%MnZ7i!lbRd!)x# [FD;%pʉGd2&NRG!]q*)s"I؉*'Y65؄,<*yr Dzcg>u+2eh=307.ܨ6$iLh"A8¡ҿ(B9 `Pa`%pM,zڱ= /01 jP u~DH! e* ,\V0B;DgxLB>r'PY)IMZpDydvcWT @ZLըP(Fu/hZiEEyTVF4"#+2Dx$BSѩG0!,KZDFP R񮯚@%e #ި XQkNfGYxK^]pI!KhK`V})߹ɮm jse592ACkޖ]7P8_.LXέN |2; > TA D!@ya)tct4#KoN{&G b&p"SJE)QiHBN#>bhɊ!O\L"\|!`ܮd! UjP]%y K)iS\GCGP7P~5!HJDj&xIK2D]gJJFɮO 2e KRV@!ϖle~qX-hG[ZB}s190:{\GDd\̯Jk*KnrN 0'\A;V0 9&b(G~p_W|1zSvz)^ o} 4 *tEI@u5J)jzV:n# 1PnS4'7e&&xj bht')>jmFԒ)G[|"SN6qBrQS=@U4^hr&F6O4j(HEȱLSͪQ̂雽dq>O%ºcg^mZ|Woץۆ6}:o'5ʗ0_?FSqv%`&(G.Ad7/mɘ|tm7-[R6GJ@%D1r4.{J&i0{XiGZ",Y"v3d5*qWzßfyxD$$""%G~ԍA9A7Tb:9(' 3ՙ( JfX̂[R~YEXc@: 8(qɭaB @HCK f :d$ Ļpһ`}IP5 (W+z  5/^л :/ BDhi2D60/&=&0Xӡ` C.!")Z : ʉ0(7?#3)7#j8 ᐒ)*S$P8&R+>W|X$A!ˢ Pq" [ DJYѿؤ-caA, əSI ّQ1̪ Htp c)a( \0AB۞_A-Jk&ma4Rݚ4mJ 5p~c~b.h ěBB]s, S)@!)QR"Q5-+ى"0C,ݼ,ԀPw 3)N oB@NOHڞ+Uez&Hag-Գ4lo:H\ϑ܋N3%Dx( ''Xs*I&588֞J/ -1D6fۨњS #Zd7#;00|Ũ!}ˇEYt'ھU&ZE1ACؓJ2)<ԁ Mܒy&‡}>U\"b2`+.cRyT۬Sل a9ZQ:,;zD@>[{T ξNR4S-K&hZ&4cm5p $\NK–$Lt ¯jmց혤4WKխVX d[ w+ Ӗ(6c.>bμ0D)"IKn|# (5&=YjEZEXL L%UR,(1]ED?( sE"LH)XWt"gF+8=QMV)mƤ::iA y6\X$!M-Ԙ:E(t[`[4@X4\ڢfЌF0 .`/bQIc'P (R B dѣ((kHP0)菡\qMDZP7kL/_I0;aD157X+LӛhjuDH:eA/y#s"Z؜%YtވE1P":e0;+&`(_DL6`g0_k[8[fm ǸT`r\369$akV؁4g3$dLHCm$H hHܸյ TN : l[+`\ͨaH큖dO2fA-P;[0saxܕd5 h-Acãõg//̠s e[C0?6s%T9d6՚PMD%)(QSTEx+?ٶP4-[^`]eE'BRKfL$#Rp+Y7\7i>S*'}lkfnxm^fĒ ss( F,Ē ē>%((:mV ~>V{YF &o]_j[`2frl Ґ Ԡ UHs:'^%0< 4xVh"<氨p8B8 M>D2TdQ^L>vFM^j"R׻QG4Q{EJWgfn+X^>~u;f,Z)'Q"ْkX˻>_lk׎mtFɚJ@%"$QΦt)E)5/߃r8j2h$(΀ E [_ljG8Ⱦ:u[}WM8iΔ&u-(>MNy K"5ᒌv(d` 2g_ 0/(^P eГQЬ$xG ?zɲ IP}x˩Ee8XrQ(WVVT6t,fr,RyEWl`18԰re֑IN˗oEQslzf/Ck&;9ut>yKv5pQLnn:`nE/Ph.Z-T|U t u&e|% Hںm c ֐iLzY cV5dp j/ .PU _ybRxp~WЀ&B/ Ռ$,뽀ݩ`(o4N$a+FdJK2Cuqe$઴`U1qYH8CdbK69n6ٔ*)OF[dC:K HdI+Q*I@e)36ų!dvنu@kvs (jɶGp 7pFwT7/tv]u1WZiݝ&xĶy_~WB}e7?H09$ > B`!:l" "l>DȠCtX́T`*I"lH,t͵4]@*tY̪֑2`J<[^D^2ً;L֘,9]T%A}[5ZAuaYGE54ՍN4( *D &iOdnW.T'$E: 7*QGFۅI~ : %ޘ=$5fY1AGf hƞv(R桷z읛 !ڽ=FM'0pC\'Nv0 ڣf>+ :>OНHd"{!"HF2l74MZѫ@H͡z5z E%*ϒh][iIfc$&VR %)JJJn%IKڊ@1&XE'pN9\A HPy"3E$]ܢdDDs]T`d#QԜZGQT`!vEZFS^y!.낉Ś dUd{ۻeeNz;&4 >.H5͸T3( ]ik_{i^qO;!=,4\ bX $lYDHd)t&dt1L=A~0 ??耿^-.x*"!lB A C"H:RC?ۤ-,KQڃȘEYjjSY5"F0N%('CZW˶6LoTR6:U65x8NYe9 ^5+2IJ\_mD(D%cJv*c7E9C.rȊ8)Hɬ/s<\լWB޴Vk0Qh 4=hzQ”[!>xZ;tJ<69w[ޖ!-M50g\ޠ6(R)m'VxQL(8BkDM# a7ꆗ:GkX*Lgʎ\)ynVe#H hR#j!+㞒PzMyʺ|kS蠳wV/m h )s7g-aa:Ё1z&Q:3Y{mf\{]NڹνNs7K¼!$6 oe@E}Lf{_ ~ ifv,{˽B&# ,QE зqHFݎ|-GoGv8 hKL]Ō 5@!˸L ilWFʴIlpTD@坄JZFe$Ia u؊Xؿ5X=IdU|Uԑ&H E䜦Td"0*҈PJ#Şt\Fbʞ̓A-ՒHeQ`*9=ZZ3͖/UiA8:U`BtMflf`zIakզРeS?u ޭx,]8D+J"tEeM@L@D H a! HAxJۀuJ1l^ Y|OI QXɴSHJ hO M[\PTXM՘YnlQk !( X *JBRVOę(_Sh_TPrRa&k`F`RK \l@ƍ``c`/G+&LjfxnIzz{HClF=uvnXW= e: uC:dML$BO` MM@n\$1Fia!{TLPEFJSa=N. SLԂT*kJє5b}uلɚ U iM'bE01X c*,Q"ZXLsފʭp1ue#RP cF lX#&]i}2u&l5hf54:C& ^)ƴz{Ci؋nF'tG!E*^-L$N_ua UVɠ!uay%}jŤJ*E刈S؋[MR>-QYb(UJ݀Ք@J+)b *f[=N12Q"Rfʚ&=QJЈEfF(]]Ai],173f=SiMc5PfC#? b鸕Cm2v qPD j8GUTՆL!H>0r 9FH$Jޔ 瀵[-g 국фdɡ ˪ ^,m(U \ 1]߶\z06l5+m.eʕan"GEhH1inJ]դƊ<'- /LB4swã9i] ޖ&:$&N$g,jJj2?\HAp ̎ݨAC$agg ц ,+mFӶ^L[mV$@зm^J ۢ'ld-g桤 j}6NH $ݒ^Cΰ4 ׿Y(TZt!^kz[Hp^EWa.Zjb̜XVqt8BHvΆ.L*kϓ1аt5z52o+)e#6Zl5o# Vi&Ɏ,!K2\H'\Ǽְ͒9x A1EHYk ͌Yw*bֲ^mSʬawR-A^-MVSm*NۂAHjŭdTcȥa7 -gCDlzam]nfR;DzrjЬXmArE[D2\Fb$-תfg E.{7ȾqTdcg0_mewT -6H!Ұ7r aධ|vF^XR}-&yylce e›UDI_r߮hef%cqs4[kw+r53,.& !ҼNqZyhU#iVzop!猵POk l֚ЕhIh д%_ x'/ưc]Ôz ;q&^;Yj^tuT rZ-}$DފO H{*ub6ᵹ鵡5ɤ4 (M 30gU?sQsH-+6lt%%-0.%ܹbP9P)I <\7W (MQJGsB AquװiN#rщ&!u%t5hl{c@&&8ĩkGyЏK&Pw'dȘXk;E*F*Z'ؾېC}Ґ UanGp~T`OMj!mz8Ȑ 2^|u7ǞJDo|9˸s<\JX(^_gbR@M%6\%Y/k>1--ΟɗIUD ͭ,E^E+.!@`@ v$ځ%´!& 1ih0I+:ZCB'MttS&͘1eֹrRI'ȲUEKDI#NZo?&UPe<,JgRD;߁ >qVp]s;;]m=\>])t'$ɳ':%L!$hHi$@%G*jBo%&-T}kD'V 3"R--Y!r 4fmLTK[35)TC+6|6x]̵h8S!V`l2 [\ް 4Y~@ 88>=+ P6n8> oBs(p,F WqC q$r s O!1wԲK+1P󟭿dK1$NȢ('rH#F9*J::2G'!o:~"CI'BC@ ΎgV(ERwIVt+NJMܽV60ū`%ؽ a?׼\$[,Usa;^ M]`r 66.:tY.zce7ۆ -a2-n3ÍZ] ;+SOߘI<re&xS@4B0{R~t kz4HC܁24 NE%̐?C&Lk_Z ql[A֖M PNY(+ݢŠ M)IBLTqB BK(*Q#x%,uKe䴪UJ`5j=/D \bU縦vL_5G>Y]\k]<ޅXM+_f=Ӽx ;U|MG^5yXcᏘ: M@CL%@l>ی0(= P6Gv'B(BLC0w# EFKXP6@P@ k\׺d2I_GO@ԡA4ƍ8щ((*OR0v!iӚ$h`(%݈C)jT@7*Q Q[-AF2Z ؈ZKjc$exkp+ȘRBЕ;۴FV_%ukzmk0U:aij2v{+wUDdv1Y>:[E zihĠB aцFB !d?,~i0A10F=ti ]DC))m!uo tU+)+F2 3,k?BÆimR4"]!J=SaMВ?d xKiD%eW]r9~nK%6|Ə(*.}b5F[n։044F%Q+ ˨`@8.q#A$1!a"h_Wr%sE !x!Ku_x";Qʼn$=J+JNX*ԉw 0;̶ d I!Ć_b䗲SZ|ic.iVG8"ff m`k!ΆצKnH?N&ji, H-T@JJvJhp֤(h(< $\ʣqdjЩ(ed* dMT$'F^zÛcT˛ʛ8Uzg2~ê/`bv|e #7*5N#5Jc{."+7L0e|x7EL9 ʒ-'͐$ʏփ@H88F} coD̢n2ɚlHH.b*MPՄq*0뺆æ$d$ԞDJ(B &[Pͱ,JZP0 5buqHO rh dʼ,؈Τ Ȫ,_fIG@z.v%UŒB:N:j4P:W{@ C{^ì%3gT2lx>ʖ~.tN;^AzCb*gIdXFB J / fxÒGn 8eXwݴeL,vR{c*Փ.襭lRj Pc[L* =ƣF#r2ka1LLUc1#A dAc 0H.pЀ+kEhsjqiKL$Um%$ k>1 0O:BzPQ(JMlnT7e4u!8{sn7s8pjB.tE9_1eN =@-UØB2po.8Ev`G9~%ؓ6|džR}#e|l>ͦLZG{)g`}T4jÕ}4@ё_2ATbDAU=0TUM3-k u7* HPc k( Z+lrh= ̮k,1%ZGKI$MDb%LѼ4m´ qLT Lh:|Cb3Va=TUU1"$1E'*CvC8b2"IVVI8S#=/z(C|⊪_قT ;GMu5HzvUdUWb>r4[^q-uuBcd<#A,ZU$)/mZ[YC?oK\C3 HkGHޮH]H܎bJF-t_oל Y#k+s`!w`͔ v"]2VgC1"'}6 $C?PH V!1VP::Z%{yY8|z]SU|:?i ?T8NQǚPj_ԯtIB2^x(6YUHDC<-c?*qB[n=XpcuTՊt Zt(7^t֞І"EQѩ47LևQLi͇U74!Mth6TTЌ8PO&Vѡb"W-'5h݌ 8Pu4r/bI<ԅ[jE~GW|R#iw bȉ:^,o1BEHmhLЈ1?2 3vBJX(n Gզ N~pԼk%+fXvLôsۨ E`B GWvS`Q7s87 t _7oۊT, +>cF,4J'b3淡)6-P,& ?^L%Ԋ=;yp9ܗ\>997, tC@bf5nQ2XU N%x4SWZ-G$۱m[0%m$~ЧkbJI5I s9Jo0M 62!Ur  CǯEv)یz<0XGxG]xC8X%Xxz;NXeí:=%G_cv|KSE;"c8E6\y#qI`R[ c(, ѣBϺ'R=aB #Vn-i[sҀͅ=M3Q4U?HoËSH]0qԻصN`\ꩺKQKEsk-ڈ6 /MtrT?@9v 69}#0ӽ/- 8TQ!(Ve3 DM[ 6u`z27z nTץz~*5j'}鸻h;)ƹ6|ucg <}zI4, zY"o=f p4՛_x"4zIIѫmSn v`u6u=܈ԝ"[5Cb)W0kUN㭺/\hɐ2~gEVUhMIz3*%_Uy~8fC'~˜'WRS3ٺu: 7*ԀP/2<[q,I]Iؾl43m:y.ԕT 1! AWnxKqu}^e}72tZ+YTw!suwO3O2n߲"[yu{7f;}#yU/^U}8U]p0_$9A C|ڂ1lg1T mU~pZk}n8ҥ3QLrPk~Y L\ԮqIu6zÈnXWý8>L#8V'[:DnOd6zZ'#)4h0tcgjh1nWNr3U7_0nl;A ! ("C=H!Ê;z28Z$pdH<3˖4#0(P@z@CgP >1YS`P5VX{*0h (+_*/\XJؕviЀAݿ cw/$%8 bNj#NBȑ!_^ Y߿=~\Z2ШW.!?MBuM*+`գ 4_Uw` (N7!;q _ƒ c{W8pFp0d1VpuWq  0)S8уNQKIPU!nHJ*-t+TBڄW:@AztRBEt>8Tc;,UZk-V:iPT?A[ YZweٓSVE^[ z uSvgfCkEaa%VdIyXdEFdٞ'khS ea"Gx'AbT &uԑ*gox}Bvna*M! [K7m:b&kImH)G~F롦њnjV#Y:}O8FCcRZS-O]qU]qp\Mr[t>eZu4UfaV`(tMvegd1ʠ~.Fe4|Y i>&"uJ&WܨNMh??d? T@a-2+*|%;EǷǐvamCv7s1D@ͅ8nnnbJ,}#}4U`@@Ka;˾dS/`qYUZYWXǰRmõC<[R6-b &`l1AT=$kYn&~롉<2:y?RMF29(LhuS\Ɣఊ3b@abǭ.,_Z]@=gJ D!}QS_Tlfz>!9TLMhTA@q(b>r7 AƣOJ:ZȲqD@k$QPSD%Qb~H$%㪅Dq$3!_CUREHO- bj!;`UJũŚɟ$xuQ9wUuQR^mstصו u8LNd@sfDH"{";*2@#!,*CP젠/0ɮb{(D$pHKXWu-*pG4}J.D̔ qocUQY0fL$D-$3{jE"͓"z"Y$탎s6ՉWCPï%`*(5DX-^C"Ӯ-d NR#>k耊yOYF8ܒ0A6k^#Tf /z6sC&QsdQ'X3𵰾9aXuiζ;]$aBÖ햒-_QUxw!w-{]%$3S' #OݹL^#Qs^b&3`̑t Pmj6EGa jb[uBs`PWuC&pn9sFVqD$^:$9\t-0,~΍nm9~sG%is4^\"^2ZҝUe^Pq5rs\P]B~D{$ZvS]ӲktgUEm)Æ\*t![FReIsQZ44^iw4:ƼF){jpX&qmlP9" Th#O[z%K0Te#PfW-JN3C".IwHbNxTuGZ ߜ_oydj$.([:[ Iށa˴@[K+t把e{Ɠ|x~ ɠ I )D{/;_ύ  8:;BL}|]8^ STlЉSu6"gGNY#$3b8lqmQB2$^fa65Fa2b@Qk)"N""UvNVdcy!Zs]C D/G_JnFYz[f{j #K8f %$;RiQqrU||J"g177",WO<$ zvsHd!;H>Iy~IGtatp~iioYDl$b4L'Aa%N !WHa?aX P6m*wՁ38NiCeBx@"@&V|Ny]~ $Nj{, 0zͧ [,wnn kLo  ?Ղ~ךn8!kM|ᣜ")~ᇬ~n ٔm(\:M݊,䬎ϲ \_}s,y~Y}>՜Z]g* ,܀ռynt1pI}]Gѣ˥ot @Ӭ~h굼=ޞ/"/n@ _o ^>Tm~ n]1 cny;Bc֎"w~g{ϧ0 !,fEH3 5%-(D082&G5AXAJ4gHQ& 0J:JT9C3U=G8 0 WVQ=J,A xQU! `FO>1<9/:kNWؼȬ! Ĵ+ ڸhKThD3>[TO9F δaW\CKUVH6EӪJ"hY\>D׆WuJT7=yc,֡eYd?V&vaeYU`CIT56鼤~[_uJIE&"ʞiUrMQV/$̪mLOrc=?yW]^;)6БٺI8HsXS̓i~ViV򹌭n_uSLJ-*,j؄_vWݛɇdlVL4;V?OxDM7BۉflKmHHɗxE՝yih=qPX˪rzaxPNdc9vܕeܦ}xwƮɊªCe_@,6҆i͵vT][9=aTŗ{sbbDVa\Ӥꮂb_k]RNFwITVJe3#]j_\B~\ܛYIho[rcO݂M^ƀiJnDΣhݎnvvC5nd܍]oT[Ԗkщ_հu:%L7Ü@&&T6ܭfm8qoID-{~LFކVƮLBP7ѪߵQQQXҞiiiGGGttt\\\+2<}}}YXnK^]?AadC9l  Ȣ*\ȰÇ#JHŋ3jȱǏ CIɌS\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXYʵׯ`ÊK,T~+Ѿ_'dYS>0Rg-@ dKy'S}3GKbL!P߂,xӃ0>8S25Pu!FRhג<(DiH&L6餓@a2 #:])b}DG@;\r?D$;JK~@N~ު )S|Y- @Ϛ>}N/@J!+shJ=RP@Bva7xK+rϠ܎;+{V?wUGkNOK(>?1|}Z;ջԎwE+>< |{%N'X[Ǵ]dj_(J>> d7={X2=`CQ~j %-xD,&wxQR>+G B`-)# R| gxTp% Q@DFMI5$q!EqUB`V⺬(1Vq((H" mƖTrH_Gq 죱ҥB:ōL"H0񑐌$'IJF̤&7Nz (GIRL*WV򕰌,gIZ̥.w^ĥk)bL&2f2Ό&4)jR&6nr '8)rL':שv6Iz̧>~ @JЂMBІ:D'JQY,FGF7z iGAҒT!0JϑsሩLgJӚLSc iJSjM)jQS6:TñRR,=)JծzT hX cF҄pk\!WDxͫ^׾?K D2E[ؔ a%{H_̂*qiJ\R㪨]*TZoJelҖ;)O;ķn=ٌTU fךHt F6v%a{aK,+7 p z6morE[ђ//~>u.@L X%[K#LFo?a yϋV&@TlWԵ%u b;c7Ʊ@nc\r]"ŲeqPIJް߫aF,oh Z"x%=Q;(&Ge6òlW[TV3Awj=JKWAtyW@7JIuYBI< uc8%n ^#7ч fGd$z59gĥ?=J*<*cH_b0xη3| KorlewM7[[4Y,WD?ѩK^\K%K}:{QrNc[oy%h)3Ϥi8+>mK_Rr}VXg SB8IWiI$Ci/`#uac-nWud _{]J Jxr} 2^*غD~ Kq.P~5K ^޵vtc>hS/tNDzL>{FXwLX3eܖ$岮5pNvſlfiIslYxܙY^yewIӺxnsyx<1}3 ݥ߻16b(]Xxzz11euu'q[t`0fv`_|l'vHlw|/|0|65f,`T"p7_vFq"_ER6}[{weFmI8xWnh'o  WWh҅y1&6Lq)at%dFdXYq:a[h~ hLfr G =_t7]'ZhgEvag-vG2;Q?clXTp_7}f}\ uUfx`EhuTUYvo,i&wjcx8ц%%z<1Fxs*axXpe*Qg{V&-A{^G{R;%?%` )AG55=Q?)/؂@w8;XT:h_^yV2g{׋}Gx)G@K(^X`ThX%Cٓ^8jx8a29E':H2&88>]Yscnf}I}!]%qR\׃E{5ZZ1-7ifli+8s)8|y)|*v8X&7kgow08nahduo`X/&j_8)L&LFi357YJƝ?i`bax}UEhku%yf9l ((@񳠚hי.fFNa}_9)fw>胳y\vD(xnn`7ĸQ:X(Y63!ZSViG/i)apd9n1jaelIXɒw6flzF \'pz &F|9 ꠕyy|ډ1?x* ʡ=H *Qzwiɖ5)Tǩg-Vd ]C 4~]INv~TxYUj\F mn=Qقw|h{* ډ J lgXʵZ˭}v6Z G{H~'D(/i/ظjen;(XC)7ړEY$KJsղŊX)q<z9;78>ٕ {p\[(2Ah*)sK.qT g; ɘ֠n9|pȨQ}는8~{Hk;Qx{{eʸ|HZ謸+XG&+YhIZ̙M1ظno eK=y=+:%}[Q82kסuu;x5Q?ګlyZ?jLL%=y}˦SۼS+ 뢹ًܬ9qǦF|A\KLלoiC'ޘU)V뜠ͺ{xƘ)LnB uMH6̼쉴R+A<9{n*a1 X Pirۂ\I ;''Lɼ<z,. ܪX\W/ `1Fɸ_I;XLЖ>,\||Qۿp,;,`eL ll6z*`Uifˆo{4ŃɯDr5)ۚ\IظjnAp`>->?_!#Έ L=Q TOeo<]}s~ 4"y{޽OŎV !\Z;'90?? r}ΖhCO~Q?Vc(imº茬7Ѹw͈;|nލG!.O./^.! O*}͑/9@؋J!@ 3@@<QĈG9Bqō/zߟ$A?*RH jز$j#N/HMqUju"SK(SQ/"sʕ#A9T/rގ1KQ"B*ƌA:"bq 84d FiOo'fOy`9@-@ę tPa&|i>2BdjTi -= lŵ+:U-3 Ce$J褼h~Ed<QDE фN iGz]㜺L %&=sfHYJ-L4W~=Ȇȷ<ʁG+tN*\dP :CAr4Oj<8t!PZKI,,mPԠa2J=՗PV@Qub*[yu , =ʐ;%t#N.X;eDt \]庍LcoBzrɁes"T顜xWa.<ȚHZ9EW!9-, JOs6f*@.qZ^h&Ɉg(m/[%CHP΋E.1s$鈈!RdAsGZR L\2鴸E. vLi #Sln<#A#b#5#["#EHQ:w彁XfsHlYJ=)$E3mr=q6)ȯ?_QUHj `, 5DR@)JVz+xU:թΒL-IJhEg[5s-m#J%l 9QvC)DplN!v rNAO8tsjPC%1!9]D#:-CE"0/uJ_,Sm¯5x c4r;AGQd~UbdJ֚|jWU#JRl9zd~pKնƅʗZH]Eu@L1M_vvI[h"'h,a7[;YLkϓݓp2H ʱ{=KW[ܭWJr+QRȕ/Nvrfln_ qN1:ww,wK@Q+e*eS%j\ j00f𵚊ʧ$+`uQ|j`0N1ܔvؗ[su]R5&J;E$&̗u+ֱ,[=HQegtY3C3P8-g mm@vs]BT%87Γ"<  \=!-h37Mػ1p>#B@sՃ"%YT3K _QQrYK{OUŨ1Ϻd A\paDvSi ֵ֟>|՚{bL|8 "k"RMx#(K,Sw3r-ܵ'5wPΦUW#vXm?gyk,|9ZΔGs;*҈/t#o뛾jZ՟~WW5(+w:s#,(+"(#4øҸr3r-,콏B-x"{.+G{3)Ik a4-"àAKk[*@˓/>"//cD[K3;^S%16Ӛc3;^3@ 6g  ^; 66SĪ+(* Rz4ɐד=yFDFCF#ɡk El,rDG <"^DN Wa[ZR?3;4J mr;16?j 5 :K4*Ftb,gfDF$DD!?ܴ>(?!T(:C8[= L5(5<L@1,1 CрȉL 7 :$:4 >܌FݔAA< +p8DKʋ$?Id?`$?{EĜ,ZO?[9;ULOa _\!&@:Ny?VDsT ƻ>S K4@lh̾lƓF Ǟíף>Cu|Btt%Gz"y d5Gɔeہۆ*e}ۍ(Q Q2=ڳG@[u%[%M(w+*}Z]@$N.SX&X,FD%НYU]vٜ, KTABSJ]ݓeTߥ@.b.Pޮ@O4UNW I:]Sڧ{X S0D5|Pun~jP=uy\eQ)LR8ߊ  .31Rcrd4R$}Dwzn_~ca;6}a Oac]:5ٜm3b<13G-EeOf]!gh0?U2;}zNN}^^EIDȞn<.jӥNj&Ә}faYOWc~DbX]oHoNtOcgkNVR} >Snpan8>V Dl__ n٩~ߦQ6ծ,eӬĽV/~e8hG&᧝΂jeb^1GoF惘iNݯ>|C=O)kancح3S?FS|CoaWrAh' [Nz.rӦ ֻ\_`*֓Qr#Ed *A[ggvcՌvɜG%Vjj@=Gvl rv^l?*ˋ,=p]ň.оdt p petP9)FI(\G+ G G&d0!t0-}hLeP$O*F 5%fV9UNAH:*uf%!Cm )]z1t\qe1ce[\hiI^ vݗ|ePCV,2֘%YfP@֑jt.}xEt? s5:pQXTiZԥEwqe{đKz.t*B:|`'b\97`Q"s$ IIP)զGG"fa!z[l!kSBħ* ӻjehR%| ]Iw{Iyg9L\)a_}Ue dg=,RBF'yMj=D/ofm`Gpn\5kqj$i窪^WTuwJ-Шgߧk#m-4q6yOHa#-ϰM'M7ѻ+ U 18cQ$S1ދ;Xg(I ~ħiRBX HR50f5act*+_+\9-4ZO۫ZA.ϕ/ AAw tQS{u.z@T n}Fmօ'r+IWP%Y3Y墲+MA :eHbq))/dè!X,&%1bPb*o 6eqz^W$e0z9D#)H\}ԁ_ܺҶ8iđC(@'<dHƣW;#GY=s4m8I}g$ Rl${T`dlNfcMq3e*7).<8P:ErtU1lץunq!?PIw]7MD}c 茣.:21s Ok(ֿ]٫-X]^YXs/'v}-`!.+f{" A{Xg :5yZls!/&s`$Rx!Ŧs, T)JN LzlB>E*w $ ,u{ ] Glh`8cgj8ϭu@khtZuCb`/2؁$G~OLKtq?%+u y1. ngUeeQݢ`C VׇjzW:Z ? >}W (YRm'2 d<P}nXZЂ>v,suKucJ*E>`5ꃿyĮʫց:tpQPOq}~1a/`~}7J)3R@ >ϲԃӿ裿؞ԮzP;w~f4E#H1nkcX 7!e_<9͐A[-DqRܑyhRDqA[ۤ-IrFiUӭ @ O591C ˜mޜ^I^1iHZޡbQCux!eqŎ!\!^[FaXa aA `!?ü]G)__'OB< D?(oxRQ<`rGqRNQrI%QR)G1[)!r O_ wUcѩߛ͠Y !e^9.a?^be\ڣ< ^^a\ccY_Ĺ-XD#F1?9X]8>Yq]^Y[ J #  RbQHP"OF!^ D &}.ޏ=Rz4'ɝ%ݥ"9pAIsi.JXt 1~} 5C)ABD3 46#?eW"| C8*J8dIb6\~1Vރ?4C3x^##j>z&Bv@f`Sl&Ł^0@|IvfƭNE9rc ]9]T5MM a& N"C8OvEzvE\e]R6R&TBMnnUQyGyR)"Z0hŏ25B#5%q\h[ 6`V#xb Rcv_bhfE&3Dfd\ecu6ωf}D3ihh^&)홦^?Z)dQ!@ lvfoEq*\Aՙa:bIu WY9u?X5aj'6 jx"x"6" gQH@ $%"i"}Q*.-yʫH hV[`bLW9H*Z01*%Q*#}(_A\2+"(RjvaC!:# bR5aitu62fN5kiF"L-d>)kNaRiiڣd\f\,^F6eW~ѵjYY5.#aڨ6gR _PjQ|Y~AMWv%-* +ʝQWv>M(%Y NZ^ A.c0k1%]6"óbQI㊪xz B*.d"k2,ݑ.khRhB2i:aV? BA >ځNJD-t$C"ģlu&E=5bl+2VNbJBp>k~2嶫E^蠶슒'EcO4J?u$^ k`7-sbW *oxlCMieԦ(2H$@j]%.D1@o#₴ 60`zk!*27H CJh2hl&gc~nYxAgfMr,Ǯ1sx?̭\/uC< uyQv193rKȊ'1@@?q8@8`A󱐠y9`.&lP`F3zIcG1X_x,/o+^aGPs|Hi{L/%0Zn$2H3$78Ec@C33h#d fTQHiudLQ#=[5}MqK7ce^qf#l+ ^q"H*UlKb6d##4)HʯՓ\,ufGMpIЇD&1 >saFdZ+ym$GX.E0|}p6$|B!W~U aJ,3[  QK)PrҠ: 2T3, L3GITLkFmT4st'֔9).#{t 4d{R_ZW%t.YJϓk&-ɴ՟S `v\*iYvW!σMj-o9Vbd [7®/GD#}kD׺ dZk0Vl-l-ʬIZ Wtz9\:#K oPe Y7^Eg?6JH(e-MsA ԁ0;I R[@&^ݙǻiMmi߽56,ӒvS34j`8Y5TEi#RoӖ,e&a|Y(ˑr+R2JU(5,\`>uX 37-L8!t-;81F!bc l 01BZМ4/?4z@POκz7^Db_[o ߕI]j-O|?,i WzMgC,SePʻϐcw\&<<6 N.aQenv/O船̒~0R'[ISK|'ypS. yZ ŰiXa>0/aVaQ|(S|uZ%6ATl =܄'} 4,l{+dCm8#pb'L5QS {}7w~G=sL]_oͿ14 &Q"d>ҍ!p4)E(2a(-ԻOn@ dA$M4KIG-K`„MVo ` m1 A 0" h ha"a"ih!9O!ŞpŞ0$CA#MBA S2!K>M6I dh B>᪑˚qKBQ RgnM%HO$Zwd6r#*D0 p#-*,P1B2'±‘*a0qLQcI1l>~ 1*I~@&Ks4B Z _6 sS7;  nbaA8 B8&$[9'#1"12::-2;/R;J2#3<9[2<!AM= -3<>Pk>(5d  #66÷8BM(T vNad* A P-S T/r?C n0kP41%HɄtr R3KT5P g=k !s 6~ NH9 nAN";4:O[O1x{ipq/΂WԆSAu>T*}e>OUqO&mH9!#P>P-ǬW(h/̼H'H͂xI9pT/EZ! R1(\o bbfxKCVׇY7uav 8#Xdxs7ѓ˴T5fyXgLͰrIiݹ 7{pqou |@Loi 3&Mv珩34d y28L:oՑ@S'lv4y@ז@XL ѩO/oqY Fu|{.rLqmHlqy\%r9#Nzk8ztҳLW6s<[2K&UVU l^)N ]t/GmԦuwp}ڧ{0֌:[셥4y6 ^@ !`׆esws @  ;#:1ws'rc5a=x $J@R#4aL[;۩B Wp5uS־ᬢ͗P<\4t<6 9C=Fd¨60 U86)g/  d 8<5Y秷R_x2?;F[eZpH< ƒ *|x0ĉI/XF$vdǃRR*Aԣ_ɇ1A,)_` w̙dUDXBẍ́VfU 0jر^=+vjJIuKw܃PUJVR=5,YSO^+tׂ!$H 5tiXg:ԭ[OṬZ*ΌCƤ̃fk:C#'0[6Z=xB~P[i2nO(Z&1? }L3΀ ӟ5_ A7+ B8~%1~*RO H{wڍƽ}>?%4@UgpE1U0LuY)TdoIYO DQ]vj*?I%e6VV?`WA? Q_ !9$l9v d@]ieRZTJ)tQ1 4*MmN)ܕykGY$F֋Kr [k۝kf? 4z]x-m&MҪ&zk^GK' !P7n3͋$X+ЂЌAmW |P0DɈ{>g{xZBK$DYT1oFV*F,Vh %BSҤʔ )k m&m~y@W _ Yh6m?TTBDZiP!U)՝tBb׬d.Y0<f!D&d*gD!Pwd4BT.i] CZwV8h;߹*+H_p#{$:vپKpח]E;PW?;w.Hs( G1k2Tt`6SA(+:E hPKɆ 20LIT rSYƻ!3d9U/zjE¢=l0ˠ ryHhQRT `*?*pX1l\L`*M 9BQW8[pըZw9Lw aZGIvIr#a(%IzG!@q{d#Ԍ!,xqhh ^f2CsD!J7bxı@ !@ >| ԉ0MRUTIV#ÒSgѲBlGJHyjc ŕx-‡ vBg9W$ߩEda"@ J/ ~t Jc ,TyV ˥BY5〚+[ҔD?+W-G \^vV }'l"b)A3Pb'AfҳJd&ԯ|GIYYHNK䟽YܙC$KIІg"Re(#IGVlaKE$E!2`LM~r$dK 4Nn=%1%@)N"q+Z9! ^ҫJs֘V\|CŪv=,ĔW09=aXh`N NOӞ֬B(P: 3 <&~Ѝ^4 }rG7!` v  >2?նi mXPtfMl &4*}vdF,;6cv-tLq># =$ G_Jxo _!8 /x% |='&q+Fb" 3p 1(8g6OdSQT c?&N4c5GsBs:F$jPtw2''HqJtY8l*eqaVb`dF$H2pVW]wWsg"KRvf.0"vgw Vw{xgxwYiхqy aYNiYx! bJFl7q(SpSy@?LrWcy~m1 h^"&BA&# Kp   *!~8dh &eaR(ጼɘ**K!r(5^QCb`hrr 6f3:T(D]a.D/ǁ+fjP 5Z#'MƂht8YF*&tC$rpOv#vlj#<JvH-t.rw^baYYXPxxw:&B E '~` ]]j Ek 'הrt%@^'4h:F:Z)(%Ma! s 𙹘R*qRy/M5b$'MD 6g)c 3% !q DbMx6ipEB( \6hÎMA6 c/ƀfbJ({H\St߈KQF,8XUe<3GYT9Q+u$),l.jҒe7..5WwPzxӓiYwgіow]r`zqࢶ6 Q3 k! PJEI)TT(EPBE6BpEW:6]! IBra3wCdQF44^/4`J9ן9C1%)'.u0xf1'rY&w[xB{x:p H)3w7P0|8lkTzg"=f E*Ф[m3(1 >2%H&h _#MGM9M6اfpb,bU#bq SRw ښxyVa& AzFSr{#FC4zs*Ȝz3٫kq7*ws7bP7bQ7u3)k3TGS_ HS]aDZA'VVM;cpe՟%‘lBJ5vSg:.!-P0xf t&b/wxr vWcw4yxZDYxmOy%b/&p{aI oPO2B^X -;> 3+3{ȍ$\Pp?pwlsP^># 6*bTa^A4CR6| b[ST1b< juۛ7Sϰ,^q 8Ik Hq m0zcb[i\Tœ!0ǽJTFSoS]H8^uAs$$)+::jFWLgH HڻXxV"BYKYi`i <=ʫI@A̓kGxmH I iNllϐ i  F* a  QL&lUJ䅊{:4sPܦLaf2qWLf],5vꌛRy¨ak=ː 7eK(.d1! )SMd:S jK2ʜ? izE TDEmggt!){lAi7{r{ 6ўX$u`a9L=p}OsBaulH*XGjj{Ä0#I⻕-+<=Y؉ݼi0bYңYа!h+clیYPIP) ~'Hj{ Ei桽~'a<e ܦtOT ʝ qa\ }L-w&\^:'uRK0D*¨IV(zÃq@G~u{]j) + 0 Y n):mnA<-:휵*_bEm,zq3.BEgt㸓ԷJP=Ətvb&A8&:Gۚ%"$32WvuUw=z5>2 # wƮM"Y$:#]g$bEY1Cݘ+xpI V i֓xMipP a K +0} p =S'`;蘍#- ꎜ '}K?Z6 ^*] :7i|Q=^ZL(|1kԓ2 j\v!2( Hu]F>je_8r&41Q6ݥ6ϐB?B vto]Au9-?H!TH2 5# ` ,A]wp Pel3xЛi脗)k ꠮pdI~J!sL` ϕ,L PT;pwpln_ %wLJ ] {S^|||l *@-`;b~pٮ^<ۿqxҹ *+!nJmkI1?ު=(6Er W: Lt8qEH9n$ & 0|DOֿV7l%TSN5hQQT@Qf,;E"DiU`q #׿T[tYK]TvʻlTT6*@oh~˿?,U޿*PV-4!+Y^{ Ƴ> C*]QZr?T6ç]С¿]!}SRf-д={j71C Le!_ Ag[NqO'Dj1e4L*909PBJv";v`+^;1;;>2KS$39@ś!84'Q:[MZ".R3Jӧ&(N7"L(Ta62^&JDrH8*h914ڈCF@FTR㸩V$(jRh*4j唳TUUO}!F uԃ$Ĉ8r 2F*EĚS[9*XHIԏHɥ>Zj5+#[*5ԙBW+Kʗ++ t@6$8tӬ$淵M2&Dϕuj+gvQ4cM ?3Z Se"J|_4|g]sW N䎮iFHFpi%P飏2$ DIL03S'e$Dίf\ENGK r25:|3,QLƌrLl%S(̪H9bs6CZ͸)PE\BJT|S/Sl++a?)_l oŚX\ i +< dW,,$̩eP G,!DB bAa 5 > r%b ѓ.fXĸB5P+5@{!KHW@F)j+cذ(%,8 8H*{DISj, *0e/j0/H蠁TH.ʐ D 41nx QBE)%?O|FESp6G(vJa{ j!oP8Ď40$ q\h<†qn)m{)NP\5G#hGlч̡CTڮbԋ&-]2mV3Rv .;0􆒩Q,3e.(KS^T7cISd23R|{-LAfPJ! ,PJp*)}5BΪE,DETvs2a;SJ ]Q0h*l]Kxde7rY)6ETT 2ڐ\`[hҪe,!d)5JVe$5}MhT*U]cK@Mj4&/ ;#qEZ1\w?h GZ @ӉND^i#C*Rʠy3HqRs&5dq Q EP$%o 4 ["xw.1r!)`:IXwxB" A,phRRKB*!6Dl4N $4} I*XSV!-Hi<{[ǤT,kp.E)cMe{B2EOF|Q,CXJD(*$% U5X+"d 5@FX*​;Pa0M/!ĢvdIt!3kF*Xa\`"^^||XM[f cd97R ="!T\l%2Bd,,{2'5\BMjw*CDF[ -hA6 w } -I,hBM4]B4\}<k^10Iwf53? Ӎ)%ÅI1@ >e7#Aa6 &9mF:)lX1 l>ZUPS- ﹦Pz`Ӆk) BV:y[Nt=hiYYjy \D%B^&@excܫ/mԚGFKQkx>blEի IA(tŰt ,,@閵hZ4 v?+fݗ*khZ9زLRK/k)/= +^9MÅX \>{@I 8=oHx Qpp))ê, #19xEʅp78W`Bt ~k$y#0۸VQ -ܰP@-91b1-YLC;䃣cG=+  D_8 m&w \5/X&4f0I o0ѥ{rr &ȣeʻ-ɨk; 0S8I(6)(Ű=V( h)( < 9pIцl`د/pT'CGYh 4x(eȊZ?+B?Xˀh)3h oX3;PQ!#o)b(bRT 49e(l;h!9ebނl ܯHsHXK3Y+z@xpdp6h7)-478;w;x'./%\؁N0J.0~AW0W@88xqPP:/ɜR 0 yJ0` %HQ A͐ %?4O`qE:yI4HLd1ѱ1q6gKMLT 0ꄯH %P ;Oc;+ts#>ȱL(> %1Ԩ @ (=hF`0 /{;`>8ՅtTlbpIZx(q9i)> 8RxkA?=( .e uMRPE5Z)"[DCfLl((R"bTSq0-aS٪Q@ 4X˜4*H>DhF̠ta>fTlU CLDHD]TS(eH|2p @(USB;ڙf 'qD?B;"pY`Y/Q `nYv7p` P&y·5 U%9k֛563R@ r]: kȋA£ ZK-1' 8WZ#ʹ#Y^/ȡ8L9 y4] I(rch BI\P:ZbY"kPi:? *@VR-Xz[C[[5QII's4i>mP Ie,"@fM# RE1'q,U]SMLH^%0cClfޕ X،:4%֐MO9ϰbJԪgYMg_8P:M.YE` ``  7` 6E4P&əNH!댧O5O\a~X䫃T噯 bl <-$8b b{> e# ؤ2"t.grF\+ȅt^,Yi 9HFQ d٫0cѣ 4PQZYug0LQYYQ*!x?Ђ&?O?X1[P>zrd\r٦ MˍjJ#91q^*Q(WrmNH!D#E۠BVe0Gi D;RO C3Y.4r$) Q>(TjhKJ4YˁxVJ_$:/ S4Q>4L[* h4 *Cc 1ۅSG@C>G3RXuES"!,"#!Gc ~?==mޞ=]ь`Ԯ 'gUZ7Qq>!pmEK]΅- I+t.P]]Lwy?DvÁ>x_ _rppq'󂂾8M"3fTg_Ucb^A Be^?hEYMsLzXjDNcT+y(0&˛㩋t9!XXTjB8Σ҄2YBxt%؅mmqK*.hBŒ8*Qy"ɭK`UŘ^T7,lЅUkZT`߷b`~/V]uu'5?S??48*K"%Z W44\L_fX_/@Mo%omqnu`#͕+ʔȎ/S|%R"Q'v4k֢7βOEbs̗,}a)3&1bn#SοsdLL,%VX'%^„i迧VЉN?Ue#Qlf`3ңȎ|ӬO%{כo|zr;l| h?>K.[&U}ҙLyI*>|xK,[eJ:U*PzYjUTr'T($ k[oauE -::dHUmRUU_UsK'E,XwPP\rh!e7 "1LA! /"/+H*BHUP9 baB@59kPS.`J2, 5m|Y "` 6p9Y3!&sxa)r؁Cvt137aY UƘ4BMD:\i4"D#D Qi#0j肋2̇B%G2eRwqGAtt@CU\Q2()͘uW`TD2%%VGy͋J'TSP]SU|?I%RDJ |EIC1H1V`Q@ڪuRnUEO˖P(2(}͋hd"lU@Yl6XeX"G3Rˁ bY6NBx!hZiMiɈҋܱ-[oUD3i]U͑xBK(Qg-1WUy2}y6}pN?A.2? |a. r$ *(x=82=5|WEMUQDȇ>~)M2laJ4C8K24H &!I2!IbR`5!?  Kz_8UFyx߇Z8)P5U"Dd"B.T2I@ep.(ބH(!b3@4H Z3u] &f]#yFy+@\"\lPWlU# G~_X :8q4D0lJ&0J<$- Ʉ(r<]A4}1 hc !NzS :։vҜ6%*A&6GCLfh !x?D>*Va5Ó㬉X9*?␎E YOwlЃy|+wB;d[U T8? 3"ȩ(4p[)pQ &kЗ SoR 0W`09 [9kߗ\XHlUA`H4a *ř:9+\\&:"Fݤ"{D=<=yUŀ2 ]HLԨ8`l6XTKY%ؓJpCA$82ZB.0>q@AY> */)b(f(;1VCjp͵>?(/q`VũYVUw7iV%D'D}K(Q65,^Zk |"ۥ 2g}[F7gn̶YyD &8UJf ` 5"WP"X؂s>aHA Pu%P&o" ]@bF4 u92NC }n`.9fEhs%tHNwۙ$*Hfrͭ Rf!./U\}UxeޞV 'SRR޲w#>S** $&AaX4KUm盧5l1z!6!9suβd׾A珑`,[۵@/T ^p(X䰹UbN RlTD1$S\*l ]S?߭Fkmd8 ],eE&4SB0t6bZ]bn B6VHj]M/U,bw,j7,ִvWU, :o>#/K-jurWvUmGyK5G~CTXQ9Ad(SAt-:Zu(&KZldPK} ':åA%ɑH҂ZGP Z>qxpkynhsUГE `kʉULZnH8`9BHď J#K[IJ!׊W>DGm})91) }.!TؓRUW!|y.{" !FW t5Y\DҨEI!Ağ"&YWm!=ЇKhKXP%Dwų(DAM =jaj"4_E)WlĴ|EsERVBRt {U^6SkXF#ƄFadA"'5*!V ˒ÙqcpDz'c>a3kVQZcߗGe" 4yWdrKZi LL|IN/>r&]ګ>|\rR9;1jذU KMUs{CO.PZFI;rR(&AA$Kɧ+ aiǢ"ht1_LFE9thQh|E )D6hA?m E)ßϼmzݮqSh1ӨϨ;-hשSERjq_y)o16fd|%b&I Š+v]@'"&|'e\ʘ#!PKQ!FbǣLeDJP |32jd*L 脉,E#&"`bM6|¢*>J+ډD0ҋP2@ K\q 7,En:젘oCtUC"L j2\$FGv,J*9 ^Sj9Cdjq)>( 4*)m.>& D<@bCYv")N8K Jt9_MmUB]i%/>Tg7y)Ƃ~,پ=%!ӂHh3̄@6|V" , gZZf `šUo+Q hhJSuD PAd1!J^L,-b&)L7z)e'ElyS: )>7Q*mpހfqh ;5 гI|L5 ņMpi%1*:4C^/r_&TVqH*:3 z^>q"ȃaq ebPD1{{%8ylD4 Jn`S?l @RJ?I0"dEa3-G]j* iUZ9V*CZ4e.6T,d'㡬J5@˔Y&r8>jS#1կlQC 68H1r&*ITr:?hA kkMY`'9bC1Ĕp9mA c$bR/ryhԡ$^H7d9e &$0S];YO 0!(BgiBBcȃzƃXЅ_ fV$?!ˏ~(Ռ:eMHE*2tv&¢GqӾBg-#Y̮j_U٦A2DٸA6Yj6d&L~w,1̶m-QZk+3L v IQ/hB21m2uA 6HS3 _[w ` Sa)e=n1r1ܼY@bL4&ChF3$A9<\peN̈́7%r@:-6Ї؄! ;jJuLSU<#=׃fi3>CAٱpԾv9a?h)KMq̞P'}4WVчη-٣!cqKp關CP-Mii^Q3'` S\3&"aF3P6`68 0׭5NRqX3A.w4h^TqII dp 7no; }[05zOx'Hp\fckT$BEEt"at\c~7@j&h?(2 WR0 /QbJUF-RV h8Ű@Dj H*Bʤ@pNJ M.ҎLڎ~09KncL+Gn Y*-nC 6,e>K#-qR / 311]&RP=ni.B"o%^BT8C>RVcM/MZ(LELjԱ#Jcn#i!"I8e]ZD5Lad=.;< U, ▋/]EhZkdKv0| T_@Fp"!RoK(\3D"FT+5jbC㩤G*4nҮJ36Zy#c7JcMxCGa 'L c4P*-}l =`-,# /Lu\@) ylvzR fb~0|nGtGT~:g&aH0  P 1!}Nɀ#nXU&>bF7'1vAVBExH %BsۥH "C#n>e<7iト1vnrZ`(D gnK$ jIě2GHP; Bw$6$QfWfB< Yve$ yRg_5/bD,H*FמD&!$ ,4pn}gZc o X~ha8xOen6Cesj4+kcRFeJH*&x)x?@cK?a Tw `DIH)0qnWY֬7SD8bp!bq@9""*D))B ߎ'"ダ9f阰hq8-.9 ӎdg49qc̚nHV& HM@IP*rkak6{Ii`j鸲5tM:8@fNGjw} vnS}&}Zgگ85k4VUM1SlN 7>FeEH\! œaNH` A A &¹b&[mk8VXv[$f^~e٣&C )EZ/DxJrx>GU T-*F_A_gbIHH29*e`E6zQ{ +)N'^NH<" vK# v hVõVk`2>\h%8 ;8KeNDC:pp&|6zG9Щ25ŭ[v]ٞ{"/hT "ԦM#!3aDt!Z)%wrafKl1 ŀ_8DU, _|D͢/J`)aw 1`M1!"*r"c"J|%cQP 6PB2"1.ċP#-Q0i%1d%̼C-x7A 1lDRURUP(!¡K?`h-#VbIJ8T6,;9%jI'40ʬB tR40!`BFmDرR^\ &R&m 6H%V+CUIk^bT>V1REDּf}dY_mZ.[}%CWZjE5e@Lc6Y旴g9h7?piZnZnMut ; C32+LOqx?^,HPӆW)b#|bJ~m? X?8 _,r?aa"eȡt5B.J⌇,c<2Q(;&/2 x.r#ˁh^?GWWܢCL$x%F8`' *K7O6?XJ?;Q4Z㨗Ep4/U;z-La +26aڀ&ҲI م`JaJ,-$v9X0(b KVsK,(H D@-K_| LH,,f$ƠfxiMI1(B5oLYjNg14a76kM-Zor[0!'rpQ5Dk^P Str2$ЕT Z $G3,s5t#BEL>Hya›<`/MsXҶô LUYA/V T1 9{s|t8F绔$EF͐_hPS@zZh@{kp|$ ([K6BRQd1W]('ΰ(dMP.+يXb՚++"5H?ev Z&kaFMya1Fe,610SŜԤc)M*K2ʾe\q]"jWKc:tDh-zдnM.q9WRÆQK*\J& *rQ10IP)iCw\ZncUFM,UAғ0˦a녤$J-a|H7xF4܇}2m*띌d e؅B~;Pm&TP3D =qϊ=IN"%bv/+U5$dm2ũNi ȧ q9d lF=. |*MВ%IM,^ @ :.l0zK!GLj p[Q&E`n" SAe‹`"h2]LcnDDMNYҴ,5s"rZ3Ԏ 8v U8d,YsHF " i? &MtM:rH~#ڔ )p F@|*LubroqgBz{RRA xMZ6{: RUR$ _µ4a$!51<$6=G=E'~{퀟_r}o| 2"PцIt]\(wjm:O[c.*x/vx!upv*V1nqq@\67TId*%LB6 b`4wpqQp_5p%wq5)8r5\7ӃA=LP$A2yD6 pSuQscq\T;N(%z*B>*$Q;p&bSLkk&4c\w*.)+/%!>T($WAeY$TY$5kex[}*ȃ+!T~jxj6{njy0jҹFg}̘HjXis|j|W}ehE>qkkj}iS !yn@$PY#~BHamwO h&WP2u2(Dc>CH1"+e7Ӄ6Do+ q|XL,`Xh \x Y d SLpR*蒯+e+A2[+: o2Tl eksLc){ypH>c(ugE 4[w9 ,k! q?4O*졹|񨝻"|IcQ2Nd+6!]an(~X~11 !  _4aJaPĴusG5j5a$= pj'WH[fV: A a"`v)ǕmQbuc"#OaZ6 y8:+Z+4I$(R(qM T8l}Q e 9>3&3]Sp]L*bCʋ9ƺf\84 o 'Ω2 pRrzTN!T'bUh!ͺ9AJSK|^',B10a@} JzI\z z\Uoeݟ z,W|0 Ag>%Y&M2Z2&y.1iF. P:}K2O <7v Gu&& '}RաcM5ar$kd%i=*"5Kdk >06^tYwZHMZ ZG !dؒ؄5|Oa=cuD)\)ek *{ZǕNbde eIfl\!Bg*e*_]7x]`r{AukNA'\'"QV#Ӎ9l= ׍@00 ێ8ddhV jzWڝ'DxCh/7} =h؍ȰwgUJV>Hen% :ev'dJF76+Gx4JWD6CR$IZYK(Ky b(ؐ)j%`^s)s`$]Xa W0? WP] vq̶Q葊5Ad0J%^Qa pL^'gP9*~3\MU K  >;<=_3I# }7*9#9yWaTpa('a:RlpK*Ss>. ak88͌g,h[V)qa ngCBC)R $c5Ub?N$H2-lBC4kb?E:w*9%?MNo"E;m\A!+Q07NEvQ߮gw(ƭv EV/rLSkΝPEZ`7$[DyLߗ\vJ-WܚY|IO(F6)Id ^e&hֽ?|TB]Œ^;KZ$J?QT3>ܿ{ kڴi  0kSPT,2ŔD 5vdG-YdQ,rKGo|F4jA;/c^cOfcC5z,,sY,3M[+Q('EcA,&jYDE\%ь$`,¸ XpTRI >+v/;,YTM.bT+5_jŔPp{Iؐ9D!Dɮ^|hO%"PlboS_pDBWt[,h=G{D(@Yl+Lg5 9$4vG;k?)5҇NhTEdEƚ2ɌL4UeIbR@8 FaـZqRK &ԥ$M *ddx U`U+["ծP+imX$YBj)<Z W<‘t$)>҃#H\!*:P Sx"!ĤM"Bd*PhO_9J0oL Qr1D Z8Le)#eDAe3BLaABf%Eh`,,dE'"@6Q.+2lȅ*aJibKР^LD-r $ 5 ȚR8MI"7YCK X&.ciDQhE/YnTyaw$ehkp4 y4 $^HdqjP/B 65Q\D+HI`F `H#(>5R*REA Q?*[i$W*'-bm`!2DHeY!kpH"I"ҚֹtñnPEdEl2t#cE˔+ݘc3Yf^ TQ%f2.CaZO4ɠPR1&C; oq NT1>c!XC}jdS>]< 1VU .oYJÍn2T9s バ0 b=͑3uan }ța7#-*9s6ܥXNнsE}2!̧\?GA?RΨF;%P p%YOXKi&@ Fk?#Deo]9IᄽC- x* m/PS:xI)9R*J,@Hx VBFZY7+m+%L׳Tיص&A WZ#&Uq@uB;X`F ͌幞<+ǂ2+\07f"Q%3cb eH QB]~(ɥ3X]FC*CwS2~`9$BWYĸb1QReyAQOvTBClY![CtKo㛺ȝxou^t#"wzIs?6mN~9*?iRCbʢrg;/v凡M)Z~io^T濧wTNrwK-? HǸ) EίO*I3}^P(0pHtFPP-*iNq@N*X˚>*"9HEZ~+IrֻF5 % ~[BE;hk2PIBb S`ER a@IB188l %LʶP6⊔Y/d=pQxk\H3 ̐C98B 'k01ۺ? ЎˑB ݉14c *0Q|" 9OE,;) ըU\/--㱌2//ʼꁼ2σGAˈz3kʚ2E2E:ٹEB1ཌ 8**rI r J(H i9gty0qAPȉ:ɈA$=UʅP!8;$a qGrAGpseI ;y3/t&py3QAB%R؅Zh8&B(Ɉ&$&loR^;$aJ;` aˊ:A4 ?'BC;ܰ݀C9ԥ#iʺIC 1u%;MʈGdBW'K*.`D:OG00NQM0GR 2* Š` _|Y!riy(!ڀ"3"%ee%~%`r~R,"$4)۲]aKcFSXY8Ddc.dè0[C732+M%HSз跿Ԓ-d;haXҨ:I[&շ:4PV]T-,٢ 01⢁.4= YOM]CCtw[DbDT&7^h=ENR} Xw 3EQ(PS8Ǔ a1k%4:NMȓo͓ (#(뙼U5Ċ=FCPHP"GMNA{ T4r +h]b\dqy*0-aY𐶱 қ;9&88>1nbRSB']y[`[hCY aT!y\#>A57|QYTH/-3D0<13:[N]J!aedh1} `b6(,BB CAO%CY_RSH=e(덱9 Hd[E,/Z(Va ߁IŤ NYӈ(271>ye0UM`m fn` 1&ٞv_:>Gɀf,  2Pj 4(bRx̾eY (.  e`š;#lb d41p1;U%DA=l*@>=0@FHFX@E~dG^@ s2\}sVcBPY(6 2ZŘXVC|ܬe]7%ZQ腰;f`&y'/Rn"?P,w 6@ % oV12SzU D(<:; FSbV:Ѳ针IN6Ih~MzŬQ(9nlFo0=V؉Έ MjCP~։ ل8A eQk~ 8F#~ Ij0R1bOk PP rV>YK5'1Ӌ)5l]kh&jB>V%['ݰүRyda4 C~i¶)Z"z}RBm&BX/L2 QJʍb\90aڝpp;)ȗq gh󾟌’yn^AF4G|'ә.uq))hܒh׊ vb 7 Q.f.DMN$7h nބ-~5fogi9`vz ~ VwiCr)r~4LjHj2>Uqs7P`sXѾ:HM0}VɈ@'T yIG.l=^'dn>|&\1]ã#N ImA/>N ȍ\08PlB@؇]h&ȮDbsC! KѪ7):>QU-n tɈ_x x`=[HIB%v9sKTTZ)s"4:Xhl(K"GGrH4„21AѿM6ꁲe;/sDgg¿ajϮ p`ſxo8? W_ ѥScƂ?(I!JE*=Z*R6ht!OR0GHǟi`(?*DNX淡uxgm#b#"Ȉ"ơъ "*,!Wr-(E-,)8,-!!KxqG(pK 0SV0] e-r9&^qfrƚ G/,D*2"#Ǚ]z@*GW„L\[0wy0]EUMXTS.}A%rG.e|E"^ 2wP" 9dPdQ-\G~%'TRTL7)]l@O{QXx-ES_aVW]VlLWe, eyMf|Ec:u`;t]+T{9phO}jv uP?F$&-d챇FUpss!W՜@y?Ay-M0D@C?FĠ 7?tudvaugOEj4y3[ǘ7~"&b)F7x.G#f&W)ā$!Ơ6yh4.s%$)h$rg/,ыhQd@?@A7S/5V&2mBRcwβW|j(%( w8q CC NܢqAtT:IJ@$ XR0PLZ@-JXƄ-%tK#8"f/~-Q([ FLf&6l'*Z-ba MJD\ FƓq+xe1FPL9ιsH-hҎp Be,O(&}%pĶahpPb)6umnDޞw^O#ペcr\?PA6x/z38gBn AFBx#HI  H*H7~ liqT e(H-80V=%|9UzSF0 EpE7qQ[[ Ce1,?]!N[=! d@a@ bJqʎ7P`Gfk1TfRI&l@#e!HbZu-CF*׮܅\!EiuqP {2(q'ZÂR-z'N E^62c;s0@QkZ5o5")l,'?}Eh:XKEnpJ'656O=l?3>Dޜ;'bo|yӫ^dK5#!}bWo{Kn9hCix u㛮E( /xfHt>`;(! UQ )?*T%(A QFg_L>E煊F>(C;hAJʨ-[ [RK:QH ܁yt CvN"OSA?"!I„(|E*,Q -ZM ?jXK#af/&x+fp[~ɫ,R(~bO(m(gȈY:;b챯eV+ @6Z Cݨ)ANim>DzjFPJW܅)]o.}oCR0seUE42 #>lFE` SD3R*@p%]YDsD\ؐL Z'r7c~&W~:jjD #@J_T,:c! & 'i(VZMKq(AZKhs,#9b#MzF FjƏhlq$p-Rq=GO}b€- J"IDytjIW%'h)Z*%%R$fm-N]yD䙇HhDj$u%2g4NH#lC,.l~^9DS8E}kiBfz*pݯ~GG(jG1r8m*HHȊhn${nȉXLȂ!bZ(-2SOY^SUB1=DEbh/JӬjĢ}o[*oz߽AJpgvol0G#1f22UXbg^[e~#g~zqq# 05pD6p?C?Gap,etd[UY' #F^|d#CܟѰF?HÎqpqm.m#i~4^?0{"V/BK8/L J[xh JIXZ߱ZjJ|W(UK[oIX2.g\KyL_#= H"3Hrnj2xD͙C*XE*{U\S<է,+KVҮDV xFQx62JvzA N(wwY0&yFs3鹯YRZޛE[Y8} ll _Y'A~2R 8#{J 0[XMt൰x#x 02yӛPϘtMy?T О̸ Jdkr0( 3~&HqxdF0W(QVrL`yt K0Z6K|56HZIuUg?s.6"#~6u} ;=blnF2؂a,`9XxdéBgC Z\㍶2FvOKsv E ro| ɐ}\O+fBAy+Eși21kd6Ws*+w0>$'}&{˚7z7n>wg#x}{~~CFA2 G6A!4㙚]x 켣{83vwʾқ!qsG|oOϤNN([[LxɇȓaxeePj{-@,*60ІTR /2Q! ?aÑ =RPeÎ*;jdBCa(oWQ6Nj>K7,æ"3Sd;uUTD-P,RvMu)sg.1ބL74Ƥ H!&l(R7/-l)l1 &hvI )h6hÍW6o)s-Sp#QxEhd ^Цu?~\7QC}#5?{/-<C<0 sϽB *p>6ͫ0 +H*HɣYdq[ÁBܯ(>P Z ԰@ـt QBl\#0=Hlc"r1‘#/r5E $*3 h&F+ھ"n9Q"7ձq&04jS] Lcu.;s8%/5AX..p/ yEq(h}kyB޻*sA Iv;s f+-PAƧe}L0E"Ox7"~ #K3Ŧ \p<&$] OC&u&$nAja؆Z'gUk8$ 8T muCqcR8QoE`q=L,^y#"@6me3YlȞ@ jZTHhh嬘4&CGZ(FZF#G^tT'9QJUVMeئMrF\ 6ӍsZ2̪-51e( %zSF(#'5s!j/ lBDS_ά̤F(DUD+ZZoD4)LAsP9tY&Et[`:VK?c02 h@#WӽȚڰg \5@] P01bSEӅR v)fl35獌ucc݈<@KКG=A4O.34)s,iDg p%Z:+$%s їl;ַloԤ-60qsa+0=ɘ;i6]qfinԉ<`NSRt5ݙN6oN\z ;zBqo"Z m`QH\ъ֋cQ/`4sq} %GbfßK 3.3W Zԍ^XPr)ޜ59M&FAQ>rї8\zՓZ#)_ڷRklUfO84xvk:.4jf $S /I7mwM.M!YȠ9]`Dd YULDЀ%Zb,z!LN!JN{!: A䄢b8(5\$,b3d0ǖ(F\py6D#bV5*bꬮ Lzp.\#z?N#6S"xfBt4^hi6t`1=P:!=sB!naU{v(2:T#P5FT#tpiCJD0_\^x'n˰nFpF   r˚ Wt *u66*720 5FRe4XOZE HLp*JJǴD/Th2pFӒm`˖0IO (sK*P uFK! 3234/bRKR5ՔD=U؄PuERQC >pBf.C>6o63fF3VhCQ;f8'Uޯ&!*!F: '@LP?O,F~ V`\Urb@w"]q"n&] \3(+&E5&94`lFb x 7Z (^tBd(0 Gn rid b| /bRtLVcB e<ڃUߒkMJ@/LD/m/CCC6+DnnLՀQTmPJQ7S 5GUQ~QJ$!,U!gn+U!L5 3/ԆB Դ(lDZpk"D=x?vC 2Hab&jtUpGcu"9n"([OƵ!B?TU`9*#@ymcy#0`Z('nUCv`ECu 7(I% rF7)c16)_.e! Hq#I}`0etF%kDE~`M+(=Hg*LP2g.۴`Mroul)RqJ*m'L;@x/q|{T0njNEԜlc!CfÎB8Cl>n3Zo$pp`ppx/냠4VGE˖pظ#ykZC(EۃG@Dqz;!e8孹Z͒8'hbԒ/ 0`:JFc0ëۊr\"@J%9T75hNV{G1Fذ6C 8)(;{) )9%D6RC=tH1"C_`=F/3وgږ$#oihS1ʈFhTEEmĊ'3.5%JzDw1ɻ-:5uoIu'߻HR/UEDPS|O:q2 Z#{dG jm <<›ְ mLUW[t˚Fˆ=*Ujc٪8:",0:" "T2\ߝM!B%* 9p EשfD!C/&˱I`;w5x2FCa _T;Et7 9I}=I[K[#*n}29dI&„M6 0A=&FH!¿tx1A-D-p+n[7GlaOۼD+SpI8I9%*ef^Rɬ*ZfmΗ*%)/3B:U V-%3; 孫ԢVhK ,@AyZU= :kZ/C:͇}tB/YD$AdEC?-Q:1Etg;K`DЉ_(M.x);ANa[@MH;pPDzG2]sk1NhpzdTIIAZ:#/DFrv#+ f=N4m0.v\ .P2vNX+]CmN>o-)ibBFqÊ 2I(%y4f\jRLbI\nA13'vXd!^l-Uaڶ0o+S=LoCMZ*d2Zbj%OT<]j_vՉ f5ût*ǭ{ыTOO霛XG[l%|n_=izw enlR,A BERB ZFUT%%_b81T# #(bW"gC%F1;rBc?PeT5e($c:':tAeATh#6pPFgtb5VfUf  } Ws0^^hP `W aDhvJ m6fg f 4pFL@Q@_H 3B]a5`H~SHx22-׆Vg9d]j)k y+qKEJl$:):mjpjtKÄkL+iåky,9Cg|)lڅ]۵|ɥdf|x]7g|&2'((K8Ԅ".w=)&?$b#BTR/p~2Ld42$52U+23P ?@?(?5EX%?A5?&2C8c&W` Hw6EDc2ҁ:..rOvc@D1TH"3D3ot3V9FP'fD kV}`uW@@ / ʠs0CCjVcdTfavV4-_6`W 6H53opcdMʤSjiG^8KNex\\jDZkAlLٗpJ:v)azsJ[ᘹEWwK{q ]XMڦ|eMimy蚱Yc͗|Nժ]-9-7Q~VX_`bQ7OTCTb+H4G%/F tkլ`=-. >(s!3F ~t< "0'#1T@C-NrBL5&Ea~;/T/4FPri#pr=>U {N?u eþ9FQTq:‘㜯DjUS #-u;G?J6"FJVpbE#j4i_%V1MggUh%fI =:g01 ]`r)]#) **ER"xT<#Rk5L,+sj{+)zz×Lqy`;+*y[;)vLɖ\.mmjץVI%cnw>>;K_z>>|zU]iqE5b_3sQ'S#Xr,. N]]c1"NZ&Vџ+#k +:@ dD+qpcn Weuf8Y܃e5ISgFIgrWH ku얠m<˳`'@KA; K- Hni7AkqIDKkx)rU qu~;48M +uDt+zBsx89][ՄOzmQW.+-b^'R}nCi~#WTج &qq5oΑU+"{Q!b`,ER+Tc. [:V:`2U%r$z5SS1!p<؃2YlWav` .mV/VvL 0 Q¥oQ 1l6l" # ^?MNݾ8j̬bi,NMr,خ vK`nm6l߀ኋ);I8r[{餣KeYdQr" b>gCK? 7pC )So#p!JDGa<9sԑ9Y6k:2p$I},0: CK.r2sƚ֤37q=pp`Ϛ݃If"Ў$ԉD-ɢ*T0!u \UcZ'\fUgѥ5ڤ5V@ 2V':j~m2lx̊Kw?1-f1Ke%Z 0L$p-@x.]d'%ʐ 1!fDl1ePLƹBB;cC&FlN ZJNhɬfIAkÞ,[΢3gQZڜfmCj⠮Ql6-iꐇ, c7D(G2Gv4'G$2̈o8*MNr.%IOJSDGI7)N:S-B- "D֑ fG" w4یY<TI2OTYK2QzHrG|B$7O>UyOzWQ>] R es<,& s.NS.p pP'dF1LLEH:z=%Y _!`%Cnø,(0wEn>DUsjUe"tZ(FlkHl1:){M{6퉂yzf(lc2ġ9>BK DAw̏ৎyc.t,-Cl@I,iM)@ H!o#RIH6ɒ+@#9)Luܖ$OIJsD&1F-d92!Kӗr(D-SUx#Ր1 Q35e]LiCTxw!z T'Da'Q| $ Mʗ*KLM0.0pBm duPD1B`PR&j)+*0ʩ_Q.\}t#``= rrԎ0h Sf^9d6\e(eL{2ZSQKl3}MAl~#5yz cYq@P?Rdl*-NDiG="RrS2̶MJ*nd4%αKՒ:gTINIm憝7N2l-&BIOw"jDۿDRθ -a!,Ί'٣U `~j'I0V'HU%p 1 "֎ç@c'Ct[9Qr?ϐ/;"|s\==2T%5qyCTDp٪ĹC.K0ae-?|EP,qEL0Y(:hJW#?46q4 Qnb s#EFdh*O MAu[$==hIg d$%LR8~J(jtZEM+]*!&Drl[vP;)R{IV~dS& H2ށ k& $J(  @ 8ۃ0 =9 Wщ VIl @&X#+-nP U@ ,02!ڻ%؅胬P2(:*e.D\ 3#b"&@S`hC<;K-Ң9䢢+;C1MC[4ba9,s8Ѭp#h=Pl>>9>x$_CX %I >=9щ6㻑թS%\[r鳭=x3iLEf>l$ d w?(ő6tC 60kIʯX H謑0`HH Z1 uڷ@HV1 @ h Ãzmyؖ18(eɉ@9@ AL9+נPE*0:,EH:0׸¨ ɪ2H*.2P2x*:a@+B//7x;䙾#>,;zJAY#CkyHT̢D)Jx 84 @:M`EEZ=[ >M>IEMågAq$\Me6iJN=y[Ni%@LEIr&*GVLǨ`?Dxdzɷy$ < ҠUA4ub@@a9cH zɶ H (sqeP ̈8+u e ;:TrʣTCx%H0{:]B!Ҳ"'{؅"4+`3LK5ī30;+1ѻ;Ĥy<(ʳ<L#Dz4D4p@퐦 Tl v a dAF h1QMb۽ .[T%8E9MTM>bT1bic>x;Fr`꓂h\Q6Mi8,ObOtGHX~u+ 8 (4׊{7̀ruP t<0 xY:Ot( 2 (zk1 m Ge!(,uÙCU؄ü J X &x"6`OH!lȪlaBᘮ i0(+4k35p6C7ZS(=LS7%bįX#!=Ȓ$@%Եɐ$ 4xfTJ]ԏ5ۃMd3Q1Ѥܜ$E_|Ma%g>fFrP=Y&=i]d6ggp/MArⱉ OPj&˝xtyL ʈ c-_x9'H0X -A\" a} [ rZ8Îݫ `5Ȭ< Ĕ̺u6Zzȓ̩9 7ҩ b cѰY P\8)Ρ7B57Fܺ[,hdF]/q H]M C%CFqF" o,OkdOaPNqp7MDFAHQA^X7M(?r7x|s薡+_?np "1 ؇j fMXˉ΂XtA3~A9@ e X#* *jaP H2"u-K2`**܍!j!j^&ڬeM$C $|Kj޻=bECK˚+KH=b=M=-p#Ic1F1Hcb)yjڽaܽIUͅW&aB۲>]]FeFkOF>h-kDueVyR~/}i 'mdW֗l'mbc>fc7pddAm +X+زx(.xq?3Qƌ}aўq)ʤR yYRh fh!`V[`"p&p+Rʠ)9%{Z x@y+>sBeiCKA SsaDǬp@2,At 6ک [Ҩ [@Jj-6N09&UKE 5c6jkUdUk6?rt>Y yw6HG|l OqpS?kZs8N̝ <7m^ؕ*B ?0dZppHt PLu7eTg! |_|A A )@:Zpn#3:$AEn78""H/o:c nWXK7aTC r}'MX(J ѕ DNp#J<ˌ4Ni̋:=#)L y1"Jx;h]svܕs9PA֡o=@tl!y1t 0npӎgZ F)HuAWI XH( 0 ,Ɛ#CŽgyю=:7:2Ip.+;Hal/v6nH}Zqa §B'` Pi(r!Qg%3MpX`~i'i gُ4S ~ך:4D48}ӰܩAe?rl5XC!!2@ʼnEH1"!H98 )]LBL\tAJxBʓ-U=Y?8i)Mi„j)S8}feI)6ش'"+W us^<σNucN=89| e']8-ηn}?7nMrN% `|O$Fz HAc;yXh~, ("˖- /=-SPB Ew+n_0XHA!fZi X&HHA qI1J!~t~{a'^ DeX'yyx5tkQzz@I&6l!zb?zY'qNyY^ @VK8tC{S\q (P@*E Y:QBI R4I$QZ+H!qK.t(+ӯ2RJ%ETS͵U]Jp{P.ԶZYNOku-Lc1Wu`vR `)x C{U0_tpM\I^4ݸgIrh6qA&l'f2iVttC7o @ ]tEmFXw @ gh@S_}hIE 4tIkM?-p"arHI zk|4~Vō5t?08Ep' `ޔ@6IM`_GA `Sa\eqA`a iCQ|<QP߹|'zҡc%5)ZHD)A @D!! DW+*"B]*RIU,'(S~,ni0+@p &Yָo$RӮXE*6uhAkͿ'X/(3„sYbэylp8<Z|@j.EhyMm"jg3+Ú@p-!/ыb$͏&- ZzjѬ#":ZhQq\+OzDp$ycԇI$ 1pf*U" -):.m $IW7Up'f6$)9c! <`0ab.yv5ڗd8=wOb,` ?FaEz^C"&ڨUK]>` 9Ib!?$Ԭ4BӒ!+ RiIZuL`StD'.yRF%.= MJpv!UHba'E\ ̉ UU`L~ <6L*v!3Ib4ʸͫpȹ/O\̒,fE eqADZV Kw2>ecq;I4َkقֶ&v8֬$tE4 Hh;6EF32@!.H *18,Í034"|(n8d PN#H@ r>yj 0P;ga"A`C}@"(>1TPS&LƎZe8?_B 9IfrJ Xe,˄}28b!cA*9GNBW=+&nOj9%AU;Sq~ U3DzȾ)|/v"Ed y?͂Aw-cx*?kXhHHcej`D2um#fhNjWta,b9#Pf;NIscL[i6ţ$pSg}$NǓtN{RFL")RH2V 4?@0(ǩDd4 @,I@@ VԀ_oB\|9-X(XS ՜ODO?Ӈq,,͂>9]DD&Qm5@JEKxٟݦ@x@ ELCJ]YMMI`LeR`Pٝ-˕ɔ`YY9V\ ]O` a (行.ʅL]L^ uZ8u@=#MS^^TQ^Z\ hB (?4d 8A_1( cTFцMdI@oFҠ_p MAи@l]0[wPYdDv$}֣(} I2?[tQ*tPG)=I4@8|0uȝDФH(1\3 {Ł%44SŕItXb{,I͆!HѱA%@mOIICi LR8ESD ΅xAI,YBDCJMYIݰKICąF`lQ INQ\J  WP+Ud ٟ-FѩlJ!̾Dgt2:eFGY3T^(y7ʚŔ}4BaCact Lǭk@nt ?(%ͣ_^nX[  XBС!(\a`n( Tɖǀ- Ud GD VIُBJygԪFj&Z LfjQF<N}Ⲭqx+n  \b%Y."sg 3]3DNSxF#8M5J#REk_1UczC_Z  ˈ֯F>L& @ d<_<Ԏ,Xb\d:=I@ͅ~p4 ~a ~dI`R,~J (i4Q:4׎2NIH JeӞQD|{I˖%묩(4tD%䓉ٌ\ݠ?|I ͻqn$f X&ש\Cjt&v$F(|*\|DrYM2M*LaY*T.KEn\orArooV`P4n4R]QXh (Q4yR( l\t8M;0~Gl$*]!Npт4B3\H 14A~PB bQ>J4 N_4mY&1@ Z֍JDݪ ]"ݞ͊O x@LI $h補^MXnH\kjn瞄̪V D'v&.l2vЖm=&f*(^eEe\<-3*i'326R3j61^IVFR|oy38s ycE t1O j-O2@ᇙG D@E}Il@J`Ti&e\T$nԎmu!ϸu{ܶ!'@^s8dDr=DjL%w&&*'wv.Y6e3v\J+GyT-lwnJj6ysk^4~~;V0Ʌvca}jdF~yؕ@q \$LFcǂr,GB*=K1FXy]Lf˅EQ0z0F\5\~[J4.Mm#0ȕW>4G&-2M)ѠNSnU S#E0h`A@  ޼r5]eѭM>%>a΅5I9`09R,"Hq.n&r|H &*o &nʛ/2ib#2z4%عJW:#op^ia#V!Gjۨ'uEcՀ#sHGAv(p3N`Qa tdִ\xG@{]0~7:;nt-R<O4JI 8RȘ2SGֆ~@ duTșl,'P;;@XaI%"\l<| sxl$H^d| _B5j2C8G0jrwYR<4x CPÈ%6DcF#j\qP4Y%ʒ+MtʂZ|sMd˂A[cI AqԴKczu)LְY Q4 4& 9_ 8Ex BJ9Opx(s D78B=$П v_&UL/jS׃ k .t(hG8Н,@ 'L@nB~^ &X  'b@E( B ,<(dK1D,’YQM61  J6X6G*(ͳJȈ'\8(ʅ>2KR!>80s3Ô(|IB:9+(**HH 88Tє}' iR.IҠziNکP, 3 "*+h+WW]U`5?`c)NZM.럿s3'r b C=H]*'2+(v=m5t+Z{KH Br n{/': !B egR-  b vVXULaUAMta9@@ϦpЃ7H +@PrAm00h$:5R3d g "  ǣȜPE9ev0YspV4UaJL@Ad˼ř@g1C xD`1=`m0Ui| ) =i12nT '>rlFaak*IFURh'2MVKҘΤ=c*J;){>CQ.56%;&~J=5O)$''ݧe\dTILRf/RKA֢>eA9,b hb Ob=S4 N _oc YR 5MhFij7(nWg`ؔ=+˒uq:X*],`HL;2HShn2ϐJ2b?h(;ѲC"jvd`of, UĜW | LB ZT(VCgfDpQr0:nI^JLFɒ+@"f")㾉s,sqo'Q r}bUHH'=rQMEPT)=B*`/wG$&,p:EdϿqSjݻ<P@ )xb%&3nW@ӐvUp0_.| M{r<7IK 1qroX̉b^L R@ruj3NAY@k-z^ȣ7cz14Uhi6mqF&n cQm>i;uhdӒHTQ^tm%V$%]튉(`S%&P:csۻdcRĉ4,m5W6KR|Ȑ^BQb~7?f-2bUףZew},?0Қ?Vn `=c/$Lv2)P#3z4N_\]e<:2I&X~-q^ s4i隤Mڌ'MxvvZ$ $b)"ȉhzS# ~)'b㊎ӭ0@0dt@g9 -,! t 3s:A$ ®H:=8 Bb5Z D]09CF0#!M.YVYphp#!;2d!$;@y,`L.f%_fcB4CI`>*d΃d(cZfn  k@.*Dr0p+ne'<͒0 ԢDuJk.K)sr.Ѥe˕ q6IJ0uziO0,*Qn'VP?PK-sxhbQ(HS0"4ɉ>Qs.?zx$ 7ޒ}3~ѿ|!(9m AN Ha΢@^;6y/l+?3n88HbK-Q8Bg-dMD)L!2gKs$ttd"K.zgO~iPP~)oASLl]G=^=Xuڗs "FjzhZ~ ZC|w=BiX!i9ơ zƧ__". 6=. ǝU=r#'4U-ר|8TC̵NCu,8*=lFέcʎl}?[%v90m/ʹHt]Ҁ61Ѿ6ӖiVײ4O\+M]mKe):lj tRMY0)q,qJ&.ا{t:PXu*O.8MzɹVaZ#` 7lApM7;^W7:.Ecm,۝y& o)R+d<5JJR28p+lC!+]wrEHf߽tƭa\sv p\.5w_Δ9w^A`tW5]$w{rFv-[޼Qۚ&x2؉48`a螽 L?EK .JtdI/ @1(\ \#8`^@ ~ ( B߀ Ӡ(mJ?CC( ( +?)0(P"i@ ^1@^=d iA Dj*ty&Q@`Q?#l&G%eTx31dN=TTPU?iIUUUēA%O7zU>iU?%UZ`+YŁ]vtױՕ{'aéd-iCgEehyfaVpBkqVlx{mゾ!kA]lu0]!]&l#+bշ]T|eםvL |W0*H B3{豃\t>NACZҔX"SbYKAАJ#l$5^]CixkuPIo*GsfP(~vD"v.%ݖMiE:TjQyHYSRl5Yx5ٲ[VГaѶc{VUˁem+]t9f= ¾onpr Bu/K謊3 ?&] >F˒{7|= z޳!L; !Hh$Q -D$ C@2v&(B>2Ҋ4$0=,֬1eLi@L :<ĶG%XHH%cz) $o!\A. !m25!p$SIF(O4ȍ#A &" &rpnSMA pWevN0Jҩ)CjS^W bt`-L4,o-Vj>dFٖBH+պgSиO/ɖekax@! I@hЁ$Wn/ 7 0K]C47 EcO Uƞ!Y&}$ ix3Ї R#E@ h q@#Y4-=wj\F®f'!DZ:EXRCS!l[pt:2+ioaT6Ik AJIfNo uRGP_pU"wle^KV6R+O*֕0R_AEfҁ,_3X?="pH!=ڑ3QrdH -I\Try%fOrn/"2eܼ%dn31.!FQ&}<ӥ^Ө7 pi SRI(F*$?&`Fw=$A Y+8Aip!NBQ ]h;9όFDZEYهRv-h9It!2xh@&JЏSoHB2*T DSvPx7ه%#QiKO/|+Yu4܊EŭY#ו,N$B8 "+Y2ֹpe4 p,I?d hS;>koJEE]|\{[v=]b#'1]3f1wKcȉn^zcmx$BH:˿R7Anuo`?&x~߄O, *! ʕ&qv FQ4r6 7C~adR2S!:"xdEBfD>RaAgbax5Zt]3p"`$H2[Rab#6z#YRW['v>v^C46kgpc93F6H!BIs81(~rpqqR{A!)0 xR1[tHZJui;Uy#Ly$k>X\qk\o٥lq>s.amؒm?6}n}w$8}햌]& 06P:@r $g /CSmf'7'q1&Fq !r4Db?SF$:D 4rF)cKsFeTOcSrSw2BEA&^2r456H/qUWouHjr#nu}Ufb}Xv/&CgE(8,IzW*9cq,1(BN$w~')$JY1aPF8xaWxw;{ȇzX;2+GaЈш-Ԣ\>ꔖwE{٥AlmhmQ3@``n_I:f}8Q5w}Fupطi$}o%'/vYppܸ 22%F$2!t/h6b3D(73$\Qr0Q4️NUh4L4!"r4& "H2&[t QbZsLGAR%WURt9bGVבm76^26Fu}t&7gNX8qwwhqR'qDf[!''X~B0]7#f#p~WTK9k(J$Qxax]iUyi)FZkiYRM zSJD%N^R]NN5(l$|'b?/F`䗋'%cɚ}ښ~ "A46b!Br/FB+!'/",r$[95F3*)ch! NTRDF 4RURe!Fa=$Q$Cdj4%EDt^$R7ߡVa#:6c(v56Q{E(XKIt2'tXxU zHկ Q'uI  p0kxTpY?TdP[IGzZ6A.kR.;dkgM>VVdj٤M2N\>cq?tQ`g)|Z[vi`Bh k+GaGR$ bN3bxU2 alVCR%r11ʍ%43C6笙 DJC4r=WaqzURt)B/Rgev#qJ7fW"%rt 7.!GfE56f%QB-8Feux5h8R'qw$2w 3;ڣ;:@{x{8+Z1i)0 QyǤiɆg6AZ곘q"=MlA|#/@`D)Y{n'0on@p1lp$'rY0F5n 9dEr;÷A!:8[qS0j:иC̺Z$y + ع߉[1"[>ƞڙziUg#FTº`T:lǍtl|mvs!X7V8k2DHIu.1`tk|YYp%}A/:/ x {mɾd#{uxfA:jI%0dž`͌6ʤȜ\|aϜm 4kI-1=oPU@F_շ%aLU1 @=~-sČľS-aa!"bS#7\5L:4 1R3$"i4mDK㬞4I3=gUR'B4"A#F_VbeE )5Ww@҃{$1&y###lծ S}eyÄ*I-5IfTg #Xu'aK))/ ꛾%1o@Gܕx8[&̭Jż OZṖaJB7۳Z Pϴڴ׉.N>O?P3run}ާ8M 7rb"'h]50MU5u1Gs SRSm62"s28uI%aC#b1D R\Hip 3ͬ!B]!A6QmC7wӺ0f%c$GaWUBnetR $u5 rmV]2vpRB~5m"pu׊m/n|yϚI:_%ьνˎzˎ* ͌6 6Aa=PϺ"=66W4$Yr}dbE"5ȎY)< 90! 3Eg\J$ X4pL+K$3t"`"5 &i&0oGZ15FgwlEbf;p8ů%Wx 18kK"\ Z  ky_噧 ]cd۪}̆bz=ټ3ͭډ .x>X|Ty:nCA%b?jÿ 1l$7^(ݞCBE-Pt1}!%2C@$k٩cо HU8:CySLr]-ELF묯 UTxFe$ر#($L 3IzvӺDHe㉂Hv&1v%TG!6b,`G_TW>y*$ObILFhjO\njn1avg :pK ,ÿWpX@APr"r` lIS']z׃N%$城UJC@UQ´J7GKo xkD`@W/` ,n y7&ёd |5gt/tII^p2؁.X D6u~mYی`mWۖ.oܸ𿺉'+@{ѭo0P&[K3!0Ϩo /02~+28@. tH.b-r  @C I[- o %$2p e@I)6B p\r$RɁ$IJ!! #ȆJLdS2(52hL N9*K¸$!2 8DCh#SB Hk%*&d)lJ"(g^,4l p-7[qTTA& @2Mp"˫=,;8im :1jej6FH*4QXO`*ք2٪t߁6m7∳̒`a(0SnҎYn..vjdK{ʷg%`o O.;px #0¶\lA@3&ʸ"G?)ـJaBѰ0i*RV# GqјzGd?Ȑ1mSrH)i $8Kh[It&0p|+bG>N},bDHMj)Z$^&D+^UISt*8%YUn1$ŗRR&%Dx`LU':iJcPӃ)O]Cp4z=!e?{! d.F^I߽fz&*ʗh33d:9l)|xC$F` i>vp?kLiY0Sxfg "PdiGlZ#%: 4}KO%m/qbI0I$R(Ɓe$[2plp[ń;ͬvD@K#Z&!r2HU(JQ]ɁDlHaɤDgJԙ4TLR7JإTZ%+};`b6zkrˁ*"IJ񎳿f 4U Yrk>cFV6=Ps~o :͸:1O{)BS}e =Z&%sl%Xc+*+0eag&0h\E٠^nLsӲ-8q{B3$@!@J<|SՌ,bx(Eik4"ɍ~&PFHA lVŨU2Jo!*1KcBd]ڦF.Fl HetH@:28JfB۽Td%IްZzjxRPJWqE#%(mF[T:ӒNsd cw\G:%k&6ǹA502K5wBCxƪK]#)C-oLА=t)=eo|״iιU}s@Le9K C(Q-?:8\2" &(Q'o̓8#\qW:3_U\jȟJz-n%kby$)Vq{REHQ"I#6HXTM$ O$&B2=U\sZ\ O8塛A s $"e" gX̅qk!:⹲DJFę5 fnv5mh;lQ}.()H0YQ~HpKD5#%3^*ss+ȹJG@Tg Kxã:R*$+飸“8Q@4yCBiZGBI:40<;h:3Ak :( ?S6@ {CZҊx&HATiJ#j h=ը 薞٦x2QvKJ) rQ(B؀@hzb$,86X5^ (9/p/X*={=nQcm xʀ Pn( BD駀(?{O<Ҍ ˒` 討C ʑ}I638/"!112 9B% dzJ+.ɣ515@+F211{`6@6Pz ԁ SRA >cHUz 04ZJЪZ* +E7"\)j9 ʖY)'ħhA5$ã&j8`'q Ɉ"D.r XJeK #:$>= 7$]˵n! JjۦWr1qD.DWxg˼ˁҌu[@y> di>1"1D!0g%V#B @.L; BAq/ⱏ+#G8;2,?>@qh>2`Gᣘ+耉[ zAB:AX:2 N L(Hx` (S`YWJ$}p,ȹ+;$CE)38Gq*2#oD ,)4 4vd99L4tΐp @ÊIy͓Iy=P3* PȰR"Y =_" a݉AtTIdV7$2 .(Wkb Z.~3'n⎛8 M#jPth0H7Č>Y/EXUX1% Q5B0]P" X('R\K9ʩd[Xeؽ^#EʺX SECDZb<[Z0V8{G" 3E2KS$՜#7[q@">9+y DbWu*4ՎH݃ p6CHa+J ú`A-SiӁׅԊşݡ'MXQzό `hP\7/b)h QɿPXkY['hs/5/m!%mQdXe,%PXt`mRu0U=իQU.YѺ1uCDqfgE̅cZHڊ$RrVV =aWګ/[/3"g1+ KFJ[7B\Fe2t+Zh(>QmDVq ][[Xg I'#*+"& cXË0IȌY\ZY]V؅C-=IfED9Ej96͏i! `/nfQ./Q]QÌ/hm DT,]2UVZev%\A<<#z숳!Ჩ*U#r. 2$: S@Q-G{1bE1{@3A \dz]zp5D%n,I8ƒxvj<]ZLIP^ @/{0%4& ưWߋ^(Tq |EI *ek/C Wy1.Øz޷tDrV]풨QQPg%angl?/)TxMi%G Vn9V>[Ĭ_y *~ J,!y[8T=@#/1MN)kE\6a۾A脘XGGC,Lb#_iX盷 QEπ iM* W]멩Dh.{'cobkMvvZP5Xˎ's_NX\Q,g+斑-먎yd"MyU SoDȮmlDlVT*omfʌv=Ѻ\AtܥtNn.;i;eaT 'pqY-HB3Ku[/Ro(9f@#n4Y+9!)#,ՋE 5[ $4v3:Hn݁>B~p?N| kg} 0ip?q`- hyv4'O{u 'D"(kS{Usʏl3ਤQ[JÎQы[ @6CrVxEKegm_lﵹWhWDp?m_Y'`Aˆ8XE'4ءA8(@ D4@$1hi&s>uFNG;t8FϢ*ldK>rɎX[""2 =xKD P"C"2`p`}[fY {56hA? !( \jUk0  J0Y A ( {978 tkMf: n+=vٝ/Hh6iC$8  "M&1 pB7mԕ]0b +1HX1H1aKCYiPA@*y@UPDUfHSiD-%_AY$1ALFC79FDtTV%ŴK$Dg*hM)T-!?ՓRB=ՔP=UԥRsTu O^uu'&YY6]k!0A\BMZe UVbdFtc*XjpA텚a8h XYfG.p&Ao1g&q֜u kE/l%PtE[R[;$Bm5  NPRu{NU_jg ieVR,Hzeo0B_/l_ȡN'7A2T-MB&8l2 OY"K 0/# `1j'XO7ֵ<>%iU$kLA)XfհF9m+5igCT67 (ņ'mذԃE#[8S! 1XS eݐbxQ(2OGRԢ0^,`u*EJ! -W(IJ;E۴6.laTȘ8Munkt7aɍ #C,lWX]h5E2zD^ҹMYdD&Mb7 &xf%e$Ydz1eϖfj#Hs!>feo79Wz앞`D i]ynf,a ˳aV9sKne )[ќKCks?w:ډbP@]nԩVcs1ѧ];{?0="£j@Fmo A?3#0Sx^P0g$B{I )S=7:Jk4SBꭐ| jP8Y!yN֕XGVƕGʑU й.ؤ'=xl#XMD݆EE`` ,ReFZDdR B4 Zx`F4ZDݤ`˿ FϨaGVGNj䏧)Ŵsp%P~]A{ ?p$xlvaGm! LL D- 5Q ۀ0 ʹ [BTM4`Ɨ`MK _ ܴDPEmDFD?'TMMp\ND]U| PKDL6i`e-,\0xiNq+20aPc(֜Q=dD 9Pm |m}ҵKn%sG:˧1WH- ՓdMWhч{(GnpTdy(rƊP aD9lMdM1y Qq[O""o_KKɘMyPoML_Af ۈ_Y--Q4'`kr)])Zca&lFS$mS Zhk:]ǚOfLDgO]=zj:EϨt|bF_u5t sIjn4`T H&چ\6eyڭG)^!ZԊ*pjBP*t JX(ț%UQZU`eYI͘k牽(P.ُy՜ɥAeNp\{,bIVKMHNBVfm+ckN2}39f%ҶDhrmcVnj 8 }O:YS7U<.>66G6`D'pĤKFxStڨS{Zϸ}GupZɼЮ2LFj 0Gq0*F"+nxdE2¯6H@ Uy b _]UUVbh)MI&kN1.X"\++K|!>&OmƗ dV$i,5',Tagi1%9dlVFrilij d *gc:rV<KOu|Z)\PE)ǣR-G-tvq\ZLͼ*-Zpsj̊q4@Qǯ3g< J! N8q%jp(x(PĊh"QI+nU(X4k[N\߀UE%u))բ%*M5&2Ȓt:i:lb(J,&,SZVjz#)j '.^Dn}2d` @Fei\Kq oԶe];L\z>F,Y2Yr$#lZ9)2nSoy|Z:'m|3Ң]28+'ՆZwVd={А$hv&yGrwyd۳el90/ nvG9Ck̙e%yHw_7"lnDEG f))b_^GL)aE+ĤzL}w)i2,%]c텧's-%Rc Wl#b/f;l)6xdl}#{WXSMu*bLg -Ap.5ܥ틈:8vQ#qFp9gl< rɊ D(d͕$y>8Iɦ?FOç>'>=jѡW"}*L],knU ?F$\HB@Cp8OW_̀!\ a"MziXZ Htjg"p8-(0{9i$ p^埴aώs={wK#K|>aw_(:( 䯄)aR餑~i2h"^0B iO4$ɥ$$ ]<_H6ȡ^jq(d@hLVɠFĊ&$NҒT'̊jE/Jͣ-R&Jb )زMb+)悫OlPB Ԃ/H K,ӜCLϨ Rp3ߔ6\SnX6XY,X ,0\+碳κӘn;6gŃi &onN\0$wHRiM 0$ : u"b@#:×t&6蠋r*IxōPJd8f|"bIJ~r bX(އ,9ͧJT->:j$D P ,)D4(F4Tj5uJkt"F,E0>6=323>ڄ-`&-V8 TcלrָJMtfd^4骋oZn3/t';╪\s<`V7\, pDQɊJNj h$Q#F_(!)K`eN6]LqVe_?*1pJP V0Y+I2hmMWRNWSLWj6T2x[ pé2t(W o8&6uMhq9j4 8$9R9ݐ& Wt^w-iN=:8rGu"o+?3OE]!+]* rn39Lz&[DVe"Ö4 %"A2 BHB3)[xK"E J (#bNd&-'H7D'%+R96UMM8ғZdO2TVOF+i(S513AUlE8¹YQ# S(@F/.N8UJgaFx|xqeivpU: w~'젋?1ׁ)/M%$$5$'$V2&2Q!7 #-% cnf )*"`O)OZOLBP^@KbaUpvOb^ԶiY6Ylt1 9wɋ Dmn̨\*PT sXCDf]YUʚznWbȮΨF-*[ȒMt]KYwϲgͧY]|^5~샠t1')rI"ՈCc+w+OPV#f/qL,xG+ AxK}-4K IbA(K`NSy,P-[OYN$LMdP(guF-/sb+G+I# C'jP pHF7*i 7Xp0@CS-;Ǎ밵<߱;{ܣyx@A O?~T&LZ F70EiMp7VjK\p[?O}3,I?S#=R_P4g @9T+˨$,>J0K6'[qsfR6N2.&ش( fݙf=▷Il{NH11*ά9˙>k U}V{Ní! :my CWgw}Ȥ4x%|%E0 clQ0B! 1{Gh&Cd1XC? vF4j_X ,]zg`ʦXwlrnք,C4mf`9!`Q닐V&X\*.$b'1J\^7%B yXKiwpeZBWvY̆[ߚ|CtŇ!E.$̷"s$r7#+ M?PL Y@L U qAʇI"E,90L %|)( #H%a6)G^ղ$^hΝآ*/&,h΃FPΩ$z .,˞z% Xf7Cx03$Jwǰ'hJ  rc"R/sC9E5&bϥȐvK\C#j#wrGH [J>$TNHfL*$'–W  cS e8e.,bvGNhDF&%ΎOlfp0wz-Kg$fb9g(˛l(pHHT(KPNl(0QQL*ho@E+*7bl0N[hXBj%%LFrqЦCr QutdCHgMc6jϚK % !3|Jь )%'b#eR&j"HB:zNn$K:)a"azMZtFPzBLF .& l';wrĮįVf낒1-pۨRӰMLJ+N -^%-b mɘQ&9lu%i#xA-7reY#8Ţe4opA /sH +s|st^C wz(4 rvt (w"7蜮gaL 7$ $Kt,:*d"C_FJf"gx 'df J&DcKjFT,=^*b +{" {Q,Am踮Q_ 4X mK2CUvtX47c8P4073Ju9@u)h3E2ȏϐXA Gj5 1kNB M24cu^O-I"'b21G"e)hb_"ezHRD =(x3P*iIۺMJL‰RcQ3@IT_.cCs.Wv%CM4HExDePi0%  F7 ]w9e=D[awR \Qz )yI/oM&̪'b|z_gP"(^.JBnff.NO' 6"! U= ݸi֓RP(5OuRL =u.Ҧ,&TqKE Nu5UMeg#oLIoQBbCLrtqs1jGj9G>ŗR C.o3A}Oglml}ЧlH#$~GEnU0LV"IdNcQtQl#2MCnD2c~K; $}2)-0͈CIDeLuNuck?M(cQXEpKچM؂P)0U.pV#a~BieLWt@g9vuI 셪Bz: 4\EHr~+6̂0KCqX07|×iDW*4GX#ro7㧰HN[2wvRk(SfN:NOz MB&Hǭ81~G" K.Yn-TxqOF2-5mlKbK]1`=ӻğ{DZ(\e"Ë r|*γ91=56AX{K%A8jd5v9lk+pTÐúS8 [ފ卯2] 0 n녌ǹWЁſr԰4H6V"3$\hSkr'o]>j80*'5xK$D$`Cvj?8 Q J$ފUH5 C$qΠ>E*8sOC^RReGH+9Vg3n2:6eSz^ 1(W0DUWJ4R~ 51X:Xn Ǩr-Z)tu05'.Ie}%!I]4ڠ#a 0 Ù'U[_R$"JO HɱpA sq&c1q4Jk"*Jl6ZlSՄð+x.ܲRvǨ+I#Sܨ-{cSBA &T …!X`p4ZQH8$ $iBG pC? &kwȃ6KΡ-$oQD'L AJHt֭rZjRO'5KVL%q灡$fVޡs b]P*MNh@@f"M ڄxAwYʁT|05آ=Gsj}Z\G2 (ⱉ&_Kp^ K {>n`^ Z_P x/p A_/}A`E EdD BL,Ԓf4EBݱ$J*դP/ԈP1"#N,1gSi%Te%V=U@XVfX)(OqI$P~ '+U 5x5[aq5vE1T~D-WQsՆhω )җ)`hC NfhΆgF]Zzq|=wN_ʪH^s ~W_Jx@m*B&PCL0D 6lB"E N$aK*F14LbN8DuХ\zRNu]QdB V!Z92T %ҟ)~ E?:g_t ef@l!|r]U&\b#rm},͂h[; 2;Vbw6wy5)t11Qfzxjb35R u}9PEoUH Ͱxڢp . *-4M)gn4/OGSK1*4M,ґD]U#R;?\0WEuVX1RX^UgޕY"oMI-ۗـ# 6,]3 CkMd*ʯBjȐgYd4ᱜŕ8nE`%0>9Xx"3JA)*vrP4vg(f 6tV$3pҖ'zkc9xxhoC'0mhJ- E (d?N) ǥz\`ZAռpLZf>ަ\)/WXV;, #49Ko AvЇ'lGaQ2L='ZX660Rl/;[ƿv K7C&Jlc,E40A ;O?F`hHdD NaQe4<ٯd-K.ie|d1?zEB_g= {B*o  D͈(* 8"PܑWqq5K&Сҁ;q7N'V c7%6q~l.5TDeo(@8=jUt&ӄ g0WAa֯LzCo`Vn -C:{ڵ.tU>0ElU;=n 6 d*8i Od|3B]$i=O';#s}(1wn!RhqrC^IԪsGaW\>D\Uȗx_CIC&$kLRiP9EQL5?Ȟ+mIJdXyڇce>uJImWiUϩYVkBovM8FOxZ=БySK8.9\`ra鯅ݗe鼣USdcUɀbqg[o^[fACbA­Әc]ƮϔhXNä{ei͵̦`FzZ©܌jl^F߄\ROO48EyNS\9=nTtPi`Ѡ\ܞu˒i٪vDg4#vπWɄ\ͬ6$)ۍ]Ї`uC6ˍP-#V7_OYDpK5чmUFm8߄NرȚG$A(~MH]X! u:$v龦LBӘs\aڗQ5ʪMMMڗmมeeerrrXXX?5@.YX2?ASRD8m ń *\ȰÇ#JHŋ3jȱǏ CIɍ\ɲ˗0cʜI͛8!ɳϟ@ JѣH*]ʴӧPJJիXjaׯ`ÊKٳhӪ]k{B{/_]t߿ L=+NtcvI ԌyϠCMӨS^z ="SYxiެC{'УKN먟ێkyS̷缽ӫ_v<(XO,bxf<~`7nev F(VR=;q8P)?"f mAB7%BN;5cX@OC!xHN哓AFɖ)?TG<?=@=Ceqpj@7H;ϙÙ)`O 'R&G!OړOi6ϥ-ỶN<#*OaO*=G;t};T@t& *Ѓ*:"V *S@nSQjGlx@ffUQ:?Gp^tGnxhq+>9о t} [%O|"gQNW^Ԏq <蝹vI@;`:mț\Ee IBL"F:Z$'IJZ̤&7Nz (GIRL*WV򕰌,gIZsYT^R NG0`T2f:SPA4LhJԔf/9J'G8)No@vJ%2ϝ̳ 5}bӚ @LcEAІ.=!f1T?&pэ:e HGJҒFWQzt(e~R*ũUYħ ALVsf?}Oe ӌ6+VªX s +?ĺUsXAU:ϵVVe[{N /{Ԃ&3uf1U ԇ6 fS\*4%e,VRHv]2IlRzmTkY5azXv}lZ_ҖKMI4ysU?ֶZojWܭucdszOZ%nZVߥg?U:՗̼m3^S֘}h|!:TM¾T.;oN"`F@p`_%;A0#Ί6RQ,GwBZ`Ro1EvU/z_LIoLծ؝+\.,kX Nvhnw&wvLU'uzd 5,kZQZO9N mEKa'>)4x SҟVN~# <( MsjI\֞x)ֲiM?5ƟUkb7q*ULU5%D2k:)I>*^Xo q &ظmr7,+oWkLhjJ*hIdf|yFʝ+˖>[e~ -WشJE`=rj:YoWll׷M/YNrM-灤qv_y7mVaVnIǀQC `zOqt4ua?yHQ75x2pg[Drbdlkz7jq\dU\CqM}?}}LNkJ}B\Q6]vWk|~UOgrbhx[oTx 6QeQg 8QG=SGSQkNGkDkQȋg8nj(WwՊWjeww̖^|E''b6hvxgvHZa6ggh fz0`h;whQXQ au'u'ō *`uf^E[WejMMKǃ\M%Vd7pjhgqݧ?Hwօ~]Uؓh|~N%lX&x''o8bX9b(RwF%)n $EGv9o\\ɐ蕚h!fVv5 vK՘baWraen\zk7q:y}1w? ȋ3yHAVV{G^6&YBw![՟$cTlV^X7]IIՏ`Iw{GU`I>і}v9NVSt@1hg|(#XRPQ<0 iY_YU[6[K[F Fmv#*qrWViաD*}@Ox(ٷJءv}Gl#j*JИB(Yugf7zzhxxiAjʫfѥ@g&UU:FR`a\ɇɞ3ǭ٦ mJko5Q] 1eevFp?(^ե[Ѳ1h YӹǻZhg=QœK$0l4:ʽy*+Ѧ+]ؼXWhX]#|̡)Aw;ώ+J wm؍O! _ nԣk=Mm'؋> XAK-.0]4]?@:y =M15ɭեp=LC9HhH.k PPmL }VEd<@}L) ]] ‹ H}ѳKPyN%]ჁA - }J7@~U Mf z(>bLpKh̾ A>m`w-\mM{h=o=|o=fZݮFZ愺-[]e=^ 5ݺ!؏Mln}=f|O!L|ˍCөęږm /Y[IAkȽjz=4@>V:[**=a@l}Nƾڰ,?ZgBN\,>z~ђܛ;? L }Y=}ʿ%.-= ӎ8e鯧DЏløkV̽K=ƍ<,ㄭM&T]+JKΨDOϨ?m Ea'p}l}dNm?q?V==T~zBm`w)~j>aHa<%&iᕿ^uANUA2G8@-) O%`ۉl+y~B,u&C'7MRG(+_d b8qMnr0Fc:v1sۜcI̖H4uALfJSp99lwqŔ;T:ɳ&x.D1av|Tf'Zz[(ȭS "Nf INEd$KBMFă89ǫ|vbT ,fC)IJ8J Pbſ5lXUP*dfJ~c]"yKT .xSdOB229dg'.)-!.w7EtCkZ#فW"`,A䴜ޥNl;Q8a?"benƝag;G<Q{=I52.ǢL/ $~3}$)ǫ%D,U5֦ACE`zWo 愶V=%N@L?+׵u$ɦho+9 -sOu h,34":]P&_gS2+I7#'6F{G )LRP#LB& [aĉ]+"rȘϛ<>?Rh+eVU n冔U5PQ _E]3VD]cV.kVU"5QIT b#,E۴Wr ՙ&/ -. dE7Dd2kr@w)S4OlRlPvy+[qNJe*3sKꘙ̤Lb~ݔ 0^Θ d%[rP6p Nm2FڗIF3?a1=i~Wu"VTPDYEH\y2p)&lJe*!KHJsl Qd:?v9Uh8Z6L'ۉ`Z,^8 |Q5"[˖Wȯ%O|aW$.>>򼈖۷>0rFL1r}ݺG9r˫ŕqm5cviѤsL5+60yeoUr063WnS_e*NjD3-9 Ji#<3!\5oe%7LHE趻x.VǗ>N ~3Xz\0%Ϸ[ z׽:EW+40'x;J۫66!z 7u30x+KT(-ی2<,k : K2Tܝ΀=b8=>A½Ö=n1AˮEQ@i+>y9:,9,*/84%K{򃥠˵br[bA,Z{A_r&{>d[Ô`i2'Ǫ04>&1\'E1r @& A"$A!]mHF5݌P%fb%v]d⌅؝HDݝ3Y6]^]ԕ3ٙ2&ᓨΝ|\ R t;=VW)ߓiȅdB}Z+ߡLRiVL4ֈ 5RQ߈dJ:]B:=?%L%'M&[_`.rNK\1e7 >PxueBdBv23ɵ\Scpa}aj]5hV b وx]v$n(bg CA-݃dnT$Y7j(^Mcȥ{ŽIU^v|]Z ,ȅ\dEQUrќ;WQ[Q0ۦO\NfMM}[c KiQVnudnM\ͺ֡h` erh.:NaW:gV@υfe&kݮxAjF l^f5])%N *fg&]+, xf13e==_la8=fa]cUmZ( &΋hVNp=jZaHf_1Qەf䊞Z@cQYRqe`WUj] &$SaaYvޓpfgfggav<\^ki> kkmfؽgkmV ] m8sfÆ4!a cp^eAkh=>\\\؃ľqHAؾāڏvQmh[hE d߳5+eukkMiia̔H`dvdmsZ8`?Zq=f`Q]\0EznFNpNHGG qXmXt*0xp"(lîU qqIGW7t|]|eh&sCVve7X6dCNmVm7dqT3&n1׭Pr(m)WMu/nHi[R{є8wT\zi(dBN&h:g>WވAODWWt8MThtK_GْG"krb$fPwQ89ِxÖ ?Y]]TV 't>tn\>U=PrxWxBރ%d=΅>hgdWV vgsw8TUAMge[D)B{)%ߍLi.[.owOio r%V ׫̊΅oC=PBuhsszGsWnftCxEWfݕ 5n >kp0[+~ NԶF~\ pxfa/k=j|sT?}BNgBP.Da<v⡊M;GzLMI&CSF%̘2MKB2d'!of獧7QEsgNJsMjBd|I/W,ʒ =ZLvcJ 81WILǯMM U/cqŇ'R\٤dĉeRIԄt\ԩ;V?ңamM[wNXIg~9ϝS,SK[ݯ3o!ۄ#=zUXb5EVY瘂1b=c&D B@zDݥaF QK-RX1*RL8aT2#!YR:#8tcSZaK\qVc%RY/Z]e}yt!<_'6A IbDQMaQf-aYev_V^l&ik&QZ pxJ:ݨѥq֨vawz^lњx%^jGihFߢчl}1A"eYF`~RW1zmx@q^b!r[֙tX!uKWX#W1TvB&Ď< ϏKpM5$ZՄ[QXcqL(%Izet2^Әѹ,g(&]a-y'j8ٵhi&[a N- {lZuڶ &aO'ݩeO1۽iMˁ76pWu|Yf_Il~\8F=(ynaq4.6D g_Z-ujHM3e@79JH9TIe%2$IF+ŏ~ 7/&ғx?yhB'$(Fؑ֔Pc]?CJ2zK"KΗH%Np"a&N?ҙCzXpL@g2eu!lLf0ch3T*Hd?flfWci4 QKÝR#$e qF? $ ̍h\b.v%;%zU/LpbBED1`1&h`,Fh</JX;&RsY1ffx&-ޣ\SkO=%|=W?FQ ԲҗdžΤ2N=mDZ%&ςM/Xw;CTB}0&O#3Yg1iYbQ-(G8,,GڂJmk[[@Xh{mʯE: )QIiuόgim]:7^z7y,bȄsupWU"U\R2quzɁSC.߆<6MBCeQNjyϪL8yMo2#waoby[t`"YŤ[E$qzYc|:фh$SP=[)qlX{ggtvX݄gL/BI+bpZ<~75£c҈e\`3D>fX .eh*1zQ/J_=XE^RF f=IHGg#2JQV%Fub Q L)z *޵ARR"Mdp&pnWVf}i-`kXZ#呥1(8&hhi!陡 inf\Π4`"L^NIH7 a\c#ƕ`rTfb#?h\0M^;c>6Ra34fvBAhF(h~Jg]x}B}fhei_'LpHdJSB9"p#W)PP,Dܑ]o٩xb(1MSN*L{'1jCR~niYeWZ)Y1荥gނ &r3 .%]bF#LkuJ4dI#`# #r0Ih2:&-Z=ZIh%+&3*#b!^1Hc~!LT?-z(:N\/6,#8DFJ|(;"&ӷrhr6>fB^ *h+i2Ni~Xbe"n~Be>~/'ML,.^,-R"-鶹L8Q,q,HID?o}/*~Vo!&Y!mB-ږ؎c~a1^ƭf6]!dj06k&D/$ikBM6hviL$خDo#?DpK)p+1춮n:V5-}.-T}D$ĄBg,ulOYs`VQE)ԑsV1 %2g/F~ !nBlWr/f%Vgn)ˮr&0(.rr'pr+1-L\_pLԣC 0Cn1 C/p/`2G+3m 02sT3L<3 kT9B +k}I9+fB 3^/C0>2>/q}&KZrVn&קz=|҈G/ۄJAIi$ߟF ۉ¡BYBdA{oLpmD! /P1ƄBt%?-M-B~J5 >2L>ò+'V0虵 ;s:/ڮ+8B4p1&215SE4`$Da{s?7[a`Tk\1\?S91=+,˲/[Uor&4&)CJE 7CH>qH!KK7Q$ER`aA{4xB]BLT{ u SM,OKt`vk*5As1oS(>rL|k?Mv=Z0023]1s2è+ s^#4D `?saxB#p,\?8H0}78{ca5ݶ9߲\'D\caII\01Dy)3Ykg2m8}&\Jun'ouBD9VBDo$ m{VU&DO])Jt"2,ysLtzG#P{#NPo}gC$0t$`e~OA~:[5*pC8s38D8(7*qC+׺XO}Bܻ{,]vu5@Y ,X!B:|p'BAH$A<dŐ/ Q9k|qEI}X1ML3B$65jUb5z&6KbOc ICkɦ}iܙ+FþEz #1Kmڀb77o".㗥Gcҳ(o ř ed}AnLwȑ_"_ ň+N8b:ӡËΖHbTCnHs $^YqOtn݄/,}ʗj($W* W\(H:H#.ZPr%|B.Ag  *pz5B )2j {*z*+Ij"+.$;@%˰0. D Eo*!8ؠ&,B$>MQ06*7"NS$`8\$xD:KWc &.l@v-m9-?K[{l:W$rT{S8Is&賐VA CPd=7=,) FAb_@5M8[v@!k[x2,$CO6 +^Hg/qUY!.Y ɡ䈒s8}@"9IHyH!źzh(v6q Xт:g$>D^=v;n&ǻX&Q%?Jf+h)Lҗ 0p[ %) X!9m " ?e`&i̡F| xS5Nb 8rطM ,$I>PG@0b{ڣ Ƕ<`Ņ[ %qP)?r%쬊4 w l=瘠᎟otVk qшF˕n%vD&tP ō:]DT Uǐ$ q' =p>obaүȉu,$"US avpmk!dd'<=$h |QIA0YeҼ5rZW'2Qꥄ:7]7>[a}'7# $HC8ĠniiO6荳{Mvr,<9gHmсZ݅ӽd Juv Һ&1%AZn#ڗA0CXݖ&l8nKuNt3)G+" vEQ#AD8JJ.5SPƆQgӬOTDQrtmvT 嚩MoTefȗ̓|u,"O; U4Qc[B ڄa~2?rg}=Ҹa2xqPA=tǑ-k )Q$.gO烇9 jImKJT$lgQj"hH{OM T Ƒ\p#S7 BY?VV U-wuHGn`HZ i+TdF-0 |%H ( +D%j6f fԪKN Ah]_˄6h?^!W<Rs\ۊi豦'&PWJ:!KspPi?, 6@y&!54+/Ցsl}Ph1*pqM>P>rܷ3Hh=B̺,Z]pd iCDwH OxHK?JH`H$)w^@R||}HQ]}TJ*m'|/WLFUVkVf!љSJ=S%}VƷj+_ r46&_Qc{C :Iq]KEkE)t'CY^OF4iCpKEXG3it>Zx)f}5 MȱOKa0O-'iYD7͙Q6b !錮RI+^1LDV($kG`}jS\ *FgM3g|׊mP %L iȬ "g:.}GSKl@h󞉨 |)j:ӄLǮn2pVO)f/N,p FKNtA  $ެYObgh+$BTNTCڌA B;Bb Zn /*iNC(osFjdk!)IN`,P bR.aѤq&002p."N o]܏CjXq B&dN B"ϸ} p%F/m61 \2$ZA13V؋T"׮&hRGat -3e%miJ„0j2 tÿ'5Sո&i\>"Ij,3 ֍ L: -03N'%)2vO= "ҞHG'Is(o/=$oQA0-&b7QBDOOFM@FJ/xppxh?11$XgX.@YaY5RUtsJdKm&*hMTN O3fmPf3O*2Rzg[P5PMKlAi92L%;C Q2S7 1 >]UQyў~@SSᄒ ?@oHlY +uG p342!WCBr9.-4,2\O-; \\ˁJ^tMJ5v!v]]UwuU]gwu bwb@BxgWvEG!y`ѵE-=.5*s?V>4=PkSO*-⽬3$!ұ* %pd3"T #fg05 6ԭO ۷ۨmġBS|홼skc3QRKOk !2-!Tm6UmMnVVyn?]nЂX-oCҬaGJpxqxqTr-rt&0.us5t!sQ\\us PauawvsWUWxXxՍ$`7y؎M_ x`y"\E1 XIWymٶ<%4?ڷ 9!_2,C۔~cp hsc7P_V}ti1릖:;$?DuE[H*wqAV6#IxBTMc|d#'S6$.N`SgIYMCMCQD8A"2(cNvi9$֞|G6!B/ 3%7T/y3+=G8:$V[{߶?dUzYF[Q"v+ן :M4\u} :xwo;CB]TtZβHIrAaч(qU(em1G8T7Us]ΧA2~XviU/~hM g"MwOٻJEg䃆jc0ġ Ll_bGX ͣ llW{q"Qzg!aQxZm|-! (Bٿt(NE 9zܨq#0"=o (\9R̙3e5`N%7e)(]BBr JI5 %LԌIINGH2tȵ@6bِwmlآe#ٸk%XWD*p` ++{.nӖ4lK#V͖h,`$lWl=n(ءgk}{l@!C WmLolEpa$+0FςE{a)EJ${PA'[^Y'xi'bw5n+_fF=1ѥaf߼Z)gs?rj㷎k:PBm:kp佲ء  ײ+꧓DʦD3#,;PUX.rJ4rJԈ *uI5Q[m+L )U9SLmdQ?vt?D8r0cXNr$٨eEA>oGEb212ȓ #,I1X~]G7ZJ1E$P롘r-L>Pt(jQC23+R\@m""zmkHt@\@z.KUj2ɧ<n HMFU'5mjBg m|Q "ibġ6g,|AATh+JꦔBQp7Qx=a8r%x\1!Tl) ӂ(z^5r&AmKK QF% Eْ7Y8ӃLbΗ|>?8k\$8c8$4,5zD'q_O&dMg]`` LMpghJ$H(AIk\\sGqxcP)! IEL+( .G( u%VrjP%*3Hi1OFE IʠgGZ|3fa D2ڒT HS*$3ng|y0Cq!7)NRi)Ow~&}q̂O-!;fS)gL۱rJ5RcfAktibfn&@@&^fA }s:^tAd u  Q4Na?b1B9`pxwP <9QQZVpxV` x NAF"gKb$.$sx!{/Wy/>==Z>%"QvkEJD=='E(ly\U4%y\0ZT\Ss( .?:|iF 0}Hw aB)i UAqGx)ȍiHoH7G8oqqw(q,~eX+-tJ`$%#6[s%2_cYNU\OODGt9b]ڰ b%1Q`"=u"aiU ?$@@ "}*v{LJHvvqZ4@%SQX#,aCKI;"*E1zZ";1҇a7~t@YոUq88~oy8qtubPI, Jf,]Q7 aY!-aX`f _6jEv>Zj#Xh0b \/)]]%)#% i uv\ vTei\Q UP\uthU$p װ@ % hSن91uNBCV".05 _ EԊ6&q&xl&k> Vz1  $gB]DgBd fR T`}WGtUY%AϘHpoqq)'q󍠡R, |1z!=Q7rYv|DQdsfvsZn#Did\ΰq^ci)]" "N|#-u]03(jP `"ٟuj`jRO|0]R$$  #u T@BkNut\vPՀBEl`zZE^Y/aZ&ɴH" VEuss`d )d$0}Xg2DlZ 0@5V) \#aX#uz[7a)\1;@b}g`~f;tto*~:~JH}q8b)w7,A,M;rXV&(gR`6;׉;יs;Y%AAWi:uZ-ْ`"hi%9נ0 K; Eik QPW7ʫ+Ar&-ٟ ПZ9" 8']42+0l,[3+@VH .L0KuI x P,@)}q:q<!\Hi7;%\uzwjS/}Yk DbX_ ?.}Qa 9~D{h WQ ū h~u)ʍ1J7+v)ߗ7.r,XSrCU| CG1;i=iu&> @Uj%0r ݺ :uО;0 = E  j2Q\7PEP <l͓Qѕ0\bk s@. ..0! PRn@n@ d@ PvGtXA(GlJqana$@ ]!茦&i%TB,IlԈlpi|4VpT`W819A8C8HG}dYFbL"tǣ֌' "qJ !;-eJ>8f w;>+E!Om^Yi4\))%0u3Ã9vz䚮l @`|0 ٛO#:A̱P P ,LEEͱd*Kl=UM\!< 2Vt$N%[狝洋{J(N X}T+u}!vJlU;Qő$^~c5Q+qԥ99<&IUWb^QUÛ|{` iְ"S^RaB2SiƫY}s] N=pޑCi١L ڗʗ<[˪]T`iP9L}íE ~ܙϝw)+ \!=R e ) ER`@ R0 ^W¯Kqj-.m7`+;B/mڗtΐ?v?}-11>$"!H 㫢c;ccBmcUӃ+Kq,!aLi-v#*QV>##5з巤圖a@En]ZA){lQQ+ʦ3hX;& \`ڀ>kʆʮ\|ڝl!i<``}Ԝho]w}wJXt 5=`@{xj6xhkSyn(#}q$ߺ-=ab3|)iq  >lu*˿}`kHj OpR*J~_/>98M-H @m l!B_*ZiLjN7EdhSHMeS(ŤIfTfsH3g*ճ翣Y)Bso5W#6aruױLP]E8Wv#huȗ0j'VqcƆ 'ce;iNjVLqJ u5=x/bc+Bע#Y/COLxJVPB0VȲ^< yJލgN9CTҨ` 'pH !LAP3<ЖpC :"C i>jDp":,$ ąt(İE?E@"F!y1( 'zIRˇ6sLK_Qsd< 5EGNQL<@H!)e"?IVUV:+II$-"uIҒTS ɦO)T'J-*QurZmUWjUʁ֦*⵫ 5+h,,‚ך( fZʩcrKf.5tP̎+ p#,dl,j ]>Cl|kCHǎrhkܸ|bY ѓ% 02(:7!C">vy8^z/ YHx먃#zWFY2!!?pG:Ce jAc Gq6EUTBG:="*@VTRiP*l2Od!!\ρ; 3MdasEҲ6m 4x%F?bJt -(xgfii1o(rXj21%'9)K/adN ko "kҦ|8ǙNM5Nj6"@*.G?9 :AZB5M Z(1-\[*!"jL?RJHH$!``H+nPOM )ԡŨr BRg:)C3:/S!k!V7ۢMtx6Nt*za7эaBVTa(2R8RxFF+GhŃ+XVb"0Qh Hao5Ɣ7BxtQ )$wiC1tVAԺATZ+h JU H¬%.D5K_#Ў֣PѴaE?h,˹!Ve( ##ebE@X)VB8($i(FRAm$5}_HAB:AdNkݛ<-.M_ E%N=e "azpoHP>2RHp5~%E#GKa`/yB* f8WT r"Eb> %B5V Q9<U#:[m.jrլA83*4UhXu#L{W`a#T-2@E rP0䠉KbWc(Y9hG(s6A=y9Gbc2nL=-SBƚԤ \ $|U\B#dHğwRFĒ}uDQR%  QMF0ZBʉC 62LN%CY(8[@qPi)="19GZGFI/PN洺cƮ&DM(Ss &"7AE⁇D/,G|[Pe.D jEC@h@C ڰb8F0N 7J4cX~EhRD>IPnMۡT =۵Tы0p rEmpPC'` B@*ԃ}C׿~y$* 9) 2F;@j@JEj2h;=JBA.b0SSʩ9052#8 h0?i6).aY($TW\.ZFX*bKVA*.#d† I 42/ʑL zD ;CdÈǺ9Ic "%JR ia0tZqȦMdj:*C3@8;$bL@P>#K:BG@>| G?˥BB,ObL$BA`$93y/ i3 ѤF[4R Fc0v9UЋ0ǧÏ9^;RXK<,]]Q QhA@k !Q" j6fQ)0W\BT1̨!O79/̮> BD2S뒥S JM88fx>+zpA\8hsԣokluR8I`W;ZK#̏^ 4>3*@C9I#apPJ?3J69q]Ѕq]@kU*ZKBɣai`JTlij+I&lZ'ѦNWotS  ^6@j2[hb`, *L$U!b ]$M);QR-uAR$UPK"2쒚ed0M5:,KSG*”2:UjH0;39u*t{븎Q}?0G8Q`hQA`[5APR]cRڹ]%rqhAA ؆ŠJ+ʭܯʸg@Y:$:=LH%̥LL@+Ox]O8O TKG#șRm.q9S PCrPj˶ďBQE@T ti`$]!4 A=y!$8\œ$ͧ3#܏ $kԏ`$̰A)? t"E}jHW朧1sM *ɛ9eHȄ>JbXB<ˏa7@8b8Ԓ+՟0Ђ0h7@rS6Mq9#C6BIpHr#Sz(c . -=4SbŜ."+0`_{R[cHH(H]cL^U[hHmp]a+P?*zC;Y"Ŋ3ʌSDr9cV5`28[k]8G>CkZKH(۵0U#RbH^-b\,@B%MÜՄVd$$\#)p$ "\6bt>z\.罐`VPc] ܮH~,_^%AW9lHFlgE{^>خRpb*v)8(;X8plj.D4o8@-j i%HU( 8;(ko&v<n$YSxbG{lL:șLQWd2EcJճ.Pm>6%=c9c?㉺i陶*E~ ns5TfNK|W[?xc?}7LH,鈶b*"d,붪DF&b(~7ԂI:056ݽ"ݪ5HQNHenfKoIx ,NXE0$ BTFp;Ox>5eX/=3d j@ 'R壅7\ a q9ߋ6IWH j(F0&K4]u*І6kNJmؾ޶G8iF١ `K쪕kzj6pud'Ƀ2۲$MP`Θ@x6S͹tM4;w ^^s^ɛj>j5DSf D i0-;ɮ0:_D6D#;4Vvm2l4Ϊ&*A-[>rnNbNێ+pڮ+Wm@=]O6D<of)w|`kd웵YoZJp(l,Ȃ]XA@EX!EE戨}*@^B:bHP128%*ϦyDF]q4;|$Gͨ WQ+G1*ݹR7X]Gȁ9ZԳ}i+̕+*osLiqj*Nko(!t^1 PDfѦOQ,Xad4h4h2*a>4(>:wm1C8b'=*bwv 8ӳ9(U\^ʼ*Tedꬍ\ɷY3+"ҪBr5.Z=(o@O>Knt͚=7$"F$fSd<"S>ioF++~<SD֙ӋOG #O` )ӚD*Ӷۨ$Ѓ%PѢER 4pѪu&Hvu1G_.nJ?4"dܐ5RAB! 7nRJ$w5_%, A_Ly8ұ,70K&JGpUHժC8D% iJn5jCQ}k 4q .Z@%)\A!*TX@(&]1Кh0Bf셙ID,cyEZ252 3֨QQ"9C LN7쒘9V `QPB@yO2 KceaAJ 4X2 \2fr >B))Q[ܠ7Hsh*J@l4  WHC nЄ&#ѮuA4$@$ zx" Lsf$!)I2!ʨJ- 0ފ'"IFMǦyNMi:@@mA #\,\Vr?`i B`BAUQh5xwΖ0Fhp]8X!t &Y" u*9V drJXq%38F4Lg D0ԢLerbQc2a.<Qbx1GQ݆~ؕpdǺp|܈p!M #%iGRG|hJXβ<G >Is7,U4n ,FaD)uL*B? 3s0RN|}E)=^:F=!r0 hN9 60jbQĩ$70 #$!K0 midRqKYQ[lu"aـ՝`PkM)[ Iג6kFVchy"V/ϗ)׈Fcrar ,/>OI; H3H(Daf?e'?}4\tN32Qt+ohPBD-xIh=)rH2 ߙm~V]^,WYOkۻ9"!FMuVq/A1C]½yJBUwlSLS"܀ C`]·]|۶5`tݠ囿[ ?  ".hnLУ4=?Y/@AJP,,O \wѢn\Z F1JP)5F̑sb!MaFrhy޺?LA)>@PUԟP4]~ P0]ѹ@J0#|;Iw cx;缈ET 4]Ϛ@ޟND)J/jB17RDՔQV;Q:v]Q4DdYD0'dqT&dBƩ LE" #/IZlPQ_.إ_7 IGB3CؙFdBjM ۠ͩ8P?[@!uձJVmT&{GX5**?܁܁] X"e?]H  & tav`e [QaYaV7 ,+a/7Aɗ++b!k(JAbPQ?馍@`F$θDEpDtΛID"/BpB3,uYJqAA80FdXhHp-B:'b8℧xm J&izB? /4cΔ'LN8 Йي+UM8*vS+#ظ|vJ5AM8p tT)K`]b+PdC PolE]n P9D>QLedUmըd??4` 6"%" N~*bZehy *"0E\PAW ?&ꁨJ WC*av*.?j Ac*!dNXp&@Ȃrԙ(%A=I|@lߢwYڕ~wo~_9Hn@pHIpDCgP-sꉋԉݔTUD lxgyOA,4cDxNԔɂ UPib@1,Nė|ɚhJ7bEm5*G5B5M €6L%~Xvyaxc ~ _}~$anoJ٫]HZAޡF0'Є aMViUA[) $Ҏիmլ˲d:pdUS[P,.̮>>jڮ o]o  f`QLsEN)p}A-U r)!Jʤt/%"iA¸—Ρ!R9_.Τ bb$UUv- e>4CSϡT tp1IDOHt4POxڂgg(AhHB| |,D14HdZMqG|n1L5iU*\S }ER،Mޜݔqv sгߕSXw"4f`ĶD DIZIQBQ&eP"$ wQTՅM,L31j:o3ŭ],@d.@e7ñʆ -,5H,J8G|y(k!OIM ER GB[t ]0Fr0iP nv\w^"E@dFX)!"YƮ;|HH |OthO xڂx&|4ܜ !Qqz$f8EM!hmҪ(X-h50ћZ_B 5Y$@H[i"R(e\<3b nOn).A@DraD IK@_%M$ĭ V5AB[P DL@U$e-`A@Sl%\L0.01C1/du(vs.3f Hsc# Zsԗ`H`tO}M(t!H'gy ?l<DK,Gڪm(!biH &&]p!;mCnCD)G: g d32UP73p5䕰 ?4Oɝ,$ U@#Ff` z(e44@#4/Pb HH/'jh hƎ(OZdeC)9z9!(ORJJPC ='k*Ci,V6Qh#@ӈ1P#"r>RE 䝗)Pwc}d_H _~]XH0*WC [_RT7`KȞueYdьKY>* zd 核hx, ^cEEnEVaNB@3r͹9T)m˩ؚɥo*,c2KBD1pin\qmZh̬x*)kX!0d#2&Tʍf߃4y1X$EbzFdpu6NnaB/  ^$@'P`:QHgQ^AޫBlwhASliB\a- vCj5n+!)HC^Ԩ!⏎|T؅"'"$K "2JCbHj)L!'n$dhʤ;X)Y" @yiq*bNկ}*a,TAF4Tic|m)O EI $)chBCfQMN pW?4T2ylqPjɤ$4tgkn}z7E D ; tf0tԜl~? t@rEECʧUG9$Ѣ l.G29,ԇ'SWtc 3;w3ޤQ $X]~!ydIh84o~oPGC "Gl{?PuQ_TᑦP s v.hNA e(}pD𠙙EAxy]~Ԍ6h`'QeƬ̪@;liKbD jB5'ՠ$>IJnK2ҘIZ4 IkA!ȅ6.|DG,F49ԡR#UD\RW_UlK4ės.$q@CՔ)%^-8N)U PG8ՠs :ϩ98 э2h/şN ))TQ&I(u,FH2!Ac,#gpG]w\EGӝWp3"1|TDZdd=q m8>ɕ E3#ٝKEИ;(|vI.Yb@q |k@dMइJN?\@4kHsOJBQ2;O5Okҧ6|:\"G)Ѕ(!"#Hae$΁FTAR)^BBCd&L[DלWF(|gb"fF#=2(溴×ûFNikaTlN\O&"02n&r gFn<0֦8:#Îp6lRl;#8Hm x cL^$(@)"G #&ChB'j C" 5"&C? "u$LrGH˚D$$F l 2f feH( ?XHJDOl&@ xQP$`tJd5i15BE0>~#c YQC|H{F84[xVLQJadx!@N`!3$Ce"-C"#*thǸgr9517C6>h$ =Ѓf#m:K.Ć;:.!\" ˪g n@2<'j ='@PA\ /)We-qO.ބ=g}>džȦJpsȩihHhV`T̬iFf5av3"^F"$B"򖍩ԥK@VR4QW.H8m.CC4 nÓ',+Nɪ&QP|&N 7ԫ̫7n|tF|Û#¼.;3,EG5=&K"!3§jA 3ne~ :rr<\.gP͢sO,O=SLY= ^s ELlX BEiaz S9'9`"~ "g00}JmʴrcD@uM^ɽ3Y[M= e=h T)'MIjJ^' " l7l6j`h2,t^Cr O A3l…DPf> L4( TAJx^BfK bdc8s$so:F|2O`ho-n <~\RD [!DJDi9>vŵPS͂9XPz#Q:;w<:jiQ8nCld}X z3POY{zQ$J@ P8~@ˌvO<)6\V?'\wm2T5h~gRgJǀ'T1b9<8*gHst`rݣ×>) *{Ľʧm=*RDQ",ca#K `M 9uW9{yW.‘QOz` |\l`"Ƶi7Q EN#ՙP R|U LHKo|CkHI\nHۙ GX#l氊;„W_Kd+Q8ASp7iA~hJʕFgeog;hVGiּv;F1P=iAI4LJ)&L/Kv(nU f Z%9_1D6GHrHurҌ6ͧ)]֯)v x!Ǣbe:¬YN! 9*ߐxOM˞c̠W.sYiqgkdo ND]utQth8Cd-Sؓ9uXN":@Y~Ǵ'PR;NNN:QLj${׳PX32@w!XY91~g ;MOUP& l\䢝#Y:9:J<!+p} 06tF@X6/ݰ?S UّMɪvGIXGCï{Qi'̠k%;jnؔ Gr<$z@ʬt 703s&vJamzQ z^>HԺܪ~lBtTP4xLU%/iH 8|$OdeQpYQE; QZjPh)j:ns!BmZ Yz{qN]NZ[Nb[Yյ3u'Qĵm{mʒ)×MB]ԛ{~N9`NvmW8 1]YY.[.b0ۿ]=D!e}wdFA ń``.7, zai(e@244DJdaUEϿ@`g}s}X1=;; qhr̃Ň;JDጃ\w !qCrcqrܣ' m#fAPA%Z22FRB BbѪE7\$D,FQ_7UJ M q P2 1'93*TpbB̳S†uT"2nH &1bŤ)5Q1qԧC5 雧 A0Y%Hp i6zԓ'GB:Fl-avR\'_1ur)GlN!9h,GUH>O,XaA3+ϾCݻ~~1/%I~d_Lmw w8x?ַ^L${cMD m'`h?% (08H;*@L?OP%XRA?[^ߖ`^C5d?e" R?5qϚ1A'Y P@EP4P('娣@#rR  ,Gs2,ZJ#d#tDH$\p!~P}xS9@B#Lj$M<tf!D?S!AP$XQQRWaNh*L5#@a!kҌX4k#ȾdOL1.v$-TPASN:Bi=j ᄃ`CRZ1sϤAgC{&1Ryk\ GrCe!0eIܐvwx"f ?cgy8|nI& +tn/1`Z~]a~}^E|*ֈ}x礏1 1$:PN1ObnӘc*T12'dƹ5RAO02ڨy"/ x!KQs̡ 0* E r?Ip, 9Eu TX6!Kje'P( d"PVbq^8E&b)3׹ÈtE&2zCPg4ci!,-Bl`[ 7ĤH`4ObIp,bY H7eW򕯄K_׿*U`-)'T!3MkӎZz 4vp[C6!`O2 VVB}L %؉vѠqp|0÷eoKQN"uN=Er\J`SP|tSG$! i:ՙv1R7cI#RLp ݙNKд 2wp&:iyk5vƗQ1YF=E{yT$-Q9C!fR\?k qm܂- ql0(r Y"-dRD:x>"n@ohD2O9e9H"!HԵȰ*"JbV&7$,B2Ƌm쁷\ce~@ 8p4XiH/=ؾG,?CoCB( ,NqRzI"'U"VCP`QH=Le*#DF@k !2ފGE|6cbHgs3!#ҽ1anNי4g:>ӝPw2t*QeuJFCČ%[-S u+1^5gT BZZg()W들,IHB]uBa4LI0ڀ/SX>|5, yf0il(!$jO -tB8:؊Te*C>w%l]m4Jm|++q濕J}h3&sM7GgVrIDp<`,IdOΟ](c'Am ʇAs QBQC OmqN\;a4|b2Q*V@|6?r&}+ BͭXl^L5l41c"%>!c}rRrR)C4aReR@|\p@[2{Q3gH1mQU$4eFX.[QFSq uP2 Zq gfV{VPqK mG:oA*z`*i2a(?Eh+u}`@m-WQeb9uSD/C|QY/FGW1EG4?`fWmUCrVtS (cMuaF,r,T]p]i3NрIJ 9'B9L`M 6G6ȕJ1Jc#g_ϴ8b#"!߱]F9ĵOC::2OI2&'&z%3PK%Pd" &5{V S``Mb'A'h< '8(QLG[VQ E5X`zv{OV. Pьm'2X+Y@ǶHTV/P-|FSF0,:/!}.1Ao.*\I Id2kGYQhw x`0LS|$qRԆS 7/QX7cXP]t`pxơFfjКrjmRS.:m1ۥKmy,xCq EKp"$J#I6_6ao1N1p#_ᶁУ8(63px&ZJ 8n@(y%]"R(`%O%LyβK;W1AŃ#ԓU @ ?BЄ& EPPUtQlbQ3(z(B|xzH+*eU@u%SAv{#$2P7IǑie."-A7# z]aSRB RkSW׬GWA BZ>R1z2/W@rŀY%ۈJ|dXHW3{1ŶHEiTA,mtC6VٰkWV<؏sR/0(n!f$,))HoM/kEz65[ 礫p6=J; @*Mڤ7j&[$+zdCaNp!KbKNZ*LI'a5%;Oq;d25R A*# 3R0Ma%z0'sR&'b}D(V=hQYd>a4:[ġRjvJ3[t4!Uc=dA.NѰx!# %EKQ,sXEd zoA 9W$}A}E|սv|bw|n yrjVDwĭ5|11G1SGzi{,9;y=jO5VyGFm@j:pc\)\)eS5jJ-.J 66jJ1!M7j^Cۣд8LAڤI MAJ"%hn}5R9ڵSNS;[ {gtZB;F%MjD Vw? s B+VQR''fY9b$5ё(l*(L[_8mg`Vq(;H+f+0( ùRu, >w晚+kv^$؟nua5ZZs#1wZB~|n yeEЋ0g [g μ0μ+D轴j13VDkuZZy 8F*3}A@E9_IqW먫%,)Q #Q5r7ˢaFvSWAR[ى|I% 8'9<9@|;do )<@:M\55 E6E\>JBMB<5)O+N*^RL $o(P%eM;);%IُcX%l\IaBs8 t *2lP@).G&SQOjJ78\3Gթ$C;p=.I RO!#6\V \փ3\Lre s7ni]Ks$iKנ&xBRz N9*0ʼnQA&atϑ  ~a7~ = u}<ŀ g /FX~GyQ=^g!f$3"#*!-~~`Rz/͆I+GDhZ|bάϩeHE3v3)GY΋QA=QL@oK "9.HE%^S*egU)E.n q^5z;GP+㦒M?:4é=*[7evU!=opnZ?P)1l^#O[R%n ht(FX)ȉzJQ2bBQ(>V|C8Tijq1ta4} C3nGl+A|۪}eE) +uն P0 K'(f<8؏SAOC(AV2s\S߮u?Xuھ`Sm 3g@4X})h/|i|z{Xؿ<$d1oVEr^qG˜ #(P ΍E@tH!Q$HT)OL2cҤPcf; ` ze33 ?>7j͙E֜Wdv:CZ32\ukt֕vcȰ1(AfD3?V|Cd2ӓL*O65UJ jNAYR Y2eUgEQau+rfA.hjA-CRo$"˿,AzSHߐ?K ?*Ǔ'R?)Ny@^e ^9Py f)\dM&CX8benP G8tG ".d2')CA2Xșt#L1?3L24 O(2u+H,S()$0Ičyo45րRg!LeGƖ%-͊e"Y'f.&LЈ.Y dH+2bcA$pU_dQ(&\nDt߃Jg10bˉ5Hߑ"Z xxDa' k2Pg9p-seSjQ hXT()SȄ4i[2i*gp+0I1Czljɔ9)lhq#:c0I;k&#1:-Bʲò+"G=z4H XZ؈IQ4SAљR$0{YЁ<P2Y$ z&Ŧ>ГL+* AKiaylS=1*p B/PG?۴k +Q RS烾U>WBHb,c`+( P?m5+""}6#Za@Hˠ=i@⠎pI) CURXY ʢSSXɍF"P08hfH ѝ(ܺ{J-hq^02319` D;;aA0G)Yp؈ )ө4NUT9D T\(0E?33$+*eY8m|55=Y:@O9HZrB`Ѽ᳖85| |tS껀!J ?'BHhe3" ȉ$1ҋpa2j +^ @@ɥbAadAϑIR+ρN !Tظ*9P%S7(: HPH>[k a#+耈mڈ -bZ)Z@hZXx/l+xFoIFoZK%t& 9 r<=2ȁHIVZ+H$9j0UHpَjp[ׅ@KlT0=II P-!,R4Qq'ؘ53qDYD.կb%OH;1(`)CG m")2"El@MWD/s DjK*\4H\8 ޴{Ů)߸ E*X0PB{Fp [J#+9 !ܳ9a= !e.-0& e>sTk>'v e$!Gc"j3}+à@c ZUщ1X-vQ׸ٸ XK:.sV*q !)'\(OHD&[}Dtx{s\N0Wre@'A+:mLT0AZO DB|}1:eh/86% _@$` ;YNDD& H !̲q8dJ$b^^`A1#hq qt2ܑ;;* "cOaK5#LPSEd`ЈQĸ9%h hiFdjLݹ2xLijS(2ٚ!>#$vR[GUk5qHZӵ- ", ?K̊)5P>fPP8E<8>ͥ^AUP|m'u?_kX3(@xznF`e87gJn_nѦ ,'n~Ynd1%p Y܆>mj`hu[^vpPmRQ((TbV^\Md%C]I*/梹Uxs7q )En s<^Lu1B 26ke)3Ó_ Wr MLd*m<MޜW™^7 /b,;PzPzqPz]zz%a% 8<=SP\9;((> & _;=_r ڀtZõ,Cڹ)"##0&zLY!&mbxwдnVl^n6D7D.)c]$@` {~uB1mDl 90`d8J~6&wr]nJCՍ^]T:%8Ano2*(#A%PAd)-Z 0`rD*)RRJK)\CΜvڼ'H0bJIs@4GRH.P?(W?IbA-B(c ވz cFTMz釤 b%e![,YX]Ioސ%+Ai%Iۙ3p߆=j. QB^]?ܓo-;;ѢF=xLjPy0PK QO 9e޻d ;؁ 8C̀ d 1@0AǍaBzH"Yc'πN3$N:n4#l F2n1#!bI$\Yd$2&E$?œ.AB>cC?HO ^9e&ĐtZ$2GUug Cc8O&\AnQ2^ebe,O9AJd vϟOȩ$(1jJ꫞)KiU@ Pį(<сAn P[me&YA\t9XQX!R$2JJ*YG/&GKI>CUj5\ulb%cQdDhI@Zc(,Dc5TMsWr?d2&V6Ye%Z.ZgkxicHƥCnp½j 7D}?v0rUwsйt?X8tw@. ^Ԑ^6?%? \`^_`!ǡkwY\FpbsJ5I3>B?(G&[:r1#?E*hM"xX 'p"?" ',u9A|RH,PP(M%.x H:\xIpNz :p!c O? $,iI #I8pd'>UGԡD>'P+V +J# Uf K &5!F8AV!) `^. ;0e @ȒRMHȄuF30[ ]fTYM,jAN#р!p D 3 2فeRZ`%CF7m g>{{? , A0p7 #tsCe(?D S@Ev[XπwWѓD#|24w.!I`z^ ་>ZR=WQ$^\pS d 5)NR胝Fa ˰f1 R%)!QWD5d* Rp0'Qr,\@b!Y(C/n^9GpA% k.J K+b1X X}_+Y@`FB1 ֩P!j%F<E]cGYhHCQR 1#9  9,a)K-j4d\3ɍgiᆐn79zx5[9Qtf &-nm}Fm>$LspGsl6NQpXsNF1$YOa Hu -bOJ#.1t=bĈT J^ƿQDʅ!z;2t$7-HB") >kJOu3ET@0(~ Y|; J`EmuC/hI0*$*.ݪQ*B6(C@e?hS[F5I=D{n0q]es، a@iQA4 5R"1̵%q̫#V( (Vv2KdazV8akN K$ٍ}q ^ di=!,;B.f{,YpD<ǸFj %Mj&-'1ZMj[w[R"[X.w9Há`Õyyvtm1}\ K S$|,|%@~H,hM Dt" Z<C]ԕVDY#]3pсaׅDaKpKe)ᨸh ʘ0 0JpODٕA?`!4,jȂ+B#]hPAR\_Qx'+N޹yaPNH_ILA,cd*   B)ۦ}$]};P R,CR 2 R`0q c🿄E8 L]$k"8`CDӱ,Y* MtTÌVrEJ.,=IjR$Mr¥` >DB.Y 0tGzjȍ{tACnKXVzAU"XziS6<%Dž@V`a3! ""j!:`j _a"6bbL&eVfetؘs $ʓ`b7t @3%,I?(*V}R@?TDAxK4sJy^O$xux1)x96QfMtRwW`TaV2U})]~ 4Q)7Ȑ %$@F|!l*^eDDNLJ ?D-K?8B8J䥩 4ɏ F޽fr*,'B pbGT\qUQ (yNsDsa}KM@/)|G̊xPޝhbjMZ{g GjL!}RD<82UlNW`E,耒Ϫſ>.Bo¦Ćjj% Yl* ` N6خW12H-?a:Gs eRjv B~q@ _1!|~~ @"g0LZFAt8݁YX2-A l@Sm~ӈ0sgnP&6y+v+1I0Oit)R ?Hpjv͊.P3O>IN$T>L&葁-x; H,3c-XbLVV/A[ڷ"4PrgdV38Kԣx"f\-L6&B D0mAJPJ`F,l('0h[:p ŴF?C$<:)H̟Fܳ!<Ju茺Q1rdWo1O-XO~uYduuPqP?!Ye]zu?`KP@|!$S9~}X6\"71vq>@tL_Y742lKXũ4j-KGho@Q,C po C;_ j,ɺDB0+%\Wwq,27Zu֦e\DF"@+7upKзVXV`2Fh XP eϚ Pב@~P|#ِTM#ʡJo"^Iڣ !jT}/h&U$,_Bt̄sZ!WD*4[=Z8K6V [nZ.@JpXP ,HEVѨߵ1HТE7nH@?#/Č e93!Pz*P4 zF9' C"I3C̗F:r̘TjewkNwu"(Р4y):Q$Js;rp  .tiҡG3r6QV;sPecD/y#Ir?CR%]}pⴠ@DtD|x(ҳ[Op/ * п !<[A(F1h>HHHhD@ D]ĘQ 1:co$2UpFah8YA餑Ix#AIcN $y,l3 6&$HIG,#P ` xPABϕ4' 3H Тf ULΕ`iʰ['BoR'j%***x]%ˬXuɮ֊ij¶k)ֿ(m 2Э ȼ2({A' }` fsln; tZz{#Bc`D4{EA9<~ 3 I2d%Ojf̛btAc'7%M'd-߼=0„PC?l.CD?[ QFq>pQ %H U%If8a3%$3;I>)r(K61 ,"䔜N 1@P(Tp,CqB>WBPEu,TS+h!>w=PDGMVzՙڊ-[)[s [iY$0֧h5- +U"-l%XCiLP".rM0^@08F0 ,S p <%\`ЯGkp#1 Q̕M!~&Eo$f8*c2)Obo%( hK?MFh PX9@ (Γdч>ԁ d?f$.BQ`!:DFt ?Iu 08A B*: u4I%*it Joz .< NzZV (hKg, x?MAy ӣFq"ȥSHLr$*1L.Ѣ ,Z]'{1 b< (@^~-,O|zN b]+hb+n`bK<];(WcA6Ƃ +kw0" 8k (02Xj ƥ:m0 kwX}xu L)#vD(N"J7JM&_=6FJs,a+#,z**I:LE4&#:TG ހ xяP @/ހ#wjVh‘Xnq'Q\-Pa ud5'UfPjf24PZIZ:'+T"Tbs^ZA:(/oj;}Dղ,ꋴ^XZK~tF s Cf HS z]u /^ rMl XWm嗭|+?('׫CYZqp$G 2:+QItr'<%9Bq|.S%De S') lF[)ɹiBPm!SZ%Ї@ϖ%pÑ> wxIH8bO,?#Af Md󮯐+7פ npd#2“$ďT=LHeӈ3e8E VAX>aBP24E@A%J[/ZA<pk/vLc/d;p=eԄ!a d\I5j^c-=ߒXn0f&(s:D}뺑EMqs5hYiquB\I_ӕ}N\:y*5ih-k4&!UbCd8-JGwѫ yBCы:&sPŐTBJ`5[=aw&>rȞ=5Jټ'.ULiVW /&!L*=aQ*<sPj+8)LNpj&Vj'O,6.\*àF\j1\l]Z^BŎnօ1VVEF# e pJɄh5n&H(-nhVu %nԄdDB$gbmQ+)Ouw0V2NNK 0k(!@(@ ɴ@Vo CzHa{AHȠė )vl1 uOPڐ&$%"hb))  0Kt ʍ1AS>"Tb%iMka%b 8/'jp(q0PB" ()q0|#1\V#]:ȥhnƈªn\.(,0$8$!]`7D_h0`&^`lTj$} 3 +&-u2dT8кv1,O(y'po,2,Lqdt,e!.dD&0C d@0i`dB 1/~t wUI}c[S,vp뙌 ^j'(j'.&8So@܊hcKH%X9^Fȿ6 ZOC( r=)(RF*n!E&r\20'#^ aL@D]NT#_N@oH%%qF& F5 Z&-HT#g*]D$ R)- .-+[B+U`G-M ,s bYO̒- dn &<So!̔az>9L2 &.2`S @6dPg+QU+ 君UX¢ONE)آ71+BۈB~Q`SmwbK&."#t@i).-8"7!+CYp^JC8vZ{[O'![s#?]|ƂȂXVDt DG0>H,`jhp`%`oC, ha+) h&h-h&uF,-q y'_Xe S\OfeRq/; U2z˹gtB$.0\aTR-2TitB |C֭  (%zKunb&kV6`xnEQPU%b dǚڄ'B*TUU`U9bP$Pp'~牨X6},btP,Y '\Y0Z'  wEw w}u/ ,('Vӥ$AGN00Z#uRlr5^%0V245^ &|A5,Kz]6*%Z"bx(+BZ NE-SI*g+ UJ6%-Q+K#bo hga}iU/o\b2{X!NJʶyܣ* fhJgmɚ&z&~Tf6vwSVpoukB].'S`v7 q^QWP`POwl%x)@3ll?)Cvh`wp`y~7W>b@\YL.u#O]bajɎ`L^ ֗'D}r|E}4_w` FDT'ah#.B"b|rB"bfGc27+bf+NYmǫn"|ϊswȒפİTx"&fgHaMEeg! zx#B XA$i9e掲#u댃9 WQatq vQkPb5)|7B~Bgړ28xvXU"w|:wz{P TeJW0rEy׌:qwEr>6%IVڬYjtheyPwY]Vp=hBT;D;( l`#9{ɜq2`7iBS6a>;{7yh]N5a %ϙb͊p02xXMТ/؂Ǹ2о$J`fgK<Bh+5/&gA?M:zzDg{,\P6}X3S78b+(Q~hŽiTc8|v!  @3W%mo0|q%NVgo%L7.8!j(hu4jiPv7z!]/6\ВGu*pZE**CëWqQ-1}4 ."2 @kGW#A;@ȉ&hT0$)Yˏx7!}6nswAmz*SWuR¿Xu$nB͛7I &1_MEʬNh4tџ6j'3,gΘ:7ݸ#?;O_~Lt =EPvDYP;D?$b2?]t1x\@9X--2 bDY$7d i"$PTOVr$#7ve"fh4@)G!%TQS)E/)ePI%$|$MGɤP4}C. 7TiC1v?Z5X`*^{?P%Z2zq `z` ,r책˘\#tM' nlڅ ZSOZjXkV̆J"!X4/|\,Mr$й6]m8r3ަ6 y=m{yRG!0|߁&~ zwJ_aCFxP~]$Ѧ@-z]tt@cR٢<.T "FqĘ:B?"\YXnx9v3B4F*a_gG$ç{jGY4zc3y:OeGSQ=jp*F^}_k^_v5[JYd7lW#+5I;UqTw{i{P񬺴vL}6 ʿpû黿_\QX&ᰇi'4+JDU('? d#;T:e">g" R'=C4D3i"F;В6HBdQr$hlc[٬##mHMZV# mZە%*q[V.1"Jڑx5E;8t4x={(5M7A(չAadGu&MIh2 ҘWH X/B-+yZF,LlE$ikmS D `l:C>YX5>˗ ;J,'5'4n/4 kðj9 l4'|nEJ=~+9h*n!4tYxvuL(ÈbXvB>$!B T hIIo*5%yގ" Ҏ'Mmrkܶ$2~IK^"[0DHIg@pDEP\3J!Q6BC)AI!F(i!4\$]cJko=#)HFq&,v6Uu՘Uҕy%4V"yi1R@r]2O//c V3%vgz Pִ!0{">;g6J4 R9`gp`O X>ڔ*Oâ345 v9]Np&>"6=A'$u OBvH,Hڴ$ai(bXnfékSp)IaӪ֬v55&UL0N$MBn"rKznVE LP?Zl@=JbÕĦUtlK d0ԦgOSXE%:=\,h/U?>. O6ETcuHlDBE,ir]g {!Z~n\Boݨ]蒋\\E$vnS:ܪjiu}}PP[VVg0Qoi3tJgixLP񏜳5qSV5\^~Z@ >)ױ{w hLbH/!^CЀ` 22SF3~gDHǩ o,%J7qX*Vlx[bjl6EbTisq9fUbUBp'UqC%Z2rfSd#?5$V"s"("*ab!)sI] %e stMwfftGwt[-)fu:I'1_-|Uah~wi"v6%JS.WJ[4[C/Faք|ǰ{zQyv>S/!y]R> N#NQmb 0{֔l2A?1A?q ˠ+j?0KxP P0+{Y⑉P33s$3V V}(4!na6bh"Dv5>""3bb&+&Sh ) fIGTf}I-@IeE-}[a-QQmaO?)MHr(Ӕ!/jwyC_H|kLaMW ?zV]b>wG{Y xণ`U P}{`e`'=Q/cM7!5S3|}Q" GTӘcpp_H>F`%E9cNF!wU%"Eccn(XT USaBT&oYTKp6~A"#AA&IK4"]J JI)IP! M#u)IQ)x5DԡJCY*%ҴTgT.Qg: I2 0Ҕq_qx=W 7f.T0|yeG)0jHjV(ˆ…0[z0Mguj\{ɊЦ8 VPUP{ }@ i}~ec  ?V !ќE&֛zF6D5B#0i:͛諾ٮɭ;2XWJ9 )bMW틃U j I(N^܂UT JogI$9 .`jCP :W2{3;\yem`RI 2/j8//yAI/z%{30{?|cG`kb;xO }@c;`p;c-+!8wB|XQf3P$K~8 h%~؀:b*DD%1W7J`c;qp7xarND6YSN$Y# aӻa"", [+x h})9k|^Og⳥(^w)>a+rM. 82P)D/ y=T X Yjb?=f6\?`֤']$0u.>{cV V,o)) m1x0TLc+ҧU`҆y{ ?7pc$QIH8`AvC"EvSPŹ\뙜B6dIUDhU%,%1Hȿ۝McXF e$&؎\b ǫIٟ% )&뽼K@~ݻj!Z֋թ&z fBu.9)P T^ F9 5]uiO*AXg{PNG? йA>3mJ^³ef]ƱrNMY?A$Pņ+-=KiVL%-'g1jQVVn"^Xl;k! # w  ​|,!2I :A$/^peɛxǩ6 7*H7D +SS7 :Fc6myɣ[FݞEH&Dd WPD\X7h.P s[N9{ *C BN0XB9 :S`B=XkVFhdrb*` 0d%"+rQHr/\N9r Y~X3.'+PN(~0I AnQ 1"m(+L+":!JzHfHB$vh Y[rl'AWR ^b1WJ *SŠأ"j|A(:p&*̫ 1"" 0|2i.& 072`RTc%T$ X%Z-7Vw0d$L*r.o뮫s:#=>/"t b5~NRJ)@pS`'|B" x"XjO\BkDOB8÷8{G*Qk Q#߄ CB0)tѿbf4 boL(KHwHP= (dCUB㎈hZ&HR"_ ROTJMTɮij7[]j &wOYVR$ia֊Y H_-⊈ dp'> S,e_يcB} c3I(֚*X fb5bf+elVt+ʼ<e"NoLd:΋Sg^\s6<D4/~Cd˔88m0֜! FώA-ֶ1DCKX ~(1b[K1xc- L֒U^k) .frȌfb a;i#w^`g#|T ǎvG 1uR9|OD 9I9 PIEFov3q'!5Cg"I-`I 7mߠslNq>AܴQ(阳L*ǔ_!͓ҫ;"ЌNw.?$!  d Л2)cRF"*P809 !LyO~aF$kPs XgKH]@Yq/ӈPr}:j'< u]-5W( vw% Olc]`~ rgYuUWßsWmWjm17СZpQ=c#т!h8ȋx_' 3 zz:z vcٜDZڥdTB-p&9Y'I$7"Ycs9qюȾA.hösUEj j0@0_q>wc+(/?Bٿ4,?vl@@ssZA |b0' Z('{:Y9iG!@P@h҉щ.D_Q22v)B): ri {qɩ& u_) zٗ-$ (Iϸ1Dʴâ \Cp3#; @̻Y3+ )DK"D<ȣ[ ȣ.2{L2EЃ [ЛM XZLU.E:E)iE_YH2GRZT'0=XjJ-Qk`Bv.qRRY 7eZGyx}7ǃ;8~,n÷`B9lAHR N18Khl0tx*r ,2 ``kB)2B;ʣ4 1,2Q<\ Ũ5i3:;Q 񂒉bۈCK[ɭ:*K."+TȢZѼ %<@:UVZ܏BK4"ĢĒAMX4*ly1ch(ܔiԝ QpldVr䜅朅/Zp/ @QOB_E씈@ yxrAA)X(oUג#HHuA#@Mɀ!@؏ZI H;(X0L x©{'x_QB21:XѢX) b̐jŘ͸9;@lZy3 '"ȋ Y9{K.%.Fz47ݍ8ѴQћ#B%MrEx7 3][8=99G܏QpT@CS[;-䚐ms.A ;kU8t4QhI%7)Z%q u3킄K@鶉KN`N},{݃]'vR'}HH%90M@}׈0H8DWAL(H,6ccaX1$$@ŔHa)()nџkY)ь=,[H25# ̨*J`ɫD-˸  &TED#c񢥽`kSr+ESzI8X{bQ[$3Y +V0EPhߠ@=Z7Ѓ%g:8z% q&5s&1w /_e0B$7Gݔsb(Xk@vrޔCAT90#Anm^oMKyW劬#ϋM0,PRġ< m~ ):o 1^jXQUŘ`s; +#D":y#-˖ٝ-'Z (RY-˽bQj#V- 5@KlရI%&'`b47ci+ՀcTpG[i7K˼(.ԃA|3@Ci=szv4 U5dC./+I%vsUr/ct;/ɿwLVeBAszyTO&le f0I8NAf{ m`Nlb#h00NaMqyKdo>Q' .ċX¿!2˘*/PҸ5o 4YXR;3.hٲY>$M"YiaNS0zY4``SyR ![cnNӨ7ⲥb˴3j$؎@ $!|c|'\ ЃEx,%:\A7dY4QTOM8#O6'=,lsiZ4 {u#HOQ eK񔒛ȈVlbb^$s5pmKmij )B%,Ib ;z4ЁH:g/C)-ҩJųuf_Cb yo.PKv'-}_d6-֚ ] =v8$ܢEXkIkw*88~ | J(x ۳4~B2Z ݨP،ȡ|ƈXUPV^#G'[80V_Z&ZӑVf:jDZNy#?YxG!_幃60IsJއZ>:y^aψf9d@,tȀ>x^%3B&˒8#["25ě^ܤAut>?$Z{k~hxw wj~*j~UT3*#Uao[TFGE7eOr0DMXDIP ʁ(+Ud矕lT8Z #P~, 2A8q"A'=z[ƍ"aG-!aR**阮id4T+qBk,T20AS+?(,ɟM5 S>iB!pMp,#) 2WYⅮ^22+ bpp06D_ ް16bcbh*2Y<' FF`e @x3C8HrH0tv Bu<{&=9!# (yPD KmCe[#ѭ5 :ZT#?hN:KKw( aDㄤiF⧹1sҒ>w8p ԙjըoz4]#;'"u L;DrQf੨YzV̂hyOZ;Lp>T A(e9b KXl߯‰f&I PGff,C&ppZ>k-i o:r+TY*; Uu0oy(=\ aYbXr +D)@2*u*K h; _@z65 ΤF5:lsrXIg@;:hAz IMj +XZ>O([AJ'iL^D-ivcH70L0/3NXp㒑"%rG4EP69)H6 E9,MNɳ2:˂7# TW:E9F%(4?fbg ?!D( in0 48 Ί `qyy$aXE/.o By`x, IT #.F@WU@[#GXYY*0PtXBt$cmxI9sӠs/ I,u;5Ϣ:em}Zsv>絮ߓ_Wm 3 dkvm#_Y RFڶk+9@ _yI, ۻu1PM8 x2)Sɕd߰W;HUH} HߜH ȉܝd)<}Ffm@Jʆ$P4X T,B?RKXGA5Dk@Kaa6+ aK\[K\"PPpE?-0*@Ђ&"$4IY!U,LTaƉ0w ^Vp8GL 5ct_`w쀢ɑwtG9V %Z/I~Q,MhRpjlqxh}G0d[# |RT+RR$4סT`zDtC2d9|@I2u 3͉. p 6!߰INF Lƙp)+% 4Oȝa}O@KS }NĒPihPWa5X@zA,,@z?8!`^GH ]G YhKgzfhƋUGPէ@ \(fBB0*BHmooVUTW= &_dP+.Mxg5j(ޕm$q`83uVGt~c~G9zJ|() ȀY,wޖ vx~1DBdK3JJdrh+-+-$1`0x(x3@N3ۑFN0=:y,SixhXLP<L^0ޱ|cK}U"\ee0\l.I^,LaTKX5C^%!I-n]`_Xr_0?Ff`6  SzIG1&so=Hz etX!Rr)#5PPD7:.h#=󬈦Zm V[%j+b-(j* kn-牁PI0>&[ d*l!x 1 d[_\+4H 5V3ـ sظ*7.vNu c2.鶔/=O>PÁ2 &(` ( fyf Ɉ&&; !!7d֑I.HQ(dK.䟲#-3Hs#<*_&bY-$OThUS B=V mbt;MF@#.  zC$D) 0t:1Ms Dž)7Xm8$xsD:Y.&*&R"~ҥN%:Q bI!"]LӵR(A鄒cmX6MIe3Yܣ"}YcybVDIe yz `_1 +Y* x׸ęuG]aBГ`5+R30f5& mH23 %q(V56VjR <̤e*3@@9I#&>YO|D=PDVU olpPV͉=Նf=}"d0$IC@Lp H`7ȣ6n,dr$AIJDɷMKh$їJGPZnk"SLQt_*ItQݩV>I%ӳL' vzI0 BF=Ҽm9=XĸU9|Y]q:%cM"[g[?j=A\<C%q` a`btR+Alr+hO{F3e jsU8 c ""uM" Ƥh}h$2= *:Ё ϢT'j, -a8@? T ApփV: qCZ UbD$8:v钔-04b9\mD9NUlkɀx"tM^ RVV΄ɪN"߱.V-diAiz&ȵLF]^:׾n6K>v~+$+Gni 3Z Lۖ'x K^2]$HA }"fPi*ʘa'T.`49aK3?({Rh >lfE7W yѩ;LFPz p Oj M1^ZX|d U#`o$kuko^`$@%I oUZlILp@Ofx{6UN"trQ́ I-9 )ΤK^';m ps:[Cz9|r;+_~VzZ4Y߫x(cX~,! l’ZVxb\B`g ̈́|=W4<`X2'M ~X:ʯap?"eX(?.Xf2. &!|>ԇ# #<#>hNjb=j@B̠> A~Nit.d,d@c k lTΉhD` j$`VKj(&~ޠJtGl>DLK$f9l #fMD xj" /O>vJ-hTmRB$v*:/w.ӊhtrMhVvlz$YT/B1d`+F9U1X(ZWd +Mni xz$Ģ1꼊ɿҢ; 6&6[O h=fp&E 1_HA4B5*, qP2~ 4'12#, @nE4f ƁtB#AjfB>ghjl0j.`"h@f&Bb@n$3?` X!l&j&9*Kd* "FG|PblȆrʤq:@"DP8pKpoVv"Ql PGRdrw #PHVJtn1+nBkO^l'[22c0ov }4&c-qc` Ԁ ;`lsZ>hf B`r ?F)54b) ,10~b r; n^bKFic LA"2r$ti@FCopl X@89jJ9`DlbDަJ++ )+0r:4)LHQhR,c=wE`M O"hE.EtPPP'h eLoOj%sD0W<ٰ1+OMQ2+S+L|&S+Pg`"*4KQ<`~R d !]¦;bf8 @n],>bB`li$,xV:Cs JO(&S=XBS_Fi Z.?kfDC8d\.=fi 0hJCL*B 0`o#q֊klEWTEU4K`r(.** +3 8MQR oNK'Rɗby8R4x0_f_Qi-W63\@ VV`B@(r 0$c=jVPz13`cEv`*`HBv 1`#a0[U#rc=z7fLAtl!4@gޕɒn&2DBc(|.&?^;~'p Z͂ ]$(+֒byHär#I74'2dBV$ReMEjkKtfgu bU'T˙Lem"ojtȇ1IMONuI3YZPKjkOd13xx@s{t{l4l48N,,m=Y6O\ʼn؃` ba.o#rr-[2ʂ%Jos7vr*+r8B,;8NucaCv@ygEX!2 Ċ "co>safxfxsȘ\7DA̸W=vj2Bhw{C4D!agrfW2D ' DZd *֚+ 9#M31Pʇq1r!z( (-פi #-=(A`fB)$i!iTBt 瀓<t !=ʊ`B ǁΊ*$_5=c$&TXVc f}f҈wc?v>bʒs]E2#r7J'fi&fb9蒬 7m9DK9a9m[DLdL6йL96K bNZ PRbQ On".e+yV $Te wdfzKCq1ڡ)SZ1)ڹ|IR"Sj) XЧ{QIc&JC†o BB]]~,V={= ]D86csqv>p\i@=CK&q2 9 (0ϰLH51rdԲsdIҝNz+%JP8P}tj [0v%/左vyDzik@؝(ZQomQ 􅍢Z"2IQFl\e`-E#&m΀=Hf&Wÿ dǼ lBVU Xa*7u+ $> i*>}&l<&e 4:^&ZN8ï`Hy$occ?f0@&?y&@t?,%jHC*Ve`DLP kLtрqܰrM0LLH0>#ƹE b9xtOPh'K[GUrK_wE"vKIǢ_Ԅ}+z[ݛf&bVb wJw{WgAlkb`VcVVb&d&= "su9=u1Gpƻp{zrc\X:1>!&(" ⑺1e|:s~,>LC*to&X4L~)?/"] hk0f4t' 4XaY(8# ;2ʖb<@fː,]xQ#NXR͛0fKWdY$ӛ O [@,ٳ3̘+3"+_C]0ncՎ'w["*'@N$H66ssKo^k˖;P۸-5K| nƍ7@}zK䰜:u6‹;ԏ^^{v5BBwO_˿>+6+(C8 ? t@AC79*TAR5XKPH `FhB6Ԑ:VА5(PTD@KVcuXeHRET—_*}Jv"ANdcK=xj%G3nF&I!P)FKLŴLRFP8 EiPIIzRRS@/RM&6Q@B`?!l[] +[[l_X_tAbXdI6ef m[HVlY k.qo'ý "zMz^}vg{yo}wGp Y BL=.Ҵ2E8rIQ6 . ,'D?x@!cHQGܤXdHvGXT)hB]w4DTjK!ǘc]0f4n@#iH@iԬ;PM9{jxN2tSNKRRAACiRJTMqvH\l]va?a_W\+`F lFchs-kۺ[˚x goRz# 4K` f'^r7=Y .?`v'0ȇDb]BrnHh1[aCe8G< >RjdhG6->J8*VFGB[B4 2QHضāLf Y*D2QphÓDlD8nOIܞF!1,d!Q*Q K"`#$KHuuFT(E]'#SPh.@+a04p=`D%'rK"45E+s&GwG=mD6ЇF26hH-زX)U"X<*NAMmOaKb~ UPnr4EQ#B?5j Fd(!Y"Fȱ$y$ɣ<9J27Amzix^i[& >/3 knظ-95m~AM@sau'hrf iMxO4+^M@zKЂ4b`& o|v 'UBȘҕ%Hob0CX:l$æB{9$JVQaEnd$O## >cTajVq+B[IGp4T\#,NZXQIR'+Pb2#6'JTº'(YIta6$ @ﳺ?h k}+/3Y|˲ɘԆ6iәҨ48A} ҶMKԩw=0yyzM7=w{p5M|d;Iz{$$|ϨvD*ŐH7Ђ64 ;)MCӐ`-EGҖ&,I0k(Dk(8ʢSkJ7\ʘ ! $OIg yF8飉TSJ,D>,%FXyp(YɊ $*\7('&4 妦Oc]0ƪy ]=h :!9{aA.&l.]ɶP5sMLj>/4!|q7>O\ <A|@sbcJb/Ӿz/!+G#+I=r$AO`pZ L9,g[w>uLh}GH!efٜfld#$:ֿapII8ҘamInx$Ip WqLE~DF-7AnG= 1d)#VQ~ds9( 9*6x*3ewer!e^f3e:-TXR!*1DJfg}-Q2a0; h] ^;vwA [xv͔KhKau,twwA @xQQn8>a>Dx\{\A/k|؄?|ayшG@/BRlߴ{f`w{{}{*{h yqC020 "irF-fI7V&AY4"o`8`7AT 9#?Uf`pWҍN%}AUDJ5pLp[SE&dW r7G0'(~4;2N88XWNpjs3X6W-W uP90y*(d*3}:SaRq)(dsqg71 EF^Im"eG`;MRUxv:+hh,rpNy7jx>#0؄˱yܑPԥy1@k Elzͦ**,Y;I+gh|v}kInC !P"@r~T!'*n)+R{oGa5$daTKbT`tpLTibԘ6c>uTYtTRF` q,s8<B'a8'V##-'BWAH (F(HF}>9XfIR;j\2Pn!x  v@v7K[x:vքnwvHy"5Pxey8tjdiv[!>U/e ]c0H]^mH{{g;ƣ+ns+CA8UGxls)>gO1g='b9r2:6bsB3ITX>g3ұy20--ۋJ p\…⋾  8̾NJxN{t(M ѿI S zV]z;mq+\1< > \(aG˴(Cdq !P CfSs:éiEv]b ,f0'MDf5D;7oGȪBdbSb4mDL2'eDF}AәCns٫ eztp4BsHhle,ԁt,!;W˃hUûi9ȭyDXCubSˉ^^~"j[X" QyAr?rn PjF/c/0nYn ߕ2g !qDUPRb]^@Bc52FEõ2y`8XRT5~@~5" $Y%~,~ x`Gp)"F7CΌGA}[64Dreu8dr+~s'V t2t7ȻC9'nssҪ)/BM$JN>2xfK-ܛva.;٢^75/ntF}:q>\?-/[ Gq8Ns:#~t4`VcjoaHa` '*=qy;E]S#q7-ᶏGhNh\eqo'0ל$q86H :92𗄬k9gIu0a(^c<栘f0 |}UN!b*hl_!@!#aA: **8Hcr9FY$EXRIH1Q͜:0?L@/AK, ˒ {AtV8aȐC*2P q%n^'&x '`( @ʆT" H"j fkX˭!BP.&/ Vdbj _+m3XSH5}o* 3#>x?īˆC :xcٹ @jS@-(5M#hA#0À4! ˀ]}4.l^`|69 3;Tpӿx 1C{cA8 6@ s#yC/|!it~mAu5lHCZ-B0ͅ.?(h*(Q- T(J^f!G 2n6HPz 3h)K#8tKaԴ$Lrk:a!@B&J)R Bg`dQ iT(?Idj 2TA('l*xQLbSDARt@o Bh|+aUb)XG,bTS ˴EUѺK2do ҜB V1B4M ygԥzm3gAS5`# >0,:@ƑhRBdl&,z6ǤG &'>4|Ys4Wt4F0fhbs& 9JPt#Rmʢ4(ȋ9@h+Xv6f_Mo?(n$ȚHN ܝ")JMʰ a G@Iu$+i7Np1YvIٮ#;MB%*Ury SK`Je _Y =" .׋8ckַCj0]Y왓2$:x.i5R@}>xjr#!>t X;M`Hic!_+49V0\>1fř ^`+jL̃t1@ p  "VԨE-2:n*(IJRh4m`%bDku[KBIZ3q~HNJsdҌXֲ\L>ېRvq3h7)ҭv-HDQTB RZ(UKH^0]ĘWrP 4yf|_lg4ēj3J#/ڴ .\F-СN 4{B%u6]7oG1l8(#G;je`NΛ{2gjg3|6-:Att :D6 qG/ʑWZ uhV%3n4\w1Kp5  2~,DH:,c gdlfXl3ςVS-BJL;Xt5`ae}fv1kT.5>j],0يë :ðBCzZAR\CFC񗲯c <߾u&'YоSQ3$&먽rs4n< /G Xxz}Bdžn4P wƗ1RmbI ޲kt& '=j */q9X ԲR27 :0y2[,IjH³6;Љ >,IA%:*h `: P4VQ ㉕( BZĐ&n-re5lJȖ/l CV+.fIX3'@ˠ>Ҏ(!0 ۾z Ճb(0ћ RDPp+v +>HcKKvˆ˺ LT7+z;?ş  Ĕ5(" Шzs7 6:?'x8мӪ4jŔ`3 <:T0-2UZ@伀d NzGA"-T-ǂ5 OÚ$3sQ$4bT K9X:#`DKH \-^YIȊ|I`ʀIZ P%ob5E+іl`+Jg izɏ1yӰCʣ"ѡѯԻSsAM,0=x0(ݷxQD(Rˍ?%Q"= }>RеCI1*/2M54Dj #Sq+q2=ң/2 M$!$MV294Fb1,R\է3Y:,Bi@3Yȳղ=;Vz9+V0a­h,'PPSY&.' oZh1]E"p -4yrkd;@ 0'qу9d`n 5K+ km^mm0]ř%K>^P% %i8y}PYj!^]E@^H 8"L'1'Ah\r/C(Á#p=*-* GA 4SI9 @MP۽RO%Ft[<: p?)MC<k^^0!y7ˇY M{ LqS2d 8<`S p0"` -f`em^2U1<Yk8Rayx97[7Pd(/2 A;\VxLN 4!~!F02bE5:LҹN[M H"$_hϪ.P;$ Y$PICI\e 0IZ Pyjh*]hWZ(i=Ȏ!b^vs"^f0)SxKzK"U&=(ৡaE yD؁X;wPg#5`ݒE tl-߂H"Dƒ\/d3`oVA DuD2V3Qfg'ޤqvLbjU+͝ YROUj!\\!&Y8ꬸ.vX'(5;81d/91R8{M.=dEm쪨<} x HC){M ^:7z_^me>Js' g%BP>b0x>.|KKtEaf维KI*r @"J-W-N<\]\.4d3"4rqA+w`-2ggN)AYbёQj:l3#Uv,@TIBEM;Zϩ8I;V%!F;ճwnCV ֥i:H qrxA>1Mv-9}F9ceg!t0)MXז.lU +? ZZA3tj{Y Y%ucI`(B* FJs>cPLQgD5gj9ЙH@h%C9`&s9'Aو*FʑJ!HzչFWyWVRV)P]>E_dJ5iK\EJjMY|n咭in+VMfD[͋qkbj{F2-XD?^ks ;6Āq#05= {3 va9x`C1aawbc>.m32 uH$ zdgFΊ&Th:3ȅ4CBkiJXaCsi+Q0F5J&imY B)qo{ 'M Fp8Bx K Y\GpyTd`*G -scM6ɥRG`ɓNM4"(RV`KV*䍊yE"2Ak-}A .'2&0CuK44.s.Ӱ&# y&ї 7LbNzj5lƊ t!JI <@س mC"LBMG@WR&4T$cl$1M*W"ۖGt GZpF! 8ǡ)L<a"WnM 2,5RXWmPдbu),RrA.uERcxaIU.SĔ̙XY*\KF%C1fMhtc$;w}L8,ȹ.5w*DA?&H ێ2^G;}3":[}э2|x&x7P΂ uSVFSwbJ* CIDb#,f0[]BjT8JɃDE @yr]%41f"D9% #%f,բ_,#)HLwftKRd x鳟?Hsl ύŗ,X*Q>i[rU0h~/BM@6EÕo:nu ͺ 6nuu]/!? Zet`"`v͝=NQPvEACܸg!oys [179vboSXBZ bc=obn OT63oi[@7LOVHz( xAP2@&0>Nf $$ZHAҪfJKĞhL` ):!U k{VZВfܧvC laKMC-}H>₯~pS.qtꃟA 氢ilbS~MmH^t[@i6D^P~ml3ICV6H}9&{G?pp0[fA Sc.|˔g.9ڏ8+Tc0U_oqe#gcb>A'ʓ؀͕\n u=D(Y[@ ]&k1[@c@VLpϰEAV6\J\lOPiE$  `Vh˵4Fg(F8aޕƁ6ϧt>ƈZ|~pA@;mnWpP޲%۹1dzzBdB)Tu`xZD_ ̾oTnͅPԔ M%؅XJtbX NQAJX@P٘ԈȌM}"LUڴؙHH\iц !]#] ^1JYuDd FO"cLPŭh :ŝa!1\TEATdaEDKDDFؑݵVo9v$7F^ܠOd1WW"SDϢR:!u,L E[CA ZQYW&M'B]FYM*(%X*r"Azraz Tax  HQP|)4N&ʽ d2 hT[ ܑ`lJI&k ЙLp`uRXn\lE<*rb*D YfXWl8vh*CrEd!$4j2d[|p{G&K5]Hqo@FiƬa$|T Mv[ɐoprZk&e9E{jh Q&FDQMaQWEQ,eX"ۇ"Ӵe'\XMYȌ"MJ+VE%U⇭OR#byPXQ-ɓe  E_niM_ U&aĦD p=FgmYuBjp F@V"ODLPlv?jNѕ&m`Q d,#ݪQOqEbtggj'g' .ሬbAh׋tSKdn[h 1 z9[pЄ`ޒ弲Qh&MJJaQ4@Hme+YH />y.")Ŕ&Pi.%`[ )2T+:sMN^=6&DL` Dl+Qlg=fF@dIsJWXĢp`c\fU@`mbK- pA--83W0GV8' k7NW0qĺ K6+@G|+/ Wr&(UZ2ǎ)i؀b($,& &e';Mr i*"*u_:")N⍭"ᢕ.dHf]߈dlhXjcSٍR8l\6>MRfUD< E EgCފFx[dR=W )NA_`.XƢ7^N܆a"/xg߂+ߓrX&2 Q%:f6N"qY9&mAFc =sjA3?'5 aT^xH-ݠj0K{ffK:LW'jtObl,GLV@@j  (}%uQcr}wL[F(h\u{ "5Eȃ_QN)",oȌ:=2Ý1/ʼnCz{+Eآt 8lvQ̻ םق `hKf`iv>ή n]|ȚA^ȶ#Ƅ AyACApatF5K0q'zy|lH_0 vw?AJ8xk:A!"QϺSc׫d r}˔x2ɧ:<2t&G7S=νO::Mi- AڔN*4&]bPb5<3hܬ`6,1ƉU[12a= j6'lwynwWK.9mn9jr?svȯQ̫~ .? `}򳿎hA .lnàf"f6ҙфT(gYBd#ިI?d8p!0~($ )K%ș6dTӔCJ*xx(@YUn(eQ{N1:1W)Qs A/WD9L*2Y$:vPUE;xtȤ ,2V8À3VaYɆ9ޛ=$ʿކb&뀓B-S XH?*Z+!D<ݜg@cV ChdPbG!G'-!MH{{^~𞔣oJlĈ9U0eoIwH*.3~|W܊IJl9 S:qbi܇ܜhñelcRI<.UOj$dvlgH/U'wiykTIqfwSy9C;g87 /ez3,z:h=܁kN;Hbl[ F:F2|nw)`?+ qh""Fݲ xhz}Vw(yQWWجޕ}Re/>B6HD56X+n8XfnFȰMyGN Qq8,pUG*`JU*AJ3=vwJv>'cy -h6n~YV%ٴl[ϢVU@(30AX3o ^R @xv`Xr7(͸Þ 6m0 T$ (%eMӆ ? fD 0@B.lebD.h͇N!jMflM؆jDg~R-0@ećo OK4lc|0]dDXdbDZ(P-HrS~&)j(&r@䢐(-(0g(U+)ݬl1E-LU<ˌx|gxBOr ^\)YOތ^%X(_}p:FAhbԩA@)- T>+D~ԖQ"CaneKPFZN+˾ (X0$/./'kqop6$F:h# bZ/JL.gqNrb@SnbV & I,1."lObTڨÂo"+*N/N`Cq*SIO:g2J=/^8Y/\d {xү*p[.#2.27?ӸF@ b-|aMApfFpDnkFODV Ԛ` j53B(C m|pִ7}$|D>7!2N* / Bmjj#WB%$1&=|?x2qd4BN*,qR+J,+61qjrv8N-( e,RPb61)<(-ZT*/.,%t4"dC2]znNE]\ ]0Di6]+96q^kcJ},: њ.K%^bc6S=: 7f0BfD&FBf 4>51" y/"8b ޮ8M"f-r#T 0aR;SM1(0&eF7)HIư>irjNE(=ކ/RT&m*G*j)lhK%$#ftUSMD'n×lq-wI8R,GW]'3Y~!2s2Ღ 5cJ,iE<+f,- ICb0rXn5=P Dm| IMp nGA#rhQ+hߞBl9Ƃ/hoV -S6BVa,j QBeyD ÏLDEP,R~_9./-'FoAHM#XDi`DMG ,t]78-Ži4MvW^:n;n[`sgj{8N 2IZO /Pk!Pgw6FͩӺ|ồ(8܈6*x`0ht O96s]TN#Z,O8OQB*U1rZ ሕX'S.)hDs(N0 b{Ã9) `.v]*]"#Y\i%2oIKܠ5haŴ?rJcɹ s#a5GXH1eј"mgg G8l6Sgs}g!(8-ܼ Śo]Y7,SA@ @Z3|O.3ub T'`ER QT wO.~Y"lD,VGK/ZbsWl#ʔiV_?,3ױxą=2?I-ӹp<ǟQ~deHO;yӔ|=ɢ\xSB!xzy8ܥI0<8}qm0U;*éq{5R7bGkuW2npVl")'"8RL/ RE멪[+QYv+_+\r4ʤ H,]97 '32lcrDX b?6L8p :РʼnRB8"w k3dX r,T!/࿒,-fqR1PJ!TX),FUPb8hi0xE m\sZA7, 8C' `p;6!QǏK{~aE p/_jp7pܪ#-E|( 4=F 9 SygكNz2i۫~2]Gj`@`i.X`c x)`ŷ^mTPAqtQ-u"AM!Q2HB%TG QQMHS<$$Q;)dDOFeQBM-0VSW[TEEAae9&V uW [r&JYexyH^]^x8(ZbyT{AhX^}kk Y^E6\p>ZwEךE.az5dY[~v\oʖ^vYGQD)Ǜ|A lNZ%V`6(jTڄ@YYtG6&DQn YS0EQ:Tԓ O@iK etHi%ҚTtYVZXYy&lM5CՖˁmWnd?w⩐Hbɦ`BUR8 ; i.PBdnf۫er*bG55]{fewhgҊ!-O'glA^^Sy9>H6ḩUX@jeB$$PhNT6P(B-SNF ,TO79KEQBU$9lKK؎)uUTreReW0[Sen ]93r 5qO&̔ 9t&]3C24"MpΩ6F|M:kj`}[N7 ("΢8ئO"r~TjH? ԺجQ2OzDgӥ[O 4sE^Yp`;.$YÚtw!QZ/xEIp#F0QLfB!MID$!'\R 6%ioc JtW^d*JjƖ1.5.$'`-s ^գhR2MhQ j kN0IBЅ厠w#N$(-Bh !;ZtdD'1i zdgxO0%aϔN:7d(4*َM2_W0t$)KX}F@H! >ʭ:i۵khu)7QCs՝=i=T Uw(xʍAU^D+.k]&>:4 e곴űRR{j[;z41E (T˔'w󅐂N/yxGz il^RHli<|*dZ&>"`'cI&aiMQy[blLo⿷5m)D3y tלӔ`L4U vnug^N8E R&3O+g 4Mu͌92H:./9der:gbE^pl dVůKs͛yv #0LqG&TTQKfkwx+4:* ,Ld]5c7+VXXsnfO?CÐQȐkxpJX5n&d 񑍄yk˓: wd?,g`S fc[gr *m(pN hcC xt)#ThHW#zxStdG!fP7^|"r]TUAqJ&J`PIp@.kը,a% 22@6j*?)Waux5s;ݕ!S*wUcq %e-r4G?RjpMq]nz P D^7%<dCbJyc1fDC~/f? ywfE9UdFb#%siD '\y7pj77hT DNJXHMa:U;g^5H~$-u=X7%gGvDʨ*Q-yu£2@~YAyb&vZd4Sh]xFd@1U*MsgC dT8[PdaXysz%{WV$f31Y!f$NL9\Ar|!]ܧ9 *𙳴שuhrQ:kth Bcjɪ<4^uSDWyuQG^ko*Vwe/D/2y)`@kT|90Ǻ4x72(P9uѮm&~6߾KtDV_Vj%Mev|%GS8^w^[*E7;&qAs뾎n^wǮƎ>ٮݮASNn^xqN .Nn/Oo /Oo!/#O%o')+-/1/3O5o79;=?A/COEoGIKMOQ/SOUoWY~P  a~  _bbzgV\`awvy1&`# x@##w~ a=c?t!Ot_x@m{? oG' `o_F qů? oo'Fe_t!OfNADGA-4nDD N,Q"F!E$YI)UdK1ex`~"n$r;EC9P_ /\3b͈RAn82kD#[UΫ#ɩ ylgٿ$RN%O\e̙_6^c% Wqjt]~@%jƓC#k5խO;U];sEh$j:%k̚U^$ l#F(gbo\}|Oީ[ӮuR;(6 !'0ۂ"g;"n*E"N Є:N $<#1RJ(s\q'rH`\Dʫ-8':1rK.r2 !`@ /wC %G*AM<01ʳjC4 6DqsDB*K)l9Ȯ8q;8G$”4NɓT\>P/suW^tQCBwJA(rqs%,b #“" ';0,5D@ڨ=[4)JD4=KjYM$eGNT57֠dWҪbWȖwɅdTUXT輤͎Γif<)6rWهd\?D|PM_CIj@vL4<= |c غX0%J-)T(jLTM7Befc<T7>Rvbc?AjWh^lVn^|SKmJ򸋝yDߜ{Zw[wWؤ~mFFڕf歃ЁbWI~ġqQZӮnƭsm[:?|SU\\aEC-5wU]c]~T͵]ͤ~Z]bTX\C!rcJ5abec܍lwUݥrp\k6%Ehm_qRoxM܄[ؙs]J^ZةY^J`LDԝyS6b::w|tA4}>'҇\чmf}DǙ}hLY;Քۍ]n:X! NMy[\ĉ^AmqoX䳓ݶ}iJJJƐlVVV^^^rrrѶ̄6A1YX`_?Ar  '*\ȰÇ#JHŋ3jȱǏ CIF&S\ɲ˗0cʜIMrɳϟ@ JѣH*]ʴӧPJJիXj/`ÊKٳhӾ#'ڻx˷߈mA-OVE}5  [%Cd2 Y!WM! '{Z@ [˞M۸sͻoݹӬN vH;tw;@m^7ӫ_ w AY/]A@P\B<4uuN xl߅D_}EDχ \ IX Q(<4 (qA=B$p?Y̸(PFTVYCXY`'?ZVi=YPhlp)t)?XYc@j)<BFTٜ)Wp bu-Π,<-YIIE7k?ht&ζnaw & <1}87ch'i7 y]\;bsϽmDCI^PSC? KQĀ ٟ@(@{!/Db@5̠7v$ GH(L W0 gH8̡w@ H"HL&pT#8.z` c"F(.Č9?5p|(G6jbw<&GjB  $ ǰэ"DLHJZTNZ񓞬BDD)a *EJURDhDH2KD19$!y5R {H҃b&L?Ye><9TsӤMbiI $Qܢ8xJq$6HZQʑTg+AJVVd$uIKn@/:6@Äc%f4І:3hK ΂H g8IR-Fъfl%)'bM i;=R2\T)=3Jl G5#AqǦU!\fTZbR&BYnu!^E7Q~9:#Gz{7$,V;QB.s"f[[&m9qR]#vį0E4A  Flqְ&+xXr(/Q!̊!} b̫!-|k䄤6#c$) lj')L+Mܽ+@Ԝ'XQ٢ԭa,| d Yƻ哉Y^:DjۻI-ȐYND=XUIq` \{9!΀\_StZu=GRfh ݌esP[F%Hl1?iC@џ%/T~&tƋ~ꑇゼ׋NP=/3;C3yͦڏe]u`]ֶ΁Y;7k7d)Kl!%ٰRY"6gI ,pv]T:Iej࣪A8-QCf&4[󕦺Q}[%3W]]#1SH{/ȃ3wA7<2#WŶe;[ 'OțS~`JCzI9̪k"ʶ6 \ƬD٨6ݽ@&mp6Nf|tfaWRc#ZB/S-_wcMtyk=H2P~^9@g +iE? #fyeXw%` j}nwVfWpiYts:wvs&pEKT}!tPeLdboCiYGLtVoutQuadviW}ovMkQKLVser[xv~qvSYgG\x|%cH#f,-'wR6[_jpJFE, ]YgǁE7thєM|Y$xQ7x_$|.ȂQWR6Vo|̄MXjU\EpFWvh9{(IvvSpw[q~[05aGxrc( xffghraosahfʖPm!SvzmVSczQXTdtn]]L;VM<|8{FofQQW{Eu&؊u4Y I}X}Z(9MgגHV_op0pHQw^~8Ix~'WSRGkIxfؔLyfW\ix\jxFymؕ[fy'wlbb혖y(xh6yVc6uRȏm Yw_H c`|F|4>i4i&EXd璤)T82YT~`NRKwq IhXV%rwggN'6f9m-wȝVrpvĐvPۇFBtdF"n]iç!zDuW|L Megso)Io7f)x~Gx5POkٔW^:Z9͙hMÆXc qjܐBE n-7Yh=d8U6Ei9z9fhfuƠ^{[\(Yɋ$~1_FWx 3jGڈ6jr= (㘝waWkr7zEI ءKzv xٞ8{no'8|:)-XovG!"Y,IAG7s5yOכk)0"wz2ѣkv=yoVAxy$JZiv Q&P'#qL)8M>zP$K !LXgio'JYv6gհX ;:SqɨY l Nlj#ww :* !aijF;Oʁ:,Yv5aP(UQ ++a* &ʑ 6[Xנ]ڥLJZPQ6Y;9 |WxgzN^˛%H\\[&`hy1`n7v#穞ɷ٭;i׊—^c jlZA6ۊt UAW,7w&]0kk4<0&B驒9MdV^(p5Y'ZL[lk `\Vp \*UG澧淌XcC|yzѰ\) q; Ѯ+,9e{1|꣔f`h#!J%L@j9sOzj继I[LK'{/I !+ Ɗ|a0{mUEΤijU,{nyGl8;w<~}= I1⭹,O̍}V>+Vi{Ga=;.ڣ M;,xQTڎzΛ ,)ς,l\h1m/.Sq q$qBldC-eu-}ܹC& QWY,^<Ŗ{Ҙk̯>3^uKphdnJFME n`NeWx`;tޛ9`zCЛ޵ [Nʵ"#>'㈝>{n-^۞6q>ć6ԟUnNG䇖Ln~6 R 0}*뵮޺>밾*Ln1w}UoF_cd~d|G o)ԵZBܰZ JPNeS}Ȭ[ Xorѩ? m}9@2>Ѫ q /qNKvd^ |M}0o>hʢ1d$hЉbD͑hQF/z"9y4 㐆-Yte-3AfĜs(#$R"L1uH M2eAS[m 4bժcvڣdžzd("#F=⽭ſxr2B80q D!b⽇7*VLQyDT#;gCё!;}ʚlz+kdj]58pb/j+識9TҧCz"҈Ď"*>Czܯ_^!˄_}AT(@Th'D9HAJ\H jI&b BԩyT!F(-:褲 * +*۞7K#H.rs+L%)5("LT $0 xpDؼ,N/+KMLվDS;=7M6r0⸢Nr*GJ*4;.<[\1LO5?ooTp@\ 4!T"+5#heو`0O4%jO"mHDHUz"#8s5kFwDNFFr, $B Ir +;gJMO$/dGTLi-{38=" /S3?ͱ"Ъ *DFuЯ!߅n:Nu;Se7h䓩h=O4Wҩ=#B~0| 0ۼH[ԨAM]Sez7xz.,*"FOJ*&+.m-KlOyM 9e\[".5;1}e[b}վG̓KѺ4<:-JNEu}>A:Ēֶv;Fםus$ &9K0:q).O[DK<`r[۟3)lmi[("͸eS 5PSRk2g+vC~҅9YdֆI?+"8]H<MN gk`Ԉc#,zj k\/ŠmVq4O1Tm',4Ai(nu+]MsU9("h92\Ẍ́o><Ovi^!h~1!4B7Š~cQDI?-AZx7iax(bsMi6 m*I1ȐLʈyZ !7)X;eaD@s۷5$/]Z5,3dl7hDa9boBzKv3C0=H4崢}DLG0:"f-90;?8s#2btARt bېnSh,ZNeգ|҈T,M"V1m:1jEf~on D}#\g׹@@3\Znj΍dZ+CAMku}q9un=҉{C?F| G?Nu=Or( dZiL옾B qÏ_ : n{[T>R-LA=mc}Z˿y*"+ހ:&j@K8#8@k>sMstI04pHc03+8 3N Dڳ@S=ځ 9eR?˿۵32;b#:g07p>P?."[&Qj) k64TC;)뺛`!,-T>27=6S@T:=CBG7$,BbD쐡2CITBcæBq d O@C38DhC4>3|{|T|\{%Q?8Ԉ8҈n6`+>C`;j4DC:$<%%=edƏ;lBEH8"@PN s 4A3Kl,7Q*b:= Ak84$9R39c+/;5D\ƟsDG|3k='+ 9,>CG2o˓rlCS6Gh2<%G}5K~>:42NCQ G/2 s|H>l#|B˽[C5E|kN4F ה sTM0E)LW$IΏ @_4kBJBP=}z'VTBD3g<ϱLB49-{+j/ObSdz'H̲Ǝ|P5ĐJD0X\͈0NN-A¼@3_T7]԰,7kƹOM=k=LO g`KlSSK0Đ9yfL,?3˺%B̀tKh<,d>#@=nTF :ȠI,M͸`ؔ@YM8_IR4E<Ԉ[NK p0p@V4{E4)i i)l$] 0ΤLJMKsHd׵S_m_h}bhEdBYZ%RB8> 9Wv_xʹgvf]pC.?IGhl]`d u`i|iL` &fe{,扽&>%e>e{tMaD͵K#?%;<ІC]fV:`]`XkHWlj?H טd:{pkfdJW}݈q~r6g_@cbB sq bDmPNX,f Q) /!7Ei5y4QB0E(WJfJ٘ >f׍iގI3pfd&pk8/:?:n,$ÙKS2,avG;z o6u(aDXƝTpt2QO 9B8&miF slu2m_ݾY?&&f[AێmP4)Z U>RԞg&ʶq{q1^|%AqZl%rw_]!hl:}_6s5fYpu>0/[>Yvxg&^wfZpl9u8n6i9d9lbl(aHwy'ƍ)H7tyfo<4 z8)IO>jznVx]u^7?  q8۳U4Q8]{_yN p7==G|erkV!wwy{jwrs(h=Wc #׈nx}2gpsޯx8/~=tNt*y6/oGNJ_]zHPR~yQ(T/k=\XsGzi:? !:@X?:HH" nHPƐA4gn9Jz#K2)9C7e<  iSA =EBϰyslКfՎFϵ qǏAf/FJ00 ,`t&`dʗ#|M$ GN:_o]Trgܽmܷ xṍAˆ^ԩ|u:sE..6mF;>|k\wvfʑL:sde@6` *+I_{풗^#ėKT!J6D06=bTTuI]STHT53U02f'o F>5|\d14:c&1{R19,- eJuN"ku IR#qt=T|4!2# (d9tU&6!q:ڋ8$=:pt ]fO}[O~ @)YpiJ+K'RH+!T |#@f743JPr%C"b18AP)ajVJjD=!!:1[ dI;XΎ<9nOBЙ')WEa]y]Xsat1'1 Kw٦pcSJ|{$A?:%DLO%2)'j\[XyuriT5/԰*L%:'3L5t)\P$J#?X"$*ҙ-#Cσ6 Je)EnCbHक".iu) O.0k݈lrܕ&nr'+!CƓYaqN4ڲHCUiP)kV$v#1;^^F1Ky@eݐ 6~9$+N=HBIZXW /D A4P aד[euGUG^_7$5p{ իJU,p;@*ڪXmR(OvdA;!%]>G 'pt}qHK\6 >V}pxBэDfk vF-" R+dR/+ f/oGU".K.+e\STRk:ѕl?8 b’zF']gsƏqp\ oۑDQo'ub; tG~}#,+f -j۶p|GsBt{7'+VqHdđx8\}{z-D?k%ͣʝ#HJ]Ku,>KԁSZe*%TځSXv(IIZJ˵͵˸2,  y2Hy`91c ^`1<›}[FaXE^}>?DHY̖@1B#:J cFY`} 6V`N`6$\&NZH̜fI4Q]#p,(?_bHtb0%,WZVQ,PY%)%T%\ZYXS.E1PʜvP ͵66ucNR7j?K^G;f!dee)ad؍!1>TY|C1TUdVP8k"aﬡifɡW$s:#Ktv#N`N "[z.&`2zf2K &SN%) #TF0W)2%]'*(ҢldDA-\?8?EW"\S ~_ H?(hua#2`c6&>wʂyJj!^8be&t&_H8 D#.*B8dDĞLُADofDlbS&mNeaiCEpdudu*8!_Cdt,*ae2"uINN66RbfzeR\1'奅'g]gYR2XeXW+ҥ-)N(@(D*De((|V~"([Ϯv(b{?` .&¨azRΜb*fx$K`h5hu+L uK()#:\)hKEc× lA.YNILnD@A ԣQ\Nő$8T?^1ܫH$*;*,fJ`acf~@ 륎 , jRN(u&m'*SZ(feV_+vZ؂*BB+mF*--FMb.-+".m1u+4Z*Ў+5f&L+)gvf;ʂR)]n鏅onA@jNBRQ-fV#TܔRIr#Jjҭ̪-b_ݚ(TehĭJikD7{^c,D|KB/ռ,K6:`f&804BCinW)F.^ޛnO٘f!SZEDq"\o E#+qAAAi,4*8,A)Klp2nZo>3Ohm'-* Cվ"-"jf%gު&J-ڊm8符J0jeFL9PD2ZpTpPpp4p00c9tCH2*&wN,/& @kgDD½frnFl=f"tiET¾@ÞimvPHq#v.嘬AAs$GB1 JH+ߥ"?p2:sI7S1C1gDK 2wr*rPL2*!-ܪY&A_Jh;H2>:_2|m+(.s -r/4Lg[o2427Ls9][3*n* 4C8?pCg:e>F!=})\sZ&CtY3Ƕ6D`Cs$;? +v#Aa4pwa{4`?`6&]#b^l^46]KowKv_G9QrPu,%O/r'l*W|rF$E;(FF(W)WG\Vw*YW .8z4yDuv3K34w36nuv/2ls kFAHaAaw63vý6dk'QNfC~)@"s.W˚tH\=^ν8p1Gm9Fᘏav˫,K_xKl,ZaKKݠw_S^8M|'>:DײHdBSs"tF 0D/#U߷AS_zw$O,mySw\Dvk71/&#3v_/K9sƞ9D`;981F8ց8E>N1nh:Cs:8YF|vn\orO$anwAt#7Ļp@(,6k86țw0w(z# ^5dz#(weF{-Hz 5χ"я>ũo:<:(ywx=D]ܿH﹛Axnvqmc.(tR1p=E {>K:Cۻp댾i;<68T$CSCwm㶘׾{qq~fpg|c<Ʒx|,?ܻ4CK'v{wxC 5}w|ۂ|_C׃RBO-H西{?D@%@?:ˤ#yAAh5\'QT2%ƔN7`92sM2m改)?'7ݤFQ5(Z|*d5;ҤVh?4bnm[h"Dޝ2i̒ 'NYLqTljaG=~E4]yI]kК6ڵU4Xwú[֎ǍFMY͛`$Т:Wpy=v|L_{e A" mNr  < ZPrA!L &0С3ɡk0"><ңĐL\<;N8: 鶋**ԠʢTC+% m'IBʵ^G-1Ռ /B:#̲"c1I0A=±(444/ "Kı.4Ҷr,x n #rg95@D~,u6@Y&TfĮ;h$&xQWiO9J/ $>#["(*Y ׎ ^d (tZS!i1T 9?AbC,t4@0ɣ.ݏ' B_=xo{y %Vۨ[u%RΨ!ɖjߺ߼:ʫajFdN^Y.9Ǔ< #IC₾DjԶ"P 㕭-8m,RmXV*`) WBx3Oի0vic ^Z\Ts.d+[ J9ӭ$1H \$)IC vkIxOou\R+hF8I*c՛J&A=EyJ֦A jW3 ڲ//x)4&̌)p"1LeRHM)iƾӈ#/u` ɤ4Lj;RX,Z8F*@qURT;4I0EbJh{Yod;ؑdu,G|VQs$pf[> As! %a<]I=T$AzlڅXba +vH,X4bҕ Mk:Lڳ= vdn%HLK'KG:IВYa.#ðc2]WzjF0%r 5hQ,# ` O r;vG&$yܱ+0h(T-4k ӭB#5IOLo֭ Y*-fO%*-j"9g"g$4s #T 9h ˼HRQ#&!/$Q"Sg.ʠL`r蒓>kvd ݔM3/-,$SID0qNT//bLb-B%d/A#OjQv.\0j %ʮdږ s,2 N"T2Ä뚔gHH4)4ǭ55 ?5Ss[06 J%(?$N8a GGtܐHqN1n:@Aj<ͳtP3%pc>d $ [_K΋qMXVQ2%X",L.#3lu~DAL00D2VےE- ^"FQ#2^ey T$.uќ#tKU]_6߭M/" B +e9CNJ:q.O/@1B*1< JOByb/vN/\R9O/0)u7"Uqb3qupg5W52@4J? WYIVANUn, I&i,FEqL^jhamli(0~/ܪ@AdSmIA]Tp@$N,!J A##w3!czt4 z6o1pOO||y$Bvrr#g", o9#^XbyuB&v$Poů/OPx%x2'1d%eaұ A's(_ B,!ư<;WkO_\t_LDDϗIp@(8YZ.s%V-IRٺv\UJP8B lBiL/>.Ox/$MoS32_^ΠD_a%a7*t\3  퍵3 sLq2<%c -BH%׺&%ۯ=<>| E;S-H- ;-XBot9b)=uU[߹^QBdh%BKrWZ+0CHw4G#2j.FG1(4-T{Ʉ՜'4R2 cMѯ"}rz:d޲ssS-c!66* %\>H!󠈚6lKW^Mޏ/%ƀ  Hş=_\Z$م\% bU];| 7ѝIZAH7cnPB,q/%/5H)n>H{( 7v0yǵlTfFJR-d!&j rr5~7i["-UT]Sv``*4/w =~Z=aŝoSBPϚR5ã/%ףA7\ȅͮB09}&OB܋}; Cȿ%?F]%$p|%ә<Vu31uO#B=7wN`Q:NPq Mg- c+XVeۻ,ǢzrN,RZ-SQW, Ytb!7#! >s."Z:_ k1CRjH`(bF8s#4„bpcE4B: 1 ݀i5y(Ljzo{9 ;vuջI4Ѡ~N!BlLO^Ǟ{]tǵMс\CT2ÌWFgQ5>XA>nvnVVC`iU!aR9#d"L.tyE?|J[ !T./=!/2e0 [K-fB-q[uPB i~^(-~Т6dɹh[pf_Ew[p5YAra*~$J-jQ?檇؂jwT'ڲ- ZM_05*l3& EF(j7yi]얇wz'_!ؐyյ]P/;?RL,|aBAQC?:#r"xbUoQؐFe)b=F?VBA_%FS=KM[s1ACdKG▜?|ܝXzڪn㧹+EJ^.e06XZbyXr1jCEv?*,ʷƊ+ݙ$ jƝIrzn֨?ئ6G쟺̛-Q%f&mz nA5ߝk>їzS)AܙЃ,NuM9r(Fol!N,B D#6C"%E4H^X!!5)+@Ь&5& ZQ"QM&U O֓cMlAZo6'd+?@2À,HIIK4U|.->`KBQ%%)? D:- ua.$C" `$ i-a.1c TCqe`_ATBVBhU Y^DrC*wTC /x“2iU k|Fj8DB=&hQ܇.U\ZX p;ǁ F/}`V@tØ)M0b5"\&å+Ś-\kXT7ͪZbSƆXZV6CB>0%]Eܪ%-e  "5!|H"qR9bE ۯ_*ݮqZU'+Y!<[-o{ 'p_P-Qv *HKkDI?Md̍ŷ[ t;.8I5 j8h7b< ׼ @ZǼx (^q7=h0Ti~e1Yb/E+3<20z&0`ZCZ<JKӤ5 ,YʨD"Enej-1DfKLBĪqTTӘ )@\>q q A'1haE!EIt]dJ4eV8Xf`xukwG=oK[ZҞ(Apaq5kT}~uCFn7'D8os寡jUٸn Rje ;iĴ`":OC0Fҟ<vr{d/tNW^8r*&B )7C&FOM5&Z_L> `(, 9;2&aH8A$N^%SEVE[sTMbLfrC5c7VVu6NcFJY5^=DGsop osEP8JLPIR4JHEfF4vFpL ! 6`Ux87*tv+xwewwj AyІq vt7wn#{LKmB.y\Nj Х.N.?f^ve jx#.b^}2lơ`O{{B|(|m|/@GO@صP d1 `~(Q$~+Q3p#CT'a'hÏ5U:IaERHotEY(b`EE\/367@U r4dIuCf6.8d  0='u>!GqH4HyUMTVck$ OȄPhvFadp 0*A*|3hx[q kyinXVj7dAKr'7u> N>-?>-h\m[7X`mhl1φiO'|Q|ư S`S) P ! ً IPG-112~!RtYaLt-W#RAR&1DfFSR$Q249AJAVbYV_uT\e6BT6&^H6T)U^hXlc0w6MU+x0xd('39fT0 ^F?Ʉ%hRA6pEaf~hiƆ\y A7z X3J<]Ih\Y€$JǪ?$IqXGV)V q 9rLFT*7TLrW6cFs F!2ud m$Pfl桰UZEQ( k F6r'JS*ʄ&JR7XB-k h?҈']I.s A[?h:/]0V]0n]iЧ&m!uP|u|Z^ghS ) JISP뚚ы(|" j 186+ QRTZTC9S3T1D6E) %KVb廾PbTUFe5rE5F&*1TA UF=TP2UYZ߻TagZdeǰ** U(DI ;RHuMQX0 `L AA*;~$|(w`8r'"f@9$~:*nhPZyVyyC??I?ɶmp.xg -...7Uc k?/Gu;Ho+AoY {y{`uܸv,R^$l 29-A Aȸ33T~QCL/'+,7qDBӞ bHDLRUcջۼ!f&{y#g" Se:26Us뺑HI)e@*`vcU +UdWe RVES#7@$JjJ= l()|8W!p"|*"7W(ӱf7nh x@Tj?YD.i]X{hGm ޅ eୱHģ|ц qm+=mPʧ0mn 稧YHmSи(z{Յ[~[@^ɛ{|{|dPN U U`Hj6 +thUkX|,hqNjhux׆i@ќw@M^^Up tq'g t S\tDh% 6=Ur[S);B%vDPs$I ΚR}8}` ߭)KPpp0 rAr8|P hh-jnپ U0nZ[ > ~BjP?7%F{kjZhH8k+B>bh*MĂN:}L[0,9dD. *Bch=A JC9 3kv.O06”eH9ʁnv66`PcЂxD,hf) C>cqqqCô7Qp 5܆-4lDR \riL(*ʮB67[[>3T.lZqŕGbG?IG㶻:c:5YtMOs83-9A/\d3b .A:b Ԋ$ۈ0!`A%h`, B` BB28H ^ br Y2Z( C> 8*4{" vTFi\ҁ-"[dȹ"/~\|2IQ I(0\a ˱ H .1Y̏~ʴV F&QDF&YYȠBd]ꗤ m/$iÞ5,i_VD6#Yx/@V6(ǡMΜ4ѡM?:hcM!uGEE^񲊼XLc3$BPO Ө+RٍTDWΆ"B"]*;6S4 hH nB8%/22сO YJPޔ.MLH*ROҋ׿2$ -Q+ ծw? q`I2j$F -yIel9dgPǔԤNA6 ,D:E-6of/NAԢ(nkCp$!&Q'J_I:&vd\&2,vɴr~RRx5R2Q4ՔNmH?!2q׼*vʱn|lśL& d+_ԃ-ўנ^fJ_>,Vk-6шpRV=(C\P17ggI mq?\y6iAHկ'Dtэd̋^ ݋Hw XFt1P +^"SR4"5IK\i$l(p9 Ӎn@40 !'nz6"{R]2jepIhA1?@^3;ʵX`ָFFC &ܠ_V2Ir>Cl!ȼ.j\\ bLSP!L,oAd .[#G2ďVۥ_Wws"+EvS^R-ҍjr.mkAW&Ze<ª̧$\M*G|dA<KlD 2(o)Ӫ nd$c k8<;XKR|0ʨyAZuxq1D9D rQ(g9zHnGo \ m rcK6L$c曘Ц)acez=I9EhܡH h! HhU*څHt9 tԴG*墠M`8 j奬~_OåyMibSACӍ%(("94َ1۪qbHҭW0Z|SЭ\ɖď\'ɞ?@ ڠ\8vlG+,wIw˭%-s%"͂R7Ԫ[9U1  Ҡā$&dB&&Ѕ],(]#(\HL B,-\T‚E꺶1*ҳz .T)O#O.re ҐŻQH'ؘ+;(9HyF|°-˔.iɊX+6< ɂpbܪ~iW/@(Po]$cM l eXY9P q  ѐs_ -<'1<'vۨh-6EY6 {X#ْ0)X:a ʔa8?P N)IeŰ Seп~. _X745Cvc-RURJJmM.ph8ZQ8BI5BIT]YK]̵P5;_;H\vaձ̩P(P2 "HZ$p 'D"H-d H)"z4뮓y)p = YK:L;3{ ,H!IxVۉNPxlSaAO) ' mע;aПI^4ϡh k" R :/D@R7~q:n"`iS%&זą$əIkAPȍEQ Z$ Մ+ ܺ` $1mehe!¸l!(Ђ_@V#B [̊IM^5SR86L$,5 =$)f4Hh- S璊ȭOT3Ќ t_Bt( C[SA(J+tNԢآ6hMp`Pyؑ:5 "P# u2'EmY Y8ֆ5 a}Г}يtOz'(αa<@'F|* Q+b1{%*i黍Bis;H(xSay+"!K&āQaAcuyRaQ :8CƄ%D>d(8S~ɿI3s}3Pԭ0-.lmԢI@[yvDӼ.\he4[6r†{x H-YKm"R]XAɘ3 uh 6`MBJ3y-ް@#%JPER$hxx,0/?hGQJ)W BU!BKMK%D\)\HKʅbB!(O"-&ʟ '$#9MHL ʻwRmcPl)YXc8?%'~AۨG`[W'['9wwBua QQ&-Ϊ;I8Qz*3*`I.\Ǥ-uQ̆llT]E6²ſʨR,pcd#SmSR(S(O(NSTIE{ɐs`A.d:H¼(8̙)y%IL všrg Ű]MpzMGhMz\_8wI {ʭ ?iA+k(" &ChR J *ܔ L M] nj jk`Fa mz5CZ`\HUN¨wnİs;- %[&a2aE37s)s3QGWj+kqpHq8' { )dhM RQl:!OxIBD8lĄFu_/mmSfIAhRf#WsWPfDdpo.w1} _iu,dDVBʦlSL06BPHCä 2p@cD£|6-؞xȘ9M4ˎ܈4% i)PTQ6ᶗbY+Jĺj,&mg;,'@p}) *HOj3 pE:=0dIk@ ƿX%!GǮ<&H䋄dH' 0#$ |>'Ќц"% @ok9}56!7) 5@Ɋ|6 /JTKBpȅ(规`/u bF[v_?hv gHoL8规]yGφQe%P䟒Y $!(*ʿQx k̢rɒ%+L2խ -SW,5Ăs/AX"2,郴˔2*kT_8SU|y떯iQVPʦ6-Vۦ*ݺ:VLuТu-?|T7~NXΕ+}6#R%8rE럡ι6w6R" MťUypv\蔫G]|?ѿG[*_fңֵ֮Y9Y1Oۿeʂ ?e=m!rG[bjR >|?07 0GR}qWr?A8OOF# t犋u *h-"9H+DbA>oi *W?u*]A\Pe]#.~A[cRL3M2W^w&}ƇOOT`$)5IJ0Bb&Ri)TR)PFlĄL ,1n:&j"O@ڢL:L)_2 2F7c`b aŕJ*A\wM]ҍjl\ԁS3" 8Hl?KH-կM-%q.RA%~@L?ptHͧ(H}h+,S2BG(FbOV=RL^FɘSry,anY+72}7BE2vDr8 .x 1otJj1(tXBNT(BR(P@HSxu6; Q,#jvЂ~_c1`aq\*E(G3NB%Q)#0C!G7Ų1 Sj-l|+_`SElqyv;CD i0F^Ⱥ VsiT*̫H>Br +J.Qp~2%+?c&)F2%(XBSP^h8P&ІɂFLftTL58<#AOzI Ч>3!68g=Y hzXX]DQznhSd4Zng JB!Ko3 nUvJ2v:(h[R >AO}x fI*bxWc}-mfVK!2y'䩈}*bکU@I(Q%J1ldC\A lmr?A ?~( UJ@D- 5aUcJPFٲ@mmwKG!)k@ɵK ˄2! OD♞$1K^49h 轃xr::(On@Mq(X8X:`[ʒ>,ZZcOҒ@hU-Y?$"N (x*!Z!IkPƉxE1SPn_<" v/U_ a3UDQ8PJ+bjq#!nv3t NSІw [J !L,U>laʀ$3LQ+[e>XyǤ3)Ȥ# VT@IQ+$5p!CU_Q]DX@*X|۴7((+0axT J" ?@{FPw'0cf{c.wT"xq <7é[]rCØ;H&nʋ^R&A%/5FL~ds9O9.ΧU˜eIxq[ k@y5_IcgIFCW|b$t{nvι=+ܳ y^1@ ' zO׆T\CSs Qz xV0h0I nn T͒)A%`ZO߭ x`_=W1[̖A>w*SwU-qFl]0 ǵopj?,kg!0𵯸u)++a;W,H1)M-BU! E!iC (@)`` `E[ [-t' %,\8å=wELh^A2t-$'zA^G\W<Ȃ4/HDH/MyuH!]r,)LCטMEB#XZa,V@5b@)ܕ$Xڭ!‰}T!"(lB*,]C*L8FLcTdY1D)#@ ))^EDc4M}޶Am(D70f#|@0@P-`-8 %eB!lT+R3զR#T?~ɏҀ|~4ߠTQHdG,LfKʮ !bQ Di&M`O,̽P EDDlv au|*^\lQD Eeة&_LQ쪞5t$h(㡕d ѺTM͂-hhєJ՟xԅ_ծMlN#m%-(U^MFi-[lqW Ar"q5[q UF%iEO@8OZ~>˨At!qr|LgL4H$}MN4Fg)՜Pmi f a֪qg.4hIl-pǤ"^9q>]&-}>@ј8LXbV?6d/M#<)4^܁L_LƁkTK!Vě} a³~ !獲,⨛-DhKiPIJP p Tg B6p'4DGh EJmY2^ʪLɇ,̉V-R4 BW|^Ie,m3.JmUIdJJmȎԄD메̞EX_ /FcPpEԼG  K  Kc]ѯWݶɑL!ceP~k2dSȂ8 ATD@ AcƘe a[Rm_T_< Jɇ o4J6/NYֲ_'6=NPA* H̐38_Z R#qDɌ@A!AGqݗ$  `D_DŁBKRB ~%T,2??0 '.l Pt.9FH~^n_I}V)S#/lkY3i'C4D7{"(J --?|jߝa[(#6 %& 2IEJlMP)\Vj6fiKaQB dk $f6&8't 38_,J\Rc$1ʁ4:EDV(~ШBfMINaԉ06:ܚQH|cVs'Jp#JR__ľS!"U8ǟ~3FaWh>E0ST "+i>BRDI0( ZD0Q7H~hiMYh1xQ4 DDlEL 9z#ڲ,'I)`ز77DpD[ ٤{4gP%#5$[vkMz%6]JK$МfNwBjFkF/RW)|6HRD ‚ҁ6Tz\KDE…/s[]T,Ay tPH7@gT{.gtWFeMh -IwIʨ8B`PUI|F |FL#)oTTic cHct`ׯrB"dB&-#78 ~`(Ūl4!IkI:ĊCK'%'xyЁtMĒہMkA hAJʳ h?y }  J[ Ć=Jgt3fH{VVzeJ_lr^ƢBl֜$s$;aA &Bb\#oTE! !DRR1ké ~[K-fmbA7V싾 vF،D_ BFMJEJ? Ԡ1k$5nzgGb sJa={<{6t8͢οpq+8r&#Օ2wE#/^tH>~ KTVW7_8_ft*>#JtG,uըQGonNCc z/Sj p)QŢ]QEr7 JLJP*Ŀċ=*v\ d(Z k<IP4%(A@DlBQ*iK_(]ף(n E)nh.ˋ=1nڳ߲`(7۟( ȧ} Ɂ6Ñ}>\I_SN>p娚BsC"fa*CƾSu k8L18 J*+t?7CgQ$(Lǧ"2I"c>샖>Hp8K & ;X xMJ3(P.ltG&ɥ>82"OQĊ1)ֲQlLS^>I@O>S}{-XϹaL3N %tݕW<"kbBү &,l?䖗rI)+zwYe P80a XL&>+6XH,8]PJ6;ڄXP'D ;@P33-)E)fK[m:]sEᖻN_]ع騳3;ߪotOY%O Z1[@.W`Ѫ [B+&?X_—pJ%ZT }E+;ѻSkH'S ty"Rhqr­[v2GKtCO?02"C~@" z yΓ9ֲ)LEPX3HH zuՅRM33#rrNl_ޒ:K[[f5+3 8B:I.2- .Z|@!KB Zʄ'06>dBD[VJ\B8\ wY((1=g.Ť !^&1II&L6ĜT7+ŤL1)ݑRXjȅ Uf U%RfUXQ k,)Lb6~aާ5eXArzA,11>bF@->ڼ.;CLQ>JuN(3Se~a&?` i:nt-pS[vNe;DגdZ0qؘB;@=ܗ*>%7儸ҘBE_v7l^(3,w6J‘+v[y&;1K.QbMcCX_gvhb("L倀M, @\"5P@Dr /bLF}Ή'X#5B:<@ !ZA)l92-q|fD02/RiF ȏ"'$ A](]4&9" I@?^A^Pj}l!W:jOjpgZ8` S0 N @ h#G1X.~0J.%l&  q,0+qԐ*$6^ʢ3"Q *q/#X#Q{,{ @@Hl̦@)BF,(,oOF`l`l ǚ+ 0zLmZ me$hJ% Z4G61ގ s0$jQ'$1 t-(Nb` 3SuTV @{0V C R .lM'XQX!YXCi(Pj ",~i-zJ = \AA6a!uojD#2b ɜ Z512F&QX#.a5@_C5 & R\@+VUDʜd}Cj]ahb(XlrKbDw$x,t%I@EnFhi"g%+&&AfA&'HD p@6K0m6]‚Kic2 QnS'q$Q)Q11x!M-LU p`R *PQ h,1 0R+nAu1Lz rgsa ĐZT9  #Ť \x5䠂U6XxOYcXJ:fgLEW6IVzDBV1-8/=fZ|h!a"A P 5 <$ZѢ`_|?/2DfShKy1~OF `] ||JG)0 `%]H@e?`C&BB;?ddRrz-gr#"=sk e(ao \<}i6?_9D|h1Ljzq & 9Q' 1oNȨ- RrTtab3#.tl0G',MSpo#UB#0*y{0ڰsUv0H TpwwWIיżPxʚ'zyXs5S zQ&7UY1͆#D~ַ{/6* rA["Q !!_e}^]yjYggο8q( R,>1!IR(zE:0O, n(;UֲZ\r)ܸǔR>i ʥ&*%TP0)ԩ*`VXbדCOX~"Ҥ v 0i$ϠTΫ>~pBbۑ\EZ:ePsyYF^u锾#qX.J"!f⧘/D !7bE%W`ŋ$؃Fz-_ bf!""c$ a7~fLࡈ%Zh?@>aD)!dF(O aolZZ `H o06&SAD<撌itjKrv'RI.:蠹˜2 胎Fa?RD¥g}H *+C`Et1Kiq6,MSYI`R)-F6NrX}0'QOU8T2UuUVZe' fsI cJK.D(9/sv݂؃d 0Åx|$cp\w?!C%ߍ+u6x8|Un!ʹ}? c2@q vܭ.'XT) }Tvq-wU-zPLUM6 d fXt./wRޡ /"Qb>Ψy8b?!.Xf3"C}MdAc:h->a;F* TR???oNji !kB{Vtwi_G!bf@Z8H*ܦ#k\ID:r0 7aU9WT 804V,L r| }Mc\*ڊP7ЫYjVLB`s4rBb~-t51w->L X XS$0+?-Aܪ"ɩ~ ɍnrІ yMl\e,#cc faLsv%5 2A,(IZ^XT:XKWFRP$$ {0I+-'O,Y%>KE?>2݋8 ɨEb"'! >\by?bnn1F /UNiuA8y$BB WAMН2)?Ԥ$MkSЁDÄDm A c()Qcz(>Kyzf _f9j,*a,|FAթ[pp_ЈLqia_1h :F0b%WE70hA'ҝ F4r _ ^[$ #D>4hQ3g3 EQgmq[ |D&|FU&ܑ\ϲ ִb=Q[tKQrNP(vD4%)@bF*e%X@ _ 3>-OɟtQ )Mo캉ȝ7M0s$Itഏ:# FDb (nЃx..^΄&-dyeL 7 Bm/ Q- Q0yBa?2qJR}N ѓVo J=o~ ~%2 <c) tAbR/5Pe\(.V!ydZmOoD.b|e$\MUzT}p\ %Ax Q!X̄c4f5h%ٺ(j##6 1!2"RBv*S4,?XQ.ze%D+#hդʢ  Zg%3u/cm"k_קf@45n_j\]dX|b͖˗>Tϩbh@Bv]Y1da^x&iNUa;`G5T!%ȌMjOT6 YE&p0M<;!Q~2BHVοB,Xj0X՞间$R&~ЂBoWk'dCi"ǵ'd$c\ZlvBMk. ),r9󾱭=Z0K ؅[O'5 $\nP.y7iI]]L-WC5!,72,ƇhF&q! ra )@s4xFo!*!`:MMMR8s0sۄ_D$Osl6ENa)`Ab|bj_abvbOwOgcbu']P9P#>fn"dsB(cvOЈ:Dpe\VR[&Q0fxw{2f,0HTc TBg"ay2 ro-=sy|VE`TPqWUTeiEoZ7pe tS6tW bKGV?gwM4l7 D`R@Iq3f]3 ]zР't7d^("Qw%]2UUFpQIj^ W!p2W4gp0榋wzkJ+Qb?zzp=wZ=  *>8 }y7H)i ͻ^hq/fpkk"NqY?lm%rY`py[˱'~+SSO̺ +QXZ"ʶ)ͱzz8l8~ikw+QAIL5@ QsVg^kKQf6 b60]b]XS֤&BfnB,WLp2x ]a;2wb\b,PHM#cylLm`bZ9BV!{ؒ 'TeJz66q]ԥ2EB"#$z) Nlhʝr}FJ F:v/, w(f^zż^,&4NyU-D'DQ 03 6Qʶ(ph"211ؿ*]̰QﭠZ54'NC@5פaYڢU P}uDQ*D1jRzd+W A9qU)gBWAe]ɫZU&)iL{W|q'F~[lpR _ aQoE(V(wcs+g n)4>Mkw-z!| )PO{q☏ <=B6lٕں I5 #=r}/r˚",``=&S.(+!)]<4Bxz T T@k'l x7s<5ı z=B1XBKK jL~\l[ EDQHlb]A%!-CAK؊nWywB,s$-ZcU51,WC AC鱁ћC.MJGhSq=^,Wg K J2_<Uik1\]>skݖ|=_p;~z*i.td!xN# u m6($L,.jFQ $!(-vjswR %  $-\G)g?z_A-1( SSy!Z̎W̷~AS1IɬQ 1}O 3a44%^ڛUS蓪SI` 2yO? #W*18qLy4?#Ko,:F|oEDT8t|\I":t`E'`sMK:qH4Eg$IXr?e͖h2`_$_A0B.@140ܸ`/Vܘq!bL?3-tfv;d:a$6gm62AxY3UA?"B:Ke ]v۳+G.dZ4 J CB) L"8W¡hhCRŗr|!ˠ;$\ O؋"c8)0*N,(+АJo#%0]J)E'0/Yp#Wrì%G'9Wҕ>—[ŗn BJ ܎lO 8@S*HS (!JYG,fk#ͥBT*4 T6n9!Rtŕ>A GiY҉N8`Y-m{U?04I,8 L%?E /W@]? D8x?  VBQBG YfT$e9IEC)Iٗ/SiPUO(42B $ [(F\,` Y.lK]rxA/{9cPƑ+hbֲL1b` 5Y".5FZϢ40+f5#qY@Bft!e S/_T3odf6M1\J@d\Ȅ6T\}3'a Z!L'•PB єtcU,EuKgև1{Pp W!cH.&`WD)! D4gIrE,n4K1 { {RTM9c[_8)'IL"l,u@"= red $YPT2d*`R@i\JԈhC%TC@7Y f [Zx!ha=a☐=7親(^OI)`:_}xGkRB?X#%5t6beRu|R OrKЗ O>d͚LxCμ!Mm(Ԡ "+p+@Jq[PCC3N:\|V , XOZ-]QڪbD%%)NqKNiXA? Yɒĵ#B"kN鱹%_m{E]GD ^1 ElʆCȆI6lnE6IݺCib}ܶѷfBܶ%][ dH@:XXui3L,)Lg)"^pbO+i иr8z7̺Wt|4)!v Gr,iD-T?WEuh h&RAf|p9jGvf.>lK50PB\ANX!gمcT48|@r!_8 g{2_HK`Bo8i6AUhȩIJQ]hԜիVTX}LC?!Gd4K?IjȎxwlnby0-v"ثaGABb9l|?z#O$@O( [q 5zxY7RK9zj ("(^(xb{+ #a=ڣ K"`.j88K 8F8@‰$ 8² `9/" 3XE( x/!ùk$Uq5I+J:l>[+iJY4H(ݣYXAܲ0e*7IDiSSx>0vq!^=Dۄ-[](2X(PW(*RT4*)bGBxJ%<( 1[jl  PB:L_=-8ªT̩;wI0!|lk~' "j! lXl@g ?X3?z!8] l9 de쿖`@^L\6 Ɏp " h z*^^J(,AlA }A *l.  8pI "\‰YiV2IB1Z]ɳh b0 JLH'*;N4J YE^н>YȪe(EYEIiMr';w'z*L\Ĕ\4d WG>]䔩"F@`KZ4)hP\Hƃ"&bB31( JƬ,+[=t\XN99POؓf+̈ ш ,"IHȖX9IKI%hf3k!0 r-ŜWLI^**}|JҧJIĭZ1lC va++ӿQKSX(T 跷BE.4˴d.83!ˆc|9 !pQ 3șʍ %! `Q)_ت(J VܒYL"Q#48 mV_DGz~Ёxr2\l4r8Oh(h١W:I>_x(ޣ2H OG^.>`4K1E[0dm5yOh Ⱦ (H!O=r?Ź|,02 "La1ks 5!U-FZ Y!?9 A;5)z¬d+rj"bKl32.'dK:@d騎> FN\.%\*RLF'tP A|KQ6˥TN?#K@?bIݲ9$TڅGԈ ]ۘиȚZ14/#Xǡ/|i<*v\)FV"iWZn-XF Mf=T+#&M^, 4`V ph*Gϡh!QCKPʢXqڗ Е'‰,z&B3X5+[阘[ՈMQ%J۫OHR:’$/,ծmWJ*ZAC8ԸʌPp&SkkY)"PQqMz~)S`h֢ʽvHΉA ga$ A߀  EighHQOQT<\,/ j:i#qݔR솭2J1 /iU0Q S hh& !f3%AL[:s+!fJd`[!^ s!qLyl9 <5+#orrl~Ebю8F)rRʆŇvLVm)M@#xHIxKo:1cG@rNh=_F+Gj pket=N7bqׁ=qq?pv,<1MCY{Z<Ny:Pr.сr-l3Kɪhx!70`Ye>_,NZH((Ծ>/ҲUtECa]7tXmt~jHIN3%ƸχM%,liRzUm|rnu+w mƚЀcn xv̘jYVn+ GK 8)sOCSR %:nAP: +AA5 &+YFCUgp"C=hGAIJQ17" MTd4ܿ5DpU?|x+%i*++~ܸy#W.p'U,NЭ+袂,<"ed >;Ϝ#!s*%hySA00X%XwO$I$`1 Z:f7sP\@H!p eL Z*V- ~ Z?2,NYbr g.bahű`%+a @7EЍuU0 h.yqHB_pXF!&:YeP/f|tP Da(CX2]9r@ %Ghf3Ay Bҍx2:,,(.]d$[`Iv3$'PPbz[()@B?9 ecE}"4 D[ZqH3+Tڱsu?ꑙrg8uv;] %uH>ǩ-K[2^W<'QKP^%>q$J uH}dB1e dK?JRs i:әrUu@f0C-jEԣr,.l@ U. *  G2 . [XY#U+]*Т)?~J,12u :EĈ`0 * ePv20|HFZABEG rdH@6ht$ p R,@nreQOZLX,v#dAZo?yw3YF|߻WtPMn&LmhABi$U.t*4C S@:S|S$I|L)L+TiyX4=8@O+= O 2PTсEIy}2h$%?K,ݔZC.cS OH89Y<day3g3ᙫʸE2FkA SytgcIq*{!U \儛. ŐHA\ڊ>BIb.A:ӛ mpenB>lpGdtV:WsJd-lj 5m$/| F|M,'K !CL*}R-ބ4`FAك43mP ~pd )?W3TeD&݌6. 1wp 6i<)eKE{Piw?oxN'է&2i!H 6cɡ@tLzGhM !?0Gt Q ,L^f$:eBf1 :DP3+ 㱏A_zyECڏc֞dM;hήJr:z*h&}JCjtw^x k<!?nBȡqev#bFQitdp^gMжfLnW H\y9R p\D M-? yƽ)Gsd K 4[Mx[V܇%`܁" ݗl?lɍ\؅!@S`9nӎH4)4 lXuȅ@сX)}!ݖlIݗOt 5?4@X uAiȀh"TmOA @,<Ӕ^Pe'EP/zb^-c3t(4MH4 e\,i?DC^\E嚨 D9Z&|@4ѺB&d53_\}Ma߻UN. & R r^36Zh l+  &)AmFQ $ WkV [DnV匙B dCņeeeRռ36pdu$T0Hn S#8>  O@ȅ@(SɑbX3}&"`ŀ\!藇 &|؎}f!g"@kjLo٤Gďjo<@g! HC#DT/@@.BD-}%J,T#%-pp (%>z2 J 7}A3`$DC,m(Ȗ-1߂] +6U[UulXkcX"F1cFAX^蔮1h)#ZB~1Z4Üy<{~UZ˟?%@֜Uǎ- bt7`Ah 0<7<_cX@^bw(P&E⡄*eT88=O?6y KkAxrpBdPC2$Nb\PB>MQ#4n( ?_œ [ēLl$>>)K$j#+S :S3B7##0۔(1b0C%:)0 Zs-0%%pE9&&X)&(ɦl;O뮧4d,B+Hjİz*ƜՈ>cE .S0K*[mJk-5\ w4*K-5ոjmz":73:a݀;Cd]jb$H.lx@*&oAp=+EM)*BL2A(!?Os ' ȧP)9Dd!2 3—TDHjl$>*mHO*R+h>Wв(! M"O؛7 N̵ raVtRN<+ I6%?뜌J(Q=^`,&@Lt|(ηFVEWRqQ XQ|D`f+Ƚ)gAvo0vt߀iښa->z$BQzդ+0vyY-O ^iwWOԨo}Ic.AY>o3ik}-4hMnC50!D ғ=Nd\ =qz-]p!/\Eѕfb=VV II oOZlNCŮ5YVE jw+Le-@ lحgq[ѓ"<1y}37\`,pE`̅F::`tcCn`.,v*^,0\)ib/d0)*b%))VBLBgdn ̠ r{&)XITq\JxP%dv Ą# Eʰ@l,0mkN 2n DT&T,%T@چq@t#P8M 1ju uQEV .NGTo4@vd\ofO$A b-xIqr$"##4AL i<,Ƕ"1"Ev|c~ VL|Q" gů|HܧJDJ3HN34 ap7MDe`ZŢ0ձ&pD1.Fpc12^ȦJ`OmuⷎZPVYB~Pg*jm B/j )b*۬h@@H,Ύ l%lA,@J2, (') "͞j&`xdR"'>B!\N&JPT("w tG&B-%/'-_Gb+ $ $A؀ LqR) w6%#pk#HAZEL@0*Y/\CQ4@gӠp3ڇTCm2zo33\_Ӄ:w:q7B۱6F,3_E;98D_ '92[2Y!?Y(JRQgOR%Hru"tA!,*2O8tД(iJB5 /0%(b%܌jLDD&@KT/D%S+դ B:@pn .!&BBb.$"EJMw:>1S k+$a`s1 ւDB#t1$"b#2E }nfHS`Ř"e{\0eE g(qM67QӇX+]>6w7}=_vS;S66v<+̓XP=;DjfD"a;Kb'Δ'cCE5 C.@D$+gM*PSg^-qKՒQ3S#Rq04M%!a >qv@ha6i{LVٌks]-;R st+{K.IR}+dn3917vSqL3V3HÐ7h`qeD5г͸rS;"uG,^3X5h8;3W%΂M`4 }wYEB[hoeqz"wW*B92,/b>&G}t,*d||=E&+@J'+EG*w>)2QkfI1"ti + V*x@ݐYii7'X jWtfS)G/Ė)lX2"Lx|f7ڍʏ9ا+Epsp؀9,qG:s7S0@YѳWZt=)͑qo=ئٸ`apױم-Rj36"4 &vu~:98iYX5uX1Z.&O.B@{CJ$H oy,@,h0DA~u"ۺ d~543xؠtٖ 9w YA $k{흵+(HIPk#OQzQbP\'"G- T'C톟sJ7,اnMosVyjSqgU7pXTY;YzrwusŸXttPp|7rcﱦƏWsQm9XÅ/4!c"0c qY4)Q]E_C!,A&Ct|j|R£Od3פʯ< IoLV痦BuV$T)U^6~iYk@!b`wppMEϩ k#c +Q\ۚ뚬K5TIXBz/~Q}%9Ӈ}j8#"㿜x>ᬳ9q9HJ|@6p[X%r5Ⱦ:K\5#\YKW|S5`s_l =!WK9qMg%M7}" eg+zVulpD?x;ѥ,"ꭩU/0.Q"i'8M?U6tx2.T7J9bUXE\ȳ8s9׳=6lC^ _5Suñs'|CH"$V(U F<4CC3Yw&yS;WOOF@Zk{$’!,QKlfX4 .IH/gGIFNG5BByœxR @l/jb>EL`O?dU5O^ p@p,3h@f[ as`q k(2hb2z (d;Vh  -anزAK+k[D4R;|A$l$'B #dGW8(Ml $ IV(mJ ۆ&t<X7r| 0ả H8HxO=Z%M%E$QT(H5*'ELDO( rB L` J%-wɄ2M&!A%/Wyj1.zt5ZexxƯ3XO}{ֳ§xF8q7-j7Ml֘+_iU.{.^ȇ>4)H> 8g- "&6+e00Nc# KX4i S"lNU:u%֜b<)ͼ TpUC\CptE$Ñ"KL4rL"jEd>Kw}#-e)i6:"$ DI>p;Eȏliq=bG,4$$Ǩy䔎JG$)HL%`K%@ +^+FBh*WRM>ت"J-[MVUd1J=qz]<kA=AdlI6$ TU93qhЉo|=<8 Ję\J ,dɫJ%&I)QJ6RnRb׺U4864$y?`Asym$=h'np :fІ3\tZB <0+#g1$U =WXRAE<2L'V\vWQDKbJQreF3.XdO f_uuZrs'@Xzc97N၁ Y`8uSWVhCh8pIxv&z"xC7 jKUA[Z[Wz}zH ȉtz艢 % f`*VT\ Alxq~q7 xmf`⃌@>$`'__ȁ_v/6oMQ`~^Cae@?2>-^Q+=h h8riB?q!c>FTe I83SQ3s6)zTJuBuT;3%b%`WE:teSV ru@ LPEWX&YhXHch8Tu8Tr}t%fb&k&x6j8zp&K7Ew[r Wp  pp~pp i$yK p `\!]V31p*p* q0-(-?P^~Au_waGP3O.}//(/ Fp¹˷Rc^儀(baUIa^!r 8rʁY[+c@r8c+64M/C/ is2)u('8gT%Zzeu 6o~Ug[sT2?E0e,:Sr+ 4Iu"ICY$4'yW faXN9Nv4u'*ᲃZxy`KmʧywplZ 1KDKgK|KztzkTK: p:np;{ #Dc4fYl\X,]5bhl|\TӅ 2Ur-ѻ }F-FO&.!ѡ}5@NŎ$`=Y^-ފڟ @PUUk<+:,'S"]2U<+3wg6WrY{%lWsf` Bg0thh)LֿR}S8CH! IQ 1I2N*)CkIjV%u|>L Gk!'sHK%F16X|Htꗛ y}@ W``[ 5GgUjWi+[fzt8k:Ҙ` K%p oӼU[GH}bY; ] ƛƦLT>a8$I[{l}d@O Q+QM6P@G>,]a/ Fa}P%ۂ?ʌњmU2+2LٙʋIc[C2+Id6:+B>wu]QGTyu Ru [7'G[n6|TRQ4 eHM`Im6IXLY P]UQ՛5K7!h6N8wiN?ƈ/pׄm/ G2`5gP'ȝ⩁b#ڝI˞]TR:֋  4ċq3qss+Su], 7GVǽwW%f juBq[@ i;je(,BYY> 57c<fw+,7!ȣΌH;4F^%" P`&tj W0zpѯљe zKW7(:LKyҳ` {P 0 + 0zJ'YMNJR4DC4DC!C%h @@]h@Ě}e~ל^i`ipNˮ ԫܩUQN}nA'Nh֋<˭LUzU#CJC,S sC.s+oLQ#2 TaJGR!tG߿W{TWS8rfhŜ=C,g+HTف*(Gb'Z9H"4D "%Ή0zwȧ}pљGr'M @~v78j v()Sq1a)$JҢlALa&$ɏ-t ˗PZʄBHEHA6^Q$ @¿"EV(ի skE:MPlYiզMVi8B+w&^] @@[JXXQ%Le:Ȩ(# Ό>ӡm@z3 ]Zԋ _4 @S]@}yre,Hڞ,myͿ7ϯ^/_= aD-C@CO(0nب062 ;P$Q` $Xa 1C g[,H/,$TL#&H@"`B p9¤eLZ 9 3͊t?4R -uх>YHK&@*%HE1GlJA!LP^Bȣ6BTTARiUXj^` h(paW"ؐM6Jʱrj° r ,jA,ƲŪh+p篿]ɚv[5{,*LȬMdzM3M7<>s-7\9 ~C.b<.-<>#Qd񮫮µċX9|onaʳI0=b0/ɓ:7z(w y _kJRK1p6$yF7,$9{;f}D&+B<),! ]hpXS2ͤ%;&3ɄLN-r=V=#/TQe&(Ɇ r-K13 dVQYRK= ԑ^Klxyv  $f{,{+sò.,fj+)paZ2\)MJ`0}u-me +dB`ǡha}& s<}5 gL b1@ :2`vNXͩHrC`i9֓P<Ŋ ijBSа?FɊg9@a*6l!Pڒd8ñgl? 6-o^? #>9щH (@)KI%!hA T qnLW0Sй+}S94A_T" ,UP,ԓńcF$&PT xX%[JBųz#82쩊{+q^d597 hA'@0z!Ҕ)9 RT$NnB+JlI{vh>.ό LXiRz&9ɉ?UBT}{g>=K":9O,O XpAȗP Aƒ\aS&@4@IbiEy]*bUMs꘤1$S~/ Bj7$PxZQlҀǒ&ٳ!l;#;M6O?=Jx$"XdaDЎX{YJp>!%DJ(-v(K].]sU?h2ɗ hYbnO ExM;dcRo4ᩂx ?9G}I*ҒL<)U'd>P[|67_HX>AѤFRvS1`x+GWf gXW*qqe\xK`tJk~qyK2IBXWA`0*fU?ZժF3DssC1Kg_kۡXڵpZYfǴ@{?zc>YTfHvzMj#*t. jPW^ Bg*zOB8ڲ՚[*2xO&%X'U$]- h\Zρͽә\DHR/UDeݕ"$ڥ\ trO̯H nW ѷOxބ8|@,);H(ޔ )٭)-@6< џ# pomB£TB")Y( M*ޠ β\ҭLH)K9=3y4",E45 .*3V  y#,;S; _I,sJeZV4ԡl;UZ 6 @,˭פT*BA&(0US9V8n(f&CȅJH[NXX]>ɅQ ’SUcׅ݊dhB' 4S~R'U~'T^{dV<& lJ_sPНz0*Yaߴ EQ౭ Z İ2sN8ٍ:]9B!R#JY٘0tҶ[-Ya]+@C>3*uYb*9 Ó9?‘G ŏDjDݳ3CMI*QK>xb\Gg\>fzhnR% >! 66 ! `e46!H'//kx ʾK8ܭ Xyr5M^ezf+m񫉉 $Z߾QA\ ss MBj3 *@gz a rR01"zhBႮRJK:3,ØЬ?ZN7p=GҬ17@LC>pΐLMWoCA0R58+DJ aA1qˌ$!֤ I(jJTb`Ԧ1Qp;ђ\Pg?U&@&7\?^м?RҴ 0/(TXkvү:tlொ@s0IyH^xl}^O_. >ە)ap-SiΖq f uI08 %1S*>4Јg ȘX;}ҮقPm+~4Ch4 9[E[MK<*ӨtHf>F<%FUyaˏ.ꈑ($ˡ@Z0"ZujY08M(\/i2&xߔ0G.(Hv0MR2(5"R-#H3XRx|be'xhas8Q,ebE/E`P{ ]jI `m2"2"=Ss1e$srBF1kn"`91*.&'"s;JR&2JWCnE 'uHT.EtuG;ݽwd(GiIL"^=?LY["Cm!Tog10k02A! " &8|p"Dh))Ȅ;@I?Q66[jMJ LbhE@7F 8Űl|O?Kȼb3? f4bMgS.ڈr:tHΚbѥ—@\3RRt ES1}.IOa.ȦDԺP%oD@ ?# @N\Ο۴B@=u/bӻs$ÿg0}%' *H h0`j`O\Or@ 8 "rHH"M 4X"qdy lq^?^xN"$ü11KIi1 3L _TRda$!d1ot)$Y"NYFie:ED 'ɢ?~F0 Hd[ldiH\JMlD^8l?p?Fİ@b-dQAdDoBTVCfQ 0KHJ01 ` FPdS6ّm X`PTm@V(0T$t?4?lWk am9Fs8Cr?{ŖD!\<c fXa @XcdOcV)qx3G`s`Ҭe}RY(,?)4}'%mP\bE lƋ4!6]!tkDvQv tzx{| @ !N}j"G.jCXn8s 7"@67h)X!7 ߨM=Ȣ B;:y6Q%#jiq1xD? e1a }vcf \*H>VyJ2里# ~.`#\*"JE*$wlpe ܂B\M,ZZ P(PX JX@I0-#vh]T!.De  Bh&6+pJ)K@6YHll %4)u_15Gd7`q2L6 c ,Yv6  8P)S 1Zq4` %VȋON%@?`@la ?۞+4g:q/c:M#9,G >~&q5hA}Ԡ1u:BsPtS>:!l&*T}h8(@;#1) M<+%OKs4_ؤLۋ!Q;hGGc(`F@o}UJ e0jRZa hB)e)P)*I6%Ud*D U*ʪ! Ր W*fx!6-pZBJAa93BR!(!S2d,6 |=Klb0h+F FK*hNϠY h&rZB $OiYszdff15ScxIƨ+(Jٕ!lf-Iw=OL1$xK|6|g)(d;Ȏ/`~n8s̏?|!Y Y尙`:l܂At8)() Q^ԣ؄ $UlB<; ]hGSB#drJcw2!)Wy%NvI^<^Z/EOw5^s'9Qj T@m5+J YAA.G9kRNbٽX"7Ksa`@cɀ2`"E Xz,}a7!M12<;~ISl¯G9jN`kjM2}.$Ag@"),MCBL /PML \B(`nm[qM1r_{эzĥ8@zW, <2 wsD4AX}$(}Υ099I= M(5EuҘx}DJPIם IXuOK F]TUFMLQϗFLJ @<$ !@hIď9%PqPq WpE."@_,\0Bܕ`ATEDpCAV`XK7Z?`@Td݄,_D%@> ǐ}\RfdR&HLfR?ZOpII?Z&pfuf00ϫiFMޗ O&JJPohJOd $qpOJu^[޵UmEENU/*@AV0e@V؄PZUDE?'QR šhHh @gM`M ( @Vc;6@Յ=ZTE^F̬G&etlH L?INMJҁD&LM’&]mMi HJmy깈PHr*e~ "a} b%Vz--}%0aFٌMSG})[bH~N`zGWv{H2y\2tHeRd f: KtWf"Ԋ`&Hp@,y}9%ݰ`D3- j ,e%\ʒ!{1XwmΞv-.هBIt2RfVڙ*uHI&u<&M%u?v`M˖V)Oϙ5V"K٦so)CtJoxٳffRTIݎP13KnTYg ⫹o艳3[UBb///< '.%(h:jMdѳMhsplul{xZED ۳],Boi, tFZF M -" 9`PCK]ZkP f2 a {,Wm-mq4]SDWq~ dWW*b,T~iz*22|X\_y.f*2%٭`Jݼ ETFŦ+SY*qUdEpjCݵTxt TŀQf6c)IU9PkoXMsmvos?<,uwlӀ4u튯 t\-ljxuvu\y!Wu{*]29#sn{׊_W"M&]&JpIgw |)ccEo,m H0 t0OpnA M A񸏞tIʕZs+sSkngֶQsOUvv/9_C=s3Bւs@(?D.@cd?#t@teA LHraeME ͚ yО$"02g c|a؄S[8]n۶mÁx{`#۠?5u=0ƭ xzeUM$M?R ?y^{ˇM݈nՏNIJ߹,YOX(phPϥN$u5 +O2DZfMԫb}7z粤TMHBݻJ <3wϳcov볾$4c7F1p7;QB,r,+E0CGV h Y ?Vľ?rRWsBsHxFHm`dgix^xCj۾J9x}9yL؋ژIx.aERXьR(Ȍ^`h 0JLب""1 ,ꠃ`!t2ȁ ,L(RJ0epRʁrt33s/r-P B %PHэ"Z#Y H "`$fB D)' 2*+ ⨣*J@ HJj X00("@jb&n5DlY$Lk|G;cHT P#Ȣ f#·Mo{ 2!  5b%V:rsuX׵16آrK%|y%LK"Xl,pv2dEv&. ;m (^"ᑊ ZV^us g;o 10 pY(#' `'GȀ;j B3.#4 B1VZ4R4d`c0XZΡb>b~j ~*X" ` :t;7~JX(xh yH naʣ= jԃ9ܣf~<,F,,_H!n cd bಠF`ςf! k' /"m(˲64!\hLMNrDOH@Ր QL0=L J01M(O XϖDrxfO-"Tsw/z'$bs! $@&GS)clȀ9 $'6o@ah%L,q!|~qg OLN"LF O 6fRV @r<-igk" #uY82Tt "gR@%bc xXzc, N PD|# R>Mp(gL!fX>F<|` R*K. ƈ E m j$nDB lF4Mm8#4KB  2QkP`)un)uG#f TJd $31DO8rP R!, s1#K$Z]y17A5Rk!Jْk&DNȍ# &F tf 2,UꆂC);ԧſ2c; fc+7 @T"",?O s`r\ .0_d h&Td&#ʼn0>c(8l*!`|6DgB\ fc77_d9b:`n8r*W& *ģcd,!MfnFFg O!4K3񰔳pmtm &r40JGr(DKnKr2Q13UPuOIN1"z/dq dhXs4b7} MS2U3u`uZT2J0xb.L?!`2Z'u $'"8r 8 @eX~Xv2`n2[w3?=J\7; pb6 "/wd0^1c[2,| G(s|EDxCˊ`c9@(2 CL c:(fn(cw@#,I9ÃP3"hF4m@;cNV0M4qhNL G5j32i sڤ>璄 "}RTTdoku|R pbx."OP/ND$.Rld0% į,&#&Cm ,k>V0|vu z=x w>(N``#{,_6꼾"9_'G/d|8$ƅ`8~ɨҵ uv}~7cfc7 &c#F=bGWfJe0cLa(#N($i53h!Ô1N jv֑Tnl$LL tr*tORf醃-vJ 0Gs $ $o%تNӛrS"LVzGuf`""KlQw/V.y F _o8\al'JiGݗEATWs x׭ F9[>7>sMqyði_8 lf>X' ^χ9D#䃭ϗ7Nc 9'9,qr94ـ;x9HN]ic`Լ&~03"#)KgKTisd itxr$gMj!JmJz8?qXl+s _o6iX|x"xZ!d"%^x[zK5m6fqT=+: + `}^&J<9Z<;|g~r7*a[['>> [ UU }wˏŕx YɊѥCb '` +haCQ*D RǏ ;R8MJhँ X8)2W`0lB əd P- Z! e ̓(@@ 0*BXB& !W`ߒ/F &Tpa1c޿3K/i() TF7S@EE3 $7*T|a } ёЌDBόLDRhdVF5RFPGK<i?kƌRHi9dX&yؔg ]D(Ma H%PE!ZMapV[YՉ@Sj7jRp[`d@ ȠW^h`eh+aeUa,FUK`Ԫfڶ $i'kvoJ뭸"p9Wu8uMpҝǮwy~'vభ FgW~'m,\|ZG܀c `Xf,C2RbIZ҃<ф2{8%Ÿckc'0 ? 'h4Pc1 u ac56&=)6RKeAdR!TJ ّ }dvw&*QBhy'.BؔO%aP )PA)`%L9zVpUY}x!e P[%&qF`mkk0@^_`F~nIVgVDۧс{`ol@i-gNU/r'oq2v0,;#ƅ0EhX" Nay`N6@bF $!@B .g0Y,ųH,.HTfH|KBֵ jCz؀Ԥ]mkYd.HmBTC,,+0Yr24"t@;Hv&Qc씐0YLSC Y)EQ E)JqL0: *)]lȮ %A@l $@˕׫J/UW k0|Ap9={r g{Д\0S9d͸΄7 @Vysr}y ^wYL\g zvA6E &xr/y !y=!Ǧ?t ( Ϭ(nQTt񇜜j }Hn2~6%HPV"qDF>t45IG6!fcXdƗqKB[TG%D!Q}H%[RIT%kJC^9$.,LY^:I(BT6)D)LIё* P UnRh'` dXxF4.;[exLIyeAYГkf.rA&4oVmNT Ws`͔2P׷ךL=tD =lX@1PFP*^ eqi5eMX ' xR4\Hɯ;|x3.H\l Qjf\#"ICԘHŗptrS:#7!*)yIDܶ9%fjH\ҹD1%iH&@\R7JЅN9)&ERM~R Թtn,%.Ac 2@iy|^]zWޕ63X5C*X5fqQ@o 7!.pk:{šn;{ k xU);!fY,Vv^1o AĽ΍cY{\_n,2Z. )\ZzuɡX3FDBRR<\XPDXF?PԴ,͊OԢ5hV5yE5B$@\S2!%` (ox缼H27D&;f VL]cKssG֠JHЀvLV[ yB+XÛ LS @fz E.'wa>8`׿$u5c+C0QluXA˻\{%Bk# n~#XX1P?g/U{ˆXC+ $56(֠Q.-@<6q&3k!CT5"%$$b B6 ! ;rTEPDK5%OJRThT_%\#BzBR}ea:"2^b'7FDH"Rt BFE0*hVS8Rra3i(9(:3!tJ:HaInVfX!]!^G*$%;TDY;a #V` 12pxwS*D9=I&H&F1I +5!<껾kwo6;v PM<́7E۳[؜.d.ӑ¶SrB0k1_1a@p_&Z~qmyPl}Ud0fq =?L$?|Y mļ9 K ~ =Ia9V,%PcWA&F>3>34a4[t7r#;\B_t>@˦lv>> YI{Gk/QQ#?G0 mm0]ml" %Yghhi{ ^*mŎ97fYMb5˨`ŷZDwu57BNc"E-^O#"%>R{wd _I^dT7sƭ.sCv˽]1C0LA=g˗߃fhЯ*`M6DkX#B 8p26  V`F @h k=F<n;PHvdQ'/ʫ2 l2/$L0s#"" zȁ8Άz#3$?jd# "ZɢE$R)(1TLBJt ͦD,p!I ,$ƫ12b:M5Բ`W]e 6(. +Qܳ= AM>=n/[/=J3Au+m2M#,8 N0 X 2A+aKN첃;RC`ԃ[!=lr1J2,^:0"f>\A-0iH Fa$Zs䑰 ud }oA@les2M2 ҉~znV{X 'Y{f=ҏ3q,24ѐAAhB@B"h3B -1FԎ$$H¢k#!lbkF&+y%/ijە∷iME"O:&$ie@riԢ"H} '7C/ (C9*:*2ʮԮv[X݅zd( l`x(v-/,cTh'E10bHB@2aC#W rP\Yn> < T<*-d>:EjNp,'\' >nFr +CQ ڬ9jyNCCiXD1䈅iѠHkBڏB"2Jؖ$UQJWU[5Gu!aꀘԘ9VKg(Ɏ JV;݉nB$քH> q.qIFRJLP#b":M%FV&֩+ɚFt;W*ϖu`\ A:/װK K -hV|g\0#>D|fCYAbYH%/,Yty691`ЉӠyjz> .sL1qu̿!F;W#5r A6`!IDD)OĠhET3 )fijTT&Ueg.+ `"ӤXc/Khu[87vKUY%pA_з:UMAF$R3)N \0(%)S;2 3fkY0$^.SaR54]ʪwق6"H?( @c*F#jP5@bUx*ex+`u ^AĀV%<={el\!7ziЅBz(4bJiY<'Z@I4РEh0n#٨\ }KxC /Kdg1]Qv)TYfV#<65&CX_ ֭jWѶ.f s" 0-1]K8v?nUFg8gJxƸeߐi:\w}= :^MNxv"Hx>!wmE'6Wp(c',t`XEϙaJK립]"Ә j]h8/f>~I 2$bձZ>.WA6D y*7;I9+8)DZp9qF#ӉK@35p$%H8@eVXyd:҈H8`&`HPy`pAP0\ "Ц.WиI91\p2 a@6ˣؼuYX Z(&P=M#7z5m_јr}̛c8dI 蘩/{{>g҈'I~> 3R{ A-%٠x2z*Kȉ0Kd$3 1"" 3588 @2R ?ڪyAJ8y9 0h0PYR2 P3 ?¥E% +?Ca#" tB!5{m¢+aqPfD˳2_D5LB:ԕB1pB/8=pKQ3) 5 I =p(9N85"vCƨ Ƞ,Z^BR: 20 Aȏ\`,:a1)ɹ9f[(i??AՈ1hFC;%;$X?EMrF,/ qN{OP0 RS{Bnj5!UԧL(@JXHʃ_3QH7߫3 }Z(&n]2.s" $a5_DlX)tIéQq*Ĝ/p?ȼZY5ťdV̈́-95a<-F˜cFJ?0a#F=4ypN#s@#;B2RQm 9${$Q#(9 t~WR` (4҈D r 51ۑ,)~&9#\ *),  )q xm0x Kq+x w|iPv5 ⎼\ʄ} P }j/cBnz=+R`cX~'PZeEJN҄Kuq7 ٛ)W) #~%hY%5 h֊Aت]9% T,F٤#ṛ⌜9aB"NG*Eɜ1US* d3@ PJ + 4+eYV$x73&>HPb">,H Q}cq#kiI(ҳpH^Vz7Y{dN7 lM @e  ^t'CK v(<|ߏz*qCvuüDȼb#D Z~fV=h!_)?Xۭ?BFMcBZ[SZ4䩝1豁(I:Ic7qFg ڼ,q9$|+0mB-[ 9myΤ B1ȵ 4A]ܰE5R%$Jȩ@ jWT  ܀!@׋1qF!y u0d7xݐLtؘٴѸ)U(e$meRR~BC&m=lsjv rһQ( jY> Z(=†0"vad8Pz̪Lwma&˴-b0gI\F(\Α{+)8rEuԻyhc)y, QII1dn%T1,l^sU I T5ټN(L$ݵf3y:Il[Ǧ(!! تhYfu}`klf!lC %ERɰ3wq:|Z,4gS6m?3c-Z'2na3:8Vesޣh9&A Aq$K2i33K % Li\o80wii])e#{4Qp$q֥ 8%1nlO捌q<e!McFkQh94ߥLQ& Qg[rpcnKqzl˶r`0˫X( Xbwfm_a$P%흪mB2ۉC/hJ/q(F(ؼ&C?p+&#NQ$n ,bF 2- 4Z!Z鹟i H`a?v)>"}7&VI' +iLB212kѾ!Ml"}v!ph[m"XbTf@DJd+9)oTCBeK'HO99 !#w5sx* 幊X#tɡ0T dKU&Tree0f[󖷼1yu,r߶ʊd}rQ X閳X +3 82p1fb ą^ yY@\fjL3+ E^ 9r̄E p!9DH[ÂVh=&YKEiMDSЇbRЉ!ȅ*4'h|p6%"ѓ"Q2(lI#wc#0iiol`X+`g åv!~B<"UK9du;1K 2lJd nZH_1g t8C ;Y^1efk-k!AK]}2W]d/,Ta/"Vcԙx.ޯ© L:TӺTX't~#^~.ܔJW 4tbneBUFɳ '\a !.-cnU+Pg! - ;j1a)jFŢPA⡭80ad8>=鈶6:*ZDGJ*"(0 #h\DAS+A縡ԎUZ(MyiӤZbSylEhw v08+m^Zbe+66-RAZDȸrA8)2K "9`2Pp ,ߙyγ0٥V)OS/~ N{E)i}ɕÚX"LAF|YgN|KEp1Bn[qúć3( ┗8,$A &:YBm]۷%~96MIt"0lGꞜqm6s&%iyozgB.$N"5$'ft(XVx27n@PZLApL4Xt(=9Ɵ!aQeP̀b+vM!P_t%2+N (,QlX*XҼyQې\ʩ-Z\ u ٠N%1%X2\N0S@D8B5Q7zDD\@LUc ~DjVġAƾhog`=Rġ?& @Km ZA`jOV18qӨQwFMW`$\czݣyK5 dC ^qdHa|5Cѡ⡐GRRaM|]Ȃ G5Q٘y̍T܂qPļ%р)Q} eX((RDXDY0Tu\9f0"fW.DZyRU`ĕZ!94BD0)F5IRR0haGm`E&9Ȧe`>:Wc8SE.VR?VhO]5 hV'HBW;ť]E7mdSq'{wJ i*։E@XU N:DkN}%ɉvTF)֛~(Z&&(īF+Ψ jj⼲^jnUZehI@/B>)ZYFD,}N44>4x~йPjvV11()fjY ҅EdE0]Tϰ.cE.AkDFjh Fv6(@nӭ*'x'u d!e$u9aT۞mPy@rZA5LGVvQ`P2GkLTL! ?D  eWkF)_!^TjYnԺ X|NiؿF+j FFK`ɊM\_Q.bL`)xILpM1RD_ɮաD,eR#P4A" gij(m>0Ӟ9Т#%ݝY,-}~⭯FTWҜA5VBʤfe]D f0 ۲mFWϷpJFdӍZfGFa*ׯ>f$nġmP \UD th` l\kX `R8YG!2U_ lE()ƀX_b1ZMmVGJ aMf7n.DV:! g˯HS)-~ݝ)7d1m)ҚE[ ^m9 NZj5d%*;v2!$="QjB*jp񰪁j-k2v:; $\TPD@!=J]=Y4K@JA%Bmd optG4EǠ9DOmXUK ˟`22 i"khxX&& @2'r(v_I^b.'Y-{cr/UfdUN6r @v"SHTs"Q3`4Ry)ljJXL7\dX2)mO;klqpk=4NC3CrR$vjo t^CfN4hm!jq4{Wqsn;FWoKy'qݭzs"dJu??lxtvwޭ ^F*yBjjӼ$ Y*nLpZSGQb̯ЧKD|UozCpn4w|Gip.jTrYhh Tnrno-YTX+k]{2)@6 |g)Fr[5rN2G b_vVYoK|Ҙ%gYOĚ7 lW6)ݟ?0)|m6jy9rn#w]o g#d9/=w7vW 70Eg]; 9Eޱjq+!yyFS#H'{ٶoD1*j4K t{nz` Z!wPGX;#25'gkuh%e8xZk|k+? [O>Sb/ 1 [BllmԺWłK0l6Р%-XhKֵ=BVo˖[ Mv]=w^s#Y?c_߂߽eBXV&X$LqNƱ YH3(4ufFц^#A(EAK!] i3{Zx*=MJP"pƵUKHA c^ p1A O^KG ˆnK&!wHF6GX %tRF-l%Os!TJ=>%+sURB&l!i9MV{ŕ],{ +Z)8+yܺjY"w-].LeȿS9ˑpԯ 9z,a# @+u@ L,N. B; g9Z!:Qf" hrcDC]֤&!6\JGҀB(ͳ%"MK廑4.]c]rl$Q[Z(X5D&pA9E+GP$E9@dU*"IѭKe:.wZT#SX%L<0AzJne1|S|=0FiibN_N3tg?q@ !ӝg=t DPhXYQ+Gd2s~b iϤ>c ZC5h4l %2.CA4v k[Fk€Ik,2xYSVp?AO RTPc\ʦš)z:́MͤR41j:ipVzaT" $Sބ5VHQ+^Ve0ju]MWWd)y fhj! Xד=u Zޕ=`R|`Kw'"OgC9y@fmO}a c.`uv c"؀w… q뱝i1SQsB=wG.]t;(ӭ'`Mj aҭ1r9/Hrk-Ml</s+ɒXSNJJC"UʡJ+RSnq0X&aj*+ӊmRG`..U#+U-e1/Zȡ UR/.SA/[C !ceD|-cLvbw, a!%lC ,4 Wg@zDsd)D+s)?ijT:Hr!B) {𢺢Vr~Z\[B<:SoXz"FȆ- J܁d%w+^R28[(NR*bOTg鉊:M|I Ge˞#L`ubgvg=U_(ׁҝ<բ+SJW5[,m/eBBe,b) c;əfR`AsTL9=Kc[yIg'o#~낄 鶋A)«gC:i Gp$m쾎>(kHM ."l B*V/Zb*\B 'wLŖ`b(-*-P`s6P g2G!j%b@LqK n%L%Ă0d.-T|p2bVS `[LY4Y[ ,l 3|ޢ\0`&q1&1e,+-TƏB\~:&~?Dog`Xhg?cAj܉xKB$$͡KdiC*8-Gi20f fh?nڤRpM$ oXj0!#րirbQbqs(+d!TL+p ms2Of Njof0~Ui mO2LvL&vr,w@"6̂R%J3/O/I4%]&qc68ʏ]&ެJc*O9@\\1*Ă$dbdHrFc\ƞRDfjHffX-Kh.oh(rHǫ7 L%HPvB0cǖGxj l`>ED (,'(B@).sm&mpMf !E/p7q. (T3 2ub{-jL6 JWvR2 c5⭎ɸ2ibJ{W6' wo1ŗΥ*k|Ҳ~Nhq_;d @D^N+IҐˡ@Ƃk_KHLiIA.eBR<y4e+ 3h.T(0k֎(!DH / &CN,@EL]@ anC>14p*Xh!HT,<7 sH6 0XȒ)_%) "ZLV꓆*8O:b-^%p-@% .FeZXk'3V4vorj]2'3 oXct< 9 (A Mcx5A>cnc,t-0L2~̩&.FEN808 F?G7k+t28(^3( X*JL DZl,G2/hbr.&2$fHEo^L"!S.6*D4*U wVƓq4iW@w'f'5wEv/CtSɞg ̖B7V/~Y0)\`8VH*@LrcFf,kPB)O4YYk Ɖ e1\ΆiG[KB5hε.)qеψq안N8fhd 6\" +HF"Ď9P0uA( /c?̒ܭgMS"pSZ!X"p5S%T3p,R6C g2rWpg> TsV 3d]%r]&?ۯUBll~Џk1TWs+ cz- ϒCsYS$M.;@J+S?5G0[faqy&?ULɿlbƠ ,"B[w$Sh%'zb!VPrF(дOƺM*rH ӆV)Nv%fbb 0ض.HR0ZfWSw.j CɶrjJ.|)tZ֥8}Zu8k'I8@ dgk6*(.dzo$$r-qD djtRVGIqTqIqGPб%x?^0&Dr5b1.-^ g "F"W#"OjƱu)Дmt0NJLjB !i¸l#,Jtg? 0TV-^pR'j_iE$-i8fqv?4ԳZWW@ֳ~n*@ ,X8~ $heYњo{]Rdz١ˠ:/1g&FoȄFpGpfKdCH<0|g: "ܴ됐]RPpvB'q2Kt &8,Ȅ:Fo r4Q4#D#cIƺ*wM`R5)'&ml[Li|0|=/B7i6qY<@Wہl{ϦZ+X˲qZ<ԩe9YDAm_kk3 i>(]F!Jմ+Һq='Zy=S'ܣɬ~~hep|H"4EjOSL-B~QDjU,X91 tPt" [ݐMt";2QJiZSaI`ڟ\!ΕL{–5 ,'FbqN@l?߭{OXa:Um)>,O.iY+q}-$}0v n^F Y-ew΄YaK2:,sdf/b8J8[r6(@<_ D [Pʘەɍf&J"M?*V`j3YneP9{Vt'X+T/cە<<ˆRcXJ"TgwV~[-(F+q5螨+xeVƨٻ+H5DE&$>~56Ad4^';\Q-- DKRT6EɚՊse8JU|S]$333 o 07MϰMdVb)e(+ 7X@8*$LaB2¿aP$$=p +^Ĩ%ÉfР8sCcP+7blq̎.}BşPRw5ũ/@N 0OȐ!untu6|C `oqۖwoD,"=!oطG.aYJĖr0*ꗲGW+žw($$2N&ɴ 2DBS@ ) aTPtNhzpzJ)wTWAhF0Q[uFѥdTEI%$U=!dk|hgbe@(Յ*;Bݸg XfKЍQ-t`\ 5JsYPS5;J ߴT'a} ]2I&. SN~X̒tX%Zǵt]矊%g%WcqeiaYff کa:ꩫjp)W+r+ujY&b$1+Yҵ+ؠ[}%Y8eŸoۀ|&4`A6#$k11| eCPw,b1?GdELQB]lQrZ(l oxX)ӒyI֕!!s}}4 SdN8+R$ UZ5@ iUpҮ_*\ [06id\bXDP![<&6 ^q6k:6Ndt.dU\җ~I3]0A>'H `S蹅$DO[_gwQL$A4h2 KN^j+Ii.2,Jү M})ZRmQPrE'` 1KZ`̪y%Tg&e2JIҎVP4ɿ IBml?7e^ P06ݛޠ;E2oK(u[EUwu#FD!VYF]ʼҎĎJ#&^ȶbϸL1XwɬX?]ct d#nsxUvB KאiS3GK XJt8ǦlY'b E7Aٔq"nT7Ҟ V+m7If9oE\OomYxPFePfC[ <hA?;&čMOT3QG׉эFwRZ)vRr9yI#,S*qGt<`dCC"#n[ Cx{Tv!ͥC{Y˶5<< #4a;:'Ps@kwf sCqDjڛ 4|ʼ7UJ2iK5QZ-GU2o]^sYi SZu[YvWӓZ$5@Oz3ܓ'7:d|!Nn.EKeQ߉QhEؔǟU'v|ZVf>tRgi@?EM>+n"Df@epأ=ރ&`KWlDJ(raK2)u-'T<ӌcO#'bC.QIrP?3O\A{cYʤ 0-_c*p%5fG|ç+q6f>vYCO%"N!+&s8~C)Dhh~˕h%i#i5tOTuA%#tL'RRmTdY^%.yT9`bB#@T!!ʨ!ˈkEeгHa$y2 'z5VăPVja x<3 !k!L4?40eKgY.@B` D`8#wesy9y$硜FOPdVGUqq3|TfWPc"gr*garrw)s"*q*矊R*'9GRR4AB:_u1ʒkdk~G4Sk ThI'h.bdyH".:GR31c0 A]xGa!JyM?J䒐]& 9-/1MJ"pY8@_$!u3;a4VlN%iM ep5|wfiq77 }]1qG"h65W螗X~~Y~DQ pIa9dEo-ĥ$oX,ˆb:ї)!~b9d=by "كT _uBC*AW!(aq9G"EXrGBDRҚ–E26ieQ:MRb^%|>:ths(fg|W|7T1trq(NWxF Asq\!EDJ8~5~ϕ~RtDGJ9Sw9a^eC6MgD:0Y,H*_ 6DPROUI_:@*#d@0ycAAܪ_;c R;$Zk,d`{[{LeF+d  q:Vq۪8E9:丷ws+sMqi[~fkCpŵKЋsಿ[1dPᲄ U78YUKiWJtAd@vjbع,Ll`,Ll !,#L%l')+-/ 1,3L5l79;=? A,CLElGIKMO Q,SLUlWY[]_ a,cLelgikmo q,sLu< *ǖa 1 !/|Dž<ț,&MRȠ !ʭ \, <ʪ\ Qɋe9L߁ɉll*`i/Ƀ20 E~ tҬȆͫ9a`0 @ 2GeM/5\L*D)2#eНɏ̹~],ߑPQ(22ߑM :Ӫ*MQ҆s\=Ra:UI*1ۼl-  D--E_-Y}eM(}Ȍ ȑ6-#Ljo@՝k~)\]MMao&@~ -#@ёں֑΀`5m ɣR]9mۜ<#>&ם0m̭=z˃\ȳ ߺA \԰A 8:A~G!=%<. X}=֣l>XRd],QX%mKn).*  $б|t׺Fˆ)Qݏˉm(niԛ> zA@}&]X9jR[o-F-. &ͥЍl̋.F^̜1m"}AMͨ~n^Q.>~ ڝՆRS@J麡ʾ>o8 ȭ|ӊlaPN< Ⱥ>7nΌ@,_p.=ߐL 90opłl8Iс@E  ׈ms1} *\ 31Mq"mڬ"ۘނ_f{ *L{,M@`>]B-2-o{N/k.7]eɬN6ˏ]L/ ?ƀ@ni_O0 Р.dC%NXE 1n؎G!E$YI)UVd0J1eΤYM9u0 !,3 4)& T:E&G5BXBKfDGhJR2E187 5%,O8ExQT߮4^ENkNW! 0V?H90:J:JG!Q=JqNR0 ǭdGOWU –\UJ9Ha<>+ B Ҳ=͵hT68B&$.E4@H7EE2De?n_۸rbȞI,*{?2>RȗxijBmXT(bXeX{PNΐec zYrjXʇemJV1'ٔgyg׹vdSL+ߝg]️тcowYA/8鯅WMjܦ}qTzEfybb]oUƮrG6C͵W\hTxU\Tɀa؁\H%BwOҁUʈ۫uE_EѠaFdfaU­ڝve3$܂M_֊n]Gڲطwͣ]iqR[ǧ{UvC8MD©Z^bƙ~lbs[Jͬۍ]gMa?щ^dOX zLGl8X=r:(frH4הR4ҘrM5UD?%qƁly˥ygjÒvMMMݨZZZcccrrrۼ~~~1YX6A߯H*2_^?A`ck  *\ȰÇ#JHŋ3jȱǏ CIɍ˗0cʜI͛8sɳϟ@ JѣH*]ʴѕNJJիXjʵWPIٳhӪ]˶۷pʝKݻx˷߿  Xl T->#KL˘3k9Xw_ΨSg. P] m -u Mbwoo'(_{-s*CGsOͧOËOӫ_vx{g|SnC{_ H {?,(Vhf^va[r\Yԩb# '0(4h8c!r[!w7N Vی=?(cnRJ=O`)di:~9*)d&Y%ihqVg)hjhh.h>&|B:dۃ_~e|;Ͷ;!#;e?'x+&٪Z@9H+=[fJVKf"߮"hk)Б gC ¦"}F@^"b+k0àp*Be<*p*l( Yκ2r0|l}yhgU; Y:,;;V>ɺYOҽJ@[T4dmYvlf6gi'x|߀.vwŶ:`C(EvFK^H<`];D._E3wihMO_/<?, YkЏ*GOg_s}/wo| kZGUu{Z:YU̎{U*/|'( FĠ3 zPC< n'Lƚl0~C:Уf+A}T?ZG'>[YL%<2YD,=ޗC,Vy,G%'k(7 dL$+HZJ&cYc^Fǖ#bJp.`K (#-Mc\KPӗs x 63l3,Nɖsޥdq\YsӗZL>~ @v̂MBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJS8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` X ìhUIZzVme01׺ u^W`Kb X,6ulczTleSΪ䱇 -hZk\W ֲimYW-kp7Gr:w/t\Z- oei٫+׼^W/d!E~/X !oe't]W0W j.Yn Zn!qQwuGvwaxmn] 5VIvIbXgwG ĸ^i;ۿX8~-01^cL2|`z/Ӳp1̀}{zԢp[:G9d9?(PܼIS:813ct=Bd"ɂaʖ _Q ^ʪ%KLⷽ`[ةLfdqpYlPf+۳lJYPnĊ>wX-.I,w_Җu+} nvЫ7aXg+WNyqv,g.vqd f3/.6|rc{/Wɵzq;5w[$Zq-b 8hyG(JZ,uPϕ˲ eacRc|Aw Xh|)>q*|o lW.lT|͜ 9e&uRbZ|gjxvU0]GhAp>ƐtAtr8tFW5WVfe9eZ#Wq +ׄhp >xnQ7K8&fk_GImn}07vZ( !vpGnI=GEHHَseeth긗zY=doI]珻鈽wy :zlA)LJ6hiyqoуQEFrY蜁7Ͷ_k6~x*qV7f7 FX`J` ` x#PY(QZ3Mi+_zW]Zƕph \i)*dy\q&utQutj)9\{]Rg*P Z)uzjH~hG֡z|rF|og{ՃSjm}um%sgIʈE yXYɣ<7Ɋ ?Yǹ%mGʢFmh]F Iݕ`yV3י~sy醞n5t"~:h:٧h}*VxcX*A*o}Qwx*2($j k`I٫`OLjʶxup&fћR eae1F= Exm2HJ*lM`ܧeQɮrKtKjjȷqؙj:GfV^)hqd)˖[k鰙;YQ\{HR;jkw *'8˻+; 5jdƛkwqZTٳYeѦ孱mg!ʒL+ڣOꛕ Sۛ (Fzw{Jʌf%p _ _[ LUgy oI2{h߸h_9sI u|S)˅ZYJd\ì; {%K&HɠxpAi ;k \\z\z/0t#z$j^rJ&B_xjZT[?ʵ]+fkJ iJ3ْk1Z ,b~tp8b h@˒˖Uw'Ÿ[uu~HoQu]̦+JdQKF,>lò#+) ~+hśx*q_:w;K XշrpPYxR(AY? |j1 kYzT 9*yhD곜Ћ,y*]g\[=ฝ9md_ph ˖ Ńif1U!ÄyYEl{p༎OloqȆKhB}ng̷[\p iK{ђX<|NKada }WKKjAYc۵ ig&}8e&gXJ淮Wfmh4 ۻiN= {ڰ1ܟS܏}ݤk%%h޽ݠ˰ pZڧ#z ٚIKpQԪl?Xr)nk p'k h/~{32]3MI <-嘲4 u$h |Qli}c8L]_DlZ]Hr|޼rN4ـCnIg)}Z}l:+mI ^ٓڪ W;}" ~; ]=g Ih5-ޔ>y-= LjKFMvIq|c:>mnL*vِz^yd*l.;߄Iƭf3JJ è~ǚ~鋼Kx}s Қi8οr8MEZDOS.K]~~ֽ=愩\X<%K;ĒXzvt^.Ml]0?CɄm6TX_Y闝ޣc O0թ"Ѹ/^4|o/GoHjqw\ܭ=D̠!pe߰|FGփߨӪje )m{$ Ȓ_x7 q\@fM!#  +(*W*BX2Z6fB͞;%&g0uHֵeT !#7D sUl\^c6yyf絛{@ &]C0d0գt<14p"텊tL/&Ghz%!(>܌17((ʅI)ehF"*2-[n0 2"LN;rGNl5,iP #Fs4KJR1JS,d+/ r+. +18+X5dN**T/FRBXGD#VF>bS3TF$$Jtl+*!/ۅԬh̘6+33+BWxᕷn;SO*U2;@7*$͂,j\X"K- 07 +ƚ .sp>T) 6NB`hv6H3?p>1cI|ÕAhN?K0g͎NyeEc^OnGc!4FmddwʎI]54Nmㅟ<57+o/Z`%Cb6(_'n)ۧv&oJ-v\ ,DgF0c .IHl0~j#}%A% FQfr ||r.p CPԜHk,_ExFgKD1=*p(CQҏ~9KQK7@B'U(K)J%ɼTK;J]*`*"ljLT)- 8H9׬'0)(M\s|J,J/ū>HE4zΓjȿ&2 G^9E"^iuDR=IlN'zcB٠$męZ\Mɮ\csN{0^hEQwmӜܞlg;!8 IA]W>ќZDO1|E(87y 7(Łq =t[ף7~>)F/3EH~%-3k[etu8ԟ~w>| ?Xo kXళֵ)u1֌_Y, #/Erzr'lo)b|7uCs#w?xc p 16@7+ <3j3P<[[+""ۓf)0úc "?ͪS83ò;jɫ`1CY`hr` ;<;?+[;s˿Ę tb@@bhCL,D*1##%{@;4.#ZE9ʒgz(d&09>H>8۹Oe$!TC$|BbLl,v2,Kp+ѳCc#^0ÅEkCKles& ȘP%[%[U9;*k2zE\;= *4D.>CB EG%RC+ÂsdAY§;G{=ڻEEpj㱈cL ts0eT0¦h9gJ&?X>F! t'ʛE\{ezłGxlty\(^XIiI<7 /Ȋ&HH< <`LrHZ#D\AzH#@HLH4L/0L8d ų@ G۔KLKvIҫE4 J^l9qD+(…R.5K,9wiF+,5lrdF'$Cw2oL \0B唯0ҳY$κ,K=Z}-9͋PM< H; сQ̼,MRKT`^f=Z_ }C5Uڊ ڤ d;LrH̊(䫽F FZdǬ Bց5cmZmHUPP}cD9[[ V[ܘ+Nt}\t1-`&xuX# S FjTdkJ b S$;5SNy%Nm6=?0\y}&^>M\e`O`Yd㛅㟕VPh__;&_@c%ߥ]_Ud=^Z-]-iw3_\Z>@̎H^DiLL1ȴP-PcI\5`Lꦦv\0ESܭܭݱ܇eb&:ӊaݷJPo=$\%z9ݠ|abb]LvevMj3f5N`jZ6Zmkږ`QUte_Mdֶ69>lNjΦe cht)bR01H+fRjnam(m'-[d $^741cOhvjW^ITe\!wjL2a5fW?(vC`9?E͸aVkr+tI5C/tX.p]=k]gܲ,#0OfN`V]FN=u@TUw^5cF&qun`nWwxn7//b#NAH?ϲQHtؾpw]6x7zv]a.fz. Ehy\]R8U[yjtWzPMաCFz7v`WVz*aGrPVkzvcHGV/P֓r$h@/Q1Du / 0/4bG=iDIJȒeZl9.C b2T!&%qe䚧RW+Xmi*ذ%eմU(m3ȠFeǮݻzr9jH`\K?#.͘/_,0bIT)sLj /6l!/'*$(danjI[,tJouNʓlaWXm{H,N[j̓l Aï? G,=z`i}`E-rHaF҂$RXN1LP%u}`U5"W!~"lZTT-RULu]l 9"U]7"ƓaSEVdf-=M`"Fi5DiFՖft rřru rYo1Tu)wlNo'rg%{R6y^GɟkHM$h`"YntHuRImk1FO~N"aB1%HXpc0t(ZVdtVW8~9AcTFѨ}UoQzI@"P'Y .'QSt`JYg"DN*hG7e֙߆XN p݉ErU4 $vj]chωb]LBrtݤ>մӔ4@ YQ2ٗsL`jDw*AL4$~8]T؎1ۭ@ނu㑸FUV!PƛW^`ru,cɵِ0tTKvͤdy/S{ĩfeic;C%bڦT!17ƅH,U:ql=v{}IsyHUgthY}@mTOfm@]S1Y\3҄LRUr6Ӕmdoɓ6W?(Kn+)ʍHH#ɥG-T[Xd-+,'vCbGE+Ksk9ʺ'.WTxMBC8H#aPa1 & dRUlg JV]y7<;)8㛰StT7Ȓg`9 )Qr*Z4j6X'dz{PG I$"Kx ZivYMV*d01V1a½d'&l 3M,CKt\ E4 bvB ':wNާr4R9t sJY,ܞ2JXRy1ArkciYeBb #GؼPU'8Cd\3 O`Fz{# ~wt&FR& TA( oy^U;@bE%xWq1L2T4]!'IZ& hk(s4 ry[9NĞsljn"x3..z_k|&FTUh5j7]V(k,[ 00eRs"&n5q`"ÍRqH [i˘Ԇl5pE?lMc~ a$k)h/,kޮd\[^ߋ|ފo[o`!f~|h5E׽J ޔtE3Gc"{s|*̧ >/X 4=g]/4gLW$W}.0JޯB/;Vph%%<.x{lM1>`ܕEYE᝺8ݺ@A6]7TS[mIY_i]I|_Mm%^s-KpSOuuH a !H4}KQQ`K`XYO9_iF9Aܚ\ ZTq`u͡e"!aP=4Ei!]!1ߍ]}b ]}SbiN7XTF"Y R!zXi \ [qڿ `^$XŠr%#^!`1H5}MZ6 'lcLL!cxϠ=!yQ-`LU?"@8B&5 CΕ!,&?$b_F2Au$Bb%'9`XT\*)b+vN,v,l CA*\#Xm߿ EEU#F#Dc}UuEc8_W;7eL8Vt^ @uX*-3S!@c0[ ʎCa!RZfR"Cg>,P OO$P$G>"dl ޡhzvTD?<.j>PjdQ @@%$ 6t]on鴱dX')Jg7A+院@A+6ൢ,NtfFg %xhhiIR@”¡>n(:TB1} =!!=N}vj Y2WNE4h_偮F.SxB T#) *_ez(z6"x Z<2AJ6܍Vf(gigihipCh~Ov'91؁m)kPTiڅo+8U )纐@`l鍸*n$~/_lBC6'{cVT0~g2kX*ҟ,~C4H,l4̞j~(((?*N(&\j(%a^vq!,Χ'XSTknaC>FeX|fjkR4)EJalI?$(fK%>S+'8)>qN d+ eBA>d䏂nkhIȮ#,.˞lˊE46R4,@,Z&j6>﫢@(^h]ҪT -t'-ɚ/N>fTt.~'iiPVS*k^%އN0XX?TH]9&L C ؜f?j15C5j;g祈8^(LasI\/lxt$x;mH1XQFR's5'4P/BOq>`/!6߲.jJt,;i+-H+m4l8NG{FT(k0]b.nO`J6L' ).i Cm7O55SG]u\7lL1sUcuJECuU xYgw>oR5r5±uu4urõ3q@kwXuLT6+aHoCa&K2jk.0馽j~EnE)$mnJ+KKA낺B.2.*h>72tp?bÍwL _Nzo1T*W6ouIuDŽFX+X#;xYCm;8]uG3QR'4H-2F@Xи&}+'w?: Dn,#'.,nYegrJxo"'pHpB%gZpvjé@:+ :ki?BC?y/9oLr7^k?\u_c/WOT8-&9 Bhu_W@`tB@\5_yoqZQ;1x7M+q1'D'3Ļ@?{I з,Ą'sL :+9CmƳJ硗6 ct&R:WpcU.Yp:Vhox*򇻲p,::xk*̸ #/#zBDŽt?TX{4{Bs}[@U;u;#}T\7:(< {߽R\߻?{؏D<{k7ø@,B?ªu#:7)byf\Js %DB \Q>-<j;4B"U;V+*н Bu=5=DWL-DJ ")DZ jZYg"B RKUG}MX+0.\?)81\5T/sd6L:ڌP$HbC%ĊJDjPl(5 %XKڰS#@5=PwΔdM>TO?V;z׌@#(Dz$DmPבv 烺^Zld؊XB3EŌۃzԑǃM4H1$Ev{ҠxђmKvxݿ-rp}̍-aSX$,A xO4IѣeP>HYN .b)oiFk iZ5:埦!|YWbsFz " #dTT(T#??^GOɑq N/` `$kI1w/d ɒ84 Rt` ̜hc#%.qXvHeDE3UEC xQ^!x?G!QIEQda'l$-Qf+g)1,Y[,TKZ̲T9bq]-&i_X$I]"wL ck]dB0ӭ"!7wc'Ӎ|qB ,,H7jأD$,#wƞ(um~$b \e~.=l@I#cG;R~ ^:2,*%4 =EX(1ةS0EAb[ 2p5Q8׸E1f,q0*w$I`n4o.v!*;wDb&zX-$">D!1 ec,0YClEّ";sDקHU4?"BxģGj~h"\ίTcۈF̪bX)g+4e1e@I@ǖd,+OћnDd,dal7 <5ժ- ̙a%k44v)ɚ-eM-biGuAP+~m^O@5chNf0|iǙ=SDoHSX1??2qAn~ྻw7l.Ѩ?#̀kXZQb0Uج)v#n翞VAoFL@ [PfڮHhw4 ƤH mb!XlO z'8= mJo#LV  l  {B P#Y ȇ ʐ P a p aΏĬk*Bh/!+ BO|)t!sU,Sd(_Nv t )iONLfE4&k P *Pd&G MB MpiJ:Llo9 /^LVp8BC+^ ' a A 2 P| N "ħ!"3 !@" ِ Z f4P #P,q5aHGL#I2:Bz-1sKÌ.H7*c#~ R+l>p-kC_j 8+/-1/'`M"vFQVL!zW.5 0%93U 'a R #!r   "R 6]D##2"O7E !O#0GR9A$ߐ"N#> q2nCž.~ɮ* o)I L4sL<(=KMvCtDӎ| m,mAn-Š>P;;BrDAp3P0Y070SnP0/2p 3;t2SsH1%.:5^s5+"5S5m ~S7Ys!Tl \" -!LQ% ЌQnn*An t+6=0t)9ā>5׎z+GrTq4!l3U9z*b~1kFo"'`7||{K M 5":w#X/YԋٸL;%X85qhkMU<4x2'[MM 4rg(b=s-B40gQ0 OH%tÆ28d5 ȉ!NqA 'flmhM t/ٚw5_ES Bĵ"'FPvƴ {".3p$9S$ۖ#XA!]p5yF3F-i0E1 y _ى. p;E}aImG>9=2#$54$1hE.eW9+5YvnvMƒZ-nzwٲzgMwMu`E+bΑ~b:g pK984y 9w Ƿ 892#/r"ŧ ')/z%/x6bVYխL>pgx["4dE"m*t!.)qKO3>GC/Vat0BowjL1)VgLMa IACM{n wpwylCY!JNF+YWkp "`t9GR5ՕKp6 +  9-"ְ7R7e5O51\O! G#uc{lKt:|W%yι`NوePMGįJwGcbo@ շI_YDq,XGGdFϝlo ]bAͰ+RӚvʹ?Pg;.' kJii" K !ȹ A4K !$V#9A]Y,8465q"]J'c ? _陮:#LۚYYn~w2WRiܟ;emV-˓ qĿ\*$*5صș _RaŞ ¡' 3zەK?r}lmHTZ!HEs#qbx- 7CGT **-,@GVîdlRe,KjA{'O^$~*[cXG P [H|sU1Cn ^d_ | 36b ^} K?9f6pӖPAp+Ԧ7+13I,\ʕ"M&1&p5:h3Ƙn<-\ŸiaѤL%EɡPCZ5Uv쿰~U$$,nD-r&t+׭2zk]m MLe'$uU\k8࿃iC̏Z35:ԿZ2_ `jnx'=ݻ鵸g Yc70 Y WUcEt4eS߀ T1Da YxRNaHUSғA,BUB)DH"ic0rÍ5^U?TS"yJWr,)IBMUZ!!?HӐC ^)M%UW%Pt[IaNVWB3u4]}%iWޘ4hwU7th6i y0*j jjp%)D  nkv*Ӊ&aU#-wc[ :d[G}e_C @ 7aDH$L)GR$ 0NQ`C/DLDKQ/DQU05.Xя\L'zFfDh5ĖO# 9(>5)̠elUVL 8댧(|3y5 sJm\exXsfY`WEiB!ihRZD#?*$p`I O~c\s_JlvVӈxy]V wZl z|МeY"M5. N'D;P0iS !52)"#Ul5'tFHT8U~lY%l(zOc \`MOV.x$`&LY2ZC$ + Z0fM$5<0> سk9F D5[1; 7XeQNH MnɛAo*T3~Uz-Nۊ(T5!X@a *}b1jBca ?ቅbXb*y*FKeWȢ4d+ddkY *ĉUӪutmgGD+@=?=vGm) ARae\fs*,* o[&L46raֳAPpk3!]bD($ЂB$m6!b赂(`uw\7PNdH}lD | Ѥ Ӌ?(0H/2a!cpc/Ș( T0#Ջ8+qc!3RS1`[|gjyd\[!y ,R]UVk yS&gi5zlExk'1dNPg藡|wDà3à C 3gFU7Yu~X# v%V%XPR GK6AX)7Gv)yG07V 8Ӏ0s@UXs7dUGi:iQdѝ `+  k|۰ +9Hiub8u=ˑXCHgUH8(?VYVQETBe ZhRZ=K qVA=C!/!u>#KE[GiM&II`JɆr8fk?Mp\[a[9Nt]kχGz yg)ztו?`XyhVu_eU@fDCo$p@ou  zB!qB*d&Z13 dk7jۨudvd:X gsyt8gv$z) 06w8GrP0+ʁyxHaH%8+I剞 | ia+"+ufbI_%fbp 7:X?nTm!K!YeJYYKK8/0bL4= WAl4z|;jt?ޤNLNuGߤNRs0y|"6,7].k.ˣE]zvYyy>{\ʥvy1 5 $jD7 0T;oXDO@6SA Q%(dXb& @n@~#nFv7) 3xdiGN ;sjs[9(t҉0F؊%ii+I ɞ̚9y鹺+ٝ;sZFP Q^-;֠-ThDc1ZII22Vhwr#:t51Ɔ{l8l,*$lܔM8j]PipD\͵rƣҵ%]9] ̲ ̕!еB\Dyx]zyyi_r!4^[D&/̴>$Pc3r5 Qa+D6R`kjD FG 7I܌ٛu|G18rluGG(usdOɁcK:W%Vq+"鏲+I1{|л*ɽb`B84en7! JT-BEwnGh"FZd [:2Va^QMOƆ/O 0#4.Ae#rlhHR%yu@?_`>y̜<]GN g@ 1_ZQA330@O0  -DAK$T6@ VYLi 8VۜfY|G x҄qrȸn\ 3BӠj pGG}ȹxzVq8;Rrk aKʚ)kО靆īqdH8Pr}&7Jqg@qVSS&(K2!2awd<)4T!L>r -jC v`(3Q@a+71P0?|ߔ?M{\Ͷ͕8\4|GpB4O`@3H`Q A_]Q  ^`  S 9n >l{  G,|k; `8'N]0=+w OиNmAS Hu ש*E80YA[9&8+pjkݬL򙻈 xL\牺|e688;r!KFs~dOjOԀ,M ǐ7ۿdnŲP 3@ӆNr*'t2vP pa_3[;S oM@ P ot0 Q 0ppN ۰ B} 0 x GM%Q & P0C]U]\."\%2!r W As -0 S@! 14c#{fQb[QQ_e4qЋSx}v0$Op:ߴ(~ΐ i6_T( %WYL3/͛x G89t*DOSJ]~&բL澋hKԬ nߪ z⹺ne q- _ K [ CB!qd`Ȼ" o uuP =6!| o>K+ ǐy3u耐oOPP0 ِ Sp:_ m]J]PO [`%cj -AZCmV?m#j?n6_n<)NCHB2N͔̚sʟO S0AʑĴQJmd$&ڵHbgFSQSm(wJ)iF_vkȔ! 3ѱ83vJMh.HJ~xDdU~$- УoUC =pPХEXs"N:ï_'\hZn<R`#@oVL,M|fQ:[ccن@ \#!:*&!+.;fYH-Ҟ80fF@tyBG  (G3<yp?'ʲ붬M(/ce2;,M*;3@l.EzDH>qcP7~zJ(7j+*$Pf-ц@Ab#Re)TKaT!rZE ?fi@\JAgĮ? OFg)K/e?j76%Q frc[lmOdEp2igr4,$1cִNG$'`Æbٰ+^찃cRdkh>vQf!27G;M71t†혨VTogX8֜xa?385<ߐ꩝2d2ƔNhIĺg=0[mRHycX@\ps9?2ަ/ .jX0 q:l [70KB;l' QE<2 Ӻ%Dl:c ;{\^(P; ;oSД /TiTzD[9F Fh4TJci4&L! bЁ`[! Z*,CHPҗ ?(2"3Bdu"(֯Lѡ8|T/b-Q_G^0gLa ;ֱz“dc]R W 8؋^Mʬ_`HCX(9aՉ ,i@ŷD? YDve!Ɠ^"F!hķx/Ìd/5HD&A|c1E+%tB ';riy(~(VkK Σ%l Qְ AÄT$Cvئ7Jq Q"]zUbt :"(,$֋>BМ5 AxLb/%=bnפ@!@hXq!"C#K/IqJen4%ݠ;y#bŜh_NopFqf S%?zUb#jCyFC@UUX@a k!8\!(O#;Y*fϨ3y\b[Q,*Ȅ)3Lp,Yx#ޘE&dԪkBWk 0Kcd#KG3)-#,|D,eu` qVs;fl eI u E(b`!y8Hh/*jv=STLÆHS:mȡlnKIUBd+M!tLJqaϡXЂuHfCp|0G!6c/`FA:㳃'uLHƶsE l:S+5W6;4 _`/)!ds7棅j4>Ϥܙwt\Ij> c˲'o?&[ʌy@AjLԧ[K=X\H`F8bmD RȡS'aPcJ/ C6]ҡ'bZ %6AVy a.#ޫ ZP۲$QnLb0%*6<k&9as,xsvpH0YvdS(QxЕE~eXL(>E cE+f`,Wkl CޠŇ8'!đ<hG UgLd:q 1PN9s@[v|1lBv7" P4~QJ%bYj:Ђma_[ |5szRByj#ONcӷf5U<HFhlW#⧨kbؓxŸɍZHtR[ATfĪ!:V!?3:.b+h!V#Roj"̴Q7X`0 *PUq.AKق>+hTAzS 2fqQ66jË щa#ۘ7  ,212e3l ʉ 9j[.@!p  9? d# ء{qY0ۖ#8(QqJh qL.g F(j#AD<#(=%.;H 1]y FP?XXܡ݋=]!A]]YpD L),lgil@p)8!g]SC$$va= >ɒsDE#>DA"l)ةj D~D~ ]YhVA7"X&p  V *&ʆJȆj SʺDɆh qET'l#A?+ڊK@fHi@l H0JҪ$˱b>bЉc8"fXڳiX3;àfiTˠ@@ÊΈR RTnc2x`i9:RLhK7O';CYɦQHHG@7/a@ KǺA0&0ػ ҅;;XgF_;)"YY>Xs@:SC0k&1ʂ ̄J _@4sc4FIwDy:Ѕ<'i'\ 7M0uR"GQ@i?Q",H<`ulxEXxsV<4 2=h St4%Y`F(LI |$xK؂)Ńuc-0-@J@r@SA<%eK"=>S>mYHohmqMqD2f 8{LhCjSI.mv%kixR@HwqCҿ%-M݌,"eP6`BVH+US?JJUߥԳD9; 7XH"3KS /6Kx䝹2AZғ7P[aiƆ/@7xmy7 rT{9`*iK @4'XL3LމV28&zQܻhjIDl]\,!m&U&i"1k b^4 Y?@{Mڍڱybh&_D#9Z8yX9)B/nAOHrcM)E4@H J@.!L L)-ٍIfw#t>5 Qјk#y'ONH$-ť6kÆjCS`ZYd| -_N=Be0T׭)y>JIIo^j V2lɻpթ@$Z|}K֓I\#C]0meckᭇxu dkh!K F@ J >CxІ̠!icr/ "iU=Zё-UTH#, m)1aI-N 1Fr4ERq]F_5lwk4(H]>ֶn6eS,䱂TשFP":-D7Ӛȅ۽%0-$6n'=]Z7X7H:&޾FnXMu*ml4T|i U^wr K ˹5KW5BKX.'}FD"C1S6>^3X` YV4qHەMum@h?P ?q ԃ FH(qJPq'@ Uq!ShX%@6O0 "Aa3lLso8?,&c&b ౫$;Mn1.1k%LaF 7ʒHRMROyJI1-t+me8m~7VA,rn[ly_v,6]xxjg(0UC,S'KɒD' K3щ^t"JK?%b,rԩqIC8P5 1C<6 O4AoHHW6WI%D^hG*ҽKe3ZFZs "b?51C _q CE}!D&ic0 R [ְ @$H8&IBED!Ǡ-n(prR4Bz׸25[n9wY/Lءx蒠vZZ8ٴDl;`(`:ԅ!t.*.WІe1 նbHDԍNuPybNjI< Y<x+BjR ԍsv``~Gy!`GDX@$"шT30FX gdQ jPyғFD!D(3\qI@7&`*\L>U97MnA #1VTWV5 :Mi dQ:c4Sҕ";( !B Ѕ79 EXZ=<0;LC+Z$VH&B#@b4 z?bKFlܯf-D ⽞(7aT!NB"0DRa R_owqqB%^eacD_>12e?Z93yFg@Gf#0K`1S#*(pk"vIA'c;]T :F20ڠ5A ԏ #y0]70 }4A19 d l;EЁƌQ:` QbK?L&~I٨k3T uVloM>$HO0)H,iiZ,3m z޺ e3CDh2_Ժ4/~0& fǜlE+c5DͣXJY2?@NIZ\& 1%z4d{iOm&wCmfyf`1"@Q^%Md".z98D8S=f?o A$ FpDHûd(pD LM>Z׉򩏑ɾŁܴ x$b59dIߙ48(dRhք5Rt0i\LBX% ;E1(eK fNi#f-`TaLQA?\q`X !B %Rw/yw-EL^:ElZF/]F P/dIHڼdL=י$eքܠUHUH$ˤpZkZ{4^t D-a] ~Xΐe$Q hⅲŢ(T"Pb=b*R"wbށ]c݂G՘xI٦{b{nv>J( D)WH]T5y_q `V"??KưDOLD+@ VlK΋a@E5AxB4 ГIHUDېȪAWXYNgxMflAeu̜fQ@R_EUTyOtJf &~RxTd lTTAdq JL/|J&ܹ ]\jvAL$:fd .XJ\l^U] Ӣ!2g$e /(唕ܼg\0eF(OV dO4,HƧ,` TmTdETXi]SA#2S1u]5%+`?#4? ى=dō0f8(YjǦǬn# Dh)(E>Ktl?Aы 2QGXLx)Lv\n ZLU6M4|TZ6UÖB-mƠ#ǼxeaL9/ݔڜ`UI^KЎD\̒4 M` ND \He%rsq`y2J)KFB &GbMF h/8_ %F2 ylNG͈j䑐`$Wvd(1+ϰ(88!DPH!˗#q`/"~YlѢo&&x3i%A'O!4ZG".< D@?Pj+; +^>,<0C-j"I$x+@!g%l$ggF9tN$GCe QFjKYg4Rà2C,U?e?Qy7< Ĥ:ɌhC5VG@ B;;5L0y:D+ba?0Г 1>- p:$6i t 6nu"4.f'/Li496k[Ct㟢.'!^))BMHΪ)%[" ihH`($ccH"AFb4)nCckhJ 4AeE #5`44YkTZ J d C,SOK;k[ah>,؎Ze3LhECpӍ?YY*4>tRƑ Ƀ,>Rz[\ѱR4.#GG,QN.jTIR1ـet$g(:jΊNy_"Vh/;HNhBa`/GLbHV9 &jQTǂfءp7TD1Yл0Ut3'C;blL!2@IerQ*Mf&@xCgΑN,f YD ܟT@+Ny`88ϸRA"ّU~uؕ4#@lx RAvETg} 9%r6(e,k9M - C궐 ߒrȊl{RL e; PfpJ Z#  ! 21 T3T&,R% &li<":"H&d-z$#gk8\s *"̐`BNN d``+!z  5US!zGzH21"IUWB4>BS4I&5NKL3K /E۞l7wR^3XS9&̯BO lF,N3" #Fg ls@t)76 He 6! *8k:f`=+#th70A/V"ub@EfAܺbA@>[t輔 @?l%)ٸibg:ʵt ) lEtA h+[%BRG"iݖV>ɔjsbD ar_fVPJl T .m.b |THi5 oMb\Vv66ae %z1h0OBRa})5,S0$TCt_Tz vO^ww*#,|Wd0 -`E#(X39O78 A\ \Է 86f`ܦIov3z'dta/zg""i~dV,f"+ @`gm $*AccS@hBta1fWc B%F"݂| 1G)KBd'瓼ę &w8mQNO 0bOEqq`nʼnHX6f/V^* 07-іqW*M<*-dyJ g,- ` и.OtR'uv gК1P-tKOIY-@[r:p` 5#(+KkN"ٍ7uì дt$ -tI4V1wq4{b5+Ř7OD˜ ˆ{9dda5WP48*[[4r#A"EtV Fm7FUzL4EA*!A̍EF E ~Ueb4J ѧ?u:[K2 9V)d+`.2iVl3^|K0J%]_a :Ǽt$n6hj5 |81ݢVR/OX'1A+4%:t*f .EH B\h$DG~ki]$NƝ{pH/~~,$ m'zZZ͏L`+w::Qrg{*2 pKVmɶ Vq3(+lr4P-V3ΫCS0 0C] YXX]u][u){94guVUF4Un4yf, f†Wۡ;AT"sVSY#e%2}է+a+ jAnt ë$lv/0oi lbd%uB<$ET8Af@ \sS'=n: f 5%ՔS(!?xϟYpLv`-F7$ubV̘IZΖxHrF7H*mMAՑ3b )ӬL-zDxV"AEN$4]|æM2cƌ)d2gmEtIP׮?(a2_pך_ᖌ;ָ7Q@2".H!fqAx;=dQ}L0_߾(zQ52 RS?yT!)H3М 4~(4s"PL ȳ &` ZH!毁3!_(cT8@Ək1'>McԒKׄ}暙gg񵰛+sa֞'flF,yW(&#&IlIfB/=Jn1?~RJ1B#|pF%lY<#tD]b`oW3HU$$ֹbȮ!$JX bݫhX]$~d'nTUix%k<Ʊ,0+_Sp¼#h?N fqӴiਖ਼vX``Bj(Qe Ҩ\1ɹ5dB#A(# SGļ3RzQXϝ7a[\i`>R*TK D/()!thS dT8.uQVt]\ 18VSҕ\VHFt]]?ChPr43>Z0̯`B4 @Hb#0ØZrp{m)ـKƍcӜA6 mS@N'kdJwb%4:P0]!w/_ҍBx1O$":E@nV32t%Fj`r:.~tkc0%NK&k3Ҳ,8 J&ZGk9:}:bma 8|.sYg\>T"FjP1 91)374(??"C<ƫ0I14Uƚ ;HMP !v 1dSbMeSAiv7|ȀP>T)1H)a)sdewB" P7S0iTtOyOGGg. ǐ?f !V0d%a!gxh\ uf1^/a `@+b1n@c(V;v&lb0çR >1D%= , Qާ$k/:Xlp~[F%wYmK6uma AƐ違~(9~lIa4F$I[^#K ]8%e6dEj#N8"KdKJi:` C_GXr$Lx4r9f:#8N|⃉u~h0P)CD5BR1UaC'$q5"%Ȉ Sr/6DhhS>.scR1( CQh0j5bɉx] Sr-H$u$p$PX, ` +*'H 3GCOe"HV]1+C׈q2"Wg0<{S1k>‘t7e17DG$''rsNx%70eQGv (e n[ n!:)HT59\87ڒmUXo11L1wAD911etׂUjEr 7T)wd:' r M"%Bfp P9#2!WIXh:X^upXlcSXuXX E}h9WRf&J,H(P S _1 z8P酈0 BwuNJFj2K%p)9w?BR=R2 yOq$i uI$XBL!\qCCqr"-!A 芮7B#@V*ؠh==/`r)f Q?iR1cƯi}Wr;iv9v <!n'*!i yz7G*ŀ궳+:H9/+I6dG!Qds] !:wNڂ1K !D^H 25`tp+grBb("tx!o[: ^:d!rXGFv}k{~Rd>بPqhrH, DS@7U8OC f%pw(±:tqpsV(z6;"^f `uY $٬zZ@;,B/:'F,>v%êC{ Pyݩ3D-?QRir(Rw&~h'h,6Y %iE(nǵ,xR |]48ck!M,?frLg0YC1z.K[IE*1[n7wZ+[+woJtL] !2H mۨsfNϰǂiҐ;b21!bf9RkͷE~Xnk~렒t60 P  @g~F-Bi*I%Ohr|u51Fb}N'nvgo$~[+O@‰$ً WybfqA{Nvkwq҃i+Ю/ Ou2 Ӟtfq=v>q0S&܃lg^>!U)p'D>Ss*0-'"c ~znh(IF \KdQA=(RR/=W,\ iնKA]9- ieDICSoO~6Y#9 hTmՐ4I^4ܥeM4Kr]ײ!Zq!RYw-h З%(OЗ0 Ӯ8wi|L82&hSvrDEЗFJcv-WW{#1Ha(4*үPM.bIpS ;$K쎽~ٜ Mʰ-'ifwrE>}И@?4 #iժO$H1cF#AnӨq#H#M$e4](CS>l|dsP6 G-[v SeUZ)#Srfa1m ,9H^"zj-KutbHiؤsbCTS1 4A="|B8,\BKNB<$$wi/m;lժ-&z7 BE^m!-H oǻ/~ w"DB>4'AjpbFO>A# +d4$G8D1RYa|SNIVH#HbbBjq&lfdhCiIJ qd(*&*.jLi2IeOč)I!ƍ!aq|Q'r?4J n2x"P=mQS*DfX5Î*gXdNJw?<&2ئ #!+,MuQTb+cb P1H(I-` 枪JAJVEv g8x M2Q"ZJ/dD"H@ho U/fV^?N_Ӵ6H{y.{yڸfj1L]ysĦL-mCyBva-HĹ 44E & ݋$*q2+VtC&$_ e?kʍ" :H^?hyuFr*CS'|TCN#5aziif8t<)@@]0u@-T!3bЅ«zjjj!VU=PK0VJDC\媀/1k]nM[V[;ZXl #?tĬX]*.<02okhجPy?s;3u;6vC6d{u{89B/7$~h 26𣚀6>@.I(ru;6u{۸( 0 h)\%V:-X!_*_iXcB0se"&&b@m q5H(CJ˄_ȴK7`Dj!lXE!ŅxVa>VIOx,A2f`F5Q8VI D@˓/@<-X+1MH8GxkTR AH2Ƀiݛ=c!:t0H$:@8rO8O𺮃&'+ Z\ ZʲL0a@ P̖ p bE3(`K„$`=gA??< 22ITfѐe{Ks*t[ʨJ A\9-xቓ ~飲 JI܄˨@AAw;BHxB(̌)BB, X-į.% %A젰x980:Md I؉ apOpLpƢtȡHS9F9!R5TiQ+VD*L}L шacG5FC0f<Y O\ڴjY03('džB@TD$a"7@㛓JСT;VdEA;!@ }􄎈5:#c1Im!eh:k'I 5 ⩑ଡ$j5Ä5՜$x7M45M77]JwSȮ9ڮX7wc84_hT М:5]<ˡL Ap%P9Ŭ ۸H: M ΄ChM!nҽil5~ԡpD`ȘꄗZZJ\HcOM|s=t]T"r΅+W9{DhH}d 3O zZ8ZQpIň8$hOU+U!HMOScHYXC(O qOYvoZMX&msk#1a#H8HWD\QBq0I#)<3.bI`9ed8 +1~,e`I* g$j#d[95Ma[ 0MDžM\ЛƭY::Ą J JÊ8U(pS ٕ]ۄ0ULTrŸ()A LVUǤZ +X bZCjXdzhpH#O;aYp!OPs! QsNyuNLuMW(X xFƨ|\;c>y\0W8KFMXgZu4XʄZ nem]mFG\ #C2,"4xY-I}:(nKڲ4 c<(l ^p@JZ囻G 7Zx u)I>:Q(0 hSIi\)f9e+~ۑ*a3eyA= D A !q;ńD6eeHpqܵ;8ͭcC e7A575Ͱ|[MuY>]\Z͌ mvHJ9hL k& :ܦEP&pp_ @`1HUYUqN`!lhV)v`}}2 Z 鑮2Ux+((O2蹖nMYϑ),uEi0A ^aj5rq'BVXA H?H&eJ?ق.baɖH+P@\u\oҶM!aLo y];_X(vg]cCpLd݅ -%ԌVo%юpg:dқ֏q+v 9ѡUl &q飫\hIE9+R   `*i!RQ; `fYEE'ly2Q\aZc|Z .5!3mHƵYiqlE s"C 5GAȖp5(5<'BhQIfd4Dnglw}Ж[28"mDfUg}(v)NnUvS}908f}vٶlW_a Mhp|r uv9joWz' so}9kggj*&ebYS<[5` Y7 |%RU$6L⛌o]CTh$ʔj| Ꜥɿ:upBPv$41Ln>8LJdߨ? uI$ r3el2M4e2 ӌTfƍ FfֲmiM"A H!>Ht#1M>}!ْ86dvqeڄIbbG fx)L[ڿe,KKkpOuSF0h)̥tSS!eM$"G"&&MT:GF{x}kc Btn.jxM6i0H.뷛TH~ \ITB _x猚09gn{X =7#*n z;OVg( p=G`B@h\!G1T䈲8pY! 1ac.sRǬ+=Y,RgHA`&!,aF M["faTiz*~  # 3ԪVnX6=!tB,1^x~!F`HAgPpFJl`&O 1#|&-ls$5m%xmkѹ|k^ !)D$r((gXFj!L̪R>+YYYQeRE*?(DbhDFJbLU"%_D@5B|`~&X(D,Ci" jnNlXV+L!YklLZoMJ<y[Rc<#_<&ş4Y}+NL*V4n|OOFdx2B-C/c|kFdr)jڀ?XlxDB+M^$[ؤ ;n$ۉF%" B xA+u.Ϯd",Jp`ddΕ,aAQ  Z%1U:J.,YQn~Вlv̵Κ:~Ub-&.X9eX.]*".<@>!"3щPO<Ԡ()^U% "2t*l*Ald_)D+g#{Db-r2X+0ͬjI<zD~IdG5gG|6&9H>M^ (F4/OĶIȯT BA'PI'8M+hG(B]%0x|hrʦ( &0kr֦Qj8Ti WYi G&nH$'$p["]1݇/0I,@1 Km]a%w5U=J~!~X[\[Xe-j*]B߲)HTZIf4aHԝHB&!Z멄F&Pʐ+fv+  R$L{RB j?ذ{l[0lG.{Mgx?v^dBB+Drv(p1qP8I +P#D u zb D\Zf dv(jHFkܷ$AtEs }?`JḢ%OO:e-f kpp!Gxf8pM1qWzQ u½cOhdbuw\;ud1O\s,a1[v%:XXwܡ~]]2RWJ*JuO_ӡŹ.X.BeCqr!&[/  6+7:L-+gv<0 ,kiC3@ʨoopoG(jLܽ:;ȎpgG?+xģn)Hd8]DP9UPAL=~#8BUƠTB]ms@d4|[@LF}H}k`yT8xLWG|`R: "(z҄pkdZ1Z)\/qH1qʥ9!xpI( EQ9!X}1db Li|׎J&)WjE \"je\\.C .E!=&50j6|D|0:2Dsh|χȾFJ \D$Q@C>Do>kx?t3И+\sxBD둄~DDU? _"uu&y%μ3;fF THiS^Hi7!0KVdk0mIZ8Ļ,X8}}qm=uJ@$8` ?"DX@@"Xā>XQȊ-,92A%KpBnzrNfL2k|r&%Ck6IhTWk0hЎxp"B8eY0iL4eʝ-\л2~XA&Q0%Q81Hh }Sr`+V$!2NCdub֪_!ulYGM7dҺK/V,{DqNj_ ȿު?$HHaCz5#Qyz*yRɢo,3ϧpC&̐ #4*nP;!q Q@ 5$P@ 1BTQDOcD/`p"G *qQ +,tB TCj# i8(0,C" 4L(0B$>qMGHBq'Tv.ҳudt7xUqj" աnT]UiqUYGeWZgJ֧~rx*YJZce&.y7tA]bK\LepH|AFFS(CjqҮu0Eic<(0cȢ#B&?3^> I-dQ,='"C'(H4 x`$P9/A:@0Ȝ0ICt 1ktxǸM!rb#nZ pbd,! d%%) R wM;Ҡ?*Q%(C C?.0k@&0601pA1c"6PD|6k9-=Htb۠o6d c͙?01DA+cX(FņhjB$х kR9хs؇4WnptK9ƍgsVҳBёp&=!F"Uw" (x @IbtD\֖$MGr8,fK}nKNw%^fWLa.? `e OVy5C\ syGiGr~':1u+)(r@b?X}s{zu[O'h >{:}S^[HDP+\\ QU\J&>las805)K;X#>t7yBӱ:=D: N>h|؉'~bq@@BEWj0zI:U\Ŕ5,&)NҎG%!!H! ;rFښ޸6% +YHJ3$9Id2R%5 ڿ"nCIR,|Z΍ lZ`5f]cyi/@xr;"J*p5XJHr5P%ׂZ.PN5% Nu,&]={]g %(կ%W'[)"`''o +IQH" ͨcq@Dq'm;qIg$ H ؜t,>o(1[Q(/2Q՞v➲˺F}-Ȣm1R*ܴ҇35Z~k63TOgO4ͽN ,N)”ĉ4OnsRU-k.uDmSѿG[Nv"(8"#3+B‘`$<넑GrIXc4DF*::pD !aY]0 NH&tZ=f6O1؈C뎴GHdnqB-H\rH3+<4IEInZ\)UfPN(r (B:),RIh/aQ$DNpR-oO4P &PoLMn\._-˘~+JiO `MѢ,JSNPG25 PݫYbAsqO,g ,O-ܤPK̭PtQcq۞{VL~|E. R%8U^QGU)b!D"Te'EQU}EW;no/GD.E d2!/gN5K4gh,aE8!hiA9AX49X.Xل1N,/ku3僯5éZ%|Ri6)B&.r3䉝X"Oe}IO8wB" |]\P۬lf8bBHj6ДLIZ.9aR;{&-kpG(9p?HR>Q:!βo0K*(brtِq 7Z3\?EiRiv.QFֺd.e9@1$ ڨ2OP%Y-{5Xj7؂)jyWOMXbTxA٫Q=lUܖZ)&|V#%*'@BQnE#>Ro/$ v!E!&!r_i]iolZd8DadZW2 T(a>D|t^:+:U$:k[RB))ZzJGJ ېF봖nx kuH(q#ķ21~NxbeS BkbLϋh9?y BvO8G{je1ZV8}Ρ6 tC/K(U{+\ːy%ElASG=Q'4TRXUVFOtIN^Y2B6-K/&Foeu 'mgh%h/Zf B$SC?GFPdEºV-`:Zz(Gfu*PԴ" 6Hbr&GЃ+Â{3s{- ~l-G`[ Eᅽn%GV`.ZN@A0L?x$V_F0:~`!Н<`0A+ҀVذ< p[3+F Z<,eiJWvkSCYbE xkN&&Q z'8^i$SmN8AaB1q%Lj)"n#v 踁dOx2 ED'IMB=&q)%l*+kYyDu"r +sj brtk&2)<<^[BOg"#1̈́4-Ҵf7CF a3B2#γڥh7*t 8/`!7L|\#̠b&`42[0C cH1ф&H fh!k20+KHjgiPڔ"iuG"DK4I.;퀯#66+7urm4YN(1}W@6ђRu#6#)rIF:1 .2 ;F@ >r{+I uz绪j)saqʹt9*Y< n@Pm!~yGVz6 Y`wVJրMPzs&|z `',a~ׂ`yE8"›B 0bdlc㞾Q,cNw0B!&BnX&3߂2Ґ<G|ɆVSeMCږ(lE W-lrz`8;z|攰"I9)dҠGR%: &S4Ggr!YR;I%3W$&h6 Vk=qJbNlz‹@0A"^ f|%\?s6g`R } {I؆#`;]`l!)j_4 F#?SA@@bP,BD!C6C=#9B, HT5f Bf`cCVd p fT?uTTH8h V@t0tSEUQE@"P4N$EAu7[LWFJzW|Fd'GRXzvBXUH&mYsTwR;ww$x'@_Gs{u8Exd5y\wuiGnVf$if :zJ7kx{<7[X{:LlEta"UlOmRVn#T|s_#b?-^) ݗPcnn 0g"~CDQ"p<< `QpXr-Pޡ1فs>[C0r,C8ppTL%E&HPp0s!Hd]h l hV 0U?0iU3F84_59G"Rq[]#$T$QWbwnG 6o$]HJ H~dXY}%8s68wlYhtfGv4gWalIFlԇWG6D70yD5kJV!{'h{EBkg{gZ;)LC*\a&>CΓ|S'Oš_ WPa? >>T/{!~Ӹ} 2-2 U@ј `8<oS0@bS"wx./rCTb>6S;48H1Ȑ) 18'"V) I CF4N="4$!"*"*`$wQGgg6fFNF99GL6%7W;;OYuGe%!sftIoƇ^jlxs yL %hzyK868W gzs*[AJ}Z8xJjۨz{VE#ȴ[4\×O@1\fP6?a#e?.}l:ù ;6kQ))x"!Q3DD pu~6RgVrp!QS2Sc̀"؁f p * <Orgg3֗HnM:t9&Fʶ qZ,)*Z܉v[u*g#&{Pa1G75L++v=a_n"NO6oҺ d6wdWxDT2x# (qX%%}8F txtioqygt&ghQAiDgv$lvDV(D-(=0S ]n{ƹ$jz{s*ZMy!;"znls󝙽lyA~ n3/_x]s,nkپצj2L{>,Fir?) #+O,7#CD-Ȃ=sc=s+ 6klk&` >ۼsl`* Q}pӭ} +< *72ȮA̞X18p 9wBzh*e#A@ ~>^%g*rxg{ g7;8+'gb¤zFѧ mŶEfgEb&fZ;Sr$+1"+s.2ȃu!3|UG1p.n]Rmr'<<+q@ז @6pwq0C7O#3>ȒhC9sށ0ڌNdskmc8FC?djh<9xm }sǭ {}0@Θ`1M@}ڽ ;I̍  @UD@(-|Ç߮%W.Dh%ԇ~H  >z~hGe%+.O;,1x刞g*{z ?DWLDIukRm;5jV HɒEʿ5d1PPBYI$RY1@ND1ңIY8r,Xa, j0AM gJ ŀmЀ@)AEa@ tSRd*i֟`mh[`M2 0ST8Bw.B$1D+iHcLaÒ1?3 . A2KI4hL11:Hl"A5G&R$i+Q`8l "c>|8q~uٵoNM6mD82@$J#[!6JAG!wPB 3D *;6h h j1` 0Fwh` 7p w B&0R#- :x!Q22-#P|tS 6#(<='?4A*QhhЂj#LW"""Pt"؊訂JOgHj5ʂB&ZkՆ5 RS8rJ1+!j}jj&"HSOQ).tUCـ@#  3,CI̐  x1L 4^s+ZM*51A㌁$3HbX!cގMp&<g+\ : *Vy O j>pk;0$dp/t0k!1P]dA6Ʒ[$s{"ACd|rA P(!KNrr2-SC;DhK e" ]ԃ<]sAt5u>QIR%C"LTL-JbV ԇ:"Vw~f"6!|a*XJ=جWwׅ:Z ٧E?sǹrEe 8H^Z /I#`QEc*0}F4lSF*lee)N| IOx "H@!uq#&Q9"H3L;trC6A rG𐤼?{;\~t7*aMAzP6ă DBX6(mkBd"D=hQ- !~ F-HB 4GodR$x4&>sԔ'}.Qр~Tuel%iO]2J\CƒHZ*Qi&=,{gIT“ci*bHN2e(A\S\p>ӔK(jblqV!.KT4HF` ˂?`,1np(*/4X|P8 GTeC%Ow᠇8bS|`E`5>2L9Vn՜5)O3u NF@6nCI!<;8*†@, H8FifVDg#hNHJ&D%'i-ဠ1an&uͫ-e^z`Q咢n.ItucvIxW@(JF2+ʜB\ (r5OPߡHJ,qY P~G`D|B5efX*QC?Pѽg4hhE+ЊH0gHB29e|!7fDBƨE{Ƞy*G䡎`eБOTw#zeQN,3)B<"+`6!ȑsrIY>IXB@#}th6 '؁)"Ķyc! m|epٸ%D8d+{Z#qyDȈR#%A %ĠB$rlbe)0QO.,W9l-%{QI&DUZIʹN meZnp'IAloLeYD=ֵn  9¼\Ԑh{|J (4?2|yw핻mMsHIɸCP%=@BiJӊH 1f@C / Fˑ{*2)7բHΐ%H {4 @N ܖ @"8D!X2Z<8@6!3'y(gP tI~ : ب219 :2&JSB/ ë";1&3ل3Dü̻ ȃ8<0Ո>Cij "BC| A{DHD%`KF N~ɛA$(K9H쳤%L dB8J2J%1ʪ/43/JQ''B""J*jK$%KrԢC<BѨ2 GDLj P ӓ ّ),:YEٚX a_T-0*ҥ-%hlMLM烞eyK HQa8a #Q'rUXeN8 0 @x Oz + 31I P !!Zj ) ziAj (Wx!Q2Ͱ #,ME2'8-Qا<JѬQL+*+;[Ԁ3Ҹ 4`uR 45(0qA0L%Jai M&߬jLMiSMEQ]bqhdW෫؈@`;O8uTXyg˵ԵVxȀ (DC$ 갥m) f`SS:4 P$$(x^!ZK K2#*T;p ,8;E  LiN{$8GXXD8D%!)+H,(jMAp`3hH0yS^{V0fp9a+JuaXbا X;=DV;#B* +ȡ``.ʻH+39K3ۈ4Ф)I]CM%% 9$q6SS՛S Iٓ[- FB͒Szԁܑi[lchcbEMhcFE)Y&T #mq]jAOUۈO?]O9{σT(zc Za~Š9߱}VX8e)R@ F;Cv@0..YECXm@nf8l^_X؃/x* )"0g_fmR-R+C F F>nV:CH(3JdBND0MCSP;$SY$E>E@" S"TB-JM#Vb@ipY%Q%UTZ O.`-0 +.2jP[>Q}6oGcpyG?̰=nV ˃ANCb(Oyx/budC?v#ySoYUkC`f/ H"䳦:s!翔f]fK 3]N"mK= )mPK=S_ҏ; ~ er^D#_rlvs7gu "1>Yfd@r˳9:P詑<֓2$kgNiڎ^-iҒq>)0)J8>\ʓڢUAYb1N&=Y14ej;.,TK%oc$V%:C> 9! H`fiVrpp(`{@a<PNz+  CFNOJGEfElDʨ?S^l8Fm @Y9: k9Yvu/ Em?ҹz9` PlF"r p83l6S_Vlᶀx78> }/v$Pn܈FP4 8v' $O E=>u͉t`wBu'T9M#.r6Y,Ƣpdb.~6DPw,)pT6v.T7g`!,xJ"(aC ‰6]DjŊ˓a1#愘Gj(;C6R(pD#2PBCTY$i]j0xq"P,F%5A"",  >H,/`~~&hLh%4FȣFagQ9yDѠ8p35$l/ 'P̹Ȃ0@U?%_R'@ "!~|` r>.p]׿M׷i([alDGHa` .`lX&FF*ab$N. ̈?Xr??Al ca =lCSJC= ;d !`?J?OOe Xy'^{ '}lwn&#π`!2hOEb€8>V2k(bDdjj%fII$܇ K.;4`)}f ?=ZƒeRσɧpjxz#8VhiXaYz_~B*>:PQqduI zQ `,1WP4#)pp0$j'>يDTg"INE hWC B#^*Ta B``oOaRF0'Ljj2F35S^>moIpgԀu@@ 2U-:Zt( !Lss/aQ|aTցג=Xg8}Ri[&o gv8+\.;AP WH4VLСmC2F@ ,rQX |ԋ]d# w1nbRTN%y96EG= jЂi| (JO4BbD+p`R>D! ~?B)*W'%2)JWJoҨ苦HC6 ꯔ $Y c"pŒ[l'DZTG\Z2 qTXQl֨+^O9ȺUUT\`-Qa-Ŋ bLif$#ٍ`YaیST61Ë 2G>'kb@<>In#лmHm+ph=)#$ 0 OVƲ5z)8 Bw L2d0 h.5\g9͹tBI4%(NJ^$Oو!q^'=:!G}I-a;O ͞xpR}"5T~@:@@Ϧ5=rKWxhՁ!O&_fHF4$$W]3jyY+FuP̾:"P%/H%,tArU J]2VDjK[V6L(E,0Kbje|QhY*&;I}I/,BpT(\4GioVH `_s9fz!ÜX< CEfjݴpQH 8GH2 B(g -]d'Nӟʬ5(Mg"o ѝH (?w[8xā~L2=뽮;JS_h~X!EKDD@YJX̭J.vZUQZYE^.s>k0J.ܪ5?Tyz' gw&01 Vhs8g )۲)  }DG/p|3,@ޘLx͛[`*~ (|W5}4^lz,|o݀,. [Pam (VXp?\ o^OD[ ډɝȉSV-!hvVr׽TBXJO1&-Q  f[ '9jsښ]%^fvgq@TFL.ڐYQ@Dإ*$ b%#%_roLnz,}$W &L_ (KnupZw* -}x[6z&iAB( 3t_"އT] #]E]AG BG"DiЛQL~]DzEc4^֍a}Ъ){@l펭lxo=sŀs@n=GԌRl#"j;=wZP3}  eG™L.5D,x!9I|3ȶa_pGa ڞMry%ǎHΏI~77 \L rJw)ӊ ;D(%[S{StKޚqO?|EաKT3gq*6|bsjc 2F`}̳%C=%  )B ؐ=Ai@DGÆjATEUpTl)vGz%HTT$Qr)Il!-K*28`(bG,Pr,/3ǻcF%0ZhPHK!.$"2҈#VRAEzȀbI/z =1G"`(X 2HY @pE MBj"@ʉO /`J.j x+ mHT'n$5x]K4 ^" JÄ^}f!ts'! #/;oCfKkh@Nfg朷eCOQ宻{, 0kDE,q>1E EȊXnټM6DU8HC47QK% Gŝ<7ę7/r `V_x%a z%K'bH5(>$) hB=SK?O:5y#@Jԍz2!\W 69hO)z] =ު,CIM?K}N y0e LX4L&԰l"2 /\#f6MCpc f NF缍M;$΢Vi|TGeqOwÚ'>L h@#1zt\''nA0k(*6D9\ͨDQی▷G<қrG$QR6$H$Bɑ(gąr*\N$)8l `VN Q_; .PfHw&C<yu+x1Xִ1խvu|Q%Pϭ=B )\ւj[nQ>\PZ l `bÚ+' Eܴ x!b0 bD3G8ξs4l9Ԧ"A-hl#DQ4d#")t8j@`NC*g'1nq49DI` 5U ?G.P=TL )Sis28!PIi 'mJ!Gp;F]D|SDTR ղR&i+-ru>=!^N*{3(ԉtrHE[xJ\GX@O b%:06`W ]sxФ,LO*ai`pRiM)>S >YtulbA=9ſ;i/ऴ@ 6IUFĺ.q 6 pTo8}E;W:fl9 1Ѥڱ(a|xPf4;1!nE=:ױlt:#;3-Y7Q _$HtD0G8273JRt(Il%*@7nлU2/ Q *6ԺeY u7I.]$QE 0y 1Ȣ$l%DO6JT<b45[,^QXPz 064f{V@>%e+ۆV?vshEm8ߠV9Q?=\6*H7bp6/,g8n . .0b47`8Q^n"ȇ`B&;;j?tLfd;#n ` LL`b=`&b4@Y<&r"ʇ`h,c>zL@O ci$ppB jb(lzҬBҭ܆D(&'kNؤ ondoA+O"t fL)G'p) vzEU Vf)J%*XMZz< bx*!-rBkGU @U੼jV|( 0zn!S2!'xneVoOZ)Zq.ԑԑ-E[G O,`b&-'@r#&*#7~s & #>(L7x"S"4@+"i Cx(j?~Ȋ,,Aa,fkf|lcFB D fF˨(WԐ DDmΌCbnEH*0 0  ooؘ  1M@+u-x(d{z& ck(J+Ր d, /L`8/1 [  Z0[@ nⳢ&I+&rtUrb.'Vz5z 8:έMS4(ž4/0`e0/MEZ.ނޒcDB$8k}719J!_HYQ,8s8=[ Z s8Z!UcBP"e$8@"T] lȸhxhPgx@p0'#:pC:EҬkT )Cd)n