From 4478ad6676705899ca23d85dc60646ec63948651 Mon Sep 17 00:00:00 2001 From: hfiref0x Date: Sun, 20 Jan 2019 12:51:09 +0700 Subject: [PATCH] 1.7.1 Implement #10, "Notification callbacks" dialog renamed to "System callbacks". --- Compiled/WinObjEx64.chm | Bin 24457 -> 24537 bytes Compiled/WinObjEx64.exe | Bin 547328 -> 549376 bytes Source/CHANGELOG.txt | 3 +- Source/FILELIST.txt | 1 + Source/WinObjEx64/Resource.rc | Bin 122012 -> 122012 bytes Source/WinObjEx64/WinObjEx64.vcxproj | 3 + Source/WinObjEx64/WinObjEx64.vcxproj.filters | 3 + Source/WinObjEx64/extras/extrasCallbacks.c | 624 ++++++++++++++++--- Source/WinObjEx64/kldbg.c | 223 +++++-- Source/WinObjEx64/kldbg.h | 12 +- Source/WinObjEx64/kldbg_patterns.h | 104 ++++ Source/WinObjEx64/main.c | 6 +- Source/WinObjEx64/ntos/ntos.h | 28 +- Source/WinObjEx64/ui.h | 8 +- WinObjEx64.sha256 | 27 +- 15 files changed, 859 insertions(+), 183 deletions(-) create mode 100644 Source/WinObjEx64/kldbg_patterns.h diff --git a/Compiled/WinObjEx64.chm b/Compiled/WinObjEx64.chm index 34d8f3279af21254745dcd1251ae4934ca49c3d6..9ed21fc3b48eed00ca45be62dd6e8630c2058a9e 100644 GIT binary patch delta 16397 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 b_RVl=7aniEwz2yw|F=H>edI>M_wo8aC&X@v delta 16317 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 diff --git a/Compiled/WinObjEx64.exe b/Compiled/WinObjEx64.exe index 4005dcbe120020aea7bbb87cd947af7b9411bc4f..966d428b233537ac871a1e2e8f1ff0e467bd0264 100644 GIT binary patch delta 109610 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

