From b1eb833fb3fb11e38cadc6084140ab7a1ece7ec4 Mon Sep 17 00:00:00 2001 From: Kevin Leung Date: Mon, 9 Dec 2013 22:59:51 -0800 Subject: [PATCH 1/3] plugin for tracking unit compositions over a game --- sc2reader/engine/plugins/__init__.py | 1 + sc2reader/engine/plugins/composition.py | 96 ++++++++++++++++++ .../composition/composition.SC2Replay | Bin 0 -> 98635 bytes test_replays/test_all.py | 9 ++ 4 files changed, 106 insertions(+) create mode 100644 sc2reader/engine/plugins/composition.py create mode 100644 test_replays/composition/composition.SC2Replay diff --git a/sc2reader/engine/plugins/__init__.py b/sc2reader/engine/plugins/__init__.py index d506b69b..40cd12c8 100644 --- a/sc2reader/engine/plugins/__init__.py +++ b/sc2reader/engine/plugins/__init__.py @@ -5,3 +5,4 @@ from sc2reader.engine.plugins.selection import SelectionTracker from sc2reader.engine.plugins.context import ContextLoader from sc2reader.engine.plugins.gameheart import GameHeartNormalizer +from sc2reader.engine.plugins.composition import CompositionTracker diff --git a/sc2reader/engine/plugins/composition.py b/sc2reader/engine/plugins/composition.py new file mode 100644 index 00000000..2b2015bf --- /dev/null +++ b/sc2reader/engine/plugins/composition.py @@ -0,0 +1,96 @@ +from collections import Counter +from sc2reader.engine.events import PluginExit + + +class CompositionTracker(object): + """ + Generates lists of units a player has at that time + """ + name = 'CompositionTracker' + + # these pop up independently of units actually constructed + EXCLUDED_NAMES = set([ + 'ReaperPlaceholder', + 'Interceptor' + 'Locust', + 'LocustMP', + 'Broodling', + 'BroodlingEscort', # the guys that fly with the Brood Lord + ]) + + def __init__(self, interval=15, remove_on_death=True, normalize_names=True): + """ + interval defines how often we to extract compositions in seconds + remove_on_death determines if they still count after dying + normalize_names tries to fix up some awkward type names + """ + self.frame_interval = interval << 4 + self.remove_on_death = remove_on_death + self.normalize_names = normalize_names + + def handleEndGame(self, event, replay): + for player in replay.players: + unit_ranges = self.get_unit_ranges(player, replay.frames) + + player.compositions = [Counter() for i in range(replay.frames / self.frame_interval + 1)] + num_compositions = len(player.compositions) + + for name, start, end in unit_ranges: + # if you are born on the frame exactly, you count. else, round up + # if you die on the frame, you don't count. else, starting cutting it off + start_index = (start - 1) / self.frame_interval + 1 + end_index = ((end - 1) / self.frame_interval + 1) if self.remove_on_death else \ + num_compositions + for index in range(start_index, end_index): + player.compositions[index][name] += 1 + + def print_compositions(self, replay): + """ + for debugging + """ + for player in replay.players: + for i, composition in enumerate(player.compositions): + print i * self.frame_interval / 16 + print composition + for unit, count in composition.iteritems(): + print ' {}\t\t{}'.format(unit, count) + + def get_unit_ranges(self, player, frames): + """ + type history is usually just a single entry with the birthday, but sometimes it changes + break history up into ranges with distinct types and store those + the stuff about cur_ is trying to coalesce types when they just change the suffix + """ + unit_ranges = [] + for unit in player.units: + if unit.name.startswith('Beacon') or unit.name in self.EXCLUDED_NAMES or \ + unit.hallucinated: + continue + + intervals = unit.type_history.items() + cur_name = self.normalize_type(intervals[0][1]) + cur_start = intervals[0][0] + for interval in intervals[1:]: + new_name = self.normalize_type(interval[1]) + if new_name != cur_name: + unit_ranges.append((cur_name, cur_start, interval[0])) + cur_name = new_name + cur_start = interval[0] + + unit_ranges.append((cur_name, cur_start, unit.died_at or frames)) + return unit_ranges + + def normalize_type(self, cur_type): + """ + remove spurious type changes + """ + name = cur_type.name + + if not self.normalize_names: + return name + + for suffix in ('Flying', 'Lowered', 'Burrowed', 'Assault', 'Sieged', 'Uprooted'): + if name.endswith(suffix): + name = name[:-len(suffix)] + return name + diff --git a/test_replays/composition/composition.SC2Replay b/test_replays/composition/composition.SC2Replay new file mode 100644 index 0000000000000000000000000000000000000000..b20b02e338a231f7a7b61b24ee5b2d217f164024 GIT binary patch literal 98635 zcmeEtWl)_@v*!U0a&UKdcL?t80fM_9+}+*X-JKBJ9fAaR4J5cb1mFDcy>;JPyH)#r zYu|o8^hnQd=IN^Go|@@aRQXH*fCK;lKmb7CFN1~yKr*Vi8asDn>*SX zdl9g)K|&(}K#-6iAP@wA0inWyA`_wDK|5hkKoAfH^tI_9lz-E|HSli@{6C}tMU~I^ zvwzns?*{>Z0zdA}Q6 zNJMpWXJ=!3n14Fop&&twKu{ng3Xm;h@deDWDo!q1c?rW00I7irqs352LC7W zKW8N~Hy79c1NpA>5fTWAtm5q8>fqw?-`D^kC=>$b?==4b4*B2Uz< z+cSa4kN{Lj06HW9^RE^VAyr)1?Ti5c$uD+$SWumlvl<%Q2o8{b?LpvYyr?cy&4xy- zVs$Ux`v(#)y3kM!Y&ryr?SDP z$<*nwBma^N5EaEQ%eZSc6IrC!;E?H43udCXLSumdKD8%3T(vmzMLVip?)fD3}d2f+{m0mLA{ZvD<6&}fV9O(!y?)-r<} zRZPcF$6^vS?8*r!-H7I z*-h+V0zoO982G?`#9$Mveh6-*^&wG{1U~gV<=Jp=id(i zMOIWEh{Wlgpz?Pjr2q2AP>bkgvPW6$#w9XyC*W)d+-&2j6u4m{3`nbCqgf1bI3&(~ zNN~AACRwPNQFx{Tg(Bwy#ECUmooRf(H^NoXu-_6eN>3F|OErrDq947pFbbEof9xbO z=C>L5H+_6oUZ#HE<{F9SZ0t>dIzW1XW}s zS*Qh_SXSIm3$w~YtF|Ag^bM7S2dP}kiPlz-Kxq$cZCZ(hzeHdJC7I$KnkA%tEYitC(A0Dajq*;^D(`Gpka zhs}JL9*rrdSOU57&bvzz1RM>)6anO$2&_`Mh?Bx%E#!zo-BlCafY?s33bPmhn~c;Y zzXdjlm2xmti#jk{dq!v1bF_QGci;12sAO|?U1f~4QgyHGJ${pno+XVRlT9LRq+6g_ z%#Fm}JWXYP)J?Od(PrAiXpFGFKT95lOG|B}W+_Y~idhDj6bN6f}j7yLaY-K_$ zAfXB!gc)w@=Z;2ZsA1O-HFC`iiPNUcm%(LqU!f);9jwdIWYB_w?kEJ@2mCbNJ+;ov zyoxqflgEvddgNqFa6siM?-D%f?$G!=6Wv$w_!C_#@4>JNC_bFe znlZ%f!eJrrFTZ9;7bEp$?Z#U6KA56m2-gzs@+&-nPiEgCq>+AWLH6TN|AO~dK_7lf z5jLVuM17s+>cj6xiYm zsBsok<)X=A7F>H!s)d1I;^7DbqX^4=Ib`ZQ%}n1Wm+g^-{>Rp4o6yt&AbJ0@wg2z5 zLtX%Q2EacLzzZ5e^$Yk29&W>vSZw_CdsOaVE<;1d@m z{yoRc&T?8=nORvul!zorC<3J7&{EI@%IDbBZc=6xDc1$5=M@&OX{y52U$ZMR%fZoh zl@*N@Nk?=I%A7f5)!z9FvVtYDu@xnX%4&*Se@*LP(TM9{PgxMfGiG!dIRjMaT)zn0t!kmmi z!{ofp-&@SE6$ilnqr%>FTH$X!KMP#nF%=O;)1dPd`M((1E|}aLXKL z%Vi^TH(D!~;Knq1!)f7>DiOaS$0-CDTg~QG%n|ePY7NxOjA^u$l@i zQJI?vw}1TD@myedF#CybcpZtgH_oUakGqykBV}=sWMA6tEbc@a>>|pdJTOink{-ka zjaw#rXKO1-mE@ZJEzMZsSi9c@`mh1v>8D94TV9*!;tAhI?@UG^VR)DY>0uX1L4-SF zF`tAUEoB|;_w#AVaZ;HWEjzoB{rQy#Z9Y=EOq$sRY$q%hQBie#@i;5CtmAP^oD1>w zY-j!}?jb0P2L&Zc6Uihz7#ds&lTbjgsW`6WNT`e`D!wUNKUJ$-Q^(|}a@f+cNRtLM zF9SKGEhZhBF)faj)e9CSy6P`ulf4723Iy}JM6qJ)GP zxjKG~$am`5VKz1-I8$Krx7O>;tlTBdL^PvM5#pAZLyul;rI4c58BKSkbKI zUEB6WB*HjEEj=L7IR+aTPk9pLc)^<8*w$5pelAh?+2@9m{hk6_pc}+k2-B;Bgl$KP zJ8wkhE6xE{q)9aiy-XQ4QMYnT9~QTQ8oXm(BfU{FPwEH#NjckxM+@Rb*!(RO`S5nJ z_3H<{k}o>Mw_;Jf-On*L6`fX5pwn_vaPiVGwh=ZHdB48m))hw?9sDoAaw3KL~@2?!+RJOyC9X>Z)wn;J7AnR6-kka-l zO@eL{y;)8+Ua@JCnw)sVK#g+o8d@6<5EW@XqXchvTaO0LKr*1sc(cI>G zF2?}5G3P|@$6ZT%-2(M#mc+BCtSw1v7fA<h0mQqXvGUnX)KsveTI5v=*$1 z^vAJZX=-qLBzUX`?=6hWdmp@qEXSlbSk&@>TKwmsr9b zJi4zQQ|8*%#XVK-@U#7j6Lao0e`<9fGdL$Py(ZK&I+AP})KggaiX&?^f~C*bCABX^ z^<5151O(V_t2(|Q^QOBv)gi)9gw+#ke9J(kfFdvz`nBF8x<{Ow?r4{^s;apf9orLK zy=!}jiIqQ~eo?YV8!$Rv|^T8QQTqxuW(-R#7(MoRTVuuWh=;hyc)AkD`{JISg zzV({oL?Ng?*`@NrTsA=xt%YgoN91s-`oLcvyDM~cW!VVn(&#y=mTWxjvq?+6Ud-Z* zeqrW!TY6rO@AGWAUi29w({CBI~`bi4$F6Bqcg22PHknD!@?S+ZnYMEB)CtuG1&$Xd6Pi#VS#m zL}?1e610W~eS=4BuVTr-pW%oK=nSfd&8X6sNl_b$jelwwKzI;A5ak%bnfB3>Uzd+g zo4QAhY?MQUZr`)>{P24TRujaQ_(a*sbRP1CI7K@6Eh6XT0rYCwTavz3M`)qKd4`D{cNS%spzec5Dq;3J^pH+ zE%ac*QplD(2wxHIZ(El7a)kVyUiK${UP?-rFqa7h)h<=8+>AgBX|l$11*@X!VyWIxlAQSxmgX?B9wMaK*7geOVx!0l!Tw&FZVIsI7U z%6e_dgHIr1`D0`oG7MlSY953>%tk{R+OV+)eqLNKQ|tTRh%a~#Md_V^W^oyd$D2lqP+2!wfpOep9(os~2* z&Wq~5d+2LTqQb{GY(Zv`mR6!e#AZNZ#m@n$1qbB7{5d0%AD5_$3X6(QSua~|R2of2 zxGY`jIjH!@7aiq*EbxcOg(DvKg+%brle2Tn&FW3S^3TkpO1l0Ko!m=z8aU_-ZNj^( z!u~5nONqG&Oh7QYqiiIM+$^x|3F`YTS^nq{c%?2O;N<%0{dA}1Xr-%_w4PWym2nUo z-7=A`Sc2e)$nKRAZI`We!Gr*^RvuTsVm&<#rN{h46|uF?;lQG1AUarT=d?jK~!seVh>x=2$|jEqnOilou~R>)F#S~vxgVtF{1Ay&?( zVv-&R-|;u4nBC}-tCv4rj6B{?W61k1v6m^p7+#j<%1aX1i_!3e&^Vr|{z~Zci{(S! zrHzu35z_#r_nJQ|Z*u8x=|B17lxU=TW+9xio(rHQWW9iipGxgo(H!l{kUzZ-xDkL& zkJ`!lqR#x9ESqO9+WnC*>5(|-zgTJ~JU<_Eu}Dqt;}iWnoldW4OnBv>AbUF6b)3kp zV+ltJd&-XXA=W`vq;aL%8&_sd7O#+mbmabx&4d47*fBQRAf2XfRtji0nyel8IQD+0 z;Q-0*tuS~H$rl>g2BCBg-c!dBNO#V!AA{oY7PY?|UbnZ@rQX(a{j|GC$ZfxL?`2FT za^r;7<)O?O73r`PSrPq|B+mcC+I8{qz(Fxkmbbv!Pv`Cqv5s;K|D(VJB9jtp8!9CG z@N8sZ^*c^=y#C?o`tC*q;{zi9odU#39HHhyPYW}t!DP^H0RHXX{)Y(9b zY$r4>Itd9uNN10-OrUl7;LnecJ@R4J`nVnKtH~kWq$a;D^c>w>1l_T%{rdWPC-oeW zq1d|yWJYxYEcp-8U$UnjsF+3+R7OXxP)!P$YeUv6B@$xyGD=AIghfGv>(>g+iEWFY z=vKJs*fOsfrfW&gJHI9o?iE$x$KM4uB;9KN%Ae$U(+txIw>i1tdCHROzC?O!%XsdI zuxUE8$|RWL(|D+_Jt$hXP(9|aA}5bQRZVE*W1%C1;(sLoO37`P27Mh^`}5Jq`Mbhx zxTrEOZ{_IAInoWYY#26vcQ{glQY@h;8(xEt!yQ6dWq0#Py0Kt_Glet!tZsxg?dvB&x-C2n0B8VW8n2ZcmFzp* zBUPF2h;>X-3F$!>ZqY;CF{;6^27MoF2{chaRufj-NT9m1t~C(By8uVKx!{G%HcESU zL`rZ0rgMGgD9Jgy+z?{mdpxr9$gj=tud9ZW^K4V3w%}FT%h++s8aPohzx}=E`IKg*MMmqPssaC&cX3g2+kXu-;wGI-NwlI1ZP>wah-A3Hh?Z#dE& z&0RZ%MCd#Ec;lTnD-h~S!d;bad1AW%xcT%ktbs;^X=#Ojj6DG3a;Z?C=cGav!3rj7 z`Ev=6LA_6CMmQ1+8kEFx*c!#0#4@Q*O>oIG5e4MF5|m|i+H$~B5i%cRiL$y0ZNs8I zQAUbEnqk%a5T-MPo%G|v`$g!fUH#&CB&;cT*+L5;7zQuue~LONrfq1i1-p6CA+TrG zxoLIl@;r^ye3s<<%yZA! z)*_b%3Y2e8Gu^(z3~?Ich#Z7kCgUp18LHJa-h3q~7_Y(9kNe+wt&^$k1y#APcdWshGnn~Mu@)G7C#V!rFZU)QJkPt^L;Z&#pKaT4ZTF$OSOt5yN( zkiN+Wnjw4=%2(CdFgpLu$O1jrv^Mrq$xc$RS!wMD7YDDi$acr8ExB<_Xt~P&%yPW% zNAj!>Rj(%@ik2JC%0P&HrE2d=kCM?e&N#>B;jZ>AQHOKGU>_rBK#{`3A)Gvom5V>d zmua?QGB;A&xkQ4F!!v$pmd7%G3HirvAW}4EVXQzbdU9z~=@(D+>o?n6{51CThy;>R zx88~yvtEyL*X*WAfJ3i=VK+{7&IGH(MRh>VOPhQDWCzZv9S#>YcWbyp7GE=I<$h?E zHl^#r_Zb!LP1T+1){)|KI$^{WrvonH`waM6f?|7ZRB~pNIznZ*gIM7XcO93Y)p6ED z2{F1n5r^?D+EiI53Ua(PkULC%B4}W(a@oQ}yuJjBUVEMd`*xSJ$gwRAkN)BScHVrDq zVRVeSGb``0J?Uy&ca*k>=8cWjKA;b5eHeq#1Q-A{vIKn&Wfrg+Hv?>e4vnl8g_j3c zL=R~eZY2h*7;rRISCWDBG{^1UTmGz^*B`xLJ1naj8P7fpX~xx;CaBkI6&#yt_1C}$?ly@1dBN}orv)SA{^|QvjKkhtA#2v zp31j;TMJ{Ykt76iQ7T$_87dkY%C*c7ee}S5fJW)J%YD0^GVb` z-scGARn$xgK;L9mg*JKw$_myJYEF}L_#9ahShD34&{y!m%0aL$RiArSZh~j2ZNxGs z&{LY^!0cq!XwBSgB0OnHLfM>Wz>n6R9p>mY$T}_hGbf&=MO5df@;*8NBO`ToF{Rpr zebF+Vl6{BokXTmQun!-3^i5=f5`9O2hXUZZ37K zvA2b^41VcZHtM~ZSu7>J3hr*|Z&`Sp#dbBA{^>!`E88;beq)kqU8xH4fPK|4-Xm<# zm9G!v8fNK!W6`hs_S}RjXtia2c(u`Ad^MnODy$n$f-P>GrPAiX#Jd{N%Knpq;YF_J zi&jO-qaJv_{+#D2A|M~0ReMQavJ2m(fIrVJ?I$H*VL|?O@$MD*k|OBP8<$hU@P5;f zA<5-yK*Q66D=`9!PP?WDATrQCpcWW!w<1`U5xv_m5L-I4xw(6D^K-PO68>$&^eq~! zT>g+&G#)CbJoto`F1a+6r`A6uRuicm+H)1?1Cwf#`R*3*$)qU`)8F2Qj5nrRE#P>I z;hR~5kGvsYyJT(s&H^0Go{kJz5HdD2a5rj?jQ7P6P2zZa>J}KBsJbMBX6@!4{1zr#=B^}ivHo2cKHcMHUTLuKbsZus*)dpm#mlzn!xx_HbSEF`TSj;De#dFb<6%KoA-(*3T-8j& zVG~=pZF_Nndh2}1In6WZAfMx*ypp>s>3VFbYILeZ`p1Nf!4d9Pb-q_S9=;1CqGI_1 zfdV)dcR9R)nec6^^M}jk^kAbLCt#mV!pKvoRG1^_cFKyO3P+Qy>+00Ocm9QFRh&ic zRJ**&j`{UX216Q`y{dhx_2WtK!n6=yzE*b8X8j9OgJ$%$&iwXMqXY=jB={4*O>i0Q zbsMU59}3E+tAenB%SnhK+VvFi6GY`};2*v`jCwm8!bqqaeznH%+AA%^CyqYkE~fM& z|MaiI(p-RLHcxRzM23#DQN&5}!j>~#wJ;#gneKP6kpFXYATgAf9(JOeLXS3sA~Lnl zn{z((fgKe|sSk|RLtOI)cmB=?j04|U??kZ-3lQG^Bjc^9m1^#*=~KqFzh>d6&kQ|b zdP~upE%NY1PT!T^5ix=W-!W68qKl{grf*E0H<7i=NMBjy81FWGGhs+XS_Z@6Lzi^5 z90%{Wo!lTM2X-V6Oip*g$A~=m1h_FQLEYz;`>*eq+QN_ic|7qGg)8PJ8khT^ANYN% zAIydOXkIcN{Ib0tNjKE>bpq~qAs-@#-mGfc&~ew^z`(feii1VJ ztTK?{jRYC*Z|7jbg+E;LAl=bbO-uX0PHFi?Rn*+tCZq!>`A>N{t|UJT7*bDv7bv+1 zJGeJINe8yci}HP_$SixtClf)%1ozb*!)5%soziOf(-pbkXth%?=XUFowYvK)A%|fo z-huA3=_v6 zY#hO77311@QBr~*I0izd+eop*b0)r-Co)~pN0EPEA^TN<0}VDdBz<{toYH(M(WuI8 z9&@<}b*duwj`+gJHl~$AkLn3E}p@etY~~JrY(L&FaVkh^7hOx#L=*0HMBSMBE&TIKUV8b z{b(wjcVhN%5KOB>TwDm5e~n?p?&CAHLUe1TCT!yg?V3kc_vPMR7X9Reo(?zGPsXPuvp_zVsQ& zWfX@5ib#8JP2k*u7rxvai|RqnL!J+epn6(tI!rHjr?4lsvYA^C-M|k}^w{8{$2RXN zTTrkvMOG%sptbE?@-@qlIhzlxTX)N4?fG=X1oRd06)Zd9Sb)~2z8okAdx#=8f$%Xo z({@XQ_C&jz+EPsK_l(e}TI9>hwY+kD9jOCB+^P$ zjh&_=kl(u@-=N8xhp@)R#;94Yu4o-O(-Hj1PIv7-^&DucBJf3-ZorRDSl<;pWeQHtl05|NK%6f-h z{^0Ux<$7x_&f-pJ4O@=fc=P5oS30&4Jx?w*vDeHE5JHf&AdV?4f5_7K*!1O3HUG#ZcBrU0X*@0^xWc2I>>XDj^TXjdGX$+Oo)*q6o96IwKil4@+SV=V}KRfnk(|S#xN?Z$jMH z`(p3j%LEQ7sxNtqMv-A&5r_+Q*aAfDYs{x-w>K>W^kI?~wu~H+hTe8g1mUAsbBAu8 zbixL(ag^jivWCA;JRfwz?L7#^g!g>9&F|xt#>_a~Mqlx8>04d;rENG~Qu0LMWFj5X zx&&*l(UMJLb-E?^6ec!J232;%`%-n1oEF4HMR-{|E-u=GXj4UyN>DKV2vqsu4t0CM z&a@+N%jXd=4}3|WuqD>&Vb}gT0DpbubhMwfHmo3=jkUhA3{qq4s4jIPEi)l303p+n~+t1qljO+gB=zuA&NHiZ%Xo{^4{!(V&9Ft(Fvp9BOB^i=H?6}7p|0E z7l3RO6k4tu4JT$%VrQA*lsvR$G6t^m78-C_sSsIH?8xJLSy{m^j$bF=@Ohuy)Yw)# zQPPy9BJwy9=``GpjN9n3n04i!eJqBB9wMoka4=*?sQ^~?qI?Pz8L-<|aMJxenS=HT zqh_Xl7g`rjEge+$NnYijcGcqU9oQY-l+>eHmyMKKz27M)ppo(DdLrgc@6=uMcYNH= zp$g0^!iuAbm7rnNa%>!ozM4~N@=Z&BhKaEzq`IBTX+Uu2D^GSck8lfBdb%utU{0iz z6AFC%B{4Yhi`USWds_T+`bKO=(rFKvW}vDx@9gW#VVO2;MPug%NjcU#Mu@wxnyWuJ z@K=ESvj9!TwbB_FvaegG7)`+FX?3OJk;1r|9(RYO5xiR0MGUp|t^*=UuqYxH)o{I} zuOIsoJoO@}n2k_%-QK-ZpxqgQX*-M~0T~K$d5Kx3_+`UF1b2o&>eZU+s8UtNrUqq* zVe4U~0QCI8_tEcMcr}|-RdSS;q>9jE2orMLhAROU*=B?CDG^1P=1PDXgTKSxvWu(T zz4@9qLWh^8$0w|YqNy{OL_FgQdSmBfeeyxnQVYdn<_`9XQ1x;cGy|j39r<-?Beq@= zx3P-pyxs4JKpy!8T*wE=x$D{A2m3JoC9G&FF(ofpWfV zPI<(|3~tk+Ve)jxZ(bzU2S1Wqb%bE}keCZ>jd528@EW!<7;(JCc-VI~o;uOoI^l6) zKFF%?S$h@C`%2XmUSyt;^sZ8QNki>wdzn5&aL}wrVlNUb*kTKaP+q(bs2jYF_o#i` zwa2yigVEbkQcSACES)t~w#k2lVG_eBm8SGH@moc?`o%9?^5e{{B&?$*N1PHHw0+fX zga++4y}*#F%u_>%79vb^)U=Nr1>i?uTS*d15|hl$_>BAh7;SKBYZ6R*NF=;TUcWg1 zfeR2P8)~W-Xs|@}!@>CM(UicuWm(_aM=FkHGD-UZ#!Od&K~&q)W!j7@y`r106Xw9G zp%QDUKb#3g`Kgv^^qiNclLBNLr2+o=A=XIU*{9fpPJU@Ae{gNu(-F<(?-5;eoZEk} ziEt%h=ol6-I2>SZykVJ9+&wFx;tH$NRNfQqAp!PwGYy;dfnvw&^~yjhXtbx>eYil` zz5#Gpr&i91WkuEm6!Io?&Zvw}H|6OiuVmfEJ}#ix&srQ=6be)(&aAO>tYLZqQ(-$k zbL~!P$}%yW^h|H{iz*tIL^zCDvbGM1BiH#Gu;dxXyaiu__P8k(BfL4beSeT z3i%4HF>}()sUszO>WE@$&xIpqV#@K$F#{!#DC*Pa%G<|3?R!{YHFOq==QCwgRo1EN zFJPUU{_s+_@0A~oKG8(3l86Em1MExMzuKofnKkWCRj1%)-}ZVuleOz=CJ?5)esMDi zsssyg3y3pFOo~=KgOn%DmdxsW@wjS_sBXVdL@<-j^SfCn;_tu`8gYCdW%n30>a^Lc zL)peqC9T!aUFW*1L>Xz8J6RMUs{|TBIWZmYG5z#YIccR&;vQLVKWqw!j@S;bSL-VY zM5r3|?bE<_Xg3C1JD`U5(21isE3iN<5XgRk+jS>*TxGcI_B}l^-(!MZ~t(vLFsgzs%p)7o~ltD{*&E-Ec-6wPGDle}UWnMN7EVHn5JNJ!lnGiGPNaA4tx4 zpejs$zsxbUinsQQw>LB`npziMRs?48QWwdV5yG#pAvjnCeDeVQ8M47_?4y?rxU3Q}*d!{89Rjztk#E}tsQ-SWmqd{=ClK}t14g9H*~|EXcz-Gze6+%+$0I$dI6pQH5w09Kc~Q$q!OZg-*+fJ}PjZe-$@oIV|MuW8qO%G)LXT6V{T* zRH`aN&u>eN5t^XQi>Ti5Db)U!vo!z#nJ{!*V>Gx@={~T8I5e+{Mq`(@z;aRjnc|n@ zhr!_o)J@=&{$90Y&|$&HDdVks9+R~Hz76r$?~j@#Sh}U5KmNQj_Q_Lynl|{-!W35& z^auWwniW041H&zU8ySuqu?1z+?ZkPVigVYG1-G*ML%zZvYxA~Vw zCB$BTT?3hL%n#$t4_b36D!e+|i>q&8o{8 zgj1bW`dX%1mm!06q80?L$eww9-a=;y2|&A*JmUFO)Pjl|Idnz15#L%o@Y&o_N3KnYA$3+ZbZsQtS?Hodz6mXNTR`gB93MARqg|@u~)Nd$rk*r7Pd= z*laB9@@{HccV6ho7@@(t|M3yiL7q!1gS*dA2k5!cRemi%rn77p;G#%U3jQBq(A%}k z830(Cfd6|8^xxi{o4D)WDEXmQA9KtHmgRe>VzSyBN&NVg!Wpp+4`ohin;baXIrbLWJl_*Dpih+DP){G% zec^v3a3G6tf1?f(oh1(Gc?6)es{lq9E^w)bjsS%2uqBCndl0i;29LzZ1MZH0$L%5q z3Ou$W>;281jsw8D1Bh&-Mf4**vH3`5{I$o!v06+nt018yd#GnS1E3(EZ134F@vf(&U;UHM!fN-1;?9>p5 z*=FKaFjXn*cxnsg3hUNf+}Vo4s@~QP>fSU-C;4j1pMRU+W-E^?V|@M%DmtzTFR>OR z+f!CkmH^T}A4hl(lE9qOyuiF{ubOS`c7XAsozU;+-Qgz&U1;l~f*hm(7_Y zm5l@wE9aF|lmfS)NWGwt1soo4MglIr;e(FGSu@E3l|Pp&ED3UP-dMvWi$Vah;XTX8 zPuQ(Ev$#X=I4hbXitw#1FxT0otBw=Z78cas)b5oP(}bl;-xMmUo>TDA&K1#~;LMSd z9n{wosLSUCsTXgo*@+W5=#DrQ@TElaOV@*VyVGU9@A&0m4cWXs-I{VHNG>_`A77-3 z`g2aK5(rcxa2rFz&j!ZnMgp{6=g5b!0lWP_Io>2J``nk?WAi^-I7o_;SHC~%XpMhj zS%fCehIHB?^-x{EZ%{{vB84I!r1fA$tK1za9HdQ#L6<%dWsPlVLm%p%-^%WB?t`%LUOZI2t3nqn5v* z(59H>up*toxfHfbDtO~dHIx@4k`hreS)0iMDoYX)l*@yic8p;eMJh|fF*+N>i{Z@E z<2TXgn1GIfyTs*G*Sx3-um15P*S#=t^0lr>M0cE9%Gh*P(1polEwB>$+Vx$9Y%?N@ zQVx~$0`gr6es$M&DOVjtUVw2LsG0K%w}8Iq-rZgOyL_y4`tzJDU+zJp zd6{WiS~!ECqil{MZumsKquXY$ja=r<_p$afgV|8*zqd9UMD=m9i7l<+Mz+rw((L|T z8n289p}Py2@zjigDT62~v8uM~_2&AX@dh#9Ma)58^0k;R+ysr6P5X|CBLlutd!T}w zUJq<4)!2+ZQEOEY0#Rjs85VjO!w3LzS!H?{w`_+* zcONSExZMRr$jRry-VC)<|S}+rNZpH(?Y#cq33I_HHsc*8lKF$x<`H0M^ zmCsb}DG}fmBUOg_6B|nq9E=UK;SbbNKC$c-Vk? zlRC7p`e&5Ppc6wOl2169PKw%hun4oA$d2p3$TDrb1$ZrFtl!}+{>@6aMNl#3NB3H{4Q~C$> zAu`Sl`_PMI{jyUBiuI*6Bg`0^dk^qWDdrUEbW@*AnDG{uU>Hog8}%OB17lhuW=dsV z1VZU|h%=091Bv5{Z!u(iRV$IU$%L=zPTsmMW+!B$nsRsOgtZYC{Z);q^XdhG(HQ!E z$N?9pG}%f@az`P)T&8uHu7i@^FGooFIy;igA?dtD_DI4+P-W@PfAE5DSZgm(S>%Fe zxYFSTb!4Y6jrkCBWXDo^MZQ3^0*VCN1*?e~OOM^?-cW9@`asE%N_1xn7?td_SmAZK zWB8UUtn(CrqmWlUa6tUfo%T7p`k{_Q*OAPEDZayIG6)z)UQ~_5ckABqi8vYC;^K7e<#InuAs+Uu97PtQA>cBMx+gX@efcey$6Wx_+tK^@#;%Kc_6zzo5t>a8S0q3@x;9+$*^GK(YbfI>Ek;gkX;n8cSpQH zUE{}Sxw!2&u4qxxaC>|E?sj(6UCS9}hK(C$yy<+iW3#RD^AW#6mZ*;|oK(G84q_o7>3k|(4is5FC=(z)%$N64zbUa{UnIgFViP!?lXy%^Pte`DUVg)>cRj zQTNXvHR?9M@Jal*FwqUKEZ@dud~iM(g?QR{?i}^IyFz6J=2xqscUG3KR7I|)8XPl}@%!az|)&IJ~`|*l_w{70JMS%#hoF(=x>lwWp zn((b{#c+;Kvww2=^>R{(M(r|3F13nXp2`6}RIz=}hddOqEK(d9?WOHTg4rpP= zz0V)K3!XnwA}_s>P9bq9?sfOGRutK@s^b4_^@k)H*DFQM;6lSb|9F6z=DucG;?9yL zSju05q4|8uHY#Z?0Ck-Cn@v2qZ!&*AH;4DdOjVDfR&o5%1`P+O(zy8^<4ZnV< zOnMc6Eaz?Zn4p1y--QS-LchHyrg`b}8LYLzj(39#6Bf_B9&`xsTQBbD+jx#t-6K=k zix8d8>*(63DLG4tPX+JUe@RM^@MOTI;GWL-GYFE$wR2Ytj?GmFDui6}1(gXN~4Nc;0Ug zEDe-HFW3CEcD^mZ6L?H6zadWNu@6}c6rK(|JPh4k3&nXp6Wx$E8~n&1~Fyf4gXC&9Drj+gh(~OcOCUZ=hGHtV$sUXrBu4Y;|E> zH>;VsX_1D9o5AZ%c;<0u1HT^)R_=VuCqidn>Nh3Ra4p;TYiFXV|0idYck++ykol$W z3%?X@;Yrh%qk9wJ-K%bS!6Nuw{=FSd~W(JI{Ub$@%j6 zI5<@&*k{Vx_Uv`ejY`LuOpUefqvGG3d5@y`uh8AqU!zsE1kje@cnPh}b&eI&y_Spa zON^|HXjj;D>leFT?X8;4<)*l8y8SYqxzAU|C8u*$6t|ecwU?b(Vu~_4Xtsv!Xhr<` zcbiOWgv-5i9hKX4GIMcsH>h(fQI!Y24o!DLRYTyTXu>BCkPtI z%*$eP@(lhh8id&j$6doE$#G310=Pp=t4g_MXpEL7vZmOddr%S*;DNN07?cD=L1M@c zfePDEfC#mytVYtLSz3b`6+smR6;x4{)D#L@ub$s4q^L-tP!E-S742FGu@VA`D2O64 zMO79Fw#J6ro!sKkk}%+qm{39m2AdN@h%3G3TkLG*~^&lqEw?Tves9ZGZjU)C8cu0qJ{;w+>EToMy@o+Fu1g>tg?h7 zx!4K@5J<2-t*@9wkaoxiNj2dlSqF&AQn3_jkCq`P6p;>V-9kv9PG(q!sb?c0;J}Ci z2pi8XqXktWDm;UAH9y_k&TYfzXPn}3*sl*l3ItQ;n&H&rwdW&u=1ix5fMkgp)}Gp_4%b`#DF=Q!Fh%Q?Ptgr_uW&F|uBs&Kh91CEV}vRqeo zB_nU4=zKLHx?&%RX(;r)owNbKKy$lZAX-Y&2dK9COqfBxcbiNuH?|9KaFQ&bLu&)? z&+M5^8=AQX@(v~$M+gE048rKzxLiEP!URYjtbsz7W-btS7&Jn%3KQxJqNr9ugxu7R!P z?>&C_8Y-*CE2hJWiWV9ddQ(lek? zH59bbs83Ubb}}_BBYc1Yxv#D)NbloYH`7)wjJ9vS8ddi`t7v9g^QRmmtt@vUnkeO6 z*WsPan4H)D~_#pw!InC2~4)bHUnz#*0 zc(K}Yu4cnV^et|R2Nt^PZB|uotFvg)ei=<&Gg>sdk)b!**CX*fD5iWTqBN}-&8uwt zDMqVy&oX0H%Ok@ zTWxD!8TQ+RpRZFivsKJnGR5vh!iK@Hp!92W&z}~~sWlohp6hd!dM{-QhMHF#U34xR z6_ebvVuG}4;X1zXyE51yEj%r&Q?g}gG0B(d##?obm`^lx&kHoIETapmn%q!U>|Fd^ ztM+l8UjiHFjeGgl&FvOlo(|g7IB^jc^l%O^49L%5-vU5TH7qmOQ?kl(rc%n5!8~rh ztr@gH@Zq^gv^0iOmZ|G900)4@5>fn+1A5Ks`54ih`Dx@y_p^o!#VEEr+4Zo~r`FqR zb+v}0wjhalq-anrYn)`O!%d+pXjzu6x=tq925A7wz!|gcT^)?Gb!kxRxVO1{hihB+ z3n;@PyhiOxV8k@s8K^cT2nnQ6(J+{36glspO{Yx)H5Z1FRw#s42u4VZAW0C51`&Xg zDnLde5(@z&07xK~q)CM#Mf&8&2ob-u^RbwKFT@A{Kx6~_;{RPnIk{Iha<78#3NVI1 zE(|p-fnyU3?l3~82n<6~`|ez~s?bc7fYO9j8mb2JEP-YK4N*#iW(om}6&eT)){Pk% zs7VVoH60i>Xpq!llTwsPqNre&*bu5=V*<)HLR%4$j2OjbG_=7ag#`mszslt}1;zcp z24-b}Z}Bpy%+yz=&qdwxKva3>2ULMA@5kzH|;F4f6$8?y?Fn27@7tvk3$tq93lg0lVU&$-ls zU_~%2$OpSYwAdTU)5vEBNvH$)a^2U|(jJkBNQj_}A7j7(P_L*`;e8Knwk#TuL=8&h z&)+*6#|;hQF-Dmr?>2^LS%_!^3!rpy!=I$2)(0BjbS)ie_E;c*8J zl#96Gx(+%!;6+$XPoT9m(H}XsTJLb_)gokZv z(gGbe@@-wW>Nq#8blt28i;QupFP&9dEo*A7Kpqe6hyod_wLc4Mct$Y-JA=(G^-jy zv|^gk@UauvBPzsR=s{3mFCB?RrC%fxSJsjjF2N+X^pM*s%BU!$k(^9IIp!fY2_z6{ zjQ}Egn5rC@q8%4m#?-}=uYtcr84Guv%H77?I5_@;`IP#o4gQr;tiHCgx?qGkPa3>a9tc1;#^vXwdYHTU z6Wx_@oFSl`H15jYYnbD?RAI=;kT8Xd$w9I}>7X2j2<@Q_5X%wlea3C=r=jC=`K}4T z+CF)9m=!_HRRb@&AK)eSHNt za4h~8@L!=rriZsr`I3G2EjXfrsIuGi49C`_zSG_MZ4+OwnVpqA6f;RRN#fyK*cZ?7 zPmK*+)x-epxAxw#lgyry8TY$(J7#2E9Y;eFltT7!_OD%&ledsK0l(8+7#adXDtRd_ zbrVZq<{kDHsfBtv*d(JuUT9aVf*rn2;SEA}Ci|FWZ5n+$<=WhY-MAJFZ{?st^8I(U z>%KYKMa-aBW4As}kc|fJW4`+t{l@O^ENUK*a292z3kqranD2oeke`16><5i#ks;ItgFjdo(+AFAkn9VdQu2`h6c+_jY8N zG*WLnO4-(+Fo(_6q;?^@jc1{e(FMjybc;khQv;nmp4;*t)SRD{YHZK9PVdrlZh!pS z)G+=AY34y^Ai+cUl6h{&ZhZycduOv}6zrL^pFgZMr#$ zPhs>%1K0QfF(wBC-MKGkHOkTwCfC?@S%=*Y zV*$#$+-yF-qx$7*AEB_3)A|v^^dF=jn;+7LPShq<7eNj{-bhsyd2q$*4GDnAkd>4< znyW_oBvnK*o2pS%CSLE277_{R5|US^}%paTYcvHP6_(IEg^%6gWo|TLTOP|UZ1Jxe)g{%1@Zh+2aP{V zVR)p$kha6H>;WTe-_^(v10o_9Md=dxKW8>mcIVVQrvUzwg#sICVu}D|mY8Tj;|Rxq zsDwgMbx_7as+HQ91gWKZL=jMdyXh72x|^B0h?PP_ zUaIn?P*o;LM&gQ!yxc=KyqGd*OsRG-E<uZs8e%A*3j1)hy0KIvZ~Kb8py*)B#{J-LTU3 zrIjrM+KW`>I;1Fx6oaHA6-3l$f*S8l2ZbrV;JMcfLiqjshVfiULxD7vw^hk1nWF$N~_d({>%2sWyWQ;BL- z?{sKhsvt!QX*4Lon7vx&UBuC05Roce8M~P-VkHGPqN&79T}%Y6Hc*=a;oaT=nGsNh zT)74;*Y9^k%uVjBSi-BKREKzC;#E)Ae>MG1QJuzc?Sx)gxR7tZtX3xqS=?GHm$mM54GR`3$A?0k?vYHGa3CK2)kr|dNSS#+2$Ev@ zu>!!4OpwX|yRy-%5-^81WMn11hB@QQeE8A^aQ+B!=dt^z`ajz$AmqKWLzFl05(ntI z^ikkN$+5JANF$@wrgi-+F^jn?TWo1fw_uNT@cN1{lQgohhUv%XbdfGJ0Q(kc0l` zer7}&8;^MqZkemGEHV32d9E?U`x{BIBk0nYkD&#Gp)V|x?@M}*LKF@RA=5M%D2Z!{ zRF@7;*CD`ra+`GQhKBYe>*~6E>DYszwfq&gkQpoJdq%8a?j*)V0CquopB`~WF}?DE z>cJz2uIY>ouAU{6Fxbr|fLA?FUOjm%2_TW|-IzVIMS?*?UTio7j~VmC&iFwze7R&Y z_FhKh>6=z$V1^jY1PgNmIR;S(t2D_Cw2gyu#K;hYgd9ME92hlDzin!1*}+YXCe+r8 z6?RHv%+_zD62T;oN7f*d-9ztw>~=nStP$fGI7@lTA=)B1LLk2yyhfgP9BE$nIw)!~ z(quzk#h64Qt%+$xmWX#3u+1Dg>)SoDZx^QTMKZix7`Yfd`g?GJa0w&oh|e@4-J8_h zi3i-;9)Pgm^o~A4xNuTQCJu(g>y-M(zS8wH?Kp-AyHZs(DhVU0g7zpLi4R0J?6NYA zkv8GqID$^p+UwxNO0AAd5kPifhKDA}FW;>3kaPF%0|pjBgW!FaC>`dn)=PrQg2N-0 zyEwVd^xWE$q3Bjtf|H));O65yh&ymwvu$_|-HbW0NsI9-m1!)4Ig2)C}eGK$FPKt84f zz-MuyH6pZEHw2ZzjeM^_ZMocz*`Y*wEwqksGhubD&g20olwXSTF-BUou6&DvIpqKy z3X};QbLsB`F8m*!c0^~q0Us=P zlw;VYLar!uGH143^vH9og2w{#h$9jw=xO{UC0P<}mPvzbE+lUUOezK9Ad8u@ArSMS z?GeAi|2Pth%Mu!Zy$X%W!4eBf!deRP5EtOzLk2!x${`Vk7-aP$c9BL0%ISbY3+C;; zj5%l^p>l*;`E=FV;F<`6ipZms0I?P?E!v5KXo85Q*eHOKChwc^-CF#m`y7Tz7y*-_ z0HBB<0$Cku^As|>r8?6DvM0@an(5|;se@sWwXsW^Ly7hIs3P1xdBkra5KALN4H&ji zrXId`5G#8bmOa(6SHp2Y__R+r4Wa^9rRS=OsgB+u#FT>F844uXp>$8YfTHUyhXaV;^gW$Qq-;y3BN>^`_k8{>hiu8vNMyI1z=(aD{ z3o}}(m7g8ZBX^D6#UZuOBzHYp7f3wY!h**y#pmtI0{5N+q(_3;q8dkC<$fzm*X}0B zl3EbkM5K}_Y__w8iP^Cn7*5OBnnn(WNQ1o(P8;S2$F6w@lpe@?7!rh-jb7COoswqw zLML@UThl)hgRxzbEqrnB@|~$)Uk>vd3byhX!T}zAJUpU#@5#o4PX3=RR5u(F3Db+r zG__mfRy4fA zV>rvIwlhR2A+zAo<<;eNRJh>>@@?;|+Fk(rCl_{pAIL>A>2z`%B~G*q6n1}O=2wcq zLWv4IFh3+HVE@?hENzvRWP2q!Bp3_{)9&a```-fh9=wSEKN=fY`;j}}M0F=aQ}(9MpWO)sXh`&9tiI&Un z8@14NG=dcj*qFR>1_1h0j6v}D{1@)x_o1Dx|6i4Y5DFq!+P^EVuGG=E9FAFQ|3*-l zA~9rQ#S~FS2(Va@Sr{o5ip3F9Dlt(+Rba71NQ(hu7^UAtfzS$F?A}6HDVGd zsECY4B8sB1MTm%ipdT6pKE`oQz?(5uJ7}^}Ab;sXXKmYK5ld6CN-D*BOP?kuUuR#F z3rmn0l2h590h97OX?Biqp!-V@t)`j0!$L)kgK98;4tnW_xZ8g_pCBquNGpCV4zG6& z@4}a*!6#BU9|JP43Z#`C*w#EVEQi(sy+O5m=~bC zc{T*~mow#WKRwV5YOw7dUkhHSN4=e=-XVBDA|J~?6#nvJ^QD} zY}m0L>Q#|6JB=+W0|95_ol3`Rh$P71q^s0)UyWH4L#??+8TgZ=}suBD$rL8yTz9t=rDVqT()S*@I%f#oUcrK z&frY}!QxVYWwe1PBjye#m%pTlONkibQ08W|E-9ts#rPz5iL%qcRCiSOvV;34$P zdS$=TayHW?$^ADMA$uMz9DORmk<^ZQ?B^wGqxF2;0T_PZ!8j@g?5`xqM|$;$`KTa~ zM=ppzKT5#pMI7Ph8;km{joIRUmDP{ZZVUmqsBr@k-fKf_jxgK#q-t`7XylZobc0;H zlneQ!^Y@Ejb>C6A;53YuM+kgiGRWJiw(nJ~{d;Qsv=mwL_sR5B>s-1(;gqLZ@}Ym(fC!tXoYtCVNZ3p!SxQ0JFRm= zsUFwC-feZB$KEJHn$rjly=!JN;Cn@O*0V}TBEaS#z{()ab$ZINK1aLv*PEP%d1&tv zSwfAFMZVp9_{N*@-Vqy$8=?D3w2|ww$~nFMaX*lsrf_kEa(s)O^Re2M8wzNV%{G?? zr8f+m%RUgYHn?bn7t%KIEP6=FBQIGI$q!Ez7goE_*^#PNktOQ_2z@4EmazhXM0`F` z@bx}dpQ0yk8Smd7{e9m*h4f`xK9bZE9>_Xl(7nL8G1O zH~IA9^P)+9g^sET^y>gZ=N%t=`>6>7TB_tnG(}NiHbZ&&@&pN-sK zxLLR++*Lbxa@{eE26-Y6nqHhP@`S_W@!v(m!SCDS13|7qHG-a+FNqf-gr%TLiR6d0 z4z=yly}4)O%M>)@j%&u1d&FdkbnR$!rmeC&=HahQQfm~kSX(CZV>PfF9F5I2@SU{g z#+04otZri{;V@20K5>qu9cVt;eC{__QZJFWZLWKGObgQugYzRAM*kV?W9V-_@&=oi zT>Yb@gu?R=s2J#P$fVf#WQ?ku!Q0Q6cDs`aaPFEX#qaLofd^5eQWn~vCBJP_B8xF+vs z(br29s9qhy;_H5K z?u_AHC1iPE$pAsO1tAGdecMNfG7ov6ol_3i_dx!07~sbThg%+pSsrgVA;`fmUW0GC zK4;bav*D+@9*n#FS!fpkG?54w7~b{Xzj0)F*V4t~5x3o|aTLwX>0DTKGr_?+eTkB* zOB~?FqBypRSC@FH(Q|%DDM{1c!Wp#E=amPW+77ipKw)}5LfQ|4xVkiZLB8%W3ZX;u zqEuUCQ+n)d&brad=yaEdvxOLOvRzf&+rGlO3-aAlW{OE7NYCffi2HxJk!A=al0hFq z2#mKzH_k=ee-ZaH5)bBg3(WrsL+ksm&ragq<SY|QzL{!LfLO$n_ z_&pr4;oE=5ubusCu3NfO`r|DUZSz%qHh(@;1_2SOS1Z#+9T!|&JbNy>sf)tC2FkSO zm2Xy|NTK2w4XG+msdk-rxFPya-FQ`JCh!bHRv&_xIWMH-kp_eBz8q{;7fD=vIlENZ z${#IIXG^U4t)qaH6A`3Mi}$STpBV#1QGK= z8xja4gO?R&as|OahDhjk-BTH?;P%=9G(a+F=7JDB2!Z1saI4!#YyBl`^S%Lu3P_H( zj|t^dGS_O~07W76Ofm8ER;UOsS6q(cM;egyTCEvPBWCiThSUhuVU=fh1B9s@yT})f z*i1iw!+Y=uhaY}WANX`CKX%YMW*;9)YCmwtpCLR&9q;*iy%;#(TnCj2P!bLLB&6Gs zwe{MOQoVb2h3Ex$6~wReHARURRsc9XMu}j&iGON)K5rF1%FpAeQF!U`zCV!==qR7DYBtYDy^DkBh7RALNC7DWjKghU9kMOh&m1e+U3V@L&( zBLoRxScG!p5(O&-RHcBVi69Vy5-1TO0|-EhqqmGg|54eN4uYYlQ&(c!TNhZqLu+d5 zufv3JchokUw`ojgKGrN8vZB|i)U!$?WcQTTV^S4q9jjJpsq!=8dF)**9|DyAC_6D< z%#Y&DA0Eed0_cZ(C{{ouPKE(re>(dBKG~k>(?8CEKS7^Ms|Y8cp;bC8sThLPJpb6; zKloZG3j1pg4t>LCj(#JL+aXX#{K!>S3nIuV1%P=3KaqeO=m&0!Y>4`nhbQO!ZGA4@ zn=JnYlJ~SF{*c-g;$gE5&xvPZ_M12Fx_jaBX+4T>PZP`8_9;?9 zn?{8cMI+?3>$hF==;1J$f^ctfusH{;cZ$wRHy6Nk^w|#i_o?I(Z(;n_^_%>5den#B zelFkZ*S>LhB@@|xCS+mUB(G>z-saAdYelU-s|sg&{YI?irP)Ms|5kRV?Ca&7E55I_ zb>r^I-l0WJ)P0ZIYdQJz;%_!HXP;81#-UMm{f|GR25GkVFIk2PI&WQhoHa(%%C!_& z{_c#E`L9PI`kbEY1Ha=}#=qZ8@ooB~J~mdsKwo9jc1j>XP99{cQhIP zy|ZG=6hpmXcJ+-D`knGMOkFF0VuG` zIRh-M2H8bPxMKl3aK=`Y(g#yH&d(M(i|4kJvKO+pssXV&3v5=_LZwBho1C{0O^70r z$b>ft0D>~uErN*)jdtsN+`8s@lNB8?0drrMDRdwTm5{zmTqHpor35^9f)qgzzZww> zqNVXf(E$u%E-_4Gi|@$gwINqi7A%n?85sz{1_B^36J#tS*`%q#iWLG2vjNkM*(ljI zO#z)#D>gEx)kIc7kf!s7_;v}jCNSUB;%Om)suf!JwS*liz*Gz{gd0WqH{mcSV@m{J zU@Hf0`C@Xmf$z*b^bb2Gf>Hp*pc3eu?KXf>843!uCGnqwwO~*i$cuzTIB4#fKp?>d z9Ssp;k%UAa-)Ja{mYbt3WsHKNz*vYe83Y(Bt4g{9MuP22z@eqF_wCcMF4mT z4UFxe83Ai-mg=^5QY2qUf;NW!I@c#JCWDRChdG>bZe&qZMLB3}EdoRt5FiYL6p{*)puzs(5mA2Gk`@5SC+oC5Tyda6onv?f{h7F zNYoIB3|I)oghgO1q_7IeDA9m`z_LXV5JRr!=FM>l#3QVPn)b&3eV{Z%7DQmMMFEi_ z2#*NBCBM7Pt4&C8;JWh@yv9Wp(hf|Cv zVx4E*`9FV?#|-gw_E>rLW7YU~1o_vSFM5Z4+Z6m~i#mNUMkx^pBLKgfLIsnlC4mhx zEQ=9UffN=BLP!QkAyNRO1t749nHtC=Af!+QB$)`#jKu~&878N3pSg=^Az(y>B(ji7bM8XzeRw3x#vUq9Nu$x3!kwh4a5hDRf zuIA%%ozezL-H=|kZc-v7j2NiI7AUYmL={0~7$js6H(M56p7(7Ugxv{*@}IM@IvpNK z3{p`dAhnIgK!!^#m@25uErMZ-n1u#PgBYYmVmuPOn7DPQazcIY?|dKo+Wu!J5l|us zELbYBWQwd9A{?D|PC(=V%-J9u_RsyhW8LICm%dFgaj$NNzT~~9@^@Rc?$G|f8gKoN zCzH8gd1u&kso3{afRmb@cr9eEZ0nL*4yN zp8JKL$dh_P&7hI5LP#K9>s)lVF8)ZgVHuKZMAY`TQz7^`GS0phegbz}cy1~1uZfT^ z*I7^YSQY3so>PZ)wb8Nm7FKyDWy*82&Ujt^N$8T=*p!2}y0D1}LWZO{3Lk2)u z7^s4=WL=+<+!I*7orOUd>^rtuC3RRv1KoNP=)FfK?jMYqMatd%PFL_`aKE+ht1Zh< z&COLRI!l^uX(BZgHu7f27j2=v8(qaVc0mr);NW#pMN`l`0gy$?O7F9$z|BLFZDs0B zu;?olL16_Vg1{CLK~#}s1(1L#Ar?ra6a^D$CK)1=1cX(K7>guTl4h*{Nwq9FsWxWo zxHo~Tt4_Gc(WgiIls<6|ccm@f3M^5Q z?)KW@vt?AN_-w)qordFJ!}jjjZuI`wT9dr!j$;ud-(&(w+od~%JzfQf#6NNB{w>ld zB>vNQi9uKq5{pX&Iy5b2wxC)CljYdmH{bW#wBld}2`I2bU@ReG$$uXp7{W0DHfQ*7 z>yVgflsBX(F&IJ&Ko$@p3~LGm1tLS?B%sL|tX z0!ozK;;Dr7=xu>4sUf)(Cv=5K8bcYp+Q?}L$c#zRu#y%l4y_6ay(ozzH~b=#WYABx zNKuSq`8291B=tYopkT@E{0oJIr#&!8FuYa+!rouBwS?yS&vWdrl3g_2yn&DMX0OeJ zm2Fjo?~BR$x|u|hnu(|;P9VO9v~vU~B$UJVI3u8GDcYY(C@zeoU|*P(_d&PyBo_&{ zhh);IKrZKpz{p_P^)Mtt5wd(nHoc>x9{RD6SO@`zD59bx)3(;55-ovuD35{IqoP|s zGC;hJ+Gi&jvzfh&e6ZZ5{TQf?O+wxMYgHkLn%skX*v*l61)S0dN|E-Ak{zb(#0Es} zT8bm@sanE?!(p@%0>CHyNqGMq-NyBJ|DRW8ya%qQ9vbDhaS;oIt?Tmj_qhH&ql(pO z_}w)l^$QzTbt5BE35ykM>4>|iRbgFcBQ9CD7i=`}HXoWmHN9~>yYv^GdS3`tUr#{g-6t-WNZQ?n9h>~sNNK0^_u++#Wf4S z;^k4r`Tn;llSL7K`SDE1m}VRd7Y8J&huuJ_-!L<2?InKW_LGnEt~*_9hv9dVU`4m( zT(_2Yl+eIUP>3>z^Pm0A;Hp*B2ECN<;8$ex0BvO2?H{ z9drGjSzjYR_HN1|sm6GX-LZ3pgL|j4sYPQU49wJ|BPFyb2os(mipPB9Vrn61u3*}c zwv1T!PU_Q#w8=SQ`Du%b&*@W>PL6j}a+ESS#5>(Bnh_O}afZz0mRU^6!orSOp_vyc z64@z?u)Q%X(D;Aad@t(q()u0GdAib#Zq zrq;C)n++y0P%lcC-^zDriheUZ=V}r)&h);pzsa1iiP;He`sV`YJAkfaB&Dc?A)xPl z(Kx$gPPjpc`n@J}Q&?@k*(qUpsy~1E%*BSDg2Y&M3dn&j0&fMqJcrXDdSkXj3UNA+ zF}bjplio;VIBY{;xK>-~h2%?rD|FGMyu1A_KpIj6fOoKIh5>yl2UtNHmJDEk!Bz(` zVec~Lf`&=VfA8sxkkG~v5ZWPBXQTQ$a05w1AFiKkbj>raxqwk1-;{(pX)Kwb7{vwy z0YyZivR`89f+`UsBzumQ*@tgCuG_fQy(Zo6?-p&X!6JUJu<*X0)lMQS3?oYa$YMzR z!La;%z$ZhIGD=WhIO;-sehTnE_?pIFl(@eNABn5$0UWP`gLy#go15{#s%Q!QWPPtp zi8jhVv&NdOYL$>iF{=_!<0)^l@&@?+l`1H&W*)C3#1MVrLW$Ggm;l9r@C$sTbRiUw zO>Zc;Xfi@^Ta5knT$x4$m-xkeM@(Fw-{bd~rj8fzrS13a|9!597o@2&jf*J~Q3(_o z4>;E1CrlryIRO;ts+f5=-xFEgZ^eEE?*Bn3kl|?ooxW2WNBp$E8}?s;_Fr!Q6Z@?# z%RP5L)WH0y9B<>`BdA6XGXX%(L=!MaR0f}`Lpe&a!ixmZxgW!)o3> zp<0!12(y3GOSEMn!7&a9VUm+j2w?-F;k%>Ap}Gs*v}teZQ4 zX(TW|W@INDX*3l2r1GTY0;m3Ken(H={-4R?FTa}0mVYk3_l@DNuvZ+JiB<})PeIXHN` zAC@{Ds7a!+zVxz?2_lNICc=;AvWHDpIWkS~8*t4!-=&kP?>i5>$0OUulaS{iwD%)$ zEe44o3IP!y3jzqqAfTl9WdwqSxo_}B+=oYq;L~&Q9P~Y!@ygFz3w|2c;usQ{LnWc} zk^d6|9*CbVo1B~Iq?=i$7)lifSJSrYYPCY!ROa8XwQX`B(Czgc$&u1LzviYQYkAPhM%*|qsoW`9cqG7+n2^uYZv{&TPQnWvA6%!z& zXlxeE_>4-rEz!aW_YmK=PBbi^N8r=hZ|M&@F04Le?RIDm6AY^_tVG7CnnbXGv+OgC zURhz>K@%GEUefOcT+-U+piw)^O`g*`*FE9&{w!g#ef?C07bC^@ciB>_YY4&})Dy9W z-1l>y{8OLdT)wAki(u>EZ=vUF>sfitT1x+28>kuI^kH7oEt*PrYOu>0c_QZX4Q3-^99LsgP zV@aq>To}g>ywNoQU`j|A3$vTLeCDD%1 zB&q{<(Q&e*NF_RLgIgAg)^rVUj;`w%qajxVfoF2i7{(u}?D(I(dl#mML($pA1A`7{ zNv>?pn?CuF#OGxBkHoW+mewi!f5DtIbYgwx`!?=xN6%CLqz`fE>^f<|^ijzTKC+uv zIq5EOj|qKgL|I)8DVS-GD$jdm< zPbs1tCx28BAxc1iWZrP654FAWq)!P#Vx-FmQd4EjL6~0LS|kV(-ZD5;2p@YN#-9wt zBrlhv??kdNWg-MzfHs}W6m-1?+8kuOriv2ocwW(o{9h9zx)X&5jkgrC#|0@EkU0>< zNT-p1pp8T$^i)sQA%J?;Me;9t~30^ggE$*x!YXvj1yvPTC!&%*@yn8?JMmo^uOl* zYwM|uB1%So49b7-_X&6~S7Ph%k02xFp9Epy68A z^DCLOZ&966G}K0nqI^FL(60TK_BLHbD^iF2~P0>pwe%SL;4IA^7eE<=9^8 z0iMl@1eiplhPW}tMAAg@Tl6*{f2gl^$fK(D{L3_o!aV1O0(BHhB0Pxc=PjDV#&IES zvOsg~#u5Oc8fyFIkQ*-J(PimZLBG&b5US2&m5Nl-1wlUW8bXvP^Gook1a0>M_YEcx zoB#_$JjB`vk{PuK6fEsyXa%+aFko0ZxRZ2mchJ@FLOKmcECde1-zHcvg1KNd1V;1Y7zpP=FVG2>R(Nw ztbETS!ns8@$)hO>Q(`HpNc)1b9ED$Ni?m@Bc~R*K-;Oh!%FrObbPuTG(Yi>yy%C z0gh1L_&s9Yo{|bV02KTit|{WLgqD{dYWZ0_rDxVO4^{r)+UrY& z*upF2wuNmSK9E_qk%>auhi5{EdoKXDSpiGGQl>0IXS4M`!_@PCE9&5|o}w)7_ZJCT zFf2hsQ3mov+MNE%{%#PRES=!aT@@3jl*}L&3u4FugCa~xu>WG)YpW;}_dw((oos1@ zD2EInG~5lcBwD6QIhi7kD#KOAcXYC;^i$xF{H}k#@V(EwyDn&%Kik$=a>s9)tPtuT zc%NT)TGu+{2OaSe?ji@c=zm#Hw_7Np#DSuuXgVL?2*`vGLk~~QTI#BoW}k;+R#^q^ zInTSXaru;GGZc?vK@X{e)M-Aoi`5KbG-`bMYyv?81lBWLT5EYY9}Ah=e3HL^PJDh8 zGmtiA0%|&x*g9>Be*>3A=n>DBg7P$YZn1>H2%pn9od2H#;+T@icVrayu#*(`6YkpB z_t#P4bM^Wm+51LgqOpuNbM+SV{XVWJ2EVS!h^UV)2`UB%X(~FxF=M>- zKHgp)XNx}SS1Jh%V33d)2_S?jBn=@1+U>b||Ci4SNN`uZXV*kl%*<~fr?x&OA0H&; z<@U$*gehz!q7XlG3PKA2TtK70ASI;Cu#7@tV>fCWe@Ax%=X1|(0J>>q zflre`K8=pTbhofZ@&Iah1&6xp>lfH*(_m8LJUgPMfXQ|oA;-!)q#p0Fe-}|`(OSnC zQ_D1F2&kke7hrHQB~_`4iHQ5Drv8y2THY-ze@}bTt+WmySm`Y4+`X#G_KkQgq1+BXy?6>S@>~YUeL1WX57^4 zOG`g)n%vYhh)sYIA%g6FQjj|SpGVDmf%I*4>=ObL(0*w)+y9nucSVV7GPw5U_n0ZVoA2fCcy}$?wEy$6*KocC1S4tT|IgRU?z1~D=fRiFR0uV6 z5`#kyC*RD)754@Ix){j; z8fc%CL3K~tq%{#;9h?$0bE$}dr1-m;oBPnmQ;9wt$rAB=+Fq_}PI_J(7*qd$oyx@S zG~w0j{-??Lba!l5(d2%=Z3=AL77c|W?^4q<@n|pHAJ^^spu?%{e^GS4CaYn$fpAtJA7EYuDAg(9` z0r6KWS1^bL*g}3=U+WVgj>@CIpS*oe30!{D-FzT?tPJ^$Wb3NZ-uj;gWixlEHVhyf zn^1;DA3BOgdH;i4FVL4;rRl4q_nt+Jz!B=aemTGmLn0(&0u;t6j}i95zo5G5sEMma z{NMAqQ^p|Yw)>KsdU^7(47UBN zHCWn<3Ea~Q|0i;PGqrVpZ$~d+4n>N25?igi-ox{Kx7WP=uNwm~+5KA@IHloHE&P9x zR&xfWtecb`xAQ2=dEeNs;uYEZ^!l69@?q=fY;-;B`=1!@a}=Gs6csWp;;EUWzCvR3 zCXIJe5-~{xpZ2`<63rOSe`y%CIaxNF8qN|(MuTD?yrv2`U#F<&c9u3)P9^kr(bKrh z>o7iN(<$YLqCUwY2D_sI6T6T2d6c>B6C0O=K^Bz_L@WXV4Obxj zw~*pM6@Y^Ttk57B**vEs@C`2R{KZs@!5ALY3$89RK4X!K=*pGP*EGjiH}nr@=~McnKK&|J2e{KBRwx|A@^*PJv-%{JnWB*W(u-PGCm z;4Gb%20v31jw`5cKkXb8^!V)+{Yd_$A2ZB$X#;t*yHpA5W^S=s49rg}MY2zQa)W|a zF8Z?wQV^HltNGDyWylCWhK$1EP82{8i-7?mZL)McM@#WQxFGVMwGso={%zB|B$aYt zcvS^RG#>0e4!_ypK1ujH|Bru?t=6;{R`9SZb#9M&k(FziK%)BmbAkz`Pe;p?NGpET zPcUit|L32+qr2t7zve#GsnR#f&$}?bNUdp-c5@%w2S_&W?lpftPy%FJuQM^}n1%p> z#f^S-X0Lnss1_2CrifN5)|iDTfW`ht45d{70X#2soy%w6m5b}RH%-qvl=X7wI}{?H zaDJ3@rGL4+Md4l-GLiRYv>=ho*edYMkD0VEdDV=}?^dYN-zdWk=Y-O^9(Tr2f?b0< zr?p2_D1#L5e_M>3UJ0hDw9jQaXwyBeYwTNYMiabn42F_pvCJRUK~=)Y!J_gbjukV( z+`V}yy_X(m=QQH`TK1)wIAb*y4Q+rp9w*P)Rd`9zHepLzD{r!WxYe-mZZjh&M8>6U z6pgC(X;%%J5M8p@zHN8;c#074J1C|U?v#VKVusb6j#CC<3Q{4Oa=~p@%aleBLccb;b13p#F z$E2?_9kfHPXmm6PB*vc65QjD{J9YMs_Z9CCzcBJA>bQ?_*EQYC|o zp2O1)hw}Kr9toW85ZbmW&)b0 z`luy5X(S@g#(-6ou%d-TM3Ozmgpxe&Z~RIKfFV5m+t*f?FgkNXBV9B#wl{x`9mtF5 z;6r0Me6}mh+=B-*eof-Hjd&=%la6kNPs0~Ng`yn0)$crCLuHgXkhE7F2Prttyc0z& zfrWxKt1HkU-6Rypl^B~vvr@($>p5<3GUN*MuVr)6=bS9g&Npes8%0|*GJG2mS%6Zi zg#-k$eYU?{TAdOhdRTichP|t>^kXm~L@s-BaRMTp)Gq>U^ZISNo7&5cTk78r^{)F^ zDhJ4lS}2CLd^!t+VaiFYS%{HHMSualn*&LLRFFWjZVk5AghJP~S@Z*GGbCJY+le5F zbpUYakewvXb1{Ci>8uqKpUWIxzZmqR6F#)-IhoH;&Y7cH=pj7IpgJ#k!aXKMr6ow7 zU(vi>U^<8P#Vj)9CJw_CH;G9*jrz9#qebr2{i`R;B$i}h6Ilq1i)2($R%@20SK*Xfc zf~~atPC|Nr9LCuKeX0zVzN56&Fc=jwk~rPx9%<+mZWIJ|iv$3MB#}uIKWsMcD-e&| z<1=HN)Om1>5z&8sJ03;#($C@hSH;{ET311*%2-;P{c({vky9TT05y2u*Ijp|W|t1r zd^6n)J}aFC5aP?li*0#t(LhU(4getvI0AH(c(@5fC+riR!@ET!kRT%|&Er5tp&a)I ztr)Wr0ro&8HT)_3UF_~E+`Y`2U11%7Auy#NKxYZx{KtV+mL}L&Z2^Cn3h>DO{F;r1T3L+{Z2*m|s7AlCUDytL~WKls? z1OZ};1&E-Cv0$R82&@GKSSt}hQHnue#8g-#1qBpEMFbH9NU#u96%2ilC?@R8Ux;szhKT0T~fSD8*JH0Hg(xWKaY|V5CG;VjzTL6=N8r6jWlWsSy+w zL1H9|EK(^J3PeE>7%)hnpbH3ypv6`ZNQ_X5C<>&4B9M$Akpy6%v0|)JlQkD9q2K@x zV$Don+yJQn2Fp>UYOO5{QbYlA^@M^bCP4(4%D||l9Yz+H=+xCl`I!O@BSJ190pY!* zPA^&SQDR%I3qy_V8L0k-JxMm~2}3Wz-4yvL8P-*F{+prtCfO(r9MDE+s>>?BCRd3x zTw$X0=(zWESsE2j##lHS7R$KY*ttrC zWvC0hoxe|-_YGPNW0h-oALOso@jkE9xHo^_qsP$a{yUQbaij>QyPA~=dI}go2Ufc( z^hmSxGl?)GF|c|>1aLy3djgcD(EU#;5P<}JZ|Ey24U30)xAcyhVlQljT2tG>Yl=!O zIp>5lp7rTV;f_2SyYgy>nNyu(vppGqBz2HOs-pT=C$$0V>V<$;*9^E9*=7&;0Rn$~MTh-)(2 zl!hR2dkzw7!3aP>8%_vEdwN9s2nlUABivzE-M2486B9|x&uA)BiuQMXJxU!EE+q~x z=(Df=nYe(DrFopuH~k65|18`kuv4-hg=7!nl+xv>bKaK5FS7OfxG!MZGA-`}xM zDJ*@07^DIVZmjxH-d8zQiorK4c?XwjSB%9D3K*A!R(#eL!sE8u9Rv9&APT{942?eS zU1#HyiYE9EBI{am52`+k0jIlbJo)?n6ycYA_8)%M``=AF%meqBs|+%Tg{1f=M@`pn znUYAkU#pL==Q{25us<)+WHn!=d~^J#3YfxJJ2m*~Rpz{#UgNDB-J3jyU~DO8kM1;V z_IO_Q#&*n;u`PzB(L{otjR-TT7VdTPha-Hw$pyH}w}QtAIfVh<{yjW*>3Tdf_HZ_w zmivJxY_^^9JMvp};>LURT1KAq#inS=?s)sGx$Vb>yCch`_{9gyM9^A0af59iwPzmE zJ&0Jwv9^j_y&!o$PtNCdbTZhhkWPemk3R|yd!Ask-0|~^D)W`>RZ&T;X zRt9>jaq?Ut3PqTrrh4+w-0RN+V8d>lSX8toQ!_Rtt~>*n8>!i`QI;_qRt;uR(M+h7 z8)9a3X1HF*!t|k=Rs;;!16k{}n|OKp@KdI`Y{UnyHLbF)pwZRy*=RjE3+|2n$~Q=F zxxWl|zaCw8_L|1R_w?6xE*l62Y|`;C)srE?FvbW(lV~895Y!uEbcRWcsA572P=Yd; z0K^J`nv3|m(2!b4gcOt6$qd7#i`H|8p4YPhw;6t{LLKkWrgD`N!CH4|)npeJ7A7`Y zl;c!bDy2g3$~xG0I8`g$CP#^$)NTqkTZ0>2l?iLQ_l#$yUr8qMP7$39VI0~g;Ei|gyhbI0SGDnZM&x{DS@}t zUT`Ziyp-KSRwW=;q6U_8<+u3S2B z%+T0hB8w<4yw{l;(DGvAT_1X~Jvwd5@-j!q1AOlCRYYOjdu2X+9QjHkWI4?5uP)Ks zZ5FQJ@t#`ewJWTI)K`J>^NvOhWV@V?KLt3(Ob8xaBc#f&6XgRGqr1<5mDf6{7bJGk zqTy!U49KVXIjFzM@2r-Gw zz{6H}xg&JL2#;dv0z6c-dA1lR#Hu!uM-}7F9k}_wJ{P{m!;?9FC*zc8}EDe z`0>Vm?K9)&yFmq+XRES~N=_iR-k&lx&vnPKy=Hdd7dHf7mtMO}?bzeR6|&!l)jTp?yo0Xi+s z6VL)dHii?3!wM->bc3Ap_UnuTyDr+~)o_Rre{Ecggh=If3~uTBP52dmgtE`e^DOEx!n$%j2ZwZ@5rM+piI<9YPQxc`5{sqc z8&NcwK8>0gGvtbUWiFdFLH4CmU_%goZuLE?ZQtKL)8#>9tMTqm(mBZMfyzf|g8cVm zf2?1z#K#yQoR6JHpPO~KFB}Pt)1cE$KMf;8npu_S3(`dSWz)(#)L}=IK;!?Gcf9T> zg7)+6GDRJ}AaTb|dRlZSVcXKadv+t>>r7pv6V1W~;BW>EuZ-3B&x`QT%(ySte~uRz zjs@+(M)?5>o-v%?agUEV&(b}vHNv~`kCw7GS1mcr+)qTdGYSLDtwn{@UZMNX(5NP} zLjx>xco~AR-Jfp`v$myGpI4>`lZO!Y&&c@A5O*%ozd>8;a|d%{X!E@M9gbbp_5Iqy z&FFMJAq{!@KE!v)dIf(m4dgvwBNjrRcLKXH-P7iG-l#LO;dEh@8R(s&(?xcLW{9LBNGBT=chOuJ zSy3i#X`F|)!eh6VT8@%{ann}TO+K~Pb$6P=XTi8xJ=&kER!2;uY-y%C&I`HruI%={z0}!m7+t#y zTQJWWTVCy2v)w7}*KG@oYgX)t&AF?ex>ht>gZAvIwrJLLYi19YETNdjDjd{l&7*ny zpR;atZlSts-MC9`(XThQ>kS^d zR<9P|K}UMa>S)BQY9G`xI_?+q`kg!D8~Y^q@{bAjV!OinpAKOwc^(7P!tuIx?Z-bm z-ggeOyS(xhFi1v?hm{%Ly7phGW)OMRI#B&IN?TuAY;z3aE7IzlBodN4kWS=tXkvOo zq&74N^D0M~;R55Sj`!GcK)v6b9DTY{@GGU-_{0r-FMdZ@ zJuZ)-^EPCYl|K6N@Q&Ky<1IeYEe1Ok>aX&PR}EV`&w;_yFFQ^u)b^j(&-#4r{IB1k z$;3WetNNQxXLhOiXlOJP)w!$My4x4d9x>N8h*g1K%)snY34Tn7z{Z=e{E_w3{*c<9 zoNK--^vbM=VkFhgBPLs?B>l}R`b|n8_~kSw;r(J~ZxeR@i(LJmO|+2+IJ(B(ZO;wc zGyk4NA$Rcx4FJ+bu0JAN#s`yhoh19@b7A;5QQ$sDNSk zWQRky^H^iPTFD2V8tzG54&uJ@<&<#z;`cob!qA~$X=H30Er65XI@!;*?_44XK&+OL zhahQlGC3j-8oBU+5xh5B)D9(XA7i!jDmg^^r`T{T`%u)4cu>~+3J?9q4AhlPad4}n z=ejyyL98}gu`SM56vbBR&PFu=A4uc$GgRV{2-*GI;4lLc=W^_)b1QD1}fDsiO@O@xvdilA#-mRGJ?nD|s@Q=`-IM!>ES+W~vno zng+gUKi?-TkZF{%Cla_(RN-BY4!hg=w;w~v2N~XlGg`BmhZ6C zKSD;jxT|LkYk2FuRp$Sx&b&Uy^Sb_c?eY^2KZNVUXh-V(tAi_}Rm(ccqliJP-I?cc zX4h@(l?3wSBQeTTV5Obq5q6|zKXd`ErZ5Zu95Bs9J5=V#*~&5_+THDOH)>^{Qh>2& z3GjopXc!2q^tU;aeZJVB2n=~&iK+K$9o6$$ncrP!4_zM?nEA;1SW=|yLNvX|DIx9H ze-^yTO%{;Ma0Dcu(@c&>c&zFMgUet4wGk2a?G>tJioiw0umbo~mwzLHlAK1fg@4%h zxBK+ds!1A=E2Zf8`1E zl5<<4>}4&Bl%if{SE_hY060BJ1L2^^I1H^&muY9H#!f$^q_$tw#74@r3)g~!5S2TD zo;m~&BG#<}42zPp$E(8VI>?CF(xa0=<#`&M?yB!RKJE!3fk5HLb0;EgDzG*22Bj z%0teRRo#6R8g5!}f^7&P2`%@8K?;qaKnRe}5CnvSf*MKB9#;^6>vm93WlKU^$-3WD z-1&H)J`Rb7I5C9teR0=YS5}N@Jw{9T3vj5)C5k#QrCA|q1@G%oljh-RTLu1_#k7&W zYVyjKWa%M{clHbLJiL5Gt6->^l&*oU>pkkM*T0LT)!J<6gOy@4%v9G{5N4JzJ^Sn| zKl?coD$!WaVg3zzY`?#X#*dTc3d>3=gWl5q#Mw)Gs4l*q&4AoMHcQ4D=40J!A)jj(SH#cAE0uweP2*wW zXRazeMLpjSb%$klTMbdJxJ<86fWoWL?|d?S6na(+;+7DEA8x#1wt1qRS1RkwF7v6` z#dB3eJNpr(5B*AI--mwHlKG!;+3oJBeX*0^`-DWzP6fbbefxXOUZ+k2$YTlxxu7js z;gHnT?a}`OmUjH@#m0LsM@sJHDO%4nQNd+o z_r7q;pT`*Ons*#o1{w>Yuep^}(@@SI2k_VW{(LLzppj1D<8PXYp0rQIR#Q*1J_T6n zr9Ge5gG9o?RF*CyGxYv36j9~?Yh={MqmPKd99^!izw?)Q_ID-df6`Fp8<=L?H0D2k zKY`qNsFzJ*!4YvNekb8e2R$6Gr{>8m?qkRs^Bn8N;1R(^<|6O(y59zEPq4i%^OW32 z!vw!)_1Ik6vq=Ji`$!&iJ!C%KHkP$T6&M$9yS=vl&wby2m-a4Xzr4ci`K($c{|_4l z_lzi}jNb;%uj=C9e%)knD3e%vYnpDbGGXw~x~I0=cdBNY%joCg@@O_<9PG(z^8IJk z!uEY?Y8e6t)1=8}Zmfcbq`Bj3-D68D1iRBcA0e%^lF{}XtQj}ZHvIyYSnmU-u=Xw-r}e zah-v)g{<~3d)2T=II~kHJE2}a(vsmG(1joX6odtB4Yo7}G<$D?G1>bnqny5R2?;DP z(gx573Q!0H`+Jx4c(?}|^l)Zo-@sU3>5;WC#{2@Ev531Quu}FJ<&%N0jxR=%DypLP}E_r{eq!}>;)ZDzS-&avA zZH9)NRa@vW5o&{ZT4kpzkOUf>0gw(xF@AlCfhoOc|6Ytq>9-fYG7IT8XEA9P^Um>4 zFx=sM0it12`_ayw^Nb(qlKpd^X9WF^0>z{tAw8<5)U_V_jNSa%Pb+$18?4@O1|5%} z!>$Juw~af5KgB*KdJ5_NqD%35+`Nw0m6Z9gy}!n*My8&ZNj3MC$HAwhNfWyia!VFtbqfM}PHNRy-fmUZf6WBCq0f6OQT=kP+G}PS z`(5<*Kd*Y_A4UDTo|&49=rf0e@W*V|qr<-=_I ziXV=Hj*G{!wYaa^x?L9BCU($vq=SipB0O8+rgpYlo{i1weZrP7{Z$ z{cqYkC-pYeT83AZ)PK))AJawU!J!rN@u@#~C?3vZ$LT_EtZ${#bEww`x#VUyEMz)A ziq6Gd$G*&Qd0Y$=a=*@ALz}p|NtC51fkePBhH8w@+?<#4iDbFwDQHqP%(JWPFef?( z>=;v&eR|8%V}6fKWz}j(o9Duyqrrl;>IX%N;7}peKNc0qQY`0(GrTkiWIY6=LMX(! ziaawG{+rlrf&T%EX%(#|x0)0Q9)69O{l|%0t~X3%!8@DI=Y7C=Ft>J;?#{8isdHpM>VDg@i)lii#K%tIAIw{MPuB zrp+;^@)&X1mFN(J`Ec3~C7VcZuPpc(xR|Thejcw`@SEI&Cyqc7U$p9|R)g(~B7^%k z^H{)O&i^ZKjq{JCS=URo$4MwKys8iaAX&Uhe~KPv{2wnAh~{6f?oRewUr!m3UHI^S zMf6;O?LDrfKUH!VKJzgv0so5OyOw?7J{Tw_xuhiL65dyR1w0#yQ{My!JS6{kH3A*E?dQmP^e?Jbe3G zi&cYu`;VQa%cn<-?5$ah1%_kDFey}b1ydC61$pEH%vc`sS5)ARbimJTGtjkFYI zvtx_?{b#MvmaGiBDpJJ#2f|YXV7)QKZNFnm;G&g*9vBwiHkj$*S zv~B7zYTiS1%f`(qy0g&rx^jma^_jy$C$0WGtF$P1zonyXG`9CRtK+cv2=B#bM>eQB z{|))ugUBHP2tj|_d3bi^)<0LK;El9^ECu*=`xKhp#%EILDbmQ;PQl=485zqz3E})Y z7fWyN8=u4ft9vqC2P z?Dd6RCJ7Q(eZorBBD?;8+&L+MLm8Rfi5@ev5TEKv{)-`i zY+VYnBvV@uDF+7G^*#GlkN`nc1y&20BXa0$nN2hJdYhcMJQWE&s@Q4N2l1P(911gs z01yd%C)T>3Yv1zX5-%kseR0pmRrR3zRaz}V#||;BXg7~$wGsZ6N>VzMW{Ji9jqTm& za`R5J@y-T*{xlZe)-cz;(#&oV-PfJ{?c;Ng;XDJRy=4!}*OKyLIKO@#)6(ts`SiLx z^PHs2Zc;SFAsj$42n9dV(hp?r+e^{q+3^2nbbM0w<#`m6nLD!`LtD)?Ja@9%r*T{6 z%fJ5g@38xIbqp@l&J@r>8Z@LNMziwC$}gGzvv~n^l$~MY>Fx33s z-|@Y1)D%ENc@Z_>r;!!a@gu@I+n*GF2khxJt&-ifi=~)r(pEIp_x=U0$hRgpT8zMC zJ9FjxU#0s0M~D624zB&K{2T(54Do<5N0g!8V13FGWl8reS>v+YuEkl)VLyx(tJA@U z{aNSA#mVEPy+nK*g^~a7q3RiIB3A|MYd^GkUc!iCu)-T)lIScs!N@UeJ$9r~FD1bI zDN(`hp?#<=lv0CF9jc7R7>8)q`_bVu^!3*8EZFY8E+LzY{we&Gq!9MsW!QcvP99V$ zwy?jm+ot$KAw4%StN-c4gn4|=^T14Q`oA4n()+IBx!mdv48^7nzv0o@Kl4vdot_hk z{6>9sKMU#pg#VG^L!J1%tMh-SxYgcg58wNIZ`wM8*C4_nBmx!u-H*1heet2q`i;-U zm=RjQbI_Yy`hgXt?kb3P%dh9_wtwfnsXO25{cqXGIcS?O2w%~e`oO-KUGWW`htc=S z*}L@=cq#6sG?+?s_Gn_aFJyi?%&(yk;GkdlKa*NWlyradXZAC?@c%paYs84pH>V1S z8}mmDVjYNults7F6*TNkwK(BS$jGV2f5}hX;4cEWcF~g3js;J!w@Yi#f$@^tbKJ*3 zD1$>+B+%+DeiS3ClzsJky}PVPXoVRyvev!&aSM(;$7^bSjn$0oVgD=wmB=DN0SVY$ zuQ8u<_lQH_`)7cl^;2r$KD^U@K8gHWodzg&`(T3E9*igw-J|vM^|A6Mv|?EPpUT$r z1Mr^0|6p#{{@|eYHF}pv{dF#79=#y8b0(x`&Ice%waLd3LFad}dB$&q229S_*@>JMPr`c`~ z_5FJ*3f9A7_Gzp8U41?`V0<8*{O4RBUZX9|4bJ$uooklpq*yfN>O%WmzErAp3kb_< z>8pb2YY!hKuVB-J*yoGfpX*(-g>r@LKE_2YB%w$5kJ29x0aJzzD+A*svbSY+=i1dVw9~spk{xjeip$pN{RO=r6ZWZ#Y9C?)Z%BY$ckeC_9Bp%-xDOdy~6=Q3|WQ>^uln z-g$r02Fc1(9fGNdK5Km}!b+i~li~+(pnJ959Mep%dq)n}n%2qtH-=hv4%SC2&m9rO z%vnOIy)D8V3h)R(d$OQqd=!xYXAvjcyf79Dfjs9?OhMXkw*S&+6%2tYC4CetGEevB z1RP9qPI+St)egM!vage_j<*jCYwFfHf+?W1v&ibSsK4sHUJ#Q^^2YEPRfvqTVEM}T~ z5QGINAy~?l2(e^o)V$g&k8URue#)`Au&5PGav1H*f3Lo3ltB=FXH&>NVlMS#Ih&`^=6*9WD z(m6qQ5=l0%Z($HT-5Qs8s%vaDsdIc0q9mq~ShsH<9PbMV{JH0&rg(xt5D-@44UXlT zzVX(D>z)qlB?tgjCP$q;@cqr(SaR?9C-PyRnO}vZ13G0cWc@oMaPVb2;|&I(;oI>W z)sW&86fMh;!C?utlJ+6E*K@(sRNfDoUB=8L9wn!;*?b4dbT)Go#ty}M43>!d*{*7t zb*opX9+LSd&WH416cJMYzEb>)Z2mM2XKsfCi3*QqSs=Qe=yPz5!l^JPJfJy1dcnvP zN*KEgqF#$iYrk!51@U9*y|d_O}QJ z(T+5cK`k_^(SH^c9Veb40E(ODiZd+DnsK%iCSz_U|FSgN<4`<^M`J z-+O@rdvZBLd)K|oZ4Qn?tj)pc-vYu)2{ZIBJD0|}F|_ackeCteS8viC z?{eG`8p_}-KYm_mcjjGB+fej|-I&BQM0`8>^P*izQw}qlIR_F$PHy(GtJ6XoF}F*0zQjKVz$c%qId6IPFA-6h$bcqDs})u%F;Q5n6(A}p6=NVO#8{$;s))$4D5@-D z6pAXrWELz~2r>*rRfwP?7DbRmP*{wDg2=J}psNuWsEVT$6bP_dZ6-7}XMB%uJ1Ht+ z8f}TRn=Q|?-q8QC-ay0cK*V;UMviHG`kCPD;oXnBjlE4w^{F|7AOuLZ@~s4+HKcQKKPk+2thF#)8!Q5rt?gGw~_tm*93UrT%)DP2Ui8w;B87v42CB z(ZS~1_44H(UOdWmqU%-@WBXI_|MPci4~BO7HY;mrsyT5y)mn?3GqltV`(A@_Q1dcn zEtNz(&J^54B5!l?c;wYl5-EsplVhwEt6{Mjt-GlY!Yw~1@c zS+^1j`QXK8e)wV%8QJOT`Gvn-9J7(i)-1xD|H`~jLl$=U31vNc1CQ{cJ|F5`J8BB@ zYD!py*@ei38JG+~Rfpo~_;lH2(0{V7u998)(c2ipdlkRI@|RP%HN>~(9&KyM*6VZC z;Jf!qE-K2_eShb2vvOF1&q)3m#d%i!7MR2j@|+h=W5N)f4SRHJJzl4m%F26u`j3=e zg2Ux^R{s<2$YnG4OoWaW4_SWUY0aSFb2`rcKP14vkO^EzH#YL?^Z#n3!@XaYC3++T z@?1&&I&!-W-bYG|34-A$ITa!;^UBI6TR&E8@%av&!znI z&d55$WDL zM)2~FcbWcjFwu=Lxv)@Mc z&dQLct}hM^L8v=MCN|U>&9b45O3E=9C9teZU^doDl_64s+6va1aLXdZ%Wp><&;d!n5IWw5_;pOP+71x{A-jA#7dmhfyv&&d7Xqe)62yC$f88v<08p~N0 z3k3x)F=Ig*%_yR~px$<=)>ye~)Z@beF@?#=nbP~vs5dF zQw*gPS&fK_iXvM@6;xYG1Q8Kpl>lo?Mi$yNs4+?*Y8EM3QDQ2@7Ez##Sh{VYV+9;# zwQQ}CiY2R5RZy)(6y`BXCz+?2pV@e`a$anXE+ZqPTEsMD4A7v)DT+{5hdL=@4JV7n z4$uBigX2z*EapyzSEHF?Gewxn#gi*>(rD2B;X5>ux7A*+0>-J?kQ=jQlB~#W1k*b? zl&ZS4t#XdFO=`F!cFb;FRjXTWvst;DD>N}lQ+8b@+p6nxOxCXWDuGgX3B9CoO4OV7Y6tu?$DzvFl?WqdeXNqMNL>4-Ah1%6rMPXA& zWX!qTB^iv{C@fq+w!<9S)D>!LC<-jnR7Wj{$5vJX%u1{Z%WX1^xomOFg-XcQg;5bL zprk~owFuUcQno~3qQOX15frU<$_k_uP*E5t#1U95S8Fc&40dEvX@aVViVG1~3oA-m zibV>PR1{H2DT>1o#DdDfwkV4js|!mMm61x4yRfDuMS`g@E;Pom5-wWS#RUOMnT?f^ zR8<9w7aEE|Vwz!YWX1wE(Pd?1G~Lz}AS%HTMF_JPX(~)XKrxYOq(w#O&DvGKk#HFU|iPJagE6Zf4vF2zf zC@}$9%}T`-Eu^hMLbZS>EDDt&P^=x8HcC9U!D5BB8nt4e7XH9=q_AeM-tRYd_oN|3gLsu{J`QDxgOno5Z2$17l7 z?wG1B)}v@$sa1+>kxX*cqcwGramHnAHI^9E%S=d(6BRVq7_nCpR8Uhzp{q%!99Bxm zR9GlFci>c5x^_TWF^I!$X7@^piv>hgig}i%=- z7)v31d0L1UKv#(tQqI{^fU)47JRLVgW3{$0^5jO7?BVS&bnA!J{r!ek<1-xWiSYBC z$tG%A#CUcwF>IJKE;?&317wD@v}GWbDHS`I438YZH@lc;iUPuod1(L2*Zka4Lc54X zXIDnQ4#Dvi^H4lA1yHOD83WCsP!tvz%8IomXPrr6t1${OLb9Y0QYiWBnMqO_Oi7F@ zArx4OnBEl#tFbk?f7@#Vwg-KYj7EzTUP%9yf7Da|I#1#-&C^3ceDL4Knx92q> z<$F2$-(#p!h)_^slVDdOgVvafi}V+}76Bs}uuX*je=8MxzQ<11EirV4^UY=<$gb< z+Reqs(Zb1(Dq{iiG=H8#L9~)3Xib8`w2IT@VZT|agf0(H&z#?V_n$4Qw6#p4_K z)7M=1-#@mu#P52i6iZs~a!g-%M=oQXvCbf^mDS&il*z~wDduD&0#nd=`fU#N+EalK zT}ySt`!vJ^zq?#J|K5w-dI;5ju03ea4~t5UZd>-;e;f%f+Fjlz%js{fPe*`RN3nLn zA%Gl+sl?2>(E|<>N1t6k=|!R*8^a&zZa0S_EE`c;EZQIy1I{h`zxL*79}Ql~$BteW z)3lE~%3T(gryatic5L`q187SU(Qd#;RMo3O>@8OU!cer1i6JfIAi=ApLL#A4)KTu* z-BrzJ>RWEYpR3-Fn%4NPZ^z1Hbgm#^&bM0c2(wN6s^{Kq15A(p{%HJvHckhB7Uw&& z(=+JW>tj{sOMF!IshKyIv}E6mV)zj;%3_O$@N9O)UB1ia`;9nB56E3DeuZH`NKLyvLL(zcsuOFCD(e|f0*)v8AQ!B`2fMyvJWuDq)(l%oaTY1-SgAaKCk2$;6D;Di$@8bUD8ho~FvhFus?EVTZxxL|!tfOydJy2H zohX5O4_N{JcGeQVl@IT%)F@9QYI5qJh$hs@WC)waMMVX|5n|Z@Q|DB#5}Q#whl$xb zdEUbRL=XyAL@K!H8W#!NX()oF`orgWy|9{XluwXdj%_WX1(pEK>;fvX?deD(L;OCX z{Rsp2^>S&iB8U{ghk9OR$4R{aV$GB{?hV1mN*(OOyT;?j1P6^yW23xrWU(EUQYFp% zJWyF|{J=wI!Ik0CG(w`9^87zdQZ6wmycg7;&Wo`E$0T}hYOxUy2OtFRL@eV;##we% zaEq8I0uzwBp6NPrw{sjDp}_lUNt#})NR&+z%~T#i9k*i@Ac&IjT3;}^NUoOEUNox+ z)$U6cg~unDveswa3GB@ zlEXFP-kb%;vmq?BfGQ}#_m`6Rz3e1TJ)@1i%!3VCEc~c}FG{PF1$1wAQCBPQhqwpk zoF&H5^D_D@EA}@sp!;vv$x?;D#Cu9tItmr=H@sLiV*P-=Ie70^s6AMTq{uYCp@9qL zET*&8d%nZYjw4$2C(g-VoIVQ@lu(?qjb`Z2v}tSVeN1HHVpW2d&K3eUrm_g+R8V() zp@q};`+T`S-uHP@S#3L)BgpylS6jp7X|S(9aw`80D;Q%J6vl?zF}+L$by6Y;HX{I1 z42Y2iBM?}KEQ$5E>eLSkJ@K0^gl3`Td@QHz8P=j58{S!6 z5YS#8zr8nrzL)18^SQ$G$~e>q3)i+LO3y5qB(W1wFhY>FxJ5`Hk^~0hJ`o;D?U>p) z1;UMTp}Pw=5FEikNGm(JtjqUlJ3RF*>!O7=!ZM2=l2>f-tyRF-;PFaf)szPOmqBzd=iIZI7NI1Zg(_g(-+LXMP|) zWyJu9K&b)6=1TosO(a+BuU@Tc(18wf3LL!|%h0%~{gec06)Pw@S`e&$h_g9g?~R-T zDxJGE_(M#Qm*sd*+15;2?Mr-4&*e3(zM~*YmiW#VYxMnZ>+suefpg6~A|QWzagI@` zHkc`dE=LS4!o$kxxtc>S!@B;q)Yt&^ymmUzt8%yi5$IhL2q`>kwGU1X-#rt2c( zhGpTanl17r!%a8^#gp|e?WwX0O_J&UhcxNPwQxTVMvS6-#s%o^*(R0J!pw^sY^mb%np0I)Pg}0}4Q;i|wZ_oOvoZ_o zvY=w}T+NEy5V!-5Vwsduk%43=HOef-gmHqOHfQi{t(DPm$tj0>aloZ@keCg_8~WJ- zLm`ZUP&JsiTrew{Ue_d-KA0&y701FkCC^mxd0t(%Lo5k(^vX7!b;FhVz- zaa-JtXqq&(NXfvyZUxm5PT#$5T8y)|^xQ7oS4yRGFpC+NrnMuqBX(yYN{?}nGG{RL zsDyJQOnD|4WA{kM#)1W%4!*r#_x^oHB4O1(t^Xb!E#GU=+W^{!Wwp`HO5PM&9*StC zQE=(>0-)wLI2G1bFI2jmvCN`(M44K%)lEZ*F7)c3z*kjR@#o|Am>(0vU=Y*yC<=hWZj2icIb`7|%qghvyEpWH zq;v z#D^&XfCdK^1sFr<*)U`cMHqrIL_q{tj6g;)kV8!ntVD%I!EB8|K{ncHi6Mv%WBK^K zP1B#R;_3Sdd9M0Gero@WlbFz5Ddc8VUs;$I@KYE0#WXc>o{mrgM(fTXD((+yO_lE! zZHJiQP$3986}A`A3^RX0}0=0YPFra_i#FB&F3}S(R(isZ*Y9R z(C&P&`;zfoK)g<#t1Cy)zcFT;2g$NPa0>iF5ZXh&^9U>g*tfRe1YgaBaYFd28a*2h zk6t-;*}YR0+2y#}-u2^q%`K`L?Ed*<}2G?|) zmFH6PrcuaX7cmZb?H%g12n_{%YwdDR@I#YP13PlG%Fp6s;T~OWYy+M1>xjDcVC5XK z&StZwcqzi#;;2zNQfYZ~?~+J{rI?g7wQ;82%-&KlA#OaJ1mXfzxRQn(V?EyaXRjy= zimA}gm|wu?6{sn7s;%wUHrKD`U^Z>3jyG5~EM&MItu zZYUAFq!%LZ%1v=d7Zk+=p(u7J2Za*wFgDAt3p2`e)JxG^(Yao94~p#EFt4K@;e!UK zZeRJ|*IxK)^B0S~Ro^)m^WfE0?;n76uK$KTxrLXV`N7uTk;2Jn=Y^@d^R^HEM_e

