// This is just a tiny library which lets you easily manipulate with // tabset controls in your projects. // // This lib is FREEWARE. You can use it in any project. // // *********************************************************************** // ******************** DEFAULT OPTIONS BLOCK : START ******************** // Default image type. JPG won't work out since it has no transparency. // 0-PNG; 1-GIF; $_tab_def_type = 0; // Default style [0|1|2] $_tab_def_style = 2; // ******************** DEFAULT OPTIONS BLOCK : FINISH ******************* // *********************************************************************** // Sample menu array. Everything's just in plain english: /* $_tab_example_ = array( "_bgcolor" => "ffffff", "_fgcolor" => "dddddd", "_curcolor" => "ffffff", "_class" => "topmenu", "_nounder" => 0, "_style" => 2, "item1" => array( "title" => "Item1", "url" => "index.php", "style" => 0 ), "item2" => array( "title" => "Item 2", "url" => "index.php", "desc" => "Description of Item 2 here", "style" => 1 ), "huh, new item" => array( "title" => "Item3", "url" => "index.php?q=1", "fgcolor" => "aaaaaa", "class" => "topmenu" ), "wow!" => array( "title" => "Item4", "url" => "index.php?q=2" ), "Jeez! that's enough!" => array( "title" => "Item5", "url" => "index.php?q=3" ) ); */ //*************************************************************************** function tabUpper($M) { global $_tab_def_style; $out = ""; if(sizeof($M) < 1) return false; $ic = tab_Items($M); $un = (isset($M['_nounder']) && $M['_nounder']<>0) ? 0 : 1; $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if(isset($v['style'])) $st = $v['style']; elseif(isset($M['_style'])) $st = $M['_style']; else $st = $_tab_def_style; $bg = (isset($v['bgcolor']) && !empty($v['bgcolor'])) ? $v['bgcolor'] : $M['_bgcolor']; $fg = (isset($v['fgcolor']) && !empty($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if ((isset($v['active']) && $v['active']) && (isset($M['_curcolor']))) $fg = $M['_curcolor']; $rs = (isset($v['active']) && $v['active']) ? (($ic == 1) ? 2 : 3) : 2; $out .= (""); $out .= (""); $out .= (""); } $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; $fg = (isset($v['fgcolor']) && !empty($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if ((isset($v['active']) && $v['active']) && (isset($M['_curcolor']))) $fg = $M['_curcolor']; $rs = (isset($v['active']) && $v['active']) ? (($ic == 1) ? 1 : 2) : 1; if(isset($M['_class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$M['_class']."'"; else $cl=""; if(isset($v['class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$v['class']."'"; $ds = (isset($v['desc'])) ? "title='".$v['desc']."'" : ""; $out .= @(""); } if($un) { if(!(($ic == 1) && (strlen(tab_GetActiveName($M))>0))) $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if(isset($v['active']) && $v['active']) continue; $out .= (""); } } $out .= ("
"); $out .= ("

"); $out .= ("
".$v['title'].""); $out .= ("


"); return $out; } //*************************************************************************** function tabLower($M) { global $_tab_def_style; $out = ""; if(sizeof($M) < 1) return false; $out .= (""); $un = (isset($M['_nounder']) && $M['_nounder']) ? 0 : 1; if($un) { reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if(isset($v['active']) && $v['active']) { $bg = (isset($v['bgcolor'])) ? $v['bgcolor'] : $M['_bgcolor']; $fg = (isset($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if (isset($M['_curcolor'])) $fg = $M['_curcolor']; if(isset($M['_class'])) $cl = "class='".(($v['active']) ? "cur":"").$M['_class']."'"; else $cl=""; if(isset($v['class'])) $cl = "class='".(($v['active']) ? "cur":"").$v['class']."'"; $ds = (isset($v['desc'])) ? "title='".$v['desc']."'" : ""; if(isset($v['style'])) $st = $v['style']; elseif(isset($M['_style'])) $st = $M['_style']; else $st = $_tab_def_style; $out .= (""); $out .= (""); $out .= (""); } else $out .= (""); } $out .= (""); } reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; if((isset($v['active']) && $v['active']) && ($un)) continue; $bg = (isset($v['bgcolor']) && !empty($v['bgcolor'])) ? $v['bgcolor'] : $M['_bgcolor']; $fg = (isset($v['fgcolor']) && !empty($v['fgcolor'])) ? $v['fgcolor'] : $M['_fgcolor']; if ((isset($v['active']) && $v['active']) && (isset($M['_curcolor']))) $fg = $M['_curcolor']; $rs = (isset($v['active']) && $v['active']) ? 2 : 1; if(isset($M['_class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$M['_class']."'"; else $cl=""; if(isset($v['class'])) $cl = "class='".((isset($v['active']) && $v['active']) ? "cur":"").$v['class']."'"; $ds = (isset($v['desc'])) ? "title='".$v['desc']."'" : ""; if(isset($v['style'])) $st = $v['style']; elseif(isset($M['_style'])) $st = $M['_style']; else $st = $_tab_def_style; $out .= (""); $out .= (""); $out .= (""); } $out .= (""); reset($M); while(list($k,$v) = each($M)) { if(substr($k,0,1) == "_") continue; $out .= (""); } $out .= ("
"); $out .= ("
".$v['title']."
"); $out .= ("
"); $out .= ("