%GAm9^~bpH`ts1?KnskZ^r9 zyZt;uw`(=r;b{ydb`5J-)xX--UrUe?>frWFCdEx7NOwR?FOIwDbK0x8=D=Y`<&OVm z&>FV*FGJ`IvBVxdfKtDZSAeRJ=w&nF^K2En{Z~z)zlpj0EqcyWQK=>t^mldJ06a

9z#o*(EQ?rqZPKkw^0l5JI&a(7Xh}B^yJV5gQ+5p z#=}838VTfppsf@fLppT7H>Fe4hRe`czC}4{;fYE8EJ2T@_$u&`upQh41fINFaU~}> zfX|PYU#Q^A07FN3qDa8;IrT*mJza2P^QB*EE}D?5Ri&NBIWSpt$gUG0H$Se70AqOt z!ay|j?+XZV4d43%j9hL21T`Jxi#H5*8T;;~zmV6IoqZYI@Bi5P@_?GN_y5kjE}^T) zt+cO-EQKf)MWraRui4kJQ^n2e7+hi)%h>gMJ?DMz zjnDV@N8R&&&htFyIp;j*Ip;iQOGRmloFUtab=8;2?Fp>Mh7Q@7 zmlR<4A&SczH~XM;w21C!KTM-J46cThRX~8an%(I45xm>aJ~RG27#WLoFPG$YdF#!u znoWG`Tzxtt7!1#mE#q3)Z0wGAgm8<$02=^C$8aJ#x8QB_GK*1BsD}K=+)D3)LX8X5 zV%lUUaU!C*8R%R=%@x-XSMFJ*O2<{4{w#R(jLaSKF0h^hc*uC*zKUWAH8mowtqxg1 z3SeD`LW|k!Y$a4uY1TD1k-4Yd1vS{gC77cb1QZmcefB@)B*}RGHt5!ZnPeQhH${9! zzPdqf_4h#yQdM$cCZDO2S60b;m5_@Zli+IVF%5EOy$`DY59>jW=1qht^=c~l9te-r zz0KsDS@zbcw0}nAK7AjQIa}(Gb{lBb#tKHc_)u-bKsDAEoc?#aehW3Kw3^6doCOD8 zSOd-qZuo5=(;jFBI{=KwsRXd|(af<|osFI?zoU%nC%iErsQ|Z4Ztm(2HJcA!#4M!8 z+Xa0^)~RB-Dm^5Z!C0Q2fcWCVDaGf(XY@`a)*FeTPeS_nWn>3G0~m1;HEPA>x_zu1 zxhR}lltN4{w{l#1UCr%6}Ll36-6vf2O^-FjA3X6ANg8D zvB8@79BboPgn0gPW4?glh|8Jy+>qD}c7HxAbVlc7eeU>AUcFxUt9v`t29l_S#0K5w zh>|vwBNbm;7P7)Ra5KUo9w{>R_PMK7^t2vlqyw4?iX|Vp#@9f6B}dfg)j0R#r`XI! z{ADntf*fUwK3ugRUqN{vF?K;z`U+@hV|LSW9F|)yf%d?)SeJCU&c$AtEs)_j7$a{S z$pO{ZS|mmKIGe%HqH>Tp$@&ibZLnp*|7HA)IpZ4?36D{;c_{&kRg7;`85^`9Y{tFq8EztgJZcEz>}${3MaId+X)?R$Mu${nsR8B#BDV#!S%*I2bo} zk#SfQ(Z(WVx(05v%B@4a1+_$A@QGPiA3GEWEk=v|Hw;*1IVV^qGmOCi9!BWC%!Ef+ z-33!bR`o?_K1o@>@?9JGxCav1gDPYJhz#a?ssI>ml-$r<3K61mW*aq<34F{1jbtO# z4#2u3wx(n91>NDxZyw5^EDkuYwCCX^=V?%75Oefo1B8|Og9dHv1<8QqCz%*jCUP?; zw$7CB$xMMJt^y-?h2c>|0L*x%Q&%#(hU#QyPAW5Y@gpANQX34TfRP{1MWf=p_**8p zvo=fZfh1xN@puce%R@rJC5cu=Qk7KUGt)gJ!w#s?BQwD;p@iXTm0@qm@HeT7<|cGU zez7aTK6{s{M#qp*IV@d=Z&gU#yg!tA_K`eKb4FUIJPF7Wr&KDo88w?pXB1IaNuEuL zwFp%FW>c`WaCMp%%31kWs*U-s6YDwD#adLadK{VoV^IMwZ@tY=RTD4{xF?I?Pe`1< z9%A4!gW0srT2wB(1|S$fe=mhDSqp#1c6wnId?F`)dXaTb+H{mh+uBstMz}eQkvY?b zsQ7#DP?(Jft`Ma{Uqc{pscECo2pbVFpcKH!21XgTeWZJ2IaWcyY&Y=Kjz+EqU;ria zpj`pDbdP-D9XX;#Wy!o|-~)sh74Xy#tmOvXS@hXPxGFP4$yFojWxC6(+fSXtIXs$} zg#$hx%8tYwQTtsjRU<3F9sU6G%Vm$u`Nu((<=k+ z0C=)NPDJIElGhEQg;kNONkH6g3slR;1g87Xe(D=O_o>(MJHPVmpB)4?W}@b?A`5;r&XfvRhBJgodPnv*guz3J0b3vr0Vic0b%@P+A2RZ9 z^Z}KtQD3}`ZXH=#p|x63McGl6&S*tPrx5f3>clw&1`j(va9`i_8`Pk@2vB<7pq}ML z{fh1%6`pQm9uuoShGnn$cW7gI;i?^uxgnOk{85)vKhTBp!b5Rzr|0E`yLH{l3fbEW zUq830(iE8P#16xkdZ8Px1Vl4~rKvcT+S&_m-|N{Dkt>hyTtqSruA?1T@Xlw`LVJ;_ z4E=|U_99L>|2@@o5E06!EE?z_f|c`Gw2*(-WYJOlI*iT&^?uZi+*OvEMV}pnYn5z3 z>s&+$V-HTaJsm05`64l7A{p%(;p6j4ycnGQ|Ukj;n&0+I9OtFnmoRvRk}@93kTcD<2zZUJ0avyBo~YS zVlJ4Z=Vv0n@bFbc<&Fj$lV?w#O@0+cDN7 zsfu;irpU6|1YrI@fXETi5dfvD<|1Xf3l}<8QG_Xu+4P~J2({sTXCxej6D2qbol<5B zr8$ajA&VcI5|j%_FJf`0i%f0^j;*6#%zq=3%bINBoU3xSt|aOPKSiM;(*d|tF`V0a z-vA724VuyTkz~pCEemAVYBQO7RTAAA&42V|<`TciTt6I7=hQyS)Fz;ez^D~~`5yt1 zO!{Y1aV62NRsr$>TRQzAnl#osnFjDJAT4nLAbvVFXo^1Vrvr4y@s_xhpm4nHo3 zJygXy|4FJgrj{`GnMCnUqO-E=A^qSaoC0!i*#XP*T*|X@qLe2c!2EyB^30e>x1B`C z%<~WyrGU*DIQ@t==$!Qyw?0Cehqy|EPg!ct;y|rjH(rN;WGOTBW`fkKDCm`XQzTH2 zGAh&fnrT9r#**k!&`f=rQ67#_xzFpgk#;(Z=1Thq3tfauK#+rCb?Ch+A^S6;fDUFA z07jCA4xe#p;slCz5segFCNs%J1iQ3BVQ_Kgqc|~ZpMzQ19Nb$omJYj!%1Yx&blXLQ zDBi_XzOsn*^nmR)4X3_k*72+I-M9Og$O_W9B=&Y+~pmZHaW!;2p zMPmjO6Rw&>-U-nI4}^@TdTtQ-#77$727!-yng#x0tQ2^T>H1*sUOAQu-NcAS?thsD z<~H}GTK-c`RfCsO4QwO_%?$wa|1;#4;VbW}qV5q&(8-f0xen9lr=On{7N6(BaMClIIap;6F%Z45qP2+#;P^yhU8V z9At+T6}oJd-@x3B+#H4amxl#c73=P&(-d#vlzChx!v@Wqjy2MWJ>UQ;xIozR!)Yx9 zEvE(1aJb}m>=tJLnsKUy?zAgk)o7vU^A*Kk#k$@m3M>kna4Xw4zxlb zhy%FFMPtu_MhL9nK)ozux%6uM6an5NQ20FpB?C|UYTj`qp7zxY-~bz&Lmc3ZE#D)M z|Jtl814f!=q1%%5Wb2DoRedCV_7PR6hp(ulJRd=$eMQfpiMJp<`{23Y^d&t=D-GxB zY(8GJL5J0U1Qq*=4#9s6=W0w3_z%^?8?##AiUFkD5p5~qg+r_=-1SRAX*cZATgPwhX9iv2|!FXe_Qms1Ng(n!Q1zaiZ84AB=A z3~~d6uJs>7S%C`qsFE~iXD#12(F}`o(DIG>Fuu1~zDvpP6_#&X`8{hWT@OHOeK&%_ zs-XOfhfx12!e6;Dgbe( zg>UIoSOteOEM`Y;2DlX;yBCI)P@mFC>WXg$e?g6fp*MqRSfKDPe*thqo7+;l&4cNO zK#`&}98S*zMNF-a;KMDn4y-79QqD!Rv5{jfYb0$N<2RQU7E|FygQE)R#Sq-BGQE*jJwNfG?QPrVZ_VCC}#R)@bKvj{Y47^NF ztD-Bc{tY##Ch90}2GX!<=qdIMq@VdWb09seh6@wh$nO9O4;DHH=Yf{dBC6xx0hAUj zoO@gc^nc~81Xy^t-lO9&Q119dSj|Z2J>&F6<4+>JQi>j{Y^totG}fT8eXjT@Ki8V| z!FIw`6Q>sDoSzy%mxD3ZsB)1)s*ASDbw~QXItFTnRdk>_#+_BN>27u5qNJ{(_tnu; z2luDQ8mRnt{b)!HkzQ}qd6Opc^GC5R+`;N^a%ryD+rWcDReH6{OMPOYKJ){6BChO_-^&M~} zi3<;l-~zDW%oXsFAylIk`zn3$Tdcd(71$Qq1K^m)2=dalH~+FIIe?+v>1X;+Mg(tX z?Lg~mizsE}Y5Kdi7~xRgTHSuYdlS(;^r60WgtzkM1x>3XQk{=uOacM6D5fPfT#Qt# zE9gc4)WNi?LU+>E71ez|beH`_2wGqER!&8)jR67dP-(dlEV4IssVk~h-3B~l4Tg~~ z17uyj+6lc8e5-ox6Je=8(Tg_M6;axqK<5ov;n~ve3+qd6%jqz%9@J9L`35=D5!|&hE|x)>QD1>_|H9I zqA`WqhloR5W^eA8XEJWL-dxJM2baj5G#20_Zz=egM&H&GHJmpWTC^W$-148Hvntlj zNuz`HFuU#8ksj0&-nvP}Jls5{9&U^Ua~w-cqaW%Ery718nI&>w8@z#Fe&HeVOA_^k zhr3->lDi#DB+nq~7bI^#f02s%qQi2P#CN%wWD`jE0f!X*u`eEQIMG$){@Y3Cv<0yY zhJxOEEd3)`+)X2!a45j}$5bU;R4?Dmf};u4DAXfd)GDtnfxUo(WqG)$s$A_tC&R^Y z|6??%u$m5*9Dc<3F4+m+U}jHuz{$l{Md=!G!WlLJ3eBLQ=wBJD-SaBa()O7 zkx7}kwb^ISM|Gn)fzQA*j0^Qi?L=E5MS$COBeQ7EEDXBpYAoEgSbyq7|3r#L-G`w9 z)i#Dfm+r!8M!zR3Rkmawen`dSF}dAZ3R2^}MgGQ}CEul>lBup{LOeE#MCJFqjx;k$ zMENGSM?O6xJT|?9w&_o$Yq6OUS%>V4j}}3B{oB*yC}ce9Fu6vH7{%uub&VEHm2vH8 zT{N0W-Oh9>S~Mwp4f)_%|JF9-+)#8>v_=}yP*hjCccPUIMZHRyNFVx*H8+h3^Y_;D zs3EH3VMnrWgkjH-juh2MBsq4Mn7Bj?d6GS1w~n-^5t1s?nhrD)eQXE)$LokgI#AUZ z5n@|MeuZ_Qo-vrlRr^E}VnjXLo39z?c6-W?5e;qU%dds)7sdkR-XU^}6?JW+C9qL@ z>JTd?WbS>%1ee;X{RtaWdwGEB2MOP&!h=fSITF4`g@=^DM@YC{!n01I_DiDL%c$Wp zO1)t&PC~i?LaiH%!O9=4sGzZ^nz^$T3hU^jwIIiWDarwdS|X!=|5xEFB6B=0BT$4x zOPX5UZC7-S|5&e~p zFQ{RhaI02?VE}}B0ummKMdu=5NF88EOy%Ji7Ao|o5YTI^U+l?>6FTAJ|CR|bSmt-! z5X_3+4t2JY%M@S~|D5*5i(1OE=kz!pleTO3XiihOe!LPyxiYnxAV+iQ8P!P;$%^JV zO-TSw;v0$Mv>64-CrDC@bxRXbwA?4xenw{!M1)u7GZYVohu)la5XR{X`HCTgG11mk zTcIWr)l`&A(wRv&{R3S&k(gt1Dr>y0T}B_yA2Nj8neycLzdSecC9x)+4gX`Feq}Z^ zh0J&i;vd@IR8;ob3Z`GlFnnSlw?5F6TKSalM^1GK5;V1$bv z;hKw|`gbC>ydi_S#2oD=Kv?yncOrmSJaVE}Bfu6n32r^)qRuU*L}#-aEcRgw5Jp+& zxHqfFEORtj5}n^IH)!tQy+SN-m11=N<}@P-Lxe5O=wuRXd+%T9Ws(SY^J&KXhQnJzRF-i^AjKB(lWAkTkc zp6N9%iKx#Js=oEdQZ_OIG7w1KsKt7aOwP$=Jcux zamjyYPU#pR*!*m`PaB%UKOgWCb{0>CME{Ku8MuYy50~RgaQg7Tz$pJj065Vhy0@zF*tz(Gf^DmpK!u%m-Hhy3et8Zb0rXJ2Wp;hC5?)S=4vPU4p`%V1`z0O3^8zwvrZ0BT__o<~`a1OAfO*z1ldU60I5T-$Z9}EeHxHA3Jn@D7YIgx%)Z`_H-tClekZYN4G zKiwRe#F2S?E+sA}n}S*ht!)P*Yfz^oif#dg>=HxcTL>@j7Y`YVc89@Zw*Ori5<`2~ zNbOAtznw_=EszmoBl@R>s9Yy4URH|iImSthT$Em&;;H{-RL*~8Rt+y;nY1%1o*J|i zgFKry;k>|zU=Ag==%t zA5zh|)ox7tQ-xb##usq|<4SnP=JD)|*CWCBc`SWSg`!`MCD&HM&$i`#&TFd#if<*F z*6J7yGxHqP8N&ma>9Q}X6oXyrj}gomFULtJh#PQ%ViQXo?Q10}+vdry{CK+E3WJ4{ zQRLZLOjcUN(5lwLx$y#wP|XtOG-m7bRBj4Drd7ePC@CegLppps_o+FRrS~|MT}|j+ zYY~{aERx&MeWo4$)xGC!B-#*UzT}e0VT=q*g)1jvaC+hkNuWZi%SAd}DqaRJ);)$~ zCWkc&<_waDoQC!=I7SwwQvO6}4t7e(hz7j6!Qi?oi}GN>vxl*m`<3vK-&rar)9TRj z7`o9$bWr>^Qth@PI@1IG*cRB2eG?^W+GSc%R-Agc15Q%zAxdKs4rz>Sc5^ZvT#PGr z!OY{Zp*9UMm^(D&__whK9Rh)m%9_gW_JMFP>XSVU#>z}-(5<)tME*_#1AHqDpV0HR z!d(e}Lgm|u;I@9K@;zWB#9lv4Zt4iAH*`^}!~7mHlDOapoo8%dkn zi=LUI<($DmX6~f%3A)3guoT$kkQ9Av2nxQvj6Vr(MIJmpbOEffgx!`Ypf|o`oQNHy z>L`uR?)b^*U5LhLBa5G@z>&4YtS2$((66mWJ*$36aBu4$?F~N(mSKSm=Ga$)8i9P^ z@&Ie%#ky^X$j>pG!g(@x=B4yaQFN+<2vs_*r%xS3xZ)K;^*f3k%Aj>r)Df1hel7Cq zBt|J0YtsBqBF?of7N=piV&Eu{U>5$qMK3yut`$nHwa7LcFQARNMcq3K zC#7^v8q-;LyK8DeIZgVww{9 z1G%M%L}kQv>YFCUI*(apk}n=58TLpXM$(*$p;u`lR~b@`a=L-7cQty@O>}p#U->2S zl&jRPyGT&>2GR2FSh?}5N^no~S55^{pC0(0znqTrz{t2=Ac>x$spG3aP@@`9LSvzr z4#sDLs7p`LOsRF5e(WhC0$)|(h0ot&5AwW$N68Z>$LjgAKm)&v(Y`ioq4wM*D%}gc zK&z4G@{Iu+Rc>GybDciQnrIrS}rP%GD~gs23b#(*x*iFHt*l<|Qbx^-*bd zSft@tcdyG7a&qZ}!)vhoXeDge68R!a=Wk#%P}O501YP9HU^h4@`CK-}%8?Kx9&28J z1YyZeS_NZ^5g;;6%w0J}b#`5=4rTU6(OnCm!rpN2JikB>dJ8Y*VJ4OCBYb^+zJPt4 zTX5wSv>}{5aU-$RYQMXwkOFCEUZ7@ugkRK;2l?oJQ@ETjC7az&dTlEZ$6;K6`&`p; zWge8@m;hEYnp%UAKNukcH7?MGKEl6_JwA~}2n0K;Zwg;EHg#!V!0%W>`vlfK+0fFK z6ESH1^IzCkG^pgd*rW;B{*zhB^kLJ_Q;WXP>}~$kuP-$Fgum46IjUxR4=c&bem`2> zSH#wCbsFs->lE7SK$X|kuH*oQRN8(V;OlDdBVaBA5kR_r!lz+F$ehg{x^UPr6pr>a zkoZ1O+|t6vvc1eAws&4LPQ$+X8BKVNcA%Q?Ugs#iADq#Xh_3g8Yu2eB)$NbT_oKel zv%he1NjocdLIm(Hs9N9$jjrWcn%y6sns|TO-XHx%>9cgMzo=ZPIuh=ewcmd-1hGkH z!5jF~$Nr*<-Kp`cO6WYaKmA5E2cT-b{Hf&t#H`FW$F%#6rVJ3(N|(8g%3jrz3P!*e z{Ffh{86f=a&iHXXF@u|D=;Hv96!->j%4QYY+8ex(T5|7)Db{~CnL6`9ICgN^XCFgJ zG}mW82=S!B1F?FF-|YjTSmpib{6JC7{^n_+Cw=Ta~K*XaCb}s1O+wH5@CCq&LSf2 z8#O|2iMVkJ3Eak!ALwwhA={sAJIa=YfX~_Z{cFDV9Q&cN{ZFbf(|xJtAmQaWTjjLP z!fEs=>VXJ5US(IMX?}|I44G$vc%P!(44Gzuy#AH`9E9b90lwrkSonIh{Fy55t7JT`{(0$wRza?FssIm}u-2 zoyJ?E@NxrN1>VdASq^xU&u}!WrN=39IF??PdDF<@qPpE~P^*QdG0M;l)|vnEpp;*hr!CIVmBhjg|OD z8h+qN4!eNx>?qF%%J|c|k)plQNl%|fiilbjJG1(n#lWqsvF6`6%jU&f<#Rl~KLR_I z<1r0CsF<<%LDh{rLVZWUs6B+KfKdw#1=wiUlQ}%+JLV>%81<*wYXqe}gWVNu>9zrA zEiK(mPr5ux)Ujx1+_TE*#mm`0=v7x&;ZT>fW` zhuU$*3erm@>l3km3Mqwp(7JTtQorfJHcwhVMg&v0 z(Qw|ibfVd#MGbqGLrC%^^p(wVo+q6iExNeu)|qp>_8_8vLM zZdf8pAE0w%g{R#f3*`6x^lmKn*yVX6(W#hJ!lKPQyUm;KP7qFZ-&*h{@2B?TM1V(6 z3#27>@Z7Op`*$Mhs`frgypgE$lW`rXAlxyVro7n*P7}be|!(o!taE zm`^U_MOC{j3nV9>QpTgq(*Z%58!QoB@@f2dlz9niXg;kQkH*r*f+OHk9xwb#?>`1{ z+O(kJ@xrIZOl*rebm`J1X=qqmd0Qup4(_Cp8mk!(1XaMCy_7Nms*d}DOpxw-!KoK6 zq%o^Hrf(Ki--t()AmdK_sPv(GY25^9!B5x*YCqK(%a*JKtK6j)L{8#2mt+IFoCmJg z{wS&QT#i!hrCMk4h7o1r`Kll8UDxGN=tL3d)CXADj%mOeHf~2%Ykfc-4Mm)H<~nX~ zTo+-?JRHoqE;@2UGiZEVXxBvH6LvywgJP^#dw})kMoHCTpTrkc`x={0RCcHLP`OFM zx5qULWI2<|FK9g``1MKc#M*@8=T27 zN%)8QF+r8zL4e&>5^=u&I7Yk(L`+CEs{xE{a2a2RLAKwS{+cBG?DhbvihF!FRmc>9 z6_!beoP2P04ZA5RQ+U>!XhH0~8!7d>UQ)Buk&ILcRk=r5Fe7%;a?sk1ut4m0Qz1k8 zTOjv$(Z38yvq1LkBDcwaw6Q?u?xOg~!oN}z3Be#3rb!jL(=M7gS-AN}AqKV8*FqA! z3qsbsR#Ma>ooWAMbkA11=;~zA%+B9}y73pPJ_U`dj0H007wSF*P3Z-+8C)GL5lO$0 zVG2a6Y=L_{@%qst)w-`bV_%AGqQ+^p87$~E6(ys5&Y;UtU9@UiYe1~Scsf=QEP&V6i z-aM7<&pQHnekSV(`B@4CwfHvdpc+{sz^*k*D%-%=9n>vLxH&gbvp&HR(QF5jNTJXy z;pmECg}mWZt?w=toXR`s0Eivis>DMq5k=dn26yz_o&DuS#x93*Fl46Kt}S$>hM zzksdhdQD6|c}^8umGMpYoSQ1H3748%P_S`10sIS2Uid+y^4>xRrwKpbd;ItmH^tb! z-cT=o&=cniM?8Wpk#%-yGg(g;b;1)$F`7A@9IFGpvmi?)t0DyTev0x#a>q46oEupCiO8Mujt;|$^B7z7^pEQ24_q|W}Cn$Eyzcl1hj*l|aqJ1G>Z$tk^w`kX`*szBU$T(eFM8&R3- z&!~n_j%Mz%qYLETP~&JM0(n~CN43T2j6MeFSsz4tElxnv7{8#2P-!|_XkwVAiKMZ{ z-FfrqEiOpU1qgJ-)}4Er9s3*&qW{4bA#cDIlsu~m6G+i{4*T`5`$(c_x~uU0qB%A zAUwIDZL&SKUZHaxfTnP;GYy|5oXS=C8Ey-#zj%cGOmk-mSL^NN71}aORBn)A%?!HY zAt^8@4+fJI+ec5OMg)|>wa{E}SR z0Udo2IN)2pXdI^JPwh-h&CDSAuRri26hyY)T^=r1tbK_LxIm-d0hj0W(I+L5nkTq0 zRf&1sjKSs?$eK{8ffDAOXOi;J9X1bv!|{f%V@Q}R5~vwS1AV(k|ER0S^;q6KY0@i$Bp-eulq8sytPuZKRWMPd0Uz-IYpv-tRdhIIe zxj?v6iv^-=nF%T^L&B<*nW}y!m{2w?5EaWhfeqS8CfJ-@AUwThNgVULIep+~+~2Uc z*nUro7>Lm6C21B4AMY*j85_4Bhh*&=Lz6m4nsaf}v3~*vDQ^rV04pRO;3B1V!Ho7z z04*HDE|fwZnq%F;_!F*u(I>=#X@V+Mqm@Jpp^f#`PluJXWsz{Dy9-g6cUDLty&+`r zLg8iYiGU9YopluiB1m{voCpl#+5#?A<_%WRG7|n} zUdjGhtCgRwbdN;EGS^ht_2u-LgnOBb>gUeosyNY$MA?e>Q?ZJO9Rk|Aqgk%#`|YUH zBH>mc1~V(vP^aaxW@eO8XzC)Et4x(ekYwRs<~#NC!!niQ>qR2EY}t07p$yrjd(@z) z#c*i%SwY^;hAh_3?6v>UhR1B@?R61MET+rk%xn%vww zn3L+}F8n|b!CcYxrr4z-wAR&7=5|{8CtmD>e}d;Oi8*1-maqj6YmOfjd=!4rN}`w0 z4@=SH$KpiWp{201OA)w@fbz#;db?DFS$6;+WSI!IODfG-W5>y`#ngWp+yW66NTbE5 z)y9X^`9lFp1u5_$xlPMN3#D^U`nU|MI<6rUvK;Q;S&L-L4C7zmW#R{tOkPCYmWw#+ zUf7T>1<);`!^DoPJ)F<>52HG{KL|c`c4xA+2bUxuS6Lx^tbt6; zRtQhWWKbcMG)c^3fi6VjS73C|*a8V5TE7B0EcXvv0>*i_kbYl*0ofy%Qx#IUknC5A zDt>n?kOd2o=SBNVI?X6zJJarLX6%tSw04W)EUMDz(vBN%?BTj=Y72~R7Hp2!?pZ)ytAta0|F6Mwz`#PS2Q?NEunGAp7z_cXasNRu zlxq*LDOqZwT^G=|t3*KUi56A{&0>yHEgky>TqWD+a;f+S;Z`n~gZO}tTl?N!{Z z^C)nQ@FfrSWS-(5?7K&0qPaTVyb${f19PJE*{b)=Z}*njzV73#NM)NzTN zjgrr)Q5Qd`;xPQ6kFHT;Hf>*zZl$~gYtG>S$ociy{~20^D*uSnsvn-xpdW>6$~BDh z4w}}K`P}=SC)~D9f|G~BZSNtz+53T2@?~n2X$!z^`K2wK#m!A_y}kVpUHnlr4U23K zNz`TSMBH`71Cki*0RcXHxu?LY;B=^@zRr`jQK-$gf}cwdm<_1hnxWAm@z}jdd=#9g z07xI_Rg+OOx~vD)|ZJ|0HT#pBD-}`$@RiPBgICfltVOgE*v|eN5*! zh}O|N^k`s1hGRxlHwiB8tYblsmVU-7@Mm!>xd=OQwR3@hZMxVagX`C4;sa-%Ys_TW z)<@KRqqyqd0YKB8QG<&h7rV7V7z40rQ$f2T>hv=vSUXzN+Mh*h+l4cje%oXE{4<>0 zJ&Fhy;Z^r&0AlR57=Ww~$KH2!Thi+sMt$>`R&K(o-iya{W|IhVTqL189&we()$nJJ zsq|*i&Gtv^62^ARhcslfaJS8pUke`6+|BUS-hMzwHjBneYATi5A~KYSM>KH@mN4ue z(bg>@$adE>PHK;l;O`DqHW{hnRtyin`-_sd3h$c3|K!AQ$ieF`4#4G^lv4`JwQ|yr z9b2erWcvO0%%jpnTCx>;t{yz3>!4LWKBV_su_RHZ1*L4miq)oY`fi)}&Moy1W_6DD zNT=Q7Wfcs$(lJZN+j-=*9ZFg69u3$ok}DdKCU44|I0v&Q#IG7fC$@_Y6*K<_UVjwT z+JPc<{)?vVz+Qt=cj)>K;hkCOHumGR;MoJrkC)w>1tut$ufSMpDiBq3Sjdhk_c{HgygZ0>r#e*Q1*sM%j+#z=^!xmRT z;nvk69DZnxqECABM}AASR4oS|=E*ue$y-IY%HT5p$yQ*Nbu7euJ2U;hOSn6CNiRn+2FqQp*p`o4l1fp4Ggs;} zNqA@xBhxK4Y1M8~-|jd>RUyHz=-zIOI%ZiQA77H|9?a;wSs=GxQZqo5n!nTVJtD03 z)`b6`wW`_ApAB}hF8#Y|h~AiW<-u+8&J&G28vwv|&RdwZ zFP|?Hlbe=2Z`0&FG0b-PL~cGS|DZQ{*k{tV7S-D;d~NGWXp7&e$6jodDKEc*ey8vE zif?W0T5yB+yhXP8qIy*7H@uhX1fC(n4m8w#;)JgbGQ>)e<$jPf^$^34DRM$qtebU{ zhUbg=%Ih1nAzyg3NTTfb@<@>ClrLop@K7zhKxw(k4i~77>bKTeGIhj=50#fCz`rn z_!h$mT)6N^&EFAxnsocxO}e%Z8;)UoHn{dK?g)Y*>gykH>l0N zNgWQrr*-KjjXwY*x*>)(9}ul0QxLB*{`nFbN)5Kp-l!684|}l=$ItG1^Hq;c(FL{) z!4*c#5dGCAX#7Fg#xd7v*g>4L*xQJfAH?Cmj2m?0pa}H&cnx^+E(d#lUIDwI4jbCz z?4@=T=9ai|^E&w)LiTrDqvS)v$IDAXBR~Y*RFY6?Pw_rhoS`3vJDT^SY33o(J2Sci z9?Je3`73PVpy5Vph;G&qpbKjF4-Owuqit1C^R@u-1F~^Byr6oZBLEuOQS1@n>YH;# zHG{3r@xb8i6#SH)jON|qZIKu2$G|Hz@rVel{1foZ_VxBC)>dg>|Gh*9j)*}O`T%4; zX_Saw@G?al6~6YN5>wjj1gH`9&?%K@(otcn>^?=)k79{^WdquC6hn$-=Sew+qnHWj zspB!R(dQHj2`5d4DqMEjnZ0l@giq%^N>c$iPUm-A1l9Wig_;MD)gxau;%;{o-CB?o z_CyR<tmBGU}bwFoUVqqbVGQ68m`TH;i!h4 zI4!QsM`K|6Ky(G;KzVikBdnA$AiX=eo)9fE>q5#$@DeiYB$Ca8eYASSH(&zrBd8t? zR#`4(Y5xT9udV=Y!hj9o^_)Hyi#a@_3#jdwdY?*Nxf1}aVUISdfR3D2eNe_`z4cMI zL({_(qJH~X91*0loX2UptKkIBwu2hZ2m41iF+@aCvlwTq8s5R;JW<2z8UMW+uGWFl z3q_>Tw*zf26u!>?qIhu5XTr6jpsBy7yWo*y7|S>xdR!>FG%bAw{Td#eg0YRk>>>RV`emvl9$L!n%v}(l?<7Y` zD1lFf)as1zRBD{05obhDRcpk80%K_SwU`1p&k8wk9Yc-I7=mRqg;BF`6L#R;;o0kzbL8H0qp) zvi-du$Gtg0d(PpUR;!w%IWOWXGypW~NT1lfrC>vF*TfO(a$eM{FbM9kxQIbE>DW2k z#>Hs$oK~L~O=_&{`xW-d!`y{p2ex6?T}Xya>H1OLI6IOY)0#8pMD4^yQ}qNj4F8jZOm+9l?}dCKnyNwt9Q#_0GK z(@am^N?yUVm3)CjDJ@Y>8w20L#^?(lp{=2YbYo>?MR2_=LNb3kDD@`40!k@1&&kGA z)v*OAv{k_Nme~3DRCP05&zs3Zq<$S^C=W;3cHi2>GrqeEVU@0^OrGvOsPs`u0TiYAEriEgjd<`xq#6fcH2(_u3(e%uR&zE zB0?*9f`$G%E4sT09@bG%|@-r{Zra*e)++Is^xF?98(_cuiSYFWG0Ea999>(jC8&>380i7(^ZT3nwpT&%O+ zLtSo)ps+Gvm1vmC2+6?(a-@=U;VmC=;n4x^o!HMg<(|r(FYRHTqpwrmO%YiAsVp7s zdUTa0VfLXsAJqaD&)RUrU@sOVn4XK9 z!Va2x3uhd&aSnS%Xl^f4~j?P1l1O}W(`zi3Y7_F?_Lo08K zjIyaf=DDy#9(n$b_09@D;KL5C_~-J#Mk{8|MYEO@G_<=bwd4b+@B!a1)ZriX<1UT_ z6yN|CWX0p@m+^I8-|l?uo9l0GLK{@*F~-riD=AQ(uVVIwh*yRbDZ#Zd+q-$s$BW!^#z8 zzyxa*keOy&&Ur+C2tVyb3}#HAhkK~-4-r|VwU;H)@H)i@t-NKD=|D6ki7D#PJPNua z{M@#q1XTY1;9sYNS>hh*cSi(halXpT-)Rpmx`SP>(>&?i9TAf-5o0fIFAKQNrHdRa z1^_6NN$mY08Q1;8`XGtq-f{l^GHdyxxCG!m3{T|zVYf}YyCT50BFJzH^ltj@E^onulgj)l8aC9x-emuZr#rF=&L>1e1-p2+bV~KNAhj zY%*-{-!_iDlW~#CsFW$uSJG(epIBiX;7^#YZ?zeCXGJGt%7e4i!%ZiA z4_=^{zeJE%b{n)#`#2oiU}qUv`>8X41pT{<8v;>~bJ5Qg z>vDIJ_20PMC2q~Z_z9&VjIU_ z=O#8Brn$j6^tF5WzE^HsTu|&gL}U0DLL%K}t$1~zfGf6m13BLpb;=!)F+kbAmD=4G zL78|A%e*6J8wwB4w*8jMV}O5Cdc&RcNIE8qbt5DhCv2aM(>5po&Cs*Bw1d-*!=q-L zwoFMT@24g|0gOz^hi*W>fKrmTn)2pKJQ|hmpSZUyeY`K~mKltSgaY&pr-%o_J^0OU z7@6wNnKNbbj^{`u?faH6~aQ0cZ$;#>wqz99eeDr=7zHvD(2Aa}P z{P8p8JrLgI>PimCyx$hO_W(YEhR)>j5DuciP1NBbR{Ksnk^Uh(yUtta+(WpqLbuTC zha#xLuoloveL;$KVNSfUST|rR)ijD~9%nX7l~{Zfx4u~?<}^grtuo)#xs@`EB4prJ zouvVXBxVI%OI9uQ$TUcCH}%0ChwnHQQfZ8R^N)`2I_n~ywclQ9#7W9lbxhvMMuu&y=lAmQOe4g+&E zzQE_WQpFm34jQyElBTnXraEX6%rxy(n$K81Wf}+Ewt!%90d5({M4+gYUUM41dhLi5 zoHuyKS2&M^V^8ZTS=y>BGu*g#4camQNLRBA&VAo2G6sy%RO+`+H8e4>a;BeVO&Bul`^s%UtS>OoC zxp%=PG}vP_l-=z(FL)#Z3WB1l&uL}_tOS(H;yHeejqYH8Y|ws0xLCIW`jr*kpX1X9 z^AY^myhc{`h&aB6`N;_<{Bd}8>?jYb&l&Hlzwl12!J{1}dnKQIL@s>LOu3>^!^Xp2 zaxhr0nW@T+HWDB!U#yqH)<&`>EvwHEgLV#Ty;%3+XBl0m8Kf74{BH7s)QpM?yU<_x2JJfCUpY{J>6tj_L zKE*Q3n+Bqyz+Pe_76M=V=B@yoNm@phs3OBBEyJM`P`HVG4kD>U1 zA^4FRJ{KM9b(6RSs%8j88872>0IL2~oLcqKK*$RCLw;r9bSz$m`gT2?c@Ce&a4kJ} z4i9gS^;GX)5nB7eDx?VW7LVVox8G*8m*pfUW!2UpYJz{9d7vYKpVrahe?={~u96OS zk~;H&UxyN^(`)J8znD>Y+flt27@b#HM?GE$kN86v#$ifph3w~qHEv?+CAc$QhXdM) zxPMkYD#oXg@verUhCNVtpc{@=*m4Nt=VN0!@&e27o7d8#7otbdsK%Ja;E|!6((GNx z8D`6`XX7@GE`akfUv-FbU{)SpfKgY{07Y*iqh;VpSC9ZV;X1F?rFwRAAGg%Gfx<>hj(>^IAaAV}4OdRQ?Tmw*8^h_zkW~D7S?6y%F)&ZL!tF z`mLz#d8i@h& zq&^hu2C*iaj-DStt-+|x*-s7M!4o`v0gZl#9l)9UiQb6-hmZw~iVMZ$Y-GlKI`dAr z`|MvTwntdfe2bTbajYRaqjW z4~>f$GC6$!EAzy==4s;rV7%N&yFS6YqhCm;KS6Jf5k3ASf@AJ1MyjTT_(9=Zp0e~N zgB>?^UY~C(!P3V*5a3vSp`}nqqZ{Ut0&jnZ+op${jdq)hNKBGC!iZsL z(H4jwYLnhtNwR&ugA4oA9J+0-__%Z^Ay389EOUq{)*YThIvXWKp*hslMyan{eMi_A zR7VNeLAz{}YRYRp{b{2_C>Qm6+%-xkq1<^xV@fGilU*Ry^#%iXQKu z)(v7f&ts|?Xl)rKSeg2YE|gJfBz(qrFLoR5j0Gl-m$2-24=SHsz^^5?fcszS$Jpsy zc^D{6o5n55G<3cQTK4OIH;v-TD$&ZNmy}gj39Axk=Go2*9sqj`!&Q!$q_=R9#|d!R z;xziBtdigqG7~)DOCAe1ReRh`kx~n~Gm{#WQ>rwnK33tUs$!ryFY$&Eu1>iLYzzjA zbrrx7C3KBt8p1%l@LQ}K&&-g?IxwU>7Wey})|68kMUCX!dsyk>pVzsSqJNu%#ex^H zIWD}@2M?20Lq{j?=YcYkr=3!*)@7t8C!!gxK~WDBre@n5 zNkLT#K#B+tL|_|=p2mR4Ydnb9zU3kVFd^5a3E`)i+Tq5G7CBU4hZ;@Gp+D^u+@_O5 zAMF&s(9K|on$kPO<~ZfUCW7A*fMA}HC)?N@dnA)o)slX<97@$H4U|*QX{J^Q^3Ov} z>7SeC%-rYj9VsEIbo+x?x`R1%U90$~440TF`8wd3g{U|~lQ5VG zWoW%}tUX2~iN{=I)5k=-kyI^QGj6{d^;#Ji;9WM*l0mO&G}~T@RkE>D%U$Z0hW&cn4qnPJ(Ss z;6d5=gpo&2iq@HiFW4#RnW;RP);U7#L651(5z2RJ3fWb{cU0D%)|Hf4p&T~S0;~-v zyC%^iof4x28|j&oQjdB%DKnM+5BcMu^5X;A>a1*4{<}{-T$Ikr`-!yQMd{J-?F2Yc zai+A%&=Nt!&WiO?Q7WJiPX8W66@qM5pl;j_a!{8OrY(RmEg>=Oow{; zGHxbdMI*mJ?!thcUjWK7AoUBtVw65E^e*8)oH1%6s}c=G1iMC$IUI4hGT(pXm|O!@I1ZFNL&j04n=(xKDKqX6PNGjx+GbEQFQu-NX9f$4 zOPP6hTD~n#yJIStLG!&J#FSxl+)MFSB6U>crFbf%GN_!l(n%?(ME$&#+D=c>EqSn# zazHPikD@K!pglB-?s!Ah77QgHAH}s?r=e&ZE!r0A5{FWPk5Z%DhLN(AaEJ9!n&hK2 zRPK(XgFZ??#l0MnHF1?ydSkeW@FLU@dhMgsEcb4NiD1qUs_6?85I2%K`zp1nTO&f+ zR6f-)oP7-UUw%L~?hR&w7T$cU3)Zg(+f5bi;$mIEV491|e3iSyXp5iX6p}YcHNWZlcHyyjgpiT&7Uu;Mc<|TY z{6X}}PpRTN1JOL3hZKb1e+e-TJiUi>=%WYV`mmuC<*&3+j^CiU{usk-9!`7x6>sI} zFuLWBp~2c=^xhv*92!Q>0ZI+~^C(ZKL}{rKS;MGJ0L)y+VKlso;!Mi}lnP4CVYDqk z@pjK1CNZzcspuOMnS4O!+hO!10CjbED0x&-eC+=j@&#tjP)Y$%89J1C206un67Sfd zw4f;ReHh#`JA}4WK||?sjXqRS{FF&U$U6|iw;w`@cz#_88bYH36<@_>2rUUzYA9C* z)310WLD?~wo&+k5l`2;$BuK#>)8BC6oXiiAbrFaCt z3Wp_WAZ>X6By}2d?e*Khz3MhFVlpf?PfiU~c8P zp?Ac2k$f*039S2kL$j(We%`?#P0}BKG)tP>(YDgWz=k9p{s*t*ZXQS%sws|2-avX# z4WmN+KynOLf|S^S6derp_Z&!*gO$*hqmYK$@SzSU9XNwRi*;9I$|x}8@j`FD6sPTL zY*&XIu~{dJd5Knia0t;$`m>PGtTV;B@B1&Tt~6CNgDI)HlAs*FKy#}rBZI~P#Vj4S zLa2H_Np;dPSs06_O9oJI4M=*hA9bvuj8OFb>2wVxz~KoOJZgKaym{|xzlAlGs`jJ$ zqQkH+1y=)na0&e=yrvS|Z5)6o%;{{!_@!bgzCXy5^(l*Zxx1o#AuG<1p!T0-5G9$~ z_JM%tJFFfxgefr1Ay0!F>o|-uD)K;II$Trna5{m~z*~tad_VQc{1#GKH}<7hHBq)b z`jTfYWm1E?V24<2YewKvE^5uhvJl@Ume;W}kI^_|7!=|zI$X=$m#)@Qf*l;q5mLD0 zeW*eR8qmPr6c(ZcCd5F3It7pBAoH@D!ICiJb9%cF$ajHElJE@>CAfWeh_TVy)N0vv zRJS{=4nbqo^q~tOieLRyprS|AC7PFF4|Rj7K9CJoMGkvWl+e3ufDTnckWYHzaHekG zGztz?>S>#RSf7#&NL7uXp`l8H@*jJZpe0VD-JwcY=3c;{Y5CSRQY@4zb}eH8dGS~9 zbLv*+Y-Yfw5<{i8xH>EUqa2(~1X#X*i40=DK(THx06@8dYmX#~oC$ScEVd(NtONj@ zCA-+YNFD1Xhx4l=S9r`0+skSzPMI3!1C!80Ru4|b%5U{vGg+9gda4M+OUn082`ZG8 zAaTwEz^M$cb1^ortit@Cc7-TGUx>0v;!MEo*q}TAjPZHtCbL+Vjua6BIA4M>+35)o z){kEZ+>J05K7MG6?*3Gs?xEdP=g1t*6+}LI#I;g*6bTk5N4~V5dIR6wFdU?Wr*S4nj~4FyHRU8M?|-%wV~)$Vk%uF_TM z*qy3`DH|2L&U6vKwXDE|O(u}@YXh?gb%wq(O}0xDhf09UX8SUYey*of4$VWfd@!%5 zGGlMxPk!sPs4Raj!KeP3rCD=4y{@N(R|qULkM5dsF)Zp#4eMjG$Sy99tiFvIgd#Jrn7+np+8yKg|^mLF8K{aky@pD!a2|bA)}i{wzcxIn@W_6!98hR zxDus&NZWHSTxly5Z8wT&pe$CtO{2>V&^fm{N}5QedO)3aoGoZZZ3Hm6XwRQGOkiVG zAa8SoSJk#1wU5Mzdi*mSsNIN!L%8}Z@HD-)^%3TrY~yW) zVymDw%nStO6jY?~Eic<;9Sc8t<_xZ)Y;SS}V;0?{Ez7?1E!ft7lyn*aaWd-M1xtFwLl%rglYLVy7hm_(KV5hEgw7%`yYum}SJMu-sipi!fuog!+a z=#1hLWig`lNiEuOsf{clB9f?}gHnx(nBvk@Ee^hF$E9}4Yi(++{I2^s*GV!dy!P$a z_Wk46=kqyp-Pe7e=j_|FojDOp(>2@er%$v7j=FNLoNTT2`4=TEZ21BcDQ9qOI9IbE2< z`y}ug^vQLDXMdhL%bq>K8t(n%IhV2)kHo(kOMSd~dgDzKtfO3mulQ23eoEr@(+iQ$ zlPjHcwTAF&`O2PmJ!ijmvbDO$w*SU^=mXGdie9iU3tAIAIj19$JvVK$8-f_^S8cQ3 z3}WrKaGU*A5Od3qQg_GOsGt=6sf9TVYi%T^or)(fo_TkW?e zBDC0P657jI0?SgR{MfU@b&gH_KHaeZNO>v#z|Ibq*Y$c>3z#)sY9vi z+cF!W!He+AJ-57k^>nn8qj8%8x0fd_OPu^v5I!aziEXt*Z@dyZ7ORAwcZu&4URm5f zbnNzt_+IM`d4oj{9bZU2uI%|7+SzA0@)>*yncBWa|{`*R$;XldT;Cr_U0z^9{(V zQ<3>slRc15=`F|4wBMg%9dgps2u!;1c$iU-Lu9NjmH`)f^ro3OU#eG5IoxSWV%FE= z=g+i{KLu?riJf&$vCb^mHbbU^Cp{=EX_!GQK9S@7dH2t-_nw0Lk!Q`Y2Trw)AFy}2 zL@5i1ESw>C*FyLvV1|9!RBMHM-s$S@_jCH^;bFq0Mk(G`CoX>lE5Vt^<~^UZhflN4 zw|*6}Z<%HtnpYubqpJ_lU0t4^JQ%XKO|$&HuHAxf^}%A!ly3|2Ew^t)IeDXX5^r&w9zns@Q@k?+>%=^JiEOc`y7#zW&fN<^H_a zrr3Q>wT>wm2JQa552r{$Up*lC=R8S1);woTwa+=#T3}6k%6{%t>q6_(CVTiy>tpNd zMmuMg6}D8VeZwp)0^gWxubYLdnb=%=&n)Xk>*rhS1+%RM{!fwFTbku_=^?m9d-W)1 zI#0$>(P&9|Cw^pqFdH|pCvUdTKFvDvh+FY0XJ}e zj$4Zu@b>3jHPOi(8qd|I;lBXEmbJ~ldeX`={1F)b=0IMvPNF*|kHr3SXkbTZ)kmk< zca>Pa$f5e|&#YtL#YSbf-2XRh<@T<8uJY3K+iw2KizIwD828%^ktT}eE86HLWJ$c9 z5nA@kjOizQ-usr(SR^66XKuiI0`JN#>>1OSzvcLS+wm)#EiTU-5A)ODc>2)1Y_DB- zy45#Va{Ad(IJXaspEW`7Y_Mmaj=Pr)Q|wDmw~o#$MGl@Ch_kTVngSV_ns}PM;dG2a zH%_%*JKZW6_j9z7r!c#Tm%AXt%W6RKaXcwNvq8e~CX;@wI({n5l(DfgUhBy%3d66w z-;sBTgoEX+gfmwHxIkWLU;YM`;?h6y{@N*+x$z3zhzWM8rz_W9I>$Ps-(m2HmvC@S zKasF`$!vS=9Ng|Ws zS@zd&ukQO&=Dy$Ri4%VzG7bsOTlUw#U7h<<=DY3c*PveB`q_YGfBoiaJRQQzaxZ0W z`>lP(JnJg!9&Eib4lzp#&-j{$#uapRo%)_ayU`sa4wEOd<->+B29!d2GXwf4HR zFt+bqYrl4uHOrdxh&}LZYu@EQZ!(A;0&kP+DHQwud7q%-@LMh0rVlZeL_J zPPWfK7kA$tc-yWz7u|n*%>Mbg*3E<5JY~?nN&1vQdqu!0gIXrpQ_sU1>56goUcq-B zu$P{1RdioiEF*K~6%W{-oNvvx20dVpE4Ny#H>TM=7U1^hx`*xa7g&>ezOdUFwq*4e z7;V=tz-{EpvG&IctivPI)^rT0C%{|ijaQF-Ir&4`mJ@wh8tn_qGe^Sk!cNQ%y>FJq zk!+&v#{;j>^69?N2|eF@2$Oqe@~xztbE+SjSG48@tto^it~HNqO#qrLjwX`)nN}4; zwO)H#sWm}p9@3g0X-x>4TCKTMYbv36RBPsIO&FRrT7ws|Btccstk#-i9nJD6Isufo zKv{@{57ydht*z2tyK7~QR$l&)ee8wS@EK1&=wx-*@0^hFgYpto(nsR7fd$94r3$1FGb=CRykr!FNvqny_b1z1>1o?_FZmyYp5zOG`ekN3AqrJOoAKzOC8*+2wM}u^HRcTA}{`Eem)&O&n(}?!Wv- z*@WtrOzduP@dxceRO&Df3Twz_+x9ml%^Lj7409pSm z*8AzhLND6KU1{AGnQ$Xs+lRXZ?s&K`P zE?@N?62w*Ruh471y5Vp8r!Pwk!LF4zE{)oyKd=(kv>o=?uoaBFc)hW$xbf7RuoHp% z<^6kGAp8ODS8(sc`IcGA4;O$7!nHyd21el&Tn$_qTnsJ__b1pTjPG{22lCX|{fE{Z zmv!mg_PL9!YplBMjc+ZoZn3OE&o!QNwbk9SvNqY5Tx$hAAK|r1ypuWD-gvDw(6ilP z?+&)#xE2qMYaO;}urvM7!gs?jFV4cX;1D~f3OCuV7-%0;WexS<6GwzlI@ms|$|@M| zbJ!R;2mh^FDeqr7x9)rH$J+{cPDKO$62cfhb_{B;gx1gg#r2l={8zC&#n~kto*r{N zy&!8^7>YX#HI8Aev)IM=$me3q{WIh;2XEPYDyz}3Pv)&{DQR1n^?T#yn9mMeXXVeG z?3{V7UM9~fVeU?1Zp+9I!}(bJtaSRNE`YwG(s%W6KMy1A%36fJKhHYEUUMC~)V#aw zjZ3T|+p`3B2zxrD&|bB~^4PPMU=-d_V_&=k_wjyIBi^Q2V;mf6=l=-n#ZT_EC;kY^ z*qve=YOnhdrq)yMwBP>`?p%Mh%D#Q6RcN2H6odGK4k@utTV=ny6pswPTxpNJ-kM?6 ztrX8b`@ZXOPy3_(x>R>wj~QhAN;`Eu!v5n5iKEb7a08xX)vb`!47DG=!RqThIbSln za%GE?pXvGbFK@uAeDn%Q%VCW}Bi0bty*F9j$UaN%^C*>)yG=M+i6>HDLcEN4GqHvk zBQ_A@#1>+LXffPe;z*4Vbs`m|#D&D0h--)q#Ac$CTKr7N)CnI+>`VMQL+g{oH;Hj# zy@L^@%Bi@QxP)jTC}0i@-ztA9jiZ@(A8`-y3!>tAZ<5y&?;tJ~MEvbX#$Pe&;^<2p zO#HH!j_?EG+r(Fhabi930pgX!3y8Cc#l*otC;kj7lJam3$D710#QTW15*HH7h%<;M z5LSlcShxoPp{S%G^aW~QVTPWxsA+IK0 zL%f(c?=KM@K!}QB;xJ;J{7XHK{^S|NZ{*L(aePi}CB8!3OniuVFY#95Vq!&v!W`lR zVj;0V(L?--2}%%m6Q3pC%Bplyho4&ZhA6R|xRu!6{)VyD=Mam#^nw^Izx^8<7x6vf zE@GUxnfMTK6>&HtE+PhrA>w!@a6HBrr~X46Xv&FK5|5Zx-Ri3x-5UmS#Op@~7x>js3$2?i|bUC9zkw=A(#{h-JjZ z#A;%USWkSK_zp2i{F>OmhYo)jF*2S)DRD7z6){GvC+;MEOjOLVmpF`AOq@zAC0<6X z(il;zsd$LEiMWL&veVefYlu-|m{?AnN%Ro+d3287BtA`i$U(IKJE#Z~ONhn9!NhLF zFS2xiyNNr9n~5>vD&kV&ImFq-34%`lr@}+r$42uZaVK#z@jhY=v5HthoJkB2cd{hL z5`DxEks+*qJC4+;RuGryDtNmUwEy_1dtgS%4O+_0Xtg!7XML4dJH*_x@E2 z?gA_SnfR$WPb9hiQ+Q~s{CMX;#j5ZVxE?&Nu_q; zr{p#Kl*>p-|xQ2BEj(2jzCx&^)_#rR6Jtryzn-E$cLT*J~_UkBx$@2eSPq zW;piviT0vZ*3pp-+8iauiK?Eb5gUkVqt*wBQDU5^8fYih5K~6~xVG023+gDui7iCm zrpEDiT0hIo-=t6QJfYD?EPTS=caL>iWQ$g35Iw{kqL-LU^brRVhZ6(DVq%C`N-QTX zB!-ER#T2TDONmk9&BSWr3StfM9%3yqMyw-lCT=B~@ONk)Q9EgPlb9f;h;2kqqb{jj zqL1h&28bb|G$J|5$jgb9#IS=HN2;iZ603$8Q$*}MnOkoO?3CC?#`k@qC8Bkx7tK;E0YiQG#bC-0+qL^V^$w!b^k{?bUCO?9_ihLw_l>A6=iCCz2<~CzB`1 zr;w+}r;@jkPa{`5bsLzj^RJYLiW&6aB|nwiM?Ra}PktJCA$bXTfP5Z#G5LJ*Ao*EN z`9m3^;v#w|Avg9ia$Y2;a&mK{C`@kdR7J_nC3PX^PIEC(Lwke^HWj0S3qsXE&K0PN zlXD@b8aR-dHF*o|Tso@+Ij>T%IMPMlezV{;heuRz4sBkoP+oFBx$LJSM;liIeaX#g zpdWdF{&UHL5?4f4oCU=s0h>UDJn-oxYVzoiWEHzC0Dz2kqsmFk{?R$Cm&88AU}*eNIrtRg#2*wa&TGN zsw1cf)5A#eDEX1(HRPknW8_DXH<2Gr-b_A*yp_C&Jh{t?IJ4(*RJ75c`f;5@;dS<9r+35adLTGS&kO+$>a(0%Y{q- zZ==GMBi=C??bbQYAor1Hkr$G8Cod+?CJ&M4ke87ckXMqQ050*XC>58}Lk+phD^^^g zl4p=NkY|y{$z^vtIat^w^6unKQ6xd;2v?b2 zD!P;V$+O7=_y6{l5n8v&ox`{X}hVHg@t>V-IS3(%8w{44$jjbt9KYT=JSVbKhciigQ)YS2f>f~&wf%>*2YH1= zsv2l-r6NxL4tWdtVJzvafg;3wvwA05xDi@9M!Z}lPh*h zb1SEocGITnnBW}xucLi7x!l@ut|^bEqKO_BlY3YqW+Bu}`$pPZ$SA|Cqd({B-i>S0XwB zFBKtrm_u&vjvYl_M*AXibMxyM@=DsP$j!Z|@#Iys-(=1=_mulk5oDd7OkT|sZYQrL zpG)4#5*tHaNBec;VcHKPZ=(GY@<=5;45y-*9xf(tC0|7zqyHnxleAw!-bTKRJirW{ zMDF=am-wxkN0gr)PM`-LJ={#*%m@SIg|y#KUQB*1d5HXK@-p%>$jv?Kz79uUsicQ{ z>7k0el)ReUCQrPgbI^~xmiCq8ZLezkSn@jBZy-fg*-(5 z3-U7ZYsf3f*O>X=%Lw!7p^6^PHUZE+jJ%rm3i4X=XUXfxUm$NHZy;|bZ!+_LD;2NO zLz4U@avu{=K;B0CIpk$;>k|1da?kHIf1cb=zKy(?{86X;p)8@|C*}l3cnEnV?e~#a zk)KPRp#NjZt7%_CZthtJ$!lqk+(Cu8t6ofAM-NeQ?@pbgapX<3-$-7_1Pml^ru{tf zR`M&!1KNKC56tzEq=)m#Qw;Dp@;2I+l80#blY73<3A}*3nD)WsKHAI4la3wbUqnSA zJv=}jB>xe4lmQ-2UPk++~KlUI{}Kwc|+7Dx>hb@cEcc@z02@@De2Bm}3<7IhS41XJlnG zhTpSl`p%lHE>&~YMQX8{3TYvv$!dYRP*p;bL+sPO!+yHD8a@`O>+A)0XB`reQ|2L% zg}@5nVi>2ZDL)s+bJ3MYq>6KOC~qf(c8 zSuQ#02v*wgg=mM1pk0i!J4Mr_GOj@=otkDrr+jqOn$snm+UYLww9^47cqud~7@fzC z0-c2Dr3+Q4Q&8k#$kIAXfmgt{ImG{Dr+Z1`Ob=}e{9S-hE>RN^gNY+8D1ny^ zD1%NOot`-B;9mdd;%d*b(<~P{`Mul;a?2mElVH!;&@4tCobF;D^+)U7M(;lBjttkO z_^V?#-gElO3iX(a%+O@@uR!!Y-Oe35KQTzGB-Rq+ z#01gPOP^Ov3=5{+ZxykDm?ZkW+FnAeBF2aaei_OvbX@bOiOVzvgdPxawe-*(vbYBFY{=r`nHSaD!iH6V>z*om>~MPX?qE=mY5*=v$Q=-Y#=I@XbCY!y!kH?T~`>1oDy)#2S5L| zfk^6Kk3>2F|L%b((moQg-~XEjqKGpJ4L~XU-wZ@3{~?H6-2cfyB=xUHqW_zLsQqrL zj7D7tqJKlL(Eb15^Yg#DS44CK2c4h))xE;Z|NT+?;=0by|LR^5`HuPdU)?Jr-!VV` zt9u3d-~Tv2|Eqh2^#A|;s`dNp6_I~x)%yMQipW2;YW@Ct1x*>vCi0up7XT70I@_+?pj6d$NIU4M11FKdx%(0 ztRmJCTZt*6uUwy3Ospi<5L<}e1@uP@6KgeMB&MR7m?U~H&?g3oVPYLIK~${jLSl)j zdgM`#=EXXkB++{{6XYOjqMV9qVgoTjJn#_yJ&oWp5`Xvo!UGK9IPd!y!6X0B{lWtb z;WBr94!BPJI!2QAl4B_9?2rl*i-S-O*Fob_kBlvOu(EUOr zGHnQNT={3~5Km*OzdPoVJK~MYeeNSx*`xm89)#VHvg{K-%JkZSKe&S#K5vHe4Sa52 z&stq%USj21d(ki4H`xBQZlC49%^ttjJyvkhTK5RS`_{S#7x-_({$Lob@(<~za*Fz@ zoK2o^R(ZD)*mtjWj}(93!k^&ab?(uEv)8$YO_1~ASW@MW?yd$^EKq}r%GDs(S*lke zC)}e%sdl?ROZ9TiR#}P6a7MYi#KN6Wgt2O!yFkKP3yg^0C^DJv`0d}tFZL%B+fmtS zpz9*lGu0!}y(KH|gch)nPD^=FLivYht9;j>1KL~U{DE1j=kwiD>FL1UZA#gb*Squk z)>K z4tFp2I0-}GDt|yXHK3@68Zf3`qEFacUW31Bl%?p(NlKkDMGtaGzfj$lw zKI`u`#_C;?k59|8i+ZZ;)!o7LH@Xjz!kx20SM(C% zLmS+~ME@f3(+#>}v+Laj<0Z&y#G8Lamhu(NQ$AOT>Ym67cS9zeyh?P1S;$M78sM6v zbTe@(^SpX@e+l=RdL90K_3kn4BieKTzuJ+wJ={>TsWhUE+CXqt2Jr;2zyq(&p4p9?ENzB}Fu;!98rS=xY#A z{$W|FU&R2`uc*K3=RyNVrNPfl4ek-`XaVxkPdDf^y@N2Eu<HUo%-N3zg6P1LJ$R(I%wq95i_{YvvtFS)AU?%s)>;hb`$X~JfAL3^53v?z7_ zZj|8)Y|6OXzS6O=eLM{PBY5z!9JWW_upijWbZ%y!b;{7^Q9hK5ugI%>n{rcq6W*{X z$7kMA>h5>3hZxQmbYXk{>@nQ}`NOkNmdC2TMPpQ7d^Xaxa#wqu077CrqB|PF zooYboDl~+Z=va3sFCz@15#$faR6UDUsGiVw>#RRAM-8mVRRc@=seu@^2X6AE`X_Q* z`o?wGCGr?DAK#c}yZR}2*a}FkKgnK^l7NSzSGfF&;~550r&kQ#;vVL-oP@Meeygf~4AWfx6(`?l%)iEtO_5-v^REYh4qdQ*`^L3+c{)3y`!-h$9 z$EDDY>#l|utyaTP8+j=`ocGoRcLDs#dAAbR5_dJZ3!DOVx&peQ7tP(fyL(&)R`|D` z(sS(Sr`*HFnx^^I=`J-Ff7(81CHCh8c9*GOwbecZ+yY%LHkFYfAh*=M^(oz*pGFw% zU1#svE>(GvOI?gGDlfA4!R8ES(k+~3yvS)3Bc9e3Iu+=ovm_JtVcjrfqFbV6_1l*t zm370@y0Y#gZh2bg_Z{N53}^5&?lEJfyrR;&k3l6Cy@QI}t(^85?;Gw@u9O)@o~?4J zOK*0mXOPBAZ?s_kvotA^Y68}eK zsY8l}t3zCaRc<0Z54+)a;N#l=z{l;6x9T<4;BD?r^g#pL3~g+g)lWY}>cn zUu@I$*XvnMOV46GW!ll~S6pf~_87{m!C%$_^9OdrXwpaZT{Qy%gUYGgxv+hAs z=wChS9_jSxGDOlHpU&oP@}{srY+-=y4SHb0rIzf~4L$h{+J$WXvI&}(4za)P}geZET7|Mn6_6xuk*eIVLI_TBdAl(1uSR# zQ`p9u(c}pHul;A(nD{(2K{-Bv%lBET`##;OQKWk0+vJRV6JFp#At;Thu)8Y2h){qL zp}aFrt>&ZmQ0#gRdG^F&E4X&o79-Zl>_unsioOtpP&j7^J z*M9#6cX#P2pT6KOa2iv&1n8`cdSUqOsroH4Dz9bD}@73o}Ztx#F1&X;Gnh>(WitPy;w%Nk)1&L3e4{l-z2 z8hwxocc>$nU@h)0iEe4D)}wwrh2UId}U?7@=M(aKLt9K zAC`5*KsPQW`zo_mdC{%+xUhpSx^w%RZg%NRTo1stB1J!)XQVULU1YA z1f?lD-E>k%H_a}wR9`r;If$m(eYI862V0KxF2X=Qregqq3jSV(^WKGQ<2aC?zm!<> zRqxX~Jh`x!NdKZ7)qi#G5@%)~(=oIErqog=oq-t-0agPK6yW{v^C+D6F8i97bTQrg z656uqclcXKwFmALCJH+2=L82e)6vJ-N_Q8CO^;a+kfT**$WEwA(OVj5$yuZoJ4+ zIhQyY+tchW7-MR5Zx|gLu03)3%D8>@c;zZfCE#lBvPZt`o+oLz>1Fp=XZn>k-Y2&k z7T_4TG5yNmZNi;~P4Oad^>^7HyzHJ7DgFZ*8IMue5w!L}>~j9c4qYYg>INP`TwiqP zyjF$^ioZ^}(a;5;YxsSKzi-``STMpjbP8_#AHCwuR}W4Kd*b22kj z3v|_;PJR=*U27 zz5^7Otjkf=@(e{5f+WyZ*+yB{U`#&3P|7WA^|7^7V|BH>b8;8H;uJCR7!o48V zm9j7RZ}&8JfBl4UU`F#lB#p{wp}*YR=sqhbS5oRrjln1M?%YL@@;tq-w7-wW$?zmE zEmjWDJTUe9!3d9q47W&!d!(Z94`Aa3e{#>X@E~9QCM~plduZ8T_RIgS3HLu!E7`;M zC%2QgXx@9vb@;2$Ottby-Nb}{z8j?dH)y+aj)aH6oN(eD`sHog|B$upcmBin%WM1y z8}U3B!F`IZ2R09PiWmEbJBTgB9mFo;y4ZJ7|GGwOEbi#Bqqu|ER6GqEUevE{l$@@y znLGiENIkYu;eAPa2oOWWmTawu*Qg{m*};RtJw3GDX%pauVW$*a+qMIAYeFC5H#GQug_GaQ7{EHhWm944Tc9b zZ!tWodD3vDW8AFO?Z3@@Z_+5dr!s*NrYK+(Y!4yBQATo<7|sNi8}4_^s%r$TCPJ1# zo8gSldzDTA^N$y+sW5d|PHrwRtI2Vh?;H)}x-H|25b`0kd-&ea$>hc4Cc;Y1BWgcA z)Y8L#rXV;!y-|h9O{0pDn?}__&H_U#)90HuRY>knw!ioi|+^IuE|N={XLPn;ch?n;h4Wn;gfl{JRO1a`6mJ?Gn^@?G2E|XXfiygd8^@3&D-Wh7$8#+U?b9BuzuHDaR0zd zaM$SY0|&#%!3@;Ls!RfPisR&_o3@ghD)L^Z{bO!&jv%=y(QRw23-$GcF{_O#*xurzappZsxg4a*iVrRYQeoR4wH4nx1o9q65SO9p?y;%NMbK09l6>1 zq=npURnkU21b&_I$A7twz%OUxC?_APsj49#M&3kzD0zZ>IJs}34(~AXAo&RLF!|wT z{*O^nXaXdcFM8$hT%iLTsi_K*%NM4vl>Auo7de!LGoJi$V4idshC8rey9VK6}%k9W@9sHA3Hj;dVe&cTwd8ZjTgXevW9#(Ai5bWe&*=>5%?NNi z-m# z^S>E-OAg>cA~z#r)j{lj_>rUfAa;|3*x%drCncr`n*ZKIP!eEDpz_%Rmw>TH4`MeZ z6#F}SL^l%Sq3Q2DXuB!GmhZ49zr*hB+QuSmrKSpkT|Llls-WZ`cE6NAj>_+_d%7er zV!BDtIUR319wdM$?X?H7n>uPbh}~3CmtGWMKa|k57yp5}i4(c5q`*P#x{^u`YS(34 znPx}-GbLc!c{I&Khu!2L^&O4$fc+d9Fl{WYn@j&U2`~|O4l)jy016LcH;wdQ2{3Ie z)aiVQzdZq_k(GDy(AjPh*rg8J&o>GDu94IiZ|}xV{C^ifafb(qzuj(fSauM*$zk{) zc9X%Hc02!p(Nuxoi4O0}wtLX)Tw@Q?-g*#wl=jp??21L`-Odt-sPqU-5g)7$O%c}} zq>-8uiXX&oN~o1~lz(~xOcA9H62L#2z^((0DM6D!zaEIB{?ij+QW)$qQkeiu0{&kc zVZf;Zr~RcTz!dSpMmm#&GE;{K$w2fVc2mO6NU7U@dIJ1xM6rVe5Tw2NAa>Kp4%SG` zNR-6+5nY@*0iNr1t29O2%xgo#ljNp^yi2ryQzAifQ-#&h^zagQq;v0bUjLf_1IyC` zEF(7ohRID4){>hNYbG}(lp>F^#QZCC_@;y!Zi}R+sP#6@O@bt!RG1ukR_X{$4vWc64#VUohqdG;M{&a$WAv`{1h$Sz=4Lt%w{sn3O*?mD#D|RS3LRyvV;4@UfsbF0s3F`N9jdWM{bI!@`iMKbr;@1Zv3}&;VE)c!alY+ z<{v5UtUwB*+t>L0rIH1{x7G(q`2B}rXX&(NdZSPb0acjI8#t*IAg3aJg8I9WOyX16-oA6GjMoT z=@gq1@ROVPOUO+LRFj($s3Z65;8lV=NbbE;hi~FnK`KlML=9&O8VqL&l7=${zI)TF zu#DVfAWCjB5Z63nN>F)h9e~L}klf@TOm1>eM;>L4TDo*&4~K4(0AEd)1Uek;-*~8@ z2b01ka#O?!a+5$WhfjlA96=+du4=F(lI5#apV2H{VS<7*miTa#N61?qhkVhSkHs-xmM_^J|Y&c7@(r~u5nBh!8 zi{VUxpX(&$*D;nG9@M$PLWVO2UzbK3>e6Wc;n86t zBmCb!o9cKpW$!J^{B;B+b1NRQ1a`VrHSjt-FDZd6{|NslxN^vCz+HGwvKX@bN&FFb zMp6xV6z~%~AE|--Iq)1j3u%BX*kcHKFytKILb#;pQAqJ&c)@2K`APeTUm~{dcijY0PXYl3x;$65^vK7LkC!y$I zr~}@G#|_Pp?*aZKr~_I9{J|td27MUVN1gz@?pC?LEpS1|O~Az=rAi@3f#Df&kOl9b ziOfKb0cXzA{sq5^oQ9mi&<31{rvNRGOMrXf+8}=jd_kTDw4m;Rm1khPFvx<3mnk(0 zav^ZgnFtiJALu>{?FMoN@T;?xS_-)hxa>S^unM^b`2P9$jvsO)0U`GSrFMe&f&DJT z4!n?afdv;~nfoiZ8VKA67le#G&Q;G#bRxXKdoDwcp%*-4AxZ$UALzRRHpqfY@qzp! zkOeD#fa-%Rc;63E|7{>^eyG%|S0N$0-D)SW@3rU=kaK}=z?DIM6L@zOat1jDoN=A* z1v7!~{s<96{~j>16ne-};IQj;Q3rtiZ_xgIz(;OENx)CTO%ZuzNvW+Mf?vQ%1S#OI zTk!%2d6xfT(~3Bb=|sQWk3zk!Vp>!NM~{$w4x9P}|@!FruD zKX4bEWS|9j$m8hy@G}tjHJpqYY7-s{J_#B6Ffg)ji&E=Bz65^Jgt#E5fODQh*nE1o+HrsE)VMb%9m85E*2_Ijd&|kY%0Ql;=7&IX71m?bn zTtXJy1SiG28F<5QQM}Mcfp5cALv983cpn*noCBPfKy^Yc1D?MZRSdZt_|ONaV#tp~ zAl&vLx>+m6f8ezrE9Hk=1?=%V)G_27pyyK*C1k<2&(NhH3(ia-GRT6z`Xd@L;=qsojQW=eCJEunzv#LQ1J`|{Tljil`F<2T0unsajW39Q zgNX$Ac!o=z2ssXXDa)nGAU6YZeJ-^avLARnoOInsfNS#Mp!XHH)YWj(KB@|EsgQq& zHVgz_2PcN5z^s8TwH_yYILM_w8La($4xBN><+S9Pz-@5S0OP=ALtUx~{%;1lhr85! zkTZan9_CWtKwbzuZ-mQfALYQ3LS*J0jQ=A1>x>OzH$WjOerAR4=A9&RnC@#p0f!Cgm`g{+G z0Nw*9bt(ArMJ`nY{Z8P0l`gdqatwIvr8=@A;LqS{L=RkXnM=hW3$|U3(ts?ub|LCN z0kVFfOWl73jB*0-`75=&19;sJkci)+O#uHZ>{0>99|9{Dp=2NnF1XsIsze5Ua1E+P z`~VkKxl{w>#lX96#;53z?*Y!g*QGpr&@JzcxYSQUf*@;vr#yh_fE)t;{$ZDjLQVlk z{v3@9@+jbM*Q2x`CxC0}QLpdgTww5VBo4CRY@$+=WKJS51}swe*7$|267VE@ErUl;2-$Gc9$xK{2_4R z4s50XS@6M^P#usT0nUFJRRFmR_%)m?SiS*9Dqcm-UB4-qls1*K{KAp00Wn z&Y3)RxzxF@BSG+A4#c~;>Kn*{#cm^pI# z;HWR)2XX+o5H1Qi2K+so3_dB~-anv(p#KoKA%(<2ZUA2QN0ct)rNFE9xtzu7V&Erm zEzo}+fpGtSqewwwzze>_r}+PcmJIv|&IdUOT=o?b0{Ld(;eW<>0J#wOQX3Knxfyu$ zUywM+0pK}bqx(S?oc0YyQph3TU;l=72KgJ{6W^l#TR=8LxJ6m&L&*5zUL9)TQ`ir& z3U8H{MN<1%I4xsrMk)0(WC`f^R;GAU6;qhrr{<80mnA4z$!L$ismv zu$|Hr$bv;f5E*2_B0qLc5E)nlw+6CcWT>UqLyiI~hgqr_vfu-UA!5ie;OB7SUvOO{zbbMbY1 z8RSx60%q9Ubr~qz)VX$h))&N4v;v= zUbrOW4}rc}y3zT8e}wxS`Y(YO&9>B+kSl??_$pp~f`JRT4K4?A8_-vR>VYhHC7d+O zHNbb_&Vl|t;Ly`i(vXLr9zg^kr66Ad&z^&vp--O!96VRce&9=R(hHh_5q!}uexkr8 zxE7o%xatgiG!1zTuxy^C9)T?Q5S*O*2yj2;ocWfzqzsvfz*8lJ{%4{cz>^O+7EZ4H zih&V0$w3tOOOZcCB7k4P_!u7gD&Wec*j3(TNd7Xt5vD~8+v+yf_VA_44kgHC8J z@D$1=z)RpH{P%#8`AE40Dy0BdDFFd%ZnV^5$T8p(a8;1wz~gR3Ux!=*9B>;VfGpc2 zoCGI<27y0?lQ0{Au4;rOet@gsY9Y&Z9C^2+#848!+tL3gfdtSCN`SJXU>$C;2;L7@ zj9wu4w#c|oAoy3f6lB4wJG3mgi?X0>H&u*_S3%h&PQnqCUEo9(l%3j&U&r__f^5wu z20__oO=LmY*GeK2l>MnhFDUy!iC$3leNtEt3d%lDA`8mCP9h7+9!(+(o<~`5Sp+{4 zkZhnN8zqS>C>tS(EGXN=NW_A&dx?~UpzIqWdO_JIL}WqPeL`eG*`7mWLD^PAWI@>) zL*%1Hh>!@@QWmVIEZD5&#vks;y2aI)6Ug|yAksY9qmZxmqooU1Q_}6pF7~!AJkf=> zcHyaXj>l|WBJg(MzAoI~g%^UCpVOXxm3%Hs73Otte=GlBjYV2&U%}cizVuzc~_L?E-cK`4WyTq@mk4X368{G|?VRhuN?C6dYL>tFm zEomh(F5TWVA>AIDoNjLjwcDNeRd80ihq^iK9-LGZ&ri3<&Plfi7Npy2FHW}?UY>5R z2^+hPU-_?2_fWmWc+jQb!{?Bli!^$3y4`zwy1i;uy4`bkx;s(3yi>QW%TBj@y<+c(U&V6MJ$MSz z1E?LGZdcg4vvUMB*siv78)?Hnex2>rW5BUyF^6X?IOeYQqk0@hu1?*qd3<^Rp_9{j z^W=0M3W0YTHyUQ8+k2^aOAAc*DrRqA_Oa7Lnsyp#kmq*of;*rX39<`>E!qdZ}KJ3I( zy*&zpRr^uh-{Wl8W)!Uj9>ooe993d)I!|JIIbWv?so@^AwIlq9iWhpYr>Y4KkLQl? zs8ELoRX7^zghy?cNP?WFts3pBSc;Xq4%I?>}Q@cE>xl@~{jv>LuEaOiU z5rm9FFqw&eVeUBmSWpb>pvs2@L}%_rx9!Y5=%$^y7wd`6+=KOl;d=bTg25;xp0-2N zdFrTi9>jV8&$-)=Ld^f2&-Y`#@63Ie-aB(IrgL%~zX$VoXAcVVb!XnTIGv|%NaxAw zbe>q9&Rf@{^JdJJI(!|!ieq~09AOh?!_K?`vtMUkhuN+(k70J}%xf{3b>=mgygKu0 zOjZtO{3?pssk4VFOh%n~7?V$DUWv)3GcU*F(wR44?&w@a0n8npc?0GS;U<0+z~s@{ zgAbEM=Ky6Nz0SPtx^$jemd=wa(|N*9=dBMqygh!^f}yu_1kD&~JM;K+>AVFiqR#fz zap@TdV>a!ap_X4~sftdsZPTyNZ9TW`nV$id*|=wZx39i9;NLcPvooe;wc3ekSw%gr z$ihP{yq5xO91_YJ>gsWf8m*2|Evz;jCF zUst#;u&#Jra9wC!$+|N8XLCG<+Zppc75#i0{TmB61~wLN3~mf;!ILvllEL)!*b@2U6J`|ADmh4q2@;`(5HsJ^7WtiHUyvOZj2 zRUfUduCJ-Dt&i2$)i=~P)yM0b>s#tu>l5|K`c!>ez1ry6=-qgrbe=HRGblf?F}X3d zv27!A8NjU}8C7DQm^bFL@0{l)T6Z-&aX&n)$vd}wfOXl=>b zvbE)FE7ykCR;`V$tzKKRwsvi7ZQa_2wM}c|Yn$!g&O=dsQR-P}e|wrI=dk9DEgM@m zwnys6u83B9lrev-Fcydv+e1n`D{X(7=S6$ZJkKvOuybv=@%H(ib6xhTIi4JO?dOC4 E4|>w%>i_@% delta 106977 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

W9B{j}-qw4``kAfNrSS54fu*Ns{%F z*O*e}n>b7PTv1h)Elrf5Mx0}l>;k1YwwT)6HACrUcN*`$2i$`s-7QS_od?|Gd+M)l zE`HG+SL)Rz_P7?E-$~Sqs5iCfj`C=WySh^9OX~eE=PPyI1vrN-wclyciMs#Fb_zqcANagZ9|LWe~oAcTN*Cii}hyD`>s{YTL3Bgje;_q}(uc}zF%Rems zBRy)s%z6rXJsYNvTc0!kqkF%TX5=BQGCc z64YaD0>;{SRp|<7({vbhp}n{#|PSiFexPKI-o4^thZPGyQCBHF>h0~1>RNsOQ9a@YZFCQFW(vPdvCe^2 z;=uO8fq7Nc^ZLNzQW%5{bnT^jCRk@`wlCVK)46q{`*3Nkmyn+5$J9Y>JjKMNJb%-3 z?2`~K@h@uAy>kWi0s6m0{)9U0vHVjHej_w&{y;ShJ#N_ZduInGs-j5ijK}osb@^lZ z^mPaJIn?x$fzw^;mJ?m-Tj(W?&@!2&S6Drx@d^0NJjvyZ#+fJCpFE~V*0{&rBYS%B zh*>VxJlCb}MjFj??Q;<3%q-GFogTGN8qvP(aeZtLK@XKijTR$(WC><3j1Zh^2YguJ zbR6^pw&&R0+q2&$&XAjQ{hS0HDQShJ_d2J<1NU%Bv{!7><=(Q%J*=nPUo3Q~HP^V* zrzrQDYwS-pxySZ|RpJu=d`z#=dJAe#+ME|weX~o+f}3|CEY@gWxjC;cO0lx4TJ2JQ zL6}-?uS1yA52&AP&Kv!+?s2J>W|x}rJqv1&eIhTca*a#P`Kb<@^HY2F6Z%qR#S`w4 zW94|8QAc~>zc2dFFUPFpQT=E1=^6Qhu~5iHxYggYUwgtmuIHE@YH_JP4`R(yGK2LAmP?;nyv03k zwv%rav@xXAJtW@^XB?xD>};C3eO^Q zUd95)ujqcg@fCXu(m6x+%i*S3&wzt47YxK)P}wsBrkrx%LVrb((+|Uj7Z#!a>Klo{ zqsuVc?u)C3YSnY@(sRw!cHKr-w(}Ct>Br6-(g$-$Ip&ZuRW(D;A!pgj;B5PDP4)jKgG)m=Tu#d&hVieuzkZ*yi9TmE~kQp`cx23_J+jwS*q+qefH_8k9AJxT*vfZLK??Q`fUgxQzZ?j zQ|ME3P}u1_xWpPXb8j^WmwkgiG?y2=M8}WDok8}zbKmmPHhoh1g6UR2*)vkst6+a=^gJj9KAs!C-}>PTa(w7GF*eO;>W)LnyP z%`uj0h4U@5)GNo>Z)|rTnluCFk>fB4zy%Q|Drq=_D{uefkGIqeI0RC~F2U?He%ED6`9+rU!*!a% z_QMU$cogzE_i<9lPo8rh>YO)a3filx1Q)EBi!r^(d~CYLcd^*jM!5Hv*|VQ_PffPH zjK0ThJys0FvR5kh>Mp+=*3b*C#PpIEuMumXh9zE}-vjUq!Y_m;A!fTCt513x;Fp)) z^Wul}Q(oAAKt^(J@B#n%wkv8p7*KySa*qjB|D_3{hzW9DC%Ims;bl* z`X#PFs z(=B{&T>c3uvh1uapr8ty;2er%a zCu|OUn?y?3wTr{To= zn|s9oS-wIfTa>K3EEaYk57)t}nVdX=9-YR6>^Vbc@Fh89m?g-Db+{>z_ejm=CNxYo zeJVjVeJZUv>3l^%@@QuSKQrtmhspk_I)fBBPBxvY!7y{^Fw7?L9;Np;O%ik1X@7kT z4JHCRNmmc+V`!aHc*I${LEWP-h~r1dWE3ZlaDJ)+P8SztoqWtBGjNDJ7swbQIDML1W zHAmiy@%=M&dX?k|c>p;DPD+OOGLf^jF~UG{7g@e>D4YKqIzjm&xomN=Pot_Q4<={G z)#My`AF_WYzXLpk9+8rl2v@^Fo+jqE3@Q}zBM$U*W*a*Vt$Idy7M z?@&XJRz?^_&XPxyy|Z-u{m5Z*fSe+aAvcrp6)$JYlI3TAvU!rH=>!kZtO8{DRg`RT z@;HquMLvj}CI`vwWamp@@arazXShG6^P50UhUwvaMGc-Qvh$5Va4VT#S5sZ&uQ37d zH+6#Yx<yu0x=!zChcW&F^f-nQqU2-Ab>s*+O+Jp?PL7gu&)b|p>glBpQH%*Z3CEPSYZqMOK<(I?9=INyu z`<+m%_s~lx3^Ux<%l;{bhxQmQ{f~_l+hc^D;9iH3iP3iVp4(WjnSvL!dkWY6UsrN& zPZ6Bb>q_?YQUm%o2k1k+gqu#-u!m0Soc~RP|F7e`c@G&#+NKk?|82PbQoreBy%oT8 zvaY{PAS@Y}PNx3BMD({aVNy@EriA}!CT#7ckC^>CdkHrO*u8srl5@E^Lhsr=cOr9y z!Cu1sPCvmtY%k$qhS%*Do-`+u6eBe37Quv@QIhE;{GaVZk-|=jH9%Mcri$W)5qiQ+ z4b}A$ZfdBZm+(Co5aZ7jz_ej+6OAcgTQ3=y0%m&&Hw7r@gfjkjFTg+QgdM#!fjNNC z?wxG68t%^9-T3ngW`cq<&Wd zPLj>%=uu;;xR&>ZhU>|uhBD?}(wzUZ^e{CLIKME#)S^PpkWGReWYb5w$tFGTWqN

