From 6f180ca3bbfb91fcb4d674cb608e0900c2e903ff Mon Sep 17 00:00:00 2001 From: Adam Bielski <14027793+adambielski@users.noreply.github.com> Date: Wed, 7 Mar 2018 00:53:21 +0100 Subject: [PATCH] equations fixed --- Experiments_FashionMNIST.ipynb | 5 +++-- Experiments_MNIST.ipynb | 2 +- README.md | 5 +++-- images/contrastive_loss.png | Bin 0 -> 15564 bytes images/triplet_loss.png | Bin 0 -> 12584 bytes 5 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 images/contrastive_loss.png create mode 100644 images/triplet_loss.png diff --git a/Experiments_FashionMNIST.ipynb b/Experiments_FashionMNIST.ipynb index 5176716b..669b3234 100644 --- a/Experiments_FashionMNIST.ipynb +++ b/Experiments_FashionMNIST.ipynb @@ -18,6 +18,7 @@ ] }, "colab_type": "code", + "collapsed": true, "executionInfo": { "elapsed": 3528, "status": "ok", @@ -507,7 +508,7 @@ "# Siamese network\n", "Now we'll train a siamese network that takes a pair of images and trains the embeddings so that the distance between them is minimized if their from the same class or greater than some margin value if they represent different classes.\n", "We'll minimize a contrastive loss function*:\n", - "$$L_{contrastive}(x_0, x_1, y) = \\frac{1}{2} y \\lVert f(x_0)-f(x_1)\\rVert_2^2 + \\frac{1}{2}(1-y)\\{max(0, m-\\lVert f(x_0)-f(x_1)\\rVert_2\\}^2$$\n", + "$$L_{contrastive}(x_0, x_1, y) = \\frac{1}{2} y \\lVert f(x_0)-f(x_1)\\rVert_2^2 + \\frac{1}{2}(1-y)\\{max(0, m-\\lVert f(x_0)-f(x_1)\\rVert_2)\\}^2$$\n", "\n", "*Raia Hadsell, Sumit Chopra, Yann LeCun, [Dimensionality reduction by learning an invariant mapping](http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf), CVPR 2006*" ] @@ -840,7 +841,7 @@ "![alt text](images/anchor_negative_positive.png \"Source: FaceNet\")\n", "Source: [2] *Schroff, Florian, Dmitry Kalenichenko, and James Philbin. [Facenet: A unified embedding for face recognition and clustering.](https://arxiv.org/abs/1503.03832) CVPR 2015.*\n", "\n", - "**Triplet loss**: $L_{triplet}(x_a, x_p, n) = m + \\lVert f(x_a)-f(x_p)\\rVert_2^2 - \\lVert f(x_a)-f(x_n)\\rVert_2^2$" + "**Triplet loss**: $L_{triplet}(x_a, x_p, x_n) = m + \\lVert f(x_a)-f(x_p)\\rVert_2^2 - \\lVert f(x_a)-f(x_n)\\rVert_2^2$" ] }, { diff --git a/Experiments_MNIST.ipynb b/Experiments_MNIST.ipynb index 3e600ed6..4c2d4288 100644 --- a/Experiments_MNIST.ipynb +++ b/Experiments_MNIST.ipynb @@ -490,7 +490,7 @@ "# Siamese network\n", "Now we'll train a siamese network that takes a pair of images and trains the embeddings so that the distance between them is minimized if their from the same class or greater than some margin value if they represent different classes.\n", "We'll minimize a contrastive loss function*:\n", - "$$L_{contrastive}(x_0, x_1, y) = \\frac{1}{2} y \\lVert f(x_0)-f(x_1)\\rVert_2^2 + \\frac{1}{2}(1-y)\\{max(0, m-\\lVert f(x_0)-f(x_1)\\rVert_2\\}^2$$\n", + "$$L_{contrastive}(x_0, x_1, y) = \\frac{1}{2} y \\lVert f(x_0)-f(x_1)\\rVert_2^2 + \\frac{1}{2}(1-y)\\{max(0, m-\\lVert f(x_0)-f(x_1)\\rVert_2)\\}^2$$\n", "\n", "*Raia Hadsell, Sumit Chopra, Yann LeCun, [Dimensionality reduction by learning an invariant mapping](http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf), CVPR 2006*" ] diff --git a/README.md b/README.md index b235ee0b..4350ca9b 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,8 @@ While the embeddings look separable (which is what we trained them for), they do Now we'll train a siamese network that takes a pair of images and trains the embeddings so that the distance between them is minimized if they're from the same class and is greater than some margin value if they represent different classes. We'll minimize a contrastive loss function [1]: -$$L_{contrastive}(x_0, x_1, y) = \frac{1}{2} y \lVert f(x_0)-f(x_1)\rVert_2^2 + \frac{1}{2}(1-y)\{max(0, m-\lVert f(x_0)-f(x_1)\rVert_2\}^2$$ + +![](images/contrastive_loss.png) *SiameseMNIST* class samples random positive and negative pairs that are then fed to Siamese Network. @@ -81,7 +82,7 @@ We'll train a triplet network, that takes an anchor, a positive (of same class a ![alt text](images/anchor_negative_positive.png "Source: FaceNet") Source: *Schroff, Florian, Dmitry Kalenichenko, and James Philbin. [Facenet: A unified embedding for face recognition and clustering.](https://arxiv.org/abs/1503.03832) CVPR 2015.* -**Triplet loss**: $L_{triplet}(x_a, x_p, x_n) = m + \lVert f(x_a)-f(x_p)\rVert_2^2 - \lVert f(x_a)-f(x_n)\rVert_2^2$ +**Triplet loss**: ![](images/triplet_loss.png) *TripletMNIST* class samples a positive and negative example for every possible anchor. diff --git a/images/contrastive_loss.png b/images/contrastive_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..4daae0487e0f8497bcf68b4642989f75d4bf692d GIT binary patch literal 15564 zcmZX4V{m5O)@^Jj9ox3;bZkDcZQEAIHafO#+vwP~ar-^rch5Pu?*6fBuE{lK?b@|! z%@Ls>Cjk$G4Fd!O1TXnhR0#+OMD4Fk4F&P{?XdnM8VCrJ#X>|xK~hA7P{Gm8)WX^X z2uLF&*#lAqO}4>xM%-01CCf=Jf#v5kml@b!QJgH2R18T0OhrLRp-&V^5m-nRSqL01 z9Bk}&ULY~yH`0U8^>g<9w$po7jz@F*-=~~=5do;OzNogA5bOs~ACV%m+MAX(Ladzj zDl`x<9AUqF_yHDHiG_gy$j;sIr@+J+(j;VRs^LccSI6f!;CELi2_LXOt^URCk5eqT z{SBbJ1HJ*`0w6(#e&?;#-;9_>`gFiLV3mZ?ug!JW^lF>K_#LapVI#v*IKx*!@yI`m zp!9&kH#{AN+~4{g!`tj}WW!Vape8->hb?n_Ng04NhV^rN`ug%2P04ySM)&m`y}!d` z;(C}RNw<64-ROBjWJUy-X~WUJ{a8o7bpwM6zN7nK)dTf{1D2k$S}xHsEjwcj{^XAk z;hP>YmIU0=_|@Qj+3;Rs*ywkRd@ryl;WT6E0|5!$5T9ZWq`?pK5($}-dpWZa`0Ei5m93u0GQ1@qnKobeQ*raL1kBN5FFpgmD z46mq1_Bg;n&p7%qw_94#zV>n&1H8Y0*4ouYWDYz&n%31tFaiiQ58fFFBRsSM5(*r+ zx5uu|0{N?HqX6%xFY!+-!I_cGhtb@X@LVGeB;DMEnJpv6w` zmojJpl;TxQl8yA|26~65$467j({{>tR@hU|#W8qK%y%McdPHZ)g?KZGSA5kdd2fif zzqR-i@wLr9|RfCv_S8>X(Nx{BCwp$ zf;JdH(QDtcU|GQWTadjm7&&vuOdYI?PoVHO{wTUslm4Jv9l<+TlAs=WAguoMj37t7 z5S$?DtJA*rS>pa0_DDtkaPgpW{>1hWS)drbCid`~V6u5X8iOQus7@e*cJOd%l=XpW z15|4fgpkk+{LP6>!%_FbM2ReZA}a+s6QPd6I0kPL=~043h9U@CC?Kc+Wd~5_VV^)a zLt2J;<^i9;vm#6h>E-J|kp}wbiPVySA)!Et1(Ww<8U%6r--rd1pdg)w?}smhOAV@u zk`&_gW`LzduCF&WCF$H#WW@$CQOHP^h8Zj(7%u7!godcaioq?UX zoL5fXPEt-RPE1ZOPxeowPp{|VmsGdMEZo7;ogqd9IKr|lOVs_Z`;(;j&Da?Oa% z6p#HFbjhelw2H`#+3@Gd=m_kH^U9WpA4#D|F3maSW5`kewG!46-xA~&5tlfVbWOPZ zqr2sU(^t$_;7j@A&xZgQ82ANvEDS63Bn&e&HViqGE;2510g@613`RMcCs{PI8X5u` zJ;oJ=Q21!XOGHv6FNRq7c+^`|N)*C{$hGo1MtzOrb}gomj54kGMdWHLXHaW|d%1h! ziy1UOG)07Wgl)ujf@6YE0tVT(AcjQnsBSK$~G0-5ZYutz+a(WxnH@!`N7>nm_rQ2xW!?h}u$>A>jv>8`X4Y3XRC=}N1LDiO3?01H|jnk!m0>*i|*Yn=^0>SLNOYYQ8l z>MH8q4Qh<^^aYLxckM@a%SfUMdyE=Tm&c~d#w~_4SK3BB#>J+|224);cLG{L`KoEF zg{q%7DgXSmZP}c=db(=5!Xb51BC{A8m@S+%8dKi5PdW}v4OP!y$!aNg3wVx>E0+(L zsjMl#mfYqNaOpAZ5%aV8X8D=`h5$YW@de9(RD-kyUxQqNOa$+M+=kAFhK4(ZJA{gX z#e+hHpMb)FRYzce(Tik^{T&%hj3~-3G1r%Rv1OirLNd3{WXV*_Bw%!DXg8!d5;FKW z95rY*G(&nqrY$8(=1J~~d%&OOX#Wv^lpi@TYY;bpC)p`^Dycm7HkPV+6#y5@p{D}if>3#Too zO+Ho9Aa8mM#4*4VPlQ!|?T_ewmtu4;DaEZ7t5R<_^P*ZF)J|NFdeeYQ^LGzJ}(3 z2Ac+)I*LJ`eo#BD+uW`0Jz=jngF2-=t94>|oJ<>DuE$e*8^WpIo=ZYiL7JK`mwb;Gliv9bt9%4Q8Li{&Vw?o-jjYZ{J zoySh>Ty`vaa!P2&o?8W=4Iq6zw>{Aj*OTk(cP`W)l-yj~Jmk9lG=|U;>xPJj-+k72 zadFOk<@xdRdTzjW>IyPWm7wK`@_Eyv;HBua>|Gw00b zmU6@V5ONps(df?TdDvyxi=vWZOV(44-aGoEl_{BDmPvQ$hHrzrlw(EUnpdC+ zskyd0?Ka{~dCe?;rlrT+`&7qKBSR}zW9u#BJ?0hg=(cu^M}tmNSkYH;E>Q2s{N34E z(z^UP@wGDPc>&?N|4?#cI$^iJO#D7ir9NUo0s{Ml>HD>aFNh}!;+~Sj!6PfA6n=WgSEfp(G$-w*ypnoJ zT!nWQgJkw68D=YG)tA8N9v*%%t1>kCSn4fhvLaYoS|B&_n{Tg_Ezzw^tO!^OGOKVH zGHbD4v6ZpVaa1tcHKjEQ16Vd{SC!U?F4-?u@B&b$(@%sQfL!#4T>7iFyJDOt3db7; zX*PJaMpjma%FYjULPp&p>d6Yo8ejk1X9y%B>#r{NT)Xrfj6Cr)uUk zab0f}{f<^E(@Ixro7AjxB0eUgiKbbgkJe$XY}e{i5Yd_N6FVy(XUpbZ@O(eF<@m4- z{S(>c(@NBI`%~G}X*#F5z`Z;K{Rx5Z2xm~0?J4fd0eAhf_1X-*0~0=2unGAt6{XxwD!@d z)}Gt`(5dAv`lkA(>TU*>7qycRji{1bnEX!aVY3^EiK}jVFOD=;dR^Kun*soe8-_9mpQmIfzi**cqu?Qto!l`9s?IJ&Of zNlr|Mt6*EMIpA1h*{9h3tc12qtbcTsI_m8Q2;;c%6!;Vrz8i>`xu~BOqW+P;-u&IG|{o0nwxE`OwbL#s7Lc*vP*AK_gk=DgfqJ`DLvm{Zd>nw>rC)wQ=9W z+2~Ix(OwWdr}4mSiohe!9snR8L4BcOjgU*CQc*91G;cn6Id#DT!Hi?fHtL?5A9_o> zM1I$ag_-80r>oZ6#PEprKzC<(1$*Uw(Rp0~g8?T4&xLx0F$$>=gA+9sWqE?WJV&`l zgWNkrc_-7A79VKI^t3=d)l6sAL|8NBqG=O*C4tF;k-e!hQKOPf7kZ71EE$jb%y}26 zATKvql3FrZ3S&iKr=A9Q3G>mQpqLk2#|M;1H2yzmkvK_tsw&RcM zinE_|ovMbh3LH&^-ZVLXZWj<&Lnbf=O1s(VW{EBs4UIux5btyDe}d#;89m&3VJQf~cPQdhcm zHr;N|zB56|uAi|y*~>aKe}?#&<#iwN&z-J0yz^hBtSC?59gGbM?0gU3*PFlHz6&?# zF+G6fN_w#@A%L3CfDYXHJ&p*o-1dNL^MHEAp$WmffdXe?2@h|3jv>Kv*)atXegmWK zfCUPoP!6=!a@m9M6QWGh-}h=NKwbqM>*IQdu}HB0gqaW9%+sJGXoukoEkVW%M(PJc zj-U*?@1*0bi4xip`Vv1alq(>gWj>L4fQ)7?0c$`o(~uuU8!dOJZ1v{l;*Y|W_YLe7 z{#_DZY))2=0-*dsb*+S@&{Y^)kYCUyULnFGXePoTXeaj_*cY=)VFaB>y+C?67Wagq!_4RDV+zVH z!cU@U#FA*guwa^fq(|pbbx{?!;k=Q5;eyMI>y?eA&5N+u?&~}f|C^5ypC(6Hmt^a{ zJIQzWOAMGr=sgHlgg*=`WJMgMpucc?_-u%cBAiSOZ;x9$V=_J=H&kAptKN~7(20nL zg5$+qg#S@8rC)xCt@O_{W71P90Z*x)Z!z;V@t@+!@}-FYHocmx))IickI(DT!{yp= z$WeOA*zzG{^yNCDPRC|PmDggf6fdeTy#UhP-7(`Co$bLU?AfqI*#2|7MWgAt^!0S2BnFcmQ2Dui` zy1aAP$?Zca)*xmMV<rLy4OL07RT+l3R zom$8XotajbHpF;tUQ1qWd5UN1lK!Av5KT7|$gr(Thpu%wI5TERh zTr}6Jp9cM@A&ix!0r%HW!(l^mDl1}&-85tTy}|cDoDim=`qJ){P0AR0b^iBrZ`I<5 zkh>@r)xag+)S4A$U8;@}t>;tEG1+2(4}8(^}u8*?w3OXLB2pG>FC12?TpEb6(PnUuy z66y1&XA#F8ek6QybcO^^L9Rg~({pY4sw*>U{d4P2Ua~LlHauWS^8zReDP%t-SH)xn zi3QGi?0Kv?05c{NH6t|3L|tp$aD!N#m;I`JhC{kz=3UxN#+~ME2ec>*K5F?7Us~pt zIAIx~O^LnegLu}c=v3>j&Gx{MJ(k1D&saJZxTFA@?t;cJe2druwoJ`h? zh)lgEv=+<8xn{h2MAtzc9hW+%Vpoc1`+LWyuakihS+b!n_PzM)J&ly zuB=~*h8y{Jq#Fl%Wj{_`v9csm>#q(E@bAYKX3Xf_wN8{9J*lgL-(*bEygn>$efxZPzNRaqyRKRQbZvaaJ^cE$#l=q;hz@iz zS5;*P0;CTMv^u%Hu2r+SzTOE$fkOh+2!84NyvAkq8;BCHE-s(xNA`XEocay$U-=(312N&hT%4`=h&5yt2u181O$gcOS?L*x`C$kN33(ljO}Ujs#s4?_?~0Gu z+}YWln}Na2&5hoTh2GB5jDd-Zi;IDgnSq&^?ym=(lZUOdfjgb86UqN1`M-HYO`MDz zE$p2w>}(1D$!lO}=iJ>a!)y1CLs>$fNjYD0+TTELpKspJJ6>(fEpVh(*7U&x{YOCe;L5nM@#_ zd2PQfMn^m`I7$&5l^PMShvW`4c06G~OOMxe$Gq2!{QN?y5zli#)w9F)=gS|b8NTC9 zr>pZ>hj?x@5E$SPe_=tQJR}7uO0W#^o$HKgA(Q`E{oB}!tPq$?9Go2>$RtmbE35b* z=U}!dv1Euyq);@O44%=Jv?gMsB&+y0gDW+NRPA~h-~Hrb#m@)^^52CGQK14E`TdDz zCA;PM8~%b%Zz%B2&Pv-I1oP{KHk1lK^8c3Ry@#UgJ4>esD24YAd)vw^*o+w})j?MM z!WYe(;E;*f#0H;ZpTW1zwM_WC+1h)g)t3A6BFl$LqFJ9_>4)FT`l(rohI|19wpi3c(k`Sb{C}Z}3PP*Ng8bH1|LgN_q=f$<6&3!Z z{*NjT$s7fkOoI(N&r|1rWBgWKXvYWdE)gPzy2C*(3vE4dJ9H5=*xmDPtvv^{4qSN#5yD&wvF zD<&jazlo>AZ)T}IZRVDp?D{CvD$^rK(bcxwmfq~ql?`l?6JS5HFn>y0OmLnwXeOC> z{K4wPE%bQqzXVfr3)eU_9#xtXE2v)RdUk6olt&zModR(&@0sCXCR?l5Qm^^`X1*II z5rf;s`oiEV#TMT~(?{)RmaSGzX8zgX@|D{AderPV4576gs?Oe{S1?%}3Mp9q^|V|-&>tuW#Qn#63*;@KDk@pVvXgLX}7zPK%f zhc|%sIlcb07y@lhH6_z87MYusCkje_FwE1p+Sgqe6e=%fu@J0BbJFZiA%&W&iWFYH z8|w+ylSQ6u5b@CCl67LbUsd@$HD%?rc-wEVSNL>qfbHAk+QYf4>YbJ!lIWD=q2*nZ zmS1KBo8sGK)MxH__6dB(iC#>;gzB{%qa(0ZbW*1n`K{lnJNQ_J1pfkQ&dDfro5@p< za<#4&Gi<}vnA(D5BhXVl2{_s1mhBW+!0bseR*Y%!4=u?#&kNZw+%aJY>D^D&rZQc! z-}BBl0^+p^xg*z=eD5gp>baQZ9f~Wae9F<=vj48=;DkYBe>iLa#%sIlxxKIOtlrrh z;!7fZo+4expG{oHw@k7g--q|X_Q8oRIn3611++GezEe(FG~`Ky{zS}jGhgU3ksJA? zqLpjL`iEeSjH|{s`aEAu$7>T8EX1p#AUb-ot?k3ItIIQRiKn1+#mu8EsztP|s&FH4 zx{ga}SZaBU?aH0VBlN-ETco>v-?wE)b#)eFZd}d!aK-a zFhPQfJZVCEbQi*xbWv^Yb#R4mnb<`oK;|-f_-1%UHI4hkz2u>@!-~yFo--b(Y7Ga6 z4+6pi^E~glK8wP>XE5uov2CvOJ7Hm6S@=Kej@Fi}j4b>~>t#_f5^ za7$Fn$;MC(&27qv1s|NJRd&L`B)~aop;mtgDj!=8NnvCTg5nU+!Bhh|Q^_tPRSjNo zz%{J#Gq*F#sGAg9NyhL|Wzs}TeR2lVd;vPMzUJAT^ou4xKEl8f68u-1KpL$=2n@< z8>5(0DY-c-qrwwj|N5hLUXb{=w(Hb=7fT3!PJXeSTh6t}*E^@IgLdd{g8^r|HMu$F z`GF!wH@5lpd>K^+H{Vn?aw&v_`IYdR8KuJ$qkdM=uazznP689kw=u8~|BVw2kkX4L z@P}8yHiW}P1T%aX-{2wfmnTwuZeH8F<)bFD4B^a@!b)3ZR!7HB6bN>k!VPth@FXJa zuQ-?ICWaF8RxAI&v13JyP53q_~>? ztbcpg&WBZ_bah{@cAUcElzjYbWD8-Y!+Z>1s=$Uh1*u3E(80&&3-fJ>l=y%$R9!hc z*_Uc=A^=uFFRz>^=%9xP9*0LZBYS`wr~HwK#Jw!NtLMy~bL~qI;|&yawuCkXmKuIP z<71BgvNlhUXd-0qhZth-bvCXwgumIz3@kpA)m`x&LeI$)qdwU>3_3Fr#CkU^q}A3Y zoX-&RmJiSM(0kF6#%PJJi~U6?%J+ z8P>DO-~O1u5RRT5+vcnxrlODJ)t9F>(1R3xR@~g`nYe(;p<*b~ zkDJF7OXUybe!S|B&p)yIC5t1)9M%-?or{-CCj$#kqB_`9UE7kVype=r=>!RAd>-Kl zdb0i;Mdp`~Q%`rU+U)&+**M4`=Z92$DW4|)om$EeUx&0#JBTtXJy}uFLhYM#ae!V- z3mO58(CUg6dPR6fF6#Lq9X&uDmV#w-1`%Z$V^vD`^_rm;dBvmEQ2lk0d*u#P0+J5J zGTVf&>tKFwX6}yXaE$mH6vAgq zq}w;wrJmjF+WyK1>l8Y07P?@zlmv~tPUcOI5G_4+Z$OrqAuVa+Ngp)#N*%(2n?F`E zR+Fvd_?5}&l{y{WHe`rnGiZaq8PjW5t!af}N=jF3cR^Tk#^l`DI4ro%s2ce|?me%kIZ#i!6poSM z{v_?$;05y%!gWAZV#4vO?Ohk47P2R#dnYkqk@HVI_W{Q}VGYb>-+fN1W>h_KMhQ8* zFqOs}^cUt80t@~qpkpMBlNR5Ny{tl|7z8=Zq(!}XMQ1r#S#`MLj^{^C+PNMPbcarv z0HhzE=zB zZoY1yNNl0#JOAgv>SSF7+MLN0Q%{?u7#E@jL2?ad+;8FM!{FwIzyGVZp=au^P7=`` z*tyXSlHfxZ7+lKZ?2x>)u!2j!Cf=H)-1-LWk9J8d=Oa4ISE>?naC5==9K|v%Ct~Sk ztt~?|IR30Q(8G05-%rN~Nle5wd6O(mlWJ|?>F>d#Kj`?&$wJ2!OQ^)uroO4%?4>gX zd@uXr-bHW(>C^}W{eql#e`g2X6BQJ}`DJJLB88AX z%h&PfN%tg2#`Zi1JGBlm!19Ysu8=vBlri)}b7)f))Q4V6-&xzhVag>J%*}6>VI$n3 z$K9-do`|-Dc-f;JBMjXGvI}ML44yg4BRWq1XqDRD<~4{nri+Byops=n~h=8Pnr!9w0T z1}E5=%Lzqoo7}*KCmYEM!65RZz$e>|!&EHm#9qgC6Krk?f@I0lJ*t;k`g;!3HdS1! z#3Oc>0_1X3V~8Q6ck6rnzyL@7oY>~5wdbvod1kZdRNOM;RCu3BJEoA;6BTvh%vfAm zeGy0UH*rtRP|vo_EEY4{0?94L{tB%+pkwo?gyX-s#`rw@c3%Rn80WNrM$VQJA=YXF zvq_|2dz5V^@44f;--VjbPY{om-XGP+s>!$Y;YhBq4gm&u%kjb2QoiYaxq{Qv)!gt&dgJcg85^TSE6IZoapUmJIgqhYHW= z(H!)~k3;nN?3*(C_^UfxP)noh>e%AOLnOs?BDg2Lp!bw&zVQX& z39?N<$O^&7(qqK6?*oW7FHX+WLX@6;e#17VQi8d{9ZbV zOF(y>q)g4%QPObBuE8EF!@9W<&2Y+sC2^Ny+14y#3+)p#OhD%e*Zk2%gPwuhqOl>a zU&M2*W-vo+h-OaIdyK*O!Kba6WU%<@wr1EV)3SCZ2a#aOFx~CpuV#-+&y+9>CM-$L>3+ z2((6N+LDe}T#UrallK@cLPJpu6C8&{HlF~~&#p9h6uqgvetA?0!Ick6r3;o}yOO#| z>rG}~T#qEC6vsFX39QG}>yT7jgiJOnKg4}#3A>i5@!{)??||u=$sKY3W!5^{!~j2{ zisN!}>-;gR%GiC@m-<&ekE{G&UN~sKg=({PD-hGXH>T_gJ45hIBb?qIS&!0!aO*Bs z46wV}e}?=Js3y_ayDn-o!j{eW6wpyA=hCX|2e_|^-Qw|~mfdd1IT7PGMzvJ>G0Emf z%Sq?~o9x3P>e$IB962X^Jb7~MsTL&*7wfqcaf+?p;!y+1$vD|XBm)!~% z7uLAb;w_LUn7AonDBWzWE0>@be^^SIO<@ggsqty3Ed3?k5n^`BMsMI~gQdg`QQIAG zbHus@kSlVbOBKy9mV}X|Fns%X4abifc_`W~o4FDzVDfRv4#CEFXrhdgBJz35gx8s< zy;FO901eJ>;O$}R|3yIhn8s^nm!E}sh9#1IBw`*nZLnNnHtywh>%;EfxBZ1f^i*Ph zq8(_V)qHa@0J?JOhk<}FEs;q}C+<%~=fY?Aa8+$XYOLNwzGc`n=KoXOH0 zOlh3z?$iTpq#$t7G~iM0(hhn0mfCA|;NS@wTRxouaKa5cNZ0ettt6 zaSKz!9aC+WW#1Dh#qK@77%T_fisc2Q5d6Ir6)_~TJV%SI{=%e_? zt<5Yox|yx|R(l{P>gaVOR;O^K$-I+j3*>#T(ZIrBd6;zINl5PdYWuT&yU`D&f%0vJ zOVixy{#<-x;%U5m5Fol}wq|HaKVTte9on*3uW@*l(f|0edD57n3{9a?PkrfPZmR-% z%$B{PtZuXuG5bUJA(G9qX9x+L0b(rbq%z#=~1IU<#URl0wMYv&(kaIXj*2r{}C+)EbjhKbb61%9rf~2PryBX(bR>is6U~j z)j{sSPt+g*iC;V_a(|u`U+@@00*U6+x-P>gAK^_YZ*t-adiv~UE?W@u`%F0{FtL(zL%f&PVB&fs#=hn==43)ZFtyls2&kQb#Vy%K`?OAr)vLIStNnuZhHK|8+efPiy5IG} zTW7>oH$#XP8E=VrykUzhL?|MZgRB9T<*% zy#~FqOs%H-1Td#y?f)#PJailAfl*#ta<;(On*8w+xdRKTyxQcoryEeKiJL=`wlfds z@_DY;mZCX4D(xdO`^571=CYOgEA1e51GppET6!G9masPP^fG^?Ma%B2cq2F+twOE% zXL?1gJ6vDCB1GOe&Xmu5iLo(b%oueD+lM)%CFoTBQfMA>L8^|~GPM8*2iTPLme%o#vsX&HoUg=U zfb`3g@vd2_K_523P6pl@Cf?iH^=Z#n14LY)DsOcAh>a1EJ#(N8(%O4+?H5WxO{`yV za(tY+!LJb#ZN!htC~h8}n>m1*{_E(rjD1g4#4|!f=JQJQPn&&DmZ_Qn{7DK18UK~k z?LXBGp6=3LPcULVa=oYBVF?5_NGYOg0z0C!(3)D_$Z%XeuE0^(cS3UtxqAC|J2rz! zTAw|>Y8x%T&o^dTs;KyOiehoFsvybVFXWh&FiM5~$-vi6F8~h~9;`n2%lW9op*ma(UbFEU*~Bfi$D(pYx(+{V%rvSUKgVc@`z&s51)_CdQ zml}GG;VfDDlOn*B=OL3$X;@duS@b2%S{r@YclvmZ{wmMKv`xR$gO1`Php%F|&@nZA zdt8k_K^jULpl_|M!7$Y^h@-}x(z0m+UZ8e~k8muomZfcV6BJ{zH>(PO*wh zak&F|OKHN8>>eGxxprzrg|{j?F-AR^+3IWXqHj&ZHfzqX#VRU78%k-xu|X`&G2H?O znM(MEaF=wH;-?Xo$U8)kgA7U>l4-vqDlZi3q@ueb4DO`ImCPC|wW}CDM=-|iRsHV6 zRB)xB1&1M%!LZ}%!}%oXHJIc<;xV!3U3DTJ_T(SNt_dMPEyMn8F(0trF1iu^p=2%# z*1~)qSh{Sh8hJQHZIHBbhfIr!MNOps(AM1QywMQd_nfZ`O5(Ql4$n-3JD&5@nCy6h;rlhoH(C<&!f=P`Ih*(Y%8w80FrwkFN&k#)RJ|Q$K5)&ZO!nZn({&99z^at!dFXw>yagop zId)KAr6j?7&qGM7CK7OT-?yh|E|tndt;6J|Evd8ABij5JD8{R)qG~=xz(AWE*J#^} z%*11_yMIIXh4?acRjuW98z@YZ23D4_cJ2o#`tQMmb3(2}(?Jd+qbiW*Zr^pT!}G{j zr!)tcsakaEZUx@Kx~9S}Fk4}ZLw~o`OT(asPOWsl*&MAjxx;SEWwmjRzV-`~R0hg@ zGyrey$<=~%8C=xTJ zr)u3!>Mt5&()V@=R_lOMSJ4*~n2_YRVK2lkB?O*6!;SnvmVm2{iB3DUo8~Url`!)x3 z+FU6#Tu4e3eG;a0+xu3CJ=Li#XmFmaej$AjnUD3rTg2cb7DJo$#9$S)sCy&33{z-& zm-J|54NA8a0f`1=RhaO$RX#fEQ?P0$FCL6a+|1STu_4I5^yDbbw1?mBig8&(VQ@3F zPNjNyAWHsRjE({QNRIAlg+O6%yRETi-YBeyj3S8!(m{#GyPeZA_bNBXr!$&&>mb}D~J>4_5bak*?D z?xP|xSx^nSqBKOOqzMvNW&cj91&MrbPzC#Oek>oX8gY0iz%)j&Y>8^wcA0@c@I*{@ zymbe9j%A)ecPd959|)+RjgHfF{XlvH(5TeG6wNd!ct?XagG(h7f;yS}nXjrYe$@Qx zGw9*>L5}Su$2LKY`VPmHINCf+OPp|lxNu&kt)U@u>?(&^(jyKUmTx14K4j zj!v;_s%qH1!!)UacQEXAr}t8{nsL?J!Z$sGVeeJ)bE$jQN+>kMv%so`ui7WJ_rfo( zl5M1$sye}|67G+QhdpN5Q`U!SaCYfJ08BT_cg!|J2o~`zwQ-CMOZ08?gl8Jfzf(8$ z;>Dv0+I}Dc@G5v~e(bFG-95%lo#P-3FGOD2zvcxMi-ctGN78mKgN`^f?CaM-h4E}Q z@Fb4Sr-_uy#5E?PMq)@wPG0Y3C13u^1h2OuWmqbFNKmBoGtZhJ;2g%NTQeK-9Cv>F z=Kbp@L&wvOVQ17J?5zZJ zq)E-yTjv&xWK{)pE)hJHY7XrD>s!Fu=hw923{KeSicSPl)!L#{vL6(r zTyUcFUB&UA(0NDNO?Z9BT+75&KcXbFSv?*g)@(eSGfEO zcL4O2B7}dD0A@YGin@M3a#i5|0D&ir4`2%l2}A5I2rh@%*$Ajve3i^}Z3fCsH{4Jb z-J%8j+|bM#2mBq0yR#!JpjVhRY`d9O5ER#@P636WteU*YUQbsRmM_tZ5z51U(Z4aa zhSm_`ZWh}pEUEoN6aWQbEd@xrbm5{~W2$2u z1>l{p)>TdGu_CM+TqqMIIo zXVRCye1$e6f7QIq(V5P_`my8hZ_I`ew@4Qv_>TNj2WoCt{&uPs^_(@x4)^XldzUAc zB^R|Ac08c#ldslIdepB+l+R8+KVZM{VGPZJkUp;TCrj=$GCS^O2fR9+@?X?B)F75r zH)Z|b))=~j%P`riT7BEsrD#v<%me`qR*fHa<72DQ5!^MPz}8hr{mU>8v*_=?YY$Jt zYE;iS%Wj}xsn7l)Fqk9%Wm#Av$5Z3{7kL8>WPC(w?muLXe^?6WM0sEp=)h(5|8O(@ z&2q>CqY(rBe~2Gi!TuxMl0E5XwNJw5nNQgk*(azMu+T^bz zIN1YS8AYbibyn0>BPGj8Hi1cehQkcxuPRC!K_Y@6527qDAm1;Hpa3W!j3@vK69zI~ zmKR7w@PqK^bMun@u;cWRmE+OU@%L14F2Mm*H5Ap=5rCiq^b;x|s=jM#!^OyIuR;O< z!VnC|g&ksImRJ}V0PWtNeDO`5BTRv(rW$TEe0P5RXq9z$5%U20Q|n*up`KyF9BcsO z9r6qk6#($l4LEPFmeFGv>C*t}fK(Agy|vWe(5h~Z;B~GVhmMX&Vvk${#370oLFfU5 zZFo8iyT1=OhPB&c%Y>!+K}>n#jacURlF$LDkLc(4^!Mk}o09gaj~(badjEt<$M!Nx zknHrjyU}t5OONs~Qiq}Z_%VkzR@5dvAG1wxu z`YMLGe)%loF7jLRYFuo{L+o7hr@tsHyS~Mvp%B=H<;6JX>4Ei=xRJDfcEndrPS`K1 zHybl5oE|S6ripd?AYJZuk@aH`8PTS>n(5Ms#gS+#V?f`?{+cbkKnUYHL>)p?T1_C~8+1{%`=~JXmJ{^staha0pPqzFxa} z3&ii{jRJ6S0-#qQJAxLmx5Yu*74Bya&nLl(Qgzm75m1l*^o|f;MYr2Di;q(!I3-|v*$_-{(OP=dn}>!Bi@kol zi#S*ebT+f48ibX;^3qyJP`IOSZGX76rr4=+d2tTie&T1mPy>AIrHwxQ2tl($^4p*T zM6LbIfn)*dZ-e(mqvy;cGITO8Jp;qu`XlL5O!)(EcmCeRlmPa~17h~4r3X6h17inL zTb=Q>&l2@lw?`=QhlvB0^(V3i%K}F4GqH!=1d+)@Z3+_Gr8or-+Qr48Qql*c4p6Cs z6F@*K@HZzk4MW}!6(+P0M^p@QCPW^Ca{RqXs7DSG5dtS@ArGevkR3pohjj|(3~m|f znFn|Z%M3RypqH-)K@#YnCsaoaf`9}e^842ShCvX!|EdEh@WhZj*fVaq>fUKe)q=ri-#-Y_=&NJ zwTR{rL?AYS(1aQGS@JUG#9f5mg?V`hd2@O81z`p3vI;_XafV6zWbrBFvdko&h>2mv zL!$f8`(~0jqi4ju;?0G@)B`nwOr^I|n+4I0HI!IIo<( zpQfBzoSK|nogSP@o!!jGG7w;bV8CDoV%%fcGQu!?8XB7|89$m%8CDs2_rC^(Crbp4 zXHsOA=UBv@p);X3(mD}1@j4+tc%h+0LPU~EQBP{5(58r}a;l=L%KfqalUZfAhG0!( zt!f=^jlSx+rn<_p`m{Ey<4QH=070T$*#jLzkl#zY^LS*Bay&9-BCubVIO%+SB^U z?knQU_pS7~^~nbU0(uD=1H}wE1;q%71@#L;7ZC@s06`HQ3cUiwlQarZ6$K837X2Ds zAZ#rBH9RST8(k!9BJw>lB@*sZ=tgNBy`k1|rw&6vT8UcpGGeujJ*X|*y}~{5)eMps zk}TXi+%|kC!7)J~0iAS5VqP3mqFAz7+$R|={yB*@*_Tv^u#hZ~WRbd&nu_v*#!L0N z8K*j{d{dzvu3g3h^bO*T^Nj#l+)?{3vrm zPkBfgNX1gc^ac9*W!ul;r-(9^QleSVMLJq)TIZ^3J&m)KQ=(hZM=(fjP^wVUNK{Fk ziT|PE*o;P^8loDk8h?FaJ+x`VIgaz4bB)udgSn%n!^~Oi$^Fs$spgdCZ1RlkycIJK zHVXD0HUxGJmIu}fCN&Br3J%i+3puJfdKN=2Ei6qqttpL2I$ByTBPQ)GGdPVU9oR|e zA@TTz283pS=33K`nuc16rnI`K3Qp5SYf-aPV@0!e-F)qEt*a5WA-d(NuCU3ezOw$q zpw>uFpYNDp&wgyLoH(+u*QgQs&-hIFgvGGNO8c0{gvbo(pvkHKZa^C_PYrdAK+Vf0 z`IfkC>*oCR^L6tzHi?rWsm1W%T;Y__xYEW$(n(-yh+6(iR%?Y@z)MtYg_-hWnqpgPxNT>XvN9XxGg*z>fwG`y)t?$~EUX|uc zM`SazY-#tXI20NjMsB9`%T+CWFts#P*J2%O@6pXzX8vRw@ufOluXy}C)KWcCVNron zM$+li4r!o|76TG zA9L1sM0ke0XI<=iK0du+U$ceSV(nbE6}wknv;JH)fUSpIik30-IFygqT2!sod+f%{ zXUCu=r-XFwyH#qnYf0VA?@V^a_U8KfT?h;WCAZYI47=_;kHfXbxWVJ%^_(|dUS2R> zdwz=F%n#a5UxUZ0;I}@LzifIGycV66e=d&bwr_`+InH9eAAVrvQgPc|tDW0nuJYOc z1iwcyNpfKGjX$u3FWuG};AjQ};%Dbbix%fbb-I<(&K6k#CqE zf$zaT8QmMbjJS+=kyVjx%XrGtdPjY>F(mWKFz9d(awsuT@oaFGvaRslaPu`IwAA&a z-G#p^t(oP|w)UEPpXoTNXK2Q#Z@*`JM89c0xvkycQlU{5R`yq3@HO}`{&aPfwEg*- z{9c*zyaaPScr3X!owPgHA=c{G(lRK5SeQ`(fK>Y(3lE@I37BUO;@^S~(Dh(z+oBeC zdjt&Fdqtr0`dzB!YkIx72E*ineYRUMk$@PBYnEDFvM-)haKxJ2#&6o2-9$mlS^HN)yW;9MtX#S8a1g!96c?)p=R2 zm;FrV%pSPAem?s$Qx9uNz?ws0LS6KzdiMOJygQ$5T@Rl=p68+Q7e>5CZOEp6$?#>! zrORPYlTS0w#7vvaPR_*AXzNP98sDa0I!&X0(IrZuryTTj_%i+2b|BTQ-#whxmdIpR zSM&Tx5h{#vEMa&eH429ejURlCO+pw6BTlGSh%rw!-8t7{6k#f*Z#RzBo7O!!)!B2} zA33$&N8Q%kR^QJ;b0c>Vpb%F568v>9`MB8wz`#+zvmZ+mBegE&AUQ3*GCnj`F(Kfn zbH4_49MKdZBuP3kLwQL_Y>(1b#!v}cnY&>B2W3us1#77%Ke6(nx>YY%({DX*xo(Vn zWOZX`aA}r$iFiUpze?E7mtp0@nmh2T2Lfv&*LOr{Tc5z`YPo zXmCPX0>e1IB9`LA0?~p_?5Zg{&eN>)B;{;R%3|Dx`{nZ;w#SO>(xDzDyI(_7T^V^T z`-SrP*=xcaQ%~`?$@mfc3}kMvHidis?*62d)$-6JHA`1Bkv$H%wo>I{Ia~L&JMpRM zNHuip4I2z|4C^$jpOwJ2i8X3>siWROfFQOTSAkDK;fH~cnTy(4A@Y_O9@(QXcerQ9 z^2Yk;?Wg?D2Rb#~vfdiZI}9njp6A!+^otuavEhx3=pb(vRwviDp`o+m{=on<*0b-# zW*^W~!68}uERY^~@27T#F5dV1;YRiiDwRZ~D<6no)wi{d)N65r?CRWF*2Y6Gdy_x8 zSVzI{dG$v|Q#dX;)&Q+vqsXrm%;B<06v}Gl;N~r-uV*fpKp3&~*+xCn3&ZbeSBM`v zF;Fw?v@|t(o9G@<9%$}NZy;}+uR3olAW)#Bpt%rlP)5O(A~3?H!c5PQR~JYRDB$}? zNFSuSQlf*cnVuHNXBz3u8gOf-98~QhZ^TepP%^jGCaM$?=>l&N5hW9mUpXIqmA@(s zmL-=>mP475m^qj;o2Qz$%|9&c&XmtJPxl`2&heS!Skl<4m>n5R8Sxk?7@JuOnJ*aR z8s+O>Z8hvr&1uZP=1T^i{c#(&s6M#CfkSCV!Ac3tcu!tvhry@dsyfg*?mD+zSDgK% zA|7_{++lBseYf9vp?V~JL%xgrclj0LJn2<##m9>0cIn&eqHjYH*W%F>9u;m1W{2H} zp@w8fv!hp{@g*Q6i=@0gZm;t{Lb($0e(gwCHXgX$&*ZXa-Du}|CmbDW?#a(j?<yT~kwo&*@?z12hcCD6sW6V=#{}vk2%j;!Aa;584ko1Nj<3 zGC2(?4`m_+71@VKjYbbYq3*oYxUhy|umhihigvZKkn%&CYV0$*4kM4Jk0~HGQY z5mTc5;-YExu^x>_^<{PJhVw@Lr3(%tj#oCOHaFZ-hp+Q!Tp15N9#xK#F7ft5Pm=G* zw+JAUz()|Y5N{}E@QNr>!9d~8$oVh}Ss1A*?mnk>##CHFZit*5M}s3XffFGY8QZJ7 z5bu*j%7EN3OX=1OebRF(K3A!qZ!zNy(N^(P#qwkTi(YM3TZxvOkI&oj;W$u9e%LnP zoWK`-NI@a$xWky2gM7hL&LwakL3tu$1lcg=A(vGPa zr+1H~m_ryj^dXE4jLi%mjdS%)^&t&+_0e^y_U!hI4n2F6C(rxwhoD`xuQj)&&}|SC z1MQn#_O)X)uPBqqQpkMdh@@u}#e_0(*NNjPEGb4wS}A^obJeS5%H>&=33Ys;EK=1P zU!f&YDXFe8vdOlE+d5yJU@tIUQ6n-4B}AsK$70kO)acc3)|=LoSE9J?IKWw0I(6We zImDz)_AIY6_BtL%)}~{7Q(rz~ zf!O&$Ykh4Apbi6A>i}x%Zs7Z=dVw~cBG}HJ@&>nJTzfUXoQxEuX%~6-I4YA&dHaQGgDH%eDU75cX z3^(%cNj47k%2Cf;F|)){8?KKI@gBw(XU%BcHBXhAJSnSxze}5>d%rb0@uJF`tceUu z1uf6BR5i!e{#riMOKmH6<0`Lj;HVw0Prlo}4O(y=4PBj)iZ$-Mc|PUEypFy|JQahZ z?#{x+!I<$Qer@^Ox_Rj+T*J?aQIcJi&G}(xqhUd2_wv2I`}`z&N8T_Sr{k1*o-C@> z-J$Mz@Yd7dXqjly{17@DO~<$5yYgeLVW<+RVyUVAS$IwUt~ASTv+ee^?Dh+?7BV8X zJs26;{Pj|DVA_A2I6b|i*xT)!`~LO#azj&2b5p&j)xGf@`xqa;&B03$hz4*vUtMhn z1fUNMusXG~u35XezTO2uhD{961bXHBvc_Rm20*U0E-IJlNBVQ}lKKPwY(3%EOq7-K zcb|}Dp{(w#E+frpWM@NbU~Fe-LhEj0|98Cr0Ko0e`B$|uaW)`ux3RW$;&kUB`d0+! zU;Q659TCC5LY%F5h}31|354t%O$br-T!j`g>wI6<&?K@ zH?dY1wy-g=b^4owmzjZ{`(N?@pXdKF{uff?|B#IA{|)>v$A5s_bpPD{zv}sSv;JlM z+bv!wZo2>NJTFu#JIWvc06K((uz<2V;FXS@Iks90pKlR?&@-U`6jG5q9ffcSbc%T% z>!Z-s%02a>AgOkk3_i8&J?WO9VQZZFVbIF9prsw5%eJ6lFF1{2o(L3)dH@I&K9pj= z2qlU6y?q@Nq_`9iu{b{v`0>|uHl~LubKy@+;w21w2H#7L*Y!<~*G#+Lj7;qB$jeF5 zzW<1RD#B~4PJvZoGh*F;WEWyJWCRTa8}MHepd-@9%G?Q6E3^4OAXerUm{o{Xh^A=% zyBz+3ZX%VOW|@JR*9PL-D&c`GYRDI<6qb6}Xj0~9@P9b0KqQ;6P6=n{ea~M!%U+s6 zCpJb#uxiwvq$s5FSG1Ym(sSQ;9OHki6DWVVG{Z(il0R3XBLG$-EpGSvSM?}TTh#yA zO!d_$ew@dV&XaoEvKR6Q6+!hiFtl@mS5kfz#|&F$oybort5a3n`GL< z@UrR(9Wv2Pg8T54Cu@ZARotdD)kq{Fhg10am9192qeAZM8Ik}m(_iG-#sw$4aBrsD zJ_gJS1=pnODa8>1snaP&mL?5RLPE_Tbbfh+38gokd2IDuY)>jJ)yix$Z#~koc$Kd$ zG&4~9G$%3~KBfnmkE>c)n9@^-Zn0md&2Z93j{_GOIXsV1dtXRnapmnlymH%nCUv2h zZ!O*2IvbqXxJyG|GSq!!L?@Yg!Ap9iTgSSFOFf}zoK)0Tj6bTPQ$@zBSI zk!+%<_D#!uS+1SxgcKE8^jy68QU_gugLSScJ6mWs1Y>t3#^^Jtdk+V@$7`E2&$#pO zS~s2qD-l0^qOcmNA$r^e58HF^jiSp&NM2O*)*hy8-qCoG98sLV7G+^vKz-Dp#mKtB zVFA^^h`MvGNF!YH*qMKb&49v1i_MZ!^GQH<)Yht&^7=vhEaeb{Y07RR*M!3o&ebp! z^HC8YE|s78^6t9wP(m|`!z8gDA(tPcw8a!6$CwaHv0F9IZ`FP_@TEJ+@-C+o0yg3X z^=eAJTgS|t4lS_lU{;IT;jfA=(U)no{rkqdB2rjSP!YkOz&_1)e!Ubhsln{L5oK)s z(zCcgjh(B!eXrPKoZVC-H>jaxIOBzjW1~$etF9T`=Fo;UvS92u@f`~_;TCJ0toX4u zv)D2o4kH%0RLLsiMrPmFK$7vkjBue@%ct|gqY}+9AYD05%qH@zCh*r$fwb66%PzAD zht0d`>`@1W5V0iHfq=zVyi2q6ig}o1(t9pD7%VRqp0k#8$JO-3ezXZS7t%C7?h?Ix z!Ql}o=kpoH8=ns7i*WMC{pRzO%7cft%yCES0L|27E<}9q35H27P_WWdQBn}sZw-$lWFmUT^)Pq+99p_o%Sb_wOSX7TMB{j}H`mTcNDIXe0K zo`z$8kFR*Aw54`d30c_Un2kq!|CIV)49~rcU|0*;JBG5}s85i&nPj?!dlH%*RaMY? z8~5}@KTF)OmQ;_*d8c}2bE3YS&wmF+!|TI42cuXqZ|{*g3gDo<1BaWfMoHdPKZ-XJ zZBf4RX?clac?@{ayI!$>;4Tb8ph#w8cXu>0yv3k3PdEoZ6fm$H162KJmxIcy?dW2) z)y$Vqi1uE&VXvqZAU)jxFVaRPH|LTVo8GY#;G`3N{23;por-IyK6{Y6 z8wTR^1~_ud-t~r&$Kt>LZRA)_7#r4O_L)Z{N}(G&5(^tl%bn6G=Oq z7hkp#-g^_rL7NY;IVE*53i*A~3pgwh`f}Mx2uzE$H(dTR>-!)YjqeB(ZSc+-aib*nSkWKqB>>xvuMP~fb#4aBgjykclqCUa?MBU|%;S8Ro&cF z$TNti6qoy>rum0#`JrepcgG;zM9kRB?QoW^liL!Ti9NbNU>=woYP%Re9Ppf19(&Q1 zYOLDvKan{1Cf8p^*jRLala6V}-Z=-r=NWHw{q}p5_ahWp*lAMI_B0IMh+M))A#d&e zlOgcXW{DM|SYu^phM57($R+L37`G6K~kM-Gd)I+ z1*;OcD2D83;A;tvp0tsW(0%K6t1hX8gPW?O#b+q|%r24p6JqkmDX7FIp&JJDIXO%B z!|qfL%*2BiIKU=$yS)5b4YS@^MF$6`5IWMN|^ccDG5f;mCd-W`8ggf`6$6(i_y|!$|gu-BzY8nOB zjKR^+Wy%b|plX9%6*Su1xEYZ+U6wXBrrloqpE>SHrF|{dS?nUhXt%Nj6ndXStYHL9 z2grFYALhFNt*@ewr zWh({@>$@J4$|K6VOJv8AyuF08t+cjbLz*4VbRyE#Mu2In?iFG4be%wAFpC_YH1RL) z0WG`%FENpKgiwg*qfImG*(!N3~-I<^m=Q0bg}T!ovwi8B*Z4A{5J=C!oVAO~C}WH|3pa-<~^NJRX6x--9uEhz#lL zZVG*>v+#M<=y+FfhZNW2+ z2!Q%GFADDyNU$>c`7g%=Ft8WS7@F_}z}ZrY`Hl&XvXb#=qGGQ}_*>%o0zMJm7#*rv zj^N}5cRck9BxI9^m<4@Y*Ou*%C_;KL#WXk~lD<5{Yy=3uXc>Fe#@sNJh~;oe1kcbW z5KvOZCFY)uWX9aYiCJciNl!LwJzAA0lWpnr>oYK2rlRdoP7nPPBZiThJaQZ}iQdFQ z%lwDk_uzw2yjSv^<4P6dede~;RS%iVN#+;m>iJ2jVlqOAr7x?P#rnqG&pv%*( znA~$lJkzM<+cylj=@#OUM_ze<0XIL5qJ!VA(8jmrPRxky7`SQavWcJ5RcVp<4YVXb z2(c6zt_ZMJKq$chh6i~XFxV|dByLWH1K8eOn4^i;g$h75ak~SB#BWp--aap)Q;mk@6KwrutK^ zYao6_Q_Ksk;au>8#m+i+aXAmg6i8&Ih|o(T4@zw6 z^TauanY9I#oPJ=n=ZUkeK-%(^cUI6S|S_IF46D2tP(1Qt)I|uYaZt@xHfNGKbh#(l<&+m3yK| zeB3Vl7pfe)ACGi*;TYSxSiS*{k-rP#sFHKrya|-2&N9}!7$PcQaIPP9FXfhu{G(+; zK`Bqtn`LCtG{jF%TOcf8Z74$|oY1RKnD$8oN?(ER{Q*Kh=1%*Zz?b^e<<(XG&|vn8 z^qMf;=v&~6xMxJs6^><8LhXnGKDz4(ds#!fF!7+Trn~=H{#RZQ=QX>Hh^A*XI&^V2 zN{`ACQpq8_f~4W#z^y%AcBAyFW(4RayGSo)VPdN=rL}fZe5{%Iccq8qcS_NmzMzm> zsB%CoE6|~r(vD9B1)N;n)kX9VQW{XD>B1&|7@D2FbtLPFWMH&w@5oELf0aBvrFf&6 zG!?BM6yR}A%dg&X8&v#ZE;fmUbt-E(4Uw2RuI7j>ACT4E%s9GnX6$B)jB-bGY;tWW z^*Q0}TA>^}t6&k6YC)hZOf1}%ThV3btFL1}(-EJ9+RjsQoW3z+Tu$0c>Q(5KLX^>Q z+`Sbs^J9VZmV#4!wz~Gi37~davWrJPT$75=oIT=Y|5`LLAIUchxtKf#BViA-aLkcC zz{{B;Yz_||*fXv_n3VYHKL(3q0q{{^(lT@Xc5FxQx%5CkJiUh!>)iL|Ky~+0Jt zm^dZ|_*+8k+T4Q58^E zbxDKPORKh4YR4HOH=9?97a8!a|CA>g2|*aV7DmxprlZiZ)gld=e<@yVfNT(ART5(u zfN~Yirn_j$R)>qtN#R0nRWfVfL7IcY07p^9V7O}4GaG1lic1JJeuehg?d5+6Uxzoj1hDUe*=eJYoQbTKk*_YyY(S$~^J$lrH3T-I1(d=yllBzc2a~maQzmZU z$OMI2&57oH`|?Jf6tnDRFOX>6BxX5`WP12{aQ?K$(Ws%S=QJ2l63(8$Aog^Hfyb5N zG?a8`$^HjNJX@YOdD{&92nyS=2qt>GxWH0lJGJbV^j=dRQ5D*le5)X)+&{B@Vf1)2 zRpJc3Rd6wq{sBw69ecUYLfKv(P)3pwI+5c20p(a3)K+i(s*~Wacb*6O;xqaC;UNB6 zPlAJuOu>pzE> zV`sk=9W|xXr|;=<(Ij~2ip|{$u`J)CZfg$1jQj#iPq($d)*;T0|L~QB(xuN`SB|$i zVRH*VtGJ$I$z)J8OH=OdD084bpI~uDNR)B;P4iHuL!{4Q;|(GMF9jyDxjwAwETa~S z%DCD;&}wgxsyT~IF%kZ-6q>EpaTU87KMYh|fu2KU4eb986*=665vfDH>@BmY+!q^! zsEVG~$V0%$hVXor zpYJwpB(rX+ldOZF|6^4oYr64koxQMwYcWV2qgLw*B>G`lMxpj+dAiJ-c|T@LYTX^h z6-36*H-4ybbw!0j{_;iwE0b$2d+WF8w|b}5B)DC%-!VmE5Q;N0Q}O2C|Jo7CW$wb5 zf!fva4s6G2nktd(0k?wkckHhqP>P$&A``K>#{_#`u?I13Wsj`Z!$|#=vN}PpK%{QLCe%d9`JV2n%wIAW5UPJ%yeI~F=H%d#Mk2!ypj|Zs; ze#wWO@v;U4227Jywt{(0vC0pmK(a;=Yi!Y>`#k|2>R^?W)FYoWU9|o(R1kva`Cb1H z6N8Q82R+CDwYHxxDwcyv#g#24=2|F0R~~DSe+#Ez-Y@+|VoO)k|4fhnPJe-cTJjkH l4EfgoPK^H%XY_y{a9OOGivu;|hkrH{5+bs~HG=wq{||w5IMDzA literal 0 HcmV?d00001