From a8f50bfb6b4bd653502545f82ff0d249eb78c830 Mon Sep 17 00:00:00 2001 From: Alex_geth Date: Tue, 7 Nov 2023 16:45:37 +0300 Subject: [PATCH] k8s/lb update && bug fixes --- decort-ansible.tar | Bin 0 -> 481280 bytes library/decort_group.py | 2 +- library/decort_k8s.py | 40 ++++++-- library/decort_kvmvm.py | 4 +- library/decort_lb.py | 19 ++-- library/decort_vins.py | 2 +- module_utils/decort_utils.py | 172 +++++++++++++++++++++++------------ 7 files changed, 161 insertions(+), 78 deletions(-) create mode 100644 decort-ansible.tar diff --git a/decort-ansible.tar b/decort-ansible.tar new file mode 100644 index 0000000000000000000000000000000000000000..e31075be3065cfe0122437b71910bb66ef5a87a4 GIT binary patch literal 481280 zcmeFaX;+)swJw^^{E9a)#uem(47jPl^rfV`Jmh<{z?`pK(oo=*ei@9%k7euJZA<|FGhhS>IQ5`8|Bp zbNKJ%7lYxr_0PL;^Y;FU7fuAfdhsI0yU_u@*?95d74g5hx&HE-jaT@6edGBzAcJiE ziPup%-2ZU=Fa7b^WHfws-t9lTy&qo>`U^`7OW9ucsylA?vi*L3HN4MudxJ?QI~rbG z=cDnkJ?;+r*;#&Z-5>M@SNGZS-u~{<$=OPFGw4iu`6#;_46~j7sC(YaG1%_l_I}vC zx*l(3%NHxz=K99BYn$tv8}Ted45PE04tf(#Fv?!P-j&7d+_o`s_PTqK_eXiQ*<8<- zM|qxIkH@!L&z{}g-8I|Nq&XN~J?m++(X-bFyZeWy`)g?59RE6A!B{%n1lt^LWvBV@ zD!CfaAC0o{;9cIwf3x#En~d^~;IIu)<^6H@LQ#%y71P;;5X8lx zKOPQxy?nS3kF1+svkCs|Z)e%^f1P55f6LFaGtRS;T@D8~83xZrxA{f)vWp3iINN4+ zI~=_4cJg5}JG<_VGWNb`_x-Z4;?d-Ml>eUz7RKeA8r3xn*xmm7fv%X_%A!r=oD%a6 zWNPVL+(~o6;jq>2bn?ztwz%1RvADoNNHmKNr<%ou{$QMswhS!${rBDBpnt>lzi$t_ zZE(pb*(26>+XhZ<+ru_U3p8a*R?I5-4+M`RK&Cgi6LfVzhTYz1rD;>0)&V!Wf!HHV z$3y%A;Gf?cNWjP?^k(4qyX)@7wV>m!+v^!V{8WvD%j|wI$%gq=7b6ZGRSB4XdSdy_l^mX!#xj;LLeZ5s9z(p{WR6U-=gn8mjSK?s z8X^vy;LxJzZr|Rvx*dmlh=MYk;KQ}7v2%M1xuslouvg-}{*@6xfk`6v0b?924}^zW zlVNYA>G^>Z06U;U3_R&~GBhRYVJr9NgTXs4o^qv)uPEoT_V8*V@K#JImJI9THU)+7 zuL7pEb9~%7*i&e!xXUX@JX()KDVVE2kZuIiD8CrynR$CRTr@l29aegX^AALa zF1l9ky#yW3)xXaMkW9mD1XT}5<3NtZUf%9-qrl{3NI~5ljUd!lvk}foe2MjQBVoR~ z?)Vx#MU9Mh-cbVB%Fc$9+_z4UO$};c|L;3*j$iMennsoNaSD5ViDX4dIT{a!0Gu3c zdazZA?MPP{w@2?BqN~nWEGXz}N@ni#$QD0*$S{TenSK1YD2tDTX57NbLu(a@2T_!%abI`OG4 zIX>XBROwR+h;=#O)M=lUs+gO6JQ;$xwz78bu6;j}56AbnKnSiPpd|TV)V={FY-NYw zW?f$QhI+HGGSB~o1v#y^R~ou;wyj?6Xa#s=mY+ zWVV-MIIZILlPD04UshJa0D-#aTL;%Y$6DBIuJ!1_j5UQNv2Xm-AGC1&m5oQO0>gdz zg@*$*1*V;$@rt_raSci%K+4He2LUHfw|S0600@U=JRKCxUSl<&NJj>r$e~;W;@x2Q z?h@CU7LP}ARXmgsV_~Fd{?HePY5wbY&aNxUxHq^H8=pEU5wYTS9b+puwcWY7o$}tY zDby`0OxvYl>j138Hc}J7s0Aa)#k&@I=gMqYF>+pk77UuaD4?TTc2hPwdfNyj-1sH?f3wAB?>C;wXU|kzKb-C+r_1*D5^7$xPE%%Rrb}d>iPq8 zx3Dzf(4&-F>~`GFs#oc`sJKY`0@LWFaVa}H+B?E=ltU|mwWr@{51}4W{~PtYx3|#j zaP|Q=9q4T^Jb`7harY+2WqFhVf*1Maq}RI_WYKosvD zd?q7djM1}=moJ`gtiO2i39(`QAB2|)65L-1CI0&1;}-tE*yMTNF6~Wbb!H2UX=KXzTK^mk`pbX%ldfdu zmd=zIX^z35a#Y>!fx`Q+r@YUzwKZOylr|#bAU8q- zekVQ9AkYb$Hq}Pk5}y4d%uMU+kAp!#XLPT2+OJHlCY6ZVKYY{+g_w{W=40f0(kY4b zRgZd;=+$Dhe#^MOQ^d;|A>bI|nlqb+|2=?rlHFm;@w#{K?m zv-$iPtxv!Q z!qt^>!~$rb)#6pJ)ylSEOmDTQ3$$7dMZ78o3za^k-|>e9|KGd!H}7wr+5n{9oYz`yG1kgd?l`cW>JL_Enz! z_2)Mk97^K}+_g7wl+u6?Tbf?2)svHW=d$ng;1KVcyRQ_CGEmr|r$F80*szX3iLII; z_=xGfRY#h4kEprD8RdeV_~;ad7A$*}<_p+Vivu@C+3xXAVi-Buc>|jdO;J=3S2MlK zz~TnS*x-&vLby>e5aj)3_i8e9CcS<><_!>SVE%!gbO+U&3dfM1Xk_{KPIli8Z(1k`uGc{p8D5ktO$gsL?d;k+N9H~|A!%f&)sFP0dVm)tut5{jf z)Qfd2zW9RI$`o6)p{Ks^EjA99<*@ooXE%Bphu62wSCPZ(Q@xw89III?x?e*pq-RRW z5(Zv)`JGc!-JIUt_$57?r`?-wuRZMDuZsJV_i}Oxq95{;8TEw z4=z^RVshxA@Tk-0eIy>b$kE~*u%^!u05SKHz@3{t_+iK98#lKcZhjrux>N7t#RdF* z_uB?w6>CbOQDcrb9A?l=O&Qe}McNI;+hGzZJ?ZvaWz=)v;vN`8+94r8)W)rd|8L~hS$ zhv9Y+o6wCW=)ye&9KHmO3P_6G$Z}?Qc8xa48&(Mb9ym_{RHcIXz}kmMl0#!AP>+PF zaB|X62vOt1V-(Ps?&mjQ_1=M$-`v6t75N`X+hz1Vwe#PkLXZb?qXytZoDPJL-XRMC z04I6?L23!6W_LLFA09FA2w<1l#ArjktThM|(dFb2rLVd|d7412AcgVg3&e6fJ|>}! zNWq!Bw}VFAF;oDkZYI~LaDwCP{4>+HD5CU7!s;pND3l*Mv3uFC-@a0b|NWcnm|EfS zF6^qq4z#{J23i>HhN;Es&s23VCc+f!=br>1k<{AT;pyiFa%x~KFa4>ay z&RsvWt#td)J9`Kof-akN2C&~U9_P9Z1J&*IJsgk_LVco|pzx9tp*R6ZVLx6F{r%fl ztyeERaa>#v5d8=%%iB!9SNxkTByt1lQd+C3{ORZ;S0Pz5)ZfV&B11< zde}S@`sJ@>VLn_U2@FsGRdzV5oW>iUpn>#U5H0)nJ9p%Oi~hI;+0e!l5O#t z1E>gX<6gOW2pH;qdM7k^YnY^7Gy?%b)Rx7D1F3BUr~Vbh4X&2LxB^}ubXkz|D;eEP z5w>iQz=#*OlbJ9$oZOt__6wS_+bV9%5<=u|%emN%b+hqq%A2tTNCy#oWJOi!g)&s@ zhG-&T>v>cy{Ve=bsF-(?z$C&G{aCAXS~ypzH$7zn@o!RY0!O$|3+F*h;`%fiF)BiC z>KZVp;()<7hRfc46VV?QXXLv3wesTBh6$kG*UJYe;y$}#bT(x!~|a7iM5;iAv4 zfa-%iPh5x>U-OqJ85UHHz$zpA_SmtWkT&oTbKe?5s&jY^g2S!nABQz_d$#rACi7bi1PuwQas9l4G%FRG9T?ZM?h@2jk<%`GjSLf z?75FXFT!Wp-OJjzE8ifRUr$*;5R}A=16t_)fh2VDBhZI~81l&z=_p&yZ7g@SY=3y>GCIble-5BeL5ZJ6TRNgf2Sd#nK?@tvwd#*hmAAj@2{Q$$u&VJUGc(F`h~ z`hwsdG{)W#0F;{K;!Px|62=PB+r2eLM zB%bsF=vL7Uz*e{c-2PS_p~dLh0U&~$0Vt3a?TYi*Is$PSn-f!Xol{f+k`e_=*Exhm zLT_aWDz5(w42W)u7DyVp@*#10Dzbo-Sda8F2|S%p#VFbwX!{=srtdR;0Bd{KM})uF zO@ZarEN@;liC^4V5i20}6o^8JdUSTa!AM&>@k$cnfsg&fQ~-UT?Nbo2>n^sB*~q^X zlWr_^2_+;8a&VRxnMO<@oC9PaNN}71G2>MuB0K)_!HDIUL0Z;`(8I_^Qia^M9d5q~ z6hj&Z06F|}n_imt5SpRR;7B1-A#I)Y7sfT>uN)x%0#2@SUC#>+fzlBUXZ!u}#Z z6Bd_KDP9+^Npg>m*$5z}r1vahNVdETy+DZf+hetyeL<+iq1l#F6a<&8-%H8|vr?)= zG|v3F2B{~~pChhF{ttq@23~II)*z^+oUQR8pfZFy9nID1#GX2QPG&p z3&jj!h!TFs$%L08X~nT|$}yG)<`D-oH(bRKx=bXEu^)d5py=K*t8a*p{l(_sn5r=J zdAUIm>GTV7X@ZJ?A5nr5epUYTbLouU0V`3KC})1`pxn1h%V^ zh`dB`&~?N&Da2S&4#M+fzR{q*IVeWU4toUF?LK94l$SwAw(fo$Ll=t`FnNuQ_^kjE z|Hp5;whcLcI#U9>5G78i3dY?)a>ITvK45zry$#~#>hCRSyrOHftAWWe?3Ww6|5Q@1McWm(0jw7P_ zVRoF+=(_bTkHU^?ZXk`*)4yc5lXIl=W@t|gibeFcH@Jr?&)cEm)LGexkb`A6dJAF* ziHN*z7d|V?)kuKzNatK4Vkv#28DZB2{@WQY@?!gfeD*hkEzuXd+#CxB~E)B zV*f7$JyMLsvd;wFE^9Wdbx}MbBNW&6VC#b|;a3FXXTX8eFJw;=Sv7OOQ!#XF;Q(+0 z!kZ-70bkF+cyV4o}duM;g74h`<Y6w%}&m z7IXB1vfmhX= zNLVp}bmppIARb|=^17jd6-QPpuHXdUmQ=q)?Ng9rcZi+qj?-me>F6Kf;^e2pLxKMB z&QGWNuvqJvE9~f$d*|!&i=K zhea|$(R%J_uZ9L{X|;rThxdnqy8_K^)TgOo!G|yj1QO!@knTQ<-Q3o_;EOr!0Rr!~ zjl-l<{;r^fGubM9AS2Bx9z|hPrON@;+nI`J5*q6wf!OiO8!##j zKUF4-a1Z}NHVo)tCl9t?Fvxi(^n=;=#AQKbKavD!Pools^PC~#-i2Y;Gtx)u7l+YP z3caa2%JU11xP|K#qc?EJHEL1Iow(XbYnTgUM!nm){pCVUqpE7ObXTjBUp>}-qLOo; zPD}GfFvNfgW#qFiI2R(3Yb*0E7w6}m3CzRDfr&r`1)-BmHk}7xDF8o)pN8Pe9YTQ; z8&<0>thVNv(Dd+<8;f%UyQql*gi2l+@9($Gm}5U3Gy*bidF~=Y0SHjwG&XmV;YNKu zVo9-&h%PB|Ck`nP3nG)kHPiO$@e>lhXQJpa6`rK1h#H&Oo4gwo1 z3yaKwZr3uSLqXs&%-y-oOEIhE*h%Iiq)>tKojCnKz0NVSEKwVi+qGW)9)ZgPUrZHb zJJ4zjde=c|t~EKmn8DWWsnnswb0r8+Bw}rFxpq!g(~1HTNdj-i74+j#_Dl^d)IE{B z=1ehe5r}|`V7BI?ZW+M>tH?<9Xsn4vNc0J#rC`{Y!1LJc*A9$e5_Af99xR77I1*YRd=mud$p&|rCZI6<4p{IN zpD-P&y}~DnSRw@Dp@<4nCV3o4F|mvG5S2h+R0ha!;t2vB)ItqZR7nebhuSYvxvi24 z;dMvGnnZ`-Xw|Y?RT$^V%Fsk{%5qI(IJl!-CAgSYQO&8{ZJyW^;T@D$MH#MM{_~qf z%pe=JI1VW|+wKh@W8_ly^WLuY**VPb@F%(;WD)_^7F;i9A7b2{+>gVVj2a|lS;!fs zU9k!c*OTD6xVa-&t$2gN8X@9@HDT37=zy%17BCuWw!Qg>tBvVvwrOoGElQKL(VUB@ z9Z5oK>q=mBw#aJ7EYi{$Z8WQ@6WihlNEA1AaCEC;TyeJP{-9ebd$Il>u5hXZcxqsL zwz2NogitLk^QUu!V@$G*SIzYo*?SZ=wz;Z;Ti3D=ANCGT|B8~JA3wU$Z!8xO`LwS= z+uyFMjEsrP(_%_hh%9p3WpI?y6Qg~sv>&n|o}NfvxJipd!d+sm^4DL`^ zR4iUNtb`J_=)m3B+FXC}E!?*hQzREuEc|UC9QQaOp|hQnANS8%KfeKc#)L%quo0u4 z8!6z2=~XaITxvMs19_=jGx8FltIlu{8!h1Pz~^2OKpoRUaRWKQ+zk*a3MysUSz&>5 zvTi%UDhfw3FiYCFvXO3|(Sn400kZ#i@zNL~bHadf=;t@COQy!QEwhgLkEy_^ctYuK z=wYtj7RU907}-DC=YJgk?fm}u2j7o8)4c^Q{$sPb@#@>=#`^Q-=F8{)doS2dL5Jsq zUvcim-x1B5-+mj~zwcbM$e}Xkw=bI;|M9$ur#6}!FAdugU{(Hp-A)Jn9?qB>xSue3 zfCtBA$xskE790=mm&7LU{%vJ1H@9BC*g_E{{BNVZg;9hczF1Mt`iYz<*2)O32{ z7NksO5`eY5Cr@PTdYS90dE(}Q!a?+_wpw^apa*juqI6rX){tvN#Iq6_g1V4Vk`Hxw z$ZweV5#5J7z-4#n4>*t&8!gAj1gjzRE?1g2JRuAY={r8@3U2%c}+h6*UuQ1tA1#O~gDC_nI(auFBQ2{s!_4c19U0lX4&Yk-d!GA!_duIUPM#qbhAA z>=(=3&P;!a0l`ZPzLMIoIC*yVTI?QL?4fsPs@MHT8w? zb~UfiWzrao#L_A@K1q97m-P#%cz)lt}P5vST0luS=`!pFo!~=0ABSzH;&6=Kxe8SS%|Cg3kOGU9N*X|SHYA! z4C^As@Ktdxr%Itq0&Q+Jkf)OMYKGcp%6G1pP!$W9nn3f^V-1vwl0+X4J@?PFu}OR> zayYC5QgQJ?D~;!l&^(<`ty9urI>AY@1oFEE{^|IvUS`Fo)0Ut_ zRYpCB5d_V}$u?;PM}Ma*Z7ulk5}0$pQqk$}lyZ+{tqQT!k}v$=k4R;Tk~b28=cE6G#OrYDw;Vbozsa z#e$F#vj@8=6=2XO57ay7WP&BpJ(A>Cw*;pno|T|OoXWGQA_apZr0{5fXPacyD;gv3 z@Z1xWYc*(2ZlUt$?Hk(Oqmlo{mpE`cNR&B!$U@3~Ybc56OiWbg?wD!C8w3;yW~;cT zJVY^S+v1`b{3$>M!GREG4cO$F&8j*|ANI5%Nl0FXqV8{oa5dPXt^@YS3FXcr>8`=_ zFX-bgphN4OMXw{&!rk9ShQ6t3ugk9Ab`=pmA#2JsB)!UslqR1@3dml!3k>%}V@niB zE20cn5uW@G()Qp@y!hoWfta`UCfzR?iXG!!1__|u-)o3k9StOHS(FBXoXRJN`t73D znps@U7OmRM;xFaXV2Saqpj&-|%2OzZK#TzN7C);RRb*-gHmRCRR|`|v1e9Ryi)%*B zFi0z0B|Wusll+mD&vQ#DHMS!KTAaI;sd5$<Rp1um8@{^_M@m`* zc<@qbce2HY{zt~NLdX*Fj*9<^(XzUgG=BVv6t6Yxtzf9AzCro}A@rj}!O~TCP7eb$ z{^{XB`%HguE2f#q8iOZL4)Ms9Pgqz!JUU)+HTgAi$PlkrImx&LYO65jF{4J6NndK( zlXB@N6PG+rAOs;$#N+lS)+ixcRG7|25cBY@dSg)Pv-M+(VE2*a42tKq&!W~v3RsO) zJWGP~6Mrr_haAs3*Mh-ceqb&HrWqEHwJpnNL8kM$7{i^wzk;RG>wMCxUYnaLrIIlM zKLTsXX3gCwr;=?znbnSK$PStc!X|7p75^^AAcg~-JYLI^MPlT_@UmxgXU*|+S1JqV z+!hE%#EXmRK}ew1rCA9dBj1VwMbdW zrgmnLr{pEoclzKoJsA?(00)vhV1kcJdmgx^H#v&Vz#*cvxl&r2Y3Yw&-szSs)qQVLPL8(;V>`kEBT)Ktjd!4umF@* z-JOH&=yLn$cLX z)O~=8B3B42J%I=Y9PBxc2&y3dT=i*@nggccr}$k0d$m57=SCBYet~j@rN9i=PlzR! zEyB~7s0Do?I+CWuI>~a9gb@c}c!p7|$&Y$DmrH7B5$h>SdP9}s7`)#{yRgTPT|CNG zhVU5Vu(WTGWax@W(UuxwVEp!$GAY2}!oGs{jCvg|<$M@f?9h;AhVR1svAwhl5^c=X4}@n&HkKq^I8%WLO*0cijb5Uh!3I1 z`L94u8p<3*-9gaK9dq!i4*$wo*MusS@ zAn!S~BqAwx>f9i*=b|iKe4}TFR@`d@5UFj>eE{QVGmA?Gs(eMZ6|RlAd#KRFne7hf zD(ASJ8c!q{LC?#}>Y!#wO3h)%>Y@^S3R$I6N^&R50JPPa$O;{Q$^Q4Yi5rHPz?g~9 zJX~Ol#NO`wlgay((;B@8z)&^0LGaGaQMDPe_&r)`Hbhf{hbtXau?F`R-F`h14bfs%yw3YiW z0-q#0C$e=x$&tuxB^^2eP^}x0=DZL4+5VJ$M0f^MqWp6R#v@`n;Nx6IMs+Z z^!}LdtAJ)ow`4pMbcw)2xOC(~-OyY}@pd;5c$x!aKm;~|Y2B+Uh@VGFMi)cURD|s! zc!QkCADm1DM+~2d3p(Udc8XVL(no#>M40bTW=(FmZBRAq&LZ9rsxk}^@H2@=$U~Jn zA7UlJ%M7Q2h7*k+t>lQRcDd(e_gCgR;gxvoh}H2CZ;SyA5fo)f{c2~tOCT3!@xKWu z@S>r{Y`Fj&z(dUhx{d)?glaK(L8*--J{<7o>uKW`DLaST2KH1UB(Zifkc-A0H1N~f zxmILgF(AN=0CX%HQdcve)WS>~1qQBMzn{kcQahhk@WG7KTPk@dE=A+oc>z{j{zX@+ z^+@d%MCJJDNn=uYS3?3-T)~m~p}{ba5gzA#o3v&74-&+&h$qb%y;qzmT~%N-_Ozcx zG+JX`0_*ALoi&sL8ezP*(*|t(Qse4g99`$V9=bQ4p_uYB)S16-SSY_um}S3&kAm`2 zT>FEe6b9u?Bt8rwKqR45ZfDvY9HfK|dx+IWjQs;F+uI zj1mDl8g7HKa>O>GytuzlhvS%;v85YxcsUAoNnY#A;@re)kO_cIoc%8(ZnuY`G;}Y- z6Ep%(N(2pfls~23Z_5|R)l^wkT17#h(-9@3QdO%~!krQ)m&587dV{MbcdkAD!Iims z5ZvDH)aYo0Bbm%l#M zta=3DX<9vtx054jC7gMIuckRS{W-9d9S!lCBEo>7u|SsGNhY2I3SJ{~5&{Ed{~5_5 zff_hi5YQ~;*{K=aAsobWYsA}2yeEf+X#9l_?{sQ_2C7A^I*~bPDf!iG@r=TcNsw5()hrM0OqDNOGXhqqZASa1`mKtUn$W_SEvI9u(b1M0GR{Ot z;l|;biDR9Y0v51-s%BUeZ)$kO58gSN0;2_ut+pzU2Iyf7 zsa6RV3Jzv}xG1hUuV9v4L>iTwnhaA!aK>=5A#Q<@AHy$biL#Wr^qzOrj4M~q8>!pJ zmq$c>CR2AIc#-44M-Z@Eh+5_f`O)S+<5cK7O~w6DB-~Q2k+?hjTt!zMF5E28CcBUB zs_;VX>WM&OhLmuNy>mXze6A>nLtkV=>;yKDzF5rQ1+fm`420!Ij3_v&aT?P+A+9%G zLVSrQv3$WOVQ&>1=f!@rL=5RPJ}lFJC+7NS(rp4NkaW~eVzfvk42!`j7{wNPxQ6Bh zZ7Gc@DuN#yLE>CK1^li>;v6;9_%kgsdCdy%3dqor$(?>YhK4|Wvmg$qPJm`X=}ECN zDMv(A0#*`uZred*`?36at3^fC+$5|f(aCso4>x@mm&;4%9WH!Yq)u*rAubZ-T`!Q@ zIOuy|JKv@At^1E_Nx-0d0h0EbzWXC!9QlMtdq=Q@qu!t?fm)m-)>)z5DYTPRdDZa5 zapsj;fXz+Z`A@&bNAkK+yO109k6IebVF$HDn7BNPH0Xw5XI%JkKfY@t5A@>x0&2$g zdbLo{J_%8}3;hE~Q6dc;830&(`Ktdu?{~#}e>X%K3P=Dk?W$r84_^0uw-X2X$vO~v zq`^uqXc4ghc&6He+?C&8b}ZB@9z|09Z5e%Wq^>l>$sc$luEF8f4=k5-;oyuy1g?R;bUTYv4KK@*y9#L&KWNRU3Pc*Ws7QjCz} ze=7mvtRI!%&0+ZvT80TuL(E%hCzg=;h{^*8`Sm3*H_hikyQzr)`ZrSoBlV*wS2SxH zIlc7C2j#otg1rMbx;v1WRW`VxsPx&{E_*O zcx@i~qsisv&k0DUL|)i*{4B&{HZw}M8MKtW!6hC_oO|HV_97?bPQPdP3*gY*sSg4O_&2c5hL z>3_jYCS^P|3%_!?wBu|StvEJsBo=Xb4eZX)D1Wr55fqE3$v6l?jsXuZ-%gDfJzGXs zF<Sj6nm-%G|tChlR#> zny}C%uGIQ#`jymTK*g%>PxlYcLPVUk8*pJg0wxae%E_m3N29^ruv4Ud?7Wxv3(DNv#$fc5 zc(;o|Hvs}BEGxn5yT4ukMxc=&d=C){y#P9IiVcMn!y_O3i`kdG9i^hmA`zCAbR; z0Ap85U-o?4;FM=b+9awFefaa=U+)|utiTl?0)XV?2n$O9#i95URvI00jbEC);-bic zo2q-eqtE!omnt1V|Es4$SXaW&X~RR`uw>D|Q#>h(u;#LLRuH zwlO~<{Ez{mazCvQiufD@S9Fj|Yefh7Jn(p!!5r?D!a}|jI`C7G?C~->0t73_o}ZUQ z1n5FKylpT&St-5oeIu14M354o-S4xAO3{Rc%55z<7Q=_ zH|<{|aIuq6LwQ|$v(`ne-PWZHCJRHbx4Yb#6!Z;IWqmJIjtYy$h!Wr#k&0Vb7pHKf z>|vv29p}$f6}lH{=@Qs5pI542X;_d1*DR-&w(qq_7MRkFS-ccSVL86mZng23bkL?W z3^p;ImA4FWLl1Y2dn4ws%*%tw}-FkhZv6V&)iz?nU33{$^*^fv(x}%MTU-?pAYHi@aM7XX6G^sTL zZ)@e3ZIlCp*)wP$@fdPdibjEJWXdRwMsb)v^lC9y#!Hbwk|lG>_{WyjXr#-E+wk{v zJH^Rw#rR!ZeeJ~QVD%GULYrV2^6h23;S6h!{>)#6WR(1 zE=-@4Xnq)kuviZy+WynkaxaCSuvC5NgG<$#(EJV6drQFaM&)>ARZLabl?%3tfHg-a z$)Sn5RIy!Q9%wL8@#%Pxh0fykO96yQ{2t*%k)V0k`H)yy(1iDs;^ojihyA8x6L_mqd+<(YlznciN#_AW{(!1@cq}*pLFpNmc)U4) z9Qs2og3aUs-Eq5x2@%Oum&_f*vmFRo+QLU0$i)uNJxFezJ#^w#FI0f`_r0hw{iaO9 z9*rin-TJ3z7W6;xGKO!dHT#3zDVrKUKj*ya%+*a5@oNU~pfP{4m zde8_XJYS)K59VoKUP``l?rDC9yDh`5QHHrM*)X7c4LG9>L90hF&>9zO8c$tC2Y1m# zEkcy6$22c&8l4z58sy2tB*%@Eq|Z)6VZH2LO@^h_yMdP_IuUHQ$Lx!se%bGr~=o^!#OMpJy>WMpN z>{wWU+(aN(w{K<_wKhcd7?|i{$9}VHuTf*2i{L@?#E`;z(-VeAwn&rPrQuWl4#G=+ zbCoAX2w1@@nHn%L`yzKUVFk3_JqqUIiK-Dy@Z04?z2a1Ge2_IaMZUuT15p8+*7W6Z zjJG&ETx%Q$az&h{6C0wvn{&oIGrl&V+_HGlxwfm%8*vf*O$`w9ZJ0;ZL%=le@*(tE zgUh)V4|^jPPH{GC$ulN*MoT!uH9i?8ScG`eUK4^oz+6&D=lq{|5lqe_=k^%LCqaCg z5a`19>|d6XcutC3%6JVVkueZK^3MWuEjuRii_#cjY3+3K2M^C#t#lJW9K?Q-1x3{r()F;lCPZ=l-fipZ-P>oSI<)Z~LZF);3@4;6 z7jAcfi!1!iK+wo?ib5v*1pi~EoNI^&Dm}C~U|}B!`x3Cq$7wW}p(}{DbR_#8XU^C^ zb|ABgBu^Vlwmw_RVeHJt5~&5;NF`;z%5r&v!kVX4wg}U|ZGHHO2=s~S=uay8q5UceIhGF_-}W*`(l z0SZdYBQvUJp8jcZ9(qJ(9|Y6KEPq>^1%&veHY7CvCH7?OrW;FX-1eUoHVG7&Hs-;s z%1NyZOTS1n9H7-MFXH_>my4GzzB%~uWasSQ@JH51mOKFeyA)Y=f9;=~9G$Sq$^PE{ z@#~|1@bk#4MXd4xAv!@AWDijecQg(MD7RFjMZx6X#vM+*=FJ^$Ara}R@k*FiOL?wf zXeO}9N34|_K%%Mr1eOA+`5g-a|c)ODHy?h<6YiK1fPKC447Ul7TAJa5x#up*;o4 zRB8sI8?`Kg7%#3c4V;PQbBZ!V|hOf&@YTV8sRzYC0bSH!S zF+LB~yZZD`LHAhTgO;mwy-b-Y0YQ=!uB9LOB7@VueS8GWI5Wa)J{|W{FfU)thxeKD zJ40uUc#hGRs)$S3@h~qPOo&H|Els%PGqZ@t505sv4umKLT(PtgDddhFV>B%pKOlSt zz2qRIaVZovpCSTl*{K4YQ(;ptOXs91MUt3=o`{~Nu9q9H#HFmm@F;u;@X3dE)3b|J zpaDDUrYcoMdVrlBM|G&4t+yv&4z=<1I02GD31}p-mNX*u-E~tUV4&(Cu$v*6;daw( zHiIz5VQN>hq)d-(sKgRsN0foq%=R5_xV({)Km{ymqHsC{hv8LUOHW|4ItF5XG(Bcl z^$1YzFu%k+*Is3lg$LT_K>T^aLuknhSq`kxt$Z2>HbcA}#)s*!NUJr1JCm#kdJS$~ z0J+IAsXqcHGZbN%Hv8?RpB`;F(XzS;Ogw*JKHs2mOz zA=|?&`va5aD;u~EXMI1d?{E0Kr9VEKjD}L@?G`smB#JM=W3Y#6L}S!l*zf08NQK+& z4JIAbD8e-WjI2(UGd^4}Kup(twyd_#759LRmJ>Hy9gTgr_b6|4jVHpFFIKY6^^I@W zHrF>d;#r0mMrS!4^dw<@l)ZkvD~s8I`3pDP*N6v0t;lS%xsJ;Qie+4n$G2P0p55Ku zAr_oXnuFohGZcPgv(dBH2fO=+r~7MY-yHusUcp#8oK(r%LPZvMXYRAp>j{e7aYX*v z9Lb-5hO3SM$ou&8zKO(sBrwVdJBOzSD6`Xgvwya;w{x}wP5MIv(Wz~T9)cTm1a}h( z%rrKd8#V4^dus`mc6dj9-_7spEF=wIMZ0x=&ru;yZzimCgMxeudq=xJy+N)J%nL_{ zSO}j~URzsR&|4^-MsRxJ4fe~s1t|ac4L9kFVfU6Ev90V)yH9(o3H4(>rSyY7@Gg(n zD;n*zvVc@q&OmJ4QZfwAplHzVRK82Zt1iQ`!FV;`>Ef=1EMFq-C4|=UO?jFwSf!;j zKC5hw8Gmba=k)$0+JN(lK`FRtE;!iJX`J)5^Udbw;sU)hgP}X1*9tiQ-?MT4-GcLz z&>Q7mE62&Ltdf1V4Qg}`Wv^w&_XuLbf5}CT6%-mg>E#iUQT4Y#0X^N-Upgc*v>2~5 z*W}^bJmy3eel@^l4l>#E=BwrgJ-gT7M!ZN4btVsc+V7(>?4U1IN#3`IT^{O87m{2) z!yc_;Ob3Ba1Lzd9i&i&u%8lZjb;rW1&{E&asWm_WJbK;BE_xq{>r88x@d-PtR|r)> zlzn))Y1vBl6e1I8_`199;^8Dh-Ext+PCr%S)Jzhq(umB|twtJGgDTzkF9Dt#Aa8YYefLYcOG*Qfgn0wr_qL%Pq2oDzf`n#RW zRx5tbMO>kbw#O3`Q5T1^6+Pc=?#V4^nX=n>g)@QDIAqL1HC%*LkfWuycY#eKf@eeE zd24{LrWntUbh>faKMUyb>*ZEo+=WQgwkGx7pbpKpFntPR1g6S+)UX4NolIop^%M z4JLm5k(RNM%v#U8W7IqDYmsN&feU{3kOQS4O1>ndq778SR=v~@gD=Bsw4Y{ad=_Ar zDb3bD6=A}5o+eR60U(F;L_ve7kN{BmxiO=W|Bu2>OkOh)v=dr0q~`_-XuIDX-H_}d zt>uW)*TBSKOok|P0!fi^7k>EGy;{TwsW%zhCQ{GucF6>qN;y#OW z)s%m>vU?XS9F8mo3eVi-PbaTUaFtgtbuR3zv&LNkH^Ajggfw_q^ME7(#skQxmB-6osv8lQD)C^;trErTpU43UC=~>ekQX)) zxeyK~Im^Y6eI0 zr++&-*{cR`J-y0(bT+(E+LeM)Z?B+6$Ylve)%QB750%6h45e^;ba)rRE$2X7pY$z@ zQmHx=pXoqAqF)_S=<+c`k)fAd$tA5g$a~z;IYL71XP6$o1QzEH9{bR%>`nVN zx>CT$;VSINE@e2bi}6x;S^xk?V}rD$`W`IHcPPy|ES@g`VW9~v88rK(2-4v_V(id& zMBJp2DA^igxzo@Rz*4%yx<&Pb?t=`kNZ?|?*{}n7B^7oZd?J+u^b5a1>5OXV(Z?0! zq4z2f;BbH;u@(M%G3deiAV=H1y{>k!JifSge@Xz23h2T+gmZS09@94k`A(>_%1e0m{-XG82+;Jz5~roA}@9`rK(KvM_{tDqX={rW(2wfkZxKny^SBQ{DGaIM7dcPlKr>C!J zQ!kTxLy(Z7Rbf!jxmibPE@(p*h`BFJ7HgGq;lVHvbSSa9HUif`phQ!Tny3Hd?KT$~)c4zfWBnRuB(+5ggz%q|J97}*NmQ&5fM%85J$!)k0 zt*KE^4otDWN&zD1FRnN}QSQ$mr+&n}OCljit&&<})?GI`u*h?OHc3veqlQc?FfGd> z%!E&4*R{-eVGttlG4wcffb?KAvqKgyh2s`SLntO!gLSr?H?Nw24W2W2pF`+-R~N5U zLyt!qpgL=yM?C(8qpaQ2OBic6A#DUzK{C9Mwl=t2JEv6F0?1N^4`=6}`ak5}XLMw!Cf&ev+fMU5Jof=s16=N_R zd~xvXP(u)n{!(2Q<2DKiU9^W#sgX$skclfJP#Y=G8FEJc6in~fGM4WmLFT%FR zK(r5)sla#_N}<=EB)AHCeYC3t7xWk|?Eih|&GGB~Q}ZB7q&(8X{53}PU9av^Avit# zi`TcP*qbDPyxLe_XJ3jCrBD$s_~NBfVDL&B)+37re09#Y=6DVSj5`h7c^^JxZ~oyd z!r8}<7WL2Xoq;!QqqfPY9g#T1W6=3f><`%@y~iWCkHv}Etn&BT6c;Y=m&?HB+`>$P zXD{6cqM6v1sBM=n57K>eGm<7j72nE|FGQE!%AmKp)~e^3wjdu;N4bJZiVUtTy%Ssy zMyhMVWXHH~0Q2Tv{J(|{BEJTWXfEEfssWm1C6J;L3squ^41GoWZ&;3nxm;zp2ZgI?Ex%>3f(yl&2s|wK^2~r zJa868r<^8O{8_a4Y?(7cr8fX1RhY#f!R-l{c$GBrlk!_|(?~QR7KSjuXaD)1|H-$g zWJ(*IN$4)?Sz!9;s?j7vUp)(}Noq6;pUzR9IPgGS0c9sXwEC{>h!e*@!W=9dT=}iz zrn=!>x*#-t3GP?W_<>NYE-9d^Kz~r3T-U__eSk z46THqq?I31=1IeNL;Gk{#RRko5-3`vmHbK)(cRuhmO&1FdSuZ)tk@)sTq~&x(+?)4 z`eap5!jdd=A5Ej>`eK$Y7sFFMq*VGr299}Bx34}xR~WCd&81U1r`A?G*h?#I1Z8Kw zh0MDcwwr4~a};~4F6NV{c=InF>oR>+O2<`8IxZhSp+<{39hiEez9aqyk6BW2B`|lq z9B9sHoXiVD1uKe*`vY*|E)$!@W;)uIyctL zMY?t~*BZQDDUF+-Yu+Wzx1gEJF&|Mi{A5$rK-5DxsyI|xD=8Gcc^g+sRBa*ZEOb;R z4Id)49kLp$S_Kwx`C?2&Q3GSLFwm9gRROF zc(|bZn}DP*p_sc)_19xMFE|m@n}! zq^+#L#-gjQA+HStfElo1lKb$nx!6>ru@Qt%UN5hfjAMI>)BfVw9odB)IZ3^$)*ZdY z8?^MAgs16Ble=EEaB|;&Rydj6avG2d>wEx&uI^g6?CE_H=u}X!_RZUdUILpiWGwR{ zn2<`+4TjkG@2D^X^V0VA%URMfs@^spNKOGDp?Z-%SwS|^n3w8z5Im8U=ptlp&PiD& zU|i`X;~j>&!QSs|OkUbZYzDa1zZr|?!Hx55LSs*Vo2^Q>hiO8h);$AQFS|3-3o^`a z26%-78iw=cBNA(H!FPq|V3B8qAaWf4$udYVvFug+ByzRZVn{jd-g{0j=t~w28q9+9 zq<0vGu3opYSbp?siqLd$QT)p2hB*orsb&`pg30-lloySedvo%z2nzgd6r^7*R`K6J~1SnlYHN(Lc$GaoJ&24$jY?{cN-2Z;NsqDNIAXr0i55KaJn z+uZo^mza0jcXoH7-sROL&fl~>>Z6o;gZ3?O3`eW-*DEblCj}%H#er4Ti1h&3B=YHS zKQbxIdZ^1=uf&%chFT`YYMrH~#T%r{F8W?v>!*4|xR5@^o8Tr1y>?x;!F};Bef`s7 zC^&;#cdWHV8wsk7yA;>KBj|w~a!O-CCtmb}Edwc0x<-lrMidqHd8YBGRnPArIn?r15OdNSYg0Bt|@yV?y$tiX#gi)?5@iw%Y_X zF{(fH_ZraF(V^^ZCJp*k){L&_VM#2n%Q>%>MY+Yxua?8S~C$h*TmlLUlh}t+DASEn!Wr>y#kB(Pd5yqk9u6(~{ zcUr$eiF5Ohw?bKAz^r5}s7Z(+WiZ)^;wv%`^}VtYEO>~$g{2cdzX?1NF1%Q+Sbl8D zb3g)t9Asirq_UCb+_+#SzH^M=>H%WWsh2p16SS!NsAilWSkFD?1eyg=eIg;Qn-MI8 zD1QWN6)K|mHmh6J3n-(4ci%F>Fcpf)L?*PBi4@(u+pBrgQj}0DgETwOFIYO15T!a9 zcA~ECfjiRnB@t?Syl18&h z$20hx^mEV`S!ZvkC@l$qNl97_l;91(Qc?n=l2PV?diGEf@@!KF*V&&>LtiSTXOC6Y zLdFlU#&Po~BA*uvHT3IslsWMM=+E<6)aI5!2d(Fqh4H&1(ruq(C(E3Y=a%+(IIgPIHQzPC}6LGo^&6sMk#<%B*D+lc*DR0(9@76bZ=`kQb@aNa&Qqr(U@s- zCTRsJ4F18}&ad~+_V+>vcG_X807!qIP={V))UrC2lu%K$QgTrGiJMf6AlRwx%x@=1EU4({#A?lohgZox zH>@~dJ4~wA=88G4h6AJw9fGPtV=q{AdvTN65e_=;QKXX8ecR9h(k&)Q2*m8435f0m zDhFH-)NDW{xcoX@pf~KeoD9IB0s!K0&_WPuF_JXyC`>jZ2sMNamtL!umtZ7$E1th9 z9Cg|tl3iIEz$1X`jeqPGH!ZV)?Po>>?;IbuirEe9_$e6<>^JYi*mkbP&5`NAv8rRj z`OT+iJcP~g!WD!gM=kz@fbV&79@ralH%f#pp+22F%6(wp`SKXha2|BbL_=*h116}4 z`==x|aBuT0neF&9bLn--4eb2T1c&*THgj2XBsok2t(-9>im4P95UXu?CugK9L@7HV zU%}NFk#}Ugz8lgQR%>2Q#^OYajU?*BQVNKhdGjLX!^up1lyf7vh#3b1g+hTZ-G!%w znj%pfR;YB9hrm7PF(cq@!wB|O2VppfDxP7l>Tc_;XkG~wlsCwJb3(hM4rO=3O2oWm%uQL|xE~tDFhBs#o?llInECw|$ z$him`QjM{mZZvn4h1*8-(#$-s>)OO+rwpHjt1zkjz|6Mfz)ofqr@UU#I6!JzuziGE zc`%|7eD-}DksOVlHvSDgI~zO*BoFl?RX;o%T8gjX>(jHIYifTnqOce!&xF&(M(uc0 zzNnarHk!{rky!#%x}jO-90+|;o!%gPLl8Bk3?=vK?JI!$dj;c z1bGrxe@Eqsvm-b1nT#27eZ@68rvC}f4RJP zdIq`!rdILW(eZH^XET=NAzZVtr-9APmk*~y#|-}|{>sq+9-NO~bu9`=6|~k$aIk+; zIfdQ~n19-4rwmF;@TCNTBdU%)9uFM?dJ6dGq~;Wqk`M{{og0)7+_m$drZn_~6vLsW z;D{QfA)ZZ30=pmwQt-|>a589Nz!~c+K+{=l8U-4XF-wq~%HA?CoQt=&`uwn$IJJZ- zlf=i2YzrWeFN&ITpcfO=Q_u4fTxC#yR>$tWFfw6RnA~y*<>Sw!jHhemB5aGbdOV;s zJFoCd3aF3E{}YMwq{)9W;`Gcvo@4xxKniK!icejb?ovxwh^zOf zv}6L(QQ{SzC8?vrIuF)7#2x9ioKxC&omMo|Y8L*$#kCY{5n{xug7ZV)B(@9Za9TVj zYFE%J7%x#&YOshTpx4988rBE(mYP~X7E-t*E+G?873^hE6!Qai>E}vRuCSq?Y%6{Q z+a70yNE${jRwAgbgCZ*c7JsKrmAH_K5s?}rS`5YdeL2PBoRRd~m1{{YR&0pzwv#oa zO>7O@RbVaKz_htI(5gD987rM3jmwI+S_p}ZzA7+WLTes|8eSuR!VL#{{+i(NuT1bT zN}3`*0;~TfQao(ME)>`O35E#~mq9|5FFQi7Ch+RF_BFY~rGTWzChyCX#D;{q$Y$Q0 zf*%<)=;C>C!GF@M4qI?4<#^OQ{6`>Qm*%2j*9*Fbk83?*2tSst=Y@Te&!LF$&awG( zIl}q>;p4x54o5hk=khuQspQT;e+W9;7x50$n5Q6Pwj!yatQP`NU@fLH2u69k_}8D` zwEq6>D;Vtg+wt-4;xAJ;vo7ME^e41e7LPym`II{9S|LeNr`Oy!WK#Onc}et}Ck<;+ z=qpkVD;dgm8NlY(X8@^H5IqQER_bg=e^n=}NP`HiiL|I(Wrglk*-q+96nvA_4R0s& zG($P{d72?0j;|Gr-p$jvd(*z+iGqcNkiVvSk9EfvFRfh+^ zQL=vo6)z2Rt51j(fryR@N!b1G9Cct(9cDVp0cjC>w96X>$?iD)`_7+ z0pqL*fGV+hQIaV-NO7rk(xSR`h3KnpSRnyw8m2;R8pt3mJ}=CIIP&lf>nZZB`H~6! z_ymto?NZ46V4i&E!gHv25narSt4JM2ocn8H7@stfGOTNvv~a zexr=FcuH4Y8{ftgeoa_ofNIDSC}+KWO<1$6l2ybu>r=k+D&p6KwTi@;uL*0E^IsFz z#>;%4avPTyJk#U_uEIwDYe_)<##h}eGeCkho6#R!B|LZam!Mj#Zh?g^p^KnAK_3Q19(#g<k^wlrt}o^ePMgNkHuZ)04#2hagRA*0RzGKAsf z%R+`@VQXL0{^ExSS5Wd2pquwWD$!QI=KRHn1b+XT^H($o7XXxHsl~SRwVf89C+Ba* zB_T2Or#M)oS-{^B43Qkf+9uwxDC5jcl;)9@X_2-r_Hy5dnZ%48nif=(LAHCc zzmq1Gea7Um2f%aDC(^81##=d)NwyrP1rS;xPiF=&Bu6T|x>fK_0HTJQf(J-afh}<( zVPH-#Yf95y`0&#GJ;-9-SgKee-5dPYJyo%;Wdr z9A{40rwymTEzX}w&`^PbDZ@Mz{4#n1dYK$E$TwzfHa~s9osm-=tIIH@-ACw*L-fM1 z9*kk;FL55E3*{ngf3=w?^F47jI|%-NaEn6z2P!;2b@s=s{Ert%0Ac>ei&x)le6zl> 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