5K zjF8O{){)H-Hj~W}c9Q)(0PnYTdSP-%Gmf7*#u>r1vHv@TB~Fk{fih%Mpe)%G$a|IE z-xMfLHU-K!jQmZB)R}q*QzCB<>nwvkth0>tu+B2x!#c~l9@dB0yo;R#+lATwDXEpN zT@jozdCU_KrTh{e*u_o`{<8~fC_*+h`WYcH5=IRVhfmK|y$KQ??Q#KoB4jqPBCF$LUVf${wu$ydZ(6?~68cNc`l(?2`N|+}5S-=i* zimWcx37P^2470#-!=}K7*+$7OeOegk}6Eb{ogdyN%;kmbj;YWK+Q4m4yY2kxc

XeFB}?joBi_ASsEgjwZba*CWFE4FbUuSq0-72EB)Aw}*v zLb54fmTU^>y;v8(6fj8kvj8!2n4BV~%%h=v>Em@ zN6yeHtT|vf*rIpB`GHg=BrYG$Y_K!wRYmxgupFd3%FCc`Y*WZ1o12EKE3 z2Ic@lWRqT;Y|?Acyz4b*Gb5NIXeXOK(Pfx9w6e-g6?c(M0sgspW7@7)L;u>ukw0&= z{Gz`2Ypx`!=6bwkk>8WoL$AOalQ8TQ^v`fn*xk_WcvCVTw)_wCn0@e)4E6!g-{S>I z3if-@Id~b8hArA>IM%|2T>)JH*9lv+V}w#~!WP{z5<{uzLAPT}ufajV7LDR1huEU0 z;RT1-F=zlUH)>#ujtXf10Q6$K)R+kW1oTq8(2)3xpqJuhhGRp|!Fvp`YoW984nyoY z2jVREGrYhM$Uw&jm6{2AB6JL1RMf#f06GXSDOSSvLF@5?A_H4=A>K`FgS`m)0p3e= z!Ttz(eh5zuAHoqskHGte0PHaIPk7fb4faRS*CwOp9>V{@XJI@w1<$$>unqbg-Zw}> zJD|tmT|ox^)1mLfN?5>N&G6I=$i{3yK$o=UW?4 zThP%l{Olig0DAvyoIzpBUvu}LgMI_s3!Qcb3I$vKt^26CC^+ooG#JO9iEACebm+)= z$N+W_`t`GPA;Qqj=irDRaXWfKE&2g$`LplHc}N(x=)LEo`CyB#yg;c%utm3Ch=YW^ z4f^TDNDKC7(5aWA{j-2+m*Ne^BDC3~SXBYK3C;^!{z&}F%XDwQ3fiX*8NO>rgt_ z@|WeE;xJT1ue_dZ3BA4^D=#2UJ#_r{P%9hJxuCzj0q;v;zX`qZCiDr|4bWjLP(!f& z&>!A{CV;&P`sPYBb5eGIG2};Rd)T6H|5#Ub7xbxnl==w%^3UnVH|rylKT!VyPHIT4 zQR;-BVgEKXA9U<}I*$Cm`s!bxhTxxuj=Uf91MC{;uwPHWMXnh+_5|5!)pz9yQ5+SffZ+jef3b0o} zzr9J@b>d*fc+k{c`Gu5ExPz=9R1^n z550LC3J7~8^yclTYO$doJc|wp`y=S27f@K(Q=oHSLYlDS&`;&>db$9g;g{jlI&qYn z&>5j`z)AJK3BB*vs9yMIpd~M(N@07TlV8CRz@7rVekX<*?0V?;Uqu_kZh$`j8rm54 z4rogjqYQQ{^n}+j6~msMgb{fYRSFOdy@gS*8NWY)E`JBT9k%FR?;#%SDroeNO2uJ| z4$J8w>W6*~CzF!;0Mqk_`rHwK-uEZnd>QDwAL~y29yI+|w0{Z-iSfhFQN^%VK|lCH z+6M`JiB*&=mwFSn2RgITrPLE{6^DKsPKN87(47NZDgggjl}r5+PWnVE^qT{<{~YLp zaN@rKdh8&V3L$=t50^4y2J1)%KyQGPGuv|L=WsHd@JoBOX&;xGh8;FTj~eDuwXml_ z*9>>5df4|uSNmN~pGZR+M&c*f@E85fzAn`cI}2?Ye2H3jy1=yTWLC+M(uKRtXEWLrwrJ|7C>(6jB|mei_h2uDj$DW4dm06TmaRwOU{^qQz{$B^ z^zC1w-@rcyt$je(bOO4f#ibHS1gwNH`a!e}>;N_+IM%{t>L&^w>Nfx$lm-Tz75Z}4?n^Z{K6eAQMZ-@=DwMC;g)y`o?ybS_S_%q067eiU2ZPq1Se}R4e?KLPzaD=fX8a z0Gfr9jx74YuUx7VaXy0X_iLB>Y#ZkP0F2QuBhoY20s7)Am=9ogLTCR5Lj`sm`qwN9 z0{b&)@^!Q^>=g8UxI1CzpjZDEH7EYisc-6xr$Il3lLCDPed%{-9>nQ{F6c_4Edhxx zR4-h`c9ax);P3V16NHX<2R8g`pnrf1z|KJ*d>7RVdjs_T_b~1;rq@Hq`~hnf!2bZ~ zt8fX}S?C?_V`74RCv?;wQE1qKB#cctR2^V5^xO~7@nF|NOaFwz!S+BehO2lM1%o!pI%273zhPjGW!e*}Hv6BGh=JM^s2Pzc!bq1)k-()JxN27G}U zKtL6=^GkFV*rLPn)Lq)%4_yYAgMS0Go3`lvE=v`4;OL?47Jg_9Tl8hOr6$7O37t@C zsYS3SLYI_dbq&}{%dMo^yTVc%06yrga64f)LTC0zX0Sy+f~$EBM+2SXMWV1pW0m-Q zEo{*j2jHitusflZ_;q+a>?-I+xI1CDLC+e5UqZv458bx6r8=I&{4d6$!N?2&qKm36 zRq;G*Xa`&Xw&=!v@cUHQZP4Z+C?IUn*M=iw*jeZSejQ)*9XRRv??F=|@DpoH^P&Ss zTB-r@ebASa_>hjX6S`_&ZHpdTW2t))DFSUAjcSE0ddq&6dK30as6Sw-su$2S(B`qI zA=si92JuT`*a_&b#^X2eusflHCR%Ex#D`WNf|`Jx^uxFygd>$5pw&mACSVVNZh`ae zz|lirIT{(j&OtrLSSk$L3*8HD8f-sw1Y87m0{S}KblB=x_`@Y&*Fa-%(&ysPgCl7F zMF^M}vD95~SHW(E&crX#>tSc0pTn($9l|fmV{jW_i{1w(9djpipA%3k@E-y_6VCG@ z+8BE9bo3|qPlVnMC)X3Jpl6(@?f8j!lu?RblS_#_(2Z~ssSVl<7ehj#+fPQ@!`=yP zjG~=ki@pIT`@RW1;uLL9hu$*-2ZK1x&{^NW548~|2E80kZujb-8{s@j96=k5;+Yoy zw-kkd9tyV#b_m*vpRV5tTlB!wbOu4_g>Z7Q`WbZLH+4r_1$`dQ@rT|yTi1|i<>?rr zFJVMLuYi+-Tn|m&@GbOM1T2TX3@1mk6FTw?ZP!3AgOeTVpfl%M&e>1&PB`%wJ>yI) z{D5@g&`;sy=Jhk^74s}LAO2TCE6&md75(FU?Eezx{~U~U=b()dX+3noxp1&Wx4}sp zi+0f#{qgzebcmCN7G0nd6+Hs(J@|*A-&?=~gKmL)6aMYcq6^tf&;=JJbp{InTN$to z`YG+tpuvlf!LQI9(5V-LVNZi*;H0WWu`rW!#6{4GOVC#kNAx4O2yD?&3w2%r=r1p| zR2=@TNf^&uj!p&WfS&Vh^nBR0(3jxaVCSI2>U5v*Lr;N|W||4Tj&=j|9yqD3Ay=SA z;kqPEXcjIf=|DTaW8r28lNIz&a7opPF?to+IE9kKZh)S4EshwrEUs}ioFtlpz5*wS z=AcI|#yl@^pxfd6uw^lfQrQYQYQvJhGqI-RI2UM2~N%Hm{Vi^>9GVvEXxVPcEQ;$LEm$`ViM zN0M&GkhPj5KvdR0lFUS9y`$y0XcU$8jl>p}^^C+8mGz3m7F|tSRMr)ebVOwxA+bee z?H{p4S10iy8OvHLvUZ5ngs805A^xJWHiy`vvf_i-qOwee*rKxBh1jC9M1|O*8)=Km zY7pWt`abPGVtAH20WD{4D_!GisR$LlSDoyf;87NC>CKkijlEbcB0s!)w{XvH;kn(y zyLMw$7$2{A3O#VvD$Fpj8wYpe5I8=^6d$+wKQC2*fxB4N!JLg}L}p9PC|2#q8^Uve z$d8Iu^C;ti=Rc2wy}P*ag<@4(w2Pyi;No4}`f6c#g-p`2}b!2ImzpP+l0`fCaPi!~IwY#OyEmtNOu(5qwyoDS#Uuv&Dw* z+CluX5IVLnJUzWIJa|fBc;l?X z@WAPX;SF&UuJc#^vkN2CpKl`QI`Caw7@k^G81B8IFud-X!f?-$!tg{r!4f*>uiADNMhLu7m_X}Wh2j493d1v4N7lKDp%nqC+oeM(^h!C8gjji(oe2jYd{ z4QCgI`_C^7ufMo7Sy08kMTHSkR}?1Ty{0g{Zb@Odr@k;eabsb)T2UBYYbOgMbl+YW zA>LFNp1Z3sJoeMVaPJePYHQxtg@v1dyao@?}Mq2zO=swyu+^u|U4syQz_{)bXkpT}Jvl*;PSJzKKw<5IOM&%^g= zsd_Vy@t9gQmh{Aj?NPFTn%TO_J*p^=bNvdryAo@)<{gl?%A+>yil0;+Sj=@;UWD9W zkBaPyphCkCo>v1gtT@+ba);)?`A3urc$|fUO_Xl%dIQkR7>|0iCw+|n#5j+d(c^(9 z;^RHeipgf5D6U|_2B3kPQNTXCJQAxs>dOARIQLVJDj%?m)kY7VlI-Hf1{Bz!%s&mt zAYwd3ae*;CkNvoy7@5aDTtMWr7sEE6Js76>?8Ws&K6`NeU|7$8xL`0Il27-5Le60g z;Qa6~t_P~}3KYQkKR?`$^L;-1aC*;YFHYxVoxca?@B9b~=j(j#o?pnhiwe1`u8^~f z3%PT7A-Cgfsngf_t2Ue-^D}J4*)X3oIQ!*uGtPGToW|KLpBr&9%jX81yz;poCo6}U zze?fklpmoEC!>5$;N+9fwK&=2a~vm^e9qw9k>5l?oICP4gL8+l$zKI=^2m?i!^t8) zL4~oi{t&lfUY~)SI6{JEq!vZo_qbK6l`XD4%nq3J)NG zvuXYTWuGin^YhNO?T=yDdcOPG+#J_am9c~ z#HFgGf3$Rjt4~mkQwL*}%7fK-d-5rzKd?Jyl}@oMW|Z#85Bl!AGfG?Do#82Qxf*P1 zrspVEy5*Reo+DhYOw0ABdQNt^+FD+k<(ceqb=Z|L4{8B-{Ad~5|4q+0`>Jnw1|>Uw zp8a|5=kW95ahC;6d(-}OFda@u)A4j7ok};P)9FmQE#02(NOz{Q>8^Ax-JMoVo+fXT zzbViZYzj4nn<7oordU(FskSN6RM(Vhs&8s&YHUh3H8*9NTASLM+M7C>I-9ahT}`>B z?k07I=ML{3zB~NZ9f6k5=XyrCii1B5|1@fEih1^Pb=%)R&2yIBak>=pn;x%~RrXEa z^wfN#9))Q{ahg$})?SL_`v-;Etw{FCb3FUo!{VOMK$XGcNYp^&uJ~QGcO~w^n@|<7 zZ=T~hV&CkVt~I$e-D}iZ&sy(V-&+6Lz}n#2(Ax0Y$lB=I*xLBoTHAHHXFq%F>7J1N z=xLs?{l@8@Ar+mvcD-1M*J^oSuBX;zSD)^QNQ`e3`SDK+Ex(-W`Ibw*$5ZY4f6kgf A0ssI2 diff --git a/Source/CHANGELOG.txt b/Source/CHANGELOG.txt index 8dbb0aeb..8674d810 100644 --- a/Source/CHANGELOG.txt +++ b/Source/CHANGELOG.txt @@ -1,4 +1,5 @@ -v1.7.x (dev) +v1.7.1 ++ SeCiCallbacks/g_CiCallbacks added to the callbacks viewer + Session object view and access rights, merge pull request #8 #9 + treelist updated diff --git a/Source/FILELIST.txt b/Source/FILELIST.txt index 056276df..87aadd97 100644 --- a/Source/FILELIST.txt +++ b/Source/FILELIST.txt @@ -38,6 +38,7 @@ instdrv.h kldbg.c - Windows Kernel Debugging Driver support routines, object related internal API set kldbg.h +kldbg_pattern.h - patterns used to find undocumented stuff list.c - treeview and listview handlers for main window list.h diff --git a/Source/WinObjEx64/Resource.rc b/Source/WinObjEx64/Resource.rc index fed0e4d54da49a36c2f1415d6994fbaad8deb3a2..d195667cffcf1ee583ec02f85d9fd4a17682f873 100644 GIT binary patch delta 145 zcmbQUlYP!k_6<&k+`$Z$48;s345haT_ucMll5#k TrpJ{say9GOY}d14%v%5epM@ok delta 160 zcmbQUlYP!k_6<&k;(iSI3?&Si3~4}|%#a9X=QHF@_BB+UuF%iOHd#)eZ}Jg7fz68y zC$VrFFz7HCGFSky(PVowT@?O7Gs(>p%w9181@+*H7Fy{}-ekFBvV)t|<|S4>jA)YL c)4NI-xhCt`a7>RYW#nqsv)Qg^! true + /NOCOFFGRPINFO %(AdditionalOptions) + UseFastLinkTimeCodeGeneration false @@ -443,6 +445,7 @@ + diff --git a/Source/WinObjEx64/WinObjEx64.vcxproj.filters b/Source/WinObjEx64/WinObjEx64.vcxproj.filters index bb434c0c..9fa59abd 100644 --- a/Source/WinObjEx64/WinObjEx64.vcxproj.filters +++ b/Source/WinObjEx64/WinObjEx64.vcxproj.filters @@ -343,6 +343,9 @@ Source Files\props + + Header Files + diff --git a/Source/WinObjEx64/extras/extrasCallbacks.c b/Source/WinObjEx64/extras/extrasCallbacks.c index 7f3a36b5..1f5fb452 100644 --- a/Source/WinObjEx64/extras/extrasCallbacks.c +++ b/Source/WinObjEx64/extras/extrasCallbacks.c @@ -1,12 +1,12 @@ /******************************************************************************* * -* (C) COPYRIGHT AUTHORS, 2018 +* (C) COPYRIGHT AUTHORS, 2018 - 2019 * * TITLE: EXTRASCALLBACKS.C * -* VERSION: 1.70 +* VERSION: 1.71 * -* DATE: 30 Nov 2018 +* DATE: 19 Jan 2019 * * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF * ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED @@ -22,6 +22,273 @@ ATOM g_CbTreeListAtom; +// +// All available names for CiCallbacks. Unknown is expected to be XBOX callback. +// +#define CI_CALLBACK_NAMES_COUNT 27 +static const WCHAR *CiCallbackNames[CI_CALLBACK_NAMES_COUNT] = { + L"CiSetFileCache", //0 + L"CiGetFileCache", //1 + L"CiQueryInformation", //2 + L"CiValidateImageHeader", //3 + L"CiValidateImageData", //4 + L"CiHashMemory", //5 + L"KappxIsPackageFile", //6 + L"CiCompareSigningLevels", //7 + L"CiValidateFileAsImageType", //8 + L"CiRegisterSigningInformation", //9 + L"CiUnregisterSigningInformation",//10 + L"CiInitializePolicy",//11 + L"CiReleaseContext",//12 + L"Unknown",//13 XBOX + L"CiGetStrongImageReference", //14 + L"CiHvciSetImageBaseAddress", //15 + L"CipQueryPolicyInformation", //16 + L"CiValidateDynamicCodePages", //17 + L"CiQuerySecurityPolicy", //18 + L"CiRevalidateImage", //19 + L"CiSetInformation",//20 + L"CiSetInformationProcess", //21 + L"CiGetBuildExpiryTime", //22 + L"CiCheckProcessDebugAccessPolicy", //23 + L"SIPolicyQueryPolicyInformation",//24 + L"SIPolicyQuerySecurityPolicy",//25 + L"CiSetUnlockInformation"//26 +}; + +#define CI_CALLBACKS_NAMES_W7_COUNT 3 +static const BYTE CiCallbackIndexes_Win7[CI_CALLBACKS_NAMES_W7_COUNT] = { //Windows 7 + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 2 //CiQueryInformation +}; + +#define CI_CALLBACK_NAMES_W8_COUNT 7 +static const BYTE CiCallbackIndexes_Win8[CI_CALLBACK_NAMES_W8_COUNT] = { //Windows 8 + 0, //CiSetFileCache + 1, //CiGetFileCache + 2, //CiQueryInformation + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 5, //CiHashMemory + 6, //KappxIsPackageFile +}; + +#define CI_CALLBACK_NAMES_W81_COUNT 12 +static const BYTE CiCallbackIndexes_Win81[CI_CALLBACK_NAMES_W81_COUNT] = { //Windows 8.1 + 0, //CiSetFileCache + 1, //CiGetFileCache + 2, //CiQueryInformation + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 5, //CiHashMemory + 6, //KappxIsPackageFile + 7, //CiCompareSigningLevels + 8, //CiValidateFileAsImageType + 9, //CiRegisterSigningInformation + 10, //CiUnregisterSigningInformation + 11 //CiInitializePolicy +}; + +#define CI_CALLBACK_NAMES_W10THRESHOLD_COUNT 18 +static const BYTE CiCallbackIndexes_Win10Threshold[CI_CALLBACK_NAMES_W10THRESHOLD_COUNT] = { //Windows 10 TH1/TH2 + 0, //CiSetFileCache + 1, //CiGetFileCache + 2, //CiQueryInformation + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 5, //CiHashMemory + 6, //KappxIsPackageFile + 7, //CiCompareSigningLevels + 8, //CiValidateFileAsImageType + 9, //CiRegisterSigningInformation + 10, //CiUnregisterSigningInformation + 11, //CiInitializePolicy + 12, //CiReleaseContext + 13, //Unknown XBOX + 14, //CiGetStrongImageReference + 15, //CiHvciSetImageBaseAddress + 24, //SIPolicyQueryPolicyInformation + 17 //CiValidateDynamicCodePages +}; + +#define CI_CALLBACK_NAMES_W10RS1_COUNT 20 +static const BYTE CiCallbackIndexes_Win10RS1[CI_CALLBACK_NAMES_W10RS1_COUNT] = { //Windows 10 RS1 + 0, //CiSetFileCache + 1, //CiGetFileCache + 2, //CiQueryInformation + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 5, //CiHashMemory + 6, //KappxIsPackageFile + 7, //CiCompareSigningLevels + 8, //CiValidateFileAsImageType + 9, //CiRegisterSigningInformation + 10, //CiUnregisterSigningInformation + 11, //CiInitializePolicy + 12, //CiReleaseContext + 13, //Unknown XBOX + 14, //CiGetStrongImageReference + 15, //CiHvciSetImageBaseAddress + 24, //SIPolicyQueryPolicyInformation + 17, //CiValidateDynamicCodePages + 25, //SIPolicyQuerySecurityPolicy + 19 //CiRevalidateImage +}; + +#define CI_CALLBACK_NAMES_W10RS2_COUNT 22 +static const BYTE CiCallbackIndexes_Win10RS2[CI_CALLBACK_NAMES_W10RS2_COUNT] = { //Windows 10 RS2 + 0, //CiSetFileCache + 1, //CiGetFileCache + 2, //CiQueryInformation + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 5, //CiHashMemory + 6, //KappxIsPackageFile + 7, //CiCompareSigningLevels + 8, //CiValidateFileAsImageType + 9, //CiRegisterSigningInformation + 10, //CiUnregisterSigningInformation + 11, //CiInitializePolicy + 12, //CiReleaseContext + 13, //Unknown XBOX + 14, //CiGetStrongImageReference + 15, //CiHvciSetImageBaseAddress + 16, //CipQueryPolicyInformation + 17, //CiValidateDynamicCodePages + 25, //SIPolicyQuerySecurityPolicy + 19, //CiRevalidateImage + 26, //CiSetUnlockInformation + 22 //CiGetBuildExpiryTime +}; + +#define CI_CALLBACK_NAMES_W10RS3_COUNT 22 +static const BYTE CiCallbackIndexes_Win10RS3[CI_CALLBACK_NAMES_W10RS3_COUNT] = { //Windows 10 RS3 + 0, //CiSetFileCache + 1, //CiGetFileCache + 2, //CiQueryInformation + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 5, //CiHashMemory + 6, //KappxIsPackageFile + 7, //CiCompareSigningLevels + 8, //CiValidateFileAsImageType + 9, //CiRegisterSigningInformation + 10, //CiUnregisterSigningInformation + 11, //CiInitializePolicy + 12, //CiReleaseContext + 13, //Unknown XBOX + 14, //CiGetStrongImageReference + 15, //CiHvciSetImageBaseAddress + 16, //CipQueryPolicyInformation + 17, //CiValidateDynamicCodePages + 18, //CiQuerySecurityPolicy + 19, //CiRevalidateImage + 20, //CiSetInformation + 22 //CiGetBuildExpiryTime +}; + +#define CI_CALLBACK_NAMES_W10RS4_RS5_COUNT 24 +static const BYTE CiCallbackIndexes_Win10RS4_RS5[CI_CALLBACK_NAMES_W10RS4_RS5_COUNT] = { //Windows 10 RS4/RS5 + 0, //CiSetFileCache + 1, //CiGetFileCache + 2, //CiQueryInformation + 3, //CiValidateImageHeader + 4, //CiValidateImageData + 5, //CiHashMemory + 6, //KappxIsPackageFile + 7, //CiCompareSigningLevels + 8, //CiValidateFileAsImageType + 9, //CiRegisterSigningInformation + 10, //CiUnregisterSigningInformation + 11, //CiInitializePolicy + 12, //CiReleaseContext + 13, //Unknown XBOX + 14, //CiGetStrongImageReference + 15, //CiHvciSetImageBaseAddress + 16, //CipQueryPolicyInformation + 17, //CiValidateDynamicCodePages + 18, //CiQuerySecurityPolicy + 19, //CiRevalidateImage + 20, //CiSetInformation + 21, //CiSetInformationProcess + 22, //CiGetBuildExpiryTime + 23 //CiCheckProcessDebugAccessPolicy +}; + +/* +* GetCiRoutineNameFromIndex +* +* Purpose: +* +* Return CiCallback name by index +* +*/ +LPWSTR GetCiRoutineNameFromIndex( + _In_ ULONG Index) +{ + ULONG ArrayCount = 0, index; + CONST BYTE *Indexes; + + switch (g_NtBuildNumber) { + + case 7600: + case 7601: + Indexes = CiCallbackIndexes_Win7; + ArrayCount = CI_CALLBACKS_NAMES_W7_COUNT; + break; + + case 9200: + Indexes = CiCallbackIndexes_Win8; + ArrayCount = CI_CALLBACK_NAMES_W8_COUNT; + break; + + case 9600: + Indexes = CiCallbackIndexes_Win81; + ArrayCount = CI_CALLBACK_NAMES_W81_COUNT; + break; + + case 10240: + case 10586: + Indexes = CiCallbackIndexes_Win10Threshold; + ArrayCount = CI_CALLBACK_NAMES_W10THRESHOLD_COUNT; + break; + + case 14393: + Indexes = CiCallbackIndexes_Win10RS1; + ArrayCount = CI_CALLBACK_NAMES_W10RS1_COUNT; + break; + + case 15063: + Indexes = CiCallbackIndexes_Win10RS2; + ArrayCount = CI_CALLBACK_NAMES_W10RS2_COUNT; + break; + + case 16299: + Indexes = CiCallbackIndexes_Win10RS3; + ArrayCount = CI_CALLBACK_NAMES_W10RS3_COUNT; + break; + + case 17134: + case 17763: + Indexes = CiCallbackIndexes_Win10RS4_RS5; + ArrayCount = CI_CALLBACK_NAMES_W10RS4_RS5_COUNT; + break; + + default: + return T_Unknown; + } + + if (Index >= ArrayCount) + return T_Unknown; + + index = Indexes[Index]; + if (index >= CI_CALLBACK_NAMES_COUNT) + return T_Unknown; + + return (LPWSTR)CiCallbackNames[index]; +} + /* * FindIopFileSystemQueueHeads * @@ -1166,6 +1433,49 @@ VOID AddEntryToList( &TreeListSubItems); } +/* +* AddZeroEntryToList +* +* Purpose: +* +* Adds emptry callback entry to the treelist. +* +*/ +VOID AddZeroEntryToList( + _In_ HWND TreeList, + _In_ HTREEITEM RootItem, + _In_ ULONG_PTR Function, + _In_opt_ LPWSTR lpAdditionalInfo +) +{ + TL_SUBITEMS_FIXED TreeListSubItems; + WCHAR szAddress[32]; + WCHAR szBuffer[MAX_PATH + 1]; + + RtlSecureZeroMemory(&TreeListSubItems, sizeof(TreeListSubItems)); + TreeListSubItems.Count = 2; + + szAddress[0] = L'0'; + szAddress[1] = L'x'; + szAddress[2] = 0; + u64tohex(Function, &szAddress[2]); + TreeListSubItems.Text[0] = szAddress; + + _strcpy(szBuffer, TEXT("Nothing")); + + TreeListSubItems.Text[0] = szBuffer; + TreeListSubItems.Text[1] = lpAdditionalInfo; + + TreeListAddItem( + TreeList, + RootItem, + TVIF_TEXT | TVIF_STATE, + (UINT)0, + (UINT)0, + szAddress, + &TreeListSubItems); +} + /* * DumpPsCallbacks * @@ -2224,6 +2534,141 @@ VOID DumpIoFileSystemCallbacks( } +/* +* DumpCiCallbacks +* +* Purpose: +* +* Read SeCiCallbacks/g_CiCallbacks related callback data from kernel and send it to output window. +* +*/ +VOID DumpCiCallbacks( + _In_ HWND TreeList, + _In_ LPWSTR lpCallbackType, + _In_ ULONG_PTR CiCallbacks, + _In_ PRTL_PROCESS_MODULES Modules +) +{ + HTREEITEM RootItem; + + ULONG_PTR *CallbacksData; + + LPWSTR CallbackName; + + ULONG_PTR SizeOfCiCallbacks = 0; + + ULONG BytesRead = 0, i, c; + + BOOL bRevisionMarker; + + // + // Add callback root entry to the treelist. + // + RootItem = AddRootEntryToList(TreeList, lpCallbackType); + if (RootItem == 0) + return; + + if (g_NtBuildNumber <= 7601) { + SizeOfCiCallbacks = 3 * sizeof(ULONG_PTR); + + CallbacksData = (PULONG_PTR)supVirtualAlloc((SIZE_T)SizeOfCiCallbacks); + if (CallbacksData) { + + if (kdReadSystemMemoryEx(CiCallbacks, + CallbacksData, + (ULONG)SizeOfCiCallbacks, + &BytesRead)) + { + c = (ULONG)(SizeOfCiCallbacks / sizeof(ULONG_PTR)); + for (i = 0; i < c; i++) { + + CallbackName = GetCiRoutineNameFromIndex(i); + + if (CallbacksData[i]) { + + AddEntryToList(TreeList, + RootItem, + CallbacksData[i], + CallbackName, + Modules); + + } + else { + + AddZeroEntryToList(TreeList, + RootItem, + CallbacksData[i], + CallbackName); + + } + } + } + supVirtualFree(CallbacksData); + } + } + else { + + // + // Probe size element. + // + if (!kdReadSystemMemoryEx(CiCallbacks, + &SizeOfCiCallbacks, + sizeof(ULONG_PTR), + &BytesRead)) + { + return; + } + + // + // Check size. + // + if ((SizeOfCiCallbacks == 0) || (SizeOfCiCallbacks > PAGE_SIZE)) + return; + + CallbacksData = (PULONG_PTR)supVirtualAlloc((SIZE_T)SizeOfCiCallbacks); + if (CallbacksData) { + + if (kdReadSystemMemoryEx(CiCallbacks, + CallbacksData, + (ULONG)SizeOfCiCallbacks, + &BytesRead)) + { + SizeOfCiCallbacks -= sizeof(ULONG_PTR); //exclude structure sizeof + bRevisionMarker = (g_NtBuildNumber >= 14393); //there is a revision marker at the end of this structure. + if (bRevisionMarker) SizeOfCiCallbacks -= sizeof(ULONG_PTR); //exclude marker (windows 10 + revision) + + c = (ULONG)(SizeOfCiCallbacks / sizeof(ULONG_PTR)); + + for (i = 1; i <= c; i++) { + + CallbackName = GetCiRoutineNameFromIndex(i - 1); + + if (CallbacksData[i]) { + + AddEntryToList(TreeList, + RootItem, + CallbacksData[i], + CallbackName, + Modules); + + } + else { + + AddZeroEntryToList(TreeList, + RootItem, + CallbacksData[i], + CallbackName); + + } + + } + } + + supVirtualFree(CallbacksData); + } + } +} + /* * CallbacksList * @@ -2242,63 +2687,63 @@ VOID CallbacksList( // // Query all addresses. // - if (g_NotifyCallbacks.PspCreateProcessNotifyRoutine == 0) - g_NotifyCallbacks.PspCreateProcessNotifyRoutine = FindPspCreateProcessNotifyRoutine(); + if (g_SystemCallbacks.PspCreateProcessNotifyRoutine == 0) + g_SystemCallbacks.PspCreateProcessNotifyRoutine = FindPspCreateProcessNotifyRoutine(); - if (g_NotifyCallbacks.PspCreateThreadNotifyRoutine == 0) - g_NotifyCallbacks.PspCreateThreadNotifyRoutine = FindPspCreateThreadNotifyRoutine(); + if (g_SystemCallbacks.PspCreateThreadNotifyRoutine == 0) + g_SystemCallbacks.PspCreateThreadNotifyRoutine = FindPspCreateThreadNotifyRoutine(); - if (g_NotifyCallbacks.PspLoadImageNotifyRoutine == 0) - g_NotifyCallbacks.PspLoadImageNotifyRoutine = FindPspLoadImageNotifyRoutine(); + if (g_SystemCallbacks.PspLoadImageNotifyRoutine == 0) + g_SystemCallbacks.PspLoadImageNotifyRoutine = FindPspLoadImageNotifyRoutine(); - if (g_NotifyCallbacks.KeBugCheckCallbackHead == 0) - g_NotifyCallbacks.KeBugCheckCallbackHead = FindKeBugCheckCallbackHead(); + if (g_SystemCallbacks.KeBugCheckCallbackHead == 0) + g_SystemCallbacks.KeBugCheckCallbackHead = FindKeBugCheckCallbackHead(); - if (g_NotifyCallbacks.KeBugCheckReasonCallbackHead == 0) - g_NotifyCallbacks.KeBugCheckReasonCallbackHead = FindKeBugCheckReasonCallbackHead(); + if (g_SystemCallbacks.KeBugCheckReasonCallbackHead == 0) + g_SystemCallbacks.KeBugCheckReasonCallbackHead = FindKeBugCheckReasonCallbackHead(); - if (g_NotifyCallbacks.IopNotifyShutdownQueueHead == 0) - g_NotifyCallbacks.IopNotifyShutdownQueueHead = FindIopNotifyShutdownQueueHeadHead(FALSE); + if (g_SystemCallbacks.IopNotifyShutdownQueueHead == 0) + g_SystemCallbacks.IopNotifyShutdownQueueHead = FindIopNotifyShutdownQueueHeadHead(FALSE); - if (g_NotifyCallbacks.IopNotifyLastChanceShutdownQueueHead == 0) - g_NotifyCallbacks.IopNotifyLastChanceShutdownQueueHead = FindIopNotifyShutdownQueueHeadHead(TRUE); + if (g_SystemCallbacks.IopNotifyLastChanceShutdownQueueHead == 0) + g_SystemCallbacks.IopNotifyLastChanceShutdownQueueHead = FindIopNotifyShutdownQueueHeadHead(TRUE); - if (g_NotifyCallbacks.CmCallbackListHead == 0) - g_NotifyCallbacks.CmCallbackListHead = FindCmCallbackHead(); + if (g_SystemCallbacks.CmCallbackListHead == 0) + g_SystemCallbacks.CmCallbackListHead = FindCmCallbackHead(); - if (g_NotifyCallbacks.ObProcessCallbackHead == 0) - g_NotifyCallbacks.ObProcessCallbackHead = GetObjectTypeCallbackListHeadByType(0); + if (g_SystemCallbacks.ObProcessCallbackHead == 0) + g_SystemCallbacks.ObProcessCallbackHead = GetObjectTypeCallbackListHeadByType(0); - if (g_NotifyCallbacks.ObThreadCallbackHead == 0) - g_NotifyCallbacks.ObThreadCallbackHead = GetObjectTypeCallbackListHeadByType(1); + if (g_SystemCallbacks.ObThreadCallbackHead == 0) + g_SystemCallbacks.ObThreadCallbackHead = GetObjectTypeCallbackListHeadByType(1); - if (g_NotifyCallbacks.ObDesktopCallbackHead == 0) - g_NotifyCallbacks.ObDesktopCallbackHead = GetObjectTypeCallbackListHeadByType(2); + if (g_SystemCallbacks.ObDesktopCallbackHead == 0) + g_SystemCallbacks.ObDesktopCallbackHead = GetObjectTypeCallbackListHeadByType(2); - if (g_NotifyCallbacks.SeFileSystemNotifyRoutinesHead == 0) - g_NotifyCallbacks.SeFileSystemNotifyRoutinesHead = FindSeFileSystemNotifyRoutinesHead(FALSE); + if (g_SystemCallbacks.SeFileSystemNotifyRoutinesHead == 0) + g_SystemCallbacks.SeFileSystemNotifyRoutinesHead = FindSeFileSystemNotifyRoutinesHead(FALSE); - if (g_NotifyCallbacks.SeFileSystemNotifyRoutinesExHead == 0) - g_NotifyCallbacks.SeFileSystemNotifyRoutinesExHead = FindSeFileSystemNotifyRoutinesHead(TRUE); + if (g_SystemCallbacks.SeFileSystemNotifyRoutinesExHead == 0) + g_SystemCallbacks.SeFileSystemNotifyRoutinesExHead = FindSeFileSystemNotifyRoutinesHead(TRUE); - if (g_NotifyCallbacks.PopRegisteredPowerSettingCallbacks == 0) - g_NotifyCallbacks.PopRegisteredPowerSettingCallbacks = FindPopRegisteredPowerSettingCallbacks(); + if (g_SystemCallbacks.PopRegisteredPowerSettingCallbacks == 0) + g_SystemCallbacks.PopRegisteredPowerSettingCallbacks = FindPopRegisteredPowerSettingCallbacks(); - if (g_NotifyCallbacks.RtlpDebugPrintCallbackList == 0) - g_NotifyCallbacks.RtlpDebugPrintCallbackList = FindRtlpDebugPrintCallbackList(); + if (g_SystemCallbacks.RtlpDebugPrintCallbackList == 0) + g_SystemCallbacks.RtlpDebugPrintCallbackList = FindRtlpDebugPrintCallbackList(); - if (g_NotifyCallbacks.IopFsNotifyChangeQueueHead == 0) - g_NotifyCallbacks.IopFsNotifyChangeQueueHead = FindIopFsNotifyChangeQueueHead(); + if (g_SystemCallbacks.IopFsNotifyChangeQueueHead == 0) + g_SystemCallbacks.IopFsNotifyChangeQueueHead = FindIopFsNotifyChangeQueueHead(); - if ((g_NotifyCallbacks.IopCdRomFileSystemQueueHead == 0) || - (g_NotifyCallbacks.IopDiskFileSystemQueueHead == 0) || - (g_NotifyCallbacks.IopTapeFileSystemQueueHead == 0) || - (g_NotifyCallbacks.IopNetworkFileSystemQueueHead == 0)) + if ((g_SystemCallbacks.IopCdRomFileSystemQueueHead == 0) || + (g_SystemCallbacks.IopDiskFileSystemQueueHead == 0) || + (g_SystemCallbacks.IopTapeFileSystemQueueHead == 0) || + (g_SystemCallbacks.IopNetworkFileSystemQueueHead == 0)) { - if (!FindIopFileSystemQueueHeads(&g_NotifyCallbacks.IopCdRomFileSystemQueueHead, - &g_NotifyCallbacks.IopDiskFileSystemQueueHead, - &g_NotifyCallbacks.IopTapeFileSystemQueueHead, - &g_NotifyCallbacks.IopNetworkFileSystemQueueHead)) + if (!FindIopFileSystemQueueHeads(&g_SystemCallbacks.IopCdRomFileSystemQueueHead, + &g_SystemCallbacks.IopDiskFileSystemQueueHead, + &g_SystemCallbacks.IopTapeFileSystemQueueHead, + &g_SystemCallbacks.IopNetworkFileSystemQueueHead)) { #ifdef _DEBUG OutputDebugString(TEXT("Could not locate all Iop listheads\r\n")); @@ -2306,6 +2751,9 @@ VOID CallbacksList( } } + if (g_SystemCallbacks.CiCallbacks == 0) + g_SystemCallbacks.CiCallbacks = (ULONG_PTR)KdFindCiCallbacks(&g_kdctx); + } __except (EXCEPTION_EXECUTE_HANDLER) { MessageBox(hwndDlg, TEXT("An exception occured during callback query"), NULL, MB_ICONERROR); @@ -2323,11 +2771,11 @@ VOID CallbacksList( // List process callbacks. // - if (g_NotifyCallbacks.PspCreateProcessNotifyRoutine) { + if (g_SystemCallbacks.PspCreateProcessNotifyRoutine) { DumpPsCallbacks(TreeList, TEXT("CreateProcess"), - g_NotifyCallbacks.PspCreateProcessNotifyRoutine, + g_SystemCallbacks.PspCreateProcessNotifyRoutine, Modules); } @@ -2335,11 +2783,11 @@ VOID CallbacksList( // // List thread callbacks. // - if (g_NotifyCallbacks.PspCreateThreadNotifyRoutine) { + if (g_SystemCallbacks.PspCreateThreadNotifyRoutine) { DumpPsCallbacks(TreeList, TEXT("CreateThread"), - g_NotifyCallbacks.PspCreateThreadNotifyRoutine, + g_SystemCallbacks.PspCreateThreadNotifyRoutine, Modules); } @@ -2347,11 +2795,11 @@ VOID CallbacksList( // // List load image callbacks. // - if (g_NotifyCallbacks.PspLoadImageNotifyRoutine) { + if (g_SystemCallbacks.PspLoadImageNotifyRoutine) { DumpPsCallbacks(TreeList, TEXT("LoadImage"), - g_NotifyCallbacks.PspLoadImageNotifyRoutine, + g_SystemCallbacks.PspLoadImageNotifyRoutine, Modules); } @@ -2359,20 +2807,20 @@ VOID CallbacksList( // // List KeBugCheck callbacks. // - if (g_NotifyCallbacks.KeBugCheckCallbackHead) { + if (g_SystemCallbacks.KeBugCheckCallbackHead) { DumpKeBugCheckCallbacks(TreeList, TEXT("BugCheck"), - g_NotifyCallbacks.KeBugCheckCallbackHead, + g_SystemCallbacks.KeBugCheckCallbackHead, Modules); } - if (g_NotifyCallbacks.KeBugCheckReasonCallbackHead) { + if (g_SystemCallbacks.KeBugCheckReasonCallbackHead) { DumpKeBugCheckReasonCallbacks(TreeList, TEXT("BugCheckReason"), - g_NotifyCallbacks.KeBugCheckReasonCallbackHead, + g_SystemCallbacks.KeBugCheckReasonCallbackHead, Modules); } @@ -2380,11 +2828,11 @@ VOID CallbacksList( // // List Cm callbacks // - if (g_NotifyCallbacks.CmCallbackListHead) { + if (g_SystemCallbacks.CmCallbackListHead) { DumpCmCallbacks(TreeList, TEXT("CmRegistry"), - g_NotifyCallbacks.CmCallbackListHead, + g_SystemCallbacks.CmCallbackListHead, Modules); } @@ -2392,19 +2840,19 @@ VOID CallbacksList( // // List Io Shutdown callbacks. // - if (g_NotifyCallbacks.IopNotifyShutdownQueueHead) { + if (g_SystemCallbacks.IopNotifyShutdownQueueHead) { DumpIoCallbacks(TreeList, TEXT("Shutdown"), - g_NotifyCallbacks.IopNotifyShutdownQueueHead, + g_SystemCallbacks.IopNotifyShutdownQueueHead, Modules); } - if (g_NotifyCallbacks.IopNotifyLastChanceShutdownQueueHead) { + if (g_SystemCallbacks.IopNotifyLastChanceShutdownQueueHead) { DumpIoCallbacks(TreeList, TEXT("LastChanceShutdown"), - g_NotifyCallbacks.IopNotifyLastChanceShutdownQueueHead, + g_SystemCallbacks.IopNotifyLastChanceShutdownQueueHead, Modules); } @@ -2412,27 +2860,27 @@ VOID CallbacksList( // // List Ob callbacks. // - if (g_NotifyCallbacks.ObProcessCallbackHead) { + if (g_SystemCallbacks.ObProcessCallbackHead) { DumpObCallbacks(TreeList, TEXT("ObProcess"), - g_NotifyCallbacks.ObProcessCallbackHead, + g_SystemCallbacks.ObProcessCallbackHead, Modules); } - if (g_NotifyCallbacks.ObThreadCallbackHead) { + if (g_SystemCallbacks.ObThreadCallbackHead) { DumpObCallbacks(TreeList, TEXT("ObThread"), - g_NotifyCallbacks.ObThreadCallbackHead, + g_SystemCallbacks.ObThreadCallbackHead, Modules); } - if (g_NotifyCallbacks.ObDesktopCallbackHead) { + if (g_SystemCallbacks.ObDesktopCallbackHead) { DumpObCallbacks(TreeList, TEXT("ObDesktop"), - g_NotifyCallbacks.ObDesktopCallbackHead, + g_SystemCallbacks.ObDesktopCallbackHead, Modules); } @@ -2440,19 +2888,19 @@ VOID CallbacksList( // // List Se callbacks. // - if (g_NotifyCallbacks.SeFileSystemNotifyRoutinesHead) { + if (g_SystemCallbacks.SeFileSystemNotifyRoutinesHead) { DumpSeCallbacks(TreeList, TEXT("SeFileSystem"), - g_NotifyCallbacks.SeFileSystemNotifyRoutinesHead, + g_SystemCallbacks.SeFileSystemNotifyRoutinesHead, Modules); } - if (g_NotifyCallbacks.SeFileSystemNotifyRoutinesExHead) { + if (g_SystemCallbacks.SeFileSystemNotifyRoutinesExHead) { DumpSeCallbacks(TreeList, TEXT("SeFileSystemEx"), - g_NotifyCallbacks.SeFileSystemNotifyRoutinesExHead, + g_SystemCallbacks.SeFileSystemNotifyRoutinesExHead, Modules); } @@ -2460,11 +2908,11 @@ VOID CallbacksList( // // List Po callbacks. // - if (g_NotifyCallbacks.PopRegisteredPowerSettingCallbacks) { + if (g_SystemCallbacks.PopRegisteredPowerSettingCallbacks) { DumpPoCallbacks(TreeList, TEXT("PowerSettings"), - g_NotifyCallbacks.PopRegisteredPowerSettingCallbacks, + g_SystemCallbacks.PopRegisteredPowerSettingCallbacks, Modules); } @@ -2472,11 +2920,11 @@ VOID CallbacksList( // // List Dbg callbacks // - if (g_NotifyCallbacks.RtlpDebugPrintCallbackList) { + if (g_SystemCallbacks.RtlpDebugPrintCallbackList) { DumpDbgPrintCallbacks(TreeList, TEXT("DbgPrint"), - g_NotifyCallbacks.RtlpDebugPrintCallbackList, + g_SystemCallbacks.RtlpDebugPrintCallbackList, Modules); } @@ -2484,11 +2932,11 @@ VOID CallbacksList( // // List IoFsRegistration callbacks // - if (g_NotifyCallbacks.IopFsNotifyChangeQueueHead) { + if (g_SystemCallbacks.IopFsNotifyChangeQueueHead) { DumpIoFsRegistrationCallbacks(TreeList, TEXT("IoFsRegistration"), - g_NotifyCallbacks.IopFsNotifyChangeQueueHead, + g_SystemCallbacks.IopFsNotifyChangeQueueHead, Modules); } @@ -2496,32 +2944,40 @@ VOID CallbacksList( // // List Io File System callbacks // - if (g_NotifyCallbacks.IopDiskFileSystemQueueHead) { + if (g_SystemCallbacks.IopDiskFileSystemQueueHead) { DumpIoFileSystemCallbacks(TreeList, TEXT("IoDiskFs"), - g_NotifyCallbacks.IopDiskFileSystemQueueHead, + g_SystemCallbacks.IopDiskFileSystemQueueHead, Modules); } - if (g_NotifyCallbacks.IopCdRomFileSystemQueueHead) { + if (g_SystemCallbacks.IopCdRomFileSystemQueueHead) { DumpIoFileSystemCallbacks(TreeList, TEXT("IoCdRomFs"), - g_NotifyCallbacks.IopCdRomFileSystemQueueHead, + g_SystemCallbacks.IopCdRomFileSystemQueueHead, Modules); } - if (g_NotifyCallbacks.IopNetworkFileSystemQueueHead) { + if (g_SystemCallbacks.IopNetworkFileSystemQueueHead) { DumpIoFileSystemCallbacks(TreeList, TEXT("IoNetworkFs"), - g_NotifyCallbacks.IopNetworkFileSystemQueueHead, + g_SystemCallbacks.IopNetworkFileSystemQueueHead, Modules); } - if (g_NotifyCallbacks.IopTapeFileSystemQueueHead) { + if (g_SystemCallbacks.IopTapeFileSystemQueueHead) { DumpIoFileSystemCallbacks(TreeList, TEXT("IoTapeFs"), - g_NotifyCallbacks.IopTapeFileSystemQueueHead, + g_SystemCallbacks.IopTapeFileSystemQueueHead, + Modules); + } + + if (g_SystemCallbacks.CiCallbacks) { + + DumpCiCallbacks(TreeList, + TEXT("CiCallbacks"), + g_SystemCallbacks.CiCallbacks, Modules); } @@ -2748,7 +3204,7 @@ VOID extrasCreateCallbacksDialog( pDlgContext->SizeGrip = supCreateSzGripWindow(hwndDlg); extrasSetDlgIcon(hwndDlg); - SetWindowText(hwndDlg, TEXT("Notification Callbacks")); + SetWindowText(hwndDlg, TEXT("System Callbacks")); GetClientRect(hwndParent, &rc); g_CbTreeListAtom = InitializeTreeListControl(); diff --git a/Source/WinObjEx64/kldbg.c b/Source/WinObjEx64/kldbg.c index ab996f80..d66cfc8f 100644 --- a/Source/WinObjEx64/kldbg.c +++ b/Source/WinObjEx64/kldbg.c @@ -1,12 +1,12 @@ /******************************************************************************* * -* (C) COPYRIGHT AUTHORS, 2015 - 2018 +* (C) COPYRIGHT AUTHORS, 2015 - 2019 * * TITLE: KLDBG.C, based on KDSubmarine by Evilcry * -* VERSION: 1.70 +* VERSION: 1.71 * -* DATE: 30 Nov 2018 +* DATE: 19 Jan 2019 * * MINIMUM SUPPORTED OS WINDOWS 7 * @@ -18,6 +18,7 @@ *******************************************************************************/ #include "global.h" #include "hde\hde64.h" +#include "kldbg_patterns.h" // // Global variables, declared as extern in kldbg.h @@ -30,62 +31,7 @@ KLDBGCONTEXT g_kdctx; ULONG g_NtBuildNumber; //Callbacks -NOTIFICATION_CALLBACKS g_NotifyCallbacks; - -// -// ObpLookupNamespaceEntry signatures -// - -// 7600, 7601, 9600, 10240 -BYTE NamespacePattern[] = { - 0x0F, 0xB6, 0x7A, 0x28, 0x48, 0x8D, 0x05 -}; - -// 9200 (8 failed even here) -BYTE NamespacePattern8[] = { - 0x0F, 0xB6, 0x79, 0x28, 0x48, 0x8D, 0x05 -}; - -// -// Host Server Silo signature patterns -// - -// -// PrivateNamespaces redesigned in Windows 10 starting from 10586. -// - -BYTE PsGetServerSiloGlobalsPattern_14393[] = { - 0x48, 0x83, 0xEC, 0x28, 0x48, 0x83, 0xF9, 0xFF -}; - -BYTE PsGetServerSiloGlobalsPattern_15064_16299[] = { - 0x48, 0x83, 0xEC, 0x28, 0x48, 0x8B, 0xC1, 0x48, 0x83, 0xF9, 0xFF -}; - -// -// lea rax, ObpPrivateNamespaceLookupTable -// -BYTE LeaPattern_PNS[] = { - 0x48, 0x8d, 0x05 -}; - -//KiSystemServiceStartPattern(KiSystemServiceRepeat) signature - -BYTE KiSystemServiceStartPattern[] = { 0x8B, 0xF8, 0xC1, 0xEF, 0x07, 0x83, 0xE7, 0x20, 0x25, 0xFF, 0x0F, 0x00, 0x00 }; - -// -// lea r10, KeServiceDescriptorTable -// -BYTE LeaPattern_KeServiceDescriptorTable[] = { - 0x4c, 0x8d, 0x15 -}; - -// -// lea r11, KeServiceDescriptorTableShadow -// -BYTE LeaPattern_KeServiceDescriptorTableShadow[] = { - 0x4c, 0x8d, 0x1d -}; +NOTIFICATION_CALLBACKS g_SystemCallbacks; #define MM_SYSTEM_RANGE_START_7 0xFFFF080000000000 #define MM_SYSTEM_RANGE_START_8 0xFFFF800000000000 @@ -2820,7 +2766,7 @@ VOID kdInit( WCHAR szDrvPath[MAX_PATH * 2]; RtlSecureZeroMemory(&g_kdctx, sizeof(g_kdctx)); - RtlSecureZeroMemory(&g_NotifyCallbacks, sizeof(g_NotifyCallbacks)); + RtlSecureZeroMemory(&g_SystemCallbacks, sizeof(g_SystemCallbacks)); g_kdctx.ShowKdError = TRUE; @@ -2922,6 +2868,163 @@ VOID kdInit( } } +/* +* KdFindCiCallbacks +* +* Purpose: +* +* Locate address of ntoskrnl g_CiCallbacks/SeCiCallbacks structure. +* +*/ +ULONG_PTR KdFindCiCallbacks( + _In_ PKLDBGCONTEXT Context +) +{ + BOOL bCond = FALSE; + + ULONG_PTR Address = 0, Result = 0; + + PBYTE Signature = NULL, ptrCode = NULL, MatchingPattern = NULL; + ULONG SignatureSize = 0; + + PVOID SectionBase; + ULONG SectionSize = 0, Index; + + LONG Rel = 0; + hde64s hs; + + ULONG_PTR NtOsBase = (ULONG_PTR)Context->NtOsBase; + HMODULE hNtOs = (HMODULE)Context->NtOsImageMap; + + do { + // + // Locate PAGE image section as required variable is always in PAGE. + // + SectionBase = supLookupImageSectionByName( + PAGE_SECTION, + PAGE_SECTION_LEGNTH, + (PVOID)hNtOs, + &SectionSize); + + if ((SectionBase == 0) || (SectionSize == 0)) + break; + + MatchingPattern = SeCiCallbacksMatchingPattern; //default matching pattern + + switch (g_NtBuildNumber) { + + case 7601: + Signature = g_CiCallbacksPattern_7601; + SignatureSize = sizeof(g_CiCallbacksPattern_7601); + MatchingPattern = g_CiCallbacksMatchingPattern; + break; + + case 9200: + case 9600: + Signature = SeCiCallbacksPattern_9200_9600; + SignatureSize = sizeof(SeCiCallbacksPattern_9200_9600); + MatchingPattern = SeCiCallbacksMatchingPattern; + break; + + case 10240: + case 10586: + Signature = SeCiCallbacksPattern_10240_10586; + SignatureSize = sizeof(SeCiCallbacksPattern_10240_10586); + MatchingPattern = SeCiCallbacksMatchingPattern; + break; + + case 14393: + Signature = SeCiCallbacksPattern_14393; + SignatureSize = sizeof(SeCiCallbacksPattern_14393); + MatchingPattern = SeCiCallbacksMatchingPattern; + break; + + case 15063: + case 16299: + Signature = SeCiCallbacksPattern_15063_16299; + SignatureSize = sizeof(SeCiCallbacksPattern_15063_16299); + MatchingPattern = SeCiCallbacksMatchingPattern; + break; + + case 17134: + case 17763: + Signature = SeCiCallbacksPattern_17134_17763; + SignatureSize = sizeof(SeCiCallbacksPattern_17134_17763); + MatchingPattern = SeCiCallbacksMatchingPattern; + break; + + default: + break; + } + + if ((SignatureSize) && (Signature)) { + + ptrCode = (PBYTE)supFindPattern( + (PBYTE)SectionBase, + SectionSize, + Signature, + SignatureSize); + } + + if (ptrCode == NULL) + break; + + if (g_NtBuildNumber <= 7601) { + + // + // Find reference to g_CiCallbacks in code. + // + + Index = 0; //pattern search include target instruction, do not skip + + } + else { + + // + // Find reference to SeCiCallbacks/g_CiCallbacks in code. + // + + Index = SignatureSize; //skip signature instructions + + } + + do { + hde64_disasm((void*)(ptrCode + Index), &hs); + if (hs.flags & F_ERROR) + break; + // + // mov cs:g_CiCallbacks, rax (for Windows 7) + // lea rcx, SeCiCallbacks (for everything else) + // + if (hs.len == 7) { + if ((ptrCode[Index] == MatchingPattern[0]) && + (ptrCode[Index + 1] == MatchingPattern[1]) && + (ptrCode[Index + 2] == MatchingPattern[2])) + { + Rel = *(PLONG)(ptrCode + Index + 3); + break; + } + } + Index += hs.len; + + } while (Index < 64); + + if (Rel == 0) + break; + + Address = (ULONG_PTR)ptrCode + Index + hs.len + Rel; + Address = NtOsBase + Address - (ULONG_PTR)hNtOs; + + if (!kdAddressInNtOsImage((PVOID)Address)) + break; + + Result = Address; + + } while (bCond); + + return Result; +} + /* * kdShutdown * diff --git a/Source/WinObjEx64/kldbg.h b/Source/WinObjEx64/kldbg.h index 5b14a7a6..32507be5 100644 --- a/Source/WinObjEx64/kldbg.h +++ b/Source/WinObjEx64/kldbg.h @@ -1,12 +1,12 @@ /******************************************************************************* * -* (C) COPYRIGHT AUTHORS, 2015 - 2018 +* (C) COPYRIGHT AUTHORS, 2015 - 2019 * * TITLE: KLDBG.H * -* VERSION: 1.70 +* VERSION: 1.71 * -* DATE: 30 Nov 2018 +* DATE: 19 Jan 2019 * * Common header file for the Kernel Debugger Driver support. * @@ -167,9 +167,10 @@ typedef struct _NOTIFICATION_CALLBACKS { ULONG_PTR IopCdRomFileSystemQueueHead; ULONG_PTR IopTapeFileSystemQueueHead; ULONG_PTR IopNetworkFileSystemQueueHead; + ULONG_PTR CiCallbacks; } NOTIFICATION_CALLBACKS, *PNOTIFICATION_CALLBACKS; -extern NOTIFICATION_CALLBACKS g_NotifyCallbacks; +extern NOTIFICATION_CALLBACKS g_SystemCallbacks; // return true to stop enumeration typedef BOOL(CALLBACK *PENUMERATE_COLLECTION_CALLBACK)( @@ -289,6 +290,9 @@ BOOL kdFindKiServiceTables( _Out_opt_ ULONG_PTR *W32pServiceTable, _Out_opt_ ULONG *W32pServiceLimit); +ULONG_PTR KdFindCiCallbacks( + _In_ PKLDBGCONTEXT Context); + BOOL kdReadSystemMemory( _In_ ULONG_PTR Address, _Inout_ PVOID Buffer, diff --git a/Source/WinObjEx64/kldbg_patterns.h b/Source/WinObjEx64/kldbg_patterns.h new file mode 100644 index 00000000..3edb90b2 --- /dev/null +++ b/Source/WinObjEx64/kldbg_patterns.h @@ -0,0 +1,104 @@ +/******************************************************************************* +* +* (C) COPYRIGHT AUTHORS, 2019 +* +* TITLE: KLDBG_PATTERNS.H +* +* VERSION: 1.71 +* +* DATE: 19 Jan 2019 +* +* Header with search patterns used by KLDBG. +* +* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED +* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +* PARTICULAR PURPOSE. +* +*******************************************************************************/ + +#pragma once + +// +// ObpLookupNamespaceEntry signatures +// + +// 7600, 7601, 9600, 10240 +BYTE NamespacePattern[] = { + 0x0F, 0xB6, 0x7A, 0x28, 0x48, 0x8D, 0x05 +}; + +// 9200 (8 failed even here) +BYTE NamespacePattern8[] = { + 0x0F, 0xB6, 0x79, 0x28, 0x48, 0x8D, 0x05 +}; + +/*+++ + + Host Server Silo signature patterns + ++++*/ + +// +// PrivateNamespaces redesigned in Windows 10 starting from 10586. +// + +BYTE PsGetServerSiloGlobalsPattern_14393[] = { + 0x48, 0x83, 0xEC, 0x28, 0x48, 0x83, 0xF9, 0xFF +}; + +BYTE PsGetServerSiloGlobalsPattern_15064_16299[] = { + 0x48, 0x83, 0xEC, 0x28, 0x48, 0x8B, 0xC1, 0x48, 0x83, 0xF9, 0xFF +}; + +// +// lea rax, ObpPrivateNamespaceLookupTable +// +BYTE LeaPattern_PNS[] = { + 0x48, 0x8d, 0x05 +}; + +//KiSystemServiceStartPattern(KiSystemServiceRepeat) signature + +BYTE KiSystemServiceStartPattern[] = { 0x8B, 0xF8, 0xC1, 0xEF, 0x07, 0x83, 0xE7, 0x20, 0x25, 0xFF, 0x0F, 0x00, 0x00 }; + +// +// lea r10, KeServiceDescriptorTable +// +BYTE LeaPattern_KeServiceDescriptorTable[] = { + 0x4c, 0x8d, 0x15 +}; + +// +// lea r11, KeServiceDescriptorTableShadow +// +BYTE LeaPattern_KeServiceDescriptorTableShadow[] = { + 0x4c, 0x8d, 0x1d +}; + +/*+++ + + SeCiCallbacks search patterns + ++++*/ + +//Windows 10 TH1/TH2 +BYTE SeCiCallbacksPattern_10240_10586[] = { 0x48, 0x83, 0xEC, 0x20, 0xBB, 0x98, 0x00, 0x00, 0x00 }; + +//Windows 10 RS1 +BYTE SeCiCallbacksPattern_14393[] = { 0x48, 0x83, 0xEC, 0x20, 0xBB, 0xB0, 0x00, 0x00, 0x00 }; + +//Windows 10 RS2/RS3 +BYTE SeCiCallbacksPattern_15063_16299[] = { 0x48, 0x83, 0xEC, 0x20, 0xBB, 0xC0, 0x00, 0x00, 0x00 }; + +//Windows 10 RS4/RS5 +BYTE SeCiCallbacksPattern_17134_17763[] = { 0x48, 0x83, 0xEC, 0x20, 0xBB, 0xD0, 0x00, 0x00, 0x00 }; + +//Windows 8/8.1 +BYTE SeCiCallbacksPattern_9200_9600[] = { 0x48, 0x83, 0xEC, 0x20, 0xBF, 0x06, 0x00, 0x00, 0x00 }; + +BYTE SeCiCallbacksMatchingPattern[] = { 0x48, 0x8D, 0x0D }; + +//Windows 7 +BYTE g_CiCallbacksPattern_7601[] = { 0x8D, 0x7B, 0x06, 0x48, 0x89, 0x05 }; +BYTE g_CiCallbacksMatchingPattern[] = { 0x48, 0x89, 0x05 }; diff --git a/Source/WinObjEx64/main.c b/Source/WinObjEx64/main.c index ec19ed3c..c3c3d774 100644 --- a/Source/WinObjEx64/main.c +++ b/Source/WinObjEx64/main.c @@ -1,12 +1,12 @@ /******************************************************************************* * -* (C) COPYRIGHT AUTHORS, 2015 - 2018 +* (C) COPYRIGHT AUTHORS, 2015 - 2019 * * TITLE: MAIN.C * -* VERSION: 1.70 +* VERSION: 1.71 * -* DATE: 03 Dec 2018 +* DATE: 19 Jan 2019 * * Program entry point and main window handler. * diff --git a/Source/WinObjEx64/ntos/ntos.h b/Source/WinObjEx64/ntos/ntos.h index 2f1516ef..fa52b66a 100644 --- a/Source/WinObjEx64/ntos/ntos.h +++ b/Source/WinObjEx64/ntos/ntos.h @@ -1,12 +1,12 @@ /************************************************************************************ * -* (C) COPYRIGHT AUTHORS, 2015 - 2018, translated from Microsoft sources/debugger +* (C) COPYRIGHT AUTHORS, 2015 - 2019, translated from Microsoft sources/debugger * * TITLE: NTOS.H * -* VERSION: 1.98 +* VERSION: 1.99 * -* DATE: 28 Dec 2018 +* DATE: 15 Jan 2019 * * Common header file for the ntos API functions and definitions. * @@ -10152,17 +10152,17 @@ NTSYSAPI NTSTATUS NTAPI NtCreateThreadEx( - _Out_ PHANDLE hThread, - _In_ ACCESS_MASK DesiredAccess, - _In_ LPVOID ObjectAttributes, - _In_ HANDLE ProcessHandle, - _In_ LPTHREAD_START_ROUTINE lpStartAddress, - _In_ LPVOID lpParameter, - _In_ BOOL CreateSuspended, - _In_ DWORD StackZeroBits, - _In_ DWORD SizeOfStackCommit, - _In_ DWORD SizeOfStackReserve, - _Out_ LPVOID lpBytesBuffer); + _Out_ PHANDLE ThreadHandle, + _In_ ACCESS_MASK DesiredAccess, + _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, + _In_ HANDLE ProcessHandle, + _In_ PVOID StartRoutine, + _In_opt_ PVOID Argument, + _In_ ULONG CreateFlags, //THREAD_CREATE_FLAGS_* + _In_opt_ ULONG_PTR ZeroBits, + _In_opt_ SIZE_T StackSize, + _In_opt_ SIZE_T MaximumStackSize, + _In_opt_ PPS_ATTRIBUTE_LIST AttributeList); NTSYSAPI ULONG diff --git a/Source/WinObjEx64/ui.h b/Source/WinObjEx64/ui.h index 88980030..d6ad2dde 100644 --- a/Source/WinObjEx64/ui.h +++ b/Source/WinObjEx64/ui.h @@ -1,12 +1,12 @@ /******************************************************************************* * -* (C) COPYRIGHT AUTHORS, 2015 - 2018 +* (C) COPYRIGHT AUTHORS, 2015 - 2019 * * TITLE: UI.H * -* VERSION: 1.70 +* VERSION: 1.71 * -* DATE: 30 Nov 2018 +* DATE: 19 Jan 2019 * * Common header file for the user interface. * @@ -33,7 +33,7 @@ typedef HWND(WINAPI *pfnHtmlHelpW)( _In_ DWORD_PTR dwData ); -#define PROGRAM_VERSION L"1.7.0" +#define PROGRAM_VERSION L"1.7.1" #ifdef _USE_OWN_DRIVER #define PROGRAM_NAME L"Windows Object Explorer 64-bit (Non-public version)" #else diff --git a/WinObjEx64.sha256 b/WinObjEx64.sha256 index 82333875..80f097ad 100644 --- a/WinObjEx64.sha256 +++ b/WinObjEx64.sha256 @@ -1,6 +1,6 @@ 8e1c7d83f179b6bbf4b58f8197bd818b8a2306e6b3ecd901e9f51eae024277c9 *Compiled\WHATSNEW.md -25647f912f21f01dd7b5ce7a486556ff369ea501e3d95a10d76949ec14d02554 *Compiled\WinObjEx64.chm -e26d5059daa834f5732b2102be0663d4ac0595b4433392cba6849861dcad90be *Compiled\WinObjEx64.exe +6c50059342b16964bb2689b2fec85be0f6aa553868f5fd3af91b443deed2920c *Compiled\WinObjEx64.chm +72853622b8f1f1df8f6177e74aaee46d0cfb5313f6f691bb760668cb99906afd *Compiled\WinObjEx64.exe c08368b90cfe42b51b75d4e3831664e64eb4475876c1c162a43dc15487c65d8f *Docs\Callbacks.pdf 7e2b0bcb3a2f0947f1effed2306d0178e4ad28da6427d5d7735017630bfb960a *Screenshots\CallbackObjectView.png 1f1f748519bbb30d09b472bf89fa0c74bf32426010b2f06fc3a4c5defaa3ee10 *Screenshots\CallbacksView.png @@ -17,8 +17,8 @@ df0143ec4da2387e3aa1694145f8fb1f53cac46fb6e7d608cf9c49ca89bab1dc *Screenshots\Vi ef65a909e8d9bc7ec94ecbc0f465f24a7968d6675eadf7f25f6414c66d6b28be *Screenshots\ViewingTypeInformation.png 89ac7dc1b82a69e0726ace4a604602ddc8d7b48f25d2ad36cdbad7d248991848 *Screenshots\ViewingUserSharedData.png 3e1712af4fa1c6e71d266c7884e26c5a519e5ae9deda552e78556bbfc0eb2c3a *Screenshots\W32pServiceTableView.png -aadf932c7fba4f8393d481325480e5192656d04e4ea1b9c2e126edeff276513f *Source\CHANGELOG.txt -c1127766c5aaf1bc5766fb7cd9005df1fffc2eb6f57dbbec057a52f06233fe21 *Source\FileList.txt +4655d0f8591f86b9b93060ebceb037913734ab2b637efb76e36f02906c412a2d *Source\CHANGELOG.txt +435dcdb066fded11143b91ff0aff340a8235107530f86d09abbd8e83154eb545 *Source\FileList.txt a2c853517bb6199143e4ad19aac12ce642c63ddcf8c89f87753578ae422db16f *Source\TypesWithNoDesc.txt c9f95efd2433985838f6a45acc77464e0e79ea088b6ccbc267fd76bfb87029a2 *Source\WinObjEx64.sln 39a976ac4e1b76c2058815c5017bd3acceb69950286cfdf8c5704b7e31b8cca0 *Source\drvstore\kldbgdrv.sys @@ -34,27 +34,28 @@ ba8dddb70f735eb298320c63a0a27ff8b0c0394c7f5b1ed002bccbc2f032b985 *Source\WinObjE 9bbb561c7a7bba584f6210950ba16c4ba064e2d72bbb7af429992daf4fd2a9fc *Source\WinObjEx64\global.h 530b49b87a69ae214ebbb6ba5ca8d3f922b9772ee20e3907bcb48b1ac1c8084e *Source\WinObjEx64\instdrv.c 5ab4e6a630152e02897f0ff346dcf0ae22fdbf2092f1243b9a0ce4e10fadaddd *Source\WinObjEx64\instdrv.h -b537e88b1e44387744a7ed7ff1fc874f88dc6c6176f686a4d7e80469b8fa7903 *Source\WinObjEx64\kldbg.c -f6452e0ecd10e285e9872c925f9154b647a67ac442b56466f0f2cd663a3894b3 *Source\WinObjEx64\kldbg.h +b345322eabe17a9c662c61a6fe60b0e72455e85ab319ce6b071b69ccc76ad47c *Source\WinObjEx64\kldbg.c +709ede77377dd9a3ef38765538c51abff963b11769e8e5183d89c59ee5e99ad2 *Source\WinObjEx64\kldbg.h +cfc3495684b13e4dc5f502c51b984b45600c9d2e7b182eb7fbf33660155e1f2f *Source\WinObjEx64\kldbg_patterns.h 3b2cc0b4b892f5f928902645c3dc005e83192cf1cf484cf5c878c399297a82e0 *Source\WinObjEx64\list.c 6e82d0f095bdcf1676445ae46f9fb455164108a3ea242f83793e964158e47f4a *Source\WinObjEx64\list.h -432689db85fc211345297b29917ff10279e2c460f7e755e265f7ef643e44083c *Source\WinObjEx64\main.c +0fafe52f7d949d9ed176428d08b3734cdd254dd60770aca08a0556ead9fa7089 *Source\WinObjEx64\main.c d70817a4356fb5a18af13b8af2d6a8e17b19a8fcebe3cd2de8f1a16477f8f6a7 *Source\WinObjEx64\msvcver.h ce4ff41bfeac1cef9339aa47939a8c3e2dee530b208e6f64c01d06dcdd274a7c *Source\WinObjEx64\objects.c ab0e909baa2ca37b927c50ba073c2e2a0329a5505d1831e126cf705f1db11270 *Source\WinObjEx64\objects.h d8c7e8cd5cec2393c04733de10aebf6e838142f7e4f13089cab704567a76efe9 *Source\WinObjEx64\resource.h -0fcba54fa7d5e542c185de8cc2a7bdbb1e953bffd3de680cbfe92f91830e726f *Source\WinObjEx64\Resource.rc +ad7e2c904e6446772f1dca2feb798f2ae81779d76aa5816636bdb6bb50cbe5bc *Source\WinObjEx64\Resource.rc 63b6ab385528bc7781f45cafc0894bd3a066876ff4e8fa48d0efb3548e5f93fe *Source\WinObjEx64\sup.c f6fb07f4d2108ef7d15c44f5cb0a29b7e5390d5c783372e172b18ecf3f10fc00 *Source\WinObjEx64\sup.h 33d3b8fb0ea05c6fa998ea9527353a8d617a9411257098a40a4a39972527a711 *Source\WinObjEx64\supConsts.h -8fac344036a0356502d137fa8208e5cb5679ac646a7b0c3ce64c052444e99eaa *Source\WinObjEx64\ui.h +c338ebdb4ddbec272f3958afa05876c9f48b0bc66fb7d201c15a6f64f26d1296 *Source\WinObjEx64\ui.h 5e975a2d43c51d73446039da0add1d51624fe3e97656cc559e73a39d553a7003 *Source\WinObjEx64\wine.h -64ded13869e03a011ddc03694d928ccd9c3a0d0f6bf1dfd852be0cc9f74a785e *Source\WinObjEx64\WinObjEx64.vcxproj -0927e2a9163d51d8bfe19db8d2819c4bdb517b10936681cbb985dc4a06ef5f01 *Source\WinObjEx64\WinObjEx64.vcxproj.filters +f43e8f0a58bcf95bb66f45afdd6f424279c83f4ead4819ea0b9ba5b46c643878 *Source\WinObjEx64\WinObjEx64.vcxproj +260e90cfd24137412e50b6ca76e005758d68b23300e33525bb797f9e3f01018b *Source\WinObjEx64\WinObjEx64.vcxproj.filters 3f17b057283ed56debd29362433d0a97edf622e91005b2d15bca0cbb222e154f *Source\WinObjEx64\WinObjEx64.vcxproj.user 8f8df7e5603f6b86c0cf90977d46d966b7d1c27c1f82a1404afdd4b3e33450cf *Source\WinObjEx64\extras\extras.c 42ed73c850d44ad2d3be6e9c7a1b49ceb610a17e3895fbcc323433b991c994b2 *Source\WinObjEx64\extras\extras.h -88633cb2299a70e4a444fc067a5b39a71253e2ee1d5e10f8af7f75a672640694 *Source\WinObjEx64\extras\extrasCallbacks.c +c0591643a86db396c764b9af132c6de1329e7278394228c8e742a5e422e0b561 *Source\WinObjEx64\extras\extrasCallbacks.c 28618459665591661138fbceee04deb7b15349cf502d994ecebd2a8846d89589 *Source\WinObjEx64\extras\extrasCallbacks.h 49aded1f2d137161240c28e96d73e7bfee46c8005204c5ed5dceb03f691a8de4 *Source\WinObjEx64\extras\extrasDrivers.c 48c930afb73678d4614bf2dbf0df9295b08a9af80a5f9c878eeb2bf9f53c6c95 *Source\WinObjEx64\extras\extrasDrivers.h @@ -100,7 +101,7 @@ ef1b18997ea473ac8d516ef60efc64b9175418b8f078e088d783fdaef2544969 *Source\WinObjE 52e3d39c69c43264b2f8d9bcdfce0f763a5e92d091eef59ea2a0294b4b19641c *Source\WinObjEx64\minirtl\_strstr.c 52a696ae714eb81033c477d1ec6c01389eef56c847609e89d360c2fb6899b4b6 *Source\WinObjEx64\minirtl\_strstri.c 0cd425ef96247657ab55443c9b3bc9a90f0c18f634979942693553d0f764c601 *Source\WinObjEx64\ntos\ntalpc.h -d0debd4f7db2ef941f0b02e9d7d1b85d873f0a01dcb4537b5e112c68443aaaa6 *Source\WinObjEx64\ntos\ntos.h +843927da8a16c09af9fa3fb23a74cf6e2632702c1be8ac0a8f22e0b198265582 *Source\WinObjEx64\ntos\ntos.h 14b0a442647904db5476d14a1d9710bd83587f168b4b182465e5902d24676870 *Source\WinObjEx64\ntuser\StubNtUserOpenWindowStation.asm e5134c4c9902826a51c9593eb3cfe44a8f7bb3e5b0d3b8888579bde477fb6891 *Source\WinObjEx64\props\propBasic.c 45e2088b0320c02cca2559f6e5183a4eb2a289021f5488d65ba6230e208557e9 *Source\WinObjEx64\props\propBasic.h