From ec4464f108d74d916ace145d24554282b353daf9 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Tue, 26 Oct 2021 14:17:02 +0200 Subject: [PATCH] update on book --- doc/BookChapters/chapter3.do.txt | 43 ++---- .../_build/.doctrees/Clustering.doctree | Bin 411604 -> 411606 bytes .../_build/.doctrees/chapter1.doctree | Bin 878282 -> 875170 bytes .../_build/.doctrees/chapter10.doctree | Bin 419044 -> 419044 bytes .../_build/jupyter_execute/Clustering.ipynb | 8 +- .../_build/jupyter_execute/chapter1.ipynb | 140 ++++++++---------- .../_build/jupyter_execute/chapter10.ipynb | 6 +- .../_build/jupyter_execute/chapter1_11_0.png | Bin 6597 -> 6712 bytes .../_build/jupyter_execute/chapter1_13_1.png | Bin 9483 -> 9520 bytes .../_build/jupyter_execute/chapter1_27_0.png | Bin 13929 -> 13681 bytes .../_build/jupyter_execute/chapter1_3_0.png | Bin 10153 -> 9674 bytes .../_build/jupyter_execute/chapter1_61_10.png | Bin 27586 -> 24767 bytes doc/LectureNotes/chapter3.ipynb | 75 ++-------- 13 files changed, 92 insertions(+), 180 deletions(-) diff --git a/doc/BookChapters/chapter3.do.txt b/doc/BookChapters/chapter3.do.txt index f1f70e6ee..f831f9344 100644 --- a/doc/BookChapters/chapter3.do.txt +++ b/doc/BookChapters/chapter3.do.txt @@ -1245,6 +1245,7 @@ y_pred = y_pred + y_train_mean !ec + Let us try to understand what this may imply mathematically when we subtract the mean values, also known as *zero centering*. For simplicity, we will focus on ordinary regression, as done in the above example. @@ -1281,20 +1282,6 @@ Multiplying away the constant $2/n$, we obtain \] !et - -We assume -that every column of $\bm{X}$ is centered, which we can do by subtracting the mean, -!bc pycod -X = X - np.mean(X,axis=0) -!ec - -This means that we need to rewrite $X_{ij}$ as $\tilde{X}_{ij}=X_{ij}-\mu_j$, where -!bt -\[ -\mu_j = \frac{1}{n}\sum_{i=0}^{n-1}X_{ij}. -\] -!et - Let us special first to the case where we have only two parameters $\beta_0$ and $\beta_1$. Our result for $\beta_0$ simplifies then to !bt @@ -1302,13 +1289,13 @@ Our result for $\beta_0$ simplifies then to n\beta_0 = \sum_{i=0}^{n-1}y_i - \sum_{i=0}^{n-1} X_{i1} \beta_1. \] !et -Assuming that the matrix elements $X_{i1}$ are centered, what we have is +We obtain then !bt \[ -\beta_0 = \frac{1}{n}\sum_{i=0}^{n-1}y_i - \beta_1\frac{1}{n}\sum_{i=0}^{n-1} \left(X_{i1}-\mu_{1}\right), +\beta_0 = \frac{1}{n}\sum_{i=0}^{n-1}y_i - \beta_1\frac{1}{n}\sum_{i=0}^{n-1} X_{i1}. \] !et -where +If we define !bt \[ \mu_1=\frac{1}{n}\sum_{i=0}^{n-1} (X_{i1}, @@ -1323,25 +1310,19 @@ and if we define the mean value of the outputs as we have !bt \[ -\beta_0 = \mu_y - \beta_1\frac{1}{n}\sum_{i=0}^{n-1} (X_{i1}-\mu_{1}), +\beta_0 = \mu_y - \beta_1\mu_{1}. \] !et -and it is easy to see that the last sum equals zero! This means that we have +In the general case withmore parameters than $\beta_0$ and $\beta_1$, we have !bt \[ -\beta_0 = \mu_y, +\beta_0 = \frac{1}{n}\sum_{i=0}^{n-1}y_i - \frac{1}{n}\sum_{i=0}^{n-1}\sum_{j=1}^{p-1} X_{ij}\beta_j. \] !et -if the columns of the design matrix are centered. It is straight forward to generalize this results to more values of $\beta$. -We have thus -!bt -\[ -\beta_0 = \frac{1}{n}\sum_{i=0}^{n-1} y_i = \overline{\bm{y}}, -\] -!et -the average value of $\bm{y}$. -Replacing $y_i$ with $y_i - \beta_0 = y_i - \overline{\bm{y}}$ and centering also our design matrix results in a cost function (in vector-matrix disguise) + + +Replacing $y_i$ with $y_i - y_i - \overline{\bm{y}}$ and centering also our design matrix results in a cost function (in vector-matrix disguise) !bt \[ C(\boldsymbol{\beta}) = (\boldsymbol{\tilde{y}} - \tilde{X}\boldsymbol{\beta})^T(\boldsymbol{\tilde{y}} - \tilde{X}\boldsymbol{\beta}). @@ -1349,6 +1330,7 @@ C(\boldsymbol{\beta}) = (\boldsymbol{\tilde{y}} - \tilde{X}\boldsymbol{\beta})^T !et + If we minimize with respect to $\bm{\beta}$ we have then !bt @@ -1629,8 +1611,6 @@ for i in range(nlambdas): OwnRidgeBeta = np.linalg.pinv(X_train_scaled.T @ X_train_scaled+lmb*I) @ X_train_scaled.T @ (y_train_scaled) intercept_ = y_scaler - X_train_mean@OwnRidgeBeta #The intercept can be shifted so the model can predict on uncentered data #Add intercept to prediction - ypredictOwnRidge = X_test @ OwnRidgeBeta + intercept_ - #Add intercept to prediction ypredictOwnRidge = X_test_scaled @ OwnRidgeBeta + y_scaler RegRidge = linear_model.Ridge(lmb) RegRidge.fit(X_train,y_train) @@ -2463,3 +2443,4 @@ of data presented here (either the terrain data we propose or other data sets). + diff --git a/doc/LectureNotes/_build/.doctrees/Clustering.doctree b/doc/LectureNotes/_build/.doctrees/Clustering.doctree index 59c2e4d96c4c83d174d77bdd79536e6763975020..104e791aa07161c375c82c9641988fefe7cb22e6 100644 GIT binary patch delta 168 zcmWm7Jqp4w7ywX`rU4hLh=$^#TNfqCm*!`Qx_KH0K_>-=f@8-F&fY+pV{{P*@8S== zzn?Ob^!dD4~UO+A7g8@jRyc0&Tiw5@wiYL(aiUClxo& Px{?bQJf_EZ^VIeJ0zNEc delta 165 zcmW;Fy$ZrG6hL8G(}0UDND0Nst&5U0H_5$&1*g7^gE)#f6dXHda`X+*Rik zn~nbpwh!!;EXqt-XHhzk+E@Ui!%#1$DGXF9(vparvEh*OZRwkw7k*sxGy@40T8&_^ NGK$Q963#WJ@eh>{EJ6SP diff --git a/doc/LectureNotes/_build/.doctrees/chapter1.doctree b/doc/LectureNotes/_build/.doctrees/chapter1.doctree index 929726e54c445bf831ffc79b6f0df18df2ecdfc0..2836f14aeda1b0b9b2f5277bd6f4983ae2977551 100644 GIT binary patch delta 109535 zcmcG$OUv|7+a<)?f;td%F4)i_A`x;v4McKIC8;EpbH!24shle3)4=ijMoME#!WFuO!tV?~cD=Hzl29+a3yq{in4oyWmLg z>c4s=>z_(`N5Y1mFph1s_%7I+oqt|W!#j#i?0t`PxaWC6(sa0e%h?=q)sZ}XLg9pW zIH!$XqxASZI_(gucm25B_Vsyu{DIT?kJMt?^B$3V96Bg; zvyC3!alfwjb8RVF5z~d`hs5M z8;ixHxe>d}f2C^+<$x5MDDvrhL7a!o;gwO*Gq^o>wC$^r!_d8nhw#R7xzF3OyK*Il ztnx`q?HyuqkKg*8CSbl+@EZ5Mm9t{=ivfSD`{-8gjyaco?94gHUe9}f-8R|B?bfjD z_N%cM>y7kPHrYg@&l8IKG^9(pxvkTAqU$GaiZ_@?x~0Li*yb-+M^oBzdFfnQJ` z;o8j;9NY&z2S$rxAK3818)DF9KEW&$!`H&Mo@p>Jn7Gfo6*0??+Xr~@X4zGNG3XO_ zxiki76?ZI}-Bg~#L%b*AWZZUd4z#lOkj5{*V7;`rg!)u^+xJh5XF`lq90X@O=28m5VGMj2u*A;6U_gx0r1p^( zBt(jpnu#T`7X-R<1EHFgsYp6wCS|4l7I4c34-&jX|1&>?!H7-0!32~kDqabDJhuER z+h|CcIhuHKd-V+Z{ELBQad⁡w)QcaHv*~LbU0fLN=PwBMx3r%O)e-#se?}g;FkP z_?RqtD1!xWED}droq7HA%dxazJZ|Un9EB%(VT2XsSRG~-hDY&|_444bOMXa}hz|*f ziZ*!G=^0OP_0Yx2B6(UN@tvLXje6X0H$jOK8&w!eaCEl04O@rG<2GyO5dkN}!0;;n zW#K`sFo=TApNT}$XTFAkUTCnov6~RKC!Np4u4mWtkntL3&0~A3%Z)K2ILQTBgb1d^ z;*1<;afpN*1~PkjfG7DHwsN_0lCfb!Oyfg-6BY$$c7`6$h|?wQXzTO!;Dyg;=fC;M znm@?uYLb5RIidDbS_=4JNI6G>dk)-wcr#+}Y8_;bW6 zYY7IE(c?;=5hp0+w>R79izRVD*{XRd856u2lo7BJ61V;|EV|2G(e;{2K!0>;QoFAs z%nIEnJck%sVo;WeYBAp>y$IjLX5p$9i3mixgu;^~LMK)m;CKJFd$v8zG`X#mD~NQP zLrFk}OWSG1#G_MXu^k~=?(`m-fNu8M96FpG5CS@FZ?K!9A$^;#RKsIX*9!?`^x-)9dUST%@=SUn2NOg-2g%t+P{7*4odXOESqRx7qi>Zdp-IAr0O?mu zhX!ARaLIYk6j^p!1b2~5_Z({Scpe$?H~Wk~ z{m3>2!s!=-;V$Z7;RpVl4Jb}S*jZ#$IALv!=Ope!L>^30#ZX2sP4UTo;Ud8iV<^Ms z4zCsjq>L||;7~QeKjogC)t{ap%<_1-(OlDAR9itzC9(MKle?v?_0!5=7I4mn5n7@iaH{@qTe1-8u|gdQw!0bl>XWPK$Ye80}capwMYw0+%y(z!N$f14SoX2GBdmqK|sMd(%3hpa>W7l$G zPuhf#NKBQC50W@HKA+xE-d%5w@QXJjB?MWkCGGdzek`!%o?}#b3-1!5SmF0e(|(y7 zxhDUTt7X{W&RCT5>9k4mP5fFKE!W*X8c}caYqjkhem|0%>=Z>#)w*6c%j(yZLCv;( zJ8kZn{ax-_l$H20&h7D)LVBPXkTAKqa(av2GU&^eu+d%~iPP)-zApdw@oT3yCpduD zT|@h#bjDd~vBC;>-;teGLCRWlA3(!(A_T7bHSbTl6Td z#|QcH68BZ&=Jkd+`?x*@rU8`OwDb1^@$#Xsd_W&yp)L569OoE+hK79QzQIe*$3tGd z+4F~>;R9Qy41ki{P?WSqdG*1R>QJ1H^lIDX^$U)W=Kic^m9Czcxj&5-t+u}nKzwtA zLJv^7eOZ*XRqmUC+@YQ-p0|NCib~>K9KhcXv0bnC#xgosFs=FLZ)!n3>VG+Viqm$_ zO8S>KIaarL!33tT>WKcqN5&@0DlPtoyyy=SNFe5ghE`!>kSv1A>>)2g{8&+Die9IG zMm&J|a#EC0g$S~{hPAyI9ze}tt$eVsNC5z;{HTYdxD zH-Fwhx!t%f(Biw?zdG;(&M4KCJI?D91IQK3ne9dX<2`K;@;En-OXpHHw$NA2=yoq$>dZCXZnHEhdQ@wTN{06%G!xC^#2DBmR;`d6Fz;UTQQCdJ)Mu#SfcR_rE(XEcgLXI)z~1!fHo_m`@^FmWDh_q4pm ztidxe;9<#5q=ki6c0RT1FfVdl{QWo*OgwMeU zKF7n3ug|-Y-oG_j5TQJ1!>-+4>~FKSpUb%n^J=GCkGd~cF#i;dpYD)75ugHSV(D9J zuad@%?v}tn!M6NU&pf0WK}m}=s$kAl!oB@8046rwHjLU21i@y}9S} z{7A9-nS@gggZ?Ma#>3Z&7uKZU_Jc6okE%Gj4c&fO&NoEk$*bDp9GjE(piC-+tB>AQ z6;;uUJpCIiR?llQVbJ&f1xvhlJlo^)GH$hvIbrUmG(!al_9gV3bvW<Ltmqv;yVI*0MksIVdL|ZLlM<+-e;?Z1 z=oyqhKL7DeHz47u)sknDd~WP{JPZCHM6$AMrRyCgj-Q$;X_1OfFLJyR4%7m>NlSF) zWukb9IJakfb36v_p%x{&b;6tnu^~TNY81lW@VqcTAM+%ShhRbJ;=X@rpV;fHf&8tx zHSM&%V6r?1M*{ZjpM4#hgD@-X2){h4Xt0^qsF||`AN4MhXc*ylIuk#YL1r0vggNpl={g( zvRMlsZX67aFB!uV?Li5D(&hVEZClAkFKL89!?wgY%7uhD(PaphDqW>%#hMdT?j zDDY2n-jAh8bSH7X&|d73ui`Wd$8`2WpVRJK4I<`#OIL}QeTn2UzoR@VH3jIEc^*yF zW4}!)YOfA!d|zL6lyBQ#`yEe$oah}5MwYSLT_DE%;=Vpsyj*^ARe^h*^tWqXB%p)3 z+}}v9H3G*FG!j8`8GE;&pm1DAeBG=V?YZC2!)r6~FCZ}l9FQ3=RP^bEy8Xm--LAFs z#vob?X-d2 z*g4q2-!5;c`2gyNrYkTAGfrPj03!%~K$cy@y(+%G z0a!a1jwLCM@+Z3T&j&wy*SAjy=tMb&WOb(h!3$>2a1AaZ&lT%2cu2QIPryO$_-K3? z89TX+VitT3OO|Dcm-9Uiv~F&^+ALEzQ&TJ_x~}&VP;J<8g9i&iKgoQTI8I<|S+VP0cR^Wg+ghE~{m!z|uMYmjG@fsV zz2ri97so8N3>K#I7>kV5X6zt&4TU|Q6(#+N_ttWJ`Fcs0?Z$UIp=h|Nk!}Ah;#_Y9kPmN^? zqsQq?WIF0XvYMF|v8!BKrGrtBpJppUoifX_G$#1+tW{Q!q4 zFAe|@)6?&^Omh-n_ToAicLt*0^!qp~k@0>~86e%@Kiddy5v)patQt*As3SOEH`Fxr zVIE)VLvgF_(&V+&Syp%TZ(UJHq~t*}wjZC}CuhO%`^Z$d1mFQ;c{wk|+ycbqOB-H4 zL}=|VSE~Rgm9HQzE#E^=DmdE?*}l>|l2JoO8EfKYNNfA;%ml_lQw(1?eh_m&q?J9i z*Pv>;WtlKbuXS}`u8tP#J0ZA>EY$Y}_iyUX%9n>?n_sO@bR4JLkCpDz{u<9xW0HBc zchxt58JgS9vo0Z1;xZ}hGDF~ZZkqmwnU*jTKc7;(E^IGxNLX0^whe`p-(RH?#G%%l zVM?ErEu++T*j0O2QH=V=(i*A4H={qn9Ho&UcHrlpwx(k1RqU6l&9X!yyeM-0UUM2} z*YMAq#@rbriv$Xc>IRIzmwtN(Z)Hh~KnI1tl?P8;`o2TJ3#O}J>o0_ikoD@mG zN9^fSUs+YF0n=`_p1AQ}^A;W0lnAy;JF=*UL54=OrK4@?z?BjNDNtWeUl!83^Vz~g zOz(-r?7q+7rHn=Njmfi|@=^U=&>Soh%c8Fto?%9dJW8y;zTXVbfo~_c?Y+0eKhYRm zKodMGm)n_6Cu3hO^e;#3tkpJTvCZS(K2QWy@u=L6J*mpNeg?S+p5^O>#wl!@eRCq6 zm5>c3%omKGfZw%$c3!gIlSS2gLbegnB=!OvWdTF|jBEZvEjK<&(04JuEfXlTJBXL5 z3^P=exnT?vOnn+0Nvv5eq4%?(N~m)P_ylN068X`IR-V&P`MW;S2&0cRb{= zqu*$k1Ya~5GMxxeJxv%A@S2@GmDq_CMb%i=E3>Rmg)r$oN2M6djNy)VdaM&$2j6nnVMXWobTf`hhq%KOK4OFF0#F+Mi{-4^g+fcIzVoS)`@Cmns2sUYk~BVOT|hNBd(TX{V3+795JcZ{pDo$9Ldo9B}F9?G&fL(W?8T zn#LT__pTK>)1}&Y891b+?bSeO`l+MMWa%%w`GDDh09M%G63jlJszvEB^0tHV;xIK=rcDy%e=H_fQ2O)Gf~;u{UatYQemhVjnzs9>7X zhrHjezdPvj(ageHO=N^_)ZetY2bDg^^v=kZ3)X)Pt&rB-1H#OAa@XYJgzA_4ay$jm zI7nFroIMP@DD4QyesQ?FE~LS$aMSA}vfVtT1^%n?PY!tt#F0bydvWminGRlf{??sk z%87p&rd52hINP(C#zVMpJ>1Q$R6w{6mp9kESy}PPhkp^x#oYk;&~xz)UbzZSAW0F+ z@{%8dLyq9>Ex>YL!Bz$qQ2-B=HTQb= z_HV>G&dFjmW-M26NYf73wl|c$KIQ5-bZ;wx zosXEUY&?+1?R76}3lufx9>bb!SMLsGn#+D@zpzsu#VeM>x}6PV3J!|G12d}1;<_^% zcfOYycvrsN;J((Pfqh7N!v4T2od6To#9{QBx*=+%@XJ*CH3hqqCh2 z+jSG55|84NO;8Eo*T?zU4Fk|$4C8yjA(k@Rc;a+9lfbWKM=DXGTuho6cM=KVir=z8 zjVmmcrD(%U3~II>!=|)6z47ZfHjR#^oEv+QnaTl(+1v%ma4KMjpV(z91}i)L8sbUd zTsR}qF!J#J0nh>4`2lA=!0jtL3@i~vI@BSBLa=#)+C`DwUF2&X?cG{{B>F(+mtY;d%Dbiho$<5qOMrC5xTvL-Qi*% z{Q%H=Hxo#`Z?>jg7CB;neqa%dT1%CB zDY0rg^>Ej&A(mc%Vm0_uu?)!TPLh(&Z<`}20OG+kjlFG)f&U)xKb*J>Mk3Zkw7 z*V?_&K};oqQu~Y^#7x}4^P@SuvLFWgHte9=WR^QspnPWlj3R5W^Q&!AK}eZ?&M*B7 z0L{cXom@<@Dtp~KVOy?~iQauWMnzrvi0Nk?_)j2msdBOWHer6roZ<$tq@#(H@0V#( zH0#mBIBtNra!QJW^$-3U6}r4N3Q&aU(Te%K@h_q6i_z++B0k5)+dw%~AK%x}3_!=v zo(n#bA`s^7dW0caO_M32p<(s{Xr&X?H9>)=_PL)Ld;o?Hqzt4J* zWi+QNh9ylWi43UXsI)YeA5pw`-9TK5-Xsaa?^KKG?W&&}j$TGYkgfY`y)}8A|eic&H&AtgYCw4b zzgzW@w($Nm;r!#kKsM9DW3i1fs?TN|LH3FNLM8Z&>RE)$)IBxt0W2Hz)TUz7wR9lu z4xpcq=N%U`;O_x{*`QlESD!0?JU)FcTR@LWsLx3P@6*vNiqieMan+{hET9f z+VxHL%a#?n*mk@Vmz$fsz;7%Lo-~Sn&_}WQ*Bm0%Gw1X;?2@f^wml6J#)GNEsA0+! z4x!6CKYrso-Gg%Cl-oxXd};l-x+-M9X6rZ0+zIVVQ-;o+oBQr(*~Zu+)N6>bgx^8; zR0jgjc|x~^wWx6e2}H0rpx0Y7LuuuXa{;QEv85&LYB+uzB!F8$CJ6aca}@cad;^iM zI3TJC5sXd~VBK)XR{*I;uVx>f()cL?u@BN$YXZe=C|*``pYB}N0EPdemO7NT#Y+$j zcP}P|2ixOYS0Cj&2}hqeI^4Nub6Kf9~%bscQX(gK0>E{gIj7U0g}4! z*B7AH9#XCJIR!vH1qg+%nTrQ*6oHCu@dRLirTW&x@^Mn!$9H&5x>7^~lhZSb18h-T z4JbFc3W6l%{d_%p@1XL%ew1SD`$=3YVj4EnwE_My$R@byZnVQ+-`)uHx!J6}dDV>e zP>DX0zfZ^YJ(8a`0IyB^SXfxBVOn_{Z?0eoo&?yxX$%~&o|zSw4f-a-F3)tjLzCH` zq@oL~gm`RIzHQb!DXcI6Tnr5F;+8Y!?>q_MQJ63c@H+9-h3rnkmaFfd^jZD^w~oVm z_oo*}e{Lvh6&wqbh3kplq$UHnA05=R2PB2Y(iJmou|!qHApy|O8sjzHb5IlLHH5xb z_>bEnz*&fdqNl!OGpGdY{SUA>FF2aF51rq1NKwL~D`rx$#Fu=_4{db!g>D>_!)V&j zfLD;|dMvl`wMEzl;uE&@W{Y3=)@^JTZRQ>G`UFh?CQSDnZXR^KAdm!E&6>t%1XyKlb_ z`0qo_aJDBQa*o4js3|TGoWTJ-EuA)J4nK%-7;Ama>*sHe?+wgByLTG5pb_dhcyxg~ z$UuA^vBbGm!NY)pPO*4@rUHNHDsOV@5=gP6oF;*g7B%0+ArV|E2>MSqKqX(>9f`g2 zySr+2{U9R!^=JCqg2yy>Wvps_=6@cep1rqsBGrmhfBuE{H&P}Zlv)l)1?%?#aG(5DI&K zpr>Kk4pS-zmSPy?8NK#W;I>rywO!*qjVK##;js6gz=DyFz;Wp5cV5Ja^M=yCL?5ELzbs@Mumu6T56){9kP^+O zH}9G50N?15LPCFpu!nr;NFO$V0WMX_E=PvDB~XKj>ek#CmjkXA1yKkFp45s{Xl^et zHYUf&Q5XqtbR3Y^EDI=oU`Z|Rdw5&o?*mQ)3{%@%jx-b!X}kt@J7S{%u$pnnia)X} z0sm9Pt%SI9C2K7MrzMzEs$9w3CKho<1K8?6cgRuLuP-X#>QZ3zYZZ|MBIK44d{hjB zeq>yyt_QG6jr|uN>6?BDNAQa|mb_mA1&mq^t>Qr@&W9mNpDthOIhI)@cZmjba&Oqb z)s`^@0nvdbe-62E4sd7G;@!t!o?F(B)AG@eZG;~pSP)OSG9oUwJUsx0$N=aXLMhj_ zXWqcyt5qgFb{Nnv3#L3(Ry^#h2Y$t9-h~w8GxL5t;9rFS2pU~oTPAy;s{gkaHY>hTr z6lsPJrE32OkcX^-&7W~5zWWmTILd-Bp6sGo8uQ{Gb0StJOLHr5)J8cV)A2tya#;Ca znT-OVZq7w#o(beYWIu3d1)S?%Urj|b^UqJxfqQxy250|y-8m}hb3WHNiZc#BE~UW` z9Tq@(g5TJ&x`{JiR^JZ5KMpvMhmIZ`aM;rO@X?Tlzd&_00I(!L7Qep*<5ykOhlSA< zvE2!OJ;UyZNJpr^74tm@Kk-EhIV%GTQr@s}%VhY;sbn4Rkcy}>lS{I#ipq_jvc-vs z4Yi)dnQt+(i&BEe2VOA@pMY(#M!@qFBN5R*+{Y7H&_C`v;5+;MzcQY^63GfF{4Ocj zJ#GjYlGrguSqO6p8=gug#6UR}Fs}XL&vVmV*fe-xpw@=mX&ZC_Xwd-vXj{1D2g@5qB{iA=; zDDt2GnWq6XNK;kNCd8|ykxugYsywGfKut52a;BY zos+RE0)tv5$MQagNQ`6|I@=_ zbFKH+|Ms8!<=_7y+T@bFsYP@80B6#f8EG?S%?)fw6emvd*vN(r)PXM?2euwYW7_kL z&URSZUJwOC;GkacVm20(1xc8{6CA2CKr~y0n4$0*IFn@+=4U~cQ+n)Z|}VK=2d7$-oRJ| zsED>J+^=RcpDU&cGDSXDL0j-UYoQWwAy-N|qlRnh@cx>GL&}ARYX*@0dvHlQNzp%9 zXSP+_s}s-&ee9NRz_DZQe1IMU+Je@rB*P7)kI&1dyc_=5x{)Z;n!OV_nEh5e)PYlh z$aH0b3fc@nqE}%qJ#5lkXgfy;wcyX=0Sn~ugvFQ(Qsl8|rX^Czgs;Yp|2T#R2e%1Z zF!EtUxkUp|#uI%l(n-NfgbmbUNM;D5;L0Ojc$?4*nYEW917;m?w12}DL(dp+>T)wk zt5Q6aKBIUQsG;D9!FR(=^jYueJOIVu#?ypa^1zp&*c_0i?BD*1i4=iJijbllXz<+7 z#FgbkGF(4ze72}@E|3nKGsedu6TwewYQa(b;!WV;0xXT0-#0LMTfM-lhg@Jy$cl4S zV&)Yan-E8Ds01VBY{QxHt^fx8tsf3Mv!@SZV$iR_w=+(RfJ!?*cj+gvEo;ZCFQItj zo#0PU1X?QzB1K{LKL|!*8&o~)RxBV0e1Xx}MD#jO1A*N)p zN;ZjchV2QFMY|Hgyh6w@IqK(;9%%gsO)Bn~_L&f0Y^R!qVqQhqwGL>VSi^||CR6qh zV4Unw8NqF0l=GFyBea0gqMXvipir9vW}iwYdga}~g)Oht4c&xdx-lt8=X`IJxN#|A z!}1xa4(Z%)p0V+a-`UtBe?%Uj0kivBSx^b=)K7}>Vw5~+B20Wmsewj~5%K`87X&)E z3djf8f?d{rbBrHqo7yerjdfVe;*nB-p=EG`A3T(-ygosrdT<55vig&UPcnu{o{(`) zy<$=poksWj;`hXOhd%hChrGe+{jx1y@P;6g^3H_V3tAO5wGFJ3hZ=lxl^G|@8zlLUQxt<^IwNTk@y$QF3aTKaff9sI zv7&=sQROmVyMnH#%|Be1sxxX5>KkT=Bm<_6&Q>H7)xr+LBhT~7+(&;2Cpuh_bhBxf zRZT=_!~)me&H)5?L&qA(K3(w$sQcn|x>1_lUt#OM*2lBW=_Itw$B_GK=?yx+;%%Q7 z9vcQZG)*;&X*-i<=2xOVfu^jF_SiJ#t!%DO>I(qBTs~w`>6#k*2ZmOFeDVb#QUgQt zUT@P>5$zUx{SC-Uuoz})d$+;CgPQe=GZt7ZT$X*sUc=g5iCpl$oeyb8&6=)zAlt{q zWhcOpm>t^uaLK>^XMgvX|LL#))!+T)-}-@!@q7S=r~|?kc9~4q38X_uqoyxFSY+cz zD~9Frj%8q8s&qgc5^`D{SJJUpjTk$B6Rgq9Ad>+bs6)w9CKl8_tAZ2S+q~bPX{{Y`{G#sAkxbM~jn<@p!HIo&<0N9HX3W!h;Awup%Y|fBDCM{fGbbFaPmRpFeL$Zf6VR#Ia3D!+@F_N=c2emu_g`tJL(| z`gXv0Z7EONz1*9VBhc!{jmINms~$+e^W+8*3Q*^InE!Gia6OVf2{o_NAO+FwWpisL zlK2aR(+#4vnz2yMo3x+bCV+(W!e^l!fZ|2qjT>QL-Q11&5P)ElaW`}!-^-0S?IomU zk0$JQ)Z2YZ`%2xWc>>FvP49>{9#8Wb^N5X18|e0y86mnIYQyXL3f?CcuOtgNq8jiLB{E z;3|qkT7ibIAqk(b;$MM=%&&M2%hTeByovDTx#n`)xSdmB23J!d37ocXCV#2m#4->) z4V&NuoBIIJ5bpQnj!KJAgA}I68{&uSm^LDP;XkBx1M`b&v@C!%&h@OG?f#qkm|EZJ zO}+R{mEd5Ti=`2*t0r|`l6$$YFkn>!eVLk=7ubfgBLgP!a$(7?%Hx?;l`>F}p+t=G_ibz_u4W zm;Icjo1IeQ=Gvn4K8|t&$KF7GI<%;n0;L5P_{5zzkm~|Bq&h1aX%6O}gj}kDCxgiJ zdb8dKcn#zXgiq7t%E66|@K?#INYp#`0{QcGqZE`ZjT?{3_oV#wSV2c=Z4$a|L?;Sr zwpT*t`3rxQ0N}&GUfsBTBkMQzXzJtfQ9uL1swB^>6ARP>anOdFd&kW;wSnNATRJMD-Y2yXyymgCa=lN=E-*VhvB+}L~r|Z!^p*qpRM;s z9g&%7-4KccXB8dklPp2&wr~Iz_Z8T#+iJ-K8wF03v!iL((R@q+1SzF*f z%)kxY2|s7ts>74p;Yuv=bALb?`?Qr%$Uzc##W8Sku3%07!B!>Nv@UT&ExH01(;O;w z9I#=@5r^UqoWgKwGxp$|ZVbHsFp^Bu7viIH^3>4LBn&X$Cs-69SAYOWOQ3&6l3Di` zP%-&fHG3@EH_|e0BDG$uoHY`UiMjWlm;5(tQEEnJd^LgrEeUK2M-W*R-s~ zVza$rnuW;X{D3W4`*+}h2m&l0APvw74J#AY$pHoe4F*zxa^IEQ7p z7_fd{7VlWk`1G(KJ)EFT`uhPC^}k31APfBdMH(3P+Zq4p`t=D$Rr|(C{o5&Zny|pJ^ zs@{^}Kzz~S4;vvSF9FV_0>}33Fo*sJ^bMhZ{pWx8m;c~*2jsg@$IA^yY{7%qFl7T6 z3v|~*?qz>r_&w^d8$GJ4d`7#g z+1^EJ?_0$dsk(STI1PZ95js${nr`tPvLA3KC|j5tx-DX)_P}LLCCvQ)0FoS1Ux1H; zm}f+CU4Rx)aaPD$^wgh$Ih{!WJSSvA4%`Pcv_BOT^e6nOepAqE4A$m_K1esv=>V+C zDDVLs8`B^JrH`tDgpjN4`b(ZJKqYu4YEk|i02`~dU84PY4Iq_J1866Ff!qpM^+Wx3 zZnn0x0>Ij<;6Q4d|8(t$prpS+ndScRL}*&+8V~Rd7V2?-UU);V1whBOS9rj49iVE& z1I6MtKxPNWnY8E%e`i{jdM-FaI7`VcK;u=A5-gJ}1IsCleglN?!oH zre7?lVeTovTIyBLkLyx)FU56T`nci#z<`nHoxr9YUSHRIB+H!&@0CM0vsf+s#1R@e zz}jxU&F|xb(-B$41kg!=G@XH7`Wq$>Mpu4Fmps^532mq7@pYq@>SE}vELyWWh;`hLmg+dLubJQ&Qpfk2Vq;sFJByroG3j|S)*>zQi2rqUW)+?=NzY%?I*tHNvK zsT-&5Z_b|5eoN2%27$B{Zq-S|Uo$S;-(INd-nx#^>ZuPf%{1(~MDqD6XcrxuxLKd? z^;Dbe1m6u3i9VqqBtC1Bt2G8Irfv#W z*0d}No2GsS;>6fz_)Mgw-6u`--CoO@LZvlTNGcBOau9J34_b0*k(c4YN;5G=_Fm4`*($wrsPKh=f#?IiTt&}x1$-OD4}TMM z+V^zffNwW=eh&VUDfrPMEgHk2aCbmix&f040~^>Wn=p+J4Yt4FgppZNOU|;yJTe76 z>;^D-G2t`*9C!qp4=TTZQtc<6pXIiVn~D*)Vocz9EVDb2LCd#gr6C0W7!nxN@Hqxw zGQ;GcRP4!b44CRA_s<#=pZ+Oe{j_AD7(Szt5@0Ov>bD`ME`W5v-7Dp*EEjWym#AbY;(h{?VWk9dXpiaUF;8#WA-zM(P}wcqwK0o z7JzH5jNJR{z#YfJv`1^85y24Onp38@pRP}O#n^q`aC=Aq8&@$}2f;~aq!~^>(s6s8 zlo12dJYXXU&;wus5)8P>g*PBdEj+^%m@Xbx1I6?0r$5*Ln|WYCLHKR7v;pfsZV-j- z(w+p~d<$wBcCt|_0!0<;7Z88!XvihNxDM13j-`yZ30j}_P)+G=3@`trgEP{R6n_U4 zMc7GBtLqL1N)+(PWQF~wb4ty}|DCaS*?C`0x4l$rBW<*4&;o=ws3auVlBMNSeA*Hc zKE#flICkvBiGyf3j_o);#CCj$-N_w5Yf;cfG!e}$I^4yEE*imOs|ZeT&Iel*u%I(`Dd3 zdiPAS(2dO6zCCJBbFhuhfA-EDjsfcOEXHO$v#C2~OKeY{2N@p}hB=i(A69pMKk*vd zumi`&&>pSat{a_<4G&l(vajJDZ|_evggffFkSw{(AL^8kG|#^sM?Aok#lY>uSp0y_ zoOT-r=~0(6eNO2`3&MjDYxij@$ftoP-PK{GvG`Ztp-DlUwpk=IJtT9hZe5;T@+Vd32fkCtj1CH8YbswPs^y`5wyLZ=ibgb2ObN4V;v)E=ixLP7Q;ry9`@XD1C63}3@k z%Ix_jJ?{2M4EJMaQJMFQupvBQxc>a=D(uIu zbaHFmtb&ip{w2%M z(KPG_@THSW@f~3(?XzJjH=xfnXeWHzZcwOYswYH`O}*zzy?>uzzx&5OzIUa~NU>^1 zc-{uB=!WX(j4odm<*cK{ztZ1mwYO;+UVM8hM)y&*zsnvGqy?~OiWxY>}Hgx zBB#0&q#(xD>@Q7?e=LZS@SgrL8h>q+pY(BfzoZ=n&uUzy$AfUxiW*J|RDT!8kLK(B zLlxK6ca)xJd%6}`+8iqt)BfVZf>8*R0DbT3b8{(NxI2jmQ7~U4o%bD1Tw6 zV2@KUT!@l?3Tr8S=;*nqy8IiDu=AS3DEK<5>8%{A-i_Z!Oi+Rz|4HF0Qt2rzh^x3V zItL9(WAiu{PenNQL*Bx56X0Mncf7(i`T2Z2+T66u?kgGQKO($3rz)}@UxwJHa)4Id zCRA}Cjn@2fdi4>*Z~X4a^Q}gGi8*}O%wnXu7;Ddh zTvAJm3+K}R{SU&aw=#AGF`?<}671P;_f251SBRhcy%cE=YnMfgd?P5T4z7U8oiQWO zF5ONIu7%-An|J9$vk%)*+X#VR`CGzMR~n7_>u|T0R_6L)u&^RcjXy9(@evl$ zIzGIgQ-3&c>XO}Kg+uQ^Q}01f^ei{hy79RBuc zBBtH80*?P{^cH+HF<)LqI&hWh^-1k9FTKUFBMN&V^AqI{ z;byIdsMR1#lI|HsF{9J9Ml4J8f0w(9fX^{D8syoRvWUa{2f3MGOn7osk`JrUiB6&z~)luM_*%o;!63%+1eB-bfD|? z(meO*2%&fQYU}jy+*h&B{>OXV3xkqMXMR!2ev3w>-E<5asOYYi*zb%e}LPt5WKh)Gi7aT76%9+ht!C7A`s}t|2@=$nQTb@gDWHsnqYWR-+^PTBq0FC_GAM4Q zqiyX|RLSn8N$k$(EhN9W22PpRH}{wS{eS$^KmWJ49f=Nt;1RQVmB{cffBSd;l=#d4 z@!$Ph)xXsL*FXJV|L%YCKOG;*pYys;x;Sb2KSyQri2lW&|Jk4aOZsmmjuNRACI02V z`d5GY_x~C9w=_UiE1Kf}^2I;@dkp{2f~d=3&pYr$MyEK=9%n}_N5C9} zds>Uj-ZI2uIHx#KB;IAs&iZvnVyL)j(aCk*n3_M1MmQhIlN5lzsN&rnT;Evfu>l43 zD`3ApZ_8S~=4^7d$w~1h<0no)ov!Q?3L10p!eTy^1((!P<8Kl*X7#~}bytMAJ9Zufe zkISMtEa*4Ill7K`Y(Hr)we#(j7Q>C`PT>Si)M46E#S^>S)C@ehHe(X z#Ap?Lw!5ij5_M0KTU?D3!*1kVe&n|MN_ymSG#PPtj!1JX2Kj3ydM&Ki(>j!G(XBtz zeqy6y)B;i1)r*u)#!9u-^brxHAu5C{uM|;R%QICI1y@NImqIr?bo_%B0*ef38AHDUKqJVq}}cJpuPCmEcYwJG~~4{f78mVG(azJK*eletS8w_hJy1p z!OIXbXgrS@D=S1x^dJ224Yk{Cx9maEbMd|Eq9V$Xnv=hlF-}*ZjX6t~`Ah^w^~A_z zrevDk33yYFD~PTt0Vp4|&QEhWfBMAM#IF-t4B8oVSVNsl;#JGCBZC9wSY0(%Hz>a{ z>3qA2`fE?xchI`J8EUT#G);)QDriw5xFx-hYM$H^$4(i!VnZC&?3F!i<9zRV04P#! zK++;`pUEmFrD-3o+pB)bijmoU!RV1E*|Le&e+-gb$wO9t$j{OKJZt7yC5-#pLz8K0 zP@5--Jg8jzCP{o-IIYEQHFxf2=^s{! zBna`f%k5*-WdJTOh(hN<5Rby`tD%Z`>q|HkXWSx^K_rYH#t0XgCHm~N!tTM5FHCbwJ zcCr;d=Y6al(13M9nU)o-wK@$3(Bm*bejiPWHmP^GMrcq8NPv}f@`f4qNW9AB{ zrAU=k2W!%(Zg%{3QexnCSZ5MG$HQUIS8x1ZZ~|VG+Y68_Wu-i1H_^9|@Wh&HaF%VL z*q{!nd6M-6-a_(x^>nb{po@G4rtr8hn=5%IFxPI}@i0MWwmoGg zeCDuiZ`Rk@dZ~R}-_%t4$nw#8Gq;rUyboKx=_xl~`Ua!iZ<2OBJjQ-AX`2n9j@Y?C zXG zerLHVfB}z=5v zez`|zixMxSBn%pIBwcM)-rmJWVY;sYQ%KdsR%&aLBaNQJN@)lq2^DSRW0G#%yl>Xt zY8#Ws^mDlMFVkOh*w5G@g{aF_46n}^m>2}&vIA8GA80GTU2P?efKk5BqPr|>A?+E! zilwc`_^L=}wc4@-Kud3SBc8mq^E4-U`?={D26p;bThrssKIS69>1lH7S|O-ldkA3= zcHI2+C>HKAO3Tym>AjtsPrUM1^p#{k+N<^I&K^#Vdpr=iiV0eJG3B44HaC0wPKRfL z5+vn7DeMWbH|WrmmDJatG`TriAl%^Ur+k{*{DJ%nuEB1YgnM>GZxlOP<_^-!FMTm( z?{T@(t7q_IrJaW}+KA*gT%&Ko+%#nbhtZWY`41Fe%RoK^adk)1!HB`s7-#(<0~XNC zyYM9t&4YSQE8~-)PDZ=5P+%HE{TDn>07Wlhn4Uqm5QIyllCJbjSgh6Q2yiznF+hw>xw+TKk0V+D}w-CXUhyGZ1paNN|yy=Y1sFIKk# z9xweH4r@i>NY{JIWjLt1}mTU8uRDFv5n~*(e1r$c70nIFWsygAJQAdDvCdT zXg?nY>izrvlK^+pGtj%9IiMGE0jjK0`p?HBJ>iuLQ9v(V`cU3M({EcqI?PqCi`5Q; z*7R;Y%Gfizb%}@uD)q30y;+<cIKstK(=xEL^yDom(@pr_qizSHsgpOTtvy=MW)gGfM z(3e22O+2OXX5b`Gbo+5&*gTmBx3RQg;YEU+3)wcV(C6<1^CLI5l-^sfL=*1P(AnZ| zwDI7lZ%w^^80PKu{n=KX{`{sJSKB{CU2fL%Hz%6<)?A6a-5uYDy~o4o!sXoDU@^N< zQVoVE*5mEAHu+bO%ZDxScXv+W>e271MCH+TNa=RAZrSV%<%4azus*^al09a()x#eb zWmzSg*ZF8I)pob4Pq(IC9>@LUD$*i+8OE${MX}Pns6IX3vwXP?Y6|$os|4C$d$g4- zl0}j4v?=6{!A3l`E_D=KMxo<~-@cIuuV=2FA8$b~?Q8?Se#xq@C6jKOisyLrxzH z4n+M@hA{@SyjwXcAoSP)DxAH5=!BbVNpKBcs3$+<&helND=hsbtR)c5x3x#6FNidr z{$cApxx-ujA-BKxVvyd~XAvJDpBv>c>pOXiQVa#Uuv|DzHbeQfCB_@%-T@bwp4oJF zkOD4XW08a6+zH4-mTujk#Cff0?l#Yf=78Jp!s&xkFoVMwFPsF}$^x7nR*&mXFJEvpVtXzN zt?yh+Wir0-aXg{tkqLPv@5%YDPhJ$HK6!uK$FqjdptS*TV?$O=JZgK%t-Bl=Q8$qb zsff$l<+|&<@Xi+KXMfWMb`XzPu?EzIeLIP=NQ8P6DNG}%=dyYf?=T0e&~V4^C30T2 zuB=RowFcqH0x5p>cB3d*SSOq{Hh?u%s)kDY(eK4Xk-8mB*7uJ=RT4T&`}*F=6Mw&t z*U^hYBmZ4l+$6J@Esh)NX_cu^dtrUO*e#Watw7l3&-Oxf$ftl{`O6-I>t;IIuj&o> zQd<@bETF>;!s-(i2%|`@6K$6XNWbS{uWR&cr!WS8hQ50l=w1pmIDs%IDB1f^ZMWF9 zt1)O=_jbE_&g*FiXI8>t0__-USH<_6c`?gHm)P4`f(D)8zt6j}-7|NVANclx8wZxH z*-`4$G?s9E=TdE21zid>OW^E*=tEcr3wdWkw1s%hf4FP@{-No~0JdZn(^JicPuDL_ zD>b{u!Cd&oN1s7r$umyU29VIkdr%YO;R)N13`gL1^IMn21k$hE8ODI*CG+>JuK8N{ z{XO766Fu$h%xNK`n{oY|??24&d>sIr)?d;+--BUfk;rd2O3OLg8X?nFI*`h<57dOE zmKGZa^&Zlw(*Z!hP(NdkS0A1_*A;A8emAdu?jIiWvFxmZo-d4c6e`dN$#-4A#U@)G zdc4ZHO+gvmM}8&C{WF$YXm8}UxoNz3TA#0su-U6cJVWR7X@Y^}Bz~^8-8urHwL1@& z4@bVhka6L51A6E9^F*yn^|k6>-*#e%b9zQH$-$S%$Xh2GMM<`FFLzOOe7|rG<7yo= zO%+9EKmY2yqrMe}m&;0@E6_Vv3T(S=QE+g0y~{`lXtCTO+JIPE?Q*`YvqKexK|C^fZxHpau9X}x6KYlx+ud1790vRRBm^f z7wk+r^ruLh-i>qmQ9025Gv9^5@&}{Z)&4<#U+$GCw|fO%h}Rn$bqUD{p%c_vfZ1Fb6+q(I-z0S>NNRcj=<$way;`9Zinsc*jo%2&~6@m!Qz)Y+Doz)j+%QFwT zMdFKoJzih+4Op|afutDH+te!Wojljrd)=jwF^yyYr2#@*04+>kho%UT~QF)L#8xO*laNL7t3lPN!Kc%OngG zTT~?7gEqBh9m8+MTw?&R#gmVQG$R9PSdZKbqZ*F6(}eX&pZs&nJt z3d#5*07E9_F+V&BXKSh32B!AzE_p?YjH9Z5MbS>`uFWhEaZ|U;_kM_?Q=+aPjwzHb z2b+n7Ml7fn&pba=?bS1Dz-c;!HS8-Yy3CL2svfU7FdeeK`@I9affo^F2bg*@dJbcS zR0lbQ&%0)eRaazl@pxr)k~_(piFl<{uObztoIri7K9!0&bQ`x%JS$@w$MQP z!ZC>WE05(5#$|ce|F~QWW{C6YdiS>B689g&)b-ZC6KhQ-_UtNJW$(?lB-skN4s(dK(%C26DQ==q5W5@xw;JWmF?G$Y&hns3gv=$aQpaqlDG%KOV z5ixb&#w&`7s1xIWHgaUxM8fnIYuL8>e$Kn*_-2Y{lqFtpe%YBj4zB-_bH$gV?C96m zW^a6S_Ju3P7@lGHIjtLAKB?P-u)p?}EpqFaHt1}B?$&de^Dp*_!~|U)N@s~8w4l9b zyvM^kMkyMr3Wckwov4qQ?DDGmW`q9#L{&JL&z)x$B4?$|p{xV_7Q#$EJg$c$)}_3N zw+dvC@AkAP+07U!P(0kM99_cS^Nrsp2l2<M$2JdAjS;;?G={_&pilPf=k<6(Es zlXBm)fV14Xhp(A=J(hMrq|?z;RNS6D%0hI|HWEYN$PB-S=6cQ`Y#Oe179Q=apT1dzyA{7UHP)&R$hZ<*g za|ClBDIst49ZeEAVzrB5&sg^-DCWB^e^h&VYC8SVE7-hNasfA_o5`6*dbQ19I~#u#Argg_6UAc1B}6MOPNLIoi)5>;%UAn(pK6 zRaGxv)Y!e8S&En^*I^8))}X3xvYbIX>^WXu0c~Rw-Y0x3-*%0pGvUF1cE??L z2tg8@P`0esiCnBLS<)#>n8FXHHPhCzrJGFSZh}``yRtLup;|DX~<(Dz}wrv z+i!WNmQC%&7mD)E$?zP=Hx~j#bKWCqLx!sM!0kN#vrOV=%I2gVu56KFHrZmxPfDPj++&~!KGLOAR?iFYn>4E)U7z14t`I1G zPwP#H4Zz*Ds_9%-=qp6e!%H)A>9aykp!$h)WqyLRo%Nwp&U10#^b^LbBF$I&GSBQD zVQn}5vUxf=ac?S~x_1iY9L`^LR6BLGJ-<|VLorZkqike{G5wsN{3yIqx*V$yaU47aHuUJWEv*yWZSqof9v zL=Jbvic8pjbCjGd^F8^qSID7stMak0FHeM(z@nw?ulv(&#!=|Vl#ll-Z~daV7*)o_&}3qOf7I~(zlR6q zXRk$KnunUnc>{aWAt))x0+UV_RX;r$NX3aU!++)Mji1-VEoel8=p%NOCGxmMUqIb{ zwpwt~o0GA+<H8o6*OHpa^TfmNw_NBsml&`-T8jhY$CDrzN zcwcBdAzJ=+TJf2?W&ZJrO?H?pw10auTq7%h<5qp3I55!oPW1cvcy&*7t1*>3ruZn7 z0nhU8IgEgQiM>3qG{8S!iB}3yDNBltuURM(hBjaQZdMEo z2NAC4Ft2B{j?WiAx!n(BfW)m2sA%1cwtaeo6#^xR1d#e&42d1EhN%-`ZgAh%87gR} zVmIrv-$+F2uT6^JA7hdfd>b@!Lhfeb<62)x4!mA<(Hw+}Gm`FOs53%|Lx451wAAV5 z!znh|1BF11(H%mF&5Koe^%2oeR+?wt7Rg90GRm1e3Qy;P6_cA^pQz!~#Y`a=A!1jPOYyG579>us*L zx9W9z9-HyHSAq9E7Ebjo-V#IYkl;gf$M$hXu^L8%xZcX!K zcQ4=dg2;#$J&WIEr9IpoVGeY+=TjKBUHNm6huaPh?5Atd29;?{sRtzTpzuk<=t3gamV21jb?T7?FN5WeNIwF(hXv9`Q^o zI=&r(_vnASHk0)anj>7APN!M!MGzEnQKyjx{47VcY^Ij?>u5SK_p+HMgI0H4wQ9G9$--+6@n~N$B zRQz>UJ1*pEkjwc@=FZ(w-eYRUSy~0k$w@dNGl@-vJ3q$tChZSHXtx*8Xpk2t$Hp6i zDjLKF9D%|_N9XR&<3|tbAxd)UIncz|q3>@A$qN0H^K^P`t;+wLJ$A3e2aehL!xzrG z#c$FMNflX*Vrv^>x8D}`xLZ3#-ad3HtPj*+YM1>msfV@X#`2nKKjih?(d4GLB@6-s z9mm}FuZy`m7+n{tv;d^n1LoH@JDvjS5zSB(k(HIbRFku=tzxk+o*5JG+saTZnOyT} z6pO~-NPV|pGw9xCJEZ1D<|wc31Byg?(EE)G1FEM3G;2|dDO_-^6Zw=A*Oh>#Mg$GZ z+D4IkIF%=DmyeSvg_^)b~SQKqRKIDV#ek($S%60M`lDL~jzN7z zD}ZA$%&7NZp&V|T(S=Lmo^K%2Lz5-;AD52T&z?`6M9JDA2(8hIyerSQOYku~rE3?j z);uo_6imR_?0qe1ng#3l(r^U-9J)vQ3`EZlz9p-KCIS)g-EIPwswC18pVpDX89hxT zq~-8KIv~G=-{!V|LLkya6{E$jjN_zp!tsv5RK4^O;UZ|1lN!ztj(pd(tB0908Mjep z`n63rpSA@lW$AAzkq^dn6?b4Y-WRY;a5U?UnkJ;HbM9mFd=u9V5}NU44t8hj!fj%q zt--F|za16<8*IGMiLo_Ztwd%cE$i_?-hWsQu@D1^VR^}|{d|koj9Qj==u0^YIndx( z7$+ljNnyE5H)q!RJReTO2iM;z?;X>8EQ-KEnJ(Als!yK=dFxwdIh;3J7F*tYJwI__ zy(2vz?xPF(XiV0@>Va=!ZZ;oCG0;Rvz_1Y{DSXH)ek*6tPGWleTtiES_COrVSm*b5 zt_JQf`@EJ9w~AA({e15#F(bVdZ5q%n(MUV1*6V6CP!cMfxZXV5?ct;VfCqHq`@n93 zOQG^SQu{L0)EA|yvLvnS1OLcVW3L>=!Z?DfPOh<-B|M%tAkZX9k_%MHB1jsNw1Nxu& zTp7}gisD@2J?S6A`ka!{JZ#|u(4N=F^@+fNb!4ux^;Hkk{Q<{#jD>KF&XQv*ZuIt5 zBqpC=|^L~Ezx*=31>fz+BgYK4{RR`1}Zy&7vZ-E|(t2iiy zk>rTy*~sqpVZLYMDw1*Vx_cdKz%=uo)o9x3=y8;PMnqx7$`1rc4R*-74 zY?Pcqg#wf&Jcm1ILD!o`jw!VClPIs^MRz#HjOUxqum}e(pa&@FUxMT22QAzq!KH?@ zAGVyr-u) zgk0>VPwG-iQQPx&8(!>K&;u$XyxQE)0dWv)BCi2Aaz6Kf;AjWd2X(7le{%nSRB5+dQd}EDK z6dE8h(IInHhREsixDf6lclK~!{S?`64Qqw8!Fl^~zm-Q<5mP0FJkyknakFYOSJa>y zaTG)dA*jg)X?QXZiVJ?_5o$*!+hF{*t)ld}(qV9$I06DG3@kp&jtAPsixF^+K;iJ2 zZeC=zwk1RzT%3(~fs6i{?ZmaXy}46eoH=?Cw?F|!=MdI;70ASE?3H9*%Wv&%kSh^T z^?hBuYx-W@b3!gZ-CNAjbYhYp?&u9-3PA6qy?sFJ56V?L#JA}STU#1`-ug=EK`Iuu zS2~SjPVZy!nY-AvTrYm?FEMkzG01q>m9O$T$7r!^v< zVSR@tbW3CQojZ_wY4)> zfZK9(634(j0M!zz1KQ>Qr8dHjqlZr{Ku5cK0ip=g(Z+NoE~1cs%Es%0rAqis+%N zbI66GCT)0ka@iPuRHNhjb9||5lt0Gzofrn}^^nw|zkqCNn*)b%bGVEa%*1aYu9!Gq z91=LOLn+^6ySS>lr61WhMq|=vc_YbBek+*+Mg@|;b^*7mJc7jr(g_+(fy4&p={0^W z_X2Z(`AwsGn4Z5RP6@P%<^6?jWSsPD0rXJ8L?;`%dog8^_s0F#ewv&uh7k?N8%DYh zf-Mb9MhdP7oc#1zsNj-sP@81vF}>@J>`aCTm29`ckgj>wVOGg-coW8Hqlw3&953rN zoQb$J?8#)N<8V02UwB9-#04C12#Rq+uzs5E6a~W-T)c}3bk-1%NwXj|vTukD3(Ee_z%rt&uInDQW zIZw^GiVR0E($}iJ-d2k{^@Hiu*&aI@ zv$NMXHm8q$-BQYhbXmDYMq! zr^oILic`>VmHeZtH_50tG@ca@^zj%ydK# zbhPV&tIr$vr?$pc6~3WAT39LMB@(j^S5;fs+?8gsZu%w&p~ghzDx%2RT*~hy0AAvD zoBTmEX3{G!q`rd2hoS=q*%+~a{IvHFx;4eih{qGN8i8OZdxL2Ohitn_lOK&sFL4bO zOZB-H427KR)mpto?L%KH@{ zZFA2xK%%AY;HwVf9bE8Bep-+SZ=EoG*$okjE#X;TfZ~mzSY)6%9xp)v zANdOVEIX3j1?GxX7^h47@LqJjTr(g+=j(pe@;J#`*>Zi+-+F`Ivv;`Y%RWbzCAc%x zEm$wWeZ@%a+^zF?PF;@hi^sM)T38XHA_`~obIrrk(~Rtko4WSVK5lTIc_3&7Nn-id z#^p*;F5tIiI@i_TB=ZK}s~+eyhul0=e2hv=Wd5;V4&i6Sunhj;^C^5&bWq2iDI-iT zf{yv-e)G&0j3p`IK7j4FkY(;CfDd&;rnP&yslKB zm6VcT*w8dr-49qWxXIP_NO79-bxz8@-f`< z-_3W)AKpEYw<n^n!qc5wlU?_2fLPFP{2!BUp3>PoL5LDmHTyL zGNuGwCMx0Y+KjTC(0HK1wqIc#sw1o_Br1At^Pu*It#)z!c~LQD7hX|s=i!- z#LfCuR5xb)Fe^6&vlkc06Fj%Va`q<;(*XUs-LeMDs0Lj8(_i-nbpm}zIl>uN-(J%v z0--MB<~Mi#e{E8GW(Uk2v8M)!!H0?W&+&VS>D#E?&0nL#sPHr+8yio6F=qJ2vFarz zOEQc-syE5q?U2AFz@=and4SIm5q{5U%XHqiIj|+?Bm_Y)T=5$<%lf5`N5*>km_GYDZfjQ2$l6F7B6ZXs;r zdEO$b((m9v_lK_Ixpy3qP-bE^sL3x`pxcqW*34}WASn1;@G!ZCd`NJAp2Pk5eJ*K< zND^1-B@Qt0oqqyt9jN)0%^xw)_5d~$N((?F6-#aUeExC44M~#ZWFv%#SSccZ7a!oN z%vqM_c`dSu!&x^0saV~_Z|`pBcM}d9`EhKMqkpw4;!fA}51wNoC>FV<$%@3@J`ckH z>u=q)Tc4Mt{SF~J(ffRIa09b1YO8BA%rgi9O0-1)fh|B*$S%+Q7=f2{y4oS@p&DXz zd17i_hoQJVHD>?$DwY{x_+-@^k|2)xeHY>URi(~G6A+i-IKOV_q){wlj=(KkNSeN(b5r`ZtUJC+jmozG#D=zM5893kCLt8d4Eq+ksa9EDD^!rHB&Q0r{OsO`J#((aMYb$o++`FV*r z+%va(KYzU75<3h{FSrfCVr>l#v4ctXGR8~Sexm-+US=sMbU%_S3@ldlmOJlyW(Rmp zmpF&R^xKHCrr{Qq#l?mE9U*AKPcxoBoWd*U1WP5sBDrjjrCdgsou+(V=jHL8rt8!o zFvYk#ZW^2(8Fs0>0vQ0??e*;>BcGDwr&hD~&cObw+K!7{s?9U@lEY_xFR%%YqU&C7>j0C=REyCV<1WsL z^cI=b^nppT*`9n_{JVyez|q|dYZ+n-R4E+T#+VKoQKfdeuf3X zEK_NPj>@v~NhVi{?VS%KB{$L5*Y24qX}1W07j;E#PWN*Isuun_!x0rc9*QpfZs*^^ z^T<|rzt%tY1sl>OIj*5|=yWV#ZIY%Sm^o{&c_KMPhdHT(_Q3*xjs!0PVY6+~7Uz{e zi_c(lT13T~+6d;IJ@ar_oYTx48|h75gD#;lI@;PfgGwsdQ#5b0s<5jqUhc|jm` z>4*fyCHMT8nfC-}KYN{a`eaUVVy!teYmu&Psew}+jgoP(d>2K1IKWi-;$IfI+-Gk6 zr2EURoL>&ppP%HlKYiIJhAKsZT(OIUotwEM03+usWsKmb_;g}a#d{ieKR zb9rnsplX(l;pr~FsMK+_dOvjU6dWy_Y@z}2$1g9uCj-1WBMZLI1bjT6<2sn11WmgE zK_>6$d-)_W`M!pY#<*b6T`7bc>pAjnELS z7d&#f{Bdkfs`tBJP?c^r_L%C_bG@)=D(+!azIx^JX;z#LGxp|{m3LfdJO|yb@DMOa z8JH z+#OsBuEh)M&^!Bfepx-uJ7b@EeBYH4u20;R+i1`I6`;Y;%3CeFpXDW1b66mL`7f;# za~je>Y?L@gwYRrLuC}46A*&;(4|fDHz>-#V8WJ*Zh%#u54Kf;))Ey>I`|q$ty-Pd!ze;mQ5EJ*8W_y>h5|vT9=bI z$U`e5_gU)N#tH6VGrS`yBxR%CRTM~P~d7}d0JDFdc)kUKLsb8S7jcE=+9FX(8~ zdtVypLv`@dU1pbnXs?uGCU3p%;cKJBW(6)|AUJbV2NN9PwGL9+#)I@=z|f!k_`#Xh zBV&)(QK=OSEHX+7;2U07(s}NZ59zRq072e0q(1(PBAD7(E>#t~8(O#FYO(@v2UWfE z;SUK~GS`zIC`V27BH{i0|7y4VKYKit>wC)1{#aR$yCMoD{HFJ^u2i5`kjzLG(8YR$ z3l-k`W7S|^p8@lTF*wI#(&#A9dwuox40J00@v-MYFe>+Wn!okvoHr)>Y5h9rx#iPr z1%O5+pGiUTfMW{*c)nDnEXr)K6x+UvIwKzmEtRMAB8-PVPhehwXPE zq9r@S;4eAyhJExYwF9#P2kg_6-P!>}5+(Te6|WuX`ZGY$DJ~6c=|mJD$X-Y*whV$j zixJ}#Mr?;354L3j_QL*wIh7slX2tw^=Kvx?7$6NC!+Rwf8*4Bm5E^#Bb9`n-pV6s6 z&}`Z!#NK*^Um?V4m({mKRfQLdVA1tvOAO0X5U2WzSSQcENA$z8T%S+5yrWA!bnAq% zTD96R+?-C;YT3AgJt%rdd>Oq81BEss;jq06_~HfMf~pccPWO<2bhCB(`H3$lEw} zyp8t)1zNOeO-dZdYH${C0(BrX82RQZm{igE|M`FO{oW*w{XEZo-(y@O4Oh;%n#wnm zj1-4pqpi4t+PpFz+3nB)QF2!0^*Q#7p3R-Zc|pG8n;EQlf z%HQZhMO+sNQ>$G`5WK|LNb#reM#* zb=fl7oM(@={&m7^$LX2DHF%$QBro%FpG0C_=k|AqsgT6?n9Z+|IH}2+gwz$FaKvX{ zu^vdEd*pn54ULV}3>xA>5{r}$WEd7R%^=s-%=7>+x>|NCdT5EY)H5NU z4MCqt`Ao*f>pcjnqC8;!u;S;