From 0e7e025deac325e0cc45cedf7754e4bf3810c08a Mon Sep 17 00:00:00 2001
From: Bruno Freitas Tissei <bft15@inf.ufpr.br>
Date: Thu, 18 Jul 2019 19:45:47 -0300
Subject: [PATCH] Add crt

Signed-off-by: Bruno Freitas Tissei <bft15@inf.ufpr.br>
---
 algorithms/math/chinese_remainder_theorem.cpp |  19 +-
 caderno.pdf                                   | Bin 245649 -> 245628 bytes
 contests/ICPC_LA18/F.cpp                      | 444 ++----------------
 3 files changed, 54 insertions(+), 409 deletions(-)

diff --git a/algorithms/math/chinese_remainder_theorem.cpp b/algorithms/math/chinese_remainder_theorem.cpp
index a28c5d2..8e3f5de 100644
--- a/algorithms/math/chinese_remainder_theorem.cpp
+++ b/algorithms/math/chinese_remainder_theorem.cpp
@@ -16,7 +16,10 @@
 ///   - It is very easy to get overflow, since the $LCM$ is computed from
 /// all $m_i$, BigInt or Python should be considered if inputs are too large
 
-ll norm(ll a, ll b) { return (a + b) % b; }
+ll norm(ll a, ll b) { 
+  a %= b; 
+  return (a < 0) ? a + b : a;
+}
 
 pair<ll,ll> crt_single(ll a, ll n, ll b, ll m) {
   ans_t e = ext_gcd(n, m);
@@ -24,24 +27,24 @@ pair<ll,ll> crt_single(ll a, ll n, ll b, ll m) {
   if ((a - b) % e.d != 0)
     return {-1,-1}; // No solution
 
-  ll ans = norm(a + e.x*(b-a) / e.d % (m/e.d)*n, n *m / e.d);
-  ll lcm = (n*m) / e.d;
+  ll lcm = (m/e.d) * n;
+  ll ans = norm(a + e.x*(b-a) / e.d % (m/e.d)*n, lcm);
   return {norm(ans, lcm), lcm};
 }
 
 ll crt(vector<ll> a, vector<ll> m) {
-  ll res = a[0];
+  ll ans = a[0];
   ll lcm = m[0];
 
-  int t = s.size();
+  int t = a.size();
   for (int i = 1; i < t; ++i) {
-    auto ss = crt(res, lcm, a[i], m[i]);
+    auto ss = crt_single(ans, lcm, a[i], m[i]);
     if (ss.fi == -1)
       return -1; // No solution
 
-    res = ss.fi;
+    ans = ss.fi;
     lcm = ss.se;
   }
 
-  return res;
+  return ans;
 }
diff --git a/caderno.pdf b/caderno.pdf
index aa8baf52d7e241dfcb6f1668061ae0b42606296c..fc4729e8045c647ef5f437a46b407711e31e7563 100644
GIT binary patch
delta 25969
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

delta 26019
zcmV(^K-Ite{tl7<4zRul0?o6Nzz38BZ~pm#mqEJ%6SHdwuG#`PIg@}0CbL1~1{;5O
zr)*mT280p=g|FO@LSNVoJkSCrS6FB(xT*P9zXFbZ`bb4t1`*lwX=oRv*$9fMr){3a
z)fYiAO??o^Hg{4i*8(A7z1mMFGcc*RkI+?p6uFmDEV|-5i-z)49&8j-;Lt$tibuTQ
zB)n}62`n0f4O!u7beJ0iwSf?x>EVB~!tThh)vr6tFvQUE%E%6h0|(NCtD*Q|X#}$w
zynncPbUXP#SR)QL?*u5gpdW4CA(*EyLveGoc|-$RXRAZa<E=@`4WsAR=S+!+=sHPQ
z<n%J3!C|ru4=qO^6di%kl;o(&J$eL?P^Fis7958lbxZ-!p+i;?{npXZ3txXwya*b=
z>z<#8qWn61?Ly@UVEcSc5P?wjw7e6v!bL<fHFsykfqXFVQ&)TeZ75l*QJ1Gv-JEh-
zcXYXLuxoj_JH6cX8=FY{qzMz(UXW=gA_A(OmVt=Aw1^0zbL=WGK@l>kYvF^yN<=xO
zqYIAe=jxBvt(=It1)*g@24R2FLDy~zp_R5)MShh~nahdp=CoPKgEzjG4uSGm+oNeG
z)5S%^JbnJkj_{k4S9XNoyx+rum2D9Ls4Kpg5la5*AwO)(&R<#mrrfm^ubFk@9X>_C
z^f#_70w%KIwt(pbQI+3YYQ|c`W-Yz)!7dkl+200HB@VyWjUDas)tY}UVyvpkd@15V
zgNONYDBj&Z!bj-s)x`Dpadz+FmWv3E=(1{RYH0+Q)w427@dA*pg^vO@bXXh+TD7*t
zg|#b}bgs^LhNXXN4Z?8y`{;yOeo@|bM1xgR6J8@2tiCFxIij_yXY0KPd8(!c79--R
zekiU8g0CxWYb<X%Q(u4G|Cpdfrrd;t@jx&WR>pHEvY|NB&UU3SuwmD3CYm`8uzRid
zkB-CR9?9A`+)dGa)~Ajjw{vx%74fdS2UTEOdL5&9xO_sByv6hTQ3OX=dAfSSU!lw*
zPVZdGMVQ`)DL0nhw;dKuHIZ@=N%!gEIKrULJJ-T(c!{8zkE4Hi;Q2JGWLJ%GD`%Fj
zz47MMY(^x`$#g~RNA>V^M}@9UHM=`x5(JOv+rD>BF-(C-C@a<Q+sEoQE;}-=+5AcN
z-v`a=M~OteO^ClDmZh8)Fw&T4hE}|4{O}STX#xM`A(Vi&K3pONlr@pKI^ely{|K__
zEv>0Fvt4i!)dW$JcJr=>#c{uNM^beYL}vl?z%-74Y3!wod%<a$bxJvceyT?gDYvDU
zYs%wH6C`~mMTwuI04W=P%WXTh@PjWA+;aD9g{HJ}?C$>oJj|homx2KSCjl~-ac~1B
zm(T$L1b^f>a`*a*cdR}%hx-CI3aGaYFb59|_icI(-o`NC9@xJ4_Z>kpxJjv0N@7m?
zP?dU;7$hTtu`w9pFaQ3+Uw;4P_2)0Y`;_)2uwbRtFF*g~MZg0N{|n88Q!hq4CX9Ib
z`PY{}{lvL=<y?Et75o~(x#jS;gx>)7KH(bfTYvfO&p-bG01LAQ*bB#;(IaGoP+nup
zkDtH%_m{;u6jRo`{L8Oj{`6=5@~`mh4=<dl;9veXzWFNvRt#Q)>;HWD$1nfzh383f
z77SkE&+l*CUG^s}lQLj`cpv7#j0!J~1^4nl|Mv2iyYM4wVZatzC~sN}sKC5)(1mAK
zmVf!1Z$EnT6QUO`EZ%W+;q#;TPP`*BiUGAN9oWD$A3G5I+mDvxg{F%Sf@0U8c*C5N
zBNPdZZN6|y!<7>Gmcd&lURfAu$hYE!{-irN8Bf!TkKV?Y^Yr!*Zk1PrXVRRY-7$_4
zoJoJ0V^#^O1k(zZjF8OwmSY@oOuRs}JAa8+5{T^tk;1xsAp~9tfmirYhx`y}kRN`W
z!#$TwiMd$dnz<r3kg*aLEMb8^h=uYH5qSv~bkI!cIarXA`5>SR%bX@GSblE2-ZJI<
zlUIy(9^{mtB4eduLc_c`b0N%-u?G0un6)03Yf?mRJj+v#1N-|aJOy1CDWMDCEq@tC
zrXr~McXe<u8ma7-dZq!7>NySz<|PCS*9f;_glG+-)wGs^0UN}AProX3!z=_+%yToe
zRcN!kXB$SwDgLM;ovi;B^iSEU3CXI#H}v~ACGdHmH-W~PG2D$oOUAuyd;a<hSN4b0
z>gH4f<6@kuU8TV9K7sR)@F2uG7=HmQDwr~e2o44Yk<q8wplyaTl5aGAz6L~lrg-Rp
zeEnk{JJ<m$EsTL7%f7`gAclX~>c)65)^Mzjd7X6H*Z=xqVg6aeEJxU$ap@NP1zMi?
z%P;|`CGLt`W&B#t1!Obaziv(tR-V&hF+q_VZ4(1^woru_z+Og!Fn9w(?0+MO;SoR!
z=pI2FGsgBUkRYNA`lt|60oS>hBC??i8!U8T!QLzeCt4<H*$KLEn}Ru82?H3TNHD+B
z#TyA`{z?E>#{~;QIB|MhfGW2#F0?{8TH_o6#w&A9Q7BO6($3PV9G)l-E<ttO9w$+9
zfCext+S!iUIl2*~xSg_O<bNf+6<nTFwO|S{`E36|fs|2lD%n82J5k9Nh+2{^%ssMM
z=|?d4R*z!AyG7p*uO1E}Z52u+c(wF}$;LeJ0Ng6hO<H5`bd?4Wc?DR?@Y{@(?=|A$
zBM-S=yq#k=i?-yPP=f%w9%L#CAKl^2X8&&s=|DR#<k%Vrp0N{&mwyoJTRbI7AU-1{
zB4U+7bgFzS3cE<0v%=1Rr{$-GX)OF0aI~twX}*I5QdyCti#NJJ;iQuQ+oK73z!#%c
zlm#K%_lE^>R#0low3y@UXB`3B*YguPB3@zatFG~=Hts>P1j%&TCWgJLK)3{n3fy2l
zD`J9yFa=J9SK^{zfqzoqh`MKMN3gxkH08*F(WH)Xl?O$nGC(^$wjS1UTDN6Y#{jIm
zKyO61eOj!|aM1Mvp2<sBUlMGHpljA)Z$V$PBDn=?<JktF4B!&`FfkmaIJEGSqG4Ly
zhri7&i6KtXP6l+B!^|+542p4aAW9~^26gEsMaiVa0HL@UCV%r=VX~ny#>t${`+6}7
z2CMfohbulQ5=PN9nRf-XtZ!j}L%-9T@vqH&!y|z%sU-~Fp9^%gK=uW?x)x2K%h-)T
z*DzK@1|mX{_p~0X!pM^wdi?c2wxd<({(F6Ul&c;2zzmpMU88^cyB~fO&VBvo&F%yj
zOxq<^#NG&*RDX&ot<OiuT0r|EWL=AEB4iSNgO#%)WauzR;lN*1O^~>1M{hf+UF58-
za(2_>(~Kjt_C08wJsi}v>B5q$Bk7JKZ^V3T1_YdAnyW<@pJZ=+ZVnLm)JeTS!7J_M
zafA~`X5QL+*=Bd0V;`L%%WJ^k6yd>W2thpAXb>SVFn=v)sXI*6khs8we3%)WAl>gW
ziR!+;qqp&n{!Vu+-HFzKyB}S0ib+uR;}G{UlVR)gD}1xnH<)WmnxlOS0iqqn=Fr?+
z9uF2lFd)`U=ShG?q_sTgJPoa@^Ms_>74*2nA_|oD(8-m?ui#+)TD9ongYs+?h7LJN
zB0)Z2rhjvlPKG$|Dw!la(8te_4(L)y>;j1B<S|vDeHXx0{u+rv>|@$ETG9&L>L$GF
z%RNZp3==|3^yR=X0}owJa^?gu&Dg_7!K*J=D!#WV@yVEH7IEEEBDaw3;vTWy#OJ#{
z65G5|c1}aOBd>{S3tYR}tOLr3nXad>V5cj2z<>7?;NXQ6DWBkbg6j^?)GgoBnl0aR
zXsm3?#6SnY$~N<Yo|x=+k{7w2$$?Lk7n<NG*Z7{VHJbzBrhn)_9!t3p@T=50N3?;l
z&kt=I+;#A>8``${`%S+UnAu1-%xtgQ8lvU6*4Yi870h|5#~JN%9|gyK8hhS-Yys_a
zAAh?RcPRi1(Cg4Q+Qy3YU>b%+H|HEwum-hPGyPLAgM3X*ywp8So5_6#lJ>F7g>sYu
zdeU?T^T`M`QHz7|6!;WWVMJD|p#y2jwjxUklV#H#MV8bj*;XY}8&hV~1)H_b#033G
z8{Ilc3@!wv+YE=gGplIcy0cU7pwTi3i+{F<Ys`ufd6nsia@VP6C$9%)xtg|<Bte#e
z@enRxL}AFZj2>p)@fPpJUp7r<SCR-q)l`iig_b2!q{d9JmG@nIKe}`7{Pw94%&MuV
zHkxsH1*-Q%U@V3^-O%R+3oi%ydbr)f+Zq+R<W}12hb5!~K@&#6Z_B97z>js?bAP<|
zwv1gi@Lt=DrKXQ`a^WJL1ifnQvt^Dl%mz7gAt=wdKfe$*+21gDXXvSRpy-T~r=v}V
z?r6H>7RR5q)9`ZKvF{Rd(UL$cGE!1(Bm#Cc-!d*o^Ib$;av<jVP$VoKC*{mTb&4}l
zv#l>aR44oZ{{q?C$b%fK`sm_;Lw|6?tOPgS?loN#AlHPs(9e@IQ<tO!Gg)1fxg-R0
z{={(Uw*r>nA=scB$Zc>X1Y3eDJRT{<RJJpxQzfQMJ9E|X)OE~r3%X4W2S2AsPX()1
zYcn2&#U3~TrudzwW#TD%nC>{bkoBF-O^0~MY4vpMZ&!X6x}QDTy6Hk`rhgomHj*=I
zW{6OQc7~Tj4;Ks3<P7j)+&>^hH=ABBL@QAzo*d?eIV*;v!$;+48S&XuzQ?5A%wx4A
z_4;$Q)1;o^Zs=;R(MVFS?-Tc1{vSxa)5nu{NIeaGIU8n*y`hV1<=$cgZAEyk%Ez~R
zZL3E*guM24yK11m?H}^h@_+WCbLX4#b~qP)R^XmK{C!a1TFh+la|JE{^(H(=;`V(#
zN#ypOmI^ArahYp0(_x~_wLp3U9+3}s!gGqKpm&@sMTbHx0K4YQZ`$<@U5$`2)OJgD
z7J=n<3anA=ZTHa#%J*k^@`c{oGH{9J>R9br5OZ~G-^F$N3?-}N5r0Nl(|V5+*p<wg
zlsks(Z0WUlf$S_CuW|9?Y@j?dW|G8LoO$bFjf<eeO1|IQ1E?L6jrNk|CTgQJSeF!e
zbLhIY28b|zvH_wbJiN{TkyuOO`349Ug*bEAa7!wo0Ro5;j&bF0@4-jiQ=}6yM|y-c
zr<|l)bfCQ+TC?rj@qdxIe?Az`TU)Njk)7DQw<TAykCX|DrlAe4>cKpJL9Rfb-*=Hw
z0wlA}%~eu7FmC-+CDnIvog-Lrek<5jyuV^rJ;S(A0X$#s<_bJ67!Q|)xKscKPR$vz
z447FPpbyNUZik#}E1pHSmw*!YY+<dO2A_8#$}H9qaZLESI)B4hZ>^RAbSvdeev~}d
z{Md9CrDe{jv9oG!3A(uNjbK%@0Zu##F3ozmxZW`leB&U2GWj4uN_*v$yK<I$tc`x_
zR5Dt?jJSY|fDe~Ns3Q;BkqC9<K|AuG9eL1>M5yHDaK0jW*{6n>_S`}_(vWJOHWel*
z6{B24YDJilT7Q!6MN%TQ8dA!h&boW3iT0ja_7|rKZankm`QpNWJK#_AncbAIMltF9
zdi7d^K^zH-I*7ce1DSI10_hzel{=^})5Yib$h^}dPXLQ?Sa&VUK4!SNvuW)32%Qp{
zP7QH#MzmQtD!5RrAmE+J(k6}O3)$E%siZ<QBR0fR^?!o0ucXHsPTHMhL=8TRuyZ*=
z8>YCs!4ZWL{lf1gfF{}+GN$RQ8{P8smKaL}RRD-a8%|QIN~|5@&9dn2B#o2?=Y3Ln
zIiL}iW>m^C_}6NO-f@Ze<dx%YCy{t&q#gmrH4}(Hq6L`hQ1JVCk2%t~2Kk{<c$i?!
z?PAJ>bAQYt0&3}wZ)kdvgN2q)aCVxZ9?%++fhp@YO6C?}6TK4ExmbNMk<J@O5nSF8
zMpFFFk(s1jHX1xx4^FBDw)=F@9^3j_w@82=$R}buU}Yk~ROqlh$Ou_O>vhhFu@e66
z0{^Bh=JEjk?Gpd`5Vv22e{dO<eY)Ypu^!_bHGhX>_s+*(ZMM{$ENa8wE@T&tZ-3iU
z*=28#^-d>RPSH#T18%;Z6cJ1k3iXio?s%b0DPxlO0Oy`Y!TdlV+1UHTDn%=%<tmu5
zR;F65m6;!YwwqQ{g=p@PljnpNVl3Tx(r%F+d~i8Q)?(<8Yv?1ecs};NW>X)_c$?-O
ziGS*b;a#J=hvuUFA}P3=3eVZL@LcRE5_0RUdbXzSV5yV)OVZ(~%}Hc1f(5K)<pndk
zU3TLhUbE2@N>Eg{M~aqQZUgVl?vfhQDXqTbfiG2Nc~||<mV+PeQjI2^V8WYcYcy%G
z4vU$p(PXUKZm-a2);{9q9rDu7Q4tS#YkxCW#~JXols&KGdN_M^+|c_G9cR@7%rZN?
z4W?wdSk<3y)n8ok_aGDtwpQ8Quk&tcx;;H-pY$?EPin`cGgH%hqz=qldv$t`4GYMN
zqBF5TjBfi%44^vYD*Bv(h+;)iRZYPLMUhuobZg4Ra625FR%`IREXqGRrR4fkf`8X3
z3&19bgQqJCEK05>vL0GuN--x-NVlA-GQhbT69Ty{?V|U`gF<+mD6GO6?8C@*il1dW
zZI?ER>ui+168_^Z0)IrtJ?a@;B@|`($l&#y3Hs70{Ct;T&e#i&Br6c*SRQ1AtSN^;
zEUIQLa!G4ttvAZwsFl{LblxLgqkkwJPSca?5_7$!xsekdd8Z^OtTL9pgt0CZp~5f~
zo-aZ<`1aDw@uG-PvFePl#{!3I4rxy}?iLPdsq~ljR?qa9WyIOSUW9L~vZ;-pjBmlb
zHV@-Fx<0B1$WjS)AL45*ffb`;q>8^PSxNR={BrTFyqbn~T#V)Z-kSWUlYdNrm6Ikh
zLE23cv9eM7`L}VCSM(U7M7xA!L1_4XlMtFt7$gk&Npexd%1L@!v`wVKlNjx}DBnxO
z;zW9CikgUJgsvNMEES}uCF-c4V!^>+uN!hKG^C%cFGVc6qo;0Ki&zrIT(fDd!TKKn
z79XZMGp-W`()?yJsY+;dt$)<#HMY8lHEZ<L7@5$P0g{gUaXCgdz^UJNs(##%iK}`W
zwqz%~w^psTt%1x>f5N$-Hdf|QPhX_5I*gi2(OADlpN@JCaCSyL$KDU_?5%-$bZ5^N
zhwiDna3WTWQPW~SQUi@+%^3Y~F>)Z1^=fQBoK9-u9^tVqzGRg1lYgIns))o8k(%d`
zaIE)>Wpn!Kl$<_+*L&NlJ3lf=v|D?fi~8q%iwAc-vr|D?(B*=^o&5lJ!8yn8AwFF$
z1_OTKT(KBDlj^)w?7{35ibLNAWnvE{I!=6Rw<m4i*t;T;^Df&n+DUx**-&v~<NU0Z
z;~n^eYHFxFa0YNsM}NwDFgpX~L*GZ^<O7(GefscYAMy24GuAI@HZ?fxjc|)ykEdT}
z2|Mu6xSAHUwpa&QG8xYBNID18gSp2eu&@mbbm;qG9<g9789#z~-^U~GD?DQN*-Y=(
z`#es7w4S8%m0&^wFdYlAUsW&qeaq8n^!LZgS^4+ny^8yqD}R-?Zchb_Z}oI-5ZS6L
zJ`A=ggso-D=<Z8K7h?Jt4I3!qk^T3}DyU(u^IX&#&y-h3P<uHVM^aseM(r7wa+*&O
z>n3xig}SUN0cU(#{m~d@)~SsCRfmct<6cgUF)PiqyKKM`kRasL2s5|=hO6sh;^4er
zTH@8f$``>tt$)O;0X-p{n_A-4IABB@#=5Ih4pUo>m3+q<uMeN4wn8zuH&&$;v@aPA
zlR(Lzfee$ba#xI_hOXXMc_(g%g&p<o4Vc?u9EY|G(?g6WSnf^G8wPNmLKBCfG9}N_
z#Nj!4Vb^F<b^vOfiBp@fWmQZpfNMa8c$jHlp7sjT0)OuYG1k4EwA{dL;*meQNj$vV
zz@#$EQoU=NJLYU~xYBlB9b5yxlMiO7gL~8=D<eKz2X~VjQ^`leH7v5j{;vTwE6e~T
zHWqY@T+m@|Sz=<e#S}{U0@W7`@@t3Gn*{6Qn_6z%)N0aG)~b4)huSB-h?6{Vx=8Uc
zb75wUTz_K4p@8kfaUkSHjwQExIK!Em9r^TQ@r^!olhP0;9a?L4fP}ukBocexiWC|C
zH#mJ<IA&rQ+{iKbVVS-RZh!EeFAv^}L+o%pW}aGYw{&|=wcYI{+!v!gq)wz*6w=)m
zzoTBbk+gnfNuDP4HDzw~CeHh6w7-oM9YHlqtbgkb^w+&QRq<;V-Pr=P2N&Hn1y8pZ
zU0?9@xZYe8PQB-ND-#yIKf2_t0AxtH3g_Vi<wEb}tf!s+sGM*~Ro2_CCAVW$*2ihV
z4O3t_4RGR)%i78DmBf|iJLsqL%@T>F+ze>1oNpKJ3ywLTzE<dXwp8sNI!gTR+XZy&
z;eVL7hv{gh(9!%B=y*--Uww;?PW!RMZq$di(}z0>H7IwehX3+h#Le&5n+sF)3wp1q
zrF+xzkyzlrFLZk}xKBeqT}Jkpi7>MiESU&HDcHNo-Z#y+%lPBTMPy626N|_qvJHMZ
zbEwC9Hp?NFST3g(mz7#QS9GXR(8q;k7Ju34j-fkftxG{i%>Nd4_(kPkHx1&U{Oe(Z
zc!0ChARc=^Y7no%*=Z1)WeOqZk9c3s@*UNCnxos#w4_fLl-*&0DJz)N{<H-)!g;@8
zf$buS?h{<ra2pE_9R<5}I{zfaE~&+P)7J7>iLkH5+e_W0!E_|Itf}y{Y015J$$wpz
zPNv6*(*2fALQ^@cF4RL`Sg2#H>f7Es#hk{dj<oEmhm4;|sh=!5%|>Sn_#U(wCf1}S
zPhq9d>z-33sB^F&*U)^;spEQ)Ufd;-o}<jf!me?PQMj?N>mv*4;5vRgypG?lUdNMU
z&CqfseSFF~K3kaf;5t5Ak9CK~uYUxd7jfr2{)_T1%e=2C2)pTu4+UY*y5gtHupZ-(
znN>W=IT@;W{svs}(?v56BKvGH$vwz+iWz5TryvGqr5-!O<!!<vNl|z-l)Dkm=J#BN
zk|um_%D{!(b4_v1O^1Fc&Ux6OAK>hC=*QlVI`nIB4(@QB$qKpX%ypsvHGkDa^_Dk2
z6yn@k2Rqd3Es45$qB`z>j9=*dD2WDC#8D7sgg^QDoPyu8r8Eyp=d;xt?<{L0U_ofX
zY_K!Fg@-cPNx#;`EzUVjsA~#OZswN`B^ythS=Uq~Tpu#@VX;trUpH{^6}sVM#QHdK
zA1yIsdpbe|UrtBR*!gfeB7crhVYLAmd9=IwAtHDYBnW0zzuS!r2Sfdye|0y~%3>0P
zQy5z-XeHi|!{Az?1OW&FOPi<rM%QN!m``N|mfo@<y(JaBMQ`W~*YfmF%k;N;O|XEG
z*YNqfPh%oMK{WMq_h9seSeQ!HdKB^_L9_5rzSf>_)Ht?yEzo<61%GSP5(Mh5_22=!
zSh)z)o~zp-)_;qkHYdLob4AB(3YGgq`1U>biQ{<3Kz2M-nddBDQ(N_kZDU?BV%Xtd
z_#U>xk-CgQT|T0ko)aF^GnM;}EqI13%N%np4*g1Z30|Z!dTEHaG7^}V40%MgO%`D>
z!AglTi}+?PdcUBIv42d-%9Ws}((5uaK_LZn9b=ZnVph@}@kUq3Oga<R2D)3&mj2R&
z7Q9<~D#&=vD2s37lY{~^qZ4$zR<E`9+^@$wR5g(L0>&mx<1p&FSRWj6A5O4;j;#u)
z$T*qw@pZY5SZ&+vLTnKiqfSK9Hh%BW*X~q|iqg`IJy^P%aDUpqgAASjde7LY<H=8?
zYKI&WC#Og2tDx-;2p$=sb|!x!!mdb<l<TT9Ia=l^lNGOJ$Qc>PBDrOz!Yw%KD8_hX
za~__M6gEd1Xoj)BpgOA86`P*4YdE)j&-e%}@`+@`7;&Y)Cy2Oe)7!|}EynAZWHX8g
zE0q57k^*MP3xAW|Z{!rM@cg9Go90xY(Fpi$#+6v$ukdX%D3k%pj0n@zLHyYKT|~sU
zMgkk(4~2xf@J!X>J>6;%zFGUKnO0c`pK-e4(`L4aEo@mO4bvA`B!^HS>on4&^oIWM
zA22~gyNeK9CJ2c3PJTw^o1CFWwCAzV(u#kPTucII5Pvpx%6+31Lafr1dlt&cnTVN8
zo5CU_v7_0vDRrZ#GAbZ?+k(t7F$dbdCd_4stzcb+P}E+0zsN2n>$=geEdU~8E2+}j
zS<$jSks<+CWjeieBiD5#7S63jZ3_YX&6VJ*l+LvDY5CJa&C`)p+bQ1~7%FYOHi{kb
zszRLh_kYZhUJu$Y_e;7|SL6|@;tKR?<VLS{@t^OMPwf8o^l8z%Xw$9Y)dv=Q;mT@m
zjo3-E*CKk}A<sVOfvZ$7H~F%>&+E!ZtR?YDD_{w=nN)-xars`&<DUJfeJ|bUt|n|3
zNF*!k=+TnOZ+Bx)GiznrIzrLotzVakz{0Hs&wuG@zt{oMX=h-Y9kTrwUo9+AIwR?a
zMzt1VL8)+u7SYg6L6VkFW4q3*&YMhwG!DMOVAKh=O68=E3#4@=2%az&Whn0C){@GL
zGb%>qGkcnz-5Oz5)O&iR(?{j*_j2{#3%JNdp1SK+ztJPUszxRgW>x#rG;U~NE10gq
zjek}Nn`9I6Muohm0pSEqXS$kVchZ0|dzYyxSqYROXU0lxOFyA5LY!uLirk)B6>S0U
zxGd%A{Z>DaTa()3@)~WxJmz(^zQ#62GH|?#LE5Zg9rIsE(Zner|LTR)k-liwYQLhI
zb?4I1S|m%WHFDFdBr(X#imTD_X0lq2ZGUdrFlqd^r0Zj|YoU;va6?6C89%i?dZ$}+
zPdpA1GBMVBcJEaca>))=IUu5CyB<5t7ajIqCzY3FE6!4fugOR6y{hs3e)0Dz?}m&`
zue$dZS14r4dc7BXk@%S@->%<C_Sa(S<`5@e1%ee$gld6&{o@b0g<NZ4xn|PXu7AZZ
z-0<AU`1MAP8QqQb>tCrG^<tofgO=TX2OfgQT^puNT5@0I_P_*q<SL8<6F=-hVk{$C
zy&_SisN9Rlz^rgBpu32)!2Df<9e51P8`U+sheyo<_y&NS;O#y<hFG6w7+AvNN~HDw
z00g1FCkkb5WOH<KWnpa!Wo~3|VwX1_0Tu%^F*uWf2qu3$O|K-mZTI;VeVj$GiYV&S
zyBXlUH}eemkRZw4Y#;1(Y$V7UNf02;zYnReDygcgy1PofyNC}nU9YM{sYr?<DUy<x
zKV9VImmglg`|!8#%3gv9R#|=d?vEFs2a^5=Ex_T$XeYqH<+~p)zy4NAc$HFnDUp5+
zNNFYgt>}L@(7kuMru$ZX`t5hWBEVqQ0DEx48QnuR4CN)Z{PNw0|NO8R2MV<2^8F7V
ze*If{`2#)s)kO*n{_;QZ%^wIb3VMyM|NZjMAO7)!oPVS-7bk*~0L@1R8iKi)_-o5h
z)C+y+8x7}k`Y`@L{#Z?atG77B0-FHaHNYweBmIBH$RMn$-}vU5#^q%VLORvItZ5Xe
zxYti#qtV~yF-g8#?r4=q^`72!I{m8m@`l1sDCyVPOcbkD5kW*zCNyLC_-px9YGeFr
z8->Da)3*8MtFOVikAMHwW^ZVSs9kTrAsl~o7jEU8XnVMAUba55D`V1t{kGthnK#j$
zncRPd^3>>w)qA$*U*}8f(t;-f7U~cMjfuVRyXun)nVJlj{}npoE4Me_P7`VxAyM+{
zNXj^Xkp4xsd@ZkV0|pyssH=mA`Cl`@jIRz)I!IxIsyz6bxh_oK?DPt6<va6HPj`3#
zrnc$_neIB3vEcb%%ip;dnSLXlWung1mZ5)AKk#l76>?v%dCar6(|jsa<-6!6$dzud
z6-`nE!<@xGzpPBw-dz)0+9^T2N>Yn&lOz-dLuBg9fBnnlk25K?-b0jK)?O^NKyNw$
zZP8N?T4*;3X!>?*^M#8{hvw7Qo;i;3nl6Z7-ZyvN@`VZg%Z6Tdj(O5Zy2Tfoi0OYL
zYq@e^@<jv`Uw-BOF-rD4Bpvuxgh{*{Ah!!Dcb6_gepK(Y@5EM6?%2hnI9iqa@Uo0e
zmQRwo50d+gn=d>hMwiJKlGp=Od`7*HT;%s<{sMkI-HH#T%nzL^Xi12Ie4z<H&SDva
zD}(R_cYMdxJLMg2pYGUW+(-OIvU7hV_gPEA_!{?NVJK5R+!pR@xknYIVJe`_%^XGm
zFZ3`91L7!;1yV(-&Uf<Lq0lALDqb<)&S-^o3WU;kC`b=wSfQ}FZ)OL~Cq?3}hLvH?
zi!CeHcjSVVp|Em!*%@CZjw=&KLmpe=tk-hEugg$AGs<|7g-!YW1md-Vkfnd+oLv*k
z103TwV+H7={HCw*Td>rFCzzAc80J_o8I9?q3Z{%I7leEj*#O>)GGx~JB309S)%V3r
zU}Z*Ex^M-|>W~Q;tg&`r6w3x3W!6g(UPOox8T)-94OM<*s-%0Jw<?0}N^?VF2F=gp
z>*gl|X~1Z4@y)i(G*vDjPdR^6A8lg+G_6l0gifPeX4NsIS5gt}-C^1*FajN{5kE<y
z$OiFBvcy7p!-^GOl5eG<`EqQsYA?WsqqB7#jVNSfeJPA>u-LATJ6J?E4}1^CRMe>`
z&Tm1TEh|F21?6pC57HedFGaqVMd-&npJyOJ+ccY!SY>J?Nef4*K?Z+H2t#CNp@vq1
zOuV6@(<m|{q3i1I*+U=iP<K$`j6qX00-L2{QXp`lnVOlB0a%DuWmqDbd}nP@<|Q)@
z4RpRpq?IR-76~b8ENPLJNA(=iHeEeT+6KyuwDRXgTBW1gWF%>o74-8I(l%W^OxgxY
zA}w|bL)O~$T#v^}QN4db(WKwv>EaixQ2qcRZ@IhdReFIiYzYR%A11}*9f*<>8(ZqF
z5aWHauC}PGX>>Ha7VeIAN&H2h)eXh<E4J~|I=jhdUIg&{2u@Rrq!g&f&;&tfo*|@U
zI{mO#R4C9unQYvHGXVn;%MJa03?wOB{r<2bw{H0U77ELY$=ZLPsfVq=0QUDJ%XoT7
zoNtp&12ZJ%r}9gYHP!bs;aa{O!?h>dNDjhvAnqVsdn<e+(z7RS({fb;JhW{if{(1x
zSN$=`yDc-CBhjK4Y<1l}gl=bv|NIbilQG3Q9y%{PR(zX&fs0m2v-asPw+Ooy?$Ieu
zK(+NxUhL3Hp@V-PC0K~K)CF7b;a+xUe-Eg>bth3)xD;F?GctEx8>0u|q+X2iIE#Sf
z<rRC#N123#fKg9p5>4G0KXmoc^h}4xmme<xum=-80=BFirg{=|QFU;k@aifaaZ^0H
zx<(a!INf8%QS4HN>TIt&G>vGs3(;(D6wQU#t=$pL@w0zbSto5-IpH`a+8vmv=cS2v
zkiXFi<Nc_$*Gm#8NW$BNhZVi-K<>b>4u7xv3s*Ko(l&JwXxI|#W;?9|n)bo!4nw&(
zDvOjC7M?DPloVF`q1qW6`4}G6&)U{A4ejNqhW1jGW4Tn0@7LPs^%G1p1SPEVL%c1l
zziHASzzBb7o4K|nPt9$JtazC`8WSR?soY86qmxFGeI(sbY)L0%2y+|s7`EglW?oLh
zj0#pb9D|v>WuZb4psMj?<@Sanp;Owv(Imp(i*&blc}O~V2WOx1UO4MUSx?|NvI_(l
z|L}rIL!uiU6jM|O7D$sulfw*Njw(#oCU~p19OZvlFNF)ka37h^BP}Yvu}fsx`E4%r
z`!*4X>BzY3;ME0aiWI8xAYnm+N*}d7aX?x!-4<gHy_OkgP_t{jGlM`mGFC$m`6wA3
zS!l{VS&vb1T8y2z*3p9CAGWFT)<Fkm$E!??CIc?|zE@~?BdoCtFrRPoBF5Jq^CEK7
zQ@nqOitGfASr|cI0<FEGE`m_*Za-pKhuYRjPkqE}d097GI&|tycg@^)d(MslaSeUu
z7<GbR1<xb~fpWMoCG}b^JL7%D@W@6D2NeNA5AdiE)$~x0VRuG1sW^(04bY$HqbowD
z1$-0}sHi79gz>WPL7}1FTlH8*pT@q?wjO``wbLbTxWqbcAu_PG68bKFERll6>6VrS
zUAL+aN_0h5sI)^_oD>`kZUBq7fRC~`kcEl%*&351)xz3g8WZq`fzZa?y`oBCOy79s
z_`yXyzAx)RSonlw4WBt}DU?7u*)WM@fxcZLsU+@X56z~lYm|ou0>@|!#TEo347h)v
zn}-HSm~gt*NX&RAj6MZ3VAofH4n<dj(T<|ZIkHg4pejdNfD6J*p%z&QczD2Mw<)kA
zy>Dcak|ulJfPpMSGiJaL;|IZ_uz1>l4U)YzX241bAE+lotG%^n4Oo*lC(V;rc|g)s
z&<u;d)6_!{PE{;bM`E?srVJ>*kTHL-w*{ne(ZORv?5G4%p`>PyNc%BL(RYGyX2EU+
zYW`gx9158>@vh~KmjSQljgzrP%2qIO5nW`*lQrTdJ&aS>4d)HNq+i6<lw_Kno|wID
ztId?(T{CWTF0w+txBAIDiR~n~oecA==a^BObCXpKSdnWmNK-{>JcIG^A2xr}x=AJ|
zqnZZ4A)ee!BIo=V-3;{OpGyOGG1S1ZD}SZ|lce<e;#FjfYGURz=jt)UwYH9UA*gxV
zI6$na=hwcBT7(e#FDq@fNg(6mQAhwO?U+fdZX<({q_5x{&K?;^vEj`5S%Y0NkX_+*
zXxjXFvlC0`B`v(`Bq#7cC`f+{t=fnq(+7<fQt9#8gP^*u*!5v<*gVNQ`)%WtGANS?
zp7Td_zL+vf>m64vY`O5|o%zcUA@1b`vQJR;h&v-KP&r|pehNj%k`P>N;vtHFWm6=q
zk))>Y)y<}wsBkP_h*T>a76L~CP+LJ#=tOD~f(c#=b_^}Em#O=L8)<(Tn1-fn++||Q
zGEvTn@HVlW#z55wy^vm?wa4#Bom3-JLQzKd*TIa?7D|^8DyxK(HMJ9e#MDkw1e{SL
zbHvCf1C7IT#CT<DySjDaWw&M1HqJX$t3EUXW=f@4!dVpdG*7=&htoXx`XtvASsMNT
zwaV`Vm}3ZR&@;$$OC*1gT2d?#Nm#aI96)D@+-Kf$ppGT;pJAPlce*~C11XuL3LB2h
zRQGzZ$*d4T+pcv-YE$z4O`X}PMulCJY<a7k^dRjk%D|tI&$+(#N>Z7TKU&VSEbk4K
zK$=AynbLyUQR9%=itVYk@4KZhsU}*jLAfDP;%zrlLKfMar+$B_%`;uR9VM?kmgTvr
zT4^$uNulK+)yE@Ykd`)YT?b~5yrgC**3#R)?<TKd2^D%Ur$xdf`hFfrU(SSqG3nSm
z?<^as999c+m)^CdYuYuLrig6u&}}Z)D4{7{Wzu6>aQ!BXtW=tG*IA3ti*0T=C@M86
z(}(h8A6wM4w*r6NprCw7h5`G%IM6kW@Y<G%y3)lpE;>vn=Y^JIg63HZ;LI}}!&Af2
z-GFJx@>rhcgREuMv9!oNeTl@nj<J}Jrv&jT1GoV5Wo0iGN^%e@+J34zR6?Q8kpf1a
zk<_U-aTenn2N$kk4as`!JG<4u;fYPX_RS;4q3pl(K|+63-|dZ6oJZtLfjBSonhiD3
z+{lI18Ue_<44(`>XCF>0*_ZQ-u*z539?L$xg|A}V=Ck;!?d)#8YMZa|l^M=g6X9(M
z2%DE?S?f}@tJ=ISCd6ulEAEyPxd{Ck*~B|sB<Fd+qq(T*?0zn4n$Nh%Y)L0GRyvuV
zpL8N4?Sy~a;cdQ(!M)GotG2Vd`KoQc##d%IU)>~~%uh)=u|)~bS95tURJ*av8^d<}
zlbE;d>~7|5o2#lf$B>y4s^{fADK4fGVpX`u?aj^>a#K3ay#Kx>yw77&vWcx5%q=n8
z`dQr4c6K+nw9VJJ#VokR{8-##wz$Qd&n?J7P11ioTclx-XC!oQTJ9KwwGTLUljYul
z*>miI7n;n;zVo}?2AO-;;5_EKpVX@7xbD%bGqTV1wVfI7JoRCk^mAR3x9d!~>Vt)*
z@=eMO(hUrK1;#mf;uTF!4@(rUGa*KtAD;;=m|JH;*ZIRUVFk|5WF}a9EQ$P<nGj?2
zn*@Kz!!yA=c_tWtEbINjrO3!LlCd}SC5-X?PtupV&hFKhy5>``RowHC|1XpxP1Z5k
zu`)SkP`JY~xdn5pOzt{=SSGK)xmPAT(EFxa3I{tSFzguuA9akD871(YWfE{MjGJ#r
z?(907lFeq?Qgk<=zL)%`?o6}fIw387d%l0goR{PCtp#)IeCs-Yc)qQ`IXd4~jo+Wy
ze1mXC_WkyJQ!vkxKV`mcpnmLp19)bRe(hG`uq6FD&52y|Ed58Pc?;&&Y2J1I@HAh6
z^I*K5IW?&I33FKmGpry%3Fu^InO7uuJS6PPO(9`dg~hqkT6uRyb%M?LrF@u|CwPB!
zesy4OoL_zCkIt_(IDb`JFUo~sH5}^H^UxG=xOwVrPc!X)5{j&HAi$fkGti+h&K{nD
zEtp$pVAuJ>GjIjYUlmzm7!(T3*coVzu+ko1{MO1#Z_dgeOWjqR=B~}N)m^3C8AUy=
z3InTY9_cWz>Tzo1bIw3n>0(smv%-IHtg6VCE0)%LP6t*RVq*Cng(;@tX)*=z?8+1s
zJUuk#T4{=0%dIa>!G-qO1J^dz`D}EYpK1SI&q|-pT#p1q`zh#hOudXpjUmU<a3u?_
z({N`c3l&gUVjM1(70iRBEI4_?1I&T!6j5N`h%>rrF|VRvR~sQ08|lZoC{BOD+2qUO
z6r5b;EvJhDjWv19KmNyN)du9r1lSC6yKDm*Vmbr;XKh!qs3hRys=Pf=%L0`V5Q}e3
zkoE|Hiq?4FHepJ@<Mk%W90BWNov0x)l_UfNu0_Q;o(DE8IVlBk0q4D(P43HS<uB#J
z_otQXa-w;Z*5w_D2chq&YQ%q)hQ9gmXIM#7L-lY{sdPIPO}IJ^E}iX97zdF>>jhc3
zPSROrfhX>gv8dNb^_>fc$s>UwNqz6YnAdFu`WRY_iW<O^^(Q`u+=g-P46C>gCuCQf
z^4MvcCEK@y+@?yO&bVk}Rk4u{aIRbiv%-`$WEj-a;e}^y#e(v&j@W<LFC(jc=975c
za^=B!UnYecR0gu7`Ee~ZI9>;`4jEV}d%hr$T6k@T8d4z1SZlXa&orbsE~D?_^(;;b
zWT*`)DqgIn5QMVs5u=F@r^R756CYiou9-~yw+riL6Z@fv7EOD$nsm07ST#=7{fd>O
zzNDunE7AC#-q4@3wG@Bmt*dRtZ@(s6s#FOqP^jf2b``D01h&TKd`W}l(u1tiM*~i!
zA-0{(bp0#FkR+sDw2FF4sRkZhVYq>v^mGF|Dy(3~I<=1-dMhryDp{+krwld!#Ut5<
zfZvv$3p{>@$A=Xry2kq5vfv68$Z!OiOA`L>FWUwYZ|BkKJa2#UH``_+mx_Y6#qa-j
z$NaU_#5Ya;Zo3mC4TbkQXDz<pww5*N$9#<4)S?JPg_&8ji<6;{z$eo5WJzyD8{5@3
znJk6e>FyqZ(_3vDc&j~RYd1cxM<J{tP?HrOutmpi6-FIWd4PGNzkKu6*R<$<+@_b2
z`TXIwJJ=+E0qTFw*^U4OaS1(h5>$kxPw#nHaSh|i6v<M=eJ&D(gqVeH!k|^VR7pHR
zxXFH>wr%pR&|lG9$v|v<T$m#NWr`0fS6Iy*754=@AJZU>&LHC$R4aO>Z*eM(Cr)=Y
z9~XnH<0{fXy-#whj3Fauvq&n}-64}{hT)HY*(7as*`$A>Rz>{273bZjZFwP+mu6~Q
z+3(6!1{aG=wB0p4li7h~qhl<aUUsHCdlNLhRVHZqizjG?r!s-$G*P41^1Zh7?Yd)p
zvuZX<hcR9NnT(GY?utssmC5JRtZQpvHT-S-O$dph)Mdifb_pr|2I-mJDszqBN(Ay5
z(dah0#gTs$@$H9v{L@#|{^R$5*pyk08h~ya?utkkPjPNahkg8A7LmW-?vBsiS@c%x
z{>t?>Hab}6js9(We4MCn+wpBLgO2?nh#ezDk(WFK4Vl^*<FlYiq@Ulda<4Lx(+kOM
ztWUK~A#K%nqPx+uXfZ~m3S-3udY7?Os}0q5^KXBMccOYJqri+p)@8L*y=S-bw!pG{
z;-mG=cT8N7e|M-rGEaNmqe8{c2&;oGsNoeZ&Ky+)`W!(~yodUsg)H%}$JU4|8bG0?
z41(}+Yx!-*C&{R`)r~3#JLHXCbhx8)1W5)#JIomqPa<An#>=!eFow7mI%A|r_aett
zmGFPOBv(?@yJhc+@3IyUf9pCl<I&B@%_a?WpZwq3QU_Aq;HJs8Che3W5rS=#U;N@1
z-)xI2(&C(7kVDEHp-9%VgSM60k#JgAY1$?`W8+ftJU{Ono6&5lx2<4%Y=&m94_C&v
z-isw{n-1GMYmnvKF?Uxlyxm~nu5WQBM*n}@)r*hyJ?^1qJm3`jUgG>Gp4*n0Tu)hI
zKbK8$X|FpTilEY*wA*SvckJjI_DOOjtQnM@okT0OP+U8D-eh-A*GfJoXffR7rtbR6
z#KnJI*XIxax>H-9tHgPKeW2@Iaj_c@ZL8Z<BWq-|FZvE)cWby3(}PgccG@Gy90Y&f
z%XST<U4mM{^qjXixHD{Qa&c=8osxRcnW`kIW4$>Ow^qxvv9n{Q+e6%{lQ@=Yw>Q*d
z=R9xe`Ysgb&OzRX3Mz;Br3);NUh|!pai{VoMSK)f?^M&gJW2;Ssso!(74sZkg=5O!
z8>a-V{L}~U*Xf6MO^x@_q1MCEv(10(d3B@yo}J&zae(fq|GpxS1I6rM1ajbsIfg)s
zs)xgy7%9&MmpPiIoDdox9xBXUQH6md2R>^DYU&oq5*<e&Ai<?s9Rz*+IQJ+@02Tn3
zVuJH=F&{oP-D#u@Z+pjgV$QBw$P{cu5^s)1nR1xUicEj=d^&>>=*Jvr6X}2KO{`wz
zoPLgkPt@2umYvKO#d=6Pvb$vj>oZRI1sr{2#E>;02usJuK`M@f<v7f(<M3S3`-E|D
znvq&iJT4|(00?|OIA2KT)i8*02_3vVaUmryTe3=drF^A)yRx$OEzD*MyVAlQJ?W(&
z4FgA(jhgKseBf$a^o#S;UP^x!Xw5%>MMi?VDG}k(XpZUgL1_1M8B6k27^#M?rCb-t
zhvs~hZV4^8*86I?<o&%CU=#&4U=wa2UXC6*xGbV0>j2fTX|98fb#{Wn`81!7n8ITA
z=yGNymZBwCia^fd5V6L)x~we52-s*ZxdOqLP*_*&C12EQEcGX+s>px67H(FHh0b*J
z#W_R1Nr^pKmq*KCo`blXD1@oh5BtCFJi^6<6ui|nZv|`4@$n4;q0|MMV&NjOYk=vA
z3~mCMzoQtO)DzA40}(vVO&D9^Wz$z|Gs_ffJ00P$hDDBx>`levHEJeI0a>zxF~vvd
z%}(ulyBAY$KM73n@qB+~9HxTeKCF<lQ?{OCYbF1UlDk?pr%ZH1j551s7?i3^B@uE@
zy#_Qrz{6zXllQzDs=^|ly*CSY*v1?a*K6ooX+PQF8FRM9+~YXl<NRPStMXBN@~6wH
zxESI5yv}s--k)~4$FeRRGt@yo%(A>!pw&<Vg7XOg@n{J5G-Q7uTNIwI^h=DvHlrLX
zywAXSR}fZ?wtFk=$698WyXt1g7H+a8*>R+ttaWmqPXJiERy`c!&Pxg@IOj?#9$};^
zssaZwsz+2&4z=u>%c6<NSTj2;q!Z3%Q7fHrA)Qo_PPpzSQ{_>0TFSR=7T|<9F#V{{
zOck)4g6Qx%Uf+M3qWn-ySz8<l@qz^=xax~fHS-sY8sAdpR8@;B(0DtJ<qWNjD#&<f
z{Rs5)wz%tixQczZZavH@B)Coe*X-)Q-C+o=0v?OBa(yv78R6GE)3+(xC-Q;|w1C0T
z#Zh_oT&uGdM=swI)Sw|#AF*PC)1->bhul`r-O8z{<FtQ91gXwWs;S^LCvf9dT8&Yw
zX*E27xYrKCc4CbwA%i6pT-HJbDfT&rBixlLQ-U0nN)d0zB39;5Zj4xIn%o?*(hc{{
zh?S<#op=>`HGp0W^S00t1=M;vGVMU<$Q;sbp(9O;lR`&;6X=2&7djHSk3f>j&h@>v
z7=V%G0!x3!|9iR6<&m3;0c@{hq^wHlJKd=tZ6z7t8m<nNSD$W#%en=+|D3&{#!}0w
z@025MldD(3F_{k0>@~w=x{KvM5GH)dqG0JoP48Mer)p!bv*O;#lue)R>QN;)w{znL
zMw5<i!tDGdh&sWZDTDDa=x*5eTQZ#B9+sc~dh>s7FCQs>d>GD>C9)jG+s&K3#CQmY
z$Kg1ceEB_RX8TVpEn}GNFk{*V>H`JpQA`a*owhZnUKPFC*2-XNGGWS52FuORW0<6`
z4c<K48v>-i$>U|-?3OnKEGKwPvR@TFGnNUA@%p|9_Sdrcrpp~!w(PL1Q}5-SgDy@m
zBsPDv8R`ilB_*aD^#)uzhYoYSxo8@)CFM)Cxp=Yu$f0cy>wRrD%Tl?#GD)zMVpQ&E
zX|#$q9fWjxFxo(9YmTB#Z=vn&*=U0p5HJ*Noa-5GLz}*v+n}5icj%0jiVw~l#=-bN
zBaAwX550vCJPRLO-puN!F96^K1U)VWMw5RcLS~`yW{jVVYvC`t&?U^Kmi(+6W3ew;
zB0gkUS=#v47g8HwsWwCnnAHZ`y55+vjBJk=eP0$QJ<p>Bl2k>dhnW&aapp3RWo+)L
zv@#8kGa$?;uaFA@r!>nor;vT!bPBZq^vf)%KPQhm{g9W(f^bu{`~&WY8KB#|5%Yfr
z`{_O$KWVUO^iP{vcoygbX#j0EayviFa=D?lm$#kdC5)9Qx{o=UkAuRF%4x_x6^=ic
zr6N4VrPB6!qetb+K!-Y1+CI<or*M=;P(#zKINZYPQCU{f_C2ry>WgvPEsb^6d@FZe
zi#l?6f7S`7)X=OS4tD@NoHf;gF=jC(4AY*r$Z{25HPpAk5fvJbAI6t$lmh@(d?N{q
zvs3rvX_&1=Q65xvyWjr<Z0gl}m(e-_CId1yG?Re{C4b#L%dX_Qar^m-v$SDcnpMRo
z5M1Cq4R~W1p53)qNt{h4K(fj2yNVJel2W(SlGx78Vy1N@u}HCs^=47O{Kt!a`NOxj
z@85p^h3+M)=+K#$?|***exUh(FbX`qSmPB~c=`V0<(Gfa8s4-vL2Ke)3tBtPe<S}!
zzW2q~e1G5J&wu;=M+OXb4R8RjyfrOk%TOq$mY?6h{r9)UI7pGRFaP@E+b@69FaO5R
z{`jI5#qjdK>CGPum=wRp*Z=wQmv4XmrpJ%eDq6XepFiBVyX+60LX6U%+~;plmg0+7
z(ZBr9zrXx_6MmXn{&L4HDA;lakQDIuV^9wB=YNy_`KMs{!Wh1AG9f-+*!<`{-+BA_
zCm^}fZ{u9^)U5PmQIWMxR|3WhJPY~4XDF-VbwLG<4HOv_KpMl>-7y4E&bYH<h(V!_
zEfmLN&|1bI@X{50<f}Bo;ptnxD(<}(<NwJ8Q^T8Dto30((^&Tq)+#Lne~j%zTLcL-
zuYV@R=*YOzdE_WpnC3f<6K_Jka5E~#3(OZhZ8%IXPZpd75J)KA3nVXt0=d%TmCN%V
zX(BT}qRC&^Gg0o(FY!Hhm?#7&zxF;oe9sNwEHP+>p%bG)6(Vy1K;=Rv2B*)BS2It6
z6XQL^j!iU*Oiy-fqEp@+Wyc##*jQ{j5P$j%K`xlKLL7-XU8D|T?mOnbV{SFRbB|jF
ztGsW!)XW*3%fxPJ$7j0ynRb*qK1m&U`(mDGf>Y!}FP><1;4XslE>6P3<nMC%lk-JF
zg@v6}P#nOrhVcY<hv2S@ySuwXaNC987GQCLd+^|H!5xCTF7EE`o||*(KHZmFHB&V;
z)6Y{q^ZkD}3ti8P#139vKb<wX5%&bhyykd8NE(U;Ncig{O&zlY;X>RthQ2)rpO7qh
zW_uY3UIki}vYiOKN<@dJuw0T;btDQ(0D`%2>OM2U0HwoQ5VT`kBL#)+9tH~u&0~kz
zgR>VEjWDYo(=bjS6J#L)%O$l<eq?I;R3X~z^<T8cJY?id94;Y!^4wXvhCbiKPG3Xb
zr=0a}2VVK_3<{LaLN?Ooye+bkw)uQoTL~<|sA;Ho0#!m8(wlMli{BU0-(bdvMDF~V
zX9R1eVLHh?XEIY}l1`WS24s}+4{TsOdqidMB$-j04UM8j==8bMWo6<x)4r&1@^uwo
zsy>&M<>glTwQ*5afsX2LI3zwlFJGq&N#6A40ND+h*ceIeW*!Te;<y!U)?vmEyHXy(
zt*-li4;GamZ2qJAjWl9?8DxV2ALH(Q9zGV4p+##N^~$&H#!e^E)G<9(A-4s7WTza%
zzDlxR`%rJE(U%2;GW%(lL{|zB?ZMg^75>Yd@jCiCvjRUhV|IpVqBOsd#8OGx6PZAh
z6&0tP%oxU=x^Tm>18Qycy)Pq=cP(mQYIrYPZFMmoqZ}3OUjs^aokpw~$1!?w!R)(l
zNZns7<93Fpc7AGEPLz_$>TaUgYW-wsF4i1{VZAnQXPJg(h7dG3effFxM=?wKnkXyE
zPiRlic&OSpk|6JM=MxTbvBRfV%M1NjE7;6hKmMPvp$8nXR@}taehAD0(8!=VaN%?+
z?3XNS?{dzkYftxN(D!ul&K6wFajI_?k#@d9NKjvz;k&W;X_BD_IlAm%(eK=!Qo7fH
z+zW}b!%a}*r@xEkjntn8szk%|m^;vORAFDevUB9Lbn@#LP{3o{T`??!HYR_w$gxx~
z$d6r)FW%gK+zTjutDd;J?Dq2h3=ZQK<0c(9x7xNfM4%X)k?YVi-TiLz-3JwcSf!uQ
z9eS4+{BphowMe8_F>OA-Rnwt2!~^<M*=XhpX@E_!OA_O?vK~h`Rxqqd>gzna99oBd
z$(>dg6dQ)^;7uYRt<Pm>IW!gfO^*AhOjo1wNeg-<Lv?C=YM#YX!i?xn9jp^5UU3^p
z>KU#{UZF}c&VZ7}FRekNLBP)1-%pL>7K^B~4U<zq_rm?^YaAQBwb<)-wu*eKeRt4F
z$ekJwDs5K3m!rB);V{1yq}asVmK6Ea$q+%|UFym%dAJA(JyK(6v;TTq)%;LY$W1M$
zllq~S3QN6lQb}mlZJQB%2kxPrB0yzV#SF6%Mr@}?mLNzdOXptu?4;*P<Q|JRjsRfU
zL2KvWmti_Si<cg{{S9T|ap3ZMztH=+CZ=~!y@iyKE^}mo&Dv3?m{pS>`=3uoiYp{0
z!F|OxH@ug@*+S9*-P#=XG96W{D;W9UT1SrqwjvEi8+P_oY`){b41DuBaH4jU;d#4I
zAZmvmxieWZYFHS~9|7O4z7oH_!?*4^CM>k!m=Pb<aNA9hmDY|Yz4Kd9BQawXL7nuO
zp#?u837M>zdR!FwLHv=^bqd?YZRiv}WQ>*<A0cTECqw#m@eS($c{QjB`>5Gh)+=`A
z-SUW`mr85Wvk1B_63jj9PQ=bP>BnL|OJa&=F_2>XbWRdm`Xvp+x=E@?1)GC&Oyx|;
zw4@j<=EgYX)1AVQ>u9jt4nlN%2cfRf_=)v6Hjyj(F=@RQ*JjV#<ea_F(0)|S+vID$
z_ZJxh?^aFr_B9Qm6gPkWfK|<0_^i%yBsTj2hpD*WP+a0|RB+mtawI2NQqEZQwjU!_
zde&m<2iwc>g!wLMm&4|&t%<!~qX@{>)wtdy2)!pfImp<%G-Q;b79<E;`G5%SY9GD_
z=fZv%ViQfz11IFaaSc7y_Nuz73x9MfJ6@@kdG&Qp-KU!XooCMKF(C}|+)Vx%wZE^-
zFRtJv+#*4Ax?u9ZiY@KCNF>c7YfkVyQ2qNBPEPmC@17&Z`?p`YE@p>Cx*LE6OSKg2
z<3mT=f_uxm;L6Ee{zVf+%bagD_UZzUy`+aG^GDtO-@lp0Zn`y{%j_DHQ4%*~C<)Sp
zVqeo;`F9%v5UeCx04MV!&?Zo5>*gLF-grHH@B=seXJCD1=<{1<9TuM2kul0NJ>E7^
zw&)3hxBN`kE=6)P%sH0v9(&r~h+Dz@WR#sHOtlmQX*wBQiK}d@oGRZc6f9&+VQB}<
z?PggSznWo1arx_d5Y;)FHr<cU;5Kp`NLH76{MvSTN5e=FKOt28#Nz|wMvJ!~IW4ie
z*w@cNTMOnkMKG^jmg%U)6i@YjSq2EVsH>LK|LGolkj6TF?h!(icmEompcPCQ&y{`-
zU^`En|Ij;78E3$TjI~|iKo9un!ZY7%rafkkf3F)iS6$Fw<78qF{B?F{f%z@aN1r-k
zOYb~(g+zsylyjemo%k$WS|PDnc@zEcx}-1)Arc(FK)E`{TBn>e^<BZ9q%6t>PO&cR
z49<eGlM=UavVKnUmj(2r5i4U9`*O`118G>t_lQ!;`LRt@YA4TKgbLUI<=qAe2A#n0
zq$q!tba_pKlJTsp)d1#&+QW|sQ!TfHvxf+x(JpdR$ZgLAHj|oL{TD~(+(tk4@A&g;
zTh?HrTkWwZ2S7>f;v|wADE*2`=Wi54hnMlVyw|);RJ*_GPjl#%yaCE1UL)Uqr_PGL
z`^UFh+ChXX`GnIfmk`yTEj;vxzf1bva|!ls;2lw|aylG*L}(p><mhs%e>oGi*Dx@@
zE9i`+p}DEmEyRGW66b&CMK1wWWv=R~RH4CIce;Y3hii<TPBl|u<jGpx<Te`_uT9A|
zsqln9VrXAM#bGMX0m87vfO`nTRH(tzrv(357!*72hiKIR31!(G?676DFA=Kax$GGA
z(maRh?<ldQSUS;;K}CcNJ0Ffr42=}%45JkLUP$JM%*LI{_elrn6PR(t>S!Zw9+Tk4
z7~3Bpl;?>8;um1FZ%0vo6xPxN`8XGKnNj|(ixNMQs|5%v_sRi?Sh3gBk`~PJ#J@oZ
z%gkYkSdFrA8y>_&;H|>UDJetrmjt;w-trMPS&V1xy8l$I+%<)TXZ>1ANxhipH0z^7
zgq><~x;T};scu7YMGK=`<}v%DUk3bBX3>BAU2mA{8YCJZl4Pw+A2hBL-&C9v?_Q(E
zyA1fNlMvcAj|ZctK+#C*kRM<L&7`AU!9sHNqJQVgb(OeSw;gzO_mJQz&JzkitJJP6
z|1xzo^K(9(h9sxHjG=;x>)f-r;~CjiLOYTWEnUw$O3_DnedYc|J&$jqu@+oLJCuZz
zQD&G3mpe&s9Rqpgq_;-c#WSV;j^rw$jpj9wrNX(^<6G-H6f<#{s_YN<96N@ee@mP(
z{-Z25VV(Zq-$voRm=P@;8Ju)dv7h=ADF4$>B?KihpC7*(Ne`Yu>!Im~qK>UmO)@NL
zsE};2{5R*B=e~aW)+`NM5Ey=PGM~5k?6LR*XMUvilK=9)U^oOmsltk-fU8*;YQ7qh
zv<EYqCbCDFW$Z$NdRi5z5+4;3VgcF)%^(9u>WCZ8-_3jg$!@<9#$l!1922Ab@LGM1
zWLQBswXw4!R+czKwD_i>f0kvlWrDupmpYgfekfnK%@qj>(-<c=f|;f!Ft9u4i{p0b
zw5<|EI*?`@%M=E9fZb}*7rOKrOoG`i_j~dbm?U#?pdW$i(Tw>ljZyKQBFxPUUP+;@
zy)SqUgf&@B4rK5SenP=bKkfmiFSB?9d&Ea7hL@=`I#5;?HY-S2yhlog?*C%6al?wo
zfA{zXf>r_;kSz$ndht5}IPD=cUL4+>hQkrm6c(&T6uiTVT~;=u_pJME_r*qFSW;q5
zzCWA7yCtciNm!QIsiDY`^7fl`e2?4<blV##{#iOc)v#+({<9L<oXzYdC*G^}C4ES$
zqrZrm`v8Zx)6>=ozfAw^Jq{C^%N+V_?*7W#UE%;8Ns@uU^5^Wc!#IIRcX&--jD8j3
zA7x^ls7!vQ|0Xc?1GC~~hcKOR!F1pVKn7Ec5@9s-XJ2-No)9OeUMO15TXo8#EJ9Mi
z_T)gq8Kk1n0hfP_Nsl8rT;ICp=A2_ka&7dKD2S@Z%gdL44)ww14sEDD#}JXu?LP5>
zmItcgij(31A8yNcerxfm(MDiXS7DxHu<P}`ICo5|v2!>h@f`2z2oCJHQ<kHn@}^17
z&g&>2xzID2x2Nj2(Cc<mPTE|*9DtMgU6J{=ggXutwfV}0UZot^cstX9H9Ki*GH>b0
zRb$^63az!5N!z^|TYQ66k@2>KJqqkTu%t&Hp}*?_1G7GjFdX)_@}V>T@on1ojsB_?
z6=YsBTCE@&<d0%Kqdy60(7RZv*5GUI3Oa|P9l>+SA*CNFg00Z}JB^1^;El?1*j0YT
ze@T(KqwDEPqt20g&81Bsf5_PsN(BoOV#J1gBcw9VRa{T)5|2)KPSBVNXXNTXH*<A!
ze_But{zuwzMF)M>QbTVsjImmblW}IG)nB%{A~Sji1Q=%XDmbiNJA<D~EAJ5re@%QT
zg;-sdq(ht4cL8&;)tj)gOn>aqn^83ea;CrXxW?mPGg*(uG%aX(6<Q<Q2zVKjJr?1=
z9aq5!{H7{@_;Fkr@zr0TCz|%4c&cJl$eqa>Y+K9eZd>51j`U<o&;eb~iL&A0&xO*3
zaJaS1cAbOy-t}XuF0T^BqdZS^u&2mNCV&RN6d&ZWUgPi-VGN{K#m3CycsM@A-BYUC
zYTu`j3nPTf_9sJSj>?6G@Tfv(WZW*C2~l8SrN;2i_%(L@(FnYkUp!9!EuIl5i`%#f
zW|_G7QQ}I6t3-CLrVqI;Aay1S!>`>`OT3w}hLx;LrsgH2kcKbui-ZhdYW@}y-EiM^
z-$1?plYeWYsHh^zQyB_;bgPznQ><pw<;dlF=`$*G?CMR?=|}cWdD)`=E-UW(vqP@L
z0m)cDzGbs=6Qig~!Y@UIiCdxYM5%@ioIES$BBW8eG+}@wjVV_-CY<#l72p3jDFo92
z(-JFdThigau4Khv1}DJCo{FlkLXD)VN*Gr;6mU+o5m~6#ZZg9ne+u%^n-{O1VJ&3s
zsx|JD>S3hzq*mB-P}w}kq)tSA+cz6mjy}3~j4pKqy{V0|gobUnP;|QJrUiO~@zX$-
zNxZYgJS380WPM#R|HK%|!_Z&ko?B2E_W0Ju23`i=EnBy8NM$JA3;%=(;^iVKp>2bF
z?GfsDg|r)%$g&xUl=Cos%v|TbBPu7e1errr9~{~PF~GsAwKzBDEf1mT<i+`ohXqRT
zx!K~ybpsa!n#;C=!*mzv#hC!`Q+-onRSJ8jVD0)H1%)Xo!<C2wrSzHRuJ%j(m$Zm2
zvrj3gecp?xX*JTtTJ9}(rLP_l^L*C>f_l%thss0M<*a(`*<A~*J?^qRk(HLLfzS>)
z8FdS{qb>>E;rITlyhaCHSDs77HACuuq9*887<;I3a@QrTQ1d4Rg(~X6NRP5+?%rr$
z)Y2bU4TNka0@M8)dO5ix&^Z{ccO>a(Q$}=1wwyY|Qc4v<P}8b*SBq@*LYgjzPN$`;
z^m+B5A#GO^f4}1U)8a)eB_8+h%9vSFuBKVXv9DCBxZh)O2NorvPnqP)kUX|ciElwF
zZ)+^MzL*q%QWRXIU~THb(Imfb@bNoEI}`%xVE?i9K+=$Nv#rba6RGUY2VN>~F)1?Y
zPbL}~V}Z(4(Qz;0@QN6qRbOR=O{2uVK^8ri9$M!vVI!dfhByd-U6!vmWSv5-0ef(i
zHW*iQ%WhmyYtUWbv&bj_7%hN61nT%v;mGKOKDBK(35wyUg^+-K<P61Q+!;f>76AOH
z%X|Y5Bal$UOqqo+$Cod^m#vm0;%FcEU%mFE-SNwqZ6n)%WO5w9HRpMSl9<A^&cf?h
z0lIDqd~F=R49b?x4kVNDp5q6-G?aOB`?5Ifw>M3`x?62plK=;Vx~J^7L@Kp7C>Lt{
zeEahRP~(*Q<aEJ;TAXe!E<!Qg`|6$E9f)H*{7cP_o#z?@i`OyD+nZMp(D)}*u^OjA
zFxH1s;|p=LH&Gz+T&&@+;Hg^7kOgfPkF5CZ6z+Mw=1IW>EO%C(br4R7i^jE<$}TI>
zx+<k-odSEqSJ%x>fe9f4>B(&VTxyvCA0WJ)>qqtzZ3P%l@IbWgsN}yX&aAh+;7UJK
zw?nRDV<?P?dq@<UK-zGQK2%+Hv9P;ahr-=pR;e$GwXOh08^SG+VVGN)%dj~2cv%3Y
zt_m)@DTU@u!2>98x2!cHhn|w-q9*U(e6jEAk<OedzU*jKN6Q>R?>;wQ&zDsWQfbE{
z<`eV-M>$-|W=8>?{8QZPs`E*j4#+ih!xx?I>iN&F?Eg6sy&5~o+`Sr|{2OWN|D97&
z=$@QN6QgbO$adN)-=6R2Lw^0*&U+^!Td666t(Ubcv~!e)$(ox|h4&W%cGv{Qdxy`_
zAYsT)SCe(Z!|pDx7Asm&himNgHT$iVN6&$=7`140i?QgWWga?L<Q$A^pbd<)4C-_-
z*vvUR+OcY~?yB0cFKO2j1~nnS1v2Zk0pnd?cV?BVT}4|#e$Q8Tv+~@lwU@IANtF=-
zI;t66GK~FRXNq54tQ!hq@8&HVZQ5$TrA*9*Bk7(%pVK_GleG!Q7S?2qT1;p`xhR1h
zOOk#`IZN~YGA2DPXNQxT39kk2!R5oD{j=o92M~&^o<f<JE0x%ct~b~~x1dJ=Cc+KO
zteevMa`wi~@m(KM*L5JB*F{|dd(MZPmk>MA2)36quFvUKFDIlqo8D9J8O+#W=X#m<
z5au=g`df-iRJK1WVi{)*i=gqP`!X;g34m2l^tW)kd)J@kMVDByY(<+&w;~*Ttq|g5
z^IQ2+NjM;q=Q7EtOH|7u4hwRWEI*X>sE#BVD!^(sB7M(%aLfrH?DMq)dsVP(E?E9$
zcu3xDIN|i+`K|ZF?aEvAFTP$x?+l_S7n8!udWeN@9!x`7oL$T-(^xjk`e(4z{^V)W
z{$$gi9K63Wqec?VIHnO*!L^YIP77=fcp)0EMdGRQ-G~qYU{Ke;$_b|}OuDL;?3-=O
z#i*9aoL6_!%rsNNcgFn$&-kh==Fa9dJu}8@y{#d3DnDQKj*ks^clcMJd9vI@sbP@v
z0%n~}QoZ4SuyWwSky@VuH~GOO%YAENChi0(5$^Rlzg4n<?;+D>o;O14pgasW*Ub_*
zj0>b|b+Sr0N0^qTXV*33kAM7K$7_mG(qaX1ZHSt*@sk5C5Cfa%;&W>6!PiAV*u*U_
zEzujQqX)6!>FxKQ1yX%HUfuF3H<UYfh`6DBcluNoRc8h1xSQaqO>FSFnGe}*O1p&5
zCmtYX+l#b>*5{=sf+ms>_X5`H`?e_Y)|G`{p6b^upA5!!dE4!gNE*=^HYUBNhJX9%
zYC?q;n<yW>Ot+=>QM?XR?+bZr=z(OgW}}TeR${AqyS$ur62dtA*HPIPN^RR-_^WiK
zob-cQ?(RU}!_7Cxoz&=X@^sC;Rur`Eom6r86;<IBG#5#Li54?ka*_Afk{P#`qENVl
zb!z{C7TDnhTG0O{Oml%2tc(FXFE<w#AoZdemh^v@7&Wk&Fzo-ah5h3ihN~{Cd{};u
zx?9f0#msBpv^C2VviKebJ%l2%GZoMyC!8Co3{B)WlpjtXxpI-E6A~=#INE_JQdn@)
zenfs5s2Dm*>?0DU8XU)0xJvpYD3D(Evh-L4nsK7BWHXgrjP$r)WdYXys!R<tfp%Pp
z^pfypzLpsVf+SQ)c)VbBX#tvaalbeb)RXW4Dgm4YPFTR~lQ4E#FBxZiF2yF}Flwwg
zgH@-^0${(&6z?2Hz!@eZF$jaEC^$@si7ZW1N%G^DtC~FG0W$=RT%IN_6RjMfB0ZcQ
zy7WtVgl&4W+6>=8UdF;NZw=HJxWEGE?>y|gxt8R(GxWCBlwx44<j+O0D?<UmQf5<>
zEQ9PnVpajsSQz9&jMl-Z-!YD%aB|Z**;$xR)e@w|uGnL7rU`M)NDo4bVCYe?ci;?w
zZZz;^45kEu37F2RNW=JCFa(piw&a0A1okY@1BgV-G1tM+!?qN?AU>JnQdYZ9??oX3
zVdc5IwpnXQVwhmz+<f~&B1VSK&Klba^m>Yn8WZAlZTQ1A!@N=<02*)P<e*7`;~)+!
zTdw5d*I9F0>gVV?qF?eRlm+>m8o^g`9Fe_gyU~UEULjnCfsdt<lTn$GG<F2^im|2H
z8;Uomb_DW52x96H;l+tKNLng1m<IWOK1*82DPRDY5w*aqt(;|46B{+%H&Ndn;YBYu
zaNbOvcv&w7sfxwRc;A!(L_#Pvk(fu)izNf@HLswnMiwW;A%_GDsa1^)_vs!CWeObb
z9HBga^ciAOQ=Oz0GKD8E5!e(Xkzj9M$G)lX;ELvfmWinxvYV)#)0QN`a&-(=wHdWD
zodMMOT5YiVU5*VP|IZ#yg5=9c872NOF3hv6h;sBOF7q{84$+Rih`ZEj3^bE2bme$8
z^y29&ALqCltAP}@AJ1U5H178${)btpi3zo+&S;w=!Y_y|L}(3f$j~)$b(UGE(7K(5
znPjjndnJaq*>w@JC{1NP&1iqAf{j&ghBER_Ze_q9o>F%yv6|uUGjqJ!v}t6$A*d<Q
z+BEMg3I??kkfQ`&mKe2&HbeBERWFq(;3Cqje_uEi$@>W&SK5M0*{gZmh#ictdblqN
z3(!c!KXYv3kZn|Sl(9T7i44Q<4NQ`&9{Ipd#V{LX*}<C(<3zCzKUzkiZ2pdJe?aq>
z*A#<USl@D&nuT|UlzV)+SH3_0jcv(@_PV9J@k;6_bg)>JU%oD{sycy7uNL4Wp}zJ8
zv=KdA3<aCD37u}>y$#H4Lz3dUv$DDf*E}xQJ~DR>@;0SI{T~tRl**r?<IfFCTWTn)
z#AXu{w3_;IVyizB8D9loysOW&KXZib0#(3uM|h1}L%WXMp7(bb#b4QbHe;h!JsWri
zM3smLSdw!4OuDDX4*>#v{%FbLsfjIwSRW7Dw`r`UQdjt%y1}O#>!_k#VdEQ5s~?!)
z1ybBHd+grIZFhWgb%!~$kvUR-KugDIUUv}uv+&GxTy;GHQxVHb4xR+!?so&i>>%(v
zPmo#cr9YV%Nyfd*?l$iO1ajJQxMTC-<7JEjo$$^z@Wjd0+I@-NY-xSHC+`A7X4q7}
z$TQe99C0($zC;O_Ed80COn7M!Xpaz4_r`=La+ULw`EPy`jsp|i>eZ@xQ#P6inYn<i
z{zXNBvF0La0lqy^x09WwC}~B-xgeMa*@clzNu<U1bDa3iKSV?=1a|g!yS_;sn?m>8
z4Ttosn~HK;r-ufek2UDUbQ#ZaBJ6Z1i4h*cNxd7uAn@+yXqyj;N?!sL-jMwjKe&S`
zu-Hc#p$qhq0wP&i5!m8#ay%|=3@Y;^Q+_&2jBR<yk6A6gnQb%&8Ab`Yo`UV?Ytu)O
zQ4GuX{OLzg`8}VuZ{GH;mT8E{{6vG?W|HOc?|&8oWt#g1y88v1sTTZ(`lA}6JS5sn
zJ>=V!DgB0cbxz?{y_hD2z^JK${DRM`B?WcDzffNmE8ZrO-zGpO-)18b!X+<}zu-6D
zwIDcYdlul=;DVDR&WE=%P{18W4tE@0JC0_l7h!jU!Gbztu{;jnaEqZnm*-bec3w6Q
z_X*vw4iqom8SrXHIK(Y~c66__qbg@tzT9b4+RRlxfowAbeadeNJI*bGb#a(G^Rl!;
zlP8+MS35zK`*#D?7ot;}3b3EYQmc!~*uQv4kiQG4lS9i`(Fx8p34=S+Qmr)r#g0W#
z^b%sPh%PqtQSuClNtSu7$z@++tFvn)MHpvje<aq4H&Aq1MpNVA<$gj$p*4lcOO&a2
zcJqF?IhwDxt0wK@^aP|4o6}0L<?PD1;%kpFD%qWsuxhk$lokFqtSd*{;i&pIdJiC}
zGD$iNdvrMY@7V2oJQ%bSiTj%a$3L38r1Sb-<7qjI1Qi-*yAWqM(tLqh$i0nPZG<6d
zSu@eJ4H8AGZ?%&Rw)iorZ%we$U`1jTqp|UO$ehQsr+-bfb?x~<j-|gX*SU>5cvWHT
zK~j<R;#zM^7=D%GPc=pZB}|gNCP|U7>`EaD|49Hw3MEl-qSg`1QHkZyYZEdDTPJyS
zh8r#eV&ExUgnW~VIG5ha{hr2EA!7yXdiXAWw{b^CeVvHIQuB|w*9?yx@Kb}Ke7i<6
z#F1jO)%zb13d1E5Mt2=d?pw2L9^o37ueVC8fN#Osy%E@uh)(jqCD8pgp%9SC%-E%B
z*x}JC0Shj0$EQXP<k=!r9g)aYLPw`@;q~b_7}3im_0WoZ6Z?e3_*pB%1#ZQ$XgjGz
z>FWxtTr){4@Fdc1C78|*ESjU@4PzfJ_8ew5*{&5W1&z);HC!~}&2TJ6m&~m6a?e^k
ziPFETI0C~RT^iVd6Cp930ApQkiQ;RZM0^+$h=n-or-LVtmI#x6E$gDS1$UMO$lXi^
z#Q&n$lgcEb1m=b%lg1-e$lqSP?d<JBj@cFG`-#*rRbRvmXKf9^nR8v^M4SCY4W%|Q
z?8=qu_JQ0Ajw2a9A&L#^9uYjFAeBsn?>b(b-obYw4xVeyE)H}RgnNIlP%?Y#OB|}N
zgsujtpjC<(sx|CPD#WOpyl#+qGuyl)kG;1kzXiinxcM}2?n~|<+f&W|f$&ow7Mm+n
zVmbvaNa5QjTZi9*-IWqEUV?bHGhKiURBfg4H})}^4R$Gv1Bk}7w?k6+0eOSBb#g9P
z#)<in#i38)14{UJnMV@#qx=WSmYR~(3jqm9_9VKHgR|%3<^35@+Q4I-Jqx|8N~WNu
zj<I#@&4hkq=~TJ9rcPBarE`;UBB;NmpR}`qmZ5Pe>z_D8rfQaM@@UsXDQC;vr)zpn
zdGt;#FnIc;wb_mW{nI!gJC>m~0nn+K4=YT&)i8sAH?j@TrY_!wmUM{UCQ!{>p`w}Q
z@55}EBGwe!)@-imyf`muuG#EnA}nRl3+GBGNcE?L2O6U-v;p*FS1~G$HGeN4BfDsP
zYp2wWb6N&(zt#1%PLNjj{KEYPfw=RoXmkmFGvr<(6U{R2;``X&y1Ubh%n%Rbc#V9B
zMh=#<k%qwN@t4Z2F~(hWaU}sB>?tZqe2>up`J&gaY@InauquL!z)GW%_j=WEGBgpZ
zbM5R0mvUkHj>d<{>Y`3ep#9&IzSYGVmBa@}eQz-Tyzxx&lY=`tYTM%zY4_nS{QG>y
z%ir_mnd@)g5<l_=pX5LsP%m`h=f-q%uzXu=Pl%%XHgDYEzRhdazvDGe^IH#1V>Qp0
zZ((5Q;qF^eubfSoGbpFap3EL@vKvgY+nTpk7@vCDm#8?|)RIqPe+TCS@inj1Me*Lw
zq(i~g;UX<ePr?qiNBG@wx6ASN*Vn0L>Q~p@2*`id+WKBDt{?-lFgm>DE6NP}15JNA
zDn31UFLk~Y5YXujh<<5%w=R8r562|C@0tYMg7N#Lw@zh}bce`9g+yVmn#q6(7IGFZ
zaa0Bq_s(G?I!kLg%CHZMZ=5cexfk#Ct8BOz)kyxU?XZKZ;U6uYn|}wx*H1UJQzzPC
zDZxWuWsXJ57Vz~EA-D-iopTjZ2%Ulb1Jee$rA#nIzg;8b_H8I95Ge5r%(M%uel+A!
ztB<rA^Ae7RVrZotF<~i>lzY&!FDaA%q>|J&d5i7PgQ4do9E6wAp<XH9{Bc8G-r9e1
z8~u<FQ*79Cw7I3x#_g5M)bsVeTJ~J)-#et5nXRl=$kWE#;E&7CL6?<54hKDdw>qJf
z?0cy}W`Hci&u=rLp|d>^zSGa_4C8ga)yJn+wG6rPk4YQSjW^=>Gj>j#c3d+kkAGny
z#^a{{ZK9Dn(*digCJvD1;gJvr0Av7s004)y6psWahs3{r5z-u7Qc^O~BIH8<Z-_CQ
zl9i*4n=LsP7f)*52Q)31Wokq*#f$*{>YwEKXR);_j~AyyLr>jIhm{>qnzFrBa{~}Q
zu)#L(vm?>lCuUnstsp75?J8-^W!lK`T!*bDGh&Jc`PmIu+uPl&+m6j0PR>lXdJ>Fa
z{XhUIRrm<>ti&Xh<%=6?zu7WrxxOV5bGK|`SVMx2%TKL@b4yMz107^oOK+LR&m(p(
z9;9ddtI3Fibm2jdJ7=$_%|KhTFkn1j{iVVIFCB60O($E@x=&`KVv@?$Y_m=aVhNp&
z?p4;rX-UBVho#zBMH@9jnQO0Ph^Y_5)vaZ$fb}OOr+iEfF#Rgon4AptF76JmkJjOz
z*M{ZgIYim5r3(%2gH-^^5$Y>0B;5ZQ9(a2COXdJIxXI{1of!}jek}kftAa7n&ua(;
zh0<j*C(bmXZX{~0h%;`Nxpfqa09O$&L23$##+JNgwBNVZrLUbI-G!HtyC0;>ex6ae
zUlA8vk4zYlKJ;D2GLce;Z$0J=od$<A`8-w7DWL9s_C2z7=|J<F^}zYqZkly|8j@9@
z+uDRE#C+Dtp9_h9DwvC&_EJ5j?w$83(){cftWY8^*c!n8G>)<1+X(*1)9U}fwNLDk
cT;0rE+`L?@tdTglxcGTEkZ5S6Rb`O=2e(3(ivR!s

diff --git a/contests/ICPC_LA18/F.cpp b/contests/ICPC_LA18/F.cpp
index 48d59be..712db75 100644
--- a/contests/ICPC_LA18/F.cpp
+++ b/contests/ICPC_LA18/F.cpp
@@ -19,435 +19,87 @@ using namespace std;
 using ll = long long;
 using ii = pair<ll,ll>;
 
-vector<ll> karatsuba(const vector<ll> &a, 
-    const vector<ll> &b) 
-{
-  int n = a.size();
-  vector<ll> res(n + n);
+struct ans_t { ll x, y, d; };
 
-  if (n <= 32) {
-    for (int i = 0; i < n; i++)
-      for (int j = 0; j < n; j++)
-        res[i + j] += a[i] * b[j];
-
-    return res;
-  }
-
-  int k = n >> 1;
-  vector<ll> a1(a.begin(), a.begin() + k);
-  vector<ll> a2(a.begin() + k, a.end());
-  vector<ll> b1(b.begin(), b.begin() + k);
-  vector<ll> b2(b.begin() + k, b.end());
-
-  vector<ll> a1b1 = karatsuba(a1, b1);
-  vector<ll> a2b2 = karatsuba(a2, b2);
-
-  for (int i = 0; i < k; i++)
-    a2[i] += a1[i];
-  for (int i = 0; i < k; i++)
-    b2[i] += b1[i];
-
-  vector<ll> r = karatsuba(a2, b2);
-  for (int i = 0; i < a1b1.size(); i++) 
-    r[i] -= a1b1[i];
-  for (int i = 0; i < a2b2.size(); i++) 
-    r[i] -= a2b2[i];
-
-  for (int i = 0; i < r.size(); i++) 
-    res[i + k] += r[i];
-  for (int i = 0; i < a1b1.size(); i++) 
-    res[i] += a1b1[i];
-  for (int i = 0; i < a2b2.size(); i++) 
-    res[i + n] += a2b2[i];
-
-  return res;
-}
-
-const int base = 1000000000;
-const int base_d = 9;
-
-struct BigInt {
-  int sign;
-  vector<int> num;
-
-  BigInt() : sign(1) {}
-  BigInt(ll x) { *this = x; }
-
-  void operator=(const BigInt &x) {
-    sign = x.sign;
-    num = x.num;
-  }
-
-  void operator=(ll x) {
-    sign = 1;
-    if (x < 0) sign = -1, x = -x;
-    for (; x > 0; x /= base)
-      pb(x % base);
-  }
-
-  BigInt operator+(const BigInt &x) const {
-    if (sign != x.sign) return *this - (-x);
-
-    int carry = 0;
-    BigInt res = x;
-
-    for (int i = 0; i < max(size(), x.size()) || carry; ++i) {
-      if (i == (int) res.size())
-        res.push_back(0);
-
-      res[i] += carry + (i < size() ? num[i] : 0);
-      carry = res[i] >= base;
-      if (carry) res[i] -= base;
-    }
-
-    return res;
-  }
-
-  BigInt operator-(const BigInt &x) const {
-    if (sign != x.sign) return *this + (-x);
-    if (abs() < x.abs()) return -(x - *this);
-
-    int carry = 0;
-    BigInt res = *this;
-
-    for (int i = 0; i < x.size() || carry; ++i) {
-      res[i] -= carry + (i < x.size() ? x[i] : 0);
-      carry = res[i] < 0;
-      if (carry) res[i] += base;
-    }
-
-    res.trim();
-    return res;
-  }
-
-  void operator*=(int x) {
-    if (x < 0) sign = -sign, x = -x;
-
-    int carry = 0;
-    for (int i = 0; i < size() || carry; ++i) {
-      if (i == size()) pb(0);
-      ll cur = num[i] * (ll) x + carry;
-
-      carry  = (int) (cur / base);
-      num[i] = (int) (cur % base);
-    }
-
-    trim();
-  }
-
-  BigInt operator*(int x) const {
-    BigInt res = *this;
-    res *= x;
-    return res;
-  }
-
-  friend pair<BigInt, BigInt> divmod(const BigInt &a1,
-      const BigInt &b1)
-  {
-    int norm = base / (b1.back() + 1);
-    BigInt a = a1.abs() * norm;
-    BigInt b = b1.abs() * norm;
-    BigInt q, r;
-    q.resize(a.size());
-
-    for (int i = a.size() - 1; i >= 0; i--) {
-      r *= base;
-      r += a[i];
-
-      int s1 = r.size() <= b.size() ? 0 : r[b.size()];
-      int s2 = r.size() <= b.size() - 1 ? 0 : r[b.size() - 1];
-      int d = ((ll) base * s1 + s2) / b.back();
-
-      r -= b * d;
-      while (r < 0) r += b, --d;
-      q[i] = d;
-    }
-
-    q.sign = a1.sign * b1.sign;
-    r.sign = a1.sign;
-    q.trim(); r.trim();
-
-    return make_pair(q, r / norm);
-  }
-
-  BigInt operator/(const BigInt &x) const {
-    return divmod(*this, x).fi;
-  }
-
-  BigInt operator%(const BigInt &x) const {
-    return divmod(*this, x).se;
-  }
-
-  void operator/=(int x) {
-    if (x < 0) sign = -sign, x = -x;
-
-    for (int i = size() - 1, rem = 0; i >= 0; --i) {
-      ll cur = num[i] + rem * (ll) base;
-      num[i] = (int) (cur / x);
-      rem = (int) (cur % x);
-    }
-
-    trim();
-  }
-
-  BigInt operator/(int x) const {
-    BigInt res = *this;
-    res /= x;
-    return res;
-  }
-
-  int operator%(int x) const {
-    if (x < 0) x = -x;
-
-    int m = 0;
-    for (int i = size() - 1; i >= 0; --i)
-      m = (num[i] + m * (ll) base) % x;
-
-    return m * sign;
-  }
-
-  void operator+=(const BigInt &x) { *this = *this + x; }
-  void operator-=(const BigInt &x) { *this = *this - x; }
-  void operator*=(const BigInt &x) { *this = *this * x; }
-  void operator/=(const BigInt &x) { *this = *this / x; }
-
-  bool operator<(const BigInt &x) const {
-    if (sign != x.sign)
-      return sign < x.sign;
-
-    if (size() != x.size())
-      return size() * sign < x.size() * x.sign;
-
-    for (int i = size() - 1; i >= 0; i--)
-      if (num[i] != x[i])
-        return num[i] * sign < x[i] * sign;
-
-    return false;
-  }
-
-  bool operator>(const BigInt &x) const {
-    return x < *this;
-  }
-  bool operator<=(const BigInt &x) const {
-    return !(x < *this);
-  }
-  bool operator>=(const BigInt &x) const {
-    return !(*this < x);
-  }
-  bool operator==(const BigInt &x) const {
-    return !(*this < x) && !(x < *this);
-  }
-  bool operator!=(const BigInt &x) const {
-    return *this < x || x < *this;
-  }
-
-  void trim() {
-    while (!empty() && !back()) pop_back();
-    if (empty()) sign = 1;
-  }
-
-  bool is_zero() const {
-    return empty() || (size() == 1 && !num[0]);
-  }
-
-  BigInt operator-() const {
-    BigInt res = *this;
-    res.sign = -sign;
-    return res;
-  }
-
-  BigInt abs() const {
-    BigInt res = *this;
-    res.sign *= res.sign;
-    return res;
-  }
-
-  ll to_long() const {
-    ll res = 0;
-    for (int i = size() - 1; i >= 0; i--)
-      res = res * base + num[i];
-    return res * sign;
-  }
-
-  void read(const string &s) {
-    sign = 1;
-    num.clear();
-
-    int pos = 0;
-    while (pos < s.size() &&
-        (s[pos] == '-' || s[pos] == '+')) {
-      if (s[pos] == '-')
-        sign = -sign;
-      ++pos;
-    }
-
-    for (int i = s.size() - 1; i >= pos; i -= base_d) {
-      int x = 0;
-      for (int j = max(pos, i - base_d + 1); j <= i; j++)
-        x = x * 10 + s[j] - '0';
-      num.push_back(x);
-    }
-
-    trim();
-  }
-
-  friend istream& operator>>(istream &stream, BigInt &v) {
-    string s; stream >> s;
-    v.read(s);
-    return stream;
-  }
-
-  friend ostream& operator<<(ostream &stream, const BigInt &x) {
-    if (x.sign == -1)
-      stream << '-';
-
-    stream << (x.empty() ? 0 : x.back());
-    for (int i = x.size() - 2; i >= 0; --i)
-      stream << setw(base_d) << setfill('0') << x.num[i];
-
-    return stream;
-  }
-
-  static vector<int> convert_base(
-      const vector<int> &a,
-      int oldd, int newd) {
-    vector<ll> p(max(oldd, newd) + 1);
-    p[0] = 1;
-    for (int i = 1; i < p.size(); i++)
-      p[i] = p[i - 1] * 10;
-
-    ll cur = 0;
-    int curd = 0;
-    vector<int> res;
-
-    for (int i = 0; i < a.size(); i++) {
-      cur += a[i] * p[curd];
-      curd += oldd;
-
-      while (curd >= newd) {
-        res.pb(int(cur % p[newd]));
-        cur /= p[newd];
-        curd -= newd;
-      }
-    }
-
-    res.pb((int) cur);
-    while (!res.empty() && !res.back())
-      res.pop_back();
-    return res;
-  }
-
-  BigInt operator*(const BigInt &x) const {
-    vector<int> a6 = convert_base(this->num, base_d, 6);
-    vector<int> b6 = convert_base(x.num, base_d, 6);
-
-    vector<ll> a(all(a6));
-    vector<ll> b(all(b6));
-
-    while (a.size() < b.size()) a.pb(0);
-    while (b.size() < a.size()) b.pb(0);
-    while (a.size() & (a.size() - 1))
-      a.pb(0), b.pb(0);
-
-    vector<ll> c = karatsuba(a, b);
-
-    BigInt res;
-    int carry = 0;
-    res.sign = sign * x.sign;
-
-    for (int i = 0; i < c.size(); i++) {
-      ll cur = c[i] + carry;
-      res.pb((int) (cur % 1000000));
-      carry = (int) (cur / 1000000);
-    }
-
-    res.num = convert_base(res.num, 6, base_d);
-    res.trim();
-    return res;
-  }
-
-  // Handles vector operations.
-  int back() const { return num.back(); }
-  bool empty() const { return num.empty(); }
-  size_t size() const { return num.size(); }
-
-  void pop_back() { num.pop_back(); }
-  void resize(int x) { num.resize(x); }
-  void push_back(int x) { num.push_back(x); }
-
-  int &operator[](int i) { return num[i]; }
-  int operator[](int i) const { return num[i]; }
-};
-
-using pb = pair<BigInt,BigInt>;
-
-template <typename T> 
-struct ans_t { T x, y, d; };
-
-template <typename T>
-ans_t<T> ext_gcd(T a, T b) {
+ans_t ext_gcd(ll a, ll b) {
   if (a == 0) return {0, 1, b};
-  ans_t<T> e = ext_gcd(b % a, a);
+  ans_t e = ext_gcd(b % a, a);
   return {e.y - (b/a) * e.x, e.x, e.d};
 }
 
-template <typename T>
-T norm(T a, T b) {
-  return (a + b) % b;
+ll norm(ll a, ll b) { 
+  a %= b; 
+  return (a < 0) ? a + b : a;
 }
 
-template <typename T>
-pb crt(T a, T n, T b, T m) {
-  ans_t<T> e = ext_gcd(n, m);
+pair<ll,ll> crt_single(ll a, ll n, ll b, ll m) {
+  ans_t e = ext_gcd(n, m);
 
   if ((a - b) % e.d != 0)
     return {-1,-1};
 
-  T ans = norm(a + e.x*(b-a) / e.d % (m/e.d)*n, n *m / e.d);
-  T lcm = (n*m) / e.d;
+  ll lcm = (m/e.d) * n;
+  ll ans = norm(a + e.x*(b-a) / e.d % (m/e.d)*n, lcm);
   return {norm(ans, lcm), lcm};
 }
 
+ll crt(vector<ll> a, vector<ll> m) {
+  ll ans = a[0];
+  ll lcm = m[0];
+
+  int t = a.size();
+  for (int i = 1; i < t; ++i) {
+    auto ss = crt_single(ans, lcm, a[i], m[i]);
+    if (ss.fi == -1)
+      return -1;
+
+    ans = ss.fi;
+    lcm = ss.se;
+  }
+
+  return ans;
+}
+
 int main() {
   ios::sync_with_stdio(0);
   cin.tie(0);
 
   int b, z; cin >> b >> z;
   vector<vector<int>> mat(b, vector<int>(z+1));
-  for (int i = 0; i < b; ++i)
-    for (int j = 0; j <= z; ++j)
-      cin >> mat[i][j];
-
   vector<vector<int>> time(z+1, vector<int>(501));
+  vector<vector<ll>> a(z + 1, vector<ll>(b, -1));
+  vector<vector<ll>> m(z + 1, vector<ll>(b, -1));
+
+  for (auto &i : mat) 
+    for (auto &j : i) cin >> j;
+
   for (int i = 0; i < b; ++i) {
     int curr = mat[i][0];
     time[curr][0] |= (1 << i);
+
     for (int t = 1; t <= 500; ++t) {
       curr = mat[i][curr]; 
       time[curr][t] |= (1 << i);
     }
   }
 
-  vector<vector<int>> a(z + 1, vector<int>(b, -1));
-  vector<vector<int>> m(z + 1, vector<int>(b, -1));
   for (int i = 1; i <= z; ++i) {
     for (int t = 0; t <= 500; ++t) {
       if (time[i][t] == (1 << b) - 1)
         return cout << i << " " << t << ende, 0;
 
-      for (int j = 0; j < b; ++j) {
+      for (int j = 0; j < b; ++j)
         if (time[i][t] & (1 << j)) {
           if (a[i][j] == -1)
             a[i][j] = t;
           else if (m[i][j] == -1)
             m[i][j] = t - a[i][j];
         }
-      }
     }
   }
 
-  int zoo = 0;
-  BigInt ans = llinf*2;
+  ll zoo = 0;
+  ll ans = llinf*2;
   for (int i = 1; i <= z; ++i) {
     bool poss = true;
     for (int j = 0; j < b; ++j)
@@ -456,24 +108,14 @@ int main() {
         break;
       }
 
-    if (!poss) continue;
-
-    BigInt res = a[i][0];
-    BigInt lcm = m[i][0];
-    for (int j = 1; j < b; ++j) {
-      pb ss = crt(res, lcm, BigInt(a[i][j]), BigInt(m[i][j]));
-      if (ss.fi == -1) {
-        poss = false;
-        break;
-      }
-
-      res = ss.fi;
-      lcm = ss.se;
-    }
+    if (!poss) 
+      continue;
 
-    if (!poss) continue;
+    ll res = crt(a[i], m[i]);
+    if (res == -1) 
+      continue;
     else {
-      if (ans > res)
+      if (ans > res && res > 0)
         zoo = i, ans = res;
     }
   }
-- 
GitLab