#!/usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2005-2008 """ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. 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. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR "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 THE AUTHOR 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. """ import os, sys if sys.hexversion<0x203000f: raise "Waf requires Python >= 2.3" if 'PSYCOWAF' in os.environ: try:import psyco;psyco.full() except:pass VERSION="1.5.0" REVISION="e0730d02f63846cebb6d4c8b0dad1f79" INSTALL=sys.platform=='win32' and 'c:/temp' or '/usr/local' C1='#(' C2='#%' cwd = os.getcwd() join = os.path.join def err(m): print '\033[91mError: %s\033[0m' % m sys.exit(1) def unpack_wafdir(dir): f = open(sys.argv[0],'rb') c = "corrupted waf (%d)" while 1: line = f.readline() if not line: err("run waf-light from a folder containing wafadmin") if line == '#==>\n': txt = f.readline() if not txt: err(c % 1) if f.readline()!='#<==\n': err(c % 2) break if not txt: err(c % 3) txt = txt[1:-1].replace(C1, '\n').replace(C2, '\r') import shutil, tarfile try: shutil.rmtree(dir) except OSError: pass try: os.makedirs(join(dir, 'wafadmin', 'Tools')) except OSError: err("Cannot unpack waf lib into %s\nMove waf into a writeable directory" % dir) os.chdir(dir) tmp = 't.tbz2' t = open(tmp,'wb') t.write(txt) t.close() t = tarfile.open(tmp) for x in t: t.extract(x) t.close() os.chmod(join('wafadmin','Tools'), 0755) os.unlink(tmp) os.chdir(cwd) def test(dir): try: os.stat(join(dir, 'wafadmin')); return os.path.abspath(dir) except OSError: pass def find_lib(): name = sys.argv[0] base = os.path.dirname(os.path.abspath(name)) #devs use $WAFDIR w=test(os.environ.get('WAFDIR', '')) if w: return w #waf-light if name.endswith('waf-light'): w = test(base) if w: return w err("waf-light requires wafadmin -> export WAFDIR=/folder") dir = "/lib/waf-%s-%s/" % (VERSION, REVISION) for i in [INSTALL,'/usr','/usr/local','/opt']: w = test(i+dir) if w: return w #waf-local s = '.waf-%s-%s' if sys.platform == 'win32': s = s[1:] dir = join(base, s % (VERSION, REVISION)) w = test(dir) if w: return w #unpack unpack_wafdir(dir) return dir wafdir = find_lib() w = join(wafdir, 'wafadmin') t = join(w, 'Tools') sys.path = [w, t] + sys.path import Scripting Scripting.prepare(t, cwd, VERSION, wafdir) #==> #BZh91AY&SYa@0A$`0,ac@}TOm)}Q-`}ڊbmti%I޽GFط4=N{O-;}.;vۓ|g;#%+&X5}iU(E@NЪ5뺇}%gק;Ey7dyӏkkmc>ծŷ{OC;Hv=r>mL:a{Ɍ"0mZi/v4~{FƛHnBOx_Qhx^Gam&!93Cن!a=h E RO%ixZԥQ4637MQ>v@ePQ[rR疶ڊ) cm'n?Z)#`sLˀt3P\=upxR&6;1$KS>Tc+חTc6_sӻmËx.yͻÊ=0F6{Pnw#Vu7<>N$uf*M"sj SXvIV2sxM4*mɗPr7؉׭+|k!$K֦č rI1wfOjTZ+^tȧi')^]KeWA1Jv*+0^֪IE=Pf%)^o!=zjb)C[}XR_ {LѤs8HU$gQ#(m~<[2cߺ8NiSq'V]yqQsb2E {&^9sxè&//C$TlZϴ::#(A.#%5.%GMDo3PѼۇw-A+G?;5M>ǪvjwNDg`KGjKjJƒ1hMNoj2EBotA*wEjn|.[zh#EYKcpyr}#Ne5duR-=J\2)CbD&V~!,\߈sׂc و:A6"z)U!&~H.J^ /Z>8]$Lߕ#H>ߗcfN&s#42"#a7BF"wdjN,Dի5 ͲrsL60Pc9dhb}r#(e!$Z' G;H~,{',&f/_?cG!Ĉr zy6+K]H!;xs z4EsLi#%Ov=C*$bL|[#(>_#((H#%xχ7vjXvӖ9G_t;@",?ɤ01 Mɳ³9S#(/6!kc񇇫]+!©$v]nc͟nd1jEEI2͏nz`{J>%d#φ#%tkb<**hnv]Y\ۋXA5(Sl*ՔAPiqQ9䙆ṵ<~Q?fJ1u.\qxYޤ%]|))Hg =y_BSuرrbG.XWQ#4a{}o6b8qPF19Eܨk{ձwL|iOyh>37Y_$ma/m1]ڈg^^C.̘&qLsnz&vh ޣ|;&~57jN;s7Y]oV$OUR߃~ O >|]uػ# ӌ! @lo8 h!ԻwGgcJo!+r2r*#%C9CʎO2W*XHo]l@Iꇉȍd-Xrj0LBa#(tU'+vFmjKu7d!'/#( :A+[`fMr`O> x,CPɐfvxN}SQK5lf>K/6خe76z袅<:;,ݙO: 8$$Ƀz!7plj)Umuը}r4P'pT&ɻ>iGglsܳ$3~(,#%^X[ ytwJS#(cS^Z5"Ӣw/q˿՘d$.lE}mcGӣ?.ԢD0ddu\x~޺(t18JOvce 6qEɨf;\t$">S=(k:FC[]G ]y7na|,2@2n0JXD|`n#>oƄ-27a^GE/*uJ)TmƊ!Gυ}~M &uBNme>1<%gϸ#%f-[N\M<.xJeB+ WВebL0F#(Vh_s9ţs(UP$"3Zs@ ShY.-@|(׆pXu& yAhVxQLo쐌"]?) u֓DyAv<_=`4²yJp1s18{MMC *pmuvh39;)~1r@ZCELfhAɝiU#ZmufU 綖j2i܄>"i,9iYCVF79zѫeeDqh`e&;Zd`1Q,%@FD|ј;os'_)6ynjÖö힜dzg,ddg--{+׹E (讎3iVj<D&y6=MMzi+aoRTX1hv:>S?y.'hwgAd.oͺnPd\V//Hն=EPmq -):馩0&Q CI̧e|w]@ss[Q1f^ y#|ֽ79A}(ފnYHZUt~#iN}x;g^{t;Eqa9"rW]F6}w)e\w cMvl+b_Ϳ5c]tL'"_g%ƽ6בmyl CYes>3O5yݗ&a2%?u:e`'MCh'S:Yw!! :1+W=? R!:nMɬχvjZ;@/[ss%M'B7{`ܚ.N*SQZ#ѫ~k}wC_#(hLTKJRW0t:bqr#(#(N:;gw?Ye^O=U|toЭۃ {qtѣOVV44H~޸#%C\K#(8)xQi˩5cō2"}Wh3\2s>{dݹ/BkuHF2B[~9T+8wh)!8[2z3Vi~(##!$㚺#%cˏ#<a*A,PjW<4Ɩ ! ^b_aA ~zPsF 9d{!R~Jn!?jC~T#8χWI$P%&XYUj?q1Ʊ`$fH0 !Q!&B-ICgǗĕ#7J]{lsuUO#((7GnW[1CSo#|*YZ{LV>qڟ#%%=`;iϞrQHπ[&y^ҽg3"mwBHlF˥1\Q7hg"(yDEdxGƉ-}C:%v)P'i-W.lN& gd׶149L!NR!L$QN~Oks`%xȤ#%BM)Bø!0!Qr d7<\Ich2lr *QȈSϷ&R ٛܒ7J+)#(6Ѧ5^>-8˻|709͖6ʺa4] Ӎ^=vZ=Zam]pgZ;#(39e{o"]ҼWjk_#%g}dz(wbUݻ9p; <rNU`G#iSBON\q˟*S4guYM؊,XW/fV3.\σVn/'gMl1߇Vn١^pѷ:Tx留VXy"pȚ*<#uN.cT{e?Q405F曧HLSo&Zr?ӫO\bz~c|C/OcyOPz?O8M[|[ Y+7件qBe4Ođ!8J#( qI@h9c~|樦fLbz-6okS҉۔ohqW2=˽)_ϐTl{ֽ!#%\[])}s\V5XƏGCFvc͒fbeY}}L$Vk? w~gxBw{ko]"&&GIz9!W~ ;{\c'(hy}fӳ룕x4gO7@t$ oF Bp`AB6(B#((P@!,*O:yMm.$~o8O)L *D woWxx[uqaR 0A钍B\pt5i=Ojٗ_t/<շD]vi]'Z%oVEmQ %dL[GA"bzo\I"RG Z>ϖ/I z^eL^"9 ȷp/8|;~*QQc⛹#ktJM{I$I+#(!ڊ⏮>9'0=%E\qf{tyޕ6)ӏ2ngvKČ @` U%9S#(l,)}}5j~iy֚_G镺h[ƒN)XW5saUN\s("z8sSqF>KITA!f$lTijߛ,"H蒶M1eXDd3`0S٥8MΌLa Jqʎ:4h=6;(m";nըA63eceƛ"R%ACfT+oO#()LzWA,zASwgJ8sDkº{[7o7I 73"M" BKjL / 4`ȓmtt4UP6- w~ow?6+ HQd#4-d@$n0!/slG QK,RF128fʢ0;f14aq0817;vxy4hP؆> SMs#SmLg~rtm8֪}:N1h}:w3E*  q:%c.ιfIܠ_<:L3pPc|i(Z5pf-ͱa_Sl~*<'z)qaLٵNw`Α/1 xf-mz>RE!b, 9EwPs,?ٽ^6{j쯩+xoM5#VY$ƮZ9KNl`+R hifR0&,,̥6ne]_ʲNhx\iosuַڳiHF-t>񧍇ZNi&jꩬ_HEuꭽqx's*58q Ey3{(GwyL1H9T'nOw&DDZ#~-c!مF(0Apڴ!&Aq:l񍻽dAAhi"xB١|o0`}CCY݁/fnK?}4w/O~RC@U}ǚq_G}io(;wn?]jxQcynaXC8EW~]v6#%|2s=יݮ D$$HfIyiM/9Os7DdJ<Ť=,*S3O)5sXu@]o FX-#L"Nywn7G|zfy" +Z8'h/ֿNSChunJ D1ˤ\SmHZWV>m#(N+Ѕzd>p/Lv rj޽qub}z$fG|WV-n<} 2DᬧOӛ9fy./S.e19+xU%ffhpV;͍P/D8F #(_3[wD$u;\RWS$AW~ݿsݘ׌XiLo%~ޙ.HXLCFy 1M!Aˁzןol{#%:xf!Ԙ3"L5xTY)R %VnhP/ ŏsV)Chyi{X>qnLRJ B'?}Y&~su#%ݥ;fQ5njLxITO&NXEy<-5UtJ_#(ug}kmg̮j&ebϔ)_:fk1xZ썻?F̢e52IY/ousRAXai+x!WM;xeS^nʼywɶ#zm#%ޡ>x_dyʇQs#%o#s\+7㩪$'pYPa#d-ܬ;$S>9Dv6#%pxGk+ux:DM5w5ߊ~筶/;Q>1kHtAVtbJrojHA5cJXI}{EЄ(jlx;5`ݢ r鏴0q(E=&PM{3sfnX$Q#%J\Hj,OJ8ĵme5:NOU^CA+pJ蹒BKyz)6h~3Z!_ֻᄒ|?f Q>UJ$۞&_P#SVVN2Ul5AngtRV%ʙ}d4чB?~͙2Z71Ɨؚ[Aer^J)B"]oףJ윜_kcٕ6cDT஍hP4#F>6pzO>x ;guY/|BAʉC:N{6CTrCJȼ5sj%/׌~oMKqz짧hǭsc<׾I48"w*oȮ.Yqh²yLT|C6s ت|E_E=vXTISN˘tɣYʴT3cNo4Nܙ'O=x`뚶;XYnp)šX(tۺ/nyPrN*f#(JQ{hlee#%uNmbeͪYdcr<*soXg[9nya0܏u}d'v[IE}VqΪa#Uoy%⚲egfgnM#>F72,^>80)c˖GtyjmmKMc{֖K"ۇ+*ָ3NU5|*ՔrX=BlNXm3D%ߺ2Myg_z|޽$E#[ekz#n0<(IEܰύFY0u */\Tc!IY_,z `i7tsO[i"沿k˄kD:<3TiDErܳY⽵#%vǟ~gy[JZkˎTC?Nn4U8)2:|=zt#A0KMpL\oTskΒEVF~# 2Ja.75gs8-h;jiz -je_SQʤ3Ε-uz{u֕úz~E_n׬=O ŴXUERT7LI5U{{_qpUӌmDtɔ}' yDUFθFVyQ>Zy-_%\#%(^LJKY?L[q;fR0iv/~ʡq,-|"Ϧ"-d+T>Pz'UδG,d̏4tk4N-y︞X<8üBB@ 2]B4/*{+F&wZKlw{+7>ѝǣQ,LL( R~XV,>."]eT(ϥSxWM`6#(COa\Pa:!Dݺ_a V mʏ殻ŻòC8Bz#%4ST׿y"f9b#*iQbG0ٶtWa#(I;6[I|hmAIcY:Qog7I-q8n:>7,#'Go0;)rv|[zY⬏>\wHm؛E/Q5-}bއ+il8f/Rm%O:UWcaIRHQdNuWT"y;LW9,>Y]SA2Df)YGo흴)WU(G:\CLzv`@я]?>QY)ZKo.C8k* B]dOmToz+îR(ꪘ;ѡuȅe|=.,!߳0hR]j ,p-Z?6:Kr@&:X܌cH@)y/8F|zY1dĘ9#%CwR|OF/4"τ9>I#(d|ҌВfHJő,j[)iĥ$Q=I^̞sh7|p)I'OBژ7U,75lZ"iExέtt{/CKDZ6Z罗~vx;t1:X"QK] $ɸBCx!setYIU,v [3Kfq*L]Lo(6ß`2ˁ ~#(x%\`TI[ݿG~gQ};u"j+*۷:˱Bp 5tJd"^-l6#$#c}/ rIgWF|QdaB^KHpjJH:&FQ#(}g8z/m]_˴w>C R#%JsPviDDMgnFzb=)_IǤ.v۱˞77.kyr_t[EcdMD[=^r>#xaY)WoNbzrF#87-%ܾppqێYe{MJ:#(pFjao]MVqϧw.f]KX#()#HɧtoiEu26ӞlgI=vrFYU:ӱ,+夳" mui}f:s]ׂHN2aWq7ʻ9s,*Ƹ~s&ҤԢHmFh a]֯uקBqyD#9FM!U3&V!Q;&&f5f64pn-wAF4 :u;|JEؘBtzy`9ydp̨>W;HVO)74ڒmP_kmpBϹP4(r4WZ=]pR 4-k%I;SY#{XW2 dzFX1͍^#urwnNӷ#Ut5P)2@@*#(V1!$1 +E[/W@v?< PR xvzйH5s+$b=i x'5L>"3LE0(.Mτag#(!"-"=RbFa8vl#(0ư\רCkŬ#(WsV#:J./杜0xfų3>82 R1 ARКuWy+JП+hn戯Ի D# ʹ؊*@3dO*Ddsa`7L8v i1ͥJp)u;~2,PgZ^5kcYGS|\H>%Jqsy u!m4S*,##~s>Egw|,;$\bq0-2d2,L+ɗ[Ká(Gb*HYC_NcKxI! oSR!>=C Xc5 BeIy9q%gNFGfnTҧBP"QJ7nnmEh%]57kTj4h2/u s~G" PSBad#}%*&IFm4!>6&LHtd!TJNm> kf}WΉ4}Q*#(]Iϸ` #(è {X,OTz0Fln!@VDldž(FMT}}nQO}?>݂G0Rh6NNfA8mSpJ긐fgh"6U5 ڨy_<$tG4̨ӣJUh#Zj=67W<̼H嫦uߧO~[s|tpa} kD[.>W#(*VC#($"8:>~IrTwv2^0Ⱥ#%?ۚޝe {!?!n=d[UJCm~<?_ErG'KO(jhF&^oHX!ٙ\yѺO_?&: wTb#(0|a WW1Ih?5sm=ZRaܗhQU4&΃r~3KX#%XYNrl2=Bd'gWB%A͇#,Cc!$q=}lם&#%zu>.y8p(~2)KT5V*f!Ag}0s3s7N7(cQ#%FTe$k1e]^fbo8c!2&.-Yl߭(Rj;U~ v rc 125k#(f劆M\-$]7m}t}vαeQk+c7l"eOΦQ$$,ӹvjK5+EMTO06 K|[g~_r|[ D}lNɢ)2u\J'tE~h{迎'mNN1F5M?Ҥy6b .E}olr#(Hk":Jrq"$SIomZ?Ge(5/3L\Vc0^[cx_w"ԕl$ O\ޤ"ɧws 6^/>!]jSd[IJPdѺt_+8.ӂم"FB}.Hɺ94G[<[T'Y-ҭs~g8&>27]-|nVܙVu1$Pϲq #Nw~ 3;''8ǿ 4?# lǟ~:ygx^f]N\5Ԩ lBWyp^WN'*NmU).֯13 (tyyUhvZAh*@afI{rǛqݾh/gbiqw]m݀(RͲb^{{$N|=]Q?vJh:Ml$'=(/;6ySqGו]X9ݢ;hPMi"3UHOG=cW9Mx.2h>P۶"&.5"-pR*yקr=!=k7:gmgjJ~..f :(#%UjB!I^ݵh @G DAN٢rb0WdV2BPC[yRW0<hc?,hWU@%5#(|v}=ևߞpڱc?AѪ0Yb/cSyD`tIq%S,.aI#(igDx#%xRdTL9{5Zo(:1VAxc}8S~ם'mN#.sa-muN'x0mnI'aITSۍrLů蟨vHzR0H&ow ~VCh.V/U?Vf],i9K0{ 6\D$rȪhD~Zt`8(?N$ؿ0ì N"` o#%g~wSNN0gpkT=6O͝F^>ګ1lF訢Wg/۾˶8:taRcI6So~<~sO,w.]ٴ,.H)1%ь#(XP<3)_0$i{MK]ׄDvb!ݿXQL b$oTg?et5\XvpiĶEGZ 536sjJhm .lPO*ZؚR҄x'b伺mNB[i%zMZ;/,<:w%U/6SjWVÕ#%y_Z}Ke &@7Xf ^#%[0m--CdXP;KZG&U[јi;R(S s=񙮧?{(oO.:U߾'ڀ{۵,SPdShxJ8sG zmΗ^#r);gX@H #%7?OIA9VKgwkdhxYMdIo“cCOQ#()B?(ms{gM-񮌨:D7ǫ\?z25Ճ 7!#(9 d}1f}o+;eC$YKі뵘w>_nR/ꓼxy4t;O撜B禉eu۲j؟#%u ӠhkNst8զp*aT6G ǁQ}(+-S5_.\ܣutYĩ(LJi:k'#%!i>G-yAm-EAysuZDD6}Dmw*;P#ZzS*RL U=pqUnǪ_S)sT16e>GO6_>[xW/zfMqm?#%b#%Fg:sį:8r`o4z^>'`~cOsD.f`Y&S`&m?ݮ)hƇH> (DLOЇ0#%t!#%#ce(3]0c"2N)b4n:5^;o532d!H~#(Bā!=ԅ @Td஁'KPu,RRiLtt0ps_uDP=~tk5 f [Y)$*9##%t4'kH#%#(c` o"I$[i>A*B7h%c4ݰh_$CJ888T"TO:")We1Ip=abA{@̸@>>s~Cw>u:;(9%*h&QAtc[2qf4hhm<,qeVy 8os9b w&*4iy m C6t7t)~mjN]lM*e|fB'\i.#!q؃u7btA,_#;cNW.;_۟6'κ2E4,Z€}nHG6sjt1R,#%|Ţ1έ$Ȣ.cDjvzp{C`/JG/s6Odk18Uبl Ɓ?aDO\#`h̤lI'ýQ)-Z2[HHۃDK(۲ !%#IAxIAk^}_w&yzi?>`Td'?a:Ẁ!k\2-Ew<晶ח5TP=67N>+пn*UN@}2D''%o]̻w~Q j`?TŠ31zS짷pA]!0x d!q5:#(N~u]v+Y$۳q3^j4@:za*lI$^} *\&~ӵXW?۠(2 b'60x/-1ydѠռvji ĐCJ:w"}A~~zSCdqN{]+vbׯEBN#(D)KU$JH@tI(Ar{=H}mb4oR^Ϳi+Hy2K|]o_{}ݰH=@%O,r}r}'ZNb F3wIxG#% xvsQϚ%u"uGFg[)m߿j4_-ZOIp#%8<'TNl",:Cޣz~k<)"he(LH0֌B"IJ>^B57@'Μ.f yu9ǖz(p|пLNBŒ`DF!NԂ|;p#%L'! " r9,jj-)PvqpBݘgI$k!LPM@ yzxk$~?MA+ca$BñEݾt !E9'=_=ܧ∟${bKOk1!C,u#?BҸɿњgxݿW$#(2-\Jǎ#(\V%-/_-*iY9*BiDrN&RPp[Uv[v |r9wX 2B}J[-5)Q"#%" QPA_qoZxL`p#(u@Bx|?ړ|Fs#U*tGFCjjUsvVZdI V⃏t\#( g/鰭A?rE\#%d[IM?C#%ȅҧ9A KN(DٓkhZ+ڜd3N3U-Qڡܢ"qIBd}ԗq,1HT /bL%N 6UvAy!-ߺf߃J9[z`q71~31) HTp*&DM)˓~;d\$Gn>]&+%|iaݠYv>Zss]'F̚y~H&\MÌ/)윆{𼦫9CkS#&AQke|#n0+.9L֬KpH?6Y!GhrmNfdr(#%Ѫq?Fdvk"2BbYZQOjM򆸾mͧ"ݲzc8RSe稇R6geP3~ʇý[}X|e۹.Dh.P7S PT)5ur#(}NkT򿖫÷ufzAn2~;~nɲ[<SOVNy<t]TE`Ԉ$NjT"jꇓkzaƖZ?7/K3Ά8NBB`6%PH#(#("l{H^J﫬tӱڛ.煶fU߆'ۆG: ^!ky\cUC/ekKߒ tC,w=U+}8%,/ Z°jnP|gӗ걏?և苳1kbdUePzcdy̳nwc:Q90}s@gOItqKטiˮ볍[fS(`81w[2&a(^`%q|Z)G87ߩ~xm8i7K1}|ek۵~K`7L%+k8ۭN/!{!)ѺՉ5Džk{}:|hvM/?IB/?rHzT+ܯ`H4;SX?MESSd >]x(/`wf|ސDavg0#(?R1$22iceP('7&'&@I!-1ASW%EYH#(X1;P.S=S>Q @42)%S+:6$V fbC=ѺB%CFiOTntd 0aEz/հbك)22#,"YPA7a 9:})Bͤm6a#%ƏXGa !15.', v';pgAi6=|F18܉eS8K:$!&_ޙp@_e3} "iC{IcI$$#p#(J6Hq~k#6|SGEO2I-'4 44[f[1Ahp)GQ&.;C"{mgu| )I,LX Kg8Q(hP͎FIQ\&˼-j5C-l"P EJ1m3&P`((.絵u\%.?\G^b9"A/!R O#%v8`!Ԭ:_<7+H }zn%u!(DBf2M?plwJx2(CJ#(yc|'[fi>Pƺ:FQ!Nef`49˚ƀ·4]!e@ B)@S=z]#(_u`PmwwQ3' T .?H/ 8nBr ZDaC0w`:;+I$!aTHI<[.ǯnzT(`!-Q,,\ؕIA$$!Catp8l?fjZ 6mОd"/ sw6Ieӎ_B@5<߭3Lg>[n,Moh$ aKxq:h\c5 4C"hsWktã\KM r\z{KRJYIp@=p$$*!(B(МD7pc#c4|-WW-cZ6XVZjYY; 2 P];"YM~| #% rty,/uSWBq|1,E0"P=#(g?T+ bEx04~S.MAPy`Awz~j nL^zCӍF6;[Ol<^fr划 W'/aTo3+$ig*Üɍ:q#(L-],8tY1^s<#ͮ)IM;Ct$7w8u#(2XrúJ\#(1<N T}SjJڴSdA*wP#(YD01&`mtcٲl+x 3O8_PyӤhcC4Q8P0DZ)aUBl!"U}zhh[mˇ^o&ݴ@wn+8"(}2]){;ZĀc\^ִ24kﳙ6Ms#}dToZw&k镞6|!٭b;_|0#%;Y-#%4EI“}}IM4 0*s.:$H4kSe8=2iAQ6n}H`{18nrN!ؔZ0&V.j;%{F%4cɒ(k6yϲs{7+yflHl0w>#(G+o#%lt)lݱ<}ɓϗEt|dY-FLcJxXӧk~;K޾-wk.w4ӜqUf>ޠEvqȁФ: Xq4SX/%EiP$ HE$cb"B@pPEw02:Cۿgp^Ȥd5 & I1Hzf#(s;Eˉ7$o5nEBoj|ݗo{pғMbKﳻNU(-*ON53(H$U)1Lb,,ChmG$#(O\Tqmy8UVr DScrwT%D /ݵ:P$$ZPj_&H/^CsJu36"Z3 6kbܸIÜ@@\"197U,L&\BEk6(ҥvG6 dfEDGs8!?9q6rξٷl}B#3wfAR#%(]P>I8_%::-+gP"GO\INsSTP6rP><5}zT胯d$#%bz 25ID6Qˏ@3. H((GDy[(́2#%I){ L_Ic/]j5 J־"|:qP# tqGs_]:ՐyJD,U#(p~#(Xf:j+;'?76ՙU|eMJUzn=ų dR0~GF80gpp6Ͽ.2M%c CZ#(XkE-s]gT#YkWm>oS!{,in;1 αRnGUt( $HKgnoCv7BmM1" Pz#%YL4 0NbQ#/8!Z(\{kMgs}ч?]#%6qɘxw`]1#3Y@[Qyp B hP6cu#RYQ]Ҋ6͜b5/oK43V2RX(#>CMc iO:+UplA0wύš2R",1#łk+C$$l##Yvmfa4X#`!J5#( b)9LF-#(rЁ5#% ,HBHE4\8#( LH]h3oR+Adm|+3i{[k<9 nzޙZKU~ÙB,mS^`;c&u!2FBbQ\IW-cTP3uN\I"?Th@.ւo>9l$Cy )D a&-D7]E Qc)F€Bh#(l$R!6T0&5#%f6"bH龗}׿Y0=@S3I ,lS-ezbMRd|]KjZDqi߾I39pl"j`/|H73]Jمlxܬ.sc 5GcYA/{ӋB3ݎJK$cB$I(I@Ěw}sUNpPfdֽ#(Cy,;x1ADSYhI\veSDƖF9lhy?vG=4tܠ&_?/٣o_B3BbIΜ޾N;:$@Cw[@TLS{DxvsᎯ;IJ+qSljJ&KsnrM[rI+.eU"cT=IVw0&!;#%Eglt\$*De/NkJD=(=wt;^8Ɩ96 #%ȉQ:d!ZCXuLI|8&{ء M#%&`Öa՜i!vN I> 6̆ th33;҅1޳Yiam魼u6jӊmpdzv66xA!eBQѽ(}Zvb9;*SS)6|0dHΈ{];vG^im#(VDTinjf!H"-W\>˔`8s'mDÀrb&t=남C2V W#%km^'7i=;Yv頊Ўth-9#(ÂnE\!8(4zl0+8BH]5G@#=?5LN 蹔'(dl޵<r#\jLQdȫ$(wt1c^{ؘÀ@~(REdUZXA~q1D LEL#%DO^0Hs2Zsy4 znmˣ>)[wMۺuΫ\mw]rWnuTMaZ6du#%bCtQoJbsBS#P8"0VIdCn3!O`BMs'HJ1,ʈHHA$q*(6iglvj".Rԙ qNu!$%BQF`CcU".֦˒T;+Mc#%#%4,[_(4T8uiۜɊёy= lNLPy> tEIIzx~^=! ٫#Sz#(hpbk׿nmLGP^'hP@J[Jb(GET0~ l #%fR(C~D9Pi^bYw10͉Ɛl񌓮qn4kl'KC4U.JG*#(P z !h@LFǙm䋚ξؑ=D .;#(" ̐oZ_X֗BCB͓-elt,)} !CpvN-tQԧ -@FK6D.扚 {\i#9KJtcc#e&m3'<&aV|oyWk}#;#(>8)GnB# ڣ=ת񫢲#%@csMukLSf[*fTd'te6)6ƹzN)J^J=unj=7S"1URQM%j7i*iM#%wti,Dץc*jSmSjMTҼ]Md)6m1##(%Ԉ!(a@ဿ px}û>^X\h$/:F@$"d%.=iW-I+[ŵQ#(4!K UъHE #B6ێv4$l(OI 'Av2@)hԲ lzvVg݈#%of%<ѣp҄t̖*BTmUm5o;׮-6cK,Hk&R/#%brPk]xK˯^}uA?=#(}aOA`BU`@`t~4H?bnl[A4Mmʕ1"&c#(5vRfkhS&1jޖ!>plɖ-Gl#1kŠ1;[cI WUG00z@LKnjcp IF[7$I0voAx^*(ueT15+ > 㵦q8$+]u S`AV)#(q0)OP=3`huom·D5U< :rԕU,u?x}x^.< M1$#%Ҏ:]qUUUUUUUw%#(qHDh*$F p4.sP2`dtD.Zsi?%dR6p4kbkQJz0Aҋl#֠SL^o@½.IrOP=6#%=>]:tS0l@?lo~7$M :?y~[1v!ԭɻY D7x:^@nAV돦\8eyJ.ׅ=U,絏As E1~s%^͑VAЉ$RVKW DO]wtUzsXMX"q $cJ$2ˆ[vSm[஛gnX;sFZ"A%R:n*f dB1O.\dΙo{5r4Ymk27-sl!5n#%^m4f7vn"qƉd`%ZPYPV?#(iddwmOGXq(@_O>rarTP("@m!që'`#(N8=."%jea*R,KҤfKγ66mҮvU3^5nmWM!!Z#%`0BBOm6xnNSgw{z_r:}C5D;rtUscsnuwRA:C0R0oO7yHFAǢ@:ּe5FUͭjl\%MMYbLh@!9vGp$>qE,Sb\0)I `(LP`@9B?O\ѾR}qc"lʤ\G,*8~w&:Ų{{Xz<8dOo1λn~SA2ҕi&6Ke$aa._]r:MN^=#(ญVPvM:좖sd 0qh(;6"\.bT욟x=WV޺ |QmhQ.a5!#Lb!&gu-0s}#(|٘('bwBMYnVɼ;eg'-V!1l!Hji5PAj5_oJ\ &ēLCbmr(Oꑈrh"o¨'R$N>0} !J}Fx}X??+HJ$!mj@p \ț.PJZ~[hB@`ddF$bBgFEX%4&(!pJ(vG`$FjJLTX +/s&}u9oʎ]W7E;hHE,$B#(]=uO pB%K> 1X!]˸$jڂs0_)PƯ}u[g׺etUϯ^}tvcLlFEhG#(X-c+Gf/ 6v$`uLL!̦ȃ`%0!/BtAFH1;miK|58_;#(F̘Yfs. .SL&i{6P)ɠ{Υ(x{p2ؾxYarTr?֜ܦ'Ylj|j oONL@x;0B(¿ I$j%41$zef}?\lq! jeJzQ@#(=<$/;%HG8?6'r__ ϟ1`Kѣ︽M&|WgM]ot͓ c7#(c?;aJ|!4sB(V#(aiYK]6ݥ(*HLm&CaZ0gǜVUn#%TmY ʐpr$sQߓJޥݢR6m0֌H`t8)\ `(#jY෮򻻻k$CM {*0Xۍ#%v$s;#%<9P44 V lAl,h0<;{M-3$J5QJ[x߫ כ3Щ[O\ s<0ZrW$bӷnd,Ej)$6'M9.|%_߉iP&6$Asr(H"BjH^_?/=p`7Ĺ_Sw)rc# ԓ}/v%;m$D4a7pt%I$3m-ˑjk$!$tl;edt/'ã#JHN:0 }s~mboeֽOG9#(;59K$! ,"*nEK2 +B,)Y!UiA}:i0;JphnU +4[#A-2F*@{38p}26#%>&@Cb։ F%pfذax]qfe1M!6!QVh; 2&m n L1`[ah4K~d]3#(*|4?2SImA#%N;P&瀂"[yN|vq݁8i:BRuEY[aB2ιoV~qx鐉;iʓ>Wu$< dz_s8W0gh7{[b.CYݻ mduRGڰ[=>,(ggBn[,9r'_wI:40c{L]ȳ[rgrkd>ډEm#%jׯ=8JUىf`A&Ms2O=VS^J(3SWyk,aB$ER1cP&YCHwm][ey)ktlkSaRU6V^*瀑5Lk;M֘mTڔnZSZ-2Ii hmI#(KR#(}#`RU,-mlmQiPeDKhYImHQ!ưIFXض5/HLҖ_a3EH2"$"H$>yg/@rkAAB(RLTmQE@EKRQ E%kP TS*DʣBh0vq-0^ǾI *=CJj'l$b@Hk[CGuR6I7UbE0F@A(ٺ]f#+̼)jRleQ#%8$3r6*H;(@h"#%%`&@)]`ַj^Bj&Tr]ʽY;-v}] oY+:hh0@@#(EBxOJ @#(IТ[ԤdE _: s/,)Eʊ_Ov(^-#R+˰dאaڛHm>t9ӦК/E9 m%^oƃc2%$˜H<xf-|ʒĖCoFu3 h&B#%A~h+lS|zol7}פ}8ncUըQGɵ[2 'g#%F]eĴ"BG13̳QӊY4p˵s C$kΎTS*老=ULx Pv7>qG!ka&2r&d{eؐwrLɯĬ``mI -$DC <@΋ޠ)L7=Óu!f9S#9`;{L|4AcLm?lrsh昂\gIPВ.t#%nB!L:|v_5dsq#@N;I .Ő0 @HvW| 0vjlAQ:gO~;S"0rJNE H^w͌Mɍld!&#(0-v ʾ^j%C'P$3:BB;_#y&`X9B]nas3P$㤜T̩[#)cGGTsБ̙vBdێ ٯa"G{H 2"⇊`eO3tm&J?RM&&SfmScK)C}BI c;BXi4$Q#%$fi*&(,%7}ʪI Xq>׀)!i$Z$fXꇰ,1;c #imι#%ͺ%7&ƨ.7`R,{kdi_##%({R2[c6cҐ)^Bi13(E**iWmwեcll!V6Q#M#((Q D^5H종$EBC*ǯRb#(!=C`PO5!%cVdFd̠%-/at깺#F& ]LIi⌦jGT$K,FcL45̀©dnX9aHQ uXE0gњhgzCqCm-wez5qSzZԿ)&OFf]JqdJpN\&{xMI X }iQYt,ÖNMbd5#%KE]3[{"%5#%WmPVkO#%ps4&юr 6-)̣k =*# M\#(lC.3.hQn *rbuL#(pnFZjokw}d͛y>퓈1/U64Pzw\$:TdʁCkl8 LH-2f!A!C`!K;,j]x^/.捗r[׍t:\iߦkHF HBfh__i muW`o0z-8ׂA_R kS;$& "SYnnEK˄)ȇlj1hҐbp?h@n3zk3y" uza}Ao[kl&Sw8lAqJ_#(9!g9Hw:e=Wow\o|/z4qNӪ +qpwrQ+V{+)Mı'kD#(]k|\M%uzua?LCUu(9:H0٢]ΰFg <8n6ANz>XM[ FsPJ醎Q/D0e!NY:KLqGsUBB:I{#ɠ$2QF&h@&^ZbD3kxcw~jC`m`G7THqG0@P Y$;xry!t#(8"Pq&#{Y{ysEt}5|YVz*jI_Jh^jV9no멮e"Vsubt:s,nWD"8hkEȵyXw\dৈ8[rý|GDg#%dQ6:vi^]j Tľ$H)j1I&{Cy75󙉏z"S$ۇu_:P')AS+tݰܹr-+6 "r؂\گ{7zϯn崧~ڕZPxS5&36%imt'wSւHU$"`B&Xc3f-9Ey#%\sp);QrEr6,Rko#%pzqӫMn9#57LdM~26 nȘq޴IQιljdJ=b[9{{YmrI\s"8B`pLV+A08Qq+Udf3ZJdiiaC!3[u0aāpM6\I5*t)1#%|Z卑`[Xnxkc1fPD2kLmbrMy!kp98Es6=r10f3*q9{z\ mlcel,0aLi'-bΞ-DJfNUFYEKr oK.Alє3+1BNf M#7#%.1=p5.;Txȩ#[}f0QTaTLblyFQ7 d(r}3xnuhï@ ~tBDFU<:9W BA,a墟s^{PgȫcBxө;zvuְRi:92&ΟBÌPU#%iBmfͣO O#KLI"pT@z{o^6 ?PĈE4R@ )xCb"L&lL2MfԲi#%)E6B[`k@@7lHi)KPZ&wYy+Q*.=j" anI:U7:zfYdd"&i 왟*>,$d!DHJɪTY+D^6=tri>Gϕgv4Ḡ0$}T DIZIY ,1ahl`?|UhԥxAcru4uv|#(dB#VT]({q 3(p[yWQQrD(W9. #%V.ҮP;Xc2B.TomT|3#9 ނ9͹?qq#%ϕk2 $3z.,cc.<@`e'x#(0dؚᶘ2 [q_0~#(}ϒ&lq̉_QE{Pue«<)D~̺?LXvE{4Htbe0pݏ8 '/Ed$#g>ζ$7A?~sF@7 /`?-$Go/>/.Yj]g+^X'{%(=Z)|κV(~Zw#%F"#(*ymϕť*sowrd]JBEԋM((&4i+ZhZhr8d4#5Pf("iNwW#%gD,N3# y_#hT\]PQ&9Uؠ/- p#%sF1mXāz֘ll @!4Sq7wf\aݶL@X}H^bT k^cR-4N3s W4oD6Sp9fo%=x[P68y%'L7W#^BÐ˴_LaW3W9DbTHKcFtoD#J> "6$L,)rtn7D=<$rRY-a)eĸ'{ {!AMԜ8YL#(*m!R@p#h 0dܥtƲfPbL`)-l2'>Peswbb,3n Cgo@! j07CGO#(]ZMX5EƖ!Ah8mH3v$Ŧ"u#%Crc(:<>nzmͣkFB "*744)U `EGgHNC_!]=52$c̀w247P: u0:JxE I#쏧W ,`2Z hTVCÅݾǮ%Z!fF@#%0tXz|3z+g.pB4s7EQ[Ի#(&@+%#(;Joj>p#uԹ,Z5n%=֍$GFR"uc桴]@4@i C>E:**ȱ@ׁ3whAB$rUb0!+q.D*iI Tz|趖aY>6yseҦ*Dxc)9]AOy%s&d$$&Რd+r6̐O\}/=q%iP?m1f-H#%[իDW[-IRR(H1q0 L&V/KOWn Ye$#{b%;9yWaܯp@[jOr$Qؕ?XNKǒ.h*v >W4.KAeb⋩D@B1S|+W-{񷚴!d‚ +`\U4+b>,r}q%4`ltC)md_?u :$MKs#BJ`(N]hQZΉd;4Ё~X(J@#'A5]ۋ+`ȨI 2EId6%/e$La&f_DKvhۀfsU_\O$5>qIyݯv-kn}iL$nX}q B)17d+j9X%UJI#_(hMe/\YFm(\D6ET61]خ)[R%6Ro\a) 2#$(0l@"ZJjTl2H"$HB. dh/r#%C r"k]ކC\#%|䙳*(F"ŘHl5WjU\U0==؇f ƛ4S`<+_-zd7M[tS"6lb=e̚ !DpRtuƹ fL Zł2!ymTyDwyxgo.%U.ICBH/w&wݰ| gjl;8&ny-'|u  i.CPy P#e޾scdzәV`}lvQ~5^/IS(R}HfFKVCn^uE"Lt\U(Tx^˞oBlv75LQ/Kw4~9ަѯj(5~ԈSȡlwc$$KvKhSxH;h:(P/Z7 ]I$r&A2[jf'gؙ3ɅDIvA0}<_C_prq%k\%?ϒ}{?xA |4WoIѫynGSf8㵑8{֞d; sOc{70ˁk%g jœsD.Lr2{Iq)&EdD]B%#%(J <c$l(`Ɓ3M; PSUZoU+R1`5A@*U!(*I#BxyTM?Guѥ sdί9zGp-KAG1&<7)euOxt4Q7ӐŞ$]_yXDE5#Q#%a40 |vYudq6!*U4)D""m':h06!&)?HH Ɩ-_Fj"ذ_vF6ܤiك`:ќB)\ZyY'V'{iS4$#(,)h΍#(p7_w=ۉOͽ3O/Б1b4 yK?a(&Bώ-יy_O_YԠrE8Pa #<==