From 21be8e0d5228688c73138c8cd0aa721d438263ed Mon Sep 17 00:00:00 2001 From: "huanqing.shao" Date: Wed, 16 Oct 2019 22:56:32 +0800 Subject: [PATCH] v1.16.1 calico3.9 --- .vuepress/components/InstallEnvCheck.vue | 106 ++++ .../install-script/v1.16.1/init-master.sh | 4 +- .../install-script/v1.16.1/init_master.sh | 4 +- .vuepress/public/kuboard.rp | Bin 1191197 -> 1283297 bytes .vuepress/theme/components/Page.vue | 14 +- .../history-k8s/install-kubernetes-1.15.3.md | 507 ++++++++++++++++++ install/install-k8s.md | 119 +--- install/install-kubernetes.md | 76 +-- learning/k8s-advanced/policy/lr.md | 10 +- .../config/computing-resource.md | 4 + overview/README.md | 10 +- 11 files changed, 691 insertions(+), 163 deletions(-) create mode 100644 .vuepress/components/InstallEnvCheck.vue create mode 100644 install/history-k8s/install-kubernetes-1.15.3.md diff --git a/.vuepress/components/InstallEnvCheck.vue b/.vuepress/components/InstallEnvCheck.vue new file mode 100644 index 0000000..8b5212f --- /dev/null +++ b/.vuepress/components/InstallEnvCheck.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/.vuepress/public/install-script/v1.16.1/init-master.sh b/.vuepress/public/install-script/v1.16.1/init-master.sh index 100f1e3..8e876fd 100644 --- a/.vuepress/public/install-script/v1.16.1/init-master.sh +++ b/.vuepress/public/install-script/v1.16.1/init-master.sh @@ -26,9 +26,9 @@ mkdir /root/.kube/ cp -i /etc/kubernetes/admin.conf /root/.kube/config # 安装 calico 网络插件 -# 参考文档 https://docs.projectcalico.org/v3.8/getting-started/kubernetes/ +# 参考文档 https://docs.projectcalico.org/v3.9/getting-started/kubernetes/ rm -f calico.yaml -wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml +wget https://docs.projectcalico.org/v3.9/manifests/calico.yaml sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml kubectl apply -f calico.yaml diff --git a/.vuepress/public/install-script/v1.16.1/init_master.sh b/.vuepress/public/install-script/v1.16.1/init_master.sh index f76f217..fc690c2 100644 --- a/.vuepress/public/install-script/v1.16.1/init_master.sh +++ b/.vuepress/public/install-script/v1.16.1/init_master.sh @@ -29,8 +29,8 @@ mkdir /root/.kube/ cp -i /etc/kubernetes/admin.conf /root/.kube/config # 安装 calico 网络插件 -# 参考文档 https://docs.projectcalico.org/v3.8/getting-started/kubernetes/ +# 参考文档 https://docs.projectcalico.org/v3.9/getting-started/kubernetes/ rm -f calico.yaml -wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml +wget https://docs.projectcalico.org/v3.9/manifests/calico.yaml sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml kubectl apply -f calico.yaml diff --git a/.vuepress/public/kuboard.rp b/.vuepress/public/kuboard.rp index d14285ae2097105acca3a8b3b9c16ee5cb695122..3b25d5dabd552a9de88a4311a6b0187f3b770cf5 100644 GIT binary patch delta 100232 zcmY(p1yCH(wlzEnmOy}z;2NCZ?iO4E1b2tv?%H^QI|Lit8Qe7xoB+WI?(S~G{FD1$ zeeeELwQFW~O;^`BTh`j^bk>5*dZ{9M#p!DhJrW4?A_ub&wFaFD5n$)$;5tWuy*1@I&u=sfR zjM=%lcv#ukxHwHY_)Ls>czIY^IXQVvx#0I2!$8Pd?5rHzyjKV+Z0u}&oF|B|w_GON z9IWgnyk=~yW}FhNd_277?3|{2#>OUGY$lwhT$@P9mTc@C+S=dWBn7Y}S+q+VO&QW>Tc(_;-4H5B(_&9la87WvnXGp5%uC7-07A_S0 zZ0tOIyzK13@rd8z5nsUVCEO6;_RmLx8#3Hb;Pwh`ui=IYH#E4tfg3v9FyMv>x3_S^ zYKljE=lk-d6=Q0^7OF~WH8wK(i-6R%EmZNBpny8#0KJz$)tkG}_0vf2?CAP(_~NZ$ zAmcx|@<4qr$tQNIgj50iw`=7zYchid>^8F%+3Ia|L3`ttDNF+h*;ns-ddN)DX*+1mSW-ZqZZ4Pdot;|UoqS0Y#VjRtzju?vbl*@W;6 z&$z%qWUQOd%}p>6Nv`VT@jUT$t#pLvcuzK70}By%%{s(Y*V0LBIK|&7(l^@vfQW*p z|F3&|GmqXT0!mhJw+Ny5p77TWSKQ(2qG=9S$nK|3p_*P%qW;nQ%a>c3=NAzV|DFQ; z*JE<}%5GYMpP&9cvUsp7&0l1T*<`kP0QOq3u}_K{`a zDRA0Gql?lcf`J{7btvdcSXkbSri|ek>DNm*+N`TmXm}esoK#^oH+b$V2+gr~U7UCD z)fDt#Vtg+##7itymhgd2O0Y-&{8ke!Ml0kYAHI;j{|yH`GQ@hnU?6{87$|1OnPmr_ z5AVkw{S9|~7fU_KHj`3ydK(F!%9^4y{`${^0D%%E@>jGjG-m;h>}@p>x8un3hu#jM zt{o!1O=Q+HcE=OUUsud7sS$SUe!t)oykO8BnE`e;$R00NpPU0p%VX@xVW2K17-)cQ z%kXy>*#!oC%Q)#O1`9f4?wL-^Vk8py$hM;6fqk({OPBW^ee)pvM1>G?Vg&$ zG3qPZjQpQ{UTBh~wV=L(f#T`&t@r(Cx^POSw!X<&1EOypzJ;V50)}2p^+V#;F>|)7R+7!}H=(F#m<*O9Mu`EUp!5fx z|6VNae=XMPe|8o{;P{>pTf;L_{nQ2JU(O3C)~0MoHAiffbFw2MVV8W!YZB9aT&d3z zV*W9GT_<@!pZs*GyLcLGf0ICk6letSw3hNBx}wbfFr9Jg>-|qjZDSP|E}{t8#&56i z{t>1)FkqglYG?Adb8S|6!G3=fP@NnVlEW)PZjiHEjI$&CbG06^RZnBifGSR3+C^~1 zmWN)%QQ2KGIx^)F!KhKwnBbRvRdIWV=Cl9*3l)}i^Ult{7y?i3*%Z&_@C}S>S#=n^ z==w%VdY4#m7pdQMUQ}Rz_1Gia_d2Wa0u(=p|KZJ#;g{0q2#d%a33a_XRX#sN{?m3K zo(mn2idzOj^lho}U^Hj7_jA9C3I8Y4Lk>7A=eD0MV1J-TlZvk8>>|5Sz{9KZz9dH( zl7pB8fUQtF5C#%7g@OJ^>ZGjjeP`w))|jyyJ6#&fy2qk3r~DACuoBvMLO@d1TpL1s z*^TI9WReUax6j!!bGt6B_eu7cuZweju|Hc^KSyTntjNYS@Eq-(`BzL)QC9dmyGVO6 z!{R6H?d9cFG7QvTFDDplP=3u}cgd2yr`tgZ9CIT)XOKa0s4X>wwkr&6s$CLRy!dV} zGG|-JKbih;hGlqSL5>ej-2fMIWq7~2NZiY$>e@E>+`{obDc&D#Po|FJ&A=X z5Gp=oVML>DAJR`_gdsqzDN6f&>l;4td+_zBjeCN1qxW`b%3S)P(uHa!`WOxB>xcBk z*Er*+$A!;V7U2%5%d3V%NmO;ScDBg5rJjYyd8id9e-@<)PX^q@0}}%i{EI4>lOZjl zVA|xUGJQ7mnx%XKFjwQOdG(S5}rIwER2t=+%F@% zQNu~X(&LXmT|9Hef_8x0q)BJ$j@5=9)jb?)g<3K=4l-?Umo;H2FufIjijir>y~|!@ zx#YK5X6Q|6bXgkM_?WgHoh81wm`p7t`r!lbbvMeArhI{caDJh-^*cJL)*wC^faHbS z8_}o3Z4s=yNhM63g)F&A1$)^eg^A>~_l>v&=JeV-21-eyYI^41aC~}5KgRZ^e$k#^ zK&MWhIuxn{}`=LGq(0h@MZILH_oczi`UGuYI;Lg(OpzA{JcZO@#$1^{^%hD2?CF%=#;(vE;z?*vd zd#s$z?tJbx+No_5vyvL06&hvhLa?n*J&VaH4$KZ@qjag#M*t ze8H9t1`-;7j!3Ad15aE*wZuK3t`g{g9l{%&0lv+{bjKj_pI`XKHw_rdJxzXFH`#(| zW=xtdcf2;#niH1p2gYI;B|r;-N$)D~t43NJxo;c6)D!g(8vM%L<~Z%2d9n(Sq2=u= zMh^xa-f`;KQrh$dUY(QK$ho1kb_E=tA-}zY=TVefq%Sj&9DenkFFr@)tE#sw zu>CNC63R_h+|@zLUG}%cVW3=jIrIgC>@s>Ab*SstP@M1$UCwDik&?f%9@Ie!h!JyG zKt;G*X6s|%U=>UC#F6W=&cXwL`PMp7SI1VOsX6RIc{@inVF@=rlaF~lZ0=(d$XGR( z@959#b4fT12HGe_Alk%Yv*TtjX=QNi4XMk^8b1i+tCI7v8Jg8CO*5e zCE;vSHy)(G9^Z}V4(=s11JkKrQbpSuU1KYW^h=P@Sct-L;0_xTWXNT+p*k8CZu(3NBMRAeV7ew z%*MYQw};=wAnDTK4TOFaR?l^gD8KP~VJqiv>o$%rqLWT#hRA_8G|m+%-%@6qPf1L$fskyn{q!u512OmD{4f7Y^iF{S41=EDYK0f?_d?Fbq z-x?Gt6ffO98j8I?b%25LRqE-tl`mK{AKvA(td3mM-Q$r1a^apLg}i+p3(EKE!we#p zBU_TnI6wI=IW9KOdCSrx^H{PsrYF_E64L+J#C4z`^H>3! zgjW!TYdPiNzX~dUuUCQc=Jgj;ps~Jg-i*AMB0*^SHH4C6Pmh&3lb) zul|N}v|k3VADNoInS{s*-`zT93FlZ!--Lt){Kz&lPk|@%iGPcG(#!P zX7!5yaIvKGuTd~9M|?aCqz7)a2|Qbk;lv~X#O+G%{AEe;nYTjQ=fSub@xv9|&4|Xq zER-ce)k=P<8ne-D{uO0DBM*DA>@!sm*TW9`i;DvWx=GK0ECHlw?VM0eCu(U%(S9j! z&BQy8-jxs2*PjaSB2^|%Aj~fBsUedNi;P~%_3!#JoNX7Rhqb`&nx%K&WNT(Bx%@Z) zy(#cR|A}R0|Llc4b|B^VsAH7^6h-jT9Bq-O^v|2Q+VR5ucZH(`_eljje3xk{ySJIX zy>*P)++GXbfw9i48Oli-L;f=7nH!l&txflJQ|)99BnAA*?bO3ee?JJ+ZMrJ6b(<(L z$_j6Ri(1hQMgD3wA8!2zs0Yt_5lY zHLax>-TLe=2ALzHYJ=zY38O0^6bC7c1}hh1vz|kU?-Bs7sDj|ZL9QVsD{udj{ePJ} z)cy$u`amN8+))J2GIY<|7+-OxyoH`t_tN5deR~#)Rk`>?7RgJvZ5;-BWAhGO-f)tt*~fe^L0Ex+5{?9E6 z0%;5~z^rym3IlC9ni8tE9hu#^d-=*k^UXK-j!r6>Xvj5&cd3ozr4Sg+*n>X(be8Q` zvc4I8y_G64wVfQJ&J*k;C6%dBbQ=tG*EEHM_t$Aed*z^k%>OL}Yey}qDrH{$$x-sKyJz6Fw#vf|oM*qSMbmn8G>7>fw%-{j!DtB>or5<1_ zOPW~XWS8$g(%+K!hQo182kvEBX%@IV{>PiR+dQz)T(^KtL4l)5Db8}%|6%3-u>b!N zfeK7)8y+YZF2|)|{uUF>Hqm$*MYhfT#vA9o+(kK8W zzI|Dm+O%G(;=ury;4p@)aHoe5M!U#{Vs6!bx_z2QfekJpQ)cQM_pS3PBKfA5?8TI? zGlm%V`T&B**<7;*HviY`l3!?si_(s^Cp%y=HgPZKZ}H-l-mGs#g|Bz30w1cTPk?v# z&)*QvR{Xx+N;FKnjg;#?Mnc3q-v0&g(_gqs<4+Mq1)C*+=T-ce05rUp|>|hp7f8yyC0)VShzrMFXDGxF`g&dSiOd zf7FGly%85cCRdmKa0aR}#7tEX(|nZG85tG%b8)ztw*$G+J=~f&yv{Cv%UM3@BmR%i zQT8lA#>#D6?LBz@TCg$3fOTa$b%ZyX@%c>n-)w#`n(c(Z`$+lt!{)z#kGksfm%Ur& z^hPbq;-R|{Hass5Zx^QpV%(0or}`GCJ3_Fk;;mfXU^)?x;L_51GX7PrenY$+rbefF zrTLA@3vyhPqP3eKkH$VJ9?LX@Ax{G$Qc@1!JytgK#Oq#23bQ#ToVC*4N%ac%xKAw6 zCT88@0KG7B`FVv?Y;5IV>VD(y^gSnNc7=DsQ(b}`31J?Cf!;?Rn7WoqTn6+BYP9)p zp8^`l9&R#VAW<$0l{Ridx0#3Hbh|vSmli~gA9=@ZHz8gjtq{o7=k%4LeX0oYo(m$; z+}09Fdbx*px|DaZI!8Z^skw_9m8Q4*P4bb3X28+#@*G4{gn_CofvXofGh0s9jg4&d zmgyPo@g=WOW$b}pNPC6&HE0K)^e{I_Y^JUj>wsdN)mks99jdq@mnQGvsM~(;iP#=F z^wFc$9HVpP^sR#^!*@%NEXd51-oRJ#sZ*-UqJh-6qThVBuo}EGg9ohdN7h$bHb$zj z@BEeC-Ze?iBK11UvM*A%j?-*1D)Zxn>X~jyjZI8^8d?BW6|6P5y)$8;zY8G@PBtDk zE^lg@m#T=vxXg{bgD_r|yW%_|iIRF#EB#u2N zhCf4k>e@n$2bhzv-KQi}|3P-yF9Jo>2({QpAXJaL3i{_rN4V)`(a%mV+8Z_~l3QU3 z_DB0R0e;<%&dxcmykjyyA?kQ4&%hsBSTYHW2=Ys(4`7fjbPflYpP@ftFOF#pcncs!(a0j_A6)Sx5F$@ zsIm~?zZLey&31Adld`_It6?$9 zz^zDYv4}?wpU|kcB<7ky)fLjY2)u=Af^EF7@->>LcAI_B%6bZY9JXJuW5HLlL15)AZO zBh9>cK#=YxvEKR+7v+ZsSR%9*M+twIZ=*waX;*#f6&xwY;iH{d727%4FW`;MZGw(X zI#O@qf!(ex#t$!YM7*V1J4BSd0n*?~KO6ZemaUGUlM}MqUpCEU91JpJYQ+L*bYI|< z7>nu#AK3kq-G;k0Te@hd<|Mw7AS*<;zc<#?zS+C59G09rQoJhZd{`>9Wek~SQ(EDc z9bvicBE0h69c`Fd3HPzG;)xd=bq%Mzm6ur~ysYM;B>1Rc<+i;#ecIQf5*g)D2gMNi z*-73qS062KY?O9%@`ic$?q}$5=EEkz)8kx;Ccsi`IonBAH_2K4DLFzl<>a?XTpd{{ z41{_>U&mj+t3H-cuYY`7>-^vnN=+DZ>~Kpt%Ecu1OJUm01|qe?pe5OZe$kq@dvs1( zA$n}!wI1z$F?=D9iS5}WKW)|&t)U*i5ux4^|J}?C(N5x(*!xR9rWQ@3@m$aH9+nCP z5g^;@=Fn?Ldzw7f*O^i59jd}(Bhsg>-Ku4LbOTfKv(z4ilBH#SWhyeQ!7NJ9HZUekSE&s(E4BWJ7^|`hm zNUri`h(tIBpZqrQAzT7()$-p@>%(u&O5Vy;<~t|02?j@P&K(-$7wJQw-JOzjskkYV zNXB7AzrUfZrWbFpV8B2<;>_7Nz0I|a8Kdcp0OaTWryG>28VF!n&7~WPfFDE#MU^}3 z-Jl!6d?m)60Pon|Fi_A_rStlpdbHQDgVaptE)0aeYw|DWQB>dyv+BA+Fwoq{lH80T zVnBDFl4`xgDe(Gj+e6HQMiieg8aPC3fx>mfGh6Ow?qqhPZcphsL?Y@a1?Zf!;P?vH z&iYTdZ3qEOCwRlkoN=6=qiW2P1AJvKb_JZGZfp^>jnW;rm2}fhW(t4LrZ9V|>P6hl z3J@)S9Z;R&CeYH6i+V#9%Pg9o$)0TD6xH~mpJ7H&SDHZY+iUs zvjL$e>tE zwpJ+o>hahA&_!LyL#d@JY#G9xW@mmW)T> zOEZKvM=>F??oO28U$KaU=HG7glim+GD=+J(%Tltfi{ZX-^gaQ`NibxqqzsO96LpH` zhN^zA#kNmIcympSa!i+hn`;%37-a1u}7Fc41nt}4;M>x?5NJpXgFI=-iDjMB-s*nP-`&A>tL|4t76%_#pju~gFb zf@#wid&$mXp{4baGROHXU^wHu6uTd%pg(6#9GYca8zs1UZPV4f zRT>^m@08TuRS68p`%6Dj>B!J#Gw%{V(%StJxgB~EIF@xHR%ob8j530^p@;Gj^zo40 zc$UKR^As%vq|{?~hI(#}9;x@$2OlZVO|%YleEIF`eO0Y|Tu9n~Q$#4$-M6R%^|}>~ z0r&x?M*4xnnF#t9!^Knydu_6A4(^cK`Slp{SBBd z&zPW@-fp>GhmIQJ#l1yMa2DM^a8f_T5}q=0kD(Fj+D}T(tznDKCzGS+UEp_xYJHMB zec1aB^z}*xAq-Ku3YEW?q7_@b+gG+)rhC2C@~NA$JA> zK5ZG6CKv0$zjeL9B+q`6G6|=D+pz5ZWvSJn8+gC%Bn}nA|_{XQW z+xR6nIYoi|LBGrT^C%c7d$Q&9)m_4_`V1Enp?36@29~Y@&Uzr^X{*^vlSm1(X?Q$6 zfYQDvuzpVWzow+HLIUNA(ovh@&9Cla_12RvkyD1h#6;&JWa#iMf(L-&*}9E{%SXjE zFQe)p(#^+7pV@7Tevu6uM_@ln&PmXSXDd=-vB)O+l3xuOUnEiXLrwT0$s{=7BgBl*$SLks0-31qdnK+&|Zpe#h`HY z0@jvIdw&j|`B_KkC;(l(MXh5h=g!X)86gh>i3c`KuYZ7V;wd6OM^NDn=04$xIg-0iZ z&d zRevET4~2_`1EKvrb}G7ytv3gNib0F>^v~_y6cJ#F8gm$K58rhQv`7DP^`Jk zj!bDLEAHPkjFtWWS3I)|qO3HG{#O9iOO0%obt<$@w~xjy>LDJ3f z=Z7rs?2f|EE!P8=81le`>gD{7tA;&C{Y4aSf^c z)pZ%Jb=by}5%K2^c=fq$b@xwB6(7VZTCIr8Noh_y*p1eb%mcsA+{mu}N?JlI-$xf@ z#_{`XKFrw3aXzx6=RV8k_K^WrQ^UZFW_x)AZ6XF%DbJ64WH;)&rmtVQ30dChOb+kJdusK)^ULYGsDtLMn}uxG zB3dJq5SRvm9D$az%y&Xp2EuIeyk91vm3>V}W4xZj9zsaoHN(Z&QwMFb*GjICTfIx_ zG%*FPiCg)6eZyVT*>Vw0-pMK@y-)wNh48c0@ST=(lqdM`VQptHDR0GW)O8`4vm)Og z6Z%tYhjvtjlp2-w(@vY+|4l=BIIMN~8UR~%;&YY7ZPxTTTe+f2Z1(j$Z1#W8qvqcJ zN2%LruyUjGm96M2kcqd}Ojj?S@BJZc`iW~O)uiT2A7W&j;tTWT0Gq-|H#=6V6wA4| zu(t#8J1i)cxA`g#Xg0VT}rtThOlY7D;dg%9>Y;oz*$IThj*Y_@&_I1JVc0n zynBH$)~Sdot9>#`meuSM(8KWedd<8V&Q(Y!mYKBqdtu+kzv_abpqO**DDkpuFQ%yO zYK$qH>~aBs5>BJ*%286>z%d6 zVlIo-E2<8Hmg<|Vt}C_VTy34CiBC*Xb^QH7E-5A;vev|wQpGBu5TmIY4m1jQPnOAi zynTgG{h&-$4`3#K+fmPRUP}!88aFY+Pf1;OzEY7bqlJ`JMj(~mnRnMYyDhVDrSLrA zProfEI{VshJ_ef6=#h_3Rv=n#!*hIwDlO@mqODvEhvq=o+|OBE7YPF4hGJ^eh3^48glh!`b%+QYMc{mrGFSN!Ux-(&)2sbEtaaz zJIcoo`QCNPb$;-}Sk3dcS5HDzC+-6dP8OU|-c(L{{U=*D>gtS2Mz1Rk)tc{07DoU6 zIlclGmkGZVEse>1z*cmQz65!YO7s2v`9-%?ANXwhb>l;^U>Y8=Ce4C$Q1XJVWqu9I zC0k9i5BqN=fzGl0=EwBoVyUZXn)EscNx$QrHsZQ+tCsF!*Obad!=YO`PY;c|BDd^1 z&uq!5BhK$01kA?ScWfV#@SOG=g&qSCJdj#|#pyfp5HM+st3ZBpb9*{B2`QhwnX98u zIRi3E^M_eZZ>1poiY6!N683j$D@z?alkGuWmR_uW1MB)ahYK$3vGo!;*U&ZIjbu6Q zqIJaO1@Ce@fM@CBbo=zqWNl;2@`RWMlcMf`75#F})Q{RsLhTMHV!F^KBDS{V4N> zp?rnOeSBB2Q?2|nVL`gqGP1h`}22SmOfh0V*vMu26tHIx=yq*X4 zN)FQRf)yO@9o`Oa`Ja337D^Wxgco%skniN{F%$5qKK^)&x;oW!`ZfAdAJCLmh2U;l zK(*5ee~i`wb3X8HlANpe3_yG*v=}G*zc4m#M>?XMY6^mr>E`M;fVsXVL>Q<7Wna2F zBdGQOuF2j^sCf9{9e6F(-E}as9Q(er%TR5asf_N`6b!^JTt-7579~&a=Q9pqeQk`r zklJr!B~iUcsJEernaaVyfG0^5$vV7N$3|R&fV#UaRCq;-Iaj0&G{`_`(%)+Er6tJ) z2Z_nB9?sR^C_SQd|8|!JI7e3axa8B`#)`$VsR(_qY@J@`;~PoinVf?vkIFfRsF{9E z&FYepHg@sz+Q=e%R4`GHT9j+$sS#V8C7?~2&k>Tr-0obuUT{?8&<}%*C3|8%ohQQI z)Zof4CPTBFg@H_gNrkK=s+0?Ob0~~e4gEQEVmZ^G&s1OD_h=^g>jMm=)iM1z>#V36 z6s4b%;kA0r%tSXjRNeug`G14`1;Ia8%pee1|EciCIHGtITIwM9|#_;s{zIP*dTt)a@ zSseuP%Zs79^8y$@py8)q-G>)>99EuI7ym9Jg93&{0WI={LmLpG>J{O&g%Z>&Ms}92 zRcde(hs&5=16-gQqj9B9uR?*-`g8suEG@aDLaR{FfRgMrkxX7$tCd?Ry(E{^Uzs1d zkdaandU%|v5NY~L8>)*0*_0uPhe-z#TB>O!s+L=9tb8h9#PKOR&k@si*p0k}4Y~f^ z$ZO`IbopG)3f4vy;{Ft$g;ibEZeoNLh1(3`kg zqcgszh}9@ri~Wi3mIwAYKw-ospA&seL;X`CK#a8fbCiesHw45;AL}INWCXv`ng|K~ z?*A3+A zHb9cqfkc+xcBx7~ZA<~-w_huoxf35v@zcK8uZPdA^CS^?Z=l&gm*VP&?Hjs3(f3WQh?Xhe2*9xAMO6D3b5-kHx1jT`|G z#UgBmSw7APVZ%gfYX=CfTq{BHevo$LmAm+ci`C{)kI}qj|Hl*-QAJscZVqM=K08q? z7n{qi7T>{Ayq-BG!yKJk7CQ{3sxtKrt(j-T&?L{vZ?d7~LsD`+bCR~5*Ce{2| z*_*abR!oz~aIyn`KH4*THPaTv?G%rSGZRCR(x`Q{-QAj7>Pl$fZ039=Q#i(;U93vm zGb}6z5!5Mkc%>PJ_eZl-UFF^%AiS2bj-ORVErv+pSqw_)5-|B*c(y36$I*(ma?lY$ zK|TAJs#j$v$bFXI4!Uy#KYNWNZcWG~s}!qQuCs5Js&L`r$8=s<%T$#=BnRnGO_#mm zYFL?KFbUC16=hjFzz(Gm1>=`@9f7PDHe8R}T?;5knUy+C>4f(rgYEGE>mVtt;v8gh zsdXuY1S&Zqa`pbn;nWJ%$B%9g*EMqf$Q{mNXtw+DFsmD}kjx70yML zCw{o!u;dNiOH)T5A8EIm$%_jNu#6@}F7e0mJ0`F4=$iN2-K%+w1nSn1+E-UrNx_H9 zESb!CF`<$tqu?JtS9{QKlvSKBbAnIEg%vVUZt_9t2i##jO6=N?(r=umgE+vKAPrsCE zKrJN7&-U={tfxb915l&&j4#F#BMnwo6i`1Z=^As=-D0vdx0&*VaC+<>OZ*b&GRAbd z+WnBy&{R}scNHv|JsnH)bZxZo+b6Osgx}kvugoX%c5zCi$zmnzN1?;lkzADQqfmCa zKl|{bi^T?_cw$J3jmcs^RnKbxjw1qwm4nMX_ba*g>KCn}fYPDQu+rh<2>g4d_;7o? zL=clkF8@o&!E%ZOSA)TRPIM98+XIQtY^2C;@<`d7ue|1!*1K8z=y(D^^Q`1SDu4e$ zF$CjBj1HB1tjEr#zbf0fVNTR_%}qEeD989 zjKZz??{dt=&-UYL{MpTE$6a=Tw+3x~M2&NT;QLL=rdi=jXZ?iju_>1qyOu4ve-~NY zr*E?wML0$v3pF|Zw8DHT)#vG_7YI&38%vh+bkjM237O4ONBsSKGrejre0p`&HgS~X zRtL#tSe>uXcD0rrj%r|`u$VzVGrUsWZZPz1?&t{srh-YfOAR>e`HvRnPM`jIYwY6$ z9gtmTpDXrci#N_aI4>L?7H6A3Ao(pEyYxk^>SAI*nihna%%%R&HV6ZEj6RNw!>Jk~ zas)sny5VY%g;`VCvdvuSgst~d_{h3E2@h45Z+)J^*dwhDx6IH*nvW4I*vV8;SqUmdo4QAfttqLakYz)%)-%jYSIc3jF`iCn)@5ZV==Y#c&TH*k3!XE%%WhEN68Y^ z+|WbI0x*H{o)-OJTG``lfWH(x0=qQyXa}yn=H$TkrbVQJ*v35Uz7vKqQ>mUu%GXt# zI)3}h%Fh`I16AlT?ZWPZ`VO~6ZS8(H+*dK3u&v3WyRBXgO|qpk5fc}yX1jbJE>3_< zrUUOiR_);EI*{f6{Z@GDx2fXk9GRCrk;CQwYUI>I`^m%3v@}@Pcg~E9ugg{P5XcNq z?OeRxOjz~Pw7s*tw%ctS!J9X{6;2f5FgmXlaOnZt^F3NbzPiWNY#E;h>XiglyXv$T z1T2rf$EZHB2R&Yiw7CyNFo!&TAa@7gn_d&vV1V+1-=XM9{evYAH?#|e^GT?XnylkCI*e~WdF0qaEp~70cnU}Nuo}-UHrCNnf3I5KR+K+hCNuf*Y$N*<90_mc z7ye>?UibluRQy!^Dy>!neSZ^CEuJ5~kVNpWhA+?I7lIv;3ESLZKHPnrHw3UFHGZboS{ zK}i-y1#tY!75_xo3$^k3H@IXz{oKk-ygmt2IPpCOFomxc_Ai0)N352`*>A_-8J6qP zM~fSw^!l+OumHWK* z+3UeA)yk#QauwK&tv=>Cyw-PIwE?=S??=nF#?Wi0rVP-w_m;&3z;HhuuT{lgtqb}UHZAX=?UrSF{*!HWCmD0SoolUPR>-WB{AJSJH zv{{Ldq@6B{)GReZbN~GAU{=WIgbG^UCeSMKTH>)^_W_t`r;K~rU6(EQbzxQBn?i0| zmjiAh*6r78@r>qe)}z0Kg+z=YBSRSrH-}0M1oP%!=H1U&`9wKfmo7iH&3an_m|D#r z#<+QIe%4nG#4@kOdGQ;S-S+Kd9U1s@JUjMNoZdL}a7Ur?VR2n_Uj7tew$)!aOS!^`nr8jJ0=iZSb79mUe7cv0^4k}eE7g~&h3;I&_imA|3{0sF7hU`jwrRl` zT_P#Y+f}r>n}kq@!Ay@+FGa^rwxavwcp}2+PXF7P%SSK+;ZbQKuSH$H;VpMycK;wk z>S(o>>Em3kcOqVW1s~4V9ck9q<7&@%r?u7NC~((($e{lw{aS4H$?NcSzCnlH^5yuq zY(z$pbM=H1b-i2j=oN^7-CmvqJw&(e`DgKSB^MZ-i6S{lFOKZJEkS+@&1U88{?2gcmWG}!hO zGXQUBP>R~TeyQp>Gh4>-oF^wnCvJ1e&~Ya>It|wwSaDtO@Lq1gU$%xd{2AwGe!PB`8d#tl z;OxBF+5R$4Nz08wb)DT}+q`_8{9eQS@njXNdHvW!$vUQFX*X?CCgV>v`3oSS`DV791#R6f&A`;d(MEf(({b}VVyU5ec8JdF+ixt)8_v?bmgj@&T{Ig7 z==PR!Y{_EzZHWD--8!M0{amQ1LgDEY(ao!S*KfC#x?HJVSK70Av#H}*zc9E^?^;Km ztZGKN$DYS^QWzK2`k4N@%MXNQHvk4rwWr-Mukq{ZR@MU+H;BWHfV6>41Eb{xnGJ+a;fhDB$UF17b{S-jIKu-0~%XdxnE(A+*(D4_bN4-sIwx-4hA zW`1LkP)$BNO07mQH1Dc;pFM{dUZ(p}Y<@_S!_a&@_Y}66VX56TC@KUbL zpJ#hB0`7%|d)w<-*{~fvVZPD2)(-bGjADS&qry+^qc5MQ$6o%HGHp;f&GOUMSN-u( z%siJcy|N8<*fE*WpIi~~8}1lu^C>~g>zEVy12yOv+u2zh&*5Y%(0Oq%&(kU1q{!4` z(SS}Mw0-G~E;RRadmeE3)8n~rzImHLQ@v`tW%gj}J6i2ufAOa2FB#Ygoo^{ysKft>3bGYiTh{9Y(a) z0Npska072C@~ZB3C(YW4KXqCP9u|)PVKlKKiT%J?{<2*?G+Jw0eDYDAWaNlQG*$qzkvFA0=8QZ#xfM z&$!Q&TrIOR>TWE%YWCkv={1_lWOH2TFl1}4_^8$#M?>b4W*lyr7W`^8{7_v!#i2S0 zBCfw3)|9e(LQ$?J;YWdPpwj6Fo})~0?=_*zX-e!z(Ah;UfavtY6Z`EJ@>Y|TTi?ko zQu;dr7$ra_$?!l|c@F1JKK%yKtup$=!S`9wU50#4W?i(2g*U>{`vc&qSju8D6h#p? zUZ|GSLusU$%n&(I(V^2=S8&PuyldtArfKp}y)wr;J0q$tcZ&Py$jHQy)iPp#BImol zhtci1^zJIApVDXqhJS~nYH^fh!~3I}vJTqY&u;-M2Py{)iiHY_JX>`v^Kt@Z4H?X{ zJJSbdqr(@oXcZ{YAYIIg7j%skeKA#SZEaNi2Ei_N(R_3L4dFY@+~mt#?v+V+9Za^i zP6VH`UijD^2jV|olU6~?e#SS%q0>H4=*{Xq1f65drqTpJSn!LD{JI}Pt_y=fN*Zs# zAM5~Bi9K~G4ucNwFM&cdmyo+fU#;%u8lT>en#wtPlE|@&V$pwbr?k*Mmi*ar!p{BR z{9+}Y4H0o_6b)-$n&N@jYzvXl)~qGB|4oqCnwYL5ewY_ibn~l1Q6FZ(;}*h+mA3{j zS}&|09VwAGdIp`tiC^fP zoh3tz3v6vr&t@Z(F^hEZCS$T+tvpHoK6*9griMp1H!|paBQ-2(RJxrds4kHNq0h7B z!ZJT}>{pfnqw{W`-F2c|q?&blk49)!l?M1Xyf~WqiHaV$LkAlAJsnS{QkM;yaa!#tKX6PN#H$8BrqF@W||JdSqx z1?%$AtD={E9EIZ?)T*C0(k3w-q`~cCKNc(*Re$jwYT3DVa?tDIRl7B!<>_M`BVXjw zefB^(;+sa;5|OJ>nBaetKtNn@7`Eyvd6=sIeyoc#>Hi_`6Z}Sr0^cAk^p7Twq32`~mOn%v z*WV41HHjNj)Xhg4{H(vp<6(t#d`B#5z*GL`VZyyVw9hsy4=<(`BAPsAwKVal3exH@Df02id<%c&R z^_^R4nqY$FJGW##LEb2qU7)4Bg#KGM$$FeT2$mn_1o!t=@&()p_wS9;SAG%#9}Z$H zr6oi}uf!z;$QKAEn7_LNlGr0v0(nAjkHbq)^4KMWu&%|XiImAC{IIUYr^zNj5(rr6 zVx0IBZzaUB(8V_eu?uU0(8c#(C8Z#Q<%v>%NA{NN=AkhCLWtsAv#t4o@EaY*QNPPD z?T0c6SKdE1Or14?FAHl-%6N~X5#QW_2S1naQ73+>>iClGGvbeJ1gu`nu@X(OzvpMf z{vm^W@4;LECa;E0H17_7zr~JoP&yJ_&%I*Hbfp(3jobL*>y7Rq6?GVr-* z4JTIe^SY16Cg_p00NrRY^*qXjb@?SWDS4>!49sDKz{S?KipP^g!^ zw_Ugjn{~XHoBFrlXW;Y8BS~-eKLQV*IV|ZpB5qe@9Hb}%3%KGR2ol_bySp_IAh=5imf!?AxVu|`;O_43 zkm>yQ&YSz*%&c`di$1HWwpDfQ+THuxk98!$g9Nn-a{VD6b|zzBZAchh1QrTO1m=Eo ze%%=yPRKj!^@4dFOju>Vbf>i4uNvT+Prolg^F&-4N}$s|J6e_w_6lrfKk2FcLJf2vf*a%shKVfQh;BS zQ`CG+0+FUb6GQXUJYI+7sqn5cDZ~P<#96i z+m-hZy*8|J3*A@h(u~KiSi_MAst!27=N+trzqtFK-c>cw>k({6V(>}n;&Q|T<}=1} zV%7X)1=^#jpwu zH#?$zE+QykwOVNn|x<4d*G)lXp;_rm~u24bPLc6_U2{ zU`sHSjp9%3dFv*gpfg+XIRU7xe(UD;oiAFC@E_R^m-F2Z<2^{5KH+#g{e|j=N22^!cNe{XW5zB*WBj+VjW{iQ$tp%xOyZ6S&`Y z4U+7mCX?A;2{sI(_CEohzA6l4Fv8npCmA*>Q6N2Io;!Xe!^1l%ZOoE;dKkBP)1F>yP}ug=X}+G*V7@t3ooZl@ z6Lo>_Z8zwN2eiJwL@)1T)yBQ3%NU8e8+i(w6Wym+fuauIt`->rJ-wd2#pq4s&bRVt zx$1X~LRTjhbH~dyEemP)H{I{VYZzvs1mw@=+X>C5K|Bgd;vU)ZE(gCoYCg>vzXU4i zFmUMZB9Zj_b8l=Bvt5WTY)kl#v|;5|f-L4F_r$FjfynV6_gai{StCU;StZGvtf3`r zpdm_roU-7{?EqcLH1=syR9-JyNHlwMe>We6&2^d~ZrqR3vrHhn9{NxKiS5 zT4pro500txomWSPKKD<&U8fr@(=bvzIJH&a%9~m{V7q9N-|-8L+qKLHHr^lJt^2-O z;CfpNbaEV^aE#XBMQbVIUij$DN5=iv+Rck!e4#;cy3xJf#PwO}TRqn+cXM7E?bUqN zvBVIqyon4fm5-m?5r1aoHF8<=Up1sP2IuD0s6YPG$8#+$_rsnq>>D7bCN~N4zqxUr`t1(wHZ7OJp@nyI= z{y)_HdWWmh#CL3eQIOr+ll0F>eO-=bbwQRp5#9Si--5Ht0)zj^n%Jv|?>EwrzV!ap z4di(%*YJ`Kjh-`HQxO|dl|sc|nCu`LYy%yOs0zQwCi-D7NAy5l_Q~JYJ2*2DfG5?_ zlKf8U%KF*9EW-CkQw8r&`r5quPdU_3B&1howS6~6B>7J|LUoNS!|dh2DUaQDC2+f8 zFuowd&klVe;T2PP_`-v}AR>slHS^p7Q=|G&7xNJyG+YoN6=V7N#FXF`F^E&H<5`<& zxqw=ubDG<5i2wXG3iWn0#g>vbpEEE4?UXr1*w|T^bbe|bvm>8!o#XXzM)+n+XM18 z^5LGsH4Hm!6+O_-WOBA{i0oNl-U?RxmfU)DyPpK=;wrrM7?adqGYw@fkbfHuDWwL# zp2U3%{kFYoD#lW}qLx;JT#0f>e7-bTxWjvmZyXK|TH8;O1^k44A`X@@5sabgzk~{~ zx>R92s!DQOElwJUv}ZLZFRyn6{9$;$3b6h@~DOA;+{{zV?BXap()^A2@(fClm-gl36vwv z^4ygjVoZl6E4HhxQCJ7xO0XoGJ!$|r-yOkGR@t>*eSK}905MAt%o<5yzc6}a0_how;mibp?b=v7sxP1Mj>B#> zKq>I|3~ZV4RE$5ERXit+ZQ@@;S94jwH(()&tV`ffXHdBV4V=}WVezPM_b?aR?WzaU z4wQS1JznjC;?gm-3iw>ue4fUJo&QN{X)xr6>P;qWux9Xp)-b5GFBkEbJvr8uuJWrz;)?7#p zrS`Nd&;7ddG0o|D(NNy-=M_nvQt!IyVqR)pRBpz?!Pp0frOxvhk??TRlVBFXgl{4{h z5<#}yLXK~Fyqd9yR&aFU`Z94Eagd>SqfABHLH=?VgnZ7bFi{mQCZ7vrHwk^2fS1nA zv9LkJWeA(WxFt?*DvO8fpA9k9VgUk`zt+vXre@2<{7vCW73=|S*Kq_Yu>>lRbMY5m zShfi75ds}sB`9adbBgQ9J*g0O*6G5^UKACTTfla#1Lt?B;X{A`&;r$w4fNCLZY&*=T3-rH zo9L5Y)qEx`N@^icK~}K))c5kk{C`cGOY!hS7|zc;fz7evkEjf*tY4WY3yUbc+6C-# z4Y;IXWM|$_zr(N&`8{tu_@$=2r2|7~wO!@TcNgZRt|j>0r}Cl-FuneP^e+QQIa-a_XY?PfM%w3m9gX#(;V* zjqy}S`tcBMa*zXVPt($8@#Zr$IurxIw6tig@OXrUjv*sv30!=jp?m|>qQ`Ou`#3h~ zsWb-MA`gkhwirs?`{lN#``j;Y=ryOynr(f9U=%B_IG{zGo7v#t)c4?EJ%62E8(&%- z3YfWj8Mf>rh{!clYeanH`2W2$OLxGfY3qv%d|T{{CQGl*o2saS>v24kvp6s|2N$P} zFK*iv)^XqfxQM(CXqFvmp1$!D%QTu*)(SU%$gAl~)S;+o>CmBYG%R`q6$2+%E4&Sb zCS#X#4)W#@brHK1)d{y^4A)(q`5H1dCBf3x=q#4TkYTz?SJPxud>dL6t`x%Uq~ zgZii9!E=lHexEcgV3Oy2u)&-fP{U-eL-DCS!Nzyk`X^cg{r@!D|F)TQd(2b#Np|iJ z7b0in68dK9gUfWu_9v+H1k~YQ9-}i6K#+Amb z*9mv(v1WrmI4~38!`CkQ`dWZ-`7*tO93BeUKUHe zkz7$>eb!z0o>DcV_qs=qnbkF@!n{H z$8ufVMJK}#i{-A!p&d~dFY&w9q?AI$I(9@@FH2gR)BHt~>}0<3cBtHqUqgSZviHs7 z3E;jIj`_i-p$I20_^@|5bv$=|KZ_i%U(leXPheuYd(>C=`{v#L9hzXOU(quShAgeY z#RnR>YlIVz)r8gY?QgYD6BOSRZ7r6bQf+NRsvQaWF79k`q<-X?__ga-aX{--7T_On zdLFx!3i;%4^wl>DM>I_!R*ieB4gdGX`?s*g#=z=kVGx`_UhWQkp4$v zyRUCUpP@|C;n$gu#*l&K%TKj^Q0EWm>f-!8IZuzSo~40D=cWJ<_$h$*;tf2V1%Az% zb30BxD@rDb*DqSDuAO>CGTVjquo>6d`F8kL$@yNnl~8{BIKR;G@h{#YQkFWDvh^Cb zwJ#54=+VNu!oIdf6ezzu3zB& z5ccER*-#$A7Jt9&e+(!5$0Zy63qi0Uut0-0Tu_z z?~^p`=}_j9kE!e`L2NtpEMVm@>|aC(TFt}Z{b2q*c&8x9t8xsypQADDDe8+#724A@ zfSm*!6m;0y+3X_W{eE=_qC94U?GSo`x@k|Dl)%>DsCfVmCipbD>3j8MzzW*`Q#7oA z6)=qRS2BXuTg}}rwfc7?l&?;Q+|<8%5{YV0=xMf4d$?^1T>X1XJek~x@snv=SA@iu z-6o$uksQ~R%{vSxb*JdQqzYft`6!XX;W<#=eX{aZ+)5L03YI-$m$pj2dm=F|+eD_^ zVDpArxq|(v2?mV}Ab!WAr9uHHh-7FqFFE@?Wwzzh6N=O?z55zL%xf`@k+#rh&b? zDc>&jdaWJ%cUVKN8FRi!Z=CjA$K{syV^jvugM9Gh*Ir%bd;-qn&adReN8{mp6~alZ z??*4(&_2Cq>pJ@6%Y#4BKUk30Fuh;0KW&ORZgXL7_H&rmzORW%BnxM0Li*H;<7C{p0> z+Y^GcF|Y}L$O;^XFGwSGBt^36{?rgU5ubaF7pIMtd+k~jOFRJ|E?Fo3N||t}lM8@f zTBn&s+f6p_tBn(oZ+vm7W8$)agXtnaR*LX9NVrA1bPfNQ-+a64#weG<;bQ&QH@U9# zgPRS_VOSL-T@}J#=QGm#hWRD-+d1{i;z9aPtla@ahWlvURMD2A;@xp%U7z`c*B`|NB#q6fNiqMaq1?$C3!d;G&Gb$U(!By(S!zpym9}J`#xUgJsMhfie&=+Hp#3 zBFqSx@2!{;fic+Oap@G+siECCm=fZcVF>Jsm|-x~X8?S@I4vRL-``{_u)@Go5Dj)A z0eswQ7h33MugN=!c%`|RKrY4Y&eN^gugUk{x=QKe~_Y8qClqZ_(Fs! z`#>ZZN;?I1dGp`8p#SXx_uslWJfcu{0Dt?iDn{l$@qwZU`%_{E$}szT2FjpehGDSd zQK!NoQ^UZ=$$XXxnp7o>Yd?Dx3Qu7sN{f_FOdbCzfdwb-7B)}@nYse9jY7>KO5575 z8fwBy848anL5)uRH$Wi)+m}L#?eo=`Lbj5My6Dr7&~A+XqXGcb0UW4;3s7GmaZAj9 zsemu@Un(%sjHIHjm?R7n`ESx-fYNOLPig)tfFDz~k&3#315|)4<3$Y_B`Ps7C18=M;}GMJi;CE( z12#Zw3lICtY+oGO)Jzh}V*WQO@PDa*mhtz*9H{e;lJRKEMbgy@H8JDB8nFDzOY(1x znCfd|g^|%CQpW+3rr)=)tgoA;`p)poxh&Mc@5sSG7Q9n}bJBB}LDGHzh+y`4=H- zkkEGhN8VtN7kJ_qaPa6@+$J!?INT=wA)Wq3W0?9s!T$WjZxIIH5@UligB#xT9WaI| zJRA^WhQ$pZDf(`0a>eo`96vp}(tYG}w&<&$aCG@a zNGUidVw?YC+!tTf?B_Dr>u@UCP4X>z->892CoJqQrX(uBAEdO@u^SF2*uQVqLrR7I z12_5mzj2elgSg3hut2LBm~t8XOe5{ zZ}k~|(yAW$P_Kr9a|x}9t~_nF(eX&Pk=RWL^1=$?iQX0j4+z7HN?O{wOi@1@9^edS z4G1MyHHQ;Ilr3!>spM~%6e=(PvFdE)6c~6GuB6nc(=?u|4PByWuPXijKo&qK>=!1D z>R*eJ$^$}aVpx3rlKQMDa31+{Z$nPH?$h1X*ZV0r58L%8`NCc^vq&vaWlb>{WsHf%g7qF)$x4s>m>Agrht2>oC6^%YzU-QhR|q1O*2N$ zE}c1#L4ROx8@e*Q7MNbPfoENFBj6@P_T%@+)B`*`&WN%v*WN*oOzk(_dXxh3_H>|F z7Xykn%$jz3#eG2Xumn3Y2VK*ON34|k3j0$NSHkSh9nwb#@9!19ZI|$&>WnVxCWz{} zrv^Vo8Ca5inJyYPFM~#vV8zj{h0Mpd2@nY3vJXN#7+AhRd? zzD`UD1R+ql$Ca$h=S!Eh3S29ll=D~5{o{@?6=E^>+ih#2=K#nE(DuWy}^=6nqeb4>Prb%$BT+Le(e*+1MK z0G+(1g@$=_8d*5lL6|=fo0&&?VySpUghU81^LKjfWLKV%p7n8)(}c@x!^9;|A-mF0 z7Gd=F397El2{VBZX!pP>F>vPU({_0WY_2?pk%IURdmt2C+qP{KjVu}ScZ%y@KxaU% zB~4x;-18jtR*eG9>Wx=^6xq~u7vNB-h+4^@W)`Rs;h>^JQoBRMH^QZJ6>O;*v`AX> zVIgf?DP1*waRg-Qt(K_B(Km3l!pV$F%hU6N$a$dTUK-~co*Wt9vj&@QWC2_&a`MVE zgyR;3Y~A@j=hyd)p&Ks)Mu*2q8Fz|=-hLa8G^Yo(zAGEu8k@exH2hY#Yq2T6N71KhXL|4=?TWK#Ys{KakY&T4F4I{MtK_%U{lqg}lU+ zzWL*jC6OuU%s5bZtG{*S3)}axMdCrS+iKhf{?%C*9(+6u4c|cD`)|8wSUB459^>(NP`$KqTw>$$V-+Gogos2pe15$MxNVnUWY@WB6kjt9Tuj z4!2))L-y~<D9+=f89==n68*b8W`cz+V#WLV!~G0@}?TlhT&^dxI*jVmkc4 zvqI;p&KdgFEtFk*dXd6orfm%bN-?o~4L>K=_rzszTBfq1I1QzgFE+py6U06(Oa5K? zMs4*=$K^T{Y6|C^0tH`^V>po6%CfpAsrnZ zG=k=EiW+^_3ddfa*ud_q>? zJ2+AqyIX=57FFgXe11eIB!&1^Wo}MuZ~DNppo6R$SypphG!zxP??pXnyzEV}K)|lo zcs!DJ|JWAv($@IFOwasXTi~>OnuqO{PJ~&#O1WTkFs}m2$A{^qjJXZMj!^=NFhO%v z1;k=!QUc6h+}=i~&p?ht6tT<@Nf>oT?1^Y;2j2(=c#g)seh@5^3j9a_+~4 zT>FBwi02Xqwf3cDZ0qeKXuQSUj@nHAv|0G^F;PwZQT#T-gYaixj0E0IB=?N%9R%b% z2Qjh-pF7`md-7Ym4aJmh?L&O^32Ao{NvFD41=`=9LEIKJNC4;qX^kGe4}Cv|$q*B63Jinjqj zZ>MM1J{=B zzE{h*a31cIpOAF3x**OMkDR|}y6z{Z=cl$~?2GhuJ%d^8zB!!@jzJT*EeV?=h)?lS z2ii%4N$Y~2Vbcb99I!hspYrBY5Q z&CtfylYz3ns6Ar9pPR+{!TWtVh^`DXrSZV~m>nj34f8oNeRJovzY`wp>GSKeDvJ|q z@1OFH?k|honH{=~zQQA}8Hv%FNutzwMH}^Zi~_%A_Bus3&vcJVvv*;a50smuY?^&RxO2sMe*XZwvB_3K$#C2@!-sd>Umhdn}xyuB@P z7q&y8KV!^yQnl^+*@3sR7g{HFGYe(8ruAA!Y|2*5A=umBGh#i**1Lo|@6CH&Bi2=6Rmg?`z!iwnAjJZ3)Nj zQ+coH_yl--rye{(eOqV){(^5xTibFqt;!b#RYZ%P()^5~8HjlqLk&CqjdfvWVaDi5 z2|^!j?s2shmTOpgZl|xmP7I}3RW-|hc}K6ht^5bV+za6+I=I4fYCMiwyR~7fkp~K& zyQ#yq@-pGJ_+I3t4(KA%K!=g9@OBL=62ISl!cVI+zo+>^5M0FLIlv8F@+-MZ=@7xb z%)%eY)7r&XvG`S#TS}abi(CN|MS{L=3?Z~# z*JRny%n=J#gHgp0MS{(=jEbDd&Emjd|cHhu-i*MtWVB@=YwB(!&;e#Y_guC$qc=1X5T z>`8cIOug452FkW3rro1#AHz1{)cJ-!Wm{6W3!vP^W;*xx3dfeD{X&&(OMR70LUU)Nsb)3P*iV8Lu9sY{8L!2r5Z-Pqo4Gqvh& z+H^-X=_vLD2@G?@LApu&tA-kG0we??#@^M_wHFsN{Tm%?25dDo)xJR9HUOf%KW2y1 zL;n7i98jbGy1h&XbIA{+s!A%Z(;k7*|FO|Ea%^`p`{V{f$YL&UiV$)?$%WWC?kxbP zQ0|$$+Zudm;gW|R6Myw=c#k!Fu4iQ`O_j}G;M3rvm2|&cF01~ z_MK(Q($y&ro6@gK^mQ%k+@_P2n0tYB2CayJDp(rA!>IJ*QM=5m^!wyIW-gu4f(3cp zT@^{o*7krqT>0@}a_psZLQTlr~IH2)|~af8dkt(>PeV%QV$^ts*P0m}0u=ebNOq=?SR| z(P%Y1e5f;uA&&oj#6SY?9?dO*tQT@Kn0)tqrVDcrVHWO=PaCLc<9wuVzsAC7i|@z9+yLZa7fBT9VgRaIa$)l>L*Ex#+GKTo&c>YmLouN?<)M!8DPCxy zi(SYo+@dndi_7g;zz@$U{QL>XZOV+H=KCdgzdx$;7LdCbhrUQUdUf= zC}|PjQJZ9;tB#+hldU9;NP#cLYKEcgiDP{dm74+>wfcq=3*v;5BH2zY{hk52q z8vVGArE^8|9oeseaLH~bZu-IlhUK8Bm2Mf5cHcwu_SaR^f!A)g_;Z`8YW9g!n+Mdk7f{gtD)KFXePWRxMkL3v@I48ib)n8 zLGH;Z(Ug?*psV6?eOU{BVFE7 zp-VK@o3uuH9Wy8KS_c@)$kjlU9WvfBuH5Aq&A&KpfP%w4iGk2`_W- zOtSP7PO>2$OR=;)ND40Z)KNcQkfKG{T>XL6@<1ndo?bso_*#if7;L*tYOva`%^Dot zd`J5O8LATm7Kj~Nf-u0!H_b=mE1AGi6vfA^%d9)3>6|B?XQP8}b~*0emhOfXd?EaC zL1hEa<-KAg$`>~;y)@p?PXp^yN7ZJvb(~9LLY;N<6c(Dqw1$9ddIEjl*o@@$uFU%L z>8d&Pg2;nZLqu_|J;|Pqy**)+fYQK&$S@aAmi_B{je@|)XA~Cf6j?X>3&BI3FTI(i zWyOsKabuSEA4V4f^lB*t*YMQF`0bcNihjC;WtqElg|6xq5`!t%dPJ(8Z6#n$H4W^`n z&Jjj+Nhvi15OGcaOf)*Fp;UF2RjZ#>3UXsnrao9U;76p%DlGf12rBhGxUAbjc63YASI%?+ ztG*-mtn-%>ZCfi@S2J0ceUBIVWfU2m?(!0)xlMU@1*gnf)^46m^}qTuw_Qb70e@rgfo;5c<&4l_0ty{8?TN+DLr*O`*l=TN?HQ5BPUNV<_cNorn>_|y!IJNKNce$|2 zSNy4SbOJ<5`=Fw zgiK)TNi*6Ks4%@fdWclkr}kfsB_%-CJO-%%FIBzY%&k4|?!|QFIk^u~pY_K7X8ZM& zRv7abW3KP_jC;FY8(?_WjNx#Dc08^nif6cRp6hLNP`{asKIR?LKP8B_!Q#G7@P&Hj zQPSBGukFhgj(q;`^e>)6cl=%_Tr@_Jp-g@x2!oP!F~XaX`#rWNy7bxlGRgfmZtsO<@(3Et(g71T2vi_ZL2qT3=?&&oD^KH zMe3?_Q!(+;K~}2UTYdwlxW*K?8ZiwpF$ z=JsOmvMgmYW)aMkiA34S#+=)rLT{bpQq0$Ft>{_^rki?Na%VUQ=14fcP%wcYz5-wP zbiGK=_CJ+R@eAduSYFz@0x4>X7Zrq|&Q7u*o~9>|!1Fw}0lkN}Y`f(E!-BEEe%^J< zdJFZ`6`6)?r4Aqa1UJFBEOox9nX0uan&=Kfh_5x`Mh`h-bzSmRsr=X2CaK@u6>Cyn zVRIqAPP5N@dmnFmK@j5B%!{r#(cXbI(G$#fRBZ85Caw?&(rNmA_^yYCxbk&u44Zm- z?f4&vweS1A53V1h806EkEj{l5Px1^&&tYMPnGa#!&UD$nmCM_NG%AqA%EPQp&UuQdg z;y*m6SsVW@PN)L+&;yM>kaD{Wuxt>N3DzF#Hd?1Rt7@TA6752gygLj?3i>dR%*I$T z!sSmu#_5&X%uuMipGh|fWuwL%p7)J^8=V@xeaAJqA>bUD?lQ3Nr4H+|JDL7%&h`16 zKa&@aaUxvNePSRpLelKujq|L<&CK)M3qzeDq$Ym;_FKfU>&{IaQP}e-)4!xcG3A z=xtPag>KyaEz(W9U0!KkoNiXPUOnR|!=%3pJI&NK$0_~lRbx&PP+!AXsx$Dk^tKA) z=%sgWy!++D^QJp+nrfMKu~!7F)?R?+MAevdx=KB2hm@;p8lvY%de0eX>+6yiJrjm( z`hU`?vc%zFi&7fLb8T9g#2OpM%BaEXpkL{y&GcIFn zHPpQ_%t0_>g@1t&&tw*a`sh)oQC%xLB*^8Ruk4TWX*yR&bq_k98^g_f+qZ?X@ld?b z)wP1b-|TaW*)lgXW=$p9sqwrR+L2Fo0>c&}2Ng?bfD5Cu6vH6^Lh}Fr99doI&|ial zZwspoD}}axp38-(vokT!#1hG>c&=UwF%_f8XX>Ub51mO1zbc^hJgQk){gt+)C>`!e zRX@2}7wgbJ{xjBN9~JK7oT9xCTC)4^#h=(1iEHhnqB6o+z)p(;`{JlAaR+%4vsF3_ z(HFx%5ci#rF@+RjYIgap@!mRx%)fFg6d_!41I<)P?u>Uf-62FOC~!!Emr#udexAX+ zTWJ4X8ieT?EcM9Dr#o0cS+J` zkkINXmJRe205iKy@3cg%9Fvu;+z~vIVJ83Y5C|=)d32JQPSG)q1?_mAs~>V~SNR`E z%R^V+s$WRV;byhdqsA6kl!(H>UbT(u_wy)qAsauHjFIAdxGe28)*4@$XB=C`od=br z?C3rv^-qjPXy@~ID(;5ZxU23Rmps4vU8QR$Y+03Af%Pcp&_c3+Lww&>FiRKVRCu8w z691iJ`0oebl_xkmk&{B;_Q>(qlfJEpw`-%$63`*!!-{dhod_MOnrkT;RS&VSqt-gw z)G~HVGNnq4G2;6<t6S!wgMHwTOgk@$=nm` z9Zh2y@NtWBBbk*q$&*~Rxo3KMlBqvtF4`(AowrFjN2MwQJWYwaVmn;Lvq?XRkt298bYTVn=nS;9tC zN6vyi9weF@N*f_M?@c#0*-9&Y?wnWXXL9y*0Fsrf>TU49W;ewK#6Xh!-k)ls#Ts!Q z>+lIJHTs39axBhl>oCRL`o|n)2m%u=GvLYalfLuyDnHHpmeGx^jf;+)?wR?hFLO3E zsh1CR4KII7U2Ez6E>yQ)USd225AaLXtL|3CIR}b3%hKkoSp}sfwvL?ArtwBmt;S#N z0G-$ZI7)0!NMyj?+HQ>$r}n~3(|Oyf=hc3Jy0VwSL>+WrYnlkCIMEUG#CHB$Jk9+h zxNkhIo@{jjXzZiA))B;8EtO^8jmFnh?}CO*u^0#2Jm8y|9aeY=SfU}LJka&D&(3}> z3i|Q_1+yg!w&HSe0trF!^0Dvm2nT^;h$jt_En#}gFGh`;lhUk|ExRX$a-#U0*XlDh z)r}X=wY$3TfcgGwLDUCPzqZDWD~b#Ykw-tvgT=*sq%uw*_Lt`8?p8bljHSgso4DBp zxpH}A&DxX1GNi#?L9z|nS|lH%;yvw?V4BIJ(j%AMk}}pXnGF1u*Ocjgdl3NI#sv9Q zFrzDtLYZ{l9|#@z^lq|Q62xl1xM1^sTzPyWE+CFE4?fWn(J;6d+NVH>^^yD;*Uy^_ z;)&}NssmxJEsW>us^f=;%j+of0>u%9-(!O#Icp~^jg30mbsLoHXw4(9gfVKgHWIoO z-0JMTan(15g2ZqgwVMOflmM=Cq7`P+BEp5f*FFjxA?XDNr)QoS> zR}7NchS~~`oV8?aTy?mNouMs>9?xYj8Kum-65#gNw&Z^z`=2N+n$O{J_};%$#$D z)DholaP&A|rzE@DFN)u_2N>Kixo)#gsTnC6dECWf&tK24sV^P(W)#Sq!lV|2nYm%- zkFCplX7Z(2jGl1KPy(?`5@H3+MLgZgQ9_vjONMArMsm9?t?hnkq-#gtJ2lgqVD6oe z<3-dWTbhTrjechl;snUZBZsG=o9<py1z#osQPL|pxZTD%C7s&iwGWJ{#% zGS^jU4##oo`|yFyb2v}`Uhn%6=_+@JXoUY3IFw|;&W7sn!oV(=xi{ONhC<+#G8m#XY)PMr{tV7 zoxB@Uy2jBs$D(8DxUMeCB)XXt%3x9J``Aret6u|!TrviRz9OxY)yM4a=t@teB7PIYLA0pI zGATd?xuDh&bQ4?nYF^Vl0eXu3zte6!-+L?Gf#q|c#n316D?6yJhu=AoX^KJyF~8m> z$NPd4nVvLkHnI2*FF0;`A;B)TZXavr=Vt*Af~?bp&^Do!;Fm4@-it%`&yBD-Jjdth z;{de!exKr=m-u(-Tr&&BT1k6;`UZR}itN8BH^^=f&9~;xxFITUMUfobfxC>yUG?41!Afl)PKYL0829w~ z5Ga}OIyz_-Il&su=f8xXD!df3S_N~Sc#UtHONN&pv;q-mYSq5fSv8bsmu99GXw4&P zt~ORmLK>*BRSD^w6yeg(4tlJB{l0G;AC7m|Rr7`zcub87LX!+M%GDvC?OkKNe0Qx8 zkFdF$C6s=04=qC2k?tFhc@&6Q6xP0uvNV??sd?1ySg)2-O?{!0wmF+AHF>vo9bo>3 zQ`UP&;xvoP;%Q;SDTev=a-Y5;sY>Vi4?@W|b&6?BSRrZY-*muNGx(Q`0Q%lkfL@fe zgOVlMvHGS|L5go{8mc1svgy-mWOPV@J*qrs^_w?!oZ=hS4CkVT9+XLun8=s>mqPnX z&tDupU2ZJ7YtP^QtV=Ye-1tE?)j%Zl_DuW9EHfglZSPsiKqC{HQU?Zt`BqVxPDOUE zC%|CaR172E@u5#OYU4I1;J}ga%ZBaCoXg!|YF^xqYvSN=pd!bMBN_;OyK?WM*Uqa5 z0}OfeMGdaSQ70<8DT+bVw(Nuo+_NlQr8CvTr<2>abWgf~M#gm3)Z7xUBc3( z-|&%f4>x;y8X+Q^m?8%)qt7v3+choZ+rJRD^1w1lJex22;aS`E0IqD=s13>lDw=IR zA>7lN#aXR)1=@MJ@JR~Y$^2$!bg407@v?#tAqZZGaEYlb_lf%*(DiL~Z$QIv1CDRPtu_Yy}PeLQ3uqF@5>U z{4U5U=Sc}Q(Z=Zm-~`#bJdmj&QSj@C?x}Ccd}X>2*UAI`^m|n3;);jxwB&GHSKcds z^XnjIw>VoeEoqU{2Z^Z1cXh39!B!mGYS^u5#n;cN8FFf-gL`$hZhi%Co*LE%(A=1q z#Z^7K$|*TiHHrL;Nf`b>w4FnHJ$l*Q#omMoYS9%e{D?<*0EDVl_~2fQ6W%m1s)c>b zgt*Ym)PpF+Yk2i4by&-VjZ0K+9A=!fSY@zC@P-m?-QM?+QqLInG>5UvwjnYq4DQkm z3s#48GKRQu`-E_J>SsM`+>Hj#Cwn)9L+D{M8aHJtQ^P3D((B&dO%Wj;+DoRbQL2$q zwFewATQ5pp0>*mX{bD;16I)rHQT%ynW|bk-0q|s!=~j_RzW`4S;q7-!@*%~Ei}jK| zP08R6^ln}dSd_u~_!7N8mRC0(nfz1Vpn!R+vrV-?i*gM@OQRTFZYQBOU#bT3Z^aa} zJ~u7VI~l@J{#~h7yaO;>%9jGzUr!AU#Q9Y2*UP*8v|5eBx^sx9qHmofob>Ep=NdwYD8q*mN`-l z|5iO3Z@vc2ISq78<8Zd&w_R1qmwN>;{C)tIsLCl4d`M4!*NX&rbQ=ns^8cfAP!=X6f%IIdB+$gmqCH=N7TeJ5E0{?40-p$rv@{qoa z>%qMP!TG5Lk)ugu{&oKN-5-e7gaymxPM*kvaYxf*)=|Ivj@`-;T>9}`%vI{hNeXb# zrwu4)oezPYEy480-i@4i8g6P_NRokNlLX3&;B&P(`%v^@L+-j%YBbX#z#tG;0{241=YB?$2 z?#iW~XV?7*cC;PfF1gWH93HHtlLhGTGyfM`UjY=?v+NBaK!5-t1a}XRh2Sm;4#6$B zySsBj2yVgMg1b8`!QEwn#oY<+@NMq@-S^)2>ef`9+O3__)AH+{IkR)RODa+XUNk+! z;o_0v%zp7${!q@+;Oewh&r%sUHtxUssboW@9)Sqv>%T*Qo95A3em=XR-RlLzA%@gO znjg3+;t0b^O%!1-cy>RLWds>fRjci$j69aiuK+DK{+V`s_D8k{Hfm6bU)x*Xdg=O`j;) zrKePz^o59C>D#t?`h$Q`Uj>v=*VQZiKR{blYr_fIljK&9VY?fMbSd+ev_Q<^Nv@jA zeClgHtn7~YP?{|jci*+W!%38${gHKOn_4}~`o-yIREdk6coq8uQ z@bD_}87{0iCa5a10=7})5sN2e1>$7_+x3r5z{B?62Kq-fb6|BNT|7-v?|cMY2xqmA zrR1De1lTSw%I$=wK(CvNFhBMjep~mD_*0;5^VF^<7j(}AZ)NSk;&hPCr+^I8Q z0tEoy|6;J**Zukd?>5yDyb?lRpZd49_i|>G=gtM1D<0wUfTQNc&NLRWkNr-?!^?X& zJ~Nqmp}zlOU=}GPuVZH)ngQHATAO+Vk!t(qx!)OkU6H)YZ=$QP4QoFCSb{f3!gqOg z!P~fDywo&gypu5_uReAq3mo$Zie}!SWbL{3-TWKk;*&Nc()}hb0;&aZ-vwTQz6*R> zh49lL($KCf!Tfz$T9(7E?+N}H@;`evu%#?Q8Vzz7Yd6w8E^qib^Zh)`ECA`uc#!yg zDdsqYjV_uwbeL&1v&v`j`dol>L+Hwhv@l$JD}qo z!>CLOy%yvNenL_E=FeyvhA5;Bw$(s(?OP1&RNPZV74D8CM4?&uNuyL$iVJO0xMhU% z-ZqWmpF_9>RIvEtfaFJ50FPlzsW_`>hmlbiS`*mlZ2p)?^VDP4;(E96w~}K->ZGX>S>;aMytGkyyMz&!fr*HDBXzlxpQu?5 zqfI2E5-a=aIuOVa$$={pD-&rP)3)u@2C*korrf=b-O>u!6Ls{;5P~GsKYo|{YD6?) zik={8P5SN(?qo#vbs6(Wt<7(8|DTqgYmPDFhgnV!*F zC2L%;p{pNcFsvN^{IcT`zt{7wtMSiqs*?l9P~ET{&(N*98}O!xPulo{BZI&H^y^K8 z=@-23)up7_yl&|rn+BR;wydGhv3~Gub#--e)JSHRP=vHW9QcF{fqd1hVM9Bz!pthG z4=KmW&FNj4n+?I+r4a_!F$Y54!?^x7qVV@rStbM=&=;@zHwja!YE{;c)9K>!5wL@5|n5`nf3O40LJX<{xCuPSm*0;8C{&+!bNNcuSt(+xMh>&zS) zR$}!_k2nYFlQ7n=J{`xeENzpkFZ~fdcZpKem7$V;zD5UDUaJ~*K0dDoVnZ=~tgmCa zS048sk%Dd%{zVmeG4-4P4ttbG*g z*Zfv|9Q8IFz6Z|f2_dR)!L)Ae*4tp++&FS@xa_hu<%c7C$D{@BhPgHC_pTlOIMrKU zrJ0MoglvN%(WyNMi;j4>LakhRHl#QvH#~B^RS*IjPAB}0#zJd}9eP@Q3qg4DxuJW~ z_UCR2;GEhB|CWo>o@dPF&(KZeSNE(IvzgDh&{>JL#+FGK? zXhauW%0V>mEIL!3)!fjo3Q(wV+iaM4C=`Y#06zj>@5S52WjO4csM6qZA$n-Zo-{9v z2vju4T<{B-D zq(4?Apl0n5n@t2*Ud0s27A|O=YhJl7L47KGY^K-Z8PvlH*q3G(8ZO%1q4Ii z!t1NW1Mz;9$@3PeByQBrR6j=w3qjWUfK;TKY7pqV~WJ*+LL^*2RA< zT}1Z#G6DLKK(*w!IF)`3a@g=^Uwy;aLZWIeiWN{1_he>u#FqP!7jzjs0`S>vRYeM> z(I}Bls;PM`K&F~6&le{Wx;hiNvD^{MlRXiPEU?JLlQ+ns%P|Qq`ZE1=N zi<;2ZBPVJ`o_GyS@iF&~S7;2z0frxuvDb#eWEnMNWi)QGk!s%2eAn`*B#+jC>ngQ7 z|7fdj`N*4c(T2F92yv111-NMfN7sq8+`pXGGE;mT99`#v?|iy|gZ&F2Nn|fCra9vi zAvxnOJqX!eKCo)hh0N^&56&uCq7 z#2&REPKY`zi@U%VL)*Apw;Jg9I_1QLmmx;Yss~fKa!|7!l_HZ*eu{{F*LXAYxboH% zKaV5y&>NXb_JQpKZhd4>)m!%H!NyBr$s?6kGhpo*?j7`#Etoa6lk1Hw4WY6T8!qGZ zMqKxn@XOZ@qo1hAyI{$GkB~c0Jni_M`DH-!;)1mK~9hfEelL zF9WyA*K>;=v@OzG4^-&gp2p{kombn($NOtawKEP%#JM>%@d{PGeYB%2EFAw^<+p7eu#08mH({bf*c6 z4B|Sz6K_OHnPt<4x)wKqfoS6x@v)NCj7x}nJyBp)ZA(MIv0#^*odcyfm!y%z?O=r( z1IAHKZ1{URIN-J*WP8G8NyFt8zb`w7sHzn`ot06%z5}(XIkoo2>yKsr)9QHvC8`SH z7N6R5j=V0G$Bvu1S=jfQN2X&m8Fgn5RxUX6CN9F#(y=?^tpdiI>y373mMOS?PQ|c?coe6b z?31l?%6h+rGf6zB`sqln_;0u0=-|bXg}F~!sf=9m-L)jAPIAu5ZH_3Uu*r{Hgb5r` zkdec`OXSIMmPskpeVt#@ylyK!X}M@Cn|ws=RQ_J(snlH4R%SC(f4lHxCZ_AL;X1R^ zKH*%(^97i_#^g^__%LQeJ<&tqv zUqRygEcRBf&eyWq$a4%hC<*#UR?Rn32 zmw~rn3e~W5E~}EI!P)z(%Vz#?SwhlLX>9eHx+Yjw&9mu$s#Bqe{!^VwknLa9snY*d zo$5ETHTjk9FT=j?ZGDax81-3m^4wc-v|_)%e?x^OMGXBl$9Pq49v(uN)B99}Qva&= zJ0VB!)zaYzvAXNpabp{T$2}0{F}yt5I-lHN_he@(qx0h@eT=QR=+!+|Hqu)U`Ll}B z%}iC%ua$)odTU=5P14S=kOD&KLiu}s{el0bK$jU>%r_+IdK(;IEjjZRqE? zq>v(FlM(VN2?a--V+)E%n@{?S-j{)^X`SD`{Z=q2!2z^K` zM)*g&sOMcGV*KuRW+!;~x(Sl!@Ze5z3wTmB_OOC+<}W{RBC+moH3G$vSiD4DJa!A3 z?CG8exBu4n4wuyz{?^Z@0;Jf#L-FZ`HyYtvPv}c7{oeCgh;5tLTNFOK{8tF25O)3* zMK%Hr;)X6^`14Lc6e;x;$|Yzdj*9evNHf#|(ZJpuWq`~Te%OKsRm8i*kO2Qf#yk8s z3>P(L*iqQ66yM$%=Gi98UyHUej!Rhv9-rE zz!QLkCi2;#honpNQL19i^bDVkRuoqM=vtn6k$TqGpyQFIfD~6LG@--UK%p}CQ?cYz z=MJy_p8TV+m^?u;>Z_?5dt3G*2;Ge`Q8ha9^bmgI`l8%~B zs&T#v$2|f(!kf&bB)dDxvU{(Z$r9J7_h_r!cq}ouC!M8wc^~mpV~+di*{Ty^H?K)l z*ECz3J^%g~VsM+(f^O_vQ93@&NkP$=ME8 zWZ!wn^PtOPwZ~@MF`b9BhA9cEbJkh&rMf8((jVb(m6m#?UaJhsw0z;=>U-Lrd!NGg zxXStFx%Xkd6_y$?ueM>+m-;c$%YJIn-{EyaXUJ7NGTxJW?;Gxso;|@f*;Y8qgN*D@}ze5i8<`<8Oy=nZ3v1Nh~T;?oXn8e5V6-gSi6UiFq z%_;*1epDN=ASL&({5xwN&M${l1U#bIH=pfaVZ25|tvba_c)kNYe4{t8}{0x6K#T#7B6$0;D?@A;<`=d@Ap-7?yNmax3%6 z2i{OQ{Eki#G&I$Y4VNDtGk$rB9f^CZs%F6wl0P`y$WSC&Nb@Lr=&z$=uAik>$Q?}Z z>9g^YK_|5iK(ing?nXj>78^%(W{^fRRn1+YMIGBK%Svut+s-}B`+=SPBb-@1PS7if zdnvSE$)_mpp(5Qek5?UjPceQ%DuxHcS^7A*gyzf`@sZM7j&2_};*(3S@m<{U)LaA%lPAv zLb?jCzXD`(q$DzHU#-*aXOMwU)g%a_G6tm5zhs%bjE-)+yhpnG*g2I?i#yjzBY^$J z@)#i4#oJ~^Wog(wnE%Bo@!W_?B{qyge~7_C1Ie~8{irhiG1JLl@Hfv>3Q?-d!%gg5 zmx&|#OUShNyUnnYxs?T6J+pOqPK2~Sz6S2EjD%cg!yjds5NPMK(?#fG!lc|RcE0&^ z#L}cbOLN~C?<~-TIN;|duaGjQgjGBr#ybG=a;1q+SMCOHmoK>uwl;DksM}?(3E5jP*fOkB=pIQqkLBf~ZzQ#}8axZp9(f2>} z1&jF#x_>jXZX@2H?UP2rrZ8&!(*K5(9M$#AAdot307`0xQbbddtZb_wN%%7aBUhw4 zHJ9W-CT0fqSD{T->|^j@W|^z}A;-Z0@Z3C2GHu;+wlBV<6D9gG-uZ#v`<2oH!?2cB zTDrz8h3w)UWG-8SYCTc4Us)m!NiOh{4x$EM)OTUc-*(l;}bB(EP`^;{a zybm_GubG*30Z#~7&FmAKz8tzlP!Hq_g!HgF=Le)YTgN%^KC;4ARa5j z4dFTdSdwsZkHuG<7W{m@e49q?wG(&Z7G^47$Fo?rol+g!X~x4`QGIVA*ZYT4M4N6z z$3eupX3a-*_{Whc2}XBNM27mhdg`=qL9tE4!bC@{ftt;Rx*tXuU!NS=Y@PD%o04`N zt>-tJ37*Ff(qmpuWWDK)?X?f_z}+$Okr9|Sl{k%1kHT5%ni(No9dp5$SN}`;&B{j3 zFAQ25=*;e&8V6NZyvM#|h08-2|( zug8$|z5h;H`+1=TuXmR`7Eh3w2lt0l4~G77&nmZ^g#*vH^J8PLY5t8)Kx8fFO8!CU z*8TN`eV*_zvMPXTHm&r8;+>D!SG-%aQ~aCMqG-*%FH#*rQm37l9Wh|uABYn=&Jj` z$pX_L$I=$145KZWRUk#zDQ%!XOBHIfQHuBEYO9m3TM>Z~x!~jt6is!g-={KV%&v?o z?$#gao;%6~RokhSJlA@6j#~!7lFy~=ROO5#_Z4hq#xm>93o@OrBlp#=O8BPMo5iPD zo6ML#NthKh(PGsBM9Cz_kLF81%sOM`%hXBQZRV{f2cnjcJnPOL8dr=U3%ScUpT}%! ze7-t}L&&bUZK1vvqMz4`@Y3}v`1mhws34CPA!uxFLUz|CYmK`b@eSNIdmf|3)jmg9 zbm^H5rI)+)LuoHN>KwCYkw@!Weg1fl0Y^K~bPbPkG0`)i9n$w`Z@8@3kmozahY5b5 zft_G@#&^)nlF=@>FKL!-b2}S*E^puxZ?NX#CsE37f*fw8KiROlIJk%E_hcitAQ*Y^ zT!uCCwafX)ccfJ8U?S5(M^&((Pwehc$Fp#WoQRXIlOXf})i50AlF5bBVtUOd|bM8ra%QUsS zWC@>xD>Ib0-a*=mnxOe$X*7Apb!+T8!fU>J*cB)-UmT}~MTXs-mW;5)dR;Ilo%8bG zNIoE_3%#^xJU=7Np*uEhwSHafB||;l5@6NC;8TExF;3PhM_# z)RJCb_sO+aV~6L?n)!Cw}l{GQQjRe9@`{aUVH(qD?m zdiv;iR4tvR8T#qLGD;y{Q;Ek`z~$#J00i^idi(NuXJ`h4>IU%otDygfC7jf>xt#7FAf4$T=FNWk9UC%a1x{%)fLkkvN} z>~-{U9s6s_@@&`|FxC$U+L1x?Z;J!81l1((O+5NIl~Wo?ech_1 z+c44G?3mU#=Jrj|AYx;&Q584STZf}^8R}{oEj!g^d8-AS+d;ONdw7ERQ*{SST3nYt zm%F_^J?es^!OaII48gz*)fw!?NF(8bHGx>F{lyxdxYJf>9^~1@;#q$#lXk+#dYfJQ zy2n~-sN%G&IwQ&_ewF`x<6-uQth>}QlrYi#3W^0il3Pj>o4=IMtG#t>fl}MuU${9* zoHSWXY`XNX>jI()7fBH79@TrTlWprN&FkxUE4R|On0a=)kH(!LVIV*pe9I0|`gm`2 zM~J*3lVcWMrNMLGDRW@5!jW=&w^+zDwVkCYzj zH+wRPS&R9zLV17$e{X&5>vlNrhe&qs^>mqOG>w4SvazOqSAS>W@n?cmoeR_P%5CYs zvc0EP>~jU3#Ibd&RXZ?aqr6lYDjyZjRkXM|{bMD{%;Q6whrvlpyeeh^zqRMEw`Z2V zhk4>5&$BAAzA^8u?)44kage8;Bx(KmQGPzoAg_F+&APquqd&9Ei$wmXqpQ%1sc0@6 zi1sn@ui#`<*#g#l= zx3sQQWH3r}8tpf)A)xw7YIUp?S&YjeWHKRIREn|!Hk5`tdl=4ox0qo zlhcr{SzUfSI|^x&d#$t1zT^t6#Pff+kE1tOsi{*AZ5XHbP#YM_6Cy66e{dU|=458# zE&T)hwDfhF83Xv5>l^>jc;&kcj-Ut$5$`1G-VN8TS(udbjonI&Z>kO@p(vK%a=NGa zjJtS>o;g%dSoxwn|EwA*n^Z19)QNmxn>zK5FNO9gAxBo$$hohS>0O_ua$Pq=y{kU@ zRN5@IF`AqXt7dpCCoo)Ua;i+H0iwf-W7Sr6%ss z={+pj!;b}5x&sV$FgsYWgo^|$MB$2F1MnU;w&etLWm6F`|Cr@=_bNIHp%^8YCm?7W z)QrGi=$q(yQb@$$`NTP3l_79%RRs~UOH-pxAY2+;yL__AA=bKk=AHG0>TAXB#;GpJ zlX+=b?GB#T%V4J0m_sQFl=WM^VCOaKMlPTT-nPLqDM%#zwM{B~(L>GgQxevez_$L~ zSln`hT6v0DX8q-2h&olQ*5lDn?V78otu$9mH-eS;gN>C${}A6~v#;Y33=g6L*1t&HwAs z)vinkR5cM(pmr}Yjeq`r%C0ZE19RbVu_pQQVKyF+#%S_9lokj>AGy8)?0KvAf>cQp zoS11M=af2WSK}_v`nQu{XE@X*3?0g!FqO@_8B~a^=kFsAxmIadOtbH< zRzsbJt$giIW{-Z1Oft9tlwfGhl&@_?PL;A)cBH$iM&h$`qN3nAlQyHeug{E9W-1@4Ow003=db}4$0xph->Pb>psP(A-X>HvyzrhpL1TeibElFW#fMoP(~|nT-v7YQVOaeZYQMB%?f%l3AML#$C+GP(iH-AQ<=F7aeP&6MKjBL zOM0zip3C4JstPKAfXo*=SC_usXZ`GgldYvx=t;;)qM?bCsloPYUujEb2K86BWxO`T z`z*7b!^fa4F`hqTuJmy~DW%f)w)u!oj+BFU0kSxsz&#AKddx(v%J|(NGHizYAM8d&w$iZti;Q?>MLb4|3Rk>BcMsC8ZT%L`0rS6|fFJREIs z%$5k^Uh<529Am?X3PaU8-fGM>IuOr$DPIFcJNBT;)Gr9|8+jr%nl>k~bow=r_UXhX z;h|xF>Xr$Z85<^9HnX^_(>hEH{K7~EaW=XOzGy*CyHc;$b@(mtn0&s`Q@Gtx>AdLGW-3UKnz$eEo`Z^ z9Fg{|cM=k(Xtd3Q&Omk^CeO1D9_Y=Gj5&#uzB9nqUr9IF)f=W!NMT;j#*Uk@V%u%U zLSR?!hpE(5)szfDuIIHpt4pQ&g_Gx;b^M0khj=2hm-Xp&19%tk$XvPf9uF3zF=k#|S0{Q3l~-)A76n9#>{H zmJP6S>H0-b=pk*TCHq9rShSAMqb+|%apF}4BH#{w1;XKInn&eIonfBRW}L6szu>J| z9^4m4iDY}>y3%hiT;VDvw^(~45;`|w2G=aZcIQ=_3U z9ioVvr!Z(Mh{EB%G_dK)(#s7J^3Dk&5FwJ9&d5>a+J{|-=lbYVFa!3IJF;~~1uP#w zH@3Cwh$^=bT%M4*Bx_JD2(S#Cj~n^PS`Vs1PtM${v!g$fI~W#OMPK6q{$xpD(H@vA$ihHC2jGTahKHxAb?I zD||OZay4Lp2009IY{+;dUo>t{1p04R#j~YU#7$Di?JJn0R_fmpV_2MJ&j`1KMA4m) zobKRB?8LK8jke^0NHTPOjRpnYOKA0JvuV0ZS9*KpkPnw2}HKpzi6+MiRty4nq3 zuAmpI4l7;eptICYniTB1Lh6K0c^9D= z&$?lJ5AG!g#l==O4f2n`ZVKnq>ggrN#6sQz)=IeN1*oHERE|);c%>u0I#=09x20dAC0JP_e za{o7-vC{6S=<<$hAuP%<`Okk!<56zW$MO=%_ue`_+c#6+won67iIjUv)H*3~ev-}M zN+}5%DGxT%lO~eQABr$%%*4+UDeof&o*b!V4-_+|Q}+vnjm0P#qgQ05Qb@G|`imVe zRV3s!Xar{BE|Tc?ipq2QB&Foh9V260`+x7HNVh{Mt2v`x`cL&}QkfR=(v*A-iZ%4G z(GU1chw;;=8(IM+pLXS9<~pjaJHnxv2KHZCjPTGZn$5_(t3Fq4u~}A^+4j<{B!-y? z89fb-D7L9p;z0|0YY+6uvaH@J?W@m^h;@mck`ubSzLw0>8HH`mtA(-A+Ub?0QS6l^ zyS=5Z@j9QY>uAy zNGuWdbG(sD-I>xC;TY%nGJ)aQh+T=Ot+v=)akBA#Ub~3SW(v~;Vh+4arxCO zQmua7m4hYcuscT-nu4V;RlWaTZvxeZ-oRtC>GJ5$TSb9e>dZW?Tl2l!7#B~kdQiD0ek&swR z*WZZI+}_$H&v(;utXaBm;>jk`G03>yJECqF65Iv;@N?aK{Kb|JXjc6^h2&RmR3JYH z>vWTQ0+pVSei=eo8-v{sM|fv-N? z^O9>EcqU6SCfentu~)=7lV!#`&bBH|9^3R)GiOTMC^RVL#Pza-Hl+7gas2!>;!0bM z7OkVm6uR!rmFte~BGF`S@!gT7IY^slKkmezo$=X=(yLhGiJ35AC9HqhG69h5I=g>E zuTTR#0PNNPBW2ml2cW*nbPM{%Vo1@~C-1DTF7r+^!7fhz)>U+&MB|AC9opw7DFGT9 zt9X(V<#mcX`IU23u+>QUc!S2(UD0kY@oBu@*2s2WW*Vf0K$ z=_g}ZN-Hdl)P7#kS(-CG$^$Ho%zh-%6zut*{ooz;(Ig>8g>VSFq<}`*lUHXsa=!fftlz z!L_uLfs$I3N5QpplQ0=6(}SI9Cj%taDVKts=_dXA!J=1G)k4t-!NiiAn4+F*$lI{(`7vopa*`k41JkkC303}s$xaj0TSjIJVO#Y5ga;^hkKhwB$?x*nn71~^b z-4~b<44cfWiqh>{9EcuXYJ+7O^ip4psfO8B+V!^12Tq8}{J?o4^^#Ai1H0$qj#GZO zs>{!s?ui8}^2a%vD0>dt@j`s-yL5fmMm*JhyF5Y~x&ljO6Z2$VgIT-et`Q@dn_ob+~id}`T=#2|U#`S;tgCr>XL_~lmNDr~UnqC?}3oCYL$d zkaF+W0e9X;ANHOEH7PL*05{3<{#&kv2ogg)-jB`vS=xTO@9~kjUAymM)W9SG7!|dq z24?}Xaq>TgxRic8Fh{c+NWYV%ERZJl?#rXbW&uOyStViJvIm%n)ZU-r|mp?yw5;i^=mo^WXLaD%!{N zr=()0f~^bUiR?UeXCiKMd&o{8hLdIdjO`7xwS7!p)d2UogDTicI>aHdMSF9&KymAU z4eA}Cl>y51M#G)X*O5cdY_-YXNb~v-Uqt&FJL&!gxbqO4JJBP6na8s)D}UjiDN-)Rt%(yi>o)SHquS zQp#FCdTUm_&oQCM-Ek^OTOzlm5TvU&*jFXQHUY%&a4pJLzcFEz3I5*332|;@`W!bf z(tu_XfIf_kOnob8 z*&RrU^VnA(^(IsWv)1&OFP>T7ZfaHb2fbIt;=9M;7Y(7XAPIQC_%Rd*M-`vr6QZA@ zn=1au?wC-xuBqR|^n0~7amlu(yYKMS_sZwAye|x7$=D@!t!&aF#c$z2oaGPOixw9p zBRB7tZZsT5nDzXsiY3)Eo@X#fRDFSPuO*<=XPz+VZNRUyGaQggJmd!o-35ae8>le& z3QlWlB!foIY2F1akHwOi_F3Hnk@f*+FB66SVmAZDC|WN0V?qx6g@BDssY-c(lAy>J ztqSUDdwDIqdNnOoYE9WE!&&F*%!Bpq$cjIzYAWlDo?BBlp$oC2>m}w~UES(FB42?^ zOTtu1!?cCw(0F@Z!Y%BLRg5nb0h8oED;&ZI!;bsP2qX(OW-V_sMqZhEdPO{dyOW2( z(~HXnPi10F6D)ESRCK(txl@w7k+~46Jsfd556+*pj8b;gCKJlRbgX{;8k>!>XJ*v| zRTVRlpBD_GKCxJ#4Z5_T+xW9*bH^O<*Jf7R>K`K93UAoFL##zYNx{I63;NwpK=_LKG6Z0Q^F)r#!dV~ zrp-03C>B>8b~qxsU^v62a7*cQO_n;3-*|SmL0Oh1*eB+xc;Ks@du*-^6J8|Lpm8{E@~shNTtX6;@J9V4gz-nC;6%|e z;}3ISf7>-lx48BPZ=smX7SBbom`u)hRST)rzT$=-ZxJal+IorK{kRs(@z#y^XF)6! zNx&-XQiw<1SICa!4Q2-RvqUHrkWZ$oh>Ao=a8aifYi&EXSe0$}f7>YY7j+f?QIN1K zTq{JVn112X&-%gzzxYg;gkk#A$**w%m+?e-c$YtNBwphUawOWOgR&%Z51}+J#-XT~ zE*I(6-21=N;Tm2KgnriwTuq>8GaKk&daj z;X6`u)+WulSLtGeYbIDenCL|?=kjxx(o8Udq21b%WNl3rjl6cLc2;(`C z{4dWc{C){XEQoYZe)T$~48XW)HS-d}_%?j)4Vd&lNNe-$=EXvuq`Yt#4*d9}ET%9K zJIOcPJvj3bEI1GxNFD9P_>1x4WK5WDaN);Ujg2B<{Z0N?|5QPQZ@62ROA8JA@E}{2 z|1$*eSEDw;H!n2rG~t&0a2a1@<)xB-o24X$4Wb{2%S8@XR{9=J^Pl!o7)`i@W1RD| zH$2Fv9p~g9rbZO5$K?>R#0X!2j=%gL`u`#y4r9qUmoBR(6wZ9lw9v~O-kbwTbI}2= zwi@^a2mAK7{S~KdRv7y76tOmL%N<#>^wqZn+rZ`^n9+^0Y+$#-n>T5``HO)O@4tY6 z{Y;UXAIzMk6LRsg_ABiEr3<)P4K{f5XpC?51TV4>v$iZh{biiv93G}5N;u6x>l6y` zH&>iV>~TXexLRknX+Xr_FLG?02HM+l74B>d!R6=M!4(Jmhu! zn2}No+d|5ih!PsZdNtI*UC!u&Lo0bYS#X(~C@3IbE^`m3)LN@f)gzOdp~F5P<5rji zFDN3oks?QO>Z)SrfKIBatZVzdQQZH()-+*OYSbHmEZ`u!RDYck7wOk19{bNvo)K0I ztWX({jh@rF!4#gr@z>pTO*3aB!O6i)*c9qVdjM`H{n?WoRdQAj{7_#uy(jvMJH5<# zHLHKmpnV*;!OY7V{?3DZiw@{8)NQ0(y=awZDaZOl1|d$NQm8s0ztK+vdL7WkUH+5N z{9r~?`M1&Xk+Uw-(S*aC;cDGS3BIYRz55HkzwNJ@X9&%;C}Da9{ade72;(VZFhuae zX?mZ({0|7Khau>Q7e*cU7balj+Yp6Q<#}Kb1*75rC;C+2Z=C3RDCSi#GdAzRn`7@F zj8l@pfqc`@|3h~WmY#46>3?@eFgJt$r#Cag|IZEZFF@CSg0X}2zl3#3L;shsH;6_s zkp5qc%B(CDd1WmH|1a3R(uKzVW#5MHua6APeE*A3%WVXhc3?nzJzpyV8-e!UBba7g zkDJONW#!obM`vmRSvFDs8QoVfbT5VfdzjZ3q%bg#n3?mD|3!5aqW`=kWgZ9HM_)m~H%DUW~jj z`Zp>klpy|f;hAA%nDAk6<^U#Wh&c4_$N4sRzv%60By3NtdI{*BFl+h1`k(Q5_X!1yQnhkrn`nPB&_ z_pbn;j4q_CcpOBS3ja2k8sW|BkQPqr!J5Bq(npfD%H4Fm8!advnVD9|FQr1k9q3|6|b#E~LK}J@q1mGdB_Y zE85=%^G-O;GQWCE7!>!QG5-$ZNShz!FnII86Xf^QG|6&j>hJ z)JKla`1a2P1XJN_;S!#4O^V01V+WjGT*oKwZz?)bDWm`)TL|~DhGE@lCts9t#74%0oMz6TP^l07x^*8Op}H zOuIuRzAm)mge??WR`fq zDTj`nV3T!EL%MxTJakids7_&!3%N*hR6DPkLxBORO)nrXrOs0g2u7m?f1!>6t0en= zYZZ(R+dO!?ltd9%E~@@3`Xb3zy16Bm-Osl6D_DZ}CmD4%r%|s=94oU4&#lQBqC!n> znFKK6$P+CkIgu2jxNJH|B58QeSn6jSr}UH~87(KP0RKYDk8Wx#)Gt@Z?}ZfdtZ*5j zRWc%ldHoqf^}cv3Qb@iu{D*aOJhs_p7o$-S;Q(SdnZ^roVgv`V7Z-Y;)P!@fi+9{} zDaCvw(gq0{LWSTM$q8#)VcRRX?D$_~7&Cz~t|URO)9w^ro6IiMU?fmQk~|m@&6<-t zr9%rDhSzIj@?=@v#YixWvUrTJ_K#XdJlW2})X|NMM%ry7gV06q zRPL~HyW{p$;aPk#NPHu~YzVe_fXG2c8%v=syxaZjxGUL+8h!2c$=Yij>tAcHA72A) zpSk@BS&~%Qy9k)rwlK^pZ*gYrY1>^`lvTdjBQ>!-mg0|ItN}V7%tD2Gpb@CXGg_6G zOxUxm5gJi8Dp@W(vJfyB+&V@`nrx0`y5`J2Xofz5yJrWxoN_1;OYoA=$3eyqVOwj+ zjHTHIOJauTAdb(MXQ8CbKe@0M0DA`0?^?we6w|iUttN*BBdmtx+cGfxp&C3zBWv-UMKqK<6BC$A#R_2v~ zNPjPZ`snDhq5i^#A%$`9iq7qC)^ zT(B~a;a0Y@GRFw6h^9o?bIw)J6>*}T3?VLs5p_ARLXVi`B;2am4zPM{rTc2OReuC+ zwsjhP%3vf+jI7jS&v4gG)EoV=;HO-W@2j_A=P7uJ$&Sb&a}TIiKffMAT8HUSRrquC zwNEwAJ6Qm1qbCIa4ZJuMJzo1ll9bwxSY`+9%Vyar=){ zR0guGY^Fd=64bSftJ@b|%(k8}NgQ!7n+>$TQ+h8z02W6z>xM|4QcdnjRuK+p2>-gU z=;b)Oe@QV6R>|FMf^1*mp4*Y|Ot4X>2fj-LI%lbh=qf4p(5YpCl|pCU)J?`Ff+|e9 zoS&}39rBymw7;!CH9=T7Wfrrw!HHHB(L>iM?@9Eq=ME^Pg z`Oo>lE1kt}aYrgc8q7Da=LY{DXKx)<<+p{6ZUjX@TBM~m-JODTgCHS|q_F7*ftQw& z4rwWAkZzDJ0cq*(?%Z%+e&?L;p7V`y|GAFA*!y*}S3YyDwVt_{&xlEbG_%Oi#htAO z7R)_9?#@j%!m;FcW-WbxHF2s<&`Y4K_tPlwpHs95evZh)rr*^GAVP6}XJC1MAF2OQ z_uiI9^$f6=8F^6QL41&glO4P}0wl*Dax3Q=xeKFiL^P4!udq=MP53=cpJn>6{!xzP zN9XCAkN~%)ZCkliMT45L{;#}moVlpeUja=9VY2SZA%`X0`{e`aOu&$*Zv0`gs?pp! z3qJp;g_`@e^v8{V?;_vPN|^T2+iP~>Z)HddJcWOVc;-WYJa_2s+30!&PRL~(A5UwR z0QC@FLOw6`Lgco2ApP+t&HKF0_x?x>3oQ0DMf$ji0pd?nf^7Rzi4XFG^77}g0_d=^ z?5fEhU-FXxOtF{GRlxuIO}-QKce-qeqJJ2QPJwzzf$9Z4nMGH5#Joh?1~LWe^ci-R zi4>Yzlb$`A${hCp6!TxDMEt81)_<1*kK3*#&U!>ou-_o~YZcp666_iD?~Yx%m?e(i z0$5pZgWD(k9$&J|grBRBONe4+vH9mC8=1HIeWBZwArgDJApY`(;kzxb#G~n8Jxw7C zpfeeh4qg$I2dTACkO;#U4Sqs_s);5BzJw-UlS}wwJrxaZf05<&FBXemd35nZun|ZT zJ>~EWb_nlnC(U|UqmgZZ3$V_W&;aZ(qQCZfb926=EuScUQl$t#X*_d(63@Ppg0g4H zz8Q2&Km4ndtY743_K+B{Qk>0Q6Rt?B=Ti*UP^a~4%mQb%YdHIXbLE98j6@Ybw0}Ue z>YciN?B7pfWfi<*exaW*f2uF+X{~T2>TTY>#6In#cZxUX82P)U83Rn3Ta9CuufA_H z&PIcxmt!Bs0Z;Ir_On`*NVU>x*XcZxSX?|S4R!U#RGuTR;{OKgUvu$fUF7Ilb)K{@ ze&W41&ekpm+nQzjyhvZsAcryJtK}|3cl-9IIOXs$vhBmwXgIdP>MPPfXD%ChK*#|S zjo8bn>U-a0N`_o^hz?qtWB+oxkhJ#YzVBwe=Y0Zgt4s6E3u9{RzWLe&1_Ef-~o z+6k`+Onv`*RoF5%w)1Ndv;IPo2~OkqDZf3Fb$U7D>PVZFhIq_Z~fH1f#31e@|xc2W;Ra1K~R2K@B`{%pTiu>wbw{2(ubbInXRZb z^$}6sXDJay*W2WPd-W)Vz5ItB@*I&2;pfNeV`UWgo*s*Rg~D&_e<*o1@T;C}t4C!i zvq~y03qV%;H#5?NnAopB5MuZ52=%X@Z1)1zgm))GA3gv2+$Vh zawb|8xBZk&6)!0*_98DL1*{LOZkf-2#9sd2oFFh@GG;IMZ&DDv8cz_uWv%! zWs^U8K|6hL16|jhXtB@{=SYZ_K?1*&P-vK*G|^7`@_6_mN@+FY(J5{6QxnLUEVm?8 z|E!)Vpd7J0!LR%Q+t9`5y-enB`4rZle9e0-w7KNw+fSgPma%yzcJn!X4DFcP2ACHW zAgztd*d!5Kd*|@8{WSH1YqVQ>rCxa9bm6TKtqp=(I&Rx(DpOE?kt9=ln{crSTY;r~7=DT&TTnN!d_=0`YQu(JS zlwn7(uIK5%X22$Y^?zXZ`EijJ8rE8}3mO2qenKnnKl7e#A2~Q zCozxa+=%1^tHV5NAeeB|$>cQ5Qg}Ei||B}`z?JDEXppkps8%GCU8Z|VY zV^~|^tb{azKM$tD(&I)j=2b^g3k|&#B}ghs%j8Yfw?ic(&aNTC2JggZskfkk#InGc zY-r5d%h$Nq_|eM2zbSk0Gx|{HmL;7l{JOt%xl~Zbo3gVANbSq&y0>=o7x=Q`4bmd! zBsR30{GzBq`9fgEu~c^FM8e<`p|FkiCLJ`k*!95I{OqX$6(?iSxY^AZC!DqFPt=B`eTlf3}lk~`;n`cDdEYv;q_1OY&F#kDg)*lTJ$Tqh>q8N4Jgw* z4A-Za+;O+XF*Mu;aVGVk`jsy`PonA?%D|*%kTNZ?qhxCEgC;ZC`H&ajo3NHA!%u&~ z5@aN=L_4|qx z1-2X%zoKZ73Z44LcGD(+Pr}CWo-Jk}H#8pR+;Fe#(e0NRQ%uVk%!RH>__tF`=V@h+ z<_k;sSvHpVKrk?N_zDW~A7;B%MLs}}W3uwQ4Vo;SXr<-&l3Ui(nx6GfwRZ?~ea7_$0! zr2p7%;-l>flExB}{x#Sg$QyHTIviW10#}AkEA@=h)x4(#n0a7Cl>X*ybnWFm^$BA1 z1NL=vud;-x zAP^56=aQX_iJn;Iieq(cT`4~<3x&q*OiH9=r`APUGrL!kH_$s;Yp1*R6R42=u$6%D zztD&5j*1f*azi9y;XNOjVSoj!nm-#zjf&_QK8#+un#QM($T)l1f)k>Xq9w`2V6zH6 z_(VV(w#BzSfP+iDb4CBzGh}U>(+kjANtQ^UUGkbXqAf7!4ulo^?=#bNR{z{)>sLnZ zD~iWhxh*FfKKzIxAggJT@l2!j#7g-W{&qipQqSe|@9tmmJt*P}d`hR=>G9!To%-cK zB!52?WDbw-uYM<>l<2DcPVai&!aljT>9FdjAxYKpLDjoW1#dM0+(fa@G&jH&;DK!5 zT~gE7Tcz!7?jW_T5L!yjDDqo{?^eP)|IgV0ZE2?e0=%=%+T$`7`=ZfJW+}8#p;u&` zPIfjwRJcho5*{JrOt$eIo@AhwyU;;`nB=X|blaECO(`m;qV0~+Y$++`w;Znj^a*yj z@dV>E?f3N&#>o9T964;<6+U3-8+T#s%xA9t%}i9Q7%cW)4zW(d{Qk-$MfOO7ZVH!L zgQMU~B#9SJWQ*7x%3C_iOu+%@B);zv;jjsq`tDdR<_kyj^ z<81H9sn@sC@8s8}AcBwjLq4^y%cWL_LM^?Emblx+)`!4e7B!JS})j8cUH2k69)j(bL#dFvzd zNlb_Gu}DgKbcrkj$^tIQc$q&r?Xu9n;XX1ZguXH_)ZNK(@F-EjX znat7Pd4>1!c`H$dr>77ngz7d$_JtDkZwf**7=(*{48lPfBya+*C~@BZZ&i=aa2#1F zKZa-tWPBycHjEel-J=+kU{*?cGzqawgy=s3H4;EO=xilaUj<9FO2l-ykjYX|(UKy^5m$d5ED zIwSz}t|2)jSRvjaQ2PXi=(U%lw=zF5pHN1dB2fbDYU{o-YQfN#$C6O+-Ig#pPV%1w z8SvPbBGZrfH~p$&=I)7%TJB9O0j~ z{ikUpVAJA#{?knH`NUWCx(cDi z+v^(7mI2)dPmfkkd^_G-ya2(5A=eh$J*D>{Iz8+4HAcVlv)`^H(1!y`$+E$T-if}D zx!5ujXLM~6vM|=h2gLC5Ai+9HB*^1GZqY=aHB{BapD&-GBYaO>T0<3o0{LF~(MRtI z&|-E3rbD}@lJ@ex$@?0=M+?)5`gDh1*NBVJna zQ;E#y+zLlm(wo{~co0n8G2*`;b!s;5t~s*2uv?VI$e^MeChE^0WbjjCBgcUZyWNdSH5(VX|LTGrkRg(OyDYX(VhCSSdQMSu*Vv5DV6WmBS2}U_0QthF znwnZ~RGijYf+@kawe*CE9O(pb0ma6df5iQk@Ni=8Lkga%RXAR#hk1!C?`{)$m$-k| znjw{Xz9I8^h$l%r-zXRRLrkNOl?mcPePdl!qcSd-MIO7BNQmCT6|eITu-$269y6b< znxYcv(qv&o(@&_FRcaRDKGoT- z9|`JIDLA^<16Ui!%i+;En<7U3BIkoZd*t3%TK?OYgb$EXQ06{c-#xo;KG~c zH;?_ouUg>`)vD!;rTdLZCocYe%KCMrjOn4NEB{h+U##%@3KaIUTRzI$H|R7srX_;< z_Nnkt43X_*5PQfnqslsTd=HQxVBtd@<|~ZBS?PH^3#N2VbERS~#QJp_C4M3}o-KCFwp~hlj{s`h z^YgsA#_p+An zh`dA6!eF+GIk4HIJes7e@|lE$wew$Jf%dX%tn(QGqdG-;PuUV_`+U(tNmHWv1)Ut2 z6&Z@P-O&@R4Cv2r+{4k*7)Ky1HZA7RyLR8Zb37&t90sqFo7wuQuT-+6Oy9{az^U@h zv7pM0BYA*~aX&y%H}?0dZ|iV&#ybBfzG$M#t+FZ^;-lylI@SOxJV6;NQP66CaXmm* zwokxsfJlf1PN1jY+dMG&=>sIG_TTWOy-xyX9$gcVA6*?|rIzOtFXq6Ku*48cH4csJ z(3}aJ)0~`14dJ@LSGL{Aa{oBa&=6B^MZ$xDfx+2r$93-bmFDb5l=j}w(pD8ujiez9 zOd9JT1E$M#cz^^MT$$t5WY`*C3~2n6sn}(ZnZkc{i-gY^V(c6vqppW7cdbJm{lZi( zu$&dxTV3iK?|8Gn?I&AomPGX_6DLiW3rxwB|3``~HCVzp)(7MH4QeRlsDyI~Ik4)h zqr$`tmN&AyVD(r7z*1>c#L;K5YDWN{d4I`3}e+fZ>wu1v~(Nw_% z|IsN`o|Aomd`})JG5FPNuw~Xldji1a61BYo_Z%eMtzT}l{Mn^s4EpQJB8n`iO!Wqn zt0qB11G`Ft=Xf@|Qjp0K3*Sa77~-J(exXD~i-@GVDBE((^5-rQ^Bzwu6caHl%%x6B z!_@GttPz7Ka{Z78>Pkds+Vt@m5@ zOTR?&9xFv_6FA}&>5(Z&97IV+JVtWjP8~&l%%DNRVCfsAE}M4@{9%p#+{vp>?*3M z?qnqwcY6Dq^-J33ounwsqs5-x^;66?F^sdpAEOnld6S3|9oK~URe?@JgyA1vDY6sJ zte86usZzW9%yu86Yjx(7T&<=rJHw^KB2a|q?6r`WTf#_xG!|&V@C6iW@;t;}H8!{t zE}QxwxuivGYw`HJOn9n>;bWIhas^3_8eeagZ|2kOvn6mpXzF93s0kHeG5Rr2VzX2s zXd;8cXOl({dUg$ss|T`TlrEH=_KRFCF3$gS2NIr2*3Br^l(;mMCR9%W;@iU*ZV`(1 z2OmMur2mzg7OeRhYe#^Q|I6E}kqSQ$47&LulV@X$0APXmCJ^#Z1cAFXh06>y@W53(ObR)y{&kd@RWi_GfZU1f2!CmrRB!2mrFquWe-fN1ApA*InHSQ+i=z{M~ zIuue!YrgTDA;t7SH)Gzu<2xj9o7>VT-)$(K;^pxO`hHQ~`7urIS^R`hZ+P%ax_1~x z^E)VgA_|kF_g{d_-_%X@zJ{K!VoYdge~~0OG042W#w*1omP+xAwrG{UVf`Jhgi|8# zD9hEX392qot+T%HR316s4YsQC5>}*?J>01L{YkAjq&itvDCu2cV_$^Q%4|gwJJ~xo zDV?dY+|Zk)xhC8OWd5PKC&<(x-S&O7i8ZatsI;%u9aY)1rCf(%ME3#L*r5(`AGS;p)E?`zPj9Cya%P!UR#OAs()VSq z8S6KsHLXDGfd}5FzCI<4K|O1){f)-goLSq8n0F#Y=;m@iCqBj_`QqLR-1QLkzQmJc z^UOx&BUpv3F$As%$*yXQB(z^@B(Ge&F>)xEGWv$J$RL#^!9l0kVo1^z?H`@qs)PgS zThin#-nxG+FFz=E{Aze0Le{J<;9BYXliz!q#N|`KMsJz;)9_ry>gQF9*>LQx(Dw1< zrnO}KqI2_sdz7n;>?<%kr1i6IJ-lk3IC3@mN~7zHCN?==*YG8i)N@2C5mh%Oo%$-i zr8`R~Wtnm~$L$xvzn^|yF$&mi{d$*aa(+q8q`&5Z^&4Y7$IO^MY&K|F&o z?_^xfv`@+NHNMu)KP+8p2Lu)k25yVc3jX9=styq1NaAMp^9jA?^!IySCYjSKBCwDY!El8xyCO+$w))%l-EVnCIb+HnnsqKs-ou< zurnNe281@e%FI{%n718cQTbJV51q+=-z=&=Y>0**+t215FFU#)#&cvcsVxTspk1V- zBVRWq*5;(JeEuY}R;pVoDUwNRO~v>R!|n2SYFR%dDC9xa518mgU_70FJcse957)Sl`gY9%G};JzJOL$pvqZYZ5mh z#`TMun#i)Vrs0PX_+8;?if<%2V%zTSOtFfhAWBwL%w_btzyH~NOWX$UXJ1Jq^UNLv z^#+FeyTE}B!<}Idr=r7o-`f!OvC^?aZOKE7J*j7$5svBU=da2#_EP4YPe65V;E&>` z$x`o?u_E}3aj(rX+wnsET`~sDp4S-$+SU3WS3>UTXLnuk_3>(|8b@j}oR3u38L99R^SzJLc}`Ge=rQ%MIWbN<{bi&OM7Xso)v)CEi4B3t1&V z^LOQz*~`xg73XhuRjI40tFEr81!R-eV-%W#*jltyriu9%_eX!WEEXCTRQhBhVQ<#* z6FflDxp~8_K#gRYppL=MK-KhunHiDeZ;Ymo5q? zd^IwZzD<9#-%)lJ1!pfbijvVkm1Wv)ocaE}K(g*|cm6tE(VSLQKILSu35c}3a?jgN zz=_1zxqPB0*0=F0tbv`V`!`gON+KLZu-s6~ms-cd)WDQSrP7vZdb95EN;CdSL@q^! zNC=T~oCoW@0 zI`@(y<<;3D z7}YPEOy3Qu0LQXs;~njU@&b!XqR%sLL%@whmksm>whl+tb3 zx&ilx>q_rq@caHDe z22R*OB^3S22gsJ)l(jD3ja@jr%jAai8+~8LqAM(4MG~*mIkmK;cu_Q8I0*(LDg4<( zVIG$WUlmw_d>u0fbT3O?Rbt2_QwaSNT=pUH(M zCLeiawbR}8rdWkE=MhI;d`$KKJJnw!Q2nF1NJnQD=5hWt_jfeq+j8nE_CBWQ93wXB zx%`N57d*2zK0)=w(l=MNCho}xis==zW5*4~>4s3~>bfqn`64ISngV8I!YY{JJDt)*br#0HNps1;=dRshZ}xA1<=rUwY7%L^P4E zD=$vOqoSIu5V`HeG9#J$~0uR!^6#2MKDtb*0>L_++JV10=fHOW= z$56>}(Vk`*{Hq~L^aErh>SO#EmEhmG(y@pD#B^D-_S!NjtP8u?ue0X|cf%~jo5OSk zTAq!pR5L=1D>{r7Tqr8cEc@cpB$T$iPVdr^2A*00OHV`z+mLXF1il)OP4m`oul=(_ zUarz?`P@u#&LwjY0-Kk9K5+uMbf5Q=KwT<%y0#ih~H z3(hM4dKmpbf*Xi}kLn!<0@wfSz%7Xbg5=$e>wbmA`>!ooQ>A~l|6pXN2C%g>Q;~WP zg6bw~s9S-&bkk1f?5WqLE>3EiZ#K=5^z|ceT^_~W-EV^=*S8)ZwYJB8855>(+Iz8^ z_WP21b8$(>1@Gmq|9loHLKQYJ@&K_}TzyKWo_LmVjXa5eZhJ~xvfU6kKT$H_6Y`s$ zfunaXV;2=mR2={gG#Nc_CIaCR8Pp|>Z!S}+!oIX$%hzqPduVEHZj%3}0eJm8W9FSV zShsqcPj+Li{qKvN;KSTIhVCsW&{5T`Ti)w*8_vX4rNQdi27_pq{>AtABUN=xp#<4A zW>I_bImX|T><}dHFUu_V(vPvlpF-`FOVLe0p)Qf*%g<5l8I_>sy^4r!jeaa>PM}bF zJuFY<$K*omn$w6SO3nj>^^{w2kK*EVQN*{4t~odr0)r|?ps#O>obNwCX6SHN{oOr) zeNeWiN`p+}1XLXAodqAXfuzJj9fRR~ctaORScVueLIa<(H)bqLAqy5!D^<+^g%*@E zi@#&$=ANA{+Wcv=zc1q7XebjQAs!gZxOp6Tyne2~$DJng3nbga!_%M!k#6f*Pp-!| zbDCs}PZ_69LU&@J7I}>)0?dr^6BOfcs@_5>t1F=)F$SM zoc+_*)8oFTX7HG5dq1KNI9ocVfT~N^q~m!6jI4t|(w`CC;|!9NfjJMa6tFk%%z8wu zntSr5TW=+e&$R#$p3!Ch%qW9pvPKb4@#UmES`QRkN+O1X?bD3-G#U9J=`Jco$w1NE z)_}DQb+sQ_kZqOlXk}IYckf;PXH*&arP)J=7yqgNyj-lwXu*4@aZ~A4dW5;RFLJMU zEz;7oBa|_4w>r^rS|_*tDZVPvsg-K5G<%qsx9DVVdSvUyEY~()*4^`G*0-i=?A{^S z`52`&1@G$d{|mI&ZTN}V_w%jYsHeN{Qx`cOJ6iSscJwj>sIzzX5ZRx-Gt3^I<7;Xr zyV$>H(=hl4xJ2-efCi}0^2Skd+~$y(W$zX32~`q-90=VPCRplZw_ir<>!oU6f!PnL ztLqbXP&PGg#rM$=C5kZ*Dq~CuZise-?$*%$Wep&rbowe+tr_uMQ!Q@3h?s4{t@D)U zfCq@&Ih!1SDAy;S(+Gmtg*9A3YmG$=b7M|Q9Vr_ zeYfiN8i>p7uyCW5hU@HyF*p|hVBJr!&Fp-3s!0H9F)IW`KNVUl;G{ku)u7_I2E2UV zxl{YTZ)M56mFg*jU0Al5eyw6_jtfJARC2x@Jy$GNc`Z3ZkU(cYj+(ndHoe=GJQ&!O z)*9SZbB2m0E7aJhH7Pwn(tSeM)J^`AIZAYB=S+|+P?+Io)UfHwb%`S`K-pcuRam^P zv|*mXQDNO)8NRx{A~OHynYj;lS@_gV-j~I$gfcw;*(#6V&rZQ%G1SfbcSNDV}$dFz(`dR}&f)q^x;ann@sFv_DIi*O`O4Nw1-hURBxCII zuA{%_@T5@fW7spR3{J$?ipH|584((n3EH0b$RX>^xJDA+2#h~1u^>fM2z=*wL2txs zLI+t3D_9*4Q95d$q4q(*Gl?_MS^aEH?dLv?+RE1L*t@xY-C%9r^%@#V)9?p9esZ8b zOlLsIzSlZ4I1o@bYI7ZASVyzN>t11#8IF(Nr<&UU#r?>yR-fzmE(e!F0j}oyS!Oa7^k4QMZby1td-YU~qWLj6g1=W9#7Xn{}mP;c9W+hSM2tGUYojG``if>~d z<*`X_?k3;uO*ek1E~J$={prXnRnXlvY7UzpJ1r&t)CW-TKQLY=<1O>P=?-4%p1Qb; zkWNk$5wK*^pL{dOwx#r^gQ^A=J4ve9C4gWA=~}!G!}DC&LR#HF!nEb)hZs-Re+6w+ z{59<#NXr*Xc<}?IMEL;IW?Jo<&<#^>0?u+gXwHA}6L8hPuJ*I_6oweo zwng~31AXV`7nx$s%T;lV@2?2g? zx>B0xagwagy0#&9@Q!|F*ZWCN`_(tX^3O(%$Eu+)H~nql5t{&|QSTcr^E%N$nycd6frm z?qI(!aPKudUV~VW)f=Jc#F78zt=bX@9wUK_Tz8kRtAl1Y^Y8T|l}2rdc3!?Gz0+hcL~AiK zWUm#}!be)FxWUz3@sv4UFHQt6;N|AcZ9He6RZ4|4MsG0(KOs_hgtW?_z1dmw z5B%wcDGRRy8r*_DTH%2+v)u0T9Bnznh890U{KBTfV$MA!OPHQm`yG3EedrPmue(iI z_}LIj8IPa)K46R`ohxM7oXPI)ept(rN2X3Dms_apMO~GsF)1~+37SE_y6B0f~6j>o6jj{(SLxgtv&q%5P-) zpaax%C)pA=x;H=9&tlv%(u0`@64HASyy0JQ)?U4v?4MlUo7!F|y z0TEFVNCkdnK0sFEhqjo&uu1avxxCYq&dtTCc|lM|le#eMWT%0*QhDHJ&m#^WOHZP5 zR;HqRp76P;h!|htrFKG^p_+l7q>Vuo)L8+}A?ZFDb?M*v>V1z5(`ucotS@;V3#AK! zA5Ps$x&>Jv%LKlQM`*UtKO3p*fNW&3T#-Mn@otJ2X7-1Fo!AGf`DEEtDeo*F2VRmL#+X@h?%cCGtflZEG~| zeITj3$;q%gS0eV|0yM)fz>Cg$`e+!pY0o4bKz^S`*$q zi({nmuIjMnBt^{XK6#S`jB8-iYO#g6j;sN}C2j6Rd8|22P9ju~MfMxzH>hr`Z{4-Y zi}X!o#F+vd7W0Onx$DvzO$K#$iVQR0&)Wk#``u8uQY!gU-1mlEYgaF28poKl@eD;_ z`An%zjbrBK)LM!hPDx^6%-9PDHFH9=4eL9E%R^01^*8W|!R}DR6vC3X(I4rcwtT(e znBUmH7PYB9hn}zEIioddaee+0VPfi*rWSYG>*uCs>_Jdl#LCEM9;^Ksx#d3_f_pTo+NIlhiOe|Dm9~54HN4GC-ooB3Z)Rc zbp0hTjP{XM*hqU;P%7!i_f-h4Ah zW>v(D*L#Y3ZGN^^%l#J{({8rs|Tt$9c-6)HYMKiM+hGm zkDKi^-A%uo`O!$-)%KpDyP`Lk{6ud5Yya1UPje{UN+_?><9UN@N)Ndkx65j-SB55t zZ9#=E{9sJcKE!m$@LNVqwecU7(M;Afp~PWD+pA`Aw%DwPW^?a2($(4c0mLYGlGk6_ z8cdEvd5YYfSj-xK8)muN2d^fZiDfe>tx}O3v=Q_aYehSwtSO91wavy1zL+3t*vd{( z!QuF8HTp30f|ZC#`q!k<3ZTruk?5O2TvNat>)ZEhU;jnJ*MMW)g+5mzS>)J2$WMN= z8F`G98{;dFTD8&(! z6z5nPRsP?e7p}X`#PZM>e?lZWL8CdOG>kumj*EPxjL3R=Z#G9gOGIDr;rw1Fl#@Cd zByd)Bm}b3{rfS90(#Hv4C{T*8N~lS=0FL-Q?@8r;+jAGbx64y$HqM=#G8j8q6xS+Q z3f*~6lY~;E#iC*l%>;sdO&Et(`=*Bnx<9X!XvsQfH&t}y&E$@C7e=6MCK*c+8ueJr zVIrCMM$hq=I!!wh?m?R+B@>PgP~~4SvYgM3TRn|9_!=QFZmcqPkd^LUW*k17h1XvB z?6s2#d(Zq_n7!|=3ClAK9w#) zr}K+eiv;)7*eJ(JSofSp`Op|~p*d_hcl`2(rSZ)ugN(IbotWJEiyixPJNx7#({U@+ z#amIEY)+w3`mm__=~tS+x1;cM-eA~IHV-d<^ixFCg}F-{_gOc(seVte7=U03k%TtY zqM$lwQY*(Ve&z-iZnv#VuADi4mvf{Mc8zb0!O9rDYwtYB9wy+Bso`H`w5l<;S`)P5 z#VDo`e6F;!`tosRDm0onWNhWVz4YPMGXe=;mbb>8KPOc)8z`s4=oDgmklqFA6ooki z$|n-A;)G*Y$NfY~zA0U8)5mEHv_7axaW_^9-Fl9kk&*$dT&K_$KvUO7J}#A^TDV4f z{n)nC9-w%!Lj53Po9>R(BY0Lj^2?O-R;wFduy^3 z@@J?k@9S0hUt$w&2$hlhsl}g>VlH6@a>3A2-g|wvcVrCt*vLUSXwAnmAoNl5WBh9= zhEc{PLz25LpxN4!e|fDw;+(5dy)IOiMi%KgscGDXGpsjqVz=YA-j9#mhL$$a%$TjM1!tKFR zh$wfK6I_XBmgJ9aqy{De$?DH2vNAF`yOB~BEK)fq9am(hcLhfM0+H-BN1vAwdc-if zPq}v5IaD3SZnj$&9OY7TQdQ|^&q1~bRC9%soEw$QZ?nWU-B|YrBn^DaRh8NtAmLjV z<);N0=F&SL8an72Vt6^VwZnqG?ve1*8WA{Z_Ds9}32-D*#u(p6cUyDcTDn05vIi0m zkXCz8MSLG7SFQ852B!AOM$0BT?f36S{{&P5ju)PF>fO&p=+;hCElQk&S*@AWtv7Eq zlR{pU;NO(T-c}R?5GBE>_^&y;g92XodH_#jOU(mBgle0k*jnIaz2$aU>3zUO>j}Y_ z$nGPnoy3p;62Ii1$!?bM@BJ7H#+(SP4`MFvmlUB|>{&FOs=xe{WSQ(_NRes7R|$Ew zsShGep$YG$-&7Zy6gzD2s)?q$`;#xdc#*$aKnp!LWN4F~c7)|^vYraf%_!vp1~9xI zt$EidddLA^4!FS0jS}xXe>!@6V{rb!b`N)B@?w&DIxDFo6Gjn@-X+Zxdy z7N)1$GFZ^GsB}|P86}>1U6tt|XfR@blJ{wiTQR8OYRoM{nU4)G?gW7(q+Eh=^10d<>X}$84?Vk zgOh(aGzX^BegPOBmxr>egEo_k^5azn%MoH$IZ;WA1Cbb|g)c8ZR;>Xxy7t3%4HslNUM^M)eCr7Q7k)8yYk0=jMB1~ z!UzOAY`c2CzBe+3mjIc=>F&n|Nba*@@tF zgY`#0RQC5%HKINFrACXz50LX?5W3mgwVom%q`(-BUMV1Q<~Sv6Oz;_+)q-z*V+n>Q zJYVGP>)5VL*)*{BP9Nu}DlWnJvh_{`^cj5T$_<~oHAU;nQ_bZz%~G9IeoJM)PT^BU z;2Y+9)|}YG56YgRPFJV}AKHnMM>h9TMZww@<*R&iD}y;YL}Hu8YcM8_1Ro$bw^My) zDoRzQ`@qTRRGD>T*#NN`mFd;B#aPQmR+n9@S4qjn$^3dZrNdk?x#`#8N7iZN4P_={{pS{bofOUSqT zLAyHOJsQe~UhQd@f>ZF%zL3`43A-`)p4ZV_|A+aItLu%0I5&{9t=`tz_(wn<{jf8rEH#GGGBkyi{)7ka;U; z-$*F6NwB)D-*?o`k1H`1qh`X4V8zzf(X_`Wfw!a=4Rd@+`kqV?EKWXH+>Qc`$_iAvOoL6FMS9QvBzB(U; zV?Ip&cPxc()K)p?AHubCzcjl!`NMwl2EQM6)%P|PzvnInZ(*6_Yz!UbN1`Ck_KH+| zO4ty;L9{L5nNs%>T+A%gz z@!c6j;4QBFSDFddugQYe8p#JT9Xx1;uk28M(Z2Rc{w*-&*E>s_)w|@%( ztLM7A-l&X?z^w~|DCTq;1!~>%oh%}h}0?S~{ zixQtT5-&FWw9o)s(W)1lw-T!a#;Moop*>qb-k*slPHzl41uVBU7p-pv=8_b6&BO_2 ziuy3*PCD}R?=;5w3@{0K>0~XK52vq_)VuVk326&=8q28cyjt%)smYG$TCdj4ckWfL{0cVd86>+@R;)n0cGP3N(5qo@0q&kBf)_IjFFi<0CQ>hgWPOr(6q44hY>=D) zCeb@sXo9Gps?zYyb(%A&=BqNeS2s(7Gvbe#gP$qF3SQbG2a#GRch@EI1T3@fbdtV* z!r@C3b_ghU5o51T`7xHdn%@mW?H|^!s_>hr`ZM@KE~hk?Wwbx7MRL^@ah=4`ceM1m zbJVR=>MUpY1LV^{s!g|j6?QV;j1;h#Ku-*#?-9E}VW@t27bVKQ%wzqtn zh_o%RKX)ZgEK=Vb!&h(R^czKc=I<}b%Bn^BCdHR5I!iqsn=oci*e%lNAL$8vo~oKF zft57_CsOoMmzB3*u#?i=(UWgHNkQ4x?g-l-JDubC8FQoiozB@xzT5Dxo7`^y!i7F- zC`Q72Mu7n=VmyLn|2o|l>9WZ1O#M2eDX}$+fO5i~i@0VN|H#H2nLEx!ye}&QUQSo$ zA3kuM5SFk&Z1+)ygrx~*@;iYegkP%epgY=WAM&2TOtNVx1#!fG%=V=sdHu5sa2N8M z)rb3OO~U-1NtA+GBUfKj9KSBsstqPN3*-$lO}78?eaXuLu9{O_f?iY21g!57Ur^OZ zT;@|>OAAfqFlle7wS1GZZ?ws!?-}$D&mSJ>-A+$+E>YxQB-K=^ng9$ri(R97IQ$){ zuqx;bQDg~aH}jz$IE)dwT9P~q8NfO#RpHB3nizw;P23LW2gp;H#?O-VDo1U?(vs*2 zQ-7HIX^!>%&l)rv5m!Rt^KtDf=?|5@*86*e*p5D?Qv9^g7~L3Ie(03*iXsp7*z%`z zhefM$5@r6Sc?nF^CE#rM4YFr==)(O#&5-LbXr(xy7jPFB5&)hegjdsb<&!3HRNyf^D*gF`D zwqT)_RIRb_zVP*X3t3HPPrlLJcImkSVf-tk^{Sz5(y6z#ii<7MzG^{uPgz8{Vt5K> zTq=A?7C{dzbA$_|SgOwG8JKSn6t7~fnq@b6uoWb7?u~ti`dD?w#OhZ;ElS8D^!82zOv*jG}pVs z`fFwHGojq=8YzMs_SXUDrM^`uyyC=3dLImf(p8_o5q(;Zx7G9%l`lz&d27-8J`czM zji&T9Ta0$@HF)Nl`adhq6Mpq+c4BL*2!N;%=Zbd`3HRFZtY}=lU{*}m#zE75jyII+ zkBJKHU)%a2%$orlfAUqn;ePLIpLrDdQR$&3?5pEp%btb=_LX^lG@nJICSu23>KeXo z&h1mgElg?;xt%iJK4m2!qlka2%TZasHH$u=sdpfs6z&0kLocQm(7oK4?)U(iEOOFh ztvV6lmm;^TbBrApo?bmGb=ca`oSD0EuHMxWx3)&A|B9D1V*y2`kud#*Z3uBZCGkCp z9n<8rfHJS_%P)O2BO{xEOh_-e14YWA@_Ih~RN7nIp{>*(tfT25;kQ?g59{TkInv^1G^gE$jE9 z=btWt$61Z!xk+9p)~O$+5>~HqK-he3a4Y^;1}EAZ<(P(v4$n@*E*k;7$0E{wBCoJ7 zdQ{&6Z=~$yHI5^%HRoD;;{){;7akzLR}&WBpZE%__n9FUYb=HPfyXG#9nm{vBS+Th z^QT6e+VzYv_Uk(T4_j{m700vm4Fd@ff+fK{xD(th!95V%Ex5Z65F~hj;O@FOi@Uo+ zSlojw1b6s0|NGqceZKeJ)91|W%+&N$S65X})ol0gVi`kZZZDg10a?hwsy-N0*i?Mr zj)&)tF~9JMQ?rsL3g_)x|3xf{v)=e0y?ZZX{W)WT>$+Qf4v$R8&fc_)a|a*p0+*eK z3w%N{v^B0qc$Ozm_~}(ee2hKzr*cmys#;b7y4)?!32@FhVCR3hh;9^4dC{Pj_Ni&k z_L%9U-Z~7#@VK3qk3t7dKEus$Ta7BzRY%d~@i zNZOCY@Q3T!uw^Y4d<2G}loOR;V)bN^eOc?)#sf1d6D{rjEf+2U~7UrK*A9kzBR*1_GY#{TCZ7=Jc)& zhx^OFxfWvn7dorSG~ z3Fp$lFT@_5Ui;kbDdjWuFHs(}hef_)C6X4kpBUK4d{(YF{X5Pjk^=-eRv+>$Q{AFU zA-W%#TR%hU`g{gc)t2ykDilfD57{g4b(C-x7q~Wyf?a;StSCuaLg0DBuh;8c1ByEz^Wiq|q979L_?^9Yz1n4c)x!^)oFjC>?&bxs7X zsW0i~xme=yx|nwG_7FJDsMrxSgVB{jKiw2JgPW;Nhq)RSZ61PsWyJb83n7v(^WZ=< z`|l{L)dCd9Qjg3ZlLeWXGh56tikuM+c_jBg`K!G1SqI)QzI&Z3{|Ua1UQKWd2bKz` z9SCNjo>f0PaI2k@$Zl*1mob*QrxZQBHeI(1imgL$H-U2$#V36cGXOEG-?;TL*tF0W zU}SHYKeKu}ID;&cuM?G1HH?bJx1C!#a+X+`e^if(E=!Z8*c5)iX&jvE>WbE;nm}dh zjn`K$*z&X=T5GK?EEU}8o}a&>rz;U)JZvy;yI5ViY*0b0{u4fM z<-E@Q$!p*-%SIAdRi}r2JvA;7L!6J_BzdiXDQ1tMsi!B1$HrM*I$F4D4$ll)mHxO| z+7GCxJ?S-)NAvE~N7)!v8$`af4Jvu(IZ1$`uc$jJhp@a+!*=#VgQ5jQ16#Nn(-O>| z-cIQ&d@PriA!U9ni*KeJhIcJ~?E3k8Z@>_o=|YiWJ>U)bV#O@5mbxT-yqeTrl*O;= zyDC$*qP^U(;-+y~UngW7PFI;C?0;GeJq9j)mDJl#aRYs1tdeSaY{IDQen?^9q1!s0 z_7c6%Vv`dvM}~vfW;WR%pnUVeAELr9X~X;zSW_I%y16s}&)N9!L%?a3<1QU_dP<_j;pA)g_Nlx>+IQwu=F_Cq(fN#-f*gJL85v-v!@T>H^(s^CoJ)P24iO_`qyBmx zl@fJt;!z-tpAvb>03ST5^=Y5PezHKs=-6ZZo875c6%jlMI$eUu(cweH&GGef6MJsqGc&sfk zF}D(#Z;+U)3lnryN59h63A{QTH0%`C?b>`t8IZLy{OTprz-T>KN5!#7v+9*WzDF`djVBU1`dCyO6~_>lBLf%ndT<^kC#+UCHvnD&Ux8QMntu zESt>+N9q_m^t(*Gvbuz@%2G@FVd`TuInJqVIr$XRG)=cTr2H#D-_SLW3Xh+PBU;b&Z-Y0X7t@<*Sw0caMj6 z@sr-$c~X8=j`wF*`l2t4GO#3;WnH#rJMjf??5Jp@Eoyo9O0u97(q5L;3Ym38AwGDfBnM&0?+N;yt7csYfq4w+a^={M0P_80Ou7vGB zg;cQY%qvsLgig!XNK0-0%#oQ+O7^-9L7R=Z4GXp1SDQ~~fc5ujwZ->QRi#==44N#^ zqFp%uPHxcy>!DH83{S2b(o7^~<#2Pnt;I`C7sLojN0PCzm2~13iDo`?iP)FlQ6=?I z^bSy2+%ZHeoR~R!zyrR|aQ@p^7=&hl^U&pMnvYa*U|(GX?*)U+8tYyM(!lH zB#hXoagz`iz@4E@Gx#NxINcDz0W-~`a7%pQvPD4!lQasEITwXGC?1ALgr>vZ`!!Hv z0xs}{p~HxN^gED5sB!_)rF;F!^pZ&PVN*|dk-~yqe%zGyRf9e(!*^solK1Pvgp zx3?KMfaggxkw)gV#Pr1+dzUlQg!Ak1t7!#d<+!(B6*YFrtA7v?X$8jX2kVB0p(T1{ z#)6WmGa+NUTCK?t4T(fS##;;2s%1EVkCgAXET|m6#?_lb-OcTF1bj~F>)Rn29yhD; z8sM_y=8oZ|H97m7?qz)+fhp=UF5s0!q2d7eba%H5m*0L7#2Dd$MCJaai@;JNPlDthcTa=;nRk1~9H4;oN$F zZ64ME&zsvRmTSu-lV!<|VpYZTv*~-;P#f14A-RpnOq`i{h^_W!w>M|)^b(X!d>lj! z7-e$DQtG~ulU{e-ZEL0W`Ba9-Z?~Y)k^s7f9=dqkq;d+S|72iXge*67tlU}w&x?O& zv@c4+!I4G0g7e@g(t~@3W+3ZgOW}1Q+tB@Lk?f162yYYLn(|hzHWb;weghAWQ;y8= zo!M|8+*kv<#aPUQ6Rc^ha5SYvekBe>Rr~UIbL=JPH450B@Os`yc#f{tWq982KD(Kj zTT=$fQtlglGL6Z4Q%W0qP5nG9{j}H@8HVk8iWB`ttv5&1NZjR*rgE0yRHJ^bMMLLV zDXpB0A|ev1l=y3@4KxZW8Qa`k6ETUM?aixh+T2q5f~$9u$S<3M(J^DX>4S{`qm8NV z-|K%^)7g2Mw6W>YI=hs+Up)xKhkj#yFRdCEk{d4f)J?EHa)w5VOCK5Oipu#+_y;%o z-NtMF@DS92Aj!1N-vPXDpK^l4A)y1B;C|pnGDM1XkuNkPhEXj4Yvp^RAkG(L0;%~i ztS*tS@OTAzIcI73xdZu#a7YP>0nLz1^jDbZF};q&-96pn@Ke+NWzzWg#N6FA%yypX zgDmWt_*Ub(V%c;|kT0C-*jD|s!VD0lIJV;gzZ>9**KKXR^LKWfyl@v~V6Gf1=zU}) z3(aj0ePk1phLP&$uS`9Z-v&ZMB~ZnnpT0>2Ma7v$-`B>_vGena9#h%90kW#j$!BFC)L3?nET-M(T9y~?36%=Vz4v{bA>#@2 z{hd6R87D`Er53o`gKbXEd6$ZJ81<4{562QB!-M|%g6h0P1WG~`1MuI9Qwp2x7a>UMpfkW*rB4Vi8 z=kS1u1jD;e?@Dr~V@73kaX!Ru*GQ_V+-Z5?UYmZHDqc6*$O%yUX*_w(i^(IygNUs8 z*|+LvNCXFjVEFgX3qg#O_*yCziD0s!q0*Xop`HP0Y{tpyk(k@I+)uz40da|qL_0dZ z#h>b+q;Ke!?S;%tX~SxbC8G3@1tisQ%b{Dj88=zabsBZWF{cVkxh#EaJlznHGcrVSkz+(8~TN2q*)NQRL$D$UIrTx&O^xcW|cE17T)>C|p zm6GgFNt--;WiE5R%NrndSTZr3E<7pg6L|P;rjFah7(vo2T=LZm<7$#ONTFc}z9GTV zHoB^5H8t?P%KYztKJ#<`3X-EVLIk6to}*z9g@K5p-}2F@Vq0<;%R6M7ZoiS(BI=@M z_mLO>DON0vKM&4ys+itvzA!psFv%$>lrc`|7W3_)rbIRw^bH24K8}8VBdmzM&wz%C zhO<$wNA2~gC*kXce(u{}r2Ku-2fdo~G;67iZn+z|(#o3tgCPVE3aX@-g4ti8GIsCN zjB+;MDIHUHJy<)7@+8=%rf2$OUL|3Z6Btt=@y^q*CKD`BZDE~r5PbX;+#{ZYqoysd zq9S3Yo1jVo33TK zH#SLv-gX;x<#bJT<w5a4~ z<#KuAj()F4R|4(W9LJ%uex|cHM7t-ZQD14xq(2mr>Kz$-MWdK($}mJ$4lgy~VO+f? zo#3>xABrLjwfBPM0=E z{Lz-mOw4JAyUU0>u1g}0(XI)uBrI;8F+80-*qHH$fzB|bAhmqMwCFp0k06__69DNQ ze2ODXaRAcrDNGy>??aH;b7NkZz)=xMN2ZDuvoe&@NELa!Hjx-rqf3uwP_Pr;cx6;q z>?e%ZxgGH3!QSm5z9*DyfQ;@^jnUzfSp4nBMtvbD$>|u*@<>h+k?;p%ygs_9c%i(D zcPr+Bwl;dQKUC!#zkyKO(+5zwpX~eF2bR=D6cvHai_wQGi&dNDIlhs1q-0u*k5J{| zIQB+4vN6r8--d}kl^&_S}=r#8xLeQccnOZg!QWq z0FF4{`=4Dno-T$bTi@toz|0AC9P0Xbg0CBDToOB-C3aWQNf^U_rvEVX(adILf3uc$ z6}tf#ZAskZivtcRAE&0?D(h+26Y`m9Hc}~$_*Wemj0KIFpG9DYwdO~wXf~R@kLt%w z-*+6sG!POXMnAL`{n2Y9Bl&Z<#=vV+`4=K)cU!(m)p8ZF8tG6=NL#UYC=?CLA`HEe zZ|1({6^^Er))zl~Q>2M?QKB%#=ssaJl4vp@MWlMJtE9s#jJxNXL{305esbDCV08;6 zRbKp$CMYxYq=Utm*|qW$WZCFfTv{KI2fwyDmQk#b%REzYMeGSL(P zUDX|%P2<=I53e5oY@r@uYK-IqgWHi83kpP}%`fvLqT&Y-X)5WBw*G8o*K}FO*muO& z-DT<5mNqqycBpt=wqp?VJ%}j&DW-_5S8BG;Y$`hGGbl@wr`y#(tddiS%69+8!9XJO zaDA1MB$vLT;nN`o13$TaUwKeA97&c0Y_~T~M=vKWe$&3XCKmDDuQv>JJu%*twCA#~ z<#8OX;_Dmd%fIAR|5~OenKpfyHOuLXbIji1`!E|ovLtcca6eKjaq_CNZpJ+EvPtNE z0yS(dJgWRp?M(M68R+55^Zi;qb$eDhLz8FuZOap+RKt8gb@j^AaOvK0e93nUn8yU> zTIIWA?@>qeOAp&7_>SdD7u#jRc5?Ato{sj~YfeI@+d>v(ThnW3r%n7_9iH=bGj9iBD+~ zal`RmauRZ!k1p=Z-PcYGSZGk`kk&H&jPuBcsFP;A zd;GQSfnAi!Xn|&sgB$)e*~Ff_5&JP|4+yrl8r zHb?hjpE(*x%$l#hR$O4#`GA%g>vQCJzhI4l#``eotmNf1+(t5CBT^Lf9aCd@8(eZ| z*%Cg^g-qrO%(nvlJ!z!1X0IwV#g|Tm79V!oIrN@gGY?&i7x&HBN}l!6_kB&rKUN0k zd|A3~x#4^In3d_+wZB1%0zLk4!nuDn)$*)oYa4FITQLGPs3>_J?Snqqa#}t$;sh4l zlO4T^IoX{zIRiD-A6&gHzjN9Z^(dWLhQ9qKA42T;yABL=`J+~9w3Q27#oO0|8NUea z{em9e?BD$GtREl0S}_5yIgi^_a-d>HYVBlr0nhRJEk}vsu9%t^okA={PmqbctDkQ2 za-M5e=JCl5)?d)9W7Bp z>%x0v4G$CN?q z^FGGf+&!ix&Aa2gITGiArVq#LE*In8`(o;TO@C(X#G_}xn`0vCb$;86SEel=HAt_k zm%w?KT~{=0dQw`6F=rXx%a$W8_uwrIJB~3=w>hBxFiR_1N49QBuoAi^pxy*3=5Qaw z$nqTNeNKDG7RP!9R9MI=aJEz5IIF>?8ZO43M$mvP+z#^}chw84TY4iF?0t3WF9-gZ zlRB%cs%geO=A0ik_6p?y6}4+_qQt7?99Iu9Vi@&Hd&}LnOWXY;nMWSa?zOgG8ORo! z7Xe!h`GUrGB8X(9C+aynA6s5E^kT?`uVgkmxF4>K_q+OZEEy?I0K(7nG*CEk}5k3yb?nrFhiZe47p}Lya5o`@Ov2wTWWSIA9o>&M|(M-N8b3NQ<87>hxYVFxe z%jieuHE+)lve|PjldR0!b#K7}be7E(;|n_Y);t6beQL=8Al;TS`Ig){A!0w+XeLB} zDb4dL_%Zi{P#*C0vIwQG{T#(Y#J&t$%Vn+=?3y4_>!zD(sNdW^K^PxwU9|92G?VSr zF>5u~l&8~wu1t27f3&*Rt{hgR(=vLtYOf9sb*&i4ua6o99zZI3U9o^nhE7|Xp+MiU z+~kNQ^SDQ)=AA=#!71j3T=EL zH76}`qM4zsJu8TeKp_ATEs`W3{OOyv-FdU8&CDoFbWC{Tw4E@**w*0t>^JfK+ejf= z3JwqZy&CO(6z(R!85FR$4YPCH9s>KizLZ(=DGyCxSiO}_+o-maNowtzFYzN+h}#wF za9+%n9Db4YHA_1PD%X5^T{>e=q^;_`+30aLLYjtrkIb*He^7neRT=G_6#As+r59@V zp}a`1_P4-{okDdYIrTz^&Qtc6G97v?J(9u+T?uf>eOX`DUZ4$YZ1$(b~%1 z4w!o$^hdP&LehZdv+AyTt!jW`lyyvv9_;0326+} z;Ils(b7>&rbI1!E`Z&+vw@7tWb|%GXVHB5s3s=FNvGvPyQOvgbrcrXpKNB_9qkhpS4Fct> z7fiN2A?%hbhn~w$X$H>|!hP0CkK=n{wCCW;#O8ce;%7j(0ooPO!}9%#=iF|i)mx>B z`Y<*1X`||WRo5@~0x0;op>lOqjeKB_Swzcxss$MX8Hr>Vy-DciJfh?Iw-XIhkNGWA zj9-&4QDitjnd3(PsLQ~tNb3qjST4mPKCY@dcu6^w`GtAf(n^b}>tkZP9$A7g<*ypy z4augOh#)}6;E|QXtBW#*OlqMGt3H1Ky!`>l3(z_dbYD2PR&R~HXGoJh`L^ae=rDX& z$M5SVftXe15Y#Xx;4{@2kbj|>K_T4Hxo^wVEU z9qra-B3|v`Rfo^ba=})aC}YQ-MLwAXqz1Q__Z>j9@VT^WYt{CmzXm{}J8yap9<{{~ zkjz9+p1rgvS-T^1Cejlca8$VM@B^jeR(r@r5q)^wNdH+FyD+sLW0B zyw~J)9J*bdagdpwep{V8G9as{4jl5aKk+}jFWoyD&@irngcECOlQdoHpFP5}Y} zY+b8H2V?pH3xN?y(Z3o16BM1;fz+>GknJrtRqnFFM3yzdKGDv1yE9Vy=rZ+BBh>X? zV_8hgZfIwJbWR&Twgi3QXlolta?%Bw$I27NIKtK3EvHPw<+$#J&X?-FxI2`0mY}!- z)WY7-D(i>HK@H%zwcR&!BFNJF9q^Lqx`|ucW0IxIcwffl`U0_qPr(dHw;lhI;`f)) z5)t*tnx$sXPp0P;+-|$b&=z@m?+Nd*IYw9D&FH?{<>xk?9t1g$cfzs%S<=el&E3B9gn;664zx7(_<1SCB{m1)A7%3BvdEp6wxAl9o zO7xDPbE*3=KauMQK>^xz$RTW2iA2b~sajdpgUKhoYk&S1l99ZAqmMs)rwh9_aFwDl zi+g?P%7ATjwd;ia^{UZ)$KG}c9&;^q;AEv_=51(jf>obSgLB&X zksb2Z+5_7HxyhdkA?EwBGWB!qdcGtbVO;r$6vL@9yQq_^hj&SKyO34$kj9?LPCoNW z&7XQYO}#~h6`|9W+=2qWhQqUAdFttps&kg5ZO~2z5t0!$A3gFWgc%Nd z*%N(vJw!qC`Uh=}QBA=3N02n z7oEI9>qCJCm&;V>y5p8t14e?d1`Dlhg-Vz6+<@{IZu7#~rav=PYho0bOMMyaj+V9> z=PLn^hc%LJYX^>(ikW58#Q&tvv4H4X0S#xm%oeZkMU5c>>-b_&N0u}I zUTTL0jFsbe1&6{DO;}17%^GX=ecjG{1H&=JJ53$Oz}$|qkaq(<*l=s*r_hKm`@x={ zjIQ>m(Qy`D#jIBKqUS`$Sx;NHbLO?dlKc6}sBY2aV^MvHpOIq}`#iuSAT$Aa>?~+9 zxm(i`c|3(IOO=p`9ho6voR>fQ4E0i*`O;=+&nQ?rV>h#E79&bwTzmkwr|-@{jE6-c08hW*CM zAsj5LGW=V7ej{QtYcqNaQDaPp-fosRm3YdFOG_e6N5=_`CI z)G-=!4VUkvd(XF1MAlsa#gZqW$Mk;T)GF&gD-#vRBZWm-r?LjTzXw9_ia<7r`%TNx zS)y8cpy>k0w07p>8KExO?ZjO2&S>?zikK5BN&L&RcT1vbjcxL(=y9c;RA*y{)K{4gBjy;Lnv>PiRFW)H~@Dq8)V=NB_;6$G!N z+z7Q!R+6ORujYkkeQj{AJqd(LquQHTr7oVtFV{{~uaoCHT*p9xGXn1>NYP4$_OFYXFN8h6=qw(Fb5+Y9tH2(jImJ;sBi=FVmL-~MJjoU5P4RN}VsEUx=inet1W zwIOaNv9`M5@Ru92d%Gi$Pj-4oT&>O$vU^2|jP#X`5R!)=|;HD&n;1*q^ zf>E-&Z~JM(!ST%9@g2*@Zffa9s-YLL4)g`AW3^PbEu1Jxu$9{Lg<;?(&T;K8`RrxK zb$+mdq_kA*wI%r|MzFL39`sX#ESF`))f3B#_;-FPGZclZ@a@X(sH!mxh?k^WZ4**M ze?;}nCHPf-G*zImj=eFU3T1)xeJW|MpDV9S3ArQ@_Gwf+&`~dGU!$K(I*4`hRoFSu zc{kOg-HF?ftgBlJ*qj2xwYw#?PhZE1>Qq)5hZ*zC1f9_tN!ZiXZ z^--Gm=eLK;^Fv-kz_v>t4(R9>#=c0rKz!>o3(C}eu~GF^7@b=b_{NT0>iGg)g=6)N zEC0t{$DGRqhR6x7&s!9Md}r2!aR!uJu-VoSfAw+*X|7pMq$-DgvdW9pDv8$`U+#bC z3R=<361;9?(9j+8KqT3%C-E~eG0{3VBJ0+7Gmp^uI0gm{DmU~y?K?Ee2;cHrf9AnM zKejO_IHa3+TN#=PYk%<~3$YmU;h0Iz$K@KrUgn~Y%cZi9gL9en37b<-w&Cp{R8&=bDiBrbYq*(CwR0a5z)?uA zSJl5YR>J#qv`SQq?I#(@_$A91SS8foH|o^O6Kn;zcL0qA+g7^#H@%nO#eDu32_ z+iH#Pd?|4~P`4_c=9N4JlZ5G@(;wJ)QwY3SeCsQrOne-KeUdZ&n^8M8rxJfff`!cW z3{yOH=UFILZ*KG%5B>Z^avRfX7tro`Xu+cY%<&9x+5iF+(792du*B?E;LZMEETC8L zP(PQ|ti5Xw#3?-~iu0GHJd>j@4FpSTFrQCUKG}&kJ8z%lFsr3ghazAJ=+2(@&1?+l+@ZZx(gMQz6H*T8v{b=@Lu(Kv) zvQyaT-b&v^Rv^S)r07voFk)#150;9nQ`YbUv0UHFWlWhVtg&uMVqL$N%b5yMFo%^Z znZBSPdbjv}uwR^;yoNqjU7VY;hA(zr9Q=MdWH3=2Ofj7}2s+GQwQQrxT=kC|1HQ-cQF%f1m)` z!Y;_ClLkq}uc&J9V*SLgXlgKHeZ!8V@C#Kk~?~&x}iG!!& zim-1wvGL#2<+rh^+Q=*g!eo-c8pJ5TmRtPFB#!ip)E^yV(qhvn1+Y`hX{z}bNirriTmxUZi>uBxS^2)Ocz&zpG)4pA>(`0{0@TH^I~h8h+gt3Nt2LH z;WeQWOHzfzko{QC%Y5EmTo=%Yc!6ZH__k@m#TOZm*Ou7Ms{V_8L}3U%ijHnHe6^n(;ceXZ>8j@$mwswbNSFLlw<+R0ZX{s=>c{W2%-Wm}aGRmouMsz88^z(R$i7 zQ@eV1@;&Z6_Sr;gg-mI=rz1rb%`};HP2ZeL^-A|q!=8g?XB6FXn_8%|AMJmJi;fsIl9%tXJXh^pyX?g|C%;dfcj? za+z$$j;j8^ZR&5{koW~{qfjEnHui(;_$f#) zb@bUXd{A*UZ5_IerG?5kDBqHOsGId2n+pZC5;uH3th~Ne;5mrT^k|f-Jq38q${#8S zzmR$!`E;j5mz|MlV52tu+7LA7hoPk>@$Fi{(9-v}b*i!tdZ=DOG)zvcNOdq{obb`@o7a;8ROz0C&XSYto<{yND zUQ{g>zgQn6Rc6aW<$7KD?RWXb@+EZkTsv-g4uDgWvaXJ}bCWW}j(%)Ml37hQOT2qF ziXr&*x?~Qiya;2XvawSAG9Amc0yEDrw|cfQG_I&N(Ylb*J&v=&?E5z=m$*J zfNDNxTVtxdTzNxBWd|DFm>$=ST>0Xfv7M(IEH7te?T~^rVuorgU2Jsie?&|;D$yiD zx*)7!&mx=TX5;rA?kX$Dr1oJ4xlo-8aQ7XF-|OWRX}3c@LckQcX9zd z8#-_5iQ&-3XCHv$v>R*OMK^)Wf!Tei&18>v#!~e*eDrOR<4A2my#2>KcjZ!Yw=2fR z2=@3O*X>+~9y*v_8O@^Myp(KHGvaKaeP;EFMUxmo=v?@p5*|6vwzcIjK=7|K-m|V zP64Q|*du`*qCV}4!uGJ#cd>{252<0-p&p zxiuOsYJkO)-#fbhEYk5CkxWzNBL3)#+5l?z58KKf^r}C$14u6E$FY7 zrAuwv{^*E{`tDodMmLS&jTWwz225(yM$F;3b0&fEGRhx73bqTOPQKoWBlEWEvLa;k zkmk7WE4%NhmwGRcZ);UZY|imiW65x)3dF3c>1e%2f*{HtC^rwopvhW9OH>U z%r%JgZa323Hp3n-iqeN~-lzfyIK*x9HA`l-eX#F~5tli-mGK@btWc z1ZFj%Zx@XDRaK9s`i4q@D>~ac$mkGmC52Q|R4fHN=Pe{en)yCdfCzVTs3s86rOF=z zcd`qC|0U{gL->sOY$X)g>+FtK``8yvv>py0``NqB6_~Ok@W&9Ms{9rG;$FkLE^CPT zVNRz4(WUOa?4o2#vb0Y59TI~*XW8?wSr{Hz5*eN);w2x8U+4`$h`0Y5nItL#raqrF zSA7dk(W;4Q;s*tjdfr=`apsK}%|3GbY-nQi6cqkU#K+00>-8Za+$*kR4jQJA(9W$_ zb4Mljnrqg=m{CYb{7h7DQNkqEWHmKCDXpgcE~q9^M?Ng@jZ{-1F?P^In6j|W&N^8D zzbQ%pKMad18v_S8$Ub#dA}M)Q{9-?p-|f9?agS^Of28$WmZVgtFUX2ooFzRKe?CiT z!-9?%YcEAfYJx;bLP`ZchrV{5gqOXZ{YVD9aQ&l5A~4mUNTO>stU#jq7*6H->W(0U z{|%~ZYa|!3>v|emA{tDX)M8bpuM*L^;>cghg%}R~m_Pmm2=$H|A-d!JmV4%R!fQ-I z+Xyrqdc${7ZAxbw$$;M-M?RK>ru7eGd*XV2JQ8A~dT3 zxOgu`lbQIizbx22j=`?MpvC$BLW@r- z9<2H~0EtUq+Td+ZIS!Fm$u5Zf)xZ6Z|3ZX>Ft64NkluchTUpTc{WW~Z=TmB)HW;6J z-HEr`SoULa2MK7+B6eb#7c@GC-VuaKFS9vLl zDq6-h$t~&w50%ZQ&F({lpPUxM6eVKA@yFeVvv4#=m>jM_fC=Vrk$|g%tJ8jAE7prQ zS@FpWL0k6?9J9~`TwTfxoQ1Of8pt<~baFHLMRvkhL|DbJ0*FSyS-@M=BS9p;f5=u4 z`(O8{hr!iJBP&@DQT}D+KcrvC_O~gNf1C2kKamtkTP%$kDO-XN!4~T;(<5_%f0?l= zeDN>7&=xsA!rDOi?>6*^TEm{p1t3ETU-{$uCzc_?!;a_Vkzx13SR$yg48K8uxcool z$l8qmy>daTTQ`f9YDgL$z_mO&5MJokUR0`YgHZrD+6t-bD3Z_JH1EjaO1Fi*y z-DvcycXgQ;^F<3ouGS|K;SEx|nom6i**WXPAh3+u|ReG%yE z3l@`S;rqb0&ZME=*tDw8?}^Hil>@iDI7ir}Y1pN0ozIni3ZA|X9?SU?=2Zk3K%xL>h(BE+(JUym90<|w0ylj#DqWW7Jj8u{TuVVZky}*U(#Y)h{ z%euz*aN1tK;Vr(Iy_lpR5iA~2MnM7dNHC*Ji_P@^$0jj_;6OXX zaN7AVvil-v;r^2x08_&{qTwHl_^U=_drob5X}=4trJO<#h4xB>qE+=IFPazp-a zrS^i;UP$?C1)>o=`2Wjl{w*BsX6vHk05^gErFRllwi?2>#mIHGu}@%1yNH|S365CB z6XzZ1_ocUsnS&VOZd5f`u^C}UpSG{5Fo9s`cSpTjNVEsCN^AZ89Lz;8z1?Db*&&&T zbHla1;BWB44;`Tc>46aBSwylK;qFF}afZ=g@C_BABZL$Q63y%V?uN_Y+%mGq_-Bm4 zH)Rrk^+cS%9`ava5;1#@&|--aW*m6`X3{7d`u(rveU2e|;Sc;LwZMBAHP8P;jjY}3 zf$(3d7NCF;WBw=cYyAI43^UTic7Yy&e_82YMgSNm$l4G5ME}Loc^DwUX=|zf^)7$QU+CD8~}gzSRQ05By|_8hUrDU!*5Q6f2a z=&aBrsi+qM@GlpMR!71H2ig@~!r8YM*sS-DMy95`Qwc!?<$>x? z{F@t@by~|YrIj}Z4=!)^e`Ym4Qt84@Ua(GH0sUadby{-tN2;i>YUv-QT1O;4=nJP`2Tw3{~^YK+3kPv-;(|?fl&hgOJY3#NDK-aGT@jsQ2$zW zX$l5Ry14L@?4~B6F!H?rr2cD`|AjgRMs4%Ix{m0duEY2bR}cK->mC0NZ*2cT?$N{k zUwXQr#s7fRBIZBZ>H6tzY4sNh%x6Cbxp-yGK%@2>59ISv!^*4l*jUmkq2WsJ`*h}B z;;bjW?JZqpU(7-9!!h^fGy`R!pq+C5ai|xG6 z8xdM2y!!1T5aGQL>d}0b?_qpt^;-Ozgth9eh_(KAzQwDi{)7ea&a-ewzrykpqPZvH zmG`U$QJ>4%ial%5*e0#c5OC)V(H1_Szg0plih>3FZjiMOoLfqMr=~Djv})TDaQ}x)cBvd&;0Z#S)fQ(xB&= z>suaE;8g)7J>#M{VNtxwVunnzC{OB#HA>q-%y$}T%3FxCVR$vV4-~g(#oE*Jc~(uy zgVfT>DJsgVR>M$f<4eZ!=)XB2+E|K=)EorfxIkf8#K|A0i0DM6r%6)JQ0|Evl)ZSy zIHAqGIVZye+U}%?c4IRK>Co;%dZovW9y)&GW=BbKPdsjfVmLi66HOL{~d7J4-Hx4 zu^>Mb5?!X?ec>vxAC7_zn43@MW4);V448hM^~==P(Ll!5-w~6MT`Ikwc_LA<9TBxu zSe`;`+gzV@dU(OWMgA*LqHxEvpjMBJAj$EM)g z;bKH61H#T07197~^Sv^56EA-z_LC>ZSd_H;J1rv&^dwtsXA4WV(uO3Dd{KP`i=L8V z6g&82F)`LqBxeiO(87u(OlJ$Goi1X+zsVQ6jgXs9VKdT2bnuGi%9&zYDqrl1u*wXK zT=^p&h#`}X2sk5j@4((y(;OAZTr((&W~Pu9JHh@3U7 zQ?83FF@BP}E*Yj_XMI>80j2t@Uy8=DS?4vxjGwC`1ApXl?FIYdCZETBMRe9@-TP+~ zY&ed(+gj&l{`;HgN(;xH4E{1f@;O7504!iyK1NgT=sp`?=*a>QfY)`@L@$=FdK` z$oGU|bK@N&nYpI#-o@sr`6}$gr8=bMa#j$?K~LX{Z6s2n3W9Jo|J@;X#EF z)7zw71$0huqpExUb9mnNognOHa*fgveCD*A2W971MQ#u;-;{7)G#EKXnf(maFaOSP$(W(LM;Zk~#CjDBSVqF47(z z^9qH?Gf(lA7Xc9nEUz_C17W-H)csBgcs#^_h;Fo8p*I5eILi`E^4;sXe~xpB-=8hH zD*rW2iLL`=me+h28@bC^sH)|9%FfDO6b{Or5*t<@|L&AINE+$ZbKe6F%E=$=XpPM~ z0$b=hV8%|@+Crx#?$^Td8WsSz&}lw)N|1*N>tc`WBj8wT%xvxZM;Y4nz~*IUKR?y;AM}Zr@*B)}@<7ZC2Bw zCv5s#meA?BoQC0bcQNDt*VR`>#kDl;Vu9f9J~#vj?h@SHC0KCR;2VMjhe1OKuEE`d zy9WstAh^2@dMD?+_ulXQ=Eq($dv$f$Q{B~FYq}>p6)W;bP9rZXpFVty8(;%Gb4%L& zrBSuFdCp^HKC-xri1f($1yx+^s3sMAJBZD!$j$Cr=9UR3Mcm6=E#u!`#ro2C`7<{= zd&Guz^KE2a#8X-1Jofyula0-r+j6#24xp*b$XMp<;j5^*lc|&caxbHmU4I#?$NPxy zcYaDb7eQDOgWaKCzHQeEuIvN&O24yEqW-hpRg5{kHc0b8)iF?UC|A6hdI9}`vluU> za|cC;p$TPtft3bJgEU8}T?RRGf-dfo3$xuPLl{w+$UhdzBn`s;F`QKjU4x9*KQGQW z6bhD}UOD-Y<*>bFmCI&xfg)1jx458mWX}d%2IIDU7~1Jrzyl?azXcs6tug)%k~>k4 zgN%zeF<9{*#!oYzi0E#DO&jvxu;?AXE+aQJj`bI z1<9H4LOL#F7T>oH*DH) z+Xo`P5E%jmVh{6_=aw(e;*X1BW&5Q!s=`dF53+ue#t*Xd=;{yiSWHV|zQ|1x?aEu^ z1vZ2~`RobLgQ44e^)*Y+`7Y2hq23^cn!}_yCiwNLpVs$1K6M}OQ|$eU?M08(u9V`j zoC)bJzxWcYmFAtZ)qD@59iwGBPj{K#Vd{E(%mZoe&gH`?nL@1qU3>NhL<_p4mP1L|++X&FPe6i9zF zHSB371v~=61t}&ImJi<6C(FPoSW&qpQ=mLBY%ZPU;#9f^T*H3z$piPyuzYqu2g z!u_|eir=2bY}sjs(^e=D_kE~NIoJKaUWT6kkLJJobMO&gj=0r-%%sda+l^NU^YEDC zC6fAbdH2^^c?Ocx#VZ%>jw#U{-G6I9roq|sc7_o7m1WEcx0$uC=^NI+Fx$oUTG-|W z2nqKe6GJ=SZWopo z^nBk;xwr8t<~q2Nn0W|(#R-jtNp#9{^CkEMH#M!NKMCbZyulPRutIN?cLv;>GmeVO z|3(HPT+lBgZUSI3!C{%)LbwWM9*owh`xW;eVEvu8-cc${eZ~`!`yyJvsKT}`0A`Qy zm)~N+>D&`8?;>|9$7Cr1^gdAP6x94+B&fQPH1cU1fT+Q*F_Va)C1}BAYkCt^XK$MY z(NeH&N(WjVv5OP)6_EP2&lbgyz9IF+;u_EyD0>{CvIQELLmWsxK{QM@m8drCzxl-8 zky<<8dQ)1z0dMfn;MT-*0k{xMuycfebkq`mh!EKTF%7vj*66J_@4&v-x9%o|ti~iQ ziEb~a7|n*v+oF;s6?tK!0WnC*yJ~~&fo3*sRz9pL zlaK^bK24(rpdTp$EM&aw!w7$6&E952^hq_QxAcJnf3VIl~#_c;qhq^wE_rck(x_A}c zAbS*at2CK;2>kBSJ{fd>GvJ-S8L)Nb5VS*!RPlaJf(FOb>g{mH)DQXrlBXt6Dw1TR z`& zp}bGYNE+|&4fK^~_5%ytr z@3vgasHt2_&nikO<)T3&s(3UVWS|qsB|R89=2tWn#W5A0!KAUP5UA0L6EERMcfSX; z!clkX0Ly0F6{%|}Q-oSECP^uT`2-W9U`l50%pcn%f_q1-7LEHy708Wk{g-E@V?$z= z?DB?HQ62s=n}MDDsa^;?D+B&AkR+O|Ydp&2W z^jRC_i%KfimkG5Lq#{kT*0+6xGbso~`MY;TNt#1Mdj-%LkzMAe-34D=k<#D%k;`}( z$Q$wa6sROdh*G4O_5Lm$BOdeKU`~1vv=Xmg=piJ-RDLjG<)is-u&fn?9stMYA{W=8 zGe`wmAyfHVA;ZNN%yr216J$d5keEDIX1L<=U1Q6H#xP%IGHakimNpSzemCsx-*SBP)E(xZ0 zYIxK}TTq^~+rUYML;9erb%>yfR<^|_z?I@}LJjKXMT(G0#fs>I0s^E?oyZZv4*Cuw zB{2yLo(gJ|`nxs(q%>e7q&lT=xFl2LoRnCsmsdqozs->W@zyt3&(~+AZ9L z^8HodHN`~!dF-~0-{MhGmzj}y8&kehh<6v;{e=D{+%Rl=^i0XC`<*O2U6cyzhEl8a z7a03YcHq;zssWfZbwJ_bltQC^$tc$7vk~;aJ_^5n=JdN7`7b|FmOQ(NHEJQi{QYoJ z{CnPx&wtL_K{mpbUG9>F-PS_TN@hM6&4=4icig7`4Hp%~82%wxTuuT<#aRuZ1p)t+ zu$sDhAE`6m@!`3Fv!SS=eVKOjulXolk+LNeQ^PVaNqC-lBxYT!qM>F|5fm z>p^oPYc|ypT$C#_gRfnKkG&j9ONgqmmY>ZozIl1av6v9`>>yS53wyoJij_C3P!aa} z@`W7O#>EMCEx3UTRvQVwG4dwLjxO_%PBrQ~daDO%BMIk(2214@{cC)M7_-+#jdCN= z{czrTWR)P>*j;&VjWnCtT> zQ8bwt=T{e~Kh}h1vCwz9kmoLd%P|f4W14}>I3{_PM_&7HX$-w6jSC35Uq-u@znHzs zce%ney)y&l>Wx%?qKL=8M7XnbPE5kV9#{{%;BUCWt1z4sKtVUeB6WB+A8hriMoTJ*XrM-f7j#N0Wky{(yOUaV_b`b`YUL{G+QbLD%V&%GN! zrFXZhL@^OIrEgHTx*7XU=q7n@3X{SI^+CCU9!4J$2xv4&M!4oJFM}Bw8Rwf^esyXV z7+gj416@qNg(O0dRW$DJX2gq7J|Pr))++JN39NQl2DmY>II0qCR(?n^S?D=hS?XOF zsV?-oA_*{qDkw$&yyjNM0M;Qe=BNjtpj`CV3t)_&OjE}F!h(I_V-x^NquE03pDKul z`Ff6w-cRb4_vnT*>+xqW;%UL?eGCGLOQ`gpu5-dj4qjbS4C+SOc2?KXY*y(2{j_bW zov<*)S6`&er9P}bG2?H-Q#QV4LA;clk^A+^0b3|^aFBtM{^uvxGl12V6b0G+1?hrRLZD>SzR2UUOi& zZ{9cyi?vfCK5(-O=4Rh29TwMJLAXS`)nV-m8*)l$b4GVP`~kGY&+A7^9WK4aF;b+) zd&6I4sJaL#a+~3^{>)<}zjFxo0I+l$pI`YQOPUI(dcCGUTy!-@v+zc3A##x6gC#Uc z6t2;WsbaZQ0+E0IC}^a|&;!tS=iz!A*)}^YSyZcfe4wc7*I1aEfU9I`r@_0#IX^MG zJcf7|x@3kN(vdCS^?|KNba(Hg%S3%zQdoofLg_h|I}C9qWRMyQcsX9j0hauDN78p6 z`kT=Re`m&dhOO$in30>+Dp|c5N%`_!?ejP~gBIyx&MjVTOCR|{xRk3ugcHQ-QRAYL zKCiFUakQz}_}V!i!HPB&<{{p=xF0RdZcNYrDXl(fFz!mEI@GIR!`qfVG(?KhXJl)g zoD}ovhCrd_W@Myo{a)q+Az&)NFW&6HWXOAMcJ8Xz?$9CsR#bH8i@$%+mv#$u-XAr2 zOzi@`8$OM{!9-~yJy8Om9JxLT%nn!)aedg6V@o3KLAJ!KAs2N+SpN0;TC|se0Jk^7 ztQ*|xD1$-H+4psLX93L`!_xijj@-ml?%29ycz6t2O#?ZJ9lnGekpLiOMjBz4G`3`^ zDC&eJf18su1;Yp1x#3DBYT<)ZpX0)Tjkt^WSyzaxUxFG#uMuW*Q#qQ;phy!nP~Y&K zq>HJkkys^`01Zdg=+*9@Iu$BpLWM}bBDcL!FX}t3V9&#$)S%b7dS2bQv+w!)&hBcj zmodvcu~kIW-yq$fsZs&m#pKz<0up&Fhb4PNza8}paIoWg-_n0(k6G`5pneo=K+MOX z{rNa?C;dSwB7wD%+*-+u5m(j19G1SqQw?vl&)#gqyO)qJrq^1Lwpu|6YZMpN61P?I ziMDctz-7@tSDcrM*5yr-ftQQ1HNS%SHdmh4Xb#y4{T9~YH=0QxLU5xg^?P`vt5w(g zG?Xy@@}5QEV5eiw;ch7nWDmWVFmv+-IVIlE7Cg$uW+uIGcx;-jO+Q4NG0Hd@4Em}u z%K5OvVnRdO4BI>Akz^c}P`plRN=KKluO-yu#w4_=|TwH3rJe`!iR{PPMeOC`a1d`FFhnD< z%my5P@Z0!lI@n`xNZ24J7=;cCE{;-CSo!rZsbr8CP^by`E;u!jEj$0l$Y%Um#$Vfb zYgNp3h!|7jw(Q`zrPjf7zq22w`7t{??fCuqDEe`SNS~O0XRoK#ob%_ExVNhJ^qJ&t zo}p$pjVGi^#+bJ}zx_8P4pM`f$u9lGQXpj9D^0Dp@w$Mm=WT?=1^b~<>W}L^KkG~O z4N3B6k82A+q;Znjo${l=cAFWWF2(t5tM+z%erwlI(;DeV$p`sos=P7#l&3t;mM4om z-SS7|I+2ahk@S`aNdI8mOF7@i$WG6D)nXAb=d0DbnVKU}!Zy0gw#UiMv!JfmLO|Oq zo=8VGi&6`69k(6Fi1OAWKbm3DrnP+JO3Oq)V;@7n`l;m+p^S=ppMCd{GC*-jHlP)oEqGpsCD|iDsJZ+ndVjI$)J2XaMqq)dhZDX#jv7f?v zoZT4kEU#JCnz1#q>gP9(SCnO6*x|7Qv6-{*F<5tCe7P~r0OLx)38;T;?cDj0u}OP%Qn}I@nK8wI1!%N< z@+!UtZ`XbEx>&LlYk#tvndBo=%Y<_MlarV`n#212(Gud*#NhSBRyQBr` zmxL^S)>GQoZ~Be}T)NElD)RmC%Hn57KEXK_Hdwm+S<~ND_(9fy-^*Sn`4=Cuer4Ft zRi9DbhDOoT)Q9OsITxO1GM0cPMI;mX;r{B2k*ds7#A@CwA@kkKH+x>i&b$PZ$*=X& z<0j}>;~@g=``*5OO0d-|Q3P*W^4G|K7S6+qub?$h@vCBHAs^Wn{8THVdh=B6kHtr! z+sA^+9p9XR^S5hEqC@V>;*$Z+4wU!pE2Q(^>x;6ND`71QtJnx@oWCq(vI%yd84*<+ zdaWo41>E+|`XSd1E)-Teee|Ga--z#u)bBi?^If$5P5Jf?vzU;92#wlef7)vmDD&#~ zIcfX&xUk{Q^bxm7+qV#neapBsM(+bRSa+p!6E&XahY^a?w~ERmoQ{nen?8v_^7f5! zO$a;Ek7*2}mwTO9_goXNNzSsv$j5%g_a>v+C-o=eb3TQ*oAe)uWhZLtTlV#TS&V_J ziUrnG3@`h{e!!1~tG)g{nZ+Ti|tvnLo$W zpLfMW*nGmwWT+6D^xI3F;&g%-UyL{2{-)RxO zZ*Y>yVl*?>o2|^sCD8r{(lEm_YW!O_ZYj8MwVRV)N0>sq8k?G5#7^I<7y@-2 ziJ+QGa5hZv6F?|ic>MeDx)2f5<|i9VfR5 zdFyJDF^bB6n{JABt^i-G(zv$A7nO8TciVNv2y}ENR1drwJ%=5dKAggjRpES*-o-?! zJOrk1Y9lu%PMhpKJ;#Ooo(BUB;CG)lJ*lj9?yF}-bnu6QrF1B}&4#r! zDd^n{2xi$MWtJ$s@3ho!pQvL?Ej%{nCI0Nj!dY5-+pwj?+X^&~v6bxtd})T>h++`e zQbQfxIKTcfhVH?SH%$J9t!=#>bLMRUILC>DRa|2zG_>8S0ZXk8a}-3t!S?J|rA_30 zK)CZLp|f@L>Uqvctapv|LD(C2tHakI1HSW7y?XvA;W#v#+@jrUbp z!SN@+Rg8Ys+BUh|SoGwB#SI!z8JRz=GI`!Z~OonV)IqG%gS@2dOeYPE*=V}0)B z*mQA?)wU|Dv1(tpjsA*F?^j2^+$8)t$nn>CbJzH!%r2>k%gsVo%Y;jJq5vud(FBF} zkF63v+uSYNUDRF8q{^(w=r-HEB(~=hc0RuO9$8h86wtyU>J?V()_CB~vf7FOy?dZ? zuG_ULY%u&}Cx9zoMa$6^8+__reXN`c%f4k^st?UzJu@2NCu6#9gN?tW&CKqaL zdN5OOc$yhggvbKGbHMDc&2r16kzc-;#+`?|7m)gTt z+Oo<7;QJPycBDSH@R?|fS+M%=zjZ8os@kOtPm>|pesi171rdLqM~wH_dA`tX^TY|l;?(^Q9fX3KX-c`M}Y z(*gbu#zsc9jRqv{v-JU-_V2IHki|?QDVrM~v!7XN%%#LXNRv8noT;NT_%$Q%vYYMGpf72yr1B+t6?d+fqy(*JDyYu4K+ zJ>a2Pb{891iVu9hm$}1z0Evx&jofz9m8E}Js?%W;@OB&-JE^*jlNSZQ4XiS}U+_!W zByXa9|J5vDr7ojmUZ<1mh17A;Yy;>pW~x{M@2Z))<#|p%=$fOF^?qBCCG>R$z8r?d zMve)(z3igYIkSffu@kr1lYObd{K9{^OCvmSfCqHn!7* zzF7&}Mvv3FIuFtzd0}Sv3T%@AIQraFJRgGXtswbre27bAM7BmjQkDcet^5+I2M#nYb2Q)Y>DWr_(~O-tHt zpf_!{?qy+&gxInsJ4H?}F{+{#dQLU)Dl~yog7<$huAmemXH@)bpr~B|z#lYGwgYjG1Z!S&)7EVOM@i};Z8_zf6F zCiQ_WL^o;cQ0+Z?Ttg>ysg$TC+T_Kt@-vunwTEwYa;4CT**%H9-iv{QX-)g z*!Jwnyt3!Ncm$Q|sXPq;YpNGLaY7zMfrTnO!5Y5AfP|yy4`Q?rGy*Wg!E&5nvd}G4 z+Rs$BVFf&iymA=Q(*(n2au~912#GY{N0MQ6xi}eDtjv3Kh29A|RYXM%1I+$ms+DX|LiFABtYL`mGrzwZ zgkkO{x9zCR#rVvBUusAEW}rI9BoftYke!zmd|_7MfzCNAJ}(Eq!b`IE)%GnqgMAJu zLP^E3CgZ^?mhvivls9-XM6jb~;usQ^+i>_J*g^{CA4YJ1-tM-17XD%LQrSo0hts1P}OXKF@=b)6iw%e zG!5m{knX$=_k|eq1$7p20V7F>zeKiphsZw!*_=yXkuP}c2=AG)Wkh5BNg&zu7u0e8 zGz0uMsGtqubHX3#X_e{bawR<#0wLbjk#Ci{;(HjDmtUDI@`mD_E!Ys z6hA-xeTqK*3W9d`7$4)mM;?MFZIR%NbU?F)ttJ_$SXe@li(;6vRjI`z{q>+*H_0)y zXt&cFC|Qb|jaJtVxW~Ij0dhZdG+l-R=CL#y~q@YGE)AlaWNRvW@~0hcNZ_#pU#*2LK{TMR*a^B7yC}s zH9?hXjTmY-c$+PF5(xJN>|eDHzU6_dq~c{d6t;R(!rn#YaSQwVZGk!~+kuo5?ysEPY;R|0vlW6Fg^O>}!J;MLx}QI?Z*=F&P;U$Wvx(wb3) z1j%$9Nz-KKvBmnIeFsruSpTDbHvbSq!s)9L>KFHcqEe>EmY0FRZ6WmVs_bzhNXpmx z=u-ATZn}&8wS{6J%Kx74W^QkK=w%}T^E3NDI8r6s!X3Ir{A*r#$f4r9=P^>kuNzFA z?=vZJAiPkN!(1G;s;-a}V3J%mtY(!asOtYG@}`H7vY9V(=l=%^kfw%S^oHhN%a>wg zd1eev?A{Q!7Y)7G(%tbTysQFL%knfYl49Fs(=){-vSQmaL(ZVBUKD6>3=L7D9?)d- zm*|H1Z+y=Z?_mEMO`_Yt&!OU%%ir<)$q&VQcmdU_|5%%Qf=c?GOb2C2JhZVf{zW7! zT(CbNPGh3IlKsGU%(7Arw8m0+>?v$1v@IkA3jY@O~rdj zBJMTa6OZrztikHjN7N z*SsNsDkX#@*I;h`+*52_Rr+r{75~M5xPM6(jPhmjKd#7z`AP=yjII+_+kV+xP5bny zz&rtsyZl>Z=wM`rjlO>di(4tt zr{ur!(xFkjN(os5VCIIh5uj!kZ)e`ZHH3qM1VdxILc3lIby~_926D<4UJ5pGK35Cz zSD0-t&M8KOc={f6I2B`CY6Xxh#c!b47Qsp{F#D6L+EIPMu*vDBw^y^q>aQ5Zi}LN( z5`@*n-a|M$;r=Q|{W=T9FDZEewZPQ5bQno#7v&2VhN#tgi=#mn5L6)h z29^27E&1C_QOUd(V4Yi*OFn+%#w=EoJKK1y1udv*VHAasRBz@5J6Dp79o3+?mMr3G zOwX9AmW;`2`$>$n%8=|e{uFQeAt6?3r;7SYq||Sa;#9w~E$W=-)ogLMR!$(BS0TSO zJpRFh?hVlViv-Pu6x~A~rJL#GwPhq=c3S>jlhX2^=QHWz3?4r(vD$Bo&8|;|IO*z+ zS|wZwsvch&#qn|WZBcCf4H03P42P~0(9~_nF}ynie1z~};iLYXD7mUTF;jJ(g6?Vv z>zq#a86-n^`V;fmqbBu?@O{6M@vDcmIpI12IoylhYAb5~iS}+56m$nwa+t|ga(j^C z)ew~1dXz;}8C%$dDsNv# zlM*$VfRs( zw7Z~mDLd3JDmu{h&$aFW1m#u}ZyHrR;GpPJYY48spmO)BgxX6DlX0%dHAw`E7IkHe z6;4_pylWU!U&^A=2B!@bn>iV-t0fPR)QmRQ7bfO4qT({_N(^i@M?92nfTp8diD9pw zq|d@5SV+0!pY3MEjj&N%S?%au8?W15f2`s7uK*`w}WGrxjsu%N1D`01voE;%$uB z)4O`A;m&hXiJ5^mI3Yu>*ta~!yFzf+PxuvB^KMhZ_oGJ2M$lyqvM6>MlMThw9CFDi z`-Z@`h%y+cbO*o1jc~%6Q8MI>2%w#7N7zeqMIM$RZh$7VBARu0lbTz(u?Ssdr1~04 z)BENcf}10_*g=(Z3oSY9h@sL5ZeBYbP|)s@+?1S57@o1bynu@%pYu#)jJdV>E ze++vw#>P1>Hqwi3Ub`f(GL-&|a0ET)nT(0vIB8InV<*y8`HF{wH}YIIrbZawb3$$N zqaszdYM)WgG(jCVU=vNu>_E#G9J`2To`JgMo~_{E&U0qph(ao_Y-#}}Azcy|U5gY@ z8M8NM(~RWNg%>0IUR~3S?C{1Gj#M$DYe1NXH=-Rc$}uA^SnN`3K~KCpn>*^c!1m81 z96m3B#u)>=+9iV|JU~!d4K5xCCrIFm{)5*|&-~0f-zBCE*gFT}E->1_k*4RIAC1_- zkuEBm!k-}XeY!_ug>Bd!?&C7#Ps|8iEi8hCkx) z&QfD8nMs3DGkm0=jHym0cT7i%URF810mZU0mveMBS-)6~9zMnF&*?FWWyCH_UVNk| ztBhriRs*{Rk#-T`^D68CuxrZj9nGKZ8K@R?Ykm(0+w_wLM-vv%fBioT&*Qq7E_idq zYl>_yr)~llpT()bVsuQ~QZ#bv25tg!Cp}@Kl(YyMrl&XCwPwz@zgKAb1TCWSO>IjW z$nmF%?O3(CH5$}7)ru_3b%e%jKL4y?j?*NIw2b;r#W~Fpu(or&vO2ozvb&IeGPdK_ zdHMkSI1M;`=(xSn=zpsO%LUPkZ~!9B?5dBtonHm62$^%X+Na<}Nhg$efwZ^#t2xmP zB@(Hs74Tdu8A)Z>vNTH*>#=pz!AA!v2pFgiUZz}wrRAvZ=GfR;GmLXEliveIJj%5b zf+U!|@@wCJW63F=nW`UZfdG^`$CA%G7vahW@XW$64euf@uxdRMqaxxLNfbjFy1#4y_H;m zwS;MzRzF4meHem|d2P(-;m$(Ih_mdWtGC)$dil6&JJPbSweJ`xB}Df5Z&0q@50G(S5A$3f+^NO5sjDgMd zeFU^UH?GpiFow*t%;Z**t_59qX%Xs>WKMAFhj)bydS`KYf$cUF6jdnA-AH|{Ko-9F zQWxuGIn3eh#iu`?DnbZ8qD|r-82lbdL}P;oH6vf$Y}`A`p|u4sGWKm@q;6WE@Sk#nJGCL z*Xw;27)iHYz3-2OXZ!t0jihR6OPz=8Q-s$WV>r>oMub@}tuI}rcnu6{YC^@Pakc9H zV24fV2?E)Gr55%mi(@aPgxp8uT2TKMmYaqi%{#|eI$OzDjmhGU=PF>-IzYm^_zsaJ z<}l}ej;OmWZ_W2$0DQ5Ny}Zo_|7>r8cHN#Zx1w?T$NZG0DSnN;(YceXqVr~?gXJ?R zg`mE>^Pi{v&Vb!Bc0!To$Lj`w%uDROkL7KzerCLJv+KG0DQ2h5Z{OLc=fiycT;-ci zk)PEcpY1=#>q445SQlQTS^&$Im#w&xxrd9cf%7&(lfavW;)-5HKMV@9s6(#~KQGfi zpIED91NWg<3JY%tUv9N1R)&=Y3hR(sI4_EL-Cg28D6H!J*nzAUJGKS#*4u9k)kOV- zck3-N57-$20=0B*J{KCFdYf0UKOas(KHqhA3QbozK;HbZ5wtU|-vs8^dE@!6A3eLX zj!-5eOL;!;==?&*O!GK~?A^Bv1Rz-fz`As0zUgBBJhL6ay;l}vbz|DZz44jznXQ3U8v6Q8kHb$s@oxfW1MZEylOINx(*iqL2*@Tx4*`huLwfD*@6PX^Gp65( zKDi8Ag0tZXdQk%sR2|NGn8GPW=`{ugq;_xudDpoR44J-3t{ZWR#s3lhRQLLq1tZVd zH>p!v*N``~wGncpU@uT~qz9J1M8UHPjfP2a%#a(1CE}aP2Rbm9+?!Wg-}GNTb7pT1 ze|Z6+EHgS3yKn%Db%4HyGmr@XSa zKb2LdJ?-sv61!L-A7FyVX<>sxCn`YAQGfIi4&8Xcb9j~17X+YPwVM{aELlrW(Ilfn zXEkqF;=^K1RU=j|pFEV;l{9*{56Yid5!efk*35Aj9?O6`OU6#+ev|m@osD4uwa?Pw zck7<&EiEY{$L1(&GF!(|zmg!WPZ%3zS@KRhbkKV$kk2&oI=Nn*ZXO|Ep5+s`uZl5I zB=xM(MWrQuO0$e$U%isNBpGX7RPwbqoY~qY^5)V2yP?zO2M~kT=-qtGYmm9bAjJ2? zWMtgen{NR{BCd|<7()rVo}MqKHL)848fRaX=XrM`7xyc*IB zdMVX-Bb!o^?uXT1MIRGb;VVVpom>%r*P_L(7ojx+BDSj;Yl=xtbeRwM0PW`(@*?03 z>6gCGQx2;#rCh`08Nbt=tn3JRIW^-G21A>eV`FNV*sA8j$6%aV<%`r%#K!4sd}kt} zRoAQf`m(vufehugl8Jhuhnb@|N81aj(&#r!eXwR@szd!tN zD{a$sbaY$Q6@KNe+1C;-?-+&tca~ma=k06)w*-Q_1$TFs;O=mO6Wk@pgb-YUy9aj&cF^GNZU=V>P7eB#>wfC1 z@5h>{>FV9RdhNBVrfP4Ns$?z8V^sV>fr)wp0|T3f5sFfa!SaTdotKN}0{*RkCk*@) z!iKb^+h=P>X(w|J2TMnHK9~zses)eizJ#YY_{4m?+`P@epDnwIYFpB=5;s02AU z`1u6**@M^+LfH^tUjg?D_*cAn#lINhE0A7+{0fv;puPg_73iIS*87Pd&5dcr@+W**P@WPTlLfl-u3p5TC_<9Q{rx!6fLD zeZ8|PaJTAqb_*diTgHU>1Xl)%jzz!6`x^6o6;Nn%2y0SQpo;N7iec!T((ux^Fcbcu zZSZ!N>N>4jDam|KS|W@c1;;0>SD{wP7S+SD>4G0UR1{=!Lvk@eWIMYsG$^yc0_=@2_))*uhck~MQ6-e|?RaaV#m2)R+ zpT5GXP-^+E!S+ykReM(3*4*bel?bTE&?&HIl4sH5nff6VeJ=tHhHqk<=EqLLs2bt@ zp`mDj)D;=ueC;_hk?xD*ypsmMk^S1GzxhqB|1CVV1|g%CJ{@CXop(cwnL4gGT>zk0 z&(7&VlgSB3m|dj(K4MdWYiw^5`5~OznKJu`g;SFWw%fa+v;}sCNbVfY2)RZYR^+@; zI{aN8cv!>RGddg#LS;Vpb#N!ZELdZgc9IrGKNyuZybO!AcQpC;-p^j_aND%s8o^3b zcxmy4ah&1kp{($Qlggj8-cQy3oFfMY#1(ZvQjsyg568is3?#0Aqf-eZ8Td{m#UK1V zB6V-4@NFJ;w54(!6KhP2x&lXV_cvy$e(i7^9P-;Rig#$TBl0|NB*E;G%#?VXMeJXF zN+LwGU2+-WOCzYY2`%yse)F#ah&vo= z7m1q}!hy|S7StKe%n(TIwT}YK7>?|XlI<&&J$vI^N`;XYrJf~)F?;gTilvk7BWT!Y zWc5VwAieSG1o>DW%BtcN!lUIvnyB7?ypcYnOJsZq*LnaocQV7xU*X7pDvKixHz!~d z|Iq!3?~9^LZ}Ltkttqy-wgu`gAa6Fg*)K@+Y>i$asKBhzUy>|>IM6GPTl-eGJLWbv zqGA)5kX3~`M2_Ai?rn6pKjvAAvm*|goN);xi-%8F^T@M&8D{ioGAXF?G)fHaYwqQlWf~ywQ@^KL_@Qt} zRG3^Lwn8*kaHmL(!#U-EskcfrB=!U3%JHluhMnYR3yA2-4!)tSbB4j#ed@F%dW>Wy@s9nR>Lzd#8`Es>02} zZ3i&><9jF3F~8}RQRt+8C+E{MtsqMHE=^^kt$`{a(P0x%Ae~JAO%a#OwoIh2m=T-C zAsovk{2eEyiAdpJppITN&%F7)rWxu1al(gimo(eB#%V36^iPdAHL3)&Cp*Cz<+y_E zsky-g3~MIaRUQ@%Yj=#=j54L4E@l&ZoVPZbO>u3^70+qJhz+4x4vd=IL6}oP%)=hY7q%$dG@z?Er;4Yt6Wt-22 z_%2_h6B%=}y56)_18%wCP(^yYv{-Xj?RQG#%?}Fps>)g`W*WIhJong2VTveR{K1xS zu6Cr9Z$Fns0zsP}k+ZGY>+jTJWKq54jTPEPOqzwrTG!Vr4=$5^qB$|m;l)?O&B~P_ zc2Y$a%$X178LJ1z5QLZcr6-iQYsab23tHw9Hy^6ywXw|D#d?s7)vny~qg8ux$yx~TEO zX1rIKy)MLI3XRBNACQvx_Kl%6I}_NroiH$*NIa%{abJJBy8n73Mw+&=?N_Yy@!x9fF5gZ`$f4oUY@Ct-%*a_%$(U1!0_Rl$x#U}RKzLF>hk--;azNN-&4jCWoC zFU=>N1b<4Lm5xOH`{vWXjkzyPl&#jpBCU~y_^IA_PRE%o(48=`5EanObJAAZaUeC| zHhepVvCc63d*s*f+5H6Av*$u`yCYD}*wHJ)y{>v;{@cS<&xao@Jc`Yhw{vjBUEMpd zV#~7J3VM)5m#6jH3kV2NxVEKEz&*jtZfSeWt_fTn&6IJ}A+>6D)=oUZ_vkn0kRbGI z7$v1KIK$LA;=AX0ZrDM6ec+z? zv3rHi8(q`09k75sXI{$22{O(hayr+y?a)=1{Jlj>oW7iMll?NG zW(ayvcd07k7>qifBd|mAm;XdIV`9EKEk73Za#dJ?h#bY!f9ZawvDfl9m|p@I#>epW zIT$F#*TqG`ZJiKQhkT&etUe&Qs@c^%6>ObQHeSvjYmN+N-N#Z`)$D$3yuDd@n7%OC zC>I%W;MKmlge(=i&s;_Jb(hbN(?$Ncc(kG;@CDU!jIMdGJ$N3~Z;mf98IokP#5|dw z96W-Qryq^?Ru5-huT5ASkRf$?TYWiK^%g0onxT`%iV-4BQ}WsN0v2* zfzeXyjpn-cnsAD-h_OCI)Cvj@-B@y5>9gZii4{J+TXjBJ#$PBGj`+6k$23+qT0|^Vtv@p@JwF^^rzI1Ud%gFj^O{(Z8Y4M4NzPqBw?5A! z=7m?NQ(z`0v}u`>`_p||(yz>>RWRjeaI1#Pb;riz=-GG`XbVWG2F~pNLQn7lvgSq3 zaZU_>u^5}}x*QiyHN-2+6G%0QP6Z8G_so}9V; ztJn4+M|*es;S{i0Ivan1YXLhA@in`Z8ZIu#-O@eok9*>$tiGV>U)JZ}h$ciNH6@ti z29~#i2e29ltWG&@y-ObcPCbM1JsY7Avx6M*;|5P3FiO3a@|Lick6zxxxccJ%wA zm+j8ZPqt^dCu^QaZ8_O>94m)yPPcBFp`(A@4i^;PuqMj}fNq3z;=rC)@$Y{QoC-PG z9)i0#6#(~7Dt)V=VoK-Zf8HLtZ9sd@e+qqh-@aU5J_ku^zA_0m9SXvCvyU*t-TVQU z;p@n8lHt0w^u0`YL>&wWgAWXv>z)cAN%^0y)`f1HA2>&?cYCcK0I2yAS%wpd+|x<& zLFe{(%LrGWm~k1=@=G;F>)FG;KuG1S|jyuaDX;?w}G2%fQCueEd0XRqtCXkKfaSMwln>NW$kIuNd-?38G`Vd@JPeX#ad#9iH^wbEkMrXS2N|a z_Z))~*x3jV$Kz(;wQafsroVqAj$vI-Um0L3o|;t64>$ogxePwqO)!z8 zS&6x2HTUf<{JJya?bCnHjFBno2y7Nx-9=BoK>s|e>((J0w_^JF;Es;R+jqF#Hz|Pa ztZZi+R0pn9NPtvoI%JTyHvL`mR(XpO~rnFjEYCot6bP zXga(E+TD&uIeN@9P%w=@XG7&mEAd6gw(N3hKRo*+c}CzQonmn6B))VATV^;(XxP5U zl8XImb@3X&&h^G_Huq1t;Rwy*3{X83;%9ov-7jNYCof*(KU(oT&jDC_vfm@@G-LU@ z@-(U%q}>%#rb)1V!$s@t5Drk-$G7T~(d8y}?e}mY4SDH?tlVb_+X!uJWgxU5F7BzoLMaDW*(MFL)!UP^0 z9e0wP02hKFFE7Jp07#j+9>g(u=hEk2M{VV^o3z&H(NNv~ z20I-+X)RU2mp2>uMYDiULh$ex!@d1CzZEq_Q4i*G!Ak0K^BHID|w4b>TNKG7DhP~Sy9y@(=2K$?Bkdv6#|#0VO9G1 zcJuUSF$Y{xS)rmmUUXXPh=(k3l^nxC_M!FEZbwn>hKah$`;8Lt%9tvKxdD$3QSn6| z9#Ez~4j9LtL;x0iG_BN2@I%@1w~}>y@&2(Vku>B(0rIzUt}yYQ^2^kRUw6c5NaIMp z7vRJP#gTlwwE1zZ8iy&ABX}sJ;f|9?_rrCKz=M;dB2S)92#gkQ9Cs38;YH(1v4k^6 z9&&9`;v|&kIf$@eNIK$fK5N}yGU2|o#;LX<;cr5{<_Q3{ORz*hQ^QG=%?Xj_mfg3< zz(eCqk0l})<(z06KO)Y0uKdN)y?WN4AKp_Rd5Fe8#h&~)AtfO(IlMF2 zdBag0ot&#x*?YS4du9@J6Og2o`=WnY52gljHXLA*htEtLLS+9Y4(npGSwnaU z(ei-JvrB;;x553`mjEjAt#rAeeAYqo|I!*LJIOw3j=LYR8^@Dhx&Ys+9Hc@#WtEcA zR<@BZrUjZ;r#8l75I6jVi4KsD*2VrkPsuU(U#kHFgP{PhuU=Pzc9|9U;qqfU?+)L5 z_)(YpB4aTo?HYDzH8F^H0J(7j2*1b`im};|U&v;V65_%WNc~mQ@X2%~D){svV6<$3 zI?hET%Zs=>E({PFZi~)^jQm6o^*ir)<(l>%S1;J~LAo10sSc4)zu%NOQlcBN6O%k9Zm5*gvTMMt2H%6#Y*aOz2lB(N}#WTm~0R2Pkv!pzMNVw2>_o z>lijvIkW5N&^7)YcueU3CEtJB0%EIsVx&Y_E={?G74SSHI)o;rMN7HFpO2+fUU0ep zuON#U$^YpI61v><9R5#sUl`?`g!_!OU9XK;tbh6-{YyGVi;(KT6vBko4~7b%{f{Kd zKavfUIXzsV`%S^t$*Qpg4P%s`kz^@R;NM`KffVFt^#ALR|G)mCOpkbYct@)@{Ew3> z?V69yVtqYNzP>ldKc&g;G=)hn*EM%~j3fRN3;!RHFAjs&z5~YE+I^JdZ3sKR{8!;@ z0(e7(1f9LWNBI9#1c5*_l&F*;CUnDJM$`!Pe+;qyF?8#!1qtyUp48VasRfvKJ~m)d-%cP# zJ-YHfN#6DSxR(~aBYsedn|SK)AbVX;PI|dn|3ByW|8q{(zinEU`1=-!6Wcuk-#3pe z*jzbKtp`dy8;S>vogc0QDM=W2%&#P2LZcj5^cH!|O-Eh_s~!y1%=~ZYJNQ?Jcwj=E z$e|Un(svt6&DoEBHb9VdzLCiD-(<>vLSdR;D+*xP>&I*b*A z`}Y>J+L>v1$^&LPUMK$<{v;(Wx)xU^8ixgu+c`!qYl(WeCyOQx^?R*A0A;uRujP{H zA{N{~Ti;8H5??H?THZ^zt0pG%Hat@r2d+!F8a1v@xK+$6NLW`%sEyZ0)( z_C|ZJN&2ttZ}Q-3y4bg+0wC9a$VJ!hb5aQ?$;a`@CZiue<%audSl|D+mW27&bK^-) zlu2vGpLG4N$a6XJztBHxmd9f4BVx@?7>kB`V?(JW+NnFO05=`FvWJ)EyIP9Q%#Y_J zmp6;;p@VGJf-vM1mxRhTT$42c$?5-gYfa(_Z7}reE7B1XlxFMW4glNS`dawkfqUeW z7WGP*cs-{b}*@5Wib+z$Me3!aUg=z9fZVX+AOtPlN%QMp^=TA^v%trfuKD}BySG^nQ=c? zJ(@KqGJ$gb&)>%*Hrzopz1+|J2j_grft@IVLN&$XOJpN8=34~I9~%VK_LmgjVnC6up!Cj%ekWi^NM9MI#lQuUh?;H0D-+)*ixh=o` zGJQq-()M5SJbCsO_oeLx5OYOU{VOYUEb#dvVt&|;%!XjwQeV-8=4G%A^|c3!?NFrf zM4Zo<6NQidT)b|DjtSapc>c?!0kW1?1d)$^`*z#lvHcweaW2p{_<+P&Et6{+rK>37 z!-6;m=oju;Vi5IvH^AKwDCQ?EV82o+_h9kqv)gT`f8}imD4J+gwxJTsn>g4GDHbIy z)FH;}t{7a#+wE%4zH-%7G(j=&VR`NDFWIIGGiFT%q9Q$GIESKQ&ORpRb0QQnqb9{o zm}CFj4Z@-K3R&`6$q^Pr@d@<2oLanT8X1LBzU^K3-5885GpmdqBhJLG5W{S7e4~H8xw`IoSp2CX9-GMnLSi0El(8HWPUpfK|jDZ8|HW=46vDHo`G{EHTyvT7EBfro-x*5@xr%(G>` zVCRM=HLc@xvZ71Il|(%7?Bqx6(p-o@&%8$MmV98HgmwDJ;QEbRR7$ zpGos}f=vg6RuxL&Cz@Wc!kBL6FrQ#xV4Aohanxaf8>IjLEoh%Emh<~L!u1{OL0T^` z2@2&~3It~9;c%JQGI}rx4LH_&2mvMTy`R^EtBto>WOhINnu%8bYC4`~$%Pa6z8T&u$f^d7 zupYNxzs0vJHDnB_z>0jCOFm9teS22KJi~C1{gYr`6uw}|kOM1MEyQn89sB`nF}`d} zp;(+V6rGo*K!Y35N%J-y)-N2>JBYX@6FfA!Z==Pt64k2^`Wnwc-VG4I29Jq-dr#Y& zJYHXK9&6=MSYl7t=uPiTq0N6{TpV?{E_@rKiGf%Q`q zBJ&Ik1tEGx5x4efDo>39ai3GE4X#ZJ(f7gvCirb4j!iEv-lot|^uxwU$z(e(rTt51C%M zk0$6tuPmfSHfYdM7insj8O4*LX&Pp0m#34u-&)chDjcHdWX%AzM{I>QlG*fPuJA;_Q3ZT+crOY93U z6W3DQ-}ei&#c z20fUYj~pFz%|Ifa@B73QGpqef{U5Vp!X;)e3*D?^$PGR2yMulJESxtht<}(h6!NLfC1TZP*#-1werJl-ELfii+@*zw5BK*VGK~ ze7|e$CHKc9{Y3O(b62F(*M4qxC1v2+$=b|8Q`P@?$`*Pu+OG$my&uXM{&504cz2&;<4yCp z?Qvp(cCO1KlsF7MZXNafwXE%u;qfc`+*!Ztl*}=Kzv``X;n)51izJeX-R4YlyKzBc zHXCB=i}L1cSN$s?7G;s` zQ*vl9UQPOMSCavptoGyv{g30vI_WJwewlM`ZV)n4cy%w{M6^ILTV#>ezQL`<3RvS{ zwN*rjy#Y&w=*#&wbA@CGnEbvlV@+`eYyD<13Wyl7{N@k-s*9}OuE1C^U5wBcFJ{;} z0w}C9GOTQx#25-RKAMcV5Dt_hJXjYzo;~sh&~`b=oxb#|T03~6mk$sbKAvErfWfkZ zrv|W~kzH%B(ZB$oiy!G-g9@Yl-VJp1DSZ>e2=IRg5fkwt>$yu5xH7@_)_4avA-4@v zwYeJlfs1nVruKSoap6mliO&cfS3{D%Y-q0Xer~=#NWToKXbln zb{8mSWHoz8QVrAW^W37eiN7-`-d-JF4M-8)PfkrC{2~B7q^D#v?#^^;ev%!!{nA|e zTRq4J-N|)w?IgEVW|*hvZBK?V4YR=)HT|_0u9CCqpq6?c&({y!Z-RTg^wlFkW0mJn zxr?LS0N0={+yV%$squ}Y6v~RTF3PHD%KqNI@#Sr^0O)XF_ z*4Z|izaqV9GydI#;vM=Gsj%DWHtUM&8ZvZO* diff --git a/.vuepress/theme/components/Page.vue b/.vuepress/theme/components/Page.vue index 901bedd..ecc995c 100644 --- a/.vuepress/theme/components/Page.vue +++ b/.vuepress/theme/components/Page.vue @@ -24,24 +24,24 @@ -

