From 6ec5ee1b9d4fb789035f62c64612475ada105c06 Mon Sep 17 00:00:00 2001 From: Dominic Ricottone Date: Thu, 16 Nov 2023 22:51:34 -0600 Subject: [PATCH] Initial commit --- .gitignore | 5 ++ Makefile | 16 ++++ README.md | 186 +++++++++++++++++++++++++++++++++++++++++++++ choropleth_map.png | Bin 0 -> 61010 bytes main.py | 57 ++++++++++++++ 5 files changed, 264 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README.md create mode 100644 choropleth_map.png create mode 100644 main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..08c9f73 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.venv +__pycache__ + +knapsack_example.geojson + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..be97b41 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +clean: + rm -rf .venv + rm -rf **/__pycache__ **/*.pyc + rm -rf *.png + +.venv: + python -m venv .venv + (. .venv/bin/activate; pip install --upgrade pip) + (. .venv/bin/activate; pip install numpy xpress geopandas matplotlib folium mapclassify) + +knapsack_example.geojson: + wget https://raw.githubusercontent.com/sburtner/SDSS21/main/knapsack_example.geojson + +run: knapsack_example.geojson + (. .venv/bin/activate; python -m main) + diff --git a/README.md b/README.md new file mode 100644 index 0000000..f0678b3 --- /dev/null +++ b/README.md @@ -0,0 +1,186 @@ +# Xpress Demo + +This is a demo for the FICO Xpress module for linear programming optimization. +Everything shown here is a 'normal' Python conversion of the +[Jupyter notebook](https://gist.github.com/sburtner/3c058b06fc56bf5293c9851dd645939a) +from the 2021 Spatial Data Science Symposium session +"Spatial Optimization for Planning and Decision-Making". +All credit and ownership belongs to Susan Burtner, Dr. Jing Xu, Jiwon Baik, +Seonga Cho, Vanessa Echeverri Figueroa, Evgeny Noi, B. Amelia Pludow, and +Enbo Zhou. + +## Relevant Notebook Quotes + +> Here, we are going to work on the [well-known] Knapsack problem, apply it to +> forest treatment, and explore some extensions. + +> The context that we are interested in is to select land management units for +> monitoring and evaluation in Stanislaus National Forest, in order to maximize +> the total benefit from treatment while not exceeding the capacity of +> resources and labor. The study area is part of Stanislaus National Forest +> which is located northern California. + +> Mathematical programming usually has the following form: +> +> Maximize/Minimize f(X_1_, X_2_, ... x_n_) +> +> Subject to g_1_(X_1_, X_2_, ... x_n_) <= b_1_; g_2_(X_1_, X_2_, ... x_n_) <= b_2_; ... g_m_(X_1_, X_2_, ... x_n_) <= b_m_ +> +> Where X_i_, i = 1, 2, ... n, are decision variables, +> f is the objective function measuring soluton quality, +> and we optimize f to acquire the best solution. +> g_i_, i = 1, 2, ... m, are mathmatical [functions] to help formalize +> constraints. +> b_i_, i = 1, 2, ... m are constants to define constraints. + +> [L]et us assume that that the US Forest Service is planning to treat 100 +> acres (threshold capacity) of the Stanislaus National Forest to decrease +> wildfire risk. +> The selected units should be those that maximize the benefit or resilience +> to wildfire while the threshold capacity is not surpassed. + +> Most of the real-world problems are based on multiple objectives. +> ... +> For example, (1) protecting property and (2) protecting people can be two +> major objectives (Church and Murray, 2018) in fire protection services. +> And most real-world problem contains a complicated relationship between +> multiple objectives like the example. + +> The result of the multi-objective optimization problem is usually visualized +> as a Pareto frontier. +> The graph below shows that there is a trade-off relationship between +> (1) covered property and (2) covered people. + +*Adjustments noted with brackets. Omissions noted with elipses.* + + +## Results + +``` +$ make run +(. .venv/bin/activate; python -m main) + +:: This is the data +(16, 8) + CSO_depart CSOterr_ID CNSM_NoMGT Acres LMU_ID res_d_STND res_d_SPM geometry +0 0.833334 164 172765.0 5.337479 35564 0.921725 14.163780 MULTIPOLYGON (((757755.000 4243875.000, 757725... +1 0.565610 164 1757300.0 27.354568 36492 1.304450 20.044963 MULTIPOLYGON (((756915.000 4243875.000, 756975... +2 0.585455 164 3106670.0 48.926867 36493 1.220160 18.749712 MULTIPOLYGON (((756735.000 4243545.000, 756765... +3 0.590000 164 1042850.0 15.790036 36494 0.687985 10.571991 MULTIPOLYGON (((756465.000 4243695.000, 756435... +4 0.652973 164 435944.0 8.228611 36964 1.695560 26.054994 MULTIPOLYGON (((757425.000 4243665.000, 757425... + + +:: This is some licensing stuff, can be ignored +Using the Community license in this session. If you have a full Xpress license, pass the full path to your license file to xpress.init(). If you want to use the FICO Community license and no longer want to see this message, use the following code before using the xpress module: + xpress.init('/home/al_dente/dev/xpress-demo/.venv/lib/python3.11/site-packages/xpress/license/community-xpauth.xpr') + + +:: This is the solution +FICO Xpress v9.2.5, Community, solve started 22:49:07, Nov 16, 2023 +Heap usage: 390KB (peak 390KB, 86KB system) +Maximizing MILP noname using up to 4 threads and up to 7897MB memory, with these control settings: +OUTPUTLOG = 1 +Original problem has: + 1 rows 16 cols 16 elements 16 entities +Presolved problem has: + 1 rows 16 cols 16 elements 16 entities +Presolve finished in 0 seconds +Heap usage: 421KB (peak 433KB, 86KB system) + +Coefficient range original solved + Coefficients [min,max] : [ 2.67e+00, 4.89e+01] / [ 8.34e-02, 1.53e+00] + RHS and bounds [min,max] : [ 1.00e+00, 1.00e+02] / [ 1.00e+00, 3.12e+00] + Objective [min,max] : [ 1.06e+01, 2.67e+01] / [ 1.06e+01, 2.67e+01] +Autoscaling applied standard scaling + +Will try to keep branch and bound tree memory usage below 7.0GB + *** Solution found: .000000 Time: 0.00 Heuristic: T *** + *** Solution found: 104.739705 Time: 0.00 Heuristic: e *** +Starting concurrent solve with dual (1 thread) + + Concurrent-Solve, 0s + Dual + objective dual inf + D 176.96135 .0000000 +------- optimal -------- +Concurrent statistics: + Dual: 1 simplex iterations, 0.00s +Optimal solution found + + Its Obj Value S Ninf Nneg Sum Dual Inf Time + 1 176.961353 D 0 0 .000000 0 +Dual solved problem + 1 simplex iterations in 0.00 seconds at time 0 + +Final objective : 1.769613529197185e+02 + Max primal violation (abs/rel) : 0.0 / 0.0 + Max dual violation (abs/rel) : 0.0 / 0.0 + Max complementarity viol. (abs/rel) : 0.0 / 0.0 + +Starting root cutting & heuristics +Deterministic mode with up to 1 additional thread + + Its Type BestSoln BestBound Sols Add Del Gap GInf Time +a 166.838660 176.961353 3 5.72% 0 0 + +Performing root presolve... + +Reduced problem has: 1 rows 11 columns 11 elements +Presolve dropped : 0 rows 5 columns 5 elements +Will try to keep branch and bound tree memory usage below 6.9GB + + Its Obj Value S Ninf Nneg Sum Dual Inf Time + 2 176.810476 D 0 0 .000000 0 +Optimal solution found +Dual solved problem + 2 simplex iterations in 0.00 seconds at time 0 + +Final objective : 1.768104758324006e+02 + Max primal violation (abs/rel) : 0.0 / 0.0 + Max dual violation (abs/rel) : 0.0 / 0.0 + Max complementarity viol. (abs/rel) : 0.0 / 0.0 + +Starting root cutting & heuristics +Deterministic mode with up to 1 additional thread + + Its Type BestSoln BestBound Sols Add Del Gap GInf Time + 1 K 166.838660 169.804364 3 1 0 1.75% 1 0 + +Cuts in the matrix : 1 +Cut elements in the matrix : 11 + +Performing root presolve... + +Reduced problem has: 2 rows 5 columns 10 elements +Presolve dropped : 0 rows 6 columns 12 elements +Presolve tightened : 5 elements +Will try to keep branch and bound tree memory usage below 6.9GB + + Its Obj Value S Ninf Nneg Sum Dual Inf Time + 4 170.072327 D 0 0 .000000 0 +Optimal solution found +Dual solved problem + 4 simplex iterations in 0.00 seconds at time 0 + +Final objective : 1.700723269425466e+02 + Max primal violation (abs/rel) : 0.0 / 0.0 + Max dual violation (abs/rel) : 0.0 / 0.0 + Max complementarity viol. (abs/rel) : 0.0 / 0.0 + +Starting root cutting & heuristics +Deterministic mode with up to 1 additional thread + + Its Type BestSoln BestBound Sols Add Del Gap GInf Time + *** Search completed *** +Uncrunching matrix +Final MIP objective : 1.668386599999999e+02 +Final MIP bound : 1.668388369613529e+02 + Solution time / primaldual integral : 0.01s/ 24.267905% + Number of solutions found / nodes : 3 / 1 + Max primal violation (abs/rel) : 0.0 / 0.0 + Max integer violation (abs ) : 0.0 +166.83865999999995 +``` + +![choropleth map](choropleth_map.png) + diff --git a/choropleth_map.png b/choropleth_map.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9b45947579eace83b2af69b211b80570bd10a5 GIT binary patch literal 61010 zcmeFZXH-<#7A{(fg0>=UXhji91;Id+B(d-yAOa$Yk`%DXl9VW^3R{IEBBg~$1_jAU z0YS1#E0RHS7Dy5Dwmad));{fMWv ztDC)xv!v)*Q3>HAcJA)C-Q>l@oc=jL)Wy|S>|54eML5a!+ZT-8Fc_|z=)X;AxKw)# zW~Nf}{5gZWvD5v&vDZEPag5GsXHWh&kA79#cI@)Dr-|D(ZIx&{lzyUMAQ<;%(RF&A+lfyma4kg!MsXVw(!e#x?a7yS4WA#>B_R zPrn}y?Itkk(ODXNs=ua;w+xdt6R)4EI-xX-#=9ie-ZT_qz*)!&Ut@~ zxk_Z7&7jZ0&x*hQvBP!#BZrV?1+{+;-3g!TwC?~pUZAFuR#&;Rw9;dxe5HJjw;f{n z%l_>u@c)NS@5NW6r5#+yqHJxL^pz%Z0+VKND*U?d%)6;-Mkj%8s62m<%c?O}uKV}L zB6;oCOs(h2R~l25De1K3qDtOn?xH?dtx(0qujsa-l>L1Q`&{d$3tBIEH#nGuRZ>eU z>s;{UnC;%eY;0_6ixHKv-sCZB^zLMO9m8<6DqQ{N1LlfHspjKFm2@Y*yWj5#)Wi%d zr8I;R;NE2?E#Y>`;DIjbb6&@4%J8;R9`)z_4BJ_Zob%Onu_w$6tNeO*=U80%>V!>2+r2>6Lyj z^I0&1>jXNb`%X1)wZG@5$@Wb0m~5q-p_#We>2*>PKfJMG#`=_7zenfjNSH2PCnHEw zZ>Zt28STe`TqZU6x6^@#^G9Epj-h8l7xf$F8T^`xqfb1UWzKq4#{72rn$^cYwu;`{ zioqm}>;#uMaWB_z^z<6semq!>*y(FoU-#-NKC9;Q751Gg_o{#e8HY z7i0VobNzDAb|h3`mV4z6X$1MTXSa2PKuts?Z4`N7@W4vN z%5hEP`jm66@>8OOcg{O87;)D|aK(T9!<>2{<%LHA zHDEols$5F$bUJupw@W46bu`>?>;oHDy;D*Di(LO1hc$Tf@vnVqvcgXr+91pG9*>L2 z$?3`EGIcJtUhZ|NoGu!~564sQb16rP5!UK7NlZ#5!w_s-H@niM*QuxhM{mWAdR0BeA zGJ(;=)YMms8T~Ey?&mj_<4p+(a&BW*-Feo<%RLTc2#PYAu3%H+B~v+d^-+@K!lH7g zdN)`A&(V$7UJl14&0EIJ;a5u6`seTw{%|<_K=sCr8{VCz1K|QwV&}pIng|SXn1H{( zzc+26S_uEm;fCMB=ZU$wCUX2r8Rce!8@*wW*6@Ij{FR?r|L}m>d&Zfo$cxC?F8-&n z%++f0q+zAJsY|)Xz*?i%7<$2J%ha|jx}zvq-3;O_#P_b0jVnb-J6!9ZK~Yzr23E9) zQRrd&po|AeEoc1LG# zc=b#B&KBDu?_=9_)`D)G#?H9W6iLf3AxEpHE2y*GaBab*_j7lv6<7b=e2k`^`U0PlqyPE6MzFv2W z*Y)essV3+2@t;Y=OSZP->(V%g0c7Ojnj(i$@Tfli27=?3K+~Y%j~rNS{Tl-Q5JqD9 znMOe0^N=u7JeM4JjX)*GCobBgox66Sl{T(`zm1$WU%R*t zCUbzWaKL-?w0RVA9M#$3tzvi2$tx&y&bh=m71j*+&c*SEo;~K`(;6dV5`sUgF#Sdq zS>kx`>71`97{+-G$e}2OXRZ)%9EWdz_*2OOgR$e^a4VzE078z3twY%`@7x8weKGW& z+e5Pg-fMN{@#YYn)=>1}^83!_4M{NCHo;%U(A?icdFd6Gb(7LcJvw(cmrJd?ySvq( z|4IX7(Q-T|@!q|APegSn*NX;x9Qg37LyENds$wRCO3qK93lFY$6fHt{^gcgSEze`d z?$G~ZypaLO;w>b-WOq8Hb6l4(qI<@7c^c&)czHOO$UJSqRmLL?h6koxe{nPC$Fe@MEz`ZsorKpZ~gTAycKw-_@> zv#GD2--w14FhB_-mVg$?*n-w zvI)PO?>%KYC_h5aG|X*80do3H)vj*WIuW-In>a>#9CB|En1DAH+jH^KfFV{E(NmXB z=V_rZNNd5;TlOh!#zbd6GlMEhcGxX`9YN&D11?u^qQ&V+Zgw?8sQ0fYSxq{M!CJEBNPS?WJ z+E)!_667rjq4>MMUs9s9os<*YSY|sdEd0{7RY!L8(+;tE6wb=%GcHX$1M`8xriH?q z?}iq9D_4BihyZ>N>ga~(Lxx;E?)~GD&>=-P40qf(j=3gBoz4#vIAC`7<}Ms<9#DzM z!NZ5O^*NPZ2pf~YktG4+7&3-&3`=?;I?9YbX*eG1)>s1>znrlQmVDiNG#p&}3P}J0 zM`j+S!<6V9io8sjHpC^Q$(WsEh(gpixt4Q1O2B*iZS~?aqMyKl>$lI@0AL!kbWF?5 z72C02_-mOr*|o#ib`;&#`a69TZKlkb@(FA8wu_Bk6_T1~Ajr|cT-P2P_H{$HE`0sH zII^mH9DHYwR|71~o4mEO1(VVPF+T#OedO0RP4RI8YkvwUKbs>ksd95=j52p01xM8jJ^{Q_`fk z8cNzW*4Kugmi19C?Dy=w4hd_DU<2^YBnY#`P5}Wj$O(DyTrTcZz*v%Cl>+U$gdDSS z`9a#4Y$uVr-dPz>U+xuyNGX;NSV()VY?Fl|V379!pk2NiRxF0I3IL^*zA$9N==MC} ze#$1V=GG#-38=_|E`x&UVuK4_5(lq1|L(#M#ieFdWLMvy&{10M;wLN$5lBS85q@t5 zIRQ7jrUNc&c>RtV16<%FDnsxPKvPZxANHI7$g*)jwKFULdIu|{S=jaaW5CM%#k9pb zHx%!{?I4==g^kul*!C3Id$&9`dk%U2G{iZh0q{?oFCho_x?aa%EN)#5_BpVL{lq<} z$+X1ErChx0Oi2OAJ`OtNi4Mjs#eQvGWkjh9qy`ej8mOKyOa~{IT~305dg|D)gM(pp>(Lvh;B4!hX@~ zkq>tq2)z}f>-S?XayE&SVZaF4pAQ{@m3VL$xji7MkXtbjF(j~aD3DVY;(aF5C9qtO zZADPFMgLr^hV@QIi5_7J7Z;aP;TMxq+2A+Y0f{H_Tt{o`zc8aLkAEMsI&t^X$7*O{rXA z3wZz;E8HWZJX*pskk$3N_+>QbUd!!|sFers=708nSL#NEh!LzwRI7=y6_g!_%ra^J z*)49?nkqyd7ZQq(6gF!9*&Wh&zGA=Wnm5Mc;#KH39#YyK@F?&1&%yPva*}lsVof0j zB@Zd_!kdm&drYd@rFAXWc}Y9cPD!a|G@|GdnUH7pID1)9TogaZ@#PZ&mYA0zjfz)R z^{!bU1BPhEmNK98Hg1wR2sn-l*E~dTEo4?0gs$p*>y7&HgO}tqReHY~tlqGl5PdgZ;1kh? zpN6s6^M1>I_)bCCN9_UY+y~fC#J9iVG2)uBo6yS7yq5gLHKajCKYGM^EzOtYrylHj z1ZA7eb{zY~vUxAPkTO2CM+qDl!6z)YOxuGukk(pV_$;Jh#t`=Xg^nJ!zbmZxE$=&)Xlhr0x;t28+YgRiI^d{1INz1)iEY!+)q@`V@C1XbhN&%7AFxxQq@ppE>wH*D(;^&%0Bh#IS{ zu8J-&{l$~WdHvWTja&u?Ib-cH0gLFIY;So&o=pG}u zFY)J+O^%`SmU-K7879)S6PYc6*x|Q69)Og>iU^oPmo`pbyzoW6$-;HX-~o23;9sjP zSAIyV#8bN_+b#3rgLs@HW9gfl_pz2*{JDD8n#6BrT_h8aE+83ueIxGE&cx^k5w6EGJF7biwy?sjI`>=f_>%`q{Nm)&7 zn6SEIKhd3Dq~8F@f`u~8-Q#taws~PbK|K6-cgrcx)Bo*g9)&;C1;nQJ;RQr~!wYDR zxjg&fFBz805RH2APAo*eY2kZMr`qxM1%BS%@Ynjbj(P$P>Jo)G&9|PrctU5=1vs>G z1F_^HZf_;@)v}qeVXP(}Pg>)vfvH8gIby9!+$+rU7nm(QT@$GZ@mF+}q^q$6zeZ*1 z^wH{AsG--Owu)k|=Q1ynQ14-lTFIoAEr#bFcBMgoD#EQ%P6$y_0j~fCI zE#7rF;vD`s(6t||UUl`E!PG)irB*1Pn$p1KZ$5r*-g$oFpNnjWWqeZuScU%Zi{=tE z8O(E%mc_Z45&W&$hd#1IE`dIU(17EazS1qzD$G~a=gkOW#*Ke0#JW=`7U#cK+l~n9*tzxn2_0fQ8*D%T?>& zzgwUhHP-!`X17Cbd0^ix6p1yc%k2ksU@i0jB}O9E9`7H8N`M)G8i)MxO@N^DA%Q)q z09bj3)7?W#hIT=!*Ys_74&T)VeJ)JTA7EpsH5B>z@quyZ+6iXk91S;P@#_<) z<>CgELCzop71a?HOUc4!WoN@{n{kd%lbbg}0pSL%!d<0vE0s+8T0V}N5A8VG$Fwnb z)UbT8_mUBF4*IFv&Oyxo_sJbN8IAn%4CCmTNxgPq3g%@tpxU0VsB4J8FnO#&3pxNL zB_*z?d5dKXVZXJvhXcsFS#$$B5|?oFC4^IXL}Kw(oU$V=8rTLcvqchxN&}iA4wbgh z&UGVACTF9L!e32e0OqD7E7WO6oq38Sz{~e|EYvHGFT~8_b8>Q^Q%|dVL!N|kAJ$H0 zeKRH?U69rlVB`DbuSHU5#N3lvEa@y4g}P{5y@=PXUZNY?U2f2UP0i1D`#Pfxz3p+g z1nTvivc*~*(VHG^dKyl7FTTDC;)_lSl|O|V*`yKlLQ_uauGVo@`KP8Sq! zEmFB3|K`twvN4xw04uES4iGOi{KR^+;Tjp@{$`l^wm=&D~u#FZ@_ zNZ(g;TV$4#@GMtxe6Xq~kED1*K*OPM2d?8*l8-?n{#ba$(Seiw{WX*Aloi!0^HgQ= z{jAdArQd#$i@Owrp=PxD9DFNMq9<2gP=U4@q1%}2ORHr!Z=$cfG1oPWsr-EDM)VAX zF3d|2R+2lBAlVdKpzGna%yr3U^-ficXF^E2;r*w%%5pSJ!}6&i4V~_(O)BXu(0L+( z$0fGlhGB4l)#}>;7mlEc8~NoISM{zeLmc#BL5*5lVF!Fjb6$B-9BJP2GkHqtsZg|y zZ}@yt%Je@MwRo^zD(_muG0y4BJRiSyXRSqyr~Aj)aB{cVaa!6*U*zTDywyJW1845Y}|8LB!yLYHMu;(QoV7n~=uB=kC zS%$qtzDJpMA+cMOmS!K}^D|&m!SO)`pfx)l%6>(cn0fvd#{+nScX~=$f9z9d4Fjg zAHIzCg&LG#Nph@o{Hfq_BfK`&oD=tG+)IG2mPeOr@Ep>(db)!xpb#ol3?{k`N~@be z$1@FOeFXO=<%)p~k3>6U5PmtQZnMXnW9C=9-_mo3$yt~B?4d!d-Qp9)*DiIGlq_i`48YW+mr*d2|Al=J(_CzPc^09ow z+m;X=lD$J~Khh2k~#?8SJNy+%by$7ZF zCl5Llb^>~ie#2+H4!0RrwtnDRPZah@vn^;14q zLxxByr^2$@ibzvBw&YloV|Sb+V}jFI+2Qfc>PA0WR4nb)obBUOs%sCfT!L6;wW>a_ zl-fD67h8Fzlupyb%ESu*9`+vjEUA8#=xI#0tU{y|+?*ftYef41w$xcEW2Ji9mte?z zm(^{?5B0z|AA>R4si+dSM2y`Y7MEF2_EyGAh@aLqWT@-BJiYfzPCnuC>a%ALu~Q-A zbiIg;RsIcyr?vFM@JRLz`|*B5buL}g$D_EhL)C2$u#^F;rc`ey81uW|l`toiP!wp+ zi8hj6RjHf^_0Y39-MhURe7j8}7!?azL^&%RRZbTvH&9^su}37@QT zSS=10MO*D2=}uh#*Yzd$Q*QXHUX2sx)ab2$-{)n6Z+nI`#-s1KFLUi;s>rl<*^<#x z_#40X`O|0l?`P@hCd*o0>5Vg&VzsR)>=AjVNK4t&9T>-2mV>?!Z*Fhd zGgKXfqf{9z{Sbt7aO+gZpHVx*Umw~j<(BWy3o&7DThd~auJd6$=EJs))#`)@I)G#7 ztfwe+*v+HurYck|*Lfk4Dn1KWu#A#PSXLL@dsfU~Va0-bmh}QpXBq zBH7)ah^V*_jw+%kj zE3B9)l6kO-n9wjNF^F4Co|xjRxYy9NPgC^lkjhZ?zK2*%SIAm1CGEdOr$L0iKyJ4@ zb4_AyLi5tun|nNWs^s4`gMM2xDOwu564F$ou{kZNY)F9_*FSgnZ0kCE#xO^)0sG^f zp4ZM8g|0sdG_Fayx}_?Z5*xNTo_k*mZ*QjFnPA?7?hZY z+q+)N7p6%*fq0P7q;{%(-m+!4TM(}h*kjsCHOgP4kvA^=Q3rK%GFILMN&SfT$d~SY zh}AJ93j6rX{4uWjGlzVb(|UbrG71a4jj)k;iPI*#lPtp@m2z8s+eo6@+SV}g!yNk@ znd_;7sojjKq9->&^6osXPT>OwwxVXq8a zvB8iC!T-2w9I>rGF3ao&^F5|OB;o^jkV&wOug<}knW;1loztC``OyWiigvGjFe<#P z+pv~0bu-Mrq12&A%oy)T%DLtUN$pnjD?ZGdgBuQN5G-|rb;uryk*yTv!Z#n3S#%`Z z*f8oUEGK;cRoe^u*;|F3X&O&_6g5txMUZZ|%!T1T%8CPLOkNcO5KQ8eo_w4B!v60o zi2t&21*qhu{NWPi>PolTEV;9rA>X!1sVZSCo}-AaqIF_&>CfnYP9dS*@b?kykJqcW z1{~e6;*OmSHyV}?QPT8?61M_Tv`EoJnIVWh;8ok2`9Y|#LIA!sDoR2h!>T=_#i_Sb z_Q$J+=Dv2vTs6+W@5dKtt-iJOa;?s=Y7ie*-yNHaC9I9sNOu}A_x%Bl1}zIn z;d`g*B_Co{0W;_mqdn8AtOGjSl-$CP%XJ1@V;_DNeNX;%}YH z?&y1#rj+(va84P^0R-)MK`BEftJ-Q0zCdsF?NyC$lG`@{2YS0|Wcolr3QJce*kRX6 z<9?M)b?kJ9HT9$zX((mHn-YI(%5D7kG-MbN8O(?>+-8`Bsg#ld>ZOY0>HZdF62 z(*H4+G#`|K1FskP=x@hm)IvArWN5GaXRElan^o*tX*lu>q~U1eaO7|sJss}E+;=IZ zl3FX>qOyl8Ob3<;&MqZm&PvfUS10vaLn*6_XJT5U!^_zUlEXDmaQ5b!GCZLnCH*3_ zv{S~b&jg|>)q;1}2#qU7^({Fry6gGhb5CZhA5nX@WXNpV^pXxj)p>Kw z=xXXCC6ZcNHw7%WwT3NGoLtG#_PlFkp23*ciVgikc7=xNVApLSDSYGDc`?<%BWk1{ zujF_JPrwx|SKq#p=-?-Ez0R}ww?uz``{!nRpMToR0Vk7-O_RFKlEL!z+~zAqvVEEA z(OJj^Kl!vNXl)7j#>z)m)ZL2I0pf%GC)wOkQhyB|3&<;-1CuO>P*BSGv8_qBWvW#ZiE72A~!=Bb5RS$3#pJX=O<9A__U=}b4zceXGp%xc`vrhW*!V7 zc-~0G|6GA`m1IS=rf~F^oC=q#>{(hi<~^xgrn9&%0{G;)A}x*9&Gu-o3Z{o7iBkW` z)PGi7;!OBkypnQc?I1%YT((b$cA@EzFx_KC z8ZfMP;jj1t%~ieY1*-IFb`^V6lLeei`sciQ`8j-Hw~l-wdTz%}wzCE3vy$MIME&z_ zULsJdu-2b*>h0p1lE;dIJwh2=7?VhZ1|#tm?mx9!qMRL`8RRwIc8r#`8;`lXf%mi@C0=4?#l@61K_QsL2W}<# z!YAb4^GWKfn^YdLf@$ElzHBJD^@#8=2OX4Tw4nH$oVTns4BPZ_`^FJ1|8<0}(j=GMp$RgS4Dk*824+_e1T_asJ)oum9FxOSefb!B( z*;mz!JXZ(B(wX+s`Ig8-$HE2TjCsWO)kMEjn5?xC%{LIBYqEDb4;Dvho%wIZr`R() zW<*>*EbA1Bo@#hMNM<|k6l$#wivKp3<3@X>oe*E2kPv(K_dJV_KMSqvX%$={4>xQ= z@1%Y$L~xelXf%|}Cm9=>bGMcS8{7{W|01N?FB5yuK=twNw2M*5|Gk{hZ_;30|M3$YUVK4m?c_1J@tS?ATaV1_!-rH)w$~Wj!fTI4 zhHk-D_d=vDXnEBtDYa!WM^v=&Te6m^%$5at?gXYV`xyhR%rq~x7yF$6HDt2P{DzX9 zYf)CuQej>oRw>--y_Ut3YED^gn)0Sd@%`sGFkJz;RAXZSU`FF$)m-j<_cb-}4Xwa*>giAO$Cb>>{uj6+WDgwpoAVYiT_dW6z0{Cg)Q@6c;xQKSlG#E z&l(Xc>Rzpgo89vVrr-z*(WMx4qlbrtlFX;-5N_k!;mCMfko7S!`xCKb@*x&eAiNRl zYX>%f4Y+X9)#w>(Ml*r%0Q+d3?d6{vo_Er119WAyS%yGTGMjuHWN0$34K)|WlGQUv zIS*|X`+u%x*%s2UEZ?MBHx)c@`Ff~YB}#Ye<`ZHY5$KfK#qPha$DMS|p)lfH@}>8! zwV?fK6eVry?UvjF_7{NAB({uc z|0G_$uC(O+*`j_=)3Jt_&Y$Tak2*iD(roW&mPno*@pnjZT0fZ8c<)&F$7A>7!go5` zyd4U?cP#F{8oT_dgVTNWT_2C}vZ)1!USyY%EIecM+U?~9Jx%tKNy4QpeS-t;gMD4K z7SBRI9t$Tizg*SSUkvKfkIv?+DkldEe14+v?tFfEUh568m-Vb=4|ki7rkAkzK^?0W z>(tl2w_DYOgJ&-Wo6lXNLvL%Wct}ITx~ubCNoiPn=F}W<`_PKNg)q>dPSYSZ)&*&B zHRy$IvWO`;5HjQgd1DK@ipHZshe=2!R27PweLt+9Zh+JuT;5E?N`M;awSGF14jU1u zFdYyhTe;TI4N^Izk+uPXss_nvB$Ur!UK;C|O1`f#thRV|G2`6V%PTIc?Q%v=${xEy zEv8jGDtY<2d*3-bN-Q0gJ=BXkoA~wyo0@#^Ew=ad=JtQct=<~&X=~MQSkBvvZ`%o3 zs=4I)$6tHevWo_y5lx1K)ctol&3v7JU-BA#d4E^!(nPBpk~Kqf-=6`@ngR&Hs?;sT z%9pr4V3PP^g7s|HFNr$Pd>H+oY%pSM*b zD2M!(^I?2px!Crm-;9HK9a1D;2NsH@Z5(7ESxgd^Zik3~!yw00ot;AB(5r?w!jXy? z3BF`X=EC50s56y8&FI#C)o_%gB?<*aQXbrtpB+)x8Gj^f@@egEIc8cN>3YZasOD`B z-z27?_V2KVNU$!;G%~rSw++_;%gEyCc-DcCi-jo&#h}BkU(<^GVYndArXd=%l`}!r zA3uIP41|Q-#Ots;SYXcLetx1NiN)A}o;Dl=v-npvoFe8Geo4cakUx!@Xc)mp!syl~ z@td2c3n%R2Y<#20ebR`L=L*>4#=fl}YKK^v_~Qd&jqvv5Q)ZAl4PJq7()_!Y|Lp8iC97Kpun+@BNk{5s%| z!H=(Wkir(pMWaD#N-5&pxf6U34K09nbl_(NrwC{e6X?^nZj^RITcE7W2~^-a=-RVj61vnZcc9v)@%SJ_9YJhRBblLZGC;TcuUlJK9QZ#2((vhkik(l|7@~6=x zj0`n0P@c^SL{{}M4TD5q&y*xo(h;L4G)FK=O5K#@;c@2DHby~IN4-x&?eE)AZY^P^3^}VavYU2A(R^+SZU5(3>Gi@#g?DfT% zSbNDU`CF0w)a%?N$sGf(>+{rG#~zC+9Phs$6aPiu-B6$AQ}jv}x|D6wQFFv3zWS&9 z5Y{;HLe`5}MsJS+b-4s|%&Gqy;*E<3?+1dwCZtV9vQZw?MEbv^-DFH0=^z5DM}*vC z(UKELo4wwf3&KCz0+xBF@$7KOZa4wbV#09M?k8I@cJCQ>f`ZW-EtQU>dXu+&VRVLF zcWVx&Ck8C=0_e%iz`UH@dtaD3M*%^cT}cOhdm~7NpSE7g#QUs+Gq46r{KgdqYhctQ zHVBJ9tH~Pa$;>XS%`(nM4BV4tIj5ciN60|kFkD3v5c96lk|`m;5g;mnm*~Cl*gW>N zPj@B`q_d3+)z}0y8*zgWJ3H&V;}sibRPVf`9;>Q^TeR*7rbPa+qOo5oZYRM*6%%a` zmvAk>(;Wn^qwwq|%sDh2Faa{*-5Q6Vfglu5@BH*|htSe{5XQ?c)=M^x0Q=ng^Q?<+ zZ?E7I2;n%TMWP=e6!z*`mPQn`eN!gs5=&d(VC-O6nDlpcjzKE* zrW^R5h>BhtPryxDZo(8i_j&xW$Q17KhSFd6XcxG`fzfF=2*?!kBqhoSs%I!spzV0Z z;j@oa6;LfHEa{bSx8i8>7 zbZ|$ehGZEI`u+$P2Byz#F(w#k zo&M%ZL29By9(Z{uQY}8&|8pCk@G@%;atW{JOn=>}$~$_Jy~Z5uMJ* z)kgiv=%RRN$2_OY#I9&Gu+I^NC$!?D9|+6@@(AJ+Fj=;{-Qm2~l*w!-a`pXPCWCE$ z?~a+7Y;mW26%hHIk$+(NjGThAz#Q~5Dsa2f$k#)vGp>f^oBt&pO1V`2<$9^~UacNj zEx{}e+qm(YA=kXzM-%%Q7N1snFArd)Rm*U}!-bbxBo}gzV+12uoir&E9+|yC?UT^j zva9fkUF@1Ko#pPIIO@;ax(L@KJ@%yD7as5|(sSx^mFUy0>m}B_&`MFKXJEK=Lp1{?uQ8kZA zsf~uXH~QC?Ek8`QCXLY%60)=3xVHXz$+y#gbN%d-TtjlOc954vbWz(!{Ax*Jl+of} z9KL%8_6z&Quahs2m&(HV_ojbKuu3frEH1jR9=20(Li<#z;tO!4Z&x(Ug zrEzv@XWhz!lSr8>owCIZoiVCPTl%eLxh}9`E{!8-@b)#0JU6eryH|b7an62%;RO7d zwVDhoN>8W3+ht#`XI3Wq#NUAw_x!?_r3%5 zIe|y4?FDxwe@52$fO3}lXnnX>C7GK+y%cBIKF^2MURcf8N653Lma(qmg^R46lpn0> z6lfRN5@5qBpX@e;x2w4}hMjc2aW&ND$K_h++(IKYI+@Subv}3Oy#F=QNQ&)L5mjr6 zkwznjQL4Bw(ImJfqd5rXP5CZLFJHOc9Y`*cT3W^I{e6Aub*{^g6<>P(#QXIqeW|^& zdVjyGp8CkfMeav~9ow(fE;CkZGS-PVvr;;}D>35EsCe#(fq|E#RLtdFm!Ot0+g^dgKvnZGObv{T;Zkp;8g~EAcizKgYkI6Dde-QhR9abG#sbnA*}Zkm5biqCIW)iU;X^J&p`5jm_cFOp)b{=z zfRp*MglI-utD7!gWclYciKnhId+P?^yBQE(raX4-`USUVh(qO(@h_lxdwJFUwO_-Z zc_3v{9^a`9gI#4ppM#1t z0p{w=9l&GWfF_c4F17sf@W13-7JJ#kLmL9Ib8Da5JtCgDbV)K+Ef$L^vqk@`xVi0& z@f#OjVLzFY4;HIY<5pFIUL1 z2cvz|HUNXs8SO6O6QA{0ocm@fXd(FF{QHvkcl)S6XJ+C8qMpav_+HJI+ITRDuB;jA zSfMEG?8*vPLjtoY{7HP{JYK$2O8FQWZC41%V!7Gq}%SL4v{mf74IT*VTRe7@=0Nm8I+d;8b_0HMukK(N=?a7~W(q z!Kk(sjgAn3G@5PaQfpj+f~SmGd$oKY6k1UkmYX4?%dx#=6t+{ zH&efRYIaCgw8QLEGHGPto`KmN7y4UzI{t^ZiN5zRz2RIP0E5?2vA`q3kff~J{ zbZTLOu4ngUe)!RZWFW7pCMja@3U!5M-s$f*<#8Nj;wg;*?*=6wzq8zG|Cd2G|Lc^$ zs=Mpsta4@gwvw`>gE8+cJ9i3pDu(r~Is#+X`7h8}9Rg-ItexL0D-U0_?VSlQ)RET+ z6T0d&|I4eJn)6r=8n8P(OH?0PzmqtrUL@RTFd_zjZqZ1*3i&GyCTlP%6N=OhwnIt} z@A#tZ<@3wa%*T&~tZ?8*d-DY{u8u7s|ib?Xh|>kvJUam(-hnx61_82{ew-8FH_FA`W`E zL}gRs`JkK>fU_Mfw~g=qY5&*wfQ1qGa|28O9#VR;?Dpdk@T&qWJygsj(Z=@}t?P0o zSgw3<;&C7liY-<;$M~5PtflFkWN6$1qX8DHViI!_N_FpKtedw}Bs;653_B{+M$3Sv}dCtNO0dJwWLZ)i0q@TLaQ5%S*Zr18? zEB$qij-(&^o<2L_w%Q`ym5}rClG;ba3FZbi2ojb>?Hf+TYG(t)BtmeYuf6|jlLauULA;4zWn;kQ#6k-Ekw#s z=vrmOUtFx6K&*8!LC4`QVFQuVoog3r#fI2T%cGisY^*T;NiMhMhm#jidtpObK6gE_ zs5jI46OmA{T-QC3KA4i5blSX_kua%T2oGzZZ}sxqv!?#VCvc)RUM>|m7Q*HZzepfG zGt(s;srm5r%e6qBUPA%!&+9AN(nfM6kOw}oO2S{&d-u)p9sYWbNIOPV@-)08|Fi1_ z*STN=lT)9xa4m-9q1&641cy9uS6U;1r0?u*M4x_PRGKzXwC8N}@!l3fX2 zeIE4Zye@f5UhZIUcaT}d#jiVE|MQoC7FYIdm^Wt7&%nFaXg-Pm^1giC$=q&f-BNufrd?72Ck*H;jq zs`EMuJQZwrUA{!!W32k$I=SR{wwI%@2mur*O~aD4B5X!$Au-oRiWuh!n3umE@R)e@ z?)vSITcZ@boK-{nVFVPmY>*o1lDfA>4yzM$SrV3cSJL>-G5QsY(?ynHH`$O4d@#3?{mffJ*o0Ry|!g~U%+L)e*yz%Ps<}A!OrVpS!Vq|qe8U9 z&|*1AUs3Wob#nc&LG=8C6q_~}(jhsSoyn<|%8HL4d9YW|b`T@QqS!GpCU0K)uzxkS zJuch#G|NQ#T{X60v?w|qasCxPG-_y#D!oQdR}gVs!ik9&*00<+QF=N?vGAffHS1-6 z-jIe@92Bl8y15|O{j|M(&Vw~)0&e_D#HjiGn1ycB*MB{=LCk)1K3}P4YGmc-6iW?# zV%+Sl$G^T#t|DHOyTTc8(r`Q#YD$dV?+rbU*ig{Iv`^}}itvEw%ZBBMc1qUHf2jjb zu5@FOOKT&SR&hA##!}27XCIn#_6SczfnY<(YEo^XHwnrbs82IA9_eBxPO$^ww2_4a zI$9E-m%x%gwaNKqo+d#OE@7v(N}oNO2xHSctW?=7f9fPa?^UR&(pD4;-ZMfQ;V_nu zpCqTB#b_Twi5HV?X;Rw{%7cPSN*8m$SlF;@YV4;>j4&bbOeOSKN1b~95++>C0r8nG z?|l5uYqh?DyD(v?e;Vc?4C;8wUkzYt%z%WEK_^GLK(Xc3Q@;I5v`fLqjPpIGhuPB0 zehjQzQac&+597zVC|rZLL3gwbXY#L=?<$CxQ!lz2{5q5S0!guQZsIzPUWxUjUL@sw zoa|y;w5_<)5amJals^0PB1xgB`()G9T&AS+@ceMf%y{VZrcEE*HkSEhc!j*frhVyw zJp9ID7E+dBQ1XRAwfN(Y?i!kiOoc8Y6YNg*JFtbk(#~`n6tsMNZ+B(*GX6*B+9zUV zeAq5|na4%_PD!A-!DtJxDwu%X85tKQhXObEafVbXGTgI1in8%;i&% zZP!|k3rYJN8eX0(@_+TJny{SB0kx#&Vwsi;w1d8kPX73@y<6ACW$wW=he_kogy!IU z#8>+?(`)Sv&@u1EOJ!Gt+IuuD**%Y7F2_>{0Pw{RLXcKT2jz^AR)lB+40`Y=g-e*` zS!q`I)Tlm*XWt8ZABleLE4Fm`4nqiN`hM?Oe!HVE#Tj8f07>78(lbSaoN|`&-oOwHHm?@6gHMzmBJtTq|ai zhYlasTh%+s-YRGGhrll^A4MA@S?pDNfOXn~-)HL_H?~CRn&Iu2xuW!!fY5OM7{jTIb=~5lI*9e zDm!F$;u<5p&iB6skj`=}?JYyl(z$=h(|+Uu!+@p^?Vxm<0h8m;>$T?p?d;U{=biq9a?0-2oZ|~^z5-u?Soy- z);=Amc#5`3t6{F;n6^t?fNN4nNZIo7EXZXd?Kc1V|HBa3;#rtqS&Ja7MN9+3BcO!tdm0)cP1lwbM7F-#0Z`E15k6XR(?$wE3kb_AY zGVGml1`%#=$k6WaxCU%V%K@lkw{N^~)VMaDq@CaVyyfp{vJO)h-v8IrWVjXJP6aK| zMlxul51#(z!~^AabpNWjbXQpXQAyZABa#nNPDm7*K>>Au9uxm1%lGyX#O}o1zdv!| z*}aPzm&%4ov3IMFtA;wghZ$|jCT-_33FCJeZ{4E)OG){qaqG)R$SV5?Ou8J}+T}i$ zcBD16b8Yk{H|+f4BU(29iM26WQ6+3Vvj~$;CxLamlze7M?6NsyF(MyE_+w%2e>j?X z8SQ8id;8ON*eV4?K4^Qqy?9WuLwL(FT%I3(to!=g7XOtqz2aRzPqByDG{kJo_!yU$ zv`D5;PH90W3-(HwO!(KY0Y_Q)1a{`V)S@BjGEl~%>PFV5a+?qbV?&v2hwU^DyY|91 z1!F+HH?Eq)g(=CRPdVE~#MTi4+U|;|OvF#r=Y}%2ChIQJFN5YYP zal8MxtVB*S1{9oa78mOQO&JSrFn#`9-~K6A*ct=4DMWArX)OuUgo|&6s?mNZezR@~ zb>W6)QD}NFiHfEfbvpJS<8lN3Y&6m`RFed|#L-lhfl|+@Wd84XGZoSZZ0mFt?bT%s z);x7UkNJ@c{}i_Bu*~1_4wUsx6_fyV-J928*mbd8i|^uMbL7fGlGdeK5C=Ux((D+_ z5_WOZGL6$?=@05Go?J1nE~qJe(9WIXEDoCjoRzLV_?XApZfPeb8qMDRKQL_yBAOol zM6}Hs47pW=Ap(jEN4rh3LLA#QQ>SpC=B#0_E1nrQ*zW^vhLs1?e*!h?wn16FGMcO{ zNnn?UOC(x%0^L}d9Mv=eQ*aG6LJ6^GvbPqEJ^CRI?z`j}rT=Kus_SR8V zt=${wLQydg0}u;P0l@$ymD(sucS@slOZNr?P*9MP6i~V)6_5~AO1c{aq`UjhwKtyg zec$-qasRq&jB{|;iZ|zc<};spdCMSR?uu)^gyqWV<%(=&OjNGbamV2^0ojW<)00mr zrhO|hA$0U$gO&~UBSBXqB>4t=QYO2|E~jX28*OZCSbje#qyve-n!CAA2Fnif&OkTg z2mz5!GgZLB2u5=n(TuyrrzFl=_k4jRGo;954Wz)pOIup^)NYTmEBD?y9QAE_T!iD{ z=~GB#%~|S(Kj{$GEZ8lEsVr1fUu&8TiGK<79K7z%sE{DBWbXk$0dY%}iPn5x;YjRr zpIYvj0zM`edlAP32{EC#x=Bl`zow}~=E?(2E?E)3^xW%TRuf`oRAz!`)X%DM=lNeQ z$D9F1+*xtm>3#wVAWEQHQ!s8BK0$6?sEYoFx)k}-f5OpeBq(KgZz=8yRV9_~qx72Q z(02g~VLZxbcWl1eWM0#(wCQ9qUU>DDjzr!Ob$%a9NY=dRyi;RkxkIf#(q)}NEQwH@ z#al-6I9{XyYY?g2DeP9(@7%-8JY)*)X#?K( zWL5zeE6bB=|MI)+_}=9Nfq%aXq{8KDO6*quNEQF~rJT=>^C1u#na3F!%;(UpA7-Dt zq_h0!i(6oRupQcc1HDpea7=Kmk#Vp>hBbgoYX33atTJD&S!=`t7a?$K9D6+%BLV#F zoHK&mp^YJ_b1^9t;`#@#YF8t1f2;tOMVOBSJ*DC9W#4iGuF=!jF>wfc_(g2Po_T%xm1ple# zfSw|{v-H4)O*}1VgLh1nHZG&DslvG8SnRncufJ>g7su}SR~wVX zTqx9g_H%`-intz<%$yCo^NwTM#wjDZ$eIcd9kOh=Qc{Wa?F|AGOp%D?oHseG=f!ua z8oUgJQB!k6K@PX~C&e0ftd9QKA13i1F;9LG)Ptt$0M#y3zU7vA2?*RBjv(frJYT=6 z&@XpYgH~i`JBf6+pLtLq`~}sU7QE|Qgy^u<@nnPBR6ne+-k;BKQGfJk8dci0)=816LF8*-1B`+kc-u9W8?T2y_khb)aS;_hzej z0|gSIg|LmEhB$Lu1%T9e3`mVZ%>l-dNhMJS$0*gBKWS^?z2KRUyy@xb+K4+=boPQ* zn7i09f~g_?b5}%mt}|5(70&2 zD_zjf5n>7bnV$SmPIC?5Yd&e!wL))L*xx(bX{9zMz>1s*-@b?z5%?lEuU@n^>9c5G z#y#-Z)tU3U_k)q^7C^pNR-kzx`}I@y#_ESUY^PS;xRlL@z;v1*uFacX6CW4D&#D@h z)tCoKpzB5^_UZhNb&I-T4CbPUSE`7RPyI6nP=FZrsm@!MzlCuPi*r!MhL0QTv%D2O zDCgQ6R!2G>F}5s#sJMZ90D9V)_T9Z*jvvM!1izQX5HdKeSu8gvUD%YitbE5%*U2}Y z&bqRqko0xvsZRY2X@BRX&SaqLmrRI_yzHkbde6Yvcd0W^(&-OvO@s@}tBocH{Fy)bBG3sT$2UOV@x9oFD90d;t#QT2)D2OJB^vA~BP^!!es!`pH zVrmc)oZsWWQK`@U0HnTv^; z@w$qP$d9@{f@gP=P{85aZ96H#ZSuRqO35F}KJCfh!~!Xziour{;~XulOU=L)P~9m- zqmPlXGdU=`ojB@VBbWc=$DH<|_PQ8 z*+2&JP^;c>(xoU$Y|n3QO!TRP9oO(X()tL$8wbusLj=>BIPbIOVycA0Q}-u%kYBme zM*mZfS)`w6ROYqil-%NrXn%MFimKeiwU(qH=d3F7>YH2Vdp?`4F=MepQSSqEjpehi$d(B8jvh8uS&7lhMZ_BdmV?QeEp#a@?2|mbLZN_vd-t|Kt{gY|Raw zaT!?~GrH0SsXjZ_IS5Qmn>?F$d-r~J9|XEtmB0Jbf_=d zWDw?=naJ|S#O!oT=w@s*`!VThq^D2uOg;Q}c$TYtoiTCjpc-lk z_PLA73Fv zWxlY@w}>mQ%~${a@E;?OB17aTrn)zW96r=rn=i4FtI`xf1n~3ib%l;Q6~Iz@zZ1G| zTw{1aWh`O4HXmRTOkfJ~BI|Xi56`R^K!KI#Ta!)#fKBw$Rwbm@M%6sk#WD~a!y({c zw**|o-f*NF4_h*6w(CXQa_k&Y5Dw40k&p`jz_R&D{`hmpOVgm@^pTN zVsoAEd;jZAd4m-O{q38iKN9(#g2V$DIk-S7Z~;s)K?N-hoC=m)qTk`*(YFd5hxopinI|W>7&&IuaOw8?#!Mi7-F! zugS0~4^~kAI6V%FqbV*3i!f_I7%;HV5R$|~fsg)LO>;r%RA~clbwh@3!S}WNmZY|< z!ynMP1G-st95Yk<>zKj*eWsOmeCQQ3!@keOSWakH4Sbi%SGJBjfz>f8^Oa-m2O&9C z{387NhmI#owjR)W2e@F3NsM*}(kvDeXU@_i9$YwrDn0oHUua+G3{4kpb*IRp>@ESl4f`rUZJ zFV4Xb8*X@3oc2M1Y^-pWQ{=B7>#L8>D2>-?_1@VR=!b9fV;tutm#!`cZ}gS&`#)VF z;*Nx5q3ry*A*+0gO6nN@SbrG{XQcn*$0s6E!U_7A~!chVmM8N}6Bl`h3$?-pst9@yOw;=<+>2 z716N0kL@&iizoE4;uq?5t-b(=$zo@=tvMCmifXjB`(k>=3>&mishD%T2cikFe8!^} zmMWPbk|?n?bzu4Ya$5BD=ViXHoxd#_p0;19s6H(zJR7Pn*|CF!p)0D}rP}x0oSEcb)T?f% z5&op}db9)%n?@!c!qOT?bRkT_Z?GJCz7{6Uoh$7L!XDV4_*{ZI;%If^-Cis~#nCt2BpC{33aUMnYiD(8`E&*nQ_4lwE0b#TY{?rDy;dEBzdo#f81AcfK(4$V+ zey!hoU!uUje7yH5(cY){mm!ux5C8?cM9UKY^$^SVXGyX5*9i8YT|_)z6cz&5xI|>^ zd=Qi5JrzO7@$`=fGGraOFcwK4Cy7c+maT&hSD5sIu_ znhHq}B*XSZOlO-$R>iGr#FIT2@R=6&t0QIbzwp*`u}DpEbe?Qnh1+(OC)9g!)}}%d z*7Dal<^kg7F;>@bx6H~WPPlhT8x;IlLvAk0Z^%{c>L~WQ0IO&!N=T5WU)0}6gyLxF z7(9ntd^T!6m>gw`+M5pAU2UuTk%@6pKTK^?kDsaMSJ(0y4byOaK}gYWKrJxlyP%Z6 z2tdiXc0P116>l(6X;0~2ad%$!_w?s!0eik>k+Dcuty@!Fjc4W#;O;(7RMS(DLzr8a zHVsF)P_151jd^o4gvYxUHkff*YErsFXT^rGq`YIvMqCUc9zYX~4IcR{(6`gWj$y1_ zjkni}VRmth(MNE3V$65<0&_l-0oAQPG2*ZB{Ft_q_~j>Xd$`Daq|D}7DdJN$6qBoR zpg2;mKOOO$a{U2%YD0mD)>|#lM$6OI8%dAzeQ9Jx3{=pW&Oc->e}q5e_CFE0H+k^~ zk+=Wtub8w+4+_amqG|sh8nf}gguzEw3nRTo`Pznja9LWuzT+%9f8P?O+3Kyjed`h=pQJ(kIMl^8r~fY0M=8+ z4NB1jgfN=+?+^EncbK4dLBQI66naO`J#eSZoeEQBd$!@;eglzWC)A55JqWXkFL?iZ zf_)7i@f*meHkeU6UMpw$Q*aW*@U7^R1*{>vHyD+7XMIS=#r-Z<5jfoLuhA8exd=x7 z-i_pW9O1ks!u5g@PsNm$1v>EA#eZl`bso04|75-RjIx7OhZ;npqYlA+O=ApfJ(q&6 zSnkLK)8?Cqqa!Q=!m~&2QUs%P;D+lvX<)W$?b`;M^=FYUAd-hes^}%6BA1pW>aYa3 zK1Mv)+N7q-xikcj5$kUU&gg)zsojOvo}Nz!nD+0L&gK9>a=%Z5$=2RDb{KhM1(_WQkfj8Y$ZMap(IgyH>=#vrLvx%) z-wGVBlEN+oJgT6w>#>0F1}a3&S+Ff(?kERRR>3+OOXFxt6As=4G_%Lx7YcvwC*fg+ z=$XUdQOyvPQeTUb*nNc1TN5F_kr+u}xi$!rU?O&_9VL3d5@$viYEm{2L<3q7Ezt|t z2IX_BECAWsFQO#)KkBoNN?1^i`x75-Rt@=7A!z9phk>VuIL3yKg0L9)s#Q!Y3fb zE&PrtBl0jyTgC|7779gy8q0rYDxo1An+nK;>96wy8F`Qj=R;-7a02QOegL@JnB&~) z-;AYVko-m!k;A7(nRXYLtl-Y|&XvB!6&msa%zXisUx)NJ^MwpRer;CsL317AE01HC z(2F5(Ek8(O!k`k6xW2p5qHfoOBsoZBxdo|2Xo-cl-Jo;Fj0RECi#I0TkV}>f zdYoT?{FFbmkYFOX$us}`v=vxYqY&>=cilXyG572%TEhnv+aggaBbp|JN;xVOO(=l8 zez8BAK8Mz-*_cPETBznRD)5dL3G$3+hm5K)$WnT=U80ow@Dd^JRtc#aBsEqG+DD)R zd&cs#eeTeqRVO4NcJ&BwI1rg%?-}I_zMk=w1zL4iaP=Z2sfDM~T0->{+{l2?1?!X= zXgmhUGd&8DZzmrg>sX7;u~}5+w58|eXkIj81N-5g7+#ucfOhXRXbM_` zfS%{F@e7=y-ckbQ{Ve3-;MD7(a0-ZnLrEJ{3=b`=0qJtNjeH3b;qTBI2ToI&LjJ>$ z*i(fjC_=ppTp}f!JA*5D^jF7R)E~|9TZbwWAy8eT1SgJ}s+P}!W?N=M2kJuJ&HI*7 z++d}rGIm4G=g$^zE;I;`r0uRM!K`0eULJXQ#itT22C!ocLjG6!M$s}dVvPATXcPwx zRp7!AXzdA*1~=R8Jdf(z+Z8XqN0Z4q?fPAC1(BdV)^}D*qM+!4!|9#dXb-qqqPcqc zAX1q(Q^KiMt{od$Sc|H3Llqx`?Cv5c9P*1BlmTT>)oj?E^6`qgP!qrhG#0|X?}4ly zbszBPhvC?TbEaQy?4igBr}7#7SWxw6`7^YyHmSG2eR^k&pxTJ1zkj=qpj1AY^nnbU z<0<5{?hh}r&^uOosMI2=n(fGSC2uduk;Cy^J|x}(yTG(tQ<(1KaWrgnIE;8`9;Gde z%|o(@+1UJ5(d(|5hhOb2e7?+k0_^~i&|9%lp?8AQS%Iya+AqOjg@$r>;j zoZ16_fJ1AO?s~9Qab)Dqj-Zr#uH(Uj3thYG500xiD)p^?({`sukei^*Qz{5Of$req z+!$K}!GGNPv{lx$nR-|I_j55K%S)@H9aI`ju;CjJfIZg69cy{N4l|KO6U=T;mo|yF z0r(mIH6ahO{o1kX2d0;F#r2uughn~7*Obl@agA~m!JX}7kQ)jaRNm41kp}CZj(-jX zy0c@#!Z&~(d=S64Bhp;BEP;l5UNc<5b7yb(@6ZI%G-s_aL7MRYYVqRad1LxUUf~q5 zH*skpP5GfUlz2@AtDlM+YJeI<2jT1}mHUnABJ-2I9>t6QC2Jk4A#J&tEZ;ZJpQUf- zH9PgzL}Bzd@;^XuU520UN`mG0{Z-XZNufAQXRgy)rWA4ff<6gN$(Wc$q%XjL#h4>$d86Q0>||ut>YYDQYE9C$RxAGKGK(Xf&$D{1=Rc zI$x+2iKIRL1QKj=5dCInOm}OL{oP^>=vi>W1|DMciK}9o^SX4l{&Bw)=I!LL9d#huH=D7$E z=5|~v@<=c+JhO&h1We8b9B$_{Rl#mJagQ2jxJa0Fxq#Bdek2DrP&{!V6`MCM5+%TptW;uh zpsy0p?yK-+yu$zs8QC-BlQMeIOM4VX2;M9weV-2ptqruI160G}aJ;6S1)ky7@(>B9 z*-a7Q1~u#$^8sgNu1)zZ}ax;)EwbC|N_aSm9F39}i z-%JBl)#z07@sk2%I0rluv+trwg0i`ZyfpRD4Kyuhim%)<*ePQ zh~*!c>hr~m{hixBo~&sEcPn$)pD!N*jh#v~!?*1;$XFzdO$(c;=Z<$Wo&R-bTjW~O z&O7y_?Ea65j9i!|V6CT1VNfCatk7lg|DLk94RD~p;BAimB3x~C+AkB6exK4oN^j$Q z`>=*RCA9OlTN$+&*R>O|7t4ILsYJ<5{C-DF2h4D3n`;Jv_?Ga>l;r&Ti~ea`9#otE zBTK&}x?|vaO^D}h>IGqlgaoKV_>-G#`L?nDgvFBHL}s)4J;-AGHL<0GR%5M~L1Qjm zv|9!`yeNyYv;#km@^=D1qZCpQtc@+%nL&^VoEODx`9QQAD2K7@6ORr!B3k%Z$!j&G zYV=(;bzYXV9W#P|zPx;{{bnEf!6V*?efyBt&jA8L+~%*Naz~9^%YWB$WC+dH1HugG zCn3!DV2A+QIvtYe_7v8%NGG<~(7QdK0$Fa7c4^y6eyK@2e(Cbz9p%?x<$NvzVH5^m z+5{est-1drKzs#@4-lX4@Bb%_F6GFeP}9PoP<<)?yND+XFMmqL78^D%H1~Jk(R7+N zwrrlUir-p8aBv0ODCmA?j=$L!VLyEKDXK8zcfpucn>8fX{G|ij6NFLPF>*zdZ$Xaf z<^^nOGgL51oIs*c#q9?FyDpIbl zKHG!K``#W@f#DzW86VR$I@E9+)+UK)Fff$PobffL@|5=piSC4O?(8OmNM1j7^Ki)F z>16nL^}_Bei&_0(rkfFNouwVA<1@ct*aFh=T~z_doD5rI)m_<+VfA}+RW$?KeFn!q zk)6$QD&GW#r0#fA9FTiB!09#E2dS}DKu19dM7K=QAaaCji|%P|1_O(~i3stgkR0tq zKs3bCH#;e^?6j$g*_k7(J0hq*UZWZ4g53%S!{T>Zy49VVXfM8?`kaxhnQ?GZBRd}U z$_qaiUD=Q{2re|x{M;RnsiAv(PWs$G;0JM6#|!7=C78Nz7XO{P;TtyO=k9@wCC#7^ zTAQIzLd-&Hw_&mlK}>MDHEt3&I$dq+Hhxo$5cjXoPGKv`L)#wTtxRO>2l-6H_&IHL z-kFC%5sNyOH7E36kUq$w6QONA4ulS@_vLXZS(;Feh0L^EuEWTuOXz}t2&lkK!*PY6HC(x(ypi;G=S^O-FF0&Pq3cP&_=k=oze(&VP01#D00s$k8S1$J*MCJST zGPR?(b5wAQV$kPARB(Hl+e(wsKVux9k&Sd!Xf>+*`zB5$5$O_gRY~|OQij~b)eh$0 zOpImUT=||iimgAew=DK$kVVO}rBsvr~oeijhxZbQoZVoDh7E7tjy48#DTcs>E zqvlm2XY?eDu*Kk<`*lPCP^C)Ts{FQ`CC_l9G9*PU@HEIoqfm7E6C7MF`HFxs%kT(>@s z=*o{@m)*+4{9xw>6;x`RqSdkm7cn8Cf@Xn+NW;kIbUY%GOu&ETulYrMXT@XY&dzD& z0_&s`ga)d{1>CHrwFARbUsG_jqZl*Zg9k0^=c6cgb}mgV#JR_u!<+^4?7icg(y7T8 zcaa>_wqPD)1cdw7d+yJVD$IvFN#5`+Y75k|opDRbTN+`i=ELmN!WsKMb^sfO1@c(p z!TISnE6$$@Ax8Q5uG?$nS13u4*HP$gKG_?*JG(10JYSQp?GCM76+81z*47{>j#{jf zkg!upMqW+2@#IO;CoLz*4xIgdmq5rvS6T~ujh@txK<5c^vGJte#Si-)c%+fjKOj}T z`{JH*0nO^_p%aHqn{FC54R1R}^7uPJai;L$u)Ou*h@nXq1i3p^Lr~kIBb0nE+l1Cm z77_{$*som@(F;hLE15Mx`ze|xe;pbV4!0(TOo^PnFl>sgO>*4g$i2Xej~SQJq=_)t zGlU>_1Y#}}xS}Blk?x_wlP^zTw|wScw5**JbVJXDNQ3533FNII z2o_(=2XXsIy|t#!?@8qm?g9`;6dra%q#wc;j}Fh3n+e}Zw}Vsc;smL|)Okd4aIk`m zfD#+>Gve)$PsacnnUlheV+0`;^dZ8;4ge`Wlu=oY6MnXXFHVBEl`-F6J4rL>Ij?6^ z_4|(ldI$e}^vP@P%EL0>Ee&wl2HNp}IYNKT?k?Dwv#0^*=DT-W1Bd^)|I%7>YB&r0 zLM8r&K(f_XSei$m%Qz-$LN;;0-@@>cO(Bi9j^p}^rG>-owWc28994;DF6Y`TJ}n6Z zE6?(7d}l(e>6tk3^8B=I%Zqd(#`RS#)SWgZN?n3sx;#orOYT&IbfJ{I?^YMz)=xgF zF31D+K0RI%9sWV{naXQaIN1N~zE2`qWT|Q6Px6+=>RHGI#opKaF?*}DHV>~xHcEHT zdBmpfYl|=o-U<0raIl0Jb7YQ3*xeCM=C-?6Sv)$BS@&F%Q-Y4#dA{LW(?NzSNzYuy zW|Pis-P#&ckc=1dbr^BrAAc7T@^D!D%H_)~(RcTgDDFq*aQv`=VdJ6xA2aZN+5RBp z+w^c%z(fque&DpgG=|Pl)=^oyR%`rJPQ7WNfTp6XY1FKk6XWb^~!NsN5#*_eUxn3h7bw7fxCd1iAk!;XR~Q^vdkqh z9b%IUxR`XLHfy~g@N522jHp+MCsp4ma=JGZGGpal+q8bQ=m;eJ>!vvfo19Mj9N(YZ zeP&j!T;1>p!yxtd=_S=4$1qs}zkXy~I#K2;&1o}C%d^!~>3i}@Y$WedyBpA{7JCEv z%i9h*6_`yfmNWV9M@KL6cf5Y=NhM{1{c6unA*l6&Dm2uc8*H1vYX>%~(ZDy{CJ6`G zjjc~k7Q}B&f|`4@@lk)&H6WP2ZE9%SoCW z+d*`XW(CJ%uXf!U3;phWk71M0@F+@wnGAUKuCu( zzz}5LHwBnw8i8NA3BMn}9L2omOc5ie;(@7E%7l*{Aktmx=dmwNVJXZNgExf8x94Ff z%Hl%d=yLOVZs-)`F(6Nf_s%E^qCaBjG~}mDEoOuX=XCSU&_u$1qj*iS%Y_*=Pkq(j z#*Rh>Yq+XUbT+q-z)6flvW_LyU8;iBqadfHqRWbfUAV5duA7}A*qE8dT{u2cNS(^s zMm0reVlyC|l|pt!!PGOpz&!j)6=T)qPz}CIMb2gUiU@Kd5EeJW%&LH^H99QgfJi>+ zMAI@Rn&P~#DI~{=23<>n0yJHDrr|X!Qkd-=ak>D#Um=4z+kiOBOn2pyQBtNSCejmM zxGjy@-O83bU(U>C+Qr6h(joom(W8Qyf=M=u-`{`p+$ZH18~Q?Ll-EP}z(H*pZcf3zh^S|vXb}0m~i#OMxvCOn^d9pplb$4f?BQvI~yqsOP zniLq)rd^-Sqo80iS3(}hyGlDdfBhH}W3}8IBSccPP<`FY%d06V7sz( zy<=+U2FpQINz)JjZlk`h`4A1@genx~kq)I#lA?~&%fH^>r(|J```mY=T88=%31th^ zu<^DwdHndJX9^A*LLS^j_7Q$~{rVU&1v5X`kB#TezYgY2e|+E_F;oAZTM2NNW+%ZB!!C2$LkKKB|ra;n3;zM3M|;2XPytG;Y0$ z-2EtOoA_gtea-y|=cI3GTvQ>M`TNi@;@8y#NFb<%P!kcK=MZ<G+F)&k)h=4N|DmrzzeaW4$~^@lqBBez1I+gSlhD$M|HA0mwtOQ zB}0F!OzIIo`}Ip)S5J>?1}Z+s3;SL_0lgA!a45`cl^A9vVqX!wKP;)rN8Vkplc!Bz zG4X*WpZ{*~yRXX6HHnS}2)>@Pfjca%fkKGX3vdOawYfo+BFEe^Z{{ASh2bjjVP3Um zXwKf|yL9O;ghX2)aap%|^!buZjG*CI!-oyf-C}!GMo4^)O&A2n0;_cVd(D*e^y0~H zJdE}rJ}>J3`}c21?cii!V5quvvn`iSA}sdsX*$x4%xJAFop&^$x|Np&Y(?^Fy4CWV z+P?I(^&)lw$CQtDD*9V4m|jp9CmC%LDYSF-<0>b<0mJ5aLui~0$dh=B7~n&NN$<)v=3c&IIV@Zoa!WwS=YoYv zhDvU7vSL~?G{iLy4#ixfR#}+BT-IaJu>2^eDGGsomzkLf)!c=A3y$$aJM)H z=GL_b+dPV2Nj<$$P~puQgcDe#3xM>hS!$q^mDF z3W1Aq;=Wn_2>Enpc7EG6*+YL!dq*@Mr)8LZm%U4X3l?UdAgxx%;%pDlE=6+5-qD9SII0(SfCAxg_i+4U~sh?EY-7G+OswAxV~&_UhG1ScVngCR;xU91@X*RjH-G z#+djl%YD%1eA{c*{^?PQ)W)mh=;VCv#*x0_(r4;%_s~d-GK}0pWWX zAJ^E~TP<86ELmM$En9-!CM6>q`63a{kyh&R?xw0DREunfxZg*?H|NlKY1H`9ox`MK zfTHLTNBA-%v?Up}CQo$brl66$j*f@m^?V=lJ$XRe?=EVASDbwCr|=!>C&PwrSWa|; zx-w0(q;GmVrG1V*(b(4zHj=h<_3&8>ShP?g+=u!@v!BFXP~AO+eJ!KEts0e|29^yR z(K&;Yk%${lrw-i~k^fwI?<9Utkyb&i^&@Zg>z{F|f4qrM;SM220m95HZ|FW_peSN2Y`UGjXX&GUk)bqVvo8+WraU^ZlL28EagM^eL7kPnw0<3Q4*$g^R*cMut}wa%|5l~anUhyqW7jr_!_)g zqG&`ovX#wOi(4zmf+TOTCXBZR7&iUMxqLB-Ws7#ten;$E>U-6s7FA?rJxb)K_%2^o z%XmP9%u#`vdSZ&p?p^U(S-S!?iIUXeKhp=sn5sW!Ekq?Hc(~@P_y-zho^V@h029JR z9e{c_B`7W}4NKYsu6KS}P}>QNOa4#i@5riT3s(PHvY~zQt$VQIj{Dff+!hMc8mrzj z& zQvW^UZQRFC`Hy47JuZ1qF#_!hJxJYK+Yi9`zrwJpe=`Ctqu_B&gxE%Ow@sf>NtmW_9US>XA@>R#-JzZ{QGJt(@&X@AJNe&0j9U`c@czO8#fzI)|cWm)A;Ho@+e zrrVMFB|D_prN&2{I@bmOsYefK=GSmv)ckv+SiaY=u*99p93l)Ev%{7Tk4lTi#mB?? zm0MYHm5xr7nCBsM$>?!Po$@;(Ui8AmB*#t$gu8JE8*&0t(eme zVi2r9-%qyljR1Rton7HQpN85Lwg5)f+?AtUwbyN_PM%D6T_v&xTULH{cc-FV7hD8+ z6fu~~t$QEGR6Hlzeo5&j<4nfjp%X8?SQqvqTb=(nt9Z|Oj;`>*#dT-~FCPRD7R`T# zY!}c0p((Ha#}GxL`5&Scmoz6k7n_LQ^0~wwA&YHjDC_U}+cDo>o}`Ape;&!p)a!Na z#*KQL`{E!>g|-z!B#LV+H)Y+cd);^!RTyzYg!Vf9*+~?zB)B0IFMAUEP-l2o3->$Z z$Wz?c^eTrfqe@;-`BLDEz=HKQggz_LJ?NKXZG4?QgzWeqpk_S6|91ZK+|Yh@5Iw}b zONkp{C+4ADGa2$KeepL{N`{W4XE^8xzD7icj$J~6y>WNK1n1%*_DUk|R3(WKeasvw zp;(2NQ~6!0I$*y2T|K#0-2XIE;w}@73xg18(ItH^^L^E&7EL`QdICRM1|)DNXZD_= zWtnb0FZivDB#;qY{&miKk@hp_uS-{P4+KBH-?n8CugR-kK*MmI=KJ;S%dY>dVQiYg zr&>6EaL(Ht=4+4J#%cy52qi3#9|8xN)(eiQk)J#{I0@`;S~R!D4S9D(?$r(Z$o4R* z$WKL)n-5x{IYhk=5}z9@eY&5^X(cs7?6BkB`U)Tk5{RHJvM=OPK#fb}5zJTGW+MeP z-*gQO%w2wwK><7XIXT)UYay0y*2Ss2$2h!+Z}xlzkC z4GK-E%6X{*b^!WH79`Fa*Q-M&B#|K?+K##0m7vu@dc z7sfO70VIRU_3%ie({tLNR;uU%5^B(h3Y-mx{Ok)6S#VsNe;S5oaU)0xO8n^sI`Lk13_+faR>N|${#loX}4Sf&c z&%~XB5T1OALskcuNC#dT`p`d_uZAdF7*yDNH_*g;zwKd@bX+ab12WlTe!E~^l`0SYQplr4`1WL4;lTq zFYUt#nBMh5(NZ`FS#Xo&#NUZ*jXU$%zYTK?*D#m+j-ZdG{`b-LIu!`HCb4*pAvn|4 zG2F;04IiwyZA!a?JNtk3YPeDLzYq2hH&W&(y^m#hQk`zq0LzC&={WLKTh94(RAhm-%C)6^FmC^jgnbvIwEnA~2hd!ZXD>gOkpvtw58T`GbZ{+l*xa4!&Fg-h zze^6jBdG^!=d`^zPPyXlYHv`Y-Dq*&FKhlf+#(!vtj;Rvt+Ce3Ij-Fje1Dc;AMX7v z9Dx9Ow|sK2;(**sPEq{2MNgiRfnK{$JJ|Ug_C=?O=!IJa((L-~FARi=3c|W$!t*#x zq!S@7j2`LK=wx#1)LB`t^koiDlV9{^W4 zXaVGb7CmeJdaENPStE&^jl28$Htq^;rF*MzTaMDCP0=xPQv6_*zAygt04&*aifb0& zy$R$hRVWBz81B7U4!@@+?y2jqQ}mTdi0*7b4u2tMd_DedzoC%18?Jf7IL0FGv5EFt zSCh_Unf|Z4H?`UGP;&1PdAx9s_+*E2&+@R}kDux{K+^&DsD!lm1@OVae})aNcbNsQ zkqvq#@%!S}oah1Eu-D=U-R9e(*Vd^i+c$>$eQ7z0DR4L}=!A;X6+wMn#%^$Hh13hI zW#UAG)G$C^`MEN~Z~m(njR<18*}~y)X|zFfuZ-xTpIMO^iml)@Az& zcphiCeEA+IWZWo=+4qFKyq3@PFow>M6I z-&WJg$jz;~y}7Cs%&6|QGk^@&L_tjoQKjQ2Vc~>hjv0lWbaiwLO5F&;SoM7XejLUD zWlNxdkqBop>iLohVsF*f|kS~?5b;&8Zmq7Q7)@#)b- zbAm50I2FdU>!UCk0JkZmt9549nte7ND1Ca4-6$}O!!*pC3TURF1)&n_bCH|Noz}QL zy%h+asZi-Rp>$bCPj3SHN0JjsU)NsqL(SfsxU2BXD8mBe=AWxmb!xgNUk+Scrlxst zNENNEbL8w<0H_2cgLijpah-A#aK_24^+hAVxD?aX#yjj5hDCTGe+nw#ez+!|C_Ui# z7ysFLirl>{Z|h=qBbX*sr}CPBN2~`|oa-cOu=fi!!|Nh`)lK(Y2IJFU#J_a-A5X4G zM=g18aSK3^U_UC?Etzspl6F8SNhxPG!h6!iBYBj86y690F)mbGrJ*qZvVR!HwOE{P zRj%XpId)N$t_XC|>&iFCQS8dYVqC5XYD)Mz4*LnUMG=>fz-@-vS=0VN zb>_s_Jzb^5sU!J3je*Ltl_RF@hfg_t01f} zR=hbA@Z+%s3L~+EinD~*R{#2C-DQ^x5YqS?&b|g;On=YTTYQi z*_}EZ;eY_$ym-fwrhW&cY_7H@D~PG)naFq^zbFqCf??3zUODe^sj!#P`^QI+x6l;u zIL6SR&13cF_2ny9f+8a|68&iSlg^OS>FTZ*9PzEmc}Tk1MyeT1fZWZ1O{18R0IPMk z&_PsKSbDN8%|-o)8};}8O~mUN!zVXtAiRDysE_28>^?|Bnfmk1dE=$AM#ggAB)J5m z-``)UaW~)!n1uv>`w;xi79zHbZ^>j#+f_o>*QY$Q`|DIhSN0rO^vS)!E;nlQ3<0-g34#tG>g9`%O`z=iFkYY z?5R^90jEv|tkOUB{|lah;F25_OwYHSCUpu-$eF)>uf4`-ooL9NY-vv#I=TsPpEa)G zCx0M0tcMX7cpX~|xl%xRgW>vhF<3OLj5y7DZoi?z6!ZTB%zUvJvYzR=^WedQahM_P z9hur>fK*j2JRM-SjLp$|W9=ZXz)y5kZurIF2jP0!tmsk<$2T8#euR+p58(r8)j~zb z$(x4FbmPAtXe!BB4-U!(Gd8_EDO(@u&gTq})5K?o_h*jmcN_R|j{5Dx{e*7j^Q(Mr zAGHYKR8K$Z*Izz>Z(QVQWrQn!^1v0`nxMo4?pp9aLY(9_{?&;mdy5Rb28DE!j4B_$=Fx4_W2{2*V-m4^-! zTmul~1EVnvwF42tm&XqsH|le;I8swJZ^LjTyR$`mcXh&k;H?J_dmu@@*xRca`!$5n zdx$$Lrv+O(;mfOSrgM;AZuIERopS|dF&Q;P*ZRI3x4($)`+GzQ6Taoa+T-PI$@{iia5H!-ok-ThN}zK>Fh+bWrgTf*)7((N2q ztFtA3zif22pQ$jR3piKI{=g#~iLEH!4%^(}$@eXTTSTI*wea_4WwUnc&)^~6Q`pko zk&xPTP%HlFLVqR7k01S-vDh{WT?_m^?DoaoV=0<_Uk zOP%s{Kb?2)OqHd~z4YUlNLXu6;tVPxQq&+o?v?_i6H7}~Q`aIASC=~|lov$14{dlt zoY*EdV=eGb&# zJs5)#CC1yN-=3Ao!)ffh$yqPRo!A3JiA<;c`4oAW%BSYiK1EbyD0wZX(xj>3xin?c3xXshv$D>?31 zf;sF~VGj`Gk;C(XNtBH%PrNe3=s$6I`r60!TRr*!{kiMBy6v1Ge%+^Oi3`0P{WflR zK70LH5F0C>GBGa88~cNo~8@#58UQjtND53a$l>#!LF`PPhqyp3$&YBJ6=4x=(zT{(FuLX zFF2o@|HPc_T4u3Gs`k@qiOe^PCX;KQidJT+@(NE`ZM`5b;uX_}5b8i@!m_dZ5yoys zUMoTGzR0wf-e(l<3`N}Azf^7)UKQ(MF2T?+Ij^v&cR*!st7~q^D~Cr3h_?C#lpM4QOJ_SEq8}uq9>CRASnbR)KcD3Zb_93U{R=8O0o#bMfKrn*CejmEJ^Si#ykTl7WtKo9|!ju$sYs3B3*ao!Pqhkpm(_dsbI z|A9x`51?K@c;@@=Y%%BeoTd=%#=l>TOS?UBAKs_8oBx=~5ni($_r8-^v~}o>SnxwR+AC(2hKk8O;Kicvni zT!=L6{ri+O5!siubON#?udTY+upeu%*=dTQ#{@zzDe|tBS;4ra`V~28Nmv;)8qG#z zb@KPaX=6G%pmFRzQFf;-l{NV zuxn1+?tPbr)A6mldcrSjTmYvV<~((X-b-R$!pp`vcx97U{;=C`=3@eehK5`&8#x(b zPouz6^m_G5#=sykLyQ2N41Q>tecyc?ZCYV7q?}#t%H>gW=|J(UzT`_8a{>!}Rs$q? z?cP;ZDE9i44~CR9#Ke3d!khwRJ(f@k)|dUA)3)0XWfql?PyiZ4J|AL_m)Um<0Z*BW z^7e3$VPZP{FVE?|-`BR@ivGDX=f1ZPbj|ns$0=YzLK<&Fn^39~CZI zJ$X37lC8sX47RAO(Z!qhQhFJ)A64pc)Vz~Y^?nrGYDQmS;$J(AjWqIpRQdRGjTsBW z)u=mZwH}w?n?sh}zuulO%{UYDg;L!r?I{RhA@maIsp~Qjp`udS=W44vaXq{iNNS~5 z@C{hm=0UumcH=AcDWTW4XP=RBZ&m)f@v!?7bMPhMyBL#xSaxh%yc;opnB-TtUpeZH zX{)riEN>9d6{=_KI=OF{ziO}9rfRB~Hn&y%{YgR7c=(LwL@l>@J9m*&zUijc7Ken& zLMFN0M0EQ`@6~b%q)EFUTXcT)L$OhxI7sRlBq`5DfP*bfA#O})_XRotFAv+pQZu)n zqePcfN|on1JWR^4MX@;dT;ni?Z=$2P6cQ`wpmG9GO@`XFuLgZ`{9G56ADu;3Jr=L3 znmA!2o^k-G#1rStVBMu{t=lcPHOFe!8)cuwzJ$x2=<&CunT!#sA=_1cW^$**S0(r1 zO(WM;i3!XfEW43hzbDx~Wb4hQ$V=FPPAnZu;zw^I+e6qQ1om0jY57ldfBmgm)G?yq zlKnUwwfyrggcmDkPB-mH9y-m8yhnKZ{KC1>S}%$g~tb|!6qRiBXdnI z{x!I#aX{)Qn6}$mn+H!w@-sLU+$&Vz-?Z;s|Llv|`BJ)^5FbC`CqyYz?m?^zVN0lR z_64OZpMrBPPj|QDNHU|!s$lHLNZgI&M&|JRrY}L-nWSUow&f}8A%`)dGHc(adJ#lQ zw97BGgqKCGGqlsJTUTGt`0?&pcyFq4F^bzxlC#e~rq5yYVz6nv=O9~grbFrN=yBxhD-?S{2Hq8F4NZ`A zU)PV2OAHo#+R+PT;MV53U5POFEG>0%yVYk7A<>`s!g6@}VQ-rHWpXq0>%F0!ZU2fo zS4dj?LVV#^c>`c3Y_?MmdqH{8KlZ>;@p;6)44xaJT0B#&v-aBv_Kc63zVBPwcBklDZmI5O z3zSfDkH>jgiiwEGK%Y4-Z)~r+S5^vxdo8K@+04di3PSs27cZv4;4lOPh0Ad%u_o{E z;lseB2=+LBaU!!TV+A-CDe$@bObNg#DB%gx6qC)1*MDBmCE%CAc?{7FM;0FyegCR z|EE4G1IS9U;BU%`ih31TkAH;7)Spg1Mn*{pW}=*|QLhpc5WDd5_HG7+vLnvo^74Ut z^^s|CQ-;8W2D-+(0=wDt_uO`lU-=OFYw@M9`|^Llk!^?kjWvDkhWM;I$$|5F+x5@A zSCmTr>5=D>A9$0a*Pm!fih&&TKj+*n2FnhhK5a(vMsmgEZHP;t38{YfONgP^(s?m-|>j_9MuK z3%fpY23*}cdAkcWOh(W+PdAeuW_~=!VUh?K-bmLfNWZF%)TCY9<{3PokxzO~P((9GIB=6K-y+Qh5<^#xHQ|1uOea1BP=C)E`xOPUBAc zIMXzxS7SgEn`SF;@(fe*zlM6E9MP$QBJLn}D?UFd$+{v16Db+R z*XGdm0?!T?kp)l8E}qeH@h&#fG&_q&Q{YxEZ^UJWxpH3;y?TY=1GBZEkz}WS=N6yr zD9GubojmoV^8iz^5R$$`WmS^rGXFk{HG9$Y{5i^xo|?t=F{AyN+MbR}V}oBXkG~U% zG(j!Fc*t88^WTB2_DRThb%g!LW@E|FW~N736T2Q)ma!2U36n+Bb-UGK7c#|VcXzgJ z0Gb4ZO#)`DqO-Gex(p>u@8;!p%?z}hX8pzlERO(>str~6+O1On;5D*lckkXaawd&b zE}Mz5O1~=yT+RiCg(U+N$~B{}t7|x1>Bj}|ZuPsHDS)z$O=gtXI;J04=pk_93_Vsp zu&Ivh`w0s!>DjYMOH0-YbKgFGMV!s|u$zn;`k>!^;VG1xC9BRAE*rq6BmZi8tGIXU zW+=J0hSS(nHxkUbxOfI0?iA@}4YHqIbeWF7lRm6-5~klpep8X>geL%PE!V8Kt3587 z6zvaLSy|H4r-w+7khX9}nKXajVeRptzVztQMvV|tqFjHtx13RuC2%Bxt@L1bd)BqJ z$jMGKSk7c7{q#=XA!*X|T_bS!_@zU^IArN{me!rg?NML1l*&Xw& zovDgCY2#}sD=vrAKP2~tE+oF0$_Xs9uxmb_u2(m+;PjxlH|;le&ttXuj{S8AvEJzU zpK{$>x(a!P8jber!b^?A;tp*JZJBcFtlPGUhW<5u*2N{aE~YYOIO=@$6`sb7?ikjs zwnhBb&3p!hr!&Vk2H)z<+2vG#qU)F8PTHWmf`s}Z|w#iWzTEAX4*Z_UeVgOpk zhIokDHmG8cem0aAA;oe*vCAq;>LsPArWy0x@6YTqbF|Pfx;khZS1wsMe)c+r;#JB< z264zQ`SI{{jfdCY_OIt|g7}c*Dwc^qU+x+0*Us&*QjV{}EW@%(YgWd(tK2VtcCY|h zT{y5J8Y3!RSkGd|>1_{Gg6i#Ji_O26e_5_L`jsp@t$4NH@D-%$aG2k?+prE&)Kt_Z zm8f5A+lyVZD__5^!yN35geHMTJMl~o`RDE@?b!I;iHuhR(<5C+2RBj<-elcME?4%s zl|+??SH$W-C7H<`7E=!yAD^V?`T%KJtt9Nf5WgkO_fk^>pWq9#z-m%_?{W`2Tpo zc`(eTa72NK`+&ulwEUY~dsUtDyVw&Gh%C~BXVPY_l;M(z!nmJ6!3d`-jSBfft71W< z^xzoLM$976&vwUTh;dLs0w_Q*Yy0Xc4GmN0ed1qu7KWF%LD8++!tFI@XHe*(juLIR zeF>#QiP?6^FS*BuW;;@1il4bHbo>oR||Kl$Z-QVVe zM6g(X{&S3eo;_gpyL`Q&w#5~f*eXJdJQJYB?tv0LQ9thqUjo#VHnYO$0zd+E<$8U5 z@pFnnfwrBUU0EM_Wu)DwxGJlt>>5q~m&EO7o3jTbv}8gfWup|=c~XW2JtZDRhwpdQ zZnu)tj5m=OI@WMA@ceOyvku_az!IV?Qn!HS{f_`?m*Gc{$rF|T+AUHSYNM4B4O%9u zZEa^TiX#eS%LUY1bj$}&fb6puY+Q{IgRT>IyEL5C&uEtW8q*#s&Mx!*$SkOq@Pl;} zEH&Dx%>(g?Yy5*+A+s-HMQ)-en!~iCyEJ@CqCtZM6|>|sg-b>{cj7kRx{t~DC)d!O z{w%K5^9at!K1SPpVSk##f|d74YeqZElP14ITTC*VvP`B}@}m^@?bZtZHx>BC>3b+0 z%opZnNUeu=FOI6*vA6c9`_!P;ks}q?C8-Y6!)L8O6zX<%cIu@YU-z7!(2*H?y-&(@ zG+Gu1qA#6b-MBFhgV$dOz8^kPLQ!M7d$&Glq0ueEHgN0bqcW)i>(;FkyYxkcuz=eG6Q0rx zWKy(mZ4jIw~>d7)Dw?GZIA7Ye>-*VTr^)VN_HYy9Y-DVMOx1Uod;fa z9R{?Y447O+DI+>i%2L(z5?#F)>MScLyo$<}4ae@^FHVhy78LwNvi|+I>u>>hchShl z(kBc|Gn&NyQCbVC$$=KuMBC`tqt+QaH+l{FY6IssNB`T0sKzEHrki{~p~YSHDv6MG zPKACoA=DhteU*R2)X1FzSi zGFK-pgaoLrfe%GzP$k*7Vxfs!)Cr_O>HT#6+_`fCppMb<8YWBFqT;HpmSZHtNI}cS z5_xGQ(T{G%+1(1&WTm=LSuYkp6YHYn>QzV7z6w6&Mvu9(mES|?_Z0-oSn*SR;*ofb zQ2KSL*h`^wZUc%8FK;QU)iKhfV1>k>^iZY}x(hwtfwn`3m{Me1&dZu=q6LPnx5bVT z6Jl5k0lEW9Z0n{cN2l7HAMV<4i#|0pbRqEW-B^PHrvnPtQMW4Merid{8&7-e#qgxr zVd{)(fFhOK^%E;85zxIifJ@J^>q3hut_-@-PDLZjxNN03_%5Ax2EDN)C@?SzvuMN` zi?58YqI`IDcg@() z`}D)$;V-uG>@~i|*PBk`eg`gjRqIK6`zK_9)8-#~(v?8RH^TWt`fXC*jf{*yVgDei z3U@%Z32i>rpg@_5P4ELDo~hA;Z3RTVZDW~-;qb&rv41efqF$MLZd1sHd%HmwYNr{d zbVs|LF!hcWno(cUVbQ8pXQ8^Dp#3iB|-P7@O`Z9{GF`;#!{RHq`<8{2y z%532Xe&NH^0nVN_NqW+mf}ipleoR08y3fhgtI_FMR{UhK$1Eu|f4lnAOgY_1 z()2&oJ;}qR^)p2S%{1~8Da)9_gc7t4U2x0%HYfMgNtsEnH2>vm&3gh5JJ1-DY?hxC zJ-erTl6XpQ$N8+gLcU7?LJs_I>r(;>zfwHT?kH7Mr|QmrH!v!)UxEnfg6`UBhXyP> z@=e|q%(6zSyV+4Q&i>APRDj~D5IMeFJ#Hf|A9Q`f?l9*wvOd&Z4X z7CDvFM$VC}>>C=FA(no6!-+wSb#}g-lqGm0_)>kmVp3Cb#NLT?et!&`bI*RzM7HQ2ANSK zKgyMJTBE zGM)v_Ln46{LH!LV&x|MBQ%J8s`bVOsLDeDvXA7J`uj_5Vep|HVXTgZ!P`XC)0`k|) zr1d5rn5|=p17_DQ6%76g->w?g^Zp?kC#0t%C=-I3tQuDBE>!EtU-EQ4)3toj@253? z9VmPAMXZ|bN{1MeA`iOXTVrEAMR_TMZ8PCU*m>R^Pi8~J)-Xmd znSRdLpmnz@w!36b|M;xT*P1(9(O|v9evaRE*rx}(xH{tm;)#^=U~=T)8y3&6{hX*4 zd1Z2-B@Uf#$h?SAvA(X3AN?Q_DJke=kW9<^rt|JA`;D4dCM2#J80SSpKeu<)b;(ox1v(m&Vf2vi-_9BPl$mKm0?{ zxOqzhA-f6TAl~={>BVC4dQyUNJekFzPzg>U6 z8lhqQfQY)Bx zWt0_G<{am$K-v`I&r|M`_My#oZUohgg~($ z2(>Pu73E1|iIpRq92X_L!v_J!n4VV7xE zN5Q%MI)4g+u>8YztcK^@zE;0&uZ3wgjgoR3F8ld@l=7U*6%`c~gFujUG<3j54iIIL zMB9jHv9gYacb4fqWGI9AecS_*yCHt6!JNt6GBck7{jEWjLD%D>Q2;Qv2g0>{1jUH? z&9awI%gqg6m4#%BKvXbN>HxHP*G{K&SRw&lQA6qV)9Ou+fT;G6B;Vpx^Y>BJDa42* zg5=_qA5N%@OlI+D##=8{n*+zo+h7$Kz0v4$&Bzb|em;j7X}1@91c!&G+`jz_ap9^C zq`l_N$3AF-bL^<=JrJ}+vLJ7MTm4$Xmfc&ro3b)n(~S&+=CNcQ=LTAk(@7-;{6jm( zrfqb97hPUesHF1)>u2ld4J}bANDrYj z)I0_*(y4K61>Rr;Q9KI>zq;YGVI+4Ci_S+q+_!0#UVXIE`nUlg;8Jd4j5`7(lA>@C zbLdeEm~>A;CDu={#=w)Z33y&o15iQ567V<9x@2zj7W96PkRCoY838I!)=uJ`%RLnu z{cAmdL3x-g@8iU$3;2lu8Bg8u=aF&CL@6EqJP;fArA1aBTH)%c_aqO&mq+rD?EJV! zh&6XzbFp_Va3!m%B$0Oq;8l|DbqYuPZ9vPj9U*WI$zvee`#RoZRAyg1ZP?! z(DmVyN?B>gzUZ*9&HOtU#R`?^IQbIZPAu`xA;Ietkit5&yVxebUfPkMWxCHzKN3bivWcHfKoSh;aSFp%{vy&>TT0j~;OAmIhX{79_d)vny+DJrQk_ z$b%s9;ZIiHAan?snPTDl?Vi_sfsC(#xRKF1>$ZC_iavNu83-HXL;u!Ketb@={jDy~ zf3rCfjU{@<@j8u@y*QiAk(1s2b6(}kmv3*b-;rtAC^CQ|;_1W>@^<7A^1)zC3*gZ~ zbBL9P|FX`O{xpv{xVP&qf~(9fxqgLjn?wr_xZ71%#o25qhqNhYv@ZA)N4|;Jv-la@3>QW3T z@I<(j7TL(j51aBXomUL~X4^~{0t1L{{XpZm&h_4@5gL!q)L@%I1A`DDJ5rJLu_K&nQ`yf(|gachKh)I#3V!p3Lg z;!47f+8@q%bt&Zb?MKA43V1soO^-ptDoVsT(NQ{G+}qn>@~iGVp4NW|J7I#=ji8aM zU%x}OjyU_YgK&AM9A@)_I@WL4o_BgrcIGvn z_JB<(Zx0sVyR#^Wv*}m-y{|UHcIEOb%LcxTWNiDBfL&;lAc_#I_5IO^pQmoj$TM}9 zq*3dttkdHGEweq@^fiA0(tek6MslL3<}iSQDM!JwFN0E@Lmrf)o%G#olqEZU{qY`O|IK<%&R2(eAp4Q`Z_>o{ z`g>hF*gk$K6{g5v%un(BL3m*5F{Zf3iVIe}N^jXRn{1Y0b2A}LE-O!0*a8S_F#m2D z8H0+73OYm<(CAX8i7a2$pIc_j&b;b#-+KV5L!j){%X>g&%pWe)MxCNgv=g zR8fQGWB!9UD$MKGuPaey=Y|i5%Xt|hzS!$MDnfCgSK{fB&I9+yvo~h;aZCq#U=Ff_5wtMS@03Gq=H5l-NyQ-#V0IpD>l>sqNln z8@#=r-#$$#E@wL(vS-;{mc08*h2E9T^=>G=U1k%~1`%Xv$6@O0Z~Bch&R#0_OkY}L z2o2 zAMBg%EfvaTcV4;c$K`<9JIoh5+$%>;%W53gU48iOQdK!q(bXZ_%CdGE=00+kn~sB~ zOstyH0a4r2jFXn{rf-VOz8cy)9R;b=w=Oa7GE=+f5;2?ROyqdp%dai6c6r%GT%L2B zPuqJOCN|?AD8p+N&=*o%)Q%jv#x%})8k?z($&0U0?(7tadpb(`ys*K7m2yuG9a8>$ zEZ|D+LKwI)qtSpXI3n(;r?Oslq~>z29fx$bQYp+~lzTvPv0J5B4x)f?v|R-2yLCE6NR%U5BM zQNbrjGrnuEead>k38?e|vy89X8?7DlQkb-}X=PkW+2cwJXB|Pxqg>BQsThymS%+s% z>ZZFoEjXJrgAWVMo(jyzrvWhvan<3*#mJ+UKxWOJC9s| z81IzwgoQ}U-2xYN2+Wcc63jWLUk5fD#AR1zZ#!^+PMf>lS1hMqz1l;i|AB;EQ^UEO zejqn$4B-*CJjP)e6%Y=J@rr~hL~~51*+XDB zqB_Am_eUT$`P+-vuV3#7E?PiT^c2`(4cKWM$9vRi3&ar6R^Y62eI@%j(fbZ?{U2%s z0_#R}A`nrW%CrAmhcXnk;LC(6plqh1_rq)eCfm%m6}o1i&W%QFi&wcXN(?MG`gX9+ z?7tv`=(pc;H{Ol_s}He?31kNO@;(Tki+HkT%JQ%&*MSF)Ju)%pHjnhoNLsyrbhgw- zP*&CuQW$L~r)->0DS-&}rshl8Mx#2g)v=@~{k8QC|eNE<>5a7M6>ho zq@mR8ZWg_yZ}&M3XZ>PQsgU1nerRh~GznM9b1Z)LH$g4{H(0(N#Df$PQK6 zUZ1R+@pL{L=q2E0`_?pMDvX;>#Sn;ISWSZX+P-!2f9Xq8*f#RY7GA{6U%aMWb!26|`&4~$V1Zmjp_j)-Bi8H$BG?r?+D+N<6(memV<)>9<)Z{`r@+5{S7VEl=A#{Nh#&>6^Qq4 zKNP(?Jjdlayx%#(V^TLoKkpQg+ksCUdT)r)Bc`UNz2m*_RHNic?-gQcp^2(cJ4x%r zgZ&KOzx@1!opL|EA_M@Ce@g@c(%`maZ`-yF_+2nsgCN@yC|{`2;8Xj-+|>X?`B|Pa zy#^^24?^wZQkl8On+CNHE}^h#zIz$_DHW{ZgM?(7{ zB|BX55vM|&LUT#Fr}uYZs3QUizr21NM+bIX?&yIU_$ zU}S>U+LY+K?6#WE6T+9t#%h&uX&uO<(kwPfSluJi4^%pupeX$vWni+>idEq_s-R$j zc`KZtEC7`yuVmlZgK1bAaA}bmT2T)2nuchlKmu)`X+TpZH`mER2C)#Zg=o%5Q^uUI zv|U*E1W*nCJDc1mzp5hx5M`Jp>m?o3%5iW_9VZSqME;I=IWe)i8XEK^sfZ>0K3q0$ zAp@Jh2@3`U`*`QZZBp)AgN{7&_h(C$Y60j)VJ{PAflAaqgd}xanCad^16{S>?^h)y zr5bQ1BnZ@}4$xPvp>zl`vpz*x(ujJl&jqO+O$IS!F7D``QNS@Pr zX899^t-Vd%BXf4#2C;r7d(GbKJ*n}s+%gPADn2D7Am`=<97EEBmM4S{ZI^*rhAzv& zVQXH6<^hvV#a6Qb#_Za_z!0iFBr)=h@E3l1{{bz4;(PnPI>Gso0545w4@spC&QA#- zlHG&9g)l|}eT-vkPRjtn90A{A0GAf(;1l;nkDip72#TtLNwN-O)@bvryb8yt-0olZ zhDdE(WcVZNRGov+|U=OxlWf0R)%T?JTuJfdH*$g<*JzM1e! zFfN7IefZr}7rcJ#U=cAaj1LN80|Y2=uyDBl5?@$zg6@qEm$E1#}pWHnjI&M-n5 zJWGO{B(*G3N?!QaysE37XzOKEn9a#@R$~uieLL!C@{|Ro^%wl=@jH-!zkGdPJF8!! ztk7nz0nb?EQK^d^-ftpg`uk7)wF_K0z`tQfj^W_N*&2@Qo?Sg1&+@yQ&Tp9-66zcq zWAJ**vuYHlMp*7qDKQPNT^OIw|Ggky^zKFRn^qs0LK{#57RcrQ2yMK1K9(v6S^UHN zzSs>~`ApV*&y|#evGy1E9a9@B7F9J&riKzx{~to2p8mfsR~nBvlGrV;wpcNCxXQR2 z5*HIjg?_8f@G(A%Ta?2vKlWzYB$$7X!9JGWiyu9z+hb*Z>dS_Tm$y|u$2|5I)wQ5A zYf)on6v7wHMcgS;oYW{i7uF-#^}15@O|e~X$qqNe=7=JiPS2xubu_o8S3@K@Kn*RY@j z`~RrhW{TRPYYVq9Y*}8Gb}sDeZqwAeL6@pNY!@4nQm0>;B1&s)v*1Y7XpKW zW0vz=RwFXXzw{ZFPM!+3+E$ZpB1jD%gh$$lD4THs`A!3U?+xJ=Kxs9ckV~lUxLMnxiM!Bv zW`go;gAbNU=GEpX)%g({k zo68^$VB8buL6^rG(nj@C7eDndL#CgfYS#h0Lb$1b26tg-UjQRZ)iWRhRs@4xbCpFlo_Id+&4B(? zBk6uX_<+f2B8DLCVnhyfqJ%wI^21L(JvC9>u2>SkEOyS=8ba2`BeM^MQ11oEOr9?GSiom= zU}H&Wd!(&xzX`OFJOvTA*Kb!*0}4!-ful!`xXh(5d78yk(cyu1JQU42_Jn=((Plx* zTbf@y146!4Zjy~s8=yst?rH}-rvp5i%%a1Dwj^kbMP~bJqHYj51@xg>WZdOp78#~p z7>i`eWq_LLGGa{h{^YH{JAg`+)QlxKLy8&=1kfDt7@Px6e=NPtA~&Z-bSMa;;n{>% z^Y_XDZvuo;gCJ%Oy{Fb}k*eFrvXauubZO#>DbqW6qb|^zZn=bUG3%&Q{RDy`5uHd& zHn2S$H+f@ip0!S@{(-iOrE7?@9%~cXihbk8?(_#~*|0|thC~mAFLb3L?%#6J=f>CL^sFS@ z#|2#YjL2FMB?2uw2%Z*LjnxLs{qLaO2B3Q5ZgRMdR`om{!JFh#9pZ*!4<{ePbEIewwRe{A) z2%OFpJ~E4e0NKGn4S5y)d%&FqU~Eq`N){rY_xB{d3a<7T6{9KRbPQdOLJ~s8QWBVv zaK7m9+=ibm-$H{`Ta##9YN8Y&A7TQ~z|A>0mhp5x!S5xU7QtFkD|N>+UKtNk$(+rd z=vTdPu9!p5+igUckMo;~5%9iTKs4BdZxPU8K*vT(wRaB$bP6H2ZpMxKZ$9w1@R{sy z?tgX2jaTW*QP`G$Gj>zvs1>I)R`#psUVZN71`MCr$I*$Ajvb4$YckDi{y3G5lQS`` zWI>MvQ*x7ccoqBpSkC0qtXX0MF19CRl)xilCP6Y0RU_bk4*f_9>*K50IrFLqEoB zSjbe%AAVYW5kLAwl{mk)n_E5x4}P&9r=cj0hB7D#<^(rvaWWVYczY7C@|lDEln##V zrF&KzZCpZ$um=T;f_W!ym3^n?up>+w_@e~DrzR9l#>U2M+}wuoCVpRKL{%q4g0#FF z&WdX3?$S6m_G`Uva~Q%3psgA&#;lR!(1*6h&upOu{ntvSmar{bY<3X=a#XfenI`Tx zpw2GKj#0b6vzT41^9CO#d8*2|Pp&3rsKQ0b6@Ia26`N<0ik2+(xsAr4_;1Ol-dl@m z%^ZszKI5StQH`ETk>K!T8dQnad#z~Z#i9c_ztUVpBPPf6eQk8IFjeNTXh_H*X}DLx z8+0%ggZM)EgtJfTf?l-_kzv&_6sAp``TgGiDmc8?o!#V$ zsTLYh5B;C#bhWkb@>Lk8Pv@?q{BZ@-0GNL|v^Ly2iX~r%ewbegcyDmUxluc<;T@m} zK_{pI1u@MUy~9tb?r0;@O8ha@L8qu>e{Jj2EN}-{t|#{Y^wi{EanliMJw$9GaR3J3 zVX$^i4c*#nGqbPDI}UumG=aSvZe16LCzb!oG4{nD3(L>{I5gnwnqMeO%J!^Qszt4Q zS^wM2ydWX3Zljq39?D7_oFFfM01g+v1cXu9)Ws`xX+|SWk|!Qq(7Nqc-?Pb6(pv`T z03g^|S+@mNd`kDMhBt$7*r07RQ4Jkz*sUy=x+b@DVhJpD9V;7uYVD+ZOY8Gov zpO$*j8Z|W;X8G;U(zV~$ELO|^^@N2WH)IFA?pKb$$?owbKoOcZNn|H^^!un0AU=tN zjs-Pmo825cnj~$cN^GiBJT7zO@I3nTbXNeGy?Xt|jU*hYM@NVY!yJ+SAFH0*aMRN) z<&X5!C7wltMN@{b^dvy(OYjarZ9)ChmeuRIxd-cf`lCJtznHLt{o!CWD-X|5-SQ!x zg&4k6KP=B~SATH02ewqZ-(Uz1PTXnicl+!#H*KfLoOg|TS-EP}yET%nkC-~{&*9D= z)G@1vNOy?>7I3EO>~1tkh;4)iCeuB*T{@P`qmKLFYP>b!TxtOD(0-7MT8L|!k%yK! z_PqTKjH!JhZ`u@jDbiV;bOBv{JL_bl64~l`G}x+H!yh`maAV|nx3N}C@6}M0D|Du; z*#8qH$R3oUBowz>a*+JFsJ^&D4xh7|a83IbrfG6gSxP5QI`?%!=OPBW+7Ahc1FgO& z&ZA>+kov&H3ttP*^X0KBNuM&~y{McmzP6XNZ^DQl z)^+QQpzXg9|Mmd!>~M$xZ5uas(Icpknk$P2cePSEX3Y%LokU29 zT7x$fhc`rO$1TueS%{g}zHs@PPTOqlGBkX$tVs6FL%E0jSwq14YDhC3inPFmNFxs3 z^DMdW=@Q1QT&Z#TCStIOs)8)Q_w8FXlMjWik}EGC-;4Kom*S$TFh0c>9i!C5 zB`C+^^zvktwUzX_fKBe>;{bZ0I$$Lcid)*UkieH30JV?w00V%79~uQNpuCqdJBxmh ze+2R2FBc&$vZ+fmYJc1^;B!`=e$)=*u0>iHP|+yd7d7=owrw^I#X*CO@sJVSxqrX+ zy#xx}D7;YrS>l|mfygVa3l+logA;WcSQtKSHj-dZ&F7$rbN(s^^ET^-4Q7|2D!A_E zDMDwI5coP_mjW7-3t(M2Mt^T^Ar2=llG!b$Zph6&>%r^kTEJqoTFoW#+OFL!g9Gz< z%YiqoF3oiizIN@}CX7Z(k2-xEd7=ft47m08_B@f+4INQkb46 zGL1KeT)Ucc*LjCYIllUASLhtHmVe|!IwZcO=R`S}6Ro?*qa>qGmhfZT&8m$eb+@-2 z2E(wqWg`YlfjNeQ&Wu1RSU*GWbKE8@;5modLU}aK4zle92-xWQm9g2b!N26gql*;ztbu0hCko zT>!%1E8>wuh-xOwwq2Gco66EYHaTHOTzV*q34^eJ6Fv72bj_ER1lPIKU=kw=0ch&W z%%!n#QUn@lS!856+!tiBy1(^I(e87mrh?nHJxlOwvO)`7wAmV3hM@59fx1|<(uoEI z5{-&Kk2Fl!eQUzL(A&B&*cy$Ic9GkJ*zZp%TQD0aJ)pldr_jSX)2itdp<;20?*v}h z{_v2gwG5q8Lt9Wi68RQ_b5~~g6z2N9=>&_m0cYtq6SaPV*3C6Tlt zsyCo820=fNz19nAxSH!J$IPiRV`b{GT|$iI$Y_<`jz@S=q$XgXvu32;9=v-9@Dg z_RsWOZGHVP(sBn2YLur})z3ahq2K@mEPj@tpZWX2p7F@PrleJ)YmxlIikd<^*EgZjEg+CK~d&3x}Ov`EAi>px2*S(rgZRE_f! zXmngYT%cGha&2D50D?E$TOLR!KZWD`M=#8G9$xkt3TvRKvoxx zj{Cr%GY&`q3kNl))X=_|V|YrJr#o*X!q7|Hri)9~2Zr_^eR({me?tqM72)#n=N$Bo zmOGTdeB6#c-cF@P1DD<342tLkx)I0K6Di-NVxFn3Y52HBLT9Lio?F=b)Vhlz9;fAv2^?MJ0oG*PCT$i=ic~GBd@A8W8xC?)fo;$9d z7LZhhgDTL1)t!)R`;^&MKYIw3B7w+=W@f`J{`M*V<#5o6^>R?&E4{~$Juv`eEScnFH6l+zu-|!Obo3KM8=2K}~_hqX17c`p0 z5R>2sy&zDY&DJ*gz1xAq?axwDRwn&2Qm(gT8cT0&{F858|EsCZI`reJs!rs$IU~R^ ze;bMiFMc}@D}aY6i*~*hf8oB|`&4yf(qpK6!R$m~x0WM#g=h1ia&eiTXvE9}r%kxH za*%WubxAtaJ>W((3cw>aUTDrt7(uKge8^rL$|4elsr(8kUyyd~VDH7#;w;DW_d~AW z#IV1;aNb%LA_w@(7SDX)Dz(VsM5NfaZvA>c1Z)nHL;+E5w%&d+!b&swbj>u*v-U&F z&4q7CV_m=AL_hc9vs=|`3q3rN4GJ0rfW9*85HfgQ8hY@k004oTP+W?_3hoDhA>uH>v^*coj3I8to~y|7p9U}~buid!8g*^BwYX}-51+;R0s6IHL%`XR$V{&@ehAxnW4wBbfQXiJnjl+NI6b1Yc%8YwSYi6W$`_u!qo)c{`T6j!sUbL#Ifd z&rso*|GOb>2>YEfIiR0Q$BKg6ylfh-dtbvMHxBGpalq7r7fL78NAZ?bAh@2!ukwW( zh?Be*Qc>NjGV3C4XB1kcUaqtB+>Z!-;`r4e-Llvh%n|HM&H^L#;p2sz!F(1g$`AMr zCla^>+ycI!KA&yEn94h#f$BtLWZE`~p8HcBNL3V?hjPS$^JL6kLKS0SN-hegvninA zvcrz&2;6bXzIid7az#I32e4y351eKYg$AlJHCCsnKM8i*s91-0E{asLb z?&JH6K-^GOL#&K@&=6Z+^YKB@tJ^bJIHqa>&PlbqlRmu0)`$mE14(fAe#mW{Xcza` z6wjD-0bhTkMH-zrKF@5d>@K84NkiAq!3Qln@D$jm5FkoH3|<`pV48c7M15btCCqC? zdEm<;JH1sWlrdYvxTMdEQa*!pPMHi~VCDO&51MEuYF3a1Xa{JVBOxK-sQX)iJ-8M$ zB9&v#0XQogwLXj2^i@`Nc2jcY#91*yYQp^pxf*i%Jp9!yjpfj_`9j0Z1!acO*s#+!@t}vex*bau*nJ$6BkgTjfneSC3AyYl-q5R$7FT{-4@F3>Nz>PKwfh T?}Y~hDDP3#BdLdezw&