ࡱ> @=a \GՍ|mGԚ|Ae":/ xmlTq6g+8NkhԞPBekL@!j5B?,UjJQP@Hq+"Hj)) rKc,"E)*m3f;?B}R}3޳B쁲J%W-!Zp[b념b`,",u{ӆTPC>#"B݃([TPoU]@̡F}I]ح,5n@a-u¥9̃qךD+R_-[IL&#ʩn/- %joƫ-F/ǔaoI[_):I1Qhk5'lsx;lZ |6舛vFog&Fo=ssٹ5H~-f\cX,{w 6 OLßnq,{)?]=q,>ݕKA$:-oFU<7lqu_/2#^y1ڇ_K*̎C |/KX=r6?)l[+lܯ{򹏃T~?K2,(0n2d½QD%_5;TLcش?Xٰk?`m稽o+|Uܵ6 ?'$d'& 7<` #&"\ӻ|q9icS^/4|S\a!А7L_%܏*2if3j{pMp?>1d>XMof}pXOii܈1܇kO}|Tѻ|DŽ xp;;`1w3U1g s3w1)FwF*[b~ d9 3lL߂ߞ(Viy`'vB)+9]Qw}>uKϣ< yhUpa;Wɥa!F(o+2`E;ʥ KPˠGZr/NЖJ,3-KN0ϿosuGQNArEsI'/ K /Lx?' >/< -I[@WxaY.g<Yo S'ϛ9s6w +qNsl y4@:o^:~nϙrxt~Rxal!g%v ^Rxa#gn'l voSll_\{}L<3mݠw%J#q}uF1빡ڶc^׶:c^f[לw6o'7F[єUpYЎ}"=Jb?>ykEm_y$w qv>NmTڧk7rv3D{(Y8HZWZEZ3ЅQP[,wMO= @A.0Q*1rc1_TݞsSW6;~ʗ,۱qR!@!l' M+Z7`߬sw^4e|uP~DKlLMrUP մ\qS# 79=65m9!Cfbx~[5-g2Z=ԴǸ65[k\e3F5q|M LiԸew|4Ϋ24-E6CFJ4=̶skN.~G!/y}bnqɭ~1kNnnmWe&HwY G*SRv|ʽOYAc0R'l 1sX:5:8I6MpvyXPMN6/IǮ$?c#M+˲{Лj5AKEBz( 廦RNlӜCTߓB\VP8AOf+ ZopiK83))l³sb/"{6h+!q΀7\٤m:yNaΓ)Q /&R/JJcUsb' j{WVۧ $>ݣrgN;RXamO% maz6{S=螝Msޖ1F{לcb73~=ꄨve5-f]1etaFng{jEHmUX6PNG  IHDRPPLTEżƲżļĴ||||||~s|l|zt{tst~ttdtltr}|nt|mtrlyldlql|lloevdddyd||dv\dq}dopdl[djdddlc}m\d\u_\tT\mm\jL\iZ\hd\dl\\d\\L\[ZTtlTt]TtSTlUTkDTgdT[YTLLSalR[dPlOhLMZLLdLt\LtRLgULgDLYDLXXLLULLKD]DTDlTDlJDdTDdJDdLL>L@=H4ߝnݭou *Í>:Xp}h'P]Ч^u{=u׻ΆX @5#u;kTw"":z;hLZHz:8Gp}Dhn]ZOAF=0eUfͦk~ 4UMoRCl.еYSn>wU0-孬(+pEC4YQT)|߃PgC<*ڪjp?K KY²pVńèoO%.g#`WYQJ9^ϓEJ`) _:8`S-_q_yFBzRI -xT;p[ױAG)+ Q<߃ 0%UI|UIJW%Jx)λB8eܯ +Cރ;ȻHDdBNjSAp,K ]x~?=:<2W'U9R(`Ual#N48XTndesJ(W_%%a~TrҗUƤ E ӓ$?stX-862:m UmUOym9H}ICKq B([Ba&8:vYI7cJ29_\|UK^>u$K9@H] nCp.d4Xp LwEj`8#// ~:2l6ki[ 8[M$)Th Ey(+WF 仐AMj V/t'0G~c?H^6^vIb 2n2Ib.aum" !Q*B RZĭPni| 9s c#GcF?0׫`-c^pbȈJl`HZAJ1N`m&m(;BFCsUVAC/njbcf0q1oG68J'J"4eY"ܭK_SfM-WPB Gwm T.`US?کofZa*y9wKI,) N=arK{.$H[*= f\ɋ 3w!cAߗlBY~< nAN Bp!>M V[ݺt \Pƶi=Ajb-1zj$C'WkC-Hzoڶ}Hm "1&W¤DGâAR #-F2./ %>HK:4M1 C'l(䜽{sh-ĕrYQ7\~uQ9w=V{iKWg"a;o-br,KhXЎA.8a/ٗ=Ҋ5 $B_x ^ 5PwQt] Jb6!PBߢ*:vs`.c 0$ eAP.h8d%J`8iKddW$z ׽88%|;nhg TxMW &gJ]Os`.8:Prm=%Z0Xb̄K%y 7 N`fİd7J1 W%-Ui_pJTp^UfPUvfAt")UKW8/J bU46&bM'UdcRL:ʤ2f4gӉtfthFhLdl4tFTOOdf4\3P;6 ܜ4CN_d cfʄoq60Y#UkiA9 0盡v95%ފ_81 𗈟;=366v}sc'S߆3gΜ= gl= /oN\|fQSDbsD0J$Rx"^;#M|lʴEi92$K:FBSH:.H&ܘf6\ H]RҖ~1g/K93ĝU-۲c;RWxl}u*Z+e:Z\3 Pb 5V*UkrEuoyY5, p%BM:% .+rhYbM"7B*f!gT nAS),I&d2opIT*y`sT.oB })虺J'#59LNM&->(L$ f{dz"JBL2\@ 'r%׮]d!G>Lf. wYYSWPg<µ</@ɤ9;[h_q fFG0YMs~9>SUf)$=g=toI ֍Ba\,ZeDKӗj[up5R?hp-)䖯r["S2MUZdѶua*\.$]If- JLEc̔t8Zipdrv, ((.]8mN8- wsc7puj."x[ckvA"h'Yf%]srl8-]?P,ac F˦QDmrVg[\ᷫ[&IWp6S9A1E3 x܉cD4亍c:#pRu$S& h=>eW~-Z;.u1Kz4Q0U75 ;iiyMfIwG_VB_aGHJ}nv`DB7qx~%ܢc1✒1Ρjeu1'ra=ANc87y}Sh6KhO cy9TX]~78mxKvsjb6y=eQ1?@![,rQğ1Y׎LY\aћCoEK?~ÒLN>qur*uby-'#w2D([:GLsR\rgj'J{K (zQ]Xޱx9G\OgjJgkʖCG-fHɹJ0k p` TdCB5o^jfx9r)@nY[PJȹ.Gl7Bk8sܢbmpL? W\v3h7SGT~OES>:lHsћC?fH'Dv`}e[sAuηp/$wa1ڥbrbt|=FbOҋg-s71fOatFnA{+S;'V= M A9N9"e>KR~(i+]P$.B3(Q67U;GnWPp/N|\2EW:wB|Lh#Ze?w{QY:Y_%n)tOܔ WUv]]mHysU7']I;zQr䷍Paxe\N碜*A"}>"w%˳38?599w-F\*ee]ڶqZ _-.A=# n{SɅ^% F[%d<+~!Wm<5̓+-Z%+Vid!:.@+jљ8o!o 19]oH?}nC=H2m2 5DH_{bAv. COOJޑ03C:LzѿޫH)qٝ%JW p |h,=;.$9J.c6`v_Vw]Zrͥ%9mז4 Aqm:lj Rr[.~i!6 lc\XuBb(f\%+P1ħ|0-S3b؜|A&foj楅_ xz0S8C:{͠(FR8N 2p*"&csT .!2&\f:,CsSƇJ RJ./WUmYe-<̯sg,%ǭ s竪=rwTs|fR4,2.]C}[| W' ,LS L UO_+xhz]B{0l-PH{3$L8 &(%wٺd?Vνg hF[nS:m鐜q4ϒُB׆m:sT(rkƨES,:CR4S8$a[7}P)1I кĦ u@ onJaj=[k0moAJ.*f RX ƈb\'4 85DGlL ;£y" juޝ̯Ҙ 28s$Lb:vj@e6mϋ<ԷN08 xZ;DĴpՈ lyrZNtu3@kq{x(k:/ .s jόҕ!-irfe13__šTm" ઓ%9qO ZY1L#)C\5ѬTUx{?%6 E%QtCF[ꙵz]g~U˽fZVIpҴnUB$Cpy̚Ĩkq/rArז٢G6ٜ_090.%i}TDАۭjVgelUS ˜erSӒ)OkAeg057T(1䜠*p+)yc/,Olt>$\)bPrZ m 2'~.wn&%j aSȑaKd>Cɫ 3F\a][_}Na 6%7>H1R%1L.L/Sqdִ~ZCl9PYx9P;!_M5j0Z47fGɩ"gAɅ(@70"p.Lg-f>EB(YUF͔ C38hTӒv$4Aɽ^9JY(i j~3pvCZ(lK㄁WpDGb\9v݇\#p& <>:NNEL[.W(j"l:mIK#+e;2`vi~48c8=Ln=V)hd)z $O\˹Ϊα{Nu@CiCmo#ErLEYLwQ(`$=SXU4 b1v%Wڡ55 ^ nϦ9. {'p*@.!f66)Ijmm75ErʬƊ-0:߉%R:}"H@cWR#f=ACts{S(*uW٬d6{ uLjkmN\&dE,^[n+qi IDAT2%6m]jWhm!QL 8E!:>3)V8Qz4+ fwӉ+İG \JSo[ݍ"9"5I'CХ{r<|yHNHɽet`Ykx fѓwQ ?-H1dDIP7VG10?7ga'y10pcQ{sԪ;}9:6 ɦh!]{a\( H򴥼|CAtBJ)sBږ){ÔBuBIV(0Sw0c+PfíH+9\"3bYe[1'=}r I @@ttHe]gQy 8dX&B&jHS%D(%4=2 މxu ٵ{܋8H/f=bNBoօS W|6wܾ98k>O1I1΁$@9+Ark\=|Kpnmk K9^;{yvQ[}HD6W@f*roN.ߋv,U4B::F|mi~qȉ#2Qp,"_L]o ҄^SWT4NUrY/~FQr9cS3BrYACE`E*ҾK۲4-۽I"L6B}6ȵGQ"D"p͜.)G 8 "9-8H-уp2g9-Қ'p٢i(0-bVb(|J- Qbad%bnxA"BDz:QIM^/ߨ37]+i#.-=P.!TF~w//Bٲ+/nw_2[BIo)k@ىT(/+pZ&=~Ir7^PyYrm$UfBr;80R@VF 2ZxK<-!2poG\},/z*cYwr\ nmnw[8. B%:8h[RE0`YڊmVFaJWAէ__cm*"0 (*33cnTԖr2)*u 8Cӟt'`  ;G]ob[sB-ngrg`9"Op sg,2 ;<}D\wmZa7pE[JKHt )rY$C ~"M|/ArϜ' qK'rU_{WO!7NTU:- X Q`#c'ѫfIq:Gw9+Wpj2p|.:tXƠXn95 H-rIs=ٌ$7!Gr SVZ dX0yiE>oenFpES8\l§$QGm๘}H= 2Bʿi+>m=lz32=A㴌_0+EB1ԼB>C<~_ GkNuSc:QMG>lϰ-v>HP[ƚ$s!kBP(ǟvcԒkNz*OGuT@*纩Q뚎&gT$-HԀk 0tpWPS[ov]shMh\V3]KTڶK.QؒӲӲ`뚎fg^lS3L}uPZsJH.ґ-K^&tYQ>ltD7>RĞ:X@0']&U~Mk:~E)L4T@*K_fi'6-e pJTJnI2p"x_!KL;m~=e T]ڒÃ_OO3p.kj̆HrU`eTT(QПRf=1v4 譲@n'i%O[0F4,<2Օ`ئi 1:_4-ybV(N0yup;9^vxw'>JVA\' Hi ttuHu,S_Rôv2-P_mS`SfG Zږ?t{ 't||53 vLe+eoE/kٖ:j/ҔAl\U&D*B='P_oߦQX[Nm[-ymӢIۂ Ֆ]eA[f3҆kgnC򐔟v9Ujyo9-?_{0crI< 98tJdGSƜޑaGmc5-g3GM Tn~ݖsE0g+Qnu(%sMNB]-?'xRIiCm|t}{@-7hP3;s~͖ٳ 6ێԙ{s̆ok?nEanﶷy7˾ruƲP$Xi4 *  5T*#fs856oo@3PrPn~x I_3}ޟ쳶&S-/bMٵe٬f YZ˾-dx'+k/gC. y9![DQxV@c 2-թ3La'z6gWںV2_Q*j 9/i,% *>$O')]F=A0Ē.)6T3R=!q.KdBO/ⱴV/e/d\u'vlĴFϑؠM,~vЯ]Z!&'cOg 6L~5'q-L'ϧӺ}2ݲK8/dkݒ-r(, b`8&yܰ8$mC= 9 ?̓7sݛjRЧZ^+NwSklvnjݢ<ެuUӽҹNůl^O*[ptwj}o9ludL^XM,ӚaVz4լ; *EMiYhMc8_?ո3ļ*9>I#=Hi*)2+ |s5)RE%%݀|%lhٜ"币o-ˆ"?R׌ZY% m#=Gv5h9PA~3V, -z7O^{$܉y#W*l(G%-y>P> H\P~6q""^|Fd8WӅ,@$n Jl&y; k 1V F֨n)aaj Jյ=A=ti_c (v[_ZHj}65O+qhE˗^}ҥW_ք0BFj|K/^z1rt k_^y$ZCs@[`5)Gݯ>1E_yVJ (m-zdT1E^%FY5kuNx;γsE)>FjWx`pns0[EHJxbGĦ%^4gO=K糅 k6/Vrm*\2w(bE1߹굗Ғ&f8XXmn,(kJs$ZA.n$:h}A948eI >ɁB˪𡑥@_s wXeW=^*R탛E\{;]!'izu+@^UH.7N~wa&铜@9:Nɥ2-M+ YaWH3keEd/4`4j&l1 ęS (tok!ۦq-&)rŇLj9>/׻_,9cM7DŁJ~aerjϲQRمt4.]R-NƱjP*S!41ò1e1pڅѱ<@(ӗ`Zt{Q$Uᇞ>{/j|պkUDr23 (t,$6:KMmU+\b ?PĤ\/̀QJ;Nx@9 1Kag\VtV$ L]A#+BGLɣ]'Ѐss3O+WO'8j]{ SeumapZ2_o;QH)1mv^|٘ԜY:C Bȗ4r8'aȏT'!0 Oeh. yK <jYdxwC6ƕ9?7rZx^)۶.;S7q|X\~`= Bp\IWk"évPvg>ɦ J?AKGJpd<+?/wIK\ +i˨wfȑB9ͽsw?OjG0l,`ƒ~%h|nz 8btJ" ibdxS1Ar%EF<$! oS||ytUZTԌY.]"b`=t8']:%5ǟǣk? nvk!9YLEdGlVK'.y_9\g.'fWfP_Q*l&IK) 6f w e^%>[N'N?O>L QY9y)Р#I]d\O# mzwk- |bk 3 J⑧O/䞚y̟r?!_~PH7xnE:` 43JH$[ل<=^yw B:1l# @C}%jilD![~WHECۋA׋ʯ,kcS2AāNWP qW,wω-a)۔x%{`QYb`)8py~ n!ixyt$?*'$3O"215kytr}AKG "'g1e!-bb[:b1-4ަ8$Za5.Kԇi' =kӱKϮ)j=鸦*9"Q |uS6 ejVZ£ 5 s5H, ЭKq"e#wڲ,,Peb[Ӳ!ў;RS#gy>])Ji(NcNPTjLcP<~26 J*dŕIu|;yV+t,u"_OcuYs.*`baQ3̒|޺q-%7)XA9]Y9zɗ  Fa˵l.AC$usKA vV{kitDH~ӘlFPEO(yX22 䌁PsEd"k|ן]2%%t~:2_ES⚜X=(Ĕ]D $ӄ{xx>}3JWM_YXXI椨d$A\녟,w6 A{NRҪEWwv IDAT2ռ D>k^ALvǹϢG8Tk 5^G""O}bz!G> sC855 I 5eY:ښrvy!Qm`D%8E{f@nE"V&`q5\5qv=ױc ;j̥A^.Ax:Ǹ,`F\N)H.4FvS uB z!P1̑?9] 1r{ss8 솜Q9H5t!_5q)56ts=0AJ#}lOj Ti^ 5Bih 34Esr'!G$,wEA8, 3M5ER n5'@^(CX4yo)0r,;,@CONKKBĜL; 6kkFa]2'h_ w&Kt+-9%H=(N_\3_9//׮uo^D.( n .6nko1_!Ay yvZ90 4ʐB=$~f9 DwQ0 lz̓73Ov` ]JeT{"D,rM W!f/̌ձ0'DR:M¬ǻ_98h=N/`ܚYݠx\G%ҚRs c* A Oŋ@@\ke?ѩ( C a"2>B읠jfЯxqY^B:>%/{/=xѯ> a\%CRCs}ϭeWXS~|m=al;gNc|L`)(]~I[ia؝Btx" Ёr#+5_ɵ/䞿OWUv"Oz 䕗j d%r56Dt*U;pju-Zhȟ o&0Ξb~zgsQ@&~%+XHQAoX;&n#=zZpf9׺CnMڲ{T _SQWf?)FX#< 9]ό;O:W# 8RsV]r6:_4T(O;rp$]4 -/9 OƍWjK.mHm.*TVߩ 'lA0D]L;rMS@6i1#2Kʼ 7DV3V;aΈ˒;Q‹y_gU|;6x9[Nk4r{5(B u` ;b#XNl('g[(?CtGb>q @ ţ a tl5%<\&G),`gH^uc#oVXJG6U-m j-<|'oS0$&i}sZ^bZ"S~BKP|yel#_WO6wzՊ݈P¿=Y[]0 ٤X˱K(s\~) ˧Cѕ-hYGQ&%;U͆o_ -mZ2X,^CKx6??0fO1,w,%toYyv`񺺨v q)v)SD4Z).HB,a y;BO%eE5}d,R2-BS<  "QH#1MW!\ynhqeN'˯ *'03kMڗ" c %lUXkL/%/?0ym!˱4e1Wr('RP k`P:$UavVeJ?mܹc$(߁B۫ zr=,p?i`,@Gd-?>sǣ3325l(faݯC REv}ܢ jUԯm[[ Qgk Px!jDӠ4lW\)V \G|9prs+UxzyǕW+c¨\xX8J`ϜuawܨRcJ!t,_o*0` Y{r?' - Wp% }qJ\,vasևz꽳U0}ZִxLn)?wOQ9E "S.|ȭr94N.gdW)9CLj:(\NtxqsLs0zH%\(.+*9ٳh9,~k^pX8iBzBuD% kZ>~6=A?*7 rD>!\w n1IJLV!~"TYHqLNLӘ+k Ɯx t,t7ƵֺeBZɄ%-JϪ+r1)ňg:0#H )E4¥GH'@Y>T/eqkFvݹ-@BHZ@Q5DeYų^88<{ Po棴5nSp7Ldrw^uտKWkmmu;8A~ z><;}|ͭ׺somݚ*@|Ԯޭ[ rvոvZm-wn_:AoS9΅V;^rb9ڊn=DSi3FAVJ" "e347sq%O=oo|Ml}@h2AIvф7Z8pë W~0F0˽`w G{}o~xy#>h=qb%2ہWr#ު\۝VqkRB;,Yx8^o9nb/<|р'6x~.\[`;-o-"꭪;LquFb w-aP|+Ո^lUn8^MʨNT*E:w[N@0mj j!rN$ETuiPE<4#vب7Znmu-˲IPᬪ`>\,ߴ uU\Z}[B;צOQ; -Z6Ml C ^I  T3miUdxdbeQl%;^&^u-&Ęd]{Do [*3 $vzջCUޱJqPbіtl,ٴ; %ΘIKK[H?sD~ŹnpRE]3N*PfR2-ӮZLLmJ6 +Q0@AʽH6U!$JA72L]$K+jUKK("UM!`Hf(]&,<|ԟITh6#E[4Ui~9%I)i9s٤m^"]& iq*!cbP~9$%83zZ8Ѱ#l5LfQJ.&EE1B19s" - tE0tJNݠR738Hm\|~^J.ctni^ЙL 7aaqfgaN;\,UCuU=5(J)}VK-fVNa0PȀ88H܆@JEhjɮe}USϬ6c!;MZ^a(RQMJtU]e6@dcO-wU ͌WE|ԜE>HʼY}I ?q&57'uz3A LGyo-`T5T?&u`4iTFVg&tZWMV Xgfw3O/xXU{f:*|:.v`Acl)hJ9r*I6&\JIgί6kVK'2n"@iێTEUwvxEwq.*IWAzvVWVAs%ي]o{V:اWT0-O麓a@YtVJ%{^lm̀)RgV4 *)VA,eV?D~(:J椮mowvC;gtpp*˪] 6ԁJe d _ hXqm7U.XxG^Cs*TVq~Eּ:a`O WRsuEk 99x[uķ5':Xn.eInl7h{omj aZ '-Έ7v`2L&|^dmZy4.ΰ~*-Th;9&qYD/|PI״@W;!0ƀ!|2?%]_u>iވy#]Z. W ^cج]i/C2祔;+0ە$ e˙s%Z ƠeyTX^G']"R޹s矂;PXۃ14vt+q"B'X0N;f9Je\ ݞOf\qB}*0S\3;-JETA\6Chw)9/tW3) #/ hH/i۠>#{_7x$ۨz︪m{1>4M,gVKc2qsr}a`JFJYmx{c}^ l.j6M[WhړG"2r?aM B&S^wYkuP?Ȝ_>jn9ISؖu\g+N*h" #z|h:2n0|K0&w&)0wb+>Fbz_ǯ:_α7+W0Kqwm~Odo{%%EUmm{"y^}MpG7]1b/Ksssssܢ*-U)A9|/ L&uX%=7#4}D"1s J%":z@7ymfX";‡7jT:?=^<\`[.T2mgS8qOŧ@=q≓O V f qA1!<?DC>as4}$8Vӟc]~h҃HM+M׮N׃sio>VD Xnlt/~O"^t${͇ n#V@0—Z{ 7Zj67,E+W+ dѰ+}z`f#6:Y:oD~ZE}ץY|{?) b*zoVY>:ۯM^ Nnw^;m*` oVMnG>w b +Y}IDAT Ϳ C4]O*3y'Q_XmuT*pXVN$9&T^qăZuuߌNjirxab/;mﭢG""0չ堽'^EƼ߶0+OF5r#⾳ ` @ A~f`6{0Tk_0ݱI{ݒ(XfĻe${A!8\!sLwJ Nhp2p#8<ԃW[.tA  Dضa(Le~ ."?y <3h(|TBFiG{7#Wй6t{mm;=x{aib~X AE$\/3Yya'r^. nD>?Zoy"rn0{;?7xFqܴv0qQ? E~[j|ć[Pc]$e[tz8_85l@[Cmd7@j g  4`Ak^aY 7ħŕP/s~XWlTrDfXY7<[>¡h@ީI){\YF:?`I%)o?UE:/UlQ=E SELPb`Wq+ұ+dsRHm-VǩYgc:yF_t`B}K"U.ۻB'*7t{zuoީʭ/7y4\NfN-oTRJJIΟs'|m`F<&w?vnTw_<  2u)91T6|[e&-2o+]E9Lk`"b{ͿMy_U=C_®!bxDC/እaحXsIIsɥw p6, TѩmüiQmhgTu%y/:wL 0\ ?йAre&g"3 s4h%5T-`o0-ԳX7K8PG^Rm)Ø9]չD1Rbh>?v5RUQe`s+l3w6Z'˜Wy]y\/053l-/1Yvxklm V̊NWϭVR P#ϻE^OkIJeh.7Vݪkb 0AEĩ- oTjvTe?O`N3!mJV0{[P ?EbiOà%<"`J`ϥA_ǫS|%ò5G-O̫# ȶ8L?Zb`5jiRR@Xq\d髫]T&*JU6Θv y>嫴3%0\Ij .ڡ.;Y?7S-vFG!g] 6i}nEm0=죑۝bE}J eDV z *\+"7W?~9@],! Kh@43m:;-tNfՖ7$]ޢܢBA4ۡ8'.@QaA@>ɖlh{?+(,٪W$ X ۧti&g2MC[[*Rx{7@Iz rI^^on0A9"i!֎DuL`Z`;h|R(vZ g^L!|+iVy }vhyh\2ta*UdJ.D r?S19()+\1qn45b @0Niq6a2JR]5튍",A-i bN A(fY+RFE=,IgRyMI)ԙR̼>]T_EWqPBCY*Y&$&Ҧdj4NTƢ^#@N2'N|ܬ瞚d2Y/qe0BR-ǁ?FN᭪SOԋZ"3BE@ m!b:ɤ:_z';.zBh=1N"&g"]ߡ4&2nrfmߜlr868 z7+檙\2ED~t!cxCdtn ym!&@SFmk5\Kmo΃ f( p{NBئ1_HE")xj}}6w~$L|*s)²#28" wv#Ĩ(SM, F2A{ Lm#t c}ZGN9D8(Kbt~^ÝE3 k^0;fRg,gCl@85 UKT+TH:J†TL(΅ܠM.4zH/FOq~AbɩUɓȿ::g`;EsB5 @ehٶ(iDEzjPb~M$&S]).N"-/eTpuHǢAoa @̒2f0;'up_Vqm& BJ%$P d pg$(넹"ś1Me:bgQ=1" $vNB食]cbkcl]-4{rv?s,hx%)A+XT8%m$,E1StK%BaE-QGm7 LB#vFS&HnYa_Z=M;&JB XS'NF\϶](Y뤘[UTJ}$`0򙙜Sʹ۲&R_EUU>&~n;!@'4^yU"2 ;2fN܉47JLlʹnu*"U^cLug*X@^ JKɌJ]6.%oU$^7F7kO\iD*{r97BlmӖA.^*)Lٸs|gvn{AR|JEYDL-p(Ie=6u0u+ h&쁖H7WEf"vGd՛anHB&dzxOKQ&fфVgm&x=d؎Ȣ8G|[RKUXP&2F Ǣ6[6.n#H(;zwȦeLʤ٤} +eV @?(S݄c* cA|RQn!J.e:}Ơ:E /K^!IS~"Nb ;:p DG2sfP=0E`*E 9V{#ݪbGUc?1HrڦT*^cG^5}4 b.R0h`5/H VE(b0ߡ hM ejh~!`B+ͥV_5F/bLh壷*VT9uh,+ʸ/K \ɷ7Jܙdr%TI],Jۀ*( J0ą?<,,tfLFMJs`3:=x@xEkJ=- n4+i% FK I0\Z׮W2zF`F'ssLj;TZ5P=Y3>0qJEGE̼(g$Ys0Rmc3 /CGL.Mcj$KCqqb fpvYmˬ;L*cU:|0`]KI`̧U*< fF] F(n0hvt,6+}7[+/azDslǩ87ܭfFk*n=vr3;w @Hu^PTõkhpZBi@]UaXL~S)V*Fĕ2R& 0$5%myܟo0hTVKzr X l$@ 芋k @`/g/i5uJ@fJyNUg:ma2jQf| 0we =DM}?k1G~w4{+YU*F0_KeY|7>s`Xul ,_De2UTp0$>/ftP5tRnk&,u&9|F]`V]hǕC!<{:76VbJeR$pqAbZ*e]~lbV_fT|f|GI_IR$Rg2J*SeeE=LOIks+YVRj*ceIͨp ML9Qq@j)PT [S͕3񄔎TJ.ɿ8/-Z>,%)+ H$eE^ KMzIM(VgS[DI߇+$A5zP$C5x0zN9JB7A%3.+P$4FJI v``[J*PóE)5wԙ˙?sy<3pL!Kf˫jF$0gSqI]E[~ qxz5 ~Lrݜ;Z !To4NL۝6A*l ݮu_t6N+6Hq̜ADTڬ\q*>vJbIܢmo~Ⱥ(JC_f~60{:Ac 8 Fp4x4|bP _I{^ #Vpk0x=SY>9|Z &^o wįpYG>)؃OuNS_IENDB`@= O.`f4B\Dse9 x\klT>sk/MxüS.aZ .oE -QJSJ/`#D?(nITA$ xZR5s{aC=|3ܙ9gZ| 0`T)H\ç̌">nx=0/ XYb7⺐n_B piy9 Oy '3}}Ѽ-!6t0y귧@[t\|2|.ە߿C.KՋ!O2}0?Ln/#6*3ޓ~\^Y7^yS~aX;ҋx q>*W$]86_M^#O L7Yw*Q&Lxrv3Uf]Lvi^Wp4}J0m \8:BCbxF/n~+ƩpġAtO~)24F#F|>j>^sՑ{ج.D>Z2~ BTsLiva '0l T'< :>|*#GWKystYfSA "*BR>&γ<s_g芭BAݟ;ʜ::,j GRB.%w ƳNk j;|_mjbk|io-~'~P-AH!K1^AͷC\ᜰ ֪XVbU>ǿss=A oYQKՇC\O@njL܇M|0BK]ép7^&Z5yǴx1! 0p}pwԲ&N;#NRg9 qbz/Ne6j _IJkYk M1K^iY6f*>1!ɲ_e }<(}ӵgh?K,"Ʋ_gmY?tOlb»l,or<gYNN6lcB6xg~}Pa 74aEؿ.uɰ /Zڿʬ;/yag5 $_S:a ./._\ؿxjaV :/._\ؿx_5d W'_]_ 5d5 _CRa 4Zؿja3`^b?h-)ݬAm%^br2p4e/؅)a waJ(=Ux>`h{k{-$ƃX''0$>)t7Ku ,%wI3͘rS%Yo*NȯG\Ou{(+AbS|S'>_* ƃ1>CS'~i*Β`3Fw"ިԉJ'M|X"F٩o>N>blvRj9;uI 7yV 7_ԉ:)Nh+w).Fei9;u⽖KZ#<ւl%j-gNכtrU\~q%'u{MJ'6^Nms=.W#ޠԉ=N.zW"^ԉB* 5('iG:(bGV٩T:}E$;e\bīuYyfל=k[" >?xabsWܳTqqJgo?,8s^.nQ o\qӚNϿP/SQS^'9}8zFۺa:{[iԾ-˳I~򹆁,P0/{- ~w-z}Lװ=%{sG0{d/c,>w 0~UO~ܴf [q1;#1A5(-G{Ƨg9 AⷩOy7_s}z©ܴCӟ E\dF[8]nOQu:,yEYKF:A &d^A|d3,^v~t^x"qAk.}`+~a:ooF(abž5@G+jc-o`{QSV뻁0 s~M|v}95 }7x-Z_1sO5!1fb9P !`%BKܖ5>[ BtbXYr,L8 M9Zw#^&(׿E<tVQc~.XEQOM=מUR]7'sn_1~r3ܹܓt#sWimӹcT482jCֺ8h"A^?犾70Kg{j ̳Bvy ^?Q>}rijǰ>v!qё 3G!@=q gv"n~2J/1{cQ? xZolg_l_rBi_\H 1HCU80MC m`#\MsV2 M$H 4iPUVQQqD[vͽ#37~3 (\刭BKkUj:745*76eJ\ m>Jl+4Q(hn)`a:'nFi沵 bsb=H/n(O kqsUNJc܆PnV^Geؿ[_U 9===#\4TQ(~ tkHX@{]He e?~ +!ox^+ZO )q |HmooxkJ休܅;[x!WofW=N7~EԗOOԖj8xM15u}8q(;9Bu-cO5Kn<|vNGb;S}V3ןQ oy}glg,1a ]oxk^+)1wD >$6 |7F5OxrBē?l&%.[8M[xDWཌL<{"Pr.. 6^#~_Hη'=ldbC*]:M4yb(סBy y~B1߫]e ~hd4 mܱ\1ޜ\do.\w`//C0 ]0R q%o^?3FEx (V1wOAK'{u֋]z"\>?>w_¤"@Q d<`djnkwڗJȱ3K=WWt 烏f,/b^s5bo_0:9'8_kňX+7k y s>8_3!+;=k ?(?L0Qb0.a0&aLXaTèddv|=7aWQ| G\{H('>^-)~-۾jෟT_poiig*\ 19(oh|1]Ƅb_/xa؉.N>{cZ `ˋ~},uИzՏxߝ~G(DPgƄmXnŖ[ww^z?&3}\oo[m.Y7ZTo&n+L~Wi[,|UԘ&YV鯒mWp0pa}8X$<[wIqX(&9ÏM:@\s=\>\OZ^ż@\+sb>\q ̵ZkYzn|.D LjKNb?~bcG\/XxPW\ 9Eg\y҇CcvknHAy}9v˳3á }X\s݇g9÷'LCL8SqrT{9eg*&[#LEK>Ss a"!^秐Gϑj3 ++>g*9SAzy<1}7pzozĊw3x,,|n]wF;8ZU=q.z݈Vզm}8TfL?~Pgj^f,~֕*(D\XW.p݆yee8/rfÜC>3՛젎!#Fvٞcd1Xr{yt,nZRb{閄3gԎPdɘgG Wv~gM> mu'<ٜ@<ۘ:s$9ulźO-t]J:?$qM#+P|hL}RArQ/F^Ǔ]ʋ=b-uē.xr7FPLjnyč*?a"Hc U"&Hg3nDԍ7fϤ`TrC58ㄶ[9~_sA}M%SfZr8>E$QzafL4³@1( wwza 1=<*I؜U( wwwwwwwwzaM-*chHH( @=}xJvgQ44TZ (Nx\ pUs_  Ÿ SRx$"(hD TB 'U(MC# /#Q~Ȍ0Ա3vGŊZ""J{z<L_dٳݽ3PڣdHD3Ba2b F= ciB4!ΘDdO@ 艒p7Y(U.VX8.=?Md25XO_wO[7Mji"fmh2Gۆϡ/^V\)TP2P^tk>CXknyϣceJlkgq~1kAa.Gza?j?*K {ajػ&9&u1}{ńʽ#1 Ni'9V<"Q(LJKPt.!w}fus̻tH|5 #\I{t)ݽyԢ-ӐĠriUeQ>,HOJ11?!L6ˁʯ+<[qjg*tXȣI%]cK/0n/6ņa`؏԰_1Wpaް7vux>ް`_0-vu>7 {f=ӈOa/4 >\ߛ[,Lmyuy|>1/σVQy#rduZxŠ@cQ(E(Q&Q9%8ZqN(6fQ/vGt3'1pkev )po%c680+@^^(pXDP' cE~ ױ HYG2%p }։ry>|I7 >Nπ̛\8q \̛'E #;b2'&ŃpZHk&962 P,( 0`?8~GpԠ mȆq~a YF2σr`tp#L_B L᧹<(3<o ̀`& E҄[HΠ2 %0fmv+Brn75̅aBL9(|K o*T`+o%4% BX㶖7 or7ruiM6oya+g˒ۄ{Ԓy+`/̫/(+f[}0V *$X3$ڇǔj͖>CYc0Ὀ*< uNk}-|ÿPPCx<<Zw|[t/ ~ZU= gOPkmSfxZ[᜵G;:_<6y =QrQnB2e0ʝ((0;97el`< ?[i@(sȜG (^x^Xӗ~uOa]g;|S)N*~ueuR)-uec/σxf?º`/ρx4q֕$~y«gt='~ɺg/Tx5j_+֕=u|S)>k5XWά O°e]*<Ú_7ueκ_^՟e c] XWc%Ú~>ĺOf/Ux_5^_ʾu|6G`]ٗ*^qlc/Ux5Pueź__Ⴇ; Q_i=ͺװ?hWx4/ OqదOe=6Ⱥ_έk i֕Krn8qXjGW4 Oq߰?;˺_`/Vx51+ݬ Oqᰦ =u[UH00~ͯ7j덾yjhȯ!kkÐ\~N>?o~qN>?o~]mj_W'_WIQ_G ~M2 ~mN2aޑd~m6d~m6d~5u$&_ ~m'_ >l'_ >l'_ >l'_WI{ ~{̯m_̯m_̯$_ ~m'_5I51uMOx E@[ύSCOkb E"N#[!^O@"̙-,œ)2ﺖDu%8M[c"7R3[br9kyʺ>9eZg!3Qt5DŽֱڇ1VWL蹭˽+(Xsȴ4EcLz,ro2 ʺ%&>9eZ1q =r_czǤsLGhLܟͽbBQB(bkFCBV21q?I;EDIGE0t\}+&41 pg 4C?(21q : BP-z0D)" w$4o`80Hјgyń:2P !hLܼbBX1) ZAWL,a ʺա2Hј]zń0it+ϕeݥ&XOti}~+&4Jπ@p;Dw5li>{dd]=r]j!T8n!, ؽ}%Fz`kiF|661] R*u>@*49@^яeױح\q':@= H؊>1{cQ x[l?ZZ(b+(P:Xs"KfHWDB lB`ZADmΘ!Ƀvet csqaKǟ^'OK{99~eDwe5hL=IG:=_eg ;FeHP>30KN'*C v:?)Li J ]6IpcO<<ROAH{BxQwڔ}8.m9ϦBJ4nܫtS뷾>8Ay'| OY7R~Jt<G/!߱`jvY^l[om|%agX|pmj;M bLtzEVf\t<$`1̅_ns^2e=w>fֵ!eԊ pGօ<8H싙 5A"¹@jwF9qZEsl8%#'~RI\5FdCk6Wl/nxg/ʨ!)A!ncx^Xcck,y%/Ŗ%o[g6K͒ϰ3,`K>ؚ/'zšwc%r.:K^gɯ[떼,)o͖<׵g%Own}I:K:G:F"}+u':ރ:fҦc,7Ii_h̃Wa>AuR=];.'_J:oa!{$oAluhJ~D-a' VÿI~6Ij-: j!{*YXa-\#rp-*`b5Ռ^_COzo-00LCH:.KrpQ.N=E'<=9oы+Uz%fq{+_xx?~r\1&ށ^LkC'ݍ?wZw{?]gr ?/1W!/ϓrvbӾ(iJYI9V߯_.0 ||cO|ȐkLxGeSzKy1Ai?]`'k=R)4FEC%)kU)5t^h)e--Xc& }!)kkR56k_ekI9`=Co)#=HywDZ~\ʱsOhiEϋח∹Gaj[!dŇBqñs|po|(;LJo|0YgbgC5v9>Tc|CjPӊ;3!lŇqۊdŇ8LJV|8`ŇqMV|hCS!+>á8LJV|8lŇqߒKܛ0_ayd_xloY?Τ$F̑ys3$sԛRU{_k䓌o`o7'}ODʉ~#6)#N9.#\6l1hR,KD jF$l=ňΉM*SE+T(MxmO6QlRMMԺ8Uiu[$),I8:L=*}*Am⿶d^cLPKe\֗sI/'M׿lJ< b\<\܀#UZ6_GIHlհI`+٢lRi&Czdv~aت= jN$m7ɪmgOqJ jX$l/;x${g?Q1u)Ǻ6b{G>Am⿯dnz[(%6uwֺFo{[ߗXBٷ~'8&-cޣַmry|z_`-L-s,V0@&KjO>S?M}Ӣ/CBtT7h1,1 4ϧS(ivW6{}ϧ&~|;%_ZO7W9eBOwm#L-s"`!4^[ղN6Zڨt^0ҜG??xkYd|[~`>JT|?ȕu}׍k]>k4?:_~Mg.,+;~t?t11v୺>1Tq :[0a\i.u`}-i쯙}ZF<|ZsEOu%TվJrI/%{O`ވԎ_GdɿB`X:޷d&~x!*?uraeE3$9>\yRZm\/|Cz>xu] FbvL2\ń<|ۧ%o3wXN\^H{1e4)W~_!xRG(w/Q_csqk~@徲a\6NN9~;s|0S ~e_=hXI~v!{ >(}1ogN86Jnb"ɫ`?vPNG  IHDRfh&bKGD#2 cmPPJCmp0712`!IDAThCzPUnx9 0! bf8숎 E1`Q9C[{_zSw)t굾x `b`&.k$(RGsZ͵%Z3"rzpzd#G41 OhIbdx,#zaE5פvI&/>#DJ20D#~e#K0Є&%3H!^д^F rQgU*(= &n-uVL1YC(##ȱHf1)bBQ2m& CFXbD#C$&)Z[=OH:}G`&[arm*;&;LΊQ o׮Gf17'sQݍà%(}Yۖ& ]r ImsE0hP ֮r #+$D#FW!*J5\J43Vj zg|A|s+.*jTptH4RJHf-?Ҫ^.ncDhAC'dQ)3w:e:L&(!t2BFE #g%vλi9Ҹ#B$F!FIBlnXC SU@w9JֻOd.ɲbQ$JDB3C{{óNQhŅW5H FˣUR~˶ Y&Kroo1-ʘhX#Ikl6gG f٭`suK6!"hH4uܜ"`Z`iwR3*k8IHjS22*%lԭ"8kM؛԰_=OnQwHUȚm}]ލBfQhmp25ↁ&HRЃ#(3" X|2l;-ULW5 :RzsvxnY2V6-Y9w/Sz%O2a os;L)tb1D%;|B)P1Z گ ,E6ynWfJ;CM-ܰ,Qn% 9ہ`H)^h/Lo~x9P̠Zy b͇6(rڂ-<+34 HB-ǝ(X%d0Ӧk9j(Wz{RmaU&Z-?OI,,lxz~"IDƭr?$z@9F41_.7׿[ mCQM \Y2[yZ{= ]aEg;l@ yJiu0uf% ^(Ga7DD K]+RJġ.Gtf2~Ɋ =0wnOO$Rm_"icaɱx-`wƚ)~ 덅ӛ&FBFV4.p s]C=8Zl)8ޛ*|)x튚((FrXk^} WlPMO#kyIXD4ݏ+?/N}kG߄kjf|#<:QQz1꬯ӽy)5/r~kī(rnoo9"wju_26@e"_\8& Ҩﺪu9<#kD|}Êo`RpQ}*qHol4!A |`%R!!줨fïSWޕC0VvHltGyW8d e2%֔cѮO Jű~OK}FAix2' e">~svYSomFUcm-hN_iZIDkm}`L[ ;{tDd=p=Bwg,M$:IId+1cLLL0]ke˃6Qqט?z?vUWarRݗl$rJQͿ7<␌ _:,|f5&ݵؓ-"!?losqϨY;1mҲ+u}SHAsgWԡ);ư-Cw|GX;/-'ԓ7Ó?F]nm+ G1n˜aDiѫw3fCvʛC[&s]|nsa] 9);o)?cCgZ5ΡSfu:Q?~X+Rˋq,UT 򿕏1lLF'UvS&ۂFK;ԻTřlkEfT-ZGM %[i,S6jєS SQݢ_lY`ƿ.\8SS=S1߰(Z nӯPW3KPo +VgN0$a4\Tu(>x)QM=D9l!3w4(*ll(JX>R[pT{SZ3->(@D Nj!j359/Va00G=$'Y/hP|5k^ۊ%1u(sK fRn3>4tC 4찂 86ID6}u?\WHdnvL֜'`rb٤O^Z}җ}&ה}|++,<{.zpnORe?~~Y'pA;e,l0-lw9w(0njW嘳R<8DƬ:tE9=>lg2]a+KGV;oP2=aGA'STї /O`R*vJ4![]-QUc6o r$pmΓU_nߩ2?gBY>˂bb#j |+nM'#3W}", jphoaͦg_@EAA5w֣l71?' '}`2m^T=O]XK+Fk}E :DNC 72mf^{r/{P߿CQ<w ,ƔyGv_n/^U ubPM\]+A Jں )HMMXg/0nퟵ$(ZѽQ?48$aFYtqI;NE@( dƒ`"x> B# ?Kf~|&_t$5ֿ v(*^>;SٲfQgNsh1%(vi_OI"!J$2 *U R!bӷ8li="ч2B/͏vvY0g+.4By!1mU"ޱ@*գAX D %yuSjUKpv6"27-ZʤzV%$Aznhd 0U|3 9<UĠu6P%DnMN4-gb{sp8) mpk|fTzE 4bZ/ֹ쾱 I:_nW%"޸ZZP $?V κLft9 #g87 Žʦ# |O|jCݼQGLC PTdA ^?ϧF'r!'Y}}d25KlQ6Om]ܑ˶vrf\X7pɡۣqT'>j" B3B|3by_6ff.'GfP: E;>>di.Iv$rQT~p=rh㖋= FKlHt:^8[xIFW?G8%:?,G}FOGO{$VWKG{ +&lb]&8wa|QH'blpH~`dIa|gbib2=(siV_ߢM?ȑv. ̂r#6dh>ǀưh5'$=Jܔ)E) '`Enia5\fݦVZ۾ǰ5d"~U͛ M`0  @VJck1ʡw֦~QRFc_H2i 9"rgd0Ve{ 4']<~]Gpgz&"Uhk}?`p[yi!q_Gmc]AץK} ִEȚ-5| p R2E)4+w'44\ cQ).ƩT1Prki575.X_u8kaѪnYs BIOȰg|_M]a6VTPvN}e0*,7DH9)W@' Z/Cwu , &x㕐2r=p&Y@xȸ,=(cI#ʂoWw<+8ftyAk`!/V2D~)s[vO߉t7y+9󁐪NWGi6=Lum 2[zef6U#δh3>ͺcW:pQʆf|"37ox5| |ҹLYA(gR3V?il>.w&ьKqMz^.A(jw=BwEO]C{`2s^jO5z8XAIENDB`@=J^Y%(x􄵘1a`S,x] tUՕ>&1+D "?y:@? (EEAFHZAPh-S6 F.Y(@hKVBC%C};d{ɱ,]ﭓ{|s=SJ̓T 7}x5rR Q'(#?Sjx7NS)Oj({kWKSF@*p=8x@J^ާΤ)t9 r?/.l߯7%ȯV Tޫ5[$OM:W=O8~O*}P{"./>ƌaƎ؁*7VCFyyg_Cgqqcmu髐QOݐ΅MqnQnoo:?]'N16NqC^`'NR6N-Ts,|W #RZ@uT}OnH!4ߪF|ܼ|:Uy Q'Rl'/ŕW,Z|w݂g`lUs]*,uιbu*jԫq gtqi(\^JnbZcnEsunQׯ>V:vsR:ܘ¿[7o:.Ӆ~Oxy_~_y63ob׃!zkx( 𾘘c! i9H}1eK3/.kKڏӾF TWS;ɵ:HWQ 9߄MjWWBڤV/AzMMVoAo(1'Q˧G11ot(񦨃j*i{ltCtJqntƻ uK;B5^-`ρsuĸW>c\Ä#H]h^m}; fwxXu"Ud>Nk \$5N-ww qV㭃Nu]O[jMՉxa\aj p6{>5uew!P]5HBNqKxhc^ .;XYSe0{g`گ>#H]-빮11/ K]q\c ܹxk浂Y\WhU=iՕuxۜ0bӨiyՕ4t\]kQW6Ne&fWepG6sxm1/ Hx0눁8a&c705q' w攱 3[r]U8awU8^n?dj=ȩD# \7H~9n/E[]0XմǼ@] RHՎ)c1gжՐiF'R:s\u^m2Ovc69Njoss|FsC!4BC|l׹B{C .ٮ})6|[[g>E;$i{O6[v{dW +lyIȔaPcEwLGE^E,M9Yo9hΖn}_O6o&u.jEZ1g~xyo7_ĻM[/eřh.Vx+:hx>8e؇ ci]oV{Fx4mlt ٮs֌M&sѾrn_4x;E4vf7E7 >g4x{Eb<#>͍3a lѾs9skڨDlt;"u/\;zhx"U`6G dW-EK2x),x3 ?-,iY#BOz@FnŮBvz@VYdO = z@xP@Ο]= #i2B=-]=O= z[<z@VnϮdz[< = zBųBųBųBųBųBųmBhz@)BBpk] =-] =-] =-]hz@]hz@PBųYdykBBpk] =-] =-] =-] =-] =-] =-]=]=-]=-]=-]= #7z@ @nųųųųųųųųYd̮dz[<z@Vnz@VYŋΥ755gt>?75>Z]zFc9 #b!QsMɟt~sry]CsUX`!G;k76NvEw}͒}`P $^_qr3F?rf-dr8ZWaQ``7Mh'x]ԟOXv?؇` Ch'x-ɽO7}s?rmRIit-1 X z4LN5Y'' N gaInld5]w,{lFT+N&'ڶ6y>~)CxLz߂럘XfqvY4=hol'}*u~"<~<.xFi^rALOƋc5d |UfCϛZ+: ej j cvuݢVUAnQښI"SWHy2^c>%{{WA(^/S^~^zp7Q_^-UGF]te4Pjr=l^J)$ׇ:ZpQ[|,1y~9^tR>@= aYebwISD1{cQ x\ pU޳=C6xǃRߚ*ShqNV DW'w=$K}(u)M*%LW}2S_{e#(@\~He0>N:p}rToUb J /B ` b~·X _h -|O7~ol^όŒ0~u0'j/#8M}ssK3 ӃT!itwc/bgssfTz0+^:yzɒ-h9o=gU1&X@ToT؎HEXqK}ylL|o J B / ֻsjA ?h[,|/>§Xx_ kCxrO] 'wX 8&~Zx/ɭmñE&88D(}_KB3tGOq#7t{M%:m3Zb3"IS*[wP88ςloDDPS]cX%6,?_ݿ'޵[z*xZZ#Z!~ I%]oǸ[ 7h{hx~*ϰ G]Nj^Oz Gw)K|/𹿂%߈O,bY|^M1E(߆4S =ڒq1Np 1/sҠ `_g*C:GXL e'a0R E0a"p3̄ mf.Cf!oP۰B TA+oH8 +G&YH 8d$2䗡!0T Y,5i{wrױtWcb)dQGpt#*d_*{N^[郃3gſ)|_|^b z0'n_ v׀=mq.=X$lM<ɜg;Mi_6:Cb5D}>-lț }Y,'4AaC^m[ɲ׳|7 yorPb_6M,k,'`aC²O3eּbuD9Ni6lC 5-w$dKXNi>(lACEpdOk]uDzI,'5_!2,kD}.lx r>Q󕲏 ? eY__Wuaf,k|͖k_sfm$f5[9 kH_Yo% 0 K Y/dP_AF[oF'UXIe;d?ϯ1a eA˂s;gsIG,wG4זנ<֞g۾j$*_j01,œl"̙+pgƞޞmBF,l#,S{MXō)jM-V7~rڏcr7MS^6Yfi!a5RS&s>/㽕FTШԡm(^6qzd'w46n sv9Em>w ͡c9-*6q{ل0tr@ԷtV&^ yl0`{MI^6Gi]e)jM.-|Y;TX[@z&&b\6`, Y cU/Em& \&udV)ju/Ŀ3:*Ϣ܊G*95m⾷ec8Fse|w?ԴMh5bۤʇ1~ Jmr=]ؿ][ےߑQmwX ;e_k"Έsũ1_3Yz&߅*8?.O/uv,?X{)` cxS\c_\:x:~cC\:B:f.:fǥ#c cL\:Fx:J\tCǐv=r=kl#՟[cƎr>p9|Wз5? |Wit85?C 8C9|k̋ ^s^tos^_9/ڟ9ܧ93Uyа,W >sQ1c!H Y3A@9_}yQ}|l*wtra0ƴ'|Ni9Tg3@W/; jd*iR^tٿ?WW뗽ozy z*ir7l 'ΝG~+>A*#x>9|uot/_ξQc5:U9X~_3QYV_M3βgY};ץ?g,)ϯ`H gk1͛r1ZŸ\F"fZ{pi-.f!J~_(   -Zhttp://www.cs.berkeley.edu/~ravenben/tapestryZhttp://www.cs.berkeley.edu/~ravenben/tapestryBhttp://oceanstore.cs.berkeley.eduDhttp://oceanstore.cs.berkeley.edu/\http://oceanstore.cs.berkeley.edu/publications\http://oceanstore.cs.berkeley.edu/publicationsbhttp://www.cs.berkeley.edu/~ravenben/publicationsbhttp://www.cs.berkeley.edu/~ravenben/publicationsz Chart Excel.Chart.80*Microsoft Excel Chart{ Chart Excel.Chart.80*Microsoft Excel Chart Chart Excel.Chart.80*Microsoft Excel Chart" Chart Excel.Chart.80*Microsoft Excel Chart% Chart Excel.Chart.80*Microsoft Excel Chart( Chart Excel.Chart.80*Microsoft Excel Chart- Chart Excel.Chart.80*Microsoft Excel ChartJ/ 0|DTimes New Roman(0(z[ 0 DTahomaew Roman(0(z[ 0 " DArialew Roman(0(z[ 0 0DWingdingsRoman(0(z[ 0 @DSymbolgsRoman(0(z[ 0 @8.Z  @n?" dd@  @@`` 80 ,!}@ #04@ ( 4Z 4 *$&OL @?7JO = @B GIJKMOS4  X ^_b c=defg;i6k-lmknw "$\GՍ|mGԚ|i b$jEHmUX6o{i $"$O.`f4B ؆"$gv"n~2Jy $$r$fL4³@1i*r$ 1=<*I؜Ui r$M-*chHHi "$}xJvgQ44e"$H؊ ib$ɫ`?vj"x"$^Y%(x􄵘R"$aYebwIS 4 z0e0e    A A 8c8c     ?A)BCD|E||s "0e@    @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab f3f3@8H I {( ʚ;7v8ʚ; g4@d@d@z[ 0ppp@ <4!d!dl 0t<4ddddl 0t<0___PPT10 ___PPT9nfFu88 PNG  IHDRW?sRGBgAMA7 cHRMz&u0`:pQ<v @,"  *aI$Next-generation Network ApplicationsScalability in applications Process/threads on single node server Cluster (LAN): fast, reliable, unlimited comm. Next step: scaling to the wide-area Complexities of global deployment Network unreliability BGP slow convergence, redundancy unexploited Lack of administrative control over components Constrains protocol deployment: multicast, congestion ctrl. Management of large scale resources / components Locate, utilize resources despite failuresy"-/<1+y"  -  /<1+gEEnabling Technology: DOLR (Decentralized Object Location and Routing)F, b A SolutionxDecentralized Object Location and Routing (DOLR) wide-area overlay application infrastructure Self-organizing, scalable Fault-tolerant routing and object location Efficient (b/w, latency) data delivery Extensible, supports application-specific protocols Recent work Tapestry, Chord, CAN, Pastry Kademlia, Viceroy, & 1Z-ZmZ4Z Z2Z0"-m4   2( 5&What is Tapestry?XDOLR driving OceanStore global storage (Zhao, Kubiatowicz, Joseph et al. 2000) Network structure Nodes assigned bit sequence nodeIds namespace: 0-2160, based on some radix (e.g. 16) keys from same namespace Keys dynamically map to 1 unique live node: root Base API Publish / Unpublish (Object ID) RouteToNode (NodeId) RouteToObject (Object ID)a O'' !A O  t f    =-.Tapestry Mesh Incremental prefix-based routing&/K   Routing MeshRouting via local routing tables Based on incremental prefix matching Example: 5324 routes to 0629 via 5324 0231 0667 0625 0629 At nth hop, local node matches destination at least n digits (if any such node exists) ith entry in nth level routing table points to nearest node matching: prefix(local_ID, n)+i Properties At most log(N) # of overlay hops between nodes Routing table size: b * log(N) Actual entries have c-1 backups, total size: c * b * log(N)!PP PP!K -"   7 E          tD:8>.*Object Location Randomization and Locality>+K   dObject LocationDistribute replicates of object references Only references, not the data itself (level of indirection) Place more of them closer to object itself Publication Place object location pointers into network Store hops between object and  root node Location Route message towards root from client Redirect to object when location pointer found,g V V,g V   ViNode Insertion4Inserting new node N Notify need-to-know nodes of N, N fills null entries in their routing tables Move locally rooted object references to N Construct locally optimal routing table for N Notify nearby nodes to N for optimization Two phase node insertion Acknowledged multicast Nearest neighbor approximation6  U,6  jAcknowledged MulticastZReach need-to-know nodes of N (e.g. 3111) Add to routing table Move root object referencesV*1   1kNearest NeighborN iterates: list = need-to-know nodes, L = prefix (N, S) Measure distances of List, use to fill routing table, level L Trim to k closest nodes, list = backpointers from k set, L-- Repeat until L == 0:  F) %A1 Talk OutlineiAlgorithms Architecture Architectural components Extensibility API Evaluation Ongoing Projects ConclusionT+'  +'hSingle Tapestry Node O:Single Node Implementation lMessage Routing'Router: fast routing to nodes / objects((wWExtensibility API6 deliver (G, Aid, Msg) Invoked at message destination Asynchronous, returns immediately forward (G, Aid, Msg) Invoked at intermediate hop in route No action taken by default, application calls route() route (G, Aid, Msg, NextHopNodeSet) Called by application to request message be routed to set of NextHopNodesBZAZZ[Z$ZJZ A [   JbTl? eLocal Operations&Accessibility to Tapestry maintained state nextHopSet = Llookup(G, Num) Accesses routing table Returns up to num candidates for next hop towards G objReferenceSet = Lsearch(G, num) Searches object references for G Returns up to num references for object, sorted by increasing network distance IK"q+ I    P  P,  R xW@Deployment StatusC simulator Packet level simulation Scales up to 10,000 nodes Java implementation 50000 semicolons of Java, 270 class files Deployed on local area cluster (40 nodes) Deployed on Planet Lab global network (~100 distributed nodes)N 2 2 ZE Talk Outline Algorithms Architecture Evaluation Micro-benchmarks Stable network performance Single and parallel node insertion Ongoing Projects ConclusionT#O O|[Micro-benchmark MethodologyExperiment run in LAN, GBit Ethernet Sender sends 60001 messages at full speed Measure inter-arrival time for last 50000 msgs 10000 msgs: remove cold-start effects 50000 msgs: remove network jitter effects*~ZPZ~PP^" }ZMicro-benchmark Results~\Large Scale MethodologywPlanet Lab global network 98 machines at 42 institutions, in North America, Europe, Australia (~ 60 machines utilized) 1.26Ghz PIII (1GB RAM), 1.8Ghz PIV (2GB RAM) North American machines (2/3) on Internet2 Tapestry Java deployment 6-7 nodes on each physical machine IBM Java JDK 1.30 Node virtualization inside JVM and SEDA Scheduling between virtual nodes increases latencyV  ^Node to Node Routing_Object Location`Latency to Insert NodexYBandwidth to Insert NodefParallel Insertion LatencycResults SummaryLessons Learned Node virtualization: resource contention Accurate network distances hard to measure Efficiency verified Msg processing = 50ms, Tput ~ 10,000msg/s Route to node/object small factor over optimal Algorithmic scalability Single node latency/bw scale sublinear to network size Parallel insertion scales linearly with group size TYkT     /kPxj EB0 Talk OutlineAlgorithms Architecture Evaluation Ongoing Projects P2P landmark routing: Brocade Applications: Shuttle, Interweave, ATA ConclusionT4F #F mState of the Art RoutingHigh dimensionality and coordinate-based P2P routing Tapestry, Pastry, Chord, CAN, etc& Sub-linear storage and # of overlay hops per route Properties dependent on random name distribution Optimized for uniform mesh style networks*55nRealitykTransit-stub topology, disparate resources per node Result: Inefficient inter-domain routing (b/w, latency)llN7Landmark Routing on P2PBrocade Exploit non-uniformity Minimize wide-area routing hops / bandwidth Secondary overlay on top of Tapestry Select super-nodes by admin. domain Divide network into cover sets Super-nodes form secondary Tapestry Advertise cover set as local objects brocade routes directly into destination s local network, then resumes p2p routingC%$%%SC%           %%RcKBrocade Routing ]Applications under DevelopmenteOceanStore: global resilient file store Shuttle Decentralized P2P chat service Leverages Tapestry for fault-tolerant routing Interweave Keyword searchable file sharing utility Fully decentralized, exploits network locality Approximate Text Addressing Uses text fingerprinting to map similar documents to single IDs Killer app: decentralized spam mail filter0ZMZ ZWZZkZ0M W  k \ For More InformationTapestry and related projects (and these slides): http://www.cs.berkeley.edu/~ravenben/tapestry OceanStore: http://oceanstore.cs.berkeley.edu Related papers: http://oceanstore.cs.berkeley.edu/publications http://www.cs.berkeley.edu/~ravenben/publications ravenben@eecs.berkeley.edu2. "2. "  a33d2-.1U 02_U 0mU 0U 0/T?P?  ` fDW&cC3` f}MMM&3fff` 333___` RP.-W~` ;%k)LnV6ff` m'@Q0 ;9]>?" dd@$? " Ud@ lF `A@`<`  n?" dd@   @@``PR    @ ` `p>> 0(#(   # TI @?"6@ NNN?N   < "  T Click to edit Master title style! !$  0` "  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S ! 6  "   B* " 6 "1  D*B  s *޽h ? 333___Uy___PPT10Y+D=' = @B +___PPT92p22 Network Blitz   ;3@(    TI @?"6@ NNN?Np   ! 6< "@P < T Click to edit Master title style! ! " 6X< " 0 < W#Click to edit Master subtitle style$ $B  s *޽h ? 333___ 0 zr (    0 P    P*    0     R*  d  c $ ?    0~  @  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  6Ll `P   P*    6@ `   R*  H  0޽h ? ̙3380___PPT10.  8(     0 P    >*   0\     @*   6 `P   >*   6t `   @* H   0޽h ? ̙3380___PPT10. /  0`(  `x ` c $ <!P@ < x ` c $ <" 0 `  < T ` C ,A tapestry H ` 0޽h ? 33333)BH(jiTy___PPT10Y+D=' = @B +s   PD*(  x  c $]<`  < r  S ]<`0 < H  0޽h ? 333___y___PPT10Y+D=' = @B +vW  K0 880:<098(  0B 0 c %E`FNQ&UVWvy2 @))? XX6381-D81^ DS &{'LO^ D+ YL^0L8]T+ YL7Gn2H+IJ7GI:9]T:I:Q= qR&QJ 7JJ >:*;9>:+$.+] x!+] 6381$ 3-D^ D %D^0L8]TH+ YL^0L8]T7G@8Cn2H+IJI:B,= qR&N7#Q7JK J 7J>:8*;9+ +$ x!+ ] x!+$(,`C0*0*ITNT0*0* BCCloud"0md z e <0 e,$D 02 0 C yd6o?.f)\̙) 1 8 2 0 C yd6o?.f)\̙)#) YX 2 0 C yd6o?.f)\̙)>2 0 C yd6o?.f)\̙)`  2  0 C yd6o?.f)\̙)I  x2  0 C yd6o?.f)\̙)X 6 e2  0 C yd6o?.f)\̙)% T 2  0 C yd6o?.f)\̙)  2  0 C yd6o?.f)\̙)^q2 0 C yd6o?.f)\̙)K-2 0 C yd6o?.f)\̙)K  z _ 0 _,$D 02 0  `v @o? "9 2 0  `v @o?$2 0  `v @o? P 2 0  `v @o?5 0 k_2 0  `v @o? 8 2 0  `v @o? ;2 0  `v @o? ;x 0 c $lB<`  < J 0 C "A editXJ 0 C "A edit h;z 0 0 0,$D  0 0 <4?"` 9GUID1 2B 0 TD>?0 0  0e0e    BCDE4F @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| `4h@`@ 0` `0 @      @ ,$D  0 0  0e0e    BCpDE(F @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| p`0 p 8@`T @   P  ,$D   0  0 N8< o?   <DOLR( 2z  z !0  z,$D  0B "0 ZD>?   #0 <<?" z 9GUID1 2J $0 C "A edit bz u 7 %0  u7,$D 0`2 &0 0jJ`2 '0 0jJZ`2 (0 0jJ`2 )0 0jJ "  `2 *0 0jJ  :`2 +0 0jJ x`2 ,0 0jJ  `2 -0 0jJ`2 .0 0jJ0 7 `2 /0 0jJ & `2 00 0jJu H `2 10 0jJU  M B 20 ZD>? `0 ,$D  0B 30 ZD>? p ,$D   0zz P  40 P  ,$D   0 50  ~0e0e    BC@DEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@d(P@  P   60  ~0e0e    BCDEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|||$HP`x@     70  0e0e    B0CDE(F @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 0P@0 @     80  0e0e    BCDE(F @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ||X(H @    z  V 90  V,$D   0B :0 TD>?@   ;0 N< o?\ V =GUID2( 2H 0 0޽h ? 3]U___PPT105+;UD' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*<0%(D' =-g6B fade*<3<*<0D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%0%(D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-s6Bwipe(left)*<3<*0D' =%(D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-o6Bwipe(up)*<3<*0D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*20%(D' =-s6Bwipe(down)*<3<*20D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*!0%(D' =-s6Bwipe(down)*<3<*!0D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-s6Bwipe(down)*<3<*0D' =%(D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*30%(D' =-o6Bwipe(up)*<3<*30D~' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*90%(D' =-s6Bwipe(left)*<3<*90D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*40%(D' =-s6Bwipe(left)*<3<*40+   03*(  r  S P<  < x  c $< < H  0޽h ? 333______PPT10i.% +D=' = @B +y   `0(  Dx D c $<  < x D c $< < H D 0޽h ? ___3̙3f3y___PPT10Y+D=' = @B +^Y  K0 NNW3lKM(  dR Xd s * NC$z t d B,$D 02 d 3 C9QENG嵵J9QQ o? `T`T9Q`T`T9Q9Q`T9Q9Q 2 d T8 o?#2 d 3 RBbENGI Q o? Nbb`TNbb`T `Tb`T `T 4 '2 d 3 8BYENG B  d ZDo?q4 TB  d ZDo?a  hB  d ZDo? y  B  d ZDo?DAt2 d C 7CoENGػHJSQ o? k`T+ Ook`T+ OoS OoSN   2 d 3 YCIENGGJIQ o? 8`TD)`TI8`TD)`TIID)`TIIn 2 dB T o?  B dB TDo?$t B d ZDo?Y EIB d ZDo?)  B d TDo?5YE 2 d 3 7BYENG!`IUQ o? Y+Y`TY+Y`TU`T+Y`TU`TB d ZDo? B d ZDo? eB d TDo?U9c" 2 d  BPENHYQ o? `TP;`TP;`TP;`T  RT xK d# i d Zh< o?I   74  d Z< o? 72  d Z$ o?{ 73  d Z o?x 4}  73  d Z o?D   73   d Z< o?t 0  72  !d Z o?t @[ 72  "d Z$ o?dd K 71  #d Zx! o?  72  $d Z,' o?,k R  74  %d ZT. o?; " 71  &d Zt2 o?  72  'd Z0 o?Xm 73  (d Z8 o?<  73  )d Z< o?   71  *d Zp? o? 73  +d ZC o?[hB  74  ,d ZG o?tx[ 71  -d ZK o?X 71  .d Z`O o? [ B  74  /d Z\J o? [XB  73  0d ZU o?t[ 72  1d Z Y o?  w 74  2d c $0\h6<$D 0   52 4d c ]Ԩ\d&o?Ԩ!@\> ~ [ NodeID 0x43FE 52 5d c _Ԩ\d&o?Ԩ!@\ .  [ NodeID 0xEF31 52 6d c dԨ\d&o?Ԩ!@\ \  [ NodeID 0xEFBA 52 7d c 0iԨ\d&o?Ԩ!@\ L) [ NodeID 0x0921 52 8d c nԨ\d&o?Ԩ!@\  [ NodeID 0xE932 52 9d c 8qԨ\d&o?Ԩ!@\ @ > [ NodeID 0xEF37 52 :d c 0vԨ\d&o?Ԩ!@\  Y [ NodeID 0xE324 52 ;d c zԨ\d&o?Ԩ!@\| [ NodeID 0xEF97 52 d c Ԩ\d&o?Ԩ!@\ L  [ NodeID 0xE555 52 ?d c <Ԩ\d&o?Ԩ!@\  [ NodeID 0xE530 52 @d c tԨ\d&o?Ԩ!@\9y [ NodeID 0xEF44 52 Ad c Ԩ\d&o?Ԩ!@\   [ NodeID 0x0999 52 Bd c 0Ԩ\d&o?Ԩ!@\! [ NodeID 0x099F 52 Cd c `Ԩ\d&o?Ԩ!@\\  [ NodeID 0xE399 52 Dd c 䟕Ԩ\d&o?Ԩ!@\^  [ NodeID 0xEF40 z e Yd eB,$D  02 Fd C 8CSENG+JSQ >? ``T D `TS``T D `TSSD `TSS#2 Gd C RBgXENGCIQ >? gXgX`TgXgX`T`TgX`T`T4  2 Hd C 8CSENG`JSQ >? 2`T `TS2`T `TSS `TSS# @ B Id  `D>?rB Jd  `D>?5  B Kd  `D>?K " B Ld  `D>?q  B Md  `D>?a 2  B Nd  `D>?  B Od  `D>?A2 Pd C YCN;ENGWJN;Q >? `T<`TN;`T<`TN;N;<`TN;N;P  2 Qd C 7BYENG!`IUQ >? Y+Y`TY+Y`TU`T+Y`TU`TB Rd  `D>?ewB Sd ZD>?Uc 2 Td C CoOENGsJoOQ >? `Tϣs`ToO`Tϣs`ToOoOs`ToOoO|2 Ud # BPENHYQ >? `TP;`TP;`TP;`T ' C2 Vd s Myd&o?z3s3M > [ NodeID 0xEF34  Wd c z0e0e    Bp C` DE4F @  ) 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| p 0 ` `@p`@Px`0 @    ^0,$D  0H d 0޽h ?FdGdHdPdQdTddd d d d d dddUd 3  ___PPT10 .+|`D ' = @B D ' = @BA?%,( < +O%,( < +D' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*d%(D' =-o6Bdissolve*<3<*dD' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Yd%(D' =-s6Bwipe(down)*<3<*YdD' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Wd%(D' =-s6Bwipe(down)*<3<*Wd+s   pYd*(  hx h c $p   r h S D`P  H h 0޽h ? 33333)BH(jiTy___PPT10Y+D=' = @B +~N  K0 j;b;3?:(  lR 3l s *~ x l c $D•    z #et l pe,$D  02 l T8 >?#2 l 3 RBbENGI Q >? Nbb`TNbb`T `Tb`T `T 4 '2 l 3 8BYENG? )Y/Y`T)Y/Y`T`T/Y`T`T 5Y B l ZD>?B l ZD>?5  )B  l ZD>?K  > B  l ZD>?q4 TB  l ZD>?a  hB  l ZD>? y  B  l ZD>?DAt2 l 3 YCIENGGJIQ >? 8`TD)`TI8`TD)`TIID)`TIIn 2 l 3 7BYENG!`IUQ >? Y+Y`TY+Y`TU`T+Y`TU`TB l ZD>? eB l TD>?U9c" 2 l 3 C9QENG嵵J9QQ >? `T`T9Q`T`T9Q9Q`T9Q9Q 2 l  BPENHYQ >? `TP;`TP;`TP;`T  z ! l !,$D 02 l c HٕMyd&o?z3s3M p , 2 l S ەԨ\d&o?Ԩ!@\ `  , 2 l S 4Ԩ\d&o?Ԩ!@\\ +  , 2 l S Ԩ\d&o?Ԩ!@\L[ , 2 l S \Ԩ\d&o?Ԩ!@\ + , 2 l S Ԩ\d&o?Ԩ!@\ 0@ p , 2 l S Ԩ\d&o?Ԩ!@\K  , 2 l S tԨ\d&o?Ԩ!@\|  , 2 l S ,Ԩ\d&o?Ԩ!@\ ; , 2 l S Ԩ\d&o?Ԩ!@\\[ , 2 l S xԨ\d&o?Ԩ!@\  L+  , 2  l S Ԩ\d&o?Ԩ!@\ B  , 2 !l S `Ԩ\d&o?Ԩ!@\k , 2 "l S 0Ԩ\d&o?Ԩ!@\ P  , 2 #l S Ԩ\d&o?Ԩ!@\!1  , 2 $l S , Ԩ\d&o?Ԩ!@\\; , 2 %l S hԨ\d&o?Ԩ!@\   , z  0  &l } M,$D  0 'l c j0e0e    BCDE(F @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| \pP8hX,h @     (l s `0e0e    B CDEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| -hv. @   0p )l c Z0e0e    B@CDEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0<`x \@@    *l c Z0e0e    B@CpDEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(P0p$@p@   0  +l No?m,$D  0z @ ,l @,$D  0~ -l No?p ~ .l No?  ~ /l No? @0~ 0l No?` p  1l s p0e0e    BE C[DE(F @  ) 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| %[kO_ =E  @    =,$D  0 2l c 0e0e    BC DEdF, @  ) 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(`@ 0@X@@x X h h `  P  x @          ,$D  0H l 0޽h ?plllllll 3___PPT10|+gnD`' = @B D' = @BA?%,( < +O%,( < +Dv' =%(D' =%(D' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*+l%(D' =+4 8?dCB0-#ppt_w/2BCB#ppt_xB*Y3>B ppt_x<*+lD' =+4 8?dCB0-#ppt_h/2BCB#ppt_yB*Y3>B ppt_y<*+lD' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*,l%(D' =-s6Bwipe(down)*<3<*,lD' =%(D' =%(DW' =4@BBBB%(E' =1B B`BPB1:Bhidden*3>+B#style.visibility= `B<*&lD' =1:Bvisible*o3>+B#style.visibility<*&l%(D' =-o6Bwipe(up)*<3<*&lD' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*1l%(D' =-s6Bwipe(left)*<3<*1lD' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*2l%(D' =-s6Bwipe(left)*<3<*2l+}   $(  r  S \-   r  S 0.`0  H  0޽h ? 333______PPT10i.ڎPFTt+D=' = @B +}   `<$(  <r < S ;   r < S \<`  H < 0޽h ? 333______PPT10i.<0:+D=' = @B +@   p':@.(  @r @ S I   r @ S J  2 @ Ty @?"6@ NNN?N @ HpL?"0@NNN?N?> 7G8Z2 @ ZO3a @?"6@ NNN?Np   7N8Zb @ NGHI>?"0@NNN?Np,$D  0hz @ *@ @,$D  02  @  `T/y @?"6@ NNN?N @ D3211$8Zb @ TGHŋI?"0@NNN?NT z 0  +@ 0 ,$D  02 @  `\Y/y @?"6@ NNN?N   D3229$8Z2  @  ` ^/y @?"6@ NNN?N 0  D3013$8Z @B <?"0@NNN?N T   @ <?"0@NNN?N  z  p  ,@  p ,$D  02 @  `b/y @?"6@ NNN?N P D3222$8Z2  @  `g/y @?"6@ NNN?N0 p  D3205$8Z @B <?"0@NNN?N $  !@ <?"0@NNN?N P Pz    -@   ,$D  02 @  `l/y @?"6@ NNN?Np   D3023$8Z "@ <?"0@NNN?N  z \` 0  .@ ` \0 ,$D  02  @  `r/y @?"6@ NNN?Np`   <30228Z2  @  `Pn/y @?"6@ NNN?N` 0  <30218Z #@ <?"0@NNN?N\V D  $@ <?"0@NNN?N pP l P  8@P  ,$D  0B 0@ <D?"0@NNN?NP B 1@ <D?"0@NNN?N l     9@  ,$D  0B 2@B <D?"0@NNN?N   B 3@B <D?"0@NNN?NP  B 4@ <D?"0@NNN?N 0 ,$D   0l P @  :@P @ ,$D   0B 5@ <D?"0@NNN?NP  B 6@ <D?"0@NNN?N @ r 7@ NZGHv/Iz?"0@NNN?N ,$D  0H @ 0޽h ?@@@@@ @@ @@@@@@ @ @ @ @ @!@ @@"@@ @#@@ @$@@ @7@ 333___!!___PPT10o!.=P+IjDC!' = @B D ' = @BA?%,( < +O%,( < +D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*@%(D' =-s6Bwipe(left)*<3<*@D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<**@%(D' =-s6Bwipe(left)*<3<**@D' =%(D' =%(D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*+@%(D' =-o6Bwipe(up)*<3<*+@D' =%(D' =%(D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*,@%(D' =-o6Bwipe(up)*<3<*,@D' =%(D' =%(D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*-@%(D' =-o6Bwipe(up)*<3<*-@D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*.@%(D' =-s6Bwipe(left)*<3<*.@D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*8@%(D' =-s6Bwipe(down)*<3<*8@D' =%(D' =%(D9' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*9@%(D' =-u6Bwipe(right)*<3<*9@D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*4@%(D' =-s6Bwipe(down)*<3<*4@D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*:@%(D' =-s6Bwipe(down)*<3<*:@D' =%(D' =%(D9' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*7@%(D' =-u6Bwipe(right)*<3<*7@+1   $$25H"(  Hr H S    r H S 薗  2 H Z|3a @?"6@ NNN?Np 0  7N8Zl  ` E  H`  E ,$D 02 H T39y @?"6@ NNN?N ` E 2 H T39y @?"6@ NNN?N` E l   5H ,$D 02  H T9y @?"6@ NNN?N0 P 2  H T9y @?"6@ NNN?N 2 H T9y @?"6@ NNN?NV0  2 H T9y @?"6@ NNN?N6 p U 2 H T9y @?"6@ NNN?N6 2 H T9y @?"6@ NNN?N  2 H T9y @?"6@ NNN?NP2 H T9y @?"6@ NNN?N 0 2 H T9y @?"6@ NNN?N  l &` U 3H&` U,$D 02 H T9y @?"6@ NNN?Nv u 2  H T9y @?"6@ NNN?Nv p U2 H T9y @?"6@ NNN?N&  2 H T9y @?"6@ NNN?N 0 `  2 H T9y @?"6@ NNN?NvP 52 H T9y @?"6@ NNN?N 0 2 H T9y @?"6@ NNN?NF %H 6?"0@NNN?N  2 &HB 6?"0@NNN?N& 'H 6?"0@NNN?N   (H 6?"0@NNN?N# % C p )HB 6?"0@NNN?NC P  *HB 6?"0@NNN?N VC  +H 6?"0@NNN?NS b Dl &Pe 4HP&e,$D 02 H T39y @?"6@ NNN?N ` @E @ &Pe 2H&Pep@  Pe  H&Pe2  H T39y @?"6@ NNN?N P52  H T39y @?"6@ NNN?NP@ % 2 H T39y @?"6@ NNN?N Je2 H T39y @?"6@ NNN?N   !HB 6?"0@NNN?N# E @  "H 6?"0@NNN?N  `  #H 6?"0@NNN?N# 2"  $HB 6?"0@NNN?N#   ,H 6?"0@NNN?N  -H TAy @?"6@ NNN?NP   .H T31y @?"6@ NNN?NP @  /H T3Qy @?"6@ NNN?NP @ B 0H <D?"0@NNN?N  1H H줗?"0@NNN?N t JNeed-to-know nodes8ZH H 0޽h ?H H!HH H"HHH#HHH$H HH%H HH&H HH'H H H(H HH)H HH*H HH+H HH,H 333___  ___PPT10 .=pEё+D ' = @B DM ' = @BA?%,( < +O%,( < +D' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*H%(D' =-g6B fade*<3<*HD' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*4H%(D' =-g6B fade*<3<*4HD' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*3H%(D' =-g6B fade*<3<*3HD' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*5H%(D' =-g6B fade*<3<*5H+    x(  x~ x s *t    x s H0e0e   H x 0޽h ? @AvffJffy___PPT10Y+D=' = @B +1   P81(  8r 8 S Ɨ    8 B?"0@NNN?N;@ 8 B?"0@NNN?N@ 8 B?"0@NNN?N@  8 B?"0@NNN?N& @   8 B?"0@NNN?N @  8 Hɗ?"0@NNN?NL @U ITransport Protocols8Z  8 HΗ?"0@NNN?Nl `u  MNetwork Link Management8Z  8 B?"0@NNN?N  8 B?"0@NNN?Np * 8 HXҗ?"0@NNN?NlR"u z"Application Interface / Upcall API#8Z# 8 B?"0@NNN?N@p 8 B?"0@NNN?N@ 8 Hpח?"0@NNN?N@ RDecentralized File Systems8Z 8 Hܗ?"0@NNN?N@x  SApplication-Level Multicast8Z 8 H?"0@NNN?N@Kp QApproximate Text Matching8Z 8 H ?"0@NNN?Nlu  <Router8Z# 8 H?"0@NNN?N C  s!Routing Table & Object Pointer DB6"8Z 8 H?"0@NNN?N03  `Dynamic Node Management,8Z  H 8 0޽h ? 333___80___PPT10.4h4   !6 (  " - HZGdbHI3?"0@NNN?N=yx  ? c $?"0@NNN?N 0 ` B  0D?"0@NNN?N 0 = c $?"0@NNN?N r  S      0?"0@NNN?Nc  Y!Application Programming Interface"8Z""  s *D?"0@NNN?Nx   D Applications 8Z "  s *?"0@NNN?NPP@ HDynamic Tapestry8Z"  s *?"0@NNN?NP @ C Core Router 8Z "   s * ?"0@NNN?NM@= A Patchwork 8Z " ! s *?"0@NNN?N   E Network Stage8Z" # s *?"0@NNN?N P  D Distance Map 8Z  $ 0?"0@NNN?N  % 0?"0@NNN?N (  & 0?"0@NNN?N( P (  ' 0?"0@NNN?N@@ H  ( 0?"0@NNN?N  )@ 0?"0@NNN?N (  * 0?"0@NNN?N@xy  + 0?"0@NNN?N@ @ P , HGzHgIz?"0@NNN?Nxx P / s *?"0@NNN?N @P  SSEDA Event-driven Framework8Z 1 s *?"0@NNN?N @P LJava Virtual Machine8Z 2 0h"?"0@NNN?N` LEnter/leave Tapestry8Z  3 0d?"0@NNN?NIP k sState Maint. Node Ins/del8Z 4 0*?"0@NNN?N 2k PRouting Link Maintenance8Z 5 6 d+.?"0@NNN?N ip p  MNode Ins/del Messages8Z 6 0p1?"0@NNN?N   A UDP Pings 8Z  : 0?"0@NNN?N H H   ; 6L5?"0@NNN?N5  mroute to node / obj8Z  < 6|9?"0@NNN?N  kAPI calls Upcalls8Z  > 6:(=?"0@NNN?N   ufault detect heartbeat msgs8ZH  0޽h ?`$!%#!&!'  ( !)#*+, #-!/: fDW&cC3y___PPT10Y+D=' = @B +!   ! *,P(  Pr P S E   r P S E`p   P B?"0@NNN?Np $8 !A+  P@`P" P B?"0@NNN?N!A+ * P HH?"0@NNN?NcX   rReceive new location msg8Z  P B?"0@NNN?Np0 ` "  P H?"0@NNN?N@P  P NM?"0@NNN?N} QForward to nextHop(h+1,G)8ZF ^+   P   " P B?"0@NNN?N!A+   P HQ?"0@NNN?NX^  QForward to nextHop(0,obj)8Z3F ^+  P  S " P B?"0@NNN?N!A+ + P HJ?"0@NNN?NX^  sSignal App Upcall Handler8Z   P 6?"0@NNN?NHH P@ 6?"0@NNN?N &( P 6?"0@NNN?NH 0 H P 6?"0@NNN?NH`H P 6?"0@NNN?N   P H[?"0@NNN?N  WUpcall?8Z P H^?"0@NNN?N  =yes8Z P Hb?"0@NNN?N` <no8Z P Hf?"0@NNN?Nl p ` <no8Z P H0e?"0@NNN?N&  =yes8Z) P Hl?"0@NNN?Np  y Have Obj Ptrs8Z, P B?"0@NNN?N ` /F !A+  P  0P "  P B?"0@NNN?N!A+ ' !P H s?"0@NNN?NcX   oReceive new route msg8Z3F ^+  "P  # " #P B?"0@NNN?N!A+ + $P Hw?"0@NNN?NX^  sSignal App Upcall Handler8Z   %P 6?"0@NNN?N P`  &P@ 6?"0@NNN?N  'P 6?"0@NNN?N   (P H}?"0@NNN?Nh ] q  WUpcall?8Z )P H$?"0@NNN?N* < @  <no8Z *P H?"0@NNN?N q  =yes8Z" +P B?"0@NNN?N 0  ,P H?"0@NNN?N 0  QForward to nextHop(h+1,G)8ZH P 0޽h ?PPPPPPP PP P PP PPP PP%P P#P&P P'P 333___80___PPT10.G[   `*(  `r ` S p   x ` c $D  H ` 0޽h ? 333______PPT10i.z<+D=' = @B +   *(  r  S 쥜   x  c $`  H  0޽h ? 333______PPT10i.,y+D=' = @B +s   @*(  r  S H   x  c $  H  0޽h ? fDW&cC3y___PPT10Y+D=' = @B +    P(  ~  s *     s t0e0e `  H  0޽h ? @AvffJffy___PPT10Y+D=' = @B +    p J(  r  S ͜   r  S TΜH 0  "  c $?"0@NNN?N@@"   c $?"0@NNN?N p@   s *Ϝ?"0@NNN?N  DSender Control8Z   s *Ԝ?"0@NNN?N   FReceiver Control8Z   s *М?"0@NNN?N >Tapestry 8Z   s *ܜ?"0@NNN?N  >Tapestry 8Z   s *?"0@NNN?N8 8  0@?"0@NNN?NB  >LAN Link 8Z B  0D?"0@NNN?N,,B  0D?"0@NNN?N``H  0޽h ?   333______PPT10i.d+D=' = @B +      t(  tr t S P     t0  0e0eA     ?A Ao 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||S"' y    t0  0e0eA     ? o 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||S"A      t 0   HConstant processing overhead ~ 50ms Latency dominated by byte copying For 5K messages, throughput = ~10,000 msgs/sec  v!UlH t 0޽h ? 333______PPT10i.o+D=' = @B +   *(  r  S    x  c $h  H  0޽h ? 333______PPT10i.<+D=' = @B +      ( (  x  c $      06  P xRatio of end-to-end routing latency to shortest ping distance between nodes All node pairs measured, placed into bucketsyy 0 C 0e0eA     ?A A 8c8c     ?A)BCD|E||s "0e@    @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abP0     H"?"0@NNN?NE u n Median=31.5, 90th percentile=1352!8Z B  <D?"0@NNN?NpH  0޽h ? 333______PPT10i. +D=' = @B +      J (  x  c $   7  0  P Ratio of end-to-end latency for object location, to shortest ping distance between client and object location Each node publishes 10,000 objects, lookup on all objects  0 C 0e0eA "    ?A A 8c8c     ?A)BCD|E||s "0e@    @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abp@  "   H5?"0@NNN?N[ U a90th percentile=15828Z B  <D?"0@NNN?N00H  0޽h ? 333______PPT10i. p+D=' = @B +     (  x  c $   ,  0@   Latency to dynamically insert a node into an existing Tapestry, as function of size of existing Tapestry Humps due to expected filling of each routing level  0 C 0e0eA %    ?A A 8c8c     ?A)BCD|E||s "0e@    @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abPp  % H  0޽h ? 333______PPT10i. 0+D=' = @B +   l(  lx l c $ "   )  l 0h#   Cost in bandwidth of dynamically inserting a node into the Tapestry, amortized for each node in network Per node bandwidth decreases with size of network  l0 zA & (?single-node-ins-bw@ @  ( H l 0޽h ? 333______PPT10i.Lz+D=' = @B +       , (  x  c $+     0,  P Latency to dynamically insert nodes in unison into an existing Tapestry of 200 Shown as function of insertion group size / network size 0 C 0e0eA -    ?A A 8c8c     ?A)BCD|E||s "0e@    @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab@  -    Hey?"0@NNN?N f c90th percentile=5504228Z B   <D?"0@NNN?NH  0޽h ? 333______PPT10i.t0|K+D=' = @B +   *(  r  S 7   x  c $7  H  0޽h ? 333______PPT10i.Wh+D=' = @B +\    t(  t~ t s *C    t s D0e0e   H t 0޽h ? @AvffJff   0K0  z T* (  T~ T s *HT   ~ T s *U   X" T 0 X" T 0 @ X" T 0  X" T 0 @ X" T 08 X"  T 08 j  T Bo@@ j  T Boj  T Bo  j  T Bo j T Bo j T@ Boh`j T Bo8 `` j T Bo@ ` j T Bo@   j T Bo8   j T Boh j T@ Bo`@ j T Bo@  j T@ Bo8 @  j T Bo8 `@ H T 0޽h ?TT TT T TTT TTT TT TTTTTTTTTTT TTT T TT TTT TTT TTT TTTTTT &L333333x&-LYMMM%Q  K0 **gjXs*(  Xr hX S $j   lr X DA))?20%s`>f @@@  X3 #"   RH2 X C @H2 X C /WH2 X C @@H2  X C F@ H2  X C >@ H2  X C E|H2  X C BH2  X C !H2 X C 0 |2 X T3A ))?Light vertical 9 |2 X T3A ))?Light vertical o |2 X T3A ))?Light vertical9 2 X Z3A ))?Light vertical{ F |2 X T3A ))?Light verticala L |2 X T3A ))?Light verticale@B X C D L* @B X@ C D @B X C D @B X C D o @B X C D  @B X C D (e@B X C D 7i @B X C D Y I  X 3 rsxaxaX 1? 9  6AS-2   X 3 vCc] IP2P Overlay Network >f @@@  X3 #" k  L H2  X C @H2 !X C /WH2 "X C @@H2 #X C F@ H2 $X C >@ H2 %X C E|H2 &X C BH2 'X C !H2 (X C 0 2 )X  A))?8 <20%V  r2 *X JA))?20%$ { r2 +X JA))?20% 2 r2 ,X JA))?20% {7 r2 -X JA))?20%x  @B .X C Df  r2 /X JA))?20% "C >f @@@  0X3 #" N n H2 1X C ̙̙@H2 2X C ̙̙/WH2 3X C ̙̙@@H2 4X C ̙̙F@ H2 5X C ̙̙>@ H2 6X C ̙̙E|H2 7X C ̙̙BH2 8X C ̙̙!H2 9X C ̙̙0 ~2 :X VfA ))?Dark horizontal [ ~2 ;X VfA ))?Dark horizontal% | ~2 X C D C @B ?X C D| ;Q @B @X@ C Dz Q% @B AX C DV  @B BX C D 0 @B CX@ C D " @B DX C D { @B EX C D =R @B FX C Dc  @B GX C D X9 @B HX@ C D@ gO @B IX C Dn v* @B JX C Dv g @B KX C D7 %^c  LX 3 rlxaxaLX 1?   6AS-1  ~2 MX VfA ))?Dark horizontal# 2z @B NX C DV 2z  OX 3 rxaxaOX 1?OL 6AS-3  2 PX \fA ))?Dark horizontal y( @B QX C DX  @B RX C D ; r2 SX JA))?20%) = @B TX C D @B UX C D , @B VX C D7 { B WX 6DԔB +] ,$D  0B XX 6DԔ 6 ,$D  0B YX 6DԔz  ,$D  0@B ZX@ C D  B [X 6DԔ w ,$D  0B \X@ 6DԔL ! ,$D  0B ]X 6DԔ Zm ,$D  0B ^X@ 6DԔ ),$D 0B _X@ BDԔ R ,$D   0B `X 6DԔ  ,$D   0B aX 6DԔ- 96[ ,$D   0B bX@ 6DԔ !q ,$D  0y cX 3    7S fy dX 3  [K  7R fB eX 6DԔd d ,$D  0B fX 6DԔ: 2 ,$D   0B gX 6DԔ : d  ,$D   0r jX S   H X 0޽h ? &L333333x&-LYMMM%%___PPT10%+zFD%' = @B DI%' = @BA?%,( < +O%,( < +D$' =%(D' =%(D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*WX%(D' =-o6Bwipe(up)*<3<*WXD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*XX%(D' =-s6Bwipe(left)*<3<*XXD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*YX%(D' =-s6Bwipe(down)*<3<*YXD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*[X%(D' =-s6Bwipe(left)*<3<*[XD' =%(D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\X%(D' =-o6Bwipe(up)*<3<*\XD' =%( D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*]X%(D' =-o6Bwipe(up)*<3<*]XD' =%( D9' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*^X%(D' =-u6Bwipe(right)*<3<*^XD' =%( D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*eX%(D' =-o6Bwipe(up)*<3<*eXD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*fX%(D' =-s6Bwipe(down)*<3<*fXD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*gX%(D' =-s6Bwipe(down)*<3<*gXD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*_X%(D' =-s6Bwipe(down)*<3<*_XD' =%(|D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*`X%(D' =-s6Bwipe(left)*<3<*`XD' =%(pD7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*aX%(D' =-s6Bwipe(left)*<3<*aXD' =%(dD3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*bX%(D' =-o6Bwipe(up)*<3<*bX+s   *(  r  S    x  c $\  H  0޽h ? fDW&cC3y___PPT10Y+D=' = @B +O   @@ y~?(  rr  JA))?20%`.>f @@@  3 #" [  H2  C @H2  C /WH2  C @@H2   C F@ H2   C >@ H2   C E|H2   C BH2   C !H2  C 0 2  Z3A ))?Light vertical 9 L 2  Z3A ))?Light vertical o ' 2  Z3A ))?Light vertical9 [2  f3A Ԕ))?Light vertical F 2  Z3A ))?Light vertical L 2  Z3A ))?Light vertical  FB  S D Lh FB @ S D FB  S DL FB  S D o FB  S D  FB  S D ( FB  S D 7 FB  S D' Y I   C x<6xaxa 1? w  6AS-2    C L6 c2 A P2P Network   >f @@@  3 #"  H2   C @H2 ! C /WH2 " C @@H2 # C F@ H2 $ C >@ H2 % C E|H2 & C BH2 ' C !H2 ( C 0 2 )  A))?8 <20%  x2 * PA))?20%b  x2 + PA))?20% 2B x2 , PA))?20% {u x2 - PA))?20%  FB . S D  x2 / PA))?20%+ " RB 0 s *D> RB 1@ s *D>F RB 2 s *D>*r>f @@@  33 #"  n H2 4 C ̙̙@H2 5 C ̙̙/WH2 6 C ̙̙@@H2 7 C ̙̙F@ H2 8 C ̙̙>@ H2 9 C ̙̙E|H2 : C ̙̙BH2 ; C ̙̙!H2 < C ̙̙0 2 = \fA ))?Dark horizontalC  2 > \fA ))?Dark horizontalc  2 ? \fA ))?Dark horizontal s"C 2 @ \fA ))?Dark horizontalFB A S D+  FB B S D ;QC FB C@ S DQc FB D S DFB E S DC n FB F@ S D" pb G HG)X?y(0 pb H HG)X?T= 2 I \fA ))?Dark horizontaly(@x2 J PA))?20%T5FB K S D  FB L S D] = FB M S D  FB N S D X9 FB O@ S D~ gOJ FB P S D vh FB Q S D g FB R S Du %^  S C x7xaxaS 1?.   6AS-1  2 T \fA ))?Dark horizontala2FB U S D2 V C x7xaxaV 1?L8 6AS-3  2 W hfA Ԕ))?Dark horizontaly(? FB X S D  FB Y S D y ~2 Z VAԔ))?20%] =  [ C X7R A Brocade Layer FB \ S D +FB ] S D j FB ^ S Du { ^B _ 6D + ^B ` 6D 6 ^B a 6D  FB b@ S D?  pb c HG)X? F 2 d Z3A ))?Light vertical F^B e 6DwJ ^B f@ 6D ! ^B g 6D Z ^B h@ 6D g jB i@ BD]  ^B j 6DX^B k 6Dk96^B l@ 6D!q  m C 7   7S f n C 7 [K  7D f o C N0e0e    BECSDEF @ f 8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||SoFE@  S":C ,$D  0 p C N0e0e    BCDEF @ f 8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@  S"X,$D  0B q ZDf8c?"d0,$D  0 r C N0e0e    BC$ DEF @ f 8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| $ @  S"@ ,$D  0 s C N0e0e    B7CDEF @ f 8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||- [9H/7@  S" = ,$D  0^B t 6De e u 67Qf @Original Route 2B v ZDf8c?"@@B w 67Qf ? Brocade Route 2^B x 6DY d d )^B y 6DY : 2 ^^B z 6D : d r } S 7  7 H  0޽h ? ̙33___PPT10i+ijDM' = @B D' = @BA?%,( < +O%,( < +D? ' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*o%(D' =-s6Bwipe(left)*<3<*oD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*p%(D' =-s6Bwipe(down)*<3<*pD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*q%(D' =-s6Bwipe(left)*<3<*qD' =%( D3' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*r%(D' =-o6Bwipe(up)*<3<*rD' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*s%(D' =-s6Bwipe(left)*<3<*s+   *(  r  S pɠ   x  c $Dʠ  H  0޽h ? 333______PPT10i. Ʋw+D=' = @B +y   0(  x  c $נ   x  c $ؠ`  H  0޽h ? @AvffJffy___PPT10Y+D=' = @B +- 0 h(  hX h C     h S ĝ @    H h 0޽h ? ̙33g 0 KC@4(  4d 4 c $   7 4 s *|ֻ @   Here we have a person that wants to listen to this mp3, they submit a GUID to the infrastructure. And get back fragments that can be verified and used to reconstruct the block.H 4 0޽h ? ̙33"n 0 \r(  \d \ c $ (    \ s *޻ 6   \Inter-domain traffic higher latency Stub nodes are low in cpu, and high in latency Nodes disparate in resources 8s?<5H \ 0޽h ? ̙33x] |T?s汛$ZB@**("o$b߯V-*j}h+bI Djam+3sne73;3̙sg<-9{#PƲ?[B !U0 (O(=M~ ?Ԁ~ gw2h>}{ _ps49n sAG臠D'?0 `8(%xTJVHw|kWM?)O~dHlRXN'wA=hǠ^\7/}z,~/F?¥( w&B?XЗ?xOD2C~j^wpԫмhH ?! |#喺 DׂD:O"b ˡbW[P|6H#M'ec7qcX\QYqaU(9lq%s.pJTvSa'sͭѯsЧ-V7}=9Z6].MzHu5H[v#H?J;sFFJ+_m lkAXWU٢ʪK3`Qo:TUʤ*gWUrABݢA.a7A7$=+_'wT(H.h#)Y\cȋxJF<"!FmGL[:l^0˶ǖiۃ"\b?T!p`hX߼9z_]htq6']28 2aBuL+j)HGyKC-JONJDpR'#JLI ϳXהּdUve[XK!CW~5R#:'YP^[~Id|łɅh~)Ӗ-_cklƖilj쐖!-/Kգk ۠|ac2DX*5XecEJn')0naY=&,*_} `{ TSؑǵ&0q/rSG`i@\QeOī.k_Z NŻ {Uh;T`|-B8ZsUJZ ϫհ]!S Ӭ8Ϩ hQΩ+:{McvByڭ} s$ a?O^c]Hu aXcv&(i;D,-T^v+4vœִCݩ洵"{Ia&\Byڪ] s0GP25Na! 5_a.Hi߻Z[nۥoֿ].C;\oֿmZ_ֿZ.I&\oֿ Z6Awֿ]5oֿZ4ӴMkaw1.jQ a; N=TD|MX<=6+&#n[qEj"v(npE=C"VJOW%*_؎=V'+qu 'J'k9M8{/(}zD\A)^>~=ǓJ< JGG8hJq'+(Ž8~xr1Wϋ[FPq\pEo"+a|5Ǔ: R,GK`)Ǔ Ys ST1lD\@?N1OWd7%4k)Aj<ۚ*}ʷW?Z•OxOk :܁'ȘʲY308gYr;2!GzXv. a4D2MzȢ/jD:PFw6^k/7t cxDhTP>q\f )K2ńO/SXey"^~Bi9u›Rw.y.)nk{˾u~Ǜ/No,3vw6aβH"%K+>죲IA'_8{2sGiD[k6,)\P%ǡ4#b-mW~eJL6v7f'Fy)cpG^YQEŪy/ް_YUkɐD(Wͅg?S^L^T\18*}Jc!YkO̕Ź^,>鹣Ui8$smxGVr͹:Ͽb^ƊCB{ 4Bk{ge^^ (NT0I> }kUixM~TfT/ O^!SYt۬1IH al̯0Gn95CaTU(C5v!&j|9-> ,% svV=޵qJC[0a5Ya&!G s&P1-CuX9:fSF袍MVh+WZ _]uqѿ|Z]ֿvZڹ_ֿ .WN_}SAwֿ?.N ҈k.}ӥ~Ǒ/g~|w?q?ok؟9O۟ZdQ<Dڴt(l۞纎ffto=MNǶlD\|!P隟$hf+K p@׼$qED\.(E{5$h֓E&(E΃蚖$hI+,(UgZqU)Kxr<9\Ѭ1W6UP]8pEsD\cRMOW4#N؋' A)OW4O؋CA)ñWOW4'E)~OWd[$EНS\vr'+i,)3즄uLMu.ۚ*}ʷw߿u`ϑ { v{zkϯhP|[noۗvgL:ϨDgzgv9wFZO~񛌣&!V~M[\ME MW:g_l;wxU[$?j~%Jȩd?K-:ג^%gxG8Ŝ8ۋ#:KiJһ{.1_>D=3$W[)U/|(zħ+M% E0`*EN)TmDZ=nt*f鵜S |r ^-f>)CmD2ܣvz ۮ&BMíf=j$ö{'&[W{SkneUqK{m+3fv%Z,VRk@oҒGxO&Kx0FlOd%?^ƔF,5?QM9|I.?rVR,M:#1c} +=͹3|#0 NIgWa?vXG/ݎ9OF[ݠ 54͞8(7ӈmAs#j{!Ud0KCy 5'OeZODži܋OLU!O8yD9tgCjs9M fDK%SK@s -|JN ; {ǰ}\NeaTrg.ϧP'U$NORđL gjii J<25S[DP3ÄW~qWo1{TxCN*.&&tو I.,E^N)gr=A}Gh| Ŋ݂קZ%ˢa$M]G Tp\ P=e8I&yOE ^/y֣ \ݟ]z)ĊCdV-+r=Ʀ>+V[oB(WyB!V"[}7lPZ/6T*ĊCdP_?wȋb!RC={^?|[!k㰟*XqԢsw)[ki?W!V"53k޼ \?wl\+x%&u6}>lLDjqDEylnzolLDj_p1l>(ްh}lLDjOxu69u~lLDj^q(u6?^ocu6&"7OWޛ`N+ۿx۸m6gBB:(s Xzns2\lA?TcQA?1M@)S)LlŨeb2e!f{pX&)sgU.6ZlKSZ-cnyw _Y`k^Qz܊=rʴoNe*C?g=㿥e7h_q{Qъ[x&&3[i6G(^ )5dU*?ՍGh֙dx'}:nc`"Re/DJIN &li0maA8~YT3as τMτm  ¥aA8VwmbeӘ ƄM- FN3OspXU6rLشLضp !0+mbVә΄M1]>NT$jpA8k.drr g &W9 E8 Pu6W3if0a`%LETۘeL&l.jg2a d¶K3 ™,Ex6SC1+YL\b¦!ńmgkY8bg+‹!UQ9frz63-l&gD. W6R䪵Y1asM>ĄM#>Ąm {!pX06L\3asf¶GA8Ga^A6 riJ0ap$9aj9;P(O%P KUS\xZJx|s yhJ;/nޞhzۦD]ݾgGZ ?ur ^AW@!Sn7ЗOvO?izudS,nrz.۟W.vS,Snoj7kNv{SIv{h-_ _h O"̾9($e7⾭g]=z4}\j>8u J5]|'~wx] |U?s^ *cM@EĄ&`%@$ kݠX*~V[[P+A7"VT+ZiFs̝;>H"yh}̜sg̜3a_u-D\%N ;\WWGC]A]cU@lAU(:tSK 5~?!B25 Q4+,A-%{ )!lgA)1n48"lH$ U|R/~ ņodۡ1#JcU{Ac/hec]5ݥËݟ̓[۸eu[U^Q4 ZB'0ON{\j\ AnwssﱪSXQEYΫGī.栀z2NQg6x ށVcހ^;{:>COOBK(Fj;{8%A60@e(>L,bsuOe0Y 1J,[$rQ׋J7!v(]X~?ekD( װ>bw'!Oq*U1jB7k(kfD85``{Pc(DbU,c5Wa`?Ie{Ta;$]21X6AuR:Sݨb맱<>Xebl.U,oTLX*%Vb[ +A9#5vgMF}TcO)l6ʋahMnRae(ObKXKnn Z21yƆ|46̊w]WE^W]Z.="EUir-%ZJ\R_J+WEk+v-%ZJ\B_ WEJj+uZfj&r=?j^3^Ϩi{5JÜF'h^7k3z"mp} (;8j914W4Vq! PppE3C4|iHc';8hUH堙i#czѸ 9r܌:Ndž+cq55KYw.cѸ*WC8tlU#WףFPkpEtl*Ww|e~p:6\ъ1WbNdž+Zq o1ٜ WGJ嘋@9ciѸ Եwq:V3C\uC] -gcMѸbM8lԩfrjwI]nU;yaDO7F l<-3jleyEمB㦗TN^ZY)[LƿOT%=M)kw<ڎwo5N4Y;__ކlbKYH2#`N+ׯؙPa|SlwN|xXk0ܜ^c[MnN/O~*yK0G8n~)蕛u5yfF<ׯԓYlL,]m7qn=0࿏xR9"_sk"z FsDQyyᴢBtAݲI@⥨^G (|o.o0Bz#Ñ%JD=X]YQг+F$pkg`{' /0b ǧ~gl'(ݨ4.5rmM;yt#}%B[N|hcE \jNx#%BҾԷxTcE .Cw Mv|PuMKacix|A"71N>AuǼ|Fl|qxIϬ`O3Ĝz|2χ*wKvmm-xGaS{7<6FvXmvm-x/v00;ƞX,ac4Lckul3j1l?qU}Ϲc-@7^"o(6$a&/R8[/d̝%TP ؿ5{FO*Oi ۄ-ߩX&4v®ǾJ.X\-Rص( [bIcP 1؃NMcvhy]X& [2d_C(S[bk.vebL*A1Fkl)9Zr_-]uqVZZik"^a:6F???c_??8ǧ8ծǫ1j&L-櫔Zɨ6WP-[5P 77Bѯ~i ےnr@|rw]pJ˗SvpD`Ps^&NFbSrS #] (e3Mz:8K9. T< 28;V8LEHأgퟋc~ uub,$E`n-Wg55s&q#Tsx VA^$`:xB˞eJ^^j{!A/]`XA~!Ir7*oyuZa@4n1;^ $sh<^[--hۏFm%"/*.Nָd16ؖٱ̼#h`m"k#/~e*KK #DUbX_ZJk9N08X6\8g} 7"9{x |8Ս pB.NErf0OgugJI,_fvUNSl`~r 5x _ (d+w$. Vx7r߭gji\->) M8e$a 7M)%?K R &FQ+?8135$U% #bo k[5F d4#)2T)w>Wuٌ;kC~4˓=JĊ@dK>_)ybE /Q!T\2*Ċ@d_W܎T^/?!P/w7% "ٳfcM6P>V+7דO+JݿQH qQY罤*}/B!V"hY{r?½gpBDJM/B|}< ")=MԞge*H=/ jSdJ9u [U+R=OY9zgtRyDJ~KgoyQY-mFlDO;g 1>*f}?2>*39v}§>lXE'4TGBL&ڃlH5QRMUtT+x?f3vzw?ۦvq̗?O]~3|N|1ْyV/ŕ0_LDvI+[I/ٳg' Dd|K?51_<\pŹy/拉^ {'%O={͟a)+}U&oz0_LD~Q~}3kf\k/&"%[to||-k-g/&"足;|CR;ilə D?&w̗WV>Pzφb"R~aח?l/&"%5a\u~拉H~'>C>4_L|&filV%f7ʵ Fً#&λn1Rm1:-xfcB2JOt0hמg&A*T`L` q.X s]0 %`).X 悥`,eD`ߪQ(OTr:}:}:GQ>Trh>@?Zrh>D?Zrh>J?Zrh>J?Zrh>T?Zrh>4_?vnADӄ}Zyg9SgmBG*PEw<6/WtV+W!S(Gk13c U8 s?Cly(WY5&(~tlY/W0TPqpEsl4akpֽӱfh\U|Jӱ֏h\+VA9nZNdž+ZqQ,XNdž+ZqS̃|{9:6 ʱ % WGJX9CM`LDŽ+2qXz Njf~(u8G5j98HXk.\9NU檹wq귽H#Y|̈́CGJݤoPJ0)1jzDj?I f~8AF>jc[f-1#p5Ц߱hWsH}CA:T̯ttȊtXm?<9q?h8{4\c߂9p-RodB{)sOSo~<o11-0yZh| Dh(qq?&\;Wȹ2!WCCCs??4TÏUCCC?b-[*)prC2M7y )u(\b^Xf>_sY)qN_ ҹ69yN w`!5RAjZAR[H %.t_A\aߦT. !gQ@NaVzH 4 Bi8Fr[ i |Hc!4H*'cnC9N'FʧG~B#D=K-&QidCN_{/̇QOTG|~͏WvL(;vc?sSgL;3]Ə>zƎu+Yarc|AwG|#7_ !@[;$y8κΑxYmKTMr]D> !gqA] PtcJ_V*X=.!6Ks琦蔜L~̓ӧ>p-ѩ<5_8z*{:O j<~Ԉ2퇎U?H1‡TyRNr.r(Ps3fT%ɬo~7[jMa[ΥBn`ӥm\*nlK|`Lcc^=yY{1˷ԗg)>N]Q㣄 pD,v= u4l \Oga$X/bSoEP>7Pw)|LҬY:p/=Hfҿq%|EHKЪ`[:aN02Loҿ·W}˧/߮ۖ6=\гfj1<9;7dfTc eB_.ԬTC2˖*E۫8xsd޽2fҷyƐFۨEy0xq0E;rP2RNh}qK~/-88wTtY<;oO1TOR@[iZW:zПāϪc>ϥ!g9S<Kt[<~6X@ hs ;xcςz7\ eo%gءuǬк}5@~g2_j`>=}UV(4 d>7K'3@[uO8z a){H!:p cNzA,G%$Pѵ :|⯨bb- =T,? ?fmZtU\Ϗ?[;q$iR(i,c wp:q:z\%-@f﯆Ȣ-{|kz͢ D1/,ŷNyAunIIנ?K,aS*{.PWeD׹ h}J a?>z1 0O}@AFF-f@nƆ΄lzf<m*y>xxkqS1\ GġYSWFC;+r ` .Q-T}'>S %ǐ+d&z+ 94{[{+L显eO@ '6b^لĄH;B 2B I#;hFHQ;!F)gFk F {b@_BRȈ~^LB*<1@B<bgRLH5B"|;|̹;r4W#x4W5oZq U۔$1V3*os}o4{:G*2.yGSdaz:{߸7Z2V/~8gν*y3Y:Z{ѥ3Aͯnd7NXq2 wZB FHӾ1cW7 UoR)#hG mO/_~<7ܿzb1B5zHϔ>ni>)p`ܹ2VnlhI"h״sV>;FOgq_Vz?IŹ4{VvKhl{w~o6əpn!m/_'8}2Zu-M}nsbInO~kY ga%~r}sڑp~vׁ׾cj#3UoK#z4c߱p5 vyS=򶾣+s)Fj޳6V.:-k =F\3=O1Vw)II2\yՃ/c}ל|byFjσUHU5׳fkf\y_F6gu#h˻طW\uz/thUZ]h+=>L)'ASw{󑃌UR6vf#h{nh3V O}R?Fꊯ>Z F[/zy?#hu}>O2xiDŽ^2 F&/\9Tסꓸ0V1VSqxQnX|ű*a}0BP~y%UEGf}h͵Ubo9nIF :(#hw-g?P__FYŌm˾бc ogYk`y;`VNkӿFXK ^ѭE뙥V%%Ph_|7ZjDk^_ta_.2i7#h5ݟ^Dw^846yQœ2h|v!Z;1Fjg .dVl\AU9Ƕ1FjїՓ1Vn9!Z}M~UGAk{O(#hwz7n}o"Dk)~9Ui)WdJwh7Y0BD}UІ[\=Ԛ2#hho_x#h5Y̟Bn=zfo7#4–~=mro{7-_4#Ϸ+xC?>}ɰfڶӿ XZ/[0Vޗn$Dآ'o #4,\{A<>fV Z [OU 1BWeew-خ=z8XoqzG{^Z-~uh^u!Etז5R{zrJBgA'(ڏX4r|wN.ͧxYG_jNL7q"HMFC:b=x壟;w86|'!ܺT ^qrۘݻ;Vy bkN69?'N9Y=rƗLМL Ns@9?+#gBDӜ';"ND9p&y揜?8tșT3t@2q D3 g9 5(GXr:,Wq 9H*q#'DN*`fD*q(Q |9H5pGUÉ Gu|9hIupXÉ G a|9I pG\É GM|W9HJMp_É G-w=jWEh r8䨭9>Im0,A'6u4^ r1: A4b҈Ì;nN95߽I'\ ~p<.ڐ;mȉa2 !3:W81=pbz[UWUIJP=~2=,Vk5y`Xc5y`=XKkふک gݮqڕ PrG}]9Q_G;6hn3\1`pbȑcF>߫&?n&q#D#nj|w9Hoq4vq|9G3[8b[r91#O18v xܑÌ 7 w$9H2r4>ùKf!qĕ |_9xq#pGÉ2#G6IXF881gpbјǍr@#F&>&aF;M~p<9r}8' gњF':M}L'hfD;VN9q@7b͈F'r͹}8OM nN86r8qlhc ?gf|qD% 0-㦹Ǹ,AFq#TF֚hMf$\opFswA3Fsh/w~y7⠸ˏ8?㛟_~GPC]`onr̋\ l` *T Ou5^w X7*u\*Ou׍8{\bD:{|y,ke= n>bOx*%u\?ž;|T'?1eq*s-l`3N Xj V ۜ: sz Jx\s\WN'">>AuRLe-l`3)u]'X:VKZz=(u}rGb ,9F6Buq}qα>~~@7gW[UlT!Ƴ~@[ɱ7q_;?au'Y=N@_sR{1P`f5[]Vר -W=H^Hyv$Pک@v HL@vP~$;̏||?'BR=cb(Y;o4(nuD|_)ߩ=)Hg `+rW_mH11Q[ }J21`O 敵nR7cb)) >)*jXa>gobc'@a| 毃4(1FO40?ګf[ߋ!30"Gk 9e0׍2_m:H2( m50 *;/11ÁyH%e0`/jAr0̧e|#HM; 9mBR$zBi(sL͡GYù+Ź.]vG4sF~a9 *|ιT l,cheΥBn`^\*fvel5R!w`w1}>\*A)O8 [ư_K{F^`lR!`/X*R)`師o{[ۢ O9 M}^Gc|!L/.ƶp.r+BN΀ v1cwXwF~+ oKO$9nEvrrUr59 VGe0s/D5k+X[)JK\Gƾ\*.X!Mv)G~[ 0s^Rn瑂rS"& 6rl9l9Lny͓rw6_-c,`IERWqØݜ6`J? ')`J9[-o`kFrt`GrS)U`"B!>)W~1r%sr䜟v`)3}s+X9)9}Ke K-_u҅/Aϩ` )cECƂrsrRr 6T~PXXUWHE uI"%E$($($KBKBKB]b.=t-]b{蒠蒠蒠.)]R$C.)]RKKKB]]]%!%!%!]]]%[tKl%CآKl%.EآKl]b.E]b.=t-]b{b%ŢK=t-]b{[t-%[tKl%C.)]RKE.)%[tKl%CDDw~`ň^UO*YXfyR$j釠Jyѫ =3XFϫ&j^4'AmUۈ^/:(AՊcD:詘GDzWs9AՍOD頠Ey5$WCa|RP]Oy5&WcqTPmѫ)MVPMmFm[I"5S2"z5n K\ѫŃ\Pmբ^-/~G#Wx!W'i'j^)W/^CyFϫ#z:x %W#zXCqJFϫ^OOFϫ"zxg 6z^mV+z6Nhyw"yU^ KjmFͫ^ГŶ 6z^D8E7(mչ^/wuJE*tN2U,m?W~ UF+ɫZ(ҨDN}Q^eA4 6zu4WMnZPb՘Ѫ+ɫv%TXmʋUxхJjhD#DLۋ~7߫P7U}~E H[@ yC--palcr(ׂFF~gM_l \y~u[򌝤[h_Gk l[V#3 o-/vmp-\߆Npy#ϰYݙg3)C)3O:&?з@ SfNhvGO̟9#[ո@"BpÿKE0|O} ayO%ka`G?0_R*5500ϗdd`>p1?h!M6`~Qx7w[1{r; .?iӐ7ːx`~>7Fo7l5?ƺ?dNe0o|`>|c=)`Qw[0%:k`k! 4G1G 2\0m1T1_1V7õ? '[(￾9\c`킾GcqS!Vs_0=Y4p{J9+o}"+o}(,msƟ["| ߱I-l5r }O&>'Pϥ6>` }s=r]Im찔+q$p폣f f}'e9| , (okoõ?*j9ǭNPM4)val簍g B5=vɻ]~%~%~l;[(6X~@Iь0BqRndIl!ح1qo.W{|r  帿RI'iwc|."V)]`˗9x=Rcu>r;NvVY>;PɻɲG^"^T0TwSd4Y#H5u>@ _sY磹Z]"^u`]!0mlc蒽jP.)]RKKK$$$$$Kl%CآKl%. . . z"%EK.%XB]b.E]b.=t-]b{b%ŢK=t-]b{[t-%[tKl%_XӣXtI⟰`K]KBKBKB]b.=t-]b{[t-%[tKl%CآKl%.EآKl]]]%A%A%A]]]%A%A%A]R$HtI. . . z蒠蒠蒠. ]%u>K$GPtICE@.%A%Ac= uIPtȅ$($hr. . . y蒐蒐ȅ$$$$$KBKBKB.]rr`hZ9;hᬞ6K5Za]SӽB ɫ k5"ۻAx1Wӡnn.Аi?:^>j} H^͇Wa=w~ꡈ^=u{A~tBɫǡ?ITj_#^-byfi?:^,&W@[_5{h?ZuEh5Z{=_ sBڏ|/W۬~!hyID>/>{a>ն^m/;W8hK_~ 4Ձ^/"Dѫ^s:Jhy1H^>JYX";-p]%D|S(*ThUh^% VߎўH^OXX"6ZgcK/AmʉUxќlFϫU6^'?iWIlѫPz:(6z^hb,=T#h=&Gj2x1 i=fEjx1 <7Wsa4+jnFgG^-,Ti30W 艹 mՓzqK㴍Wx!W[{{  _u^-kdKWi=VFj%x  +^/ޡ8C(z9WiҐz^}^g  Gѫ^좧jCKF+ɫ0ʄ,,a=o:ѫC^Z]xutDNgf[m"Ko TViyѫdvLWU"zAU6UU((2juM%l_6DG9M+*Qrh瑼(m(z9WnTW"z5 I%^|.;p?.Xk\ǥk\ǥk\ǥk\{/yaYk ǛdgY㐪~Y#ZUTՋȥt6**r}'9aV~+dzO9isy$bW>Q~qݐ7TG.` %)+~Jǩ+j|pvè,v{ ݠrJuΟ,0xȩL>$!˭X@,Bzjbck*Rzy4paU~ER܃o&[WWZZjlK:Yt5ATt. ]-mzlCuj1<9;7df[c eB.ԬTC8eKaUcJ78G i&}7LlSmT"WhL>f277LN5ԱeJy4`\[^pߏ!n 4ʟ.gGs"#Ib  i[ U h \ڦĕl>gC9}f7ޗ7!ti@mݽV+Ϣo 6N-u^ПR(HS4=x\V.t5ߞa+8VD(PfBV]j u13U>l.nmz:䩉c?_b,!憷.{6Ÿ>hs ;xc_ :W½D[A˯!S˱CYuTk9d}nXNT1lR"p I'=O=U RV%C:4rTrJi%]4UTb)PQhP^c_T~L,uko.KWq=?nN8!_#>}֟JͣĻ*1? wWo c esmhEȢ-{|kz͂_N"_uyܑ2~ڷU8F{ªmJArǷbc7yǽZk#R<#p0=eqVǽo-A?3g<噬c=PmW7jPK'8kqOV;u-~Y#Vߘ1ygr}׫Ԫ7tC٣jrV'/?z=1g}?=}gsV4PnvxZgAUC7k$Iz{ykڹ~[k#hk /EQxʤp_=+v;Z%4;?T_z87ސ6ח/e'8}2Zu-M}nsbInO~kY gaYnbqMg9Hn^?;k1BTޙܷU_Xnon~ʚ{v}Zvtx`y[p#h`Fsx@c}5[׆#F؞AOꔤ$GЪwKZS[q&'}yZsz}Tz'e붡ǚϵ5'A-cלy|GGh5f&7<ևO3Vnju?<#h*$ϪZYS53k <ݯK #hL:^q ^X@nx[۫g:Z Z0VW'6Jb>үI}xYs*`^u3V._1+vL8Za%Z`iΕCuq>{oQ #hu(ko_#h?ۍ况k_F78#Hk~׮ёZZ\t4paFЪ\[*+6d2V}rӊ]mdU۶;+;&}V v Fj6auZYn_]Rw~oFkE-v3V/_Ky׺CkwΟ*y)V=ZgY_ cv_BFj9)!Z_sl c}Y=)|#hu=5\uڸ3V#\fBNK;x/2V:|' ~޽&B^9ZXqAFЪq+}@{_U:#tIOdZmuC {~ˎ!#0V71V/!DC1aFj:Vw3B#lj+-hꉾGA~s5N3B|׿=ӇAϚ nAm;ο5j_ #h}[A:M~FB-z[2Bcʂʕݿz~cfzu? oX(y#tU[vׂCNA{Ռղgۮ[G5[RDwmIZ_!ź-$D >|FZy~n`F=B޽os#hu7z#hi:\Od.hm8w+F4t zG?9wpumNB u}zT̓o6zESOXkcv_ȿ;7<,x`X%x`X쁕{`<X*y`=*XVUjx`5=ZXm恥{`u`w5Vf)-xS̊cqfki1ġS\_8sftki1g̖S\scqg̨Rќ-e.9{|9cp2g;iձ鞍#3_+dcxd\(2fq#3oG99O<8ݳztfkB3Asr28{qԮxοlss&xn>8t"k1H334gI /@Τ2UsdM@N'e8˱p9ͨA9tӉ5 g2k9fL0#"UGA'ո>naG;NT9s} ;aFK;ƂN9jp} {aNj;N9jr} aFRj;N9jiQ8̸J-pGcÉ GmIjeM r8䨣98ZÌ!w9H riFf&8qp6ȑ9M:qtpEqTx[.S|rH,?_Cmȉa2 !3:Wڐ;NLoÀ<__CX{` <X#,k5r<X3k遵Z{`m<X;u,5P2jW/+'sڦc+N 925ߙ~LpGÉ#G{YaFzQOslq#Gh1-9Z5/Of>qc4G1r4|q1$#IFg8wÌ7$w\92r41#/nD(3r8Qf< @ˈg;N9s@3ܘ8hp"фD~9rpǣG#G09ZsD)IDߌsSpǪÉU#G3nF q#D9 0#͉F'-}L,ÌO wT96r<f%qc47r1>Ȉ]"wě#ZsÌd}+N9h"aƵhW4 Gc k(w[pƑÉ#G;ML r81o ;RN|+O(_:*Ÿ4MG d SPCcd)Qk 濉2Բ*ƃK~`x] |E֯=LNdrr$!+h8T@B $A@EǪ+*k2ED`U>q]Uz{NzX2⚞_MU^WyO{;1bn  ^$vN]k:~QhVJgX)l~p#EgNϿqy5n۠L]lq\t$0"06e;2gcV A6]2L?~[?21t  m?B!oB*Y1KRWG.vaLcKh11G; 17:aL ]0+n20tgBqO 0C_ 00@ 0meb0C6!ʺ~MGXΣOdb<.]OG9ƿʓPcPq9Cx 7Xs%baHb'K_Z>X5Ǿ'0xKcpD=O}ZwX*pNʱ'Opq"P'enTcYX_<ԳWO.|@-2x4Ӏ51m7'|ecbcm5̫hnakD`$^kKw{ؙ]1s@I#b㘘of21OU217]ļ9&&;3![I!3 sbpt4ɺV^QͪZT\Qɧ!EYWp+뒲E%]"kMNH׶nަg6Tuo>Zdŗ_X䭹 ۯod{wdTYLDcˋd;Uɡ J'喅,+/(+W0s>@v}kԃtno{7yLP{fλ<Hfm~޼ r[_ʯt˾v%ݹޓym!9>ݒ>{J Kw^z{YVڥo{]$BuNm>ձ#wHѓ?7oύ<lx"wl+-Q"x6.\s`aF}egtk0]p#`0ίhAdܫW1^m: M@vi6cr;Z`;v3?=k<\W=g삓 WtbGIլX+:ޝP |\4 effިں[HU|WZs-vpPdžlj_!|ƎG;;w.2(n^qBljU%ԣ o7,_ |q7.7*|)Yi'z37cf\x3.%ofs;/=^?>n!^4ީ :#(!^316OJݑ m/0/F[3/^ۍL,=kWb8PWۊ.8]mw%$Yeb;ZXejM ]Q ?{1~w!hE-?2~6`R6_/K`~Vlc3N̈́R_r@Z.8 _d%'\d͆d$I I|np~,2Z&ǜ%Th}tX<ųt1aTxGhlj>M}Kӂ˂HD2#?loʑH 2# 2#QA$H% L6%#qAd@,wr4Gwby1inY R zb#S.HǑ 2+#)AdOGRȲB"9Ӳ x>'%&:BV~ $BupZzțr#*y|D(/z},ҋj^\"TF׿DT{F T/Pc^y *uw-)}s GeIJs% %B6u$cޖ-U"Tjݶ.^"T&#ҫ m[%B>5EJJ-ymM-(*54e#%Bn^4et<>I,Q"T*-"#%B6]іC[$B~8({֝k~JJſDT}Ye}V9}W"T.aJJŶҪëzò^gJJe_0$Bv/{eDnKx]R#V—DTW9e{_R36=ݏIJ}|+xɴh ^7XP\y:}۷o>kخ'HJ[L"TmE !O.=b$Bڷwe J~ɰh˚QR{2>)*mߚôh爛nYD͜U#pW'mI#Yɋ#SWrKF;rd*bۮ j~S^?,*bn__"Te{~ԊO.c}Z zkPϜAm#JJmny/zϯv=UON"|!wuD>_dDnDOzz>a G}Ss2's3p2W7zCHMъ6F#VyDkjj pZe m wr1Dhcln;Jvht,U4rucm Zݮ&Z5i5NqvfO2HGq6F+Oӎ5 sVDi{묱-Dhm$މnhi?@8#:~FnFm3W%Dku(V9DZjKl|B%Z/QsAWMiΉBD9Ѹ7&> Qs"jdQ Ddw@$p"Q'ᵵ#sk,D DS$DdY$r"Q"'zaHK?%Q"g_9q"$g> ȧdөU"{FDd8(-cyˈ<%Q"JDjY]dN\0"JOf!J&dE"/"zm)HymD‰>BZ׃D)DR^""FDVG/)GR}y-wJD +fDdD7$hq`0 ]ҙ0@ p.%?σR8t~Jl*R0W_4x6_Ep\%X7B GDJ(rNjX)] Kt^p~ވa3;F؃ X ?D(of83nt~ 'yLG ɸ C61aqo,?~c<+`,4?31pàdh ͇`0aPIY`,+OԨ8^Z]~WYΞ6]D`+s[֢vJlX@c]c%6vK =vi%)!DZ#4a*Nc>Mq$2TN K S>LXh\ lL05LcKLleHl.;] S>LMXh lL0U+%vL%c56GJ,SVjl~reʇ[nCbJ44jVbKd*{Fck%v=M)hlnB= 2^}%[Q'B|*[&S>L}$Fc^`7˔S/[edi:Sq,0[dAP>5P@lXC}Pخ XC}PA5FjAZT;胀!!}X@냀>h} >AjA@냀} AA}ZAj>qk>X} AA>h}p>ؠ} AAj}PA>VZ>9~*e;nmSydYZ [2l&#lVڻPbje 2AmVD,Z[嘆\{@%PRWWF9Cmz-R#iPRd<PwS\&h^%n^dg K$B#$ywc"΂_&h %U*J(Ts)&h>%(A@9Jq(LRJsѿ-g=A0IEJ(·p!Pr^(&2 %U.Z>@9@[0IEvX(( 0IEV_(Dj+6x|'͎ƮauFK-"XO6?6c}9+ͨ,Y=޳>{G[=4ocx3YX<w@/Cv<6Z>dfqAicsK+K TɛQPYщ#B^5Z?j+sS*VJ,D?b*JO"سMٳڳ<|х0zhcIqiIA~q.2w_ȟ?)巛?D;h#M!B'A|00)B_G@'0>v؝vfsSWeg]~ {ΩuoI nTչN^ӿmǓ0l8Ԟ ;*|1 u&o B0}?"|>˻pm~ O%VzV"naXAm+eR^hU. VJ-}0fi~yclڥZi ߸ׁvxRiX=:ٹnkŽDY5˗OINګɞHXLiyw 7GR ;??^/MKtBi9ߜ)搤$%(i9}yZzcPt{#Ycå4O'm`k%u ɄzDn1ٴhEÒv2ѰN֯i&$.#fFJY\$Jz-&n2rE#Q ,\&GrMNX6/ۃǶԱiƶ ?KK`Uk4!ָ Ux(*w̍ qABR R-vEdyxΩ Ar<<5zՂyJ%q$SIǮ$"U7U%D>-=Q[WO5ЯɶzJ#n_k5TkGֈ-SkO$5bJU-ӈ[jg#+4▚?sFR35﷐oՈ[J#TsߊJNrEfUo]>?dV%܂ɺ?տrٖCB 0+Pe`YXv`yX~V >LS*ZWLgQAc|%?VN8,1J8u\sؚ#.h:"G#CsT _ Q"f=%X|`X=u,pV4+cŷ?]G2pZ=䳘>GsV?O|AjXxW-5Wqih&wyFl,l3ϴo[Neb;seϡ8n ?<]'q 褝Y{cO/(9)Y[4aƚ 6`s Vlb} )8{`; `k `s 6`E+"zq=t;ϭsBlffI-θQmU:Xe`Mk2\5X )2w vlll Vd=[LQ4NU[(l؂ꯈ~nޠeojhL"/@Ȯ8Id"fufS㭷Iz$VK߾p^r!qޜ;>xM:ĵx~g7a3?1yL#7½&;nxӛhpmz;xA0>IXLI|!3܁p7܀J|.ŗ|YNP|.0&LķIx' 0YXN\Q q"a)p\\>p\#f [N4`8T|DbDhUAtu&HO&x)1m0=S\At#5[QX(|96NǬV.>e9>Y|dKVd'[smBϷ:]3 kئ(Q [11h*JZݤ)lDd[5v/ٞnTn*lDe4S=mT kU)lD3[+7s0`4v ٖ 4%-XJvD}?S3 vF)]hػp6k8^zp`oi-1(Q%kpfj*JԵ_VcVc[_doMb_K=bc$cM Jc*/n/n/`ӌM37-UrR(Ǚhql1|:_Ye>u;`{)eNؙL3/syb ͮŻ&6MsVfh5;zOʹV`m48|RXM'-$`4z9KRgH'FZq N%7ˊ=TI$⯀9rKRM'~ZQ ^Ӊ${tRgYϲ紬#T q~c(%xJ'Nϑ9&iy/Isc:vpLْɽ$餪NsfNO%xO'U57 Z p:UFZ@7i{@TI'UmoZ%{G*^Ajp5+XKu~s>>wT> d9OVUn=@E<yQx+},i|  x26~YAɺ$΢+/b] 裐,-|Yxom8}mI"Ɖk=HW'[MIrbVT]Pz'_AV\5fWTzZ9>twxu6cAt#(8?G}nVhC[lM.(/]c73N9u\R+Ph{{#_+=L2JDKyfCǒ᥸!Mܕ a/W]PXX^@~wUTs{2hjUΩ=upAT&NAs$vZn gTJS! %hU54$=4m㛬ӗ;ˆzE[vAe9Ml0DԽ󬼀;&5(Ät.uR0$"D㾿G (|I-mu9ꁺ_6o_'YN8b l%V[ccc[0cGeSΕiLb솱;,˜ƞ{aBF;Tא?'}=3絰'aQ}P:?dԼ2&c2bLc:>h1Ci gNHAaǾ 4_bR+F憆@:Cb+@9l+u O>?¯d?-J줚t ث7# ?J+eוub'-JF}M3<ŒgCD 4',-j6Av{$epb?tD^S쿹1i@$tSVhҸՅewGr?i(`i[J5%+d,^{6PXPЗd񙬾pɆHWBi'j;ŗJ.sSX ɣMN/?R7T'ُM˛p_q3P_Lj#@rik֗pߵ+Fq$k! t]v yQl9ڧvڵ־}vnKGuR:gzڢ>rȸBp[ۅ1]td>Ѕs RpT'Ivp.V͂%RTyMfc99vAWפ~Q5ʵ!Ǭ"\(Xp8qux6O/@4)=ٕNV8EiFeRLmߑq4Sτ6"91q\4?+,Y![^o+7K#y%esRޤHYYIyE yfYr d^6nRf? AZ5BQ&Vj|MX l~={w+T9?-rY~Az?[ɠl*B񾦲9*-^Xք1}=JH utAm#Ԓ}\}3 e[`UTƚ*w-`SRRJҸ#6ܰUżsVsYޘs `7CE ]$RDQ;8 W'KCNҀUr4x`7\`0=B;ٜ& *^ ^̎?fo3(a} p[}k{Uȸ,ْ`Gt8[:8m|mi}9.ܭA| #xNFtm]S1rh%24wE,)fl6u`kak=eph7`/ Rчr~lrr??9*A"Ts9\$BdBZ'\Զ^ϱGuy .~K"TkzpDVɶz?s>+ZOs}$Bͽ{z]Dܣ$B^Xy]nɱ5'ϼUP] -Q"|}_zM9uի%Bߘe$BRt_rlM[Dˆ7{{Z#v>8jA._o_ZG"T=-̱5v_[%} |҅{$B6[oxGHjm/zS"T. \a@W֭A׺5XǡբYV{rc2ޅ}7#ܑT7'jKXA^ثaU۞ʼ$10#f<17拁c`1@ ,%K2, u'ۖddң쟉^~HfgwWM%6y68IX>>&8#c &vP"V&]?C9~E,X(bElHaea]`bfbi`Omk؈"6%qvXtI6mȉXr"6xu[V>&6TfG+;&v"V=LU)8M!b"D'IAa*]!;!$&U~U^8I'E{-b2ӷx푈Xy$"2+}9sM%b"FV+|LvjDxFv׽[mا}Q~XLp~&vE"V~L|wۏZ&_Lw9d&vV"VxHQ!D\gLD3?6q8E",wU0rD-{t\q XDd{%hG=TKzMe!?pH^ !RY'y)[T"U]}jէVˉtxPˉ%%1eWzZx&N#4E ~ ﯶל3c?lXMq-aZ7@dG[yÐ@5 ?PN?@ P_~g8-yS{[] o6`5!G)^fL5z<}`_#6lHy9$Q!-ayblT>l72#XX35PP{Xc56Zcm4^CJO8n|.zB !~Pzoq&F9T}:JFhlƚi(݇ {XcklFkh5=NqT}bvh,K(Hc4v\c5g(]c5ej-B-Ժ`WP> snD25sXv,SIy{j^TW#3 \ǴOjܓ^ۣՏG[ tYҶ;yߎW\p fa&CPJ M/'_q5 ^KyO-G؉nxG&dG33sc!fB1 Z{ Be@b"ߊaX7*Q~=-0A0M{'0W|\qS[/1zŃ"M/2\J=tY_,fbNL'Lg#Q?^<$vG>P<UB1jam1faXep(UR7^dE[Y:}ks3W;ͧq-n]= Ir[oe`._c$- jl֡XZE]Q}`ae.sGb}P/v.7[c( zaaCd]{¦\a%z UNYIBN5TbUjNVsVc[-iwHlu/ili[-n誱[p?<-1e֗Z_ЗBKGQ'rԗbJԗ{җ{lԗyZ_i}C_֗cK֗*/U1e֗Z_VЗZ_6j}C_6h}٠eC }٨e֗1e֗Z_6ЗZ_j}W v()j_<_#~XyZjݤmmwU ˠS(||R܊'m5؀y'F*pB%?HEv#TBo\PKВP5"+O*)vґ lb<1 JRz_" O,\TbdJ'LEqZR,TbzJ%yxR A%֠tU"_O&TI\'P)T|x&e9/ lCx%1 }mvVO=XWj OE.|7(-b%{D1fh\1~ȧcpPc%E&#;Rϴ ÌQZ0ޫFLg0[?սg=<,%Y%O難!cq\he"S"҂; ?KˊBH坛ș4l ME 뽜4XxTxRuϥ$q!s֞ SjO.2\Xrx\ pV>$\ "o@ $ O4Xw!DIPH*Z2чvJG->;I9w A޽;g=gw?sG֖'y2`_[.<2}4͡ Ӡ! gBL)+tAԴ99|wW+}rK,]ad=uI6> ETG:t&OƏ{QX|_l:E/9 s&4B-/제?h:_8W=CЏx,t} |C10a<pGbq4滘cXq ƱO8㉚/ E=<FnɆ48~Le/1.55O5n]N\<(ߋ9'''秛xM112AU9QM}څ i͡l ȷ)lkN76I& 3zV&pb\yy;_M?ϵ7݆_uc>R)PkzԬwk&&/+K^>] ,w-GPik+$ul˕/R.?ZK.c'=%:Ϗe'ıAŔJPgXectU{JV[_ʽzDxt5MrsbQ8m1{[6nw1^<_&=LbjgoE&"XB\UJPkot}9_iHWnaE7\*S̷|-#2_p-V<7 _3lQڻ9i}iQsmo7hw>M{2$7y-+plZn)Fcj'PX%+^2І9o:!ђFN+B޼/@I` Z0Nc?Jd$P&= 8$ b?>% llhm֣l <|֊&oBBBpPCAawX:g %::uwg?b%S9 ,Wx]#3} TuH*LD; Kpzb?㳸6 8GfCR|}cgU`gDRz'XW͘)-oړ92e۸=>|V&޶،U Wy-ۢP/T~- -⧙*IsJ[p$7Zp>b\'"D"=t5: ݥczf h^*-Tk@?N py\l4 VYkWk*\ v#X;i+ (Fs6 -ҋ _ B \jd!JvM`i9T"<#HKFTی2#zl'כUi_ܙRgkĴ+gJЈR 4brm4օC:\3j5bfSn}9O#&מz\3SM8E#&׻iyC*n5j}F\KSm9 ߬'΂4brݰ*zL@,j] پP[+}o.G>yzU/e|$_HgudhG¶H+pWƸUnz1,#m}ы1 "X4e`/$zG ׫{:^ߝ6#T yp:Vȭu $eE,SLdEYQ^&ILZVLkh RjY1#F SLdY1W$&IL(OҌ {&>vAX5HBMH"&d_߄?jwgw~딶jwN8ְqÿ U~Ё7+Xx(eE0/R^OX&U`+6ا`f b-6bM1 1.2kv6:g_ :JSK`M6X VlOaf b-6bM1 10}a <÷K`ꎰ[at0uGJ4X`Fj6C_:\ 9GLnvKQ?)߳Kj Yyo\=}|"fRxW{lZgxBI6<%q7b)}xR O11Al3#A<}!Q|Qă7c\4/Q+c߸~O*׉#wݗY֭κ 2ᯯ;Fu/~Bl=^0{ͦo{xrbXob,OcOb% Fp{ѯU9ҋKdڗ5݃O{u_ת!{N )] S'N=n :)i.=ρO?O? ?O?GN]keQ?ɢ,o'PE?OG?kp'9N/6O1 ^z}Y`%}4~ró³³³g]uXKp5egU,/   kO&,,,0³v    oY`V*3rw13 sm #V5J=05XA H _4jN WRZUazcw MhzP5`'} Xak@QnyS@2PxA}xZ<+ ]k<%? S6Oh+'0T px     $08 Decentralized Location Services Ben Y. Zhaoen  Ben Y. Zhao153Microsoft PowerPointn S@>. @@}1ۀ@ R@GSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___www4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___www⼻޼ü⶙üݼnݼmfJsmmmnsmICC=BJmsmlJrmnlsgrCB"?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)Pictures&Current UserSummaryInformation(UPowerPoint Document(7DocumentSummaryInformation8