From 798b920b033d65c76aa51bf21a74c02c95587831 Mon Sep 17 00:00:00 2001 From: unknown <644255997@qq.com> Date: Thu, 1 Apr 2021 21:33:45 +0800 Subject: [PATCH 1/7] [submission] assignment-1 of 18307130341 --- assignment-1/submission/18307130341/README.md | 102 ++++++++++++++++ .../submission/18307130341/img/Fig4.png | Bin 0 -> 43325 bytes .../submission/18307130341/img/Fig5.png | Bin 0 -> 39004 bytes .../submission/18307130341/img/k_acc.png | Bin 0 -> 24577 bytes .../submission/18307130341/img/test_data.png | Bin 0 -> 24650 bytes .../submission/18307130341/img/train_data.png | Bin 0 -> 50015 bytes assignment-1/submission/18307130341/source.py | 112 ++++++++++++++++++ 7 files changed, 214 insertions(+) create mode 100644 assignment-1/submission/18307130341/README.md create mode 100644 assignment-1/submission/18307130341/img/Fig4.png create mode 100644 assignment-1/submission/18307130341/img/Fig5.png create mode 100644 assignment-1/submission/18307130341/img/k_acc.png create mode 100644 assignment-1/submission/18307130341/img/test_data.png create mode 100644 assignment-1/submission/18307130341/img/train_data.png create mode 100644 assignment-1/submission/18307130341/source.py diff --git a/assignment-1/submission/18307130341/README.md b/assignment-1/submission/18307130341/README.md new file mode 100644 index 0000000..e2d7dbd --- /dev/null +++ b/assignment-1/submission/18307130341/README.md @@ -0,0 +1,102 @@ +# 实验报告:ASS1-KNN分类器 + +18307130341 黄韵澄 + +[toc] + +### 1.1 实验概述 + + 本实验使用k近邻方法(KNN),实现了对二维带标签点集的分类。 + + 在**1.2**中生成了3组符合高斯分布的二维点集,并打上0~2共3种标签。初始数据集被划分为训练数据(train_data,80%)和测试数据(test_data,20%),并将训练数据放进KNN模型中进行训练。 + + **1.3**中是对KNN模型的实现部分,包括初始化、模型训练、预测分类三个部分。 + + **1.4**中对KNN模型进行测试和实验探究。 + + **1.5**中完成实验的自动测试部分。 + +### 1.2 数据集生成 + + 数据集的生成在函数`data_generate`中实现。每种标签各生成了`num=200`个点集,通过设置其均值`mean`和协方差`cov`来生成符合高斯分布的二维数据集。生成数据集的参数如下: +$$ +\mu_0 = [6, 4],\ \Sigma_0 = \begin{bmatrix}35&4\\4&11\\\end{bmatrix}\\ +\mu_1 = [11, 14],\ \Sigma_1 = \begin{bmatrix}21&6\\6&24 \\\end{bmatrix}\\ +\mu_2 = [22, 6],\ \Sigma_2 = \begin{bmatrix}25&5\\5&10\\\end{bmatrix}\\ +$$ + 生成的数据集组成`data`,使用`shuffle`函数将其打乱,取前80%作为`train_data`,后20%作为`test_data`。 + + 使用`matplotlib`绘图,测试集和训练集散点图如下: + + + +
lQFQs>O zy8nG*1%^DKrqmY)#oxesInx+q;B3}53HhRb`xkM|-$efS-A_mjX=d)1hn>NG?&2d0 zx>j1~OTy>ba(3#mKL@5&zrt1uK2ma+Ae(Tlu%*)te0z9YF0`Gln;oV;kcoeSALdlB9eslLA;; YyvQb=RJ8Z)EDf-=Dar6+1CkClUt3fB#yL zHDjVka|@SUe^XXsN7Q>s9#<15R)B^C!N9;E wVT!)c2E25MNRFD*oi; zKN=UI>|5-Ek!z_q0>pHr7Tm2TXZ4vUcpoyK|q1r2~ww6%%D!osqh0d1D-g0)=@I?2GuwWn5w4OEK$!Q8SY zZ6vC^r8oE_l>2Q8QL_FxZY<8D%lwg}k>^K6p$0G3!IDTcd8KE$*1NsC O$|iJ@JyyC>rYJI>6^?WNyeDKIUoxpxm~ KYawCKQ1K%=>8OLYrjz{zEJeh*Z#(iKXq<`0`*5>$Q|k=C *0l>6-0 z@Tz{AEzweLQ^{sv(+-X>qw9~%-MQF?`C`6%F~kD%r3rO+g5uTz!+zAd(a5DH*A;2B zf%%kYOW4D$XgQo+{$OfKX-eS%>OHV7=2CB~3C##L8ezU4$!hLM*DcM}$JX}G*nMtA z8g&P; )dasyylJ7h!gSNfQ2oav2xxo54RgpeSmguqTSDrNv94S5Emrw`+!H& zL-(fgAD;C!G=2a@Z|O(v&}=Hiw4 <`1=Nlf)BIoLF(2MtTRa*Ud!=h%tJQv(Gh8)HM=>ua&m`M@FMRFF zd#o;8Uo~c@IZ*)_*5`Y`q<)uaL&wG0DRKKl<&K)4l)Kx*n~; zkDeZXh|!Tq3DSLLtO#wn>iHwTS8FH&^E!dt>ui!zTe&g^cB?#TW1m*Tq&J__{wlUu z`PtJ$H7{PtnH_X^+Wzu{^>BUk$)QsCWgdrCxLlfLZT>d((V$%Vi3eLdqSVJ^^e1e0 zB KgB9d zuS5a|lx#4WC)vEuj{cn#5*I_U;!1`a-!e}#9OwiiNsERA3 N zcg9{6nVk>J6$$}o2FkR0n ooc%?79*0d aQ21Pkc9@TvRVSYugVZsh{Bxpnc+%(;#|5m|u?}j}L-)S3^Y?Kia|&XFR`4j$ zkSZW;p1BNO2>TkZja`YrHAxEm(*@bCx`C$9JcASOo#BHxugRj(#318cP%=ggecsQ0 ztC=wjEX+E4wfR7ik*OzjuachlXW2@vK(<_^REkUvFv>!Dt~mWwW BVa5O@hm@GJE4ABFbUP4NM+8a5K;`>?16E!A!m)=>G*-Wz8Dpl+_?V;iK~Txf<5& zhczHYZ~!JoP-KLua>%ZWki#`Dp%%yFbzc;Zub aL1j#Wt9$+3R$&iOlRIxldK z{^c)2;vLsp!(Qt4o#riJCn(H|{Q5C7P^B&u5tjrb0`3N_;GWsquJ0%)Kj-k#57G8q zaV#mYJ6QOh$byp^E|3%AN%W?o#_`dl2>O6 zzkyf!s1rPwmn%FXZfrO9iU BKq5(CngL&K5p2`BKrOo3w_f-gKtUFsS)=$YW@T4$77aA2|} zTcIlisoZb@iyQskBN=4-^jOW=s>Q^D`4T>j+BDrMw3^XIXVqrYvow?>#M98RVUzDV z!aB3{==B)Q7+Qa;zLQVM(mJsfKfMVQl~(6~;&}n(^`3y;q!hBRY}o@UQ()Zc;BF7$ z`zUse$Fo_Cj?e9(^7!NH@T7Eb7_~&Lxdi<_@T+&i<242?3r>8Uffn8N6HN6qlGgYx zT*OREYQj1|FV-`)OY#v`s|=8qR5eYih)VQi^a>l9iM+1^3Ugry#Sex5e(mLr(3xZC z?1#>sX=A1x&haXV`M9jbzY+YbZ+J&q?H2n2e}cx;3Tn9WTDx4D7>fDeoL3Qu6cfCj zy|CEZDgY%qs4mEvF )BQfxEwsuylsT~dz4~+M(*3KYY z6Eb49)eq>vl}i{5Jd1?aRPQTjV_|j%#^mhoxT@(-n=! 6M*j)bM!Nb0G)SBVm*i@bA!#FR zNGHyfR^*nx%iS=w+~76+*NC|^SP)6;j#NPiOhtb84|`;z>%IDVm7_C|4u{dEwO{@V zmZ`Pf&|mB0o-IlTqF#&sS}kL36p;@SplNV)J?!*{jT8S_pw`yQAUD58zy{wsYZjs4 zZhx~fE&?fY9_G7tjK9LPiKak#E6UPyX-yEIGji Yi7BC=n4;} z`Y(r&W&3px$T|L&6z_5i+4sT`DhqX;*TT;3P%_4cGL#0)EP>$;Ee@Axh~UJsHLK6$ zSodp)AElZG7Y<-V*etZ0pNTT(Dm#ib-W`hBT#|L%=YQg?4Wt7xzDziL!VCQPGN_d> zS5Z=lVnUoIPVevSM}N8(5Tcm6H_Y*|l`MkB$oAx!kaJB4{;|kpLsLQ!mJ?f+q8%W@ zx?z5N`)Zj3*j1aM>+YyIhx$F~ti@*Drop TQBTZfvF8{k5bK_V?=h{iXxrV&fo^Q#So Z`htpj_&QS-0nQ~w=4Fkw8fkoyk|$|CY;E6us??1J zgxQ$t-r ^ar+Ih0A;P<-AF7piJrZtkh3fUg76X z6Pkcoi=+SaKNUw`MQ1tO?HXpLw`<>d@!B*pCo$D2!W*Hx?gBz-Mho^h6s9Ns({}Fd zytIO&w5jy*EJ?G;pAjFE3!mJmp!BtdYM<;4x$ GCQe{t^&a~LqCQr^9(XF0gM~>{-^F;8L3i`X*?!c`{3P>2INJ) z&ezW`McDshCxx;1%yV;qG_h~erT={l+}5S;T5a)VaUL0qhrmE)__SYHVk;-W;4~&d z*Dv<^=YiOV|Gl<8`*EhaqWLOQ>RAJm0bfxQeJ(QLACx|@wd$L{vU)ueR}F80J{(Ah z@BSkQxp|*UJE2%x66bkLdh=|$Oe3P-<0)|Gmy6)peto&I+m!9 cn~`{ea$ZRq@;qd|_0r}j*?08eh3VxV(ON_JrDA@|tSD2G zbU%@Dzz5Ect;(G$(v;d0EcH1snTwIz01G_0P&RW>u~UsCfTmV6TI`*{rI})R0D(K^ z;>D~ZofZPG?0N+Ik4^rPJ6oO`E6kvHgElC^5iJY({kA3rBRYWMLhJ%&S;xb!;|}1x zzF)J$Uc=`P@`DOk7?;!#hEMDOaXxKJPg;@v)5XE3w(BCRGzZ|X%C+;XYefI-Ad=^V zBH*3O(JH*cg%CDErb-a})vI)i1Ylz?b`TK#vO9}xI8y}^`BtGYkB{ttWUV9V1yfgw zCyrh1!{9>(toK>KExCMiQQcEw%n<0xm5a=45#)@>N#<{C9@UWtneqgc*p>HWP~aCL zO0N&s%%DAk3}=h9iq!I{h`1&O)g}(J{z~EulA8LNU-1u3sx;`mZCS^kj^+atA1K2c z32X )^3@5S!d7rWPo(Vd3#t>L+d_AE;u{MvNwiEqpuM4!Y>e|QT zVZN7grqX8m5}cN-nwVb0BfjA9xu)0tEIe)#OAt 0oA8HQ`XpN!{CW#@TS84h~ r~TgXwUY!!an5jA7>QFC?bOfK;u|7>ZtkwO`aahj z+>%OGUC6C{!Ej{J%gtpt{|trvDz4#_B$MlL^4jc# E>o_=va$EJu>rh)2 z&D}oN&sgVZD}i109fSxz&y%Hp@ZW8q?laPyU_ E6ZPpZ>qMf`MliAR}a|pPp&?*%t^L$%zXt%BxN4K%BkyWHN@tG6M8T<`CDQ1qu z^nm6E+|1vmEDm7|C(mo-dC^_LJd@83vx8a%Hl?*fv+~n&I{IA>!jYe}Ryl^^xTXU* zIJK&?5I(J+c}B;j=J0pVm2J XLwgJZra(WPSOGKo z`wD#J)% _m5lvg2NY~u2}dW$`Gy?9}h&Q8cnRYA6~G{T?(Yu}7qS?^Cp^ECi7 z<~&}VLrh?SElTo#X;|YF-Bo-Vb>&vS!qUfE?ABi4ZaBe+*-}()bZxR#{uFgP(%sBY zdwH2G?Y33J7?h|s8uNKdH=1Rq=SJd1Z-g<)<~ra{o-}xa?4w{pmL4ncp9Qq#yjFIW z3lev;d+*n7 -cVq8Q;oAA zfF>`x0FAhswEf}TzQVe&2^h8qBujgChP(9==4&LV2c)FzLe{&_P^IM5Vj_3`H8Eu{ zb}#`Jf!8uyC<_JSP$lM%^Z^cBzU|zd!j&@9k;~C7=UqPq#+y=`(jIC9p=^pZ>135o zooKB$_FhKdESn>pei0z*;w;a9?9sHpQ^IS6OY#U`-n*`cD9=~YD<-Tu7XP~oKjL=* zvZs?z0=@NrQCeJc8w<(2+9GYYSs|pqOI~&{vxH3mN|1Hi+m(Q3px6`rji#<)8u=3j zmIF+~Q-u>~*F5YCi_n5|rrFGI|G4Nls#!E!gDDY%Jh}K;m2#Qc;o@`h`>7)GNV7K$ zrd>F%h^@i(w6@{;*6J*2>KUhcn8p&wXr~c?5b^UZ=jb1~IO%^`a$h=tPvf4SoYc6F zFg(|toP2&>i~w2gvr}3eTO6hF{P)oZ>$u`XfGMUTU(#G91X@c1l~&Lp%Ty722Q92_ z=ui)M01bIY@eJebAxMkM5AzXDnWK{vK0(GSb*$>Uer@+YnJ-7Ra9s`Sv$f{xx0Wmb z_J1EeVa 0aYVwzJ2cfnzhsW!{)m|>n&-;L|c3QF_9rNe@DzyL>-6HRC zL%2Uh;(iq0l%U@hZiU+b_fMxSGNW@$vX4XWd0|NO<2j>^_P4Mf#aHjyqb(mFeE6RJ zsor@?xPoPc#iS|3G _r39)L7|qa@jR9^S*c8E z3;s_{uU{wzJkI|E2KSlv<-`UGE2s|AXRUa){FOTwiSkxIO32anK{jF|yKo~lSOHO8 z*m@bHvu+@) sR`l#DaebnC$p^W?_-KjcC^DCG?dN~RJ0w_KfHzkoY#Sy=WiW3f?RI+>D-b%JF zZFOB9e^D**lDLgGID8Tpy*=oE*7M55M=SnTaoeYt>|OEYh8sBvXS2p#+c`>b-ciY= zQ17?6;If%LZAZQC8`Id={`UeF;o-ll{**F6fcp|L@tjt`&S@#W=}ScRP&mv&Agyxh zG~qKk28dDN)yF ckjpPG?9MXx;&y6cNTjJq9=LdwOp!a@Ihs$!RxFCL2I4lUi z@cHJO_ZAe{lk*;<^{ggWWiy(W-BhaT8vDl@xOzp$tFw^+A!(nLGjF=usX1-^qregw zJ!}}>RND*wswgl)_FJw;O^PM;dPr}9Kou6Sb??v+9BG|>?kP?$8}cO;8Q;6TMF0G7 z&7J+9fMLho{+Q$?zjTq&WfpNfnW(bYOZpt#W_)Hz87kKC3P}_E!I_~{9Gn@wLgh^p z-e0sz5n<*v_Q21WNZ%F@*zdYW%^X^{WY*u~S~iLWuKKnN3pF&GWz9}8c;Cg?+ikVV zoFqm96DBe7^UO6exrGQsCvo*(GnA@fCu1Vrl#|ml!k$>h7*LJlvE=gGpNj6vnwYd& zYjPDL*k=<_=74zJTT+p8S4k<&2lk7Hp>UwJ=;|MsKN{;;w7=Yu*^dg}_uU#a6PJ#C zClf$5<+>TWi*RAIvhGdp)$^4k)Ne%INE&l(yIJ>UnFcmSdo|r~`S7+FV +qrrTUW6J#L-MqInmfnZqZk*2uDgt^ZjY? zfuONoAt24O*fpReMcsi>T>2B9>j=sBiDE6n>Z;g=jK#1^ykigDM;NFG?FfTN-INLE zU<1b_l1aa0ex&TbB01PDS_(26A$yp1#DrrxB{=|p+SV?O&YByTgIyJ}+%MdFi^AZw zp2wP2=CSJZ@C!|&UNv)dY?Eo}U<(_HZ9NN=<<1_m+6e^IX($0NeC>CXosw|j2PL)N z1=GF122zBe?nBZAO=NmVxH^P!QC&*$0%q;egKSK#v5gX!z!lM5J+Vv@nQK7ZCIXf| z`Zy8#1AhRm#r5qP9&%GeVv!B >?52Ut9gaU^eVG6rWCO zC>E~V?3HKquIUE?!jRz#!cNRim`Loc#!z*Ra70t7gz1UVLCe}>lu>z=Ltxt^>JN+U z50epbwcklPBpEx@_9)D?Z^ZA21vm`+wMx4MbgCFG6CJv>@VVW~xpi_51tIJNtbguL zR(dlO$}^MlTdCPp-w``o2}_f}dbRr60mKc02ASL2jOTsJIHTA@(bZ=pZVYaQ;SZN) zHA4DW_%=Gfy+mof2qUNh^@&>T3y$6pFO4v>@8oVta#My&s(+#3{9M@wie@0qPGJ<} z&{hAhVOK{woT7IiP_!Nuk|pG-3s16PC|ls9c9NL(*2=GbD992)cwOH|@SCuLnE$e@ zBntWvaoS^K-Md}P3#WG~{in}$Hx4gE|G|<9<{K-2uUS_9($#}L^fPp@M&2PT{^rSQ zbpjCN{G4^Sz7m`UsT;!a%gIyTiAJ&-VH|{MQHwu@JPJ<-kkbv*L%jpeHu`da&5oEq z;DCLO;Eplc&t1^xOL{y4g4Zp5W@cu$Kyl63sWQGHemDUf#quNFM $zgIC4lajt4${yM#uD_eOl@F GlD(xKOnJRB{I)uFTm_D*!&P0Kz>JlR=1FRO|F)?y>D+gmjxbe3ai^!}u95 zYdaCZN?Pqz4&N58cw0eRYJ{e_rf;PN_9D8f(>QY6jPAsTpB8jqZ_tB_@AR1`)MWwP z5ZFB#j7}6#T;4`ZU_dG${|v~qdsbhb-GnZNIRW`A#c|8Um-wV46JWo$jG|&x=i9I1 z=fw?|+#J_uR#c?Lxl#6TeBGfGWM4S|UB4H($&s%DQWxuMzIkI8cwNN+G4nfU`OL^z zaF)XMEh3wzUc>SKszWLG4|RS#NhxGE2!Mu%ZR;gpczVdp?xwfxApiAK+{l2)kISvL z&^Wi-PuI={xx9qm8+_-jZ?kmQJxO258}rHB0)fktQ8Jy%P4zwXJG>A u4H{BhZkZuGCK?y~=k?!u6knWBRNVjy~$vNkL?;UsC2L?RwFxOf$ zzVBBPRNSn&K`Z|})#9G2pQlJ9O(P9ZnUc53FXmDFx(-8uOhTrIxOqgF(Ne2DSz9*| z;|&n?xp~;z@H_-XZ?4dMUJ;s^8B2b;I)5D&q|QY#*_3gZu+3qB2;M^~U3}^yi)q5N z+;L~ezn~WX&b2ec0Vb2r;V+EM&aEmr{O-Ivg**@MZiT*jnIx}sz`{JTHm{blEWg^Q zitm F%}ess!fEl_a1)Y?%*R+^)0nX6VMQun>%kT)dmuGnRr76+@ ~@VO zw*>xrbef+Z!F=ae@81VP<_ pmMU?OBzFlHu5tH5@XJ6-C%$3inLN|NE*_tySyl2t*02E1Ks#`$FDH%h*Co z8n`wR7UiFNn2aXf8p~HZd5&ORsz zU<>ZqMYkV_8`?C!n`z_<6j@)8Im+e!p&9TQT}rX-`@XFA4XThn4p{vT-9{Gi-W#Li z%{p$&l+9j>twi-!^#~%v9|qf>zPD?OUowGMMp`j}Lbhr2guUUyauJRbWr0$fuZ>sj z2$M`BL4R&{_ZPZI(&Z|MZMf`2ZPTzv*(M$TA07Rnt$2YcgyG)3={flLTBUzb9_N5X z9N}y$IeBD9@mG|uxdt Go;SY%NOxar&3Ytu{AAGUODq{RE<_lDKcW zm(gPMUkv9g`a#AU1y-VdwcWeRDCJe)j3Bh__q9=7lLs!ss@rf%AtFry0QZ#>G&goP zX$cS}N-ffVWPNeme3?(1I2+BVyAlHCrnHw~2WmXDA)mo!M+>iUwHF|rI}6Ov6qxYs zt(6+yb_h1*wb8LT?j?$ZS0C!1uo&%B3tshXK0NbW$Zhdtv|gJN_oPJ?v2SKzfl~Dh zZHiCPnn5(x)Q};0`T6f09XIV;xwyCxWINi>S$6g?+o9hOB6@MuhfcQxQ=~eg13p z{JDwRgETU^<7;h%WUY4D%~+`pl2J>T@%zZ`uwm$${h~f*y-;yE=@^qn+c8LS_$nB) ze}|649ej>3aOUYaLPAQ+NJonX&Mk)^2a~6ivqw+Fx6ZqEFLjxhYKSYLixKZ(A)klP zA>a1DIkbIZpqG1>wkJHJ)ruEs=l+& #%w*P r@wwEJS~1CcYF3xty!nD_Z_C z-QpvE!KI (LS!TseT*_;?<$wLpYwIATE8XJ2k`*JQVNoZ@lANkvnvV z!#u2ZB`3+Qqk39D+^92nWhCRhW|KRI7sM5}^JYD3CZ%LLm88p#Z zhSdQZSG-^B?s`($5t*^s(?A8|Q=}Fc`3QMLaY`MGw )7*uK%iE;pRLPWEpK;ZOC-A({B@I8k6n+=-i~%)W&}J7 zxwY6Mhc9^D* BDp0WgH0(WRAN?=rGZK|Ol}XH6UBR0jXt~lg!}k&HoF} 2!+>72L-EAo9U+P$WLDrYQkP<1cS~BfnlsQOFUZ z!(Vb#sb$r_jxHqipQcOye9Fid5{MnOo|xy7eU1UT`;y|$zjORWBAW_(42)eZ`~8lG zk>PKL_b@T6r)(%qf&~V@8Bm-s37$-H8u3UTSZ|c1goEPFMDCEo-MKR>=Nx&7dyo6H zZ!3r-O&g{HO^H@qgXhh?2T!MV^{Yis>4N1*1qd%}9S+JHKebGz{PMdAnz~ zi9NILnG%%R4g&W0q~y2M?Odla3% +v;qc z>Ya5o3Y-FkgLn?_;PtO5=0D$d;UkIe{L@vCS}+~od#&(gddEn0dh!DQtr`By;&N>v zn^y=d2@<_ZNgT{$L$8u!dH7FKe*V1Dg8hJ>&A+SsEkHh9E8nHZFr10(t13sXzzau# zidgS!$KE|P t>FP{{?(E{m21)O=$p8#%iUb~=d-px5JY4~aA7o%M^=7+LeJ0md7h)H zK6|a&G5ryisnm-ibwgX4PM04@T5kRF0f~MkVQ^TprKwS&p6LZI(CMI-{{40nZSPs3 zQh`P99-m>l9Mkcnnc2!toArRyg=oR*pe)d`P_}kph7Jw1=8V(?mJD4C(;}_HuWL pAZFW}wk4z5N9kApwOzF_KN zh?Sa0M|Mc8x;|xaa`C%j7DVc{(U1EG<9w*(fHx4@7j(QQST>YMBzHjWc@5y@x(23o zKD8-5q!+>c7rwH8IuQg_o?VB(>%B4Ww5(U6P?f9j?Bz_jL%cq-V#qt*m9Urs3JBsw zuc~ZFnW92k)V#Rlx2`N5g%*@ym@l?v^VDRY2MC{4W zd-e+_fv(l1q528U%#mw5KWCX}pX6CdH^FfrvG;WoD)2;bB(^uBuJsEUtcuE7y0{(f z83s+gDeT#8Pp)>7GeCn(R0o@XDjql{03tQ9YR$hjMzt^5gd*P=AsRxY|89b*(bL|| zJ(xB>o6{xd7`DA*)DFQ$8d5dD<{mKqL&7k8J`DLqsz0ro2J87|LAj4<8p4M|x`YNn zHRmaKXxl}oDTUPdFiNfaDE
-U$Bx%J9g z>R;wX>V*t%HTAVqvv bS4A6y8Ze6-;jN>Pe+QptV^< zY4m@cGoHPa-HF|aQO#-AYg?~{!J6KIAIrG!RKmo1BpcOAxvxS);iYZ@P3q+wS{Kw4WxAL zEkLHA2~?7u1s0>T?f#c}T$}?#$CFv6uO&q2qx(cvE&*EQqS*)&!REHIc(|4D3N8b~ z9W|3KUPG?byo=n6T=;69F)gq42IXrKy=+txeF(DPqjMzT*F6MC=+f@~)#ssoYL|Gw zJ|ugjx#PWD^Xb`ROoG8(_{U_0$tg}rRk>3}Sqcas;STHo<95hw`{ZCZC)s4K!fK@n z>w{VM5y|5aC*|Tvt7qF$NKoSWjLk(2O}Vm|IwIg>w!v?nlSo%c#ZjP0nZ{Z|*?4H^ zb~r!FN7mr!1yAso95SFf*{s($l+Y-2*(>bRpDOkF)*HL=|BB#d7qze#3ew>7b7))B znc_aW$GV!4J^?gX+G@CjB7B<&up6+=k7v&h9d0Z4z4w1Emfj=rHli@=c%deT^p(4r zC=WkZ%gJrO!1^e2dSN4G{}+n8@hvrEJ -TRAK-I|bJ}2IX z;QN?*k6sW*b5DHV=lt2lDzfod`S*_kG}wF0U~Nh=i{Ie6WS-@7M?@G$0*4cJrdIQE zvZuHlDO*wjB@~etQ#K6Zob(dS;+LJ^$!o#tk4Xnhe{PHLlP7rC(w`2Ykq-XQc@q}J zao;lHFICl0;~RHAR-<=YP#6Mn=OdV*TQ`Bu6KJkdVAD6%rO(UkW4(Yhos$_}Op6X@ zDUUW`I@PqYSU@ZEL|tEEsD5;~8EqAt{h<2!oSRfVHjMc$U;Rua@1nLjQdLHw99Fti z^s~}?mIG{&=sj|60c>J%)1A>NiQhnJ``IVeA)r^9+5U$MfaLj!St=1l_02KBsJHU; z<3v_=jPMYWUwt$0ZFh3fQ$X9$^=`7>CGWZq=1z88R#|YlFDIV&AzKpkA-ccvpdp-2 z`--EZ(Cx5ENd9Bi|3r}wp;IbSqm`9&vO2ox_heoPYlknhbV4L3XEO;GT?&&CAm52J zg{ACPbw^Z%la_^>7hz}dEmsEaW$9|}hiY|Cy=m%i^XNw RDHzj7SHu-o++(DL0)E8!ZQElBg=B&Z>!bY&zl9Ecif0MUrSIs8Z|Ce0 zdVH}Ej$Zr6-coyWSiTbM(T53Ib;-FDZ_DVu OHYWPL z|IA(r#%8||`4{}#s~PV w#i}j?mFw}p1v(WSjwnqNTh?B=IB&%Z1Hq#^W~; a#feN`R?tCmB`5u>Rc_NR* >dg(G=XD^ZI7)L ?o3OR_FE`ol2=~3&{}1NZjww9Ux5+{If0BKugL=pE^&+zf2jYoe zZ3s|qVZ}gUiy^XUnlSfPvL5oFkT_ra)oB0dp+R@PGq!Ft{i_mdRHgmuNv{@}vIgVs z1V}o_rd}j^g7xD47FQNF_sWO1(WmbFGK2497!4r^@6!Ke+q!nPKv8?#TJGaAi;P)g zG|GV7M1x2w&$1i!2dYBHNJmDU&AMJer5z2!f6LH n>o}I|2^&p@7EpA01;N6|3S)ddv8u-nOVm0PRk)G zgE@tDNzJT(&AsXS_PPd(N>7^Bp>1#vQvxx};y(OC!Zq%~QT>kvHSJ=D_q)}TjTjFe zgME8O%6%R`r@PV~A z8?I oxbwcs0^sBk6oYQ0eo(m~v}R2q%+8A~=y9Xn0t4-l1EG}7cC=T*}p znZr+rd*hd3PpzwptHx(r5Z%u((zgxUMnR`WJU;XJ|5%jtZfS!FpK>-2od1qfBp&)z z?8;XrEc6s`*pSe}_g`z^Q!g{yKfL`A_3VH;(T`mnaBLqXM<32U^67P`H$cnM45r&a ze}E-P@~YZU?AzQM3p+^+1%U?o`^Gy+!R`PGr+Mt>!res2_NeEbuVxg`j;1Aa pK!k^drK!wjQRQMi (XN#vyRdEiJA0X#kRhhjh zpXPF)$@dCwSPOn4tX6k4zSEvGcG6dzglTu5%->rVk_e_d=~up4?2_sIcQkf*d=tlG zNjSxPKy0SLvW~K#AL#8Zyz_Eja=!2LPdMF5awnF>y|r?zuf&zb-G40^{^WaCs`tLY z%9YsjnW-x}^Qtnp)sqyoK=5Nv_|K+ZnLib$#9E6*i)`P?9nxP{zJ3w^X!KU @kq6U`r^aQn-v%ME{nZ%$~ dM9+b3Awp)p#$pnpm%Tkf4S(^^(WuQ ztcH*c3u5r3df-#u!pQ_HYztTJ{#B|VSn{+(U+HS9m)DbGip(z^lc#9z?>~9F`{}~q z5)qTtEuT>L^N;qEwCN(AMLJ#CrcR$MK#DzUj1HGMgt*7?m&3~#_r;#4pff>3QL!OP zf1}x}_{x-PD{veYBAfiXCxY}1K_(|~tRX@K-Fw6Nt~~OrDocs8 )tvJN*bZ+`l;6 *VC(3lBFh*g`!O4EE_uq;P@c)A~hZ)F! z*A40N)Sv9%IXC$GitO%9ZxTI0_Ddi;JLRlo@ayJi4Yt|TMYhKW&j^$Pj73ylJm>i2 zG$IPaFCFgcx`}?po(Z8WrBJPGtn*-s=<|X(JoAx#?*yO-zzc#P^kgyLu3rfKXZm*E z7}N2oh9c4kr4`Xa+HlHF@ZTuJ*gfDV;yAWE a#oA|U5>GKUzfupE?nBL{A z>&n_>iBz@dE7c_)*Rpb_tFoDt2+UyowPVE^tMd=ZP}jE+TL}d0LK1&meKk}gL*hs+ z 3{H%4)79@oY@V$jUS!IS02 ?fDS#@- 7vvPyj-Nj+uzl)KT`4s)Rb>e9_Kdp40T~Rj}5l4|_ zyb(_Q<7OG?^^_3fMODD(lrw>+hnSFJ6(&-lZ}A^H@K667;61m*Vj&Le80ZK+&Ew2u zj$>P_f4k>&g|^yCb$wGdocjd(9x_uwq+%+7K!*bgd1YgbuF^SQ5gP6Ge5fdpGiWJC zrC<{^xm$`0rIzOXw)<;b>;`E 8~Zj%;eU6)$u?=5GrHW=@G@M7>IcXHW4I!Aic8!W|c zf7%q)YzpkUz^lY!-9?L$y&ndErACn^n|{8ZqPO8f1~VUpS=vbqDywS9FD*DokY5pj zLGxF|N*0%8tzLjMq}2k|8?98v=iXmO@$u+*-!SoTqI4!{Ku+v?jvDlcS=|!bSsAD* z=StcDI NpG6kd2gaJqWj4AYDRAvt5l;yz(8%6^5L9Fy$-e~I=MTj zs4 wD29ZUZ+~Lx5rZ`{Q zq>kKX3Y4+rD*HCM@QY!rXcn{; &zJajtE=6J+KP?l(OX#F2{lUG$P<` zJs#%J%#YMw-6$~=iNbK==rgZ2{w`fv9mab@AR*ZNQDDQ5wnb6t(32uy{O!N7kB;eA zkaX83S_Et~%2Ms%p2FDnlpR9;O#nF-q(xJ^F*cmtB^{6(F 6J ztUZKb-89_a4!t6`w7s|!;w|HJT6C>WM~_Wg`R&oT@xItGyu$vVBxdu-sQ(Wr{@PDV zW@YAyIR^$rpq6@vEjd177xs3r5$yYb(DTZ9=-Tf)`ygM*^BSLTUu&AhHrZuaEX!@G zlEznl`{XW%I7RTHf$8eSH)EC8{wWrzSGK?N0s9W8)aNGgD85PakL+OQC+J$yub+G6 zmLrxHN(#qp`BLqRJ{OA)yyOUes940$cKb7lIkibq{;o?$Y6SeRDz@oV)U0-)5+qee z2 ?eU#L4Ds`;f1!Y;v^o>AqHtW_fsthcEl9<5 zqCQy|7;DfUh39^-mkIup(DV_fo?5VWAe)lhP1RoB7_EA<5I?~3+bg{FpG__6rrBNgQj{Y)Z#x2mS+5b1H=?YfBR)60=lsDXG-Xi+vTpdhvgB zB)^4VPfU=o6*3O{)SV`bR1?7s+f3>?Rh8yv%&jtIUfYz`SZ<7<+qYfT!dD5icGUx@ znp=FXiL8ZzVlVBY9^s-`)qa4b+9IhH8{z(2cwk}pJ|nVLgOgS7SoTs&t$TVCy<21h z8Ngc%M{%xE1TjYU%0;q Kt)x&CC9*4R!Lyo%E)Cej_+br+D^KWg4(kA^qE9 zMXbVWWt?TVx$8zk-AOvjzb7(Oqvu#A-I5ZndZRNhmQW)N@CIA7v=9kXkOmN={(hg3 zZG#*wx-Dk_O_>y>2d(eju7Sy>!oIKu3kyqLVIk(_dp$*7ud|6*ZJO$7g`3ecp{rR} z<|Q?hbf-U6y%cq7SA_>;WekUeSPy??u(Z4|^%d?gp*atf>qFHoCSeQP?tA|-F2^s| zyb p=@0;KegRBe2mAH`ecR IpGbHnN`FAlYez>GY-8tPIJuPgIzU zj2%oa5~dHBvGg)OsS_&Hfog&TG)mqzgh!cKy+~3x07}c GRD11Xt-sp7`;BqTa }*E=OSfeo9*|Z^0CI&Rzi(UbSxyu^KI@|dy~xqpyvbqk$-=)m zA~E$c;HoH!cg$h4Jh4ZA18;jnUg<3(Z6QdPUPvxXm1@$nTl4$a`;0KTR3G8P_lsMG z7|pHVn*2-Zn^S)qCFbi2jN0aVGtpNH8RYrU&nHS `>y}r8Id`m(dh7UCy`g{6U)C? zK au*THyP{vBJ|LyKsGLi#iOY8FKLI@gk9K0y>YIzbZ-se3; VkJ zmrH?i4;^6T2~4u+KEq>>f!nz51V4X`H1~6QCE_! &~;x}khBB7zbA7*3j%$dxSzu@p_ zV6uH;M6iaGqQ#3m8DU;^fbh|^O?*ReG70qR^Poc?X1xvRQ?bGsuul4GgMjD#lp3M# z;p7a*P_be2z3k5h>)TS<`W)Q @IX9anC#2shV5fZWUvRM9K@E(uw(CE}X3&H|M{-Sq^`=Z(Vx7J084Kh!t{ z6t))#E+Pm5(Cdxfg0q %A2~sVlV1lQCfasqi+-HV@VzMqOqTzhVCrzc13|9T#pHg;oj#QIA)0Net zR{Iy#xnQDS1Nr`0pxCQ{OCt40^}2p#Yr_=3oDTOO52~HbK6K^A6$Q4$4REIZPg=nA zWSVQfR!emYJt02drx9R>oH_xujqPFs!H-w+VQ1ODQ5wl!_6P`E?4S&PQV$4)PjhP8 znPUJ{TyV;6o(=!^y7@1-y$BVun LHp=Q$7aM@-49+cN4w; zd#;w7JhQzR!vRbSQEs_I(g9TX{bAgeSKQR#r&!lDLE9r6PFE$4p&>y$ch}To7Z?26 zOFS#nVqmp>v@XZj*d}gp_z9m;-fq*Sm+#x~HcY;^9uCeeXRC;4!0|VXF3X}xnzKhY z$7w`l&=N8BJK4-Dx;N;pNdH-|F2()ZZMj+6!+UMb-DX$EXmFaK_|$A!7(+^h=+nZ- zewN2;uxjj=BYrYztZs@t@aeJ=u{NKMX&Pt`Fc|E$8}#1$Y&MWKUa#_{>m%@kaX#*( z<9!iRO^2T%!p19QyBNny`PZK;oGeY(oqn0Tyz3`(*v2b#JSjAI!NV!x#8i)zfl% 3 N?|%vp4DDo z!i0N3pA|p-@CM%#(O^+5^0UVs+xr@e*9A5@D^`1v=M8vpt34cz4QyW30ga=nn*DaF zsXL4xB2B2A!YQ8$<8;3PYbg@O(-_7vcUZo0+%B3yWQW`t<9Wa-qG@*M-9r}O&Bx>9 zYt@Pn%Iv8mq*N>*4;QTuD`T>3UEs=>kwOi&WY;+>&1O$7&oh~W2h}eFp#*wEGPKk_ z#~(RWz27A!Hbr2i>Ia{$_fc{A dV|UeFb19!7c5l#P55<$&-eCX z`-zhNp6vjWJza2_6Z|Lb >{ky?yV)%0uw2LGRn>4(58Pr7@~FQbMcO zw9>JgyA|M7Acc!|jHvTOhe3-A2ytn7>F`kV(9nRSA#B) 6}%CxgQ>?Zb+^SakIy z2-Cl+_z@79-08CKkK%@n%iV}`TK}Pt>Iel7)A7(q &|chhRH9@v}c<9jXQDqalW~cg!u7UBM<=Jvb|L+-~eJSnWntVtzz4va!2k z1&WcQV^@Jg1b%;m7$C2)0X04M5qp@E2a3a{Q^5t#f5ltTqez^>2`|;qZ6y_Cumz9O z%ZoWSW+edR0Lr*|c6jlO@~2rFa}!`%UR=Y+>?bm|Y*!lpS*uOZz5+$~QB>&bm(&hn z$I?4PI-LqmI|6VYF=eh=y(^bzI|5`<$X@$rs`cjcjHVjx>5qTPmf|&zQ&v3mFZZ9^ zy50C@nB3)a3D^z17TdVIDVq@(P^(-gDj`A09miFYMs6d*w_lzQjhi|UcS)(AmS!30 zmvMQSoy7TqeF|ew95Z<$!s{ZO>Uga1VT##qw9&jRo!Wgqw~cd?EOoawqVZUHoWr;D z6OoqGV0CkJ<)Q+kAbQdTOj6ZLwTO+*KcTHpF8dsK){fdEaKuOr!}oC23ZJm{F=JT1 zke_m%JhbQh?ui~h@rAWZ!aCNr=zoGKv6fQ=cvU?WCfm1=an+;7#P^Tw!VoKqN^`7R z>qOziepO?Ogxepj{^vh2mX;r`Wv~vHG2Mo*G%p1~dGYns{`u40caH4U)72T1NL8Nf zp!y;o 6 E)b0kmQLK z{;5td9A9@XpTv|9SJ6QD!JlnUF;Z`u{Vc(0PW=ni;h@C6rZ_hpI$8bv7unS^!mi2w zZHkEI5Y(rxes1FKz~j(nxmqWm)Xw%S9)K8p&-^Y;ocfpUzhY$g57AkUJ`g$gFMTe` z+MupH#OvkVGZQSc(w44ffvhNd0&$x|Svia8u&LMGi?_aROc664*mk|FJuoSSXH6Y5 zKpxrVfS>q!G)#|6a$h}$`YDa)4e4E=e5NK4u@qEoR1nsW2ho!{bD76>@9!|=aqAFA z1)d5FlUcey)V7x8>J5Y4qvx*$Q_wZ$^$CvQzFif}6cpv|d8-10T1}o`OVk4vDlD{T zM_)cr{TY@)=WEe9fAx6AlfTpAGh<+X@dTi( #1hY7f?3*MgCuZ zz{wCOlFqsNYRo|Kt>%CN&r;AzYt cFWI91aCc6o!$p2=rA+pb+UUj z^b*^D#K%J>*z#bm{>c4~u|Srst=2*?z#7@EGEWjmcbS_&wu!#51yu&c4VPbpi4{_N zxQHf&wR89CY4T^A$kwR|pI`#)_eSPMGYM_cbTrXFtnHj0V^+)v(W^BcH5njj>UHF- z>gW!Pz*Fx0UzR4g7jKNNLb-(rvjoz7(xf8i!QuQ%=V+`>+JGODXHQ6VK}a4Gipn4& zvcf)|AmC?B&<-S<1J;clW&7wOBy9&Gzm_7pzuL_vMS<}rGt6 )R}+^>9V^g=#U2#@^)0d z0*@B8`jDZN4M{!O6uZc#ADD{WkDFI7kulzf7=I_AtjP&uK9xKt5u)_EQf3A|Fr8UG z0p2O6&}v4}QlVz5rTa`q_&J=fz ho$w*m|30jY z3iN(%rdeMDMZr}DGF(_;DM!{r*w9$zK)wL;Icr>){=u=#k!N<)eUP@D_x6c@wsy9I z6v >CNz`=DFNs@Jofg|2)ia?8%Mh)Krw5Sar)(3Q^EA3>gQf_hHpK;t{PwLgjd zdDv(#K8R|s2w0Y~1 =N62dQ!#{F Ni%@O7r1sx{Neq1C}DG4sA!ITy6YgF#s)Rb;)0K?mGp=yS=YTH-_RE18OQ2V zi8gJ&Ri-V+btayXuJ{3Mqn)_q4%n>d_;1JQ(o;qNcBT2R@hKlO&fT?#wM;*vLsY*d z5zwS09e><0z=~`Hy;g(Jaex6^^$S^>>(K97jYadN$LeW{PfN2MdrScsVsn4{h`HP( z707d4ac5RDr)c?cKp%WbA#5N;V47lAJxVK7i@wFbIb=@FFXPCaPVnMN%H44MZRf6* zrh1^!;HLzA9RGhyba{^TYGlZa{n6p{%;zZYC`)^Yyw7^KKC#@?!0%ly$V7av#3pO# ztmVG};zt+AgXJg%XH{MeJdlDb@AUL`J&@?jJL{K%HxJornN8*u2FAXp?3G+ic+D ztx(^e?j=)@Z}a`8?(d@}NSERMVCwg)f7^e2yA1!9kD{$J4*Mxd(#8Y1?@gtz`^PTs z%Lm3y2gnb P7-)P;5)f4H^>138j(1&tw#)}sF0$q# zp?DZepfsu@rUP0!Z#(C1xOq r4HeqHP(Xh{30YaWKjN0N^a88^*gKa&!T5vlRd z3}WxO?X=9%nWBRj>k|mx6UUOa=nF{9T&2r!))cN}{Rf+p3hw GN>Cry=_6oCf0CPD zZds!^Y_r^w t$Uw-K}gSE z46omODn5K*b?M;5wX{%%c|)ds{MTas@ke -; `#sNI;ZKBuVl^ !HufQMiu*1adf~zgl>PTVIybBJeby^4%Yv`T{xXegVo`o+jc3B4yg~ zEkva #wHQmPd49^l&R}nWHh)|Z`=h`E_RUAwV1WF z9k)gNY|9{3dwbZCyl;>2t&xkW9{~+0aVBFK+WWIy+15#6{dqIW8QQ;%TxX$GD;3~- zdQSG$VmA^1UNd<`)-fEx@c9=t9RdLhv?QSJxIhe(OOK-E(>Yg@%GtSXmvCPl-+$So zMG=%+6;!VB6_?db62tl_;yX9bT7S4=`F{oaKMS4i5-~Nh(9EmlRbU7wfID)Q%0s~$ zd~27_6r#HGt*XNfe$?OeVgK3(vY+l9e3-_I>_w)n6qOS30Bt )MoAQvots5H7EfQ%HNsp(Kw+Xxqr)?j5%%G8}WBjCwyy}CG;Ft(>re#;J#dme3D zm^pniWZMQl?ej%UOV XLGx 0JP zo0exUFCtR&V2g$PEdzP4JFGW!-@->QQxS*KltCPpf*MPNQoJ4|LB_Q8huMdjtjz~o zof-l?vD&ft*%JTw*NMCstmv;FMo=x 9YTY4e88C$F&@ zlUWyhcBtSZmW7C0_Ln@I+Rvhp8vYknJ$0xb31W9R4tgCyD!<$rhxpCJw?h$17-jiz zcEY;y!)|d=2^O)7h1xz&FUfr(>b{vx<#aZ422#plWB>|j%-48?y;bT(XxB18;U3eN zV$C*yq2+UT9BjFe !&40xgs+l2otMvie~uu=}KBP* ;P^)SJBc)zqzs_NIOVXdFVl zmTvg>{N)dRyw-34YE qJ=9J;y<8P>J@+z`i$a;_gHL>MT?nusjdjweRpGHT zp62Kj^rTG@WV!(%Y+SAF0yFJ7+>`05rdmwOC;M9YCG4G{O5nH^s_crrJVkDO(7sWw zR5@$?`*VHj(eMjIj*bAPdlV+Y$LOJJpp~Dm(13>bZ@1;$3q8smT&ldI4PczjyJExn z&6|T?foXLG%9J_1+qb~l^q{O&1K5u;Z#{ARFfT|WuYgXKxDIW=v}0iSalDgd@Ao7v z>vtAa6?x^F3N7BIRD$<^YRZQ3nl>jQ3 tAx4Pf}SzP+V$e%R>tzop!?(DI^`JZ$~0F5u^Yu3vJie4%UaryMlpTB>AL z0Lanv%t2y@&6`K1(D7aY#p7=d_|OH1*QohVFC7c1!v+95XudH*2Nv$%)jbAG&Mkn4 z7-gy?I)B^uLvA8AzOz}sG6kv5R@Riw9P-2e9}di6iYYnObu?Xr?n^|g!J7g1wDeZE z`3yMtR`28|bB3bh5;94h#ZBgVlEcwxXeLo|JB{i`+L`Gr3rk=%u;j$=EG~Q$m;FJ3 z4xQm?WD7J(M{I1K@ $X9}rXgGp-d%!U}CpD6=(Q}%i zeH<7#AJO546B`N#_=XuzR!w!~Y|YjTSLL)#jT0oCCv>lq5zbDlO`!bi)hF>p?VrCy zMuVrUL2#!G5VntK6-iQ#Z^81IUm~8fjo&YC-+6!P0{iOog3Kya^DxYBFyn+5H0_f$ zl|-;}6h-RWWv47g?a}F-FlC>|ml)hb!qP54-o|s0Y%~9{Ohp|NV!gIJa1c0NFg9tj zQNGur|8Np4fD =@8H4|NzP(2ocmcx*BahRGM3&!90Q z`-yI i=V)67`sHwZ>F`oJzTSrdeKsI`J{qU zD_@iAq{!d)dk@n}cC|n!zdiG!hyGUTI51t4v0Cv|xgYgb6kiT+imZUBFtDvl=l!|* zr_)2sI=BglhxiU#{PkZMIVBR6hKw|mLEX?bQTNdt#(@;xnHqzNJ=TC;+2KHqv9$Z= z0|PT$0;SVK9&O?iUr0n{o>1S^;kVNq3@l7zJrpd%TO1({llgZ_1ATde|QVI){hs9Spuq4hmx4@P6y#r-_ z$A$suR_u;pu&nY)$AC0X;RTmdv!}^ghgHyf@ws?}Uv-()ilcJ=&jeRlRra-FvL%{@ zEM;(Id2bMMo9ZZ?UXdU6TXyS=+f~NwUig(>OzkRqALll;KHUCATj^;$`rN4oEU}ZW z1J oAUOf=7Y&XvC>3pCuhlPmp_`JL`pj-dQs=fEoAsiz@s=LCTT( zx2>ML!g3zUKDx=zbr z+Utgr{4SlP*dg>aew;r8D=} ??TU~C8hE$mIW?Nhlg-w}{R!}y}9zj-aq? BMKBJ;T`&F!8||kUh4LpjPloHFD{@ySk?oqvu +-VyWv$d3jif4%FP*V9~^luNrC( z!iPmo)&7WXSsS;^1_i%i&7)8Ouw Om7yUQy^1b zP*Tzvb60LB8g+rw9!wH_Xzr>sN9iHaaNq@zL8ysg5)vT8fmsYc?;~119^Jq4&$Wur zCv_Z0M0yW;Aq{K{zktm2vdgFb?L!?LV**FZy!pbxY9a>Y mabv5w) zuCI=p`F+k@B#y?-sQFEAEDvTx@9n+z-tT_|gTWq1VG&eRv}EU%(Cl+Jb-e8jHuY%s z)@0oV4hm>r&y% Y*pexh`Y7RXf`Bk@tk?P58FyYfvL8VBVXEGpPlAzzkcbG!p6~ws??BU4 z3oYn%^r|mKh?_QX%shnBW6?ZU@7~aZiej6*n+q?@=%oH?nAIlFEX2 9JoVRwe%oj-a{VZv>|K~P z(~687(e@j49~C(fTxOjF`A9fxH=!ci@ez$sGKaE-5* ^9*O%AGUi}N_UZc<2RTy~T@HMZZ*X1X_3|#!}tLO^A;Debw`+bL^ z$1idO+;)v+prMUEZaSJ|uJWK$N1GF5yop3YLjH6mwl+4;v~r9klYkyY >C@CuttZAJvtTBGlZ&GVcXS`@vn7&a_$2raGV%^Io` z^%<=NStQ_K2o=jxz8}<_Jx9y`Mv$~jJSCjy=6sCJ#{6Z6p>iy-4W;7ZI9qZ-%3Pk? zx=Mx5`o3qJT@x#CdUOPCgczdq&&kW1&-tL%1_X>3>-#qj=d+`w+6oZarXJ=-;oam> zU_^###AJMMnv7dR;}ckHXjF?XFD?en^Jq`o$VdcFpX_GWm2`~pVwfee$dvD=E4tJv z?3|-}rtmD4zqqML CKxATd)*V;xropKfwzZrNsTX&&@* z)Li&|D2qj*d0O$&K9N+Sm0Kk;`u=dVIh%;6`ASm5iz{@Ij)N3bfuhC+-JEUE`19Lg z)PA#XMSpX9=F81a22o-lO2e;d{`TL|0oJbhY_!x7P@ycSqt3|GMCNW_Br?LO_=ve~ zW$vUI>E{?=eZHT1*hktMBKf-TjFDTMmggM#L8tRaPofuqsWimiP*;=_2lb7*u`xx% zujRi5DP>2=AfhCBUeYt57@J&R#wik{x*47~{JJS~PVnoL6~=Gn<9I9zEcm#BUXFa^ zIiU9JIz=`o^V}vE-<`USff=)HG0JoRS?3TshX(%NiNA8cOjjdo8biuo;o;w!%z^pm z4CS?FFz8XC^l3PM$&Ai`I~oR1_H0wF3s){|_jk}etubq4DeCZ*%_Gk3rcdN!l1x{x z<58*PfOqR~@cPlFvkhW0e+{G(u4Y*zcGukI_C45{`M5`SL`Ij+I(>Jlzs;@c5Ctn# zC^*#9eeCp=9doEYebk}A_PH>$E+uCGqTv#PXW>OswJNNGx41Nql>Ua7-+xIBY6EdE z`bvsbqKmaIl?NXDRspq>yMyZ0YZ$Gr;We<)cgL6Hc#el~7CV2te|+@QeIQu+iV;8c z&(jRWoa)C#h`mku)Tg*8!uNwQXXj|RO1}pr{dTT+=`So1zl4-s#~YWL1+JH6R>V)2 z%YHn3&yVLv?qreBU&- da-2QwPiP8O1IgNYN(pyEdEnBSW{ebcvUk-BD=4iC}-o2 zf7uer9d$v**tA199m?Da&kK3B$u&BHo9u5U36K>N*g-e_ rKS@w{EHv zaL{5ZWn7~Px`>(?{57N33%w%tQc|Y(3mPnruT5|IUX}_al=7cc>2B1oX5fOEzjbaK zm`nLUUewxSHj(oMI+OC%%%tBxr2$5kceZEz^foRN-^_t6uUO;xWNTta_y}kAJ2?H< zh2wsE+A9nu&*O0V$I$wsoJpAF{mWnF)dX+JD6)UOPBY4H&!oA)`ZIhtLLnf1oO5vG zX4#APjBC|k+}a^OZCb z7d@Fjibj0N&)L(1GCY1#_CfWMB(x8th7p-s*tQh!3WR=E{dwJP1y4$bn)-R-J+aM6 zWnlg5J8m{r$9D0S%1d_4s#2amMZH+qPW}x_`rMa<(YQ|gxJmzZb5)AZB>(Qa5ZG^O zh=x{(4)!?;8a({E9mZ;Y;2da-_k?@cW91Ew6UO}-xWoHL>zzDuTNWg~Ec|HgTYE!T zJ!f5y)lDq<4@=sm9se3Q_|D`E|N1ubGek#W$i|O0GL#7pFZ&LO$!hDNaw;~k4|(Ya z>YX%&KCHTkX$b~o{gdaL%@?r>6`L}*%J0og?$BDaa2YNp753a3#kLg0VtBFrTz+Sz zZ=DZn!QtyjlN3S NOs!e~nae+#xeO+{C00-{A0AqK_DDS}_%NVDa3&+)X2%y;eg9BX4hf@glx< }s=nLmij&M)<(x8c%fZFWPf zw}dV>yi&`4E*j3yns>1SZ>6iINx+pD1$h3RA1v{XR^K-!2-?ywk!;LBAL{fTt?{Q4 zkY^sAB78%C{wXCWINn G3-W50Gq3~@l+Jtoyk_|dP$=EXjX!76m} zUq+HpHZaOu@0(RSWQ_LRg(9+E;KgJq t0eoZPC{N>XTF z8skr1SF@&5C*@VMB&)aJy4PRTos*}Y3~oL==o6OKP><|h>3X$P^Pla3WodpC{v5jX z^z=PU=GUYy_0!VQ>mLdG7&D>4C);8;o0btz8?$xaEq@`_#K#dnsH%B8NuIlzV(zL< z7EV40R^mwVB@13wGnX_e4RcX{>XwD;nn>K~Ghq=&N`msl88N&KH~OFH0_8RvO(Cj_ zU(bk$poj)QR!#8up;@JmL$+NsjXfT$*5Ac7-D8I;6mQrKfn9-6JQ}epFLsk=et>C4 zvtCpPW%3|p!~~za`74-O@d2RfX-S|E4J^=zC=+g 9Mx!s>RnlP~3&%N8p0&4@!Pi zR%@RNuTbzD+?miVp!|MMB~J%sEB #PZbo5KG oS!d&4ve6BndUSsIDRIyCfEu$vIprPT+y+Jazz6S7FaNn>gPhaq zBNhi9Oz((kBtHVjtK|%uLM-8fSV+hSNGaBuRNkWAm}p^v<3x#z3)om-b1WTNTOZF~ zg~~yKC5E1Uy9PX%f!Hm82p?2T T`v^LjG<0sNYo7{4F+3X56=4 }|X%vsfRR7&2s_e41 zR7K$a34}_z4s?YJt_ topvlPT7T>e5Zvd5N&1l>#%`c?OR2n^v! z=}1lbCgGEgx)6Ioh#Q4@7A|Yne W{kSH*7XJZ3vNaFs zQ)OsdASZngh#I(r&dR++|8Y>0lwCChO{A1YPq5H5e(^2yybcY4c~V0-GU4`(u`qd} ztB4fA8IR>(CRA z84?mpA?T+BgBp}Rw{{|RI7q17N^&Z8C9ddexHg*exyz!gpk#34^>?V^i>@dJteXCh zl5{mQzV$nzq;JRy_d0GDSf `_%8pB_*~AQvVSoDIB2?q z7>n(mnQ>EEXP=e6J{?SwcvFr>PfSekH>9j8=X|u$S;6IG5zljit%!htn!y%PfDR5f zTG}sWme)h?QSx6ZmaGzvLY$V(%~$^dYfL%*t~B2x{bt3k11PFAw)R&Bv1aE~)IlAL ze#`kaxU7sazHhAvKW(}LWiQDghOG1@zw_GuhVOHB&}yD&6l6V|muc{5D={ZG7Z()3 zH#Luqj><3AWlfOqeZ;g}1zMIcR&u@<(zX`!t{LR#1JHC5hyXOO?(^X4wBz1<&JaY* z5O#6lU2OP`RM2t&uB}ahK^F9%_klsGu;>q4buG&hh|{Rd8dLoS8wk@e{b6NI8I$O< zUp}NdGltSj{HL{b4eb^%q~i3%!P^-;2Gx*%Ze_o+70q^LTWh!LHg;NYNM@O?PZVW> z_{RH^1rY`Y8|V8A(b9iBFN+JbIEPdx)*EI^#+!N5a`gm{BNxwQ;qdpPxdMKVX1oPU z>elZ~n?*_NJsF);jG*>EI&yn8)5Orl=vBPV4|GVMs1Wt1j00^!0|DPmg)FPwA`63d zy%Zs@8TdU87M3hEqkE9e(IP6(!*%nuCcsk(%1q#oAN%*~vIkMbcW&O-N0fh22qX@L zfv0mHKaDeGVPRPx$;FmI03ppbK+_4N1F2tHTAGc1)=m<(qvdVBc)hr^)UlZI9KqEY zl@(v|(QY)A&=lO%51T@tslws#^tus783gE@$LUg{Qzwn(EP#WxBd^bNRa1p;M@wIM z^p%8C#Q!qmm`o{XOTKT~rA5lZ66T FHfKtJQ+uwF 1`z@sZRWMOt1iZ( &~nXttxG4}u*I`5EQ zeIxF9V10W#R*>nOMJ{F~gkSpEuG1AT_Ga<9%P%^8$b1$A_A@Z>q+#ioqzjFx^lsG| zI^-EWNxQ$(yRF;LKjdP*p$86=08{rDq=T0maLcp5z$cSfu6$&htQsf)hyMssX^DFl z%k_Z&gAtkDk+2+B+^?QMF=jv#kuOWb!a@pYf=HDGa5*gAKCeGs;Ia#a1T_49r2>b? z0d6e~S*5%dIDwn|L?aU)g3vr9q+4PeD<|N?{Y%pL7squ`ZbAwyWt$9W%%fi3J_n-I zJ^`lOdS~psXRoP%hwW@-w`-;@#lqqYw6wm8c}PeWI5?r~x6PXbfG&Fs_$n; 2gn<50*;9H<=u+`YW>wu52AD{v7Sy=$|`TykKoc;liW7!}wMn*;vr2*g< zaITrjo?{OIQwVj?*_kIq2K~3u%$ptTtd}}IK9W=R?!|np9P}Cj!ObRno{i&Gwp8U6 z6?2YkD|b%+4e8NIU!AZ5ns8GeQ6oI$SoiD(t*Eyh>$_6hmrr5?K$~%KaV=}A1JjN` zcf57YWqzj}6Gs0Yn3hI=wLlKaVlm%c+^LGZ)l_n%^1CmCMYP@cpO@_X@0ZN^3e4|Z zN&U90zP^4jU#`mB1}zQvWpJt8%N^I;CnnIFP$(1;Yl8Q`8 $#SX#c9gZfeP T1)ao_LStWXqj{ zVRcM&Of# 6}FE7K8)~0#@Ae5&HBHu;23+*J*a03In0nruuhYuf~L?r`T z{rAlZL&Mp65e7))w)H14oUchFNSEQ7So*>doJ9CQwYD8~eU40fvz%PJ(?+yAs*A*$ zwN-|)Km*qb^FPLdrPjR_PRSFSrk1Z|WVBUp*ZLM$LrpDeWN3)AgIo1JNWUb49?YND zgX#@sW#t?oy4 Z=tDF+w`&nzL?*!FZi zJ7j2Ysh3?T7TFaSN4^F+aLBNKIEGY# {5-vW1Le$2VF z+r<>!)+Re+x3shbV5<9<7ApQ=7BJa_IKZH4?<|&%neNZpMVJ_ESGC>bGe9W6Lt8&> zA3@FkwzN#Cs;Ua&2abP8OP%Y+&)>f(cm5DlKY#!aW6qYldtrBWDG{jvv >t`TXii*4NklW=Z_e=+V*9vf7;58h5m@hXmv3m|brI4}aa~68Y23!p6=E!?1nN z#w0P sD#;21fA#sGVaQF96d96qkca%K)&|5y-~RgB8}e|9g $v4{9lI5lm7qC @wTrlz6IlB4y(r2>TZv3kW&ffn1uY7eT)pRim)M+o$5xi73ve~zGe?S}olpex) z>tJqF=@85#sF2=JhsHxnV8(sCeoomx5)crWb*p#k7aGIxZv(MuMKv{I`?@ub2wEXR zR>i1@-O;YnWI@Y$pb9UaA?5Q7iHycH0#;#rEV~L=M~mO v$aeu&QpL{BuB?9b#x8hWx%J`v=(v=Wd$*aS4D}m5U5oj+ zGVdGJX&qL8MW(A9%U1LD8|Z#6*m_(%JWs_oiYsz}4hcs!c#jcdO~{a@y5y30USXk9 z-CPh|4p7485){-tI~_#v0@QQIb{1I+*x@{fTa&uVPoKsEr<6V2^|#&-K9l$CxhPUI z>;`bjG!EL;z)`~zMzM|ce|3=lza7K>AN+d%`eo%}bpR)F6axN~ ;AYsMi1!TU3;%uRkdo)xmHCe$Vs5RCVUM7fzYHRMU_Ax2owYYuf9SAzTq5S z+64aax`=7GDBGL4xEnf|f@BR{9Bk}eY%Gn)-AtXFE$!{tnb?`w7|1PLTpXM~GBex$ z?;kMPJDD>xM`EG?H$irg)N}@cFbrSb;3A `S z8 C$6`d6H4VI)Ng#G%uZ&S{U#+}zah4I|;x(9{LdFL;?Oa|>v`i>`YJe3qV1qDTJ z@LKd0C>(gvRpEoMFflQy@e!e-zzaDPOb&ch3^W8u0w2E{{NKy}$GF83`w-mCUOpS; zdw=zgo*o4~jB=st9Wb2Wc&fGjILh6rV(j#h?sODmkVQwU@BLW5Op*mg5HQML=9=7@ z 0$+x#l)I_}vT!xuU&nw2ZENvq^{A%7|OOQ1q3@<&m!!{o&y@U7&Atij_kV zZ07ODoF4mTAar=70Q41oN^^Dvn%w$cYM^yD8|}hfG}!N)?VIi!A8$9>mBR>Pa%{zt zb^_sC(LC+#?lpSniTkte%&mXyz1M^e5$WMt?|>B-(JPsfK)NGgqrp0m(me|e*P>x_5jSpLK{qfgGtT*@>_8xXA1M0+Eq{$U-b|&rXqbWVA^=UsT`;V6{5K< z8aE4fa7R4XJa)}}55iVVH^zFUND)7nPB#NiA7-Ns&|r=Oo*G6aB@H8&6b43IhY9aj zNl9Er2Fc;t8-hML@`X*W2uA5`j^XcBG~|jp>(|`ofC)r{=|#pZq7+s=^+@07FdgO7 z1Sv1EBEr{EU#_BE*F>;tF~<$=iQ-5A(SjNaCSdD?VQ^$=ZT3@-BFKs&l3fQvBaPGO zy|B7C*}G*xHtrPx`_a0}>(Zcs{;SUK%~2c{Cc#T*6dmN#Vt1b;;=CeyV!>Ho5MEky z|EKi<*v6+=tz6H@E5<`%*v6V7^4*Jj#B#4eTuslFqxky8c=_ Z_=2n=XhB~rz7s-M**7PdeUFmgQtfKNL|NZU` KV7M|-LjaM~(^n&9(6l6tlUZxP%*O^Q%fm1CB7GfFLlc_1% zUPJ3_YB*gl3y4Zu)XWRi=WM^^aNs|stA^-spfHGP;D-7x7rz~tirx705_lu=v}O=G z&*u$o?ykBOR+d*B_0NiCW}3XDNuv=(szyKrHZsbI$^HTQ6Z04w5Y0s2w|~Zq36ln% zE%~KJCUXu`Sabdv|4)CF6F+knFx|S@SVXDBYq;%rq%-H{`!xPOdu(g0teC+uQJT8W zg~o;(p#qBr%h;SmB+rNw8lUu|8YR$v^azKak^p6JM^qH7Weei5o?$>G=6R#3so6g` z*rlqj8*HXQ=|oGG;p&ZgUcWSlLqhM4z@|M}4Z>KTkYVnbDbtQiNkIlB z^EgrnKHV5MKVB_5H0adt|88=)oL1k6Vr~sT+l?^#KD)8+qsW0>BmgpTgRgqsssD#+ z29BSM&xOV8pz$5Z7$6T&_sp%V-1>5;0HY6PG#)q|#|r+4QnDfRpxU870(a6uKm z_ipKacY7MuW@w?P1i9WLsi}nZI!r3+>XdwZd`t2Hbd9;1o!$H3%zq_h!pqgXZV7Y` zQVdWd0zxw|wis$#oAxP|L(#u~Rv=+JJ0{R-NqKAM=|-QTipr)?f&1~_-31u^OsOXJ z4_2%m23`;3 =GnT&XBJ#9JPB*SDUu>3x)AiuOE1S!f$P=g^O4Uht-fH; z*4CD!l$1!5+hJhL@aU+7r)R^uCm|u>*x1 6e z3JMe~3Q#(WA*9x3K2WtpP4nYusb)2c^Y)iCaWNcPqkOnm2K>;-p7lYqg%eE7`O;}- z@QUlK?#*sqY=zA{Te{1H)YIa!9XBBnk>kzDTJ{G0hYzc6O>ajzUH_>7p1FTMSZ?A@ z|4bW+R+$(;uhlm?vJfCDTK1&`4MZ)~sq4NR;=baGCzHe^7E3A+cqDXxP#u?^9z7~} zKjgm%TnZELzB1Sy%Zc3iA}cHA=H@m=maE1*!|pKMZFLC5ar`l>Bq;5dWazBEKgn_1 zvtU(K)x-TA5TPa}C)b=BPVQHpNfT&fKLH-Es;)lm6MDk@9ESe(4~Rw@f1Js1{W5ux z9nYFQNmP{e=QJV|crXLV0O*QHUE9riRQ=_QHW+liJsdQ-*UdSr6BHVXh=Yf>k@fsw z9xNe^v$2V~RA(2;yrGs8EXDH?>LJknhZgEO3hDcmYL6$o8a|sMLy`MRGWjEPt^MPt zDXR<%cxipmFF%M=BOF{G+zPW=f5BmCMu7Fq3 }-)@Rw8=!)(gIDXc~`oiFGo6w-=dxyYF15ZrI%~Exu=t4?Wqg zOG199jIIxgey;!mat|Sly!=?h;Bp1CHr0)m(3jm`Yla_AhXc(b!RYCumJ7T4XF6(! z@bu4Tpp?Tdp)_exoV=HISY@3(((KM4oBdwJyTD#Q-diQo701uC$xWf8c?1p8$i%rj zH+GmON4AyY?}EeWI<;&`gmddDmFhKqpm84l@~gV$VUIT1G;>#D5}@>ofjvj-*&9>j z(iwv!ap =c8(ZGT*K)3q@?v7Sv%ECb8g2}sNHtTQ71;3> zXyE?#U%PB&r;> Vj)Pd?Rx<}*rvKrxrS=d6D=oD;R`O=2DVb!{c|H;=h|EW>+fadjR% zCw-5UI0}hZVi>7FJV1N664 v$P7waj9tC_Y$FD0oDz8ccH_6p*cy_%fDkd4z{kK*8jSrF-nXc)~>po+CdKmzhi7 zWDsEU%310!UBzl6*0{yUn21*%kyreCCTMC+Z46qNRoYkhB#QI-Wuj0t1@SZLBEk`n za6pJU;IZ?49rqgAD?cM5nXu&a#2i>Q^{gj{heKZWMH8p7g0~M~;Zx&B%~ zf^{5(#vXlE54C$@$h`1QE(Zx`t2AQ5!s$M}fDnqfY{on|hk?9yz6~u>JPllGfj%vy zg!5yhGp{sxi%O-N24j1DTj98rKT|fVok-9Jc9q|zmBbjBitv@FsEQO=?;n-i-`pJg zjvdH0d%Sk|IkceRrAMdsPb?~3AcJvim`Y*M=k(Fbe0i5BYXMf8xbco6l6>Ul(c{^L zzm+yd3ZiEh;AoHx&z&p{t}f!(^c{YEe1cjZ>oK}LO^UzQkIE1Zr$cu{1R&LX%Fl1} zmBl=+7N=H>hI&k{JOLv9&^Bo83~WmvSZibSXo*eX2Rp26L=Ov74EzGS;_TLg;rcDg zmCt`msRi_sHWy?~Izx?Bhq ^f>1$%V$!orSeg$Es%bw-rHZSL@=YU%S;T?q2&R(WyutDyga*x6ekuii-mV zw?4VLasrVzPk@+W0|%~bq;-N>8`p{|k^> 3jy% zn`=L|=inxS?)S-k8asft%C5Is&uE&|Z)rxo(lMq~!6>eG+rNgRQ}zsUae_Z6?ZN0L zUdz=8XjAc3yulRv&m4eV!mYMpz$ZCsKJ%|yj``_`Bdy941#rE;iWVuycYPCLAjgrH zayTCz{_ryJxn*P^`{k*#t5B=Qz8MnutKZmJ@0GRHU=t!#EEaEvEzG>RC@6&fgT42` zf)5EW=kSpNOKNA0J@P7#4`VdLb?}Vw<3m?AqM{-i0Nx!xxZ|& wmdttv-n0^ z7k6(Lce_8UdN)#e8MGa3Hk~3`+z=f#yW#!x62Y##hGGN4>0(|+cKkrk^zd|#x1-up zTBaG=duFH1)>lx+fJ%}5R`+ zs+NMPM~R==Z^<}I0nRp% zP?^ B_;9EDAi5P~3hYqXnChm~l)>k|>H>2`y<}2}6{k*c= z!H5B}LWMQcg7RKW3fg;%i#HQ*+xgnAA0JipPgArJWB-du%)iTAh}%OfF;siN|2B{L ztr=H-)8hB>ta&tZ0(TSn&9?)&_PL}B`7O(fOChc%pSDXl>kdjx#b8$C;C}SesThV| zB1Lc-XXFld7W+HA*RdTDoW8v`R*=vcDxF*SF%Ok{mtWW1(+oQN2)mpUvk>N*{0uE2 z z$FQ1EJjUR`h*#o9qe+Z}8RrX3$$1ewiL066lS4if)K{rjIRk?~#tVo_dog+I7oHpk z&-l;_(FTXWpHS3izuzW)<*e*R#q6Ou0#j8*%?Q?LXdzx)k9>8P?U?>U`+e|uj^LqK zS6_wU;1OWC0KKH(D?a=j6_U~>?Ar@!(*rR)=)yztS+uVi7)DJBY7hvm%d#Y7|NG}a zpX^3{-e?>RT97?=kc~}k%m!ZQte$zccWRG2-TwWBzi=-liUXBt7mfJE$skhzt6rm$ z1+SbG3pdi={EkLP9LZA(Vo|&D!@@)`07-r?((0=ENz#)Tt9l#Hn<#`x%y-blD1e0j zM9yNFCYOX6R*rvJt{?f>k_B)JKz-`*Bs92~nwo0ga>{9JB%Gh0A16hRW7Wf8IYwQT z)U1)f3QC2vt~4Lq- {f~#d|&@JZ!DGvoB8iH=aQz4QrGWetUCE~e1 z%Th+;q%dL;$hZPkJEmbn#R(Y0bof+Kdc>@s25Vrzhh=M{JAp9PCuRDTB z*4{Hxj0!`>hFlP!!zcmne)glTlg *j|fd<