ࡱ>    {^C*{} na<&]7ymPNG  IHDR),fsRGB pHYs.>aIDATx^;,Kvy7xAPwzɐa sgр1x5``axoWyW03\ۃfK!MΉvDf̕[FE} @X7?]^_ᯯ_5@ Sxz}?uj4 LwA{kx@ ^^?cݝ*^~LUև?ץ>~"1|x~ENs z.h~!tՄP,Cef4HM=eyTKG<4( 璱vG;J{Iǔ*0C_ΝJXC/?eXџYZ} Qlia/#{i_\D◔E/ }^vtڹ/T?E^k/8tH_30\_\&~ l&|= t-R>FrJ> _%n(ah%n\λ|gC\-׏e  @}0~y𽞘{BML%%ëǿk$ycWx1n˅e(K'ekKGK+s"QcCaijl%zq*8eqb>O/?6Eri˪zY?y ™G!B{qQ{w˻7/7F^xhfx>8@yGj ւInBT}dƦ$2> 7Բi,Z-zq~@Bk-\;7bPQ~B ]e ګ*}^ Z9 .LoϿQA @_ؿ5j/18[SÞC_; ~̐oX!Ap'< @@(6 ?g^r1 Vx<=x=zӅ/z峕7?c?JS, @=K&́'; k'u0ń Lt< ⻿//?Op^^˿,/?7gO 9/z7 _?{I`}?y~?+?S=??&" @G%Qx wxQxݐП?Ó//=_r1o}{_ϼ[ Y~X<`Ax~/$ʯ\@L ]P}¿}{Z{ R)__??y:F|Bo?xlkcUlw|/od @0{^OFOxQ_I2+<_凞U_S%> @X@՘*T92dCnAǸ o6ϵQ~W? ~ A^)!@@׌h,-e_n>b7_>5?1ε^~\0Kڇdׯ}O8BD 3\A~ @8&1VA 'F^U땼x)J@^F=2sLRKm]:}[ o)GY)`-V IӾ L`0ARffZBKD8-  M`Z{%V@3f YxR~W4 cmIbH/ޤL)j&AA^@ W+9*+mpfŐ8J$59Vid` rryz}B#YZE; { @`*_ksbƔz4*(LT`A߫`Zmդ @ '0R'g#5|Hk>;^@@` Ep:)IN6-lI& @`fihÔN%/щybjv,XljBזbb  _ʧ>j@!@I(SWr wr` RA$O@0i9 @ 5k4!@p " @6dUfCg#pElB s`j(,|?,IE N!9sT{=>>ΩA5ޜ.@<g^ygkήJ պۄW c ]H pE) 89׹Ad i.CU0!@薀LrEw-cY}O=$e~fNGPŜ Av[.UW?H~kؖtnCrA`tI'7̪,C$'vB!Ƙd\ *HJGب^O$4$cTt#q kʵ4˯ 9&h7KsXCHH@@bN2vřƓ]V}1>/efK.cd5R( M x2幒31j1q|hZIMe ՞l cj}'i~<'h=Uc$H  cWDIQ `! kևGɢؒ{^+kw-Lo?OVaOIEU{ge%33G"EX33A~ewXsu{ؖNij]@[=n$0@p^%L(cZ\@@yn߾Ez&z Dx{'IF MrCGN> |UY~XU !kL =QET2 {V0,&%>gHusPthyW Mc[a{L ט#&EvO?kvرj-?ZiJC YhH9@26'B8}2~78Ssɷoy9hdIX`iP-!/xH\4 "\WU99-%yEKHWi[<D{#jat:F:COF j+:=R>^A$I W{USUuOBj2};8-j<`vq 욀jбP{vIf'&gg&'ǺShZEh5lHkCT ڪe^~h.)d7'P%By /*,%3H Ʃoo|[{5O;gj ^bI@b_ ڜ  jfʘ1H4I|}B ઽ+KƐr?ģ%1zV@W7rACU{=Ex%{3fWcR^gfh#ƍ\8^,` ˲ ffӝ@-* g}Z¤NN`5&,HPH?]xw¥cǓw?͇@BJx@@O_0㺩9݄MXuD934`W4@IU{^mkQC*'Ø}|@`%^+X@ګv(} /^Q"hEJVKz^ W#Jb@ؖ@W5|/^~^ZlBkZ*eB(p^ DoyԼ(QlEk+ q2e}/cQ$Tɯ^:@@@Z;U.ڪR8z P% c!@xmՆ9 DKƸH; {mJ!|b']2Z  0WMj8%@ܹ4 薀jDӏn:!IG p*ګپd i.C+Z ,B(p^ %Ecx9*QWF-/jfvF0V"X ЋjQR>;C$u~z{%"b^|CW-1COU{5^BTfKR\3Ggs  {1 8^FvE  P%B{YN O^kզM#jT /}2Cs@6^[wђ1.1Î!$lB^`R@1߫y{CL' 'ઽ,`3D 80|w.M%ઽ+c [N{uj,Cr\l C?Wer Ex%{3V?r['O]L! 1Ϥ :)/XrHVXKd e{np{Xc\FJ) W(HlƄ]xIBQlv  yEGI,>>Մ @k6d3=Sz&|{ |bG6E^TJ!NNU{Yhxޥ(b@'ઽ+c ß&5B`__D j,Cr\EZ6^m@`WeLfᕬ$NXpJ^I^'h tEu }&UTSIy!ƒC^ZҦ+FKYcUU**"a}U!x !}(vc!ޫq%ɕ_4-IJx5:C@ zϱꖟ͸<|L D孊Jx21:eRb @'ઽj}Zss+Lo7=?W+EI/*ׂ%Q {gi 3W{Eih)JfCvfɻDsK iNk=H j+Z5g#Ecx[*gȦ=~H3ׁ;Ap^ WfK~XUW[bZb# {i2 9W{ ]4U{N Ս5p,oo&3Iyx^btH8{2@2@ g}#>m{jU[hgtV!*oP߼}w^{h1@k6d|a6!|MS) pr X%`zp)DDK&V:.ozM44@ Yߋa@kL؅*n ƎzZUIbc]mnl>YeS9 gMVJ!P% 'zϱꖟnQ4X0=O6D&EIɔ}s Fq%)%*9/9ϫ=#cqV3?)^kZ CU{^8XWb䞐>Kd+4&D xm^z|[繉&ઽ+KƐr?ģ%g&uާV\ѾYLfᕬ$NXp2ܐeߤ^lP)Wo=B<1Ϥ :)/XrHVX߫ q(4,v0EO3cI6Xr<?(g^JEa/zHS%BYN+ 71a^B$EXw-Ȁc!|=oh\!u4d}.P$Qk4-^nUT%] @\9Vklϱ`>81yY>M^*41DT㉉LzKC2:6i *!GtՐ*^  0HU{^}6g?K&d 1Wn tR-mKFiUY|!p^ W4Ikn$ylz+dqGJʴ?K8yl4K[J jklWyg=mLo-G>h ίj {#= \WUf߫| l0j(Ģ{tcN.-ɒ{xS,,fi5M(|~H p^ 6KdGN#!3"&06bɱ5SY6aU`1q~PNstfd'LuNea}/c d+Hm+\]qސC[U+T^m@Z6Jt̲#M[T^Z7(cQo޾^kJvJ`U{Y2Yn&,-*K4nB[J{q# 91߫y4 ^B!8p^jRKk}G~ jfʘ1H4o9|{p@j,Cr\י{C[p^F*g1QWW88aUjpCώ$M*v}씀ALȱB%d {a,|1h> Wl_Y24!-6NW'Aj/}wdF^^LUNƕ6(G9"(b@'D>**"(褼c!Ya}du|9d`jIJ~Xk&pCg#v%bnCqR*fDN*Q Z"zlJxu&@pXu˯M~c&[ I" 5ߏH44$4B 08A\WUCsslDފfXX{ZjeԘHzO^ p^ ,C1lFCE得.vv(9y̹+?6ZR$)j݁bä(} /y=N?IYPl64, Z&EA0p^ xh9h5WԜ!vMkGN j߫ K4J`0z =>XՄB#\F 5AS {K DJ~בz@\ת-LUCp P% ۛCT@`6^[y%c2+r=GX֠J1kb@uNJ\žle)S$g plګپZ;cvq.u  j/RcHs\ђ˿Z)B$ઽֶN(+Y,I0H" {׈;Wլ`Vի'ur M?B7ְHeS *m }':€NEU{MPcxw݂;Ƅqp<$r%N5FizcKjUklRtRË"I9F^FP$ W}18g#0N&&< {yҦ.@BU{]offcVeFU4"3|/gT@[{]cffc֪ k 80S^{-;Ckc& jUcs|/=+P1b֫H|I'^p~+ ;&Cp^3m5z-U\qx&dLgmh&Y F߫ !p7 A甸Uv׹\&P{s^4WS^/|)QI ]E7$ p08*G`Ls 0H# 'ઽ,q>YJ@#"GU{W|i:!ઽ+K!rGKN0 0z FU{]%eᕬ$Njmxs꼃8$Wլ`VիWr jO?BЫN]}ybI^ @`&W}5F\v jX,Tgv !F 5A\ת`klqpJ6C{E W&LrBqq~QUZ~;ΙelIL߫!4p^F*ǒ}jB*B/;[R6jFGF@\UNAj,C߫CkdCk=Bh#ઽfWm-j DK-1tUE3 {Hv@ \e$2!o3tzn5Zf)^K@vګOyՇZ8w 3J$KT#s{͡G^@mso޾ 񱭬C {@y`DAWNf{=&%vAkDjn{Sij}/c$ W|pс {u){%ni w͛7W~A Zߋ^ !@>+ ciUOB$}87@sȂ* $\9NPcc(v}]<3KHxZۿ{c% YF=rUT{i @[EY,B>ZtOky=<"ϕz߫ϋE V }p89T!( oi}GՉإ4Gv9yTq&\פk5y&Y<J+TQFѬ*̬"O=-a 1iHF;sɻ|R, W{m? m&_N)+$^TYZM DOKIi,\W$EţիWCOWx$Pd, 4f  ' ,HU{5^M} Njb%/-NxockKj9 Fn^F𽜁S @U{5^NOW_)Y"n䨧s3&S*G tP*ैQ$|ID$ 8X|58p)0`}nC `}n > {j/(z>~ѡSBù*oPƊX[9!xmU/5%!|ù{#= |AcDž FrdzW%psVď\Gbq1@s Bc~ZWg\@R@chЫtD`{Ϳs\;cvQ $P%qͮl@D\טOJz`Ռp~; |Ct#vFU{m_'k, & 3lgcp {3# \Wjư/sa `<13J^H@`k҅k pT D2O 5bvd t;E@?W}5Xcan91Pk)c!eD@p^W)c- É.*dSy!,|eyR  WetgfcVeApWd𽜁S @U{]cffc֪ k 80W5Ӿjc;ײ3=ր,g#u@\L9g ^z W No`E:ad@`sBPVz-1Q~ suN\޼ؗu@كDL;Jo޾ <>>6@F@&^ګW=gQTN4؜=G; @r* Pղ4?Wo_k|n M{mJ!p^}^!rq|0]0 pBX(+Y+IXcL30LiJVK \WY5W’[1=΂dgN\zXGknA_ʗXN {5W}5 sԕ꽃_jGMޕ6-z(||hd 02Pi8g?Gk\5ب5V-)0O6x~ I{i& Wetr@33Jcxkk_Y\G5vfSv5^=1@g#ઽֶΓǐ`)+ Z\Q%l6fMHcN4؜i_k=+{m{mEz!3p^k^ϳ?>ܯ^J ,W \.\ݲ) k 80W%+Y+I08x&Y|Q{vA=p^Fd|UX*9dn{,U`CLK n j||n[Wc5E֠J>|8S  MU{Y1f-cܱGH^ƨmI ;tH߫N!$@\ھלm~L2+'^dÈN;!]p^F**ǐ`5ً,ɢ%6ؖ׶8'W5cVe{7#KlHkCT {MvҪW($E~P9d@`|9 @{MQeWX_ Z/C$ઽVQ}^caZ6L!A2ga {;ݗ_|.7oHy WLEc @ !r<'3, !H OU{=5B`j}]7!tBU{:߫Qg* pkmya:@`%^+X@kU+~\ⱹ:F NB$M3!j|/^^L՘'I_&+5!:p4@[kLc_b,i5&[7+,%X!C_@\Fh!G$v%mGv DY.jR޹EBE(^Auph嗷xn~ɞB[I w'%@p"\WU<2(9SA]B ^n '={q# 9\W諾$-\(} /^s NDDM{mJ!p^ WtKIZ{=֮!`'egEJ@Kp^ WU;7n#V%j;!@߫Y $ઽ|/ig;L*LCYnlȜ ;|/;+RBXq2e,d8*^txr^6~;iՎ^el#k ؄k6d7AO:BO`'h E^@b_ vLsF(bx@'ઽ+c ß&5B`__D j,Cr\EZ6^m@`WeLfᕬ$NjlX!{Oi ?5&TQYA'K {U*dAT F?+BHJ~2YdkL؅b_nO>=(+*}!1:'P%9@`\963ʝEx;,H 0߫N!$@\WUKy?ڊHc:F? @`_\WN61lgD {-Er  jKfY'6)JK|/{Ǔ?W{UipUMp& ګN2N{PL[`^W}Dg}/c2@2@ g}#>m{jU[h\-CUKߠyz>>>b !VmeɨWF-?c `&ة89}j(vޥ( @ j/}5ؤQLK n jfʘ1H4:A^ta@"ઽ+KƐr?ģ%ש:B !Ő OU{dF^^L^%;/'j|}B D>**b-褼c!Ya}/J,Q iryx ?%@ d}=21Cx F!}(⻻na-c!)K3S L/HT @ slg\7y?7|zK7c6VX<)WF%lN^w@'$ઽj}`]${>℉pnCXu%ș^bt- sF`e[Gk= @`jz*he4Gߑ3,(-H-H;^2@U{5^QXX\DDaoy`1WOf1}<}P`L2A-f?JFghw4jFGF@Aa}/c $Tɯp:R@@Zv?ftU[A$P% 䛷g@`G6^[y%'^~#TJ^p@1߫y^ \žlRs(&uΥi@\W}e$~t |N:0 Sp^%cHs\ђTMc!bH@'ઽUNa2d}p&qƒ5׾h!cp]c"HItR^䐬^BQ4DRx<)% A^J@ WF lƄ]x Ӑ>qngرWu,z;aO"WP] \963ڼ.@VLw?wػjź-g 1$'w-~JZ%g$xHl2{1B p^W-99֕H|?ĐKw NX^:Q],Xc'itsX;H_K߫!'ઽ|h$eekrނWd4fn|7eS#ysu3  j+2#Ecx]}0W!K!yJ,'kIk {10 p^ Wf߫_ILoUiNTE972{Ci ګ9M7rCBdXlB7tH9]P%$&QMƯH=OS>c]|v$׎:P!8^.)e,d RB*g}dL _U{~ eՎ(\U ԫ T /}2X@$ڪ,sVbl&Ő O`'F@ﵣ* n j/}5H9c =8Wl_3gK Z^H@`>Wl_Y24!-~!p^F*9QWW88aWcw֠J\טgREp :)/XrHVXKRlbף*?Ԓ'z..!E hI<r~{kK06ؓ_{||@kL؅4,6nرW?,zU's+}}khWP]FKAc-?n~Cekѷ-$|@cX ̫(TP_\ J}ӌ1IiD^kPL@eګ99֕H} ]1- X.PQH3+XcDו3@Z^H@`>W{EWF3R>;c9y ^Li7 gP-W.G֖ff-TI {1 p^ WteGGrqK8aXCB$6V7YXZ!$cS |/ ګ"{4ֲ+BɓZ*&m:ծs{)W{ VwKOᦛx9!!\y~n$hRN@W=6t IlXNW;X{|f jl ײ<) q6)e,d RB*g}dL _U{LZ,yc *oP߼}w^;ia@k6dԳ{c}=^=1@g#^֝Uj}I @\ž9#{1< p^1chO!/^/AU{5W!rGKc"@|6n 02Wy{&3J g' 56gxק蟀ALB%d*&q=BII`Zb_!xkL؅p Gv  ySZx&*|("WP]TJ!NNc-?㺩9̛I_'FR%Q E26 `R(83߫>"B@x\WU{~u%dpCq¢~Q zfF)k2r3:zN$'|/O@@j+z*\ qKQ^6^ѐ+r^}{u@9I?)"Uw  pګR|"#Ecxao5%L߫!6@\WUŽ*HeՏ4Gߑ3`iZ{Ϫ q#"GU{5^QXTd>ʍK?C7"c6 Pf$3{o~-! g}/c2pddz_9ZLo{Yp@$媽V mUcoh%r}E(˂4<˒Qd/?gX $:jGGJ@ }j(FC j/}5H9cW  jfʘ1H4w!;~?{vRBj,Cr\FL$ |I3@!8p^F*odF^^L℡U엀[#Cp^U'M W^Ncm2JRDe/laTjS%P6$ 5#!jI* 4QN؝w-c!,d iMXE9qP2U@g&ઽ|sy?r+o$jKL^c+Ul9wMBIsX@BU{MVs;e~u'D~ӋU&*fZޝl&f26 p*ګ6WBIQ^6^.ϕG9vzW^N@Yo"e_ $\W=D Ecx"fl>YX3Lثq_M 6@"ઽ|*;WA,~9$K$ӋUc97?V!p ]MW~ao ?aomvWLJ 1.],FҴ}xB aNJ@@<{ڪG&Bi!jc(Mְi;&⟼URē8G^ۍ.]C1B5_| MFDC `$d_(aqy';cm(X.Xj/ 5 Ŀ ՇwzQ& /zȸWZ[MF?9Gltk\EJ5J;4*2v5( *g]K}(p#pqJͿNkH]Ƚax~=jȐؖ޿_iW+ô\/H`lkCJl&Eo7Jk^ȯ?6r@JmUoϟVbmͿZQej mжw%0@ŭ+6J[N>Vm~W#r(%0@޿w%k>ÍKػ\  l<MdIs -ŒH^<~Q>Ƒ_k뵧@گ`r?5s@{gĖ_\:Њ9ٷ>#KiJI ޿>Ӫ^?DC"zVhjX@@ 5H@TET]Oc!fr\"!@D{;G  @#ε @ ߏsd M @@2מ{  @{||@\ P{}kpEx&% s2-K|B-f_pc:eK^ /4c IZ=g0gkO.$o%ezTWLO]#IiFdU!ԇr @^z5&+o[C-VIB2siNDT K$sTEx."ld }Iű%1r#I+__)Ξ%c =ec@RYC7n'si[c:oH;w&#];d B9R1n?KL\;Eh)9f8 AAybņ/V 8!@gQxގj/QsF!%#!5aLlݘ`HZ$ӕ4[K-#\pQ J@ |}U[ez.v0 wEȬZEC]Kmt8#lD@'/|/ 47NƬ 7)l-5?fc 3eb۠IIkVa7g4ml9cm$ ^E^%3[H:oqd/(!d9$'e.$ccUiߨǦ-KnV!0(^{7Z# X5ʬm҃`Js @`AckϢ5mC0mP; @`6iB n L xqu%B` @`%vx{KP(B O{^̤ @"=*\$ @ x [$ @(xx\@ C# #)IENDB`n (ԌMYVT[PNG  IHDR?gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEȷhM4޲qqq֥ Hy|rgIrԗYV|7gͪT|zlllƻudRsqZÑ͉~pxkՠپ+d̶wmbyƋQxi@@@̘ܢCmePPPǀkɡ†ɘt|zrӕӪ}#]qƑu㧱\\[|<<9=qbSYg00/שټnyyyfffmib֝vĎߤyasȝcitxurLLL~|z~ɭz}4mǜ脂```it[ZULLG݈̾Z~ۇþտiPOO~SSR{qu}n󙙙u tRNSS%#IDATxb?@14Ј0@ ; 9!gLmh=\=Ƭ{G$N?QGj[@av qa}`D8h|T ?sf0sR:x;8}"G55Os`̚E1EG5y8( G95yLlyDkL1bQ@ $@Z:yD ߎ&@?&XM0X p0h̞0%У@σ< 0H @ yL4Q<<@Ϸ"?wM0г@L@Q('8kBۏ;: 8›UК(u!BqmiqAaPYQ)  fTP4<lf@g^-,aN}P 8x5Olv}MPW `0 К<1F `2LC"*X@ÐV P 3U@ P*6€~nzQ 0lm)p{ / $4L5@àf2h'3]!hxIQ>#(=}ǣ'0h2=s(nTn?7v0Zu@ < khVl44<,Z>a}_48=|ةV=u8 Q~{4<|ؙwUT5Mz} al>-?oN x/ĮisgQ4<|t;H7{'sAọ 5233gkV_hy<}{>yf;;{Cd?@pڇ$@4x<rݲwNU—hO<;HHL\!mm _@N4h<_pܖM ;r)"SsOaWcD0ȕ 0@ K> ^`B޷#G!2Ѳq1G? |߉JȿB`!ᜒm̸:`q I٠faϡPu4@W8QsB= @÷ؙ{%$s@lB#XbUXBh*8>2~`!Aaɩv22_)N"> ђn˃V<̩ \DAϫ9db!83@{ oo6@% @G:T`% $qF\F7w GXB# VLLUE 0@ '{7ue?g~=f^0(f^V= @× ,t.``zM=e J HhPx$ػ`gtpHt*5 PAp`s34~de?W/[G]4(<|Ʈ'--M {@zWR_`IeYSpUIǞC0r"`F ,Ug4(<|zс@Љc2u+Q8J@r. j aHIBJ$! a< aT4HF-Ϭ_*Y.%} T4H<|z]SPBī CoeqP9j@e̪0wYE>>gޅ3?0~u05"?@ &3,x'S-oU޸XaYX@îܡ^3V[(B= ̽R_Z*˃֟=Ma04~՟ cu`9e&*4>[Nz쪦5A3ZXTVf@Eo&P'@ x K"`,\oHPp `lF°ͅ Z**irAEW|]1"ʼnN H̻J ML&"& =| _0[-##C԰%@c@Pqun A%e>uXu~ S2[xyy8T9.apxX./Q?b)c"c?k6A~6wՃ/'VW' 2(!@<̦sya(02l_9+ϻż>Wk'$X '/= ־<<.G8mS_z |9GNM5*exL$je׽NZ}j<9bDYNq@pd{a\ SS\ ~Ebbj̄% p{8R3s_Ռ+]H7ifbۺ]p{ pwܿY1"ۺ}%3&C{/{UbjZ$ZdnW.½fΪz3U[kq$Tu(eͺS}_q[VGep&<W<҅'jFUmY?xQ?)e+Z%^u@&{=/@ٗ9t+ R8}6;? px:1 k`BZboA6{48=5"BMM  @&">uÝ^c=|" ܕ`εOyqعyܰŒA^PGA@&`-UvjGߋjD +0uC@ùps9}X@ { g?yJ"_ gO.B"Fc_;ͣ8N==j.,EY[>׽{6v *+ȯ`XrBV;Ük?#s3d U ȲSSSB.=j㗲`INm ID  1|j0?w<Y~E_Qja\]"HGMĕ«‘>N$mzA=>ۇ407r$9ڪA!W#_s1/w39[> ~!q{#TAJ_I0;+6;d FxNH@ ΤI@'tkLlG@2ͬؤ6z-0r!<6D!;> 4 |'"Q{jdd_UO=sQ>x {x_xZFжE75>k!{ W'n!cG\3RFF-Ji[ȪjQ?CO4@i]kX B7VW;cDx3d Rfޮ4Q}]DaOpD9,Oh]zW#v34E!:J^e7[qb<,1Q[ d ؏M{._,Lç<"i[O[B\,4Te}WEj_,&@hZ?:CpjN6aVvYMT[ZI{_0sOmla~y)*vLL+P  'fm9 px^/Wwݿ\hR|?8M;&@6ax[79I҆(OR 4@8<| x뫹zě cA #lJa^L$W_% BrB^If>5pJYw@m${MU<[8QPB/6Ed/!q>1[H՚ 201=Tz %q/|îx~m-4x/1oF_(x/Vfu(o[\.&'۵̠2?@i7m̼`ˈ:߮hoxy+ 33MM}3'7hj6pY^&biЖFГq..=*m$7%R*$T=(-XB&<I{[{2޽.'Y_K2KA롐x5@yZWK=nZ it͇ZxMoqj+}-9Kܑ@b=a%lԩS2\@gaaqu?ǖ{]1-&vv xܠ[ECyttBkׂjf.z N,,dIHhV_ ף{Pbi#~ YLIsx"(.o~ -]A--!`i 5G' \*stÒEGD*cUٰb*a& 7#MP-6?#13D|-] *G^ ̨.8;X(-!lEC@lp5qm&r*zJqq%$ˎea{ [E92b (.P:rTXV~L{Px=| ՈĭDo!)"֎`ْ%=2 1PhrtyC# d b5Au ѽav}M]Џ3q\@VK& Oyh0QP&`Yx8(\" - p-(BbԬe(P G5yz 遯8v!p/(V@pma")i6/f5ۏ: B: Y `^N}Gͣx3|( RڏҜ? NE2 , f`7JiGh(^03("KiB)hMf o0C G CSBr/4!5AnoKhy @Q>8]3&) MXTŢ LE3 Vbt1B*}LL4m-:; }B_o<@1NFt8 <7!'4yow@^ L^;4p /*62`NP1N ` 8hdàJQ ONC Aq n}ôhP3rb`bԼ`ng.AԸ56 `WW9 k3C; fi9Vt/@ %6$(0jۛ<< @1b76O\4}"0Z< DžԽl2ǁwNlj~Q0Y"}NXW'^d0u]?9p:َ.6_ҽ1 v*crR wuu#>|7 M@ӘQxiܘq:A#>@IG}&@_B:<@ GL 4@e05hƀuHA5'F^ H6/w@NJi!]!bJhL @DU RO" dB "ĀL|TGhhy F еQtlbIENDB`nHɿPọ*XPNG  IHDR{sRGB pHYsodIDATx^[Edz< (7C8 7Ġs|A(lk}(ѣdApOH(rQuڭ2o3f_ӵS;nYXz͔×.o/{@h333 sC !4$q]FCh!@Gχ.[vl3ڧ`Eza]sU,LoID {s{q`B2A!~| AU(c_>W^uzD_G%펆^T{DQ¡0A cd0a ]WC/]/W?5&Q׶>i^G(C2!  %PC|%o9C}o|hW‡v0&^  ?u*_fŊ7on+7n2F{>n./h(:?Sᩝh2؀|w;am}yΩ6j4^YsyS=|N)i ퟾qęuwdtgn[O8G! !p3@mJ 5׹ݠaڇhyӼ]]xqYF@]DCX3*{>Դ<~͡}F@` sd:ZȥJri$Լ~2X N,ßWC>-Kp?}BCMs5#,Psnv77?10|;w_"}dhUb"Ru.J@*u18)6YuiT@v*}ɼÊ~\qU(,1ř[G;j)|xμԨ0G}Ӿc?6 ⴯d^,|bR(.!G`[^cUJ^ĝ$S;8%P>%#f95G vb+k.X=!7Xsc˚#Uk-3k0ASJߵY%zZ5ŠKnӼFO/y8 )c 6e>Pj/_<콞ڻ{=[{FKs/vo2?#&o͑]rVznc5ifk6hb~hysx_&w6־IBc?aޠ]/NK%_| #1뇺 ͗|kq1w͑`(; /3! tAU)1B]H}@CǷv_F/<3r@Hhhp۩z}!e>_R$.2L@@ZCJf Li :NDpi LVi ϼ^aR#/@82琂&@jL;[ _I$^UĽmr8X7YjXm'TYNהrDnU5 My-6! |ş5T}[}?fǾ.6x>>]lc^gEsiI`Ы"趾:~F>䁑 $ңj^~/ZG0sy3m_yܹ֙xzO4w`nctnqgT99Olԏ39RDF}&fHQ>ρbΔ]T:c`ω ާ*Ϙ!nz(V;C!sԹ\J?7GUhYy/m'KgRFs>Fr~M5?ƿ$.T-s|]L oG/YHE^F9#6-~%S]"0U'Jw*G\kJcݿ9:=jߡ>A+٢>rbUIl=䎎!'޴}rsAF2`)ٽ ߴ ԡ+?vgpԴ28?Xf.C<͒m0Ȧ#jXBRA}i"UE,圓Q+3:o]V˫,+I)! |nD ViO mś ={ƽip'*Y&bA Kj]ˣI\4gdh$|&AhG ߁Ɨv Cd3'" >TO-'gND@@|Z  O*ϜP=$@@>T9!=zjI&<|TO-'gND@@|Z  O*ϜP=$@@>T9!=zjI&<|TO-'gND@@|Z  O*ϜP=$@@>T9!=zjI&<|TO-'gND@@|Z  O*ϜP=$@@>T9!=zjI&<|TO-'gND@@|Z  O*ϜP=$@@>T9!=zjI&<|TO-'gND@@|Z  O*ϜP=$@@>T9!=zjI&<|TO-'gND@@|Z  O*ϜP=$@@>T9!=zjI&<|'\Pw3ׇv3>DFL؇ZO IOU:i!_@`>TFP+ 4 (>tסh! Iʇ2x<>TĂK dP ('PCͼh/הAoK @r446Z*ܧ4b 0,45{>꒿=0@_Z9Z%χ"m 0S\>Sk|(_xF@#) biF7'BNK;nPw>5% YӞ1@=‡!q:ƇN0 V6C5IENDB`nK&-f:kPNG  IHDR!AsRGB pHYs+KEIDATx^g^qˁt$5b4Ԩ?(bK54 \}ﶷo veeo+;7oDpCH xKD FhZH +o߾xu +"o^,Īa@H*k,|HD+," '́$>Gw)ZG);&GjuоLQ%#[sp:# ѱ:rRkZ;is=s]+8lG'tܔiHUOھr䴩IӃ-]=SSjK^{]5i^=Y:vNViju֚g߻ 'kEeUԲˎ)/Т2@H; ,ΖkKE0J,sUR9h;e#{1v{kТwv-zW7Q8:aX_g̘w^/z\Q\޹Ѓ>X}f6A,Op((:ttWE $LB*>+>um* ٽ`5QթG,=jɁW|.RΥ|>DH:'0|MB0ȸu^G.h=7@Q>mlb^]7B >mkK+mv^KnpnpoC8`TDH .-z}]婃Gzj8p ɴn|-rS4LԐgȏ1C;/|=sM,ĩ;Z߻:$ waUYˀz.*<0+;~maRCYtuK1qꚟ$$^}썪co*/G^_d¡ |ͱ0y_q¾쯗\=L`wZ!2n"z^k) $`Cj΅;==7M/g囍-բ喉 RkC}-Hw]YC҃rc1V ƨ}/_x%gƫ973 0f>Z9dJ6K?߇bհ_1|s $l і'%q.%%4JwtvnT!B?o=ÉE'&AH Ou1ABZIQkd;gPR_O2oG7qp:8m`<8m|@X֢w9Bt DH?ccwsթ'2[T~93%VϿ|>$nR2z[uM/ĸS`˘3 Ux @t`T/S H,Mqn5zX|2S`.jvuѻ V|^PG,j[um0onF-/QuzrճWt 'Bqy+2cS\JzeDz1v#+gJzxGD K x]WdBnl0x`D@0WOHVx(Glë.l7nX,'B';< $֒-S:e,4<1pĻ;|֨7u?n9X٫|Ѣ FFH @ϔTD:Fܔ=9A{^zNMW9 v$&ɮ%H~fʼĚv=Eg(+MI$B鍴6Y㊚V4D!QDH Xu@xۭpuL߱& j|Xtq(6jڵ?3GRfjf^&Lf`6[SϖERHK̘ϫ{!.Y]{i.}#cM6%H $@Wڨ1-TjДbeRJ"HĒ#nHnbە"f ڕ$2.MǷz^XGly.p;V$,p<8HMtO>؜}zfu- mngGz緁Cz7'ڭ>Kso YNdk:#7t1>wO@z,֎4G>&A@cWq=2de:x~mDƘbL̬/,Fɀ-wBJֽo񝖟ϗ.RGnvyUĽƩ 8`ܠ_ML IR.2&Zl"Vg4iAvXxӛ93#9Lwω\m 2~oYA!?5Ϻȇ*!H7 KCYZl[L&/u}0G?SRZz6׮W&)?7C*+v_*Ypw/Ƽ VmNdi&,~"Eô |b^FUR^;rQ+;,7Mn<"pU/utÓ㘅Fxv(]fUJӔTLmӚFbqHjuo|cB7< $\R,҆L'3zH ^@`,8{AH O&wa@x߾}Nǣ"$Knpz%v$iZ}j` @H {\Çe#Uvi{[%,@H Z#6-X9{D~]lRnSӚ WȰc"1w1Y<<'3JDIBF+sǏMHIZ | w@7ܷciE *&}={ roifRf7858i6bc"}hHEV>>}:D5i俛č~g#ZUZ?*,N}b-R,vIDʭOndx|uI T~U$ݭ35.k4EM&]Qy(=` %n|ԓjs/p)qJYxde2ζim|!*+&&&:&b~xra!!IVZ 7mi|pf7RXGPeXA压Mpc&<҂BRgAmWc?Vkr/*=z7% *OtRsssiy -j[ %rBX /6O)X=vUK/v}isUy˳]yݰ&tTs=u׆V*]S:JKb) e_gUF>d!]7˚^{4IT^w^[Ҥ-iY2 nJJ9/JMQApK$Uy}[.GNNN.\>p,z`Qx>c"'ML8A'?:5utlFJF83Mi͔@if)(M;eRrb:z·UvM& { u*2(&+1r+s<'XVYX,SL:6:nܸcPneee{=Y^}zm qzq TxkqOs!ZE_~CiTZeSZ U\BSVKfZTxhz߳/k\xqbi^Wܠ)n\VHža|O fwy@z*_]WEu`@wbNÇi}HHHdTԅ.=I2L QV5J"ŗŵC5?|JB2K2-6jwUbc*!nH*cDVey1(osoC\=W/ &yED f'WT ,W|DDDmmD! &5*;;R1—ہWjҭP8|ZU3~ƊC O)'ZM/QSNw-Ip'BMԥ=?ZٯOQEEZO]ٗ0z@ze[z)iiVYu-ߤL7MF|5+MоBk5tܱ%0Y-c'.;2 `]:+}bb"k˳81HE@>::UVnWGh xٰt?]+9'-D.-numk7/ z=eR"uT+(5"(* ^ʄ F" ~P7h#3˶l(۶xw-/ZdK gE[}+qglyVnT*Hddl)h7t~-A@_RR&<"??&2=7G1Zi'XαmBQc-|o% dsk1*J @kURy@wrb{GAAl ZwM U E/5 =MYuVj K {*ەA$a&L.W#t\S@$!GrGgO*k\]G?˚uּ?_?wo>C&uST|G~xHLYi\!mTS5͔X7J&`Po.}S+"C!~OlPXP1t}}S6Us/01[ Lw l|KK˙3gΟ?͛3gmܡ< r`P(ԀS˥/^?Wa\͏.kpA}M%:MºfRnmx;ě  sL-FwZQ(8WygO؍l_iavI=+*IF~.NX/N١rR[5Tt>No&@V6hb2X};\8s(Uݠ+Nӳ>J8 j$p=#令(dX*dE^{JeLH) gĤ7FoSy"`Eش^',`ƓH^͆ɇDhFՔJclsS^nø!a 5I{G!wz)$(;FNA'۶"}kk+ہ=֝]`%Ns΁FMm3f s`KWY@d->ľ8'CnWO~od\VQ#AȂ_&X ðLh $Bw_*1T>Q1ԨMWi B`, 32?zjZLpiOaX~ A©s(3** v\r!!>ViH[TgXFcfgLcC*0"ҋt 9%E0ưl_`YNvF[#ۚv6Li3PjUsqb%._\-鯎LWJNQӔ2uUGN#@&39SQQq)Ϟ= >qDrӧO>|܏v̔Uy n8!C@4Aׯ_g !I3 6vgV+cSEmRa[a`J Ҝ7Ui;G2 Ȱk&bXd7|LAnYhÞA0ˆ\alVO[{CZ +`4_l|Nv[׳2 = L/s$VnӄVDpfnѩ˶}d4Ҡ0 J;_擲8aTP*7SȽUh$o+ty&0LZVFg(H]oӧ}PӶBaj}}rcJ,zP[Z`S8-C&tWFo߾<9i<=2w; )@MMM!eeܹmr/ulF|8`GZ,YL1~y5>9yu Zz Գ_a?ƛ5scߴy7o۹)q˞[u_#nZSt~jߔ_%P/-F4E=;ՄAyx! LHlp [yy9thЕOɪ7 'jgˎ}CBC~Py->߿!+257+tŔl6U6ꓥ~"NnR d͏?xرG:t[~޽pWJmbZ?):'I൛(Ɍ3Xr9m BFp*1^?+AdHV{L9֪^_ .#ap M9Q9(2PSssn/uFvԬ92oҬyG3Q#2i^΄y\7/2![M l >L$L<s#T__y{'[H~VL34Yr7l8c'~tvoQ}AUbpapӔvUf|U[{U;h2%6QJ_ȸne#`(X6 QU6$d:֋'GW1I|*jF&BO3 j:[<zu[E \͇D $$$ 1$HxU#Q-ZniEM)VJ]?p=c4ohsϭay S*DD5"N,zЫS} M`쌸i3a5_V]Xq~+Ҩ7o::$LB`5:2vvzW븓c~rz M*=T&9lcѤ7Ɵ +)X:PX!MOI-{)Bku)JQF ?2ll?kN=0ɚgɎ3'Lqi-j"fg ʒ9 qY+E}kN]`Ec-j՗(x'vzWß0'%yQs' |O06p }/,,_c  >L2 }Q7K}5,Zf<: zžp\دF3Qqfوs'SvԔcP2i4׫Z*ns'Q۴>B53.=cћa=\7nMKi"!!`s'w`[N c =h!s[6zQq;e(b:%ǬǮ;><&765b@BW" `;8!C֖Æ1cnn< 0}@g&75A >۔mIaE:wҶ9L4/[cELL 3Rmlmlaʿ>#^z?۔ ٲțf=ezejh{Jm4`,>~XA :wn+Ίg(c萜69W䷁sU0Em;n mWTUVtAr鑙c=Բlz\ HFEXDfCTֺq,?`WctË<{Hp"#vXP.J{,PrwLGꛔ3J4dЕs hi˧~ZCd8Xg]w`I:e:MA8j?N]Y}O׍T|A`CF/ti/XrxqT}& R{L`ʄHxd;͓(Sj׫VFEG45=f.Pq/cDz4US>UUDLo;oB/O}pm[4FD\d.jpj3,ϣ]<[[aH0l>lΊ~x8eA&;9{b^?=FiƘ#2T4.\o_ n Oڂăd{uj"+lNE UZuǒ(jPZND(&[b#U 'cS߃TGݱv9CA]Y.>]ooi4'iجܱla@0TeĔ$pUUO26B*H[O{ x_[Zʋr "]ڵzo{n] ƾ+JXx$uN%ே;V $Ы Y{{.G8 `uW%`+侣˲Ì@v7=qv0>qZt>cG88'!BvlvvtvflfztjVtF߈ԤVcC<7A{-Q]sDHcp_V]k$D.KRXF>m T73kw=$ ~dx =j}w  2 *Jg&=|jMo5f֬5[T;8H>qxZdž ׈..8 h@0m6^nl}:`4Ȭݯ=:=xi3Lw)/gA^G.h=7@>⃙oJoC$`5j`60 AooO*:JtTož5>H2/)ר[hy rBEdj*XxI/3FhۿcF}Q= +ĕ~R&ؙᦗ~u3ƏuuuÉ;&{Wqӷ`` }o{z;GoS,pƻ7~}{7[͏{{#,RQl!標|r%STuy<44:}ݗ:az5< £i v1qHG!U**uE5 oW<Bvo+i"?]%ZIQkd;gPR_{_.c>%tjÁ|=ܣ^{b;ӥ*Gͦ 8ښP*""΢we,w$nbr10$ gby67V2{?cY6Ao$srUT@Y8Yޫ`dJX :Ƴ~,X ;;ۮl\Y'g-;fGf8®`NS`+V`7z,8(E >I OGJCaa -2ᆵcƜosbAb&dY1[cㄤ.hQ0ҳ~*i 17T~N}wqo'k~w$-]vGSt t 0amf4`J[0~y&RC6 e6Mƻd_G q; U ; D lDt-z&Ѩ3tF֠m7aF"&F Bh{׸nzfKcusu\7CGF]c$T.`*fP ch1V%,}wnz]b@,x7֖Ư~U9]YljnlihijWj zK wK`H p)G^&L $EEO@ $@>uî7%@H k<U؀AH !B51$@@61@Hkw g $mP =f(]sAH tnzUsYenzzB޼K?ooo'{pCH 7URßyNen=J}Sz,Ww8?=^j};>klli:ä@H_ؖoiC)rM"u{~cEllJfc=y F[!?R(}L MZ[ $H/r]六<~ojvK';RidDڿ}#+FVo9xP{h\R_WWg3C /XCL $pK?7?e|}Νm 3V,Yi?12iR_ӦG@xa?䗿7>7BM-]:q57 ?>'??\@]*꯮sAH t#jtCfL9,T6=gFϻ-멁Æ=ȰAbTa7 1#=>>4ot[MZS>}̇b x{ju7񘵫˃^T<H _BeNg9a/,:uzZffԏ;J.1^+Tgrrx\TsY8#_•Cd u:"&@+d㧍)2oT+deEw9յo~pMJJM^^`/fĄo%v—~y[UxÍX)!{]!v{[S@^=@t R/;;D5[}%y/dcn7[NSsON W oMG!$|#acҵRi+z7)^gP ţU?hW;Y`L$ Ub 5o_[gϚu̙7;ĶS'R?Әh]j> $BO `1re~ݟv I$)Pt@W%pbO:eKzӦ4⮶yu } pa%Wqcj;'_#𖀿BES*yyٿyf|_|?y嬏G{[laqtOY8M./n y[A𓀿Bo`b׿r媕+r>? #$ X#zjO?m-m1+OgƤ_t@|+"Zg\;D6^")4AH zuÎv ?`A3y:C%1@Hrͮ9m|gxWA1)L'ќ,`H \Wz1n 'q99W_}f?ۇ'c_mş#F< E_g+Z~0@5|oӳsg-&%+d!2+_}uļg^z饅 rqd,I?\X'q\5WRK΍oc\%ޣz  M™`'+VL>;%K}݉fEiiL|/-߶k];/].ҙz3 f3b-☸]zbe 1!NO8Nd#;fwvٹOʮH BQuC.t!|<%/N:5#3xq^{50fǽN\6db'O7n`H \'zF9( sg/\+_s-sn>yJb"8p^{qYuwե@=BL9ݕm&ƅdž?pϽoj?'zjɲG>5t&OvAxw._ #k jcH p 3lgo|){1{`/Q>o͕+σS#^\t;Go2^𡇸HÊ !$@ +zՅmlw/~W̜K۷cڵ_0w\]z[*FaRH $z: RN /@O2yȑ~cF;<#dQ~^0@|+6n"뤈YOWof $qt/LTL^۟%`cֶ,qIRūғȮBr8n3@/%ЋEX;Wկq׬Yy]2XLr$SݯDƝ^1H N_g@)keEš0~ 0Uo<סzV>G`?W;mx;}7Y[mݱs3^O8xoEq'x΁m:um~~?fL2;/ WdN foX/"QH ^ }Nu |8e\ $zB~0"(Z&YcjH B_&_^-&'GFA7Uo:NGzVKIi\<ΟA)GH@`zXoo֪TmlztGg}SCD"Xi|$ B=? ^OE9u۲l@l1 *.yVV\l LFcmM6*&&f̘1'ONJJhH +MO~uEkcI檊 Prj464Eڶ訨(B>ryw<@@i׮Is;tZmEiYkKs[kkYq < BJ9?$$$44d6.z=c@H[ X-ɓ͚ gJPmVAvzDDtdM߭0s$@!`z4ʂjD%~dGM5  # Çn&L;t%&&¯`ţ.΃@HwzX,_M\\Jˍ(e6,V $I@H@PX=$ =$ zH zH @xc@(@'B/!$P $N^ CH c@H  @>8z70V $B} $ p(o`@H@H@PX=$ =$ zH zH @xc@(@'B/!$P $N^ CH c@H  @>8z70V $B} $ p(o`@H@H@PX=$ =$ zH zH @xc@(@'B/!$P $N^ CH c@H  @>8z70V $B} $ p(o`@H@H@PX=$ =$ zH zH @xc@(@'B/!$P $N^ CH c@H  @>8z70V $B} $ p(o`@H@H@PX=$ =$ zH zH @xc@(@'B/!$P $N^ CH c@H  @>8z70V $B} $ p(o`@H@H@PX=$ =$ zH zH @xc@(@'B/!$P $N^ CH c@H  @>8z70V $B} $ p(o`@H@H@PX=$ =$ zH zH @xc@(@'B/!$D6jųǀŷݱ9 $z5۷zuݰH $@滽# $ӀУ^HmuAH 8!n@ @H 㺙>} 놕BH BUjsUIENDB`n׹k(Bܳ zPNG  IHDR[#ZsRGB pHYs+kIDATx^  ZF=zDިG*Q $^EuC*DKsPV.բ$*H+%}Q&J%WsΝݝ}Z'{7,x    (%N2xNtN 45I&͛7*Va$@$@$@#0s~s @^ό65lzݙL퀕u m/^rŠz ^tK8:'Ͻ[KoosKp,U5٪wL[z!E惥z$9@r;XzVA(pt[ SZG2'QigZih#Z?>IvX?J tt]&OdNi ٵ8U'FI}ѯA>$J |Dk i)KJGG7mm+@7âvqf0Pp@[0XX^5NZNc;9^0d62(+)r A"!lzKE>;;]5Ae "}?BX]ߋMS ]wƹ:gpOLyfw%a-x^f;@o=뀼 si#0fEޣfee/hW?G~٭Bv"PFV SuHJt> 2kz7EӧʛO] ` Ƕ^[{3^TrJ|U;$Gl>K*&{|vvN`W}t^]=qۮ({_Mݷa__={qĊqtK]c}UOii_ǟ#SvUGs6Բo휎7Z(=y}tre_AN^ֺW*}Kiꖱht?{3W_Mn ;LDн8@lqC6&КE=B?ݕt ~c'rxvdpӝhLKN)}}^:b;^U{tg ?]]Κc='z=W t7v-Ӈ_3Uv;|Zğ?"W~_%MzWsSeZLFcdEӀgW붕aD1YR1zS6+`dE2蹜"+R*tJg׳Mzg'O'`Edm5ow2V=otʁ;N4yytv.) J#Je/LSx'Բ \?/S:oͭ dWWTRX^ c~˔ʜJRq~_'/+I {蔇Ȕ_NR^6]=P*.)@wpwK/)d߹NN$)˼+߽{ JEY>'Ɗ?KXqTN 4Sz?}"Sd9ӵ(.$ kYd:Abr_R(DIkYb*(^?Tu'Y>Չ޶PYk_{blHd mYo{nտyATU{P_/P;4*Nb<`hXBРH v:N mKπ ƀ$? m?r }"QdlX3Zdy^YԽ?}r'vs*G?5kK9˓,CGM}xC_gT'Fv}3y%8q1^M^e׃>=ɫrc9*[ڞU cTveDej_/*TdRUJr^@J%̥}M=Gcαߛ!7^0:3v7wv-8`sG,_j@GqV :ꇷKk&R~}6Rd9zoo+?-7κW1Nqݩq߾컟Suau ᥧv8ul_a4/2$o[(jz匟uR; #"CH?@1 ORۡC;;-|3{KWTn[\^_gbKKRYתR T>XW* wd RU*M>{Vl<OURtbՕf{Llv("Je='mfd'?w斟 .~]=%{C-`诶J0%|ocǃ.ї)vTv4F^(g2]z2O7~K!aşP*+XE7x oבe=״y?>ꕐ)J`(\`НWa5c-(\I:T[o}H9BO?|wֱ߭*0PRQd"Jfax@x@L[9ێ'\9(T:qJ#IU%Jg݁Wsyߵ{s="@aЏyJ݃QEV@2$JitJ`hj rvo5ʭg\a9ˏgO4A-XDPEQbg2:4S/=ܢE=?)r(slTRQ%"Wd\ū%MƊj Yj$~gbwIѦ5"+FYwY8%y~tX۾?TFd{)*%"+XODV|ӷtSLIjP r/S*a>zwW~Md0e̕@pe_3~4% YY] rd۟OU7_n63LIj="1OE-NcZܼZ}( 9+-9+T*@#+0wʬm~n)"u@3BF/2g>M[IHd[aMwY{/^2hZbyҏJ?{YѕJbjD"+Xes_a;VX ʜ(DX$1 =YѕJ%DV2 t`%"YRR~,Y9G0 ¶Uɒ}@2ge?m%z@ڤ5HM@S1D+\MOok@@uvm.ϻbgiywU*2tYoo (i|C` H a|K> ev瑠=a THKYȜ˘ބ1M1 |KkM;d-zE ^0dHPMȗ@V|5cF^+O? |vv.Zc n |➠~3~hG djCl`ʃ752&ૌ@n#2 UY[ ᫂f~k`?97mܺϑξ/fߺ{npoxQl 0&9+`+c@2gEb{sl-sFaC`+v[ ]{j  S1|]؞Vl[ +؟qH^a˾ d9"le-lͮ=Aw^g=OO{wɭ\HPĖ(7ɂ{FB79+b]a'1To)#?&^?YtDTYlYBIc(E+l+ S練{'b-c&ma =̢Tzzw/0Uy,U=K#3B_<ɡtwi)!62K p@p!Ef{򥿏<@<:"h_E[wE@ӷlV;睰ŊzsUәYZbEuJ.ƿ pKdUQ)Vz=ŎbE5XC$+ZdC"Ho]X4i DCRy7^,֗A@inW^n:=*/2u12Nߠu<UK.-Pa0o "+]uw TGV"NJ9ŵ_?bk@=gNS8l;Wago[GWDakK#-y]]T#6":SI[S$WNjbw`6WMXI'Aj+qȊU%,HHH9 ҜXk   rW++V|' & K^] uIK]gNCªg4yYU/kX9i,ԯ2l{d,y3QR@Z>9KvUuYԘ{MIj%yҥ^\\ۤ3= Lb+|n5]qYQf7V* j]`eᜥ}F7(ӱ}7uTL>gv,g}S_pv`)J HHH@9+O>/ٲe 3|{7#Ya"6a?r&3[ehJYu7Ow>ڷWMW}2Se欌^ڴ2ΝފgĬ$@$@$@$P mwaBhgzjkK$@$@$Мb|j]\$| o4)Rӟ-1~}(>R>wlͶs6t>@i /0bĉ Q(+GEVkED.y͘l{rGv5m>D>CFdj[yњq1ɭwPkfkij-Sk- k͜tmTYH>"JGaY3J,@TdoDg :qȉ#G}?=GVk.|n%$KلˢT맞P-Qg=&+TKeE "CgT2AHyJ-󩵲dɒDIPT"˒OaȢ"+$$HWKd?emSybXUpEml?/1'=S%=n-  {z{YłP۲GOjH5VCRW*!},zȪvWa3:+ؐU&ݱ^!;B,0E Ԙzo(o k^r,8)ƍÆ?+XN+Z$NIXE9k~8c*& ?()IǦGEV+|o՟@oKN "X^Q"^U)3G=i-zYZyk.1-$xGeeaGJ|ϭ<|YE{rJ0&kWirqc e#3>6S*HObU2%3J(i,~RVC<"Y9%4R6?*W=AY8pO1*1_t+"+b2Y*Ȋ%"8bD1"+p@)BŸ5b= @\ȊMI)Jź(z%iA%^2̴z Q(] U5⎋)I^ X_?Z=~WdCvF, !PɓamoT<ɕj:REVN&Tl/a YQЏ`=6iIҼYKŰ"+Ԓ׼Y'k,9JYF>ɫ/,s*KA AYj(\W L%"1qbرcsO F NaI7 Cq&d$(b^Q$"Eߎ3{.xLX5%6VW'AMB:eBκMTHDUb'38άTv:kaxPJL[YN5sSPL^ѧ$H/SUd!#Ydu.W)=[(-2UEV}l% RL Ya]=nʔ)vآEk W1떱cqIND$,yieyEy"U}dNƃ :Aw)۟sX?sl/>˵I +9(=Yڷu rn*$bO3Z*N"A?.U?g%qdQ#KrvAk֥8s!?+AubA`v-R7߼oѢa ?< T#ޤSYIQHE\]rV_BtN R&,ԯ2ܳ%onLѾL>Xpn,>k D>Z}8MeY9أ&LYks_bB   Z'ȭz360,Sϟ$1ŋ23TJ>ec[.$@$@$@$@9+ J5K87KD/nYB}s7eB,fiL*Kețg9w,}2Sev,g}`0a 뜕 dgaKlAYzGxWpx>9 pXq'<זz s5pMz7J{-=$R)aX]Ro 0^P14K$?Ƚ$h8{RG ƂrdIw > $?820@7:::u-(5d:@Ӊ 7bn(+ >/+R`:q4U:#W:;*q2eK|B|;$:k+jku FA_/LPx>a4YKsAhq]qOb1|c}>Yn\촴I`RaNΞtUK?q/GGz_3,H˩~ơ%}@E ?1x`k8Ugw}ꩧ7|7 #U8f: uN꽗,|jP{ǯwEd% $u .hXY>c1x}@;CnWʲ} cw1+v<]Q=݉ll3{qӫ:=H?b&~C")*<-R"*]PJE ;{덥xg\^W |Z;@pVo#q:ig}%{Fp%m:n:K[+D'l]qE/^; 5̫f+%+VȤ`~j4 O?~ٳ#LW;ЍЫԊ.އu莣Ba MI쎽fĈh;8H3wg< HBTQ*gc*z)d( Db=唓ՉOtlĉpĩ9樱 _1˗C@RpTOTGZyXο^\2_Opx\U֢WxKobO ̋K&-Qc ,K0cmZQ D SGug۩o2b5䁯-|l#A8d&Uƀ~tֿr\WcM1hkV3&}đ]SrT Go?~jm 2h29P_~є~T0/BC4ZrY'OU #J'Xm&M5^*|گo[K,b z]޶wwJ] p?#s?S+]xT|?&^*vڦʙmoʏyg1˪ lzMgQG[_}饗e' f2A=T[f6(a nܹ9G\M|}OO^uYg6BX>#G6{MV x2?ViMU+(' L6 $ M -S-~Ij?`s97̍P ok0c\M*܀t~Yv}mWH?>ӹo/`喴T]c.. I1cN:bČ8h2ŘR^kpP+ DG4^ sa9{]u]/Jd;vq!߃\<-&L?81!WMgeHxװiU.piI^dEVb2[ަ z5^'_9Р3ѷ|]vn[J&gu/+e@T!$P30;O<[} SQe>cu؞?Q}0UL/B~d t?p@>֚VǺEx?4WEaQ6\U3WTJm(hxϽ?5o~;GBЧ]wv>zWADJ_V6cP* UXxq2?2vOn>"|=M:0tV 힫o{ɴ9 .g!Ndb,Ց,`:։ d~͵P{?&?!_ _Ċ?CI'VOx߳eΊNFz>{Y,D.X_AU\)_I>)gFРʫ[pkKx!c?~U#U`Tq*MJi3\|ƪFk[*.JO C?8L fgoVǩgD0)Fk?c !Vѧ'?I#4}։/8 sUCue(,PE-y*W;TSΤް:b!ǣO")UC[;,O:8dy]+qFu>||(}>컯ݭϻïnq=!Q>I/ XFZNNP2(нhʾ2sɲe™M%?PժKYa"2E,Su! c*.LVyM_=V6"ht" > p?DnEs,1 vHe0'xz[JɞD:n=we8p9!rhǸssdXܩbY&sY"؟2e;xQGxɒ3pU#JmmC>1u@u^ѭߚ@P٫yQ]}[VwAwCUDw5hDvde$+ =Aȥ V~bنc4o`$V æ8iTZ5#[yDn zI  һJx-~tJA;8 m׳"pՁؕ8v Q)s..p)%y!F#[o[ۺ'w8yx9i@gjj  <(@Bٝc-c ^L"%┊0'։#GyjJ)հwV5&~>z;{È3o${=W.3sGo4z[<{'D)in0G:;T"z05 XG<^Q됞˂'1dzY1}8)\*Q0,m(h8tS3"}R$7 _{g/챇1ήP*%}x60JKa~'2[+| (oTĄm Ozw\aP HUCڝ,o3. ]{?b̮F0qj?Xӏr%X|cmou7.hu<ҏ`@QYic/-uO ;0`H&%ZT|aT}}1JL[౱FjaUnVHR ȉ?R Ɉ)O.ߠyb PH8\CH.  >͛'w> :TSƸoBƟv9g[ΠMcR#,FLθ䦛n^g Hg!Vfmmk٢2yЫ+F^ #V@:Vsa[>B as_r;HL;; EIr8hǴ0h9X!& yCIM} ѭ7\4<#ϰe/tvn|j2ǔ?.! > ..:?}(b,xsSbb*DVm`5v }X.Ѫ2z/@#'D9Gמ1 V}yߐ=VKia4;~RU 86UӫJUd6uJlmUaʠ~P֭moi leF[ϰߵN;^:VDV z2?Tx /eFX@Hqh$2JdEP=y*X1쫶dN ))q9 nJuz [%V=v*X_k??]r0j;"è ;o&fD) "giSuL[l_ErFU;$mR'Jw,dc.P*2 J!Q`'X|5b$ǝT1q^FP*[VT9+aջY_17iX{k$mV걡?zk쯦iBg#n)FO29y2.ca=y Ƿ?R( KX/+_oVT#v |%_{uUmT.o85#kn8Fy%/> ^Yc;Kܔ| 3oh8/g]x'-1li)yf䇱m~Z~lq{ j5+6WƋ {&]}/>.Ep 2r'YA{w3 3Vʶ21p'\1vĄ# Nh Y>#"FMsY#Zq Qf!_ibZJ/ğ !'y< Sl.뎟VV=4ɬۚS[g1~raQVdBX'T,"{5]Z,7LD?Cl\䆅0|lw%GC`z1:+P-+V݋ $h">{,6X={!ԏ,DC:UY!T8yP7ޢ7<W ibP*'U47 B)*_z;ѱ[?O)̕U=";eVbh,;M<-}o h/@sn􎬬,M6O-Є!6=KuJhTuc~s{R6jLJ'oM^8ѐ__Ă d| +|p䟯XY坷^ӋXXY_t?UxE^NjDeAl:qַ+Psl"O-0o}O uрlh&头豇QpAYqչ- Ԓo{O Ğ,Wjt}QCBR+󿖐wa4 %(?7{+O o,xfꉬסWtVXw ^~_^dwki=Z_MKoIjIx y%eR듌^ 1a$w0LUs`l+6[o4?s=koO&HtH W“D|vW7CʋK_3gz<,_٩Zޒ@CLmq y<*SWJ?}t˯ hz"?ę|N_ #XW+Rn3f$ "cQ Jhx6@  +[mm3; @6]6liö"+LX}1! Ԃ%z#<}@B5^dh>y2iH^ӵG&K<}5meu-JK& @ =SSճ[F͎1&|:Z+g髾W gn}6 -/]ˌʲJW[f\!V?ðrˬ1TZvVk?ip{-><ǠS:;;6dv0^=~p߲sA{huvT 'szh7xb_ zYF&2Eu(Wuۊqh/b~}4xH(hҥ .ԣ w[ka}f ?T#A51!d`˽fŒoCJ.#L rE4$:%҃n'ʤKc;Ynߺs^J\Y":5|J/W[} \SwGU~~q{?Z+?`aYVj+ ٧]| ʔ)sǏGCL%}ɑ^tK7JP_tT`Eㆎֶx|8 ])z.PE {WPiJk\Q8"XL0Ƀ|mL*#&,Y4~,Umv1Rt]b}aqwOV4JlY ĥyP-],!V`*0<قUW* j.!2"#7͘BY'=9as?*ow(>(q:T0;&Տ_)ЙeG"+C;Ȋg׻!E>ZMYc K 8Ɉ d鐟} ui 0 "Ku[pa}'E`cSf8b=g oN'RSD!¸!VOx-in}^duz[or Gnaj=Y\ d_-* ˥oGeU=?RWFj%Y.ǿ휰,Z dvAz2H֥ TE.TlT{b]N 4١WV[}y-Z0TXM^"0arEVݗoqy7.{9諲ߊR>uܸNye<(O+B*ݓ&=R)Z<2i餪^F^oAlkkgg+, _DvBDSET>0h= ){Ĉ2V8ɧ𠟯 *JG~LWuކ/[';?~,48K֣@!F0 MU`u%*g~B:^ck/{%YOIV惱?dFu kgKWwò[߼h%JNNٖdjO4&u>_r+eGM[zX-;]D߳ZnZ^y* ]D>Q}Lh=mM=AӏJ؇q'?J _?S;["+Agp<橀Þ ",* Qٙ>khWwWEFXRYFs4+0ˉ#7ް٦ELcNҔ3QhЂ aDSS?O>$bu6~/VSW_m^琢COHP[YIEwД-11:-+.GsADl ]{륗_U|UZU~^qו嗖H2dU;-{t *]%62a=jL00T]6"lKlжv+.c ϛl Xт0 a?XWںsq =,s5՚w7 zT?OśB\*{v\'0YNw/ڱ/jM_`IXS¥زT$8=f׾_ *g-TSZV4pj?_]X{kTX0.z> Ka ,7t%+ݢ:dQ_ӂsߐ `YTaS6}-ӽaDVzF<#L#l84WJw?g%l@c%AKaʿ^XހsdaAS{\;X7Ȕ2tzkN2P>%X ;klv1fط0c9y݈?E%|k"߼߲-CsV~b[MX1NoW!3Pi$OZ.G%zըDr%C08: DC$o{z4c^8r KLeܸqhG(m \2d<<5vnRaz#mޔoO3' nؓƪzE<1&d( .2J>c?~5>}S9vܱSƎV|^3 Cݔ\5|0N+04 |sOaU;8U&1om* N 46TyEx Ym&ڑhշDR~|MugtRLt'xOUGd=6oQ>%kCN2QZP6o^6~., "t92;{6YcvT1G<α3HUbU*>>e "Tضgz392pƚ8rM㽀^}XASam׫+s+@9rd;2:Зh:tZ|p>E H@[&5єGS74[&37 cl[<i4 8I@p ypUxOݞelzlQ{E쏵 旧ˣo'Z{}RsgXtM ryoBGI~pg)6[+zR~u=sw}ǣRIFJA@>Dor:'C?ކlfᅬx*ct/;`OڡkAAHLſFz(ܕW\ !?o:{ u ֮qVmvzmfoa`~-*3O9Agކ9LRB +$@o 9iOE&=|8Q&ҊrqOL>{F9 }juOoFAW^-W<}MT*wz@l,axepg?~M0DFW=~V#-O?w@?.$F7݆SO5,!vK^| zoRZ$'A+,aj_0ؖSqB|+fϞ-aT \\-Y /TwcǣiW`SJ4"+޺jh?W|24r obnG'z\.v۟?~/5_s!HobotEtB!Nb穔zNv&j MxEʽ^cunRӑR+ ^=h4ז=V*|jP^ykݏ=[ov$ ʕҭ `s-(rWUѷ/znܯ_yܻ9_vzOW ²e?.h?{FgLz`?R}#3=r;dW,7+J,(V0/셅]JLJ9 w޼v}79l,7}ijd T k$#+ ڞII oyn<*P6oHMG=$QQ$Ubwv.<r ~́fch!5{ab%:++}o//گk&9 Ax yT恳l4Oߐ~j!ڏb%|ygpCF[|5Sz2) @avmQY:6<}5p-5J\%+/.}9kn%V+A HHH!0zԾbeS( ;)Jc'LT&~#LZQv>K-?% HB`~%V^I1m |Cj$u/c%4|QS}SOCLJ$@$P(r5VZy-G~~/_|z.$@$@AF/Oznw9i^/@KK6,h{zhҥzW^ye}ESF~_t-hHH@;ʘ/}!,2P:㶉#$2YtXɠMQpywizeOn>;CDOd$@$@fQb1oͧUD2t|tKXnaЇ~!VBλ[S~A_q)22 @A~50E!%F'QbG~oo] `L?%̓ vߚ Ϝ,>E{w}6o7۶~Tڎ(R?hWdZfiHH oAE[Nom b)"/?dgQMkAjaM[}WqYRLO$@$Pn -![]X+.E1>яb'vg0޳Λ*+W~|\PՂ5 3i2+WB.%;X; /o}Z$|ibYG6F2rS2(6ʂ[SB'^Q @vG}e˵R.pH,˽~2J0M *zN>bCv@}eW OO˶K񧲩%X3R)R}ס (}XN8 }ƍ!S*?Y%iЈ_3,K0kG;`S $Z9p' @- \󋛎>:,h1G 5(V6haÆa b74*QgЬ?ۓ/{dCVlc6~+}X)R > V1:[M2`-dUj&V',OgXrN  ZG\}/ꒇ,h$+ƿ­LUQa;S5z,iƍ`I0{0˄SiWHv0Ld*)P=^_ ԷF"%"҇K.&?7x+>lȨ6KPCNa@HH;W]}]=xEbd Z+F)`)zN| ҄ kWA /USZU)*5+Q/%pp V0+LFb\؆ .zWw@`!<@P,[*#s_ kR Q*uV>J $@$@8nӯyUUwHa^"quSyxwUW]\E_VVƟئc{Gb*lHVmˆa Z4GaY8HeձZk$"Wpxc'b)w}wG8 xw}?O`#ӜMu"t$;]FOv ,  8BFH1H>0xN ?3g9|]yw5Ĉr]dnc8p O=O`]"֬eYꭶ~V{.'ӧOG 7ޘ2eah+ajpee}|;' Kf?%ZxآuS_ϼZ(w #K.IsVoֆX6mɂm2EǷղA9;/W5<*^H_z'I<l} ΄RJ;eYѓc옘HHOࢋ/+|Q5\K푇 7^˷}O~DEB,'ӹXdK#˷N:?g*?Թk]:i UoS0Ǽ]A'YY  p(ji|ި}Xb4gyHS~=_xl\y&L0A,HPwx~3s GSʄ=:XYnHH&O9?J|ozN{﹧';]ׂ ({^X9 W.uM=ou9&}DYHH:("qwofW }ٴ陒HH,(F$@KyIlYRQ)+3c+jPĨPyRTxW$W5hA'&n=*yksCI+"yJ**aM؂^gIڈ)*ƫIץ81ʯo+yc   HO`ĉw+K_s @#{G$e1- $ v;>Cab{aB4 "5Jlmf&   p"eI)VVXT @ђe ۚe s訬&M*25Lk< @ ͽ묟fGVOQKpT2+K$@$(bOhڥNY}т X G٧2rI(VY1 4w<`+*f @*jm0ʬN<CBqIHI`EW4(R}u_}'u@@|%vXXa   XY█ 0ʰ=aWIRb%:Z& ('wH}w!(_r*+RЕ솛n5 jTT j9+x}nx1 4{(rٴV*L8svXi ^{Ʌr11 @wϽ{rsVZi?;Fڷ 4[S/?=' HA LI#V~fFefμ LoS׎U# O#VNiJdJ$@$@$@7N#V~tQ:4N$@$@$PwgDr9?كHHH&pwϧ+: .E'  hfk%b]"w{u{Xw   Sah.7^_șxRHHH2Ũsp izGF(E+3ܰR"LE fL>%Sai\\$@$@!XLhDmΚzP{¬%4"1 5آ'r,+EaE^(v)]ޚJ]/f$  ,Vpo :'6o RbOBIH@bZZ@ u,Fv=q5 *.Us0☪=]ruVAxy"LY3ZzZ͈ZQJWIHlΩkQ RXKt#G22#WD= w\hu١+SXX]U UЦ RB^FFCMCL%A̱)YHH"RIWj!V葏` .a164 Bo]V<)P≮`tyc[ HH %^iL6~Gl)ǽpo`DLY0̪(܈v5vƈR%㣪`) c+*feJ  ؘ ^&ro}d!6+9$%/V>zHeLZbX-WѴC$@$M`פLJňDӴWW;NdA] ERy݋SΪcy[ ӓ Ԓ@-jp7!2C$-%P (.#jD&`3dviȋODB/Kw#V.XX+ j&EbY$@$@yhApF^uxDQ7~[x 2Śv"*vHHR'J/2LYJMJCHH'0i$ՑV-]a2%@ HH py-\(1 + e ʆ@dHHH /bȥDPb   d_]-/Vp,dOkE4~0XDN#*V'?ZHj8FJok:z}vl%0~L1% @v9同ɟVuѐftY#@TR\_e 7jIW/=brHm]KQ++j1+WnpQ QnLw0j\`}bKX" 0]qu}EKآtR9I2$Z%-1"3ebi oJиx;d\\ETǽtǶf2 (@bJE0NKdEwm0hQB+֠ttftqSܵf @r+W*. 9HY9-v!>8R(݇bXDNhHr+%GlUSqfޟ]9ay[-8zt-ɤ$KMS:}Ǒ! _© ȘaHTcgصYK+۲D_. @$GOywkK ()jǹI(Uu)T0IۚIjF/2ANԬjS{4"uT\*%6bq D$}ux7n_d /x}! 4eVHHH<(V%$߰ *t+* $@5&`+ƕ)Tpmaf Æc$YigIHH *ujtHH@urQdUIHH #X'RU B$@$@$@"X)"GoHHHjB gb!4% !  $PXi+*pKc֊HHjB9+5i;B$@$@MAXI   X fB$@$@$@bsi6 ,V*[*>   W,Vz(w6ӑ @'Y}   | P˓HHHr&@3P#  ȗJbfKU,HH #BĊ1; @(DLH`jCXdgȇkd7lWjp[C5}5b䒨ؖoN,װ+LfU`Bc/ӓ Ԁ@b%V) 2O!pXzEك6 U%= W#2 F1>?Z=JLM~`5QAa敞^$ဵ,HH ETz&f&eW 2j#QM;EE/BOm7DKb*G,zʎJ Ɩ^0% @ ȋ so #@KENoDeIb'P  z!`,aYŰ>$5ѱ쑕>Ĩa"ơ!}  (#+eUb(xY$YAf$@$@X͐ }FqMTvM`Me!cȋGa4WzݎTꀣ5]XHIHjIe ԙ9h?l̸lZ:aÆLDv-UU4֗HH JZDqٴɒo\8uQ2AZDV bA$@$@$@@bZu$  :&Ѐbc@1a$HHjFJر    XdA$@$@$@bE]~%x?2iMH ܄V>5U _TTH@bj[urn ^+q>{   j!V{TI'ڟGHFک+W/1:XbҺ7Q۲_88̤f!ƃ$@$@uG RK .eylHŸּNQ.ABGU>_@9Y>jٯvb=qXWFDg44*Xw& p'XQsV V/G+- Dgt.Ӌ'-QW?X8STJLTDlE\d  F"X).R3躼 #!H]btd($rJϝ$@$@'X}(QE,=qXtZ#\*nX`^ @b~(HcIlSfɘ%ft8cvcVMFkN$@$Pr+RlՐPm.A1$01}D}SO#+#u5gŘk c\bgdz)}RG&' Pr+&ت2 b U% " #Jz"OI[wmѳH\Oɥ#5AtYV:$K$@$Є+Mɫ4X}  (Vc!!  XĊ㤊]`.&y9v84ڑ @I0R$@$@$@vX ۹I=Ij @S?|7P@ ,ٯI]~R$!%Ju;h ߪ2f"ٓoko-*e'F& 4! J ˹LRIt]CvuK|o:##)EZI;L\&uIHr+>^%_F WEk$@$@$P{U`+Q}g>HS/κm5;`XI0,؀W/ET;ւqG+=l`eWJjVjVycsܐ:R CU`Ỡ vڟX" @(DȴzXX\@U_ҋPGT^tX:`;g>C4*Ϋ_ìE9}]pu:X#J zV\cI*#zCRuL1ݭm V5# 0L J P%"#b1.*jj\%Q">h"lu-[Mkzp"+k2} +Zu Tle]JQib ZKEDg}ÁԵHI@b8Jv׃%Erú3G'#+)JPkNȯ Fe͞.LY3JC֚U @_ae -ZbY7eʧazEҤ:`W\ArNXF?]d6@$@ЯRJc`=32p};B|Yн8`W065SRCV󪎋411 Xz(Q@QkQ4h`6<, {."Wȇ*QqcLj3QAVa"-Fmtэ4Xau HH@أ }`)fΚ3K_M|aÂFistC;qa wkMzBӶ+Ne&QEPM,@ ~4u}E AΑ2oD@ƀHUc]HH +%#RyS#@$PwPI*u:8Dx8{B5]% (Vش$@$@$@DbZu!  $XQ-j@r @M,VpZj? !  hp9 Ԝ@QbE('թlk Ԃ@QbE.\ ,HHH 9XqxHtAzX%KA$@$@$@=jY!o   HM VVI͒IHH JPiHHH ?+(%  h:?+L$@$@_- ߺ>@$@$@$Pn} 4=@$@$@&@Rw$@$@$l|_FeY-K$@$@$PŊH"6IHH ؞Xid| @_Xa/Ze @Y,|mtVHH@bsVY& 42J#bHHHJ_Pg$@$@$@(VQ1! @_YX'nhYI$@$@ B g*pjj @__E-X& @ۓn+F$@$@$Pn} 4=S0]HHH\Y)W{   @bEƬ[&XK~}WEiXcKO Fc 7ibc  :"X)ۻp%إ־j4AwSWp j$sӐ Jj.JT.   j!Vj۠.*]CP_ JN=K0,˟Vqw(+a^z?ƆQqU}5d`DvftlewVpÎ`t%=HH @QbE(5xm\dUrD]~N1-Z&KQlU9)ĨMQI#k: >&hܝLMElL@$@$`%XQ@hz^ m=J(XhXF=`\Fy艤WR,A9rD;UJo9Z0Mv\z.lHH@'Xiy7Pi)]uj;l>koI)ꪋn?#X52CJ%1؂ؓf,Q@HH/VJ[t SNTͽ #U:#/]،dF  93gR.m4=|lYa\cЫ8"Bh!:YFnprCfF;QZ"4B$@K gWK_)7.9j1ԸYǀ䷵nA "(u1zFKl1 CIȐiRhJ"Bk t11߳=' *o>0xN ??fΚsظqlloo/Χ BSew7VHHJZDۇҸldIϷFW Y)δ *\0 @ PԞyJ ,HH2XɌ>Uk$@$@Kby۞5'  @RD'IHHy )V(c, 8-- !ZJO c1$@$@D bU$r,+N{W2$yɥDyszʥr&z @#VJ>A7T %BK$@$PrJb ?GOC*a,t#2=QD3z c(=QвrX`J  Gb}ҭdY[GOw;8.z /eC tC<Ca0 ϱ$@$@$@#+uɨ[ '8wLRG[GExX4 4!SV);c Yˊv "",Qm F4@ȊKigñn0 (u/Vb穄55cN,YzXt3XeBI!BQn& @(PUdQjsH1I1zJN4|tYYD.A^:gYʦ;6X  SQSn Hˢ3U{J3 ÷K`jm췖[ղZ҉ tHH+!"  k+u|eq^/HH(V2{I,! [+uttHHJs3kI$@$@uK Ob-9{ ԫoqQ<51XG$@$WJU,%  ȅ䂑FHHH"X ޖ=徛ݰd|j&$o%MMvjSvf$@$@@ bU$؉esR\[wS3dky-7^LtX%HH6+HjqR ]UIHH #VYKC,^p#_#2F?%xHԟjg>lDTpF\ւZ48g2  PXQdO K"Yԧ{8D]QY\ASРuk>\YTh nuX4ƁZ (\JݭM&MI1g%]b"-{#bd51aEOK+$@$@'PX)Rɧ"o+E{hDVTb]Ĕ$~   Z*ZX)Rqb$Ho(˒&ߛx¼$@$@%$PX)am3<%%/"y*.s4R\4Dst$@$@e$`{WbE=NTڻv5!2SU=A$S}Fr#)r7(kVSƄ֠,(Qfg'2$@$@ @e 23g9tInloo/m= VcH͊vfΰ   &QEtJ(˦M|!˔)($(6$   (V d    (VOR>j%D|H6~M$@$P(V= 4<obVHH@b%x[u8H <1ǚ%ՈIHHt%YYbL+}fIܱ̞J$@$@$Q$о}2[HHH1ĊIyնu|GJ`ܐQAL!  f +y+!RQ-̕`W:.Foj.: @g(}2g'Z蕾m$N$@$@LppYw   (V3    (Vj<65$NMIHH +xcmA &hhvj-J :   ,+G`nd@ V_ yg^   D+ fb   p!@BiHHHJg$@$@$@.(V\(1 @OӧXzC$@$@$@b%XNWg"  ('`X~#Va*aզR)gW$@$@$P+T\ "tHHHT+UbŝS 6 1d<6'زIHH@5vaHHH6 +zam*RHHH@bEfF̽m< @ +J$@$@$@MHbw5a'cIHH + HHEXtۄhXe   23R   #`UY  w{   hp+  ;<Ŋq[z|lMeRQk>MWJ:;KMg$E$@$@!X #}ۮ]`rTCGO.$@$@$А+|~CvVHH@ ^ƃTAyc8Wz%\$ʢA*J FG y)IHH +.ۤ r]Ր)Aբ%(}P9aćvegHHR(V9+TRWuJ)ňQYkƼK;$@$@$PG +Q\Zǀ"c0E^ ~pVt`]=>TiHHH Z*2TX-Ps=.cܸ2 Ԁ@bb680gTnGް!kuAOOv A\NIOHHH @˂GbEDQ,K . raKFJG㹸?QS=T{L֦."JUm'-Wt'  EXtBC,uXZGÔ|⌑1cvG^Ĉ 0Wum5`UvֺS 1nKC&au0\r"C2# D'Q1BT\Ww}FIaªQ$q)U3)R*dhU~[򣏼(엷~KwݒVWcM\A ׭ð׵Nqjj1.L@$@90Ja5mЀJ"2Dt@إ] SV,"gäh%aL(q`J%,uYkh](QZt٤eft)rmHY).E!S{vkѺGRnҿv鿰Ioc.#&kY*z%-Zra (bJZ3Y^ERܽmJ j&jVP341H$PM'V2Fbh@\kc+c}@'̬6dBэ)Th&Jl4$X(v' Ŋ<^E5Tc:aܙVo.7Q)ژ*!|}$(=>ra(  }1_D_POKxp5 d $вiQ~(l\,loo/-aÆַzw%Qu,+,͒  %-}ҸldI}YΛ`Q?aWI}`z  Zr\eE6Ԣ_Wru4v ft-[ѷ}S:)NJI-Fd vM/Kժ.. ]0Quʎb9 (% $PX*t qI*Y!ݙ ]I%! G H \*4򧖅&uIH..VjL%ȑΥ-aDGc'*`V1,jqQA=v4KUq]#kAHH /ŊU E[nգK.DHkH,Ԭt1 4 bJBv/\/ EFYR*.($U9(RݫÔ$@$$j-VK٘>$,쇓- &L(; ?0w=.e)cW)_T? +M)pLyo5 h- }`9k7m;2^ZÆ +oȫ,+/iHH Dє <4.6YEsϛ:r(PpΊc0 4N&nX*x[b.$@$@$@^3,J,"&   H@@P0zO/Ӷ'S$Ϥ$@$@$@5˙ + (HH@Ȋy>jZ*wu$@$@$K"+a   #PJfHHH`d%)1'  )FVj $%JRbLO$@$@$PSoKV)*>DJٖ,vl)k6Q\`AV'^sȷ  J%FnخuWW~)"o=}jOlޠPFtklA+u)tq cK5Њ0^~ХASԝYH@-"+)N!,UڱEM[sLR';Xlg-eJl1 #ZDVr 0r%Zi)Ubr ~3ܓ 1(X#kK IFʘh.VF5т֌:hVaar-(FOӝwIEUġQ6hH X%nJ%X[p<K8֘c*i\;"Q #("Vϕbd)Qb9hVf!:`.~ɱWkYDDVr6l2~wO.1fcvɲ[v`^,d!"8cJ ZJ͸d4?LƀS>l6ƂB&p&d݂KԦO,6y! 43z10CD;ZSF"HS Q3g%zPJ"SXΝr8\e/%h?/צa "SdEY> Nc>GeI<]ek-E?+b o&a|2*P-+WY&v܆b TKOCㅹHJN J˂GϜ5+~ Ej೽P VZ9E+1\y^퐕bE݆)I$+ Ƽ{s=j_Q&"{** 4!DJ2%J,"&p"d9e`'JwhX4gaȊovVm;v hT#+Y}4jWaHHHo07Y* #,뽖EVp,zM;̸}77:Zdo{c֚ (CS @I#+r,JXwQi(AJNt;+p{ m' hY"+VJEV jPSy8oՅ.  p$PȊ{sj<mMS c\&=엍DX"08f$wLF$@$ШYџomwY [p%TwxeҙB$R#k_Wtf$ h%XRHkbw ٭JEF(R)gJ  z$PJ](m96ѣ5ֲP$:&NJՠ\A$@$PJY B.@: :=e+}TP!R && &$PJ]4FW*{|K]s:I$@}K@QS3WdQjȥaQQ;>#_MF֝F`Y=JAgq!Q5yVFVdb hBGVZ<( М9kWpH |a\|V.+MշZޒ @3HWDc/sιG+R|(\y4n֑HHH DJ2%xS< 4,+> _Ϝ5þnYҒ6lX} ޿S8ɴY @1,_?>ѣe)\@96M X $R*))VbU&Xo`$@$@$;gORtHF$@$P~! 45FVYy  (?FVԭ:D|)2k7[ Z#  !PȊ,zugA-aL+}fIܱ\+%  B $⿉ P *Xw وPOw|4~ve  hGVUo4wZL%bxq0xPviHH@I#+B9VяBV$.z8iHH@񑕴PuHHH'P JMM$@$@$PYOל6[mGIHJHR ,nOͷR)a/K$@$@uM J˂G.3g9ظx7|ٰaJ#  %H ||9lpPղ,  H J˂GfΚscq3Dj೽=e6lXqiHHH DzE`|?>ѣe)UHHH@"[}XDL@$@$@$@-$pIIHHH7FV#HHHJMR7#  (odEݥlmBXniIv5sRk$@$@$@:FV&Tw$,Ȣ/z^V%QM\F$@$АY ]'s*<`X)  (id1GFYDaȘ ;SH=-k!a;u$sZGGLF$@$@$PȊG Ue VP@+F`-8~di14Q;,5u4$@$@$PK#+ wU*5#0Y :cȳ   (od:7%7D>KZ.IHH wY"+|"+Vw'w%{kܠ䞑)IHHTY)TdjQ#.iR 3[Pq) WInUz}ŪTjDߩ2Zw&a"KdIHHfJYG|>jgCBzDVw Io#mDE5|N=RوjX $%,.{W"+%1 @H:s +.HHH UbWG (V0Ƕg2    (V;$  p$@HHH@nb%ZfXl,HHH\Jb+)<&OE% ۤ@HHH@XX\XITb`   %Jrǃ$@$@MK@4J:XQ7'˚mQVHH@jX {:5"  (@>@ϪTIHH@>b%TI$@$@$P4|ĊKΥ-hHHI`ҤIxIa|nbE-\Eͫql&#  :%pIEoԱsgXl\Dj!   DsŊ0rYg2 +{oRHHH +0ePh^ekC$@$Ai%y普d+?V Յ5& ,ͬWT+jX d'&Vr`EZ   hrwֽXhD/֠[: rt XA%?SN5lwq(_~|b{-n1;R$ %Pb%)>,'HZ\t{Ial7SN1 6 {}Y){ąXL@$@$Jl` 16H i\ ?eUߪCzz ÚȔhaN套^Bx3N|by̞=[ H#Y~_WW]u?Qz[o5|'ԧ#+Ax v"7/FW\_B¡s1p=*LbK6tSdԧQ2/e̙o~#%*c]T$J @2rtI$vIې#āJlVSʁPup'XM 7b@#G='ck$@$@D Xq .i |.Y\DWD1W}Ydޓcr_G,Y"PDM$"1Јay 6@->'>aa4$@$P+KK4Y+1$jF/N֥0bKFTvmRzB4BqWOi.~" I*m}__Ҝ~C 9pDcb  z'@.%%t+!{z{G[P&51qR=.\Qw/C` /`G|X@bLX ")_">G-֬CN @wgs{lp:EE:]û8r-s虶r_OZ(Jh ȑ`+qN#6*M(7#P*!0; EPZe0( U˺+$ǙRb=atHHbޕJ$@$@$@.9+_=`du7Λ7[ :u&K]:`tH "6g%ToA,  $+ڊIHHHw#+u1}5wdi$*az+tIQJ,)X"Iz%iuO7WH=qgč^|JNsEW$EMUcbJsIڈkQFOs*+_ܺl?*yKɒ`):Y~\ړQY+\𬚦$<@R+r?NqrW**Iޘ4}mb ;{ʟIO5›$啢dYI~`   ș̝9k%Vr.HHHH +NOP @&hLHH2Pmdԕӌ3 SStHH$5((EJfnnDxa5 "  HOsVҳcN  Xo6Cs3s XK+ͲHH2lV>ص|k+'_w:[ 3-yf7# dȦ +W/^l쳫SdgW< ozl)I l bU  '\ZɏVvڰN[o}Pp|n>?:ʃ* T^R=b@[K-@w-{tSbK& p&ʕʀJʒ*w,RK.vzpɟkBH`أzb1ڑ  'RXYW.]yם~5Z~ׯ֗Ǐ8z7l0 *d9G BPIcOx>J `g ATZ׳n]z˗򥛮Ͼ6) Rq('R4XfuHH V^~f*kW*wQyJo_[k Xy `h)Xl~ج 4?7+Ol5p`e߹eIk;SK O hj/M^K?x]N^WOԳ/<Ԉ*Y/n # T@CCWdD-b~VH?=yVmGVnUu?Ǐ_u>X?_O3|fVUE +*$@$@uC o3Sl=?h :_X~]vuӵlٲLm-lR@,HH WKjՊ?a^?R=j_ -ZV7*f:6]% hrr1nAǘhDU0ćT`޼yb%LL$@$@$@9+A   < x,A<}-   Ms=HHHJK3!hIENDB`FD趾cFyhJFIF``C      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?~n-?aOIa}u%,]B7$lʐyWॼ#Jpz1 I4/1I$ym1^fV ⎩T~sA4gE~g'I>xˣ#u<ʍva | ^#S _k Pw~__<we<we~,Ҕ 󁒽_O:ֈ?9]Gr< sO}UI[naj(L#\5Q@;՟b^/+NBWO?uxKtDEKܘ.#hIvj P0\xRKx4׸voc1c4^ _>G28w e8x1BAYA HE|iwz^nΌ8om329vN|+7WM}fFZvRZy2įģs@ ׾Cx9_!^I^\O?DF:@0߲oO펍b_iPh5MӚi*mpa\b wpb7 80$5`| ?F?/\㧏gOxbtU>]AQhvH|Gg:]ϋx/ O奥d~cB. .xV5Gu{?G=<7mSIdWo|VB͏cN3"u$PGC4oJ~D>${@ִ{Kڌ1jwvF >ckݾ| O>$b=B %gKO9,~cS1sK vO"ru#Oݻ?CxgHh?PG/CC|?=}9c^)*(oU,hp3!u?}{Kw6Kbݍv=?|7࡛gĴSжhGoOj>5ޛ}S2x<_mgu}hՂ̲Ҵhɜbz7d!ֵ+8|S!w}Ƽ=2{e&yw6#M3}Sޏc*dH{YCw` dHkt[/ O;>?xBX caU%U!kc!P2_Evs>{.oq}et=JD <`P|?j߉֡񞹢Uos6@O#$\F1TI<9|ls'v*w#^0ݷWVw>px Τ#&e.-G3F]:|!l63]AI{j:=D {h;Gw9h$gijOm8*?⤷iĤA-#kǽ|Ky>,ѵx%4nU]Ė+/]4J2%D,ZGRQ$ wG Oz O4:8x.9byK/$NpAPYzZwǯzsmwk;)ad::ٕe>V__=*ٻڿ_~>hIi 5q}Ԩ<H8,`&0rM{rJ^wm#ƞ ֵ}cĺMZɫSI=w Z5]R 8_?͞Kv%]TxnjI/͂l{PZHo C7{B?MU?xSvx?_`”|O!W 'Ï~/\jPiTSN"D;KM|_i  * P㛮i~^n:>]f|? j0Ii%4.NbJgruƣicZ??|Ys +/ < \űY@p?fFޟ&=֓쿵F|\m#E21o_})o="Neyo-m-C[I[ʒ:/0* $i4e𾝯7CEuO_ŚHQ2}dabrc N:ěPz׭f >F9'+u7^52GRo׉F>Ȩ~X=CQ/sO[]jƛr&cHFbTd<ȃO|躆j @/ ,t}@MOj9+im.EG k׾+cKHt?f8ɞ5o~\:^ 5ɗ:IM1Ez  ->֔[נ`x€{hڀMz׷A/Rz&*I)%m1]PIÌ4:ڋƶ1a3H tgh옐6$pN(毳~׿ xSڇ%RŸ&?*U><dH sMr#Y} J”|O!P?xSڇ%W~!/?h׺ΤAj n.cjυ SXq~-p߳/~&?q8%MN[F;׎%DC~]A N2G/~$OeKcpҽcy ~87.|t~4mFKEcRE\ΎWU!)k͗62[[W`wсҊ?? l+GDƉik WP{ a_®?eG*CT??g7_WaU {÷Ri^8*[#Ɉ|8|s;='Z䰸ZҦ}.H.u2kɣ@Yܨ5*CT®?e@Bs>-sꖗ>!ƍiϭA6cە%rIHJ6 85"K~ʭJuwwgLP p}ݴ,dym>P®?eG*CT~$m;TմxugujW:he)8a.wSֲ uo/<+x{VI5 xmmvc9A9~_7qS-^ z/cPGv5YP']cifyiz`Ksqi|dH=5}o? ?d xO6V:ƙ6$sWQ^5% ]$۬Ky*CT®?e@?kYS_צVLIKL | |1WJ~.ꖺ6n!M#l6wj}yc*[D傪Gv5YQ z/cP}o=|1cOQn.gEQH#zE`˿yzU;,]=ñʀ?K'io <57c-U~+Դ _2k.wo¿jڇ%M6kwO,2Ynjn>.|+0_~v 㗛n%E۴JɶVw 34< U%hސ1'Կ.9ٛfHa^H_5wzږ Kg^SgbRRv/EjZH5vZb}Kx_hR m7~t Z}HƃhaHmg[u}͸|ZE<tg-Nƙnm `` ôNʲIoJO^x~xK6='ↃԖO<[A5Ծuċ9L%ERH@[ xO ;O9@BVx??_x wW Gi(w'-'!z3 {"-~)o¿o8+Uޣid-YfYչ-*hYOĿ >F6`fM+h-Rm3DEim >$ \dpHP^C%լ,R%!Ԑ*O+K;x-!$# j5pG{ (Ҿ!x=4O7V]42%HA+4B$+?^jW?#̓ʱ&;!GN< c;?1ҽ}@w1yQfO$j_C|dgĻ/7ᯂ~I5Η6z=(e 2y!~"CV?:tĺ_4Koi ZlJcPd@8V|¦QqɌ W<@u]gİx|SoϧFWk"C g "BTv3ڃxGs7ឥׇ VK}?Sk]Z-:ohBn$b'2X@R°C|&Qf\j^xO|_K-sAuxOYM/Vе+ |'F3yqM xXfmV5Y]4b@Hcxw*ٗM(FHP~̫7ġ W{M_Z}tu/MaEt !046_0`FӐߴq Uy!.7WO{+}6+if!5bFQZ(QL;yo*ٔ?RKq P Cc@Qv.ǷSGF|J]FN_KBcU/0`:0xڿ[m ׍/Is"%ڒ(bF6y*ٔ?S|JFfN|J>iI5_jr1:ﭴOO,VEHDG"0nxg `g-[SQ7>X__"}K1$zwn.elbD•߹?U߳'O_i@wǜ¥% Wr;KZ{ j֭>m"pPWnҾkHͺ}Anl퍳;H'Ի,bٱA3>e? ?fR¥3TP +~?@G(u[ J,^XeXG={хve2N9_>0|;/F2զ,~5YLSu>U@ 0OzN2Y߳^k |sב:Uďis%Fe!{Q@icQw6嶵Үn#gT܅UY@j~WO)) j`08^S/Fi/~(??|G]~,r2pNH\xHñ7# ĿlG$w7sxoQ˫m\Kq=PE=?⋏׎\xܺA޴񗻍7exbc,O#4W&?lGlj&Ϥ؛n5n(MrXinc}!DIr>p=7.~/t+?ltk[[x"0iԉ|ߓPz g?M|E2A1#V+ҵTt㿇}6~t>U \ƅJryV&6bGlj;=m?ccF [W5i_'-<+II< 5؏Zwz 񿘒1 ĿlGW%g?Me{'u VO;NBHeE)IUd\c Q~1\x_֟G]*%Xɂ*;,XyW%g?M¸/>boGOkkvCX+uUxW쓮i'+~8[_ Y\Z)InXWW]+ĺͽĐBU)Tq}ӑFG| yS²1G5o6O ?}FG| yS²1G5o6O ?w?о x  D׵+RJZGrF+Dξ>*xw@_zgeo[;CC܋kz6:^91\f,r@/[D ߳v1?eMx_z5l[J Z]XK}%;=XK'oiTԼKIńLpYhkxL*]۵ɦbRYE׍뚝|6/[Nk+sl(Dn>pʪw U -k`wJ?k/Ac_g=_jX/J-vocҴ5V86IhDp4 r ?oG4-#>uo?-9AG=r=kkψm?>#ѶjVA( Z2=kkψm?>#ѶjVA(}O/vz|ElB8e񦫾yW_9ۘAs`{נ7w 7jj?1uۿuwA\뺥lx?3hq`z߳]ƥuWZΛ#wcи[w:A(UPEi|7OZ(S5 ~ ռ1O{qqon* +crqU_W?3e6gz4o;Wh?VxU5i<[g:+(Y_8o(_6iWw},}OpZnH/x~0t&/iii_J:uz(G%$ }]@LA~e{_&hu=>xvY]E)R;Amj=[#Y\^]A3Λ#Agy[߆9+ Z<񥞉1$8^MO/S<7n5m7K9ǂOfU9-^~'= xv4Lwv֣ $eU]N\nӏUnjcOg>- u]׼Mqwq[Z]Ŀfwo5?=nxǺjZnq'6 Ayoqq@nD 3?xY_8o@b<[g:+(Y_8o(Vxp?BoKڕv!8qT,3_T>DLG/^#ֿmBGOFw0?ewۧ燃?[HֽgPדx?|ih:-o4;eZM30E԰ $s$kG<<zn;eՅf_5ոH5y+:$c_Ia5τ|>i ,˄[C$,U2 sgUzZrϿ?SobYZ\4ķ}8[b3x~~M7tb}vF@=H?n_o'S$oO_O-k_sF Vʮu7_Oa߶kOŸk DXL,.u Q@!wB@?zx4O_j~ܹO-kо̞'-Kynive>Iđ 0 dFi:OP?cs405ۂ^`2bPjIZs$k]ֿV𵿛KL.55ԫ2݀$Mo?~ΒC,$W[ ʳ?*r 1@Ms$kG<<z?rD`'x?K kαs fԬ%9L)!Ԃ2=ԬiIuOLm1nYhcEfŧ|þ1] yM4:䤒6 ͤ," bq8NjփuoRdhhx;7mj [ x3.w\hq7ڛPm;'/.m+^oY,~9X-}^M>-#,Vr+)I02M7U'GF|?j 'tCU+NAkmĐ[Hn8IlŴ L&йdH2|wƩ`gBc]ZHmBhtۋ+sFo{Vܙ  8&jMHh;-鿵I#?~pŠg q~5auu9-HŌ nN\iN'14?V}<--x·#Yѯ,oMOP=Xim)_$3#(UjG#Z!ҝ;*A4b==C^!\]x΍W}=&Cu6KwuQګ?d+v[]YFD-3XBeh؀3'Q\jߴ~޹A$j~:0ǤZ!]oٳPy WQy}ݴڡߴ~FtԢрZ!D$$+՟?mF{CV:!e E?ڱF}zgAjIJYuk{d7WsNe‰($ǭw^Z\WwH BPkBH䳷sZk4lSMys"12ī_oCKҿe]gtxĖ  q%tckay,ZH[f[ G:~UOx2xWY?-~aaK3?13+wKS5ƼcK) N7mܶ>$ڼu-HԩV]|}Lږ5-ծclVwHrr: ]~S\^ *[{xA"FL65T @v"׵|0qxzN.l]7 RKr8!s[b* *^υ'k߇Zŝݧ^)aea#k ?tCIfj]jwEuR'Wӫ ;Y@e𗆭#}{1Ӵ%TIʡG@1@(?G<W#NW{Td{Tgg%R|1;/5_4~^-2m~/YX-~䪨@kI6Jq_>xſg?< e&[?̣u(OX'I'O"h䍃+˂*iGzE|I Vvp,PQ *`;ϋo?g7DOQYn"E`fA 2<~y3yMF7[ YK{H/[t,HO7x>ՇWNJmWmf)5BBQd..Uk'%mWڶFashb m. m}VBuH'>[SGğ%<]4©#EGO./kK._^#.tG:]2; -ZXǖm|}@2E`]~6GeI}xC\ѵ fPl+x;9r$7$~QƏU?IS_YAM-Ιo>(ot V{5 K;-$cxw5>:jc*)ec0Z"FDHQ/|*>'~$__T~? | -W/mW|C543ڄ]I r&|K{y47<ӼD~ˬXgmx|cbd73A#P`kǵ_⧀omn$Ip˘?#:3ׯ.| =˟q@ELt8W~([xJv%t)v3*.ՕG%d.6*?D᭽խĮ8`i9#\##T@Î+ѿ>eσ ߈7>Kkډu43'޳P!kR>'_iOᔶM.S[l̪H lR@seǥ~ɍ{̿-ey\ݺ(Y'Ex?05. =˟q@:'s))|73D;x(hwZC̅7wm?Q8 DKmEosHa vAo'iW.| =˟q@V؍ k-ua+W!ewf *"gbW5V4(|_q+H-9baUd4Kdd\n.| =˿q@"п|;m?4wH~=qfHWS؂E{~A=Ӟ$oíjYsn t)Pwps}zdqG A"bAQ@}nY5!b)YA)PNG  IHDRsRGB pHYs.>IDATx^ EcqsQ \t&qDAt5$ FqEHF"WxJ0A6#JT@Uvo~ݧN:]Uݣ믾| T!R,1uURA@@@@@` ,YdڵĆuW 5 8     L`R,E<A@@@@@`@Wr<ё?u[9)1+`rV>ttRlrO'A T% )t'6v܊E4PCQk 'Pv"Bp,R/air7s 4=Y[+J3!juʨx*c$awSN ^F(D8UEzE oʵ&qVupJqN+UJe9A&K!W*U9(-2~/b'kqW}WR(x5S^-Yl %~q̓`hm)m>v2rc(9Z+`.kwWMvɦq]*V9EIutXrY{<:2/Ճ[UZ K=7V)mv>/ ͘kyE<t_b2XW_BG藘x4A8YfN\&S׻ C%Ke@k}LOk7Ơ[QGz*5(|g~߮<_s\4˚O {?}dJH͇Kƅؖ Jd/^ZI~|\8/a%V f޼%8Y!k^ M٤UOZEVeZvi^$%5McwG(=iIgu쥽a_Y"VouU&ծ|ِ@,b;'jHwN8Y'9Ab zfV֌i4#%ߍc($/DD1N|A Y֙3^,#;6rtמkO.cn[_3(1ZC%?ߴvQL+1.lJ^y{S{&~^_|{.z}i7E+HxɯHկ$_?   /xk͞)tKP1%(!U(sl>_~Ŋy/q ]ݎ|#ӤqX=a{y 5ObpIMw qΧN:yI=mu׿8Rԟ_Ͻu'x>L5`yP,ALٯX/;)y e7^]<>:,di|:Uw~kPud?-[? hϴ:iw?֙,XETc*jל(-󐓮:}j{)s޻kq(G{M:$_2 d#H0:q&~wi{׏;I~?F͋+PuJ俋YotrdϽ/$q@Uҷ?zJё/=uW*Y'|o 郄&ʒbCsFS?񛉕'EYE|cK}iJ(SFx]!1k>Tk/OZl{6|/\i ;ZKC/gggkڌQ\>T\=#UGʹ䬣~rֿM?:fj8_]]k#e_}'~]إ_-.ҼKxo.L.4ƉNhk𶋋6.s=|ogWs«ΊJݱ ?w?wtN)GrD\qJu#a'('>^B$ÜJp $/:VM'(~sAbKQXjGxJrtǗ'-?J;ytS} qvM9r8A Gc>=@v;SiǂAJW~翲 l '^L(/uqE8AO ]4҉F7'bvM@di}P~|f'fb $hGEN~o*㚊1N0K9 76p $ٙ9ڠB~xxxiG֮ $?҆}м6(~`{^9;hG75ayioUZiN8A_{1N9'E{Q_?=48{4dZ Jx1ߤ68Mhʹ}'@@qR;yFF4e\|_?>い̚pq1fMĉEO}R=/q%Jy_#~t|b䑿ҏJ2_w .qZ9KTU"'SŸ_Ÿ/͗~HjbW>Zi'ϗ{Y/;9zP ~ 1rWA+I| V͓~ M%ԝ/Q# )J(-KhJ_£%Yc<4G7H Kh_*ȃ -mS)~ RAlڼb(h{ż8'E X_W2Iϟ 'xS:S&:"H rkguGȞu8E,HP*pix>_?KD#f $hKdiUzp;//U!ϗM Q KJ u_xH~b}K;pN"CfĽ/Q5*Xi;X p"0/H~8|Aҟ ‰M _,q ;`y(~`by!>:/}~Sa)PG75,PpRyS`~i%aNݯoaKqÜ:o[hr{FhDa<)"a$N'U!4)cVU!Ü )1NNJD07K'p~G  lEpKxXwS#wlnkݴsQwp*MRPg`?yŸpp=z$(̽<qD(syꋊN<66]RO2_B8| ͗9kxƋ"Ud|Dguzکr_^כ.[G:kufa'kW4Yt3^0(A{-%x5y 78BzKӯiⵙ#:N6'{-%dϗך/i״2h ږ2_^!/si6_^L+!K'k[ .5/rXR'+f7bVxߗ;a0P4y;meue6fcG3qMK(훮K/a%4]&QV<2~WlFwб}qv둥*둥ah\&ɚ a%xNa):kWBKXr~ Z8pz]nRz7ʄ0bIr]%Vپ21q :8qM%8ߪS>4=$\̾m}C4oM w .6M@^]+:=[QG:g\ˆր.sRGC Xbɒ%w=Gߪ$/ߪH~KlVlu2GBAE،zZXb麅\=sA#UA? rٚ9%DyNrXraǞ GWp2PUhVnXKx\֤C,E1B[Nt,|>FĞpٰ(4b ǥc+R O\҃헨#~ȥS%,sWYE,Y     "]cZd7LKT-\HWSZz\'ʨO~l:ëo7:qu2MIT'vꤰϕT9د FKm|ӝSa^{M7|3%/H    CM ru7lڴIH{fΜ-K7'į1ǯ~=I9U\I 'noyL}:8؜~RN<|~vUХԍg:͗3S"hY`5kA@@@@@=c>bZSY`\iA@@@@Kd_RjID{eu/; Fo=b̔ݰg۰w 0@@p}-< Ji3FQ 0(ݧX򶺧{^C2=%}OZ=v}z~IY(g%} eͨ2_3v]]{f̳ns8SvUQh2:%~Z)L.Z4kѬYid%a.M.jMEGõH_wyX̵/%!\Ӛ?㕂[M_+uJGc$&@@@` d/v7mBkkȭZ/ARkU%,uSHP%~<qJMA NOީȝz$~*ZkB텐mжRσ`Cv LۋvX#q%1;+=;?ِmޣ Num˟'50;+hY"P&^e' (&z<VQrUUE#dM@@@ l5: A"ϟOcAX8t)o$.0#W7/3V?N2I푠aú+x(Ry WZO5~ࣴdiFq׭R۴J8!Ro$'evu?啂8kT6h_\ͫEhzXKuşNur8fg/o9_dA7ᄹ3RWW7]CW)Nz$O^%=#'yuJQ 9Ư7^ǫNy ,@@ RmHЋb)~خ,]ϛbYXtGͻ *R'JDi!,Q~SgG+1N/1qM2?jCմ)i~ >$*rͩ~ G1~ Hӛw؈";k=(r< ' ' RUmHPF̝;wF3*: mu8b>eX8eȸLsL^B.S_5lH|kfO൲} N{fȑ^#{]VR@kp s ^vZ_,aVe:eon~;tMQ_jDͮ?u ׮$>%cRʷku6)i<KЇ괒6әU%5Zl¤E%B(uRFIZ'-^䛔6C&%߄W7'lN*>իS&oMeTS,\p")l}e_? Sx霢Sb|K1ab2KT;R5RRiH7߾Q54oRɤ2J`5lB;Ij83ZTFI~U)isHѤvSDw_cfsҹЧzbsJڄt؜1N uǗN$RcJk-؝7S8a*&FoqֲSM)ߤz*$T7otL<W)*|U)i[o󲦶w;aݎZz_U~J**|     M@[򧚱@ &n{u/=wb\^?o#ʫ5;|X #S| IIFlN,|#>uJ&@KR%%Hc $j^{͕$R'Hb-6]Į\@e\@*S_WL i@@~]C=T@` +ʫEEjWyZ*]*,@.=0. `@ʫ3fAQT@F]scY%KwѢE3*!@uo+ޠz ~ɾ+GƦXR{,S揍qU(XI4FF6mڴ`3eʔU7vL>2gʔ7N5ȲW׮αL q29N4vmeM\$L6vpr)s(|3$SWZ̽.pmuW,)nx,я~tRnq%tѧ=̙3{q'XkwkrrɖU)'[o]m'XI7lH+;VG}ه~ze]ŷj*;NJZ YmEc>/J3g:gΜJ[5͟O̦+iSZ*nM=+;=&9%77_UT*T Rd;]6NP&bKb܊ cRaDJQkn&ʕc'f ryM{]&4KTKRJ̖R}+?!/x3w~D,A%V[>@[nYE1F7y#+ʑmlٲe~)xы^^!z&~n޼]VLkX|…_Tx~76l*~gJ mqU:=?Y2BOIc%uyCnDG?ٯӟNmtz)(^kqq]w͚O%.HԩS %I\fϓߴǟllktjJ R&)x,F|RD H)(3z&B;몢j6hvg~C4٧4M}g8]yu%gw^WObz;޹b_%$K)nBP`/a^{Ӗ$)U1PD'p]Rcl9 %G>\vrtN8P tUGfmO͟?frW7Sc>@w=篠bt Iwz/uY$@,QZ'Rښ)mܾS+1D*e .q;a~/w/]\!-E |` .:7U.g( ,X?'_jĺݪUu0o!TF"Á^R:;n&d/[ Cẋ()9klޑOwB[A|Aʎ$h ǟ~I<*ȑChٟ~Κuȼ>1nYc9s-ϟKL3od͔)FQ ֝OC>p!kz Q2rxWBQ(ItZyaALYVs``y`E_hu= vgJGviUBeMĔ)";g1Se I%=N? K.UR˕Ŷm>%K.(~_ݶXNd[ M~6Sl9u' *'}y(+xIҢ묷ö%z豢LŘݧV79)5c7^j*'oII;KICDmߟQ ɯަ@bjS~yGK<я u@ewAHxLڸ&kH:E6QD~[Q:ҡ/lE-wPPjUVsnrn6-b'3}" 2ozu뮡jp1dEN}t]pyk֬!1 Gc[xD^WZʭjyIk:]iF,Pԡ9+]FZJeJUrsF71>0z˅2!E;O '\ O/R8]:=c׹s.tSN^)UmO<`!@O)@tcE6яv s#+:%h{LIOz͚U܍V3U=&9 YSc;IK_ s_xkc_y{ё6QѥNN#z~FeYmzhwYZ:D:=EwDnNq_mM^B,u:%,T?gDv؁W^5F+)t3Pj8mk$ƻZ5X9IRYP!Hc8(3uZ֝X覠)cP\'^@4%/{ϵ+%\tZr"PUg=)B3jR*:1$ljvi(f_8sfLQ+W!6w^e'>ZHeڙPR7+"1iȪyŴ $HϔH`ӦF>t=GJYF+ I--g-؎hP/=]g@\uU[F˫Ÿyh'Κ5..X' "(|ԣQګ<ы(/$F0bx}ԑ<ǷRx"Cd<]?m}A{x?]NIj/N\ nkb-TRFTK隶jjSLmm(%C. FiTqtٲ)<ѥݰsPS5Qrc=X9~6MFj@.Sc6͙24AVk=8S5PMөڏ 5i§*_h}?߾sC' R\} p"=(Z9`ɑsV͡pXS-U#Wa|SEW[ & 4ntS-\X)u)Љ;Cy:/(kZSpEKpďZ\"T (k:O˟vU+c=&f84i=2tAݘx3}dstk\j>yY\vM%SMW6=NJ%ijoBpK]d? P<ݨ\^h:HkuSl9 4@=3|g߅{ $qM*%Sύ7ƙ:l]=߅ >Tg6k0ryiW*   !K<\y>tZOl }?q?/]" <>:(HyߺݓB'ҟOjVX!%_(3WI>j5wpywx5U&)1ywrA{-+ntnHqԬ0P O";udxx fS[#)k.Z_8HXvmRYZ=uY4؝?e;2KUP{$^=>f :,!Ν֬Ჵjoa?6*+y!Ot(.1|;6\xNW=}.W_B;CUk6/QHpOZ: VKfF)S("VA|P :,M;mS6藄 .O-sJO=L=-gnp3=nTK;J8>ť3芞Е$/w}bfQQek:&t)1rPG6ԃ"aUn=t;6̄\^\W@t9ٓ~hiE//^KMm=̚t_B;ŋ֧MoEVFKI֔owD<^&ORVk;VTM%5WbMHKӠ,.bn- Z7@ly&{| gi/ݔQO2މ,t?-)WUrB37/mOj;Y3 }1zS,1N=#_ [07fS,__Y<I>3'o˗嗾hړhpޝ^Jfn>/P%\@3RxϚ5߰O^4YbϕE,K0v骫R`^n+> >5{$:rzj$\L=KYz*,O;%a j;uOuA:=9*|_z~wU`%|O=B=*э7V{! 0KLLyZe2u-o~=w, $_,Y\3`jPw$s˯6ͩ4IUNyRQ7]6kbyR?'*.Dgw/&LwPkjUYmq/ܿfHMd1 !H~;m4 KP[ZMBi@-@e INN/x~ij7)DR#Ӵrm餴MC:\Wr'WJ,4&lƑ;Y̝8čO|6OK_@c;޲zM˼R}_'ug@k{M;b:;Q^ %AP@QԐ\Wub$Rav㱈9ϞF+u6Ӗ@ ;(MWTR'E_vXBrUT[oQP'9"ߑHdl<"\8_ )¢A ̦VOienaƟ M!KY3h-8ѱǝHw;/57gm_<83g)qOgA~kjMO֎ aޢ4vFP_c2m&a#ҪzbrPDDChf13A`U#љYS܉&J-$l_mf=6>׋v=tMޫc&^K2(ZqyG)@b0*͚/.ZDi2 &L oY};t:`TW msf'y'<0}ԯk__j*H/4zh#F={Ō~I=vVOZ=){V-'|v>L+3+j;ZtYe8//e=)s$Kˑɋ\0mX d_̃r//|޶*ݡ) +7a⽞_J,IQEzL . 3ܘuo*:Д7ӊ,ʥXf_zo H)O~\ sUa?b_?zbu+~^Vzh巓.$@AO[_Ɯ $y=KP_S΅ׅ姻HP*lZ/qT<MJ"Hϯ?JItR^yexM| 'KT_)<̵KcoҎ=_+aK%P;?<' N<]I o_Y =S?'9j1 /ǿݿţQԖ k=k~eYv5ygkQ^XY=b\~]@zF~2zөK}/T^t"WƧyB-;7>djxO>Gi?5S,U45Tr*ẛћ$_nh:ta. M DXrSXK-^"@k/w}piEZQLb$G `}l?EלٜhGB )bM/k%k  >4Q^(~?XDժֶ"X"^R%p+޿n 邫A`u~߾/EjE1MKtί׿a)͉D4ɖoR%TKT(-=Klw)O{9Ѻ(Q[`,p{}o3piEZQLb$y/FJ/qKO5'_S8cS#䯽okw?q:HwtEҎjG9MXIEhwٜkOxMR/ᄴ)mK)SʷoePl̗xᇶb˩/6HD`ú+vc7noYY䖪[~?9u=wTRמ[8-J*OѠSM9U|SR_XpNm7Xk5誏 JBHPIPdp@@W, OO n}!LA@Bt=PHȀ8+{u O)к A@W,qgA zaM(0G?F-M{}4Y7x̣H`b vTejQjƒh۴i9s%36nH)Ii*:.7_U=|ռ@&)bvmǿ)z")Pm2بiqՙeŋJ6/l+UhΜ9V9\bUY MR;o+Vl&UsP-[i̍K.S Ѳ/6eOwc@,6|r[8};x'l0: vLɷ_is(U͞8#PY?z_U<|вhGh?~6/^NUUjePkk֬<!̧V׼yӋu:5Rᇊrʂ95:IN΋ XSVn!|$hOBZ~p A˲P掿Z+.͞:zdOVhyUvͦ9[f1wƙ6npU.>Jk۱#&`!1`KO^k Ś=Mh )@%Sx[n1 _" EM zD=z jzG< 8ēHW3\ȝ_ ?A>j*E/-c?N]R $Cœdjp٦ft-!tFG6l7ԙZK$=`ۅsΝ3e􉇻cYr{Rڨ y3#p cc+Z1oڴ=H! fv4O;-[3evE/Jo(bڎKew]woZLbӎ;>Z9sV.VRx:_rU=z+_EG4uߞ;Rn 6o[swՙO|?]<%Ū"Qv~!I^|5ӊbRݠ ɩN6#%N;TO[w ]䋮1'EՎVZ_|V R-JywW-\3UR%؜,6tI6'BaJɷ_i/\xz_}%3ͶNc>'}z•ez2x(:}d3_},WG=1r^l| 鯪v&4|~1^3n_J}>90svr ?4RE}%˯xDۏ|ԣIc Nʘz(%8{2em۽p6@R,!./}+@Zi< PĚ }_xVp-uJPnQ'BIJek,V-$Eۧ[&pܳNG:;#p&–{_1o墦"ED{(G03%(?|YpKt ]CantRf.:󨓋ؽۨMsEmw褚>^($/{ϵG'[Xn:O)HAP% dة\c珔V򗽧8A1Ni!{:_Z Rk?U-nKh{%QIe'lN`Xy¹Oio2 >1Nx怚+ݥ((qkۚs_xK,z?鯚+3Ejw!J]w%>YPJ `}Ϸ/t%V_4H;S**M!E ɓh?yS&XS`גS8ma[1fԤHe8,h)vλ⍰g%U^r bh:ʕxe=>.%(~ mN>q64wMJ^VF'ܶdпU|?VCZmR?ቛx;MO,Ule gN_QbYܤb Uk+{]Z~ ,Czh'M;yԣ_t?[G|yhL8S'tпrϕGuMQBY6P ?9jʔ$Ō(t80$j$+yt+<* O9眘_Kpm H$(Z #=!|SA@E;PO~'vx{oňaϳv R};ygMX0Vzl tiÌ}_\Trv?pק%ԪMZix;*]lrG'?N ^J%<GLILYYHR@cK>u`{ྻoߌ?'"8(N As\EI&%R[xG;Pn%p袴;?\/^\r^S4S'-gu%+Y!g(,d?5#ltJHO(T49{E1iG%&9JJ̇?UqV'T|sI!;_bb@&wwMM1z0_ww4NM'o{B[}QKdbKu4`t,_~ϓl+I0md Ec%;j8R"ã;:&YI9]!7$)q*C+7:?qyyӢ,Z=ϧr@bv#DW'(>h?\:/B-hν0ȊŞjd/K>Y V 'Bci/-!O\T?ϬvTϱs]i\yBt- UU|en'.,  X|477@ƶnxi6M֝ "ӷނ:grk$*{n] 7xmmU~(GS~_դ<+g?eYדu䣔&_jU L.JV G#l+uPaЙ]*s$-nfq؊b]5R 9;+02OB6+sDq@b/DhjB:='FHKZz>銵h֭g-( (>{YBS캪tNXKȂr5kKx0>AϞ{g[lƼqxKpwYk˒-Efѯg5XlwY]za,-kʅ^Lavu1yzcB.#.D˗ZtͿWL[l4Uz> hyc~{=|Q]bST+Wj_٭kIuo~OK5'H^ KlB kħqjA~+_Br}?5796|+wJNFr3 ⱶ=|] qMo[t R觡SL&;]UJQբ 4aUOCpg.yLb[fȯHen:iYgwb>9Mn d1qh Hp A6's!-&_Խ|d[ UGL|mNWgC+_+:킄o$=*=o2J9o } U >MWom[m5K|oDjv#'[.DWq?@oH9*3-7|3SY?)D);|y+wmvGb"p5hqOZ|mF\y2,FG~=3uczDw('"6?pOw:aiOqS\~c,XSOy(VUgsnj%TԍPL%|U[hhjYSsã8 @8}z _HOWm9S'Lb+F7W珲S}X:M_{wO_55J-^L7''*N7UR%؜TF}7V%*W)6^yb-z{m%qyv?su#{ͭ3{~(ᩏi`>5A+wmhuz$8ʤVYiL~5ܴ>| haԠ|cw/{_YyiK +UV||Ntb $(x?'Ԓ?wŤNWGU|VHi}{:h+ws4HXTd?UER!JElj;+º7Ѭ :V^";Tnׄ>IԄbҽ9=] XщSTF 6$X׌I_~<22lj=4ϊLW|u[lKoS?ajTINl\ݽ&,ŵ|g`NXԔgZDoM)&Z7RɞLFʼn _|#{C-KMJj=Q-nK`TF 6'AdsV*b 5%nMWXxnV1ƩBŀ(d @׈k/w}pVf9X*n.hr5Y{ҽ9͗KD%N^{gLWJPVF lsǵst O`OǴJtoNh/͗KjkgTF 6'QBH7VKkJJPm7Qz DwJWmD`}^ҹ&㬬 pO O+UJ SX%QB[3GL7V%*w >MW1NUQDA@@@@C"ySWz̗      D;k~%f㾏zt׋\޿@o1|?~GۮCq恇t@}/8[nλTgJCR+_w6    %pk|^s;=g'Ӂ/T?x]X=r֜O,uhY$J 7uی @@@@J]Xbk_ᇟ5YfKl?>/>>ՇvfEȵ?2<-$ oSC3t%säv>A@@@-JN~:%p!w=Lg}3S|7y7~3Uk?_vrE{h~_%nn]\1xG.RTCҦD3ϥz)҂0Vo8e/x׻Lh)шKۜ30h?]IT%S"Hj;94MbkkYT:6uJП4:%|'?VG䐶_U3T{m֯BڟS=ĩdy8H."AJU^myifbNZ_Yoy҆PJAӚFĖ[YÀg=Yo{(_V1#QD+OߙWi%H3)68#u'\[n%K3fP;%=N"&m:mh2"i͔?yO=+m`!ukㄞ|YHJ. jzTutp;h'ʆu8ɸ!렴OY+U%ے$Z\L=dduX%ƘrfB@@@zC߲orیHfӇ>!JC=VO|<} H/a}d]#d/oXGk8\cuRNgVXAe˖q_-u:%ƻ&y/3-3mKLK%GQ#N$Jwgy4=}z0z?;@C鏷Q|)(Qmޯ pC*i3kmª4S=66M5/+Iz~R     P SN}Ͽ7nu uHw_v3EM$:. jN8:盒D%/_{(Zw}w"(a:?Yu1V~-&e=iS'm=C+$jwbѿx;G>яL G3i<'G}{ 7\StԴyԂ;WUc/G$ԅתwpMg>JYIHz#L ēS $@jwb}͛7kI{N>~v… }c{\rE߭C3t '~ ~_>%ޚ@}X_,8mLCǞ|i-     K _,WP5"rɢ71#Qct(E(5'$leD,镅(U7%8"ysպ<%=P     >Xn@@@@@ D0˩3QvXyͽjK|onغ%=~.L$ƌ}i#tZ C=`z    No;>+f9<1q:XÒ%F]2/b￯/"SgM%fۚ.;Z,!}/\ q 5Bjb{vO݆A?@5)ω%:kyL]'OK}bKQtPlƫBCY2q=wYnVy;=gX3<&n'}X: & xʗ ޠb梃º~Cv_UCtL\,q_4T,4~5&8kھ/8 ̾a+THVc_b}*wsT„    {k.:]w%/ u'IH,}_B '$b;|@@@@ ]?65&ʗ>G=:g%j8a W%m@,X' '@B%|@@@@ K.ݟGL,/^_,q/L%n)fb,&| '@B%~-YrD\=Klp䫆Hи$"h ^CW6a!yiA@@@*phSNLL__h]L_y#We4 xQ_D;79Y /QSE{ooeD^H    ^4=fN?eG<"A_(j D!)O{m7VSRVK {+S[m]W,寭ҾU-*IFMEm)a3.M34   !p%k{o%QI:e!yBϜɭ~dM|o aTaP@\,g@@@@ P,񒗼$&8j ~ַ<zjGuSMAm.KPé˗RMW&@.{/gjMQ~Semę/x_^)/%0V)A@@@j"KoߘX┓>[d֪scJj/4=1cFL,b (R{ _i@\viIL,qҲ[le\      ]3_K|obeU     &k/Kﵵc      eAcL,c$~ß0:@@@@@ZF`}^cKЇ[+G`ѢEߗX^hh WR,xƺK/mm0 @@@@Ep{}XG[ I~u؃X"d@@@@@`@PDj-D3'mo(]ޫ-N󨼇s5o쵾WUc͂w$q'`fT* aO5h)ߔ(=7+mS\l8V1n^4QS4xe1^O ?]YVD0h!<)`Xy3?X[p @@/7ת"0d٩8 ~6kZ5aNHɫ\@@@@ ^Mx9*I*-e"UmUJcrJmYcxԪZteuMȚK'@K Kh/nj{dT9[uHRIԲ7#Uy]N^ѐJ\: (M[*qꂦTI]U1B2    0Hj% b$v${+%K>5b@PC'0ŢY2z@@@@`4b(p woOuW4({́o]Dy<]xq̘1/"Shn.x|)G {_6Q“>uC"K„E!+ !"P?QZ31yk!" v3XhjGWl줌r^I@@@@z@ s,S,xiT8!w򞼋5Jũ xIhu`VyҲiM?)@@@@zO s,{Br4r\~7ڸnvMpؠf&;Us/9{Y | I2s(I'_kfavDY##Rc $+z9Y<-/njȥP`C@@@@ @XED02;0rH,24t b    }!9-~NJT8R^apuJ *r =    G ,!ߪ75=N$m?AB$0UE{ͣzֿ6o>> вw=<H'9א8$iYUvCjm_V0<MMz!HFr|C25eJ͈hvH   5Kl-K$izvKT6U+(!XU@@@@@ bjH     Xu@@@@@ @XB cNi䭯}::YNXLhhO1/ MI)LkRg R@+K#"+[ +D"8z~B!'0Db=55 !SGH   !9h4k"N6TH*!fA霄JƐp]U ˡ ̱VB{݄M2QNVn nr!m){Ό5;<3o'x2朑 TK8V@lG'dT9[uHRI⚊Q=19m@ ZՏ3zX9r&Yۋ:6``c /},݀,^@ @)Z&Pnn@B?%P@@@@@ _"R0@,1̥A@@@@ @D^V:D<ډֹȞһV2g[gl;]vͽɮ䯕Zdl').PDO\%@/ K40 uX#N2|e\ɔy,tZpM\jNE]юEIE ZFBX|S_v}T. :kKo֭٨͘iU&d6Dg\\$@W/ዪ   YKh5S?*R# ]Oxjc/ֹ'a~8A3 @@@`0%NFQ&]u1$< G)ZrԂ:A?+uM0/.9$+Qc]p ]$@99hr"fl~Nytu ̈寇C&R6e D(=pBJ_hXDH   9 (eK7E}|T*= ~~oM^+XzskF_z\u%f^ye΄(4 ˢ>--nDˑeRPQ뮫Y?YcP@ s,g%Pp U3Y_3@ϊ3BE /UZ긮ơC*"jj%IJFuPw}W;C%*#qw2~6@K 2_|?U=h1B8ĕo8ӲV22:?Vrpl65:a-PjIs ]yãR^SEzK2 z od7>i&@Z]sNϢ&~EHhSf,l(-qDz#҂hٽ)SCE`c y_zY,7T.k2UVz̈́vҟSr +D&: 6B$m 1Z&چVyv?$a'oM=Imv.A=(Cd`vH,-?!u2 c $ߪNM8A m!D I~R/Z 5w JʥʄY)SUXex瓆>oȪ!_zT򍶇ki"%\BZVCHtm -vZ!2uԁןrG--UM6Χԟv]Sads/}A9rT@/nK3fhm0,7bgW$53p-{qsHIf`NjOmK ft6A-%@m~i5S\@˗KT\=L-PM+Zmh񔌚v"hoi]\Gqw,2Yl`%Tכv}`u-EU3Y_#>l*j}E j8Gu;94Z{HF}LV Ŭ Vh/˟cTYikë>WG!UwZLi6ŸilӝR\$M$_!"ʇ,DPK3UFNO9y{n*?U/P*w}eU#pwkqkw VX[U¡fELZyE3 CQMKdK AEvJmVnj Ӄ]fb+HQK/*Mq*0+RnL׺Ki*= Y5pu4{\ibjܭVzqFV0̣TIrɮrT!\Tx)zqh"TwANz,/"r/sқZmERNɐzҗs!ڻ(5Kd $NFkSP.룙!ڪaKKJYwTq:P@"ZC]TPmMr[j|%sIU Y8#׵.NP]%#̈)ف% T(oҮ"hٞ*E@:{5ZU"GZ>'Uϖ⌌Яͮ|#4ǹT> +o.hS&KiYIcU4gwyYZjv޲$?h`DtވJX4gPEP%%"aYD-"MHasUikzZ7ʧ{"h KxdzD=J@{K4=NTBԂ2چ PkYMl+_y"5T+.U&J*ī4xC+Dd*%RIEȰRPK5aPE'ly8FDIQ]'V-PXMvZo u[ ,Zz/sW"h|94Bj{H=R ).]Sa$ JXuwKUƚ/şiI!42B^L2UBׅzHUrs nHXeݺ[*<{ A,@X"ŔaHKW,h$T7IEV5 TRwKG-Cnv/bFuP5dڝ* UَY ZjUa2t?jJe3VKTBU,LUUR՚۲G,[2@O5^TBܷMYi5_3/:Pze7ݪ۪s=pn:{͑"֚uVKgzA~Q d%xh/6FYRIu ֩lAjwvёKIJ͖z swR<2jDPJKPiR\5w5tZW(]$TKbtZUFMOK&y4S7cS Te^ A=2]̓%"iwj&j*_xQWVji{\ӇhY٥ U( O( 9h| !%w5 B •(d4mz'"D' ĺS+ jլ "NLکܠ6+ok Ά0k  )29Uz%ʍY KF&!D : !\HXBs*b'" IOUZ!_`g%*Y|ayxVd"ΗC(Bs TUͨ*_ͬ۲~.ឲdTb+m w(A3$SkKm]ƷA\Zh5k{Lod/קfTdL07LeMіQU 7/匮Te"&L.p,U/U-$@ {,{dĥ?=t bm*kZ”'Q15'6GbD{ 4/P,m ,D)M^e8SY*OFs.JRyPSq*75 d%s':?olrvj*_Bh8S?<Lv믾|괽7T>96V wsͥpƌTAOq҂~y7Z+ H˗+a"̮bׇpZ Ψe U%@m~i-S/ey=wQ>yC2Krlo~?k"-2UkcM-- xTSU Xb }.$vaX m fZZV&P @,GgNq.b.>)zi[/"X"I"Xbނ@.c z/LLףsLW[̷4K7Kzl҇75{\*OI\05=$Sh%ZRR-:K/ {Rtlϭ7dO.z  .c ~,/ 'ݛVo}!'}klxk2ߟiI5E 3=M˂bhb4WZd @X"M}oj0޼QU8 +.T"ЋXQ*Y$ ՞bIv\`bgU!Dy*mٚJ9$~PA3U*Ló6Ƙ>Z H<_՘D/*  R/&ڶ粠]LI3//=˲j*\C&RTUnuRJ!w XJϸ$Mr.ٕ/AKRl !U&U\0//KLQ!敶]ՌŬGL|լMJ} 95$;QyVMʉ#*ҒUh4iWu H]'\4Nj\b -wb\4Tnw(*՟@@-2K4 5(j[PpR5 )a-zW+R%nmX jHXA!~喫5\z$.>)^%͆@Ku&^4"lFba0;YR{g}D1] @XBkF#60ͥp%][v 74;prhhI!5]TR  2K VyٽO}+AjFUJ4AJ 7/ŵ,i]|o"f@@ #̱DcYyơjITOٴǥ?=t bm*kZ”gHcV{Q˕/U3^HUybm1: T.._.R2錫Im׀z_H}@fZ&Vȃ@XBKS&`eN[\L]ېT%UԼvWQ PnE* }Rw+ȫE5_O>FF_ I>UshjCxգr pk5oT~ *SR wei󆬁m}i TK@/&jU;=Mgk@KR 1O E|/eCkxz.quH %0˧N{ú+^86GxZ?cƌ ?Id`H`Kg]X #U@/-P p,OݔN}A8@=F@xh\:Z+RUP:UA@@,' J!h6\]>@ PBQ8z(Kx*H@[*ז K$DrR%6$KXگ&rAr?<DBɺ     0rYp j@@@@@ O,CYA@@@@Lױ}d: @@@@@EױJ@@@@@`0b ^GfdF,NA.n    _qVtP    }%3Iۉ89d#3f4b F@,bQ     x%_D0@@@@ID#F@ %^zatnsO/1"{d%@@@@ %7p" fڹyfY˽@Uyb =H p@@@@`%\Efc]p:x#Ii5 Li1O Rn1f(<h&c q;uw_"6Wzh\ U* 0tt$@Fj 8Uqn5U 9f\X! K=P8IdRWU?`$ cV?:ayu4b    CN`tDBDKY[MRМm Z\ C "Po,!ߪ7'K'69fNHrq    Sr;Cu'~u*STIkʵ֙ c᠎V,cկ慊    }!3m3^@@@b-z8    IK$KO\QA"X"I"Xbނ@.9c }N\?Az;ך4Zsd ^ך^ʈew|TD&\'ꅙ y*dͪJvZYqqjT1&g6;I5G^2<՚ yie9Ȑ@` %8f0wyg%V}-͛c8\ejm:2,tZԝTv,VT YT=dP̳Rb~&&+H5`{ni,B^2pz A@/X"&粻ӬC':Ǘ ܭEgd&4jc]B zgơD҈KSu\zr/PZK1~$F6qbm.\@rqVB{ݖCZ2'䄏w%h`i YKGl| K3Y"שXkFVHKFL5psٓigkyI>OY;1ɜPCb/a 5WH3-2P L믾|괽7[}͞Eg#]xq3M'f̘X`X*uKrDc"F%ׁp8A@jK/Oq._CI?ᓳ9_"ȀP8dV3|lˤH+\:I@,cȮY"%:@5Qggs}7"A%NA-Y&X7g|Q<.V3F  @@@@@b T9c ^*XkJǕ@{<74&Ҹ𲧮R7rVz0rrUC sI(/1+N+:o>@jUuNh<Dv ͪ\WQU35d.h7=uTVm#_5gaI^S8]ub줲V$65*#,cgq J@@@/rYZG*2m4R!fwB$!   ybpCwSP=BmMri")T%(9bDi1k*IId m. j,2SjUa5#a!E'᩺f6Y$&-Ri2Dq@@@)> e,jӟGh}9+j;XJjVmQMkKK {(;)mMRaiLVUF lԴ&I)XqF&@Klϴ즱'0P,~WBO}CaăfH3[N|5ah*Z̀r*5CQ>8ǣeW)Ud@ogX IhUl(FzhXb`;Q_ Y‡ڣ54\UK~TV| m_"f^ZYURj-5,T+riUos%mjI%a&`}=˧N{ú+s/ %1&'/d[d*[ b V@,b     w9c }au @ %\|ņ@@@@@3     3ybps.C@@@@@Lvj@@@@@̗@w-     0j%1Uށ 9K,1:2:P>@)%0>@@@@@X"cq2 F{ ,@~ s̽,1@@@@@Xb0 %B(A@@@@@@'Xu@@@@@ bjH     Xu@@@@@ @X|߫6ƴҌ. lԐIJG]cT @Xcr#mg%4iEem̭>@Xc 1@BZY.d[ܱ;/Kzj,i $$*cJ͐|=^&$A@@@@62+:H"j ip%T5T8-w-PQ@34Hr 7)}v\ZMAu4@3̞vB @@@@`xKUH'Y  mgQx5šk'[k[qe7<< Po,aPsV E Ō\6@@,Q^!Z y?i2#گrd<Cc $ߪN8Q:IJDN)aMK" N>euƞ;_/:m ^xiH~/^X3fhm0 @@@@EFq._{$˖08p %ƀ%X"/Oha!XbXJ~@^%6%'@Ut,^X5-A`% ay4G?r;mS=˵:QOCx&JV+,Df-=͊oVyk.UWZ|0˱Tu{zLVb-~ (uPlJ9Jh]yӯeWj^.r)58DƲK%51U1V%%Jf2߬,/R+(Yve3ejnZAs]ܽ毊| .jVسM=gnIg4htV03wWR O&QJ GPRŁM7NCHx75=|L1wwsg3,aY6S <\VrzW@8Bh 7;O,wy2}D۪<*fa- ')bffId5Lc"~%bv)^껋ɧj N Zpk4dbl!u'ok6j^VӠWsU6Mf+RP$o i煿NZSI;* {aKg\4m6yz-Vy~\~+. ;5Zׄ yf6%jZdt<tz]$g%Wp&(1"̽jsK۔fRp/5="1u1ݴ ybR) de5@S}ȚJcO :Voگ'vn|TGUL6\sAwYc˚EUHڮC\mDUTZA*5脞ʯ%/JYjgniu ^{! U¼iVU\Xy܅aA5 5j%NpKV-yrVГK[U頻%iGd^zY~,-ƗrϢ  OBi+ m+zNҳ><ViGi*/ޥ9:$L ӟ6nfj]%kKL6X\37RC<Άb^SE;OrԬ}҆3FXbhw@3G3N\Z{BT- 1WSvUKKIvceêU}-!05zv-eSXzPĥ6ĥ"Uք==,#Po,ѐNp|Yn*qp#]7W553("a ZE{gz @w>^g!iI&b E*s ޜ8 oX (ђ\kՆuj&Hl/zc&s1GQva嚱Eb6;|gGgd&-:|W.YzlHYYӡ\`.Pj{4[g[xvHU:+K?hȒ0;!zBd*ApXbI}|A89+|728(}57t&6-mI`-r`PꗉTVԱ@ ,>~%7CۃӟՀ@m1TOHgJjPzf~cI-\U+,=#U˛'r9j8R"u%GW # * p:+ed-d3:,zOEwfk"^WKA /:m gV{&dg:^#/^X?g̘X`x!\@V4{cO؆\\Pj=R,Z +uY  % 56S¾(7 N]{JI-;a!q@zD uב$foIG}/^6¬@N ꓡA]syrF=;_]²7idq,ٕקnaBCU)QG=D,QUrOD5C(X1Pqx\SYMUM{z*X.@,     C g,acZ4|$O{FY2QV6Fz$3]Zu1TvyG:ӅBAMX_ R ijajk7Zhܠ@@KX~,/}'@b}P  Lyb aUfmhY=Vb=6فG O,n_;(d:IA5~_)8 kI8yN334NNYWxH (U62J`ebWTn;YVQe}m$frMhsiPYFeebՌEIXsUL1Ia#Uy=(h>c ċZB6c#jDLbcti0sWkV5TRGdZ̦28-*Z|1Cʨf6XT \o$LJZ[UYSޙlG^}SDE.ҒNDP Dr$]FJUY    0K8KZZ@Z֤WW1tI72]CH> A3$hBLJ57R[adj%s8E p4QMJ=^˼j"z/a /#Kȓr?Cup)[ibUJeJ԰\IJ}\Z'YIyR>@@@`ް j~ΫiUq$@/n3fhm0_jVìSB[EkKINx旖Y (8uR{+і.=~!q@5K |aAf%,ܮNՙ!@ X"hbQ 4n/7Ն6EA@` R     bL@@@@@X|+ePG*yb kP*8     0 0 /     4A     d%M @@@@ K4 5n$A@@@@ZAX]O-=J$ғ)(*yb /NXw6E= 4&@s%, +ѯ |A@@@@XB>K'ojoM"S'8Q*%NcT) b||2/:m V{羚68<w243fE#/V!Sa&@m~i9P\@˗ H [0; T#0:G,1x @@@@@ 33 KdLL@@@@yK4L`b6lK_5{ؐO.x g|:KةfdVUCfO(:Z*W@ⲫOZ:֓j;]³$'T_V  CN O,oE.7=kyc5ɚoH` 9V-_Uܯf^|UTӪ*#j>iJJ-5$:   H O,a5CD T $5C@@@@$'jiD9`49 Mz("/Q֌;f_S% |UIWrLܓJXlܶHת _-&BVS 2S].W|&^|Ml \#ni   wyb q;y :* EfV$Q]E}߰P)q5tGk uL-SaHZ"\ƜMk[+Ք͓rk5fk_][W$Z_Sj;Mt)9mkHZQ=XOR.tK}w^fNmF&V7>BU,N@'fD*8m.9kc=PU)bS`R<fΐ\SYOީ4P0ˁ.Pb   P@X၄vߕ?էcW~*)M!k:"1Sd ܼ{ք~T+fT-U%﬎4\2.V 5Cuk_WC.PJZ)+5NGJ5Xت$?IKA@@zC O,@"i+7V`̔Gr2KQª7iSunOU*XKpR}Sg>]d$'hPT<6'V< 36Rլ9_\$; @{W:hvUв%zƛR 7R95T?s]@@` ް  _?մqY"wť3.=3f(MVҤ0hJ|TMSmұk+m6I;Xs],X =;&k='#dT>.rBTm&Rt!5RdVAgXV_Y=eoW9SSJj3^oT c Y@@ pV KRjna=#02|v@,Ѯ     %R@@@@E [,A/{Eߺ]`-@X֝( ' @@@@@ @XBеmݩ 7     "'x\桺`4!3( $B @+d%Ha$"'@ <@@@@B O,oa'@.b ,&s'㔫@@@@K O,! vɵ#w,YLlC,‚a     h%]<0@@@@@ K4h`b,&K_U;}1WP$$G'tϥ0@Tyb 5/ rܼh$h<Ds%     %Æ>~h ƪp$P(+}m':=ML*e˰\uz@@@@@XB&%OP?/aKZ;eG Pj˥POipcy@X $6i̙j0Tӛ G$     KX& pXy\Szksf 4`@%ZHTEj$Tatyb }fť;%G.kD%=}.*0 d%tB& 08>u*gJjL` ?)\`R.     /:m Ͻ^C_?[ ŋse]ό3BH旖A (8uR|⸥9/1%J @5!蔈4     0|/1|eA@@@@ ljU_;:jB%R M۪j%1_5y%\ׁG8J :UzB2+KI<:avK4)YI f)tIr^UKU =XZ9˥XKU(!'b $E{ dmKm^dA2j$5_& 6?,E)2ҹKLkRo˄=&d4aUT-B_WJ 6(\@Uyb OfT5_F7M| #< iUXv]m} [gp}(@nybh}Ԕ%$TaգDhfX]f].lp%/>wnTiC[t\$VR*Rv?܀BMOn-!vMaT5ßfBFC2T lǻLP2 TXU N5& fyViݫ[iA %:ӒsCO XmI$7=65h5*/yIܭyVuU %RnZ14U\M)&fÎM:w▙-!Dlzlʅjs[ gF\لptZdIJ){J_lQH "3( $蹫omim\r>A̒bf,\NYW C +E$J%E4pU\UJRM55Ns","XѼ$QY1)Q,_,Ğ\z!֪R W^rpԌFRJR[  %-΋ܩKCMkR#X TG?(05GͶXTe*omMjOԷfk\H<.9| yСj4KX yS5SpIja&FG9jv~U|Mjð>cJ$:_AuҳFp2$*շx2 1h8V)^OoqTGX8RKگ-xtz1YY,rHd$' 5xN7ɺiyhVJh\"5@58\d*@^:kK <H D-}i@>tD`$@ %2:0[f])VJ2[گХ&\c*W[^   uK_c[ȔZ8!MY{u]AV{;6v ŋKmƌ/5]@)d$@m~iR\@˗<>8n!q@%2: U     'XeT (`[Y0B -|x0`6p&p[w@@@@ ##uFXP     0 @@@@@ @XB^Zacfmi6vȓ2/%UmK:uVkO*?\~iWR("RH)Tҩ6El;|+\ zb QZa@ @@Xˋ|AºL" $W_>u]A>7~(m|p$@/n3fHj;8P[i9PObmn[AL ½$hEG ='@m~iS/ey})'>qCK 4 @ {h%% eCʸT mdZc锃V{ z$DrJ:D     0 A@@@@ Eb yآ%f#+ʇB@@@@@`@Xˋ} x6*    -%'h0@@@@@ @XB>km]߽VGCh#! ˝g#%  'pm 0 X{Wl՞"@@@@7[bI [,~3?Wgکqlcj '<|7֦J:Zc u    .yb 6%/!`%FGG%~-[x    uc tJIA@@@@`pd뗐wªl; (mY)b%/Yi&0*3ԍH_rQ-ɮ3ªzʧGrz~U:=mFB!'["_l2݋]B"$^yg%QNL嬡m`%w(H%-VFқLs#<Riõy$˒uoD@cFz]cͫ&2U   HD$q!J\\=(¶~%f" c*2ƚWJC@@@ /suRryWZfsWĪyQڻe"|'h;.gWX#@ %@NXhskMxKl0[~#+[hJ4)&@X`G,QYi.m -!UOUߕR.٥9XI[]DFSׇ:rC鹦^XB`dB WI(Z֌j./N3šW%$wf%rpR4h l5f tjz?m3d1JhgU+UUyJ-JkEmugiq {:UM[ 4s$z.1TOksڐ\eƨR 1K!\ hjŒ3 wM&sn))augJ.vsp0uy]$.>I1pc+R2:%zPӐJ O,a5ӬKk2jS$/YFk'|t##:ՅJ* s+$;*De r׼+-S ]%UfK," 44@XB>K'!̗P{-`vu"7fT"r$Zh1Y!4"NڪZSEY_uxFB敶K**,j)Y[*7!\ .^Ϊnj򛧼缶diΗ;.~.\יzZz_:9+?/ )Cy\F_}i{oXwi\}W8#]xq̲1cFvjqEndW+`6! jVo_8wzYK gBq._ЃRc?هā d@ މ!wDUq@ _r@,${Y  &X"-v&+B&HINjApF %zW      E [V5ú3̉HZ)֠%vZe*ah&="_l{nSy $J~z-Ul ֪&%#jrSoRb,+dnCIjLQ[$a@kL֒*|!   K ]K6]B{!ϿGiGdbU5š |K}ɢD"LOZ DXIrf $ByW 8Z+atF K]^TgY DP3@)T 9cT3\+MtF cT׬"rl.%XJiR#!   Q] J`mM ) oh3Bd*&?DFS;."̮5A@@@$dɒ^XK4 sT?:hY^1u؉QҾ6$ahfbzF0$/%#xJ}TTDy p,t!<դā6A"GJ7BKPNb'm lo~c^,v#  vXa bR6 &F1%LpoDqOdL0kV-d 5ڭGW¦ Ͻ{ysyr~=>=cwzO1m7T)@\znݮ<jXK:(re&2x:DZl7>11^M.( *sO':x%[  P`yg}bD𖡺 =G,JT@K U"!)GD"I z@X8@W$tD5rD"   K4(@@/Pu 6J꫅m[sZVo -6/MJk +.D=J  @I%G\Q჎^, V\އ,C^B.(Pss^)aX9@| \O\/5( _ЍQOxn1F^  KDO.j~Jq%a{_ d°˘PxR^m"7Ai}+T8~"Ϫnb 1^j>.vŽ@9%%Z-VsY39grz&j9Sj{j%v=^0҉MPvk&z^iUX/@"jV~Zq  ] ϺDd0>sȃ]+ \/a$!Oڑ5w|wb24HK1W@|.&v&J2.}  ` z]*~ |bbv`b`]"bH3@2-NB@\J.ҁ*Si5{/27XvL)Z,WH2w6i#<  .Pu+Kuu%bǫt)pV[x.нp8_2rߥL̹|@0%]+:|V F`='fx`Nt;΀X!R󔊯$p1IbmY1kpyTg\$  Q@ ~͚5z|,d`M)|Y\\>ў|?'Ӗ{C" tͥ1MRva{,%{2'<@8IDAT<E/%) 6'z]jK4F@@,J$~9FH.E:_RY( K(Qn/ky(Ԛ[ S\BT  ]\#D|  xXѵ2\EM_jڛykVi{Ay@@A`@7GKH`56H$@@spoTtߨ@@(00ľƏ@@px'MrO.ՎC@@V?.Aȅ;$(7^{S_ ?KEė{͔D@@yZO+ݧ6Q7MWܶmz֭Չd NTñKA@@/&0|3Qw)lK腋NLT#  @@`^.av9Nr~H@@@ ^ ~Se%Vtd@@@ Nv??Vt -PU' x LX*m?o~۷|I9.Xc6%R!  )PDqz?Z=j&;=< .|%o9266f"p 2  ^r?CI{bӱ] a oHx>%\Ca,"JAVz,MاLLL-[cY[+kRFg_~Yʉ\snC=r䈹Gupͷ~bRi"9"c,Jx@%  @D.$CP)UDf+1`9Rњ ]v:߿Ir_qkرc/ݻ,G& Iu^L+ 5/X@ /]T>l_z饑(QS:@@˄ۥL S\fdn>K!"s9%0SF[LYI/54/}j;w.OtvvʽvzGa@@R˜ޥKa2B&҄~ܛ!ӴLi>/ri¼-d g;^:ӧ}m&w}oZJ8͛7 ͥҦ}DbJ5>(-"===T,J j@@ Hz`O̶]&߉e Hڵ%l5Wǁ$l}L]L]-4 4@Ͻee Ȩdh7X6F"@@pHɥƚqT)H L (!8^+OcQ"@@@ % Z@@G2|=%fsKcL*A@tD\gZ@@@tĢO@@@V@֭[kD*#yo>*t?J#,=|׳Mzxxyh=u]|yC=^(O2~zeT_F/,~_xya)S 57O%\"yB ~_ D=ki?˯K/,u~/>jck}@ 1O9|<{kQ5ovΫY|4,i*z\FX@@R ,ZbT QgV7 W3LUÛԒG0{gzd"12kKdD@@Z[['ԡI-oWJRN 7:p:?ѐlxbE;Ǵ\t@(P:1SyG5~B ?1O}qЩUS=0#(GՒ +G2:oy9@hf JI.qA\CF  @yZ"tHɎVfmEۖvڱԎ&ہLfBV!ŸM.I  J;w:+^|8z I`FϨ?S/Ͼd{ېZNu僮DBƔ\!t @!udןw So~:z_eMNNV#a @> z4{2 r  @Xď:䗣}q桡=#qD<:NG#S` |k8'NQN$z֭K;@@ ݸj2n΅9 x _79>>QΘ1#W\#DB""Ѱ,  @yG^~g]~샯kS?4駟6Pw}vWJ 8{B@G̗|kr#D"ǩE22ꁎr:6" 'gyk{緶Ys 70A&&Rb.Q  \@\/Q @@R`z]"U]v@@@ իW竄@@@w|#BIENDB`nC6+Ix<+PNG  IHDRKRsRGB pHYsjIDATx^ Ecq a!A :QA *3`AIP0(̐] BF \AyH0a7 *"?ΫソNnUW:ӧV_{e dsbs   N ,XrebX'(   +@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com// 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` =G       !"# $%&' )*./0 348:<_$$$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4YdYd :A 0ppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 R___PPT94, ?  %fQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, Topics&Web Services Telnet FTP XML fLet s talk about Component Object Model (COM) first44& COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<& File Transfer Protocol (FTP)$Resources:  FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comn %-" d`! 6%B 00C(B 0*%Telnet to Unix/Linux +'Web Services and XML Web Services architecture Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(  ` 3333ff3` 3333f33ff3` "3333̙ff3` Kf3̙` &e̙3g3f` f333̙po7` ___f3̙;/f9` ff3Lm` ff3LmNLm>?" dd@*?nAd@q<nAqFLK#M n?" dd@   @@``PR    M`2p>> $(  $ $ HX? ?" `}  X Click to edit Master title style!!  @ $ H? ?" `  RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S   $ 6 #" `] `}  \*    $ 6 #" ``   V*     $ 6 #" `] `}  V*     $ C @ABCDE FjJ@3"0`B $ s *DjJ"0 `0H $ 0޽h ? ___f3̙;/f9___PPT10i.  +D=' = @B + Edge  ((  ( ( H? ?"@  X Click to edit Master title style!!   ( Hؽ? ?"   [#Click to edit Master subtitle style$$   ( 6P #" `] `}  \*    ( 6ơ #" `]}   V*     ( 6xʡ #" `] `}  V*     ( C @ABCDE F8c@3"@B ( s *DjJ"  ,$ 0H ( 0޽h ? ___f3̙;/f9___PPT10i.  +ityD=' = @B +}  $(  r  S ԡ(0p  r  S ԡ( 0  H  0޽h ? 33___PPT10i.  q+D=' = @B +$   $(  r  S (#$ `}   r  S #$ `  H  0޽h ? ___f3̙;/f980___PPT10.!)^0  P0(  x  c $8-$ `}   x  c $ .$ `  H  0޽h ? ___f3̙;/f980___PPT10."o}$  $(  r  S Tc$ `}   r  S d$ `  H  0޽h ? ___f3̙;/f980___PPT10. y$  $(  r  S p$ `   r  S D$0   H  0޽h ? ___f3̙;/f980___PPT10. 1@  @@(  r  S Į$ `}     NA AA ?$ H  0޽h ? ___f3̙;/f980___PPT10.GD (  r  S ((@@   H  0޽h ? ___f3̙;/f980___PPT10..ܦ$  $(  r  S `L$ `}   r  S $ `  H  0޽h ? ___f3̙;/f980___PPT10.`96^   ^(  r  S ܫ$ `}     lA$clip_image006` H  0޽h ? ___f3̙;/f980___PPT10.@D:  :(  r  S R$ `}     S B$ `  "hu=H  0޽h ? ___f3̙;/f980___PPT10.3@  0 @(  r  S ̚$ `}     NAAA ?$n H  0޽h ? ___f3̙;/f980___PPT10."F  LDp(  x  c $<$ `}     NAAA ?$0p0    NAAA ?$ p H  0޽h ? ___f3̙;/f980___PPT10."o}$  0$(  r  S $ `}   r  S $ `  H  0޽h ? ___f3̙;/f980___PPT10.`  l`(  lr l S $ `}    l  `A ?$"P0 H l 0޽h ? ___f3̙;/f980___PPT10.! V0  `0(  x  c $$ `}   x  c $䃤$ `  H  0޽h ? ___f3̙;/f980___PPT10."o} (  r  S T(@  H  0޽h ? ___f3̙;/f980___PPT10.`2Uu  (  x  c $ (@  H  0޽h ? ___f3̙;/f980___PPT10.`2Uu   |t@ (  r  S $ `}   Z  C 2AWebservices H  0޽h ? ___f3̙;/f980___PPT10."o}$  $(  r  S $ `}   r  S `$ `  H  0޽h ? ___f3̙;/f980___PPT10.!Orp; '3Xpc>Q`;@Y[S"sBDWOJLVFI]C_m;e+0(  psi3F?@@@@@4;SGm\|@@A@@@@@ ,|]i \8LWzjix5=n=E';^ Z׹ttt=RqbWr mJӳUu[-µMN럘D-鴟\cT8>h(i>Tۃ:,^'ngp"/n)\`:w=.wvV{ֽ,TYjsntл /EpwoOS)n.knw*Ta fᅥےp|MNTrӤ t3I mPjڜIJ,6k*C>WyirC6z_z2tpN^{=<Ֆ_ MZltާ(F6"%TJepn Poԛ)ۡi\u;iste>~[_ t[wCӜ6 wa,8މuut~V;ήu0(yԤsy?u_P.EG!iP3@<32-N}U{GAG~JN=HNx:UƁ΅zɀC#~qn2^C yKDYp!Ms3u::GO^x I鯾Un.(N7hx_K5^07\^Vo@i˲ng3uGrR!p}=`C3ƵWPZQ" z $䁚jܔЎ62^ 7MwF!= Zۗf~^t{y Cgڟ 6ӻ:I{Pٙ=unh?zW}| ښ52Ӟ[N{4a>îj(lC Jq E6t\98Jixm|M9NݵkהY(jퟪ?/=mZ8[6{wnpt K   p0iޛU\u}4M7tWvicǎenl{$>Դsting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/d,www.easewe.com,http://www.easewe.com/l- www.x360soft.com0http://www.x360soft.com/\.www.dart.com(http://www.dart.com// 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@``  AP       !"# $%&' )*./0 348:<=>@_$$$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4YdYd :A 0ppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 R___PPT94, ?  %!QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<& File Transfer Protocol (FTP)$Resources:  FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comn %-" d`! 6%B 00C(B 0*%&Telnet to Unix/Linux using COM objects  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|~.aspxhttp://www.dimac.net/*http://www.15seconds.com/Issue/971214.htm"http://abouttesting.blogspot.com/cRoot EntrydO)p=Pictures Current UserMSummaryInformation(@PowerPoint Document(}_`DocumentSummaryInformation8x > .@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/d,www.easewe.com,http://www.easewe.com/l- www.x360soft.com0http://www.x360soft.com/\.www.dart.com(http://www.dart.com// 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@``  AP       !"# $%&' )*./0 348:<=>@_$$$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4YdYd :A 0ppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 R___PPT94, ?  %!QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<& File Transfer Protocol (FTP)$Resources:  FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comn %-" d`! 6%B 00C(B 0*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&HHnK   ,B 0~-B 0.B 0+'Web Services and XML Web Services architecture Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0($   $(  r  S (#$ `}   r  S #$ `  H  0޽h ? ___f3̙;/f980___PPT10.!)^$  $(  r  S ħ$ `}   r  S j$ `  H  0޽h ? ___f3̙;/f980___PPT10.@_ (  r  S T(@  H  0޽h ? ___f3̙;/f980___PPT10.`2Uu$  $(  r  S Tg$ `}   r  S @$ `  H  0޽h ? ___f3̙;/f980___PPT10.p{0  0(  x  c $@1$ `}   x  c $d$ `  H  0޽h ? ___f3̙;/f980___PPT10.r(e*,0Ԙޞ+me.0(  > .@igershovich@connectedte Oh+'0 px  8 D P\dQTP - Not just for GUI anymore$Using APIs and COM objects with QTPIgor GershovichEdgeGerigor.gershovich42rMicrosoft PowerPointjec@p]@0V @^Gg  I3  -- @ !--'̙-- %BB--'̙--%--'@Garamond-. f332 MQTP: Not just for GUI anymore/%"/ /+ /."System-@Arial-. "2 OPrepared by: Igor     .-@Arial-. 2 Ov Gershovich  .-@Arial-. +2 wwww.connectedtesting.com.-'_;`igor.gershovichigor.gershovich   On-screen Showj ${ )Arial GaramondTimes New Roman WingdingsEdgeQTP: Not just for GUI anymoreSlide 2Topics -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&HHnK   ,B 0~-B 0.B 0+'Web Services and XML Web Services architecture Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(rj+mF;.!?(   <@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p(      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab_defghijklmnopqrstuvwxyz|}~*`^B&@   ^>k Z?G韎c LNc;NGGSkm˨}2*ވ4bfd8*K(Ǔ9θ0Rfzs|gUMas5l9nI`ۑT9-?+!e>VNyh`FA 츖PpG_*Pzcf=e\]+[O&8N2T-Hov}Ywc .|87hU| it޶߳ûW՗_~yNͅSibXt$PYa1ƻ0*1JtRb|ʏQ ƛ;'aTB܃mbuvTxt,Bb(*gTm2x[w} ߑP"h<?;+L'V'BX~Cs^uG$ՕˎwLQQ  B`}C{Wb-8ߙ~}g/n~衇dU^F^w_;/tOndѺ)S牡ëNS1o|-t 'өL;_^ߴ梏v^ 2@@c!29oWadd8Mxˁc ǖ/~~=Fós{eܽ{h[O(I#?A;EU L%.^˫?ET9!L>o,}>7~J,jh 7 ؂3EB"@0{.^Y>]:bx,i!15q 0ܺ-sunl?kh@cy_xoO''ݿK9ϴ$i0tÕSwud?o٧.dhb>xG-+џp?IM?>N/;'~ÊD?tCsEIwI~]}AZ޿{R1v? 1`h21*@UI\I;r)9*Q jž&^I#}Mf3w!K=&ۼcۼtpWj4uMˎv8%}! @ۿ?emkF%(2x'w<(bXOߝӔݰ! hl7c/~ͧv}M"J:mɴ 'O{ޚo4@_ӆߔ@{w/b:E>]"4 @c S!׻EY c#}c&&~MS6^i.Hc04aCzڟz䗷1` >'3 h94ƣ%64!KK^_D.} ӟ160G% G*&cNG7rޜKf"+aE&ìvuוݞ[$/y %>$^V ʐ@:·̧!p IF I4J%( }I~[bsp-bEEJi-DgJ:~F-ɏs9{K!Ιm!{$2Q1G:&'g>  ᙏtt6K(x#y DmGAi' }L2 k>bǼus3XX[χUJt}W| /6aM8qgoҜswh;'[s]o"Nѿ7br;#,X ۑێǷ+×dDh* [*х*%R|W>\ɕsmg8?0A ޱ%llCK}q A<(jdbgߨK-[1W*Gm`v}CH!uzS&v=Dd4&[h\VEezNkrGaG]l1%KTb|j\ĨD{[6sE+>|GDUKfΗg; 7xvK-h,q%8'6ㆵ jP%P0ec\E^yj: *ԮQtҵP~;mƠ] Ym2]?tr]YA $6fommܘerc^R3sM[I vy=VU۵:PtNWE*[dVҹBk7[+k~Cm@@@K<oM6d[~Q :uS6yb UVI;)Waܥaj-߸[~+*uT!m%1!ViBk7iۈ6a6Kmd+6gΜ+V["w.ܰj͠= rLƱO"g)8؟{lѽDq؎#d%ȁsmr;nXLbZ!%@d=Nh%IhЁw CTVxE@@wȤv x*jEEcWm/'nO{,e1yWץ)AfϞM鴆: x$ӿ:2"9 }r]<K!G{Lr80:"S mCGUɟMUѠC{֜ 8Q #`-kxgtxѬoz_9&k.П !!#'}퍴PTg|1>߯wh㶛x̆(!I࿗C>e cnI7藅w!;-cTЯ?$Qk32| [@ Pk٫7UDY c1\pnGAfߐ eiHd=T!8cDž !;uw8}p{)\>@VlyK&… IYKMk!hpj:T&>)ޒ@Q&7zTB|  E EVCLt5A| tv Τ?DcfD\ p`YF%<!\ Q1wlVb̙kȌn4N0Cr2 Q`[8O|N<58AGm"؆Ei*F;Pqn(_"`RCIJk~)>.'-+ޞ S!׻2cW.ΝKR¡^zҥi²es/ta:qa] Ր?*)9dTx)/[Jx8eL xc ܓG6 !:፨Xp:JIgyfCF $:M\\>O;=[;[ ƟE%b.H%P4dʂ'4蹐vHQM<}wNbDoHrРBCҙl%ԷP(3i*C} @r:2=L|ߕ'{[ӨĒ%KdEo-)Zj4H i3g?*Pe*i+ޥ+ܥQU%\[>YƳ $=6ob<.2LBCJUI[^WsFy'ËVŦs}̚@`{`D/QŵJ_@F!Z^OTQ̝{( |l.xĘ1Ě_0&'1q\932#[O]ޅk\f-S!Eʏ@@@z@y /o%RU%Y1;2|rEI,%-=MsNx tS]w_}o 1iOMd~ޱ]~V;ALg̘Q(wٳp^۠TG֭W3УҾrǾ|P}̦&Ȟur(5LPjH+@"msZ …Aܒѫ8sFbXB۔믧'Nҥ#Gv r}M~Y ; _3F-l6 M751#F蒘Z/ְX8藌쥅.Dҗ/zf7#-+rɇRa/s ^I>"7\ 5':&#gIl-zYvQo=d@rgﮛ'suk2_ͭ|Kڝyb|PC]HAQ} cj'f/Y6u֕-i4E?.@=ar] y&_g8\v;OtthK|5L:q^+0s<=# GZɳC\|̚3g=xj|$ Z%Uκax־KwԭGaٲ -#skHՑasUzUnS{o&l_я'wMsWHY0i06N6l@& l.WZ-xЗf7 $ybKoty|/;~2Ɲɽ2/ =̘1IsL3u'Ο{ZZ1iR Ȼ@e'W30b!sʳ_yf|忬{ú^/!bv $ iLh! o,瓥*1iQHYK=}b3uټiϛ7~I[_) tHpɟN!Td.L/)*ozu?N~i+B}1w%|b .]2{yFȟB"KcF^ '-!o%\;s#P̃iI}&~1%]E@rYRQÅԻZDv8)iNSt_GX="8Tk=6OI~ϻE2ە*{8s@D=!BƇK\p!%.bŊJ9{p*;=a&Lx?,52%{ypU>cI _Ǫ=s ]b/E!.vu=[׭}4܌8B҆f,9sl!P=5rsZJs5tLx3h,ڑ}ApޕzF=t.3g{#$/ssFo>wҷ:t.⼾v>d3%?"萧?cˇB6nV.^:,C:e*Yco:<+Nh+Sroկ}l~ӟ!Aָ͚ (&u%o}S.!yE/_,D-$C^_wYHOQnvd&y3$y 5d.PyP|XDf2AbntL !58.T3KîG6xhH'v en ݜ鎫Y#x%?I}|?4 ;!Jny`RbɖA3n*53CHAvzȳ7@_P>t%Ť^s=_}Y[ZT6FOlNو徾lֲ@x'׮sUdhltn\Ρu},auޜ >k>qznlH.ѡs}DSC!wXx"mҐ$%GcҔ~-ټO1ThNYC:kc9T^&y I<7w%w._>qO?lVKJd$)#r@.'R".d'q*J=_=j κpͅtqz&h$JYrnu.;Ozt@4<>2L7 Q#W-x:K zz37Pf Aϓ~F/~Y~6@FsF~a:M dn%ւo ?wgJ|ܵۏOnŔ㮇Gi_'N|mɮĤ>Mí#w_?1x ?z9Th$$e—>F^=iB|)oYZ43D}ǐ[^=)OY&~EH]N#dO_O5t<9pab;{/PճIr.=sŢ$xv6 e=-Z#ȓ;3*s$iŵfl$|ђ$*1"*_9kJr"F}0j ft ]/J 4Lz@!4{ss_C NE[oIqdg$xh@MR5z,BJ.XQ(hFo<;eU\sN(^#-p{TPH=e!~B);W~3SsF;{ƫ4Q`'N9֖ 6û@ʄL;%n5x$.^2g I`QK/$Nb7h]r7,מ^{r-w >_Cm9I@&VI#!đ0zs聤7Fqmo7KԗΝw 0Qճg!HT:L  wA-i17 i'dt_d#!@ζĻc C]H \3r>wܙߕ(6/~l^MEԅ50m<[dt0"$@澦{=o$<.BcG6hy$x0ϗLJsi:t諕%WҴ{* ;mb/M@FM'\xYu&}qO{8⍯Kqrߢƿ,!ZBb.b~]$pʽѓ@ҁqEpK\ԗΝO; K\gۙLCd.2(5 $ntйs)ȼ`s~/8ەgǐ ϛ35ݓWiҝ櫬:O̊4Gk:џsގӌw%2W_߽ v'\P9&ߢS R_B -KCSo5^b'&w ')>KGO:u0$Բdq;WwcᬳQUJ%/ (pI"p6۾Po+&%h7l7g VÏP@+?h=u$toLt˦N{ccf%^bcx,|tAC%[2bć$_pɜ_^;Ym+sE'>~W")6a% mv&7Cal~V dm$O.L^֕X <^xW'\_wj7lhψr6 JK`;&t@I%9ĉù:,[bQ՞1(y'sMW:9x{sیD '=2֗@Kq)tUĨMR35KquF<Vhx;~:e4IuXOe]1\[f%ח5I(USju kI:'4åTMHJF'.=yq{6j`id.$k$F\@)qMr:T:SGOQz;N\.hRuFA"K/LUN1- K58X]'!=qbs)[Z@3L徖-/8yV"B>e{{'6}G?!(c%c%)bEb"?Lޅ+ҩn]IFf+|:Ѻo}[؊LZ7 >4!YC]^9n )WM_J /:>_INS_67W1M6%#m!jگ3隥p:H_5M 2i8e|jl9_6Kv|iԳR Li| }A[m^/t,qVU,<)LW#4й)E>yB呱:SdgAF,b<:Z\ dpr&%l9\ĕE-MF:&HS _ԩon<%{~/ۋwNHܑn:/}"=|&?9`-!t"yd~B6i 1&+ Cǝ&f_I<;Ka9_GCJ o}HL;Oc[ $j:R^{PH8Hd ._V発:깳$\.l Wkbgl}~E-9[>^v/Lg7z޻y0Ʌb\:&] dk_Iq0$U٧{Іk1[NR7f)$IG9Q7C:%M6~cH^b5}k|C|r'}wm4 ѝ#y PMu 2I%j46qڵOpǖ %KʢJ(S{ڮ_ ׿SgΊ s{>Tz_FX,k3v"&plV,=HЋ6;Ƕ )f5Cۃmd=p=ŁF7Ţ?eqI|L]>kNKIr.\ѵ QLc=S\A:@bܗ6d[>{ F}L<=t K/5:F#Fc͝p5@ze{oO 7]b%Yjמq^yVN_6.}Ety+y, 4@õ[={@:S7R+YXG}[>t%.iBrӭ(^+8N[٬JjПD2Vʯ naEU0u-D2zj ]7qWOT8ʟw6bx e|?fAbh  1t߸⊟|+q*|Z6@F%6޷Ͷ/??( kRyF@W<#/DzDI'Q԰E{(yo|[xO~ #) 8e@zQ_RS'-vs^-k^{8ο8xdMo З֬j[{˚G7\}Yť mwmKO/Ċ,BudztZ2Ksl3߯sP~ s!:>m).iTYaŰ^" г/*{U|p^L`Аu(GDs|+E`p.R DƗ̵jBAЧ6>2 րѐ=Xr1}5gA rhm :Ii UT,nrZ9Vb* 6ӭAߐVMt jg4X^ܴޕxѤݶؒ?ZԧN_ -@CCŖ%RL!bXb)-ʖ(W7#_cIkO>[Wgh Tѥwʃ+zU;{)}fճ eW.20k[NBT7nNh<(¬63(dq+}҄ Z;;vKMP_abtۖ/W@Y:( D眩k,SLhMXKbh;Yg+nphB@ 7,u͛I _ӏW$iQL7zzvΜ9ESycCa5f '0uVͤN KԵPB] ŏ}z@(8rPTOϵ: -i}ڌ-MzpI Jb GZA^:2~l턹˒}_|'Wn 'RoÉ{񚩲\Rg|v8?pӷh U>09+t7%8xy/OodRӒow]B:so}Y8Ѕ5>ϐab?ϝ}>F O>f8WJ8C,tFwB7lq$d1PLz; \8cҢH ʖF.M *>:2W/5y$Z9SS]nъIk'$8fj~wnhC$KZ#K65 &%_~:cu}lj$RwҥKNho.^z:Kw=sĉMF_f~=l~S(w%E CIrב+JBm$2f?N>:SeV]G7č5>jZeZ|]n#?8} N\}(Ԋc(z ,m{3ؒs:(IK5dipѩw^|\քSiYIg)zݼ@¢b$|{7T,%>OώINY.U$;x~s @bxgEWbԔ>-Nr,%dk{28Yȃ2%AV_dž @/8 !ŠKʃ^xU^s=9&מ{Pg|̅EV̙Cn$ZmHk龩Ѱ5d>Qd̚v΄nb\t*J !aeC<\H=?{;w ' d<2i:w… eOwn f4ܮ[x`W}zJ3jS bL(g++ôq̞mHrأ/֐K:WjB *b1ӟGtwjd.$nv H.+*u&\?fE+NÙ6z>E/RwYru𷌬tǎ+%7'>K )3gΤ_Bw0YKB#bJ|9ڣT _<d%pgY"vl:vB@ ϝN;?ڢgl%ciB{IQ&4pF(Mb> 9-gKޭLޖ*Nͅ%KghK#Ҵom{4Y `09Fn5)?\Q%/J+Sf -h ԁ YwyҗDy)h&9l. u6B# .]5R h$F)68}=Pwc/p[_O1N K\H0!n*9Hayqo,iQ' J/# )K\IͲz⾿E;<޾/ыϲRQ<9%~V{w::#PZct0j^,\Kyݢ +w7}~x8$ic cJ 5YE.>`Le8g(.>yֳ'xڞS 051xqW?UpȇVGW&]$x0f@vz4C8 ?/:d1P l~+i:1EhcmO4`dt^ϺuIk\ѐn?;[wfs*hDӚ7-+Yvvq{p.v#u(6X>^F_n'z#GoY%%5z=Kf5rճӶKvd)G.esYҾpƤIjgQu6"tcIu@:vs;)ڗm]I5~wr4J*t!ZS"H!YT}=eld,rO?43_m'pRV^FtaX,>ѳi,> yV[g,Olx$1fmLo9wUXC#&LҒ9ɨDU)tB211ҭ9>}|){~8ixkia $2 eFcɫ=tߥsrHr,֍li3RgI4;Bgv׸SQ' OFG7z'bK΂6I9KRqh3=j ' /Wv=5;fhΆŹ2%ՈpE-D:mv~;]/d$w׺;hڈ@VK0"쳅:KܕS: Y].N\zB0,N576wNXN‡>(ۦ=y[g z{x1x R$XK_u8:펻0 '-8!<?/)Q 4 *Iܼā`OY I7ͅ 'skMik?Lo~YWvTV{pλ,@{ z;?,bU!s,JN W%tKctNFӹ]2wo|W^*7G$Y*BUIzL:rRDh Nsa攐, BcS?~믿!XyޜџҞh祺lQYu7)uT[2xʝ*bڴiYN};:tn"F؈4| ``ך,8i!͛Fwd3b˫a̭kʅ^T&l„tՊ:5$F%Bn3n=>imIBW8d.w3V,d㣹׬k[(Qy{=oOm8{S{l x|n^ӫxvxwiwT. ϕIѼX$I3wnj[.@+5Rd6AVMXt)_]OR7d@:n}c ⠃*;)gDFh[H; D$|LnN[Oi&Y2KGM(2ػvTVp_Cj;@D'flw2j+kdv=Mmٜ4j uc7qѼ.@DznEb9Hg;ʓzd1o.LAt㥟 S܃|}u \Ecg1lmֶRtͫ7:N/8o|{| Asog#nv2 ޢ#sN|nw%EVYQ1¨ѐucSN:15HӴE,C޻2L %^T4z۝3>3%M؆6߂V\H$c{:!%VQrtQEO&Hky:qĉ'QG.(Vۼ@LjzEj3;_h|W\ƫuBT)ٲ}_5V k@:B8Q9EoddgVk93GmW9#xDx3;dyM^ ]pɖ~TMKio*Tk *m1 m-7\\y~WnϾ7yd4|͐1_K@vCVYQztgD+7S:7zV̴|oO.__ϩx3{Zt*O[|6qmXfNb sl _QŋL&K!_O}LJi#YI[K=4nl.8j?5Ej FbyHLBj4&5H릯@sN{S P핶0TY :KV-PjH}፯S(m ՚z   c.>7Ltvٵ43׽ӒϰbBW,鰡Mvy';KK \npva{(*i3W-@f|rI;_ oO9O|KFn/~AWL{[ }+J"S!˾o/| "]@9tś|g֕)4w]LݺG7:q>? f͚1HgjX0,GNח{qYC&"o{!MݺGy:CNm1s=[o}Gyuʏ~4_տ@ܜVӟt,-jQ?K @@@ |[SοYm1_ї*͙% ܳ}rjENs׭S'9Ei,Qi @@@zs&w~"S;D=o{}sx>v؁g8edɒ1Bu^:_!s4 "@Iwk_Y#J  귩+hؙF%w{39}{{N8ᄓO>~b + [qGkxiah̞' _d?FʱLj%.;o|r9"=/uͩrUdL:fzDɧ,& [o5(;>exh#'|XI{$oCO)1Tз##7%_ԡ󯧤ht<1(˷d.pQd+G.>-![-;c) b A0p   >8vQd'701Ywyӟto΢a׾]vٳg{ad$F톙/ pOݼC? =?JYYv޷"@@YuOoT?ԧ>U29>-z~M[h8*u0 3ģCK~cȟt&1%P?;l (2D gb~fo&?#fJDx+ni @@^vQms! IԤ_/nWF   З>}G;kod(O~ԧh]H?gq)]v1s.®dLA@@/ vbwۭoܸ(G>ri/}Ks5,)BWۿ_ԕ)%~t0wt݆ z~K~ڂ@ ,\tbkrlݎ;?@@L39g1x 7M.?V@@LओNY |jrlp@@L /Y o~%2߭R"I"xFI"Wpz2*Q^aq-Ψ\JORPxj* T5Ȩ\5WP%JT>ٱGWCI+\sB.5D   M`޼yサŰr.1(Ha/_*JY0;D1~_,aO`.XmC](K 2<}n{?LY6w]ÓO>3   ^I\KyWf>^rԧU=3 j =MP@z+-3?XoQSb5]³@c$b@}Wۇ !@V{Aw%htji¼<h-ZaΒG9=է~h^{}A@<SPb̨OS0 d+P q}֓̅{wf!@wH1ԶIWm\yW쮨_';6×r,q8S )d^j;huQvGA0@Qb ]wb4D+ !]> &1,A(6̅bA,}ˎJ9[ hc6?.@q+2P t;:[;J AʨD}3D'+@oJ2UC`:t/DBb1`Jtf!+1 X `ЂNMF찛 Ì  ]!Pm\oMGv* ez7 Sd;Ce@ zwWۥ@1d:_7z>$.AڞHS홏ڞc^T X@@`] M9k>7b$d4P=o^{£>")髐 ku   'h}>-Hoyathʕg}7ۼ.[}˝iL\`+ 5E}b]X3poTd,Wx ݇wky@hpS6b8^W*[ 7) A@X:2NnE [Ȳ ~Ȗ 6^ݯ@@I& M6MtRU#mo~ǥC@@'.c1h&n؂A1Vԩ-c1|7Cĺ(h.W-c1[ @@'??,c1,<O˨@@ t+|X rH @@@j @(::%-zѢ @@@YxEJU& 6Xݠt}عC]-h   5 A?, bA@@ӐjY)[rs,hWTEKh uYC*Z/1 aJI@@WDV褹 ,cXJ\" EQ'GMEhO^Y)!Yp$A#bw+zE6DoE H   Du@h߀},cZgcp>0F%Y2Gެܚֆ 91gK<ۃ)="hoN[Lv0p4  ҥCV M |J Nh7r4'#>9*o Xd dwJ~HD=–0lgq#贶N1A@`PhЁj(1!w:B) YYHʽy R\,P(ZځF,@@Phɕ]3ֆDW1͢nj i  yPh+c BV6N#[PF׎i;N  "^iEA PnZ^`Ɓn X@VFpNG(4%~!} E.pX zWC/dɊ_$<)dI_ԓ):G[8z8eSyofN F)DLz@}"7Noya ^p~%*.p:H*BB4h e9Yӏ8`ŸDv$ԄbA@ . Pgۙ:1!n 4c^!<{Bm(  Qy!-$GsTb0*Bq@@@B#Du2/_NJ4P @@@ ӰE`JPBIi b^wb#@!-~!7 jA@@"[ M.*t(M 5  A@@!"[ R*?fDC5@@@Bb1hs!D h8̅W9"[ 0J@ D_`h   P@|AVpW$DAh,.*ޕhTC(A PB$h>X ͯ#h  'u @@@`14!t,4o1ە)m:k>[B!;30W826$+#O !TF~rƱho6ͣ-=/@9-^N.-gN 蔳ymithr I/2086n? ҦC)[t((m.T["G Є>(W0@S_KH.$zOK$  *B9M@4۱Ig BJlXT6/B IhzB/qp-YGp*֤< hΧ륃NWurșKx*i+^ !@&e10x*x0j?' K}g(ѿ:枒h5w䬭a4H8ֿ& D[cN+#Su5L]_s`L[\sJņ ,Ie) ""yTuec]r!ݴDUqC8p R,0U%3._;f"ld @EQ%GQr1tg* 1,t|Jephy"\:s"9WӼM $!rHWjx"g;HDKNJ|cTbmgR]]3Er.l1tw#s$B qw IБ`O9 %  %yy $X巈К!DK 03;`F 013@{ugRBd+4JBUl(A>^_˳ \(C Cr!2r,H+dň #0+UWQ_x#O.~?~Ǵ)є)S&A|&'G@Um !0ʁE*NzvҨ 9>޿/dΚ~Dj"@z@5)Rr bE &1,~%_k6\f< #)TD^($ Az,^)   $7 -TIKٟ*) k 5(0e1t\zMa[&o㲅4fb|ߢfE!  =D( FzT`osB{jvU5upE]EP@@|v0BQMC}勿9TFV pc4@p-G֥HUc3hczD4Nl1%N ya[i}-)@. @ȖwE޿V@l14 Z5! x@ӟNO@/mWbt@',+_b.'(Ή 0:s @5Z DJ赛"NR~?C58=!ј(F|wk@@@n5Z u   uf;,Vu   #z>GF   LL  6   }D >ABQ@@@` D/8Э _-eŀm_(9@o1߮u~@@M ZhtC9(B wB   =C 3冢   ED0Q>@l1Ш| =(dl1P.2Qr4?u-^'A@@l*@@@ bg   @@@ bg   -uSbFIdEi){MSTHvF@cbt)7+@@d̅Wo9Kv3sҕWѭ9neoJkАX mAjNË r@z@dAϖahB?dwl-I8Lqۨ ]$n @@@h1H^xfuʥO՝~:sB¬p R sG $ķlᗓ3$(Q~=pN##ēPk 7CxcCLC~2:?rsyQ8wopU@} svch thǃs&RqjAcfOSzM/t̻:0$\Ŋ#kQC2 mQo Nv S:Z0z>yݹkgXc+dpvE-tc9%uI䷺Jd$D~3"0/!DZ\!Y#"`Z d%Z= e=Bz୴XO(>)K}0%:`kʙVV\Z%$:8;>:TB, 튈J ~v3ATRRԔ=*"D|=o1 OAPJf vx ha<E.X-!PF%_`ewO\$Iu  kskV]EBϿo~=H?~d OBB#O2b~z6ڧGm=^ 1uYU@zEa`7Lڨ tKZCp!Q钍y NɝtOoGЩN§1A4A @=ROr|}(qy@[ 4pHH1{C5̑hB*q@n1 ֨D@Z̸*d EcC~%_k7UeYR!/Yb:"!I~&keX"[ E biYZ VZ0PZ`E.i%PK ,")[)L1ϊuh\ % X!Kw ;PLd  --nÙ/f5: @Ob<K`ulWsBpkG@9zp()]Rɢ"h2,]暖ʝC:PП.ƐRQ&$: g qY8g'RE4A#PP߇$~;WygCa  }:dؙS:rEX M=.PHg#{! V!KU)҂C k ߿(l2K$  A a.3|cʂLVEXp c$:C@P߻2mYKz0#r 7G2 hTBf>EZP@d-͈ߕ+ϼc1IP&0^B+gYf>$sGL"bC[B(! :X P~!0>@g[̅~ @@B8_?*ARSq/H _b4ƣ$DLTG>1.G{@@@l1uhϘۀs;HN}#he =JeƔ[ΒCE4@dQ| ĚN#2t@', 9؆k/Nqrӆqs|%4碶Yu%1 p},JX @.F&K=ֽ棟>wHopU@ s/Y$GzЁY[c'h-<xnsȓ9RF+<`3Bpaѻ:4"[  ;w0lj/Z:B*AE 9BrE؞B{o. A44-YimK?ږ˱\\.U9 u*)R]!!!D+ IPB!0p~.wrOR5w\= %0!@zb`Sl|e | "E9˥m|57z4cRd!@z@d9w%  67!rupBJC_;fɶUh+悄CD У"[ DAVp"u+ᙦ'l]=@>pbGЁid8p @;tYfj UsThec F|;0kC@`@ķ   E@U7   % b( @@@`bFaA@@$X %! |W +U,-D}_kҧ{E hį,Hɔ_:(;0$7Bh>C+竗+o5W173#6]W:#K$kz qbi6nsM @@dQ;֟5PF1Q@Q[Q?ggD#ڱdsiǯG]ILCx.4[ak+PVo 0*DrA&PŠ|wcoct?b.rcuq xD(kj=1SvZg,{h0̅X |W3VȍXn^|_4yH*'S;EڞB{.End6!1+Xd,diD:rJNN ~C @@ P˜fZ p%pK+T].Uru8ID'` EQ&9f` STUL"#rKaMbsE^!by 0S 61oO2Г'r@@,h@@*P 0 b@%*Cb1--J [4+pTlU@"Ut1--̻F.݄A\-[9nH5X Nd+F^3}vfTHg.^L"2uK{7ɻǝuk Prܐı- =T7T5T(=+4Vg( J N'A?gۺ9*:IV8)$~"3RۈfqXfKkGs*Q`Lz]Ǘ@vdFNiY\PN,"M(HXSBC?ܹK;6lbnN7_U瞥L:GgBp\8r kX|@>kЦ<#g"c.)KB."D1e(HCA`}f }Q&"t! bߺE@@@ 0tx! @@zOLNNً5A@@'C9/`P$ 4"q| QJg@W   =K ^| RBLhN[ +9, @N[ ^$k :@ b4q  HC/tNŀw%:]@@bi18߃0DZ 4CuG~   "S2X \{@@:ECH#ez;t@L!]|rhtȓDJb.9079"@ı&p kںb4P׾qt c rt +![8*CVd-t^%1$k   @ӆlОc[7PވpgL%dש/Y*#s~3~{"L-7;D\Jj4+/)z윸'O2'>E$yZGpZP\0ރj u+'$eBsfI6!:0kG/S!A@@V=?*Q+`@@@ bg   @@@ bg   1-;ڪN"D dCp{8UTBQE&҂ bp#o\A(8?:UQ$W 0֤ mQJtT^&c1Tu,PYM^);XQ!@=(nH ^:usUd#:pptpȈlo.s9RY8EeR1ODXAjxB w&PwcVπX}< {H| 4/BǍEs[< '\<$l8' %q`1AŐ1@@@bZ 7';RT7*ֺgTH^ tqEw˿( OhdW4/D d \~!%(V2ܲ#@ X(G/B9Ɗ&a,eniv+MkaM'`?ZCqsM9_ ..)!7"e;\}}*CPD׍ ŴeCթ[`Zu^:ΐq=N8fN'0$z!Eo#H2P/YXf-bm%/*k!΄J %+h}F^v0d"ݪ ޾)Eʑg2$#8He <`)ЍeזhQJ*]QJKjm%n_&BBRw-Ag D5@h:[ *@C#gc g+RsؽȔ| 2<\d]܊hZqOɶaQw. {E Oh_I3,Eˋ j|9tW]Z+QH!(AO@?1Sgۮ6kw !a H`*#N%CFCz&Ev=PTߢ(h@Jb(S3;=UFZ`1f,T&D|&BNʐDp*Z~K+_:ax!&4@-J1#rugo6*ۖhH.CsFg'Nk+a^w  -ʓV'^_"9Dc@I֐Db8Y@AQѬ!j%0+|#.8Z5"|ʔ)U#m mL&A4(Js|Ux!MJX*B 9>)g?w#iC#!@(C_] i (U R9Z JЃ?X _JHd/'@O`k:j0j^ "Qe@@@`14b4@LxsR| Vs\rWt?FTLD_d"ȁ-x^@"bȲ ^9VϝX9k\9"D@@`@ı4i(&@ıdۺ9*PNqB\/Y;kYxD(,z7-Y {8H%FLo  {4K7&u\Qt |/gP"JG@ z-ە䍈w>&/Qqp1֍l S )%ujtW+_tIˢ֯nFa童ilgxJhh{1~&]G]꒲AكHsJ R'}j^E- oAVr;̯I!= Ej=zlXdhqF+Y> ɨeC"0 K `I'3+=lid@5Z w'`IqX%٭|K RU Ka )c,z:ъvo29DVJ^,G;EZ%m} gkʃ@MjjҸX('5˽Dp>wm4H (Q$ϱ]} 2s(n@IsQ -F" Ͻ>Ty7IxJs4,rU2G|uO;gD򣹞Ә[䫵 (KW# %PMF(:cF0n=!zå:hnHRHn%N=wX=0 g;-E>g,1y `' KXL/&XVsdӫ/tYCܑs92NV'm,cFd/V%tZ J~6}m3Hѷ>;Z5"|ʔ)U#m:*!-@ kV]%?9ݟx!ǧ߿= MgO~ᔖ#c(Q<$0z'"`Z urrEPBD   c(s0SvċR@c bhl@1hX   %bߜ+ab|=S=S!!Z7goS&-("\رFY:IoeTzMqQ}.~,fWd/Qk@X l˙urQBD/ʠeBfA|!5 ]-XEn P@6]Ƅ1^&b>A?gۺ9*N8E@ÙNC1E5֩s`Zج i@mv8³M›ـǴC Y4x^8 vZqZP-F ; i9Iƈ}N-'A122r_` Xtݪ =~mH-Z~ɬӶ#A㕘=1mpq | !疥h]_Yʍ^_s? %qAN , !ڃ)Mgd _CEz@LeZһyc(:l۽2ke @l@iyHG.-/"T!?P6, ŲCtpFMV0ndJ!72^fbG!F|ڨeҚNuom ?JHX+/{\?' r[gw"o>6|g-ܳ =.O%wو1oAO^QzzEEP|{wPj<ڶ|$k g zEZV}SJhS @ЃN!  |2k!D1ɀہv~-w\&!q4J' a8 P@/ O4 B@~n9td=kPeؒ S&\ru+D61\.3Г-܎%C m۬FZ0:c44OZmnGhMcvg Ezð68BBDBf =8Wn J~6}Grֹ~ϟ_SN2H,Nt 5_"?sBOC䳟=mGQ %Pk^2Vj   '`1IE  "I£@  @@@ bg   1-Iy-Πgiŕ%u֒iE&(~qq@^_bTǵ3w jP_% B عѲ\sn7_. =!kJvliHYm"V) @@ aU ]4 <5~@@8>6=YN7=^ƹp ܚІ3ܣRnƘEx霒]3_'h |#s:)qpfK/#85EJL#8õ{Dg*h dh+%YB X /< i1p0Ҧ_SmP3gJ@Ћ7db *t3e+EX@>`U{Nni=Od +;{&,9F7MƳD0bJ,CV:_Ɏ- q8R&z#'!+8?0vIXh2 LG!T(  PPBZx|3=;m%%^|H0FrB<~ ) YAKog}2` pxȨD Hbp`A}Y*AE^x}1켫<i A†k3Dtxgdg [<ʠC k)a =Ę:`o?{hҜVs~ӈ%<ռj @:m17P1Aĥo{hnXάuSOBC( ǵs/}n;7H4-Dg83pz`֐prY;[*eڳsDL\ڂ@V_{|?>lyR)̟?Ȝ2eJ9RCgu%$#I䀾J Yu~ 9>oSS?GN>^m*r \E [`1V}u_[cС A} `(dAa@Q `f@>#" ʂ@bxd   =E `9_|y1bx^hOhݜ)Cި4/484#r eeYN$4@i˙uh5x+vdB! zӈC8.6c44Gp  ı,JQ*UʻQT !5<@ X %lYǶnΡ I900^[}QD L^e98ٹx~ЗuF?k0uKd {R)'+(PRMF#xD]ܫ~ s/:m ?<tyYU~V'!>ap4e7:QclrHGG@ l{E 6 -c]?gC^Ƿ{enLJ tz;Ficm IDO <I ܰ'<%YkKY$35Z $=:o535<5)P< 0J3z8@V:TIϘ蟬.HE8s.:SO% 0p?{!mb,N  >7,ؼƬ1?Rѫ@J@$·oEi~;$8FLZ.p0 Jݯj3+=!CБBMĖhv]y 鐅ʂ}L3/ CgISp&F@O `!+8u+;KM%A4"؁!Zqh,@V<\! Ec.$;3=yR8EfṞ5l 0bZ  BOW(21. A i}Ce1Txo   0isa=B֡Z`9o `TbЛ  !`1PBt1-ID}BJEa dr#G,PASUY+_AZ6LXӿSUY%jQZp"8[F1:] QQ,_b /+!2\xEuXҖK^ i"\pQZ$ '2&Ex="fc1 a>!njxY &8C8NȞ4ρns"%;Zq4)V;`ֱ3SikЎlqp˴z|]#ic.15Q9vd`,э3"e%P `Š"n.OX ρ⊰[%v.QwYI$3Q:߳>iZ+p]F{&ĜH/-#Tv pn1#Osi=d) 'Y_sgE N]TNxh; ðpF Yh% `E$1Tx#ZbJm%xz=\=M &KrH:3~z>Rzw&Ovb2*Z):G1Q6*VT(B E6\J 0\.% h1o0zFՐhn^9/$#(J$$U҆dѐc0|IvgoD'{g*$%FtB9 vNlrUBh&z-fZE![D)f(qdv8?@[\}r#f лj:9ɱw+@kNOD$p nynqUl#miG! E*Fr(0 ǃ͐u69o !P xaβfDhI4W9Dv;#ӱLmiM)\ɵ'N.FnKlur3 , Gzɏ:$=`LنD"mucɆe`GEkskV]E%?K#߹{?~cL2Ug<MV: @' P.?_?sBOodѩ~lP} 䂼@@@j%V  }BCS*! *a›BzICt!@@,~I@@$b^/O:,)/oE)d}aR_}R$+r Q85 )KHC7O;q2CtvEvE-xɑB a&F3^(δcY$^ɫ릶@3Ed'ƟhZM)a5 ՗l@q,fC?zV W+- A@ @!q|4VsZz[vU .+PPm8>:"1 Tv139%Vrȁ 9~Զ:b=Z>F)X yřVO6Х8=@6Y_cuSMؾf;Fvq&j%(=TfX.4bW/<X BJ/n[Ģݧt|l@Yl8Td޾`~ih%5RPvW;åw=SwY.ٟ2uuF=WHCVعbkc U5TH۱Ɓƚ"ΘOk?_ifH재v s2RgDB*q# Vb EƗI\nBQxn:obDLa5)g!ŷ O/"C8#JԿ1SX RSBjW!<# 4QErimvƄ#!6 L)T)t̔TBu;c輹Pzp"YJWڑpwnt9: .(@HS m_(YAy^?szV-9=6×`dVK4[]=QwPL\O+;!I(YAH^Qt+(ʓY^Hl2GRC£x8j*,[6l("ҋ%*Uq\[LG lq&M@UtFځ%-s𢡊Kd.gq錴Ul,l ,*ɢmLnimJ$-,*P%hiN~GΊ]\0^ˈB;fJo׮7 dz됈kb1ǺWe:vpi撥SrEj"SgJ 'NS:U9wf.9.]_wmvמ)"ⴅ앐O8Gt̏˚cbK03JaJv%.TrBB 8:B,ڐC*}k׋}:-l1`:%ц:YV^aۋOlpDdC^q Dz~T"._HpC BUVo ꫡv~6\s7A4\zλ ]1YbJGA~@ޏ_ꭲ@JJ   8W%P@@H @/Rfi    'b5yi@>@@@z@Yr6 z t0ı- R @/c1Hs?In["M   J Ők.+D @@@4B߷@@` ı`. rBA@@aH   0Y m+1ȭ e]q,Y^x9Jn[  L 0QvQFJa1 U   L6c   )C#h(1 oW;biƟyrcGHO謝2j#'+##U81[^]+U{2*#fZR )KsHc@(@}X #o3d6\833eiZa)l1 m&'9+Fږhd,(w,(Vqh^l`F_(}(}:vLQ mZEJсȽhq,-=tu!j\"I&hSt_T!M@N \Xߚ26)cֱw UhN~(?a|o(Q=X͐n6lrU",GkhBiv`Dts˟PGעUyVrt^dק\ؕ"cI!0 04BF'IM_ 7H,oWq4we7EhC֮zK6/ʄdCՋiԂd*Q_pB@!Ni1 "}w!L; k=ßu7l5qLP[!:8>.P-kMty hCHeY,PԄ-PG.Q$3r|.mX_eR?mi-Fmǩ[!QY 4ʁ]c9 E{g.3}iM%S)WT{␄G~}s \ jB?sAH6Fdyl^v[`>kKg$c݌";%̪AmCTX }c.p[$Y&h\ qB2+Ng*rJ[W8HVF* @X MF]X棆wH$6gnAW:&Jk҄Yhh.)ԷB}Լj*^4 a8Ynq[ x+hY$ KO[Y X~] rݷG#x! mFۣꖫ.GmDJCP5~zG!ʔ}EbΖ5P¥GcOrniCS<&%\{mgu*D =ɑm{XG[FvY,_ąi5gA2\bWa6C΄ zkskV]E8K׿]^~ϟزM2bMxbF耒 ` 9Ss @d?٥Ǥޟ3/$ :<| 91HbƐ;1`Z2ʤ&(HX !!g @ DEJ]g`Kk,?\)E=Kɟ{QmE-^P@&gO_3wLTq*za! b0yu!D,ؙKw]:~ 6WZH8> x+IDc18U3K+/kz@nj^=A`pıF(լ:n9!'G.r5sk=rbBFS2{fq9vK Oye E SZ\ {JMpW&U hM EMHUR@ıD]T</f[zИs 5ZP-&85 /==t0TsՒJ4Yga\d>=MV_Xܙ\xTu6˰֛@}bZ /X+In@5~ΟP|gdgGm|73Ah+ sFP TF|{Vٵpֹeu:\" -%@hh\hB 3#.dJv}zB**\|R6zʉjr*)nU{A>@c ,"oqn.w> QxDQS4Z?]Q&\mB`evnY ͅ,91{ȍ_(^(V=\;aR;ǭ C%%~3kV)9J%Btm.P1G%xmccsytٌh;_?s vFORUCc8Yd ߃ݚB=,YցYN l+r*bNnujȁ$' ,! @V_{|?>wL'u󹿧7SLO܎ I=  f" ֬Jw1 9>>#䔅q8ph>>,鳢+T 0h`1 Z   P,Lj+ziH"NwT(t,4:   },JdT.G;BhYt) "@c1{Y\rǭ'(b! @@z@S^_@W*z@X ߰A2,Nˀ=rQk@84@AcxlCmQ2`9<`< + @@@ Ĵrͅ'1{z $ hs@c18y{@@C МK@CA#b5+a/H saZ<   P@A@8 $0v~"`.I[5R@c1n9@X !@@,Ao(?B q@@@` 8,РSAA@@` ƀi165T9ص҃@-ls3*k>,XKMB(t@j#Cc1˄቎V/2HX k mHbZ ,"h    %bp - r@6rA@@A Q@@j!b56o2fD-   P38^I !R +QsB<B Pj    SP@@LC+@cbhLU@h0X   !b)uќ,;}ᛷJL#f-:sU_){3ri萫DȍtYdՈsH^Ft)d̅T}ؒy(mf Mr5u%BN ıxdg`'GѭbΔ3@֔KVe74hZ <6N;dβ*"bզ+0ͭD"y7 q,p =ئ 㞄XBH8 hEXH.,pTc#*Daʂz23ь8<Ǒs=1uI=E3cc[o5Պ]|m4 2 nJrp'xQ:ix2Ső: Ygϲ>N7 5NZUqnedYN ?IS$Bm wm1^8BVxSbE[NΛyUYr/9J<y7:f>=1yK.5K6v)'SR/anѴ岋($\4O3gلʫve}oli']>ˁWs4:ENe.CM &Ss&ӾX_^eԦh(4U.WE 4 qH$w>HnXf|>:˸%g9j:dפ"{2$YtO/}jQ!%>MPZ2k~}qbݻR:#-gWCx!MG L+37BϾ}}'B} T*s#g"D1Gh  \@{%! FQ ŷ\\c (,JB!@ eUI`<.D!o b.D@f1V e'_u#/"F0 CaCU]JhqIJȡ|m}&)Z/G ʫ~!)%4sT X  ZѼoz׽,RA "01TuIR,I"90ǾF0Mی%LdT!}yNX-Q >zm-w lq,f]jפU}fS %ԄbEom4: X ~/B}k>ȬcʝCn=CSPL{lYzSŧ0K$*C3"D*0 w'ϗcDOFƇ Ӡbk0?EyRp@!V6@Mծ nvZCp*@1c18p* Et?mUppK1rd,i[^ө3wNŲʔndYjJ4rJji(aRGBAW ڍ3d{G[AVY6H(]MbK\УDyddfS5q/˔fK 4rm*E+u{#+Kb(1 \N;@I k BmBhh[ PEDrŞϟ%--Pwކ𬼲rqƏ hCAĪҽci_EJ)62s5zr"BuҏӶ~~Tg2mŜݤn@\<,F9}/Y}Y<$ 8CL3}(ZEQQMiЭ:O (̊kPB=;lVB!9t@zKܫɠ1eS|1bh8EbO,<be+'7>YS餍*<."HUWIυz\?FI>Sq8ph>  Ћ`.bAgX h  Lz82 b( )FuyUZ-ZamH`1BD`Qt&b+u`@@@;unX &o3;F   8,,W )R@opZP\u'|   $qF%DSU _bF,{HsZѱC ]˷,uLE D׿+A$:CfaDƪ..B̪+9"&g5fc18v[?I&c1:=8ش7[' 8Fֆ+l=K.ڛb3qHb5lv2 2jItm*,q8??3:nuiZ!HKBRYt4.HV䌼@ıTJ-b< !݃ahWzp n9IzDBk"\tZqɳkJVS' 59M` s8K)ؙPA89+KR^&t b0D}V|?=3 D߻1>voQj Ul2C*bm`݊B-L=~U6ȈE .h٬@=ӕ(0$$<_r>saZ ]jt aϯ=*0u)EH^"0Y p0" {q,Lv-h& C+QV77>%CD de^%mx. H wcVC@q1~XkdeT](TUH`MwiKdMrq_etpghS^=MC55 X,YI Ǡ=1#:3̼ʚ:`ck]m\߻'dx@g)_<@jצ:Bt1֝=u褥wSpnaußvrש̅[ ^׬ 󻎢gpOo,)S4V)-}@@]wp?sBO6<>:ӟ~lP0h;@#mTs 3T  M `t2%%x`1c I   пY vf $Ll1Ӑ[r%wL9QYoC.-C  N a&+.85S?]z^Zrt+!=. R6  !b[SU*+s\{hp.W>҂8C8k>kP^,A'+ㄌP5xn F֩Z]8s~GeUAfgT 09u4:sMYyG41-7ta,Ёz#+\̅*n >e^Ypچ.k/1"]N|?ΘZ)|s c)Kq @)@@ @LAhһsn! ([tY&CTI[n;#(14zr/!q"v_AmsF ڵR`L/>ޘ8s, K$ 0!ƟRd 7$dS4}::ߒzt_ze{ ap:섺iC;5?Tyet*P3@' T6׮Y yŀ @@@ b3*zo~Q:CC  MC/J  qbR@@@ D XS}v~ªb>gEBZeeB 2@c ıxN":L៖.:?a8%B_ߚ%$  %bp~ /bE?[1\Q匆\  Ba1[186 ROƘ~4csBAp[XËoJ!rl@@G X_Zc20߯GR,\teЁYb.n madx C6b*e?dLLjhSFf  %`Z U <0Jw箝{h+V0jLɖ4ϭ'DB  }O91t2a =lXVZ'mb4.=kWDz@i1D,D@_y[m|i8FZ=\a>(Pz<\y @@X 4AVpmn[3e"[sA6`O -]FdE^  &0+?}E2>Ko|;l;SxvSL  `XlY8 P.ݟx!ǧ'x|ӏ8ǀo~;Q:|(3#a!C8j*-Ă# mV:F 1@z@O1} xz@I脏u   e6A^8 $Q$!<9b&P/h|WXSu>|Y+$Jb 9  N>* Xza+  E 1ȂS ןcj߀},?H-1JX!eI Jv6OvrJ SD撝E7z @@1P;77h3)'c Uh$ܳZxbB,FY8  M !^!tr@e`1B4hq,|Or,]J ʥ @@!X 4YAk{%?_6X/:Pg'I,9YhZ}>=osmw2eʔIk 7nd @@d=Rr}U% '|O:G. @8!`1"ByD(a.Pa1|#x$"Q X u d@6`14&4@Q yYҚ^l*U  F af}BB@@`ı<_dcb   e ,r@-X Q4Y!&&@AH.9k>bO@@@G04t#_~yAA@@-MD>OU-Nb%kկ~uV4nK,J-q3DQbA6\@Ґ @` dY 8Qd=o1У$=Okʧ󣟵e!b%-OCSz[;O7d~x _::f5*@`A@PWv b߯zы^я~()S(n_CB@@ @Ől~Jf` s]JA~NbK0p20dVe{ :wM'x"//_I/RBN+:wߝC7)ڪU(W&(=1A@ AK,g)QT`=O !(Ic"0dlbmO>dMoo=K{ߟ}7~vWףI'$ u;R+B~9D6dCp?~¹\(t#2"PbB∊!C9a)JGc v^Y]%G%M|G^KZ2zSd.M9|g|<{AtL!:S>Cofc(21/-"D'PbCeIfnz !UK1~4de;3_PLBs 1ނ,'!/xEu]k=yN `iZ  BՐ8!IBF@ "aBgC!f;!Ҝ$ QLРE]Dҩ):@^:җ$Sw"<UX!ym8'pɓn A@(`1P~!=wHQ=$rH2A |{x_-*bmt3 dРiַ~Sg+/o?UWF%(㎳ 9(LTz1!K2\pODӧOgi8 @<|D˪yFɍ@JW*>Dr;^ *CqN B#k#PiG)997NnV0*B@r  !cY c)\Z[ 7Hh b菊A)@@@Q14J@er?6(y>X^l@ z7< @@@,h:Lw>O /Yr{TBZ>a\e+QB˨d-\F9#*LT(r͵zu+͡04ʫWq#_Z븯#K{u/uAbcbhLU@;LqM5[o[vxmhv۹k=g9[c/:β`1"A@O `n7zgakw;uWo3'OSg/{?DY`1$  0vy[[WۺVkkcֽ{/٥uZ;;ڪE.OV_{%*(]5JCB,[lݭ_=L=wlmjuZuC'j؎mp[5  lhaVkbkzuU??Ll=zdkVkWl|k mǃ4Pb jŰZnW ~KϜ#f/3D< @Q!ȸͧd U A@)h@j[ozm͉{x=_qm٦)F҃0((kDbԠ @>x_>x-[XkwH{[?|u냭}svm/Id|,4#4\RC_6l @ci}unmZr׿_p[dֲ^ٺu ̸sƾ}$sCXS;%RA D'@@=>jnq۞랸}wzwn~ͷᶛERW_{?+aOaS`Dk0X  Ǜn|n:}[oCW}~_'>ߴ7xƍ߸~)Jl \n@wܼfUӟTF ?0usTF ˢ UA@b>JP].K\i(srLW=A@@j%1 A@@O$>*>bdHF%9 ?u+HIENDB`no?RPNG  IHDRo6bsRGB pHYsj}IDATx^ E @ᯈAeը(|h$, EHAC%A"D+(WvȦ@=ܪuzf"www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` D<@G^       !"# $%&' )*./0 348:<=>@ABC EF_$b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 N___PPT90( ?  %-QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<& File Transfer Protocol (FTP)$Resources:  FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comn %-" d`! 6%B 00C(B 0*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' .B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitation 8This API has a problem with SendLine over 80 characters.+'Web Services and XML Web Services architecture Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(0  0(  x  c $~$ `}   x  c $l$ `  H  0޽h ? ___f3̙;/f980___PPT10.$  $(  r  S ^$ `}   r  S a$ `  H  0޽h ? ___f3̙;/f980___PPT10.'PVl$   $(  r  S 0$ `}   r  S $ `  H  0޽h ? ___f3̙;/f980___PPT10.'@$  P$(  r  S 6$ `}  6 r  S 6$  6 H  0޽h ? ___f3̙;/f980___PPT10.*P{"{  0 (   v   6A? 6H   0޽h ? ___f3̙;/f980___PPT10.*H$  `$(  r  S 6$ `}  6 r  S m6$ ` 6 H  0޽h ? ___f3̙;/f980___PPT10.+r$o.`T( 0mK63%?(   <@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.coU4ny6R5l+mm|6S݆6}ڌ ֬3m V!_??+Vb}FVKʿH)~qmlg?vﶼe}~7m{m,Cv}zO łtŷm[ts[~t+ٗ~HgsTUk޾oFάyWՕ6/^m+z”;̂H;Ѡv6;CֺjU&菍]$F9{l.Ҹ]QieL)m1OisѠ97gٱ-yoFBq` =P,+J5i<ͤSK90x9AMŁr_     %a2f 4\/lG_H?HᣞӶji97n'za$մ<ӊ n[xT09Uk m_a41VmY` jfu^{x6m/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` D<@G^       !"# $%&' )*./0 348:<=>@ABC EF_$b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 N___PPT90( ?  %-QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<& File Transfer Protocol (FTP)$Resources:  FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comn %-" d`! 6%B 00C(B 0*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' .B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters., +'Web Services and XML Web Services architecture Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0($  `$(  r  S 6$ `}  6 r  S m6$ ` 6 H  0޽h ? ___f3̙;/f980___PPT10.+r3]0mb_3 @(   F@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` LDHH`       !"# $%&' )*./0 348:<=>@ABC EFG_$b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 N___PPT90( ?  %.QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<& File Transfer Protocol (FTP)$Resources:  FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comn %-" d`! 6%B 00C(B 0*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' .B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(  p(  r  S $@ `  H  0޽h ? ___f3̙;/f980___PPT10.7Br`4C1m_4 @(   F@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` LDHH`       !"# $%&' )*./0 348:<=>@ABC EFG_$b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 N___PPT90( ?  %.QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<& File Transfer Protocol (FTP)$Resources:  FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comn %-" d`! 6%B 00C(B 0*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' .B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(r11m Y4F(  h G@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspx/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` d\`(Ki!       !"# $%&' )*./0 348:<=>@ABC EFGHIJ_$b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 N___PPT90( ?  %54QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iq      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]`abcdefghijklmnopqrstuvwxyz{|}~B 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' .B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Addin are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.%Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(0  P0(  x  c $$ `}   x  c $$ `  H  0޽h ? ___f3̙;/f980___PPT10."o}$  ($(  (r ( S 4$ `}   r ( S R$ `  H ( 0޽h ? ___f3̙;/f980___PPT10.C0p0  `0(  x  c $0!$ `}   x  c $!$ `  H  0޽h ? ___f3̙;/f980___PPT10."o}$   $(   r   S ԯ$ `}   r   S  $ `  H   0޽h ? ___f3̙;/f980___PPT10.;w$  $$(  $r $ S $ `}   r $ S  $ `  H $ 0޽h ? ___f3̙;/f980___PPT10.Br$ )y-50/M+14mi 47F(  h G@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15s61 Q$$:R(f^71e nKHcgmOٳ䷴їKb4>>"i_v~rgvΏ`ˎC<j[{xږ7J7H{-uOt =FQ5`[7}W|yF؞/߸o={^I_m7ngիm?M4N!/jb/@۳h ~YS-]Şş|O_rg=}s?#\)4nٳjJ="E*j{sL?;)47kO&GT˞|}Ï0&~HџS;Gx̛G6"Mw8x/h*Kh( gpVXܤ +(i6m2mxTS!l㰹AQq{G[Oeconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspx/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` ldh,Li!       !"# $%&' )*./0 348:<=>@ABC EFGHIJ_$b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 N___PPT90( ?  %54QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' .B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Addin are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.%Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(rY4m54z7F(  h G@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspx/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` ldh,Li!       !"# $%&' )*./0 348:<=>@ABC EFGHIJ_$b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 N___PPT90( ?  %54QTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' .B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Addin are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.%Igor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(r{mz7h(9uԯ93k@v6s^%@@@@9s궚\yu} H`e&d,s!0*7fppPm5gPm 6)<$vRۨ*4kwh] AOinQߨA4GHyշ?*%fuE#ah(##1S$(HG@ =.u8Et_A9}\+vF}^7L'OBDz'^ QG4Q7k/>@\*NG!>23p ;sRG? \GX $M\[)Oimb@-85SVb@IkC#7ilWI7;ۡJƘ9 &GX"7)@Mrs G!Bn=̌ϻ9"&[=s)q:| ]'9Kt47v/doۯLNXJYkR:7V EF3mxOyLd#gvȱ90034#Пk)#!81c{Zj5LGc[Nf<{Rvƨ.o|;1mftGLw>:>O"gREM(f$yo:qze_bEg6%Ok}G,;RΫgmW~+k˿ .8%WOmHqO3>Q^0Nx߹G9{R׷GQvrJ4OH_1֟pdH3ٗ%7_KN6}ۗZur =V~kfS:1Q;9+L;61+Z/[v\;R[ND_!J:LLd!.^oo.8l&ɠ2S &ߺ7Z幇П;$u?omȲIHMoͼ{i]?P} ûid_9}7$+Hɉp%]מi{OXG&/]s/Qi>ݙs2F$#sтDD.s/ckQ~pM$͸$t…6ScCvEmT[HM~x%wgE|to؜ޕlV_ړ^?q2'O;uӿr[Ax NRGv|PŨ<3tH0ӻ蝇Bٙ?_p'6ܩ6x[?_<⛿:So=[f3:n6 o`֌&#z,OJ`ϙK}Ƶ ._1SmqNk:SPr$%gk8i&iGMr$$Ʒ75+YXJJۏޖˋ<%%c l>Hɒ֑7tBI.ܼm_jK(XJn1XZlv;ɭysN"XXJN;Ӿ^hIB KOϿd)S~_m|h[Az*܂_$6zm)IZJ A" ֑"FmqvGyd`ŤǏOrIVd!PܶȀ5勷Hܚ$IJíd$//jԤ֔z:ҮN1' D)d?Gm;+m$͔m'/jU;x#MvLd=d$/~Qe#dAy/m^^SAG8ҞfNEoiMptš {å3镶iCʾ] LZn1}˛:Kx'Ͽy$I=EoywYQCI' -mv~w*Ij{)P|d=U-M-׫8%EW~?;>NIi?&;ywx{٢=/]d"uЙV_^}iS? E}d9= ;'}})};8?IFϜ{M6Zr6/?{>.T/??q%&~_$RqI2#8w+g(:zdjd|u)y1ʶLvx2G.t}s/֌^?-WNITɁS?_ᐯ^I >v?'eO'N'N]4{On2d'@gɹHOp^N Rnvۡp,[)>M:2EJVx1oH~`gIG=4RII #Lf+矯j/lK_'RD$EwKň,Zi窟"2{ J<]B37_6jv;.QA"uM?I?N^ nxDܿyﯾ_mȋFD+ZNvR_HNM挓a);LIܵRrǩ_q7:-%_{q4Iғ+z$Kw|t^um)vJo'R:'"ӾKHIC3A))U\rj)ia)!ߣ6.Z0,Ru{CDY.mI}>}H-%sym%%'~>%')[L+<)\d:F%JOe/,6wܤk"%?pԏHG=#d"+?ye4]Khwf'sܲ47a)/xKG7/4}౉<#P.;}!Yf)9hӎLt$/jiR$$H֑숲tz; [kxMjcK"DAHIȧ&G渇mwO_˻0JՓHHS]e(ِғ|dpN9&dBa_wϯG%ZI\2B?^w\5ۯ2Y+K'Igٕ?=VzK]7&91u$'&i/Mt䵋͛rHS7tNJ?ud KIzS'YGe٢叿!Zɲud{$'&#JO.UJ.E d(i>f֑Y}RzRg(}_.y޴&i9cxC/JG:xO~ғ:Cf|$RG$IJJL%A]]_=m<ݼХD r 3A$۷,4e5]l¹xgy[i;FPuZJh&_x[i&;#s ?2LuoC~49/Mj)YJ4M~$7YOM47tSVR~N|εHLX87+cZ{M97INyaAF%OsKn2GRsRS۴81s~L3BMҪgmu[<(YRMJ2' Jn2X\=Il& :@EZIJOu>5y副;ąӦ 99mhѴ7hʼ &=ݜ̺$Pf-[v"tkoXseUn/eݿ9]b 5jMshJ&y^r'Ye|“Ϊ9+QA$(i;_*Ls+MInIPseե71n}ddwrC|lOb(ˆӓD&&˪s7~NM&7tcH~OFQm7ҧ&︃IK.סC9n敶 AȭߠnKLFz0?H\1?x7$M&|d [tHr#_1l߈tگutt\7IwpVҸnRnĹu$߅\6k݋ilzTЭˏYct$_1WOn1~7 nhRlMs'WOu9h>кxmzB9k:߂c,Hr9W. xZ|g7tJu#M+݅c<({\.yJ...7Lw_7LsՓ÷]8448SIzҹPV~;yM&I馷պw8gn rd @mY3ݴ&.[Opu'g(!A<}ZF]++&Ozr璕jrIw=:|$g(;%k%YMyBPV:(@ɠ? \{l'ϛ|2~${$.Gg5E?ZOH[L)7{m޹ʊ±7XBE;٤Bud&ƂA0#Ox{w#ғoLP1\CIB@?ꡔx~ʨ~ ғx14Q:Jbdн8| XM!T$>^1湤IS&OЀ:O9| AeEXL9Ge:u1I0&EFm=o_0yQ?Qˊ;~!2Vr;NL֦&n^ZR2< O5h?:ٮ^QZYP‰Y5i?{pj2@'4q'?پ fK)O/TƭbhCeO/Us̱>eLӽP>|)&YI%iO;N 55Iah-CY#!꼚T<֡Fo͟f2jH}ڰ"et8>#edHdTdtq%I}9Q.5>    L|_(5t$V>,A)+קem;jZ;cld sh"и*GY_a QڛʼH{ QVv,tg{BQ)eޝ~dj[8X@@@@>+^JM_fMEv׵B1w(uQ"vg"WBRC~bEGбG^M7zwߍd# EA@@@ n;\,W'3qy "HBzC \;J\Er܋*Gs(eYb.Hv,koApQX(RИ~24Jnr2M-,i1c˟z" 4@L/" 1c%$?S@@@@W |Ûl9' =P)%U{7ku?4fC°c;ئm6y@>jm֬YF"ըW*U$LQVgH)s+m ny[o"i[a"Nf[Z=f|Rv.9;yoDuzoz6{6z-׼v+KoFR|-4 ("/7LuHY{k`ٛ~KYɘE VkYxo1+n6,7 k.]EJ*v{m7JAikǴT%kOHYIҎ+oWёY)I+ Jz5 ɟZA򻴈e|ʒmZEPʟqU!irfW*yK+ o  H22亲]7I 9s&k%#w-NG.^<.ϩɖ t{LIΗ4DE^KM8rZఠ<ѥ,fC|%e—K;ld6tdȍ"(yWVƟ|$!Lt.4ߥ?Ӯz9JNOM&gϛ}V'dzݵq*)F~1H %GYIOIyFHVqFqNdvﶔ̢&FO垹nUPz;'|j2?6}TcǤE-T6hMz |T|D{+R|Ut =BncvCRb|$1ٞL.:lGrБЅ Jťҡ tRcHBQ}ubб_s-0;B2w"ߺ Ecn<`j2pݤᑮ<ϜHZ=X4="%ue݅l @@@@E].ljR&I'U[NWIR22yy_    л]7Y?""e{;mcV(0,rf 1;m[b.ȱ߱d>*]X(R[(BB2]89s(uH٤P%u,"aP%-w&Hik"B"-sFڛ{H< |^Wи*s]ܧ֍vܱ +t:c?g]#d`    LL1kUCD@ o|Q|YCqyëD`__C%3tNK;:6_`pgZSg!%3 +  ErM)]-"$0j~?)  cRa_u.^Wq'&yjg&@EuQgQ80Qjrͳ!4@8gy 1UR**@EF݅C?wu_5͙3^g͚UQp ih];>@Zh`hhO6_Ӈ˥\?-_Z3fc.^SƎ]jxYr|YN4zgTM͸)pɸ ǀ&_=vu_VG} 5kDg ك:T?'NÛ6>(Fyp<ܳcH{>Џ/) dڻ]/^̟ӦŞhZrJJi׿hN;Dvnxw<%'떊H^tᄡ>%.{@JLvӉؠGw>*;=!m;}5ׇkNC =i@Qi0YHZ!R JL\<&΍RS>U3$J&b7L7h#Xhh݃_޼Cp5ipNUz^0&kCO?oz]kJ$}\NX-} -o~͛7>8[ ]^{ڴQH:èP[(3*CC󖏥>}i}+x'v[ռ ] Pv;co25&-K.1t^!/'O~]H<(`!:q,@ )l?۴|-[ov:zzwc=裏N'T ̩" ~hحxt$zoq]ԵrY>@k0uѷbNi&.^E}~wxi91v?]lg836}頃>-aJ\5c+IҐs?{aKTzCW-^JOeڧ,-KӦ_BWD3,$}*җY{mDM>n뮻FμI|v(_oiQHMԤ+ A>Wf'|QFHZ)1c%\qFI>Ӂs:eϠF_*" Hf1>L^n /^jx]oZ 菐$ذ|lW^8wS`A6~˙OE[mլYɌΝ:@2BO?Mrt$KIZ? M'J>A&5?L mg&˨w ̫3/S͘'=D6|ؠ: (+I#¹3`!)yow}b5ڏ޷}1nӂN'&OM)ciinzBS98mdmefL\ZOkcǮC:Mȉ!PvYx t?ӼΝ;Vƻ&RVrrXlϙsIrtYNY9~*dx',64%M]NnKG aXSzsߑN:d:R Kc?Zp[Mu,m,OFd:\El亢w?ig DvuWA_xR&JhPnq8Re5SzR/!Էvl&KwӘ֭ƤiDGrz60ma2@o w郂S``gUj=H[zu-p?@r=ꁧ,zƛHO̜qAmܭ;h\YZ )uvhȞ{ %#voA2,:ux.}KiӟV3Lx1heZ`m} >ZYɡvԩ>$/_?eM vO>/:m&@Rn)@sR:!>/Dg sm}b^O) $J:,G- 'ҷY{|9=NT{#N,ZǓiNm9yuᕶˍ0E]=K|&ӕ=F}Z/.棫$I6kXy3EZY$%(1}ŗ"jD$=P򅾕tRc'ns+oL9J\ S**ȧ[z"Ik7ݒ$Iu;kWB*+DY8<[]R2niַ$UI+*i!c|Nd17ֳiJh/EUXRl9)QȒ9CrU'=Oㄏ=0x+-2/i?;?;yǯٟ h>k"s@kds=ޜ$$%$|Ťhի/ؑo;4mg&+]}1u <*{of%% @k똒A*IZ;ɁuOpn+w.@6к/|1[l󒗮~3mv(e84\b:.jGm8=$HH ENLk__z2iC4EM P/qYJBR~.;yV!9B$DKAH&ȶi>j).|[ӣnRYl@Y>@>z'eZUTە'p0y]wB_s[߾#IWlމI{/,[]zt=$Rnn&|s9 !oџz;S޶ ,9}8G}CXl(wRËgX&!V/J=Rꎮ&4nZ8mZc(䭹sv+̋]4%u')W`8[ "O/۾'I긶aMAK1O4-ymҷ5ڠŹwA̙n}CG&wִr 鳔/˓-I< x當mI)m;#;[2tx!Y"Ohiu\8x %P&/hm\iXF7_d҃2)~IÀ?1so;ݛW=:sK{˨?l9. )l:h8px=/g_]K'MR^\1)BO0ir$)H'$+IwLO:=7ptdsk >'$ۉ@'ɕ XnHB!X>yo2c_>16u>MoܚFIR3IK{[tN',SSF(bA(xHzj>$ĔO9ڦEO;g/!e5S/=x0&%$%5^ ´%%K>{ΰ#fRcnnVf'Ʌӆn!l)k`UCPۓBCɕ8pztz%4fV-8a2>'41M߀Z?=7N=Vq$~G++Hz51KsdBu! |{{ن+ɫa錊RAzM3HNɷRGMR*:ojRidV>94mSQ<ϼB/!Mi(Rr$F o~I2^6Ȇ'ay 'h##hkiҢ)G^}խA1ր5eC^fyTZ1%IU\~)΍'C<yyІxIWX-D ieZ|R2mt;%_fpԑMr,p҉t@.NzP˨tFG;xv`(=|v϶290oTu=.iJ Au_(]igɮôf;u7asZ7tcZ;l7}QՒIdz֏4AxR*Q9SiN:Xڦ谥oA}՛ixI!.uLÝRr%E^"SEJ3&FUn1"ϕ4&ϟ󓤾H"%{~=E㉧PW O+鱗ߌYtgR4M(gCkq}D$8(II~=Ŷ'Yږ?yxW[7K}M6\̯phN͚oi%\#x+'&!1g) M-Ӛ2#Y̞'5pΑ0'BoRi#_7lZ^{6rA֢vDߜٺ55E.N}K)Qɧ!utHOarB4{nݲ=DBI3gq&^bx;ݔjmn4Lp?4%(_]g'{2Ml/ĉ6<)fwL'[޸>S' ,dQe:1OU?l>/l?/}s?Ip҇,x+ӅRwd~c"N+Q9bz=C_V$&g #?L8y]DWw$lv݊VüI zA^vq ғZ)9ퟭKre^:LO/ܱrJ-8foCI`SZr?Ld 6f@>;}mtO=^ZRRxYoM }.˔K <7K3w>r$vY8F@Zi6ҫܙRRvx^Pz>R1|.CަsWxСN'diRhuWɏ*l :–HʹcG K<kv%HrG '眒(Rƪ?r7övA찔z{ zv8 Hef[ #R޵?fiIz.KyJhmq-}P44ʀ}떏MG&_`&yȄ IIs|]QI8<.m{k^/tg8R ttR$RjRHrWxgZ$ ] Ӌr%U) -u㿞$1i VUPQK[Kr1c\}U;SCW&:FS3șH Qw ?߲=|&5) {&58m4^y5<ڒ?lXF}|Hb0wRWtQCb.*H9UM%k֬EG/J@ofwHWt4+I<I&5?ʯ&;3Jn2a=INEuE7M^}$d֡5L=n[3k` 'sk~oHW8+i$7:v&31ӝa,tjf+fA|o%~IZ ң>5ozO՛  ]诮& _GfpJRSH2.PZɭ7zw=.}*/.S;# n)ؗsd)\HAz.ژ1k2Ѕ)@5][qUw|_QY nc>C=6OHbY?xGnDnQdLvl\:&Gs)BA>n鷐xlvO RS8-ۧ`lh;CC蟱A-mb &E`/+ⷛ08@Ibi 82&*Lc._=֡iOY4Dq.^5qf.No4{i HX _=#'wzZr,՛lLn}TL!}tI:O-Zx}Bq]tz7h#Nw}+WK/1I!vG NK+HTBL]{jҭd4 h==<.ƛC>Iq ;N5 /8w8;ܤ?Mw4䁐G]U>*_,oO/Ư~/dN<^gOze;{/X&N|{y_ on%vMiOnK?2-kSvi89^+RO>4__{ݎ21I.ml?.d%=MZl` [JRYRr:GOm(-|ُ޺;"+o$z+*>7o>d|_DV%fa\Cm EgkvXNviVXmQZt)JibCrU()5}чA."3sm؞c%a=d`͝;Kژy)Ȣy'F&NGyۧo<a!< B@9G)HJ&SyOC~Y*xGx%5f{?ZKP^]|Ii.+wJHcߥ"dႴ?ƃ.Hj\L-QCj)I#An9$L Bl4ͽx*Rru^g'|zTnfzXJN$]͖>Ն u7OpsnrhۡVn2J¯ƏSI3#!:4"NsV7䮈XJXﶗ6KI\ƌdH :u*US^'[ym2{?ـʲ є:mlj-czt<_"vWJ+W!?Vڦf]gzw^# nt䯝Bk/Y3<ʉk%3.IǼtAxO7A3'\tާJn,&`hE?:ZIbu}"Si|$-2ơuhLM7yWzw4t# %!# Y{%f/\mcO1oMp;ך^礎!`vi^i[#%PyIk)X8TOKFO['Ú͊}Md4,i;el񡱫jiRwiT@!$<(GZqiʟO?sfo1m7+VO^!/QQIۼG{..F0 .V|cxa{OINX\$O?5SMu<^)nZ)1o馴-j79x:''/]H5eKT|phd]>ī[r/k2{TJ޴udrM"(i;ё;WKg?pJ_;=$G ! IQ W7ZmCRI-T}C{ )3Re68 (S=W1l)IΓ+xXeUp=Hg"ykזG!`%|/QN%%IEOIʄSk`$꩗[a@FI X7pc JɕCV*|N^9=Ɔn<7KS`v!pE97?r'. ]֊.ç93Ŷ w!E%40;F$Zrd$8Ic1s:r?RTp>ud"#[ReLJ )X$K$m:ʗj19=pCi7n'ZW? Z9«69hIWXʀ"E.χ!zl3)IJM=N,LfN?3?7 =)x BMOM]T4<|!6Oɘr Mϫ^&urm{O%wζ`/t5?hI3] o7O_2/wњ)$4-%8-DrѤq%kˤ:2~pbs| 'ۋ$$$Lf7q;xj5ӝ<7/K> Xeme%<fy3rJN>V[mEHYC?1>h%x}h=0&$u&{mSxilɷq.k%(9B1Dږܤ|G耿4o-<^[ԩ˧[z]=u*]Jy<C-0 tvfS@ XM߅CWyir;l7x릕$ܗ3~14Ѿ Ss]s.O=N˻O#QEm`tH9aiO߳d؇'3z=zw> xi$-)ֺƐɕ ZI>L&is;d%wTR`ĤQꑃ9pwSJeK$EdWwN2'k^?#IR3N?V~P*F E%?ؒjk< ۗ44lƯ|#!a&91)yhs\GΚzuz矟4D{`_S--z*P9 cYt|p:I`˟筽N<^Z^2A$Oic<,(n}ξ#lTx`r߃'r~C`Cx?˦zm{z`Zѡ?I\:k_YI 6dQ`y'+7EZShsGi\]uw%d$6hjmxlMOh=m%Dxv;mzg(PiUpsZ#I[GC6IIJD̨~k$O_VLȝ5ӧ".M"ul㠷ٖ̬ ;|gt=ub+7䈑qޒ:ZJmE#$2b9 y #5IA>o[{Neǜ8KRqbƣ྿Y$cH0=#/V~Fn5w j2hĠ U-&GT5IWZQ3N@ ꫯypT@\+ &㏕" Q 5j~:K#7R$Y.;,g/9韱-1)IpoNv&{a:_ ,A#N;s^36uz j2.TWE⇚=Rg,]a@@@@/ L#=eTnv9}"p_^y (0*WFK~s|f2]{M*Y@A@@%p.)}ךgtvTW^yJr׿cm{{S~B?mh?OM7eWUv|ȣ&??Cx>?ԓzh@e]|1I>{SwғO>^ ο'ӦMs&e'}0wD®s{荂ALߚE+@@@j&R$lpOb<4peMxkM۳mץ_voI"7gH8- >Hl}?d    pW S{d×ohWpErC< ;g&mlXzUmۿ.%:wvv(i$06;u},   u(lHkߒɏ}x ﳎ>qM7m.\8LL鋆|FL0t_ns-R굋됸 8Վޙ\10vFnшc]70@ q9$8 oLj59p1fi3BR镋P>$"%O_t+mm6 X޶-iŕӒz W ތtu 8q P7axI}PKF-z4{y{K^,v?l@H=q;h+95L^LQG7yVFM=w|sm4K(n`uE:vg[S>sݴذ@@@,<$CoFzsclj)Io?$WwqիWK9?UdUvj.S\;R 样B2Ov*r`>9cZ Ȍ524<ӽ>ꨣ;+bѢCCwD-$%E92MF'jyv?9\>@[Sb뵍>z2)^Ƨa    JgBdfcIsC>y_zs+v'~[|ͣ>:o޼8^H徭d;=9u)-Lw{zl{d!3{_s`A XiU{ ?m κ;g~x{X@[{?X{L^~&iӒ{n@iH'ۖV3{F•AG^8    _;>5Ӫ[ aG~_>I;+ٚz/;Ҫ*۞Wt]EE=_4f    P.NSwy5kZ?/ҞSN:7N?3$rÅ7|_rȀ@GՓ}jr#~#}e$6    P:N/|oSO=UzpXÏe,o   |+䗾t-_W&0珜su8c}j{ǀfusmK.{R?8hH٤"UUsEz" 0\_ ;JU`lu*Xu.vV;:iB}QZ*XnV?(     kf͚SbW_k \*mYM뮔Ƥ*E!'zv7459DHɮ4@@@ IRç&؆~} @_Grɴŧ&}پ&ƃ 5&͈+zz?!馻p-}^E ̙SgjtXWǏA@@\G+܅sO.y׭I6^uuo@@z?8WUW]UmyG.6j2@@@N/`_n#_NhŬtYݨg]㻗w.`U<&|%4@@N`OoGM>M&9+IG ٲdLXm޴́;]8{oa   )/x-ʣ&{ *M.l JK^┕dQ(ۜ;l&U#7Yܤ!(EJj`(   P"+.V[mGM}淟vo.jkAiטIMО1@M}{[|{ ֋   %o7QgqZujEj̹I^f5g |c&&K=]9$AiHICM{ ֋   %K8M9 ~EZEHI&I+m2W(\UDFE 9K fDѩ]~xw?rJy*]8Wz\. }7v!rwO_cP@@@"W]ӷe|ouY(H*RjG;r±"d8Coͧ&Ƃց@w˶?ET&b+8f%O)QRv²zͧ&>d&@c \u߾&矲`=(Z~O3(+:6#"a@Y;   eCMV}OJUkwnytZJ:ǯ0򆞲F'AJo5ӯ1=?n&Hgn, &cs*4h~u@]    '_)C e{z}R,!7F.$=1 f    / Șc`;l@@@@P2:<88h/_Mҝԃ~"rLH(yx0F:Өسc=1z3:E|Tŝ'0b[K k)# 8?]KVP!^jR.6caMר%R)RJN5s`((ݮܠt Z'L`g/nii؈9z @@JVMhpOsnf\msH ]p 1@@&)%i3Ii׮uИ,g e?&D_1)"rF:DiW, )mP{3l19gEMBf@H+  d6^&1@@@@(_M~6lk3ˀq_aY~}?%+ϣ Ӟ'{x   !P᥆LJsh@Ň.-qw9}{<70E6-4@jGKFB_)7S\R9b!eiNE6iL:g6k$]D#k`   $Pt$6Ytze s [3m]79}lY7vr>hgKZ[m <;%J'   P)J$_:Yo䣣iL=m- bLeX^m6 x',$!3C[V" m|CtYRc3r`  M&PLY>=N葫iJg-P.bgjGe5)>>id o[|a   !PlNDLCF8NS鼦NB`؆˝@DA&FivJϨYŠ`ql,m) H3xuNCjQ;J|*hm&~N" / !9=q@@J!P 7L掜@ ^\hdלiElENCCgebd5t 6v!&S`   $PLw 1ڥHI4ƅz־x7rmޯΝE[$UɑHlnu69pP@@:Bd5ImK{*}~nlk1ۺN:w3l'4TYE[Z z1Ԥ!7`M489l1!yz$HÈ3حNtiæ#:*&+ y8j6xjjFÜi憎@@@dt"hw⼇#wiݻï,]e-վeu v*Jq@@*"PlwH)2GTԩ~9$Z"iZJsN,0y'9kJ@T&IJV ,ه`Ad"P4":O)sp֚z&Z|!ٺVlL=|Ldv+ӵF6HizטΌlW'ƆO]{Z{=D>(  K\jXNLV4$/1Gmo؏|r gs0\RZE~P'N[k8hQL1_$R[1{t! bހa0  @jbME6N{ˏ3w JV53^nKXcimߍsu=Hs"l"NrČ"  @j2k5۳ԕҟZk[lc4l"K^T(`si۬V5VZ]09 CL5YoîY@ #_9lLv[ :sHU[~Aւ4S\P4vuim&g[K,=NuiEGs6FcqG=Al1 Oqh5e @<դ\:)Aw|@Y-մ5msqϡ8@ K=E u[nRJM>3aɲC[~"^F+M : qˡAsOPE%4Nc[p08 :G&._o97cSML-E|5)MVh\Mk7CtIE ]tH3V?#[4'r[yj,)+. ܈M/Rzl3 }|_ir1 6  PdiH'RQ" &"i`z󗊩7n9ZJwsVgc g-A&'MBٞe| lY<_֪y5NY*7!P"3ڬ ?vTA\`̥Ϛ{f :˝F9jaWX,Nՙ-V{B΄ oC4*8(YM?U8yJ@;Y^yLFۑqOX0:m#w"i16~Tm2hud.={Ho#mޑRv-z5S  P@jf.TbEiEȌwmYxpe+:Cҭ3>6i᳦G-9OP IlEpGWyd3 OlN\wd#n bڃGQ8_dgj@s"ʤO0\qõ[~Q%KMgde uٍe:a„֥Oru.3 r`6XLT PR}52$)`\9kLR-sP@-     !5ِ0i݁KD|U!`" 5Xfz_&#!$k6jߡ] U*|@엞F;A@@@ 5ibw3/nL2El{ywaD6Og;=&=Cx-hN/E/BO)=g0Ad43P@@ɹI~/>f#Gʌ EZ6LN 9k6^g/WmZRoiwsD  ЫL5Y011ݽIh-9¾@ t$>s)CN({X\nMәE+߲[?CL$1$-# 4o#eMZےԡo~'9A թ`V[iz]Cua4t;]z,.HidAl<f [Lj9ޤ[9#q@$J$_:)TTϴl6e'-obTt 66`o΂.gX^<:{CR4&ss9TDT|j=8$Ӄs]##fҊ6hA6lר#ĐҜc&&6x3|%`&@Wrd)Im"D~Ѥ.֗"+|ɀ]I\# -l<>]8=GǧC4-qooA/gq0lcD-JsU5L6 TŇi`t^zEVg fϟNҧܳi6~[!9Z"  $P4iA}LdT\4_oEnJu-Hfg+LE9iI|xe`@-ye5'jVZeo<@WMj9dP _jA16 |5XRЉ_Ut S]ZKˍ\o4Nb|8[LA؀@^M)䖫sWp_yuTreSٓ6_x)Bz={vVO0PQV9eY}>|@  P>~~W I .?GAEN)'ґ JMl\ވ)(dH+wHRyeW`L2btsK&M@|&1>"uRYm66;RD ,#@~GA@@@%Iy#Pԉ>@O4Wih$_    Л$5|5ٛ*:$e+@@@@' &;qOwO4 @@@0Ӎ1    P@B0@WB    059aa#F0$d#A@(K@     &px-(    ]Bd5%F    CM"IYN_ 4@j'yo4Cd5&x.!PV#Lr@M^@@@@? @Mg    Pդ.]N_ 4@j(O/;"r&ˉ ^@@@@d7blj .PK@@@Jj=@@@@&w;ы~'xpqe>@~,dk V]:W`K4kci ȱ1~W  JV n_3zbx7^y|:;;}#&ayw֚5(>"- ubAs2ע֎$E䣣Cq d[Y51i&xˆWsQ E`0R  `CMV[8<l8m-+͑ܪㄌxPpH3iꄓlەo k\k# Si6'15g$q,Ύ :x*wzb<[NT&pI2,㬡hLH0([WlNx'"J9AV<+[bOHt"_dbݘ[Ĺs]wjA&2ؔ2Hx)m7"'f7:WTZ] 4W{VԂӧ&PTAum^iJg Qr-8X{p `]1R+3Di؜:X[~4ւ?sf؂{0:Ws+ZZOZP dY͇h$)YMR;ݵ5[y,&&$6RPku)Mk͘؜6N'A&*esݖpqq ,R<"*[*4MIc)yRU(_M`k"3Ԭ1w{K(͉Ď3ku JIOɤ|Ծ1u ]WyJm9P4äxe&&t*.#Sh CqDI؂:>vlfZE4&k7==`Yʖ>@B`p n=n7^G-Yl{E9/1Bz={vCbØ0aBcc+%0?J'U0t?@D2$)`\{|MKG2(97Ym]ZsҥmA Y  +1؃KM{ r%7n!?--'>qC)^"d{k: 5_t5@jp   }Kjo &'^J4?'/#`H&4PB!F;4ӑpO<*]4YKδ=ح:*'fW,dMpȷ"PtJF~/ t ד$8 "k(KN8kɴ؜J8=s 5A7t$rA"Pcz(-S6 49tIMG QigA@Q-'I!}O'9^ seܩ'`iq]a)%:iK"ڳ4J hǏ+RwL;Ti;2Jyx޲i3z9!q3+ҬTם^zuCyt1>ލkq9%g*9P@@jR~n>ς!kWYB>~>fsY8HJkgix䔯]:n}F4:9tb`X;QZá[ [1k+W1< Qk xj }4H?|<+ִi*|t/dդ􇲳L(,SVK=$jS XN04 ]nIay702q|bHLosÛm 36nK`-2֔[D? Q#9. ي;#c(@IZo+hv>h_A)$wE;G嬳wt1ݗ]P.XY M+NNMlL aYo;@i_&LޜUkӕHIPf<^Saiqv̗=2iӷ6KI[|GJ֑YiӠ)vA eYgďL56b)ߏ]]YfXm\.rE2-( hf퍷 V4.$>!PL"7sO7!=iLdH~gWm0ϝ gcX"i_'١:TgGapE/rDȐa^+qp٭i< 9`}lE9 Rģ@z+od鲩o8ٳg7&L-ϋUhrA~buɂ WX9R}(H\0.=BEz&Oڃ#TBA@ 脥l|@$8_c.{ybnTMEDNS3CC@" @MFGNY!1jYq@@@Mbl'5J@Pt>GS3>845Ms:~:04e5HӜLr?JuTi#S_gROg^'"WeHEUuapU_n{Άưۿ"UD54BtpkndB(ra_Eg|kɴ؜JT_﨟ٍ]_@ H 2ZAK'r$=jHO.Q:wl63]ZGjujZJNaۃi3<=дnB9j2Qs]׹\wyڳ@0s&{6!-r厡'l8#txzA7085@-%t.MxNt"`suxv(4$mPE](inսcHR}u=)3Yw9zO՟*qmKcH_vt &-G#@C)bz~?V ǯbY(h̹3[Qgsw: ]\3vb{&mqFndF޲A,kt ﵴ`f.Eluק cHG]|A4"aHdDhjA3h\)]GsǦc??E>ӆ\ak(46cS1x>FOdD~( h 0me)(T~ V/ґ MrװjjR޶:]F0|AFY7bz;[:4Fj)uL?[&A!;_PNiβ :z;Li:5*x xY{6N"Z?uO`ӂp<<&C9غnH]([ U1NNi8Ayֳ1O3&M*(1쬮OR>Lu NNMlL aAo8gĂsd WmOv]w MkAή)wTǣ?~l)Vd5Z&Lc9~\|$R%mҕpdnrNmg hf퍷 V70,0DƘR16e:d|gŷ"8 + ZEթhכCq9$;U0dR{nqԓǽh#QZAo;,%խ\YbHΗP iѦy0ws Dt:0T5vc[5ڨ ]0<. iZdkKipQQ39SKC'LuQeA{lЃ Y?s<eA e?(U ݒWx9Ztپ\BT tN:+>a„gatw nTM8>?Hk6Ulu0hhB>"d/JTh?YR$̟"'~ɓ`Hn2k@@@tRnOD5ݘzB!~r!om5ܨVFɃcF"ҏæ)o{`"5 [08jtkN)%8 SV4$PR#|m)i|n_eƔu*ܸRRc 4Б1a   @jR2Mlie52#RwA@@z@j R;ϙgӒ4R4җMn2b F1$_g]A繥$'qdL@@@OZ5)O/[;uO7g(+;c#Ɯ7/iŘ2ީ[r ܈d @@@Tr4 d[;f+~Ol#SƤ՘/O)=ws?gc9t41xzBQK`A;8qB|uK(N5ɪш >f# q*R{)e1Wzg>E:Y "4j9x1CD%Ƴ=S{&ґ|/e&n0(H5()5ђt򀥤.Kv4oW`K>o3K9rd<&')Y3]^Oo 2ğ1/[l͞RƉO:r}p6p6 4FŨݩc:.wҚ#U2G212uO9$`v{l8TWsT{vj\zl`Ⱥ9>U@j#Pe^sÓlH’? ih SLi4ccK|'f'0g, l)hw'<N҄M􇧗Us9!8{'K7 `axbZΓ]Clj-(=˚7-Qz!<7M9 6s]4qL,UN3'6`$@BA^k,K=Y#(B1tm+#(h0+8&st&(~ ߔb*td&0(&MLe~o9j492hcNOk8 T&1]8 0N2ALӌ6qm`?1'imL򆖍nC=U25*&[Jg^sȬtccdGǨ:ϐp"(g[>y;(ա RH,D\qõ[~Q%K7yo8wŬuّ70aBVQcR6feCSMCA$` PR}2$)`\1*r'MKG207Yx$Yf  Cj2R%6ƴx%uti?k$: '?oISRs"5ٱaWDe.c歸ژMTGTX0Ej@@@@ ?P@@@@L5yO $X񌀴'})eG )S3XcCdy+r!f/kB&}Տ~|GL@@&io 9'JgKFֲrͥYz<X[ґ|eYH@E5I0~he P6YsKL~PRS8u9ǃ~,wdzP[trd|Sd͑IEīΟ|sZ =8^k4Ԓ*JPgZwmH؆[QEN;92яx}Zg?F@@EZ5i'&dՆSJzT"A?C8KE`Ym`6yˎ/^6Y ~ @?GO3}LO㦅6  ]GB5EsA9_19K0mO8SY ΎjtdeA@*Tx;ɳC}#i-iJ+8b*1Fv*x,W9,1ُ"%9C_5,A@@joܠ(Ff /B5fPS+%_"j5F0,ҏД@@*TmsZ`iZAh\|)e_cx[N*"A|l`Vn1fsz^ca  -V LLdJATuI+Si66]Djy5r<iFEHYAƌv؀t 7\WxEd&M.f6ٳg71&LhllM,jBcV^2<&@O )C e{z?<įNKG2;7( KtR{h $v&{^k^D{"'#Ц6B?u  U&,4d:@W(SMOiO u|U2GElN',{6*"pt_1j$@@9j2M/vِDz8Ohy)yH9䋶)#ANt$!A`  зj2h|bFڠY>9|FJ;RDEߏuJ|H^"`R2&9g1>3'ӚY9- (e\ {Ik w~h&` 76pQZsJ_={Sd;"ӱ$C+821A4rP }g=IjÀ5[lA̴GեyN Cz rd[䤳t8(4`s -%%< 'm! sܴF8@jRlrJH`8DN619_Э % 'kFH<:_JF+9ehoHI;N28nuCGF‡0 dCҐ1=IdSSY_c8m#2UaxW _<26h;;(K#{)LU@@j&(@OPW0!$™〫֔ل!#s12% Дa  П*T ݶ5b(( &)e_c|<ڋi#=i d\g1opt1'501 $t]82pPOEax2~V*`Yml39-@@ T&I$)Y_CshVo곯Gձ( UҪ 0OZH[J6"t4؂R' ֑v VbO-cE)eG76n"6[=5x!PNnҩqY(?WE֠Nj`1WzJ>EJ{> (8@W(GMj|!1icaGlHQnH0@@@9jOÚCFGŰ4$gZ7bLui?N'1.vmi230ӹ@ q(ѦQEbIq6   AuIDGR 9h :gErN[Nc[9xTk)vɶPD, l٭]݆ƆS멅i`a   `\MdC:@'rd/Yٹ`Bs)Hd ̾f °PBG&Pl h;wũxb4nr$eUj<]``1SC"0 e*`    Pl`bAT֙m[TFJIChxΰ:d){q"H3kQUfk 1>R疒ՓM>f@3 =m<ἳP8ƥ~ g{$6n3ըYL FsgsZxD4! e|w 4؀A`p n=n7^Go,Yl轢sοnyٳg7ڄ J-&WJEΤ`0XQյ ڈ@@@[珙!I=>Ry'8y,ɠdFL@',e   !59;on#MyKmPt_ۗ DY~hc1B(   =BjG:vT    =BL5i?R'-͘`B y;X0]$ _5 ؃&PtJF~/5 f0'u 5F   Q,N*_Fፒzu @@@9j2\Gj4nuCENOҪѠY]|@@@*T<͋d.kHasm)iC5Z3~?9Eď)1uDK[(򣂴@@@b X\T&rݤ_J̘NyܸRgXECHOn2j؀@ dC;#rZ c6A "HI܅Ss:=&c2vv{ZғFb2RJ:FMFl   %j/(cc,?κsKINOb;a   `PM:=,(e[_gH~}ÍmURk1uer 7ґ,%ħ@>eI~myzW=9@L.%jokm.Ih)HYɲ2d`{dYpXr?   =I&{~3~F]5A',u沁@CjdE+wv,yE-[!JpOL5i?G~;#mBžo< -+ѕxx>@/(GMj485w;{Gu**    (GMs%ˍrӁixqjx!<h2rd| -Y4[M,buY.%{Ңiq]vTL K>!P &+!C8{ u(sZ~^# B~p{ ymAiCDB5)]Jzd eƔ^P:/ Y"CA@@@j=Si}bpɼ}5zfY=@VMvZ0fPw$NgzHL73!dq  IB5Y 7nʲ5)OTc<LJ K!P&̴6)gmgdWq}g(0]D쵆sʼUPKďṣ   P.7\Wx]t6~pޏX ٳ˭Do&Lz+*|oK wNʐsٞ^xTd޼'Oڃ#T,p    4&1۴1x@@@z@*z U#    )P"zA@@@@MB/    )IN5N5Esg C Z.GMT    (I`j-`$0DNLRrԤġD\6t@j2(%;BT     P$du    XIHv0J 8`U9@('7I8Ar6?{tAC@@@@j2_bR]BV=    3JM 4@@@@ d<+X&1&@@@@%A@@@&1@@@@(MMÀXj{$Q4=ӹ_ZV*E7|MTLl':ȴR~o5nA@@{ &|d}d4ZCk Ey(Aj ȚE)=|c)x\ "8(GM:[e<{-w&̨Jl`ծ_XW@(GM'V]c$)Q[)Y1coyUKǣ -=ˬ tfgJ: JS2 ʊ?V|"PdGU-%bbH GQrcvRgQi&l`cxKӜTwakLR3m)b(@@K45ٍRR4s*IZq~)YOT:&Yr!Z3mC81Lbtdj= b֛=TA5L)Yi$e5<͉綆R48Qt@9jp?\zY3HlQs$Ӊ:nBuȍ5   dIyzv"Ճ3,50[}S[C3DDMG;)Piڹ=AO7  P7\Wxշd;6R~9Ξ=Pr2a„(*p4J׆H*5t R}12$)`\';ɓ`H&`q6STUΫ#kNQ#@?G   Pdz9)֐Jye%Km) ܁@H0hF/P    Ql)IJS sgTY}ƚtvpi{ڻ]gpTXm(ɢRΙbDo9yTsÔWߵЩ?%Oj2hcE z8ˍ@@NI~/DIƺ;NL҅9_&yaEN?1!H/1EEeӨ#9#FGƒ$>$҈YF$ڢZzC2YZS zL̈́1TD5YQppIS8 eYplEYs" f1HuVP)6,4310r$$mFΝ5rNŐDFZ3R: 9*#ȮbF);#p]vlFPk\$8-booncv54LZbPE{!F~1sA?e-˚7u6tcHҵl X@Q"nNY!sΓMt1A"K\SK=y'L^`&:O0Z٤5!X֮ K={.[ŮOη y4UdN[i=$rG3'eꌊE@mNҺ)g=GDap=4@j2(%+jZ{46{:Qz=XNXe%+ؘز$K?GiEb.Ֆ]D!{JT+*7hZTN#$fKa  C&śvJJJE=л*Mˀ7B+rb~kkZ37Vռz<{P@z@9Jɘ%; gR~űl{ UcMК9~AR>$`\n#=SzS:ϵu9=pkm[RS{$ s 0߲D`YP53`>HɰrrQTڶw~Oq!q{) Q7\5y x&k$h׌m1IHe%LAqd7R6FነO e>Zln-#HՂ0K8z ڭm먾%K}h^!ٳgJZ< *" y*-O Q ThL5TU΋i(x%DEʐsٞ^z *ry'ґ JMe@@@@ d$(u=rC_tЀR 1Y*N8h:P#Sj6ȘQ_2y=6FU|30 6A@ d %؀ @Mbd'PX;]~b8cO覄 u^ ~r+[=r[, x7D ;bZRbQ~sF,uZq. Z|Э 6A8rb)䱝%Ok3AP0h2դ-%Ŕ\Nr8O" e߄Sӈ<ǴSiZDF|,yͪ)#qI+rH CЗow?L=O޸n74@(MM:dB"l[e@mDF?)se_Z0yn ܭ5tecN.:Ed=3U cf(GMBJ]Ck,^su:Lh/T3'#9rgAY\6.c6ܙ!$T  PrԤ3*nɄOzޓaq伧ǕӃs#F{ci %/MkE1`$c- R{pTiQ|gOF K &A""ٓ]8KL>wRufi"m}/cք4WZaP1j)iK[cc{$Vl=j"2ȤzS8ڌgU?Q#K`p n=n7^G~,]{!kAz={vUm„ %z+H w=duվh֫3xv<N ')C e{z}'sMKG2(-7)"ԙ~n2[gh( Lтw1ۃA@d]WSqD_U8Sȟ9J;Q#x gK3(;4X7yq6ՌLם)j"tؕ!2DS#ğ"n_N FR>:ئ1M07tLbd&j><4tgZ$AQlήzlxsy.T19@('7tRN"D"{xDZyv4Ő^Hs+~ګ4֕B5G-p"bZmbĨ3>Y=Pq[Ѳ}xbZ]`9Jl|lb@z@ijy}F&kKUCYDXJNoD.QSdO#k*>ce:-+5.UO^l`  ̙C?\#&RR.}v;m]dfȻȝ3>іi18`iaYCIO,v0ܑD 6($=ʭ=GQ@J$pa3Ho[~>a+{OQHltdf1pNT283!cR@̟{UWſ+MMʤm垱䔩ϝ:(.SiR*͕̜i@n``:[Go+8`XP*9Q$4_/A~]im!s&aDiDic*#`  "Wx]k07\Ȕ?{i{Ҟ<={젗NL0SU;TV<+F57ddjuѢk`_ u4@ @&)i?$UNKGҊ&Kzюv\{=-*ha@wJJ@\1U}oh"@i&CMe0T l6*=Hph DI %A@@@F?3=G99y~ltp(7*͡,N9zХn]wapqsgeƈ2Jw#&ffЬmt#&YBh)rbNT|,1EƎ嶽,ozDYn3ލt"8ƕg8XH 0hnn!?$!!5*0KI]4%UaY*k5س#mǂaY6 F MwSTZ#9#ȮbF);#p]vlc&[7^uQؤiM4@ĐרTY@LY- 3)oǃTH0J9`#:@whzn}1eօ 4U&2^y e:X7-MJu9AlK N[dgz#>cya(FO1"_\,Y9K~Y639k79 >4p_Zx?B>87  L M2,CJŔS}ƲE$NGhGON>M$EHs+ŃiT)ERM$3-rhJ'Q!5dc|1DcSOLa   !ܤSJ6Z°UVɑIK 3UcT䌡HPRj ',+#%jmE*o~ ˵ vhʘzyac6   MR]@ڹ3D Ɯ w0guVٜ4o{Rr#٪=E$Ht]'^PG"4o>u HHooH(= *†O@ܤ 3+nRc,]K;燬u3 &DZcVyV> &k@@@ܤ+OKGҊ&)"0   &]-A@@@ ɠw ft*u-F5x؃@?@n{m,JA@@@ ԑ6';v,&YB%;;@<7/1yzy    hhn2^,[8ձg=& "?ȮIq; F    6&E8bQ.DJ@@@@I;+Il A    tJIt@4774R@@@@&$**K$ٓȔ7.İhhnR]H=ćA@@@ 477@Whhn+!H&1@@@@@n2?;@nc@@@@ ?&a@8̠ 48gPmJjc}'    @gLrWy$Z׊"DSW|Cb@@@fM ":Vu-uE1BF    447XnfK4-%S\DޒIgCz*ƍ,ri9XR}sL>nQ@@CI-37hQf=z٨HKfQy* BT#9g(RKgg h{?7Do! @@@hhn㔒A} 4M鑆?`~oOrH~=g/EC &Y~\yE*<3*rFexHp7OHd ",.g3ʲNhhn2MJ,1%+>Nz8F(f|pa)6X/ @@@:BHnNLRJMvRO1^XکG {(ǵ4wJRF@@@rhhnZUiX1ZdMwL֓W$L2#%c& "uKEtH]c1Q@@@fErPWp-;,]Gg~9Ξ=FW7a„x>}M~&57~߄2y,I+Lw?`6   зJMBMXBA@@@dKMZ zA TtO[@@@ T X@%7mP/@$sXf sg2N3J*b,5m! xpq?S   !$?KysgC8Jk$o:*KL`T zm 2Y>k3373[@qMo[_y Ylc㯨   iddU[8D   D@=tvЙk'   KF]LyHz{g.MI%A@@@'NrD/t@Cs[8Or;wv  M{@@@@O`nrp )~N)  "I[JrԤm3ם}ңh&I`nL5iHIn(:"IԤ3+il7@@@@tJΒB    6&Xq F04@CsIT."RԙKH̦ )   WM:SGJ~);rj   M#dH!@I@@n[z q@ Tlb@I, $܀@_hnnRŹ3=ӟzZMO7ٟf< {hhn(ɋ{g6f„ -^vyLOsUy6񰈴cֺFSކgѲ   %IPR+$OӟwI{t$W/[Mv$+ &kՁtLRҘw1]xʩJ|   @C@d06&edр@@nz @ 7٤@,    mGb QGHx-?,K 4==)2{m|-eOn(  &-UuIwK{h,ӥ4 OuDEns3,æ"ƟN<߲=@@MrvIr~tN5t )r'&ٮ"XU#*r[&Qͨb۞j@K83YMہɄ;kq:N㠇I갅_[@f~LGd@hcJiwJc*jr&yj۟,=[ɂ}F?EHPalk 8 'Y=J˖2ql<9g ٭sO8IFݰ:MMWEUO,,k~xo"DP!cqd ;͠Ďa6ش\OL7eI A@@s*F{ rA=d7C:$fZ`)y,83Ui3CC-ۦ=1LMȽejCS{W-T%f6_HNcd:U6mT:WSzA@J!Pyn2ޚH^iⶠ=Y'%cBxH#cYUGOB*CnLKG t5:r9r}6N=X:NΉ734'i ' Ruk!(   P.sÕ qY=ݬBx᪝wN )+gH51 &~`vsn~L]f]wkZiMH0fO_mn=#&&=    'daڤyw+Խ   }J>x4@@@J!d)@@@@ss 3Ν]u`ZL F>?@3 447IQ$Otl&^xQu@@@*"MP{ΟɊŮ"؃&)iY)-6vd)fwΕ4^E?{Gσ;Nֲvzֻ9C/h 4@Cs̋EY];NeIGz[w:JTLCkƂҖFZ14z\b`^ hi~= F&I#ԗ:^]C-g)+sCѦ 'bߨl@@@@sv'#%C2ܩQiv^H/>1i܅cfyf&Iڗ:Qdrc4)QqJҘMڱ`-KLw)aMHJN@@@b447Y51,mbRΧKf}My1k߂{&W7:aOUxkX 447ɗKwNXtsc0;%,eG6s&Ao)0IQ:PsOsWC5@o(=79k)[tه?06,uٍe:a„csވ]rUQB Z=Ysg! {I{t$8E    iJM4O@    ]&7<{ӞC]hKx @@@Er{g]M+p   B`nn&dt=M:/MMÀt5Ν%`B_hɬ8i8axڢ` {'ӊp(   $?KnһPn/E5 >K\3~ҦAɚ2GƠu9 $H1Ν9ڌ"A/6'(sW   hhn2529TD6llh5~Nʃ"#z\uM0ML`lQK8ϻ1':ruˊImih̃4~&QBYr`~ i\(e+ϕˌY]Q{Е300sb<ڰ7HCq%67GA@@8F&&ΝAhb*VD6{(5, brLlicT`c﷉    Ї*Mu?djC-J2+Re|`(@s%3U:- ل|" @@@!*MkޚnmLSzޓ5}TCqhz`w@@z@Cstq<\q,]bwȍ=:M!(a(K\o1Mw(CPfEY6U("   De}eྴݳc-Hgn, &46Jj7C=vYsgs1'ґbid?sP0lzԪ_;d!575D1Jڬyu|wu@@ %1oۃ4&`   =E&cV,2P1`   =E5IyB <TJ5JInHJA@@@Qr%,4;BT     Prd||SƳ%TJ`7`Yk,SM:i'&Co"=Tu҇t9$_Yo,;    @XD擒ժI    ddij4y| 6@93ݔ}Im&g@9jymgDbbֻ>F    PAUij@@@@RsYtYpc$@MVYp   "pa3mȚ$G>/m|Rɓ^%Z^׬YCmOR?0Wڦ=a}f5@b2+1؃@} RlE~`:{x Fկ~>9Ȅ hw-2E cd0fL gd1IА'4N`tۃ TumZiE~J~K_J۔__yD"{.u rY٩r-[nE^yMڞwN2kD{=?@@2RcPbMIeh#j F+c7pË.cjz=s6d0nܸ?OvgJn[k6m>9t)M7ݔ_s5{dqz%Yd ?t.~@)c#Y8'ܤ71vjA+ v_u&f3{A3{B%ER^_Zd'uvK^OJ۴G[:=o&o4.+mӞ׿@m2Ucc-H?=P,"˪課'A@@ H \16FL1EblMZe{wc*M1ޜ Llh.9n|]HDXhNҾwS)_(9N 7VU *E&BHHgU#bHGxLM;+3}E(B6]>=fuHl^k"RDgno=Q]Z0s!tj2.EA@@bO--6aEa@@@@(\7Y ʃzmqY:OoE@@@>⶗t=qYEO,y7r- 5Njv@@z^r 殻^/wuXy}M/6hyE]44݂swwS뿟f.}tGf?׮ڏ=I..LW@'&?5ٓܳ-[l¿}{y>IXkXv˲)N>#UcM"(yWzGd1BU_W׎& aEa"{=sU?|ŊsooU83:(tp"8vt:8vI\B:ljBE%^ 媶4r1Br>\0|G;m?UQtJ6&gd|D䏏 j* ~Mcxh_d"^`Jr{9@XF1u+)u1.IQRޒYxg@κ60-uht@-$i!y c4[ۺl_K{ _Ӥm?  V i&: L`6d:eå  ;ݞ癫@@% u9%IENDB`n ϯ|?9ۤdPNG  IHDRbssRGB pHYsjIDATx^|OKlɽW JH4B !| 5$BBH Pczo qݖ{=ǣ6'ݝc7;gٸ ky   _@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspxNH#Abort_Method0Abort_MethodI:#GetAllResponseHeaders_Method08GetAllResponseHeaders_Method~J2#GetResponseHeader_Method00GetResponseHeader_MethodJK#Open_Method0Open_MethodJL#Send_Method0Send_MethodM4#SetAutoLogonPolicy_Method02SetAutoLogonPolicy_MethodN8#SetClientCertificate_Method06SetClientCertificate_MethodrO,#SetCredentials_Method0*SetCredentials_MethodZP #SetProxy_Method0SetProxy_MethodzQ0#SetRequestHeader_Method0.SetRequestHeader_MethodfR&#SetTimeouts_Method0$SetTimeouts_MethodvS.#WaitForResponse_Method0,WaitForResponse_MethodJT#Option_Prop0Option_PropbU$#ResponseBody_Prop0"ResponseBody_PropjV(#ResponseStream_Prop0&ResponseStream_PropbW$#ResponseText_Prop0"ResponseText_PropJX#Status_Prop0Status_PropZY #StatusText_Prop0StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx]@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com/`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htm/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` @Qx&       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOP_b$o?R>b$6+Ix<+K$$$$$$$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 -oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9]^_( ?  %KQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/     ) !"#$%&'(A*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0;8-Using Http.WinHttpRequest.5.1 for WebServices..&"  <9/Zooming in on WinHttp.WinHttpRequest.5.1 object00&p' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.comL5 ZB 0:B 0;c]B 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0($  ($(  (r ( S 4$ `}   r ( S R$ `  H ( 0޽h ? ___f3̙;/f980___PPT10.C0p0  0(  x  c $<$ `}   x  c $T=$ `  H  0޽h ? ___f3̙;/f980___PPT10.$  $$(  $r $ S $ `}   r $ S  $ `  H $ 0޽h ? ___f3̙;/f980___PPT10.B$  0$(  0r 0 S 2$ `}   r 0 S C$ `  H 0 0޽h ? ___f3̙;/f980___PPT10.WP<$  4$(  4r 4 S $ `}   r 4 S |1$ `  H 4 0޽h ? ___f3̙;/f980___PPT10.X@S*  <*(  <r < S $ `}   x < c $LA$ `  H < 0޽h ? ___f3̙;/f980___PPT10.Zԧ!$  @$(  @r @ S $ `}   r @ S $ `  H @ 0޽h ? ___f3̙;/f980___PPT10.Z\U$  8$(  8r 8 S $ `}   r 8 S =$ `  H 8 0޽h ? ___f3̙;/f980___PPT10.Xr0.,6pm*.0)39U579m;<\k(   `@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2h~Mԕj|#`mq>.R-[Y~q'>;Ɲt}gjmIwF_vUL<'G&&@=qiwAPчnAʤ4wvfpLM; {fi$m8>( 6xy\F:ї/"a"O/ > ɤwEsQYRmW|Wtf*{{_]ؿRcQ5#iSn/}M+ji6(͔rE $G]p?myx?c. Rc:{hㇳxd6Y@yttZyy9V Ff{fN9e;-"RW(F"M72#+'O-;guдO n}XB ;te6OI~i4͙ڣX<--Cu‚;'ܳER5za5_RӺ7 a&xB    0` ҳj&@ttژ1O=ճ=Hёx$(٪ڡD:"dvëhП#_dQQhg?Z65꣸{J#|e^`r:"Ql#[G՜.+,D՜.+,P     On-screen ShowConnected Testinge_`0{ 5Arial GaramondTimes New Roman WingdingsEdge QTP: Not just for GUI anymoreSlide 2TopicsAdvantages using APIs4Lets talk about Component Object Model (COM) firstCOM methods and properties VBScript CreateObject function COM objects in Registry editor Resources: File Transfer Protocol (FTP)Using WinInet API for FTP WinInet FTP hierarchyFTP: File download stepsFTP: File download Script$FTP: File download is successful$ActiveX components (COM) for FTP<FTP: Download file using Chilkats ActiveX component (COM) Resources:(Telnet to Unix/Linux using COM objectsA little bit of history$ActiveX components (COM) for Telnet,Dimac w3sockets DLL methods and properties Dimac W3Socket API installationExample for Unix/Linux Slide 25W3Sockets API limitationWeb Services and XMLWeb Services architecture(HP/Mercury Solutions for WebServices Windows APIs for Web Services WinHTTP DLL4WinHttp.WinHttpRequest.5.1 Methods and Properties`ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx(ChangeMetricWeightUnit Web Service WSDL0Using Http.WinHttpRequest.5.1 for WebServices$WinHttp.WinHttpRequest.5.1 snippetSOAP XML Response(Off topic: Using WinHTTP for Web pagesHTML ResponseMsxml2.DOMDocumentXML Request file ,Using Msxml2.DOMDocument to load XML file $Msxml2.DOMDocument Code SnippetQTP XML Objects0Example: Compare XML files using QTP objectsComparison results Resources:Igor Gershovich  Fonts UsedDesign TemplateSlide Titles0(X`_PID_LINKBASE _PID_HLINKSA2www.connectedtesting.com&A@(mailto:igershovich@connectedtesting.comhttp://www.advancedqtp.com/http://www.15seconds.com/http://www.easewe.com/http://www.x360soft.com/http://www.dart.com/http://www.dart.com/Lhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm9http://www.tek-tips.com/viewthread.cfm?qid=938038&page=37http://www.mediamonkey.com/forum/viewtopic.php?t=21124*http://www.microsoft.com/com/default.mspx#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.pptzJ:"=v)EDSj=]Gg3 >X_J3i&yV:"l#=F#|[G̻-_K #B_Ug*2~TG#42%"d=Z#qhڌm\bJN;sOccZ4EҸH+-m{ xT\ҧgqu/D?vw{>ѾЏLE6s?[{ד;$O6u]벹C5j`~t`3^׭ޞvtV4 S*۰nے[Ou*2 ˉ^\HZGDx5 [hJRѥrbxd`gMG{nȇԲ~o=AR8u;gE +@zU]۽/Cڦ߼4]Hw1c=  g#Vz9{ާpOv]o]Aګ|(u6ݙ%0N:e5 (tl=iؚS) WgC:sdt:-:Zn5#qf$? AGa+{w@[1iiOϨ\3~%-&r |tKw5YbSZ^E-q`'B}źCxH+u(Zz:M*=S :pjt}ހ=g uZy@@@@@@t]       nvN!d     -i09     GbY؃@wzk*f.OX}]]]m/_y~~_Ky~//({9ÕCF@@@@@S}ꎷ+V&$w{?6?rc鋏V tZq8#еkU\Jy=-sz?~k^jjW5Q]bN>s,%\8 U     “牏P8 t:}c\ٺnӊ[}c;.{i4,7݁־)CW<6tk*U\*v4}y8V,TTbH    @\OWuz;+qj:SS32 :]ۧ6tްf؟2L,צw=pBm% en!Y?WiIHuu3${r⶧>p$~Oӈf y͘qrc~;> B/    }F "*||ښimhٵek]L8-㭃˟:8a)'.#s牉 E;#JJJl`M. >X~tR5&:Z3ӓ=CN_Gsa5?MLKK 9͓@Kߜ֙:R麍xZ&6lmOtmuMyҿ3"x\J\.C-@MY}ƥ''zғ u{kNiθ(!6ԫguI?8gӜqQ      Ћ@bRRѸ#7|ʂܼP@Bǂt{FA@@@@@ {EIOi@ЮˏN$     Hm<}/))iX@@@@@ @rFi´sy!Њ""3茛G}X>QbM..##=;+3//7%99|pp gCnGN@%O5u ?/zh˭[ْٙ1#!t}y˞sTWn鹳۵iK=^OBFfVfFfbpp܄qiyFhݟusS_y{_2lny;|-ͭtF$gegf+B۾3pCF֨}N<}"m)_yiS3ɒWMKR.U|]϶#F -qSN;q럖?!#|^q *@@@HϧBKkܛXzb^I1{w&kgr޸y{um}VvN'N0aBAaa|Bbeu5Rqqq񉉉)))陙YY9Yh#U{Ʌ>/)[4⺷&>6?C+wupOkϼ39oOzfI]eUΙGTo+ +eOQ1n瞲a#ƍ;qԘ yC[k7ܱkw$oJnMW}_b]Ձ/%466?|?Xn]ɩ;zޟx6EW?]@",JJg";/^wH"S&@P,+Ӳ^̏8:kЄ:;}jFW':Ųg͑͝VN#(xm։\RJL5egg2mkjQ.Qѵt<}g +KY3~{ypj'$FgR|'#ÓIKKJ׏ /wi=5m9xc .;9nJ^zv7>>%7y̔쩧MO1lFH@rnxH*n[>ls=oܸq555eeeUUUiiiӦMTb*`"m옚Nݚi x:&W}/׮{oB zƙ;60i=M^ +hlrXa+颈$f3E֬?@"mVAꨢOwWH;M{7=0tx13Q$İ9^"L G\U8txUE)ڴeǂ wZۿm ?5{^kGUwom{iMzή9xYIw7~!'LJq` }Ǟlҟ)4(EѭHQJȎɾdDv$ |ے*:88sz'ZAwzQ`.ә}!tSjHoiyZ[S:s:[ c1jq]N6}t7TyZ;2'((Q/8z9#F2.Roj}:noVNS@cGg'6jϿ"hlKI|Nkj n#[F_m;fP$A#GCViexy<-_gڬɓ-/j""Ucꢉ'z?=#­9AOߚ|c)kf3d o<{\1a36oAo*GiںuHYΨdy=5Yh'uiiǓ9CŤDZ͌ko%mYwI0uW.[򫧭,dOGQ~pV߲ /8Dځdu   :kPͼĪm;+[vVlOKHq׌ϙ#K#4m^\h$HLc >#F 6}tIccY6nq 2%Ki$ۼ~ϔqC)90m/[ؿm|%%5yF},!%&:$Ei1]=-/zq:E-Qɟ72ӳOE'%͓43xgpIxPyIK hkhê5yQr&zhc‘N73kegRQ۞ZP0cm >(0xXBkfi)^#,x`@@ XZޮ T=ugy˶m;S{fyJ:g+u~T>szySRtZAAїr|jZNNN]}CEs<Oc"-n>ݑaO%y yZI%+\Z{DZj|PciҊAmF[w0͟96p#mq@97N;Ev)֔yv/OY橣 mVޯ6Mqd=LMHl{G䈏CposyXZ> paœu?uǢ_,\0ist{Ņv:"zhov;r rμ.aΟKW]+mjyfe;;_~TYKn=.Dz=e~vK93(j4~{f٧ ;8N=Yȯ_s{#.r^rJ°9æHe:>   ,t35/;h>VRh;*'"ni?).{WgNvJ|w>9FY#ںdZ&F#ƟFڎ;oTcӿyyy4мD2KHKxoED< Q8[w]RJo\\#].u氋dKe"i4UHڌhlcK7kbEF^rm}v&(CĪf=I^$%zR9G$ r;7zm_${w?n{_] G,=koV,]/W奜)yYyiiW{%GX+ٽm_fg_sA!@N5Gsk i6sϗU4*sU'sԬ[x}c&M˭I4i}Ӿ xH>}/OəIGzG~ xMH㑴f-sO艤:xٙ4 TH5V%{U%{M{i4MR6B{mM555uek"KRz!3z?,ʳGbg_O}_yvPĹSYߐHj$`11+-/43/K ص;z !m J!ZEj3!~G?l.>1ң=CFo_jפuRzÂlcŶwj#5j۪pqsf|}VSB <6OThɤ tԬZy嵬99C|NKtˮ=]VgJА^J5XH-=ukִ65 |w]ƅԊ=8;%)==M9qEc ?Y曫gѳ`ޭe{v_vՒ۾ƛ mYG?1%?DTsȽsNz#\~~>-YD/;cgΜ9~xCB511 >:v_y%-hc.(G[l¿~zlfVKeM>tmic&9437cުﹿ6dSlosB+;LTѐ0m?́wG>W+kQit(E.NPiCK/:o6a눈 tdr#mcg2FKTwP\J-Olm&GQ}g\­{[)l9(wg$҂!@1>ev||W꽵{[hn`RYaHZkٶgRzɎJkF,oVMw&nΪ7~ӶttIQ$-(պW5B+]feU|e^Rxߺ|ˤi SƟNOƦ۷gWݾi=虮[SRS괸Y FxɔvOoV|fҒ/|,_?5 ϟ-҂>9%}Pvnɓ4GL:dsm ___wލ7444>?4H7%"Vjjjb)62&Hѿ.70Z;lXOgQ>|r_Eɭ#S {6~ ׃Y" W.9;}J9dTއŷ~w=wٴ{=Q4tLZWyY.^ɻ}4 $"L g'-V%#͓3_="CVֵ|$oq ʥ'Tڧ+'$ɭ#2I^(y0nF˥&EZRNL u4/}{'tK|_10Bbş;HK ;jSOWQ&TS4cǎ/XBR~5k޽qҤId XcओNw]k/tYB#VWA3T=I--$'[|<1[3$~%`ӊSJyCIM=fY+3OmꏽIMʖwNT3)==/dgH˥`?LQ2}ϐicRRQ ϑcϧyY4;EO$EXT>S_L3xd"NϵekGGVS3{γG<^0Gv|CxzO.ڡMFS >kFH( رdT4>z}յ͟;kMoRQ욦&=冭{L&=&}:jn۱@ 94|9e=VFdeιx75JK#FғSR]qO??ߕ; iR|f5J \*F7lG>^0xb79:>聴ǎVwOC}τaɔJIkQdNsFwhJ }+V yV[[K5HC#v6mB='@ڝȍGZfZȺnF_ݶm5="^FKK,"`ӒO,^#e}kUKO̺m'v/\KkΖ@Z?zDGz>Mv.,idgj1ه i4+W҈' 242@x#Ri$v~Q7>gق>4y>7ѭwe/x엵%zM~z%WPODFyEA4RqV~/Y\_YP4gΟ;vӶ/X|{.V@AZ9ɺ XO-JKWO::O僞xZgiA &w_b9OGЩ8Fi~uO@+gIK}~r#Xz4uE)HT<{W/07+v"YI$jZ:8œѹ$( tmYG/ݸjkM=3Voi3.HeeeQosGΚ5FG6l Mz\ndJFNewң^)(:4w5WWnxZ{0m~?m[f T-l   ),a'睴484d w|p{漐RDRJiޮ@Kmk3Ε *Mbjw=WnD醮ۡC i# ,\&4QH#a&cFTD5 ŻHXYIyӂϤ/Wo\7 }$Ak/yKh G. h>IgNipMz<:9ؽR.ZO2PWϗ0hРS>{L`ba`Baؼαy$+tSluF RJz[%ZhO'hc'y' "5Z>W7vL{n7^&FW,ѩHgj3ݞO%W\873G]D ӐBIvBq0~"OWSxi.2EMJ5Sh=/4uxZ=Cݺ}oE7]wܹs??Al$>>ۯ]v4"iZϟ7?.t`ңnB'=ݏ8جrڵa͚m_w4n}{&HVzDη*n>U  HB}sMD0\槠ٖZyysTL>`J+eg#"|*#BϐH4>ݑ4µ47Oˇl[[<3<o[=q\kTVf&gzケ˓lδ9{Ð Or\0FjM9yxpm>ϢuחL𦉷ʸ&6kH[]vZ8>tbb׾5RJԷtGZ&&7R܌>m۶#̙C?RxԄ'~|#~rPbݶ)Z4dȄCr흁opիjhk\gKyj# ߾DH5Gm3 V:[c._@sÚu?YqI5KZC$՚w$m̸ԫpO2I|#RSSCsY$; <~zS]1(mhGi=7 Ok3v.;~5'E"E?æ`Vk_Ѱv/~$FR6}?I,>ARJ*9v: ?~S\}k*G421SBZ72rj]y=ꓽ+ol}OgutIgeyg6 1?ᗳ׿SG6TFٞSxrկSGyd{}ͭN^bwqQ2YCKڬS-҂<`Pч?$SPPpZMq'ciYZ/f?3بk'Ӟ~駞zV'-hkS)}=)Y/M+>f'l)g~YYUuM[a%'ML^{هxQNQjߞ͕jJuD  Fz5bީovP<4 _cIuIN_pcVxS<(Bi h=ɓ&ѫxzVĦ/(Ȣ{&(=)7]ݪ ZO?-98M#Ycg|)Z\$cioiAS7=_E GO*<[!5*)OeWz;|zS]ֳ1cQ3׷xԴrxȑ%&._ 9-t__Ѹ~Oƈڠ$YsCg{]:sg֠\stGd'Fzh" Z8qbqq1=Gj́|w{=zArIHL.-py|ӺYE 8'$RW[&O6rȢcGqhȢ!MmmE5Ϙw'm~0 j'4Q>l @@ ?¡ë*Jئ-;s]]x֊_lߒIдF 6{4HhoMo/Ns0΢ ۶/d"l'MwE Ӻs'Sk7M6ԓo.҂@{uyV-F8n)qe۪)xxc݋[4'%4*Mn5%s<]uaaݢ-qu5{75bWSebN٦{>[Q4bg޽SN:^QoR/ܽ/>)1mؖxZWVާYNS[SV)/'y687|X] N dee:UVTVYt/DD6OD˒rf.\Ha| QDjnp=Vwl-x:Mz!ͳ{Xl5RV?XM"-.lU_&d45uu5S`hȎ䔤xJolm .7L<"vCOW^ퟻ[XX CNCI%'$94 -qi_JPutH"wK)\t:)C wC)#di[[++*O<9pf¡MmmUmޚΚ@m[Wmk\mKB}kb}KrCsZcKZc})'&$Ն]=9V+ʍp_uecՁI]Ç:yB)# qa,Ww~ɞ{772xnˆYS$'ŎH#[?S|3}{^$\m)'揻f7PU6ُ6ssٻoKwРqFN7p\}}_;:mSLDoӂϽ|qym ́rJzWZNr|]Fv:igzZjn6ͮl(+$yFAfpiP$ޟ0!Fs#Y^^X/YuZ~R{ZMՖ>_H#۷wlڼ1D=tOxՏ+Jw<@vyk򭿾9LRyE"6"  Nۦ͘V_jf6?[?.k(O8-kM+[z&Mɗ_p9R3ݳw;kx`4 9bڴəwXn#j_+*Gg5 nKYr'cƼcG5ĘiqgT?_ߔ5쿧C Bnz!#'ьKOTiј*O\RjjfuZðR{ϖwϹw$:GhZ @wirYal]6oۓ;(tbASdN>V9 4-h=A=B}|$5~p^;8t%%%tr{Sksp~tz&  Ez FTɳXmތ {Ϟ4tG?P^ul3&NAl7Rh""JU"-CIy<)6dfӜLht* Qz(2|Z/dÆe%&DBsNs8X8aYtogņH#@p I[!iN!)4G /:vެ /=gIViA9h6{},ȓQ N:n'ϟ?ÇQMX0{!9iT1h'PE{$L&F-rEN]@!      F:ϧyaA@@@@@z :#b      }FBe:- "5gt/r`0X,wm]>sE,;d     `C_LLL\8,7 !!'׏5U~-&NKL'=i/vLX5niCG'<򑚶vO,+ltk K/N)(?ǐ~ }=Niwwwk׮֐* '@1Z9gϞ1tOm젱csƎ4jDN蜑2**_QǾM!? t9M>Zf Z6Hjyumu) ) ɉIIxZIPl-1.m5f$C,RT:-{kEC-e}{-ml?ikFAEU    Imjk[}L=Vk4IigΣձݼCiU" 0gz̤vHPi}VH}t@l߰BA3_Nc^qroB75% D:o}@*?`e:seVJ{Xbi"K}\%쵧dm}7ci7fo{'p"h.>6B#66MJΰ+bpUL]x* q 1e9bJ tҳgO n-sY-WnjOvw;ׇ]IDJ;!5Fbts䬨qyzT7тR?D,{3yJ9\kk&?а@U{>kb׽/ݞ$6xFDzX)3.˲hqy#E H,n!\:妌eϨZtFι8UB~u +!یy36oB-LmJ"?w@@B$H K3i/{^Xx׾[_뽯k~m)O{x_^@ڃZ=^N[EVبWuH{4dYѳ8fuS$52j,nbEfɴN$&Jk{m=JHJ-Vټ%yјW&[m^4[6cm-K ۨmMX& @q!H   v zuf7z8;bxhm{*FͪN* _>=|J+Ex=_\srk _e!%E]z\r@F%_kCa4 DTN^O#S֔'t&L8A?<2|TŮ~,P*ȎX2st=Lr#p%+fV1j4)bv&1E *: KT~ڪT9J,Q{nmeܰ[(OJ1%Ƒ`jyN!V[g`E=2/(]#Ł Xˬ-,T"mQ1r^{\ҭJQ:J[ngTPݪM TVi*g Ҁ@Bkr\jXNhAbΎ`MZF`G5x8iWt']k7-n7groo7rҘqi| Y;;Rjb>mT!ꈌQHZǴ`?- j3hGÖ$qjJaj32%11J1iT杀1zyEŠmۤETmZ6}A,@@@]m6_[_[Pg6>Cwfi^d'uFQ=4Qn| M͹_'?{OyߟWx_BӜ5,B@1/{Q'*  Dmw%i^Jk3C|s6"ҽ8/hvц}">԰r2H;\껖I]]ⶦƆFߛ{Sc{֎__Yx=2FX6Gi3n\A5q!JJJ/^! m'|>=\PRG^Z]牋z4-!!>ޗ;;:~z6mdڨW~Ȭ{l9`7qd.ĘvEgE     }F@/C ,}IxhZBpuUU\_]:ͅAU'g^hi455      Пhay y#@ZEQrU.mmmCG4U+cTXGĤ6N5f^/鴺(8/Fq Ӟ_]wݵi տ#9 4(ZQLTJe@ ߟfRLtR.zm];ZH7(}QlnӪjy.9˃3f{Fۍ_N3$ ּmy~'Mhjj^^}yhXqwNr_QY6vMBʪmweeedg5ePN98/[%5^оmǶ䔔$:{;OIk0wnA.ٺ"||-2/駞r##@$9{ KW|YQYkC ̬ܜ~L{_^r_VR|KJb\vzy:s򯵭[?t˖ex˂IǙ[uڷLƋW5ulii$Jϡa\WWWCc}s/ :ͭJsN%mٶ3--m1ΛccϾ+׬ݻfC 7bEkKkK[]wy7;s<-tU߽j ߏm3-77U7L|*[e붟&}o&Oݫ~qWN#/O:yL4B y֑s^b₴=Ƽݗ RͨZ?tQRSSi`[SS@/CGE~"F,׆e_yŷ%;۶m=zs?7q„ؖj\%.vu,ӥz?6^!J )HX)EE.kvwCc_eVegr¼(p~sMNhi +95%.)oiR$IV7oV뇗o[ӿki3. oش')-C[۲k/57+񟿬~/G%ǟyISP0o>mCΡgƈnPylNjR>leqKi[tjʎg}-O)Qq,S<#69evg;Hї(i9O< g,'еv6DI%FOROM>}&L7n}=ӦMkllF:s۶};"agjEZkL(GQ?G9gYrŢ>tŲ۶Љ|)feY3Vl}㓦O>aF._4eCNzXHMKKJk&ģCvW{~xۢ7xK>}I}ڿo=ɟ~_sՆ})I{~c$(^ijxŧEXfaEEq?fKƌܯtwubbRO.Ɇ +nlllmmx}'~xR'͟[ɿ+;hР˿z9Iy؏uw?#*Z08a˧DښU>g_xW7Ç(ܖc )vW.>yM[?~'?¢*5qܸFSH.],bm-S*UWׇG)߸bj{{gQ03}r W|g7B>P14'L&Yv&ijeIO=Tܱbݷ?_^dh^8ZcdGBg͎=+W_x M#}xq?*⽻3*Os:ӌ㌌ ~-`]j kѦ^RzɄqc |-ݟ-[t\U&I)s5e+x3e|L~tw}gqbwmɼ(u̹9Wu5|ԚXFOKoeoͿ( [&VG@$&}7*) W6gJJz&-)9m̙oV^~_Liuj!CMej~BYM9H -HXV^mw_/L߲~ͺu,}W4~M9ewRM>xF_4uy^}覫[oyK88doϿ{ټEWnN[jSSXC)4:Pk(MǕcbDя4=SAoQn10(wicj]NxΕ=>\NV/z=bM_~k߆ky__]]߿>uϧK/_/H.]k7|¿Ҝ;3*R=R^ۘѾG_L0Ѧ-iW=3F1~' |eIˍ͏5΋>XZi5?yBj5W}Ś ώҢgBY>zՄ9aY>uԤںlw_şj?֏?vtFFM&FQe˖m|C5EJWz>f32򋋋udݤg+ֱCStvWێ(F"cyS-?o_sK?:i 3*J+>jg֍ gYhD­C d7Ν;oQNQw*(ZgLFEnE-tZySbUS|XVksӠ5ַ%?hwm:<'9xleq-97zԠKM⅟n*q:+5'eg{Z -]YMKN=߳jy UӳrSMb\SihNYNk|ڲ5A`OЧt:7ƒbD,LgN_&jJ˾yWFtӯ Uy6Gq]ߏ_}wy#GVVטѳ Ϟ޶a;HEKفsHNqʚU~p/W?-6m(JJSU\MVzt\joW⯮Wkᮻ2LIܼ῿}tRmK%ݨe*3))c6_f1uQm5,P4[LjI/oeyrƌ!_9ɻ??λ~leyE(7(6TɎn#@nTTٙtP(~*C/UNA+.8:Zto@ݛ4nƍGmߵs͋/{zn%L*¤HWrfչ5t4vS9jU+Q@k II:<ʖRo/ҵEN%; bh +J[ U5Ewl'`c8 әE$rsKi,;N5|sr6_W_0򢡥kƌA&r +T@$%c.)~,.ڷ*Srè&GI(TZ668얆87)׬kjjƇ>>$ƍtڣ>8&MjYĿkKnC˟gVͳO=a~s̾Ӿ cun:]n6gd-}[=V{>1Gj4x+33k̖^1O̍jA/{Tm,qQ0H6GhVE2_H%-57ccQ"m#;ڢYuKh;;u"3 SmtDs{MnիcϝJ K5o$bu:xs/¢ IǶݞ5qLƒ+/={?>C -9kܬy6#tK;>;-ʿe.2JOSj#GDDz4:veOl<\ƾ<#eY_(WV^ۇyԲmO{ٹ](/X/^z9m~&Z6mv}X[]W>NP<|S:L6ydQQے.:W$wu{-m);7w._⛿ \sбcAS6/&ޣ7Iw}ҝ:0ǴuW|(D9$Z-2)1r٫/RQɒZ:)D_5j59_fRc?4nK~M\H!k.i+V|oώwz㭷\䓜fH_egXCj>wo?!̳i]PP[c'$ئ%UHT[bMꚥqez翼oAə_|>.{W}vjaqbIU6K-6Suk)Iex'1.k+.=bEyj@ˇ4ܸEtm] e2мVчՂA C5N$H̸9%ȡDB=ceAɗϒu>=8;x0q^aqٹ->'39+iKjlf$v5h,碄̙2j ,15!wiJiIKRqy,G,?棵mo,{4kQ1%bz[pp'5QKɚݎnO|ucnjy7|l~opOBZB)s.>oڻw/AHasF>s?ۺO^:onbmHkNOK3ܱ|5{5?n|C3d3hc>`YTt)uލ8{09?nS| _$ͻXuĔ̌m:B!g:mlZ5$ز%&x27?wsǎYf鶊wPs eLEEm]=M?aO< /ܶew-RP0Z#&ƝciVh e(Z9}ߟY9sdR!gegO:uѢEBkZ'?|ɧ|rGSk֬IK5_)WqS^[tY^Y-ٻ%9F1%Tqg~T\zNTzO Xsm\mi ܫs?u۫_CWowfJJzSOvQ$ihⶊ5gCkyyO:~/й}6zy~n]- MmeM;+SkO+:Sny/t\SFM.=[uEesN+#=#3#g}̭u_^LJiʧ.~ԭ3wvcq!?/91;>)uc\s'Ν1<9Y~/Es_lfcy;3`KUIs'}=g(i&\ъ93M,jYT -sZ0j+T1@-H%'5z\wumek{{7c?i_,} 1;G{%НbNOñL[֝IZ $aĤ~?iUq!-S=&.5IQn=sR'p 9--3OwVa7A/{=|-(J=GtI}9h'L|=Pˑ0c6#E CC2WZϡ),7?,wN-?۳@ Ս`Z=$#JEox;hFafyeP9j$Ҿu/L̒4N9v/佷>y ẓfٵcW^ [ˮ*EN7-TJencZdInVNB|¾ifZs|\-hkiQe){Rjj|gc53kskx1-[v4{[N6qՇvV :eES{8~ҫ*yz:=SfN#' ]0_O Z1.{piE )^$1>p懳bXΛ 5Tx;KJJ,Xśk׿޼a%ڷP޼K>3y1Vڰ~u:Y>՗3*}}y_V/ߛI3Z<7üWٯ͍r)5\BaŎ`+k]Gb=+똰#gL}~~o}#݂J۠Ypo2g$lM_xy)~?|/Wo|HuhQjo"+VI&Ybѳg ^\J'ES5Yf"tU?9zPy'>:Uw֗ƛ\pԙчV Ww4$Oc魿yڞF| 8~|M}_y cF4n՛w: #3[f 4~{iǴLR&;Km4RMOI۽o_rJ¹g,"X⥙u-iM {5^[Е7]YLgȑÿ͡W¯pF \Yr13,i ewv}}{mޠy6#T4^4kGjII@cmsEaμvq_^{gy.șF|kk'CNCL.I&r;aFdTj?n/OyucݳޅJ/@K <z:~}U?|G6n\±s"{}T-PiG]|uω,͒'iI H?6=O\PSוLHҔɣgM?Kz2'B;sbC)-{xgWBRbJjO9ΈUFL=V|3fhEP0YϛL'an?ϛCȂGf{ur^||;S>5㆙fbU-:i g0FiF3i,e罷l|Թf"O$!o0oml>8/'moifHd}zh7id{o_O۰}$XAhޫ֎Oӓh쮴D ѻ) OR{H~z^ΐJk=^}5[ٺI;7ۓLu{GxgMdRiX2ɪՙe=+/TK>!- ak(S<7hmHSqqqqYg>2ePOm0KȠjK?UtL( <ϩGzN_o/7kn}xwLFëyguQJ%=/'{'\Q1z)d uы>]VS8mܜtn֭FHꛉxZ_>l_9}JS^Zʮ?SpʯuxG˖tXm|21Op'>i %#:f? - WL`ZWS>d֬Yi0Aj{_tυ\g=G<]Z,w58xkipLAyم E(3 HIW+Y*4'55grrolGk*RRRRM:{]B, NSyW)iA*4"D`q m#B*n#4,κ~QO^w4]%p 7R@@@@J=R$[WrH#z2[#@򊴕bv$zIӸ~Ӡk @@@@@'lp4[ =&OUx$> @4/&9|])u '.O@H  6     EȪx      @d@<-ހih      YO7      xD"> H<-..Y]ҁ&B1v|CQBEBnZk(];.Oná[P6]u5bȖC=-CvQOcJ8qlx{}@;)w+69baTwnXȺ 2/}`6(1Y.Wخ)Ƭđ∁711 s6 ނD(PӍƘhȚ1I,Musuņda%1c+/A)H[RsJ a1rh$l1ز~q9 9a-FJd\m1bJMQfQ&u3䡉txe.5bR<-ncFm~Zgx/꽁SEEIiԞu @$x 2mtzscBb2]?=4o bƥ6[^qeԂ!`V(' fTTaeI-J\Kʥ~XT|1>u40n7I_&aş,Gs#F> ;=V,he7XkY7o}3F=IK6砒*ݝ .eFvwj*@@tq7v1lYRᖇ8h6ٕb GoAzuJSi?lz i./CbBheI@2!g8JUn[kTbDyR9azkZ8:J*nY!|b"D؉ԵqȡŨ=u$ c $QxVȁoF.C]s6s5,YHc_m̓n(e/H,֏J^RM텵,ܸn^Μ꧳]k~a̍>6A@-1Oz>dw[$Biw Ŧѱje֤uBl }Ir %&p1#"يhJU}HO41⬊_:YJMnzOrXkGauky")A@ |b9.c9QLLDkVC:XrPI~̒@=a2W-))Yxq/Ud&-o;́hlp4:FA@̜/%E'`KQY$QŋpGx)l4RhڬBrOHVh.шҩ-+΃ X تGA@@@@"iZ1p @@@@@`@D/["i[@@@@@  ؝@@@@@biT( @,@<-je%Rm,     @XE@@@@@  Nm6C@9*. h=ҘtXWqtǦ5DQk 0kpc~8 hF|ڭ~] H9M #PW+"=lIM_w'W)50,fEF[uY[ɴdxY gQwԶgc n!vEki)I8IEƩlh+F'>,)yb)џZ,Gq,Wms }q'mF|+]tsjJ&t]G}HU뒭EJEE'rܞStnzEH   @|> 6^rV(K1' ?Y,$;bP3D1ʗg*Fi?uKsKi?#aMWE[D+zb @@@@x2uuc&t"bEFu[ԁu"2I,3?% 0%̭CԽ2ۖuU\7=A@@@M vin_ml83ՇFJD1 ~u +ݸUPaYx_r؉iO0c?1( #YxeBG4ivt IK#Obz7 lB!w"h]~Ȓl\α/q*8+*EOt:# )ݝ<;#̸);ZnFvcMaiM-HOwNVke]-"*U؞,(J4ųmI5_ZuZ15KWKդ*J@&,,ne؆jRl @@@@i}YD&Z%2+H&`k#:mY"=ב6@@@@@@  Yo@@@@@@4,EV}x_S@6u@x{_cOQDK"{!z<-nÚe j,^8L%lhR5.XjAtwٯ*ۡġ|7bhdS*w E$0*HH%n) 6_^@Z52r鶓05csuU~RMerr i3Liu&1ѐbE0AWc~|b(_]opA;F>5nȖUd@@@@@ql[S1IE{Ir͒M%SDYvFՈX.pp0il\EdJIZg-%cի@7I, @%Hif uưe!2R4FqF }8'`wc,4Űb.TġP Iծ]RrPBi|`-h::hM;|W!LZh9Onhյ#i DKljd[3,V4Q[5,_B1oUzP     !B>uZ      {\a#      ppMp@ϧ!V] v     EȪx      @d@<-cyJGyA@@@TN˖E꧌%$L xZ܆5˘wKJJ/^& {[Z%&}qLɇl'qJqqs,RAxXtDW_I2CXQ\s b.Ҁ^+{t˒i'VnP//ώ IhۉHJ>k6-ve*RZT[M`Ա,D*]&i&KINHrܲcY DU]ݢ"Fk]zyje7FXFޚ+[ZH=sUlH    @ql[S)#IE{l,7@|Tw1#,+l\R=1wR{wR-Ӌ LKnU+Bl%`KBӂVfq?K2bI&Ӌ*JbW8GťO#t-ڏoF k@&`wc$4.fsn4;!6S<\$vˎ"X(Eud-;8cA@@@B'zl&"G"fʟpc;{YK2_{󲈔,O&6wQUc'DM)=fg(m ǂ@(.mKÒ((#IE{HD@@@@B$PW;Qi!z]$ ;b s1_Lc5@+ҴNJ ]#ʨ@@@@ ؚH:-[      OZ      pih      YO7      x@0z˸uop( #4=U4QO︁ V, #ZG:YK$aB ->2IXe_ j4@@G it-kO׋="f&nG~U6~EaM u&{,;eOl-Oan'b:nF=@ڪ/T \DH  QD Fi؎; Wnz2sCՍwu#7iX2ɔ&Mn~SWI(FDz4_L/56mzBe~xK퐷|1Q&g ɤ iT/&狶X6r5E*iy!1j*Vېs8byJE;ʤ9YbA OcNuƗl\~IAD#bv&Pʥo~~)~v>.mՋX)b}IA*o'&-SWC)Ef޺6KjەE{Jgc/Kz= IPo'y[~2 ǂ@x8Y%qH8s@: [9r#ZkiN@W[~:FR0Иm?&tk{nWH]!*L[|/hvMϕݮ@q[L+[v@@@,W8^{_۷;wXL_W$F q&*pIa%+;u9-@3]1# Gwvn)` @@@@@,Mema8FN2o*݊(TR+,r%r]&hV S@&sA+L:מUɄzbmgd[vt;0[mߖ3H   @ xZ܆5˘ڣ,|ݒŋl {[Z%Rd@?/1.faF[Xi]bcti'd_z?Zt.q`e}~mXhHcGʜ"YlQ'qm3jTRFP7 6~mg],2i穈ΨF$kRu;R^mK'b=OEbSWi*[tY:ųmI5*$_EsHzԙN=hDID+epPd   _v>J:-\GBGWdT %6!( ~_j|G7yCWuvE2t:LI_fP'om%@lMz$Q6      _ *|iUM@@@@@`(FK9BVPT>#@4>&d     JӔ0!>C@@@@@@@t&$>#g(NS„D      g 52%iJ@@@@@tZFF      D:M @N3@@@@@@)aB"3i}4%LH     }F:P##P" @@@@@@@jd     JӔ0!HiÆa[D\1^XRKw-k!V^]MA A@@@A t( {iJ ]Ld!B."JX]}D?ěyyԋy ^)H     @4"Q[ڀ}:Ja?%1Ԇ,ĸqd\I<-MDMDkܬh\*H[.ݒJZ/(2Jl\bzI?gէmQFg+ǾYf_]iT!:c47iW=XP[66#Ψ-A9ǨlȟmTQ*x"SIlJFtڲώU)nn'u=x9ӽ!ն@>Į?ݑ,I뵮%)zW*ܤxv'lyr'۰fٴs7]NnIIŋC4jtxCޖj_`R(Y3õ}1h]C׷$JdHq0;]qcF< vJ,٤uǨ\&v@Y]`=p$?FЭ'VBY֒K87n^kU`o^=#$pScR_y[bI-=“w"FJѬ l7/t fMGΜ Q1M:u_|1{AۉQgf>q?4]m&g]S̤Vo#?tpGTawdt]0"J[ϩipV?EU yh3'- 7rC=vPQǼvTU)VTҫ䫘gm$T( ka\Ѧn2cEGP9)ݖM%PG0]Ubv*mȍPuP4\ѥ;B,+Gi08:UIw?W_󟌌3$#⠍ȲĴQT*9)E*/ypuJG{2g.FUR/FJa񺫭;6I.YsmR6`GAe s/=Qd>6X_=Y,eX0KD( ?$#0J~8Y]lDKbW_(^j)qϧENSo)͇v+e_z1JlHKśF;<@R?68@] mI] b^H%zw.ڏv]DQ֋F}dQB7^_ǂ@@F:F"`u+_#;vU<Zc[h?p81|.zJeǁ :V@Diٙiθ(/iE>4 ,iU@@@@@@@@@@@ @Z⢺vWgdž-Q]簵*QYܖj(  PQX0J:F-qXϺyK7e+f3LhCFA@@@@ DNc Mi)ٯ<w/= kM1wW-))YxqhhR&.՝v}sS{@se^F&zIEq<-LcaobI}?rpt/F _[F1k[~"1@X @/mi+贰qM:62     a%V0{>HVQQU( @:M|56Z{}GѬclW?폺'*)ڊq1RhL # 1ψ=]I׵nA@@ 8&ƫAޗug#"%ОZOTҘחnL;ݦ+=;%5|^^2dLb̸hG{m7TZn}:P[&xCbPb_azZ=c(_M:i7=*qlealM4E۲]byJ_g`uo )r1:ttmDoKhGyd>Y(yܺktA$*CmH'"O>z 2SI]Y&D}k+>[/\>_ ĵzKsV#$:U&45ırACt+ qآb,UʽoچRѪH.(TTzI+L:|Uڞ3ig7# aͲi3n\ʳwKJJ/^54miqE@A _0 WOXG5%NieUeG7M7I,$ɤ>n&vD?YW+30Mp3j?ygJg;կ4 VfH[/| o8^h(u=aZߟgh19 ZkGyA@@ @ٔnP0W @@@btZl+J     Ӣ9@lNzE@@@@@tZ<MiY(] {bz40ⶏ4=@4,Xϱ?3 ?ꞈ)&ovfs ?Ԙ߰4n9|좈*&?w4~KnvGTb:Vbשupn-tE=JmA,䧥Y%kYj[uEt;yriɖL@enQC4.sN,F11'b*ʡ#*ay@+[`Mgp hߩj/w ߜj܆5˦͘qrJwKJJ/^ {[ZduV$' t&{IF-$DiMi d}oY/S?R=j YshRw/Eؤ'K22œXv@IDҮS<_nC*uYE27QYZQ46~t7yav3]jJ6nӫvbG{9Bѣ)i\0<(~V|%acᐖ8,8vZ* ]H\ɫg!{l۽/ݝ̔SvC]MnPMȲr(xչٽVZ];P@nP5چC)JV~=ؕW'rf'VB D~B@J:Ġ@(xe7gREuvև~U(B,D#y !xZT$     {Dc"Yo@@@@@@: m@@@@@"tZdp3pA+SwSl|e_tG1%_w(-7X"K 4!81M\|3UW%M7-iԯSclq~lb+q!u<^ua4 JQT,̢= ofemiV%lFZ-w d pP뒹F]F쀰 s*"6+c ؊StL~U(fZyݪKn~=[E;NU;ӾՁRVzJMIϏhڐRl&uU6GL)1eaߥr6/c'Fk?s>Rw/E*j#S<OŽPeAM>Ӥ]I5Ʃj/1"Ǩ~tEѩvn9g:fByŮ&J[mXms~äˍnIm~}1N "tZҸV4> gGqָx~Úefݸv8~]%%%=pO IxGSZ9'xFza%*_h2_Vu=JOQ+i 4 ,ލh$Fv؅ߗ7i_kg`e$%0XځX.kAjV) ų&59OVOկ|% ڿdʤ;(7ډԮFJꆴ,PO"gLIn_ޮ̵9iHegߨћ؞m-}F{N]wB:4u{]`nzdVa1uz!1?0PBBJFʱҘGlP#~xڕŦo3\ʲ%[rˎeE4n b]Bۮ, J drn|AujݒX`>]U $ćWo-IuiQKp?vMBaRUxE;7Qx@8e[>bݝpTs^`t7Ae>٨KUf-KUO&tuJ~|#]koZLkQ[z4SrI>R;. }4iP?p7l/M-ꍨ-D?8nΠ9h;kG:+1%vUDQ0@cj6d=ۤ16,z7aVTخ_gg}G]]ފ"Bl PO7@@@@@bi1R(pX@@@@@"tZd4,i˗# @dNӯqyp䆢Yز9{     ӴjA"CWp@:m{YPP\o `#0puZ?֥[c\\#    G:-%ni]@@@@@ @^D     M:-ރi~ r@@@@@ rĦNvu#;6J@@@@@@47&m.2 98&:%twү&q[0|E<S2uDp @VViO)~U1UwU%_81me_ZF@@@@@J tzq'}hRʮR rX      OATQFRbnB0@4VZ R(ՏuQ1|#      U1&LS C3ibϛZeG!F9@۰fٴs7]N-|ݒŋ)--a2nʱ0qsw!@se^X&zIEq Tji(RSH( FWWVƍn޼^X@VXh41Ü; @f}VL )[,)~Zց ͬj/z{A( @n6_ZC% @8ӎ`t @ @, O;: @G) O;a) @X@v't @R@vêS @N @3zyZA!@ @a y @ p? @ p|S="@ @i=~'@ @i7zD @a {DO @ ӎoL @ @ߘ @- O;= @' O;1# @[@v'z @O⵫z=lv+ggg+ƍVY @؈d RYR< @x[34{\c\I @v$@ @5TI @v$@ @5TI @v$@ @> Uu @ p7_Vߟvᮻ>U @&|׾-~u;>4Ti2;<6y+/v'6Ov}UEa @& v]obi!Qii>y<-ٙεHCU\xӧ'i&XgM~)c G Դr @,P֤jVUVZ-)n2 @XxfV*s_zoa#@ pdzv{{L.z @8a[O1}<ִC @a?-08ӑk(ٷ¬lZ,I S}kzJc1{}!@ ei]} ~d|C7o^_jwSs @lD?mm}Cl~ @m OmS\T @8c @cM}!@ @( @$`?FS_ @8i0ۇ5p5DN @ ~Zχ5i- W`8|ŵ:  @;8U1Gmzb0g/9\<:F;/dҒR"(@8ei]} 8J7nz6o)Ink*yuI+m=BvXE;sgR?ѴT=CUnSy5v3{* ۴ή#}dOG]9T.U @6d?'IxvIbo˥us꩝CҝƶCm}C~w5cb6Y]W @} ~4W Mn<_Dƥslxȼqڔv @~ڂ7d/Y%} RjE]aBUak/aS @lA">˥⩚.SWUbhǬdy=)I @`S.^@:{Nox5do3 e`f)瑤w GMg9h)BxY}IF_?ٗ5.fG7E-}d3ǜK @`.]5gIVSn-,OZxd:rX @LGU,OcfN_P ܑѭ]}R!@88$Ayچ=ܑ U)R @^$uc F @ma@ @g짙  @ؖmh @ `? @ @mk?mj{g=jYO` rm+-%iiS}gTg8А"[8</vt.A)NQ4 @ a?mBeUp|,kS,2Z[h,/ʷwɮ- @A ~H\Y.dI~Vmȭʄj zj:A;$ @`.^@J=q㡛7W~aS>{Z<+pb&.ɾbiU>h)1X81 )I˗4W_]ICjomw¸ m @@KwWjMYR<XU@*  @-#j_iw7(/ Mj$@85$#O;9Gw`"@ 0YEMR'OLD @ O+bR @;3j  @ @H~ZB @ؙQkb}_r/^KV/}(뾴vl wc[O[~~^z{vq^lG%0Ej'Tӆ2'mkmWtzSa'} i&amf'\%7~?<ƴ!uR{l'`3r\sfHͽedS[g }W}Ն0cَv$s'=w<.);p7M+~s.D(6?L/a>NI+eD~8w{`z;aY~H;X'sFBšr?dlz<LJX2%Fgq]/΁bVClZUzz/iFodk¡Mis(/vim!l;*cdz=~Tr(Ԅx[ڏ_ubaٰfg\/tv^2%S"z^KpnI^Λa 1_gH3pROh#}O+pW%nN/g{y~kW^^ ܸ͛;m:#kGP8 !s%}sΘcyǓv!e_1j{F;άq۞WM=OuQrfqv^\>;:.KŘ݅;kKVCߴ}U{;z̊dMxF;|I o}?~8n;7ý]wkp먾ju]zruZ/%>U?{*ݗNz*Ukɒ;\;xO85P|Y++EwzߟʷkCҹ؍ϔ')?e1L Wsg<6~nN%&.7 n=} uO1'D>j+• >+L$mϖ\/WqjcGs?q? .+jU6p.yVu7u?L nQ^XW%nK^JҚ } ?O] Ȗ?vSxv )k+|~ G d[pzIHᘖ{[I%eS}K/:yy|^ӾxJh.TW :e_{U{,/q|oTgjG|?r+?w?i1Y$eqlYFWv hIjӹ35bKS/FՄRτqX fh()?9k?vR WYܔw)s45p2=TxuNPd 1Y zPk̙0;k%_w is?-M(sLq]ծ*wCU}JE[<]@6گPϱT,&茳}JB9Z?MI;(Ex]fNzRZNDvϡq}/9ߙyٝ$.7 KڵXr?y?%J|89}u?̮\/[oPG+ }]J1ԬSUuE/O\V;-J/KjoCz^5.yp^[9Ta.] "K/ Ha݇6Ul~#j_Yoڥ}=7)6UU%c'5t/},3'NsRRSϖWIZ$֞R'@ @@f2 @ @`[  @ Gyڼp6 @+`?͌ @ @mkO[P3VhN @'%#j_iwWIgÎY+K*,/*U @jv$~ɂTX.P1 @F^$uQR @ 0K~,>' @ @`qi @s2 @8 8QOy˧w$@ O;ׇad!s/\L&U;^-\w{TXW[uyߤcTYӪ'C(gnw4i+jC'B]~-pa>L9`wZe( =;`'Waj:3:k~nbd;]vMq' @ OxW_DpC7o^_j/{zsx*+ߜN Ϟ'߮jvzÈged2sݬt8cz(]WuƓ7+`]_}T8̇}v4|]ӎWɸg|+EVX2F즔ӗ7GwYΉWL pR.]'8z߬Cȝ#s^a3z:cݾ+Ym*9qBd:\~N$Z&bQ@O1O }n4[T- _kOXN|)Uԝ,XUbḲ\#5f_salm'dx:^R2ͳ<Jh1_j_w>O2-PR`~ک?-[q lLZ]D!;+e;KWKYvSX;wgSKwYgBgxCas=.ԓvs҆%m{Rat>gb}+yuN%Nttyޮ=%-oi̝Fɸwޜډ}*픡U]  @@#0i'k5O먤*iyZIlYjl#b#@ Y GnMC~k-Pwa{ (#+iiY Ǧ]9r0+Ϧҋnah8qOvSH  @XX~ #@ @Li3N @- : @6lNennHDT Oiu 2ຊf~?[A MOM<<JB: ?<𽵧Vsg$}|&ϫzgv|FGyv(O[iNMx@X{ 1M1Zmz't0:Վ#i 0vNg[LHϒIޛ5Ωvg* s]}u7z+@*0?΍qq-ۋP>[ǯxcMXZ;O*) /v0YClٯq-\v<zn7!WYJ^In>SY%XCOϹk">|_ڤkD8bO[kpCVV5پJ<(Y}:Ono_"=+v %{xssʒxǹ@;]7&D82ihĄfO&T]o'KS&)/֎kۂX6ڭe[o' l1K&}.Iy3mV3a]wz:ۛHl%}Tn*-?Aa& *pJ^gܘܗ gsr |XUߟϼm}~j]wSM&Lݪ pL|.|q#ٳEgs O%pkS/˂oFκ6L#iUv' sڕg`{-EUX|Ԇ(v/-gyy]z =Ն @@KwWjMa Wi;*LH,v4F&FPnއ@ p?G97k8QMq›oo"?eU) 0.iFT"9><(C8 ̷eBzcԵ=  @ ̛wi&  @  @ P+P?1kk͕'@ @e_ҺLj!@ @짭5J#50aIDATGu6‘7FcX)j'SUnI[)MI @V=lHvfDh|(wt$שּׂ_ 3\lGq+ppGf @UP-l!+.Xko5abb򍻾vӪ"PO|,ʶF; &T KBZOU:Dxڃ̭͐M lmt*@XP`~kW1r+ggg VuC7o^_j2\.,vCe-Y cLM+I|6MJ:.aXK YW7s|h/F  @'"pUZÒ%eya3atpt 1nbw-m ;kCо'UxbV,v-Ke:'^|'vڴw @`@Udh&?Ox["[$>&bsɾTs.&UIg⧣oW_<8Q @aO+! dj]U8,K;0RM,UOg?&T>*T_6\ò[U*L8Mi4 [ÛiqI#ٳ}sMhcMˇ(=*hf0ٯWÔ Mx ;gWste d_=iĞR  @;,#0wdf p }9 N8GUǓ&C_C[q_  @ &ilp7{9)E>ifi @rOk+I @qiFJ @ @`v- @ O7R @֭Sv9 E @@*`?m!ڼ1ݾ @~i_H/% ?**n ]D @L¦SaJn<<;P8>qhipX٤ @8vKfq{xh+>[jIiq_.fCN2} @8m0TqߩĬ|6}wIcLjMM]!@ piH}/o+ɗ8b؝Zc&@ p풍[ -!%R @]v5aق!Uݸ͛חT)Y1p#eW @}.]5dIi/O[p젉h"@ p>rYvv _/\66 @ &im֞Hn]}gH @^$uCq @ ui[! @ pjNm @ O @S8|M&%@ @`i0U>?}VYGW)N @`sG:;g[#8{|D pGJ}ͮqs k`_+$<1zbaoaTg&`uGz- @m ~ZIZ;s%mgSl t7BY {. @#p ih1IF>RnRIc̸3]Oef߾߄p6&8; @@1 l7b'6;ԷV Gke5 orfN'@ @ ~ZL =5 LsG)*\O[4 @&0?⵫l󳳳oxÕ=ʹ,AJSMe1, UUshBxbUHR- @\twUք%eӢl_ X0vU8*'@ /GU,Oc_O*yh{)pM @v PCn6_ZC% @ػ@ՋN! @G.`?X @88i7d&@ @ @'`?L @#`#@ @{X @OT[w  @ 4U[4)[,);߭ @@O7%00Wʕ&. @2؋@5^TI%T @ lje/ t^P%iMsyTXwE8/UO&@ @Cis3kw: @LHߌ=N) @ @А_m @ @@@9" @x__56 -3g@:~Z#}I;ʯ/K^)/x I% @G&~(œOSXȦ!v'=~|kʳo~_ܦ?]_~@ @زHv/~;{OCO^?U?|Kj[Z @@5#y_}no~/?||ͳwo t#MղsF  @LL?ffKmdsl`p0}*mG Bw:<-M~~څxxoҧ7Gȅ'O @{-;Yre @h6Nn欄!k?KLY,G[*&iB}G~'o~>s?o'qz'( ]B)F @RvUo/݇.Kw5?g:򴟺/zow~v/ozB[/|=}L%ֵt @xVG"jg $ig|Oz ?y/_?_|x|w>?$gVq)L @ 4~ӯol~|ېU,cVt-Le4Ik/qy;_C苾Ӛc˾^y_pMqO3}}j`f>t$?>~[|?[^k>祟gR;?SM @`͖3hqHk^ yFi I+z>/=}?|w|yozӝw62 @ _Q_r~~J)PNG  IHDRbs      !"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~sRGB pHYsjIDATx^|W[mɽW 7nJq !H( @@tlc .ƽbIF{{;Ǭ޼yyfg֭Z`p[icM{`ti{ Zvi(<I~ZtX@@@@@@qkD)T[)|aNH-Ѭ7lpBsRG ړ3ηi99lfmRiogu kE W$m3_.1gjN]Udn մڰڜr1 6imX0CֆiZY^Fڊ\d 2Դ/ݖ+]:=J׽tzH.J(^Yg[ak.LjѶA^g@NY5H$\xfY{ZEmg~eMڰʢ.׾5 uW" {X5!iZT4/^} բAjz rZOwFZdkA55妾6cKɡ1vNM#h*HY*MVMG jmtzM]d% C7U,f Ҿv?Ok#vSmzY.NnBҽ^t͒Q^`ƶK߾{^m˝ng;ޯuo-U֮4۴ՍN [QNVd74=c۝ ݦ#74k}nIcJ.;i +I mPjڜ^IJ*6k*BY_ڻD4y g A-M~pM[=zѮ- MZlt(FmEԷP;8o@koԞ) [ki4NnH|Ams}sn5 ~[֡i. E?b0jV8º}?[kwh5^Z:qn3hmׅ.[,Q4ep tOkU=z? ~i3tnZiuN"ƹJG(a.infýC^nSOp@9ϟ$YL?ͅOirϽ.ߵja¼84s]Zp~~ ?a `ZTn,i;j~S" $5ݔj<Ў62v =MwF!- Zۗf~vt{y!Cgڟf3jm}Eu+C{ <T4̵5k,d0[[N{4a>6S]o6mڟ!Jr E64[OsJd6ЛicǎQ- EVoyj˓QqM+EbDam銏B{X߰KыhREFaA@@S`p3z()+{j?fT[ou֬Y'tM̪d6r+77:-% }1w,konl _]dWHϺ/o[mFVu]=Oܲj-ǟg-ڄ+?+0.&m%qEwvw]{?oXز_ [Ƶ߿_=*y΢N{eּW~''枝iЮųW(ϟ|ӗbIO{'O\K>~b?jރ;Ԃ`ޝ(=Mnl9ٜgg)WYN$m޿*ғ}ĉN[EQ0ۘzN{)^G@!|Mr]5MCxvIIzvI#ȋK;ӻ-=[;撧l^?υoʹ9UcN|O+U܆s{XYc@@@ [D[ w;iHNڳ5kb'ROmųVkX}}=il,ڿ桇bUo}J&u'΄L'qh[u=Z 71]:-OctK!7drSGTЛx=枵L_=?9`ͅzMD V[(Mv{Om3NFmi!vۿؿg-exkv ~So|,~;xOӿwSsw.OgM;~h 9δ4p0r{lv_mg'32ϟAZ7wPMlyM 27~sǨiOyi\~)\/Ɯ+?L=fݗmg9A[;~~yh,\516̇Y0mNkfsX0vS'L:Q"?ߘ$?c>|Kg{1eKo93u[rz!G-~=cX<[;W8 }Jgs?M|CE՘F癟vO~4;yW]`W<7F4JFN{g;7/|']<";\U̩3O>6Vv!PtCSӸk@N2'a7N{-!>s=c;33Cc63rcNZ)~9iNfLfx=^ssc'Emw7;i-LcNiF;3'36DMH椑{&zhL41 '}JˤP植9m(s=I:ISĜqg>DW7{h|:if49枱'q.;i?I2 yh&sҎO4~{4/%dN W<Ü4rIcI#fg_NjƜ4rؘ=4:&'=m˴[3]MtҦ5Cc:Iϸ ̧O6椝7iC;h&9ߡv1'킛=4 9i~ }6桱4KVNOf4Bg#}6mIϑg(F;'$$P$-&GPRT-cTP@2 P-ykbTDykbT$[j,-Ehg/Ex0MTĨ`!omULLlDsTm;y0(fwD' SM*xtGL&峿 eeؼߠ\ [&g͑4e{׷.l :iH[j4"i_ӺF#m_QH͖r`FBT͖rC7n^JHc`]1{BTxZ`Z "-D*ռGbi8[=LUpVZDQ<4r,ULMzMz7666QؤG`666QX<&=nTRCc誱x%uO{txMzd;jc4U4\5+i<&\l٤GiZi,k>U3]))SB5^Sm䪱keϴ-.Jyhv4K{G ]`4Ri4{ h# @@@朗U3 s͚ _RhW&b". j؛i[!='v&CoxOB}_NL ю%Bz3́rwWּћi$ljfZ?Q|-M(oEHjS#i?5F_G2$/IʇX\5[ qE(_{ʹ1 @GЮ KT Hj:~og.m,]z=cIRG/߼{KWD[;-Z_K{Wh*R346Q;ѲKXQѲ?xd4=: :hG)LUck4~da65ڥ4hֻ[`13mzӅ j]ri`֟[odQ)[Jtl_]·;î 2X15nV{'-\5"-h)Յ\B0jV5%ts klد[-׌TSV705:_vҘ- ZۥZyG(?dQ5= uMm50ޣu֭f;0{6_Xӵ6kOGթH횥-J{~[4=n@!u?SS #uI 7v=\ktpi|Nms:#k!v϶Jouz d(gJ׎{=ūQ|GF=i_Z2Lf%]W{--:᧵WlTeB3\kןuv3iKOoYQ+ۅjoE:k_(mZwi`6LΊF䖲8G0&R݇=0 wVcvmY}zk7 $uu[BkIۏ4c2sIkFj掣 ~zmK7Ҷ+M{SZuo ڛwп9j^Ÿں/닠 n]Tu [,^u#4ٟ?-y.T~̙mk+Ͽ 6^P z-|K4J;g[wwvxq ũ$OӹkoEn0Ʒ"DG/6eьAڅ [5hl40݋R=,Sog)73V407tki [vm 2aZ(u@V[/ѱf7ZFDs?oNxU=2h>{6Oklڰi/g1O KeO۱c;ڃ֎ga4wt]u־k7MwB֘۰K;  t/]UؾhRwP iэNI'i_mY1Q5lu*{\no{mԾ7;Bh߄NOn:P@Og=V1Ӆ-#R=vٮSih{mhaMgznShg '%pV- ;Ysȯ]Vs܊tA:ڏ&m S]O5OꎈNnQ7־O{_`^=z'~87DXux?M96Ux0>k O!9!6BhP`+{?N@ }W/L49!;hqHk?q@@@@@@KXV~Zt‚ŅUU.$U m     ?wnQүnZ׳Rxi`.D[Ymn|x}$הo]37Ed?-@H     vJhvzD_{Kvȿ?/fՇyΛhǧ্?V΄C3ېe52/T1#g%6JV(V[kh4< +XX5w{i_cW1::*6.*>):&6**mJgl秩Tk,csaab\tj3uhFҖQe*&rPd\( ׳6**VAhڻgr%a%Y*S|&%i1kw%D'Dǐ/yRL=˞ɘ~!#Ǯ{1 ChC #F\-7KVb.V^/16#]{d6h2UE0O -y׉a70J=    ]@u}C˔jYZ,a;ZMUW+*&&;?MNj=&eO3nv]B,27Ѿ=ܿ]&,q=U"# @!amZfF55zwT+,_ߎ)vbwxZA 3OKg,pxޡw l&)f(fĖF^UYC∑a:|MA@@@@ lȯKLU[_k7(-||O_-)sN7|Z^SST4? P$ X =x+QthSzqYUY*(ٹ     Uz!JiG୭iS>>!!!11199955519-%-#1ӛbWb#`%%'m:ena%/ zwӲthG3ɼ|Ϸ J{y)LۓF5)M=]XZx0XuZTE[rOKK]/HnߕWYاߐ4,{j۷z]/#9ik7ĤWY/u(*jeMLEkLE'سpO.ibI;Cs⒙M[TNZFI% ;YxAIi}6wL|u)i;w޼pUUW[>¿effXWWǼ^zUԮemQqI0E~m=ϧx杶)}b3oޚ%[?;URRd%)).]ۯ쓓Ϫ8ɽǴdl%sgY3W=9=>::!3~Ш'M7y:[:D86)>jTKXT3jjvogN2dHqqqaaa^^ƌ-{ y]49iO?qsVZRӤx|ó^r/Kn޹;I37wϸ+wU+)WJ'dsqO{#~ԫI{^kR|j$HڪI8 '{Ć>[vխK*^~mJH@Xݛ;h?sfm}~aւ[jw40ksR.:L>ەFFNmRFWۼ4otD(E[Ff[ ]Ҫ%'f;7=4:K>K޾lDr*u JW* J׹~2#v%JTF{b*F=":i\0z#tּR]WvPvU w=K=1`R WF-%'fᣞY̤N:g9Ἱ3mtqr@f>Y6x;zIk ]$Sl>enFq.CFiw̋*m*8+jW*O/BOkޙf}W]7A%qwݜw?tǪ꯿GNZv oSУ.(ޭw!I?Xv[A͎MMu ר>a`?_?ձM!KHNZRJJ>}Ɲ={҃vs i"ֶlȦF/yb1f'"iMt>bR{>G?mZnwծ[46=V)f3~'m~'yh'$( ~'Z)]_iA!r7v߫&ƫ+%)EMINR+Xē#G,YOrB*U) JYgme7#)x!ab#z럞YR&^g-(н]{XU-NZiw*u>/UV_?0~?un #%jitFIǜwW0{dҠ>iNw3l̍۴Fa4S˗,Y~I,\F7-{YGlxeAtk?펃.ѱkwn/~zkRLߘ3_34cUoW ;T2q9i,zh׏\cǪ\5zm,-=}M2eTu4r(6jHrwԇBͯ|o?CE Zq_FO(1?i|ӟ>oޡgbI-jkJolYōr}JA*ݺ)=z(=QILS2po>ճ0 ,w0~ⓒ;+j{W?ܚ<ϠQ[]?柋u 4]~yvKu5+(~,>&KM 4jOO^e->[Ԧ}uvۧZ-*{ݽXz=w [iC:r3wP_>KhՐn/157[Qڭ ~'՟7>Mt '9أO9N< G4ŋ;:~3/ӧGzF,ҭ   ,7=Tr֐Soۀ^/;,-Å=   iUM[rbz!}RFLɡk꛼ >o^) vL}\j ۃ7@11ĨZ/TȾlF=!(E^"sÔ]]񟿒Ue課_I1Z"i_i31FԿx!w&LIc[Bl˻p2SjwŰHH,dsi6iʈsnIily>*aC#yg\3tڢ@.Q9:obBHy1?9?r(bF+~F-F:pBmMjO?oM˿̻S/R9_t%qc.hw,~kӯngL<<}∅'NKW;+|Aiݓ* .?rrҊ߈bd-暾c~]=)G7ed8`u]_qiryR?א3 I=bĴ[+@9>McFxd)v-޶"o*e+K*le7t9|:|?9=TIE`[Vs`=l޲ ט=W+b_uo|}_rQe[eT,=  F_ΎJ<4^RTNھsiwɘX46$/G֛6¦ssѯ9>тBj#/BmtUEAﭹFyiMM,zVs`_b&} EIKN%դDǐ&~O)>>1ѧxC>쾡lx̩oHZ93D'{Z"iM?F6?㬸ܭۢ2fU&+)rcjӴ$U茷SY\~iiU%pqqWڊ]K_UvAi(+7򇕃((._\7K3>ﵯ(e/+R ,X6w=[^fZ;y~e薗deiw̶Vm;8#;9{bbKs[&N3Ui~ }5I93+3S)Q(YCTWWu֧8_bc+cʓi.~WS]ٜq3f%uL߮57o߾*wM }8{Qc?~1CN//t㍾spiO8m'O?O>iNstؼcXx9vlF H|\][69;*{t N=uYtfQ|̸W/R?r[L*';PlaռUW/E_K7ؿ7l뛔WwػF6faK^qMEdXWNZMM#yDj6Dy}[x|)3ձ U;4)#}j6{G(h4 5h{hB3֬˜3οm!%[&7*cc1s;>9mJHzR׿{hi#Jp%)~T**땊u+Tߚ3;s&]eT J{3Hu!WT {ciPm=r5G|7ǝ^iIrGL>#uWހc\YcU[яKc9eȞ]ez&7'.g*yyMEOLZg햴ڴCf Ojv6rh?Zes(AeUuLlҞ}h4}UVV#zjښc>|Szh;ئg&ү=Le-?(ПG'[ܶYOEIj+Vr}v1uCsrjjﮯxjS~4LU.~OcKl\rOxնl03qB ,0}?7j5D7Gk6GvĬKYţi?> ʨE&7آM4#".9)5<^t+RMU?g䤙2U5ҟ6p1wxUyc7K'f?TQ~@YnEK vWwq~?- F8MzVoq{4 ICO#2cg);_{h %yLIWiTW**+nݚ{p Vڰ,61)11b41&*!f´Ǟ?NlNT[W}u{:Ɠt_"]DѿϩIU)Fi;i}ފ?S΂i垲VgS?Yk@os\uV}mcA]1)YCUoS;iҍ,v+(Pk(;m ]lSmrzLRCіE[ V$) 1-؛4oai7 sϜۿPsnb^^aq\\3?'f%O>|, S a󮞇5l_|qӇ=cx\|LB#W*dO+zA3Z---x}f4 mQvUVܹfBAF1tP|3ӌ{>xWΚ1/GO7UZϣKݪאF[iimyE%(ElVJ\Y5EhMOuQS닇Z   ܄>{rFf|3_X}}S#-H~ڈt;ausJNN ݑ'˘GN#zëi%Ǧ5፜C"? cmFS&m5U_9'hZe?&X.#ymٵ\~ʫF2vm/TɟIJ|4={i&}t"d'+CҕeÆw>N\VQ?j5{WtHόQi 8m`Ŷƒ+FGr&$s%ߌj䘥Qos衇N0^G֭ Mz\fO?h"I2.}q8a¿Q91=&>?hEK>ӟ1y99k ѥp7p=<ںܞIwnhXSOn-`Z]qQBZId@@@ r #Ba &unʈ'_}NV槓&ĐFyhk,y?t2 6к,߿?=; 'mI2Ȁ~}=d[F=%vݰEWVԲpHUeWhlHV:s Gؠ?|~7nأ,'I&INkx}_O|^$ٷDZC?FOwm,Y2?˷6tՅ9O:*oI }2 ՀD a4r}oPxռ|%d%!QlS*7 "+歯HKg͊P+T]?ۀ=o٤?:fy4۰yArҎvfos%Kr :]Z#Bo夑G\ml#]E?h'_@5(J6٫uY)lqgo޼yҥԽ~c zDC M,(( ߃bh4/Bk綦~A"5R>|F <W={MaYuJq͆/{O>$v߫ךq=(q|\1>uD|7>VZޓ&_|'NŜs w~#vnX=CXuD8-'2/6eE䡑'_珧yi$C5X{֘3I#iC!5!Q9i"l5rD jnMn,rwIkwIZς[4Q5aN{M^ă54nhhqҼ >zhGOk~3Ne& g,e]tE_uLR(LK?mHYGEFE(%fI>^)J|?F_| '-3A[9I[ߠ{ v1 ){~[_Y?`'P٨Tzzm M9+Kٷs fկ;8zDir(nF}q˖-Q4i$zZDN- 9:ʓ.ɺeaW/^5Ǻ!Vo|`n/ly{ٵ'O j/}»SNXݴKɥWaX~Yd'ӕ"i_~G|%!7mI'WVb֔6f,*.ܻo3%\]c%߹^{{>x?kc!\5늃@͈yKV{(V69c9G|=`a+j / x=*n8=rİ֊3zd^Icq6JE=kV7i\RZN[nj? 2ى -B/kݦ]6sN#i-{*skVmҚ Nf~H@%ɪҪ옷*1?T~Y]e%6T*WcJ F 2L|:LdCO߽/ _ERٿUF]K@@ QOx&6kAmoUTDY2kE5_._^8I45nW9ǵE ݗTݕ/+&;|ƺچ;͛-WߒKFzrYTDA3ֆK瑷F_~WE.BZb$&6~^eIk)KN=󜑿5f%ɟxif%'@TNZ̻z|Mi9C{rTՁ%~x4FCsr?`@J0sz5cS.\u9CrbO߰g{^ۺ@zKwHD,@@"Fe Ӧ.[\PTVfl#[/Mo@;?ѷO#iDwWw'l/;w+aN+B"-k9GhhŜ(߂֟5iGٲSU^Qk~3-wIK Q{iܲmXrGeqyP=KeEo*-޵rerL9:>1a|C>I!'^iboe]5;?btc'/m YF;alj.E[>xcO.eiڒ_{qW߿eǶϦno6ՍGӂ(nVJNZsW7oڶCٸQٰAٽ;$7fԈI7%6mܸxb\5$J/5BjrZiu~S裏4[;iZi80&ե`cQ~Pg˧ה瑓domi1 ,VZ]'`qeLEgd뺃? 䪭7z}+:")kߍ o^D1:o6_R%76?{hDז%Vx6 h$j4`5*+iqÞ~' 72>ث(~7K9Ϙ{6NJ>#zMCŠ V* feffD%[suW˗32P2U1&>$1>Z[0,H:|z{Qyߧ>[SuwO~ ϾIqGd^V.YKm]cVV>:Yђ^>~-^K\GDG%&QX`[4>F+(JF/3CIO_HwL#CSކr(cGt_48ꨣ ɛj8qlOhȆqwƞ=C중%)Ifwē:uaP1G =<{13RH   Nk#;sK;aP@+ !ld   >i3F:"{o @@@@@@ロ)w,XRa@PO Wț H      lvF7_ڕ,*qm]~;gQ?ɑ@@@@@ |1&==zc;}'ݏ%yޠ ?O? @@@@@up;w@YL3˟)-Ty&>6:6.:O54|QFbkQh_ldEE7Oc-()ͅQʌ\5ZD@     9 Tz*++*+kjikkjyix5ޚZo-luJ'm):k=P?gɳўq]w֏/߰qwѝg{hO\EQW_/=+)x=eue rj<5zO %\a]S}]S]mSm%?-.&N^%y:V-a+ɻ}:i/;q'2닥LMKz Q>LTTudRfgv ,צLe@@hhjD ^ZDz_YJͥ*u5Jm}ǫ4~Ky%*̙?fRM\@il4}. |yo`[L'IIN*jj 7_ސ2g)d;d=fQDC1Y3I՟!0; 2"PX]|o^E^iMiuC5| ^>^vO}\]Mbuu|uj%[ḙrq,8ѭԺ3LX5D\TUON[מ8g%~7mGĬ17?5p".#o sE ME8W$y)liplpȲrg 765һgMJ{jT& uqhOCMb6he[d/ck*ԆMtsR9SW^fQnrU׿{>Z2'~TIQ{@be%%9+ߵ`mkmVH@.!)ϏaKF&2FeD%HV"/GdDU@^hD ZbQ-3;$bj ڌ_{扙Uab=#mFUi^ _%=K=Z2o^;3yw滳/ɯ>{ܯ.j/b.X'O\_ YT'tD P<6ى&IABr(sҖgV_˒_Yܢ .p/#muiJ}}0a;c|*(mZ*1m*Tr̚WI5YZt&mk:^df!崬t*ˈŊƛ,4qS5b^(]@ @@@ l zy'vqo0ɼf[ T=K/q~<ۡQdU[ t?|w|[z?x]9sl=.lnZ1 mG 2*T h^0)LQK6 #2h6H]۪YC@@@ 0̱v|og{qp"~dXi2^O>T̋aYx1ҞjڼyU;WOO:||μYdpjjZi8 O`GdD\+ \\&`bUqHZl0p4HSiu~Zs^Qkg%Zimijz- b.EaR*)Ca+i&(ϧr2y?MFޟ^jArLc̰#_^Ϝ?KUfc*cfUtX1 kO2;Ebq,K``M[dUS0F*#3iMY*e)ṘIL B@@@ V筣h+M ~GtKm}BIחѾ:rj\+qOӮM>&j츱5v?nڿ4$11+cbch~{_lJ;=4p|**kUyDFju& 1qfY=JjSgTĦbT|lrIL6j"j1*U5W2/F(sAKA   &@NWwϛߤG1C34/64FQ-O͐ϗs^yO}=ӂ\$ s1G`x<ښߺG=:1O= 45]ƺƦ&~Z~Z0jQ^orѩ滼6~쐐@ED ʡ@ {ウ?r7kʍͭ,((t\IǕux*= U DQ*)B\Ұ.bcM^z)H5qw0Ȥ ̟??L     й  cr';pou]hl\lDGz4-&&:!k65zkbuA"PZkƩg^#J8GVYY5>tϼ'7hsRV:[,1Dt̍/9EEE555Ocւ]c}>M&nݺ]tEL&H5"cOHIW[Nڪ+~[~s3G&4 OaE?c:ꋯܰyC#v 2d$ő4b(VS[bT^s]t?Vݍ(/ٰ|>z\'JzJn-sYY5WԖWxiEMVl YVoP{bRVݲ^pɉq1Q}So|┑B2$/9ʿϜ4U]wK\vwtSjݯ9W{f]܈H%K[i5~M!5:>#p?@ٶ?úq_=[.0l#ycUbwY}~7,zfɲ~:?P(571t$M~Eղ,YA7oJ$*܂ԴԬYL,ۤql [8}*`9iU浞oϞjı81SI#nQ%EE6Z JGVA"wB9ih~4xco6z&_v^ަqǐha =@4{x ?-2`e,XVMUe_U?\mm8;([[2~x^'j6\86ڗVQGb?.\c٭}'PV,-~-Ш,PU5mh )k9ig9rmGɃKIF$u$9] ži]}.=܁yS5Myz{I\o[z_EfePVږZ_';$YN'$>q<+ǒqqqM|U}~Yo 7m۰./ IAj|X3A{; Ӓ@r:uM){{\췟o={*f/2aBO:\5Zj4:5nMԥ&sX(EnyY{/+=+?Cgwx&Mii!C+v[w׼;Xx/*6MGSUIeZ/>|*V*2NKEĔܘ=E{o/f$$Mees^/ڋB^N{G؍Z: ႃ9=nJ/REFOcJZ͒HO6z/jև='ks0n~ھ15fΗ\ٻ@ӴdM[LTyl>+vmEq)6nXU=&[0zpmI[43ںkޛ(%?ͼ"SWvHInR5K(jIF˔ b׍RRp=*Jr՚Jz7ʷ:C \vuaN=߿3=F̻_Vy+v_*ORZ4zo!p˖馿{Cώٺ3R/~|j;?^1_gXO3iR?׬$s5fsKXi;2e!`I1NϪ4H i3@$)wjrNNvbNNS~qڍvXHeXdU4Ǎ %eJm)CNKoN UQu?xsϝi'u}ݻiq?֋  c,\Fܯ?U^8R2Fhݷ^~{CK?Ŀjc OvJZetuԲ+}u޻2w_6Igə=HrcvZrժ]~yNo]Yo+PU_nY{KL>tHuˤeEDXO&4 Fsך:8Pz{gbÕ~OKw囫X[抏~(-)E+`0j QI$5T*|arrFixlTǭ+$czӍ:&60%ڊ.j:-]smSeM}~Q]W))7_L%VYQEt/& IR: eυ Sq?|dr_Y~Z?QVu=^|Io%M?+D0:a>mF/*2Qqrqο6fyZrsP|HE;J+Wouo\F|속bc/JKn\X0/8iYls'B< џ̯tF5Q> Xu|?k&*/yk}rik& JwګNXrدy*7Vwh^СY45^DnНnΝQk(Gڒgwk.ZCnp: h~Cm,?F5'Ajfƅpk"֝v ,Z[rO}ʝ=]JϬnhPRSK2}MJufStT\E+V켘m{+m)\,61WQZRpI=>ji%jQݗi؞}{^wk?[\i6+W"֢TCHʻ~hwD%Æ\//>dxu ;gN^^^EeU_$䜜0ݻw$>qง/]woFt[Udѱ/>?\V_N/d}䡔E]u=gO-s 6~'-G 6_jUI(V UCRwTlN:s'X*BKzSk$?faC]vȑ}M_ZWe^U4e3h =WvEY@iSQ(g@sŠ׋;C_ݖ-5[@K 'wҮJVWzDƝvTwv#'.FZDx%)=d.tGMٶTIrJJQ'*?x 0ԫ{Q=ߞQVoSOW۶Jm_slT-9φk*3OG\MI֨pq6X %Oǿ?ύo1t>-=};z^3w7uǿ΂.^KK?_ѿ| ySSw|x"ilm.ɇs =q-I)S|>wko؂KO9i}SW Z0=Joֿqms8[A4Tw ?`_ +^ili+7zwڞ9df?V-^'&SZ+YK3z(3kݻ߷yZ:h P&.6Oo:~[~+h}ieGQSsO~vGuyem^Qr1cwY.ΛK/==]ϵ75`eQG\ˊ=5-)t})))I=57GWn.˔_Wg]u{^XzOܼ1J쮛|lą<Ľw>Fo^w^9}ߠP:iæ;rGҝeХIB ; ݑN~\LNZpS'k  XZR+=ū̙SXX8i$Z 6_gL7|RI.97q774E1{҄!ÐVtxT=2dXO3{L-sZ0j+TQLwT!pe#*-{/i&?tsɪpw2pʄeݙ!1+_MX߫zԑGfòvvbq=rRR♧g~ZK.o=ogxy9$ә,aMyz`3CaL-+"l3~F+WAii Ӟ L2:>8ƿIT ^fФ?ղBl;i[:K-g\ª4r@CI1QKMZnٹǜtR{E_]g9Mصcȡ//]U tGnAx%ӥ ]yS0oѢ̴=wzUdmF5rj(߲e,޳L^E3KT\-%I JzJ|coS4[ClMUtvτ#h^Ύ6 9]tS]Tꤜ%&&s(Q]Y]{GToVU_;>#3>y4Nztvk92k)=isoyJ2z6~XzzBo>_z뾻>s_s&;c܅Ӟk„r?g`;7U,/#W(/Oh vjuZ#T ,6mZ~>o߸n9]ڏPs9=o?l^#7g"T֮]fMa„CƎ6DE7?8I{/k|ڲsW~˻vwK'uK% +ZL[m??-ΫmSu %<1daR0[Ii+yazfV{~}IuAS_={)ݒSWoN^bU^@^M ~y/+O?;'/> FFsU4 Ēe˖>q(ꢵk*x,c0=⿺VmQ7gsKry̳lZuaO,F-O9io;Wq'?D|ky]F&| i>~ᇇZ\VhAlNSD4rs^mС;uRR;aKXlrB={b$r(ޚX"@_;Ȥ^; k˞ssOcNm={ɥ}ϳN'p& G1hio)+e{)&4FT4g3hֵ;K天X:g#7L26~ΟO/.޹}:~5!uGrFL=u؝OA2(wgTMΨJm'Wu1A+o?*}<e̞MH%'yno}g֯_{̑.s'7lupѺ YPXwFCC4{ b-2\*}ߌBT!8`vFW'?wMZ l=tڞúnl\VOqL/)1u- F++{ΐHKE6}y<͕†rIO9w߆5Li򴌬Ӌj2ӏ<_>އW/:):1>/fǾyqU%O5 ~٧aQi옘Ld[6C}T|^U1IPeQ S<>nHSQQQQ)i͘A{iL-%?&rvű/iɱGMyYvAA?[ӎb iy?zLlL ݈7R=PwPJex'uQJ&vΜ9}%5Wd.i :y?,).3|xfFFGMt璓fܒ=W]|Iu }E />mGˆ槭R P &o$h'shQiNx͂XZWY~)H0tbtWZ5H~iz'{a%\=*.kUaZB\bsF<{=,:̓!@~]F޽d 7iV#cF,"4M{2W)̪x*N&Aa:Z    A%1])+9BIpcG`..m~Z]Ld(uMY(5@ya uM z-).GA@@@:@{X TE    A@=1<      Ѕ}{;1&w!(* C? +sM.D,Bl]      Mf4ϟv"TKZ?-Z21@@@@@@$ P|Lf7z ~$g U܍O      BY l(@F     ]SOgIpB9i4'@@@@@$ ?M-@@@@@@6c&O  @@@@@@@UKeZi      !%?-Xf      RQ4Wr̸W/lg ϟRt"^o%Y r|AS?M@@@@@@@/%*?.mlv i4&Ib      K1F##O%\0b:쮶BU:ўKJnk 0S[yA@@@@ PTr7*ci[U>_t!8@KmS(iM3dۍ6gx#Uwx    Z㧉w3Bnd<"@r6:rZ6B秉nCt6TSĴ2n ըuQ)=61k-%}'8OU7L$]M7Fdn2+RtFխ[7jծg`@r' ?uv|iE=Ǿ\Gzq#Ub* eEE奰[BlI#s^f%s@8aI,+Klռ9nA@@@@fA=yr,J:WnJWXeig0d.#ci-%!r)ݖͺY6 ̝[U(T# 2e+mdٙG D҂tbAӸc ~b`kbc2/mK!(&$     5 O#ӽTqG|we^+Uv[:8k[4L|KO]J@@@@:iTX#IJ55m@ǙvS˜NVBNDe\- UT    O5jD.ɏuO2ߏ5B"61J#Uq1]I%D-.5[WZI:2qʲ,X;\.+¨gm     @B7 i2 te@@@@BN~Zȑ#C='t>:_D     M~Zd|u:E@@@@@"@iϵ~ϘXV$\Bɼ,mvS/@Glkr-&ߕSP$@L $ÒtDN\ MT+d/OWWh{WLri( hЗʅ|;#ӂT_n qc&$SQv!R8M `LFxKx  ?-<V9mj?Ξ慂y;$ki@j\{vl Q8 YYP~Z|n(L-g$jg%=ϒk$y]U Ŵ\!WkH]sT϶膳DI'S^#%bI]XGxKD[j]<_]J,.^~.ʫ*]M e'tK!ڬP5/-S+TKTՈeqtY.m^hyqi8_J-L< KIN[j2dl$.K[ PerG::^ i@ ".C,MwҝĨR]/6Y%Q*&z ILqDP~⥚'-B׎]Ї 'kK79K"ִA֪ZGp +6)f?7=#.13~0+Mœ!*NJ˄ >N'VWKԁ"||kT ײBexŤa`o!ua{P/ Me+ MOۡNהt/Oh=.7Reu}PKɤ"˒ S6,8K맱;C s~x0*w`6ƗoFR;lHl%H+T~bnX6JT9+*qD-^H{k^ g-ӭ`Y.KD`r-RVҎc1Ad_.KRRX,Cp/A dizzhcΛjdZI1)z\-;sՂ1bLL~5F~9KѧP&(lI)le9 i/%ךV],X֖͛C0bՁ>,FtY:@z58|?M Q%E:㬝LQ*qn󸖻6j*;U]wx庮ٔmV UKMLoo;@mP#;YKc{*Sb 3tYͺû.ڭȃC?MufK־!w=cC 6sel^ga{Q'ӢUNgp?H5U4O{Sw\Fi5X>E3)O6[FL:˴T,V栗VC%.Kq]VhlȄ "y6Khi'%`8!P2fDqVښD&P[JSeT5TQTtbƍ7|1wg8Cdpo{U* n9Ev:>хcMC*d4h 谳l@xiܹbc,kvLH/N3wpr *q2IڴPP<&.kg!jS2R"¯Ӑ]I/S2S9-È+VTv5fJaV_}UMxr âu2n.# 4t(ֈSi>Y[ܵ`xVTdˬsKVa{M>s78mKx&CH4vjc썼z5ZգLҭArN]VhSކ ! \[M.pK@@@ilQUf>*5׬I%j!"h@{fgܒ׺D6&3\5VkIM1p̶fa*jX;]G@IS~ƕdaR6LAž@xix0\5mHUW1vCQ=p]KF.8W8mu Ш8;H4)YZ]V܉]jY1/}L1Wꖙ1)LFMe—MqGBO byI/)H~ SmI8$l@o!!*w$6 q[M憩g2^ayR:BتUұmU7c.>ж(Յ/6T#=& %v6:1=s[gJ'OQVlrh"[ RhsTyȶABH <47Q݃QXWRsHڎLLu$Ui*79l62+7qc,=Ux*,dœm +~ղ2)~-0 [XX-dFl]i_ʨE}9:j!)\N.F`TdezWRAemtGFTuP@h 2#7g¹vۦxRl)L2 Ij  BIX(ia^-w>9!aI utt{CGTo2)L=]@8*i jSgZ|+$!Zl\xӾzq2%-P:ulU$wIv)tXݰ"@xi5՘U|xf %16hk.*T&B"xo:Udؤ%SJUn^F ;X椵V8U%[|C@L fd"+Vʄy+raw6in˙kfO5۸ 3\6I&?5 QJIfNkD~ӵ^_.RU'`'@qi"iRRub&}عnP\ٕF׵ln"fғ+4֩ʥ,މT$QƄ2nr_FJK,]k[d;@#~wX7cm%iƙTLs'(V ֬(b&J-D%Hե.G3W#L /X5.RUv)i;1޷$L]^^^YJRRש6O˓n<ؕIĴ[&݋HF'd@@ `᧱ըv\Hl+t*#%&Ѝ1Qn&le[&[ $9hJ6TWM40`!".Xw4f_JY>WZsVRmjt+eQ?&vJ<$]P:! 6~KSk[ҬQ `ʗIѿ>䖌b,?DӫmY%HH[ ձ #m.NH%k'Hb&Rr Z'V_gُwb {N]h r ~.;TWPݶ:A 9=qAheԲĮCl>ikhDwdq<8.Nx:kIJ+ww`mbLvjKae_זRi:E=bKt;6# A&gm))؂gyvm6n蟄-n1׎xL4Pu:f6Q̮BDOUIu7*Okr5eg,(N-ac &x͛W61/bQ TC`uB"CX3Ѷݞ0Hd'0Wܝթ|*~Ie+{ըnNҨ5ü5AdrX^,Sǝ|_IP      #p66e|-*H$Z4ĵֱcs7BVagg2(0V'?-r*ȩ+XE "bwR&];iQ,"?-ƀ= @xZȖfFLw[2F27IbIg'.f&ufx7H jPUJTfG;&vIUKvaݿ}?q/@d?-dua3ѐFF I <*A=I;/vߙ\:{J[΄U>*pKkgGL~@#REdia4F܃cC`x3>:ACSV2wV*K^!3&361HtYᧉ1 }8-JXIw4meLAR[-LbI*Τ&VnRbbXvm]6ݦ9U,&'DH]FժoFmۤm^{Ai-1(od{IR؟ړ*IQLI&'m|>hݠxn(/]7rg B"0F&NsXeL *XGqMe=hXhid:T fTGlďW&G⢺\$!XCUԕaMQ xm@ܼ:4'Pe-`9j#uuğ bEO^4Vk^^RZ2K T Ƙ(\颐l2h 뷵h)!dt^iUyr݌L[(FX+T7wI\N< b1M&7ۙi,*zB|Uq$mm^y^6k.ȃtq ftokvt \!ik=:gMXt52rVU*#%xMk7vR]@ U֖jyAlFu*5M*ŗYu8K%o/>n*2@3)eZj 䈃Q'H8UEd5(\m  ]@xi͝kKELrQ*s!(jAJ̝XA&q!1e60IDl9 ҂uP|nՅ& %t[j7fW 7O7!B;ѨPvs+/3i՞itbXy9c;kddje&5)|) [֔-b2-mg"l t|N K!N4D1;c$@ݟ,MAGndy܍,j1.1Ps/#.tɈkq*n*FX.U5x?.Zjɘqׯ^Jif ϟ/E@ $^eWh 3?;ʕ MyhLEVw|$ڬKLޝ$ֱCI@E*  ^q'\?s|AS֩i@      dӂ 8lճ;t7¶80.  ϶VM&[ϐȨ1ty H~Z$֚1\ì4P: aVnಐ0&jè .K~Zz@@@@@ L O ӊY     ]@$i! LHXD] *|1)JQI:q1T4Q\S_)U@@@BN ;l@@@@@@2Zoulh    6O &̕ⳣO󪩉S uyV6RUY(T3th-dPׁbIhs1&7XUvm72U,=B6!y- ݊TҪenKӶ+;hx퓸Җ @@@@ O3*)lƏW&GytO Yh.C* E 8;O]]ܤ**Fe09^&ɍTrT VEL l|kT UR2Wu4bI,UWXلA@@@ Ɲ+6>ѱJX;,,_˪SYV Xg,W6؋*#gVull+ZHVDB媫EJZJkWnoҁD@9`H d{ [zŴi8IV+Epei9s)ϗ2)umKI`=$ZfF[%0-(0@Jl_ 1#$?qwx^A%⎨@mCu2EYւo0wo)r'O`jZ,qs諜ڮdUdn0M|PlҭW|$]\uR4Oئܚ ~2e8ͤ&?WeB؎@O FŐV c:]=d@{|=41;wO34oIldje&5)|) #<`7dᧉc8!GDCF,X*14d2jJ츰F29χ%c5ע‘, ȖeUaPSdUS4lA, =i]kH@@@%~e6d"n@.H7ƼDHC2L~Z._J 58    Ex|NG~ZR@@@@@ t~?AW:&Y$AA @@@@@ 0=a秱&ƸL'3FQ2yDW͑'WY{^,4@ F~^lINN,ܻӞ4J'ʲLŗL3嬌,QC@@@@&ӌ<4|xKu`mYc<;ʈ9f:_V"#~S"~IlYNoIj`bV2=5o2˄nK%C p39!q٪w&̟pJ TUq`0D"iXkfo0LԏWJ-jE"h6)؁x4bȝuKvN'14̑@$ DF1#bxɵ}#1sMLڈnBm=Yk-x޲1ɘUh#MA,ĂҊEmYz͍5@Lb7آԂJ$U>*j etQ5063U;X{FZqgVZ /cm2%&WOFWyS B+V5:[iVݣQ  u [q{gڴik'=:lbڳ[-V3OXF^L+il86@&J @IQT6wZ&׭֧fuw9u>JDFǪGݮؠ-QU5EE+[;FMȤv׋e6vsMˠk h[UMBmZF'u۳I#iveqX^tbWFh1VLefG{ _ڌ*O׺(N@$ :Y2ڙ u")ƞMGrybIsȗ2֧*Jc ]cK kfݖKayp 7!tۺ)eZ鉒Fɵ#~g#7 XF>p DFNILبDnt `M5M A80X.zub⡱$:R))f *\dBK1K"8NYrW@xI1wms!?2| erMUb~nW^'cƑO`-ĽqKFU|Kv N&FLj|&K(Oj26fD[ ^ӅfO [?#$kZdcR~ á/ٲDڧn/oiim-[yWM fK^tGA[2*dԲ$ rU& %>wxB>&pU ]@iҼΠ0tĮtY[-[ 8"8gcbWIT"Yp3X(&ԍtx΄dE؝(J2wIm*1#Tv8FYL \Fa˨嗧dɛO758pѓjr[n||L@ ^Y3nK?rƋ"qd蛈ڴObZձV ѵG &[`IvFqdSnU|2\l$lܯ["QwN5+>%LUҩ؉t5iDž&6X^*&um\Lmrd 0TZ;tm30k*Ga˅ 錼ZDj[ف3SK MɤOF].j1rIi=ZC@:re^.=؃*,RT(Kg" 9LE6/{"f]і'ÂM@E'Iÿ>`!N~Z @Ge'^%ژX&zOLX<Ϩ3ySeVZ(|f]xQn M2h\@e-4$դ@mצysa1?K_*)~ZsьAwsm)5;A@@:IL<;Y58     D@&&h?-PH4"`3@'#`7?5O蠂A4$w .Oh@ (Aw .Oh@ (HÎ0@@@@BCp\ȻY     E񴈪;c;e+     ]iUyTB;HxRɘ$g?1=1SL[6Kd&IdD{ W͵ʀ"dP{٠Ss}(2rD1=\ s{1O2U⯺5(_ Zء@@@@3@<-zhL|6Jh+,(}6PYB}PUc8_Q2[ڐq#)t~3t-MbDݬ%;3<@@@@@ \ OZj ?rv]lE*8ƍc xc[Y'\DaU^Z=Qqv<}X    BFeR9eºU._X @@@@@ rIϢA@@@@@@Ex?EP     .Ofx <<@@@@@ih      ^O 5      x«>dݯW [j#fmؿ曼N<yɎBz W2#I <הe]1 2-JR|ABr-C@:i_Ղ-P(GIɑMPKtAkվʏ=ĭƣcgXstȁ"n-p@@@G7/GTKdЕj6F5[  iOZc0h@;QYb O xn_iӦ>?P]KUMDLB2J3NJ(JY)HVF޲PTyAaXR-Qay?nTMԨ%HLf}}R CDo2"f`laiu|0d@"iUqv3-Ft't0{nq"*Dt.%dy݊Pvu,M1m%xA;dOQT |~mKfkRQ0a39TZoMbr/:-Fs' ,~9oBX"$G'.TTdtvqP /ŝl4d$$W6KjpƝ8qKHwMϖ*dƦ%EM/ t&ӢhE ̟?31BY@@“3*ʢ}' L Ӹ6-Fli fޒ8͉ԵV^&%R11˄Ȝq2I~Kjֲ]Y@@ HO X 5;|$S`dUh5 [. YF2e +cd 2!gIFm ԧStZ2HbĈy&ury]Z]LQ)1B!CR䠢aIؼI9=X *IvMtkA+tCR D n'QY%ŏ|E[p]cTf?Uߧl0BgB^UFA4ƁZQ4Ci~"jiT_kdŵꔚ oK'A:%iʺUKgi{MK@QhX.ѳ[T77e2 (Qff;*()f_"YyBRzaKJ\F5:|S5Q 2U|䛁Ug?Y;<#6'dZ2L0/ Wn)+iN8^چd4YVWX6-g-D3Uocw򃠟snigfJk"gE h4J Th3w(!uB &JQK=)'S~Zh(3RDZjK)8q]wݵ^{/ON}}з%#aɳˤ}LC mTָ "ӡjF>)tS#<&bզ+Cv!\]2꣞n(}-kj WdvY[I%­DLZ]֟EŦĸ;zquqf8 piNJ>{˹gw6Z⎛@b`P1?Cŧǀc٩hg0I=Ϣmu}|NŌ+bv&08+קoHWcl)ψxPhb1B&iVvmL5=+G.4+Ւlkio,Y>6ձil[|lE6ut1{qMKcm5:!g?6YqC2T}wu*mȒ MR.tdz|Nj&PUF-̦ CX1^P,*T]=32f-55A@g2 @POXMehӏDV-[hi3#[ @858qveڐn,j6p"w'fk ԅ @U qX{ GmWlk.f'VO# @+PONk{DfC25NeީXtV@ @(v'!pwww1Ԩ<-MrBVdYl3>loq^FKOO* @\@W6+Kiˏu{1mc=oF @J$-$9gVF; @O;9N  @8@o= F=(ƣdP @4 @K@=h @  @ @y q<x @\zڵckDZ&3. @PO;a?ͬ"c?}~ K @Ӷ `pwww^j/5Q/0++95V @8Tm9K2A @J҆ \:QYL6h0e٢\% Te IT, Oʴ*VҊSڥ|[Kva &,!- fʽY ˉN'Z @l'V Uv2dNU8,6K3MKF4Lhi8TSkbhإ>Bvj Z,]ᴗm @iXeVG,m?ڷwc!]V}!mUk6U6H4%[0{KSig6lE^ @7VOȼ5ol'ۦXfkgsbq{׸fb\WLLڿb$fk֞ @`*2^Qf+U[jt;?+1[85THH*UX"MŲferlcr`byy^ @7VOk 6| )V.I{eivѡޖjIf'j'ٻxvR  @ZnB)tK^{DbIB}t_evY_4kYVΛM4We+Ct4슻r9FPehO3 @1?{$d{C|=>wwwLjv\zMY#o9^'YɓcR @Ra,){y@$@ @- t%iCVZ.Q:C5hK_  @\vKfWύf` 8H  @ 74 @PORX @X/ @R@=mKͳkt]Vz~ŸA1#c @5ikNܷ|I6BKy`;k* @POi1; /`yR @\zfxJUW,5httJ0iS񗯏"6k_`E7ǎYl-0rb:]|7Z,j_ @$v'aLJf>e;JgT*6, omjrزI%4klVYT ִB4ZJߚjV^8qayF͞ @\@o=-Iكk]K~ IB޷m/ kMš{c^8YrZGo6=Ee]K piטcV2!Ki <-phgxRv-pjdb% 'ݰY6P @![O+uyZ[^+زw?2R @V`}=up~Hs,VJ0hǩboHZ0T$ijm EcpϵpsAy @Lzi2 ][U!@8s8 b @ @;i @zy @ @@=9pDSS?~F5}W' @ A*wU  @izn bw p#V>˦{ÆT|~嶽Jq$sWק:4K5jzFLIw=-nxc%5Lo6kHxZ~[]}D۴\&]S7 Ft2y-iV6۷U:rZ+{\B5 ښè/ piG?Y -/2 8Qc jq$; -m2WʴX[d" @nD@=qbxU-5n\C{5=*-SXLB .ne:+ZCv5Vr8M,'ջq2Z-me0Oz.@G @ wLl-zWI?푡T:m?8qY#J$a)#3,ƩK*-ӷf+Ǚ r}zC# @7.v'!(>z|8n &@mt"L; I  @[J,){p FH @!C+vLD-gw?nnf62 @\vGڮU u k. @N~@ @w 9! @ p^iu! p;i{nyl(@G ܶWi6=ayJTǖf颦B-_ώJ:*3%q;BJ}t?d:٘Ԇqg5 @ m |*+2 )k%{EYqބiږ3:QrYֲx1aleC.Ka!/J]v\+!$MҖjҲybZ8ekˎ^ @m >be]-Ìi]ZF.ɮ) ${Tgg7GR4'^NjP4 @`T@='FVCK Go54NlZ;,}[P+bD!@iG?;w-Z PW2Qv1w\J+ۣV|SX @ӎ-bb+ZCjY9k=.NS+ˉo{|ـfǞntbZnޓoR @ wl-zWI?푡T:m?8qY#J$a)#hu +@cwKdhh @*i=}FypN& MF=zŴ'@l"[OcR`8 B @A`}=M\"@U7>nnf62 @zi%br^l8Zxڇ+S[ |=@_Ge$;]=ׇc0KVղ [6f٥ `eA/;[!@wzϲÍ㽃aSdͲd#vo(+қ7MxF' A6 [e5;rIQ>i8F# W2xnMZYl/)#/dW_MPS.v3-Z~jI qZ}˺[]}w\&]S7Fh޾Mq4k&MCbVb, 㑭< @zOҏraS}w߆khنM 8[UIZi3[|[3x[2-fkLd @m 5ZLwe횋ch&ѕV=G5LwnXTcT pi{`+ZCjY9k=.NS+ˉo-8=+d5_llجWʴm2A @zτ]ULԸ]sq D2ʾBt;U0>֊=  @7%!VҬ:ƙŚ4ֲ}mikcC0ULͻUƼ7?ϓp O"cR @ ]1=劲.ۧ @I@=휎XpgՄ @^@=mc0|N *f“>̕>O_^,]TQ@_Ge$;]+>/_]YlkK|nn< %k%{EYqބiږ3:QrY*ّHڏ԰H1aAe)VzKqkh~ `ti1-isIK @q, >ke]-c~ո˴e2욢qmG{e¥ŷrşeNP_ @IӎΞBQn>,cp 560GEYv\kkLd @c [xfYtw_KjZ&jܮ8k"]iec{Tg2Vt06! @i{W կ4k-qf欱8M,'lo jֻvxC F@=m^_2[KUҏt{d 'N6Nj(k6:Ba}/}qb}+ h;UNi'a7) @]I=8jp'@ @ t%iCVn휱޷{v= @\v`Ho]}$rEN 0% @ @y   @Ӝ @8/:Wͩ}y~ŸONlv64aGn(IDAT @POC{e R]OI  @z!7׾$D @b>tçtPJml{-< \-EMZ $uTfJci?-풾52Y钽#CM5iٴ9e-t @;CC0 PfY\ M蛦mi< G]2њ9L [a4 k+ MZeoYP;wc^L󨩉Blqb t~_GW:*)-[k?i$@ mРꃶ_2̘ոe2욢qH9G{Ɩe_4劕*_ 7=lkFhPOkQZ&c|XWݷ*wwnنM 8\KfqVLZW @diG?%[w-Z PW2Qv1w\J+ۣ -U5[X:mF @R@=mڻ%~YuhqU]35}7gije9eVxX9vSŴͽ] ט pki2[KUҏt{d ՃN6Nj(k6:BaȽIjb}wwwkF@@%gYcL[ @WǤA @ @@E`}=M#p\72޸= @@o=E"p\WGwb @H@=D%@ @zS @%v^C4 @POsQTw>ƼW?ϗO^^ fHFk<[S uetQ~N- @ ! p 9P$@.@@=m4|M *f“>̕>O_^,]TQ@_Ge$;fig R55Nl-atE C$1 @ i>w 7 ҆ag`|L5˒ؽ墬8THoB4mK(9,r oi$GejSe0TXS! 77{'goVǡbAfaz4+[F^LN8ek @L@=mS곶_2̘ո˴e2욢qH0G{LڧH[ٲF{]*%l +W6<"@nK@=;|XTݷ'jla`SC-dqE=8QYYdlʕivyIV]ULԸ]sq D2ʾBtE0N>O @$\~YuhqU]35}7gije9}-ˬ|?{Mz`jCt[*G=2TAgC5N5!qރQ$ 5Eqx¤kEb~S Jt 2[+E^^M @@*v'!}pL> }fqϴTmɒ`d @M+I220ynDȾjv6of# @Yi|tZ|Y"@4g @K@=h @  @ @y hNuc;||OyHC,cK q<|p8ݭI_,wL g-{N@o=-IكYH @ pi+8 ,W~<^sj7  @譧v4魫O] @ mi @l$a @ zF!@ @FiAfLTw>Ƽ?=v};|S @G@=|5D%H]wپwalq:ל @Xiǒ5.MWAn2VV!@L }n q=cC*>b(嶽Jq$sWק:4K5jzvT2Q)E,a[.ٯًikx=ƏwZ #FUۦ"]r ;  @z~'FP;FbudH1J,K6bP! }Ӵ-gth1e%d#O\?Sc=PaMʆ'ֻB:<*!-}YLUmimj8hk,bx!̲1 p3i{2C~YW{0cھoW.Ӗdk!َĭ6(I]}3.X#[k?$@4 5B-oҁBQn>,'[\ѳqf65Hw\ˆ:aʕi1[;ax&@\ze}cXtw_KjZ&jܮ8k"]iec{T-c dBX4d4 @n\@=mwcXJ⪺gknkr[,spLz̥  @;l-zWI?푡T:m?8qY#J$a)#3,~G|eSCq*LF @W`}=OB7pww{ p] %eŢ @ p*$m8i:v%f"1 @\v G  @$K:Zb%@ @n([# @$vIGK @܂zGyN3Yp]d @ piz&îU-FhrmC @iGw @u my% @\z63$ýŴ!Ge2Xi4y+G {irRvt.F# m0 @ܒzڣ=[^%a-]~&hI @ :Fkhqʴ!)7L?Aqh-3n&fkl@ @'>mVjK;Ǫ#@ pCikԾyٺHھ -  @\z6DZ*tb`"!b¦zMP2: ms( @'v'aALJ$ߵbڍCY> @@o=-I @ z:QY^6h0e(73O @zZtP[ӆ%֩*g! ciR:hѹ%)l?, @PO{=Kۏp64 9X`., @FFkh]veZvm堍h} 暝"fk ׅ @ 6r& ->5} b-N-iC @z1kW^!|m=Vuw\ @F@=v([JֿG$\ Q'JUf-8YG皚B@X @Ϟ> 0GU6_k*r͵9  @\@W6 dIكku. @D+I22Ӳm;ٶF#@ 6a< .i k͆ @z @%v^C4 @POs @ @v=53lg4m56[),+ܰ{ɿἆ"@\@=]hr>ǟ 6b4hFqn 崼2 |b.J @@zZ6{ 7RCKwms'F 6 @ !eH ˚ht88}OVE^vLGKWN<-bVRhMUZz9axxRU.KvZrrZ]Ы0H{rD嬈+PSG=|ٿ6k$@L@=v@gxjCTh%B᭐;1)iKKi$uE0G)V)5eA U mM<{LZ*'P9r|C!Z1;m)ؠwtXp.ʼn*e'Fve @@=mއ:kخrz;.0| N٘MeͷD1|_49ivFD+yelHiU=)*f  @ X=mвft`y,r͎2HK-Ul-h{îlg0]w5NKmYuIT%D1[јtn(G V ΰNcFX8X;H ҽe%RԻ9mz;iat@?ïG=T9?VM4#@Ii͇wQ=g;5`*%6{6O+ŕGTʥs|h4'uG樂w}_ie\$~F6lHt]VMwAu_S^-aW1k cCy{Vo ]k D[rz|8nR`YFq/ӆ *xݫCfQ @vzi}L @ @`4y;7:;&""@nNVn~ +Z pqiwL @ ]< @.N@=  @r+?ay;8 I @M@=&[7oR¢  @*+eM?!eB @.N@=mCvbTb6hM{x+>}G6X&ɬMTfh  @d ^H6[S,@zTʔ6KC  iO|Ǐ/6ټ黣 s05o@g7 @5 :eV 6[)9[HfQ/=_6  @M ~Vi -m]-{w>vZdYOlq@ @\zؑ ChUٰ7.[L/کy#m,N^_6"@ (5ެw^= :^4슸Y{^#׋wht @, W{*; é[bOfه6L+CkTՌ @?{$d{GM!bzYr8y @V+UΒFc4 @ܸ@W6dh%5h81[[. @nJ`x( i!HcB]qavXitbc]k6N+_0%@ L`(>F<w_=gv8{nwg3 @ZO2[K7V b͐ ?B-LetZ @?{$|k09p8m7V ^&Й @=Rߒ%eit @ @`7ٱiD @ @`1YR-O[ȽO5Of!@ @.&f-I0_9D}YV/}qtVSuzrZ^gvH?Gc;Ҭ&*G`5.$FҴ!@*\7n\}izžI>TrYAx+ >v}!ʌqiil斂\_HptT&-M'yY-OjYW쌼͞]*óӠ<[ϔteҫOgW^wV^LGMHycUz 93/'3<-$Pw[\?E}8dwC!2e~ױ :%@qWogC2={ˇg8a_}1~k{~ph e8e-{eM @ 0"0B%ϋJg_~>L|7nڴrbV޻b$O I__|/>~3{/ioє55BiF @SEk:gˏG;M҆Y<~x/-}m||}p}ڛ}ھCnu/ @xqx$o>>3? m>1<~~}}Ddj @W/7O_ 9_TYGDyf&iCU~'gW~͗_bx|[~gs>{tޛ#ƚf?|1 _:igv"  @b'/]ه_>^{mK㷀.5~\^OGٍMҚOo~?OWʿ?_|OG_7_7Rǘ 2 70  @[Z~b|\/m~ҁ gӾC;?Yw?o}ݗK޿Vgr'u @8SV-ފa3 fGgr*IZi^ʿoGGS{?]mG{?W^A @w=pnmyŘ @iiElg|8F?=>{jF @yZm1f5& @^ӆ  @}9" @?2$DIENDB`ný~L*EPNG  IHDRsRGB pHYsjWIDATx^E{fs$ "`Fy|̞ީgb 3(&vE9NZwfg{^Vu{ [6p07rc'     У mƑUዥ>};\{ʊ:}S_ƞ=|:8if#g#w;w}aISW!eNzȘJ,ŏ]ݑ=/xBH? QZ5:+%@:RYp$)t >-Gd"BuhF++xZIjn1$}^XgH>G1wu>,M#{}O584'ѳ_ #Sz밆t#ON>@ (-߭DI*y bjخ3 3Qsk<vRfH;#)#MRRZ3f(,,;PyO|M=-7J5֧9If uv <}3Ÿ#DX7p!X%}r#i g3{a=*n#m8)4+D7GUw"Ass6]΀΀ĆPPX`17QR` NE|ukh׹ #}Wu˗/|2@q(PFx8nOijs]-,餋>i7Xfvr(ʹK^v+}p,E_>;J;NKW_yϿ?>\   s0BX_) EgmOr_MX>6%kJw?Я_ &=]/ĂSXXw 4kŒ1tQ̱\邏%IZ)%80z;O2Yߋ)pө3q$1s2B_*<׺VOiw!TKOͲ( ]T9w"O͛` PYn X,t)-m{ٲ \O_)4F- S(q@ꈛ^A[X| m-{n~3Oca؇q7<ɗ=W?bn?V0byt0g o]oG[>JWHgLUr+r ,,{)ÁSY Her?in`N!A'xt~+.y>/ E3NU* PbrHna+EaX`敯ӕ_߹/k_ᗷ+'^/o]?ooߢ+௜rr+,>pڵ߿z}>w8:ȋ^ӿBs|ҥ>Kϼ}Wq֍ҿ߼pM}g $#WdËUru|-ESkvGG:=enf /k5P0;4͛0a4u8O`h n}{GʈHy")ӄ'@^AvcPO ;힀g+`Acpwv-yg<1njQp3f'@'0 pM{NQE<A ?Q:⶟u='0 w؇ѧ?& 0O`OI6 ܀qG'];m:ᬧ, L07 8 `yRp@@BhX-d 8A:) @V=/&&bz($ <:(&< )e'J`*_#O&@4fz_6 B. #Nnw ~0,, <(&]~Y'0pL x/o]>oS*d=)2@Ju.nC1:e t B?zZyH`Ƿ/\BH E:   DiB%8XMm:gM" ?)Z3p(1xE,2>ӄGFXdiB9O,2΀`,2NiQB/_j3gv)+%K$%_z4,2g hJ9BlG:8; :r(m@'7Vϯz?2мEᦢ4S2b`f 9Bl7.?iB` 3I)$f Z-GTL%Z@."(@@tn3GD+u2'ooܸoEN' $'1Zԣ [Ҿۃ_CLӄ5l T5lkQJ{b6SHf@EMZ-@ʁU3ػ:QL2iBak.}NuCڗ.|NCg6˽y/Ib 4!vJҚ;"Dhظ:- _tצXٍ+>Sǖ x}?G`Kh[< Z-@o0^.l0*[μ½T`;X*f I' )!=j6M,t5zl0[9k_lKlXC>M  (UA@@ d3Y"ۀHLzE*D~7!J7<OkjN& w}"n $k_1,^0cCуܖ2jEh+Ya?@ FaGt7!#͢(vyk3@,ھD(lrm&BDIf>ҥ$iI;.,> ď#.VwK?~;҆6.fX`nBI c޾d]:.؊I"={D@w[/Q!o znBFnBJٕvRtH$ Z-΀l|ylt Nz6]93NGt9S[^ؠr? eg@6>Z:--΀GOyԯH4kZpt tMEK @Lyьv2uh K/FH-XL4!ojI384е#O9A#6gtĴ*dH-Ū'#d 6_^:vn;3w$")hp0S40^g35vzbv} 4<0ۣgP w7˃5 #)wyPwDA]% >oS3g@ziMvt;|G#ڝdH19Zf#ѽ93D t}-Ԋ@u@Q     ]F-)f.u:(@@@@@ xWS!}` @@@@@ Cpwyq *     ^p*KKd3/OHp\/~rҜuהYc2 # ؛b,\M.g¡-Wo/ҚC" A@@@@ P\b-v3Y8pk~ۛ?olWTQpپo=R΀G@@@@H`\39 ,.tYѶnjZs맾_1[=[Tg`Ըc#8"ݻ`6S0ޭځ&i(\Dgspf9\&t9"cq"kpd3@bkIKkJ\a^ߥa^zA@ud    U%QZ3n#g7mF!2g4 8ࢬ}xTe*dzTfb|izZȪ-A3A 8 e 󍮩d3;KK?.cl1r9\ܸ7/7FrQ1c9O̼,z\6G 4 cA"?jJQ(& D@"^RuD*5@(:wv;m7_cg6ֶS@:ݞ@300ɳ9B3g@o4Ώ[{H~_I)7MVRx+RM^}/ZJL4a   $jq>4zuS憘hEΖ+gJ # ?F Μ詆9x| \OYlP,%ETAO!+߉bw0r@@@@ RS"܇fZN@eӡ5}XAڬ${AySV95g{\MeHWt0G܋V`5UF/m#sZ[f3c$/isMN?pX:tro}zRe8tP_L3G (Z/B?K \!R,Z(v AnjmY-ٴiDs)mŶc2+=^0@EG}hE3Ņ24̗8+B^uT) HPjt-&j@t!&{+"V8zxncPl!.EܫsF{쪑c'oݸ2/z<>    ݏUd{Xz@NP*,-8e=}s" E95&zI""a{O'- N)- :h.TRZ4it'.W6Pm-* <:(     1nBZc    H@a_:     J}#:rS j.(   e0MR1ؤGf7Ţ'qk*Sk$%xTffimQ 9nKϟֽ+y݋LݽUsbhtQSdq,ԏC@7 &3PƴfY;"wzYat646765[̖Vr ԘC%Aj!LNI <ⲴCnfӯO 5tR:[Y#W^{osҠG^Mͽ3,׶ ,\DBbRbBbÒi2(.2RMs:2`jYֶ6#bbuE/"7`ވ#%u%9dبCroꋕG$$'Ec0EKqeEWꑰzS;O9Y#7-xwۉӶ~{ߜBBGO}H  $Ӛrk|DN:׾<]ulF#sOW GU5[ﮩkHJNӧ`Ȑ!YƈȪ޳ll<^?A`0111񉉉I I)IitL{\Һ ה<;U8~ѐ7 ZqIv0ixҚqsODɿ$O`۾nUw>'DH ݎ@{1o#_,Uݕm{+Zw՘ט6%/.C8c_b<{ ej?`vgӘ=9 )[*{`#R g:Y]ލe+vD*J93۹V;gq&I8Sic]u\b36֭}K ƵfjL|2V'O5:\k3W]p8n)G/]UcSsOau)99᣻'PS6tW7:?ǼVp™.{Wز˚|. x@It ~~r{Ijmmg`}5~r#}"M*M{*մs:gtZkEQ};C %$ݛ'MCФ ڽ;%B\h@'@1ggB NoB\C*h)s?8fl!Cwݞ@nOtp6hm嚛gB,CboVVH׫߀tksm%pi\|"S ]c-Ƶٚ ʆ;p'oL{t㓬[J{k-,a$swݡ⃥>6U'Яvř\IF9eK~By}W;B>H٣\&idpYqQ,ZN[QT͢hhj{/]j'-ZƇ_pl\e:h}X ݞ3po#^n64j[ݺ;."qLu2Q [ܼbi(㫨7XHHH۷/F4?)9yh'@3Wn޴XRo|gg_E*_~8y!?R1 DE3@ٯgm|zŒovnҩf2kG˨up_q&.&KJҸL.3\lot~IJ@!"q~CU~vwƏt\ٰkM#^u^~M͖~ǟgU}VDXl?S۷*u;d=96uWc^˽L<imlxuE Q4oZu< nScڛ1oE&1RqrLuߪG2YhԸc$4O@VVkԐ))) U-pdy]1gY1[9eMP@-JPk1]T~'ktTN4@ :xd;;ҥKK-Xki.5KJRdr "gj"g4pQQIɔ>}6=b'kl +Qy}S,RzAxSs)-P.mɕSoNre+:̳i!6mz kHJ=冈OG+cUlO_\õ?SQ孩VUʌ+/.)oýiƉf5h$ڻnO;cc"zg&E@um*?SKo|  A@3Ҧ'PFn&kUn'kGZbfr.GJr1Ҳ88@va7FEGVZ+L{a '^r?Y)4`@Ģw8*?WAܮ ~TQxmT'@W7}̃oՙN}6/=7IN1R<CԠVKRq+f؜vy%v-u%~X}ARDEVpe1ڭET$KmG+hEX,.~3kWE>ܰ 6~vEv \*Aw]N\Ѧ19>bw;R^'4i옿!qa1ou or8vKvzk>d䄴>b{0#jl¬J#yimGatc2y^҄򷩗_ɍG]bsEFG'a$갓n`2,---~wwj@uMۡ4_b5oٺnEs+V-a^ {UaʾY I)~hCI  ԜWӮH#PwP'[V;Z.GfqMe+L-V3p&pݧ9?|.ڽDB t`dy_ܓ+l}8}$=vyY44$Nb@E,'Dٱ>ASq BTD65&_% >[D]TC\W/osMM~*vdQ- s" 0gBW hj7rnƒz 郿#9.K&?s'̹fmOg߶L9\w#/|y}{aOEJ~LzR|z\\Sc/'O}:%wzk~ڵgqb,gJJf}[iR6Ɩ?1gm1yG)M}eIv,jߔZ"dY_j+߻`hkjv-mk:BǷ-ۅ|¢.lWuKZ3Vav# V%rUW> {H.]#  jV,ː@XGyZwbvwNL0m[\Bdi iXlCk5FzOE+i WLuZJk ͨ\,mz '@՝xeȽ3F3w/r|sw9\yM|썢1rQzO_^{W?Vq8\\ Js4q;izkxWts嚅ojyIwl4b h}dǧFs45Lr4)*zkRspj*WM2lmmIK]WG8-7}i234N6|ќ4vNAdFj6UСC-Z6z[4u3􂑖6{YEV>h֓O=N=ٓgΞ8}iG7[W=M(PFģƧ]0dx~w؎s' MNא͜6yĔ{3#[)A@ 8@J8+w "T`3}- Kj6\魓B^:FjٿBKEzQV2rz-M҄q33esѫ݄?Tu_,_;whrj&N wR?2<]bMu[;6%[cuڳL<P6Yϰ"{~˲HkfWj,Z'oٳ͋N4x4k=șJg[ H% \Yk5m嚶[մuwY% WwQM޹z:'Krdƹ m>X0lOÆ}cOKVSfI,n?>?Ϡ͍ێ7JTz/Z:,n86/:>yt;]a,˝5UMVkDRuFS9qu:wPM5irssi1q=Z,ݻ71>&'Ac+W'з׏R/Lr?$#}?+8.H=*h;7xmmY[UeVk1ᏼCHLukE[ZMv;-/޾~z  D7849 ،ȚNLe)g5L+i-`J]Jh?#N| +T>i8'`koaۧ'<\T[G}q߁>l otiz4Yl2'RȲJs<КNSi u[j6ۃ=#oݾ|פ "O$9338ES}-`Wt;&@F/ٷ5sRqKy t<=KZ%\7Ϩ#b w=5457޽;)#mkoiy[4DƦ܌*b"Oϟvp3ª_75nYY;)z޼~+66)0fSBcϜ斘tz Y{D9b'@8uֲ2z$fPv=`)W_3λy]6Ky4_?aYg% U+G~Tmwf.J ŗU ok I>g2J|d'Ҁ@O TGi6]myw_*~=K>'֭`ӄZlIƎTP2[J/0`B4mK~kjܓA[ [2bT п[7VI sNbcdӿ e)@y}?2}daFkˎ2{(4?δU#2پNUQ^}.^o!OWd!k#l5,iMb":woU}߶'GYrG=eh=/O G_%|i-߲7EĻ=iBfmX =>BĊ_ $/WQrb$Nmvb"#"5C cٱ ƞ}OfL;zիx73}~IyUmTTwْtfď]0U8C^9nEO]pܜUB>͜]2^3233)@пBټy Ohcz-E)2tޞ;xG6;gΙ}ìtGC՝vO;zFnyƦf PȌV NN,2@FCtAvH|  3[J "`Xѫds^w?7A 304Y8ON<Kjjjb(..&O:̄0OksBMEQ;? P 4/1[3@c*iVFw2~}ydA 4y >m#c6Mw{w?7;6?֘|V'S<OY6Z봹 p[/.W=G&MY7Lk~Ϟe;v8P[brYl5u-7ֆc&<;[UMM}[vVzĝ| Dg:e<1꬗bs|,W;=OSpsnٶ8h||\|tLexw]ѕ;F^*@I^{YHe}mff~CCmb.7OI9zQ 2,࣓ >oJƆu"Q zF?@4B5k(#''-۷ m۶bzB%2@_-{xC9s~}c8a?9kcgAk;U7=ͽqs[{:͵륥b2:|Ӄi@@T:9}"sk9غ㉍W#An|A&BDNF.VvjO~#jEa^f$'0 ,c% O`ڵ' O >..:x$FwU'?Kܲ&ӯ,=J~%v;Ȁ;~f?muEsD /߽-*)ꌈ4deGgdt|-{*_6YVma}mVʈ?>tM:|5IU<5UESLu-5U[)2`6۬VScc\EV</-s{]BasmMyaҀhP[@L?Z~9{[ڢ% }` M{_WXv| !K@ktu[To~51bYjm~hƍ<f1aZ=ܿo1GEUW\466o-itK\NJ}>Sll3sq˱zt/X #zv[4 PO 㳓8hiqݕc89];mzO}2]p<}E-o =k 3\ [6V6\]ўmji۾:kΝWˤI $4-,M=d)EƍSj~4^cqyA/=IKha[s6 u'px^K0=k0OF/plu[U3j6['`h5@}h_-@{]$bljؿ~e0NRbd~IdӒl ;WwXuû6;ssZRS0|㧺A..bʽq:^ \ MkH&p3=6nɻsE#+5&̟K,͖Sij5[6ZJzf踲#{ep^4@/ '@ 4;O:&v"7A'N! hӡǍ>24۸Ҫ߼ sKRjꠜuG_?6\73K xO=b` lmtmt]&d'5Y!ۈ Kbh/?:6;H}]G_hv+LnYtr8&pd޿i6 q~[ \1;F},&Q.C>XٸM94t @JkΨXR]: a9øPkӆM &%s3p}}3g$sM6wL`otRy^c2ڽ zM댋9 \]'sr))J^. 9sK@iFVh0M0`@FFE,Dw}U/=NSk8[V~|IK귶 ɎE=gϊ;ؿڇ{̀USc~\I͵H$쎌ڪC;iVkK;^D /ݿ_{WT(GR۫h7Ri۴YKV4ӛiԿ}Y1=iu&}PKSӛ pCC˺Wp<3ހ{ϋkq[-m[v//1߉4dwzmE{u6T[6'͈ʨs"a7k{s;w}o/OGh@(r hjŋմ .ѥ/>gU5r0ީso}ꘌX X?%+p9rgR</ư#ifnO8"_n#/p+Ϯy8C{wYr[p0 n%c-YYY`f6#-fsN:_p{ߌBp޹F grx@5S]$øP_[y}eO6":6ˑZE-eGϺyjZ{eV:wc<5>lMtʐ]t.5`/!>|oDF:]|74&ψjaiuX5K:/EhV[Is>nvn6DK]^JΉorؾ}ʕ4l!1}x ZdL i:"YE0'$Q(ʗ7;5qzRӳ'C t=RpsC{mG @ojj^ff:f?@ʴhKs37vt yӽ3OI3>:]C -ݮ |Ƅ|Mfd&3(ꪦ&2Z]͕5)hm[Jv?I]Si}E}Ǐ--M _2nooI9Gߛ/n߶ݻ}d \\ղo zAfZOّڛf(Z[UU|qcX*yWlųܯЦ!z-渔dWj JLpI_W5Z+f OOzO1}~NKsoD%:u*=5r:IIh5o;`ؙ|;vm4=?sۿhLw:--/=w+obo;͍-{Pȗ5Wgr iT  n8"2झ?NW7,ytpR|d4j R9,1w?٭'(MiINg yc]}=%^2QU7/=vf܆۪.`7"'@/9ii/g{Դжoȡ=cz{',K@weEE5gĚCh~>zvH KOI[&].2*MrC7Rd`4eQ}̜H*)^=>cf(xQ_d'3pW܇gHblw0Jha@]}{)D3 ; +,  Uʚq%KUT*<`i_ 6%Mƞw}Oӥ,_?ccd.1'{w'݋ oQljӻOFzRdD׻$UR {ȄwO*Kx{egʦ37</n_<=gё/&Z'@)</:'ed;;'t Med0uI3L|T>)qA# &++/M  : `I'($ >U˛J 7Eb@@k(@@@@zՂ     ~')~H{     h_t95(     xC6A}kH෭ELZq(@@@@ 4 c#N [GFFffNMϢw+M{Gw~{]meu!;2?e@aadA@h6 % oh}uVkn9lVh0`p&\NmYof^LVEف g vZu9!@@@@h_ϩ2o<#+I3!o؜òd90mMO;ONRnvbzko\A%L3@U>}aK, f    3 P|@T'So4FFؿaq (AjӊzRK34S '^@@@fksl4oag}V괙6{n"ǀn w C?w_HuR٬"yC>hil074YhfrI/.촘fdUN;9QQ\/-V17~3߷&J-T̙3N2h@/t0:0B'Y\j$2=*i!TZztw6Z,vN4[\3?9UK~6q6d1XC3zg|~52޵mn/Fj[']_U??_I%2C}9i KEBLg+BTGa}ejV_SPl@D.j*i,)o*ooetL5DX-QV gF9C,B}$-HYL7gMwٺֽK?ηX~.JT(cѼ@%*e.Bo!GDbA@@4 y8l/QA\pǔO;.fXVj7RNxe=@ T*tQPE΀lI"IHyoy'A(A6\Z3]"w7R:pIyu11Ҍ.ҷm撽)॑ = ΢\?eꩋK:T/RTZGl)@FJ~Ez" o Qhi- MŸӹ.p7zE~¿J>#V%P7z>GTYfy^Oab;7΀.+lBHPN4?b'w?}ZΛ?/[oNRd 7/>3֣<32r2E`&=Y#̢TJ =7@Y|SU'[(H    W~Octm(/4.2":Me};p|ѴOKM]~b4A@DdnTizS</#^Ke$ iJYS~erV@Sz(Y@@@`>מ?}vYu''|>sxy_4p*;:(roڑ.lxdw8xo +:J##6ZQ]{Ztp&NEI'iJE!)DҶlrt;8987}Nn笴Hh~Rd He/"%MU;Kt^Tʨdi." zi,Ev"^HIᘷ.>J+GT 8wL @@zZ0vVcvt9lpoƀoF@ l!OM\MCZJK}ln1rdz 4 Zx}T****,,$}zK.>BY?@ɮ*i-o/J0Ё)EyXvџz>rT>S Yp.>:Q1e[GR<*J_MXhၨҖB䶂    Pu}AⳏIӕc#c#= H: f M6wYlV?k5o3D{??;YA_9"/Y| DZI'ڦ‹4)K@%#o2 Je*́!(Y]%_RR S!mQՔ S^¦"U~A)   CP(d7l4}F:vg93<פ{c"61h}fo~?ɂxU-cK bA@@Nj]TVSNeO|}j6Xirp:! s=:{ϣ>3%t C3Ut4MhĘI#Um4D#Mr澓sb[m~ j((`uXgsO4!N΀ξd    O`ƌ))f O~IkE/*)4p#gU.ڀeu\+a:._\_Rnb4qXgO=҃t?đٽ3rd+tt81uuhP@^jr?HnA s{)\zȏ @@@@z&3Lk֢2ӄzfS     н g Q{j4&)'oc}MJDA    |™KcX%[,rk6J.!ݜ st Gwƣnӧd‡~xۦ5~W uK] 7@@g:޼gCMvy"(趀|B +rӾ`׍Nb  HwV*Mq @uu?:9_0 ݏ=F'eyWQk勯 {^U)}3\2N9aC47,]ʫo}BCclMMKmjjLؘ̖U5vKJJJIN߷5-%u8!ѼkϮ蘘(jY,fR0 #%6 2ko& )))Fg JL@]C5VV FhrzeN9z|zjJSF"ګsTWRݶC,:6+],K,j]ð8`uߓ~9LmMO.yv??X-YNΙDG-->!%>69 ƖG;UH%`2*\g_驳N:&3~FDG|C}r¸ ̠5M,/S0b؀Tƈtl6+H ۽#A>YqqqF6lؐ!C teȑ0 &6Mg޵{7B_a4z$<x' 4 'Wߏ3 ʵk,_U[wvYqI|-%F 5~7,\55jHcck?{g~>$S>!6..*6-2S.w_%  ?r{ʄߗm9d!)_5Xn?Yavpiꝛ{݃2!!199yС4Q@'в޽skjjikk}& u#W.$/8.-- .$@OYޥ tTъnR DEEuZ9Sq;<}ƌ)SV]x_AS2"=E w4 /nbT AJfs[ܷߛJ܆ͧtܨw?Ylb7NZ] "{荁Lhj p촓׬]Oy^~+W|ݏo֝{rXU54Mdld]`yznzJbZCG 4 --j~;vPxDVa^L/'RkSڕ+W¢B|'PL&;##Ba/uQqƍE{.MHիQbbKK)VZ^E~zgWJ@ g`ކK}UNLT^C~!'k7mbV|;StK- tOzrIs\5ox\{ܑǹwk*Ɩhm{L\=#<ۯ;3hp8pBp @֖ SH "o"?IPߘiWnϾX )I1;?79o߾3Z^zpu?='%%%ϾҘa}oxQ4co^2eބ^3N79Mm%o!*ec57Z<pGT{2@@s'|pn)uPHh >-/-#^' fMVSy|'ً0hѦֶxgzo;w޷NM-uȁ0Uj1x`>EEh#9Zj6AWL+(O~OyINLJHϠQs,Y(I:xQj5r(,@?UYg_E2Њ 'lL<d2p{ٝi;b$% ϨGz=3PY6*ҜVcS)w=9.?֖U3b2I z:*ҍPW^mGu5S.UJjj [Zr"7._fyÝFCpV~RmnHC)#ih FE~A(9C:*>¿;lHȡK:'k_Y^xԴIqߌ7u׮]}Um+ޓh1ʢ>0m s+YƉtck'4*Ǫvn/s}EnWڱ|ۖWQj flKW4G0SgWdk_ ?8|(NLNNMO"LOM9w%mu)L4Mv͆mG_}M+L4^s6ԩ=̲>4Jdimڴi~gK#&lهz[p\*Dd/D=eAgq&<(, Ted=bAhqϾv=dG$zpWC%eDDGHڋfS [%!յY즕3 Aq$$%$ҴCA'K&#B{ gPSfEcDUښsʜgң ̘|̎C%gZYc".D%4V,۾mCqd2>>f=q:j]{4l2GI| W^̽"ē*)!>2#=NÞlѡM )E@jEy7 ~æfzR%QrР7ڎu┄WL_^\5}eMM!5KZZak's˭YmԨ16r~~,i/|$RpɥGD;:Āܴ)+2)uת4kH\ /)4 '*WAӅ),@ , 7\묨m޼}Gtf:FTuSk4 ႘cvb0V=)qt͌T[PW=7U=[D]RYJO<8sJ`jMn5 -: D#fkCc#MtrO DmAPGL+ $ {Φ GͮMAvg5u5.#G#>dKLis*յ8~nN||Jy%Y+ZԻYS9 qeۘk[k)fve)_y TrRQC_Q}XGh@:Rv~$n.$ =TrD)Z[薦r"4Y˯;M{޶}7=^y/l plmͱ֐Џ&ҵ=Yלf,^ݢE -[n=pGB|,yHLi} s|-q~7̬:>]-4!u;5* t養?w^~3RrӢ<(J223ݱ_ΚQLVٔ $N+;4$';aHej͋ہfdg$ӮQƤ)Q1cǟͅ|97I`3YE(P8Z"i+*o:ڻw/ |^Ph"ܶ&?$9]ZDd~MsĮYܳIAk' ңh {jMAn>XJ w5Ȕt N7Xu|l$D4r֪?6ׯ?P˿^?h3"7m)S[m6.1%Zw_ QMf.51+ո)%{JMV=qD,26ԘXWgvb攩 #*G\-㌵Wo44_7[Y4"lExwH$`]#O4J~oa.,//oj-]>\D\DI1_oV48p _nݹM_%[.д-qQkIVYsjߜF_/޲<@>DQ>2ZC{/L$ ',pMj#ܛ& hRjZ^ c'hFGK'["L˅-;52Kf)ؿY4Ch_R ~-bh /LffzfFC{B4RNR SB@PˢShֿGK mC3 @!iBlP=?V_8MH?=z yUMO&\u3}ASfԔd'@*DJV( QSd"% `rR 1>~Eg?@ C@.9##"݌@}l 302?vd2WdKGlJGe;8u;d1eKjOee}Q'_a1&m9yv׵ľ,>yˑ)e|BBMf^Mܻ#pJ.oxUTu{~g~ܳ8s1M)5KO==R)VN7|Rr4~c$0{?:ٷX{ Q#i(A7 kc˒+Jٽ͋Qw{@u7+HѬ dyݱkoMY_S/Y})116rRL6UQ[4nĄ8a_>.d wٴepT9ŋeY(2fz3 {WSA(:~zT6oauN @E>b ⒃饇JZZZݢ!ZS[TdT]}C\^n/5r@o?aj}m;ظy_kcyoUlm;{Qλ,jW >^wk^Vo8xulyt͵߭jx ,)q=%qg}/W s҃o}ye }ܞpeu>p VꯤyӒQ%MF39}W?gizΘ^PNg@^2;V5}QQWW{gtK7G_,(E?& v}{k8g^/#bvZM1MlJe 3p?/)LE:fa1䉧^lk3|RSO,g`ᗟ6P:\Q1$3\u%gnC+ 4:,qܦ=?nZ8_ɖ_߽s<,驒[\OK2g|O~i:Ǩ\^yo-ݏS|ZJI[b mt+ί&7 4- 8tР&z g 2"2bƈTU_vW΀4!,gim&H8n]'j47߯:輧çz_57g}iQu <O ЎCPpݻ_~;qʌ ?S'@ ϰ&bʆƶȶҌObWE>?K^ V/Xsr̴kЫ/,(0eʶdeY/SV>2*.))䘸㏷O>g½j^?rn`zg{\Oڿe0m3a'p6U?B.6叓fx# '`w-c TyfhRĿtVSKҫSҲ32SiekPL h՚3&2V̻ړ7ǙTC.:ȆB>fb>K9D Z fOVO6E E\;O髥Wgfd6xP:]CNxEӄ"D7?Q09tFj3ׯ_P?~|Bgo (Fon0FU^BIgەL؍-E8ee+H~Q Gc,F{QôN^W4Be~P<{DG{v@ '5QòLiB pB9BJj( A#*ӄ%=~jyM^'4d((8n. @&5ӄԣd!F h?ġVq`W' }6:  D T 1@ Ъ^9}j+CJ+(   %*ӄ[+H    =xP>     =BRz T@@@@z.p7<1j'$/>MR 3PXXؓ     Y:IH     jh_ϩ.8֠@@@@< @SI@#)t'pSk.     8BRN tD]@@@@z:²\ t6MhB@?gGT@@@@{Zz8ݣQ MO}@rԡѝ6d_=g۴/*    $Ȁ?iBÖ h.HiZdPTTTXXF     3 g0Cv>& ̞Z=3fxT8Bb]`#KUbsf t[ /|w @dKHj'ǚRvvztXGe!1h4& e΀w֘&&p*pM;2xJ+LnR| N;ث{@ kd@h-uxQψ Y`jOEo+@&p m\YE+a"̫V&p"X$\:-J tk>@v[Xw)7ns|h Rs6+ċR*jc@vnC <"quMߊ}J4#D(\h"LaV}M:4/Ԗ WUAFw +;7OXzE'[4Kث]WAH    zzd@ B,&&-H~*m#+DhjV~Ozh*摐 pL;fp DJB:2 P M);ERhX\HeSR8ʈ VJ}x!    < RIP =Ct:+κ87Q }xg_.R@!P!2Qςo2wDTSOzޣBńu~ ϗK    tdo0s:pLZv z_"LA*Mg-D=ͥ^uO<=(cJ4#T+p|@@@@@G3@tEO>0guQZ((oZRmEE rTxуfHI,NgElɖ.(mDE],+f& J/]^=#2&H     p xT1$i7D}A@@zDzN[wz=-sA@@@@@"     C 2CD@@@@@@d $~~׾JAQ" U^жU)T h}$K!ydyXȉD/>ꦔ]`}}6VS*ST J =-(=_S Y\Nw*Z"Mn_5~aZ.-,  t*nLw(u-\GafP_V ;b*#Ue)UPxr}ɏƺG*%VG:K6l|U{x/ !  ݆@w 0}1QM@-?AXqGfUo)M[ 2kěJu4H߻ O8{zw$m  A ]"\ i;׼"c@OGDDJGy!^dYw$,KA8~SJ l~&4S5V EJn&/Bp'Ѝ"h ᰼l2!ሜPmyQSޚ7&V} VjiJ2%"&".x˿4!i*U0~2^_&Q5e:j&4snHH =@w E*"5uZdJe(KYvVR%UW]X@X;)IDLD ~)5ӝT؊Ty|QED_tUMݟTRCfHlit\:}0$Z]"h`-,V(+hTHAӪ@0ȴQ@@d dVT4E7Q$p&ʜ \Ղ?_JH8@d,! @@@@Š"a\P@@@@GY ge!@@@@ 2&$k?)@@@@@ 3y.;1g    o02WWJ,#l%񥈪y    =@ 0[YYP=}EAt](G e%˪Y{&_b#!+5YFa i    c vd@SpQ4@̪ؖf6}RlAO]r!1B;2 zѩ;zg_餝F|0k@    K #v=cҙHG[| lX\ ±EEE]MbQ`^+=)13ĥfPXWO¬W+ªu!a     mxPE9~o^!+ NP @)"Yu     ^&kygAX @7 id@ZPz@@K h @@@@  2j-}@@@@@ Hh    FPk    A"Ȁh?V,HMULk)_3V Ծpw];#R+U*B֢ /CSOq{Y   Lv$Q+kz\,ʮTM*kY}wir R;YNYbSV7v]Q2@ 2ЁmɟFgZ@ o>ȜݻJbL ޵ r@h蹑tSl@6BgC)"A:)i%J+P%O+`#ʗ"=o%|)҄"KK9FIJ>ۋxE"P[Fu>H%=E0,aoY9ұs\JxeXq*]H]u0yBWY|^L  ~ #GKh0h h" E鼎H(edMZx]4oRiFVs>.,ҎwaGَǏ qѰ@M$)L iWfW(/L>+3үDxzyZ %e}hQe\x#@@ϊ xJMˤyQ)4v_2V« KBB\`3(}=UC(M$^d6Uʮ{Qbzt-"5Bbu$K@hoG=4GO^axQZzz>ZޢQ/KkmNRJ#) " H[M4JYb:? MPFKG6Ҁt-nAo[e-*l#2gPzFO"}+Ν0Ru0C,uW^~|J)kb,EzYtENHЋB׈⫩>u`-@@O[DtcQ aKG.J-p:#h9QIuSOs OtiB>UL93I3k4"zIJUتLj4 -u&%e k_'a @=bA@=lKHOI* )W),0/S]+=EḪTe=24^l&FkoK`Ol8BYB Mj!:*iGUUN 7O !@MȀaˆU̥ |0|\nuͤ%,C]D@"Q,<8o]H><rjMC+4*v.)UT:@B ,fCNWr{`LX\L.n  aF0k0     "ȀHBD¬.""^˥TM %MP(7o4M |P(   " x%8<=55_s&*WOiU@hյƟ.g|85Hvxx"@@d Zx@@ 7p>+:ESn;XgH   A&Ȁ6p2 4.+XW>/e4dBdc*ǫ( HGERՑɖ. lF|QnB);tۗF^YG-VAFN> 4,_vٿ]~%RQ*GEJJd+iHe^/aTj}7ֳUH2ܢf {(4<   xKt3ow7c78ҰGNy|PQEf)^$` 9SzJuW26| tCg@ 葠@܃@+@^}a޸^Tm)/G   BkdfְP:]]cŸ]Sm~D#zW)8 / ȷ&*PQIXE=͢5E_y:Gh", 55kM|>@&ȀZJy#4zִd,5 SsB)*]i]Z5%B֢P᩿VoMَټk,F@@@K0Rb&*EEE]R/ /J ,B!;, J@x7\@4(@@@@8]|^4Kq"o. ihn(  ]JȀTY8]ڀ^?^L]L A@@ 2@@@@@ $]&@7T@@dLo27k |TGSf_NҕZ]vJtW! Gl ש"w S;;=άAedzPF- M%E)_fYƓtj*l/t@@ d-ꝵ!/P Ǧ   jn2Il%WJ&mK+-(+Y!K/+A+Ti]E|騿&VSD/ZXk,l5:d!(dEHJ+^MtW^Ui   !#ܖ h<>}:aD q=^\Ϣ?DYzR*J(AV(SV%Ea.B^WH) _SYʋZK=,uW~ߏAZӊ/B5ܻk7x  !N7IOR˿{t e.@,da2,4,G%>z(@(MݺPkAs6.5+E^'Rum-̢>  J| tCg@^9G}xD=>ꯒWɼ!דW Z нգn   Dkd(%1C\vXȿT+_UQJ~(]xT{]\@3va 5m-]Qd@d@xm4&x+zs3jͯP꜡TtW\@ 2SݼadP.nم tV\BZX{CsT/wSZfQݕݘ:UO xDȀ3 ^⢢B@G @΢dYP!f5,JG# @G     < * g1T}T=DjNDi5@VH3kh[@@X3,$U' n簒 T=k3kxD"A@@@@  2A@@@@ Tp @8Rg}z5k&i@wyi9 VSf_@T/!/8D4gE> /MX$S#D- D]ehH  ݚnˆU:K>8}t'ǹu'.VtEE+p**%R5Y}TTfD 0!nR២We.#Oɋd: Sx(xv}4Asޒ'}-b6M/vGaL=4=4uB!QԣRE~RAxݲ9ImTzw}ϻny# ;#g(/ғWOQr%Kv^dg}Dr;I@W m< H  Kkd΋gL3ݨ|NVrn.6^k     ȃ [O +"Q xj/e^E4,Q/JH  ݕ"j-+k17?E\_~ʇp״R=:'jP^uISqش~@i?/VwA߈n+Jދ6Mw}^   -%fR_/.***,,ԯR /̲* 3,yQbu/j,   < y˿. F     8z8k5:g uUUEjN >E ,6Mɠ85F6>]ّG5 ̣HOamYm0$@6T@d!@@@@"ahP@@@@A;4MPeF5#}Q yA@@@k 2m[tmSQ—^nk$ʮtM*l5Ҵk&V    4 Q _ޗğ#/Q@*3oN oF ; q}8RYPTIMVLUTB\#e"~Kj$[kpB=42L@z?Q°)1P$ *<"J 0R51]"\idXKЅ     Ѕz\d@ <iz}QyiXZQO #JS.@u@@@[Yh߮#sltv#4ٽΨ)%=% ӋdKE^dp$г"2!&$2gPzFO"}+, 5Z2@xYj !Ұt[iɬ_\EzPQIuSOs c^,    ЅzVds8;SsR(f )W),0/S]+=EḪTe=24^eWhR$| lX\ ´EEE/| }W z`% #      < ֱ;8 !=LWVr`B2B 䐕m@@@z8Dzx@A@@@z.Dznۣ    ="=    =@ϊ awxf&>D\yN C     @ ts0̯g"!@ t3dG땆S_ JE|A|) x'B    IEeL/GL 3ZսР&^fyYɲ.VYyBkJ'2.¥e*Fby9 B p <    $2  [WZY|_[SGix\H     3 tȀdtNv#><ҵjt M"ZiL7p?Dt&RgIi@@@@BÖ KA\⢢®3&K`^U=)13ĥfPXWO¬W+v-v    v<v"? . NwUJ&<"RTe@Y3 KDaO M@&id@ F^2%F    Ѕyd ɢhq xA=DErA@@@@ th~|sY7#"^$c]tz)@@@@@}d plGxjG) _}Fp,{UJ,JT:dpJҔ4TRAJUӤRʀ@xD!KoDL`/ONtQh  tD 5 [@F.An*   B #Jn@*Kz]ìȻz K    vB:2  V 0kzAsr]ihBh @@@@1 x:59E]r*x5񖮪2! @JZٜ|BezH+v @@@@Ö Â>l[C,uDy\@B]4_j4sY )%B_ D@&@42-9<7 T      *B0zW*rt-<rv3 z@D     |_3@X{sQFv"     N ,#hT 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 2;CH$@X6 wƌ~QB@@@@@Of 9|XV78o2    ~#@aS08~k"g ڂJ"g ڂ Z",=5ID     ?T<m47PoW    z( {g@X0 3 A@@@@@'h48:"hNh      @ B&Ö h!JI @q    =dd@v>& 複d     Zf̘B΀m     !K@-2C@@4!=@@@@@ M( l    x~΃/C:=񥍐/MI3 \@LQn6s$[fFz\\_tp5/@:u>vb(-dvUV3S[􉏊e+@D 5 1w]9<='~cn -!@@@@ 44[\B)Y][j*n'%7mɎJm6{ע'k  n8%;F:Y0pgVzrAA@@@ !1pþmN<21u̠Z6B3p+yG_/ܶ@}}`TSM1l;}1ZipDWqmjq\t|ktpygr-kJX[|y/uh̃&])_cbc7*@'@U_3v]' P~&h    44 ]IPx$(Eְ) $ B\p0a7 *!N=ںz5ͤowթSTuO[`:dz/cΞ9@@@@5Yfp M5춛5 T@@@@ #"59"c.$ACbx~n6:o㯁=jk`ql0lc'OcQiPQpCi+\M!-h&mu{TJj      !"#$%&'()+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~{Ўh!<{T{;|'(H@ u-.u:E4_A9z^+zR^ydfJW% \kdw^ Qĥϼ =iT7y2pGȁ5rЎu;o1u wgʉ<(vztX `&:.[.r\U3u"|h Gl{T (im({&PbJ<4f2~;T3 K&84$('r"&̌xLjl 4lvݠ>[!^}3r"JΥcn59~7SAM6C(xg s/7xJWs!}2q<0h6"5OOH1݋ _~-LIc[nf{QvFo|;1mftGHw뾫:yęd&sJf$y{d7nd_gԦ-)R.fu55|35MG$CnZxWw'S/Ȼ_\|+2^g,\t'~2?[7kRޑ}]K1#|~K_?YkMv=*\&IGN%heJ? -W}͛"ɧ9SnHwN)߰VlwFF>izSʿ݇qGo=ޯ5Չ?x??̦t#`__w,`e#=V|gRw41P;h9)E;61k,|\ӏRBzЉ7Ut:1Xpnڷb.9l&I2C5C &?O?Ln8ױ>g!ˎ}2qռ;}z:$wyS(|\wA"%}{mw-._<7Irg)nS:EgFez2OHD3="jOcԽ)'hr&IM]Bj>ugƥz)ut>겁:* &?3 f#s:9%=wGa~^e9v~귯xÉA]HOֺ5Q i_]:dȁ_Q<_ Sw>߰'N~x _ږ>}q9`ژ>~cz=OI^|??s0@/n;DAQDI;@8OMLM_dS8 jl\-iOP͢o:c%h,}[N$II6l 2$g?m\QI.d_s3'^y }:W~\^ )Wik,iygO(dowTSJF%/?KMK릍Uq#<9J)^uD>O}%3$(iad~V*W~>IJI;}l^iΧ5흿}Z9=H,+R FW/b)Y‚R[gO9⧼g#.gf\~ެD>Vr/|)'\ې_{!+R*YOmrpSA ڙ%I N:p>͞:xd)^i=7S2ґq<5#EiaU'|d$hH"=w_3'J$q'JB$%UlF07n6dPrEc{䀎{Sd9dٹ{($,#_Pu-s蓶9DVeF{DQ]wmfoKq>J,{8Mb,(M;O"hcLα:q;$%#|n|tmڐ[|$Im?osyn"i~.{wOR=Ϛ &ܿ-b=&%j{IIW~dk򃟞GsH3flO>fHH_yWmHG8/\+)J0 .?Sxm_~'%PiÓ?;}_9+?KOGvyȏis`$/O.9ud!(l2sIĉ4~{$7K|ȟA9$IRR&{NeaR&=7'L)<9:[OwSӥQ&c>?1O$N'@Gɹ"1?~{9)HN#KIz@g-?7~8'L6 H0)% a'Xt$K}^uM)fHv%R:$"SVFSqYVڸAeٔ;GNte!%ʏIGj)W]KRr\x򠎜΋OY&}!#/:aPYFx6]=i~XD+m DJ~ȟ)I{HGHDV~[6iTx3?q"ܴ cܼH&:oΡFryH㯦6>"ё|)SxH-%ID?ny&1^ SLK^~'i gqh;YM&<{rz xg2Ϙٓ΅H~H &i$t!7#O?s{S8y1u/JUϛpiu¡gIy'G(%A<}vF͕ЌIfOdNjNx7=ӝ&9Byisܧ~ed=8y{ AY锔H{ n7IET1pco2}l}@Jx=~YqMy9YY7qyM^K8lRxreVޭ$olg] |QFMp'L6y>O OW5 }CyzBLTU-4X͡5_w'@-:[r|n1Gp'@s!D:CX "y"fvWy~Gœor(zuE]ye_g^NF^p{lZbTS37]+soR &}nE֗$_Vט7_`5Y5mǁɖI~8;I3 JZ80\" 510З"D3dޟNqN=N}J[ݲUia~~'r[7[CM&K՟&g͚e=ˊsJU_jOs`7JҔoxGؗV}q֪w?I ط_wC߹gPc#Z! M0~15| a' G,7ko|4HC1 h!Ң#M*\UޞH&J;p^)%%c5ΕAMT!׼7J% s7@^V59gTdw t?9qAMy{AMJE˫byOo\ȧ[+)+ aVI Q@- 7YK@ s9C+Oͧ8Q$~5KIZQL1=o/-¹H} "mT o!> QꛩCo6*j Y}PvΈ3JP VH A@@@U|y[?+W["y;Z!(F{kr;3t+u~5B铅ڨM~|v' Ѱ;_c܏ Qs!WO>>xg's]%LYVHgܸq|AE4{~wv}'߹ &aU BQ<+e"6]} uܙ"B䰻']y)j!eI˴i/^+@@@@#?ZT`ڴqW\L-n%2ouX*d Y9ۮjܛg۪} Z#Όht`Mظ>G&?3fg42FRu$`:]bM[Yn>f1zO$dm~^Rnt-i Xd"%ƣ.8yצD4΍emzm3xfRfvQhƟ-@@:;Z3ݘ193?>5S'Xzeu梣bR.mIL|i?r?VT{$++*j};$+.+`/.F˝up>@(yȑWEk硇ΈMҟbg̉PD%yFM5 PSP%EyeSQ:E%\z ԑH٦ c'Es)8o5Gu|Y쀥gM+[ =:A~1m3IiQ-(% vʖطi$BټN{/D(iW13j ^Qv RMxŋz:\kmZggpc!'hvԩSi16HPҚl'c['Ch>AikG_9kH p$ieīȬSSWyǟo5[ɟZAQZ$ejAܵVK"iA)RđVG|i6k}y%Y[# G#`Pb҅y+ZGv8ِwݖɘ{ﺍWzO)U )i,rϟy͡7H .w,(=\ޟﻃSI)QIWїK,,VёYq(ڑ6.^ Aw󊙔LN;,Zu{m0ϼ[B:>(G%zr~cd4F &ܙfMl&9;1҈M"%Ve鍸ckʕ#)H)KIbG"u2kA5L_::)3a|f9$I]o˅ k  H025*ee7I >}:ek#wkϟJ#,~5%84P#݁ S`RF&7A8}zc2?g\N=:,Xq=dY噔K'lddihdAύ"(yWVƟ<]W{l6fItI^YAf jqxx M"x~.ޓ#=O䕕 'Pr{Oᰂn钼o*Q¡9 Íq=1ҝ*;JF͛'.3gξ{kRԈJ6CCXN#Iu"onɋovkE- k,s9EXomIyDd6*wx BHp:Zpesm}͛z9JNwHM&w}Wdz=q*!z~>Y$gDp1|:F6R*):AGow@1YnJ,j^]nTF Xnw..s ۈGJ}&cn}F7O:jQBycz)7vos;[壽Gp wR5'%`f2qr&E΢BgB^5 K1tM>h"BΣlmM~!E|.@n_} uܙ|.r.[ l?vM&SMiA|fIGzDz1A)MNjŐ@@@@I@OrAeSR6HZN9aG%/7yb%I74~ @6oDݎEXkDFm,' \vh"-sVE<꛿Oj"BXB>:~,=Y}KjAE&[ L6pJCH\|kZE-ҾUVE[67w,x.^WڷP*sYܷƃ۝vl߹v;s?õj2@@@@̑#V^$@ol]y)\@ lAvnm+C{x")0bJfh"S;6_szG!%3t+$ @o)Y)I`H78Z$ VfG{v񲨽5/WW,t1zA"WqruV{ Coɕ2   +2 h. jRTD`S8s:.i֬Y9cƌ Y[kwU?vqѽy͟)'?KeJ*7 '==iӦM;FZ|yxO__ϤQ/_G[C _Cv5g[y+sQʼn#9rQ4cSA <K?3DM}&kTG} ɕ+Dw ٝ:T?ǍWӛ6.Ujm w|^n{[6֤M9;/wJ ;Azk|2%Fݲe˘*~k^9?쳴ϻロ>7xpc;uCE$]/ݻVU+/d%иI&e*iTb֗7(/?J΀K[NϢo-5S{O.؞r˔|(7]LkxHƂ4- ɞٳTunYX9p'1Trj qquוSv r{y65l- jUo{FIʳꪫK/HZ唞[ҕ~Oy!3g]8 Mު)S#ĦQ= Sӧ/V)Y'Tu}$xvO?*N JC…pz=B ;W;s^n>p=R~;vǀSESݱ>t$zsMZ|O?@,T-H -ˢo' _Չ}-XN}]gr9#g7#+7ݙ[}Oovt_z0;O_>c#IҐcC%^ O6Kߴ)uTɕNA/ BWE8cԩ7?@%r.#t'r~b '&OMIhanr|ҡI$DN雟h´q f|ƌ0\S|)3aa$]OjkFS8_xF +R@ tKΞ=V&RTbØlϚuErvYFV[U~,e\ O$E@亴 e?[o:Y)'BZj0}ulB 6g6٪ޞ\'hhcqk>OQorMk%yQIRd "N;0Sa K6Q@/NrsPT㵯}-'BB}믿> eqa?m]H6oKLtd$)=S%#tU`N zJn. UinA|ŊD[$ G(Cru:oZ!)}nvӧNnw+w?N:Ů2WCcm-n5[ꁷF@qqM?yZwylidsz^C Yʄ㌦?IPk&/nN,]QwɋHI:E \TWksҙөBu_vMC`ԡv񵫯9%ڸbB!ɾyt CƄqmoiAwsgd8Ns oSοWgy<$]ָ.j>6l&W׾>CW4jƚ|o4fIls|v.FT2 I&r L6y_vwÙS֚$I{??;9RYP#d,%A톶j|IBR=u"0WhӔk%7@Q(Rl9)걬QވRb۲B2 {~qR-M~1 '-گNyׯNԁ}5[{sN11!d\7'"q iEς)PdgL\"|۝4b9Rbzg>xHA[߁Xəf4z^IHFLi?9~xH6)OSW(-4͗tl@ }JnYro_ɉǼ$p~7_λ?Dq ~|5_O|Ӽk񟼟m%+č: 'iOvĔ)X)jVIc5 Sg[*>0M+HoΜQT%ٹskCE>q;G7&p#5x-[ MIL"s.Y&Mb_? o\>W1)Y$-$}ι&i&2L/H&Ȧa>`_ҐTVx?P /y^P.ZN]w5~k_w;{5nN}éu_xs`aXzhŊu̇ZH$=MY:MTԾ_=k4 ]џwuSЄK^y#8G{}ZlȱPK[&!sV,=Rf%M[ey={-Nk 2Ŝ$(k6Y9HS"۟3gs%+< j/0S>یokA1s{[GȂn=]V#Xzc]_ϔX<<9)ijN9V<m'{lKҶs8P$No=d%1Kjad'8fq;Od4Dk2BEM2"%mMɶCH|6"poztv ;dG_^TМ/:h8%`~Yg[]C'UR>g])€3~7I <k{ ޓPNzS117?L4׸K6|t gPRGy1?OuΕ 49oJ?=-D5"?eM^l 5De̽9(ԟS}XY7PYNІ˸ROc5?gM5Iף >$Ӳ1'19Fx,YIx磏<4MI'ӟFJWl2ҧ/ޟGrMiG7sH+H}|0lJuxj:MJ< P4J;Y(Rr0F ovI2*>}n,ۉ_Z/h#!hṉ]ic7pCS;ۺaf7: uv~˴##+l#[&x"1tK$d++}%cxBA HqGҟؤ2 y荑4#xCݙ jG96)4WNg vt<ݸ%v(*=mMb^&rJ{,!^DQ7†[G=N y-|/aOZv=ʮ3$ @n DNu:zYGh OZ Y6e"ǡ P냉gOhgt^tڦk> !R7څL_f9q饗Sn&tC;ONɘ Hk&ͦ2ܹ ~IPU`COXGrZǍu'")B O`4x{o= &2OS4=ll`ǮxUo2|Ӣ9 G}λɩa` '1aC|S͆Ke#|饗&sL߻oK\..n]i11kʭɨi!b Ӣ'ѢG2]Cmjo1Hus\SzB{FdI1cЅ8/']EocO~-iKI_tρ'%O38ü<*H`_9;5V@/Əv@x|vo왳b2M|]1'MI$(_yeKx]c݉dllwoLGk`W2-%H0ϖ$HR&=~ HF- JFss΢:ciiKi,N5}xH!,iƚ ;+OXBsU\HQz;p{%4ii/8 ;K!R'Ch,Ͻ"\x1~ӇW0m`Ɵ"0DM0,cZS_W{'N'$1~'&i{d\h[mNX|r4yEtSOl|3Y}Ί5-^Fҗ<㐯գ%4F>cO'I {Ӎ0؄vZ{93 MVۜWH܍Cadn[Cc=S}[lBa~| o[_eu2)oU?l>heb7**/wYtO2&J%+?N/y8iDM6ƈ> }XrTL? z72is>H~KjNoFÜRωI;>zd“ !Y͟Kb4/MzК6^]N9zg͡?qlRCPD HjZ$]Hŋ5lu/|iHIݓ-Pcq5* .,S|>ȵKW7A K~x12o{ -tuz'YJʫv|g O%\t趷%t}cRϛ \{+;qp47IZ^5@.u1[/&rwĈF>V\IN~UOUAG-[w5fF$~⟙N$qҲVN5ER'z6+_ 3ޙۖǯ*lt5N†H٣ ]e_w; - 'ǜIvw+?:yw?:d?uKi>xgONl.d1 X'0(%}g&:/)Oj-;ȥPy–IM.OB*8/{NF/Q,p{9q/[v]&5[R){$M_eUr%&m M.7p;l HG44ګ#I8y_I&5߁ʯ&_|2Rt$vrïvq{\@:q^LCb7j}> 5 5GM>z=MOkf҃ tݸ_pG{uD3 &>5Ko;_`0#BF;b{/uG" :^ax#)0# }-f'cC RWEm=wiυ7O>aJ`)͏ꔖb?}> &3tvB @HާpwFX^.TC۵[-wsge5;* ?ǻopM_35U8Pж~m2EF>ٶ~vi59H4t8#@*ol)FKIji <aJ`dsǫe)Tj@+PGOߠֱ"0M P'xuԅ8 Q+_1@H~ge׹7un @KeVc#A p 9,-Vбrӯ/T,jVk3 B4D'fe3C^h !ozMXu\GC3f̠OFoojm(K='ivP"q6e[D١ۥX|ܸq}})3)#)ʒ˨z\yv%Y=+oɤH2 8#/ꪫRƗ^z}}wN$i_.D?BYp-[5;^!%ݷ{9C͛73_3gŴqg]^8hev5ؖoe$FNV"[<? 1'?"}m*n o~~9(ICZfO3W,̙3iS'LQ }Mxbc3S%kɻdg{$8yVN0'Ad"NRZ$qSYў"y5$-$qz@_8xY2 ʻx$Z{YJv3̉rQu٦ o=oW^zp7UҎxQxrK@i(1絇m >tA>7B׻gE)'d&)%.4jNO@*u\5^{եa\Yy๷˼)clAWO6a9l5ퟳxI-@ߪF:C9>}R=#7(+_m}=G Ug@E[o=g׾ƙ}>BD]w]>$Ou|+3*JaC.5y8,ͦ#Qqa1Y9v䬤Yi7Cr.#.{$0T:@vtO+EݎCNglɟkm2"q &QaU  [8C;oY&'>ēҫ(}=lrK#}=#Ǎc,yr^w#SfAL7|.UaY#15;7 KPI?3d=K%7m; syկy-%f5uێD9{PN?>'6ڰ$%5)ο`pX[IIO~’vPYt7sO;9M!{|JEۧ:Io3ˆ3l6a-Λ2e޺Jѹv٣6X={6s_yiu칯 ^]@hC$PlxdriM3 a7M|Xvd\Sv H_f;5{2uBJb(T (Y[8zVsUHTc#]}́Qi{Id(yuatIYx1]Yg~WRcdy4I N|W.>ۗn_ڡr] $GIJHc,茤&TIoUKI e$dZHĄ}a x$3_prY&z}|c)9u|4-9'%|ij 57pslFl2 SFYA)x}׻Ed.5VmMrT's}v,@ y苼ry?isd#l\_|!ƚU2{?).I㈦<W~g]*vl:6!ܧb@*rIIu)@`mSNr5^÷d_JQI0J.HB8EФIs$"yd.y?PYI}W,%:?CAO@dp DkM'IRrniO[1yq(LɈ#s=$eO m>s!(DGk_ɒd)IGS u78* 8$vm Yop)hw'rsٴMW<n+H&RIIJ&xw6w<_ =4 ͌b$}c>< )6@I|{'畗_r͛+%=5:\tT޸֊ᕶ)c (/1j>vFuw&页s|땺;/W˧=WNCvh'M;y飲'$t֟^3n:yʩi>yFrʗA9.'_d/w1Ɠ74ݭorlv\d#\SJ[J #iRfב]VUieȟpi$(ϧ~ /#LrP 1J!CjG43' .цX?.\O䵔AxԔڇL}Sim@WSrߏ?:o [nf@2ДnV\9gLnIIZV>à5a@Izx.Qqٴʟ/s456+\`5M#q:y:$620;j:`ApvgPb1|?)vw Nx%_ѷ޾L|` h[$otTZ#-8OF޸ھK%r2ˢd]kZ,k2{VJܴ1W2y&鶝㎝+3rwgݯoF<$q(=!,6H^~[o5M)I܁>Cʌ} ʤ5|;-m\ FLf, $Jʴ,sV*Gm!S`4uJ;6_ý_>LJd_ClE5 UK!g$(ka@I c_^guyLn!t_@?~Vʩ|N^93Lq mKC`cw&5nᬋWUq~U1F`>LRYG^|Gߚq)*{ :2 )pþ$R"5"If)F*=v-pDS-A Υ=j[gOyWKx0@ -_|1%'a)kIQOBtKevRb鞩}ZәtD%9698؝If2~uōo>N.)85!`&§&}yn7-xaA)wκ`ݶ[R']M ܓR 0LT>Íw>%xӚɷ$Ի%8,D2iҸ}2)ܲ|41>+> =)͔<4NޛS+IɇzHm&:17s$Gw7vGvvQɩSR;l)Kz6YSS6g]RGfCk2LjM޶MRom96yU4%{1fBHQv~w޹0E<'O^<5`sLYP:#(X@yO,=p\scƐpnQIґs9}3=%=7 ^iL`z9:*Λ^1\vFý3xϗه''R.9ĜGiA|4oIC'3 \Iܫo?/YL51Ϭ$JrӃ3J=3H6MA锒2-eIқ'{=8⬓9bӒ!=hۦ|m7+MGbK*b>˃vxbsz+:}lzo}Ç!i0b䐼:f6#gO^|d6⋓j qo˜T lȑr78m_H󲇝 P#C^WfՒr|2<o\JpuMo|f 8 dה";wm?;moM8㽿bOO)>B}=G~H~uuwaȳ,b ڠɀopBmo$ 8ґ/Ͽt`~$?v#ڤ[o@-k&)QɆs>= ן߱0y#bmDlfVBWE~\DI򭑗4os'Yx*o\2GKQI;TםPoЅi8OTl Yϯ=Gғdv0ʡ~x7ۋmMf8 ]_,ҾX]mP#W]mUWm2C7ܳ4[+v8䧟㑕IϹx%IO Ӽm7X #}Í-JFywӥsouxݓ1mI$$Yoov1򬤪u\냳L~ꩊw5荒e 5nґ+_|_I.J$(54ECc%m0յy|"Y#ꕯϼsQ4tS(1R$\ik6F|X9KIyS_ܹ;Yod|G?}SГcaYU'mz`&TT gIƽ?j'k(LyO}$e J2j/u\=2vd*o!59cy$_eUp%F3H %+ 7ܸ,fw>}k'fK#QMƟ+EXj j2K_|:s#6H H27jYY n22|t35_!R THPHbd.ܶ~ƫ&?#6e*çopM߽ŘLW]D!R*Ex ' 59O$/!|'$կ.H  Pߖ㬬pZ>}j 6RPpu*Ҿ?Ў^ ]IA@@@%vztW MҮ}`X2AA@@@\w!59ZEYE:xkʱNZxr~  -'p/R{|-w LUz&eˇZ˄SNx]s   p/=wO~8KGXeU78ۤ/Dû}ⴓ͔A@@@!5풕I;e魿Ϛ ;bwnh[zu{l]v۫6kE`8򟅬U @.!59T|-S_6cqLf l j#{G' M"E#o cN?~CX_ޓj*f*}-򡕷CXK_|fpj>Ki(js:R`@@~rc hHM$/\"=A{̺}wVgv}3vn[.K~1e{?E%e痦|*7;J$-dA +='~Qt /ZD%]8  O;Qhё$}|4G5j&YGr.3D{w6;%32r.n[5ϔ>H goY-,&M^$qW_= כ7m_Gy,l6+"5K?8_)'LgEd}..8Lc^3Cz p@V# C#.|}_O;IJЇSzic?WږCz?i/diwL5 ኰ)R\+rZ䣏롟|2msQ=<\Vo;Hdb_2KNAgaFNS!z[A3ND:U  m'@*3#ffA)SiQaU.NA;)0I4MIFruġ>4ZiwI d?o}] mM}sf$.%NvY>J/[ˑ3fӃdƵNMRT2 H4b=66 o(YuJN;;ǷSI2.ר$U6ҐA:Oqɇ.Q2/4q,ԉm?$rJf[PeFCZUVV[McǎՁIz[I^F?mb>,6 o{g ˦$}B]q][[Cl_IG'W3*A5E;}FZПNٶS{' dC>E+I[PKʶsO,S,H+uIթ&;A@?s!|UMBY(AdM4M%%0yW9#pFng~؁8l))7S2;.~,QڠFgrβB`\zN9Ÿ;Ṣ IT2}emַ7SG6+91>wGe$יJi8R.+s71mŮ^x|+uc8dFc#]H%0u~ |EfMy!nZ}Gֿ~>e9Bȇ'>W>S:y"|%Rl=Te)Y@+qƮgZ$IIڿ{? mﵗqƸJgŊLVie-ٖЂ[f6}璭&ftR9Ћʺ7zJ |iJ@(O Ĵ[#s%ok{sۧul<)bi?uzh=rΥ םW8LlkGqMK'ۜB=d\ ]vRM6d+`qY5)}lu'*tE>o@@R ~wCWWx"59w\Iz5%mo#IDJz:O Y/lqZz磌%T^~?4W~ƻK_HJ& z^M)mpzXqw/R7u)!_;+QAnf9!&#=w^zF8o]}/K1#  Ó}|HMuT*,M?vt|u~Ĭk]\}XzslHM1,N駟*L?3ή8̂ Nɐ;k>Mi0w~B{rz(3o ۞F6#YnEj#M;nb5mC'ݑ\XOoKM 5M{EܧjW6fsob5ˮ)2t3fmϕOM>3mW-zǨwQ_tW&O:T&u<\I5>)6 Rċc:WS5ԓVPY9ſٻ޵I5 ﵕorg$F;)dR*,R3=S?D盆-LT@@E`՗ofy׬^guv36ۘT#u5)C#)*ɢP9Nw?9d7b)iς";@m6:5-m;=G$ׂ.14$=},HJ-% 5#,A@@J$p?[$utʩOܾC<ܳSgV&yrƬF2;6 5Yb)h9o!% 5χ,X.Hkb{HM> 2kp[\-"EJ4HZiW~5}F`"4 2@.އ%Fvz{L{z583_T$)S87tLdɋ~vOu;ÐMVd9{%GY   PM>}W"~pO Aw$AIi)ix5ʁ9pF*fv   Yꭶz59;ZUj o/_1#yK֎|jPe-[[7+/Yd_ KIcWז?L !@ n硑N?aUWˬ2ӭN;HHw\QH6ɸS8slsFfA2k~<#g=~E pA- ~0S)&Z֟)TJaO9nUVȹ^;nԇEiRb59cFH%Ɏ]L]U#p㍿ jތsϮ&zʜ#VY* A@@@J$p 7Cjۅf5yG5Yb[tn.GMp7 ޝWox     P]wp59#ȁ_e    I`]uoȣ&i:p@@@@<2vO=rfz4͍4^MyK    F]HMog׶=dp @@@jEta?2=UMV:x/@@@@(F<2d+e@-P2ut5w@FV^'92Y O|W1Ƥ r@jtd[${╶#u^"h ZP,A@@b&??y$(c! @jYL룕 {虏J7HoȐ):u>CIc'lmrilqpkj:G@Sgag?R/}YW@@@+ -([&ݖEJf̛dnbT6   ]L@|r.#`j2|'%UoOդH$   - KMFo5O|lڸgWӃؤs̙-#_SW\vt4|L-2ATh0R$Ϝ;O|i'ґ"6VYfL]#d    :d:xaS;vlL%@@@@ ȅ'F#Y! 42f"鎡4    U(BFV|5IYAdx8yӽ^?Gv]Z,aRAQvvp-g߮Q`DNS;3AWgϘa@@j_*K%5]lSÚ.N"YݡҥSe?[M 䉮WnPFLgdelщ5-R1gbY2_!ԟCM\^\Jx]"r Ӥ7HMUdN z  0jMB6V) , rK=(&Y)❲G Jt)<&謎gq] g"ᢂ'Q و9cMUZUP46ٝPqr$HoW$}BE^*ܨY5HR"ԓ@#RI?8tdK@/WzJo6 fֻhhk2g."PzR+daLCn`j*{8-wTұ)K,|Z^*}$kwHԈ4Ci@@*QZJ_\,r˗=G.&avڔh` !Ed{µym@j|ȁ+́Y萩u7 ҃@&k.% 7R߫bҗ&T|L5uFCH}ùⴖ !C$jۈ6 @:@j AJ=m (^ko]W9|lY7vr>haKϥZˆkm ;SKV FNo| In;.~>w@qK%jNp2T^%K_,/rm[+ĸ!)5~Ucm[.oŴOR;rzfhd4d GWD5(, $n`4ALJPIwk]oD1u4  m `II5yh|EohѣeEVt'FB3U? 2͚>ޙidu2>*;͖[#˗\\  ET&8Ta8׈ukj%* 7R!퐞.(՚3h aʗ>Ĩj..grFw#2ec}$&C-Jf7)Bύ*ND-kx?^7AJ(YMnN~;r;~,wkg5og-w2=/9cd9m&gb*mb,Ĥ]5g| &᪠sdMd5ɯ4ik"%Ɉiz[݊| Sդ"E*DE|4zY3Y ˵H+FdE9gY@YJV䖼\\%岭跗l2:GZT9gZ=wlx+R阑ޗ.ݦ]*aMmVCE9(R6sl\O2샳E|'Kk  JVzeQUΪk[9b-C@@*%5Y)BG!    P vIS:Iz |H!R5NE{Ԋbj8   FR&[b0lK M[hS,em*kƬK]V#N'i'bV'҃@EMAJX= ]$N w*j׀-G+w9j'Yhc(k+   Ic2&?~!bjF$D5ixPuRƔ5^#5Har9]u.YgZ2 mڬ 8#^cW,;#v3]$6lj?} D!g5}@@&dqJC},rɗ+GGqV'Ptm<k YՃ@KddWz+<:Ρd.EW_֚($5R?RS_Y@@@VJVc>TskK/o(EE3ii!|Z|Hup|ySf%   )JVTm+3^*-QJ g-¥룙3dP*Tjx#V 726ieh t$ j2 L2v'ɫxdܾƵqsdtp}Fn  JV啞d*4REWPJ&":$g rxBYEڌ't$aEjQo=ҭ|zVU/W'M#0NS/w@噂z,N) Rs:4h [}EH5ʼnA端.H烔   Az޺dv9pU5ٸ*GjfΜY;8fr1dJS֤ɲdrA@@>~a& I 9w6ϧz|܉I4@͵cup]ula@@ZOj̛/By Us 64?mq P$@@M֬AtɎj.8    m%`d5)?ʟq"H8)mRAK 2kLߛ"){8~)O7Tk\Q33FI}P2ZMg49jT5}%$>G.եp7`W"4G_-VJ,b$ ZPIdۀv4p'@\5*%/67"^L9`XiqgDhp8^C6N9TJϠ;=_>uJ>h9ZIev)JIJ.gfb[vո4R7`$\֗h1|438ync4hO^Tκ݀:yJݻ  O|5)S' w(k^5lMۜ#3(FٹhN FPSLJ8ndR"ut֔x|LHIGeTaϚ^|{j$+Yv⅜WT2%Sn7Pu9Fj^g/b= nH&5E(@jRMVhFۼ8V>|z3arHy#ՁHEL',DcCb<`9\Z&7rVR@1SKj&,x16n8k}" N`%xPZj EF(@j0¢Ip^LT#oKFz )7_C35kY-K)J..x?}f}Q(۲OP)Z@u^ Z'PCnt 5'PlKmEԎ)6#k%kK\.ҥƨ I~FrW;Y-:j 3a,7ZnW+ A@JV*8%YB[+5)WVoo FzHQ]CR@vYŤ Kh;F*(Sd$"@!lKI-7{K˰gH  8doOԠl閧pdԻRj!*NӶ`xe ՙ  rӷ:U!5=r WcUC9k3F7'@} :n |];D]_ư]\^kߙI+[  @[nl ]5q]IM.Jօ9sL[xر,n8ɵRMڭc&RKm,܊ : & h R}%2$)xٜ>yIrɧN+KGJ`&&[ԇ@&S1xR=`Z0w[-n)=[á-@d4bU`+H݊j8Ա[dTa@@@ Ҩ'TA|5iNw~l+1{t;Fbpļ'VxR^Yϓ|rهbh.&lɌs5d&P Rk&~Őz)Z[Rzr] VjUdqZr>kZiq$Pԥ7#d B kS?A@T&SAJ})ڧCPpbkG VבE)6ˇ rH,x)RmވG=;&0%C0RI-RӈNcԂU;l ^>UNIu8צv]Hjn_o1:a{ {q.ĎUI ھ<@ I:)%UUϴu^Am1ۼJui!`6ՠ93Jcy/Iۘ$0RJ2}o7&hWJBחoG'N5ӂs]ah#g|uS+hcAw= |E䉼s519&@ RZe$TI:YuHҮH%=a4>ٚiM& 8ρ $ؔzFj)ٗ>2.|;4np}Sk]\+ [-s|FbJmhM/%͹Rk*]Lh-t,́?Me}ib4CrY@@I|5Yi$ҮHmgX`Q/ %hJٓTkVd6!'V1j#G;p73q&#e6l5.ZVk})+-@V;g:d"PT|)%CeɅbKUϘI5[.d)͈yIcHF$l$̲i>k-^NHg+byA@,&} m6Cjk8U 2ֲeV}V!zQ]CRt YŤ c -q|eʕ)q|[G 0iv)K珳L!툔 Ü@j_3ɋ yW:5"/?nu)= Fz%`JuZ4+EdM_b@lqU!=rDT̝X}Y]FqZpN pM}~ ̧^a ,D63{j^g{§LfٔPEJwKFzm7Q΅n+Y̙3mYcǶ,ɌTY=5<5g  '/l!I3OR4ēN8aWdAb@@[@M{Bi8^ YlGfcP.!*l0X8>êQY&(ejr~ u(ZwTNjr(@@@d7.   (YM끌ꮼ(@@@@JV,h)dK}Ga    &Plo aM*5O,kҨ<t#t2Su`2SF$,Mvx     OTLƳCJ&@@@@hiDN(_MOpw   &    Ej ΂@@M֬AtɎj.8    5#5Y;    QW> ^Z̡wV/hoH<iW۸L-|֕5U;$B7/1-]44+yu$Gi(Nꪑ l<NҤVe JV:;˵J)5}EYaNjAJVƆCj+rdK9K4j*ޯK"U6 n"Pn^'pZ[81GCraenQm%Wj(SFMFX!0`:!ǴWqJ   %Λ /CTIIT/լ 9ٹ,H؇LZЕQ@[&R# fK%QNvxRƯ?=v7vtsX|6`x&SGN`ۙ8tnoB   &^5]&3 aLF !2.Uj8yV@@@s t͜#efadfUovz]"K4@YY hU;o$m$h+0I&On {Z6K򶇹َTȵ:v<,`Oqr&lɏA@@2Ko]2znXm\_.ϙ3gVVzQcǎ-jA@@@`8 '/\oR$Ϝ;4e9ē'Nؕ#%(969u({DA@@@&Us    P2ɒ +PêQY(KM$_Nw|)@c-h[IR$mKwv|-񥤦.ɧ0smPCeWj*F,cXL&<*v@@ltbx޳d?}2B\@mT޴V]5bx$xb4}'U]2RsjJHh9 #nM3l<5{+8P#ie5Q&&U}*ET}G'Yr>eEjRR[3eֺУEꂼ  m$PrlY7: c =vlWF~N&id[+?-%"⻋.:ӨPH$m6Cg^#I \#;X(;9$ɴ8Ԯc2@p鍌6jQ3Gq  2UI %GbcR`McēŁ,ZJ$!ùv7-}.Y\ O_]uBYu9!]rek'ص<9dc{:gQ8/X()Y9ǩu8MLKŧ %lGԮcxt^,!`ᨉf,RդNw h?CT=*ZPܙikZ]2k1)c,lp)"XlrP1-RJV z.k ΀@&J#[)%5D_Nw!wܱ*9a@Z|!8;^(QFo7kQI*P.n@@R &S,7A#U+) {XFp_B*!r7NP&o  Í@jdm&kA=WAiMN&k?m?[+8|m!ғNCzq$cEid1-ҧM}uK!m EBEFC2!PyI.Ri3č=?xP,d83J.ĩ$ 뒻Ij |-tےL#=qW39ɉz)fw1-{W*}4'1Y_)A@&j5i0 KYO۠GuFg.GAtbKL~1G}c{a=ʸ;ua}U+{gVX8CU Wdf"9Ղ\ JfǕ}_~4Bb9@}ZM2,t*HKHY;sUsi  f+Br{Od%I>NJö3/?ś/+%"0,dM;XYM1ˬٳz(o;UFRL6K̘ZBY  }&3)2 7i@P=z$(ϡt-J^r}HY 62&Z>d6/P6mEyOaT> D@RDD&Y WHL!dNW ,| Cvh%Vҟ,;L3GC: ⬣|(I ^ZJKA:ޟk tz܎9[Z*ڎ1Hc-vK.(4IԺ6+!л%l춛 ]q+kR~9s;vl> H*'FCt1V)JM?:@#v!I3,'x tMve8YCFPVUQJ4 %„)JP]٬E+U|p?u8Mu) ́@HH    !5    @j2J_ Fk~=~my4Yb,7`RΙj9e*]s˔Om{\RDW}>˫OɛMdY  8Ku@@QRIUKI*{ϒ a‚\0",2iԑˍon߬-.Y]2R"->@o9j2 ^Luw3 A5gej"1TD5I""a %N+]P4h}<i" tk̔A@ &Ud78d%.9D%xiG1 SqDJ$FeT N&Oi˲`41j DKIoof}v54/0i"RH=T#sFI/N[ӫ@krl&z,k|Nj?@*%P vLs7$*rSNXe )Cwj'x  V6*r:逥s$:Erekص+(yg2XtښO!;RQ)+J,QALԉ5ۈr6pFYO70dR:%fdVO$ cEk*1L䨎-MJoHsQ/K3\]D!{ #N%o'WNV҈1J̖1f@jGnsbQƠjJ}TvANv/a E7Jike 5scqaUkr)j5 EB5ɏ)T̃CV_|Qc/n!o H l̇gDeB @! d iHO<=Wf'g}/mj dp2-{O%UӫTzd>>=$h,}ۘgH{,9X ⛶XEɲl6vnWAW-_0 1صDӭflK2TęW\$'l=!ƦL ʥpEFBS{4edh|4"E L  PKo]2zn|Z}&A?^pP3gά'cǎoKUEx*OqV Ph-HSW/Vݣxu`@)CgΝCY9q]Y:RV&1PIB$Qs D3q @K@Mַ!nO#}hqq>[R*5^O}:F ;4    nP     LˀJn~~ڂ~{IжF"Ü\m??Rs.9{_9 t|='^dĭ h:NL}/^: 0 n'p>)IZ},/grlT Fi=nNt)B'Ygz =)AjB>ܕ*iq9F@@&]oHp!=*,4Qò]6.Hlbg畳^Έ Th#]59b@'==qIYZ3wڽZF'|E"rVεȣ?$iouRaP7?xr^KNkVo^錺=U`j-5T3fK+D%`{-ft0Z3no_1r_%S|Iqursk5S:}s4eҮި4ej[sph;^)Φ+W d(N~0R( I}W#mڗ9c8NY0ΫiHPvwE8[{Fኤ{vmKoqqŰO ?tgzG5'W.yJ"@ R\PMZ&ڥ2|Yn)EƎu|^oI)VhJ;;@/e3w5R-!ȟTz809bi@FB5m pɊW/g9|L%C||HpT_3 aZK(^S]'ŧLyB9!U\ T!G" @TrJ6p^~{9w C !=4qþ9G|#DìND4pi*Sk`Njt5i-JY R (M!FK]ŦZ-t~;O0ӥϤ-Ud%P?,7{ 'J ]EL52j͚[ tЁ˸BɮiJT &+hp@ kSp#n %K# PCP5l FRZEjúb$`p@A.tbP]ܸTN&7W P, %LڿL}{t'GY,R|fmd9eU'lg*vnTQp.M5_-IW39 Ovsx.Pr,^V)׬1Ť1ԡqsT~#U(gUZnMf++F~QAzɒjչ]bHt[!TөPt+];Sߤ 8P?RrJ'kĂbx^쌱Y4}V훳7~)wFfmWw[&Pd𵽿]5IEƻ2 UYFjt Xv%\&hry(GMƣ"HmCq O7ޓ|ir^#vUt[pOZm,ɀ]JFFHtMLH)Z=,w谳wqg)Ij9|T˰u`P'ƶ.ņࣧIA9RUHd<m3ԉ 5jO]NG#۔#v`r-fNsyBu ~\M)YʒIÙg)Ch$Xq!**Ub_N1Cp)ڥ|soKl8U e x RaDmPnPo8 ""IvU?+G/ }Gذ` %v4jܯkDN nȳHAU2udm ^\ЎFX2%kʵiχuI+]cf½]uE* ߪS.eJL#!l'y9Un;.9=; l_13lv찂̡]pFeOYH|!euUG"QeK#(ccFЯFr$+"m5_B%@-1`qH}7 ܓp+$x :H)1nq;Bұd45Yk,Wҷgjѹ8oYB}tm=fj)%7;-4[0{$RrԱ-\YtdWL@7Q&)pApTUH`κO \A5)#xNZ!o0@Y/زB35qLՐz޺dvpULރ6~|eH9sf^'钲NiܙlرK͢3j4)R!G h֣pSjl886 :kj07d.[\T-}J/jgE;Om؃20-SgȂ;_8Wσ7V{v*MӼ bq07tKs&l,9 .#zr}z(;gq]6F[aThpI;slNO?,e=v NPl}KSxXR<#m<<>*@p60iYS8|n݀3<A ,١&. @@d@}&lJK/l @@[ nmY @@@ZAjQt+2դ ݲ:Cߞ+sYMc,%ЖK4kKmhX p(`Pg7Jf|Y [3c+i;m56:й=,Eb#cq9j%?$KmI(7)`fLLhZL7Wх,:#Q2ΨƠhY~hn܅f|޳55 t7[JR}Q_+Eo(,l.d)ȡ| @@@Q߿CCbեÁÌ"qIzSvF*9McF{hug(SYE3)[iቴw ]\V Yt9Ch+=YP2t!<"bƝuXW? 8 $X,+$5ǧ^U My' xktN6r`)xf+4R@j%w{ k[nNI:%ehȗ^D!oć)%Y5e$u>%/NMSuUmctN㟹a;1! @'\Mv"*|U/ZEM-ms'7rM#-|㹁Rr Y8F;4h'@@U L`)eZ#-.N{i;/̔gujʎxj6HFxŁA`֬Y ]FrVMF:QQ2mq={OEFLqN ΝKĬQgbĸ-ixPj1xw)=WQ|qd"%@*_NF Z&K[P`:4roO8 *LiB UKIP Z4MnE |qZ4kJO=)2^ NFɼI;;Td"pן9wvgޥ.=feDI)=h_FBǩgΜj] ƎۮV*gϚV$tk!r39hl3H%JYkM;e#Wj#Jq'⏑jA^'tx} ʩ龜4  P75M:17/,=IWj"tؔ!2Da$a,:S88NU3ڦQlmzNڬ- hP_:xdj&x/W.TyJ :;4ix\ٹr?rG NMwޤ2QEZyv Czڟ|fNjCULLJ͚#.p"NM_.}<춢9k-b/{\;b$2H "IZk3*52"]B'֪p(ȩ|GViӈZŘJU1FJ8-UMVko@btRl2>H#d8G o3 N#=,X/),;""w&0_W'y;ܞDꌝVL*G(b` C]{2KZI8-4,O|PAgt2-yc)bȔEŔ}p59YșZ?1i2  bt>S3z;Vj-S;?ۧ]$ϔ̜ |@`ng8[G(8.0,(eo*͗+gJ/N~]hVm!s&҉"S2NLT|C %Ԋ@ޥ.aTυwƏ.kA9sfhgƎ[+*ϊVdu~X7d`j5Q,@gTLu8??1v8]c? JF}ȶK*3+c;TW@e 1/Z4ʔH՟H&;Pjp jc Y)>;;qFg‚  Yj C &RFŔOiɷL.7D8eYUII,'IJqFkdwz!Rm t́bQ$#G yz,b-]Rsd1;CQYOF_|EOpqvL|@Ib;ݥ+Ș[}DzEyk#1|34gb<)H5gL2-rhJ'Q!5#iM__iNi/1M5g)RGvhEl'sŇ)JJ/,Φ EXPS̙'HAD5򶔢Zs8Yn~)(9:Eusr[_Xn%Inm*wB>jHmgp8FeIp#|YVȗ+Ge@@U [ung8[G(UCh0,J{ePYPdfZ@7UT6l@ ]z6JY@^ }Μ9,qر)[R9[|jLV>7@_|y=q®,I+[8 auh&&;?yF kl2:d* *TjBI+0I<ʉMʫyC8~[5N%Pd    0M@NM@@l@ 6&    ƃ    vMˀ F-{%PwiҶ^Ki6m_ Ji?KF@@@@46oE#7ɯ3V"A.8|KH8q=. P}lX`RwZxé{гa\i%#NOz.#N}I]ܚ@o*C$GILW笹X`4e@RR'gApp@] 9~)#YA@@ P}l25Zcܢ/uNk/ ?єr¢nL>wr+oA>il&R2<[ҩǾbK"}   m$Pd}4$1=J\W4d쫑y_I:p_vK   5MS=YtӇ|G;} -'ڇ)# v)ER؈3@@@ ]z6Jt.j r)>gΜY[pcǎoup,FO   2Yc:/@~~O+KGҊ#Z: j1HGq   JMBMvDI(@djP:5AEOt*    $:@~Mg    Mt#9w{_kGY,R*`Y5b;EK갗[YXVil%ċQҹbZ2E|V- Plvd u4A)dS)|K#reS͇sA߀ @d5MRH҆YoMv ,DzibTLGd^v, ~N[NbPsUXF+hF7v[ͨ]*Đ@@jE`lҾ9 6NY1[/ ţ5b!IFW94z˩Xj5_xc TЈJ"({TH  -&P$SH%-m@1.u՗)IjUH`>";.jFJ(@ؤSl,uFlUꋀ+k3'%w,.#P$d~fhHk`d>E `"@@@[ M:!q ƨt#:-4=>e&taQJ9Z" !1HI\?m,n$JPmDhIJW)7FF;'5c<)SkκN[iטjd#jc*ְ  5Mʫy+Yz!]ø=3؎SZDӥ۹^ e-t((UP* g12`&`c.لK0  'PdYDjZ h V&A 6+5^зpR,0  m!d[P&쒞j@}c2 s'Z@@@@]*M/FI| @@@@MՓORs(NxXog    0|=6ɣۺ=xZ)ԍ@McɖӘLY7@@@&RrX *    'P$d<"Pؤ1v@@@olWb@&S(g   m$P$6tؤ~cyNEqJQN)=:֬m ; LRot6TmFg;/r>(@cF$LL"Cz\s^Yzj\K@稽5#N˾2ԓ@Mc +UJVP~8_&7J1UkeirdvIgz'"8R$h#&#zW͑yw BJvlOܶGP$֨cGn*}Tuc>@k46锒wE9G>LG$s^c 4Nˑ2   5!PdOGb|s R#"m#1Hg1}낔   "P$1AS=m+Edzr# 8ofRtdT=T⬾!21Vڔju"JM.u %.|]B<~=s"WwرگTaZO@dM/U㎛8aWMC=჏$@&y{y*!/@dM:5^ b@@@NSk4MvZ_&퟽ jN3FߗN]B_l=ᇷ-{zb"/g@@&]BhXßKV]1a.“۫7V$2vF |ˊ  D@{O;1ԺEfA*Tl@V5MwCVZJf7n;&|Hw靉S-DVTÆbmak0*(jTz+wnڞ;{#猔  MIdxN,hxwDӖ>=Y#ZW9s:w:=QCQ9^jx>bНZ!u MnV ݾ*zHFE̶}88;&H   Сjd=ɔա-RzN%_v,ִ͔K"=qT| JlvfSKd'}_b" @ol)%[@\n/%;rsCQrĂ*䶖!ba 1Ņk_M Pؤ-%[[1>衽lri9},ةѾNiMk76iWnR$%H+)aDh}ᢂîr ܅׬=21\Bf}J,"PߵZ-^  ilUUwO"ߔ.1`)0rDXn|9NT9lE:AM7k fӾ6.҈   Ajo)Om~A\3|/ES-qJ96F9O .ޯ;iW(.v:Cj"}Q J6D=>2F:C]iʦB蠋#\$Pdd @@@@&WhceP4@ M~j-o .֠J)u \EcnD(t5I@@@@76i$7vvXci;S_g   $P$Qysg=vWKr溛h.   &MUk&ss8W3?Ykm҃t&b鿅CҲRcmi{#s=ٝc2 -hg&d}Wkcezֻ:}زB镅A@cG{:)5םY{bIGz[ wHY|j7,E^?m)i$˧5u.퀭bmǜF4dё@@@ +&E8bQN4Eo|E,Dr7{ap|SÕ1! hIlHd?:D[v@A b|`x pFy&%jOuH5    T̥'R`U!Ic̺"b#Z&Ck! kOR @YZ,؉ I:.YΕd/$Y]2?SoA@@`_~ewN+KGҊaޣP}EpWo^} FYc g}L%ح J٭pP/\Mvnsh?&@@@:@}c2 T鋁ǘWKfm~{" #&Do[4^ BV 6m_rY@@@j q;Ѷ,յ'T!_5L}fhMk%kMVsEAA'|@A5MO81\88{(FzZ_Áo#Ȧb\i˲`41eJZRjxsw4H   Ó@cZ8:[(;s4uD[#IrYRDr)Cw:ȹ\_~ N >_YQLE*   @jqJT}Y]U J0RtǨs11u/SƓg-Fzp n  CM@5qWM5U*E@+PK!%@ &r~ '%[ 1! a\Ƒ @@@&&Q5Fm=FlIu k"7,ɬ>\|L@@:@ؤ]Ԥ~Wye17‘5C@%u^cF&bƵ?agvMEVYQG"rdG"P$6ػ%l/\tէH\CN3gά-cַJϚ͡5tYc:+B?c&Nؕ#ibNp Pzljr8tO !56 j2QT:kR!Ae&dw/j   @lZ   MIyCnn!@@@Lޞެ]B%;ZFz T!%KLTJdd '\$ & Rm6£޼@v#?:dzjAeoRF*&S#'cVJS)i@@@@BbkcIHHH   ]F5ePPHIyFv>g#@@@@#&!5zOGp    66ɬ"=@ ,uჽ'ITDH   ]K@R@Mvm@@@@@ |Rj20Ҁ@-%&gz    P5F AcΪ    -#Pt$7~e@@@@]Qd%0k֬J]f{{{Ip}[8YA@@@D2ݙF1[/&$D_q]K@@@@:kE\r%9GD$H1&-(@N5Y02&~eQt=3lGCcgI,(IJWˡ8'Sd旾%*'I۴ٍr kLA@@ @d%V()}+gxajⷿ_׌dcǎ=<|*H @@@%&SCkOad3ܘ${hHIW9*Ŷ`j4 9#P𨣎I__qDJY~s9🔑N]ĦnJy{tlҶ{NJvmQ%KD&˽@RJsDS1֦xMehc#}%z+cƻYg.cj볅1c=/Vr?˔)S1HynoO#2/9… ?9g縦sL=@@J'Pl1:&&T#&qLT.n#6)M;Ӕ8`V;ǯt|iwvMJ!Yʒ77ɉE: ox'UJQOmڣS:-si\JLM{w67@dIc-&KLpx%6YDUTe9ƯOy??+XDfs Ч/hX~[J7xc[e{vd]6A@@ &)&KLԪZe{1p5c1c44LS$i[M'䩖ہBy$8y[/l߰PZV<6>FHRn-knƛ rP-GA@@ l0z]syO;{6X{eܵnt:mmA~4\'1s=wgٳ}m]F~]=7wynr$ez dh   0H`wn~_MxO=[ֳF=d9a@@3zzHMDѿ>ë~`러}O^'^GMXo⪫IБT-5iCrdb"d @ ѳtƵ=93=k:uFF8hdH$H9P; %SO=8=sӽ= =kG۔z|羧zf>~;z${ ' H6Rg&cR   :.zs&3_'3)= ޻jC|O>djaI"(yWz{diҿ AMŠ   D_|9㓏tO={v6fnzۈ#ʟ2-fAi$`RKɉvĉ   P2}ק7S6陰Kk3<~y}_=*% s-!T>b-i  À_ݶ٨w}W_9uҨ׻G<;b+WrŊC*yƤ-%Lw6F=xϲn\AR%-7; ,*ixtzcnDoo>ɨrZ_> AA6vW;PfH^!ɝe>c<Ǹ>/9C% @W$C=򳼫%+V 1C 0k*^C Gᯘ Xu @`*좱҃G#f @QWKO9@ 9| k0 @ODX&@fWJ"fg <6󾫈B`=v EewX}@.G"\R%I|+2_bW_|[_^76jw||±'& -jSO|af_[@dOU33ʤ_ޫm [UNn'EWm5}Z~]08Ylz*1ylޛ&F_Pfb]T.Kgݛ{YbvPXk}n&!VYn ;$"nH5wS{eqvpC:x 2*]D`B`-Vf>ߏϊ~538H8z R(ݝٳ V~ нK2A`RWo,Z @@K@ @H@xʀ @  @@`Q @`0` @,j  & s @E @ Xb  @ 0k0PA 5@@` 9@ p*ɟ>C_82*2a;\xoZrM3 pgnm^) ]`6sfc&f8PyǨgD_~Z~*;VsBXV$6 M`JKjڀ=fT?Z"c#T'k#جaq:  Ӳ|ws"GYDzk@4S>["N\bX"Δh4njJ0H2r1h@TRKi`d+- *lэ%t iɱo5W"~|HB#%a({/Y3@ flKvG7QƈH+6БY?@:/bߗM)6ClDCR_ A^dgkG܎,wzѽԥ̯/5ɇ-}) xT|ZJ*yRL@ TK|3v|z2T6"" ܴ +]eAWt#fTO{IWt ԋ'>) O^3Y3bFԔVH?a+&̪9JMЬy5J@ }c#pew "2}G))⑛-Όr/X6hp08-@0L%XKh@88 @_"o3F5eFËb>`9Vf.f8e h$N[\!Ai)l[݁(8\Yt xHuwm{RQW[zD<J X y(완9#.C&ݸ./6?tv$ٷ'.U2Xdd0lԸgy|jmz@f® vZ0-Q @+DBqk>J+H~CaXŇJ۱`E_`gVELN5nWv8j}M%rG:0yjݟM='$ m6 0@2 ?97^ivߧM?N'T\Jf@۬g 5 'aMFFY]> є=l UW #r^Snq:Hψb̓@ @@_uf3DK  s\$@CMqgTݾ~XOlǶ :{mm, Tl@/ LXG"IXrCi7Aq[~dmu |KK:R]zeѨ{ >vc ;K v`Y;><2RQWAKm4FPup⠇ׂRC<ܵhFS`$ug!6"z}wqO>(4F%R{%fڍ0xedmA70֖`̤| جJS3!`>&ͻJKVBSFlYH)+m|g*UϠJEU`U ^%KJ~M[&8hX51ݓZeT_f~cMcW/+~].\O.^f7dA6 ygiE cUwQz[5S3&Re)cii 䵺ҎiWw@*9mS) ,zj"Λ6ydܨ 5V_OX1%R,RVʬx~$1 P")d (Lom@ Ie0Ҵyo^Z42AF^ZFTWp?!yTxVf12R셅X JRN#^JDZί*zcnUĥb92:m pYk#@lVF/=c/˱$kAW꛱0Ijdp3Hppى1pVk6ϢGze6p^| ]D(XCL+kpռw[/Jv4=Ly*m^DkHږ^X >WN"oWB1oFlP^Tiy{ :l˱5rTqG!^RBC xQ"+" %#dؔDV]wiVQVZ RMlU,!coۼ?lsz{}1yoΦECI4^hDVE5'o |UNZ]geDGftIψbhsIf7:W]XtY U9gl;I?- #pp@+@8t @8:kf  ;|{қdRw`f3F'cELJ)YE<'+ITHG>ʽQCto>tՌdK- ,:MUtel8fƵ5o %ȫ4eV7n\ Cߕ`U TeM8~QEO(c b=cS??b1.?K~P!܀ w%`bdB8x "RgYT*;ug02[q' gZO")B1)*LGnF}0mJFY@j.-^QVb-d×}H;/:#$*ٷ XDIBMJR^5){/z;% &·U箔t3X7mirJ鞺UeMxܢbkH $3ַԬ l\K"aՎoӫV_*k)$)ܥ`<+ޛg[_ZdK{eHQ| Rw-%W6qOJe:ybbK=_Ɣ̗d-gJS)%S^ޓxtV샅}LҔR}bUu /edzb,%81QRJXu`%/ ni5Ӝrl~{oD HP)~k.N-SœD)!q%\Fv;)-}w Uec5n`c!vPTp"YOtlǎe[X_(,xfchZPfDm )i` RF+hYX f$x SGdIJn&ht"?E_wٿҭQb6i)U9rz{ݸStkVKcaz]r펳q$zsgTFss-2VɎ̕RnHXX!6 ޾~6bF DՔmLJ\}D*!K~HtA#,;R)A:WƱ\qϔ EUZo.3kUIKw `M]$k6dG&Uzl$OMn7::ʓ0L̯.͡M>#~[d.Ok\lMo)Ws;n9ES oZ%eF{*a,]>+Ɠeʰm&4(J݊JH"pڑU4Kq j) ^"<} %©x1k8Zv(UyD %£f Pf|db3QfD17@EX[j]g+ã8hp O51#@ƞd4$udilH;!BE,@`yj[c86ֱwx89GR2 @`<}v}K֨wb؁KuسiQ=Ĝ#ԇXFxQqgnWʁџH>$˶ϸJM&61B|wgzJ (im({&TrJ<:f2~;T3:M'$rQl039.}@\J{h }M%k&}ZMÑL>j=Fޣ=ٺ3;rcgSiS~ݱZw4aaghF7?RFBpb /$d 0.k9ĽyQ1R wc͘։}Vu|B$HE'3Τ&3ًQ*0H&~uč'$NJHmJf\xXOH_;֘0n _^^MW\a/d|8m˟"=ecXEr{WZ~?ߛ^*ί-ߞW)u}=~R''?^ :K`7옶VXjnt\nx>߽}Ѣ钛|:n9rbfidjykj}^s˗ƿ]nA$*7~N%ϗM8g.GIxW~3me>L{KT~tƇI;tAƈd{.^wϹ9W2 W$I IMҫL{]jaj39d/\ZT.7M[܅ӚΔ5$II}dmeڹI.Fѥr\1 d{;-,%7z!C'geڒ l*%-/}#o\Fy[ЖQjⱴ:[p'ǽxZˏ,?bϗ_. 7$(iᏤd|V'~^IJI~ ^iڳg_^Lk|ػ}=H,ٴKRF:yg)Y‚R{?#/χf_|ba)9OR{-R'N%% -,%?FVNI>жT?'I'B10R:RĨ-.O o$OmIJM7$H^6~lL(WNyE;G9ew-GI?KyyNI?=Z9v\~2Gzhݶ6.7IH')_\6^i6L`Ҳm/otM&N%}^Iח{ߴwYAC؄'/knu Urj{ǩPVYzkZm\DpJCV;7I^%w;%{x[t|ǁsƷxEI&}K2t9>/9RdC#4vE/;9<${? oKOIy uIt>)#js4Yed$/8q1{+g(>z6I7)y1ɶLvxϋ]=+iY]?>9&_N$)r!']M ?6?'gOgN'N^|P @R$(yk nIA4w"YJ :m7|oo)?I:2EJV Km{lD$xIG=4RII #LfGwW|I^_ϓlK_&RD$Ew :9vٴ?EeCJ<]B3ݷ^1jv;.QA"u?J&u.Y'߸Ioxi>=a)MN:ƋMÜqՓ;N9uǩɐ[$,%<7O[3=Bs<_w^=R}&ƶH;%is)b3RrߢU$*.==єJ/\,RuCDY.kI}>yH-%raKJN9֑KO^#~f ri]J+OX,VzҜ6}h>Vq[|Q? )R/}LTzs.ߜq"ܴG-sܼL&:ϯr߱s6>H_A+mqd#yZKSx5H-%IDʧ)KSZZu@[(\7=<0]{{D^y睷^gG;+)WO'MwdCJOo:GLJPV_y]k%r &p]z<ٴqiZ]:)WO:ˮ[$7ɉɬ &91I &}g~tdVoz;,'W,1o!M 7u;:~u/,%IO}d֘(J& &91PzrPr)JO^`]|iFIZm''uwi˷ދ`]|$-gl"P:~J6$#2_="IRRb2- O~:<鐷7wc,c;L87I.)M|lMo(i%,pn?4t|7mJnRKmwt|7mZJMͥo;m&, &?,ŧ &ig)+)f JCnrZd&, 1=M|&ߥd}M&kk{'m^XPu܂%7#N)¹}~tmv ~qvAsH3BMҪgmu[<(YRMJ2' Jn2X\=Il&!%a5k%k(=U'悙MN rxӷrkOy+.rts2Ls\ClY4ӭmfqUW~ItwRdw15ͽNSr4;-kvVY| "AIZTVd[iJrKҘ..g߷o厩%t{,?ã'#s@Y6%21YVÿSn2 @F2:27n>5]8%:"%I\{Vl h=soWߑ'eǗY l±7X‘pڤ(=9rU6Cぅb,(nyVa: ϛ|ѮVKp'JlS#QzJOwRٵ $e$6q9TScN[CIz<_ XU(5G-8c5:Zt]h?"Wy.ioTuϕu<-|:Si~^y7)M =o2wY_|4jYQc~9~-jTwMMmݼP-RӣT`5I%-l/PwMϟ(& tr}]sL. ~~ GPø9)N@M50=BO/;w}9/+f(l??n)Od aR&&#>)iaheTg GPs*s9*EP h3)݋#(Ҩ9Ԯu'_[8c5J嗎oȨ?GWT*!7ic*1gRFO|Oo7RNЎOk:v>dG?`tj<5ɑR2ɬp jԤE./+\ϵj|\7-y嫅4Qq`'ܢjGg<tP'Ҷ3; 5MR侂%p>2ӈ "y)l*fZ@@@@H`u !4ߗ3JM>S՘EC2ӓƑX5CbWf)Hڛ2e^^VlAܡx,b6ub.2 8Hٮlo1Y *r,)ۍ-sc!0rȂդp P}⠏e/oƮ]iM.HB_:uP̅t*MH[s/ªPυx4e"۱eEFcHBcx5zm;} @&o}˔e͚D{&N1d\{FqZ`K9и*S)PP:[l7eb.06XŎYu8g]>*t'㪴&,Bʒ3g._Y` (@ t+i-̙/4Z,    J p߸R5N@z>ΝSJnV{7*E`׾QH0c_3m:fڲ1 G UMgfϞid)RzR%H$euĚ2f▷Hf[ox/f/ulGVL(_n9MR׾NWr[Y׮klڂyի6kĎ+WJ0*r/hTwɉΞ=iI7粒1mr/euwX޲rEY>[o_*ȯ}ܾWWUQ~3$+V2#U6!  =L&7x5ciMM33r'f3yfc#U)YIޟáQDr+x6U*yJ#wwsNYr#ԙH٦ c'es)flϭߴȚ9iE섥5{A6dh~mӶXZ{r4G J;aIݼg=wf9Eh"Wi @28t#DF8%)yծh[Uh/|Kd/,>y\xƷi-]9c h]F9L$(iM?1ӭ-JUr~4cZ5ߧLLp$iU+UtdVA{JRʂ^o &~{S+H~ V[i$"yV'eii{$\gu{[+|H8 KI7uF߶2sm%,(R@RNXv %R wxeAiU76)E#+I*Rp\շ*:2k0N{iOowv^q%e)@ SO;V]c;s䦛nzhk!I씳-=Rn2&n#I4w&Y$gY44rHɬͩ;S$IAJdxXJ:;Y+r7b4vg, K!U8s`  9{y]?y_%oNϒIJcHAnZ͛GO_[JR;0&de[1$7|-"I(s$OL&K<-wpwZ=! ʲ$mS)%7IESVՔspJkC <-'u$L6mj:5&[3ޤ$y%Lw \dDrJS8/5s| .v, -YYYx[s254e&{1 nz=jOss)Izz;R˻\ P$#YI+uؠYfQV2r+rty%r^B l)L|I A4|`/N=^ܤ\3/u  JS]bl8_o=YWR-|FHmCJ(.7xeiɗKzպw[WI咼4.)ɷ*;8 (}9|$=\0+XoLqRߗӺ du _.ɫ.t@7mP3AV挠Vr4ӽh"yt8o߈Zrj++R -a9mښ/yX0A,Ro_uvX `tJ#'+[;`,8fyDd>*RAV-T+ۛ3 {1x"DBS]3I*'ɮۧ&UMlOgk;~V9OyW4ÀO& : %GR9xS ^u"[Hs"ۘ,{d5I.7瞹nUvg~dtv]ΈF>R 5sTǏ G1hEz !bSНBϝhoEjҖjnGHm7<~o<$%&+MMiv$9  ]Q͠T\(@'9-te;GYw,8Hs-4(s.ȱPl>*06پƓ &MCЬYce)Is뤤np hMMJݤ#i9儹\z*IJF&18X@@@@z@&P$\log~,ªS3&0ӝP`1Y b~mPX9;sߵ7,G> Evc{ \XHƕ 'gntO[)tC8d\s:D)m U\"[h\`Ub\{sɂBϫ"@WEb.R+ۛTֺq΃;SaNG]zgk v @@@@I3f~H@A?GHA5W?~W Vu5OK=<7S. h"zHEzkժU4~]g=YoڿN;N[n,Y"dRkrݗVӧĕ]wh\\ԩS30PT>LkEHƂ4-Ɂy䌔ϹE#L,́*{뭷RM6dXxxȧ݃_߸cZP,Is|+_5Ie_z}'uֳ{+q9}`vI30x`A6|Woz3ty]gG#fFBmg͢_N,G_>cƌg `v}w(omW[?vE2@rט /M6ys?2vWaF'=Pٷ-[x㡇4]'i#Wƍss ;~G?024K/tW3v? 5yFu-od  ] }+$t҆.aMھw|;P:s>A? ;Sja 6MEmSmy[Hܤ٫["7JrHRz%(>ugoY6:$")%>KI_3f ;?c[;FμqgL:݌E$-Oo3FzvoI@Bn28~@MR|ev{yGik鉈%_gΜx饗z\ut;t{Y3W;,FHYO6S>G|n~?tKY7^d$5#$)I}$6,%ַ:iqTaq 3'.=ٳ'є"C`lr0}Q2@o 7郂S``gUjpEZs^&Y8N M&wwܗHS'=\y3 Y30M5y'b^r,-;{d=Ik[!7u`ElMOn-G@td 繆>.d&"^#$AXxA,%#ϮVVrxf:mrlI:D i.|GMG wE#[= ԤN-p~F#_laO)%9apKmoIӃﴱKg$d:uɝt&o}ڟk"@kds=ޜ$$5K'$|Ťh5k/ؑo7Tk=ЃpR8G&e[rݗ Nn<~UL۰}JYT:r2̓iGRE #-ґȻvӌ=P# Qyu =Ci@1:2:(?,_緷W}ΆV咘 {HW)oi6|6{ MI" mPb^>'>ɀ8nTfp-GЁRe'Oߑ<.'u'˓<5I.-%[NRv2)ܺr}D$dȧ}8;v9OZҺgbz;G@h}7 *g>15z{ԱO tq>r@'аzÄU装S?kO2 /\z q":PZYJr`}^=5Қd* d0n" x /eg̰]w/2VrF͞=4<,Ҋt 3!Y<T5_D7ce;J"@U?hf썋5y| 9 M$`t5{dKo|00}m+>jh>[ɌNy7^^i6{lTJHӶ3r??DyW/r }TA q6ͰqkGNd4D*d;iXF^d҃2)~~͹N&U!2|䏯XNRB v4E'GkvR]8tE#6J{Ik&)gCDd%Νߺc3E>m4K59ͭTl'&$9|z+s(R"cW{?@(Ϟ15翎X|fˏlg>}Jclڔ}G~v$3uio+IE~js$$@>RAr)GՂw_Br+k(]1 {УaL '.N>]IJ&kb!A[j3:[ZSim7chᴟ6su,jwJ]4h0-D-8eMl$jʜ{{Rh8cHBT=j6_'F0rO'>֯~IJ?ﻇVVJ kbZ"Z f]H;_?U~ӰtF I./}9}tx)z| WniZ+ o)( g^xj񐦴ZLX))_F as$ǒlDkqn Or9Hl?cAz掠ss,֠v>ٞ]ƯWœ: |oq;3 .E$@$|9[[%ebGW}e"ؠdH+Guc8|Ɖs6㶼U$H޶N4fh#$+VttIx/Ǝ%Mh&CT T8x{6m+']_p]uqҋę%ӣ?.ZJwT}kkꝾ5'3-7z>ZdLo/oktZҺX3%F,Tk:gMlmxbf&Gn/~ɦ?j_%"E&ͦ]|OD$?c,H9qN~W^v]OlT> t6Mi7ΦJ3+OLkRW^yxw=|^t |{ϴ ǟX;ǃҟN97◹os$d''Y7fjܤ:XpS` 4;:5,~̉t&t!,[:ãP2ۏdaK\ycAW&Z}_H=$,HHPz9VkwsG9($-AܧYAmo?ݕ ܿw8d/];mg>-!Zgڕۥ|/J/;[JzkYȌ ;2`)yyL wn,=!aVR_76 /9&մNܘuwOKp2+.+?q߶=ܵXJ`}?nWц_:$=P.ByHgPjjޒ%j]՚<+ `)6bi?KR~izb^\M7Dr'?3uX@tFG;xv`8=Rr{>t;y[Of]fl'aVc?(V'Q6rёmz] iv~vD-6ߔGۏ?`:D2|$@2!#Mdŀ$[oWFc3O:ciޢÖyVo uN~]lA=)%^z$z"1*Rj1WBt{yq$]4y\$ťF)ߓ[,>2R{~31m`Ɵ"0JM4,g}IS;f2v6hi23JkI{HmJB%f>H'I s3ۅ^Z9,8Moj^6rA֢+T.ĤS|pR:O:RdWapH8fϦPȗY [|vp7vSmջd[rx_h}iɞ GK} F Myf3Iae{'IIN 6T[|ɀ^}#;9}v)'kK~KkxI;4$!i((Wn'> 3s%k%_IW: y=|Q줧䋴\n=5=Yo@%`H`tnR 8ͷx]{L<Νũ;>ܭ+F"Gl7c}Ӷ[yo_1ek(1erMVU9Axz̐c@+`gP}7Y$WO 'Ȟ7ΏGe{g?D9+ɉIM&[vsQoYX+|ѧ8r3A?t?`-u9d9Jml]L.בd}oͭGSznYpv=g{@$i2+uR޵?f6FS&vmwZxI>yI-Ώ8M&M 7QI8]~wǼd_ڋQ68&I4Ԥ.O92>/zHjdwW3"H>c6뷿77TUPQK[Kr1c\{5;SCW&>FS3șH Qw<߲=|_'5)# {&5q25i;kx%0ٰxk), `P;袆1wc{ \UrK[o=g']6^&@^{;hWWt5ePLj2~a_M>?70X$wrOve'|tE碿F&ɾjj2팚| IMY 7s~oHW9+i]nu|s Lfb;X~Wt>>cG}k03?+7{>@_]M$׶_hU|[!eF7]:s [)nwy稻p~jO~P@O ӛGuKOq_ &3 NB jԻpwƌY.LA!@zWnգjwWQ?c[z_䁊(}&HEdUjr=7!tx#@*֛oxc$u{z@&h>f@sqT6B ji;1(Y݄M"?פKS!Д18@ (5i7 @觯qTvA-mrG 6"`&(s[ @sp``_ _QY.լޚ9f:56~iP/ۉi?og PQOzح6\GCgϦO`j'zLt㉍஻jC"ӥx|ĉ&0ʮH:·{֣r8=I3j 8,f,\j㇞sxI3;it !`E1L~n\xƆx~Gyw߽hѢvʻ篙9qK74>[ôl}]y啶gn6n͊?[ݎ{{G']dLvl\MiY>'ﱟg= FG.ICZf"WӏW<Ɯ9siW^ξ3g\|9=᱈00λӧOH $%Ә駒dQ9cqœd\B;ImqH""g=ErFL۰eH=k:g,M^Jk|T"F]]f*/xtz]zZs.d%w@ M+>{vn҈kܿfgM:SIN*3-`gog O!G)f6wK+Eq<=D_E| #PI;"WZGɝvzkِ1miτnpeH$KJV׭4]lF<3r{yJ^bRGuŋnLh?9ݢ=|'KNƍdM8z=ZJ.G'?ӌ7\~泞MƬ&ȻT(T6iߏJ6l)IeIMygnZ[II:OvlCi-;=eխ6㶦 N=gΤ!sb>[Fp ,ޮ%(L'y:cO_=st|RDĴt/6PR2kv]Df֬YW =Jzn67os1SϱG?wC">@x$';vY䭟vƆM|\v_ǰ5g~29@K/؎[:%*T (BJB*PaduJ=wl\ؤtI5vl42$ `9ER2k:$,_N"|W#?+4ֲ^Ĥ t&KcTݖ` N+N'~pYSuEpHc.%D% 1tARdZlUKI r$dZHci%KV|$']prnQ^u+Rrƌ$%j䘔_6\ys rDPʐ~>a5$"GNy֩)s2埳awEĄ4zYJ276f$ GZϴi蕯Oa|+ c#xI\ʚ҆@]Ak"%MБHrM8M#d٨G`Խ5GCn_7ɔ>%g}Z)p*=d)jOH9)?iEx-F8Hugmxb.x)m){! ];~JIP>g-oZYI0\pUEHDcx@G%U^iܲ\hŒtcŜ Z]"/@ 5=#z,c\3my\"9c$l"(3-(Iܴ+4¯yدIN@s/YJһuB]# }?8zmEilp-hv;r}ٴMx#܎֐L$IVr1I䏍7n͊p;h}c>w9O{ZㆮfT'y?.@ O/WW?VSO:ɕ#}䃝:iNޒkW& ,ji1M3{8bL>G{%nWpO|yi 6m6?лJZh'S|*擟=csz\d"('&4θ' yG{G=#OOJOڗ;;sIJyRJtP+yGM!9W됧k%ՍLHʐsoL|gRoDPλw9hT,9 I̞̿/9[j3p-?Ǽ5\R_knNJz՟:LcSizm@%?qߢ‡oqz2z=єnVܐ3f̢aI뼩c[]V8à-M  !`&D9ϠU|'+5tBiY }zJmz߽w{blL pjG?A';4䄌U0xH?y=+_5h;QҪUoNۢ&y㐃g|r8mĦy~GA9}md8z<8.Yg˚t7m]+gtNtq9]NO7w${HBd)!Ս->Cg,TeR Uq1Cʌ} N};=}Jr$^/Vv\Da.YtQ{46?%t9_{j&˳{SkIRѓv2Z(ɆzjDh jRe8dS JɕCV*|N^9=Ɔn<7KS`C;[8ۢ 霛GUF?|U.'93ŶC&9+K07i`LwI云?*p 'a=*cn票|$DF$]˘֕R.I<ڗHۤu/kBcq4{ЇҦnNµ>=,Z9k69hI .WXʀ"E.χ!zl3)IJM=N,JfG\7ٝ8 ~f2~to>A{>R4V;ϛLhsyBl1"WtxAKm:on0xĐAAH ~iz`9ED{z7L%٠(!i!ږ&3.w^[&ՑK'k]8^G%'A'1e5S[S| ]I"/ku-#//p?8ϳsVrƌԏ$%zkBDʒM!@.#uGsɀ5 33mi TRt0ԮӺ0`0 Jga; 4u]8t#V/ǹI8OnZYIґ}96C{z 2=wvz%Ҷi`z?~yu$5%/zn|A[8R㲂 Vqd]2``n$J ӓ3?J=r00鎶tJəó V2Ij{.nV9Ě= f&)C*{֙]ݨ(S4#ђ[R&MJ_ؾ e6}1D OW> #7ɉIN;GcQ>rI*LL֙_pALzM}MöHoq멜íx1 $QO/3xiw ?'O`F[sE/X F /yȆ*'1i}_̖P݃M~֑xxZhƄ}wgn<YJ:d? E2 AbNjLՓt4υSY~P47nw~EECP[ՎhΩjDzJMR.~’lo i(hC._&)ik= ڝmWsg GHOSOR=f̘kf]v<*O]u_Na>kQ|+²1xcNVTg1QD]p_~_$cH0=$_p tҽ5w j2hA"[HCMXj_op-f30'^;,fo蟱-QWK'QM+EX j2KlSO =c\ic04a  POw啛Ge8{G n(BJYwď"&Gs~2[o=V;y??/ y7s^365z j2.TWE⇚=Rg.<)@_2yj7IGz$˨$s[      EI0*+DY(&֏"6JK{߽{Vۼ!픖[neֲ-^ʫu=ܣ w}V"~礩_rτv \+|jr{ޙ)&Z9f,xș¸O?mW_G?#W[EFY;@@zȧ&P-~P_=޸YO>+^ ;~:QPg߽8k  4Mл>5}'^U#\rgEB{h^{)ɹ߶:Yo{?_vl\ӧ)+);?>$vCgڂkZ  н=oK>" S8`55DGX뮻ロlƍ7vXJLRJguI!(ȥ!S\~3~W3"7~&/#pُm5I}ߕ?tszlu).[Ҫ'NyKlԔ}? {9]Jb_=U]&ƌ^]czy{$)B}N4{Hs)Ҷ[_:=8yg+'ve4S[RO!)y}%oMrl߶kХ]V]޳ZVgl;Iq3$c'L{ă3p<7_9  6Rz1/2"N=E&8$7%&‘Si {@2 Iu~f6-.%{ț@% v^C3(=e-G͞G7nCמ1#ԕIBr`N%U[:wyY+o𞴝=vF@7ٰ!=JHiuvv@= >mAW\T 6>r?Fl͆tb3)Hږ{ð^V}0'.8J z>}9EtCd@]ڠwFzwuBdǝr'I}wɓO_DW&G$YDDNh('ܧ/e7udCONwV=^fҝɞVb; ]'$d'$c"h@#<=8Q  8_?4e"2"ۀt^7iᛸir\D;U63d6so9O>m1tnK-RUըkP"g=$E٦]" g%IJ﮻hcx}!4Rk֬*ūjK1pF].L Vjk@oHκ @>>#VDdFizl$g92|䍋g|_ndv˧%+??}tO۴O:#̃ q]w\~qm#fmUc1MLf6 =ߺwuQdOȫjtmqU'JJƺn*;{DNbJ祇<*i_WJI vOL)~ 4m3Op8:oa't)~O}tÞ\`$Țfґ$"Ş}h6'~I& z]+I?|Io[J_s̜atg~pх=4@@OOM~ X=*R=P.t?׾LUEz=A )S1F9/~G}4]1ig%[o?_Ywq2ULq`$_r3/xY=uɧ,~pOƻzzF-[׮]kӟ=|oy晳f2l联d_,SGҋf0."pI䬙fUU7?`}/Q"A   PyO}ȲjN_?㝪j+1@/җ/|!y &3ȹW]g8c}j~noBo?c.mA+@@@ 3%}j={V AxE&z ح /y 4p㇆òHEZ]tb C1R Wyq VݟH[])0LYp56X@@@@?[K->5O594@@@@`` oi%0iFXӃ AtO7݅s=Ϫܹs+ ]M<?^ԓE*EYr \ _yf/T6}$Iɡ]9w`]{ec6o?V[@@@ H`ec |9n N2Ԥ#̙v`-S |;^*|ߏt&|%4@@N`nGMw]&v:IJjB,5"55jr7hsN}ޟo[h8t+.js9YzNEq3ڹe-AIuI>RQ>4r\, ezͤj& 4HICM+X/H+sg>%]}kgZP5fRgcp P{ߞA&8@ۼ~5yom,htb_5_^.1^N?M3{vr%Ui','0|j򏿿Y   X\|vsSO?wr=\EMAƢ'aX,3@CTU=N2>JXIr1k#CMw @@@A252Jdlxms4ȟd\SYD4WE1Āb)R*j܂@̠%+%IJILRڵ_49YB їΉ]==]Q3$9ΘӜV8m xFC4d#cC;-lPjUA34ȑ&0 HC<Tw 2JpmI42@=ϴդ4OĬieZ.u/1'm6~XkR99>e4YϾ!ȜhZTYK]xuHh1mUpx8=Aљ1U8}%c$kHЈtfDMj)f_vs[9J9U,7'Ӯy4FsnjC䈼"R0a:-l=RC\~,3RguZvpJ 1  qsCM I;rm"kua3  *[?H/3M现VifƏ@@jTia䐧' BKO>GbLԦQZT>i2nN2gtu>&W"ծv싮ntT\ ?(r ;Fo"*x7QD@9Je6rzBcTa$"poCPΦoHHÆ8դ<\nn}v)RiM[(ȜSSRq2nVc; AlP3юOYF£h=+2 2jfjR9b!eiNE6iL:g6k$]D#k`   $Pt$6Ytze s [3m]79}lY7vr>hWbhh-ong ~hBJ$_:Yo]LeikQl(`,:l[pP;a1& ٞزrQ(nҜ gh2JdMfBqE\OS:kXv>S=/I٬H#k~ KhJdsW$`221pJ5uP*o6^T% 21"OSzF*cclKiHGaĻ%4ԤktR|ݙU2VWEk3w2h|F`( 鹶ޏ   P dgoa"|7wbB-$L (Bg+w:+>x$d@_,16c $?fҸ o.EJ1.dS5ƻthӴ~w4/")MD8 -g3uə<䆃   %Ij<\SC(se[O/eevҹӘ9e=)d%*:b& 1lf#AFnuK69Q)TD|5YQ}U7! @@@ Lj50ghP@M@*x0Ӄ(Fj?&5փ@1 o{g}yMGۺw_KYrZ0})$U Y=TD*5)bw7tR3eSnsHE:Ҵ|h/aN^s8 z5IRgLa>G @@@@ SMU&Sʜ] 83Ѳ+ ]9sucU&duMZ#gܴ[)B~ml'N˴1"*`규D18D^"Rrxvb<%!y>j{~+c8V6_IɄY1"LJq[og1r95: +"գFUZfc4&˖uV*Wc8k:dz['~-%;{]TiR>Ĥ9j_ޑuznsٶ\M4 V-sth[IiUH3ՉA^].   EoiŸ;Zy=tS#ٸr滳̙ 56 5Yn5&L6e]4YL@@@ gBʐ؞^zp 9˧MR-:r<'kz 3Oj~s#cP@@dtSJv;T    0P    ]Ej @&p9'RE/-h8t>1 g<Ljښ8g yPxsl ΄p"խH`El)C%&d١- ?YVgCuΦwzP ͹'_U"C֒HCd-HC8X#VT7Ӝ z1&I&@"P&NID.t5ԛc"F.lQO|FƟosOq{-4H٘@j4(yilʹC]0MKԛPd-ϻY+سıF ܦeli2>,SF/kblzA @(YMvNCrmք;W TZ0ҋgMԉNNZn+K,Lw=!gXnlܡV@c &*<%yAyC/fRYȸ',Xl6Klё;[ӴxsAA4:HlE2=$6_H)` {{(Nd5I3rzW*1Y"ZP4"dƻ,U<8j!NxWVY#HL\Ŝu$r"ӣ<'6'.O{ ;TLP#(oO /35 X9ZvdeRVq'd"0xM+ƍaeOgdY9s2yxhh.IN5ic&RnH܆xCk@!@OFR$.Ѓk)_>mbljhɆtDw'L+]e='k62Ы2 !Y{U?W(N`p|"dq   Kj-L$wI]|MtǗ-Œ d٣ÈSWVNW;=&=koz!R\uV4"V3R w rAo( L$?TJ3ّ#eFKq-H:Җ+eCΚ7R\i]V<J!s^K8H,Եݑm@Ț#v!N%%&hNR3N>2䄢̵4Ytz-?%R4ީ5-IoaqyKP hw^^9TgN#H矞u8/O!ǒ1aF~swiƱ`%~7LEtN%˧vޣN!9=8w΍>2b.nc:1`q:O :(͹<6H;jbbs7ç_l2 @@ H|5)NV&RI$'{Mb})2ȗ ؕE<Ž 1SZs}..|:4N[4 r :F$~ܢ4'1Q;ZDIhs`KQ|HAFh᥇_du`t(}=fE( NJ3vDؑ>TJLESJܮV֨Tגd&zˆQ9Tߞ ƙćW[zz!k[♧YVZ|qVkuUf&K|5Yn|1$Ce]kLt(hSO-0:koY!QZAh٠,?1եٮL$gs TMdcEǀ][8Y lbiU'fg[Rdzي'PL"Sޕ^@.딞[^#̣h"JYK tJuH;haXs&edpn.Fqܩ sK(Z-uy(9.M99?f0[!k+`YG"q0vLn: J`VêSɥ.ϞX9s:~hhPQV9eY}>|@  P>~~W I .\0IENS&ґ JMl\ވ)(dH+wHRyeW`L2btsK&M@|&1>"uRYm66;RD ,#@~GA@@@%Iy#Pԉ>@DMB@@@@j>Nh:@(_MB4@@@@j}LM^&P=ݽ<6&Poh=4AyP=hHjDp   }G&]    L5 ) &    mtxc'PG   %I+uI$)jH   }Ed5ܼOpjH   }Ed5&j    PP"5WݍƂ@&K w    WJVλppOw_ )4@@@&<\8Rh,@_(_M>4@@@d4@@@ ,A@@@ @M@A@@@BP@@@@jR~dG/F0Mgd) 4w]VճE/Xqn` #_Qd̍2 FZ0,5#JA5Yoܓ_ @¶4G2r2A}#LΤvNmWje4DspEŎ0~LpĤלg98;B*\q|9"  ЇRZAV[8dBYg EeWvHEGuغ"gs;iW O']Y{Ę xB\oG"ܺ Ν]S 2iŦENomv?1ѹҧR 42߳4T>>0դNw 2G@ &;ݵ5["};+M;RPkR=*޴֌itd®2]V 1gm)h g"Ńm/⼬ABJ=ߔ4Ɓ\:%P6ji2&1ƧӦҜLPLMASWQi8A#dw"  {JVUpcw@Vh$ƪ'lENRq4Ae lNUWL͌7Y=SXWH]3A)<@(YMuIRԳw|7ޭ 4-gsiIaɧ41S_W)uY"@1E)%"[P.Lk{rQ\}$w`c6W҇@G؟~ܴbVZiy'm\.9st$֘Jb̺}v4@>~I\`#?HEN:S&ґ JMvsX O&  P),˕@4e/ !@g˭i дA< $d^ct6݈ E.=V!D0ӝJXOL5i? ?PI~G O `RMhZC0*Nw 6h#xdtca Ms3`dv`WGlq^_cL>i-G1@&0K9$dE,"R2(Z2.65:køiM$ɷAP>l@&kmJ˅Ĕ 4@]Rߠ:*֩VQMUE  d֓>쓜m/CN9ssuigS8Rv.=K v-u7qʹChc!lj-/1, 욳7"JuW~~ I .\0"')`H&|y:a)=j4@ 5!zט ^^zUuӪ߽}3ӔLHP*?ƑbvV}H,kV\4P     @Mg    eI~$?5#9_LC_4矙H3OSVُ4YKδ!TG62%~&tpz/1\qeYn]Ht]TQ]vmW]QElh {+XYEQPI#DΊZF&"Uq'{L;ͩDyň9@ (UaYG %J*=C+amV{SRJu Ӟ'h@HLQ8v %weQk Bs&{6!-r XCiFs2)!F՜qaVcqD5jZJh]VkY'6z<EZH7N2#CswXᆁX;ơ?4w{uxA`Ai}8 i9CEwhJ|Bvy QLblL֣¡1J?{son6H+c 6sc|30`oN)yW;"Ōmo v[;٧nflP8]l0{--ٵKۧ3xi*wA_32;r:?><ڬs Z=;hGv:{$"؏cd׳1OL6ƤI/m XtwjbCgł&I5SU]5 ^gw;*.jp\udOLFkē)q xz9~\|$RoC8QCMf)y}Gad\ >d#[c* 3 `{KoTxMEKLu16Fu$'52~KTUK }.GPO^sZ@HuN{|8KMd *13'T!iѦy.yC)JD'QIl:im)bQwcit]0<. iZdkKiC?2K59>34k:?|TUd{}=x ⛙@m)HY|&J$0Hêד.w$8tK5MCCC9 X8ܨVnqߛ}~6l>aVф|3E8_<(>~ I .\0_$N#1)%x@PM6 !(Req :-%9='5D t)jդ<\n=ݒl\i\_pck/iEZLg E\Djȓ[pF&# @@@CL5iܯ-.Onm%G4vhC #cFRGn2l@@@T`])#1YV]4@.rlԙ.A@@@j2'T$2]=(     @Mfg    #&1@@@@(SMO'FV%`՘/O)=ws?gc9t41xzBQK`A;8qB| ށ%'PdhDÿK3Y}jG8]Θ+3"l"NJ]Љ )!_|/.wO0g=z,L6#^:L`  P@9jR?QRjΣ%KI]iޮ#%4}DG=KNkF:$@(GMClrO ~[D1ߊgk׮gml2N|r5ӹ@;Tg[6JmliډaNqbGkL_1uCiF#+Or5ɓlHRfdOHlf4SU=>f'0ga, ӡAO 6y6 !͛ O/zTĊ3kF57K1 `axbZΈ)mYCn06xYۚ㦅6bj d&2r5Mj>9>)`Erb r~SAgT$ޕBA^k,K=Ys!gҽ- S<  XYR$_r~ L~#31@Yjrpv̇C:O _cE w3H)͡(-ϭV? FЭ&7*Ig7RrΓ赘_wEJr23l@@C)#e|SW% UH_cq=He0''ɬ(l1#9_ec34eVbG™&pv"䴁KC;V(Դdp35n1>^{|)oHàY#6Kx6ڢ#w"i16~A`f2J>9=I1#PLw4\br8q:~ s"ƹk]nמcJ W zN `^E)bm$4n`p|kϡɌ"sr 4QuP^]|>FdpQ1+HYς  C`Vêדe7e/KX 9sbufhh#^iRs86RDyԩ&KoZ:āз]@s珊!I =_SO vY,A@@jNL6$OH-Rң=g[8KE`Ym`KI=q ū`8 g7xeAL]f>i8@oPMvwP`SNOQEo"2FwuS&P2OCG94P@@j9Mn+]iQE55HYOEl.:L$g(㫆%@WPM9t._LiR[N3 8X( * 2__t dwd(9u͗Rv-z5f'XE䭂R2^PF%+"]39='cX@@jޜTB)(3N?ib* "RC&]]D)Fk2}ZngV16  ]M`VêS3.|){^B3|͜9s¡ք&Ĝ)k`(S@@D#eHRpylOTO2ydPwnF@QtR!(Bj&5&by1EΛWa%zh^*A   5 Ufp;L]f lp 4h<w0Q4#?G744Wyf|Pe9lNYHmUDc!w 6HPt5rd^쮟1:!jq+$Shs8m-S&9F/2 Hm2S@؉IjCM햟O v3]4g5G(UiGT1N  KL5CJf3'6,1#g&$6zZ30==ᔘa7imn D!arֽ9>JkNvoꐌ>tGd:0dhS&003ӝU.b6'I `&㓓~X:64iaCO dݨ:|YKv5G W߿)iC)_WѭN{H0&PlH2=i6sJ"{j2s>k-b@* c#_:Gm\_c||ido"%9C @PMv_)bf5$U8}p՚2_30twn5T23,A@jvףX [>$ZkV{1s'RqAߜL !C2>N.$f0~#Pn Gf.19O鼠(O{ٯJ, -q='N";OϯSsV滙HIPf  "PlTSz:*W5ƇCJ;wZVԭ_c|/bhxΰF\箂bѸ.0rH)`^AO$:6ݭdir&Ou'qd ch $?fn"H-Uq9-:VN -"ƴ8lⱫ*ڤjC1G˨ࠒg) ٜOFD  O`VêS.޴qޒY 9sl944Ts=V]L&WOdYW69 @@o @ʐ؞^G '4e,ɠdv NXvno(  P 7|Sյxako DZzsh^JA@J$5Y"peĭ҆5-J 3j$`_5ٟ#wLBMf    B&>x<eb+mgsrVcH 2&C ;P@@@jŊ(#WiUt-L R31@jInSPSՃFOXg nQ5Ƈ)%)9@@PMuԊ"KTGT1ӻvHRʮ%XxJ[JrzWO6El  $PLBS,B5mPXTVg1bz$jZuAiӘ1`  [nZ1nV^Oo,]v.ny9s4P)Jș +6[[Qt R}12$)p֗YCn1uiK4\~T6p@nɆ\7闒zGg.3St87.V1ғ6    !Plw;c'yDP `F1h_At)pj T  GdLΞnrOKzHLFJIgH_6Ɉ @@@BMe̼pLYWyn)Izt1l@@@lI]8zkLqy\ٯo \괢q-.L.b"xt܂C:$rtGL5i߯-O/j;e33pYMt %s!)  7YX~#P7vl,+NUKY@@@XZn`tyEM Kl    vj蛊=K#Zcn,v    `I$&1&@@@@ #PVK~Oq6YkO7,W?`kU4@9jUȆNw ԩP/K5ϕ,7M @@@Q-pxVg#:l=7/e"IJ"tugP1w4,A@@@jR+S h1ԡAkѦ'Y{~0< i1p籷 O 4@@@  դNw B;+1>$53S{:*C)4j4|f- eVb I^NI`$gqIg   JZ5j=Cݑ8I#1i^<4' d=78#(˺פ,?.S1P #8w*,A@@@jRO2$^OtN)TC-Ң?gxfBJ1@oiŸ;Zy=]}7m|9s[eކJŨ 4<@@@tD2$)pS iأ@Q͔UFR6_Ӝ|nk(UJkU@ &; gɥə53*%:wJOy1Y=(1#&YLjhiZcKNp  M&Pڮn'b[==YZ1RC #75$*>KDD_zD h יִ;Sm,MtCl  jTeoɴq9:gΜzBQPRUt_8}VUkC$XsA@>~I\`c̛w”{t$rB8)D*RUg5~@@ @Ms HI(BjvPkEQU<Բ略@@@ d$O45)Oұ8w6䆯9X˭bp qޯ#q/l1rV)LDo9yT1aJGjoc*rCy$!FH.0ZD%iUux7֚*h`sTfj&A@"ɊH5DIH,b{d+"͚Id0!@ҭ2&HaA@ &)%i3rpsJT4-$27j҉QEv3zLO벛`g6ZC"h1{{v\1f*"C 1t );mY̨<ɭ@Dek8@*%PyvۈXtJ"- s4mJT;yO\НZ[HɰKM敒r}׶{ c_gKah]XŸɳl6(n7A7-_<0 1صDӽflN*GF,+f ;P${EA6zWlx*eHG(.gumD\YJ C`VêS}K]sw?^̙SO(9jQ[dTH`ϧƄ(F*4&l*R4jxo<R}"eHRpylO?(9~)`H\7KxP`ML }MBwAe@bl hP|W7FR1l15d0&zl*R4g`l@ JpO45)ұ8w6<Ŵ='/:qƨ:M jay~cp)lCAK^כ֊cH4`[g?(ҢϞ4  (MMʃED'pJ|zEN ^Z! i7b,(eRx+ƊnH @#z8=D5eAI:q&Ϫ1F(-77~U+'K]swkAz3gNUmhhDo]γڗmuz]{NG  )Dc eHRpylO?(9~)`H&;E:MfS#` E@@4IJ}9gWAt92;yVY_   }Cjo  @MV.A@@@o&a@Nt?AOi&:8P.ɯYb]V-NH,R.%Yb-p  @Q,YJf"i)d3S$SCƺƎtʀ=2SVChFFUV) UmLEf!Y "tFϊZ  rԤ~t Gݐ1ר`KIO6cc)`   NRdd SjƩmr3a\POٙI, ~vkCMLT=1[Ff r1g5nK ֚w3G`'Juv$a?XQ}`%^vK9{9x1|` =O&sP3=E[|BM2D>[|jd{01]DMsv `[J0gZY[8;:fѡiFsR4ΑIRdBMgRFTL$H 8JM5S a.o٥r?r8GUtdRDDŐ^1ͭ j`bZW mD‰4iϴR$dDBmEiuA()Nrx!mt#{-U ajdeDcB*M,:x0FENpd>UqRM:tOHT>oBg{S%t@9j)%.g;BJ y_s07C|02-gUlRa;ʹ:,7k(I;>-2cщIrk @@&fΚ+{O$PCpAs)SYh i?{SkNe)#m*Ӱ,@F`ܹK]\#.GM?)o{*-x_dW1LO벛`g ێ .S0:*c[f rF;S$Ң:FǑ씷}βC8*%Z7LX`  Ef;3iI|ם1ѳ2Гb4QJSEZ)S5"gP'6Қt4pzhTK N6ӧyM;F3`4nE55r|obIeJ~Y63yPvHYpx0=iQ>!fs@0 @K`y\sMk!eICJR΋)1b eљSѪH'´Č1 jOSz01K-/h"ĘiCS:ɈB 1٦":J|LxO=E  jKSN) lUjUr$xBAXE0FW:c("NF)fD8aY)(LT#oK-:˨uTLǕ؞L{]_*LRDgC9jҖa ;tZHs{c8640R;:&mW*g3"|#-_EUYI r(GM:↛`{ fLjs$X|EN\CN#ԂH*nZ&W1wqX4&ɉFyLgbΪ("G0 53m<X@hhng3e~$/rMSϾU#'?}eQ\T+9M: ҀOչtc1pKf+2`X"/ƻ`8jl53ތcLuþΐ6  PsܴBҘءjw>kAz3gN=mQPRTV<+F5x ` K knR?c/?o=h#i g2">'O94@@In@@@2Ț "`PiFR2mT0Y=3&v(JɢQ@@@@ܤ¥tÀt8ws    Yr&YB%;;@(9d!!O/CA@@@ &]j2Ng@w#7YE×NxY$ p<7YSJS     477iKIj*2A@@@\ M:d-7,6x@CslyPsϞEqOwCA@@@CIyt9oHdރ&;Ehhn2 &;U@@n @nQ5t=&a@X?3 i[tYQ0ۧ9YJp   DI~Auvɯ"Ax7>#:ߐo@ss5U]}nK]QLeQ @n M'mpDMKI3$~cِ"q# rgdn6֭sTw[hznR G'5 Zo8uz6*ggTHNJni0M'd|8dP_)+MSz!%4(__K8)@@@ &W~|"3-R)MQ3*Cڄq*&&uJ@WȚ498hު5ٕ &6   %dc@(`WnJ`v    AIyBnsgD39mSbKwESc)‘U-@u:4>"\O:e@CM:`&Cm~/DIΆp0֮M~;"'u?U"Ind|ó6-}ffof&0,޶@ҧKIݳv&H#_Q_ 04@@TŞR-{"P^cc&U\POGX\ts4o"1E2)Y&ºmgz0d   P5&yv)7/zgrOa4& &] Q2:iES{ VE:Oԣ&t)CcHD @Cs~ObHhJ.qfԌY44>intoBFp$ĂUD86A@@ MRwO[L7Ӯ=4Af%7QTMЂU q0f@,8*'Ο3ToTAEA:u+_iLG)@ss54>kH3&d^~f[n-pt)+`gGYW$&B؀@u 7r׶.sU+E_Eh ^B$ iDu3a3OJC    MMK+x@@@z@Csא;P=3n'ܤ3+ilwG    tJngA@@@477i 77"n'$a&uۇ jsFǔC]n\()ܑS p8|&m)I1&5@@@@j&P07iGPNYs;Q@&jRnOh:r i*(@#ChnnRa9wVDspOf&٧ӛO3RF`Yc= 447OE(la)$^+kOH>R2.[?lS$YJf%kؓ/EI5 A@@@ @Cs1ME# )%Գs'oۉL'tfaK3˯v;k,r@`%@DI,fdjPπKx\1FEbKUΰYjSO3Ni?Q#@4,A+%WAiǬQ\#۞ NE4qk`   M6N:#gD̉SIV3Ms蜢3<4yjg@u+عT i]x@@@htn2kc귏Z ;(2ݜ)6HJ*1@C447Yѽ5Yϸ=H9G>Gem$dadQWиU,5@@@F-7`JM]o*m}~r$Ι3'J}3xNL]b344dѸe'?z4Qug#H;f Lk1mx-ܟk`    X%BҙO=$yqMKG~ɎdG¨`ұxP@$%iqEG    4AA: dMcCn2YHL6? t&/4rM    FIz/E98~w:~t۰M#mOX#"3z_iҎ\  =OI~;Nq٥=vRRv؄'w[f Պ:"DaSH'oY`   EO,,.KTCП"wbm*E`P:"UOJfT1mi5d|,&dҵ8h{qC|C Q$u/ڭK h x??#b2F1n%;ҿvQ1Xt5&)Omg+Yψ4=iXh:[ځ9Ns§yIVҲ'Ld:OkDsyCuvEb:Ӯn_9>uv7A@@suaQz:Ǔ#>ޛ3n1D|~!N3(#t% 6-MlҾherc%dGʩў³aP Ő9XqJ&K$LUڌmj#bbilfxL@@ F&3Dc{JTTꩽ+ծ~1sBrzg&שR+ɼ" _   P IRr~Y{k"y]h=Ì%fIɘ F1blbC66IHwz(mii!3&P(7kӡ&sqIyz>up,EF^B')Oeo:0giNNxv[x ɮ5wGyn_g:5(@ܤM9Ir+O/70etES-6f&M$ޯi7٨.-`XtԨ ?G Fx8;=Sxdq{56/xhBIWL5#1.@@@@ @ss1@@@@*Mvy=_{9b4RJ߆   P&+    nF#A@@@"Mt˝;+BS _s0y|aZ'U4h&&I5䉒ΝKQ9MԹh 'dO,HjO?\3?YeWA@@z@CsNNYo𔴬ޖ ~{v;{3;eZj{Խe'kY;`S]m桗T@@KIWI"R.NgIGz[w:JTLCkƂҖFZ14z\b`^ hi~= F&I#ԗ:^]C-g)+sCѦ 'bߨl@@@@sv'#%C2ܩQiv^H/>1i܅cfyf&Iڗ:Qdrc4)QqJҘMڱ`-KLw)aMHJN@@@b447Y51,mbRΧKf}My1k߂{&W7:aOUxkX 447ɗKwNXtsc0;%,eG6s&Ao)0IQ:PsOsWC5@o(=79xM+)[m|;@9s4P9o.w(!]-ImSOc=v=X:V{"4&]M'H T.Ys{ӞC$ث\٫p.^Mvo!r<&;@@@@ss0 ׹tǘGKf H |7;栝V$@&YBt;wޅXvS|)raY6J֔9z05[E@@@ &IGڍqf A'X$A>A:(@Cs7,1Ρ$GfcCcu:PmU (3zgnmbdZ,ſ_:Hy-A@@? M'ٿHd,=aі @@@@~Ycb+SMo6    dpB5)wycv;3`   ]G5{k0B5IGg";K68(GMRcd^0nH#  ;kV,ɬ@@@@ni'!d @@@@g hCJɞh`OJBM 8RjG   U(mUA@@@'P6~éGQ#TG`ppp^S$3xr ̝;w˃]-%ƥ&-Yb0]"L9l=o8[xƍaɚ$?X{x @`Hk׮6},I:bXM^s5 'SMW˦7mM  K`yyrTmf%IIyij{{    $jRP6oQ02A^_/6: ǩx+m0 !1Y:R8WY{[_Z]&:{xa|g>lhhy{ ! @@@%&5;`-h@>#IOr?yw!vPwm8 o#nӂL.rR _Wڦ"g /# oy晼\Vv*^џoܤydrJ\"AD{h@bx (5PiA*FPڔ4HXx1 >R0`0f%/y_| 5wym{?~38sa%L>]hxsd:oNů:y=8=S,]^rqk:H(@65cbl116A. n#7)MZJgv] i6EfL^{uA {)deoח"@?*'6іNo|; KJ۴絯}ma   P j2Fm)cOO2ԡ&Ȳ*I1O^_ {e~ Ȯ$ۂ6Aސ!86ﷃ1ih6-joGގUtső0܂FpFE,H\0!vd2y+_<2 ~Giǥ.kݹIZ ?n&Rx6":j$E@[ó@CX;6JfFKV}ju@)^ WOb=V "bh)XuO#4_ 5uNYH*8" ` h,hHɜ"YQ"d7ԊtYE(y>BüK? 6HU8337$@H棕    %&fK .@@@@zn@^ @@@2љWqrnT\H=݆KQ"l!DS =8Eil@h((JM%   B९bl9~}Ijc,68@ G,K" rO{< $ UIp_3>5ɶ8@nwIRj["q^$҂gD6KӪZ',F{1&U3@@v].k.L$&IWa/&kǒwϻ[',M{tkO9mMω; /tOixkti[bl&G@. ܹ=:sJ ɸI/\>}wܕ|___[:K%UMZrh@= {fCό@ABC EFGHIJLMNOPQSUVX[_$b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 -oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9]^_( ?  %MQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and propertiesDCOM only have properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value)%:C,% K@ .2g G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseB?Msxml2.DOMDocument?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.comL5 ZB 0:B 0;c]B 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(@  D@(  Dr D S  $ `}    D NAAA ?$w  H D 0޽h ? ___f3̙;/f980___PPT10.]A&@  0L@(  Lr L S (4$ `}    L NAAA ?$w  H L 0޽h ? ___f3̙;/f980___PPT10.]g@  <@(  <r < S $ `}    < NAAA ?$ ` H < 0޽h ? ___f3̙;/f980___PPT10.Zԧ!$  @$(  @r @ S $ `}   r @ S $ `  H @ 0޽h ? ___f3̙;/f980___PPT10.Z\U@  `@(  `r ` S `y$ `}    ` NAAA ?$0K  H ` 0޽h ? ___f3̙;/f980___PPT10.dA$  l$(  lr l S $ `}   r l S d5|$ ` | H l 0޽h ? ___f3̙;/f980___PPT10.dJ*  PT*(  Tr T S {$ `}   x T c $=|A$ ` | H T 0޽h ? ___f3̙;/f980___PPT10.^@  `X@(  Xr X S \D|$ `}    X NAAA ?$` H X 0޽h ? ___f3̙;/f980___PPT10.c1g:r,;<;/wI?m<B@k(   `@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspxNH#Abort_Method0Abort_MethodI:#GetAllResponseHeaders_Method08GetAllResponseHeaders_Method~J2#GetResponseHeader_Method00GetResponseHeader_MethodJK#Open_Method0Open_MethodJL#Send_Method0Send_MethodM4#SetAutoLogonPolicy_Method02SetAutoLogonPolicy_MethodN8#SetClientCertificate_Method06SetClientCertificate_MethodrO,#SetCredentials_Method0*SetCredentials_MethodZP #SetProxy_Method0SetProxy_MethodzQ0#SetRequestHeader_Method0.SetRequestHeader_MethodfR&#SetTimeouts_Method0$SetTimeouts_MethodvS.#WaitForResponse_Method0,WaitForResponse_MethodJT#Option_Prop0Option_PropbU$#ResponseBody_Prop0"ResponseBody_PropjV(#ResponseStream_Prop0&ResponseStream_PropbW$#ResponseText_Prop0"ResponseText_PropJX#Status_Prop0Status_PropZY #StatusText_Prop0StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx]@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com/`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htm/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` l\,       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[_$b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 -oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9]^_( ?  %wMQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2 O G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|}~Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseB?Msxml2.DOMDocument?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.comL5 ZB 0:B 0;c]B 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0($  $(  r  S $ `}   r  S X$ `  H  0޽h ? ___f3̙;/f980___PPT10. yr"1%mŹ]'BRvp(   `@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspxNH#Abort_Method0Abort_MethodI:#GetAllResponseHeaders_Method08GetAllResponseHeaders_Method~J2#GetResponseHeader_Method00GetResponseHeader_MethodJK#Open_Method0Open_MethodJL#Send_Method0Send_MethodM4#SetAutoLogonPolicy_Method02SetAutoLogonPolicy_MethodN8#SetClientCertificate_Method06SetClientCertificate_MethodrO,#SetCredentials_Method0*SetCredentials_MethodZP #SetProxy_Method0SetProxy_MethodzQ0#SetRequestHeader_Method0.SetRequestHeader_MethodfR&#SetTimeouts_Method0$SetTimeouts_MethodvS.#WaitForResponse_Method0,WaitForResponse_MethodJT#Option_Prop0Option_PropbU$#ResponseBody_Prop0"ResponseBody_PropjV(#ResponseStream_Prop0&ResponseStream_PropbW$#ResponseText_Prop0"ResponseText_PropJX#Status_Prop0Status_PropZY #StatusText_Prop0StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx]@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com/`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htm/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` p]-       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[\_$b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 -oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9]^_( ?  %RQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2] G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseB?Msxml2.DOMDocument,A DOM for XML is an object model that exposes the contents of an XML document We use the XML DOM by creating an instance of an XML parser CreateObject( Msxml2.DOMDocument  ) is the method to create an instance of the Parser object Msxml2.DOMDocument COM object uses Msxml.dll H-7  ?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&C@ Msxml2.DOMDocument Code Snippet!!&'lMsxml2.DOMDocument Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument") 'loadXML from file oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml") & & 'Send SOAP request oWinHttpReq.Send oInputXmlDocP ) :, :7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.comL5 ZB 0:B 0;c]B 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0($  l$(  lr l S $ `}   r l S d5|$ ` | H l 0޽h ? ___f3̙;/f980___PPT10.dJ$  p$(  pr p S 0:$ `}   r p S E$ `  H p 0޽h ? ___f3̙;/f980___PPT10.f`sƫr'B C@mu'oCRt(   h@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspxNH#Abort_Method0Abort_MethodI:#GetAllResponseHeaders_Method08GetAllResponseHeaders_Method~J2#GetResponseHeader_Method00GetResponseHeader_MethodJK#Open_Method0Open_MethodJL#Send_Method0Send_MethodM4#SetAutoLogonPolicy_Method02SetAutoLogonPolicy_MethodN8#SetClientCertificate_Method06SetClientCertificate_MethodrO,#SetCredentials_Method0*SetCredentials_MethodZP #SetProxy_Method0SetProxy_MethodzQ0#SetRequestHeader_Method0.SetRequestHeader_MethodfR&#SetTimeouts_Method0$SetTimeouts_MethodvS.#WaitForResponse_Method0,WaitForResponse_MethodJT#Option_Prop0Option_PropbU$#ResponseBody_Prop0"ResponseBody_PropjV(#ResponseStream_Prop0&ResponseStream_PropbW$#ResponseText_Prop0"ResponseText_PropJX#Status_Prop0Status_PropZY #StatusText_Prop0StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx]@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com/`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htm/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` x_/       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[\]^_$b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0$$$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 -oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9]^_( ?  %VQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2] G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseB?Msxml2.DOMDocument,A DOM for XML is an object model that exposes the contents of an XML document We use the XML DOM by creating an instance of an XML parser CreateObject( Msxml2.DOMDocument  ) is the method to create an instance of the Parser object Msxml2.DOMDocument COM object uses Msxml.dll H-7  ?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&C@ Msxml2.DOMDocument Code Snippet!!&'lMsxml2.DOMDocument Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument") 'loadXML from file oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml") & & 'Send SOAP request oWinHttpReq.Send oInputXmlDocP ) :, DAQTP XML ObjectsXMLUtil Object XMLAttribute Object XMLAttributesColl Object XMLData Object XMLElement Object XMLElementsColl Object XMLFile Object XMLItemColl Object   B 0EB,Example: Compare XML files using QTP objects--&  Set oXMLFile1Doc =XMLUtil.CreateXML() oXMLFile1Doc.LoadFile File1 Set oXMLFile1Doc =XMLUtil.CreateXML() oXMLFile2Doc.LoadFile File2 Set oResultDoc = XMLUtil.CreateXML() bCompareResults = oXMLFile1Doc.Compare(oXMLFile2Doc, oResultDoc) sValues = oResultDoc.ToStringP2% & :7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.comL5 ZB 0:B 0;c]B 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0($  t$(  tr t S ,$ `}   r t S 4$ `  H t 0޽h ? ___f3̙;/f980___PPT10.g`B$  x$(  xr x S $ `}   r x S $ `  H x 0޽h ? ___f3̙;/f980___PPT10.hprD O{BmERs($7l+ IrcwPNG  IHDR SscsRGB pHYs+6IDATx^GeYq,eM 0Q`$Ew,*,@HFB3Dc1,XBK<"Z & ۡyv:ӧ>~}=|}G  #?=@@N.p޽?^z '`  prg}NF/;G@l׾7uܹc)~ooUaI{;۟uV߶{tE7 u[u=fpsmuݫHϣn*w봩;'çқGgQXp/rrC]ЙG7{Uh_pf|brS`MYμgwgfСejýbN@r ,>WK gܛyh~VhN;1q/Z_87dȞ>Rɺ ;G{ROsy)YH3?{n|90y_ZxtF#{;1Ro~խLg;}B@F DF_N!T&v?]å28"odrOoho f|'ߗ:MfdݼBbcFMSa~]+om_raP ox;YT;*_ڊԊ#b#baxt KWs2+ԗU].g259Fx{kj*j^׶TlTTF[L쫾S}ͪ5$7o?dUpC?J_g"WꕝTz3wVB@(000RGԞyӶ=zݻO=Q**Re>˾}}.#DFWx^4>|+_Ci!?ޜ.#|ݏzWt;? |7O淮#|]vb  P*`Eٌ9SEu7PzS`gJ{-}y4025輑Se[QF|zI6  L.଩e{ ?: RH*o޼nݲ(Fx?Zi}$u" .f)9(љ@l"/}ЦL`C댑^V+ZP+݊  MsQ~HGHH]Jkϟ}\]a3ԛsZ\O}4sF\l+}ѧ}s&sTعWWz]iWsW7>] # p66_Iz!#UƜ/ׁ5{pq+Oѫ^vkgO]<ϚPx{Hwpky֬Sw}y֬=!gwLr/cwd氿MM7>zGh7xͱ)αvgݱzbb#5s]fYtx\EHF1Չjϫj7!aXֱ{ïdbSڇ{v7x!z? >j VxݑHqSyxrバB` W)nX/? iLBbqjEVX#Fr.̐![IfnGH";]~η!6rg7"VdzfOYU6;u\<12q䍮]/AMTj-Y+;XѹSO2 /j'7QUѱQi+eϚu:w}7@Q|#62+"FMEN`}%-=c>`C /a{3fxfoVC 뤢=څӏ|?>GFtڭ]ǘy_^ .IӶەgg:xmUiL  P|#6C@xyNk6#B@F  {  @l> *F摶" + db#%jDE+M?cA@G 7Oe3fs(  @>6rFLbi%Ƃ F'km݇8 + c#gMt cA@ c4M:r:-+G@ Ffؤm@b#42g#q; , pG4>a  @3>w{?pV͆  pF&: Dyὠ@@`&sg}A@:u@ @XFhd   P#Oڛq.v "  E޻wO]ߢ s.D2  pTu[55:|m"#v`3ԉ hpvobGԱIp F [`=%M.*4ӳMف@FM1_2-I2@?|Ĕ^zz66K~< qŪSouFϿΜٹ sm*)1؅uC~IWу2ojw'K/]Oˈ>;C_8Ԑ?ZRZ 7D[KNRT(]k((- tClxF+Xa0SDzt, {kN8nP{W@~0b/ *ZE=ML:WYYCS@_@c'qguj}ãVF;Ni~~J( @Do U!vѹDm;wʘufވm㧈@N+N; @k'6Zy`l V {=qo]l;h@@@.O Ha@@Z@/ Գf;Ć  Es=?юG  0D@1On{CݨP~$RT wSICD@`뼑tHIcQtQǪeHo@v4o}GۇsF8@Kި:5?0JJin`obwH1i X_'r{ nQuy3;h8MQvZŝ-C@c 半SKA#.W?oH۪˝.%ʨIkTPWvV2j=euz8X1z p,\R}O9qO0ZD~KlJ/GRe,mK#rγV& -uy#ݢ46&d:aD+-QqJ {_8 7kԀ y#%+<}g4ի~* n9Q/jA8y#7~;} i٪_gwT7sbЌTPCR1?* ۼoZf-E@@ ;FQ }0Fz|iyVZ.c&IjPP@`w}Kԋ|Hб+IIK˔G{RZJg { TFŞxi?<5% L aG:Z_[XsvڻJ  'h9ߨ56aDuNH8sgk99Kpٞ w!   i@e8hf†@@`_F: K`ѱ" .]wvXIoV3XIm>]j;/ipJ&z8#zH Qf9sb wlݏ$%eˆGԱ](h-0uȹ_sGFA:/4WHvhWd @@KhkW;6ٿ2 +&: ovs Z !! *j fvhqXt?c"Gu6ǖG&//E c" d#̱$g+Q?{ K!;J6w8u:h^LDm2:zp^M*ag{D{N +좽͸ݦ3M%ouj~`d ; ߴINC61]7WZ 2sѦ [; `/l|B>Hr64ݰωP88L[ w)KʅgRf @]hԂ#hl Ï4 n.扠S-="%l1acGFf e{B@<GY&aaǝi# h0QKlJ:s"O #)oI2=O87&(9W8=ORٕ\ۖR@1@F(:#Id]&)_%)4I2}f)fHK@ ġ @vZm[j@@`UPl}ڪsո 6C@`3Co  G otY  0J(YE@# =o }zܺZDѠ wo=[ae[ hF=V ޶6v-m`[$@hX^`QmsN#e֔ q*&NuMbUM5A&@ N&r7L’ %S3~;nẊ!Zo ̛g6vQf\ұ9'$_[ *P7ޏ䄝x0?~!?JH%rc¬IaX8QmbP1z$>iLt$JJ"hrU| yH$e>8e5ݢK6G#&Vb'T_s (&fvVH:כ̪S|#[y ǃ񖳭$%b88e%'dM$s.#2lL.В7eMq]&8Cɹ22`2 nJw?1ev ۾!tg$yANG 0% 6=(q*=5)>k9oxA`rX;ÌJ`2IA) %0}C`s@`fF#E a’2vuɩ6'CulH[RXRl7nԌ+HިKxTw"N4pdTNug8=]]c/ۖIIz2}~: 0@Khkg?YiG@@(PMw pC@pQT}Fssj+j^U  @ExFF :CC@@E`aM @X:5Q! uy#Yb݇4JqfYlAnC ; 5o*\GYэM^V  BC捲7q.]$4R6xZ&[)f6G@F] N'A߱S_oݴh.zvvc;G]Snl[£^EAD`y``xPN9;.oedׅ͝2ξb2L;[IMU)\0n  )o%c$f;D&Lq{,;tX!-Q$@f8RH~<%T ]'_E0#ZOG~eB?! @lGeKܛM&Z6el @FzK%ԲƤ@qؔ ^8}&0cd+@i7 G7aRJ`dsLvKꌕ(;5@8@Khg.x^~a@*#5;v6Ԏ S~ *Yw@yzh-@@h8|ިel 8%@@[EF#N^Vzsw=Zú2u[M;/H{HMH  G957s6IyImfl6VHy-o.zº H~ϞzJ  \%oϽVs-%B2 avXcO1 6G s3\d9N'Mpރ N738UfTCI@puyg9r8Ǟ0ҤTQ6xduaJD~Iܪy7X'v[N=~7m,=w F"В7ޏ򥴍-9)$%sHvB4(>)vEu!L؈6R4 Z.o:6uΥi4)q;įVMѰ/8aO[Il{ @7RvGϙUڵ}Z4M, ԊgnIuSu(8FtH\;ǾPw ;'et>rGc*@`aJ#ɊXpݓl?Iu1[v쐳vI{vD@H@[Mنf4 v,hY)m , В7:6NۏkG\B |AV{ċW ƅ 0y" v䍶%@_,y)ɍ*7+yi$=+S$y@ڻlEҍm>@j@GIIǶ=/MR^R<٠'4 k 2oT}oLopUM$o32&;<A%oϽȎocy܇)fQ뿙) LcM'3x 6;N4חEƺ-;ӢsD Ά} /8@]h{?xsqOç5u@ugr859G$K8فKERFS;/󦉴13i\ڣc{l{_78@Kh{?V/̈́䤐laNdÑ^4 KF')2(yOWKfۺKT jڏ(De(|N 6Ժ%mD:D:Z_7w`ШX@Hy#m?gjTb}jui4`x ԪғF̺J@7 ƕ}7[qގc#{p @ +pQ0:ɶL S^ +}-Q-Q@ZFQѸcaǨK :b۶L։xbР;ؼ㬍$5#,#0cHVG\‡X5bk}zY^!̘7ҳG123:&K$+klJ6yUQ 4 L7 GP%W&N,\|i>8QT6ii7}@JT*Fy@V"o}t*Q@8y^nҼoC;G'$0|@y``@VCdI^E7%"  7RG3.@{t/%K]T$0cC@V9o |عر<]9;>Mh}  "В7 ” hE@}*£?kh߽@\"02#<5} 5AT 2SokQ .o4nԌ dΕ7rP@N.s<վJLlI5ۥZ*A@i8[1 @6w]\oly'xjj@@]ZF{?ʗ'Ԏ8(Q0nei@uy#]46%nYrDO%@@`{-FjT##Sq~E@V"o`yUL  0Fy`x8wSeLD^FusV L+В7*!3W=t @%*£kcP  @E`dש=3eD  p\M7m9  -o4tTT  7sc+@XS`Q} 9- @v7:b|ciY@7jK 'DxR;A@`QQޏȼ17vj7=DW藌m+,-0,@VE 2?&SaQ".3hFWM h~esK3KxT*Fy@-P7Cvc%Èߡ: z=FJgh=! 7-9Qb;@"9o Z,LUĶ;:\\0@&hwF1L @ TGkMR @S"02卺;vȾw6" Q*#7'6: +D@# TFjq3 \o  uy#=SN!  (  7Z~  7*( ,/@h)f  P @ި  y姘" @y," 䍖b  (  7Z~  7*( ,/@h)f  P @ި  y姘" @y," 䍖b  (  7Z~  7*( ,/@h)f  P @ި  y姘" @y," 䍖b  (  7Z~  7*( ,/@h)f  P @ި  y姘" @y," 䍖b  (  7Z~  *-'{ߥc) -Iݻww<UgS?Le@@ OpM@@`@\F@ n0   6K  :%zEl@(7~SSO=hdP5  `G*0R]Jܽh)  0V@GH!6;Ԏ ({kbIn  pl`Dh Kѱ" X5;֗@@`uO#aγfnC@<ēE}}oQU855ժo# 䱎 QTSoR?Kܽ{V  6txI#A@N,̳ݿe'`  +p7RQ0  *otG  ʉIENDB`n/Ggú݊ PNG  IHDR5sRGB pHYs+IDATx^ Eǟ#҄'ނ' gWfYxw!gYjj7&(xKbJ*{y癝ݝ}o~ٙfv٧+q#      !"#$%&'()*+,-./0123456789:;<=>?@BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|~  hV?=vL ~iV,7 45q͘1l z“ @S鶻a hʲ$@$@$@]*|~uJ6-%?cKPgTDn){ǝɊDy?MT9EeS)%- 7v YK ű⏮euUB]Fű_/deE"UU6h=( QFxͻZh<ߕ5Ը6Jj՗iWwCj^im{m׊.*ʩE7uB6]M6bmre'*ε<Û7ЏvPїDQHU*lVh+_]Z.ӽ+EN9V%_xz.h̄HHH(G/\(68*XUwf ol#R? D:l .&VݼZAu $/~Ѽo@s27 5RMtf C.$vm4I@{{6mmN>O L7ظ Z;%ʙԒ{H9i 5kpf 0N;=D5"ULe >dHVo+oGh[ {^?/p_N87wa'}S쐺Zi]iYe+juG2+` `'bg nPuC# laG^37?"~ϟ]ۉ˥[y!l 7D#~Sg)(7=\Zkgrep촮u[ ewəwkŏ@n_YCȳӊO"ڀތ*V^^.z+Qgݟ ډ>G~q咷oHc&=TN-gdk$9w3{+;8=V<vȖOV6T2FV7y`xCPӾbNMM]ߕ7=?7P*-uJwݞ~us˰$I|ݑ*N='͸fN0 {5eO GJԷXnp? coF\F8EQ\ uUV9UO]9sO;K.uiq\/a/vS1/'B87oಓvU~z8ozV\`tYΞ{79> Iý17oz+LS~ę?Z~'Se_iOޯnjDB&Ny+A!4\&1phEٙ7z;WLw|S`-O\mKxIo zJCĚ*돕GW 0SY:_Yߗv> ;c16/o)g (` ȱ~O2G n v݇#;8|½~GsQv{;^i}/q3xqap?L/{y=~OGl 3c&{^Fy{Mpad۩WpOxW` j"DLzؿl#7psQ6 0 ݎӛ2.8>fh<8K|;:)h$LAy?};'͂Y4e(c55GQjX/ʜ9U#2YHB*8w?<;@q6v}||{7޺ 5}ǀnE N-A=p!@tA0 t p1&|'!v#>|؃Bsc8Rokء ԛn1f b ,!+&.aPL׷n@7RI|}: po? is'l(KtY7d!7L Ȏ hUuo۔z<[?ɺKa9/6LAۯ=lb+BR2M|)TI7&3'ux6edlB&PgZ/P~'1SEܟ&P.k@L`;b7ov:9j5p98z6X%mmmь0\Eo=uIշ#HJ" %fqqF`(" `&Xyse{.6deOhH7?R 5Pa:ow 414KoZշu Sm߀FT:X lwP/t\n~,]4tqEn?icXIsqjn DhLk ˛557T@nH5y whCi XBˠ9ǁ?wQ1o&ƽU@   jX7P͌ @ Ⱥ k`ɒkK@!m)Ij>Py}G¤˛4Y8g)ov2ͤZ2Qʛ)7Se`lBc7e|mb D0eLF$@$@$@XŢ̒tiqxʥqIg6]y =VY[:PtOWE,df9Chk1˛z(F2HHH8) 6ϪQbF$M 7 {"!ǎ6vذش<DZI#<ԣjYwi.1}yAgۄۜYOTCveQ<#;̂ bGuPCeT֯\=AH nWy [{77?q6[.V4\+ )Io߀md2U~U;~EfO Ϧ^瞝]tO:Ɓqlw=U4[mԹ(NX`-d @KrX (n,]$sz-zLȮ!r*,<Cٕ@{Hߍ鼛8ȨI . jϞ%t?Y*cuNjA 5je8A;ތ=2NU tApsHxyxdǯ?eWv@R$] {nS,636t;c P`1lZG3IaHp!q瞒] 9"O{n<矖] =$": ^O \E ^%HO/Ζ cWʮ"9JW=]IWqe7 ^#;W Lj^N{44sd ^hwc5o z&b$/o (SвgngVPwSL~YbrB 2jǁpŘMK_ov+E28b%[7;&Lmmz%YXAY)@ 5o%7( >S|92;VF%LZp?i, `HP9䵶@p ~mA>Iukj" v2A⨙)d+;@9ry813 ,>aK7SCq"d bx% ~'>y C Y4 {b8A*B} bddPۥ Q|Y& ҉~\?N'-,2ȗ' 1z$Zuxp̘1H;{<`ʔ1;_(*")68LA:߀!&ڐPzz %b(? S^AYYIr} QI8X(Qs#2@v?e2:`\jR@Pvbq`HRM\@v!Ĉ1_䲀@_WXWP&dקZE)@ɍH#WAfĖ7;rGĘ)S@S I1. @F q뮥[4ޘ;eWՕ⭳3%3GVr;e<|4oyr jk4mrgtW3 W^F֨'UŠekk`R$ii<TA/$ƟC FSumt-lzOfc.Mթ$ 7-#lɰ 4^Κ}LLXDH[nt1wqGΙ}v6)SG#( $Vܲ[$V-K21bDܭ:FֶAiQGׯJk`JGˠtf񑨾:F xfL&c5ěj m̔NkT0M$~=&eY8H#1i={6ݻmw콃5(5`môXs kϞwwe hmh)RcT<~alՖ˯hkP1hLm4 /GLbvEu5jҤRn}KV5ѿ]䴴æI =[u%0%M3Jڻ*zG^t|Kearbag~N;r!a~Y/x䑿!s_@E!w)"n:9^OᄑOy!ö&5u $@bQW!@s] 1P5Q=I!SV~ R3~yI-<1ܻ%O\݉ɭ'll5~gX 1&`=|WlIf*?@gaJOXWn%wJH_wqy7)^FaרQ>V_Ar|I?H2pdm kҤ R_[>L\;%KdeIyOWUW`g`LPx!ӦMUS|ƊE=Ԏ6TC ݳ,;]mEDdvz:4Z.`I>eʼνה) !Lԑ#;[.)or=w\$M((S@W]uU9K%檱`aC`l/ mvآj Rd褃lK;-qWX^mgb;GE7*#Fѣ{ aE&am}J@W>SW50b)e{Rb5cElʷ^C)'1~OLX|Tũ}'zo8okmvnp)cM;v\%Ufi+ŗkX?BP0](_?`䤃 E}CH|`e0a"v' ^ tǁ{vضs2n4N@Ȳ~ ׏9,W^]&/w6z&EPjwz|};?#s啿W;w+Q}>iEL{k*e۴ggoӽVzFvek-z䯮ͫ-X&FðP%s̕c1<ƯF 9_җ7<5򂩱Zk(nCDЈ2"o[mé+{V9 KԁVVn6qk…X`BZa3u+駟A3$Իe۳6ӧ#Z cm5-i}&gޙ]lFkC#G})hShs<(OoYtjGH` Lr֙{\ ..+1tG.}#:I\" #:7idzW'J_e°^_S'W\Yt=cu#C<߀,'bۤyPy+7P&t@0 +~EHr_Z^%mJ}1#8%2`Z(^p瞟"0Tj20vm!m Fwc,dv@&3O>ٱU1 'ԟ*I&a% r|*ڀ> {(7)wXl@\SR>߸t 坎kooʬ5r3J^}}ck`BaO+?Kڊ.m&#+Fi--bJ ~1X.8\k:Ww!&.:rm)kij!m M>_7 "}aiJ۔!Y1 =WYz:^;qh&@7O'BYO֋y?z:1+,DbHg&h$8|}Mc$g͙}]BP?购ZKm&Zii3"`\qe"czٻ;P=S5q*+!S4 b-ǎڭP<a=oȲjP蔂rǡHԵ[p ;ed_Q*VDL7jDE}lkU*q*`!fcx# +պXP+eJ#GX3MrDGÆIGf%c6}#7@ޝdoɃc-wAЏOkU-cml}8[lx0"Z0)߫T,m^SauL{G-Y\Xڊ ^M G}d=1lD 4pgDHw>XC0 챗1izWޘ9z뮅K)5t<9vB;s0IcPX4A%2qֺV8,ցՎo-T`o՜E)᭄a°ŀ[WF%8&2z ##+õ&7SN2!`|&uLj K6G.YV_J*Z`L+D-I0" Ռ) "k +!VmZ4#NBOZor*(^-(}?[^c=[Rw_XEnq_PS\z;c n[R%Gq&$Ǣa3RF 7x# vVL4fy|q?wcVd/,ȶQ]=FZ$/9u CN.}nZ6zY߬av-N t*i} " Vxs^PٹIqɝ}(`t㪼S5T E}Nyѱ]8j;\Sԡ׼_CL.w=w9uJ 8ɐjhV>SйP٪S>z> hÆEO߷xZ|dm翦v=8 c-V5tt x1zOqP6+ڴUfhktY vh+aH4Aybb@f4kE :~V ;eKfo˻}Vh.}ݓ ]6h~ = Xc3 7n5`^2|UwQ2Ay}!CK$U=;/]ld +}Uք /oMD{{}D̶-4>>c)aBt )XܸI:R#rˈƃT!#+E.$c/ry`_dny` Rt85tD")p Cy0UZ}@Xq9w7{H݇94m3﮼`r)]p؏gut製$l&L8[ Sxt c-mfMo;8%gpXc1 ޔ$&q;>hRIEg aE kg)zq@n]2RňV:=k Cw4LE;uGeA׏%F,Ct: P^`,ӻ4:'~VxU a;w!LR |@[oXlGgRKEsŁ?19Z-Gɻ7oXU=Dywv]xQ]$`')zaH*D= (ݻ5ViwMy G =SjJ^{OԱǏ>C #4'@IK QW^yPOI4crǟئ͟5}z5VҁoW5 tĂ  `^Uau9z2YG(QV!h-hu[%  LT՞)&:A_)P^Hx!Y̋/׻0j GywY^ӅwRs0JTzr=Ou:>t@wb{;:VqX(5Z_`USFtP$"׀KE )F)] +J5#`/_G1 oY{NK+LO?[҉I!pW7&po=a")ŤP|(Y^DӽE[z": w;s;F1[<O3k{o,X/mI?`ZK bWm5q_x K f3*@Up$cM7 \qW^~*yg{VeI貸I+Mv}fÆ(de,fNZO!NƲAc,qc٘X)`uǢ̈́I@䳥r Mw͵k8 j.)fSg^m"d`,&VlJ8{_Y&o  p;tP4| xo{ބxG fA0%ځͱ n86v-6Hi<.d[p 0Tsr` $aMEճCC; K gtKo-x.>|F,^y/~c) zb;V#Pp޵ҹEm{’+UuʤZQYFH$ޚy\I(bGKC묷Ksy>m޳KwYyрB^CQoۮ;oݪsyU^DņԚZ3V1Ug|e/Ksy߃iOj#ԈE^^*tuKB@@]C]>3t.Ze/~UDJFzU,txb԰ap׉o{Lw]qErb<ߞuނ*Կ=Q$QMU!2$ryTrL7o9 l)dw ,Ԕw'&kF挬DIo4*"n8 TחUngջv] +@MH`XʦzT/Z.ˀe#pn8~7[T>?8"1s8pG뵠CL}Sp4Cw>~}+ZңDz d`-sOw) ߎ:{mne<6u+eKЙ޸Z}JWxS,+]۰;pD80i"[@' [#@}N񭷽bɝ-7YqZܼÆ-zD27? nf&*k (!t T*/ʣ~@_!]|xSy^-oǝvJׁBI{>\am5ZR \wl:';v4E`.0sM$;tX1Sw(S!n'}xD^74glayNl]6]j"K#QQ׌nЅk_sɚ*o.)0/Y:$s/-2k'1!XN~Qr|EË.B1 3?Ǘ].a oֳD.ũC!N0t|=z̸A;혮:*R:D 9 M${ ,X٠{<*da\Ig}ko֚@J&*Bjk_Ͽ+T"Nj1?k,RԖH=TDC}ར=z,o6uR~AL`ӏo^U-!Xvioy{ )7_M`&G㗩N6i}mE7v7Vf@dBȝz,rRE={z_a]xqJ-_tSM/w,Zt̜\nxچ],QIoS[>43D!g;EC捛'G#Zz MlBJ%Z|_BjTf#b  2qVLcpʟxvibul{=_DQ7Zó%j3'=ڢQs 70lH^ro 2xp(E`tYS(|ʲLD[>{iƯVI pR#6N7dʼ^cxiS{6-W2+VxT= ߚ}B7`d1v啿GON>|j}WDҖ] B$}#'Y"_waPm#:0%/_UU2yYp%mp (!L7=^{ZuaL5Y[ot>Q i{D JC?xݷn?hUyԕ׷gNn0`sD=z/K+eNQ4RG;~Qw~<8}uL$6,9s~EO wu|@ȗ5{G {c|~|]wZeGB" ECpIQ@cyՊ-Q@TK9oK#駟A'﹟:Wf'q6m7`/%ݢuDG\* +9'">aoMܠލIkא!{1,,r_Z^ԎzGb' ,pE%7XcR_/̭WBũ$cF?K5'E~Ƿ4S} zu ŒJ0'ASia ~3UW_5-g/Bnw߾]gg͆ct~"] S`G]DJݎX8^t['R@ h/A4jdR:ׄ [p k3]cՃ|D>ыzr;&HEe  4H@ emrʔ6mo\FbxHp`;JJI[}&DkWۇt+vz)c5SpG;)B˵[¿ӧ &UQ-@vaRC~ҴR^8GOzi.B.KѵO<^R)y9F""gуKG6Ip zBXdnт]7Ԃ)$cV6 BѺa`ʔy}착 {U~nb S5nd#Su:vO7#c c 7tDm7 ^ywHp{n=( gȑU&U{ F Cl \VZ^zFg;Apr Wna_N7GDWYuJU@v#b)Vgua:A&!ֲˬtv.PHby.q q@9hY$ p<[oDZL_pvG CΗW[. !A kSD6Q|ܹLtw'!G(_y5yU ]pV@[:,cWbu37TMαcX l*@fattΫGO2/6 XV@\h}Ya,DC1[v#ü)7\޺kE׋cn (rLd"U_uH6D>ʎEűq J 5;`Eu̜浞C-iYIAgMf}ˆ }zUP%)iCr'`x_r$ş/Pȷ [ˆaYAˆH뫫΂$w tXBt *\E6aE)~|"$jG(T>L& |tH~ԑm_to VxEzfyuG(Z|*0ɟ/3ږ]LV>Ch&ViZjoT~ N3zvYg&;z޹kkͯ;0eHcpKKN6`:I&h3Y1˜Ás~}[%uuzy3a|/YH KON{;-=UKH6D>@, 'xl}BeWpIQ$(JIuD<.@5݉J~'j=`y].5ݰ ވ=5H(܏ FDaAlByж ֲP*\G !. `Y|QzYsb$L' t[r_[\V+ [o .QdzZBU]Kؤǟh0w{֎.ZȻ vgaU b5Dbq; +` 1)5+p)aA&ﯮJ3=(!=K8ˮ^-:q#od + T${8 r0%8 iPEIP^Y۶QXf8ٛ) okg yuH.%S@[@@ؤZuչDHLqn}Zyb 4$q0eZ;l7WU:%ZX[Clr1f4f7^ƞH7ne n jрcBunUe3K%ĥ:T [U u'r\'7Qd:5x=)d')V$G.@zc!;Pk.5jn D H8CV/v}^Ѣ`{1XY釴xoA; ;MIZcWr|@41&jdñ (Wa :N(9rȉ߅#Gb,V^{ C]>EkLTJUX+suփmUV ^޺e{]T^h y9xqlX#Hr=gqnu蘚YⷢQK';*:HkS*'Qۀ-κ2zLXk9exպt&jcO?"VjVY9+)%뭈5B hր.:2tg0 hE ClPNPW"r{R-!*\g<2 D>ӠyUDi!%*ր#.XkH>ޣe%(H"gk&ʼv96m> Qpߏ|~E,xć F#(|^BnP6P5 Q5p:Spmw;`4   &0|oC x7݇le$@$@$@(k`ط̷BJdz#ܗ*7Ow%|aHLQ٥ԥ2)| _x$oM@%!}١n - z#pǝDY8[CXfllMCo>wˍH!:uz5vKZ[x˞=ԣI2~ZZzzAUAwmmvPf3}؈K.(m@e${~'x}7^>pTc/O$Xd:} JQGǟ|A]ɢ6a{5Ƈ%z#0;GXF aMR%3I=e(9td9ŭkfP9CjV#T%ǯ<[qƍa.ek4=P[r#ƲUg1E7? &!#D/ [,Ь|\"'}% u38!2e6uFy+OM_u`@9e8vzrQ %EXz.A!(ZR+2pa6[Tz-^_{ wvga:J .T ZwS5R+/=>%rܶ5ր-ZETṴL]dc=h( 5KJ1B*E_A6@u{!!rx9 x&)PϡZgծ q\vڽl?O8My*p`xDD)gձD CTPr0d e]bHE(Sw=So}> s;7p}h8)Xgziq? Kg)PBt9 UUPP|!<г3$H%/jȨ\CID3@Y[B'Ӓ $"pԑ-bAt3=YFU<:X%chGZ: i"^۫;Pq8bV$xJ#(еŪ0>Az|DϽl\~X7p3 `@\B((I*wXUL9XoqMb8?tU*CGSi(yFU^AAU0FCr)ckyA3Z:b @Ң#Hgz߀mf=8n~_Y.B ĝ%~Y(;O>'t=#yTA_[s5UW_蹬X+E3gg xz~޺򢁎qa"fRXU`uQ'~ͱ0 @K>t*D^*oԟ>|?B ݟe I@~|#LRR:-F{~O?^`?еh&®'|Ʌ]%Li0rͷ zƳ;sD~s*ZbH$ꨣGO*0d$@8 x|D6˯q}Z#_tRC1'!w``̘1FrԄώ;h$9(k`.iq3/n5!p쉧}ם5ɚ 0aQ/~qr LRWg}VW*QnO~u=dIGY=ƭ <ϙqC7<7Tge 9nN`ѢE^XƜrXS[hNx0wϡ\ZZaczŖj@UumUL5YerLr%`UWk2VjRVkj@=v1~etn*n$THHH;V^j ̘1EIHH`:Ll <xG!RX$@$@$@Ho='¬;z!h cR'  HHFLDQp#  hpYրy$@$@$t" 7nܸ$SlCz׆֟ʓ @}xp_[u4sr_ZRc m\޵q$@$P˭__Ok`WXL5PLX hfY4tA ]Z~Y='1Qf^0pٽyE^wdK$мB.Dޣn}'(Ѧg p# ȟ@g ̙fXTFg 6Y}0^Fd۔"F,Q0 4/fbkfœJN@H@d"lxHd м~.7"% Ai HANb!C|@<+ N-m?NX6\EAXy2kL@,9 F 3X{EDcAwA>4k)Q2 43ѠKY=*vͷ3cƌ.>{ٞ4\wǚAP@,xh TʼnE?UåN@k|ṧSIH9 byF+HDcH], S$F\Ī8dQ^5ZoEI !"oF|[ Y=o0TZ!1O.R4e#z(K)ш-]}6 .qC>REl0bd8$@XX+uxIK?GSYoyyEF3ϬT^@ Lj0(Jjud. @"07a QB%5p/]AŠjtH DP9ɔi5r}N P,Zt.~82nM,):}1:_]c /P\\:A:,#]IU.U$"iC+:~08I(2`ldhrX)PFj @\WBDn2:܋kNC5(*TmCteԸqU!6gI o57Q 4*jKxpWzo>k#AI%GO' ݼꞒYC؂Q6GJJH@ gkMS ,Iu΋tc["Mb#yrK=V""VsQR*L "5PWeVF@GiZe"Ts㍃B`Dox#9ȭ1dDaU5UrOn,pOȘ$@9PoR䙂 Kn gHsq\0X*860Ŕ^MDH֣ h{E*)ĢpVM˗H2hy _>n{>n[^N;-c%y睋^d1PBI*T B$P0Xw>y#~-54nςJZͼ *Bb=n_E@oq뎚B)$ % o[S% h<)h:$@$@$/Z4  h<[ êXa=߬aPZOaig86U**3_aEH#h.p^j ZdC,H@KrD٪Ώ^LS71 buo;06䤿!:1Ð6,U"DA4<!RT?Dz22 @C(N@џ+IkV7sVUe䋥<6Il:W_D 2u!Hl X@e-NuAyYcO^+vZ!cFa>@a 6XK)UXü3]AoWUf2%&'f,րՇزt@ u|COcAbW GY:PG[A#ƹa3_aKFt/HDT5uZEIH Gn@vj .pO[hLc[=!ʲ]2c @!`Z5DaDZۉzq(ߚ5ʭ"#&' @!jRvqOSpNwkHñdFN q9cL f&5PIktʌ]+$rwN?;JYN#zq tbK$̝KIH "5 0Vj"cL1lwѤyJq4"tX].p' U.“b*$@$K gk }\@4,(UH<M Æ9JRA}SFhOx, ng(faYK'XּZoR8ub/uF  [M$@$@$Xh 4V}QL@MI2E՝Il$@y57Q# d>"&% 4h 4$@$@$НNɲ @Z>X]V1qkZ}9w0I[[Y$79(*)[' f&Aq򍕜te0EG7K(W"e$@$и.؜Q_-9)u,r8:%'HHu">|3͑C-# @ 5>YT z})HH@րz4.jN$@$@C gkuS,) d!5E%  >jX2~2G  p'5a"t/-c  o ut @C!jJ N gkpIHH@gPa  LZEf h" @h1uxPeu @5Y|  h8ʨ0 Lf ؜9Kq$@$@$@Bz A$@$@"UU0_  }]68ͱf!I(J­2EV4JA&_vV!ҤũM$@$`%5S)}ejǟKrBc~0}0vqE!1s)x.B+TR:L$l 耺k=7EtE+uHC" nrr~KD$P5Z U~8 TItw'ڊVIhEuhbƯ{\30 $̗ޮ`͸dL f P5 KB2!ߨ3cAbW l72.kva)—w.hY)΋FفS(V9JɰZ%SeRTU4C2 'tj.c@ Wױ1Pn :r'f1,oGsjB$@U#5P' #0 0A"28`(@ss;vKTkDe'C : m909 cjQ[}ՋPaE{i8YSd;1$hf o $<!(0vvIdP,f=;JYN#hO$U;ؒ5-I;D-IH _9[&PoRS. 0VZ 3AcNBet׽IG}œz"F4"t=0]JN@$]',y1> @~C*W\@4,(UH ppLKS颔k`t^(k#ڍBB# 3$XqFEHk@;IH o 8 @c5XEm35%Uw&Ų M@D)2 H $@$@$mX׳6˂ @J9[BS)KjĭRU#a4GUfBӹh4 Nv{PN.HIH@b dNE?UXK`P=yfL6Ay]radFQaHÁ @w"`Z?7F\UeR5w)/ @9(UKg">脯λ\bt ŭE +rt;H**4B;.*XH@QրY]tː|i>#Xہ1V"$٩,%q 786M{&H gIH@!րpQ!t.br^w#cPA[JG[Y Ŵ$@$Ј  sʋP2rAո70)ri )J$$@$Ps[uЇ*/ͳavԼD+˭ yS= %5P,b ItT fr tWհ }P&"tDY12(O4zI^, G k AХ6X"QnU4ntz*]dt^"[&Q,,wAFMq& IH!o 4D$ "@kHHfo,? `   f'@k[O$@$@[xP6%  h9["Bh4D $@$@Fd~&gkـ$@$@$X5@'Ac5jK$@$lrd@6 ¢Elu @,րՇ+ 8b4  5RQ   w9g̘$@$@$@uB@T   "35^fL$@$@rzʝ8T @o Ԭ(̘HHH Z1 t#Qe($@$@$TؘHHZݨ2Y  HE k@} >iQƞFJdoo,:`vVA$ Fp "-_VijX%B w `pFob@:r+sV'Gw9TD#"!IBY'ғI@@(Uνe 3~Pv]ɷPaYԜC\S,) @ TIZ'W HKr1F{Vc[k#qmT/f %K|9$`XME$Tt w|y_e.v 3iњJ2ɽx\ݬhݏu$IMyF[!ʬzu]MѰ$@uE 8$l jLVW> d1]ǘFBG!-ѥԊH@J%)Iay)i Ɲ[UPXF.OUތ"fo[bn,EL Gz5Pep.OSyivۭ47u;mŘaMjC$@B gk ֢Tf0-Ar,b b"ĺuՂc,܋lT$̝CD $@$Pk u uպyPXEh]$9c9zR^X*=\ [ ǾK#wvf{ЛKuɱF\LLK$@0,h)E/#0&iYD5+fc|0=UBF^;!(մϊ2(H[y[2bHHH{5н뗥=5aԀH h&@H:qSF́H*`   f'@k[O$@$@yZ' "[qcW}C3iٟ0]`,V8ѯd219ʈVj]rPtnYJ_tAyx(!c X|yla.atyZۇܟ)]yZ=x)k16ƐiJYP9 *y a\t]vKc#fP_[AzRFZ53Â1a%m#4K% =Cu.Ruƚ5.W=tCgY!/H;Z?ݱ, ^kAkml7EiYHlh r'Hè$@qINXDFx@wllրӛ1EY   ˛i Y @s`FQSjO%}vb 4(Z ZqT;>auQċ`  haM & .5^>HHH h 4_yZa5¤[0 ђ直O$@$@)c `Qcl5WqNnHH;X)FG,ַߤxa_7FĢ 4.Ha j$_QrV#!F)X-Sj[3J{?jN$@$P). ,eB{tٌ68G"K;h Ƿz|R u   tS aމH ֈP K$@$@$$P5PSJGw]7V w*Ym2& $"P5РN=$"\JR]4d  f P5P5|9|#ʍ{j~dcc1#  (o#W.tp_RƺzT-8l$@$@$@րz6")=xl jHw}hXr>Wh fJZO$@$@I i $͛IHHz@$@$@$@ͼIHH45PH 4Z VaTHHr'5`cǹIHHR.Bيx@23! 43RӾ B>րF%W 4s$@$@$P|w$pgŘ$@$@$;cYn $a{R d$`VCln 5:&$  (7Pb0   Lk _@jHHHj p`j @Zc!M,Ŵ$@$@$P<CJu>SPD-R& d!5E%  Z"|IHH^$@$@$P+jE @5P/5A=HHHV"䃅`K$@$@aF    Xd$@$@$@aOΊ1IHH::\HHH@ܫ1IHH P*բY Thi1h OqvHH@@= @8)hb 1<uu @Y6BaIHH MP," ) Y   F$@kk: @h IHHH i OFQg  N{;HHQ2bHHH{pgwbL  b7 BN2  p'P5 %^%I$@$@U&P5@7@ّ @:Zb*   *(@ّ @:Z)PլMtT$@$@$P8P-#HSt!Gŀ%UT[;sWBt@P{@D{\Yg%H")8!5݌o'6H> xIf+P\DY:#/5ϬIE(}駟7`ݺƉ]S䛱V) 4'kFo78.'5{I I@7:5$  "n4vT&r1Z~(u&uր,.F$@$@$m$nп۔!  P}vjm)~1=BR TpW=s(LUjMs[{̚LrW=s(p.WZb\rwUR N4O&ӵVcM@\m)aՓ՚aE]Y v1宀{L]+3JZ\k]{7.3+*pW(ULff=8nn d<   F&}b EIHH#oc  fB}5f5 A@9S.A:_i ՠ S@|Q@j j @Ft}v :|5O=JILA hLB$@$@ݐ tJeHH zo4`~~ $@꿎! Tz6g.'W_]:j~rϬS9U#g$@$PҕJSKu_~yUK,_a Wκr׭WkW-e9Mk 'C$@ N`?__.mfim6dA]s}ǯznRV\ݩ\)Bk 4&! F`XzҋJ۔ٽtwK޽AKARB߽1SB^ٻ-~ꪡ5 @! +,(#[ZT{iG)=li ҴJ,bvb$0 эF4,h tV ť{JKKKo^z[.}OiRin{F<00B8\.i tzd)HH +ť|4~ӪWizw={5:Kn1+b=B1ꬔu7*$@$P +LKFJZN}޹w.YwoJa /8gU}]^t{׮?ZGZLz"L@ԿccZ @ ڼ,Yzn>}J>ַ:>XqhlX=>>EdA]vI i& ti 4J RO (;O/oCWx_|࿗|>}[#&nҝ)0՟j@7 0տc P(Hsm?(qiUz|C~꿿ۥxqeiQUE +THH4MnvdѿkC?~-.7_KOZ .$/+z^14L1 @^;Վ?[ʟ"7`ԺQ0jhbSU  2dKW UbMD1cF5Н,$@$@$@Vb p 4;7MX~  hpLTHHH O7XpIENDB`nP<FY*PNG  IHDR5sRGB   h@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspxNH#Abort_Method0Abort_MethodI:#GetAllResponseHeaders_Method08GetAllResponseHeaders_Method~J2#GetResponseHeader_Method00GetResponseHeader_MethodJK#Open_Method0Open_MethodJL#Send_Method0Send_MethodM4#SetAutoLogonPolicy_Method02SetAutoLogonPolicy_MethodN8#SetClientCertificate_Method06SetClientCertificate_MethodrO,#SetCredentials_Method0*SetCredentials_MethodZP #SetProxy_Method0SetProxy_MethodzQ0#SetRequestHeader_Method0.SetRequestHeader_MethodfR&#SetTimeouts_Method0$SetTimeouts_MethodvS.#WaitForResponse_Method0,WaitForResponse_MethodJT#Option_Prop0Option_PropbU$#ResponseBody_Prop0"ResponseBody_PropjV(#ResponseStream_Prop0&ResponseStream_PropbW$#ResponseText_Prop0"ResponseText_PropJX#Status_Prop0Status_PropZY #StatusText_Prop0StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx]@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com/`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htm/ 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` b0       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[\]^__b$l+ Ircw,7 b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0b$/Ggú݊ * $$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8 -oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9]^_( ?  %UQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2] G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseB?Msxml2.DOMDocument,A DOM for XML is an object model that exposes the contents of an XML document We use the XML DOM by creating an instance of an XML parser CreateObject( Msxml2.DOMDocument  ) is the method to create an instance of the Parser object Msxml2.DOMDocument COM object uses Msxml.dll H-7  ?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&C@ Msxml2.DOMDocument Code Snippet!!&'lMsxml2.DOMDocument Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument") 'loadXML from file oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml") & & 'Send SOAP request oWinHttpReq.Send oInputXmlDocP ) :, DAQTP XML ObjectsXMLUtil Object XMLAttribute Object XMLAttributesColl Object XMLData Object XMLElement Object XMLElementsColl Object XMLFile Object XMLItemColl Object   B 0EB,Example: Compare XML files using QTP objects--&FCComparison results:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.comL5 ZB 0:B 0;c]B 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(@  x@(  xr x S $ `}    x NA AA ?$%` H x 0޽h ? ___f3̙;/f980___PPT10.hp@  |@(  |r | S $ `}    | NAAA ?$ ` H | 0޽h ? ___f3̙;/f980___PPT10.i 3rE HCmFR,s( #QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt#QTP - Not just for GUI anymore.ppt6http://msdn.microsoft.com/en-us/library/aa384109  j@igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspxNH#Abort_Method0Abort_MethodI:#GetAllResponseHeaders_Method08GetAllResponseHeaders_Method~J2#GetResponseHeader_Method00GetResponseHeader_MethodJK#Open_Method0Open_MethodJL#Send_Method0Send_MethodM4#SetAutoLogonPolicy_Method02SetAutoLogonPolicy_MethodN8#SetClientCertificate_Method06SetClientCertificate_MethodrO,#SetCredentials_Method0*SetCredentials_MethodZP #SetProxy_Method0SetProxy_MethodzQ0#SetRequestHeader_Method0.SetRequestHeader_MethodfR&#SetTimeouts_Method0$SetTimeouts_MethodvS.#WaitForResponse_Method0,WaitForResponse_MethodJT#Option_Prop0Option_PropbU$#ResponseBody_Prop0"ResponseBody_PropjV(#ResponseStream_Prop0&ResponseStream_PropbW$#ResponseText_Prop0"ResponseText_PropJX#Status_Prop0Status_PropZY #StatusText_Prop0StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htmj@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com// 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` b0       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[\]^__b$l+ Ircw,7 b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0b$/Ggú݊ * $$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8  oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9p^_( ?  %SUQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2] G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseB?Msxml2.DOMDocument,A DOM for XML is an object model that exposes the contents of an XML document We use the XML DOM by creating an instance of an XML parser CreateObject( Msxml2.DOMDocument  ) is the method to create an instance of the Parser object Msxml2.DOMDocument COM object uses Msxml.dll H-7  ?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&C@ Msxml2.DOMDocument Code Snippet!!&'lMsxml2.DOMDocument Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument") 'loadXML from file oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml") & & 'Send SOAP request oWinHttpReq.Send oInputXmlDocP ) :, DAQTP XML ObjectsXMLUtil Object XMLAttribute Object XMLAttributesColl Object XMLData Object XMLElement Object XMLElementsColl Object XMLFile Object XMLItemColl Object   B 0EB,Example: Compare XML files using QTP objects--&FCComparison results:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.com QuickTest Professional Help filef5     ZB 0:B 0;cjB 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0($  8$(  8r 8 S $ `}   r 8 S =$ `  H 8 0޽h ? ___f3̙;/f980___PPT10.XrЍ:7m0FR,s(   j@igershovich@connectedt`  esting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspxNH#Abort_Method0Abort_MethodI:#GetAllResponseHeaders_Method08GetAllResponseHeaders_Method~J2#GetResponseHeader_Method00GetResponseHeader_MethodJK#Open_Method0Open_MethodJL#Send_Method0Send_MethodM4#SetAutoLogonPolicy_Method02SetAutoLogonPolicy_MethodN8#SetClientCertificate_Method06SetClientCertificate_MethodrO,#SetCredentials_Method0*SetCredentials_MethodZP #SetProxy_Method0SetProxy_MethodzQ0#SetRequestHeader_Method0.SetRequestHeader_MethodfR&#SetTimeouts_Method0$SetTimeouts_MethodvS.#WaitForResponse_Method0,WaitForResponse_MethodJT#Option_Prop0Option_PropbU$#ResponseBody_Prop0"ResponseBody_PropjV(#ResponseStream_Prop0&ResponseStream_PropbW$#ResponseText_Prop0"ResponseText_PropJX#Status_Prop0Status_PropZY #StatusText_Prop0StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htmj@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com// 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` b0       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[\]^__b$l+ Ircw,7 b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0b$/Ggú݊ * $$$b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8  oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9p^_( ?  %SUQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2] G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseB?Msxml2.DOMDocument,A DOM for XML is an object model that exposes the contents of an XML document We use the XML DOM by creating an instance of an XML parser CreateObject( Msxml2.DOMDocument  ) is the method to create an instance of the Parser object Msxml2.DOMDocument COM object uses Msxml.dll H-7  ?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&C@ Msxml2.DOMDocument Code Snippet!!&'lMsxml2.DOMDocument Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument") 'loadXML from file oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml") & & 'Send SOAP request oWinHttpReq.Send oInputXmlDocP ) :, DAQTP XML ObjectsXMLUtil Object XMLAttribute Object XMLAttributesColl Object XMLData Object XMLElement Object XMLElementsColl Object XMLFile Object XMLItemColl Object   B 0EB,Example: Compare XML files using QTP objects--&FCComparison results:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.com QuickTest Professional Help filef5     ZB 0:B 0;cjB 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(rl9mHvFRp(   @igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advan                          ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  pHYs+IDATx^ UEC,sɰ41WEE}K"`Ze|en k,4Rb[JjJ*憼wysls{߽~ysf~̙9iӏ 4*Okw]M$@$@ M`̘1g.Z>0Xx  hHS΀5Э!B t( |sȍ)4AT2K򈴓.B{]w־Z'ǎ|BR$oH$gYߊ3|7Ծ7Z^v]J97;`x9-m0O,<숛o^8qb ,[t[R~_ނ++ܿN)2w*;n-P) dIx;|\3e/W@8^m ktOӝ=/}۹?nߎVs87lYGlgƼWrfi/vY>{Uwߟ}wc^}+=q{͌W m;0_AްϗsQ* 킃W]^w/)qjL=?嵁K$jA3L\aI?:n_))'(>XxUXI`(Sy~Onu>)]\5 r(dS61vۦ?tyt/{0,ag/>[/~w98 mĄG`ܱkDƶ-/r).*:`ܤ )ϝ1d+\tB-{{[蘗L}^O=P9d7.Pc' &*9 R a,o jS m;-\=SG{l=)g 7T>7=S`3db Б_{8:p6] ϯ2LBd&~ݫ ?4/z}q,lMnW \8x;`Am f*6\w2NRf ~0$`W6L}NRFzշ-HB;7<78~Ov@LξGM;f}8FS`N{;b |ۢvI@X$b =mӱ.1nL#μ;tAz{@f 3z0XLϹ'܍#491+;~)0|콲XLc̈́8Nȶ~vqpҥOl/+NQs憙=`ELӯ/Q;~/~Gh 3#'{qÕ)pf^4`0~LTS` +m~=S`gGt!EqpAT;_۵& ^*sz+M)Uo*vl)ɂck.r)EYsm|%!|S @s ,DsM0CdNiר9Hpy؃[Y{ØoԺv_{`n@ W2 IE@0=,0=:`Wm DKbGn@y6Tv+9w S0=b$`‰ @h&+&x.aPLwn4RI|MK8~36Hm4 ~xS%:0M\iEf Ȏ hA@Y7 Kjjv)8Sz<_d݀i ĥ8/LA  Lh@ =u ⚿L7 t|,mlKe&u4EM|&3Xo2Spii ~{^A|kLA"mYDhI#NliV9ڲ[ξ U3(nT6G4y.7SM`` ut@65YpG{rTA2 &(A w%L'ǟJ)?J"Ho%f 8GA`ZM%pK "b4W>!tVU&@]=YJZ6hDY?Uj[L-o[sW#*΢-Z&' }+e }B¥󰗽f@ j d`Pn+Uo4f?y3qC)R|0-{,M&ʖw_~/f̫w`7?oR㭁'kXg=mػ W:wyŨQk WJxa`i>khgax碮p߀4 ָ6X/x p}E3V5PJڹ7VYwq).XIsqji D(Gk ˛5]雧WIPP?} (31~3q|'H7W'Ưq/;"v:J3   ([7P<(HHH6 Ⱥ2k`Ŋ;EWs)[R+nf;& &4͙Jw^y*jD9Ky3,u!m&;ZR9m2F] Yޔm7@JE2&#  #5a o(-qlK/sԮ:ZR9m2Νtw Wި6ۺ``1bĬY>]S T@LwĞE#Nq,HHHrb ly B-0y̘;}r[|)n]M飕yNWlM;YlIg;KBC4jo6掌r``{`)&HmlG}մh^xfHܶgv>}Gնٕ-{ǹ![ls[MQmޫ?M7ܫ&Of#F2QXV3"hQ>wz+b5jc>8Maӏ=0κKs9on']Y?Y~p[8 zѳOBYTZ fA#>Det/l-AH nGK®\x # OV1-W Hx Vg%BALt_vSͳ)rWysk 8 :Ds,)0B6zE>bFPSU?UL_HaE9w`ZRa&D:"3*=8] ƥZ!90_YPB#zZ{^eLn 7,6(Çǁ 06gfq O3c@㔵 ?~Ms]IƇ@v1OȮngiYl:flF"<7 ;c O1;lSGXIaJr!qgݴ,9,ss՟[yA`R~){8~e"I~2A_} Oٵ}C$GIk; 2~9-՗Εo@!Zn"ͺ[$o_@= [LkF@4AEJ}`|P@-{}QiM?,*7.Sb)= iFkd1{Yja9a 2zǁ"71xUm9 ;*0bKn^ah@FUk ܼO6K|qXo@Ny-о('&оdSP6AMs.C@&P=SQ4m8l݀x`Æ [mC*0Aht39d'B& "'@\bq3>A`)!dO_ '[Eh~!{_,,LX:wia&H_G "itb%_$7I Kŧ IiB@ l^l;9r$y΀A3glm'9sPY\E?SQmp 虂t CL>pjC2˞o@S+A:Ley2\u$ge%A&:D'1`@Fͭ tת㬷J@ .grIm rBu^B !I5reH+Z|]s]a1[E(@6Y. 9}*B,\9qmLAlyS wH'W?#XpuD W=`ذgyroWp4%eNK:PHd"jOCV yFN.Y¸qN~nb*t.XVN4.X {ֶ_R_}v5o l櫖ڽ]3J~=ІRh틖Rhk-4 _=FN;NkCŠ1զLPh>r$1ΈY2>| i}!(jw=ijz*H{6CÔ>/(iϞKG:tHtڞd=nq88S& )mX,xwށ/oh,[=#TbdSm^>E>BPkԜu7E]ͼpW?1P5Q3rNڡv֒@ۄcV|SOL(v>n1Wwzr? 6=ŁZ?hq=Ovh߀}I) (eVK feVyqH_SzEt)_ÇR/2r;gt#IӠVdMPZkǾi5Pvǿb,)n|1? lQF6e 1p:T9_XQ'Tц:QC.˒ C8Ȕh̒{NA'/.=&OuJDoc0PG:{-$-mrh"$M(v~iEmfԨ\5A!6˗\ ~j Bdu褃SwNqy\uYP[ٙđyI Fe^>bD{_.q?WY+!Zqɘ1WvnX@CeRu h(XA@)KAo(^v%Dyc/90T+mmwF]~C^8ZM[~x"bFZj^ޖ@d!(;`ZT;1(aC2k,ex#H* {p .Z{7p[OL} 3#dUUVt(;Rh<8v}[*'ta:ʪhAxPzXtikr _H3l={q*A\-ͱ}g@ ئkKlЮ-Lυ߶ob喴t~3sH"64uذ <݁15F?/VXB(2f]AbsWw\-G }h4hÆ͒$.p]y42+p5h$aa^_'UW_{ioo؛ h9|o@)P¿aq-v4bCQ2ѥnI~p䫭/|iU}\yr0VՇŌke*Z(*8Lγ-z-^:o={״osab[0{ s 703 e^diP;xwz-Y*zul,lKqbKJݠ:5n~}3-؋6ko!N Bcy?x:1'*(DbHg&c[h$;v|=M{c%gs]B<(VͅxP_q-ȴL5 )p~!O˥%;L\pEVk[ b>.\adVAf FV(QFx0Q8ha)/6T _84i0:v^Z}Q Ȭ`naיޠRlEK̹yA[Guq5U6t+ /~L_#z2aC^7 #T{`֮a/ bgQ}ґ@1Mψ sf;m(@ ~|֐ gݰo5]hcÆla؟|j.a D"aRW)[ڂ5.=&/|<*?J$( ٚ[#AԐEIGfAr8FMם) FOZ_5-{VջPcCn_UFg ` p,O]N- >c$ &=p6pYֿ_o.~Q][FC$lm_osǜ&ĔL Ǫ5N.CC:e ֩+BFVK"0rHR_f8F]L"f?w p60Ő6ũA#G"`S3C OC" ]=rXx`s0+hf]#Z8 t1?zo/H'擰7n Mn=|6*[|[=mgMA/Ey\jUWr cZAMIbYo#Yi$\t V4qRi@%#N]#7ZVeY7eiuV|pV:te~m[wW_=es? ` {ϟxi_Zt[*%KV | ;Pk,v?;)YKEsŁ719B/G|SJx@1pc^%ALlk-^^p?XہxU}}=OU{}"w݃_3K_˗51 3[No*ZxH`iiϞͱ:L{S G g:OjJ{%SGyѱmFG'@G?n֗ QK)c/N}k/$1Rmӗ,)9fz̚Ut͆1[v5XM0,,Qkak0{˰en֚N(x(N| "@I3\3jnJrqjtGí W^9g0jԄh; i@yP%u*3y=OxB8ՇA(qƷc@`a:[ cEFը|xK:d (b k"LxP#ή e __鍊n?pb7m/uQR?Dz^/J=4JC\WqVnU(>] D, 3},e:oW aO٘ 6 !pon˻kZ fZe,{OP=`5P4-)^6+dם`쉹B@zBW6i=20 p}`ŖXt,ds}O,Ńa `݁ +؁^M[^Dg~.bӶ! #4 ד x1aTֽ` $H*;d;~p֢7[؇̎+oo0DOlpjd 8]ѰJ[D6+P'{ ,V HL[7B&քs9ԗVBe3>ʗ*l/.yf 0jg?KwYqрwB^CQkwV[ս{ 9Hý" i45VXtW7~Ǟ{տ/.}>jeb<ы+gP#NC FqV> o-6NDR<t1`_]q/z.~#g|'|1 aQ#B,<: Jfz5/VowjUO4P%@T"M"zzo(|ŋW3̖.Rw_tM2gNRQLK!x_ȲL2ջvV{`ALB Y$2Łh GštQ,Is멻/)mQf(EsP9ncO2kA+0씩w!0*˾Zԭ޷ d|Oo'^EY10s&/Q2d^45WWV3^޸Z}|Jt֨'eVL ~,Mc&R˱t9`;vw-{37KīwǭW_븖weyF/%<E@; J'jXO=qy/ȣ^@]!qK@f fcSc=u q;Yq7GMXxӱ"0()z:Xّ;|)7{`" YIE'6Iw]j?mHC@5'䪄u@taẾ<^˛w ʬ +ր=%??|ťȁq v`_߮}msr,BǏ>/ Lmy?ȥ85(B/l+> ]:ح[?o=u 5XG]@^-@ۍ'ڟKT_ѐDǰb5MKq#݋H50z%$*B`ϽXh=G-A!oB7Xb"O=~`RjJJ} vD>6H`~UR}U%(wО{.Zd}EUyJJ}zg |BG T|x~*ҒtR_Y|_\f V:؟o:2Owkj£B9 + @=ӏ_y_m;z.I+)}{ !ds/ebO<%tPpTFf ^nVg)? F&0lxU6rK]ƿ^}۵ۆt$jJ7#iaNIپz䔩3𩶲54RW$@/x mtyS5%%UVE(ڶEQ>5$.MKëKp5N@IcbJge@}# ?%@$' o2 RNJE;:]?*@LowpqF>[ G-@Vx[9QTm9XFj eT,xel361Mw~u`4. =eOnkV9\1x]z{D cz**&60n`Qrfn 2am "0:|o3) C>eYLD[2iƯVI t(BYCֶN^|JP.V^ B"Q\'Y"|-aP]w턷G0%/RG*~ ;|[%/!L73W_} &7[:0@L,b`~S՗ۊa3}T~iq:^'\ |}{Ė>}@#zK_ok?mWP;E߉V>`YŞqK}u 7H$6,…z=gΜvG#b>/}i>! z)5 {LfV ie] DdǮQՊ-Q@TKv k:}r?M Nn c/m仞@@ )ͻ&jE 827Pf FHK{/N?*0_ƴi nL =<`aIVҪv=';x N`#ԨtYbK}뤢٦an*N'9 \"@O>(,=[L/%Dk@qrY$KBGd*qtG\M5V7xSǴa ]Jf͸s~{;^/cA˯F>p|Ut[ W[gZ c }OliY<7.3?LJkFk0$O2q<>jM%&A#{7N6=o, D>ы*GQsR| oW5L6 ߊm(T`++Ti^j>ȿsug O˯'jBq}tJ/zK;L -n6Κ+00pc4 :򓦕 v=zһMwR]aS.cQ)"y=t4zw`&5QJ,&)L!!ra '/H OKNX]|W[mჇ)0|x+LkR߾lm[  m|JTZB~[{_ϱE[b:"a,Lļ;0p{n{XQLϰa+LЫI|:$h* pYaj 2T*d@xl7~qm\9CBXQms洨St_B% d؃ph =kZ'\(II;7śj~5?Mh&Zj5SzUjV@TA+]ehّ~3uo~E Xq (CK^zFZ"0mڴ]vIl2di6!9M80zxdNUWУ9/mJg!I6,IVMuhJH6D>@, '%xlU ۞I큢+$PT{-hoDDRR+D0D%Y/j<`vQTK4l7o.y;RƯ.fB+6}/.5!,f"T .wܣ[A0l|Q)Լ c$L'c t[*_[\^ `.lTGYe tR]%lOa9=k'kB]XҶ$*Rl^Ö@,ngAp t~bJ tJXjP ?t=vُ`KkW p܈c4i@@7Ia_.[sې YԾm5eLA+ %$>IH.%S>@-yO~ho lRt] ) ?O,O9L9d*vvkNjjѭ!6 3lXaGWbty3wƿ^žH7u77dr[ch1!?pnUgs&K%ĥ:tz [U M'v\'7Qd:5 ` QPD2R݁Kg`xz)6,${yx=~=Q6lجagyK X< MQ2jx`5mbVg R Vbk//®s mͲj P WwQqMu:՗=SdDZ/GZj0,R "n%a ݍz?G#~%<ƟrXcU Ҧ%a@  gS覒ysLNJNSz됶-c6Q[dU,XgܮJ(L'0tW!96JQ4M/H!Y7Ƶym]2-Xw8rsk7&PH{`LE]YS.RW^lQ!G&˰[,6|h1 .2q5z4iG4Ipq`k䂇uaxὕ{-]n/ |t_YO T@Mzn6"<<\'_JNjjJe䝈'V[%WJ=86i}啻w/Z6$@y*e{c.@XDV-g?tm3/2G}3٠W]$@$t a醴^Ai"|gx0 r~G[92TњT瞎W%R咑Vڬִjxmoqh\r\^P ,$ĂAT7{߭mphS4%[kaݷT6Tf@;WSsH`y@CTWV/Vhua\Ko=$'I,WZ.=pcM7)SV{Q& .8y :LU|`Z5+hmemm8|٧UH-B٧¢ƛ |0Y$[(a醴bȽzkx_b8LWcHXcd~sOǫ'`K|ںjh_\S5SvO(JmUX-7[_} eqso &Ygᵢ[x 5)('Qۀ-Φ2f6LXk9kXݺL&jcs罀GcM%t[]5A%0qU#\Fl>Fw>\竫gb~:㗠󕃈ufr)v0wK/t]wmsǫ򊫯3tUx S!,+}˟_g_vzm:_iE _/dQ&VNҶE^ΦLK@yY)cU5H"ZXuv8e4ȉzٳo^9:bmHI 6]z5 B߀#\F#*Be4NېvX5+5|x8e4ȉ.|x~̉h8mCJ:#UG\5tuבO?ޭ};f4 W^Fn2/]FN )vITwqCϽeeX{wh$@%o WeE!שi(oh 8 )2uF#  kCc#]e7p.'  %pϬGYo/=+:Ʒ-s' &}88{} _j$O̫} J72ْ ,W\1ʍHH 1mV5ijf%μQd3;S>j#w=3 zeEn.R @{|}Ŋ{mcǎ=3 `-:>(R;eš >D (X4  wo;8l?l6K|ky;*9Kˡ  "0dGg#=O>g0鶻[ZZ}:𸖣fjk [ע5H$@$@aQ8?{绯'vAe.\n -TK=^oջ/T}nzQ8PcO8;n"Py  슫N=5uk4g׿>sbf >cͫ.["~<.G:y`jRN1.1HH4K.<駾‚v OB|9kGi IgwU3GE$@$\tQg˗w6BN>%eIHr$0nQ/yO}9fIQ#p޿VN>% tI\068쳞眏>KgY]\, @E {yQր[lYE<뼫/4! hSΈ9`P4&q1wVUumUL5YerLr%`U)UdUGTudUO zTӹDg I0. @5jԲރٳXTHHHf{%5̟8RX$@$@$@H6'¬nZ*N$@$@$U_'F$@$@$P?)+V{? D3XE8c=_*8f̘ Iغ&u?' $;iVsUZJk-Tm?5' %p_륱Osտ\5*$bkq#i bL HD`=\o}𾵋/|a*B1WjOTF_hy.;ޑXVG$@$аVz5h9P-zx{?o\C*(HQOD>1R??~i4UQVG$@$а)AYP/?`rv4+ h4cP&G$@$"|EM(k301b `=`v \ 6;& F%m W|^ 2 ?`Ta8S{ h $9s)JFI7g+(HXbȲ;d (ʋ@aWEC*vő* @H=S TlÀZ'8A?q(˜10XǑe$mӏYH5: & %l ͌A?@ ьcYӕSIH1 0`@e~$@$@$@ 0)P"IHHG@rw =ztMx/„HHa Tu%  z&@kk @*b tæ1MDIFrg5U KTZ#ddItJ0>UN)53% 09[:X}-tB^'V%m]ԖNR(W:n͋ @:9[XuDTtYܙHHRo#w@[[Gj[g%\]S)ɣs T .+ҴPQx׎&fd ȗ@}[4  |@ׯwHH YAV;Gqu*Vkw֌+xX?ZI^zD7樯co O)͑+"{3Hz1> T@EB(O[zX%#.#Es"%[RbBE[i)2 K⢌cvIWGp+@K8ZUX#m/K,1!c@ 5PeSrVQ v?;fثPAUȢU5U:.NDU${~$. 'rM*rv%EՁ,[!0!:~J:DpVhVk֎uGMjU));JEqL6D9kƬڟX@~QZtٻJ \4{}v!nCW1C^ѣGS%߿b,3ȢOEgQi.jCTT GPBW%Q^zP̋.dAވ?U*JHH*Z]f\:ќi\,y:. Z_ 2WQuP pQv0S.W'NE|jad,  ht$@$@$50$\   $Tљ5 %V \D$@$@Oo @眭~SC  G9[$ǖAIH@5CHDDh?12 T@E|\7PZdv$@$@$m dw dцiIHHO"9 &5k IHHl kU4:v/ @C:{>SRC$@$@E kJ|IHH5S @!@k%KB$@$@HǍHHH5u%!  t*h T¦1ך!&V'&S(M%I$@$P*e THA}T3VTPFfqJ"gW&_ շ՟HH^T0?`X/ ' 4,X* piݯ˝nny[w]K`D4ZHpS_:VdkN,d iʌbW^,8 T@ր1PwFe,Ǒ1U#զ^@00%#i\m^XǾ)Q`XX" F&d9DxnѰ£ގbҚ$({(HH t5EXW\-(futcv.֊?S؟F9z G8bG%:1k r'0;P pXK݅WtErɌC$@$@5NȒAyڏbYna48lS1 .O*a Tb.)Yk-~rp9FjKK(njQ4o&b2w+$ Z 4zeǡ͔3]LneIѣkA@_5bogyIFyG/hAЏ>uuH@0)HO@3G  -j>T}VNSm ȗ|yR ZWgԘHH%5_D(2,$)Dkˑ)9G(/!7+N:$۵p+ +;S)8QS$N[j=.qR@` ?dP#loW$Ni>@FE+ȩXѳ{|*pbc4dGQ-VtW6JҪZ~S!>Mg)|I,[Dl S w.5I].f h4հ*7e`2jG{TD:Q%r0eJS;Z&!͘:\ ʋcZ6qS&+S%)bii2f`44K[K@9rE7*=A`Ȥ@@X3bIܵ> @#)0;wlzRabG[:SG3N]tMͭRX#,Y4tEʹ,25zԎb=A 2~Xvb31c{f4hX[z@\fm!MvlѣDUa(0iͱ1r㮣dh&C=ʐ&wUAJIo-3VTrf-5nHz}1> @ZsT-B&i+TAܳ W" }JReb;fKvFC,&CL gkQ=E`t*g]aJHA@gıх}n.XEDM?$wk h9`E8~͵\!'nRFy֟@D4LU&8-&LK]@ր|Y6=k)&BcsTćٟܟ*L9~q9JNEvԩ^1U32Us P Y%.]` $r[Qt?`FCk ϓ4;8t2w5[E“Ϣ[isToVȝR] ̱'%Q^z~ 9h_12#VPa?V1[ ZuQMT2+Z 8\' .A +W\Eow O?{kSڬjE$Pj$@$@$PA>k Ҧh  E)rS'   y(Qz 4Y m$ w4: 꽕P  M"ր,$m# w[z]8? @'AI$@$eo t4, 4Z R,&  Ȧ HHj@>͕ o ) @}5P_EmIHH gJ$@$@$P|+5PEHHH g~Sș2ő @ЏZ*1M\hH8u"00S @#` K/ 1j7tul+$[Fǖ*av$@$@SqqPJR=  >g t.BH4MIOXz):D'WpX0S&QdPVޯEÌlqb~[g$@$@a*e Ua?RJpVSh]~]KvLD|m0 fxcEĂt@$@$@E1Q,e %[V5N4F49!Zۤewt|\$3 @({Zmqm '>2ZE%0%)38[SF$@5oAJJ3翵\X`4=WHYS kJefv,{9,"4=ORX!&^ -HH:=X>̟82uơC) G]URҿ$)'%$@$PS0XO>wᐃc}5|5E$%@S )1' #@k @h K^D$@$`5&A$@$@N@HH$lUbXHϦ#X[^*!*d”C$@$PGrD٪c8noO-c=F \B*!Wg±%b  N$Tr:l5FqY5ԊHjXsXcW\Oh7֭Et5]2-4/;$@ N gk@&dñ5:+6/8@Jaz# mXIA7VD`I%( A$@$Pe@QУw!kua,‘&VՈ.Blj$@$@KK!GVuv糖Wc֌F$@$U jX. s$  j5`ZUxa51/  kOl BIH@w  " K$@$@B [z .d"  #`  ȋ$MGzF$@$@BRY7`.2NZfJ$@$@r)p̕HHHjک jB$@$@C@pg$@$@$P;h N]P  :;s%  !5!UMc\bf|%ӥKKΌC$@$@|yl1Emn74R9EW%s$ D k&Jme! h4X*$ݤu &0g$ܛpДEJ|-kL;i (~""91& @.m T轄2n :0pEBU+Z?uįjbQ05Dgȁ1M%Sf. @5PˈAc܊H7%J^s,.5E d!5EZg- ~frN?: ,,9?<)$8FL,(G#eA3- @ ] r 9ʹb̩؛gdwbga\a  | 45f ("B̲;o{ PŌ8ڊʷeS ; Z =S`KTk}!xa+#V""k Ymt1 :k&~-=ց{;fL  ,=X>̟8L:wXѣGgɠi,w2:U8 )}YvE$@$ `}I 9h_1W7Pw@S $&dh $h% ϊIH:-$'cLN$@$PB=: 8Y41 ty>=XG |[` VJ x6JMZ MF~uH iLB$@ K k@^*`A -pES ̖hѥֹR+$6&j#(H@>U00 0$4N^VHljY 5q'LM&0?;0ck-6Pc@ۖ)ަBae^eU2@] (P?Lh x-%΂%CF& Z&PmkBȝe%P!*%_Κc9R-5ta4wbjb*a`x]G#$%0I`F6ܛ4 @ TDyD< 57"LIIyVAl"pRi.@-EC$@]@W^Va3.RTWl0Ɂs Nt@bd J5Е#cY*dM:^@)J"I$@][Uk~7܁r&*,"&E.)7  :$PmkWowOKL-;kǸN&*z,L-60;30֐.A%0S3@) @}|^ Һ# 1^@%]Gw¦f7nED`g]HV:w pBڒ @:yZ4`*   %@ks3w  |:DLdW~g/;% 6   ht$@$@ E <S U,, Dxh G `+$  %` xA 5[H*F$@$@$7hIH$@$@F RЖ] T0M&  Ah `S%  T)F$@$@uA@]J To#3ls$@$@$Pk̷ZkԇHHHHHH Z$@$@$'ZyҤ,  G֨3 I@4)HH@@G?v\3 tUXCP6f6 HH4,7 jkTHH1 c c @dQqk@&IHH #k jH FDŽ$@$@$P T̅HHH 51Z-&$   `jȌHHH Zk!M,Ŵ$@$@$P yZۇ|H$@$@$@@=HHH,̗HHjZ A$@$@E@gg$@$@$P+h JMP  ,yZOΪ`K$@$@aF   N$5 ,N,'&  #5Η~wVI$@$@!PYkS̅HH T{50& t" Z(jQ'Y hjTП,[! 2 Z\lF$@$@ Jj[|AM$@$P"f)pcj$@$@ J !4(HH)" I ϙ%  G֨3 I@4)HHz5L$@$@y5'M"  z$@kk: @h IHHH Z$@$@$'ZyҤ,  G֨3 I@4)HHz5L$@$@y5'M"  z$@kk: @zMHO)IHHk55ꑥ   '~pbH$@$@$Ѕ •ˢ k Ї$HHHꐀm J$@$@$g 2cb  h tJdHHH Z11 t@%$@$@$LHHZ]Y  D@&|LL$@$@].P, d"4ze!f?8gϞ=`!I< b s#~5ԀTHHH )rN"@Kn$̖Hj՗K@-։' =LX )VQ&H@5UuQ}THH*H>8ж;jF ݒX$BK4|ꫯ^r%;9{/cQ#_ ܑR @#{HZCqETՉ_MK[EhN?tKf/_ UHHRpbomF+%qq)?eguA7ffF}KbÔ 䭷ނxg#8ܵO6MGS^{ȟH(iu[o?}Y+!o/@ ͝;1{L!B#:)z&!h(NY'kĔb(o` =V1#\$hC\[|t°c] Yg΃rˆn(+L0ᦛnZZZc9}7F|PJ% IL߿/\ MXX  XS.K].qbNX=ȁcy(e\!@̙c~,@N׽MJdm@kB> xc1%㎈h"(_#d--# $"72*ısI'= C5j@5']'/K'_uQLElڌH4/7'Ooͽ%yG-O?>^{գci1 ǀː%K, 1YLLi$tQLǁK0Gl9z㠵U"PT AM[œ~[/QHH @d.qZ.]@= ga&]1QR)=2xG_|aX~m<#<bq,v 4O;4M<?\(`-}{2dH c Rg  `#7|af.glP#E(]K'hLvBq% f鬼h t"|fM$P_.B9ENf76Nl"ߌ5LHH8Ye D.6JvrB)]oԐH tAkSC  )NjJcGeb?^(E|a 뱉Rg "n HHH d@ͷ2%gAHHH4g }Ԝ?>TpLmc*B*@U]&#஀{LP1U]5ro-1;]d $h-,wc:7JrV5J\]k]l%d]J)j' ZVcM@\mijaՒ՚a4T1@v宀sd 8+akqYwݠd]J)jG׍g002uk2 @=0>T6SPυ$@$@$@ }1 t1tfqHH"ũd`fԅӄ (k :EIIHq` Уo>v^s 4&!  .H`H$@$7t>n٧~7U}E >Z_GԐHG`>[-37|o,z#~?n}fgr)N@Ց3C Ud~i&/څW}iK/:_fԪ❩׶;ڙ7@R 9l\ }vz GwӳKY>rwr( ИH7^xPإ~#7/Sxg+lvGVf31RB^ٻ-~ꪡ5 @!jULJ!(ޤZ[0o^[ z <:)abhX$ ' u/z xx7^Y>Zsz0B8\i tzd)HH +vdIw7y?:ηGސ7ȚM7j!\ 5Vu7*$@$P 6L? f {ζU}o_jߜ[묳N5Tbroe=ry.5PFǬHHV |ǟaɒO k(;{>(Aal~k [Eh}@ki dj@LL$@]|p|٭[0SxVE{0y f<;cC~5/2!R/LA:$@$PYo}M^K>]N7ϋ~^Z4hQ[ܺ+=S`?L&nA`E}@ħh Tt #Zjaҭ |7OZ,VZi:*UIkMHHnkO].Ს>~F{1K.%@bo 6c  (oh?[ʟ@)0}"4gԺU0jbSU  2dK0W ubMD={v5Е,$@$@$@6  ht7MX~  sj`u^ O$@$@$&P#ltIENDB`n6U 0-ZuUEPNG  IHDRsRGB pHYsjTIDATx^˳}ےT@"x("B(4#lRJ@,А[P@IæjTz@%" Py8gk|1Z;qcʑ/̑s̵ڟ3[B( B( 50o( B( B@"==7~G~0* B( B`|50¥( B( BG_o7i}k7Wk>_??V2SMS-P2v>U+g5 Ly#4̧^hh~S%$n*? a/i))S?$We&t\y$EMW/cP_Qa 3\j'L#TS L_0zzy~Uו'x#A[>K} a%5Ph>ժI\k`?y]SHLU#+)?gk]t3GPk B( B[?;bJgs7dO}_:_x<~_?{OG;UǟeG߆{X@!P@!p 6fQstF<~9=ci3s<5E+ؿ~wfss-? ~]ISq ?G:3s7oMVJC!P@!P,Gm3I/?|0}ZFn/7?MK4|T~?p\k ?~~{:[r"[?_^?g~O?O7xMO~vt-o'Lg?ΙlWg?./} @!P@!P#g&pZ,~~;DΙ_o-Rii5*]2?_?}Ciud)F~O_f_O8 iI~oo?Փ?_O|״t _^?/~gG>+U_+B( BX@?R-5st)m50]_שۦoNK]01^{%bדgyP( B({$7J>fk~kGM uvCc; OEGY{贴Y@!PA?cgr}>{7zuE}w{:[{ڛSg;K>c}?{R{_7}p!P@!P\4D}+Rۂ>6Y%Ծ_MKW|Lgصgw8_!on֟Fi唘_l?%Ǽ/V%BQ7?1?U]{8}GsW}ӷ70]ÿ_m/dj=I(mfblg*|?-5|>oCƧ_bl7՟FreKӽK l?tdx_Ҋ$L'W{ku7Xmb95锔tv{ LdOX-:is~dֽ(y"kc!2yF}geܛ3w{}j`VS6L _50}«Zo RZ LQ+?˜[&V9S7J_$!K>9__Pdˍ d_L7 50i _L_:ajCC _nl,D.smL܁D!P@!Pi>ySZK-, B( B-Sx+B( B(B B( B#"PGz\@!P!j` U…@!P@!HLo~D*B( B` &WZ.pjT` p B( B['L/K^]AX@!P#0섩A=R`!P@!P|X}*'~T>,*B( BL쑜DHU@!P@!aL>48aa B( B:uNX B( B"050]KN"V!P@!P+_m?aU@!P@7z@!P"P'L( B(#0m @!P@!xB( B( PKE!P@!P750w~+B( B tY;b) B( WD*%ﹾJw^o) B( B 5Kwv#2웜N5WzW5Xt̎؇y HÙrOy3f֦dt %bD?s SQ@o_[&*'L bu>!2C]aޡ&@eXV8k"2/QpҀ|;,:5s*hDم#2NoVnGOto}Q]xoN }JrO.p};>+ Wuɒ$ WV]˻rfy\ì5r^Jk*kf&6ю @CX\-]N9o0r!5j?aR.sda%N6V-8Qj_a:P;¹4,ElYj_jq$FB@~_(b]k7TKl8e3-˞-Gi6[T44n?!O$DT [C#)%P]-{-s$}ӎ<j8]&R[ J_+Va8UdYݳ U≫E*LapH:qYGh}\T|)!C3C% ^oձ q)M2r3 kŧ/ jw`Lҏ^'(7?Ck?tUrysi"{f50uOJe{*30:XYFˎ}[ "Wm\#Q4L`>}uCA ?3; $UV7掵r3ƭkdH9upӠd"fUI:Kd76LApmM" @1|%>V>ܜ٤GJJAwZUjm8!m< 5  30{Y;C rI I:ǜӍ.ḅ"V1K[}+MhZ a\hřN}*I/g6KÜgڲr I0F_h#I5,\7@I;w<:m>ak|54̜ Lp:%9Tv+D*ꕣ1c:_3>-k2g \3ܡB!Ӎ^mDUHȾ :Ѯڻ,G ]bR9a ٦=BF2f`2!op0De YRury9jآ0 r أ.!pRPC$= .X,9͹U lfr_n~!8Q \B *Z3vZK#K E-Kc$fXiio.|Qb(0w~sfq!["os`r`z:QߒjPwrxTq"pQN-9Mbա6;R3aixI.X+C(!ߒ'L!E%\@!P !7}j!P@!P1$TB+ B( -]3Y/T2Fq8gh(괇Qlu3ﶯA dިc!|2F43 _B[nѽ2x3dsw;O&!\bCtۋ#2]^.m+!*4fQxHi7 3u W߱7];ʄN'H ; Fޒjv(zkrz-*#0s¤SGO쮫 6nNZQWI+vQ@~^U((N_SHq`-@@h~JS&|Q8`&X'hLsE(:Vjw08W١3X-6Jiԑmw?"tqCHliZJ{QHKuCnQ@ԠS&C:f7y&f&Srk.[wirC^@=BD&1̬=[.W 04w-H$$3@7.1}ڀ@B~6jߓ3ܭf7}[%7qX52.["2gvEKكgFI3۴VmXak@L$8?T\'(X#F!UB7D;*mvQ :V֦e|@!zYaj;aMژdc߆tߡ1N)E޺p?0 HXFMɱȟqZxQ$_Q~;2]<%Ƶ\Gw ԐYtԢ;Ký 0<+Y„ K5siG $)CguZ?9GQ @Ug$ǢhDƆ8%^x5 yXϭ+=cfN:vUAFZE@!"::Y 7+X.0s8-IdF ab X,˖r!/5# (@Ub &ߒ!'*0m-ΐLMGt A ehbXcޡψ@w(8C g3w"Qts20q6‰Wz9KdbX9 CH@Z8T.$UނQD3b0.QO-[|H'T](A )1?eeo'k)d[ w(?4v{N#vyOw^CneIZvbl o1:  !cB<|wiG}fs>ILjN/7;a?&d-, B i xP ʪ:Ŭǖ7p*{/ C'D@fN#%qB( B(@bfGrcT@!PHLKݕ{i( B( aRMXGRF]EbŒٱVթ;G~a~zKc ͲDBU:<'"%<?ӈ=T"[A4XkJ_xR.1ز.ڕt}nTYr;хQyi .Tv@/dvu^N Q,h\mU:I_Ⱕ>kwhM8I z8Ź ՇtEu}NHy,%gNGrm>ѳI%Omϫ)QT3k'yZ~]9 u J;gՃ>EHн.d?Wu{r ꉦf|9 L \ 1)7Vy" :˵dw{nUv%>o"5H)wJNI͵$dʇ Նֲ+ߔ)DUV3Km$·fH̓=rh5")a83Q6S* ڵZz} SGNJ Zgru0W5hܷyUKeuH:lj ˷Jc7q2wr$ێ$'KJ0p!i/j?υou~X4432xGntopz!M!:5X0 g!cX3#\3JSKm~lgy4cBn3ڬkqX8r{wNcn?,F6239ΰr @uK(!gcޥbcYt~Q_s."s'L7|~_zswneXfNo~ Z7"Ўgύ.iJRT:^r9Myk̒O tJ];ajV\/ B( WE 13#WMv]@!P RRגB( Bx=fmzL$jSt O$2Lf9;3LGujS`{ [rk԰-Y:̔U[m|T"_b`n4 zᛗ %]O׳E'tZrZeȵa_` Պet̜l]P/vs :9IL#ʨ`YQX)P^ydC_oս2y5^RJ9O hALnV>7BmOcdh!ԇVeQ?) (94;DDH5:]w2S}y.Si&]VNinIVBrUԒAJm (fNv=UUNul(KP-"G4h rުب<sQˉSnfH{Y?*Dr&|l3$&[O2d ;u_2ACA ŁmFӴ׵0߆0=e`gX[Wv]tnPs-ZR !sNֶ%U.rؙzm'cs:~Eݸ728v;<'CY4N|BXVڅ8Z½#O4}QJCPfLIOSF)y1z{@Gm;6-@.~(]uCu56DSky8l(|q83m̬MGҨm8,`;6LxɹEIP]a3ĤKr%dǠD;dsȬgN6Kv(,yo\8'Nh0vB4&,nQ6mi]z3nd|'oE2e3ܺd-BZB$jac֞AC;6y=@D~Dܣ4תBߚ @Fh:HXijJT&3lj_;LX-Ujnܒ,20V5pEö0F$XuSwIkgN&f&SrzL|כ TJ Cop `oI 0h"S~sJfͲfuTzK%55Dn`j8l[-ZI-kKrRU #;T~jXCJgDR4Blz?i/)9+1r2Uq y-PYE֬@֬C\d ˤ3D#Ad)~a;pBl?ϼsVb? 5OO)*B m;Ɗܺϼc54[ "4͎L4 W`*gm&Ko2=_xF# b KQbX@g|>zt9Mij|[ai/ o}Cv,0NJYH7މdND wk.=aKf^E/gr NF"eK:CJpBnG1#!2)bP{gf03 ٗ9VSNB6| ZWW6ydp&6 mS!wRː5FZ%pjZ8S]V2;c 1U`0<"1puIug28fY[ű!, ۻL2̒زm⚟&d|X&;VPm!N":@*fN",B( "0F EC 1˝0[@!P@!pk+:a-i֣.4mEKpe-Vo蕵v[9aGrEB( B($fz$QQq@!P@bZ긅/ B( B&ɂ{>?gA[U˖[p+5G]#nDaV~F學@=] ˆWAGo^7~Tf7G-M]Pgxb8D`ۅp7Sg-wd]8a% uU>^T!l{ ԝBK7 =0ư0 (*UhZN tzu}9Nvc)F6ewcm{JzZ7M'kb&Gr,`Rnv ?ވYERJw7%6$L`.2qߒj9=߂H8s'L O&~w4\:C>||H/5=Dxկ k6aCZ;&?,F)o4toc:7-)f}N98dhm(0'LC|kRMLm2X:c)J4g;c:c-FmXvβ⎚;&[r4S3kC| Y'!7 mpZEuUCv ʟUzwu(r|"*NOCLF|qB:+Yimy(ɚD5}3C1B' Y0N!W ɮ'պt2!We,mI̴RS ߢ?d!`䐐8ֈB@  y2sdݙS qQ|(dn1nZMәLۙ=AbG9ӎ>)>'ܝU!N?UXjZ<@>mlGvß~!jnBP& FZ-'L C75E}Vk7F2!c4bw oF>Q D-~XWH|8ɘ_xb qu qdHC\}_ Pʃdh<D"a~:4hߤciEnu&WVEkDAj+ZU/Qgz$3enI$wyd]OdC-y nQ…žDuNKl^k9xn8Lш ZD>6'1CoQ¨2-HvB_.gRhQ}Vg u̜0ynTpv%3(-qY_/ '7ckfpP&؆9ݎ8sm>ԇCgnHA޲mȯJ;aj~20v]:MA8 ] [Tyi7Y[z,4z}LiUjC"3rؚexUҝ1pgֱv a4V}Z_â0Kh[r; 5]Fiv>rE}s* qB%8ol S-ضa]'HbV&&rX *n>Vݽ!w=t-sR @Ll%rxbHeU̅T@ECC>#AfH8UnZuZsUzN͂C_N];xXNQD rz7wawer`+An ;F孼3S:#3-;aBqZzM`Yjny^MDέ$2Rs:!ABƺtpfWY]rcYBoXwδ %"M:rW>٢ /;a Ye@3dU;нmI{:Ca %0spf$_M/QSNӤubkhAl+"| )Oc[B)dsb p.QԽɬ-4t93(|o%&zsAj/e!S*|\9"uhB- > y_w>h05vTZKp5L\-Za!=r+|ķUPԳT*b3ٍÐjNC) <ʃnXjkvC}Ez˴Lܕ'LV^D1#M&%9`L\7\.{5-|fAG_oK(!]`XejJR .̲vrٰ+"H"dZJHJ*d ggji@>#@<$v3 Ӊ?K,!!KG &e&E~B@( TxfCxW-N^^sbK2K @QǪ$  LR|l :^r̽ {ȥ-Ti-v P SSrB( B($fx$E B( BHLK]}$W|* B( {#9 %яPȯJ^1HoQRt(s=Fg ?&NN?ɖ[2 R Jx ߉!*gɵ!u)H0R= D:[*cg mJ&HXfq S=,GW2o7%7Nn}Bco<2B5|;۪!gtASW%|0l #g$Y"EsDjh"J DacƈU2Cp{~$gNN<].BJ ϱaf J3v[>D?*|:쟫<6= IwD>aP' jF*=K24% SC$vŹPkbj! 5'}czg.TEh UAC[3Q>Ǚ}[ے_Ul* ei<ج:J }D_Uѿwt:Dj [uI=`ZZ6a.Z"=܃T''Ll"F4M箯 = [O/L;2̘L)J2{= 5S.[-A,%Xfk CDat)!Wpl-FBr'{@/!D׹Jօ{P+LCK.VV&"w3է0xӴ;ܲ{´:,cmߏ?63kmPTrpÑ{Yق(ʄƧ3}³;:sJ'g#p2d?_=qt P:U7D;7{WJ,q&{\8W[9|m7r'L#9IǛ\Y{ޓVpbل'(\RDTN*wH7X׷:sr힬U[aT{_QV1S7M-aNrwE琣nk(h|BvWn17F ;ϣ[τ-2N|˝0<~k(t֑OgCh!9\m$|uN\9"πfCMs@&T5-xT>Dε_aIgj0L\r]"Hd j`%-  D<,O>@HLn?VQY%< YO+~$/b|ZKD$%\b9WF֔y3rdU5cӱo.]?Ô6 LeTܩ ^0^( Rtb2VjԕΨt-^h>@njKgM<5*?BĆ-ˆ:"D9I|g}SQ``]c(fn<[(99 5!TfK20uJNhzN)71P0x5  WElCP_ci#2Rm2[l3贡JN2*\蹱%hNumIl=L#i5nx薉@ú PipnzsBK/0Tᤲ;`0yRe;|ݩ_jNdQLDpΊjUܸhiS&0;| S3 owU~ؖ%=:EH;h cM?zk|*N,Q{5 Siws@ku:=%h:c[ec%ܖef6r; EMʇ,2I; )g3D\޷Hc 3⒫Yy~cKZEsٵg̀Rd}6m[3y,/Y`J|Z&+9Iݨ~K>GzCCV|avhI2+KRa>ʞ9INFXE:2;[*R"cC1$mD`:@)9a:w㍙3!ŗKb_u.G]PWjBH5r%Z8L[ZŷUzv0wqoxg@޿DIyc݇:I*z9(s74o 8ȁ T?=~Ֆ|;Ǭ}SSܩǫmb?C?gt0( B( B`7GrA)@!P@!PtR_[H@!P@!!y' 2GCYVww17xU4Zs!};}[[$E3>XGa!S ߽DHfY ]ELpf"Z*3o}9 ] Üڇg -y+ٷK 8`,LƄ7;aRYZ\1oW{+) abYuzD6%\wj>ҺU0QeF}K ȐXC2%@s B?IGm!Y6},!mC@fNGrQFQmfg{jc'ہO9g͂3CZҍ.;yIJDvx ׌Uzp^Hi{&N:l؆1ȡ];qvjmaΎ֔BY2`YQw4TRM.ERn^7lirrSrQN`Աih[V$|? LDBo̠e-'\}; Bk75 %Yؼ.P#g@]9`:!ȝ匵w Z3?kkp׼ϼ::fI W~ zS9ە&pLrC|mCjS+4ymlbaU֩fY_y[3]Z_s,7y1MA?%¸ok{>}j_ , sWrNa < gj:ېm&6*lsE7v#%:9E4! %5 jDH-Ul 5Kv$k ©}`cd\Y↦ȫtF d6d6/C:3'Lv9Tpy&iʥbCRi%#:BG1ę ڼ3߽MC|-(ʥoߒT!P9akIY%vKXZ cP!:+k h">ZRr'L dH.}-) B( B%HLGr/v9Y@!P@bZgt B( B0&GI[]lay~V+mBD?#sl*% "Hv څPyw/* ;tV8lmLP3kAX,[LXm ~! n)H;GÐ4mza&$ =ŨmN^ř^Jv$֟ˇNRF?VFfNGr$pVI.܆s%)B'c8l"HZ;LͽM߈ỚF g־+ SS#x &q. Ұ@~h!%d~{9.5cWq(CΡN*a'$6Pa\0]h.%?c\כ?}SȌZ#B +Rx3\Qyk嬃#9qܐڏBFD. j$زJO62/Q=f"SqUs9=*@й\& aZO\잆οǩ\9ǐI{[03̭a"Ľ $0h}uDݙT+8?JlG2LbgLg34sLv5\p:ZxE}o?@0'LkNc3f|fZU)M߷Pp-X֨zhmouK`,%7"POrZGXPmڷ d92opˡxQ=ɖ:9Q~3'LH (@!P@!$fy$) B( B $wRP@!PZv̓iiE~Eߵ<ʥ2{c9ŭ´.T^P;|,7VadV[+tUD T Fm!&!&C簩F|P/D,wJm6 t3H QyƵVnE<"!6 b wI-C~얞UtJԙ~${ύF?&@83jgH5(ހo{sF;ajp)cPDQ-r˓T"gppSTN:@z.JvZa\oVԐE+ڡN?j':6uFH9(;3 +4w*2)+ A,]%z(),|Z*KBvEAmH45m!:ۇU%/щ/Ug &6z ;5_~ U0;p&f&\O*]}^lXrUiJ7p?b, 59+)jToޭ.unkFX -c=-;]FQ x&Egtu =!N;hhUvðo8t Hto4[4!UL>NX=7 5;4PFVM4| QJLK]#9|BZ|AS6gLm.j-9NNNK}~wǰ{"MnSC~JH'gwCkuvb5/dMV$䕿{9{0_RMTDY{QHtZ؞lfHǡ#j_'}?}SO$,T蘩vj'S;oEruqWAtlR;or۰ NI"bU9o-tlX%J'Ӄ8CV8C+j$bO/vQ`wT!U dAM%;_C5a|Ρ9W-K`z!8dKBym 8I0ƱV 4*b5^А/v!3NI)}mgtetÊ-NNc4LեF)"9 / \g(jY2n ~J 24X,D`%(GZ"-RO\'LlwmY[{LF:/FĤHo.}H/f9h9HT^# -¨8dyfcg%]Ʃ!HgRkx 0 9Z|ͬe%.QCwuۭB=T;dP͆RmJҦ2q ;cM $_nW;a?,u/dvEl2!@U=z[ e6PjњрV= /g%*iy:١UCp\Kf|Ɉ#HmV_FaJL#нSùo C\ AroU:`jqԗtTsJ:2iYJ05Ԋjf}Ҵ\ͦLp17b4=N;DZg^%mu2ͩaNةvd ZaЙid n6e{*f"˹OLKݍ %Ý kNjQ&fp&iQ:C8&0 9cMohj C>a.70EȒ9JK *\2 M埜D,(3dfYex03ute]X+d\V$t)LMXtZH3 (ҹresdwڗڪvC?MҪt'; J%3'Lwz@'а@!h;tGQ,w)w4*-`?f/| B( B Sk!g( B p݂. ݡpd=;2W@!P!m*Å@!P@!pĴԝGrU B( Bf酪? yjM&fuK7:Wօ౨jrKn"]qۇi3*oY)c ̍Ѳn-w{$wDLe^-  vGIz4xoO.͐{^p~X[<7fJUn4-{t&} o(ȧb'; y KC[" nxoD->ހxF-ދې{ez+';aj!|=s66F,۠K,>>36 2---Oc &!$Xys~O\jƕ\RIj9:DZ]'J%ēVgTH}i[.Ěh IkYdGz_2|zr`mD&]ί,SR6y+H/MMɲEfoN?3SŚF/I%0U!nC5ߥι kI*lr:^JJKFS`NKs*rΡNlls*9%L9InWAk& 錓8uF˓V-8[Sɐ L_GEeQϭVu5L 2,.ZjCRIX[P}L%wje}Ҵs tD&ISrfgᅷIՅ>%; m+>''!<Ԥ&&֣b`_a_ .̘i]OsUEDOߤXkĄKw-0aP޶pmӤ71Vk_ˁ7>&ӱO!O7 ZO+})Ҫ=ޓfz]y=tkӛ"KӍ'&)ݹ&5;D5"K(^;cD ;UJk'-_gs|U<*Δ')@p*KE'mg{2䞸uZby99MuC'LNʝs<{"Gީ/Ezȵp[ٷ>Z’ءw,d kKL_N ]hpѐh8f ߢp SA & K&xr $'0W v B$oӶ4]nMƞ;a|@:嵰( LvݥVXܘ|!Μ0VqCPr %J-4j״t2 e8@IqO[N&l@!P$fz$wgv!P@!PF 1-udB( B0}HBV%jޏk.#!Dapo>G[qz(?VZF|Kc,\ +~Qvʽ?H$҈v#I]8  ƒ7 v/AضՁʿߋ} \t3%¸|U7Cئh]_ηX|iXr"BdkC"p#ݟiڭ!@UFe-]mؽ/ Dkv![to]CԿD#R9:߂'СT^U.9w?/lSUughK;ph':~y+L 35߻1zL VbZ7V76m:]v!O\B0vzi5`77M0U)fNhܩ4JZ#&6D']ᶿ5Nfд$71+~&at\w3r;S+9n4=أKw׬o77يOp Sl:`-:Cb}d;ߩ!sD%YSbyZwu e:zGsO#?dI#jt77CQdʟ;a}3C1B' &__K!_ Cuh7:ʊZ: 7hҖtϧ1ӎZւ|r`Dȃa (c(dL_P:3G֑.h,㻃TBy%Ǐ]e!PȼDN4]n%ѝMJ-jwN ]}w"U\Pyz=|-9n M =A85/ E#0st7}A-kZڇyi.E9W=8i=OԮf|yG6wxR>HT@!P@!-o B( B!::HB- B(>23aR7Lor ] xjٴyE"SՏ3,ǎdx Hjmkﰮz];Ar^Aeި>$#]f&|sLg.֞kj˝0:jrz9!9{b˒ٱ ŁHlE}͐{"D''6D'1!!9QdE7o}݁lp [œ\+ؽE ,?5:s´xS*ߞI?Wي0F#L9 9s(pB,38[}3>ЭjLxdLKnV d8JDm½dh)'v[m:i sbJEN+FF.j|U(R3νβP(s^M Tr$ DmzVC߬8LxKm;[B^0I"|hu(/E[%7qn=a*~]uoJɭYuw?Z#S5¿_L2$+BV!Kmsj8E89q>f8uҔП~D ̖IKD3,p X+}BR*QdR -aqjz,M Nr;t)aFJXc +mY>efNGrV $>buDZ=EO9-9ɐQ{6D%=r򰲬bK7cdiuU:A=0su7rL1ϣuRDoDа,uqNjުS͗cص5nvH,~{[F'LU=L4jMmH;ddnfD^,}\S5sGrG|!P@!PlF 13#9)@!P@!$Rw},K!P@!P_!p=LփEWD>kШgWA4w;Ţz@:a'̶x=ЗbRyks[e]HZsP3nDŽ IO9iϗEN\Q/WPI>S62[;'˼Q̝0]g]dpwhPDmA (cEv; aΎhQ-?k}r6?q`$W9L IF}K >DΌt$D5V..[R` ;syKx]r)Hn3؝YHIz]~Rw( - gP0놫6Ż褟lE ّpuD\ga^9 3wԐ^ 9F 0zBZ?Arl8uԙK2#u[V-4'@6ea)M Jf cj_"fhI^qQ怼N6K$,I=VVd-5Um-$6_|lo?aꝗ`z4[;m9?>)o>c^߉qeϥ{rGJ{C?0p!*&3U*PЖa'9OZ%¿_w: >3rZo- oU ыvˊvo .M w.fTm$%C 2\ YCȸ=Tr@ Qҫ蔐+#0vhۥMO кC$(*vZA.W%ǚVh!Ϋtz1ӑP;)`z|*/ *{ے=uO,a ufL]*Vu\~R24.ధiJ]NU:q= INo!CpU{„㒐}s6֟Qz-L]3lyJ2O(܇MHb^3ShZ7P-NEP=ajֳ YzvI*ߖt'U~n*fRXꝈ ʹ'+|2._}Y< a{z]jt.61KÐ3L3 %8au\1YP3>#~$G? UψQHiV,#J Ч ϝIǰxvTQf63 MZzmY2O*ճ0jW {?F3V?n愩.]Ha(iMe&E~:@(~ `|DCW5紫7} kGBT67(f pB` =RNѸ}:vBK6qKd/9u>G v_y$\v愩 B( B G!GY@!Pi-B( B( WG`{~ع*HCϷz(XKBd߫-h"hUw+C[r-Zb{?vPwInZTVR~"tWN?AgRLq #:Up> UײrN(qcXA*}sϜNŠvZ%5ƙy$72J|@ry@fCO:x G,,3z?aI&Ok*;ajhOI-d#m'C}N$R2T^E*rv\~M_DUlKҟUX䒜4~bXdp:cŇѧ=cC`ަA%pN`koy|X{ܦQE{xc8^hqڑ]IUL6~v[J lJb3o`XskES{$קuEF_VWVF)vݷKo&؍ڞi i?-eQ^,&qr*\tLW-YJUh[d`d*1E Ȃwpp_e-TBuVLY-w؎XS;MU턴aae< `ZP[/I9?vpu *`C3H-s^/%HJPDX?P AoUo#CwJKlZsk c2Ql7O%YQHޓ|\Gu6r6 -)c%6kP/w̄3[T{-K"}K~OuXbZO:Zv)y7չG0H3̭a%J6guݓvTn?a-;4# ݂s*C$̪KUδyyC}7qܮ ^Ƚ!g:j=Ir)0שJrn smSMO|hBUS&'LQC-`vF$ M-# O:籨XbŎ)a#ϓ]}LФs$Q]Ӛ*( +\Zb'N]Iuˮw unK:E凅4<-6fi?x@JW僯ba)5ýd i&vAdz{MhoL(;%¤K!b8ˆòvqX4}\kY'$HX*gNb|Wnɫ(fY6Xތ$ YM @O}cD\͝0qeﲻ#N'[&V6ߦ|&w Y7s}@;wN."5'!q%N|25 ?7vEY<͝0\ɽ1?*B( Bx{3SۃX@!P#:#7B+ B( {>y$q@o7P })U -%cm.hhh4hԾHcԺM Cg21IװۥM]P戚XbnK=mgU]\%aWnxdIy$a aT]J@=Tٕb@lY2;":A(@18Yhd赭櫽ڨRqRlS)(?P> ٔ'}`K&ۇ$9a-wt2lYuaQi%:>ً aBfW&% iJNڣڤ6 zFI06Hva3H¯bf~ҙB>㾅ʌڐ?2'LjTGMԩq&$M:O,-U*O*EĖh дԐ&H5V;/ \㭜~/q gc&XmQq<ѭtLafm(]'L|]eWCHC:ajHqfAB`2CϣHi!2W7OzI*itmE ̀oaKz&*s5PmS(IHȾ :ش49!#pIfwkB8>aB2}YBTL[*83j̩Ch=F=DĝI~FW]F4ai(᣺e'LH'Bdv;Vyh(eKߴW* $wWe( B( $f#B( B(N"{}2βU@!P@ea<>v4r!hZ} z;jpU!;4r+{dK ң M7?44]v~/,%B;뻿{j[)gC.|)HΓ!3Λ.lT?"PyDYȬ"c$[|=r&ERq8_|S9P#9ɲ'e{;ˆٓ~hڪO+ 0L#LDK.gJGhKs=HCWv9Xel}6"[E)+jq #fv䙷Q$JݜJV*BCH7WմǪ"_' ̵j4')UGCp! )I:D>D`Tn:KjP~)łvi^,y+X*VW[VSud('ˎV&9BT64㐼7xk/pGr}U+M&:=X8ddB;tOXnKܙ01L`NfJEzT'%ІM!$yjO}cMoǮ4TMj!"?Y`ut)qh.JSsx Y8:F2鰏!GwB8BEus Oh~{!̄Gr*d3)+ _UgP+!jږ=I|cwU0;0XGBm ;- 75}{V$^tF?h#F2Nhxⰺ#<҅Rx`RiIj2T“*~LA1'V`UK!0x+B`zֽ:?NKpQJ$0|@?%>Xh;tV B <-=tW]{sC0zBa )w n0Fj`f B( B#PGg@_@!PCOѧnjrKnetH a7$*ɷwF[qz(?7ho%VqÊ=_.q)ۨ?H>aF+AI]\ z*Tq2}\H/~+HLJ_O3%¸|U7Cئh]_ηXC=o:NK#/XtaW`V!dd=wu֟{#U.0 fb'Ɨ8D;鐇6gtC  dME@x29WÅR Z gX2J=bIڻcwG <}V&vpM=uk:}y;ʻ.>;ߙB"2gD nWX?ZU4+.sȬgNCa(r|"* ZO5n'J0aΟq]i cx:09Fʯ.!y_P̬IAdÜ]O(uKy+^` Jz[,mIRiǍaیذFfO4Y<&ȐKޛሥp jҵ $H;t!g*CQ.y蛾z`%_]{Z2/M5Mgr3ogb nt')&qGsïJQ}Q~VE1zzFowQ%+< ;pkɽ.ιeMKo U-6iɟ7Cuӓқ%bU8 ɭ"^) B( #P䞞( B(^z$+ B( BGrš]QsO*T??GMf -k[V,pP|1k#YKW +;҉Pf<`uˇ]):ъ!jј o/x}IVw=m1Z,^%p#%j)K--dĢkPB0 B9Z.!ꀥ?Q<+ݑI"m"P?iީgܤLFhtrv6u  &Ι@UngwuLF 'HհuG2`pݡ05w=R6JȽ~۾-˃l$U:\in0)-D h;>ZC:p 'S²&H3+iuMBZ}d^T@dF^-;?Aa:쟗AfUF2:󄉺N0#,YK,@W2?{DbvL}60pf䫿dT'cqO~9>㽉C0E* (Ĵ,F ;ey>Ek H7ؔ^(QHYa2Al<\Có%V,In&GP̽WI 9I^>TUz;nLƦ{Bڒ80#ؐ 4S mܱI> F9F?4 yh:*/qQOĒO{$Ȼ)UWn-ٶJ,&|2Zo7jmwEG aG9JܔKz-o/ϧ$s4 J;Hr`bsL,(WHsfm}BjvX># 28ڢr~×*?YOvB jSvDA]fZE,,>@}4&P@LҞ;,'4_|Qiv!b~n+0ZfT^2/Tq`N!%30jd.ODT!JGEsT(1 ^m [Y3D0juĶoHbQP-y&{B"$|oo`=&olh_7B˱Mo .ۅ~ve7@%.cT6wuKikةx|o/WHn81xk+Yע4@!P@! GrŊB( B(v!Grb-@!P@!PPL1a7$*@j7[~F學@=?ԀާI:!)h:o9@U BqjKz-EUc*4Pv慭! U@v9clZ맦#BĖS'eAƫw1.Kbr@NsLJ_8o.:pY߃C'{%|]þt;1֦ǻvu>\-kbo%a,QLfpq)hX.9̬χko w zaC--eη "=,==I[9 ́+Ԗ c֛ S%=wv OGcϜWX%NZthzriCDA_9r;6VkR} Q/d82Vvv}Xu'@Ůj)^ΙI4"s`D*\-CxTsյvy[g>31t؝grٚN::י7V<ش#gK֐'ibѦ5pXK IUv)-WqM OtBCQ]np-OGrٔ)&>Y'}dKtYieĄ"ͷKgh ^}lmy1&>=i7̍Ĵ24A 670`Zit3cSg:) LiN+ {}-1>eڭ qiUЖ~64n4vm9[`3Č?Z"Ŋ4F1uAl2YŸuv>w؁sUo\Dkvd[F|qAuWܛ@XFB2 n-4BAM' d렻 1v65̟YFXZ Cǚ!q3%ݣ2R1ӎZ3M".9$s5!j'!]Y#7t!'no`0P &޴PDMӷ| 8٫,(d^"j.gz7NRLv6n_+*&+&qe8QR~n3igrz?>G3 ÊI">oy3Dq̓Ш'-ϐ,`; SB( B( ps-O B( B88O* B( B`9#ەKHOO_ʭwgG[qz(?4PGo4MaaŞ/ mC%70M|5Ĝŵ! > dqX;8]Y 8[+%x!@d:>Ʌ&%=+s\]LF*MˉKOvYyE<.]_pZii9}xjDmXl%aBc4Z~Զ[CfU.5XUoƙ Is?z%8 `k2+D@ } s$>L w8Co)UTRѱܸѴZ~L`^#CP8X y/ki,ސZѭ:g6b71 !>GJ.]餓}93ЬV(+>íE{w M3KtYBѴNm-e!݈&>`7̍ĴS6c<jZL+նclN8z<|CzXK W)#n]3=,z(#ҶFj71O@T5vKtx6qmt3&JGk[ 1mC5F׮Hݠw3[J]r\8n4}Kr}kVrplpf p֏A[ɶ?`ß:=RYez|"*B}͎lk\;݈-ĈAM7?fAͬ fbk]}=-[O!P@!P< z$?@!P@!>#eER@!PP&⎷iA%A2:{E?*}[DZD6$3Fk, 3qb!V-)Q ™qx{Vx-\~Xl ="';_^G!?qs ,T9^O(>62L Gd&䣀;HԷDm2 7tXBfK. #-=-Oɱ[=6َn VIcT:@W/[$^W%cXR`&w$Bv$+Wu ՏS'M J n813VMFhLDIn5tP{y͍!ԵN9ܖY޲b6 Q;x2hI7Vj7PXLRU{; F`ғ&ŚgōeS:Hb+Y%N~:1uolVO+n^eI>,s u'!YHYc C<i4c2 gk8kӯ,v& !*Ӛ{C'rFp=kת`CP$mhrN\uJvW0D'6aGÌQB:!B#a;ݓBHCC|*hplG6>:It'o3sBj,H ʧٚ@w/1uFOʨ3ZEd{}[j'138LA\wPNKcOj&@}8쀦K!Hsġ`s *\[Wr=dv`AGΜ.Dg!'M[pfFI.| L%iTU(hkz8 ᄠcPLk7@gPP ˝}~EO`& ,m1S%R2k +0!z,wC&:'S[9WN:;4vyW?`,CCFurjڻi:^wĆ;giH9'}  ͇嘵ppax:8Lb*"'M¦60Ht24@E"IV=@N]>%D}fZPXH4%J w0&3ꓯ7HDIu$D![gM,&Oa'䙵&>kF=ߧ[11vKv <$N؆J( B8A8ZX'䮃'J&%yhPʲ8M<Хt MKPP %7}L@!P@!P%[f* B( g"0=Lό* B( B`!l97A*\\)w,Eꯊ«ʟe(,嫔YQp`S%qB.z)$[LKYuD0lt Wm.!=~`aFQB e.{C[Zʅ[(o\t&9BOψND&g%V7>-HyYgS3o5(_Du7`GrlGrU! 6>d _b> sy%Edh{\?'wv5_ .Q#Lͩ OwКm>CJ6̱hO\|k%㳈5j#zE< Lv ^٩pp(nVCȁ┡Ub1YY, u/SrMڝ-H4![OYHO,v[e:]BC9Kz]qh.sڐ}h^N r$#VJep%\Lg5δf0dL@G&-RZjꉸbd!#iq4B ɦ#Z^ٶU/ LM?JJ)J[Ms*W1k#Fܧ"P|7սuc8=ɝ$x,5͕F87짡HX_S2qTңTX?u&όtʡLQiYv(=XjG( \Lj)ka t*=B _VMᦑeC[P⁉a-u6mN }J"U'oCft+jɁ>Ĭ*1,`tY;sFYKx6WU b--Ag*;|>*8^r`r޴K|JhfZBlOc̭JPKSGh!YQTEpIQKx6WߋbSjC4H߱dY~ZQGwp&kuv^{CLKke%gT*߲F"2lfI^r1Їak DWYƷٌµ'\tӫ;"*[7c8{.o''@.k:0Y*݂of&߲3pr|Q1M'噥3z=̀!gE%4Jč糭<, &[M[>dZ[4104|!P@!P:50zB( B؎@Srg1ֺ;n1-AnxG4_4dK^^w`^l.ܭDQʑ6dVU ~, Z]G ܴY̤~F'Sb׏w:7FPv™|!kWqҊ=ShM~JI ۴h .X'fa®_T%ٴ/hFy Q$7:;-%cxԧf=!1SǂkѴMp9NvlK sK!EI%\uIّlY4U䎩MYɻ_VVt>{Yf>2)(g S^OofRvt̻9|,`m=7B[FMY?ـʝ-t#0ݯ^ln#i;VjsHGɄXoe;$'O@Uv?ܙ>3:RTI5:[p3;OcaȰD֖.˟KHZ(jMCj~$MoEV7˔ϐCSB3EW4LsF+"Z.$m&e8 !aP-HTwZ'xM_5ć_*=C}=6HE - O†f_YK: DU970%3n">4oQhy0Lzܮ_ʶZv:, 5Mgr3ogb nt';&V «墫U{ PTuhK87AwxwݙEif)vGkZڍ|/B ӷCȷFrw>?8Fg7h 6eaU^oZgD9흲JdVedj'qx <"nȌHH'^&jfJ02v*Nr󤣰:p"|c>[I{Erpv4U2TTx#9 ")ʼ,:pglmQg&9 !f2 E%&Z !*tKbڷ&++,Y4t r2XPTLQ*XhlQN,eUtlʠan[1Ye@ &Z` C mC& PGN^CwgJHx[uLDD,bNUr%:|%Ɂ6k&Kg]YGPќ.!CrdnoUݥ9n^(+GrKhD5vj6Xv[%gy2Ž `O(l.{b9 x"X>r&mաxN:'?=gdGcr2L˯uX59YDzemE]題.on^‿Cqc9 Ì=s9U!J3dmEav͂Zz>`)MFnف+CL.пYD|v2BFj2dD׎MnU6In J|܆Be%_awN!r!@'Ü\/(UOrYX{ tU"Bd@¥\$\%*vQ87}/qq4_;9On?X!UgB 2n3 VWKa#d@d#ڟCy7}oEuNt/3'ɡ<_3-rAr*MǍjsOK&zxxXO^6*P[ B( BAGrsHA9+W B( BUWTY@!PȿkidoiZ_@!P/w~w\)Ր7 g@!P@!p߯(7G_׿;Gt>A/ B( '#!}nK[\ QA&DUdX\OfIV@!Ptq8[5 S^!P@!*CsN]!P@!P<>ȉ8agW#50d]~@!Py¤-B5xS2/ B( z iR``P, B( N̄?cR?O6^ӵB( BXuDz]w e( B"=LlZ 0]ST@!P@!"p0}zW@!P@!P8NXIENDB`cedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspx.H#Abort_MethodNI:#GetAllResponseHeaders_MethodFJ2#GetResponseHeader_Method,K#Open_Method,L#Send_MethodHM4#SetAutoLogonPolicy_MethodLN8#SetClientCertificate_Method@O,#SetCredentials_Method4P #SetProxy_MethodDQ0#SetRequestHeader_Method:R&#SetTimeouts_MethodBS.#WaitForResponse_Method,T#Option_Prop8U$#ResponseBody_Prop<V(#ResponseStream_Prop8W$#ResponseText_Prop,X#Status_Prop4Y #StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htmj@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com// 00DArialngs/0:A 0"DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` D<@g2       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[\]^_ac_b$l+ Ircw,7 b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0b$/Ggú݊ * b$<FY*X b$6U 0-ZuUEȵE $b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8  oO ʚ;Zd8ʚ;g4<d<d :A 0zppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9p^_( ?  %VQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2] G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseGD&Off topic: Using WinHTTP for Web pages''&HE HTML ResponseB?Msxml2.DOMDocument,A DOM for XML is an object model that exposes the contents of an XML document We use the XML DOM by creating an instance of an XML parser CreateObject( Msxml2.DOMDocument  ) is the method to create an instance of the Parser object Msxml2.DOMDocument COM object uses Msxml.dll H-7  ?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&C@ Msxml2.DOMDocument Code Snippet!!&'lMsxml2.DOMDocument Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument") 'loadXML from file oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml") & & 'Send SOAP request oWinHttpReq.Send oInputXmlDocP ) :, DAQTP XML ObjectsXMLUtil Object XMLAttribute Object XMLAttributesColl Object XMLData Object XMLElement Object XMLElementsColl Object XMLFile Object XMLItemColl Object   B 0EB,Example: Compare XML files using QTP objects--&FCComparison results:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.com QuickTest Professional Help fileT5   ZB 0:B 0;cjB 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(@  @(  r  S ܞ$ `}     NA AA ?$% 0 H  0޽h ? ___f3̙;/f980___PPT10.m"@  0@(  r  S $$ `}     NA AA ?$P H  0޽h ? ___f3̙;/f980___PPT10.m^HrvG EmvaHp(   @igershovich@connectedtesting.comNmailto:igershovich@connectedtesting.comx%&www.advancedqtp.com6http://www.advancedqtp.com/p("www.15seconds.com2http://www.15seconds.com/d)www.easewe.com,http://www.easewe.com/l* www.x360soft.com0http://www.x360soft.com/\+www.dart.com(http://www.dart.com/\.www.dart.com(http://www.dart.com/H:http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htmhttp://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm;phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3phttp://www.tek-tips.com/viewthread.cfm?qid=938038&page=3<lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124lhttp://www.mediamonkey.com/forum/viewtopic.php?t=21124GDwww.microsoft.com/com/default.mspxRhttp://www.microsoft.com/com/default.mspx.H#Abort_MethodNI:#GetAllResponseHeaders_MethodFJ2#GetResponseHeader_Method,K#Open_Method,L#Send_MethodHM4#SetAutoLogonPolicy_MethodLN8#SetClientCertificate_Method@O,#SetCredentials_Method4P #SetProxy_MethodDQ0#SetRequestHeader_Method:R&#SetTimeouts_MethodBS.#WaitForResponse_Method,T#Option_Prop8U$#ResponseBody_Prop<V(#ResponseStream_Prop8W$#ResponseText_Prop,X#Status_Prop4Y #StatusText_PropZjhttp://msdn.microsoft.com/en-us/library/aa384109.aspxjhttp://msdn.microsoft.com/en-us/library/aa384109.aspx`^www.dimac.net*http://www.dimac.net/_Rhttp://www.15seconds.com/Issue/971214.htmRhttp://www.15seconds.com/Issue/971214.htmj@http://abouttesting.blogspot.comBhttp://abouttesting.blogspot.com// 00DArialngs/0:A 0DGaramond/0:A 0 DTimes New Roman0:A 00DWingdingsRoman0:A 0@0.  @n?" dd@  @@`` D<@g2       !"# $%&' )*./0 348:<=>@ABC EFGHIJLMNOPQSUVX[\]^_ac_b$l+ Ircw,7 b$6+Ix<+Kb$ ϯ|?9ۤd/b$CbxQ>J)(b$~L*E˽ b$<_*()DwMTjib$9Mx[m b$jx20 0b$/Ggú݊ * b$<FY*X b$6U 0-ZuUEȵE $b$<&]7yma$b$ԌMYVT[((ab$HɿPọ*Xb$&-f:kKɝb$k(Bܳ z߹$R$趾cFyhDab$Y5!b)YA)) 0AA@8  oO ʚ;Zd8ʚ;g4KdKd :A 0Fppp@ <4ddddL$ 0/ <4BdBdL # 00___PPT10 ___PPT9p^_( ?  %VQTP: Not just for GUI anymore,5Prepared by: Igor Gershovich www.connectedtesting.com66, 41 { The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript. Ian Fraser4|h0( (Topics&Web Services Telnet FTP XML ,)Advantages using APIsAccessing non-GUI applications via API directly: Increases test execution speed Reduces synchronization problems related to GUI window like Telnet, DOS CMD, PuTTY, Exceed, etc. Allows execute scripts on locked boxes No need for QTP add-ins&11NfLet s talk about Component Object Model (COM) first44& COM is used by developers to create reusable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes: COM+ Distributed COM (DCOM) ActiveX Controls.."COM methods and properties0COM properties and methods Properties don t take any arguments and can be read/write value = object.property (read) object.property = value (write) Methods are read only if they returns value value = object.method() (returns value) Set RS = Conn.Execute( Select * From Tbl") (returns object) Conn.Close (returns no value) tdc.Login  username",  psw" (method with parameters, returns no value):C, K@ .2] G   3#VBScript CreateObject function  D CreateObject function creates and returns a reference to an Automation object CreateObject(servername.typename [, location]) Example connecting to Quality Center (QC): Set tdc = CreateObject ("TDApiOle80.TDConnection") tdc.InitConnectionEx sServerName 'Connect tdc.Login sUser, sPassword tdc.Connect sDomain, sProject pEZP , D  5     B 0^hB 0iqB 0u}($COM objects in Registry editor64 Resources:VMicrosoft  COM: Component Object Model Technologies www.microsoft.com/com/default.mspx  COM for ASP Programmers By Wayne Berry http://www.15seconds.com/Issue/971214.htm GB 05W_B 0)&File Transfer Protocol (FTP) %!Using WinInet API for FTP bWindows WinINet.DLL enables applications to interact with the following protocols: FTP HTTP Gopher0SS P&"WinInet FTP hierarchy$ FTP: File download stepsJOpen an FTP session with InternetOpen function. The function returns a session handle. Connect to the host by calling the InternetConnect function using session handle. It returns a connection handle. Call the FtpGetFile function to get the file. Close the handles created in Steps 1 and 2, using the InternetCloseHandle functionKnKP UI R FTP: File download Script  FTP: File download is successful'# ActiveX components (COM) for FTPThe are numerous ActiveX (COM) components for FTP free and not free: by Chilkat Software www.chilkatsoft.com by Easewe Software www.easewe.com by X360 Software www.x360soft.com by Dart Communications www.dart.com etc.&EEnH   )B 0*B 0+B 0vFTP: Download file using Chilkat s ActiveX component (COM) <<&  Resources: FTP your scripts by Dani Vainstein www.advancedqtp.com  Creating an FTP Component in Visual Basic By Jeff Niblack www.15seconds.comX%-"d` 6%B 0%8(B 0v*%&Telnet to Unix/Linux using COM objects -(A little bit of history| A while back I had to automate a Client/Server application and execute quite a few UNIX commands on a backend. After trying several things, like PuTTY, TE Add-in, Exceed, etc. Exceed worked decent enough, but it was a complicated solution. I had to use "Capture to File" feature and then parse the file. After working with LoadRunner WinSock protocol for Telnet interface I start looking for WinSock (ActiveX) COM interface that can be used in QTP The goal was to connect to Unix/Linux box bypassing external GUI applications and execute scripts on locked boxes. Another reason was that QTP has problems with GetVisibleText method..}Zf >  .+#ActiveX components (COM) for Telnet$$&The are numerous ActiveX (COM) components for Telnet free and not free: by Dimac Development www.dimac.net EasyCom 3.1 www.sharewareconnection.com/easycom.htm by Dart Communications www.dart.com etc.NHH/+`K ' ^B 0]j.B 0/,*Dimac w3sockets DLL methods and properties++&&/ COM Object - socket.tcp Buffer : String DoTelnetEmulation : Boolean Host : String TelnetEmulation : String TimeOut : Integer Close() : GetLine() : String GetText( len ) : String Open() : SendLine( Line ) : SendText( text ) : Wait() : WaitFor( Substring ) : Boolean WaitForDisconnect() : 0Z                0-Dimac W3Socket API installation-You need to download W3Socket Dll to your location and register it using SocketReg.exe included in a zip file. Note: Readme said that you need to download winsock2 also - ignore it. The full W3Sockets reference is located: http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm `ZZ)ZNZnnKN( fK:B 0,2/Example for Unix/LinuxHThe function on next slide: connect to Unix/Linux box via Telnet navigates to TestDirectory executes  grep command returns  grep results You can also find more examples on Web: http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3 http://www.mediamonkey.com/forum/viewtopic.php?t=21124Tq(pq(pzN  3*);B 0<B 0$1. 30W3Sockets API limitationLThis API has a problem with SendLine method when sending over 80 characters.)+'Web Services and XML Web Services architecture 52$HP/Mercury Solutions for WebServices%%& The HP Service Test software  is a SOA testing solution that simplifies and accelerates the automated functional testing of SOA services. HP Service Test Management module plugs into Quality Center QTP Web Services add-in,73Windows APIs for Web ServicesHP Service Test and QTP Web Services Add-in are great solutions for comprehensive Web Services testing. However, the lightweight solution using Windows APIs works perfect in most cases.85 WinHTTP DLLMicrosoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP WinHttpRequest COM object uses Winhttp.dll$P!h 961WinHttp.WinHttpRequest.5.1 Methods and Properties22& Methods of WinHttp Abort: Aborts a WinHTTP Send method. GetAllResponseHeaders: Retrieves all HTTP response headers. GetResponseHeader: Retrieves the HTTP response headers. Open: Opens an HTTP connection to an HTTP resource. Send: Sends an HTTP request to an HTTP server. SetAutoLogonPolicy: Sets the current Automatic Logon Policy. SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS) server. SetCredentials: Sets credentials to be used with an HTTP server either an origin or a proxy server. SetProxy: Sets proxy server information. SetRequestHeader: Adds, changes, or deletes an HTTP request header. SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation. WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete, with optional time-out value. Properties of WinHttp Option: Sets or retrieves a WinHTTP option value. ResponseBody: Retrieves the response entity body as an array of unsigned bytes. ResponseStream: Retrieves the response entity body as an IStream. ResponseText: Retrieves the response entity body as a string. Status: Retrieves the HTTP status code from the last response. StatusText: Retrieves HTTP status text. vPsPPpP  s  `    ((1,,`W"5 _ E+ 3:  HB 0IB 0:OJB 0wKB 0LB 0MB 0'NB 0SgOB 0PB 0,4QB 0VfRB 0SB 0TB 0UB 0VB 0!/WB 0dpXB 0YB 0=:^ChangeMetricWeightUnit Web Service on-line http://www.webservicex.net/convertMetricWeight.asmx_+ 42,>;'ChangeMetricWeightUnit Web Service WSDL(( ;8-Using Http.WinHttpRequest.5.1 for WebServices..&" <9"WinHttp.WinHttpRequest.5.1 snippetp' WinHttp.WinHttpRequest.5.1 Object Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttpReq.Open "POST", sWebService_Url, False oWinHttpReq.setRequestHeader "Content-Type", sContentType oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction 'Send SOAP request oWinHttpReq.Send sSOAP_Request 'Get XML Response sXMLResponse = oWinHttpReq.ResponseTextPqZ$!(A>SOAP XML ResponseGD&Off topic: Using WinHTTP for Web pages''&HE HTML ResponseB?Msxml2.DOMDocument,A DOM for XML is an object model that exposes the contents of an XML document We use the XML DOM by creating an instance of an XML parser CreateObject( Msxml2.DOMDocument  ) is the method to create an instance of the Parser object Msxml2.DOMDocument COM object uses Msxml.dll H-7  ?<XML Request file  @=*Using Msxml2.DOMDocument to load XML file ++&C@ Msxml2.DOMDocument Code Snippet!!&'lMsxml2.DOMDocument Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument") 'loadXML from file oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml") & & 'Send SOAP request oWinHttpReq.Send oInputXmlDocP ) :, DAQTP XML ObjectsXMLUtil Object XMLAttribute Object XMLAttributesColl Object XMLData Object XMLElement Object XMLElementsColl Object XMLFile Object XMLItemColl Object   B 0EB,Example: Compare XML files using QTP objects--&FCComparison results:7 Resources:MSDN http://msdn.microsoft.com/en-us/library/aa384109.aspx Stefan Thelenius about Software Testing http://abouttesting.blogspot.com QuickTest Professional Help fileT5   ZB 0:B 0;cjB 0cIgor Gershovich VE-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com VW* B 0(}  $(  r  S  J$ `}  J r  S J$ ` J H  0޽h ? ___f3̙;/f9___PPT10i.!O+D=' = @B +r]m}#`HRoot EntrydO)P7Pictures Current UserMSummaryInformation(@  c .-'_;`Igor GershovichIgor Gershovich   On-screen Showj ${ )Arial GaramondTimes New Roman WingdingsEdgeQTP: Not just for GUI anymoreSlide 2Topics