B7;LeS*mE||L z2t0v<24*x*RprIWO9V3)*4QC8YlI-fX-UozPe;*(CP9MixN}4V0ffVfgA9h-1Cd87 z5!}FCCoV+A!FqNF5Vg-ur=THg;FP+DU*;W|j72zj{`4dqadl$7DO~_4F|}1?!^)5H|HLkKoyz{A4B^R-dWA`>4_|k zZ`2U4t?WJ@N%wGswqvw5)AXJ_OJuxXk-iXGPkH!tYi##t7J$6M+p9z35v$9O0bdY!q{&g zdKhsJj6+YuP&|QqIMqcNcjq&LctyzYbkI{6O(b93q1MSA9Cm9Pu~SMlh#N#Wk08^+ z@L}R;XQtWRXX{*!Yoja0-^H~F(;@^rXsN1ImKz=jfeuj519H08yAPBZro0`Dx}tda zcfE-%XxvqhqC_q&N8kY>f!XMG(3jZsgS~jFe+(vYQ{QI@43OPX4GqH_9P^cUbT;jn zSdlRgmWg2(nFZ~}AtMa!`D<;%)1lFt*IlA9W|B#?7SaVc|4Jw%**Bs+@*xaMPR9Xh zsFFxIYxoWE`7yY{%KtBWZ`$0}k))0GXZ?yZV8npxOG4CQyN7q!VOeB*_>Q)aWV`!n z95h6N6j~s_7XT%*9sck4d2*@koCAQ1Jnk7Xx@8imB`Y&4D>ExAQ#82rOecrYLKq-v zh@E?4o#~NgkQ`588zeA7ax@dS`yBQO#zAa76rJH1v_%G`q$dx21il*HO_XaExNg7&)>B4mu2i(hnc*UYCVSVA@&u2ks{&tSF>R zMD0t!5e3f)jZ;wH7=4~KfE_F+`FIFn#v8;_kQrSBC0HAf5U^-WjJP=zMR8Lwp??rF zs}TvOdL%{*g}O9jX}eME%_q=S?_OUEry-tz-FPB9OEoFw>@SClYlPg6Dg~&cn7S_t zlW2(P4lxZeZqq`4UrkFVRvPv4Kr4qoh<8<=R?>&Mi9)2^GOGu|COA|e{UMbW>dq@; zS`^7eT6jLv&0sPH*)}6oY3Jd#%lY*sjvxl+UY|=<&%G9-+7KD9g5Q2qR(<*S_3IyA zyxMI>Z#%zA0Mv4PN7ocIqsjRc+Qtcz{+(6pufDyzLB^a??m;H1@?nqpG7nWh_fffn zD!>N0C!Q=n{tFjXvAty;9&nOl7@DQN2Q=3Z%$JXY(FU}5S>WBo7dSZ`&S_dem>?@5 zHQcS@6fswp^`u=T!>9ubHBRH{FJgpFEVR|H0g;KTIA{>qF(G43ZrA|JDUo`!u1<^0 zTbNM5iSl^}p(u)O**Yl(r}H!SD@6pR4#t4#Ko?bIR;5ZjX9HPQJ4faAcqx5eOM*l7 zcjK@f!jY+I6x_lTzBOj$Wv+j&I%~RSc&t+MbbnnSz;1&MEu+W=fffP=CEG#bAixc_ z-`m~2mrq~(4H0-7@Dq4s-bVFo|JzrO8L{`Hf;3A_#G?t7m-oMX z2u>%E#hPtY7HI}L*%*N|2v=+-NLV@a<}qGli&-SBf$Okk#tu&NlA0E~^!ukK`CNhJ zU0);b<=ddd@=Cbbi!-V7F0CsxRj+L zheI*HX`b@Hs4FcyS)&&2Y+vIn>>JQuWwq(}mTIY@5M98pUq9u={_xnZz~u5;5Odo9kh=0|n}hQ- z2*Vva(;h-Ka1MzoE02PB#9d6z0~=MJ`f!<{t1(Z-84m~3xlTFAX77o+2KUZKVsak# zVRu4I2{;&3l3$pA4M$(Uvdi;0S!ytg%MXktzSQGQ`Y$nVGW9GyffYP1xP}r=<%eCI zYKA}_#5cf;3)ddgaAVLbVSl|cLAN~p;np_Evv z@Pw_%2;DGIO_S51Gvp9;hr`Un)kZ8l`ZGszk!59tfll;OB&laT5&& zSYg13(N-ISP;#j#ctGcwcxLG`1y3+02>0pq2(J%&gI@dCnWwP(1}r0XqpGZc&4CgS zDjFsp(a>lH;-1XR$M*xdrrQ!tQ!I(VHaG+HhMenU)&~Ss;MOB*E|IVN4ypElZz&17 zPvA!6JIIReB-wD&fw2v3g9@1t{BoU!I^%5MfrpQe!5%=XZRYhs@1$3qpKTfjrU;b- z^t?~UT9Y*)+2^L56)e)wAE}Fu_bG#)nXsaQCwp^py!nn?rkNCRStY)#6QE&M-6KPU z)K?alVL&ifPejjVxWf#k|F}k1zX617_~`(b^3>hAFdP%SUy7dkWcev)b^Ur2{Btpy zKy=8k=4>{kY?}Y@FhoG%Acvzq#T%0W>4u85gJ^~?KJ_U@N?Qm^*?0vy>!=kgj3}KQ z5e77)p&;aWJ>hFI?1r@-!5)=+RdD?NdW6AP=q`CEBY@tH@Dc$F(y75RA%_X3(_M+n z5))%;`l1&62T0}Vl-D;znS_8vZX*X;z{gBudQ@T3g*9^_GJhk>3aAT0Yn~O1-9T{) z1-TUCl>M5fS}X^7&EKd3HhJ*5Nq|PA*i+3mnE8 zw}tC!G=23g8fx^23mJU+Sfidg%99ovNWtrjkhr)JylB_*whcA83E~@n`K5aHHwz}I ze*M+otMPk_4N2Q*SVPh-Tn>Q%caW1PF9049VBf2E#dTTvka3+Sh}b`vPqrnTZS;OJ)4&B>+#>=Mif(m!p>eH3 zN8~m6?$vVy?ei~*wO4GWw;rCj%r-KVpXQ(^0m0d98+SDf9gq(h2!NnkWcHFjXMJWM zbFw9~lA{s!SA8MP_!mzy#M=t@gb%^0lG&M;NvIL>Zx4F+zx-40elI!;vGvjxTfHx~ zdiPOS=)MK4Vq`;~S-fFvV>sOQZC77~Pvu18RN)h(agy>R_qAS-L`fo6V2Hrco{DA- zTkXB;&xVIypeM^lw4k_8)(Pri$V_u*L8mNQwxuEvneb{gft*~xTv`i=18NG|mU2Kb zHyEx0Lz+r(T%=a~LQhhbA7GBP&i<}QjCdy{+8!R&QbKIeDnCp6Z^_Vhm0BM zCc98r4j?e08Yhxt;r#@%QdBVcI`-hzJ2utPfp9?vIX-D03&N~zB)|p^%ZB1d?PEPw zVPFFW*dR`E=UJ=yAd6)Bu}Cy-rZqc;s7~l}URkb$YVZtpAKm-afrisTQO&oe5;?^}y4gavQtOCZ_YmXs?Xi*o^C zaX3-{e3&CCKm^u0AI%q+L#{RU$J9yL9>FnI|I4r9UR4sC{VOfacqS2u>hC= zW^=8h`~<)N4OrHN1NxmD!kwy5*u{fBED`ZbVQNTB{97!PD_P~INwyg3H5V%W;0e9c zDavpx!da9aG=WrKP?5rPpK{q?!b7%7HdLh0N}|HV0+NX81OjW*qNE|ey-I#xBLxKd zqHLvY_!fNbGy&z9&M?q6O!_%G3g_(jFX^pS+OYliC1MoY0HqS4;~l{_^?q>pLGRSS ziMZgF?Wcksm)^&tK8n~8M-qfON}p6z5-}In*Sg&!hVc><)^!uMyp2+^sfN*7^8UtJ zmtG^WOYt47ZfbIBgGo5?6#fhPVm?t~mM30V0TCKEG6n)uV5cNUyKu10F0!Msl$AFy zmRz`Cp7Xh+#v#Ys#1fFtanAj|ival(;Pi#G%2GMoYglXIE9{|+r9}9eL*op-P((_a zn^ZkXCn5(jjv!YA-D~B;iL;tn92GNTjE3R;n8_768KiKH+MsM`!>!EQIe&|QYCot- z{@bV^hZmwaCkQ74E3fCgER*K`H8zYtF7#q;0Xh@jW*K*oqepL}EMZT`%fm0^+OR#3 z&yNjB7C3vtSj&~hT8E%Gf{sEoCP zKdYbRW@NyMkk!f2UgPdp-_{uWcX{Fy6E33V)F)zG4Fivh9>z<85gtDAc7|7Rvhm%` zRa+;AT=pZZzZ18W{C)YeozwUxxrU0sVV0-~Y!V6Bs#LStjcF8;?}Fn!ZWPj_#OxfT zacNCFK`K#hzVL9e`1>RK;Bh-myBX}$z3*$0s` z@gX&z8dBI{*^d$7%AK#P`VzjY@il!-d>~qg5YN@|`6L zOUtEBr^4g64;fTaG=SVJ*G&}zQ4t}B8&rAhB>Tb~IiK{z!Oa&{ss49Iq{IugHo_7z59as`FqdKj%EJjkn~`+P19WMI2uaM7{90 zk@b`Vbu?0v*IoXNx&XF%D=i7IM;ObZtjY)0LvF zZdkd)YuC;cGQlO!DCK(fO!*d63lI^!xMH!EYHLl>=C$+_sw8&g!Wx>9wcd8WfBu)< z!N=~8Z@X8hrzry&qhQbB!CejX3|_7^{K%q97RopG6*{l5?IZ5P_+U}5lF8(Ep7K#n zREuh&UXGq&(VQ`?8rSOa{?m7CIxyF9&T7Fx zP^iz^jG#82LPsysx@5<-*?)RgV=LKqEjUITy@Y@ybaM0?A^?0a)OwT z5andyQ`pw1JSF)y8Q2;IR!6L)5t8M~P;pJHQsvAjB=8+Wy;?GN?o<-Q+}tYcE9kU& zGv9&2VrjN5&X&#O=Gl@evI0GCByrVUwqP1B&SvI-U?+>`(d#@Gr<5F#`0j}HgsTFPTu2%qZ2#eTl6C5!7~No~SC z>@HR1H@o9sg+f);#Aq#i7B*D_zpng|uw4tammeIfOd~TiDHbd5hD4fVk^G!J+cxb2 zrPegcjeW~tVksI_TFM^FDVlAbm5AAqEk^shC@Jvyklr}5AYa`8zg<;XS-YIZ;`YhX zJk`%h5AeFJEW5rqR)b``tt|V`P+2w=d30R`agC!>N(q;>Wz!D2TN}FAL7aI33!S&2 zmpNYHjHEqRH#_b7{bn%5v)SA+35}zOjY~@dp_{u}ww^}BWCdzdyyPWn50Qyya(X~b zT9RflAdMBn){lqGdb&R9pT0ZlSHtaU2zLh}y}Li|py2X%C~5Poqb{v<@My-y5ux+M za|&u{ZOYsxj0muXSfvzy6db&bOh9Z=Pr!>4MC3CJV9CfidTXO2+4ULBiFF+hHIC07 zYXYuRX`@ZJBDRRe!T9y;Jpktw0T8G>iMqc?xczTeL|*|x8}eqe_weU3h<-WV77m$X zEgg0xgw?xyR-0y?jvNG&?Ra=XHyh#Oe`C+EK^un0Gb|bU-?kn+2<dB`Ag`jD-YuC5z2Dlv3Fk22)=32*SVdS^n;JZ6ZHgUZ-w}1(r zrp~F%shdS{LzRFew&%h*k-sl24Wng6qUDRPDN~1srvoHz(*n)(6u)B`=%n18*TLgl z|5K|(hsug&bxc1$MEfY~kc#EQ+$b8=9*g1LOugu`EU&(oN^2{^H_~mlRs4mRK^J&| zgiL>q?cH2!ZCOq8%L5^wEI!a$9Vkw`Dqw885^%T0plKc!)LD~Mkal~zsv(6b{Q zN9&xnVMM%q1!i@OgIWLM;MxN*@h+}d({XfR$x2Fk72qIIVcNZ2wiIh@lq*ZOEs_#K zpycv|`<*}SMcZRu!qq_4@ore+#4Lbyk?6Y4>fo({O)g_8Mm=|4D_S{9J8H$gS`F+V zE9~W1%Nb;OUv}^W>7AFD^TaP{xj9sx^MOi^;0yiLU|I!@OHs&VDRr8P6_`S?SooDH zgvA1-1IXTLm7X;b9P_cHgDfem+;Ad@$pqQ_irDKfxHs*tk?9wFs>y!Ki@g{BEF zt^M^i|0TMkwlm5n{eY@K$0z`Ur_Uz{UD(D)_mTY}reZ}HYD0RO>R&^|Q`(p*8gT!` zBrR!*8$5)SI<0y?#T*^{R&(Aw0pMCP22(${t8tCIdgYyyI1gi7HX^NHDih=SK9uQ0 zSW6|uk%h>zdtj$Dr6tCGi256rpCw#-X%-W?BRd;SF3{>xY$adLkTHO-hj4HtdH<-} z>YsXQog<|N*N%~fW27d)8^jP|0&FHPi`J?y?gBQZ*&v9}F^FG#bbYC6+vL96dfSxZ z$xmWlLyqDMUnLCetu#b?Jx`Z)S+!#Id;+5!p{qM@8+C#NYLuT=Yli1QG$WP)!V%tf zc_^@-pS8<+tqMLKo*zt(R|4K7DWM25@tR;jI&pctAxKJLbM(9z_L?+XLw+l6yOB#J zZbsaZTaa)JJH~xGB9D>UVXldwyn7yr&nupP45s#s98xEVJ4RHpr)ZH&e@Zf(*Lt7I zKPa;ds23!^JjX*XKDMw-Ga*rtW+CAde}pj~qj1*bljRCogUp1uD#A(`$m+m_T$>^! z<6B~zyRAFdRdzMAK6xhKc=>?|(!)B7NBINf+{85}M!Sbu8%KIB*m#LM4T`~F0_UcTUlDi+;U@tD&|S4XVxkYmCo%E zRa*5teMOZ$uJTg1>>LsT8sr87CJ&z{&Tgcflbh*6h3R{BjvOD2RoYer8?og|~k zPSLcv2YL>9^n-kjDTMhw>?OKLn>uFqp?TNhR)8+%%a(%A5K+(A!14>sm5y+K@P8VS z0M^KP#_qtytE@S6heMo$NlIKT8K*1Ru3T1hAKz zF_AHeW&Y@F7P=K7(J%4(7()D@k@39+|En*pix6<3Km6igqxE1V;nWFsRN?;SKx>w; zOawDaAaPq_0Pmw|b~2`7H(i9q3FnJg2wECOT1QO=j9jQ_$m!zgLtJWvV;Naxmp4eq zV)y>@kk~_Wmr-~zCL;n#p4UjIQB?E8$w8{Zl zKt3`+xyCXScl-n=CFf)!jCUy>#{2?Pzu zbRa&z5aLc>z#s~MS4?-X{J%{&60c}j$ZA~S%1Vx=#e9*8PUnlpedYQc^xN>nNSOTp z4Pg3$bh(;>VGj8@QYnKeLj zEd^{gp-EunE_KsGbr-&eloX**vWUsx-Jp$Q^)nb)pj%rnG`UdNO2?&2MFrN+a~K}3 z%3&^xeBw&PBQcr~+=g zKxd=)(+7hzQ5jWcd3o)}m+~}OCsB!xZrpOTt z;|a57S`azk)NTeV*iB@_i^wvxBS@`dmWp*0Gp-q?PbbqpiurOMz*1&vUy&i2DURkN z0+{ti9@Zo%gccIvo(?CpfiVD@FvS}-)BND?Gb9A-^?H%WHMoPC9|0$k@LWR&7m|od zjF5)(Bfhpv{!SlmrC>3Q1`=RNsD^%yTJsc!9&P=h+PYaVnny!mS$|qpf1oF? zxrKhZ?E6K1f5+dg{mZ@c+4LS>>fbxNKv>N9&Ki8=yP86_+8Yl}rWe(d(d7K7dJ%F< z)A#lU)o#ZVJTkec*4581<=f9$vz|^OcX+Q=PbOy&#`!p$Ul2C`Sa_h z9J(^XzzBhFP?n&Z14FS6bE|Y>2o(XH}9xP zja;{JPv3zx&g~tmha;hFe+)4OD$I~MZQb(e4*vlOO;dqi;cSqiVW^@G6nO;$GQ*v0 zq(AHVC=Z{^A!|M&PxfucEbCWM#FWE@BDCV&}ey*q||Mqv(+7`OAF_n>o!7hP~(>0l^Wn^FDWms9=EckHHB%7lk; zbhA`{-T^;;>4U$#VClh^vXAW8^{>psHEaGBfpZMgX#Ud3h+Q$lbr}9-l?0R9)w<%_ z&YaDRNCB&?6hXeM9`?TM-Ip{@*pGwh9jJi=PhGu<-CnO{&V;M-{>UlGO9+M)YeI5) z7Y|qaRH`Jl7+`Xfvp^Y4-vm%@_>NV+}^BJM&L9MmN zg4W6F1x!9cipp$qtZV*UIQbY2a?rS#`42*zr1u^FV0NY*UbJ=o+}Rk9-(!Z z>#~p_1^o&v*L@tTQ;`37;3vC@mjqy{bnnJpD2%is|YTUER-?tv}!u zJeyX``G|TpeWqQHj8vy`Oz$6tY1z^lepv=W%K~VP>(7F0IlF^2Cto}Kno_8RU~&Y9 z-QmSkDMe?g@aTSS%4k4rKNu%%T!&tAboqYaz*NoTu2^o9ncQwbUkinA_9oB-rab@*%W4$7TE8Kz1ivH~ zi84bFzvY2`x8ggX#trG{SV7YL6i-)CTp`wUc~T2%A8+{bLx4UzY#t~{5H3i&D_9C= zFpgdL?T*s)!{RhVJ*|D;JO~&&f^N%FS5Up^K`fPLs71Q!3vvxLbLGNX!RMkRSGO&cN0& z%b`n~aN2XIrQ7hQ=Zq9H?Wd&A8z+^T9KagK)EZ(VR2OsCx8c(2TqVHAb#bLQKjH_n z&fpz>;k zdS!jEP$5U&FDLvr%)uc#qwP3u6!;A%pHv2!SqP%xD3YrrWe--7!~V3JdelGa&pDxX z>WkC#+#-i`Wu7;o(n?!icIFhFs6}9ccVu$90N{WfOkrx>)zW^l>s`wbeTY7M2oUq` z^ZSI`-VNZa9!{nS1~*k@4`Tpu#wlSZv(_#30I%($>LpH9k!<*&mnbq z!})?p;aOyt+GfN#vy>!Vnlvn4N8X$xUE}!f_4Ps;Wr+xHJR=-h)6V0`>_%OR1R_l% zby9tmN4V%LQGFAOhfEbWMWIoyrZ*BRjhbR0y~7_wpC0HdozUInh}LeI9*%X%tsX;Y z!FW(h7HV@VV_H<3)fIWu{;rA1_za;Lp-MXsl3dQOFL6lou)RK)TH(``(FZwQ>eEfN zQ^9Y)DXaQ}ie~h-^D9iO!@&U$m!(MmN$iXu&zt3n8;n0HY>Bu_=CSCF}?uE8^@M=tKNU=f7Nb$2GQJ!+6e zp^FSB>UMPi<^1qT2-k?U_W)M)H|U0}TcRE#oO(ea1Yey^CaCVnV@55F1SinY&v8l# zU_vxWXGN3>o^Uh<5FjQsj!FmIvBOpdMr>_#Evh!0OacWMqIJS@j=adb$gn8n&&@v#7bQ0@26aosgD#$Cc3c8epibf7QrRO4GtSHby&Oqx(Nz>u;&my1KPRJ^ zKFSWpYoLbUJ1XGS3n)uU3BYSC!wkr{9A!UK{lPhQ!C718s#r7~U^0foO-0>8BnDKh zrnM<5m*OQcqh8zP!ru5uOIN&{PClXv<+NIVz4!9&Wigg<-mJn94YCcMF56@_s&F~twQ=ReC|KsaqxW1pVLABzBfRMJE~)Z3ncx^__PDF>tV{9)uTAJO zhS3CZ5Tw27cllmJy+wj)`>l{Qk%CP?mujW?2ZUq6dr$XMr9#;W%32q)W^20z#iyr?I$I9hy(BDc+z* zK@EWMX|^s|o%R{TC(OhCG%crH8dsJ*KoC40SfrZl^Mv@$nxS%_qGBATLqs<+QM~Gavh7Asmii)v5Fm!3=ACr}h5gqVIJ!3)AOb?2&;6z_38YJfG~KLB@-u5dR_ zju6phzR%|R?vrUm4LJ8`Q?@jtmin+mc?M7s9!Pyx>KB`nhGM&htq3>-Kqw~+%)D9vJUI?ff{*k_ws#0&Q!@9Ep8 zP7m{mAvPHWb1y1T8wBuUu?l9;oDKMHQ_7C*FY z$#g&p+3gEQdyLytl-TVkds-+MW15{O5;r#AXsQ#~cBDQzheG_zFV(ZZSqMY*>#wfw z#)s%x8@)_V+L6SX!9kqTRfnOMGsIpVG8VAc6fEgeD6(?27BEx=G5x8T@R5DdFgY4PmvgCTfAkX_Y=FO!o@N390Eh97ZT-sM~M4s@6C6w zJa$q7y%n#i24hj|zPr`Tk@=j_P=j^^yH{^>#LB^;cc?e^@bTdsaB3w}@OlXs&~d>? zRwJB6=jWCq1ztfx%Y8=+6Cq2CPQV)q*wQs68&Gs_Ll7N`f+AO+!{?4#PXAT>)NaBA zd-wkoK1U|b?dm>aw-se~?nvf(zV~LpiweU7iB9aj>(7vL9$s8(+76+HeM zsi;h_QG7tcgGPc4ABhaS&gj5E87Cwq-GY5?jhf{v+@}9YgAx zD-@A6f3-ZA5yK!*%*W?{vpM4P`zPnPl!4hGI%IHc_$w~GSr#S6mdfBm6neN<`FWGh z(e`_XDAeK#pe(a(NF)U3^4jleRxG*{79bijvMm-w~Gv}B)TvP#C)Pq<66K^#>7uMO2$)Smle zF|~-y#;%HG?kC}*4%N6iRq)mnhF_<%c#_CGI}u|`3YMz8l!Lu3&1ocPotO#T7jNyX zVX{9pBF!TFcIi468(o9YXtHa)OW9#G22RiB7o7+ZsUt(TGGicWi(rn|4>d{7`&)1* zRBQRoPdJ&+K57%L>8NlPBdyF<4s@NyDE1S6mvm;hXQC?=1zdWg8yCQ9Xtc24uXI9V>>P z{s#S~adU*Bs{abpI#K+;ZCDC@b+#X21gZU7ubS}zPjmr-L&!(146_{__ezSzLD454 zXek^`1XG)|q!*VKX=Zb#L_2CGS%5B~no2Cu=2K?L=k68 z{L`A7G*MZxl4#+i{-a^(&4LC_5`;f$i}aZEzHR?aavL=doHV%1xNuA(ZASBu`d#WB zh=@`#tp}(mwIL-{V9O?Q=rK`}BXkMB#EGnj%6b>TOG!eB?2XHfaHF!mJd~Mph`@u{ z^2I=6moAdr;UP=*R_%Tf7f*(Qh9lC)h=v&Q6p9h(0TzC5A(DHScA0ucK354$Cs!g2 zbN-2Yc!?F-z9!sP-B1NgA|&zT2wh4Z5_G0JL;0YJ+F73Xg@YiFMiLakSg9*&=r7g3 zz_gNp{5LN5MulT%t6l$3yblXnnT@fah1d-&I67G1?(kPOEZMMNEL=70L^pXUI4xr^ zKgO1cn5TbMNUBUp%Nec*I=1tzWCV4(#NEvFc&8I4jYOO-a!j0Rl#nI}=DXmq?_CdB zq$vd`P@7Bq+7PDs78iZkze{zXt*E!q_1>=hG|cffQ+oo$zFGhSpM(q0v_D-Hj_TN2 zMQTHP{i30V>ArQ%Kd8P^nuyx)A=ekVC9R!+AOK`D_hYjxXjRs<@G;2z z=_m+4STIVhutoG@U1E@3;tH5ZE+NaBMS9U+8#6-#QQ<$uvRm8vP3&!@EJg|8J)v-y z_yUo|X;CdQ!*oD2BfHwqVrv}>$Y?Ag)9q_O2Yo;ZaJ;oiSD>71u~j>zBo}ox z;d_na3-o3u#Jc)8luz*VugH3}17k47)jtAdMi=S6zQPe6yuH^P$DEys zm{J*92nUx_-Di^YQc??=WwA)F7N1ZG;R02I&t9ygs72T}h&q!+Q2<*Gd+)TDSGr{P?v0-qv4(+onyiQXDP$+T56AvZU}CJtCe=Tz%)3;XSXQ zCC&hKjnT=8XX|-UG1>BKRmWq#I~%oPT2eNv6Dr4qTb@`Ai?y^m`ef8}$RcSxfkmWM zbg!=Q6TaO^vO>YKN5^xAvQN2V*@cR!&jSbX|nLU*v-t(62 zw=MOy*$sp}ShdU~Qq+>JSXmk$i3tH3?^Z0Q)M}xqQa%k&oOr>}x!a@rt3S7V^oCu} zVBdhgc)5aN4=Jr1s2T_vYJ7pb;bf441WU-2@RE;TPzj{I@j_BdOC|V$8M#ompRs!rjM0blDq31?nCG_xZjR&^XvL08b4LS z#(7S;cF_~_A>sQ>Zs%SR6$ezkR9>VJIk@Qd5}AHN0n+}8j2A7B5&_HC|g z9-=DAZCMf~wKs?a8ae_~B;tocfSu&k1W#ZKYQ|(~L=?XqdjllrHcXN)PyK z)xrvX3(08?;V$Wgr8X5IQKie1_>54%MpYJUAr6O{g{)NS$7;yWB5InXwo_FHkHSs{ zW9EcUqUtv3qZ+e10PnlK+{^aP1$g~WCl*7h>8~c+-8CY+Up0zZ6f^w}7El%h8=mPdbVz?ASA= zJx3hAh`^}tmU0O)^98coYSu6fA1Y-UY*&t|aulM?p_M$%TECsYyGt?7|E|U^X%7mZ+`vEg^l@de(`BE^l}uW1h<~@N=a)s@-&O` zARMPoi*WKKIojmJ#Hupwz$qj{k60lT2b&MqoZ-#SG)7olZW*`9OB+wP+vKHmSluQs zZ8{uc)Q&~{EZ=dr$xCmOmrBOf+vKI1x%E=XOR1t=?x23G`G7=a>Q&!a23^{jeXBc% zyXE=d1m?J(7)fd9gN*Bkz_m6+6twT^1>xO;~g!_@Lt zh6bvJl?YMI6@z6d-kUMAlCvR8nx5kzBN0*blOg;kElz=|6ZD+a&``tXMtn=KxjIg6 z1Q8Onu>2@^LoJa{McwZrcxKs5CLEG9;}#BtEW26*ub>Gi&AT74iIQ13MODy*xI~Tf zcGODYbot4*(*Ds;d~Y27CJ}$4jtveQqc&3n$TQ_*Oq3k4$@QUeQu(^Z8b?#)+MI^` zz6|o29ZrW*_clu!I%iTz!YW~D{R<@PJ_&pd&6b0qY!ma3GeHub3Qi|ys8$SI z`qpa3SXO!CIr61%S3mvd_sK>& zi&e|E01!2(&ws{7{pl0r$>h^aK^3V2ILYr8PEOvk)=gNC;9m{@h~J)H2K;l>Mq|o* zUB$cM#2`N(91j}+w~ys8S->rE6{#FubheyNSMW7_Hy-i~fbl<@oU?qYlu*O=T}LkS zyKoTTJfocmdCi?aM1dm};O5;e**PUZ1o?U!KpvehXC88drc)1xaP%z%KZ=*qLLPou z9I7-#zcTXd_lHx6qWSykCpt%HnS*9=C3>PPpwp_<@zGaXmpE!5WTQtwso+A>BzF5^ z1c!~=J6YS6w)gwV9L$49Gs{=63YfTqu>C>f0MnC1<3> zl5LVKW>rE6AP3NlrmJZik14~cG9f*__X_8P47L=?Och$Rg%!5d9knTJ-s@VhHQ+lz z@s;?+akl$(Im5`7Hp-~m3X)aC5%xN?E1q;HDlqID%CSQbaPoIVr^K>bKRF_HpEmN( zD(hKrI>*shTaLHC@^T{nuDqN@ESIFzTE3vLp^+6PK77Nu%=}||VDLmwH-vmg5`uYb zw~)%oQ7&7(4MfebUsRl^5I-ZE*EH7y3+VEUXc7QrpZTH|RfUM}xVE)&kMT$hW-6*Y z9L?@8tnr{ae32qjH@Cvw>5tA(Ec-xoo`=2rk9u3~T90ZqY79Jh_~;7*hR1uXGjTN9 zJUklrbQl?>H<_N?)4%V14oKXX7_#;)z7}%q)D`?b8hN4Jsk5seb9cY4mB13 zSb!I;sOrdc{zW_vGSul}op%8^9vRQQkACSp17Dtfjl#oQ(<5)-{U9^6=k8Pg%6rLI z-YcQx%O0V~IL!#=K)~;WWMVA)I@R&hR!X%@Xo?`loQEYv{4@)6%Vb((AqExO$=8)7K&dcNyyq~B8y>^tXNEY zYstV`&ZuywInRdmmvXKSaK1A2ZZV%XWy1dhz$Rb&hgwBN(H)Y~`~xxw6GSV(d7USIa=TKzud~+4n;m|k0J~akX>Z!>j>9T{2YL^+>de$Z}8VdN>_`}l^sS8;WRDlo? z5WU)5ary(-LXE}n8HGz=+_XJ^XJX=#43dy_K_B-m)H?bXi^wM{q4Hhp9llxAJ@_eV z-NQGFy1PfB)>{$mUoRTMJr^xQ_}7bu@Qu4)$9?>2(EtwT?$a6+@vB7xIFt)sk!p;YZke4%OV1!$ zxvNSMwv}SmZg^8=jwe!D6GzW>iAoUzN~RH>29=6~KRKRwcEn?iQ1%VqL;}klB{s* zX$XjLtaK0P5PW4L${&dU(JzNbs5ZhGH`05F+Ez{OEH1xYm-B#va1@glxvVOH4C$_d zb&;_A)%1n9xn-_^K%H4Qyg|vdxt6L_|C_e@6&b$C6iwAUAq4Kbfooodxuv*>P)a)+ zSpI02wHtCDR%3V_g7j_W_fnd*Si~-fbi_gsfVG+hj<#MT#TTNxrcyVHaaN-AZ(Nw; zqbSI072}X5|D~P;I2M^Hlh^yWTSkyeI5MeFP4)6wV`1_odUgeKJK<$I#$X)7FxJ{j zM)trBU9X-LbPb%JA;04Q^)()A^>Dl}I>E(Yh1fKH%{Vs5H3n>20FJsHs_FR{i4>eF zUyJ8P%C2UJKyk3RIEiuz%Tt+vFwX!HOAEZ*m*fuA7ka(kJ)z(19;51-=872JMzG(6 zHPZk!K}QHFo^>AMFT`s3(hPKb0_d5PN&3r6{&X!0&;rnja=dk!oSieC^Qcm%ddURw z?QB^T;l^vwEU7CaM$58#FmhY4(|PhAdr$uJ;Mt4aJycw6`LXkZ-_o6yv3is_{CX|N zve6o=RkdZ{*=VIv+$H<}kKN@gG55)ho>alH=;*1b%R3 zJjp|H1mbOi3;JWcc++53nVszS_?y>z&)*2!=r;`=RHoAJS@NCNb!_OwOD9oM8#?KC4V}n6ZJqSH(1}%hltgd4G;7+r zU;JfSXm4l?MQ^Wlhb^3Kq;qbK%6o*l?I%C=bL#K!k? z2jcVd)`*d`Cbdk$0Uumc`r~2DZ8f;P?a~?uk6*q#*x!Y|QY1NMMHghc2a~Q26enF3 zFt%L@xYv8Q(ybQ~uQCGSUctp%x!GxA#KCKQH6uu&_2Th&z-lewuR62 zHmUvRq*`=k7yE_QUNvy>n%MEJlov#Mt2el$hQ*SvedD0qFT%zV#kSINwTdN+kwxog zwFPqvuwPjC68M&U9j+`8unzXgU7@i^hft7CA?2YEXQ;c`d?pOrYy6(!OwoU(eXihX zCUE0$pBML(eBLXgqa-pjUr&7_wOkt7by?tBto(W-RevtS9~I~rrg%7qGo(g=l_3sj z$*wuu$QC>^sE}Zf$vfh}Xh-ELA%!wT$pR8@5~<&eN975-wh|!1?P4H8jHSTLaB|C*Q1e{3Ovr~EuA~o|E!IP!b2LQm{%4h}Z5u{07oRLN6K+*05RfnEOPC~? zhKKLf&kdY(dU_kLa9!7@3ARRa0Q%(*p4!2AWj>+6X4OrK5oDT?5HcJUvVm+4!GlspXO z_qN8bO+qw>=UR*%Zl&xaWM?$`9Vfafeb; z^Mk+7Cgb%#{xQd$w_J$B1W4%8*oTekUAm)d2X`I#$OJF6{*GUJp$Z+J(&%9plKKc@ zXT5?s(#5bmQ+uVn<)}~;1Qv26$3b^08oiOS>ANL=u*7Tj_)JNFUhqgM2R|jJcv}Kr zJMatk01@oX+Q}^=-oYAIs5JFkRO0#XnWL!xG(EZ5(oeFe#r2=Q`0A@I)_;2RVC&IC zyxaZa4_o&ie(~V`ZT+X;f+KG0KmCud|1>>mD*dE|u;E#@%vdMW38M3=^;h2_TO7hI zytDx899_21lPZ;n*ccB!6*H7WS6&QggJ<6GSSn7bu*VrNMM=rQl*ybAXK>~qn8c1k zWLLbctAx`urBXm;)lygKwye_csjQNynZh3crYGyF5?c@onrcxY8`qH{qoFthe_~XM6x347O}WK z+TGqA%>-ttDBX>dmVIu?bQlxUStoH1!H zO1L>n;z0(7grpj$jT!TEBt|3K-TihoI6a$RAnbLD2LaBI;a)SsbX#8Rw!9dV7RQ1e zx8=nelK(zFhmh0~ffW3w0~*Z3*(qhEXTp{=o)AX=>&lCr_QxzL!(#-;48?Kwvc-g> zye11W*Nt~tEW_O`(r#d)U5oI@k}5X2f16}`G=Kj z0vss;x^HOWOh%&#a-^SB9|jkAG!0WlZsNHj$^4HtLHRVKWrM&<-d{gFJHHE~N2^!d z#Ydwd>xTgsJSFBpH7bRjpT2|YftQC*UVcX_1W)_mfR~a102?u5@<0V~T=G!y964Zz zV|e<{FJUu^6=!0f74oB7g z%c_5L1o9*AYlb2~A*IcOrEGvCpaqPHk;r=;<}nx#=B!i%);eK~ARJ=f51+plk60s7 z_gM4W9;^1>O<=7Gn}YnlXL{9NumuJ`_xZMUqq>-!qwX9mA<4^r;k?O>wZAUh0V{a~ zoP$3#H~srTfLe==0799C7Be;=IoNi&`w48HlYKZa__@M!)sNgoLP(=4zhm#n`HtBz zV}{}Lv22^nHm#YJcp=Ek^QAWBb6(LK=AfowJFDInMNu5uE49hJ+R~9<8)~^U*s8-R zHm>ya>4Llvr>DO@=2elmu!y~Y21vzM$eKGn8ZiMMpx$4X5mB`d=MKOZ8OEFrs8s~v zr>+#Vd%L^$^687e?LYr^1J1hFZ(iB&&-TB4_4ti^{G$RlOM^6zCM=Z6;;gwu#F^wP zG6;4oRPF9|DfIx=(FFT~H;4irgIW|ggJf@4r{1uWz(n{Gl{qb@2fRS6VWxc1mIV|` z-hci0o2PrbVU7O&)fg7Y8xLrq;5~Z2(sbC}y{CI`BCsGI$|yn*p`r=!t#^gK1+ozd zneU0w;CN2LI7qtm#z}EP^27rFz?;Swx9~l`Ln425%;89o3cGpN2Ff7)!MoAm=yyRG zqlhnO0nQrO$eE^v3Sb|7)Z9Q+p^zdX$5%?<8^N~Tvo|7p33GC1%F-g2Vw26M6JAC% zLe1+D*~^hB(;XYNfw(_zh^HXFFV9qT>rxi&J;!ELQ6&4)q!QL1f7{#51yxw+k8xGv zx>i==wal`u5lEeHy+v%(h;@;xD>Jfio}o)lxlA7men}IbLDJhZqV4J}7B+(lfM+{~ z^9|_mf_&uNfegZTl|Hy;`1#UPDf1EE77)EHAUYi$4?U5}J}eVl-W<`cx-B3|`4W}C z@kBP~Z2{3tD2C)Uk~;?{94cA`T}P~QXw;~QK~v)#HcDCs5Z_QY#w(kVb6}8vII+Ue zXZ;H)_9ZIRa4fYr?Miafy{OPf=ZH0f>MJD{#YnPSOXj_yg0{aNX*U6*|2)5&EM)8ZQQt zMR-8Trp0$ub)H@Pg*Vc#zU|N~f_`2YAQuB1r!-DYQ-uG8wrPtU+8@)xpQ%A;F{9HH zXNSapH<@l%`fknGSYMK%BFZnnRL}l)ph-5WUw`#%Iq`j2)<$z(B<K>#snQLCPUw z`8FfDK&FzU(hw|xXEODdoWzr3efEBGJ~~3408kF6X_i8}rA`f2RrJyq6M{zgIcx_B zEz^ocI+MEY4s4f|WnM_|lW89+;}M|AUt;iPkA$2LPU%i($h%khY}9KZ}+{F*5(h_=F|L65fEfCVEVr9O zt^>(XVFlCS$@{sIbjk46vUx}jZR9ISaTBYV4n9sk3|f}6%DiOelnIOrL}y>J?xkp5 zG=C5RBwr(|mT!;*lc-ihVWzY##TRLZRPGDGjz?-bUSMjTMP!u4g9PAZDokrDXx!GS z@~ZgYc9qM8+HRGFEjeIyHfyBZq*)*Hjq4jCzGxT3w47Ids>j26e{47K5aqDtM7Bxl zcX8V2>8!$m%EK?eQabS5TIrIK3%kHBtf$ zdJ`u%Xd%N#&Zlfki#OP2B+-O4+>qyIa4ZeV9f^G*HRWe63;?51_mzLelM8O^Nd;7>uP?Dz?2M9$tIPIVL`0yd@ zbn#Dj2}47V-09+Eai}cpzO*z(=+y{{xX22Xm+%vty(W zVki7@43Bv?sn_6=tmH-Yo|O6mWs-c8>ny8vCRod+dmBgpvHJHAmNdiX2|3bMg@)v7 zFBpVOWM&UIDw#xUmb5J(ZP|$HhH0Ev)4n@_)$wWDLNfKYVc-CNt_G=GtO+@L46jjI z5_2K%Q{1otK)R=X`L!FxQZZ}X4Mb};5zRX8NbHPE$qHC{9!-llIY9syP#PX4rXs8OLoi9TGJpsTjKgx(nQ!?FhSu5Z|&~j`1wGO-o$=z6qVeE zP6yb#qSpgkiuWKI?OVv)a(8;ee8R-|6eVSekkRQ{Kr*ZaB6FSfpGKS~i;8R&AYNdz zmCBuZW6QHdMv8}$s$&s%l0JS06Qxvt^z>SWleoslwZ*e_iA0X$G^2U)X^b>%OLD6v zgEWs4pCw&;DD2+VXdZ!T#E?<{M#dVR9S)DKk0qRk*pu93*QCA;baw55f<#-gzap;b zV_kz~!0;S<_Qpu;LquXDwDHC63tR#m9r+tbPusZi@QIVIX@7lQ&sXz|E5mM1GVx*o zO_%D|;F@xr3sl(e4d!Uv`%Nma2EH_kEew}@Ta(vuTnEDb+ql!rh=?+_?Ub>G^w@MP zDksT}#wmQQg~f#6?aVPy`0rCgIgi?ggnQ)#JC)<*NJIVs<+i8Ud^BlaTQ zE=P8a5sbZk-38TiUrTxZ=Oy_#1jFFq+&_Tpb8wl`O}GV+Rf?6KJ#Y(Gdex)2C_Z7)t6<(qg^(10#8OSulY4MI z1)!6PP!XBet-$xho;9VQxF3lm~Hs=T(r_ z2=on>L6Y&n5zFf!dCRaZ|D%tr*Z;6NgDc? zyG?AP`c(EURlbJ4QjECXNj`39F3MWd`f=unSL-R?M>SU>GOapsgZqAd+x6~Lm79Cx zBr(Oc4z20gf`A5~wX163?Vaah8#i?4L!PE3<5^5IsP<;4aiJei*(aT)&Tl+47T4?W?q&~0C=flwuX&4Si{TUL-bvm^bh$Au# zz+Dr$GR^hgl-j>=Sb9fMVwYs5kF^oH-TE-Nb4lmsShZFm{3&hOlmvg#RJT>2j`4Et z9g0P6AS1k{kCEuP+bU4!d`7lIjkDm-H3>UCL`+FTNgTNmlb)g$F5o?reUxr>4vw`= zUcTD@{_&f=?nd|JcX-S3gjw&Ozj(d}^BoGhR%q#ZqXJT!qN&)AcP)#%xSJsbNw@xz z9%pF}-G<(yRsc!-Mwe)>E|g1j_&pWsYA++D5v&X}tt~AR$gaxxe?4e-SuHxY_wBv2 zJ{W(55?RATtM20Y!segB-^{>gvpw>5 z8fdv~bNdTz+2P~{eS(h11joaZ^Qm}YDvUK8iD`X9c<8#(&~C|KNo7XDZG9w_Wck0h^^p>M7z0VlZm>`AH^$OPY`o^z zu+d8;`m<~v>@VqF`nB^Qw9qPg7~Frtpt83emJUaH0bC??)Y*-P%>2V&I?ESy+}h_c z1p~i%^5Xel_Fp|i{~``ULDN9I=xGn71(0^Welq}g);o5y&`Ivei3+;QiqKXO4s=K0 zM!^p1Jg9*E6b^U1M@aZxh zw2G-rKnLV2W-519{1h(w~OqLGcM;54FI5 z@2m8T5e|trcQJGEn#+42oTMyTd#h#C-3;Rs?D8F=CKt3)t;4j&3#XO2fiz~UCU$-`l-p=tso${B&t1x>dRvQmnw%Mp+T2FN0;BBMCFrf+c4KFTsRbXt@Ak~@wX$)YM1OJ$^G z=El&J((*74MLfhJt8y&=9xC9Hx*|EGtM&ct^(pjJI-p~CcJDJ49AN#2uf9NC2fUyB z>Wi)Pzx;|nsQ>Wr%SR6$ezkQU-`{`m;K9Q`R9}21c(P&7AuXp>^#|6e%)Ti8SoVF< z{Ga8|jQ-p@D4QhAaD#O~NZ>CYJxb~Bd;rF{fB&nkuUP-%%dhT#`3RLiK>sfuKKSys z{>N{@Lu+@|s@>tqkO>g?#)A`t13cl|_UgqH5)ZxvwN~FC!SHx8nw(rz>uP%6wfmK)U2Uqys^VfTuXy2P7 z!34&-bB7mPZ!Elw4^XVw4Ray+P1y1ISd4E?-6r>9NSVeZNj5qqAm{M%fTPV(+RRT1K3j} z1&~-cj)k0KZujesWvAow(J>1HNHPL?2;}D0(&#aJVTBB$ACN!c&NB$N$B+m#(cot!qdyrQ0&yP()w}cI=!ggz{5&`ms{sr7Q$wVRjTQx%lYu-&V8b-;%Jc;`9 zI2~LOa3?|mU1BzY59b)^KSug|s+t_)9nq{;eKQbWlHP(UZ48R@nUrKEG&2wY6N3Or z<7aYZ+Kbu;;!f_~!3$epQWL=;EEh{=9#!+~0J9#YNUQ^+d)ta=XE*0Sb8gO@xty(% z(jAY$`C!BMcxE`5_NqJk$X=(({74&YOXQYQI3^>OeXyb*ocI-93*gd85?F5E*{sek z0Q9)}^G@}!_b2@Q@`CA;U+SlZ&P}FT2dC!^U|2ZF?4*Yi_jKJNwBO9cz1nnvCc4EEj&%moTMds7Gb4PY|wJQf) z^ct>D-u)fVa7=H7xF{PC<^3QmbP!1}^BzdYqjZoPFW^9bcWv@lT$;%SM^ZfIixf|$ z!!I}Ws5k*e6Keo4gKIz>Zh31&Hi|w}x4){0Wuf+0*xfbzA-FhpJxwpVQS_9GH4TSPvNu|G9zE6ufHH!x-@L6 z;aHFWjUVfKPFj^{Y?)3yO7Qei{uR!3+~z z+}RL`6Ewzr%qSVvXU@+!T9{MwWFcRXhdRb2v|+=M`6XD)_6PP+vRfGJwg~?bqicwi z!^MXHOV$D&&dK}Js_Rd7ncbI?2Sm5~G|Vi{|E^xENx2(l5|#s4wt$p8(6Kt^>yFAyTW)M9B z8cnEoH9OTWUWRj9;fE8)NgO``>z++;k2vch7t}t4ap%{_EXr{4Fu=4K+v&B=4Cxlq zHc5n_3=oACqYGL_$Qz}>Z88R8C|Ww=n{qfaaFT zS}C;Ru2NwW)Qxb|=!NWP_zxT_kU11)aye`gOsEct;(9M&*30J&h(pK-zUiKwO~zCV zHD{&LnBxR(0GSfw5eZEx?pvxG=_wiYmnbG>p-1MX0jCLg!cu`{jHjSn9h|*~D21#= zCZLZ{MbzGbsfkN$ygrvR70Ws9e}q`U8f9?xibA49xfJ7#wM7^imlCg_!^t$;&21gqdj$RUT>NHM}KmmtgAyex293jCKzKtrPY$W`XK)<;BF*{_9V{QeS zMXHe}AdxOXGv9z2JVz#}icN!7*jp{P1t#u%2a0qlGGk~k4-=kr9&m}FyN%^SiVRg@ zA?|~YC($qE0q>pDzlj|S{E3hveb5qB0Lkt9&zQ0;ZH+*--m zJDEn!AwafN*9eNJ!q=iKK2DB!sEg3HYg+YHHN~~yUyGVHwKaP4po!P!2>^#Rx_|Bf zdK!G1o}_>m1Zpejr36RQO1M17trM|KJuJHCI4lM_pxVw9|2zDvr+Xe|prxn+~laHQV{6<3=9tjF1>@I_Q`S;nxNt)h&bs08OSy%K=e8 z|4-HVx`ThS@8Qi$EU`uBYNOJ)R!!a^Cp=R^irrfw-Zoro)zB}yVE!Jd-W=^hCL&iy zm!z-@h@`C!sCnEBv4nB!D3p&mOMs|&lp-YHZFLS;0v(tn1@Vg@H(7;``@ee|1cKBIYuKr)*}QNK@HTZ$1F{(ZZUc`u(((hgl{2DR2mf?nllwcxeeTEi~b@-^C=&dQ_5I2r@$Ijyw#4+z9 z;7qo!90mGFH1#_KaFZAI1Y{dG8LZ@uA>nh^ap3j9)Z&pahesd5j0k$^C%IVO|Si9!ql#2*Z+s z{t+O;)u|Gvs=ikGY)g&_31^+2pcEqR)Pc8SWJN?CQT0hnnXpeonDr=HX!Ox;Z{D338d>r7ukLC4jckj4d#8&572}oTIF66`0K zty%PyQZCg`3a&iA9Dbq4eK@4ZFy%pYE*FG_aVz&MiM?y4n3)Mj733YNY^|*KvaQU)d-*2InB!(C~WsW-oGcG+|yv)1L>0uQORh1 zKqF+QbBMd?@%$ihM=!`OWsULVO`uSZLif*{_BGyW>ZbS_tP zS1K+tNnb2qAdJfk6R#}s7a-(~ay7*brkM|K6cIkST%dyoL=n6)RsuH>0sN_>X+FFP zn!>`*1o^~djVYs?hua;YjYJ_y3A zIf{DnHI6?uRHShB0)8#1a}DszNB!GFgXY>#BbfsZR+ zWF)NtBwlRk*&pGyoLT`QLc;*mf@P36Cvup}U=Yg|`wi<^by!AJ;yjL8p&cWKv;oh?$=0m0>Ut<4{S{bR-z%h!L77mw6anG zsB{tv9upHz;-|-gw&2w(v~fqL4}n0hfP}A=XQE|ojkr)$syu}1hPZ8L?#bt(y(2J9 zb$QX()!Psi_NbzVnX-7iB#;|V7nDIl%S;1@+*hd-UDOb;W{0kKRr)f02AH{g@&pgELSg`t5b7mk?gDTWVgeAPmOPaU3W;S&cPuMO zFfJ9h5F*|%fy#Gx`)3n{$&zkYy9Y>RuLj(JZa99$iw^c8O%E6d-t1CG%218KiD5b} zY#3iCt{7pn4E!~elc!RTov5slWJ4oBHiY@+^1+HJeA3 zkAuBO`8VtWv;QAMkcCTzozA-fTz1pa0|i-hm!@tU3dKqta<-V$$jF zH)+)6`|_H+_Lo*$?$didit@t;Cngv$`08w_`PRHVKc-@c+=&;+5}e1Qm411|*u%>U zVJQ->CekQ=0^dtmvYv*;mRxQg-Y7~}vzZST!F04NbZ17|4w|9M#QACC$1U zGUI$#7B*c##Lb&@6u99h%#+y8H*9T%x%f+%PmL}~)n?-GCO2(lD$x&c>)Eju*4KYZ02p^#9<}d_sEe{qL;P&`bm4sa+5cY^G>IO;##j=i@l20z8h&v6Gp0irx1l)xt#`Q0h}=>Zq_$`$n-nymK{E*<2` zPI}eBro1*(Co=zP7d9ROtZn_T>*_$C&8K~%XZ0o2pM=+L)u5mq^Q_4>buh}Wss{Z= zc#gaAzgZnh)=PI44l4K_>!*u2*=|rDif(N;TQZuGuGjhr3drYEc)}D{cPyt%Y?jq{ z&MH32>;wmac+lo?C#9n_;4_VJVK?>vxKd$Mo&zS2 z8_a?VgD@lB@Mf>9kne!*CA*o0bHhBvqUXS1>e@Uz$m5X44L35K0~s}+n!bV;ZEj37 zJIQ-U-8sUQ@_M&JZy~(q0W*zipG6#URQkx0&@XbTCn`}tIveqv)4wzxCf5#snBo?N z_twxzp;?*M7S;vL3a_1k5>fwxcR>7)5|Noi2)KeoznA)ca<_JHT%nH!G6JXJxjj@& zJh~3LqzpbA03?ve_^GB+a??k}3p$`(xY9$4>&yvj+~fLP-|Y?%iiNSvD;zz-c?bv9 zOMT`o13+1nXXYYw{MC1$k9m%{2nwbQ6uCG1V(Xzf#b~a}^I`I1p@f3WQeFpq3=NID zl?wJ;uVz6yA^|q(F(3KkGM_gz5?z3Crty+popzWfpIH_ibzRvybg*W?%G-Sor=4}_ z3COCX*A!-Y)9JtnVPXvu7_L~dGnt3(Q+N+S z81UgnHRzr6KobpG=rKTmPVw*oVqlskbk;|4IF}UMe~330Ff-?p z8PBY8OiUzk!X$+G1L-l2-N+J)+?jMpI~8Lu>;#dqiJ}i~V0u*56bg%qgD8>o@jEPB zCb85p61y_2xGjtwH!|yTl>-@VcRPtBRi&9q{A zDcddqYK?;my~sL&ONHWudp(|M@ePaPss{$l9X?^YmBVY;gFm_}KJ$f7S0t$BZ|`eU`8ieYBj!ajH5Tjx>^(3_2rtq0qiEp5bl%WNP_nE$$*NVvkd*U%_*Me4OKwWcq1BhNWz`roB%cd;Jgc=Nha;|_~kHo zuIiFE5bQHJw!_$;&$bJ~9@Ycbn<@A;ROx|vnVV1|7hJ+(WpWLC-OH!CJPSZd^*?yV znISEAj6+*L9q{T|UXSp;9QrQXNjytXbCVO3;(ik?G!>Mp-eIDZI5=w*PMSSQ_oJmH zF3GqFKjQeQ{wsh(6sys*9vFtq7)hJ5PyAE|jGO#&5*B5`f`kATb==hHJpIEg*- zpWi>L@IUBvA(`ax>>PQ>BsfLFX4EELKKhyr&o=~&M!^IJsB|(%vgi*7Go)BC`fB@R&W!bkNf925Y*AxhhC9PtFe)I0wj&q$rN$b$TS5DD7AT5 zawOVY%qBL~>`})R(?ijSgIwV34L z!4@~iAdrUlG# z;c=i9$KR1&6A9$zRqRJFHX>APlp+~fka_j2L@==}0a z*!k73zjhFvhlE7{U=S&f2npUD(k+PCz&B~iM?%`44jD%VzXCZH*QW%=<4B!R*^p9B zb_-n~e2o^Uj29AoOm{fqJt>37n1o|EXJ)%T{1RYhWaWkTlkexTtL26_?l0d`U_N}g z?tdm+^e)Ifw9#ChM5TU=_tEKx-0W;Fly~9rmPNci)CyLBJNfzBE+Nw@4&84GQ#no~ zYo{U49{l53|L5eTHyiRNfl8ZZRdKZqTH(No(eicWGGp^(L&#;f55oUu4VUf*?0`Ot zefrzhi)1Shb5D%UtM7uV@;z|xl%}5|lK4ghgB?QRVQ3W&i44bXF2uBRKC!Y2Hb{$( zqfg`m&SVwYiFk z&i5YMnz!8EF^i>xgTZs3$AI$~ix*FXOr|BmFV_aLR-PJ^Ud&8Jevb1%<$5>*Fr~9a zAfs;CQqHG`f2!Lv?g4r{=-#Z@$M2ied*c;}>c%lHAsxy@JaiL9*zcOs&>qe@DMKKS^;6C|is>(bAsiA)VRgwt{Bgq0eHgEEoiu4FSDm%4~3|HNus`ZhA@hc5>w z@VxKu#y1+aV1jjuvLw7YNw-iSjBLUZQcbXFv zVY(F0HF(@kC{!Lb<^c7o?@@X|lD+qF69wNr6*g@f=MAGu*2H4kupUewQG~$rb401- zv*LzLBuPT`=eQ7#=Pb%j(o!?cfcG>ApiUG61)J<8f$g}B8=XrngA|utyx?)e5(o_N zVIzQ+H~^i+m5PEANnVcU0fXaX-gm7-Oftfc;*uC9&M6yt*GajOq=P`IN}1eU`J(nh zv@$VNm`QR#%gr`Nk^3KBb&i=CPWU%o#e;z-kzE0E>(cnXKoUYE(4gey{NxwNKxGxnZq8kx~zy3>IO zxSi^4Od6}3x8VyVck)Hpacd}9?3-=Yg_>cxSL7tr?6)62o_;*Ft52G1*nP8_bahb} zS!pfSBEc@;$s*>W=zG?hj1Bv-(Q=hSDBM_4^sIrmBe41B_-YgGh+nGH3ppF{2n}HN zVDG`ut*U?DQAYu$;nj=h-~P+L{7Zru49P(seeu9LKEDHecr2n2+=uF z9Ie$XY62nMz{s4Aqrk|HlrrloqL$_jWh(vF5zSmb*KmAwvi7gUsO>H(#xY!~Kq)X_OQ1SPR=*MD;{}UoQqesn-4)kcX zO7ZR*X8=brKg$r&f=S`q9Wlr^bhk9*)!UT;5C-RwU~Que-}m=)LwW# zaG`_%I-F=wgQ;YAZ;5H;2hl?w)&P}W>&Pcoj@y(tjm)$i9wF2It{sH9&+|{|&}RxN%bY z)a?%aJTRHKgi8~`<1XarD36JBTT;44F%MNqoR@YQ_}PQq87RvR`A^`%(Zx>k`=Tzo zv3IEz?C9@lzOb7(#*})^N7!$Ad@UB0j>)W5&E*)7pHhx)K13_&9X>PDy}LLV9_2zc z(W|jp{$nr#eM01_N*7JR$z((7HwZEdo>Z`w252)fWfnM2&84VOyBxcWID|BT5R&L` z342j@1rG33%<6JcvQ$QXVi4}{QUmgQn-oR)7eV#~>6%A4d zs8zos{DX6G9E;yZfJ_exDj4}WL155@ju?fu+7eM{sFP?O>lLPo!1t=xsJbbK)9m~N z@f6hSA%gX0nKRj-etU}C0#ka(Mi;plbUs3J;R$d;<_8F$b8dVip}}b|>dZS7IXcohS z=p%!z?a9F{+fuH2a~#KEHs;&z^kg5G^D&YHQ1M%m<9~8Z;=CZ}gQ1a^O%lxl9T2ka<01?{S0XLO`xM zB<@jesO(|1?OnP@#+&~bOk?pWAKQdP_L@O-QE$Mr5lQQjaDLh@S2AI!Y3`9;IhCV! z6|+n}V_kY0h%yPND?%+N1BC+>ILWgk60gvw1KBfatC};s&=K*Kq>V;zWXz|k2MzHt z)7u0(>Zu^&h*uNVjP5tMz-G8QVZIeD)5;ADws&kn(+^uXWFCZRpUq_6{3@jyHyJU221f{3ss=}h4bYi(ZbM6`Z@e+Z0t99I&MEBupk zsc%z-I^7N`nOv<1G6|hG8;m$?1K-fRqDj>O#%bx5%?7q-L|nl0*I_COyt}#l!)*K% z1|8Cd!xxO_QBD`z_biU#b7LwUOs%6ZMNB+I48UP@4~N2rh7m7>NI5MWTj|nYeJk6o zraO&6CswBo>y9-4thN{ha%zb^dGYM!!T$5_A3xpSJ$U`*@teKZ&^q3BcJVOl)r-IF z?cyZBA5Zt*=&yUPUcGpwpGkxL=ihb`|6IxeX~b9f+;oHId{0H0!=G5s$we*IQgUi~DIlQ|VRBuA zzp>S&iIMcuqe^wUo!G`?F8hc<|u-Zj&fs$sI-g=oj(3aDq(GyFw2m@pAi0U{Z8AFsIUXAlk$bb_NuL(y@natsD^ z%1Ieav4ZX1ka=Mi;SNkKHNzG>TB35WUp7$uUeeFyY~vJGox!?lodN^^c8dCP0kb&4 zC2`|r=$);DBk?Dec`}#}3MR-DNb5$_8itPw6AL5 z)prd?&Sb%57%A{f3?g-=$;~^txqqUY3Q^WKYTGp-vB9L{Lernm$$b7iN#u>t6ROa5mDLMIoxRoGWeP{Ur^y=G;uh*b}_dcFlJVFS3VXRjoxBRT7x^=>fR=T6@ zf&f!vW8!f(9NNaJIDv~vkSP{nP8Up*1?LV#Cw)UwPk;xub(65o4#EzQPOu|Zf~hO2 z3MaV@hvZbtAq!ZEr(*3UC+kpG{(cj1aNJI+S`N(a{ZKt2-EOdKCa zpP3j7jfP_hv5-biqBD!tf(CU2H0h?L(dRS&{X9?IcJ23l`@&5lJ0{Kuy7#rJcHMUE zDsBIEjjTl@(4}9nW&d8i6O5ErtE1YDW8FAx7Ur=egse-ta!f)wiv@P5XYD2W&`Bn0DEdBf2mY3xp5B_>iyV z_ULeMppNej*USrfZ59Vz1~#J+S5-)`E=4owCE<>?f(@J84;6V0{Oe@*w*`w>m_!-Ed z<A?y*(Qb_V~U}y0`V?D;*)WSZPeR@Ip|)C|o3a2*3&}Ekz~Q9X<~%%V=KMZuIuZ z2aR2|Xp$Z$ylh#iq$V}Eepf*%s#?17Ty)?JMtEwGu&NC^q$HXQnSP9{!%p^9pokq&N?5R#;iZwU zAcKOsh=r+$2q+5Al^}XKIDG%A1FGpP{rv#dH>+iho7YJO#x`KR8!2x-a0{U@X%Q5v z6-4f?f*FHDs)*I-T5w*8z43f=C>SPXD{<|LT7bL=RtD~=p~Ry$V0tk)WrJzaP!i{Q zBwQkar0Be~qq1&|e;ypEk|S%JdEWBQr8KRuQMfN_nxKl86emf$)nzVN3+%)p)zLy*bW)t<4FHuC%ux zMx62nD3QXt>BkgFy1>m=k22e#_C+J2NGX*Xu)M;c+7sk4I8e(sKbz7!4otwh?bo~J z+PVWb3I^73DbTIZ*nP6bnLkm%VhWADEt@Q*9}=)DZMBBZ54SI=)-9IF0UVBayFas# zG$Uf;RwmD!tw`sr05kGLo-Q3ok=qIGWX)wEu8rA?lkL!_hO>phggFf_rf{3|&t|tE ztC#0U>8)pT`@=IN-9aqI>`^2MgIvaJA|7TYBB2hA={%IOZ?l_C1`L>5(C7k@%5vMX zpq((p1C+dzgtT1|IOgWDY)63#*uRoq#2&avPzh~fYeyXL#wi>%*qnRv5RoSNht+6K zkj0sR^ufDy#z~~s{0PpecvdXu*KCB`vYhL-LGE4@yg0jhvE8l| zLGCpQdSgvExWheQU8AYRxhrlXj$AIud_g`6NflKJQH2*w3+@tz)Ic|Y<4*!(6s~Yz zPcJS|SE}K0TKV_i|L)*-ztza_9k@46dq4mFcR^{qx?9=Xd-A*A9z1_)jsEmPZQ#8p z?KKII4lkxyk9$u(4#zCK(|fY_qqt4zYNDn-qccv`k2L7yu`1$r%@n$s^(c#K+3_0@^e-wbH z7uL%)G~Ulvl$CVkmf~AAbf4PFk0{XN{JY}tg0i@w5T;?0ROAQ0 zj@T4-G~XA$tnnf9UMUD+W^79E&|Ixi?U7pP%9iJ;Jjl0rT)UQ>fYFu=uh z6aO#T*ydb~41osJw=lgk^VymbF6E%V@kPsK$cuTcp;=*E)vxBYqjI$w8rHm)!gDtp zocBJRV)~gCDpX$2U}c;qi(@S*o0&SK_s<*uyzvb$)7}qHaGy8_mXMEwF@(clvbpy5 zr?q>W4R^D8a8$WLkwfN?z@^Cf;PTUG`~k|Am$olg=Qy(=n5y{-J-l7>7GnNM9LLf0 z>|%m9XsXQm^nNKUf-KU}mwfIk-eILzSP8jC5wbJa0E3%eag>>e#$^mH7Fy-9PaupB zb(`g1)FiJsNMbd$|GsK9(-fyb{&>cKaec1uK-u6;I-XIa^n1q8qlZE=KLaqDnUTH7 zzfEo^$Y!%561g1@Po~H^KozN628O+mRSQvs<|Zxj3*dNYO4YmE(#EKAr;QRDRG)*I z8bQ2xSNU-`Vx@QJsnmhYl+pMx23Z!R!!<&Q2f{AM8M)Qu)%Aof&(;D&9M>h{bsoPilaiQX0@_Y-xgjwkjnvAL?zXBJbz{OhRXxl zg51UzJaKs6;_%`CO7<85yP>o1>{0K=($uoiVm{cN&`{xw@&ZGn0d=q(UEmva;|~vO zzR`Vvi;p=mUm2%n!w zzJi!QY+N|MPDeV(+CZJRH~ma7+N ze6Zvrg^|D`Vw?FCsvzi2w0B!n9K~Nndv7kHslGEUrHWtzm8h()P>Z7L1lIodb`#XD z*?N#nsBjBellis99`STS??IrnUa#BBUqps>qs7Ll zwEaVc##;aR|E_mk{<`I~NMP(Gh1>`Z7RoKbDGJftQ^S8z)}*ur;qS_Ss{~3Qwki)X zXskPHQjEoQlr%_{(2h2Qinh_{4bz|UM@e@oim@9?R(Kp{1sQ=QjEN8Pg}SR`=qWng zf?K4OZY!Cj_fQ|?L0Fgd6eE!>ZW4E`x#|g*RpzgnXxa;jUc|FVVeaWg7} zA^=sRbkv;^bfcd$Sfo&vY(ve5Ynxv)$Qt?|05Iwc<=@D-HpadUmZEx>C#4j(lUj3O-e8Zy^MyRATn3+nRo?XC4o0k`FH6ia2 zF@4E<5>23s57hlDsW%x=J?C_tXF^t06~~9KPVF6!5c{$eo+Mg8Oyd5X#M2JGJdrPU!;H#wg)!rV(0~i*W4XH`qGS~r5+O!BlwlN(swDqE~2wxe}nd6lG_9yY@3}KtP z#?G_2K0Mm|14Q0;u#7IY)VA3C1H>dgfRjmoy(cruaO7`d#ZiMF37=jcOv+hC`IyUt zFEB9>O9dFou7m1`RGAs@5YTv+|=um-v7sKa?yEC#Jm<6Ef8!A z2#jBC9MXl2fL}8wZ_d~tLr>LLwpFmluHuuok((IlMu;2b%&mP%(|BWN&!`yhyFvcY zzI@kR3nfAa1)+&o&3=!=m9FA&T;f^+uauG#0IwHL%A;bo^B>`e?FIGzfFde3zrXGY zdiK8j7s);AgXN%%&b3I*eE}og7ig$JX;-bs^)kT4;qYkO1tbo}qoNLw4e^omz5^Ni zz#GRyJPmD&%jS6^}wt=(XHOU3BO{*2(+e^;x}3O z$>e~f{w|;EE1+}pqBTxgng&TZnuHVFpI-d40bf19g$UI;l?y{22Jz!j#<(Yq3>P#L zq1Gtdk|yeZgs$CZ95;jle4u(dBDkZh+%KJ+wSP&9o+farzauL@Thl-a510ivu z*SEIU?$nLNcwUB1F&tIe%{5url0D#XYAk-4j;dpoo*Q@#x(>}tZcOl0ab=}J@Z4@f zwQDm40`>V2#W1alzC2Z>*YtvEKHT$p_=0e^r7Z(M?CtA;d>lqp8ItVL^iohg!0A7p zB9Htzgg=gfnV)!w8FI<&Yk!w4p1T+hT`I5 zO6t^kYetmUGLI2yJ8=ju%ZRGEEyh{)j8sUS+&?dz$dE?qT*#qMOr3jbak+-dQ)7TV zYGy|pLtK~OWoeD=ZtTjlYyi6rZYHY{Q?9U?%D7wRm~jwVuZfk+v0xJkWCo=lC+|H+ zP2hl;bv=|BzgUE{hTv{P{~t(uFXwh4(s&-qRR<+>LU|jmH@IFgR{0Qwx4kGKKgsEf z1`KgR{!~UxDf0n&d z)`tj_dwH54_tGQ|W2B^t@!=|J<)fi)d;*a?W*io9AW^vb`j13&*8i{3*dALjV+E2Z zzkKxo{+0sCDu&6^|Kwvs(j9!nDa1P(%z-T(4F;@zAxJ-(o*(h?1?d$ZNXAI^kaNTL zQYca$I{*+#0CqD1{7U>Q{lcFP@Rtmd8UUwiX7PI>I0mA;P;BQ#l9cWp9jiwJ-vX(cKaC?(M|yy--5@R2WXZ||3W}6tjg9XE zu4n?<0bnFYWbo4fWyDL1uwkn1ScJ(1ZneDOBJDXoKxi19Q_Nt2cK~h9mcdL}f_g<8 z{@&$|G73c=S=(?shSR z=`y~cKHm?Dn(PaCkFZCmk)_&~m_IR<7J23qmSnl9fOYv*-pfn!@N%$gxfw&Q_9)AU zI$9?KJfoqmSGF(4WxS_`H(@+{2RX?iZ(ur_!cw>n?s8V-`QAiB`U>Wmv;31qh*qWH z@F@R1ZePGJNb%6-Aw&D85aLW9sJX`^@*G#!shyY@Xo-uPG)Fljo<&Xb)gOHSa{u6m zm#+_~{?V+V3vgxs$K72^qt}_dFZuaadvE%u;H`>6QQEw!M0e==;QR!SeJtxDqsL7_ zKagFb^6fn_c!98FC$EZqASGmxeE4-%_=s6NFaql*+3<)7fdNz}(7V9%i(RYv8Pvc- z-8q_83DHt4`|$KLU`qZHhBlN^iM7T38x8`lZ|Di=G2*bmmwTWQf}jyphPA&6aoHBr z*Wd@q4O{Wy+tJcMGQWb_P=a@rYCF{iQZrEXL{-Y1VFt|fF>Ua_{_+??8{pPomI@DO zXdZPkLW&%{&|KEnPKBiPLt3j0PbwAa0MtqUf8hMYMh&6cG|DaK& zD`!LSyz`S4J>SKxSI&3x;*r28;&KWKh#YRy&nmqR{x={}ED6F~qTb}Lo-7STRmQ#D zDI^Qa8%sT@AwuPkhR{>UFu?3Z(`1oe4#^uwHA@vlp!fhFN3YKNOuehsvOBeto;1}i ziZ;UCg*%ITkj+R{1B(CZ@GWz`xR@1eAKQCRV-`p~LPdaC$E@%^c5G5^jfooaj-Jiz zQvs>K-4ig>OLfC#3wMRvrt?aguf*2matbpKj@82t{}uytVd^jHeb@U&d`kZJAA0}t z&A08PVqCCwZ}gkqH;=ykZ4tH@FRej$!7y63C;1agsevrgzi;hp6~ISNC?Wv9Jk@1{ z2;3&3?(nn-CEDpjGnaHE$qs+G9~_*^006P|YfvZ8s)V+D6~wuoadELlDrKgTcl6zto43Lmh)@yw?hilwF`; zK{}U7FOQUfKz>hsK%d`nb;s&Ggc@0)7D#=JTkw^uRiFwwzS4a?vts_SkNnH(+)SjP=>5N~{c_JZ@Nk9Z1Gn&TKq5CioL5xCjQfU~ zRdx6C**-K)DYnpGwVc)oK98slxulq>B zHuB;FvgOTxNsJwS2djr{H_edk96Mf0Jux#WoHS@4Z-+&{Etdu|DY6y#Ep_Z*I-!~_ z`Y=vwxzCoR$+ck^>@gP|4e+NPAy}@?f7VlXN(@dlgz6w6Ny*XhuZTj@@txZErb=7I zgqYmQ`^6kuMge{w*|x;O`gM?Qy69V#qmJ`7k{o6%GGHXTLNlg_FSfPH zLR%?ep<)zHCmM&`?#zZYUMUlHkZnMSc&mlaOV_W zlU+KpTNt26UTHgtvHQI!?!!|MI-MPf!ro1pX^mAYGS!BXz1mV@s)nw>tUQq+1s^jkH>{sK^7hM9V97v?+Q^yjyqd!!40(|;|h8q6V#8*2_{v+;F-upxEo4QZ>ZW9V{bfbNCKsF#R2G<{DF_**|*Pcv}GFrVo6s3xd zEKRc<`-%`?mrf{D@MSC6XcqMSV^~87gHbVGR(sh$ncT;h_xt=0UXTq=)Bed1I2?a0 z5t!5ZYj)hSQKg?UPX zwM1*FO;M9>L34=Ldp+598u?^Af?SeMVZxsKR{XnsrZH;lI-y*37=nXAW!kx1gX@kMy0p&oFErGw?VhHpJsPt z=c0f^StaVlEW(2E!Xgc|&_Lo?J*1l1#H4Q@E%DMCY-&1?*59DUOaY1vWd9Mc-pta# za`41?hNaP(3+8UKFlv1;(WLcV_YlV6 z12$9u#3#gUjU(sK&nZ|nlCxQPgq>~$@G_7IIhk)$mUq8>U~T~e)y5DhvEaO14GC52 z`RAiteRKQsf!|T~MPL^GqJ`q>?m^kbeYnVq#`r-6qlIK$wVnylm;~6RmUO^kuZW~5 zS62Q7GJQ0@@Ne2({F_#vm~M6J`|o#lcV7QTeA11`eQIt^TZWR2i=|SNL>p!mg}1X0 z0my~2-`lm5DOHh}n_uz=Ymjky?}V{2U|X!Ro$n6=`hzF-tF5?J@4W2RmmSkzWovm= zfclJ8t#0kU-svp@JyhYXd7#Yu$ZK5Gk88X#3OWHLyTvyIIw^L>c7aaXI5iIQ>f7IP z0bEDJI$>&Y&ZS2rT2ZcSIAqWBMLLOl195!b+8NVKhm_GcyWZ%IFxEir_;oV>t; z=dr5P>>t!MpW%K-zg!R=D*0005)I%<`wYvC6 z+u@<8RTx8%=|nZ8@&&`GOnu2tMGe)o=gxcmG_jJK8c^Mu9)p zXP-wd$YuL!>-2O}JSIg^;-GMSEnA;uMV<^H+XwDR2M^oZnc+eBqLCY*62lVR*06A; zF3#zwe>7S5?as)0sqN?i7?Gs_x5&7mx0Ker7R4o~-N@+V^;1Po<|`;P=LJ0w9r5bv9*4l?K3~Uj zbJBjJx5e7yu*EGpL31E+dyL(Z_-&*;e6s&^i&gFrDjae|(NVp^_IoK0l5n`sDlbSB zNf8k||9K$M$5>L)sC@ zf$EHSy-~)dnd)n+S3zK+9jiCxCG;EwcZSp~0xiW-hNSHk(HKUK4r1RD0H!azJ>+A?vgNSmWs}OW zLJ75TkXp)c02Rq2CctkEQUV|C9fIehSo!hr6c4(%PaN-Zegs>Z7*_IFvO$f!ax&Zm zcVPR$;Q6a*QcmQRmaf$UbVNBP>1>wWfWXr(;@k_TT5=NskU#3i5V;`iPuWRgZ5ooK zUy|-X7CSsYcnpG^!Uayp$hZNX`$$fJjk3%4A260-$;0*zSRZU@*>#RK4=Qn&a?u43lJ~uLdpg?l(#5 zHV|Us_Qf3hTSFuXM-UTu9hm|u+67CEew+)SDc{J(i`@3Ll+mEX?c zO>jO#4Rju!y$YKAx@<6D@9?VXUljd}z1kYFEe|?zbHp09t_K1<0)^|v63D@sR~Cbd z{Gz%qCzMs)sK^XQp({}t19Bpc#*#KFjXXQCd+;ai=Ly+)OmsZg9IN5eBMUMBQvp}H zDIHS;mw6;C+IdCSy)1XbAFHQP%P5nySxcp+m0lbe1V%O8?0b65CmWJ`-Ga;3e9HB2W4f}i*`pcK>n%&HQw4?!&J{at zIcuZotY#IPt{Tl`&8`tsWt3CJc+UGyIDh>G4**Cj66MMBT;c$oTI+vT5_e~(#M;Zz zEoMR8d5OQ|(CVUYFp4b_61wp8hIkQR(>VV)9J>b7X`##a1RbPX$oeZA=rRq`iYaXr zgEH_!EmD{GH*KjCTCvTq&|(j4CZoEj=uNXITGzHw9IAiV>sA$3)Vgf={=;5}c*~aV zKkW5h?~lsh{s-IZ!cbIDQrOUFFZN2P#s4tdo0@_NZ~QaUcM;mtKg{;p&Y!6pf=9#I zMIDgJM^fzmVYbT={hw*Jw=JIFOKo#K6eJ;`+7`+Wy~0}WXjf_}tZ+DJkN?AL`eJR) zbHxD*rC}RM&M}Qs)~M((OM_ijc4V?iuVHK&`r;ZUjGMbNI)eajU@hLh%^AQoY`9Oe z%ji7B%k@joIH`7~z6su8zStP4LemXi=?cJy5Dj2&V{ZEyny8^_V7**(J%f!UZY}rh`^HzN%I;Blu_0l_C~_d3dj$<4%Aq zCdNm63+@|FKc|b4YQ7uLRi1f1Nl8l&Nog!>GcEFt$V-9qHAJBp$ZimUQXy|?VhJv! z3&;#;cy@9ir+qp;y?=tcv3H}A%eH7a-N>ECDVY_653|`H%Ty86GwrAFj^hoF(wj-A15rGk&`-i2_9i zIOgUr!*RapzmyTSpKtmYK>6I2cxQAeze*?+wxh%{zrRt^rjykC>55pneKGbm@R^&* zFQ@d1*W8i#N-IU49<9h=(Q*_Nu6W$BUc{-dD8hVYcdZ-A(!K(fi0eq9j<8#&1G2vVjQPQCA#fa*D3#_emnyULc0`kHi<+OJQ+sc=pQN-=ew!ts zpLRoo-v=ki3Xj+ql#G%5UlF*gxytnBMrt2PQIhuU7_^&HBpfT|1X80=_hBY`7F!>j zp5o^3SgV>al0HQ|dMAm*6U#?J1sOtQF@kYg5R1%^Q^b2JR3tjHcX8T3#HZND2(w;} z`;+&*cL)sT8ZHZ*NG%pmCC8u-$;CdoVDWUsUancQHG4r&0LTcyn5~khH!!?{ zYO=@z^ksa{KqYy}4)|=c_8e7o=Qr5lGTla9Q_0cJ`BB?qy{jU@DODlMmFJa!O1c4}`c zaQ+cIV`0HM!GvTjp_;SU?L8rh_Ki4i{lo`u+KR?|f*|ui`rTtYJ90Ubqng3ge0p-n zi}C0qc(`ySV3se2m}#2~Y6GE^{*VHvgn2ppJw7>1N|xct2Y>F;bq|3->< z)VZ@2S5eX$^G#JoACm|h<_HR$-m4P5uIF$vJ;6&3W>Uo5!j&X^-NqKFgu{wBo7O4J z;nQf&*jNd`eUy>UPt8Xs`c<8rfpM~mm*~@CZHWRa4|uC#=7EL8?mgDBF@Pp0Cg8YH z$5jb6J8$NU^RolaZIGG&F-XfQo#U4ZYw&KF6a0LpQ&D)Dda!SdxD$s2dIq zTh}ok+84bQm&o}J*D0wgEGeEzg*-4om!9#z{<6{g;q~i1$aL(AccV4tNCw?MD-ioo z0q{ZvW0Xn*vT;?n*&qWgeX7;K61Cca2to(jQko~cR5X&mVRRgp!DM2F4YQ#8jPYIK zbqxSrJ2PF3{VOOPf=k==J;??m6?jFtA?pA%h*qE!{6PX6m(3&&6iR6{a3^7fjR41P z;5Lbx&kG(E<)xh6P2otQFO-pr=EIW}U}Z!*S*oRyIzjr%%f_u}8TjoQ9cybp!CmO& z;2+gGM(#2mp1i+o^s&#{ok+Pii-QMKQPez>t#sR;?E{@xe1%Qk;(GT7AMx^S1~;sZ zQ%fsxKA~s1ICpJOij!=?&HoFaq$s=rpq8Wmg+mLBOLt!BjCH0{)(5cBbYv7>`HeqGXK@ zQMx3ncT!cz0w*~x4u)Yr>x=fOKOY>)6U@-B_Md6tIxxCNG=Q*kfD3fB$>LR->bxYI3InI_j@H zgorfaQojxBfJ;NY3hE!>jtHD4VB|2Af>9)1tR8kVN?-7?MtfTIqj1u6sFA>3{3leR zZRLRfcyNJYf|yfGT6wr+g|($vRi-ZGHkp$4pMl;HJ;GOx8@>O;gRBCjv?}jNF=g7k zvkA3Qg3RLG>QiKH|6G|SSoZkSa5A9ffd`b}D{>mjG?fn|Iny+!t~pwOf9b8s*pE@| zTG20TZ&EnkYVXBM=D~)MV$Xr@_qKOlZT;yv>H+$%{PyW?e1_()^;`bNFSnms`t0;; z$zWA^A0WIYLq5rtm7px3x_ksq7!>XVlDOs3mN(C&?(7`=I2?SEe872zpw<0n2X&Pl zNZq$9w#k)L5vr0rH}f8OAgc2Q&_Nhi!5U(PMIyToyQnbMlLUk>>-HXX9+^iRgxzXF^R3dLTK>he+%^ zW1XBpR5jsbEuRVdt?|=LIR2hJC zuBu;@Li}8x+~e0Vl8&r`>`_{we*u>R@_RfkB&^+fy>ITtJI&r!EeulX2p1EseXI+! zr;kCzF)&G855>-?Q3M6~9QaohRnc0=CPN6j{JHnPTb-~lv-1Qh9q9;cQSGkZqGmg? zVt@o90V%f}9abltEQ>h(E)vWp8$ zsvu2@7(cy!W>Y|^r7O(d6z9oeU02@;I$u&PhGQ9X`?TxVv0C)y;4y0yA4yi9E1QSK zAcV5-<{++lQ27cFsFnkcL}k6x0%W1qFewTwHnXvtx9kZ^@EIIBIipV7NwM1d6ReJ; z-iWykT;hL1OjHWho_;`~N)?fk4Oe0!Rtf_Zo@kaswY8;Hm#Sfx+A=@^Bgj_1754;3 zATz*I9*qDp zH(WuItnBUYyg|mU;!H2%0bh4{MuT>oBb9$K@N2}Rioeq*shyUkEq_BB#zESW;8`o2 z*ySS@A+&St3)Mi$46$EP=2EUgu3Ug%j(!9%p|o}Pu@H0gZq9*D`)eHn+jPs%FMj>o zBz}Ql^1c=lAs&o>b^7(Y={Mcw*pX3}0ndwW>Zo~SZbb)$QfL^%W;$L@w8hu09f70a zgcN#f2f*lF?zb7}kx1V)#Dlqw|wkkC=&sk-{!JGv~R=rAJm{)LUqz(Sx%SdQQn_Xozve z&Nftb>@M+6XRyp=j$i%`pa2o@ST8k<6C`}Q++`X^{2aQ{?Wa#(?!ShLdww~F!;_a3 zpWZ`990KX@`$+b4Vd*&oZrG{ab;_`VPe`ljc*6Zaw6mR&#)Xuts%n*gTfUZS1fmqq z+s?iA-bm$2-0Tl^eWWI%rmm^VlkLc_an-UD$!wO8(y^;I7C zN)5T0f*gGL*U}AQ0c{02zT!!h19#0pfVPUv(H1EO`W)Z@kAhsU#IJN=uRFb!5uhE= zpf6pDHABs#LfAZ~b=A-7FFv9 zV`=ORd|qn^MOr*zW{83@XU(o|NC*F8-UMi~bK$L_o6H$|6|U-^U!cI<`16zgMgI^5 zK{p?K!whggzu5+B&L1us=E>fVxjDz!ou2JY-=Vz9&K`$dGy=3LstJ38!T2>V(2%-! zLAOFuraPEWmG3pyrQT)4!@0c@sDU3ztqizKSU4N0+tYsZBqYSJS*-t z(X<(2tRT-~GlgZIMlBkdMStZX@SmJ*h@G(Uo5yvj$~nX8`=Sr^SH(2yu0H^~SQlz4 z660Y!#-*iMm2jxQP9 z#Y+}5f^o=NL1W^vwLdYsXi(*RLO*@cKWF^{Ge5Wp#Cb_X4}*Sa%LE>hF=JC!=1d*2 zf(v9i8yb30vJ15Ev*Sf{1v%G)cE&uJg?3KZ$b zYs;w^PVj&>3?^Qj@YM=S;!Y$$Di&4(r8as`rei$myHwD{M1n^eIcLMkgdmhb+*ATc z`tnFB47{?Z%2=pEUtVs%#61oT`u7L`KvWZN*~EUe_`8WM;s|<^WC9STB|Yds(1pT+ zIT~D?jy}VmK}!V|5hdzDC6*p+M@cA>FMb$r(bsfp7P(*As^yx>Qkzqmm&$>oXGLkY3jCn zHuzNGOk9CUW#cta5zS(E?E$ek6_=}fbA+;{cJD^#*a!RZr@i0Sqm;HommQaw)ZyOP zQLG_;3B^P>H}gCr`@Y|C8bALhF-!tVWbw@cu6arNJ#a+W*$^?`oQ+2t>J?yb2=2wP zhtF(+Sf|1HA;OB!MF}9oE2voQJ)p-3LCzM8;(P9$4$mMN^$n^!v^a)%h(_bH9*u^- z{ZwD-#|ZW67f71;t0NAy|z5zr6 zjHZMg2yK!W*Vkyy-B)`T|A+yJf8F}RuX&QSbP-5&*!eXbC8lvq;cJ}0G8>QNthVg4 zN*Al>nnB_8b?8x|4^je+{Sd)05>Bln-ZzIO=HvwC9!tR=XsF}S zne=sK*7`zh9n1T7u1?p9}L? z`{`|UL{rb73Jb~;@%O|H(-FvhjXNsf(ibfR`p`=V3vU`BrLECvc7Dy9?G|@ef@nx7 zr{BeRtYF@~1gXrR;LH*6I1dbj)>pLErI@uX$q`7T59q%zVpZ8xO?~J4jM;D)8uV1t zvM9yZj+W4&XZQ@b$uH_R;DnWuKhwT%wQSk=0l=)fn$Zl@GJiyEHCORVFu(S-5#MzW zJ`P9IiI_~1ii65{T!_UZD!l9IeGfC%MyGFI-f}@bj>VAop|iiUflOKBy9qphSktEr zGcD}lQNDx17#QAWDqOU(8Y@WN%v`dGeg%7p?}csl_U)2G8qg3cX;y9v$rD6y)4fSxLo>1Q2I;8Ur^Q>ZX`z|96}utDPQ!cSHwBokb43fdd$%cj&(3wOf3Q3RJETde3 zr)}4zGki_pA_UV$Zx4xfEI8Kh>5qG#M^l_BxV0|J^A9$62-<5K+Ms9s4|qg?RFu-m z!c{L()dm(J;>ksqu}KjsT3D9HA;4*LuV>4xd0lI%P%L?(eKg{f>TV7)5JU1jpq-oJ zg4Nlt*KY!Sa0kg_%QBndyz|Ko_YsB*hLhmF-+b=t-N2T_K+l?pxJJE!KfNiQ?)u?x zY=PFMy#|b@l?94-!uTD)#CU`C`&R;chSHfMA`nRRwejYrI?U&9TL%%^^d7_V( zEApeIpi^paK~RAJ-M#@1@VVB%3viNm$UHZ>B2TtrS&4?43ruQFt?=B|6Pf^9wLW$L zGq~Z+kO7GKXy)j7T)$0sr6(#*zc+iNVw}{e$_5SZq=Cmi4j8rdf8PS+w;=a=da*-{ zFVt=kWUJt@W4uHrN+mxD6-2z|Bj|&S<-H4;duCbA;VOe3;^tynf(cz1idR7GZfOqQ zhO37Yy?DY=z@!vn2Jw&m@sP2i!le#JC|Q^IOvD3!;7v>gE6CU4Kb_S<-Tr8ar7(U2?-^atj=~1`qg+tC}APxe)ZkoB8+dUlf z*@;7d|6Y}~y&GOkPnF_S`B2<1 zJ07jslZ)v=|MC*AfRi=*@yz3~CHP5r2}2WWU3W{m$rT-3c15!hC!#1sjAk@`@#ckD zyhlTv6=*}1{*!KCId`^H-@GVVN@~VQ5Qa;CB_=0aFcFLy$@S*h%x%FMoXYLsIYls92vsh4wgSsH>8{6C4%mCr4E*05~5jEEmPDtn*H^wL%FEU9D1c z^jV`oCuo|-qSCpNa#n{`v|47HY(Z03TL^0h21zD_#l?J#s(>g1t<{@KNJhR*Z1>>oJz2#8A*a95m9f~jE||5z7AxwBeo z3o}@)&VYc*n#*oWkHlVU_7K-7x6NR6Ihhm7#5g><2gxAx;2WAo!TLe|&_~z~z6Ofz z^UwDp;9k4&1#Zw{;fu84=<>4URU5b!mJnz916tuw`bq`~gg+zm&IiO74GyPNyS@N} z)J^;?Fi2f#n?dU5&LEWw3K88NPgK%bzzfA{4@xMisk=_&EAr1p?9k2**|1F>-P75; zfk_ukPQmwg#N+}{#<>b!oM+MU=u{5*1u~t(-N!JnO_AR<^LmaJ6OqKwT9IWPhDu=! zq40pGPyq@y0`Z)gguWdU+%BgZ*6VuQJ3j57Q0m*0EL?C;B$ElWgNm6-POeBIWvQX$ zUDYSP^&c@jEx=W;9$c_qv_caaA18Aab@cAP@aCwP$Vh#Li}VPntA}g=L@(>P4rU?1 zTRd{v6tKWROQ{(z6Q&TsM%sfr(;Yc)W{fvH(i|=k7tvpTRBlt!5vSaxZX`fJ%B>Vq ze#_bpXZSl}1LU&&xr(vf0QOZZ>o`Wnb@EW|uu(l>Sz~s!_ZPfPIYxpx@vFS+AL2dh z<@BAoa`aDo4*s>FmEixFJQym<>JHRb};*RATs6t$Xiox_&e5#$b=)*j1$9u^Ao`6DwL0X>&9*B1wu~q|(60DtI zB1c;-4=kG?1bF3SKM*yH{;O>6bU{CU>Z#*v6N=MWm$Mk3Nj=?m&u}CbDjRAll@C-07-}5$`9}i zYs_yfYrVx^Qp(Hcwh9y1s@_iKXgrvXkbj#-?5un>NsG(gKgX8141EV(76*KX?WJ3u zVSBkN%DdLl^)2Ph7jG$K6&#jktB`Lj&71RD5-Tq&akNzm3BI=1wxt|ETahTvmD>^O zzQ##crRdm6v0JYqBxCFw_?|JJ4-;AX?Z(tUPeIZS*aFLF%V;0cRXOdd=Ef)?7x}xns)aP9Qt@$kKB)^w$tQHh=Q1)KX4ZDQ zfD{sSbTA+ZlCV)rl4v{~pHV|f@_m2<;H8o!UM$ka120PU`g8nzjQ4rT6@fdVp)zMlD@ujQi+^w4^XBes~K* zgOrNYyGE*o-}Bh&IW63{t?JAzE42f}iB1J~0Ip7%#r|+~hO2P+CV*JzJDmllf&^EE zf4;8bQ(W*v#pK_i!yjIgqS_w_ za&TjP@a{8$&&=F2jMYl)+zM2}H0176Xh;d!c!?ESdd+GHo)ju*ZtycQxx$ks&L}E- zGLojsM=7+^cgP0Gzz1iFyxR0+=<3JP0%^id?ff`xJ&JP(-XJEjI4?o2<;&YBK_`h%-M==gHuihw5UjiPnWV-LUX`_JPl*)YRY&Wz`}!D zOL>J20WQ3alw3%%z<^#vrxcTGPLZq_oeNfVJVm-tMG_sHp`0k_FtV2`OI67#Ll@rR zuWqInu+|3sGqWfhXW8rlM3p|}da9_+@j2J&UiIWEGi)0b*IJmGQiBPSgS}l#x4D&J z&&5;?Yvx~$i`UW;yn=25;5W-fx{#HoxaZrk6P)~J@H;@%=UEs77uXT384`jL2-;|2 z_`8aGjs5x4R_H5))s?km5f#=H^K_l_%)O!HRPJ@_)wK)&aF%rh5vEV))z^wKD#!^; zsa`Wv1D&>PrW_m}G#_m|M+3RU6j}vG<*AN{8%gd}A*texG9J`w2Jg!=j+7ECdgY^Q zM^O7k3nH#U)71}PwO2oW`pV(X4qqyudFuxcZx4vNH$dGjojt%@=!L^x(=xx(;lg}D zd_YKjvVfU8I#)tk>HIKv>2xAag!HMODpH>R;1DrmaK1sYk9fQ?_}r-=1T6mvYnBqX z)|T$8nM>~5p-jZ1w(Fr`s$mB^KCBUKV zZPI%O_pH1%f(eA`%Nk1v6|A5|HC1v-0Z;k@vw1k1twgA;Oo9ehB}xYIIVaN#Jel(qOc$XcC4LzK@lIm$XgB4GeuffvGNNOWvhX2i*o_-7hzLzpZY_Gcd}k)oPF2R%lizpg<$+ugv}RY(x{*23<~4Q!&&ydG#@`_U4${Q! z8F7;dG`T0&%wrBIG)i=~%>T;6&2lTqrY6OwWT#rt1eUbLQK-Epp`~!TA)5_D%LRWi z6*aN0`chsU3w(7Y%4f+RRxB%if4Z%|O2I4?yh?xJt8{BlX78L3FLGiD@Pfn>z+zk^ z;i0|Mifh)8s4?8%3&yQsl7R_%gv#jOCR zwx0-xYLoL+xK`uZjuIK#s8i*PO`K;7++{JmyZpG8&N{_x=|8r^bVe929q<#pwo93G z5M~=Ndf>}gba2-L2bFO(Z8eLZ+8`cB&yV;c`49wU!t*FjQgla=BD}OoN3lUITDg-67*W{#Q8OX~Z2!!vLl8vuKTdV9*cUeqf zYAmn<@&*(K+`O#MTz8CqB?4owRs7%X%hyj?A$@JqTO;Du7zjTezJouuymk>Sy>LjC zYyVV476;=G+sOe2OA643-aTUnRE#(?Y> zNOYE^iVfYx5#_4==ZeSGyYb)dqnlgIIL6u;&`#>n^5?bE@H$RVK4CKtt$%Mb(Gd{s9E)d^47T!u^ zOU+nC5N&GF@gImuk?e^UKCdJdtHv%5*Y)0Vp2{V9g(RUbkw?V*?4K3MSciyRJ0E;{ z1nSo9!43>_Dm^U<(rA;JEPUxRDlC`~cIyfgYOOT+Kz4(VG<0}Ah%1QAQ)sJ(4%)?# zZCi3&-OcU@8uCR*CcIN6pFUTdJX6^%m7G$Vhgn=w%-F_MZE#yLAG;=SJLn%Bjpb{o zDu?)`z8c(%+A;!qQo~nKStiaA%~~yOVT@~WX&H5GXii2+%S@ABx7YCL+=nr%)n+^% z$SS+EOLWA7Jc=FY(Tn>2^m4=}*1Y=roUawD`Z6m0fSc^#^TUV32#z94^x-w1H2hny zVe!Kk3eB^*g;3=wYuiLrbTAPZkjeJrb~e!f6?iQy$;?t@f&sVBi@Ro1cG{wXkc^jV5# zUErO#&Ytt?Q0!EYk4@b+3dq6}>}OW~QRue(nfYKN&l2|UR3Ie5l0TlrOP!2-rCW!{ z-gW68(J?{>He6^T!(Gcz^^+^Cja+F2hR_TX(D?nV5mhZ+B`|F(me78z7+)E8fj%JB zY;N{$dxmo5x>+tajZHP{0Rp}9UDZwT;(}L)#osLgo z38irP%743y=O}TMux;a0WCK*i85X4SDjE^HXx~FJ|L8#b}K-7X0@dPdvU4W82KopUhU!*Hkkqrs-X!W zh_PKM7F*<5z5lX5HV197;qXFK_%>mc)xKr2=A8?1E2J*5fVRtPX`-we&LqgkJ*)g| zn60cyPfQoGwn30G#X@3?%>XP`d#1yYo?)V`1StAz3_F}2Ym?5LxU&80XT_E7PXExZ7UspZ1!hG}#(=S4 zJIMy7DhHCm2TC=J+=3`cR$&!b8NHkJRZUgVy8jN`R#(Fn3U7KXYJ2z<)H;=+P7ST# zfBQmp9q~|$Hh10V|H53LK!~&?Vj=kqzct$@J1RdK_w+R<-Q_0!r=;B#gh_}>4jCg# z={u6@0|)YT%~PIAIdz)sD5oH~2ziY2*;VI|4A0Tp)tzWct6r&8skgU{qEpgeJj3bn zEvAjL%<@x$F9yr9wzCAN$Jgd(sdl1;gzY0sIMJ}%-{i<0I>Xnj>NqY+p_#LW1UG%O zR(vjZ$5aITnWgN$+&g&ndh7MmR|ns}+&_@}|0h3e?LK>o)A)Af#Y?_O&{&h5S6hF2 zZlNYspvvOdlz?G5x?R7m#G401uy}(vThDj44_JF6L3g|k**#msj z^YP$tbaFoYKky6I2Tm??Lj3fW0U&p~68=2_JiSuNJt{Q0kNJqzN=gyl3NG_R6lc1X zpM<@3SV0HogecuqxLXI1A&D2g#TO>gmy)JO;py*!1ladAq*E{leQg<(tw>|0SO`=n zd^DhAcR@=1G_luyx;c_6oX?r~k;Ua=B9)22x z3`VLW#Khr}#NR==Fru?Jvc(36oUcJ84iG)s1ZkSo+7n?;lHjwmRDl6jQL2ja##(`e zzH>t~l{OH6Rm?h@CBI#Hvi}r9NCb_@76vhje5`;@A6^ldHP2~*e2z!U1V&AE?X_zN zCYBOgDB)=eR&H}DwQI4}Xg*`%F88m$ZXKa4hj?r++W}ZH@)|rH?f~Hz3-V=GgLE73 zT+$ac;5lI>fR`85Gp%fn$-PP?)ucUaHlUs80&x)W*A14mtoA@2DCN9rA*N}ny&_jl zC|p(hXGKq{bKL(o#zd6&c7g2GO!nU&b40niCU4oMk_i1g5hR#F1 zXlsTK)aK2PTGLl-8m|(I+a$*DTVW@8+q&pB5KjuEbS-&Hz#VJQ3)gfbr?-22*dmGM z;+;E_$2c&`3tI>s(LMcgt9ixA6bZaMc;82D*qF{Pb#Y6H40Z_j+vgWGF5vp!(TfLJv`chaVASl)=Q1VRXp?{4CJHWSBc(` zdvRviZjRC3gx~k0WjMZjqYEh#a+>dGF}7X#+APhneHFZQj!no7HS`T3+=42-G%wDx z!YA?af&mqHAO-UVHEob|i#2T!n?FT#0ki8zT74T<-fQsTdr1jHCI1Y>djt?*wMIt@ zV~O&|hy;|s-oP|Rsfu7_IWMgj;kjdMyAmZg_2KFAv%L)+=nE?5I{yLiO%~SjSI7(dC0oiYn12IMfBA)EZ+Vwut0cwf$hRh!`UGNT!{bN4%D7#(BuLpz&R_iHP`a> z6@Jm=t;IaN8WcI?(){zNBWY7v!c?4ysTwn;8B;5P1Gl0wSckUKs}PC!9}Z>yu=U*E~U zj8_YV;9jxM&0yl3O_$Z#$ytZPil52@m$yG94^?cWK@^`aM(~n|YrD6CLQ4<6L%F4R zOFXMFIH+L83{Os(qCjIV9BCQh%Un;T#r)0Lz!jJ@P|l66g9&_cP-7THkdDKf-S4*t zAH_DqD~Hk99!}UXOxap{Tve{jA;^tkD&EIo)WkT5b{ZbT{np2k43v@1Dy+}tY0^?N zF~G<)V^kKr-nrEFjph~Sa;wDX^>&qV zjbGrB{bEaB*8nFN$B&!fhXTx+@rC-}{MF=r6D0xR0yi92A7(b(?ziVJ@}7h8XL)e8 zTF(Wk*l+Cxh{SFJVHp4vaO$nClrI>ZPyThKreE2V@2da|=}d14U@b7rrT1z%3u&>* z{^DHAfwj}pBoB0IIK&Eh9?m)Gv5^8LJ@8jLj$Nb3q&^mWNK2mV7|P+a5V95V&Ll@w zZR1dL8o;b`QCEf6(mTDc$-S#Z+|_;)Hf88c^~NP zUybmW<@`-Zf07G-f`%leiGmaNJdAyVM5nl+G6z{h>4i^Rb`2&!<=({i@aO=n1J?i) zJx3g&gxB4U?4u6<8s#kMRY4@gn}2`4wW}53W#MnvSmM&YeDdR~*Dqgm@bkj^vnUnO zX^C9|3Uh@46b@;K2MK4RkAvBK$t9m_$Z}dp=$|&*V;ZBlm#)T= z1R6BTRU}@-r3=aW%O$P@s}Mj+8YMW}5Av6TNjHkD4SjWGhpnOU!Yz&jy?W_5wA$8W zFAFn`uel+U92z>wqtzO#E4kCb{f`nd65HhzDRmV8)FI1;2rvIxef@I#IyWnS-syiSjNnxOzsXE5B%i}qYhei}I;Q;FkBiW;R`t3bBJQMy{OPiE9 z&=zVqS@Wm8q2>G)>}MfJMb}HGVyVdsrP(2sUQ`wiY62pN?z805(cmKzUGX=e82er2 zjeKmBvbpl@Z&$3x@yVxJrzk!-90rTB%m1h;Sf$0p{yu7+0dOe4Y)eF!|X*7|M1iH>pMo@z9=FyFxbWb)5!5`reYOxRFCce*wtKfVXa5j77~Pi+vJY* z%zzUZy-&7Wc78zc1_z@pn;P_;LqrJ04z&i+BB}sds2AL9({bczt}mv+;o->rID{8! zXZ!Z^^HWzqK8`L3rcX5tyqpH3P5dJSNpR|+5l%5<*UB#r4>4gP*!JNKNybO+Y* z9FjMEf5VHpM5kQL+7B-_t;;QvUM;?{)E8J41o-$C_*%t+=31jw%b8Z_mFTcI5HtKM z9)~Y_FP^=4Et!RSU}<*yPMO==+TPwLA>A%9R;a%p#J3ztD)9;OJIE}1lfQB@!&3kL z$SlLZA~Sq}WLWqdS5AC2-+BLGKg~Yr~&AJ(FX<9Kh>EeBFQ?Ay`O_z>B z1b;uQt%Z$>@bm#zeyjdO?gmigZ16x)$YKctW|yFPSCqPqJL7z}%JQ5HaWAY-UX%`( z7O8hgYjQwdVPStq#8wV{MP}TkUCW2P@U;_^aJIRHa;?y=HtZqR`2(xn^iNPC<6Nt& zSc|!%1P4Xf>xTn<*gPCvPR|DiV0cQj_BZv(M7fnpbc1WI&WV%h{9kK9OXjZTKyVU8^cz8LO)vNJk>ZYq0jxJ`d z(7#KaWD)*(y{qc0)J0d&-KYL8b!vd<;H>|1JzGbE)V+pPyLbEh)VTq&cJGb`se29A zcJKE0sdELycHh?5scQ|(cHj2*sq+Mx77n^`RDFdmawKWp!9`Q=MS@?}t2I)1))RyE z<)0XhA692JnK4yTtX9Kp8P!>~T214@?eU5%T~^EmKa@rG@C?p@;BO)EU?1-VH6t&6 zW%U2$@NBS>g7X3pao!Uo%4Y$J_^5`(R|kq%=VDk8()@`%v|&Pu?1GDY-i8f7{tDo; zKATbkJhFq50(1tsD1f>^R zh9wn{Pw1S#7@$zoIh5hk&&-&1**|>G%3A%&=sc;hc;mb+{*P37LbU0Q2levM-Nw&} z61S;*BibIKOqY_91NbBPccalMs*b|}k=FGXIcoTYUXou9PVoRA2$4Y;!9PLmz*D4; z!7E$ejFg=eDXi(hWo}EW6nHu7k3S$Z39n(j1Ukc-k?{QxpJEqyJI=a$llMJTxs(_W zSln<556|&ErW%e=1ryo_C!`!Vvj%2A_II{m+wo8@(UTFNdcwp{9M;j*>qe z&}6oPz8WUr-P{EH-%N=q`EdA1l#iup*Q4@-y2g+A$(l7=v(%C0t$y_$y`s09+8>HG z&|2&WXpkB1IH;c4);=IcfF8JZK%IWBFjU`fK)3jnijXB z)ueaV+H}<_E8UfPp0O(TID$Q19;OR!zPtWV-x%WX{4h8LN_xlB^F!vfP_85OM^F}Z z8$GP}EF;+){Pq6nJ7j34n&7MmT1R9i zr1`S1Jmg)XXBLie%Qf*v3P{s`~3A;pG5QjLsEH%KW@)Dt;Ww(E4g*j|nH! zlM}FLtR4XJ7u#gpQu`WWc?voyL*q`=in|iM9B@t^5$6vW3~>ZPobc!rhfaKMK?eM1 zz2?V6w{@)}R;z=Pj#qVVxPYpm>nO^C%K?JcBn4}>iCDlg0DiOV;S0I%t(S=p`h$*G zW-l@V^w#C=X3X)oj~>+^4)jQXs9_;Ufv}AhUn)vO7Ez&1QBUIKp%eVwQ6YH)fWno! zOOByQpSny7NC8T$BOkz`q8fkH0UDwg>{~?TbG8nh4EE*j1Cwe3CMD#;kS9vZlN^1tb?F|ZmxV85|FC` zXuzG$6@qNQ52G|ZmI}C#eQ^MObvi=GV95(My>R{(+w%z40>54bHw%`*{0I$KT^i%t zr-Et&WQYBou%T5F~T`g6T3C_%*S~lVl=V1gCsw z;%=uBne8%rrEdUTaH0%F^bMIKf$<9#Os_=PP0b#1mu&PP=jNZgDygT$)sk8?N~Ax3 z`Z|7(;_0;uTNeC9tSI4?t+ZVHG!!_*qd!c^a_3u9^K2GMyxadFZz}ScM^wb1+w zO_h`JhY9K+M&IEb8qg1E!6bx#Ek$F`Vs-T zO%W|JbXPPhhOWBTshcWdvMZf0_Ua~jeq*33aDMv;>GI?~mM}I&CO)iCE#r}DEZ^AK z5JdvuVLTi3nUL^!dYTRhlG2e82!$c&XnI;Iz;Olqxf0B)#t!dwH8$t5FalMp`YoG2 zsjH%LsEH}ixEo!v&ZSWmAQifxJH`tr%LlS}eDnnhD3cZr<^i&;*>QC@GvXUZSg4Io zI9ZHl{k3a|;H7GQrPv<1IuktfboygaC>OQXTR-Yw(%FS>srKg1F~%55 z&EcL_c^VxeLpDtr7H51nIHLDUm^18fI={OB_w@WoQV8{g8jc3zdq_wqwVU(!j^6eh z4jPhIs^cm!GKljlA2jUJ$QWgWGkatt19$pP6U;0W%Vl?1sDcPoVoXCwg-IR_=rh6A zghslyPIQ5#NrCJj5U;V_<=X`hGXT_uX}5{{uc0t4cX=S-heeyNLzmFsc8=!RFf4cp zRdN;gjTd97k5POcD)91uNh+cT&Koij0q%-|Am(-9dD|3z80gB=>hEMqo5C*VG$JEK z5F5DZoJM-iHjUlRX~^TS$^YDuUsey)4274fyS;qPp2a0xvsck(WA~M=l1#Jf-%n*j zr@V0!QijCDtQ#*!A#GzJGK$~pm{5o8!zKJ7k}?;reRo&riq`B+LgHw> zG7^6$6aE(V{c+gu{XfI=|3VxBuBT9mo_hJ<`~(pQz4gJy$p+Ho{WU0}_scJc2c)q_ zZ)drJT4jiXiZ)(Pj?m--W|?9tG{lwf5WyZ~?*z2nU-eIrN1qvqrwBSgSqC3<6E%j5>xWO+apsBDp}@F%2sdU#|O~^|e-|fU8rH zj~E1<|}D%1*dXxM$95I|JJlAF|R>Hts>n6a@Z$!S5R#r}=c=X+`H zw|0_s?b28t;;wREF6Bl4=VsEfSwyhhJ*U~8W!Fc%f*AfEp1ibCFjB(am?_h_+d)~1 zBm{_j6zhQ0b5%Wf%{vvUXu;9pdBuP8zyZP}SE_mDVFNy#&arNt5L-9_=u2MwHVxuL z1f!yrvWcB!^1_7#8>oc#N~z4cISBBx&;@1byt`W8e)WCt<6yk; zt)%EI%W(DTHhh<9;ZWNCZX%5`WyEm;yd0;6U+1$F?vT^r+3<4br7C(d7L7RhbW*E$ z&)G7i6gMBmHo0$i3G6_>D^{xE>EMjlsjvU^^CFkMm#AZ0+71lPVhGB_5N^^f_0nzL zMb&F(bg{3B)!+1*Pxi6%a<1*DP*^4u@Hf9vaF(+qi@k~S-xr9J-*JE{Sj>!zt6I6< zv+^oRKnYS+mdkWt6`~zaCh!BFBCmX`^k)gS(v#hdw0nj$`R$(iQod(=ZAVMom`_a4=S}!GtJGwcKQ|jjol|3PG`{RXb%5s(?_m%SB4M^y&aff; zfc)v;;`kHO7aMn?<5{l!CH-BM-4A@}$>{v!;CwhZN2;&l&u3h_`{VY$|BJ24{r<(K zaHsapcHv8O{W}|I3q39ZLeJMywS@S%VT>1teR$r#+y@k&BkXF%wHM^tfdcw!VOgg>3}L_bO|-3A-Y9%g@tYFh=Ze8c}mAe z%#5d~$b^z8NPFy^JsV%mEwFfPi{#R0JIuZfKcsD^Zpj7J(|S&49UxsW*t+Z1x_Htg zNm8>E;nE}%rrpU2J*4|N!OkY54{OEzg`}QA^a_p)Hq9eL7%MUfg(r5+LNN3uc%XWT zTZ7MhQx^0sK@yjERRtAY;`cN(9ODFjbv(bqq1sOCSwEGu0El0Mc62z!jS`~)^eznK2WQ|@eZfJ|VTNE@2oZ6R*zIFMU zzD>mm>?M%k2JRKv8COtzDu#Cec;qBE=kErE0=ZNlhPPLJvITF1)EwYrROL1BjNz>F2^rR(s#vYtxlJ$Ovq%_P)KR8QuM*1`gSK?Ecwb zkdf^b8C!ZDlDhqK8oNP*N=V;VSlp z08@AxjkUc4XBi;IR$$6y{V$NOSajeExGt90KyW5{v2B_RWY)5tv{nuqV{m%8y@PvX z!pm*ori?0^*!&K>>O%Nm3@1xx&Hyr}HT9>gHRdS8bWK7?#wwPaM?swD0l~=o*$IwZ z20Y4bu!gWM%wTLO4tSX5b9CWNA1a3u7m5ej5?jbrXp!(y2=BH`qDquzw+XmP)(rx% zU&vfqU#V8sHkoRoc5OftYZtT^<&kH!`)7r~b~&Zy*F$9;@<%E3K#5le1{8_ZRnjAa zQ1BJH^fgBE2be-6g$^_ezt%Cp30zrW$F$(>fz(J3Vj$#X1w6CWrj{s{2b`sXL2FVlXiZMF3@J4ZrB(?w z$_(i!Vp3SBW3~Yf8z|KhiluvxcW{T5w-z(ZQ!u7xnf2wu7hn--ppMd&g(-0766;Bz z3%up);#{jh$!aaFW&84P{BH*AtebS|eoX_y8E0k^z8I24F(C2`$lQ(ciEr0-w_Zzm zN=bgn--N82p(C?x3(@rS%(aQ2UfN6}1EVu$gpXJ19-7a=zYB#f*$&)j#ervDV6i5=u$X$NC95wWoZmqnV1T1Zv6oiGYK|#Ci#ARb?0CcwSd#UJ!RHAyLydVX z=bCCLV%lM_UQFL1l5r3A`YWiwm!d_&F>($oLe@9tntAm#)?~5-R9A02OqkIZ)zyNk zN>7I3pK@CC!a~xF=Tp2M8P{Fn*}`~qIXXlv_5*5&^6UK`^2+cH$=c=N#To-}*QQ4o zS)IgIy+88TP%uBRVA0YSCq(-~Yi#rtFyXrM0r1HxBE*Yxx3IVs*CkJvp17mlx)`~K z{dZ8vM+{o#fzwrNQo~*=Cn6CUzHkz&$_lQMMMBK=j>n_3#0|JGRdvk<;aW#1FhP#1 zFV#Ukv1nCzh)MpaXuB=|@n6*ggqw`;m=x}$n)6_~uq0V(DH_(ltM*?>j0zNQow z->tzum*Mi~LSN08Gm%xNgXr1&Zg$Uly<89v2b2T+uiq0QR%-yyM>Yl{rYOws(At_e8wwad)vhwSjFhXUlcOGX6O(7Ct&=OoSPUd|{%;*nJH361O?b zi4qTa7TT`iyAW91fp?CVw@5x)6l8dQ=;o)I=id3jIi9id4S?WbU!o!pR|-@{<&Of5(CttIO?Q0CRcl}XfK7kUTx3`FEFu6@?go2cNn%7YnE7ei*PQhl77~xzO2g8OKY&_5bRv z6<;+@N?CGSIsc-eLEH&{Dz-b z3#|)}+VeQ$%-^o4qm&@0;H zbxpe6qK^ExMz_HgEAno6#iLnVD1c0*%e91WxBFS5);|1x!l<<>y)-{-My$=vE{zWK zML@5hz|h$yJ$@=DDFB$&mFK%Ewaanj>8h zo;XGS912MK!GeKK5Kx_unIBV&at7E|qqSqrJZI7ElGl73vXGl6W5%Z>o&e^}(m1tw zJH`iV*X`ucd$zoJ_#?(8G0nKGfcD_iES2m-R|%x(FM(AG8po!g?JC(o*quKME^g~v zH!h*VmNF_HQG6^XL67~dSE|*`D|;t~GU(E$`a~m9t}=xH6yGLgpsCt@g(%@agEBSR z?s|pyxDQEV#&ZJ&6n}C}{FmWcn@IDFq9JhOJi4#%ZQy~pY-yo5(fg8Gny>fIHGw&X zaE4p4Jz-7!(lec)Lqw@P5(eGkMUu(+({PfKTZo(89Lh%{Tzko-gQw7guZ3zcrzw@2 zsJvMAF+TX^{%})*?fGu;>;)N(`*;PT_SK=)KM5L#6B*7Q(COEiTj@BlwgJ!aBQ-~k{P z@Zp|XL(AX+2w1S0zkExPV|u{=6AQ-)vKsa`{q#f}Cq>p48rBd+9%U$QJfyM!!PAIK-cQ3Xu|5Dx0BH(i!;Gx6#A{7Ok=&UIi6iUh1tY_G75s5H z_#_$i(hTwIpMU>qZW`>BC}6U3-+yNw?3DSs(t>XA7845>@z4w?bv*-T zsbH5ZpOyyMYV0qTS2%Q6a!`EU158llWNh|GPH5Y;-k8H*y>dZw(?z!xC|BF@qoL>;O<#LY}Vu+=Vu}Jp$k; zDr2GV=ua>-o<1!Rsy5 zR(ov#69~yBZJnZ_;djZJ9&=HKm=?|hT8bKw!_NeN%}Xm1ND{nGD9W`~EnR%Ci~JVc zvj#1$LX}eO!V(z|CPPNnnf#$Wf{Y90s>gxQ{&xj?patXis5)*VX-U0(hH@)Q!kH9* zSOH0`+9=Cd0+6(nv5*cN-3l1nE}8)4^n8qpK_}-D##XZ)0s&ml-ykgmO~O~+e2`lS z669W)e^m(ccvCFkf>{as&3ptf=&{bp^3C1^Dz4z zQ9kN&2d|-5gUbDp7@V=0lf!hH20hDI6&?i6QLom;S5H7NYhzAB-_$n5=D`VS4zS+Ym2+@OT3y3|V1}M*-gT`CRt>R)vf5e-{NmiOa78 zWPn*{7BypPL9Y7-9?h76hN?X_gK}wGLx<->RC*kcYAexu-diI>k zEN}%>gMbxxq(|gxzIgmarM4}v;LVNFm~qxO8)qzF%#FAD@Kn&RkPs9d+K!oPZevM3 zmC6*&+J>Gg4oO!)YpUXw+CMAgdsY+(Qm3u9HFT=N1Vnd@{kKQH&L=I93roJaLQt=T zvsBW)NX6KX>D%(R`x(^NX^sX0g09L`h`i-bs7T<3)~ZgP%~kLLnc$AqN3oY|>#c-& z`Z@ex;Uh7Fsi6dV0#t=sfj1G8LCwDlBf?Rmz*$GHa)TZyV%z#B<0Ab&kABKh1eOa} z=8R}StnY8TBD^!58rR)eRg@og|7x`VEf(wQl$f?Uj1rlU5l&!RtApe>@fyY9>ZWi$O+XWF6NI@I^ z9G2aB%oo*RD*B(Pzf`Rjof5LSN))NmuA<1!Ur_*q1)fCT5mI&fYJAnqT_(KUx<{M(F%dZ zNRCF}&1k^O_=D4TDeqOilKwfopmGfnrU}7w345s zIwB7juN>SO`_Hc8&2DIL;l?Ao5yI~YX_tde9H>-Jv7W&A!KV|wgoQR&;oom+1IyM} z2%frMv-R{WU08bKi)lyG!;5LVDULu#Q+(QP%CpeXmLInp%ciB2en1RreBOksiuNM(3maJfxYEEldL5&d z1L&V{yeLWDz?lP6#aLCi7%%=|Nz5kNLpT83-(E zzW`X;UVvpC76D6pD6p){LSRK70haY5|CuFmxpieT|9^W|+Z@M@ob&m9#fJJo(na%h zxm4;(6<#8VvaGT!xkTxb6i=n%%SvWtMJim@2w}UoP4YSM?*E#O8|!~bQfgY;4(aYuxFmbfSe*Sbh4Mx z8A2i3KI)kzoZO_#+McZX^VD-$k8$NCHL-B>6<4m$Xbj|>@zx*j-Yurkqy;~O#!Wbb z8ujWZT}qh|(b~DbYy}ZR!az-vtVh?UxU31QQPu$-uf-0_T?SiDr(2uXS8xBcxxITi z#bu2r_`QLXRhx~p0-4-hES4mF>bR1hKeQJ$e7G}j&d%RnU@$tz9axL4?zTHqgGwXl z^%!@(p2N9ECY8P|bnGVT85VhO07v(5-=h?W6ryPq9YwI!^_S zQ1(A~z!vqX+{t^Bhezj|NCz&rWm#|pj;?{}{tsY#CtuxKOvbW1pCQW!n6wRCR(Trz zmld8DFP^{Xtb3GA1f;C5ZzaT4xX$+`zhwBbk$Lm=uQk6L-~hCow%6NFtP2053G8QU z(r>7X&%Yb!pX-T?KR6Q8tHOyaap3oW{s2wBD+0Q|n8*KXVuzo^n{R-7>;BJOd0M&;{ zO`A~dGhpDt5*qFoxg=sz4IYhfg8Di0H`wcP_V$xTZqgdl$9FsYhBqJI751^+>Mdgh z5sgBRdTag#>R$RQd<@HTxEU7PxzuY*;Ze(vq|yRjikNbPoLT}Upq_$w>8t;G%7j}@ z&nJde)Z-n!=iNj|0P6_0KfJir055Qaz5N16487|G2wB25YwY2~{xpj@$hs+h(~>$L z$Yw=SXaY3On8Id3EsWB~cZZw!C-XW>$JNM=t-wy z*@U>!!L!t`*D+~q2OklF2&=bUAxkWq+O@GM+Re=1BcGZkd5!iOjwe11WeM<5z-@@)6*wVJ4p8XwSc-e;7k$_KZcwQJbrf> zP7B7rU}B72ms{bDB?6IU?-}f0Gb=?XMX&#LQLnYdE}wQ&3HHL{;4Kbo+T9arI>oHWcOhpYEu_hu$SZ_&TU;QCr z*^fw`iHq$dhCIF>fGdF|LS|Gc!R6N*K~0e-g43@Fp#HcK$P}LW>?N%rT?6 zjAHRS0WY51poLl#*P{jQpPt@E1-Lk>$}F6=0S(YwigHE$%FJq_ULz0_yD@sA)O1j+ zfVhLa&>Sj!?c7aY!d)V`G_W$EtuLl6TOL%gHGPMyQqr)6p{)rxg1*ULFdHWns{xf% zThh#NG?YXb8W{bS(JR5PW>7#mY$5s&S&jY%`LD(3E?|DcV%#8wQpIFDhKq`6k_@lS zUu6?P&fuX_S6OLV*Rr;^*qWu*QkG7E!ve{f!L$Q1yG^UoP$y?Y$CJ}ui#L{FVs8@3 z3r%E*ER3FGC~!g*G`_{zWwM9}mFxjY2bcrk_9DCQLqiK6sOi{ z`Jyv*M*?1jKvtay1#<_!L8I7oh>d~>BlhNBxYBEmkxeR3y3pa1kk~P}1 zkkci+)l?O?L@uWXxPAMlGv2r=*C*aAq0?~!QsluP`|KQZFZwzMx^5VwUDD=_pa6Qt zG;esyS({DXiaOA9R0L8jst}ySLjh_7Xaizv3!{cch#m*||s1?u!Iyjyvw!Re{j?q&tFs1w8Ym=ol<$p`# z=BlC4-KtNd-$Uu&5`=IBbIYKB4 z-GT;dl`z2xOo>v2f76qKMa-=fZo(S*k$%<0qBJ3}d97fCLA!7BEgAs`hHLcKpapxMoKYae|nHH@15vp2|_4%vFq-_8fekj6yZ})|6H#Pa<-1q5Mq5)Go2FsKEV)|OkSJ75&G!30B@$m>Zn6o^!CKh5sA#nIu>3&WnxQEL#6=fX!J z1(0OJ`y45Nl0&ay2wFUIG_8AedYO%&1)PwkH#oE*HIAjD(abo3Ff?C%8GbrsY3KJb zzPe?SpT(W%Fv5c&X<#H$-R|+aJ=lbTpyfz`L&GElwHQj#XPL2X3lj)eQux%u3hg z3GL#VV9Xsb$-%K1f8OT|9(rc19rvDJ-^+6*@)GI_SgiIynQ>wu`JlY7VPh`6^>!94 zf(qy@(05WcyYj5g&y~($-k8>4M{Uoocb5et+A=X)h<7W66=5xhcQ=m}A+*u%WVCYp z4R;yI8!9`;`TvWmi+os7+==@c72f65?~$hEgI#a9Vy%}u?Aa-ke#inVZ;DlAm)fsRYJpTbg0%!+VeM~R&gyRxZj;2D25}070N7#&GqarGt&Q^ zB%!kIBu+wli`GEt7#4Y`I>QvaxyosDt!N{8=XZA|k6%20^~2=*`_Jw_e)Ky{f=|JE z^Nxr1ixo+N);0GXUY}IN3mxoYhTy%o0vIziffDMjaDh%5dAzbK!ron?%kVykv!k43 z0+jk}E5+SGsTS}a%XKqrS|Voeiv>Fu(GW~E>!%M`yo7bXPnxBlBthsd>#Zi~DV)t(X zBV?-tUx&fqDPEm1BPUEt+p8lTCopR;zlxN!Uan{9V`w9=hf6Em?0}C1Yv{0jK!Vdq zS+CFe#)6rPlsy2L+!DzzICbVNoe4ngn%_M6IU%m7uQcN*Y6hz=xMX zfm12^+sv?_bneLwCo~S=?|4E}GeFQ=SrFe(}GdtW-`h`(z)1c|OI(NqQeuvV|!d zN?6EWoA8!Am@aD}MsT1gB9qBu@$hv0Zo?DQIakJ2vSiq;fBs+iDT`m~?T;T@vd3-s zIMXMY19;d@zQ}$KzPY@ZP2~yB@4*#wMh(MrYZuHBETwW#iUuWUr1W50)QR2PSom?_g(GD)-Q5Q@}3pPsaqQxv7SlA$eBokiXV%ivW7y%w?3#CG91oJ z$Z`Njz-65T7+-rJ>sd^L%wLNkOC5#GuRV};A=4o9*J8+0McDk&@ zFh(>5nE|&af1dm?Vss}4*1zby*;{10Vyd3Q&91}Z;$12{eRvanC&Mg%Diw#!f_*v; zuhy=>&_=1jxXD&-HH2%yP0?8k$Qw=aR=wkHO#tG`G_?)BM$Q9w;u+5Pe)^EEgxvhg zlV=B=Ne=amw{KYtq+T>3ELR&ludO&X>btC!3XL}~(qp0^d*c!N8;Ry$05^*#k;}4) zNgUmyI#1i6i6D%TW`aevV|(5w?>%4UVdbyCNloDR-q8U?-;oMN?mq@I!TsP&S^hER z!@HuzyUW!sXP>lSs;KXIdLaS)H!s_q0reA7iYc^8iQSla<^Kov7{99 zh`9G-f#|x}rdV1hLP1lHH!@`87zayQ3G1Y{jhPUQHukbAbC3~fJ&Tg@U zFr937CR)aVv5azJf}=lT0dl3GfUohT>L0vzCW!A7vmS8EKmw8;Iejum-C9El05kTz zag0!^cV1R#3qduT^t8}bs0j%>u3rkZ;g$$4$@VX%?=OBTu5!zq--rt=;QPW@VSt4a ze-$H~UQY0!U6L@! zZ^*mfT?xaJun2|=Q@)+fu*f-idws5UQ!X)_U7R2`K4*ivDx*oXc&tet%KgZ@6S*YO zYI=`#-^*ODL*(VgvU7U+GknGQWb0^lJUtUPP;S?Kv_FAk=o`*81idZWU}Q6IAxP}k zU800A0`)%5q`pNG=+pYF4jm3DbS#|J;OmQA?dq&sXg`| z_t?NA!@Uwmm!IfM0GQtsEhg?1t_H~U^g+A=I@>zlPs3jD1Na;uS)j|tI6Y-UkO%Pq ziwR)rwN#6CFmPF+yF&Db&4z-`8y2EOGDB(vic zp0~9zlK+lqF@kBV)_&f$J4QOncG4DuwWjq`>3FeJ$~b*Whg>|h1yrX{k}YR*y<#4~ zNG~ZRItrczjsNUeC%AMp%2j$u%u~Fc9L;8wH%uO>P{1M=*NAd;+<6X4x;siWfIz#4 z#1)f^bEb7{)+&WE37FRNt`KgJo8<+}&N`x>CSH2S$J)e;C)M;oadwebBVL#9ma8@*U`*B|MZ!{rybMbbInF*wkZ_vV z8M2VAl6c`vF{KOAmNzDd9Ag5B|D0`bswhb9l}YCz4ByZ?I$J{Ob|<;zf7hnxrCp>z zC#%S${caag&-zfx*wY7Zo;=edO4t?q^3eedUE1WE@}uiMfBW(1>7$qB_xe~{d0;J4 zso%n?<=)dPR~*j{*L?bL!OK?=`N5JpcAb6wXPgb+u+3(Dg>l*~5x$I?K`LYf5OeM9 zxu{j7AtxT1}cllmu-zQvxzzQ!5$bm;l_}iMRJi zu6RI{i9O>!4YiWuLDVuRj3)Po z|<2-Kq{=*f*zOaF}%O}*}fn;<&;Hge+B3im&P%y;~B}ACH3Icz3CubYg z)9tqN+r|v$^M}iepU&i-IH+6>*yZWj`8#_5bclVZ7(u*d#;SR~74->nO<$f}ot+%b zCUR}YoXaQADkPpL7&JfEK(&!!orXBSt~9Ssl&6H0~#_D4bmM*xBz;x0uj zSpGDf?J%6d+XyETmtfnN_5+uFoJW80l2QLF#2IIJ;t1JEU~mf-1kk^u>#K|RxM`66 z{FE`FXX2FtYu#e`9|P_z(D4DJiQ1M$1sw1w>~+lDP)UsmL!l{X5y~^ZjuySNtTMQr zevH~cj-3Cw#?`-|CjdiJh{IPU1`G@zb%hB{Cc4<9bnRemC;Lb-KCt0k=FH1_o%H81 z1pwOMc8Y+rox#mT2uLiMgM?$t;bDM;|6^R7Z}a@Fey599nEw?z#+jUz`Jo;{5mQIi zd(2QSulD3`-2(PO&5NtIymB6Fn*y2-bDN!0pY_0NAIC-E3#EpZ0elK_)08RTfV5#X zS(kDJL0*PKLxN_png9j2FUNcegU(4^7QhfP5r7Dp;NGuy(5F8g&2X4fV!~&qFe_(o z&kz=-wiite-3}455V&)JLBzt+Y^lVfNty2{Ab z0%D$>qZY6`yFh^G?SxB9ldbFdH7x|D>XWzAkCW4*PxI~F$t!ey<_$__fK>6r(Hxrt zfEqj|;0DD)^bu>~{pb=8ro|Ck4eVjJ8Q;7(7wf&5ifvBbPp^KwKqOm5bAsu@dd!jz z)o);vI3?D`yLaH;OZ=l8C0hjhj&})jW)(wXsXfWeOtlk_cjY*9t;USplgw|kPkRN! z=Eg+e7bvlwZTC?BiS8NzQv5RL|I6yl?n+C#iD9jDrh;=zhKA_9=`LP*8CBE6ACJ!8 z!GC2nkxXhP8|*6QTagBI;(x(s%qse6HlR)j{J> z77-RG(mtxK*p~$x$$+I@cFHPhaVH-x<}$NLth3Ce+33I-)*~&6gM#J!InH*q+j11y z7&=oSi!dqORYhXh3eJ}mOEeosLkD9eB#Tk*l5A^A%mi~M>UtNUFWSB^G&TV{y*S4_ z+qZlNT`;7OjdySTKdGTsWU4V@qUP5=Kg)yDouJL9S66fvl$N^6EJWTZrfcwMM$OhF z9Mm}~?IRKBvXhyc(~VV}i4P+^EGg32oD;-`yx*2*smy>a-G*ul=*MEQy-$U;b0kG+ zti%{$)4qI3#5{DSeGZQff#$=jhq3O4r#*6w%x20imB|bk)%A2Eu_vio7?^2?w8aFn#$Z3@uXe?rk@rfNk+xI0oKdb-C2E*iie0;5UnopRnPV=aC z@`e>$Fz*}$xgkP1;Fk?boy9WbbTON~-V|0&jCJI2ao|SjRl5;E__BdX-U0_Z&34lC zU8DTufbQOv7a9hbGvM&k*~Rr7`^|MKcuI%KLn;y{pga0xzYfd@+A37-DfA z>z_Z;i(p9Q`s8FfpYKkdpIbnlp$ZK+XedPk{5VW`jlH@a-(UYcEcKwAiNRic4iAjc z2phaAu1%i9=b zSAFrGVNCqy{GqI!=kN78w8JVhOz1;E>4y(tF*3c*D{RnX@_3G#n6+#fpzU4U;Qe-b zIXyp_riVa(J6Gf#qQ_HoD^z5ey5`w=788)LQ4b}Mh6L9}&-LI>(WH-~e<9J%(k)+( zed#yVGtm;x8LTP8rs)9UTqD) z1_LAaid;z@AEZc~)Zh-f#f>IgZ_j2R{nqU0{qgD1BtoDRSUZgd~lt^D%qa4%|7uae~+V#6;|$E}j(T)ua&&#@S^(znvFSX!r}6E5gDwm-8Dp3y);E^o9tTGuFR2Dm)1k`K;HBQ zuXU!EvaibEK!bpwF7j<%a}E_Mh97NZkv2dUoLQ5-czIas8}4}(UE9?}d9969VDqjT zH!Q?mfL_pUu3I&TS5;dbQK{&~Bicpd&3;{6{xwjL-3WC`oB+?;^yhtCUwZ~sLu|}G zx3FhoSqFhTvKYs*cbooVQIPkmuR^^p9}F3)qN19_<&2dPi1b{g(R!sBG5U>`H9XE= zV(BmjqEuC0yV-HJ(%jb&}?- zsiPeoX?#Hn@h-Je*YuJuB;`n8B2fydG;bYyZp8jPUh85hSA-L*81`x^hrL6L03=JN zV6;4ko9W3St?+@HK~*UpZt};X3cCG}#zfnZ-${AMcX4g??Rfv$py~gv_uP3}wXnQ8 zT91U?M+Sj4h*xq=YVo38R@#h|ip3(9K}s}WBwXR_Ty=rOEsb)v*;*BzR6~%1?xtkZ zBhw1zkTpE9suo=!t>tVO9HI1%x~LuzHk;`nB(%028ib|C7h~-vK1r|&H&C%yguvmZ ziD%U!rT2}zty-)efFxVFSA}k&e`XYRg@aQEwMWLTS;>UcKkgMUH?)hdw|i^n!o6fI zu+g^ic(*A3pdg&Veiu)JcO^ndQK&AG3!%W&mn2Xf6s2SF^z+7Iqd5lePsA(pUq$$)46gfoZ>oG7uw6;$-P=R#ojv3SqtAi%S5fHY@rc;F zSI^V*I{5Cu%HX>`91ISD;01igobwBLE~Wv2SVpQ5W(tuHeHh{%knTpkZp_1>d3$sz z+Uj46iO4u1E4xFBAxxv5%x%;g~uEc)a$Q1^9FV;?P7EOoNJoGDy%O~Zy zfddmfsW6urRN3Fi1uRZ6XK^x1SrWc|0@4>Y6J5`9GA!ugoKxx%`l3&4am)<33z3bF z2jkgKl;m9|yOz_e<&K zArUvdy%a#J)KK#NNt1<6fP;ZH ztn+{n1*+O^Z7*4_Y#7MUHb=2r+X}{&a)%ki>?X*1CNtS=hZuQ-=vrq-4y8b%fV%B2 z3E8m(LXPT4Pv|d;l%J*MTV^rEjzt)BZj&nObdjWI_Ji1#Niv{3P>YWxi!^X zMK!jq!#JWKh$hAHS_~1BvnYO{wi6`Kz@{%+}^>Y3{hlA(M72d z%mzPDWBRIdZ9yGMSr%yC(7B|IO%1hIXck*dXIy9)B~rCrb?@-CyFv77`I~~3CX@bK z1DF2ONX7?6c63$(2b1UDOdi~S_}!yt`v=b6^r$4Al{8nl z(cXIPOy^e)2HYi#D9=1~!h?oo^mxzng=iN+Hb{ z4&_%E6?tOA;vA3(3v5P%u(EMz95+aHBz}}?FGtnk)(|xq!!w4d=kF0@tzAl_LKDTV zFJKnNGa}}=q;Nn#E&)i5iU|qn(|(&I5(F4PH84#Ns;U_V$QFRq$RsB0$JB^WS7k4A zKe`>^;PT`B^YIflv+dh9Y9d}ik|I-QQ6lX{t^=G->CQYib9RP9!sO>!Kjdeft>K*} zviOz!u1NI^R^o9jv(+I;#>`2U*tO_w4`9+HLG6&IvzStXjs)m|ocJpNk5z*0>1)Va z?DNSIQH;;j$nlqqvbVt_7!K=>R`MP8b4?{BnPw6oFDug+fTQknu(7w=JFoyL-Q1O) zfO0Kecdrz9<$)u=W6Ts>Y=W;`zeGOJ;t>jchXuQY7Dg%(&UF9KHU4s%5SzNeRc@Bs zU(F&y!8GQ>N8*vDJI4HlGs96A!gAQ{eH@Zi&{&#)@)RFiez?&EBW!TCCewIDMWVR! zHEPo}4TT}Ma4aZJ>i3DWCz;~|ub?lySxMIkxA)|xhDc0u6rl)@Q>kMTJU`qt6u22# zz8iV6i91CWOyO4*v4jOzAV6IzjegXHxwHa3u7yPr)R*NkJv}@ zkMfz#TluRN|K_#x1c3dgGBa9+y|h8Zp>;gks|I~{)3Z_LlRZ1Xo`$aQ#gYulDoZgb zD=f>XtfM_nylved(v7TSpQQ3+`n1$eZ~~yZW6d;77AYQeW7N1@1H>)D^-O3 z)mK)lwUw4?UTNg}07ZPQj<&RDhdA4bDx6QqAglDj4@5`bAKWD#xOCVJ^P+{hk!R+a zr@5j@PGcs=S88(dH&U}OKHf@-OfXQ;J1tW#4Kq7V%mjF09`4WuE9aP% zcFkIgTFHxYSm_qCabu_bQOESG9-U!l z%A=o8rXQHryV$oqk0mKMV3crLIc#)iA0ib=JnKyJEMB$CT(Y0d1NG|#0D|QZ%KUmq zbJW7u6z1<@xXYskb0iN8FbRPl^htnp4=%QlZ9^cGp)T6p*#)j(#DI)Ap4pWsHtjE> zs5>MZ)e!-_3XOyxXmOCAZ5>n!)r0=Jx#vDpp+qYkpbXAao03af*QG2gJCf#H&>-6P zF$U6mf?D3c(hnTAbomG+?&j%;PT#zR48>0rK7F=&3-fBtMOg zbrAK$WXX{5*yB=B~6Dh?mG<0z7-V` zHhLyfnL0h{KM_d~PTZ7oq*Ou?B}F+iecJ{RCO=DhZ>;jg7LB(>dDzk@FRofTpB*V& zHekNOS#S5;R~xqLzd%qeq`g zg*VMcbfD-i?djKu%KAvZzi7FaO)s?NPVyqcgo%%A-AutHS^r9hM)9cF!Qm_Nn5k)u z$=1rsbw6){!y*M3J&KUxpip+C;7E@_%X%$h({U5P1Iq)nN^N*tj4HO&6^mD5s`;Az zG$7?R>w2nWrM(Yj@kksFE3CJ!g((vjbC8TxU5hn&`;89>AJ|7YW#ob$>nJ&!p!m8( zuV3?NDL19`!_tpYOLA<89|d#!MLojmcfv4|Y-l7;1_HF0pu?eTo1f&!YW0*$tVv}M zi)quh=7{J|Pq$dXLTB6CbXLl@3HMx}%^gHwSw>);1 0: try: - api_resp = arg_req_function(req_url, params=arg_params, headers=http_headers, verify=self.verify_ssl) + api_resp = arg_req_function( + req_url, + files=arg_files, + params=arg_params, + headers=http_headers, + verify=self.verify_ssl) except requests.exceptions.ConnectionError: self.result['failed'] = True self.result['msg'] = "Failed to connect to '{}' when calling DECORT API.".format(api_resp.url) @@ -801,7 +806,8 @@ class DecortController(object): sepId=sep_id, pool=pool_name, start=start_on_create, # start_machine parameter requires DECORT API ver 3.3.1 or higher - interfaces='[]') # we create VM without any network connections + interfaces='[]'# we create VM without any network connections + ) if userdata: api_params['userdata'] = json.dumps(userdata) # we need to pass a string object as "userdata" @@ -3209,8 +3215,12 @@ class DecortController(object): ret_rules = self._pfw_get(comp_facts['id'], vins_facts['id']) return ret_rules - - def _k8s_get_by_id(self, k8s_id): +############################## +# +# K8s management +# +############################## + def k8s_get_by_id(self, k8s_id): """Helper function that locates k8s by ID and returns k8s facts. @param (int) k8s_id: ID of the k8s to find and return facts for. @@ -3230,19 +3240,13 @@ class DecortController(object): api_params = dict(k8sId=k8s_id, ) api_resp = self.decort_api_call(requests.post, "/restmachine/cloudapi/k8s/get", api_params) if api_resp.status_code == 200: - ret_k8s_id = k8s_id ret_k8s_dict = json.loads(api_resp.content.decode('utf8')) else: self.result['warning'] = ("k8s_get_by_id(): failed to get k8s by ID {}. HTTP code {}, " "response {}.").format(k8s_id, api_resp.status_code, api_resp.reason) - return ret_k8s_id, ret_k8s_dict + return ret_k8s_dict - ############################## - # - # K8s management - # - ############################## def k8s_find(self, k8s_id, k8s_name="",rg_id=0,check_state=True): """Returns non zero k8s ID and a dictionary with k8s details on success, 0 and empty dictionary otherwise. This method does not fail the run if k8s cannot be located by its name (arg_k8s_name), because this could be @@ -3259,41 +3263,30 @@ class DecortController(object): @return: dictionary with k8s facts if k8s is present. Empty dictionary otherwise. None on error. """ - # Resource group can be in one of the following states: - # MODELED, CREATED, DISABLING, DISABLED, ENABLING, DELETING, DELETED, DESTROYED, DESTROYED - # - # Transient state (ending with ING) are invalid from k8s manipulation viewpoint - # - K8S_INVALID_STATES = ["MODELED","DESTROYED","DESTROYING"] self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "k8s_find") ret_k8s_id = 0 - api_params = dict(includedeleted=True) + api_params = dict(includedeleted=True,name=k8s_name,rgId=rg_id) ret_k8s_dict = None - if k8s_id: - ret_k8s_id, ret_k8s_dict = self._k8s_get_by_id(k8s_id) - if not ret_k8s_id: - self.result['failed'] = True - self.result['msg'] = "k8s_find(): cannot find k8s cluster by ID {}.".format(k8s_id) - self.amodule.fail_json(**self.result) - else: - api_resp = self.decort_api_call(requests.post, "/restmachine/cloudapi/k8s/list", api_params) - if api_resp.status_code == 200: - k8s_list = json.loads(api_resp.content.decode('utf8')) - for k8s_item in k8s_list['data']: - if k8s_item['name'] == k8s_name and k8s_item['rgId'] == rg_id: - if not check_state or k8s_item['status'] not in K8S_INVALID_STATES: - # TODO: rework after k8s/get wilb be updated - self.k8s_vins_id = None - self.k8s_vins_id = k8s_item['vinsId'] - # - ret_k8s_id = k8s_item['id'] - _, ret_k8s_dict = self._k8s_get_by_id(ret_k8s_id) - + + api_resp = self.decort_api_call(requests.post, "/restmachine/cloudapi/k8s/list", api_params) + + if api_resp.status_code == 200: + k8s_list = json.loads(api_resp.content.decode('utf8')) + + if k8s_list['entryCount'] == 0: + return None,None + + for k8s_item in k8s_list['data']: + if not check_state or k8s_item['status'] not in K8S_INVALID_STATES: + ret_k8s_id = k8s_item['id'] + ret_k8s_dict = self.k8s_get_by_id(ret_k8s_id) + self.k8s_vins_id = k8s_item['vinsId'] + return ret_k8s_id, ret_k8s_dict def k8s_state(self, arg_k8s_dict, arg_desired_state, arg_started=False): @@ -3414,7 +3407,9 @@ class DecortController(object): return def k8s_provision(self, k8s_name, - k8ci_id,rg_id, + k8ci_id, + rg_id, + vins_id, plugin, master_count, master_cpu, @@ -3424,8 +3419,18 @@ class DecortController(object): master_pool, default_worker, extnet_id, - with_lb, - annotation, ): + with_lb, + ha_lb, + sans, + init_conf, + cluster_conf, + kublet_conf, + kubeproxy_conf, + join_conf, + oidc_cert, + annotation, + extnet_only, + ): self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "k8s_provision") @@ -3441,14 +3446,17 @@ class DecortController(object): def_wg_disk = default_worker['disk'] def_wg_sepid = default_worker['sep_id'] def_wg_pool = default_worker['pool'] + def_wg_ud = json.dumps(default_worker['ci_user_data']) if \ + "ci_user_data" in default_worker else None def_wg_lab = default_worker['labels'] if "labels" in default_worker else None def_wg_taints = default_worker['taints'] if "taints" in default_worker else None def_wg_ann = default_worker['annotations'] if "annotations" in default_worker else None - + api_url = "/restmachine/cloudapi/k8s/create" api_params = dict(name=k8s_name, rgId=rg_id, k8ciId=k8ci_id, + vins_Id=vins_id, workerGroupName=def_wg_name, networkPlugin=plugin, masterNum=master_count, @@ -3468,9 +3476,22 @@ class DecortController(object): annotations=def_wg_ann, extnetId=extnet_id, withLB=with_lb, + highlyAvailableLB=ha_lb, + additionalSANs=sans, + initConfiguration=json.dumps(init_conf) if init_conf else None, + clusterConfiguration=json.dumps(cluster_conf) if cluster_conf else None, + kubeletConfiguration=json.dumps(kublet_conf) if kublet_conf else None, + kubeProxyConfiguration=json.dumps(kubeproxy_conf)if kubeproxy_conf else None, + joinConfiguration=json.dumps(join_conf)if join_conf else None, desc=annotation, + userData=def_wg_ud, + extnetOnly=extnet_only, ) - api_resp = self.decort_api_call(requests.post, api_url, api_params) + + if oidc_cert: + upload_files = {'oidcCertificate': ('cert.pem', str(oidc_cert),'application/x-x509-ca-cert')} + + api_resp = self.decort_api_call(requests.post, api_url, api_params, upload_files) k8s_id = "" if api_resp.status_code == 200: for i in range(300): @@ -3490,7 +3511,7 @@ class DecortController(object): self.result['changed'] = False return elif ret_info['status'] == "OK": - k8s_id = ret_info['result'] + k8s_id = ret_info['result'][0] self.result['msg'] = f"k8s_provision(): K8s cluster {k8s_name} created successful" self.result['changed'] = True return k8s_id @@ -3564,6 +3585,7 @@ class DecortController(object): labels=wg['labels'] if "labels" in wg else None, taints=wg['taints'] if "taints" in wg else None, annotations=wg['annotations'] if "annotations" in wg else None, + userData=json.dumps(wg['ci_user_data']) if 'ci_user_data' in wg else None ) api_resp = self.decort_api_call(requests.post, "/restmachine/cloudapi/k8s/workersGroupAdd", api_params) self.result['changed'] = True @@ -4054,7 +4076,7 @@ class DecortController(object): self.amodule.fail_json(**self.result) return 0, None - def lb_provision(self,lb_name,rg_id,vins_id,ext_net_id,annotation,start=True): + def lb_provision(self,lb_name,rg_id,vins_id,ext_net_id,ha_status,annotation,start=True): """Provision LB according to the specified arguments. If critical error occurs the embedded call to API function will abort further execution of the script and relay error to Ansible. @@ -4081,6 +4103,7 @@ class DecortController(object): rgId=rg_id, extnetId=ext_net_id, vinsId=vins_id, + highlyAvailable=ha_status, start=start, decs=annotation ) @@ -4392,6 +4415,9 @@ class DecortController(object): return def _lb_bind_frontend(self,front_name,bind_name,bind_addr=None,bind_port=None,update=False): + + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_bind_frontend") + api_params = dict( lbId=self.lb_id, frontendName=front_name, @@ -4406,7 +4432,9 @@ class DecortController(object): api_resp = self.decort_api_call(requests.post, api_url, api_params) self.result['changed'] = True - def lb_update(self,lb_backends=[],lb_frontends=[],mod_backends=[],mod_servers=[],mod_frontends=[]): + def lb_update(self,prime,front_ha_ip,back_ha_ip,lb_backends=[],lb_frontends=[],mod_backends=[],mod_servers=[],mod_frontends=[]): + + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_update") #lists from module and cloud mod_backs_list = [back['name'] for back in mod_backends] lb_backs_list = [back['name'] for back in lb_backends] @@ -4449,16 +4477,30 @@ class DecortController(object): if del_list_fronts: self._lb_delete_fronts(del_list_fronts) + #set bind_ip + if front_ha_ip != "": + bind_ip = front_ha_ip + + if front_ha_ip == "" and back_ha_ip != "": + bind_ip = back_ha_ip + + if front_ha_ip == "" and back_ha_ip == "": + if prime["frontendIp"] != "": + bind_ip = prime["frontendIp"] + else: + bind_ip = prime["backendIp"] + if add_list_fronts: - self._lb_add_fronts(add_list_fronts,mod_frontends) + self._lb_add_fronts(add_list_fronts,mod_frontends,bind_ip) if upd_front_list: - self._lb_update_fronts(upd_front_list,lb_frontends,mod_frontends) + self._lb_update_fronts(upd_front_list,lb_frontends,mod_frontends,bind_ip) return def _lb_delete_backends(self,back_list,lb_fronts): #delete frontends with that backend + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_delete_backends") for back in back_list: fronts = list(filter(lambda i: i['backend'] == back,lb_fronts)) if fronts: @@ -4471,6 +4513,9 @@ class DecortController(object): self.result['changed'] = True return def _lb_delete_fronts(self,d_fronts): + + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_delete_fronts") + for front in d_fronts: api_params = dict( lbId=self.lb_id, @@ -4483,7 +4528,10 @@ class DecortController(object): self.result['changed'] = True return - def _lb_add_fronts(self,front_list,mod_fronts): + def _lb_add_fronts(self,front_list,mod_fronts,bind_ip): + + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_add_fronts") + for front in front_list: add_front, = list(filter(lambda i: i['name'] == front,mod_fronts)) api_params = dict( @@ -4496,14 +4544,17 @@ class DecortController(object): self._lb_bind_frontend( add_front['name'], bind['name'], - bind['address']if "address" in bind else None, - bind['port'] if "port" in bind else None, + bind['address']if "address" in bind else bind_ip, + bind['port'], ) return def _lb_create_backends(self,back_list,mod_backs,mod_serv): ''' Create backends and add servers to them ''' + + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_create_backends") + for back in back_list: backend, = list(filter(lambda i: i['name'] == back,mod_backs)) api_params = dict( @@ -4536,15 +4587,14 @@ class DecortController(object): def _lb_update_backends(self,back_list,lb_backs,mod_backs,mod_serv): + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_update_backends") + lb_backs = list(filter(lambda i: i['name'] in back_list,lb_backs)) - #mod_back = list(filter(lambda i: i['name'] in back_list,mod_backs)) for back in lb_backs: del back['serverDefaultSettings']['guid'] mod_back, = list(filter(lambda i: i['name']==back['name'],mod_backs)) - #mod_servers = list(filter(lambda i: i['name']==back['name'],mod_serv)) - #raise Exception(mod_servers) if "default_settings" not in mod_back: mod_back["default_settings"] = self.default_settings else: @@ -4619,7 +4669,9 @@ class DecortController(object): api_resp = self.decort_api_call(requests.post, "/restmachine/cloudapi/lb/backendServerDelete", api_params) self.result['changed'] = True return - def _lb_update_fronts(self,upd_front_list,lb_frontends,mod_frontends): + def _lb_update_fronts(self,upd_front_list,lb_frontends,mod_frontends,bind_ip): + + self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "lb_update_fronts") for front in upd_front_list: mod_front, = list(filter(lambda i: i['name'] == front,mod_frontends)) @@ -4631,8 +4683,8 @@ class DecortController(object): self._lb_bind_frontend( front, bind['name'], - bind['address']if "address" in bind else None, - bind['port'] if "port" in bind else None, + bind['address']if "address" in bind else bind_ip, + bind['port'], ) else: lb_bind, = list(filter(lambda i: i['name'] == bind['name'],lb_front['bindings'])) @@ -4642,8 +4694,8 @@ class DecortController(object): self._lb_bind_frontend( front, bind['name'], - bind['address']if "address" in bind else None, - bind['port'] if "port" in bind else None, + bind['address'] if "address" in bind else bind_ip, + bind['port'], update=True, ) lb_binds_list.remove(bind['name'])