QQ群(免费)

+

QQ群(免费)

808894550
-

- Kubernetes教程:QQ群在线答疑 +

+ Kubernetes教程:QQ群在线答疑

-

微信群(即时)

+

微信群(即时)

扫第一个二维码完成打赏,扫第二个加微信进群聊(请发送打赏截图) -

- - +

+ +

diff --git a/install/history-k8s/install-kubernetes-1.15.3.md b/install/history-k8s/install-kubernetes-1.15.3.md new file mode 100644 index 0000000..56bb73d --- /dev/null +++ b/install/history-k8s/install-kubernetes-1.15.3.md @@ -0,0 +1,507 @@ +--- +vssueId: 16 +description: Kubernete安装文档_使用kubeadm安装高可用的Kubernetes_v1.15.3集群_可用于生产环境 +meta: + - name: keywords + content: Kubernetes集群,Kubernetes高可用,Kubernetes生产环境 +# storyBook: +# title: '使用 kubeadm 安装 kubernetes v1.15.3(高可用)' +# initial: FullPage +# pages: +# - name: overview +# title: 配置要求 +# - name: step1 +# title: 检查环境 +# - name: step2 +# title: 安装 docker/kubelet +# - name: step3 +# title: 初始化 apiserver 集群 +# - name: step4 +# title: 初始化 worker 节点 +# - name: step5 +# title: 安装 Ingress Controller +# - name: step6 +# title: 总结 +--- + +# 安装Kubernetes高可用 + + + + + +::: tip +推荐初学者按照 [安装Kubernetes 单Master节点](install-k8s.html) 文档进行 Kubernetes 集群搭建 +::: + +## 介绍 + +kubernetes 安装有多种选择,本文档描述的集群安装具备如下特点: + +* Kubernetes 1.15.3 + * calico 3.8.2 + * nginx-ingress 1.5.3 +* Docker 18.09.7 +* 三个 master 组成主节点集群,通过内网 loader balancer 实现负载均衡;至少需要三个 master 节点才可组成高可用集群,否则会出现 ***脑裂*** 现象 +* 多个 worker 组成工作节点集群,通过外网 loader balancer 实现负载均衡 + +安装后的拓扑图如下:下载拓扑图源文件 使用Axure RP 9.0可打开该文件 + +![Kubernetes安装:拓扑结构](/images/topology/kubernetes.png) + +* **在线答疑** + + 也可以扫描二维码加群 +