q0PD|q6W~|s0QinHh^bki2aK<)*sv8WIvIj=v#NDt@c~YO=Rt#*% zai!tW5&{Hc<*v%%i=A(EpFl7vxQjpzv!)>s$^N^1z2Rfc#p`B@Pc9ANvyN}G!+deC zAe1Qu0fB5!9-$^j1~eyDF9GL zhA?aaHrS4?uzFHNv!8drH;=ZZ>AI@R4%Awo9cqcL-aYArRTP$d})bXyI^E`b?#AKt39iJe0q<-y-lh z3eR{Fm>Cm3T`e1m-veR1yj|tooTGbuhaY9%miHe`%EMGUY)+xm^$V zJ7l)F2X_9}677%h?WUcWbvicW5tD8lTZ0t1D~&1SVC;Z@!UPY3hP4(8U z>o1~qdIZ}M-BUr?z&XoLAPBn09BE^h(mO(Kw~j&V!4 z^>HTu0!{PT+V4upv5c39w%D|WvlOEjx-Asc6J&=1+H9j#))f6g7b zJ~8F3G7@RM8ua3gf~NbLr4Y@Ztm$KxNghrx|HPKMjzS;X2WYEU+(1gJA$Dv{%SwQA zLizBgM>Q_BS}KTh7=Th3_yj)0@Tw+x>(S}M-d_M`F3R-Vd@zs!3@!9G1ND0sYU^}R zvvj8}Gc`D;XXnKWBJdT-9)RQTxuJy6&k#H}7@&Ub`%{2#7|p8;OZF6qpAfMGAB;sr z0ukpNB~crK(-gF5D4H%u1U3kyo}=(|+Ehmcs$UH1a}-{R;8A4CMv!LMc~v|lL})kA zGH-nGuN~sRQ|M>nv^s4FU8KYaOM-w318>U>hjesujAVD#x;4llkg`lQF1AT(Xfrv% z!_&FJ@n8fU(%0R^tT*v3{LYtArJ%s7Dfu4Fp8%)+)bJl`Oa4di{V7>b%G>7Xns0IV zFwn;QuQ=T%acZDW@j9#CH}Sh8FI{F}1(wS%pJnK|3hQaGoVoT; zcHQin7gM{rXYiV~sE`IdX2v*$D@fh_WqN6Px{Cq`Ea$~o7CY@+qJKmbQXK!_*wpiB zw?khUwrWLhdo0Sn;wIb~M2%1L|Jtjyl3615WOSN@Cid;&&nVV-o^}gTN<(F}8pKE@ z)?>==D;&g;Fsm;Wi3LyBGiUOMjdDf{NRz<~AwdW#$_8+B#1ire1oQ0Z4h$xx@V@6;%cVj&eYd2XLE{6|F>1qyp z@7+R|uK2?j?NK&Ke{zbzR9GUAb|Gt*W=IhgLbd*@=KI$uQb2CRCMvYxN_-lb-zHom ztEBFii=E4inL|OwbDZff!_OSIh6C)&FVxRA&!w4{V{lRvTXy}pUeFz#xLhkcOb5xJ zu>qn`6a_>fMVnCq&*z96X#Yj!E2G{1i|)EC1%CE>a2>-xdlB99^zBq?7=l zM-YGzV=((>-(L#9cgUv5bPM$Ewcayjtha0$TcgII%ENYI4)^(xM}pqTaUUA?saZtR zIl9{Jx$5Q2{!tCp&OB%c^A@}4IBeLq-gbcQC7RQZW@X`B`!_5DiBOXeB`5^Dg~D!9 z^vD5WR8ky`H2A(zTnoLIC=P?xq1-fd`3osv>~X*Huxfu^c0T7YaxQ<=41VY9&uBu& zo|mHi3Qi-9#g4NuC6Kr0+z@owpe=L0FU8(y-u@a;GQ6%#j2n}2SSVz!w?Xcz2W3P3_M06KZQXzj^MKGV_T!ojb!57rNskO z8U&}q7{$;P&1t3aW_&ERQatnznU~*k#Fetx*t%GK-`@Ryf70@ORwA&36cH25wYr@O0ghn zo9n1U3YJko=hx-j)PT|oKCk`wTJOX7bw zth36EvidHzNPJ4mG5#I62GkcM1W7@BJABE*S~FDC85CB_YOgP8kJq@WKX*QB`}X$< zeb->xbFn;z@*6p?xnfX5lG2FFI|Vkt#_iB4#p(3+ndW(-fp>w0tbPiLApd`#57W#l ziV(vUqm2Wba76A?%nTQihte81Sg1zbk(d*bncH^K{D=P>soeeVd z(;UX?A7rB7+5shj`=KwbLnFA`Ji8#@X9#hTuZ)aI0X4tGCKr(b1#iKE|Dn$PFJ!(z z^%GI-K=bmm?XMxcC%6OPAkkaCHNnJ?^shu6Q{ZB%d&nfRQzg3QYcYwbI9Y!7sV*z3 zL9MkH^@#4{o=&TAst-zzYLuU`mP1`j#at<*eM`?nEQT2M23}D~k%KuHeH&#K6FyoU!qTMk^ zGF;%m#KN^Toi{R4rmvheqeHH}HHMs_iJ6#Kwq|3$CbeU1%~MR4rSt6iYz^5y6~$)j zzc%`AhHM+1s93C^rKKFUzD(AQ1+I!*j$Qi9#~jvf$xIZrA9-t?D_Fm!qYScnnqh}O zw&dB=vdY4*Nyl@mElV5)GS>-0^Dw~^C|P54o3vtKOQiU|%d^zmZQkqNey$q+eqvls z5Eq9>vDUyd=(f-Qx0^b+=~fszu*!=_vB-`@A(2x!S%B-VXqyylw_j^+MN?L@DmEpd zOkz(ZtbU&DF;bCDnkHqfIBQIrt#rh3#=?dKa`3)3`bk-pzf72{iXA#CU^Q{aZr==L=X}cp(XEdknog5aN+&a1E=%QywUJY&uqYc zUymMnSv7~WK#TkEGW4s zwh4yR1`nr{!=MB?M<^8C$;Ra$&N^7@1@6h>6(X`+zs19$>iCgv zCXzCq0{hT$bV1(22Qv$1-1HzG?iG{>)aJPs$DoMGPDI$D&|uo|Ja^MpAW9F4q*TJq z;x7nadFCQ(XAa%NH9~S*6kHNPNRobPShQ#N@8#INUAHWaj}qzuYwS;!^IY=$#J2T zp1boudx#ay&9!1Rm<%Q1`2Ufia;6tIf@t~$Z_v9@fPrjFN!v1{N?!M5$0*5d%(YkV zYD2WWQQ%59lei-NV=D?E3M=FGYWVRp9Y;1vV!p>DK)9EjQ5SI~#A1Y=WYA?0g^K_o zo;MLwEN+ZlCX~4%M7fu0!%f$J?Rd<@>L)y)^U;*+uo%fZJnfh@@e|#tYNJX9}JJ z2hiM5RrhaIm&Z>2G}{iobk~5nc+QMVlfGKszn)g$_N{Yf^?S!5BTufM-r{E#u_;3a z4Nv<=f!aL9-MbvCH5Q!lC(BOZBn1xqKEtgf{2iNaVhG0J&VBiJZ4^chP~X##?JxqY zk?OqV2Zwp@PdDkX5NZ2*Hoo?nA;`M>tL8Rk?<>T(tYSqViU9~fO9=35Jj>Ls^= z)PtG5Vn-&2<5GJ|u2))s8tzd^jyVh>%{NYPOJLvgKFC&pgV@~ma}KU2a)!D73|FD3 z?9Zf(gIKJ`DyW!$4sqJ*89nFp^yx>Gu3*LmXvoOkvncKOYr86oPE|>uDfi^~mr|Pj z5XBVHiJyoNtC&j9 zU6i!b-eX4Bn0E)b%e9%?q%>Bu0ut;-B;Y%brs!=zR!dL{n>BRE7uUwzN1+q|QXKOw z0g4J-$&4+%-6$~>%T+BFUVrj8hrs)cfWe0A5hZ9N|;@REwA>t>CqiYlWA8Y1H=h$|OVx@guEQjKPrQwu~9Ev2+^ zxpyWO^I`H&(Y>Fj+xWC`;ZjqQ;EKZ^7AlIlYo`-3(L`C6=`75{6&SdUxo$NTZKblo6+sa))KwQ6inS>k zjS46$jI32R^qTeFT632-2Fi=UD2Rx>5VbKeEk1!U7_TLTj+W3-+RRK`rm|}bT4EJJ zh8WSxqAh6(%yAKd0I41#8Zjm^8G} zlpURBu((>nwl>yO%%F&DZY# zB2ykYv`n-O!P|m&;sRKh%)v_nV-%zh6t>xjQC{^thEgK1idv&#MMY6#85D~hP_8hj ztkuO_wW10vgL2ml)i8BRt+E*4<+3r5Kd1a2CVv|^9eLDzkFwd%JnVJCu0vN;poLK* zP*|mFS|FC*dkTomrBFl_WKmTaDpaTxX4Zx)EEKJ_i3-+RMTo4-%oPwuxWL3Bk&KEgEwz+Lv0}kiMFSaFvKn#7g=Ium zD2iHEEYfBziljvvz$@VRANu`o$oehB-l!ZX((!Iut8JNTAhBW~s)-d5Rw{^s3>Ofn zsKpnOl8cE@QYqv854HNwbLl@XgplEr)c4WL%2+9F;vgjGwGjkou|F(CfG(4A*Qo?j z&X>kw>L@yySe@@kD-0L4m`mG z_xktI@8=WVh> z7<`V3zgzo%=(p3&PnFzgZSd<&z3H{g1Kqk$JQM z!^Y2!VdRlRz)40OlO;kuIy<~f+LwI}P4`1KZ5GrBWpJ<1_*utN1<`6UIbf2AvQ((B zP>NKn6cmMONTh;*s{s-z4nqA7Nk&0ot3`?tMIbC86x)nFN3^^;ef=}`6Nlj^6R+^L z(S3}lN|}f$nn^Yy4G;!j3X`y9LlI?4z*q%IRRTmp zu;U1^1BdC5E4K@W zp}7J9K3M2$WfJ{Fx=gCy=5;^Dm3Btdp6u zV|8)J|AT>s!OZ_sZ^YZ(KE0A19)4Zpfo;SD_9(?<)YHIwASMDGGN=75B`|nJpam{< z6WdGr)v=FX4Be+k29OsE9R@C~q6vPOOiN#}*#QDx${^2$iYe;OvKup)Nk88{rP}zq z_cU0rzm095>14jGu8@Z7su4EJ(Ly1)9kb9OksmbGS< zPe)h3q>|}amQ?Nh_=2jh%;5`JL$AchYj~aXa4$zpZsSDibJ9r}iMDCq8DQm7MNtLo zn&+c-qxdmxgf8ojN%wJlZcdi95es>%G<+RiT@8>`@Mgl{vF@*?~ZyA z4iqSmlBuJI<5)otCR_nZ5jHIZ4pN=Q+JGkXlfljgA}%ksbAG1J80p5E?Gs&0gZzcL zuHBU72Oo-MQp2eUyH$RT^IuiMeG7kv<_{-zLXI;*RPKE1u0dA~+eNQR1Dw)X)6l9F zB*O!L8@SOxxJ^hJj{d{`(64S*#gH_yR5vH@)U|A;VV8|xj<2@o)EKh(*^@LmW-<^* z2FH{*&l|jr@{9CZhOZ-ffS5tdi4eENeS(fLK)LSBFJA09txPQ^K)Z3!z%b(cxE`C5 z$`|)(e$_;#Vmar#c?Pg_@KYFiXqSC|F7x^2 zT)Pex^6aU0zRuR3qFPRVBvE$DNfY%wn~j7LgKQgjR`tn8-X)KTPbr?Q_b%t4o4<vlPL3_oX_qA4T!cY7!y1!~My|n5BpY&}sDSz#nDl%xNCXQ5((0ZYHjY}R z4$#+Xdmkbl>Z3lF|1b>dUGy3rtI;BEQEM-^$aDunI2Rvv%mNV-5CY0A4 zi|r8yE&$5iJgD#r#wODsiaSrmZea*o)tJ!)=m5eTfC2}IP48VR++HFU_Q;+Cp>V&_0(GllbMwZ)gw_?Z!{MHjO~s1EWDdO;`RT2!P{B-{=ZPGzf+!O z+cz;wtd_yWhZ#$>)DNhn2!a(85XK;iOk&P$QJYrWDRax~N^41&D{xA~GZ`$*Y%2_{ z8ifmjcn%Et%XXVE?>V)y{5t6*`*B&88qMuxr1?$83hNOg=B(evRMU?7aCD) z)&>*uZ8jy1St>Tol@kd{Y~X3p_SUPjQ8t!WpunVZ#_5>PK7Uv4=h`Osll5uzoIvxN zXux*}U+y7DjK+5jOhCVBW)F>Y{L>99F*rEnTGa~oOf1t12CY?(@Y$@cjPG@UsLLyU2l@tw1og z%*vRBAu#A4CW1%pd}W_owP&At8Ri*-5r%4%@Na{+z4eEt*gV6)^_0K)I?_oQx!6Z3 zZya_`ZkhW0{5^LDjPqUJIz}tRgpVa6Aa`0AL~_hxZpu4_IbsZAlx+$PFS&^nqZbg? z`EdKk+n~<9PQO6!uP-?~f=fojSKg~n)XI@fkE-`r*07)p0?#`vtD67G^Oh-a#%@e| z(R-@bBfjpzr{3~r1uh3>c&tsUWs)@MJX>dWOhtikz6aqA_c#Zs*^XPyrWWyLG9PNQ zvd;WC8oIRE054-JmA;Yl3?A2lK)p?ew0YL3v`42gmgLUf(hDS&RQ>klGaU6Q?kxyH zor^2lC>Jwm;_!hQIVW~?Pd1vdLG?kWEt)J{(?+{liOdO9)sYQ{Gm8N7NV zX+pLSUd76fHG1FNGA-3tN=$yr?(577zPlLS&SE-jyMNmc)pwj}y7fzcxVyAoDSo{D zBm2GQl6!FhoaSo@0)iNrLOvnV-s%w-aWZUG_}nilq~@k4kU@Cm>GPqIPw46^8GX!& zzxA_;>`hq2O7C_Xgud4(hVQqd`nl>acWDpr8H0)i50W2`+j_b{jg%UrK7xK57nR{c zYyYeY$pnH5;3*AsM0t%|!wXQu3(opEyoeTBsp>5iwZCs^xp;i>XVt_`ntkEFALjbt zg|<#IG(M1skfiCD#4$hwATS6>rU=Sqs6I7uDJq7E?2gI5>~sAGr1czawt2miP3jFm zMT%cOaCg4^3Xkem*GX;+VAa?(lLm#iDG%sYh>T`?_TyxGR588ytyYB#c~Gd_4h0v> zxk8}GZ1c|M%OgC)m9gpaQta)7xOoy#B*Me{YkyqiL(0FtpSQ4zSdy0ln4n9U4@LW{ zX(coMXfrM(Tm&(OfaZPY95nrpZ$Ql#z&sM3q2=b1((8-|RueYPn@T79zJSRBNWFtCgLHw=wt)~5M zh`1@H=#?ik8P7cw`~Ds3X4q|{X4{POwPc7T3<0Qjc-a&Sg)kY(n|g^pluOv*9f=wX z#@w1q03611F=3Ea?c;O0!XA1uc=rO!PF_A9dsDFOlw6?M;h=69JsbEHVnRGV6F5Rh zx(nP(-Ih-n_KK=bXw%V%7byn+%iil*3D)eoL=+eADF{Lk5L`1mZxkH17k3wd*=O#N z069k{v*wm@?4fc=P$BxGOUjz>x(B_5-^Q)2I-m$L^Hn-{`#?mzoBbY?LnNtL?_XTryh6CeBa4e>Y!V{o}84X5k_AvxxFq zqc~?XwfFX#aIxv#HRvh!D~eLd9Bt##82&Y|S<9YJoX7~tx{BLjY-RpnOnv#?)pL4GrH9Qcy-&}0^_)EIInJxIZ^RHKs zIA~U=g;-{Bl7JbVSNsjE3O5WafDuZ35N1fqCVTmq4(eNLy|I4DrXzmoFj*KN!Bstx z-dJFOuvHXARRvU4L5xlJ`kWCKD6tS02!eov1YnEosYD_%AgobE6+mE>DxxAH#fXBd zBBK?EF^GtX1Z0X4kzm1sz!pW3gjGctF;+#XV4rSpaE*Z7kF3CxB^R4F z$CiJRNI#gAMIbbph`B=m)VYm*O2ziewd2{!)NO8EDqI`KN&n?xYS_M6EaG&#*qjWW zle^1)qgSbSe|chuDr?uLywG)fbZ*=(?(^=849YRCvCFltzl>Q_ARtG(@Aj|k-IMJ0 zo0OnzZ)^wOdyA?%t)9ziclm$0yhUSh6Gg`Rj4+_2-HX6610sMp^)p8y2kzivb~&3a z83_=H6=HZ^E$SrVXd7&Bi|Id#P2&hXx9t!9IkNFeTzZ!LFHb>hb63~7P3q9vWqZi4PET9cw9l;<*I5Ve(ER2xK3-o%(@4HK6}>667SHn z#=3vyqyK$|tt;_Vn(l89CwmlPVj+w|V#*1ozwcs$ZqHeV!B^d2qz_@GuxpZLae}?D zH#e=detH)0*(^a87&O&H%oK%mviI=G*fA?U&&K=-l_SX^%h0!Pxj9Vd@CQ;|=1f|3 zNCr)PQrDp&_d-2*$d&DS&>D~}!*R?ns>+z&e*h3H%~x?$K#UiOsNdt@fEj)2`K-YbIC%FVvC&xOD)_ZTW^yc(+86S}Ydsi~6av{ro7QFbp z2)N8H?o0iy?(;nkd4wxIz0~ffV=(F7K^#UCE9m?7u^(>xxjQP`HB8{;6!v|86Ne=F zsim(W-JRTIJl)7GN7d+G{OsY_e18$J^<~{&Y1Y^4cuJ2xnwv*~ z?M78dMJ$qc+W98{l*zc^<@nrpc#!76fye+)$-`sb`3m|mlFRH$7 z<35Mg?Wp5+kM7hjV5FDkpO5ssXf=5lZhw1qy5d|nc>h}*;;l8`Y|<{vxVjeic*fh~ zB|H2|n~i;rXS-ii-e0#XO|YWUs;w-;2AS*H-d>+&cI8&@I{CWWcHa)F3lb-D{wAMyqPs=+ z*-BLLmG|VWKbl@QGy9c>o8r!n3_FfTDHZLZ%a5zi!9#)Kh7pb9#IN1g*!?Ux3gfu< z?l}o$`))cAIgmk|V37obInq(wH1IuXe9Qjs>7b+YzV)oZa6z?B%X080{( z6G`@GH#s8dv)kydD9ijaHqA_O4QCeDh@{Y8Iv3kC@)^`G zSaEEmyJkFYJnK0HfrqJqJQurX4YVY?(w&|E*~#KlC0Ne{`Sh@p_4a>`lvHNdt%-K* zbTPcQuV**Qo-SW;*}cDbY;9ZE{+q3Bw`CLfYNjqv%-`+#Y90+Y-)oa!mfEn7mGAQ~ zTG^kVx|MHPR|U4iZy0II+P8JxpSPNS<3;1NlF7vKuC~e=FXiUW7yfZq18~JkXez|r zZ#zwlw3UIZfAMy6_dh;F1iqYXbkXS2&28zL?@>e%#~yGwCGkpDRIk(I)(e(HfAPvG zGjTX3hhcqEH=$h{gMp0o&zlAOZ(DfwRTlllq%x~6 zEc3Qg*15IC_X%rgwoN_GpF_oS>gV&;yx+h6&#rH;yZ2@N310O7lkR@irIOIzQCWC^ z^m;t4-CSO$g#FXd(&YBouhW?Y60`iI>;IKi?imMyl(koWZ|&8S&@=oi?B{adPdonh zp+!>{-+|Hb`cLOoq`g6FO9HdE^mjg8s_)Agi|e;&|M&Cl=8TS` zez;Lq@|P?&%o(Y{-Im~+#`?C5pDe?LmU=+^%RIFWFM=i&ca zyT+6HPf@gCrRYvzaf^MNpMUnf8%z}{9Bx#fp7n$_$*J&kTqNhT{XPO5tzO2v!Ij`C z+QsS;((xI8cf1`NZQaK$NdL%;rh@nKH@Iy7pA#K)x=0Xa?))E{UGYBB2lW4!^6}nF z`=i1d%w0;V79Hpek;GQK=YrhwNJEL)<0THFSgG!^89im*)n|cMr^)e0_w^5(iEINx zLIwoQhwoctQXt>hwC|L?U#lvF%9>}r6V-QsJ791sJ!H5w&!0E@xaY;-G5fEt_=D}{ zzHHas^Cf|bg#ELY-X}qP4b-E(;Z**nr!#>#{U_|a$92DczYhkc;il64g`ALE)BHU{ zNuX=o_3$|Dmh!9hJwN@vy?L~`w$B)EPgfH<{p`2-eoq)Grg1OwJ1%d#Il07on#;;7 z%XAmHJav573y9EZnL_w8U%F}R`2T)hy}$hGFS~r7wA$>nr=#!b=fYgges{>12*%5lzsYB(PLcC^%uDy-~l`1#;8O&l%|mXF+V=uwLF2w9F84qwW1w+ z4ZIE?56#Sd%GUNJG{5hE!WE?<%F)Z)Ls&x&U4Isdob4af0Qz{sZ}oR%|{tG#Xc+*u1xrS9W_)wtfC?bFcO zdFXpj&zZZz=l|^Gh02E4SN9{Gcg*)X(LTO@Z~pUJb&VHn_zl|M?grt2s^%xD&d2{e zTX$RK#oZp(x4ntM@o|}NFSLXwcB>jQzrw7%{n!1CS3Kz`NFn5NN-6bLMFRZ`oq4qm zQvT#sbN`(ZV|c$;i)q;7VUvSYt5#Y7OV=Wf@u$oCv!~SUmNYn48RaQ`v1A(}5SMa- zg7M0C;sG>pX)0-Cjszu$Cxf=aEEExg5oB1R zARvrI5g>^p5k-KcibPcvRTV)MP!%R7C{^ivws4R#u7AhdBBkn!d^MBjz zKhtu}+W&R=m{y2c;?>FUOZeIu-vn=YMy77IkYPpon?K1(ZxEze8k)Ppc&BA5FK*f% zhhje_w;js$t%3G?Z*nASHdzqBVrwk%oR7^($yk@kUoRoYd1U6q-_g3?+k*%;Y*E<~cBjFRS<8AM2^U&<{lqE$j6pRu^Snec<^JMd==Dt@+K_;r8@$Z^N}Jau=j+xNJ$QjC-#*Vz)w$g9iVY z!N7C!$$4?`IL0x4yU7IQw$>p@4$?E_@RS{I&q_xepM@Gr#nH9BBp*7Mp3;*lI>p9i z^jI&cSS||uYf}~P0E7T8H|SRq{W4KXR}<|P+a1!cc6JIRi`f7`78t`AB=Lz2`WVYM zlaK-D!ya*#S&rW9;`44*&|a@K%=^3Pux{6SuBhYxmP2nOgS0QD?g2o&I9`G(?6sd& z>n^?5;w`8XDnY2AgQK_AoIn~oY31t5nlz!J2vowNhzozua_{4V8}BR-Sta{ zIg;(d?#s^}6(+N+I!DXapg#+RLwgioz6?^!B#mf3R-}*WR9$6MTs^xTw73o~#ofI{ z$^e7g0E6q`UZ6O%xVuYnAEdZjaV_o+#VKA|tX$rI-_7}vl@)uk&N|OYc9Ojp9GgXO zD+`XNd^!k?yveF_TRysrdwqFO`|z*Bm$~PhE$0q4qdof`8{ zKtHUL^lQ14*y+;P>UB(=+s~8$)i<=LuEsAYZhO6pY+Uz`#>5ItQh>p*#ae^t&YjM` z(0@KSY}#q^`T7e1vx9I@@EF#!H&EED@3AE7b6UvcHA;0w9#?@E@e9Wi7_f{{5i3Zz z)DgBf!=mv;a^6XA&0W325aL@zJ=bQ0yO$*M$Psx9IuiQK#E*{N2`9o-6a)x?} z*i$N;A+;LE<*B}p5y<=ZaoWT8){E&ZUbM(^t?X{rxPEo z3xbO~iy@6!sQf!rPuNOFfOC?jz~hU@b&qPDE(y-Xuw~t}&+-fZTWAAG&GYeNk_%Nk z)BZlMm!cyhwynFs8$k_t{R!2>8cUv~)!M(y?%^>U&$bSu#k7+tMHEXiTUZ*S#lvF_ zMDgj3TTq^d%@|BQLD7Hoi`c#OlSbviH==rbjKx25Tm3XU@pq0dLz_Q4V>1nA+tY~# zM*7yhL@1kr@^7j$6gLanby>=8?S8F3C_o310Wyv`;+y22@2H%?J|sqf9v)oEEGm7{s-o=QWF};0Ou->uu~xGikg%Kc3sX9EhR0~hVH}hC zA|8I_uhAkL`)6WjedtmgKiTs)swr4|$a4l4-@uRO1zvJD{61WJD~$LerpNRxtQbv% z%_P{(pt5>qWmvqY+vLUHb4=>JaZPCU_`#Ck<-g{Sv|X-FLLcG?+kNeR3!jQAiJ|?w ziyirgw)S!jJO!v1Ytq1Y3VXJUZl20wV!4I6Q)hDQ?lia^Lp!wymIPN%{q>d5Fbt^p zKap`Zc;mKRef@`e3PL`0^w6nl@zW|8@sF{whLst7*8ZibK;+vqnVpO)exK+mvQX@P z)`9S4_*~ef_`ZI(OIgAS?{x5`5C{4EA?f5r$BU-GK@C`bi#BTzg@&@&YW1}6+abq! zag*DrX>onGhkIO~MmTToW6PFn1NGT>KL?ZZi})xjX!Z27;kx+!j8FL@dxGcfhV9LB zvOIm3#tJi|9B5d(X3QBPCh-AYB@whI2=875DQ|e;bw8;vg?i4cx_s>r9Z}ieJkKO* z`$GH~lQMRkAKCpn_oU}uP@(gz=bO~^J7B2S!ra?bD*Gmh;S95&E=#$Bai~{py^Vvh z_CFgj=K3?=&mV$Q<1ONZ-OG0TMQ#U`f@?q2$Tm7pdz|vz_!ekTzsdWA>&OT`E1vi} z=z?aJ$PjtTqTau$qCh*xsM@q~m2>K>(erQcCi$c48rQA@!4>O(P~T^629W2kFK-Xt zBz_IASj6CJZyRe#zWzc!QWS-nZ;GPWKl=_5QS3_@T1N-Ig?aG`|06PP09mW1GWAfKq5PJ^u>JjZhVE+L^@yh%Y6UOs+RGkYp4 z%fbnz(DK%>Caa_p^6&LQ(d?Y{MKZM-t!eM<3K`v#N%yt2^WnrZ)nNFV83Z4c*2u;o zLj=Wy69E^2d^2_|82R-q`@E2G_+q0r4?aFSruby}yH7vCgNhXng&2!Lbx=DZ(-M$f zKk-;}FgwwBhBjSEvpzJ6KB9HIoTYhjH8UMgNt=k>5reU@(%x1#Mt24tvBYB(Gr$`J zFRY5LG;p-4FaDm!62&&phEdM9Mx|$1ZDgvKHQ~A}P-0HRq*2Jk+eifEWVI<=LK<+Av79@jSON+s3Gc5ctrH%Sha9^k(O?;EDI}6 zv#Cc`m7$rgR#LtdM4EVd2!_G&N`y4S&RJ`#m>Q~>te^$sHRT|BA449@)fhkE#U6u}`rkscvOgExc6{pTyE}~nUR6H;M zji&1-V-s3LQ8ZxGA|`^fD>>$4uoe$wra^cqS>+W?NNLI_$7ULB(BF28?1&&|C zDAqpD1+1xCvJgGwUTdVnhWlp@Ra#tj=JcYb-Y?LkwmU-$4^$Q5_pLQbAZ9)+L=>hD zCQn#V)cYXp-Q{zCre`HM%IDIo2;2icBYaxsnW$$LZ4$wLXQUI?T;FD@ILJ>xQwINS z_);EvStNV!W=jtyIC#0E-?RTtqA!W{ai{%t+x?GG&-^{)9$oO8E(?7t`X-ds{`3u9 zAQ%CI>VB1$S;g^5OJl5?NG?2(rdy$}UH+0!IC{=ej2@iSdVBHvz)5v4)p1i#hkB)( z)`@%}>H&L0w16<=c`dIT?#@@P4vQd<#P0pfq$-9~}!9G5Hu| zPaVF0Rx6L0GVue0_rx*)8JY2pf)Rddq+|5{FnYcvE%oD#ctBwPdEeZYyYaB*>fhXN z)w-7_%Nt!NIUQvFV||XW9HUjC8y@5UZkNMg0a30@1t)rgq8t@kmvLNo-@@Tfv?%p` z(#^ZC(>I<>S?L>}=LKPQznjmM1Pn<-IkyN%_}Yh}`jJN!Vjq-$`P*mJ2odA3Rg4%W zN4E*6G)%2_g6lJe7ni$PKb+n6tbJ++Hj;vy1Xou zOq#F^8mm&!7|=p7Ex1;RGiTEWCTNtHJ0LbX@aPUEclXoDkaEXdw9{4;d-Boar#J@6 zfH^ts6^Vf139{ww1Rdb5Qv^|8w>JcB>f)O03Ohh_JrpQY{ zP?$;@RL<#$5fQ^i6be$TWEf!Ju^1v^NCk$-On4zGS$|zddVNKu^_3?h~ z!L2+k{io{dMX|W{;}SD5y^j3jFE zxHW^C)RG;u>PF-{WcXV1m{wNW3^4w(yLLbNFCH%}v3)VENpxxs%cRrj01*b#M9}zr zdpWHNU6kOU~f$-ZXNdn=t)>Mt88lke`NlyGNq3R+`gcaMR*t!|_|;tM`S& zLLr%8up~0GEwB1~_d`JLqV8`w<8XP(dzIe@bDgxaKTpNP9=Fsg>TgXZ3q6H~`RBei zJ+W{(p3fe9OsIc17T4^cl(vJy@hAl^2qHkXFG^Al#(Y+~gb;rDY4J;=aWJ-e-3z zUHWh(_RZ3n;i;=Vr@B2Y*&(F94Lk@OMnyq5qCF8!o9#Hsr(m{YdPqaFSE$QQ5|mJ4r&(;CP)Mv6efn$?e)$+n78fni zl801sGFJ5U!|*$G(KbdtBWAhK6YQG<=G2^(eoF|@sQS7$KD&SE`rbzJ;SvuSG2xBx z;tvlls%x(O1g+2)%W2P&CPfLBKaDBTV%i>Yn?Qt8+$w|x&N;A?|KZ2@$ z)TxAvu$G&5tsMuHIHTgdw+-7*!Q{R{P3jrvxt-KEc_4&5t}_Px;lrfYNqGZ%*4VO~ zk^hWh5JgfaXxmUGV|n|4nMn&$5PFW(4nQZ|2G6AP58^3OtTBUjKNsDuUbt1WV)iJK)+*4F7aSXAJE zzK1`Zw*hAgCs&FDt>0!E-vBZuEH`fMKe;iYr;==`K9>wk4ZH8>w*Pp^$P8h>!D_GV zjMG(o2Ai|tvE(!Gv1S}6d??_G;FD7CJ>)-D^_+H>Csh{JlWRx!wlg@YfBve#!~LGQ z$Vc_-R)^`zliL<$^6)@z=((orIsMOY-)(1{w$rBoMH)UY2T%lFH6*{L$QtW%i8)U% z>jWJ$5ZPM)hGlkDr?=LMfKWfaKg2ws1`q>761gYKP0w@*pIEE_trV%Pn zl5cR`#0VWGy1gfXY`O(JEoZ7IQwcz-!_6(ZN5 zxX{hK57`A#ErvUlnH(IvDm<1YO>25$%OV8$OJp(||MttgJdPJ6Cu<#VohKAf5XgUJ z>ON;S8GnpPYjfS%(J|aBGs$Ifns<5|RibFHZa|3=N?+KI8j}5dLq#eM@H|2} z=lsYKNuuCrkQA3}O(k?FRsydfv?ky4@|(5ciN-kf#t#Hw75Q~X53zhoQ?o|Scvu)hi)aIvaHVAk=j3;S)5|^7V z^{n71spjTGE1BGr;Mn{tFco4bFQ2e%vX!6EmMZ~<{vd7}R!Z1idOy6o$8hbX0`wT& z?kl_LhNt${ec%xOdX2&b_G#8p{IdPmE1y;=s3n9-nx(&J3ee z<B&qlCwEAn0r6u9%iVNBEsXu=xas~a2zK}RKlJoBTaGI(so5V9kMZm{B zYV;xIA)_DyGDA0Xx66XvkUoNGBsJyOv!KG^|C+?(l|~ju4scA@GN*ij;5!PJi@ks%#RLvPwYi6OBQ2L3i{Jx76YVxU#8GtZ!tj zqYddD-JQz{5{gDs0185?v)20$+QIX%;U))Cs*Lj*VQF5hK z7By~Gb&T(p@@a8&mBp6@>u+^^)0FZxaKOE3ywA|%idEa(wR2If+i_6HQO*CInI5_k zLWRFD;Jhv_8xNYVsJ)WtSMu;8(4gjy3ErYEqG6jg&&BKPA@&DcC9z~@XjQM&&taY} zWJlC+wiTYD5}!s7V0il*zW319;GaboLKqArj@)?VgH@*?95;e}#H~O8W3`0my9Fv0 zmEvA$UJ1qDRdi`Z4<(zm`XnD1TGTt?WMQXalNy3oBbR(Dx)&la5C`-p=&AmC@t=<= zTHfHnq(Pm=XFcM%*Nwg|9~(Xfde}U&Ji2|AsyS#sOLn0MjE(YWd!Ul6LR|P=*>_>D zTIDAGTOB5YK%*W`CwSK}j*G*r^Zi?G)F)X+#4siceo}YgG|E5RaajbPEVBfG_nIriLD)Zy)B`-qYO0LruD5rWpn!R(8%S#{?d-?kyimV}(_od-9)9eiB>d}T8Y|W5xqjQl zk+b=I)y%S3nWL#H9*xUT%0LkN1AuE;gGmB$%rrbZR+$a#97#8aD z-MG}4i2Eo8%ErlA46wir!y@E)JREW44^)4?9`)ts=V z>5&$YD!3BAHigEhiCbAj{IB&w{6#4tVI#zakVG5@JE@lX?e~b}Zdb&{hT|ZDC&Aj3 zXzC>0)_yPw^yXp4r4YUd})F?^_(~1TJn_2jmK&!l#E^Cz%lbCK=g5 z>Bi6Q&eSjB$y!vLCC`K)!Ys7$M9`b#) z!TL+Ar)S40d0&0gio~}9zd-Q@$*rrGPBs1)S^I(Ars!(JQtg}E;pR4>z_frB(D2H@ z%*d49h;dHF;(7K@Mp~OqE{p=u`E(GQkz2jm9i<wNFbZ_*kj^g1p&lFeZ7e0r0~0uQ`snlH`U~h~7m&h;Dvryt;7{J@S zb~q%&u3>tE=kU>s1EZWC;x0s9a2gTS1 zA1g~v<5|9?ZTVmSI&xWeT^y+6Z^p=SVv%7~Rml!J#vmmZ59wig<{0xsT+^K<;b455 zNLvhF$3n~=v+gb2M;^~aI~W*Be-f9eiXr8?VBDv7{z%su#F_=1SdT=+&Tqhd+IoBO+wzA|3%BdE?F-`a?CSZf>+;)zJ)^kb zPC09iy}+vcn9v{f>E`~(*@5v;W4&}SE{(^NNT-YUL+@%Wt?`2Qe;5;QFw<6Pq^@3} zJ)#Gxm@L2aj_FGO1%65{V6eRZ_nAOiobJ&fODD{ISOr5KCivh;s-QGo!i+rjjfBK6 zn;0%gXJB3#iv2GqnytR%ZO~4al>GwtY1)$pG>z!)Bj&L@2C}Us)qCv4gk~k`ilWrC zldHFwg4`KpsXX1F93N6jrczXW-rd4%x@OD4rh1$majssa6mTCYQ=kRLNO~JP@`Z3p zcM=)7@Md)K+^5npXNDv(j2hn=;BTh$0OxcO6pMD~464jHfjS%FJ~cB%v99NCFAU+JJvGq+2!Rb+Xd`~dg9bG=s=xASB1R+2=aXEiLzrI_Papk1W{H0s6iTvLK{VKI{i*jBZh$K&F2he=l9vyf6h>0 z_(S1ZHm+3~wW5Z(Y!voH7zUa}0w~#a<#4P4$6B@b`Ub`wasR61ww8Jckc(NB>{+8S zgLc1`qOvOM5kq+ig^j3onN;`W=-(O0UsqsR6eF*bKi{hO&vCZ<5fhcxyM5iKaShvT zEwlruA39M~)THikH)vTG5-)sYWs^o%1n%@tl17NLN#hcS9&77UsbV&bFC95kx!;Yy z8`);}>G~j7)t+i&1I*iemMG5<8km(*Ce4yZWmsObjUQaJY}7lai}Pg`f^^qB_8ti` zbetYz`}A<;I$`lN9QT*C2gHaY3-0ov+>pVtT8|Ha$x)S`|8lXqUgBy@{lz2+GK!)c z14)`CR!agZNKJI;qS9Gv$aIkiNu;=@b|Vs_knlj@=Etg{BCDL5PwA`-iw9>r%qw8f z&%C|t#x5PXFg)yYXnKg)OywcNLnz1Cj{(Oq$dIG?06z;2#r4Y1ErG1Rq65%eq)Mf% z&tX%5c}bWq3nM4(8Q1$KIvaV~$Osdb=&^X!-eQ<1?85?s zP*C{73DKzYN9NhX$AJZ+sC82b$h0I_zJLWS_VOxZBz3f1*%9&iVN2I&6Z!)t{T)81 zJrk6i(qStj9>pA(%oSQybrgt?;;LM+&@A`~$Nwj4J#!@)Wem|ZmeWzCJ;~H1lrqa( zB+J%-#9lF~(vbc48aQcSQnwK|dQ>z$w9w1N9CV^S>WG)&mr>H* zpn8*2?OyC_It%G;8fqp2TtlaF)>f(6Ne#IO9{M^sgr_wA(Sp;gr3iL)5e9^_gY$JS@N4p%a zAxXVl-gf^PBQ_nM?z0I7XbtGz;L}|Hq^>l%txi@3D?Tq_Mh^yS;@1%~sscMMYgZOL zoJ(aPj|&&OBURNe?%N^}??PJ@S%+sZYiT)@6{Q1ydRb=70@OQc^o^DWCSfOUO4C zPE|#(ERD>{w8gw^w5Bp2Nsk~F3#BF>35!yaEZ_NQ}f z^T(lx2Vqh8iea6^E(BFxCU6#{A3r6lZX}3uD!fRwnqQVKa?N@pVKDJw>$muYbYA$9 ztNsCP^{-tO%vX{70H2XTgH_Rfldltn9<`^yy$<;xPp+8=7oSvR0=$E8*I(+>;ium0 zG$v+vN4?)6q~a-W$}ZdIS9D)d6UV~nbDk*LJ;(XF4=sK+;RCLdbHo`w@nJOuO`i;VtR>lMSAp@sT0 z^*v@=M~fwmC*8SOE|pm4_HHKcFy* zosyt5Ysw**kUC^AD5FimUX)rNjkpW|M+TxnjKyxmlq5g{QylkPCKHE+G1Se37 zvx%KT$+7$?e%>VK@4uTHaUGKr3Fl)m>x3uOyaivA#^3*HQr({H_7JV;Ryd^9^dHUx zI#-A6uKJm?(LZm)Yrp7g^UXU64?TW%)sm9_uoENB=q}YPRWn!(>n&Fp{<_b`%=e`eh1dN3hsry_2B@3`9a9AwCf@byyV z13|4>hDWw965k8f6;C!rj0%_~qmNCthWP99yPw)(;rF%ee|SHM-Q05E`35m&9cC*I zY$=iX@+bZ@+I2oZTP&tzZm8Tg-4eF@HGL2l)I-#Pi-~#=0r-hKF>Q@E!-2ALLO%E; zg|hRYat9C|qd%^aTCgd8sM_@YNz)^8S?{q0{ggsT8BjE!chrWsl%6^Egy=CDLakGSP3 zQp!1|zq{aftsX*yO!Uk3Dv8u5e=!V0fb`D@h7B_G`#U}wWD;^+4#cI5VH6EvB$I}k zl}}8J6!nS1!}9H)O4f_=)M*Gr?IYWs!GYv{wq? zM^_?+Er^C{nJ~#7FwsU(aatr#$@nFl@#6*H$eBn^Rb%uvWMmg1%4s}!6COPWfC8IK zCALMFWjpu0ez+{*Nxe!B@PhQ1H1$*mr-A_h`sZHHz%&NGH>QBz0J@7U8c6^RASt4( z+y;OoDF7JVM=njWds9)QrY=;Z0s#D0{SpV_(4(87BZfl99I}tXu(9-eDe$xnvI_9S( z#CMr>*;o-R`?7m3Uxq<|zT9?c3WHr=Au_8eYnHq1Jz#G?{EyYxm-GAp06-of`TEcR zXaPaNB(7i)^@RU2MB3DVYRVe2Sey0TKi2d9n&#nk6?%eh<9J*TAu0`HP82 zso!ML(OnK!xGZ}}P9^w~({;hrc3sSzA!CNGi~p(?2SyIj1qXn^P%|yCDHH+@)rIPk zf>2(QT4pFP{LnyPh?bca1R7z6Zzc~i14Hn@fkdyR@$rFRt>I&a;k_LQod!mYly5AZ ztj1?IQC3vPe*aEBhgnP?$IcVlx878A!|o{&1qwVtks;xYEN`VzxVPg77)ZIB)Q!IW z+GD{oc*;_0G~09xjnRd&j~-%F&}3&2Zq2_z<$A`iC3;tT!Jys@ay&X>(&D-KDT$9@ zn5g0}k{}wVj!enqy8H*S!GomhHH4U--{hHe>v@VV_)jJ#|L@5sujBSF4B2i7{lCP6 zBBUDcN_R0m#t@s?FoF)TlS;OQ$4zCWrt~|7&!Uw-zQ{nj%&peFt%}i&Ds`!Uag^e@m8C9nE5}hpHUwRX!iJu zX~Okg5s1K?)Iv<}sGA05CjZARc@KliyBG1@$*h@J%ahkL4(AZ_7?cRxm-Nmz&Tymi{n_Vw-q zl@bs^luSH5esoxA(I5r@Pyhh`Zcz8R@5a^dU&+S}7a!LzIK(Zi{!CRbo6WiTH-^LZvm`;{~QTGoNy*V z(l+bA1U4^T7DJW_zs#TjKpa#bAn+!|Cs-02Nz%qA7C@~j`Raa9|0@TuK~!N#MBx|2 zKT#vdD^Rno_@K!!DKJwmlsx9Gra3=zVj%#quo4XnEs9Z>bVf|0n-3-K$N^D zqD5@^EmKx5ekpRsn9T^8a&9bjCh#`5$Rb;PmC&{nROn-8Gsl!E6c(AxBq+pyYKuDN zE17JEmO_ID2(qD>Db6i^LRXug4zI{}EO}cY1}TlVRSpaIO;$|KXAQ>|00;nV93_1M z#HHr}7D4D*ZHj1t&2-gAg&7s5(53*H`XD_ey6UO`T`(&?o&zh5U?@ZA{=$qPE$VRt zE$TrHvLHk3ToNifjf7d&>Y5XUlp_Jo&>B|(HkktDLK}_E7=qQDz=k}DPzySzjWlcp z2|O2|VrUerP)w*lii9;dq6`{mfEyrAqKYWPtVjt-`B{jk*>$z}$q9;q(KNN>#3=G7 zeTB)4#l$Qan6DCsi4Y9^H8vIwR(*Y4Er_|9Vo(&;WDD%T=&MV$lT_#!)IO>xs)i|q zy-cyqv7K^U&q$=w4a+{JhE03T70OH8n$9>lW5r}sDA=YLmcv$98QR{Y!!c09Ss9h- zBuBp9Mmbhu4`mOI%78C&VWtzbUUCflr%1f6f(y-Sj#ghaW>t`-IhqsE`ZD6CqwS8|DXBP{sz+TQP?vrkK`A(UXqMKb#;So+lzG~keSvb} zeq}JPtzm11NTyxdYO5A1taZC@c28TjAfmO93#X*LNvVjhl-)Jc(U41yk|G7(ybEj6 z-@}3omT=kQ!)xAS&7>OXR~li6WL9dTEwpH77M>@BY@#8cB1+;1;!7bzUm1@<3^Fpb zh*61X00xB9PtO<72Md2A<1Z!!OULf-eLgrV{W|&GzVRjc!2ibYMfpQz$GxX$&emMl z=F+vdpRvjp<}}af!ACDK32u^$C+I&vV-w-Lsh7@|sjH{e!6I>9EewpK3Us_lXc0Jf z&_hKdSoyIK0UkomwX3Dwz%bXJ8BGmetfWJ%cV4ijE`fV3>JCEcBm;;{@&PiW;fScBhY2n``-(L~NNK-dHOw2zIW?5l zI^RaGM=RMIh>Oze`@ajla;40nb%;1v4cCd;OzGJp%d%<=5=c$g%g?4rr8Qx)L@BT& z1?m&NgrH$4Fj0H9-dKM*B2mbMw&fw&*P~8UEiID0E5yFNOhxiWXPou0fapgXgvbE! zc`LN7nfa(Fl|1h7JP4}{zNejIKBjW&Rwg=a*!*Ew%7IySuCKlGCiBHiaXr^6@_*md zE?|qGAYivT0q1kvU7MJgtjqeDqp!}AtwV_dA+T^jzb~y>+ zAfPN8ODzbj1q9)PNUO|=qUfTkzz`xL{Gf;k4y{+w9JVSm^gXsh6o?cHnhmv=6Rj!k z?OT#7zNeQR`j-4~rIR8>!*~q_bEM24TarO?1_xcZU)jSC6$mU*gDi;G(96wPGYPVk zH7m+p*OGSTpt1q*3QJ}gbw&l6iKL2gBIP735vgoKjzl_B0uXY70&rkNBUBwHE8XfW zn!b6oNK;xUMad066|!b41Rm8w%95Xjshif1vMeaK5uzd`Oz;>YK>5KVgc#_Fv=K7J zSdG9jRB_F~>%!ksuYILbZDZwZ5ltJ}^+7mx@aPt!9 zDfMA+&irZYQQ~}f?#BPE@tf1FC*OJBo-zrww_gJ%{@izO@)cuLOG{x*Ok5@f>ZxsC z#_uj&-T6{(F1g(t3LcSpY6eBn<->1&pus}jr*TCFkvug$}gi+)@U=J|Gf4Vw`R_pKD>P=HpM@&GvVgcmTCAtBh$_@ z9Uc_vM55wx6A;gSFptYRKW!Zsu6;{;=!8+dj!h^ZX`si&@owV1drl!mkMlL zw!Au-I7?gEDCC!m=8QzPYb2uJSzdQ*ZnsEK>Dvj!uMyNVCq{q8t_n++T8kKo@tTAQ zUa?|Dsc1E%y>tt828K9Ol<4uoG)y9`iEw^~de&5p^03iN!`vlAw9F{S9XMNTgesxp507NtNi|g8IeuE zZYf_5G)+rwrISL>m4R1GQ`>l*rM%*5-`M`!0(pZ}Nr6T}J!46$Ca*G|#A@fK&TdE! z311YkOU~!;0GFlCax}fxRzHmnBYoeihaO5F&rm;YRkA%udl)9*B z<$Vt!EQP3)7_uZyPo?Z3?4ef@GdjQP~-KM*|cVsPRX_Js5`(F`t5S zB?1B~yR?(-oa=d&PuN%^5w`g$qiXMXBxjqkhR0+PY=6+Ov2obt%@zYR8md zD@S^Cb6yfgOj~H-r&#a_$y11pP+52;R4V;Oj~X3P(mdCoVfUWXN}?u*gB)60_3!QA zisa*3-(dX|TdW$9=s)mN>RT?P>suQ7 zDzP1M5c(dJ860@731?*Al6chaE!Q<1dg%lw z`JicvDKUIFf9t&iDUf^jdxfNe$eRu;THiK{24eerapsT(N_q?rE6E2=(tfJ3dLMaJ zCa&4}cjpUI!`G^MMv@|ZT@436YyWpv%` z)kOt0H1RtdMepk-myxRq1h$_6wG4+XzB-Qkt(EzM6GUu^tz;z${6W>S1i=udpc;$5 zw4_l~5_#W@+#_ZQANKb48>29`!6Cib({xJpi`t0_yQJspZr-%4;tK42)XGSIqFlMQ zcU_HaIk>S|rcr+~iu#tMlSu`dDNd$9$MxJBou|K2(OnT2Z<5{Da1p}C!lJF3vpfVw zpNi)N?vKZ?uEXq;rjSwXGm?U9gHFpv<|U8eG{sg?E_oRX!n*js#1+R8i(?YwBBohG z+N|?f$I+>L*}iCp$m@v0p;*OtXZ{$E`7?Rnr|$5_72o@9e$$lBSvoj%Y5TeC|^ClhoAXbp5YiT|OFP)av_iKN# za=Pb=aY;YTyrauA1oMmVFi?mb3&^8$_4)D=V4?1GVD3njcWVy|zrS1GZ_%r&X%=P3 z(q1(>*X%OzTCN7t}viRndwzsBVX9AMJskdI-53YM(bB> zyW+`$K^c-f7QP>(V&?a^4aTYo#%f%ttYwGVtbPc^5i9wAcNh%7n&>6-VL|5!AqCOU zjTII~x!(D*M8rT*=?Q!4d!f;&Xo;yPbg771(fG0m>i7ipvng~Ti@#fwM-y)Q$F}#g(CogncVeEJ@@0SYfHzJG;8`%hvXsr_t7C@7PkO$=ZeZL9ETiYBI;z z@R_rvNR-l5Q2$Mo)) zOl{+PBD`+m&W}w*+E4x(f^>ggq&p)Too4loE`=`0c{t8DH%$9KI1ES+TIN^}5aM&5Xn?uCYT@ zCI<36bK@LGm53l#2QI~vi!k$+_KkGU&Vxy$?mEp4(FYs7Dg(c|q_A?`-mM>1NEV-@ z8I*VW78Ixol9cVdtk7{o0@mG1Cjd+%2u#nMId3h$Xg}9zRSAnuH>9N=TIxiz=IkFc zIhrxNuVCT{?_5o`NX;TO7p%nQqex(L=}3;H(xsFBCN?7pq}y1lXp1{B$DuN)ajLPZ z%AOW!)Wf-&H1;&JhYeycet!o<5TY5wGIEJ?5kvhnL~5z38_EWVM2(~c(W0xLc$?v5ir#{If-7`RNGfB)n$j9Un1WM%G`tn zPq$^FvlH=YfDvF4Q;Mz~o(nbZ!CmkA`*@g0@rFVhfAC)><9r#kd7qcEr5oDY=S-bT z;=gmmr=f05(DxpxqQhI*Y%w8{d{7fr)yJRd**^zi4wCSi!-B>ag022PkemT)fOwt~ z21g)$jHc~mAfA~+UlT4rBZ6Od+1~e^;<#9vxq0iV;jv)ee~HGmbdxDT4@qt#R@@PD z_|>zno!y{^5MpR22J(-h{1B9Oll;tmx&6KTDnB+}@{d_QPdMx!%!obdqQ5~!!vGOM zK-_K)hR~%0e0=<_YvCtMyEW?*$3J4ZBozFslbeSZ{?ytp)+L>DyH}q`X71d*xCOl) z9b2l~cV)wwa87k1sSR7NbkjQ)c4vz!-+y7&jIY#BH6$0XU98Y=WJ%cN>QqKq$`1I4 z%!>Canoca1Zu7a&^I-1_0%_R2^nyO&rutpXME|C`r`Hv$qK2*F72+F~z0g1&ALQl4 zZ{GrIO4c>=j7m$g61Qk72XGLO@i?S{Y3d+}Abe6VP!}<1q>cc~f{rer9-J71f*f)1 z;5UX3uMCtUif+mu8Jj|umPDlc9vTrko9+vck&JY`MQhBc!&BFgVvEYJldsi{dc7PU zF-TLZ3l92D6cv%rivYqW3gSftC(6f2nnopR;Rn%0!DYb6TDn0pP%Rk<6jp?fpQr^w zD+1!dFbZF9(H9{=P$0Tdh(YiHusKRp)ORwV1{xbit!_OB3M`tmSSFux6qo>#(Nd4z zhR~pp;u8|n9JnRQqY(Ubra_Bn-VUIZ=4Y)DAj?$aqu=dGCr@Gi`;pJ(*J_1piv6iz z-Kx;|GRIDh5eJ8ZB5{>mB(<0qNqXI$ys;9o8;>jRw=15bDVHy)N^g*mA*Y9*BP&qD) zFDnyzQpF9C<4%`S`a_E#kWn+q=Fz7IeW(*3@Rwp6pF%^8PKXOv}+gx%?#B}_uWL6S%OBJ zwDq1le$G>?m|aH|mV7Y)DK-l>YBYya&*fqvo_cJE^=>o;bt00peLL+5TZ+P~_;j%C zj3x4M35Qa|&9S2*hedL8qmu#MH!3hBA4#E{gO#668V><`0=*o%razKj-d9<>hg#e& zl;!TurcK0n5Uxvru#C}6pbx3)BB87w1dpbTvtS057Zz68TGYwFB8DI-q?JHj78YG5 z95jyTWYz?r7L;^?Z?{%2Qd=9U{(4mM*?jhq)Az^Jk$H?Qo}SO1?O$1N3uGb*z-N&hJpEX_qdOn((FDi}9Tuzg zH`-l)-z>Ex?v8{K&|Q%~`gL^`Kn~sd`q***HA>9{Pp&t|(^*&f;V83k6Jr zs#Es!XYSs9CQ5Txk5g*VC1(}(e(%=QVRZDQQDrm>GMSmd!EtejRT{i7KDtOC41;Ar z%e0snQv@Znz`~S)4b*R;@+NPl>&~;|+$X3!JwOAKUcS)h@v{{%iq{;0^Qz&8kU}0& z=&St27G3m~{Mz_(;`yKC6qR$C&#E9nO54(`z1qes%ysqHZQftYrvA=qD zt;*C$N7x{RV5gH^9>RC!=KR`I!>u{d*^Pw;cbT|dbw6wu!MGoC2;xjbavZS-g2;{X zw1k1IUn74GpzWosJDIetAhJrOiu0DUo!RsO5koL)G~=1sdlExVS#mJ%HlO=;3*7?I51n5Q}XgV|Aez#7wFJXql<^8fYq))PzXM4U=d`Mf)uCUF0nxQKKv*P#o=1Z8WqEYYJ96SbTCI)3-lg>hSE~`OGi~f9nXBW&KE_{|O)J{g6l%xRJ*6x4+Fq!pRHy1m z%1mxim1b|(yxH$hTk2DGWenI>L)QL~UY3PpL&UoRPHQF4UX^;D7Gt~4E;Oz3V(xpl z9vWA*?8uHs#0|B}mo~L;Iz)la2hXVYFqqhGM<7$!%JFght1q<#uQAp<7tC?z(0yHN zugYhq?F&CO-NimMXE&ZdblFOF^Ey>~g2=gfuXP3#vG90Oky*)h4#4Ck3pAr5Cx3$e zYlqVLjW94{UxsG4l-aTFB2abT*2D2?HpHOK@+*5s6m54jxrn1gno^s)u-I{$w$3r0qhErwt1cq}MJgaU? za=A}wnLH>|Et-oH{oxbkor7&&lu6gfMc)i41jku&EI{jlv6>>W8c(OIC@6bMaOpyt3LjXYu7Sg<@8`Xj|b0Zq>kM;zr6SB zW%f_)i7y+qIk&A`&+i!AU-Qc^&bvRZXtSQ@5zas~!0i|Yyegf3J= zXM|omDxWo0N*z8_#0!5dpo`o2i+)ml(ovhzSNWeSU&^UvE2Ldw8tC;YRe9sjOta4A z&D5F75LoOi_})rr`zR%|QaULQ29^OgE1-)^fc^RTw$f_tql4Q6Ip(!?7+>u4>cF2& z|MIgBeBza4O0FsHM2lMe5m8sq%fvO+A!=eV?9=->D9r=R?k z;<-?Gk8s%d;IO9E?7GZAka|RaIKgs#FH9KHy5<^sw!eBL zlZd3Inq6`2zpQIE7ZE8cH9fxE`3`(uw`k#qT%PPE&q8n(=r33gj+xLl8!bcbEzayI4hyYGCBFacDCZN@b%=c(06J3Y?nBgt zPhd-s5<;RNF_8}~Sk9bs#-cuC5!~J}d}54KbC=Qb2;@j{!H&Cz! zEK@FesV<285c1Riu0yCS9O*de86x!Nmu+oFhIfFkOEL82VYXd5>KOq*)O-Q&L-(NJ z>m`KmK{elOLS5ZJwjGY?nk9_}cW?MhzW(D^t&@E#RuS0+>k8DYZ8`uQR0lp~s=z?- z7`$7zdGlm;<`F*aLI0k&*C??ZZkL^E!0&VT+2wrM<9Z_^&ykI{%X8@iaR1D7Pe_2o zmwaU_MRj~hOLy5wk?N@R8_Oh!xP?uSEd)>4_l5KgQ^6x3KS5mrf&yJ_S@nIrXrx%) z66f=A9&5SRl=9bV>B17+tDJOlP2#r$If|UiasF6Zs7;;gM~!FJYix&9`yWwQb@oyx z<683@jJdYvdOZ{TXvYruZPaW8D~la&8O0c^M6@O${`BPius$}ug1%i^_$$ARuEzp0 zYYuzacw8*xdCwVO!Jx;3O6-c2x!hF#(S7>6;-ZCH7JwfKQDETEL>UeT)lw98c)~*p z9cR_B-?%I5=KBwvK~lAu=qQrX*<d2oXyOmOW~(u>J?Hp1R|&ZBjIH}`;*>FB zWxV8&X)7-E+E}-W?8eT@ne6*|H>tH)!c_pj$_ac=7a0_80jUcp)~u}UdGa*$n*X&K*1kuNZemZz`0qXR#}T z2frwP@97rwxf#dBiC@Z;7~bpHm!(E0QZoK*-O#CnY$6?D7G{$|Yj?S0adYUh(jKnz z0r|r?;B%f;KAw~=-724u>y3xAAp{V-rR*%wCtG6_FAIW3M&XH3bDBh!jj=4HT8y$$JUi-)RzCw~ z)M$}j`t)FXV(`K}+IkbKS@-O}m}8`&#Y5v{p}|CfeNseSlHuJzX-O>XKqOitPE#Td zcp|iDV(f5Q93~j(5C<@Vm^OSU0y_{?VS&jIgr7yNK91BNsYdHn9EXz-oPmA` zAcR>911mxg0Jkzc8#bbVC%6W8@~rHdVFyDCS2Sv1xRKJfJzO!)88I@5@Orm@J5`mV zYrS%{L|;ENG&Bp^k2-S{yq-pE0lx^LMaJ7wBY~`J?6-5T7=99U9Fp1{7RXGViI@BFy?QtnSpByn-C$@*SHDN7D7k zZDwIv2ZNpkRuUwsEIlysSB8S@ER|>2^ z#rG=Dgz6i>88|b;c;}WPK#*bARA5v zPRu$PQRNa0LH>{D38=nS4(#kD_#d1$;rlqyBz%bB7h#Op8ma;c0%)(_eUCu$Y z!5{_8q#B0;Mo5H|E|MA-ZoaC(&5jvK{$yUjZ^)1Xi%l!RuR|x*_14BnHKFWwmFa3i zaiu!ptb6xXSXq`>)W>wvvGX5H^4ML2qYx(e(a7^NeF@>95T$!ARC-x5JjJPTvTheH zWu$fuKIpa7Np3Tu^KYd+ST_`i7nVDZ5TX7JyW>%Wo(SVux7*ZI$CLPJ_)tjim_RJ& zUJHV0v$`kwo6xVXbjse7V6u~LlNJocp~&hj7X?m~HjtBN^AYJUy{z9VXjxm>5wYCK zGGAXnwh^BdOlgD75bRMAx@N8#Y!LFy==rNTpj$%ZC5Yg)&|RnWJUa^Oaj=JkB>Ev7 z)|%Ss5Dpg?14*0Sil?L(!oxeQHgZara#mHFLxU}O&1#MjDUVkepk)enyPJi7mb6vH zh)Y-=Re}hNq!u8a%!~~C`jYv$@7s7cHV&127mgBYv0FmKCil7aYIk2okmBOtZATl` z{f)XuMXi`>?P2R*s#dtY(-Mj!on@HYr$5KvrpmM0Bpf{9v@H>!HwAlM6ATLpArm-kY3=Pp7)MLIDV=V(pHgPF5{{Q< z+ygafslu`=CaX8#v;GxP${;ee<6Qav1<|t5wDFL}NKj3p8R6iN$<7kw_IkO@LZ&w| zc2YJlx@@-XPyNwL>r4=_c0%dL6cPR8kcs16EjX)}qJugPrA|uc)qhm%OE4>{3`J1c zv5w;}%4;&M0nc&GP@>xI+_?Ofc2yY3O7JuRqL0U=RQ+H-r89XeVe7lNM;2aFO%)ty zqC8HVJhlk2dqo>|MAQ_B8>hl>qdsL=j3l2ZZI$`fys2XR`lH*EHY0}fHL1jeX3m%rKpkjk7zGZNiI zmWBZEor6yH7eBAsGEAwgu6(qPxf7dNWi;xBSt4>6W#j7PRZ{@{)rJCy8Y>73CaIB{ zIvht_fhq|<(N(R7#Kd6I({4_?(7z$R;GGS>D<|7vHtPfY<4`aFEEH}>mER#4*2B5Z zwl(xRim9dS)(==i3-$H?-VG!bmC#aOX3wcVs(_YptANs6O5-H9%F~AOKG-D{H3fJG z>%xuPw#_8Ts~W9HA;|ZRQawFc!yOi<7&$yZL)J-uy4c2c;|bOIUM%o~@s8r< z@ii=?|K_gbj&OP?r+2eYj2lS zWSxANbfN0>yktc4Wr6O5>0o4FpoAjF_hx*41Zt8E8~BkQ+_YbKxwX~HqDCl4Rf!uP z;*qv`;KAHww8SBr?K(&kWnVOyozUp^o){V9gMgZ(S!R;T={=YhxWAW%fe8*O1qsB& zDHe%=u-ikLoz9{kOYlOAbSP}A+S){uUp73X4wK=iF@#Zm%8ogC4PaPiVG*|~MD!$c zcR-}o=Pl>3O^dfeK-j815+O$o81I`Yot$tgM)nqIJ|`O=qP)Stq?m)L1firwLi3{e zOsyrHBNtZJBCF)GS=`?Wi8S)EOo|hsm2;sbilo_;nrQ_VJX5pD3LocAtI13&$9m=fU#I3@qO;`aqLVeIFqZ^r(s_ zZ;~rc%M{f&rV9IjP^J+CCJtsu+j$|^g0EtVBMTVk0%Q*ks8$2*NkM2qAPVtOj*B7L zuk4$D3FGQEenQQK~H^# zatE{$^HXXyz$Q=Tw1ydCMRI1`jXZ!z12DG|G99K<>mo|3=tu@3iBz(I#|G({dfdvr`JY=i1`r0# zGrOgUdLtKDjhDLD9Ow1~s0q69k%-!N#hf{L@e(Z)(zEqU@`B9bKSO}RaR;g}?;#f$ zi>Z6KAxsKis=K9ErHF|ucbuJMno-CE*OSELXzGHra zf2Z>!vV4@}Q$FDi2ZoQcb2LxAC6j0aL#QVWUxaSl0WyL(`J-({3vLf4VrQ|f2VLgG zblF_~N+xOZc&P3+x80tYBb~4QXX7?*-l_gtrM(a6oJQym=_^_}NpPI*xc-K}7g&%? zNsgnf$VjH(z3X=t)7z|AFq%pj#F6PZgMuRLY||(|WJ9S={!#h6F3>Q3MWZ4p)+b5- zP|jn=VG@rE4~42bw~n=4PCCTtyI9`3?KgARV}28&>b1~=6_jKBeB_Ta+24sK_PO@8 z33VUyZY)Lgj@J=|d~n#0&~8*c_3`iKAVbzif1{?$C$~tWFwED--s^VK_th>#xahy& zoiSal#U5@o0vW`r+ZB=CJ_ZV5+>YQLKnfm8&2xLxm$mca*~QOUo_9~xufJ9;(T`c( z9+FVd4QAu<{O6wi_)YuZ+1OvA=4>92vgwe;=F9_Rf<}667;Q{!9OIsPLpc#vngP#b zgWVplM^|}j3Emu%c(h;XW4Ib<-9HscVs>GE$1jkb_l+&1xZM@4;QES>+f{DHOv5Ul zXabT*58^+3ei507?mdnj{Jr&egEEVY*zJ|sPDWdfrs|;1wtIO6`_u|OyJLDRVSN=B zizgt6nCAEXYxncdft!}rb3sh}iBBuDW28U7d9iyWbQn;59zM+MxqiFFd~uM;JlGm^y`djp&8V0S`VBXE)SLV?U7!&{*ZdKcJqz zp~c+-KVa6&5sSfaRIn4>hP`~AL^Cj6;7wck`*FQ=r-O;#^HC(iTKJoE_|NI`QwH=x z3!lza(FU!^W2Ne+PbhVLcSS6vU4n62;v->;YLuTtgTnK%MB3&zl1VFw1Qyr#|5cE2 z<&>S<8pxRG)RXve)vWd37E~KMIg&2wM18+8qM9CEsH=FE{hM9fG>i-p2N!4}W?*Ul zap4B~;lP844ui2n2aL2pID`{h$UVv1s*mQwVxfwZz<5G+%ep?rvh4XqSLMrL>QCt# zdc5U}^@W%z&if497mQv(!0~I}^{4}!-sBsIh6?+;Q^z3nZ(6eZK!IBjzyM#g6@#kT_e8@V1<-1?qPw4!s)T&p$sLl5D2Kb^ zjn9Uf!&IDIyb*`}JTX%?oiz#T{|vkFx))fD?;sJ#s(Bd@G7L*H@F z`nC(z#LMnVJi86D+W}0o1w;8{2rF|n4T|j#0e}{|H8drc{nFmTR-@O|SMtLmjvD{h zFz*^T3$Gt~#t$x~5wmxH+UJd`15{4em2v&YE0@Lj(mjqVk?cchkewFu5u|G>ghVJp zP~>3oBGkiPa+J5^*21x|OeVtNkXI$v^MZZd;#sogpBYU7y;c;`<;X3950!s*Wf(D! z0z{o`N7AR;Pz_NZ62F-M;WFIg`oL~VS)y>@2pBIQiar&$uJTkc>^(#!KCC1%PMonC zsUY6WEW9hO%4RKsESCkJg`6UGG;bUn7+z*65rGmC0vWFJqQ7lz4hXqa(nr`JO2Hs7 zkl(hJ#~zs9)&9+ztu}gFr_TR8M9bOhMCtvSkZ$0T4B3zE^@9GXYFHb>%Kiew`u9XL zKEfv;5~W&9kU`o*r-L+KIk7DmHU}gQ5~q$UVi%jZ3iwhdy{#~(LqphFSHjwte-g!AIw_qr{5d5juwsCn26@IfHvVS@unTYh4FYV!5s|PW;NU6YP3> z1)k%9l}u3#LWj$KzTk|4;pTh(bm1gVB0iCrAVG#m28Bvpq7pDTBBO~7g-2m)QLSEZ zp~@;KA4oo2@tmh~BQrJOfxCqZ=$l?$ZlLB2PC5hnU+y?x2!>WlC{52ql3^I}1o~KO z4#%D`d*gADW$0?)PjWaV1H&aDe}%rfNPu28bt7yEix04!u{=G@^$_(h-P{!xZ2ME( z`!>&QkGOj_2q(WtOoh2h(Jn6q&1M5&M?v{`@YC0-Q^~|1Ic75 zMZsdCO^zO62S2r%iuUl0CBKf>k+BhOga@MZEdr3`;B{1mv#}-DaB}Z2WT0@N`ocg9 z3DK}`X=Wr;&7(3j9a~XJal`P(H?U>7;%d#3K{B{P8}&t?Cr+*Y4%!d|FLgQr4FMWv zsC1-C(R&aK@V&4n@rq%zc&B4a)VJz+0okJu=OKHrdCvZtVH>mmHFf6WW92I9SMoz= zIEUCG!GW>mA_87IH!38gD#PD7ps6774*`*!Q3Q9s19xubGS8#+v28DL+k>YMA00=V z?uKuh9&;_e2%@Kn1Z~0T7bONJoTfCOY}=q(_o3%N|IWu zO;;dkVpB8?e|dhcKDz$nnR+U!GCi@9fc8-Ekry-7xeio=hFMSA9O9A-_i^R?&&CX) zwQV(1H(Jj{KWd5Dq;NItC2j+!zvtJ(c0woOw2}l&(J&aa)pce(2R--2?fe4yRD_8D@9P zdb=*|U4HKdQ~hQDX|fKHJbRPYiTdyY3e!X&GdE{%U?h8K73czp&tRS=)xAcYz8D3K zKTvMfzWpmzIIYOSq8`%#<_5tPQlg?N(^QC6cyeFQliV_9-6?`8NRPcF?&C+mAK!&P zGjt?BU%p;>^@7f(G+QKP(p)xwW^$TbEAru^f2w;#9FlOpf>B}C;Ns`}IOPAW3dx^2 zscMTlOud>jHx_W0XeH75EfnB#f%oP5ozZ#L#?Xj*j-T|#r9%f1+!iAzW{fRRh@?5h zs#Xuk)=-GKaeVE)gUb#B@TfQAT#K;zFu-FL6Q=7%Ns|N=P9NWziv_``Vwif|en>Ez zXzS3&l0v5cQ~=X)J#emM;{~RB`5nJ)1FnXoZA=T&n zG{FgcyG@}*53(pU2TuA^d&hrFAjB*C((_iunAOKt#Z}D?3ZHYmw(PJ4Eo1T6rh)oNe+_G=1~S07cv(uZP&0e6PDBK%2SE5Kt|UUFhT(myu{c zj1mCIYW!+K?VE!~3CT7j{q$kkUta}Am2;7 zH+z}m^bBDx4uJs{z>wp=eLvkCo*C!G_cE$`M&(FCsk*)|7B;{zNJ6X|_+kRD;#BFa zfm!sN6a!HUOa7$zpwVRqjeAJCw(i?e$|NI6e?~r2Q zQQxdxvGgd@QWgsWg8Golp?dF98CGmPXU5Uc&!OG&STKRf;|%F_MFo zuR>CB)7SNzt@2X~W0Xk~@+W>2-_k&bICR{k%)JUBtlDbngoqs_F4xBL+liUJm_&AP z0v3BM0U|quA*R!Q)QP^=!~wAu9SaP**DmlZ*@DH&f<;B|oZE_`hpIQN(ft?Y%YLmo zTs+U0l-zoBMeQUSn6h*`Ik!&Z9DFv|>y`kGS`&obkCj(-CKgPWw<3B$IghQX{(|(I zV5GGZXn`(k0DnqS?G!B(L{bm45$-4}EaBvs*s!U01#@O#GfwTll@T27s^(#gCdMOi zE&HLx@ABWj%|HMCJzidZ(f)J!@7rJhKU=8Ph=3+OHvlor zJM0*6I@<-Xq2eU5$)@)HB! zQ2-Rmp(rhlMMO)DBQ7Be6F&Qn`F_W2&x#d6!T-zZ|8au+?<-7M>-_&+1tUmEKoI`h z3;vJ6e0h$hEDRI7ApWRhtuq`9-Q!J@vi+ni5Q%e z0$3n$1~NMZ$r1yo(NZtGIGs3jk{P{voLe0;D}PQ)G+ZF`t^AIg%Qb0TV zvM~ss`9gh@Ooi5*6{O=TeKK}CYCnpjp|ZnQt`fxiTTgbkT&hf8qn5ANHy1_6)}d26 zt-n&UYSRK+>o00XXwKVO5|HgmATLqx^E`f;x5=lU9chc+R!Ki9)EhSznO&C|r2Cp< zxwVY)C{BJf`w6c;f*0n-Ggin=f7*VNAt(&^{E>LlynQ!Pzk*0x z@QDgjV@@-}O}T`Vz0zBvcLlU)({>?P&M}Q-=MxQR^n4?AiyX5DOJ*n}vzwO4v+}bV zchkdmQt2I!PaA^HE8RV&nXVi$P8_OP^t{dKq{VCQuq%@1`afW%HkxIa@IFGUgU z_$f&6+@@BTek6v$K9Y(2WkJ#LCgYl!(TKckbX?dS`pg32lE1`O;r_Ru=u-iXA|Kf=}C#i_{)aK z1jVUcjx|PnA_~NTd$IkpRxkxLABoypmj-~LwbIM4 z!PeCMrt2TvW@=PyDg&gqL}36lc38SvI&K2gU{49CVCX@Gqcsn9WwTomAKqXOv2rew zaKq>6qYAisaqKuK88vf3O{d1xw0UL;D;Mc6iv%|^+t&K2|Do_b;U?eoI7tp0QYy?G7$(*cN z9;-XVU$PgBPH-A#`FH@%ZI1~?9mIP z<4L4A@w$qTjU&N7DRGq6oMG)Wy3jcBrqsFSNR(zlU5(LP7Zmr`FA3qvelT6@Y4JsL zj_&QtY0TMjY1?6`VO|v@%&X%Tf*$4Zc{QI1_S%*7y=KZ;2M!#ROo^g@qq z;^&UuGIgC{m|el(jh?d78_bWj!%&N|DtL9d@ zX^}~{!p6C;nWFsUp^X3ye_iZY^yx#9cabMDMeV~vtt$M= zrmZWrZ0Ye>Tt0`OXkQ!Cw){)iM(S*XcPjr@*YN8o6K9GNv$`cu_TC6*ol1W8=)Asj zhIhGKRLo$CK6N1@OYf}xtgj7(v<{1X8eq878f>`3V)2VzI0dg?&-Xz*DZtH) zsueoqKopUo2h+U50!S)gGbswec{Zp7)II_sSW(W37c@k=JMbWLhmD^*JRsGY32|LG18*8m5hhgLxVC{)InJG-U_8 zO8^!;UzPaCTL@`v>NBWVDm{&SA&kx5qGHx~Nk}`OP9V-!%QMQ{RjMe4lKG$GR^vh@#6{F z8+h=Uj$)s-EIn2|lo0EfRgT)+g4k^7&rixSl^iGe4Lw3>H>;x+YJx{PmaFdp{(1mToaIaU0)ugC7KLSJl+w ztUQX=&>fWV_!2Sz_k7;4>i)~bG!)A?8c+t{(ik*FFYwQWmMgxf*=-dv{VtSBnOeo(9NU3&lI#NC}U{cWJo8i2ByXij6@ z8hSjoNAnta>d}gZ{$~vL_N~sBBxBToZsudE{sQjr-5?N6GwjG=C3AYX1H9!;krJ=s z5z*RSzTvbz`F-Im0Gk)9{!TDbN1pG`J$OEa7v9l)FzA@;f)419>o&(#LJ0?2R)ynw z>+n#r^P+RMM(DIko$2V6hPd1k@)_kbt}>p8yWL=gBVe*7U|5TMC*t>hy8Mk?cW5`@SFy^K823YDQZO4#T^emm+hh`<|-Ow zOUuse?RDLN#HqsVmcRMj96Cjr9LEk^Vfpxi4{U1e4}CE9mZU`rf3X_%NU-mka*!OOq@169|AysrpeVFD08Whzy&aexhVbmvRo0WN zZ+U0-EgF%1McuZ9JeWm{t13_zbJdfQ}KXof~4O{!FP z`!4g5t?e_is7c_2o8-=yMV>Ra &=5{=<(_#gexmz+Z|gIni%79Rohm zs{;c_ly;GffQqLx{s*WYdN_OYf%>oU6g z>Lgc`o70vy4g{}i!eFO2hdCRXS&JAD`&4M@Q0F@X9!kvzxix4<5*pQ@6wC9(oLrJg z#nJ^O6)>r6;mEU*p{QIJ1N|Y|b@lO_73aYu<{IK%Cqsc*Rs{3d8vAxzv|765MdIHiaPi2}O%W6CH1_el-Pk{5tVwtqKKAWDuG)+-Jf5z**TM>jLA2hJXEQ z@yd9#;58U~2zJY|x^8G=ys~oWsR9)f%Kz|lZr5em-(!Tc-! z$@C9u^iIBV1^70EwFLxlz@%dreUOhi29reN!U(IjMVj>(Az2}$MI#4W$dr96L)WdAlc7x^C!V_B%?>Aa-A^P*ZJ z(d0X$rnEoC3b=IcqFisjHP!b`*wNej?aOm_7~$fEaOTHvjTg@AZ#V^|*ee!7NV?|v z+&n?qlA4QVhnaILBnH8tb1L*kT1q28k9Zs$TOb~aT2kSE2yIlgn9Cw-{*&yMEBaFn z$lF-cq6cp$R=8ya6=R0M^oN6nv2udZCsfn_w!6S|LN}pAOSxiv(4Z}l6`GOL3nYj@ zHV+FiJy+gzK8aZbHkqm08^xIdO>yNQWtfV=tUn)?1>eZ3IF$>D%a-f+uScyA< z@~Jg}sV6u%C*Bxq?u>XOq-5E0YkQ*4fix)Y{S^WH=b5;E{1P(0VDIaa!W|`X3#uoL zgLALO{4n+lJ9v~S`;08gdd7LR+cAh3x%!{B)lR^FMq#&Vs|RSb&h$qwJh8$um0Cgg zeT$Uxotuw8xGj0>Ez&f(%i2BZx%dZ+$c*M@wG{YVxsVFnS>M6Si~{XgOlJQSZ+; z&iURMBedSKu@_@nR-EsZ&)~)bj-=HFK0ff)as#)4={yEN6&6^4Q=s^Nt^R$t>TW43 z;xdOc;;_i`v`E8e^*x-7`*V|uf2pMtn$8U)?fzcQ?uvl*bh}>qY|Qwfh_LL*rr`00 zg-rv#{}{1XdYEAFkMJrsDL-fQsVsiW6&#pq@EhXw82mP4((Qj@6v_i&2&}mTm6}q6RMREZN+NavVc=+; zn9NGWWc+Wh4Y!Btzm#>6{X094m8Lxp_GlSdSEcn%o0K|rasJqy2brV7EJW2Cw5`oQ z6!;aNvK4Hr*sAgrG*@xh0^*DJtBdZb{+_HjA(28+8{b@>U@G^;@Zm zrkqr&ewl~^1RUL38C-?r1Te_g<6vp0$1Z6xYa4y3HWAy(#`nNUf|#ZKWIj+(#Ja&R z9H$RO(`S~E{Fb15uz{XkPt^0FKy$P#cB7oTYvB*L6t(-{=n;JsNv;3M|2Gd|e!B@o zEG=$Z;ZHgDHo0~)3Lke!yQq;{X8Xr?1$m4zCAEpEV_JJpxGP5f8HUxIDWrM7(zl*A!eA7n(nSq4ZH@8?2nT_xALiO_HZka<`3Ccx9pc1 z|CMlJkp5HaT^*0^+&%4@9wnNxM&7a9 z!TxXn;%^KmS2{N9os?JC92Al_-uid#7Soqen!ZmUzOS}9$E`c{AHSfi`i@q4m@jC^ F{C|KITeJWG literal 0 HcmV?d00001 diff --git a/test_replays/test_all.py b/test_replays/test_all.py index ba7c0ea8..a3b93fd6 100644 --- a/test_replays/test_all.py +++ b/test_replays/test_all.py @@ -360,6 +360,15 @@ def test_gameheartnormalizer_plugin(self): self.assertEqual(replay.teams[1].players[0].name, 'LiquidTaeJa') self.assertEqual(replay.winner, replay.teams[0]) + def test_composition_tracker_plugin(self): + from sc2reader.engine.plugins import CompositionTracker + sc2reader.engine.register_plugin(CompositionTracker()) + + replay = sc2reader.load_replay('test_replays/composition/composition.SC2Replay') + + self.assertTrue(replay.players[0].compositions) + self.assertEqual(replay.players[0].compositions[20]['Reaper'], 1) + def test_replay_event_order(self): replay = sc2reader.load_replay("test_replays/event_order.SC2Replay") From e24a0420df430f9f8b847a92fa1ff21d4b11cf47 Mon Sep 17 00:00:00 2001 From: Kevin Leung Date: Mon, 9 Dec 2013 23:04:14 -0800 Subject: [PATCH 2/3] elaborating on the purpose and result slightly --- sc2reader/engine/plugins/composition.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sc2reader/engine/plugins/composition.py b/sc2reader/engine/plugins/composition.py index 2b2015bf..76aee637 100644 --- a/sc2reader/engine/plugins/composition.py +++ b/sc2reader/engine/plugins/composition.py @@ -4,7 +4,8 @@ class CompositionTracker(object): """ - Generates lists of units a player has at that time + Generates a list of Counter (a fancy dict) for each player that stores + unit composition at regular intervals. This is stored as player.composition """ name = 'CompositionTracker' From 85eb7c2e5324f616e1b0d289d33ce0b576bb4859 Mon Sep 17 00:00:00 2001 From: Kevin Leung Date: Wed, 11 Dec 2013 20:15:25 -0800 Subject: [PATCH 3/3] fixing bugs for python 3 --- sc2reader/engine/plugins/composition.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sc2reader/engine/plugins/composition.py b/sc2reader/engine/plugins/composition.py index 76aee637..0b484dbe 100644 --- a/sc2reader/engine/plugins/composition.py +++ b/sc2reader/engine/plugins/composition.py @@ -33,15 +33,16 @@ def handleEndGame(self, event, replay): for player in replay.players: unit_ranges = self.get_unit_ranges(player, replay.frames) - player.compositions = [Counter() for i in range(replay.frames / self.frame_interval + 1)] + player.compositions = [Counter() for i in + range(replay.frames // self.frame_interval + 1)] num_compositions = len(player.compositions) for name, start, end in unit_ranges: # if you are born on the frame exactly, you count. else, round up # if you die on the frame, you don't count. else, starting cutting it off - start_index = (start - 1) / self.frame_interval + 1 - end_index = ((end - 1) / self.frame_interval + 1) if self.remove_on_death else \ - num_compositions + start_index = (start - 1) // self.frame_interval + 1 + end_index = ((end - 1) // self.frame_interval + 1) if self.remove_on_death \ + else num_compositions for index in range(start_index, end_index): player.compositions[index][name] += 1 @@ -51,10 +52,10 @@ def print_compositions(self, replay): """ for player in replay.players: for i, composition in enumerate(player.compositions): - print i * self.frame_interval / 16 - print composition - for unit, count in composition.iteritems(): - print ' {}\t\t{}'.format(unit, count) + print(i * self.frame_interval / 16) + print(composition) + for unit, count in composition.items(): + print(' {}\t\t{}'.format(unit, count)) def get_unit_ranges(self, player, frames): """