From 667624355cc6a5b7270604dbbb68d994bf6a1dee Mon Sep 17 00:00:00 2001 From: ranwenjie Date: Wed, 22 Dec 2021 17:12:08 +0800 Subject: [PATCH] update list&tree --- 2 List/QPS Counter.md | 32 ++++++ 2 List/数组.md | 1 - 4 Tree/8-堆/pq-1.png | Bin 0 -> 107467 bytes 4 Tree/8-堆/堆.md | 98 ++++++++++++++++-- 9 Algorithms Job Interview/1 字符串.md | 8 ++ 9 Algorithms Job Interview/1.1 字符串-查找.md | 61 ++++++----- 9 Algorithms Job Interview/1.3 字符串-修改.md | 33 +++--- 9 Algorithms Job Interview/1.4 字符串-排序.md | 1 - 9 Algorithms Job Interview/5.4 数列-查找.md | 26 +++++ 9 Algorithms Job Interview/README.md | 3 + 10 files changed, 212 insertions(+), 51 deletions(-) create mode 100644 4 Tree/8-堆/pq-1.png diff --git a/2 List/QPS Counter.md b/2 List/QPS Counter.md index 3411dea..570c2c4 100644 --- a/2 List/QPS Counter.md +++ b/2 List/QPS Counter.md @@ -5,3 +5,35 @@ + +```Java + static AtomicInteger qpsCount = 100; //线程安全 + static volatile long lastSenconds = System.currentTimeMillis()/1000; + + //1 计数器 + public static boolean tryAcquire() { + + long current = System.currentTimeMillis()/1000; + if(current == lastSenconds){ + + if (qpsCount-- > 0) {//CAS api + return true; + } else { + //限流 + return false; + } + + } else{//下一个时间窗口 + lastSenconds = current; + qpsCount = 100; + return true; + } + } +``` + + + + + + + diff --git a/2 List/数组.md b/2 List/数组.md index 2be85e1..dc02027 100644 --- a/2 List/数组.md +++ b/2 List/数组.md @@ -18,7 +18,6 @@ - 数据结构 ``` diff --git a/4 Tree/8-堆/pq-1.png b/4 Tree/8-堆/pq-1.png new file mode 100644 index 0000000000000000000000000000000000000000..78202ff57b2f97364198df85aaa15a6138319285 GIT binary patch literal 107467 zcmd>m_dnJD|NdzsNmf}&M#v^2tJARe7Ahg6lw^+vNw#cJvdM~)B9&~iD>9hb0Q0@)#9f zGW>M+f{WJ4eR|nS-<3j%tKF7Yud3q` z@KR{F{yaB#a$-W9b?1M7<9S6op6b6J3F6zx**AZ@9Ze*XZT|E$EsUCUQv`wyFQ@P3 z4+Im6|KEP?_Cxb`p2kK-nPWTzy_!}h(mH&qsmXBYf0rnIE27(bs6HwzjGD?nB_}5* zC1v7FD&}H!?B=cBZMuc&{znN5IZWO+I_iiVL zwmL32Ki{D_N%pF}J(IZ2A%~L2Ml}Zqhbvcp4>u(&jCZP*i}>EZuaO`TO#Q-hX@>r& zLFU2_{S1$VKWEOIx%K;t?5*+0GA~n8Qzpr4J>IYa zy4qLnalXv8@RUDQWByJmme{Z`1x2zh`&W%`Gt$!B+}-;se4eZuy>-5-sHhm{v2*)& ze)BR{+{e%AU|n_%>pA76i<$VoP}UO$el-#Pa)uEqDk|xkPvkCs+`enqF6&E9PEIFJ z-ieE2T)TmFQjHO06|-*aetG5h*L+RM<&_nLOK)4-40fLHmo_$kvioIRTpX6|^5@56 zUvd+&eRQovKKvdV)1T2=T3QNbIyUH7ity0X46V%iW*ecz$tOU14Nbc?#0WhRyBs3A z@aFmeQGxV&Umta}yu5s9G8&P{#H2#TDC1htO-rOV|4v^uGJC$lJ9ojyh(CI8ZR}Cq z&uKDt^#qBi(q>$nyys#|p4kbvUA+AKJw=y8l{oGC%1RRxdt*f|A;?A=<1RTk^;-OsF%%bNzT%@PxYTctFv@|r&pFbaUUZ!mEk@s3IcK>G=uH-a5 zc&0A7Owyt6L6wEBu5Rbq&b#;SiHV7kv*RKJPkeRhD|5pY>JA@IPEL+u$xEKTdHiv` z<~Q2FD(p;@4B1T{t_7K!!<6N%MVB>qyp?tRd%Lfoq$FSMf~bf?+(Yh8dcgd9TJQlcjNTaj8F%OKh@USz2ObVsiKJ@L639r+$`^A?Yzc;j_M^ z_~G394<9}>H3@KXroMjdy7+fs;ZJXlagnv(U}`0kMWNA>Z7;`1K2(o}L;SpMQL~hs-i7cfU1L zK|X*hukc(V?$yaPIX3*xp|6bHcW$)xR9(dx9dGaT_+wW_C!aoj`oeholjf0WS7~W! zRGcWc?cqw1;o&FAv^_t&BdkN&mzhHbg{6WpnRz+=Ld#-@yk@gLj-Me>Jr99V#mSQX*tfzL+fi8yA7Vr>-QBTU!v5Ref4{$0tS|pY?$Fog%+Ai< zym|BAzkhouDQ$Gte$~-#rVl?q|0fINtw?CiBloq9^_8jpLgsqcjc(qY*o^91rLU1 zSf)FzE#Gp>ib+aJdSej7JND6UcWG&*6acC>TO*VPm6oo|&KFsJM7B-o?emwR^uHi?~e~D$(7a707)ge*I}3+y)0n3W~1BE>&!-o@7TFh(Cm%g zhiSyzVYf+TM$}$L8AE%dN>rTcM^0aK+ot+@lr<7e%G$T1o06RU{oY|@e8iJQ1P;PA z0l>V%N4}TlzyX`fmosLRD=RkERcDoh4IMVT4<|?S8^3U#G#Rc*KIQ-B_3OFu&cM$G zGy$hkHcwpt@&47-?<%UQAm*wb9Hx*ejAG9#NNa-M5(w}_~f6jNFNeW3}MM~9bhc_k!xP=K4V=yJ~no1tnEy% zh(Ye{+XVN@%F0udvdlCzG;%)cYGk(GUkQl0L{bm_`bEdW(vzXdcH+bd>$ggr&x-b9 zlHs~+po{#R;g&b-Kv|;eIIVxbBSXd1lx2-TxqJ7cxF_2pcVp>8)fE*p0Q|6AKnzxS zPRomnnU4XJnD~;2vrV4z;nYMbR_RZc_d2unPdJUX+}^T{)1{@gb*v)`tuN8KF;)bB zi&&v0V&{u5e7FnzX>(}sNfr8`rN+Re>PxCBD%Q=5rZF8!>7R3m5Nm5|GzxJ6d*BZM zOn}6ngM%pTH9x20#cf~Mv>u-EAwOGre~*>mDVo44)Q767Dr81P72*Nenc}lj8_uz@ z{9EXah`9LN+*muXzK-L-V~Mv&&)jn*qmw8}?S?M`0_sqzI9-^9FA#DcpH7tXitjUe zVHr@yflo<@URu&NEpwelqWFd(^k0{jX00tA(M(E}#ORq*dq6Zh=-t4LFt-78X+2$rs}m1qJf}piq~5!+!kufpO^HRR0EZ)p80TgSwp^pV@8B zxD#DnU9E?y{rvojpKRB?cE^JI57U7ImX|M!y`pzU!S}O9>^iR=mD`&EW8T z_*E+{BZHQRife6euXdTeZ6C2N;8R4lIQy^JB^@_jcFTX`osCzeA1n_w#GtFT3t)^g zEw%|)IP}!*2LKt}SCa|gO-rJYj?N%@KSSW}j;zX#b^3tQ%o6slOEW{$KWhMhf#{Xr zb+(L#j$-`)9wNJyj)bUW>t;|rqDEjp7Cbc3mKJCkUHjT?mb;uxKaZ5cGYvxY@%7$l zr*2-RdRq8~i3v4_{e&?}p&EB3rp=o|* z#zKN(`&Q|!*UppOLkDG!9=$T!k_^yA@ny|`HS3tK5?S)h<~|tle|fNv!-l9t=7uWq zh`Jlg*t$3U=U)t-Hny*Wf`R}6fB}WogCp(daTzrG_T5;X8~gO>6Na5aBYuDzX6A%D z+jgO<8+_n>IrE`5C^a?pbau_P3l|QVedY`>A57arNyd)&2o4D`Slymy_BPtwT~bU; zRZ}x&)w=ifjY}s_ZYeLv_~*Ei+nJ?%8FdXyoqGP;QG@3^3DgFN*@A*FYR7?(J9Y?E z#bz`#H*0>VC9wZON6^;RMrHQiSohM<&;W>KlCU2g9X)W5Vc5s`2PP89#LUmFkXf+xm^99E;hf6uzgpe=J5j*CwFEYAhx zMezmZ`O}eYpK(6qE1a*OeE6DoOVm`-`t$E^90WlkFv6|FZGoxS0oaeMrN6h*>NsCKuqAexY#+x z#Ur!U4q#xDj88}qyL5k?9tEAAzG~q5aTblPJLlsUW?W_JvZW|Zp6eW<7Qfov(cGNR z_fhu_>Ru!Fu#}V(kYP->($_C9x+b>mqEcE5)oRbsG!$iba&%mt8B#_00_bm$*c~1b z6*V+G>^$+U5Wg41D0VjPXN)SYm+vGCRZVSe?YD16Jap-sFO@$AT3Ux_0#f$h)JqdunGv&PSqWMr`tS4}QlxG?15Y~va;0U#j{#Iplfp01fq?coIT67 z`64PIZ`nWf_xHE9YQLyqZD((J|NcjHFmvNPn1fcAKUkaC^?yO1KAo1%y#ewAdj<^O z*x2ZatZk>e+z>55A-!F%8V%^#vuAWu9KdN@oNnG5Yc6gT(rESC+Tk;SN>S`mw|m}s zd1Otf8XCF)p;%4*o1Z+F|v98 z{7UUYp%EG&kUyKe_j4_(SEz4>hK9q1xNnnU8+L}kC$b*VF)@l{z`^SHWZ(t*5?398 z17>Ds?&%(*E$r^rEr0?qemcyVI{*Fg0aaX6Q*%Grc68o|qI;?6Y2i{!7p(nt_6wRW zF8@1PJ~=q}%v1X~IyCp!;DCUvXTE>I8=$nPS^1cm^`ht|#KobdaUD4_yW|+$NLN|FKh{TFLHa}Fy}`O`8o^4_EwLto^g{aE7AukrYJD|%FCr+&FeOZ7cb zA1;~z8~cZEsd$pM1K|)g^I2I~xYc469zDd6&&A34cWD)j95*MY__dx`>KQ=2H%Hii zA-_@a-AvPucyv8m8u^@h0cB_liR{p!d26jfYg)$w>Hhb$l zL-VSjpy0s+GA}Q$c!KIa3cq5>Lz68$?ck%h0z)!;@zw^`kViG`?T^xBcQf#3S{`Ur zdYzJzB1+4F@9_BXev8SEj^5t#p2w!gjE#*^+IZ-gn3>xd_-CG*mv`6H_%{rR#@GXe zVT$cQ|3V z_!H%0EOqCODHkhYHnPT|JL@G+Ma!HB-Usu|%Pp=oOqjevBw`xJ7khYk0QQl zR&M>=8Klp>oqL|e837-FXazYLyX*@73TfX}aB*91`8%gEovdtn`O}nY(%L2_COSGF z?K3iJtxCkqj5x`+-vv$<;qYal8d;hhVP|L8dF!=2mxVyW#k!%60dID^poj^O7Zr_Q zJR2qoh>s#Jd9^$8v(F=2WG&E8)WY}0#YL%`!_-8(FV9OcNizhVdBV19mp^744>va} zD=TF4FU0HFvuDxxiODT^)z*#z?%`4!3l6H21qTN=gbXF2JxaVd;)_c1;p4}_ujhRL zu#P6CuQv!)tgcK|SZ!QqWo31%OaiYVb)mGo*p}nvgf2}Y*?a3EhzF4}Pw6lc96fq8 zT_*IdEP(Im5lsM6`i1yQOlFbM(R`zi^S+I>XJ8=}$QXq$+@>&NOl6UA4eQf#l;H5M z>?-#t$;}mb(k$;jN1BB;R%e@4s(0M>F!gl6K4Ii^H?Q7@p$ZBSF|kMP z+PK5GgoNMY<9~p`0CNDje#|a`Um5}GLSb%LRXn=L=FpKD-tpJ|+Oj(#Hc?;wwI;1hPI`c)TvR6W`&j9}xBWYYT3{Bdg{8&m6u@Kj z2Jf|hhSn+J;o&p)46!2_M|!xqxj~~uWY}PQ5)>2!9B{sV{pmmQ-rnA^m-=yhY(b)? zW@bpc9a~S@*^Q$XSvt3@gGm$nT4-q=dJd~EFVb0v8v@9jj>dPVv?W9a(&IwXxlz8yJ+ zQ&^|eMkWgPL=C$W>b+p@!48#i^q1buK*vIZc1oTBf3#!k2jC6hGjx!i5{L6vXUQ7e zrw9EStEDjh;nf%lQvXWV3$BwyGJOK3Lrsf;kA9707h?p?etBJ9Sy@r#zCiD|GJlo( z#LT~cQEnedhzBH0YLRrlX(>oBjvdN+R(G{^%H99nr(`5vIRHp?%9{8Z%_@Efdk`tB zY4N4V*u=y@Jf-Nxi)Z8ry~esaZR?QenYQ+J^sKQ-#EpuTMG(@NMauCP`aUuFFM6dJ zRydS?+as-iAT3`!arO3=o2>p)?%@KK+S6J&e#1P2BpdoB7> z=fqB1pOQfh#H&sKgk>>xEw0J-4%*%kLII+tHHrEDTST#ILNqH1OLJHu@)rRX+-Ux40@r9sZ>jV7-kVT#BhNI(ne?uSjw0IfUdMZvcIoSM?qeLgyB z<3@gw>z;Pf+qWmw$utwC^@eq+>^VkP>q1@vAvb#F6e*=4T(Ab3SUnxPl^ ziZLP0?^Gn)&Lyf#e-{>F9*frKF`8j)9m)w3Md4;-VNn}#2D$3m^7LdB%h%jCUtuY! zuDZH0Y$Nz+bO)z5z0gcR@c8dx=BA?PXV-Z!D5cTl)5hyRfabHVrB*<9#v(b+_{A>aJU@kRaB9et9AV$ih9G4 z%4hND5e&H~V)a3`Kx(8i!c-fzkD6K`<`{a&*N%?JVP;?t!>gHp(LtOnUn93g1G{*h z=H$Euf+hv)A!-EgX@UJJoLM(~wGL53ag38ln*R4MP50@oTenaWxm-NZ-oQ_OvzM6F z6AqR{&E}cBx_UyAyw5>;dMg{7Ov?`!cZ`3{7wS523Zsc{0qXJG zeY*dJiyxGzB5I2rhg97DHA%btF^y9#0MJU8WMO5cXQ}DwDT9RMG+p>Y5s{Ub)eiZ(1*>02bWB8L&PN{41vM zyz>?2*-W{qVDAA4zJL2Bylps2vFId2AUy-amx7CxBo3OM9-X1<`}dp{`s*L=?wI4K z1>tt`2CJLBy*-1VsZxS-BNR9+!q9MEz3wIA=;Wk&&4To;aq%02pPoKFlD~hzl9cM)O7}fm1w%tqm5+fi`$?}yV z$niDO#@ws`1JZKkEUUDWu(0s!TfYs^U;zFwe#|e;UM4;mTzW!GzK+5VY-}pH0Lo3@ zMMCZO+4@;1F4o3bB_#_F>5rmeu7LppGgd3p5W}CIo%+^gs_g(c#MGxhiNFzP)ncNe zklgI9UY#5m&`wqizl^Ve@?G%iRXT0&y}Nh8*YeQ>JWfnRCFLs)6XNE!?tkay8+JCB zsRkR}S>Ke4|2QFnxCHf)ZDLl4+@<6$nIMYSa%PZ$2hLW*}#@p2v?L zqY)t${`~lH{ZCIR-}tM;d)0Tu1x8_DnL7)-fSK}a(1B@zdv~5}qaogAQ$w?hbx>zz zO~m&=W<=Wceg2%+Gj=sf=2k;fQ<`MG?EZ_+7ydk(zrbe+!3xbBdcIDY6+}YU!B6Dw z-bLO(hcCM(^_eL`7*Q?#n6MT zXG2I-=vN{1=fj;@J&lbM(21c|SXRfNK!XW&M$bo2r^M9x`OwvlOl_13I+{s5^J=AvvC?9T_NBwQKNVzEW5pk9+?+#RTHa%E+lUVOUBSPh%Yvzsk&#JPi_=Nl z&jOy<1C&4L^t9Ae=(i-~h}NRNaNSCTD`hma_&Sx}z)7t=q+M*pSfqC_KU3{1hY2yU zPq3tM+iYU$g(wZKbHe%<@#~=ZkM_KRg@BvA=jE0Cz)5a zI{p1|(j@;@TdMM<>L9n7U&?lNb{MkozbY#AKsT79QQ*&HJLXN`PyUpQBydR;CcTF)Xt7Rt~$aNd%i zcPhvEYR&iotmxhIr6xpvv?zq5XG|;TmqM^wW5oUX#+SN6z)SJes2B0k(fb0cPPqI@ ztA82A2thW$0&-Pjp4$UZ98iz6*y^NtGU))9I);R zArzG}vRB#DQ!EB6=*v`UZaAjUa8S7`811(X2#jVbXLHoK0T zmb=B!7JSzU=ZVb56goP(mUkh()EM34u9~I6-^42=wS@OVo&{Pc_gZ;1sP7Egw)oiH zNL0jz-;zcsUYLd7d9A>R(%Xv}mQIMbxv6QgJ);>Ahnzh+I$9_AuznFVQwY^U=iixD zczfXr(Lb_RMLK`u({GJ;Xn!3Y0_@3!v^(Sog}uSL0?d}0x_XqoZKWy439n`Ga%*jd z@;9XM|K~LNsS)7(!?XJMU&N<~kZ_$`NrXcQI2hPT94bET^FFOawnf1h653oD9~T!W z!$v9!hCa_r5)u*sd2c)x@)Qn{?cTitq$FtiTA`s1OgE2BJHN4=51K&z5#NX*u6inY zsA#QLw?vt<#A2B;tU96Jth?~k9-eh{k&dwn8d8IJUKo&l z5%?49_}fPO*HD6rHmt0zxubSKA8_l6gh2PGFlr8i80KG<&(9uB|=hq!}iBT5h%D z&J(eB*NpiYCJ*rXec2rj+DQ&WIJiCZEs$~s!h;JS6tK}GYYO$V{CuB@Zz3<%bTTnT zhlcLGdh`v<3GAotN1hu|qtIn8vJY>przYEu0Usgv^a*7I`9<)idWlBv>W^xEihPGs zj;Z-cGy49kUyh^i-z#(u20SFa_*_bOb<;D$s8tR^_GyTS%lJjcp7?$1Q%V>mpFW42 z*b>-;jn^qVqHEgm<;$ywcQ115^7|TBT6%xQ-AM&z@}yVcNNK=fJ=~eY5;?koC}$@r&q! zAQ~|%>gD}-_8uj$!h3Cea#A3F@(4SpoSZl8L31x_tcx%xcP?sUbZkWJkU>MhU7mYo zKRrL6*U}qzMYFML$NhR*EvWDoR#yK|lraA9+P+<>Gtj!wNN4|6n=b;TW}GzBOP+TW zF4)-cl#Y;QS_cL2N>(2OA3S*N{*SM`X~;1~;2gJDe@ZBPa#77YXJ=-hR~gKAAI?p! zR~R8Dbxwko0Z4$jt2YApffo_|5lU(ol2}#iM z9R*Ha!YtT8~%^4KY8{2~?oNUf6omWYG|Sf{W-FAR1YHEcdCC!B*qen*!d z(r3g#k53}Cz(NZ@Js){1;VDyViDSBS*~A?Vm<>^vY|VO5#leL-!HR&nivKP3*Z1#l z8-G^cv1=E0q`yZeT zj?3-~{}fchbKuk?6qe><{wGp5xz#yga((*x;ZAl-fJmoaDs~c?g8(rwW#EFiXCR+( zqkf|1y=g%xYKBMJV`?23i5J^eFp$OGc?!u&__xH-)QF3jTsx~`P4%)B_R$KIPY+b? zqNRQ0{%^e1hSc@)9QSX%^J9MUJHV*xzj6AaQN5*ZB6KQFUpS7^v-5kz_UOS57ps%A zWy==SLVgC-4{nnvkE5T6;Yz0+GSxU~dP{FA_OdmOd3~vd%7pn9Y_}wbm>e@aiqj-qBUO@-F#?)FpUk`G^$qbOBeP3ziAD3@S!oit zX*tBlN75lMNb46i=A(L{dnTZ0QpA|Wx(Gh{B}V%>joZ2Y?FulKtc(ma+iwsIa0l?z z@X5%m!ufz89Ac2kk+vvw#r2?@qs*Xm%-tQU31wTE8!N(cP&Dx?sj8+(k{Ak@V0P?g z_%$>naQ@vYu07&y!0E%?0ni~G>LR!(s211PAQ`;HyLhh+Z6$ed2s}BMnqbaNDQQkT zAqfH@Ye*1IT!0KG6K;0P)@Nt*4R0saS;F9E{D;n<8tw_(Bn8!3S|X+}lRr{>0;{@9 z9N5H4E~EP*`6IH&G$9Q^mwa1V+M4ep7;|)LHA*?Ey{)bOOI_pV&j(@L8Z?cm9Dq$K zd|e9d>SalZVL{kbYl0?T?`A(hoO{1u}{ zZ#&+K;nHWR=>~k7cD}+VPON}@@eRYKG0@Q&ojcc%;A5_*CvI6w4QdnHbo=&gq&XVq zG6Xcxi_Xr@>(N#@4Kx&fAS*ZJ$HvD}?Ok0W8pm;^9GJ_6=TrO4(YS#lw|P?t zT3bjuL|4(}v6vR16cp&e!NIn4b>>2&$B~i6$ci_$VbpCYihI)o4fU@(Is(TueE!Tp zwjI`eQuPD>7uP9=$t}`&z8w5G%D=V7@o)C8?mCJ_K)b~!w&kCfH}U6&y#*5m-Uc6) zA;Ji46Cd{T=TDH3alEotwt(fE31)xMK>LQ5uu7oKme_YW zLW@G$45hOnYcUa^nN|2~$TfWfhcGrdNfNL@K!Hd-dawhN;1u$AEaziyuk7*TuSGvF zA2`4w=LzokRc0m+iVF|VgDm50F1koXaA)iIhPdt{7)9q~M}PciL2bhgkOXY(6ZjaQ z#E9L;_w3no_3G6zJs*<5!1e^F)Mu~iFt{Rdw;9XsmsNdzN%JS+yQ18?cd9L|q09~T z5_1?J(G~&pMB?Z(NL##I?i+>>3qh=a&Y*~oVUcx@bRM+r%#MnQ`3f5%-D#zYS7hw^ z-AVhr?LiY+5EkDpEiMXAbs>)*_9Yri6_C6$F4oq{trzoNfY*NGJej?Cud20m8Usxf zWqOa2Mv@F~{xdHk@orhA=*XyV7+^0?$jN#X(t4o(=!9!LlswyjMYuWsYIqwY^ z$2#i-ez5MuXF&3tr_>KpF*)jMABYM{hCx7BILy2}&$x)&%sDM5=l8%sctnIF;0!ho zn_xa8hz&;d@Wzbn?fq_W#8}1Lyf1=FHMZ~yh<3QHq5SS}0ezwd_zym_7&!~BhIhkA z+ySBwcW8}n0rTWsOR=r)juqj+m-SvP&!6*K-xp)&JakB*5BAnSsXtwTgK+!<9DeFZ zKZKBV80J%*HB?lfSyg}rPB?aj+b#a{kmJg~-}_luR^fH1TN~rlhi}|1RKuT(oE>2i zU0R7%vbuJ8Cpdz2c+JloZbbvJHRGZ3e-s;AJE0tSk%kEO$xQ@QoZ<@bJ!F=#Yy1oi zU%wifzo#qGQ5`;NOfy*ncUgNoKJj2t;=F(4LZk4{XJ}auLxlna*PolceKq3}PD}`) zCK6Ab(w8HAHBQ>3dtw?lYw%`)T|ij(B6uOHgEB_*$BV@c;e@wDJ1&@nve!iWQr4pG{ucWz8AhH6T&3+ZOX^h=oR`CMIt{-2ef_$o4`# z)mBn^pl~SDQ@H;03=Bkj_lCmg6(1k3l9bA)M8|)<>p!n;R9buIRhzYpsHOi^)<+bL>CJ7Sb#e;BATKMexKMYV^nyb{+)XXcq)g{}c z)0}?7YQec6Bp~pzxY&~F9Lfz?+S6ywz>Ho?nKDD3EQ47PPExU7qBz|Gra3DSjK9P3 zIY{G%hF^n%D6?2$GfZr_U~lgUmdKIKY{^%PpP^m(9x6{vWAvD)AvU1-1sK=c2P=r= z?72C{alU_1lICvctCINznSL>gux}%tF}YHEPJObYz}<scRpM|nAGnJMyw?bpnHCwH)c~(2*$R!EpdT3+>GlvwKXb(r=>1QZzb#YsD z)78RVdXF4A;ym^@^*mSPTtS+@<{f<-pu3dERxq)*i#W) z^(<_~v_}O6HTr_M34|&d9Q>lC9ScbG^Q%G;`+}1~>bvwqFw3_At^M>JyB46N@2n|#c)p+r5;C=!8(3fb@q3-Ttxh@Xm*a&CS;owbsT9d-wj z%StyRBp@IFGb)&8oMQ_Kp-O1_67F|x<7cS6P2O9a5rI>{-{6X{q+~x@Ga&753JM4j z)gAU7U%!^XK2um|`>h}uz_YMWB&MMgq@}cIU=`mA2OP|0r)Q>rD&i0uPP1*>b`K7} zx-$2V*RNlH5EzInHg|WIE}BL=z!KycIntMS5sb;uKL#8fLLotU( zLV|+e>LZ}M(-L%~leq<86X+VrOVyNFB_n`py*)jg-*45T z94h5=*rTf4&^92}f;olQE{hso*Bpl_Lgkfc%n{fFhac4+KxGE^l4ee%e}O|(FjW$j z02!Ou`0N10bkfwnc!e>_7UF7t7lL-~vBn zs1-8Cp{$@&n6!FGNlUj`1&eyY>kr(GGeyaj?!IB9X@AEK5})+}CmLGOX};v2*Ysf# zwZ!-O>a~A%l!ZKAS$R*;?diSXM!zC75T`#qanz3U6UKGqTlMhaD3`K;D)35C$R4)Y z7eu}F_B=c#jf0thJ~)>c5vTyj@hB=Pt?%bXq|NLf^ew0=X%h}`z+gUl?s)1dc6WdCD}_bg+w`QWq*Z~@bBuzbyZHI|#=qn;uSJ!VxRh#cZK}b+tF%`! zlWtnh>z7SUd(dENf*3iZ_`boeh|5IHE+`O|?)y082#E@8lY~QG<1ZqFrk>K9RzCwC zJh-s)J+R2y+S=GWjJd$e^(#jqn;XWBggH7n@h^;7e9q3oXjsRbX35FPspQNza{V}@ zG2oV?3xx-OFY&^(CVu6xFOS$`o=5)vyJU%m#<7mZ4;9I7Iy$1SxWZzFK1t$nHoSl` zhbn77f9^wj26F|94QDdqI;{|lT9Z=|&o3B5HG2R4{fm{qu4RBQ61Hu=f2`rvp5+$@ z@fcTQ4ke+^_B}oEs7z7UM61f;Y_mKBZV8)~r=&n)9Ra%ohyB9b9LXE~%P$v1iHEy8 zpZpcs!-wx054XI!dd}L?TqIfRe|*+rd#~EsD);{g0$gAwl5d^Kn?qVLR1XnO<96jlJmyYEI9|Ex{Rrldg=4U=tY;&g z4W<$-n&ZayLZelbMA&g-V`DKPSL?Sx5CN8hDVWP4?FnbPqcv(b*o+)Cdz>&iM7@2- z4w3!)VO&W0#mc)ZPVyMUA;FS4gl%$7hz}aS-k-TbhABYcpL9>b#Z!KV!&zcdz~|sF z$5AKhYRqf4K3_5DDXRx~LT5qqFDeqdx{J6rUBd>tLF>9Ww_>h#%6(CxpckVLxNy>D z;9Un0fu+X1lHy`h@HV24RMQY+!m~SYrw8RcjsBS7-?@#mVJ(j<{mi92^Ib6=xAXAq z?(S{6XSXPv!|9$A$Z7ICs0Pn1*-yF|JU2S2dX0wo#%0PI*%|e_=$;HF2b^wzU7^aN zb)RsY>CVRKaHp;rYcrhpZ7I1`zTfqF-2E*cLN&VOb3|g%h#^;Jv*}-VdG}yfyTnHZ(l3o5WQ&+t8}sb(N|Er zQNz%}_i>zUVei5}O!k!O-q_=wtaX5f24?EC*KETjsD|aZ*$}2^O$^modoH6JjscKh^v`J1fbq)}XoV1+dm^+*Zxjnoo2@;)-q?7vp zJs03=guRdyPR}Bh3^G?fVs7R<(ST%I#34MW1NCetm634cz#7Q0wL`}elC7ifqeelgya)Hm$G_=#L} z9{J1)Yd=r`8g-OM3|#%VH}C+RfW0U8CO{iOr34Jp%;o@x4EYBqxWY=RnPHi!m?Ha|bFKd10l_UG)9ih()E-RC&l zjJa-s&X~K<=(%Nk1)K!u&!6}4*+4Gj{8i`=#WiI;4$b0*RR$;Tu^CvGgRmBsEmzko zsj01EmVpq9&1j%Fo+!(&*J>E%D^J}`uTNcYFF0R zXJZHjSm3*?J_KWWabRErn7OkdEVek6WjP2p*KzB{1F%J<@3`iNgRW3HW?aiKEadcL z3d_pM3JbS%cXwA;rvtNOv!131t(l#hdo1tsZm_c|0ut8|<4$sgavZ#P-#h{Dr%scn z6pMzFQ*lIa)fR7V5RV?C-*=ik&`_;x*!yF}*M*y4vjgl7uo9fSd~$LJyAIhLc^q;t zy~Uy|K4dGwGAFxq3xUvo42j;9we#UJP6Z6%!Dk3?Untk~K!yLimw! zm$X_6V!p(I|J2&ZhzJt5Yh85a@V=OamuSK`e2AB@FosTIGCWQ)-m4_9I8Lnh87eCJ zR}SFJ(<_)4frY<}_G6vpg*Ts+(f=8G6d0syJ+Ch!L#fH2?2rynKRvmPo{Ec_48U5* z>7F`uN=&Q>`aO=b8%&C9BfQrP!eLQNhZ$qSxEXJ2gmoY$nc7-mF|psRDgH3e z;&kKGDVT#uQ!#)L21mdzoIwBDdNK{~;n_vn>D$>Ln-9Pn0_X>%D}CYwC=kzkyXYzW zK$u8*uf7IiPDnV1hEnn2-d4iENy(W#r1|L6K0F=dNZ`U<7^@N0rX%g1- zZ%s{mw%sQXv=}y{>6Sb6FF3s8B^};D_<{3P-TxFBJG$BT3LhWXD!A3-=MsGpi~Z!A zD>ELRm{^V~fPKKQV-A0R`+yQ`#~aRndb+@vK<~YNJd+O_=?ix*fsk1Sb_vKI4j!;( z>L}vv13WXBpGk8@l1$f^F9z*}xY^;&fX|EsD~3J<6QXxQyoeo1QvuJi3ey&k)HcG? zp@MfT*zz;z93Z<4;hfmdZ}fMY)xAxE1aNvDrgT8eRwsTuJwkaib@Xt`5{7G}^Mdp5 zFY4`unM6g!8kplT20@+T<>PB}I*#9FG}6VxRJ24q<#4V82Rm+HE{qRJdx1k43vh@% zH!8Hiz>JdpmGtX>b1#yj@99<@UEL8tZxFE%^K7IU{$(2Ec7q(m`0&c2ibA~xk6`I% z+FWcah=PX?9l8LN3~IR3iQn!OSQK0skkZVO=YPLSl^%q5@Nj|R0w*aftkr%;FA5(f zapg-RxG)}`(VFb=Z3F@zh9@k=5?~%SSO#>s`YxT9c3<-*@fd>Z10N?Q?Em|~t((E* zh{txog%yNTU+s51cf+qjI#2k*62$MF^h;X^xB2`xvnd>A7N`qoqk8zg6JRsJU7Ejf zvenQC+5Eli%^IbUS6izjkw7|PGN$nE7zi49d3ii5r6YC=VX<^`FT*Ag+UWQg+%nR) zwFUtZ=7Ye1I=uCc0%^|`^kL#f$E*Z)gf~|dCyUf~JyS+D;6W!uA0pxQlLMRUW(x;A zL@Lzg4yQx$3oyDv0<*zb9Z!V_%ig|ugBv(sf|C9<_Z-B>W2_A>0}K5=@JE+IhELyy z)c$vh^lg9T(TpX)_X)=2;L17hRTO*n2#|u{5Vq5LGi26%fKEK+DsX-wp6b`zA~aFB zAnl~_&>$_b%{189`=ojAo;`^WNz%719gK^Qmp*>{v7DDl`yB)`e4x0nMIV4{q)Kke zJt4)e<@reuEO}24_6ZwocW+7tsZJzw!vSXh%B7*0^Wv8q=K~-0r=D<@8Fc|}CX=8>U^VD;qLWWT+sA`lPPJ>}0yc3x zA=i1Ro*pMa@ZqOk6cxSoUVD?Cf`wAqjDYUnn7tur$A=6mc7lxr!n#6Q>rA@MD-&RR){$m=B*?zJhJ--Hbb|;wi#5`#8&E?bE4Cvwx)Dp~nsbf6e z_Q<-X#>NgOI^6I7ydBs2HTl#oTv#P+m^P;1?F#N5 z$n?wR+YfJkdoaw)c6h)FK71!cMp)$k`)b&L2!!HRz?}8PpL_A)kAy`;>KYo_H{VO~ z-+S?-6L4$kDT~T;6J4~d<68*cTBPt(_>I;8%Fa&u;S>Mh;3j0G_~td;O&LST5Z=A? z_4S2BWGhW!3#bQTVtRTS(lv>|!wdu@1v-GF(cx(a@^CX@G>Q+=mZ0+IpriQj=C*F$ zT;i_12T^Gi+qIQ`<99Lpc2t*bz5pEo6;X6R*oU05S2MzI}d@yrj{-f;&003JTT z$%l{Uy;zS=w}}A*OX}Z>+9K#3pzK(2N_*k)9z4GTa^xn~q`$Y1NFdyv3QSC7y&8n0 zPVwR4Bo`}MG_C~Yp}(o=DvFf71h%UF{g5LF2cOrL%y{5F)+I!O%WD&!XL)6Q#d>vs86gH8%2} zIB~9BJ97|f|J+&B+ha^*xDc8Dq9O~ogk(rh39AlTucL)g2B${c-{Noe+4fMDK~ELFY=V@y%PG3{P3MAq_Gk&C4xHa1aPpbhDLf`7%S?5G~#ZY{2r?CuaKmq zK9u#Wqn3);RXpMA780yu*G_CqEr&!x@WRW}T(k7wf632fslR{-19PzkmO%vNHKCKmOyu zp`r5YN}F%=CB4xx8-M~ymM>Qx z0ti{Mx_B`hPfIgn&jm#fA$#*2HXsLZZheOJ3o-#SUNm9dVrBp z*^J!_bU;g%?hz<$thmuVcQ@}PxM2t~Jt=%T*mbxMAN~lsh_nt&6q~Ew3p}te(S_Sl z|I=4~#liy0hSKKS{WjN7LtDGGv5~T$bJZL4RwDeOq-}XXAZ-ib=fuP+Op_SeaKF@S zYz|gdI8&c_3aPZ6bmfEt41q(xeii#{c#l&n8=9MY!?O-khOR#@-{t}d6A4pR#wH|O zwzeJ~8PWAuDh5}{Z&Lh#bcLsPlCJPa1?e#@D7fPkbvWvto|Xogee((r-y>b&-}89F z2y|o=QQ=z;II}Y|zhQ#Fwr7zpBXaXH)}Bw<$S_`4 zBMd={`=P-7{d@h6f&%N|lOQi~*p>}2bsSefEkfG8+dkTQdZu`E2ON&K9;CX$|AB0R zTS}F*TF?A9uZ0(903dn6s~Ifq+XvPUa{3FLS|xpq4IL?d2v6XnOwPz~S)Q{Ur&dAp zg&2-xhd%lS3(K^Fw6O0-g4yKP0k%l4eX8USKc{gR79bUBN!B?;TjA!?d4}U;8Dwu< zM%JlM!ObHWb)8_!0VL@VK)-#kdGGH=@j0e~lET7&Aw6^m4B`ws7%H?)PZZSpdX;fZ zYBr}$$8l|h09}3kTbMy{kIpg7HR*(BtJ!=2XJ{}`!y1|-YE>`4pMyY965340D;QRA zP!Y|P4QB%(^}KUi!w5_AF5r~CzP>)Co5f8W`a#$@z*f|-R{d4E@156MpA9_N$P-i- zdhX-!tptVaizJL90}Bnf2sw{=dw_2|=?&x9`kK!QJZ6CVpxK~jRUf5ezN0|Rz>toI zwm}e)Uh9Mt2E@9(jm_w={zTV(kD{v7BHd?VY`-UgO~waBSki zM$#~thwp#bj*?08W&HmA9gDc!`wt!yS%~ zpn!mjg+?%bkAEvnv2j2Io~9!0u%!Wx3}EKzvUk1|`Uw4!^f<@*dOJiyu#3=PAR#79 zOu4zT=!?}S?wkgO2GNY`W4h$Kjc}W6b1Rx}9BiR@NBFOsA*!>1G9R6LhT= zAZd?(<6KD|&!GuKkgOMadaLj?fM6UfZI2Hfv$L_mqBKOvAMAkY96 z{vWp9JgmmHZR1{*lq5w_6h+3OxCQ*R8<_rtnqJ(%LX3f4w8HmF>E46<&rX{w)arEQmo>hNsvpl?n)_V4(XPCNlR zd_38cCr?%^UyfGIk&l?%W}}(#jAOwuATAYT*_B^rRL4vZY_uT(2NM(h=_KG?e1=w! zMXrxE0orh@)ylm6J7vZnf#Gm3sKDT7bcO`zOVuPY&t@N0HSzbfofLl0o?S{hp13)4 zWN%G)Q-cf);?vXr%aX}mxNu?X;z+G{=e=};qeVba7$08-nZB&oW`qEV77@<*mo=ii zZ*FFmxEZ&vAy(LFCpHrw`c6KO@M&*5k69piIHJbi;g<5@3BXw)IxAfUI?Z0ET{Sm`#_`tyL%`U1j)V8)&Vck=BX9s@Lr!Nkx2X51q5av&yUiyr z$JN6FU81sc=gzTK1_z z-xDYdm8v-jy;n{*|4s1*PUNHuHfF6Q`s0PIvE6d#&7+tpnP9dgO}DF*UX5uXe~nBJ z(J_P_V`E|r8!|xCU7J@Z`&EkyXB((Fm^)7CUso|$96ZhDgSWW7N+@+;S{c>>AV4BW zN$D@ua5{o*qPl|e%4K{KwuyZZ%U-A?mi=ZW7l@Ng8H(n{N3`G9j5Af=g!B@LdaC=0 zQ9FA|KRn%TsU)%8C;X{w2t}kn#8+$vCx!g)&^x<#*{?`vaMB$jPAC8S3FN&b>2GiKP5N(+sUuPz3G0T1fOgnnOr4YEK-&uG+Sf{9TPomRJZ^u@JWFDK4`IBvSPG{NPOS74|dK2VDqmERYiS zAjm0}`KI{fg9nx@U5ce4CHk^wb7GO&_5FiSrA)1i+p`DW2|lIbb!yS|>&Ji0)edPB z6&)Q2VZ2MkVEVugwT%!#OAv)EAK1GcoOG3wLDTYIFveQli0 z35#gQQKK}*?aUDB#x$_n>JLG)02_y{=FXiHS*yg$`1`4p|xNLp`ZeQeFdnJfPn4@gA3WC{9ulvX<5dpPb>(^Vb! zhJvn*O=)e;`|p!^Yj1#9J;r*Y2d)Q1*UgvD?JEVPW&mWt(*|uRPSRD={#xDGPp*LaPs6huNF;(SDRk-oBG(Whu69De=hw9+q9{p z&W5Ve(se1Vtx+QHXk&8~EpT{xLU)*3hZ|K<88X69;-nL^w~NGfTE^<%gSvHl4UWQ3 zylHFGAhYi|`ry9y58LWKt^f0Tg*d}SIlH{~b~HIq{B$onQpy>gJbCN2O;tU_*`@pB z|7(G=eu`rexmwhx0>38keYkXrNQp~dZRT?LY4@~l{7{s%9E(5mPUGFO07^)#_r;~N z?W(N6}o=9h0e^5)J3fYI=CMGt-KEPT~IfAhb zG)q@^OYE#_7k%?h4KHOA@!{_OaRGz?B3^umrRD2#-o>T)U9MpVX`@2#ggBDWAZh8r z1E$Keo|AK7P62hGm=QxHl1XZd$jkQlWH-02bd!*4QPdax#QXMjl4_VKw~V(U*%6JM zxF1l9Il$5A`C+1$v=P79mo{A>fvqk$ZA7%Nr|J%h|Sjb@LlujUJg8%J|Tj z1SCYYhX?`BaPR=1Mjlb{?6BNav}trL+Bqt;lnl5rlmlL9K)t71w{A8zLQ12suwCU~ zg~$Qi8uF;e4<1AhoE3iHKo`tfcIym#PH@%SxSoJw@87?lSShhRtUb^dyu}_8j{r5&h?@G@{(u)Cg?AQ2)4RB zTZ0?PHqyB4!d69N106<=M3?CK-)oK^@>Lhxm(bhDh>9$MiZ|Yl7%Jjnu7d4WoIVr@ zDzXHbsDHVP7!jJTEb(myiUbE_grnm>s&62dUs^gFgA(anRaJ%2Di0Wf`9Y{4{+^t~ zL&o#i9zA}%8e>d5MD>eHXHk?qe!MSd&S@=A&0di=!b~qk1tss+0C~B;7>_dAm!ty1 zDis%huX-59<0kz7TrsB}83}k_>+_CkW@cs$l#O5m*|FQMC%EApH6w_J8#iX>=bz{L zUAS;Ny07Hm_%CX__Ylgn05$TJ9Ta3E2@?r?Rzk2q9~4yg{kwO>AF^d4j`Mf0i#Ihe zC}Z~lbK#=Sd6{9s3uIq}qs)hc7fzk}oC-aADN7Lk&|j0do*;{yQy2Lqc$6)qxn-RPc=f0{+oJkSf z$v)$kP^6Jk5rdz^ft@#JjtimRM%#~@Tv1H4psR-SrEVmCxPS;1cMY2gW)gpRX!B#c z;kzCluOLysLUhCe#==+u%7Yj)$;}O>AX>*r@fFSaA5^1l9T&_#lV*_9n46n-iMV6B zg}j3_mA5^5)DOFwKfE5J1GWGwdh;zX2h|&7FXV5?=bfMPu;qmPSQ2#Y4XO0<)TyaE z^8KDz?W1_kjwT;Jo?1MAtt|>;fmYM#B*Gki?0&$xH_X#3#IWR0+m5K}cfMFe9%%-k z7Jv^cDw@QLVR_NVDt`L(9I<0c+C(p}*k-}6BXCto_Y;$oVIfhO?DR%mV(2K9eist| z(=$&TJV@Lf#_s^ql3^pCX<4!jp{Cs2|IiI2A7E=~-XNDlAAfO|){?5w6*OySz5v4` z6bCQI@|}= zHA={yk(}sREJ@)1kT$!b^%|@o$=<}uaeN7F7o*Jud}7#!TPeh}JUpVIxKclL>Lhvf z8~-Pp&qfo6jvq4y9pS7*m&1l-C6_3*5e=+|&WR#590~4*{zO4=S@Y+=VZ*M#RpZT_ zD^0DseCF1X1Y>33-5tiQn22kwbB-DZ6-rzO8gh~86%&CMgBxlb87@Neut>4E(pNZr z6p-jyW3&2FIjjuo+q36ef=M_TjK46Iw*KpFvv<*m`jIN_wQIw##|3J3>`0e0=K?N4 zc-}3!IJtw?+yV$12}h3(3T_N)6|?UATuU2VqGj{r+c$A22_X%G zY`?AY_49+`BUmOj4PO-aN~dVTC0ODZEn>myJ)d1CPd?8plbVo4ypH@wvO@to;d_m} zrJwdQjn7-VUbiA67M%AJ?(s*Cj3|+pxV{qoReSoO_PD{!I&>8z8yL=nI%IRU{JW~i zehWY0lWAf_Y5fdBV+)f6lqB}*+BI+DW3X2J2Utz|+{&t|`sBoE{IR5ugnS)0LaMeq z-w*qnJrpw$>4QCkWaowOfk05EI?&Nc2nx$3_C}d=nnZT9tY#$uF{gh|^^>b}X>$&u zkP7BP_{JA4X>%%9B0Fap@XD6x8v^$H6T>%n(~-mNfnno3Wy(mNdPk3;L!aNe1;W@T z^-N2h4Rau6tX#Pgkdf>V0J*%=OM@1YD$2~Xha30n*Q3Gt(09lw8MHgmDslu)Ddes~LbLVad4PEf`v;lNv z0PS}aH;44=w}8xJ;3Xa<+IsbWFe)LPhuRrPTg$A(Nt^>5afyCG1e`=txM$?evH;Or z%r9}PUDG6zBZzGB&82I8Z?#NVjN6^fX<$_-8>TDTeiEmqh*PtC#fr8nDm!-8cDj7= zVg`-pX#HE_^%_u-qI*HdVu_)2;}A+`G!h1TT?}BD&9Q}YktU=9`g#~h0DrQ&lVr{% z-K>E-iNg8~GLY$t^+sL>Jj`CNn>CS54MIO(zGVFlk-Qdxzw5!&)WZDy{L<2^m>Dp3 zNI)k9GmRfuG7DG;`^{bLF5P$$A^>50L0;Zw%NDlV#DgcaS8icm+Id&<&z4PdVBPQp z_0}_6BUmcy1GO5TweoEjPMjP!hQnpqT_Lu3=7*aGU7FB{X#nlgQqkBs8MPD$p~7 zb~l-eLBHt`?_suw#VKi}rLKN@e(}Hz*Tz<~h=Aijo#I{9k6?HxyzPsQb_sLpfU80R z6%LyV%QVpHp}b_&GC~!`by!%)t@i5YkqV2NP?}Yg`R_vIcI3!=2ZrspbZ94qJ#@7bbTqKKsUo*E z+;;VKho%Vo`r(qcATPrfy zu@LYbBS6vdzCQX_1iy8s-wh^m=r?$9$5ZR%%vy@wH|9iMUwZg+{PE)uS)b56#bP90 zg+&3k@6|hx(wWqPz$K^^Mh;&ok(abuf;%S_UNS_tTD|I3dHFK17|N50$FQ2j(~z|` zS~^&Ag)hu~RE>uduOpHg!%*kmR`7?nZfzsoSTy5oF~tZ5;;&5K39CwrF2-N6IW0`@zdP=h}!m^P=zoy+zGyFprZJy z5mX?dq)S7;>Cj^0V?FrU_zCR1T|c zduxgzN-SuRK_Q3){1Gwpha(!PC+@n2T374&P#7q-0!DJb_`FxEZr!;v)x*QZ%_$kV z1r+Eb(&cTJb3-Lpu=m7=ue08Nf6Md}4UOT{ic8-^`fk3|q2~%8JOCF=ge1f_XsrCD zDES5#3bUMKl(3i4UU+nb5?QWAME$gbx0)tDPZ=CocZQDbq%SjCNWKB0af-)LRK_0T zTgHlSSdP-N?)al?p+#Y{%vo3+QP{o-<}O;qs#TJh?Q)vdJZCpaR@$uDvmu^3yEzSp z26f^D4Tq!kz<`N{;tDB#z%4R4?Ys42yDQj8Rb3c;u&DUphYM{d3D;V$POqVSDq zk!FfRNXeYLNYKC`{9=y0d8dE;R4JCfqlAZj5bH0;`a5G`9~TuRq(o|f0bE^H)sF27 z%ExL$%TF}&{Trk58L1LJy|-6pP;p`5j&!?`^czxl5zpPRRj3^mYcGSLX#Buwr|zB5 zMSL{a;S`<{K0sJ__~^hu3-Qq}am7PP4)}5Oc6RLA<=`c!|6RPJcG!*h@pVPyPVS`x zMcw^w0ZnL(a_K34ZyF#7X_wO{OB0jNr1BJ9Id}`OFCXoTv0j)S6h(AUpGOCD?YqnBWR5W#To`5uTI#q;<5)c&I3Dcf*k;sA-h(6npS^levY z=m;u^HoucO*PAWgu0oFf+`)q~&b9Tax8p2oNhza=>ko|-x zL0$zUh(Fj=`L#2sOA*f@xT8L+W(8&4ekLYvE-nU_R!E9P^6N_r34QOgtHVzrB}oo? zG$pZf#xyla9OrY>`Sa4xO$AS%?#-+CTHo-w{y8uCIOQ5d$`lb1raYEYQEB%53$0lpyz3QJ-;kU}tZmYpxo(}GPff~Nrb zqq)=b*j29!^SLE6wEeJBO(K>UGIS_K;wPT4T9Xpzz84>ZBQsplM*knN;bW=Mq^1s( zhMo}G&1kraeI`N`BDY0a(pnrKjW6&E{LWI#X!@ywRxgH5^#-gt_~q^|R;$kR^%df| zHKispV?m~f>_a_pbq`SAPNH%pGZEsOU{`?99v-4cj2R`U7ccVlU50o~^*Iwd z`&QFVE*=&XCXs>$4@-e=+R}Jj|Mc|nA5W1~-+a(Qa%jV0*vdg&Hs2bE?H)8}3g^Mt zcr0ydef#=ozvV`=k(8RAh^cRyuHW!(>hIf2jmOz6?@e9=|304w9b(X|<5fHEdoFHzw>@4ZA*sBow& zu4%JBzwzF~&2o|;uaC)NNH4@YUpvH0AwfMPRbrdaocAAO8>xq$x)g+}T~3gR+Ocje zB-;~L7pDLKjd=p(pLprui4$YLzFO~SC2J{yjl|BFXKcX+Z%$N?+Qk1>Zto&-IP_MR zbBXx&8nGCK_wTDaK5WYB-o;iyppbytn4-?@J`= zt!S9u*P77xSD|!n@b{cMALN>IMoAlLjje3r<96{@JDwi?E|F2iIWi_clqk!@>(~!B z*7vo)yu?M|H=U528EsQZ1ri@HWvPe!bd9DjW$TM#->XUtC-UiY`+EXxjCpbi`PTeU zeklBKD~W>u7!NKKeE^=GcTKk(I^+Xty4kmCk&(&1KrW|ES!FgYcF6}1jt0TP4pT(D6 z(0oO_Gn)L7MwEX27>RQF2elr-uk7qy8AX5r=CQB&g`kTvS%=XqHKo!~qjI<`jrHx< z+Bz@wroH!kug<>OJsBwWqj#=3Rh~0EA8H_Ak#FB#01bgJq87Fk%D zUj*Oi2#uHqgB|55a=rq$jwFW|hkoDo?HbZ-%H|meituN`8d~W#6LHL>Tx2-86a@RC zr_}`orx?miBOM)gzL0{_aQAQ>NCW+;wLu2NS|>#HMqOQ=pGU>9b3jLleg=c ztd%p<74b>xg$qJ+n;*>5m?bfcPEB3H72to;(+VHkMye<)5_fhqxFrzoL1HA-SU&Md z!eEbMk88~BT>6-pM3v99R&Wv-o&N2z0MbxGo@+Qqf%tIFr&H_~SWC5vN96wfuzZX} zge`pdO|->K5G?dEXw3{!L8#!(=3zG|DT=@3!duf<_y7L5h$FvOPbO{zTboJ$tnfgC za8QMXuKZ=x|6Q%WL8JEmeCE?oLOG_keId{Xn5hT`7eH07<&+WHc7Ck?mvS=uZP9f(1&>2~4ZtAgAkKKKfN^cTEw zwaT1ZZ)$iUoF`G0ZwnUNsRhkj#2~H&=Rj7Z!mik?pEO}JOtq~v^qeJaRy1s}<{tzy zzKMZW>dhq0-5l`^H*#>PpmCIjV9@D4m&=S(`VbQH?msu=2aq~6Xp~rE*QWG zPvkrp2;dJ5)V%5hP&;dNIsJb{`q1a?z1Yiir&O!-!5o#);3{g)Bww8&)dQMDN0t1{v;tkA!44K*YDn4B;9XjK2}jCg*&h=V!WJ_ z`M7cUVhfKPA+1iQUd;st0~TquzST~NBnRnK)HmyBDig#_x&Q$f7>*GF;?ij@ONb3k z7Aetof09{n3SRer*)iQQ{FySPgLGp#wWX!#wnAvtAhRS!BT`CG+wMv0F|dHR;^b80 z#IkRqs(~)Ymun9SETL4uL=-hbWy!{o5CDeg-UFsgvNv=g-J=GOY0~EYO0g>KF!A92 zVWFYCMhu`Sct0W}B8TtI9K|mMoM#3{NH^YWrL6n~wF@lDEb(>m>C41&?2L&S3ndhg zn)$!APy2Ii(H7mPx>4IwbUzX}u zk##26vl==ZJkHP6l5TXT#nK;lN=;@q#Sw5wYX~t&dQfbqvE%4Mjjn5LO~FNx?jx`U zG|ko!*Gmlu<}^q2{CUKn&%^{R|At2aRv{@Zgm6I-H)*NF_5|H2z}_D#E2&yIlyp<$ zH8^uXSVWH)IY9I!EyN>bkv<@EG>CChc%q`9<>#oSSRP;81Ie2aBkF(uCX*MK>YOPU>B)p@WYxdo}WpCg1OuG{;iR=nD zJ-?u!D>(cOQ(!Y_7UGp@UzEDd%*oCDm&QSI#LUb!`4b5AsCWFvwH9uW%Wid#GA*qP ziT_9>*2tYh<)a&=u{I1VWxqkyBQxj{zxA=ba&cB=EomAP2D}$7YRWl98FL`0Lo-*J z#BJ;jCCS#4(EkX=n4UnD)!YVZCsy;P(9a?~L!I#^iL}VZ6RNji-Zp^_q=gLgXX( zlqt-A*lQf#O;_94Ca86S9sE}pAf@?foGG{wqwYsdD=H<+=M3&P(CQ_XeHe^JA7`I{ z%kZzSuWvxWX|!gZoDymA7Ai7e~TtDS`l7mU%oZUB9+SgKcJ1aaQ0`Z50doXXJxDITq4~;9OODn(`$ko&s zD>k}oKDUE$a6;q*38l|X$&4=GwgF)=&osH_nZ$NJM_aTrak3UoqZ#EJk)Q$Nk$&yC zPvH<15{5={-y4QKpeFt|Z9$Sy?j>Yul>XQoleLZ-LdmNSEf(1>7Zgs;g`2oQFOC65u9(ojzm& z4IHgnfyD##EXw|P^Uj^Pp)2m8qVTmTNAjh|fB^$2ITFO4dN`fp-6v2mu(DkZ6DF}A zLVR-g@G=zH>OTx_d9{ir)WK$Ey2JiEm;GE)E&@EKNbVfh9R)=5@{xG#_8mI-`S=V3 zj`=n0qyK#1oR{b4xpCzoOcu}A(0!5o_KG~|5K*Ri!()l<-DzARJ?H&D=9EupT2tK0&oGigPu%{3sdjTwh-^2%9eFp*1`v^c!{u|y^U zg;v|C_!84_t;2u#p$D8w)WCTsThYtQ?M_w?$vw5gBGFf=jZqM%l^Lo`j!0cA{Eg-Hf2NUj4M>UtcDD6A2n(YK8Ni)bft!M zA#lzd?^q@;J0+sK|G;A-Hf{1i8m)V5z$J_iB^HQwRnN{R6OZ*eX0vb-zp-uW)_(o_ zA0Wcyl->%6;7e%uP6jYju-T_5@d?0Mkc)k`I`s7?=K1oHig1YbI0}rA|DpyX>?sl> z)YOh9Cl3XG*pN|KFJ+BC-H%_tb?dn9CDt-eu`oUqi$&em)>h_kV^{CN(=l_)KQQnT zasp5+I#sPq2(q?e1QcWwUPKQVkP!fxwfCzJ3B4PsX4 z>v!V#@wvPl4Uaeos<+AS*ABZn9o9CK-@Lp$3Tjq?OQ=nDs@m2l(njcLPeUYa1TT1( zs8$ofBC#?c_+|~e0A`<`mp9SPjgv0AMhKfaeT^BbuMQ&S3CKpEl93TaWsPMJB-HsS z$sCo|q1P#_Y7CNOxsgZ;syxog|HIJN|3~QF2iASz!g7#DY<=fC$!?kzNprbz+MPO~ zsq}&o7ChS_mB#VJcJRs`(r(rJEm+wA;w;;@q&lpsTB}wDRvi*;^+jh5B`tCo=h~{C z^wx8|08jAs;53P>$K1Iz95rihVU77shzfMGG_bf(C(uEl8xeW{Srd50Cd-s6Tm=8a zjiPT#%6KYVP3<~%gjsJ3xQ)XBj6qPz!5iq0}FGILGy*B@Y4I1^$DHvf$a zFfTkdwX+XA*6>KpG+oM z+~w8i3!!0QE9lV9%?+ne*4O-(0W@Cg?M(H+-M4GE&b)UQW}W8cjlohkW8eEMm26)w zpp&DxSZAJd2$S3Js;ih5N6wTa>Zd*eh?2=<1d0Q?u51sq{LidhP4HK`@Ch>OztbxY z4vET*b69pK{vOD*u5Km2UL`E#YuZj;RaTPhCmcUMx};kK6CJQ@^j@ud@<7fBb1!T^ z)S4oL)Ex8;MObSxUDRp>`B=XvoG57J6jO)1?qQ&%wHxEfN#fYFrm;;|QqN1h{`9H; z+p{0CwN|Y7NhIvuUcRUmySvdIQAs$rbU__G+Ed!vl;!ShxhxU64;mP#Z)cEstwRrm zJxH|oeF4Lf{slgd0(yeLdd$)(hZ3lx@jj|?RHt%BLVD0@h?&uQ_E5{$|4pKd?qEIO zu1i>UXpb>_kagSzbB`N@Rb)Jekt9z@iH;S5H^O@-2$&LoV?rEm44;l=IJj`_sWTTYh?Z5}HqIuPPt~7?cS4Ctv^Cn7 zb5fXCUPu%|E@jwBtb$6Hh)Uk0x_a)68SpMj{btOdP3i&$i?qUp5MQlJ1d4_&8O*^W zoF}9wi^DyWj5_t7!e9+iGHgkr4Z>JeWx;~sgk92#^4~vsRMhI`>(^=(<-P^`E5p0L zQ80V4r{6rst*P^#Ul=CcxbeJyylt%WV0IsB$qfMy@lYCq+n_;V{^iS;U@zO#&6QPe zJbgA^+dAl5xYj2{#m|XTB?(hU=bC$!_@$<`JhGipL~J7xx8o_gZ4$A|t`NI;vN4LI zq82vw;DNDYEmsAee0i>qnfZ6litJq9K7FhM2R^>$-ASt4@C39}3@m$dyA9`hlQ`Gi zU}$g{dX3vx1j((sgTJ~|x>d`_jy}5f8Z}CM#H44Z4gAaOOsZAtIwFP!;fcdRccoJY z_C-A!+?!l8lLK31&`n+I{PX+;+jdW0WN-gyPd}}lJNmnJ)L;V0v^(3prkwi0NjS1l zF0$vHh$ebbkDNR?M$dJ^h!I^69sW5scJ7n&^Njet1H+yhyPJNjdgxf>)lJCb;$TWL zHbvM-8oG+F+{!J6GC=6L+0wzR;m?)Bhkt5nX6$@txOp-Xy&6w<~}nIqvvxZA^Z9nOK$8MDnozE z+@nMtv>UVK!Hn(`ZM%eRy!-g%?@uoR2~rl!{AW*ks5{~IpN7Yjgv-lwx?{w4kN`jg zNr(9{RvRxW8wYy8{fZA1&vbaA9Xn(zE@P9*H!DtJ3D{=vs4mv3k8Lk*x9hKCx)42 zhqSu)=FS9YiO1_FblA)!2-jg(I_T*9v|eKzzo5Mq!6DUB+Uwwh$VA=KEE`)*W)c1{ zI#;3d{xi#$s~Jr(X7cZ0Hpc-Q57YTwQO*|21ee6*c}xaYRO~ZUp)3j-AVrZFxN6u^ zURQKy9Bc#{2H?F+fHyHrwpUx{{M1aVm6i9lJ~`D3UX9b9uU}K`!+t<>jNF)GF4u;=nmB( z(srD%qn^AO?wf)t5fO;m2)_5*y*QiV!;W!p^S>wAJDf^Q^?7_^6QQ1}^3(e#_ixd4 z{1wNj%ec5wBGuEahA*TJV;c)7O*y`S-k2f-+ayY~{rkU+k2mUSoiU+A-nNfTQ-18w zoPmK3ua6(kjsB+>ynN40tEa_*gQVkUCKZPe{((;MCJg<*1ZbgWiC_#|P| zg}71%jJ7^=#)Tg-L)7YRzQNT$Z%65M`)~Jdt%t{&G`j{re)w=vW6JfQp;_y1j0@>UR#|4p$cf z0gzQelu6vu71Pmwa;?@~40DuZf{_pR1;{W}a#MKn%qJ+c;wj1X=>cyy`EhrcHZ!*s*K1x(4x1jQPCR6?v7OUQw4Wn;g5R5w~xgcKi10$0;uf z)#}tid98g8oVy@IkdXo~Nca{XFrWwkqWS(%RvB_6%v?DmxR`4Bvio@^#`I4nzHK6H3&vNBwqcbhrNFlMwY} z?&?2#`u&@oU94=w#B^d!sQ8>XPKvFrprq<6(pZ5;1hqx_of$Kd5WL2uzd>10eyB$G z+urJHHXS;&BkWEt%^tx`!{&eT>^P`%S35b63)1)L^|d9l7PT3uT3co>cf<77tx%=5 zpPI_uYTsU}dY_iCv0Ya*lBi9+d2_=@jKPM_-$@T2AX{{CNkuNXHe$(%_BZ2y=-K&i zBwKM9`Dw}0+BwfAg{3PVbn(2@uIZCkW^Am2RJl#@ny}LwZ1vr#W(#5o#OT(xZ?5O1 zL8E|9LB6^qwdL?hmePT>U%os)Z7`(Y#|~`FJCyrw-ih1&+`M=8aK!YF#WxcoS_qFO`GGxe8mYWF&{QiNJRtJ)k z=b@gmZrz8ju8P*zDr*T$z`GuxYCs&QapUYTpb)SM$Y(8Dw)APUPI>VqPe#3?7OAeD zMe%8=q`JGY@drAMZ*Z3*~f} zING6IJEq;GQ&gFf|b_8zE@AV)?D$ z#@aY+DKP{sav|x8ujWBY{RY?NIETr6QF!GY0ncvqY@q}0tN(;XT+%8H;%*9P zCGuaLNG%yN!Y-pB!!pFRQ*HqhvgX^j1U0!)lg_pZMnwm5J7=mTnRDcHavz{zuxL=n zqJH{U!PUdU!f5LUizfAAI~xmdhfJJ3NqruR7M@qJAtYpeN&0ta%Y4IkGF|;+l<=6L zDUPOyQ9DTdkT77LMZnUfc{w?3+6?Utv}J8ux6Y1Uk3@UhL);Nku$k@GeWTbP=|~nv z(&mNA>V*q~q^+}pVWg3QE@Zjrtb-yN=r(1_1>iYyF#M=yVo3<3V*Wm{E$b*a++{?s z7$Digeglx}+c z>AbKNvG}lIjH?dV+FG1DPiT zNWx|EQX=bqtm02(b!aLBJp313Izix4%g*HHGQie@{sA6hFH8h~fB%&$>tMI=5Si3z zWgiH;|5CC=U58hx{t(u6P2I<|QjBoGkJM+LBjTj||?T{*>@ z$i-wf4OPeD2*Kdb-PZ>QA-AHALb)W!I?htbS7=+lC@G;)n-5S!AchaXMbP*eE^ZyW z;ad#!iq`Z)2-5`f59;bG<4DavV`Adsh(S`{kn>U95*;lD`ttyxC`&v!;ep@Xp~_qM zaV4Q5GWH6CZM%!2yr#Cc7!52^o-~;;=ZC(^yWF!Rd)q;e7G7`8lVt_s`Ns*~0$l>g z7Li^#Oz`qr%>(~z*7)i8rm=Bxkl(%zA4jZu)_c|_drh^R%-N;w?3Uj<6XV-!jEd5o zPfznQKj#fkojt16Zp~5up6m1RY(wL_2Hl{;g?BxF4y#>beXr}xNwt>y_Fei^vD9${ z6uQuKMfXLw!nH^Rs5S;pS^mMFQWqf!PoX49C^i-Eg9s}?jHkF^_Cc_vw^jKLx*0*o{5~(i!H^o2n`4Z zNLP255l5^*C4pF%Q)yRc)&6Kg0?sc;QGrugPkoYQD*>uyD|7~!n!1CQf`&!tTG*Ay z&!fT>%=@Bj=x#j=6)-OqlG-*M{)5C&{C`AfH5gHD9{{X6Dq(%NIB~W#ixY+5=98DqtFn z(@~SF3rENaD=cr)`+uZ>kUWZzF05LHu!T>rk0!X#JhP)}M7ab>_Ktoc@20|hI} z(h?YE*Mx}^&(808H#_^_Lb=fOJpL?F96_`&-mc`_12ZLB?s;2WhPeBXDo%5Jn*kk3 zgH!R?i_~@QhUm|HfgKUB#cYsPew-HWQFn`@N8VLFE9+#hrd(|vx~ov8wYH9@gn0x*k;SFYY0+T zHZ}y}-$4VBm;>!ZAo{XRuU?Ln0LG2`SUZ^6uI`RvtaZCX;9}u z8!BqTJ^V`1$*DhUhk5pQqaFYe0Kk{m!&;{6mABynj}!(Aw$P+Wu-y7a<(UKFoj(sf zVH@nO&_xq?6BPL2uIf?Ljf*>V=n#`V(IBmO{hHEh-~DSOOStdUNydyFYy6w8>XQiU zP$!Fy_6UvJf8anPDK8K%g;|D^L6m^S#U1hP-g@UIheMD+Z{EI*ycFI4#5qr&JsU(X z5&sTeX4B}&XqF#(%&T4VwS3dQeZ124!-r?$Ln-#nde}A`Q&Nr!311I++N#Sbj4*^( zv?drQs+D;ka2(4(7$d}dyLY#zkp++%nQGu;D%=Belma(!BDUD-lSqsv8gTAS5pp?j zpqRhD{S-ZIOYoSYKee)wuGT@MqTrc#f0EDELf@(LPM~uneV={lC!2vUY zNqnpXg;|57Q>u@|SO{u>np#@ePt3#ZTen7x8I$~L`V`|1cW&Q?MB9gyT3=l#DO2%e zM;|ri9?WL^AK3!@q~7f|F=H%m+O{4`wAVTJW)P$|u9;pi$k#yJAc7u$Oj?Jx!ls^J zRf(5MGFMME?(mbKl_1i!M3Jax30xi=9XxcJ2@=u1EL>$QDTZGo^mtHpbMCzi2rnQY zvib(|R7BaD`DTTMOVEx%3v);Hjp3IF7tkx?b&>fg!7mUGRSnzYZVW6_NG%UiEq(lj zSZrM<)yd!KE~IQ8{Oem14@9E6r&?|(o#fQEsS2YE%SGF(8h>0^azq^;Q-Py)3J`Lml<>c%)JsjgM2L z9FvMERWSC4ppz;mX{nCVt_4@oTZayL`plW_HHQ`6Yj)^>C!=ROiXtZ?uA{b0pUWH# zLOBW?v?`AJS}SiHij(Y+dqGnO|8_DzetqZEgnq+@t;T6!_bIti2Rk=FvK!@Gk(9v* z5ViczrJ_^Nswb_TI0H0KugkY}6~!YmMT+Je2b!Sn-zK=AlWrIkC-w$ilXC;I#?q65 z4^`H!ynOi& z%$WA~X;Tc_Q4Axjd-3q$MAu_M>vd6?7jiDB27%b?NMFvO>O%RGQGfKisj8|bE|pzk zGo8lR*!qx`4#c{_IQ#5ONlwCHn1#jU4K&hG5fOTLA>OCUe4S^=JZ9Qm1oqyLA_(gG@^DW zYp>JfOdVKgpsx2tN&hg;amxJTJfiSJYe| zMD`}8P0EK!LJ8|4O{<$ul&O7L>d@_h2$UyIWTrq)%KB)84j@eMwXhVZ7Ru6~~cmVR_{#t#7TR0?i^%jD#2Ny5fNR#Z_B^0+m`RP)&EjkD+WT-W|KJ85DKwSk|JiE zRdjs)UBXC90woef%9#_>oJJOBcE={dtN?e&fD=i9JD15P3)PhADx7+H#@etjM_fwM zRGD^5JK0%VGoT`TyYaAL zC3o)3rV)0CS7m4J3}MjspFd}R_C8b!0b)6q9Pj3B;TT8<#CGbTr+)@TcBKofZN#0< z1AJOYm7TB0-;mgt5OX481(_@I>YT_MWdWC7uzO;7IkW{*{WOYTT#EI$5sm+N z#;|zt{kFV^JK4jLyUQJC%VFk%AOHyaGCSTl5UIceSjPwf+@GaTZXCh_#UqDpO zVd_S|V=eHL)#^zPA3R_j+j^*gR12l88xmmlk+MMcWwOZaqJFN}hV`UTU{aSZUfi3m zs60czMPe$^J(~kTWz^!w;qSOJ94cCTfgHxafN4QeN4YS5EpSy%iehMX1lgIu?)Ut=UMsE;)DjKW+95pl(=G1MrDx0687qa{g!4IbKeP#sgOBVTvk%mpcsvey zn#ONc?b+4Glr)4;F)gCi>hjo7NK7<@w`8|8xk0(@Hs9jN{QUXz$>YaI7aBao`mh}U zD+K>W6>r~)k)x%had{Q4X_53&2~G=sFv;H65aAWvcyr?BTNl(wg%4jArZv=Ew1q*U zdinBzWylsND|n>Ewvl$%csma&kz%aen+kQKoafJfvuPajB7>}fG<8u3=6m1PX#P49 zmRCWd7eqo8etM<7kI!o=Am!34jk(E_lOGczFmD^ASPQ*bD3Rv7k(o30SL z>|M6W1$fR?S{vcDo;eq77=|Y4Y8IE;V{!O7MW@ZoY&WhXs0Ooav=oZ)i8ur|2sP| z|7B8^vvV`yTs?`A_wJwyh|VY4@1+k^2$F{foHKoIOq)N1vH@;ees{5syUGy{4h{x= zv*gfgxnpy%W@onl4u)L!i-&{0$Ljg}oEgGEi1_{%?t#>=OPHx8q=q+!904XBF@l(C zy=BN^&~9cE62v6hzcRuVEnB+uAJG--tqbvr7=g_NP)KO4V2~AoKu&d46)Yf^FwTG_1n1F z=XoxGQE1ex#XbnH^h+`UkG*gGvPyoJ30WRPs~GlY8KMXYHG*RU1^*3#B2OMXa6w_y zGNg*T$e9&@pk6mQ5ocIR`$`pC7bUv^beIeq#?gz%Pr{rMZdSd6Hg1fyPBgOpm*8{P zA^(bO`VZOd}vnXl|@ zl9A>!ZtKV`+H2p)`U*x0NM4bazE+)%q_-ogW=xFaE0XNpXX0*wGT@}Qv>*sTiYd|P zsV`Xv;rpSK#62W@&5af7%*ox*9BXElXzu!(zL6y)+PmM#&;N*T^*OWGvV~z=E}{kL z%ZBs5#~tW+f)YxzF?VpJ`sQ0Akv+b8vJdk9bSM6pwyxWN0it-xpCW_#uL0QU1gch1 zJkO~h->FvFql1wruw`AovMxbJv?vgyOr5&lGGrE~foU$&s#Ru$aLr#0{AS}#cufJJ zNXuppz&cQIk(TjcWNrNYHzr@o1=JBbRwh>)?DVb=gaOR<+#YXN51{gDDq+r#uU`+P z%;-vX4_$?_1jShRMz7z#9qDz=8kxL};o&}S_Mb!(1ZV^#v0D8{G?;_Ht&KGA;eSY! zhkIQcO?#ZBXxmYA65-J)@-q;c*B`FM{X=ZRj#sPb|9E|?_52l0bAbLbmQ<)nN9_KH zGZX-u)`^5>Yyy|ur9<=R- zw$Tt|B&t;|Ku7#Te3)c(e57GJ0(Vkz*Raz=aRty8;?=y3`bW+4^MkxMQqNV9iq#EyyGJgV zxfAAn$57qVF@r#&xS2CEpZM~BAKJ+5Nq2sxT4njX2ZwHvVJ8{M?vkFKUUhn(Xc$84 zuR6SM9gu^m`jm-;@PbKiq`3~Ph+!=Beye#8fUZUl=XNItDl}rhY+w)*0Ar)xS5;U0 z&7M8cO|lgeharwjUsnP>%i~-a+-~PFV<5iq@>5}GF3wpb(5;qxGLC0*L|>1!3tT5Y z3;e@<{LxA4ossO5byl$RJc6i(&8u1;z zd*nT9aG$*C0G6*235=nn2h}QpGZrmsmT;GA(ckl;Z1;;Ehq$an6bDlh#gs~%^hCF8 z1>+(Eh34UZUxc3fWAgg>8MbOcZ8k3>8Rdwe)Wl9Oc%OZW+%q`5;%Hul!- z+vpVY3K8UJroqX%oVJ=D|E?2e9MzRjD>#DJN6YPS#X@jjs#PLYac8g(+cyuya`dX% zO%l4qXaR1h=*sj5k00M-l4gn|TBvN|CX;3cK7BS> ze!R@wkU-&d!d1{q!$$73S~hoXHAhykpE0uxF(|mIiU97GlR1h`16V#t#6jc~G}rV4R7{s76+lf93XScUHQ+tm^9_4dRz93Zda zsYBB3z7n=F6IDztf@F9MW4PUO?nTQ9ZX0YK!B}qJt{tPQaZ`@~Yh>gzkh?ABKQ*O) z9*E&sa8sjAolFEJaC>hcdHn9%r;@2tymn8fHK z5D_ef6T15S+kf~YFt236tbwT*Aw;x8sex>Gpe9d++Dk!yke!Bq(+IUPE z25<|fz_9H}WnRxAwcA4Jfs}TE$Hz=S>5hum0QFosHnz#<*{Wi&I7VMpDRni4qMEuk z07p%wA#$?YEc1mghIH#DuModZ->SoVC4iJWTRXcg7eeRc#YIS4{66e%{1T7?eR2dY zK|g53g39-9bRKn!xScx>Cnv)d%LHpP_rEVIkH`9oUXKq==!Jc$Z#aHnbsB@Ns1=M( zQr89pa|2P@_2Nn7h$XP90_^yp!wVo7u`i0dc3}S~FI(?e{+Pn&e${b5bV0HkhzCR!aH~NTCzc`e% zmMt@zS#WpDwr$7*^$PSSCgIPHusws0F4(uL*CaRn6ZanOE}I|)`}6b}ZEd=6eSg^p zCR8I{HPLO-xPX8!l`GP5NJSPES?L2+dJGzL0a&F-t277c0zJ$uyhS-WS>nzfr*!F;f)m6N-gX^@d5+559m z*3VaI7Ls0!ZM=JTOZp)dWO8+NbaKi9P%on@GCsD}YvuRJx_4iAdwJ$6&FOzTcU6QBtvzl2U;j8Wu z!RlPzR@&6p*cdS{+u{YfCMsVP2$qa4FNPhs#O4*aCt%X7G%&4MyA)L!jsw_6&ejXy z84hznUcs8WFV{*+P);bBr0u!qr-V;h&R?W_Fvz^yZweBENWIxe*PoWD^n6r z2!y$zZu^ZgcX(Jq`OD~-70qla&YmPYeJ`IO#AKD%)TWV`Lgs61xRa4#RlHj+7XLXP z=&nbP3J$#xTjdI(eFPa6;AH;Xxw&NlV0m1q#2?!8{QV=lUg#Tz5)9phNk-+7d-il# z6WDx%W9aGW5c}_G!iv<+kbPBcMj^zdrC^}`mGE-eG7u6tZ?srayWSEJ!Mt_I*_Ml6 zhnziIi$|v)KG$0N^Y!F}ix=I+7?jtu$6^jB%~8ym{t_JrGv)(RgV=R)>m-_N$hZ#K zZgV$2`k%iA+`3aqN%TpFeX%p?%E>)l_2?&WgQ??NQ2@c06z$Rw#zCrwQg6$EyO6V&vf_#eP>=zXbeZ@*mMmy(rgss4ANpeo>><-Y+WAY-2! zrayd1{gzqs8Ta#)Fktf;b)Ax0a~_X}!Q|Vrl1(DdrlzX2Z5wAcr?BbMy(Lm9K;@aW zYljzig+1Xr&22z~dX76lP2Qk3NYU8@eho>GD_u52!^*2dAPLr_-_09vK0OnaS9r%nJQsUK8Ah?{!{taynTVj<+7UwRoD7=oCDE|*{kRu>0WPrB`C|_ zu;heC_xH6GN&tZ#HNRC9vC#lWvJ z)CLZD-`GHB<#eRdxtsARiTj9^bgfo`3nDcR-Ndz0X53Ksx*Pv`wW)Dc@kjFa9Uqcz zJfGLc`&R2=oy&BL#MukrpkO$YjQXAyC!(|QvthlX9Cr=Br2X6PJpxZ+Y&JB+s1<&` zzIXSTzpsrbq*lE*P~IEht~nI*j7Ec#;2CRu^-@BJlOc`cD*?smvB)b6ATO-Ea%bQV zYOa_MT*M+`bAgCxElGs-GIDFDA}wbx_em{fGyVLQBb8qr-u2Sz-^=IEH)dip!oLH3 zm8EJ~Y4pJ$7lx8kl6@vL%C73_rVE~#kr<&tZXHMP{hL__@y_l)@MKLX-%XknfGSEw;9m@06nkX_-DX?QS_n@8now+ zJq2n^X2y%F>3H|3VCwPxewK>itpeJqtt@@9$j2uYlf^X~)Au~H15){sq%L|1@s<;w zRNFj~>#M+ddH9#VaPGsP&D%OMM5f>6d!2jB)8d&r^W)yzj3I_?4EKB6mMvpPjjBht z0P+J*NUm5_Rz_R-c)hyr0A%zZ;5aL2``6POH&DIt92K_}1Uy8gfY>ObjGi#Tq*<)W zY~Vnai%Id%!BG951l->KqwsJ-f}y%{T~NmN-Fv|=8dl{h1$C4gqU(3HC91DyYN|)U zTHt<=i0eRu3sF*Ulx1dS!c~I=D9tWF5uE8|hg0fOF!{O`OK#@pkNeTqi!yTD?;|JU zwW3k3Q^d}l5BbnUqw>*o9_2jpuzf8q$Pit`-?pEOh$2@ni;>f2h>rJuK0ac6K_BgFaN(!IC*lx*s-X6H3$U^q3$J# zUb1*G*?brNPG|)*=Ky^VQi85{9pgNXwRu|FZP=D!sj*isdeRp~uFy)jP@?p@tvx;P zv_uzLQpN0Df5S081__v@B6?4>1q%>>u$O@i$;qB~k$qA65Xyck7HhQ@SF{ot64T%J zN9P%)J^*izZkpD?kgRcFV2#4#oPvVcjRuGDshkf~$l7C+R<7!|06GBeXqMz!7ytV{ zmv2ZivK`3VH6#;9iryc76pMFmOqxO~C8aP@Q)jpA_4rbttm^P^G*_A(yv5?O>x$Rk zckR0omW7Dy$CL)I9DLevg9Cl45DO5cSj#rY3|+A;-L4BYp?JQo zNNaZ?#(Mwb1md}9kY1=!C3>9Ihu(Pd?e}<7tX2fBW zhm_&&qrO7xusKnkaRuKrph?-g{yxbv9n$2$mwDxF9e4Kq2Ll(M1( z`J4$Kv1)goJ?r#&R&pOJE9zoLi?nQyk{p02#PfL^LK=}nh&rjCM|kyr1Oovq!@gQ2 z6hbaaJP_!Bp-=+0#R%WIp>AOFqhe5&esU=4+Ejw-ZnfHjRGbjp^%7a=)1$ zfG{EqzFmmWQ<`oC@WKFDQj;SoiJiDaoHCL7s$XCx%T;lUL**GLXg$U5__n=!#Vm5t zVnc$D=?Kg4C#!IvjUb&7PN7xd11;dcx-SM&#i_9tOE>g;zj+Pm+dLuapmlI4glH}mNQj*Tr1;CH;)s|pq&jQ^a+;plV{Q@>WSy!8BEq(v>FFboH#JUW&S%(EyUP(vvhwB@FAe~Qe*8{ z%g6x$%vJz>LcM{o?#Iak6p%BuT1Eo28jh2cXPVMod5Hf_?(TPLMc4gZhnqB$^b3y2 z;9J=_IT%4cERk>Oee{vwODnCI7(?KWS?j)=8C@RXoCz8zXa@t6@1Z(YhpV=aepXOF zyz+mv0HAMzl@r1_rMuF+ZG@I$Og{;xUp@KLqi4_Ri0~NqWXzw4F~Ggb5#0PDDM=IC zxQk|@Zf>J9Mowunf|>gRBNL}-D_9Vdg`w_wp(3^aVL28m74SjAhq#tb1b`lSlooSV z2r0`l=slQ;>41wt%O&cOsL7)|41oSLtCC}JZ@TYiHiM7I5$sh4FbB!!?#rk2eGRMz z(Fj^t00l(=C&)!*raU593<^TjhSP|7Hy+^|nlW;nhv{34m1U(E$BF1R_;?M_YlKZg|rg(22CQeVxo{~lw$x1o$82un*=56WvwfMI>BAB-Q(Bxc5ZG0wmE{1Tzcsd zk}Q}JP7|oKEI0_5sRN#`N}F&QqRh|c%oK|MnqCq1d8GUhGX=d7CG;QKclf8gaQ7D*HmH2c;HRE$!F^f`2kXlpo9yf0BJ@mZx{_ z>;%dYc)=AEV|g;-X>qRs*&!kK?0;i17i|)s!w=sV*`dxliL=3A#c{SMBsgDbU9el< z-xe7W(;0{p*tu_i*ergKPDF8Ly9G@btBQ>Vh3J5GR+UVZ9F#Y?_eRhVOxn`Y(uA{F z<+k7#My-G?!im8S?>6v5{Myw^m!P+L!FbWMHhY^rRbCw7M@HHwP=@ffV_!I#cMu=c zBgLC#-{9D#M1-nk#M}n#X9*_O)*J9>5(FiW?G@1$KrQ662;^|e_Fz0_slJuH>;|ty}iC6P~YEV)vC|D4Z`nO!Hc@%;k%XV;dA9=WI_Z{v8gg% z0tgd+3*J;_Cg(V!ZT3SOqdLHDfa4^7p<^{sH=3UC_5zgT#Rx*YQDGxsqKf!6vmNUf z*$rL(K=qS8&~J_E8dprQ?j=K=rBg(@>7L(aE19~G zM?oGl@M+DE+at67-dXP6*$k?!Dhf3ni$H7n5&qMXri32a-hI0T2#NAi~PC zwjtEzfGT8iL1kE^j=qZmZGz$x(%(3<7$nB4AOP8cgj$CY79&un11IY}@t4R+0 z=l15`8OV@OKf>{Ree{PGjUK4~o~y8S!GoA>l=kmtka3rlmEZys~mG3lZs4PJw(mKpor%R5rS{bL%=R z6K<@G;07swYiXi0N$c7-Y2TUF#$HV(z18g)RJ{M7MI+l9tyV#f%zJ#bTx4|uJ{P{g zYeOvLPG+Vz3R4O@c&FxfRn4K(sj;JQ5?1CVK;o07oTERuDPB)GZ|KE{-WFC?IvYOD zq_k8J*vp0NB~YSHVim|7q2`%&2Yr}-5WGv7u3VHm-8x;cYkn}pXF61U0Y?~9wYBjg za%=)kI%41q>auq2ic)o?<*u$bwwKWhy6T z&~62GftIk(FtX!JC{CR=iI;{95WQi01&iD{xG&leY~z4|x90f1)o2jd%#6h%B8eFN za^q2B8#eh(+_j)kExXeRaNx+m<-=s9u&4%uN?w*F#f+p}Li~%0c-#e4f?%4&;NQ0U zoICfCsBiM%gVdd&L)R)%9gHIM>C>kq|D0#WP04U#s1|LV<|@x2n}EjJ;iel!OJBk< zY$$tE`j_74F?%#Z9zokpX@gL$tN8L0-9;gRI3lq^oc-2n1wl7EA)Cw;N(MNg=whf8 z{P0hCu(4o1h~+FWs%4dp9da68KEcRe{ti%z8cAz6GgDL6+tjEIw>uI{xZ-66Kc?A| z&9fkN;92lpPhOTM5W#{C2$SgW4aZ+NKvBdQn78Fp5v0k&J4 ze~52*gMexLc)|UI86CTB>3ITn8YaEP!+*sCg>B| zN3h3Dof@bgyNonpQO2f3@Oq}kXsNs7giZPggsGZdT`Y%9$gqCAY};b z@BzlMf6I;BfjZP0{2{*~v9wQEtL#nH9a2w==HN{9tE60lnu6b-b}=CW{Qed~G+x`7 z=Als|rq7r`v^Y{$iYE>CGP*+U5f~6~KweKO!?*7uf)Th$_TC2vlpehrh6dl6lh12n zX-SE~BPEfb=e5Zt4_vlvS%9?Cg2FjCjy?hTDq)6mQcj6-4G9fRq3`KIa|qJQCv6*- z;Zwvuwc^_ZW94n+N$eiys}Ct4{Qf8F_*GZ8qM19~)rXZLU(!OtW1;RE z&=20S`gq&!tPfla{ZJNon~>X1xGhV3$<|LzdP9Bva8HC%$omDk8!0HYs7sxkrbKmm zEQEYkxG`taw*t$MlYbgG1OQ22Qr1;a5bAZ6?gU?mB;b+oey)w}`R4}Y>H78cRWoEe z+GNw)fHiI0*wQbk{j-UIenW-8jMk6%zG6&*pWi)B0`K2N9b0VO-M@2oVL&y8q?XX} z*#q2M3FSb_w`|?|!M;zJCZ=YL0lOMos7h&wB_$?27Vm`Ko;&+KT+(TT5D!0k@&u!S z8hrW_nms555h~jOgjCD|z-UbeuRTmS7p!C;H*la}BhFSox6SQ>;D$rB% z%v!K3nfIdxbzv2MB55j_ww0q!|M z?H306tydd5lmOx;s4%mJOCI{=xS3!H^#Jxy4E(#dZ6i-QI1v%H9d-$7ia+jC`kr3>^gm zGL8|{7_-ALI)agea8#8G^4PeMLxn(KWW0w??>>D{ zpN1e7v9*20awbB#yzHm>5*j}M;3Gb9ad~rT`BbozJzgs=*+N+qu=PWAk@B#A zkU1Z)oY7Y-NYJX@2A}0-G4j+XoVo>%B#KQoZoC3351&H1kdh*p7_T_cDAQinL}e4} zoJZgV6NbWn6aJpRGVXMj&Ydx68_>VM`AEBeK)|iTvSy*i9YJrBa z3q_R+OPDd}5#~32?zmGKCvP1YOxe_E!}C2!J|;RjxsDO%j`>KKP~vGG39&0K zOMQ1F*=j+V5~j~EH{ZQ~e_=rZRm$!({oAnNp4zEXzlHs935gWQS6JmAzsnuIF;)x! zbv=|+J*wQB^*sP+>Z2=x={Y@n=wUKc8kx? zQkDT^en^$lw#JbYCR~TeFm6&I+lSr&U?%EWM-n0}?HG@h7wUCZ4GaqBtXFHRlz2yo z@q^~~n?FRNNU@o{RTGj|9GzasL|juz8VazPv_gdx;yt9o?o zc6+6*x#wp0rt8(4Mlclt} z;$Cy=MLUmBO@&FDu5@shknv14$j)`^U~RTh?k#=IuVafj$jZpEf0wfeF>4b?9$CZ^ zW4puInNIYTf-cLRotzWi)~4(sL5!f8u`|AByJ9i``L}uK$ zaTqmY0@;gAyfQmiKyGhK#A`mieY=c%6X<)D+se2y&k+g;H2KN0sm!6UA($(06s7yF z!0p%#Wdd5fyust)k9b#eASG zC9k)=3C3A;$e!cPT0@T>#n|s|hfex>Yn;}uI9qrnzVMXDKHSUp+=<0`EiE?=9a_f4 z$RjL0J=K#&=q~jQjE~@}G)HJ% zHu%Fq?0TZ~9~=FO-%xb|tDD=qy2#F=)5+0Cf9ren=!4|}zKdma|4*r!hlGf-hbxJB&F)Bho~ zSi>Nzxw+l#`)Q9DQTf#PC<~~e;e~4o-?=j2Dx>P|S(uz7M zNTJg!pSHf}>i|>mw>)?c-GyuO&y2#E;Wd%vSeGWx)Vg!C&T|00y;`Gjt(#bZ;dc2a z@7?O_*E5eq>uMifHlVz=W2bRF6?d*Ij-3{CNECRtJx)`7JF@RaM@&AW)!jnS{v|4=*C5 zpgq$_cTb;LUXbBw=KW{C`y-_ej!rw!H7JbhtZ&e^wdQ5Yv12_W$92KWnh82`cy(6~ zB@Jq@1IGrg-?np?-$Pw&v&q_yt#m0br8U|+Z{a;y?MVx%%Vn(K>! zU@T)hcuiLA?LJQa)OQc`KFON-3q{m;`^$kb631RVA>!O{e!n?YTSf4<0c$zimj8+pC7VId61EIWoen- zXp>)8u6p1Dp7-8u@Q^`NetS(`xR5a?Gg&+<@j;aVi2^dK)vfg!o#bpY7QN>-*ET! zf|3_u*JI1jYTo=xlyi;>_vyuz+E=e^ymcex%jX3)Hs%H5Qk{cxeNJ!t`x~W@9(1d8 zyzl+{;8{W}e{l%&&_lwDH-qRA1bl&-ANoc{=6Y<;3|{*DO4!y7M$=)82I)aGYTR!Oh&r z%NsF5>%v6p!8UCxx#mGtv{~S~jrNDZk;ZwqHTRdSe8*vM?ApHAfPjw?dL_56k1;g- zQvUGEVa;(mUtjlEw(B|Qo!;ot*Dn9|{61o*NwWL$vYXq+&-41q}kW+&m{ zyRaf&w#>9xbPNY;Af6WKe%8btyP^uk6kcVYe+) zG_`Q%I3Fk|th0g}z8OEpvOq(Yw?Jut)$G}uf(LG=oI+=9#3+viE7)V)zr5N3!Fbv_ zR=V-?m}BW3%Z%aRzZJPU(^rJCFf+S|AK$jk`>t>OX-P>}e1TZ5W#+B&UEMs%7pM&W z+NsMXN)(J+ZDkd`BAz}xp%5Zr_|zm?=ondHKE-v%nm1{7VjRf=^}UTJptH2_$k0{>Il$7+W=@3WS#9nw+lLOK&75K zh476Tdnw)LG4>O+wQnJ8PH%N*^B(h|-R`Xks#V+b`9*4SP zV^)&EDS>t$LP)Q(^sd{GA=kGi5wdB>0w}R1>;c|_`-wM`m84~2a`NUMAA7)S?IYNp zGiRKR4wjchBqxdQWb-*b7{%%K(QX*-`1uk?m@LDAh2(5%d$3rD@Lbl?*%<|>rpK$*WKf($=u3dz&x00t75TzswXZjL7 zcz{OwgueKWcU1I&vQBP);NCtwa5f1#&b~CaJ5I(+wq!m3_MBV{gZY~GAnOz3SJ8n7 zRwm4>E{N^vA>pR0r+0l(Epae4Oe@RM)^JThv@Z(*6+lA-+G|R8pqbDB$kvfoPswN9 z$%BX?;8O?i1eTm#?JxRvCh!oT!~U8%$xi@%kTKC>PE1UYANZP*0)im46Qp$~K^>|5 z3uiz+(#H)PTxcC3CbmZyVyLNZfWNUxJ{PaJmbQX!q1Tci;z!1h?vYjoVq&VDJE>^+ zlhpzR9ZBza3u*;ml42`}yu%(;JAWC-kA;lk_FAa~69~ifj=5-v+}pb)#%Uc#Z7-%w zHH2?V$$z8+5@BXk|4*AX427J&`0#+N$--D6N(k9NW@#F2A(S17=T?3GyoU$uIMP`7 zgrj`IaRUSw?NvQx8RVGcGn(kX%*v*MsKKa!LE%QqFx(Y>HV6f?o7<@*pFy7yFY#96 zHOr>byHY@n+Sg);VRwJ!rzC{OqoU$9Pjv*c1<*aqFWd?4&Fs3t?5h7lRt~$zz-S|@ z77TQxG)m!g$<5kx2b1Ak>kXn_>%E6WS`d7-KY;L|UPxYmaYv6Gdro?1uDtfL`+}W|X4yhv zNxiu~rhQ2XM0Cg;h>A}%hw_lH5%CbEncl=R@s!E^@7fLq<=;<|My@V6$0lPl3-DR6 zSh4TWHf_cXeC{jOU&s7~ksg7wij2!&i6c~UqAh`^;fomsTH4~}J#*$hv?xa(jTkm8 zpDOl(f)s`w9Ov?7E2?U+><=6wBMFKCqj^HPxrW*HuSWoNHir(?H@Cv4lcVB8cggl~ z)eiu4>aY-V0ROqo-S`=aD}@T|2fR_-OSm4)H(VW5Rk7zJ*nRSHs+)OfKw}T@sZZvH zUy`f34DP)Lf3aaeNM??LA1@Z#&?yWU@cGlHus?R}Nz}qo%seb|AoeI&Qk{J2 zxoMMt@Q^RNv<;QD!AH=><^^jC>C2;Y8(G%m?tD>X`0cBo;GE9EMQ$#%c%^ksQqq(1 z?@UG9S5~Z9qgmc2vE|T_BbyL&Lg2>5$AblcL*RTPPfxf315jrD*%rDO@Pc%lH4KIe zpGvi3yB<<#j7Zp^J&1i;kcuza$%hC4wTq++C^*bEzFOy-^%xq+bnq-qxge5%p;7_q z`JywXI1ujz385}!XzxADYSb~SSFW7@ca%^T3$H@kD~t|_#?Ars!1P>bJ$iVXY4m7H z3TSD;QHp)dJ66@7Uxg<>psWVM2e_IC&5oXdKT#$#L$yCc?nvS|x(GCfn%WlRpBU8e zZ7`wfpLc@XVLb#ujTLk0nW;U=$7co<3K%QbMX81c12J!WZ7vEcP)HXir*qUKGO$dA zvyHY|AR3&FN`nTqks85sVas9eI)5=H?)(of4m55eLHEg#VTm@A=a!?Oq5!fI4JE)DWROtk9N>H z8XD&095~IR6-kacb!rJ&8943BG2MQGF)q%kvZen;vWZM1RP5%DtTWKl664q*Q`1~XH-eY`PLzWL$ z%obqtu-Ob^6468#! zts#cF;vyR4&_fr9P~X6y=F=w&rPxgrxAK7)#vH?0;KitOjR->c8QeTx-@ffrt#uWX zkseY~%SQJnMF6rqtuM_SmJydSJw+X-K57H71S&TRTaF&XwumBG%7oay(vCuPe}=;2 zdwQGemL#OKEXLc9nNFcK-VDwODZ42(e!yHnTc?kaz(H zYOVdq`8}c004;N05AH&NxMa_sjrH|HDWd+28$L!v7AkLuRT;b;SKw4@%EFe4#FcN)tY#scqohSeY;g-c`)mi1Sj zh{jFeIOZq0v<6S;`iV#dG@E$v`P7WzS>FBN~`F#m=AgtuU`a+MF8zCf?TT(T@}R`wE#F1Q!m z4GvW+bCJuFcL1*+(mUV9{5Z-B#+A++(lnQ<*1C&KMJS(TprL=~|CX~gAPr%NX?gTx zQLmU`&bqJRdhqx{y$^Rf$3t-^sGmA`9(RnUBt}1|j`GaNJSXsc4!9YfM-2#jQhbMH zimp%v4rKYar6uC)Yv);{``amABV-2ZIKj1vpj4>H5vmB3Ci%0o3H5kvoR&%zjU3xD zy?S9&G&F05-aaLz$TV?qkAD(mN3Z zje1O0I)uX%rW6}iob+IIQUDD4>fj|uj5w>`jg{D7CXyU1oJG*hNV)9(D73Nn3&uv& za3}cb3W7>p!kFN*J!CFnI#xgF5485D_6?Xcs3slh023t*WZ=N7Wow(qm{sRHlya zuir^$R4#ME1LvI9mlVlN!or&P*9cQ)Y1085vzYO~q+2Tyxtl~pD~qcLy>|GAKF<7v znuNqI2v&HaOT{h;DU#L9Qwnov-ZJr#9 z%rndOk6q2jF2xk|HI7(B9*kdg{Q2{O^oLQi>C!7(AOMb!e_vZW+attD=$OVvNN=v# z;ed1$HlLv*L&J!+SCVl5R`cfvqsG=J4e;5>R%-f#NPyB_yMb=mQym<<8BC$HS3ld8 z!$DAtyt}!u`lznVn}0jYT}Pc^s|0s23Rj-vNfPtZ$(f}|bMxyzddS9&*UR{$QoN%g|-br*a71U zFP0P7aOMh&PT1_8cN*vW%m%e4@Uc>8O4%Y3LT%EjIo=wJlat=<=K6h^^wkRVRN+ z+5f@4A#-}HaB(?KTlT{BRf_~BJURKcPD77nuC4-MYI(dFE$2r4o2;tSV^(}3W!>hengN0u$FIgYaA1IN#>?#kDZplCJ>?TSeVUl82> z+ZNcBefY4R0)Yf;?!(+r*8f?54r+)!-YfTEPP4GVQPD9wfB?|JMJIUdae{^UX@L?jA1V7p)&8Ne(5LvTCz1bxU1aBG+lV!qnNb zli0Bd0Za|67?Vq~j%Q|t>!=wT99W>qsrF7p!po-7&mu2=-s_luWJn&i*PG=5>&bY`!qT}T}#3J2>f;?Bp@qZv1l9h0 z!Z8B(-~nR-s%4+wW+OwgdVB;U&JG-uGMNI_7}YQpp>G#L$yvrd(S1(P)C~GJk_33V zkICLFWTYk&{*eV{y+o4~Ks@{^B6JQ?6t`8v4uCA%+rWw3X@K@U^$?wVw@9s9=;Pi@{ ztzv{Yuk~-E!}lw+l{z3b$(Fyq<=yr!Yz)?UEjT0J&F!QsKg-rSlWj3uo~a`yq>GpU zFkvbyQ3S7~-ii#HTA(X!KTA&RL|%%e$^~qv9zVW7lt!A$5+Dx{EPV(pBVRo&n1o!TB>zBF%08MyA#BdD_dSeLIeKhz0LFwLk2)0m$g93vuUHT3J zNr3Wl_j2}h!W933(`5Fy4%hp;dan&aClYOfh22ezAlArPZrep*HT`>cIW8 zLsq1}%e;#J05A?4IlIac&uz?85C&pp5_#%EIpb*DIk`{fL=w4X8qI;8OnRNmO2YMH z((6fy&bkp4Tp~3i$P|#=5=<_Tw9Ps2ec{cmSCQH5+}WY@5<5xdJU^bp-P5z`7O!T4 z(10pbI0_IvwqT`px=o{nrmyVN2EFYAyct={ zdoOx(hrHX%lM++C(zjPu^=YOZpV_Vf=_>Mnt&K>MsP6MuIF~QpGFb)J*GAo!9 zR$`&KKBr&^1jO4zN+l&Vb*KYswbA{%fA8|FsHpAt&+|K$wK= z0g}UMT8&K6CRRqLUfa}H8AZaHs2h`B=zG>44-X$!JugnaW})%AotCz?*^MuWP_y0l zacG zj%N20I676IvN>*g@z96 zQh@1tqEFoVZNFB}-W4oWOd9I{}=tiKG6#mP=$V!F~>B}JRqmstPBAbjq6 z<}!52==yDNhddGB7?E#I5$i9hc&FXGc~foy&!4YReUlm&F?|x2$%rJl-NU7eXMM++ zysGszW8zcx%uMp~UDPuo(N1Ma{U~bQ1h)dhl_)fd{0Xu31k4+Mcs)z{tg)!`&3V){ zvuOj*iiqd^w=A4~&3(a>zjUh6&iXaY^>E~9FkFT2~ad+9J>{7GO%GrhFFg_n= zZmpdmRy~di4oaWg+NQ-8pz13B_>o`)xxKcB$4^dui~e&qMij>A5MOX5jJ#AOml5(1 z9bC8?QvR#>`R9i8*(9-(Z(+|6?KnCGViXkEEO?ntcwW_d-Ge^!`|xZLW4aHJ7yw!z zRO&NLLfbHl^xnEvUu~LW)xd}ggVq(&zXP@4{4%90>GH7`d@*Fj8l@Wja}XZECb6`>^Chg2V= zNnC{LN$5blaA8JL6imdNTX8E@I`H8}SEj@k@Nf!SZN^+zob}?=`C((N>imdmWQ>7S zYUrkGe#?Buj5A~R>_&$|vSAS!edER(YUSAz`CO#vT!2vS=a;AUl`Z7k9$)WmKhFtw zcgAb6!otFzh97MEu_1N#Q`u{{tl-)CuH1ay04dWDk2eo*%e!wF)r-BEKv1K*Ah|(X z&i2$xJRkgpjQSe*Z>t%i&`Gzz!Y-~k3A!CJDoyR?vBO7?7LDn;+DJ8h$oXDO%l_R1 zuI$*wc0P${BwK%-eROQ>)KxN;`G8i*%38yQQT{U6I~(m zX5}^yU1S%Td~&xy20bDhjrmMvGm>bc(_TF;3}UOpQ)aS^cujtXeZg^e-?62t7*-ua%1JKkd%|4S)^W{(9zLnDWC3=e73uG`` zIt59pr5vl9nAX2vKa6!eX650}m*>}m#!r)F4|Ey3&`{!9bo5f>yZz-4DG?fh$c-u-R_1+!SPX~se{0d4C+txm08edqLuvvv~_i7&Ypcvf0wTF z)=}1e-3J;T%Saxto6oNabsy)B6A10RvqX|a2Oj!ba`LJ6>@tRpz6ZkSZOmw%)Q@fv zfJv7ifrl1_o&Dj{&+m?fjg8BPX;jJz5pkHIPA%~;9p~eBYw6@ zF)Ik~DbC-l;!lLOBx+g3r)`92n+PUi#|hXEYh{Qp6i<$c2-4q*e^*{KWo0?_`Uu%kx{J~!ZjXQ3c8^A)T_okGU*ANcdr<2S%0;3vq$ znB=~G74U`7BF8d{oZ6%vo5Iog0UQAd`83Wrp^u)2l#m8<+z`Hv0VsQbj^*{Wwde77 zKmFrrjT|1we@^oY5XKIj96U2$Cq< z^^oyZ-i>K88W+nb(`Aa3X2o>cPTEMaI?u{#aJqWTGX5&RtKoQC3=60 z@kje?HsTdnqt-POiC|a`S1afB3(fIr_;hgp{vL&*CMuS>L(8bscC@NnM8>%JH9lNM zo4)i9%IZC5!yye7m1y(}0wdavNe|?#kvuZWVIcK-PAT!y&u2E%#Ch{(i>T9bBp=l@ zRi)%Dj=#U@)of*Ec81*P!z$dWcH|sV+k7o$BnJ{wk#MZJ{~@YUQl>H;!SrZLdX7D_P# zy7uUC_1ZNWRi9~!#1I)$Vc`$OY*=>7<^d$~)M+Wy_v* zdK*;e<SusXO~>zm&bILYD^At|g@ z4#Rov9aJJ(tov=Bmdv6kSMWYGHSJg^imRZSrndHghdSdpNf^hIXm_9{n9QuS)u3m1 zi$0Ce1M}{IYsVF!Pym8QANQ$)bE5?*hSGpnE3|9HrRgCv!*SC=fhKwyK4$8iIZPMf z{Qzz5zRw{+ZVp2_%|pgLC^(qTefvX0`xJ`gr%~2fROCrL)#Yn4lc@|NH%Bv(|3?1| z_YCHA==kxO{L+t~KZUnPMe@I?smRFo#czVS7aoxzn7Sg;IoMD<3fu9Uw9}@`9*()t z?dXt%iaH7>Bi|=<)|Foi_(Rq=jUL_lLC46Lun(hbm|)O4itxbXH}AjK<})Sva%9yQ;btyIf06 zO~uPKLBwEu55Z?);E88q`E*I+KwxVHkF_$KQwD2;G7wu+a}Swl*v8T0#tG3V;wu5; zJTPRq;6#u0eX8q8;E_VRYO^!>XrP47H|#r5ftE^BZJ?u|bJ8)3*e5IGa0>A^MS&le zBO4=IpuQYWM}Y^{4xfoF11|po9>Fu~)!ZxqZ|Eo{__Xdc_^+@cbh6r!eFk8l+eJcm(vAW=Ql<}KB;H%()0EGyCN#`j8kMRJNsg|R{&*(fjB!r}FF@pBA=qI4q7rS@ zM>9AnAMv_)X#A7Gx_l(36|CF9@ovi8LI8xnxOlRy z76K|LoP=^Nl08z^-(*1jVtOd2z^?L!%t1GJCNQ^#yg>!Z3@m@o0be8B=!ZR{#zt<( zL;?hod=Vd$z18DQAG~+Fw(ji$3yU&T6~j7h1V(F0TDg*ZqKgnJ?AzIHF<%prWS)p4oH}IUenH1pqB;Qhfos9yX3&?y{pB(j=WPn_B z5CnoofL$UH-KtuhUNBBjN5>Kps)?2&?!B47cwuEfeHU5&iU| z2Fl6(V#&kk(o`J4%dTYrA`BYOuI04s(xnSp+wWaMECj;z;zd_90VuG+d`7j3VcmvM zi8nwTsifn$yQ!0|CihPgoRpAo`RY|Az13k&-O5R9nLq6JbTld{F3wr90_~G>FG7_u zha)1ketbLt&H#DH0z11s(WS#wRD{kl;O}TgbSAEyX-(uTn0H^fVl#X8I<$o(6mlLx zxFxXh0>$%Ot^sCh@mY>KK-j#Fr1R$mRGX6FJ?U8-C+pYt#D|+mdRngGIG$Xm8^gWE zWvl^LVhRxL0Kz~+vALKUdh>7c1CS4DT?tHdR^-ZR?H{4Vb3rHatjL4eV)-)t@{N*N z%o$kIrwTqpE2E)6`qTGi&RHwY9p(lnNIYv8;p&PNLKE1fQOEDS=MTQs21+_@e= z@~p}mJ(j1> zGfufZlimfZtEmC$$ET-9+=x8sFrT zlw_6IhH%Tc@Uw{pJ*uV#*QQ)iTrC*#w@4rMeM{WEyQZ>og{5WNubOcod!3(+ z){iz^Wq(brYaF7D?3*>u;JZEhEU8Fhx$$$Yrr|M}8`%u2z z;l^es7sHB=dH5Tv`6}CLy=?egPQxTwB_-`0H;f89tjMMk@r2=)riX);o0++4Xr7l5 zKN!|PfkjWxMzu?qTq`O@C-H_%63UFfD(@O;ua9-R)05)_kTNz)-;eTDo;hno&gu|l zNv0GVVJ~q@+osT5$IC>=9{}GZtpxZqMrHz3Icc$GN%6k{@tj3(FGbO}$+ zykwh)i;K<1h94w2mP!@@kHb^ystbSg95ki%XVEjB1o#YwmmDGW#f#u$mcUmgzsoXf zmFM2QH|p8vLV5=J7|hREU+-u!WlDNvNdRr;InAfcn6WK4%r0{5S2{fy?Pw7z{OlOC zcY07=-LVyq3?WlMD0}zwEX{ZSObz(%HlLZAd*tsQ&)(wsnQh9|rtPcaR6mKBhw#&( zhu%dTYl)6sY2qR0+<*P&W`|6v&Ew=`y@pDf;%^x-vo5oL_uouP*hLo?bxR@q6!Ry` zFz-2Y=#cB#Im@LLUqMWZ)ShOQ)iwUlwR!z|_u4i3H@DvQ8L1`rBQLT$H5XFWq9F`ipP>=xc&z59hQ`OAMfO7# zUgq{0V|1$7i_7Ik*sv@Y{{B^1_;TIaCC@_hoH92bw6Ja3@VI}_n3YKfXB2vVI%V!* z!VSyFH^}&g?cR4|?jjtc#`P^crAqm`bkAV-4L|11FOuw;=~kILK|&&{@=?*dv|d50 zEm{;6<%pV%w)9pQG^pro(7OXlJFA|Ss-G9}aUnWHr(GYE06BlyIZ)U{SNXR8hd=#a z_fp$q16BKa^iLm1!gUanz%ipT2?&p-mp=lR*vqkC>@(Wl!_8Neuo3I z`Pv`^@nn1)v$Xbgcnz_n}cG%kqVg^pd1Q~#pT5Zu5#Jo?rd&Qwo{i~A%*Z;NkW z3oKNW(VVpW^XCaTrx~}k2u-sQTwo_=O4gCL9Ap@A-{w>h072~Acz(G1==kou+X}KQ zh*FzawzA7~v>KUxf{-7oE%9d}`RigzJ2B9^p@8^?%dB;E6$)d(iZ)fhSOp~E)ddU% zE3Qe5>*B??M3)A1?;JJT7=b&&nVb=*RM9v_3JoZ`kdX8ik4E%blR+ZFm+wQ{%Z@qd zm9mStTY8EwqDk-Gy}8iCbmK{;%eTM3KNu?FKeR80^PJ{j$3*!Xmn-cZD)oN&<`8dHSGrg1(z97_5=v1gcxc0hOVlH zhAo)suzArISug_>$#n00kJc6lHTY*7I)IwnqycRF3qsVX#K9Evc=|gv@5Y=!7-+AvwHf%LNVeeikBn{+6V)$+7j6$5iQpqO%>0z zwbg)TLR)moqI5(DzdLbBNk@(zt-5({h~#OshREDOI+?NCXwaOR>Y2Bk2O+(rw5&#d zLa}b?_V=VwU43aBN~`mFM8kxex)}QKKBZH$NwIB?iO>fI2C{Vbb+{ z=Nkjk8aK>T-+=A{C0K;9_r%g^)uSYH`Vds07YX&6bta!r>ZhpaMZZfz-XEm|Q0ef}Wd0O0txj&ws@gz0ryi4hwO^9dvB z>;;$9>-8@eyS#h7FGx`}9<*ELJ~`wzp#Wyo_AOf`M9p?ZSC}^@q$q55>_yv4zKv}o zvqS3^KVvn4XfEhxYG9DDz`KwM-bQxB#DyWyK>cV~!Wd&ikW7nOv`q_)bwn}@CAlnm z4w3~_ZqI)^kVotf4n}xk_^t8mKxkS5tTeCY%k7>zlFfP-&o4Tv+#ZlS7O}P@zT8n> zU9%UqovtQBB~LR$|COR5sRJfq&*x3QsRFC{+0VbiUa2&(4c-gAB1Mt>n@w#D=m7{K zlj4x)Am$Wb9qzH8w!!~_4_(mglp1-7k^#&#vAzNA@k%}Bn4La-NPVr)YDXZF_fu}D zDtVf8i{$Rje!Z!;pB&R3!ur9c1)k@|(_cS+P`_osL)rO z>yn92*A-vh<+(i3^ETKVIS&=a9}7?H<|3!wsfG&}nRFrIHe_oJLyk^sh$cTuSb7c;l70Qe# z53s6{X0&h8*GnYBlmtGVpZEvR8Z`Mkn_9=#aG$19*B;+occG8>d04-G<3@N$ylIV? zvuGJvDOiLF-Afm=$!9&HNHTTQ(J%9FxR(du)C*~Qy#%J1o*(Ql^NO~#{QZma4Pb*! z;EGps{Q~2N`y!E0Zks_QA*dfuovJGtXsRBXQzUvAbYni%P0JZM>ML+oyFX$eC#R{5 zKaE8Ed~uOAF*94vj#^=C;8D%AopgeriTIa&DJOmpl$oXZ?&Y07^V2Ix(91_$-*nFfJ9pS*s zd-4QRu2oe3ky>M@K4;TU$pf=v!EJQJxV<6J8k$H{cLjv!q45}!9>+Iw- zucjb?v-awhD}n`=U%f@p>{tp7*%2LCh}c}}d4k(t2e+Wf4gk`^dGj934=gI@Jja&` z7@}fxS%g7TQHN0?MQk82sdG0N ze6!6xM~MrB<*?>q>}8U^n-Q<9SfLg*`=ri_y=6n}vBYGz!-Zhdjsb$tvAz9T7nc@l zIN{m=2rz1*DbLO~;dtTq-^V#C6zL@OLEt;Vz<}oU6lK1_$*9D88$CAw#A%4dZj~-& z2>HV-qb(1N!b(b0Kz3A4wytd`%A5e^CcO1?Gs6cX7J$UEwEPZviG<;U+jv+ZkM=Uz z5h5A(l@SZBe4?PeR0R#ll9XZ|q2ig~+ylfsrhoTYv+^kBC9CB{r>-gpcryVfQg)z< zQ&Z)Fvc~Dx5CL7C{Y`uI3yoXaNgZ{@jXSBmdL#!Z`^?6eu}?AcbH4H_sU37Q1NLD9Tb#T^WM8hDQ|BxDoIMW7`IdLn zV1*E83{_W0r1A2LZ+Uh88PLUXl<4iC5R9XiZLalKIatVe0|O%Z#n3*qRJ&SxudzYC zSyIFGyF<~Y4(EZeb}eXhc~-tV6QJ}mWg?d|jVe*s%tpLHhq4c_4Mh**4l|g794p; z!@@%JhE7QAsgul5w>r zfl*8ys2saXS@Q0~hk+Mrk^Vfqd6rr%1=2u!&&^O-xI*7(bffem&k3Djk=7&$)X5L< zL1RCB5}`NacEX_+Ww`7LrPk?B4rO95%3FN5`9>EZBK)FG6+_OGCmap+kY2}To})oB z#-x(I_|0$m{(*1~sS%9c`3o2D0ICH=#c(etUJqw2x-1KP5W)l@$|XbK1iE(Z+RyHG z7Xl%X4<5{Cf-sP5bB`L=VWx`;)o6wib!wqQ{I^_`q}G!XD`#g7&u)=M@WHfg#Y~c}$OkMNbSYBRUY;35~ccjVIe3W%nRi zDf+!xRUoTjjJ<9yx#J5bK-9wtsIIC?#Y)rr)d>X8zwRz2g)yrI8#Erm&`31Xap1uOruEpdsHm@>KBXs(+cdYOc@7KMVF>+R{?wkvP*eJ4Vb-ej@0kUcZjWaXj=?aqQsROwH>Z)o{(|5w$}V9cB`f+f&b=?PvLOr}TYHIWQQY30N|^fUPF?=Oxi0A<&q zLuSL^Kin?1Z_1e{8lFPMblkB?e*Y%yDoD6IJsZ=~#@8;oz<$zPuco09N1{PpQe2Ij zn%Y^eS)XSEjk=QJ*!7juYvtCb4Rf%h!hC*F!obX*zkjZ|Y@NP`!sB$l3$5zy?Y;g( zG4mYfz?X{>?mT=rbi|0S+#=aRkDj0ne>VLsR2Iop9G`+$NoHbaG*!ezlm=g)Yr)7S zZo}mxN?DQ}oLYcFuSVvc-k_)0Kw#RPgLs+=UC2 z^k>i@8LXcT4i3(p*Gi3Ndh7G(xVTq|3&-)sdAeJ(%NU(i&dv?AOZgTe1g8kYPmGR% zCc|Q}m$*BacIUq>yCmCDSjnA03#25QH>c5P4VU5UJ=26%HZuN{g692Q^Q$LY0LeTu z2Mq>3E)FBkauE18p2R5G-kj*1pL8{}4m%mZ_C(4DY#^lE79wFfZE^^X&g%DV{!Vq#-y7kK`oWrb-+hB>LN zq9exBt0^YunXhLqXR#PlfkdUzH}fZ`XJFlELvvYS9@U4iFs5Bi&;z|mbsgl8YD>?- z$h;)GMvBYWU9P|Mt>c8nMdQ`gHT@b7v0M(go+O$hIQhG&xbH;R6QX%)@u{Xpg&kit zUr?*^YQQs%wz63s{U$1?tE=O6W?aAi-Dt3;6m#QE5oiyd1pqMQrRoO1gw*EiS31|P zp7@HoA_ZAln;-s)(p3c2Y@hKHIy~jTX69)%1S?DZXYT-$VsGBYPN+8HNJxtM^UoXC z|B|?~a^DRW8wf~wwO}k&NYaCHe7!+X7PE8k&`F6&Ni@|`gP@$xM3S`|L?BS8}B&X%cSBNtxN0vF(mG%O~jf&hdR z5|D;E7``edx{Qs?T1F(2f z+oItZ*gI9Ocb#_DgZGiYHjwFdkyaG;INZe36mpC=VP+ov@jVAF(t(6ESG)Qu(}$7( zzIp7S4M|vvgv@!kzrXhBj|-}x=&2)l$iI z!^dXrTA;r|JUUKGq|X2cr6jQMkgepcK72SzkY_3=klb!`@BV9g_kD;t&y$tlNHR*V z{aK9_0FMAz;tDe}0t>JsUe|uVK3Ml%{PI#TeOSze3)gXuEj=tROsv5Z8DS`=hWH1i zrL{q4LS)QCGP|GJyb(XB>A8kbapEwxYimU);37Y3!YQVV?(7H->Aen8HYd6H_oSvX zmgnAJM#LzQO)sq#dBe8!Q>wd}6N?yIN$EX>$3Y*T0TgMN(UV}fw5}vK427x0{BJTD zsfRkpRUH1%Xv@dXpILO^wXI_8fzxTPa&r7`-j(PN0a`?`&{q@IWQxDN?DU~#!ItxD&Anl|deE>@&OC+5cjU--rq`g_O+Kaojj)8;8_Rp| zRe;GmP+Iy5@fl$7=Q~8Vf7KKP2dxhin$o%YoE|=;m)wiz}-)XM` zx{F7hTyEXAb|Yw!F9v_tc^tC=HXvO#OgMpG7Z`X~emT17@72}S-@mVV`H``#JE?&{ z?(nQMm_Y0A|L)s2^Ow5Ybw77dRXkXecBQjm+fMe1o_{LyWuze-r39CgJ@+aw2c%4a z1M;}rltBk?*6aSrqh<&6feiqQN$_hX9J|GCqcXV7e4BoOf9H47jERbipJs@}?I&&l zAI$mLLTiL${toa{EK_c!OFK@udGX@G2UfLHOJ+Y?Fjz`TopLm7ZI>d)2~AIP`m-&5 z7issyn%iAx(BBMGP?!$44?u%k4iI9?`+(EKWEl!e0r-lRodzgAUPnZ#YliiB(mB30 z3N(B$o2jKjdWX#M{M7K5Fx8P3xLU+aq6kUed2;B@4SN(At%DoqR!H`N!Sj9I8ERGE zzr{vl&`y@)OF-W(+mQ9_*%3c#3U@d2oH+z|sjil5*FN}r$vYlHf)I*H*S|AfIZn8- zdMeshYfuvc8W9MV0;Tj@sDJx1;D+2oC4RkI@bTjX^cz6@ytswiPeJ*B)Kfw$Mel%b z2B11qah5iL$5^djKfgl^M)uv_yKIF{;!^s~Uo|xqk$#OW|zIO6O+I>&Fit>_Z3RabL|i1WpG} z+Qy2b8-4Nr;MWWEH#S$XGoF1>qPx`R&8Qg{T%MfZ9loa zTN8^M;SfrCn|ztS9X}mnRdn>o>YK>&4<0yh61pCR;fD}+Wq37Lwr!x+Af$hgSt=|? z-?Zu7t_i{ihmFE*qjz*$lhuY^6N(nQc=jr=;gi-M_E9v(Pv+NZsI1+3pWht4>C#*{ zG*mlWXH4JURaaXqTXvnMgA1v;Eb$$sMT7IHK3$~-4f?{av1wl(g|12A3XrmY)Yf7S zOH*skhov+&m-*TF`*(C?WE>c9i?JK*8?pt*lHawFEOq9_Ko;&=(|zE*18av`PLK^3 ze$V(6(^kA>)R#P@v;j+oCU6&cw7`j-t}R=!g7sWs{5A)q#^=rrtA2(TRZmW?gaps- zhPaoZXnaOZn7}Ru8x8@zALx>0w&Hay!0dqZjo^~#7E2M2mP(>)ZKB3cPfy32o!XX) z>&xg^kLY#4^`G~%+p+hLP3XY_1fs;n0`PU^7ito zeOn-Of#gy;Vy-7%R3mQQYJ^Rk3=EoQB#l2YMfOvcXAPEdMY;@&Gc7zEW*Q?oXwiJw ze$`tc9ddkMy4cA1+Tdyb`U@ygtM(hh45y8nmlmdcS_1T9{j{OR8o8L&>Phnif zJN#&!t{2W%r)tMl&V^!>STXwDo1|k7aN-D>Ln+I1&VHoV!bq;|=k^=>@v~|8_3I^z z4-mh-oTFHhw(D=kCj6{c`=%t)E66wuO-{j%XKpk!Ork)i84ytWkxiD?ltY;$w zpBq-$`>CGy%G}yoCh@d#Xsi=#rV4E-9RjI+3TvO5j)P}jgBP6M-o_+W#o(|_+t7yvr&~QlJW4n83jCUP+;RQZyYo&2_+0hB`s%&M5|kDvLp zF-o`Bu$^{lGv#K^N*U{WxWap(?)aiHix-V?`O?EN+{QcBpuKR zs~B5I$Zus)m@xX7sf?`*#O*or=GFiF`Kj9CiLkDk2b8=z8QYMInKOJU7@?7E*(b@8 z`|kk9gym6JJ;bFja<=JL%R?9Yv^!;1_51h2l#X4gwO>B!A0BWSM35jFxAMl7C+Fn5 zG1Z3zN7a)}!hP>>klX_E&3O6pNz~1g*R_SsM33)M%jC735M8i#-@Ko=GO^*3O~5g7 z4}BfhlHqui%wc!Fdp3_BrV|k=#JXdWV2$*~jGDhuRu*W%Vo2vpQh8{U>ay>SunHm< z*i~?31h1n(6b|vIJ=T|(5kiXiP^4Qx)U-7ZCDp&d{rpIIMWrhH=Gn^!4~8o#MUYpt z_A8EJqZa57mptzK>Brr7OTmWNZ6kmvoGFs6)e%XVB`j0_xP{T~#nYiK^Z~#vtYg4! zQQ*yAxgz*OQMSley|bMLy3fyux)U~hD6!3q46b#?c$ zE}LAym3z&wCp=r164VbvP2voX9HL8WO0vDNccJ{X^K%S2gt-!V5YVQX4KpXp%N>rV z3QiJ~SCG<)qE;zKrN;kRPzxRPQGWgwiVMP+0N+Od0qtT{9Z*;3)SW36OHTsDNs5Y+ z&eSwC_{ML0>$KD$NY9Yi>ErXT{M(xw&q0g1pd?(GmT%Ktm{kV`2fOl?M62*ZPjU`F zbkql`y8Z7{okyflcOZ9gseWs2WVDg8nzD+{`L^RV*V-RHgsq%(Fv0ShV=rlN+NfOx z<2fIU>L_3K?%Q|r8u1%cJmc%WEsXY4QX$(pGvU8aG1umr4QL{@9#%+|z7Z)x%xbi*7j+mq*iV1;F=`zw9 zE5i2JgfszCY;XIO&J#qSGk1Q6KlV4~fQ&TI-Si!s@VZ)*N{{=buSar>T|a)bih+P} zhJ+%675z3x>4snsGu)Fq%-=-D$DDneiwjRf-ybG*IXdmaqeZcXZUJL1lobw)yj#Lf zrv3hYlUd!NrcPXMj85C2o6Ko@3KN@#gp=k$ptQN0{dd;YXhaJ zQ%iDkRM}Vl*qz8~VLpHA)Z3KuGyqi6`@Otw+`OqVa<8YC*MX(fNN*WW+S*nK+j9Id zKBK1C<>rPIn143P{D6{!bWGoGNb7SW9m9#Oeh;ibO$H7c#MFSEWKQ6j11Bdf59LD- zb#E+dZ>w&Hq;T)vJszDem6hA0CKs*4IP*pV-1{*|(u3&4*cw6plwG>+5G z403$CXCPWgR)R2X{RtZBgLgLNEeaFLbq|cmD2O+fq!v7SbRl!kce#ga4j5of=RMSY zb-u2R+{@~$U^ z%gd^Svzg*zih$}#8lVP-M@N7j7TV8cgRL-bY{@cTyjVE1Oj5z5ZSG}phg(@&D)VNE z?!tweiD}HbTFbnL@}3Yl3;|y_ux>xHwdof7dmP&ee~ZzvtLwycYaUx3ld^P}30IX@ z98h~0~4K2?U>{B~yYf4_rHET40MBNuz zZ`=sZ>;TF$_~S^;C0DLrZv+=%E}12%os|+s>LJKLpoz_`8a*!Pui(=%3pp>e+8$&Q zRwRepMY_!^R%8AM6_?*VFGTae=ygd&NIQjgk=qYQ!|F11%rp3wNNWW#B6r;OE11*X zY#WV{gAcBXq%`5?zRb<-6DEPjB+CqdYv%{6&6uY(18|(Hz(uU!5rc*c_=x*n@ae7G zG$MuoWzyjz!NpyW_Vxb8wWzmRfzfQt&gQC%1^%U~+W)I4DFbiDgN7Tq!8FE`P&$12 zNYHU7-ZO3k*_95sd2{E=m8a9wJ-E*las*roOPuJ2xwj4xb2EJzyywTwK(Q6GXA9fM zbRBk|T=LMWZ5)2p_lPv~ttSHlYO}RVzZNIYt^d`H#$Yle7sg${g_Bm_5drT+2+HO4 z_Ms-xCUy%YOb#rs~C~ze` zJ%nCZ61fvF;l|*dst`dfe~IAnB-@m*1H#YDnO+J2;VRD=UzV5Y_F>A2ht^Q!08+r& ze_v7YNN4v=JTqWSqcNjLhAKdz14PH4k^exc;~0@4L0IAb_x6}xke`2r6vVbR92oo{ zVZbJ!o%9;F9u@*?oM^o!CLi~k6t~B)4&}(J1PdJp2MpZSdVz+td@L_?Vg*|OS0Tisb4NoGO zzhmZe=s^fOXpc`-5)02-*>bza^%k`Tf&}%?%cS!J;wIaYfQ+c}s4^L+qg&6sf1ljE zj*_0)3k6Iu8^*Y{qj%&+D%gB1cTj9JjH|!^OY+v z#%2!Pw2XAigHH5D4P#xqQygh2EJy#Q$_dk^wejnhyfq~N^1&MqNrQ8;yZB}J%pMur zohfQjm6BKlQK8>>40%>8Uye9?#Q5>~6s*9Ox=!-wKjbjTe*d6XhKyvld}g07g0?osn@PotEEO?)N7eyDEtgSsFIT!;a8 z?$X#L_Kds;w6Lv+BQ(fYK!B^eQukwyPND;*%*9;AY+N?ue4yMW&Z~IVP4J_&!JJfd28G z<5`O4HOGE%PQtf4s>G-pr# ziJ0>wu$;J82HmdUTRAw5@KoTf!LprA6S+hA620lnMLOQ-LNY}mxrC|~y9OHsq+A8a zj}*=LvpDb!+U|mGHDcqG&F?)cZbBud&7r0X)2XqUy+4!@=EJg0ICsq|-GOw99qNz^ znB);8uy13}B6Zc0&khH$tSBNTmXwrm)DptOp}`W)6d(NTlr~_ZxA5uhRYr^$p`+u$ ziex(B4@1)dT+DQSBo6;47hvT|m_wInQA>Kz6#(RIPFb}Nq|?qZbPFZA&|O+26*+>o z@pFKs6q4+f%_u5bKE||&ehP8b`Fzm|D5D z=c()=@HA-SnIAkJYosz}j2Tgk3@4OYefu6TFfyv9zj(v#V%r7x_<(_l2`d_$VM^-N zvqIS?{XS6z5fBWt7djT8s($^y#Cv_Q^3y zQ~vfET0n-*47<{TC-7u%WbI*eH0O)Zntf}>j4G#zr#Z2|fB!Z*H6boB(Ld%nKpZ_C9hy`g1a-J~yhx7x zGdOPuf8&$~cSb*P7xg1KSSk+=?v0i4!3Nafxa{7d^rN({r-tCNg4`m@x(syoId%JG zL2uw%`yRG}GEE_-(iXn|V+`cid53{iyjxQ%r zfI==@cvN0%aAn*(lJ;rb2#C9YRx8cSn4T};Nrx@)NwB7vd(Fh)y*u9(vZxPMNFOz)<>lR5V!Hj>6 z0v??NeHQ-gUp)HuJJdillExgs*rj|S#m@pmL#*v!@~*uisf4>Z@|a0d_{O|&J2U|fRL5Xuo?Z;O{MowLQnEzr5AVWBD!5uoHCta17Q z(5VBDC<`Y~ZU%bi?tJiDbx_y^ffFo@UKp76eW!@Lkm(3G3QDl-#HDcG6qP8auD9fh zt{itQ^V`tjYy)O=dg|oKfddCFU+aaPi4q8mJ!6U0H}D5JmCfKmF==_^04moVqX*gy zJ1Qq8=_!1r7LLn-3i^`0AF1j)ge$8kQz&n#5T1ff&(@>*j95?6VRGSoius-UcQDx} zbfLqlgQjD+VUDqHsBU1xA=ale{sW$3dG?cpTqI3|hn?HEb6l4caYC;!Fp}b=GZT3+ z!Byl!?|B1->7`NxDp;jdmLo%a$z1`_MlphACNV309#|170p`1R6ACenLvOmOzdqXKcqf_)pF9_z zws3peQVbzlYRYCdTw9bZ_qUhw_x`vm<>lZXSoG@E;_a2t@&ME6sst*-{rh?qC2(p4 z_wafX`f}MZC?k%m-R>bWqXX00?c-CF^no~4;M=w5dgtXs8OVJn3V?iYBpD_Ruivn6 zp_CMbvSIx`PA(tYYK*3Go48@Pw0qTYyy`xDV3zp3s>E7Tsb6=i)%M z0TM;sBJOYNS&(MI&YlNj9WE_cy7UB}Z0pvPxHy%hcgDxUI$o;}VEWCRhRW!7!xz)% zQ#(!1PTVh)F+Oc4dyaDTH(#&5Gv46Q{rl&cjg!jyPxWC$p<918otye8aaz>g0RY2I zfdQLL2HIpsDSXmI&;b8HTT19mF34&0TCCep-Fabtm29AXx+rWiU#PIuaWFi<&FuS* z6fuzc#}h>>JRCXjs1es<_JQO`FSN6ZQ9gchmV=(Gw6v1uIab{IAJDU%x(XCv)-11- zl&!wKL?hE;=3yHBZtl1stPw1gRY*^8%W z8_5(hC051)wwn9FNW|9QALqxGI+}xpbyM=SYyAhGf4}7hl^G#iDMmI8#(>Uv`~KPO-_BL-oP)3Y$uZmE>ah z@uD!KKJNrfqXT3XH%Q0*7KN4HL;j3~-+~1T=A|iz@7TI$l$}dY!vqWLR!%yDlg)At zRG}g}bm(Z}Xm#+@uiw6%OgLGx0ap+(gOh>a`3E;V?vgu2QIUb_ZdTSV7Qi5SUX}6V zg}MfC!J**d@%VV0k=DRWaA>)H`}Qs_6H`SVd7f&6y}pKEPdy~$oEeFRZ&6W+6M6@b zIc_;W$Sf85BQqmm%TH)^{4}V8WP4#?O$3C-PDvHFJW0RijVN$77S9%tq^}D`pET6j zp?|+DDVaKE%*CbsFRtTcSw;IFYxWvw8|kriN#DDr(a~qFuN>zw;3!I*yXo89#YOIr zV%FJs3ML~aOmUc=zAr0Vc+Kyn{g;SVmL2Z=QIXEe3hlhD>v-`21NLET3FVOTmF!x9&65TtSoB_#0iPmwR?}c%FP& zus)L6uEJP|kb*rpBC~m+_$pGuAj0N)|#4E zV^(%Po7d4OirjT?seQ=&iTzrSf0?eDbr{Oi#Sm}ri9kaa&&eF2&? zt5Awyhc1^Ls!Byg1vCOu4YdRaN1f{wyoUIdhtlu=3*o!}BIfgOkr2&}sGVzor?Yf- zu|Wg>v(34*{QqW~qwZ3*U2OLVi4MeE<3VZbM<$QZ3;-gfsM z5cwHlR(fjpSvwEm2F*t`eKXcI)@*xJ*g?7{J4* zIK^Jq_Qe3NtVEHkq1^i~!3Q>^KD$L9LjE(OJ4Rt-?!5 z-LH4uo%Q&suuERVe>g`P#0QSmHT-#~N}l*yUtjs1vJwg-r3u7t=u(DypgRKpIeXBX zM9Y2A(d=LTQRKK4j0uSfGcP^|(72Hv)v>_!_-9AdH)&ZOl0Z{aZD!U`us~Oq6e1g4 zdBxgr!2%?WYfv;j7XORkExMfHs3Bp`G9{2{??WTD?dR9!wJrmA%K&9lMI~ksIH4hO zxw7mMe7Jav^tP849_DC?VHr2|-p;U}3?Z0B{Rn*e@yx`{R>-{}TG1xK>FwjlMP#1? zT`8mLHm(gRai$(f23eeH08|5Pe6Nb8b+rHe)q->;Nmqm|O`|G1*x9E~Mr~J9eZp zP2<-FJNo-D7XU&8OIohp$k+k*PvEvJo8wjtZ@xrY2b=3FtAhe$1PPo-jT`8DR|`vy z7B9wUg8g4*120)H^3!&F z)u(@dZH6`OUZ87u$rQ8C2-o)~NVJYZh(GYCwA5nOtjLs%xe>xwG+6y)6sa;P3U2ut zc^eZ6e&(^xYoVzLq((>Ovh+slVb`(!o>HCU<*6gyK_j&M!w9)EwsmJOUMvQ_<)I@U z(%KgOOl`P7^h)^}C92YQLFmDr6%-_6-c(;s7?BwxwX2w0q$d||&QKPQIP?U25?&Wi&l+8Pi2;^W!Pc!xYaq)JS-44J1qX~ZkHGF06Bo(w%@YHPM)+|w+@~1XM|i<4|?YHWay+@9?3XM z;K{JpRm1c|!jq!Bz?Gff_1f1_PuSm4mX46=#S~n%DI~S|-x{ft_Q!i;2oZ_BkW9u5?n$7$7pX}=2Xfh;qYvjHjmG5RWuhZ5NDolGQ zzIx6K#^8Nq)G;zEh+b}Uk6FPY!!a6%3VlW?E9==#j>H8+3PeLpC9@aS=A`4o!uZXd z%09nZJOaqGW_ZxksgP(}f2dW4jXtDX9?!^@T`R|Gq$%6Kyr~dx=+$BrQ5_k6-t1#<9cflO!>}Ei}Dum6#A!S{g zQD3Cvyn<)hx;+0^6WD-cS(9lA7$`e(#7_7P(q^Z4HGLd;re$A0u-gHH2hY=klMw6V z*{~VrQDUOnCu^rqgYWXL=*e(aQ16Se$pSsb%9i?)2P%kk&-b@CL|C)}F$#iZ!iH}ayEN|%7m-sLouIh#isyne z%EN|D-s1V<#k9U@t}_Y?Wry(4=6U4Ij@xsv=O=qwiAQGuod{UO1nfVclHhnspWn)9 z<0w<$0G7X8Kk>o;6K!Ol6|HnsnJ9ax=t!Ib)g31SKugHajZJ4@tP^`VI++YskVTf) z^5=wR%<+{Qi2W7f zDfV2(^7ZLHgtZqv!>B zHDxa@_I3F-Cw6JTyR?T(;uQ}cRGK++(UQm$Dt7Ot_Y_yo3%wi>VcX(r|MG}g3Jhzr z)MM!O9(rdUR#Y-eZ+rga&c&?;@#g}i&64&{9Bf|{xL-0-W~6QDG^@)MA08X^^;|Vx zcjkcy5f!$E8;!^Ka^7BK;KIu&97F_`5Kta)CDE!1nT46z6Pu)y&+{Fgq9(dookqQ% zLrqH|#>;E#16dZUt^9a?{-5?1x)FM!;Y^e$rtjQY4N*3&Kt;Bxh2~bEL@~>n||p!6#A#@xO|^?;>3#-m9^HnH=OE!SHHMCO#W~E zw{NZ2&HnUBPjAbXu%+Vry#j7emDgENShz&*ZHh`mwUL-u!P|*`vyYB6Svh!DL*Ide zo*(M(Tt5mk&2>5X8`A?KhfC$*?oiQKJy+j$l*)45Xd{n<(V2se&B1Z1rrWzMH{cl6 z*3?{h{cw2c!$r5!u{dGch_og!N6k?ZKI|$w5c=DXm2S+~Bje-Sn&g5$m6~KpSBS}6 zbl=wET34$WzBd2!vxUx@tr|gRK4qWt5$)OQoL8?{+p=OUuF}Tz$lW6EH~zlrIPlvW zLrF<%Ydt;Zvd&GvpXY|79jNuY+*GsY`bv)Fw(3W(Pj&AdHOZ-JdqR8dQ&rjivnNcb z|B?{a`IJU<@n?no%G$5ggkxqPsDSk}_olb80wF}sZo$CpXCsvIb1yWPY$$1qySHw2 z%|=Sbw{Mk4&emyP>C#K5RgZ1+TZVu9l>ho#SlgPE(`D6Ga&mL@uI~C55EOY^L9 zCdMV)^VaE>V{|9eFJW%g@W&Dp=5d)sbjhPKFy2cI10R-ikc7P+Xa}JUr(EtNGClOM z>j>(w_U$n-hJz(bZm)3pcuG6w(qT=lSXcB`&--875D=IjoxE4#)7z<4xqFf!vI9O_wp^Hh>f-B-&-b6v8QG=FqNVW@_NS~L{nsJaTivt8 zUSExA)(1}iAR2nVv2=}@L)wfOO@gy=52ECmth7zWM}egtPv$!t8ahcRCK;=!`5!#! zS^6Y9vgD@Wf+L@vwHn>XJ!5_HWPRQ6B}tpreFw~#G9+}O;<){m_bSR~r*4g_+IDhg zpx%+kF$sIRjMfesGOfj^3}>g$aG&+s#gEpNq_u_xX}vwWSopfURvTz2wlq70Xn2p; zu&Y{(|8{9zkm}<%r{CTRUlNO4yxmP%J;2JUZC6w4FHFwA^*cLmoSt6kuGuF~wvSHV zyl;q3TYd6T87UC-`nJ~ezSGigj~CrO)w5?sy&aUt!-p?8nC__E%hK2UMIqXL zdN~TA69X|soOf@vE!NC`asJkn=JMXD+x(t|L8n%N4rSY5 zU-xU|`fo;```FmzpVV-!QywU{C~Vq`+keYXhKvytd-U|+UB5zQzwgKt=b)PYa#TcGA!C$1h*uTI2>%a#O@~+yo8-BLG_2otgRJ`!Nr;IsWkl_)s5KKD=>+(TM*2>*^xbJTzExd}+M$ z&@iLFK3=T9*So&qrL3&px@X3giUhmjV%fp-_V!R{Y9dWtUDHE;lJ3fJE?@MWJ{gy$ z3GvRkW#WyS&%e`H$_YviICRqFjxZWo-=#Yh;*qBx@h5t4 z@7}o$Lp>U*jysoks$^C)fE8xI9KvR=8q=5g`D4b7b7zS_T~P8&b2y}IHieu3BXIPW zWg_;o&COeXXpPI(@>~>jW`W-QGR@qNgXLo!Oq<(&8>tS}iHbLmad_E2b~c~B@sg10 zDklVkB0;LIOer$>pCXxyle0tqE0B3aP{~bs3m~#q-XQMrhsQcpW$>uL0VwGqK;k0~ zHKF(IMb8c+1K3pIuvajHQ%$O0LIvKJBIwVJ%u-Xyt0g~{@pzWk&JLWRh<)yz7 zwN)#y{L%AKjH3AeAhEu&O-*$GI&|JB4izI{qt6SQ7Amkp38HkAKx@EdND24hEPnNU z5C1s*$-1u9L&!lPAZS2PxwhE46ha8|^_ZJhd` zXA~-wGx_!^T3SnJp=r&{Bqpe!u%^DeR_cD#MIqSl%I`(u!WUTNy4vd&T$`zvT5N6xtk63j6El#dERYhb%tUMt z%Gv3@I!z-dNPh5Cp_Zrd#LFkZMUOu4?0GGNW#u)i0c$X(3wr8%;D9>pl>Gdv*Vhu* z&Iq~5(|($3je>&0Y7QJ`1eJL9z~cxSyL<~}wfcIbg>Q?C%~)!1uk4n4Ysh~O#yXTy z0D>{2hvbF+7tyX{`hx!ijHT_c4q-gRDbb%btDx~ZC>yv3Gm#R25B>z3WI#qz;Gidh z@A#ZKtkr#Lt*}>l`*=6$w+n1+K0%IXrp9E^hK$Tn25?oKk0$;eki4TVaQ0t)VLq`n z3pBfI%MIO)>SATE_kx3%I0=gMi}!4jgl!vosKZ+4Np;p#Q}*rW$>S`U9*nI{SG~(Ce-J;RoC;Izfqv8@sTT*sXT6!l-@kf6u4c z9Qtc>T#`lz8FlnhKoY?H&R+`WyY-qf#Lov{reV_EF1D@)qJx4Ms%fk+ zrLN(c{DKJqdGLxP-LRZlYY(yE7E|%+#_^e9bR5?jM>`dtT$rUVk6<_{^;jd2{+7-KcRx zyA%#Q|D);NzJjt^*Q^Tmq-K2fkvLnXsOY%zO-Tu-@eK!!XB-<3mK!V=lGS+Q_8Gd5 zO?%_lFJQS@=@WTwAXr1*-32J_=r}h02;*`BYLhB51w12o38EJ!Jb4q)`~DXI+6AFM zeLVk>FxE8a!o~l9b#+z#$%i?&=->G;g;kRhmtBIidcud%@5MnEQ{9@j&_Bb`Ld68x zELfLz^V17&R19(ni`Yz|KYq!loV_?F=Uho^Uhh&aIvO;^tP-BkIgcS)VYzO3Ri577%tBH&mb&wVh7Fsrd%w45;$|$e zAzuhfPFuG1r&$Sa7MCuxcgh1b?U@G78^*plDf2Y9<%zeT3yc{9+{iq530VT{calaq zOMzxx&E`DzOq=o#md@4R)sq&`77Sp8a?sPhC5ZtC_6W>MKwWSI8k4{`#}rIVOl&S( zOzpOX;zy4swg5A}j4eBN?woK6vy*$EezigP&AgoZSnYSf;?L9tS$7S>4Z0RIS}Wg@ zkMa=aMz=yYQWxl&UYhw!-QG+6-3uudY##PsN{ zAmdv<`0l5}53C4Ka|;(zgB`BzA@*g{2uqxVKCJ6~Fohk+v-BAKwFDwpxsjUMPgd5) zy@g8~;g#Al^E6tClOy5XcYwqp|D^7OZ^;|hI2lFBvSp1RMpYXl?f)H>HgituXS1!( zr}%C>{7h-^yZCF^u$fu@p|Z8VY^CPp|Lfbue%Up{rDB@CuhFVH+gQi+XThNcC*Pb3 z;E4_mow~kQQ@zK?sQ*Bp^CiTl@BafcF9OJV`}QrPoA`og`<*`(JkFdk7SqXil$GU- z7(!JQ)mbw9&D>nJkN4GxeDM19%_l{>b$_o{`+ejMu`)GWIWK$6tZiTYj~*QsQM_Q_ z+IbiO5jQ}`ft2v_J&}7eDJqx|b@|O&I z2BLvA((_Ds-gTeL4-!v0lbw;FIC0{#`a9c3+#(0d{%KVW9mbKSrXKz(BSTC%Zuu}RIsv~KI(CT(XRs@oV~eve4o8y;qMw(tyf=D zLKyrUbQ*u4Y#ZRp_$SR^_Y8-q{4kiK8oczwrIXyqONz&CQ;ZcA7lS56K1;9YEV5g5 z$$C@i!mY0UZ6_N>`V?jDPj@e4ufm83h>ZtU&AmHUO{R0~lyM2u?2{Wp{%mBT{usC8 z%tWW?h-g)gs@lj=h1ZXr0|T`fueD*!y{weDoPpb<-%9>yui9Z@JoTngmJl73Qa#$! z-q~k0yZx=cO(4zQawDE_$l+bau1szE4+MMlJ)Oon1wJsJz7KmFo_$_60VDqTX6vsF zI_~DQFwMtDG$Ux`xL-WJdYU{2QF^Q_Y#SI~b`$8BE#{s#@ zXs)xO;<2f1H!kqEkFQsz0u(izX0Xh=Y=#mwr7mMir@{^;R)R%4qY2cH49ucBAB|w* z=N%SA>#>QOMfQ+hW%chIrdJeHe>hCZJ%bZSqI%AFNQ!;Ifxr%}J~rK}pEZ|r{Z5}b z^Og}P3ZcfM(){Ot!PhHXT{L#o+bUh$kbFj2`Bo@Ch;|MRct)n)y!oSlr?$GMstA0o z`wg!vNdJ9trx5dIai%!mxN1_0f{vTWq?%d%91{^NL_d zt7Mf_L=6(;GM2AiVUQM>m=fD#AmbX4HpY_Psj1C`TLwI(45A@=xTmfAQyd0 zRO%nDw_pTIdY7~LwdKXQ18Cq-M8X;5LNQ-NH%OqOkb}JxkZr>dGbzPVhRNhwvOB6V zv{Av2-T$`;Qhip0QkYO!snCRBvQ`n?L(I_iZ+yUcTq&3Q4j!EB(RK^JJ`N~J3O>BB zFDSh4j)v;AF+$uqh@B;ZzZ|!0M_ri#16UmN0R@YKS+;+k+;;pzxtRX#o!)AZ7^jKNN(JqYQgyMCEN$)SivU(IWj&CR*{FJIn# z{OAPOA`p=Az7WJs+$TJouzR9lXliaQR7sf(cz0@&(}<4dCdO$PO#*$HP^nv5Lg679 z<6(G>l9MvRXTq}f@3G$>&m9ssfTGv-xQ#&V_Z-;z3FVO>-eUjXk2>mBxF$=!t3GL8 zecVAWcFLx1XGdFM1FDg9ZN^dz9fOY^Jx9gRRK2{D$k`iBmC<3i|2`V346XVPsQb=z z8TAb7&pgExlV;e`eW4a*rWrd$LDJgmu@CZ(?G$FqAJ#>(cS#GVJTdW|-%z2;V^&M^ z0JG$Zuf%k5mT~92oTx9lHs|?sG!3#v3Q#H)-Tf1v-P@NdDo84dikh&qN_DObytJk% zziapIR5606+(OX3Lw`IXr!{B)!cLF+3GB$-Bc``(J?HXjrK}wL9HS{D>HVe`?r~d) z92xd{Ats(QVeXd9QeYr__*=P?+jg~Cl$dAj5)pNfdT(t{GM==*NBR`pvYYwl*76U6 z=;OR}Ok_nG)j9-2|#>Zr4mBmNTmqA{hBKtp|HHG3eN$i>^c zKUxJT1eqo+k2Z1j>quB=Ry94un%3FB{Pr~?C)HA(1E@HF*i6?0wVqzS4Y@mg&=pBm zM$2hs%+S3wq^rp89l9J_ijw>HJ$=9-B!^BL`(+cqc;TAvVr+`hT{aaWT*H3P#D&Y? z3H|6cA)SOI2l$HYq6S9PfPcKnt5JuCOeKA^={ZB}BNi<8hH&R=#sm&KHu@5^DZ(4w z#{svKhvno){+js$k5_=jCNBJit4MAEE<|HX51=g#zT zK{qiS!kx7Cczer_9KzFnu|K~iO^u(Dhpa=%pd?6+ww3N08O4(Vbpm&JhYPtKZ}#rc zUeClls%6GsFe;QID9}ljm|ucN!5Do>GspLqQ=8uLVhk9^AO3R< zL;B4dxPA@?{{Wg}q2byKA4MQNO`Z&0=E*2x7%$r$YHP1Pew3XpKfy5=pr2|Tk+y5?e}Fh7_Sgz zezhDdEN1Et+|11xeGoeszplS)l^^~XE(-H! zGB*XP05S$Fe*O+3$hvj3s}q;^$k%+Q8gEvFaw=;6sc9zVbzw2){wg#YRO?_;phE<1 z5g{A!^0_NVZ0GgAqU!!4%)1ufn1t8XzWXp9IHK_ijJN z@(6JX(5-VPi7!wPAU0!Kkt4Tt4ZF6@%CGe+g-Ky8zi~}KSXlMv&+DwMU*L@ceH_*W zbPmkwf1qW#B00Z%Rg3rKfo<7K!_u!;wFj*_YVvu-hBG>=NoN9_i;A0~*_Nl5%ms}R z{ivL*EJC}#4b5zqwvR3R+C-2k(vqx7XIjUcPDtJ%4A zt z^Ezu`(@jEJb5+tIh6u`o_v>>K3fg0$qA<;QSrdf5;9hpNZ^#5SHJ0Ii-f{!@k$Bjz zrx%fhb3-TV@a+D)$mnQoBuG1!x;E9VwYMLmc%GV=QabR-gO$J*46!4kNEjQ}u8jo2 z#jC!5e}SHXnv2ch;O2j4CX~+C0Jzd9K@nmL6$*wooH#aPz4z(P8cpX87azKP)d;Wl2@~q9-3K(9g7sd3Hg~ z&|yv~j)9fq%~srdeQ~?RYrT#?JMCI4HgvVY*{8OgecB20xr|*N^w%ZgI3(;YiMWvA zVLson%I0N+xxV@Z@myiv_~Jgi1a^>ANOXzI$F?QO{cinPDako3$?1|&; zRnB6vsWF9SN=j4|wnxL|j%+7P>dzm$EOGZ+WpMyE!};t${g5O`<(M+a=u(JYSTj~+ zwOqd;t9=}T!MNlOC9ZH>)$osB1H~G#Ucb)TyC;BG?mww`Xd(+FsYedv|PzmQ_u4`g}xrd~(lM zSN14ht`QlgtsN9{Vd@T&qSS=JW6!Wkj{JFfnhMvi|vh|m0sPk&*BjP%LiId0oG)m@(< ze)nHofX5*C_4_SFH~;gRSS(+Fld>-79hX))8ppl}> z6;ot5>F7FSdKb)jLqlpM>rb}d?RDsu+) z&dXXac#oFSt=g`C+Ep-US01l!#7-OoWhGB`zt}rCJeT)g&MD)AC9x=`cC?c^LJdke z@_JPm^BjNI)TQ0{JX^m`x^s5UF~kqLkC0|YoICer@+_|sD;cd@9hdDaZdB#Cw9OZl z67A~ZTPh+uF6i~S*}d(XK^=MMu2TY-$Vdzvex>glu-DFe6c{dsWNsQC1}k+Zk`(*< zx=b2DYZ?Bw;QBy!$v_jS^tfcRsWX4hn7R6Cca`%6Ls#Q0$apnxfOXTX2q+jg+%`xF1t$KkcgV+PBK$1K?g{}ekp)mH| zHu%$`rAt$;T)8+^XY}X;AuMeQa8wepy|C16H$jKXgfpd)XywaZn1wflf+ zGmWa}Ldo{uF$B?;xc<8JN*vCQR|~rw#_^CrhrKF@Q#zi(n@9dkU48AT(Ha)&3y)rkP!Ar3j%Y|l;Gxcb1}602dF@g4WqcJuqA zPA<3r8W|Zyvu!7C#WX3W0v*>~>~c;@($Jb}dABQ{=74A5Qbya0wRQGPPh>z{{MXmF zw@>YO7D)64#Z(UU+W@b|ZCY5L@o3r5bmhs>E+ zfa5+u&4Ho)^rU)vK`{aPk6ciRmtt*!*adGC`dUM-rl+?PGcT(4l$2y(cs`19a>2}r zsgU=LWv)+I)}H|)$C8r0N`rHG9i8sxb2qMEf7ktPyC-?04>^>ok7o%JoI`!sF*ZO( z=Ep4UB+F~BHqCdmuiU#+H2gtrQwt(XHr0Uz;XQ?s|ESTUfexTcz9*2r@c-rMj{_$W z$?xrjt1>;k06KXA#PVQtkbGEk_m1p~^Wl48C?zf-VV5=95Xgd>CwAKGQL>9<2(R&N zx5nduUOV0E7$*W+*jl<|Poy_NaKg!L+}jbLo9E9Pe;G@xKvtmgTRwQCx_T|y%Cism zuSbs_r0o~fUq}RQUc#|I{@bkNG z$fj?c_FEF1<qjym5yd~n870!oO^ zj`~q(S;(Rs*7@_}n5QD{Bjh^D%TEe<#(EgY|9{rlBMU_ap+6nxn>z!}=pKD$nBT5GIV@O4Hks z^zkdG40x0XT&%WG-~3(=Q7%1azPz!$5LLVO7~s3FMCrxuy?vA|L9GT%j8`P<5lwhi zO5Rm~1rgEi^4snz4{UNso9=w*8(etZZ9PYy#R-GYQ&C~CtxuHg|2Pk8&y6$>sXJb@ zb+^=zA#cZ4-#hcCF^r9g?A-nM9~gJ_=znflAN$YU?zGJ^&=SX$25CT=@=%8;A~4`!L0hkjSc zF9YMBGK9G9$G<45sLUtmz_1to51kznH|J=7ISw2>U)0}TFR(mCg+8%l^!a_$73hW8 zm?l*+p;N$W`h;z3I2ZVzsdN9j;P- z=pS?}Skzqq|BV}aaPBq{IUGmwNt4uerfq#GZrq)d*RF)pwi?d4W`~7*&ULR zfs2r+iLq_cmXB_@xGssEP}orC>G@Z${?AZ!YiSIcEBZL6y}rKkTyZSh$M)VU>!XXP ztFCU^m{C^)0_=>XRxNqJ^18v3o%MeIAMJhVKh$m5{++f-B~eMXCKZt=$ugFV2}NWb zvZs)J%}z16$x_KOwz8BW`ylI7_AFx=OEK1LBg-`QZJx9H_xlT;*U#tU4KI9VuJ8A{ zuH!t;<2;U4+i^U~(+8p`i=0OGkeNkIWkJf9J^Th8SL)+qCP_H?-zR$7Fkr-b;2phg^DMJbqhbO0M%?QoUTH|s}S(!tajz)DLkuRfc*$!2B2)8s@4^pZwq0>7%oeN9o z2Xa1yl9*ZK(_X!Tw)o!(V)-|GY;56EIc63X0S|vws3m;s>DFdGOh-K-pO)@^F!}v& zRPcM$8Gb-D8=DK2{wQg2Iw)%SddV`-!0{cfe%IF*I}?48C;qZazR!2+&S!puP6SpoO`fOg{aquPx}o8Z!b0Kkzd76&qK7-qKn3tNr^|Y2$qEge_7aK3>0keckscqxQ&g4i2b6vdSDzIyhtlyHB64&+_=bi&-J4!A1qAqlL0x)AhK%`B7iiw`%6*5)_fdEn zO6YS9*3JW9n0IVz&DUcwA7}z6%ZXJ$m1-K%n(C2;pO;i@_aauH#|WYjV4I4nt0NaK zYu_~4$-Qd%DTf3CS`HJ7#Dbh0TiQ4te1gC>2vQ@V3M??Q-oK9<4JJbyn{)CogOz`k z4lf=cALU4~>FEhkQDHr)`HzYSXRAFIJAx0cL1X$1^o0^nt0BUl zZ?$$f+PW`?z>}cU6o{r89p2|BExn-_9LkCYz#=PWV%_Ep(^^a`_jP)@ z7#rc^==`w{30YajF_E$Yq6J^ZoWXzXBwygWw`a}tN+}U1=ZMQkA7k|zjH;e+CJ4h| zwI3*K5y;l~yt3jmWfpZYP_sG>>c3ogst$now*O9TD#|Y3Xszy}&hFm_0?gl^6}iWD zTSrUF*~2lg^z%crMHY1t!dSrY-^1VgB1!@yAx64kMbV9IpH=v4y~dVg$v`jx&DdFOi}PH z30Zg=3B6D#SuAa3z%0y}DhWfRj&^pHJ}ct`164<>r`7J1PA%%kfcr6^p_i)5V|Bg? z#2VZS0Euww!KwpmS>YoAmRH|@c&C@pgF+5xYo^(c{jN3#L`Aj(yBs)IKu>-Ou`fSg zIAHxN$Vxx2z9UYZV?}^U5h~u|5;JRSA}H-Z?*?_h$g+!w5OR!~ELregV<$T2z#(L1 zr5tg~aTn}X8JlzGYJQw<9U3Zjv%XuYqZ$jomj3jp;PoMausXvESEXzX6JFWRSZ!@} zryCbvBw#;itw7!3JJWd_oxao~!0pr5MDdphtD`Lq-1cO(34!A(aL1#(w)X4l{8p~# zEy&r+zIrk?1h+2&lYtkX?&iT&fN>iFIW-lpE1`;b85hR`FB9^-0)suZB~eIblL=Yh z@F;U#a-e+iX-jN2km@s#xI$32bGclDwy~9Igqx--6EX{!K@dDSR`i}g_%+!&{p?vF zbI3QK(OJ7NKxXc<$ETI$Ri|anco}C!)0qg);2y;_!oRZi!VvD{01XS=ab&{EXtlQmHw8 zGxvlVr|HLdWE#F`BtmbS4Gp6MSpWAG8=v`ARxbz$3=C>!Ug97Gz!AwOU(NWfd1RPK zs(={w>5e2HpP3G9c4Fd(&d#3QU1Uzq{A|ZL3Hg9FN|B|G;{wWKrJ$`%xqo0?$pf2@ z0cuq}`36dX(eqAitfFGE(!J}9WXF4*>??5go=d;ywfg%u?9fX(R^6!~6(3x#vax|~ z`mg&sskKMF(bw$rDq_lMhyPO%G z{(jNhOLg{6i*Hs|U?%eq_?7&jD|pQ3m>3vz7G;L6>m`V)Bqkf#+PLTEj5jozrpayj z8Vx#qxW&zq?GvJpE!8&y?OP0~Pc310sAe$m%RiZw`r!U?7ANcT`epJ~2gN@-EKJhl z=y{11a4`cp)(^5b2JnTU;n&G)v@dJmmyKgJF{z<~p33()`kMHgp4dYMQ1=ajYy=0K`uc(DYR#?H{mZ{UYI@3C%wWkHscz{e{}xIE z@t`oe`8kK?|>NV%h}t9$Ln4Y&j|atGZSBD_cZCT_|p zLpZx4NZCFG-D0wcZ?)4=| zH&}?~6#v>}Jy$+*-wIC7A~;2?LCOJV{&n-GS~fGY1j31DH^r>l-j0q=keLU|tNiKh ziExHnfrFR~RH~N^#CBR@!_v~WjvPG*bfTiq+Cp+_d+T?hyLWuV0(XnyNVto?7EhY) zNqrv9#%@VUk)E0=+nc&p+x)Xs0X&WfCRHqO479g30u^JZQ!)o9nz;CzE}p1x92$wl zC}sAH)hPnf&CMxGmh}$J%@ue(>6VGXB6V zk z2n)v_A?yyLEiKvkGcCr(khQf$L`aaNQ}MTNLGaTURU+-Rlm%m4%`Z<~y{bjNnMoG$ zdm!m(JXq^Lk#7}Q}6VldBxGEH35-P z-`_PYu@cEbv9LqSV3xW%L};;VjFdjcI|TZcW0mYzHS|t8wI?+Iw2F>CJkxQGqN_Iu zXp$Y>-J=65gn^|-Ag!z{bJl2_3IXSkzZQu-HqRSWp)`~=om`&P$lE<#6VAlM0^6*+ z;nBn=!@~f=ZAMHTsN}^VN(~%AU`?a|>j+b~Wfm4#5Yy>sX$6ee7r3|tw&P163M97B z+)E(-2`7*legO8s1!0430Z+)ybr^bELV|*4MMMB|2_fs7o3pB`?bjShfKv}1+hwTK zWoH?~$oD~S?-1aRx3}q$j=W425*r$a9$TJeueUpO;+Mp^ffVWID$#_uPmVl* zYnKKYptZFE{htic2+)VX)kiyc%!i8;58baIpBu_BCy32+UHRkc>70mie(REX|6RlE z%<_5MLo4}$;jIhe^h+N-ERi?aL5$RvyyjqRyj9mUcU#r^m=8yjp;rOIG2 z4HuU#*vk;J_3@n^9dA-unS*-)E}qq9T=R_soNvZ-FSCIAfzsz_rAD?q`a?UP4d>{*9$Z!JnE?!MfyVglXaRO8&cT=aR zl_Jv87Jz?HPq;hDzo~OuprN`y&I?9^O)ZbRM2YsMmE?Dumjof%#c8-3)MT?WGb=M) zI(}|`%F30h=Utx+pEacq*PzInG_~H(J=n9XUfvZkJa&{^tdnhY5p5|W11&1LR$?uR zHG^PCJve456s!uSUUJ;+0t`Zt`_~eHP5L<)D4d3W;T*T^ba;Q~<@(-HYHzZB{?O8h zsJWc2?yoazYfMOtVtPB^P209=_e<4d~Kb~nimym%ALXAcf;F`SU2^bMo3PbEcods~^x%_NWp09&P@5eq&I zsK?#QRvXJx61HRmkvvD(9Wb~Cy(Up4ATAC?#XVH2nc@AP-Ki}15Ahbbehr%a`&#Hb z7}xl)Q(R6@Z?3EZ#|A#i|4u{Q?X|vS%E^f@vdo)pZMb*m&UbnFFuOJw1hlfSs7>fs zj5IO=jq==?GpQc#yPO~YB~A0m&Ondx?YrLg=4RZmeH*!81m={Y*x4-s;@l%mkJ5x{ zY636fM)!>OT1eqTx#azHy}X)tcTjils+2qAsv>~K@LXIy&yY6_p#qqIvm)y~qzm@t zo5aV(RXC5uT}>go(SFOq7reg>oztJa{TH7BM<`ChE=frC!v+{<8#-KFK+{* ziVNSK73H4*H@4e{4q;15%z$?<4LPt1>H#R`Zrq5Cirgg*Qqz^Hic3cJ?f0L$y)e=E z0}xYVqp6jZA{b#V&igmFJT9);5kysi`r;Ak%`x!Q94?s#bs`&O_B0jvka8yhcC_P2 zts+9&-Nw_vfED@hYtZCr&xMlen!xDraBV#Y#_GJV^>iR*tu$b#5AM8K=0;Zd1bg<> zZf+j9fBz>`l!k_)P`aMQK{m&&p`&}=hG%4o0-d2|HuBc4e*yOb>=A789QX`|wNr{IQ9r!AY97DC456ITU(x$g5daf^VQX>Hw z9}L`h(svSx9|zkf1^Oe685h)y@3Cs6ZkoVel$IWwYOjxo_!G?|Vedc$a%vVX zLwA+nKCmX5f{4Gzk1w^f9FpZNP~*6((zIV;yYK*In`&Wh?ls%(;p7yPm9_rrRfZ$Q zJz%rNa^ugN&&K+EIeK9HpkNu4 ze=jQ`wkM-Cfds`qlvdEBC@`E@_(k|I7IP}WGzGep5KLKVsj91?p=W6LSXp_qJvsck zX!nzU{$c9AjZxIi*4Ti~aDhP)1eo3BS5D-UX5;4Knx|HxL0~Xc0Xw&J!*BO{9KEhi ziJOPxlgXBwM#mt~Ab_v5G#Blt6c{u516GajHDF|wTAmXB`UKI7_L}MmzB0FZV@p@& zvS&xdn%W&ylwJ+~j0SnWhjXGD4;ebY0GjHX%)pwvBUS+B++QaT-T05d`yyphNzgrZ zI6mzOTR287UJAb2Y)@+Z6_eh4lY>Abjsz-9Oq8s2BKhEj0}xl`-gOS=Tw!cB5?dFF z2kH-d&!&gSczY({k+Jd6J|;zz@@e=V5fQGo%Y~$Inh=-#ulpdcdqd(d8~0+!H<1aV z$cNkO;U5nCN05%H6)iI(ky!*n)|2Ban;v~Da}W^Kp1xxDEF#7*&zG_IkFv7*~(ElSU x-wk*jvuKU$|L?bdwD)2EkJkU+w?e3lf0pgOa6h=6 pq = new PriorityQueue(); + pq.add(new Employee(1L, "AAA", LocalDate.now())); + pq.add(new Employee(4L, "BBB", LocalDate.now())); + pq.add(new Employee(3L, "DDD", LocalDate.now())); + pq.add(new Employee(7L, "GGG", LocalDate.now())); + pq.add(new Employee(2L, "CCC", LocalDate.now())); + + while (true) { + Employee head = pq.poll(); + System.out.println(head); + if (head == null) { + return; + } + } + } + +``` + +输出 + +``` +Employee [id=1, name=AAA, dob=2021-12-22] +Employee [id=2, name=CCC, dob=2021-12-22] +Employee [id=3, name=DDD, dob=2021-12-22] +Employee [id=4, name=BBB, dob=2021-12-22] +Employee [id=7, name=GGG, dob=2021-12-22] +``` + + +如下,使用 PriorityQueue实现的 top-K 大问题,实现如下: + +```Java +/** + * 小根堆实现 + */ + public static int findMaxK(int[] nums, int k) { + PriorityQueue pq = new PriorityQueue<>(k, (a, b) -> (a-b) ); + + for (int i = 0; i +``` ## 判断字符串是否是回文 diff --git a/9 Algorithms Job Interview/1.1 字符串-查找.md b/9 Algorithms Job Interview/1.1 字符串-查找.md index 7618a01..dc80de2 100644 --- a/9 Algorithms Job Interview/1.1 字符串-查找.md +++ b/9 Algorithms Job Interview/1.1 字符串-查找.md @@ -27,11 +27,14 @@ char char_first_appear_once(const unsigned char *source){ int hash[256]={0}; char *tmp = source; if (tmp == NULL) return '\0'; + + //第一次建立hash表 key为字符,value为出现次数 while(*tmp != '\0'){ hash[*tmp]++; tmp++; } + //第二次扫描找到第一个value为1的key tmp = source; while(*tmp != '\0'){ if (hash[*tmp] == 1) return *tmp; @@ -151,30 +154,6 @@ int lengthOfLongestSubstring(string s) { - -## 最长公共子串问题 - -请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。 - -例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串,则输出它们的长度4,并打印任意一个子串。 - -``` -int longest_common_subsequence(const char *s1,const char *s2, char *common) -``` - -分析:求最长公共子串(Longest Common Subsequence,LCS)是一道非常经典的动态规划题,因此一些重视算法的公司像MicroStrategy都把它当作面试题。如"abccade","dgcadde"的最大子串为"cad" - - - -实例代码: - -``` -int longest_common_subsequence(const char *s1,const char *s2, char *common){ - -} -``` - - ## 对称子字符串的最大长度 (最长回文子串) 题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。 @@ -228,6 +207,40 @@ int max_symmetrical_char_length(const char *scr){ ``` +## 最小覆盖子串 + +(难度 hard) `滑动窗口` + +给定 字符串 s, t ; 在字符串 s 里找出 包含 t 所有字母的最小子串 +eg: s = "ADOBECODEBANC" t = "ABC" 输出: "BANC" + + + + + + +## 最长公共子串问题 + +请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。 + +例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串,则输出它们的长度4,并打印任意一个子串。 + +``` +int longest_common_subsequence(const char *s1,const char *s2, char *common) +``` + +分析:求最长公共子串(Longest Common Subsequence,LCS)是一道非常经典的动态规划题,因此一些重视算法的公司像MicroStrategy都把它当作面试题。如"abccade","dgcadde"的最大子串为"cad" + + + +实例代码: + +``` +int longest_common_subsequence(const char *s1,const char *s2, char *common){ + +} +``` + ## 求最大连续递增数字子串 diff --git a/9 Algorithms Job Interview/1.3 字符串-修改.md b/9 Algorithms Job Interview/1.3 字符串-修改.md index 4b18a11..0fcf775 100644 --- a/9 Algorithms Job Interview/1.3 字符串-修改.md +++ b/9 Algorithms Job Interview/1.3 字符串-修改.md @@ -79,22 +79,6 @@ char *revert_by_word(char *source){ 用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。 -## 左旋转字符串 - ->字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 - -如把`字符串abcdef`左旋转2位得到`字符串cdefab` 。请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。 - -``` -char *left_rotate(char *str,int offset){ - -} -``` - -思路: 我们可以abcdef分成两部分,ab和cdef,内部逆序以后,整体再次逆序,就可以得到想要的结果了。 -也就是跟上面的问题是同样的问题。 - - ## 替换空格 @@ -138,6 +122,23 @@ char *replace_blank(char *source){ ``` +## 左旋转字符串 + +>字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 + +如把`字符串abcdef`左旋转2位得到`字符串cdefab` 。请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。 + +``` +char *left_rotate(char *str,int offset){ + +} +``` + +思路: 我们可以abcdef分成两部分,ab和cdef,内部逆序以后,整体再次逆序,就可以得到想要的结果了。 +也就是跟上面的问题是同样的问题。 + + + ## 字符串原地压缩 diff --git a/9 Algorithms Job Interview/1.4 字符串-排序.md b/9 Algorithms Job Interview/1.4 字符串-排序.md index 9dd1338..9bc9900 100644 --- a/9 Algorithms Job Interview/1.4 字符串-排序.md +++ b/9 Algorithms Job Interview/1.4 字符串-排序.md @@ -2,7 +2,6 @@ - ## 小写字母排在大写字母的前面 有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在大写字母的前面(大写或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法 c语言函数原型: diff --git a/9 Algorithms Job Interview/5.4 数列-查找.md b/9 Algorithms Job Interview/5.4 数列-查找.md index ac9bd9b..24cf68b 100644 --- a/9 Algorithms Job Interview/5.4 数列-查找.md +++ b/9 Algorithms Job Interview/5.4 数列-查找.md @@ -119,6 +119,32 @@ int topK(int * a, int length, int k) +```Java +/** + * 小根堆实现 + */ + public static int findMaxK(int[] nums, int k) { + PriorityQueue pq = new PriorityQueue<>(k, (a, b) -> (a-b) ); + + for (int i = 0; i window = new HashMap(); + while (right < s.length) { Character c = s[right];