+ Kubernetes教程:QQ群在线答疑 +

+ + + + + +## 检查 centos / hostname + +``` sh +# 在 master 节点和 worker 节点都要执行 +cat /etc/redhat-release + +# 此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字 +hostname +``` + +**操作系统兼容性** + +| CentOS 版本 | 本文档是否兼容 | 备注 | +| ----------- | --------------------------------------- | ----------------------------------- | +| 7.7 | 😄 | 已验证 | +| 7.6 | 😄 | 已验证 | +| 7.5 | 😄 | 已验证 | +| 7.4 | 🤔 | 待验证 | +| 7.3 | 🤔 | 待验证 | +| 7.2 | 😞 | 已证实会出现 kubelet 无法启动的问题 | + +::: tip 修改 hostname +如果您需要修改 hostname,可执行如下指令: +``` sh +# 修改 hostname +hostnamectl set-hostname your-new-host-name +# 查看修改结果 +hostnamectl status +``` +::: + + + +## 安装 docker / kubelet + +使用 root 身份在所有节点执行如下代码,以安装软件: +- docker +- nfs-utils +- kubectl / kubeadm / kubelet + + + + +``` sh +# 在 master 节点和 worker 节点都要执行 + +curl -sSL https://kuboard.cn/install-script/v1.15.3/install_kubelet.sh | sh + +``` + + + + +手动执行以下代码,效果与快速安装完全相同。 + +<<< @/.vuepress/public/install-script/v1.15.3/install_kubelet.sh + +::: warning +如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作,kubelet 才能正常启动 +::: + + + + + + +## 初始化API Server + +### 创建 ApiServer 的 Load Balancer(私网) + +监听端口:6443 / TCP + +后端资源组:包含 demo-master-a-1, demo-master-b-1, demo-master-b-2 + +后端端口:6443 + +开启 按源地址保持会话 + +假设完成创建以后,Load Balancer的 ip 地址为 x.x.x.x + +### 初始化第一个master节点 + + +::: tip +* 以 root 身份在 demo-master-a-1 机器上执行 +* 初始化 master 节点时,如果因为中间某些步骤的配置出错,想要重新初始化 master 节点,请先执行 `kubeadm reset` 操作 +::: + +::: danger 关于初始化时用到的环境变量 +* **APISERVER_NAME** 不能是 master 的 hostname +* **APISERVER_NAME** 必须全为小写字母、数字、小数点,不能包含减号 +* **POD_SUBNET** 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 CIDR 值,如果您对 CIDR 这个概念还不熟悉,请不要修改这个字段的取值 10.100.0.1/16 +::: + + + + +在第一个 master 节点 demo-master-a-1 上执行 + +``` sh +# 只在 master 节点执行 +# 替换 apiserver.demo 为 您想要的 dnsName +export APISERVER_NAME=apiserver.demo +# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中 +export POD_SUBNET=10.100.0.1/16 +echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts +curl -sSL https://kuboard.cn/install-script/v1.15.3/init_master.sh | sh +``` + + + + +``` sh +# 只在 master 节点执行 +# 替换 apiserver.demo 为 您想要的 dnsName +export APISERVER_NAME=apiserver.demo +# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中 +export POD_SUBNET=10.100.0.1/16 +echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts +``` + +<<< @/.vuepress/public/install-script/v1.15.3/init_master.sh + + + + +***执行结果*** + +执行结果中: +* 第15、16、17行,用于初始化第二、三个 master 节点 +* 第25、26行,用于初始化 worker 节点 + +``` sh {15,16,17,25,26} +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +You can now join any number of the control-plane node running the following command on each as root: + + kubeadm join apiserver.k8s:6443 --token 4z3r2v.2p43g28ons3b475v \ + --discovery-token-ca-cert-hash sha256:959569cbaaf0cf3fad744f8bd8b798ea9e11eb1e568c15825355879cf4cdc5d6 \ + --control-plane --certificate-key 41a741533a038a936759aff43b5680f0e8c41375614a873ea49fde8944614dd6 + +Please note that the certificate-key gives access to cluster sensitive data, keep it secret! +As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use +"kubeadm init phase upload-certs --upload-certs" to reload certs afterward. + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join apiserver.k8s:6443 --token 4z3r2v.2p43g28ons3b475v \ + --discovery-token-ca-cert-hash sha256:959569cbaaf0cf3fad744f8bd8b798ea9e11eb1e568c15825355879cf4cdc5d6 + +``` + +**检查 master 初始化结果** + +``` sh +# 只在第一个 master 节点执行 + +# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态 +watch kubectl get pod -n kube-system -o wide + +# 查看 master 节点初始化结果 +kubectl get nodes +``` + +### 初始化第二、三个master节点 + +**获得 master 节点的 join 命令** + + + + + +初始化第一个 master 节点时的输出内容中,第15、16、17行就是用来初始化第二、三个 master 节点的命令,如下所示:此时请不要执行该命令 + +``` sh + kubeadm join apiserver.k8s:6443 --token 4z3r2v.2p43g28ons3b475v \ + --discovery-token-ca-cert-hash sha256:959569cbaaf0cf3fad744f8bd8b798ea9e11eb1e568c15825355879cf4cdc5d6 \ + --control-plane --certificate-key 41a741533a038a936759aff43b5680f0e8c41375614a873ea49fde8944614dd6 +``` + + + + +**获得 certificate key** + +在 demo-master-a-1 上执行 + +```sh +# 只在 第一个 master 节点 demo-master-a-1 上执行 +kubeadm init phase upload-certs --upload-certs +``` + +输出结果如下: + +``` sh {6} +[root@demo-master-a-1 ~]# kubeadm init phase upload-certs --upload-certs +W0902 09:05:28.355623 1046 version.go:98] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get https://dl.k8s.io/release/stable-1.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) +W0902 09:05:28.355718 1046 version.go:99] falling back to the local client version: v1.15.3 +[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace +[upload-certs] Using certificate key: +70eb87e62f052d2d5de759969d5b42f372d0ad798f98df38f7fe73efdf63a13c +``` + +**获得 join 命令** + +在 demo-master-a-1 上执行 +``` sh +# 只在 第一个 master 节点 demo-master-a-1 上执行 +kubeadm token create --print-join-command +``` + +输出结果如下: +``` sh {2} +[root@demo-master-a-1 ~]# kubeadm token create --print-join-command +kubeadm join apiserver.demo:6443 --token bl80xo.hfewon9l5jlpmjft --discovery-token-ca-cert-hash sha256:b4d2bed371fe4603b83e7504051dcfcdebcbdcacd8be27884223c4ccc13059a4 +``` + +则,第二、三个 master 节点的 join 命令如下: + +* 命令行中,蓝色部分来自于前面获得的 join 命令,红色部分来自于前面获得的 certificate key + +
+kubeadm join apiserver.demo:6443 --token ejwx62.vqwog6il5p83uk7y \
+--discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
\
+--control-plane --certificate-key 70eb87e62f052d2d5de759969d5b42f372d0ad798f98df38f7fe73efdf63a13c +
+ +
+
+ +**初始化第二、三个 master 节点** + +在 demo-master-b-1 和 demo-master-b-2 机器上执行 + +``` sh +# 只在第二、三个 master 节点 demo-master-b-1 和 demo-master-b-2 执行 +# 替换 x.x.x.x 为 ApiServer LoadBalancer 的 IP 地址 +export APISERVER_IP=x.x.x.x +# 替换 apiserver.demo 为 前面已经使用的 dnsName +export APISERVER_NAME=apiserver.demo +echo "${APISERVER_IP} ${APISERVER_NAME}" >> /etc/hosts +# 使用前面步骤中获得的第二、三个 master 节点的 join 命令 +kubeadm join apiserver.demo:6443 --token ejwx62.vqwog6il5p83uk7y \ +--discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303 \ +--control-plane --certificate-key 70eb87e62f052d2d5de759969d5b42f372d0ad798f98df38f7fe73efdf63a13c +``` + +**检查 master 初始化结果** + +``` sh +# 只在第一个 master 节点 demo-master-a-1 执行 +# 查看 master 节点初始化结果 +kubectl get nodes +``` + + + +## 初始化 worker节点 + +### 获得 join命令参数 + + + + +初始化第一个 master 节点时的输出内容中,第25、26行就是用来初始化 worker 节点的命令,如下所示:此时请不要执行该命令 + +``` sh + kubeadm join apiserver.k8s:6443 --token 4z3r2v.2p43g28ons3b475v \ + --discovery-token-ca-cert-hash sha256:959569cbaaf0cf3fad744f8bd8b798ea9e11eb1e568c15825355879cf4cdc5d6 +``` + + + + +**在第一个 master 节点 demo-master-a-1 节点执行** + +```bash +# 只在第一个 master 节点 demo-master-a-1 上执行 +kubeadm token create --print-join-command +``` + +可获取kubeadm join 命令及参数,如下所示 + +```bash +kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303 +``` + + + + +### 初始化worker + +**针对所有的 worker 节点执行** + +```sh +# 只在 worker 节点执行 +# 替换 ${APISERVER_IP} 为 ApiServer LoadBalancer 的 IP 地址 +# 替换 ${APISERVER_NAME} 为 前面已经使用的 dnsName +echo "${APISERVER_IP} ${APISERVER_NAME}" >> /etc/hosts + +# 替换为前面 kubeadm token create --print-join-command 的输出结果 +kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303 +``` + +### 检查 worker 初始化结果 + +在第一个master节点 demo-master-a-1 上执行 + +```sh +# 只在第一个 master 节点 demo-master-a-1 上执行 +kubectl get nodes +``` + + + +## 移除 worker 节点 + +::: warning +正常情况下,您无需移除 worker 节点 +::: + +在准备移除的 worker 节点上执行 + +```sh +kubeadm reset +``` + +在第一个 master 节点 demo-master-a-1 上执行 + +```sh +kubectl delete node demo-worker-x-x +``` + +> * 将 demo-worker-x-x 替换为要移除的 worker 节点的名字 +> * worker 节点的名字可以通过在第一个 master 节点 demo-master-a-1 上执行 kubectl get nodes 命令获得 + + + +## 安装 Ingress Controller + +> Ingress官方文档:https://kubernetes.io/docs/concepts/services-networking/ingress/ +> +> Ingress Controllers官网介绍:https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/ +> +> 本文中使用如下部署方式:https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#using-a-self-provisioned-edge +> +> kubernetes支持多种Ingress Controllers (traefic / Kong / Istio / Nginx 等),本文推荐使用 https://github.com/nginxinc/kubernetes-ingress + + + + + +**在 master 节点上执行** + +``` sh +# 只在第一个 master 节点 demo-master-a-1 上执行 +kubectl apply -f https://kuboard.cn/install-script/v1.15.3/nginx-ingress.yaml +``` + + + + +<<< @/.vuepress/public/install-script/v1.15.3/nginx-ingress.yaml + + + + +::: warning +如果您打算将 Kubernetes 用于生产环境,请参考此文档 [Installing Ingress Controller](https://github.com/nginxinc/kubernetes-ingress/blob/v1.5.3/docs/installation.md),完善 Ingress 的配置 +::: + +### 在 IaaS 层完成如下配置(**公网Load Balancer**) + +创建负载均衡 Load Balancer: + +* 监听器 1:80 / TCP, SOURCE_ADDRESS 会话保持 +* 服务器资源池 1: demo-worker-x-x 的所有节点的 80端口 +* 监听器 2:443 / TCP, SOURCE_ADDRESS 会话保持 +* 服务器资源池 2: demo-worker-x-x 的所有节点的443端口 + +假设刚创建的负载均衡 Load Balancer 的 IP 地址为: z.z.z.z + + + +### 配置域名解析 + +将域名 *.demo.yourdomain.com 解析到地址负载均衡服务器 的 IP 地址 z.z.z.z + + + +### 验证配置 + +在浏览器访问 a.demo.yourdomain.com,将得到 404 NotFound 错误页面 + + + + +## 下一步 +:tada: :tada: :tada: + +您已经完成了 Kubernetes 集群的安装,下一步请: + +[安装 Kuboard](/install/install-dashboard.html) + +安装 Kuboard 之前先 + + 在线体验 Kuboard + + + diff --git a/install/install-k8s.md b/install/install-k8s.md index c9b945d..56fba7e 100644 --- a/install/install-k8s.md +++ b/install/install-k8s.md @@ -31,78 +31,6 @@ meta: - - @@ -122,7 +50,7 @@ export default { * **持续更新和完善** * 始终有最新的 Kubernetes 稳定版安装文档,当前版本 v1.16.1 - * 当前已更新了 60 次 , [查看更新历史](https://github.com/eip-work/kuboard-press/commits/master/install/install-k8s.md) + * 当前已更新了 61 次 , [查看更新历史](https://github.com/eip-work/kuboard-press/commits/master/install/install-k8s.md) * **在线答疑** @@ -165,7 +93,7 @@ export default { **安装后的软件版本为** * Kubernetes v1.16.1 - * calico 3.8.2 + * calico 3.9 * nginx-ingress 1.5.5 * Docker 18.09.7 @@ -184,7 +112,7 @@ export default {
-安装后的拓扑图如下:下载拓扑图源文件 使用Axure RP 9.0可打开该文件 +安装后的拓扑图如下:下载拓扑图源文件 使用Axure RP 9.0可打开该文件