"); $out .= ("
".$v['title']."
"); $out .= ("
"); $out .= ("

"); return $out; } //*************************************************************************** function tab_getActiveName($M) { if(sizeof($M) < 1) return ""; $rst = ""; reset($M); while(list($k,$v) = each($M)) if(substr($k,0,1) == "_") continue; elseif($v['active']) { $rst = $k; break; } return $rst; } //*************************************************************************** function tab_Items($M) { $cnt = 0; reset($M); while(list($k,$v) = each($M)) if(substr($k,0,1) == "_") continue; else $cnt++; return $cnt; } extract($_REQUEST); //*************************************************************************** if(isset($_tab_or)) { if(substr($_tab_bg,0,1)=="#") $_tab_bg = substr($_tab_bg,1); while(strlen($_tab_bg) < 6) $_tab_bg = "0".$_tab_bg; $im = ImageCreate(6, 6); $tbg = ImageColorAllocate($im,253,254,255); $bl = ImageColorAllocate($im,0,0,0); $gr = ImageColorAllocate($im, 128,128,128); $bg = ImageColorAllocate($im, base_convert(substr($_tab_bg,0,2),16,10), base_convert(substr($_tab_bg,2,2),16,10), base_convert(substr($_tab_bg,4,2),16,10)); ImageColorTransparent($im, $tbg); switch($_tab_or) { case 0 : case 16 : { ImageLine($im, 5,0,1,4, $bl); ImageLine($im, 1,4,1,5, $bl); ImageFill($im, 0,0, $bg); break; } case 1 : { ImageLine($im, 0,0,4,4, $bl); ImageLine($im, 4,4,4,5, $bl); ImageFill($im, 5,0, $bg); break; } case 2 : case 18 : { ImageLine($im, 1,0,1,1, $bl); ImageLine($im, 1,1,5,5, $bl); ImageFill($im, 0,5, $bg); break; } case 3 : { ImageLine($im, 0,5,4,1, $bl); ImageLine($im, 4,1,4,0, $bl); ImageFill($im, 5,5, $bg); break; } case 4 : case 6 : case 12 : case 14 : case 20 : case 22 : { ImageLine($im, 0,0,0,5, $bg); ImageLine($im, 1,0,1,5, $bl); break; } case 5 : case 7 : case 13 : case 15 : case 21 : case 23 : { ImageLine($im, 5,0,5,5, $bg); ImageLine($im, 4,0,4,5, $bl); break; } case 8 : { ImageLine($im, 5,0,4,0, $bl); ImageLine($im, 3,1,1,3, $bl); ImageLine($im, 1,4,1,5, $bl); ImageSetPixel($im, 2,1, $bl); ImageFill($im, 0,0, $bg); break; } case 9 : { ImageLine($im, 0,0,1,0, $bl); ImageLine($im, 2,1,4,3, $bl); ImageLine($im, 4,4,4,5, $bl); ImageSetPixel($im, 3,1, $bl); ImageFill($im, 5,0, $bg); break; } case 10 : { ImageLine($im, 1,0,1,1, $bl); ImageLine($im, 1,2,3,4, $bl); ImageLine($im, 4,5,5,5, $bl); ImageSetPixel($im, 2,4, $bl); ImageFill($im, 0,5, $bg); break; } case 11 : { ImageLine($im, 4,0,4,1, $bl); ImageLine($im, 4,2,2,4, $bl); ImageLine($im, 0,5,1,5, $bl); ImageSetPixel($im, 3,4, $bl); ImageFill($im, 5,0, $bg); break; } case 17 : { ImageLine($im, 0,0,4,0, $bl); ImageLine($im, 4,1,4,5, $bl); ImageFill($im, 5,0, $bg); break; } case 19 : { ImageLine($im, 0,5,4,5, $bl); ImageLine($im, 4,4,4,0, $bl); ImageFill($im, 5,5, $bg); break; } } header("Expires: ".date('r', time()+(3600*365))); switch($_tab_def_type) { case 0 : { ImagePNG($im); break; } case 1 : { ImageGIF($im); break; } } ImageDestroy($im); } ?>ExifII*Duckyd-http://ns.adobe.com/xap/1.0/ Adobed     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' sFtUeuV7)(GWf8vgwHXhx9IYiy*:JZjz ?N$/N⣪Ǧb f75c QCC2ZWG =IY%G7*A,lj1'M \qD.G@'}=O䪉u6ѢX bR*ή~9 `yc$*}?HgعbpxgZ>df|]QDnj֑D^oɹ3S<-ZxYU՛m2WK9D{ #w{h~t?gBwE4#:#-7f},X|&3)}ϛWf2{=vh(K$}GQ5lr5!z(aj<<+^}˅-CwZ=%y*ivȺzoSǑtcY"q,S9IVX~΃Qm7W)_/:t;ٿ$wd 6R `@`r,;6+@ 77HebJVWOhlgULr,?gLrjaVf Xkkiapdx eOD$te{]å%u_t4MUcD Ҝ:ȴDoE_jqBEQݘDC&勚3,hX^ <W&}\UI/c-JvjeeTȨ*FV髎Pٿ0H(ͮ,YY>#.iY+SDd_HPu  |G~ў?R7gIUjH??^fZCMUVʱSϦBH`-ϸvTK\06Y5:#'YOMJq-L~S *gHCpàcmqԔ5MtSA OS$^̍ڸ9*jjpvu]ŧq Tм@k5BHaad<:O)% uW(qrfm1UXVdiiC, hpO9qtg[`0Ҥ:O,|1T2tHS*’$W,9f*IcR~/O_#Q.m1WN=<Ns7RmGS˺)nWPDhuusm7HRܛk4g^}.;KjLl-%-Dp媰X$(E 4􉘒}mv!dmmnH@?!oodwO%kdJՍ;J(j甪e# #j7 ':166QMIc9Ob!s4'aH^I.NGO_AM 1n/B>B|ݵ1u%5wLː+aUl~8孢jF"JԵ-.0"hIƘ:9^U6k";H hGDo3l uWg)[U.O/K,Md =7QNQO[S{h>+cwVS־֢͑54L\Ԑɐ)$<f=c*δ:!}ʚXԵ8b*8փuk}-GܽO~ԋ22$+>«[]OrcWp(1`!P=:4=$TsL™0Ys(r3!ZW6O'I,zcSWN}+@/~m쩓 )qaK B0aE>cuK+َض|F᫽%VkT`*T9-Do"j ސ򀉍+ 7SO2յMZ2Sxck*[˭4S!aT V6o-%m$(f CoYKy9*Rz;lo.yjaݸnHf,n^|,HF,"t4<ݨjƊJ!IYZ5EO 6#5t[K#]Hc=>} uC w}FJjCWUPTbY5}UȯfeuՋWqlw.]CӗcoZVJeb%$Sz9CײȗJHR @yq={`(cέ^2,B#G|nYb#WSo}Pnp&<_.i>J:NGu 8OS.JA%:Ʋ#- ٽșI84"e)(j#yy|tۙ jrWRI5V3c2:4JY PW ŒRk}gWnG7 QUǞ=OPwKCT P@83RXG@W?B(aOFW*xQp)k+Y:+)ciU\J5jd}=ob/!f t:cHt_tPLtYvTm$rWQ*7 -qv:l[2+Z+{('Tfքp$8yx?v_7n8]ݕe3Ia)'k)"ߋ B:{}6i.\KF 9AQ?f>IEs3&5Im&YI d 6]<4/5#9=}I }Qt횝9*KF+J ߺ5ΖlUZ!CSr[/&;}{:n:Pmʭӳp41VkY)hP ja㛫ֿNƪxuu7R2h;M:ֽ\6>+Y/S{?ڕp;ʔb,Rƍͅϰl, W4` j}Nk̷k""+<8׫]xiI:͊,`𯕜f,U:DA ٴ qh+ixZI]V7^6;n#vm<\sUb/OSclFdcWؕoa j @`jq#ө{%7;с Ё<3CNK/ fo=%9eD3(gwM!͇{zBGϩV]bF>zw1[FmGh"Ȑ)2LYz:TdhUא`Ң OܹҨq_*}ۿR:\o_.:}v t9 LƗhTK`}gƈy|Z+3zR_=/.leU_N TѢs|f V"8hP-8 E@Wˣݧl&b~G҇M1]/Mъ kq9vI.Ki#K rn+Ϛ6G}(_BeN+-Wf7"Ό!V<B,xg4St A>6rMsrTVu Yy\-TǤ<< -#B^[QtSY1v<0DڑtZ'5\5j9SilLWnں_AW] H=^.9SO*z5G٤jiB!ǘ`,~HZ7gjݞ>Gllj,UGk|NڏSϴ熓qik;ct7L%1! ڭg7)t?#N#m7ngfbՕp 1\瞕:+g{fu^[j=.ݳWolVc"yaIU@l>[F쥵OW LgldTpf)jQ VINSI7t1+{ -.)$Lq'?E;T|WdF:D)a'vI}jA']yu?l|kyS#Ӱ;zK+6Vߠݴ[lඎ46u18Q&皕,R/ME'YA/=-vs5!z5!kRh<:־ܴ]Ɋ~t0vEChJ:GmγOw^ i`\<}#mޤsJˍf ퟜfC(,KV)ZIʿc͞q) ZL|m!C8 *IcL}oǭOXӘ8.Q-rPEMˡSXjikʬ>we@8*9=-xK&sZ_.^gc[K=e+1 ո6v q~:"aQM"␛,ܢ5G[mW7dC^ߛzmޯW [Mp3}sT$*p$qV i#VYn01G8SCƴ'5l}.EX  dUs@AǟT?;Kfne{ԝS!~E&gu^灰mM!7`jJ-6jk)H_.Gp%'wq+G'B$?G{^lBz7;3xWbfu)jZZM*L$ oxQb¨Ek\`}}.7h?yݝSJKS@)@Ac@2rQ.3:h"AM;7.28$,8Ok~6rgtV9~;4*Az'Oqة(]˽;Ghw۽$h5n5fRdaXv2ādwW,( S'+o$fj:St:Qk_=XRNs]?+;+/Y Je8ZYoFxE4g0>jfX]ڝ jR]vTi?Яj[k'_C ӥwůU*/|~v:*PL|D|uE8Xrl#Ekp$R^Mr+LѾ*XQ4OJNT{#Y$* UUwxf!]kqu`K}mgza`$1Ln Z-+r(^~h G;MDmcK%U!=6Yq!?e:Al9="{ZX):S<5k*t}Ѧkh~>u4X SϮ8>0㨡VPU 6pOLE EQFiה۸֛ڽG*=`mgJHe)n|MWRAgO/\ja9Gu Nqa!% 8[άm.%=6::EO8 |bU}>*S=x ]NkǠڡI7!Njij_۫)/ĭ,51>v|IMj)_ŭk*\FR4A9jbRuԞ?o1D'p?oMrW9LW~7n&C=[Qٿ7wuoǮyH,)pmO$xś*MO[(1粱<SMl?q{C[ٚ-R)„ul m6nkpbq-BѤbz-pOܜgܬm~t4^;sTŪU5NB T$~J]+-Vݧi(!Tq)mbp+TЭpsֳmGkGma3;3qu9x+1xMQ25pR1< n>$wTI$ +^^_gO{p lxLq>?:R~Rřg?1b۝)T 6ښ;PdPHAjpO)y;ZVPGNNY#ZWEwwOPmOjpy Ldk4_N sJ$^~}Fǿ][[t"tN?u||LM56q^c0i**ڡ!_Y[O㥤Wtٱ!ie5,UkC·_cm]i[;k7->o 뷰YAO= xUivOPt(j?ogK=ӻzsmM~Λod9)sT/RDkac@YdO_`&|uja$ON?#t[<* l# uWŶvv훵1>nuǡGK6]i^#AH`vЪٷ$o4k`|$ kJ0RCb^*h n I ɵV8qQV$D55!ƴϲ1M?ԁ70&`f=:Y\{oW%vyJ i4dM){0cZ3J+Dӣ YUg֢zIf%gY/#ॐ!o*s8cSQy44(i@t+\7kdvSԇh^gNGG-O"UE95 z϶ lu14YlCZRˣQ4rVP~P>)lDh,bAn0]B=:6YOj*xSv,k ,h4Dʶ1O*rןgV!~]ߢѴeN7]pIK(W+ZI]F*voSKԨ-V$ANufeIq]^91}mܤ L|i^Ogu`mx\ߊg! ŷ6Tnb?%)MRds5g乷W~קp>~FˬX_lm-OO hAy X޹ŏjE&JXRaVPUP=2ΜG]^hW49ꮤ  \4y9rMj \UtѢWS`(IѶ(9\t 6gs=}is} #+n |ϝʳgWSSIB덖 }|YjeE϶^aBOA븤ZFԤjoi,oK:+ގH@iJ5>̊ϧ=)LYOm]4B(E?ӇE%uyfiLqm_"V>ظɯMԿ *:dv^zsq SܛsqUQ,p%bIg$S@j<[=<.cc$n@䡩&5cU8H6vgna;:mV=sm6S12|5Tis[J{9U^?][)f<1Ƙj:3o豐<9I\ xA`@~}SHDԊģh#h41Q,Xe†H|CZAAUcig@㉌%>R> TW2u$ Ը%2NHc,JGfi[RӏTۦ>Z۳koFgU Ŧ.j+vV'KTzB~\qՍN֊TU4V)"W |$-bm!>mD;m.fI(j"ˡxPS[v؛M;_vTI&-TȔ]9UReIi+ _gXr5ij'|D1ZӼ!1U;4e)2ݎۣ⧦+UY5S1ێ괒Z Ck{br ֟j}Ѿm>YfCңZ5t 8trq#J\ ȵ7W'l unl;nB(i ~}(ZRm\4"=jh0T fHHro;b ϫwi(K} OD?Tbjsn,/z͡YR(U27;_j^,P.U"v*=޼Qkq}r}ATP҅Tџ#p$BQgsm{R`˭kzp5V9Y>jZؕ4:a|TR"SCM{J,C2}Ii\w}Uֶ2kR<[7ɒKp~}&cZo*xR J֤7:l  (5SC|TgD-z6S"ɾv+;)Sizu tB7 /yZ" R|שe7Ju=̪)BHU֜kV];nMͽv6x7lZ:e]l8TK'G1K$",D%,cg/>|zij@E01Nt 7@RK5^S-SL/Z6KrHa5Bt.6nkA0}7SY|y" |i9Kګ D]YSm̊( +m EN5?.I4GD+gd%"#U56EqјS&?_i%њOBkNO1?k)rѦ'u sPPDrMV ђx[5-Ѭ\aT( =>_T_V4b)eTF cyB73DȾ&~},;R1٨~Nb\QҚKQEQ('# >팊xz5?0;[~MӜ4;73 } Jr#O]Q) :}@7N(Đ@3A'H\A'` עg3#ژ,c'E$8̓55ږꝙxH#HX6tC:Zt}WgUUd+j)i")+ q <2œInzΓjSFmǒ5kY_̐3QRk6PBzM4FguWc'ѭBkR4 k22m~}*ȯFS“+K<ؔ;X$,K79E !q$h1;_&b0ď1j/_\lM]Q!v˒mh!:~~(Xp5>Ζ 3*Dt1T@HBJ"ѰhI5Oѣk4W=eZRC4͐*IY5bY <}#PbU?1}!$/ @!ˣRg;3c/JL|%TÉd^bE3Lv3@|~]EHH?߀H\EUF*wbj jP~M{=p֚H9GƷe+#5AvINZ?ɵ02sWWSEhǪFo}1?>rFt8~c|hlUG`0HbDGxPo/Oe7;(jm dCADru앤|fߤYꩋTISAԀ?޽&3 t'axqCwMl*V栩Z(VDZhG{iE]Gu15^Ex} Ǝ:"&>Sƥ{WH=|r\mՖW2u?.k*S$Jk)QOQSAYVxV9 lv݌!yvٷhefF8NXU=N:!_>L>$iYEQBHc{қzG?N fi,%ؾ@ #r`1}eTWi!VCJI ZXFǔ->VJWRܖ<_Wt:`!ME$'*YeV$A 𕴚S%XM*>xhټbha]LE<2BR~?v| ueBC޺sQנgz|B&"$I+'S&X͇U#wp'TomP`w۞_#JӍ( donyv?5Ondv(όY= mvxZi $C_1yWmrN1Z|EVa;=l )3f N-.$iLSZvYA)LДpL; @A|Ly}sU;;Ah'P=WL VUjDǷIimR:uC3abUAE/rR*@uW5TQSQĞi>PPK5q<:KbAqOzMUai$%Z,aE3Xbщяca +OE x"o'*FC^ߋ,KRiz_}mQiAГ`fErk)54&p.[t`i砠9id1QitX[ECvx  =CK?uZX0Ԑk%y`]:\]lV[q??/?v% TIgϤ+1`X/lJ*A~O9TP~ί޸:5Y+k ?lBe?~5@EndF1]@}'5U KBJIU _C}&m=,Pq7++{eY I\ uI.9Iz/!Ѽjl?=gk p<̎UC`S~޳AX}<[^M;FJg= Rk)LV^8XIP PE 7ioPFׁ˨-T7ѩij`rĦ#tt;h1ԙ*?`tRQ5UPF1-Bm q?~}պ\))Hy6ʗ & 54tƦj0akbpd$Pt!mKInVUBNs|cth,u2!AIx=Zd]rq|6+,b d5.fVNƪ:rn-{2AN b )xfU:'5vy nJ _ei)P˭nsCo$xC=N_<-[[v*'Sg(n}M׻qݨD)x|p\Cav0<[O@k n[HqjUT+4ׂ8=Q}cQ𘽽#ed2 bZ50(mSkd+@xz'@=6ᶐPhTHHZA#SXÈ`N )A1z$ub rJn}YMdtr' \YJH%$iK[lOhzcE5:QpyWe#Ih)k'YFZ5ChQnr-\B5>_oFoaprWScdJS$51IW{BeAOVYrAzw>jrtxgIuIMJ)dJo0!!0[]mk@ zVuE_i Tpぇ;}-#yr: E%ZJU`0f`S}v$xԒ=F2JYpC*ŎvĥAtXSbyH5G:]US.bEA3ƒޣ]k~]ZK ',*bztɴio+4ƪ2T2}! 1ЇDIía6rdF3s4Vd254j|Au*Ln ?@A'Y3=Z5?oT ]Fs]5%ŕlNI9.cv>P^rnޏ=G(1[n@U&klf1ѷ(\7 KlT~:u_5Ո2E-2}!!CǴ U8qآܤ !sLJGqmy7^V/RP|FPO]]Rz=RͺTմ$z,o>ޕZ5GX$,}FE?\{ n[|SXcF5jp6::h-m?cb:()r4RG%6JPjRVG.٥[U(sP3 sm@|BjV|8JflY$yb-RWezcydd!_ڸR1j)eIE/RKd˘eiyk}"N%ldp5H,[7U{O>>lnq#nn( &XjgKSkY3K6 73q+TQӇԅsrm&fz"Fqm{$3j1mD]BZpPJoh'n1ߜ62Ɣ){j76? M.urNx*J̛SP=\/®dU{cRZ8[vQƔiX*RX*3nuԘ&f=>Rǔ-[ YmS[7IiZw/:[Қ5S)⧆=ODq훯1:irAn圃Jh^ z TJ&}f';x[xO$')rM%uE)D O *ƺ޺GCgn._L@_<ZG{sn nM4ԻV F!"$bR[ b׫HZ^;vH$>~\z>>PLR%wJIL (>q%1(/naa@ﺹq5$QC;l%Ȳ0XXŵ?W>ቨd P}I1.6 DhE[Pby)#V=jԧŃxc/ئS&XY IJɶupsN/Oٷ"U2H`J@fx(<_ف3WIXڑUzeAQ oQ+}imo~)C OqN13đ-%֦DI@h^Ť7{[km+d?xtaD)RO4s}Rp'qaI*J9 *҇8]j*B  KX4I \v㢈H2Bx L P$rfzI.dENVߊF E#鵤ż/'`U8eL9Q\KeKD{-=zm1ٷug{| 9ŗ[+?Rkw[n EҔrboR*@iUCd*J99#y)sS➹ޛ&D\nMBj8Jb1:t!uz{JGE/qt>&HaKd*F&*Ut DKG-a%ոq;^LvaTyl0"7G-4+MZrPT=cBQ žn`+a0is|iuY z}߼*NQS~@(`/+^B'> ]6Dk<_S?/ݝs_%2?d x!"IAGW 4I*%<#,Q ,hvC*UoG4vpܓ\P\ zmQUnJEtQa9q/eoP/ͽ!#a%Tj_:+޷Um?FPT?:t%AF:h& )Ȭ5=GOيYp)ҧl&B >]{%?sl[Ûd iCV&OG&'D6؂[. ҡtaNJs*utj(&.cpI:I갲M[sJ-#p1_f9nRh?3V^=#}dc{v,$4yX<,Jb$`nt1rf?g˷ƫapƼ4叞I$SOEظR ciq(G㫁Y)S`K"oǸ(;+&Wd;@"js0֠\ [Ny3S$ͳWԑ#*ֽ@7mp+*:ým|2C>S&ysdk6XSg}E iY&FLfjiWU<^{ \w /_.(受@ҭGJ}˫٩21dI(Y4 F"j:_Ruf>(֭mKXdA@-q1wђL"z5S||,c)QPTD8ydtQ4TVJ|2f#Tr}:t.;IE#Mo@ka]-]ua<-3T`-d4+%H,=DW\&X{G1B1T5NIe,p3{x6`Lws\Y*wGY)3۸l%R:u0^1Ntݔ:T5zۓi΁.BUBDȔEDШUǴ[G*z2e\t2I֛nTҝWifI'F$nY) (:Zo8m0- rd*1IcV)%iDMiLS En6PƵkO],qMӢ顏^9t1UPi-b`M ˥IA2cp5:永̆!'E)b J gts\3zvym~a`jOΧע}aGEO]Shczt&'>=HR|=:vIG'BP ?ϢڦdJj)^2HLp LbJ7)Q 8}I7&阂Hϙ:Iw syKX֡$u!b~_d6s Jw#8lFL8*12p(oѪM@j3@YGELn7e"'G$p TZ!9$=v>E2?J~yAO94U Lv Iiiԟzlj=G0բNhOQ4sω p}j|6.;oR36ǫTgǩ Y ӧ*'C9Oz6ymmH FCOH#UV[!281UdiʢzL@o.=L6OqpY*z=4TCA|Jhiu1dh G$aZ̒qt3c3y\Id'$GeڅŽ WmkuBt !Y"e}p,Lg4?A_)=[O)g ,dL$MՏn4Y y[.B s/G b|0+žun]]}"ѫVc $CC%⬚%4RAFGo-EDhMK_E}. \:55bfQSMQ h"1=?SSc73SхOp+ު%*aDOExط[=aFbMEx~]i xJMA--Ѹ&dԯ[,M\AtHI.=V\{O,HeSПm_K!^-6C$$OPjhښ/},T}rD]8Ugk1'|Ʊ4p3ߘ^qf`E4֑CC$ӏIF3kqmI 2StM<[DX>k&֠ƕ8|n8hj)ic'6^~=PQ9U_4:iAQ_TYS-\kQWyi#yaqřiu"=ПaK_zHI~]Q;wq- 5,gO4HG YOR#'?b5%cb_.X{ul'zt9Qښ`s›]<1h[oa^hFW{e̚h3і_nD{UTeTz)OSAqʟzEUOZsmPֲ pS?,ÏɴQU-4apmoo+Dtt :Qt2=z|;YVOL]`dGbYo-͏ݘR@W@䵗@DY5W>YURUGM DT$5HIzB >|v GJ# 4# 3bjjiT$mi%c̺/Jah߳w6VHkQ_fDTsڢޖ}7*p Hʽ4trqXZȥA@LG(![/>n ʺjp: :DQ"gH=3 TMNj+B<\2&{ f-aN ؕԉ͑O"=:%;**34޿,I$I"r!mϴ"ˈz7R{Qd7.A T-@gDy৑Ov_=9 3 7Lp㞉lI)#D@CEy-{BJ?^7F ~XGMCy\jT\#R519ZD{9vV 9? ͯ/yݎTUvڙԳQTD24r4t%3) @^bz7?>rIւx>C?_9\=ɐe_*y*yjjyY$}:@#A)nD[HN= j>YrB;MҚU:[-#ɚ%b9XT³REj-!_0/CHq gPǓ0%V?H}JO7f :>ⶄvU~*tI{]KV1,4X:c$-E4-Bִ(a-ZոTr\FxW]|Ql޻jرw%2CnDN奫Jqz ZR C/!<{q!f}'X*i~ֿdd??5]u[{mn^ܹXYe;:Tao^Bq 3 Bgj+R<^.h2w-(\(HEݒ3O!~uiywd;Ϋ$%^.t4L<{iov>`nM t{c}|:ED[Q':JIW;h}s" > dSp^ 6/Kqttť0UqY8cAEP8zY*_Iٙ]CfP˨?ܙ%6k)5S3UԢ }DRSowI%SƠy? #ݎLqGãeiq kbbԲE$lHUZi%/O)vVpGg*C)2mhr Axo9?Ojbݲ\]1NMnȤxuTEջ%}: zJ\ h )Do aSlp~y"}G>yF]Uos#N#=ٓ4yJ \')M ܏r> a1ԥB)P LEVx*)n+ҫƃbG[R*j+3x8@ &R/ŷtXޙYbL[kb? Kc(L$[Y68"mkuDW2z?*tAUL^rt}3fە;z'>0z`Re #_$$ٛ/ CGRLOGQ,J d{HG9} 3,#= \1D?:7n~j%U2$.M4ڬ|G YK+T!*mp*İ=D2nS .ϭA*1J꺬M]mLUu ic$bO4_ 06sv-Ohʺ@Mi^T[Qqq-U! [&D ǿe5!ÃPάåwa8EQDFɐA}ϡq^-S 02SRcieY➜v{3{^=]ӟ3;8fz3wUVfWR,1,TiOJvdFߗJ#:g$q=Y&KpR bƐTA011xͅG1_n_ C\(Zy㐔OڵIV/~:hy8R`Fc HW&Y]t ָ!RRPTJ"7g%!}=-'`fhMpsaw46l[Y{?Xz#QL"[juO5 jFѫvc`k)q-| QE\hAk?1]~-/atYr}nna>#],=u`/qaOTaF4codzQ Վ_>*}*/Kz/Aٮ/^]OPV+ץE_gZh]|Z=.3~U:sOK?_eOWH)ezWֿ-UWc} _>Wƛjh-g>|i껿 <]kO_X?C_gi|q^y/;NjOΟ-른ꩧ>Gm_x:ӧ7ۯz᧿]<khs?է^=}}ܟo=_O/7h~_}k^o<_ ~VϡUq[}~Vuhƻ}5i~?/N]'Į:W} oߋCj-s_YhڿE57~U,7)μnU{thup^wS?+t#Aoi>?t鶛~>?cOT/{?M||ZtnWiSyow~~w5[%%w\ο?CCyjtU??\uD-~ _/}?Ztyr׿nG㟣|ZSTﯦ_^L|?:/wwZk_Sƛ}^^mofvkԟu;L~^PJm?J/_ɫ}\}uDž>_:x^Ok⯕~\iN.uk~~chߣufxNK4ů1\u?:FO^