From ca4f834dcb28fc787d1fbebe29052bdb3863afa1 Mon Sep 17 00:00:00 2001 From: dayhaha <18800111918@163.com> Date: Mon, 16 Jan 2017 22:32:35 +0800 Subject: [PATCH] follow comment --- recognize_digits/README.md | 459 ++++++++---------- recognize_digits/cnn_mnist.py | 71 --- recognize_digits/evaluate.py | 4 +- recognize_digits/image/Conv_layer.png | Bin 150788 -> 254303 bytes recognize_digits/image/cnn_train_log.png | Bin 50549 -> 39601 bytes recognize_digits/image/mlp_train_log.png | Bin 57452 -> 54627 bytes recognize_digits/image/softmax_train_log.png | Bin 59423 -> 53172 bytes recognize_digits/load_data.py | 29 +- .../{mlp_mnist.py => mnist_model.py} | 54 ++- recognize_digits/mnist_provider.py | 31 +- recognize_digits/plot_error.py | 28 +- recognize_digits/predict.py | 4 +- recognize_digits/softmax_mnist.py | 50 -- recognize_digits/train.sh | 6 +- 14 files changed, 296 insertions(+), 440 deletions(-) delete mode 100644 recognize_digits/cnn_mnist.py rename recognize_digits/{mlp_mnist.py => mnist_model.py} (50%) delete mode 100644 recognize_digits/softmax_mnist.py diff --git a/recognize_digits/README.md b/recognize_digits/README.md index d04e24e6..5ee732a7 100644 --- a/recognize_digits/README.md +++ b/recognize_digits/README.md @@ -1,221 +1,125 @@ # 手写字符识别教程 ## 背景介绍 -当我们学习编程的时候,编写的第一个程序一般是实现打印"Hello World"。而就像编程语言有"Hello World",机器学习则有 [MNIST](http://yann.lecun.com/exdb/mnist/) 数据库。MNIST数据库是手写字符,属于机器学习中典型的图像分类问题,而由于其问题简单,数据集完备,因此常常被作为机器学习入门的教程。 +当我们学习编程的时候,编写的第一个程序一般是实现打印"Hello World"。而机器学习(或深度学习)的入门教程,一般都是 [MNIST](http://yann.lecun.com/exdb/mnist/) 数据库上的手写识别问题。原因是手写识别属于典型的图像分类问题,比较简单,同时MNIST数据集也很完备。 + +MNIST数据集作为一个简单的计算机视觉数据集,包含一系列如图1所示的手写数字图片和对应的标签。图片是28x28的像素矩阵,而标签则对应着0~9的10个数字。每张图片都经过了大小归一化和居中处理。 -MNIST数据库作为一个简单的计算机视觉数据集,包含一系列如下的手写数字:
-
+
图1. MNIST图片示例
-
分类器 | -预处理 | -测试误差 | -参考文献 | -
---|---|---|---|
linear classifier (1-layer NN) | -none | -12.0 | -[LeCun et al. 1998] (http://yann.lecun.com/exdb/publis/index.html#lecun-98) | -
linear classifier (1-layer NN) | -deskewing | -8.4 | -[LeCun et al. 1998] (http://yann.lecun.com/exdb/publis/index.html#lecun-98) | -
2-layer NN, 300 hidden units, mean square error | -none | -4.7 | -[LeCun et al. 1998] (http://yann.lecun.com/exdb/publis/index.html#lecun-98) | -
2-layer NN, 300 HU | -deskewing | -1.6 | -[LeCun et al. 1998] (http://yann.lecun.com/exdb/publis/index.html#lecun-98) | -
2-layer NN, 800 HU, Cross-Entropy Loss | -none | -1.6 | -[Simard et al., ICDAR 2003] (https://www.microsoft.com/en-us/research/publication/best-practices-for-convolutional-neural-networks-applied-to-visual-document-analysis/) | -
Convolutional net LeNet-1 | -subsampling to 16x16 pixels | -1.7 | -[LeCun et al. 1998] (http://yann.lecun.com/exdb/publis/index.html#lecun-98) | -
Convolutional net LeNet-4 | -none | -1.1 | -[LeCun et al. 1998] (http://yann.lecun.com/exdb/publis/index.html#lecun-98) | -
Convolutional net LeNet-5, [no distortions] | -none | -0.95 | -[LeCun et al. 1998] (http://yann.lecun.com/exdb/publis/index.html#lecun-98) | -
图2. softmax回归网络结构图
-注:图中权重用黑线表示,偏置用红线表示,+1代表偏置参数的系数为1
图3. 多层感知器网络结构图
-注:图中权重用黑线表示,偏置用红线表示,+1代表偏置参数的系数为1
-
+
图4. 卷积层图片
-
+
图5. 池化层图片
图6. 卷积神经网络结构
-
-
-
-图8. softmax回归训练误差图
-
+
+图7. softmax回归的误差曲线图
+
-
-图9. 多层感知器训练误差图
+
+图8. 多层感知器的误差曲线图
-
-图10. 卷积神经网络训练误差图
+
+图9. 卷积神经网络的误差曲线图
4ncNz6abE*_|j&KWd zOSCS*C+4HnBb$dMl!Ub}>Xi!df~cHMxh2}1_KG~VPI4i$RYgEHa9I+@ZUGUJnPy|JH-l&nwqGnR&3Ul@#Ow_*PH=kph{352gax#u< =S zZLr-Xa-8aK;^z=m^mv#dB9v`ozKU+46<(Q_TZT$H+z`fQUX;viT$D$zmeq?2*CZWR zpTlnE+$@iQ#aQ&5nL`r;B!8`t?B`3FW`*d9>icAWVPeiJ7*;EzkS1CxDmPk~JUAHT zc`AYpqqh73(o!ZL_KEC!QHRdrn4l*-IBe8}*nRv$XTccT#68)BAew%tRq77 9a5;<(>{uHn)c|L}(#t_=qao{* zN7Hz)xxJ7E=2Cve%C32=t2+4zWuzUjogTMI){j*c>aAJZM8m$kin02u!bkR2;mafi zjFM{stYpchlyx*i4mxCOi`3eN#QQguzqJQS&S8yPVIQfeW2fVlWHL((zY_|$siK=C zr?`vD`^?wkX{;YzDejm#DjszslS>~_wygocA~-UUl~6x!i2w(qXRS^FHL>`7@5h0o zLc{QUT3MznA`WkvaAbI*G5epjy4DXyE1Z4Eg1z7*s)4A=IQn8ZzrJ-C#NgnSXuKly z5_&d?7k!^1yb=->_mb|}1ZYle(srrSs;m;@Os+Vj=~6ze1;UQZg(kb~6V@uj4Z$ct zStv_W`5H|DOQ^4x0HBG!W=2OD 2fN>0MNjgQ zM3TALf=w}U5>&X)y=`jugv5l>w{o^+eEI^#hl*-3R{mIM7 uikPk&=u2RzMiuv$=f>VORy^X+H^h1Mb2KZ0H )M&IqVhh2GNi z*9_0RO}bY$hJ(MU4MJiJ7@NQr@59`R%vZsbH?f3VghdRwiI3Le4=OAvVgVhaXDS(# zOGfRUZ($su7k5HJGd5@1y YokZg>X F~yz43E92*DWNcFI&B4(gw?u`^lY}I*m-S$jF?z+sO+O=>q(s&u_X-_<(A;0UeJg zB6qq7!GyLrntug$+XoK8w>T^`2e}^-7W|YoVpIq}gabW{z>LA)4&G@BtPvd-A6aW~ zimM(Ocd)D)J!d>=;Zy!{a^MYrK=RIdfv$dP@>yFw-hQJ=5u#H)@Q3<~6qhJP=GujR z4_Su8*Gj21cNZ7w)chcxsb|cNj62X@9 #o|1&d}1__!3Wx zDLFYw38c0xk279z=@{%XLPG69PnZOCbH-MP5}@VI&yPhlBN)6=cp|&ieAbge4NVle z82V9Vq#+GjoTFx{nf68qW||~)OrqqFlZRAn8%Ywm2-J2q%f&wb@>o=<83)4Yh6Plz z)FO(#-pkaK6nx-Z{9b)| r?G#^uY+ z09>~|%Gg|a(9C|M>d{>p7`Z`EtV!Fk=i$!I37;1Y4*$59=v~e -Y>^PKt6k1i5L!%GB%<+dKR-^Z z5iUSSRk_jEP(aP|a?j{&p>Y9{Q2c=rm=4FKh2bDGjQn@6S(gTH?@fNibU;f3KKz3Y zdclESR=<1$OK!}@?=F_uM>*#a%TjX}64)GrB00 ;#kw^p@U2mi1dY2C zWy(aiT{WVd^;RtStK~)Jj7d_vy#Dbk`__RdjorJ*4hpiRCI0$gq7UfH&M%M`L^(x+ zc3#rA>Ojv?%H4%C-6i>} ) zQi(;h;EwBs*J-MTM)@x3Aww9PV@}8BhntzLvQ@gW>C1BmmxfzCdp9+bjTmFIha$6c zCaHjXn;JTlt19ch$$q013TTn1;T!|&Ai}GSwZZb5u^#!h<-m8L8Hz3~1FApVn#$%8 zkhQh}uC_EdBJ=#Ja1GL~2P05znMV^JR5wf`4uR^&_WIt2jSMA~OoO 5B z&I~Kwx2$M)9>+49PO#aNC+;Ex=`-SXjj27C=iKE!MlNnA&K8Fo k<4(ecmx^%!ISQRI19kf)ktWT#n z`ysH54>CI_vTSmnUTm>=FcAA8)hfiE^T^sdJk?p#N?nG-hsz$77RV2yaQQLSryoi7 zYCPXlGn;MJW~^;ACYOx)4t=GJY}J<`5@GyPaOZ#`ofMBK#hu%Hhxpwi*Mcrmnvf^T z*{}x)5;sTlLU5R~p$pD5w|F73rRlalDjQQ=))F6>Ue!{Z$d^UxWsN7iMfWem%VBd? z37S+`<=8$F&8-!ARbLHiqIy-`bj9U73_SEPdjKPoo*;Xu^q{4gpksH<%p_;JCnOYA zZXOM+mrzra#5NCjR7X}KJ|k#zYBBxp_#%h>r_vwgoki0XL0MSpa+_6GvpIW6`4x7^ zSuT3kmA7pkj&M<@l{HrIq?`HA)7BXeS?kt72W1CwR)K~vK3w0 LA-vh69VpqL a7}TOd53 zoH_3O#-@8{#S{8d)rC|yiO#`rQ+`WKF(D)D6k FpFvg*P%3L+3w%J35WX50i4e##IY!5iI0w43PSc(2yq^ADQD=fps(R==u@NX-vbo zUjp#KENR8On8>n8E =^>q)#712!vxA>=vV#0Q*-dV+bcR~v8p_#>Hx~O>B zoa)to8iZn0k$_~eDw1%1W%2vW)A13vXX*Yp`*zyxb-m`S0`H41uoDQ8zA^;7)0d&h z){J?-N8ZHk;4fB|#k2<{U=vw%EaoZx$t`2mw=eEoae}WLQhx0xHZ%$VL=Jb2#!O^# zWHm&|PP{L!W4)N=FgPrN=*>mNSs#!)OO@u|*iJU_=}GWNU%6@|dD?hYE-t9GT9eMr zy{|C$VX+qtz0YR8ZUP*d^dY*dIt1R7!;rNop^{U&83KWSR%Ht$>y2&23lN{c&N!p1 z7|41Y>Z+Tux=LINtB+yqq&Aa|9H@HS-%_Rf9?2~?=puTu?wE=6CzHp+AgbWqDx9!^ zG<*C^B3l4*=OVkvX8YZ&E*CZ&RXCwzpi(6DehPamZ6(FDGwheRUM~|zX7ViXB(hNh zV|M{Oh{Bre*~h%uUu>e1M=I`>R)mx>sK6_`A`1IDPT$_2E{-o6XGD5}`rEvLPOxm! zZEnZ05U+(P_F=K&$Ev`vc87gfP9#r69t3?ypsrfZW4Y5HSL3*S!|$%3dOBIDZ7QUg zr-5@eYO}W?3oeWp+aG+w(V@|<+Rk6%F?*u{iLUl{`jC0{IvCE~<6U38Wbmc*>*cRS zo9+i0>EaI)3fZt@8hm~#KVlW)g9sHa;G=5x;`Kl67I4$R^s6ClI`&n^fDEe%i9URK z)fN#ovyY_%k_(|^s{_)=FkBj}D%_OQ#oNNO5<9#Uh-CYp=@fsOt 4QMZOL#8JIw8W|e# zJVwnvDf>j)7mNqLqOoKp;(B#Ov5QQ`1FQxa>Z&1L;vV=}qFLT1;Y=G;q#b9E%?0-E z9<7rXw79h`Y%mn7vrG=_oeFeM+!no?L7`v^idi6lN=${N=npzh$9W_f9&&o?`$atJ z-X-c4I&!< j5Q{yP6n zmKlOkbmrG_UF}+0oxZn#n%3JDPl?0jKXa{mNKj*>O6Jo1dQM-359S&nuM;AX8`7t_ z%NG%Z$3Phd%6`M*2c#|jq4fBQVpKjfK37n~OurV5%dxSegsHB}fdC%Eb^J66Jt8oV zGn@aJ-q!8<&m@XV^<>KN*fZ#|hyhbk;ePv@x>M%qm|(h6itz*gVA8=5VY`X*@JSx? zWFb?saT1gg&S%QXLpQ5}I&L0KE@RV|G3Az)7HBV~DmN>NlRq;+=5x4&$z%D8ZCrA* z+(j|iQ&_FkRfpr~P|>@*atcZ`*Ec5RFO2_w;&Tz1+5D%E$g(qyJ{uIjX5r{-1z8mL z;sjU=NhPTBZ+$6lrM_hMh^jV?WJ>O+`xP7G<=V6Cw*7#VmY4`@zV e71ZH{Zwz+@Z(5Q#m5|tU21I%d0>kir8mzZ{;az^t zTI%}H;I{$te(yEPQLS6z&_1%d>ZauNG60Xkq@J*993nO_AaWy_=5szCcm0iD@e)8E zWtTteafs6Qmh9Axmwt~sfkp$tx}#TQA75jcM_N@H8)yRSq-nAfCLf+ASzoem8VtpX z$Wpb9ML}PpnR$SgxZ=qq4KjPA!32_xIdk`{fgU?#d-GH>K=Ai53K*Dwmhqr-2L@E# z>n{eFuv^gQ_s-}G!5S3&(sxV|_VbVdN;-3m V=&1`iNH zhx)mvJs%l`B)2(Q!BDyZqFpHb0-K&$mlWr7M6hfGj(Cgp8%=g7uAUaiB(k4>`q|N~ z#pbtjmmhC!qzbv-plhdc%3!gJUL|%a+n|Eo%E~c)18U4k;o)YtW^fOM(i__A(^%P! zu6J$)UDPYm{^ILq8eI9<=$OYwx&VgHhi7`~ r8Neb*`MyyKVpAPd11aZzVQrW0m%NLql+H7%EDJ`rrZI#)3;C1mNyUcGuf@1y zmpu3+dADF ({|I&If4D_c165hmX*A37 zim<-!LU`*w@S(Y$YR $JQlghl4lD2c+F6<85q3-Z$I^&QXOK z=r8N9EK($8v2v8D{=ShAblmzS>+(zx(X s)Z)Hvuqb$qEavCwAz1^mE zVDntH)UmU0Ua*JY>(J&m?ENs#{tluy>;g8L&ag*ZSvlVvi$w>7p77ilJj7JC@Jf6T zbs`0u6Q5j*v23-qr1{(Ga)ArFC9g9G+1HxkKxwT^rPxx{c}t$?yo7|ihu#vnDhhrD zGyWqy2z^fSeLyFtFPu2Rb2-(1m@|*&bfS8Y=SYBdC&fGZX2FB1k2HLBwfl6#Tb+|U zWnE)*yvD#GOx;j2avLF_GqAaESAY)am`pq1S7QhKSi&j1mv=1 7X*3rpMou!0h4A;OgqfcQVg9mW8U1W!Vzi fR84=^*K+tjVI*Nc9x?VVHP~ zP`_rGY#GOOuQFt&s8<6KWOrL>(a`FD{^1LIOUL-_;BcuxuU8L1;H$k6@TZ{&;;ofK zR?XOzIwFKAm}h;W@1;nK#qvuv4VSxucrbfPOX&(83CZ?K`%Et#S)BN@#*WpS>ifB` zXpFv3*cI}khl0ITL@1k<3b+>eXVDv!-D(#3)TI}atIEGIYwkq~W!38}%N-wRwnY~B z47>O3G4p-627$Offnu9F7u-q&^|%pl1S9_fuf?C*I&(K6Uu=*Y_9G{gZ4|4Wmhj2C zMaS@WSWh47bkrwCy|Q-ghcp6y{pZjk0;EEv0^cFJr7+d)exs|3J_Z_Db Y2v3QXX69)>Uwt(aRx@)1KoL+w%slGr{$u{+gzOoLl7E?U#U%m;R z7}raDP7l#{m4Qt(G;Ka==)hH};m@PVBb`kqXXqp!lVyTdYd@TY{`D~0(I(B->8X4P zOE15M0-`s~tD>{sNIz~pgC!v0ha>^OjG8{Atp{e|#Dq_!KbZ(S8oA!X+jm=6#+zp} z%fBtXPxnuk4XdCIg28JjRmUUZMofZYs+g1e8;q#dy3YLgs@?v9HzxD_l?CO4Is_K~ zL1rj-PZ{rrO+)rHoS!$9mzr5W1zRQcu%aFZLf 6mKuQfll8RDe;|yj!9};J3 z6W@zIvf J{~9>#K@pHmW#Uy-bo@ zSF=Aw$* 6bB*a#>~4TDiUi9Bcf=Cb5s5?;M*S+I6uvbVmq)L&)r zKW-^rW Tc7R(iXQAz$ z{s4U}imajI_(m*^q3$%D+Pij=Y6!JXiL<`dIMUVBJCgc7pe))bx|o@CflGMX M(e)ieQa}c&T$-tiQwF%p`kAg03^`5Hh}RZY+G{ zWR+{@1^Yf{bYmzLq$PXuX+i)1b@*V%?ktZzGunKjLIFh(0C^C+R~sj=f?A@ESdR81 z3s%-zSpb> dA$v-EHaKA1iJ+LJjC uzgU2gX6 +rnAsv}L7Iw} z9_yG;$~Ec!8Y0-ogUDtF0uL={2Wqmx= $L)slV^oV4&x; z`+4?5aPZ5eDma7QYYa&@(^|9GXS|< T@ Pn`Be=2POKKB| zua_1Cg!@T+>A!V%uq$lTM{Ya^C75IAYXURtTPa{LqbtCw)3?@w-G5T%W>1Km9iEsq ztfZ;e4oJl$DUly8@Q-H>Fjhb*zw-Ep28FLPJ3_)IzQ5dBl~D{!RQuM2l-`|e79!ZR z kdWVz(N5Gz OXybXxYdI3VolUJRv*T>iedlDxH+u;YEk@bO5yx0oD==HH9&?hp5PBhnw7<=Hmh znTbQnVIG@&2veO_d%$?QYDgiusgom#H0o1M#^$i`C>_+BUBz){H4pUrt@g0z+a~;L zmuW&_>yq r!e=Tk^xv^N%t;exTNNglc z)|lVm1DGGOyi&Mjk@|a^%9Lx0@ltee($W1q)^fi09^fyC8gNj>Zmj}xYTp~qVUQ7_ z6Qo-~Lj5nA65dkA%j1oNBb^1Gq`?r_JqVYnSMN&AN>h1%hGeYz86Ar^b6dX4Xfou; zxCv{reWB*mvs;F}Zkoj(R(rrao90CfjC3){-n3_Ijo^IOK>Es5e@EFDsOC^e^* h@?txn+oX9GdI|4?JjinI$@+%HlZy7ta{)*IS?kh(% zb7us+fA~vEv5LZ))R36BVPaso`oKfHe5ihHt#wl# ^_9VV)19C8n2fwVa`$iUX$K( zc{m%!n`hbs$KGrYQpsAOx;1VwZSN07*sL7E!*gnb*{e*|$%Hke^<1k34OgG|pdLc; z`PnzF%h=({T;CkDwX=h(C#H_cfwru*MU3eL*A`CGwqc82uViGZ-}=tvp+}I1cT? zQ9g~U%#R5QKb>#KF^JXO=tM&BrLH)Tl0IXF#vmnRNk$cu%*<&RezI6$HdM}cOSN9E zzn>%4H=qq+u1uhoD8N0AovSUj@V_L$_* ddT zd!0viSr6s%re>;L)nED_mMnDEFzE0_7=|qrFiAKXPe~qK<-g~7L=G!$nwn0%sxMuF z*BKbk5}uxK5MC-txEkTMvE>xE0eo2{^YO@0c)8=5u2I@1Gp*K+>MY8enj>*S@ck! zG>=D@tX_~)k;QOnpK!TND=(L)JeNrrtJElWs7L~_p^@_4E2!ivsC+~u7#60Q*^~!e z97H+uB&CA-rOIX|xVgqp-yl27ciy!%ECitbkXh=E(|9B0>P%X;;Nt#)M@lR~H)hfTUYLiTNa;;?9`WtK*%~N_NEvlchhNJ*|?nNHVIG?7>H!pJ9ytzBW*w^@6h? zvo(inEMf3o=0G--2B(Wq$Kytw?`6}At4wAjFQru{i3BE@7lw!!Ln`_=AM($~3>5qx zITxGZw(X<~Xz@lyk0D{d!HH44bKW|5j526N&2yC5&kfcy{y22QazM<0zTGdZH_6Ng z>2Wtn_o~xk57Pu?4@do#$3(s`7-aE72mF)Cx3xo p zrka=?qEi;>V_p*t o6#5jDDE3} 5M z(2lyCx98+`$r$bO0;>Fb@4wC5&N=WYTI$qvViWFCsV-)TXR70_=?At%Q&gHVXg;+B zX0|=@p+v3X-?klYX?~G*R%)#-_S{< )lw0)_^CtHv6J%r z_B*SfF9f<_+rKce?KwkYd+=-T4L4`vcU|VX*-vfB0ME8#;8fW@?TWP&5wjEbH}mZz z9Stp8^kVdYOi#1zFab`T0lk^EWQDVk>S9a2cK^+q?s#B%-mSe`Nb-=8up{F6@Fh zL$Xq*GNB`#cU%igP07lX&K}tFeWs97IgM?awNQHPm|57D(;&LAp={jTJv!vfw$R$I z1BtBC~h#Nv2}^ued$btq8Q4@G(t}t) VEZb}f^Yy4Vfv$xE4;Vco~s zL+_u{! ^f-nSshv|h#ol?TEoX~pH|Io&L;lc zf6UjfneTAf?*8P!%o?8y2e__^?rq_iVmN!%VQXAXXkj1Kap~N)x^8uxCpaq0Do$M# zYqD(!xT_xO@NdMx%as?l%kXgZT3h~%;*P7nM{NkD{kzNKbg^JP?=oP}9F=y0@I;n< z;GuM1G;l?_c_-e=)$FIj%^{WouB<_nQ_I&84whn7eEBpKn_Zn%@S%H=56(MsVTB`G zj5C6)?Ly=16~EU;EMg?metA(obP}E26)RMJ(1C1z9X#Ok^Rm8is;eTYsw3{;kg+c& zmg5)rj?cdTnCdiWo@}#LUNsiaVBN(+nU#VwpO2=3e&DF+B3qVGrbvN4!IQFxhT+kO z)Ym+^cAFi=#g6L+k??6Np-5`#r#)UcU_Zpy6!RcNsEc-k|J#fI%g1d u7wknp z5Ap1C-qEn(i|fsN-!or{TgB<^PB?-#XJEan!j11sd-TJ7{6;g6L4_r$r&V;&&?x$9 zpNWXM#*;6q%PD-wUns&I+n(ku-au g&n?C^9u{y0E`QUu&k#03<|iVg;l2kxQ;t}ELhTiY!?hD`N@#RPBJs`^ABJZ z5Vf%N@qlU17a}_S{7+wjk_Fp-Nq8VN6JUDZwJ?aH7d|ZD1R8_Vw^NWGYuV@egijhj z%PYdxO{jfuLaGasAN(bb^LD8=?!ofstOnl+WuwBnvmQ)m8sQyRRp8~^pB_{k8W `Jo+~Tcbn5xof1mzv5=Z#VvQ-YNte1i X~KbwAKj?hsk_IXpq4e;YDsFOwGOE=yo05a$A7ybm-qUd3Y{bMbff+J6CViG1t@ zefoziF8_i6vAd31ToyUCe)IA(Zaa}JEdvw?T}$N|7(|Q?&$@7CR<5GZ(O&Nd5IQ(X zUff#B?3>5nvOODWCapy8SJ)pB)=c56wrtzvdj<0fqQzUy9otQ9GWRz>;VYt_H*rXG zBvLhAj+=hLFtX6VWbV+x!bvpfZc|dHYQe2$1F0z;>mPR!$8ev+#mowy_4pT+>^leV z|FEdz{>@^a`D6<)5c^TM6&$JCKP)1IUlX(CWMs~PY(HXO!9K!Jb!grtc11Nm4}yZ! ziEQ%?9hd3qNW5{ZH)*&3T)4t`lPC<8Ob2dO=;RjSpayEnagV>8pvjw9AMASss&}h! zH`YKhz_5emJ{>3}yDD^4wK_E2q^li&BgxaDw6bHGgFs&_Q3Jz<>1;E#3u-u01S|bO zVqVp&xi u_5##*Rc;m zwE%u6{CYCTzH>kjy&(UGc&CZL?|3H@O6h&j{~pc*_;rVAZvho$8?_5RGYrzLbf?k{(nu*tiAsl{gp?p%GpI;Q zhqQz!jil6!Al)G$-QCSFa30?G`_6a%^RM-tbCzo{x*VQ;$G-1kGl>_;zrQbrtB^RVAY3e9CaV(6#FX`mt$o^-GOa$j#B@ySr^I9X zB3ydh$8=CVf%M$+mYk;-d2ek8Q)iWahEqK@HaV2D=!o(*#|BXJYJk)jy?_EcQkN|G zEo^Q?quuUOEkA_a` bIB+ON;#5!&B{k~_q>ei-PzB&%d z#@WSoHh3J~A3S7)b+dI#E sB6qDt zG{6gQtvuzo<}C-ogOkOdfPTdA?1Z(&*ye3Ea=q~sktvNS>9kONR+$Bno5H~?L(&d~ z#Kfo* c)^XUJNYHPK`16a(+8)xuX$RUTUJDA#dnC>t6P7 zdY7baXGFwzEpU2Kd6hgNgFe?cleGGSW4r*#6Jk|FK*v5ISO!JG8Xd%&{x3wUe%BXE zywP}N!VM-s)p(diZBzTXTW?HkSMH@tJezT%&pz-kX0J=t)0S6QHS@4v_FomeZ*DMu zXeV=UfRsIzS2(|y9kjeCI$kkd^}%K+=+; l HU;k{I#aGh3W9dMD4Naz(__Yo%?Y#XI49kcj`fmeoMKT8Yh7KBfJCR$xEd#1{ zG~+wB7mTuz*~Rml<#h*b5&7Q13Y-Tm!A8yCXy;pmmdFm+VDx_KK?>eK)^4{QXqjCy zbV>(VspQiaGBuxx$?Z+7nOOT#BU5bW7;z tEWCaoon5FGcwQJPcQOs7Y;w9 z-VIe010#CR>U-GX+V;oNB-xfw!*K{y@P!?U4%APP2!(x%n%F?=*&*L?uA@lE&-D^V zwP#M&>>9lgzw5!|2V=h@xST##yVqmX)ND#cWOllP*TomnG}{v9pWjI3W|TRVadPFc zH5QoQv{^0K#tY%1Xdmu3zf-V2XkqgBX9aMC=V(A4pSnToy~6o;+3+g|jTamE%Eel< zGk;wYCFCN^8@)cryvlw1S;*q@b#|aHv!D{pqV(xXule&W(?8Q?VS?D)0)|!b+Uk(k zcg>_qoNPEh>V7@=x-cW`&}k)J+H>aczIQ05X@j}o4^1Q<0J9Z;^ z+ W|C=W}b6hEW?}W=)TXzV1t}9RfA>(>bKe3YeTz0r*qS3CgBXx zi#_&RydS3qE(qI7sgax|qkEG5WXTW$1=ZvveUKoGAL9R@->&F5FERBU+YVi=n}6gw zP!ymJF{1zBfZwMP@h-c&%=I>jkre6m&=ld~aF=Btjg&53*_GC(NamvBc}Zr#@!K2& zxO0(V3j1YgYs~rSHf!CgvkNmCJPu|X`rMxil;Zx@EI&)EEPBkP;V!xVsze=TeC GtK6&ffnfeAKg#6F+D?Phfbfl$N9XV7FF4+73w+{i~&I-+RVw*?6O zSmd`z=N%bv&z^sGKYQ*RnqcbMtbWw})3 3KR6nF+RXT*=P9g@FXMAwy^=C4XbBZ~ zD;Cng^(hi~{3G4~hj!QLD_YYEa5i1A_mk)r6%~1O`QcVb)FCvGa7m3w3vZJZ{D?iF zy44iT }nd `tbg0BVczg%W?e^e$Jlpiu6#Vh zolh9F{65=5CCbNY^5^Rynr11)BFN17fMIHsaq)2EE;Aq^-~d}wVlKYi!*1uXjAeL; z^^Zmd1qy&V$=VPZiqK68(RT=n9Pg1;Dn9 bI$%qJuo;@n%sAZ4Ib)DI$Q0`YxOqn0Y!4 FyYcL5%KvF(SmwHf1`5K4x}s9bDE?JE+Z@0I0RHU- zur2V|Z&^|6YxlR^ug2ca7lD`2-$btklIl%n?6<=SVO?tIKN&64Y;EMw
>P48dk^Z(}CXGZDks?~(S9QNY7eR+J107)B wqFl>r9*4$-Gz9yDuk-UVi^R!pRAwHhi1fqDehNcN(0c zLs`TI!Xk5YaoFdjnX;4_MHEoqq#rG*Y2ruhZF~=pW)ge&*IXfB+~wEg1)1Q+lc&aF z$FR+rxbJ+xruLP|@e9k){Y?`-mE8J4vSb(NfM{G_v6FrUPcwO$ge@F9$kGR@L%%%J zSkh}}`e&okam)Rn)ra@qI1HV^pI=zfy*@Lv?dG`U`ceD$sl1TzTxBVxOU-?TQ$i_s z6^!ez^+m6G$(bF{MyS~!MOY-t^v|dzJ|^Tjl8RO8@*{U#!(Pl&E4~9nQ7As}K6!f! za&Ol)9ZT!FElq>@n2Ek1Ho&nD#ee_aA6*`Ok=VTNID1n#gl^T~hW=sbn QpJ9&k3OZa~E%57tdR!|NZ80BZhx+W5_UUVUr7U8Y>^RO2M{ zUWB<&!0{NZ3|8QTl7%WBY9WOFrO^3rG}X^AS(4ZBh*yeqwVegwx}b&VS^4%}@~#|& zGx3uh{0_ADb%w(|?YF8*LFGbyO~DB$b+#r +~e@Rd~74wN|3&VMPt-1Gf%FJs9HPHt@@2!p)6il8cC_ z8+S6!-gwK;#3Elg_5L!t3W^+#M6h40ASW0{oV|%_9o!E_d!a zv{~P dQ&Zv5eMvEPFpnBr1r9#s|4+5g&~> zUviX*vD1@e6?Im!PgnXq#S%30p&Yy3quib2do7P21Jm|d{tP$_nSwH>06oL!=!I{CS4>>2!t|o z-sKyw-M-NMcY4&BZ#dgNj=*^N);;mLIM4ileU^NYBrA*;&GckPF`z>#aF#{^ftDAu zUX-hK??#BQ-1^r1?Hw1{p~JM(C!Y6cst9wAPc9cbyl(sz9{&L$<|K!;feh*+T NNwKhfnZz%(`CTZ>ak{w*EZo!cx_&-8|9TunigMW7fa*MRzev z-S+C2xyexMzVN3qu7lW+pT4Twp+sH;5L$rH3=4Eg=5W1UeM#v&J<{gYj|{!%{ITIG zu4CvamX{p7OrJkoECe-9A<6iF?;HGh#XvT1OF}kGCSTSIk!$JZj9>p(w(foY?#i-( zJGFc>bbx>_V?z}+d9@kGv^AFOcD(je)tGV@=My#;;X%#=;6VUvjLh#dBP=ZV7{c^o zTVm`!wdKe!SA`PEvQN%zLm5Aq+RmPBPzYLtezQB1(FSo3G}=aMd1d44oI`?!cF?Q$ zD)(Pk#OmF{zDu>S_WT} !?UvL6QuTL5-G%&T8Oz+tVof?ozEmg$uopD!#WMyz2|OhkrCh6< zc5O5n+99O>loH!~_RQkrzWqf(2q{8=68Et@Bw2;~8TC5$H@c@kx8lb?)YA_i^dB#> z&0l=_ATXx$=wv$He5LlhG^1PEYZ1c%Eq?k=iI0It@;v9#lf7R yCrPoy zS>#_^=^K`JI=Kir8f);X*a RWvEzR_d;Fi$wDi%8(WA zkSMKIa_?`IHA}I7T3mhZ`;R;IiIfdSUsZPfNcaL;-r4oGoVAQS>AsM4qMr`d7^&Jy zvy0Tmk^2u~Jw)PPDtm0RbU5I2NHQ|wj@`TfMdZw>++W_ZeDSU%oO=?D(b~SFq>vkz z8T7sWBMLAYSz x1Q1JO@)m0S&p>eN20S}rp%-?`j+a-cbJPl+jK!qWIF6W#?{ 9|KC(F5l9cPB(*5;E20>-ct>ka&wh63l``xC#M}vA(@fd=T*A%X?>c zHqgPHj?Oy*Kh%Nw#_wdwR+I>k-1w{XUM;NBLb27_^7ZR5{#r}EDl=g{aUwDL*Lp~B z@jg_;ZA|7hBTk#mO%=zGOq91ZP4_zJ!PT8$6?Bh1*`jCPX)K_G>pA3jK#DP5Jn3&e zs&!dJ15vjlx9GF>?>(VR)YBudYi%#hZ$-jBAW-y5z=73A0z&Wy#Q9=PFd%(`we8H^ zdSBJyEkWRYHK32rE5_)*VYCG6K}IXh^pZ^aW{&~fmk}rur>6Uhr1=uHp7KYey?LUU z=pE1Dpv|%V@1o&HVQz~c!u((RE*;(hsjS1Qr5NWMF$!_4%pH~e4wI^zs|r^zAr4&B zu9?rhgn+&G_oFRchk1rDXNERnZa(ez-LI3bXIkON!=qtlfUd4G8uX%I|C3h>TvxUD zi-!sg4PEb3D%cZf*n1FlEn?F*pbfv!>#tY!ISVpB!}b|YomqM`v_71_o|j~H&|se% zJl1qlb#yW28^uq#erMfjL?c%}cd|jbk@Pr6S3p-l86zlADNhl3bXt9qB=__~GzZkm z%Ic^*f# JpvmYFl>kfr;XYu-&Aa7Si<2HV7)Wnk`t=ln?j zxlYKP@wy+9IiG?87KY6Y$=IJ;*oe}&t8gAEWL_C1!6h>)a3AZuk23F+2;g8u9w1d4 z0|LD+yRLgSMfcAVuEjQvjTZI`3spp4 NpiyvXPR|sGh)KU}vSde6f zL`9ZBfbhXrp&9vu4z|h+zTtqAip+ZlyUm*=_7T6&p9t-bTkX)%LB>Pu_+`<&q4F+x z;VMXMi=5o^gzIyrI&=rw#mWBSQDNHi7uY^>*T10Ail}Ed^y_8|PnQ@j>h6cV#z2s= zO?G^N0D363Kiq;1F#}Lin8i&K3ISY{fnc5o3@Rx0AqIi~B0kuT(ocCzI*yEusc9tg zeu;GU=i$3tk(jQ;wcMEYoRzg-|DkgEzJwp24N&o+3(|>Ozuv)-r&b59`f8d~R?S>P z-Q;+X*Lyu8l^Nxj{MC${$*Vb%wVJC1fu~Xm0QcQD6jb11xWt6562mNH(&h?S{u!On ze~oUy0yam(y*2sh)M@jJQjmJJk o6+c_* zKP$}z%U^!6KbDY^QfIn8Yqz7@#hgabi4VZ8!wMOpdn1Qdq8HA3m8fIykCgmI>PhBH z)A%S%`~i}N1JDo{co-1-6z3v*buetI)qRy&1iELFZ?~kAF{~H!47z=4l9BT^pk#;L zTgK1b0^xKXC;uf=9_{eA4YqNOj)@vrq%zH&LI6*7<~aGG?&Js&4*91C{uJZx0uXDA zJJn`sV-fPxGc3nfn5y*Sv1+>k^J(!+SG>L3o24XWS9KEu=932S#`ni#Q*L*k8$gQ+ zCjIKaCjn`G7r^#Zb!vv+S+q2xgW->~nYS1myW{rKFX4^#%&(x!L3T-iw&u{6^m@D1 z_i)YNjCq$Xaz+BPlX|xnF6XRnfljmC&JTd!u_!~pyW?Q&JD7RGO%jdLjzRnWKG;x- zLK&>~7I}j$IgB5sWr$CAY7@;MPmixkc00NOpK9x$Do zSoCJ8W%@+(_fxL8!I=M=TcirgkN?d)XE+rJNA;ykuUpIQ<(Tjfj}{w0GJu3>&_ka{ zKn!Se3i&a(+Yb>)$dh!;!6CalP9;WQhFrz{0m~g=y*JozClD4w}TC#fk(3{9px0 z 9CF4@_ipM(gt#0%q2}r@CAVSpEd3VquOv~}+`7%l6aE?@!O>-7#ylK(-=8TG zgl-1y!MwPra(T!6D8G$pvQ5{&`ZHR535Ldt{^B*vK*cYzFQSZ4q6a|6m&Tf^0oD5l zueWp6oQ)r?UQdAq*yY-w)ALkK;5t9JjnS~h*wxyTgA?d)P)K)3udPpsPsse4DQ?>N za(10+eSdQDJ2GV{!E-kUr?lG%uw!FhAV=6_%xdrzR-$H)metl%y8H5z;9enejaU4y zevMZ+M~qg!40ff3zNsEc`v~~W)1_CsRus^ 41d*hyT+XAX=sGoAD_;gHtDNGe*k2jjceG;WB82r zo@XzjNq$laIeLOomCcQsL_Ivb+RsAJJ-0yd>%n}xODgZV{T!@H^COMx)c|gJ*Ir(5 zzwO4R>FnlIex0OeVM^RZnZ}=ZMN@Jy1BcBQaY>g~b8EU6Et{qJr2$umjK38DpE;CL zBkqVI(3g9uGx1Oz_;KY!u~|A<2&pQ+`fK{fyr$yH$N3rD@n)BmFk(ay$<~X_2TJg5 zYs|6FsJS-yt-g!GN{cNUOqHw><_;{Y!0~X0lM&K!aY)OElrsymIp+L(b&nCre}+6- zh?~temb>R3keyKuEjEnJ${|pY6M{%S%QB`kD~`~A?({Qr)U hBEJf=$ptl5T z r}7Cf5+6c2QYbFr3j)-6d9kSbVdAc7(ABQv1QH2vr&$@KEq zvSo_N_07~IUuy>ZsObm#p3jQDi(j_tRjx}^h@`87El)fuhyP?sFMaiH(I*i)x9QtT z`#N2-{Ov6g{kdBHn3b>pZl^eul@a2V;_-u{!?eV5>;cIqzx3x#t!p9bQ!FOj(jSP9 zMh;VjE2 nG5?AmmH7piM)nIs0M7>J)$EAZj9IKd?J-(7!*V z)P4=cBkSg(x~{1Wgo!>YT|F663Fo=M!d1Y-4+vE7gVDYNWZX_wMy^60iW0O_8A^`k zX4)9kd3{_Kx &{%GVz;z;}$`v&qth>d^?DUwGw~qx-T4b@!$?tB(LPc z=9c#SD;*k*MZ7-m%54hIQk}T0qSdkwO+SCXWAOw^x-HQ3yQ~U%)-*572ZgtG%e3A@ zK3JLd-ECwq0vz?FpnHVdmf=U%Y(V>Gz`>3g46>n9gYfWBM4mH`NaQZ=E{|X6MZ=RY ze@iC{ASXa&_PeBVGH@PR$V;7d?FTo95NES=!627@v-BLm9CMDE2L)O1Y?dm~te1x3 zDU4$G7i^SH7a=_ikM#MpLoN*9)6p?k_yh{iCRe64>7j3SQ^L7N;e}ofb+dBfvKaQb z4?M6(9a8efg|Dhi#AqNLAMe iDybVY>c{9zNyvKS@G2aukViV#+ 3~>81wN0 z`~6l#j`9TjLuXE^YX+4_WR>+zTvRN;7L4{^>~2B#46CnhqcIGObUAeTr5>kf^v_HJ z@#8>j3rAU0suZcMDm40dtfJsz6EtOxkc+}tDj6a3rO zYqCQgB-^k9@0}DO&uXF>`44wucwk|G(uC~yOedCuyC*?#YsKA$c3nz}SnzsE0V1@w zG=F4QJ-%y1V`Rk12G~gShT &W`0Q} }x;BEQOFk0+XNig}u~;JC`M$XVAT8F3Zp=DcuV);NK;SOMp3rGC$$ zR4lGTF_y|7r-1C)e7J}rZzy)wkFEM0MW6khgkS3x57sEFo!o-t;u6PRDj59*5jHL= z)eD)V)gK@*vt<7uvmP*wm{~h(Y*}2`3=o z;W?ayJQ4H3F$TM^H&d<2Y9x(X4; E{>0b_b zRk@T1vCe>F!u0e0;iH9^mXY>J*ASt?+UGlS xJAEIy~5x!&p-`Ip)t(TBu-3h>Rx2Z%>tksUarePxe3Pwc(nXB8Doc%!flxaeF9g z?_<@J?tYOo8!4h92D~;cUd^g;YG>LUh(`CUv}Ct?X-7vL)zTeMohkQ4lZW!%dvdd6 z*Od4?*~wJ6sAPp-pBVzd$jYP_tG}QdYx=3-D~!9yW+~<|P%QyKBvBWe$7C0q z&x(*cHW;z>&IPeM5SRrK`{A+*Cu|N*`Ry>Nl=HMB(%nJyhvO^jy;mwg6Uu5cVUxsr zxaz|x4t;$antz!B7ZndQOOtkx2DY&P-iA+Zld +8bA*Z)$aSAC;`4e(YO z^07PRin05W(GoR~^6GfqY^Y|N3YJB5rvVFE@g7X8V)q3O$iou+QY=Nu@Sr+RH!C#| zV2&OIG1#V5viC9iusv*b3D?g!TF$S_x!fR^&$v3e4EoqL5FETCKN%u(p~dXVZBpC^ zjZIaXf60FxIs2_wCqjZ5utLDNet{&8o3>IE`^-DCqX4qe`YSw9xxsX=@Zh;ZVpejP zgD zN*c52+!K8%-vNX?ntoVNk#GgDa9Ohs=E5cLrPiLG4 $sc1uguUBDv8oJRG$#cmpcuIT0V<(vuj2e|2Zrs+*8tns?T_+#THEE z=Tqv&IkD1X<~JKi?E!2asqdTqCyH$*%s^D8 ^EbuAR8VDu}%<<^YN?5Y{uR;U(9SwwtbS+E+u~-@Z)h+HLK#%U?JBrbM zUbJB(#gyl7UMur9LYNKkzbAbd*W%WlD&J )l#tI9wuJ3N^;~$QAma@KpYPwco;@2mO z^iW|sJ1uqKIWffUi(2MiwWMH!K8YC?W?Q&RN>(wZbstCK7w%&%t-9y%S&%(h=T^KZ zTTWtz44d>m20rc9rWncTmviq~#V@|{KS#XskJJJvGcN5<<7eUW?qN-5-?azxy=lDu zf>e DY;nYzvjsPyEY&&8Uw;Us}f55Hb5n2QpGDxyFfEjGFh zhDD~$E*~A2Z^skF#>z`8$~v2CVYY-_AK5ajaj*c|TbsGd@ZZgi%lx#Ho=RmF^4 S18wb+otfuS+r~)*%C-j KUR)^zrpz-+f z&~9?ta~KWQE%KcgUf;n*fo*n3umU;Rfhf>3d+`j;SAOO5DaN#)Z?n|q+3{FU(RwU7 zqKKg66-KQ6!d^}pF8iP6x8)C|mvH B}H(ZOsjR5dS}I+Kl2>a^L5TT z?8{)}C8t0%EG1 l2ZD-)7{SmexMGWhakaCkge23biK-?;?v9pK}=OwTJ%wJ|l zM{(KUhco)86c_es#!ef_Kf+bG5Tfwqft6EbP U(8P$_Z@m}TvToq_LT`N`$C)Nu}^u%z3KnYV?q7LGe+y+x8@4Gvo4i4Ur#QJd&Cn%93@bRaBKtr_~ApUVq&{)Yo zqWH_*mrN+Etrg07PNi CPeP0s@QmZ)GBd=ak|`u%OmH Y4M}g>5nLq`Flxx1J$pV{vo@u{uiLLH@g7U|C`O(v?ul~d ?KI{FF= r @Jt zCg&b9{V$KOK-goa2z*T7Y=Q)SR>@+)MTrEZkGLM2I`!$#G)6Htl(fEYCYW8D*Yo7T z3gYGas>}}J>=XU*K`njwPBiX2pQih&_A_>WN7BDGn%?*9bc|2PqEleFp1=(;fHCj8 z97!Cw9KqRGjg`=CKHpj&AHb=;t)}bOf8dzRD{p1pZ8uP>Yfb~NNgJVFkRq_8pQLG5 zf<})r(xSU)qpFraul_tVeYWlwdOGJV 5i`v(F&w1eK1 zW*`DJ`CwIq 8p`T?BF$c zGh{#VnJaqrTO8qlT^mU3=d4Ghd)_Rulat`s939Akl11CjGWoVI?F7TF1A)f?Z37T! z_W;}w1vx|-UPTw9J8NdQyoB*+T@Cr{PRFXcLv7dZ?UT@oLMZTu!&D!f!T!=9QW1^a6hl zWvHQ+EFA3Idg-is-r6!!;b9e2xgc;VubX8*lQC_}dmkd{Yp3-X5DpM{lWuyhcBeVT zNPHm2+(?s3B=w?sb~`W1(WBnfBVn3_hd$Ytg98}6Vt+S?tUjUICg6ubPiK4u9A_Fn zo1NB;{d^9;@xt Ha*5fI5VxRV-&YoX zVf)eITsRs}p#9XmRmp8XpIB#g_mv3eV^u&HyTdB})!5VayJ>By)ic`N0;{5T%(Ilt zr#mPsh36eQ&+v_fGx#!xG4FuK!AyQwfxKk4q)?rgp?o7wRs>=b;pn%WOS9B*@UMd@ zvyWm|LAS-pBoFFt<|DRE9O6Y}EOK&IM1z&q7U1{~A _m>I$00WP=TKGH$H?gERSl|cPoLe_ZLIMcF)%%N( zGruo3J pI11y=M3Q=sW)ar%*V6GiLk-p~O8EDs5RS0!sC z=&s4{9Pc^0s*4&D4THxH &0}H#2}Hw^u=F9oYZs!=cNDx#31zcwg9~!DPsQY40$y@i%GAaHUFZM z6-g&C ~+V=_y}yBZ|JX|%$P~->IVc>`_B^`eK|#DVlUy*-n;xTyf0 |m1y3pn*R_~>)V;$>)29zRgFh{Gbzin zVF@w~=RbJXJe?apmKY{tlBG4E(OT(QEmj~K&Vc;$pj1{mfM#S7bf#o&e{GvQ$ePDR zeZD0i29a#Rt0p6Lr$C6Ltvtp>(P+H|gNKA%_xD+tMbfoInyf( !pO-HG4s~T%zTjKXHp9v<1F#sOx+ds#34ZSu%z=qRLKz)X)%>x z2$M@*5BlaKISKd!p(-l!3BXmzgu1Wv&|HAVOKK6DOya>!pjG`Q&? 26|_ov>VOAD>a;Ys-G1MHdkOX!7Qr1SVftmZ-I{ir#q5q5by#* zP4IQ((+>k^niQG)EdW}kg`%B0KSf^qgF@k#?eJV<=f(uk%sPN(wnD9u5n5J*%)F}2 z5AHi(Hvbyz)w!E8I=V%1n@yP%A*Apw&H| C^SpcY@@th)H9nSRt z3u*^Ol5wGenwZdK5K!?ZKaqw)l4+Ye00+w2n2eRs_wv_=^7-0+3lwfA6E^kF;Sw`m zi$%-yFpHCcb{628>NMZ7bGM|?cRlP?H|US@2Xq_%(0<$lCabo=@cXtvN4#<|_J|L} zyB)t~dBHHcpz*-}QMdx|m!%G5FQ)yk`0KZXPdz(hIXr?zjwnH~3Tk8sWCtZYb>hJJ zvX#nC&sTcd7ri~fmE8vl9mS(g^95IXt(9#Xq*E$!o39C3Z-kcpUkLSKp{1jHdy1BJ zT?(l`I{gyNcp#OW2PQ*JU@@rza=!-sBd^Wai2Z(|os7`GNUSpvFmQu!5Q8na$gg>S z)Pe~L*kQO 8!HIIh zh-bLL=k`={{+k9MUVQT}N;7b@3!wuD1zK=O;NbM&mgis@;*C-%0AD`}3In8wJ0VW> z+u|FWn{4GH`UV)xMd`H jOjtR9i zR#2zzq2BAWf1r<+q=47f?)qOYGJ(dBA~- ?E1(x1lPy0M*zx+9E^txAGsg@%lfi z%?b~s)^3=y?)nP-Juk1d>cV%|ca|>nkAoDb1F{$JfaQdve81*h7>+;2`C6RlvUhf1 zu>mKmK><)_-TudU_09zbV^1-yLq) zT?8|h-h=vK{bAJhACbzSB=8FOzZc00TyK {nFZnu!jz`oe*5qQQkhU zF}wtc@sN@cSCuF+(`4eiy(WJ~O6>xktSEs8$yoo)G5Y^)jtUhN2>FY_D3BW7^;?y$ zwC<(#?A+Z1k@G_n+Fnqu8^;fjvdc=Xue03%ZAO===U}nKl)?ciDVZ?%zh}*-^x%v@ z9RgMQ|3!yVJ_Az~Hc_Aj(GX} PT9QIk0M(0XT2}%q)w-I zt81Him`M@fE&vwfO}8M)q>^5#L^oO&F7#7`8xBU@WVelNINz|?M_)*OF3ozcrc3yf_33ng z=~`G9yAwZ|ue&Z!aV|aYTnCx{g9ktk_`lNTz!d0YP!$|{Tonuc$)y_(L)9QLj-WBM zEPrTR?Er>N#(9&Nfz=@n+^Pxn!%_Gd&fop0>xb7-1_$U#q~@+! 9N znhdE$BYHjXx<$RSRC87}4f5~^6kKpS9-GecB&>CVAjIwBkN)~siN;X5i;of`cdE+1 zQouz%uhfy-y6_5q#LmK|zA23Pue8Nv30!dLy;gcYf4rsVu;FY*lwl(Ay@{P-$RW|f z;}msYn)m&Kf>!Y5GeI4}=GL&~;=vgv$u}tQGH92-5}I~tXE-|Vhc^wzCL8*ImGI@7 zTd&8?l9-3sA(9lid6K?fB-f$ojI9sW%@>hA0x@PWJMH~ag=VD{D~!R29@?X~5(}#O zC9kDHHuU1!X4iBs=iAQJHA&O~g@eihTd~*qy|MfvFGFQG;zB})BT7+6M{miJ$q@I! zJ24h+mb9I}PZ+&+yB7v#^I!T_+2B)F~=VMQr5P#tFW$^t;~I zz22#JY)kQf(*ukZXWXy--#>@kvNiMTzBTB<8cc*77{~S751QrI@F&gb;%^$CWq(mx zHd&xJPA5sLwM4*kilf|w>tJl$aK@5#7SqJ{^s2}hnB3$>fhmKE9v H?>gOoF0GG%WKH3806HZZX|y~Rs^AwOuy>HG&s(|v zC8Jc|wjke%6FxU?L2OlJ{a35GNKiF1J{q5QOY7=rwPp5UAE+#B@B)E>*KgDj-yZ@x z2o0L~^*cP#=x+0cA52%I_PD&Cgn;W049+wDo(6yy+P;+K#hwKXr-p`=Ju+aXk{a;I zn JysbEO{={WmyB^Z!sIab9Blc2Kbp0s>($D-a5y2F_HF@8yR&E?ask#Kcx zWoDmvR`w+jNwxhodF0&=wXk2Uo3Zh(K0Xjp(JL$i7;EXj=vIvp;GTC4ZFr$JRN0v< zH5fRL@u}`&+eUf=550d@BD%~I3obRY4r&lxnX; SL=FiV^&dTZkWr0Vt~RE_x1K;urT_%b-;@G7_3> z7Cy6*^zUu|CMLt~5sh~wiqRK02llt7s=!{)pD;df fw*XnEiwVI!u zw50X!9$;V|xb=mtjN?Nm3g$3n{%&5sYg4MrR{mKr-FtN6mabuX#FH_n@ype?XABZG z-~R-JjbaJTh^JyBN_q{cQ!99L-#j`zVS%^Z{jSq{8<6o$=`!CHTz0;bfUKmBmxqUD zLlN$Gl4Tw6yDsDQ0@RIai3*u2edW8y%cOwIl~m{3rO4P=a&}HmZlwSmLTcv4(aC4D zx>yPYaQtsqkHEa!ktdk9p}7}aqrhGb63t*ueu+MEhPR~u{$*aOCo7jqp_zA27faI+ zD6>q*VoQuKBve< h)7SSvg+( z&M)h-a9eyJKsRX1>@;W{$@yZ@{7|R?*$`%U3y3fNvhl*!Nf;Q35AyT?uz8_?ahd%m zBAQ|`4_9&VzDLc=tA3#ez1qy4jp$UosTJiv7q=Jo58k~1#$90(;;E<0pW}7k(JXPe z|N3n7bgPFob$SK?g(e16GE^Tfk2^GBMi8dnar;J*-&{WBnCu&+A%w>~9{Tm8r;DDW z?@0mF@YG%awUIs?6aQ>!&;okUnbYU-Onc E7TYA~st;U%kFFI 4$?aTN;tu z@T4fiwrqaaIpv_U3)oBdoY7rDzx`>_(b0iASnd|v$$GmLMhsM2Q2ddPdv@F}R{*~N z4`1*`rrR@&p7wDR;q0^lRAH4sz~X8sZ_RyB#h~7Ta>m<{>yzIu{#=}Jjm@Itxvi0W zNhDywCcgYCD_7NxTg$S4GCPYiCiv(zVeDA{p0(>OgxNi>mJsL@hy~#RxWfij!+2_T zVi(ck(lh+}x4GH1ncGp+w^d{6&Tkc2TGh%Em6#@9{ mt~$D0y<3}V|F4S7VJT1UcS#z &ouwhk3vJ|xQG4v%OAdWUCBa$ zw6Odb20D`GmbJNC4z~gEfTs$}0@LaGHrrnhlIV4=cJdBtl =9l zl9@pz2SrH|B#C4}KoBJiNpcWDz(7(20VQW<<}Tdtcg}h5y{FDsr)pPO1-n?!vqG=# zfB(9lF?G^nym5V3Suy_9TnYMCG5*TwJbVl>C@*pyb05rkSW(%M_@RC(_O;CPbjn=e z40)HoTY(SLep$UB@O&MKA79Z-`*5nZ6&Mv#_*m;BN`TQF=jx3xU*hYYjPGj3($yr$ z=Wg`voB-xRADNYL$>MieK&knxR})1yF{ZQ(AIN+_eQP|_3jxOL{RVeSA4!c)SN!}j zrFlB>t`NzWXOqz*{844`^3B&cLFr3TeJ%6Yj7%yZ>pGjwp@A>}*p0?8-*V>bZgY;* z)Y4QZQ&os=cWe1db8w4mFb6tyAB2t20u_TPH0s+FI)<_*PPjv&J=WY=;!KVJQQ+l< z?%Nk42c!^=l&vy0$|%fw^`rn$xuV1o^Dx%Uk7a1+0LP-d)kSgIFIA4GvzUO^P?V$q zeVcCsdZ&4X(2A_{5C0BmB#7SFsFqNFL&!&g5#ND%R8$^juzn!_y?(0B_XkQclcRY& zU&GI{;!R!r_8v-@FqV^m7Tk_a=kh8nhiQwZ<73$K-yX9p6Zw;s`2k>6%?R=9qw25C z2t?n#HfWz8xK|h9ujL=;Qj;YJh_Hb_mBkuDtt}ab>Ya^IT#=ivy6*KWX@X%l9x!o{ z_PH_&o4e4VEb?3<9^}?Ga@mHnqA)*<)w5NWl$pR*;9Y4@YxMNG?u!lzP)FNX{hAS| zXnB2q`K%81wPE|XNLpdEUXC(-CPez@x!NwLVyO31V3ZnZz58;i3m8?9`1qeD{>%wX zbie6yY-^g_IiMs>QdMFhkhj_t*EpIgQOa#(2&Md#btMCz=&+~Gf)jzh9K19yAJAUW zoUgFBpyla$v8)Y9s11(@fO0D(B2)X^+3A{{ytBf|<3&E*UMA1tB8yK@B!%aH@gf5! z`|ra4(ps#A(5-t~R 94-`U&u8+VH`HgtpOTAG _?dkCA$nuEhY|c6Awo6KGhoqPNa-TxSk55paOT?RTH}@I&8z` zNHK3)rzW2e37up#ntk3tZ*qFT_$m>o%bEzE{H3knGeM-HIz)HN=|O4%QQ02`El&;s zW$S4C$+M5#frl%Yh_5bu@@k%l`g*1ZW}U x~EAQ z>iPLKC0`VEyY)RZ4iaoXQ0|}`NVxo*L47{ SRA z*Yr>VQ 0 zaid`J4e#mGo1zSlYip^>x^~leGwDF_ZkxSN)t3t%WNW86k>w}F-fC-v@E>5zJr_h} zmJo|IGX1GRWNXVCju~_`8adBymmG;wo8m);rDAgDuj>y(YvH-QlKF;JHc&q=;%sH) z +-L@h#Hruw?~Pz7I5Ch#HH$oeVsk<-VY#wJt(GKvOK%JKDkU1@KJs70eSB-w zO;n1m%PdFtBeByhyU(h7SCcYWU6k0ZblTB;#3UFhz&B5)#+eIHSa9xQm<#YQ(NI%; zM&WlJ6kE2$?mJ6%{>taU?#mDbWM$!n3vZpm6>IUat`p iO$A{1*DJu@Qv}1C z944tc7dc11&+VKTx-)ZRPK=A?V0ZziiyOZ*@2i$;?;>9A;zUzT>Sz_X$1O~2NnDNs z*IYHn57xl&m-Tuj;91`0c}Uy2NtPSIm^ji#!J}%BA3P=X#gGbU-QW_Y(HJMOHs1X; zQC@t50xYeWR7@#m{~Q(O1>!zan()= ($bYoGd$qf=q9x35&*HG6nxe{QPqq@tuEf8YBxepo zN!xu__)6CAfkgg!cAj!%_DLZ3Mnc)Cyohjt@^+X3uWaQX>YvinK85_&sNMGeTA@U@ -CeKH zuSe?fNEmQX(jdZKJtwMp7DQp!c~4yChrDDS;>zKT;e{j4FbbKF+b2VHT=^EdKDXat z0a9SAPvVHD8kq!UVs61o!E?d(a}G@Fm-twN_?^sy@_*JMM;aYa&Da-;GVudW&cEPJ zuR@!P$&Kx33~l1LuC)Ksx!B#Sy^*r8&t;@02}Wrn{I&Bm&I2pE#Fc&5#hZZ|`-E7x zx_7+f4Tfj04`%bDinBo;v#@biR#7h3T0Jt030x0fPR5h%=h%b&jTOtSZnV z(|T7J2%b&ce^u}v`|a+f_wTjdNviN{-5Fq)M1q@F=~G&I{3cz5(C^xlTfUp&4}yAg z8dKu#bFeJ3^$)e7?*~@Pu*E#|MtC+93uVU|RZ?aBb9XkK$s2vmDz|w=vkov%pFZs# z8j2clGmSig=;DA|wRVw;r8r>NHe@!$-Nr2C%;rhKQ0s~rL4;41@|yOws2;{bK2hX| zs3`T&(I0<>tq;2Ciq}rshwNNgz3u5;uH_Y4vs>d+z!u~%Mfpur 5@N9FR^EMnirjEG*Vm=5-?VbVi!FWLQii0_{zdCxE!gL_F%&VT8-z- ztI-$2^#JWaf uj0Jlgvz$DryqF8B3^JqhM4 z@sE#J5HS?Bs=zF~ssFLib85;Ds4^ZS1*QAm-*jjT%~;PTA%KmgF5^(A+zt7_GiMA! z&g1nZfu}AfX8UlK<-j>v_~CG3J}yNsS%K?0dQhT{Lc(LP*P<%ziizQTrMqMGpCMTy z3SCMgkD?7r!B #NR$sl-knz$m41Tm>#CC!odmK@LYfWTk?0=5>7 zJC`dP8`+=m8(Pdv?=M6xo{N;P`N%a!4a^;V=*H9)otARMo*lSzjj0!$?AK>M0sa&{ zAHVzS9vZ#N@kzw`!6+%Ggump_ =gXLiu5G;i^pY3}M{tnr%E7O=}IUSOi?bOIiFa%wS*(J@Fb8t|)5Xyd@CH|R5& zG>zk_&ZnYti&mlvtcCqZjq#tqSTaq2H2>&0`DWwnwYMR<&ZckPP=PPx;OGU# Jr9*{CNB4?7>-q+($g27Aj61Z${GCMjw4rHbBPL;i5IMSKH~#9rkr zrE&!?<-ADwE)%u#J6B;hXesBcb;T5HEJh5{@V^XumxAl2n%2w4%5HvtJ AApftwcdd6Sc-ZF9f(f<0bt> dc=R|+-eVJT=bx@LV~(C9-I-c8e;480}HKGKm07Zy?vSg zadpRx19#02?m)qwwfUP4ZB(E<%o*|6ZN7m%Uz?$n?Ae1g2fwbQHA}a{m?#hx#{D7^ z)U&tVVr>=#DP)5qLC+^N13onr= GTaxzMU1^ez>&;;~66kdh zO;Hb|{KA67xJ2E!k8;itV?Nuuf1T0frEyxLPR7HJf1W;+ZcNL4tigc3iU11(nNc}} zqlLxkmX^6~`CC7_1w`hGttrlb~>E;N%WFxn*C5CH~Ao(!;-+cv+Q@~=?Ht{+6Gy7iL ze(`51u^pTx3C3xYjmw32t^{)iaC^+>+bPN*O570%9ar|#g9*N@)w_mf$x2B{4u3wm z@P=w7@$a%x6o9Hf*(y|rzmSp?NgfX*#7_zKU>6+TT{0)&j(%JB2Yd&jnvS1*9;6x< z1@;py8j}|A2^@#(Thnq>VCb37tZLKj)5}`=GB@*4#TDBvn2i#qoLw7?mm>Z1kYzUp zfW%WyoE{X)+mMg#bx=)d5fMTMf354nwvP#b^OS*mlV3T*+TPR_vfU(z;=&KEuUJbF z_o)isEE=Xr7+kM)FnL4{)c1eTcP{&^PBrQ2>l<6_|DKfI$+ddSkb3znD-c-9xnxGT zxHGEW0}W{YL6Q8J`e6zFX?ZC+qZltqU?Lp_Yh(xqcWvT~%uLAyGn~&sQ#jMnqVmmr zvxHO78%WN`Q_{Lh1?JUUk3*4E$^QsNh%tA9DJ49&Zp{R}#qCBA#ppHU98@|G_pR?Q z=QzJl@?zQLTMEgbQX!gnjtNl`<~Bye0gaow2@_IXiJmk!$lmJSLz|E8n;h;FbxKyX zlR-~Z2!m6r?@FFB_?ar_R5}ncZtQkgGVej>>3_M%M(>68$-4$uPM -iBnZ>)CVtKTooQLpJ4Sy|CT*X#rgF>a*pt`z{Z1k%riDE`U0~k zaBD`>`3+Ry4gz<-g+(KBEvcr4i!{nXZh0fu5jCsFNxRV97l~tYZ7g4`qQ|F8O_)bq z%F_!kx7@LDL)FO+JR*dak$(BB_7ak`c?>C4a>p>#@$EUv&ykWSOjP~wQtO|$m9;Sk zP9*OlLqCig?lK)nZAu@IGqch#wX3Pf+a~8aH<*iEY?=xo7G(q%MkE&9PGo&>tZ|LT= z5C!qR#*GHBGrs)p$3_0;Ku0;~ft9KWA>n%0=yml|#F*$O1Mh*Obg8-$Mu}S7$jjAZ zb@#w=Pc~GOGw~ 9V~$$fw =*Ae$3Eoy(X>Sj~HBL0eNk6!SK9h1!rWDQocsYjyDuVp}s}@;ZPe`e-bu?;N zF7GDBZ5h&BvR7-sQ(;!qRkXrtuc=RRDMR?HJbS0ZB%n>;e>Ht4R^$z>mUnHQJJk{w z3C38(F_E?WzY0w5Y{uJDT|YKyw(6+6xcAMAY-~!XCuX`B-z@CuGAdmD{px|eW&707 z%q5r|M2UACui+~s#zP?{R>=RG|8|Akmcn>?hz{UxF4pPPy>lQga8N0KLKjUw9o9>P zsg{X9O>}(ctgr8sV&;KkV}uM5`0n+5Dd?uRddW-A5YsZ83kzVC=PQ*?Kwyi-cvP#Y zfWWt6GIEk#hkPOo-AG#K1QlQ?V;jm+q<=?#^c89w6i3TrWoe%DimE190T3S*kcr-8 zyExR_Ha;B|NBZmD!$ R!XLT4IJgbtyWi;C{o>f@D80z8*bdj1HBA?+KI!Dt}$@x8`wDk-9jQ z$y>c=uz?D=3YTVcqBOkhT>i*X0JPRHe~N~o=m7D4zx0p>l&zw(kx Md>6; v|@y7{B- zZ{UkN1$zG@?+ZhQr$+_Lwj`LhE>avZh}>)Bd}nE?L3vr3X(Qe~blW_hXR#(#rA4f1 zYb1JnhU_O})k*Lb|7H5>+18d8c^Su^?+?F|vyx1`C5wJzN`m>B<6q3c0wPT!cb83I zoGtd$PxmS)wh>C4*nuH*@*x$=|1^9qGe}KI5!}ROE8Ij s`m{Y{ZA*jp~v|n}~FiN}lf=?32h&pu;Z2{~VgHWj5xI7o^&jeUA3l z=|0Yr-D32(0Ron`uE9IdFi`RRN1>q`%;N7m$;qcOUBF@r?+Z36;4I|RWtat1)b9O% zQ`FWM;Zq1$LRbBG(X9~D@FAe6be6EFly*ET7vZdUShq!!KR{uqWjajDH{QASF@1$> z1jW%ih;8t`=%M=|Je&%u{HE1hn_E805FJg%Q;Fyq(!7Pb+quUbE~F@IdiUqRldeEu z_lor2{lsJnU#>R=j_`ld(Z?=yMvwa2L03?0aQ0&o3&=>7xQfgJGY}0e?BBJtvrFKA z7JxifQ@#ieTY$BvjKWoGX)PUvuoVxqVEx@m8E_^?leG^n!&Kmz-?rp%?;bY(vy0+N zkZ^DJ!ioIPv^?B{Ke+4`U>fhtlV5sN;F1B0BtjIt@tl-$adpijb@h|{vCFT%uixRP zpy|mNEf0>4R?(JlyTKH)e*$YEwq;6v?_4*WTox175>gg$A*E*X%zI$;N7^0Eso`bO z7spE~3?tJ2VM(Fuk?GTH+=#z$;liWz^kQra0!4EE;(fjj`|tp$1mger_lBTz@V|Wm zZVj@lY%Uhi`8+~6o{xEc9 Pdo)7t;>KyZXDo=9(TbdU?OLWC=XX z)6#o0OH$d?*h+EU40F8s^J5_pbo}IB{yr-HKOZ$(5pontmn}|&X9q5QpN$hQ_k^Dl z-}|Dw`Qdw?IBxgKuO}Xx#x0ZLWC; s}Q=V8my)G8r8{4J&6C zqpWJ6OW1oHR?bRP+n64vP=(~U6rPU4CZ1)PrV++c_<0h4s&sg0w&AT5ydz>Cvaa2q zrC8%U?MvFITm#mqu2rXo_5Iq_-4dRG^}B3waB7%JNs8cRwxXYEr>H`f1Nc||{xjSF zEy6^@Gx=#z_@f8Lj*u6#dVQVo<-0#ht|`-*-fsmjdaAjY6DL+M?hRT65cY2V@cbIB zo}&~&s+-u+7DJzKhN1Hc5}ENzG1fpo?(>u Js|5{xU3=8~ zvo*+aj4iR+zsa*zkv|odKff;f8s~dG)lwrMWH3Y4AaIA5Cb|(D&ge*Ng|NWbO{*7RwJlDo7ec zVpMM aqH0s~;0yY~P1}NBL?Y#d$x~8HQJinI6x(&MVD`2(5>h z6wZz|1`GQvO}$f&QX*onHnt{zPB0@SE$__ma$5|sh3{)Z)idln g|QU z^c!0o70ZNCOsA~Er9MG!rsAqwiwHsrMJF%!TvzWoFKMXZsteXt6bRGa1_3MSixyYp zw|;*aA5v)LEN@)P1S;XeMX_?F#7vjBKN{oC)n?aPAnI;?v7TU?_({Ldo9KB#H1DNX zk~k8P+Zo4&jLkt3=3d>}yD2$jbNR$n=&s$@(A{s{eSKQHf4;$pm6N=`4Cp484Dc-y zV-9;vByDC|epv?KzFlrvKS2c_TmgmMTl|{$a^zq88}pz0TXO!!IfINBEMv?FoaH^V zg?)ond2yLNaXKRR&L)%1r}bm+M}r$4kfAN>-~0%X k*lWazdA)dyT3bT=^#kp zI1$xMFUW+__-69@+Id;9Vh|Uw6*?2n9n4vzh^N?HX_Yl2RZ$O?TS1W!b;gV(I#)K{ zbIz0(?zw@$vXSZWQ*pAF^|4*pH6-d^hOy^hQ+O@?U7z1`Y;Ct8Id|%Ud@6sFzHf`H z1n@M!M_9IiuAp~`pZ1EtwBz#ID~Y31$L`TCc_a!``OUj&r~RAH!Dkv3A}eqEnbFVo z&<}?$)icUd;JxkDd1ycRmX8AiLCO%@J7eat<2lcGT9(XCfzq+6KX qHp6F5@Z7Is?IeTuo2X2YH- zN-lVNBuVPC&S3k-{a-v-(V|y3+D*!Bs;M}iB&BEFPrmX?uiB3Ho8zh9MX4Xn1;nhu z!htI1;fh|yPmQ2bRGs~|=U+sKAt0xry^pxndh5&hU)E0{sH1pV%$3X+M|Y3vwM&ie z$m;fc-$U+S2X$vXIDwq$zHshFTA>h{zW7Kqcf);mN@sc7<%nix^#ct8eujF(Qg6P} z$Q(aXd~~UBW4!OiT#0EB%-KM% cJ}Fw;`Bv0tTyQgzgaO3n)x7LEaeeaACit_cnh| z&oy5od`@mJp)^ybQIHbI<=oB7^*B}iDJ|IZl~Y?SgNWXx@FvUUzLBb@Vf--t^W?tz z`7#YNAQ84ov+6};nY$4M#x0%EuGys=A1Mn~u9loeozq0gJzJ%jKk=Hiio`qH@EV%p zJSiw498hdK QGPBn&J^I& z@2(Xmb)73@Po6MwVwXsxq7<%s)=%!3errWiWoB`1%r$(uE;%N~Y 7 z%MQ^$GyIDOg6J>BN0Y`D7B8?Z2M0kaI}^?Ud$UnEan??L81YAsMH;^bj_>oe1Mr1u zzOvNYjP__gZ=;Guooz$7cE6z3Ze5BNOEM$qA>gvD79O?mJs6~C@@~J|OQ^m_1p*En zC4&qHsjrQcdXXl%?S>ydqPxTC2#QSw5?@qc>;cQdZq)e1vFT=rf6e!;lH>b%(`&J> z#Lr)pbNr6O8~J^@jt$}hK7KC5ekiQ;D4GLihR3yvZ>n!Q$Qu*PrHrIyNoSbNyZ_wb zs(T=DO0VsG%TMP3bYONl{G)oiexYZ3!*U|=)3Coy81(iJdRn=Z(veIEjOc`HS7f|J z^OLNEgximO_Z1!TLpJHV?N+aa{)PXNF?SyJtJ1ZDs(G?%FS*q|>1+1nQo8gjH&pIb zYhHTk<+({$S$1kT9 M!Wu~ppT7uJEzT<3)_b+R z^ wfb(<6DvAat=~H^Of&Pk3 K6w3bt)1d&INI-dIgR=U3M@UE zH{CC|^~p+WerQ${jnlys$@<`|ue{L`*}A!0QGehd(F=3q1q|g0`DKV1Md$a9+IAdM z`0rej^Us1A_QsnsKj%~uXBPjJS$81h0O3H$Cp|A)$_Xk(yELA c2d>lwp52?{Gf{CyEmv53U1qtO8g@v^|vk7xM iC>1qe$U_UZq$Ajg)s(;pCw3~bMEf4e6&~4Sqs;A2t|#)EFzb8GzE(@{(8wS z)i*)$j$V!PHXfz-)?|$QWo6q+o|ej#nW92~Uy_WEc*TyX9~c%EF{&ZQ=}<;rga5zO z{*S?5dj0t?-)bWqzv~j4;lJAF)m?d4a&(3?xh1&dr~wy0V*j#mgMUa%1|n)hsNvVG z=jJPIjTL`K+!8{Mo?DO9VHm7x7fcN(bZqgG`6M>buFY)sW6EjnZz8sHebfT%k-l|v z8h^QW@Wtm<*3WN!>2jjou_UGFlPcQ}vzKyEW`yFY_+uj;U4-w+J8(~WaL^?J%JYxZ zJDw133lPL9x(V91SJGjA YPA3`zeo zqbikL?8^~tPZg}R+Nth$yzsHQwaAt_;D>1hc0VHWmXwG(6WyYCfL{BVG@6wJ )d_0hc!i8}jyG_C9#v}V0r)Xrzc zH3H{{)R}*=A}_XAq|&he6hx0I^lbQKtxUJ%L>{Sy! aj(-8T z=Ly8ggwE=-J6G6@Pdy@}WU3f&-a~!kyw{UV@HgltyZ|%5ZuvD#=B3v~b6-y+Iq&t7 zho<#|H%+T~q1bc%^l3P$ZmA2|L5#x)@MR7+E32M(oX*j(u|Z(vg3tm=H)I`~XfX0h z)yN>=7 T?rZloXoQx*T?KKs iG<3!PO|{BW?z(n9sH>#2EhRZq2!JSHD)@snF)UT%K09t+QHXI4Iy?9?@Nvlp*B~ zzs?_i-G9HVaHA;uY3R(@<@rjJtNWWRf_7l7Lre(mZB%tYBO5mFGvAvMfZtzOzt439 ze)&^(m@ZG}Q9d}h+DiBwbj+p{n0$G!7 ?1NSRVQDBMd?`ny z6y1?|^IyoLnu2RP#JzQ%mZL8spar*6*+(nS6UaYnGfkaPo=1CCm6YgpXS+cKSUzh} z*`U$2EpT@qimgPMJQW|+;56AVPnDTMn4l_QipzdknH+eQ{hL9ir2{7~-X5tkEyOk6 zKdAivnvFyh{Q|$t{lTpee?xTJL2GpK!}V+3s5L+0_dCxtP1TY_@3{1J^1Qqtw`=P8 z!U=mxhH7G^{+Zv?bc6=uXn)vH#4oMabjv-K)kz95jp?iX{ItqqywR?Jh1X~8&xt&Z zOc-T2uCC}K8Do0mKIxY+7E+Ch&3sT} *cnX>t(g2qp9V(xlFi4ZYhbQY;(C6}V6Lb~DL z)22W^+#v$8E^jir9S&G7`ZUv!DS9L&XbQ%8dc4ko#%NjW`x8Z=kk&grA~8Qin)D>~ zZSfKHW2b6Kpr@7exWnjqOc}i8W?>hCrt02GD^&$3)15lyy{hrZ|GnqNpId3_%qi-d z31TD|6VBj^C$CgFh9ko&-!2Kcd_Z1OpZNZa$dC)dq|Ro9Epk&rtr&w8JSD%+E_0cJ zsyhOl^Mq9aLKM|Mp6q?zWZK#+7bybFyxn#X;1@U84#~!UI>cO{uodGcc`5>vO}OoO zLt`Px7r)=d%{IkdCISC1r*#XZvD6Y~fE$1GsK4GwZ-iv2?TFZ8<(*v>GA&^I<1L zkwJZZ)-yk65-|JGa)@@OW5Hu_)44ACtn}YhwMQ3)6)8CT#NbcwnplJRvd7%WnR&h5 z0_Mf@`r^YF5;FsXAL2&GuqFu)wE%l2SU+*+BuJi>b!7rSTh4J;JFu))98f4kCTcWv zXv@`phQ8l?i|j=N*2Ow6z;%x?w(L_v-bQ^?FBbwE13{KfX2dvtHFFPk5et9tfQT4> z`b N3!Bi2hTgO5hhvQnhEiSDzTcs@eQF-uB&V4%#=6Ijr30wBe BOZ-nkKd%W)2?2-Z!ykzTvm#z>4 zo!a(y0WppLF`E~lJ>?K)2yXT72&p7YL1Up534*6kX||h$*)83ccG3E;`Ph~|@fMYt zHnmEpD<4T9@cHOXf_iFdDlD%u%u!2l&k1E}qcnQ($sE&JCkBe0t!!?PP8<&!y+xf} z18eg U)RT^!c3KCDh zk((=bOEKQ??_F+Ky2{$HF~ej9gZ#fVs?;r=r)~>2))S|nyF2^Q$fW|>(tVZ)^SV<{ z(+{zFwt9!?!vGSBX`k1!)TAu~qj%uev61~w;4p>~3W8cd)ggC@l!ppv=Y2RfpUDKJ zUn0O)IrPcFUfg^vrfqY1y^D*6=PU|K+vXSjZAfL43U*kDhLz=J>j!Mo@0)rX-YAk_ zG$RC*26=-XaJQpidW0xxzv?xVIu}DZsX&v-nhw8l?ni`1Mp;$v4c^q?XRAvsBfP=4 zvKUhsVEo+4*zDUnd81s)vSESg9=@>Y+!WgX{0^QTDgjiFANu=oA1|ZwBJIpoR%F%} z*zQJtgx2w0Fj-Z3gaHc}$(OuR>k)rKTv>XR37UXxDukGjP}^K*9OKiMnNnQJ&+a}* zDyQp|AsVs6LlT=M@AFt5bfIk54}yQc9`}WLQ^B=LsC|X)(#pb}O4}SjjS$N{%9;8v zBgID;1f0-lx!TH=Z~lMwGaJIearqQ7B*cNIdS^U$XkWFlCpsb0=W_l~vFDE?tKc^| zjKHyj2m5%MD^>#vbn5eaTDs;M@?eEl3scgRb@BK7_%}moR-+fY`)nwTOvvt}?TXSQ zO0{_vUHINKLC-oXt^>bxP1}0rvrT0E)B%g=x8S@3!J@9rq`|TEtWirCgj?LNSI$6w zLSU|H4;B2l&hB<{$L_Xg_k`AsAZwRnsx%Z*rHo33#mtBpnO*xuv!lfHY?Q?Bd25%c zlR?x$_Cy_`yPeGMRGG)-KC;qZIJ9mu9J*W9Ra}V3wfb=2aXEcsVbd)^Ww(&i{Oe74 zEIw;tGBYxgBh-kt8tSHL)|>_wss=vm&HDr_#+5K5@*29{M`Q+z_z8vS29Q AYhGVyy&MTGrX=%pQ}%Wtew)GC6G7`sLJ3+12nBWhwP ziU?_s)k23xq^41-eZ?PRBL&Y|%6MLy=oZ5A8x--a8*eODS7@4FW7T{b|4|tR3BkWi z=(+nc2PHuNuf+HPmyJf0KsFs~#%NPggi}qb{ +0*YGoRQ6R$E}XL)OIkc^|1$ zNf+mR{L?r5vw9sII$x{JsXR9RYT`>c!vZ*!{Pe=nV`F3Ka$c;QjXT0Z=vs;@QF#51 zO3YWrLvN<~Y)tR;^@&l3lR8cXN jR3@6#pWx! n=Yp`7OJivHu Y67rAN&U_8$v$v;;(ZWD+iBEjz{BIIAb&sFot0v;u-#i!khD2H?r+iapP53 zAtlNAa^%;4BVet0 >!bQdrkg2a)Rx1_!e+h|evT`A^Sw?@l<4A* z5IXqh?7;id+)=#dImNYh%`NQpMQvs4Mh~xvfMSMr`X4G3e1MjpY$f5O @QcmkXKi31s5 zqxKIpD^7H|7$UgVn6|Y*wOG%*^VEM@_E1=AHo2K!ML9b4-rwN4VpzO=4?87**lBB_ zv}UG8R+k)IN;AU`w!7Y|y%n8_+}_@XDO~sg70IA24`RGs;CzZxWhEOZ#ZEzX=vLdP zx}D13qR`_gp&w`%;aBH+2(zB+ci|x$H^I~V-sP~kuzK!0pjEi+SXl{zT?|ww^Kq%` z16MqTxL4nA4Lg_xCd5{?0*QMXAqtJh1UOrhdZP}hWiA~eclWD+eB&y;wC|K7s;**+ zEA~88qWT3n_=6y8iwu4WuW==lckU7Dri43>iU`)aI7?Qi(|p|kWBzO`CPKAtg*RF3 za y#x|D%%EISGHN1@>z@W>3(vr&S}*ZBHXFs=;lb >(YjOIczo8Z6 z8`yf5Rw@yZ`TDaVEdJN%CM#mu0MBKFH(*7e1G%j*|G7Tnm+^CN`nWo;RC4g&3(Sau zb!y%KHn2DaiH hN z7;6XJYH!hmFi2!%WU%&U%F{rHz;Kuv2)@FZ)gMim5@aeyca*-IyZL8(R9#Bt 0K^qa@>^oye$?R|%kd3vctP9F1{aP>x03i>2=L$Z08k?Z#^DcYyD`H^5sNxL&Y z2-A`SlUT3ye-6`U9)zRKzXuG_;E{JT?~{Yd{aQK_sTAX^N#4Z7v3ms{K8iq*r0@NN z8S5p!HmW6?N{*sQyuYplK|TyroglW03}ljy30w48&X)R{o$)_UECN|^+s>+l0rRa( zy~2ejng$G)m$ENgpFbBsGo1h93~7&nex!Kz;mJtAoxSu|F?&HyE~xOg;P!e>B*{vz zzER}Y-ko$QD)0d#3M)-;byXALBc+ ?>w?q6@V1m8rcsR~&d9Hd=9MOe>Q$y5VTuME2Iv z64Rv2%w^@)n)%NfFL8!x!Z}%$7RLLg?mu;e(02{@DOb<1B>O(#fSDt*)9Y*hYHI*{ z;9nhpsF=R~hwLC3Q1x^v=MUu2j~!psQVyRPVFI44<3o0OR2_;ZB}Ur&=xBZdvkBgx z=m+5vR8k(<%${KzG%%{qW%$4V&hy2-n3S|DL7TvC30pbdGi=P&FHe;LgP^`gUAzNb zED1Mx=Af6uL$&&;2y+5VFu}WR9o}tSL>RBFe^bt(MwYr;LbyI;?xL69uxUZspKWP( z5jRc>O(6~jgMwx5FvW)%Q%>W%rWt;?PS;otx#Ny*i9kaIdocXkTP}P+s?%3G?kOZ= zc2^Y7EDJi413d#_qp0k&+~!ImGNi5LA^lBg1w=7AKYuhP{^(ZyE&5+ )J&5F7=3|FD3EBqw3_;GhFK3UM&w=-Xpk6F19Op^-5fJ z(v!*(7jNq(EG3{ntwi14a7hkc>H7=GXJm)=JYm7X%T5w({o=dPCjh@-zF6;`sOMxb zSAJ3mT~K^9X1d>(zp+5_EnRO49k|g*=y;7h6fd)=Xv R z|DINV>&`+AD?NtJ4zZiImAk+;7RER&ADxvVSiM{Nw|e(|<_8f#G*1xeC3uU_{4m1% z2W$||_7W(ehI*f=Unn`5Fo4hq>Km5f{FdT0s_B|R^J~6=Wz%6RwWLJj(+{eEDJg+G z#V~&TjPH=U8qT=yMC=E!bphyrResp2^4hOlP~`>9=pelBR#7tviRBnhAkf