Kubernetes安装:Kubernetes安装拓扑图 @@ -261,43 +189,7 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts ## 安装 docker / kubelet - -

- - - - -
- -::: danger 必须选中下面的四个勾选框才能继续 -* 选中后显示 **安装 docker/kubelet 的文档** - -
- - - -
  • 我的任意节点 centos 版本在兼容列表中
  • -
  • 我的任意节点 hostname 不是 localhost,且不包含下划线
  • -
  • 我的任意节点 CPU 内核数量大于等于 2
  • -
  • 我的任意节点不会直接使用 docker run 或 docker-compose 运行容器
  • -
  • 我的任意节点只有一块网卡(可以在完成K8S安装后再添加网卡)
  • -
    -
    -
    -
    -::: - -
    - -
    - - - -
    - -
    - -
    + 使用 root 身份在所有节点执行如下代码,以安装软件: - docker @@ -329,8 +221,7 @@ curl -sSL https://kuboard.cn/install-script/v1.16.1/install_kubelet.sh | sh -
    -
    + diff --git a/install/install-kubernetes.md b/install/install-kubernetes.md index 20b1cb9..f333d87 100644 --- a/install/install-kubernetes.md +++ b/install/install-kubernetes.md @@ -1,11 +1,11 @@ --- vssueId: 16 -description: Kubernete安装文档_使用kubeadm安装高可用的Kubernetes_v1.15.3集群_可用于生产环境 +description: Kubernete安装文档_使用kubeadm安装高可用的Kubernetes_v1.16.1集群_可用于生产环境 meta: - name: keywords content: Kubernetes集群,Kubernetes高可用,Kubernetes生产环境 # storyBook: -# title: '使用 kubeadm 安装 kubernetes v1.15.3(高可用)' +# title: '使用 kubeadm 安装 kubernetes v1.16.1(高可用)' # initial: FullPage # pages: # - name: overview @@ -26,7 +26,7 @@ meta: # 安装Kubernetes高可用 - + @@ -157,8 +160,9 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh 假设完成创建以后,Load Balancer的 ip 地址为 x.x.x.x -### 初始化第一个master节点 +> 根据每个人实际的情况不同,实现 LoadBalancer 的方式不一样,本文不详细阐述如何搭建 LoadBalancer,请读者自行解决 +### 初始化第一个master节点 ::: tip * 以 root 身份在 demo-master-a-1 机器上执行 @@ -177,20 +181,20 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh 在第一个 master 节点 demo-master-a-1 上执行 ``` sh -# 只在 master 节点执行 +# 只在第一个 master 节点执行 # 替换 apiserver.demo 为 您想要的 dnsName export APISERVER_NAME=apiserver.demo # Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中 export POD_SUBNET=10.100.0.1/16 echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts -curl -sSL https://kuboard.cn/install-script/v1.15.3/init-master.sh | sh +curl -sSL https://kuboard.cn/install-script/v1.16.1/init_master.sh | sh ``` ``` sh -# 只在 master 节点执行 +# 只在第一个 master 节点执行 # 替换 apiserver.demo 为 您想要的 dnsName export APISERVER_NAME=apiserver.demo # Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中 @@ -198,7 +202,7 @@ export POD_SUBNET=10.100.0.1/16 echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts ``` -<<< @/.vuepress/public/install-script/v1.15.3/init-master.sh +<<< @/.vuepress/public/install-script/v1.16.1/init_master.sh @@ -251,10 +255,18 @@ watch kubectl get pod -n kube-system -o wide kubectl get nodes ``` +::: danger +请等到所有容器组(大约9个)全部处于 Running 状态,才进行下一步 +::: + ### 初始化第二、三个master节点 **获得 master 节点的 join 命令** +> 可以和第一个Master节点一起初始化第二、三个Master节点,也可以从单Master节点调整过来,只需要 +> * 增加Master的 LoadBalancer +> * 将所有节点的 /etc/hosts 文件中 apiserver.demo 解析为 LoadBalancer 的地址 +> * 添加第二、三个Master节点 @@ -284,7 +296,7 @@ kubeadm init phase upload-certs --upload-certs ``` sh {6} [root@demo-master-a-1 ~]# kubeadm init phase upload-certs --upload-certs W0902 09:05:28.355623 1046 version.go:98] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get https://dl.k8s.io/release/stable-1.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) -W0902 09:05:28.355718 1046 version.go:99] falling back to the local client version: v1.15.3 +W0902 09:05:28.355718 1046 version.go:99] falling back to the local client version: v1.16.1 [upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace [upload-certs] Using certificate key: 70eb87e62f052d2d5de759969d5b42f372d0ad798f98df38f7fe73efdf63a13c @@ -350,6 +362,7 @@ kubectl get nodes ### 获得 join命令参数 + @@ -385,9 +398,11 @@ kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery ```sh # 只在 worker 节点执行 -# 替换 ${APISERVER_IP} 为 ApiServer LoadBalancer 的 IP 地址 -# 替换 ${APISERVER_NAME} 为 前面已经使用的 dnsName -echo "${APISERVER_IP} ${APISERVER_NAME}" >> /etc/hosts +# 替换 x.x.x.x 为 ApiServer LoadBalancer 的 IP 地址 +export MASTER_IP=x.x.x.x +# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME +export APISERVER_NAME=apiserver.demo +echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts # 替换为前面 kubeadm token create --print-join-command 的输出结果 kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303 @@ -403,7 +418,6 @@ kubectl get nodes ``` - ## 移除 worker 节点 ::: warning @@ -447,13 +461,13 @@ kubectl delete node demo-worker-x-x ``` sh # 只在第一个 master 节点 demo-master-a-1 上执行 -kubectl apply -f https://kuboard.cn/install-script/v1.15.3/nginx-ingress.yaml +kubectl apply -f https://kuboard.cn/install-script/v1.16.1/nginx-ingress.yaml ``` -<<< @/.vuepress/public/install-script/v1.15.3/nginx-ingress.yaml +<<< @/.vuepress/public/install-script/v1.16.1/nginx-ingress.yaml diff --git a/learning/k8s-advanced/policy/lr.md b/learning/k8s-advanced/policy/lr.md index 29fb598..fd477cb 100644 --- a/learning/k8s-advanced/policy/lr.md +++ b/learning/k8s-advanced/policy/lr.md @@ -7,9 +7,15 @@ meta: content: Kubernetes --- -# Limit Range +# Limit Ranges - + + +默认情况下,容器在 Kubernetes 集群上运行时,不受 [计算资源](/learning/k8s-intermediate/config/computing-resource.html) 的限制。使用 [Resource quota](./rq.html),集群管理员可以针对名称空间限定资源的使用情况。在名称空间内部,一个 Pod(或容器)的资源消耗不受限制。此时的顾虑在于,可能有一个 Pod(或容器)独占了名称空间的大部分资源。Limit Range 是一种用来限定名称空间内 Pod(或容器)可以消耗资源数量的策略。 + +[[TOC]] + + 正在撰写 ... diff --git a/learning/k8s-intermediate/config/computing-resource.md b/learning/k8s-intermediate/config/computing-resource.md index 8b8a695..1700a1a 100644 --- a/learning/k8s-intermediate/config/computing-resource.md +++ b/learning/k8s-intermediate/config/computing-resource.md @@ -32,6 +32,10 @@ meta: Kubernetes 中,0.5 代表请求半个 CPU 资源。表达式 0.1 等价于 表达式 100m (英文读作 one hundred millicpu 或 one hundred millicores)。在 API Server 中,表达式 0.1 将被转换成 100m,精度低于 1m 的请求是不受支持的。 CPU 的计量代表的是绝对值,而非相对值,例如,您请求了 0.1 个 CPU,无论您的节点是 单核、双核、48核,您得到的 CPU 资源都是 0.1 核。 +::: tip +在 `top` 命令查看CPU消耗,100% 代表 1核;4核为 400%;10% 代表 0.1 核 或者 100m +::: + ### 内存的计量 内存的计量单位是 byte 字节。您可以使用一个整数来表达内存的大小,也可以使用后缀来表示(E、P、T、G、M、K)。您也可以使用 2 的幂数来表示内存大小,其后缀为(Ei、Pi、Ti、Gi、Mi、Ki)。例如,下面的几个表达方式所表示的内存大小大致相等: diff --git a/overview/README.md b/overview/README.md index b415b77..cf6d774 100644 --- a/overview/README.md +++ b/overview/README.md @@ -96,9 +96,9 @@ Kuboard,是一款免费的 Kubernetes 图形化管理工具,Kuboard 力图 ## Kuboard在线体验 - - - + + +

    Kuboard 在线体验 @@ -109,8 +109,8 @@ Kuboard,是一款免费的 Kubernetes 图形化管理工具,Kuboard 力图

    - - + +

    Kubernetes教程:Kuboard 在线Demo