From e001100f7b3c7c66d6253f0c492719c1f41ba608 Mon Sep 17 00:00:00 2001 From: gently <1243610+gentlyxu@users.noreply.github.com> Date: Fri, 28 May 2021 11:03:06 +0800 Subject: [PATCH] update --- scripts/lib/black_domain_list.enc.php | Bin 0 -> 58048 bytes scripts/lib/black_domain_list.php | 1611 +------------------------ scripts/lib/white_domain_list.enc.php | Bin 0 -> 12448 bytes scripts/lib/white_domain_list.php | 331 +---- scripts/tools/adguard-extend.enc.php | Bin 0 -> 23232 bytes scripts/tools/adguard-extend.php | 703 +---------- scripts/tools/easylist-extend.enc.php | Bin 0 -> 25744 bytes scripts/tools/easylist-extend.php | 744 +----------- 8 files changed, 4 insertions(+), 3385 deletions(-) create mode 100644 scripts/lib/black_domain_list.enc.php create mode 100644 scripts/lib/white_domain_list.enc.php create mode 100644 scripts/tools/adguard-extend.enc.php create mode 100644 scripts/tools/easylist-extend.enc.php diff --git a/scripts/lib/black_domain_list.enc.php b/scripts/lib/black_domain_list.enc.php new file mode 100644 index 0000000000000000000000000000000000000000..8cf182fba94e7f55894273833d7588c2d591f80d GIT binary patch literal 58048 zcmV(rK<>X&VQh3|WM5y@>3m*ZOXWQ=o$R)k4@mq~SLmxbL)1pDr~J1o~$(9x7uLiGHQcJ zdNdt8wI@K+S8W?*@k|7f5$A?yCWQs?;W}lEcMl+kzL~KqH;{%K)bcYTS|bi> zvPjpt74qyRi;y(Tn|e3fHh|=bT9*omv>@w)=u=OfIJl8t*l!9d)X8T_;O+M6;HEbty1!WB( z)_n-v>J>NtqP?7`f?)j^>L#X_A3b#>u4A{r^1=&hNXImNa}`Qlz|tzajg5)^k&mXI ziaZPMA31kc-_ein{uIiN?hOC`6Qi18-hcd*{S5EatMoxH06vMK;F|ff1t4TE+EtHd zVj=7ahWYjD)`J!ru4JsX+QYn9+OlKd2-tvHJ?L0rLc1eMKyA~kqCXL&UMqzjG5r;p z{4?L(q}gz=J#y~li)>h+C`W1%MmZJ)9p(AkkFkFU3yKK2uEh<5|46(Vj-CKD_ywt9 zNFiCqu#MFW?7DOlD-V#*2}J-GaEbiIbS*|{&*nX6IQgO%SO`wh=M2LTs5H_>>S6RF zOREk3Hl7q>d)IQpkv_H4#9=lX(XN}idP-wlE!dLwHrRdgu+lDJ$N|)_ip4oWPFWJ^b#q#%M<3l za)c|@R{U@mVZ<31iE@~&G94x%U<(hm&n5x%6?`lKYB#*XXDD!;Gq7zU%MQ?Wr*ZrV zb&)NDn*6{!H==-*{~-v>2N@D_czQ;_w||JxM<%HAQI7rC^JM=?yi!erYBHM-pnnzf z1${%kPiZ_l=d=;I>6Kx7d#fpC`Q-}9r>0N4FkfNM z1Z$NKUUgy_vXn}d#!Mg^A4e)5+#*=I!XCtZSk7mdE*Z85Z4OeI7{HfE5S_Fg@^ zSCY1^{mKrkNlm@^=U8UbLyMJy{VbmjmOD%GY!lN#W~@*+T5bCHpLi!@kCnIwbO4PD zDqVZ5xQI7S5p>i)T^~~QNb!pnc>OweU`gkslS~|YIo?M+^cfPVKc?LH{EEFIcvxvWuPl|2;fr1Ryu_V6b^&;kv(uMyrpD z-9_sb`>)+oGj2<4I_9{086yd5_4d~^H!lSOH&schR3*I+vYvb66nDQP7}65aXsAPb zR7?v&>I6noVCz;Nm@dudWRJlpiCFtP!e_{*Ugs+75c|hM8e0!yizTwgpJaY#eMSQW zm3%32t%7%a!P(-MrxP6%626w+awSe*SRDRcbJnxU1^mQNu6a|1BL}>!?%XO#n=xBy zpao8ifqFczIVgM$Tfe@%=lT?qkjbtly|*3~CtsSqN9*y48@wI6GsT4w+H1NMbriO1YD}c7P!OaVa|P&}rkBYl>uId2zpkEB!Wer!d{|#O zt9BPcd-_SOC768@pxN3ICn8Tv9_UDri-`G`c0tP(QcYHc+4YtR`SMe03j>6$0&UD` z;YZ%mj}xT&0B5;=82}&KyS>r9!?XP1uvp*9q{sp%Ut9IH&zi*@9iAEOQ|n+8JE5mH zQVd77pdt$em1*m6hR_DfeAR53cqbH?)JHggI=uu0bRYBoY`Ji-hn{ktziqBG0~1kg z!3i={lcH_F6Zz6q62|63RMk6ZPKpG3AdEpbH7+9& zSk|4U@>V-KYRhld?1hcQfJ2qH$DIxzbV-{1DtLF$jX<4dOQQRV5}ohU<*#t;N6z?! z2*pVJFrCz~Sy#>)thCv~(UX5e8OzG-!{X&xjLo8q}3 zNi6{7$g?l*nb+L6)r!5#{vZLhgESNNm*?){R6CaXTBK`u$&Hc7!c>TiW8zlHv-Q39 zEfWbIo>kiyVFKLpGuNQ`V7!112D11VnN2j?irzoTBeFcHq0x*I*}ZK+Z{|pVi^9a3 zIM4FRQKJKBT8A1;2HBG~)*-q> z)uM~qKdZrDERjL-`G+TH*b+J@=<6TXx}QHo>%QVX*|;A7LfMf!H?|2%peFlo zUd*m!MX=*3nO&GF|5> zvF7=KZoC_xSJG!w&6!RK2!fwZ>}4+-c8nC9_Iw5QlA-CG`9nIp2btW*q2vQD*w7f* z@jcPvm+TwSIx83mc;4;`H=+~@jVDr^((Z6wm7W$@WM8q{*SeoCPtIT?-sa2`a>O}K z`rIzv$0T1=ei__27fP{J0QuD{`sCem6;U#`P$A`A7pt zpJ<*pYN)r*J4QEPi~4+tp*3&-Ao#>f2YM;7AsR4)hh+R9L;r?JR#!;Hk3sIbc)@6$ z_{_MhGUf_o<}_Xh6Yj`%l%T=O35CB4lCD5V#^q+99uj%dJ=Fy{p~#h# zPwgk&8L)lnu?zDeKtHor!-&ANuuRm9-O9Y&tJPIr5x!z~n+BoTO3z=Dkr40KrBuyJ z%J!7K`(S(rmv|sjFLTunOZGH;R_dhrt zSuoTr3X06BnF|cn!`DrX#6E03&X5E01cpM9lDoBX_da@O<=CSC@cont&XRCQXwV+s z2o4#}-6Vk1>iEW$pvl~RQ{s-wFrh7YVHeh|RE*uF*2iF0+T(cVyt;9S!ct*64&sGy zuAs6ni@SWpIu<4+%~IEh4ZS!$r&U473hAflO{_JWqg0jv`d80f+&bKprBP{j=(|RrcFoQ-$5> zgo;+$cQlTo7ummDgIH<*))7;W#4Qu(e?k`F$;n!rM@vFJ zUp^Aq2-)(biZ4?sa_;3=cRQRFMpOijrVD<*9d)`z5fCLe9-ipi)4iA3X}i7^Sr->Q zEkNNIxbZg}HhQqtAS~7>X$rK5eyHGSovBIFJPVHQ2msq8ew#F^39d>9hFCwl-)Wso zHz!U^dVnu&a*YXb1#iO!BmUY52o5 zj9F_Y&T49qq%u*$T#Sr7cQXl!pO%$!U=t;4kp2Z{&mYtMy!v2(oF} z%GWl86Q4jx;fc7Nq`iG~+w${@?6QU?$S zn}MJQ%|0=|W|dQ@g;b+w!6!3K%^eu6lyWkCPi>{gGzHy4cWmkxsCh^uNDWSyQ&-(!f--BxV^$gj$P`2N1 zwvsY;t?-Pv2kOWt0Y=ug*M%?naJ(Gu#pubIBM9QmWSSUM4!FG69NQF2k3g#Dsbr_h zK2Y>K`F9zOE5~r}Rn(eCDbtT~$L5iX@Hm&dU)QQtaz~`O-qu@xH}%#y?*E9=F;{DU zPUiolJ=xv~jod~2HPy|ejzn6n2El$=k=D%f@tq|_0TThQlBFB(ZqCg`Dv1_2qyZsx zj4;y*t9Eu?V;z-r6!y^k+0YH!$l1^0CG_~%I{nXh90by&64c}u(HXz|Yb!#il&!r+ zY_0h>4?HxSiLhp6wENg?^>WZ2J5O>>H$~7g!d&7bN zW%%L)0Ee8vocEgn=|>n`SE*Myt8Q3hCf#AUb5Srj5cZ$Vv#!zd%lVsU2`<4yNoIbD zl2X9RJ5crkm!eK94OHH{{714WpI8Do$jLxK|28~yZCYW^-E#0O31&gUCnX>8e)w`n zpideR4IF`CC@Q{$u`(i3M+}(u*5X{D@EQ6$c-ZDl&H()I8>B`Q=)d~#q=89iUY8{n z)qylvgx6u$c4=02^#AxqhlD&d=vV?hN+CO6|FvJ^A>C0eyz0MpnM*zf@zuGo<^l<) zFj`J2t*);+18ytP!t&U-285zz{l-T~SQVfe3G~=6{zp%rwVirX)jJASPbp#Y|Tz7y9&9+(TlBddIywXl8j#{?F z95*KeY+QS9Mtz71qx=Dr(+G@Ef$ocI--8n4#RBDpPDf#5+jQUZx-eTA+{4H;C6B)t zp4-8^<{uq_+S3z~iF67ChyjSfpoo;QO~$)!Yra!VQe-U=c8N&V-+L$>GH{4s)0wek zbiE*QIX}^<2^2>)qRZ(h)teMvz^}Vza#6(7i$>Jw8aSDM3_^yDz$0d(Iy&3}Z2SAL zr3#`?y@2^WQq;|RjU6?BX+Pu_vY!-r*mu`?+^n0(jJzmNaaEt(-CF94J8S5jdD>Y> zVD!MeOjNL~92N*INhcbOhsiqpUa?>}p-nYq5UM)Y4a5KF+GXjpK2%yuf2j2GTvXCt zuO^)kN#ktb^F~G|GO&wh5}=&CdmEZm%Z&6>VVi?}?C(LE2uMGPBTPL}3r8>yIkW^V zWkPj0uT8#|zY2MnT`L@61S-eX?67L4xZzqA=bo#x1>W`<9k?}AEX5A^G@Cvo=eTx`5W0=}A2ro6WSC)BYK1}7ocA(eANE&q z5|u^m22(S`>Jsta_)?+u;s}~-vMQ0JVbf`C@mB;p#4q!v225je&C56fy&B1=`yh;= zCJ@yJ*P`Y!Y`N4x=;#X9^gCLR5(~BXD4wRXOWsYkb8eZM?fB`ms|qFeS%`<(2$PE= z)4B9t+FMPr7m6WIxWsDE^9Ji7ZPsLg_uBJ9Fc!k3hxh+*zVslXy(E?F9CMcv1_;%{ z(m#1tKG}X)^zar32!A291RLIlb`m0_9q@PI0oS#* z^l+^tFi8?DQw!y9l$|MwnsFxqH|Khp-{u$omc)OR+yxy+4Jo0b90P~)!WWLmuoO-w z`+zte6phzDLf%yzBVm_ks*utQ7qZgb!3mD!pVy(Ir|gxuo7S@{8l@8CD2n zBL8t~eLa6X5h1_Zqcmm-%a>-6Z;{r2Ko;W%L9c199$=}i&L@{jIQqs7zBW@ zO&fwgK@2Zqd$(3~cNcdX>O^5r1Il2S-JtGOM@_o%J?kbi_l*{d9HYVfS5X|W+Y~+N zDH*U&pGU6NrUap6p;J;J4{fQxrc^_jnynsrF0r!@5^H@&>MP>d))JP4kr)_HZVQ!Fyc;6KIu3D!%_OnEU za)d0OnD#dLrJAKC6=~|XmucGu>P-PQvv9~Tqi0Hm#WGr5hd}jwQp!jQ@5FPJEfX4H zYgg5H!7l&B0B!ow^tM?)?p$cw{XDJ*BII}$lC7EM8?{7`voj$;BftD7fc36eNHX?g zt(}5b=bx~s@OIpWl~bnz0};yeD$RdpS1!n{{xV(38N&mb14|2HSdjzId5Ktf>N<)= z+xJgzVenyHjDNf=&*}QH52`C08{U5)Jg{a;oZ3!eP zGTAO&=)`6?L1+~!zMMo#GKoCF7x1V!$4sC673rh#jLG+@J7C3(?F{U&pjz zt15JgO#4sMNP)-JHz+&em7O!gYl0&(O?KEDXVRz@O>8I6NhXkfjIo+2%el zRmoyLA+(&T#dv#Wv&-4eV4xN+lwuv~cW`SC^zd!)e7NeS2dGf3v& z(8y3ZCHYPLo1unlZ9nVRf`%&cAC1bnCa?3}6CJoOcgRZnEsuM;sM)5Xh8g?vJf8aFO# zhW`a3Hh&&(hK?ldn}L?M0f@31)$4(x^p>YYt)00Omne#k7=yBI5o8Dk>b+y6MbFL2 z6UZt2bFE#bEpm#m|K-K_7WCF>6{S+8#$&0S>1{te~!=H718a_=EJ2Zu_@7eR-SpfF;s@i>PN~*{cb1-?COYSwU8I>wey3f9 zQ8{|r60)WmD<*i(0_O=JCH?i>Ti~e9Yt$;BGzAiXLE8wNbCEabc%WeLz>J!n>!zo5 zPHTgszXi6g8>yUr4@V>t$bN?#$a1Xz&%50KQ7(z{;QwA^ixyGiOs%~%Jk96VTyEt| zE6zeUC*9J7()Cc@t4T21>9Gx86t)zNR|w?5qp-D$T=DU>4g?yh z@lMjzx)^MkkrnM{6&^1A)8xWIGjSvjU3cpFf$$1coyWjccd!}F(0tx8p)0{0oyIYg4jgt@P-VgVAzgm z7$!PgcufrZa=NVtemV7n;i|oO*0Pz6Jc0c>YtGZVMc}%-CQae4)AT*07_uzOb-Wla z3;gqhb=iIzy`hc>sJkA6I=Xe&cv7kl1Tw-fhl9dU!G-W9yH+8NylpgL(K3i=KJ_oH zn*@aRPu`HxUfz)hdr4_x!9|$=3+zPLX%2xMT?!A*KI(JwWV}o#I~!tOn>nL7gln$s z0ho~-S8=DvdUG(keM1Mk_60vkHb~O5}ybeG?m?j{xhYS&9q5+9csIa>n3$qT*I?Srt z&i}IVlmXR^?;LSucs*{#TMsaTG|nwdShyeo#p<7ss@bu*%wG8`0Yg5%))+Y`={U_$U zGQZAW?%m&JC(CnR9LI}GI;5Ox-FH`Dl_3K0g$MtFx{%!W8nb_-ZFAyv0OEbUzI}J> zY%_4-%w$U#`{kyLy|%EG z{2Qd-zPnb!qRM&wj=cU(xBP>|M34K{Cl=)DpWM#A_fyLpk~)LHoUu}OaxFqlu$fo2 z_slba-$#`kz#Iz&?2ytG=s5ch89j$fT57a9JM0%{3I0Vr5LJ z`2vj2Qi-EvB#N5_SHI1_XmkEE_!n`cKW&DsT$|uoKPmj2kCO{N%o(@gBV=lq_6H3w z;3qA)?rADCr~w^0;nII;o+C1+PX0bTs6`AAP`@$Djv08`{I^q-l2qZ$5`VO_1?1R( zJ#k82lw$NSM)vrl;3+VaY(}L5(COywI zrB;HA5_*l!N@<_AI|1DS4Za+|O9&C}sZ+HTKdzp}Tuu+!)#AqS+Bv493F@Z;8g>z;KneVig4=7+wC| z>Ed8j-^O_I!`AfipaWL}z{nshg_I1ZnI7%RFrOt?5d0tEZk(KCZATn(aAT1KYSY*5 zcpQexj=43&4+8P(3z@nuSa2@;wP~H6xt)|CrB4s~=1*=aFvplgmpJz4|GoLW5ZBI|h*KW^Q!Jo}ebo`8s^F7Ki z_UEW+GZL`ly=Ke;F=@DUEdA(5W=VpMf7PQ`f{#T=MDRHs{k!k3PkX}Kpf{;>4O+}5 z#+!#EqySFX*FN~D+<9X{J_ADGjboX8AU`?Xw6gY>Id|HHbOVwyP@pk|01P_Jn<)a; z-sI44gp_itRC)fmu4E;m-bX!9UE!TrHq{G-E6@CF+d^um*Jg?LIbpjq7^)WO95l+{ zFV$|o+?hc{Q!ShA;CK+>rdGOmS52A~;HSo|=0e^75Bs%ZoAz~4OCt0Y3!54%dqT|- zvH}WgDTjCinggiHLp%`y%xoR^&VZ;{ddHKo19Zz6%Qxf~P#iDK*UpfE-v0xY9%UoK zffR_Pil#b7mtI+RZ9j(OMyPGWkK7(|QqC7<1>I;%)DOkqhE1xRCzLx0i(ES*1CGA*i3`Ti4>yQ(&BEc zS>)`T9H|uDH`;Y_DDk(`XdwDUhP+KkyRfwdKHNF5^Fz5@hI)3mKbOBVX&$~RBNg0C10b7j zp|hA>dXPcluMNhP#Jn8I^x^YG33rCG&x~6XVal<2Z%K3xe}XhZ-p~k<_V_KZu9%t3 zTM2FgY=cw&=hn=WHDc4fM|jXiI#oaFqqMYjwlzHO`W%g*MELBh`ZVTWU=`W{D4j)6 zs4|0-u=ZNBt@W%v5AO6TPRco#7{g-Eto8$19B|CT#}2}7Kr5y#a-mYSu-UKpAuQ$m zI;TaN_Hi_Jd0;Jpm-~NdXyv9%|F^PPcv#gYMEvO#l zAYhFvgFViDbcQsTg=Vhsxo-(@{v0JbSHgahve}Li`^XPD`}@tL*OIywi!<1>XX}hI z_Baul4YD~ZBtkciGrRqbf*7ts*Ij!iD$yoz92f8k{eOX1$YMdu1?R;KHxcI~k0A?B zDk{Exn_YLs^sgh_jH(Fi1rS5=a_jmwj-2=&$!oooxC&3>poEzGS8K{#jqsE|pUt%9 z=FS=F=;A@XFbqd)t9AtAW0Tf4H^^wMV^SIenWty(eZMK6U%4r)S9N)d4g~4r5e_RX zw@P)$aaq-7%Pzu#UJS(WjaVg4C)nUcm-GeMqC6${vaDC($#Q`%fo@ZV<>`!D9sry3 zZU^&bN+EqCX7fz&k)P|96W(tC{qHQ&IC)N^(e&^=B+WV#8_v=VZaKGlRkSBz1J?e6 z?9|U*j^c1XxS`vYt+;~S&vjbuvGmXWL#k5?e9Al?3fcW{|H$vc-9{A4E%hwq)kL}& zAXuK6jbjSJmjWt8SQZr@C?bf}&paup#ZG)muKg`tT1>Mx{mosV_ggSjA=~C*VF5RB z^sgs?l{z$4b$@(xCa6;E`fkoTGQoj~tF1(nj%|D~2#~DXTplIIxcw&u?R_n~Gnu(H zZkC-}!e=7K7QshKFriJcOYwuuKRFMer+FTy?+7*EkG2~T zZtFC0!4UWk_?YaMI}yXe&v&qCSH*vU@Vwu9*Qlw+*sXT4sU19&0dHN>wZ0i5c0u+c z7H4f!?8Z0@Eja|swv6+L zwJBP`q^6zZ9xzulwY7v@CaVWxLxJbWYiFWxjC_DSTMk@cV3%&2BbDkq%#7}8w(qqU z27LFq=$aikZWXybNZpw-nfvlY*{+c{k&myVh#kcr4ZKSOOvV7HoIL`xN>kQWdxo5| z#vc~lN>%@r|KCR;Jx zvfwo&DTVtW_5}OW<4&Tgw$h|my{yiwc__);vJgu~liUH6{dW1v1x#RK88@&FvM^#1za&IQ zHWNZqCe5v)9rcSSmA(`Ajo@z$WMAl%7}?3{WLBZe%Jr@7N%kL>P>U$f)sf)-3c}Wz ztPx0xS9h?N<6-<2OdU|=w*$q_&DE=YUWe(Gy$en)?P1{-@3XG?x^%46OVCGBYnQV zyF&^Q1V;#71>X-Lw9(YJIR{AVQWN!N<-{q?)EC~^!0UvScu46Cxu!`C+tKMtW`rnP zZ;MaZyGgwJ*vu7G3+8-nA@WB22FPbB>SQ?xbj%JL65L6^LuLy`7_18%uZxdHIh*<6)MagJ%|E&HQP7Bbu!xfRZS= zWwlW(LHv_(Vb5?k%i#9a=%E71-dzR>d8mhnkt7+g!Z#8cjEx3BXdw1Ksl3RD&{53B zP(%?%HFjDFg9CeI;hFl{$a=tI7{^naDK*PKUaSR0&Vae<^;;~=m<(Yl5ue?GRfFsD zB|`8sy1AiI%p2;1a41_-?jUak+9pVr*Vld;%CV@X>+%8y%0t`sd4D;R8eKPiSswz; zm35R{q_`$Hr}d%i05B92>j$Tv=zbhhZ5cWpA_zLkR8fz$nr1$WcHk51I*R|~12ayZ zeb$vB15^SL7)9GOwXDRQ(Fu2NcL`}bUhVz0wXnDFYyw8UCFa0$gAb? z9vyrmYTl*Bm5bkc@ID><&JFbwjQYIJNV%kb5u#ST-4Omp(}F*5e*MohmQyU98}R%w zc-`BaZ;I_(w5e?1bq3dc*}^r&xNz^^`w!9?OL#BS@PK9+Rqoqm2Hviu(;oG=SfgdV zK6}xWF)g#pAwniLh9fRhLIhhD#`77ahE!rO^r8v={0y^qip{N{?`|y9!NL1@s#1A& z0RFVS2mHQs*ln)ODTeU^R4g`Asw+65^PoKeP=lT_*OSYHO%jTcaNft5yI@6$`w0lK zM-2)6hZN5}wD~3||E19v&hNA+d*!@Oq_fT1m2TYh_){cEQxx2H{Rb2~QruJD=1A*89TuC001 zCsUkVjLa9_O?C_IuMHzwm6KG4bY~V^Baz5hwEG+2ExZ zAQ{V8j#7O9lqCf&=@1W}i0je#B1OVTE7{JWqL^o*^cFvLWm3&ZX9G>t!B~UChI#$s z;4*kIG<(`Y?jk4xGj(vTnIrX=pzY^?F~k>JiaHa!k*ygQ7Dhib9)cvP=qy;mj3j^J zF6WSWNJ&-hEBWPRd5_mvk>q(cjZ%25^zDVAoMC*HPl746PikfVdoIdx6(LpO1Xopk znhc+_cAO=9rQ6$u`YbF@lbB*iPmHdL1I4u`Vbyy-2+--~<#=72{HDV4S~X6N>J$z) zD8G*1#=`WWAQ3K%+RkEUcL;Su0JP`BQy8ELd#-mW7=UKyww&1_oWdJ8;t~)1 z6f?$&xu6enm5<$^(_v|T;#)T-A1QiX;EG(np8vdw36uChodQJ~meeyZcDY^*UHsI9 zd$4VZ2r`geK#n^iVC;@V2>T!a;ii=6EEDg+qJNY2!pY*Ff4elDLxwkM>{@ty_&NmK zf!=JZ6}3^m;C?_V8`m1^O6mi8-vDxaqqIc+du@#9HKnV0cE?}Lno89)N6Sv`>wOD)8WAnOPC=S8ScGc z?v*|Awm0Op0alm5*m>)CcMH;YAWCYMc30yW)t~^cn?4#q zHC%i*Mg#o3LdC{~0Fy3)7TE<4FXSZ!L{b5AI)EH=)5}M={In>zB`c`}wxQ;p6T!IL z%8x6B$Zg<~X*ML}4H}r(qLHw3`%37bQ;^hZgGco>H*2`raTdwgTPWbap0(m3Dm>>e z%L8C&$KC|`7eZ>5d87~Ej1rKO6|{mqZ2hdV})C+^!owBCfm|6V|d)}92hBWaxDA+C#5W>IN; zaUhtD7edHEjWae<^Y&AJ%mge;KYji5WmMNMnOsLWZ zL_tLTxa{gfArrsWx^a>&MyoUpb~oV7vVsBuX65qNm}#NivlG#@Ne~^1N;&NEq@apSjZ9wi z9{HK_6etd{grt!_7ek<%f#?)ZnYx5fCNfl#mY-h8>8N$@bu@|gcM&8g#$c1$+&6+wo%t4_9qLr^j*O|L&LrjiXONYGh zHNc}Z@nrd~JUU*`eT^hTIn}3F_GZvbaiJ%L*jKaN+AZk4`}!zC<^X*0MvOCQlJ)L> z8eaph?KQs31zILenL9>zhfe^XtjW3-gKZK|bMW5;7v#97Dl8&5Gl-~7k_jUM6DKMj zNf*QiVp`CPond2mb~K^@@MHd@Br{F#`^L`DDi@45mztTG*V33!>MD6>Am(y@C5#Q3 zdxeK-=I(RmR%(&^RQ0|hZ$=*h)cB@ET-4iq*V_&r*iJrk0+mo_nNUESaX$+`uL*lY zbK(n($MhY7(=}3`j$cMHL6123XeVtu3^P_7mj4mQ;o)_(7oo7Ux#ciezKjR#T`$Gc zC%Mx)9hDrT+xwm=1`+OwPm(0&dJPirIy0}@KUD)6#)G1MZiv_Z)|DVW)p+-2c5!i4 ziLOELgM>0b88DwFhSU*mwxItjp>UYX{_iRAe;3pBn4b?hqVi}n-`taS9li0_o5`0E z56p5I8k^_Xf7cL}_~((2X3~6U5uYOhKjwFibIVjn*tG_DP+K zI`f;GA&;5(pJ#)FO#vdy3dos16%RJ*$Fe6HK>6CZT5+GbC|@vBAN>M@gBBH&Er>9| zJ2k>7M@HkR;c%*x8o@(wDOA?(wixSV^MquL=%-O=_WBdKaZ{BKU2KPzygIA2F3F<8 z*vOvRkn#X$z6xjilT*R$9VZ{z{4I#!5_qoqd*jzM*!nOh-Rh!ho{bVbeHcD8M71Rn zqaYk4;yJ%V46Xy={sa!>utxjypYr^byTWKsY|_4TVGJu{nb@XmCk>YE27V061~9(D zjT()cOrlLm3HbP=b+2M}9132DM$Loxb~uAZZq0Y;O=gy$bzX2MJM=xf-!(tIf8Bcp zc~v7Ms{ajj;O_)f$v=e;!vvr2H--~RE81|oEm(z(tMKpa$&7zw@VHQZ-~Oi6^_Qsx zb)&tMsc%(Z_T<0ybiZ6@f%e4>wMHd!kqNRnL%6a_SXLc7N|Qtw5caZLti^c-a!GFz zg~%F(cwr@Q#2K5U1nu#8Ywjd!5M0EMZ7Fh1bJ{RT9lY%3F%PQnv}01UIMMG(hUNCY zOJB>TL$63OZ8L{4GU;_38sDH#{Tk3aQ>_4>?i6PhliMl{Er0BZaL~P>rtCE}zfu8; zxV(t^w+-t|8R}mzKQVyL*q?j$T^(BmV#o10maDZ8{)79|aX?ooT`nsKKk_oC=n>9| z-VMV@TN*DdV-Ha8OFkzm)&pyJHTj!pCrAHXKT+pHh!ou;VuVk9>_6~vABQfx*KT^)ZGBpfLf4Erq}^2oyqe#6bMp6D~ydhqSP zbGms4nI%dljtr!u8OR`0IzR{80?RoQOXz` zPR=4_B`N0b;TLg|IZZV(gZZhQNp`Qb5bRYL?njAG$`npv%3qmBs@kn7Gq0yT0`|{d zpPJU9_@_oUrzqO)mz$v6+rB+`;pgJUpnCL1ahl9u1D3B5E~P_eABgOE)bXT!hU`Cj zwbcS9`TAQBvd%Q|&ldvWJ4(7n!=|zWLCz10)O({CHd;Ayh~hKp*YzQ^%lpN&Q|I@axy2@1IEJ&) zF@&#!h@Ql}j)|L@{`wS%y4s1Nb_^oXa9>Zj)1&U!(X*k3aX`jm(GG;dCk@xSB~+yO z7^Vv5)q$~`BU>lln`JmpE^#YXZ7yumEoUgH7{!169y7cgWO!x#aLuB6grCE- zk$cM`uU$!hd6aB%KJw`e68Gehnq%zyKcibSn&m5muYQvLisO#MG(1ro?x^lz;i?iv zC_7f%&X9P~VoEQ)MNRUy+XAHnoOEk20i9A)$1sh~r78+4m#k|9hOX-COL4X@9R7H|^Hb;O4y1 z5%|20oAf`MGi!Q(v|HatNRn8*GZp$x>5eU1i{7 z?L3%7x3r;VwO7=eis->z;UQuHpgA>Dinz~z_48=-5=5lrrzYe~m)gKe?P3)MgVHcg z0kk6c&&YxjgnPL{mdPjjAIiC5C$>5$3?Az-tMDXzFrUZQ% zDyMz}OnT2eq11(eV$lW{xJG~}KJ&x+V_wqvpIrc1RkUncoRZJLN0Cyi2Y2?;D4W$W z5w=OZ@uVM2w(HbtpsD+X)ZNSYYUCOXol^lEoL{&FvQWmGnG&R>;7?>UWuP}n%EI66 ziq;lQN^3F-&LIAuv;g&li`Phb7%4HKcALpMgQyiQ361`F?ozw60m;2B>iF(8%px6PxYrrsz`cD%ot<@m#$A*v)6O88yoM?#5s?Y73x&Kedx#sy)#JFp~TEg<&0 zKR*$Ib@V9U&m>HRa3 z#qMe+8v0@+ggh+ne3`ec=mzX86@tI)oT=zu^8PptjlJLSZ$!Iym%Re-yv)LyTB61@I%N_r`Q#w7 zpWtMT_@4SVB{r;A9=2X@lt=xb58=Bw_XwlU5O}x*x44ZmGcFErZf+#Q52z0s>QKnSM$@+WqCQyth z(PW5V1$KUAr#&`_^(*D>S6O|tG2Xh`IGoJ^jH$yF7=x%P!r0akh{N-S!ugg1BebL zovjq{86ApCH_on(>Ev@@%5XTa1J$qENk0UoMK1Rvwh16@^J&qSkd-W@MQ2k>NIV^9 z&DOyF)4A*^aHUCL{H4pi!^XKAJN;rmh`E3j&zA{7gnh4Ku>PcDi??tk&JS`q3cPUN zcxTXCiE_O*Q05O#i5RUfFe>L0qm6KERjr=3My%Ja%3X2|G8WJgeum?9;(F4 zF!ez=p|=y@>&I&c9m_%BqD-idV;Hg*8q#?J$Ox+sCQ-kas-X&v&k=$^X&1DrS!}~b zZAIRZr2a;yCh)YbG+b@+Jvq}HcZU{VdPX%USCu$QTx_UJuFS63prhGCw@}rxnBU9e zQ}6`UzC8mk@a6WJ-s{fK1gIweA`;kJMDQ^(pcZ>6VKtIw+D|liiJr|-L@8Znn|q}U+6Mv&I(70<(ceQ(@5x@c8hEa ze+71U?@#EvOEht)C=yEVJ}H+m!b&5N(Hb?Nn&?wM%s?yZ7yA0Zr_fB2f2%2+9D z?LCG0+@pPi$tk>}cFe}pH@9{_SSwn+0mPam8sxblGjw8A%0z6Ck|??+zhZ9KY3$Ff z;{zMns<@%u_8Zz^2uRS0J3a{uD||Gz-3Yt_Co8l;f8r-?{vQ&}mK{I({%14-=WWx~ zm=zzy`-IA^Ce6d%LVh(C?>LhjW;hraDRg-M!xF`+{yMasSq{(RFM8l}EP@cRLxHtp zllxzL2hT--Zszy6ddM10o}|={gK$pnM55$ zdM{?24q6Vk*@+L!l2{0oOtlT!)Q$o;l9OAa#E|0O0}!K#z(0 zMY1>@upTo%l%>?L{>xB$^@5kDw?SsC2jogHETMr&d64ZYy2`#e3~v|$ZNe9>8H3r& zBj-#e;7+RpRPBdN+K5HIG@2!yH5<61`4RC)AMpN%fU(yfFc9J7PsfH4+N&kBGvzQi ztZp`&2hbLh0Pu^&1*^}USi03iISA)Nq@8s=mCIsiL6#7Rl`iETlV4%1W2ALz7>iS6 z->2*px0E&%lDKq&yYJbFJO71iXqr8UZ5Mlo+OU z-$oGH5XO1xAvpm-BPS&Pjk8^@P~ekqASWEnmeVCwcMi$3Bw*zVuU1|tG0uzn*X8cd z6t8(wEBy<-W;IbdHZ&tA0u?OE5U>v@#*IA?g`n!1fY` zUzZS)I{pbp3Z2+UWf)ubR(H;uaR!pOwu(>#tRgSDcg{aCP3<^z(@!HNyHOTF$Z*hH zOp@M9N{Cv5Mp$ou9XUe>@z)ASYhiW2g%j_G6E8CcMh;wH1b^+>IMRB!V2#pYJGkq6 zU}!Z-Z#A~r!?~vw)cCY8Dps;1`;LwL4exGh4|*#Sa_qLvJVg8&{;r*Wv1kfWw;dTD z12J+wS`~EctlW13Z7M?SBLY0($Oc`v7K^~q67P<9NPT9?a&99YP1~x{{A~~x9kxg=AMtQWHyPv|i>XpQr{A=yEVms#TUP{V)Jasf1cR7=lC-dVb?-XG)ox2fImU}6F&@+=LdXY|i_6Cbd+*s&y-k44 z41B|+nBCmh$cYNw99w(a>wFh3jz%^f12c^h)i=Fc9-;?1GBX<-z^yPcizXLfde-e85$q>pTGuJ|9h2J zN;wlM<<`jd9nxBp=Oa|40tDN-tk)O`(7XQ7?Sdn^mLb9wKzoyaV@`wrOYnpa^H{ar68?$sm z#2j&3KqxVoo94!r}@7m)VFqnF+HG3UrkWYL9wt26A%XA6&hU4 zG){`0L~|Ug$}3LF<}(et&(dG<<<02czq5>akW=P66Ea(VDsj^oKYumSHz}P$_uh2( z_%8+Qg;7mhR#&SA6xhQqW~*da?zBHk;mT*=A9O}O4Z}(zX}`zT9Y5uYH9ZYwr)NA5 z*i0j_u8YM?&FvYK&KU4jVC<1z=RQoEdFU`wVcHvE&vz|7Bm!%rRsYmZ)j5kv`$*;|+u^l?Q$E0sWM1WTyu6th&Q7 zj|=9wK1a>Su;<-?)GMK!KtM$N`M+){-k8FKU1z97DqDBkQgd=|9+ zANV+K=97kzBFVzG1MLonrs*WvBm*LnY<|*J4Zy9v`iy_Aih5j6>-%Iq#qGqbv&`+^ zswUOwjC9VIUK?B4&*Ne=hZTsz$&q>9T=C-gc;yo_=%J?9>y^)XS~t-sf0K$tcyp{2 z!rAzC$BRI*dUt$4Blq`Tf<@(QB_SrY0uWG7Un8Y=)$l#Bgknu@Oc7P>#f2_iepAKs zbo$w*>W*dTOyKr_v5Y*|$_o6cQZ%3vA$cs6*(=hV!%a@liVyz0FtG@+s@Wt(g4cUl_M3CK__hj63lm#llso>C6Bj!}@XCo~ zXlbg?x7B++iCBm(=>lVNKv1WU*d(?uLVzI5Gu0LSC5+t~&2jfB7yC|fDG=Md_=A7L z5afD?(MAdmCEu+9cO|M+LbfF+${mWAdmO_rq7Y+~Wvo9?(3APIp zVS)%PTZrqaYf6K{Ke9Cqo85ULDyslwpRds~tkn{Sq6@rb={IR{humw91PA;!o4VW& zh0g+7Drg2}YtA(}VyjV6mY@@U64v|cQ#}{Hm|9Pt&%cb8vOv0v)xG;IN*>)IlCGZ9sDfE1w(Ff z@)6z1E>8VpE;|xAE9BtCt3+Wiyzvk&lR3D0loMyY81 z+!9W<7-(-^rpW5;sdO*eR4KAPXa+Hx_LtVCO;cB=NX0Lp*wvYMz-=Y=a+W!~T8^hr zT{5(>Cr@G4 z(=83gqH5sw@yolT-=5cel5!=Rhx?}eC;hZL&aFz{CbNg8H@vl`x@?>3Z7{N>K{HN! zXoXkX1&r&_G$c@AmKVkkWbxg=Q%R&a$VL*d`L2uGE6@e?WE4#vnm7je_ZWa09g|X6 zfg4syT=$x10KgPnjzTU!5pkMVQ26N05U_S7H!{Dv3%ceOueWwKo*xK%-dyyY@32#hzdip*TTN{vSj+QQ z5V3GA<7yKec8wy(lQ<9p(#JulobNGX<9YWzimddkLh}s(Wu@+{{s*-upm8*?_1sx= zMTOZU^NOx#oiec*_9q`zSX-$Spm7s6ydA2VuzkhsaE{NY4X7irWxzDk+8Slt)?299 zg+=#qQi%u!ypg(>!&UfW7ngoU4Zh40TW{2!us-Tr7d`caOo(i9Ob%#`*=Hx`%o0Yv zeX%($1lQFA3j&bNATzV1hnOMKlu9k| z25qwl8=~|p)O6ydQN~RUJyN$k`FwcYm0CQm|4DKO-!kvD!6E!?W(y0$sc|?yx8yV6 zX5;N+q#l}d0y~GX(Ai9ohO;)rb7t`tbG+So_;r5k6NDGLxim~Y(j+iANaaPnolY%C zu&({q*?_e@4iHwFFQo1eQ-?HglQdTM!>}9fC@VGgy%^@) zXArWo+KZS1+G-|bXhh0rZ6HrtNxL)bPN0EW6nBGllG4NUkcWjcm-Z(K{@2LUvB5Sc zLt@{&j{7%IKnA%TQGBXZKNf^vROsWb@`%qcM-MPQYBFE~+x?gAekWYfMkn>5GhS)a zNz(JD>uhc>VVsr5^EX_F=j=m~W_>eAfxQFlJYG2cdRL!wuP6-`A#w@TBbPfZg4`%u z@IK>_!BJvg=U5dtmYIz1wIJA}`PS5z5_29oV04a-Y*mLMm2oCYay0Etc87Hua7{|< z*PDZDw9!%FyUZXANfxU~NxIMm$0O!S962UQ6b0;I9YC&OoZ3RJQAsIRPGP?!M>KWj z-+-!Ve`|9xeBEG@G9lxH|DsqU4VCWnMpsK!3J%LC z>k(}0B(HsaXzc@W`VpJLsgCAK;<)%Za_|>32)snyNe2QV;)9jNmn!BmI|n|9^7VTK z2;v5lh2JhFN!ZVf6lCGO8h5e|&!@uk44e*MgYb`nE?i}t<*)z?V1Wf>Gq*I z5VdbaK_nkK(~YI>Z|5ieRej495^=Nq=oumbq{jlMAwdsR20{`27sQXHfMU&coWMddw?7Y#-J`)rIpU9dLC}Vtcox$TdSWMkt#M2cDo#^SQN&s*|(t2pEb%fzi8oK3IIruyO|T$c*fl zyGI{1=RrTNjRFyM-hz=6wL47TGB$m}u#23%p>3EQW)^FpamA#BJcGrORiTi4aU*5t z+>#Ak9yS*i8WRMNJRBPZb`)mT=myzCFfy1|8x3_udV&}@&bR5~FV+&jcad$RK1*|x z_O)x7Ct1(Ty-SdoX8A63T07df0H**8&y1X86|1r@2ey8U%6WG{;&or_a*+EOMLG3@ zz47nd8-Wlqhq4{KzX67tuL{$_v8a>ADnALwmOf!@7!CrYwg3A)=>DYuDcQLf--!+k zI8-3(aZi7skoq5)ZLQB*$5W-0pz_w(`zvKhY-Caw$R zb)r@QswXysHm2V7MZ=$Q4}_S-On0(`;L?<@sI)OK9t@OnD_|*` z9>Gt-=}lK?U8_7;tVNnN(A?^#L z{o%BRK}CELeCYGu$v4rDAute4;an6vjKg?LS7#Y0p&#i(&1Voovk4|s`OVe2wnzrS zS3;p!m3vD$!6Z&rxnDq`U>ue<4c2Wzk+s)WvC|-j%Fp95ERIoMvc7)GEHBbgRp^(W zGmojJ^sziY<5M7Ym?l@O{1#f?cwd29ttR7JCR~5r;f+g<_aggI!Cz!_3!@UEV(woz z0(1Eip=*(3hbqj4MT}ms5P46J87>t55wkiRFmg^=0`nzjY^0O(=ayOUR!8uek zC^JpXBdJ7-_y;O4{1{ zhjOBo<19~5E&wDAeQ*K+B}&vvtbqtd+aPka!=rOJ^P+3X zQ{=?fJx-6YCZZqh;DkR*7^X%<2rR#;US$XNJijo1VK66 z?+5Aim<+EL(}S#(7+6WbyNRYe72o`HMbPIz;=9mcX6#T@dpG9IgV2THTzJ@S7(u~q zquwy%sd*v->N(OaoBVGH<6iqlPBowyX`~&Y%s}w2^~YiG6$JCvYpO)I8rv>OD~~X=^RJ6{bw6iSZf~*<_~!&D13op=B>j^SxduD)d@!zg^6F{ z>L6Cxf$e%&qOMi3C5UuIb2I0;o)QOHjwX9+(Cf{5d?8@>NCJtolUR;m6PzfD`%b?qV`5mN{D*vJEFR>;wpDl8rJm{;IH>6l$6e+I9`rbzn{cST}5>aeMFAl*ZGmU0mo5=QopTlL49ZqUeU_G#Lz<$^hC-9O$4i5A>{jH5bwda zrTP2!ooq(LCJc4T)2H5HzRg&cdfx~xM+-evB(>pOpV}&lGOFZTOEbCX^=?(KY`1}M zubYwrk#AzHM8}K@dDx2G^=XHY*K4Va@8%Y`fh3uBl;K9W`6r`4jH-BL;&=5AwG}WW z65kGtzJbk59G>ryT;h~{!hW7h$Xw2v*O9!!DyO3TN<#sH3aIYB$P zG5u_dKJ2wId!(}uE>zFto~?ZkSN-}Zvtm_3ur!1wMLV_BgKvpe+`f~ikFqx z`YsZr(Dal1nE=^+ZANv#eWtFVw*E<3_0s9STT|BeUCr8mI%tiEIa@pNfZ5pDk$tRx zP~EXH7)=R1iV86eGJEJRM*|XK)n7H_;_BdYvl2L z7P5cSCkK+IQg+R_wN5Sc$s3_!EJbk#F4F`u^&uL936FFT@QQA@e>xd5wZhmStN5}a zuz>~W{Wa5B7Jlpyz@q=dJP^$jV;(}GRRcvrhXv?3?xd^SZ}-#G?QQK#w=q(-Ac?SF zlkwxoTI&k4Zx!~%(G_D4_jYFFbs5*Un7$|=iY+vq-S?#{~my6%lu~jA=Dx5;ci2>@MB6bqt!}Js) zaS#0`Bk4B!vFT=7c~AoXMDRoutbU>2pU{`tAcF#&Q1jn1P%P)I{#z$tF_f~DC+dFr zf6)m|f0vORR9|D8Vg%JGp2q!k4mY@P%uudH%xQ$HRX(5j%<$`)n54B?AXvlm2*|c{lKKXGX%V%BrtMI_#v^W1MoP7QIE9n039}ZiiQD8rhcHGB_ z@p|`KJ9>>N!oa2;%0&yfi zhL+ey>pN5L`^<}})XuIr6!Hv7Y*@e*h!%u_3jibu-mldy(^ZsfF}7MCnlfc5#o_%* zwPzLXo$3j}o>;@&0FY>Ci6ct#&-bkY)9LNGWXUqf1c7}f7kWhR3>9qCn`#VSxm^^Y zoFv9k$zw8^cCK+4p7hjoz-DJz^q!jBNkT))byD=#_IhYFeF>$_snAGPQ?P?eB$Slg zZ8mvEq>RIz(N!tzT|b&YCF-TwE4Wk9H=pjkpOs2?L2;crL@RBCgc%@XuhiSS!<+lm zbU}1#S2|0*9BUUE^~EMs934Ip2%lXwLOsk`qrK(Lh{ifgWdaSBsM`eIY7g7-)zxiz zo2k~}_pNyabg?7`+DU{%QiNdB!!Zj?y1fesjQI36nVQ76n@}iK=;k9+MDkLZC=u47 z=&oPy7oEgi;j_Wr!;Hk=u=8r|fB<1Sng3#PqLL3u{CAUk8trCwBfGsVYyf^wb8*t3^Z}u~(M>i$$`Ykj*9eD{? z+FqM63GnEm=+2~va!b4J0Tx2DH~?km6TY*K9;t(vQt(NmN#DeNaxxnUXA%QH0)z}I z{g}}NsPf)oU4_TBQ-yrOKxozeY?ds`*Z=$NpDnHrTg!?YDe;1B`4mK(NcScq}Y}p68))7bef@C69YuPh>vEM2MRT zg4rc%8cp~Z|CT|7J~Mj=Hyk}l$1|E@T(30s*rI-#a}gP%Gbis!WWA~q{6zR7iADrr z^{B$}QQsl;9q3n~h+O|ba#Sa~=;P{j@1SnjQRdUBc%Q=&4tO*~H}&a-u0YRcCG?l` zg>81gmRTuRdl||sNpE3Z_SB?k&lpi@5ME#qHBjjaGMrbN440k7Pp+1OQqLg1azjM! zWWFsx1h0__wJCx62U9#5G~8=#28(p|WC={47+&Lp=$QD#j26exZa; zM?ZMKZjReMbZI%C%*bG80Y}}*q5_s^B=sdZGpd|=G5M!jPhF?2hievWA*mE(Kh^j z`b-r$N$Z{S0VPVw2Rs*bmiXyab$C7&NZrvKVN`XbO|S#SVlcW8{-Or8(Hl-RXV7E% z+;8wKrcQqsd~C zt@-BnA@K+wwHN&7cpBoLr3gF-;h(ks^(fT-S`VPCm}M5hNdi=t(;#qyND~P0rj7E0 zomkz-W>AF4tZ0VA%MA&5BrSZ?c|An{PAc1+H%n+L@b!E`V=&ESm&M8HO>!V|D_}BH zL8GQfl=!HTE@iw9P-nUy3+E)TO^iEJv%Q}O(-T7zTHt+k*$lRz6wC)5PInu4Pb5sy z+1(I~Iz@l~cY?LfCxO95yJ*uNo#1A+wDKm$LK5}N^8y)B6gy& zR-l|(E;I7H?b`Y6t*yQMNdeli zLvlZb)#oW!MKa@YtB@=Adk>MEye2xKnmOjKAiS$zM!eSaZ4}q8=tfX&SMK07=_}dxOWUb& zFYB7%c1oq-ctM?_!)Hhpr0;RTYsAELS$0f$W&wIIq|Dc!DoTgs%?YbP* zp7zhg7E?pnRG&2}5E@uTKbUG4PM%j2x^B>E*&fmv1X97MME|^z&6Oi8FQSM|o;!Yv zwa0}9lUsSyB*8dGI94@HJy_)4N2N!jRA26k;h7&i{x4cM-1cmJp%8 zIvb^ShMvC@;NC*0r2Lu{&Fyh8M^)NCK`uC{IZ25G%l__rE87z$;L?Pk)QVo&^ zS$)}5c8MWz;k0VAl4JtsCMP+{W{sjDy~q>_F3ulJ#fu*pa(+o-5zWt63U|6|>Xqg_ zj%D0t6soD9*5my&UVKCRK^28t`=lABr`a9nK}N*al8R-s;0a)tF$7 z2-+@&*7iozcK~}S^o8~Z%LhpkJ7^_53a2YeRXj!OYgyw~r=Oyp6BtbsP7I=Syvm@w zV|#;E@@m+L>O=`mzu6+>AfW%X6eWUxZSjBJO5zHdwn3g$)oBRdpFczHv0&y69L(AD z$_3!{rfEy$UDw2F_<2h9HqzftpSXL+=b~LF&t{5|wQb2o9c;aJXtl|EK;>?9P&p^& zD8pwX=%}h&*M-{JY);e&`VT4a_KaWEYrw`Y8u3HlmawnLGxf~wgl%m_=|)i&Kb?b_ zn!Wt|4|Z;oso2EpghHorFOLrUi)!y7(YB7#GoQW)zF|~0I%9|IHOj7QJL|bzORnEt zZjbWn(B~p_0?gzM+DN^I7`&I=@Zz{Hb{GX|D*3<#n8mD9F#E^Ng2bZF7Ic!4^>=$Y=A9B3@dxEI zD;Kx}?AN(vL2HBy;et%p+tVNl(-t&hLdHzWc7N;*<;(m)h@Fd+5~UXqfQS z>R-pm61`X>=1*go`pzvKh7ojq3WvZvlQC+Z1b?|Fursz?G^tYVhN5ld&*t(^P%4Z4 zN5bDMUty}XNs)Pl(DFMP?Z$|*fJmWTsrlmRgsb5KzCrPRQR+Tae0uXxKKJuCyB(lx z-w6jFEAOxqRnd@eLojoT!T`Zq%rP|8<9Hd5;CBr%MN zN2%v5d`YEjY<(Ev7__kP5iF%?G%h>`Hcoc^qM>kmK|igVeh5E;%1xw={eb#pKjrJu zn1}Ltc@h~+<^(4{VTm9|In7<=u*V06@}vn#9YUvl@B^2etV1^ZxYAo)j8I8Ymg z^pT~2jZT(&_f%8kIM8cW|Nqo&Ufi+Tmi6IK(_RS8Us4DdXa<1yYp;rH04fRLk1|Mj zP4<+EQKV#L(3YU$NfYN~BED^xn(2PO==H^c8x_;uYyCEWt`-H9|IAE02ssLQc3ioo z^jXSv-j_5R#e&h2#&5nW8s$?mC%N zSmSbz`*bu2-v5#cz;a_Rn*;zxg$<3?`FT-S{sc1rguft2R6O84V zQxG?e%Uz|}OKT{pS2x>e;c`)^0!LAIlLq<$+7~q*OxbA^xtdwV+{hb3jkz^>OWX16Ut=Nxsm2Q*Hz))dg6A8d&d?|dVM2Vsz#@NY{xCA6MT?nhj6gh{wyLb{T73-Pvc`#uuv+QgLg&UO z+`L4mlo{hInAJvPWDRO|3`e}9xkkHe9Qw>H0Ulgm#25pv;A{Xv%9S~fKlN0`^vitK zcwYfo`-@d)M}oTvo7GQrI(?}^8N|IR=!9*4rwaEqF8;B-%=L)-sV+x|dgbJ*JaO1; z#8gU%D$b}x&C!w6obchg#ZsGp<1EAUrqSwN{xeuF>Ajr_l@42dNU6-eBc8uY5QG&U z+C&lzC8eubA6F5f=yP`TjSE}ML)s%Dg0RrAPhJz6m7D5CpMdO-x^C{_2JZ|~;W%4R z)wp5d86S@r;L@XZ&F(%B@hU`b3|G~p+_Q!_NQ`W`(xJ%$3vpskY4b_aD@{3qP@?RDt6)|h&Qs^Jtp_1{_KutUa;j?M$d|NY3mo!+)!QHJgxj?=T zr2$(Tz=;R`_rc!#kTe9e<8YTwP?Cef zzDI1HY~tx$k@`&Rk2Xc~ z(D_v751bSQo_h@QF%CN%_Bt(@$TSxS3dx1t%hOb%>m^>e916*kb1eE0tn{#eh?>K- zrRhjg(W>#=R&eRPMrXYB{ZS(-jpwEE@G{@IoWl@il3U~zIr@A|Rgu8+d>MM5gN+K`q?3IrJFO=&|DFqaU;7#F*VJfK@DI;Xkfvl(h!&Mnv6i-hPzrWDCQ0hmY+ z!H`(28NsQt2>5QJ=&PA>~?sOA()Q>g5KLLU$<0Eh`_< z1gq$vt3QdgV@RaU7u5{_Dh8&}b${DZ+vX2L<4h8$hV04VbRj9NFnetV*PJt?-V1kU z+&m=XvZ|=$>L9Whjyw@SZKl?F9$}YRAU|9UG{#`K;l6ZIDL>7xa+Wqk9nJr0_?LCh zl@I&76Erzb=P$Qgc->5H62FzmF|!S}Vxs&N{h!btkQJ&L*7*d30v(FT`&SAIZvegn z`*n|$$USQtNUHxe9#s~i zi>an$InvD`A^j1?a7GMftqLybgAF%-+f8VG@76W;TOzQ(uTzA{JHfUlfjFsF7!34B z0)9i@VvMC=yv#6}pyGjD(B8JL2c8OV2WRdxPQixx>(zjBo4?ncMC2A+58)J^1w67Y zH|j>+3mleFig=&ltbs|L*a7jyN4CwsA=3fTqN5qgrT_FTv*dTkKP>?!P zbe*%t+?gy&?~XjZe0@(K3v=Sf!&<((2MBC0%!x`iT!wp7PY5J`*u(8O_TX0QK)Z68 z`tY<}b-(;HI@?~!22f#JOlP&)r>qhWfG%|FyrcQIJ8!VJn!+FAH+LKQx2I}6w)EHH zH&42gF3)6C46*j-v619S0I@7*uPq8>2g8)0*iL*g`7YO$?BK<*!gs2l{8niLhrV@L zaX`zJv6_g4HOh@ZH6`Ao=HTY)*fC2IO3?scx+XJgJwBSnxoI|$NUz;-Ku+HVbtfEm zh{4lHmrCg|BT6g0k1(87o>D2DPtqU_2%7gj0gXwL*rq6;VD7yR_g4M*o%5o83ZizI zwkXF9q})+m^Caa{6RBFcylhP2ON)&tKWOXWY8iOaHUDBqo{u`1hO8 zM*d75h+<`o2r{g-+N>)tb>B@`rhhlXstsVdcPkUFMGUs?O|DRKGoSjHreLoRvBGzm zkNN+%X?bS_5j{WWrVd^p{AEs1AUoB_Xv5q|ZvfzFO`79;Lq>wt`xNG&Rx5lLT#D~^ z?Ya~vX|c9s`qISWYOtJ@d3r;kYE`2hGYgV?4dBhGMxeWAS^rn=C3fAU<_IJZc|fqIgK+*4BnPE+;nljh&prJQz?mKFGQfJ?hOm@5LYGp;^Flll;g_DW|TC zv__Ti+T_sBI@M%7iCf9ON5k*~7cFho(Yz~WzVll^QuFx%O1-3_nQ|U~vUeZTHZd#p zO1F*-9t5pjf7o{olQ#_~Wy1=gjDTIIXlQMa8(1o}G!?VfPQ{&8b*t;ILwKpC&c=H^ z)E87dGja!uPkjH>am0$3M;^$(p@QRVGv&DdEs|x$Y9B{U`Eq0w$Y0L|`r^bJ;>vy* z()ed>oLTrEjv50<%I$Nl*_ zrt-l_Q~Rz#*&F=vYJE-Tq1;+BSs~UYubety=L0ZmqmtZZ-c-V(fdH&}ynI%*Q&WUj zm*N@UP{%(U3CRf<_;I=(`rf0*F7AEfd)YPnumBhx@Y`@Ue6t0#57VJ&BsO_0DrrFBDbZZX^$3Gm_6m z_d3wjc$`O(V7;GRSY8(SFHj+KDR%-WE=JxpxeU#9T#lO5QMxSo*;mqde%2jkri*G9 zd{HoQBPr@V8Gn4J0Ku$Z|A`d79L*-mDfzUIA>;a`<)bev$gw0Nd%J6}_33|E_BNvc z;YLF!iu&#XVrg2xOVtzJAZ4-+*W@T}s}0)_k5g$+ulcJ}oO zr?X577*EAvQ*0w#)Zz73?<_~Qfl6q?7fMp|Wz+pB3|ase|M=WTv_~|>U$jejLbHOD z(Dry@KEYvNGtil?r5YtNNaNfZ3}qMo7B3Q~;cIz6paRF)n8s-hmueLGQ=g#Zz#`r` z>*=$1Ak**~^&EF~#cP^>a&g;BHN5hYs)W7)T&h~HJdr+3229MzeCrsIvsGt#irrF? zDgS8cs6APw3M4N**0wv+432p`As{ca^YT{D{zYD z5?ir9y(j4n7AM8+U1*}^-6r)Tih$-{cNt2usw;7v6qWYcirO||7R_@)8D0);cLXG? z3natf<9yP4mJE;iiKkg-wU*OL7aljsCoxd%fuBPEw+!*I)A*cbj}<`bOwYR`h=bn- zMKh>a=X1{I6w~{V(ay!l8FH@^sbqlbe<#6q-2m0b~_ue8DJDz@S!y36C%`-6;UA4#wY5r zMFnC|oV1mPKSmj3w;((94P2XoQMxScSmmU)bMxaLK%aYmkIaFJFZb%U3voyj-;9&s zjfJO5e9e0bua!g&rv1&e#|#caF8Z{PO9NnrrEG`#U>0Gx}eC3fAn-0a!P=`F{@5~zm$FI`L`HxFJoIz>b;>>$;> z4pTzQbANeowgIs8{W9^d6$>=pdB0}eIO{7SPkW?w7e0hfYJalJ%*N0_?(kurb5q!X z+|v5ZOh7~p**h`9kVj8~0e$W=(HbkRtjA=RM&y69A_F$w-&EtqP&KbJjq|85hDM6vU$n(1iL+(pJITh%yNLj(kt#~t6=5P@ZVg`G31|a0CO}_ zM<^+OBNroX*CGq=J?7?=8GSU2E-O+Jo?t2nXaHm99C^7NokBd0MsX3($BpTXpw<6T zy8G$iA%*yqx;|ZUEZmNDq4wFi#~osO9e?{I>C9rEHMeHQn627uFgnAEz-}6AnnY8A znr6nfL3UB6oN^>`{VyCC<=jNQAFZjlPTPUz<~64O@s)Q(_?&DP3cLY}Tn zZ}eJYD9PLE?kt5a*28@v5YADfC|O!6jo+9g`EUQ6;_BoSByTxkKYJTCr3{eGHHTii z<1caf`M}Xz%Pi&Q4YmhPLMf}@DE3XuN^HY zgWUC*sLT|sk|wh&jJ=A&&*m4}{D=SYW^JOQW5&PQuMDYfPXqcXD_vafD*}B$<{Cii zdZ~99A=WGOZ6H98a7kWp(AchKJ6~$K7KVD#!3bWxXV~a8mXKtbVayIfuR)U|m*<=3 zCoj(3xWHm8d!A$8kG*ODrF*9wJ~Rhrym7=}v6*tAkZtH%duTqBDctxuP#2q$)BNJ} zU+*4+WT;#9($9;19Z;jIleLA<5Qq72hS;h-PUrsRXs+*So-kJ9nbP;&Ngg+%Dft)a z>{vofdbH9t71bI6eQ=jDom{;oT4ir7jh=jezK9vbq&B-=NDap(MYl|9McSt7P<_-D zB#us{eFO|nn4}o($GSrb>%yz1ZkX)6e3?9D0(k|tQ>n6F6Sf@#k#7c8pAI@^dN#f$ z<9cR+=qmgrTC9hep4e_8l_z?!UCe?x-u{uR2TA8ihb(YHZlr5_V~XI$n@*ZEFB!nQ zPu|D*d?tfK`2F0S;&5;gsp}1B>{0C-;ZjBiKO>?^nV2rBFhg&yGvS^PL_CvIe)8B3 z1sR2Cw9|QqNB#IXymFdA*AGU~MRHY2d#dUV8uLshl{Mcaz%iWZ9?EzC`*tXcpid&y ze}nz-*e$Je0h*Yq)#G&CusEVRSCTpWqzgj*H<3eos6M}^^JLe9Xw7P?z!TmLh~KaJ z-39IY!`x@$v)ooJTcD4+HC_((3eFhX&L%FW`n#VO+%@u99ffy zR304k1dbTNdS4V$Tmjhlb9#ChO%HOp97ENtT zqOBwGM+PEnbX`bcC1MrYDch3%f~gr0Xwmx-1qqCRuWt8h*i6T$u_R$&Z=a8+w_Y{@ z$T<4vFj1ra*WC8+{gA{E99nHFx(}`LfK#D>+`lx&vu}z7^X|#8vD$o?SX%yZ=DlIf z_}9>(;{FW^hjv!_ZmuoB45b4&W7ioEI+@4_!jj@;C)FzqdF^{Hk?iZbT%%IQgVU2h zuY!D_c|7jXR<$|*TwUUwtmuR~$Oh8pc;cPY1o_jP^`5D`(*{Xhy31sIgN~Y(Kf*8A z<6_f+{8UU2N@EM+OF4`og|o#5I8~!SbN%jg`*i56=|72@>j7zIs$(4F4Kkd8b%smVU>~ zv~mFs4g{{Xt3B@=Fb_T303h*;AksFPzZX``v`;!a_Qw_@)~E6PSFoQvSy7cVG7#JJwV5loHsh%mTO;iOaXtDrRp4^lHw=0_$^0!in0&$ zn+e40%t{He9b^E>D1gS?9?J8=?joQ=1C{Ct3o;1u%wAj`J$>u|1uZ?(>*t57ZH8Qn zN}mV1uRH?d1wO!sukyvgdlhD<6{hGzjbYKQklGO=C^Fi!iTUyVNzhK5g|nh0BM>Eu zj6&@dr(^wOb~-<}{!=+XyXVl_!F}M0D?JqzyUA{9xFE}os(a>1RKhurT`(C{))E5> zbv|OU_``lEsx*ObuWqA?5oK&kAA`z_DL!0P3sv}T?~cg#1bLB?5sz;`RA(!ar2MqJ zaB*ZnY5ReiKbOq1XK6enyKc)uL|h#>lv9@;3)$la{mjg#&1?x!qcjxwkSCYD{L{RH zd$gM|#;{bcm2;vENRf8P9whS5(Qbxw(faBLG!yjwq=7vWrtd2icYI{`z|BU?5~$US zLJN!vzhDKN6h?0H8G@gfPjddIvGNEfxFs4d_~kJ3Su8-q;#^-y1!bfPTr>4Z+awbp z``sT(<1|y4`H_kLu5MicC-n7F{;LcYx zW%7=5E9=M3Qx!hSZUQFSvw|H5!WP}yuIVLRT`Y5gRL^YP%i?a;LrcUXj?q~Tf{ z8&8u5p}e`?mk?H~4%aab&`EiI#1(S#w? z{>G7a3BA5h`tK#4L$11BhbmbRcg`U26d2}I4!p)`@Z2dcWQT7G<@eyLfGI-q8GMoJ9c(Zv9LGA$a?Fx=;z#8ISM~DO1g_ z>2|&i|CIJnsHkZ#g{pb4yn3)UxXN@NLO+bbmul*-8YYagDhE!R3`&AkE>!x1Pg_-U z0V+5$yoK)qRp44Dr4=u((QHQcxq6Tpf~sQUIvG-TY`!!5Iq0e-!-~YZK7)qE9l4s9 z2FqlVmANCu*)q5c^7y=6WM-i4^G^IM!C?HRgOp_h=`aPF05q%7oALy73xcWXdL`Vy_ME1qxbM@;%j~nu-xN}Tv@PV%T zSpX9&_$+!?5LRa}0<<*mT*OLvAI)tCybnmC`ht50VP!#v1d@Bwj!xIaovQ*Gmp(vi zc>$@bgGzXn{W^Sb42l!U&QF80xGLXL(ArXam*G$ac%U%!w6uUalEUqF3`mDp>t&9+jOEp zov>bJ1;=XR4~wzG?7u9L(Na>EmlLj}@i1*HPx3voykT|QyxlkWaZJHABq~5F{pL|- z4_zSfg7p0ipdPKX6h5?zsp1ADa|{&svOE^kk44&N(y_Eje+stm8oMGGw3KJ0npMLu z+TJH;#~JDVBW#D*sw5eJsydSqV!2m6T}Nr z|AHVjyiTF=`#6kk;!w(7&22FheJt^5{Wmu;qJ{dW!Tn zR&YcWZ%M1PYLM+N+Jzb{hOpC4rU2%wlTnyiV=P3N2{X5cW14P3w0*A7sfJY5kVJC^ zr|9X~Z52~oT?Ex~TTKAca!Ji98z#?@g@w6#)Ab~tH!djUrE0xmXcBK%XwbmND80HE za0*MIUfA~qNJ?R79hLUg&Q(mp1nxY^hjme4%6fyWX&SJv(h_Rf5i>Qk zh_-)B6x~|XObu|GB0Y6kd}t@$xv=QE*R5TQ>7T1j8wcb~yIO_bwq)P$ad9oHa;8p1 zz57IlG#qd}+1wE_X5hk4dgzv=a0p8~+USt^j;6=xRGc&>s4&!*vz9SSnEzWc!qN`% zF7qb%uZ-`BAmbKvvY4MS33E4A#AF^Jr!TZa7rUOx69fpakDk%CNzCpNB4}v6v5r@0ws`frg zU#A1enOTg9C8kC&0I$5kzF1WbF>G%WNwoBNTJnl&2+L`et9IPaZ?uDeqRlr`3AP}y zb4}vxJk%P(zrRO=nW0I9l8huHTtug0^VhMfaVhkn!LpazSp^=<`U#Ffx3<9@q5 zX!Z_nK68xVqO?n+-Qc{uqqW}D7TY4@x5>r9At||->Y)9+D*|odim?PDIn9YqiXGH5nxo*rMhxeblVZP%^xzbyCZjxV8I4tWZa)a4q ze|vjz3iHyPH60|LNno-E_Xc}!S`9<_&ShqY6zfzFd@AxUhR|hn#Nh>?$C^+^Em!O# zU-K_h7#${G)Rq}@cw;)$F9JnW zY;M4mp+r%=974tdfPHBI2>RA0>0z_iQ$;*y4b&e$-r!PUv?hqx!s@4{`QbwyN6W5j zm6ii&ohDceP#-DeGpUNYkD$;zM|x~NH5zj{a<%Vf*@<&_mntl$nUUHIS^hMQ-f%lC zoRpQxdfbgdD;YcP@M_2|B<*aYRd$_j(~t}v^v2m0z9A%T>K5{c^w$1{vgq-DFv0g? z%i;IEb`U?IKEwQO}6`HqAh$%%FqXn*5rdXYe@9T z^F!T}WRshV@cyH4c=?V6tA)YnXZ63j2oKbT{ zEmM(sO{vfF3_wz;g$rWP9y)%_#gfC;st)S}hy+?zrhC#(%?9Q$BW|zovl&QJ3b$NSSqRkS3RHG}gZ--TY?tp2=GY#7 zw<{293Hu+v3^(t zI*hWRBJ8!&x6^YWfS1I-dC`C?t<*FjYjKibK$?~&WSzO~*8Xo1(wXCEJ^pNsW9IL) zjvuPAdWt8_6V2W|2};&ytI+gxNSU3J)@_}IExg3CL%yir) zQGVgln9WJ}i9vdh`reth_Nnp_6x!CQd7{C8%e?9rV1LnZB`JSG{3CIck=OIMxDnNx z@s2ys9RRuK8xIm)5#uR?J^Wupfvku?!i2KCeeDX9N~2epGrTXJqbl2O&`bLX)N&pj z0eIJV`;8B~c`YPAAnd<&S?v8I%^=W0gw4<2H@Nvi*j)_QK?)}&ti+;7;MoQ-v>EI~ zH#p5qtKm%h~?OD)-qJIy`pv=t_455aW!1FuAlha z7)X%kQ?f3vU!ts@U(3tY`IuOz!!_Gxz>>Nf=~TP6z-0Vjbozf~%Fy;+lHqKeuGQWp zFg&ouc0p`!_(*DFB!R8GiBwsn9l@$7@p$T0cZtsw?wB`m*vh#r>;C#r9 zLyGFCyi?mSFhg(r`MMsp8&_}Ap5TBIf7lXT`-=cBo0N~_t~XrW6=#byh~`7c(ee~a zT3`}P@`(ZnDV<;?3z&GGk3!DJ?7AgpOJ9EGg?LEbYVP=cEh@|3Yx+1nK0aMa)|E;m zoneDL-f_)fCrQ`TdXw5wn%-fc>8}yiIa?P7K{}FxJ!Ym>^URJmRf(x{W%$?KNJ+z} zEk#3@gNA`M4XKoG8k8^>TF&jo9>J9uJ0DapBUVq2NLfXP`oIiJ(F&?k`w@8d=*B{| za2`|W2ces&SE9G8Iw|O#1_+C>KKemz-b1{C=$lUTswXh!>dtrOyk9x-alQ!<6U&zR zMa@NZfwV>OPSTq->0qN44(TmL0}*2ci+J`tFB%kDkNe)%CDNWfeEo&eTRAZY9y(c62&Qg78s-D`@nkyrfrZG^w>C<5R-l0=+h?2Dp%Q*p;svo zJB#?eNlG>lj8}V!$%_$JAzTY7u#Y41GL^H>3EoaM4`VC*$YRZ9`vEuRpu(=q*Tr+H zF-A!ZQONv~!W*(=-%*|Chmq1CwbZP|-IQVDT}aeLUN>f~S09u+f#T@f?w69_Ur`O5 z_^oukfz184vU32NGklp@U+;O;FVwfpljT=f5bU*IDQw4j7VOW5ERTJ5cx((TMCJAIBN$*uVCWtXUuRtQ<#wxli+bLt;)^>2@KPLc z{Lu)c8h(Wk>iIyt?t`n@)?vhn43OCDC0fnbQy%NeUc9d?)@hW(LdSj}d;e&=+2^FHt21!8M&m8t0>Num&-2ONhL6WWoa$>txXg}Mt-gn3R7QWrA z)J+<;ytc#vH?k-8(48pn3>7)tpbMlZwSW^a1XM=jUp=W?OKs?-$FJ!awC)Gpf9A~O zhW~-A{bRTUAYpC%*DG#~Rrnor*!Rcvrza%OWw_-6Npy~Gpq{lBWEZ7k5$BlH-}rL0 zu=36Ze_IEe*6Pk)A2G;RBMy>p*G2>JArF*caEdEe2p&3#2{>#!mIQ>+@JIHT4TkzPw26UC%xXl>R|^^o1}Z+jCpRklX3>aXzdk*x7*_@(M>fjKp77U z*m~M6BgZ}O?6jd`clYBN$>~S7P06~)@>>uXP?wvMl3nsK|%)XSMpS=RK4$3t5}e##SY?en-@Xh3K@ z<4xZFoeD~AbHEZRzxwi6sLH?;Em?1aRfnqV*AxH+L;Exo< zhY+0{P)R_rW6vgo!}@rwOnC{4QStmI=RcD>=J4=W7=;T zxn1}9m%%%tqzW@KUYodJh&SwZ1!y&ubfv5?s6b!tz)tRf$XoNdxdPP2ZgAiZ%2P(t@O z4@wknw7!4v$&maP%r%XY{(ax;lg!NGHWl=SxOW4o;@ype$D}uypgRDofyM)9Rm)gm zL+d<=kPQW3Hu+B>0!h10$@4xI%iAb~>bP7e!2;}wffVlT8RAe@`_Emm?5S1XAk2(< zD#6km!0*A~GMguhB@I*g2(yQ82u8JO2l9^AY`bL%+eWXstm*MvsSoV;=l9uNUvW!^ zPN*R&f8Hj*iwL-t1sv z=Vl+|s*vrctlQ{}9t$4TPm#-PC#qRoD zSPyC$E`qAo|0@Eesm!Yc%*Nz<`|PqEZ-g+Mm0V)YbpF6Oanw%YEy71Hv-pKjK4hk% zLBQf6(5?8z%{zVW7-1W?Ijmv?ok4s1J|+?@WhQ?qJNDS7RkkBsC4j2kw~<|3m;Z?W z*~#^E(3NzSP)2=_Q#9kvE6dl-Qg`ir^1HW1N@iyTz|;(Zd#D_Nza3=uB8*D|QXH}h zfRlohpFFb|TR^ye%9=nxs?=sjha;_&NPMUBz8BXfQ$}9KP!0weFh>jiwgL+j=}es9 zwR|pVf3D^k6&Mx_`y%z(^tDyDxU!QRg;w@WGy0Zf?4kDvIY$FGjMMVL@_(AQ-+F=# z{7i`faJcGbb2p(IcFOQSb=xkRlULuW66reWop(au$gc6u7LJOXR|qR`{3Q)L?9PrX zyGX=7idjN-H9v3wM+5KCrX9F!?qJU%o%eqR6**Ho#`3kG;v1g&>MI*niR7@M$3~2T z0}hPN^j-YP@U^EviCn0n(;hGg-Me!vnk5B0{7wtI;nUesUmo!}6hL+7cL(n}`#$HV(^MVCnW1<9@KbvEhe?gcQ$+0WKV zE|-0iT*i%%Djp5bEYV5&Xn@vIb$`xr6r?^bUp&u|YSy1xhN|=lfhwP<)4mL(cRt(v zG9`dEQ(kWtm>t{||4viTT>W6M0I`#`jQ@pdR_#EpTs;1f^#aAY6HSPAD zuZXnr1z6?e4OI_TCy0Z2g?%0Tm!AxUnf%@501wq8C&)2*-@`WS8~{F);ZF26fh zxswYT0Ez+F4>}2~zTmiPyV!Sf*3`*3V`+)<$8Aoa&KqrVPv<>i-ZC!KI$fm-N}Q9G zgGL%9U%Ys1U+Uk^^jPT*z+W>f9vsh)P!NIcvg!Z|8=VK}I&z9UnIiP`5j*UY7bfh` z*>OH7J|v6GM~Y$!qyc^VvQM)2K?Ytx7^+gnmz>XZIY;WLa3shc7WAFC=NMajcM(C-J%&vv>SqRyIfG}@`jayE zs`VHM8wo&Vu#h+gbh3Jx!>$|vxbu-D_-ij+xl3A?yGr;*!K`c{W$Ii-Es*{ZbqKue2szl7AJ7(qlpYG1Zfzi8zwP=qS zh4`-s|Knzg;Fq`=ZOays z1Y+CGYfd1&Ul-I@3&89+n5DYRJ(l{jgJ?vo#mwq<9|e z{h2675Ly$CL6xV?E^HYNr3Qt2ckWTZM=H=(y8Q>98Tz4{K;FH2EhoBlcv43M_=&~wQ5;K*Ug>M zIkmB{->@P=TIE3>==SM(I}z*Xi&6sez*gcl{Fp7Ympc|2Qno#{p6VJ~I|RRqG?fo@ z*WCFUWv)P5?CQPbCtI?~v%s1gdzx3^Z20p~8)KD4rzPt?y?{2aikV&>h$2qNQ}r;i zsu^{1keEmsh?RW-fe&)Jy+5BMcDuz3G0(F@A{d`^VcDO4zJULlSuO!HIY)@~?{jbG z$&^YatuhUu5mY>PxR3e*MVU}EN&t3_v1PNe;2>B^!n943U(jL7qpwS3z^mz=IIQsM zO$<1aS*}qHHfY~<^&t|E_MEW4Q|TbVK%a;BC>rFO`*G!?I_< zc=i-milg7^w_LcYT84K+AFw_VFqYP(STH$w<7w&JFP<|sbl3~2Vb6#B9Uk3C#=Q?> z^NN(D%Qo4dZBI7gTOSlDU^-Fkttt00R;AMyAwbiBsVeF%{?}H-JGYHll)uM5Z$L?E@0?4T#8yQ_s;D&NG)a}jx9Rc?i&W6PI#~|Jqe`x0o^m5^@wESE*i`sTm8;kWa+5|XI*v-Z z;EG_RMDHX>N5v6Oya;Ygj`JAkvwEHnR+M#Q*+JLV4xln#yzz{La6_)Z#?=lK)T^9x zR<0;11h3S9A&+vTpaA28y}xJmxY8`6RoC(v=ua(fxb{PFO61pv&`VH2uT}9a`yq$~ z6d-QhfK^7mxeCYLb1~5v6Gn0k`nV8uzr6J;tHX+L@T|z8QF+&|>_bB6w}CJNy?7O2 zomrTN0W+Gblvs-R6~`w4BhNm|A5MJAv#*zTi$?2s=FodAv4mhR-Iy&>e{0t>A{ut2 zE9zoANuy%i%6e9HR1_z|p_#@A1Xbh0YpAVZ3H)NVek#Nyh^-1hQ1JT`6CF9L|0xf^ z&<0FRbSVT_xh)BgM^(GNmNQVP-j0D94Olhmn-@4-^26#X7W?EtoKwZe!xH)01Q~m} zefmS(Q55|3rJ&1Iw^pA=iejk27M|5?EsHIM+w>*G7XRl7UzvTTByTP7DdrG7_x;?X zP>Q+amaI(u9v}*2j5Y#@@bsG;Lm4087JK9;3jc=KDBFH{A^&St9H$5w&5n(@Ojvy7 zyEYl&#|2~i_3YI!Be6ph*nw7BES;x|d&F|RYT=WCrDP97EU!GI3Z^raXljLfk(>+a z&8Ds-&+a#?zG*4rprUDwkVOAuYHqDQ2?%?#rAnBdDhPB==T9n{1Iyup?VYh2%TfL7 z66h8svir+caJ3d#7w5T__~-V%dX6dm$EA4weqY0!hL+89`uogr9TtBZYWax$ssm!| zBBRTX1ow99y>%p2>!6|+fFE_Em*be%c>lA4Rl&ta8uiq?U{vLWgoub~4ceVMziGy2 zQ>G^b;4bBYVwjIRRsksdgOUw;s@bzIp`2@2ggIj@PrGe**k2sKcp5t32tjkWj6rZ- z_kDgOVFly^S-x=7Ru~noqyoV-^Gk}-K7@^@v3-7`Jdodd@uqNVNzBqXUmt z=z8D0M|Z z>Q#G~YERO^+zFv& zP+)i^mcA>WR;1~@g0iUP-~2vqhq}+zVdMyPXXI0jH8j}>yp#yNa_aI8gKztb_(|-! z@^3+}jZiD#4O_CAxr01J@5bQ-GrL)JDVG`O-LssD5%j7Z>G?BTsfHBW5xcrfWNx?3 zd|rOTnhVmdMf^*dLWlFEyDvNvh)rF>)Q}{64w5os&AD+b@@+hlt#|Ak(qnTS_Q@tU z1zbnW+kC&@DOy+>?yY=}M4Qf2PshKzbHUr|Cav&SY3;(wbfPVJeE#3|-NZluCdzI1 zfs}zNT}I82qme#gYgzznd&&bH_tr)Qwkdaxp;zPZ^T7dgRwo%&mf5ob0R z8kBECh}DOM$#e5hJilV#rn$&560ATqNI1JFp+R9sqNbu(82EOhgnkw%EMNYvwiFNPn*nwxH4ViZ=jBS9F6J((0A}KcJ)_7F#;~MNWEvhzx4k` zM&3%fqAp=3+0}!oIeRQ+z8_vlMSN)5uN)|sI-Ev=wA%zJ5m{-&kX|y~+;==L{t(9_ zd@OX9Y*p-in#PL5nMuIBXfG`DY5n==fVZAcn-(VQ=e}{>fx9me;=Un(^ie9KOGG<+ z`^*CRXPI&Ks!3h+7#|in>>CJ!`8>2dhGj1vTAiz;**lCvNK&s4QUwTD!@VQdl8UsO zF;MpJ$C-Q{yw&_z)f&CzOp?Vo7I4xg);AgX?_Z9XmnLmRh6MGw)da&HnkI7WFGqwF zjK-&zeFPO;f_W;54Vd-}!JgoqN_R{Pz`VjFG}&4%F` z4ieC9{xA!S|1wDKoMLSDiOTcfM2!fRinkk;a#7rf@mHHu28`2lGDFp%pj-H45u-gv;vnRp{eJ--3aTXjBbR!|6>E zr+V}}+LW!noysCih(zPgE{LgMW&?(SoDVD+WV>VDb7IfIgh6bXON5UQ6dzTWMg%m- z6K-8`O&m;8FJv8D>NW#+&euZTMS2ofzC^!%iX=z?J~*y^(fHjo6wIy9=_E2asJ&|F z8ak=KwTm?4nCVh;)`+&lR*IWGd^Y_N>%?k8rhbfM@EX<*LTuMa+IFRMWg%G-oCq`8h#rUNI-nKJsq ztnfN6Y+e(R0R0B=Z3-L3MXSH15i-+XPd#EU<+L>%!sCr9S%)MM~j6Q6v&#q4AQ@*pIe`ks1IG zH^zUzT+dr_uPtA{cLZNrH-!BTdhElE#ER_%SDfVn^JnR>!CR#^wv+v%K8(9tDqZMx z)qOR>-?E3;%pb8~NRaiAZ=(d-Glj+RM!vGvGQ{Z=Pf+Z8 zDCUl*I#}f5ouGV(6|lf_=nzjHw=DHWOU|8Wr9}Ke8{bsa@Tlg*CKJ3qSYHiONJL@P zLK-T!VxclbE2K@WRlzo!!@v_ln(UKHw;`37>di3>66JSvUJf1^Os^!cd#kka0cEeQ zS&Dukq-pR5rJR5P&o@-Y{|pQyCGg3poJHI$Hu6N7fS*$BA9A78#h^lgGKHS@fMsT? zvenSZpl z3Jt8XF%cmw$)~IBxECyZflEGMsyZH%{P@BZ*_owCk7Sc>Bj_CQ^v24+CCW@xO>QTA zwl77dV#ZjxqFyRez+U}l+ktq0YT_HJ|I@M(+)Gbee0IJ@Nra1|H-%_UJ;xMBn&x9V zAlfu^$X?4yyuW@BzU=CQp31B2OLBJ3$51s~YR10%W9!h8>2B%g{J4W)$(fOvHQ<>&lj!z#zw@H1ePhVnR)(QTLi}cU!S= z9;{!)J3eG5LNSPlDh#QHYk^y3%ie->Tv~v-cL8rkC=PB#nXs9wH6>jeIpQIByXd_U z;}NVj-N;Z#OF8H={EWO1*;J0K6c43wHv1+~c@bqi!OBbNV|+Y->`K@Y_NXa9)R#kS zGR?@}8TwDlvioaNKo2srvI_mmXIvlz3hlG6!pn^vhC1k0ujjrc3Aio9z8GW==`!}A zErs_CNR_f`Jvt+it?KSAoGl|?TtlxB_Vz$e2AWUN`}<6hAqzyEQ0!1&S{R0^N6^HY zd5642@>ALE3(%~v3h6*QITD4&;nxea$_FR*zjd!dCf`&=-ObZ@vtv#d6iEXkp@*#t z?Cn-wK^(}4A~GaPrt~!CUS)c0?C|0mBMFjZft7|t>g}CUP|s^0{XtlXT=x7Nkj9bI zm$UBEh&$A&NZawxr`07?Gq}41sh(P>SY8zDKT>}MXgk24@IRE6%eM#a6cFuyZ=1E^Kk`85%SU=a_4&y z+1F=I;I6>WpYYr-SjMVS?KW8EqTc*O&lF|hM?r)<)q}Pc`;*Y%fq|c_ZsFiM5<;?- zYCGetfV+aPOHKyK0|mGz*aZDmmrXf zYD*1UK5=36T^CRc0wJfvQa-Zal%4<^u|HWD4R*}B&5D@tQCsqrisQDA>Me#>-J?a4 zB*ACQ7toqYOwVvG=|%0K&2A+6vg!< zFDd#vX=|5aWgU*4H&-)KRt0ATHk`T?gc=oW}8 z6AUS`8()i;K3-*@&Db8B$&q0qP;ADNS6>Ma952v(uo=&7{oxr1f*j|4p?(`B(v|-P zcnUW6RuO!fPc_3jLMdxGAJCT){~d-A_{S-2y|>nYKWOoo(bc-G{R0I^dAqaj+$H@ra|Db2CD~;9T!6xbjg6a6@h|gJ3u$SmJgG>v4wl(KozLp^( zaa!8|71BaxGov1++#{6t>hMIWA%3*KD})9pv!`&I{n0vN@ZRP{>dhUlY z*ix@!mWcSryO;)77_XFlHt^t%$D~|D7Gv?wTgJWZzrFD021sO$Dxm+D_EZdwU&X}c zFkMQV6z();Q&y+^0Pnn*6G_W2#N30hmDqiRoVz^i@ z-LFveeS>AU1b%?1`!Ix!LH+z=`(oX8)`DWGLqs(NGQ!H3eNOF0#uiO-=@J_qY@!cN zW@L!Y`egGAVdU?wE`n-}bIM28w&4@6xvxzLBM2$hS;MLH)&z2Rwgcs}*=?9Pr0x84 z^{`921J|;CM&3dDv81e3Rhp0-`p(ehimooA#RH4gPYWX_BlNxG9utP}0?>L>cJ;wH z=AhFdJyF#8Z&Yap(>>|Cl-E{NKCXhknLZvAPYG};Yvy>YmiWy+%#lOrGr=aRz6IDn zFUOTsC!iF|inAN?GN{`KT#&a0O8!R~+0OjGG(OQA0;M2K=|X$LBlC;ig>`R^^srdZ z#U{|QexIZJk|s0;Sa_iG(8M9s=0ef~^VDVd&i5UG26HV^6vMKg+7_ryX$NlPtNvob zq1%rWsD1UN@G=$9y>5^oN`-NxyFZ)fyd_NPNU0bP5GOX{aEtAN*y006lF;}xMKywf z@SoU`BKpB6;~)Io5^I*~&@>~Lrwb#y_k3?#i`WZaL=%<~WmLo$md8ezz+fC7!3CN~ zC9ZThn8(ru*z(E}3hI2(@gra+zv=6EnVfK|RZ^B8A4fi_J=7`W=6MW2K70Y3jZte{ zQQV*eGUiXZ!WxB8u|(asUa#6;6H~}Wcit|ygpgJ@cR%nEBv=w&OGl?$dEwEOQ=_FZ zZpuNX%*jL7|KepBdt?pAF_RO5Y;Kmpi$eyo$2R9D_O9qEM!1sLJh!K0j0;_CXZUBx z+^QTS-{RkFC5Sak0*Yf%ee7rMSbe)KdY%Fdu1h9L*98-fH#63PiWTs-!xr{sg5NK9 z_V=2d$z(4j2D%3I0J8{JGUIW^>*|tvG`X${Wg|2sl+bP_AEx3)7)DqJ$tYZM(1^t7 z$iWmg`23T>`4z$=lQ{=zxn5+sej@c%eVfp%GROnAr5fiC#1l~3P^4REd%NICy$m$y zZPZrB5nSag@Qbh&i;3quOn6{5rlWAp@v6)ti~Y6KA-I_Vcr1EC3C=oEAE^|T>Xv>+ zf!hlg@~z8@Q}wf>k4RU!{O9WPFm;%g3+BC99t+YzR>+FASn2|J<~M7$RvmXMIwPyI zcyr|W3yO{;GQ*4A)mtlvsB(Y93y%@yYCKt(&(wA4XiVjMtyoxw8uOa1*W8Q38`Ttn^y-AZk8(qkoY-z?d^d$gO-K-N?z7ru6y#5czzej89utFIfc9_e z*GBC)@y6=;EUUgCsGfXo-`jP5kjxAO3%DBd=jx8FUCtROLG^(f72@Vq3da*HqOIRy zPiP27d7>)bdJ+1Ct^{33Kk?jy)s@g5>pKkLG6j2Z_O4!w5kU9kAd|Y$GhwcEzc8a0 zCJO!T4(p(Ut}CE*8OT@LMePA?g-<*FM;4oiHm@0AYhvkE*A)mJomMewbd^5Khit#N z)zQGVvr93^p+Q7$^?PWe$nHW`s%jI(o>oP*M_kd)|5T3PY@(x+eJ7G(D80qm=acC(E2 z+M5XXVbkX2z;4$yi4U1egfU8{6YTiJ}FIUj$-SYT)VlRRAmQ(%|_0}fL` z^nb5jNXX-Ykt5nav*aD?om9^pf1thA`?V(xEl3hCMvCxIZkex1;gT)^pszJR?Hno4aYGAZA&cy0SnxZXU)pXilo5K<0S)D{&|=VTJAir3 zs^wT*4XUiTah=%QoPX>#i-y?k)f;c^=D52SEni5FtIJMrk_$dSN<=3dqPP?rB$%3- z&pWqJOr_kzn0n_8DS_e;&%Q{VQ``Xd$In9^6}OSROQ%C7b$j#u4blG2zg^2EX!xQ1 z{{axa+d3FaVq%QKbRn{8E9;V-1wU$*XJ7}e1MLyNH>NCl9rv>}7TJeu!IYpSb8 z(`I`t(pova|Hj8lD5cjh=#$X@Ft>J<{CiB5V4cA6?0*xC1GP8#fbS_lw#IcVlD{c=X4& zCvW30g-naiYJw9Ve4Xcaz|lwNCLWsNKOnD1MU+}Y#tiI=ty&ZSNz|v*!}f>LPnmA0 z)O5LHtyik{_TgKUni#ttY@L>9HjLmzQY`cx)4p}A!oz5em$;Ij>;-bPm#O~5S@|cG zzHu@8|6KShr!dpWey+|$_VKU(WlWai&S&1y0)>yhtMQ3>^ zhGi9@oBhDjA7Mk4E~+V%e)N1Cz|5y42W;<@JKLM4CnY7|=>47j0 zUnt1&ud5OR4e0$Ljm`N|`Mau$9vI7+ltLSMR$9)9O^{|&zjsd3Ks^Aol+u#+l-J=n zt>l^BALFx~KQ~sqkP;=gbx8GY>uAgHH=`q<}O z<^lmfBEa1qK0Vr`JV!xPDZ2%1mRi^Tt1Erhz}+RfIE${bX@=1sha!ayaF|CVoHcaD8&=6fX<~mo2O?_D z(FUn2;!^tvTx`8!GIDRe^+wZtJanFi&A;^EKgVX6HsdMT#BfZQmkwQv;3nB6Ty{Ex zZ0E%gdaWD2eg~3q%e`5_*7Emi*-ZYBEGIPb3V;uVv=cxmJc|wj6TC zxM#OtMpa8jD7%TeTxDI9xwAnY#TTAuK^yfI*9?3W!D*~ze|N%mI`!{5(is_YsDR=M zQ8a%PWmMukC5-W_K{~tV=TJJq-m>VHfTW(WsL@p)%Iep0Ob`c)_|A-3H}dfZT$~I^ z0pF0WJU2@eyrDL(rC53yUyrkxkRkXh4!wMGU1(xA={$o)YPjZh^Qm z2(B_Ne__}j3}TB@#Kb()#b}_;W~cDfu|cA%l$mf7#w*UDtvw6FW=Tjrrw5)_0*Xa8 zesDQ&1F^_r1O8UE`G>H=>Jb5bfutL%+-Nv;xs9KR2Y`6W6^QO)#BgU#I6Owy<9HYN zU#W3Zc6(?8&!P|Df6v(qI4pk!{D4&9iDdw(q$B_W{LMXVDYPD0fN1ekTS8+L;8XE_ zST(mIqFG;?k0^r!5kmhZU;$RuSRhaAT%7O-qHHf)!i^7VD~Z;jEH-59dj4Zn(}Wc^ z>UWSD$u+UZjBs}8DcVpI^cM4_uEoeve;q22ngB8lhtO@3V zAo)T8%2X$9$Js>hfaCr zfN6ZXhP)38b(4Y=8lMPGr6@?CbT*lT%M35@oy-4aVP{|}J5A%xD_P^G8>;~>1SQQA207kEz^9-xpEf~$g?l(0Yuk=`Wh(u9tRzxHG3DWq{ zaWQr(nREfN+~N!=<=c7?*)Ube&!B+BtAQM6w4GYljAp=J-$}<{<&)QsT6e`sc4HYK zBMahrig9J|i>wCG$--%e5()n}e{qWc4n`>FRD7Cbr&H6H4=2CLLOTuEfx1+Gcf#ml z#UnH*5ZU7J@|@(0Uq-iFtrsuJJ>tnITRcOht{6$%oGe>8*v}I&o^1xN)^NY3jNc51 zG2=;xqPRBJ#0jPD4uf9W|2FjqM}KdK^s9wRRX@dYMI8h7K$3Ma3go7AX0_-!eEFhclfyJaqV7SlEcq~UrfzMvdG#uU#^%rpmd$(?PmGW|2>!PcB?WG zioEjk@p{gT8KT)ze^-g<^_E?{bY%9*ch- z_?i|~dF!HTx^d}Q&&mxer#Hbj5t!Fy6EfDV7At(|S_N$wh6KD2Ei^(F@SCCeU>p9$ z%s2aLSLVONG88Lw)a2{HB4a0DtEvwHRg3z1mry0U$0F89k7BI?>vx{qEbpDZ3{kgK8D ziP{z+?%czxH@lSCIr36dL**Q+WvNg;cq>buZJcl5`t|8xIJJ|g$KWNAjUTNM3;1S;5!3S2ZbUAYGZb46mVZ?Q z(1ovQfPF9BAapC(DF=H*$2~yT4&8gqIj4dviYsOBj!+WxY8jN4O@^kIOD?Sgti&Z5 z+T9A96@{nY2?>FVDPonmX06SZC^+d|or!SB7`~u%u1a&k>#Pze({Xk^9^?(^+FjI9 zYuKCtwVCKoaMMUZctB%uK$tfB?;FGE=<%E4znVzPPQW?0?U0>KFX$N8oMH5){tp;Ko zR5JvO{xF@?Nj?H27Pb@1+I+l9Y-qkPG*bNO64$;sEN?1HTZ5t{A+xQ3VVbw?(J8xA zCZ5KX1D<<>&`_pv$*)s`Y6~eQer$oc=-kjmlU zeXz(m1hpT4StV|blXW8I8>P9Iev4WEY1ME34`^xKwtgB0WO*|Ui_g39u)n)n4V^I50Sn5g?3(Q?JuRZ&?5}8Q0j*Q@=_#OvV z0fGXVxUsV^7D1m;H$@(iz1R4odlU*TD=hSr{_1*1+0Zdq{6G7ieHE$fbzr`_9H5_J zL%SbcZ~zU)5u$dcU`mnJ{;lHJ3JS05oyOEA?A#3w8P zcqH;#B3Va5n0S(|S^*$6QU7P0@>=H*6;M=MP@ z!322UPp?lQ|4Si?SMp>lE+1fj^T}R>$@mt{2JxG%q~>JBhPYk^V${2S=Oh*|t5J>! zpO%^!iPtT{g{8$N^ zXoo&RVtt~Mf%d0>{ON`GukVhsKFjXZAB(I4t@pduh%9OwyZ0043Ok2A`NA9qq9n&qY^0C{-J#pklOo-uMcOB22a_o$Y z{aleARMr?GrqzuHGazSr6pXJKin^p>AV{IUA3>B>{f@2>NHM(Uj+e`^n)i&zvNyPG zq(UaG2R8y3Zc2dopkuxrc6;_Ym-<;s$?Y;z3G#ZTUdfog3B>+lJF^MiXr+l?*-P62 zteo6ln3wF5Ez?UJP89;|s4lvLk{nMXjDyrd1C;A9kf8i}YP2_(a(aiIoVUm36n}eg z;R(XSk8M1S!)*AY*+P*bDoKxSP*GVsD0u9V`kd$7q5C6ik=jyUrtw|q3?J8@@_UQ>mCknsso|5!ZAh!MwX|Z-rXL<8m924vMn7>aRj8zo;xHw`zkyoZqRuTq6fTzCr5hySsub=WG?J@}c; zM?S;HaQ4n_4HyP5&7lzY=LBCbSiHN5a!!5P>d*Q%e=sm-EE4gJE^$L;I1H=T&vYFl zncAjSrLsN~O8K~zt;VkWaWUVs)XEVXZEr*#rgp+f1O)HhHj1s3_07kz*Cb+ghs8KL zP)A8Dhb(ToPD0Fb?bmqVHBh3XG95!16tr|JZc@MMSh8t4Y!FZ<8jeHkhu)(!onDGg zbV{H653Iel^0}oL!%zy{8MHxhL6~K4m&>y+;Uk=pi=J@sHq(1uixe)}N?ml-DFI1fCCJs0QXM%Wsqlnx;{$ zN4>zs-ALE;B9d58IMLlxG@@;0zqa`3KOAva9TiBJLFPDA zfLqpyaJ547m6(TYdY7OkLuepz;3P4!Hw&e*WSh5tAH>Ov#HUzmz9NSu5aLr+X3oI^ z@Lm43aWo*ZwU(?IIvHSj#(4)JmP(Mo1!(gdm#;XY^(~DQ9)pn#WdM{MT5oIPA7nTk zr62)#E`=ZIxoep6p*9qT=|m`Fu3edx4u@V@RSOlNN3uSj;el03T%&+;+jNFb9j#() z6`qLjpBsnO(pMU_Y|6Yn-Jfcg$vzX(<`+-Nn?W5-jguPeRm72QD^Hv#CsW6ayuD&f zD<`lxb$0TaQ`A?ksO;^skMJi697@@~12y_3F4k}U34P(E0}!ooZMDV99A_teI~o$o zMgWoElOi6BUb$Bxh&3W4TuI)mqQJvkuZ;)3q7HFF8rzRo!7%MRuJ8K!5l!;?r^O3T z-q8&HYy1aQ76eX6$OI*M_^F11du)=j?m}m)Z;er75j)s4#x0|~;rO-lHy`Dvni9P& zt3yq9@`|i(b{+EI!_ge(n6vcS-gS~$sU>66(`Ycsj3rZ<&5B{c({@2Q-3a|BC9JFC zDLn*Xwk^A8=S>n$nsdF)zUIn02FnvClCK*GfUhCM%LGGTVaP%cPeBexQt#a<-~`Ow z&zL~s`VM8Wt~3&a?S1$H>d`~T5?JXiNb_UM5qgEWm4*)XpVRpBu>V?z{q&4<-cb3G{bGa?kG=cOrn$*C z%QZ7Fz{hzE{cu?yNqFSR&kBYXrS=X|+KK15M^>4V(vaBgmgXS&WzvTuZPno@&&BGN z=ADF;o){7PO;>lSW)mWwcDVf_zREYT=930kRW)sSf(H#MX&FGZb5h68s! z@+797!t#g_Ok;*Ab*(@dVT!f-#k*A83af`!vbF82Jq`ZKKL5l;=O0ZFKj0xG_z&8qQfz^#+Eqk9CB4n+Zopic>J95A@zDemfUE_JNzUE@H)Hjgl#5UEjpngK}`mRz{QnLV_{!g9u(DO-Z_AH@nP;l{TkXGC6gOj z*#6MH3s`T+s&8Tko&|w@N6MKsFsFd_lshXiB>=NGimM;~GO01%%1hQ1ExqG;t+PHo zd{^PdU)^mEKz9un-vz3UjM!5y=&>zf@gm|s{6Flfp_njL#a$kvf64>Kw`7=6YuMC! zno_Q*vu#z`*hb^+fQpV_%53mJJ# z&ez%M>GP=tjqDeHJxwADwHDrv)vr##cc8OHUtUf8J7o^zqav4PWI8fxIaY{K=X&c^ zvUzaA#XjcFw(d)7cnuG60vVor zoLSWOJRHU#sk?;MY|WY-j4sii&?3sNRcmsqjGs~(Btkwh#WA7JT$X18|Fc@jeuCjp zq^zE=YR=Nt&2cVP^%fG$`2@R%B}5ilZEO2CVHM^&JA1VgS#&|302{(9@NnAC3ied` zBpg`{oJIlp%6mU27IQ%~a)JH13{z`SWcQ5gG{m-rH1dY?osj6XoWuFNhItAs!5Ofo zB}~AmpXUfmvyqzzN-7$xQ1`L0md8b$OxNLw_yP^+Qcz&UC=@dEV#xeBLg_)ekWeM> zvkd^O%Pz20P^cbyvV$G^;X%eO&}+lF`Gt9RmOa{;ayI#wqqU5P`63;y?gpb}IdYZ{ zw=Gkhrqo|5{8_Z3ahXHT=JyvIu8YI0P(sShN&t)LL#R=5Tk@V@XGlzxdiPk_W1-h! z0IQ`+XC$lR>l)u8ucb0gs`HTQ>YnvH`H=M0B3J=H&Rgv9{{Ek~tbb}KTh!gmbUHJe zvg~}bNCPrN>Je0ZF%(&OMWv>y<4?f6YD&@=1pgM!v4L>RA$6#7ED!I0|H(s^kh2g$ z{}o^ix#;Y|4uR_WuvDWwa{HyXC5T^FBVSM6EB(O9_Vm_}4Jy0ar^9^yxH?qwqFh0cys-EE^ zBTs|P7d>;Xam2Bn*?4W*-qlbdNif}xc#W_Hp`fEBx(gL|rJc*3I}TB1v+;R5V}__m zyXW6b$Lu&={T|(9ssH%yVWciz5hH;SplYwtQg_1fLybm+#I8pxqdqeQzD06?32l>L zic)rS0lpV+eq_4;VdpUpjyS_ElE)w_fJDegCoO=oO42X4r45vEUCwVzphus_LDLLp z#F-Xj-l3SHLOCSB{b-MWGiFCIu87UP{|Qu(D`oIPRv6@~i1WTGH70x12t-|64p1SM zuWtJj5>5R%f%0s!qh1^*$ogt=U24Y1)8UE2UR}7gPDszA6Ug5khwbQe$A72$>Sa@n z$XvcsXuhA)DbJx{q*E&GUoQ;2QV!e?JP0mN>FV!8!6NzJ(DWNK7~;|R)8)!prL3hg zcASxv`{eq+;B2UL@fxUD%U)nHfU89G{%yB#%m8=zJ*=#}s4q7e>wHcd8muIx-W3Wk zQpF&8)|>Ms`F|oboZLYl43}{E7wf)(0g+UV0u4H~@$Vev5%Y*P8M(QrS^?N{?09;#eKJHCzW8_oc(VUjxH2k(v!_^)+v;;ZA+Z@!8XLO}`>BX6mdL^mm zACRy~rpt+yE8idN>E?yzI5d~Q1RDJ?0ybX&SK4!Y;X@7L3?`R=#nws(Aes-e&z5*g zm6c9sZ?0Y}juBKGr2;FIFrg3`{In&iP30 zVphzDH-Xfl<~m)Ja5^lS5Wz!?w`F*0S$4ALzldpfyUq4)Ey4m&j z-Z}q~>crW{IVWOlJ|3?>r;(6ktwi)_+7Xob9$oG~;?mR6xN3DGTKS#X*zyoGGM9T8 zyG&ra@I2uVt*bj=_{;p`?*>owsU+T&tFmre3NUkd1;&}TUe!Q7^#SciER+;WxuC`0 z%}3;|i$RDA(bFw*lnD88tgB%%ae@V*vz*}MU&>*uoZv&ABXcnI2B zN*8rEoVV;dX`^>XkcRzVtGb~I2^~liq7l(PsPCo2=LV94Mdjd0Xmv}pk9DCaVzD{u z?3c9>ZCVkQDy=qvj}ucYJz;0lE>Js{%N;VqDt7(@t1gEQEc^*`mAWKZ%o$RFcM3Ut zlx+CFn~DT9(rTYF#>l12cA*AbXpWBDKso94+XFaab7M#+FdI2<)V0z?{;TzVw9EBN zCRucaoN!a1wJCEE#2=U9Kr9)*AZ8XTQDCMBqTv#^x*6+rQyZI<2fAuB&_Llt|6Umw z^spAJv;)!ScHmJKJ&&}>3QKiG0vitfGU5{b4FH2c8u}T3sSIw~hB$QMApL<@&l!qE zK|L>(Z&OWBhcNQWI9$W%@~#FRk6&1SZ7h=xq)SeNH8+uTPliOTyL^0&&y)ZwA4}>K zei>mPT-Md0^zf8a8Tm~a2wZh;r-qDS|?EHVImE%R6bF+`>#63SQA(i&w`$&OW z<^v?fZVJ5oUMte^2IKtj*sijF8X#w`d5_GCcejYv=-(-b(y>pL+^vy!>+w>jJP^PU}Y$5roW*_^MH*|x60NdK( zx%u;E4^+hLtbYPjpHzC&kgUS+f|l%gQFJ@w(tf0$NJomw7|^2a^a$TWKV9+QjDHRj zXj*-6=0PRTH7bQ*>dDj`Osk}?MOl5Y)iZ`kq-vvIs@^`mJ79oBtkV*3AUDPP+)Cr|(kpnnX}Z;t{C zLnX0InUZOi@uotxdRY!pi_SXJJV8#g5+q~Y<_o+_uK;RNmijGz4ud_1Fwhm@2 z60EpO0uJf&JR7@>BlEQRsY6Q=dxfV+ix(ys);(k7Yk7RUaK@R+Zw0__1go-Cfj`~C z=-V3YNK$m97SRck(%pl#$Xjp;yE3Ft*dN9|w!h%tHnkA_ESm1IuGBQ?F5%zZLS=Uc-UxzU-YM#96$`lcw2{AWrqR^zC~37$3_p_v(&3#cGy{N_-D*|B6F_)VfZ3@UOKE!s<3Vdsu8CrdLA$0n zmN>4q`VNWHtHdQ}>m_#tC4K(WLnhMxJo+O3O?O@IsQZC{o2q9r;H*HxdDnBv4ft?C zFCzXP0s31jP33+*;TuywDh+$ZVLCmEE^)(+H3c{=@t?@WXzjTTjje9`FYE4Td#5Ak zA@(phIq@SMYPQ?}5((b`!RL9^)dV&cbPDL#Wsf={b6tt<#NE;*O9_>r>-`M~?0bxb zB;d79>^EM{^b9LJUb1BJ5j9xK_#ehaW8Dru{n)QlDQh^QX?ow|qr1tRLhLc6&gEkV zV9%f)e6UFz9^cW`U|r^<#5C$Y6T@577@e=nM88+sJK>`<4u)57Cgh6atXAEbkO`~@ z^%4w#n!n7++;)Hu{a0DRwv%7UPfL;u`svzmyO%JBjY2c<2=RX->GQb_OYwIiV+4I+5WR&rA z`i_~@J756=!+@svjVeap5&qMv}sD%Aq&cCK(Em5s533?Lr z@uFgR!($NhbDI;epD%QVVFM_W?E9US^sQUm{{+kRlqL9`C9||CGY#bl zmowFT7xyf9ZoN1yMq&fGWq>jhx12Q*93ivG*T6o@!0vEiW%mM7nJSgLKQxEX*yJ`B z)ihxYPFc5Tx}>Yom3~o#g;lXML$dXbY44S~I3|4E97+rdr9Ivj7~8QBi8%u5AoKfU zvLOdpNc|wjiA)DU$qMJfK&7cKSi{1}x9lGf#I0UXpF$C%9`101hHXPTxOOcp1+X>3 zap}m1xFI&gf+Ldp#lK0z2ZFL)M&Y8Fj2{odlgb%%g);ERREWq)_BPPT!D+u22IHWS zIIHI(oK+B@53%1@@m$z_jIAJLQH^(n44jTte>cIJyultk=?&|rK9`VkGbE=_Lp!#Xa1{s)nXgfBOEi$hsdvCgAy@IpP@VjRZS8uD5po=!Y~OFk z1{=B-RBMjIJr?>ZINy!SrE05LK!u7+%_`)~3w4!j89wj<%3lEC9p#k$WRyEj;PNbZ zR>21AxrCcXl3EqnfxU4pWIC<4tAHoz0Hx3|Cvf$;S9%)K;bD%T5)%LUAqDS|XpOLi pR&ECghx~ov3yxuBiw=t%%AMdOUn>`>5zrNlzVS(uP+-{AlN literal 0 HcmV?d00001 diff --git a/scripts/lib/black_domain_list.php b/scripts/lib/black_domain_list.php index c0148590..dad330e6 100644 --- a/scripts/lib/black_domain_list.php +++ b/scripts/lib/black_domain_list.php @@ -1,1611 +1,2 @@ array('openvpn.f2pool.com'), - 'gepush.com' => array('gepush.com'), - 'cnzz.com' => array('cnzz.com'), - 'cnzz.net' => array('cnzz.net'), - 'cnzz.cn' => array('cnzz.cn'), - 'inmobi.cn' => array('inmobi.cn'), - 'aliapp.org' => array('aliapp.org'), - 'snssdk.com' => array( - 'bds.snssdk.com', - 'xlog.snssdk.com', - ), - '51togic.com' => array( - 'customstat.video.51togic.com', - 'ad.video.51togic.com', - 'backup.customstat.video.51togic.com', - - ), - 'amazonaws.com' => array( - 'checkip.amazonaws.com', //获取真实外网ip接口 - ), - 'irs03.com' => array( - 'irs03.com', - ), - 'bcelive.com' => array( - 'httpdns.bcelive.com', //一个不支持https的httpdns服务,并不能反制运营商劫持 - ), - 'tencentmusic.com' => array( - 'ad.tencentmusic.com', - ), - 'qq.com' => array( - 'bugly.qq.com', - 'openmsf.3g.qq.com', - 'mtrace.qq.com', - 'btrace.qq.com', - 'mark.l.qq.com', - 'report.qq.com', - 'rcgi.video.qq.com', - 'rlog.video.qq.com', - - ), - 'openstorage.cn' => array( - 'iflyad.bjb.openstorage.cn' - ), - 'cmpassport.com' => array( - 'log1.cmpassport.com', - 'log.cmpassport.com', - ), - 'analysys.cn' => array('analysys.cn'), - 'mob.com' => array('mob.com'), - 'szy.cn' => array('dtlog.szy.cn'), - 'adview.cn' => array('adview.cn'), - 'wrating.com' => array('wrating.com'), - 'umengcloud.com' => array('umengcloud.com', 'ulogs.umengcloud.com'), - 'umeng.com' => array('umeng.com', 'alogs.umeng.com'), - 'umeng.co' => array('umeng.co'), - 'dftoutiao.com' => array('dftoutiao.com'), - 'miaozhen.com' => array('miaozhen.com'), - 'rubiconproject.com' => array('rubiconproject.com'), - 'adsame.com' => array('adsame.com'), - 'hexun.com' => array('hxsame.hexun.com'), - '2345.com' => array('2345.com'), - '51.la' => array('51.la'), - '55.la' => array('55.la'), - 'ddns.name' => array('ddns.name'), - '7clink.com' => array('7clink.com'), - '88shu.cn' => array('88shu.cn'), - '51yes.com' => array('51yes.com'), - '3393.com' => array('3393.com'), - 'zedo.com' => array('zedo.com'), - 'admaster.com.cn' => array('admaster.com.cn'), - 'adpush.cn' => array('adpush.cn'), - 'adsage.com' => array('adsage.com'), - 'allyes.cn' => array('allyes.cn'), - 'allyes.com' => array('allyes.com'), - 'allyes.com.cn' => array('allyes.com.cn'), - 'baifendian.com' => array('baifendian.com'), - 'banmamedia.com' => array('banmamedia.com'), - 'behe.com' => array('behe.com'), - 'dnset.com' => array('dnset.com'), - 'yiqifa.com' => array('yiqifa.com'), - 'kankan.com' => array('cpm.cm.kankan.com', 'float.kankan.com', 'stat.kankan.com'), - 'oadz.com' => array('oadz.com'), - 'dopa.com' => array('dopa.com'), - 'dopa.com.cn' => array('dopa.com.cn'), - 'ok365.com' => array('ok365.com'), - 'adwo.com' => array('adwo.com'), - 'doubleclick.net' => array('doubleclick.net'), - 'youmi.net' => array('youmi.net'), - 'openxt.cn' => array('openxt.cn'), - 'adk2x.com' => array('adk2x.com'), - 'inmobi.com' => array('inmobi.com'), - 'alimama.cn' => array('alimama.cn'), - 'alimama.com' => array('alimama.com'), - 'appjiagu.com' => array('appjiagu.com'), - 'amazon-adsystem.com' => array('amazon-adsystem.com'), - 'adnxs.com' => array('adnxs.com'), - 'linezing.com' => array('linezing.com'), - 'atdmt.com' => array('atdmt.com'), - 'flurry.com' => array('flurry.com'), - 'adfuture.cn' => array('adfuture.cn'), - 'icast.cn' => array('icast.cn'), - 'cooguo.com' => array('cooguo.com'), - 'adsmogo.com' => array('adsmogo.com'), - 'wooboo.com.cn' => array('wooboo.com.cn'), - 'domob.cn' => array('domob.cn'), - 'advertising.com' => array('advertising.com'), - 'admob.com' => array('admob.com'), - 'appsflyer.com' => array('appsflyer.com'), - 'authedmine.com' => array('authedmine.com'), - 'coin-hive.com' => array('coin-hive.com'), - 'coinhive.com' => array('coinhive.com'), - 'igexin.com' => array('igexin.com'), - 'tanx.com' => array('tanx.com'), - 'smartadserver.com' => array('smartadserver.com'), - 'imrworldwide.com' => array('imrworldwide.com'), - 'fastclick.net' => array('fastclick.net'), - 'tourstogo.us' => array('tourstogo.us'), - 'barginginfrance.net' => array('barginginfrance.net'), - 'butlerelectricsupply.com' => array('butlerelectricsupply.com'), - 'cruisingsmallship.com' => array('cruisingsmallship.com'), - 'frost-electric-supply.com' => array('frost-electric-supply.com'), - 'iptvdeals.com' => array('iptvdeals.com'), - 'baidu.com' => array( - 'tuisong.baidu.com', - 'usp1.baidu.com', - 'sync.mobojoy.baidu.com', - 'api.mobojoy.baidu.com', - 'js.mobojoy.baidu.com', - 'plugin.mobopay.baidu.com', - 'dj1.baidu.com', - 'isite.baidu.com', - 'sjh.baidu.com', #367 - ), - 'youdao.com' => array('corp.youdao.com'), - 'crsspxl.com' => array('crsspxl.com'), - 'talkingdata.net' => array('talkingdata.net'), - 'kejet.net' => array('kejet.net'), - 'moad.cn' => array('moad.cn'), - 'images9999.com' => array('images9999.com'), - 'histats.com' => array('histats.com'), - '51maiwanju.com' => array('51maiwanju.com'), - 'xiaomi.com' => array( - 'data.mistat.intl.xiaomi.com', - 'data.mistat.xiaomi.com', - 'ad.intl.xiaomi.com', - 'ad.xiaomi.com', - 'admob.xiaomi.com', - ), - 'zhihu.com' => array( - 'lc-push.zhihu.com', - 'sugar.zhihu.com', - 'appcloud2.in.zhihu.com', - 'appcloud2.zhihu.com', - 'zhihu-web-analytics.zhihu.com', - 'event.zhihu.com', - 'udd1i5.zhihu.com', #395 - ), - 'crashlytics.com' => array( - 'crashlytics.com' - ), - 'musical.ly' => array( - 'log2.musical.ly', - 'log.musical.ly', - 'applog.musical.ly', - ), - 'adjust.com' => array( - 'adjust.com' - ), - 'kuyun.com' => array( - 'kuyun.com' - ), - 'shareinstall.com.cn' => array( - 'shareinstall.com.cn' //移动广告商 - ), - 'apple.com' => array( - 'iadsdk.apple.com', - 'banners.itunes.apple.com', - 'iad.apple.com', - ), - '51y5.net' => array( - '51y5.net', //wifi万能钥匙的推广 - ), - 'com.com' => array( - 'com.com', //来自ublock的规则,恶意域名 https://isc.sans.edu/diary/.COM.COM+Used+For+Malicious+Typo+Squatting/20019 - ), - 'consensu.org' => array( - 'consensu.org', //广告网址,例如:https://vendorlist.consensu.org/vendorlist.json - ), - 'dnvod.tv' => array( - 'dnvod.tv', //官网显示 此域名已停止服务 游戏业务暂停运营 - ), - 'gentags.net' => array( - 'gentags.net', //第三方监测,例如:clk.gentags.net - ), - 'mydas.mobi' => array( - 'mydas.mobi', //移动广告商 - ), - 'soarfi.cn' => array( - 'soarfi.cn', - ), - 'starwave.com' => array( - 'starwave.com', - ), - 'tradetracker.net' => array( - 'tradetracker.net', //广告联盟 - ), - 'uol.com.br' => array( - 'uol.com.br', - ), - 'rambler.ru' => array( - 'rambler.ru' - ), - 'zhanzhang.net' => array( - 'zhanzhang.net', //网络推广 - ), - 'adroll.com' => array( - 'adroll.com', //广告商 - ), - 'cnbanbao.com' => array( - 'cnbanbao.com', //网络推广 - ), - '4u.pl' => array( - '4u.pl', //访问统计 - ), - 'minisplat.cn' => array( - 'minisplat.cn', - ), - 'bdurl.net' => array( - 'dig.bdurl.net', //数据收集 - ), - 'id1.cn' => array( - 'id1.cn', //钓鱼网站 - ), - 'ts166.net' => array( - 'ts166.net', //广告联盟 - ), - 'unity3d.com' => array(//u3d广告平台 - 'unityads.unity3d.com', - 'cdp.cloud.unity3d.com', - 'data-optout-service.uca.cloud.unity3d.com', - 'thind-gke-euw.prd.data.corp.unity3d.com', - ), - - 'miui.com' => array( - 'hot.browser.intl.miui.com', - 'activity.browser.intl.miui.com', - 'adv.sec.intl.miui.com', - 'adv.sec.miui.com', - 'api.brs.intl.miui.com', - 'api.newsfeed.intl.miui.com', - 'huangye.miui.com', - 'browser.miui.com', - - ), - 'jd.com' => array( - 'mercury.jd.com', //大数据收集,用户行为埋点上报 - 'wl.jd.com', - 'blackhole.m.jd.com', // #428 - 'firevent.jd.com', // #428 - ), - 'ixigua.com' => array( - 'v3-ad.ixigua.com', //移动广告 - ), - 'huan.tv' => array( - 'ads.huan.tv', //广告 - ), - - 'kingsoft-office-service.com' => array( - 'abroad-ad.kingsoft-office-service.com', - ), - 'amap.com' => array('logs.amap.com','dualstack-logs.amap.com'), - 'tt114.net' => array('tt114.net'), //例如http://www.tt114.net/html/tlink.html - 'taobao.com' => array( - 'ip.taobao.com', - 'fourier.taobao.com', - 'accscdn.m.taobao.com', - 'acs.m.taobao.com', - 'acs.wapa.taobao.com', - 'openjmacs.m.taobao.com', - ), - 'aiclk.com' => array('aiclk.com'), - '5ubei.com' => array('5ubei.com'), //统计类例如http://dnm.5ubei.com:7098/hlink.html - 'jpush.cn' => array('jpush.cn'), - 'jpush.io' => array('jpush.io'), - 'jiguang.cn' => array('jiguang.cn'), - 'easytomessage.com' => array('easytomessage.com'), //极光SDK - 'getui.com' => array('getui.com'), - 'getui.net' => array('getui.net'), - 'jumei.com' => array('adxapi.jumei.com', 'sd.int.jumei.com', 'sd.jumei.com'), - '92caijing.com' => array('92caijing.com'), //广告联盟 - 'mm100.com' => array('mm100.com'), //广告联盟 - 'juyoufan.net' => array('juyoufan.net'), //博彩类 - 'hpplay.cn' => array( - 'imdns.hpplay.cn', - 'vipauth.hpplay.cn', - 'sl.hpplay.cn', - 'hotupgrade.hpplay.cn', - 'tvapp.hpplay.cn', - 'image.hpplay.cn', - 'gslb.hpplay.cn', - 'adeng.hpplay.cn', - 'conf.hpplay.cn', - 'adcdn.hpplay.cn', - 'pin.hpplay.cn', - 'rp.hpplay.cn', - ), //广告下发 #306 - 'hpplay.com.cn' => array( #306 - 'h5.hpplay.com.cn', - 'cdn.hpplay.com.cn', - ), - 'cibn.cc' => array( #306 - 'hpplay.cdn.cibn.cc', - ), - 'supersonic.com' => array('logs.supersonic.com'), //交叉推广平台 - 'advmob.cn' => array('advmob.cn'), //交叉推广平台 - 'adnexus.mobi' => array('adnexus.mobi'), //广告平台 - 'mobileapptracking.com' => array('mobileapptracking.com'), //广告追踪 - '360in.com' => array('360in.com'), //广告追踪 - 'ad4.com.cn' => array('ad4.com.cn'), //广告商 - 'adform.com' => array('adform.com'), //广告商 - 'adgoji.com' => array('adgoji.com'), //广告商 - 'adups.com' => array('adups.com'), //大数据收集 - 'crasheye.cn' => array('crasheye.cn'), //大数据收集 - 'adcome.cn' => array('adcome.cn'), //广告服务 - 'adsunflower.cn' => array('adsunflower.cn'), //广告服务 - 'bsclink.cn' => array('sdk.appadhoc.com.bsclink.cn'), //统计数据 - 'diditaxi.com.cn' => array('static.diditaxi.com.cn'), //统计数据 - 'dotui.cn' => array('dotui.cn'), //推送广告 - 'droid4x.cn' => array('log.droid4x.cn', 'mtlog.droid4x.cn', 'nlog.droid4x.cn'), //日志收集 - 'fmobi.cn' => array('api.sdk.fmobi.cn'), //广告sdk - 'ht55.cn' => array('ht55.cn'), //赌博恶意网址 - 'huidakms.com.cn' => array('huidakms.com.cn'), //恶意网址 - 'immob.cn' => array('immob.cn'), //恶意网址 - 'inmobicdn.cn' => array('inmobicdn.cn'), //广告商 - 'inmobicdn.com' => array('inmobicdn.com'), //广告商 - 'inmobicdn.net' => array('inmobicdn.net'), //广告商 - 'intely.cn' => array('intely.cn'), //营销服务商 - 'lomark.cn' => array('lomark.cn'), //营销服务商 - 'p0y.cn' => array('p0y.cn'), //大数据服务商 - 'superads.cn' => array('superads.cn'), //广告商 - 'tv2phone.cn' => array('appwall.tv2phone.cn'), - 'vivo.com.cn' => array( - 'adlog.vivo.com.cn', - 'adreq.vivo.com.cn', - 'adsdk.vivo.com.cn', - 'adsstatic.vivo.com.cn', - 'adxlog.vivo.com.cn', - 'stnetsdk.appstore.vivo.com.cn', - 'monitor-stsdk.vivo.com.cn', - 'onrt-stsdk.vivo.com.cn', - 'ort-stsdk.vivo.com.cn', - 'pnrt-stsdk.vivo.com.cn', - 'prt-stsdk.vivo.com.cn', - 'stnetsdk.vivo.com.cn', - 'stsdk.vivo.com.cn', - 'vcardsdkservice.vivo.com.cn', - ), - 'vnet.cn' => array('vnet.cn'), //互联星空 - 'wannaplay.cn' => array('h5.wannaplay.cn'), //游戏广告 - 'waps.cn' => array('waps.cn'), //广告商 - 'yomob.com.cn' => array('yomob.com.cn'), //移动视频广告 - 'kochava.com' => array('kochava.com'), //移动大数据收集 - 'supersonicads.com' => array('supersonicads.com'), //广告聚合平台 - 'voodoo-ads.io' => array('voodoo-ads.io'), //广告平台 - 'voodoo-analytics.io' => array('voodoo-analytics.io'), //数据收集 - 'voodoo.io' => array('crosspromo.voodoo.io'), //交叉推广 - 'inner-active.mobi' => array('inner-active.mobi'), //广告追踪 - 'adtilt.com' => array('adtilt.com'), //隐私收集 - 'nextmedia.com' => array( - 'imp.nextmedia.com', //行为追踪 - 'dev.imp.nextmedia.com', - 'dev-imp.nextmedia.com', - ), - 'sdo.com' => array( - 'aa.sdo.com',//行为追踪 - 'dfp.aa.sdo.com', - 'snyu.sdo.com', - ), - 'wasu.cn' => array( - 'acsystem.wasu.cn', //广告系统 - ), - 'sandai.net' => array( - 'cpm.cm.sandai.net', //cpm广告 - ), - 'cdndm.com' => array( - 'by.tel.cdndm.com', //行为收集 - ), - 'zol.com.cn' => array( - 'p.zol.com.cn', //统计脚本 - ), - 'adm668.com' => array( //不良投注网站 - 'adm668.com', - 'www.adm668.com' - ), - 'jiguangzhuisu.com' => array( - 'jiguangzhuisu.com', //怀疑是恶意网站,例如https://etc.jiguangzhuisu.com/701f41a599cdbf67cea081ed9abda6ee.js - //例如 https://etc.jiguangzhuisu.com/act.html - 'etc.jiguangzhuisu.com', - ), - 'aliyuncs.com' => array( - 'sspmiaoshuo.cn-hangzhou.log.aliyuncs.com', //日志收集 - 'arms-retcode.aliyuncs.com', - ), - - '186078.com' => array( - 'api.186078.com', - '186078.com', //行为追踪,在https://etc.jiguangzhuisu.com/701f41a599cdbf67cea081ed9abda6ee.js - ), - - 'iask.cn' => array( - 'iask.cn', //广告服务商 - 'pic.iask.cn', - ), - - 'iask.com.cn' => array( - 'iask.com.cn', //广告服务商 - 'dw.iask.com.cn', - ), - - 'dushu.io' => array( - 'advertising.dushu.io', //广告域名 - ), - - 'unitychina.cn' => array( - 'config.unityads.unitychina.cn', - 'unityads.unitychina.cn', - ), - - 'upltv.com' => array( - 'ads-sdk-cn.upltv.com', - 'a-sta-cn.upltv.com', - 'ads-sdk.upltv.com', - 'report-ads-sdk.upltv.com', - 'c-sta-cn.upltv.com', - ), - - //上传分享wifi密码 - 'ggsafe.com' => array( - 'ggsafe.com', - 'wifi.ggsafe.com', - ), - '2345.cn' => array( - '2345.cn', //广告联盟 - 'dl.2345.cn', - 'download.2345.cn', - 'houtai.2345.cn', - 'jifen.2345.cn', - 'jifendownload.2345.cn', - 'minipage.2345.cn', - 'wan.2345.cn', - 'zhushou.2345.cn', - ), - '19869.com' => array( - '19869.com', - 'a.19869.com', - 'b.19869.com', - ), - '1drj.com' => array( //第三方劫持 - '1drj.com', - 'md.1drj.com', - 'xs.1drj.com', - ), - - - //一窝恶意劫持搞推广的域名 - 'duoroumao.cn' => array( - 's.duoroumao.cn', //广告分发,例如https://s.duoroumao.cn/yxs191.js - 'duoroumao.cn', - ), - 'geakr.com' => array( - 'geakr.com', //广告 例如:https://www.geakr.com/tkl/cp.js?channel_id=3 - 'www.geakr.com', - ), - 'qichetiemo.info' => array( - 'qichetiemo.info', - 'about.qichetiemo.info', //广告,例如 https://about.qichetiemo.info/apf/mkdjJSjcs113 ,此页面有js加密代码,应属于恶意网站 - ), - 'bbhyqp.com' => array( - 'bbhyqp.com', //“澳门真金”。。推广页面 例如 https://bbhyqp.com/mifiqp/index.html - ), - 'sntzq.com' => array( - 'sntzq.com', //https://c.sntzq.com/init/proxy.html?v=1.2 - 'c.sntzq.com', - ), - '35kds.com' => array( - '35kds.com', - 'n.35kds.com', //https://n.35kds.com/Exposead/index/?re= - ), - 'mobaders.com' => array( - 'mobaders.com', //行为统计,例如http://d1.mobaders.com/cnzzA/1260857752 - 'd1.mobaders.com', - 'd2.mobaders.com', - 'd3.mobaders.com', - 'd4.mobaders.com', - 'd5.mobaders.com', - 'd6.mobaders.com', - 'd7.mobaders.com', - 'd8.mobaders.com', - 'd9.mobaders.com', - ), - '61677.com' => array( //澳门新葡京 - '61677.com', - 'www.61677.com', - ), - '111ol.com' => array( - '111ol.com', - 'www.111ol.com', - '111ol.111ol.com', - ), - '61677c.com' => array( - '61677c.com', - ), - 'www-61677.com' => array( - 'www-61677.com' - ), - '11599jgj.com' => array( - '11599jgj.com', - 'www.11599jgj.com' - ), - 'duote.com' => array( //https://zhuanlan.zhihu.com/p/111435102 - 'duote.com', - 'www.duote.com', - ), - 'zzb6.cn' => array( - 'zzb6.cn', - 'download.zzb6.cn', - 'i.zzb6.cn', - ), - 'xp666.com' => array( - 'xp666.com', - 'download.xp666.com', - ), - 'dh810.com' => array( - 'dh810.com', - ), - 'dh820.com' => array( - 'dh820.com', - ), - 'bsrkt.com' => array(//http://www.bsrkt.com/diy/b/commander/tips/index.html - 'bsrkt.com', - 'www.bsrkt.com' - ), - 'zjsyawqj.cn' => array(//http://js.zjsyawqj.cn/diy/b/commander/tips/default.js - 'zjsyawqj.cn', - 'www.zjsyawqj.cn', - 'js.zjsyawqj.cn', - 'download.zjsyawqj.cn', - ), - 'v4dwkcv.com' => array(// http://c.v4dwkcv.com/html/click/23421_5605.html - 'v4dwkcv.com', - 'c.v4dwkcv.com', - ), - 'he2d.com' => array(// 相关http://c.v4dwkcv.com/html/click/23421_5605.html - 'ss2.he2d.com', - 'he2d.com' - ), - 'sdqoi2d.com' => array(// 统计 http://j.sdqoi2d.com/click/ffb.php - 'j.sdqoi2d.com', - 'sdqoi2d.com' - ), - 'youhuiguan.com' => array(// 神药? http://cr.youhuiguan.com/attachments/201908/28/20/3658-5lmj04.jpg - 'youhuiguan.com', - 'cr.youhuiguan.com' - ), - 'doumaibiji.cn' => array(// http://diy.doumaibiji.cn/diy/js/b.js - 'doumaibiji.cn', - 'diy.doumaibiji.cn', - ), - 'oneplus.net' => array( - 'open.oneplus.net', - ), - 'live.com' => array( - 'nexusrules.officeapps.live.com', - 'nexus.officeapps.live.com', - ), - 'twitter.com' => array( - 'p.twitter.com', - ), - 'nsimg.net' => array( - 'm2.nsimg.net' - ), - 'microsoft.com' => array( - 'mobile.pipe.aria.microsoft.com', - ), - 'leixjun.com' => array(//恶意诱导下载app - 'leixjun.com', - 'zq2.leixjun.com', - ), - 'xi9p.com' => array(//诈骗网址 - 'xi9p.com' - ), - - 'doukekan.cn' => array(//广告平台 - 'doukekan.cn', - 'y3.doukekan.cn', - ), - 'dzdkw9.cn' => array(//恶意推广 #65 - 'dzdkw9.cn', - 'm.dzdkw9.cn', - ), - - 'feeddsp.cn' => array( - '1.feeddsp.cn', //游戏推广落地页 - ), - 'huya.com' => array( - 'ylog.huya.com', // #86 - ), - - 'grammarly.io' => array( - 'f-log-extension.grammarly.io', - 'f-log-mobile-ios.grammarly.io', - 'f-log-at.grammarly.io', - ), - 'ximalaya.com' => array( - 'adse.wsa.ximalaya.com', - 'linkeye.ximalaya.com', - 'location.ximalaya.com', - ), - 'googleapis.com' => array( - 'footprints-pa.googleapis.com', - ), - 'ebjvu.cn' => array( - 'ebjvu.cn', - ), - 'nvidia.com' => array( - 'events.gfe.nvidia.com' - ), - 'axbxgg.com' => array( // 恶意推广app下载 - 'axbxgg.com', - '2ydl.axbxgg.com', - ), - 'rayjump.com' => array( // 广告域名 #98 - 'rayjump.com', - 'adx-tk.rayjump.com', - ), - 'baicizhan.org' => array( // 百词斩 - 'advertise.baicizhan.org', - ), - 'baicizhan.com' => array( // 百词斩 - 'advertise.baicizhan.com', - ), - 'yiche.com' => array( // 易车ad - 'adx.yiche.com', - 'log.ycapp.yiche.com', - ), - 'csheaven.com' => array( // 总结到主域名上 - 'csheaven.com', - ), - 'bckrono.cn' => array( // 恶意跳转下载app - 'bckrono.cn', - 'js.bckrono.cn', - ), - 'yemnn.cn' => array( // 恶意跳转下载app - 'yemnn.cn', - ), - 'familytaste.cn' => array( // 恶意跳转下载app - 'familytaste.cn', - 's350.familytaste.cn', - ), - 'iyfsearch.com' => array( - 'iyfsearch.com', - ), - 'click.com.cn' => array( - 'click.com.cn', - ), - 'yl89.cn' => array( - 'yl89.cn', - 'cdnqq.yl89.cn', - ), - 'sgbbc.cn' => array( // #187 - 'sgbbc.cn', - '7202019monday.sgbbc.cn', - ), - 'shgansheng.cn' => array( // #187 - 'shgansheng.cn', - 'aa.shgansheng.cn', // https://aa.shgansheng.cn/safe/pot/iui/index.html?6101595245409&pkg=31 - ), - 'guiheng.wang' => array( - 'guiheng.wang', - 's.guiheng.wang', - ), - 'whbmy.com' => array( - 'whbmy.com', - 'a-llq.whbmy.com', - ), - 'bd-gl.com' => array( - 'bd-gl.com', - 'api.bd-gl.com', // /www/nodejs/暗刷api/node_modules/ - ), - 'zbwowo.com' => array( - 'zbwowo.com', - 'cdn-7n-pt.zbwowo.com', // https://cdn-7n-pt.zbwowo.com/pjs/as/apias0.js?c=12 - ), - 'ijinshan.com' => array( - 'mobad.ijinshan.com', - 'union.ijinshan.com', - 'tj.ijinshan.com', - ), - 'ifeng.com' => array( - 'iaclick.ifeng.com', - 'avideo.ifengcdn.com', - 'cx.ifengbi.com', - ), - 'shllhz.net' => array( // #204 - 'shllhz.net', - 'p.shllhz.net', - ), - 'pubghio.fun' => array( - 'pubghio.fun', // #212, https://pubghio.fun/login?agency=200 - ), - 'xladapi.izuiyou.com' => array( // 手机迅雷广告 - 'xladapi.izuiyou.com', - 'xlstat.izuiyou.com', - ), - 'idmchina.net' => array( // 假冒官网 - 'www.idmchina.net', - 'idmchina.net', - ), - - 'cntingyun.com' => array( // #234 - 'www.cntingyun.com', - 'cntingyun.com', - ), - 'networkbench.com' => array( // #234 - 'networkbench.com', - 'www.networkbench.com', - ), - 'tingyun.com' => array( // #234 - 'tingyun.com', - 'www.tingyun.com', - ), - 'appsmall.mobi' => array( // #234 - 'appsmall.mobi', - 'www.appsmall.mobi', - ), - 'babybubble.cn' => array( // #234 - 'www.babybubble.cn', - 'babybubble.cn', - ), - 'babymoment.net' => array( // #234 - 'www.babymoment.net', - 'babymoment.net', - ), - 'coolppa.cn' => array( // #234 - 'coolppa.cn', - 'www.coolppa.cn', - ), - 'effirst.cn' => array( // #234 - 'www.effirst.cn', - 'effirst.cn', - ), - 'effirst.com' => array( // #234 - 'www.effirst.com', - 'effirst.com', - ), - 'hdyzx.cn' => array( // #234 - 'hdyzx.cn', - 'www.hdyzx.cn', - ), - 'minippa.cn' => array( // #234 - 'www.minippa.cn', - 'minippa.cn', - ), - 'open-uc.cn' => array( // #234 - 'open-uc.cn', - 'www.open-uc.cn', - ), - - 'tinya1.cn' => array( // #234 - 'tinya1.cn', - 'www.tinya1.cn', - ), - 'tinyap2.cn' => array( // #234 - 'tinyap2.cn', - 'www.tinyap2.cn', - ), - 'tinypap.cn' => array( // #234 - 'tinypap.cn', - 'www.tinypap.cn', - ), - 'tinyppa.cn' => array( // #234 - 'tinyppa.cn', - 'www.tinyppa.cn', - ), - 'u-mob.cn' => array( // #234 - 'u-mob.cn', - 'www.u-mob.cn', - ), - 'ubibibi.com' => array( // #234 - 'ubibibi.com', - 'www.ubibibi.com', - ), - 'uc123.com' => array( // #234 - 'uc123.com', - 'www.uc123.com', - ), - 'ucdesk.cn' => array( // #234 - 'ucdesk.cn', - 'www.ucdesk.cn', - ), - 'ucfly.com' => array( // #234 - 'ucfly.com', - 'www.ucfly.com', - ), - 'ucweb.cn' => array( // #234 - 'ucweb.cn', - 'www.ucweb.cn', - ), - 'uflowx.com' => array( // #234 - 'uflowx.com', - 'www.uflowx.com', - ), - 'xiaomengquan.cn' => array( // #234 - 'xiaomengquan.cn', - 'www.xiaomengquan.cn', - ), - 'xmq123.cn' => array( // #234 - 'xmq123.cn', - 'www.xmq123.cn', - ), - 'dabaicai.cn' => array( // #240 - 'dabaicai.cn', - 'www.dabaicai.cn', - ), - 'diannaodian.com' => array( // #240 - 'diannaodian.com', - 'www.diannaodian.com', - ), - 'laomaotao.com' => array( // #240 - 'laomaotao.com', - 'www.laomaotao.com', - ), - 'myfeng.cn' => array( // #240 - 'myfeng.cn', - 'www.myfeng.cn', - ), - 'laomaotao.net' => array( // #240 - 'laomaotao.net', - 'www.laomaotao.net', - ), - 'winbaicai.com' => array( // #240 - 'winbaicai.com', - 'www.winbaicai.com', - ), - 'dabaicai.com' => array( // #240 - 'dabaicai.com', - 'www.dabaicai.com', - ), - 'fancydsp.com' => array( // fancyapi.com同备案号 - 'fancydsp.com', - 'www.fancydsp.com', - ), - 'fancydigital.com.cn' => array( // fancyapi.com同备案号 - 'fancydigital.com.cn', - 'www.fancydigital.com.cn', - ), - 'fancydmp.com' => array( // fancyapi.com同备案号 - 'fancydmp.com', - 'www.fancydmp.com', - ), - 'adfancy.com.cn' => array( // fancyapi.com同备案号 - 'adfancy.com.cn', - 'www.adfancy.com.cn', - ), - 'fancysmp.com' => array( // fancyapi.com同备案号 - 'fancysmp.com', - 'www.fancysmp.com', - ), - 'fancysocialtalk.com' => array( // fancyapi.com同备案号 - 'fancysocialtalk.com', - 'www.fancysocialtalk.com', - ), - '188api.com' => array( // fancyapi.com同备案号 - '188api.com', - 'www.188api.com', - ), - 'rdtk.io' => array( // #253 - 'rdtk.io', - 'jtuzd.rdtk.io', - ), - 'c4frc.info' => array( // #253 - 'c4frc.info', - ), - '163.com' => array( - 'crash.163.com', - ), - '360.cn' => array( - 'mclean.f.360.cn', - 'vconf.f.360.cn', - ), - 'gsgsr.xyz' => array( - 'gsgsr.xyz', - 'www.gsgsr.xyz', - 'gdp.gsgsr.xyz', - ), - 'zmzfile.com' => array( #299 - 'zmzfile.com', - ), - 'playcvn.com' => array( #299 - 'playcvn.com', - ), - 'mgtv.com' => array( #306 - 'da.mgtv.com', - 'video.da.mgtv.com', - ), - 'wwads.cn' => array( #323 - 'wwads.cn', - 'www.wwads.cn', - ), - 'pigvideo.com.cn' => array( #372 - 'pigvideo.com.cn', - 'www.pigvideo.com.cn', - ), - 'pigvideo.cn' => array( #372 - 'pigvideo.cn', - 'www.pigvideo.cn', - ), - 'xiaozhuvideo.cn' => array( #372 - 'xiaozhuvideo.cn', - 'www.xiaozhuvideo.cn', - ), - 'wikawika.xyz' => array( #375 - 'ad-display.wikawika.xyz', - 'ad-channel.wikawika.xyz', - ), - 'shujupie.com' => array( #379 - 'shujupie.com', - 'umini.shujupie.com', - ), - 'pcidata.cn' => array( #379 - 'pcidata.cn', - 'spi.pcidata.cn', - ), - '3.cn' => array( #392 - 'atom-log.3.cn', - ), - 'gz-data.com' => array( #402 - 'gz-data.com', - 'www.gz-data.com', - ), - 'gzads.com' => array( #402 - 'gzads.com', - 'www.gzads.com', - ), - 'gozendata.com' => array( #402 - 'gozendata.com', - 'www.gozendata.com', - ), - 'zhuangjizhuli.net' => array( #400 - 'www.zhuangjizhuli.net', - 'zhuangjizhuli.net', - ), - 'coumie.top' => array( #400 - 'coumie.top', - 'softdown.coumie.top', - ), - 'avbdf.com' => array( #400 - 'avbdf.com', - 'hs.avbdf.com', - ), - 'sxyunyou.cn' => array( #400 - 'sxyunyou.cn', - 'hs.sxyunyou.cn', - ), - 'sxdanke.cn' => array( #400 - 'sxdanke.cn', - 'hbs.sxdanke.cn', - ), - 'o7h.net' => array( #400 - 'o7h.net', - 'www.o7h.net', - ), - 'uzhuangji.cn' => array( #400 - 'xiazai.uzhuangji.cn', - 'uzhuangji.cn', - ), - 'sdxitong.com' => array( #400 - 'www.sdxitong.com', - 'sdxitong.com', - ), - 'haozhuangji.com' => array( #400 - 'www.haozhuangji.com', - 'haozhuangji.com', - ), - 'lao9123.com' => array( #400 - 'www.lao9123.com', - 'lao9123.com', - ), - 'pe8.com' => array( #400 - 'www.pe8.com', - 'pe8.com', - ), - 'ycxjtd.com' => array( #400 - 'cdn.ycxjtd.com', - 'www.ycxjtd.com', - 'ycxjtd.com', - ), - 'pkkjxs.cn' => array( #400 - 'pkkjxs.cn', - 'dbc.pkkjxs.cn', - 'www.pkkjxs.cn', - 'windows.pkkjxs.cn', - ), - 'telegram-cn.org' => array( #431 - 'telegram-cn.org', - 'www.telegram-cn.org', - ), - 'telegram-vip.com' => array( #431 - 'telegram-vip.com', - 'www.telegram-vip.com', - ), - 'telegramcn.org' => array( #431 - 'telegramcn.org', - 'www.telegramcn.org', - ), - 'telegrcn.org' => array( #431 - 'telegrcn.org', - 'www.telegrcn.org', - ), - 'telegramsvip.com' => array( #431 - 'telegramsvip.com', - 'www.telegramsvip.com', - ), - - - - - // 批量添加域名 - '0202.com.tw' =>array('0202.com.tw', 'www.0202.com.tw'), - '0757kd.cn' =>array('0757kd.cn', 'www.0757kd.cn'), - '07634.com' =>array('07634.com', 'www.07634.com'), - '0pengl.com' =>array('0pengl.com', 'www.0pengl.com'), - '1001movies.com' =>array('1001movies.com', 'www.1001movies.com'), - '1008691.com' =>array('1008691.com', 'www.1008691.com'), - '123counters.com' =>array('123counters.com', 'www.123counters.com'), - 'crash.163.com' =>array('crash.163.com', 'www.crash.163.com'), - '166f.com' =>array('166f.com', 'www.166f.com'), - '17chezhan.com' =>array('17chezhan.com', 'www.17chezhan.com'), - '17youzi.com' =>array('17youzi.com', 'www.17youzi.com'), - '91756.cn' =>array('91756.cn', 'www.91756.cn'), - 'adups.cn' =>array('adups.cn', 'www.adups.cn'), - - // 一批运营商劫持域名 - '17gouwuba.com' => array('17gouwuba.com', 'www.17gouwuba.com'), - '189zj.cn' => array('189zj.cn', 'www.189zj.cn'), - '285680.com' => array('285680.com', 'www.285680.com'), - '51chumoping.com' => array('51chumoping.com', 'www.51chumoping.com'), - '51mld.cn' => array('51mld.cn', 'www.51mld.cn'), - '51mypc.cn' => array('51mypc.cn', 'www.51mypc.cn'), - '58mingtian.cn' => array('58mingtian.cn', 'www.58mingtian.cn'), - '6d63d3.com' => array('6d63d3.com', 'www.6d63d3.com'), - 'q1qfc323.com' => array('q1qfc323.com', 'www.q1qfc323.com'), - '91veg.com' => array('91veg.com', 'www.91veg.com'), - '9s6q.cn' => array('9s6q.cn', 'www.9s6q.cn'), - 'adsensor.org' => array('adsensor.org', 'www.adsensor.org'), - 'appcpi.net' => array('appcpi.net', 'www.appcpi.net'), - 'baiwanchuangyi.com' => array('baiwanchuangyi.com', 'www.baiwanchuangyi.com'), - 'beilamusi.com' => array('beilamusi.com', 'www.beilamusi.com'), - 'biteti.com' => array('biteti.com', 'www.biteti.com'), - 'bulldogcpi.com' => array('bulldogcpi.com', 'www.bulldogcpi.com'), - 'cishantao.com' => array('cishantao.com', 'www.cishantao.com'), - 'clotfun.mobi' => array('clotfun.mobi', 'www.clotfun.mobi'), - 'clotfun.online' => array('clotfun.online', 'www.clotfun.online'), - 'cszlks.com' => array('cszlks.com', 'www.cszlks.com'), - 'cudaojia.com' => array('cudaojia.com', 'www.cudaojia.com'), - 'dugesheying.com' => array('dugesheying.com', 'www.dugesheying.com'), - 'fan-yong.com' => array('fan-yong.com', 'www.fan-yong.com'), - 'feih.com.cn' => array('feih.com.cn', 'www.feih.com.cn'), - 'fkku194.com' => array('fkku194.com', 'www.fkku194.com'), - 'freedrive.cn' => array('freedrive.cn', 'www.freedrive.cn'), - 'go2cloud.org' => array('go2cloud.org', 'www.go2cloud.org'), - 'gouwubang.com' => array('gouwubang.com', 'www.gouwubang.com'), - 'gzxnlk.com' => array('gzxnlk.com', 'www.gzxnlk.com'), - 'haloapps.com' => array('haloapps.com', 'www.haloapps.com'), - 'haoshengtoys.com' => array('haoshengtoys.com', 'www.haoshengtoys.com'), - 'hyunke.com' => array('hyunke.com', 'www.hyunke.com'), - 'ichaosheng.com' => array('ichaosheng.com', 'www.ichaosheng.com'), - 'idealads.net' => array('idealads.net', 'www.idealads.net'), - 'ishop789.com' => array('ishop789.com', 'www.ishop789.com'), - 'jsncke.com' => array('jsncke.com', 'www.jsncke.com'), - 'jwg365.cn' => array('jwg365.cn', 'www.jwg365.cn'), - 'kawo77.com' => array('kawo77.com', 'www.kawo77.com'), - 'kumihua.com' => array('kumihua.com', 'www.kumihua.com'), - 'maipinshangmao.com' => array('maipinshangmao.com', 'www.maipinshangmao.com'), - 'mdfull.com' => array('mdfull.com', 'www.mdfull.com'), - 'mlnbike.com' => array('mlnbike.com', 'www.mlnbike.com'), - 'mobjump.com' => array('mobjump.com', 'www.mobjump.com'), - 'newapi.com' => array('newapi.com', 'www.newapi.com'), - 'outbrain.com' => array('outbrain.com', 'www.outbrain.com'), - 'pinzhitmall.com' => array('pinzhitmall.com', 'www.pinzhitmall.com'), - 'qichexin.com' => array('qichexin.com', 'www.qichexin.com'), - 'qutaobi.com' => array('qutaobi.com', 'www.qutaobi.com'), - 'sdkclick.com' => array('sdkclick.com', 'www.sdkclick.com'), - 'smgru.net' => array('smgru.net', 'www.smgru.net'), - 'taoggou.com' => array('taoggou.com', 'www.taoggou.com'), - 'tcxshop.com' => array('tcxshop.com', 'www.tcxshop.com'), - 'tiaolianbao.com' => array('tiaolianbao.com', 'www.tiaolianbao.com'), - 'topitme.com' => array('topitme.com', 'www.topitme.com'), - 'tuipenguin.com' => array('tuipenguin.com', 'www.tuipenguin.com'), - 'tuitiger.com' => array('tuitiger.com', 'www.tuitiger.com'), - 'websd8.com' => array('websd8.com', 'www.websd8.com'), - 'wx16999.com' => array('wx16999.com', 'www.wx16999.com'), - 'xchmai.com' => array('xchmai.com', 'www.xchmai.com'), - 'ygyzx.cn' => array('ygyzx.cn', 'www.ygyzx.cn'), - 'yinmong.com' => array('yinmong.com', 'www.yinmong.com'), - 'yitaopt.com' => array('yitaopt.com', 'www.yitaopt.com'), - 'yjqiqi.com' => array('yjqiqi.com', 'www.yjqiqi.com'), - 'yukhj.com' => array('yukhj.com', 'www.yukhj.com'), - 'yumimobi.com' => array('yumimobi.com', 'www.yumimobi.com'), - 'zlne800.com' => array('zlne800.com', 'www.zlne800.com'), - 'zzd6.com' => array('zzd6.com', 'www.zzd6.com'), - - - // 一批广告公司和大数据公司域名 #223 - 'appadhoc.com' => array('appadhoc.com', 'www.appadhoc.com'), - 'appadhoc.net' => array('appadhoc.net', 'www.appadhoc.net'), - 'dratio.com' => array('dratio.com', 'www.dratio.com'), - 'um0.cn' => array('um0.cn', 'www.um0.cn'), - 'um1.cn' => array('um1.cn', 'www.um1.cn'), - 'umsns.com' => array('umsns.com', 'www.umsns.com'), - 'umtrack.com' => array('umtrack.com', 'www.umtrack.com'), - 'umtrack0.com' => array('umtrack0.com', 'www.umtrack0.com'), - 'umtrack1.com' => array('umtrack1.com', 'www.umtrack1.com'), - 'umtrack2.com' => array('umtrack2.com', 'www.umtrack2.com'), - 'umv0.com' => array('umv0.com', 'www.umv0.com'), - 'umv5.com' => array('umv5.com', 'www.umv5.com'), - 'cnadid.cn' => array('cnadid.cn', 'www.cnadid.cn'), - 'cnadid.com' => array('cnadid.com', 'www.cnadid.com'), - 'digitalunion.cn' => array('digitalunion.cn', 'www.digitalunion.cn'), - 'kxid.cn' => array('kxid.cn', 'www.kxid.cn'), - 'mobid.cn' => array('mobid.cn', 'www.mobid.cn'), - 'shuzhundsj.cn' => array('shuzhundsj.cn', 'www.shuzhundsj.cn'), - 'shuzilm.cn' => array('shuzilm.cn', 'www.shuzilm.cn'), - 'shuzilm.com' => array('shuzilm.com', 'www.shuzilm.com'), - '3edc.cn' => array('3edc.cn', 'www.3edc.cn'), - 'appcpa.net' => array('appcpa.net', 'www.appcpa.net'), - 'cpatrk.net' => array('cpatrk.net', 'www.cpatrk.net'), - 'doudouknot.com' => array('doudouknot.com', 'www.doudouknot.com'), - 'edutalkingdata.cn' => array('edutalkingdata.cn', 'www.edutalkingdata.cn'), - 'edutalkingdata.com' => array('edutalkingdata.com', 'www.edutalkingdata.com'), - 'jielou.net' => array('jielou.net', 'www.jielou.net'), - 'lnk0.com' => array('lnk0.com', 'www.lnk0.com'), - 'lnk8.cn' => array('lnk8.cn', 'www.lnk8.cn'), - 'mpush.cn' => array('mpush.cn', 'www.mpush.cn'), - 'myzhongguojie.cn' => array('myzhongguojie.cn', 'www.myzhongguojie.cn'), - 'talkingdata.cn' => array('talkingdata.cn', 'www.talkingdata.cn'), - 'talkingdata.com' => array('talkingdata.com', 'www.talkingdata.com'), - 'talkingdata.com.cn' => array('talkingdata.com.cn', 'www.talkingdata.com.cn'), - 'talkinggame.com' => array('talkinggame.com', 'www.talkinggame.com'), - 'talkingnews.net' => array('talkingnews.net', 'www.talkingnews.net'), - 'tddmp.com' => array('tddmp.com', 'www.tddmp.com'), - 'tendcloud.cn' => array('tendcloud.cn', 'www.tendcloud.cn'), - 'tendcloud.com' => array('tendcloud.com', 'www.tendcloud.com'), - 'tenddata.cn' => array('tenddata.cn', 'www.tenddata.cn'), - 'tenddata.com' => array('tenddata.com', 'www.tenddata.com'), - 'tenddata.com.cn' => array('tenddata.com.cn', 'www.tenddata.com.cn'), - 'tenddata.net' => array('tenddata.net', 'www.tenddata.net'), - 'tengyuncloud.cn' => array('tengyuncloud.cn', 'www.tengyuncloud.cn'), - 'tendata.cn' => array('tendata.cn', 'www.tendata.cn'), - 'tendata.net' => array('tendata.net', 'www.tendata.net'), - 'tendata.com' => array('tendata.com', 'www.tendata.com'), - 'talkingdata.net' => array('talkingdata.net', 'www.talkingdata.net'), - 'appcpa.co' => array('appcpa.co', 'www.appcpa.co'), - - 'udrig.com' => array('udrig.com', 'www.udrig.com'), - 'xdrig.com' => array('xdrig.com', 'www.xdrig.com'), - 'xuefenxi.com' => array('xuefenxi.com', 'www.xuefenxi.com'), - 'datayi.cn' => array('datayi.cn', 'www.datayi.cn'), - 'gio.ren' => array('gio.ren', 'www.gio.ren'), - 'giocdn.com' => array('giocdn.com', 'www.giocdn.com'), - 'growin.cn' => array('growin.cn', 'www.growin.cn'), - 'growingio.cn' => array('growingio.cn', 'www.growingio.cn'), - 'growingio.com' => array('growingio.com', 'www.growingio.com'), - 'gz51la.com' => array('gz51la.com', 'www.gz51la.com'), - 'appgo.cn' => array('appgo.cn', 'www.appgo.cn'), - 'sharesdk.cn' => array('sharesdk.cn', 'www.sharesdk.cn'), - '42r.cn' => array('42r.cn', 'www.42r.cn'), - '47r.cn' => array('47r.cn', 'www.47r.cn'), - '5566ua.com' => array('5566ua.com', 'www.5566ua.com'), - 'a0x.cn' => array('a0x.cn', 'www.a0x.cn'), - 'aurorapush.cn' => array('aurorapush.cn', 'www.aurorapush.cn'), - 'aurorapush.com' => array('aurorapush.com', 'www.aurorapush.com'), - 'ausaas.cn' => array('ausaas.cn', 'www.ausaas.cn'), - 'e0n.cn' => array('e0n.cn', 'www.e0n.cn'), - 'japps.cn' => array('japps.cn', 'www.japps.cn'), - 'jglinks.cn' => array('jglinks.cn', 'www.jglinks.cn'), - 'jgmlink.cn' => array('jgmlink.cn', 'www.jgmlink.cn'), - 'jgshare.cn' => array('jgshare.cn', 'www.jgshare.cn'), - 'jmlinks.cn' => array('jmlinks.cn', 'www.jmlinks.cn'), - 'jmlk.co' => array('jmlk.co', 'www.jmlk.co'), - 'jpushoa.com' => array('jpushoa.com', 'www.jpushoa.com'), - 'jsurvey.cn' => array('jsurvey.cn', 'www.jsurvey.cn'), - 'jvoice.cn' => array('jvoice.cn', 'www.jvoice.cn'), - 'kc9.cn' => array('kc9.cn', 'www.kc9.cn'), - 'linkjg.cn' => array('linkjg.cn', 'www.linkjg.cn'), - 'linksjg.cn' => array('linksjg.cn', 'www.linksjg.cn'), - 'mlinkj.cn' => array('mlinkj.cn', 'www.mlinkj.cn'), - 'mlinkjg.cn' => array('mlinkjg.cn', 'www.mlinkjg.cn'), - 'n0q.cn' => array('n0q.cn', 'www.n0q.cn'), - 'pushcfg.com' => array('pushcfg.com', 'www.pushcfg.com'), - 's0n.cn' => array('s0n.cn', 'www.s0n.cn'), - 'thering.cn' => array('thering.cn', 'www.thering.cn'), - 'xuanhk.com' => array('xuanhk.com', 'www.xuanhk.com'), - '12322app.com' => array('12322app.com', 'www.12322app.com'), - 'abeacon.cn' => array('abeacon.cn', 'www.abeacon.cn'), - 'abeacon.com' => array('abeacon.com', 'www.abeacon.com'), - 'acloud.com' => array('acloud.com', 'www.acloud.com'), - 'applk.cn' => array('applk.cn', 'www.applk.cn'), - 'baywest.ac' => array('baywest.ac', 'www.baywest.ac'), - 'cooltui.com' => array('cooltui.com', 'www.cooltui.com'), - 'fangyi.cn' => array('fangyi.cn', 'www.fangyi.cn'), - 'ge.cn' => array('ge.cn', 'www.ge.cn'), - 'geatmap.com' => array('geatmap.com', 'www.geatmap.com'), - 'geindex.com' => array('geindex.com', 'www.geindex.com'), - 'gl.ink' => array('gl.ink', 'www.gl.ink'), - 'huadan.in' => array('huadan.in', 'www.huadan.in'), - 'igehuo.com' => array('igehuo.com', 'www.igehuo.com'), - 'igetui.com' => array('igetui.com', 'www.igetui.com'), - 'pusure.com' => array('pusure.com', 'www.pusure.com'), - 'viyouhui.com' => array('viyouhui.com', 'www.viyouhui.com'), - - - //一些电视盒子相关的屏蔽列表 - 'tuiapple.com' => array('activity.tuiapple.com'), - 'tudou.com' => array('ad.api.3g.tudou.com'), - 'youku.com' => array('ad.api.3g.youku.com', 'ad.api.mobile.youku.com'), - 'sohu.com' => array('agn.aty.sohu.com'), - 'gitv.tv' => array('api.cupid.ptqy.gitv.tv'), - 'tatagou.com.cn' => array('api.tatagou.com.cn'), - 'shandjj.com' => array('app.shandjj.com'), - 'koudaitong.com' => array('tj.koudaitong.com'), - - '011211.cn' => array('011211.cn'), - '013572.cn' => array('013572.cn'), - '020wujin.cn' => array('020wujin.cn'), - '0512pifa.com.cn' => array('0512pifa.com.cn'), - '0591jiajiao.com.cn' => array('0591jiajiao.com.cn'), - '1357902.cn' => array('1357902.cn'), - '1haows.cn' => array('1haows.cn'), - '4008813318.com.cn' => array('4008813318.com.cn'), - '431.red' => array('431.red'), - '43gw.cn' => array('43gw.cn'), - '467.red' => array('467.red'), - '51juejinjie.com.cn' => array('51juejinjie.com.cn'), - '555vps.cn' => array('555vps.cn'), - '58xiao.cn' => array('58xiao.cn'), - '77av.cn' => array('77av.cn'), - '77tianxu.cn' => array('77tianxu.cn'), - '77vip.wang' => array('77vip.wang'), - '7ssw.cn' => array('7ssw.cn'), - '7x-star.info' => array('7x-star.info'), - '8020home.com.cn' => array('8020home.com.cn'), - '805.red' => array('805.red'), - '815ss.cn' => array('815ss.cn'), - '8pay.wang' => array('8pay.wang'), - '964ka.cn' => array('964ka.cn'), - '98hx.cn' => array('98hx.cn'), - 'aaayc.cn' => array('aaayc.cn'), - 'abtao.wang' => array('abtao.wang'), - 'ahksqc.com.cn' => array('ahksqc.com.cn'), - 'ahxhny.cn' => array('ahxhny.cn'), - 'aibantian.cn' => array('aibantian.cn'), - 'aiia.xin' => array('aiia.xin'), - 'aiks.wang' => array('aiks.wang'), - 'aipu.mobi' => array('aipu.mobi'), - 'aivento.cn' => array('aivento.cn'), - 'aiwenyisheng.mobi' => array('aiwenyisheng.mobi'), - 'aixintou.com.cn' => array('aixintou.com.cn'), - 'amao.mobi' => array('amao.mobi'), - 'aup.mobi' => array('aup.mobi'), - 'baichuanbi.wang' => array('baichuanbi.wang'), - 'barrister.org.cn' => array('barrister.org.cn'), - 'baseniao.com.cn' => array('baseniao.com.cn'), - 'baxt.mobi' => array('baxt.mobi'), - 'beiyu.xin' => array('beiyu.xin'), - 'benniuluntai.cn' => array('benniuluntai.cn'), - 'bjhjw.com.cn' => array('bjhjw.com.cn'), - 'blood23.cn' => array('blood23.cn'), - 'bsmakeup.com.cn' => array('bsmakeup.com.cn'), - 'bzcjy.cn' => array('bzcjy.cn'), - 'calarm.info' => array('calarm.info'), - 'callmewx.cn' => array('callmewx.cn'), - 'cangshu.info' => array('cangshu.info'), - 'canwi.mobi' => array('canwi.mobi'), - 'cdshusen.cn' => array('cdshusen.cn'), - 'cdxjt.mobi' => array('cdxjt.mobi'), - 'chaoxianleather.ltd' => array('chaoxianleather.ltd'), - 'chengjie168.com.cn' => array('chengjie168.com.cn'), - 'chenyayun.com.cn' => array('chenyayun.com.cn'), - 'china-oxygen.cn' => array('china-oxygen.cn'), - 'china99315.cn' => array('china99315.cn'), - 'chinae.mobi' => array('chinae.mobi'), - 'chinapsj.com.cn' => array('chinapsj.com.cn'), - 'chinapulverizer.com.cn' => array('chinapulverizer.com.cn'), - 'chinaqirun.cn' => array('chinaqirun.cn'), - 'chinaso.red' => array('chinaso.red'), - 'chinaxiedu.cn' => array('chinaxiedu.cn'), - 'chuanmen.mobi' => array('chuanmen.mobi'), - 'codetips.wang' => array('codetips.wang'), - 'cqmjjx.cn' => array('cqmjjx.cn'), - 'crystalmart.cn' => array('crystalmart.cn'), - 'cs-bailing.com.cn' => array('cs-bailing.com.cn'), - 'cstmedia.com.cn' => array('cstmedia.com.cn'), - 'curtainsky.wang' => array('curtainsky.wang'), - 'cxlm.net.cn' => array('cxlm.net.cn'), - 'cyp889.cn' => array('cyp889.cn'), - 'cz4444.cn' => array('cz4444.cn'), - 'dashantechan.cn' => array('dashantechan.cn'), - 'dat.red' => array('dat.red'), - 'dhouse.mobi' => array('dhouse.mobi'), - 'diaoguoshi.mobi' => array('diaoguoshi.mobi'), - 'dinuojixie.com.cn' => array('dinuojixie.com.cn'), - 'dnjj.mobi' => array('dnjj.mobi'), - 'dspack.com.cn' => array('dspack.com.cn'), - 'dzhss.cn' => array('dzhss.cn'), - 'edmontonlife.info' => array('edmontonlife.info'), - 'eduace.com.cn' => array('eduace.com.cn'), - 'eyewand.cn' => array('eyewand.cn'), - 'fadian.xin' => array('fadian.xin'), - 'fanjis.cn' => array('fanjis.cn'), - 'fashion-hat.cn' => array('fashion-hat.cn'), - 'fdkjt.cn' => array('fdkjt.cn'), - 'feiyun.info' => array('feiyun.info'), - 'fhfg.net.cn' => array('fhfg.net.cn'), - 'fjs043.cn' => array('fjs043.cn'), - 'fjs056.cn' => array('fjs056.cn'), - 'forgot.mobi' => array('forgot.mobi'), - 'freestudio.info' => array('freestudio.info'), - 'fy6x8o.cn' => array('fy6x8o.cn'), - 'fzojq.info' => array('fzojq.info'), - 'getmos.cn' => array('getmos.cn'), - 'gjh111.cn' => array('gjh111.cn'), - 'glnvdc.cn' => array('glnvdc.cn'), - 'gpscard.cn' => array('gpscard.cn'), - 'greenprints.org.cn' => array('greenprints.org.cn'), - 'gsgqwl.wang' => array('gsgqwl.wang'), - 'gtlp.net.cn' => array('gtlp.net.cn'), - 'gzjtfzs.cn' => array('gzjtfzs.cn'), - 'gzmcjt.cn' => array('gzmcjt.cn'), - 'gzqczl.cn' => array('gzqczl.cn'), - 'gzsadlmy.cn' => array('gzsadlmy.cn'), - 'hanhooo.cn' => array('hanhooo.cn'), - 'haoduoyi1688.cn' => array('haoduoyi1688.cn'), - 'haoeat.info' => array('haoeat.info'), - 'haoyangmao.ltd' => array('haoyangmao.ltd'), - 'haoyoushuo.cn' => array('haoyoushuo.cn'), - 'hbyinzhibao.cn' => array('hbyinzhibao.cn'), - 'hccwwz.cn' => array('hccwwz.cn'), - 'heimi.red' => array('heimi.red'), - 'helove.xyz' => array('helove.xyz'), - 'hihufu.cn' => array('hihufu.cn'), - 'hktedu.site' => array('hktedu.site'), - 'hnwlyy.com.cn' => array('hnwlyy.com.cn'), - 'hongze.info' => array('hongze.info'), - 'hot-stories.cn' => array('hot-stories.cn'), - 'hskj88.cn' => array('hskj88.cn'), - 'htnote.info' => array('htnote.info'), - 'huanbao110.com.cn' => array('huanbao110.com.cn'), - 'huanbaoxiangmu.xyz' => array('huanbaoxiangmu.xyz'), - 'huangdao.info' => array('huangdao.info'), - 'huaqikonggu.com.cn' => array('huaqikonggu.com.cn'), - 'huaqiss.cn' => array('huaqiss.cn'), - 'huayiav.cn' => array('huayiav.cn'), - 'huha.ink' => array('huha.ink'), - 'huilian.info' => array('huilian.info'), - 'hundun.mobi' => array('hundun.mobi'), - 'hupuzhibo.cn' => array('hupuzhibo.cn'), - 'hygqtz.cn' => array('hygqtz.cn'), - 'hzdhr.cn' => array('hzdhr.cn'), - 'ib00.cn' => array('ib00.cn'), - 'imzhide.net.cn' => array('imzhide.net.cn'), - 'iqyewu.cn' => array('iqyewu.cn'), - 'iyumiao.com.cn' => array('iyumiao.com.cn'), - 'japheth.com.cn' => array('japheth.com.cn'), - 'jbcbio.cn' => array('jbcbio.cn'), - 'jhbsq.cn' => array('jhbsq.cn'), - 'jiaxinkang.cn' => array('jiaxinkang.cn'), - 'jingyixueyuan.cn' => array('jingyixueyuan.cn'), - 'jinlanqiangyi.cn' => array('jinlanqiangyi.cn'), - 'jiuaixianzhi.mobi' => array('jiuaixianzhi.mobi'), - 'jmait.cn' => array('jmait.cn'), - 'jmogo.cn' => array('jmogo.cn'), - 'jnykjgs.cn' => array('jnykjgs.cn'), - 'jpuv.cn' => array('jpuv.cn'), - 'jqki.cn' => array('jqki.cn'), - 'jsjs.pro' => array('jsjs.pro'), - 'judantech.site' => array('judantech.site'), - 'jxqfu.cn' => array('jxqfu.cn'), - 'jxss88.mobi' => array('jxss88.mobi'), - 'jyzmsy.com.cn' => array('jyzmsy.com.cn'), - 'kcvc.com.cn' => array('kcvc.com.cn'), - 'kedeng.xin' => array('kedeng.xin'), - 'king-oak.cn' => array('king-oak.cn'), - 'kocom.mobi' => array('kocom.mobi'), - 'kuaica.info' => array('kuaica.info'), - 'kuaidifeng.cn' => array('kuaidifeng.cn'), - 'l520.ltd' => array('l520.ltd'), - 'lafontainedessenterue.cn' => array('lafontainedessenterue.cn'), - 'lcr.kim' => array('lcr.kim'), - 'lcyt.info' => array('lcyt.info'), - 'ledian.pro' => array('ledian.pro'), - 'lightblue.red' => array('lightblue.red'), - 'lilangdianqi.cn' => array('lilangdianqi.cn'), - 'limkokwing-edu.cn' => array('limkokwing-edu.cn'), - 'lindawei.cn' => array('lindawei.cn'), - 'littlebee.site' => array('littlebee.site'), - 'liuguoyu.wang' => array('liuguoyu.wang'), - 'lixincxy.cn' => array('lixincxy.cn'), - 'llanotextiles.cn' => array('llanotextiles.cn'), - 'lningcity.com.cn' => array('lningcity.com.cn'), - 'lnjseq.info' => array('lnjseq.info'), - 'lnsbhzy.cn' => array('lnsbhzy.cn'), - 'lovecar.net.cn' => array('lovecar.net.cn'), - 'lulumao.com.cn' => array('lulumao.com.cn'), - 'lumeo.cn' => array('lumeo.cn'), - 'luomanzhubao.cn' => array('luomanzhubao.cn'), - 'lvxingxian.cn' => array('lvxingxian.cn'), - 'lwfw88.cn' => array('lwfw88.cn'), - 'lygnasa.cn' => array('lygnasa.cn'), - 'lytrjx.cn' => array('lytrjx.cn'), - 'lyzon.com.cn' => array('lyzon.com.cn'), - 'meigeer.com.cn' => array('meigeer.com.cn'), - 'menghuanzhilv.cn' => array('menghuanzhilv.cn'), - 'mifun.mobi' => array('mifun.mobi'), - 'murroliving.com.cn' => array('murroliving.com.cn'), - 'myzhuanghe.cn' => array('myzhuanghe.cn'), - 'nankuan.xin' => array('nankuan.xin'), - 'newweb.top' => array('newweb.top'), - 'newwiesdom.com.cn' => array('newwiesdom.com.cn'), - 'newzheng.cn' => array('newzheng.cn'), - 'ngtraveler.com.cn' => array('ngtraveler.com.cn'), - 'opai.red' => array('opai.red'), - 'opto-22.com.cn' => array('opto-22.com.cn'), - 'oxi23.cn' => array('oxi23.cn'), - 'pdiinfo.com.cn' => array('pdiinfo.com.cn'), - 'pdsxp.cn' => array('pdsxp.cn'), - 'penglei.info' => array('penglei.info'), - 'phjml.cn' => array('phjml.cn'), - 'pilipala.info' => array('pilipala.info'), - 'pszs388.cn' => array('pszs388.cn'), - 'qhsyg.top' => array('qhsyg.top'), - 'qianwei.wang' => array('qianwei.wang'), - 'qianyilamian.cn' => array('qianyilamian.cn'), - 'qichacha.ink' => array('qichacha.ink'), - 'qincai.info' => array('qincai.info'), - 'qishituan.top' => array('qishituan.top'), - 'qiyeit.com.cn' => array('qiyeit.com.cn'), - 'qkxlyg.cn' => array('qkxlyg.cn'), - 'qmin.xin' => array('qmin.xin'), - 'qnvljz.info' => array('qnvljz.info'), - 'qqwlfm.cn' => array('qqwlfm.cn'), - 'qrtjwa.cn' => array('qrtjwa.cn'), - 'samevay.com.cn' => array('samevay.com.cn'), - 'sapwells.info' => array('sapwells.info'), - 'scdcd333.cn' => array('scdcd333.cn'), - 'scfans.cn' => array('scfans.cn'), - 'scfw.wang' => array('scfw.wang'), - 'scifc.mobi' => array('scifc.mobi'), - 'sdlzmm.cn' => array('sdlzmm.cn'), - 'sdyongyan.com.cn' => array('sdyongyan.com.cn'), - 'shanyi.info' => array('shanyi.info'), - 'shinedaily.cn' => array('shinedaily.cn'), - 'shkunjia.com.cn' => array('shkunjia.com.cn'), - 'shoujiawang.cn' => array('shoujiawang.cn'), - 'shouyili.mobi' => array('shouyili.mobi'), - 'sjdjcn.cn' => array('sjdjcn.cn'), - 'smart-way2.com.cn' => array('smart-way2.com.cn'), - 'smmx3.cn' => array('smmx3.cn'), - 'sobin.wang' => array('sobin.wang'), - 'spreadable.com.cn' => array('spreadable.com.cn'), - 'sscjchina.com.cn' => array('sscjchina.com.cn'), - 'steeltrader.com.cn' => array('steeltrader.com.cn'), - 'sunderport.com.cn' => array('sunderport.com.cn'), - 'suntechauto.com.cn' => array('suntechauto.com.cn'), - 'sxjcjdc.cn' => array('sxjcjdc.cn'), - 'sxltfj.cn' => array('sxltfj.cn'), - 'szmpc.cn' => array('szmpc.cn'), - 'taihe2002.cn' => array('taihe2002.cn'), - 'tanzhen.info' => array('tanzhen.info'), - 'taogou.site' => array('taogou.site'), - 'tastevision.cn' => array('tastevision.cn'), - 'techkey.com.cn' => array('techkey.com.cn'), - 'tianhuicun.com.cn' => array('tianhuicun.com.cn'), - 'titan-solar.cn' => array('titan-solar.cn'), - 'tkmly.cn' => array('tkmly.cn'), - 'todayjiaxiang.cn' => array('todayjiaxiang.cn'), - 'tradesoul.cn' => array('tradesoul.cn'), - 'tuoens.cn' => array('tuoens.cn'), - 'txtxz.org.cn' => array('txtxz.org.cn'), - 'udr26c.cn' => array('udr26c.cn'), - 'uk8866.cn' => array('uk8866.cn'), - 'vaniok.cn' => array('vaniok.cn'), - 'vpkq.cn' => array('vpkq.cn'), - 'wangjinhu.wang' => array('wangjinhu.wang'), - 'wangzhichao.info' => array('wangzhichao.info'), - 'weilang.site' => array('weilang.site'), - 'wimaxnetworks.cn' => array('wimaxnetworks.cn'), - 'wojiacanting.info' => array('wojiacanting.info'), - 'wpe.red' => array('wpe.red'), - 'wtorain.red' => array('wtorain.red'), - 'wucheng.info' => array('wucheng.info'), - 'wzfjsh.cn' => array('wzfjsh.cn'), - 'wzhagc.cn' => array('wzhagc.cn'), - 'x1ka.cn' => array('x1ka.cn'), - 'xcvf.info' => array('xcvf.info'), - 'xiaocai-rookie.info' => array('xiaocai-rookie.info'), - 'xiaomeihq.info' => array('xiaomeihq.info'), - 'xinshengchuanmei.cn' => array('xinshengchuanmei.cn'), - 'xinyikeji.red' => array('xinyikeji.red'), - 'xmglass.cn' => array('xmglass.cn'), - 'xuexingkeji.cn' => array('xuexingkeji.cn'), - 'xxdlg.cn' => array('xxdlg.cn'), - 'xz518.cn' => array('xz518.cn'), - 'xztyzs.cn' => array('xztyzs.cn'), - 'yanhao.red' => array('yanhao.red'), - 'yaxujiancai.cn' => array('yaxujiancai.cn'), - 'ych168.cn' => array('ych168.cn'), - 'ycreateam.cn' => array('ycreateam.cn'), - 'ycx.kim' => array('ycx.kim'), - 'yglhcn.cn' => array('yglhcn.cn'), - 'ygpd.wang' => array('ygpd.wang'), - 'yimingxiang.com.cn' => array('yimingxiang.com.cn'), - 'yiqifaxian.wang' => array('yiqifaxian.wang'), - 'yiqiu.mobi' => array('yiqiu.mobi'), - 'yisheng120.info' => array('yisheng120.info'), - 'yizhongyi.info' => array('yizhongyi.info'), - 'ynyfcz.cn' => array('ynyfcz.cn'), - 'yppw666.cn' => array('yppw666.cn'), - 'yucefa.cn' => array('yucefa.cn'), - 'yw78.cn' => array('yw78.cn'), - 'yybeast.mobi' => array('yybeast.mobi'), - 'zghs.net.cn' => array('zghs.net.cn'), - 'zgjckgys.com.cn' => array('zgjckgys.com.cn'), - 'zhaowaibao.mobi' => array('zhaowaibao.mobi'), - 'zhougong.info' => array('zhougong.info'), - 'zhuren.site' => array('zhuren.site'), - 'zioe.com.cn' => array('zioe.com.cn'), - 'ziyouxiaoyuan.cn' => array('ziyouxiaoyuan.cn'), - 'zq-hk.cn' => array('zq-hk.cn'), - 'zsdzcpw.mobi' => array('zsdzcpw.mobi'), - 'zswhcsfww.mobi' => array('zswhcsfww.mobi'), - 'zszgjiejuw.mobi' => array('zszgjiejuw.mobi'), - 'zzasj.cn' => array('zzasj.cn'), - 'zzhssy.cn' => array('zzhssy.cn'), - '158aq.com' => array('158aq.com'), - '166br.com' => array('166br.com'), - '2yt.cn' => array('2yt.cn'), - '322927.com' => array('322927.com'), - '559gp.com' => array('559gp.com'), - 'adszui.com' => array('adszui.com'), - 'baimuyuan.com.cn' => array('baimuyuan.com.cn'), - 'bibi100.com' => array('bibi100.com'), - 'bjsncykyjctsbjxzx.cn' => array('bjsncykyjctsbjxzx.cn'), - 'bontech-zh.com' => array('bontech-zh.com'), - 'bxg68.com' => array('bxg68.com'), - 'd9ad.com' => array('d9ad.com'), - 'dapaogg.xyz' => array('dapaogg.xyz'), - 'dreamine.com' => array('dreamine.com'), - 'duoduo.net' => array('duoduo.net'), - 'eeeqi.cn' => array('eeeqi.cn'), - 'fxsqsng.com' => array('fxsqsng.com'), - 'lee789.com' => array('lee789.com'), - 'loupan99.com' => array('loupan99.com'), - 'lrswl.com' => array('lrswl.com'), - 'myhard.com' => array('myhard.com'), - 'pagechoice.com' => array('pagechoice.com'), - 'pee.cn' => array('pee.cn'), - 'tenoad.com' => array('tenoad.com'), - 'itruni.com' => array('itruni.com'), - 'ucoz.com' => array('ucoz.com'), - 'union001.com' => array('union001.com'), - 'xiankandy.com' => array('xiankandy.com'), - 'xifatime.com' => array('xifatime.com'), - 'yjkyj.cn' => array('yjkyj.cn'), - 'zamar.cn' => array('zamar.cn'), - - 'actonservice.com' => array( #精简域名 - 'actonservice.com', - ), - 'daraz.com' => array( # 精简域名,太长了,似乎是个电商平台 - 'daraz.com', - ), - 'llnw.net' => array( # 精简域名,这是个cdn服务商,可能误杀 - 'llnw.net', - ), - 'windows.com' => array( #精简域名,这个是windows推送服务? - 'wns.windows.com', - ), - 'uc.cn' => array( // dns日志提取 - 'coral-task.uc.cn', - 'applogios.uc.cn', // uc log - ), - 'sm.cn' => array( // dns日志提取 - 'huichuan-mc.sm.cn', - 'huichuan.sm.cn', - ), - 'alibaba.com' => array( // dns日志提取 - 'fourier.alibaba.com', - ), - 'jj.cn' => array( // dns日志提取 - 'stat.m.jj.cn', - ), - -); +return array(); \ No newline at end of file diff --git a/scripts/lib/white_domain_list.enc.php b/scripts/lib/white_domain_list.enc.php new file mode 100644 index 0000000000000000000000000000000000000000..de9a305a38643bc7b959cb4f7366a12e2c88bf34 GIT binary patch literal 12448 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

IcboQhz>IhwZOMblHmBy4W@RriVUhea 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 0, - 'bce.baidu.com' => 0, - 'b.bdstatic.com' => 0, - 'gss0.bdstatic.com' => 0, //百度贴吧头像 - 'googleadapis.l.google.com' => 0, //解决google字体下载异常 - 'gstaticadssl.l.google.com' => 0, //解决google字体下载异常 - 'gvt2.com' => 1, //gvt2,安卓系统相关 - 'wangbase.com' => 1, //阮一峰同志的博客图片显示 - 'l.qq.com' => 0, //解决腾讯视频无法播放 - 'dldir1.qq.com' => 0, //qq下载安装包路径 - 'cgi.connect.qq.com' => 0, //qq互联 - 'stdl.qq.com' => 0, //qq浏览器 - 'wup.imtt.qq.com' => 0, //qq浏览器书签 - 'pacaio.match.qq.com' => 0, //腾讯网qq登录 - 'gia.jd.com' => 0, //京东滑动验证码 - 'edge.yunjiasu.com' => 0, //百度云加速javascript快速加载功能 - 'cd.bendibao.com' => 0, //成都本地宝 - 'm.qpic.cn' => 0, // qq,微信,QQ空间等用到的静态资源域名 - 'ipify.org' => 1, // 获得公网 IP - 'pass.1688.com' => 0, // 阿里巴巴网站访问不正常 - 'cedexis.net' => 0, // windowsupdate CNAME - 'y0.cn' => 0, // 短网址服务,涉及本次丁香医生实时疫情页面 http://y0.cn/sari - 'click.taobao.com' => 0, //淘宝粉丝福利购 - 't1.baidu.com' => 0, //百度图片自有平台 - 't2.baidu.com' => 0, //百度图片自有平台 - 't3.baidu.com' => 0, //百度图片自有平台 - 't4.baidu.com' => 0, //百度图片自有平台 - 't5.baidu.com' => 0, //百度图片自有平台 - 't6.baidu.com' => 0, //百度图片自有平台 - 't7.baidu.com' => 0, //百度图片自有平台 - 't8.baidu.com' => 0, //百度图片自有平台 - 't9.baidu.com' => 0, //百度图片自有平台 - 't10.baidu.com' => 0, //百度图片自有平台 - 't11.baidu.com' => 0, //百度图片自有平台 - 't12.baidu.com' => 0, //百度图片自有平台 - 'bytedance.com' => 0, //字节跳动 - 'tbskip.taobao.com' => 1, //淘宝订单搜索相关 - 'wl.jd.com' => 0, //修复京东pc首页加载异常 - 'tanx.com' => 0, //饿了么店铺异常 - 'promotion.aliyun.com' => 0, //阿里云控制台 - 'rarbg.to' => 0, //BT站 - 'rarbgprx.org' => 0, //BT站 - 'rarbgmirror.org' => 0, //BT站 - 'rarbgmirror.com' => 0, //BT站 - 'rarbgmirrored.org' => 0, //BT站 - 'rarbgaccess.org' => 0, //BT站 - 'rarbgp2p.org' => 0, //BT站 - 'rarbgproxied.org' => 0, //BT站 - 'rarbgproxy.org' => 0, //BT站 - 'rarbgto.org' => 0, //BT站 - 'rarbgway.org' => 0, //BT站 - 'rarbg2019.org' => 0, //BT站 - 'rarbg2020.org' => 0, //BT站 - 'rarbg2021.org' => 0, //BT站 - 'gsp0.baidu.com' => 0, //百度贴吧相关 - 'gsp1.baidu.com' => 0, //百度贴吧相关 - 'gsp2.baidu.com' => 0, //百度贴吧相关 - 'gsp3.baidu.com' => 0, //百度贴吧相关 - 'sp0.baidu.com' => 0, //百度翻译资源 - 'sp1.baidu.com' => 0, //百度翻译资源 - 'sp2.baidu.com' => 0, //百度翻译资源 - 'c0.ifengimg.com' => 0, //凤凰网视频异常 - '7moor.com' => 0, //山姆会员客服异常 - 'v.smtcdns.net' => 0, //影响部分B站直播 - 'gameone.com' => 0, //影响部分B站直播 - 'ultraiso.net' => 1, //软碟通官网 - 'mmstat.com' => 0, //修复优酷视频显示禁用了cookie - 'log.mmstat.com' => 0, //修复优酷视频显示禁用了cookie - 'adm.10jqka.com.cn' => 0, //修复同花顺的tips异常 - 'cps.kaola.com' => 0, //考拉的cps,放行 - 'iteye.com' => 0, //某编程网站 - 'dl.360safe.com' => 0, //360驱动下载 - 'resolver.msg.xiaomi.net' => 0, //小爱音箱语音识别 - 'api.sec.miui.com' => 0, //miui自带骚扰拦截相关 - 'iface2.iqiyi.com' => 0, //爱奇艺 相关视频推荐 - 'apm3.music.163.com' => 0, //网易云音乐 - 'mbd.baidu.com' => 0, //百度百家号 - 'suo.im' => 0, //短网址服务 - 'hinet.net' => 0, - 'hubpd.com' => 0, //党媒平台网址 - 'i.niupic.com' => 0, //免费图床地址 - 'api-game.meizu.com' => 0, //魅族商店更新游戏 - 'image.uczzd.cn' => 0, //uc头条的图片 #67 - 'dg.k.jd.com' => 0, //京东不能跳转app - 'orbit.jd.com' => 0, //京东不能跳转app - 'kepler.jd.com' => 0, //京东不能跳转app - 'widget.weibo.com' => 0, //微博误杀 - 'sailthru.com' => 0, //误杀epicgame.com,因CNAME #73 - 't1.58cdn.com.cn' => 0, // 58同城cdn #75 - 't2.58cdn.com.cn' => 0, // 58同城cdn #75 - 't3.58cdn.com.cn' => 0, // 58同城cdn #75 - 'ddns.net' => 0, // #76 - 'pushbullet.com' => 0, // #77 - 'now.sh' => 0, // #78 - 'zimuku.la' => 0, // #84 - 'qihucdn.com' => 0, // #89 - 'sqimg.qq.com' => 0, // #90 - 'haohuo.snssdk.com' => 0, // 抖音订单列表 - 'acs.m.taobao.com' => 0, // #92 - 'perfops.net' => 0, // #96 - 'msg.video.qiyi.com' => 0, // #93 - 'img.zuoyebang.cc' => 0, // 作业帮拍照搜题 - 'data.video.iqiyi.com' => 0, // 爱奇艺电视投屏 - 'cp81.ott.cibntv.net' => 0, // CIBN云视听异常 #107 - 'sj.uukanshu.com' => 0, // 误杀 #110 - 'e.shifen.com' => 0, // 百度的某个cname域名,误杀严重 - 'gvt1.com' => 0, // google play #117 - 'apiwz.midukanshu.com' => 0, // #120 - 'api.jr.mi.com' => 0, // #121 - 'graph.facebook.com' => 0, - 'image.box.xiaomi.com' => 0, // #124 - 'niuza.com' => 1, // #124 - 'sourl.cn' => 0, // #123 - 'pp.ua' => 0, // #131 - 'search.video.iqiyi.com' => 0, // #132 - 'wanproxy.127.net' => 0, // #137 - 'shouji.360.cn' => 0, // #136 - 'ae01.alicdn.com' => 0, // #142 - // 'pingjs.qq.com' => 0, // #143 - 'shifen.com' => 0, // 百度的cname - 'f10.baidu.com' => 0, // 百度公众号图片 - 'f11.baidu.com' => 0, // 百度公众号图片 - 'f12.baidu.com' => 0, // 百度公众号图片 - 'bj.bcebos.com' => 0, // 百度云产品 - 'kingsoft.com' => 0, // 金山软件 - 'top.baidu.com' => 0, // 百度风云榜 - 'aiseet.atianqi.com' => 0, // #147 - 'data.bilibili.com' => 0, // #148 - 'get3.adobe.com' => 0, // #152 - 'ex.qq.com' => 0, // #153 - '1sapp.com' => 0, // #156 - 'dyn.ithome.com' => 0, // #157 - 'sf6-ttcdn-tos.pstatp.com' => 0, // #159 - 'api.tv.sohu.com' => 0, // 搜狐视频win app版不能使用 - 'ip2location.com' => 0, // #163 - 'livere.com' => 0, // #170 - 'ucan.25pp.com' => 0, // #171 - 'privateinternetaccess.com' => 0, // #174 - 'shopify.com' => 0, // #179 - 'co.in' => 0, //https://github.com/nextdns/metadata/issues/364 - '91mobiles.com' => 0, // #215 - 'm.1234567.com.cn' => 0, // #213 - 'woniu.com' => 0, // #227 - 'du.163.com' => 0, // #229 - 'zaloapp.com' => 0, // #230 - 'manhuachi.com' => 0, // #238 - 'push2.eastmoney.com' => 0, // #239 - 'slashdot.org' => 0, // #242 - 'iwx.mail.qq.com' => 0, // #243 - 'ename.net' => 0, // #246 - 'api.iplay.163.com' => 0, // #247 - 'minorshort.weixin.qq.com' => 0, // 微信滑动验证码 - 'pusher.com' => 0, // #248 - 'bluehost.com' => 0, // #249 - 'hosting24.com' => 0, // #252 - 'pdc.micloud.xiaomi.net' => 0, // #256 - 'valf.atm.cp31.ott.cibntv.net' => 0, // #257 - 'sf1-ttcdn-tos.pstatp.com' => 0, // #258 - 'sf3-ttcdn-tos.pstatp.com' => 0, // #258 - 'upload.cc' => 0, // #262 - 'yql.yahoo.com' => 0, // #263 - 'naifei.shop' => 0, // #267 - 'tagtic.cn' => 0, // #266 - 'settings-win.data.microsoft.com' => 0, // #268 - 'db5-eap.settings-win.data.microsoft.com.akadns.net' => 0, // #268 - 'db5.settings-win.data.microsoft.com.akadns.net' => 0, // #268 - 'geo.settings-win.data.microsoft.com.akadns.net' => 0, // #268 - 'printfriendly.com' => 0, // #272 - 'cnnic.cn' => 0, #274 - 'ss.cnnic.cn' => 0, #274 - 'www.cnnic.cn' => 0, #274 - 'cnnic.net' => 0, #274 - 'www.cnnic.net' => 0, #274 - 'cnnic.net.cn' => 0, #274 - 'www.cnnic.net.cn' => 0, #274 - 'c.gj.qq.com' => 0, #273 - 'isee.weishi.qq.com' => 0, #270 - 'direct.wap.zol.com.cn' => 0, #275 - 'imop.com' => 0, #283 - 'mobilelog.kugou.com' => 0, #286 - 'bssdlbig.kugou.com' => 0, #286 - 'tvzhe.com' => 0, #290 - 'stats.gc.apple.com' => 0, #296 - 'img1.sj.qq.com' => 0, #294 - 'live.simcitybuildit.com' => 0, #303 - 'subscription.iqiyi.com' => 0, #306 - 'azureedge.net' => 0, #309 - 'surge.sh' => 0, // qq group, @frank - 'ccclub.cmbchina.com' => 0, // #313 - 'adv.ccb.com' => 0, // #316 - 'conac.cn' => 0, // #317 - 'mix.sina.com.cn' => 0, // #320 - 'jwpcdn.com' => 0, // #322 - 'retcode.taobao.com' => 0, // #312 - '3975.com' => 0, // #326 - 'air.1688.com' => 0, // #331 - 'continuum.dds.microsoft.com' => 0, // #335 - 'sec.resource.xiaomi.net' => 0, // #328 - 'api.cortana.ai' => 0, // #338 - 'mazu.3g.qq.com' => 0, // #340 - 'umiwi.com' => 0, // #341 - 'xmpush.xiaomi.com' => 0, // #343 - 'doublecklick.net' => 1, // 拼写错误的域名,https://github.com/privacy-protection-tools/anti-AD/pull/347/files - 'issuecdn.baidupcs.com' => 0, // #350 - 'duiba.com.cn' => 0, // #352 - 'trib.al' => 0, // #357 - 'ccmp.eu' => 0, // #365 - 'alissl.ucdl.pp.uc.cn' => 0, // #370 - 'c3pool.com' => 0, // #371 - 'wtradv.market.xiaomi.com' => 0, // #377 - 'update.avlyun.sec.miui.com' => 0, // #387 - 'sugar.zhihu.com' => 0, // #380 - 'chtbl.com' => 0, // #390 - 'huoying666.com' => 0, // #405 - 'u.huoying666.com' => 0, // #405 - 'hsforms.com' => 0, // #420 - 'hsforms.net' => 0, // #420 - 'jx.cn' => 0, // #423 - 'qualtrics.com' => 0, // #434 - 'assets.ckjr001.com' => 0, // #433 - 'kpstaticbj.wx.ckjr001.com' => 0, // #433 - - - - - - - - - - - - - - - - - - - - - 'iflow.uczzd.cn' => 0, // uc搞笑段子 - 'm.uczzd.cn' => 0, // uc搞笑段子 - 'puds.ucweb.com' => 0, // uc小游戏 - 'image.zzd.sm.cn' => 0, // uc浏览器 - 'herokuapp.com' => -1, - 'netlify.com' => -1, - 'vidoza.net' => -1, - 'nahnoji.cz' => 1, - 'cloudfront.net' => -1, - 'amazonaws.com' => -1, - 'github.io' => -1, - 'blogspot.com' => -1, - 'cdn77.org' => -1, - 'cloudflare.net' => -1, - 'appspot.com' => -1, - 'cpm.cm.kankan.com' => -1, //-1 失效本条规则,保持现状,即不加白本域名 - 'deliver.ifeng.com' => -1, //保留的dead-hosts,为了缩减其子域名 - 'ad.xiaomi.com' => -1, //保留的dead-hosts,为了缩减其子域名 - - /**notracking 提议加白的一批域名 start**/ - 'scribol.com' => 0, - 'tracking.epicgames.com' => 0, - 'logrocket.com' => 0, - 'loggly.com' => 0, - 'om.cbsi.com' => 0, - 'ipinfo.io' => 0, - 'v.shopify.com' => 0, - 'adobedtm.com' => 0, - 'c.evidon.com' => 0, - 'ereg.wip3.adobe.com' => 0, - 'csi.gstatic.com' => 0, - 'g.msn.com' => 0, - 'sascdn.com' => 0, - 'duckdns.org' => 0, - 'prf.hn' => 0, - 'placehold.it' => 0, - 'digg.com' => 0, - 'feedburner.com' => 0, - 'rambler.ru' => 1, - 'jiathis.com' => 0, - 'rs6.net' => 0, - 'com.com' => 0, - 's0.2mdn.net' => 0, - 'pr0gramm.com' => 0, - 'consent.cmp.oath.com' => 0, - 's.youtube.com' => 0, - 'purch.com' => 0, - 'fpdownload.macromedia.com' => 0, - 'dynatrace.com' => 0, - 'auditude.com' => 0, - 'app.link' => 0, - /**notracking 提议加白的一批域名 end**/ - - 'activate.adobe.com' => 0, - 'ereg.adobe.com' => 0, - 'hlrcv.stage.adobe.com' => 0, - 'lmlicenses.wip4.adobe.com' => 0, - 'na1r.services.adobe.com' => 0, - 'licenses.adobe.com' => 1, - 'alcohol-soft.com' => 1, - 'licenses.ashampoo.com' => 0, - 'bluesoleil.com' => 1, - 'activation.phaseone.com' => 0, - 'corel.com' => 1, - 'dbregistration.cuteftp.com' => 0, - 'cyberlink.com' => 1, - 'activation.easeus.com' => 0, - 'upd.faronicslabs.com' => 0, - 'lumion3d.com' => 1, - 'lumion3d.net' => 1, - 'act2.mediafour.com' => 0, - 'sams.nikonimaging.com' => 0, - 'license.piriform.com' => 0, - 'www.bitsumactivationserver.com' => 0, - 'licensing.tableausoftware.com' => 0, - 'techsmith.com' => 1, - 'binaryage.com' => 1, - 'wisecleaner.com' => 1, -); +return array(); diff --git a/scripts/tools/adguard-extend.enc.php b/scripts/tools/adguard-extend.enc.php new file mode 100644 index 0000000000000000000000000000000000000000..2f8fcd64b10a693f251543ef33783b09ade4c13f GIT binary patch literal 23232 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 null, - '*.mgr.consensu.org' => null, - 'vs*.gzcu.u3.ucweb.com' => null, - 'ad*.goforandroid.com' => null, - 'bs*.9669.cn' => null, - '*serror*.wo.com.cn' => ['m' => '$dnstype=A|CNAME'], - '*mistat*.xiaomi.com' => null, - 'affrh20*.com' => null, - 'assoc-amazon.*' => null, - 'clkservice*.youdao.com' => null, - 'dsp*.youdao.com' => null, - 'pussl*.com' => null, - 'putrr*.com' => null, - 't*.a.market.xiaomi.com' => null, - 'ad*.bigmir.net' => null, - 'log*.molitv.cn' => null, - 'adm*.autoimg.cn' => null, - 'cloudservice*.kingsoft-office-service.com' => null, - 'gg*.51cto.com' => null, - 'log.*.hunantv.com' => null, - 'iflyad.*.openstorage.cn' => null, - '*customstat*.51togic.com' => null, -// 'appcloud*.zhihu.com' => null, // #344 - 'ad*.molitv.cn' => null, - 'ads*-adnow.com' => null, - 'aeros*.tk' => null, - 'analyzer*.fc2.com' => null, - 'admicro*.vcmedia.vn' => null, - 'xn--xhq9mt12cf5v.*' => null, - 'freecontent.*' => null, - 'hostingcloud.*' => null, - 'jshosting.*' => null, - 'flightzy.*' => null, - 'sunnimiq*.cf' => null, - 'admob.*' => null, - '*log.droid4x.cn' => null, - '*tsdk.vivo.com.cn' => null, - '*.mmstat.com' => null, -// 'sf*-ttcdn-tos.pstatp.com' => null, - 'f-log*.grammarly.io' => null, - '24log.*' => null, - '24smi.*' => null, - 'ad-*.wikawika.xyz' => null, - 'ablen*.tk' => null, - 'darking*.tk' => null, - 'doubleclick*.xyz' => null, - 'thepiratebay.*' => null, - 'adserver.*' => null, - 'clientlog*.music.163.com' => null, - 'brucelead*.com' => null, - 'gostats.*' => null, - 'gralfusnzpo*.top' => null, - 'oiwjcsh*.top' => null, - '*-analytics*.huami.com' => null, - 'count*.pconline.com.cn' => null, - 'qchannel*.cn' => null, - 'sda*.xyz' => null, - 'ad-*.com' => null, - 'ad-*.net' => null, - 'webads.*' => null, - 'web-stat.*' => null, - 'waframedia*.*' => null, - 'wafmedia*.*' => null, - 'voluumtrk*.com' => null, - 'vmm-satellite*.com' => null, - 'vente-unique.*' => null, - 'vegaoo*.*' => null, - 'umtrack*.com' => null, - 'grjs0*.com' => null, - 'imglnk*.com' => null, - 'admarvel*.*' => null, - 'admaster*.*' => null, - 'adsage*.*' => null, - 'adsensor*.*' => null, - 'adservice*.*' => null, - 'adsh*.*' => null, - 'adsmogo*.*' => null, - 'adsrvmedia*.*' => null, - 'adsserving*.*' => null, - 'adsystem*.*' => null, - 'adwords*.*' => null, - 'analysis*.*' => null, - 'applovin*.*' => null, - 'appsflyer*.*' => null, - 'domob*.*' => null, - 'duomeng*.*' => null, - 'dwtrack*.*' => null, - 'guanggao*.*' => null, - 'lianmeng*.*' => null, - //'monitor*.*' => null, - 'omgmta*.*' => null, - 'omniture*.*' => null, - 'openx*.*' => null, - 'partnerad*.*' => null, - 'pingfore*.*' => null, - 'socdm*.*' => null, - 'supersonicads*.*' => null, - 'tracking*.*' => null, - 'usage*.*' => null, - 'wlmonitor*.*' => null, - 'zjtoolbar*.*' => null, - 'engage.3m*' => null, - '*.actonservice.com' => null, - '*-cor0*.api.p001.1drv.com' => null, - '*33*-*.1drv.com' => null, - '2cnjuh34j*.com' => null, - 'ssc.southpark*' => null, - 'tr.*.espmp-*fr.net' => null, - 'tdep.vacansoleil.*' => null, - 'da.hornbach.*' => null, - '*us*watcab*.blob.core.windows.net' => null, - 'xn--wxtr9fwyxk9c.*' => null, -); - -$ARR_REGEX_LIST = array( - -); - -//对通配符匹配或正则匹配增加的额外赦免规则 -$ARR_WHITE_RULE_LIST = array( - '@@||tongji.*kuwo.cn^' => 0, - '@@||tracking.epicgames.com^' => 0, - '@@||tracker.eu.org^' => 1, //强制加白,BT tracker,有形如2.tracker.eu.org的域 - '@@||stats.uptimerobot.com^' => 1, //uptimerobot监测相关 #38 - '@@||track.sendcloud.org^' => 0, //邮件退订域名 - '@@||log.mmstat.com^' => 0, //修复优酷视频显示禁用了cookie - '@@||adm.10jqka.com.cn^' => 0, //同花顺 - '@@||center-h5api.m.taobao.com^' => 1, //h5页面 - '@@||app.adjust.com^' => 1, //https://github.com/AdguardTeam/AdGuardSDNSFilter/pull/186 - '@@||widget.weibo.com^' => 0, //微博外链 - '@@||uland.taobao.com^' => 1, //淘宝coupon #83 - '@@||advertisement.taobao.com^' => 1, //CNAME 被杀,导致s.click.taobao.com等服务异常 - '@@||baozhang.baidu.com^' => 1, //CNAME e.shifen.com - '@@||tongji.edu.cn^' => 1, // 同济大学 - '@@||tongji.cn^' => 1, // 同济大学 #281 - '@@||ad.siemens.com.cn^' => 1, // 西门子下载中心 - '@@||sdkapi.sms.mob.com^' => 1, // 短信验证码 #127 - '@@||stats.gov.cn^' => 1, // 国家统计局 #144 - '@@||tj.gov.cn^' => 1, - '@@||sax.sina.com.cn^' => 1, // #155 - '@@||api.ad-gone.com^' => 1, // #207 - '@@||news-app.abumedia.yql.yahoo.com^' => 1, // #206 - '@@||meizu.coapi.moji.com^' => 1, // #217 - '@@||track.cpau.info^' => 1, // #251 - '@@||passport.bobo.com^' => 1, // #265 - '@@||stat.jseea.cn^' => 1, // #279 - '@@||widget.intercom.io^' => 1, // #280 - '@@||track.toggl.com^' => 1, // #307 - '@@||www.msftconnecttest.com^' => 1, // #327 - '@@||storage.live.com^' => 1, // #333 - '@@||skyapi.onedrive.live.com^' => 1, // #333 - '@@||counter-strike.net^' => 1, // #332 - '@@||ftp.bmp.ovh^' => 1, // #353 - '@@||profile*.se.360.cn^' => 1, // #381 - '@@||pic.iask.cn^' => 1, // #397 - '@@||ad.jp^' => 1, // #399 - '@@||ad.azure.com^' => 1, // #399 - '@@||ad.cityu.edu.hk^' => 1, // #398 - '@@||edge-enterprise.activity.windows.com^' => 1, // #401 - '@@||edge.activity.windows.com^' => 1, // #401 - '@@||tracking-protection.cdn.mozilla.net^' => 1, // #407 - '@@||skydrivesync.policies.live.net^' => 1, // #409 - '@@||dxcloud.episerver.net^' => 1, // #418 - '@@||static3.iask.cn^' => 1, // #429 - '@@||login-ishare.iask.com.cn^' => 1, // #429 - '@@||wechat.ishare.iask.com.cn^' => 1, // #429 - '@@||dw.iask.com.cn^' => 1, // #429 - '@@||settings-win.data.microsoft.com^' => 1, // #426 - '@@||insideruser.microsoft.com^' => 1, // #426 -); - -//针对上游赦免规则anti-AD不予赦免的规则,即赦免名单的黑名单 -$ARR_WHITE_RULE_BLK_LIST = array( - '@@||github.com^' => null, - '@@||github.io^' => null, - '@@||ads.nipr.ac.jp^' => null, - '@@||10010.com^' => null, - '@@||10086.cn^' => null, - '@@||17173im.allyes.com^' => null, - '@@||199it.com^' => null, - '@@||1point3acres.com^' => null, - '@@||3dpchip.com^' => null, - '@@||4horlover.com^' => null, - '@@||51job.com^' => null, - '@@||520call.me^' => null, - '@@||5278.cool^' => null, - '@@||58b.tv^' => null, - '@@||5qidgde.com^' => null, - '@@||85po.com^' => null, - '@@||85porn.net^' => null, - '@@||99wbwc.com^' => null, - '@@||99ybcc.com^' => null, - '@@||9zvip.net^' => null, - '@@||abril.com.br^' => null, - '@@||ad.10010.com^' => null, - '@@||ad.abchina.com^' => null, - '@@||ad.alimama.com^' => null, - '@@||ad.kazakinfo.com^' => null, - '@@||ad.ourgame.com^' => null, - '@@||ad2.uoocuniversity.com^' => null, - '@@||adf.ly^' => null, - '@@||adfox.ru^' => null, - '@@||adjs.8591.com.tw^' => null, - '@@||admin.mgid.com^' => null, - '@@||ads.askgamblers.com^' => null, - '@@||ads.com^' => null, - '@@||adsense.woso.cn^' => null, - '@@||adv.blogupp.com^' => null, - '@@||adv.cr^' => null, - '@@||adv.gg^' => null, - '@@||adv.welaika.com^' => null, - '@@||advert.kf5.com^' => null, - '@@||aetv.com^' => null, - '@@||affyun.com^' => null, - '@@||ak77now.pixnet.net^' => null, - '@@||analytics.amplitude.com^' => null, - '@@||annhe.net^' => null, - '@@||anyknew.com^' => null, - '@@||api-merchants.skimlinks.com^' => null, - '@@||api.ad-gone.com^' => null, - '@@||api.ads.tvb.com^' => null, - '@@||api.nyda.pro^' => null, - '@@||api.recaptcha.net^' => null, - '@@||apk.tw^' => null, - '@@||app-advertise.zhihuishu.com^' => null, - '@@||app.adroll.com^' => null, - '@@||archiveteam.org^' => null, - '@@||arstechnica.com^' => null, - '@@||aternos.org^' => null, - '@@||bde4.cc^' => null, - '@@||beta.bugly.qq.com^' => null, - '@@||bingfeng.tw^' => null, - '@@||blackmod.net^' => null, - '@@||blog.ztjal.info^' => null, - '@@||brighteon.com^' => null, - '@@||browser.cloud.ucweb.com^' => null, - '@@||btsax.info^' => null, - '@@||buyad.bi-xenon.cn^' => null, - '@@||captcha.su.baidu.com^' => null, - '@@||ccllaa.com^' => null, - '@@||centro.co.il^' => null, - '@@||changyou.com^' => null, - '@@||chinamobile.com^' => null, - '@@||chinatelecom.com.cn^' => null, - '@@||chuangkit.com^' => null, - '@@||cloud.mail.ru^' => null, - '@@||club.tgfcer.com^' => null, - '@@||cmechina.net^' => null, - '@@||cnprint.org^' => null, - '@@||cocomanhua.com^' => null, - '@@||colatour.com.tw^' => null, - '@@||consent-pref.trustarc.com^' => null, - '@@||consent.trustarc.com^' => null, - '@@||cookielawinfo.com^' => null, - '@@||coolinet.com^' => null, - '@@||cwtv.com^' => null, - '@@||cy.com^' => null, - '@@||d1-dm.com^' => null, - '@@||dailymail.co.uk^' => null, - '@@||dashboard.idealmedia.com^' => null, - '@@||dashboard.lentainform.com^' => null, - '@@||dashboard.marketgid.com^' => null, - '@@||dashboard.mgid.com^' => null, - '@@||dashboard.tovarro.com^' => null, - '@@||destinationamerica.com^' => null, - '@@||digit77.com^' => null, - '@@||dilidili.one^' => null, - '@@||displayad.naver.com^' => null, - '@@||dizhi99.com^' => null, - '@@||dlkoo.cc^' => null, - '@@||dlkoo.com^' => null, - '@@||dmhy.b168.net^' => null, - '@@||doubibackup.com^' => null, - '@@||download.jumpw.com^' => null, - '@@||download.mokeedev.com^' => null, - '@@||e9china.net^' => null, - '@@||easylife.tw^' => null, - '@@||ecitic.com^' => null, - '@@||edmondpoon.com^' => null, - '@@||elife-cloud.blogspot.com^' => null, - '@@||eolinker.com^' => null, - '@@||eucookiedirective.com^' => null, - '@@||experienceleague.adobe.com^' => null, - '@@||experienceleague.corp.adobe.com^' => null, - '@@||ez3c.tw^' => null, - '@@||fangcloud.com^' => null, - '@@||feed.mix.sina.com.cn^' => null, - '@@||fharr.com^' => null, - '@@||flattr.com^' => null, - '@@||fontawesome.com^' => null, - '@@||front-go.lemall.com^' => null, - '@@||fullmatchesandshows.com^' => null, - '@@||game735.com^' => null, - '@@||games.pch.com^' => null, - '@@||gaus.ee^' => null, - '@@||gaybeeg.info^' => null, - '@@||gelbooru.com^' => null, - '@@||getrelax.cc^' => null, - '@@||ggg50.pw^' => null, - '@@||golangnote.com^' => null, - '@@||gooogle.how^' => null, - '@@||hanjubaike.com^' => null, - '@@||hanjuwang.com^' => null, - '@@||hanjuwang.net^' => null, - '@@||healthyadvertising.es^' => null, - '@@||hh010.com^' => null, - '@@||history.com^' => null, - '@@||ibf.tw^' => null, - '@@||identity.mparticle.com^' => null, - '@@||img.ads.tvb.com^' => null, - '@@||informer.com^' => null, - '@@||inoreader.com^' => null, - '@@||ipfs-lab.com^' => null, - '@@||jetzt.de^' => null, - '@@||jin10.com^' => null, - '@@||jinyongci.com^' => null, - '@@||jjkmn.com^' => null, - '@@||jlthjy.com^' => null, - '@@||joyk.com^' => null, - '@@||jsfiddle.net^' => null, - '@@||jsjiami.com^' => null, - '@@||kissjav.com^' => null, - '@@||kk665403.pixnet.net^' => null, - '@@||laotiesao.vip^' => null, - '@@||ldxinyong.com^' => null, - '@@||league-funny.com^' => null, - '@@||leagueofmovie.com^' => null, - '@@||lemon.baidu.com^' => null, - '@@||liumingye.cn^' => null, - '@@||lnk2.cc^' => null, - '@@||login.mos.ru^' => null, - '@@||ltzn.9377.com^' => null, - '@@||mcbar.cn^' => null, - '@@||mccc11.com^' => null, - '@@||mccm88.com^' => null, - '@@||media-cache*.pinimg.com^' => null, - '@@||megaup.net^' => null, - '@@||metrics.torproject.org^' => null, - '@@||mi.cn^' => null, - '@@||milfzr.com^' => null, - '@@||minigame.qq.com^' => null, - '@@||mmaa99.xyz^' => null, - '@@||mmee04.com^' => null, - '@@||mmff30.com^' => null, - '@@||mmgd.xyz^' => null, - '@@||mmuu22.link^' => null, - '@@||mnighthk.net^' => null, - '@@||monnsutogatya.com^' => null, - '@@||moviesunusa.net^' => null, - '@@||ms332.com^' => null, - '@@||msn.com^' => null, - '@@||msn.wrating.com^' => null, - '@@||muzlan.top^' => null, - '@@||myqqjd.com^' => null, - '@@||namechk.com^' => null, - '@@||netflav.com^' => null, - '@@||newad.mail.wo.cn^' => null, - '@@||niotv.com^' => null, - '@@||nobugin.com^' => null, - '@@||nodkey.xyz^' => null, - '@@||oiihk.com^' => null, - '@@||olgame.tw^' => null, - '@@||ondemand.sas.com^' => null, - '@@||optout.networkadvertising.org^' => null, - '@@||panjiachen.github.io^' => null, - '@@||pass.1688.com^' => null, - '@@||passets-cdn.pinterest.com^' => null, - '@@||passiontimes.hk^' => null, - '@@||payload.cargocollective.com^' => null, - '@@||pg-wuming.com^' => null, - '@@||phs.tanx.com^' => null, - '@@||pingjs.qq.com^' => null, - '@@||pixelexperience.org^' => null, - '@@||player.sundaysky.com^' => null, - '@@||plugins.matomo.org^' => null, - '@@||poedb.tw^' => null, - '@@||pornbraze.com^' => null, - '@@||premiumleecher.com^' => null, - '@@||profile.getyounity.com^' => null, - '@@||publisher.adservice.com^' => null, - '@@||qqdie.com^' => null, - '@@||r3sub.com^' => null, - '@@||receive-a-sms.com^' => null, - '@@||redditarchive.com^' => null, - '@@||restream.io^' => null, - '@@||reuters.com^' => null, - '@@||rojadirecta.me^' => null, - '@@||rule34hentai.net^' => null, -// '@@||s-media*.pinimg.com^' => null, - '@@||sakai-hk.com^' => null, - '@@||sc2casts.com^' => null, - '@@||sciencechannel.com^' => null, - '@@||scyts.com^' => null, - '@@||sdc.pingan.com^' => null, - '@@||searchad.naver.com^' => null, - '@@||seedingup.com^' => null, - '@@||seedingup.de^' => null, - '@@||seedingup.es^' => null, - '@@||seedingup.fr^' => null, - '@@||seedingup.it^' => null, - '@@||serve.netsh.org^' => null, - '@@||services.pornhub.com^' => null, - '@@||seselah.com^' => null, - '@@||sexylove.club^' => null, - '@@||seyise8.com^' => null, - '@@||seyy66.space^' => null, - '@@||share1223.com^' => null, - '@@||shopback.com.tw^' => null, - '@@||slack.com^' => null, - '@@||smallseotools.com^' => null, - '@@||smtcaw.com^' => null, - '@@||social.krunker.io^' => null, - '@@||socialmedia.by^' => null, - '@@||softwarebrother.com^' => null, - '@@||sourcepoint.telegraph.co.uk^' => null, - '@@||spanishdict.com^' => null, - '@@||speedtest.net^' => null, - '@@||spiegel.de^' => null, - '@@||sssbozh.com^' => null, - '@@||stream4free.live^' => null, - '@@||swiso.org^' => null, - '@@||switching.software^' => null, - '@@||swjoy.com^' => null, - '@@||szhr.com.cn^' => null, - '@@||szhr.com^' => null, - '@@||technews.tw^' => null, - '@@||television-envivo.com^' => null, - '@@||teliad.com^' => null, - '@@||teliad.de^' => null, - '@@||teliad.es^' => null, - '@@||teliad.fr^' => null, - '@@||teliad.it^' => null, - '@@||th-sjy.com^' => null, - '@@||thefreedictionary.com^' => null, - '@@||thimble.mozilla.org^' => null, - '@@||thisav.com^' => null, - '@@||tiktok.com^' => null, - '@@||tlc.com^' => null, - '@@||tomshardware.co.uk^' => null, - '@@||tomshardware.com^' => null, - '@@||transferwise.com^' => null, - '@@||trip.cmbchina.com^' => null, - '@@||ttkdex.com^' => null, - '@@||tuhu.cn^' => null, - '@@||tui.click^' => null, - '@@||tweaktown.com^' => null, - '@@||twofactorauth.org^' => null, - '@@||udp2p.com^' => null, - '@@||upload.tube8.com^' => null, - '@@||uptostream.com^' => null, - '@@||upxin.net^' => null, - '@@||urlgalleries.net^' => null, - '@@||v2rayssr.com^' => null, - '@@||vd.l.qq.com^' => null, - '@@||viu.tv^' => null, - '@@||ware.shop.jd.com^' => null, - '@@||wavebox.io^' => null, - '@@||web.archive.org^' => null, - '@@||websetnet.com^' => null, - '@@||weithenn.org^' => null, - '@@||wenxuecity.com^' => null, - '@@||wgun.net^' => null, - '@@||wholehk.com^' => null, - '@@||widget.myrentacar.me^' => null, - '@@||wikia.nocookie.net^' => null, - '@@||wikibooks.org^' => null, - '@@||wikidata.org^' => null, - '@@||wikinews.org^' => null, - '@@||wikipedia.org^' => null, - '@@||wikiquote.org^' => null, - '@@||wikiversity.org^' => null, - '@@||wiktionary.org^' => null, - '@@||ws.webcaster.pro^' => null, - '@@||www.gsxt.gov.cn^' => null, - '@@||xia1ge.com^' => null, - '@@||xianzhenyuan.cn^' => null, - '@@||xidian.edu.cn^' => null, - '@@||xilinjie.com^' => null, - '@@||xiuren.org^' => null, - '@@||xmpp-chat.pornhub.com^' => null, - '@@||xmxing.net^' => null, - '@@||yellowbridge.com^' => null, - '@@||yesiget.i234.me^' => null, - '@@||yibada.com^' => null, - '@@||ymso.cc^' => null, - '@@||yygsz.com^' => null, - '@@||zbj.com^' => null, - '@@||zeplin.io^' => null, - '@@||zippyshare.com^' => null, -); - -//针对上游通配符规则中anti-AD不予采信的规则,即通配符黑名单 -$ARR_WILD_BLK_LIST = array( - 'cnt*rambler.ru' => null, - 'um*.com' => null, -); - -if(PHP_SAPI != 'cli'){ - die('nothing.'); -} - -$src_file = ''; -try{ - $file = $argv[1]; - $src_file = ROOT_DIR . $file; -}catch(Exception $e){ - echo "get args failed.", $e->getMessage(), "\n"; - die(0); -} - -if(empty($src_file) || !is_file($src_file)){ - echo 'src_file:', $src_file, ' is not found.'; - die(0); -} - -if(!is_file(WILDCARD_SRC) || !is_file(WHITERULE_SRC)){ - echo 'key file is not found.'; - die(0); -} - -$wild_fp = fopen(WILDCARD_SRC, 'r'); -$arr_wild_src = array(); - -while(!feof($wild_fp)){ - $wild_row = fgets($wild_fp, 512); - if(empty($wild_row)){ - continue; - } - if(!preg_match('/^\|\|?([\w\-\.\*]+?)\^(\$([^=]+?,)?(image|third-party|script)(,[^=]+)?)?$/', $wild_row, $matches)){ - continue; - } - - if(array_key_exists($matches[1], $ARR_WILD_BLK_LIST)){ - continue; - } - - $matched = false; - // TODO 此处匹配似乎还不够完美,需再次斟酌 - foreach($ARR_REGEX_LIST as $regex_str => $regex_row){ - if(preg_match($regex_str, str_replace('*', '', $matches[1]))){ - $matched = true; - break; - } - } - if($matched){ - continue; - } - $arr_wild_src[$matches[1]] = []; -} -fclose($wild_fp); - -$arr_wild_src = array_merge($arr_wild_src, $ARR_MERGED_WILD_LIST); - -$written_size = $line_count = 0; - -$src_content = file_get_contents($src_file); -$attached_content = ''; -$tmp_replaced_content = ''; - -//按需写入白名单规则 -$whiterule = file(WHITERULE_SRC, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); -$whiterule = array_fill_keys($whiterule, 0); -$ARR_WHITE_RULE_LIST = array_merge($whiterule, $ARR_WHITE_RULE_LIST); -$wrote_whitelist = []; -$remained_white_rule = []; -foreach($ARR_WHITE_RULE_LIST as $row => $v){ - if(empty($row) || substr($row, 0, 1) !== '@' || substr($row, 1, 1) !== '@'){ - continue; - } - $matches = array(); - if(!preg_match('/^@@\|\|([0-9a-z\.\-\*]+?)\^/', $row, $matches)){ - continue; - } - - if(array_key_exists("@@||${matches[1]}^", $ARR_WHITE_RULE_BLK_LIST)){ - continue; - } - - if(array_key_exists($matches[1], $wrote_whitelist)){ - continue; - } - - if($v === 1){ - $wrote_whitelist[$matches[1]] = null; - $attached_content .= "@@||${matches[1]}^\n"; - $line_count++; - continue; - } - - $origin_white_rule = $matches[1]; - $wrote_whitelist[$origin_white_rule] = null; - $matches[1] = str_replace('*', '.abc.', $matches[1]); - $matches[1] = str_replace('..', '.', $matches[1]); - $extract_domain = addressMaker::extract_main_domain($matches[1]); - if(!$extract_domain){ - $extract_domain = $matches[1]; - } - - // TODO 3级或以上域名加白2级域名的情况未纳入 - if(strpos($src_content, '|' . $extract_domain) === false){ - $remained_white_rule[$origin_white_rule] = 1; - continue; - } - - $attached_content .= "@@||${origin_white_rule}^\n"; - $line_count++; -} - -unset($wrote_whitelist); - -// 清洗正则表达式匹配 -foreach($ARR_REGEX_LIST as $regex_str => $regex_row){ - $php_regex = str_replace(array('/^', '$/'), array('/^\|\|', '\^'), $regex_str); - $php_regex = preg_replace('/(.+?[^$])\/$/', '\1.*\^', $php_regex); - $php_regex .= "\n/m"; - - $tmp_replaced_content = preg_replace($php_regex, '', $src_content); - if($tmp_replaced_content === $src_content){ - continue; - } - $src_content = $tmp_replaced_content; - $tmp_replaced_content = ''; - $attached_content .= $regex_str; - if($regex_row && is_array($regex_row) && $regex_row['m']){ - $attached_content .= $regex_row['m']; - } - $attached_content .= "\n"; - $line_count++; - - foreach($remained_white_rule as $rmk => $rmv){ - if(preg_match($php_regex, '||' . str_replace('*', '123', $rmk) . "^\n\n")){ - $attached_content .= '@@||' . $rmk . "^\n"; - $line_count++; - unset($remained_white_rule[$rmk]); - } - } -} - -// 清洗*号模糊匹配 -$wrote_wild_list = array(); -foreach($arr_wild_src as $wild_rule => $wild_value){ - - if(array_key_exists($wild_rule, $wrote_wild_list)){ - continue; - } - - $php_regex = '/^\|\|(\S+\.)?' . str_replace(array('.', '*', '-'), array('\\.', '.*', '\\-'), $wild_rule) . "\^\n/m"; - $tmp_replaced_content = preg_replace($php_regex, '', $src_content); - if($tmp_replaced_content == $src_content){ - continue; - } - - $wrote_wild_list[$wild_rule] = 1; - - $src_content = $tmp_replaced_content; - $tmp_replaced_content = ''; - $attached_content .= '||' . $wild_rule; - if($wild_value && is_array($wild_value) && $wild_value['m']){ - $attached_content .= '^' . $wild_value['m'] . "\n"; - }else{ - $attached_content .= "^\n"; - } - - $line_count++; - - foreach($remained_white_rule as $rmk => $rmv){ - if(preg_match($php_regex, '||' . str_replace('*', '123', $rmk) . "^\n\n")){ - $attached_content .= '@@||' . $rmk . "^\n"; - $line_count++; - unset($remained_white_rule[$rmk]); - } - } -} - -$line_count += substr_count($src_content, "\n"); -$src_content = str_replace("!Total lines: 00000\n", '!Total lines: ' . ($line_count - 4) . "\n" . $attached_content, $src_content); - -file_put_contents($src_file, $src_content); -file_put_contents($src_file . '.md5', md5_file($src_file)); -echo 'Time cost:', microtime(true) - START_TIME, "s, at ", date('m-d H:i:s'), "\n"; +die('anti-AD'); diff --git a/scripts/tools/easylist-extend.enc.php b/scripts/tools/easylist-extend.enc.php new file mode 100644 index 0000000000000000000000000000000000000000..3cc722e9900fb9ff97898bded7f428ada8f3d1ce GIT binary patch literal 25744 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

@-UXk!MyW?8XdkuKGwcT_{n>NS944D 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 null, - '*.mgr.consensu.org' => null, - 'vs*.gzcu.u3.ucweb.com' => null, - 'ad*.goforandroid.com' => null, - 'bs*.9669.cn' => null, - '*serror*.wo.com.cn' => ['m' => '$dnstype=A|CNAME'], - '*mistat*.xiaomi.com' => null, - 'affrh20*.com' => null, - 'assoc-amazon.*' => null, - 'clkservice*.youdao.com' => null, - 'dsp*.youdao.com' => null, - 'pussl*.com' => null, - 'putrr*.com' => null, - 't*.a.market.xiaomi.com' => null, - 'ad*.bigmir.net' => null, - 'log*.molitv.cn' => null, - 'adm*.autoimg.cn' => null, - 'cloudservice*.kingsoft-office-service.com' => null, - 'gg*.51cto.com' => null, - 'log.*.hunantv.com' => null, - 'iflyad.*.openstorage.cn' => null, - '*customstat*.51togic.com' => null, -// 'appcloud*.zhihu.com' => null, // #344 - 'ad*.molitv.cn' => null, - 'ads*-adnow.com' => null, - 'aeros*.tk' => null, - 'analyzer*.fc2.com' => null, - 'admicro*.vcmedia.vn' => null, - 'xn--xhq9mt12cf5v.*' => null, - 'freecontent.*' => null, - 'hostingcloud.*' => null, - 'jshosting.*' => null, - 'flightzy.*' => null, - 'sunnimiq*.cf' => null, - 'admob.*' => null, - '*log.droid4x.cn' => null, - '*tsdk.vivo.com.cn' => null, - '*.mmstat.com' => null, -// 'sf*-ttcdn-tos.pstatp.com' => null, - 'f-log*.grammarly.io' => null, - '24log.*' => null, - '24smi.*' => null, - 'ad-*.wikawika.xyz' => null, - 'ablen*.tk' => null, - 'darking*.tk' => null, - 'doubleclick*.xyz' => null, - 'thepiratebay.*' => null, - 'adserver.*' => null, - 'clientlog*.music.163.com' => null, - 'brucelead*.com' => null, - 'gostats.*' => null, - 'gralfusnzpo*.top' => null, - 'oiwjcsh*.top' => null, - '*-analytics*.huami.com' => null, - 'count*.pconline.com.cn' => null, - 'qchannel*.cn' => null, - 'sda*.xyz' => null, - 'ad-*.com' => null, - 'ad-*.net' => null, - 'webads.*' => null, - 'web-stat.*' => null, - 'waframedia*.*' => null, - 'wafmedia*.*' => null, - 'voluumtrk*.com' => null, - 'vmm-satellite*.com' => null, - 'vente-unique.*' => null, - 'vegaoo*.*' => null, - 'umtrack*.com' => null, - 'grjs0*.com' => null, - 'imglnk*.com' => null, - 'admarvel*.*' => null, - 'admaster*.*' => null, - 'adsage*.*' => null, - 'adsensor*.*' => null, - 'adservice*.*' => null, - 'adsh*.*' => null, - 'adsmogo*.*' => null, - 'adsrvmedia*.*' => null, - 'adsserving*.*' => null, - 'adsystem*.*' => null, - 'adwords*.*' => null, - 'analysis*.*' => null, - 'applovin*.*' => null, - 'appsflyer*.*' => null, - 'domob*.*' => null, - 'duomeng*.*' => null, - 'dwtrack*.*' => null, - 'guanggao*.*' => null, - 'lianmeng*.*' => null, - //'monitor*.*' => null, - 'omgmta*.*' => null, - 'omniture*.*' => null, - 'openx*.*' => null, - 'partnerad*.*' => null, - 'pingfore*.*' => null, - 'socdm*.*' => null, - 'supersonicads*.*' => null, - 'tracking*.*' => null, - 'usage*.*' => null, - 'wlmonitor*.*' => null, - 'zjtoolbar*.*' => null, - 'engage.3m*' => null, - '*.actonservice.com' => null, - '*-cor0*.api.p001.1drv.com' => null, - '*33*-*.1drv.com' => null, - '2cnjuh34j*.com' => null, - 'ssc.southpark*' => null, - 'tr.*.espmp-*fr.net' => null, - 'tdep.vacansoleil.*' => null, - 'da.hornbach.*' => null, - '*us*watcab*.blob.core.windows.net' => null, - 'xn--wxtr9fwyxk9c.*' => null, -); - -$ARR_REGEX_LIST = array( - '/^(\S+\.)?9377[a-z0-9]{2}\.com$/' => ['m' => '$dnstype=A'], - '/^(\S+\.)?ad(s?[\d]+|m|s)?\./' => null, - '/^(\S+\.)?advert/' => ['m' => '$denyallow=alibabacorp.com|alibabadns.com|sm.cn|tanx.com|alibaba-inc.com'], - '/^(\S+\.)?affiliat(es?[0-9a-z]*?|ion[0-9\-a-z]*?|ly[0-9a-z\-]*?)\./' => null, // fixed #406 - '/^(\S+\.)?s?metrics\./' => null, // TODO 覆盖面很大 - '/^(\S+\.)?afgr[\d]{1,2}\.com$/' => null, - '/^(\S+\.)?analytics(\-|\.)/' => null, - '/^(\S+\.)?counter(\-|\.)/' => null, - '/^(\S+\.)?pixels?\./' => null, - '/^(\S+\.)?syma[a-z]\.cn$/' => null, - '/^(\S+\.)?widgets?\./' => null, - '/^(\S+\.)?(webstats?|swebstats?|mywebstats?)\./' => null, - // '/^(\S+\.)?stat\..+?\.(com|cn|ru|it|de|cz|net|kr|ai|pl|th|fi|fr|jp|hu|bz|sk|se)$/' => null, - '/^(\S+\.)?track(ing)?\./' => null, - '/^(\S+\.)?tongji\./' => null, - '/^(\S+\.)?toolbar\./' => null, - '/^(\S+\.)?adservice\.google\./' => null, - '/^(\S+\.)?d[\d]+\.sina(img)?(\.com)?\.cn/' => null, - '/^(\S+\.)?sax[\dns]?\.sina\.com\.cn/' => null, - '/^(\S+\.)?delivery([\d]{2}|dom|modo).com$/' => null, - '/^(\S+\.)?[c-s]ads(abs|abz|ans|anz|ats|atz|del|ecs|ecz|ims|imz|ips|ipz|kis|kiz|oks|okz|one|pms|pmz)\.com/' => null, - '/^(\S+\.)?[0-9a-z\-]{26,}\.(com|net|cn)(\.cn)?$/' => null, //超长域名 - '/^(\S+\.)?11599[\da-z]{2,20}\.com$/' => null, //"澳门新葡京"系列 - '/^(\S+\.)?61677[\da-z]{0,20}\.com$/' => null, //"澳门新葡京"系列 - '/^(\S+\.)?[0-9a-f]{15,}\.com$/' => null, //15个字符以上的16进制域名 - '/^(\S+\.)?[0-9a-z]{16,}\.xyz$/' => null, //16个字符以上的.xyz域名 - '/^(\S+\.)?6699[0-9]\.top$/' => null, //连号 - '/^(\S+\.)?abie[0-9]+\.top$/' => null, //连号 - '/^(\S+\.)?ad[0-9]{3,}m.com$/' => null, //连号 - '/^(\S+\.)?aj[0-9]{4,}.online$/' => null, //连号 - '/^(\S+\.)?xpj[0-9]\.net$/' => null, //连号 - '/^(\S+\.)?ylx-[0-9].com$/' => null, //连号 - '/^(\S+\.)?ali2[a-z]\.xyz$/' => null, //连号 - '/^(\S+\.)?777\-?partners?\.(net|com)$/' => null, //组合 - '/^(\S+\.)?voyage-prive\.[a-z]+(\.uk)?$/' => null, //组合 - '/^(\S+\.)?e7[0-9]{2,4}\.(net|com)?$/' => null, //组合 - '/^(\S+\.)?g[1-4][0-9]{8,9}\.com?$/' => null, //批量组合 - '/^(\S+\.)?hg[0-9]{4,5}\.com?$/' => null, //批量组合 - '/^(\S+\.)?333[1-9]{2}[0-9]{2}\.com?$/' => null, //批量组合 - '/^(\S+\.)?5551[0-9]{3}\.com?$/' => null, //批量组合 - - // '/^(\S+\.)?(?=.*[a-f].*\.com$)(?=.*\d.*\.com$)[a-f0-9]{15,}\.com$/' => null, -); - -//对通配符匹配或正则匹配增加的额外赦免规则 -$ARR_WHITE_RULE_LIST = array( - '@@||tongji.*kuwo.cn^' => 0, - '@@||tracking.epicgames.com^' => 0, - '@@||tracker.eu.org^' => 1, //强制加白,BT tracker,有形如2.tracker.eu.org的域 - '@@||stats.uptimerobot.com^' => 1, //uptimerobot监测相关 #38 - '@@||track.sendcloud.org^' => 0, //邮件退订域名 - '@@||log.mmstat.com^' => 0, //修复优酷视频显示禁用了cookie - '@@||adm.10jqka.com.cn^' => 0, //同花顺 - '@@||center-h5api.m.taobao.com^' => 1, //h5页面 - '@@||app.adjust.com^' => 1, //https://github.com/AdguardTeam/AdGuardSDNSFilter/pull/186 - '@@||widget.weibo.com^' => 0, //微博外链 - '@@||uland.taobao.com^' => 1, //淘宝coupon #83 - '@@||advertisement.taobao.com^' => 1, //CNAME 被杀,导致s.click.taobao.com等服务异常 - '@@||baozhang.baidu.com^' => 1, //CNAME e.shifen.com - '@@||tongji.edu.cn^' => 1, // 同济大学 - '@@||tongji.cn^' => 1, // 同济大学 #281 - '@@||ad.siemens.com.cn^' => 1, // 西门子下载中心 - '@@||sdkapi.sms.mob.com^' => 1, // 短信验证码 #127 - '@@||stats.gov.cn^' => 1, // 国家统计局 #144 - '@@||tj.gov.cn^' => 1, - '@@||sax.sina.com.cn^' => 1, // #155 - '@@||api.ad-gone.com^' => 1, // #207 - '@@||news-app.abumedia.yql.yahoo.com^' => 1, // #206 - '@@||meizu.coapi.moji.com^' => 1, // #217 - '@@||track.cpau.info^' => 1, // #251 - '@@||passport.bobo.com^' => 1, // #265 - '@@||stat.jseea.cn^' => 1, // #279 - '@@||widget.intercom.io^' => 1, // #280 - '@@||track.toggl.com^' => 1, // #307 - '@@||www.msftconnecttest.com^' => 1, // #327 - '@@||storage.live.com^' => 1, // #333 - '@@||skyapi.onedrive.live.com^' => 1, // #333 - '@@||counter-strike.net^' => 1, // #332 - '@@||ftp.bmp.ovh^' => 1, // #353 - '@@||profile*.se.360.cn^' => 1, // #381 - '@@||pic.iask.cn^' => 1, // #397 - '@@||ad.jp^' => 1, // #399 - '@@||ad.azure.com^' => 1, // #399 - '@@||ad.cityu.edu.hk^' => 1, // #398 - '@@||edge-enterprise.activity.windows.com^' => 1, // #401 - '@@||edge.activity.windows.com^' => 1, // #401 - '@@||tracking-protection.cdn.mozilla.net^' => 1, // #407 - '@@||skydrivesync.policies.live.net^' => 1, // #409 - '@@||dxcloud.episerver.net^' => 1, // #418 - '@@||static3.iask.cn^' => 1, // #429 - '@@||login-ishare.iask.com.cn^' => 1, // #429 - '@@||wechat.ishare.iask.com.cn^' => 1, // #429 - '@@||dw.iask.com.cn^' => 1, // #429 - '@@||settings-win.data.microsoft.com^' => 1, // #426 - '@@||insideruser.microsoft.com^' => 1, // #426 -); - -//针对上游赦免规则anti-AD不予赦免的规则,即赦免名单的黑名单 -$ARR_WHITE_RULE_BLK_LIST = array( - '@@||github.com^' => null, - '@@||github.io^' => null, - '@@||ads.nipr.ac.jp^' => null, - '@@||10010.com^' => null, - '@@||10086.cn^' => null, - '@@||17173im.allyes.com^' => null, - '@@||199it.com^' => null, - '@@||1point3acres.com^' => null, - '@@||3dpchip.com^' => null, - '@@||4horlover.com^' => null, - '@@||51job.com^' => null, - '@@||520call.me^' => null, - '@@||5278.cool^' => null, - '@@||58b.tv^' => null, - '@@||5qidgde.com^' => null, - '@@||85po.com^' => null, - '@@||85porn.net^' => null, - '@@||99wbwc.com^' => null, - '@@||99ybcc.com^' => null, - '@@||9zvip.net^' => null, - '@@||abril.com.br^' => null, - '@@||ad.10010.com^' => null, - '@@||ad.abchina.com^' => null, - '@@||ad.alimama.com^' => null, - '@@||ad.kazakinfo.com^' => null, - '@@||ad.ourgame.com^' => null, - '@@||ad2.uoocuniversity.com^' => null, - '@@||adf.ly^' => null, - '@@||adfox.ru^' => null, - '@@||adjs.8591.com.tw^' => null, - '@@||admin.mgid.com^' => null, - '@@||ads.askgamblers.com^' => null, - '@@||ads.com^' => null, - '@@||adsense.woso.cn^' => null, - '@@||adv.blogupp.com^' => null, - '@@||adv.cr^' => null, - '@@||adv.gg^' => null, - '@@||adv.welaika.com^' => null, - '@@||advert.kf5.com^' => null, - '@@||aetv.com^' => null, - '@@||affyun.com^' => null, - '@@||ak77now.pixnet.net^' => null, - '@@||analytics.amplitude.com^' => null, - '@@||annhe.net^' => null, - '@@||anyknew.com^' => null, - '@@||api-merchants.skimlinks.com^' => null, - '@@||api.ad-gone.com^' => null, - '@@||api.ads.tvb.com^' => null, - '@@||api.nyda.pro^' => null, - '@@||api.recaptcha.net^' => null, - '@@||apk.tw^' => null, - '@@||app-advertise.zhihuishu.com^' => null, - '@@||app.adroll.com^' => null, - '@@||archiveteam.org^' => null, - '@@||arstechnica.com^' => null, - '@@||aternos.org^' => null, - '@@||bde4.cc^' => null, - '@@||beta.bugly.qq.com^' => null, - '@@||bingfeng.tw^' => null, - '@@||blackmod.net^' => null, - '@@||blog.ztjal.info^' => null, - '@@||brighteon.com^' => null, - '@@||browser.cloud.ucweb.com^' => null, - '@@||btsax.info^' => null, - '@@||buyad.bi-xenon.cn^' => null, - '@@||captcha.su.baidu.com^' => null, - '@@||ccllaa.com^' => null, - '@@||centro.co.il^' => null, - '@@||changyou.com^' => null, - '@@||chinamobile.com^' => null, - '@@||chinatelecom.com.cn^' => null, - '@@||chuangkit.com^' => null, - '@@||cloud.mail.ru^' => null, - '@@||club.tgfcer.com^' => null, - '@@||cmechina.net^' => null, - '@@||cnprint.org^' => null, - '@@||cocomanhua.com^' => null, - '@@||colatour.com.tw^' => null, - '@@||consent-pref.trustarc.com^' => null, - '@@||consent.trustarc.com^' => null, - '@@||cookielawinfo.com^' => null, - '@@||coolinet.com^' => null, - '@@||cwtv.com^' => null, - '@@||cy.com^' => null, - '@@||d1-dm.com^' => null, - '@@||dailymail.co.uk^' => null, - '@@||dashboard.idealmedia.com^' => null, - '@@||dashboard.lentainform.com^' => null, - '@@||dashboard.marketgid.com^' => null, - '@@||dashboard.mgid.com^' => null, - '@@||dashboard.tovarro.com^' => null, - '@@||destinationamerica.com^' => null, - '@@||digit77.com^' => null, - '@@||dilidili.one^' => null, - '@@||displayad.naver.com^' => null, - '@@||dizhi99.com^' => null, - '@@||dlkoo.cc^' => null, - '@@||dlkoo.com^' => null, - '@@||dmhy.b168.net^' => null, - '@@||doubibackup.com^' => null, - '@@||download.jumpw.com^' => null, - '@@||download.mokeedev.com^' => null, - '@@||e9china.net^' => null, - '@@||easylife.tw^' => null, - '@@||ecitic.com^' => null, - '@@||edmondpoon.com^' => null, - '@@||elife-cloud.blogspot.com^' => null, - '@@||eolinker.com^' => null, - '@@||eucookiedirective.com^' => null, - '@@||experienceleague.adobe.com^' => null, - '@@||experienceleague.corp.adobe.com^' => null, - '@@||ez3c.tw^' => null, - '@@||fangcloud.com^' => null, - '@@||feed.mix.sina.com.cn^' => null, - '@@||fharr.com^' => null, - '@@||flattr.com^' => null, - '@@||fontawesome.com^' => null, - '@@||front-go.lemall.com^' => null, - '@@||fullmatchesandshows.com^' => null, - '@@||game735.com^' => null, - '@@||games.pch.com^' => null, - '@@||gaus.ee^' => null, - '@@||gaybeeg.info^' => null, - '@@||gelbooru.com^' => null, - '@@||getrelax.cc^' => null, - '@@||ggg50.pw^' => null, - '@@||golangnote.com^' => null, - '@@||gooogle.how^' => null, - '@@||hanjubaike.com^' => null, - '@@||hanjuwang.com^' => null, - '@@||hanjuwang.net^' => null, - '@@||healthyadvertising.es^' => null, - '@@||hh010.com^' => null, - '@@||history.com^' => null, - '@@||ibf.tw^' => null, - '@@||identity.mparticle.com^' => null, - '@@||img.ads.tvb.com^' => null, - '@@||informer.com^' => null, - '@@||inoreader.com^' => null, - '@@||ipfs-lab.com^' => null, - '@@||jetzt.de^' => null, - '@@||jin10.com^' => null, - '@@||jinyongci.com^' => null, - '@@||jjkmn.com^' => null, - '@@||jlthjy.com^' => null, - '@@||joyk.com^' => null, - '@@||jsfiddle.net^' => null, - '@@||jsjiami.com^' => null, - '@@||kissjav.com^' => null, - '@@||kk665403.pixnet.net^' => null, - '@@||laotiesao.vip^' => null, - '@@||ldxinyong.com^' => null, - '@@||league-funny.com^' => null, - '@@||leagueofmovie.com^' => null, - '@@||lemon.baidu.com^' => null, - '@@||liumingye.cn^' => null, - '@@||lnk2.cc^' => null, - '@@||login.mos.ru^' => null, - '@@||ltzn.9377.com^' => null, - '@@||mcbar.cn^' => null, - '@@||mccc11.com^' => null, - '@@||mccm88.com^' => null, - '@@||media-cache*.pinimg.com^' => null, - '@@||megaup.net^' => null, - '@@||metrics.torproject.org^' => null, - '@@||mi.cn^' => null, - '@@||milfzr.com^' => null, - '@@||minigame.qq.com^' => null, - '@@||mmaa99.xyz^' => null, - '@@||mmee04.com^' => null, - '@@||mmff30.com^' => null, - '@@||mmgd.xyz^' => null, - '@@||mmuu22.link^' => null, - '@@||mnighthk.net^' => null, - '@@||monnsutogatya.com^' => null, - '@@||moviesunusa.net^' => null, - '@@||ms332.com^' => null, - '@@||msn.com^' => null, - '@@||msn.wrating.com^' => null, - '@@||muzlan.top^' => null, - '@@||myqqjd.com^' => null, - '@@||namechk.com^' => null, - '@@||netflav.com^' => null, - '@@||newad.mail.wo.cn^' => null, - '@@||niotv.com^' => null, - '@@||nobugin.com^' => null, - '@@||nodkey.xyz^' => null, - '@@||oiihk.com^' => null, - '@@||olgame.tw^' => null, - '@@||ondemand.sas.com^' => null, - '@@||optout.networkadvertising.org^' => null, - '@@||panjiachen.github.io^' => null, - '@@||pass.1688.com^' => null, - '@@||passets-cdn.pinterest.com^' => null, - '@@||passiontimes.hk^' => null, - '@@||payload.cargocollective.com^' => null, - '@@||pg-wuming.com^' => null, - '@@||phs.tanx.com^' => null, - '@@||pingjs.qq.com^' => null, - '@@||pixelexperience.org^' => null, - '@@||player.sundaysky.com^' => null, - '@@||plugins.matomo.org^' => null, - '@@||poedb.tw^' => null, - '@@||pornbraze.com^' => null, - '@@||premiumleecher.com^' => null, - '@@||profile.getyounity.com^' => null, - '@@||publisher.adservice.com^' => null, - '@@||qqdie.com^' => null, - '@@||r3sub.com^' => null, - '@@||receive-a-sms.com^' => null, - '@@||redditarchive.com^' => null, - '@@||restream.io^' => null, - '@@||reuters.com^' => null, - '@@||rojadirecta.me^' => null, - '@@||rule34hentai.net^' => null, -// '@@||s-media*.pinimg.com^' => null, - '@@||sakai-hk.com^' => null, - '@@||sc2casts.com^' => null, - '@@||sciencechannel.com^' => null, - '@@||scyts.com^' => null, - '@@||sdc.pingan.com^' => null, - '@@||searchad.naver.com^' => null, - '@@||seedingup.com^' => null, - '@@||seedingup.de^' => null, - '@@||seedingup.es^' => null, - '@@||seedingup.fr^' => null, - '@@||seedingup.it^' => null, - '@@||serve.netsh.org^' => null, - '@@||services.pornhub.com^' => null, - '@@||seselah.com^' => null, - '@@||sexylove.club^' => null, - '@@||seyise8.com^' => null, - '@@||seyy66.space^' => null, - '@@||share1223.com^' => null, - '@@||shopback.com.tw^' => null, - '@@||slack.com^' => null, - '@@||smallseotools.com^' => null, - '@@||smtcaw.com^' => null, - '@@||social.krunker.io^' => null, - '@@||socialmedia.by^' => null, - '@@||softwarebrother.com^' => null, - '@@||sourcepoint.telegraph.co.uk^' => null, - '@@||spanishdict.com^' => null, - '@@||speedtest.net^' => null, - '@@||spiegel.de^' => null, - '@@||sssbozh.com^' => null, - '@@||stream4free.live^' => null, - '@@||swiso.org^' => null, - '@@||switching.software^' => null, - '@@||swjoy.com^' => null, - '@@||szhr.com.cn^' => null, - '@@||szhr.com^' => null, - '@@||technews.tw^' => null, - '@@||television-envivo.com^' => null, - '@@||teliad.com^' => null, - '@@||teliad.de^' => null, - '@@||teliad.es^' => null, - '@@||teliad.fr^' => null, - '@@||teliad.it^' => null, - '@@||th-sjy.com^' => null, - '@@||thefreedictionary.com^' => null, - '@@||thimble.mozilla.org^' => null, - '@@||thisav.com^' => null, - '@@||tiktok.com^' => null, - '@@||tlc.com^' => null, - '@@||tomshardware.co.uk^' => null, - '@@||tomshardware.com^' => null, - '@@||transferwise.com^' => null, - '@@||trip.cmbchina.com^' => null, - '@@||ttkdex.com^' => null, - '@@||tuhu.cn^' => null, - '@@||tui.click^' => null, - '@@||tweaktown.com^' => null, - '@@||twofactorauth.org^' => null, - '@@||udp2p.com^' => null, - '@@||upload.tube8.com^' => null, - '@@||uptostream.com^' => null, - '@@||upxin.net^' => null, - '@@||urlgalleries.net^' => null, - '@@||v2rayssr.com^' => null, - '@@||vd.l.qq.com^' => null, - '@@||viu.tv^' => null, - '@@||ware.shop.jd.com^' => null, - '@@||wavebox.io^' => null, - '@@||web.archive.org^' => null, - '@@||websetnet.com^' => null, - '@@||weithenn.org^' => null, - '@@||wenxuecity.com^' => null, - '@@||wgun.net^' => null, - '@@||wholehk.com^' => null, - '@@||widget.myrentacar.me^' => null, - '@@||wikia.nocookie.net^' => null, - '@@||wikibooks.org^' => null, - '@@||wikidata.org^' => null, - '@@||wikinews.org^' => null, - '@@||wikipedia.org^' => null, - '@@||wikiquote.org^' => null, - '@@||wikiversity.org^' => null, - '@@||wiktionary.org^' => null, - '@@||ws.webcaster.pro^' => null, - '@@||www.gsxt.gov.cn^' => null, - '@@||xia1ge.com^' => null, - '@@||xianzhenyuan.cn^' => null, - '@@||xidian.edu.cn^' => null, - '@@||xilinjie.com^' => null, - '@@||xiuren.org^' => null, - '@@||xmpp-chat.pornhub.com^' => null, - '@@||xmxing.net^' => null, - '@@||yellowbridge.com^' => null, - '@@||yesiget.i234.me^' => null, - '@@||yibada.com^' => null, - '@@||ymso.cc^' => null, - '@@||yygsz.com^' => null, - '@@||zbj.com^' => null, - '@@||zeplin.io^' => null, - '@@||zippyshare.com^' => null, -); - -//针对上游通配符规则中anti-AD不予采信的规则,即通配符黑名单 -$ARR_WILD_BLK_LIST = array( - 'cnt*rambler.ru' => null, - 'um*.com' => null, -); - -if(PHP_SAPI != 'cli'){ - die('nothing.'); -} - -$src_file = ''; -try{ - $file = $argv[1]; - $src_file = ROOT_DIR . $file; -}catch(Exception $e){ - echo "get args failed.", $e->getMessage(), "\n"; - die(0); -} - -if(empty($src_file) || !is_file($src_file)){ - echo 'src_file:', $src_file, ' is not found.'; - die(0); -} - -if(!is_file(WILDCARD_SRC) || !is_file(WHITERULE_SRC)){ - echo 'key file is not found.'; - die(0); -} - -$wild_fp = fopen(WILDCARD_SRC, 'r'); -$arr_wild_src = array(); - -while(!feof($wild_fp)){ - $wild_row = fgets($wild_fp, 512); - if(empty($wild_row)){ - continue; - } - if(!preg_match('/^\|\|?([\w\-\.\*]+?)\^(\$([^=]+?,)?(image|third-party|script)(,[^=]+)?)?$/', $wild_row, $matches)){ - continue; - } - - if(array_key_exists($matches[1], $ARR_WILD_BLK_LIST)){ - continue; - } - - $matched = false; - // TODO 此处匹配似乎还不够完美,需再次斟酌 - foreach($ARR_REGEX_LIST as $regex_str => $regex_row){ - if(preg_match($regex_str, str_replace('*', '', $matches[1]))){ - $matched = true; - break; - } - } - if($matched){ - continue; - } - $arr_wild_src[$matches[1]] = []; -} -fclose($wild_fp); - -$arr_wild_src = array_merge($arr_wild_src, $ARR_MERGED_WILD_LIST); - -$written_size = $line_count = 0; - -$src_content = file_get_contents($src_file); -$attached_content = ''; -$tmp_replaced_content = ''; - -//按需写入白名单规则 -$whiterule = file(WHITERULE_SRC, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); -$whiterule = array_fill_keys($whiterule, 0); -$ARR_WHITE_RULE_LIST = array_merge($whiterule, $ARR_WHITE_RULE_LIST); -$wrote_whitelist = []; -$remained_white_rule = []; -foreach($ARR_WHITE_RULE_LIST as $row => $v){ - if(empty($row) || substr($row, 0, 1) !== '@' || substr($row, 1, 1) !== '@'){ - continue; - } - $matches = array(); - if(!preg_match('/^@@\|\|([0-9a-z\.\-\*]+?)\^/', $row, $matches)){ - continue; - } - - if(array_key_exists("@@||${matches[1]}^", $ARR_WHITE_RULE_BLK_LIST)){ - continue; - } - - if(array_key_exists($matches[1], $wrote_whitelist)){ - continue; - } - - if($v === 1){ - $wrote_whitelist[$matches[1]] = null; - $attached_content .= "@@||${matches[1]}^\n"; - $line_count++; - continue; - } - - $origin_white_rule = $matches[1]; - $wrote_whitelist[$origin_white_rule] = null; - $matches[1] = str_replace('*', '.abc.', $matches[1]); - $matches[1] = str_replace('..', '.', $matches[1]); - $extract_domain = addressMaker::extract_main_domain($matches[1]); - if(!$extract_domain){ - $extract_domain = $matches[1]; - } - - // TODO 3级或以上域名加白2级域名的情况未纳入 - if(strpos($src_content, '|' . $extract_domain) === false){ - $remained_white_rule[$origin_white_rule] = 1; - continue; - } - - $attached_content .= "@@||${origin_white_rule}^\n"; - $line_count++; -} - -unset($wrote_whitelist); - -// 清洗正则表达式匹配 -foreach($ARR_REGEX_LIST as $regex_str => $regex_row){ - $php_regex = str_replace(array('/^', '$/'), array('/^\|\|', '\^'), $regex_str); - $php_regex = preg_replace('/(.+?[^$])\/$/', '\1.*\^', $php_regex); - $php_regex .= "\n/m"; - - $tmp_replaced_content = preg_replace($php_regex, '', $src_content); - if($tmp_replaced_content === $src_content){ - continue; - } - $src_content = $tmp_replaced_content; - $tmp_replaced_content = ''; - $attached_content .= $regex_str; - if($regex_row && is_array($regex_row) && $regex_row['m']){ - $attached_content .= $regex_row['m']; - } - $attached_content .= "\n"; - $line_count++; - - foreach($remained_white_rule as $rmk => $rmv){ - if(preg_match($php_regex, '||' . str_replace('*', '123', $rmk) . "^\n\n")){ - $attached_content .= '@@||' . $rmk . "^\n"; - $line_count++; - unset($remained_white_rule[$rmk]); - } - } -} - -// 清洗*号模糊匹配 -$wrote_wild_list = array(); -foreach($arr_wild_src as $wild_rule => $wild_value){ - - if(array_key_exists($wild_rule, $wrote_wild_list)){ - continue; - } - - $php_regex = '/^\|\|(\S+\.)?' . str_replace(array('.', '*', '-'), array('\\.', '.*', '\\-'), $wild_rule) . "\^\n/m"; - $tmp_replaced_content = preg_replace($php_regex, '', $src_content); - if($tmp_replaced_content == $src_content){ - continue; - } - - $wrote_wild_list[$wild_rule] = 1; - - $src_content = $tmp_replaced_content; - $tmp_replaced_content = ''; - $attached_content .= '||' . $wild_rule; - if($wild_value && is_array($wild_value) && $wild_value['m']){ - $attached_content .= '^' . $wild_value['m'] . "\n"; - }else{ - $attached_content .= "^\n"; - } - - $line_count++; - - foreach($remained_white_rule as $rmk => $rmv){ - if(preg_match($php_regex, '||' . str_replace('*', '123', $rmk) . "^\n\n")){ - $attached_content .= '@@||' . $rmk . "^\n"; - $line_count++; - unset($remained_white_rule[$rmk]); - } - } -} - -$line_count += substr_count($src_content, "\n"); -$src_content = str_replace("!Total lines: 00000\n", '!Total lines: ' . ($line_count - 4) . "\n" . $attached_content, $src_content); - -file_put_contents($src_file, $src_content); -file_put_contents($src_file . '.md5', md5_file($src_file)); -echo 'Time cost:', microtime(true) - START_TIME, "s, at ", date('m-d H:i:s'), "\n"; +die('anti-AD');